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

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

Info

Publication number
JP5064821B2
JP5064821B2 JP2007023008A JP2007023008A JP5064821B2 JP 5064821 B2 JP5064821 B2 JP 5064821B2 JP 2007023008 A JP2007023008 A JP 2007023008A JP 2007023008 A JP2007023008 A JP 2007023008A JP 5064821 B2 JP5064821 B2 JP 5064821B2
Authority
JP
Japan
Prior art keywords
buffer
data
magnetic disk
stored
modulation
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 - Fee Related
Application number
JP2007023008A
Other languages
English (en)
Other versions
JP2008192211A (ja
Inventor
聡一 磯野
稔 塚田
知樹 大浦
浩二 高橋
Original Assignee
マーベル ワールド トレード リミテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by マーベル ワールド トレード リミテッド filed Critical マーベル ワールド トレード リミテッド
Priority to JP2007023008A priority Critical patent/JP5064821B2/ja
Priority to US12/012,321 priority patent/US7639443B2/en
Publication of JP2008192211A publication Critical patent/JP2008192211A/ja
Priority to US12/634,300 priority patent/US8284511B2/en
Priority to US13/615,287 priority patent/US8514507B2/en
Application granted granted Critical
Publication of JP5064821B2 publication Critical patent/JP5064821B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1843Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a cyclic redundancy check [CRC]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本発明は、磁気ディスクコントローラおよび方法に関する。特に、本発明は、磁気ディスクへのデータの書き込みを制御する磁気ディスクコントローラおよび方法に関する。
特許文献1には、磁気ディスク装置からセクタ単位のデータを読み出す場合に、セクタのデータを転送する前に当該セクタのID情報を転送する磁気ディスクコントローラについて提案されている。
特開平7−141113号公報
磁気ディスクコントローラにおいては、ホストからのデータを磁気ディスクに書き込む場合に、データが書き込まれるべきセクタのアドレスを取得して、取得したアドレスと当該セクタに書き込むべきデータとからエラー検出コードを算出する。従って、セクタのアドレスを取得した直後に、データおよびエラー検出コードを当該セクタに書き込むことができない。そのため、当該セクタが磁気ヘッドの位置に再び来るまで、データおよびエラー検出コードの書き込みに待ち時間が生じ、データおよびエラー検出コードの書き込みが遅延する。
そこで本発明は、上記課題を解決することができる磁気ディスクコントローラおよび方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
上記課題を解決するために、本発明の第1の形態においては、磁気ディスクへのデータの書き込みを制御する磁気ディスクコントローラであって、磁気ディスクへ書き込むべきデータを受け渡すインターフェースと、インターフェースから受け取った、磁気ディスクの少なくとも1セクタに書き込むべきデータを一時的に、それぞれ格納する第1バッファおよび第2バッファと、第1バッファおよび第2バッファに格納されたデータを、磁気ディスクに印加する信号を表す変調データに変調する変調部と、インターフェースから受け取ったデータを、第1バッファおよび第2バッファの少なくとも一方のバッファに書き込んでいる間に、他方のバッファからデータを読み出し、変調部を用いて変調してから再度他方のバッファに格納するバッファ制御部とを備え、変調部と第1バッファおよび第2バッファとの間のデータ幅Mは、インターフェースと第1バッファおよび第2バッファとの間のデータ幅Nの2倍以上である。
また、本発明の第2の形態においては、磁気ディスクへのデータの書き込みを制御する方法であって、磁気ディスクへ書き込むべきデータを受け渡すインターフェースから受け取った、磁気ディスクの少なくとも1セクタに書き込むべきデータを一時的に、第1バッファおよび第2バッファのそれぞれに格納する段階と、第1バッファおよび第2バッファに格納されたデータを、磁気ディスクに印加する信号を表す変調データに変調部において変調する変調段階と、インターフェースから受け取ったデータを、第1バッファおよび第2バッファの少なくとも一方のバッファに書き込んでいる間に、他方のバッファからデータを読み出し、変調段階において変調されてから再度他方のバッファに格納するバッファ制御段階とを備え、変調部と第1バッファおよび第2バッファとの間のデータ幅Mは、インターフェースと第1バッファおよび第2バッファとの間のデータ幅Nの2倍以上である。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
本発明によれば、データからエラー検出コードを生成した直後に、データおよびエラー検出コードを磁気ディスクに書き込むことができる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本発明の一実施形態に係る磁気ディスクコントローラ10の機能構成の一例を示す。磁気ディスクコントローラ10は、ホスト40からデータを受け取って、磁気ディスク20へ当該データを書き込む。すなわち、磁気ディスクコントローラ10は、磁気ディスク20へのヘッド30を介したデータの書き込みを制御する。ここで、ホスト40は、ホストコンピュータであり、磁気ディスク20を含む磁気ディスク装置のレジスタ群にアクセスすることにより、所定のコマンドの実行、およびデータの送受信の実行をする。なお、レジスタ群は、コントロール・ブロック・レジスタ群およびコマンド・ブロック・レジスタ群を含んでいてよい。
本実施形態に係る磁気ディスクコントローラ10は、データからエラー検出コードを生成した直後に、データおよびエラー検出コードを磁気ディスクに書き込むことを目的とする。
磁気ディスクコントローラ10は、読み出し制御部100、インデックス検出部105、タイミング制御部107、書き込み制御部110、復調部120、アドレス取得部125、アドレス加算部127、アドレス生成部130、バッファ制御部135、バッファユニット140、エラー検出コード生成部145、変調部150、インターフェース160、および変調方式決定部165を備える。なお、ハードディスクは、磁気ディスク20の一例である。
インターフェース160は、磁気ディスク20へ書き込むべきデータを受け渡す。具体的には、インターフェース160は、磁気ディスク20へ書き込むべきデータをホスト40から受け取って、バッファ制御部135および変調方式決定部165に受け渡す。また、インターフェース160は、復調部120からデータを受け取って、ホスト40に受け渡す。インデックス検出部105は、磁気ディスク20のインデックスを、ヘッド30を介して検出する。インデックス検出部105は、インデックスを検出したタイミングを示す信号をアドレス取得部125およびタイミング制御部107に供給する。
アドレス生成部130は、インデックス検出部105がインデックスを検出してからの時間に応じて、セクタの物理アドレスを順次生成する。具体的には、アドレス生成部130は、インデックス検出部105からインデックスを検出したタイミングを示す信号を、アドレス取得部125を介して受け取る。そして、アドレス生成部130は、磁気ディスク20の回転に同期して、セクタの物理アドレスを順次生成する。アドレス生成部130は、生成した物理アドレスをエラー検出コード生成部145に順次供給する。アドレス取得部125は、読み出しデータが記録されている物理アドレスを取得する。アドレス取得部125は、取得した物理アドレスを、アドレス加算部127およびエラー検出コード生成部145に供給する。また、アドレス取得部125は、インデックス検出部105から受け取ったインデックスを検出したタイミングを示す信号をアドレス生成部130に供給する。
エラー検出コード生成部145は、複数の書き込みデータのエラーをそれぞれ検出するための複数のエラー検出コードを生成する。具体的には、エラー検出コード生成部145は、インデックス検出部105がインデックスを検出した後に、検出されたインデックスに後続する第1のセクタの第1物理アドレスと第1書き込みデータとを用いて、第1書き込みデータの第1のエラー検出コード(CRCコード)を生成する。また、エラー検出コード生成部145は、変調部150が変調したデータからエラー検出コードを生成してもよい。更に、エラー検出コード生成部145は、インデックス検出部105がインデックスを検出した後に、検出されたインデックスに後続する第1のセクタの第1物理アドレスと第1書き込みデータとを用いて、第1書き込みデータの第1のエラー訂正コード(ECCコード)を生成してもよい。
また、エラー検出コード生成部145は、検出されたインデックスに隣接する第1のセクタの第1物理アドレスと第1書き込みデータとを用いて、第1書き込みデータの第1のエラー検出コードを生成してもよい。また、エラー検出コード生成部145は、アドレス生成部130が磁気ディスク20の回転に同期して生成した第1のセクタの第1物理アドレスと第1書き込みデータとを用いて、第1書き込みデータの第1のエラー検出コードを生成してもよい。そして、エラー検出コード生成部145は、アドレス生成部130が生成した第2のセクタの第2物理アドレスと第2書き込みデータとを用いて、第2書き込みデータの第2のエラー検出コードを更に生成する。エラー検出コード生成部145は、生成したエラー検出コードおよび/またはエラー訂正コードを、バッファ制御部135に供給する。
タイミング制御部107は、インデックス検出部105がインデックスを検出したタイミングに応じて、書き込み制御部110がデータを磁気ディスク20に書き込むタイミングを制御する。書き込み制御部110は、タイミング制御部107に制御されたタイミングで、バッファ制御部135から受け取ったデータを、ヘッド30を介して磁気ディスク20に書き込む。具体的には、書き込み制御部110は、ヘッド30を制御して、第1のセクタに更に後続する第2のセクタに、エラー検出コード生成部145が生成した第1のエラー検出コード、第1書き込みデータ、および第1物理アドレスを書き込ませる。
また、書き込み制御部110は、インデックス検出部105が検出したインデックスと反対の方向の第1のセクタに隣接する第2のセクタに、エラー検出コード生成部145が生成した第1のエラー検出コード、第1書き込みデータ、および第1物理アドレスを書き込ませる。そして、書き込み制御部110は、第2のセクタに更に後続する第3のセクタに、エラー検出コード生成部145が生成した第2のエラー検出コード、第2書き込みデータ、および第2物理アドレスを書き込ませる。更に、書き込み制御部110は、第1のセクタと反対の方向の第2のセクタに隣接する第3のセクタに、エラー検出コード生成部145が生成した第2のエラー検出コード、第2書き込みデータ、および第2物理アドレスを書き込ませる。
アドレス加算部127は、アドレス取得部125が取得した物理アドレスに予め定められた値を加算する。例えば、アドレス加算部127は、アドレス取得部125が取得した物理アドレスに"1"を加算する。なお、アドレス加算部127は、例えば、エラー検出コード生成部145においてエラー訂正コードおよび/またはエラー検出コードの生成に、予め定められた時間より長い時間がかかる場合には、アドレス取得部125が取得した物理アドレスに"1"を除く他の整数(例えば、"2"および"3"等の"1"より大きな整数)を加算してもよい。アドレス加算部127は、加算した結果を読み出し制御部100に供給する。読み出し制御部100は、アドレス加算部127が生成した物理アドレスのセクタから、データを読み出させる。また、読み出し制御部100は、読み出したデータを復調部120に供給する。
バッファユニット140は、磁気ディスク20に書き込むべきデータを一時的に格納するバッファを少なくとも1つ有する。バッファユニット140は、バッファ制御部135に制御されて、少なくとも1つのバッファに磁気ディスク20に書き込むべきデータを一時的に格納させる。バッファユニット140は、バッファ制御部135にバッファに格納されているデータを供給する。
バッファ制御部135は、バッファユニット140が有するバッファへのデータの格納/読み出しを制御する。バッファ制御部135は、バッファユニット140から受け取ったデータを変調部150に供給する。そして、バッファ制御部135は、変調部150が変調したデータを、バッファユニット140が有するバッファに格納させる。また、バッファ制御部135は、エラー検出コード生成部145が生成したエラー検出コードを、バッファユニット140が有するバッファに格納する。バッファ制御部135は、バッファユニット140が有するバッファに格納されているデータを読み出して、書き込み制御部110に供給する。
変調方式決定部165は、磁気ディスク20へ書き込むべきデータをインターフェース160から受け取る。そして、変調方式決定部165は、受け取ったデータから変調方式を決定する。なお、変調方式決定部165は、予め定められた変調方式を決定してもよい。磁気ディスク20が有する複数のセクタに書き込むべき複数の書き込みデータを変調部150が変調するための変調方式を、複数の書き込みデータごとに決定する。具体的には、変調方式決定部165は、最小磁化反転間隔、最大磁化反転間隔、元データのビット長、および変調後のビット長のそれぞれを変更して、適切な変調方式を決定する。例えば、変調方式決定部165は、RLLコードを用いた変調方式を決定してよい。変調方式決定部165は、決定した変調方式を示す情報を変調部150に供給する。
変調部150は、磁気ディスク20が有する複数のセクタに書き込むべき複数の書き込みデータを、磁気ディスク20に印加する信号を表すデータに順次変調する。具体的には、変調部150は、変調方式決定部165が決定した変調方式を用いて、バッファ制御部135から受け取った元データであるデータを、エラー・レートが元データのままである場合よりも小さくなる他のデータ系列に符号化することにより変換する。変調部150は、変調したデータをバッファ制御部135およびエラー検出コード生成部145に供給する。復調部120は、読み出し制御部100から受け取った、磁気ディスク20に記録されている変調されたデータを変調前の元データに復調する。そして、復調部120は、復調したデータをインターフェース160に供給する。なお、変調部150とバッファ制御部135との間のデータ幅はMであり、インターフェース160とバッファ制御部135との間のデータ幅はNである。そして、データ幅Mは、データ幅Nの2倍以上であってよい。
本実施形態に係る磁気ディスクコントローラ10によれば、エラー検出コード生成部145において生成されたエラー検出コードを、書き込み制御部110が第1のセクタに後続する第2のセクタに書き込むことができる。これにより、第1のセクタに第1のセクタのエラー検出コードを記録しないので、磁気ディスク20が回転してヘッド30が第1のセクタに再び来るまで待機することを要さない。従って、エラー検出コードを磁気ディスク20に書き込むまでの時間を短縮することができる。
図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物理アドレスを書き込む。
なお、磁気ディスクコントローラ10は、第1のセクタ(例えば、セクタ214)の次のセクタ216に第1のエラー検出コード、第1書き込みデータ、および第1物理アドレスを書き込むのではなく、セクタ214から予め定められた数だけ後のセクタ(例えば、セクタ220等)に、第1のエラー検出コード、第1書き込みデータ、および第1物理アドレスを書き込んでもよい。そして、磁気ディスクコントローラ10は、セクタ210、セクタ212、セクタ216、セクタ218、およびセクタ220についても同様にしてデータを記録する。
図3は、本実施形態に係る変調部150の機能構成の一例を示す。変調部150は、読み出しキャッシュ152、変調コア部154、および書き込みキャッシュ156を有する。読み出しキャッシュ152は、バッファユニット140が有するバッファが格納しているデータを、データ幅Mごとにバッファ制御部135を介して読み出す。そして、読み出しキャッシュ152は、データ幅Mよりも小さいデータ幅ごとに分割して、読み出したデータを変調コア部154へ出力する。
変調コア部154は、データを変調する。変調コア部154は、変調方式決定部165が決定した変調方式を用いて、読み出しキャッシュ152から受け取ったデータを変調する。変調コア部154は、変調したデータを書き込みキャッシュ156に供給する。書き込みキャッシュ156は、変調コア部154から複数回に分けて受け取ったデータをまとめて、データ幅Mのデータごとにバッファユニット140が有するバッファに書き込む。また、書き込みキャッシュ156は、エラー検出コード生成部145に変調コア部154から受け取ったデータを供給する。
図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セクタ分の変調データを一時的に格納する。
具体的には、第1バッファ141は、変調部150が変調した、磁気ディスク20の第1のセクタに書き込むべき第1書き込みデータ、およびエラー検出コード生成部145が生成した、第1書き込みデータのための第1のエラー検出コードを格納する。具体的には、第1バッファ141は、変調部150が変調した第1書き込みデータを連続する記憶領域に格納した後、第1のエラー検出コードを連続する記憶領域に格納する。
また、第2バッファ142は、変調部150が変調した、磁気ディスク20の第2のセクタに書き込むべき第2書き込みデータ、およびエラー検出コード生成部145が生成した、第2書き込みデータのための第2のエラー検出コードを格納する。具体的には、第2バッファ142は、磁気ディスク20の第1のセクタに後続する第2のセクタに書き込むべき第2書き込みデータおよび第2のエラー検出コードを格納する。例えば、第2バッファは142、磁気ディスク20の第1のセクタに隣接するセクタであって、第1のセクタに後続する第2のセクタに書き込むべき第2書き込みデータおよび第2のエラー検出コードを格納する。
第3バッファ143は、変調部150が変調した、磁気ディスク20の第3のセクタに書き込むべき第3書き込みデータ、およびエラー検出コード生成部145が生成した、第3書き込みデータのための第3のエラー検出コードを格納する。具体的には、第3バッファ143は、磁気ディスク20の第2のセクタに後続する第3のセクタに書き込むべき第3書き込みデータおよび第3のエラー検出コードを格納する。例えば、第3バッファは143、磁気ディスク20の第2のセクタに隣接するセクタであって、第2のセクタに後続する第3のセクタに書き込むべき第3書き込みデータおよび第3のエラー検出コードを格納する。
係る場合において、バッファ制御部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のセクタに書き込まれてよい。
また、バッファ制御部135は、第1のエラー検出コードを予め定められたデータ量ずつ、予め定められた間隔で、第1書き込みデータに挿入しながら出力してもよい。例えば、バッファ制御部135は、第1書き込みデータのデータ量が512バイトの場合、第1のエラー検出コードを、5から11の間隔で区切って、第1書き込みデータに挿入しながら出力する。また、バッファ制御部135は、第1書き込みデータのデータ量が1024バイトの場合、第1のエラー検出コードを、8から22の間隔で区切って、第1書き込みデータに挿入しながら出力する。更に、バッファ制御部135は、第1書き込みデータのデータ量が4096バイトの場合、第1のエラー検出コードを、8から20の間隔で区切って、第1書き込みデータに挿入しながら出力する。
更に、バッファ制御部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に格納させる。
なお、変調方式決定部165は、変調部150が変調する前の第3書き込みデータを第3バッファ143が格納することに並行して、第3書き込みデータを受け取り、第3書き込みデータを変調部150が変調するための変調方式を決定する。変調方式決定部165が決定する変調方式は、例えばRZ方式、RB方式、NRZ方式、PM方式、PE方式、およびFM方式等であってよい。そして、変調部150は、第1バッファ141および第2バッファ142に格納されたデータを、磁気ディスク20に印加する信号を表す変調データに変調する。
係る場合において、バッファ制御部135は、インターフェース160から受け取ったデータを、第1バッファ141および第2バッファ142の少なくとも一方のバッファに書き込んでいる間に、他方のバッファからデータを読み出す。続いて、バッファ制御部135は、変調部150を用いて読み出したデータを変調してから再度他方のバッファに格納する。この場合において、変調部150と第1バッファ141および第2バッファ142との間のデータ幅Mは、インターフェース160と第1バッファ141および第2バッファ142との間のデータ幅Nの2倍以上であってよい。
また、変調部150の読み出しキャッシュ152は、第1バッファ141または第2バッファ142からデータ幅Mごとにデータを読み出す。そして、読み出しキャッシュ152は、データ幅Mよりも小さいデータ幅ごとに読み出したデータを分割して、変調コア部154へ出力する。続いて、書き込みキャッシュ156は、変調コア部154から複数回に分けて受け取ったデータをまとめる。そして、書き込みキャッシュ156は、まとめたデータを、データ幅Mのデータごとに第1バッファ141または第2バッファ142に書き込む。
この場合において、第1バッファ141および第2バッファ142から変調部150へのデータ読み出し周期および変調部150から第1バッファ141および第2バッファ142へのデータ書き込み周期の和が、インターフェース160から第1バッファ141および第2バッファ142へのデータ書き込み周期と等しくなるべく、磁気ディスクコントローラ10は設計される。
そして、書き込み制御部110は、第3バッファ143から変調データを読み出して、読み出した変調データを磁気ディスク20に書き込む。係る場合において、第1バッファ141および第2バッファ142から変調部150へのデータ読み出し周期および変調部150から第1バッファ141および第2バッファ142へのデータ書き込み周期の和が、第3バッファ143から書き込み制御部110へのデータの読み出し周期と等しくなるべく、磁気ディスクコントローラ10は設計される。
更に、バッファ制御部135は、第1バッファ141を第2バッファ142と同様に機能させ、第2バッファ142を第3バッファ143と同様に機能させ、第3バッファ143を第1バッファ141と同様に機能させる。これにより、バッファ制御部135は、第1バッファ141、第2バッファ142、および第3バッファ143をローテーションさせて利用することができる。
図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)。
そして、フェーズ602に続くフェーズ604において、第1バッファ141に格納されているエラー検出コードおよび/またはエラー訂正コードが、予め定められた間隔に分散された状態で、データとともに磁気ディスク20に記録される(S115)。一方、第3バッファ143にデータ(例えば、データC)が格納される(S120)。そして、第3バッファ143にデータが格納されるタイミングと同期して、第2バッファ142に格納されているデータが変調部150で変調されて、再び第2バッファ142に格納される(S125)。また、第2バッファ142に格納されているデータのエラー検出コードおよび/またはエラー訂正コードも、エラー検出コード生成部145で生成されて、第2バッファ142に格納される(S125)。
図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)。
更に、フェーズ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)。
図7は、本実施形態に係るバッファユニット140の機能構成の一例を示す。バッファユニット140は、第1バッファ141、第2バッファ142、および第3バッファ143を有する。そして、第1バッファ141は、第1記憶領域144および第2記憶領域146を含む。
第1バッファ141は、磁気ディスク20が有する複数のセクタに書き込むべき複数の書き込みデータが含む前半部分データ、および後半部分データのうちの前半部分データを順次格納する第1記憶領域144を含む。更に、第1バッファ141は、複数の書き込みデータが含む後半部分データを順次格納する第2記憶領域146を含む。なお、前半部分データのデータ量と後半部分データのデータ量との合計が、1つのセクタに書き込むべき書き込みデータのデータ量と等しくなれば、前半部分データのデータ量と後半部分データのデータ量とは、異なっていてもよい。
そして、第1バッファ141は、第1記憶領域144にバッファ制御部135から受け取った前半部分データを格納した後に、第2記憶領域146にバッファ制御部135から受け取った後半部分データを格納する。そして、変調部150は、磁気ディスク20の第1のセクタに書き込むべき第1書き込みデータの後半部分データを第2記憶領域146が格納していることに並行して、第1記憶領域144が既に格納している、第1書き込みデータの前半部分データを、バッファ制御部135から受け取る。続いて、変調部150は、受け取った前半部分データを、磁気ディスク20に印加する信号を表すデータに変調する。
第2バッファ142は、変調部150が変調した第1書き込みデータの前半部分データを、バッファ制御部135から受け取って格納する。また、第2バッファ142は、変調部150が変調した第1書き込みデータの前半部分データおよび後半部分データを格納した後に、エラー検出コード生成部145が生成した、第1書き込みデータのための第1のエラー検出コードをバッファ制御部135から受け取って格納する。例えば、第2バッファ142は、変調部150が変調した前半部分データおよび後半部分データを含む第1書き込みデータをバッファ制御部135から受け取って連続する記憶領域に格納した後、第1のエラー検出コードを連続する記憶領域に格納する。
そして、バッファ制御部135は、第2バッファ142が格納している第1書き込みデータの前半部分データを磁気ディスク20の第1のセクタに書き込ませる。係る場合において、変調部150は、磁気ディスク20の第2のセクタに書き込むべき第2書き込みデータの前半部分データを第1記憶領域144が格納していることに並行して、第2記憶領域146が既に格納している、第1書き込みデータの後半部分データをバッファ制御部135から受け取って変調する。第2バッファ142は、第1書き込みデータの前半部分データを格納した後に、変調部150が変調した第1書き込みデータの後半部分データを格納する。
続いて、バッファ制御部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のセクタに書き込ませる。
係る場合において、エラー検出コード生成部145が生成した第1のエラー検出コードは、変調されることなく、第2バッファ142に格納されて磁気ディスク20の第1のセクタに書き込まれてよい。また、バッファ制御部135は、第1のエラー検出コードを予め定められたデータ量ずつ、予め定められた間隔で、第1書き込みデータに挿入しながら出力してもよい。
また、変調部150は、第2書き込みデータの後半部分データを第2記憶領域146が格納していることに並行して、第1記憶領域144が既に格納している、第2書き込みデータの前半部分データをバッファ制御部135から受け取って変調した後に、磁気ディスク20の第3のセクタに書き込むべき第3書き込みデータの前半部分データを第1記憶領域144が格納していることに並行して、第2記憶領域146が既に格納している、第2書き込みデータの後半部分データを変調する。
そして、第3バッファ143は、変調部150が変調した第2書き込みデータの前半部分データをバッファ制御部135から受け取って格納した後に、変調部150が変調した第2書き込みデータの後半部分データをバッファ制御部135から受け取って格納する。続いて、バッファ制御部135は、第2バッファ142が格納している第1書き込みデータを第1のセクタに書き込ませた後に、第3バッファ143が格納している第2書き込みデータを第2のセクタに書き込ませる。
変調方式決定部165は、磁気ディスク20が有する複数のセクタに書き込むべき複数の書き込みデータを変調部150が変調するための変調方式を、複数の書き込みデータの前半部分データまたは後半部分データごとに決定する。具体的には、変調方式決定部165は、第1記憶領域144が第1書き込みデータの前半部分データを格納することに並行して、第1書き込みデータの前半部分データを受け取り、第1書き込みデータの前半部分データを変調部150が変調するための変調方式を決定する。更に、変調方式決定部165は、第2記憶領域146が第1書き込みデータの後半部分データを格納することに並行して、第1書き込みデータの後半部分データを受け取り、第1書き込みデータの後半部分データを変調部150が変調するための変調方式を決定する。
図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に供給させる。
次に、フェーズ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に供給させる。
続くフェーズ920において、バッファ制御部135は、第1記憶領域144にデータA−1とは異なる前半部分データであるデータB−1を第1記憶領域144に格納する(S340)。一方、エラー検出コード生成部145は、変調後のデータA−1と変調後のデータA−2とからエラー訂正コードおよび/またはエラー検出コードを生成する。そして、バッファ制御部135は、エラー検出コード生成部145が生成した当該エラー訂正コードおよび/または当該エラー検出コードを、第2バッファ142に格納する(S330)。
そして、フェーズ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に供給させる。
ここで、バッファ制御部135は、タイミング805において、変調後のデータB−1を第2バッファ142に格納する前に、第2バッファ142が格納している変調後のデータA−1、変調後のデータA−2、および変調後のデータA−1と変調後のデータA−2とから生成したエラー訂正コードおよび/またはエラー検出コードを出力して、磁気ディスク20に書き込む。係る場合において、バッファ制御部135は、エラー訂正コードおよび/またはエラー検出コードを分割して、磁気ディスク20の書き込み領域に予め定められた間隔で書き込ませる(S380)。
次に、フェーズ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)。
一方、フェーズ940において、エラー検出コード生成部145は、変調後のデータB−1と変調後のデータB−2とからエラー訂正コードおよび/またはエラー検出コードを生成する。そして、バッファ制御部135は、エラー検出コード生成部145が生成した当該エラー訂正コードおよび/または当該エラー検出コードを、第2バッファ142に格納する(S370)。
そして、フェーズ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に供給させる。
ここで、バッファ制御部135は、変調後のデータC−1を第2バッファ142に格納する前に、第2バッファ142が格納している変調後のデータB−1、変調後のデータB−2、および変調後のデータB−1と変調後のデータB−2とから生成したエラー訂正コードおよび/またはエラー検出コードを出力して、磁気ディスク20に書き込む。係る場合において、バッファ制御部135は、エラー訂正コードおよび/またはエラー検出コードを分割して、磁気ディスク20の書き込み領域に予め定められた間隔で書き込ませる(S400)。
次に、フェーズ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)。
本実施形態に係る磁気ディスクコントローラ10は、上記説明におけるように、1つのデータを前半部分データと後半部分データとに分割して、それぞれを変調する。そして、磁気ディスクコントローラ10は、変調後の前半部分データと変調後の後半部分データとから生成したエラー訂正コードおよび/またはエラー検出コードを予め定められた間隔で分散して磁気ディスク20に記録できる。
図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を格納する。
続いて、フェーズ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に格納する。
そして、フェーズ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)。
続く、フェーズ940において、バッファ制御部135は、第1記憶領域144にデータCの一部分であるデータC−1を格納する。また、バッファ制御部135は、第2バッファ142が格納している変調後のデータA−2を書き込み制御部110に供給する。そして、書き込み制御部110は、変調後のデータA−2を磁気ディスク20に書き込む(S942)。係る場合において、書き込み制御部110は、第2バッファ142が格納しているデータAのエラー訂正コードおよび/またはエラー検出コードも磁気ディスク20に書き込む。
更に、バッファ制御部135は、第2記憶領域146が格納しているデータB−2を変調部150において変調させて、変調後のデータB−2を第3バッファ143に格納する。また、バッファ制御部135は、変調後のデータB−2をエラー検出コード生成部145に供給する。ここで、エラー検出コード生成部145は、変調後のデータB−1と変調後のデータB−2とから、データBのエラー訂正コードおよび/またはエラー検出コードを生成する。バッファ制御部135は、エラー検出コード生成部145が生成したエラー訂正コードおよび/またはエラー検出コードを第3バッファ143に格納する。
そして、フェーズ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)。
次に、フェーズ960において、バッファ制御部135は、第1記憶領域144にデータDの一部分であるデータD−1を格納する。また、バッファ制御部135は、第3バッファ143が格納している変調後のデータB−2を書き込み制御部110に供給する。そして、書き込み制御部110は、変調後のデータB−2を磁気ディスク20に書き込む(S962)。係る場合において、書き込み制御部110は、第3バッファ143が格納しているデータBのエラー訂正コードおよび/またはエラー検出コードも磁気ディスク20に書き込む。
更に、バッファ制御部135は、第2記憶領域146が格納しているデータC−2を変調部150において変調させて、変調後のデータC−2を第2バッファ142に格納する。また、バッファ制御部135は、変調後のデータC−2をエラー検出コード生成部145に供給する。ここで、エラー検出コード生成部145は、変調後のデータC−1と変調後のデータC−2とから、データCのエラー訂正コードおよび/またはエラー検出コードを生成する。バッファ制御部135は、エラー検出コード生成部145が生成したエラー訂正コードおよび/またはエラー検出コードを第2バッファ142に格納する。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加え得ることが当業者に明らかである。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
磁気ディスクコントローラ10の機能構成を示すブロック図である。 磁気ディスク20へのデータの書き込みを示す図である。 変調部150の機能構成を示すブロック図である。 バッファユニット140の機能構成を示すブロック図である。 磁気ディスク20へのデータの書き込みを示す図である。 磁気ディスク20へのデータの書き込みを示す図である。 バッファユニット140の機能構成を示すブロック図である。 磁気ディスク20へのデータの書き込みを示す図である。 磁気ディスク20へのデータの書き込みを示す図である。
符号の説明
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 フェーズ

Claims (8)

  1. 磁気ディスクへのデータの書き込みを制御する磁気ディスクコントローラであって、
    前記磁気ディスクへ書き込むべきデータを受け渡すインターフェースと、
    前記インターフェースから受け取った、前記磁気ディスクの少なくとも1セクタに書き込むべきデータを一時的に、それぞれ格納する第1バッファおよび第2バッファと、
    前記第1バッファおよび前記第2バッファに格納されたデータを、前記磁気ディスクに印加する信号を表す変調データに変調する変調部と、
    前記インターフェースから受け取ったデータを、前記第1バッファおよび前記第2バッファの少なくとも一方のバッファに書き込んでいる間に、他方のバッファから前記データを読み出し、前記変調部を用いて変調してから再度前記他方のバッファに格納するバッファ制御部と
    を備え、
    前記変調部と前記第1バッファおよび前記第2バッファとの間のデータ幅Mは、前記インターフェースと前記第1バッファおよび前記第2バッファとの間のデータ幅Nの2倍以上である
    磁気ディスクコントローラ。
  2. 前記変調部は、
    前記データを変調する変調コア部と、
    前記第1バッファまたは前記第2バッファから前記データ幅Mごとに前記データを読み出し、前記データ幅Mよりも小さいデータ幅毎に分割して前記変調コア部へ出力する読み出しキャッシュと、
    前記変調コア部から複数回に分けて受け取ったデータをまとめて、前記データ幅Mのデータ毎に前記第1バッファまたは前記第2バッファに書き込む書き込みキャッシュと
    を有する請求項1に記載の磁気ディスクコントローラ。
  3. 前記第1バッファおよび前記第2バッファから前記変調部へのデータ読み出し周期および前記変調部から前記第1バッファおよび前記第2バッファへのデータ書き込み周期の和が、前記インターフェースから前記第1バッファおよび前記第2バッファへのデータ書き込み周期と等しい
    請求項1または請求項2に記載の磁気ディスクコントローラ。
  4. 前記第1バッファ、および前記第2バッファのそれぞれは、予め定められたシーケンスに従って、前記第1バッファおよび前記第2バッファの間で転送される部分データであって、前記第1バッファおよび前記第2バッファの1つに変調されずに格納され、その後、前記第1バッファおよび前記第2バッファの他の1つに変調されて格納され、その後前記磁気ディスクに書き込まれる部分データを格納する請求項1から請求項3のいずれか1つに記載の磁気ディスクコントローラ。
  5. 第3バッファをさらに備え、
    変調されていない前記データは、第1データ、第2データ、第3データおよび第4データの前半部分および後半部分を少なくとも含み、
    変調された前記データは、前記第1データ、前記第2データ、前記第3データおよび前記第4データの前記前半部分および前記後半部分を少なくとも含み、
    前記予め定められたシーケンスは、
    前記第1データの前記前半部分が前記第1バッファに格納されている第1フェーズと、
    前記第1データの前記後半部分が前記第1バッファに格納され、変調された前記第1データの前記前半部分が前記第2バッファに格納されている第2フェーズと、
    前記第2データの前記前半部分が前記第1バッファに格納され、変調された前記第1データの前記前半部分が前記第2バッファに格納され、変調された前記第1データの前記後半部分が前記第2バッファに格納されている第3フェーズと、
    前記第2データの前記後半部分が前記第1バッファに格納され、変調された前記第1データの前記後半部分が前記第2バッファに格納され、変調された前記第2データの前記前半部分が前記第3バッファに格納されている第4フェーズと、
    前記第3データの前記前半部分が前記第1バッファに格納され、変調された前記第2データの前記前半部分が前記第3バッファに格納され、変調された前記第2データの前記後半部分が前記第3バッファに格納されている第5フェーズと、
    前記第3データの前記後半部分が前記第1バッファに格納され、変調された前記第3データの前記前半部分が前記第2バッファに格納され、変調された前記第2データの前記後半部分が前記第3バッファに格納されている第6フェーズと、
    前記第4データの前記前半部分が前記第1バッファに格納され、変調された前記第3データの前記前半部分が前記第2バッファに格納され、変調された前記第3データの前記後半部分が前記第2バッファに格納されている第7フェーズと
    を少なくとも含む請求項4に記載の磁気ディスクコントローラ。
  6. 少なくとも1セクタ分の前記変調データを一時的に格納する第3バッファと、
    前記第3バッファから前記変調データを読み出して前記磁気ディスクに書き込む書き込み制御部
    をさらに備え、
    前記第1バッファおよび前記第2バッファから前記変調部へのデータ読み出し周期および前記変調部から前記第1バッファおよび前記第2バッファへのデータ書き込み周期の和が、前記第3バッファから前記書き込み制御部へのデータの読み出し周期と等しい
    請求項1から請求項3のいずれか1つに記載の磁気ディスクコントローラ。
  7. 前記バッファ制御部は、前記第1バッファを前記第2バッファと同様に機能させ、前記第2バッファを前記第3バッファと同様に機能させ、前記第3バッファを前記第1バッファと同様に機能させることにより、前記第1バッファ、前記第2バッファ、および前記第3バッファをローテーションさせて利用する
    請求項に記載の磁気ディスクコントローラ。
  8. 磁気ディスクへのデータの書き込みを制御する方法であって、
    前記磁気ディスクへ書き込むべきデータを受け渡すインターフェースから受け取った、前記磁気ディスクの少なくとも1セクタに書き込むべきデータを一時的に、第1バッファおよび第2バッファのそれぞれに格納する段階と、
    前記第1バッファおよび前記第2バッファに格納されたデータを、前記磁気ディスクに印加する信号を表す変調データに変調部において変調する変調段階と、
    前記インターフェースから受け取ったデータを、前記第1バッファおよび前記第2バッファの少なくとも一方のバッファに書き込んでいる間に、他方のバッファから前記データを読み出し、前記変調段階において変調されてから再度前記他方のバッファに格納するバッファ制御段階と
    を備え、
    前記変調部と前記第1バッファおよび前記第2バッファとの間のデータ幅Mは、前記インターフェースと前記第1バッファおよび前記第2バッファとの間のデータ幅Nの2倍以上である
    方法。
JP2007023008A 2007-02-01 2007-02-01 磁気ディスクコントローラおよび方法 Expired - Fee Related JP5064821B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007023008A JP5064821B2 (ja) 2007-02-01 2007-02-01 磁気ディスクコントローラおよび方法
US12/012,321 US7639443B2 (en) 2007-02-01 2008-02-01 Magnetic disk controller and method
US12/634,300 US8284511B2 (en) 2007-02-01 2009-12-09 Magnetic disk controller to process plural data sets for recording onto a medium
US13/615,287 US8514507B2 (en) 2007-02-01 2012-09-13 Processing data for recording to a storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007023008A JP5064821B2 (ja) 2007-02-01 2007-02-01 磁気ディスクコントローラおよび方法

Publications (2)

Publication Number Publication Date
JP2008192211A JP2008192211A (ja) 2008-08-21
JP5064821B2 true JP5064821B2 (ja) 2012-10-31

Family

ID=39677138

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007023008A Expired - Fee Related JP5064821B2 (ja) 2007-02-01 2007-02-01 磁気ディスクコントローラおよび方法

Country Status (2)

Country Link
US (3) US7639443B2 (ja)
JP (1) JP5064821B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539924B1 (en) 2005-11-15 2009-05-26 Western Digital Technologies, Inc. Disk drive implementing data path protection by encoding large host blocks into sub blocks
US7984210B2 (en) * 2006-06-20 2011-07-19 Freescale Semiconductor, Inc. Method for transmitting a datum from a time-dependent data storage means
WO2007147441A1 (en) * 2006-06-22 2007-12-27 Freescale Semiconductor, Inc. Method and system of grouping interrupts from a time-dependent data storage means
JP5186112B2 (ja) 2007-02-01 2013-04-17 マーベル ワールド トレード リミテッド 磁気ディスクコントローラおよび方法
JP5221044B2 (ja) * 2007-02-01 2013-06-26 マーベル ワールド トレード リミテッド 磁気ディスクコントローラおよび方法
JP5064821B2 (ja) * 2007-02-01 2012-10-31 マーベル ワールド トレード リミテッド 磁気ディスクコントローラおよび方法
JP5064820B2 (ja) * 2007-02-01 2012-10-31 マーベル ワールド トレード リミテッド 磁気ディスクコントローラおよび方法
US8397107B1 (en) * 2009-12-11 2013-03-12 Western Digital Technologies, Inc. Data storage device employing data path protection using both LBA and PBA
US8671250B2 (en) 2011-12-15 2014-03-11 Western Digital Technologies, Inc. Data storage device generating redundancy for data path protection of a parity sector
WO2014028564A1 (en) 2012-08-17 2014-02-20 Onity Inc. Access control apparatus with modular encoder subassembly
US9286915B1 (en) 2015-03-12 2016-03-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for format efficient sector fragment processing
US9384761B1 (en) 2015-04-09 2016-07-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for flexible variable code rate support
US9817716B2 (en) 2015-07-16 2017-11-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for retaining non-converged data sets for additional processing
CN107728943B (zh) * 2017-10-09 2020-09-18 华中科技大学 一种延迟产生校验光盘的方法及其对应的数据恢复方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6381660A (ja) * 1986-09-26 1988-04-12 Hitachi Ltd 磁気メモリ制御装置
JPH02105730A (ja) * 1988-10-14 1990-04-18 Sony Corp データ記録方法
JPH02284251A (ja) * 1989-04-26 1990-11-21 Nec Corp ハードディスクのデータ転送制御方式
JP2540768B2 (ja) 1993-11-12 1996-10-09 日本電気株式会社 セクタid情報の転送機能を持つ磁気ディスクコントロ―ラ
JPH0926855A (ja) * 1995-05-09 1997-01-28 Sofumatsupu Future Design Kk データ転送システム、データ転送方法、インターフェース回路及びデータ処理装置
DE69623859T2 (de) * 1995-06-05 2003-08-07 Sony Electronics Inc., Park Ridge Aufnahme und Wiedergabe von digitalen Signalen
JP3594547B2 (ja) * 1999-11-22 2004-12-02 三洋電機株式会社 データ記録装置
JP3946421B2 (ja) * 2000-08-04 2007-07-18 株式会社リコー 光ディスク装置
EP1387357A1 (en) * 2002-02-20 2004-02-04 Sony Corporation Data access control apparatus,data access control method,controller,and computer program
JP2003346432A (ja) * 2002-05-22 2003-12-05 Internatl Business Mach Corp <Ibm> データ記憶装置およびデータ処理方法
WO2005043534A1 (ja) * 2003-10-30 2005-05-12 Pioneer Corporation 情報記録装置及び方法、並びにコンピュータプログラム
KR100970730B1 (ko) * 2003-12-30 2010-07-16 삼성전자주식회사 저장 매체의 데이터 기록 및 재생 방법
JP2005267497A (ja) * 2004-03-22 2005-09-29 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置、その制御方法及び磁気ディスク記憶装置
US7624328B2 (en) * 2005-08-04 2009-11-24 Quantum Corporation Data error detection during media write
JP2007183844A (ja) * 2006-01-10 2007-07-19 Hitachi Global Storage Technologies Netherlands Bv 補助記憶装置および記録再生方法
JP5064821B2 (ja) * 2007-02-01 2012-10-31 マーベル ワールド トレード リミテッド 磁気ディスクコントローラおよび方法

Also Published As

Publication number Publication date
JP2008192211A (ja) 2008-08-21
US20080189451A1 (en) 2008-08-07
US7639443B2 (en) 2009-12-29
US20130013979A1 (en) 2013-01-10
US8284511B2 (en) 2012-10-09
US8514507B2 (en) 2013-08-20
US20100088576A1 (en) 2010-04-08

Similar Documents

Publication Publication Date Title
JP5064821B2 (ja) 磁気ディスクコントローラおよび方法
JP5064820B2 (ja) 磁気ディスクコントローラおよび方法
JP5186112B2 (ja) 磁気ディスクコントローラおよび方法
CN101582283B (zh) 数字信号再现装置和方法以及数字信号记录装置和方法
KR0143532B1 (ko) 콘스턴트-덴시티 기록형태의 자기디스크와 그 구동장치 및 액세스방법
JP5221044B2 (ja) 磁気ディスクコントローラおよび方法
TWI529705B (zh) 資料解碼器電路、資料編碼器電路及資料處理電路
US8416518B2 (en) Magnetic disk drive and method for rewriting data block
US6434664B1 (en) Data transfer scheme for efficiently moving data through a high latency media access channel
CN106372002B (zh) 一种数据存储方法及读取还原方法
US20120030385A1 (en) Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method
JP2013157068A (ja) データ記憶制御装置、データ記憶装置、及びデータ記憶方法
US20080123783A1 (en) Run length limiting apparatus and run length limiting method
US20090249161A1 (en) Method of restoring data
US20100123969A1 (en) Information storage device and control circuit
JP2001143408A (ja) 記録再生装置及びデータ誤り訂正方法
JP2006147096A (ja) 磁気ディスク媒体、磁気ディスク装置、及び磁気ディスク媒体の回転位置検出方法
JPS6139286A (ja) デ−タ管理方法
JPH0317868A (ja) ハードデイスクのコントロール方法
US7957229B2 (en) Optical disc controller and optical disc drive system using error correction codes
US20160343400A1 (en) Magnetic disk device, controller, and redundant sector arrangement method
CN101398759A (zh) 避免启动代码在数据段搬移时自我覆盖的方法
JP2004272969A (ja) 記録再生装置、記録再生システム、および磁気ディスク装置の制御方法
JPH0536212A (ja) クロツク変換回路
JP2014116053A (ja) 出力データ作成装置、コンピュータ装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111221

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120206

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: 20120731

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: 20120809

R150 Certificate of patent or registration of utility model

Ref document number: 5064821

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: 20150817

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

LAPS Cancellation because of no payment of annual fees
R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371