(57)【要約】【課題】  この発明は、複数のトラックに跨る巨大な不良領域に起因する欠陥セクタを効率よく登録でき、欠陥管理テーブルのサイズが大きくなりすぎることを防止可能なディスク記憶装置およびディスク記憶装置のセクタ群管理方法を提供することを課題とする。【解決手段】  領域の開始セクタと終了セクタの物理ブロックアドレスを記憶し、記憶された開始セクタと終了セクタの物理ＬＢＡから領域内のセクタ群の物理ＬＢＡを特定し、この領域を特定後のセクタの論理ＬＢＡと、特定後のセクタの論理ＬＢＡ及び物理ＬＢＡの差分と、領域内で最小となる論理ＬＢＡとを記憶しておいて、これらから同一トラック内に複数の領域が重なるかどうかを判定して領域が重なる場合、論理ＬＢＡから物理ＬＢＡに変換することを特徴とする。【選択図】      図１７
2009223933.tif 000002
【特許請求の範囲】
【請求項１】
同心円状にトラックが形成されたメディアを有し、前記メディアの面内のトラック周方向と、半径方向をそれぞれ一辺とする長方形の領域に含まれる欠陥セクタ群を管理するセクタ群管理部を有するディスク記憶装置であって、
前記領域の開始セクタと終了セクタの物理ブロックアドレスを記憶する記憶部と、
前記記憶部に記憶された前記開始セクタと前記終了セクタの物理ブロックアドレスにより前記領域内のセクタ群の物理アドレスを特定する特定手段と、
前記特定手段により領域を特定後のセクタの論理ブロックアドレスと、前記特定後のセクタの論理ブロックアドレス及び物理ブロックアドレスの差分と、前記領域内で最小となる論理ブロックアドレスとを前記記憶部に記憶するし、
前記記憶手段に記憶された前記特定後のセクタの論理ブロックアドレスと、前記特定後のセクタの倫理ブロックアドレス及び物理ブロックアドレスの差分と、前記領域内で最小となる論理ブロックアドレスから、同一トラック内に複数の領域が重なるかどうかを判定する判定手段と、
前記判定手段により同一トラック内に複数の領域が重なる場合、前記論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換手段と
を備えることを特徴とするディスク記憶装置。
【請求項２】
同心円状にトラックが形成されたメディアを有し、前記メディアの面内のトラック周方向と、半径方向をそれぞれ一辺とする長方形の領域に含まれる欠陥セクタ群を管理するセクタ群管理部を有するディスク記憶装置のセクタ群管理方法であって、
前記領域の開始セクタと終了セクタの物理ブロックアドレスを記憶部に記憶し、
特定手段により前記記憶部に記憶された前記開始セクタと前記終了セクタの物理ブロックアドレスにより前記領域内のセクタ群の物理アドレスを特定するし、
前記特定手段により領域を特定後のセクタの論理ブロックアドレスと、前記特定後のセクタの論理ブロックアドレス及び物理ブロックアドレスの差分と、前記領域内で最小となる論理ブロックアドレスとを前記記憶部に記憶するし、
判定手段により前記記憶手段に記憶された前記特定後のセクタの論理ブロックアドレスと、前記特定後のセクタの倫理ブロックアドレス及び物理ブロックアドレスの差分と、前記領域内で最小となる論理ブロックアドレスから、同一トラック内に複数の領域が重なるかどうかを判定し、
アドレス変換手段により前記判定手段により同一トラック内に複数の領域が重なる場合、前記論理ブロックアドレスから物理ブロックアドレスに変換する
を備えることを特徴とするディスク記憶装置のセクタ群管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ハードディスクドライブ等のディスク記憶装置およびディスク記憶装置のセクタ群管理方法に関する。
【背景技術】
【０００２】
周知のように、ハードディスクドライブ（以下、ＨＤＤと称する）は、大容量で信頼性の高い情報記録媒体であり、近年、例えばコンピュータデータ、映像データ、音声データ等の記録用として多方面に普及している。また、ＨＤＤは、その形状も携帯用電子機器に搭載されるほど小型化されてきている。
【０００３】
通常ＨＤＤシステムには、メディア上にできた傷などが要因となり正常にリード／ライトができないセクタができることがある。それらのセクタは欠陥セクタとしてＨＤＤシステムにより管理されている。ＨＤＤ製造時に発見された欠陥セクタは製造時欠陥セクタ情報として管理され、論理ブロックアドレス（ＬＢＡ）はその欠陥セクタを避けるように割り振られる。
【０００４】
一方、ユーザが使用中に発生した欠陥セクタは後発欠陥セクタ情報として管理され、予め用意されている予備のセクタにデータが代替される。後発欠陥セクタのデータへアクセスする際には、欠陥管理テーブルによりアドレス変換されて、代替セクタへのアクセスが行われる。
【０００５】
従来、製造時の欠陥セクタを管理するための情報として、論理ブロックアドレスのスリップ処理が実現できるようにスリップ毎に開始・終了位置が特定できる情報を管理する技術が提案されている（特許文献１）。しかしこの登録方法のでは、スリップする数が多い場合は管理テーブルのサイズが膨大になってしまうという問題があった。
【特許文献１】特開２０００−５７６９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明の目的は、複数のトラックに跨る巨大な不良領域に起因する欠陥セクタを効率よく登録でき、欠陥管理テーブルのサイズが大きくなりすぎることを防止可能なディスク記憶装置およびディスク記憶装置のセクタ群管理方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明のディスク記憶装置は、同心円状にトラックが形成されたメディアを有し、前記メディアの面内のトラック周方向と、半径方向をそれぞれ一辺とする長方形の領域に含まれる欠陥セクタ群を管理するセクタ群管理部を有するディスク記憶装置であって、前記領域の開始セクタと終了セクタの物理ブロックアドレスを記憶する記憶部と、前記記憶部に記憶された前記開始セクタと前記終了セクタの物理ブロックアドレスにより前記領域内のセクタ群の物理アドレスを特定する特定手段と、前記特定手段により領域を特定後のセクタの論理ブロックアドレスと、前記特定後のセクタの論理ブロックアドレス及び物理ブロックアドレスの差分と、前記領域内で最小となる論理ブロックアドレスとを前記記憶部に記憶するし、前記記憶手段に記憶された前記特定後のセクタの論理ブロックアドレスと、前記特定後のセクタの倫理ブロックアドレス及び物理ブロックアドレスの差分と、前記領域内で最小となる論理ブロックアドレスから、同一トラック内に複数の領域が重なるかどうかを判定する判定手段と、前記判定手段により同一トラック内に複数の領域が重なる場合、前記論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換手段とを備えることを特徴とする。
【０００８】
また、本発明のディスク記憶装置のセクタ群管理方法は、同心円状にトラックが形成されたメディアを有し、前記メディアの面内のトラック周方向と、半径方向をそれぞれ一辺とする長方形の領域に含まれる欠陥セクタ群を管理するセクタ群管理部を有するディスク記憶装置のセクタ群管理方法であって、前記領域の開始セクタと終了セクタの物理ブロックアドレスを記憶部に記憶し、特定手段により前記記憶部に記憶された前記開始セクタと前記終了セクタの物理ブロックアドレスにより前記領域内のセクタ群の物理アドレスを特定するし、前記特定手段により領域を特定後のセクタの論理ブロックアドレスと、前記特定後のセクタの論理ブロックアドレス及び物理ブロックアドレスの差分と、前記領域内で最小となる論理ブロックアドレスとを前記記憶部に記憶するし、判定手段により前記記憶手段に記憶された前記特定後のセクタの論理ブロックアドレスと、前記特定後のセクタの倫理ブロックアドレス及び物理ブロックアドレスの差分と、前記領域内で最小となる論理ブロックアドレスから、同一トラック内に複数の領域が重なるかどうかを判定し、アドレス変換手段により前記判定手段により同一トラック内に複数の領域が重なる場合、前記論理ブロックアドレスから物理ブロックアドレスに変換することを特徴とする。
【発明の効果】
【０００９】
この発明のディスク記憶装置およびディスク記憶装置のセクタ群管理方法においては、複数のトラックに跨る巨大な不良領域に起因する欠陥セクタを効率よく登録でき、欠陥管理テーブルのサイズが大きくなりすぎることを防止することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を磁気ディスク装置に適用した実施の形態につき図面を参照して説明する。
＜メディア面内の長方形領域登録方法とスリップの計算＞
本実施形態では図１に示すように、複数トラックに跨る信号不良領域が存在する場合、その領域を含むような長方形で囲んだ領域のセクタ群を欠陥領域として一括して登録する。これにより、この領域に含まれるセクタ群を一括して管理することが可能となる。なお実際のメディア上のトラックは同心円状に並んでいるため、実際はリングの一部分のような形状をしているが、本実施例では簡単のため長方形領域として扱う。
【００１１】
従来の登録方法では図３のように４つのスリップそれぞれに対する情報を保持する必要があった。本発明の方法では、登録領域の先頭位置と領域終端位置などから各スリップの情報を必要な時に計算して求めることにより、全てのスリップ情報を保持する必要がない。
【００１２】
なお図４のようにスキューがついたアドレス配置のシステムで図２と同じ領域を登録する場合、登録された領域に含まれるセクタ群のアドレスは図２とは異なる。図４を図５のように物理LBA順で並べ替えると、登録領域に含まれるセクタアドレスは、１０〜１２、１７〜１９、２２〜２７、３０〜３２、３７〜３９、４２〜４７となり、同じトラック内でも２つに分割する場合があることが分かる。この領域をスリップする様子を図６に示した。この場合は６つのスリップが存在するため、従来の登録方法では６つのスリップ情報を保持する必要があった。
【００１３】
本実施形態では、図４のように長方形領域を定義するための幾つかの情報から、図６のような欠陥セクタのアドレス情報を求めて、スリップ処理を正しく行うことができる。
【００１４】
以降、具体的な長方形領域の登録方法とスリップ情報の計算方法を示す。
図７に示すような領域Ａと領域Ｂを登録して管理する場合を考える。
簡単のため、各トラックに含まれるセクタ数（Ｔｒａｃｋ＿Ｓｉｚｅで表す）は等しく、各隣接トラックには同じ長さのスキュー（Ｓｋｅｗで表す）がついているとする。
【００１５】
通常トラックはシリンダ番号とヘッド番号で指定されるが、ヘッドは一本のみとして、シリンダ番号によりトラックが指定されるものとする。アドレスはトラック内部ではトラック先頭（図中、丸印）から順番に割り振られ、次のトラック（アドレスの方向）の先頭位置からその続きの番号が割り振られる。
【００１６】
本実施形態で管理する情報は、図１４の管理テーブルである。
このテーブルは「領域終了後の論理ブロックアドレス（論理ＬＢＡ）」、「領域終了後のＬＢＡ差分」、「長方形領域の終端セクタの物理ブロックアドレス(物理ＬＢＡ)」、「長方形領域の先頭セクタの物理ブロックアドレス(物理ＬＢＡ)」、「領域内の最小論理ブロックアドレス（最小論理ＬＢＡ）」、という５つの属性で構成される。
【００１７】
これらの関係を図１１で説明する。
図１１で、領域終了後の論理ブロックアドレス（論理ＬＢＡ）はＡ＿ＬＢＡ、領域終了後のＬＢＡ差分はＡ＿ＤＩＦＦ（二つの数字の差分）、長方形領域の終端セクタの物理ブロックアドレス（物理ＬＢＡ）はＡ＿ＥＮＤ、長方形領域の先頭セクタの物理ブロックアドレス（物理ＬＢＡ）はＡ＿ＳＴＡＲＴ、領域内の最小論理ブロックアドレス（最小論理ＬＢＡ）はＡ＿Ｓ＿ＬＢＡである。
【００１８】
Ａ＿Ｓ＿ＬＢＡは、領域内（Ａ＿ＳＴＡＲＴからＡ＿ＥＮＤまでの全ての物理ブロックアドレス（物理ＬＢＡ）のセクタ）がすべてスリップである場合は、Ａ＿ＬＢＡの値と等しくなると定義する。Ａ＿ＳＴＡＲＴとＡ＿ＥＮＤは長方形の左上と右下に位置するセクタの物理アドレスである。Ａ＿ＬＢＡは領域内の最大物理ブロックアドレス（物理ＬＢＡ）セクタの次のセクタの論理ブロックアドレス（論理ＬＢＡ）である。Ａ＿ＤＩＦＦはこの論理ブロックアドレス（論理ＬＢＡ）と物理ブロックアドレス（物理ＬＢＡ）との差分である。
【００１９】
図８は、図７の領域Ａ、Ｂに対してスリップする様子を示している。
各スリップは矢印で示している。領域Ａの終端のシリンダ番号がＡ＿Ｃｙｌ、領域Ｂの終端のシリンダ番号がＢ＿Ｃｙｌであるとする。領域Ａのシリンダ番号Ａ＿Ｃｙｌで指定される部分領域には、トラックの先頭位置が含まれている。従ってこの領域のスリップはトラックの先頭と終端の２つの領域に分割される。同様に領域ＢのシリンダＢ＿Ｃｙｌもスリップが分割される。
【００２０】
この様子を分かり易くするために、トラックの先頭を左端に揃えなおした様子を図９に示す。この各トラックに散らばったスリップを、図１４の管理テーブルの情報から特定できる必要がある。このスリップ情報の計算手順を図１７のフローチャートに従って説明する。
【００２１】
図１６は領域Ａに含まれるスリップを計算するフローである。
まず領域の終端セクタが属するトラックのシリンダ番号と、そのトラックの先頭物理ブロックアドレス（物理ＬＢＡ）を求める。Ａ＿Ｃｙｌの値はＡ＿ＥＮＤをトラックサイズ（Ｔｒａｃｋ＿Ｓｉｚｅ）で割った値の絶対値となる。シリンダＡ＿Ｃｙｌのトラックの先頭物理アドレス（物理ＬＢＡ）は１ｓｔ＿Ｓｅｃ（Ａ＿Ｃｙｌ）＝（Ｔｒａｃｋ＿Ｓｉｚｅ）×Ａ＿Ｃｙｌとなる。
【００２２】
次に、領域の周方向の長さＡ＿Ｗｉｄｅと、径方向の長さＡ＿Ｌｏｎｇを求める。領域の開始シリンダＡ＿Ｓｔａｒｔ＿Ｃｙｌは、欠陥開始物理ブロックアドレス（物理ＬＢＡ）をトラックサイズで割った値の絶対値で求まるので、Ａ＿Ｌｏｎｇは、Ａ＿Ｃｙｌ−Ａ＿Ｓｔａｒｔ＿Ｃｙｌ＋１で求められる。
【００２３】
次に、Ａ＿Ｗｉｄｅを求めるためにまずシリンダＡ＿Ｃｙｌ内の左端のセクタＡ＿ＢＴＭを求める。Ａ＿ＳＴＡＲＴを基準として、Ａ＿Ｌｏｎｇ−１トラック分移動した場所の値を求める。あるセクタの次のトラック内に存在する隣接セクタのアドレスは、トラックサイズとスキューサイズの差分を加えたものであるが、スキューの累積が１トラック分になった時にはもとの位置に戻る（一周する）ことを考慮する必要がある。
【００２４】
従って、Ａ＿ＳＴＡＲＴの値と、Ａ＿Ｌｏｎｇの値からＡ＿ＢＴＭが求まる。Ａ＿Ｗｉｄｅは、Ａ＿ＥＮＤとＡ＿ＢＴＭの差分であるが、セクタの終端が領域途中にある場合を考慮し、トラックサイズを加えた後で、トラックサイズとの剰余演算を行うことでＡ＿Ｗｉｄｅが求まる。
【００２５】
次に、各シリンダ（シリンダＮ）毎にスリップの開始物理アドレス：Ａ＿Ｈ（Ｎ）とスリップするセクタ数Ａ＿Ｈ＿Ｓｉｚｅ（Ｎ）を求めていく。スリップがトラックの先頭と終端に分割する場合は、先頭のスリップアドレスをＡ＿Ｈ（Ｎ）とし、終端のスリップアドレスをＡ＿Ｔ（Ｎ）、長さをＡ＿Ｔ＿Ｓｉｚｅ（Ｎ）とする。
【００２６】
シリンダＮが最終シリンダＡ＿Ｃｙｌである場合は、Ａ＿Ｈ（Ｎ）は、Ａ＿ＥＮＤとＡ＿Ｗｉｄｅの値から求める。それ以外の場合はＡ＿Ｈ（Ｎ）はＡ＿Ｈ（Ｎ＋１）の値からスキュー値を考慮して求める。ここで求めたＡ＿Ｈ（Ｎ）の値が、シリンダＮトラックの先頭セクタアドレスより小さかったり、終端セクタアドレスより大きかったりした場合はトラックサイズを加算／減算して調整する。このシリンダＮ内の部分領域が分裂していなければ、スリップの長さはＡ＿Ｗｉｄｅとなる。
【００２７】
一方このシリンダＮ内の部分領域が先頭／終端に分裂している場合には、Ａ＿Ｔ（Ｎ）の値はここで求めたＡ＿Ｈ（Ｎ）の値となり、このスリップの長さＡ＿Ｔ＿Ｓｉｚｅ（Ｎ）はＡ＿Ｔ（Ｎ）から終端セクタまでの数となる。Ａ＿Ｈ（Ｎ）はこのトラックの先頭セクタアドレスとなり、長さはＡ＿ＷｉｄｅからＡ＿Ｔ＿Ｓｉｚｅ（Ｎ）を引いたものである。
【００２８】
以上の計算を領域Ａの全てのシリンダに対して行うことにより、領域Ａに含まれる全てのスリップのアドレス、長さが計算できる。
＜ホストからのアクセスブロックアドレス（アクセスＬＢＡ）に対する物理ブロックアドレス（物理ＬＢＡ）を計算し、アクセス対象トラックのスリップ情報を全て求める方法＞
図９の例では、シリンダＡ＿ＣｙｌやＡ＿Ｃｙｌ−１では、領域Ａのスリップのみではなく、領域Ｂのスリップも存在する。このように複数の領域があるトラックで混在することがなければ、欠陥管理テーブルは図１４の情報のうち、長方形領域の終端セクタの物理ブロックアドレス（物理ＬＢＡ）と領域内の最小論理ブロックアドレス（最小論理ＬＢＡ）が無くても計算できる。ここでは混在する場合を前提として図１４の情報を使い、ホストからのアクセスブロックアドレス（アクセスＬＢＡ）に対する物理ブロックアドレス（物理ＬＢＡ）を計算し、さらにアクセス対象トラックの全てのスリップ情報を求める手順を説明する。
【００２９】
ホストからのアクセスブロックアドレス（アクセスＬＢＡ）に対し、物理ブロックアドレス（物理ＬＢＡ）を求める方法を図１０を使って説明する。図１０は管理テーブルに登録されている各領域がどのように分布しているかを示した例である。右側の軸は論理ブロックアドレス（論理ＬＢＡ）の方向を示している。また左側の軸は論理ブロックアドレス（論理ＬＢＡ）と物理ブロックアドレス（物理ＬＢＡ）との差分値が増加する方向を示している。
【００３０】
左側に分布する矢印は各領域内のスリップを示している。各領域は領域内の最小論理ブロックアドレス（最小論理ＬＢＡ）と領域終了後の論理ブロックアドレス（論理ＬＢＡ）とで挟まれたアドレス空間に分布する。領域Ａのように分布範囲と領域が一致する（全てスリップ）の場合もある。各領域のスリップは図のように交互に配置される場合もある。任意の論理ブロックアドレス（論理ＬＢＡ）に対し、その物理ブロックアドレス（物理ＬＢＡ）を求めるためには、目的の論理ブロックアドレス（論理ＬＢＡ）の直前にあるスリップについて、スリップ後の論理・物理ＬＢＡ差分値が分かれば良い。
【００３１】
各領域内の最後のスリップについては、スリップ後の論理・物理ＬＢＡの差分は図１４のテーブルの「領域終了後のＬＢＡ差分」の値となる。またあるスリップの論理・物理ＬＢＡ差分は、その直後のスリップの論理・物理ＬＢＡ差分からそのスリップサイズを減算することにより計算できる。
【００３２】
例えばスリップＣ１の論理・物理ＬＢＡ差分値Ｃ１＿ＤＩＦＦは、Ｂ２＿ＤＩＦＦ−Ｂ２＿ＳＩＺＥで求まる。ここでＢ２＿ＤＩＦＦは、スリップＢ２の論理・物理ＬＢＡ差分値、Ｂ２＿ＳＩＺＥは、スリップの長さを示す。またスリップＢ２は領域Ｂ２の最終スリップなので、Ｂ２＿ＤＩＦＦ＝Ｂ＿ＤＩＦＦである。ここでＢ＿ＤＩＦＦは領域Ｂの「領域終了後のＬＢＡ差分」の値である。従ってＣ１＿ＤＩＦＦ＝Ｂ＿ＤＩＦＦ−Ｂ２＿ＳＩＺＥとなる。このように全てのスリップ情報があれば、任意の論理ブロックアドレス（論理ＬＢＡ）に対して、論理・物理ＬＢＡの差分値を求めることができる。
【００３３】
しかし、全ての登録領域について図１６の計算を行うのはコストが大きいため、計算が必要となる領域を絞りこむ。図１０のアクセス対象ＬＢＡ１の場合、スリップＡ１の情報のみ分かれば十分で、領域Ｂ〜Ｅの情報は物理アドレス計算には必要ない。
【００３４】
アクセス対象ＬＢＡ２の場合、スリップＤ１の情報が必要となるが、これを計算するために領域Ｄのスリップ情報に加え、領域Ｄとアドレス範囲が重なる領域Ｂ、領域Ｃ、領域Ｅのスリップ情報を計算する。実際には領域Ｅの情報は必要ないが、簡単のため領域Ｄと重なる全ての領域についてスリップ情報を計算することとする。
【００３５】
同様にアクセス対象ＬＢＡ３の場合には、スリップＢ１の情報が必要となるので、領域Ｂと、それに重なる領域Ｃ、領域Ｄのスリップ情報を計算する。
この手順を図１４のテーブル情報を使って行う方法を図１２に示す。
またこの処理のフローチャートを図１７に示す。
まず図１２の左側のリスト１のように、「領域終了後の論理ブロックアドレス（論理ＬＢＡ）」の値で昇順にならんだリストを用意しておく。ここからアクセス対象のＬＢＡの直前、もしくは等しい値のエントリ（領域Ｍ）を探し出す。このエントリの領域をヒット領域１とする。
【００３６】
次にアクセスブロックアドレス（アクセスＬＢＡ）よりも大きいエントリについて、「領域内の最小論理ブロックアドレス（最小論理ＬＢＡ）」の値により昇順に並べ替える（リスト２）。リスト２の先頭エントリ（領域Ｘ）の値がアクセスブロックアドレス（アクセスＬＢＡ）よりも小さい場合、アクセスブロックアドレス（アクセスＬＢＡ）は領域Ｘに含まれる。
【００３７】
さらに領域Ｘとアドレスが重なる領域を求めるために、リスト２の中から領域Ｘの「終了後の論理ブロックアドレス（論理ＬＢＡ）」よりも大きいエントリを抽出してヒット領域３とする。リスト２の先頭エントリ（領域Ｘ）の値がアクセスブロックアドレス（アクセルＬＢＡ）よりも大きい場合は、図１０のアクセス対象ＬＢＡ１の場合と同様であり、領域Ｍの情報のみで物理アドレスが計算できる。
【００３８】
以上で求めたヒット領域１〜３の全てについて、領域内のスリップ情報を計算する。ヒット領域２、３がない場合はヒット領域１のみとなる。必要な全てのスリップ情報が得られたところで、図１０のようにある領域の終端スリップを開始点とし、次々に隣り合ったスリップの論理・物理ＬＢＡ差分値を計算していくことで、アクセスブロックアドレス（アクセスＬＢＡ）直前のスリップの論理・物理ＬＢＡ差分値を求めることができる。
【００３９】
実際にあるアドレスにアクセスを行う際には、対象トラックの全てのスリップ情報を知る必要がある。アクセスする物理ブロックアドレス（物理ＬＢＡ）が求まると、どこのトラックをアクセスすべきかが分かる。そこで図１２のリスト１、リスト２よりアクセスするトラックと同一のトラックに存在する領域を全て抽出する。この抽出で得られた集合に、ヒット領域１〜３以外のものがあれば、それをヒット領域４としてスリップ情報の計算を行う。
【００４０】
スリップ計算により得られるアドレス情報は図１３（上段）のような構成となる。領域１〜４の計算により得られたアドレス情報から、アクセス対象のトラック（シリンダ番号Ｎ）のスリップ情報のみを抽出してセクタ番号で昇順に整列させると図１３（下段）のようになる。これがアクセストラックに含まれる全てのスリップ情報であるので、この情報を使ってスリップ処理を実現することができる。
【００４１】
＜第２の実施形態：面内領域管理方法によるリフレッシュ対象セクタ群管理方法＞
本発明の領域管理方法は、欠陥管理のみではなく別の用途に利用することができる。本実施形態では、登録領域をリフレッシュ対象領域として管理する。
図１８を使ってトラックへのライト時の様子を説明する。トラックＮ＋２へデータＢをライトした場合、トラックＮ＋１にすでに存在していたデータＡの信号の一部がデータＢの信号により消されてしまう。このようにトラック同士の間隔が狭い場合は隣接トラックへの影響が無視できない。隣接トラックへのライト回数が多ければ多いほど、データが消される程度が大きくなり、最悪の場合はデータの読み出しが出来なくなる。
【００４２】
図１のような信号品質が悪い領域がある場合を想定する。図１ではこの領域のセクタを欠陥セクタとして登録しているが、多少エラーレートが低下する程度ならば欠陥セクタにする必要はない。ただし隣接トラックへの影響が他の領域よりも大きい可能性がある。よって隣接ライトの回数をある回数以下に制限することにより、データが読み出せなくなるリスクを最小限にし、品質を向上させることができる。
【００４３】
リフレッシュ対象領域を管理するためのテーブルを図１５に示す。
図１４と同様に物理アドレスを計算するために長方形領域の先頭と終端の物理ブロックアドレス(物理ＬＢＡ)の属性を持つ。さらに「領域へのライト回数」属性を持ち、領域内のセクタへのライト回数を管理し、ある閾値以上にライト回数が達しないように制御する。欠陥管理とは異なり、リフレッシュ対象領域ではアドレスをスリップさせないため、論理ブロックアドレス（物理ＬＢＡ）の情報や差分情報は不要である。このテーブルは物理ブロックアドレス（物理ＬＢＡ）の計算などには使用しない。
【００４４】
リフレッシュ対象領域へのライトアクセス時に行う処理のフローを図１９に示す。まず欠陥管理を行っているシステムの場合は図１７のフローによりアクセスブロックアドレス（アクセスＬＢＡ）を物理ブロックアドレス（物理ＬＢＡ）に変換し、そのトラック内のスリップ情報を求める。その後、アクセスするトラックと同一のトラックを含むリフレッシュ対象領域を全て抽出する。これらの領域に対して、図１５のテーブルデータを使い図１７と同様のフローにより、領域内に含まれるセクタアドレスを計算する。
【００４５】
ここで得られたアドレス情報を使い、領域内のセクタへのライトがあるかどうかを監視する。ライトを行う時には管理テーブルのライト回数属性値をインクリメントする。この結果ライト回数が規定回数以上に達した場合には、本来の物理アドレス位置にはデータをライトせず、安全な退避エリアへデータを一時的に格納する。
【００４６】
図２０に領域内のデータをリフレッシュする処理のフローを示す。
この処理はアイドル時などに行う。ライト回数が規定回数をオーバーした領域があった場合、その領域に対してリフレッシュを行う。すでに図１９の処理によりデータの一部が退避領域に格納されている場合、それ以外のデータを退避エリアにコピーする。そして退避したデータを領域内に再びライトする。この時、シーケンシャルにライト（領域のあるトラック内のセクタを全てライト後、隣のトラックに順次移動）するようにし、図１８で説明した隣接トラックへの干渉ができるだけ生じないようにする。そして管理テーブルのライト回数を０に戻す。
【００４７】
以上述べたように、本実施形態のディスク記憶装置およびディスク記憶装置のセクタ群管理方法においては、複数のトラックに跨る巨大な不良領域に起因する欠陥セクタを効率よく登録でき、欠陥管理テーブルのサイズが大きくなりすぎることを防止することが可能となる。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態に係るメディア上の信号不良領域と、欠陥登録領域を説明するための図。
【図２】本実施形態に係る物理ＬＢＡを説明するための図。
【図３】本実施形態に係る論理ＬＢＡを説明するための図。
【図４】本実施形態に係るスキューがついた場合のアドレス配置を説明するための図。
【図５】本実施形態に係るスキューがついたアドレス配置を、物理LBA順にならべ換えた様子を説明するための図。
【図６】本実施形態に係るスキューがついたアドレス配置を、論理LBA順にならべ換えた様子を説明するための図。
【図７】本実施形態に係るメディア面内の長方形領域の指定方法を説明するための図。
【図８】本実施形態に係るメディア面内の長方形領域の指定方法を説明するための図。
【図９】本実施形態に係るメディア面内の長方形領域の指定方法を説明するための図。
【図１０】アクセスＬＢＡの物理ＬＢＡを計算し、アクセス対象トラックのスリップ情報を計算する方法を説明するための図。
【図１１】本実施形態に係る領域Ａに対する登録情報を説明するための図。
【図１２】本実施形態に係るアクセスＬＢＡの物理ＬＢＡを計算し、アクセス対象トラックのスリップ情報を計算する方法を説明するための図。
【図１３】メモリに展開されるスリップアドレス情報。
【図１４】本実施形態に係る欠陥領域管理テーブル。
【図１５】本実施形態に係るリフレッシュ領域管理テーブル。
【図１６】本実施形態に係る登録領域内のスリップの物理アドレス計算のフロー。
【図１７】本実施形態に係るアクセスＬＢＡの物理ＬＢＡを計算し、アクセス対象トラックのスリップ情報を計算するフロー。
【図１８】本実施形態に係る隣接トラックへのライト状態を説明する図。
【図１９】本実施形態に係るリフレッシュ対象領域へのライトアクセス時のフロー。
【図２０】本実施形態に係るリフレッシュ処理のフロー。
【符号の説明】
【００４９】
１…複数トラックに跨る信号不良領域、２…欠陥登録領域、３…領域先頭、４…領域終端、５…領域先頭、６…領域終端、７…論理アドレスのスリップ、８…トラックの先頭アドレス、９…セクタ、１０…スキュー（Ｓｋｅｗ）、１１…トラック、１２…トラックサイズ（Ｔｒａｃｋ＿Ｓｉｚｅ）、１３…アドレスの方向、１４…領域Ａ、１５…領域Ｂ、１６…スリップ
【図１】
2009223933.tif 000003
【図２】
2009223933.tif 000004
【図３】
2009223933.tif 000005
【図４】
2009223933.tif 000006
【図５】
2009223933.tif 000007
【図６】
2009223933.tif 000008
【図７】
2009223933.tif 000009
【図８】
2009223933.tif 000010
【図９】
2009223933.tif 000011
【図１０】
2009223933.tif 000012
【図１１】
2009223933.tif 000013
【図１２】
2009223933.tif 000014
【図１３】
2009223933.tif 000015
【図１４】
2009223933.tif 000016
【図１５】
2009223933.tif 000017
【図１６】
2009223933.tif 000018
【図１７】
2009223933.tif 000019
【図１８】
2009223933.tif 000020
【図１９】
2009223933.tif 000021
【図２０】
2009223933.tif 000022