(57)【要約】【課題】隠しリトライを多発させているアンリガバブルエラーとなり得る候補に対して早期に対処することができ、アンリカバブルエラーの発生を防止することを課題とする。【解決手段】この記憶装置は、コマンドに応じて実行するリードまたはライトにおいてエラーが発生した場合に隠しリトライを実行するが、ホストから受け付けたコマンド内で、その隠しリトライによるエラーの救済に要した隠しリトライ試行時間（例えば、Ｔ１、Ｔ２およびＴ３）を計測する。そして、この磁気ディスク装置は、各処理ブロックにおいて隠しリトライによりエラーが救済されるごとに、隠しリトライ試行時間が時間閾値２を越えているか否かを判定し、隠しリトライ試行時間が時間閾値２を超えている場合には、そのコマンドについてセンス（隠しリトライ多発の旨のセンス）を生成し、その生成したセンスをホストに報告する。【選択図】        図１
2007317283.tif 000002
【特許請求の範囲】
【請求項１】
上位装置からのコマンドを受け付けて読み出しまたは書き込みを行い、当該読み出しまたは書き込みのエラーが発生した場合に実行するリトライの結果に応じて所定のセンスを生成し、当該所定のセンスを当該上位装置に報告する記憶装置であって、
前記リトライの一つとして実行される隠しリトライにより、前記コマンド内で前記エラーを救済するまでに要した救済時間を計測する時間計測手段と、
前記時間計測手段により計測された救済時間が所定の時間閾値を超えているか否かを判定する時間判定手段と、
を備えたことを特徴とする記憶装置。
【請求項２】
前記時間判定手段により前記救済時間が前記所定の時間閾値を越えていると判定された場合には、前記コマンドについて前記隠しリトライが多発している旨の警告を前記上位装置に対して行う警告手段をさらに備えたことを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記上位装置からコマンドを受け付けた場合に、当該コマンドの内容に基づいて自動的に算出して得た値を前記所定の時間閾値として設定する閾値設定手段をさらに備え、
前記時間判定手段は、前記救済時間が前記閾値設定手段により設定された所定の時間閾値を越えているか否かを判定することを特徴とする請求項１または２に記載の記憶装置。
【請求項４】
上位装置からのコマンドを受け付けて読み出しまたは書き込みを行い、当該読み出しまたは書き込みのエラーが発生した場合に実行するリトライの結果に応じて所定のセンスを生成し、当該所定のセンスを当該上位装置に報告する記憶装置に適用される制御装置であって、
前記リトライの一つとして実行される隠しリトライにより、前記コマンド内で前記エラーを救済するまでに要した救済時間を計測する時間計測手段と、
前記時間計測手段により計測された救済時間が所定の時間閾値を超えているか否かを判定する時間判定手段と、
を備えたことを特徴とする制御装置。
【請求項５】
上位装置からのコマンドを受け付けて読み出しまたは書き込みを行い、当該読み出しまたは書き込みのエラーが発生した場合に実行するリトライの結果に応じて所定のセンスを生成し、当該所定のセンスを当該上位装置に報告する記憶装置に適用される障害報告方法であって、
前記リトライの一つとして実行される隠しリトライにより、前記コマンド内で前記エラーを救済するまでに要した救済時間を計測する時間計測工程と、
前記時間計測工程により計測された救済時間が所定の時間閾値を超えているか否かを判定する時間判定工程と、
を含んだことを特徴とする障害報告方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、上位装置からのコマンドを受け付けて読み出しまたは書き込みを行い、当該読み出しまたは書き込みのエラーが発生した場合に実行するリトライの結果に応じて所定のセンスを生成し、当該所定のセンスを当該上位装置に報告する記憶装置、制御装置および障害報告方法に関する。
【背景技術】
【０００２】
従来より、上位装置であるホストからのコマンドに応じて実行した読み出し、または書き込み処理においてエラーが発生した場合に、リカバリ処理として読み出し、または書き込み処理のリトライが一般的に行われるが、そのリトライの結果をセンスとして磁気ディスク装置からホストに報告する、いわゆるセンス報告を行うことで、コマンド対象範囲内のセクタの危険性（例えば、性能低下など）をホストに認知させる技術が存在する（特許文献１参照）。
【０００３】
この従来の技術について簡単に説明すると、リカバリ処理であるリトライには比較的単純な内容のリトライを少数回試行する、いわゆる隠しリトライと、この隠しリトライでエラーを救済できなかった場合に突入する複雑な内容のリトライを多数回試行する通常のリトライとがあり、通常のリトライの結果のみがセンス（例えば、通常リトライによりエラーを救済できた旨のセンスやリトライアウトである旨のセンスなど）としてホストへ報告される。
【０００４】
【特許文献１】特開平１０−８３６３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した従来の技術は、アンリカバブルエラーを発生させる可能性があるという問題点があった。
【０００６】
すなわち、上記した従来の技術では、読み出し、または書き込み処理において発生したエラーが隠しリトライの段階で救済できた場合には、その隠しリトライの結果をセンスとしてホストに報告することはないので、実際にはリトライを多発させているセクタ群の性能低下を認知できず、後々アンリカバブルエラーに発展する恐れのあるセクタを見過ごす可能性があるという問題点があった。
【０００７】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、隠しリトライを多発させているアンリガバブルエラーとなり得る候補に対して早期に対処することができ、アンリカバブルエラーの発生を防止することが可能な記憶装置、制御装置および障害報告方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、上位装置からのコマンドを受け付けて読み出しまたは書き込みを行い、当該読み出しまたは書き込みのエラーが発生した場合に実行するリトライの結果に応じて所定のセンスを生成し、当該所定のセンスを当該上位装置に報告する記憶装置であって、前記リトライの一つとして実行される隠しリトライにより、前記コマンド内で前記エラーを救済するまでに要した救済時間を計測する時間計測手段と、前記時間計測手段により計測された救済時間が所定の時間閾値を超えているか否かを判定する時間判定手段と、を備えたことを特徴とする。
【０００９】
また、請求項２に係る発明は、上記の発明において、前記時間判定手段により前記救済時間が前記所定の時間閾値を越えていると判定された場合には、前記コマンドについて前記隠しリトライが多発している旨の警告を前記上位装置に対して行う警告手段をさらに備えたことを特徴とする。
【００１０】
また、請求項３に係る発明は、上記の発明において、前記上位装置からコマンドを受け付けた場合に、当該コマンドの内容に基づいて自動的に算出して得た値を前記所定の時間閾値として設定する閾値設定手段をさらに備え、前記時間判定手段は、前記救済時間が前記閾値設定手段により設定された所定の時間閾値を越えているか否かを判定することを特徴とする。
【００１１】
また、請求項４に係る発明は、上位装置からのコマンドを受け付けて読み出しまたは書き込みを行い、当該読み出しまたは書き込みのエラーが発生した場合に実行するリトライの結果に応じて所定のセンスを生成し、当該所定のセンスを当該上位装置に報告する記憶装置に適用される制御装置であって、前記リトライの一つとして実行される隠しリトライにより、前記コマンド内で前記エラーを救済するまでに要した救済時間を計測する時間計測手段と、前記時間計測手段により計測された救済時間が所定の時間閾値を超えているか否かを判定する時間判定手段と、を備えたことを特徴とする。
【００１２】
また、請求項５に係る発明は、上位装置からのコマンドを受け付けて読み出しまたは書き込みを行い、当該読み出しまたは書き込みのエラーが発生した場合に実行するリトライの結果に応じて所定のセンスを生成し、当該所定のセンスを当該上位装置に報告する記憶装置に適用される障害報告方法であって、前記リトライの一つとして実行される隠しリトライにより、前記コマンド内で前記エラーを救済するまでに要した救済時間を計測する時間計測工程と、前記時間計測工程により計測された救済時間が所定の時間閾値を超えているか否かを判定する時間判定工程と、を含んだことを特徴とする。
【発明の効果】
【００１３】
請求項１、４または５の発明によれば、リトライの一つとして実行される隠しリトライ（比較的単純な内容のリトライを少数回試行するリトライ）により、コマンド内でエラーを救済するまでに要した救済時間を計測し、この救済時間が所定の時間閾値を超えているか否かを判定するので、コマンド内で隠しリトライに要した時間が所定の時間閾値を越えている場合には、隠しリトライを多発させているアンリカバブルエラーとなり得る候補に対して早期に対処することができ、アンリカバブルエラーの発生を防止することが可能である。
【００１４】
また、請求項２の発明によれば、隠しリトライによりコマンド内でエラーを救済するまでに要した救済時間が所定の時間閾値を越えていると判定された場合には、コマンドについて隠しリトライが多発している旨の警告を上位装置（例えば、磁気ディスク装置にコマンドを発行するホストなど）に対して行うので、コマンド内で隠しリトライが多発していることの警告を行うことにより、そのコマンド要求範囲内のセクタの性能低下をホストに認知させることができる結果、アンリカバブルエラーとなり得る候補に対して早期に対処させることができ、アンリカバブルエラーの発生を防止することが可能である。
【００１５】
また、請求項３の発明によれば、上位装置からコマンドを受け付けた場合に、そのコマンドの内容（処理内容および処理ブロック数）に基づいて自動的に算出して得た値を所定の時間閾値として設定し、隠しリトライによりコマンド内でエラーを救済するまでに要した救済時間が設定した所定の時間閾値を越えているか否かを判定するので、コマンドの内容に応じて詳細な時間閾値を設定することができ、そのコマンドについて隠しリトライが多発していることを精度よく把握することができる結果、アンリカバブルエラーとなり得る候補に対して早期に対処することができ、アンリカバブルエラーの発生を防止することが可能である。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照して、本発明に係る記憶装置、制御装置および障害報告方法の実施例を詳細に説明する。なお、以下では、本発明に係る記憶装置について磁気ディスク装置を例に挙げて実施例１として説明した後に、本発明に含まれる他の実施例を説明する。
【実施例１】
【００１７】
以下の実施例１では、実施例１に係る磁気ディスク装置の概要および特徴、磁気ディスク装置の構成および処理を順に説明し、最後に実施例１による効果を説明する。
【００１８】
［磁気ディスク装置の概要および特徴（実施例１）］
まず最初に、図１を用いて、実施例１に係る磁気ディスク装置の概要および特徴を説明する。図１は、実施例１に係る磁気ディスク装置の概要および特徴を説明するための図である。同図に示すように、実施例１に係る磁気ディスク装置は、上位装置であるホストからのコマンドを受け付けて読み出しまたは書き込みを行い、当該読み出しまたは書き込みのエラーが発生した場合に実行するリトライの結果に応じて所定のセンスを生成し、当該所定のセンスを当該上位装置に報告することを概要とするが、隠しリトライを多発させているアンリカバブルエラーとなり得る候補に対して早期に対処することができ、アンリカバブルエラーの発生を防止する点に主たる特徴がある。
【００１９】
この主たる特徴について具体的に説明すると、実施例１に係る磁気ディスク装置は、ホストから発行された処理内容（リードｏｒライト）および処理ブロック数からなるコマンドを受け付けると、コマンド処理を開始する。
【００２０】
そして、受け付けたコマンドに応じて実行しているリードまたはライトにおいてエラーが発生した場合には、リカバリ処理としてリトライを開始する。このリトライには、比較的単純な内容のリトライを少数回試行する、いわゆる隠しリトライと、この隠しリトライでエラーを救済できなかった場合に突入する複雑な内容のリトライを多数回試行する通常のリトライとがある。
【００２１】
また、この磁気ディスク装置は、隠しリトライおよび通常のリトライの試行が許容される時間閾値１と、隠しリトライでエラーが救済された時点の隠しリトライ試行時間によりセンス報告を行うか否かを判定するための時間閾値２とを規定している。同様にして、この磁気ディスク装置は、隠しリトライおよび通常のリトライの試行が許容される試行回数も規定している。
【００２２】
すなわち、この磁気ディスク装置は、コマンドに応じて実行するリードまたはライトにおいてエラーが発生した場合に隠しリトライを実行するが、ホストから受け付けたコマンド内で、その隠しリトライによるエラーの救済に要した隠しリトライ試行時間（例えば、Ｔ１、Ｔ２およびＴ３）を計測する。そして、この磁気ディスク装置は、各処理ブロックにおいて隠しリトライによりエラーが救済されるごとに、隠しリトライ試行時間が時間閾値２を越えているか否かを判定し、隠しリトライ試行時間が時間閾値２を超えている場合には、そのコマンドについてセンス（隠しリトライ多発の旨のセンス）を生成し、その生成したセンスをホストに報告する。
【００２３】
このようなことから、実施例１に係る磁気ディスク装置は、上述した主たる特徴のごとく、隠しリトライを多発させているアンリカバブルエラーとなり得る候補に対して早期に対処することができ、アンリカバブルエラーの発生を防止することが可能である。
【００２４】
［磁気ディスク装置の構成（実施例１）］
次に、図２を用いて、実施例１に係る磁気ディスク装置の構成を説明する。図２は、実施例１に係る磁気ディスク装置の構成を示すブロック図である。同図に示すように、この磁気ディスク装置１０は、ホスト２０と通信可能に接続され、インタフェース制御部１１と、バッファ１２と、ＲＡＭ１３と、ＦＬＡＳＨ  ＲＯＭ１４と、ＭＰＵ１５と、ドライブ制御部１６と、ドライブ１７とから構成される。
【００２５】
このうち、インタフェース制御部１１は、ホスト２０との間でやり取りする各種情報等に関する通信を制御する手段である。バッファ１２は、インタフェース制御部１１を介してホスト２０から受け付けた情報等を一時的に記憶する記憶手段である。
【００２６】
ＲＡＭ１３は、ＭＰＵ１５による各種処理に必要なデータおよびプログラムを格納する格納手段（記憶手段）である。具体的には、例えば、隠しリトライおよび通常のリトライの試行が許容される時間閾値１や、隠しリトライでエラーが救済された時点の隠しリトライ試行時間によりセンス報告を行うか否かを判定するための時間閾値２（図３参照）などを記憶している。ＦＬＡＳＨ  ＲＯＭ１４は、バッファ１２から受け付けたデータ等を記憶する記憶手段である。
【００２７】
ＭＰＵ１５は、所定の制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部である。具体的には、インタフェース制御部１１介してホスト２０から発行されたコマンドを受け付けると、図３に例示するように、そのコマンドの処理内容（リードまたはライト）ごとに、処理ブロック数Ｍ、１セクタ当りのエラー発生確率Ｅ、隠しリトライ１ステップ当りの平均処理時間Ｔおよびエラーが隠しリトライで救済される時の平均リトライ試行回数Ｃをそれぞれ掛け合わせことで時間閾値２を自動的に算出してＲＡＭ１３に格納するほか、コマンドの処理内容に応じた命令をドライブ制御部１６に発行する。１セクタ当りのエラー発生確率Ｅ、隠しリトライ１ステップ当りの平均処理時間Ｔおよびエラーが隠しリトライで救済される時の平均リトライ試行回数Ｃは、統計的なデータとして予め所持するものである。
【００２８】
また、ＭＰＵ１５は、ドライブ制御部１６により隠しリトライが実行される場合に、ホスト２０から受け付けたコマンド内で、その隠しリトライによるエラーの救済に要した隠しリトライ試行時間（例えば、Ｔ１、Ｔ２およびＴ３）を計測するほか、各処理ブロックにおいて隠しリトライによりエラーが救済されるごとに、隠しリトライ試行時間が時間閾値２を越えているか否かを判定し、隠しリトライ試行時間が時間閾値２を超えている場合には、そのコマンドについてセンスを生成（隠しリトライ多発の旨のセンスを生成）し、インタフェース制御部１１を介して、その生成したセンスをホスト２０に報告する。
【００２９】
ドライブ制御部１６は、ＭＰＵからの命令を受け付けてドライブ１７におけるリードまたはライトを制御する処理部である。ドライブ１７は、磁気ディスクへのリードまたはライトを実行する処理部である。
【００３０】
［単一セクタの場合のリトライ処理（実施例１）］
次に、図４を用いて、実施例１に係る磁気ディスク装置による単一セクタの場合のリトライ処理を説明する。図４は、実施例１に係る磁気ディスク装置の処理の流れを示すフローチャートである。同図に示すように、この磁気ディスク装置１０は、ホスト２０から受け付けたコマンドに応じて実行するリードまたはライトにおいてエラーが発生した場合にはリトライを実行し（ステップＳ４０１）、そのリトライが成功したかどうかを確認する（ステップＳ４０２）。
【００３１】
その結果、リトライが成功した場合には（ステップＳ４０２肯定）、この磁気ディスク装置１０は、さらに、隠しリトライのみでの救済であるかどうかを確認する（ステップＳ４０３）。その結果、隠しリトライのみでの救済である場合には（ステップＳ４０３肯定）、この磁気ディスク装置１０は、ホスト２０から受け付けたコマンド内で、その隠しリトライによるエラーの救済に要した隠しリトライ試行時間が所定の時間閾値（図３参照）以内であるか否かを確認する（ステップＳ４０４）。そして、隠しリトライ試行時間が所定の時間閾値以内ではない場合には（ステップＳ４０４否定）、この磁気ディスク装置１０は、そのコマンドについて隠しリトライ多発センス（隠しリトライ多発の旨のセンス）を生成し（ステップＳ４０５）、その生成したセンスをホスト２０に報告する。
【００３２】
ここで、ステップＳ４０４の説明に戻ると、隠しリトライ試行時間が所定の時間閾値以内ではある場合には（ステップＳ４０４肯定）、この磁気ディスク装置１０は、センスを生成することはなく、ホスト２０に報告はしない（ステップＳ４０６）。また、ステップＳ４０３の説明に戻ると、成功したリトライが隠しリトライのみでの救済でない場合には（ステップＳ４０３否定）、この磁気ディスク装置１０は、従来のリカバードセンス（例えば、通常のリトライによる救済である旨のセンス）を生成し（ステップＳ４０７）、ホスト２０に報告する。
【００３３】
また、ステップＳ４０２の説明に戻ると、リトライが成功しなかった場合には（ステップＳ４０２否定）、この磁気ディスク装置１０は、リトライ試行回数が規定回数以内であってリトライ試行時間が規定時間以内であるかどうか確認する（ステップＳ４０８）。その結果、リトライ試行回数が規定回数以内であってリトライ試行時間が規定時間以内である場合には（ステップＳ４０８肯定）、この磁気ディスク装置１０は、再度リトライを実行する（ステップＳ４０１）。一方、リトライ試行回数が規定回数外あるいはリトライ試行時間が規定時間外である場合には（ステップＳ４０８否定）、この磁気ディスク装置１０は、アンリカバードセンス（エラーを救済できなかった旨のセンス）あるいはタイムアウト（規定時間内にエラーを救済できなかった旨のセンス）を生成し（ステップＳ４０９）、ホスト２０へ報告する。
【００３４】
［複数セクタの場合のリトライ処理（実施例１）］
続いて、図５を用いて、実施例１に係る磁気ディスク装置による複数セクタの場合のリトライ処理を説明する。図５は、実施例１に係る磁気ディスク装置の処理の流れを示すフローチャートである。同図に示すように、この磁気ディスク装置１０は、ホスト２０から受け付けたコマンドに応じてリード／ライトを実行し（ステップＳ５０１）、エラーが発生した場合には（ステップＳ５０２肯定）、リトライ処理を開始する（ステップＳ５０３）。一方、エラーが発生しなかった場合には（ステップＳ５０２否定）、この磁気ディスク装置１０は、コマンド要求範囲内のブロックについて処理が終了しているか否かを確認し（ステップＳ５０５）、コマンド要求範囲内のブロックについて処理が終了していない場合には（ステップＳ５０５否定）、コマンド要求範囲内の残りのブロックについてリード／ライトを実行する（ステップＳ５０１）。
【００３５】
リトライ処理開始後は、図４を用いて上記で説明した処理と同様の処理が行われ、所定の場合にはセンスを生成して登録する（ステップＳ５０４）。ここで、センスの登録処理について具体的に説明すると、リトライ処理において生成されたセンスをそれぞれ登録するだけでなく、リトライ処理が終了した時点で、登録されているセンスを比較して優先度の高いセンス（例えば、隠しリトライ多発センスよりもアンリカバードセンスの方が優先度が高い）を取捨選択する処理までを行う。これにより、優先度の高いセンスがホスト２０へ報告される。
【００３６】
そして、この磁気ディスク装置１０は、コマンド要求範囲内のブロックについて処理が終了しているか否かを確認する（ステップＳ５０５）。その結果、コマンド要求範囲内のブロックについて処理が終了している場合には（ステップＳ５０５肯定）、この磁気ディスク装置１０はコマンドを終了し、コマンド要求範囲内のブロックについて処理が終了していない場合には（ステップＳ５０５否定）、残りのブロックについてリード／ライトを実行する（ステップＳ５０１）。
【００３７】
［実施例１の効果］
上述してきたように、実施例１によれば、リトライの一つとして実行される隠しリトライ（比較的単純な内容のリトライを少数回試行するリトライ）により、コマンド内でエラーを救済するまでに要した救済時間を計測し、この救済時間が所定の時間閾値を超えているか否かを判定するので、コマンド内で隠しリトライに要した時間が所定の時間閾値を越えている場合には、隠しリトライを多発させているアンリカバブルエラーとなり得る候補に対して早期に対処することができ、アンリカバブルエラーの発生を防止することが可能である。
【００３８】
また、実施例１によれば、ホスト２０からコマンドを受け付けた場合に、そのコマンドの内容（処理内容および処理ブロック数）に基づいて自動的に算出して得た値を所定の時間閾値として設定し、隠しリトライによりコマンド内でエラーを救済するまでに要した救済時間が設定した所定の時間閾値を越えているか否かを判定するので、コマンドの内容に応じて詳細な時間閾値（例えば、時間閾値２）を設定することができ、そのコマンドについて隠しリトライが多発していることを精度よく把握することができる結果、アンリカバブルエラーとなり得る候補に対して早期に対処することができ、アンリカバブルエラーの発生を防止することが可能である。
【実施例２】
【００３９】
さて、これまで本発明の実施例１について説明したが、本発明は上述した実施例１以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００４０】
（１）ホストへのＳＭＡＲＴ警告
上記の実施例１において、隠しリトライ試行時間が所定の時間閾値（図３参照）を越えていると判定した場合には、コマンドについて隠しリトライが多発している旨のＳＭＡＲＴ警告をホスト２０に対して行うようにしてもよい。
【００４１】
これにより、コマンド要求範囲内のセクタの性能低下をホストに認知させることができる結果、アンリカバブルエラーとなり得る候補に対して早期に対処させることができ、アンリカバブルエラーの発生によるデータ損失のリスクを軽減させることが可能である。
【００４２】
（２）自動交代処理
また、上記の実施例１において、隠しリトライ試行時間が所定の時間閾値を越えていると判定した場合には、コマンドの要求範囲のセクタを自動交代するようにしてもよい。
【００４３】
これにより、隠しリトライが多発するコマンド要求範囲内のセクタを、アンリカバブルエラーが発生する蓋然性の高い範囲として早期に縮退させることができ、アンリカバブルエラーの発生を防止することが可能である。
【００４４】
（３）ＢＧＭＳを利用した自動交代処理
また、上記の実施例１において、隠しリトライ試行時間が所定の時間閾値を越えていると判定した場合には、コマンドの要求範囲のセクタごとに読み出しエラーが発生するか否かの検査（ＢＧＭＳ：ＢａｃｋＧｒｏｕｎｄ  Ｍｅｄｉａ  Ｓｃａｎ）を行って、読み出しエラーが発生するセクタを自動交代するようにしてもよい。
【００４５】
これにより、隠しリトライが多発するコマンド要求範囲内のセクタの中から、アンリカバブルエラーが発生する蓋然性の高いものについて早期かつ効率的に縮退させることができ、アンリカバブルエラーの発生を防止することが可能である。
【００４６】
（４）コマンドの中断
また、上記の実施例１において、隠しリトライ試行時間が所定の時間閾値を越えていると判定した場合には、ホスト２０から受け付けて実行中のコマンドを中断して別のコマンドを実行するようにしてもよい。
【００４７】
これにより、隠しリトライが多発していて処理時間が延びる蓋然性の高いコマンドを中断する結果、次に控えているコマンドを実行することができ、アンリカバブルエラーの発生を防止しつつコマンド処理を効率的に行うことが可能である。
【００４８】
（５）その他の時間閾値設定
また、上記の実施例１において、図６に例示するように、リトライの試行が許容される総時間（リカバリタイムリミット）に所定の割合を乗算して得た値を所定の時間閾値として設定する、あるいは、ホスト２０から受け付けたコマンドの内容に基づいて自動的に算出して得た値（図３参照）に所定の割合を乗算して得た値を所定の時間閾値として設定するようにしてもよい。
【００４９】
これにより、既に規定されている既存のリカバリリミットタイムを利用して、ユーザ別あるいは用途別に時間閾値を設定することが可能であるほか、コマンド内容に応じて算出して得た値を利用して、ユーザ別あるいは用途別に時間閾値を設定することが可能である。
【００５０】
（６）装置構成等
また、図２に示した磁気ディスク装置１０の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、磁気ディスク装置１０の分散・統合の具体的形態は図示のものに限られず、ドライブ制御部１６とドライブ１７とを統合するなど、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、磁気ディスク装置１０にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５１】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。本発明は、磁気ディスク装置に限らず、ＤＶＤ、ＣＤ、ＭＯのような光ディスク装置などの記憶装置にも同様に適用可能である。
【００５２】
（付記１）上位装置からのコマンドを受け付けて読み出しまたは書き込みを行い、当該読み出しまたは書き込みのエラーが発生した場合に実行するリトライの結果に応じて所定のセンスを生成し、当該所定のセンスを当該上位装置に報告する記憶装置であって、
前記リトライの一つとして実行される隠しリトライにより、前記コマンド内で前記エラーを救済するまでに要した救済時間を計測する時間計測手段と、
前記時間計測手段により計測された救済時間が所定の時間閾値を超えているか否かを判定する時間判定手段と、
を備えたことを特徴とする記憶装置。
【００５３】
（付記２）前記時間判定手段により前記救済時間が前記所定の時間閾値を越えていると判定された場合には、前記コマンドについて前記隠しリトライが多発している旨の警告を前記上位装置に対して行う警告手段をさらに備えたことを特徴とする付記１に記載の記憶装置。
【００５４】
（付記３）前記時間判定手段により前記救済時間が前記所定の時間閾値を越えていると判定された場合には、前記コマンドの要求範囲のセクタを自動交代するセクタ交代手段をさらに備えたことを特徴とする付記１に記載の記憶装置。
【００５５】
（付記４）前記時間判定手段により前記救済時間が前記所定の時間閾値を越えていると判定された場合には、前記コマンドの要求範囲のセクタごとに読み出しエラーが発生するか否かの検査を行う検査手段をさらに備え、
前記セクタ交代手段は、前記検査手段により読み出しエラーが発生するセクタを自動交代することを特徴とする付記３に記載の記憶装置。
【００５６】
（付記５）前記時間判定手段により前記救済時間が前記所定の時間閾値を越えていると判定された場合には、前記上位装置から受け付けて実行中のコマンドを中断して別のコマンドを実行するコマンド制御手段をさらに備えたことを特徴とする付記１に記載の記憶装置。
【００５７】
（付記６）前記上位装置からコマンドを受け付けた場合に、当該コマンドの内容に基づいて自動的に算出して得た値を前記所定の時間閾値として設定する閾値設定手段をさらに備え、
前記時間判定手段は、前記救済時間が前記閾値設定手段により設定された所定の時間閾値を越えているか否かを判定することを特徴とする付記１〜４のいずれか一つに記載の記憶装置。
【００５８】
（付記７）前記閾値設定手段は、前記リトライの試行が許容される総時間に所定の割合を乗算して得た値を前記所定の時間閾値として設定することを特徴とする付記６に記載の記憶装置。
【００５９】
（付記８）前記閾値設定手段は、前記上位装置からコマンドを受け付けた場合に、当該コマンドの内容に基づいて自動的に算出して得た値に所定の割合を乗算して得た値を前記所定の時間閾値として設定することを特徴とする付記６に記載の記憶装置。
【００６０】
（付記９）上位装置からのコマンドを受け付けて読み出しまたは書き込みを行い、当該読み出しまたは書き込みのエラーが発生した場合に実行するリトライの結果に応じて所定のセンスを生成し、当該所定のセンスを当該上位装置に報告する記憶装置に適用される制御装置であって、
前記リトライの一つとして実行される隠しリトライにより、前記コマンド内で前記エラーを救済するまでに要した救済時間を計測する時間計測手段と、
前記時間計測手段により計測された救済時間が所定の時間閾値を超えているか否かを判定する時間判定手段と、
を備えたことを特徴とする制御装置。
【００６１】
（付記１０）前記時間判定手段により前記救済時間が前記所定の時間閾値を越えていると判定された場合には、前記コマンドについて前記隠しリトライが多発している旨の警告を前記上位装置に対して行う警告手段をさらに備えたことを特徴とする付記９に記載の制御装置。
【００６２】
（付記１１）前記時間判定手段により前記救済時間が前記所定の時間閾値を越えていると判定された場合には、前記コマンドの要求範囲のセクタを自動交代するセクタ交代手段をさらに備えたことを特徴とする付記９に記載の制御装置。
【００６３】
（付記１２）前記時間判定手段により前記救済時間が前記所定の時間閾値を越えていると判定された場合には、前記コマンドの要求範囲のセクタごとに読み出しエラーが発生するか否かの検査を行う検査手段をさらに備え、
前記セクタ交代手段は、前記検査手段により読み出しエラーが発生するセクタを自動交代することを特徴とする付記１１に記載の制御装置。
【００６４】
（付記１３）前記時間判定手段により前記救済時間が前記所定の時間閾値を越えていると判定された場合には、前記上位装置から受け付けて実行中のコマンドを中断して別のコマンドを実行するコマンド制御手段をさらに備えたことを特徴とする付記９に記載の制御装置。
【００６５】
（付記１４）前記上位装置からコマンドを受け付けた場合に、当該コマンドの内容に基づいて自動的に算出して得た値を前記所定の時間閾値として設定する閾値設定手段をさらに備え、
前記時間判定手段は、前記救済時間が前記閾値設定手段により設定された所定の時間閾値を越えているか否かを判定することを特徴とする付記９〜１２のいずれか一つに記載の制御装置。
【００６６】
（付記１５）前記閾値設定手段は、前記リトライの試行が許容される総時間に所定の割合を乗算して得た値を前記所定の時間閾値として設定することを特徴とする付記１４に記載の制御装置。
【００６７】
（付記１６）前記閾値設定手段は、前記上位装置からコマンドを受け付けた場合に、当該コマンドの内容に基づいて自動的に算出して得た値に所定の割合を乗算して得た値を前記所定の時間閾値として設定することを特徴とする付記１４に記載の制御装置。
【００６８】
（付記１７）上位装置からのコマンドを受け付けて読み出しまたは書き込みを行い、当該読み出しまたは書き込みのエラーが発生した場合に実行するリトライの結果に応じて所定のセンスを生成し、当該所定のセンスを当該上位装置に報告する記憶装置に適用される障害報告方法であって、
前記リトライの一つとして実行される隠しリトライにより、前記コマンド内で前記エラーを救済するまでに要した救済時間を計測する時間計測工程と、
前記時間計測工程により計測された救済時間が所定の時間閾値を超えているか否かを判定する時間判定工程と、
を含んだことを特徴とする障害報告方法。
【産業上の利用可能性】
【００６９】
以上のように、本発明に係る記憶装置、制御装置および障害報告方法は、上位装置からのコマンドを受け付けて読み出しまたは書き込みを行い、当該読み出しまたは書き込みのエラーが発生した場合に実行するリトライの結果に応じて所定のセンスを生成し、当該所定のセンスを当該上位装置に報告する場合に有用であり、特に、隠しリトライを多発させているアンリガバブルエラーとなり得る候補に対して早期に対処することができ、アンリカバブルエラーの発生を防止することに適する。
【図面の簡単な説明】
【００７０】
【図１】実施例１に係る磁気ディスク装置の概要および特徴を説明するための図である。
【図２】実施例１に係る磁気ディスク装置の構成を示すブロック図である。
【図３】時間閾値の設定例を示す図である。
【図４】実施例１に係る磁気ディスク装置の処理の流れを示すフローチャートである。
【図５】実施例１に係る磁気ディスク装置の処理の流れを示すフローチャートである。
【図６】時間閾値の設定例を示す図である。
【符号の説明】
【００７１】
１０  磁気ディスク装置
１１  インタフェース制御部
１２  バッファ
１３  ＲＡＭ
１４  ＦＬＡＳＨ  ＲＯＭ
１５  ＭＰＵ
１６  ドライブ制御部
１７  ドライブ
２０  ホスト
【図１】
2007317283.tif 000003
【図２】
2007317283.tif 000004
【図３】
2007317283.tif 000005
【図４】
2007317283.tif 000006
【図５】
2007317283.tif 000007
【図６】
2007317283.tif 000008