(57)【要約】【課題】  複数トラックを連続して好適にアクセスすることができる磁気ディスク装置を提供すること。【解決手段】  実施形態によれば、磁気ディスク装置は、複数のトラックを含む磁気ディスクと、磁気ディスクからデータを読み出すための磁気ヘッドと、コントローラとを具備する。コントローラは、複数のトラックのうち第１トラック及び第２トラックからのデータを読み出す場合に、磁気ヘッドから出力された第１トラックの信号の復号が完了する前に、第２トラックへの磁気ヘッドの移動を開始する。【選択図】図３
2018156716.tif 000002
【特許請求の範囲】
【請求項１】
複数のトラックを含む磁気ディスクと、
前記磁気ディスクからデータを読み出すための磁気ヘッドと、
前記複数のトラックのうち第１トラック及び第２トラックからのデータを読み出す場合に、前記磁気ヘッドから出力された前記第１トラックの信号の復号が完了する前に、前記第２トラックへの前記磁気ヘッドの移動を開始するコントローラと、
を具備する磁気ディスク装置。
【請求項２】
少なくとも前記磁気ヘッドを前記第１トラックへアクセスするための第１情報を記憶する第１記憶部と、
少なくとも前記磁気ヘッドを前記第２トラックへアクセスするための第２情報を記憶する第２記憶部と、をさらに具備し、
前記コントローラは、
前記磁気ヘッドから出力された前記第１トラックの信号に対して前記第１記憶部に記憶されている前記第１情報に基づいて復号処理を行い、
前記第２記憶部に記憶されている前記第２情報に基づいて前記磁気ヘッドを前記第２トラックへ移動させ、
前記磁気ディスクから１トラックのデータを読み出す毎、前記第１記憶部が記憶する前記第１情報及び前記第２記憶部が記憶する前記第２情報を１トラックずつ交互に更新する請求項１記載の磁気ディスク装置。
【請求項３】
前記第１トラックへの前記磁気ヘッドの位置制御のための第１情報及び前記第２トラックへの前記磁気ヘッドの位置制御のための第２情報を記憶する第１半導体メモリと、
前記第１半導体メモリよりも処理速度が速い第２半導体メモリと、をさらに具備し、
前記コントローラは、
前記第１半導体メモリから前記第１情報を読出し、読み出した前記第１情報を前記第２半導体メモリに書き込み、
前記磁気ヘッドから出力された前記第１トラックの信号に対して前記第２半導体メモリに記憶されている前記第１情報に基づいて復号処理を行い、
前記第２半導体メモリに記憶されている前記第２情報に基づいて前記磁気ヘッドを前記第２トラックへ移動させる請求項１記載の磁気ディスク装置。
【請求項４】
前記磁気ヘッドから出力された信号を格納するバッファメモリをさらに具備し、
前記コントローラは、
前記第２半導体メモリが前記第１情報及び前記第２情報を記憶している間、前記磁気ヘッドから出力された前記第１トラックの信号を前記バッファメモリに書き込み、前記バッファメモリに記憶されている前記第１トラックの信号の復号結果を前記第１半導体メモリに書き込み、
前記磁気ヘッドから出力された前記第２トラックの信号を前記バッファメモリに書き込むと、前記第２半導体メモリに記憶されている前記第１情報を第３トラックへの前記磁気ヘッドの位置制御のための第３情報で上書きし、
前記第２半導体メモリに前記第３情報を書き込むと、前記磁気ヘッドを前記第３トラックへ移動させる請求項３記載の磁気ディスク装置。
【請求項５】
前記コントローラは、前記第２トラックのライト信号を符号化するとともに前記第１トラックの符号化ライト信号を前記磁気ディスクに書き込む請求項３記載の磁気ディスク装置。
【請求項６】
前記コントローラは、
前記第２半導体メモリに記憶されている前記第１情報に基づいて前記第１トラックの符号化ライトデータを前記磁気ディスクに書き込み、
前記第２半導体メモリに記憶されている前記第２情報に基づいて前記第２トラックのライトデータを符号化する請求項５記載の磁気ディスク装置。
【請求項７】
前記磁気ディスクは前記複数のトラックへの前記磁気ヘッドの位置制御のための複数の情報を記憶し、前記複数の情報は前記第１情報及び前記第２情報を含み、
前記コントローラは、
前記磁気ディスクから前記複数の情報を読出し、読出した前記複数の情報を前記第１半導体メモリに書き込み、
前記第１半導体メモリから前記第１情報及び前記第２情報を読出し、読出した前記第１情報及び前記第２情報を前記第２半導体メモリに書き込み、
前記第２半導体メモリに記憶されている前記第２情報に基づいて前記第２トラックのライト信号を符号化し、
前記第２半導体メモリに記憶されている前記第１情報に基づいて前記第１トラックの符号化ライトデータを前記磁気ディスクに書き込む請求項６記載の磁気ディスク装置。
【請求項８】
前記第１情報及び前記第２情報はシリンダ番号、ヘッド番号、セクタ番号を具備する請求項２、請求項３、請求項４、請求項５、請求項６又は請求項７記載の磁気ディスク装置。
【請求項９】
複数のトラックを含む磁気ディスクと、
前記磁気ディスクからデータを読み出すための磁気ヘッドと、を具備する磁気ディスク装置の方法であって、
前記複数のトラックのうち第１トラック及び第２トラックからのデータを読み出す場合に、前記磁気ヘッドから出力された前記第１トラックの信号の復号が完了する前に、前記第２トラックへの前記磁気ヘッドの移動を開始する方法。
【請求項１０】
少なくとも前記磁気ヘッドを前記第１トラックへアクセスするための第１情報を第１記憶部に書き込み、
少なくとも前記磁気ヘッドを前記第２トラックへアクセスするための第２情報を第２記憶部に書き込み、
前記磁気ヘッドから出力された前記第１トラックの信号に対して前記第１記憶部に記憶されている前記第１情報に基づいて復号処理を行い、
前記第２記憶部に記憶されている前記第２情報に基づいて前記磁気ヘッドを前記第２トラックへ移動させ、
前記磁気ディスクから１トラックのデータを読み出す毎、前記第１記憶部が記憶する前記第１情報及び前記第２記憶部が記憶する前記第２情報を１トラックずつ交互に更新する請求項９記載の方法。
【請求項１１】
前記第１トラックへの前記磁気ヘッドの位置制御のための第１情報及び前記第２トラックへの前記磁気ヘッドの位置制御のための第２情報を第１半導体メモリに書き込み、
前記第１半導体メモリから前記第１情報を読出し、読み出した前記第１情報を前記第１半導体メモリよりも処理速度が速い第２半導体メモリに書き込み、
前記磁気ヘッドから出力された前記第１トラックの信号に対して前記第２半導体メモリに記憶されている前記第１情報に基づいて復号処理を行い、
前記第２半導体メモリに記憶されている前記第２情報に基づいて前記磁気ヘッドを前記第２トラックへ移動させる請求項９記載の方法。
【請求項１２】
前記第２半導体メモリが前記第１情報及び前記第２情報を記憶している間、前記磁気ヘッドから出力された前記第１トラックの信号をバッファメモリに書き込み、前記バッファメモリに記憶されている前記第１トラックの信号の復号結果を前記第１半導体メモリに書き込み、
前記磁気ヘッドから出力された前記第２トラックの信号を前記バッファメモリに書き込むと、前記第２半導体メモリに記憶されている前記第１情報を第３トラックへの前記磁気ヘッドの位置制御のための第３情報で上書きし、
前記第２半導体メモリに前記第３情報を書き込むと、前記磁気ヘッドを前記第３トラックへ移動させる請求項１１記載の方法。
【請求項１３】
前記第２トラックのライト信号を符号化するとともに前記第１トラックの符号化ライト信号を前記磁気ディスクに書き込む請求項１１記載の方法。
【請求項１４】
前記第２半導体メモリに記憶されている前記第１情報に基づいて前記第１トラックの符号化ライトデータを前記磁気ディスクに書き込み、
前記第２半導体メモリに記憶されている前記第２情報に基づいて前記第２トラックのライトデータを符号化する請求項１３記載の方法。
【請求項１５】
前記複数のトラックへの前記磁気ヘッドの位置制御のための複数の情報であって前記第１情報及び前記第２情報を含む複数の情報を前記磁気ディスクから読出し、読出した前記複数の情報を前記第１半導体メモリに書き込み、
前記第１半導体メモリから前記第１情報及び前記第２情報を読出し、読出した前記第１情報及び前記第２情報を前記第２半導体メモリに書き込み、
前記第２半導体メモリに記憶されている前記第２情報に基づいて前記第２トラックのライト信号を符号化し、
前記第２半導体メモリに記憶されている前記第１情報に基づいて前記第１トラックの符号化ライトデータを前記磁気ディスクに書き込む請求項１４記載の方法。
【請求項１６】
前記第１情報及び前記第２情報はシリンダ番号、ヘッド番号、セクタ番号を具備する請求項１０、請求項１１、請求項１２、請求項１３、請求項１４又は請求項１５記載の方法。
【請求項１７】
磁気ディスク装置に接続され得るコントローラであって、
磁気ヘッドから出力される信号を復号処理する復号回路と、
少なくとも前記磁気ヘッドを第１トラックへアクセスするための第１情報を記憶する第１記憶部と、
少なくとも前記磁気ヘッドを第２トラックへアクセスするための第２情報を記憶する第２記憶部と、を具備し、
前記第１トラックの信号に対する前記第１記憶部に記憶されている前記第１情報に基づく前記復号回路による復号処理が完了する前に前記第２記憶部に記憶されている前記第２情報に基づいて前記磁気ヘッドを前記第２トラックへ移動させるコントローラ。
【請求項１８】
磁気ディスクから１トラックのデータを読み出す毎、前記第１記憶部が記憶する前記第１情報及び前記第２記憶部が記憶する前記第２情報を１トラックずつ交互に更新する請求項１７記載のコントローラ。
【請求項１９】
前記磁気ヘッドから出力された信号を格納するバッファメモリをさらに具備し、
前記第１記憶部が前記第１情報を記憶し、前記第２記憶部が前記第２情報を記憶している間、前記磁気ヘッドから出力された前記第１トラックの信号を前記バッファメモリに書き込み、
前記磁気ヘッドから出力された前記第２トラックの信号を前記バッファメモリに書き込むと、前記第２記憶部に記憶されている前記第１情報を少なくとも前記磁気ヘッドを第３トラックへアクセスするための第３情報で上書きし、
前記第２記憶部に前記第３情報を書き込むと、前記磁気ヘッドを前記第３トラックへ移動させる請求項１７記載のコントローラ。
【請求項２０】
前記第１情報及び前記第２情報はシリンダ番号、ヘッド番号、セクタ番号を具備する請求項１７、請求項１８又は請求項１９項記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は磁気ディスク装置、コントローラ及び方法に関する。
【背景技術】
【０００２】
磁気ディスクから読み出された符号化データはコントローラに入力され、リード／ライトチャネル内のワークメモリに記憶される。リード／ライトチャネルはワークメモリ内のデータに対して復号処理を行う。復号処理により得られたデータはワークメモリからバッファメモリに転送され、その後、ホスト装置に出力される。近年、データの信頼性を向上させるために、データの符号化方式に、誤り訂正能力の高い符号、例えばＬＤＰＣ（Low Density Parity Check）符号を用いる方式が採用されている。このため、復号処理時間、特に誤り訂正時間が長くなっている。
【０００３】
データリードやデータライトの際、ヘッドを目標トラックに位置決め（シークも含む）することやデータの符号化／復号処理のために、シリンダ番号、トラック内のセクタ数やクロック周波数等に関する情報が必要である。これらの情報はディスクに予め記録されている。あるトラックのデータリードの前にコントローラはこれらの情報をディスクから読み出し、レジスタ等の内部メモリに書き込む。コントローラは、当該トラックのデータの符号化／復号処理が完了するまで、これらの情報を内部メモリに保持している必要がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平3-156523号公報
【特許文献２】米国特許第5,732,208号明細書
【特許文献３】米国特許第6,697,913号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は複数トラックを連続して好適にアクセスすることができる磁気ディスク装置、コントローラ及び方法を提供することである。
【課題を解決するための手段】
【０００６】
実施形態によれば、磁気ディスク装置は、複数のトラックを含む磁気ディスクと、磁気ディスクからデータを読み出すための磁気ヘッドと、コントローラとを具備する。コントローラは、複数のトラックのうち第１トラック及び第２トラックからのデータを読み出す場合に、磁気ヘッドから出力された第１トラックの信号の復号が完了する前に、第２トラックへの磁気ヘッドの移動を開始する。
【図面の簡単な説明】
【０００７】
【図１】図１は実施形態に係る磁気ディスク装置の概略構成の一例を示す。
【図２】図２は第１実施形態に係る磁気ディスク装置のリード動作の一例を示すフローチャートである。
【図３】図３は複数トラックの連続リードの一例の概略を示すタイミングチャートである。
【図４】図４は複数トラックの連続リードの比較例を示すタイミングチャートである。
【図５】図５は磁気ディスク装置のライト動作の一例を示すフローチャートである。
【図６】図６は複数トラックの連続ライトの一例の概略を示すタイミングチャートである。
【図７】図７は複数トラックの連続ライトの比較例を示すタイミングチャートである。
【発明を実施するための形態】
【０００８】
以下、実施の形態について図面を参照して説明する。なお、開示はあくまで一例にすぎず、以下の実施形態に記載した内容により発明が限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各部分のサイズ、形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、対応する要素には同じ参照数字を付して、詳細な説明を省略する場合もある。
【０００９】
［概略構成］  
図１は実施形態に係る磁気ディスク装置（ハードディスクドライブとも称する）の典型的な構成例を示すブロック図である。磁気ディスク装置は磁気ディスク（以下、単にディスクと称する）１２と、スピンドルモータ（ＳＰＭ）１４と、アクチュエータ１６と、ドライバＩＣ１８と、ヘッドＩＣ２０と、メインコントローラ２２、ボイスコイルモータ（ＶＣＭ）３４等を備えている。メインコントローラ２２はホスト装置（図示せず）に接続される。
【００１０】
ディスク１２は磁気記録媒体であり、例えばその両側の表面にデータを磁気的に記録するライト面を備えている。ディスク１２はスピンドルモータ１４によって高速に回転される。スピンドルモータ１４はドライバＩＣ１８から供給される電流又は電圧により駆動される。
【００１１】
ディスク１２のライト面は複数のトラック１２Ａを備えている。トラック１２Ａは同心円状の複数のトラックでもよいし、スパイラル状の１本のトラックでもよい。ディスク１２は半径方向に放射状に形成された複数のサーボ領域１２Ｂも備えている。複数のサーボ領域１２Ｂは円周方向に等間隔で離散的に配置されている。円周方向で隣接するサーボ領域１２Ｂの間の各トラック１２Ａはデータ領域１２Ｃとして用いられる。各トラック１２Ａ内のサーボ領域１２Ｂはサーボフレームとも呼ばれる。各トラック１２Ａ内のサーボ領域１２Ｂと当該サーボ領域１２Ｂに隣接するデータ領域１２Ｃとから構成される領域はサーボセクタとも称される。データ領域１２Ｃは一定サイズ、例えば５１２バイトの複数のデータセクタを備えている。
【００１２】
サーボ領域１２Ｂにはサーボデータが書き込まれている。サーボデータはトラック番号、セクタ番号、バーストデータを含む。セクタ番号はサーボセクタを特定する番号であり、バーストデータはトラックの中心に対するヘッドの相対的な位置を示す。
【００１３】
ディスク１２のライト面に対応してライトヘッド３２Ａとリードヘッド３２Ｂが配置される。ライトヘッド３２Ａとリードヘッド３２Ｂとを合わせて、単にヘッド３２とも称する。図１は一方のライト面に対応するライトヘッド３２Ａとリードヘッド３２Ｂを示すが、他方のライト面にも同様にライトヘッドとリードヘッドが配置され得る。ライトヘッド３２Ａとリードヘッド３２Ｂは、アクチュエータ１６のアーム１６Ａから延出したサスペンション１６Ｂの先端に取り付けられたスライダ１６Ｃに取り付けられる。アクチュエータ１６はボイスコイルモータ３４により駆動される。ボイスコイルモータ３４はドライバＩＣ１８から供給される電流又は電圧により駆動される。ライトヘッド３２Ａとリードヘッド３２Ｂは、アクチュエータ１６がボイスコイルモータ３４によって駆動されることにより、ディスク１２上を当該ディスク１２の半径方向に円弧を描くように移動し、目標のトラックに位置決めされる。
【００１４】
図１は一枚のディスク１２を備えた磁気ディスク装置を示すが、実施形態の磁気ディスク装置は、積層された複数枚のディスクと、複数のディスクそれぞれに対して配置される複数のヘッドを備えてもよい。両面にライト面が備えられた複数枚の両面ディスクが備えられる場合、ディスク枚数の２倍の数のヘッドが複数のディスクそれぞれの両面に対して配置される。ライト面に対してヘッドがそれぞれ対応しているので、ライト面はヘッド番号で表すことができる。複数枚の両面ディスクが積層される場合、任意のデータセクタの位置はＣＨＳ情報で指定される。各ライト面上の同一半径のトラックの集合をシリンダと称する。シリンダ番号Ｃはディスクの半径方向の位置を示し、当該データセクタが含まれるトラックに対応する。ヘッド番号Ｈは当該データセクタが何番目のライト面に位置するかを示す。セクタ番号Ｓは当該データセクタがトラック内の何番目のサーボセクタに位置するかを示す。一般的に、最外周のシリンダをシリンダ０とし、最上面のヘッドをヘッド０とし、トラックの最初のサーボセクタをセクタ１とし、以降順番に番号が割り振られる。
【００１５】
ドライバＩＣ１８はメインコントローラ２２内のサーボコントローラ４４の制御に従いスピンドルモータ１４とボイスコイルモータ３４とを駆動する。ヘッドＩＣ２０はヘッドアンプとも呼ばれ、リードヘッド３２Ｂの出力信号、つまりリード信号を増幅する可変利得増幅器を含む。ヘッドＩＣ２０はメインコントローラ２２（より詳細には、メインコントローラ２２内のリード／ライトチャネル４２）から出力されるライトデータをライト電流に変換し、ライト電流をライトヘッド３２Ａに出力する。
【００１６】
メインコントローラ２２は複数の要素が単一チップに集積されたＳｏＣ（System on a Chip）と呼ばれるシステムＬＳＩによって実現される。メインコントローラ２２はリード／ライトチャネル４２と、ハードディスクコントローラ（ＨＤＣ）４６と、サーボコントローラ４４とを備えている。ＳＤＲＡＭ等からなるバッファメモリ６２や、フラッシュメモリ６４等の半導体メモリを含むメモリユニット２４がメインコントローラ２２の外部に設けられる。
【００１７】
リード／ライトチャネル４２はヘッドＩＣ２０へ供給する信号やヘッドＩＣ２０から供給される信号を処理する。リード／ライトチャネル４２は、符号化／復号等のためにデータを一時的に格納するＳＲＡＭ等からなるワークメモリ５２を含む。ライト時は、ハードディスクコントローラ４６はホスト装置から転送されたユーザデータを一旦バッファメモリ６２に書き込み、ユーザデータを一定サイズ、例えば５１２バイトずつのセクタデータに分割し、セクタデータ毎にＣＲＣ（Cyclic Redundancy Check）符号を付加し、ＣＲＣが付加されたセクタデータをリード／ライトチャネル４２内のワークメモリ５２に転送する。ハードディスクコントローラ４６はリード／ライトチャネル４２に転送するデータにＣＨＳ情報も含める。ＣＨＳ情報はセクタデータ内に追加されてもよいし、ＥＸＯＲ演算によりＣＲＣ符号に含まれてもよい。リード／ライトチャネル４２はワークメモリ５２内のセクタデータをＬＤＰＣ符号等の誤り訂正符号を用いて符号化する。符号化データはヘッドＩＣ２０に転送され、ライトヘッド３２Ａによりディスク１２にライトされる。
【００１８】
リード時は、リード／ライトチャネル４２はヘッドＩＣ２０から供給されたリードヘッド３２Ｂの出力信号に基づくアナログデータをデジタルデータに変換し、デジタルデータをワークメモリ５２に格納する。リード／ライトチャネル４２はワークメモリ５２に格納されたデジタルデータに対して復号処理を行う。リード／ライトチャネル４２は誤り訂正符号に基づいて復号処理を行い、正しい復号結果が得られたと判断するまで復号処理を繰り返す。正しい復号結果が得られたと判断すると、リード／ライトチャネル４２は復号処理により得られたデータをワークメモリ５２からハードディスクコントローラ４６に転送する。ハードディスクコントローラ４６は復号処理により得られたデータをＣＲＣ符号に基づきチェックする。ＣＲＣ符号に基づき誤りがあると判定すると、ハードディスクコントローラ４６はリード／ライトチャネル４２に対してリードリトライを指示する。誤りがないと判定すると、ハードディスクコントローラ４６はワークメモリ５２から転送されたデータをバッファメモリ６２に転送する。ハードディスクコントローラ４６はバッファメモリ６２内のデータを適宜ホスト装置に転送する。
【００１９】
ハードディスクコントローラ４６はホストインタフェースを介してホスト装置と接続される。ホスト装置は磁気ディスク装置を自身のストレージ装置として利用することができる。ホスト装置及び磁気ディスク装置は、例えばパーソナルコンピュータ、ビデオカメラ、音楽プレーヤー、携帯端末、携帯電話機、或いはプリンタ装置のような電子機器に備えられる。ハードディスクコントローラ４６はホスト装置に信号を転送するとともにホスト装置から転送される信号を受信するホストインタフェースコントローラとして機能する。具体的には、ハードディスクコントローラ４６はホスト装置から転送されるコマンド（ライトコマンド、リードコマンド等）を受信する。ハードディスクコントローラ４６はホスト装置とメモリユニット２４との間のデータ転送を制御する。ハードディスクコントローラ４６はリード／ライトチャネル４２、ヘッドＩＣ２０及びライトヘッド３２Ａ、リードヘッド３２Ｂを介してディスク１２へのデータライト及びディスク１２からのデータリードを制御するディスクインタフェースコントローラとしても機能する。
【００２０】
サーボコントローラ４４はドライバＩＣ１８を介してスピンドルモータ１４及びボイスコイルモータ３４を制御する。ヘッド３２をディスク１２上の目標トラックの目標位置に位置決めするために、サーボコントローラ４４はリード／ライトチャネル４２によって抽出されるサーボデータに基づいてボイスコイルモータ３４を制御する。ボイスコイルモータ３４を制御することは、アクチュエータ１６の回転角度を制御することと等価である。
【００２１】
リード／ライトチャネル４２、ハードディスクコントローラ４６、サーボコントローラ４４はそれぞれ図示しないマイクロプロセッサユニット（ＭＰＵ）を備えている。これらのＭＰＵはリード／ライトチャネル４２、ハードディスクコントローラ４６、サーボコントローラ４４のためのそれぞれの制御プログラムを実行することにより、リード／ライトチャネル４２、ハードディスクコントローラ４６、サーボコントローラ４４としての機能を実現している。これらのＭＰＵは連動して、リード／ライトチャネル４２、サーボコントローラ４４、ハードディスクコントローラ４６を互いに連携するように制御する。これらの制御プログラムはフラッシュメモリ６４に格納される。単一のＭＰＵがこれらの制御プログラムを時分割で実行しても構わない。ハードディスクコントローラ４６は後述するトラック関連情報を記憶するＳＲＡＭ等からなるメモリ４８を含む。メモリ４８は２トラック分のトラック関連情報を記憶するエリアTrack AとTrack Bを含む。
【００２２】
メモリユニット２４はバッファメモリ６２、フラッシュメモリ６４を備えている。フラッシュメモリ６４は書き換え可能な不揮発性半導体メモリであり、その記憶領域の一部にはハードディスクコントローラ４６及びサーボコントローラ４４を含むメインコントローラ２２の機能を実現するための制御プログラム（ファームウェア）が予め格納されている。フラッシュメモリ６４の記憶領域の他の一部は、論理アドレスと物理アドレスとの対応表（アドレス変換表）や、ディフェクトセクタに関する情報（ディフェクトセクタを示す物理アドレス等）も格納する。バッファメモリ６２の記憶領域の少なくとも一部は、ハードディスクコントローラ４６及びサーボコントローラ４４のための作業領域として用いられる。リード／ライトチャネル４２で復号されたリードデータはバッファメモリ６２に転送され、バッファメモリ６２に一旦格納され、その後ホスト装置に送信される。ホスト装置から送信されたライトデータはバッファメモリ６２に一旦格納され、その後リード／ライトチャネル４２に転送される。図１では、メモリユニット２４はメインコントローラ２２に外付けされているが、メインコントローラ２２に内蔵されてもよい。
【００２３】
[リード動作]  
図２のフローチャートを参照して、第１実施形態に係る磁気ディスク装置のリード動作を説明する。磁気ディスク装置に供給される電源がオンされると、Ｓ１２で、ハードディスクコントローラ４６はディスク１２から各トラックのトラックフォーマットに関するトラック関連情報を読出し、バッファメモリ６２に書き込む。トラック関連情報は、各セクタのＣＨＳ情報、各サーボセクタ内の先頭のデータセクタのセクタ番号、各サーボセクタ内の２番目のデータセクタの位置、各サーボセクタ内のセクタの標準的なセクタ長、各サーボセクタ内のデータセクタ数、スキュー設定値、欠陥セクタテーブル、クロック情報等を含む。トラック内にデータセクタを配置する際、各データセクタを物理的にどの位置に配置するかはトラック関連情報に基づいて定まる。トラック関連情報はトラック毎の情報であり、Ｓ１２で、全部のトラックのトラック関連情報がディスク１２からバッファメモリ６２に転送される。
【００２４】
Ｓ１４で、ホスト装置からリードコマンドがハードディスクコントローラ４６に入力される。リードコマンドはリード開始セクタのアドレス（ＬＢＡ）とアドレス範囲（ＬＢＡ長）を含む。リードコマンドに含まれるＬＢＡ（Logical Block Address）はアドレス変換表に基づいてＣＨＳ情報に変換される。
【００２５】
Ｓ１６で、ハードディスクコントローラ４６はリード開始セクタの位置のトラック（リード開始トラック（トラックｉとする））のトラック関連情報をバッファメモリ６２から読み出し、メモリ４８の第１エリアTrack Aに書込む。
【００２６】
Ｓ１８で、サーボコントローラ４４はメモリ４８の第１エリアTrack Aに記憶されているトラック関連情報内のＣＨＳ情報に基づいて、ヘッド３２の現在位置とリード開始セクタの位置との差に応じたシーク電流又は電圧をボイスコイルモータ３４に供給し、ヘッド３２をリード開始セクタの位置に位置決め（シーク）する。ボイスコイルモータ３４はシーク電流又は電圧に応じて回転し、ヘッド３２をリード開始トラックに移動させる。
【００２７】
Ｓ２２で、リードライトチャネル４２はトラックｉの符号化セクタデータのディスク１２からの読み出しを開始する。先ず、リードライトチャネル４２はリード開始セクタである最初のデータ（符号化セクタデータ）をディスク１２から読み出し、読み出した符号化セクタデータをワークメモリ５２に書き込む。最初の符号化セクタデータのワークメモリ５２への書き込みが完了すると、リードライトチャネル４２は、引き続き２番目以降のセクタの符号化セクタデータもディスク１２から順次読み出し、ワークメモリ５２に順次書き込む。
【００２８】
最初の符号化セクタデータのワークメモリ５２への書き込みが完了すると、Ｓ２３で、リード／ライトチャネル４２はワークメモリ５２内の符号化セクタデータに対する復号処理を開始する。先ず、リード／ライトチャネル４２はワークメモリ５２内の最初の符号化セクタデータに対して復号処理を行う。ディスク１２に書き込まれるデータの符号化方式には、例えば誤り訂正能力の高いＬＤＰＣ（Low Density Parity Check）符号を用いる符号化方式が採用されている。符号化はセクタ単位で行われるが、トラック単位の符号化も併用してもよい。セクタ単位の符号化はＥＣＣ（誤り訂正符号）ビットを元のセクタデータに付加することにより行われ、トラック単位の符号化は1トラックに対してセクタデータの他にＥＣＣビットとなるパリティセクタを付加することにより行われる。トラック単位の符号化も行われている場合は、リード／ライトチャネル４２は先ずセクタＥＣＣに基づいてセクタ単位の復号処理を行う。セクタ単位の復号処理で正しい復号結果が得られない場合、リード／ライトチャネル４２はパリティセクタに基づいてトラック単位の復号処理により当該セクタデータを求める。
【００２９】
リード／ライトチャネル４２は復号処理により得られたセクタデータをハードディスクコントローラ４６へ送る。Ｓ２４で、ハードディスクコントローラ４６はリード／ライトチャネル４２からのセクタデータをＣＲＣ符号に基づいてチェックする。誤りがある場合、ハードディスクコントローラ４６はリード／ライトチャネル４２に対してリードリトライを指示する。誤りがない場合、ハードディスクコントローラ４６はリード／ライトチャネル４２から受信したセクタデータをバッファメモリ６２に転送する。リード／ライトチャネル４２は最初の符号化セクタデータを復号処理して得られたセクタデータをハードディスクコントローラ４６に転送すると、２番目以降の符号化セクタデータに対して復号処理を順次行ない、復号処理により得られたセクタデータをハードディスクコントローラ４６に転送する。バッファメモリ６２に転送されたセクタデータはホスト装置との通信が可能なタイミングでホスト装置に転送される。
【００３０】
Ｓ２６で、リード／ライトチャネル４２はトラックｉのリード対象の全ての符号化セクタデータをディスク１２からワークメモリ５２まで読み出したか否かを判断する。否の場合（Ｓ２６のＮＯ）、処理はＳ２６で待機し、Ｓ２２のトラックｉの符号化セクタデータの読み出し／ワークメモリ５２への転送と、Ｓ２３の復号処理と、Ｓ２４のセクタデータのハードディスクコントローラ４６及びバッファメモリ５２への転送とが継続される。
【００３１】
トラックｉのリード対象の全ての符号化セクタデータがディスク１２からワークメモリ５２まで読み出された場合（Ｓ２６のＹＥＳ）、Ｓ２８で、ハードディスクコントローラ４６はリードコマンドで指定されたＬＢＡ長の全てのデータのリードを完了したか否かを判断する。すなわち、ハードディスクコントローラ４６はリードコマンドで指定されたＬＢＡ長が複数トラックに跨っているか否かを判断し、跨っている場合未リードの符号化セクタデータを含むトラックがあるか否かを判断する。リード完了の場合（Ｓ２８のＹＥＳ）、すなわちリードコマンドで指定されたＬＢＡ長が複数トラックに跨っていない場合及び跨っていても未リードのトラックがない場合、トラックｉの全てのセクタデータのバッファメモリ６２への転送完了を待って動作終了する。リード完了ではない場合（Ｓ２８のＮＯ）、Ｓ３２で、ハードディスクコントローラ４６は次のトラックであるトラック（ｉ＋１）のトラック関連情報をバッファメモリ６２から読み出し、メモリ４８の第２エリアTrack Bに書込む。
【００３２】
Ｓ３４で、サーボコントローラ４４はヘッド３２の現在位置と次のトラック（ｉ＋１）のリード開始セクタの位置との差に応じたシーク電流又は電圧をボイスコイルモータ３４に供給し、ヘッド３２を次のトラック（ｉ＋１）の最初のセクタの位置に位置決め（シーク）する。
【００３３】
Ｓ３８で、リード／ライトチャネル４２はトラック（ｉ＋１）の符号化セクタデータのディスク１２からの読み出しを開始する。先ず、リード／ライトチャネル４２はトラック（ｉ＋１）の最初の符号化セクタデータをディスク１２から読み出し、読み出した符号化セクタデータをワークメモリ５２に書き込む。最初の符号化セクタデータのワークメモリ５２への書き込みが完了すると、リード／ライトチャネル４２は、引き続き２番目以降のセクタの符号化セクタデータもディスク１２から順次読み出し、ワークメモリ５２に順次書き込む。
【００３４】
最初の符号化セクタデータのワークメモリ５２への書き込みが完了すると、Ｓ３９で、リード／ライトチャネル４２は、Ｓ２３と同様に、ワークメモリ５２内の符号化セクタデータに対する復号処理を開始する。先ず、リード／ライトチャネル４２はワークメモリ５２内の最初の符号化セクタデータに対して復号処理を行う。符号化の際、セクタ単位のみではなくトラック単位でＥＣＣビットを付加した場合、符号化セクタデータはセクタ単位及びトラック単位で復号処理される。トラック単位の復号処理は１トラックの全ての符号化セクタデータがワークメモリ５２に書き込まれた後に行われる。
【００３５】
リード／ライトチャネル４２は復号処理により得られたセクタデータをハードディスクコントローラ４６へ送る。Ｓ４２で、ハードディスクコントローラ４６はリード／ライトチャネル４２から復号結果のセクタデータをＣＲＣ符号に基づいてチェックする。誤りがある場合、ハードディスクコントローラ４６はリード／ライトチャネル４２に対してリードリトライを指示する。誤りがない場合、ハードディスクコントローラ４６はリード／ライトチャネル４２から受信したセクタデータをバッファメモリ６２に転送する。リードライトチャネル４２は最初の符号化セクタデータを復号処理して得られたセクタデータをハードディスクコントローラ４５に転送すると、２番目以降の符号化セクタデータに対して復号処理を順次行ない、復号処理により得られたセクタデータをハードディスクコントローラ４５に転送する。
【００３６】
Ｓ４４で、リードライトチャネル４２はトラック（ｉ＋１）のリード対象の全ての符号化セクタデータをディスク１２からワークメモリ５２まで読み出したか否かを判断する。否の場合（Ｓ４４のＮＯ）、処理はＳ４４で待機し、Ｓ３８のトラック（ｉ＋１）の符号化セクタデータの読み出し／ワークメモリ５２への転送と、Ｓ３９の復号処理と、Ｓ４２のセクタデータのハードディスクコントローラ４６及びバッファメモリ５２への転送とが継続される。
【００３７】
トラック（ｉ＋１）のリード対象の全ての符号化セクタデータがディスク１２からワークメモリ５２まで読み出された場合（Ｓ４４のＹＥＳ）、Ｓ４６で、ハードディスクコントローラ４６は、Ｓ２８と同様に、リードコマンドで指定されたＬＢＡ長の全てのデータのリードを完了したか否かを判断する。リード完了の場合（Ｓ４６のＹＥＳ）は、トラック（ｉ＋１）の全てのセクタデータのバッファメモリ６２への転送完了を待って動作終了する。
【００３８】
リード完了ではない場合（Ｓ４６のＮＯ）、すなわち３番目のトラックのデータをリードする必要がある場合、Ｓ４８で、ハードディスクコントローラ４６は変数ｉを２だけ増加し（ｉ←ｉ＋２）、Ｓ５２に進む。Ｓ５２で、ハードディスクコントローラ４６はトラックｉ（ここでは３番目のトラック）のトラック関連情報をバッファメモリ６２から読み出し、メモリ４８の第１エリアTrack Aに書込む。Ｓ５４で、サーボコントローラ４４はヘッド３２を次のトラックｉの最初のセクタの位置に位置決め（シーク）する。その後、メインコントローラ２２はＳ２２からの処理を繰り返す。
【００３９】
［連続リード］  
以上の処理により、実施形態の磁気ディスク装置はトラック番号が１ずつ増加する複数のトラックのデータを連続してリードし、ホスト装置へ送信することができる。メインコントローラ２２内のハードディスクコントローラ４６内のメモリ４８は、２トラック分のトラック関連情報を記憶するエリアTrack AとTrack Bを含む。
【００４０】
図３はディスク１２からリード／ライトチャネル４２のワークメモリ５２へ転送される符号化セクタデータと、リード／ライトチャネル４２のワークメモリ５２からバッファメモリ６２へ転送されるセクタデータと、ハードディスクコントローラ４６内のメモリ４８のエリアTrack AとTrack Bのトラック関連情報の更新状態とを時系列で示す。ディスク１２からワークメモリ５２へ転送される符号化セクタデータには、ＣＨＳ情報とＣＲＣ符号とＥＣＣが付加されている。ワークメモリ５２からバッファメモリ６２へ転送されるセクタデータには、ＣＨＳ情報とＣＲＣ符号が付加されている。
【００４１】
図２のＳ１６でトラックｉ（リード開始トラック）のトラック関連情報がメモリ４８のエリアTrack Aに書き込まれる。Ｓ１８でトラック関連情報に基づいてヘッド３２はトラックｉに位置決めされ、Ｓ２２でトラックｉの符号化セクタデータがディスク１２から順次読み出され、ワークメモリ５２に順次書き込まれる。Ｓ２３でトラックｉの符号化セクタデータに対して復号処理が行われる。Ｓ２４で、復号結果がハードディスクコントローラ４６に転送され、ＣＲＣチェックが行われる。誤りがある場合、そのセクタの符号化セクタデータが再びディスク１２から読み出され、読み出された符号化セクタデータがワークメモリ５２に書き込まれる。誤りがない場合、復号結果のセクタデータがワークメモリ５２からバッファメモリ６２に転送される。図３は、ＣＲＣチェックでエラーが検出されなかった場合を示す。
【００４２】
トラックｉの最初の符号化セクタデータがディスク１２からワークメモリ５２へ転送されてからトラックｉの最初の符号化セクタデータの復号処理に要する時間が経過すると、復号処理により得られたトラックｉのセクタデータがワークメモリ５２からバッファメモリ６２に順次転送される。
【００４３】
トラックｉのリード対象の全ての符号化セクタデータがディスク１２からワークメモリ５２に転送されると、復号処理により得られたトラックｉのセクタデータがワークメモリ５２からバッファメモリ６２に転送中であっても、Ｓ３２でエリアTrack Bにトラック（ｉ＋１）のトラック関連情報が書き込まれ、Ｓ３４でトラック（ｉ＋１）へのシークが開始される。
【００４４】
トラック（ｉ＋１）へのシークが完了すると、復号処理により得られたトラックｉのセクタデータがワークメモリ５２からバッファメモリ６２に転送中であっても、Ｓ３８でトラック（ｉ＋１）の符号化セクタデータがディスク１２から順次読み出され、ワークメモリ５２に順次書き込まれる。Ｓ３９でトラック（ｉ＋１）の符号化セクタデータに対して復号処理が行われる。Ｓ４２で、復号結果のセクタデータがワークメモリ５２からバッファメモリ６２に転送される。トラックｉの最初の符号化セクタデータがディスク１２からワークメモリ５２へ転送されてからトラック（ｉ＋１）の最初の符号化セクタデータの復号処理に要する時間が経過すると、復号処理により得られたトラック（ｉ＋１）のセクタデータがワークメモリ５２からバッファメモリ６２に順次転送される。
【００４５】
トラック（ｉ＋１）のリード対象の全ての符号化セクタデータがディスク１２からワークメモリ５２に転送されると、復号処理により得られたトラック（ｉ＋１）のセクタデータがワークメモリ６２からバッファメモリ６２に転送中であっても、Ｓ５２でエリアTrack Aにトラック（ｉ＋２）のトラック関連情報が書き込まれ、Ｓ５４でトラック（ｉ＋２）へのシークが開始される。
【００４６】
以下、同様に、各トラックｊの全ての符号化セクタデータがディスク１２からワークメモリ５２に転送されると、１つ前のトラック（ｊ−１）のトラック関連情報を記憶しているメモリ４８の一方のエリアTrackに次のトラック（ｊ＋１）のトラック関連情報を書き込む。書き込みの時点では、メモリ４８の他方のエリアTrackはトラックｊのトラック関連情報を保持している。そのため、復号により得られた各トラックのセクタデータがワークメモリ５２からバッファメモリ６２に転送される間に、次トラックのシークを開始することができ、複数トラックに跨る連続リードを効率良く行うことができる。
【００４７】
比較例として、ハードディスクコントローラ４６内のメモリ４８が１トラックのトラック関連情報を記憶する場合の連続リードを図４を参照して説明する。
【００４８】
トラック関連情報はトラックｉのリードの開始前にメモリ４８のエリアTrackに書き込まれる。メモリ４８のエリアTrack内のトラック関連情報に基づいてトラックｉの符号化セクタデータがディスク１２から順次読み出され、リードライトチャネル４２のワークメモリ５２に順次書き込まれる。トラックｉの符号化セクタデータが順次復号され、ディスク１２からワークメモリ５２へトラックｉの最初の符号化セクタデータが転送されてからトラックｉの最初の符号化セクタデータの復号処理に要する時間が経過すると、復号処理により得られたトラックｉのセクタデータがワークメモリ５２からバッファメモリ６２に順次転送される。
【００４９】
復号処理により得られたトラックｉのセクタデータのワークメモリ５２からバッファメモリ６２への転送が完了すると、メモリ４８のエリアTrackにトラック（ｉ＋１）のトラック関連情報が書き込まれ、トラック（ｉ＋１）へのシークが開始される。トラック（ｉ＋１）へのシークが完了すると、トラック（ｉ＋１）の符号化セクタデータがディスク１２から順次読み出され、リードライトチャネル４２のワークメモリ５２に順次書き込まれる。
【００５０】
以下、同様に、復号処理により得られた１トラックの全てのセクタデータがワークメモリ５２からバッファメモリ６２へ転送されると、メモリ４８のエリアTrackのトラック関連情報が更新され、次のトラックへのシークが行われ、次のトラックの符号化データのリードが行われる。
【００５１】
このようにメモリ４８のトラック関連情報を記憶するエリアが１トラック分しかない場合、復号処理により得られた１トラックの全てのセクタデータがワークメモリ５２からバッファメモリ６２へ転送されるまで次のトラックへのシークが開始できず、複数トラックに跨る連続リードの速度が低下する。
【００５２】
しかしながら、実施形態では、メモリ４８のトラック関連情報を記憶するエリアが２トラック分あるので、復号により得られた１トラックの全てのセクタデータがワークメモリ５２からバッファメモリ６２へ転送されるまで次のトラックへのシーク開始を待つ必要がない。すなわち、１トラックの全ての符号化セクタデータがディスク１２からワークメモリ５２へ書き込まれた時点で、次のトラックへのシークを開始することができ、複数トラックに跨る連続リードの速度を速くすることができる。
【００５３】
[ライト動作]  
複数トラックに跨るディスクへの連続アクセスは、リードに限らずライトも同様である。図５のフローチャートを参照して、第１実施形態に係る磁気ディスク装置のライト動作を説明する。磁気ディスク装置に供給される電源がオンされると、Ｓ１１２で、メインコントローラ２２はディスク１２から全てのトラックのトラック関連情報を読出し、バッファメモリ６２に書き込む。
【００５４】
Ｓ１１４で、ホスト装置からライトコマンドがメインコントローラ２２に入力される。ライトコマンドはライト開始セクタのアドレス（ＬＢＡ）とアドレス範囲（ＬＢＡ長）を含む。ライトコマンドに含まれるＬＢＡはＣＨＳ情報に変換される。
【００５５】
Ｓ１１６で、ハードディスクコントローラ４６はライトデータをバッファメモリ６２へ書き込む。ライトデータは多数のセクタデータからなる。
【００５６】
Ｓ１１８で、ハードディスクコントローラ４６はライト開始トラック（トラックｉと称する）と次のトラック（トラック（ｉ＋１）と称する）のトラック関連情報をバッファメモリ６２から読み出し、メモリ４８の第１エリアTrack Aと第２エリアTrack Bにそれぞれ書込む。次のトラックが存在しない場合、メインコントローラ２２はライト開始トラック（トラックｉと称する）のトラック関連情報のみバッファメモリ６２から読み出し、第１エリアTrack Aに書込む。
【００５７】
Ｓ１２０で、サーボコントローラ４４はメモリ４８の第１エリアTrack Aに記憶されているトラック関連情報内のＣＨＳ情報に基づいて、ヘッド３２の現在位置とライト開始セクタの位置との差に応じたシーク電流又は電圧をボイスコイルモータ３４に供給し、ヘッド３２をライト開始セクタの位置に位置決め（シーク）する。ボイスコイルモータ３４はシーク電流又は電圧に応じて回転し、ヘッド３２をライト開始セクタの位置のトラック（ライト開始トラック）に移動させる。
【００５８】
Ｓ１２４で、ハードディスクコントローラ４６はバッファメモリ６２内のライトデータのリード／ライトチャネル４２への転送を開始する。具体的には、ハードディスクコントローラ４６はトラックｉにライトされる最初のセクタデータをバッファメモリ６２から読み出し、ＣＲＣ符号を生成し、バッファメモリ６２から読み出したセクタデータにＣＨＳ情報とＣＲＣ符号とを付加して、リード／ライトチャネル４２のワークメモリ５２へ転送する。トラックｉにライトされる最初のセクタデータのワークメモリ５２への転送が完了すると、引き続きトラックｉにライトされる２番目以降のセクタデータ及びトラック（ｉ＋１）にライトされるセクタデータが順次読み出され、ＣＨＳ情報とＣＲＣ符号が付加されてワークメモリ５２に順次転送される。なお、バッファメモリ６２からワークメモリ５２への転送データにはメモリ４８の第１エリアTrack A、第２エリアTrack Bに記憶されているトラック関連情報内のＣＨＳ情報が必要である。メモリ４８の第１エリアTrack A、第２エリアTrack Bのトラック関連情報は不要になった場合、新しいトラック関連情報に更新されるが、転送時に、転送しようとするトラックのトラック関連情報がメモリ４８に未記録の場合は、トラック関連情報がメモリ４８に記録されるまで、転送が待機される。
【００５９】
トラックｉにライトされる最初のセクタデータがバッファメモリ６２からワークメモリ５２に転送完了すると、Ｓ１２６で、リード／ライトチャネル４２はワークメモリ５２内のセクタデータの符号化を開始する。具体的には、リード／ライトチャネル４２はワークメモリ５２内のトラックｉの最初のセクタデータを誤り訂正符号、例えばＬＤＰＣ符号を用いて符号化する。符号化はセクタ単位に限らずトラック単位で行ってもよい。トラックｉの最初のセクタデータの符号化が完了すると、引き続きトラックｉの２番目以降のセクタデータ及びトラック（ｉ＋１）にライトされるセクタデータが順次符号化される。符号化セクタデータはワークメモリ５２内に一旦書き込まれる。
【００６０】
データの符号化が完了すると、Ｓ１２８で、リード／ライトチャネル４２はトラックｉの符号化セクタデータのディスク１２への書き込みを開始する。具体的には、リード／ライトチャネル４２はトラックｉの最初の符号化セクタデータをヘッドＩＣ２０によりディスク１２へ書き込む。リード／ライトチャネル４２はトラックｉの最初の符号化セクタデータをディスク１２に書き込むと、引き続きトラックｉの２番目以降の符号化セクタデータをディスク１２に順次書き込む。
【００６１】
Ｓ１３２で、ハードディスクコントローラ４６はトラックｉのライト対象の全ての符号化セクタデータをディスク１２に書き込んだか否かを判断する。否の場合（Ｓ１３２のＮＯ）、処理はＳ１３２で待機し、Ｓ１２８のトラックｉの符号化セクタデータのヘッドＩＣ２０によるディスク１２への書き込みが継続される。
【００６２】
トラックｉの全ての符号化セクタデータがディスク１２に書き込まれた場合（Ｓ１３２のＹＥＳ）、Ｓ１３３で、ハードディスクコントローラ４６はトラック（ｉ＋２）のトラック関連情報をバッファメモリ６２から読み出し、メモリ４８の第１エリアTrack Aに書き込み。これにより、第１エリアTrack Aのトラックｉのトラック関連情報はトラック（ｉ＋２）のトラック関連情報によって上書きされる。第１エリアTrack Aにトラック（ｉ＋２）のトラック関連情報が書き込まれると、ハードディスクコントローラ４６は、トラック（ｉ＋１）にライトされるセクタデータをバッファメモリ６２から読み出した後、トラック（ｉ＋２）にライトされるセクタデータを順次バッファメモリ６２から読み出し、ＣＲＣ符号を生成し、バッファメモリ６２から読み出したセクタデータにＣＨＳ情報とＣＲＣ符号とを付加して、リード／ライトチャネル４２のワークメモリ５２へ順次転送する。トラック（ｉ＋２）にライトされるセクタデータがワークメモリ５２に転送完了すると、リード／ライトチャネル４２はワークメモリ５２内のセクタデータの符号化を開始する。
【００６３】
Ｓ１３４で、サーボコントローラ４４は次のトラック（ｉ＋１）へのシークを行う。
【００６４】
なお、Ｓ１３３、Ｓ１３４の順番を反対にして、シークを開始してからメモリの第１エリアTrack Aのトラック関連情報を更新してもよい。
【００６５】
Ｓ１３６で、リード／ライトチャネル４２はトラック（ｉ＋１）の符号化セクタデータのディスク１２への書き込みを開始する。具体的には、リード／ライトチャネル４２はトラック（ｉ＋１）の最初の符号化セクタデータをヘッドＩＣ２０によりディスク１２へ書き込む。リード／ライトチャネル４２はトラック（ｉ＋１）の最初の符号化セクタデータをディスク１２に書き込むと、引き続きトラック（ｉ＋１）の２番目以降の符号化セクタデータをディスク１２に順次書き込む。
【００６６】
Ｓ１３８で、ハードディスクコントローラ４６はライトコマンドで指定されたＬＢＡ長の全てのデータのライトを完了したか否かを判断する。すなわち、ハードディスクコントローラ４６はライトコマンドで指定されたＬＢＡ長が複数トラックに跨っているか否かを判断し、跨っている場合、未ライトのトラックがあるか否かを判断する。ライト完了の場合、すなわちライトコマンドで指定されたＬＢＡ長がこれ以上のトラックに跨っていない場合及び跨っていても未ライトのトラックがない場合（Ｓ１３８のＹＥＳ）、動作終了する。
【００６７】
ライト完了ではない場合（Ｓ１３８のＮＯ）、Ｓ１４０で、ハードディスクコントローラ４６はトラック（ｉ＋１）のライト対象の全ての符号化セクタデータをディスク１２に書き込んだか否かを判断する。否の場合（Ｓ１４０のＮＯ）、処理はＳ１４０で待機し、Ｓ１３６のトラック（ｉ＋１）の符号化セクタデータのヘッドＩＣ２０によるディスク１２への書き込みを継続する。
【００６８】
トラック（ｉ＋１）の全ての符号化セクタデータがディスク１２に書き込まれた場合（Ｓ１３２のＹＥＳ）、Ｓ１４２で、ハードディスクコントローラ４６は次のトラック（ｉ＋３）のトラック関連情報をバッファメモリ６２から読み出し、メモリ４８の第２エリアTrack Bに書込む。これにより、第２エリアTrack Bのトラック（ｉ＋１）のトラック関連情報はトラック（ｉ＋３）のトラック関連情報によって上書きされる。第２エリアTrack Bにトラック（ｉ＋３）のトラック関連情報が書き込まれると、ハードディスクコントローラ４６はトラック（ｉ＋３）にライトされるセクタデータを順次バッファメモリ６２から読み出し、ＣＲＣ符号を生成し、バッファメモリ６２から読み出したセクタデータにＣＨＳ情報とＣＲＣ符号とを付加して、リード／ライトチャネル４２のワークメモリ５２へ順次転送する。トラック（ｉ＋３）にライトされるセクタデータがワークメモリ５２に転送完了すると、リード／ライトチャネル４２はワークメモリ５２内のセクタデータの符号化を開始する。
【００６９】
Ｓ１４４で、マイクロコントローラ２２は次のトラック（ｉ＋２）へのシークを行う。
【００７０】
なお、Ｓ１４３、Ｓ１４４の順番を反対にして、シークが完了してからメモリの第２エリアTrack Bのトラック関連情報を更新してもよい。
【００７１】
以下、Ｓ１３６と同様にトラック（ｉ＋２）の符号化セクタデータがディスク１２に書き込まれ、Ｓ１３８と同様にライト完了か否か判定され、Ｓ１４０と同様にトラック（ｉ＋２）の全ての符号化セクタデータがディスクに書き込まれたか否か判定され、書き込まれた場合、Ｓ１４２と同様にメモリ４８の一方のエリアTrackのトラック関連情報が更新され、はトラック（ｉ＋３）のトラック関連情報によって上書きされ、同様な処理が繰り返される。
【００７２】
［連続ライト］
以上の処理により、実施形態の磁気ディスク装置はトラック番号が１ずつ増加する複数のトラックにデータを連続してライトすることができる。
【００７３】
図６はバッファメモリ６２からリード／ライトチャネル４２のワークメモリ５２へ転送されるセクタデータと、リード／ライトチャネル４２のワークメモリ５２からディスク１２へ書き込まれる符号化セクタデータと、ハードディスクコントローラ４６内のメモリ４８のエリアTrack AとTrack Bのトラック関連情報の更新状態を示す。
【００７４】
図５のＳ１１８でトラックｉ（ライト開始トラック）のトラック関連情報がメモリ４８のエリアTrack Aに、トラック（ｉ＋１）のトラック関連情報がメモリ４８のエリアTrack Bに書き込まれる。Ｓ１２４でバッファメモリ６２からリードライトチャネル４２のワークメモリ５２へトラックｉのセクタデータ及びトラック（ｉ＋１）のセクタデータが順次転送される。ワークメモリ５２へ転送されるセクタデータにはＣＨＳ情報を含める必要がある。実施形態では、メモリ４８のエリアTrack A、Track Bに記憶されているトラック関連情報内のＣＨＳ情報が転送データに付加される。
【００７５】
ワークメモリ５２へ転送されたセクタデータはＳ１２６で順次誤り訂正符号を用いて符号化される。少なくとも最初のセクタデータの符号化が完了すると、Ｓ１２８でトラックｉの符号化セクタデータがディスク１２へ順次書き込まれる。
【００７６】
この時、ハードディスクコントローラ４６内のメモリ４８の第１エリアTrack Aはトラックｉのトラック関連情報を記憶し、第２エリアTrack Bはトラック（ｉ＋１）のトラック関連情報を記憶する。そのため、Ｓ１２８でトラックｉの符号化セクタデータがディスク１２へ順次書き込まれる間、トラック（ｉ＋１）のセクタデータをバッファメモリ６２からワークメモリ５２へ転送することができる。このようにトラックｉの符号化セクタデータがディスク１２へ順次書き込まれる間、次のトラック（ｉ＋１）のセクタデータの符号化を開始することができるので、複数トラックに跨る連続ライトを効率良く行うことができる。
【００７７】
トラックｉの全ての符号化セクタデータがディスク１２へ書き込まれると、Ｓ１３４でトラック（ｉ＋１）へのシークが開始される。トラックｉの全ての符号化セクタデータがディスク１２へ書き込まれると、トラックｉのトラック関連情報は不要なので、第１エリアTrack Aのトラック関連情報はトラック（ｉ＋２）のトラック関連情報に更新される。
【００７８】
トラック（ｉ＋１）のセクタデータの符号化は、トラック（ｉ＋１）のセクタデータがワークメモリ５２に転送されると開始されたので、トラック（ｉ＋１）へのシークが完了する時、トラック（ｉ＋１）のセクタデータの符号化は完了している。そのため、シークが完了すると、Ｓ１３６でトラック（ｉ＋１）の符号化セクタデータのディスク１２への書き込みが開始される。このように各トラックの符号化セクタデータのディスク１２への書き込みはシーク完了すると直ぐに開始されるので、複数トラックに跨る連続ライトを効率良く行うことができる。
【００７９】
以下、同様に、トラックｊの符号化セクタデータがディスク１２に書き込まれる間、メモリ４８はトラックｊ、トラック（ｊ＋１）のトラックのトラック関連情報を記憶しているので、この間、トラック（ｊ＋１）、（ｊ＋２）のセクタデータの符号化が開始される。トラックｊの符号化セクタデータが全てディスク１２に書き込まれると、トラック（ｊ＋１）へのシークが開始されるとともにトラックｊのトラック関連情報がトラック（ｊ＋２）のトラック関連情報に更新されるので、複数トラックに跨る連続ライトを効率良く行うことができる。
【００８０】
比較例として、ハードディスクコントローラ４６内のメモリ４８が１トラックのトラック関連情報を記憶する場合の連続ライトを図７を参照して説明する。
【００８１】
トラック関連情報はトラックｉのシークの開始前にメモリ４８のエリアTrackに書き込まれる。トラックｉのセクタデータがバッファメモリ６２からワークメモリ５２に転送され、符号化が開始される。符号化後、トラックｉの符号化セクタデータがディスク１２に書き込まれる。トラックｉの全ての符号化セクタデータがディスク１２に書き込まれると、メモリ４８のエリアTrackのトラック関連情報はトラック（ｉ＋１）のトラック関連情報に更新され、トラック（ｉ＋１）のセクタデータがバッファメモリ６２からワークメモリ５２に転送され、符号化が開始される。また、トラックｉの全ての符号化セクタデータがディスク１２に書き込まれると、トラック（ｉ＋１）へのシークも開始される。符号化後且つシーク後、トラック（ｉ＋１）の符号化セクタデータがディスク１２に書き込まれる。
【００８２】
以下、同様に、トラック（ｉ＋１）の全ての符号化セクタデータがディスク１２に書き込まれると、メモリ４８のエリアTrackのトラック関連情報の更新、次のトラックのセクタデータのワークメモリ５２への転送、シークが行われる。
【００８３】
ディスク１２は回転しているので、ヘッド３２がボイスコイルモータ３４によりトラックを横切る方向に移動（シーク）中にヘッド３２のセクタ位置はずれる。これを補償するために、各トラックにおいて先頭セクタの位置をずらしている。セクタ位置のずれをスキューと称する。ハードディスクコントローラ４６内のメモリ４８が１トラック分のトラック関連情報を記憶するエリアしか備えていないとすると、ライト時において、１トラックのライト対象の全てのセクタデータについて符号化及びディスク１２への書き込みを完了する時点まで、次トラックへのシークを開始できない。また、リード時において、誤り訂正能力の高い符号化方式の場合、復号時間は長い。スキューは１トラックの全データの復号処理時間の最大値に依存するので、スキュー設定値が大きくなり、複数トラックを連続してアクセスする速度が低下する。
【００８４】
本実施形態によれば、１トラックの符号化セクタデータがディスク１２からリードライトチャネル４２に転送されると、符号化セクタデータの復号処理の完了を待つことなく、次トラックへのシークを開始できるので、スキューの設定に誤り訂正復号処理時間を見込む必要がなくなる。このため、スキュー設定値を小さくすることが可能となり、連続トラックリード／ライト時の全体処理時間を短縮することができる。
【００８５】
本実施形態の処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをリード／ライトチャネル４３、ハードディスクコントローラ４６、サーボコントローラ４４が備えるＭＰＵにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００８６】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。符号化としてＬＤＰＣ符号化を説明したが、これに限らず、他の符号化を用いてもよい。また、トラック関連情報の内容も上述の説明に限定されず、種々変形可能である。
【符号の説明】
【００８７】
１２…ディスク、３２…ヘッド、３４…ボイスコイルモータ、４２…リード／ライトチャネル、４６…ハードディスクコントローラ、４８…メモリ、５２…ワークメモリ、６２…バッファメモリ
【図１】
2018156716.tif 000003
【図２】
2018156716.tif 000004
【図３】
2018156716.tif 000005
【図４】
2018156716.tif 000006
【図５】
2018156716.tif 000007
【図６】
2018156716.tif 000008
【図７】
2018156716.tif 000009