JP2006338734A - データ記憶装置及びエラーリカバリ方法 - Google Patents

データ記憶装置及びエラーリカバリ方法 Download PDF

Info

Publication number
JP2006338734A
JP2006338734A JP2005159755A JP2005159755A JP2006338734A JP 2006338734 A JP2006338734 A JP 2006338734A JP 2005159755 A JP2005159755 A JP 2005159755A JP 2005159755 A JP2005159755 A JP 2005159755A JP 2006338734 A JP2006338734 A JP 2006338734A
Authority
JP
Japan
Prior art keywords
error recovery
error
log
data
data storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005159755A
Other languages
English (en)
Inventor
Masatoshi Ichikawa
正敏 市川
Akira Kojima
昭 小島
Keisuke Makita
恵典 牧田
Kazunari Ose
和成 小瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HGST Netherlands BV
Original Assignee
Hitachi Global Storage Technologies Netherlands BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Global Storage Technologies Netherlands BV filed Critical Hitachi Global Storage Technologies Netherlands BV
Priority to JP2005159755A priority Critical patent/JP2006338734A/ja
Priority to US11/444,604 priority patent/US7657794B2/en
Publication of JP2006338734A publication Critical patent/JP2006338734A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Digital Magnetic Recording (AREA)

Abstract

【課題】
データ記憶装置内のデータの書き込み/読み出しのエラー発生時において、短時間で処理することが可能なエラーリカバリ方式と、このエラーリカバリ方式を用いてエラーリカバリを試みるデータ記憶装置を提案することを目的とする。
【課題を解決するための手段】
データアクセスエラーに対して、複数のエラーリカバリステップを備えるエラーリカバリプロシジャに従ってエラーリカバリ処理するデータ記憶装置であって、ユーザデータを記憶するメディアのデータ領域にアクセスするヘッド111と、データ領域へのアクセスエラーに対して、そのアクセスエラーが発生したセクタのアドレス情報と、データ領域のアドレス情報及びそれに関連付けられた過去のエラーリカバリ情報を有するエラーリカバリログ151と、を使用してエラーリカバリ処理を制御するコントローラと、を備えるデータ記憶装置。
【選択図】 図1

Description

本発明は、データ記憶装置及びエラーリカバリ方法に関し、特に、エラーリカバリプロシジャにおける各エラーリカバリステップの実行順序制御に関する。
記録密度の向上につれ、データ記憶装置でのデータ書き込みエラー及びデータ読み出しエラーが発生し、データ記憶装置内でのエラーリカバリ処理の発生頻度が高くなっている。
データ記憶装置は、従来、内部に複数ステップからなる所定のエラーリカバリプロシジャを記憶保持しており、データ書き込み、データ読み出しでエラーが発生すると、上記エラーリカバリプロシジャの複数ステップを所定の順番に実行し、エラーリカバリを試みていた。
近年、コンピュータシステムの高速化および信頼性の向上から、データ記憶装置も、上位に接続されているホストコンピュータやストレージ制御装置からの時間的制約を受けている。データ記憶装置内のエラーリカバリもリカバリタイムリミットにより規定されている。データ記憶装置はこのリカバリタイムリミットの制限内で、効率よくエラーリカバリを実行し、エラーを回復する必要がある。
エラーリカバリの効率化およびエラーリカバリ時間の短縮に関しては、リカバリタイムリミット内で効率よく処理できるように、前記エラーリカバリプロシジャの各ステップの実行時間を考慮して、各ステップの実行順、リトライ回数を変更するという解決方法がある(例えば、特許文献1)。
特開平11−065778号公報
しかしながら、特許文献1においては、リカバリタイムリミットすべての時間を用いることを考えているため、エラーリカバリにかかる時間の短縮にはなっていない。また、エラーリカバリの順序を決定するのに、それぞれのステップにかかるエラーリカバリの実行時間から求めている。そのため、処理効率の点から順序を並べているわけではない。
そこで、データ記憶装置内のデータの書き込み/読み出しのエラー発生時において、短時間で処理することが可能なエラーリカバリ方式を提案することを目的とする。また、ホストコンピュータやストレージ制御装置からの書き込み要求または読み出し要求のあったデータで書き込みエラーまたは読み出しエラー発生した時に、上記のエラーリカバリ方式を用いてエラーリカバリを試みるデータ記憶装置を提供することである。
本発明の一つの態様に係るデータ記憶装置において、データアクセスエラーに対して、複数のエラーリカバリステップを備えるエラーリカバリプロシジャに従ってエラーリカバリ処理するデータ記憶装置であって、ユーザデータを記憶するメディアのデータ領域にアクセスするヘッドと、前記データ領域へのアクセスエラーに対して、そのアクセスエラーが発生したセクタのアドレス情報と、前記データ領域のアドレス情報及びそれに関連付けられた過去のエラーリカバリ情報を有するエラーリカバリログと、を使用してエラーリカバリ処理を制御するコントローラと、を備えるものである。
本発明の他の態様に係るデータリカバリ方式において、データアクセスエラーに対して、複数のエラーリカバリステップを備えるエラーリカバリプロシジャに従ってエラーリカバリ処理する方法であって、ユーザデータを記憶するデータ領域のアドレス情報と、そのアドレス情報に関連付けられた過去のエラーリカバリ情報と、を有するエラーリカバリログを記憶し、前記データ領域へのアクセスエラーに対して、そのアクセスエラーが発生したセクタのアドレス情報と、前記エラーリカバリログとを使用して、エラーリカバリステップの実行順序を決定する、エラーリカバリ方法である。
読み出しエラー/書き込みエラーが発生したときに最初に行うエラーリカバリ動作を、アドレスごとのログ情報から決定することによって、エラーリカバリする可能性の高いものからエラーリカバリ処理を行うことが可能となり、短時間で効率良くエラーリカバリ処理を実行することができる。
実施の形態1.
エラーリカバリに効果のあるエラーリカバリプロシジャのステップは、データ記憶装置個体で異なり、また、同一データ記憶装置内でもエラーの発生したアドレスによって異なり、さらには、時間、温度などの動作環境によっても異なると考えられる。
そのため、本実施の形態においては、エラーの発生したアドレス、上位に接続されているホストコンピュータやストレージ制御装置からの書き込み要求又は読み出し要求、エラーが回復した時のエラーリカバリプロシジャのステップ番号、エラーリカバリした頻度をひとつの組み合わせとしたログ情報を記憶している。
データ書き込み要求またはデータ読み出し要求のあったデータでエラーが発生した時には、上記のログ情報を参照し、エラーの発生したアドレス、書き込み要求または読み出し要求から、エラーリカバリした頻度の高いエラーリカバリプロシジャのステップを最初に実行することで、効率よくエラーリカバリ処理を実行し、エラーリカバリを試みる。
また、本実施の形態においては、エラーの発生したアドレスとしてヘッド番号を用いている。つまり、同一のヘッド番号に対応するセクタに対して同一のログ情報を使用してステップの実行順序を決定する。なお、アドレスに関連付けられたログ情報の使用によるエラーリカバリプロシジャ制御は、読み出しもしくは書き込みの一方のみを行うデータ記憶装置に適用することも可能である。
図1は、本実施の形態に係るデータ記憶システム1の構成図を示す。データ記憶システム1は、データ記憶装置10とホストコンピュータ13を有し、ホストI/F21によってデータ記憶装置10とホストコンピュータ13が接続されている。なお、以下の実施形態において、データ記憶装置として、ユーザデータを記憶するメディアとして磁気ディスクを備えるハードディスクドライブを使用する例を説明する。
ホストI/F21として、コンピュータと記憶装置間のI/Fとして標準であり広く普及しているFiber Channelを用いる。そのULP(Upper Layer Protocol)はSCSIである。
データ記憶装置10は、ドライブ11とデータ記憶装置制御部12を有している。ドライブ11は、データを記録再生するヘッド111、ディスク112、ディスク112を回転させるスピンドルモータ113、ヘッド111をディスク112の所望の位置に移動するアクチュエータ114、スピンドルモータ113の回転制御及びアクチュエータ114の移動制御をすることによってヘッド111の位置決め制御を行うドライブ制御回路115、データ読み出し回路116、及びデータ書き込み回路117を有している。
ドライブ制御回路115はアクチュエータ制御信号33によってアクチュエータ114の移動制御を、スピンドルモータ制御信号34によってスピンドルモータ113の回転制御を行っている。ドライブ11のデータの読み出し/書き込みを行うアドレスは、シリンダ番号、ヘッドの番号、セクタ番号が一組となって指定されている。
さらに、ドライブ11のデータを記憶する領域は、システム管理エリアとデータエリアに大別される。システム管理エリアは、データ記憶装置10が動作する上で必要な情報および管理情報が記憶されている。例えば、ヘッド111の本数やディスク円板112の枚数などのドライブ11の構成情報、データ記憶装置制御部12内のマイクロプロセッサ124が実行するプログラムおよびそのプログラムを実行するために必要な情報、SCSIのMode Page Parameters、及びディフェクトリストなどである。
また、システム管理エリアの情報は、例えば、Power On Reset処理のときなど、必要に応じてデータ記憶装置制御部12に読み出される。データエリアは、ホストコンピュータ13とデータ記憶装置10との間で送受信されるユーザデータを記憶保持する領域である。これは、例えば、複数シリンダからなる15のゾーンに分かれており、それぞれのゾーンごとにデータの記録密度が異なり、各シリンダのセクタ数が異なっているものがある。
データ記憶装置制御部12は、ホストI/F制御部121、HDC122、データバッファ123、マイクロプロセッサ124、ROM125、及びRAM126を有している。また、データ記憶装置制御部12は、ホストコンピュータ13とドライブ11間でデータを転送するために用いられる32ビットのデータバス22a、22b、マイクロプロセッサ124が各部位を制御するための16ビットの制御バス23を有している。さらに、データ読み出し回路116からHDC122に送信される読み出し信号31とHDC122からデータ書き込み回路117に送信される書き込み信号32が存在する。
ホストI/F制御部121は、ホストI/F21を制御する回路であり、ホストコンピュータ13とデータ記憶装置10との間でデータの送受信を制御する回路である。HDC122は、ホストI/F制御部121とデータバッファ123との間のデータの送受信の制御、ドライブ11へのデータ書き込み制御、及びドライブ11からのデータ読み出し制御を行っている。
データバッファ123は、ホストI/F21とドライブ11のデータ転送速度の差を吸収するためのバッファである。マイクロプロセッサ124は、16ビットの制御バス23を用いて、データ記憶装置制御部12の統括制御を行っている。また、マイクロプロセッサ124は、ホストコンピュータ13からホストI/F21を介して受信したSCSIコマンドの解釈及び実行と、ホストコンピュータ13とデータ記憶装置10との間におけるデータのフロー制御を行っている。
このデータのフロー制御は、マイクロプロセッサ124が制御バス23を用いて、ホストI/F制御部121、HDC122に転送を指示し、データの転送をホストI/F制御部121及びHDC122が制御することによって行われている。
ROM125は、例えば512KBのフラッシュメモリを用い、マイクロプロセッサ124が実行するプログラムを格納する。RAM126は、例えば512KBのSRAMを用い、マイクロプロセッサ124がプログラムを実行するためのワークメモリとして用いられている。
ホストコンピュータ13は、SCSIコマンドのWRITEコマンドでデータ記憶装置10にデータ書き込みを要求し、SCSIコマンドのREADコマンドでデータ記憶装置10にデータ読み出しを要求する。また、エラーリカバリの許容時間は、SCSIのMode Parameter Page1hのRecovery Time Limitで規定される。
ホストコンピュータ13がデータ記憶装置10にWRITEコマンドを出力することによってデータ書き込みを要求した場合、ホストコンピュータ13からホストI/F21を介して転送されたデータは、ホストI/F制御部121及びHDC122を介して、データバッファ123に格納される。
さらに、このデータは、HDC122によってECCなどの冗長データを付加され、パラレルデータからシリアルデータに変換される。変換されたデータは、書き込み信号32として、HDC122からドライブ11内のデータ書き込み回路116に出力される。
ドライブ制御回路115がアクチュエータ114を制御し、ヘッド111を所望のアドレスに移動させた後、データ書き込み回路116は、上記のデータを所望のアドレスに記憶する。このアドレスは、ディスク円板112上のシリンダ番号、ヘッド番号、セクタ番号で示されている。
ホストコンピュータ13がデータ記憶装置10にREADコマンドを出力することによってデータ読み出しを要求した場合、ドライブ制御回路115がアクチュエータ114を制御し、ヘッド111を所望のアドレスに移動させた後、データ読み出し回路116は、読み出し信号31を読み出す。この読み出し信号31はHDC122に出力され、HDC122がECCなどの冗長データを用いて、読み出し信号31が正しく読み出されたことを確認する。
その後、読み出し信号31は、冗長データが取り除かれ、シリアルデータからパラレルデータに変換される。このパラレルデータが、データバッファ123に格納される。データバッファ123に格納されたデータは、HDC122、ホストI/F制御部121、及びホストI/F21を介してホストコンピュータ13に転送される。
上述のREAD/WRITEコマンドを実行する際、データ読み出しエラー/データ書き込みエラーが発生する場合がある。このとき、HDC122は、エラー発生時にデータ読み出し/データ書き込みが正常に行われるまで、エラーリカバリ処理を行う。
図2はエラーリカバリプロシジャの各ステップのリカバリ内容を示すテーブルの例である。データ記憶装置10は、データ読み出しエラー発生時に使用するリードリカバリプロシジャ(図2(a)参照)と書き込みエラー発生時に使用するライトリカバリプロシジャ(図2(b)参照)を個別に持っている。
リカバリ処理には様々な種類があり、HDC122は、複数のリカバリ処理がステップごとに並んでいるエラーリカバリプロシジャに従ってエラーリカバリ動作を行っている。通常の場合、ステップ番号が1のステップのエラーリカバリ処理を行い、ステップ番号が1のステップのエラーリカバリ処理によって、データ読み出し/書き込みが正常に行われるかを検知する。
ここで、データ読み出し/書き込みが正常に行われなければ、ステップ番号が2のステップのエラーリカバリ処理を行われることになる。このように、HDC122はエラーリカバリプロシジャにおいて規定されているエラーリカバリステップの順番に従って、データ読み出し/書き込みが正常に行われるまでエラーリカバリ処理を行っていく。
データ記憶装置10は、上記エラーリカバリプロシジャの各ステップで、データ読み出し回路116、データ書き込み回路117の設定変更、ヘッド111と読み出し/書き込みを行うトラックとのオフトラック量変更を行って、エラーリカバリの許容時間までデータ書き込みまたはデータ読み出しをリトライすることによって、データ読み出し/書き込みが正常に行われるように、エラーリカバリを試みている。
ここで、本実施の形態に係るデータ記憶装置10は、データ書き込み/データ読み出し時にエラーが発生した場合に、そのヘッド番号とSCSIコマンドとにおいて最近に発生したエラーをエラーリカバリした、エラーリカバリプロシジャのステップ番号のエラーリカバリステップを最初に実行する。
データ記憶装置10において、データ記憶装置制御部12内のROM125内にエラーリカバリテーブル14を、RAM126内にエラーリカバリログテーブル15を有している。エラーリカバリテーブル14は、ステップ番号とそのステップ番号においてマイクロプロセッサ124が実行する関数のアドレスを記憶保持している。さらに、データ記憶装置10は、データ読み出し時のエラーリカバリ用とデータ書き込み時のエラーリカバリ用のエラーリカバリテーブル14を個別に記憶保持している。
図3は、エラーリカバリテーブル14のテーブル構成例を示す。エラーリカバリテーブル14は、エラープロシジャのステップ番号の数以上のエラーリカバリステップ141から構成されており、例えばエラーリカバリステップ141を48個登録可能とする。各エラーリカバリステップ141は、ステップ番号142とファンクションポインタ144を有している。この一例として、図3に示すように、エラーリカバリステップ141を8バイトとし、2バイトのステップ番号142、2バイトのReserved領域143、4バイトのファンクションポインタ144を有している。
ステップ番号142は、エラーリカバリプロシジャの各ステップの番号を記憶保持する領域である。ファンクションポインタ144は、エラーリカバリプロシジャの各ステップでマイクロプロセッサ124が実行する関数のアドレスを記憶保持する領域である。Reseved領域143は、4バイトで切れるように調整するための領域である。ステップ番号142の最小値は1であり、エラーリカバリステップ141は、ステップ番号142の順番に配置されている。
マイクロプロセッサ124は、データ書き込み/読み出しエラーが発生した時に、その書き込み/読み出しのコマンドに応じたエラーリカバリテーブル14を選択する。その後、エラーリカバリプロシジャのステップ番号142に従って、ステップ番号142に応じたファンクションポインタ144が示すアドレスの関数を実行し、エラーリカバリプロシジャの各ステップを個別に実行する。
本実施の形態におけるデータ記憶装置10では、データ書き込み/読み出しエラーが発生したときに、最初に行うステップ番号のエラーリカバリ動作を、マイクロプロセッサ124がログ情報に基づいて、最初に実行するエラーリカバリステップを決定し、その後、エラーリカバリプロシジャにおいてそのエラーリカバリステップのあとのエラーリカバリステップを実行してエラーリカバリを行う。また、エラーが発生したアドレスに対応するログ情報が存在しない場合には、エラーリカバリプロシジャのステップ番号1のエラーリカバリ動作からステップ番号の順番に、許容時間の間に、エラーリカバリ動作を行う。
本実施の形態に係るデータ記憶装置10においては、データ記憶装置制御部12内のRAM126にエラーリカバリログテーブル15を配置する。エラーリカバリログテーブル15は、エラーの発生したアドレス、SCSIコマンド(READコマンド又はWRITEコマンド)、エラーリカバリした時のエラーリカバリプロシジャのステップ番号、及びエラーリカバリした頻度を一組としたログ情報を記憶している。データ読み出し時のエラーリカバリ用とデータ書き込み時のエラーリカバリ用のエラーリカバリログテーブル15を個別に有している。
本実施の形態に係るデータ記憶装置10においては、このエラーの発生したアドレスとしてヘッド番号のみを用いている。これは、エラーリカバリの方法が磁気ディスクの面ごとに相違することが多く、ヘッド番号ごとに、エラーリカバリの方法を分けることによって、それぞれの磁気ディスクの面ごとにエラーリカバリ処理を最適化することが可能となるからである。
図4にエラーリカバリログテーブル15のテーブル構成例を示す。エラーリカバリログテーブル15は、複数のエラーリカバリログ151が登録可能となっている。例えば、48個のエラーリカバリログ151が登録可能としている。
また、エラーリカバリログ151は、エラーが発生したLBA(Logical Block Address)を示すLBA152、エラーが発生したアドレスを示す物理アドレス153、この物理アドレス153において発生したエラーが回復された、エラーリカバリプロシジャの中のステップ番号154、この物理アドレス153に発生したエラーが、エラーリカバリプロシジャの中のステップ番号154においてエラーリカバリされた回数であるエラー回復回数155を有している。
マイクロプロセッサ124は、エラーリカバリログテーブル15を参照や更新をするために、登録ポインタ156、登録数157、及び参照ポインタ158を用いる。登録ポインタ156、登録数157、及び参照ポインタ158は、エラーリカバリログテーブル15のデータ読み出し時に用いるものとデータ書き込み時に用いるものそれぞれに配置される。
登録ポインタ156は、ログ情報を新規登録するときに、書き込みを行うアドレスを格納している。登録数157は、エラーリカバリログテーブル15に登録されているエラーリカバリログ151の個数である。参照ポインタ158は、エラーリカバリログテーブル15内の参照するエラーリカバリログ151のアドレスを格納している。これらは、例えば、登録ポインタ156は4バイトのポインタ、登録数157は2バイトの変数、参照ポインタ158は4バイトのポインタである。
エラーリカバリログテーブル15は、データ書き込みエラーまたはデータ読み出しエラーがエラーリカバリしたときに、登録または更新される。また、エラーリカバリログテーブル15の内容は、登録または更新される度に、ドライブ11のシステム管理エリアに書き込まれる。また、エラーリカバリログテーブル15の内容は、Power On Reset時に、ドライブ11のシステム管理エリアから読み出され、RAM126に配置される。
本実施の形態においては、エラーリカバリログテーブル15に、同一の物理アドレス153のエラーリカバリログ151は一つしか記憶しないようにする。このようにすることによって、エラーリカバリの順序を変更するために用いるメモリを多く必要とはせずに、エラーリカバリ処理の効率を上げることができる。図5にエラーリカバリログテーブルの登録更新処理のフローチャートを示す。
まず、データ書き込み/読み出しエラーがエラーリカバリをしたときに、そのデータ書き込み/読み出しエラーのSCSIコマンドによって、新規登録又は更新するエラーリカバリログテーブル15を選択する。SCSIコマンドがREADコマンドであれば、データ読み出しエラー発生時に用いるエラーリカバリログテーブル15を選択し、SCSIコマンドがWRITEコマンドであれば、データ書き込みエラー発生時に使用するエラーリカバリログテーブル15を選択する(S11)。
次に、エラーが発生したアドレスに対応するエラーリカバリログ151が、エラーリカバリログテーブル15に登録されているか判定する(S12)。エラーが発生したアドレスに対応するエラーリカバリログ151が登録されていれば、このエラーリカバリログ151を更新する(S13)。エラーが発生したアドレスに対応するエラーリカバリログ151が登録されていなければ、エラーリカバリログ151を新規登録する(S14)。
また、S12における書き込み/読み出しエラーが発生したアドレスに対応するエラーリカバリログ151がエラーリカバリログテーブル15に登録されているか判定する処理を説明する。図6が、書き込み/読み出しエラーが発生したアドレスに対応するエラーリカバリログ151がエラーリカバリログテーブル15に登録されているか判定するときのフローチャートである。
書き込み/読み出しエラーが発生したアドレスに対応するエラーリカバリログ151がエラーリカバリログテーブル15に登録されているかの判定では、参照したエラーリカバリログ151の個数を格納するための参照数を用いる。参照数は、RAM126に一時的に配置される。
まず、登録数157を参照して、エラーリカバリログテーブル15にエラーリカバリログ151が一つ以上登録されているかを判定する。エラーリカバリログ151がエラーリカバリログテーブル15に登録されていない場合は、エラーが発生したアドレスに対応するエラーリカバリログ151も存在しないと判断され、S14のステップに進む(S121)。
エラーリカバリログ151が一つ以上登録されている場合、参照ポインタ158を初期化する(S122)。ここでいう初期化とは、参照ポインタ158をエラーリカバリログテーブル15の先頭アドレスにすることである。また、参照数を0にする(S123)。
次に、エラーが発生したアドレスと、参照ポインタ158が指し示すエラーリカバリログ151の物理アドレス153とを比較する(S124)。本実施の形態においては、物理アドレス153に記憶されているものがヘッド番号であるので、エラーが発生したヘッド番号と、参照ポインタ158が指し示すエラーリカバリログ151内の物理アドレス153に格納されているヘッド番号を比較する。
エラーが発生したアドレスと物理アドレス153が一致した場合、エラーが発生したアドレスに対応するエラーリカバリログ151がエラーリカバリログテーブル15に登録されていると判断され、S13のステップに進む。
エラーが発生したアドレスと参照ポインタ158が指し示すエラーリカバリログ151内の物理アドレス153が一致しなかった場合、参照ポインタ158を更新する(S125)。次に参照数に1を加算し、記憶する(S126)。加算後の参照数と登録数157を比較する(S127)。この処理は、エラーリカバリログテーブル15に登録されているエラーリカバリログをすべて参照したかを判定している。
参照数が登録数157より少ない場合は、S124のステップの前に戻して同じ処理を実行する。参照数が登録数157より多い場合は、エラーが発生したアドレスに対応するエラーリカバリログ151がエラーリカバリログテーブル15に登録されていないと判断し、S14のステップに進む。
次に、S13のステップで行っている、エラーリカバリを行ったアドレスのエラーリカバリログ151の更新処理について説明する。図7に、エラーリカバリログ151の更新処理のフローチャートを示す。本実施の形態に係るデータ記憶装置10においては、エラーリカバリログテーブル15上に同一の物理アドレス153に対応するエラーリカバリログ151を一つしか登録しないようにしている。
まず、エラーリカバリしたステップ番号と、登録されているステップ番号154を比較する(S131)。一致していれば、エラーリカバリ回数155に記憶されていた数に1を加算した数を、エラー回復回数155に記憶する(S132)。不一致であれば、ステップ番号154に、エラーリカバリしたステップ番号に入れ替えて記憶する(S133)。そして、エラー回復回数155に1を記憶する(S134)。
次に、S14のステップで行っている、エラーリカバリログ151の新規登録について説明する。図8に、エラーリカバリログ151の新規登録のフローチャートを示す。
登録ポインタ156が指し示すエラーリカバリログ151において、LBA152にエラーが発生したLBAを(S141)、物理アドレス153にエラーが発生した物理アドレスを(S142)、ステップ番号154にこのエラーをエラーリカバリしたステップ番号を(S143)、そして、エラー回復回数155に1を(S144)、それぞれ記憶する。次に、登録ポインタ156を更新し(S145)、登録数157にそこに記憶されていた数に1を加算した数を記憶する(S146)。
データ書き込み/データ読み出しエラーが発生した時に、最初に行うエラーリカバリ動作を示すエラーリカバリプロシジャのステップ番号を選択する処理について説明する。図9は、データ書き込み/データ読み出しエラーが発生した時に、最初に行うエラーリカバリ動作を示すエラーリカバリプロシジャのステップ番号を選択する処理のフローチャートである。
SCSIコマンドによって、エラーリカバリログテーブル15を選択する(S11)。エラーの発生したアドレスに対応するエラーリカバリログ151が、エラーリカバリログテーブル15に登録されているか判定する処理を行う(S12)。
エラーが発生したアドレスに対応するエラーリカバリログ151が、エラーリカバリログテーブル15に登録されていれば、該当するエラーリカバリログ151のステップ番号154からエラーリカバリプロシジャのステップ番号を選択する(S15)。エラーが発生したアドレスに対応するエラーリカバリログ151が、エラーリカバリログテーブル15に登録されていなければ、ステップ番号として1を選択する(S16)。
本実施の形態に係るデータ記憶装置10においては、エラーが発生したアドレスとしてヘッド番号を用いており、ヘッドそれぞれの個別な特性により、データ書き込みエラー/読み出しエラーが発生した場合に、エラーリカバリ動作を効率的に実行できる。
また、時間や温度などの動作環境により、ヘッド111とディスク112とのデータ記録再生特性が変化して、データ書き込みエラーまたはデータ読み出しエラーに対し有効なエラーリカバリステップが変わってしまった場合でも、最近に起きたエラーに対するエラーリカバリ処理の、エラープロシジャのステップ番号154を記憶しているため、エラーリカバリ処理が効率良く実行できる。
さらには、エラーリカバリログテーブル15に、同一のアドレスに対するエラーリカバリログ151が一つしか登録されないため、エラーリカバリログテーブル15を簡易にすることが可能となるため、高速に検索することができ、エラーリカバリログテーブル15を記憶するメモリも小さくすることが可能となる。
実施の形態2.
本実施の形態に係るデータ記憶装置においては、エラーリカバリログテーブルに記憶するエラーリカバリログとして、最新におきたエラーをエラーリカバリできたステップ番号のみを記憶し、データ書き込み/データ読み出しエラーが発生したときに、エラーリカバリプロシジャの上記のステップ番号に対応するステップのエラーリカバリ動作を最初に実行している。構成要素や動作原理で実施の形態1と同様のものは省略する。
本実施の形態においては、エラーリカバリログテーブル15に記憶されるエラーリカバリログ151として、ステップ番号のみを記憶している。図10に本実施の形態に係るデータ記憶装置におけるエラーリカバリログテーブル15を示す。エラーリカバリログテーブル15に格納されたエラーリカバリログ151には、ステップ番号154のみが記憶されている。従って、エラーリカバリログテーブル15には、一つのエラーリカバリログ151が記憶されている。
また、データ書き込みエラーが発生したときに用いるWRITEエラーリカバリログテーブルと、データ読み出しエラーが発生したときに用いるREADエラーリカバリログテーブルを個別に有している。さらに、エラーリカバリログ151内のステップ番号154の初期値は1とする。
データ書き込みエラー/データ読み出しエラーがエラーリカバリしたときに、そのときのエラーリカバリプロシジャのステップ番号をステップ番号154に代入する。そして、データ書き込みエラー/データ読み出しエラーが発生したときに、エラーリカバリプロシジャの、ステップ番号154に記憶されたステップ番号に対応するエラーリカバリ動作からエラーリカバリを開始する。
エラーリカバリログテーブル15の内容は、登録更新される度に、ドライブ11のシステム管理エリアに書き込まれる。また、エラーリカバリログテーブル15の内容は、Power On Reset時に、ドライブ11のシステム管理エリアから読み出され、RAM126に配置される。
シーケンシャルにデータを書き込む又はデータを読み出す要求を実行するときには、データ書き込みエラー/データ読み出しエラーが発生すると、エラーが発生したアドレスの近傍でもデータ書き込みエラー/データ読み出しエラーが発生する可能性が高い。そこで、最新のデータ書き込みエラー/データ読み込みエラーのエラーリカバリ動作のステップ番号を記憶させておくことによって、発生したデータ書き込みエラーまたはデータ読み出しエラーに対して簡便に効率良くエラーリカバリを実行することができる。
実施の形態3.
本実施の形態に係るデータ記憶装置においては、データ読み出しエラー/データ書き込みエラーが発生したアドレスのヘッド番号とシリンダ番号を、エラーリカバリログテーブルに記憶するエラーリカバリログ内の物理アドレスとして記憶している。つまり、同一のヘッド番号とシリンダ番号で特定されるセクタのアクセスエラーに対して、同一のエラーリカバリログを使用してエラーリカバリステップ実行順序を決定する。構成要素や動作原理で実施の形態1と同様のものは省略する。
本実施の形態に係るデータ記憶装置においては、エラーリカバリログ151内の物理アドレスの構成が実施の形態1との相違点である。これは、本実施の形態に係るデータ記憶装置が、ヘッド番号及びシリンダ番号領域が同一であるセクタに対して同一のエラーリカバリログ151を使用するためである。ここでいう、シリンダ番号領域とは、あるシリンダ番号にシリンダオフセットを加えたシリンダ番号からそのシリンダ番号にシリンダオフセットを引いたシリンダ番号までの領域をいう。
図11に本実施の形態に係るエラーリカバリログテーブル15の構成を示す。本実施の形態に係るエラーリカバリログテーブル15内のエラーリカバリログ151においては、物理アドレス153が、ヘッド番号153a、シリンダ番号153b、シリンダオフセット153c、及びRESERVED領域153dから構成されている。シリンダオフセット153cの初期値は、例えば5を用いる。
本実施の形態に係るデータ記憶装置においては、データ書き込みエラー/データ読み出しエラーがエラーリカバリしたときに、エラーが発生したアドレスのヘッド番号153a、シリンダ番号153b及びシリンダオフセット153cを物理アドレス153に格納し、LBA152、エラーリカバリしたステップ番号154、及びエラー回復回数155とともに、エラーリカバリログ151としてエラーリカバリログテーブル15に登録される。
データ書き込みエラー/データ読み出しエラーが発生したときには、エラーが発生したアドレスのヘッド番号と一致し、エラーが発生したアドレスのシリンダ番号がシリンダオフセット153cを加減した値であるエラーリカバリログ151を参照し、このエラーリカバリログ151のステップ番号154に記憶された、エラープロシジャのステップ番号のエラーリカバリ動作を最初に行う。
また、実施の形態1に係るデータ記憶装置において図6のS124に示した、データ読み出しエラー/データ書き込みエラーが発生したアドレスと、エラーリカバリログテーブル15に記憶されているエラーリカバリログ151の物理アドレス153との比較処理が、実施の形態1と本実施の形態に係るデータ記憶装置とで異なる。データ読み出しエラー/データ書き込みエラーが発生したアドレスと、エラーリカバリログテーブル15に記憶されているエラーリカバリログ151の物理アドレス153との比較処理のフローチャートを図12に示す。
本実施の形態に係るデータ記憶装置では、ヘッド番号153aとシリンダ番号153bのログ情報を基に、最初に行うデータリカバリ動作を決定している。そこで、データ書き込みエラー/データ読み出しエラーが発生したヘッド番号と、参照ポインタ158が指し示すエラーリカバリログ151内の物理アドレス153に記憶されたヘッド番号153aとが一致するかを判定する(S151)。
エラーが発生したヘッド番号と、参照ポインタ158が指し示すエラーリカバリログ151内の物理アドレス153に記憶されたヘッド番号153aとが一致しない場合は、参照ポインタ158が指し示すエラーリカバリログ151が、上記のエラーに対応するエラーリカバリログ151ではないと判定し、図6におけるS125のステップに進む。
エラーが発生したヘッド番号と、参照ポインタ158が指し示すエラーリカバリログ151内の物理アドレス153に記憶されたヘッド番号153aとが一致する場合は、次にシリンダ番号の比較動作を行う(S152)。
エラーが発生したシリンダ番号が、上記のヘッド番号が一致したエラーリカバリログ151内の物理アドレス153に記憶されているシリンダ番号153bに、シリンダオフセット153cを加減した値の範囲内であるのであれば、このエラーリカバリログ151が、上記のエラーが発生したアドレスに対応するエラーリカバリログ151であると判定する。
また、エラーが発生したシリンダ番号が、上記のヘッド番号が一致したエラーリカバリログ151内の物理アドレス153に記憶されているシリンダ番号153bに、シリンダオフセット153cを加減した値の範囲内でないのであれば、参照ポインタ158が指し示すエラーリカバリログ151が、上記のエラーに対応するエラーリカバリログ151ではないと判定し、図6におけるS125のステップに進む。
本実施の形態に係るデータ記憶装置において、エラーが発生した物理アドレス153を新規登録する処理を表すフローチャートを図13に示す。これは、図8におけるS142の処理である。
まず、登録ポインタ156が指し示すエラーリカバリログ151において、物理アドレス153内のヘッド番号153aに、エラーが発生したアドレスのヘッド番号を記憶し(S161)、シリンダ番号153bに、エラーが発生したアドレスのシリンダ番号を記憶し(S162)、シリンダオフセット153cに、5を格納する(S163)。
本実施の形態に係るデータ記憶装置では、データ書き込みエラー/データ読み出しエラーが発生したときに、ヘッド番号とシリンダ番号領域のログ情報を基に、最初に行うデータリカバリ動作を決定している。これは、同一のヘッドで近傍のシリンダで発生したデータ書き込みエラー/データ読み出しエラーに対しても、同じエラーリカバリプロシジャのステップが有効である可能性が高く、エラーリカバリのステップを最初に試みることでエラーリカバリを効率的に実行できる。また、データ書き込みエラー/データ読み出しエラーにはヘッドのずれによって生じることがあるが、これは、シリンダごとにおこることが多く、シリンダ番号ごとにエラーリカバリログを用いることによって効率的にエラーリカバリすることができる。
なお、上記のデータ記憶装置においては、シリンダオフセットに固定値5を記憶し使用したが、シリンダオフセットを最適な値に更新、記憶してもよい。また、上記のデータ記憶装置においては、物理アドレス153としてヘッド番号、シリンダ番号、及びシリンダオフセットを用いたが、物理アドレスとしてヘッド番号、シリンダ番号、セクタ番号、及びセクタオフセットを用いてもよい。
実施の形態4.
本実施の形態に係るデータ記憶装置においては、データ読み出しエラー/データ書き込みエラーが発生したアドレスのゾーン番号を、エラーリカバリログテーブルに記憶するエラーリカバリログ内の物理アドレスとして記憶している。つまり、同一のゾーン番号で特定されるセクタのアクセスエラーに対して、同一のエラーリカバリログを使用してエラーリカバリステップ実行順序を決定する。構成要素や動作原理で実施の形態1と同様のものは省略する。
本実施の形態に係るデータ記憶装置においては、エラーリカバリログ151内の物理アドレスの構成が実施の形態1との相違点である。図14に本実施の形態に係るエラーリカバリログテーブル15の構成を示す。本実施の形態に係るエラーリカバリログテーブル15内のエラーリカバリログ151においては、物理アドレス153が、ゾーン番号153e、及びRESERVED領域153dから構成されている。ゾーン番号153eは、データ書き込みエラー/データ読み出しエラーが発生したアドレスのゾーン番号を記憶する領域である。
データ書き込みエラー/データ読み出しエラーが発生したアドレスと、参照ポインタ158が指し示すエラーリカバリログ151の物理アドレス153を比較するステップS124において、実施の形態1に係るデータ記憶装置では、アドレスとしてヘッド番号を用いていたが、本実施の形態においては、アドレスとしてゾーン番号を用いている。
磁気ディスクの内周と外周において、記憶するための周波数が変化するため、データの読み出し/書き込みのときに生じるエラーの種類が変化する可能性がある。そのために、本実施の形態においてゾーンごとにエラーリカバリログを用いることによって、上記の原因のエラーに対応することが可能となる
実施の形態5.
本実施の形態に係るデータ記憶装置においては、エラーリカバリログテーブル15に同一の物理アドレス153を持つエラーリカバリログ151を複数登録することを可能とする。
データ書き込みエラー/データ読み出しエラーが発生したときに、エラーが発生したアドレスと一致する物理アドレス153を持つ、エラーリカバリログ151がエラーリカバリログテーブル15に複数登録されていた場合、その中で最も多いエラー回復回数155を持つエラーリカバリログ151のステップ番号154を参照する。構成要素や動作原理で実施の形態1と同様のものは省略する。
本実施の形態に係るデータ記憶装置において、図5のS12におけるエラーリカバリを行ったアドレスが登録されているか否かの判定が、実施の形態1に係るデータ記憶装置と相違している。本実施の形態に係るデータ記憶装置においては、一つのアドレスに対応するエラーリカバリログ151が複数登録されている可能性があるため、このS12での判定は、エラーリカバリしたアドレスとエラーリカバリしたエラーリカバリプロシジャのステップ番号との両方が一致しているかを判定することになる。
図15に、本実施の形態に係るデータ記憶装置における、図5のS12におけるエラーリカバリを行ったアドレスが登録されているか否かの判定処理を示す。まず、S121〜S123の処理は、実施の形態1に係るデータ記憶装置と同様なので、説明は省略する。
その後、まず、データ書き込みエラー/データ読み出しエラーが発生したアドレスと物理アドレス153に格納されたアドレスとを比較する。データ書き込みエラー/データ読み出しエラーが発生したアドレスと物理アドレス153内に格納されたアドレスとが一致しない場合は、S125とS126の処理を行い、S127において、参照数が登録数157に登録されている数以上であれば、図5のS14に進む。参照数が登録数157に登録されている数より少ない数であれば、S124の前に進む。
データ書き込みエラー/データ読み出しエラーが発生したアドレスと物理アドレス153内に格納されたアドレスとが一致する場合は、次にエラーが発生したアドレスにおいて、エラーリカバリが行われたエラープロシジャのステップ番号と、参照しているエラーリカバリログ151内のステップ番号154に記憶されているステップ番号とを比較する。
エラーリカバリが行われたエラープロシジャのステップ番号と、参照しているエラーリカバリログ151内のステップ番号154に記憶されているステップ番号が一致する場合には、図5のS13の処理に進む。一致しない場合には、上記の物理アドレスに格納されたアドレスと、エラーが発生したアドレスが一致しない場合と同様に、S125〜S127の処理を行う。
また、本実施の形態に係るデータ記憶装置における、図5のS13のフローチャートは、図7のS132の処理のみを行うことになる(図16参照)。
また、本実施の形態に係るデータ記憶装置と実施の形態1に係るデータ記憶装置との相違点として、最初に実行する、エラーリカバリプロシジャのステップ番号を選択する処理の方法がある。
本実施の形態に係るデータ記憶装置においては、同一のアドレスにおいて登録されている、ステップ番号の異なるエラーリカバリログ151において、エラー回復回数155に登録されている数の多いエラーリカバリログ151内のステップ番号154に登録されているステップ番号のエラーリカバリ動作を最初に実行する。
そのため、エラー回復回数155を比較するための変数、参照回数159と参照ステップ番号160をRAM126に配置している(図17参照)。参照回数159は、エラーが発生したアドレスと一致する数が記憶されている物理アドレス153を持つエラーリカバリログ151に記憶されているエラー回復回数155の中で、最大の数を記憶している。また、参照ステップ番号160は、参照回数159に記憶されている数がエラー回復回数155に記憶されているエラーリカバリログ151の、ステップ番号154に記憶されている数を記憶している。
上記の参照回数159と参照ステップ番号160を用いて、最初に実行するエラーリカバリ動作の、エラープロシジャのステップ番号を選択するフローチャートを図18に示す。
まず、SCSIコマンドによって、読み出し用エラーリカバリログテーブル15または書き込み用エラーリカバリログテーブル15のいずれかを選択する(S11)。登録数に登録された数が0よりも大きいかを判定する(S121)。登録数が0以下であれば、図9のS16に進む。
登録数に登録された数が0より大きい場合、エラーリカバリログテーブル15にエラーリカバリログ151が登録されていると判定する。その後、参照ポインタ158を初期化し(S122)、参照数に0を代入する(S123)。参照回数に0を代入し(S171)、参照ステップ番号に0を代入する(S172)。
エラーリカバリログテーブル15に、エラーが発生したアドレスのエラーリカバリログ151が登録されているかを判定する(S124)。エラーリカバリログテーブル15に、エラーが発生したアドレスのエラーリカバリログ151が登録されていない場合、参照ポインタを更新し(S125)、参照数をインクリメントする(S126)。
その後、参照数に登録された数と登録数157に登録された数を比較する(S127)。参照数に登録された数が登録数157に登録された数より少ない場合、エラーリカバリログテーブル15すべてを参照していないと判定し、S124の前に進む。
参照数に登録された数が登録数157に登録された数以上の場合、エラーリカバリログテーブル15すべてを参照したと判定する。その後、参照回数159が0より大きいかを判定する(S176)。参照回数159が0以下であれば、図9のS16に進む。参照回数159が0より大きければ、参照ステップ番号をステップ番号として選択する(S177)。
エラーリカバリログテーブル15に、エラーが発生したアドレスのエラーリカバリログ151が登録されている場合、参照回数159に登録された数がエラー回復回数155に登録された数より小さいかの判定を行う(S173)。
参照回数159に登録された数がエラー回復回数155に登録された数より大きい場合、上記のエラーリカバリログテーブル15に、エラーが発生したアドレスのエラーリカバリログ151が登録されていない場合と同様の動作を行う。
参照回数159に登録された数がエラー回復回数155に登録された数より大きい場合は、参照回数159に、参照しているエラーリカバリログ151のエラー回復回数155に登録された数を代入し(S174)、参照ステップ番号160に、参照しているエラーリカバリログ151のステップ番号154を代入する(S175)。
その後、上記のエラーリカバリログテーブル15に、エラーが発生したアドレスのエラーリカバリログ151が登録されていない場合と同様の動作を行う。
本実施の形態に係るデータ記憶装置においては、時間や温度などの動作環境により、ヘッド111とディスク112とのデータ記録再生特性が変化して、データ書き込みエラー/データ読み出しエラーに対し有効なリカバリステップが変わってしまった場合、エラー回復回数の大きいステップを最初に実行することで、エラーリカバリを効率的に実行できる。
本実施の形態に係るデータ記憶装置においては、物理アドレス153として、実施の形態1のように、ヘッド番号を用いてもよいし、実施の形態3.のように、ヘッド番号、シリンダ番号、及びシリンダオフセットを用いてもよい。また、実施の形態4.のようにゾーン番号を用いてもよい。
実施の形態6.
本実施の形態に係るデータ記憶装置においては、連続する複数セクタへのアクセスである場合と、連続しない複数セクタへのアクセスまたは単独セクタへのアクセスとで制御方法を変化させる。具体的一例として、アクセスするアドレスがシーケンシャル(連続複数セクタへのアクセス)であるか否かを判定して、シーケンシャルであれば実施の形態2に係る方式で、最初に実施するエラーリカバリのステップ番号を決め、シーケンシャルでなければ、実施の形態1に係る方式で、最初に実施するエラーリカバリのステップ番号を決めている。なお、構成要素や動作原理で実施の形態1、2、3、4、5と同様のものは省略する。
本実施の形態に係るデータ記憶装置においては、エラーリカバリログテーブル15として、実施の形態1に係るエラーリカバリログテーブル15aと実施の形態2に係るエラーリカバリログテーブル15bの両方を、RAM126に有している。本実施の形態に係るデータ記憶装置において、RAM126に記憶したエラーリカバリログテーブル15を図19に示す。
アクセスするアドレスがシーケンシャルであるか否かは、前回実行したREADまたはWRITEコマンドで最後にアクセスしたLBAと、実行開始するREADまたはWRITEコマンドのCDB(Command Descriptor Block)で指示されたLBAとを比較して判定する。アクセスするアドレスがシーケンシャルであるか否かは、READまたはWRITEコマンド実行開始時に判定し、結果をRAM126に記憶しておく。
データ読み出しエラーまたはデータ書き込みエラー発生時に、上記のシーケンシャル判定結果を参照して、アクセスするアドレスがシーケンシャルであれば、エラーリカバリログテーブル15bから、最初に実施するエラーリカバリのステップ番号を決定する。アクセスするアドレスがシーケンシャルでなければ、エラーリカバリログテーブル15aから、最初に実施するエラーリカバリのステップ番号を決定する。
本実施の形態に係るデータ記憶装置においては、エラーリカバリを行ったときに、アクセスするアドレスがシーケンシャルであるか否かによらず、エラーリカバリログテーブル15aとエラーリカバリログテーブル15bの両方を登録更新する。
さらに、READ又はWRITEコマンドのシーケンシャル性を判定するために、最終LBA171をRAM126に配置する。最終LBA171は、READコマンド用とWRITEコマンド用の2つをRAM126に配置する。マイクロプロセッサ124は、READ又はWRITEコマンドを実行するときに、最後にアクセスしたLBAを、RAM126内の最終LBA171に記憶保持する。
また、READ及びWRITEコマンドのシーケンシャル性を示す、シーケンシャルフラグ172もRAM126に配置する。シーケンシャルフラグ172は、値が0xFFのときにアクセスするアドレスがシーケンシャルであることを示し、0のときにアクセスするアドレスがシーケンシャルではないことを示す。マイクロプロセッサ124は、READ及びWRITEコマンドを実行するときに、コマンドのシーケンシャル性を判定し、結果をシーケンシャルフラグ172に記録保持する。
図20は、READ又はWRITEコマンドのシーケンシャル性を判定するフローチャートである。READ又はWRITEコマンドのシーケンシャル性は、実行するコマンドのLBAと、最終LBA171に記憶されているLBAを比較して判定される。
まず、READ又はWRITEコマンドによって、最終LBA171を選択する(S181)。コマンドのLBAと最終LBA171に記憶されたLBAとを比較する(S182)。コマンドのLBAが最終LBA171に記憶されたLBAより小さければ、アクセスするアドレスがシーケンシャルでないと判定し、マイクロプロセッサ124は、シーケンシャルフラグ172を0にクリアする(S183)。
コマンドのLBAが最終LBA171に記憶されたLBA以上であれば、コマンドのLBAが、最終LBA171に記憶されたLBAに32を加えた数より大きければ、アクセスするアドレスがシーケンシャルでないと判定し、マイクロプロセッサ124は、シーケンシャルフラグ172を0にクリアする。
コマンドのLBAが、最終LBA171に記憶されたLBAに32を加えた数以下であれば、アクセスするアドレスがシーケンシャルであると判定されるために、マイクロプロセッサ124は、シーケンシャルフラグを0xFFとする(S184)。
図21は、エラーリカバリログ151a、151bの登録更新処理を示すフローチャートである。まず、エラーリカバリログ151a、151bの登録更新処理においては、エラーリカバリを行ったときに、エラーをリカバリするために行ったエラーリカバリ動作のステップ番号をエラーリカバリログ151bに登録する(S17)。その後、図5における実施の形態1のエラーリカバリログの登録更新処理(S11〜S14)を行い、エラーリカバリログ151aの登録更新処理を行う。
図22は、本実施の形態に係るデータ処理装置における、最初に実行する、エラーリカバリプロシジャのステップ番号を選択する処理のフローチャートである。データ書き込みエラー又はデータ読み出しエラーが発生したときに、シーケンシャルフラグ172を参照してアクセスするアドレスがシーケンシャルであるかを判定する(S17)。アクセスするアドレスがシーケンシャルであれば、エラーリカバリログ151b内のステップ番号154bに登録されているステップ番号を選択する。
アクセスするアドレスがシーケンシャルでなければ、図9における実施の形態1の最初に実行する、エラーリカバリプロシジャのステップ番号を選択する処理を行い(S11、S12、S15、S16)、ステップ番号を選択する。
本実施の形態にかかるデータ記憶装置においては、アクセスするアドレスのシーケンシャル性から、行うエラーリカバリ方式を決定している。アクセスするアドレスがシーケンシャルであれば、直前に行ったエラーリカバリ動作が有効である可能性が高く、直前に行ったエラーリカバリ動作のステップ番号を記憶することで、効率的にエラーリカバリすることが可能である。
それと同時に、アクセスするアドレスがシーケンシャルでない場合においても、それぞれのアドレスに応じたエラーリカバリ動作が決定されるために、効率的にエラーリカバリすることが可能な方式である。
なお、上記の実施の形態においては、実施の形態1の方式と実施の形態2の方式を組み合わせているが、実施の形態2と実施の形態3又は実施の形態4又は実施の形態5を組み合わせてもよい。また、アドレスは、ヘッド番号、又はヘッド番号とシリンダ番号とシリンダオフセット、又はゾーン番号どれでも選択可能である。
実施の形態7.
本実施の形態に係るデータ記憶装置においては、エラー回復した頻度により、エラーリカバリのステップ番号をソーティングして実行する方式である。なお、構成要素や動作原理で実施の形態1、2、3、4、5、6と同様のものは省略する。
本実施の形態に係るデータ記憶装置においては、エラーリカバリログテーブル15に同一の物理アドレス153を持つエラーリカバリログ151を複数登録することを可能とする。また、物理アドレス153としては、ヘッド番号を用いている。
まず、本実施の形態に係るデータ記憶装置においては、ヘッド番号ごとにエラーリカバリログのチェーンを構築する。同一ヘッド番号でエラー回復回数155に登録されている数が高い順にエラーリカバリログ151が並べられた、ログチェーンテーブル16が、RAM126に記憶されている。
データ書き込みエラー又はデータ読み出しエラーが発生したときに、エラーが発生したアドレスのヘッド番号に対応するログチェーンテーブル16の先頭に登録されているエラーリカバリ動作から、ログチェーンテーブル16の末尾のエラーリカバリ動作に向かってエラーリカバリ動作を行う。ログチェーンテーブル16の末尾のステップのエラーリカバリ動作を実行してもエラーが回復しなかった場合、それまでに実行しなかったエラーリカバリのステップを番号の小さい順に実行する。
エラーリカバリしたとき、エラーリカバリログ151の登録更新を行い、それと同時にエラー回復回数155に登録された数の比較により、ログチェーンテーブル16の更新を行う。エラーリカバリログ151を登録更新したときに、エラーリカバリログテーブル15とあわせて、ログチェーンテーブル16もディスクドライブの管理エリアに書きこむ。
また、本実施の形態に係るデータ記憶装置においては、ヘッド番号ごとにログチェーンテーブル16を構築する。ヘッド番号ごとにチェーンの先頭とチェーンの末尾のエラーリカバリログの番号をポイントするポインタをRAM126に記憶保持する。チェーンの先頭、チェーンの末尾を示すポインタの初期値はどちらも0xFFとする。
エラーリカバリログテーブル15の構成を図23に示す。実施の形態1に係るエラーリカバリログテーブル15との相違点は、チェーンポインタ173を追加している点である。また、それぞれのエラーリカバリログ151には、オフセット番号が対応している。さらに、それぞれのエラーリカバリログ151には、フォワードチェーン201とバックワードチェーン202が追加されている。
フォワードチェーン201は、このフォワードチェーン201を有するエラーリカバリログ151が対応するヘッド番号と同じで、このエラーリカバリログ151のエラー回復回数155に登録されている数の次に大きい数が登録されているエラー回復回数155を有する、エラーリカバリログ151のオフセット番号が登録されている。フォワードチェーン201は、同一ヘッド番号でエラー回復回数155に登録されている数の大きい順番にエラーリカバリログ151を参照するために用いられる。
バックワードチェーン202は、このバックワードチェーン202を有するエラーリカバリログ151が対応するヘッド番号と同じで、このエラーリカバリログ151のエラー回復回数155に登録されている数の次に小さい数が登録されているエラー回復回数155を有する、エラーリカバリログ151のオフセット番号が登録されている。バックワードチェーン202は、エラーリカバリログ151を登録更新するときに、フォワードチェーン201及びバックワードチェーン202を更新するために用いられる。
図24に、ログチェーンテーブル16の構成を示す。同一ヘッド番号でのエラーリカバリのチェーンを構成管理するために、ログチェーンテーブル16をRAM126に配置する。ログチェーンテーブル16は、ヘッドの個数分のログチェーン161を有する。ログチェーン161はチェーントップ162とチェーンテイル163を有する。
チェーントップ162は、エラー回復回数155に登録されている数が、同一ヘッド番号で最大のエラーリカバリログ151のオフセット番号を記憶保持する領域である。チェーンテイル163は、エラー回復回数155に登録されている数が、同一ヘッド番号で最小のエラーリカバリログ151のオフセット番号を記憶保持する領域である。
ログチェーンテーブル16の内容は、エラーリカバリログテーブル15同様、登録更新される度に、ドライブ11のシステム管理エリアに書き込まれる。また、Power On Reset時に、ドライブ11のシステム管理エリアから読み出され、RAM126に配置される。
エラーリカバリログ151の登録更新とエラーリカバリログのチェーン構築処理を図25、26に示す。まず、SCSIコマンドによって、エラーリカバリログテーブル15とログチェーンテーブル16を選択する(S201)。
エラーリカバリしたアドレスにおけるヘッド番号に対応する、ログチェーン161を取り出し、このログチェーン161に記憶されたチェーントップ162に記憶されたオフセット番号が0xFF以外かを判定する(S202)。
オフセット番号が0xFFである場合、エラーリカバリログ151の新規登録を行う。新規エラーリカバリログ151のLBA152に、エラー発生LBAを代入し(S207)、エラー発生物理アドレスを物理アドレス153に代入し(S208)、エラーリカバリしたエラーリカバリプロシジャのステップ番号をステップ番号154に代入し(S209)、エラー回復回数155に1を代入する(S210)。
その後、フォワードチェーン201とバックワードチェーン202に0xFFを代入し、初期化する(S211、S212)。チェーントップ162に、新規登録したエラーリカバリログのオフセットを代入する(S213)。そして、登録ポインタ156を更新し(S214)、登録数157をインクリメントする(S215)。
チェーントップ162に記憶されたオフセット番号が0xFFでない場合は、参照ポインタ158をチェーントップ162に記憶されたオフセット番号のエラーリカバリログ151に参照ポインタを更新する(S203)。
チェーントップ162に記憶されたオフセット番号の、エラーリカバリログ151内のステップ番号154に登録されたステップ番号が、エラーリカバリしたステップ番号と一致するかを判定する(S204)。ステップ番号が一致する場合は、チェーントップ162に記憶されたオフセット番号のエラーリカバリログ151内のエラー回復回数155をインクリメントする(S205)。その後、ログチェーンテーブル16の更新修正を行う。このログチェーンテーブル16の更新修正の詳細は後述する。
チェーントップ162に記憶されたオフセット番号の、エラーリカバリログ151内のステップ番号154に登録されたステップ番号が、エラーリカバリしたステップ番号と一致しない場合、参照しているエラーリカバリログ151が、チェーンの末尾であるかを判定する(S216)。このとき、チェーンテイル163を用いる。
チェーンの末尾でない場合は、S203のステップの前に戻る。そして、チェーントップ162に記憶されたオフセット番号の、エラーリカバリログ151内のフォワードチェーン201に登録されたオフセット番号のエラーリカバリログ151に、参照ポインタ158を更新する(S203)。
参照しているエラーリカバリログ151がチェーンの末尾である場合は、エラーリカバリログテーブル15内に、物理アドレス153とステップ番号154が一致するエラーリカバリログ151が存在しないということである。
そして、新規エラーリカバリログ151内のLBA152に、エラー発生LBAを登録し(S217)、物理アドレス153に、エラー発生物理アドレスを登録し(S218)、ステップ番号154に、エラーリカバリしたステップ番号を登録し(S219)、エラー回復回数155に1を代入する(S220)。
エラー回復回数が1で最小であるので、フォワードチェーン201に0xFFを代入する(S221)。バックワードチェーン202には、最後に参照したエラーリカバリログ151のオフセット番号を登録する(S222)。チェーンテイル163に登録されたエラーリカバリログ151のオフセット番号を代入する(S223)。
エラーリカバリログ151のエラー回復回数155を更新した時には、エラー回復回数155を参照して、フォワードチェーン201、バックワードチェーン202、チェーントップ162、及びチェーンテイル163を更新する。
エラー回復回数155を更新した時のログチェーン更新修正処理S206を、図27、28に示す。エラーリカバリログ151を参照したときに、フォワードチェーン201の示すエラーリカバリログ151およびバックワードチェーン202の示すエラーリカバリログ151を参照可能とするため、一時的な変数であるフォワードポインタ174及びバックワードポインタ175を使用する。フォワードポインタ174及びバックワードポインタ175はRAM126に一時的に配置される。
まず、エラーリカバリしたエラーの位置するアドレスのヘッド番号とエラーをリカバリしたエラーリカバリプロシジャのステップ番号が一致しているエラーリカバリログ151が、チェーンのトップであるかを判定する(S301)。これは、チェーントップ162に登録されたオフセット番号と該当するエラーリカバリログ151が一致するかで判定する。
該当するエラーリカバリログ151が、チェーントップ162に登録されたオフセット番号と一致する場合は、該当するエラーリカバリログ151内のエラー回復回数155に登録された数が最大であるので、更新修正処理は終わる。
該当するエラーリカバリログ151が、チェーントップ162に登録されたオフセット番号と一致しない場合は、バックワードチェーン202の示すエラーリカバリログ151をポイントするようにバックワードポインタ175を設定する(S302)。該当エラーリカバリログ151のフォワードチェーン201が示すエラーリカバリログ151をポイントするようにフォワードチェーン201を設定する(S303)。
該当エラーリカバリログ151内のエラー回復回数155に登録された数が、バックワードポインタ175が示すエラーリカバリログ151内のエラー回復回数155に登録された数との比較を行う(S304)。
該当エラーリカバリログ151内のエラー回復回数155に登録された数が、バックワードポインタ175が示すエラーリカバリログ151内のエラー回復回数155に登録された数より小さい場合は、チェーン内の順番に変更はないと考えられ、更新修正処理を終了する。
該当エラーリカバリログ151内のエラー回復回数155に登録された数が、バックワードポインタ175が示すエラーリカバリログ151内のエラー回復回数155に登録された数が大きい場合は、チェーン内の順番に変更があるということなので、次の処理を行う。
該当エラーリカバリログ151内のバックワードポインタ175が示すエラーリカバリログ151が、チェーンの先頭であるかの判定を行う(S305)。該当エラーリカバリログ151内のバックワードポインタ175が示すエラーリカバリログ151が、チェーンの先頭である場合で、該当エラーリカバリログ151内のエラー回復回数155に登録された数が、バックワードポインタ175が示すエラーリカバリログ151内のエラー回復回数155に登録された数が大きいので、該当エラーリカバリログ151がチェーンのトップになることになる。そのため、チェーントップ162に、該当エラーリカバリログ151のオフセット番号を代入する(S306)。
その後、バックワードポインタ175の示すエラーリカバリログ151のフォワードチェーン201に該当エラーリカバリログ151のフォワードチェーン201に登録された値を代入する(S307)。
該当エラーリカバリログ151のフォワードチェーン201にバックワードチェーン202の値を代入する(S308)。該当エラーリカバリログ151のバックワードチェーン202にバックワードポインタ175の示すエラーリカバリログ151のバックワードチェーン202の値を代入する(S309)。
バックワードポインタ175が示すエラーリカバリログ151のバックワードチェーン202に該当エラーリカバリログ151のオフセット番号を代入する(S310)。以上のことから、該当エラーリカバリログ151のチェーン内の順番を変更する。
次に、該当エラーリカバリログ151がチェーンの末尾であるかの判定を行う(S311)。該当エラーリカバリログ151がチェーンの末尾であれば、チェーンテイル163に、バックワードポインタ175の示すエラーリカバリオフセット番号を代入する(S312)。その後S301のステップの前に進む。
該当エラーリカバリログ151がチェーンの末尾でないならば、フォワードポインタ174の示すエラーリカバリログ151内のバックワードチェーン202にバックワードポインタ175の示すエラーリカバリログ151のオフセット番号を代入する。(S313)。その後S301のステップの前に進む。
以上のようにして、同一ヘッドで、エラー回復回数155に登録された数が大きい順にエラーリカバリログ151が参照できるようにフォワードチェーン201、バックワードチェーン202、チェーントップ162、及びチェーンテイル163を更新する。
データ書き込みエラー又は、データ読み出しエラー発生時には、該当ヘッド番号のチェーントップ162、エラーリカバリログ151のフォワードポインタ174を参照することで、エラー回復回数155に登録されている数の大きい順にステップ番号を選択し、エラーリカバリのステップを実行する。チェーンテイル163の示すエラーリカバリログ151のステップ番号を実行してもエラーが回復しなかった場合、それまでに実行しなかったエラーリカバリのステップを番号の小さい順に実行する。
また、本実施の形態においては、物理アドレス153に登録されているアドレスは、ヘッド番号、又はヘッド番号とシリンダ番号とシリンダオフセット、又はゾーン番号どれでも選択可能である。
以上のようにすることによって、エラー回復回数155に登録されている数の多い順にエラーリカバリをすることができるようになる。また、エラー回復回数155に登録されている数の多い順にエラーリカバリすることによって、エラーが発生したときにエラーリカバリする可能性の高いエラーリカバリプロシジャのステップから実行することが可能となり、効率よくエラーリカバリすることが可能となる。
さらに、ヘッド番号ごとにエラーリカバリのステップ毎のエラー回復回数を記憶するマトリックスを、RAM126に保持し、エラーリカバリした時に、エラーリカバリしたステップ番号に対応する、このマトリックスのエラー回復回数を更新する方法でもよい。
さらにまた、データ書き込みエラー/データ読み出しエラーが発生したときに、エラーが発生したヘッドでの、エラー回復回数の多いステップから順番にエラーリカバリを実行する方式も考えられる。
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
実施の形態1に係るデータ記憶システムの構成図 実施の形態1に係るデータ記憶装置の、エラーリカバリプロシジャの各ステップのリカバリ内容を示す表の例 実施の形態1に係るデータ記憶装置の、エラーリカバリテーブルの構成図 実施の形態1に係るエラーリカバリログテーブルのテーブルの構成図 実施の形態1に係るデータ記憶装置の、エラーリカバリログテーブルの登録更新処理のフローチャート 実施の形態1に係るデータ記憶装置の、書き込み/読み出しエラーが発生したアドレスに対応するエラーリカバリログがエラーリカバリログテーブルに登録されているか判定するときのフローチャート 実施の形態1に係るデータ記憶装置の、エラーリカバリログの更新処理のフローチャート 実施の形態1に係るデータ記憶装置の、エラーリカバリログの新規登録のフローチャート 実施の形態1に係るデータ記憶装置の、最初に行うエラーリカバリ動作を示すエラーリカバリプロシジャのステップ番号を選択する処理のフローチャート 実施の形態2に係るデータ記憶装置におけるエラーリカバリログテーブル 実施の形態3に係るエラーリカバリログテーブルの構成図 実施の形態3に係るデータ記憶装置の、データ読み出しエラー/データ書き込みエラーが発生したアドレスと、エラーリカバリログテーブルに記憶されているエラーリカバリログの物理アドレスとの比較処理のフローチャート 実施の形態3に係るデータ記憶装置の、エラーが発生した物理アドレスを新規登録する処理を表すフローチャート 実施の形態4に係るエラーリカバリログテーブルの構成図 実施の形態5に係るデータ記憶装置の、エラーリカバリを行ったアドレスが登録されているか否かの判定処理のフローチャート 実施の形態5に係るデータ記憶装置の、エラーリカバリを行ったアドレスのエラーリカバリログの更新のフローチャート 実施の形態5に係るエラーリカバリログテーブルの構成図 実施の形態5に係るデータ記憶装置の、最初に実行するエラーリカバリ動作の、エラープロシジャのステップ番号を選択するフローチャート 実施の形態6に係るデータ記憶装置の、エラーリカバリログテーブルの構成図 READ又はWRITEコマンドのシーケンシャル性を判定するフローチャート 実施の形態6に係るデータ記憶装置の、エラーリカバリログの登録更新処理を示すフローチャート 実施の形態6に係るデータ処理装置における、最初に実行する、エラーリカバリプロシジャのステップ番号を選択する処理のフローチャート 実施の形態7に係るデータ記憶装置の、エラーリカバリログテーブルの構成図 エラーリカバリチェーンの構成図 実施の形態7に係るデータ記憶装置の、エラーリカバリログの登録更新とエラーリカバリログのチェーン構築処理 実施の形態7に係るデータ記憶装置の、エラーリカバリログの登録更新とエラーリカバリログのチェーン構築処理 エラー回復回数を更新した時のログチェーン更新修正処理 エラー回復回数を更新した時のログチェーン更新修正処理
符号の説明
10 データ記憶装置 11 ドライブ 12 データ記憶装置制御部
13 ホストコンピュータ 14 エラーリカバリテーブル
15 エラーリカバリログテーブル 16 ログチェーンテーブル
22a、22b データバス 23 制御バス
31 読み出し信号 32 書き込み信号 33 アクチュエータ制御信号
34 スピンドルモータ制御信号
111 ヘッド 112 ディスク円板 113 スピンドルモータ
114 アクチュエータ 115 ドライブ制御回路 116 データ読み出し回路
117 データ書き込み回路 121 ホストI/F制御部 122 HDC
123 データバッファ 124 マイクロプロセッサ
141 エラーリカバリステップ 142 ステップ番号
143 RESERVED領域 144 ファンクションポインタ
151 エラーリカバリログ 152 LBA 153 物理アドレス
153a ヘッド番号 153b シリンダ番号 153c シリンダオフセット
153d RESERVED領域 153e ゾーン番号
154 ステップ番号 155 エラー回復回数 156 登録ポインタ
157 登録数 158 参照ポインタ 159 参照回数 160 参照ステップ番号
161 ログチェーン 162 チェーントップ 163 チェーンテイル
171 最終LBA 172 シーケンシャルフラグ 173 チェーンポインタ
174 フォワードポインタ175 バックワードポインタ
201 フォワードチェーン 202 バックワードチェーン

Claims (18)

  1. データアクセスエラーに対して、複数のエラーリカバリステップを備えるエラーリカバリプロシジャに従ってエラーリカバリ処理するデータ記憶装置であって、
    ユーザデータを記憶するメディアのデータ領域にアクセスするヘッドと、
    前記データ領域へのアクセスエラーに対して、そのアクセスエラーが発生したセクタのアドレス情報と、前記データ領域のアドレス情報及びそれに関連付けられた過去のエラーリカバリ情報を有するエラーリカバリログと、を使用してエラーリカバリ処理を制御するコントローラと、
    を備えるデータ記憶装置。
  2. 前記データ記憶装置は複数のヘッドを備え、
    前記コントローラは、ヘッド番号が同一であるセクタに対して同一のエラーリカバリログを使用する、
    請求項1に記載のデータ記憶装置。
  3. 前記データ記憶装置は複数のヘッドを備え、
    前記コントローラは、ヘッド番号及びシリンダ番号領域が同一であるセクタに対して同一のエラーリカバリログを使用する、
    請求項1に記載のデータ記憶装置。
  4. 前記コントローラは、ゾーンが同一であるセクタに対して同一のエラーリカバリログを使用する、
    請求項1に記載のデータ記憶装置。
  5. 前記エラーリカバリログは、最近にエラー回復したエラーリカバリステップ特定情報を含み、
    前記コントローラは、前記エラーリカバリログに対応するセクタのアクセスエラーに対して、当該エラーリカバリログに含まれる最近エラーリカバリステップを最初に実行するように制御する、
    請求項1に記載のデータ記憶装置。
  6. 前記エラーリカバリログは、エラーリカバリステップ特定情報とそのエラーリカバリステップの過去のエラー回復回数とを含み、
    前記コントローラは、前記エラーリカバリログに対応するセクタのアクセスエラーに対して、当該エラーリカバリログに含まれるエラー回復回数を使用して、エラーリカバリステップの実行順序を決定する、
    請求項1に記載のデータ記憶装置。
  7. 前記コントローラは、最もエラー回復回数の大きいエラーリカバリステップを実行順序の最初に設定する、請求項6に記載のデータ記憶装置。
  8. 前記コントローラは、エラー回復回数の大きい順に各エラーリカバリステップの実行順序を決定する、請求項6に記載のデータ記憶装置。
  9. 前記コントローラは、前記データ領域へのアクセスが連続する複数セクタへのアクセスであるかを判定し、前記データ領域へのアクセスが連続する複数セクタへのアクセスである場合、複数セクタへのアクセスに対応して登録されているエラーリカバリステップ実行順序に従い、
    連続する複数セクタへのアクセスでない場合、アクセスセクタのアドレス情報と前記エラーリカバリログとを使用してエラーリカバリ処理を制御する、
    請求項1に記載のデータ記憶装置。
  10. データアクセスエラーに対して、複数のエラーリカバリステップを備えるエラーリカバリプロシジャに従ってエラーリカバリ処理する方法であって、
    ユーザデータを記憶するデータ領域のアドレス情報と、そのアドレス情報に関連付けられた過去のエラーリカバリ情報と、を有するエラーリカバリログを記憶し、
    前記データ領域へのアクセスエラーに対して、そのアクセスエラーが発生したセクタのアドレス情報と、前記エラーリカバリログとを使用して、エラーリカバリステップの実行順序を決定する、エラーリカバリ方法。
  11. 前記エラーリカバリ方法は、ヘッド番号が同一であるセクタに対して同一のエラーリカバリログを使用する、
    請求項10に記載のエラーリカバリ方法。
  12. 前記エラーリカバリ方法は、ヘッド番号及びシリンダ番号領域が同一であるセクタに対して同一のエラーリカバリログを使用する、
    請求項10に記載のエラーリカバリ方法。
  13. 前記エラーリカバリ方法は、ゾーンが同一であるセクタに対して同一のエラーリカバリログを使用する、
    請求項10に記載のエラーリカバリ方法。
  14. 前記エラーリカバリログは、最近にエラー回復したエラーリカバリステップ特定情報を含み、
    前記エラーリカバリログに対応するセクタのアクセスエラーに対して、当該エラーリカバリログに含まれる最近エラーリカバリステップを最初に実行する、
    請求項10に記載のエラーリカバリ方法。
  15. 前記エラーリカバリログは、エラーリカバリステップ特定情報とそのエラーリカバリステップの過去のエラー回復回数とを含み、
    前記エラーリカバリログに対応するセクタのアクセスエラーに対して、当該エラーリカバリログに含まれるエラー回復回数を使用して、エラーリカバリステップの実行順序を決定する、
    請求項10に記載のエラーリカバリ方法。
  16. 最もエラー回復回数の大きいエラーリカバリステップを実行順序の最初に設定する、
    請求項15に記載のエラーリカバリ方法。
  17. エラー回復回数の大きい順に各エラーリカバリステップの実行順序を決定する、
    請求項15に記載のエラーリカバリ方法。
  18. 前記データ領域へのアクセスが連続する複数セクタへのアクセスであるかを判定し、
    前記データ領域へのアクセスが連続する複数セクタへのアクセスである場合、複数セクタへのアクセスに対応して登録されているエラーリカバリステップ実行順序に従い、
    連続する複数セクタへのアクセスでない場合、アクセスセクタのアドレス情報と前記エラーリカバリログとを使用してエラーリカバリ処理を行う、
    請求項10に記載のエラーリカバリ方法。
JP2005159755A 2005-05-31 2005-05-31 データ記憶装置及びエラーリカバリ方法 Pending JP2006338734A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005159755A JP2006338734A (ja) 2005-05-31 2005-05-31 データ記憶装置及びエラーリカバリ方法
US11/444,604 US7657794B2 (en) 2005-05-31 2006-05-31 Data storage device and error recovery method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005159755A JP2006338734A (ja) 2005-05-31 2005-05-31 データ記憶装置及びエラーリカバリ方法

Publications (1)

Publication Number Publication Date
JP2006338734A true JP2006338734A (ja) 2006-12-14

Family

ID=37464845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005159755A Pending JP2006338734A (ja) 2005-05-31 2005-05-31 データ記憶装置及びエラーリカバリ方法

Country Status (2)

Country Link
US (1) US7657794B2 (ja)
JP (1) JP2006338734A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795790B2 (en) 2017-06-16 2020-10-06 Fujitsu Limited Storage control apparatus, method and non-transitory computer-readable storage medium

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7831750B2 (en) * 2007-01-31 2010-11-09 Hewlett-Packard Development Company, L.P. Method, apparatus and software for processing input or output requests for a mirrored storage volume
US8140908B2 (en) * 2007-06-22 2012-03-20 Microsoft Corporation System and method of client side analysis for identifying failing RAM after a user mode or kernel mode exception
US7962739B2 (en) * 2008-02-25 2011-06-14 Lenovo (Singapore) Pte. Ltd. Recovering from hard disk errors that corrupt one or more critical system boot files
US8407517B2 (en) * 2010-04-08 2013-03-26 Hitachi, Ltd. Methods and apparatus for managing error codes for storage systems coupled with external storage systems
US8996751B2 (en) * 2013-01-11 2015-03-31 Dell Products, Lp Autonomously initiated information storage device parameter change notification
JP6099458B2 (ja) 2013-03-29 2017-03-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 特定の仮想マシンに関連するトレース・データを得るためのコンピュータ実装方法、プログラム、トレーサ・ノード
WO2015111176A1 (ja) * 2014-01-24 2015-07-30 株式会社日立製作所 プログラマブルデバイス、エラー保持システム、及び電子システム装置
US10007638B2 (en) 2015-11-10 2018-06-26 Dell Products, Lp Asynchronous notification including parameter values in serial advanced technology attachment protocol
CN108431783B (zh) * 2015-12-30 2020-09-18 华为技术有限公司 访问请求处理方法、装置及计算机系统
KR102549545B1 (ko) * 2018-03-22 2023-06-29 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
CN110659162B (zh) * 2019-09-27 2022-10-25 厦门市美亚柏科信息股份有限公司 一种tpsfs文件系统的数据恢复方法、装置、系统及存储介质
US11437119B2 (en) 2020-08-19 2022-09-06 Micron Technology, Inc. Error read flow component

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3675851B2 (ja) * 1994-03-15 2005-07-27 富士通株式会社 計算機監視方式
JPH10134528A (ja) * 1996-10-25 1998-05-22 Internatl Business Mach Corp <Ibm> 記録装置およびエラー回復方法
JPH1165778A (ja) 1997-08-12 1999-03-09 Fujitsu Ltd 情報記憶装置
JPH1166763A (ja) * 1997-08-21 1999-03-09 Nec Corp データディスクの読み出し方法および読み出し手順を記録した記録媒体
JP3371396B2 (ja) * 1998-09-24 2003-01-27 インターナショナル・ビジネス・マシーンズ・コーポレーション エラー回復方法及び装置
JP2000148604A (ja) * 1998-11-12 2000-05-30 Hitachi Ltd 記憶装置の制御方法
JP2000182292A (ja) * 1998-12-15 2000-06-30 Fujitsu Ltd 光学的記憶装置及び光記憶媒体の記録再生方法
JP3774591B2 (ja) 1999-07-01 2006-05-17 株式会社日立グローバルストレージテクノロジーズ リトライシーケンス学習方法及び該学習方法を適用した磁気ディスク装置
US6883126B1 (en) * 2000-11-07 2005-04-19 Maxtor Corporation Method and apparatus for reducing error recovery time in hard disk drive
US6862151B2 (en) * 2000-11-15 2005-03-01 Seagate Technologies Llc Method and apparatus for read error recovery
DE10144006A1 (de) * 2001-09-07 2003-04-30 Siemens Ag Verfahren zur Meldungsdiagnose
US7275202B2 (en) * 2004-04-07 2007-09-25 International Business Machines Corporation Method, system and program product for autonomous error recovery for memory devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795790B2 (en) 2017-06-16 2020-10-06 Fujitsu Limited Storage control apparatus, method and non-transitory computer-readable storage medium

Also Published As

Publication number Publication date
US7657794B2 (en) 2010-02-02
US20060271809A1 (en) 2006-11-30

Similar Documents

Publication Publication Date Title
JP2006338734A (ja) データ記憶装置及びエラーリカバリ方法
EP0941510B1 (en) Method and apparatus for adding to the reserve area of a disk drive
JP3869365B2 (ja) ディスク記録装置、および記録ディスクのセクタ交替方法
KR101347285B1 (ko) 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치
TWI488041B (zh) 儲存媒體的資料存取管理方法及儲存控制器
US6963951B2 (en) Partition recovery method
US20010047451A1 (en) Method and apparatus for disc drive defragmentation
RU2440629C1 (ru) Устройство привода оптического диска
US8291190B2 (en) Disk drive including a host interface supporting different sizes of data sectors and method for writing data thereto
US20140068216A1 (en) Storage system for supporting copy command and move command and operation method of storage system
KR20020061176A (ko) 호스트 보호 영역 복제 과정
US8230186B2 (en) Hybrid recording device
JP2008146408A (ja) データ記憶装置、そのデータ再配置方法、プログラム
US20040044886A1 (en) Partition recovery method
JP5742931B2 (ja) ストレージ装置,制御装置及び制御方法
US6693754B2 (en) Method and apparatus for a disc drive adaptive file system
JP2003330629A (ja) ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム
US20130194696A1 (en) Disk drive and write control method
US8707089B2 (en) Storage control device for formatting to storage media, storage control method for formatting to storage media, and medium for storing storage control program for formatting to storage media
US20120059986A1 (en) Disk apparatus, data replicating method onto disk apparatus and program recording medium
KR101072730B1 (ko) 기록 재생 장치 및 기록 방법
CN103631564A (zh) 保护被高速缓存盘的数据完整性的方法
JP2010027140A (ja) ハードディスクドライブ装置の読取装置及びハードディスクドライブ装置の読取装置を備えたコピー装置。
JP2011129221A (ja) 異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ及びそのユーザ・データのバックアップ方法
US20110161611A1 (en) Method for controlling semiconductor storage system configured to manage dual memory area

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080401

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080724

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081023

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090317