(58)【調査した分野】(Int.Cl.,DB名)
前記処理指示手段は、前記取得手段により取得された数が第1の閾値以上又は該第1の閾値よりも大きい第2の閾値以上である場合に前記記憶装置に指示し、前記取得手段により取得された数が第2の閾値以上であると判定されてから前記切り替える処理が実施されるまでの期間が、前記取得手段により取得された数が第1の閾値以上であると判定されてから前記切り替える処理が実施されるまでの期間よりも短いことを特徴とする
請求項1記載の情報処理装置。
前記処理指示手段は、前記取得手段により取得された数が、複数の予め定められた閾値のうち自装置の処理性能に応じて選択される閾値以上である場合に、前記記憶装置に指示する
請求項1又は2記載の情報処理装置。
【背景技術】
【0002】
特許文献1は、記憶装置制御部と記憶装置部としてのハードディスクから構成されるハードディスク装置において、前記記憶装置制御部に、予め設定された時間を経過して上位装置からのアクセスが行われない場合、前記憶装置制御部が自立的にハードディスクへ読み出し動作を行うことで、故障を検出する検出手段を有することを特徴とするハードディスク装置について開示している。
【0003】
また、前記記憶装置制御部に、更に、前記ハードディスク装置内のメモリに、ハードディスク障害情報管理テーブルとして、故障時に報告される予めきめられたデータの中で、修復不可能な故障時に報告されるデータを予め格納しておき、前記検出手段で検出された故障が修復可能であるかを、前記ハードディスク障害情報管理テーブルと比較し、検出された故障がハードディスク上の修復可能な故障と判断すれば、ハードディスクに対して欠陥領域を修復させる処理要求を行う修復要求手段を有することについて開示している。
【0004】
また、前記記憶装置制御部に、更に、検出された故障が修復不可能な故障と判断されれば、異常情報として、装置の外部へ通知する通知手段を有することについて開示している。
【0005】
引用文献2は、一次記憶部(画像メモリ)の画像データ(入力画像、圧縮変換後の画像データ)をHDDに保存する際、HDDに不良セクタがあるとフラグメンテーションが発生する可能性があるので、不良セクタの発生情報を元にアクセスを不可能とする領域を登録したテーブルをメモリ制御部側に保有し、DMA転送において領域を確保する(例えば、連続或いは分断領域のいずれかを指示して確保)ときに、テーブルを参照することにより、アクセス不可能領域の使用を回避し、高速且つ適切な転送動作条件の設定を行うことを可能にすることについて開示している。
【0006】
引用文献3は、HDDを接続して使用可能な画像処理装置であって、前記画像処理装置の起動処理を制御する主制御部と、HDDを制御するストレージコントローラを有し、ストレージコントローラは、画像処理装置の起動処理においてHDDに記憶されている情報を読み出し、当該読み出しの速度を測定し、測定結果に基づいてHDDに不具合が発生していることを判断し、不具合が発生している場合にHDDの記憶領域を修復することについて開示している。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の目的は、記憶装置に対するデータの読み取り又は書き込み処理が遅延すること抑制することができる情報処理装置及びプログラムを提供することである。
【課題を解決するための手段】
【0009】
請求項1に係る本発明は、記憶装置が提供する記憶領域のうち、記憶領域の状態が不良の予備段階であると前記記憶装置により判定された記憶領域の数を前記記憶装置から取得する取得手段と、前記取得手段により取得された数が予め定められた閾値以上である場合に、前記不良の予備段階であると前記記憶装置により判定された記憶領域のうち不良な記憶領域であると前記記憶装置により判定される記憶領域について、読み取り先又は書き込み先を、該記憶領域への読み取り又は書き込みを代替する記憶領域へと切り替える処理を行うよう前記記憶装置に指示する処理指示手段とを有する情報処理装置である。
【0010】
請求項2に係る本発明は、前記処理指示手段は、前記取得手段により取得された数が第1の閾値以上又は該第1の閾値よりも大きい第2の閾値以上である場合に前記記憶装置に指示し、前記取得手段により取得された数が第2の閾値以上であると判定されてから前記切り替える処理が実施されるまでの期間が、前記取得手段により取得された数が第1の閾値以上であると判定されてから前記切り替える処理が実施されるまでの期間よりも短いことを特徴とする請求項1記載の情報処理装置である。
【0011】
請求項3に係る本発明は、前記処理指示手段は、前記取得手段により取得された数が、複数の予め定められた閾値のうち自装置の処理性能に応じて選択される閾値以上である場合に、前記記憶装置に指示する請求項1又は2記載の情報処理装置である。
【0012】
請求項4に係る本発明は、記憶領域が不良の予備段階の状態であるか否かを判定する予備段階判定手段と、前記予備段階判定手段により不良の予備段階の状態であると判定された記憶領域が不良の状態であるか否かを判定する不良判定手段と、前記不良判定手段により不良と判定された記憶領域について、読み取り先又は書き込み先を、該記憶領域への読み取り又は書き込みを代替する記憶領域へと切り替える処理を行う処理手段とを備えた記憶装置と、前記記憶装置が提供する記憶領域のうち、記憶領域の状態が不良の予備段階であると判定された記憶領域の数を前記記憶装置から取得する取得手段と、前記取得手段により取得された数が予め定められた閾値以上である場合に、前記処理手段による処理を行うよう前記記憶装置に指示する処理指示手段とを有する情報処理装置である。
【0013】
請求項5に係る本発明は、記憶装置が提供する記憶領域のうち、記憶領域の状態が不良の予備段階であると前記記憶装置により判定された記憶領域の数を前記記憶装置から取得するステップと、取得された数が予め定められた閾値以上である場合に、前記不良の予備段階であると前記記憶装置により判定された記憶領域のうち不良な記憶領域であると前記記憶装置により判定される記憶領域について、読み取り先又は書き込み先を、該記憶領域への読み取り又は書き込みを代替する記憶領域へと切り替える処理を行うよう前記記憶装置に指示するステップとをコンピュータに実行させるプログラムである。
【発明の効果】
【0014】
請求項1に係る本発明によれば、本構成を有しない場合に比較して、記憶装置に対するデータの読み取り又は書き込み処理が遅延すること抑制することができる情報処理装置を提供することができる。
【0015】
請求項2に係る本発明によれば、請求項1に係る本発明の効果に加え、読み取り又は書き込み処理に遅延が発生する確率に応じて、遅延を抑制するための処理の実施時期を制御することができる情報処理装置を提供することができる。
【0016】
請求項3に係る本発明によれば、請求項1又は2に係る本発明の効果に加え、情報処理装置に要求される性能に応じて、遅延を抑制するための処理の実施を制御することができる情報処理装置を提供することができる。
【0017】
請求項4に係る本発明によれば、本構成を有しない場合に比較して、記憶装置に対するデータの読み取り又は書き込み処理が遅延すること抑制することができる情報処理装置を提供することができる。
【0018】
請求項5に係る本発明によれば、本構成を有しない場合に比較して、記憶装置に対するデータの読み取り又は書き込み処理が遅延すること抑制することができるプログラムを提供することができる。
【発明を実施するための形態】
【0020】
[背景]
まず、本発明の理解を助けるために、本発明が発明されるに至った背景について説明する。
【0021】
ハードディスクドライブにおいては、ディスクの物理的な損傷や経年劣化などにより、データの読み取り又は書き込みを行うことができなくなる記憶領域(不良セクタ)が発生する。ハードディスクドライブは、記憶領域が不良セクタであると判定した場合、当該不良セクタへのアクセスを代替する記憶領域である代替セクタへと、読み取り先又は書き込み先を切り替え、当該不良セクタへのアクセスが行われないよう制御する。
【0022】
ハードディスクドライブ内の制御装置では、読み取り又は書き込みが正常に行えないセクタがあった場合、まず、当該セクタを不良状態の予備段階の状態を示すペンディングセクタとして正常なセクタと区別する。そして、ペンディングセクタのうち、次回アクセス時においても読み取り又は書き込みが正常に行えないセクタについて、不良状態のセクタであることを示す不良セクタとして区別する。なお、この次回アクセス時において、正常に読み取り又は書き込みが行われた場合、当該セクタはペンディングセクタから正常なセクタへと状態が戻される。
【0023】
図1は、ハードディスクドライブ100の機能構成を示すブロック図である。
読取書込制御部102は、ハードディスクドライブ100を利用する機器からの読取指示又は書込指示を受け付け、受け付けた指示に基づいた読取又は書込みを行うよう制御する。
【0024】
予備段階判定部104は、読取指示又は書込指示で指定された読取先又は書込み先のセクタについて、不良の予備段階の状態であるか否かを判定する。不良の予備段階の状態であると判定した場合、ペンディングセクタとして、当該セクタの位置を位置情報格納部106に記録する。
【0025】
位置情報格納部106は、予備段階判定部104によりペンディグセクタであると判定されたセクタの位置情報を格納する。
【0026】
不良判定部108は、ペンディングセクタであると判定されたセクタについて、不良な状態であるか否かを判定する。不良な状態であると判定した場合、不良セクタであるとして、代替処理部110に代替処理を行うよう通知する。不良な状態ではないと判定した場合、当該ペンディグセクタの位置情報を位置情報格納部106から削除し、当該ペンディングセクタを正常なセクタへと戻す。
【0027】
代替処理部110は、不良判定部108により不良セクタであると判定されたセクタについて、読み取り先又は書き込み先を、当該不良セクタへの読み取り又は書き込みを代替する代替セクタへと切り替える処理を行う。具体的には、不良セクタへの参照に対して、不良セクタとは物理的な位置が異なる代替セクタを参照するよう論理的な位置情報を切り替える。また、代替処理部110は、この切り替えを示す位置情報などの代替情報を代替情報格納部112に格納し、位置情報格納部106に格納されている当該不良セクタの位置情報を削除する。以下、代替処理部110による処理を代替処理という。
【0028】
なお、ハードディスクドライブ100は、ハードディスクドライブ100を利用する機器からの指示があった場合にも、ペンディングセクタについて不良状態であるか正常状態であるかを判定し、不良な状態であるときには、代替処理を行う機能を備えている。
【0029】
図2は、ハードディスクドライブ100におけるデータの読み取り又は書込みの動作の一例を示すフローチャートである。
【0030】
ステップ10(S10)において、読み取り又は書き込みの指示に基づくアクセス先のセクタについて、位置情報格納部106にペンディングセクタとして位置情報が記録されているか否かを判定する。当該セクタの位置情報が記録されている場合には、ペンディングセクタであるとしてステップ12へ移行し、記録されていない場合には正常なセクタであるとしてステップ32へ移行する。
【0031】
ステップ12(S12)において、シーク動作及びサーチ動作を行い、ハードディスクドライブ100のヘッドが、アクセス先のセクタに位置するよう制御する。
【0032】
ステップ14(S14)において、アクセス先のセクタにヘッドが正常に位置したか否かを判定し、正常な場合、ステップ16へ移行し、アクセス先のセクタにヘッドが位置していない場合には、ステップ20へ移行する。
【0033】
ステップ16(S16)において、読取処理または書き込み処理が行われる。
【0034】
ステップ18(S18)において、読取処理または書き込み処理が正常に完了しているかの確認(ベリファイ)が行われ、正常に完了している場合にはステップ30へ移行し、正常に完了していない場合には、ステップ22へ移行する。
【0035】
ステップ20(S20)及びステップ22(S22)では、再試行(リトライ)が許容されているか否かを判定し、許容される場合にはステップ12へ戻り、リトライされる。一方、リトライが許容されない場合には、当該ペンディングセクタは、不良セクタであると判定され、ステップ24へ移行する。なお、例えば、予め定められたリトライ回数以内であればリトライが許容される。
【0036】
ステップ24(S24)において、不良セクタについて代替処理が行われ、代替セクタへとアクセス先が切り換えられる。
【0037】
ステップ26(S26)において、ステップ24における処理による代替情報が記録される。
【0038】
ステップ28(S28)において、代替セクタに対する読み取り又は書き込み処理が行われる。
【0039】
ステップ30(S30)において、S10で確認した位置情報を位置情報格納部106から削除する。
【0040】
図3は、ハードディスクドライブ100におけるデータの読み取り又は書込みの動作の一例を示すフローチャートであり、
図2に示すS32についてのフローチャートである。
図3に図示したフローチャートは、アクセス先のセクタが正常な状態のセクタである場合の読み取り又は書き込みの動作の一例を表している。
【0041】
ここで、ステップ100(S100)〜ステップ110(S110)は、それぞれ
図2におけるステップ12〜ステップ22と同様の動作を行う。ただし、
図2とは異なり、ステップ106において、読取処理又は書き込み処理が正常に完了したと判定された場合、正常に終了したものとして動作を終了する。また、ステップ108及びステップ110において、リトライが許容されない場合、アクセス先のセクタはペンディングセクタであると判定され、ステップ112へ移行し、ステップ112において、アクセス先のセクタの位置情報が位置情報格納部106に記録される。
【0042】
以上示したように、あるセクタに対する読み取り又は書き込みの指示をした場合に、読み取り又は書き込みが正常に完了しない場合には、当該セクタはペンディングセクタへと移行する。そして、次回このセクタに対する読み取り又は書き込みの指示があった場合に読み取り又は書き込みが正常に完了しない場合には、不良セクタへと移行し、代替処理が行われる。代替処理が行われる際には、
図2のステップ20又はステップ22におけるリトライ動作に加え、ステップ24〜ステップ30に示す処理が行われるため、読み取り又は書き込みが完了するまでの時間がその分だけ遅延することとなる。
【0043】
[実施形態]
次に、本発明の実施形態に係る情報処理装置の一例としての画像形成装置2について説明する。
画像形成装置2は、例えば図示しない端末装置からネットワークを介して送信されてきた画像データ、又は図示しない光学的に画像を読み取るスキャナなどの読み取り装置から送信されてきた画像データを用紙に印刷する。
【0044】
図4は、画像形成装置2のハードウェア構成の一例を示すブロック図である。
図4に示すように、画像形成装置2は、上述のハードディスクドライブ100を備えている。
【0045】
画像形成装置2は、
図4に示されるように、CPU4、メモリ6、記憶装置としてのハードディスクドライブ(HDD)100、ネットワークを介して外部の装置等との間でデータの送信及び受信を行う通信インタフェース(IF)10、タッチパネル又は液晶ディスプレイ並びにキーボードを含むユーザインタフェース(UI)装置12、スキャナ14、プリンタ16を有する。これらの構成要素は、制御バス18を介して互いに接続されている。
【0046】
CPU4は、制御プログラムに基づく処理を実行して、ハードディスクドライブ100に対するデータの読み取り又は書き込みなど画像形成装置2の動作を制御する。なお、制御プログラムはCD−ROM等の記憶媒体に格納してCPU4に提供することも可能である。
【0047】
図5は、上記の制御プログラムが実行されることにより実現される画像形成装置2の機能構成を示すブロック図である。
【0048】
SMART情報取得部20は、ハードディスクドライブ100からSMART情報を取得し、取得した情報をメモリ6に記憶する。SMART(Self−Monitoring, Analysis and ReportingTechnology)とは、ハードディスクドライブの自己診断機能であり、SMART情報は、ハードディスクドライブの各診断項目の状態値から構成されており、現在のペンディングセクタの数(Current Pending Sector数)、すなわち不良の予備段階であると判定されたセクタの数を示す情報も含まれる。
【0049】
代替処理指示部22は、SMART情報取得部20により取得されたペンディングセクタ数が、予め定められた閾値以上である場合に、ペンディングセクタのうち不良セクタであると判定されるセクタについて、読み取り先又は書き込み先を、このセクタへの読み取り又は書き込みを代替する代替セクタへと切り替える処理(以下、事前代替処理という)を行うようハードディスクドライブ100に指示する。この指示を受けたハードディスクドライブ100は、ペンディングセクタについて、例えば読み取り又は書き込みをテストする動作を行い、各ペンディングセクタについて不良セクタ又は正常なセクタへと状態を移行させる。そして、不良セクタへと状態が移行したセクタについては、上記代替処理部110における代替処理を行う。
【0050】
ここで、例えば画像形成装置2における画像形成処理などの処理中にハードディスクドライブ100への読み取り又は書き込み処理が発生した場合を想定する。読み取り又は書き込み処理におけるアクセス先がペンディングセクタであるとき、代替処理が行われる可能性があり、代替処理が行われると、その処理時間分だけ読み取り又は書き込み時間が遅延することとなり、画像形成処理などの処理に影響を与える。例えば、画像形成処理において、アクセス時間がタイムアウトとなったり、アクセス自体がエラーになるなどし、画像形成処理の生産性が低下したり、場合によっては画像形成処理がエラーにより停止することもありうる。上記遅延が発生する可能性は、ハードディスクドライブ100に存在するペンディングセクタ数が多くなるにつれ上昇する。本実施形態では、予め定められた時期に事前に代替処理を行うよう代替処理指示部22が指示を出すため、画像形成処理などの処理の際に代替処理が発生する可能性が代替処理指示部22を有しない場合に比べ低下する。
【0051】
本実施形態の代替処理指示部22は、テーブル格納部24に格納されたテーブル情報と、SMART情報取得部20により取得されたペンディングセクタ数とに基づいて、ハードディスクドライブ100に上記指示を行うか否かを判定する。
【0052】
テーブル格納部24は、SMART情報取得部20により取得されたペンディングセクタ数に応じた動作を規定するテーブル情報を格納している。テーブル情報としては、SMART情報取得部20により取得されたペンディングセクタ数がどれくらいの場合に上記指示を行うか否か、また、上記指示を行う場合、SMART情報取得部20により取得されたペンディングセクタ数がどれくらいのときにどの時期に代替処理を行うかを規定している。
【0053】
また、本実施形態のテーブル格納部24は、複数のテーブル情報を格納しており、画像形成装置2の処理性能に応じて使用されるテーブル情報は異なる。例えば、画像形成装置2の処理性能が予め定められた基準よりも高い場合、処理性能が予め定められた基準よりも低い画像形成装置に比べて、ハードディスクドライブ100における読み取り又は書き込み処理に要する時間の遅延が画像形成処理などの処理に与える影響は大きい。よって、例えば、画像形成装置2の処理性能が予め定められた基準よりも高い場合、処理性能が予め定められた基準よりも低い画像形成装置に比べ、上記指示に基づく代替処理の実施頻度を高くするようテーブル情報を設定する。
【0054】
図6は、テーブル格納部24が格納するテーブル情報の一例を示す模式図である。
図6(a)は、画像形成装置2の処理性能が予め定められた基準よりも高い場合に用いられるテーブル情報を示し、
図6(b)は、画像形成装置2の処理性能が予め定められた基準よりも低い場合に用いられるテーブル情報を示す。
【0055】
図6(a)に示した例では、SMART情報取得部20により取得されたペンディングセクタ数が0〜4である場合、代替処理指示部22はハードディスクドライブ100に上記指示を行わない旨の規定がされている。ペンディングセクタ数が5〜9である場合、画像形成装置2がスリープ状態へ移行した時に事前代替処理を行うようハードディスクドライブ100に指示する旨の規定がされている。スリープ状態では、スリープ状態へ移行する前の状態と比較し、画像形成装置2の消費電力が小さく、また、画像形成装置2の動作による振動が少ない。
【0056】
ペンディングセクタ数が10〜14である場合、画像形成装置2が画像形成処理などのジョブの実行中でない場合には、即時、事前代替処理を行うようハードディスクドライブ100に指示し、ジョブの実行中の場合には、全てのジョブが終了した時に、事前代替処理を行うようハードディスクドライブ100に指示する旨の規定がされている。このように、ペンディングセクタ数が5〜9の場合に比べ、より早く事前代替処理が行われるよう規定されている。
【0057】
ペンディングセクタ数が15以上である場合、画像形成装置2がジョブの実行中でない場合には、即時、画像形成装置2をスリープ状態へ強制的に移行の上、事前代替処理を行うようハードディスクドライブ100に指示し、ジョブの実行中の場合には、現在実行中のジョブの次のジョブの実行前に、画像形成装置2をスリープ状態へ強制的に移行の上、事前代替処理を行うようハードディスクドライブ100に指示する旨の規定がされている。
【0058】
これに対し、
図6(b)に示した例では、
図6(a)と比べ、各対応を実施するためのペンディングセクタ数の閾値が大きく設定されている。
【0059】
なお、画像形成装置2の処理性能が予め定められた基準よりも低い場合に用いられるテーブル情報は、
図6(b)に限らず、例えば、
図7に示すように構成してもよい。
【0060】
次に、画像形成装置2において事前代替処理が行われる際の動作について説明する。
図8は、画像形成装置2において事前代替処理が行われる際の動作の一例を示すフローチャートである。なお、
図8に示す動作は、画像形成装置2において、予め定められた時間間隔で行われてもよいし、予め定められた時期に行われてもよいし、使用者から指示を受付けることにより行われてもよい。
【0061】
ステップ200(S200)において、画像形成装置2の処理性能を示す性能情報を取得する。例えば、性能情報は、予めメモリ6又はハードディスクドライブ100などに記憶されており、記憶されている性能情報を読み出してもよいし、ネットワークを介し、性能情報を受信してもよい。
【0062】
ステップ202(S202)において、テーブル格納部24に格納されているテーブル情報のうち、ステップ200で取得した性能情報に対応するテーブルを選択する。
【0063】
ステップ204(S204)において、ハードディスクドライブ100からSMART情報を読み出す。
【0064】
ステップ206(S206)において、読み出したSMART情報をメモリ6に記憶する。
【0065】
ステップ208(S208)において、ステップ206で記憶されたSMART情報のうち、ペンディングセクタ数を参照し、ステップ202で選択したテーブルに基づいて、ペンディングセクタ数に応じた対応を決定する。
【0066】
ステップ210(S210)において、ステップ208で決定した対応を行う。