以下、本件の情報記憶システムの具体的な実施形態について、図面を参照して説明する。
まず、第1実施形態について説明する。
図1は、情報記憶システムの第1実施形態を示す図である。
図1に示す情報記憶システム1は、記憶装置10と制御装置20と備えている。
記憶装置10は、記憶媒体11と、読出部12と、判定部13と、繰返し指示部14と、第1出力部15と、第2出力部16とを備えている。
記憶媒体11は、情報の正誤を確認可能な符号を含んだ記憶情報を各々が記憶する複数の記憶区画11a_1が並んだトラック11aが、互いに隣接して複数本設けられたものである。
読出部12は、上記記憶区画11a_1を単位としてアクセス範囲が指定され、上記記憶媒体11上のそのアクセス範囲にアクセスすることで上記記憶情報を読み出す。
尚、この読出部12が行う記憶情報の読出しには、この記憶装置10が読出し指示を受けた場合の読出しだけでなく、書込み指示を受けた場合の次のような読出しも含まれる。即ち、読出部12が行う読出しには、書込み指示を受けてアクセス範囲の記憶区画に情報が書き込まれた後に、その書込みが正常に完了したか否かの確認のために行われる記憶情報の読出しも含まれる。
判定部13は、上記読出部12により読み出された上記記憶情報から正確な情報が得られたか否かを判定する。
繰返し指示部14は、正確な情報が得られなかったと上記判定部13により判定された場合に上記読出部12に、上記アクセス範囲からの上記記憶情報の読出しを繰り返させる。
第1出力部15は、正確な情報が得られたと上記判定部13により判定された場合には、その正確な情報およびアクセス完了の通知の少なくとも一方を出力する。
ここで、この第1出力部15は、この記憶装置10が読出し指示を受けていた場合には、上記の正確な情報およびアクセス完了の通知の両方を出力する。また、この記憶装置10が書込み指示を受けていた場合には、第1出力部15は、アクセス完了の通知のみを出力する。
一方、第1出力部15は、上記記憶情報の読出しが、予め決められた限度まで繰り返されても、正確な情報が得られなかったと上記判定部13により判定された場合には、読出しの失敗を示すエラー情報を出力する。
第2出力部16は、特定の指示を受けた場合に、上記読出部12により読み出された上記記憶情報をそのまま出力する。
制御装置20は、指定部21と、指示付与部22と、交代部23とを備えている。
指定部21は、上記記憶装置10に上記アクセス範囲を指定する。
指示付与部22は、上記記憶装置10の上記第1出力部15から出力された情報を取得し、その取得した情報が上記エラー情報である場合に、次のような処理を行う。
この場合、指示付与部22は、第1アクセス範囲と第2アクセス範囲とを上記記憶装置10に指定する。第1アクセス範囲は、情報読出が試行された記憶区画11a_1である試行区画を含んだアクセス範囲である。第2アクセス範囲は、その試行区画のトラック11aに隣接するトラック11a上の、その試行区画に隣接する記憶区画11a_1である隣接区画を含んだアクセス範囲である。そして、指示付与部22は、上記第2出力部16に対して上記特定の指示を与える。
交代部23は、上記第2出力部16により出力された上記記憶情報を取得する。そして、交代部23は、その取得した記憶情報から正確な情報が、上記試行区画および上記隣接区画の双方について得られない場合のその試行区画については、次のような処理を行う。即ち、交代部23は、上記試行区画については、上記記憶媒体11上の記憶区画11a_1のうち、その試行区画に替えて上記読出部12によるアクセス対象となる交代区画を割り当てる。
例えばHDDにおいて、ある記憶区画について上記のリトライ処理が何度も繰り返されて、やっと正確な情報が得られる場合には、その記憶区画に傷等の欠陥が存在している可能性が高い。そして、傷等の欠陥は、その記憶区画が属するトラックに隣接する隣のトラックの記憶区画にまで及んでいる可能性が高い。
図1に示す情報記憶システム1では、記憶装置10からエラー情報が出力されると、情報読出しが試行された上記試行区画を含んだ第1アクセス範囲の記憶区画と、上記隣接区画を含んだ第2アクセス範囲の記憶区画から情報がそのまま読み出される。それぞれのアクセス範囲の記憶区画からそのまま読み出された情報の中には、誤りを有する情報が含まれている。ここで、この誤りの中には、リトライ処理を何度も繰り返させる欠陥による重篤な誤りや、クロストークやノイズによる、少ない回数のリトライ処理で修正可能な軽微な誤り等といった、軽重様々なものがある。そして、上記のように、重篤な誤りに繋がる欠陥は、隣のトラックの記憶区画にまで及んでいる可能性が高い。
この情報記憶システム1では、上記試行区画と上記隣接区画との双方について正確な情報が得られない場合に、その試行区画については、交代区画が割り当てられる。これにより、互いに隣り合った複数のトラック間に亘る重大な誤りに繋がる欠陥が存在している可能性が高い記憶区画について交代区画が割り当てられることとなる。そして、次回に、この記憶区画を含むアクセス範囲からの情報の読出しが情報記憶システム1において実行されるときには、その記憶区画については交代区画にアクセスされることなる。その結果、上記のようなリトライ処理の繰返し発生が抑えられる。つまり、この情報記憶システム1では、パフォーマンスの低下が抑えられることとなる。
次に、第2実施形態について説明する。
図2は、情報記憶システムの第2実施形態を示す図である。
この図2には、複数のHDD100を備え、情報を、これら複数のHDD100に記憶するRAID(Redundant Arrays of Inexpensive Disks)構造を有するRAIDシステム2が示されている。
ここで、RAID構造には、あるHDDに記憶した情報と同じ情報を別のHDDに記憶しておくRAID1、情報を、その情報の修正のための情報とともに複数のHDDに分散して記憶するRAID2〜5等といった複数種類がある。本実施形態のRAIDシステム2は、いずれの種類のRAID構造であっても良いが、説明を簡単なものとするため、以下では、RAID構造がRAID1であるものとして説明を行う。
図2示すように、RAIDシステム2は、複数のHDD100が収納されたドライブエンクロージャ50と、そのドライブエンクロージャ50内のHDD100に対して情報の読書きを指示するRAIDコントローラ70とを備えている。
RAIDコントローラ70は、HDD100に対する情報の読書き指示を含む各種処理を実行する制御IC(Integrated Circuit)71を備えている。また、RAIDコントローラ70は、ROM(Read Only Memory)72と、RAM(Random Access Memory)73を備えている。ROM72には、制御IC71が実行する各種処理を記述した各種プログラムが格納されている。制御IC71は、このROM72内のプログラムに従って処理を実行する。また、RAM73には、ROM72中のプログラムが展開されると共に、処理の実行で使われる各種パラメータが格納される。さらに、RAIDコントローラ70は、書換え可能な不揮発性メモリとして半導体メモリ74を備えている。この半導体メモリ74には、後述の交代対応表が格納されている。
図3は、図2に示すHDDの構成を示す図である。
この図3に示すように、HDD100は、磁気ディスク110、ヘッド101、制御IC102、ECC処理回路103、ROM104、RAM105、および半導体メモリ106を備えている。
ここで、HDD100は、複数枚の磁気ディスク110を備えているが、枚数については特定せずに説明を行う。
磁気ディスク110には、各々が情報を記憶する複数のセクタ111aが周回して並んだトラック111が、互いに隣接して複数本設けられている。複数本のトラック111のそれぞれには、磁気ディスク110上での各トラック111の位置を示す番号が割り当てられている。また、各トラック111に属する複数のセクタ111aそれぞれには、トラック111a上での位置を示す番号が割り当てられている。
本実施形態における磁気ディスク110が、複数の記憶区画が並んだトラックが、互いに隣接して複数本設けられた記憶媒体の一例に相当する。また、この磁気ディスク110におけるセクタ111aが、上記の記憶媒体における記憶区画の一例に相当する。そして、この磁気ディスク110におけるトラック111aが、上記の記憶媒体におけるトラックの一例に相当する。
また、本実施形態では、磁気ディスク110は表裏両面に情報を記憶する。そして、HDD100は、各磁気ディスク110の表裏各面につき1つずつ、アクセスを行うヘッド101を備えている。そして、各ヘッド101には、そのヘッド101を示す番号が割り当てられている。
各HDD100の内部では、磁気ディスク110上の各セクタ111aの位置がCHS(Cylinder Head Sector)形式で取り扱われる。
CHS形式は、いわゆる円筒座標系の一種で、各セクタ111aの位置を、シリンダ番号とヘッド番号とセクタ番号とで示す形式である。シリンダ番号は、同径トラックが並んだ円筒(シリンダ)の番号である。ヘッド番号は、そのトラック111にアクセスするヘッド101の番号である。セクタ番号は、そのトラック111上でのセクタ111aの番号である。
一方で、図2のRAIDシステム2では、各セクタ111aに、複数のHDD100に亘る通し番号である論理アドレス(LBA:Logical Block Address)が割り当てられている。以下、上記のCHS形式で表されるセクタ111aの位置を物理アドレスと呼ぶ。RAIDシステム2に接続される上位装置であるサーバ等には、各セクタ111aの位置を示すアドレスとして、このLBAが公開されている。
ここで、図2のRAIDシステム2では、各HDD100において、セクタ111aにLBAが割り当てられていない予備領域が存在している。LBAは、各HDD100の予備領域内のセクタ111aを除いたセクタ111aに割り当てられた通し番号となっている。一方で、物理アドレスは、各HDD100における全てのセクタ111aに割り当てられている。
本実施形態では、上位装置からRAIDシステム2への情報の読書き指示は、情報が読書きされる一連のセクタ111aを示すアクセス範囲が、上位装置から次のようにLBAによって指定されて行われる。即ち、アクセス範囲として、上位装置からは、一連のセクタ111aのうち、アクセス順での先頭に位置するセクタ111aのLBA(先頭LBA)と、その一連のセクタ111aの数(ブロック数)とが指定される。また、情報の書込み指示の場合には、書込み情報が、この上位装置からRAIDシステム2に送られる。
RAIDコントローラ70は、この上位装置からの読書き指示を受けて、RAIDシステム2中の複数のHDD100のうち、上位装置から指定されたアクセス範囲のセクタ111aを有するHDD100に読書きを指示する。この指示の際には、RAIDコントローラ70は、そのHDD100に、上位装置から指定された先頭LBAとブロック数とでアクセス範囲を指定する。また、書込み指示の場合には、RAIDコントローラ70は、アクセス範囲の指定に加えて、上位装置から送られて来る書込み情報もそのHDD100に送る。
制御IC102は、RAIDコントローラ70から指定された先頭LBAを物理アドレスに変換する。本実施形態では、ROM104に、HDD100内のセクタ111aについての、LBAから物理アドレスへの変換関係を表すアドレス変換情報が格納されている。制御IC102による先頭LBAの物理アドレスへの変換は、このアドレス変換情報を使って行われる。
ここで、上述したように、LBAは、HDD100内の、予備領域内のセクタ111aを除いたセクタ111aに割り当てられている。一方で、物理アドレスは、HDD100内の全てのセクタ111aに割り当てられている。上記のアドレス変換情報は、LBAから、予備領域内のセクタ111aを除いたセクタ111aへの変換関係を表している。
尚、図2に示すRAIDコントローラ70のROM72には、このRAIDシステム2に搭載されている複数のHDD100それぞれについて、アドレス変換情報が格納されている。また、本実施形態では、複数のHDD100それぞれに識別番号が割り当てられている。ROM72内の各HDD100のアドレス変換情報には、そのHDD100の識別番号が付されている。
HDD100の制御IC102は、先頭LBAを、そのHDD100のROM104内のアドレス変換情報を使って、物理アドレスに変換する。また、情報の書込み時には、制御IC102は、RAIDコントローラ70から送られて来る書込み情報をヘッド101に送る。そして、制御IC102は、ヘッド101に、先頭LBAを変換した物理アドレスのセクタ110aから、指定されたブロック数のセクタ111aに対して順次に情報を読書きさせる。
ここで、本実施形態では、各セクタ111aに書き込まれて、そのセクタ111aで記憶される記憶情報には、情報の正誤を確認可能ないわゆるECC符号が付されている。このECC符号は、セクタ111aから読み出された記憶情報についての誤り検出と、その読み出された情報から誤りが検出された場合の情報修正に用いられる。
ECC処理回路103は、このECC符号を用いて誤り検出と情報修正とを行う回路である。
ROM104には、制御IC102が実行する各種処理を記述した各種プログラムと、各HDD100についてのアドレス変換情報が格納されている。制御IC102は、このROM104内のプログラムに従って処理を実行する。
RAM105には、ROM104中のプログラムが展開されると共に、処理の実行で使われる各種パラメータが格納される。
半導体メモリ106には、後述の交代処理における交代元のセクタ111aの物理アドレスと、そのセクタ111aに割り当てられた交代先のセクタ111aの物理アドレスとを一対一に対応付けた交代対応表が格納される。この交代対応表は、交代処理が実行される度に更新される。
尚、図2に示すRAIDコントローラ70の半導体メモリ74には、このRAIDシステム2に搭載されている複数のHDD100それぞれについて交代対応表が格納されている。また、本実施形態では、半導体メモリ74内の各HDD100の交代対応表には、そのHDD100の識別番号が付されている。このRAIDコントローラ70の半導体メモリ74内の交代対応表も、交代処理が実行される度に更新される。
図4は、図2に示すRAIDシステムに搭載されているHDDを、そのHDDの機能に注目して示す機能ブロック図である。
この図4に示すように、HDD100は、機能ブロックとして、アクセス部121と、判定部122と、繰返し部123と、第1出力部124と、第2出力部125とを備えている。
アクセス部121は、RAIDコントローラ70から先頭LBAとブロック数とで指定されたアクセス範囲の各セクタ111aに情報を読書きするものである。ここで、このアクセス部121では、先頭LBAが物理アドレスに変換される。さらに、アクセス部121は、図3に示すROM104内の交代対応表に、アクセス範囲内の物理アドレスが存在しているか否かを調べる。
そして、アクセス部121は、その変換された物理アドレスのセクタ111aから順次にアクセスして情報を読書きする。ただし、交代対応表に、アクセス範囲内の物理アドレスが存在していた場合には、アクセス部121は、その物理アドレスに対応している交代先の物理アドレスのセクタ111aにアクセスして情報を読書きする。
このアクセス部121は、RAIDコントローラ70から書込み指示があった場合には、アクセス範囲の全てのセクタ111aに情報を一旦書き込んだ後に、書込みが完了したか否かの確認のために、この書込み後の各セクタ111aから記憶情報を読み出す。
また、アクセス部121は、RAIDコントローラ70から読出し指示があった場合には、アクセス範囲の各セクタ111aから記憶情報を読み出す。
いずれの場合でも、アクセス部121は、先頭LBAを変換した物理アドレスのセクタ111aから順次に記憶情報を読み出す。そして、アクセス部121は、各セクタ111aから記憶情報を読み出す度に、その読み出した記憶情報を、その記憶情報を読み出したセクタ111aの物理アドレスと共に判定部122に渡す。
また、このアクセス部121は、RAIDコントローラ70から指定されたアクセス範囲におけるブロック数に基づいて、後述のリトライ時間の合計時間と比較される制限時間を決定する。アクセス部121は、その決定した制限時間を、図3に示すRAM105に確保された制限時間格納エリアに格納する。
このアクセス部121は、ハードウェアとしては、図3に示す制御IC102とヘッド101とがその役割を担っている。また、このアクセス部121が、記憶媒体上のアクセス範囲にアクセスすることで情報を読み出す読出部の一例に相当する。
判定部122は、アクセス部121から渡された各セクタ111aの記憶情報から正確な情報が得られたか否かを、その記憶情報に付されているECC符号を使った誤り検出によって次のように判定する。
判定部122は、アクセス部121から渡された記憶情報に対する誤り検出をECC符号を使って行う。そして、その記憶情報から誤りが検出された場合には、判定部122は、その記憶情報をECC符号を使って修正する。
判定部122は、記憶情報から誤りが検出されなかった場合、あるいは、誤りが検出され且つ修正ができた場合、アクセス部121に渡された記憶情報から正確な情報が得られたと判定する。判定部122は、正確な情報が得られたと判定した場合、アクセス部121から渡された記憶情報あるは修正後の記憶情報を繰返し指示部123に渡す。
一方、判定部122は、誤りが検出され且つ修正ができなかった場合には、アクセス部121から渡された記憶情報から正確な情報が得られなかった判定する。判定部122は、正確な情報が得られなかったと判定した場合、その判定結果を繰返し指示部123に渡す。また、このときには、判定部122は、正確な情報が得られなかった記憶情報が読み出されたセクタ111aの物理アドレス(読出し不可アドレス)をその判定結果に付して繰返し指示部123に渡す。
この判定部122は、ハードウェアとしては、図3に示す制御IC102とECC処理回路103とがその役割を担っている。また、この判定部122が、読出部により読み出された情報から正確な情報が得られたか否かを判定する判定部の一例に相当する。
繰返し指示部123は、正確な情報が得られなかった旨を示す判定結果と読出し不可アドレスとの組、あるいは、正確な情報が得られたと判定された記憶情報が判定部122から渡される度に、次のような処理を行う。
即ち、判定部から記憶情報が渡された場合、繰返し指示部123は、その記憶情報を第1出力部124に渡す。
一方、正確な情報が得られなかった旨を示す判定結果と読出し不可アドレスとの組が判定部122から渡された場合、繰返し指示部123は、その読出し不可アドレスのセクタ111aについての再読出しを指示する。
そして、アクセス部121は、図3に示すヘッド101が、再読出しが指示されたセクタ111aに再度近接したタイミングで再度の読出しを実行する。そして、再度の読出しで読み出された情報は、再び、判定部122での判定に供される。この再度の読出し、および再判定を、以下、リトライ処理と呼ぶ。
このリトライ処理は、読出し不可アドレスのセクタ111aから読み出され、判定部122で正確な情報が得られたと判定された記憶情報が、判定部122から、繰返し指示部123に渡されるまで繰り返される。そして、1回もしくは複数回のリトライ処理を経て、その読出し不可アドレスのセクタ111aの記憶情報が判定部122から渡されると、繰返し指示部123は、その記憶情報を第1出力部124に渡す。
また、繰返し指示部123は、アクセス部121に対し、再読出しを指示した後、判定部122から、記憶情報、あるいは、読出し不可アドレスと判定結果との組が渡されるまでの経過時間(リトライ時間)を不図示のタイマを使って計時する。
図3に示すRAM105には、リトライ時間の保管エリアが確保されている。繰返し指示部123は、リトライ時間を計時する度に、その保管エリアに保管されていたリトライ時間に、今回計時したリトライ時間を加算する。これにより、リトライ処理が複数回繰り返されたときのリトライ時間の合計時間が算出される。
そして、繰返し指示部123は、図3に示すRAM105に確保された上記の制限時間格納エリアに格納されている制限時間と、この合計時間とを比較する。合計時間が制限時間よりも少ない場合には、繰返し指示部123は、上記の保管エリアにその合計時間を上書きする。一方、合計時間が制限時間以上である場合には、その旨を第1出力部124に通知する。
この繰返し指示部123は、ハードウェアとしては、図3に示す制御IC102がその役割を担っている。また、この繰返し指示部123が、正確な情報が得られなかったと判定部により判定された場合に読出部に、アクセス範囲からの記憶情報の読出しを繰り返させる繰返し指示部の一例に相当する。
第1出力部124には、上述したように、繰返し指示部123から、正確な情報が得られたと判定部122で判定された、アクセス範囲の各セクタ111aの記憶情報あるいは修正後の記憶情報が渡される。
ここで、上述したように、アクセス部121が実行する読出しには、RAIDコントローラ70からの読出し指示に応じて行われるものと、情報が書き込まれた後に、その書込みが完了したか否かの確認のために行われるものとがある。
第1出力部124は、RAIDコントローラ70からの指示が読出し指示である場合には、繰返し指示部123から渡された記憶情報を、RAIDコントローラ70に向けて出力する。さらに、アクセス範囲の全ての物理アドレスについて記憶情報の出力が終了した段階で、第1出力部124は、読出しが完了した旨を示す完了通知情報をRAIDコントローラ70に向けて出力する。
一方、第1出力部124は、RAIDコントローラ70からの指示が書込み指示である場合には、アクセス範囲の全ての物理アドレスについて記憶情報が渡された段階で、完了通知情報をRAIDコントローラ70に向けて出力する。この完了通知情報は、書込みが完了した旨を示している。
また、完了通知情報を出力すると、第1出力部124は、RAM105における制限時間格納エリアに格納されている制限時間、および、リトライ時間の保管エリアに格納されている合計時間を消去する。
ここで、上述したように、繰返し指示部123は、リトライ処理が行われる度に算出されるリトライ時間の合計時間が制限時間以上である場合に、第1出力部124にその旨を通知する。
第1出力部124は、繰返し指示部123から、リトライ時間の合計時間が制限時間以上である旨が通知されてきた場合、次のようなエラー情報をRAIDコントローラ70に向けて出力する。エラー情報は、アクセス範囲からの情報の読出しに失敗したこと、あるいは、書込み後の確認のための読出しに失敗したことを示す情報である。ここで、書込み後の確認のための読出しに失敗したことは、情報が正常に書き込めなかったこと、即ち、情報の書込みに失敗したことを意味している。
また、第1出力部124は、エラー情報を出力したときには、アクセス部121、判定部122、および繰返し指示部123それぞれに対し、それ以降の動作を停止させる。
また、このときにも、第1出力部124は、図3に示すRAM105に格納されている制限時間および合計時間を消去する。
この第1出力部124は、ハードウェアとしては、図3に示す制御IC102がその役割を担っている。また、この第1出力部124が、正確な情報が得られた場合には情報およびアクセス完了通知の少なくとも一方を出力し、読出しが限度まで繰り返されても、正確な情報が得られなかった場合にはエラー情報を出力する第1出力部の一例に相当する。
第2出力部125は、RAIDコントローラ70から、後述の生データ読出し指示を受けた場合に、アクセス部121に対し次のような指示を行う。
この場合、第2出力部125は、アクセス部121に対し、生データ読出し指示において後述するように指定されたアクセス範囲の各セクタ111aから記憶情報を読み出して、判定部122には渡さずに第2出力部125に渡すように指示する。第2出力部125は、この指示に応じてアクセス部121から渡された記憶情報をRAIDコントローラ70に向けて出力する。
この第2出力部125は、ハードウェアとしては、図3に示す制御IC102がその役割を担っている。また、この第2出力部125が、特定の指示を受けた場合に、読出部により読み出された記憶情報をそのまま出力する第2出力部の一例に相当する。
以上に説明したHDD100が、記憶媒体と、読出部と、判定部と、繰返し指示部と、第1出力部と、第2出力部とを備えた記憶装置の一例に相当する。
以上で、図4を参照したHDDの機能ブロックについての説明を終了し、次に、図2に示すRAIDコントローラ70について機能に注目して説明する。
図5は、図2に示すRAIDシステムに搭載されているRAIDコントローラを、そのRAIDコントローラの機能に注目して示す機能ブロック図である。
この図5に示すように、RAIDコントローラ70は、機能ブロックとして、リカバリリミット処理部75と、媒体データ格納部76と、データ正当性分析部77と、アドレス保持部78とを備えている。リカバリリミット処理部75およびデータ正当性分析部77は、ハードウェアとしては、図2に示す制御IC71がその役割を担っている。また、媒体データ格納部76およびアドレス保持部78は、各々、図2に示すRAM73内における予め決められた領域がその役割を担っている。
以下、図5に示すこれらの機能ブロックの詳細について、RAIDコントローラ70で実行される処理と併せて説明する。
図6は、RAIDコントローラで実行される処理の流れを示すフローチャートである。
このフローチャートが示す処理は、このRAIDシステム2に、上位装置から、ライトコマンドあるいはリードコマンドが送信されて来るとスタートする。これらのコマンドでは、アクセス範囲が上述の先頭LBAとブロック数とで指定される。また、ライトコマンドが送信されて来たときには、そのライトコマンドに続いて書込み情報が上位装置から送信される。
上位装置から送信されて来るコマンドは、リカバリリミット処理部75で受信される(ステップS101)。そして、リカバリリミット処理部75は、RAIDシステム2内の複数のHDD100のうち、コマンドで指定されているアクセス範囲が属するHDD100に対し、そのコマンドに応じた指示を行う。
ここで、指示対象のHDD100の把握は、図2に示すROM72に、各HDD100の識別番号が付されて格納されているアドレス変換情報を参照することで行われる。LBAは、各セクタ111aに割り当てられた、RAIDシステム2内の複数のHDD100に亘る通し番号である。このため、各HDD100内のセクタ111aに割り当てられるLBAの範囲が、HDD100の相互間で異なっている。各HDD100のアドレス変換情報は、LBAから、そのHDD100内のセクタ111aの物理アドレスへの変換関係を表したものである。従って、各HDD100のアドレス変換情報には、そのHDD100内のセクタ111aの物理アドレスに変換されるべきLBAの範囲が対応している。
リカバリリミット処理部75は、コマンドで指定されているアクセス範囲を含んだLBAの範囲に対応したアドレス変換情報に付されている識別番号のHDD100を、指示対象のHDD100として把握する。
そして、上位装置からのコマンドがライトコマンドの場合には、リカバリリミット処理部75は、そのHDD100に対し情報の書込みを指示する。また、上位装置からのコマンドがリードコマンドの場合には、リカバリリミット処理部75は、そのHDD100に対し情報の読出しを指示する。
このステップS101の処理を実行しているリカバリリミット処理部75が、記憶装置にアクセス範囲を指定する指定部の一例に相当する。
この後、リカバリリミット処理部75は、そのHDD100から、上記の完了通知情報、読出し指示に応じて読み出された記憶情報、あるいはエラー情報が出力されて来るまで待機する(ステップS102)。
HDD100から、完了通知情報や読出し指示に応じて読み出された記憶情報(読出し情報)が出力された場合には(ステップS102におけるNo判定)、リカバリリミット処理部75は、次のステップS103の処理を実行する。
ステップS103では、上位装置からのコマンドがライトコマンドであって、HDD100から完了通知情報が出力されて来た場合には、リカバリリミット処理部75が、コマンドに応じた処理の完了を示すコマンド完了通知情報を上位装置に向けて出力する。
また、ステップS103では、コマンドがリードコマンドであって、HDD100から完了通知情報と読出し情報が出力されて来た場合には、リカバリリミット処理部75が、コマンド完了通知情報と読出し情報とを上位装置に向けて出力する。
ステップS103の処理が実行された場合には、図6のフローチャートが表す処理はそのまま終了する。
一方、HDD100からエラー情報が出力された場合には(ステップS102におけるYes判定)、リカバリリミット処理部75は、後述のステップS104以降の処理を実行する。
ここで、ステップS104以降の処理について説明する前に、HDD100がエラー情報を出力する状況について説明する。
図7は、HDDがエラー情報を出力する状況の一例を模式的に示す図である。
この図7には、HDD100に対して20個のブロック数のアクセス範囲A1が指定されて読出し指示が行われたときの、このHDD100で実行される処理が示されている。
図4を参照して説明したように、HDD100では、各セクタ111aから情報が読み出されるときには、ECCによる修正も含めて正確な情報が得られるまで、繰返し指示部123の指示によってリトライ処理が繰り返される。図7の例では、先頭(即ち「1」番目)から「4」番目まで、「6」番目、「9」番目、および「11」番目から「17」番目までの各セクタ111aについては、1回の読出しで正確な情報が得られている。
一方、先頭から「5」番目のセクタ111aでは、1回目の読出しで正確な情報が得られず、その後リトライ処理が4回繰り返されている。そして、4回目のリトライ処理(読出しとしては5回目)で正確な情報が得られている。「7」番目のセクタ111aでは、10回目のリトライ処理(読出しとしては11回目)で正確な情報が得られている。「8」番目のセクタ111aでは、5回目のリトライ処理(読出しとしては6回目)で正確な情報が得られている。「10」番目のセクタ111aでは、2回目のリトライ処理(読出しとしては3回目)で正確な情報が得られている。
ここで、図4の繰返し指示部123では、各セクタ111aについて計時されたリトライ時間が、リトライ処理が実行された全セクタ111aに亘って合計されて、リトライ時間の合計時間が算出される。そして、繰返し指示部123では、その合計時間が、図3に示すRAM105中の制限時間と比較される。この合計時間が制限時間以上である場合に、図4の第1出力部124がエラー情報を出力する。図7の例では、「18」番目のセクタ111aにおいて、1回目の読出しで正確な情報が得られずにリトライ処理が行われたところ、そのリトライ処理の処理時間を含めた合計時間が制限時間以上となっている。そして、この合計時間が制限時間以上となっていることを受けて、第1出力部124がエラー情報を出力する。
この図7に一例として示されている状況では、エラー情報出力時点でリトライ処理が行われていたのは、「18」番目のセクタ111aであって、その時に行われていたリトライ処理は1回目のリトライ処理である。一方、この「18」番目のセクタ111a以前に読出しが行われたセクタ111aの中には、例えば「7」番目のセクタ111aのように多数回に及ぶリトライ処理が行われたものがある。このように、リトライ処理が多数回に亘って行われるセクタ111aには、傷等の欠陥が存在している可能性が高い。
つまり、図7に示されている状況は、エラー情報出力時点でリトライ処理が行われていたセクタ111aとは別に、欠陥を有する可能性の高いセクタ111aが存在しているという状況である。
以下、この図7に示されている状況を適宜に参照しながら、図6のフローチャートについての説明を続ける。
上述したように、HDD100からエラー情報が出力された場合には(ステップS102におけるYes判定)、リカバリリミット処理部75はステップS104以降の処理を実行する。
ステップS104では、リカバリリミット処理部75が、そのエラー情報を出力したHDD100に対し、次のような生データ読出し指示を行う。
生データ読出し指示とは、ライトコマンドあるいはリードコマンドで指定されたアクセス範囲について、ECCによる誤り検出、修正、およびリトライ処理を行わずに、各セクタ111aにつき1回だけ記憶情報を読み出す行うように指示することである。
この生データ読出し指示を受けたHDD100では、上述したように、第2出力部125が、アクセス範囲の各セクタ111aにつき1回ずつ読み出された記憶情報を順次に出力する。
リカバリリミット処理部75は、そのように第2出力部125から順次に出力されて来る各セクタ111aの記憶情報を、媒体データ格納部76に格納する(ステップS105)。この媒体データ格納部76には、各セクタ111aの記憶情報が、そのセクタ111aのLBAと対応付けられて格納される。
ここで、このステップS105で媒体データ格納部76に格納される記憶情報は、上記のようにECCによる誤り検出、修正、およびリトライ処理が行われずに読み出された情報である。このため、媒体データ格納部76に格納されたこれらの記憶情報の中には、誤りを含んだ記憶情報が存在している可能性が高い。
例えば、上記の図7に示す状況では、リトライ処理が実行された「5」番目、「7」番目、「8」番目、「10」番目、「18」番目それぞれのセクタ111aからステップS105で読み出された記憶情報が誤りを含んでいる可能性が高い。
媒体データ格納部76に記憶情報が格納されると、次に、データ正当性分析部77が、その格納された各記憶情報について、次のステップS106の処理を行う。
ステップS106では、データ正当性分析部77は、まず、アクセス範囲における先頭LBAから順次に、図2に示すROM72内のアドレス変換情報を使って物理アドレスに変換する。そして、データ正当性分析部77は、変換後の各物理アドレスが、図2に示す半導体メモリ74内の交代対応表に交代元として記載されているか否かを判定する。
さらに、ステップS106では、データ正当性分析部77は、変換後の物理アドレスが交代元として記載されていなかった場合に、その変換前のLBAのセクタ111aの記憶情報について次のように誤り検出を行う。データ正当性分析部77は、媒体データ格納部76から検出対象の記憶情報を読み出す。そして、データ正当性分析部77は、その読み出した記憶情報に付されているECC符号を使って、その記憶情報について誤り検出を行う。
データ正当性分析部77は、この誤り検出の結果から、その検出対象の記憶情報が、誤りが検出されない情報(即ち、正当な情報)であるか否かを判定する(ステップS107)。また、ステップS107では、データ正当性分析部77は、変換後の物理アドレスが交代元として交代対応表に記載されていたLBAが対応付けられている記憶情報については、上記の誤り検出を行わずに正当な情報ではないと判定する。
記憶情報が正当な情報ではない場合(ステップS107におけるNo判定)、データ正当性分析部77は、媒体データ格納部76においてその記憶情報に対応付けられているLBAをアドレス保持部78に格納する(ステップS108)。その後、データ正当性分析部77は、その記憶情報に対応付けられているLBAが、アクセス範囲における最後のLBAであるか否かを判定する(ステップS109)。
一方、記憶情報が正当な情報であった場合(ステップS107におけるYes判定)、データ正当性分析部77は、上記のステップS108の処理を省略してステップS109の判定を行う。
記憶情報に対応付けられているLBAが、アクセス範囲における最後のLBAではなかった場合には(ステップS109におけるNo判定)、データ正当性分析部77は、ステップS106以降の処理を繰り返す。この繰返しは、記憶情報に対応付けられているLBAが最後のLBAであると判定(ステップS109におけるYes判定)されるまで繰り返される。
ステップS106〜S109の処理により、アクセス範囲の各LBAのうち、記憶情報が正当な情報ではないと判定されたLBAが、アドレス保持部78に格納される。
図8は、アクセス範囲の各LBAについての、記憶情報が正当な情報であるか否かの判定結果の一例を模式的に示す図である。
この図8に示す例は、図7に示す状況で出力されたエラー情報を受けた生データ読出し指示に応じて読み出された記憶情報についての判定結果である。
この図8の例では、図7に示す状況でリトライ処理が1回でも行われた記憶情報が、全て、正当な情報ではないと判定されている。即ち、今回のアクセス範囲A1において、先頭から「5」番目、「7」番目、「8」番目、「10」番目、「18」番目それぞれのセクタ111aの記憶情報が正当な情報ではないと判定されている。
この図8の例では、「5」番目、「7」番目、「8」番目、「10」番目、「18」番目の5個のセクタ111aそれぞれのLBAが、記憶情報が正当な情報ではないと判定されたLBA(不良LBA)としてアドレス保持部78に格納される。
尚、ステップS108でアドレス保持部78に格納されるLBAには、そのLBAに対応する記憶情報から誤りが検出されたものと、そのLBAを変換した物理アドレスが交代対応表に交代元として記載されているものとの2種類がある。上記の図8の例では、アドレス保持部78に格納されるLBAは、記憶情報から誤りが検出されたLBAのみとなっている。
図6のステップS106〜S109の処理で、このように不良LBAがアドレス保持部78に格納されると、次に、リカバリリミット処理部75およびデータ正当性分析部77は以下のステップS110の処理を行う。
ステップS110では、リカバリリミット処理部75は、磁気ディスク110における次のような2つの隣接範囲を求める。隣接範囲は、今回のアクセス範囲のセクタ111aが属するトラック111を挟んで、このトラックに隣接する2本の隣接トラック111それぞれ上で、今回のアクセス範囲に隣接する範囲である。
これら2つの隣接範囲は、次のように求められる。
まず、リカバリリミット処理部75は、今回のアクセス範囲の先頭LBAを、図2に示すROM72内のアドレス変換情報を使って物理アドレスに変換する。上述したように、物理アドレスは、シリンダ番号とヘッド番号とセクタ番号とで、各セクタ111aの位置を示すCHS形式で記述されたアドレスである。
リカバリリミット処理部75は、先頭LBAから変換した物理アドレス(先頭物理アドレス)におけるシリンダ番号への「1」の加算と、先頭物理アドレスにおけるシリンダへ番号の「1」の減算とを行う。先頭物理アドレスのシリンダ番号に「1」を加算したシリンダ番号は、アクセス範囲のセクタ111aが属するトラック111の外周側に隣接するトラック111に対応したシリンダ番号である。また、先頭物理アドレスのシリンダ番号から「1」を減算したシリンダ番号は、アクセス範囲のセクタ111aが属するトラック111の内周側に隣接するトラック111に対応したシリンダ番号である。
「1」を加算したシリンダ番号と、先頭物理アドレスにおけるヘッド番号とセクタ番号とで表される物理アドレスが、外周側の隣接トラック上で、今回のアクセス範囲に隣接する範囲の先頭物理アドレスとなる。そして、この先頭物理アドレスと、今回のアクセス範囲のブロック数とで表される範囲が、外周側の隣接トラック上における隣接範囲(外周側隣接範囲)となる。
また、「1」を減算したシリンダ番号と、先頭物理アドレスにおけるヘッド番号とセクタ番号とで表される物理アドレスが、内周側の隣接トラック上で、今回のアクセス範囲に隣接する範囲の先頭物理アドレスとなる。そして、この先頭物理アドレスと、今回のアクセス範囲のブロック数とで表される範囲が、内周側の隣接トラック上における隣接範囲(内周側隣接範囲)となる。
ステップS110では、リカバリリミット処理部75が、このようにCHS形式で求めた2つの隣接範囲それぞれを、CHS形式のままHDD100に順次に指定して、各隣接範囲からの記憶情報の読出しを指示する。このときの読出しについても、ステップS104での指示と同様に、ECCによる誤り検出、修正、およびリトライ処理を行わずに、各セクタ111aにつき1回だけ読出す行うように指示される。
内周側、外周側それぞれの隣接範囲から読み出されてHDD100から出力されてきた記憶情報が、リカバリリミット処理部75によって、媒体データ格納部76に格納される。このとき、記憶情報は、その記憶情報が読み出されたセクタ111aの物理アドレスに対応付けられて格納される。
そして、ステップS110では、データ正当性分析部77によって、ステップS106〜S109の処理と同様の処理が行われる。これにより、内周側、外周側それぞれの隣接範囲において、正当な情報ではない記憶情報が読み出されたセクタ111aの物理アドレス(不良物理アドレス)が、アドレス保持部78に格納される。
尚、このステップS110でも、誤り検出は、各記憶情報のうち、その記憶情報に対応する物理アドレスが交代対応表に交代元として記載されていないものについてのみ行われる。そして、交代対応表に交代元として記載されている物理アドレスについては、その物理アドレスに対応付けられている記憶情報に対する誤り検出を行わずに、その物理アドレスが、不良物理アドレスとしてアドレス保持部78に格納される。
上記のステップS104の処理とステップS110の処理とを実行しているリカバリリミット処理部75が、次のような指示付与部の一例に相当する。指示付与部は、記憶装置から出力された情報がエラー情報である場合に、第1アクセス範囲と第2アクセス範囲とを指定するとともに、第2出力部に対して特定の指示を与えるものである。第1アクセス範囲は、情報読出が試行された記憶区画である試行区画を含んだ範囲である。第2アクセス範囲は、試行区画のトラックに隣接するトラック上の、その試行区画に隣接する記憶区画である隣接区画を含んだ範囲である。
本実施形態では、ステップS104の生データ読出し指示で指定されるアクセス範囲が、第1アクセス範囲の一例に相当する。また、ステップS110で指定される内周側、外周側それぞれの隣接範囲が、各々第2アクセス範囲の一例に相当する。
尚、本実施形態では、エラー情報は、単に読出しが失敗したことのみを示す情報となっている。ここで、このエラー情報に、例えば、上記のリトライ処理の合計時間が制限時間以上となったときのセクタ111aのLBAを含ませても良い。そして、第1アクセス範囲は、アクセス範囲の先頭LBAと、そのエラー情報に含まれているLBAのセクタ111aまでのブロック数で表される範囲であっても良い。
また、上記の第2アクセス範囲も、アクセス範囲の先頭LBAを変換した物理アドレスから、このようなエラー情報に含まれているLBAのセクタ111aまでのブロック数で表される範囲であっても良い。
さらに、第2アクセス範囲については、正当な情報ではないと判定された記憶情報について情報読出しが試行されたセクタ111aに隣接するセクタ111aを含む範囲であれば、隣接トラック上のどのような範囲であっても良い。
ステップS110の処理が終了すると、リカバリリミット処理部75が、次のようなマッピング処理を行う(ステップS111)。
このマッピング処理は、内周側、外周側それぞれの隣接範囲内の不良物理アドレスの中から、今回のアクセス範囲内の不良LBAのセクタ111aに隣接するセクタ111a(隣接不良セクタ)の物理アドレスを選び出す処理である。
このマッピング処理では、リカバリリミット処理部75は、まず、ステップS108でアドレス保持部78に格納された不良LBAを物理アドレスに変換する。リカバリリミット処理部75は、この変換も、図2に示すROM72内のアドレス変換情報を使って行う。
そして、リカバリリミット処理部75は、内周側、外周側それぞれの隣接範囲内の不良物理アドレスの中から、不良LBAを変換した物理アドレスのヘッド番号およびセクタ番号と同じヘッド番号とセクタ番号とを有するものを選び出す。このように選び出された不良物理アドレスが、内周側、外周側それぞれの隣接範囲内における隣接不良セクタの物理アドレスに相当する。
図9は、マッピング処理を模式的に示す図である。
この図9には、上記の図7に示す状況下でのマッピング処理が示されている。そして、この図9には、図7および図8に示されたアクセス範囲A1と、そのアクセス範囲A1に隣接する内周側隣接範囲A2と外周側隣接範囲A3とが示されている。
この図9のパート(A)には、アクセス範囲A1における不良LBAのセクタA1_1と、内周側隣接範囲A2における不良物理アドレスのセクタA2_1と、外周側隣接範囲A3における不良物理アドレスのセクタA3_1とが示されている。
不良LBAのセクタA1_1は、アクセス範囲A1の先頭から「5」番目、「7」番目、「8」番目、「10」番目、「18」番目の5個のセクタである。
内周側隣接範囲A2における不良物理アドレスのセクタA2_1は、内周側隣接範囲A2の先頭から「6」番目、「7」番目、「8」番目、「10」番目の4個のセクタである。
外周側隣接範囲A3における不良物理アドレスのセクタA3_1は、外周側隣接範囲A3の先頭(即ち、「1」番目)、「6」番目、「7」番目、「8」番目、「9」番目、「18」番目の6個のセクタである。
上述したように、上記のマッピング処理では、内周側、外周側それぞれの隣接範囲内の不良物理アドレスの中から、アクセス範囲内の不良LBAのセクタ111aに隣接する隣接不良セクタの物理アドレスが選び出される。
図9の例では、不良物理アドレスのセクタA2_1,A3_1のうち、内周側、外周側それぞれの隣接範囲での番数が、アクセス範囲での不良LBAのセクタA1_1の番数と同じものが、内周側、外周側それぞれの隣接不良セクタとなる。内周側隣接範囲A2における不良物理アドレスのセクタA2_1のうち、隣接不良セクタは「7」番目、「8」番目、「10」番目のセクタである。また、外周側隣接範囲A3における不良物理アドレスのセクタA3_1のうち、隣接不良セクタは「7」番目、「8」番目、「18」番目のセクタ111aである。これらの隣接不良セクタは、物理アドレスにおけるシリンダ番号以外のヘッド番号とセクタ番号は、不良LBAから変換された物理アドレスのヘッド番号とセクタ番号と同じである。
そこで、上記のマッピング処理では、内周側、外周側それぞれの隣接範囲内の不良物理アドレスの中から、不良LBAから変換した物理アドレスのヘッド番号およびセクタ番号と同じヘッド番号とセクタ番号とを有するものが選び出される。これにより、内周側、外周側それぞれの隣接範囲内で、不良LBAのセクタ111aに隣接する隣接不良セクタの物理アドレスが選び出される。
図6のフローチャートにおけるステップS111のマッピング処理では、リカバリリミット処理部75は、アドレス保持部78に格納されている不良物理アドレスのうち、このように選び出した隣接不良セクタの物理アドレス以外の不良物理アドレスを消去する。
次に、リカバリリミット処理部75は、以下に説明する交代処理の処理対象となるセクタ111aの交代対象の物理アドレスを決定する(ステップS112)。
交代処理は、交代対象の物理アドレスのセクタ111aに割り当てられていたLBAを、そのセクタ111aに替えて、上記の予備領域中のセクタ111aに割り当て直す処理である。つまり、この交代処理では、交代対象の物理アドレスのセクタ111aが、そのセクタ111aが属するHDD100における複数のセクタ111aのうちの予備領域中のセクタ111aに割り当てられる。
ステップS112では、まず、隣接不良セクタの中から、不良LBAのセクタ111aを内周側と外周側から挟む隣接不良セクタの組が探索される。
図9のパート(B)には、この隣接不良セクタの組の探索の一例が示されている。
上述したように、図9の例では、内周側の隣接不良セクタは、内周側隣接範囲A2における「7」番目、「8」番目、「10」番目のセクタ111aである。また、外周側の隣接不良セクタは、外周側隣接範囲A3における「7」番目、「8」番目、「18」番目のセクタ111aである。そして、今回のアクセス範囲A1における不良LBAのセクタ111aを内周側と外周側から挟む隣接不良セクタの組が、図9のパート(B)に、円形エリアC内に示されている。即ち、この図9のパート(B)には、内周側の「7」番目の隣接不良セクタと外周側の「7」番目の隣接不良セクタとの組、および、内周側の「8」番目の隣接不良セクタと外周側の「8」番目の隣接不良セクタとの組が示されている。
本実施形態では、このような隣接不良セクタの組が、内周側の隣接不良セクタの物理アドレスと、外周側の隣接不良セクタの物理アドレスとの相互間で、シリンダ番号以外の番号(ヘッド番号とセクタ番号)が同じとなる組を探索することで行われる。
図6のフローチャートにおけるステップS112では、このように隣接不良セクタの組が探索されると、リカバリリミット処理部75は、次のような物理アドレスを、交代元の物理アドレスとしてアドレス保持部78に格納する。
即ち、リカバリリミット処理部75は、探索された組に属する隣接不良セクタの物理アドレスと、今回のアクセス範囲内の不良LBAから変換された不良物理アドレスとを、交代元の物理アドレスとしてアドレス保持部78に格納する。
次に、リカバリリミット処理部75は、ステップS112でアドレス保持部78に格納した物理アドレスを対象に、次のように交代処理を行う(ステップS113)。
リカバリリミット処理部75は、まず、ステップS112でアドレス保持部78に格納した物理アドレスのうち、図2の半導体メモリ74内の交代対応表に交代元として未だ格納されていないものを選び出す。そして、その選び出した物理アドレスを、交代対応表における交代元の物理アドレスの格納欄に、新たな交代元の物理アドレスとして格納する。
次に、リカバリリミット処理部75は、予備領域の物理アドレスの中から、交代対応表に交代先として未だ格納されていないものを、所定の優先順位に従って、上記の新たな交代元の交代先として選び出す。そして、リカバリリミット処理部75は、その選び出した予備領域の物理アドレスを、交代対応表における、上記の新たな交代元の物理アドレスに対応した交代先の格納欄に格納する。
リカバリリミット処理部75は、以上に説明した交代処理で更新された交代対応表を、その交代処理の対象となったHDD100に送信する。交代処理後の交代対応表を受信したHDD100では、図3の制御IC102が、半導体メモリ106に、その受信した交代対応表を上書きする。これにより、HDD100内の交代対応表が最新の交代対応表に更新される。
また、リカバリリミット処理部75は、新たに交代先となった予備領域のセクタ111aに、次のような情報を書き込む。
上述したように、本実施形態のRAIDシステム2におけるRAID構造は、RAID1である。従って、今回アクセスの対象となったHDD100に記憶されている情報と同じ情報が、そのHDD100とは別のHDDに冗長に記憶されている。
新たな交代元となった各物理アドレスのセクタ111aからは正確な情報が得られていないことから、今回アクセスの対象となったHDD100では、交代元の物理アドレスに対応する情報が欠損している可能性が高い。
そこで、リカバリリミット処理部75は、交代元の物理アドレスに対応する記憶情報の読出しを、その別のHDD100に指示する。そして、その別のHDD100から出力されて来た記憶情報の、交代元の物理アドレスに交代先として割り当てられたセクタ111aへの書込みを、今回アクセスの対象となったHDD100に指示する。これにより、上記のような情報の欠損が埋められることとなる。
以上に説明したステップS111〜S113の処理を実行しているリカバリリミット処理部75が、次のような交代部の一例に相当する。この交代部は、情報読出が試行された試行区画および隣接区画の双方について正確な情報が得られない場合の試行区画に替えて、複数の記憶区画のうちの交代区画を割り当てるものである。
ステップS113の処理が終了すると、この第2実施形態のRAIDシステム2のRAIDコントローラ70における、図6のフローチャートが表す処理が終了する。
このRAIDコントローラ70が、指定部と、指示付与部と、交代部とを備えた制御装置の一例に相当する。
以上に説明した第2実施形態の情報記憶システム2では、HDD100からエラー情報が出力されると、今回のアクセス範囲の各セクタ111aと、内周側、外周側それぞれの隣接範囲の各セクタ111aから記憶情報がそのまま読み出される。それぞれの範囲のセクタ111aからそのまま読み出された記憶情報の中には、誤りを有する情報が含まれている。ここで、この誤りの中には、リトライ処理を何度も繰り返させる傷等の欠陥による重篤な誤りや、クロストークやノイズ等による、少ない回数のリトライ処理で修正可能な軽微な誤り等といった、軽重様々なものがある。そして、上記のように、重篤な誤りに繋がる欠陥は、隣のトラックにまで及んでいる可能性が高い。
この情報記憶システム2では、今回のアクセス範囲の各セクタ111aと隣接範囲の各セクタ111aとの双方について正確な情報が得られない場合に、そのセクタ111aについて交代処理が行われる。これにより、互いに隣り合った複数のトラック間に亘る欠陥が存在している可能性が高いセクタ111aについて交代処理が行われることとなる。
そして、次回に、このセクタ111aを含むアクセス範囲からの情報の読出しが情報記憶システム2において実行されるときには、そのセクタ111aに替えて交代先のセクタ111aにアクセスされることなる。その結果、上記のようなリトライ処理の繰返しの発生が抑えられる。つまり、この情報記憶システム2では、パフォーマンスの低下が抑えられることとなる。
また、この第2実施形態の情報記憶システム2では、図9のステップS110の処理において、隣接範囲として、アクセス範囲が属するトラック111を挟んだ2つの隣接トラックそれぞれ上の、そのアクセス範囲に隣接する2つの隣接範囲が指定される。そして、これら2つの隣接範囲のいずれについても正確な情報が得られないセクタ111aが交代処理の対象とされる。これにより、複数のトラックに亘る重篤な欠陥が存在するセクタ111aが、高い精度で見つけられることとなる。このことは、本件の情報記憶システムに対し、以下の応用形態が好適であることを意味している。
この応用形態では、上記指示付与部が、上記第2アクセス範囲として、次のような2つの第2アクセス範囲を上記記憶装置に指定するものとなっている。2つの第2アクセス範囲は、上記の試行区画のトラックにそれそれが隣接して相互間にそのトラックを挟んだ2つのトラックそれぞれ上の隣接区画を含んだ2つの範囲である。また、この応用形態では、上記交代部が、次のような試行区画について上記交代区画を割り当てるものとなっている。この交代部は、上記試行区画と、その試行区画を挟んだ両方の上記隣接区画とのいずれについても正確な情報が得られない場合のその試行区画について上記交代区画を割り当てる。
本実施形態において、図6のステップS104の処理とステップS110の処理とを実行しているリカバリリミット処理部75は、この応用形態における指示付与部の一例にも相当している。また、図6のステップS111〜S113の処理を実行しているリカバリリミット処理部75は、この応用形態における交代部の一例にも相当している。
尚、本実施形態では、上記のように、欠陥が存在するセクタ111aの発見精度を高めるために、隣接範囲として、アクセス範囲が属するトラック111を挟んだ2つの隣接トラックそれぞれ上の、そのアクセス範囲に隣接する2つの隣接範囲が指定される。しかしながら、本件の情報記憶システムは、この形態に限るものではない。本件の情報記憶システムは、例えば、アクセス範囲が属するトラックに隣接する1本の隣接トラック上の、そのアクセス範囲に隣接する1つの隣接範囲が指定されるものであっても良い。
また、この第2実施形態の情報記憶システム2では、図9のステップS113の処理において、交代処理は、アクセス範囲内で正確な情報が得られなかったセクタ111aと、隣接範囲内で正確な情報が得られなかったセクタ111aとの双方について行われる。
これにより、今回、記憶情報の読出しに失敗したセクタ111aだけでなく、そのセクタ111aに隣接して、記憶情報の読出しに失敗する可能性の高いセクタ111aについても交代処理が行われる。従って、情報記憶システム2におけるパフォーマンスの低下が、一層抑えられることとなっている。このことは、本件の情報記憶システムに対し、以下の応用形態が好適であることを意味している。
この応用形態では、上記交代部が、上記試行区画および上記隣接区画の双方について正確な情報が得られない場合のその試行区画およびその隣接区画について上記交代区画を割り当てるものとなっている。
本実施形態において、図6のステップS111〜S113の処理を実行しているリカバリリミット処理部75は、この応用形態における交代部の一例にも相当している。
尚、本実施形態では、上記のように、パフォーマンスの低下を一層抑えるために、アクセス範囲内で正確な情報が得られなかったセクタ111aと、隣接範囲内で正確な情報が得られなかったセクタ111aとの双方について交替処理が行われる。しかしながら、本件の情報記憶システムは、この形態に限るものではない。本件の情報記憶システムは、例えば、アクセス範囲内で正確な情報が得られなかったセクタ111aのみについて交代処理が行われるものであっても良い。
また、上記では、本件の情報記憶システムの一例として、複数のHDD100を備えたRAIDシステム2を例示した。しかしながら、本件の情報記憶システムは、この形態に限るものではない。本件の情報記憶システムは、HDD100を1つだけ備えた情報記憶システムであっても良い。
また、上記では、本件の情報記憶システムにおける記憶装置の一例としてHDD100を例示した。しかしながら、本件の情報記憶システムにおける記憶装置はHDDに限るものではない。この記憶装置は、例えば、光磁気ディスクやDVD等のドライブ装置であっても良い。