(57)【特許請求の範囲】
【請求項１】
ディスクの記録面上に欠陥セクタが存在した場合に、その欠陥セクタを前記ディスク上の代替領域に再配置することで、前記欠陥セクタのアクセス時にはその再配置情報に従って前記再配置されたデータをアクセスすることが可能なディスク装置において、
前記代替領域に再配置されたデータを保持するためのディフェクト保持領域が確保された高速メモリと、
前記代替領域に再配置されたデータを予め前記ディスクから前記ディフェクト保持領域にセクタ単位でコピーしておく再配置データコピー処理手段であって、前記代替領域に再配置されたデータの総量が前記ディフェクト保持領域の容量より大きい場合には、前記各欠陥セクタとその再配置先との物理的距離が大きい順に前記ディフェクト保持領域が満杯になるまで対応する前記再配置されたデータをコピーする再配置データコピー処理手段と、
ホスト装置から与えられる欠陥セクタを含むディスク領域を対象とするリードコマンドの実行時には、前記欠陥セクタの再配置データを前記ディフェクト保持領域から読み出して前記ホスト装置に転送する再配置データ読み出し・転送手段とを具備することを特徴とするディスク装置。
【請求項２】
ディスクの記録面上に欠陥セクタが存在した場合に、その欠陥セクタを前記ディスク上の代替領域に再配置することで、前記欠陥セクタのアクセス時にはその再配置情報に従って前記再配置されたデータをアクセスすることが可能なディスク装置における欠陥による再配置データの高速ホスト転送方法であって、
前記代替領域に再配置されたデータの総量が高速メモリに確保されたディフェクト保持領域の容量より大きいかを判定し、
前記代替領域に再配置されたデータの総量が前記ディフェクト保持領域の容量より大きい場合には、前記各欠陥セクタとその再配置先との物理的距離が大きい順に前記代替領域に再配置された対応するデータを前記ディフェクト保持領域に当該ディフェクト保持領域が満杯になるまで前記ディスクからセクタ単位で予めコピーしておき、
前記代替領域に再配置されたデータの総量が前記ディフェクト保持領域の容量より大きくない場合には、前記代替領域に再配置された全てのデータを前記ディフェクト保持領域に前記ディスクからセクタ単位で予めコピーしておき、
ホスト装置から与えられる欠陥セクタを含むディスク領域を対象とするリードコマンドの実行時には、前記欠陥セクタの再配置データを前記ディフェクト保持領域から読み出して前記ホスト装置に転送するようにしたことを特徴とする欠陥による再配置データの高速ホスト転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスクの記録面上に欠陥セクタが存在した場合に、その欠陥セクタが代替領域に再配置されるディスク装置に係り、特にその欠陥セクタを含む領域に対するリードアクセス要求を実行するのに好適なディスク装置及び同装置における欠陥による再配置データの高速ホスト転送方法に関する。
【０００２】
【従来の技術】
一般に、ヘッドにより、記録媒体としての記録単板、即ちディスク（ディスク媒体）に対するデータの記録再生が行われるディスク装置、例えば磁気ディスク装置では、ディスク（磁気ディスク）の記録面上に欠陥（ディフェクト）が存在した場合、パーソナルコンピュータなどのホスト装置（ホストシステム）にその旨を通知することなく、欠陥領域をセクタ（データセクタ）単位でディスク上の代替領域に再配置する再配置処理（代替処理）が行われる。この再配置処理により、ホスト装置はディスク上の欠陥領域を意識することなく、欠陥セクタを含む領域を連続的にアクセス（書き込み／読み出し）することができる。
【０００３】
ここで、欠陥領域と判断されて代替領域に再配置されたセクタ（欠陥セクタ）を含む領域に対するアクセスコマンド、例えばリードコマンドを、磁気ディスク装置がホスト装置から受け取った場合の、従来の磁気ディスク装置のデータアクセス手順を、図１３のヘッド（磁気ヘッド）移動経路を示す図、及び図１４のフローチャートを参照して説明する。
【０００４】
磁気ディスク装置は、ホスト装置からリードコマンドを受信すると（ステップＳ４１）、当該コマンドで指定された図１３に示すディスク（磁気ディスク）１００上の領域（読み出し指定範囲）１１０へのリード動作を次の手順で開始する（ステップＳ４２）。
【０００５】
まず磁気ディスク装置は、ホスト装置からのリードコマンドで指定された、欠陥セクタ１１１を含むトラックへ磁気ヘッドを移動する（経路ｂ１）。次に磁気ディスク装置は、ホスト装置から指定された読み出し指定範囲１１０の先頭セクタ位置が来るまで、ディスク１００の回転待ちをする（経路ｂ２）。次に磁気ディスク装置は、欠陥セクタ１１０の直前までアクセス（リード動作）を行う（経路ｂ３）。
【０００６】
このようにして、リード動作を開始（ステップＳ４２）して、欠陥セクタ１１０の直前までリード動作を行うと、磁気ディスク装置は、その欠陥１１０の直前の位置ｂ４でリード動作を一旦中断する（ステップＳ４３）。
【０００７】
次のステップＳ４４では、磁気ディスク装置は、目的の再配置されたセクタ１１３を含む代替領域１１２のあるトラックへ磁気ヘッドを移動し（経路ｂ５）、更に次のステップＳ４５では、当該セクタ１１３が来るまでディスク１００の回転待ちをする（経路ｂ６）。
【０００８】
次のステップＳ４６では、磁気ディスク装置は、（欠陥セクタ１１１の代替セクタである）再配置セクタ１１３のリード動作を行い（経路ｂ７）、当該セクタ１１３の終端の位置ｂ８でリード動作を一旦中断する。
【０００９】
次のステップＳ４７では、磁気ディスク装置は、欠陥セクタ１１１のある元のトラックへ磁気ヘッドを移動し（経路ｂ９）、更に次のステップＳ４８では、当該欠陥セクタ１１１の直後のセクタ位置までディスク１００の回転待ちをする（経路ｂ１０）。
【００１０】
次のステップＳ４９では、磁気ディスク装置は、欠陥セクタ１１１の直後のセクタから読み出し指定範囲１１０内の最後のセクタまでのリード動作を行う（経路ｂ１１）。
【００１１】
【発明が解決しようとする課題】
上記したように従来技術においては、代替領域を別途アクセスするために、アクセスの中断、ヘッド移動等の動作が必要であり、ホスト装置から指定されたアクセス範囲に欠陥セクタが含まれていない場合のアクセスに対して実行時間が著しく増加するという問題があった。また、このことが、磁気ディスク装置のパフォーマンスの低下や機体（磁気ディスク装置）間のパフォーマンスのばらつきの原因となっていた。
【００１２】
本発明は上記事情を考慮してなされたものでその目的は、欠陥セクタを含む領域に対するリードアクセスがホスト装置から要求された場合、その要求されたデータを高速でホスト装置に転送できるディスク装置及び同装置における欠陥による再配置データの高速ホスト転送方法を提供することにある。
【００１３】
【課題を解決するための手段】
本発明のディスク装置は、ディスクの記録面上に欠陥セクタが存在した場合に、その欠陥セクタをディスク上の代替領域に再配置することで、上記欠陥セクタのアクセス時にはその再配置情報に従って上記再配置されたデータをアクセスすることが可能なディスク装置において、上記代替領域に再配置されたデータを保持するためのディフェクト保持領域が確保された高速メモリと、上記代替領域に再配置されたデータを予め上記ディスクから上記ディフェクト保持領域にセクタ単位でコピーしておく再配置データコピー処理手段と、ホスト装置から与えられる欠陥セクタを含むディスク領域を対象とするリードコマンドの実行時には、上記欠陥セクタの再配置データを上記ディフェクト保持領域から読み出して上記ホスト装置に転送する再配置データ読み出し・転送手段とを備えたことを特徴とする。
【００１４】
このように、代替領域に再配置されたデータを予め高速なメモリ上にコピーして保持し、ホスト装置からの欠陥セクタを含むディスク領域を対象とするリードコマンドに対して代替領域をアクセスすることなく、メモリに保持されている再配置データを読み込んでホスト装置に転送することにより、欠陥セクタ直前のデータ読み出し後の代替領域に対するアクセス動作、即ちヘッドの移動、ヘッドが目標領域に達するまでのディスク回転待ちと代替領域から欠陥セクタ直後までの同様なアクセス動作を省略することができるため、欠陥セクタを含む領域に対するホストからのリードコマンドの実行時間を短縮することができる。
【００１５】
また本発明は、上記ディスク装置における再配置データコピー処理手段が、ディスク装置の初期化動作時に起動される構成としたことをも特徴とする。
このように、ディスク装置の初期化時、例えば電源投入時とか、ホスト装置からのハードウェアリセット信号の入力時に、再配置データをメモリ上のディフェクト保持領域にコピーする（読み込む）ことにより、この動作がホスト装置からのコマンドと衝突することによるパフォーマンスの低下を招くことなく、再配置データをディフェクト保持領域に保持することが可能となる。
【００１６】
また本発明は、上記再配置データコピー処理手段による再配置データのコピー処理にあっては、上記代替領域に再配置されたデータの総量が上記ディフェクト保持領域の容量より大きい場合には、上記各欠陥セクタとその再配置先との物理的距離が大きい順に上記ディフェクト保持領域が満杯になるまで対応する再配置データをコピーするようにしたことをも特徴とする。
【００１７】
このように、多数の欠陥セクタが存在する場合でも、代替領域へのヘッドの移動量が小さい欠陥セクタの再配置データを優先的にディフェクト保持領域にへ辞することにより、パフォーマンスの低下を最小限に抑えることができる。
【００１８】
また本発明は、ディスク装置の初期化動作以後の上記各欠陥セクタへのアクセス回数を管理するアクセス回数管理手段を設け、ディフェクト保持領域が満杯の状態において、当該ディフェクト保持領域に再配置データがコピーされていない欠陥セクタの中に、当該ディフェクト保持領域に再配置データがコピーされている欠陥セクタよりアクセス回数が多い欠陥セクタがある場合には、そのアクセス回数が少ない欠陥セクタの再配置データに代えて、上記再配置データコピー処理手段が、そのアクセス回数が多い欠陥セクタの再配置データをディフェクト保持領域にコピーするようにしたことをも特徴とする。
【００１９】
このように、ディフェクト保持領域が満杯の場合には、当該ディフェクト保持領域には、常にアクセス回数が多い欠陥セクタの再配置データが保持されるようにすることで、パフォーマンスの低下を最小限に抑えることができる。
【００２０】
また本発明は、新たな欠陥セクタが代替領域に再配置される毎に、その再配置データを上記再配置データコピー処理手段が上記ディフェクト保持領域にコピーするようにしたことをも特徴とする。
【００２１】
このように代替領域への再配置直後に、その再配置データをディフェクト保持領域に読み込むことにより、改めて代替領域をアクセスして再配置データを読み込む動作が省略される上に、常に最新の再配置状況をディフェクト保持領域に反映することができる。但し、ディフェクト保持領域が満杯の場合には、この処理が適用できない。
【００２２】
そこで本発明は、新たな欠陥セクタが上記代替領域に再配置された際に、上記ディフェクト保持領域が満杯の場合には、当該ディフェクト保持領域にコピーされている再配置データのうち、一度もアクセスされたことのない再配置データがあれば、そのデータに代えて、一度もアクセスされたことのない再配置データがなければ、最も以前にアクセスされた再配置データに代えて、上記再配置データコピー処理手段が、新たな欠陥セクタの再配置データを当該ディフェクト保持領域にコピーするようにしたことを特徴とする。
【００２３】
このように、代替領域への再配置直後に、その再配置データをディフェクト保持領域に読み込もうとしても、当該ディフェクト保持領域が満杯の場合には、当該ディフェクト保持領域に保持されている再配置データの中で最も利用されそうもない再配置データを選んで、新たに再配置されたデータと置き換えることで、パフォーマンスの低下を最小限に抑えることができる。
【００２４】
【発明の実施の形態】
以下、本発明を磁気ディスク装置に適用した実施の形態につき図面を参照して説明する。
図１は本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図である。
【００２５】
図１において、１０はデータが記録される媒体であるディスク（磁気ディスク）、７はディスク１０へのデータ書き込み（データ記録）及びディスク１０からのデータ読み出し（データ再生）に用いられるヘッド（磁気ヘッド）である。このヘッド７は、ディスク１０の各記録面に対応してそれぞれ設けられているものとする。なおディスク１０は、本実施形態では単一枚であるとするが、複数枚積層して設けられることもある。
【００２６】
ディスク１０の両面には同心円状の多数のトラックが形成され、各トラックには、位置決め制御等に用いられる（シリンダ番号を示すシリンダコード、当該シリンダコードの示すシリンダ内の位置誤差を波形の振幅で示すためのバーストデータを含む）サーボデータが記録された複数のサーボエリアが等間隔で配置されている。これらのサーボエリアは、ディスク１０上では中心から各トラックを渡って放射状に配置されている。サーボエリア間はデータエリア（ユーザエリア）となっており、当該データエリアには複数のデータセクタが設定される。
【００２７】
ディスク１０の記録面の所定の領域（システム領域）には、当該記録面での欠陥セクタとその代替先（再配置先）セクタ等を示す欠陥セクタ再配置情報（以下、ディフェクトマップと称する）が保存されている。
【００２８】
ディスク１０はスピンドルモータ（ＳＰＭ）１１により高速に回転する。ヘッド７はキャリッジ機構９と称するヘッド移動機構に取り付けられて、このキャリッジ機構９の移動によりディスク１０の半径方向に移動する。キャリッジ機構９は、ボイスコイルモータ（ＶＣＭ）１３により駆動される。
【００２９】
ＳＰＭ１１は、当該ＳＰＭ１１に制御電流を流して当該ＳＰＭ１１を駆動するためのＳＰＭドライバ１２に接続され、ＶＣＭ１３は、当該ＶＣＭ１３に制御電流を流して当該ＶＣＭ１３を駆動するためのＶＣＭドライバ１４に接続されている。上記制御電流の値（制御量）は、ＣＰＵ（マイクロプロセッサ）３の計算処理で決定される。
【００３０】
ヘッド７は例えばフレキシブルプリント配線板（ＦＰＣ）に実装されたヘッドアンプ回路８と接続されている。ヘッドアンプ回路８は、ヘッド７の切り替え、ヘッド７との間のリード／ライト信号の入出力等を司るもので、ヘッド７で読み取られたアナログ出力を増幅するヘッドアンプ（プリアンプ）、及びＲ／Ｗ回路６から送られてくる書き込みデータに従いヘッド７にライト信号（ライト電流）を出力するライトドライバ（いずれも図示せず）を有している。
【００３１】
Ｒ／Ｗ回路（リード／ライト回路）６は、ヘッド７によりディスク１０から読み取られてヘッドアンプ回路８（内のヘッドアンプ）により増幅されたアナログ出力（ヘッド７のリード信号）を入力してデータ再生動作に必要な信号処理を行うデコード機能（リードチャネル）と、ディスク１０へのデータ記録に必要な信号処理を行うエンコード機能（ライトチャネル）と、ヘッド位置決め制御等のサーボ処理に必要なサーボデータ中のバーストデータを抽出する処理を行う信号処理機能とを有する。
【００３２】
サーボ処理回路１５は、Ｒ／Ｗ回路６で再生されたデータを受けてサーボ処理に必要な信号処理を実行する。即ちサーボ処理回路１５は、Ｒ／Ｗ回路６で再生されたデータからサーボエリアの期間だけ有効（真）となる周知のタイミング信号であるサーボゲート等のタイミング生成機能、サーボエリアに記録されているサーボデータ中のシリンダコードを抽出・復号するデコード機能を有する。
【００３３】
ＧＡ（ゲートアレイ）５は、Ｒ／Ｗ回路６及びサーボ処理回路１５とＨＤＣ１及びＣＰＵ３との間の情報の受け渡しを行う他、サーボ処理回路１５で生成されたサーボゲートのタイミングの監視、該当するサーボエリアに後続するデータエリアに配置されるデータセクタの位置情報をＨＤＣ１に通知するなどの機能を有する。
【００３４】
ＣＰＵ３は、例えばワンチップのマイクロプロセッサである。このＣＰＵ３は、ＲＯＭ４に格納されている制御プログラムに従って磁気ディスク装置内の各部を制御する。即ちＣＰＵ３は、サーボ処理回路１５により抽出されたサーボデータ中のシリンダコード及びＲ／Ｗ回路６により抽出されたサーボデータ中のバーストデータに従ってＶＣＭドライバ１４を駆動制御することでヘッド７を目標シリンダ（トラック）位置に移動させるためのシーク・位置決め制御、ＨＤＣ１を制御することによるリード／ライトデータの転送制御などの制御を行う。
【００３５】
ＣＰＵ３には、磁気ディスク装置全体を制御するための制御プログラム（ファームウェア）等が格納されているＲＯＭ（Read Only Memory）４と、ＨＤＣ（ディスクコントローラ）１とが接続されている。
【００３６】
ＨＤＣ１は、ホストインタフェースの規格に従ってホスト装置との間のコマンド、データの通信を制御するホストインタフェース機能と、バッファ２の管理を行うバッファ管理制御機能と、Ｒ／Ｗ回路６、ヘッドアンプ回路８を介して行われるディスク１０を対象とするリードとライトのタイミングを制御するディスク制御機能を有する。
【００３７】
バッファ２は高速メモリ、例えばＲＡＭ構成のバッファメモリである。バッファ２には、図２に示すように、バッファ領域２１、ディフェクトマップ領域２２、及びディフェクト保持領域２３の各領域が確保されている。
【００３８】
バッファ領域２１は、ディスク１０から読み出したデータ、及びホスト装置から転送されたディスク１０への書き込みデータを一時格納するのに用いられるキャッシュ領域を提供する。
【００３９】
ディフェクトマップ領域２２は、当該記録面での欠陥セクタとその代替先（再配置先）セクタ等を示すディフェクトマップを格納するための領域であり、ディスク１０の各記録面（ヘッド）毎に、欠陥セクタが存在するシリンダを示すシリンダ情報と、そのシリンダ上の欠陥セクタの情報の格納先へのポインタ情報を登録するシリンダ情報領域２２１と、シリンダ情報領域２２１内のシリンダ情報で示されるシリンダ上の欠陥セクタに関する情報を登録するセクタ情報領域２２２とからなる。
【００４０】
セクタ情報領域２２２には、各欠陥セクタ毎に、その欠陥セクタ（代替元セクタ）の情報２２２ａと、その欠陥セクタの代替先セクタ（再配置セクタ）の情報２２２ｂと、その欠陥セクタのディフェクトの種別２２２ｃに加えて、その欠陥セクタ（の代替先セクタ）へのアクセス回数２２２ｄと、コピーフラグ２２２ｅの各情報が登録される。このコピーフラグ２２２ｅは、再配置先のデータがバッファ２内の後述するディフェクト保持領域２３（内の再配置データコピー領域２３２）にコピーされているか否かを示す。
【００４１】
ディフェクトマップ領域２２に格納されるディフェクトマップは、磁気ディスク装置の初期化動作時（例えば装置の電源投入時や、ホスト装置からのハードウェアリセット信号の入力時）に、ディスク１０のシステム領域から読み出されるものである。但し、各欠陥セクタ毎のセクタ情報中の、上記アクセス回数２２２ｄ及びコピーフラグ２２２ｅは、ディフェクトマップ領域２２に固有のもので、ディスク１０のシステム領域から読み出されたディフェクトマップ中の各欠陥セクタ毎のセクタ情報に付加されるものである。
【００４２】
ディフェクトマップ領域２２内のディフェクトマップは、ホスト装置からディスクアクセスが要求された場合に、要求されたアクセス範囲に欠陥セクタが含まれているか否かの判断と、含まれている場合には、その欠陥セクタの位置の検出と、対応する再配置セクタのデータがディフェクト保持領域２３（内の再配置データコピー領域２３２）にコピーされているか否かの判断等に用いられる。
【００４３】
また、新たに欠陥セクタが検出されて、代替セクタへの再配置処理がなされた場合には、その欠陥セクタに関する情報のディフェクトマップへの登録、即ちディフェクトマップの更新は、バッファ２内のディフェクトマップ領域２２とディスク１０のシステム領域の両方に対して行われる。
【００４４】
次にディフェクト保持領域２３は、テーブル領域２３１、及び再配置データコピー領域２３２からなる。再配置データコピー領域２３２は、１セクタ分のサイズ（例えば５１２バイト）を単位に分割して使用され、その１セクタ分の分割領域に、ディスク１０上の欠陥セクタの再配置先のデータ、即ち再配置セクタ（代替先セクタ）のデータがコピーされる。テーブル領域２３１は、再配置データコピー領域２３２内のいずれの位置（分割領域）に、いずれの再配置セクタのデータがコピー（格納）されているかを示す、コピー先の位置情報と、再配置セクタを示す再配置セクタ情報とからなるテーブル情報を、各再配置セクタ毎に登録するのに用いられる。ここで再配置セクタ情報は、再配置セクタのセクタ番号と、再配置セクタが存在するシリンダ及びヘッドを示す情報からなる。
【００４５】
次に、図１の構成の磁気ディスク装置の動作を説明する。
（Ａ）再配置セクタデータコピー処理
まず、ディスク１０上の代替領域に保存されている再配置セクタのデータをバッファ２上に確保されたディフェクト保持領域２３にコピーする再配置セクタデータコピー処理を例に、図３を参照して説明する。
【００４６】
今、ディスク１０上の通常の記録領域のあるシリンダ上のセクタ＃３が欠陥セクタであり、その欠陥セクタ＃３がディスク１０に予め用意されている代替領域内の１つの代替セクタ（再配置セクタ）に再配置されているものとする。
【００４７】
このような状態で、装置の電源が投入されるか、或いはホスト装置からのハードウェアリセット信号が入力されると、ＣＰＵ３は磁気ディスク装置内の各部を初期化する初期化動作を開始する。この初期化動作においてＣＰＵ３は、ディスク１０上のシステム領域に保存されているディフェクトマップを読み出してバッファ２のディフェクトマップ領域２２に格納するディフェクトマップコピー処理を、ＨＤＣ１を制御することで実行する。このとき、ディフェクトマップ領域２２に格納されるディフェクトマップ中の各欠陥セクタ毎のセクタ情報には、アクセス回数０を示すアクセス回数２２２ｄ及び未コピーを示すコピーフラグ２２２ｅの両情報が付加される。
【００４８】
また、上記の電源投入時、或いはハードウェアリセット信号入力時には、即ち磁気ディスク装置の初期化動作時には、ＣＰＵ３は、ディスク１０上の代替領域に保存されている再配置セクタのデータを、バッファ２のディフェクト保持領域２３内に確保されている再配置データコピー領域２３２にセクタ単位でコピーする処理をＨＤＣ１を制御して行う。同時にＣＰＵ３は、コピーした再配置セクタの情報とコピー先の位置情報からなるテーブル情報を、各再配置セクタ毎にテーブル領域２３１に登録する処理を行う。更にＣＰＵ３は、ディフェクトマップ領域２２に格納されているディフェクトマップ中の各欠陥セクタ毎のセクタ情報のうち、コピーした再配置セクタに対応する欠陥セクタに関するセクタ情報に付加されているコピーフラグ２２２ｅをコピー済みを示す状態に設定する。
【００４９】
ここでディフェクトマップの示す全再配置セクタのデータの総量が再配置データコピー領域２３２の容量より大きい場合には、後述する方法で最適なコピー対象再配置セクタを選択する。
【００５０】
さて本実施形態では、上記のコピー処理は、新たに欠陥セクタであることが検出されて、代替セクタへの再配置が行われた直後にも行われる。即ちＣＰＵ３は、再配置が行われた代替セクタ、即ち再配置セクタのデータを再配置データコピー領域２３２内の空き領域にコピーすると共に、コピーした再配置セクタの情報とコピー先の位置情報からなるテーブル情報をテーブル領域２３１に登録する処理を、ＨＤＣ１を制御することで実行する。
【００５１】
このようにして、バッファ領域２１のディフェクト保持領域２３内に確保された再配置データコピー領域２３２のある１セクタ分の領域には、ディスク１０上の上記セクタ＃３の再配置セクタのデータがコピーされ、その再配置セクタとコピー先を示すテーブル情報がテーブル領域２３１に格納されているものとする。
【００５２】
（Ｂ）リードコマンド受信時動作
次に、ホスト装置から、再配置された欠陥セクタを含む領域に対するリードコマンドが発行された場合の動作を、（ｂ１）ＨＤＣへの飛ばし読みセクタの設定、及び（ｂ２）リード動作に分けて、図４のフローチャートを適宜参照しながら説明する。
【００５３】
（ｂ１）ＨＤＣへの飛ばし読みセクタの設定
まず、再配置された欠陥セクタを含む領域に対するリードコマンドを受信した場合に行われる、ＨＤＣ１への飛ばし読みセクタの設定動作について説明する。
【００５４】
今、ホスト装置から、図３に示したような再配置された欠陥セクタ＃３を含む領域に対するリードコマンドが図１の磁気ディスク装置に対して発行され、そのリードコマンドを磁気ディスク装置内のＨＤＣ１が受信したものとする（ステップＳ１）。
【００５５】
ＣＰＵ３は、ＨＤＣ１により受信されたリードコマンドを受け取ると、バッファ２のディフェクトマップ領域２２に格納されているディフェクトマップをもとに、当該リードコマンドの指定する読み出し対象領域内に代替領域に再配置された欠陥セクタが含まれているか否かを判断し、含まれているならば、その欠陥セクタの代替先セクタのデータ（再配置セクタデータ）がディフェクト保持領域２３にコピーされているか否かを判断する。ここでは、読み出し対象領域内に欠陥セクタ＃３が含まれており、しかも当該欠陥セクタ＃３の再配置セクタのデータがディフェクト保持領域２３（内の再配置データコピー領域２３２）にコピーされていると認識する。同時にＣＰＵ３は、ディフェクトマップ領域２２に格納されているディフェクトマップ中の欠陥セクタ＃３に関するセクタ情報に付加されているアクセス回数２２２ｄを１インクリメントする。
【００５６】
さてＣＰＵ３は、読み出し対象領域内に欠陥セクタ＃３が含まれており、且つ当該欠陥セクタ＃３の再配置セクタのデータがディフェクト保持領域２３にコピーされていると判断した場合、ＨＤＣ１に対して、当該欠陥セクタ＃３を、図５に示すように、飛ばし読みの対象セクタとして設定すると共に、飛ばし読みした段階でホスト装置へのデータ転送を一時中断するように設定する。またＣＰＵ３は、ディフェクト保持領域２３内のテーブル領域２３１を参照して、再配置セクタ＃３のデータがコピーされている再配置データコピー領域２３２内の先頭位置を特定しておく。
【００５７】
（ｂ２）リード動作
次に、上記（ｂ１）の設定動作に続くリード動作について上記図４のフローチャートの他に図５乃至図９を参照して説明する。なお、図９は、従来の技術の説明で参照した図１３と同様のヘッド移動経路を示すものである。
【００５８】
まずＣＰＵ３は、ホスト装置からのリードコマンドの実行の前処理として上記（ｂ１）の設定動作を行うと、リードコマンドの指定するリード動作を次の手順で開始する（ステップＳ２）。ここでのリード動作は、ディスク１０上の指定された領域のデータを読み出すディスク読み出し動作と、ディスク１０から読み出したデータをホスト装置に転送するホスト転送動作とからなる。
【００５９】
まずＣＰＵ３は、ヘッド７を、現在位置から、リードコマンドで指定された図９に示すディスク１０上の読み出し指定範囲（読み出し対象領域）９０が存在するトラックへ移動する（経路ａ１）。この読み出し指定範囲９０には、先に飛ばし読みが設定された欠陥セクタ＃３である欠陥セクタ９１が含まれているものとする。
【００６０】
読み出し指定範囲９０が存在するトラックへヘッド７を位置決めできると、ＨＤＣ１は、当該読み出し指定範囲９０の先頭セクタ位置が来るまで、ディスク１０の回転待ちをする（経路ａ２）。
【００６１】
次にＨＤＣ１は、欠陥セクタ９１（＃３）の直前まで、セクタ単位でディスク１０からのデータ読み出しを行い（経路ａ３）、その読み出したデータをセクタ単位でバッファ２のバッファ領域２１に格納しながら、当該バッファ領域２１に格納したデータをホスト装置に転送する。この様子を図６に示す。ここでは、セクタ＃１，＃２の２セクタからのディスク読み出しが行われて、そのリードデータがホスト装置に転送される例が示されている。
【００６２】
ＨＤＣ１は、欠陥セクタ９１（＃３）の直前のセクタ（＃２）のデータをホスト装置に転送した時点で、先のＣＰＵ３からの設定に従って図７に示すようにホスト転送のみを中断する。
【００６３】
このように、リード動作が開始（ステップＳ２）され、欠陥セクタ９１（＃３）の直前までセクタ単位でデータをホスト装置に転送したところで、ホスト転送が一旦中断される（ステップＳ３）。本実施形態において、ＨＤＣ１でのディスク読み出しは、同じＨＤＣ１でのホスト転送とは独立して動作している。このため、ホスト転送の中断の間に、欠陥セクタ９１（＃３）の飛ばし読みが行われ（経路ａ４）、バッファ領域２１には欠陥セクタ９１（＃３）の直後のセクタ（＃４）のデータが読み出されることになる。
【００６４】
ＣＰＵ３は、欠陥セクタ９１（＃３）の直前のセクタ（＃２）のデータがホスト装置に転送された時点で、ホスト装置への転送元を、ディフェクト保持領域２３の再配置データコピー領域２３２にコピーされている欠陥セクタ９１（＃３）の再配置データの先頭位置、即ち先に特定しておいた位置に切り替え、その再配置データコピー領域２３２からの１セクタ分の再配置データ（再配置セクタデータ）のホスト転送後に、ホスト転送を中断するようにＨＤＣ１に設定する。
【００６５】
これによりＨＤＣ１は、図７に示すように、再配置データコピー領域２３２にコピーされていた欠陥セクタ９１（＃３）の再配置データをホスト装置へ転送し（ステップＳ４）、しかる後にホスト転送を中断する（経路ａ５）。これと並行してＨＤＣ１では、図７に示すように、欠陥セクタ９１（＃３）の直後のセクタ（＃４…）のデータがバッファ領域２１に読み出される（経路ａ６）。
【００６６】
次にＨＤＣ１は、再配置セクタデータをホスト装置に転送した時点で、先のＣＰＵ３からの設定に従って、ホスト転送を中断する。
するとＣＰＵ３は、ホスト装置への転送元を、欠陥セクタ９１（＃３）の直後のセクタ（＃４）の位置とするようにＨＤＣ１に設定し、ＨＤＣ１によるホスト転送を再開させる。
【００６７】
先に述べたように、ＨＤＣ１ではホスト転送とディスク読み出しとが独立して動作するため、バッファ領域２１には、当該バッファ領域２１からのホスト転送の中断の間に、欠陥セクタ９１（＃３）の直後のセクタ（＃４…）のデータが読み出されている。したがって、ＣＰＵ３からのホスト転送再開指示により、既にバッファ領域２１に読み出されている欠陥セクタ９１（＃３）の直後のセクタ（＃４…）から、図８に示すようにホスト装置への転送を再開する（ステップＳ５）（経路ａ７）。
【００６８】
その後、ＨＤＣ１は、読み出し指定範囲９０の最終セクタまでディスク読み出し並びに読み出したセクタデータのホスト転送を行う（経路ａ８）。
そして最終セクタのデータがホスト装置に転送された段階で一連のリード動作は終了となる。
【００６９】
以上に述べた上記（ｂ２）のリード動作によれば、図９と図１３とを比較すれば明らかなように、ヘッドの移動距離が大幅に短縮されている。
周知のように、ディスクアクセス動作に要する時間のうちで高い比率を占めるのは、目標トラックへヘッドを移動させる動作（シーク動作）と、磁気ヘッドが目標セクタの存在する位置に来るまで待つディスクの回転待ち時間である。
【００７０】
従来技術では、図１３に示されているように、再配置セクタデータをアクセスする場合には、欠陥セクタのない場合に比べて２回多いシーク動作と２回多い回転待ち動作が発生するため、多くの余分な時間を必要としていた。
【００７１】
これに対して本実施形態では、代替領域に再配置されたデータを予めバッファ領域２１内のディフェクト保持領域２３にコピーして保持し、ホスト装置からの欠陥セクタを含むディスク領域を対象とするリードコマンドに対して代替領域をアクセスすることなく、ディフェクト保持領域２３に保持されている再配置データを読み込んでホスト装置に転送することにより、欠陥セクタ直前のデータ読み出し後の代替領域に対するアクセス動作、即ちヘッドの移動、ヘッドが目標領域に達するまでのディスク回転待ちと代替領域から欠陥セクタ直後までの同様なアクセス動作を省略することができるため、図９に示されているように、これらの余分な時間をほぼ０にすることができる。
【００７２】
これは、大別して以下の３つの理由による。
（１）ディスクアクセス（ディスク読み出し）とホスト転送は独立に並行して行われる。
【００７３】
（２）ホスト転送位置変更動作、転送中断／再開動作に要する時間は、ディスクアクセス動作に比較して十分短い。
（３）たとえ上記（２）の動作に多くの時間が必要であったとしても、ホスト転送の方がディスクアクセスより高速な場合、一旦遅れたホスト転送がディスクアクセスに追いつく形となり、遅延時間がキャンセルされる。
【００７４】
以上のことから、本実施例においては、欠陥セクタを含むディスク領域に対するリードアクセス動作の実行時間を大幅に短縮できる。
（Ｃ）コピー対象再配置セクタの選択
次に、コピー対象再配置セクタの選択処理について、図１０のフローチャートを参照して説明する。
【００７５】
本実施形態では、電源投入時、或いはハードウェアリセット信号入力時等の初期化動作時において、ディスク１０上の代替領域に保存されている再配置セクタのデータをバッファ領域２１内の再配置データコピー領域２３２にコピーする動作が自動的に行われる。このとき、ディフェクトマップの示すディスク１０上の全ての再配置セクタのデータの総量が再配置データコピー領域２３２の容量より大きい場合には、コピー対象再配置セクタを選択する必要がある。
【００７６】
そのためＣＰＵ３は、装置の初期化動作時には、ディフェクトマップの示す全再配置セクタのデータの総量が再配置データコピー領域２３２の容量より大きいか否かを調べ（ステップＳ１１）、大きい場合には、欠陥セクタ（のあるトラック）から再配置セクタ（のあるトラック）までのトラック数の多い順、即ち物理的距離（再配置セクタへのシーク時のヘッド移動量）が大きい順に、対応する再配置セクタをコピー対象として選択し（ステップＳ１２）、その選択した再配置セクタのデータを、再配置データコピー領域２３２にコピーする処理（ステップＳ１３）を、当該再配置データコピー領域２３２が一杯になるまで繰り返す（ステップＳ１４）。この選択手法を適用するのは、欠陥セクタから再配置セクタ（代替先セクタ）までの磁気ヘッドの移動距離（シーク距離）が長い再配置セクタのデータを再配置データコピー領域２３２にコピーする方が、対応する欠陥セクタを含むディスク領域を対象とするリードコマンドの実行時間短縮の効果が大きいためである。
【００７７】
さて、再配置データコピー領域２３２にデータがコピーされていない再配置セクタ、即ち未コピーの再配置セクタ（に対応する欠陥セクタ）の中に、アクセス頻度が高いものがある場合、その再配置セクタのデータを再配置データコピー領域２３２にコピーした方が、再配置データコピー領域２３２を利用した欠陥セクタを含むディスク領域からのリード動作の実行時間の短縮の効果が大きい。
【００７８】
そこで本実施形態では、図１１のフローチャートに示すように再配置データの置き換え（入れ替え）を行うようにしている。
まずＣＰＵ３は、欠陥セクタ（を含む領域）へのアクセスが発生した場合、アクセス対象となる欠陥セクタの再配置セクタのデータが未コピーであるか否かをチェックし（ステップＳ２１）、未コピーである場合には、ＣＰＵ３は、ディフェクトマップ領域２２に格納されているディフェクトマップから、アクセス対象欠陥セクタのアクセス回数（２２２ｄ）を読み込む（ステップＳ２２）。
【００７９】
次にＣＰＵ３は、上記ディフェクトマップから、（コピーフラグ２２２ｅで示される）コピー済みの再配置セクタに対応する欠陥セクタの中に、ステップＳ２２で読み込んだアクセス回数よりもアクセス回数が少ないものがあるか否かをチェックする（ステップＳ２３）。もし、アクセス回数が少ない欠陥セクタがあるならば、その欠陥セクタのコピー済み再配置データに代えて、アクセス対象欠陥セクタの再配置データを再配置データコピー領域２３２にコピーする（ステップＳ２４）。即ち再配置データコピー領域２３２にコピーする再配置セクタを、各再配置セクタのアクセス回数に基づいて動的に入れ替える。この動作は、アクセス対象欠陥セクタの再配置データをバッファ２のバッファ領域２１に読み込んだ際に行うと、再配置セクタからの再読み出しが不要なため効率的である。
【００８０】
この他、新たな欠陥セクタが検出されて再配置セクタへの再配置が行われた場合、その欠陥セクタ（の再配置セクタ）は近いうちに再度アクセスされる可能性が高く、逆に長時間アクセスされていないセクタは近いうちに再度アクセスされる可能性が低いことを考慮して、図１２のフローチャートに示すような再配置データの置き換えを行うことも可能である。
【００８１】
まずＣＰＵ３は、新たな欠陥セクタが検出されて再配置セクタへの再配置処理が発生した場合には、再配置データコピー領域２３２にコピーされている再配置データの中に、一度もアクセスされたことのない再配置データがあるか否かをチェックする（ステップＳ３１）。
【００８２】
もし、一度もアクセスされたことのないコピー済みの再配置データがあるならば、ＣＰＵ３は、その再配置データを置き換え（追い出し）対象として選択する（ステップＳ３２）。
【００８３】
これに対し、一度もアクセスされたことのないコピー済みの再配置データがないならば、ＣＰＵ３は再配置データコピー領域２３２にコピーされている再配置データの中で最も以前にアクセスされた再配置データを置き換え（追い出し）対象として選択する（ステップＳ３３）。このためには、再配置データコピー領域２３２内の各再配置データについて、そのアクセス順を示す情報を、例えばテーブル領域２３１の各テーブル情報に持たせればよい。
【００８４】
次にＣＰＵ３は、ステップＳ３２またはＳ３３で選択した再配置データに代えて、再配置直後の再配置データを再配置データコピー領域２３２にコピーする（ステップＳ２４）。
【００８５】
また、新たに検出された欠陥セクタに限らず、新たにアクセスが発生したセクタは、近いうちに再度アクセスされる可能性が高いことから、上記の方式は、未コピーの再配置セクタへのアクセスが発生した場合にも適用可能である。
【００８６】
なお、以上の説明では、ディスクから読み出したデータ、及びディスクへの書き込みデータを一時格納するバッファ内にディフェクト保持領域を確保して、ディスク上の欠陥セクタの代替先セクタの再配置データを保持する場合について説明したが、当該バッファとは独立の高速メモリをディフェクト保持領域として用いるようにしても構わない。
【００８７】
以上に述べた実施形態では磁気ディスク装置について説明したが、本発明は、ディスクの記録面上に欠陥セクタが存在した場合に、その欠陥セクタをディスク上の代替領域に再配置することで、欠陥セクタのアクセス時にはその再配置情報に従って再配置されたデータをアクセスすることが可能なディスク装置であれば、光磁気ディスク装置など、磁気ディスク装置以外のディスク装置にも適用可能である。
【００８８】
【発明の効果】
以上詳述したように本発明によれば、代替領域に再配置されたデータを予め高速なメモリ上にコピーして保持し、ホスト装置からの欠陥セクタを含むディスク領域を対象とするリードコマンドに対して代替領域をアクセスすることなく、メモリに保持されている再配置データを読み込んでホスト装置に転送するようにしたので、欠陥セクタ直前のデータ読み出し後の代替領域に対するアクセス動作と、代替領域から欠陥セクタ直後までのアクセス動作を省略でき、リードコマンドの実行時間を短縮できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図。
【図２】図１中のバッファ２に割り当てられる各領域を説明するための図。
【図３】同実施形態における再配置セクタデータコピー処理を説明するための図。
【図４】同実施形態における欠陥セクタを含むディスク領域に対するホスト装置からのリードコマンド受信時の動作を説明するためのフローチャート。
【図５】同実施形態におけるＨＤＣ１への飛ばし読みセクタの設定動作を説明するための図。
【図６】同実施形態における欠陥セクタ直前までのディスク読み出し動作とホスト転送動作を説明するための図。
【図７】同実施形態にける欠陥セクタの直前のセクタのデータをホスト装置に転送した後の再配置データのホスト転送動作と、欠陥セクタ直後のセクタのデータのディスク読み出し動作を説明するための図。
【図８】同実施形態における欠陥セクタ直後のセクタのデータのホスト転送動作を説明するための図。
【図９】同実施形態における欠陥セクタを含むディスク領域に対するリード動作時のヘッド移動経路を示す図。
【図１０】同実施形態におけるコピー対象再配置セクタの選択処理を説明するためのフローチャート。
【図１１】同実施形態における再配置データの置き換え処理を説明するためのフローチャート。
【図１２】同実施形態における再配置データの他の置き換え処理を説明するためのフローチャート。
【図１３】従来の磁気ディスク装置における欠陥セクタを含むディスク領域に対するリード動作時のヘッド移動経路を示す図。
【図１４】従来の磁気ディスク装置における欠陥セクタを含むディスク領域に対するホスト装置からのリードコマンド受信時の動作を説明するためのフローチャート。
【符号の説明】
１…ＨＤＣ（ディスクコントローラ、再配置データ読み出し・転送手段）
２…バッファ（高速メモリ）
３…ＣＰＵ（再配置データコピー処理手段）
７…ヘッド
１０…ディスク
２１…バッファ領域
２２…ディフェクトマップ領域（アクセス回数管理手段）
２３…ディフェクト保持領域
２２２ｄ…アクセス回数
２２２ｅ…コピーフラグ
２３１…テーブル領域
２３２…再配置データコピー領域
【図１】
0003847888.tif 000002
【図２】
0003847888.tif 000003
【図３】
0003847888.tif 000004
【図４】
0003847888.tif 000005
【図５】
0003847888.tif 000006
【図６】
0003847888.tif 000007
【図７】
0003847888.tif 000008
【図８】
0003847888.tif 000009
【図９】
0003847888.tif 000010
【図１０】
0003847888.tif 000011
【図１１】
0003847888.tif 000012
【図１２】
0003847888.tif 000013
【図１３】
0003847888.tif 000014
【図１４】
0003847888.tif 000015