説明

磁気ディスクコントローラおよび方法

【課題】データからエラー検出コードを生成した直後に、データおよびエラー検出コードを磁気ディスクに書き込む。
【解決手段】本発明に係る磁気ディスクコントローラは、磁気ディスクが有する複数のセクタに書き込むべき複数の書き込みデータを順次変調する変調部と、複数の書き込みデータのエラーを検出するための複数のエラー検出コードを順次生成するエラー検出コード生成部と、第1書き込みデータ、および第1のエラー検出コードを格納する第1バッファと、第2書き込みデータ、および第2のエラー検出コードを格納する第2バッファと、第1書き込みデータおよび第1のエラー検出コードを磁気ディスクの第1のセクタに書き込ませることに並行して、第2書き込みデータおよび第2のエラー検出コードを第2バッファに格納させるバッファ制御部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、磁気ディスクコントローラおよび方法に関する。特に、本発明は、磁気ディスクへのデータの書き込みを制御する磁気ディスクコントローラおよび方法に関する。
【背景技術】
【0002】
特許文献1には、磁気ディスク装置からセクタ単位のデータを読み出す場合に、セクタのデータを転送する前に当該セクタのID情報を転送する磁気ディスクコントローラについて提案されている。
【特許文献1】特開平7−141113号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
磁気ディスクコントローラにおいては、ホストからのデータを磁気ディスクに書き込む場合に、データが書き込まれるべきセクタのアドレスを取得して、取得したアドレスと当該セクタに書き込むべきデータとからエラー検出コードを算出する。従って、セクタのアドレスを取得した直後に、データおよびエラー検出コードを当該セクタに書き込むことができない。そのため、当該セクタが磁気ヘッドの位置に再び来るまで、データおよびエラー検出コードの書き込みに待ち時間が生じ、データおよびエラー検出コードの書き込みが遅延する。
【0004】
そこで本発明は、上記課題を解決することができる磁気ディスクコントローラおよび方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明の第1の形態においては、磁気ディスクへのデータの書き込みを制御する磁気ディスクコントローラであって、磁気ディスクが有する複数のセクタに書き込むべき複数の書き込みデータを、磁気ディスクに印加する信号を表すデータに順次変調する変調部と、複数の書き込みデータのエラーをそれぞれ検出するための複数のエラー検出コードを順次生成するエラー検出コード生成部と、変調部が変調した、磁気ディスクの第1のセクタに書き込むべき第1書き込みデータ、およびエラー検出コード生成部が生成した、第1書き込みデータのための第1のエラー検出コードを格納する第1バッファと、変調部が変調した、磁気ディスクの第2のセクタに書き込むべき第2書き込みデータ、およびエラー検出コード生成部が生成した、第2書き込みデータのための第2のエラー検出コードを格納する第2バッファと、第1の期間において、第1バッファが格納している第1書き込みデータおよび第1のエラー検出コードを磁気ディスクの第1のセクタに書き込ませることに並行して、変調部が変調した第2書き込みデータおよびエラー検出コード生成部が生成した第2のエラー検出コードを第2バッファに格納させるバッファ制御部とを備える。
【0006】
また、本発明の第2の形態においては、磁気ディスクへのデータの書き込みを制御する方法であって、磁気ディスクが有する複数のセクタに書き込むべき複数の書き込みデータを、磁気ディスクに印加する信号を表すデータに順次変調する変調段階と、複数の書き込みデータのエラーをそれぞれ検出するための複数のエラー検出コードを順次生成するエラー検出コード生成段階と、変調段階において変調された、磁気ディスクの第1のセクタに書き込むべき第1書き込みデータ、およびエラー検出コード生成段階において生成された、第1書き込みデータのための第1のエラー検出コードを第1バッファに格納する第1格納段階と、変調段階において変調された、磁気ディスクの第2のセクタに書き込むべき第2書き込みデータ、およびエラー検出コード生成段階において生成された、第2書き込みデータのための第2のエラー検出コードを第2バッファに格納する第2格納段階と、第1の期間において、第1バッファが格納している第1書き込みデータおよび第1のエラー検出コードを磁気ディスクの第1のセクタに書き込ませることに並行して、変調段階において変調された第2書き込みデータおよびエラー検出コード生成段階において生成された第2のエラー検出コードを第2バッファに格納させるバッファ制御段階とを備える。
【0007】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【0008】
本発明によれば、データからエラー検出コードを生成した直後に、データおよびエラー検出コードを磁気ディスクに書き込むことができる。
【発明を実施するための最良の形態】
【0009】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0010】
図1は、本発明の一実施形態に係る磁気ディスクコントローラ10の機能構成の一例を示す。磁気ディスクコントローラ10は、ホスト40からデータを受け取って、磁気ディスク20へ当該データを書き込む。すなわち、磁気ディスクコントローラ10は、磁気ディスク20へのヘッド30を介したデータの書き込みを制御する。ここで、ホスト40は、ホストコンピュータであり、磁気ディスク20を含む磁気ディスク装置のレジスタ群にアクセスすることにより、所定のコマンドの実行、およびデータの送受信の実行をする。なお、レジスタ群は、コントロール・ブロック・レジスタ群およびコマンド・ブロック・レジスタ群を含んでいてよい。
【0011】
本実施形態に係る磁気ディスクコントローラ10は、データからエラー検出コードを生成した直後に、データおよびエラー検出コードを磁気ディスクに書き込むことを目的とする。
【0012】
磁気ディスクコントローラ10は、読み出し制御部100、インデックス検出部105、タイミング制御部107、書き込み制御部110、復調部120、アドレス取得部125、アドレス加算部127、アドレス生成部130、バッファ制御部135、バッファユニット140、エラー検出コード生成部145、変調部150、インターフェース160、および変調方式決定部165を備える。なお、ハードディスクは、磁気ディスク20の一例である。
【0013】
インターフェース160は、磁気ディスク20へ書き込むべきデータを受け渡す。具体的には、インターフェース160は、磁気ディスク20へ書き込むべきデータをホスト40から受け取って、バッファ制御部135および変調方式決定部165に受け渡す。また、インターフェース160は、復調部120からデータを受け取って、ホスト40に受け渡す。インデックス検出部105は、磁気ディスク20のインデックスを、ヘッド30を介して検出する。インデックス検出部105は、インデックスを検出したタイミングを示す信号をアドレス取得部125およびタイミング制御部107に供給する。
【0014】
アドレス生成部130は、インデックス検出部105がインデックスを検出してからの時間に応じて、セクタの物理アドレスを順次生成する。具体的には、アドレス生成部130は、インデックス検出部105からインデックスを検出したタイミングを示す信号を、アドレス取得部125を介して受け取る。そして、アドレス生成部130は、磁気ディスク20の回転に同期して、セクタの物理アドレスを順次生成する。アドレス生成部130は、生成した物理アドレスをエラー検出コード生成部145に順次供給する。アドレス取得部125は、読み出しデータが記録されている物理アドレスを取得する。アドレス取得部125は、取得した物理アドレスを、アドレス加算部127およびエラー検出コード生成部145に供給する。また、アドレス取得部125は、インデックス検出部105から受け取ったインデックスを検出したタイミングを示す信号をアドレス生成部130に供給する。
【0015】
エラー検出コード生成部145は、複数の書き込みデータのエラーをそれぞれ検出するための複数のエラー検出コードを生成する。具体的には、エラー検出コード生成部145は、インデックス検出部105がインデックスを検出した後に、検出されたインデックスに後続する第1のセクタの第1物理アドレスと第1書き込みデータとを用いて、第1書き込みデータの第1のエラー検出コード(CRCコード)を生成する。また、エラー検出コード生成部145は、変調部150が変調したデータからエラー検出コードを生成してもよい。更に、エラー検出コード生成部145は、インデックス検出部105がインデックスを検出した後に、検出されたインデックスに後続する第1のセクタの第1物理アドレスと第1書き込みデータとを用いて、第1書き込みデータの第1のエラー訂正コード(ECCコード)を生成してもよい。
【0016】
また、エラー検出コード生成部145は、検出されたインデックスに隣接する第1のセクタの第1物理アドレスと第1書き込みデータとを用いて、第1書き込みデータの第1のエラー検出コードを生成してもよい。また、エラー検出コード生成部145は、アドレス生成部130が磁気ディスク20の回転に同期して生成した第1のセクタの第1物理アドレスと第1書き込みデータとを用いて、第1書き込みデータの第1のエラー検出コードを生成してもよい。そして、エラー検出コード生成部145は、アドレス生成部130が生成した第2のセクタの第2物理アドレスと第2書き込みデータとを用いて、第2書き込みデータの第2のエラー検出コードを更に生成する。エラー検出コード生成部145は、生成したエラー検出コードおよび/またはエラー訂正コードを、バッファ制御部135に供給する。
【0017】
タイミング制御部107は、インデックス検出部105がインデックスを検出したタイミングに応じて、書き込み制御部110がデータを磁気ディスク20に書き込むタイミングを制御する。書き込み制御部110は、タイミング制御部107に制御されたタイミングで、バッファ制御部135から受け取ったデータを、ヘッド30を介して磁気ディスク20に書き込む。具体的には、書き込み制御部110は、ヘッド30を制御して、第1のセクタに更に後続する第2のセクタに、エラー検出コード生成部145が生成した第1のエラー検出コード、第1書き込みデータ、および第1物理アドレスを書き込ませる。
【0018】
また、書き込み制御部110は、インデックス検出部105が検出したインデックスと反対の方向の第1のセクタに隣接する第2のセクタに、エラー検出コード生成部145が生成した第1のエラー検出コード、第1書き込みデータ、および第1物理アドレスを書き込ませる。そして、書き込み制御部110は、第2のセクタに更に後続する第3のセクタに、エラー検出コード生成部145が生成した第2のエラー検出コード、第2書き込みデータ、および第2物理アドレスを書き込ませる。更に、書き込み制御部110は、第1のセクタと反対の方向の第2のセクタに隣接する第3のセクタに、エラー検出コード生成部145が生成した第2のエラー検出コード、第2書き込みデータ、および第2物理アドレスを書き込ませる。
【0019】
アドレス加算部127は、アドレス取得部125が取得した物理アドレスに予め定められた値を加算する。例えば、アドレス加算部127は、アドレス取得部125が取得した物理アドレスに"1"を加算する。なお、アドレス加算部127は、例えば、エラー検出コード生成部145においてエラー訂正コードおよび/またはエラー検出コードの生成に、予め定められた時間より長い時間がかかる場合には、アドレス取得部125が取得した物理アドレスに"1"を除く他の整数(例えば、"2"および"3"等の"1"より大きな整数)を加算してもよい。アドレス加算部127は、加算した結果を読み出し制御部100に供給する。読み出し制御部100は、アドレス加算部127が生成した物理アドレスのセクタから、データを読み出させる。また、読み出し制御部100は、読み出したデータを復調部120に供給する。
【0020】
バッファユニット140は、磁気ディスク20に書き込むべきデータを一時的に格納するバッファを少なくとも1つ有する。バッファユニット140は、バッファ制御部135に制御されて、少なくとも1つのバッファに磁気ディスク20に書き込むべきデータを一時的に格納させる。バッファユニット140は、バッファ制御部135にバッファに格納されているデータを供給する。
【0021】
バッファ制御部135は、バッファユニット140が有するバッファへのデータの格納/読み出しを制御する。バッファ制御部135は、バッファユニット140から受け取ったデータを変調部150に供給する。そして、バッファ制御部135は、変調部150が変調したデータを、バッファユニット140が有するバッファに格納させる。また、バッファ制御部135は、エラー検出コード生成部145が生成したエラー検出コードを、バッファユニット140が有するバッファに格納する。バッファ制御部135は、バッファユニット140が有するバッファに格納されているデータを読み出して、書き込み制御部110に供給する。
【0022】
変調方式決定部165は、磁気ディスク20へ書き込むべきデータをインターフェース160から受け取る。そして、変調方式決定部165は、受け取ったデータから変調方式を決定する。なお、変調方式決定部165は、予め定められた変調方式を決定してもよい。磁気ディスク20が有する複数のセクタに書き込むべき複数の書き込みデータを変調部150が変調するための変調方式を、複数の書き込みデータごとに決定する。具体的には、変調方式決定部165は、最小磁化反転間隔、最大磁化反転間隔、元データのビット長、および変調後のビット長のそれぞれを変更して、適切な変調方式を決定する。例えば、変調方式決定部165は、RLLコードを用いた変調方式を決定してよい。変調方式決定部165は、決定した変調方式を示す情報を変調部150に供給する。
【0023】
変調部150は、磁気ディスク20が有する複数のセクタに書き込むべき複数の書き込みデータを、磁気ディスク20に印加する信号を表すデータに順次変調する。具体的には、変調部150は、変調方式決定部165が決定した変調方式を用いて、バッファ制御部135から受け取った元データであるデータを、エラー・レートが元データのままである場合よりも小さくなる他のデータ系列に符号化することにより変換する。変調部150は、変調したデータをバッファ制御部135およびエラー検出コード生成部145に供給する。復調部120は、読み出し制御部100から受け取った、磁気ディスク20に記録されている変調されたデータを変調前の元データに復調する。そして、復調部120は、復調したデータをインターフェース160に供給する。なお、変調部150とバッファ制御部135との間のデータ幅はMであり、インターフェース160とバッファ制御部135との間のデータ幅はNである。そして、データ幅Mは、データ幅Nの2倍以上であってよい。
【0024】
本実施形態に係る磁気ディスクコントローラ10によれば、エラー検出コード生成部145において生成されたエラー検出コードを、書き込み制御部110が第1のセクタに後続する第2のセクタに書き込むことができる。これにより、第1のセクタに第1のセクタのエラー検出コードを記録しないので、磁気ディスク20が回転してヘッド30が第1のセクタに再び来るまで待機することを要さない。従って、エラー検出コードを磁気ディスク20に書き込むまでの時間を短縮することができる。
【0025】
図2は、本実施形態に係る磁気ディスクコントローラ10が磁気ディスク20へデータを書き込む場合の一例を示す。本実施形態に係る磁気ディスクコントローラ10は、インデックス検出部105が検出したインデックス200に後続する第1のセクタ(例えば、物理アドレス"0"が対応づけられているセクタ214)の第1物理アドレス(例えば、物理アドレス"0")と第1書き込みデータとを用いて生成した、第1書き込みデータの第1のエラー検出コードを、第1のセクタの次の物理アドレス"1"に対応するセクタ216に記録する。また、磁気ディスクコントローラ10は、第1のセクタ214の次のセクタ216に、第1のセクタ214の第1書き込みデータおよび第1物理アドレスを書き込む。
【0026】
なお、磁気ディスクコントローラ10は、第1のセクタ(例えば、セクタ214)の次のセクタ216に第1のエラー検出コード、第1書き込みデータ、および第1物理アドレスを書き込むのではなく、セクタ214から予め定められた数だけ後のセクタ(例えば、セクタ220等)に、第1のエラー検出コード、第1書き込みデータ、および第1物理アドレスを書き込んでもよい。そして、磁気ディスクコントローラ10は、セクタ210、セクタ212、セクタ216、セクタ218、およびセクタ220についても同様にしてデータを記録する。
【0027】
図3は、本実施形態に係る変調部150の機能構成の一例を示す。変調部150は、読み出しキャッシュ152、変調コア部154、および書き込みキャッシュ156を有する。読み出しキャッシュ152は、バッファユニット140が有するバッファが格納しているデータを、データ幅Mごとにバッファ制御部135を介して読み出す。そして、読み出しキャッシュ152は、データ幅Mよりも小さいデータ幅ごとに分割して、読み出したデータを変調コア部154へ出力する。
【0028】
変調コア部154は、データを変調する。変調コア部154は、変調方式決定部165が決定した変調方式を用いて、読み出しキャッシュ152から受け取ったデータを変調する。変調コア部154は、変調したデータを書き込みキャッシュ156に供給する。書き込みキャッシュ156は、変調コア部154から複数回に分けて受け取ったデータをまとめて、データ幅Mのデータごとにバッファユニット140が有するバッファに書き込む。また、書き込みキャッシュ156は、エラー検出コード生成部145に変調コア部154から受け取ったデータを供給する。
【0029】
図4は、本実施形態に係るバッファユニット140の機能構成の一例を示す。バッファユニット140は、第1バッファ141、第2バッファ142、および第3バッファ143を有する。第1バッファ141、第2バッファ142、および第3バッファ143はそれぞれ、バッファ制御部135に制御されてデータを格納する。また、第1バッファ141、第2バッファ142、および第3バッファ143はそれぞれ、バッファ制御部135に制御されてデータをバッファ制御部135に供給する。第1バッファ141、第2バッファ142、および第3バッファ143はそれぞれ、インターフェース160から受け取った、磁気ディスク20の少なくとも1セクタに書き込むべきデータを一時的に、それぞれ格納する。また、第1バッファ141、第2バッファ142、および第3バッファ143はそれぞれ、少なくとも1セクタ分の変調データを一時的に格納する。
【0030】
具体的には、第1バッファ141は、変調部150が変調した、磁気ディスク20の第1のセクタに書き込むべき第1書き込みデータ、およびエラー検出コード生成部145が生成した、第1書き込みデータのための第1のエラー検出コードを格納する。具体的には、第1バッファ141は、変調部150が変調した第1書き込みデータを連続する記憶領域に格納した後、第1のエラー検出コードを連続する記憶領域に格納する。
【0031】
また、第2バッファ142は、変調部150が変調した、磁気ディスク20の第2のセクタに書き込むべき第2書き込みデータ、およびエラー検出コード生成部145が生成した、第2書き込みデータのための第2のエラー検出コードを格納する。具体的には、第2バッファ142は、磁気ディスク20の第1のセクタに後続する第2のセクタに書き込むべき第2書き込みデータおよび第2のエラー検出コードを格納する。例えば、第2バッファは142、磁気ディスク20の第1のセクタに隣接するセクタであって、第1のセクタに後続する第2のセクタに書き込むべき第2書き込みデータおよび第2のエラー検出コードを格納する。
【0032】
第3バッファ143は、変調部150が変調した、磁気ディスク20の第3のセクタに書き込むべき第3書き込みデータ、およびエラー検出コード生成部145が生成した、第3書き込みデータのための第3のエラー検出コードを格納する。具体的には、第3バッファ143は、磁気ディスク20の第2のセクタに後続する第3のセクタに書き込むべき第3書き込みデータおよび第3のエラー検出コードを格納する。例えば、第3バッファは143、磁気ディスク20の第2のセクタに隣接するセクタであって、第2のセクタに後続する第3のセクタに書き込むべき第3書き込みデータおよび第3のエラー検出コードを格納する。
【0033】
係る場合において、バッファ制御部135は、第1の期間において、第1バッファ141が格納している第1書き込みデータおよび第1のエラー検出コードを磁気ディスク20の第1のセクタに書き込ませることに並行して、変調部150が変調した第2書き込みデータおよびエラー検出コード生成部145が生成した第2のエラー検出コードを第2バッファ142に格納させる。また、バッファ制御部135は、第1バッファ141が格納している第1書き込みデータと、第1バッファ141が格納している第1のエラー検出コードとを、一部分ずつ交互に読み出して出力してもよい。そして、バッファ制御部135は、出力する第1書き込みデータおよび第1のエラー検出コードを磁気ディスク20の第1のセクタに書き込ませる。係る場合において、エラー検出コード生成部145が生成した第1のエラー検出コードは、変調されることなく、第1バッファ141に格納されて磁気ディスク20の第1のセクタに書き込まれてよい。
【0034】
また、バッファ制御部135は、第1のエラー検出コードを予め定められたデータ量ずつ、予め定められた間隔で、第1書き込みデータに挿入しながら出力してもよい。例えば、バッファ制御部135は、第1書き込みデータのデータ量が512バイトの場合、第1のエラー検出コードを、5から11の間隔で区切って、第1書き込みデータに挿入しながら出力する。また、バッファ制御部135は、第1書き込みデータのデータ量が1024バイトの場合、第1のエラー検出コードを、8から22の間隔で区切って、第1書き込みデータに挿入しながら出力する。更に、バッファ制御部135は、第1書き込みデータのデータ量が4096バイトの場合、第1のエラー検出コードを、8から20の間隔で区切って、第1書き込みデータに挿入しながら出力する。
【0035】
更に、バッファ制御部135は、第1の期間において、第1バッファ141が格納している第1書き込みデータおよび第1のエラー検出コードを磁気ディスク20の第1のセクタに書き込ませること、および変調部150が変調した第2書き込みデータおよびエラー検出コード生成部145が生成した第2のエラー検出コードを第2バッファ142に格納させることに並行して、変調部150が変調する前の第3書き込みデータを第3バッファ143に格納させる。そして、バッファ制御部135は、第1の期間の次の第2の期間において、第2バッファ142が格納している第2書き込みデータおよび第2のエラー検出コードを磁気ディスク20の第2のセクタに書き込ませることに並行して、変調部150が変調した第3書き込みデータおよびエラー検出コード生成部145が生成した第3のエラー検出コードを、変調部150が変調する前の第3書き込みデータに代えて第3バッファ143に格納させる。
【0036】
なお、変調方式決定部165は、変調部150が変調する前の第3書き込みデータを第3バッファ143が格納することに並行して、第3書き込みデータを受け取り、第3書き込みデータを変調部150が変調するための変調方式を決定する。変調方式決定部165が決定する変調方式は、例えばRZ方式、RB方式、NRZ方式、PM方式、PE方式、およびFM方式等であってよい。そして、変調部150は、第1バッファ141および第2バッファ142に格納されたデータを、磁気ディスク20に印加する信号を表す変調データに変調する。
【0037】
係る場合において、バッファ制御部135は、インターフェース160から受け取ったデータを、第1バッファ141および第2バッファ142の少なくとも一方のバッファに書き込んでいる間に、他方のバッファからデータを読み出す。続いて、バッファ制御部135は、変調部150を用いて読み出したデータを変調してから再度他方のバッファに格納する。この場合において、変調部150と第1バッファ141および第2バッファ142との間のデータ幅Mは、インターフェース160と第1バッファ141および第2バッファ142との間のデータ幅Nの2倍以上であってよい。
【0038】
また、変調部150の読み出しキャッシュ152は、第1バッファ141または第2バッファ142からデータ幅Mごとにデータを読み出す。そして、読み出しキャッシュ152は、データ幅Mよりも小さいデータ幅ごとに読み出したデータを分割して、変調コア部154へ出力する。続いて、書き込みキャッシュ156は、変調コア部154から複数回に分けて受け取ったデータをまとめる。そして、書き込みキャッシュ156は、まとめたデータを、データ幅Mのデータごとに第1バッファ141または第2バッファ142に書き込む。
【0039】
この場合において、第1バッファ141および第2バッファ142から変調部150へのデータ読み出し周期および変調部150から第1バッファ141および第2バッファ142へのデータ書き込み周期の和が、インターフェース160から第1バッファ141および第2バッファ142へのデータ書き込み周期と等しくなるべく、磁気ディスクコントローラ10は設計される。
【0040】
そして、書き込み制御部110は、第3バッファ143から変調データを読み出して、読み出した変調データを磁気ディスク20に書き込む。係る場合において、第1バッファ141および第2バッファ142から変調部150へのデータ読み出し周期および変調部150から第1バッファ141および第2バッファ142へのデータ書き込み周期の和が、第3バッファ143から書き込み制御部110へのデータの読み出し周期と等しくなるべく、磁気ディスクコントローラ10は設計される。
【0041】
更に、バッファ制御部135は、第1バッファ141を第2バッファ142と同様に機能させ、第2バッファ142を第3バッファ143と同様に機能させ、第3バッファ143を第1バッファ141と同様に機能させる。これにより、バッファ制御部135は、第1バッファ141、第2バッファ142、および第3バッファ143をローテーションさせて利用することができる。
【0042】
図5は、本実施形態に係る磁気ディスクコントローラ10が磁気ディスク20へデータを書き込む場合の一例を示す。まず、フェーズ600において、データ(例えば、データA)が第1バッファ141に格納される(S100)。続いて、フェーズ602において、データ(例えば、データB)が第2バッファ142に格納される(S105)。そして、第2バッファ142にデータが格納されるタイミングと同期して、第1バッファ141に格納されているデータが変調部150で変調されて、再び第1バッファ141に格納される(S110)。また、第1バッファ141に格納されているデータのエラー検出コードおよび/またはエラー訂正コードも、エラー検出コード生成部145で生成されて、変調されたデータとともに第1バッファ141に格納される(S110)。
【0043】
そして、フェーズ602に続くフェーズ604において、第1バッファ141に格納されているエラー検出コードおよび/またはエラー訂正コードが、予め定められた間隔に分散された状態で、データとともに磁気ディスク20に記録される(S115)。一方、第3バッファ143にデータ(例えば、データC)が格納される(S120)。そして、第3バッファ143にデータが格納されるタイミングと同期して、第2バッファ142に格納されているデータが変調部150で変調されて、再び第2バッファ142に格納される(S125)。また、第2バッファ142に格納されているデータのエラー検出コードおよび/またはエラー訂正コードも、エラー検出コード生成部145で生成されて、第2バッファ142に格納される(S125)。
【0044】
図6は、本実施形態に係る磁気ディスクコントローラ10が磁気ディスク20へデータを書き込む場合の一例を示す。まず、フェーズ600において、バッファ制御部135は、第1バッファ141にデータ(例えば、データA)を格納する(S200)。続くフェーズ602において、第1バッファ141に格納されているデータAは、変調部150において変調される。そして、バッファ制御部135は、変調部150が変調した後の変調データA’を第1バッファ141に格納する(S205)。また、バッファ制御部135は、第1バッファ141に変調データA’を格納することに同期して、第2バッファ142にデータ(例えば、データB)を格納する(S210)。
【0045】
更に、フェーズ604において、バッファ制御部135は、第1バッファ141が格納している変調データA’を磁気ディスク20に書き込む(S215)。また、第2バッファ142に格納されているデータBは、変調部150において変調される。そして、バッファ制御部135は、変調部150が変調した後の変調データB’を第2バッファ142に格納する(S220)。そして、バッファ制御部135は、第2バッファ142に変調データB’を格納することに同期して、第3バッファ143にデータ(例えば、データC)を格納する(S230)。
【0046】
図7は、本実施形態に係るバッファユニット140の機能構成の一例を示す。バッファユニット140は、第1バッファ141、第2バッファ142、および第3バッファ143を有する。そして、第1バッファ141は、第1記憶領域144および第2記憶領域146を含む。
【0047】
第1バッファ141は、磁気ディスク20が有する複数のセクタに書き込むべき複数の書き込みデータが含む前半部分データ、および後半部分データのうちの前半部分データを順次格納する第1記憶領域144を含む。更に、第1バッファ141は、複数の書き込みデータが含む後半部分データを順次格納する第2記憶領域146を含む。なお、前半部分データのデータ量と後半部分データのデータ量との合計が、1つのセクタに書き込むべき書き込みデータのデータ量と等しくなれば、前半部分データのデータ量と後半部分データのデータ量とは、異なっていてもよい。
【0048】
そして、第1バッファ141は、第1記憶領域144にバッファ制御部135から受け取った前半部分データを格納した後に、第2記憶領域146にバッファ制御部135から受け取った後半部分データを格納する。そして、変調部150は、磁気ディスク20の第1のセクタに書き込むべき第1書き込みデータの後半部分データを第2記憶領域146が格納していることに並行して、第1記憶領域144が既に格納している、第1書き込みデータの前半部分データを、バッファ制御部135から受け取る。続いて、変調部150は、受け取った前半部分データを、磁気ディスク20に印加する信号を表すデータに変調する。
【0049】
第2バッファ142は、変調部150が変調した第1書き込みデータの前半部分データを、バッファ制御部135から受け取って格納する。また、第2バッファ142は、変調部150が変調した第1書き込みデータの前半部分データおよび後半部分データを格納した後に、エラー検出コード生成部145が生成した、第1書き込みデータのための第1のエラー検出コードをバッファ制御部135から受け取って格納する。例えば、第2バッファ142は、変調部150が変調した前半部分データおよび後半部分データを含む第1書き込みデータをバッファ制御部135から受け取って連続する記憶領域に格納した後、第1のエラー検出コードを連続する記憶領域に格納する。
【0050】
そして、バッファ制御部135は、第2バッファ142が格納している第1書き込みデータの前半部分データを磁気ディスク20の第1のセクタに書き込ませる。係る場合において、変調部150は、磁気ディスク20の第2のセクタに書き込むべき第2書き込みデータの前半部分データを第1記憶領域144が格納していることに並行して、第2記憶領域146が既に格納している、第1書き込みデータの後半部分データをバッファ制御部135から受け取って変調する。第2バッファ142は、第1書き込みデータの前半部分データを格納した後に、変調部150が変調した第1書き込みデータの後半部分データを格納する。
【0051】
続いて、バッファ制御部135は、第1書き込みデータの前半部分データを磁気ディスク20に書き込ませた後に、第2バッファ142が格納している第1書き込みデータの後半部分データを磁気ディスク20の第1のセクタに書き込ませる。具体的には、バッファ制御部135は、第1書き込みデータの前半部分データおよび後半部分データとともに、第2バッファ142が格納している第1のエラー検出コードを磁気ディスク20の第1のセクタに書き込ませる。例えば、バッファ制御部135は、第2バッファ142が格納している第1書き込みデータと、第2バッファ142が格納している第1のエラー検出コードとを、一部分ずつ交互に読み出して出力する。そして、バッファ制御部135は、出力する第1書き込みデータおよび第1のエラー検出コードを磁気ディスク20の第1のセクタに書き込ませる。
【0052】
係る場合において、エラー検出コード生成部145が生成した第1のエラー検出コードは、変調されることなく、第2バッファ142に格納されて磁気ディスク20の第1のセクタに書き込まれてよい。また、バッファ制御部135は、第1のエラー検出コードを予め定められたデータ量ずつ、予め定められた間隔で、第1書き込みデータに挿入しながら出力してもよい。
【0053】
また、変調部150は、第2書き込みデータの後半部分データを第2記憶領域146が格納していることに並行して、第1記憶領域144が既に格納している、第2書き込みデータの前半部分データをバッファ制御部135から受け取って変調した後に、磁気ディスク20の第3のセクタに書き込むべき第3書き込みデータの前半部分データを第1記憶領域144が格納していることに並行して、第2記憶領域146が既に格納している、第2書き込みデータの後半部分データを変調する。
【0054】
そして、第3バッファ143は、変調部150が変調した第2書き込みデータの前半部分データをバッファ制御部135から受け取って格納した後に、変調部150が変調した第2書き込みデータの後半部分データをバッファ制御部135から受け取って格納する。続いて、バッファ制御部135は、第2バッファ142が格納している第1書き込みデータを第1のセクタに書き込ませた後に、第3バッファ143が格納している第2書き込みデータを第2のセクタに書き込ませる。
【0055】
変調方式決定部165は、磁気ディスク20が有する複数のセクタに書き込むべき複数の書き込みデータを変調部150が変調するための変調方式を、複数の書き込みデータの前半部分データまたは後半部分データごとに決定する。具体的には、変調方式決定部165は、第1記憶領域144が第1書き込みデータの前半部分データを格納することに並行して、第1書き込みデータの前半部分データを受け取り、第1書き込みデータの前半部分データを変調部150が変調するための変調方式を決定する。更に、変調方式決定部165は、第2記憶領域146が第1書き込みデータの後半部分データを格納することに並行して、第1書き込みデータの後半部分データを受け取り、第1書き込みデータの後半部分データを変調部150が変調するための変調方式を決定する。
【0056】
図8は、本実施形態に係る磁気ディスクコントローラ10が磁気ディスク20へデータを書き込む場合の一例を示す。まず、フェーズ900において、バッファ制御部135は、前半部分データ(例えば、データA−1)を第1記憶領域144に格納する(S300)。続くフェーズ910において、バッファ制御部135は、第1記憶領域144が格納しているデータA−1を変調部150において変調させ、変調後のデータA−1を第2バッファ142に格納する(S305、S310)。また、バッファ制御部135は、変調後のデータA−1を、変調部150からエラー検出コード生成部145に供給させる。
【0057】
次に、フェーズ910において、バッファ制御部135は、後半部分データ(例えば、データA−2であり、データA−1とデータA−2とで1つのデータAとなる)を第2記憶領域146に格納する(S315)。そして、フェーズ910からフェーズ920へ移り変わるタイミング800において、バッファ制御部135は、第2記憶領域146が格納しているデータA−2を変調部150において変調させ、変調後のデータA−2を第2バッファ142に格納させる(S320、S325)。また、バッファ制御部135は、変調後のデータA−2を、変調部150からエラー検出コード生成部145に供給させる。
【0058】
続くフェーズ920において、バッファ制御部135は、第1記憶領域144にデータA−1とは異なる前半部分データであるデータB−1を第1記憶領域144に格納する(S340)。一方、エラー検出コード生成部145は、変調後のデータA−1と変調後のデータA−2とからエラー訂正コードおよび/またはエラー検出コードを生成する。そして、バッファ制御部135は、エラー検出コード生成部145が生成した当該エラー訂正コードおよび/または当該エラー検出コードを、第2バッファ142に格納する(S330)。
【0059】
そして、フェーズ920からフェーズ930に移り変わるタイミング805において、バッファ制御部135は、第2記憶領域146にデータA−2とは異なる後半部分データであるデータB−2(データB−1とデータB−2とで1つのデータBとなる)を格納する(S355)。一方、バッファ制御部135は、第1記憶領域144が格納しているデータB−1を、変調部150において変調させ、変調後のデータB−1を第2バッファ142に格納する(S345、S350)。また、バッファ制御部135は、変調後のデータB−1を、変調部150からエラー検出コード生成部145に供給させる。
【0060】
ここで、バッファ制御部135は、タイミング805において、変調後のデータB−1を第2バッファ142に格納する前に、第2バッファ142が格納している変調後のデータA−1、変調後のデータA−2、および変調後のデータA−1と変調後のデータA−2とから生成したエラー訂正コードおよび/またはエラー検出コードを出力して、磁気ディスク20に書き込む。係る場合において、バッファ制御部135は、エラー訂正コードおよび/またはエラー検出コードを分割して、磁気ディスク20の書き込み領域に予め定められた間隔で書き込ませる(S380)。
【0061】
次に、フェーズ930からフェーズ940へと移り変わるタイミング810において、バッファ制御部135は、第2記憶領域146が格納しているデータB−2を、変調部150において変調させ、変調後のデータB−2を第2バッファ142に格納する(S360、S365)。また、バッファ制御部135は、変調後のデータB−2を、変調部150からエラー検出コード生成部145に供給させる。更に、バッファ制御部135は、タイミング810において、第1記憶領域144に、データA−1およびデータB−1とは異なる前半部分データであるデータC−1を格納する(S385)。
【0062】
一方、フェーズ940において、エラー検出コード生成部145は、変調後のデータB−1と変調後のデータB−2とからエラー訂正コードおよび/またはエラー検出コードを生成する。そして、バッファ制御部135は、エラー検出コード生成部145が生成した当該エラー訂正コードおよび/または当該エラー検出コードを、第2バッファ142に格納する(S370)。
【0063】
そして、フェーズ940からフェーズ950に移り変わるタイミング815において、バッファ制御部135は、第2記憶領域146にデータA−2およびデータB−2とは異なる後半部分データであるデータC−2(データC−1とデータC−2とで1つのデータCとなる)を格納する(S405)。一方、バッファ制御部135は、第1記憶領域144が格納しているデータC−1を、変調部150において変調させ、変調後のデータC−1を第2バッファ142に格納する(S390、S395)。また、バッファ制御部135は、変調後のデータC−1を、変調部150からエラー検出コード生成部145に供給させる。
【0064】
ここで、バッファ制御部135は、変調後のデータC−1を第2バッファ142に格納する前に、第2バッファ142が格納している変調後のデータB−1、変調後のデータB−2、および変調後のデータB−1と変調後のデータB−2とから生成したエラー訂正コードおよび/またはエラー検出コードを出力して、磁気ディスク20に書き込む。係る場合において、バッファ制御部135は、エラー訂正コードおよび/またはエラー検出コードを分割して、磁気ディスク20の書き込み領域に予め定められた間隔で書き込ませる(S400)。
【0065】
次に、フェーズ950からフェーズ950に続く次のフェーズへと移り変わるタイミング820において、バッファ制御部135は、第2記憶領域146が格納しているデータC−2を、変調部150において変調させ、変調後のデータC−2を第2バッファ142に格納する(S410)。また、バッファ制御部135は、変調後のデータC−2を、変調部150からエラー検出コード生成部145に供給させる。一方、フェーズ950の次に続くフェーズにおいて、エラー検出コード生成部145は、変調後のデータC−1と変調後のデータC−2とからエラー訂正コードおよび/またはエラー検出コードを生成する。そして、バッファ制御部135は、エラー検出コード生成部145が生成した当該エラー訂正コードおよび/または当該エラー検出コードを、第2バッファ142に格納する(S415)。
【0066】
本実施形態に係る磁気ディスクコントローラ10は、上記説明におけるように、1つのデータを前半部分データと後半部分データとに分割して、それぞれを変調する。そして、磁気ディスクコントローラ10は、変調後の前半部分データと変調後の後半部分データとから生成したエラー訂正コードおよび/またはエラー検出コードを予め定められた間隔で分散して磁気ディスク20に記録できる。
【0067】
図9は、本実施形態に係る磁気ディスクコントローラ10が磁気ディスク20へデータを書き込む場合の一例を示す。まず、フェーズ900において、バッファ制御部135は、第1バッファ141の第1記憶領域144にデータAの一部分であるデータA−1を格納する。そして、フェーズ910において、バッファ制御部135は、第1記憶領域144が格納しているデータA−1を変調部150において変調させて、変調後のデータA−1を第2バッファ142に格納する。更に、バッファ制御部135は、変調後のデータA−1をエラー検出コード生成部145に供給させる。また、バッファ制御部135は、第1バッファ141の第2記憶領域146に、データAに含まれ、データAからデータA−1を除いた残りの部分であるデータA−2を格納する。
【0068】
続いて、フェーズ920において、バッファ制御部135は、第1記憶領域144にデータBの一部分であるデータB−1を格納する。また、バッファ制御部135は、第2記憶領域146が格納しているデータA−2を変調部150において変調させて、変調後のデータA−2を第2バッファ142に格納する。更に、バッファ制御部135は、変調後のデータA−2をエラー検出コード生成部145に供給させる。ここで、エラー検出コード生成部145は、変調後のデータA−1と変調後のデータA−2とから、データAのエラー訂正コードおよび/またはエラー検出コードを生成する。バッファ制御部135は、エラー検出コード生成部145が生成したエラー訂正コードおよび/またはエラー検出コードを第2バッファ142に格納する。
【0069】
そして、フェーズ930において、バッファ制御部135は、第2記憶領域146にデータBからデータB−1を除いた残りの部分であるデータB−2を格納する。また、バッファ制御部135は、第1記憶領域144が格納しているデータB−1を変調部150において変調させて、変調後のデータB−1を第3バッファ143に格納させる。更に、バッファ制御部135は、変調後のデータB−1をエラー検出コード生成部145に供給させる。また、フェーズ930において、バッファ制御部135は、第2バッファ142が格納している変調後のデータA−1を書き込み制御部110に供給する。そして、書き込み制御部110は、変調後のデータA−1を磁気ディスク20に書き込む(S932)。
【0070】
続く、フェーズ940において、バッファ制御部135は、第1記憶領域144にデータCの一部分であるデータC−1を格納する。また、バッファ制御部135は、第2バッファ142が格納している変調後のデータA−2を書き込み制御部110に供給する。そして、書き込み制御部110は、変調後のデータA−2を磁気ディスク20に書き込む(S942)。係る場合において、書き込み制御部110は、第2バッファ142が格納しているデータAのエラー訂正コードおよび/またはエラー検出コードも磁気ディスク20に書き込む。
【0071】
更に、バッファ制御部135は、第2記憶領域146が格納しているデータB−2を変調部150において変調させて、変調後のデータB−2を第3バッファ143に格納する。また、バッファ制御部135は、変調後のデータB−2をエラー検出コード生成部145に供給する。ここで、エラー検出コード生成部145は、変調後のデータB−1と変調後のデータB−2とから、データBのエラー訂正コードおよび/またはエラー検出コードを生成する。バッファ制御部135は、エラー検出コード生成部145が生成したエラー訂正コードおよび/またはエラー検出コードを第3バッファ143に格納する。
【0072】
そして、フェーズ950において、バッファ制御部135は、第2記憶領域146にデータCからデータC−1を除いた残りの部分であるデータC−2を格納する。また、バッファ制御部135は、第1記憶領域144が格納しているデータC−1を変調部150において変調させて、変調後のデータC−1を第2バッファ142に格納させる。更に、バッファ制御部135は、変調後のデータC−1をエラー検出コード生成部145に供給させる。また、フェーズ950において、バッファ制御部135は、第3バッファ143が格納している変調後のデータB−1を書き込み制御部110に供給する。そして、書き込み制御部110は、変調後のデータB−1を磁気ディスク20に書き込む(S952)。
【0073】
次に、フェーズ960において、バッファ制御部135は、第1記憶領域144にデータDの一部分であるデータD−1を格納する。また、バッファ制御部135は、第3バッファ143が格納している変調後のデータB−2を書き込み制御部110に供給する。そして、書き込み制御部110は、変調後のデータB−2を磁気ディスク20に書き込む(S962)。係る場合において、書き込み制御部110は、第3バッファ143が格納しているデータBのエラー訂正コードおよび/またはエラー検出コードも磁気ディスク20に書き込む。
【0074】
更に、バッファ制御部135は、第2記憶領域146が格納しているデータC−2を変調部150において変調させて、変調後のデータC−2を第2バッファ142に格納する。また、バッファ制御部135は、変調後のデータC−2をエラー検出コード生成部145に供給する。ここで、エラー検出コード生成部145は、変調後のデータC−1と変調後のデータC−2とから、データCのエラー訂正コードおよび/またはエラー検出コードを生成する。バッファ制御部135は、エラー検出コード生成部145が生成したエラー訂正コードおよび/またはエラー検出コードを第2バッファ142に格納する。
【0075】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加え得ることが当業者に明らかである。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【0076】
【図1】磁気ディスクコントローラ10の機能構成を示すブロック図である。
【図2】磁気ディスク20へのデータの書き込みを示す図である。
【図3】変調部150の機能構成を示すブロック図である。
【図4】バッファユニット140の機能構成を示すブロック図である。
【図5】磁気ディスク20へのデータの書き込みを示す図である。
【図6】磁気ディスク20へのデータの書き込みを示す図である。
【図7】バッファユニット140の機能構成を示すブロック図である。
【図8】磁気ディスク20へのデータの書き込みを示す図である。
【図9】磁気ディスク20へのデータの書き込みを示す図である。
【符号の説明】
【0077】
10 磁気ディスクコントローラ
20 磁気ディスク
30 ヘッド
40 ホスト
100 読み出し制御部
105 インデックス検出部
107 タイミング制御部
110 書き込み制御部
120 復調部
125 アドレス取得部
127 アドレス加算部
130 アドレス生成部
135 バッファ制御部
140 バッファユニット
141 第1バッファ
142 第2バッファ
143 第3バッファ
144 第1記憶領域
145 エラー検出コード生成部
146 第2記憶領域
150 変調部
152 読み出しキャッシュ
154 変調コア部
156 書き込みキャッシュ
160 インターフェース
165 変調方式決定部
200 インデックス
210、212、214、216、218、220 セクタ
600、602、604 フェーズ
800、805、810、815、820 タイミング
900、910、920、930、940、950、960 フェーズ

【特許請求の範囲】
【請求項1】
磁気ディスクへのデータの書き込みを制御する磁気ディスクコントローラであって、
前記磁気ディスクが有する複数のセクタに書き込むべき複数の書き込みデータを、前記磁気ディスクに印加する信号を表すデータに順次変調する変調部と、
前記複数の書き込みデータのエラーをそれぞれ検出するための複数のエラー検出コードを順次生成するエラー検出コード生成部と、
前記変調部が変調した、前記磁気ディスクの第1のセクタに書き込むべき第1書き込みデータ、および前記エラー検出コード生成部が生成した、前記第1書き込みデータのための第1のエラー検出コードを格納する第1バッファと、
前記変調部が変調した、前記磁気ディスクの第2のセクタに書き込むべき第2書き込みデータ、および前記エラー検出コード生成部が生成した、前記第2書き込みデータのための第2のエラー検出コードを格納する第2バッファと、
第1の期間において、前記第1バッファが格納している前記第1書き込みデータおよび前記第1のエラー検出コードを前記磁気ディスクの前記第1のセクタに書き込ませることに並行して、前記変調部が変調した前記第2書き込みデータおよび前記エラー検出コード生成部が生成した前記第2のエラー検出コードを前記第2バッファに格納させるバッファ制御部と
を備える磁気ディスクコントローラ。
【請求項2】
前記第1バッファは、前記変調部が変調した前記第1書き込みデータを連続する記憶領域に格納した後、前記第1のエラー検出コードを連続する記憶領域に格納し、
前記バッファ制御部は、
前記第1バッファが格納している前記第1書き込みデータと、前記第1バッファが格納している前記第1のエラー検出コードとを、一部分ずつ交互に読み出して出力し、
出力する前記第1書き込みデータおよび前記第1のエラー検出コードを前記磁気ディスクの前記第1のセクタに書き込ませる
請求項1に記載の磁気ディスクコントローラ。
【請求項3】
前記エラー検出コード生成部が生成した前記第1のエラー検出コードは、変調されることなく、前記第1バッファに格納されて前記磁気ディスクの前記第1のセクタに書き込まれる
請求項2に記載の磁気ディスクコントローラ。
【請求項4】
前記バッファ制御部は、前記第1のエラー検出コードを予め定められたデータ量ずつ、予め定められた間隔で、前記第1書き込みデータに挿入しながら出力する
請求項3に記載の磁気ディスクコントローラ。
【請求項5】
前記第1バッファは、前記磁気ディスクの前記第1のセクタに書き込むべき前記第1書き込みデータおよび前記第1のエラー検出コードを格納し、
前記第2バッファは、前記磁気ディスクの前記第1のセクタに後続する前記第2のセクタに書き込むべき前記第2書き込みデータおよび前記第2のエラー検出コードを格納する
請求項1に記載の磁気ディスクコントローラ。
【請求項6】
前記第2バッファは、前記磁気ディスクの前記第1のセクタに隣接する前記第2のセクタに書き込むべき前記第2書き込みデータおよび前記第2のエラー検出コードを格納する
請求項5に記載の磁気ディスクコントローラ。
【請求項7】
前記変調部が変調した、前記磁気ディスクの第3のセクタに書き込むべき第3書き込みデータ、および前記エラー検出コード生成部が生成した、前記第3書き込みデータのための第3のエラー検出コードを格納する第3バッファ
をさらに備え、
前記バッファ制御部は、
前記第1の期間において、前記第1バッファが格納している前記第1書き込みデータおよび前記第1のエラー検出コードを前記磁気ディスクの前記第1のセクタに書き込ませること、および前記変調部が変調した前記第2書き込みデータおよび前記エラー検出コード生成部が生成した前記第2のエラー検出コードを前記第2バッファに格納させることに並行して、前記変調部が変調する前の前記第3書き込みデータを前記第3バッファに格納させ、
前記第1の期間の次の第2の期間において、前記第2バッファが格納している前記第2書き込みデータおよび前記第2のエラー検出コードを前記磁気ディスクの前記第2のセクタに書き込ませることに並行して、前記変調部が変調した前記第3書き込みデータおよび前記エラー検出コード生成部が生成した前記第3のエラー検出コードを、前記変調部が変調する前の前記第3書き込みデータに代えて前記第3バッファに格納させる
請求項1に記載の磁気ディスクコントローラ。
【請求項8】
前記第1バッファは、前記磁気ディスクの前記第1のセクタに書き込むべき前記第1書き込みデータおよび前記第1のエラー検出コードを格納し、
前記第2バッファは、前記磁気ディスクの前記第1のセクタに後続する前記第2のセクタに書き込むべき前記第2書き込みデータおよび前記第2のエラー検出コードを格納し、
前記第3バッファは、前記磁気ディスクの前記第2のセクタに後続する前記第3のセクタに書き込むべき前記第3書き込みデータおよび前記第3のエラー検出コードを格納する
請求項7に記載の磁気ディスクコントローラ。
【請求項9】
前記第2バッファは、前記磁気ディスクの前記第1のセクタに隣接する前記第2のセクタに書き込むべき前記第2書き込みデータおよび前記第2のエラー検出コードを格納し、
前記第3バッファは、前記磁気ディスクの前記第2のセクタに隣接する前記第3のセクタに書き込むべき前記第3書き込みデータおよび前記第3のエラー検出コードを格納する
請求項8に記載の磁気ディスクコントローラ。
【請求項10】
前記磁気ディスクが有する前記複数のセクタに書き込むべき前記複数の書き込みデータを前記変調部が変調するための変調方式を、前記複数の書き込みデータ毎に決定する変調方式決定部
をさらに備える請求項8に記載の磁気ディスクコントローラ。
【請求項11】
前記変調方式決定部は、前記変調部が変調する前の前記第3書き込みデータを前記第3バッファが格納することに並行して、前記第3書き込みデータを受け取り、前記第3書き込みデータを前記変調部が変調するための変調方式を決定する
請求項10に記載の磁気ディスクコントローラ。
【請求項12】
磁気ディスクへのデータの書き込みを制御する方法であって、
前記磁気ディスクが有する複数のセクタに書き込むべき複数の書き込みデータを、前記磁気ディスクに印加する信号を表すデータに順次変調する変調段階と、
前記複数の書き込みデータのエラーをそれぞれ検出するための複数のエラー検出コードを順次生成するエラー検出コード生成段階と、
前記変調段階において変調された、前記磁気ディスクの第1のセクタに書き込むべき第1書き込みデータ、および前記エラー検出コード生成段階において生成された、前記第1書き込みデータのための第1のエラー検出コードを第1バッファに格納する第1格納段階と、
前記変調段階において変調された、前記磁気ディスクの第2のセクタに書き込むべき第2書き込みデータ、および前記エラー検出コード生成段階において生成された、前記第2書き込みデータのための第2のエラー検出コードを第2バッファに格納する第2格納段階と、
第1の期間において、前記第1バッファが格納している前記第1書き込みデータおよび前記第1のエラー検出コードを前記磁気ディスクの前記第1のセクタに書き込ませることに並行して、前記変調段階において変調された前記第2書き込みデータおよび前記エラー検出コード生成段階において生成された前記第2のエラー検出コードを前記第2バッファに格納させるバッファ制御段階と
を備える方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2008−192209(P2008−192209A)
【公開日】平成20年8月21日(2008.8.21)
【国際特許分類】
【出願番号】特願2007−23006(P2007−23006)
【出願日】平成19年2月1日(2007.2.1)
【出願人】(502188642)マーベル ワールド トレード リミテッド (302)
【Fターム(参考)】