説明

記憶装置および制御装置

【課題】磁気ディスク装置が故障予測条件を検出したとき、たとえ警告を発しても、適切な措置がすぐに外部から講じられないと故障が発生してデータ消失などの損害が生じる、という問題を解決する。
【解決手段】磁気ディスク装置1は、故障予測条件検出部6と故障予測時動作論理部4を備える。故障予測条件検出部6は、故障予測条件の成立を検出すると故障予測時動作論理部4に通知する。故障予測時動作論理部4は通知を受けると、故障予測条件に応じて予め決められた故障予測時動作を実行するよう指示する。故障予測時動作は、正常状態への復帰を試みたりデータを保護したりする動作を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶装置、記憶装置の制御方法、および制御装置に関する。より詳細には、故障の発生が予測された状態において記憶装置を制御する方法および制御装置と、それにより制御される記憶装置に関する。
【背景技術】
【0002】
近年、多くのハードディスク装置(Hard Disk Drive。以後、「HDD」という)で、SMART(Self-Monitoring Analysis and Reporting Technology)機能が実装されている。SMART機能は、HDDが故障の発生を予測してホスト(当該HDDを活用するコンピュータ)に警告する機能である。
【0003】
SMART機能を有するHDDは、エラーの発生頻度等の各種の検査項目を監視している。そして、各検査項目の値と所定の閾値との比較結果に基づいて故障の発生を予測し、ホストに警告する。
【0004】
ホストは、HDDからの警告を受けると、そのHDDのデータをバックアップしたり、そのHDDから別のHDDに切り換えたり、HDDを交換するようユーザに警告したりする。このように適切な措置を行うことで、HDDの故障による損失(データの消失等)を抑えることができる。
【0005】
しかしながら、従来のSMART機能では、HDD自体は警告を出すだけで、警告後も正常時と同じようにコマンドの処理を行っていた。よって、その警告に対して適切な措置が適切な時期になされるか否かにHDD自体は関与することができない、という問題があった。
【0006】
例えば、HDDからの警告に対応することができないホストの場合、そのまま当該HDDの運用を続けてしまい、その結果HDDの状態が悪化して実際に故障が発生し、HDDが動作不能となることがある。あるいは、HDDからの警告に対してホストまたは人間が適切な期間内に対応することができない場合がある。この場合、HDDの交換等の何らかの措置をとるまでの期間中も当該HDDの運用をそのまま続けると、結果的にその期間中にHDDの状態が悪化して故障が発生し、データの一部を喪失してしまうことがある。
【0007】
なお、次のような従来技術があるが、いずれもこの問題を解決するものではない。
特許文献1のHDDは、落下の衝撃による損傷を防ぐための機構を有する。従来は、例えばノート型のコンピュータを人間が誤って落下させたとき、内蔵のHDDが落下の衝撃で損傷を受けていた。特許文献1のHDDは、加速度センサー等の情報から衝撃の発生を予測し、HDDの磁気ヘッドを所定の位置に退避させることにより、損傷を防ぐ。しかし、特許文献1は、衝撃による損傷への対策に特化しており、例えば経年劣化にともなって故障の発生が予測される場合については記載されていない。1秒未満で完結する落下の衝撃と、徐々に状態の悪化が進行する経年劣化では、異なる対処の仕方が求められる。
【0008】
特許文献2の装置はHDDを含む装置であり、HDDの状態を監視し、HDDに故障が発生しそうだと予測すると、HDDに記録されているファイルのうち予め指定されたものを、小容量の別のHDDにバックアップする。しかし、バックアップの制御にHDD自体が関与していないので、特許文献2は上記の問題を解決するものではない。
【0009】
特許文献3は、HDDを備えたデジタル画像形成装置に関する。この装置は、HDD内で故障が予測されたエリアの情報を、印刷出力したり、他の記憶装置やHDDの他の領域に転送したりして退避する。また、そのエリアを利用する特定のモードを禁止することもある。しかし、HDD自体がこれらの制御に関与しているわけではなく、特定のエリアに限らずHDD全体が影響を受ける場合(高温での運用により故障の発生が予期される場合等)についての記載もないので、上記の問題を解決するものではない。
【特許文献1】特開2004−146036号公報
【特許文献2】特開平9−6545号公報
【特許文献3】特許第3585691号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
本発明の目的は、故障の発生を予測するとともに、故障の発生が予測される状態では、正常な状態への復帰を試みる処理やデータを保護するための処理を自律的に行う記憶装置を提供することである。また、記憶装置をそのように制御する制御装置を提供することも本発明の目的である。
【課題を解決するための手段】
【0011】
本発明による記憶装置は、記憶媒体からのデータの読み出しまたは該記憶媒体へのデータの書き込みを含む複数種類のうちいずれかの種類のコマンドを受け取り、該コマンドを実行する記憶装置であり、故障予測条件検出手段と故障予測時動作論理手段とを備える。前記故障予測条件検出手段は、故障の発生が予測される条件として予め定義された故障予測条件が成立するか否かを検出する。前記故障予測時動作論理手段は、前記故障予測条件が成立することを前記故障予測条件検出手段が検出したとき、前記故障予測条件に対応して予め決められた動作の実行を指示する。
【0012】
また、本発明による制御装置は記憶装置を制御する装置であり、上記と同様の故障予測条件検出手段と故障予測時動作論理手段とを備える。
実施の形態によって、前記故障予測条件およびそれに対応して予め決められた前記動作は様々に異なるが、前記動作は、故障の発生が予測される状態から正常な状態への復帰を試みる動作や、データを保護するための動作を含む。また、ある実施形態において前記故障予測条件検出手段に必要な具体的な構成も、その実施形態における前記故障予測条件によって様々に異なる。
【0013】
前記故障予測条件検出手段と前記故障予測時動作論理手段の機能は、プログラムによって実現することもできる。
【発明の効果】
【0014】
本発明の記憶装置は、故障の発生を予測すると、外部からの指示によらず自律的に、正常な状態への復帰を試みる処理やデータの保護処理を行う。よって、故障の発生を予測する記憶装置からの警告に対してホストやユーザが対応することができずに記憶装置の運用を続ける場合や、ホストやユーザが何らかの対処をするまでに時間を要する場合に、本発明による記憶装置は、故障が発生するのを抑止し、または故障が発生するまでの時間を延長することができる。
【0015】
つまり、本発明の記憶装置は、故障の発生が予測された状態での運用において、従来に比べてより安全にデータを処理することができる。また、本発明の制御装置を用いて記憶装置を制御する場合も、同様の効果が得られる。よって、本発明は記憶装置の信頼性の向上に寄与するところが大きい。
【発明を実施するための最良の形態】
【0016】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図1は本発明の原理を説明する図である。記憶装置の一種である磁気ディスク装置1は、データの読み出しや書き込みなどのコマンドをホストコンピュータ9から受け取り、実行する装置である。磁気ディスク装置1の具体例はHDDである。本発明による磁気ディスク装置1には、従来の磁気ディスク装置と同様の部分と、本発明に独自の部分がある。
【0017】
磁気ディスク装置1は、従来の磁気ディスク装置と同様に、インターフェイス処理部2(以後「I/F処理部」という)、コマンド実行部3、リード・ライトヘッド制御部5、キャッシュメモリー7、および磁気ディスク媒体8を備える。また、磁気ディスク装置1は、SMART機能を搭載した従来の磁気ディスク装置と同様に、故障予測条件検出部6をさらに備える。磁気ディスク装置1は、さらに本発明独自の故障予測時動作論理部4を備える。なお、図1で各構成要素をつなぐ矢印は主な処理の方向を示している。片方向の矢印で示した箇所も、厳密には、逆向きの矢印で示される付随的な処理をともなう場合がある。
【0018】
磁気ディスク装置1は記憶媒体としてディスク媒体8を備え、データはディスク媒体8に記憶されている。
磁気ディスク装置1がHDDの場合、ディスク媒体8は磁性体を塗布した1枚以上のディスクからなり、不図示のスピンドルモーターがディスク媒体8を回転させる。また、ボイスコイルモーターにより駆動されるアームに磁気ヘッド(以後「ヘッド」という)が取り付けられており、ヘッドによって、ディスク媒体8上のデータの読み取りおよび書き込みが行われる。ボイスコイルモーター、アーム、ヘッドはいずれも従来の磁気ディスク装置において用いられているものであり、敢えて図示していない。なお、ディスク媒体8上のデータの読み取りおよび書き込みは、ホストコンピュータ9から磁気ディスク装置1に送られたコマンドにしたがって実行される。
【0019】
ホストコンピュータ9は、磁気ディスク装置1を活用するコンピュータである。「ホスト」という名称は、磁気ディスク装置1に対して上位にあることを示すためのものであり、コンピュータの種類を特定する趣旨ではない。ホストコンピュータ9は、パーソナルコンピュータやワークステーション等、任意の種類のコンピュータでよい。また、磁気ディスク装置1はホストコンピュータ9に外付けされたものでもよく、磁気ディスク装置1とホストコンピュータ9が同一の筐体に収められていてもよい。
【0020】
I/F処理部2は、ホストコンピュータ9との通信を行うインターフェイスである。I/F処理部2を介して、コマンド、そのコマンドの処理対象のデータ、磁気ディスク装置1のステータス情報などが、磁気ディスク装置1とホストコンピュータ9の間でやりとりされる。
【0021】
ホストコンピュータ9から磁気ディスク装置1に送られたコマンドは、I/F処理部2で受信され、コマンド実行部3に送られる。コマンド実行部3は受け取ったコマンドを解析し処理する。つまり、コマンド実行部3はコマンドを解析して、当該コマンドを実行するためにヘッドをディスク媒体8上のどの位置に移動させるかを計算する。
【0022】
例えば、磁気ディスク装置1がHDDであり、ディスク媒体8が複数のディスクからなるとき、ヘッドもそれに対応して複数ある。この場合、コマンド実行部3は、実行すべきコマンドの処理対象ブロックのディスク媒体8上での物理位置(シリンダ番号、ヘッド番号、トラック番号によって示される)を計算し、その結果をリード・ライトヘッド制御部5に通知する。
【0023】
また、コマンド実行部3は、そのコマンドがディスク媒体8へのデータの書き込みをともなうコマンドのとき、I/F処理部2を介してホストコンピュータ9に対しデータの転送を要求する。
【0024】
コマンド実行部3による計算結果に基づいて、リード・ライトヘッド制御部5は、ヘッドの位置決め制御(シーク制御)およびリード・ライト制御を行う。それによって、ディスク媒体8に記憶されたデータの読み取り、またはディスク媒体8へのデータの書き込みが実行される。つまり、コマンド実行部3とリード・ライトヘッド制御部5が協働してコマンドを実行している。
【0025】
キャッシュメモリー7は、リードデータまたはライトデータを一時格納するためのメモリーであって、半導体メモリーで構成される。キャッシュメモリー7によって、ディスク媒体8へのアクセスの遅さをホストコンピュータ9に対して隠蔽することが可能となる。例えばホストコンピュータ9がライト系コマンドを発した場合、上記のようにコマンド実行部3からの要求に基づいてホストコンピュータ9から送られたデータは一旦キャッシュメモリー7に書き込まれる。そして、コマンド実行部3とリード・ライトヘッド制御部5によって、このデータがディスク媒体8に書き込まれる。
【0026】
以上は、正常時のコマンド処理である。ところで、詳しくは図2とあわせて後述するが、磁気ディスク装置1の故障が予測される条件(以下では「故障予測条件」という)が、温度や各種のエラーレートなどに基づいて予め一つ以上定められている。ここで、エラーレートとは、リードエラーレート、ライトエラーレート、シークエラーレートなどの総称である。
【0027】
故障予測条件検出部6は、温度やエラーレートなどを監視することによって、いずれかの故障予測条件が成立するか否かを検出する。この点は、SMART機能を有する従来の磁気ディスク装置と同様である。
【0028】
従来と本発明の違いは、故障予測条件が一つでも成立する場合(以後「故障予測状態」とよぶ)、故障予測条件検出部6が、故障予測時動作論理部4に通知する点である。また、各故障予測条件に対応してその故障予測条件が成立するときに実行すべき動作(以後「故障予測時動作」とよぶ)が予め定められている点も従来と異なる。
【0029】
故障予測時動作の例は、故障予測状態から正常な状態(つまり故障予測条件が成立しない状態)に復帰するための動作や、データを保護する動作である。一つの故障予測条件に対応する故障予測時動作は一つでもよく、複数の動作の組み合わせでもよい。また、異なる故障予測条件に対して同一の故障予測時動作が対応していてもよい。
【0030】
上記の説明では省略したが、図1の実施形態においてコマンド実行部3は、コマンドを解析するとき故障予測時動作論理部4に故障予測状態か否かを問い合わせている。故障予測状態でなければ、コマンド実行部3は上記のとおりにコマンドを処理する。故障予測状態の場合は、条件成立が検出された故障予測条件に対応する故障予測時動作を行うよう、故障予測時動作論理部4がコマンド実行部3に指示する。コマンド実行部3は、故障予測時動作を実行しながらコマンドを処理する。また、コマンド実行部3はI/F処理部2を介してホストコンピュータ9に警告を送信する。このようにして、正常時(故障予測状態でないとき)と故障予測状態のときで異なる処理が行われる。
【0031】
別の実施形態によっては、実行すべきコマンドがない場合(つまりアイドル状態のとき)に、故障予測時動作論理部4からの指示にしたがってコマンド実行部3がデータ保護処理を実行してもよい。
【0032】
以上のようにして、本発明の磁気ディスク装置1は、ホストコンピュータ9に警告を送信するだけでなく、故障予測時動作論理部4の指示に基づいて自律的に故障予測状態に対して適切な措置を講じる(つまり故障予測時動作を実行する)。それによって、磁気ディスク装置1が正常な状態に復帰したり、実際に故障が発生するまでの時間を引き延ばしたり、データ消失などの損害が発生する可能性を低くしたりすることが可能となる。
【0033】
なお、図1は機能的なブロックを示したものである。図1のうち、キャッシュメモリー7とディスク媒体8はそれぞれ異なるハードウェアを示しているが、残りのI/F処理部2、コマンド実行部3、故障予測時動作論理部4、リード・ライトヘッド制御部5、故障予測条件検出部6は、実施の形態に応じて、各ブロックをそれぞれハードウェア回路によって実現してもよく、各ブロックをファームウェアで実現してもよい。ファームウェアで各ブロックを実現する場合、ハードウェアはこれらの機能ブロックで共通していてもよい。もちろん、一部のブロックをハードウェア回路で実現し、一部のブロックをファームウェアで実現してもよい。また、一つのブロックの機能のうち一部をハードウェアで実現し、一部をファームウェアで実現してもよい。
【0034】
例えば、ある実施形態において、I/F処理部2、コマンド実行部3、故障予測時動作論理部4、リード・ライトヘッド制御部5の四つの機能ブロックは、ファームウェアにより実現され、ハードウェアは共通である。また、故障予測条件検出部6はセンサー等の固有のハードウェアと、ファームウェアにより実現されるそれ以外の部分とを含む。そのファームウェアに対応するハードウェアは、上記四つの機能ブロックと共通である。
【0035】
例えば、これらの機能ブロックを実現する共通のハードウェアは、プロセッサと、フラッシュメモリーやROM(Read Only Memory)等の不揮発性メモリーと、RAM(Random Access Memory)等の揮発性メモリーとを含むコンピュータとすることができる。そして、上記のそれぞれの機能ブロックの機能を実現するファームウェア・プログラムが不揮発性メモリーに記憶されており、それらのファームウェア・プログラムがプロセッサにロードされて実行されることにより、上記のそれぞれの機能ブロックの機能が実現される。
【0036】
ファームウェア・プログラムをコンピュータ読み取り可能な可搬型記憶媒体に記憶することも可能である。可搬型記憶媒体の例は、CD(Compact Disc)やDVD(Digital Versatile Disk)などの光ディスク、光磁気ディスク、フレキシブルディスクなどである。また、プログラム提供者がネットワークを通じてファームウェア・プログラムを提供してもよい。上記の不揮発性メモリーが書き換え可能な場合、可搬型記憶媒体に記憶された、またはプログラム提供者から提供されたファームウェア・プログラムを、I/F処理部2を介して磁気ディスク装置1に読み込むことによって、ファームウェア・プログラムを更新することも可能である。それによって、例えば、故障予測条件と故障予測時動作の対応を更新することが可能である。
【0037】
図2は、故障予測条件と、それに対応する故障予測条件検出部6のハードウェアおよび故障予測時動作の例を示す図である。図2(a)表中の「故障予測条件」列は故障予測条件の例を示す。「故障予測条件検出部」列は、図1の故障予測条件検出部6に含まれるハードウェアのうち、その行の故障予測条件を検出する部分を示す。「故障予測時動作」列はその行の故障予測条件が検出されたとき、故障予測時動作論理部4がコマンド実行部3に指示する動作の内容を示す。
【0038】
例えば、故障予測条件検出部6が温度センサーを含む実施形態において、その温度センサーが規定温度以上の温度を検出すると、表中の故障予測条件(A)が成立する。よって、故障予測条件検出部6が故障予測時動作論理部4にその旨を通知する。そして、コマンド実行部3からの問い合わせに対して、図2(b)表中の故障予測時動作(1)〜(7)を行うよう故障予測時動作論理部4がコマンド実行部3に指示する。故障予測時動作(1)〜(7)の詳細は、図4とあわせて後述する。
【0039】
なお、故障予測条件(A)と(B)に示した「規定温度」とは、磁気ディスク装置1の仕様として予め定められている温度であり、磁気ディスク装置1の正常な動作が保証される温度の、それぞれ上限と下限である。
【0040】
図3は、本発明の一実施形態における機能ブロック構成図である。本実施形態による磁気ディスク装置11は、SCSI(Small Computer System Interface)インターフェイスを装備した磁気ディスク装置であり、図1の磁気ディスク装置1とほぼ同様の構成である。図3も図1と同様に、矢印の向きは主な流れのみを示している。
【0041】
I/F処理部12は、図1のI/F処理部2に対応する。I/F処理部12のインターフェイス形式はSCSIインターフェイスである。
コマンドキュー13a、コマンドリオーダリング制御部13bおよびコマンド解析・処理部13cは、図1のコマンド実行部3に含まれる。
【0042】
コマンドキュー13aは、ホストコンピュータ19からI/F処理部12を介して受領したコマンドを格納するキューである。図3では、「コマンド#1」から「コマンド#n」までのn個のコマンドをコマンドキュー13aに保存することが可能にされている。コマンドキュー13aを実現するハードウェアは、例えばRAMである。
【0043】
コマンドリオーダリング制御部13bは、コマンドキュー13a内のコマンドの実行順序を決定する。正常な状態では、コマンドリオーダリング制御部13bは、最も効率的に(つまり最も高速に)処理できるようにコマンドの実行順序を決定する。本実施形態では、コマンドリオーダリング制御部13bはファームウェアにより実現される。
【0044】
コマンド解析・処理部13cは、コマンドリオーダリング制御部13bで決定した順序でコマンドを実行する。コマンドを実行するためにコマンド解析・処理部13cは、当該コマンドの処理対象のブロックのディスク媒体18上での物理位置を計算し、リード・ライトヘッド制御部15に通知する。本実施形態ではコマンド解析・処理部13cもファームウェアにより実現される。
【0045】
故障予測時動作論理部14とリード・ライトヘッド制御部15は、それぞれ図1の故障予測時動作論理部4とリード・ライトヘッド制御部5に対応する。これらは図1と同様なので説明を省略する。
【0046】
温度センサー16a、エラー情報保存部16bおよび故障予測条件判断部16cは、図1の故障予測条件検出部6に含まれる。
温度センサー16aは温度を監視し、温度情報を出力するハードウェアである。温度センサー16aは、磁気ディスク装置11の筐体の内部に設置されることが好ましい。当業者ならば温度センサー16aの設置位置を適切に定めることができる。
【0047】
エラー情報保存部16bは、エラー情報を記録している。エラー情報保存部16bを実現するハードウェアは、例えば、レジスタや、RAM等の揮発性メモリーである。例えば図2の故障予測条件(C)と(D)を利用する実施形態の場合、エラー情報保存部16bはリードエラーカウンタとライトエラーカウンタを含んでもよいし、リードエラーレートとライトエラーレートを記録する保存部(レジスタやRAM等)を含んでもよい。
【0048】
エラー情報は次のようにしてエラー情報保存部16bに記録される。まず、リード処理やライト処理でエラーが発生すると、リード・ライトヘッド制御部15がエラーの発生を検知し、コマンド解析・処理部13cに報告する。それによってコマンド解析・処理部13cがエラーの発生を検知する。そしてコマンド解析・処理部13cがそのエラー情報をエラー情報保存部16bに記録する。
【0049】
故障予測条件判断部16cは、温度センサー16aとエラー情報保存部16bから得られる情報をもとに、故障予測条件が成立するか否かを判断する。本実施形態では故障予測条件判断部16cはファームウェアにより実現される。
【0050】
故障予測条件判断部16cは、定期的に温度センサー16aやエラー情報保存部16bの情報を読み取ってもよい。あるいは、温度センサー16aが自分から故障予測条件判断部16cに情報を出力してもよい。または、エラーが発生してコマンド解析・処理部13cがエラー情報保存部16bを書き換えたときに、コマンド解析・処理部13cが故障予測条件判断部16cに通知するのでもよい。
【0051】
例えば、故障予測条件判断部16cは一定の時間ごとに温度センサー16aから温度を取得し、その温度が規定温度以上となる状態が規定時間以上続いた場合に、高温での運用を要因とする故障予測条件(図2の故障予測条件(A)に該当)が成立したと判断してもよい。
【0052】
キャッシュメモリー17、ディスク媒体18、ホストコンピュータ19はそれぞれ図1のキャッシュメモリー7、ディスク媒体8、ホストコンピュータ9に対応する。これらは図1と同様である。
【0053】
なお、図には示していないが、キャッシュメモリー17を制御するためのファームウェアまたはハードウェア回路も必要である。例えばそのファームウェア・プログラムは、コマンド解析・処理部13cのファームウェア・プログラムの一部として組み込まれたものでもよく、独立したものでもよい。
【0054】
図4は、一実施形態における磁気ディスク装置11の動作を示すフローチャートである。図4の処理は、磁気ディスク装置11が動作している間、繰り返し実行される。なお、故障予測条件の成立が検出されたときにホストコンピュータ19に警告する機能に関するステップは従来と同様なので、図4では省略した。
【0055】
ステップS101では、コマンドキュー13a内にコマンドがあるか否かをコマンドリオーダリング制御部13bが判定する。コマンドキュー13aにコマンドが存在するとき、判定は「はい」となり、コマンドを処理するためにステップS102に移行する。コマンドキュー13aにコマンドが存在しないとき、判定は「いいえ」となる。この場合は、磁気ディスク装置11が待機状態(アイドル状態)なので、磁気ディスク装置11を保守するためにステップS118に移行する。
【0056】
ステップS102からステップS117は、コマンドキュー13aにコマンドが存在するときに実行されるステップで、コマンドおよび故障予測状態での故障予測時動作を実行するステップである。
【0057】
ステップS102では、コマンド解析・処理部13cが故障予測時動作論理部14に故障予測状態か否かを問い合わせる。故障予測状態のときステップS102の判定は「はい」となり、ステップS103に移行する。故障予測状態でないとき判定は「いいえ」となり、ステップS105に移行する。
【0058】
ステップS103では、故障予測条件が成立したのは高温のためか否かが判定される。例えば、ステップS102の問い合わせの結果に基づいて判定してもよいし、再度コマンド解析・処理部13cが故障予測時動作論理部14に問い合わせて判定してもよい。高温のために故障予測状態と判定された場合は判定が「はい」となってステップS104に移行し、それ以外の場合は判定が「いいえ」となってステップS105に移行する。図2の例では、故障予測条件(A)が成立する場合のみステップS103の判定が「はい」となる。
【0059】
ステップS104は、故障予測条件(A)に対応する故障予測時動作(2)の具体例であり、故障予測時動作論理部14がコマンド解析・処理部13cに与える指示にしたがって実行される。
【0060】
ステップS104では、50msの間、コマンド解析・処理部13cがリード・ライトヘッド制御部15に命令を与えるのを待つ。つまり、コマンド解析・処理部13cが50msの回転待ち時間を挿入することにより、コマンドの実行間隔を大きくする。磁気ディスク装置11(特にディスク媒体18)の発熱要因は主にコマンドの実行(特にシーク動作)によるものなので、ステップS104の処理は、磁気ディスク装置11の温度上昇を抑える効果がある。
【0061】
前述のように図4の処理は繰り返し実行されるが、繰り返しのたびにステップS104が実行されると、例えば図2の故障予測条件(A)の規定温度未満の温度にまで磁気ディスク装置11の温度が下がることもある。つまり、ステップS104の故障予測時動作を実行することにより、磁気ディスク装置11が故障予測状態から正常状態に復帰することも可能である。50msの間待ったらステップS106に移行する。
【0062】
ステップS105では、コマンドリオーダリング制御部13bがコマンドキュー13a内のコマンドの実行順序を決定する。ステップS105が実行されるのは、正常な状態のときか、高温以外の要因で故障予測条件が成立した状態のときである。よって、ステップS105では磁気ディスク装置11の温度上昇を抑えなくてもよいため、コマンドリオーダリング制御部13bは、コマンドキュー13a内のコマンドが最速で処理されるように(待ち時間が少なくなるように)実行順序を最適化して並べ替える。並べ替えたらステップS106に移行する。
【0063】
なお、高温のために故障予測状態と判定された場合はステップS105が実行されない。換言すれば、この場合は、ステップS105の実行を禁止するという故障予測時動作が実行される。よって、コマンドキュー13a内のコマンドは最適化されない状態である。この場合、ステップS105の処理を行う場合に比べて、コマンドとコマンドの間の待ち時間が長く、ヘッドを動かす頻度が少ないので、磁気ディスク装置11の温度上昇が抑えられる。
【0064】
ステップS106では、ステップS102と同様に故障予測状態か否かが判定される。故障予測状態のとき判定が「はい」となってステップS108に移行する。ステップS108〜S117は、故障予測時動作として実行するよう故障予測時動作論理部14がコマンド解析・処理部13cに指示する動作の具体例である。故障予測状態でないとき判定が「いいえ」となってステップS107に移行する。
【0065】
ステップS107では、コマンドキュー13aのコマンドのうち最初に処理すべきコマンドが処理される。詳細は図5とあわせて後述するが、当該コマンドを実行するための指示をコマンド解析・処理部13cがリード・ライトヘッド制御部15に与える。ステップS107のコマンド処理には、正常に処理することができなかった場合のリトライ処理も含む。コマンドを処理したらステップS101に戻る。
【0066】
ステップS108では、コマンド解析・処理部13cがリード・ライトヘッド制御部15に指示して、シーク動作の動作モードを切り替える。本実施形態では、次の二つの切り替えが実行される。
【0067】
第一に、高温に起因する故障予測条件が成立している場合、リード・ライトヘッド制御部15は、シーク時にボイスコイルモーターに流す電流量を少なくする。これにより、シーク動作が正常時よりも低速に行われ、消費電力量が減り、発熱量が減る。
【0068】
第二に、成立している故障予測条件の種類によらず、リード・ライトヘッド制御部15はヘッド追従条件を強化する。つまり、リード・ライトヘッド制御部15は、ヘッドを目的のトラックの位置に移動させるための位置決め条件をより厳しくする。例えば、複数の条件の論理積(AND)によって位置決め条件が定義されている場合は、位置決め条件の構成要素の条件の数を増やす。これにより、正常な状態における条件よりも厳しい条件を満たさないとヘッドが目的の位置で安定したと見なされなくなるため、より確実にヘッドがトラックの中央部に位置するようになる。
【0069】
例えば、トラック上に記録された位置情報を読み取りつつシーク動作を行い、正常な状態では、読み取った位置情報が連続して2回、目的のトラック位置を示しているときに目的の位置にヘッドが移動して安定したと見なす仕様を仮定する。この場合、例えば、読み取った位置情報が連続して4回、目的のトラック位置を示しているときに目的の位置にヘッドが移動して安定したと見なすことにすることが、ヘッド追従条件の強化に相当する。この結果、シーク時間が正常時よりも長くなるが、ヘッドの位置が不適切なことに起因するエラー(例えば、トラックの中心からずれた場所にデータを書き込んだせいで、その後のリード系コマンドの実行時に生じるエラー)の発生は抑制される。
【0070】
上記のような動作モードの切り替えの実行後、ステップS109に移行する。
ステップS109では、ステップS107と同様に、コマンドキュー13aのコマンドのうち最初に処理すべきコマンドが処理される。コマンドの処理後、ステップS110に移行する。
【0071】
ステップS110では、コマンドが正常に終了したか否かをコマンド解析・処理部13cが判定する。コマンドが正常に終了したとき判定が「はい」となりステップS111に移行する。コマンドが異常終了したとき判定が「いいえ」となりステップS101に戻る。なお、コマンドが異常終了した場合は、ステップS109のコマンド処理のときにホストコンピュータ19に異常を通知済みである(図5とあわせて後述)。
【0072】
ステップS111では、ステップS109で処理したコマンドがライト系コマンドか否かをコマンド解析・処理部13cが判定する。ライト系コマンドなら判定が「はい」となりステップS112に移行し、それ以外の場合は判定が「いいえ」となってステップS115に移行する。なお、「ライト系コマンド」とは、ディスク媒体18にデータを書き込むコマンドの総称である。
【0073】
ステップS112〜S114の処理は、ライト系コマンドの実行後に行うデータ保護のための処理である。つまり、ホストコンピュータ19からの指示がなくても磁気ディスク装置11が自律的にディスク媒体18のベリファイを行う処理である。
【0074】
ステップS112では、まず、ステップS109で処理したコマンド(ライト系コマンド)によりデータを書き込んだブロックのディスク媒体18上での物理位置をコマンド解析・処理部13cが算出し、リード・ライトヘッド制御部15に通知する。そして、リード・ライトヘッド制御部15がそのブロックからデータを読み出し、ステップS113に移行する。
【0075】
ステップS113では、ステップS112で読み出したデータが、ステップS109で書き込んだデータと一致するか否かを判定する。一致する場合、判定は「はい」となる。この場合、ステップS109でライト系コマンドが適切に処理されていたので、ステップS101に戻る。一致しない場合、判定は「いいえ」となる。この場合、ステップS109でライト系コマンドは適切に処理されていなかったので、データ保護のためにステップS114に移行する。
【0076】
ステップS114では、再書き込み処理や交代ブロック割り付け処理をコマンド解析・処理部13cが行い、これによりデータ保護を実現する。つまり、ステップS109で適切に書き込まれなかったデータをステップS114で適切に書き込むことによって、後でそのデータを読み込んで利用することが可能な状態にする。本実施形態では、ステップS114で以下のような処理をコマンド解析・処理部13cが行う。
【0077】
まず、コマンド解析・処理部13cは再書き込み処理を試みる。ステップS109で処理したライト系コマンドのライトデータはキャッシュメモリー17に記憶されているので、コマンド解析・処理部13cはリード・ライトヘッド制御部15に指示を与え、ステップS109で書き込んだ位置に再びこのデータを書き込ませる。
【0078】
そして、ステップS112と同様に書き込んだデータを読み出し、読み出したデータが書き込んだデータと一致するか否かを判定する。一致する場合は、再書き込み処理によってデータが適切に書き込まれたので、ステップS114の処理は終了し、ステップS101に戻る。
【0079】
一致しない場合は、再書き込み処理でも適切にデータを書き込むことができなかった場合である。このとき、交代ブロック割り付け処理を行う。すなわち、コマンド解析・処理部13cは、ステップS109で書き込んだのとは別の未使用ブロックを当該ライト系コマンドに対応する交代ブロックとして割り付ける。そして、リード・ライトヘッド制御部15に指示を与えて、キャッシュメモリー17に記憶されているライトデータをそのブロックに書き込ませる。さらにコマンド解析・処理部13cは、リード・ライトヘッド制御部15に指示を与えて、書き込んだデータを読み込ませる。そして、書き込んだデータと読み込んだデータが一致するか否かをコマンド解析・処理部13cが判定する。一致する場合は、交代ブロック割り付け処理によってデータが適切に書き込まれたので、ステップS114の処理は終了し、ステップS101に戻る。
【0080】
一致しない場合は、上記と同様にして交代ブロックに対する再書き込み処理を行ってもよく、さらに別の交代ブロックを割り付けてもよい。それらの処理によって書き込むべきデータが適切に書き込まれたことが確認されたら、ステップS114の処理は終了し、ステップS101に戻る。
【0081】
ステップS115では、ステップS109で処理したコマンドがリード系コマンドか否かをコマンド解析・処理部13cが判定する。リード系コマンドなら判定が「はい」となりステップS116に移行し、それ以外の場合は判定が「いいえ」となってステップS101に戻る。なお、「リード系コマンド」とは、ディスク媒体18からデータを読み出すコマンドの総称である。また、判定が「いいえ」となるのは、ステップS109で処理したコマンドがライト系コマンドでもリード系コマンドでもない場合で、例えば、制御系のコマンドの場合である。
【0082】
ステップS116とステップS117は、リード系コマンドの実行後に行うデータ保護のための処理である。
ステップS116では、ステップS109でリード系コマンドを処理した際に、回復可能なエラーが発生したか否かをコマンド解析・処理部13cが判定する。ステップS116が実行されるのは、ステップS109で行われたリード系コマンドの処理が正常に終了した場合のみだが、ステップS109の処理はリトライ処理も含む。よって、何の問題もなくリード系コマンドが処理された第一の場合と、エラーが発生したが、そのエラーはリトライによって回復可能なものだったために、リトライによって最終的には正常にリード系コマンドを処理することができた第二の場合がある。第二の場合には、例えば、読み込む対象のデータが以前に書き込まれたとき、ヘッドがトラックの中心位置からずれた状態で書き込まれてしまった場合や、ディスク媒体18に傷がついており、数回に一回しか正常にデータを読み取れない場合が該当する。
【0083】
第一の場合、ステップS116の判定は「いいえ」となってステップS101に戻る。第二の場合、判定が「はい」となってステップS117に移行する。
ステップS117では、ステップS114と類似の再書き込み処理や交代ブロック割り付け処理をコマンド解析・処理部13cが行い、これによりデータ保護を実現する。
【0084】
ステップS117が実行されるのは上記第二の場合なので、データは適切に読み取り済みである。よって、この読み取ったデータを使って、コマンド解析・処理部13cが再書き込み処理や交代ブロック割り付け処理を実行する。つまり、トラックの中心位置からずれた箇所に書き込まれていたデータをトラックの中心位置に書き直したり、ディスク媒体18の傷ついた領域から別の正常な領域にデータを書き直したりする処理を実行する。これにより、そのデータに対して今後リード系コマンドを実行する際、より高い信頼度で読み込むことができるようになる。
【0085】
これらの処理の終了後、ステップS101に戻る。
ステップS118〜S128はコマンドキュー13a内にコマンドがなく、磁気ディスク装置11がアイドル状態のときに実行される。これらの処理は磁気ディスク装置11を保守するための処理である。
【0086】
ステップS118では、故障予測状態か否かが判定される。この判定は、ステップS102と同様である。故障予測状態のとき判定は「はい」となり、ステップS119に移行する。ステップS119〜S125は、故障予測時動作に相当する。故障予測状態でないとき判定は「いいえ」となり、ステップS126に移行する。
【0087】
ステップS119では、故障予測条件が成立したのは高温のためか否かが判定される。この判定は、ステップS103と同様である。高温のために故障予測状態と判定された場合は判定が「はい」となってステップS120に移行し、それ以外の場合は判定が「いいえ」となってステップS123に移行する。
【0088】
ステップS120〜S122は、高温のために故障予測状態と判定された場合に実行される。温度はディスク媒体18だけでなくキャッシュメモリー17にも影響があるため、この場合はキャッシュメモリー17をテストし必要に応じてエラー回復処理を行うことが望ましい。
【0089】
ステップS120では、キャッシュメモリー17のベリファイが行われる。上述のとおり、例えば、キャッシュメモリー17を制御するためのファームウェアが磁気ディスク装置11には備えられている。ステップS120ではこのファームウェアが、キャッシュメモリー17に対するリード/ライトテストを実行し、キャッシュメモリー17に不具合がないか否かを検査する。
【0090】
テストの具体的な方法は、実施の形態によって任意に選択することができ、リードテストとライトテストの一方のみを行ってもよい。例えば、巡回冗長検査(Cyclic Redundancy Check;CRC)や誤り検出・訂正(Error Check and Correct;ECC)を行ってもよい。その場合、もしエラーを訂正することが不可能な領域が見つかれば、その領域の使用を禁止する処理を行う。テストの実行後、ステップS121に移行する。
【0091】
ステップS121では、ステップS120のテストが正常に終了したか否かを、キャッシュメモリー17を制御する上記のファームウェアが判定する。なお、コマンド解析・処理部13cがキャッシュメモリー17の制御も行っているような別の実施形態では、コマンド解析・処理部13cがステップS120とS121を実行する。
【0092】
テストが正常に終了した場合、判定が「はい」となってステップS123に移行し、テストが正常に終了しなかった場合、判定が「いいえ」となってステップS122に移行する。
【0093】
ステップS122では、キャッシュメモリー17のエラー回復処理を行う。具体的にはステップS114やステップS117と類似の再書き込み処理や交代ブロック割り付け処理である。例えば、ステップS120で特定のデータを利用してライトテストを行い、あるブロックでそのデータを正しく書き込めなかった場合、ステップS122では交代ブロックを割り付ける処理を行う。エラー回復処理の実行後、ステップS123に移行する。
【0094】
ステップS123〜S125は、故障予測状態のときにディスク媒体18のベリファイを実行し、必要に応じてエラー回復処理を行うためのステップである。
ステップS123では、コマンド解析・処理部13cがリード・ライトヘッド制御部15に指示することによってディスク媒体18のリードテストを行う。リードテストの終了後、ステップS124に移行する。
【0095】
ステップS124では、ステップS123のリードテストが正常に終了したか否かをコマンド解析・処理部13cが判定する。テストが正常に終了した場合、判定が「はい」となってステップS126に移行し、そうでない場合は判定が「いいえ」となってステップS125に移行する。
【0096】
ステップS125では、コマンド解析・処理部13cがリード・ライトヘッド制御部15に指示することによってエラー回復処理を実行する。具体的には、ステップS117と同様の再書き込み処理や交代ブロック割り付け処理を実行する。これにより、例えばトラックの中心からずれた位置に書き込まれていたデータがトラックの中心位置に再書き込みされ、そのデータに対して別のリード系コマンドが今後実行されるときに、エラーの発生を抑えることができる。つまり、ステップS125は、アイドル状態の間に磁気ディスク装置11が外部からの指示によらず自律的に正常状態への復帰を試みる処理である。エラー回復処理の実行後、ステップS126に移行する。
【0097】
ステップS126〜S128は、磁気ディスク装置11のシステム情報に関する処理である。システム情報は、磁気ディスク装置11自体の管理や制御に使われる情報である。本実施形態では、ファームウェアとして実装され図3には不図示のシステム情報管理部によって、システム情報が管理されている。
【0098】
システム情報の例は、磁気ディスク装置11の動作モードを設定するためのモードセレクトパラメータや、磁気ディスク装置11の運用に関する各種の統計情報等である。システム情報は、通常のリード系コマンドやライト系コマンドによって磁気ディスク装置11からアクセスすることができない。システム情報は、ディスク媒体18に記憶されていてもよい。あるいは、コマンド解析・処理部13cや故障予測時動作論理部14等のファームウェア・プログラムを記憶した不揮発性メモリーに、システム情報が記憶されていてもよい。
【0099】
ステップS126では、システム情報管理部が、システム情報の定期更新時期か否かを判定する。更新時期になっていれば判定が「はい」となってステップS127に移行し、まだ更新時期でなければ判定が「いいえ」となってステップS101に戻る。
【0100】
ステップS127では、故障予測状態か否かが判定される。この判定はステップS102と同様である。故障予測状態のとき判定は「はい」となり、ステップS101に戻る。故障予測状態でないとき判定は「いいえ」となり、ステップS128に移行する。
【0101】
ステップS128では、システム情報管理部がシステム情報を更新する。システム情報の更新後、ステップS101に戻る。
ステップS126とS128は従来のHDDでも行われる処理だが、ステップS127の判定は本発明に独自の動作である。ステップS127の判定が「はい」のときステップS101に戻るが、これはステップS128の実行を禁止するという故障予測時動作である。
【0102】
以上説明したようにして、磁気ディスク装置11が動作している間、図4の処理が繰り返し実行される。
次に、図2と図4の対応を説明する。
【0103】
図2(a)表中の故障予測条件(A)〜(D)のうち一つでも条件が成立すれば、図4のステップS102、S106、S118、S127で故障予測状態であると判定される。また、故障予測条件(A)が成立すれば、図4のステップS103、S119で、故障予測条件が成立したのは高温のためだと判定される。
【0104】
故障予測時動作(図2(b)表中の(1)〜(7))と図4のステップは次のように対応している。(1)はステップS108に、(2)はステップS104に、(3)はステップS108に、(4)はステップS112〜S114に、(5)はステップS117に、(6)はステップS126〜S128に、(7)はステップS119〜S125に、それぞれ対応する。
【0105】
ところで、図2によれば、故障予測条件(C)(リードエラーレートが規定値以上)が成立する場合、故障予測時動作(4)(書き込み箇所のベリファイ)を実行するよう指示されている。一見、故障予測条件と故障予測時動作の関連性が薄いようだが、リードエラーは、読み取るべきデータが前回書き込まれた際に問題があったために生じることが多い。故障予測条件と故障予測時動作の対応は、このようにエラーの発生原因を分析して定めることが好ましい。
【0106】
次に図5を参照して、図4のステップS107およびステップS109で実行される処理を説明する。図5は、一実施形態において磁気ディスク装置11が行うコマンド処理のフローチャートである。
【0107】
磁気ディスク装置11は、複数の動作モードのうちモードセレクトパラメータによって指定された動作モードで動作する。例えば、コマンド処理においてホストコンピュータ19にコマンドの終了を報告するタイミングは動作モードによって異なり、キャッシュメモリー17の読み書きが終了した時点で報告する動作モードと、ディスク媒体18の読み書きが終了した時点で報告する動作モードがある。図5は、後者の動作モードで磁気ディスク装置11が動作している場合を示している。動作モードの違いは本発明と直接の関係がないので前者の動作モードについては省略する。
【0108】
ステップS201では、処理すべきコマンドがリード系コマンドまたはライト系コマンドであるか否かをコマンド解析・処理部13cが判定する。リード系コマンドまたはライト系コマンドのとき判定が「はい」となってステップS202に移行し、それ以外の種類のコマンド(例えば制御系のコマンド)のとき判定が「いいえ」となってステップS219に移行する。
【0109】
ステップS202では、コマンド解析・処理部13cがリード・ライトヘッド制御部15に指示を与え、リード・ライトヘッド制御部15がアームを制御し、ヘッドを目的のトラックまで移動させるシーク動作を開始する。シーク動作の開始後、ステップS203に移行する。なお、ステップS203〜S205はシーク動作と並行して実行される。
【0110】
ステップS203では処理すべきコマンドがライト系コマンドか否かをコマンド解析・処理部13cが判定する。ライト系コマンドのとき判定が「はい」となってステップS204に移行し、リード系コマンドのとき判定が「いいえ」となってステップS205に移行する。
【0111】
ステップS204では、コマンド解析・処理部13cがI/F処理部12を介してホストコンピュータ19に対し、処理すべきライト系コマンドのライトデータを送信するよう要求する。そして、ホストコンピュータ19が磁気ディスク装置11にライトデータを送信する。ライトデータはI/F処理部12を介してキャッシュメモリー17に送られ、格納される。そして、ステップS206に移行する。
【0112】
ステップS205では、キャッシュメモリー17内のリードデータをホストコンピュータ19へ転送することをコマンド解析・処理部13cが許可する。ただし、本実施形態においては、この時点ではまだリードデータの転送は行われない。許可後、ステップS206に移行する。
【0113】
ステップS206は、シーク動作の完了まで待つことを表す。シーク動作が完了するとステップS206の判定が「はい」となってステップS207に移行し、シーク動作中だと判定が「いいえ」となってステップS206を繰り返す。
【0114】
ステップS207では、シーク動作が正常に終了したか否かを、リード・ライトヘッド制御部15からの報告に基づきコマンド解析・処理部13cが判定する。シーク動作が正常に終了したとき、つまりヘッドが目的のトラックに位置しているとき、判定が「はい」となってステップS208に移行し、シーク動作が正常に終了しなかったとき判定が「いいえ」となってステップS217に移行する。
【0115】
ステップS208では、処理すべきコマンドがリード系コマンドのとき、リード・ライトヘッド制御部15がリード動作(ディスク媒体18からデータを読み込む動作)を開始する。それとともに、ステップS205で与えられた許可にしたがい、キャッシュメモリー17上のデータがI/F処理部12を介してホストコンピュータ19に転送される。また、処理すべきコマンドがライト系コマンドのときは、リード・ライトヘッド制御部15がライト動作(キャッシュメモリー17上のデータをディスク媒体18に書き込む動作)を開始する。そしてステップS209に移行する。
【0116】
ステップS209は、ステップS208で開始したリード動作またはライト動作が終了するまで待つことを表す。リード動作またはライト動作が終了するとステップS209の判定が「はい」となってステップS210に移行し、リード動作中またはライト動作中のとき判定が「いいえ」となってステップS209を繰り返す。
【0117】
ステップS210は、リード動作またはライト動作が正常に終了したか否かを、リード・ライトヘッド制御部15からの報告に基づいてコマンド解析・処理部13cが判定する。正常に終了した場合、判定が「はい」となってステップS211に移行し、そうでない場合は判定が「いいえ」となってステップS212に移行する。
【0118】
ステップS211では、コマンドが正常に終了したことを、コマンド解析・処理部13cからI/F処理部12を介してホストコンピュータ19に報告する。ステップS211で一連の処理は終了する。
【0119】
ステップS212は、リード動作またはライト動作でエラーが発生し、異常終了したときに実行されるステップで、エラー情報をエラー情報保存部16bに記録するステップである。
【0120】
例えば、リード動作でエラーが発生した場合はコマンド解析・処理部13cがエラー情報保存部16b内のリードエラーカウンタをインクリメントし、ライト動作でエラーが発生した場合はコマンド解析・処理部13cがエラー情報保存部16b内のライトエラーカウンタをインクリメントする。
【0121】
故障予測条件判断部16cはエラー情報保存部16bを監視しており、処理したコマンドの種類に応じてリードエラーレートまたはライトエラーレートを算出しなおす。そしてエラーレートが所定の閾値を超えたか否かによって、故障予測条件が成立したか否かを検出する(図2(a)の故障予測条件(C)および(D)に該当する)。故障予測条件の成立を検出すると、故障予測条件判断部16cは故障予測時動作論理部14にその旨を通知する。それにより、後続のコマンドを処理する際に図2(b)の故障予測時動作(1)〜(7)等の措置が講じられる。故障予測時動作論理部14への通知後、ステップS213に移行する。
【0122】
ステップS213ではリード動作またはライト動作のリトライが可能か否かをコマンド解析・処理部13cが判定する。本実施形態では、一つのコマンドにつきリトライが許される回数の最大値が予め決められており、その回数に達するまではリトライが可能と判定される。他の実施形態では他の基準に基づいて判定されてもよい。リトライが可能なとき判定が「はい」となってステップS214に移行し、リトライが不可能なとき判定が「いいえ」となってステップS215に移行する。
【0123】
ステップS214では、リード動作またはライト動作のリトライを実施したことをコマンド解析・処理部13cが記録する。
本実施形態では、コマンド解析・処理部13cやリード・ライトヘッド制御部15がファームウェアとして実現されており、これらの機能ブロックから利用可能なRAMにリトライの実施が記録される。このRAMはエラー情報保存部16bの一部であってもよい。
【0124】
この記録と、最終的にリード動作が正常に終了したか否かに基づいて、リード系コマンドの処理中に回復可能なエラーが生じたか否かを図4のステップS116でコマンド解析・処理部13cが判定している。また、リトライを実施したという記録は、ステップS213でリトライ回数に基づき判定を行う際にも利用される。
【0125】
さらにステップS214では、コマンド解析・処理部13cの指示に基づきリード・ライトヘッド制御部15がリトライ処理を開始する。リトライ処理の開始後、ステップS209に戻り、その後は前述したのと同様の処理が実行される。
【0126】
ステップS215は、リード動作またはライト動作が正常に終了せず、リトライが不可能なときに実行されるステップである。ステップS215では、リード動作中またはライト動作中に回復不可能なエラーが発生したことを、コマンド解析・処理部13cがRAM(ステップS214で利用したRAM)に記録する。この記録により、回復不可能なエラーの発生が図4のステップS116で判定可能となる。記録後、ステップS216に移行する。
【0127】
ステップS216は、リード動作またはライト動作が正常に終了せず、リトライも不可能だった場合に実行される。ステップS216では、コマンドが異常終了したことをコマンド解析・処理部13cがホストコンピュータ19に対しI/F処理部12を介して報告し、一連の処理を終了する。
【0128】
ステップS217では、シーク動作のリトライ処理が可能か否かをコマンド解析・処理部13cが判定する。リトライ処理が可能なとき判定が「はい」となってステップS218に移行する。リトライ処理が可能でないとき判定が「いいえ」となる。この場合、コマンドが処理されずに異常終了したという点が、ステップS213で判定が「いいえ」となる場合と同様なので、ステップS216に移行する。
【0129】
リトライ処理が可能か否かは実施の形態によって当業者が適切に定めることができる。例えば、リトライが許される回数の最大値が予め決められており、その回数に達するまではリトライが可能と判定してもよい。
【0130】
ステップS218では、シーク動作のリトライを実施したことを、ステップS214で利用したRAMにコマンド解析・処理部13cが記録する。そして、コマンド解析・処理部13cの指示に基づいてリード・ライトヘッド制御部15がシーク動作のリトライ処理を開始し、ステップS206に戻る。
【0131】
ステップS219とステップS220はリード系コマンドでもライト系コマンドでもないコマンドを処理するステップである。例えば、モードセレクトパラメータを指定するコマンドなどの制御系のコマンドは、ステップS219、S220で処理される。
【0132】
ステップS219では、コマンド解析・処理部13cが必要に応じてリード・ライトヘッド制御部15に指示を与えて当該コマンドを処理し、ステップS220に移行する。
ステップS220では、コマンド解析・処理部13cがI/F処理部12を介してホストコンピュータ19に対し、コマンドの処理が終了したことを報告する。ステップS220で一連の処理は終了する。
【0133】
なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
図3の磁気ディスク装置11のインターフェイスはSCSIだが、ATA(AT Attachment)等の他の任意のインターフェイスでもよい。
【0134】
また、上記では、コマンドの実行時にエラーが発生するとリード・ライトヘッド制御部15からコマンド解析・処理部13cに報告され、エラー情報がエラー情報保存部16bに記録されると説明した。しかし、別の実施形態では、エラーの発生を監視するファームウェアをエラー情報保存部16bがさらに含んでいてもよい。そして、そのファームウェアが、リード・ライトヘッド制御部15からコマンド解析・処理部13cへの報告を監視してエラー情報を取得し、エラー情報保存部16bを構成するRAMにエラー情報を書き込むようにしてもよい。
【0135】
また、図3の各ブロックがファームウェアで実装される実施形態においては、複数のブロックの機能を一つのファームウェア・プログラムによって実現してもよい。例えば、コマンド解析・処理部13cと故障予測時動作論理部14は、別々のファームウェア・プログラムによって実現されてもよいし、一つのファームウェア・プログラムによって実現されてもよい。
【0136】
図4のステップS104において、待ち時間は50msに限らず、任意の時間でよい。また、待ち時間は一定でもよいが、温度センサー16aによって検知された温度に応じて可変としてもよい。さらに、ステップS104において、コマンドキュー13a内のコマンドの実行順序を、より待ち時間が増えるように並べ替えてもよい。あるいは、ステップS104で待ち時間を挿入するかわりにこの並べ替えだけを行ってもよい。いずれの方法も、待ち時間が増えることによってコマンドの実行間隔が空くため、温度上昇を抑える効果がある。
【0137】
図4のステップS114の処理は実施の形態によって様々である。上記の説明では再書き込み処理を一回試みてデータが適切に書き込まれなかった場合に交代ブロック割り付け処理を行っているが、別の実施形態では、所定の回数までは再書き込み処理を試みてもよい。さらに別の実施形態では、再書き込み処理を行わずに最初から交代ブロック割り付け処理を行ってもよい。
【0138】
図4では、ステップS101でコマンドキュー13a内にコマンドがなく、アイドル状態の場合にステップS118〜S128の処理が行われる。しかし、別の実施形態では、アイドル状態が規定時間以上継続している場合のみステップS118〜S128の処理を行ってもよい。
【0139】
図2に示した故障予測条件と故障予測時動作の組み合わせは例にすぎない。これ以外の組み合わせも可能である。ある故障予測条件に対して、図2に示したもの以外の故障予測時動作をさらに組み合わせて実行してもよいし、図2に示した故障予測時動作のうち実行しないものがあってもよい。
【0140】
例えば、ライト系コマンドの実行をホストコンピュータ19が磁気ディスク装置11に指示した場合、図4では故障予測状態のときもステップS109でそのライト系コマンドが実行される。しかし、別の実施形態では、故障予測状態のときはライト系コマンドを実行せず、ホストコンピュータ19に対してエラーを報告し、それによって現状のデータを保護してもよい。
【0141】
また、図2に示した以外にも様々な条件を故障予測条件として用いることができる。例えば、以下のような条件が利用可能である。
・ 磁気ディスク装置11の通電時間の総計が規定時間以上である
・ スピンドルモーターの起動回数(つまり電源のオン/オフ操作の回数)が規定値以上である
・ スピンドルモーターの起動時間が規定値以上である
・ ヘッド出力の低下を検出した
・ シークエラーレートが規定値以上である
・ シーク動作のリトライ回数が規定値以上である
・ リード動作のリトライ回数が規定値以上である
・ ライト動作のリトライ回数が規定値以上である
・ エラーが連続して発生した回数が規定値以上である
・ リード動作またはライト動作を行ったセクタの延べ数が規定値以上である
この他にも、SMART機能を有する磁気ディスク装置において利用される各種の検査項目とその項目に対応する閾値によって、様々な故障予測条件を定義することが可能である。故障予測条件の種類によっては、温度センサー16a以外のセンサーが必要になる場合もある。また、故障予測条件の定義によって、エラー情報保存部16bの具体的構成も様々である。
【0142】
利用する故障予測条件によっては、さらに処理ステップが増えることもある。例えば、シークエラーに基づく故障予測条件を利用する実施形態では、図5のステップS207とステップS217の間で、ステップS212と同様にして、シークエラーの発生をコマンド解析・処理部13cがエラー情報保存部16bに記録する。また、シーク動作のリトライ回数に基づく故障予測条件を利用する実施形態では、図5のステップS217とステップS216の間で、ステップS215と同様にして、リトライが不可能であることをコマンド解析・処理部13cがRAMに記録する。
【0143】
なお、図2および上記の説明では故障予測条件の定義に「以上」または「以下」を使っているが、実施の形態によっては「……より大きい」や「……より小さい」を使っても構わない。また、図2および上記の故障予測条件は「規定温度以上での運用」等の単純な条件だが、例えば、「規定温度以上での運用が規定時間以上連続し、かつ、リードエラーレートが規定値以上」等、複数の条件を組み合わせて故障予測条件を定義してもよい。
【0144】
これまでの説明では、正常な状態から故障予測条件が成立した状態に移行した場合について述べ、その逆の場合については省略した。しかし、図4や図2に示した処理を行うことによって、正常状態に復帰することができる場合もある。
【0145】
正常状態への復帰は、温度センサー16aやエラー情報保存部16bの情報に基づいて、故障予測条件判断部16cが検知する。つまり、今まで成立していた故障予測条件が成立しなくなったことを故障予測条件判断部16cが検知する。そして、故障予測条件判断部16cから故障予測時動作論理部14に正常状態への復帰を通知する。つまり、動作原理は、正常状態から故障予測状態になる場合と全く同様である。
【0146】
本発明は磁気ディスク装置以外の記憶装置、例えば、DVD等の光ディスク装置やMO(Magneto-Optical disk)等の光磁気ディスク装置にも適用可能である。
以上説明したことを概観すれば本発明は以下のような構成を備えるものである。
【0147】
(付記1)
記憶媒体からのデータの読み出しまたは該記憶媒体へのデータの書き込みを含む複数種類のうちいずれかの種類のコマンドを受け取り、該コマンドを実行する記憶装置であって、
故障の発生が予測される条件として予め定義された故障予測条件が成立するか否かを検出する故障予測条件検出手段と、
前記故障予測条件が成立することを前記故障予測条件検出手段が検出したとき、前記故障予測条件に対応して予め決められた動作の実行を指示する故障予測時動作論理手段と、
を備えることを特徴とする記憶装置。
(付記2)
前記故障予測条件検出手段は温度を検出する温度検出手段を含み、
前記故障発生予測条件は、予め定められた温度以上の温度が前記温度検出手段で検出されるということを条件とする、
ことを特徴とする付記1に記載の記憶装置。
(付記3)
前記故障発生予測条件に対応する前記動作は、シーク時の電流量を少なくする動作であることを特徴とする付記2に記載の記憶装置。
(付記4)
複数のコマンドをキューイングするコマンドキューをさらに備え、
前記故障発生予測条件に対応する前記動作は、前記コマンドキュー内のコマンドを待ち時間が少なくなるように並べ替えるのを禁止する動作である、
ことを特徴とする付記2に記載の記憶装置。
(付記5)
複数のコマンドをキューイングするコマンドキューをさらに備え、
前記故障発生予測条件に対応する前記動作は、前記コマンドキュー内のコマンドを待ち時間が増えるように並べ替える動作である、
ことを特徴とする付記2に記載の記憶装置。
(付記6)
前記故障発生予測条件に対応する前記動作は、二つの連続するコマンドの間に待ち時間を挿入する動作であることを特徴とする付記2に記載の記憶装置。
(付記7)
前記故障予測条件に対応して予め決められた前記動作の一つは、シーク動作における目的トラックへの位置決め条件を厳しくする動作であることを特徴とする付記1に記載の記憶装置。
(付記8)
前記故障予測条件に対応して予め決められた前記動作の一つは、前記コマンドが前記記憶媒体へのデータの書き込みを指示するコマンドの場合に実行すべき動作として決められており、
該動作は、該コマンドの実行後に、前記記憶媒体の前記データを書き込んだブロックからデータを読み出し、前記書き込んだデータと前記読み出したデータが一致するか否かを判定する判定動作を含む、
ことを特徴とする付記1に記載の記憶装置。
(付記9)
前記動作はさらに、前記判定動作で不一致と判定されたときに、前記コマンドで指示された前記データを再度前記ブロックに書き込む動作を含むことを特徴とする付記8に記載の記憶装置。
(付記10)
前記動作はさらに、前記判定動作で不一致と判定されたときに、前記コマンドで指示された前記データを前記ブロックとは別のブロックに書き込む動作を含むことを特徴とする付記8に記載の記憶装置。
(付記11)
前記コマンドが前記記憶媒体からのデータの読み出しを指示するコマンドであって、該コマンドを実行したときにリトライ処理によって回復可能なエラーが発生した場合に実行すべき動作として、前記故障予測条件に対応して予め決められた前記動作の一つが決められており、
該動作は、前記コマンドの実行後に、前記コマンドによって読み出された前記データを前記記憶媒体に書き込む動作を含む、
ことを特徴とする付記1に記載の記憶装置。
(付記12)
前記動作は、前記記憶媒体の前記データを読み出したブロックに書き込む動作であることを特徴とする付記11に記載の記憶装置。
(付記13)
前記動作は、前記記憶媒体の前記データを読み出したブロックとは別のブロックに書き込む動作であることを特徴とする付記11に記載の記憶装置。
(付記14)
前記記憶装置を管理するためのシステム情報が前記記憶媒体に記録されており、
前記故障予測条件に対応して予め決められた前記動作の一つは、該システム情報の更新を禁止する動作である、
ことを特徴とする付記1に記載の記憶装置。
(付記15)
前記故障予測条件に対応して予め決められた前記動作の一つは、コマンドの実行を行わない状態が予め決められた時間以上続いた場合に実行すべき動作として決められていることを特徴とする付記1に記載の記憶装置。
(付記16)
さらにキャッシュメモリーを備え、
前記動作は該キャッシュメモリーの不具合を検査する動作である、
ことを特徴とする付記15に記載の記憶装置。
(付記17)
前記動作は、前記記憶媒体からデータを読み出して前記記憶媒体の不具合を検査する動作であることを特徴とする付記15に記載の記憶装置。
(付記18)
前記故障予測条件検出手段が、温度、エラーの発生数、エラーの発生割合、前記記憶装置の運用時間、前記記憶装置への通電操作を行った回数、のうち少なくとも一つを測定し、
前記故障予測条件は、該測定によって得られた値と予め決められた閾値との比較結果を用いて定義されている、
ことを特徴とする付記1に記載の記憶装置。
(付記19)
記憶媒体からのデータの読み出しまたは該記憶媒体へのデータの書き込みを含む複数種類のうちいずれかの種類のコマンドを受け取り、該コマンドを実行する記憶装置を制御する方法であって、
故障の発生が予測される条件として予め定義された故障予測条件が成立するか否かを検出し、
成立することが検出された前記故障予測条件に対応して予め決められた動作の実行を指示する、
ことを特徴とする記憶装置を制御する方法。
(付記20)
記憶媒体からのデータの読み出しまたは該記憶媒体へのデータの書き込みを含む複数種類のうちいずれかの種類のコマンドを受け取り、該コマンドを実行する制御装置であって、
故障の発生が予測される条件として予め定義された故障予測条件が成立するか否かを検出する故障予測条件検出手段と、
前記故障予測条件が成立することを前記故障予測条件検出手段が検出したとき、前記故障予測条件に対応して予め決められた動作の実行を指示する故障予測時動作論理手段と、
を備えることを特徴とする制御装置。
【図面の簡単な説明】
【0148】
【図1】本発明の原理を説明する図である。
【図2】故障予測条件と、それに対応する故障予測条件検出部のハードウェアおよび故障予測時動作の例を示す図である。
【図3】本発明の一実施形態における機能ブロック構成図である。
【図4】一実施形態における磁気ディスク装置の動作を示すフローチャートである。
【図5】一実施形態において磁気ディスク装置が行うコマンド処理のフローチャートである。
【符号の説明】
【0149】
1 磁気ディスク装置
2 I/F処理部
3 コマンド実行部
4 故障予測時動作論理部
5 リード・ライトヘッド制御部
6 故障予測条件検出部
7 キャッシュメモリー
8 ディスク媒体
9 ホストコンピュータ
11 磁気ディスク装置
12 I/F処理部
13a コマンドキュー
13b コマンドリオーダリング制御部
13c コマンド解析・処理部
14 故障予測時動作論理部
15 リード・ライトヘッド制御部
16a 温度センサー
16b エラー情報保存部
16c 故障予測条件判断部
17 キャッシュメモリー
18 ディスク媒体
19 ホストコンピュータ

【特許請求の範囲】
【請求項1】
記憶媒体からのデータの読み出しまたは該記憶媒体へのデータの書き込みを含む複数種類のうちいずれかの種類のコマンドを受け取り、該コマンドを実行する記憶装置であって、
故障の発生が予測される条件として予め定義された故障予測条件が成立するか否かを検出する故障予測条件検出手段と、
前記故障予測条件が成立することを前記故障予測条件検出手段が検出したとき、前記故障予測条件に対応して予め決められた動作の実行を指示する故障予測時動作論理手段と、
を備えることを特徴とする記憶装置。
【請求項2】
前記故障予測条件検出手段は温度を検出する温度検出手段を含み、
前記故障発生予測条件は、予め定められた温度以上の温度が前記温度検出手段で検出されるということを条件とする、
ことを特徴とする請求項1に記載の記憶装置。
【請求項3】
前記故障予測条件に対応して予め決められた前記動作の一つは、前記コマンドが前記記憶媒体へのデータの書き込みを指示するコマンドの場合に実行すべき動作として決められており、
該動作は、該コマンドの実行後に、前記記憶媒体の前記データを書き込んだブロックからデータを読み出し、前記書き込んだデータと前記読み出したデータが一致するか否かを判定する判定動作を含む、
ことを特徴とする請求項1に記載の記憶装置。
【請求項4】
前記コマンドが前記記憶媒体からのデータの読み出しを指示するコマンドであって、該コマンドを実行したときにリトライ処理によって回復可能なエラーが発生した場合に実行すべき動作として、前記故障予測条件に対応して予め決められた前記動作の一つが決められており、
該動作は、前記コマンドの実行後に、前記コマンドによって読み出された前記データを前記記憶媒体に書き込む動作を含む、
ことを特徴とする請求項1に記載の記憶装置。
【請求項5】
記憶媒体からのデータの読み出しまたは該記憶媒体へのデータの書き込みを含む複数種類のうちいずれかの種類のコマンドを受け取り、該コマンドを実行する制御装置であって、
故障の発生が予測される条件として予め定義された故障予測条件が成立するか否かを検出する故障予測条件検出手段と、
前記故障予測条件が成立することを前記故障予測条件検出手段が検出したとき、前記故障予測条件に対応して予め決められた動作の実行を指示する故障予測時動作論理手段と、
を備えることを特徴とする制御装置。

【図3】
image rotate

【図1】
image rotate

【図2】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2007−310974(P2007−310974A)
【公開日】平成19年11月29日(2007.11.29)
【国際特許分類】
【出願番号】特願2006−140181(P2006−140181)
【出願日】平成18年5月19日(2006.5.19)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】