(57)【要約】【課題】磁気ディスク装置が故障予測条件を検出したとき、たとえ警告を発しても、適切な措置がすぐに外部から講じられないと故障が発生してデータ消失などの損害が生じる、という問題を解決する。【解決手段】磁気ディスク装置１は、故障予測条件検出部６と故障予測時動作論理部４を備える。故障予測条件検出部６は、故障予測条件の成立を検出すると故障予測時動作論理部４に通知する。故障予測時動作論理部４は通知を受けると、故障予測条件に応じて予め決められた故障予測時動作を実行するよう指示する。故障予測時動作は、正常状態への復帰を試みたりデータを保護したりする動作を含む。【選択図】図１
2007310974.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体からのデータの読み出しまたは該記憶媒体へのデータの書き込みを含む複数種類のうちいずれかの種類のコマンドを受け取り、該コマンドを実行する記憶装置であって、
故障の発生が予測される条件として予め定義された故障予測条件が成立するか否かを検出する故障予測条件検出手段と、
前記故障予測条件が成立することを前記故障予測条件検出手段が検出したとき、前記故障予測条件に対応して予め決められた動作の実行を指示する故障予測時動作論理手段と、
を備えることを特徴とする記憶装置。
【請求項２】
前記故障予測条件検出手段は温度を検出する温度検出手段を含み、
前記故障発生予測条件は、予め定められた温度以上の温度が前記温度検出手段で検出されるということを条件とする、
ことを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記故障予測条件に対応して予め決められた前記動作の一つは、前記コマンドが前記記憶媒体へのデータの書き込みを指示するコマンドの場合に実行すべき動作として決められており、
該動作は、該コマンドの実行後に、前記記憶媒体の前記データを書き込んだブロックからデータを読み出し、前記書き込んだデータと前記読み出したデータが一致するか否かを判定する判定動作を含む、
ことを特徴とする請求項１に記載の記憶装置。
【請求項４】
前記コマンドが前記記憶媒体からのデータの読み出しを指示するコマンドであって、該コマンドを実行したときにリトライ処理によって回復可能なエラーが発生した場合に実行すべき動作として、前記故障予測条件に対応して予め決められた前記動作の一つが決められており、
該動作は、前記コマンドの実行後に、前記コマンドによって読み出された前記データを前記記憶媒体に書き込む動作を含む、
ことを特徴とする請求項１に記載の記憶装置。
【請求項５】
記憶媒体からのデータの読み出しまたは該記憶媒体へのデータの書き込みを含む複数種類のうちいずれかの種類のコマンドを受け取り、該コマンドを実行する制御装置であって、
故障の発生が予測される条件として予め定義された故障予測条件が成立するか否かを検出する故障予測条件検出手段と、
前記故障予測条件が成立することを前記故障予測条件検出手段が検出したとき、前記故障予測条件に対応して予め決められた動作の実行を指示する故障予測時動作論理手段と、
を備えることを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置、記憶装置の制御方法、および制御装置に関する。より詳細には、故障の発生が予測された状態において記憶装置を制御する方法および制御装置と、それにより制御される記憶装置に関する。
【背景技術】
【０００２】
近年、多くのハードディスク装置（Hard Disk Drive。以後、「ＨＤＤ」という）で、ＳＭＡＲＴ（Self-Monitoring Analysis and Reporting Technology）機能が実装されている。ＳＭＡＲＴ機能は、ＨＤＤが故障の発生を予測してホスト（当該ＨＤＤを活用するコンピュータ）に警告する機能である。
【０００３】
ＳＭＡＲＴ機能を有するＨＤＤは、エラーの発生頻度等の各種の検査項目を監視している。そして、各検査項目の値と所定の閾値との比較結果に基づいて故障の発生を予測し、ホストに警告する。
【０００４】
ホストは、ＨＤＤからの警告を受けると、そのＨＤＤのデータをバックアップしたり、そのＨＤＤから別のＨＤＤに切り換えたり、ＨＤＤを交換するようユーザに警告したりする。このように適切な措置を行うことで、ＨＤＤの故障による損失（データの消失等）を抑えることができる。
【０００５】
しかしながら、従来のＳＭＡＲＴ機能では、ＨＤＤ自体は警告を出すだけで、警告後も正常時と同じようにコマンドの処理を行っていた。よって、その警告に対して適切な措置が適切な時期になされるか否かにＨＤＤ自体は関与することができない、という問題があった。
【０００６】
例えば、ＨＤＤからの警告に対応することができないホストの場合、そのまま当該ＨＤＤの運用を続けてしまい、その結果ＨＤＤの状態が悪化して実際に故障が発生し、ＨＤＤが動作不能となることがある。あるいは、ＨＤＤからの警告に対してホストまたは人間が適切な期間内に対応することができない場合がある。この場合、ＨＤＤの交換等の何らかの措置をとるまでの期間中も当該ＨＤＤの運用をそのまま続けると、結果的にその期間中にＨＤＤの状態が悪化して故障が発生し、データの一部を喪失してしまうことがある。
【０００７】
なお、次のような従来技術があるが、いずれもこの問題を解決するものではない。
特許文献１のＨＤＤは、落下の衝撃による損傷を防ぐための機構を有する。従来は、例えばノート型のコンピュータを人間が誤って落下させたとき、内蔵のＨＤＤが落下の衝撃で損傷を受けていた。特許文献１のＨＤＤは、加速度センサー等の情報から衝撃の発生を予測し、ＨＤＤの磁気ヘッドを所定の位置に退避させることにより、損傷を防ぐ。しかし、特許文献１は、衝撃による損傷への対策に特化しており、例えば経年劣化にともなって故障の発生が予測される場合については記載されていない。１秒未満で完結する落下の衝撃と、徐々に状態の悪化が進行する経年劣化では、異なる対処の仕方が求められる。
【０００８】
特許文献２の装置はＨＤＤを含む装置であり、ＨＤＤの状態を監視し、ＨＤＤに故障が発生しそうだと予測すると、ＨＤＤに記録されているファイルのうち予め指定されたものを、小容量の別のＨＤＤにバックアップする。しかし、バックアップの制御にＨＤＤ自体が関与していないので、特許文献２は上記の問題を解決するものではない。
【０００９】
特許文献３は、ＨＤＤを備えたデジタル画像形成装置に関する。この装置は、ＨＤＤ内で故障が予測されたエリアの情報を、印刷出力したり、他の記憶装置やＨＤＤの他の領域に転送したりして退避する。また、そのエリアを利用する特定のモードを禁止することもある。しかし、ＨＤＤ自体がこれらの制御に関与しているわけではなく、特定のエリアに限らずＨＤＤ全体が影響を受ける場合（高温での運用により故障の発生が予期される場合等）についての記載もないので、上記の問題を解決するものではない。
【特許文献１】特開２００４−１４６０３６号公報
【特許文献２】特開平９−６５４５号公報
【特許文献３】特許第３５８５６９１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、故障の発生を予測するとともに、故障の発生が予測される状態では、正常な状態への復帰を試みる処理やデータを保護するための処理を自律的に行う記憶装置を提供することである。また、記憶装置をそのように制御する制御装置を提供することも本発明の目的である。
【課題を解決するための手段】
【００１１】
本発明による記憶装置は、記憶媒体からのデータの読み出しまたは該記憶媒体へのデータの書き込みを含む複数種類のうちいずれかの種類のコマンドを受け取り、該コマンドを実行する記憶装置であり、故障予測条件検出手段と故障予測時動作論理手段とを備える。前記故障予測条件検出手段は、故障の発生が予測される条件として予め定義された故障予測条件が成立するか否かを検出する。前記故障予測時動作論理手段は、前記故障予測条件が成立することを前記故障予測条件検出手段が検出したとき、前記故障予測条件に対応して予め決められた動作の実行を指示する。
【００１２】
また、本発明による制御装置は記憶装置を制御する装置であり、上記と同様の故障予測条件検出手段と故障予測時動作論理手段とを備える。
実施の形態によって、前記故障予測条件およびそれに対応して予め決められた前記動作は様々に異なるが、前記動作は、故障の発生が予測される状態から正常な状態への復帰を試みる動作や、データを保護するための動作を含む。また、ある実施形態において前記故障予測条件検出手段に必要な具体的な構成も、その実施形態における前記故障予測条件によって様々に異なる。
【００１３】
前記故障予測条件検出手段と前記故障予測時動作論理手段の機能は、プログラムによって実現することもできる。
【発明の効果】
【００１４】
本発明の記憶装置は、故障の発生を予測すると、外部からの指示によらず自律的に、正常な状態への復帰を試みる処理やデータの保護処理を行う。よって、故障の発生を予測する記憶装置からの警告に対してホストやユーザが対応することができずに記憶装置の運用を続ける場合や、ホストやユーザが何らかの対処をするまでに時間を要する場合に、本発明による記憶装置は、故障が発生するのを抑止し、または故障が発生するまでの時間を延長することができる。
【００１５】
つまり、本発明の記憶装置は、故障の発生が予測された状態での運用において、従来に比べてより安全にデータを処理することができる。また、本発明の制御装置を用いて記憶装置を制御する場合も、同様の効果が得られる。よって、本発明は記憶装置の信頼性の向上に寄与するところが大きい。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は本発明の原理を説明する図である。記憶装置の一種である磁気ディスク装置１は、データの読み出しや書き込みなどのコマンドをホストコンピュータ９から受け取り、実行する装置である。磁気ディスク装置１の具体例はＨＤＤである。本発明による磁気ディスク装置１には、従来の磁気ディスク装置と同様の部分と、本発明に独自の部分がある。
【００１７】
磁気ディスク装置１は、従来の磁気ディスク装置と同様に、インターフェイス処理部２（以後「Ｉ／Ｆ処理部」という）、コマンド実行部３、リード・ライトヘッド制御部５、キャッシュメモリー７、および磁気ディスク媒体８を備える。また、磁気ディスク装置１は、ＳＭＡＲＴ機能を搭載した従来の磁気ディスク装置と同様に、故障予測条件検出部６をさらに備える。磁気ディスク装置１は、さらに本発明独自の故障予測時動作論理部４を備える。なお、図１で各構成要素をつなぐ矢印は主な処理の方向を示している。片方向の矢印で示した箇所も、厳密には、逆向きの矢印で示される付随的な処理をともなう場合がある。
【００１８】
磁気ディスク装置１は記憶媒体としてディスク媒体８を備え、データはディスク媒体８に記憶されている。
磁気ディスク装置１がＨＤＤの場合、ディスク媒体８は磁性体を塗布した１枚以上のディスクからなり、不図示のスピンドルモーターがディスク媒体８を回転させる。また、ボイスコイルモーターにより駆動されるアームに磁気ヘッド（以後「ヘッド」という）が取り付けられており、ヘッドによって、ディスク媒体８上のデータの読み取りおよび書き込みが行われる。ボイスコイルモーター、アーム、ヘッドはいずれも従来の磁気ディスク装置において用いられているものであり、敢えて図示していない。なお、ディスク媒体８上のデータの読み取りおよび書き込みは、ホストコンピュータ９から磁気ディスク装置１に送られたコマンドにしたがって実行される。
【００１９】
ホストコンピュータ９は、磁気ディスク装置１を活用するコンピュータである。「ホスト」という名称は、磁気ディスク装置１に対して上位にあることを示すためのものであり、コンピュータの種類を特定する趣旨ではない。ホストコンピュータ９は、パーソナルコンピュータやワークステーション等、任意の種類のコンピュータでよい。また、磁気ディスク装置１はホストコンピュータ９に外付けされたものでもよく、磁気ディスク装置１とホストコンピュータ９が同一の筐体に収められていてもよい。
【００２０】
Ｉ／Ｆ処理部２は、ホストコンピュータ９との通信を行うインターフェイスである。Ｉ／Ｆ処理部２を介して、コマンド、そのコマンドの処理対象のデータ、磁気ディスク装置１のステータス情報などが、磁気ディスク装置１とホストコンピュータ９の間でやりとりされる。
【００２１】
ホストコンピュータ９から磁気ディスク装置１に送られたコマンドは、Ｉ／Ｆ処理部２で受信され、コマンド実行部３に送られる。コマンド実行部３は受け取ったコマンドを解析し処理する。つまり、コマンド実行部３はコマンドを解析して、当該コマンドを実行するためにヘッドをディスク媒体８上のどの位置に移動させるかを計算する。
【００２２】
例えば、磁気ディスク装置１がＨＤＤであり、ディスク媒体８が複数のディスクからなるとき、ヘッドもそれに対応して複数ある。この場合、コマンド実行部３は、実行すべきコマンドの処理対象ブロックのディスク媒体８上での物理位置（シリンダ番号、ヘッド番号、トラック番号によって示される）を計算し、その結果をリード・ライトヘッド制御部５に通知する。
【００２３】
また、コマンド実行部３は、そのコマンドがディスク媒体８へのデータの書き込みをともなうコマンドのとき、Ｉ／Ｆ処理部２を介してホストコンピュータ９に対しデータの転送を要求する。
【００２４】
コマンド実行部３による計算結果に基づいて、リード・ライトヘッド制御部５は、ヘッドの位置決め制御（シーク制御）およびリード・ライト制御を行う。それによって、ディスク媒体８に記憶されたデータの読み取り、またはディスク媒体８へのデータの書き込みが実行される。つまり、コマンド実行部３とリード・ライトヘッド制御部５が協働してコマンドを実行している。
【００２５】
キャッシュメモリー７は、リードデータまたはライトデータを一時格納するためのメモリーであって、半導体メモリーで構成される。キャッシュメモリー７によって、ディスク媒体８へのアクセスの遅さをホストコンピュータ９に対して隠蔽することが可能となる。例えばホストコンピュータ９がライト系コマンドを発した場合、上記のようにコマンド実行部３からの要求に基づいてホストコンピュータ９から送られたデータは一旦キャッシュメモリー７に書き込まれる。そして、コマンド実行部３とリード・ライトヘッド制御部５によって、このデータがディスク媒体８に書き込まれる。
【００２６】
以上は、正常時のコマンド処理である。ところで、詳しくは図２とあわせて後述するが、磁気ディスク装置１の故障が予測される条件（以下では「故障予測条件」という）が、温度や各種のエラーレートなどに基づいて予め一つ以上定められている。ここで、エラーレートとは、リードエラーレート、ライトエラーレート、シークエラーレートなどの総称である。
【００２７】
故障予測条件検出部６は、温度やエラーレートなどを監視することによって、いずれかの故障予測条件が成立するか否かを検出する。この点は、ＳＭＡＲＴ機能を有する従来の磁気ディスク装置と同様である。
【００２８】
従来と本発明の違いは、故障予測条件が一つでも成立する場合（以後「故障予測状態」とよぶ）、故障予測条件検出部６が、故障予測時動作論理部４に通知する点である。また、各故障予測条件に対応してその故障予測条件が成立するときに実行すべき動作（以後「故障予測時動作」とよぶ）が予め定められている点も従来と異なる。
【００２９】
故障予測時動作の例は、故障予測状態から正常な状態（つまり故障予測条件が成立しない状態）に復帰するための動作や、データを保護する動作である。一つの故障予測条件に対応する故障予測時動作は一つでもよく、複数の動作の組み合わせでもよい。また、異なる故障予測条件に対して同一の故障予測時動作が対応していてもよい。
【００３０】
上記の説明では省略したが、図１の実施形態においてコマンド実行部３は、コマンドを解析するとき故障予測時動作論理部４に故障予測状態か否かを問い合わせている。故障予測状態でなければ、コマンド実行部３は上記のとおりにコマンドを処理する。故障予測状態の場合は、条件成立が検出された故障予測条件に対応する故障予測時動作を行うよう、故障予測時動作論理部４がコマンド実行部３に指示する。コマンド実行部３は、故障予測時動作を実行しながらコマンドを処理する。また、コマンド実行部３はＩ／Ｆ処理部２を介してホストコンピュータ９に警告を送信する。このようにして、正常時（故障予測状態でないとき）と故障予測状態のときで異なる処理が行われる。
【００３１】
別の実施形態によっては、実行すべきコマンドがない場合（つまりアイドル状態のとき）に、故障予測時動作論理部４からの指示にしたがってコマンド実行部３がデータ保護処理を実行してもよい。
【００３２】
以上のようにして、本発明の磁気ディスク装置１は、ホストコンピュータ９に警告を送信するだけでなく、故障予測時動作論理部４の指示に基づいて自律的に故障予測状態に対して適切な措置を講じる（つまり故障予測時動作を実行する）。それによって、磁気ディスク装置１が正常な状態に復帰したり、実際に故障が発生するまでの時間を引き延ばしたり、データ消失などの損害が発生する可能性を低くしたりすることが可能となる。
【００３３】
なお、図１は機能的なブロックを示したものである。図１のうち、キャッシュメモリー７とディスク媒体８はそれぞれ異なるハードウェアを示しているが、残りのＩ／Ｆ処理部２、コマンド実行部３、故障予測時動作論理部４、リード・ライトヘッド制御部５、故障予測条件検出部６は、実施の形態に応じて、各ブロックをそれぞれハードウェア回路によって実現してもよく、各ブロックをファームウェアで実現してもよい。ファームウェアで各ブロックを実現する場合、ハードウェアはこれらの機能ブロックで共通していてもよい。もちろん、一部のブロックをハードウェア回路で実現し、一部のブロックをファームウェアで実現してもよい。また、一つのブロックの機能のうち一部をハードウェアで実現し、一部をファームウェアで実現してもよい。
【００３４】
例えば、ある実施形態において、Ｉ／Ｆ処理部２、コマンド実行部３、故障予測時動作論理部４、リード・ライトヘッド制御部５の四つの機能ブロックは、ファームウェアにより実現され、ハードウェアは共通である。また、故障予測条件検出部６はセンサー等の固有のハードウェアと、ファームウェアにより実現されるそれ以外の部分とを含む。そのファームウェアに対応するハードウェアは、上記四つの機能ブロックと共通である。
【００３５】
例えば、これらの機能ブロックを実現する共通のハードウェアは、プロセッサと、フラッシュメモリーやＲＯＭ（Read Only Memory）等の不揮発性メモリーと、ＲＡＭ（Random Access Memory）等の揮発性メモリーとを含むコンピュータとすることができる。そして、上記のそれぞれの機能ブロックの機能を実現するファームウェア・プログラムが不揮発性メモリーに記憶されており、それらのファームウェア・プログラムがプロセッサにロードされて実行されることにより、上記のそれぞれの機能ブロックの機能が実現される。
【００３６】
ファームウェア・プログラムをコンピュータ読み取り可能な可搬型記憶媒体に記憶することも可能である。可搬型記憶媒体の例は、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disk）などの光ディスク、光磁気ディスク、フレキシブルディスクなどである。また、プログラム提供者がネットワークを通じてファームウェア・プログラムを提供してもよい。上記の不揮発性メモリーが書き換え可能な場合、可搬型記憶媒体に記憶された、またはプログラム提供者から提供されたファームウェア・プログラムを、Ｉ／Ｆ処理部２を介して磁気ディスク装置１に読み込むことによって、ファームウェア・プログラムを更新することも可能である。それによって、例えば、故障予測条件と故障予測時動作の対応を更新することが可能である。
【００３７】
図２は、故障予測条件と、それに対応する故障予測条件検出部６のハードウェアおよび故障予測時動作の例を示す図である。図２（ａ）表中の「故障予測条件」列は故障予測条件の例を示す。「故障予測条件検出部」列は、図１の故障予測条件検出部６に含まれるハードウェアのうち、その行の故障予測条件を検出する部分を示す。「故障予測時動作」列はその行の故障予測条件が検出されたとき、故障予測時動作論理部４がコマンド実行部３に指示する動作の内容を示す。
【００３８】
例えば、故障予測条件検出部６が温度センサーを含む実施形態において、その温度センサーが規定温度以上の温度を検出すると、表中の故障予測条件（Ａ）が成立する。よって、故障予測条件検出部６が故障予測時動作論理部４にその旨を通知する。そして、コマンド実行部３からの問い合わせに対して、図２（ｂ）表中の故障予測時動作（１）〜（７）を行うよう故障予測時動作論理部４がコマンド実行部３に指示する。故障予測時動作（１）〜（７）の詳細は、図４とあわせて後述する。
【００３９】
なお、故障予測条件（Ａ）と（Ｂ）に示した「規定温度」とは、磁気ディスク装置１の仕様として予め定められている温度であり、磁気ディスク装置１の正常な動作が保証される温度の、それぞれ上限と下限である。
【００４０】
図３は、本発明の一実施形態における機能ブロック構成図である。本実施形態による磁気ディスク装置１１は、ＳＣＳＩ（Small Computer System Interface）インターフェイスを装備した磁気ディスク装置であり、図１の磁気ディスク装置１とほぼ同様の構成である。図３も図１と同様に、矢印の向きは主な流れのみを示している。
【００４１】
Ｉ／Ｆ処理部１２は、図１のＩ／Ｆ処理部２に対応する。Ｉ／Ｆ処理部１２のインターフェイス形式はＳＣＳＩインターフェイスである。
コマンドキュー１３ａ、コマンドリオーダリング制御部１３ｂおよびコマンド解析・処理部１３ｃは、図１のコマンド実行部３に含まれる。
【００４２】
コマンドキュー１３ａは、ホストコンピュータ１９からＩ／Ｆ処理部１２を介して受領したコマンドを格納するキューである。図３では、「コマンド＃１」から「コマンド＃ｎ」までのｎ個のコマンドをコマンドキュー１３ａに保存することが可能にされている。コマンドキュー１３ａを実現するハードウェアは、例えばＲＡＭである。
【００４３】
コマンドリオーダリング制御部１３ｂは、コマンドキュー１３ａ内のコマンドの実行順序を決定する。正常な状態では、コマンドリオーダリング制御部１３ｂは、最も効率的に（つまり最も高速に）処理できるようにコマンドの実行順序を決定する。本実施形態では、コマンドリオーダリング制御部１３ｂはファームウェアにより実現される。
【００４４】
コマンド解析・処理部１３ｃは、コマンドリオーダリング制御部１３ｂで決定した順序でコマンドを実行する。コマンドを実行するためにコマンド解析・処理部１３ｃは、当該コマンドの処理対象のブロックのディスク媒体１８上での物理位置を計算し、リード・ライトヘッド制御部１５に通知する。本実施形態ではコマンド解析・処理部１３ｃもファームウェアにより実現される。
【００４５】
故障予測時動作論理部１４とリード・ライトヘッド制御部１５は、それぞれ図１の故障予測時動作論理部４とリード・ライトヘッド制御部５に対応する。これらは図１と同様なので説明を省略する。
【００４６】
温度センサー１６ａ、エラー情報保存部１６ｂおよび故障予測条件判断部１６ｃは、図１の故障予測条件検出部６に含まれる。
温度センサー１６ａは温度を監視し、温度情報を出力するハードウェアである。温度センサー１６ａは、磁気ディスク装置１１の筐体の内部に設置されることが好ましい。当業者ならば温度センサー１６ａの設置位置を適切に定めることができる。
【００４７】
エラー情報保存部１６ｂは、エラー情報を記録している。エラー情報保存部１６ｂを実現するハードウェアは、例えば、レジスタや、ＲＡＭ等の揮発性メモリーである。例えば図２の故障予測条件（Ｃ）と（Ｄ）を利用する実施形態の場合、エラー情報保存部１６ｂはリードエラーカウンタとライトエラーカウンタを含んでもよいし、リードエラーレートとライトエラーレートを記録する保存部（レジスタやＲＡＭ等）を含んでもよい。
【００４８】
エラー情報は次のようにしてエラー情報保存部１６ｂに記録される。まず、リード処理やライト処理でエラーが発生すると、リード・ライトヘッド制御部１５がエラーの発生を検知し、コマンド解析・処理部１３ｃに報告する。それによってコマンド解析・処理部１３ｃがエラーの発生を検知する。そしてコマンド解析・処理部１３ｃがそのエラー情報をエラー情報保存部１６ｂに記録する。
【００４９】
故障予測条件判断部１６ｃは、温度センサー１６ａとエラー情報保存部１６ｂから得られる情報をもとに、故障予測条件が成立するか否かを判断する。本実施形態では故障予測条件判断部１６ｃはファームウェアにより実現される。
【００５０】
故障予測条件判断部１６ｃは、定期的に温度センサー１６ａやエラー情報保存部１６ｂの情報を読み取ってもよい。あるいは、温度センサー１６ａが自分から故障予測条件判断部１６ｃに情報を出力してもよい。または、エラーが発生してコマンド解析・処理部１３ｃがエラー情報保存部１６ｂを書き換えたときに、コマンド解析・処理部１３ｃが故障予測条件判断部１６ｃに通知するのでもよい。
【００５１】
例えば、故障予測条件判断部１６ｃは一定の時間ごとに温度センサー１６ａから温度を取得し、その温度が規定温度以上となる状態が規定時間以上続いた場合に、高温での運用を要因とする故障予測条件（図２の故障予測条件（Ａ）に該当）が成立したと判断してもよい。
【００５２】
キャッシュメモリー１７、ディスク媒体１８、ホストコンピュータ１９はそれぞれ図１のキャッシュメモリー７、ディスク媒体８、ホストコンピュータ９に対応する。これらは図１と同様である。
【００５３】
なお、図には示していないが、キャッシュメモリー１７を制御するためのファームウェアまたはハードウェア回路も必要である。例えばそのファームウェア・プログラムは、コマンド解析・処理部１３ｃのファームウェア・プログラムの一部として組み込まれたものでもよく、独立したものでもよい。
【００５４】
図４は、一実施形態における磁気ディスク装置１１の動作を示すフローチャートである。図４の処理は、磁気ディスク装置１１が動作している間、繰り返し実行される。なお、故障予測条件の成立が検出されたときにホストコンピュータ１９に警告する機能に関するステップは従来と同様なので、図４では省略した。
【００５５】
ステップＳ１０１では、コマンドキュー１３ａ内にコマンドがあるか否かをコマンドリオーダリング制御部１３ｂが判定する。コマンドキュー１３ａにコマンドが存在するとき、判定は「はい」となり、コマンドを処理するためにステップＳ１０２に移行する。コマンドキュー１３ａにコマンドが存在しないとき、判定は「いいえ」となる。この場合は、磁気ディスク装置１１が待機状態（アイドル状態）なので、磁気ディスク装置１１を保守するためにステップＳ１１８に移行する。
【００５６】
ステップＳ１０２からステップＳ１１７は、コマンドキュー１３ａにコマンドが存在するときに実行されるステップで、コマンドおよび故障予測状態での故障予測時動作を実行するステップである。
【００５７】
ステップＳ１０２では、コマンド解析・処理部１３ｃが故障予測時動作論理部１４に故障予測状態か否かを問い合わせる。故障予測状態のときステップＳ１０２の判定は「はい」となり、ステップＳ１０３に移行する。故障予測状態でないとき判定は「いいえ」となり、ステップＳ１０５に移行する。
【００５８】
ステップＳ１０３では、故障予測条件が成立したのは高温のためか否かが判定される。例えば、ステップＳ１０２の問い合わせの結果に基づいて判定してもよいし、再度コマンド解析・処理部１３ｃが故障予測時動作論理部１４に問い合わせて判定してもよい。高温のために故障予測状態と判定された場合は判定が「はい」となってステップＳ１０４に移行し、それ以外の場合は判定が「いいえ」となってステップＳ１０５に移行する。図２の例では、故障予測条件（Ａ）が成立する場合のみステップＳ１０３の判定が「はい」となる。
【００５９】
ステップＳ１０４は、故障予測条件（Ａ）に対応する故障予測時動作（２）の具体例であり、故障予測時動作論理部１４がコマンド解析・処理部１３ｃに与える指示にしたがって実行される。
【００６０】
ステップＳ１０４では、５０ｍｓの間、コマンド解析・処理部１３ｃがリード・ライトヘッド制御部１５に命令を与えるのを待つ。つまり、コマンド解析・処理部１３ｃが５０ｍｓの回転待ち時間を挿入することにより、コマンドの実行間隔を大きくする。磁気ディスク装置１１（特にディスク媒体１８）の発熱要因は主にコマンドの実行（特にシーク動作）によるものなので、ステップＳ１０４の処理は、磁気ディスク装置１１の温度上昇を抑える効果がある。
【００６１】
前述のように図４の処理は繰り返し実行されるが、繰り返しのたびにステップＳ１０４が実行されると、例えば図２の故障予測条件（Ａ）の規定温度未満の温度にまで磁気ディスク装置１１の温度が下がることもある。つまり、ステップＳ１０４の故障予測時動作を実行することにより、磁気ディスク装置１１が故障予測状態から正常状態に復帰することも可能である。５０ｍｓの間待ったらステップＳ１０６に移行する。
【００６２】
ステップＳ１０５では、コマンドリオーダリング制御部１３ｂがコマンドキュー１３ａ内のコマンドの実行順序を決定する。ステップＳ１０５が実行されるのは、正常な状態のときか、高温以外の要因で故障予測条件が成立した状態のときである。よって、ステップＳ１０５では磁気ディスク装置１１の温度上昇を抑えなくてもよいため、コマンドリオーダリング制御部１３ｂは、コマンドキュー１３ａ内のコマンドが最速で処理されるように（待ち時間が少なくなるように）実行順序を最適化して並べ替える。並べ替えたらステップＳ１０６に移行する。
【００６３】
なお、高温のために故障予測状態と判定された場合はステップＳ１０５が実行されない。換言すれば、この場合は、ステップＳ１０５の実行を禁止するという故障予測時動作が実行される。よって、コマンドキュー１３ａ内のコマンドは最適化されない状態である。この場合、ステップＳ１０５の処理を行う場合に比べて、コマンドとコマンドの間の待ち時間が長く、ヘッドを動かす頻度が少ないので、磁気ディスク装置１１の温度上昇が抑えられる。
【００６４】
ステップＳ１０６では、ステップＳ１０２と同様に故障予測状態か否かが判定される。故障予測状態のとき判定が「はい」となってステップＳ１０８に移行する。ステップＳ１０８〜Ｓ１１７は、故障予測時動作として実行するよう故障予測時動作論理部１４がコマンド解析・処理部１３ｃに指示する動作の具体例である。故障予測状態でないとき判定が「いいえ」となってステップＳ１０７に移行する。
【００６５】
ステップＳ１０７では、コマンドキュー１３ａのコマンドのうち最初に処理すべきコマンドが処理される。詳細は図５とあわせて後述するが、当該コマンドを実行するための指示をコマンド解析・処理部１３ｃがリード・ライトヘッド制御部１５に与える。ステップＳ１０７のコマンド処理には、正常に処理することができなかった場合のリトライ処理も含む。コマンドを処理したらステップＳ１０１に戻る。
【００６６】
ステップＳ１０８では、コマンド解析・処理部１３ｃがリード・ライトヘッド制御部１５に指示して、シーク動作の動作モードを切り替える。本実施形態では、次の二つの切り替えが実行される。
【００６７】
第一に、高温に起因する故障予測条件が成立している場合、リード・ライトヘッド制御部１５は、シーク時にボイスコイルモーターに流す電流量を少なくする。これにより、シーク動作が正常時よりも低速に行われ、消費電力量が減り、発熱量が減る。
【００６８】
第二に、成立している故障予測条件の種類によらず、リード・ライトヘッド制御部１５はヘッド追従条件を強化する。つまり、リード・ライトヘッド制御部１５は、ヘッドを目的のトラックの位置に移動させるための位置決め条件をより厳しくする。例えば、複数の条件の論理積（ＡＮＤ）によって位置決め条件が定義されている場合は、位置決め条件の構成要素の条件の数を増やす。これにより、正常な状態における条件よりも厳しい条件を満たさないとヘッドが目的の位置で安定したと見なされなくなるため、より確実にヘッドがトラックの中央部に位置するようになる。
【００６９】
例えば、トラック上に記録された位置情報を読み取りつつシーク動作を行い、正常な状態では、読み取った位置情報が連続して２回、目的のトラック位置を示しているときに目的の位置にヘッドが移動して安定したと見なす仕様を仮定する。この場合、例えば、読み取った位置情報が連続して４回、目的のトラック位置を示しているときに目的の位置にヘッドが移動して安定したと見なすことにすることが、ヘッド追従条件の強化に相当する。この結果、シーク時間が正常時よりも長くなるが、ヘッドの位置が不適切なことに起因するエラー（例えば、トラックの中心からずれた場所にデータを書き込んだせいで、その後のリード系コマンドの実行時に生じるエラー）の発生は抑制される。
【００７０】
上記のような動作モードの切り替えの実行後、ステップＳ１０９に移行する。
ステップＳ１０９では、ステップＳ１０７と同様に、コマンドキュー１３ａのコマンドのうち最初に処理すべきコマンドが処理される。コマンドの処理後、ステップＳ１１０に移行する。
【００７１】
ステップＳ１１０では、コマンドが正常に終了したか否かをコマンド解析・処理部１３ｃが判定する。コマンドが正常に終了したとき判定が「はい」となりステップＳ１１１に移行する。コマンドが異常終了したとき判定が「いいえ」となりステップＳ１０１に戻る。なお、コマンドが異常終了した場合は、ステップＳ１０９のコマンド処理のときにホストコンピュータ１９に異常を通知済みである（図５とあわせて後述）。
【００７２】
ステップＳ１１１では、ステップＳ１０９で処理したコマンドがライト系コマンドか否かをコマンド解析・処理部１３ｃが判定する。ライト系コマンドなら判定が「はい」となりステップＳ１１２に移行し、それ以外の場合は判定が「いいえ」となってステップＳ１１５に移行する。なお、「ライト系コマンド」とは、ディスク媒体１８にデータを書き込むコマンドの総称である。
【００７３】
ステップＳ１１２〜Ｓ１１４の処理は、ライト系コマンドの実行後に行うデータ保護のための処理である。つまり、ホストコンピュータ１９からの指示がなくても磁気ディスク装置１１が自律的にディスク媒体１８のベリファイを行う処理である。
【００７４】
ステップＳ１１２では、まず、ステップＳ１０９で処理したコマンド（ライト系コマンド）によりデータを書き込んだブロックのディスク媒体１８上での物理位置をコマンド解析・処理部１３ｃが算出し、リード・ライトヘッド制御部１５に通知する。そして、リード・ライトヘッド制御部１５がそのブロックからデータを読み出し、ステップＳ１１３に移行する。
【００７５】
ステップＳ１１３では、ステップＳ１１２で読み出したデータが、ステップＳ１０９で書き込んだデータと一致するか否かを判定する。一致する場合、判定は「はい」となる。この場合、ステップＳ１０９でライト系コマンドが適切に処理されていたので、ステップＳ１０１に戻る。一致しない場合、判定は「いいえ」となる。この場合、ステップＳ１０９でライト系コマンドは適切に処理されていなかったので、データ保護のためにステップＳ１１４に移行する。
【００７６】
ステップＳ１１４では、再書き込み処理や交代ブロック割り付け処理をコマンド解析・処理部１３ｃが行い、これによりデータ保護を実現する。つまり、ステップＳ１０９で適切に書き込まれなかったデータをステップＳ１１４で適切に書き込むことによって、後でそのデータを読み込んで利用することが可能な状態にする。本実施形態では、ステップＳ１１４で以下のような処理をコマンド解析・処理部１３ｃが行う。
【００７７】
まず、コマンド解析・処理部１３ｃは再書き込み処理を試みる。ステップＳ１０９で処理したライト系コマンドのライトデータはキャッシュメモリー１７に記憶されているので、コマンド解析・処理部１３ｃはリード・ライトヘッド制御部１５に指示を与え、ステップＳ１０９で書き込んだ位置に再びこのデータを書き込ませる。
【００７８】
そして、ステップＳ１１２と同様に書き込んだデータを読み出し、読み出したデータが書き込んだデータと一致するか否かを判定する。一致する場合は、再書き込み処理によってデータが適切に書き込まれたので、ステップＳ１１４の処理は終了し、ステップＳ１０１に戻る。
【００７９】
一致しない場合は、再書き込み処理でも適切にデータを書き込むことができなかった場合である。このとき、交代ブロック割り付け処理を行う。すなわち、コマンド解析・処理部１３ｃは、ステップＳ１０９で書き込んだのとは別の未使用ブロックを当該ライト系コマンドに対応する交代ブロックとして割り付ける。そして、リード・ライトヘッド制御部１５に指示を与えて、キャッシュメモリー１７に記憶されているライトデータをそのブロックに書き込ませる。さらにコマンド解析・処理部１３ｃは、リード・ライトヘッド制御部１５に指示を与えて、書き込んだデータを読み込ませる。そして、書き込んだデータと読み込んだデータが一致するか否かをコマンド解析・処理部１３ｃが判定する。一致する場合は、交代ブロック割り付け処理によってデータが適切に書き込まれたので、ステップＳ１１４の処理は終了し、ステップＳ１０１に戻る。
【００８０】
一致しない場合は、上記と同様にして交代ブロックに対する再書き込み処理を行ってもよく、さらに別の交代ブロックを割り付けてもよい。それらの処理によって書き込むべきデータが適切に書き込まれたことが確認されたら、ステップＳ１１４の処理は終了し、ステップＳ１０１に戻る。
【００８１】
ステップＳ１１５では、ステップＳ１０９で処理したコマンドがリード系コマンドか否かをコマンド解析・処理部１３ｃが判定する。リード系コマンドなら判定が「はい」となりステップＳ１１６に移行し、それ以外の場合は判定が「いいえ」となってステップＳ１０１に戻る。なお、「リード系コマンド」とは、ディスク媒体１８からデータを読み出すコマンドの総称である。また、判定が「いいえ」となるのは、ステップＳ１０９で処理したコマンドがライト系コマンドでもリード系コマンドでもない場合で、例えば、制御系のコマンドの場合である。
【００８２】
ステップＳ１１６とステップＳ１１７は、リード系コマンドの実行後に行うデータ保護のための処理である。
ステップＳ１１６では、ステップＳ１０９でリード系コマンドを処理した際に、回復可能なエラーが発生したか否かをコマンド解析・処理部１３ｃが判定する。ステップＳ１１６が実行されるのは、ステップＳ１０９で行われたリード系コマンドの処理が正常に終了した場合のみだが、ステップＳ１０９の処理はリトライ処理も含む。よって、何の問題もなくリード系コマンドが処理された第一の場合と、エラーが発生したが、そのエラーはリトライによって回復可能なものだったために、リトライによって最終的には正常にリード系コマンドを処理することができた第二の場合がある。第二の場合には、例えば、読み込む対象のデータが以前に書き込まれたとき、ヘッドがトラックの中心位置からずれた状態で書き込まれてしまった場合や、ディスク媒体１８に傷がついており、数回に一回しか正常にデータを読み取れない場合が該当する。
【００８３】
第一の場合、ステップＳ１１６の判定は「いいえ」となってステップＳ１０１に戻る。第二の場合、判定が「はい」となってステップＳ１１７に移行する。
ステップＳ１１７では、ステップＳ１１４と類似の再書き込み処理や交代ブロック割り付け処理をコマンド解析・処理部１３ｃが行い、これによりデータ保護を実現する。
【００８４】
ステップＳ１１７が実行されるのは上記第二の場合なので、データは適切に読み取り済みである。よって、この読み取ったデータを使って、コマンド解析・処理部１３ｃが再書き込み処理や交代ブロック割り付け処理を実行する。つまり、トラックの中心位置からずれた箇所に書き込まれていたデータをトラックの中心位置に書き直したり、ディスク媒体１８の傷ついた領域から別の正常な領域にデータを書き直したりする処理を実行する。これにより、そのデータに対して今後リード系コマンドを実行する際、より高い信頼度で読み込むことができるようになる。
【００８５】
これらの処理の終了後、ステップＳ１０１に戻る。
ステップＳ１１８〜Ｓ１２８はコマンドキュー１３ａ内にコマンドがなく、磁気ディスク装置１１がアイドル状態のときに実行される。これらの処理は磁気ディスク装置１１を保守するための処理である。
【００８６】
ステップＳ１１８では、故障予測状態か否かが判定される。この判定は、ステップＳ１０２と同様である。故障予測状態のとき判定は「はい」となり、ステップＳ１１９に移行する。ステップＳ１１９〜Ｓ１２５は、故障予測時動作に相当する。故障予測状態でないとき判定は「いいえ」となり、ステップＳ１２６に移行する。
【００８７】
ステップＳ１１９では、故障予測条件が成立したのは高温のためか否かが判定される。この判定は、ステップＳ１０３と同様である。高温のために故障予測状態と判定された場合は判定が「はい」となってステップＳ１２０に移行し、それ以外の場合は判定が「いいえ」となってステップＳ１２３に移行する。
【００８８】
ステップＳ１２０〜Ｓ１２２は、高温のために故障予測状態と判定された場合に実行される。温度はディスク媒体１８だけでなくキャッシュメモリー１７にも影響があるため、この場合はキャッシュメモリー１７をテストし必要に応じてエラー回復処理を行うことが望ましい。
【００８９】
ステップＳ１２０では、キャッシュメモリー１７のベリファイが行われる。上述のとおり、例えば、キャッシュメモリー１７を制御するためのファームウェアが磁気ディスク装置１１には備えられている。ステップＳ１２０ではこのファームウェアが、キャッシュメモリー１７に対するリード／ライトテストを実行し、キャッシュメモリー１７に不具合がないか否かを検査する。
【００９０】
テストの具体的な方法は、実施の形態によって任意に選択することができ、リードテストとライトテストの一方のみを行ってもよい。例えば、巡回冗長検査（Cyclic Redundancy Check；ＣＲＣ）や誤り検出・訂正（Error Check and Correct；ＥＣＣ）を行ってもよい。その場合、もしエラーを訂正することが不可能な領域が見つかれば、その領域の使用を禁止する処理を行う。テストの実行後、ステップＳ１２１に移行する。
【００９１】
ステップＳ１２１では、ステップＳ１２０のテストが正常に終了したか否かを、キャッシュメモリー１７を制御する上記のファームウェアが判定する。なお、コマンド解析・処理部１３ｃがキャッシュメモリー１７の制御も行っているような別の実施形態では、コマンド解析・処理部１３ｃがステップＳ１２０とＳ１２１を実行する。
【００９２】
テストが正常に終了した場合、判定が「はい」となってステップＳ１２３に移行し、テストが正常に終了しなかった場合、判定が「いいえ」となってステップＳ１２２に移行する。
【００９３】
ステップＳ１２２では、キャッシュメモリー１７のエラー回復処理を行う。具体的にはステップＳ１１４やステップＳ１１７と類似の再書き込み処理や交代ブロック割り付け処理である。例えば、ステップＳ１２０で特定のデータを利用してライトテストを行い、あるブロックでそのデータを正しく書き込めなかった場合、ステップＳ１２２では交代ブロックを割り付ける処理を行う。エラー回復処理の実行後、ステップＳ１２３に移行する。
【００９４】
ステップＳ１２３〜Ｓ１２５は、故障予測状態のときにディスク媒体１８のベリファイを実行し、必要に応じてエラー回復処理を行うためのステップである。
ステップＳ１２３では、コマンド解析・処理部１３ｃがリード・ライトヘッド制御部１５に指示することによってディスク媒体１８のリードテストを行う。リードテストの終了後、ステップＳ１２４に移行する。
【００９５】
ステップＳ１２４では、ステップＳ１２３のリードテストが正常に終了したか否かをコマンド解析・処理部１３ｃが判定する。テストが正常に終了した場合、判定が「はい」となってステップＳ１２６に移行し、そうでない場合は判定が「いいえ」となってステップＳ１２５に移行する。
【００９６】
ステップＳ１２５では、コマンド解析・処理部１３ｃがリード・ライトヘッド制御部１５に指示することによってエラー回復処理を実行する。具体的には、ステップＳ１１７と同様の再書き込み処理や交代ブロック割り付け処理を実行する。これにより、例えばトラックの中心からずれた位置に書き込まれていたデータがトラックの中心位置に再書き込みされ、そのデータに対して別のリード系コマンドが今後実行されるときに、エラーの発生を抑えることができる。つまり、ステップＳ１２５は、アイドル状態の間に磁気ディスク装置１１が外部からの指示によらず自律的に正常状態への復帰を試みる処理である。エラー回復処理の実行後、ステップＳ１２６に移行する。
【００９７】
ステップＳ１２６〜Ｓ１２８は、磁気ディスク装置１１のシステム情報に関する処理である。システム情報は、磁気ディスク装置１１自体の管理や制御に使われる情報である。本実施形態では、ファームウェアとして実装され図３には不図示のシステム情報管理部によって、システム情報が管理されている。
【００９８】
システム情報の例は、磁気ディスク装置１１の動作モードを設定するためのモードセレクトパラメータや、磁気ディスク装置１１の運用に関する各種の統計情報等である。システム情報は、通常のリード系コマンドやライト系コマンドによって磁気ディスク装置１１からアクセスすることができない。システム情報は、ディスク媒体１８に記憶されていてもよい。あるいは、コマンド解析・処理部１３ｃや故障予測時動作論理部１４等のファームウェア・プログラムを記憶した不揮発性メモリーに、システム情報が記憶されていてもよい。
【００９９】
ステップＳ１２６では、システム情報管理部が、システム情報の定期更新時期か否かを判定する。更新時期になっていれば判定が「はい」となってステップＳ１２７に移行し、まだ更新時期でなければ判定が「いいえ」となってステップＳ１０１に戻る。
【０１００】
ステップＳ１２７では、故障予測状態か否かが判定される。この判定はステップＳ１０２と同様である。故障予測状態のとき判定は「はい」となり、ステップＳ１０１に戻る。故障予測状態でないとき判定は「いいえ」となり、ステップＳ１２８に移行する。
【０１０１】
ステップＳ１２８では、システム情報管理部がシステム情報を更新する。システム情報の更新後、ステップＳ１０１に戻る。
ステップＳ１２６とＳ１２８は従来のＨＤＤでも行われる処理だが、ステップＳ１２７の判定は本発明に独自の動作である。ステップＳ１２７の判定が「はい」のときステップＳ１０１に戻るが、これはステップＳ１２８の実行を禁止するという故障予測時動作である。
【０１０２】
以上説明したようにして、磁気ディスク装置１１が動作している間、図４の処理が繰り返し実行される。
次に、図２と図４の対応を説明する。
【０１０３】
図２（ａ）表中の故障予測条件（Ａ）〜（Ｄ）のうち一つでも条件が成立すれば、図４のステップＳ１０２、Ｓ１０６、Ｓ１１８、Ｓ１２７で故障予測状態であると判定される。また、故障予測条件（Ａ）が成立すれば、図４のステップＳ１０３、Ｓ１１９で、故障予測条件が成立したのは高温のためだと判定される。
【０１０４】
故障予測時動作（図２（ｂ）表中の（1）〜（７））と図４のステップは次のように対応している。（１）はステップＳ１０８に、（２）はステップＳ１０４に、（３）はステップＳ１０８に、（４）はステップＳ１１２〜Ｓ１１４に、（５）はステップＳ１１７に、（６）はステップＳ１２６〜Ｓ１２８に、（７）はステップＳ１１９〜Ｓ１２５に、それぞれ対応する。
【０１０５】
ところで、図２によれば、故障予測条件（Ｃ）（リードエラーレートが規定値以上）が成立する場合、故障予測時動作（４）（書き込み箇所のベリファイ）を実行するよう指示されている。一見、故障予測条件と故障予測時動作の関連性が薄いようだが、リードエラーは、読み取るべきデータが前回書き込まれた際に問題があったために生じることが多い。故障予測条件と故障予測時動作の対応は、このようにエラーの発生原因を分析して定めることが好ましい。
【０１０６】
次に図５を参照して、図４のステップＳ１０７およびステップＳ１０９で実行される処理を説明する。図５は、一実施形態において磁気ディスク装置１１が行うコマンド処理のフローチャートである。
【０１０７】
磁気ディスク装置１１は、複数の動作モードのうちモードセレクトパラメータによって指定された動作モードで動作する。例えば、コマンド処理においてホストコンピュータ１９にコマンドの終了を報告するタイミングは動作モードによって異なり、キャッシュメモリー１７の読み書きが終了した時点で報告する動作モードと、ディスク媒体１８の読み書きが終了した時点で報告する動作モードがある。図５は、後者の動作モードで磁気ディスク装置１１が動作している場合を示している。動作モードの違いは本発明と直接の関係がないので前者の動作モードについては省略する。
【０１０８】
ステップＳ２０１では、処理すべきコマンドがリード系コマンドまたはライト系コマンドであるか否かをコマンド解析・処理部１３ｃが判定する。リード系コマンドまたはライト系コマンドのとき判定が「はい」となってステップＳ２０２に移行し、それ以外の種類のコマンド（例えば制御系のコマンド）のとき判定が「いいえ」となってステップＳ２１９に移行する。
【０１０９】
ステップＳ２０２では、コマンド解析・処理部１３ｃがリード・ライトヘッド制御部１５に指示を与え、リード・ライトヘッド制御部１５がアームを制御し、ヘッドを目的のトラックまで移動させるシーク動作を開始する。シーク動作の開始後、ステップＳ２０３に移行する。なお、ステップＳ２０３〜Ｓ２０５はシーク動作と並行して実行される。
【０１１０】
ステップＳ２０３では処理すべきコマンドがライト系コマンドか否かをコマンド解析・処理部１３ｃが判定する。ライト系コマンドのとき判定が「はい」となってステップＳ２０４に移行し、リード系コマンドのとき判定が「いいえ」となってステップＳ２０５に移行する。
【０１１１】
ステップＳ２０４では、コマンド解析・処理部１３ｃがＩ／Ｆ処理部１２を介してホストコンピュータ１９に対し、処理すべきライト系コマンドのライトデータを送信するよう要求する。そして、ホストコンピュータ１９が磁気ディスク装置１１にライトデータを送信する。ライトデータはＩ／Ｆ処理部１２を介してキャッシュメモリー１７に送られ、格納される。そして、ステップＳ２０６に移行する。
【０１１２】
ステップＳ２０５では、キャッシュメモリー１７内のリードデータをホストコンピュータ１９へ転送することをコマンド解析・処理部１３ｃが許可する。ただし、本実施形態においては、この時点ではまだリードデータの転送は行われない。許可後、ステップＳ２０６に移行する。
【０１１３】
ステップＳ２０６は、シーク動作の完了まで待つことを表す。シーク動作が完了するとステップＳ２０６の判定が「はい」となってステップＳ２０７に移行し、シーク動作中だと判定が「いいえ」となってステップＳ２０６を繰り返す。
【０１１４】
ステップＳ２０７では、シーク動作が正常に終了したか否かを、リード・ライトヘッド制御部１５からの報告に基づきコマンド解析・処理部１３ｃが判定する。シーク動作が正常に終了したとき、つまりヘッドが目的のトラックに位置しているとき、判定が「はい」となってステップＳ２０８に移行し、シーク動作が正常に終了しなかったとき判定が「いいえ」となってステップＳ２１７に移行する。
【０１１５】
ステップＳ２０８では、処理すべきコマンドがリード系コマンドのとき、リード・ライトヘッド制御部１５がリード動作（ディスク媒体１８からデータを読み込む動作）を開始する。それとともに、ステップＳ２０５で与えられた許可にしたがい、キャッシュメモリー１７上のデータがＩ／Ｆ処理部１２を介してホストコンピュータ１９に転送される。また、処理すべきコマンドがライト系コマンドのときは、リード・ライトヘッド制御部１５がライト動作（キャッシュメモリー１７上のデータをディスク媒体１８に書き込む動作）を開始する。そしてステップＳ２０９に移行する。
【０１１６】
ステップＳ２０９は、ステップＳ２０８で開始したリード動作またはライト動作が終了するまで待つことを表す。リード動作またはライト動作が終了するとステップＳ２０９の判定が「はい」となってステップＳ２１０に移行し、リード動作中またはライト動作中のとき判定が「いいえ」となってステップＳ２０９を繰り返す。
【０１１７】
ステップＳ２１０は、リード動作またはライト動作が正常に終了したか否かを、リード・ライトヘッド制御部１５からの報告に基づいてコマンド解析・処理部１３ｃが判定する。正常に終了した場合、判定が「はい」となってステップＳ２１１に移行し、そうでない場合は判定が「いいえ」となってステップＳ２１２に移行する。
【０１１８】
ステップＳ２１１では、コマンドが正常に終了したことを、コマンド解析・処理部１３ｃからＩ／Ｆ処理部１２を介してホストコンピュータ１９に報告する。ステップＳ２１１で一連の処理は終了する。
【０１１９】
ステップＳ２１２は、リード動作またはライト動作でエラーが発生し、異常終了したときに実行されるステップで、エラー情報をエラー情報保存部１６ｂに記録するステップである。
【０１２０】
例えば、リード動作でエラーが発生した場合はコマンド解析・処理部１３ｃがエラー情報保存部１６ｂ内のリードエラーカウンタをインクリメントし、ライト動作でエラーが発生した場合はコマンド解析・処理部１３ｃがエラー情報保存部１６ｂ内のライトエラーカウンタをインクリメントする。
【０１２１】
故障予測条件判断部１６ｃはエラー情報保存部１６ｂを監視しており、処理したコマンドの種類に応じてリードエラーレートまたはライトエラーレートを算出しなおす。そしてエラーレートが所定の閾値を超えたか否かによって、故障予測条件が成立したか否かを検出する（図２（ａ）の故障予測条件（Ｃ）および（Ｄ）に該当する）。故障予測条件の成立を検出すると、故障予測条件判断部１６ｃは故障予測時動作論理部１４にその旨を通知する。それにより、後続のコマンドを処理する際に図２（ｂ）の故障予測時動作（１）〜（７）等の措置が講じられる。故障予測時動作論理部１４への通知後、ステップＳ２１３に移行する。
【０１２２】
ステップＳ２１３ではリード動作またはライト動作のリトライが可能か否かをコマンド解析・処理部１３ｃが判定する。本実施形態では、一つのコマンドにつきリトライが許される回数の最大値が予め決められており、その回数に達するまではリトライが可能と判定される。他の実施形態では他の基準に基づいて判定されてもよい。リトライが可能なとき判定が「はい」となってステップＳ２１４に移行し、リトライが不可能なとき判定が「いいえ」となってステップＳ２１５に移行する。
【０１２３】
ステップＳ２１４では、リード動作またはライト動作のリトライを実施したことをコマンド解析・処理部１３ｃが記録する。
本実施形態では、コマンド解析・処理部１３ｃやリード・ライトヘッド制御部１５がファームウェアとして実現されており、これらの機能ブロックから利用可能なＲＡＭにリトライの実施が記録される。このＲＡＭはエラー情報保存部１６ｂの一部であってもよい。
【０１２４】
この記録と、最終的にリード動作が正常に終了したか否かに基づいて、リード系コマンドの処理中に回復可能なエラーが生じたか否かを図４のステップＳ１１６でコマンド解析・処理部１３ｃが判定している。また、リトライを実施したという記録は、ステップＳ２１３でリトライ回数に基づき判定を行う際にも利用される。
【０１２５】
さらにステップＳ２１４では、コマンド解析・処理部１３ｃの指示に基づきリード・ライトヘッド制御部１５がリトライ処理を開始する。リトライ処理の開始後、ステップＳ２０９に戻り、その後は前述したのと同様の処理が実行される。
【０１２６】
ステップＳ２１５は、リード動作またはライト動作が正常に終了せず、リトライが不可能なときに実行されるステップである。ステップＳ２１５では、リード動作中またはライト動作中に回復不可能なエラーが発生したことを、コマンド解析・処理部１３ｃがＲＡＭ（ステップＳ２１４で利用したＲＡＭ）に記録する。この記録により、回復不可能なエラーの発生が図４のステップＳ１１６で判定可能となる。記録後、ステップＳ２１６に移行する。
【０１２７】
ステップＳ２１６は、リード動作またはライト動作が正常に終了せず、リトライも不可能だった場合に実行される。ステップＳ２１６では、コマンドが異常終了したことをコマンド解析・処理部１３ｃがホストコンピュータ１９に対しＩ／Ｆ処理部１２を介して報告し、一連の処理を終了する。
【０１２８】
ステップＳ２１７では、シーク動作のリトライ処理が可能か否かをコマンド解析・処理部１３ｃが判定する。リトライ処理が可能なとき判定が「はい」となってステップＳ２１８に移行する。リトライ処理が可能でないとき判定が「いいえ」となる。この場合、コマンドが処理されずに異常終了したという点が、ステップＳ２１３で判定が「いいえ」となる場合と同様なので、ステップＳ２１６に移行する。
【０１２９】
リトライ処理が可能か否かは実施の形態によって当業者が適切に定めることができる。例えば、リトライが許される回数の最大値が予め決められており、その回数に達するまではリトライが可能と判定してもよい。
【０１３０】
ステップＳ２１８では、シーク動作のリトライを実施したことを、ステップＳ２１４で利用したＲＡＭにコマンド解析・処理部１３ｃが記録する。そして、コマンド解析・処理部１３ｃの指示に基づいてリード・ライトヘッド制御部１５がシーク動作のリトライ処理を開始し、ステップＳ２０６に戻る。
【０１３１】
ステップＳ２１９とステップＳ２２０はリード系コマンドでもライト系コマンドでもないコマンドを処理するステップである。例えば、モードセレクトパラメータを指定するコマンドなどの制御系のコマンドは、ステップＳ２１９、Ｓ２２０で処理される。
【０１３２】
ステップＳ２１９では、コマンド解析・処理部１３ｃが必要に応じてリード・ライトヘッド制御部１５に指示を与えて当該コマンドを処理し、ステップＳ２２０に移行する。
ステップＳ２２０では、コマンド解析・処理部１３ｃがＩ／Ｆ処理部１２を介してホストコンピュータ１９に対し、コマンドの処理が終了したことを報告する。ステップＳ２２０で一連の処理は終了する。
【０１３３】
なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
図３の磁気ディスク装置１１のインターフェイスはＳＣＳＩだが、ＡＴＡ（AT Attachment）等の他の任意のインターフェイスでもよい。
【０１３４】
また、上記では、コマンドの実行時にエラーが発生するとリード・ライトヘッド制御部１５からコマンド解析・処理部１３ｃに報告され、エラー情報がエラー情報保存部１６ｂに記録されると説明した。しかし、別の実施形態では、エラーの発生を監視するファームウェアをエラー情報保存部１６ｂがさらに含んでいてもよい。そして、そのファームウェアが、リード・ライトヘッド制御部１５からコマンド解析・処理部１３ｃへの報告を監視してエラー情報を取得し、エラー情報保存部１６ｂを構成するＲＡＭにエラー情報を書き込むようにしてもよい。
【０１３５】
また、図３の各ブロックがファームウェアで実装される実施形態においては、複数のブロックの機能を一つのファームウェア・プログラムによって実現してもよい。例えば、コマンド解析・処理部１３ｃと故障予測時動作論理部１４は、別々のファームウェア・プログラムによって実現されてもよいし、一つのファームウェア・プログラムによって実現されてもよい。
【０１３６】
図４のステップＳ１０４において、待ち時間は５０ｍｓに限らず、任意の時間でよい。また、待ち時間は一定でもよいが、温度センサー１６ａによって検知された温度に応じて可変としてもよい。さらに、ステップＳ１０４において、コマンドキュー１３ａ内のコマンドの実行順序を、より待ち時間が増えるように並べ替えてもよい。あるいは、ステップＳ１０４で待ち時間を挿入するかわりにこの並べ替えだけを行ってもよい。いずれの方法も、待ち時間が増えることによってコマンドの実行間隔が空くため、温度上昇を抑える効果がある。
【０１３７】
図４のステップＳ１１４の処理は実施の形態によって様々である。上記の説明では再書き込み処理を一回試みてデータが適切に書き込まれなかった場合に交代ブロック割り付け処理を行っているが、別の実施形態では、所定の回数までは再書き込み処理を試みてもよい。さらに別の実施形態では、再書き込み処理を行わずに最初から交代ブロック割り付け処理を行ってもよい。
【０１３８】
図４では、ステップＳ１０１でコマンドキュー１３ａ内にコマンドがなく、アイドル状態の場合にステップＳ１１８〜Ｓ１２８の処理が行われる。しかし、別の実施形態では、アイドル状態が規定時間以上継続している場合のみステップＳ１１８〜Ｓ１２８の処理を行ってもよい。
【０１３９】
図２に示した故障予測条件と故障予測時動作の組み合わせは例にすぎない。これ以外の組み合わせも可能である。ある故障予測条件に対して、図２に示したもの以外の故障予測時動作をさらに組み合わせて実行してもよいし、図２に示した故障予測時動作のうち実行しないものがあってもよい。
【０１４０】
例えば、ライト系コマンドの実行をホストコンピュータ１９が磁気ディスク装置１１に指示した場合、図４では故障予測状態のときもステップＳ１０９でそのライト系コマンドが実行される。しかし、別の実施形態では、故障予測状態のときはライト系コマンドを実行せず、ホストコンピュータ１９に対してエラーを報告し、それによって現状のデータを保護してもよい。
【０１４１】
また、図２に示した以外にも様々な条件を故障予測条件として用いることができる。例えば、以下のような条件が利用可能である。
・  磁気ディスク装置１１の通電時間の総計が規定時間以上である
・  スピンドルモーターの起動回数（つまり電源のオン／オフ操作の回数）が規定値以上である
・  スピンドルモーターの起動時間が規定値以上である
・  ヘッド出力の低下を検出した
・  シークエラーレートが規定値以上である
・  シーク動作のリトライ回数が規定値以上である
・  リード動作のリトライ回数が規定値以上である
・  ライト動作のリトライ回数が規定値以上である
・  エラーが連続して発生した回数が規定値以上である
・  リード動作またはライト動作を行ったセクタの延べ数が規定値以上である
この他にも、ＳＭＡＲＴ機能を有する磁気ディスク装置において利用される各種の検査項目とその項目に対応する閾値によって、様々な故障予測条件を定義することが可能である。故障予測条件の種類によっては、温度センサー１６ａ以外のセンサーが必要になる場合もある。また、故障予測条件の定義によって、エラー情報保存部１６ｂの具体的構成も様々である。
【０１４２】
利用する故障予測条件によっては、さらに処理ステップが増えることもある。例えば、シークエラーに基づく故障予測条件を利用する実施形態では、図５のステップＳ２０７とステップＳ２１７の間で、ステップＳ２１２と同様にして、シークエラーの発生をコマンド解析・処理部１３ｃがエラー情報保存部１６ｂに記録する。また、シーク動作のリトライ回数に基づく故障予測条件を利用する実施形態では、図５のステップＳ２１７とステップＳ２１６の間で、ステップＳ２１５と同様にして、リトライが不可能であることをコマンド解析・処理部１３ｃがＲＡＭに記録する。
【０１４３】
なお、図２および上記の説明では故障予測条件の定義に「以上」または「以下」を使っているが、実施の形態によっては「……より大きい」や「……より小さい」を使っても構わない。また、図２および上記の故障予測条件は「規定温度以上での運用」等の単純な条件だが、例えば、「規定温度以上での運用が規定時間以上連続し、かつ、リードエラーレートが規定値以上」等、複数の条件を組み合わせて故障予測条件を定義してもよい。
【０１４４】
これまでの説明では、正常な状態から故障予測条件が成立した状態に移行した場合について述べ、その逆の場合については省略した。しかし、図４や図２に示した処理を行うことによって、正常状態に復帰することができる場合もある。
【０１４５】
正常状態への復帰は、温度センサー１６ａやエラー情報保存部１６ｂの情報に基づいて、故障予測条件判断部１６ｃが検知する。つまり、今まで成立していた故障予測条件が成立しなくなったことを故障予測条件判断部１６ｃが検知する。そして、故障予測条件判断部１６ｃから故障予測時動作論理部１４に正常状態への復帰を通知する。つまり、動作原理は、正常状態から故障予測状態になる場合と全く同様である。
【０１４６】
本発明は磁気ディスク装置以外の記憶装置、例えば、ＤＶＤ等の光ディスク装置やＭＯ（Magneto-Optical disk）等の光磁気ディスク装置にも適用可能である。
以上説明したことを概観すれば本発明は以下のような構成を備えるものである。
【０１４７】
（付記１）
記憶媒体からのデータの読み出しまたは該記憶媒体へのデータの書き込みを含む複数種類のうちいずれかの種類のコマンドを受け取り、該コマンドを実行する記憶装置であって、
故障の発生が予測される条件として予め定義された故障予測条件が成立するか否かを検出する故障予測条件検出手段と、
前記故障予測条件が成立することを前記故障予測条件検出手段が検出したとき、前記故障予測条件に対応して予め決められた動作の実行を指示する故障予測時動作論理手段と、
を備えることを特徴とする記憶装置。
（付記２）
前記故障予測条件検出手段は温度を検出する温度検出手段を含み、
前記故障発生予測条件は、予め定められた温度以上の温度が前記温度検出手段で検出されるということを条件とする、
ことを特徴とする付記１に記載の記憶装置。
（付記３）
前記故障発生予測条件に対応する前記動作は、シーク時の電流量を少なくする動作であることを特徴とする付記２に記載の記憶装置。
（付記４）
複数のコマンドをキューイングするコマンドキューをさらに備え、
前記故障発生予測条件に対応する前記動作は、前記コマンドキュー内のコマンドを待ち時間が少なくなるように並べ替えるのを禁止する動作である、
ことを特徴とする付記２に記載の記憶装置。
（付記５）
複数のコマンドをキューイングするコマンドキューをさらに備え、
前記故障発生予測条件に対応する前記動作は、前記コマンドキュー内のコマンドを待ち時間が増えるように並べ替える動作である、
ことを特徴とする付記２に記載の記憶装置。
（付記６）
前記故障発生予測条件に対応する前記動作は、二つの連続するコマンドの間に待ち時間を挿入する動作であることを特徴とする付記２に記載の記憶装置。
（付記７）
前記故障予測条件に対応して予め決められた前記動作の一つは、シーク動作における目的トラックへの位置決め条件を厳しくする動作であることを特徴とする付記１に記載の記憶装置。
（付記８）
前記故障予測条件に対応して予め決められた前記動作の一つは、前記コマンドが前記記憶媒体へのデータの書き込みを指示するコマンドの場合に実行すべき動作として決められており、
該動作は、該コマンドの実行後に、前記記憶媒体の前記データを書き込んだブロックからデータを読み出し、前記書き込んだデータと前記読み出したデータが一致するか否かを判定する判定動作を含む、
ことを特徴とする付記１に記載の記憶装置。
（付記９）
前記動作はさらに、前記判定動作で不一致と判定されたときに、前記コマンドで指示された前記データを再度前記ブロックに書き込む動作を含むことを特徴とする付記８に記載の記憶装置。
（付記１０）
前記動作はさらに、前記判定動作で不一致と判定されたときに、前記コマンドで指示された前記データを前記ブロックとは別のブロックに書き込む動作を含むことを特徴とする付記８に記載の記憶装置。
（付記１１）
前記コマンドが前記記憶媒体からのデータの読み出しを指示するコマンドであって、該コマンドを実行したときにリトライ処理によって回復可能なエラーが発生した場合に実行すべき動作として、前記故障予測条件に対応して予め決められた前記動作の一つが決められており、
該動作は、前記コマンドの実行後に、前記コマンドによって読み出された前記データを前記記憶媒体に書き込む動作を含む、
ことを特徴とする付記１に記載の記憶装置。
（付記１２）
前記動作は、前記記憶媒体の前記データを読み出したブロックに書き込む動作であることを特徴とする付記１１に記載の記憶装置。
（付記１３）
前記動作は、前記記憶媒体の前記データを読み出したブロックとは別のブロックに書き込む動作であることを特徴とする付記１１に記載の記憶装置。
（付記１４）
前記記憶装置を管理するためのシステム情報が前記記憶媒体に記録されており、
前記故障予測条件に対応して予め決められた前記動作の一つは、該システム情報の更新を禁止する動作である、
ことを特徴とする付記１に記載の記憶装置。
（付記１５）
前記故障予測条件に対応して予め決められた前記動作の一つは、コマンドの実行を行わない状態が予め決められた時間以上続いた場合に実行すべき動作として決められていることを特徴とする付記１に記載の記憶装置。
（付記１６）
さらにキャッシュメモリーを備え、
前記動作は該キャッシュメモリーの不具合を検査する動作である、
ことを特徴とする付記１５に記載の記憶装置。
（付記１７）
前記動作は、前記記憶媒体からデータを読み出して前記記憶媒体の不具合を検査する動作であることを特徴とする付記１５に記載の記憶装置。
（付記１８）
前記故障予測条件検出手段が、温度、エラーの発生数、エラーの発生割合、前記記憶装置の運用時間、前記記憶装置への通電操作を行った回数、のうち少なくとも一つを測定し、
前記故障予測条件は、該測定によって得られた値と予め決められた閾値との比較結果を用いて定義されている、
ことを特徴とする付記１に記載の記憶装置。
（付記１９）
記憶媒体からのデータの読み出しまたは該記憶媒体へのデータの書き込みを含む複数種類のうちいずれかの種類のコマンドを受け取り、該コマンドを実行する記憶装置を制御する方法であって、
故障の発生が予測される条件として予め定義された故障予測条件が成立するか否かを検出し、
成立することが検出された前記故障予測条件に対応して予め決められた動作の実行を指示する、
ことを特徴とする記憶装置を制御する方法。
（付記２０）
記憶媒体からのデータの読み出しまたは該記憶媒体へのデータの書き込みを含む複数種類のうちいずれかの種類のコマンドを受け取り、該コマンドを実行する制御装置であって、
故障の発生が予測される条件として予め定義された故障予測条件が成立するか否かを検出する故障予測条件検出手段と、
前記故障予測条件が成立することを前記故障予測条件検出手段が検出したとき、前記故障予測条件に対応して予め決められた動作の実行を指示する故障予測時動作論理手段と、
を備えることを特徴とする制御装置。
【図面の簡単な説明】
【０１４８】
【図１】本発明の原理を説明する図である。
【図２】故障予測条件と、それに対応する故障予測条件検出部のハードウェアおよび故障予測時動作の例を示す図である。
【図３】本発明の一実施形態における機能ブロック構成図である。
【図４】一実施形態における磁気ディスク装置の動作を示すフローチャートである。
【図５】一実施形態において磁気ディスク装置が行うコマンド処理のフローチャートである。
【符号の説明】
【０１４９】
１    磁気ディスク装置
２    Ｉ／Ｆ処理部
３    コマンド実行部
４    故障予測時動作論理部
５    リード・ライトヘッド制御部
６    故障予測条件検出部
７    キャッシュメモリー
８    ディスク媒体
９    ホストコンピュータ
１１    磁気ディスク装置
１２    Ｉ／Ｆ処理部
１３ａ  コマンドキュー
１３ｂ  コマンドリオーダリング制御部
１３ｃ  コマンド解析・処理部
１４    故障予測時動作論理部
１５    リード・ライトヘッド制御部
１６ａ  温度センサー
１６ｂ  エラー情報保存部
１６ｃ  故障予測条件判断部
１７    キャッシュメモリー
１８    ディスク媒体
１９    ホストコンピュータ
【図３】
2007310974.tif 000003
【図１】
2007310974.tif 000004
【図２】
2007310974.tif 000005
【図４】
2007310974.tif 000006
【図５】
2007310974.tif 000007