JP4652642B2 - 欠陥セクタおよび/または望まれないセクタをスキップするためのディスク・ドライブ・コントローラ回路および方法 - Google Patents
欠陥セクタおよび/または望まれないセクタをスキップするためのディスク・ドライブ・コントローラ回路および方法 Download PDFInfo
- Publication number
- JP4652642B2 JP4652642B2 JP2001502120A JP2001502120A JP4652642B2 JP 4652642 B2 JP4652642 B2 JP 4652642B2 JP 2001502120 A JP2001502120 A JP 2001502120A JP 2001502120 A JP2001502120 A JP 2001502120A JP 4652642 B2 JP4652642 B2 JP 4652642B2
- Authority
- JP
- Japan
- Prior art keywords
- sector
- skip
- read
- sectors
- bit
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000002950 deficient Effects 0.000 title claims abstract description 44
- 230000008569 process Effects 0.000 claims description 23
- 238000004519 manufacturing process Methods 0.000 claims description 20
- 230000009643 growth defect Effects 0.000 claims description 17
- 238000007689 inspection Methods 0.000 claims description 11
- 230000001174 ascending effect Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 5
- 230000007547 defect Effects 0.000 description 49
- 230000006870 function Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012005 ligant binding assay Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1883—Methods for assignment of alternate areas for defective areas
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Spectrometry And Color Measurement (AREA)
- Color Television Image Signal Generators (AREA)
- Testing Electric Properties And Detecting Electric Faults (AREA)
Description
【発明の属する技術分野】
(技術分野)
本発明は、一般的にコンピュータ・システムの大容量記憶装置に関する。特に、本発明は、ディスク上の欠陥および/または望まれないセクタを検査し、管理するためのディスク・ドライブ・コントローラ回路および方法に関する。
【0002】
【従来の技術】
(背景技術)
コンピュータ・システムはしばしばホスト・システムと、データを格納しかつ/またはデータへのアクセスを提供する1つまたはそれ以上の周辺記憶装置とを含む。周辺記憶装置の一種にハード・ディスク・ドライブがある。ハード・ディスク・ドライブは一般的に、モータによって回転する少なくとも1つのプラッタ(集合的に「ディスク」)と、トランスデューサをディスク上の様々な位置に移動させるアクチュエータと、マイクロプロセッサと、ディスク・ドライブ・コントローラ(「コントローラ」)と、種々のその他の電気回路機構とを含む。コントローラは一般的に、ディスク・ドライブ内の印刷配線板に実装された集積回路である。マイクロプロセッサはコントローラ集積回路内または外部に物理的に埋め込むことができる。
【0003】
コントローラ(マイクロプロセッサの制御下にある)は一般的に、書込み動作中にディスク上に格納されるホスト・コンピュータ(「ホスト・システム」または単に「ホスト」)からのデータを処理すること、および読出し動作中に要求ホスト・コンピュータにデータを渡すことを含め、ディスク・ドライブの動作の大部分を制御する。コントローラはディスク表面へ、またはそこからデータを検索したり送るために使用される。コントローラは一般的に、データがディスクへ、およびそこから正常に転送することができるように、データを符号化する。
【0004】
ディスクはしばしば、データを格納する1組の回転プラッタを含む。データは何回でもディスクに書き込み、またはディスクから読み出すことができ、ディスク・ドライブを停止した後、データはそのまま維持される。プラッタは2つの書込み可能な面を持つことができる。各書込み可能面は、トラックと呼ばれる同心のリング上にデータを格納する。トラックの数はディスクによって異なる。トラックは半径方向にセクタに分割され、それはトラックの最小の書込み可能/読出し可能な単位である。1トラック当たりのセクタの数は様々であり、ディスクの製造者は様々なディスク構成を持つことができるので、ディスクによって異なる。1トラック当たり200またはそれ以上のセクタを持つことができる。各セクタはデータ、セクタに関する情報、および同期情報を含む。
【0005】
ディスク・プラッタ上で発生し得る欠陥は、一般的に2種類ある。すなわち、製造欠陥および成長欠陥である。製造欠陥とは、製造中に発生し、検出される欠陥である。ディスクを製造中に工場でフォーマットするときに、工場アルゴリズムは、どのセクタに初期欠陥があるかを決定し、全ての検出された製造欠陥のセクタ・アドレスのリストを作成する。製造欠陥を記録する手順はディスクによって異なり、各ディスク製造者に独特であるかもしれない。工場アルゴリズムは製造欠陥のアドレスのリストを、製造者のディスク・ドライブの定義された実現(implemention)によって物理的アドレスまたは論理ブロック・アドレスのいずれかとして、ディスク・ドライブのディスク上に格納する。ディスク・ドライブはこのリストを使用して、「スリッピング(slipping)」を実行する。これは、製造欠陥のある各セクタに対し、読み出すかまたは書き込むべき次のセクタのアドレス(製造者の定義された実現によって物理または論理のいずれか)が、最後の正常なセクタのアドレスから論理的に増分されることを意味する。こうして、製造欠陥のあるセクタのアドレスは次の正常なセクタに増分されるので、ディスク・ドライブの動作中にディスク・ドライブはそのセクタを読み書きしない。
【0006】
もう1つの一般的な種類の欠陥は成長欠陥と呼ばれるものであり、これは製造後に発生し、かつ/または検出される。成長欠陥は、ディスク・ドライブが、フォーマット動作中などに読出し不能または使用不能であると判断するセクタを含む。成長欠陥は一般的に、セクタが読出されるときに検出され、記録されるが、プロセスは製造者の定義された実現によって異なる。成長欠陥のある各セクタからのデータは、非欠陥セクタに再割当される。
【0007】
製造欠陥の場合と同様に、成長欠陥の位置およびそれらの再割当されたセクタ・アドレスは一般的に、製造者の定義された実現によって、物理または論理アドレスのいずれかとしてディスク上に格納される。成長欠陥の位置は、ディスク・ドライブが電源を投入されるたびに、ディスクからランダム・アクセス・メモリ(RAM)に転送することができる。
【0008】
一部のディスク・ドライブ・コントローラは、現在の読出しまたは書込み動作中にスキップするか再割当される欠陥セクタのアドレスを一時的に格納するために使用される、1つまたはそれ以上のレジスタを含む。
【0009】
【発明が解決しようとする課題】
(発明の開示)
一部のディスク・ドライブ・コントローラの1つの欠点は、読出しまたは書込み動作中にスキップまたは再割当されるトラック上の欠陥セクタを識別するために割り当てられる、ディスク・ドライブ・コントローラ内のレジスタの制限された数である。レジスタの数は、読出しまたは書込み動作中にスキップまたは再割当することのできる欠陥セクタの総数を制限する。一部のディスク・ドライブでは、特定のトラック上の欠陥の数は、トラック上の欠陥を識別するために使用される、利用可能なレジスタの数より大きくなるであろう。さらなるレジスタを追加するには、さらなるゲートを追加する必要があり、これはディスク・ドライブ・コントローラの製造コストを増加させる。
【0010】
製造コストに加えて、さらなるレジスタを追加することの別の欠点は、どれだけのレジスタがあれば特定のディスク・プラッタの特定のトラックの全ての欠陥を処理するのに充分であるかを、事前に推測しようとすることである。異なるディスク・プラッタは、1トラック当たりの異なる数のセクタ、および異なる数のトラックを持つかもしれない。さらに、ディスク技術が改善されるにつれて、1トラック当たりのセクタの数は増加するかもしれず、これは、より多くの欠陥セクタがディスク・ドライブ・コントローラによって管理され、スキップされ、かつ/または再割当されることにつながるかもしれない。
【0011】
1つの解決策は、コントローラは所定の読出しまたは書込み動作に対し(制限された数のレジスタに基づき)特定の数の欠陥セクタしかスキップできないので、欠陥管理動作を複数の部分に分割することである。複数部分欠陥管理動作の各部分が特定の数の欠陥セクタをスキップまたは再割当すると、特定のトラック上の欠陥の多くまたは全部を処理するのに充分なレジスタがある。しかし、欠陥管理動作を複数の部分に分割すると、全体的な欠陥管理動作の時間が増加し、ディスク・ドライブ性能が低下する。現在のディスク・ドライブの重要な目標は、読出しまたは書込み動作の時間の量を最小にすることである。
【0012】
【課題を解決するための手段】
本発明は、ディスク上の欠陥および/または望まれないセクタを追跡し、かつ読出しまたは書込み動作中にそうした欠陥および/または望まれないセクタをスキップするためのディスク・ドライブ・コントローラ回路および方法に関する。本発明は、欠陥セクタが相互に近接する傾向があり、かつしばしば一塊りの隣接または連続したセクタとしてまとまって見つかるという事実を認識し、利用する。本発明のディスク・ドライブ・コントローラは、連続した欠陥セクタの範囲の位置を格納できる「スキップ範囲検査レジスタ」または「スキップ検査レジスタ」を使用する。
【0013】
欠陥セクタ情報を欠陥セクタの範囲としてコントローラ内に格納することにより、本発明は、欠陥を追跡するために必要なレジスタおよび/またはレジスタ論理の量を減少することができる。代替的に、本発明は、レジスタ論理を実質的に増加することなく、読出しまたは書込み動作中に処理できる欠陥セクタの数を(従前の設計より)増加することができる。
【0014】
さらに、ディスク・ドライブはトラック上のデータを1セクタづつ連続的に読み出しまたは書き込むように構成されるので、スキップ範囲検査レジスタは、コントローラが欠陥セクタを単一ユニット毎にではなく、一塊り毎にすばやくスキップすることを可能にする。こうして、本発明のディスク・ドライブ・コントローラ回路および方法は、さらなるレジスタを追加したり、さらなるレジスタがどれだけ必要かを推測しようとしたり、欠陥管理動作を複数の部分に分割する問題を軽減する。
【0015】
様々なディスク・ドライブ製造者が様々な欠陥管理方式を使用する。様々な既知の欠陥管理方式のどれでも、本発明と共に使用することができる。
【0016】
一実施形態は、ホスト・システムが読出しまたは書込み動作中に特定の望まれないセクタをスキップまたはマスクすることをも可能にする。これらのセクタは欠陥ではないが、それらは、特定の読出しまたは書込み動作中にホスト・システムによって望まれないものである。
【0017】
本発明の一態様は、ホスト・システムによって要求される通りにディスクの1つまたはそれ以上のトラック上の1つまたはそれ以上のセクタにデータの読み書きを行なうように構成された、ディスク・ドライブ内のディスク・ドライブ・コントローラに関する。このディスク・ドライブ・コントローラは、(a)読出しまたは書込み動作中にスキップすべき第1セクタのセクタ・アドレス、および(b)読出しまたは書込み動作中にスキップすべき多数の連続セクタを示す範囲値を格納するように構成された、少なくとも1つのレジスタを含む。ディスク・ドライブ・コントローラは、読出しまたは書込み動作中に前記セクタ・アドレスおよび前記範囲値を使用して一範囲の連続セクタをスキップするように構成された制御回路をさらに含む。1つの構成では、制御回路はステートマシンを含む。レジスタの1つの構成は、特定のセクタまたは特定の範囲の連続セクタが再割当されており、スキップすべきであることを示す再割当ビットをさらに含む。レジスタの別の構成は、ホスト・システムが読出しまたは書込み動作中にコントローラに指示して特定の望まれない(しかし欠陥ではない)セクタにスキップさせることを可能にする、増分論理ブロック・アドレス(LBA)をさらに含む。
【0018】
本発明の別の態様は、ホスト・システムによって要求された読出しまたは書込み動作中にディスク・ドライブのディスク上で1つまたはそれ以上のセクタをスキップする方法に関する。当該方法は、読出しまたは書込み動作中にスキップすべきセクタのリストを生成し、当該リスト内でスキップすべき少なくとも1つの範囲の連続セクタを識別し、前記範囲をアドレスおよび範囲値に変換して圧縮リストを生成し、かつ当該圧縮リストをディスク・ドライブ・コントローラの1組のレジスタにロードすることを含む。
【0019】
【発明の実施の形態】
(好適な実施形態の詳細な説明)
本発明の範囲を限定するのではなく、例証することを意図した、本発明の好適な実施形態をここで説明する。
【0020】
Fig.1は、本発明の一実施形態によるディスク・ドライブ2を示す。ディスク・ドライブ2が、例えばパーソナル・コンピュータ(PC)とすることのできるホスト・システム(ホスト)5と一緒に示される。ディスク・ドライブ2は、ディスク・ドライブ・コントローラ回路(コントローラ)15、ホスト・インタフェース・ポート10、ディスク・ポート27、ローカルまたはディスク・ドライブ・マイクロプロセッサ(マイクロプロセッサ)20、マイクロプロセッサ・ポート22、データ・バッファ・ポート75、読出し専用メモリ(ROM)70、ランダム・アクセス・メモリ(RAM)60、およびデータ・バッファ80を含む。ディスク・ドライブ・コントローラ15はディスク25にデータを読み書きする。
【0021】
ホスト・インタフェース・ポート10は例えば小型コンピュータ標準インタフェース(SCSI)ポート、アドバンスト・テクノロジ・アタッチメント(ATA)バス・ポート、またはファイバ・チャネル・ポートとすることができる。マイクロプロセッサ20は汎用マイクロプロセッサであることが好ましく、コントローラ15内またはコントローラ15の外部のいずれかに物理的に埋め込むことができる。データ・バッファ80は、コントローラ15の内側または外側のいずれかに置くことができる。ROM70は実行可能なファームウェア65を格納し、これはブートアップ時にRAM60にコピーされ、マイクロプロセッサ20によって実行することができる。代替的に、ROM70は、ディスク25からRAM60にファームウェアをダウンロードする1組の命令を格納することができる。
【0022】
RAM60は、ブートアップ時にファームウェアによってディスク25または他の適切な場所からロードされる欠陥リスト62を格納する。欠陥リスト62は、ディスク25全体の全ての製造欠陥および成長欠陥のマスタ・リストとすることができる。代替的に、別の構成では、欠陥リスト62は、各読出しまたは書込み動作中の開始時にファームウェア65によってRAM60にロードすることができる。この構成では、欠陥リスト62は、ディスク25全体の全ての製造欠陥および成長欠陥のマスタ・リストの一部分とすることができる。この構成では、ファームウェア65は、読出しまたは書込みコマンドによって必要とされるときに、マスタ・リストの一部を(製造者の定義された実現によって)1トラックづつまたは1ゾーンづつロードすることができる。
【0023】
Fig.1に図示した実施形態では、ディスク・ドライブ・コントローラ15はマイクロプロセッサ・インタフェース40、データ・フロー・コントローラ35、バッファ・コントローラ45、誤り訂正コード(ECC)モジュール50、ディスク・フォーマッタ30、およびホスト・インタフェース・コントローラ55を含む。ホスト・インタフェース・コントローラ55は、SCSIコントローラまたはSCSIプロセッサ、ATAプロセッサ、もしくはファイバ・チャネル・インタフェース・マネージャを含むことができる。バッファ・コントローラ45は、読出しまたは書込み動作に関連付けられたセクタの論理ブロック・アドレスを計数する、少なくとも1つの論理ブロック・アドレス(LBA)カウンタ47を含む。
【0024】
ディスク・フォーマッタ30は、主ステートマシン90、セクタ・パルス発生器92、AND論理関数ゲート95、コマンドステートマシン102、スキップ検査ステートマシン100、および1組のスキップ検査レジスタ105を含む。ディスク・フォーマッタ・レジスタは、ディスク・フォーマッタ制御レジスタ101、SEC_REQレジスタ103、およびSEC_CNTレジスタ104を含む。代替的に、他の構成では、開示した機能を実現するために、他の回路アーキテクチャを使用することができる。
【0025】
(コントローラおよびマイクロプロセッサの一般動作)
ディスク・ドライブ・コントローラ14およびマイクロプロセッサ20の一般動作について、Fig.1およびFig.7を参照しながら説明する。Fig.7は、Fig.1のディスク・ドライブ2によって実行されるファームウェア法の1つの構成を示す。Fig.7のプロセス・ブロック700で、ディスク・ドライブ2はホスト・システム5から読出しまたは書込みコマンドを受け取って処理する。特に、ホスト5は、ディスク・ドライブ・コントローラ15のホスト・インタフェース・コントローラ55に読出しまたは書込みコマンドを送ることによって、ディスク・ドライブ動作を開始する。マイクロプロセッサ20は、ホスト・インタフェース・コントローラ55から読出しまたは書込みコマンドを読み出す。読出しまたは書込みコマンドは選択された論理ブロック・アドレスから始動し、1つ以上のトラックが関与することがある。
【0026】
プロセス・ブロック702で、マイクロプロセッサ20は、読み出されるかまたは書き込まれるトラックを識別するファームウェア65を実行する。ファームウェア65は、読出しまたは書込みコマンドの論理ブロック・アドレスを、ディスク25上で読み出されるかまたは書き込まれる特定の物理セクタ位置(アドレス)に変換または翻訳する。この変換は製造者のディスク・ドライブの実現によって定義される。
【0027】
プロセス・ブロック704で、ファームウェア65は、読出しまたは書込み動作の識別されたトラック内のスキップすべきセクタのリストを生成する。このリストを生成するために、ファームウェア65は、もしあれば読出しまたは書込みコマンドに関連付けられたビット・マップ(Fig.4に示すような)、およびディスク25からの欠陥リスト62を使用することができる。上述した通り、ファームウェア65によって使用される欠陥リスト62は、ディスク25上の全ての製造および成長欠陥のマスタ・リスト、またはマスタ・リストの一部分とすることができる。
【0028】
プロセス・ブロック706で、ファームウェア65はスキップすべきセクタのリスト62を、スキップ範囲検査レジスタ105にロードするための適切なフォーマットに変換する。これは、例えば連続欠陥セクタ・アドレスを開始アドレスおよび連続欠陥セクタ・アドレスの範囲(長さ)に組み合わせることを含む。こうして、欠陥リスト62は凝縮または圧縮リストに変換される。ファームウェア65はまた欠陥リスト62を使用して、読出しまたは書込みコマンドによって指定された、成長欠陥のあるセクタに対する(スキップ検査レジスタ・セット170の再割当ビット162にロードされる)再割当ビットをも生成する。
【0029】
プロセス・ブロック708で、ファームウェア65は、コマンドを実行するために必要な全ての制御パラメータを、ディスク・フォーマッタ制御レジスタ101、SEC_REQレジスタ103、SEC_CNTレジスタ104、およびスキップ検査レジスタ105など、コントローラ15の適切なレジスタにロードする。Fig.3のスキップ検査レジスタの構成の場合、ファームウェア65は必要に応じて4つのフィールド162〜168にロードする。
【0030】
制御パラメータの目的の1つは、どの物理セクタおよびどのトラックに書込みまたは読み出しを行うかを指定することである。SEC_REQレジスタ103は当初、ホスト・システム5からの読出しまたは書込みコマンドを実行するために識別された、開始または第1セクタ・アドレス(最も低い物理セクタのアドレス)を含む。SEC_CNTレジスタ105は当初、読出しまたは書込みコマンドによって識別されたセクタの総数を指定し、動作の進行中には、処理すべき残りのセクタ数を指定する。
【0031】
レジスタ101、103、104および105がロードされた後、ファームウェア65は、プロセス・ブロック710に示すように、ディスク・フォーマッタ30に読出し/書込みコマンドを発行する。ディスク・フォーマッタ30は、マイクロプロセッサ20によるそれ以上の介入無く、自動的にコマンドを実行することが好ましい。セクタ・パルス発生器92は、AND論理関数ゲート95に開始コマンド・セクタ・パルス(CMD_START_SP)を生成する。CMD_START_SPは第1指定セクタID、SEC_REQを識別する。セクタ・パルス発生器92はまたCMD_START_SPをスキップ検査ステートマシン100に送る。
【0032】
スキップ検査ステートマシン100は、SEC_REQレジスタ103に格納された値がスキップすべきセクタを指すかどうかを決定する。スキップ検査ステートマシン100は、セクタ・パルス発生器92からのCMD_START_SPと共にANDゲート95に入力される出力を生成する。スキップ検査ステートマシン100の出力が「低レベル」の場合、セクタはスキップされる。スキップ検査ステートマシン100の出力が「高レベル」の場合、セクタはスキップされない。ANDゲート95の出力は主ステートマシン90に入力される。
【0033】
スキップ検査ステートマシン100は、スキップ検査レジスタ105の内容を使用して、欠陥セクタが無いか検査する。成長欠陥のため再割当されるセクタとして指定されたセクタのアドレスを検出すると、スキップ検査ステートマシン100は作動を停止する。次いでファームウェア65は再割当アルゴリズムを使用して、成長欠陥の無いセクタにデータを割り当てる(例えば書込み動作のため)か、あるいは交換セクタを識別する(例えば読出し動作のため)。
【0034】
コマンドが完了すると、ディスク・フォーマッタ30はマイクロプロセッサ20に割込みを送信し、かつ/またはフラッグをセットする。割込みはコマンドが完了したことを示し、ディスク・フォーマッタ30は別のコマンドを実行できる状態にある。
【0035】
(読出しまたは書込み)
1つの構成で、ホスト5からのコマンドが読出しコマンドである場合、要求されたデータはディスク25からデータ・バッファ80へ読み出される。特定の量のデータがバッファ80内にあると、マイクロプロセッサ20はコントローラ15にバッファ80からホスト5へデータを送らせる。ホスト5からのコマンドが書込みコマンドである場合、ディスク・フォーマッタ30およびECCモジュール50は、データをディスク25に格納する前にそれを符号化する。
【0036】
(ファームウェアの機能)
ファームウェア65は、欠陥管理方式に関連する3つの主要な機能を実行するように構成することが好ましい。ブートアップ時にファームウェア65は、マイクロプロセッサ20によって実行される場合、ディスク・ドライブ・コントローラ15に、製造欠陥のあるセクタのリストをディスク25から読み取らせ、このリストをRAM60、データ・バッファ、または何らかの他の領域(ディスク・コントローラには不明)に格納する。リストは、ディスク・ドライブ製造者によって指定されるゾーン、プラッタ、または何らかの他のユニットに関連する。読出しまたは書込み動作中に、ファームウェア65はこのリストの一部をディスク・フォーマッタ30に転送する。リストの転送部分は、ホスト・システム5によって指定されたセクタに関連する特定のトラックを含む。ディスク・フォーマッタ30は、転送された部分リストに従ってトラックの特定のセクタをスキップする。これは、上述の欠陥管理動作の一部である。
【0037】
ファームウェア65はまた、成長欠陥のあるセクタを再割当する。再割当手順はディスク・ドライブ製造者の実現によって異なる。読出し動作中にエラーに遭遇すると、ファームウェア65はデータを回復してデータを欠陥のない代替「正常」セクタに再割当しようとする。この正常セクタは、ディスク25のどこにでも配置することができる。ファームウェア65は、セクタ再割当のレコードを制御し、維持する。その後の読出しまたは書込み動作の開始時に(データが再割当された後)、ファームウェア65は、スキップすべき1つまたはそれ以上の欠陥セクタの位置をディスク・ドライブ・フォーマッタ30内のスキップ検査レジスタ105にプログラムする。再割当されたセクタにより、ファームウェア65(およびディスク・フォーマッタ30)は、再割当アドレスまでの読出しまたは書込みを行ない、再割当セクタのアドレスを決定し、このセクタの読出しまたは書込みを行ない、次いで読出しまたは書込みコマンドの残りのセクタに戻る。
【0038】
読出しまたは書込み動作前に、ファームウェア65はまた、ホスト5からの読出しまたは書込みコマンドによって望まれない特定のセクタをスキップするように、ディスク・フォーマッタ30をプログラムすることもできる。望まれないセクタは欠陥ではない(それらは有効な読出し可能データを含む)が、それらは様々な理由で転送すべきものとしてホスト・システム5によって識別されない。例えば特定のセクタは、Redundant array of inexpensive disk(RAID)コントローラで使用される「スキップ・マスク読出し」および「スキップ・マスク書込み」などの専用コマンド・セットでは使用されないことがある。例えばSCSIプロトコルは、特定の望まれないセクタまたは一範囲のセクタを除外するために使用できる専用コマンドを持つ。
【0039】
制御パラメータが各読出しまたは書込み動作毎に異なるかもしれないので、ファームウェア65は、各読出しまたは書込み動作前に、レジスタ101、103、104、およびスキップ・レジスタ105を再プログラムすることが好ましい。
【0040】
(欠陥管理動作の概要−主ステートマシンおよびスキップステートマシンの機能)
欠陥管理動作の一部分について、Fig.1を参照しながら説明する。第1セクタを検査した後、ディスク・フォーマッタ30の主ステートマシン90は、スキップ検査ステートマシン100と並行して作動することが好ましい。スキップ検査ステートマシン100は識別された後続セクタにスキップ検査手順を実行する一方、主ステートマシン90は他の処理機能を実行する。
【0041】
(SEC_REQおよびSEC_CNT)
スキップ検査ステートマシン100はスキップ・レジスタ105を検査して、要求されたセクタ(SEC_REQ)のセクタ・アドレスがファームウェア65によってスキップ・セクタとして指定されたかどうかを決定する。SEC_REQレジスタ103は、(読出しまたは書込み動作によって要求された)各要求セクタ・アドレスが、スキップ・レジスタ105に格納された(ファームウェア65によってスキップ・セクタとして指定された)スキップ・セクタ・アドレスに照らして検査された後、1づつ増分するカウンタとして作動することが好ましい。
【0042】
要求されたセクタ(SEC_REQ)がスキップ・セクタとして指定された場合、スキップ検査ステートマシン100はそのセクタをスキップし、トラック上の次の順序セクタ(SEC_REQ+1)を検査する。セクタがスキップ・セクタとして指定されなければ、スキップ検査ステートマシン100は主ステートマシン90にそのセクタを処理させ、主ステートマシン90はそのセクタのデータの読出しまたは書込みを行なう。主ステートマシン90は、各セクタが正常に見つかり読出しまたは書込みが行なわれた後に、要求セクタの総数(SEC_CNT)を1だけ減分する。SEC_CNTが零まで減分されると、読出しまたは書込み動作は完了する。
【0043】
(既存のスキップ・レジスタの構成)
Fig.2Aはディスク25上のトラック120、第1スキップ・レジスタ125、および第2スキップ・レジスタの一例を示しており、既存の設計の欠点を例証するために使用する。この例の目的のために、6つのセクタ130〜140および2つのスキップ・レジスタ125、127だけが示されている。しかし、トラックは200またはそれ以上のセクタを含むことができ、ディスク・フォーマッタ30は幾つかのスキップ・レジスタを持つことができる。
【0044】
Fig.2Aで、各スキップ・レジスタ125、127は、単一の欠陥セクタの位置(セクタ・アドレスまたはセクタIDとも呼ばれる)を格納またはマップすることができる。しかし、読出しまたは書込みが行なわれるトラック上の欠陥セクタの数は、スキップ・レジスタの数より大きいかもしれない。例えばFig.2Aに示すように、3つの欠陥セクタ132〜136があり、スキップ・レジスタ125、127は2つしかない。1つの既存の方法では、ディスク・フォーマッタ30は、その欠陥管理動作がスキップすべきセクタを制限された数、この例では2個しか処理できないので、そのトラック120に意図された読出しまたは書込み動作を少なくとも2つの動作に分割する。第1欠陥管理動作は、第1セクタ欠陥132の位置を格納するために第1スキップ・レジスタ125を使用し、かつ第2セクタ欠陥134の位置を格納するために第2スキップ・レジスタ127を使用する。第2欠陥管理動作は、第3セクタ欠陥136の位置を格納するために第1スキップ・レジスタ125を使用する。第1読出し動作は、セクタn130まで読み出し、第2読出し動作はn+1からトラック120に沿ってさらに別のセクタまで読み出す。
【0045】
欠陥管理動作を分割する1つの欠点は、読出しまたは書込み動作を完了するために必要な時間が長くなること、およびそれによってディスク・ドライブ性能が低下することである。
【0046】
(スキップ範囲検査レジスタ)
Fig.2Bは、ディスク・トラック120、および本発明の一実施形態によるスキップ範囲検査レジスタ150の1つの構成を示す。Fig.2Bで、スキップ範囲検査レジスタ150はスキップ・セクタ位置またはIDフィールド154(SKIP_ID)および長さフィールド152(LENGTH)を含む。スキップ・セクタIDフィールド154は、Fig.2Bに示す第1欠陥セクタ132のように、トラック120上でスキップすべき第1セクタのセクタ位置を指定する。好適な構成では、このスキップ・セクタIDは、論理アドレスではなく、物理アドレスである。
【0047】
LENGTHフィールド152は、第1欠陥セクタ132から始まる、スキップすべき連続欠陥セクタの数を指定する。「1」のLENGTHは、SKIP_IDアドレスのセクタだけがスキップされることを示す。「2」のLENGTHは、SKIP_IDおよびSKIP_ID+1アドレスの2つのセクタがスキップされることを示す。例えば、Fig.2Bに示すトラック120の場合、LENGTHフィールド152は3である。LENGTHフィールド152は、1つのスキップ・レジスタ150を使用するだけであるが、ディスク・フォーマッタ30に2つ以上のセクタをスキップさせることができる。
【0048】
スキップ範囲検査レジスタ150は、欠陥セクタがしばしば一塊りの隣接または連続したセクタにまとまって見つかるという事実を利用する。単一のスキップ範囲検査レジスタ150(Fig.2B)を持つディスク・フォーマッタ30(Fig.1)は、動作を複数の部分に分割する代わりに、1回の欠陥管理動作で(図示する欠陥を持つ)トラック120の読出しまたは書込み動作を実行することができる。これは読出しまたは書込み動作の時間を短縮し、ディスク・ドライブの性能を向上する。
【0049】
Fig.3は、1組170のスキップ範囲検査レジスタ180〜210の1つの構成を示す。各レジスタ180〜210は、不良セクタまたは連続不良セクタの範囲を表わすことができる。Fig.3のスキップ範囲検査レジスタ180〜210は、10ビットのSKIP_IDフィールド168、4ビットのLENGTHフィールド166、INCREMENT LBAビット164、およびRE−ASSIGNビット162を含む。SKIP_ID168は、トラック120上のスキップまたは再割当すべき第1セクタの位置を指定する。LENGTHフィールド166は、スキップまたは再割当すべき連続セクタの数を指定する。LENGTHフィールド166の「0」の値は、スキップ範囲検査レジスタ160が有効でないエントリを含むことを示す。言い換えると、LENGTH=0の場合、スキップは必要ない。
【0050】
スキップ範囲検査レジスタ180〜210内のエントリは、ファームウェア65によって昇順にロードされることが好ましい。スキップすべき最も低い物理セクタの位置またはセクタの範囲は、第1スキップ・レジスタ180にロードされる。スキップすべき2番目に低い物理セクタの位置またはセクタの範囲は、第2スキップ・レジスタ182にロードされ、以下同様である。この好適な構成では、満杯レジスタの間に空のレジスタは無い。したがって、ひとたびスキップ検査ステートマシン100が空のレジスタに遭遇すると、それ以上スキップ範囲検査レジスタを読み出す必要はない。満杯レジスタの間に空のレジスタを置かずにエントリを昇順にロードする利点について、以下でFig.5およびFig.6を参照しながら説明する。
【0051】
Fig.3には16個のスキップ・レジスタ180〜210が示されているが、本発明の他の実施形態は16個より多数または少数のスキップ・レジスタを持つことができる。Fig.1のスキップ検査レジスタ105は、Fig.3のスキップ範囲検査レジスタ180〜210の組170を含むことが好ましい。代替的に、他の実施形態では、スキップ範囲検査エントリは、レジスタ180〜210の代わりにメモリに格納された、先入れ先出し(FIFO)モジュールまたはスタックにより実現することができる。
【0052】
(論理ブロック・アドレス)
INCREMENT LBAビット164は、ホスト・システム5からの読出しまたは書込み動作に、欠陥ではない特定の望まれないセクタをスキップさせる。一般的に、ホスト・システム5はデータを一続きの連続した論理ブロック・アドレス(LBA)として認識する。ディスク・コントローラ15は、データがディスク25上にどのように格納されるかの配列を制御し、ファームウェア65は、LBAと物理セクタ・アドレスとの間の変換を制御する。LBAから物理アドレスへのマッピングは、ホスト・システム5に対して透過的に行われることが好ましい。したがって、論理ブロック・アドレスは、ディスク上の物理セクタIDと一致しないかもしれない。
【0053】
例えば、ホスト5によって使用される論理ブロック・アドレス1〜19は、第1ディスク・プラッタ(図示せず)の第1トラックのセクタ8〜26に格納されるかもしれず、LBA20〜22は(Fig.2Bの場合のように)第1ディスク・プラッタの第2トラックのセクタ1、5、および6に格納されるかもしれず、LBA23〜30は第2ディスク・プラッタのトラックのセクタ1〜8上に格納されるかもしれない。さらに、データ・セクタは様々な物理セクタIDに再割当されるかもしれないが、論理ブロック・アドレスは連続したままである。
【0054】
LBAカウンタ47(Fig.1)は、ディスク25に格納されたデータ・セクタの論理ブロック・アドレスを追跡する。ディスク・コントローラ15がディスク25にデータを書き込むと、LBAカウンタ47は自動的に増分され、データがディスク25のセクタに格納されるときに、割り当てられたLBA値がデータと共に挿入される。製造中に検出された、スキップされる欠陥セクタに関連付けられるLBA値は無い。ディスク・フォーマッタ30は、各セクタのLBA値がディスク25から読み出されるときに、それを自動的に検査することができる。
【0055】
(増分LBAビット)
Fig.4は、ホスト5からの読出しまたは書込みコマンドに関連してホスト・システム5(Fig.1)によって生成される、リストまたはビット・マップ180の一構成を示す。ビット・マップ180は、ディスク・ドライブ2がホスト・システム5からビット・マップ180を受け取ったときに、RAM60に格納される。代替的に、Fig.4のビット・マップの代わりに、またはそれに加えて、ディスク・ドライブ・コントローラ15に特定の望まれないセクタをスキップするように通知する他の手段を使用することができる。
【0056】
動作中、ファームウェア65はビット・マップ180を使用して、特定の読出しまたは書込み動作でどの論理ブロック・アドレスがホスト・システム5によって要求され、どの論理ブロック・アドレスが要求されないかを決定する。ビット・マップ180の各ビット182〜204は、トラック上のセクタの物理セクタ・アドレスに関連付けられる論理ブロック・アドレスを表わす。「1」は、特定の読出しまたは書込みコマンドでホスト5によって要求される論理ブロック・アドレスを示す。「0」は、望まれない論理ブロック・アドレスまたはディスク・コントローラ15によってスキップすべきセクタを示す。ファームウェア65は、Fig.4のビット・マップ180および増分LBAビット164(Fig.3)を使用して、特定の読出しまたは書込み動作によって望まれないセクタについてLBAカウンタ47を調整する。特に、ファームウェア65はビット・マップ180を使用して、スキップ検査レジスタ105(Fig.1)のエントリを構成する。
【0057】
例えば、Fig.4で、最初の3つのビット182〜186は「1」であり、次の2つのビット188〜190は「0」である。これは、論理ブロック・アドレス1〜3が読出しまたは書込み動作で使用され、論理ブロック・アドレス4〜5が使用されない(望まれない)ことを示す。ファームウェア65(Fig.1)はビット・マップ180をスキップ範囲検査レジスタ180〜210(Fig.3)のエントリに変換して、論理ブロック・アドレス4〜5に関連付けられるセクタをスキップする。ファームウェア65は、スキップ検査レジスタのエントリの増分LBAビット164を、「1」などの予め定められた状態に設定し、長さ(範囲)フィールド166(Fig.3)に値「2」をロードする。これは、LBAカウンタ47が、スキップされた2つのセクタのために2だけ増分されることを示す。
【0058】
このように、増分LBAビット164は、LBAカウンタ47を増分すべきか否かを示す。望まれない(しかし欠陥ではない)セクタはスキップされ(読み書きされず)、増分LBAビット164は、スキップされたセクタがあたかも有効であり読み書きが行われたかのように、それらをLBAカウンタ47に計数させる。特定の読出しまたは書込み動作によって望まれない特定のセクタを標記する能力は、ディスク・コントローラ15及びスキップ検査方法にいっそうの柔軟性を追加するが、必須ではない。
【0059】
(再割当ビット)
上述した通り、Fig.3の再割当ビット162は、残りのフィールド164〜168と共にファームウェア65によってロードされる。再割当ビット162が1に設定される場合、これは、スキップ・セクタIDフィールド168および長さフィールド166によって指定された全てのセクタが再割当され、スキップされることを示す。言い換えると、SKIP_IDからSKIP_ID+(LENGTH・1)までの範囲の全てのセクタがスキップされる。スキップされたセクタは、セクタ・カウント(SEC_CNT)の一部として計数されない。
【0060】
(スキップ・レジスタへのアクセス)
マイクロプロセッサ20によるスキップ範囲検査レジスタ190〜210の組170へのアクセスは、2バイト・アドレス空間を占めるFIFD様インタフェース(図示せず)を通して行われる。ファームウェア65が読出しまたは書込み動作のためにスキップ検査レジスタ180〜210をロードする前に、ディスク・フォーマッタ30は、Fig.1のディスク・フォーマッタ制御レジスタ101の「スキップFIFO初期化」ビットをセットすることによって、FIFOインタフェースを初期化することが好ましい。スキップFIFO初期化ビットをセットすると、長さフィールドおよび再割当ビットを含めて、各スキップ検査レジスタ190〜210の全てのフィールドが0にリセットされる。
【0061】
(アドレス論理およびポインタ)
ディスク・フォーマッタ30はさらに、Fig.3に示すように選択されたスキップ検査レジスタ180〜210を指す、スキップ・レジスタ・アドレス・ポインタPNTR172などのスキップ・レジスタ・アドレス論理を含む。ロード・ポインタ変数は、レジスタ180〜210をロードするためにファームウェア65によって使用される。読出しポインタ変数は、レジスタ180〜210がファームウェア65によってロードされた後で、レジスタ180〜210を読み出すために、スキップ検査ステートマシン100によって使用される。
【0062】
読出しまたは書込み動作の開始時に、ディスク・フォーマッタ30はポインタPNTR172(ロード・ポインタ変数)を「0」にリセットする。(マイクロプロセッサ20によって実行される)ファームウェア65がスキップ検査レジスタ180〜210をロードすると、ファームウェア65はポインタ172(ロード・ポインタ変数)によって指定される単一のアドレスにアクセスして書込みを行なう。組170内のスキップ検査レジスタ180〜210が増分しながらロードされるように、ディスク・フォーマッタ30はPNTR172(ロード・ポインタ変数)を自動的に増分する。一構成では、ファームウェアによってレジスタ180〜210に書き込まれるエントリが16より多い(実現されたレジスタ190〜210の総数より多い)場合には、ポインタ172(ロード・ポインタ変数)は最後のレジスタ210をラップアラウンドして、連続レジスタ180〜210を増分し続ける。ポインタ172(ロード・ポインタ変数)のラップアラウンド性のため、ディスク・フォーマッタ30はレジスタ180〜210の前のデータに上書きする。
【0063】
ポインタ172がスキップ検査ステートマシン100によって使用されるとき、ポインタ172(読出しポインタ変数)はスキップ検査範囲レジスタ180〜210をラップアラウンドするが、ひとたびそれがラップし始めると、スキップ検査ステートマシン100は停止して、コントローラ15にSEC_REQを処理させる。
【0064】
(スキップ検査ステートマシン−Fig.5およびFig.6)
Fig.5は、Fig.1のスキップ検査ステートマシン100によって実行されるスキップ検査方法の一実施形態を示す。Fig.6は、Fig.3に示したスキップ範囲検査レジスタ180〜210と構造的に同様の多数のセクタ252〜268および1組のスキップ範囲検査レジスタ270〜276を持つトラック250の一例を示す。
【0065】
スキップ検査ステートマシン100の動作について、Fig.1〜Fig.6を参照しながら説明する。Fig.1で、ファームウェア65は主ステートマシン90およびコマンドステートマシン102を初期化し始動する。コマンドステートマシン102はスキップ検査ステートマシン100を始動し、スキップ検査ステートマシン100が終了するのを待つ。Fig.5で、スキップ検査ステートマシン100は当初、休止状態210にあり、コマンドステートマシン102からのSKIP STARTコマンドを待つ。スキップ検査ステートマシン100がSKIP_STARTコマンドを受け取ると、ステートマシン100はSKIP_STATE_1_215に進む。コマンドステートマシン102はSEC_REQ103(次の要求セクタのID)をセクタ・パルス発生器92に転送する。SKIP_STATE_1 215で、スキップ検査ステートマシン100は、Fig.1のSEC_REQレジスタ103に格納された最初の値をセクタ・パルス発生器92から受け取り、この値を第1スキップ検査レジスタ270のスキップ・セクタID(SKIP_ID)と比較する。当初、PNTR298は第1スキップ検査レジスタ270にある。
【0066】
(再割当)
SKIP_STATE_1 215で、SEC_REQが第1スキップ検査レジスタ270のスキップ・セクタIDに等しく、かつ再割当ビット290が1に設定された場合には、スキップ検査ステートマシン100は再割当割込みをセットし(後述する)、制御をコマンドステートマシン102(または主ステートマシン90)に転送する。スキップ検査ステートマシン100はSKIP_STATE_1 215から休止状態210に進む。例えば、Fig.6でSEC_REQ=2であり、かつSKIP_ID=2である場合、SEC_REQ=SKIP_IDとなる。再割当ビットが1に設定された場合、ディスク・フォーマッタ30は要求された再割当データ・セクタをトラックまたはディスク30で探索することができる。この再割当セクタの探索はファームウェア65によって指示することができ、Fig.5に示したスキップ検査ステートマシン法とは別個のプロセスであることが好ましい。
【0067】
SKIP_STATE_1 215で、SEC_REQが(SKIP_ID+(LENGTH・1))に低いか等しい場合、これは、SEC_REQが第1スキップ検査レジスタ270によってスキップするように指定されたセクタの範囲内であることを意味する。例えば、Fig.6で、SEC_REQ=3であり、かつ(SKIP_ID+(LENGTH・1))=2+(2・1)=3である場合、SEC_REQは、第1スキップ検査レジスタ270によってスキップするように指定されたセクタの範囲内になる。再割当ビット290が1に設定されると、スキップ検査ステートマシン100はその動作を中断し(休止状態210に進み)、再割当割込みをセットし、制御をコマンドステートマシン102(または主ステートマシン90)に戻す。
【0068】
再割当割込みは、データが別のセクタ場所に再割当されたことをファームウェア65(Fig.1)に知らせる。上述の通り、成長欠陥は一般的にセクタが読み出されるときに検出され記録されるが、プロセスは製造者の定義された実現によって異なる。成長欠陥のある各セクタからのデータは、非欠陥セクタに再割当される。再割当割込みに応答して、ファームウェア65は、例えば再割当セクタ・アドレスのリストを使用することにより、データがどこに再割当されたかを決定する。ファームウェア65は、再割当セクタのために再割当されたセクタアドレスを新しいコマンドと共にディスク・フォーマッタ30に送る。スキップ検査ステートマシン100は、別のSKIP_STARTコマンドをコマンドステートマシン102から受け取るまで休止状態210を維持する。
【0069】
(LENGTH=0)
SKIP_STATE_1 215で、LENGTHフィールド294が「0」に等しい場合、スキップ検査エントリは有効でなく、スキップは必要ない。例えばFig.6で、全てのレジスタ270〜276のLENGTHフィールドが「0」の場合、スキップは必要ない。次いでスキップ検査ステートマシン100はSKIP_STATE_3 225に進み、これは、スキップ検査ステートマシンによって「正常」セクタが見つかったことを示し、ディスク・フォーマッタ30は、以下で述べる通り、セクタに読出しまたは書込みを行なうことができる。
【0070】
(SEC_REQ<SKIP_ID)
SKIP_STATE_1 215で、LENGTHフィールドが零でなく、かつSEC_REQがSKIP_IDより低い場合、これは、要求されたセクタ・アドレスが、ポインタPNTR298によって現在指定されているスキップ検査レジスタの、この場合には第1スキップ・レジスタ270のSKIP_IDより低いことを意味する。例えば、Fig.6で、SEC_REQ=1であり、かつSKIP_ID=2である場合、SEC_REQ<SKIP_IDである。SEC_REQが第1スキップ検査レジスタ270のSKIP_IDより低い場合には、要求セクタ・アドレス(SEC_REQ)は、昇順のため、全てのスキップ検査レジスタ270〜276のSKIP_IDより低い。
【0071】
スキップ検査ステートマシン100は全てのスキップ検査レジスタ270〜276のエントリを検査する必要がないので、これはスキップ検査レジスタの昇順の利点である。スキップ検査ステートマシン100がSEC_REQ<SKIP_IDの状態を見つけるやいなや、スキップ検査ステートマシン100はただちにイネーブル信号をコマンドステートマシン102および/または主ステートマシン90に返して、要求セクタSEC_REQを読み出すかまたは書き込むことができる。スキップ検査ステートマシン100はSKIP_STATE_1 215からSKIP_STATE_3 225に進む。
【0072】
(スキップ検査済み)
SKIP_STATE_3 225で、スキップ検査ステートマシン100はSKIP_STATE_4 230に進み、これはSEC_REQによって現在指定されているセクタに対してスキップ検査手順が行なわれたことを示す。スキップ検査ステートマシン100は制御をコマンドステートマシン102および/または主ステートマシン90に返す。ディスク・フォーマッタ30は、トラック250でSEC_REQによって指定されているセクタの読出しまたは書込みをディスク・ドライブ15(Fig.1)に行なわせる。例えばFig.6では、ディスク・フォーマッタ30はディスク・ドライブ15に、SEC_REQ=1のセクタ252の読出しまたは書込みを行なわせる。
【0073】
セクタが正常に見つかり読み出された後、コマンドステートマシン102はSEC_CNTレジスタ104の要求セクタの総数(SEC_CNT)を減分する。SEC_CNTが零に達したとき、特定の読出しまたは書込み動作に関連付けられるセクタがそれ以上無く、読出しまたは書込み動作は完了する。
【0074】
(スキップ検査続行)
SKIP_STATE_4 230で、スキップ検査状態マシン100はコマンドステートマシン102および/または主ステートマシン90からの信号を待つ。読出しまたは書込み動作で読み出すべき、または書き込むべきセクタがもっとある(SEC_CNTが零でない)場合、コマンドステートマシン102はセクタ・パルス発生器92に、別のセクタ・パルスをスキップ検査ステートマシン100へ送らせる。コマンドステートマシン102は、次のセクタのためにスキップ検査プロセスを続けるために、スキップ検査ステートマシン100にSKIP_CONTコマンドを送る。スキップ検査ステートマシン100は、SKIP_STATE_4 230からSKIP_STATE_5 235へ進む。スキップ検査ステートマシン100は、トラック上の次のセクタを指すように要求セクタSEC_REQを増分し、スキップ検査方法を再び始動する。
【0075】
例えばSEC_REQが1である場合、それはSEC_REQ+1=2に増分される。次いでスキップ検査ステートマシン100はSKIP_STATE_1 215に進み、SEC_REQ+1=2である次のSEC_REQ値にスキップ検査手順を実行する。
【0076】
ディスク・フォーマッタ30が現在の要求セクタ(SEC_REQ)を読出している間に、スキップ検査ステートマシン100は、読み出すべき、または書き込むべき次の要求セクタ(SEC_REQ+1)を検査することが好ましい。これは時間を節約し、読出しまたは書込み動作の効率を改善する。
【0077】
(ポインタの増分)
SKIP_STATE_1 215で、SEC_REQが(SKIP_ID+(LENGTH・1))より大きい場合、これは、要求セクタ・アドレスが、ポインタPNTR298によって現在指定されているスキップ検査レジスタのSKIP_IDより高いことを意味する。例えば、Fig.6で、SEC_REQ=4、SKIP_ID=2、および(LENGTH・1)=1の場合、(SKIP_ID+(LENGTH・1))=1であり、SEC_REQ>(SKIP_ID+(LENGTH・1))である。スキップ検査ステートマシン100は、SKIP_STATE_1 215からFig.5に示すSKIP_STATE_2 220に進む。スキップ検査ステートマシン100は、次のスキップ検査レジスタ272を指すようにポインタPNTR298を増分する。スキップ検査レジスタ値は昇順に編成されるので、次のスキップ検査レジスタ272は、トラック250でスキップすべき次に最も高いセクタのセクタ・アドレスまたはセクタの範囲を含む。
【0078】
(READ_ALL信号)
SKIP_STATE_2 220で、スキップ検査ステートマシン100は次のスキップ検査レジスタ272のSKIP_IDを読み出す。スキップ検査レジスタにそれ以上エントリが無い場合、すなわちスキップ検査レジスタ272〜276が空であるか、あるいはLENGTH=0である場合、内部信号READ_ALLがコマンドステートマシン102に生成される。これは、スキップ検査ステートマシン100が全てのスキップ検査レジスタ270〜276を検査し、スキップすべきセクタがそれ以上見つからなかったことを示す。これは、満杯のスキップ検査レジスタの間に空のスキップ検査レジスタが無いことを利用している。スキップ検査ステートマシン100は、各スキップ検査レジスタ270〜276を検査する必要がない。スキップ検査ステートマシン100はSKIP_STATE_2 220からSKIP_STATE_3 225へ進む。
【0079】
SKIP_STATE_2 220で、スキップ検査レジスタ270〜276にさらにエントリがある場合、スキップ検査ステートマシン100はSKIP_STATE_1 215に戻る。例えば、Fig.6で、PNTR298は増分して第2スキップ検査レジスタ272を指す。第2スキップ検査レジスタ272はエントリを含む。スキップ検査ステートマシン100はSKIP_STATE_1 215に戻り、SEC_REQレジスタ103の現在値を第2スキップ検査レジスタ272に格納された値と比較する。
【0080】
(SEC_REQがスキップ範囲内、再割当=0で、SEC_REQの増分)
SKIP_STATE_1で、要求セクタSEC_REQがSKIP_ID296に等しいか、またはスキップ検査レジスタ270によってスキップするように指定されたセクタの範囲内にあり、かつ再割当ビット290が0に等しい場合、スキップ検査ステートマシン100はSEC_REQをSEC_REQ+1に増分する。したがって、SEC_REQのセクタはトラック250に沿ってスキップ検査ステートマシン100によってスキップされ、読出しまたは書込み動作中に処理されない。例えば、Fig.6で、SEC_REQ=2、SKIP_ID=2、および(SKIP_ID+(LENGTH・1))=3である場合、SEC_REQは1だけ増分されるので、SEC_REQ=2のセクタ254はスキップされる。次いでスキップ検査ステートマシン100はSKIP_STATE_1 215からSKIP_STATE_2 220に進む。
【0081】
上述した通り、SKIP_STATE_2で、スキップ検査ステートマシン100は次のスキップ検査レジスタ272のSKIP_IDを読み出す。次のスキップ検査レジスタ272にエントリが無ければ、スキップ検査ステートマシン100は信号READ_ALLをコマンドステートマシン102に生成する。スキップ検査ステートマシン100はSKIP_STATE_2 220からSKIP_STATE_3 225に進む。次のスキップ検査レジスタ272に別のエントリがある場合、スキップ検査ステートマシン100はSKIP_STATE_1 215に戻る。次いでスキップ検査ステートマシン100は、次のSEC_REQ値(SEC_REQ+1)にスキップ検査を実行する。
【0082】
要するに、スキップ検査ステートマシン100がSKIP_STATE_1 215からSKIP_STATE_2 220に進むときに、スキップ検査ステートマシン100は(欠陥セクタをスキップするために)SEC_REQレジスタ103を増分するか、または(次のスキップ検査レジスタを指すために)ポインタPNTR298を増分する。SKIP_STATE_2 220からSKIP_STATE_1 215に戻る経路は、スキップ検査ステートマシン100がスキップ検査状態レジスタ270〜276の可能なエントリを全部は検査し終わっていないことを示す。SKIP_STATE_2 220からSKIP_STATE_3 225への経路は、スキップ検査ステートマシン100が、スキップ検査状態レジスタ270〜276の全てのエントリを検査し終わり、スキップすべき欠陥セクタがそれ以上見つからなかったことを示す。
【0083】
本発明の実施形態および適用例を示しかつ説明したが、発明の範囲から逸脱することなく様々な変形が可能であることを、当業者は理解されるであろう。したがって、本発明は請求の範囲内で、具体的に説明した以外のやり方で実施することができる。
【図面の簡単な説明】
【図1】Fig.1は、本発明の一実施形態によるホスト・システムおよびディスク・ドライブを示し、かつディスク・ドライブに接続されたホスト・システムを示す。
【図2】Fig.2Aは、ディスク上のトラックおよび2つのスキップ・レジスタの一例を示す。
【図3】Fig.2Bは、ディスク上のトラックの一例および図1のディスク・ドライブ内のスキップ範囲検査レジスタの1つの構成を示す。
【図4】Fig.3は、Fig.1のディスク・ドライブ内の1組のスキップ範囲検査レジスタの1つの構成を示す。
【図5】Fig.4は、Fig.1のディスク・ドライブによって使用されるビット・マップの1つの構成を示す。
【図6】Fig.5は、Fig.1のディスク・ドライブによって実行されるステートマシン方法の1つの構成を示す。
【図7】Fig.6は、ディスク上のトラックの一例およびFig.3の1組のスキップ範囲検査レジスタを示す。
【図8】Fig.7は、Fig.1のディスク・ドライブによって実行されるファームウェア方法の1つの構成を示す。
Claims (16)
- ホスト・システムによって要求される通りにディスクの1つまたはそれ以上のトラック上の1つまたはそれ以上のセクタにデータを読み書きするように構成されたディスク・ドライブ内のディスク・ドライブ・コントローラであって、
複数のレジスタであって、当該複数のレジスタの各々は、
読出しまたは書込み動作中にスキップすべき第1セクタのセクタ・アドレスと、
前記読出しまたは書込み動作中にスキップすべき連続セクタの数を示す範囲値と、
前記ディスク・ドライブ・コントローラが前記ディスク上の1つまたはそれ以上のセクタ上のデータを前記ディスク上の他のセクタに再割当したことを示す第1再割当ビットおよび前記ディスク・ドライブ・コントローラが前記ディスク上の1つまたはそれ以上のセクタ上のデータを前記ディスク上の他のセクタに再割当していないことを示す第2再割当ビットのうちのいずれかのビットと、
を格納するように構成された、複数のレジスタと、
読出しまたは書込み動作中に、前記複数のレジスタの前記セクタ・アドレスおよび前記範囲値を使用して前記ホスト・システムの要求セクタがスキップするよう指定されたセクタであるかどうかを検査して、一範囲の連続セクタをスキップするように構成された制御回路と、
を含み、
前記複数のレジスタのうちの第1レジスタは、第1の読出しまたは書込み動作中にスキップすべき第1セクタの第1セクタ・アドレスと、当該第1の読出しまたは書込み動作中にスキップすべき連続セクタの数を示す第1の範囲値と、前記第1再割当ビットおよび前記第2再割当ビットのうちのいずれかの再割当ビットと、を格納でき、
前記複数のレジスタのうちの第2レジスタは、第2の読出しまたは書込み動作中にスキップすべき第2セクタの第2セクタ・アドレスと、当該第2の読出しまたは書込み動作中にスキップすべき連続セクタの数を示す第2の範囲値と、前記第1レジスタの再割当ビットとは異なる再割当ビットと、を格納でき、
前記制御回路は、検査結果が、前記ホスト・システムの要求セクタがスキップするよう指定されたセクタであることを示す場合において、
当該指定されたセクタが前記第1再割当ビットと対応している場合には、当該指定されたセクタが再割当されたセクタを探索する再割当割込み処理を伴う第1のスキップ処理をおこない、
当該指定されたセクタが前記第2再割当ビットと対応している場合には、前記再割当割込み処理を伴わない第2のスキップ処理をおこなう、
ディスク・ドライブ・コントローラ。 - 前記第1レジスタは、成長欠陥セクタの開始アドレスと、連続する成長欠陥セクタの数を示す範囲値と、前記第1再割当ビットと、を格納する、
請求項1に記載のディスク・ドライブ・コントローラ。 - 前記第2レジスタは、製造欠陥セクタの開始アドレスと、連続する製造欠陥セクタの数を示す範囲値と、前記第2再割当ビットと、を格納する、
請求項1または2に記載のディスク・ドライブ・コントローラ。 - 前記複数のレジスタ内のエントリは、満杯レジスタの間に空のレジスタを置かずに昇順にロードされている、
請求項1〜3のいずれかに記載のディスク・ドライブ・コントローラ。 - 前記制御回路は、前記複数のレジスタの前記セクタ・アドレスおよび前記範囲値を使用して前記ホスト・システムの要求セクタがスキップするよう指定されたセクタであるかどうかを検査するスキップ検査ステートマシンを有し、
前記スキップ検査ステートマシンは、前記ホスト・システムの要求セクタがスキップするよう指定されたセクタであり且つ当該指定されたセクタが前記第1再割当ビットと対応している場合に、処理を中断し、
前記制御回路は、前記スキップ検査ステートマシンが処理を中断したときに、再割当セクタを探索する、
請求項1〜4のいずれかに記載のディスク・ドライブ・コントローラ。 - 前記スキップ検査ステートマシンは、処理中断後、スタートコマンドを受け取るまで当該中断を維持する、
請求項5に記載のディスク・ドライブ・コントローラ。 - 前記要求セクタのデータが再割当されたセクタ・アドレスを決定して前記制御回路に送信するファームウェアと組み合わされた
請求項5または6に記載のディスク・ドライブ・コントローラ。 - 前記スキップ検査ステートマシンは、前記ホスト・システムの要求セクタがスキップするよう指定されたセクタであり且つ当該指定されたセクタが前記第2再割当ビットと対応している場合に、当該要求セクタをスキップすべき出力をし、次の要求セクタについて検査する、
請求項5〜7のいずれかに記載のディスク・ドライブ・コントローラ。 - ホスト・システムによって要求される通りにディスクの1つまたはそれ以上のトラック上の1つまたはそれ以上のセクタにデータを読み書きするように構成されたディスク・ドライブにおいて、読出しまたは書込み動作中にスキップすべき第1セクタのセクタ・アドレスと、前記読出しまたは書込み動作中にスキップすべき連続セクタの数を示す範囲値と、前記ディスク・ドライブ内のディスク・ドライブ・コントローラが前記ディスク上の1つまたはそれ以上のセクタ上のデータを前記ディスク上の他のセクタに再割当したことを示す第1再割当ビットおよび前記ディスク・ドライブ・コントローラが前記ディスク上の1つまたはそれ以上のセクタ上のデータを前記ディスク上の他のセクタに再割当していないことを示す第2再割当ビットのうちのいずれかのビットと、を各々のレジスタに格納するように構成された複数のレジスタを用いてセクタをスキップする方法であって、
読出しまたは書込み動作中に、前記複数のレジスタの前記セクタ・アドレスおよび前記範囲値を使用して前記ホスト・システムの要求セクタがスキップするよう指定されたセクタであるかどうかを検査して一範囲の連続セクタをスキップする制御工程を含み、
前記複数のレジスタのうちの第1レジスタは、第1の読出しまたは書込み動作中にスキップすべき第1セクタの第1セクタ・アドレスと、当該第1の読出しまたは書込み動作中にスキップすべき連続セクタの数を示す第1の範囲値と、前記第1再割当ビットおよび前記第2再割当ビットのうちのいずれかの再割当ビットと、を格納でき、
前記複数のレジスタのうちの第2レジスタは、第2の読出しまたは書込み動作中にスキップすべき第2セクタの第2セクタ・アドレスと、当該第2の読出しまたは書込み動作中にスキップすべき連続セクタの数を示す第2の範囲値と、前記第1レジスタの再割当ビットとは異なる再割当ビットと、を格納でき、
前記制御工程は、検査結果が、前記ホスト・システムの要求セクタがスキップするよう指定されたセクタであることを示す場合において、
当該指定されたセクタが前記第1再割当ビットと対応している場合には、当該指定されたセクタが再割当されたセクタを探索する再割当割込み処理を伴う第1のスキップ処理をおこない、
当該指定されたセクタが前記第2再割当ビットと対応している場合には、前記再割当割込み処理を伴わない第2のスキップ処理をおこなう、
方法。 - 前記第1レジスタは、成長欠陥セクタの開始アドレスと、連続する成長欠陥セクタの数を示す範囲値と、前記第1再割当ビットと、を格納する、
請求項9に記載の方法。 - 前記第2レジスタは、製造欠陥セクタの開始アドレスと、連続する製造欠陥セクタの数を示す範囲値と、前記第2再割当ビットと、を格納する、
請求項9または10に記載の方法。 - 前記複数のレジスタ内のエントリは、満杯レジスタの間に空のレジスタを置かずに昇順にロードされている、
請求項9〜11のいずれかに記載の方法。 - 前記制御工程は、前記複数のレジスタの前記セクタ・アドレスおよび前記範囲値を使用して前記ホスト・システムの要求セクタがスキップするよう指定されたセクタであるかどうかを検査する検査工程を有し、
前記検査工程は、前記ホスト・システムの要求セクタがスキップするよう指定されたセクタであり且つ当該指定されたセクタが前記第1再割当ビットと対応している場合に、処理を中断し、
前記制御工程は、前記検査工程が処理を中断したときに、再割当セクタを探索する、
請求項9〜12のいずれかに記載の方法。 - 前記検査工程は、処理中断後、スタートコマンドを受け取るまで当該中断を維持する、
請求項13に記載の方法。 - 前記要求セクタのデータが再割当されたセクタ・アドレスを決定して前記制御工程に送信する送信工程をさらに含む、
請求項13または14に記載の方法。 - 前記検査工程は、前記ホスト・システムの要求セクタがスキップするよう指定されたセクタであり且つ当該指定されたセクタが前記第2再割当ビットと対応している場合に、当該要求セクタをスキップすべき出力をし、次の要求セクタについて検査する、
請求項13〜15のいずれかに記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/326,851 US6470461B1 (en) | 1999-06-07 | 1999-06-07 | Disk drive controller circuit and method for skipping defective and/or undesired sectors |
US09/326,851 | 1999-06-07 | ||
PCT/US2000/015084 WO2000075926A1 (en) | 1999-06-07 | 2000-06-01 | Disk drive controller circuit and method for skipping defective and/or undesired sectors |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003501778A JP2003501778A (ja) | 2003-01-14 |
JP4652642B2 true JP4652642B2 (ja) | 2011-03-16 |
Family
ID=23273995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001502120A Expired - Lifetime JP4652642B2 (ja) | 1999-06-07 | 2000-06-01 | 欠陥セクタおよび/または望まれないセクタをスキップするためのディスク・ドライブ・コントローラ回路および方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6470461B1 (ja) |
EP (1) | EP1188163B1 (ja) |
JP (1) | JP4652642B2 (ja) |
KR (1) | KR100699062B1 (ja) |
AT (1) | ATE368925T1 (ja) |
AU (1) | AU5592400A (ja) |
CA (1) | CA2375672C (ja) |
DE (1) | DE60035780T2 (ja) |
WO (1) | WO2000075926A1 (ja) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE305166T1 (de) * | 1998-07-28 | 2005-10-15 | Lg Electronics Inc | Datenaufzeichnungsverfahren und gerät auf optischem aufzeichnungsmedium |
EP1130516A1 (en) * | 2000-03-01 | 2001-09-05 | Hewlett-Packard Company, A Delaware Corporation | Address mapping in solid state storage device |
JP3989665B2 (ja) * | 2000-03-03 | 2007-10-10 | 株式会社リコー | 光情報記録媒体 |
US6732292B2 (en) * | 2001-09-17 | 2004-05-04 | Seagate Technology Llc | Adaptive bi-directional write skip masks in a data storage device |
US7000067B2 (en) * | 2002-06-07 | 2006-02-14 | Seagate Technology Llc | Virtual expansion of program RAM size |
US20040015731A1 (en) * | 2002-07-16 | 2004-01-22 | International Business Machines Corporation | Intelligent data management fo hard disk drive |
US6961877B2 (en) | 2002-07-19 | 2005-11-01 | Qlogic Corporation | System and method for in-line error correction for storage systems |
JP2006134364A (ja) * | 2002-12-04 | 2006-05-25 | Matsushita Electric Ind Co Ltd | ハードディスクの情報書き込みシステム |
US7007114B1 (en) | 2003-01-31 | 2006-02-28 | Qlogic Corporation | System and method for padding data blocks and/or removing padding from data blocks in storage controllers |
US7281160B2 (en) * | 2003-02-10 | 2007-10-09 | Netezza Corporation | Rapid regeneration of failed disk sector in a distributed database system |
US7080188B2 (en) | 2003-03-10 | 2006-07-18 | Marvell International Ltd. | Method and system for embedded disk controllers |
US7039771B1 (en) | 2003-03-10 | 2006-05-02 | Marvell International Ltd. | Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers |
US7492545B1 (en) | 2003-03-10 | 2009-02-17 | Marvell International Ltd. | Method and system for automatic time base adjustment for disk drive servo controllers |
US7870346B2 (en) | 2003-03-10 | 2011-01-11 | Marvell International Ltd. | Servo controller interface module for embedded disk controllers |
US7013378B2 (en) * | 2003-04-30 | 2006-03-14 | Hewlett-Packard Development Company, L.P. | Method and system for minimizing the length of a defect list for a storage device |
EP1484667A1 (en) * | 2003-06-05 | 2004-12-08 | Deutsche Thomson-Brandt Gmbh | Method for fast verification of sector addresses |
CA2532297A1 (en) * | 2003-07-17 | 2005-01-27 | Koninklijke Philips Electronics N.V. | Device and method for recording information with reorganization of defect management information |
US7139150B2 (en) | 2004-02-10 | 2006-11-21 | Marvell International Ltd. | Method and system for head position control in embedded disk drive controllers |
US7155592B2 (en) * | 2004-05-03 | 2006-12-26 | Hitachi Global Storage Technologies Netherlands, B.V. | System and method for onboard HDD defragmentation and combining multiple G-list entries |
US8166217B2 (en) | 2004-06-28 | 2012-04-24 | Marvell International Ltd. | System and method for reading and writing data using storage controllers |
US8032674B2 (en) | 2004-07-19 | 2011-10-04 | Marvell International Ltd. | System and method for controlling buffer memory overflow and underflow conditions in storage controllers |
US9201599B2 (en) | 2004-07-19 | 2015-12-01 | Marvell International Ltd. | System and method for transmitting data in storage controllers |
US7757009B2 (en) | 2004-07-19 | 2010-07-13 | Marvell International Ltd. | Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device |
US7386661B2 (en) | 2004-10-13 | 2008-06-10 | Marvell International Ltd. | Power save module for storage controllers |
US7240267B2 (en) | 2004-11-08 | 2007-07-03 | Marvell International Ltd. | System and method for conducting BIST operations |
US7802026B2 (en) | 2004-11-15 | 2010-09-21 | Marvell International Ltd. | Method and system for processing frames in storage controllers |
US20060143506A1 (en) * | 2004-12-29 | 2006-06-29 | Lsi Logic Corporation | RAID storage controller assist circuit, systems and methods |
US7609468B2 (en) | 2005-04-06 | 2009-10-27 | Marvell International Ltd. | Method and system for read gate timing control for storage controllers |
US7774643B2 (en) * | 2006-01-06 | 2010-08-10 | Dot Hill Systems Corporation | Method and apparatus for preventing permanent data loss due to single failure of a fault tolerant array |
US7490263B2 (en) * | 2006-01-17 | 2009-02-10 | Allen King | Apparatus, system, and method for a storage device's enforcing write recovery of erroneous data |
US20070174678A1 (en) * | 2006-01-17 | 2007-07-26 | Allen King | Apparatus, system, and method for a storage device's enforcing write recovery of erroneous data |
US7924521B1 (en) * | 2007-04-10 | 2011-04-12 | Marvell International Ltd. | Data wedge format table synchronization |
US8892807B2 (en) * | 2011-04-18 | 2014-11-18 | International Business Machines Corporation | Emulating a skip read command |
US10379972B1 (en) * | 2016-11-02 | 2019-08-13 | Seagate Technology Llc | Minimizing reads for reallocated sectors |
US11042439B1 (en) * | 2016-11-07 | 2021-06-22 | Seagate Technology Llc | Efficient read and recovery with outer code |
JP2019164853A (ja) * | 2018-03-19 | 2019-09-26 | 株式会社東芝 | ディスク装置およびメディアスキャン方法 |
CN111722950B (zh) * | 2019-03-21 | 2023-08-25 | 武汉思托福科技有限公司 | 一种硬盘故障维修方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5271018A (en) * | 1990-04-27 | 1993-12-14 | Next, Inc. | Method and apparatus for media defect management and media addressing |
JP2625609B2 (ja) | 1991-07-10 | 1997-07-02 | インターナショナル・ビジネス・マシーンズ・コーポレイション | ディスク記憶装置 |
MY112118A (en) | 1993-12-23 | 2001-04-30 | Hitachi Global Storage Tech Netherlands B V | System and method for skip-sector mapping in a data recording disk drive. |
EP0718827A2 (en) | 1994-12-22 | 1996-06-26 | International Business Machines Corporation | System and method for target track determination in a data storage disk drive |
US5835930A (en) * | 1996-04-09 | 1998-11-10 | International Business Machines Corporation | One or more logical tracks per physical track in a headerless disk drive |
US5822142A (en) | 1996-07-26 | 1998-10-13 | Western Digital Corporation | Method of mapping logical sectors to physical sectors in a disk drive sparing partition |
JPH1196686A (ja) * | 1997-09-19 | 1999-04-09 | Hitachi Ltd | 回転型記憶装置 |
US6526476B2 (en) * | 1998-02-27 | 2003-02-25 | Stmicroelectronics N.V. | Defective data sector management system |
US6223303B1 (en) * | 1998-06-29 | 2001-04-24 | Western Digital Corporation | Disk drive having two tiered defect list comprising marginal and reserved data sectors |
US6279089B1 (en) * | 1999-04-12 | 2001-08-21 | Western Digital Technologies, Inc. | Defective data site management through a shared defect management table |
-
1999
- 1999-06-07 US US09/326,851 patent/US6470461B1/en not_active Expired - Lifetime
-
2000
- 2000-06-01 CA CA002375672A patent/CA2375672C/en not_active Expired - Fee Related
- 2000-06-01 JP JP2001502120A patent/JP4652642B2/ja not_active Expired - Lifetime
- 2000-06-01 AU AU55924/00A patent/AU5592400A/en not_active Abandoned
- 2000-06-01 DE DE60035780T patent/DE60035780T2/de not_active Expired - Lifetime
- 2000-06-01 EP EP00941177A patent/EP1188163B1/en not_active Expired - Lifetime
- 2000-06-01 WO PCT/US2000/015084 patent/WO2000075926A1/en active IP Right Grant
- 2000-06-01 KR KR1020017015758A patent/KR100699062B1/ko active IP Right Grant
- 2000-06-01 AT AT00941177T patent/ATE368925T1/de not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
DE60035780D1 (de) | 2007-09-13 |
KR20020011996A (ko) | 2002-02-09 |
CA2375672A1 (en) | 2000-12-14 |
US6470461B1 (en) | 2002-10-22 |
AU5592400A (en) | 2000-12-28 |
JP2003501778A (ja) | 2003-01-14 |
WO2000075926A1 (en) | 2000-12-14 |
KR100699062B1 (ko) | 2007-03-27 |
EP1188163A1 (en) | 2002-03-20 |
CA2375672C (en) | 2009-08-18 |
EP1188163B1 (en) | 2007-08-01 |
DE60035780T2 (de) | 2007-12-06 |
ATE368925T1 (de) | 2007-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4652642B2 (ja) | 欠陥セクタおよび/または望まれないセクタをスキップするためのディスク・ドライブ・コントローラ回路および方法 | |
US6735678B2 (en) | Method and apparatus for disc drive defragmentation | |
US4935825A (en) | Cylinder defect management system for data storage system | |
US5835930A (en) | One or more logical tracks per physical track in a headerless disk drive | |
US8837069B2 (en) | Method and apparatus for managing read or write errors | |
US9619178B2 (en) | Hybrid storage apparatus and logical block address assigning method | |
US7373477B2 (en) | Fragmentation executing method and storage device | |
KR20040073593A (ko) | 데이터 기억 장치 및 데이터 기억 장치를 다루는 방법 | |
JPH02263362A (ja) | 記録媒体上のデータをアクセスする方法およびその方法を使用したデータ記録装置 | |
US20010044873A1 (en) | Defective data sector management system | |
US7143309B2 (en) | Information storage apparatus that can relocate data to be stored in defective sectors | |
US7035994B2 (en) | Storage device, information processing system having storage device, format method for storage device, data recording method, and program for implementing formatting and data recording | |
US6693754B2 (en) | Method and apparatus for a disc drive adaptive file system | |
US6301644B1 (en) | Method for managing defect sectors of information storage medium, and apparatus for use with the method | |
WO2009123603A1 (en) | Systems and methods for accessing hard disk drives | |
US20160034330A1 (en) | Information-processing device and method | |
US7433149B1 (en) | Media surface with servo data in customer data region | |
US7117387B2 (en) | Method and apparatus for writing data and validating data in a recording medium | |
US20030105919A1 (en) | Reducing delay of command completion due to overlap condition | |
JPH06332622A (ja) | 情報処理装置 | |
JP4301026B2 (ja) | データ記録装置及びデータ記録方法、並びに記録再生システム | |
JP2576412B2 (ja) | 磁気ディスク装置 | |
JPH0883151A (ja) | 磁気ディスク装置 | |
JPH02179969A (ja) | 磁気ディスク制御装置に関する交代トラック処理方式 | |
JPH05109191A (ja) | フオーマツト機能を備えたデイスク装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20060801 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060823 |
|
RD05 | Notification of revocation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7425 Effective date: 20060823 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070316 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091102 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091110 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100810 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101110 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101207 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101216 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4652642 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131224 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
EXPY | Cancellation because of completion of term | ||
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |