JP4694774B2 - Data recording / reproducing apparatus, data recording / reproducing method, program, and recording medium - Google Patents

Data recording / reproducing apparatus, data recording / reproducing method, program, and recording medium Download PDF

Info

Publication number
JP4694774B2
JP4694774B2 JP2003192939A JP2003192939A JP4694774B2 JP 4694774 B2 JP4694774 B2 JP 4694774B2 JP 2003192939 A JP2003192939 A JP 2003192939A JP 2003192939 A JP2003192939 A JP 2003192939A JP 4694774 B2 JP4694774 B2 JP 4694774B2
Authority
JP
Japan
Prior art keywords
error correction
track
data
sectors
sector
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
JP2003192939A
Other languages
Japanese (ja)
Other versions
JP2005032289A (en
Inventor
俊之 中川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2003192939A priority Critical patent/JP4694774B2/en
Priority to US10/884,746 priority patent/US7339873B2/en
Priority to MYPI20042665A priority patent/MY138778A/en
Priority to TW093120256A priority patent/TWI303412B/en
Priority to CN2004101005085A priority patent/CN1627425B/en
Priority to KR1020040052542A priority patent/KR101071853B1/en
Publication of JP2005032289A publication Critical patent/JP2005032289A/en
Application granted granted Critical
Publication of JP4694774B2 publication Critical patent/JP4694774B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ランダムアクセス可能な記録媒体のためのデータ記録再生装置及びデータ記録再生方法、並びにコンピュータプログラム、記録媒体に係り、特に、ハードディスクのようにメディアとしての磁気ディスク上で磁気ヘッドをスキャンさせながらデータの読み書き動作を行うディスク型記録媒体のための技術に関する。さらに詳しくは、本発明は、所望のデータ記憶場所へのアクセス時間の短縮を図りながら、安定したデータ記録再生を行う技術に関する。
【0002】
【従来の技術】
【特許文献1】
特開2000−276856
【特許文献2】
特開2000−278645
【0003】
情報処理や情報通信など情報技術の発達とともに、過去において作成・編集した情報についても再利用する必要が生じてきており、このために情報蓄積技術はますます重要となってきている。いままで、磁気テープや磁気ディスクなどさまざまなメディアを利用した情報記録装置が開発され普及している。
【0004】
このうちHDD(Hard Disk Drive)は、磁気記録方式の補助記憶装置である。HDDのドライブ・ユニット内には記録媒体である数枚の磁気メディアが収容され、モータによって高速に回転する。メディアには、酸化鉄やコバルト・クロムなどの磁性体が、メッキや薄膜生成によって塗布されている。
そして、磁気ヘッドを回転するメディア表面上で半径方向にスキャンさせることによって、メディア上にデータに相当する磁化を生じさせて書き込みを行い、あるいはデータを読み出すことができる。
【0005】
ハードディスクは既に広汎に普及している。例えば、パーソナルコンピュータ用の標準的な外部記憶装置として、コンピュータを起動するために必要なオペレーティングシステム(OS)やアプリケーションなど、さまざまなソフトウェアをインストールしたり、作成・編集したファイルを保存したりするためにハード・ディスクが利用されている。通常、HDDは、IDE(Integrated Drive Electronics)やSCSI(Small Computer System Interface)などの標準的なインターフェースを介してコンピュータ本体に接続され、その記憶空間は、FAT(File Allocation Table)などの、オペレーティングシステムのサブシステムであるファイルシステムによって管理される。
【0006】
最近では、HDDの大容量化が進んできている。これに伴って、従来のコンピュータ用補助記憶装置としてだけでなく、放送受信されたAVコンテンツを蓄積するハードディスクレコーダなど、適用分野が拡大し、さまざまなコンテンツを記録するために利用され始めている。
【0007】
ここで、コンピュータ用補助記憶装置として使用される場合を例にとって、ハードディスクの物理フォーマット方法やハードディスクへのデータ読み書きオペレーションについて考察してみる。
ハードディスク上には、データを記録するための区画として、同心円状に多数の「トラック」を形成する。そして、ディスクの最外周から内周に向かって0,1,…とトラック番号が割り振られる。ディスク表面上にトラック数が多いほどメディアの記憶容量は増す。
【0008】
さらに、各トラックは、記録単位である「セクタ」に分割される。ディスクに対する通常のデータ読み書き動作はセクタ単位で行われる。セクタサイズはメディア毎に相違するが、ハードディスクのセクタは一般に512バイトと決まっている。また、メディアの使用効率を考慮して、各トラック上の記録密度をほぼ均一にするために、周長が長くなる外側のトラックに向かうほどセクタ数を多く設けている。これを”Zone Bit Recording”(ゾーンビットレコーディング)方式と呼ぶ。
ゾーンビットレコーディング方式を採用した場合、各トラック上の記録密度をほぼ均一にすることができる一方で、トラック毎のデータ転送速度が不均一となるという問題がある。データ転送速度は、ディスクの内周方向に進むにつれて、低くなっていく。
【0009】
また、数枚のメディアが同心円状に重なって構成されているHDDの場合、各メディアの同じ番号のトラックは円筒状に配置されていると捉えることができ、これを「シリンダ」と呼ぶ。各シリンダには、トラック番号と同じ番号が割り振られ、最外周から順にシリンダ0,シリンダ1,・・・となる。各メディア間に挿設された複数のヘッドは常に一体となって作動して、シリンダ間を移動する。
【0010】
目的となるセクタを指定(アドレス)する方式として、CHSモードを挙げることができる。これは、ディスク上のPBA(Physical Block Address:物理ブロック・アドレス)を、C(Cylinder)、H(Head)、S(Sector)の順に指定することによって、所望のデータにアクセスする方式である。
【0011】
一方、CHS方式においては、HDDに対するホストとして動作するコンピュータ本体側では、指定できるCHSパラメータに限界があり、ハード・ディスクの大容量化に対応できなくなってくる。このため、LBA(Logical Block Address:論理ブロック・アドレス)モードが採用されている。これは、シリンダ番号、ヘッド番号、セクタ番号(CHS)を0から始まるLBAという論理的な通し番号で表現するものである。
【0012】
従来のHDDでは、メディアにアクセスしてデータを読み書きするためには、先ず、磁気ヘッドが目的とするセクタのあるトラックに到達するために、磁気ヘッドをメディア上で走査させる。これを磁気ヘッドの「シーク」動作と呼ぶ。次に、トラック上で目的のセクタに到達するために、メディアが回転して、目的のセクタが磁気ヘッドの真下に来るまで待つ。これを「回転待ち」と呼ぶ。
【0013】
ディスクの大容量化に伴い、トラック密度が増大してトラック幅が極めて狭くなる。したがって、データを正確に書き込み及び再生するためには、磁気ヘッドの位置決めは高い精度が要求される。そこで、磁気ヘッドの位置を常にトラックの中心に合わせるというサーボ技術が採用されている。各トラック上に「サーボ・パターン」と呼ばれる信号を一定間隔で書き込んでおき、これを磁気ヘッドで読むことにより、磁気ヘッドがトラックの中心にあるかどうかをチェックすることができる。サーボ・パターンは、HDDの製造工程において、高精度に書き込まれる。サーボ領域には、例えば、ヘッドの位置決めするための信号と、シリンダ番号、ヘッド番号、サーボ番号などが書き込まれている。
【0014】
従来の多くのHDDは、IDEやSCSIなどコンピュータとの接続を目的としたインターフェースを持っている。そして、コンピュータ本体からのディスクドライブ制御は、インターフェースで定義されているコマンド・セットを用いて、先頭セクタを示すLBAとアクセスを行うセクタ数を指定することを基本動作とする。
この場合、HDD側では、指定された先頭セクタからのアクセスを行うとともに、その後アクセスされるセクタを予測して先読みを行うシーケンスを作成しながらアクセスを行うことができる。
【0015】
この先読みという動作は、一連のデータに対して連続するアドレスを持つセクタが割り振られていることを前提としている。通常、連続するアドレスを持つセクタは、連続するヘッド番号あるいはトラック番号に存在する。
大きなデータがメディア上に連続して書き込まれている場合には、読み出し時の先読み動作が有効に働く。
【0016】
【発明が解決しようとする課題】
しかしながら、記憶領域のフラグメンテーションが進行し、大きなデータが小さく断片化されて複数の場所に分散しているような場合には、読み出し時の先読みは別のデータを指してしまうために、有効に働くことができない。このような現象は、データの読み書きを要求するホスト(コンピュータ本体など)側が取り扱うファイル構造を、HDD側が把握していないことから起きるとも言える。
【0017】
また、ホスト側からの新たなアクセス要求によってその予測がはずれた場合、ディスクドライブは、その要求されるデータの存在するセクタが含まれるトラックへシークを行い、トラッキングが完了すると目的のセクタのアクセスが可能となるのを待つ。ここにおいて、シーク時間と回転待ち時間が発生する。
【0018】
先読みデータの保存は、データバッファの容量が許容する限りである。予測が外れる場合が連続的あるいは散発的に発生すると、データバッファ上の使われていない古いデータから順に破棄されることとなる。また、この先読みを行っている間はシーク起動を行うことができない。
【0019】
以上のように、シーク時間と回転待ち時間、無効な先読みによるシーク起動の遅れによる時間の損失、並びに無効な先読みによるデータの損失が発生していると言える。
【0020】
通常のディスクドライブでは、このシーク時間と回転待ち時間を短縮するために、ディスクの回転数を上げることが行われている。これは、コンピュータなどのホスト側で扱われるデータ量やデータ構造に規則性がないため、アクセス方法による改善を行うことが困難であるからである。しかしディスクの回転数を上げる方式では、電力消費や記憶容量の面において不利であり、問題となる。
【0021】
また、HDDなどの従来の外部記憶システムの多くは、1セクタ(1セクタは通常512バイトからなる)単位でエラー訂正が行われる。これにより、各セクタに発生するランダムエラーに対してエラー訂正を行うことができる。そして、訂正可能範囲を越えたランダムエラーや、あるいはバーストエラーに対しては、エラー訂正を行うことができない。そこで、リトライ動作を実施するなどによって、読み取りエラーを一定以下にしていた。
しかしながら、このようなリトライ動作は、1周回転待ちして再読み込みを行う必要がある。このため、さらにデータ読み出し時間の遅れを発生させることになる。
例えば、AVコンテンツを扱うシステムにおいて、HD(ハイビジョン画質)の再生やあるいは特殊再生を行うなど、高転送速度が要求される状況があり、セクタ内において訂正不能な読み取りエラーが発生しても時間的にリトライを行うことが出来ない場合がある。このようなとき、現状では、エラー訂正が行われないまま処理を進める他なく、この結果、再生品質は悪くなった。
【0022】
なお、例えば上記特許文献2には、記録するデータブロックの重要度を示す情報を持たせ、この情報に基づいて、重要であるデータブロックについてはリトライを実行させ、それ以外はリトライをさせない等の切換を行う技術が開示されている。
また上記特許文献1には、記録するデータブロックの重要度を示す情報を持たせ、この情報に基づいて、重要であるデータブロックについてはエラー訂正能力を増加させ、それ以外は通常の訂正能力とする等の切換を行う技術が開示されている。
これらの技術は、特にAVコンテンツを扱うシステム等において或る程度適切に機能するが、リトライの回避やエラー訂正においてより効果的な技術が求められている。
【0023】
またさらに、これらAVコンテンツの読み出し中において振動等の外乱が加えられると、外乱のなかった状態での読み出し時よりも、エラーの発生が多くなる。そのために、エラー訂正が不可能となるデータも増え、結局再生品質が悪くなる。
特に外乱の加わった状態でのエラーについては、HDDのサーボエリアがディスク上で放射状に配置してある場合、サーボエリアに挟まれるセクタ区間の単位で断続的にエラーが発生する場合が多い。
そのエラーは、ランダムである場合もあるし、バーストである場合もある。そして外乱が大きいほど、ランダムエラーを訂正するセクタ内訂正が不可能となるセクタは増加する。
【0024】
【課題を解決するための手段】
本発明は上述したような課題に鑑みたものであり、データ記録再生装置及びデータ記録再生方法、並びにコンピュータプログラム、記録媒体として、以下の目的を実現する。
即ち、所望のデータ記憶場所へのアクセス時間の短縮を図る。
また、転送速度を低下させることなく安定したデータ再生を行う。
また、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正可能とすることでリトライ動作を回避して転送速度の低下を少なくし、さらに、外乱等が加わった際においても、リトライ動作を回避することにより転送速度を低下させることなく、安定したデータ再生を行うことができるようにする。
【0025】
本発明のデータ記録再生装置は、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるとともに、サーボ領域が放射状となるように各位置に形成されるディスク記録媒体に対するデータ記録再生装置であって、目的とするトラックをシークするシーク手段と、該シークされたトラック上でアクセスを行うデータアクセス手段と、データをエラー訂正するためのエラー訂正符号を生成するとともにエラー訂正符号に基づいてデータをエラー訂正するエラー訂正手段とを備える。そして上記エラー訂正手段は、所定のデータ量単位に対して第1のエラー訂正符号単位を設定し、またディスク記録媒体上に形成されたトラックにおけるサーボ領域設定に応じて、複数個の第1のエラー訂正符号単位に対する第2のエラー訂正符号単位を設定し、複数個の上記第1のエラー訂正符号単位及びこれに対して付加された上記第2のエラー訂正符号単位からなるエラー訂正ブロックを形成し、上記トラック上での2つの上記サーボ領域に挟まれる区間における上記第1のエラー訂正単位としてのセクタ数に基づいて、上記第2のエラー訂正符号単位を含むセクタ数を設定するとともに、トラック当たりに2以上のエラー訂正ブロックが存在しないように、且つ、1又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成する。
【0026】
また上記エラー訂正手段はリードソロモン符号方式によりエラー訂正符号を生成する。
また上記エラー訂正手段が形成する上記エラー訂正ブロックは、上記第1又は第2のエラー訂正符号単位において、インターリーブ構造を備える。
【0027】
また上記データアクセス手段は、上記シーク手段によりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して1トラック分のアクセスを行う。
この場合、上記データアクセス手段は、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現する。
また上記エラー訂正手段は、上記トラック1周における上記サーボ領域の数と、上記トラック1周における上記第1のエラー訂正単位の数に応じて、上記第2のエラー訂正符号単位の設定を行う。
また上記エラー訂正手段は、トラック当たりに2以上のエラー訂正ブロックが存在しないように、且つ、1又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成する。
【0028】
また上記エラー訂正手段は、エラー訂正ブロック構成を、上記ディスク記録媒体上において可変とする。
また上記ディスク記録媒体は、半径位置に応じてトラック上のセクタ数が相違するゾーンビットレコーディング方式により構成される。
上記エラー訂正手段は、エラー訂正ブロック構成を、上記ディスク記録媒体上のゾーン毎に異なる構成とする。この場合上記エラー訂正手段は、ゾーン切替情報に従ってエラー訂正ブロック構成を切り替える。
また上記エラー訂正手段は、上記エラー訂正ブロックの構成を、上記ディスク記録媒体上のゾーン毎に関係なく固定の構成とする。
【0029】
本発明のデータ記録再生方法は、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるとともに、サーボ領域が放射状となるように各位置に形成されるディスク記録媒体に対するデータ記録再生方法として、目的とするトラックをシークするシークステップと、該シークされたトラック上でアクセスを行うデータアクセスステップと、データをエラー訂正するためのエラー訂正符号を生成するとともにエラー訂正符号に基づいてデータをエラー訂正するエラー訂正ステップとを備えるとともに、上記トラック上での2つの上記サーボ領域に挟まれる区間における上記第1のエラー訂正単位としてのセクタ数に基づいて、上記第2のエラー訂正符号単位を含むセクタ数を設定するとともに、トラック当たりに2以上のエラー訂正ブロックが存在しないように、且つ、1又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成する。
また上記エラー訂正ステップでは、リードソロモン符号方式によりエラー訂正符号を生成する。
また上記エラー訂正ステップで形成される上記エラー訂正ブロックは、上記第1又は第2のエラー訂正符号単位において、インターリーブ構造を備える。
【0030】
また上記データアクセスステップでは、上記シークステップによりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して1トラック分のアクセスを行う。
また上記データアクセスステップでは、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現する。
また上記エラー訂正ステップでは、上記トラック1周における上記サーボ領域の数と、上記トラック1周における上記第1のエラー訂正単位の数に応じて、上記第2のエラー訂正符号単位の設定を行う。
また上記エラー訂正ステップでは、トラック当たりに2以上のエラー訂正ブロックが存在しないように、且つ、1又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成する。
【0031】
本発明のプログラムは、同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるディスク記録媒体に対するデータ記録再生処理をコンピュータシステム上で実行するためにコンピュータ可読形式で記述されたプログラムであり、上記データ記録再生方法のステップを実行させるプログラムである。
【0032】
本発明の記録媒体は、所定のデータ量単位に対して第1のエラー訂正符号単位が設定され、また複数個の第1のエラー訂正符号単位に対する第2のエラー訂正符号単位が設定され、複数個の上記第1のエラー訂正符号単位及びこれに対して付加された上記第2のエラー訂正符号単位からなるエラー訂正ブロックが形成されるとともに、上記エラー訂正ブロックにおいて、上記第2のエラー訂正符号単位のセクタ数は同心円状又はスパイラル状に形成された各記録トラックにおけるサーボ領域の2つの該サーボ領域に挟まれる区間における上記第1のエラー訂正単位としてのセクタ数に基づいて設定されているとともに、トラック当たりに2以上のエラー訂正ブロックが存在しないように、且つ、1又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成されており、上記エラー訂正ブロックの構成を有するデータが、上記各記録トラックに記録される。
【0033】
以上の本発明により、上述した所期の目的を実現する。
即ち、第1のエラー訂正符号単位を用いることによりセクタ内でのランダムエラーを訂正することができるとともに、第2のエラー訂正符号単位を用いることによりセクタ内エラー訂正範囲を越えるエラーや、セクタ間にまたがるバーストエラーを訂正することができる。すなわち、エラー訂正ブロック構成をC1+C2とすることによって、データ転送速度を所望以上に保つためにリトライが行えない状況においても、C1でエラー訂正が不能となった際に、さらにC2でエラー訂正を行うことができるので、より安定したシステムを提供することができる。そしてこのように、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能として、リトライ動作を回避することによって、転送速度を低下させることなく、安定したデータ再生を行うことができる。
さらに、第2のエラー訂正符号(C2)単位の構成が、トラックにおけるサーボ領域設定、即ちトラック1周におけるサーボ領域数やセクタ(第1のエラー訂正単位)の数やサーボ領域とサーボ領域の間の第1のエラー訂正単位の数などに応じて設定されることで、外乱等によるサーボエリア間(サーボフレーム)でのエラーを考慮した設定が可能となる。そしてトラックにおけるサーボ領域設定に基づくエラー訂正ブロック設定より、エラー訂正符号単位の効率を良くし、冗長を少なくすることができる。
また各ゾーンにおける第2のエラー訂正符号について、サーボ領域構成に応じて設定することにより、ディスクの全周に渡ってエラー訂正能力を均一にすることができるとともに、効率の良いディスクフォーマットを実現できる。
【0034】
また、上記データアクセス手段は、上記シーク手段によりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して1トラック分のアクセスを行う。例えば磁気ヘッドがオントラックしたセクタから1トラック分のアクセスを行う。すなわち、1トラックをアクセス単位とすることで、先読みという不確定な処理を省いて、シーク起動のタイミングを確実に決定することができる。
特にこの場合、上記データアクセス手段が、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現することで、トラックのどのセクタからでもアクセスを行うことができるので、シーク直後の任意のヘッド位置から読み書きを行うことにより、回転待ちをなくすことができる。この結果、シークの回数を最小限に抑え、アクセス時間が短縮化される。
また、書込や読出の要求元(例えば、HDDに接続されているコンピュータなどのホスト装置)は、ディスク上のセクタ・アドレスを意識する必要がない。また、データサイズが短くて済む相対位置アドレスを用いることにより、記憶領域の有効利用を図ることができる。
また、読み出しアクセス時には、トラック上の各セクタから読み出したデータを、例えばバッファメモリ上で相対位置アドレスに従って再配置することによって、アクセスを開始したセクタの位置に拘わらず、元のデータを組み立てることができるが、この場合、トラック当たりに2以上のエラー訂正ブロックが存在しないように、且つ、1又は複数のトラック単位でエラー訂正ブロックを完結させるようにエラー訂正ブロックを形成することが適切である。
【0035】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態について次の順序で説明する。
1.第1の実施の形態
1−1 ハードディスク装置の構成
1−2 サーボエリア
1−3 ECC構成
1−4 フォーマット例及び処理
2.第2の実施の形態
2−1 アクセス動作
2−2 ECC構成
2−3 フォーマット例及び処理
3.変形例
【0036】
1.第1の実施の形態
1−1 ハードディスク装置の構成
図1には、本発明の実施の形態に係るHDD(ハードディスク装置)10の全体構成を模式的に示している。
同図に示すように、HDD10は、CPU(Central Processing Unit)11と、ROM(Read Only Memory)/RAM(Random Access Memory)12と、ディスクコントローラ13と、バッファRAM14と、データ読み書き制御部15と、サーボ制御部16、そして磁気ディスク21とを備えている。
【0037】
CPU11は、ROM/RAM12に格納されている制御コードを実行して、ドライブ10内の動作を統括的にコントロールする。
ディスクコントローラ13は、インターフェース17を介して接続されるホスト(図示しない)からコマンドを受け取る。CPU11はこのコマンド処理を行い、ディスクコントローラ13はコマンド処理結果に従って、データ読み書き制御部15やサーボ制御部16に対するハードウェア操作を指示する。
インターフェース17経由でホストから受け取った書き込みデータや、磁気ディスク21から読み取ってホストに渡されるデータは、バッファRAM14に一時的に格納される。
【0038】
データ読み書き制御部15は、符号化変調処理を行って実際に記録するデータパターンを作成し、プリアンプ25を介して磁気ディスク21にデータを書き込む。また、逆に読み込んだデータをプリアンプ25を介して磁気ディスク21から取り込み、データの復調処理を行う。
【0039】
サーボ制御部16は、磁気ヘッド22を搭載したアームを移動するボイスコイルモータ(VCM)23、及び磁気ディスク21を回転させるスピンドルモータ(SPM)24を同期的駆動させて、磁気ヘッド22が磁気ディスク21上の目的とするトラック上の所定範囲内に到達するように制御する。さらに、ディスク上のサーボパターン(前述)よりヘッド位置を所定の位置にシークさせるための制御を行う。
【0040】
磁気ディスク21上には、データを記録するための区画である多数のトラックが同心円状に形成され、例えばディスク21の最外周から、内周に向かって0,1,2,…とトラック番号が割り振られている。また、各トラックは、さらにセクタ毎に分割されており、このセクタ単位が、データ読み書き動作の可能な最小単位となっている。
セクタ内のデータ量は例えば512バイトで固定である。
実際に記録されているセクタには、データに加えて、ヘッダ情報やエラー訂正用コードなどが付加されている。
【0041】
1周当たりのセクタ数については、周長が長くなる外側のトラックに向かうほどセクタ数を多く設けるZBR(Zone Bit Recording)方式を採用する。すなわち、磁気ディスク21の全周に渡るトラック毎のセクタ数は均一ではなく、磁気ディスク21を半径方向に複数のゾーンに区切り、各ゾーン内においては同じセクタ数となるように設定する。
【0042】
なお、図示しないが、ドライブユニット内には、数枚の磁気ディスク(プラッタ)が同心円状に重なって構成することもでき、そのとき各磁気ディスクの同じトラック番号は円筒状に配置され(シリンダ)、トラック番号と同じシリンダ番号で指定される。
【0043】
図3には、ZBR方式の一例を示している。
同図に示す例では、ディスクを3つのゾーンに区切っており、最外周から順にゾーン0,1,2とゾーン番号が与えられている。さらに、各ゾーン内には複数本のトラックが含まれている。
また図3において、各ゾーンをセクタで区切っているが、この場合(あくまで模式的な例として)、ゾーン0は32セクタで構成され、同様に、ゾーン1は16セクタ、ゾーン2は8セクタでそれぞれ構成されている。ゾーンの切り替えに当たり、具体的なセクタ数については、スピンドルモータ24の回転数は一定とし、記録再生クロックを可変にするなどによって、線記録密度を所定の範囲におさめ、ディスク当たりの記憶容量を増加させるように決定される。
【0044】
図2は、図1のディスクコントローラ13の内部構成をより詳細に示している。同図に示すように、ディスクコントローラ13は、CPUインターフェース31と、ホストコントローラ32と、バッファコントローラ33と、サーボコントローラ34と、ディスクフォーマッタ35と、ECCコントローラ36とで構成されている。なお、同図において、データの移動が発生する矢印に対しては二重線で示してある。
【0045】
CPUインターフェース31は、CPU11と、RAM/ROM12とのインターフェースであり、ホストからのコマンドを通知したり、CPU11からのコマンド処理結果の受信などを行ったりする。
ホストコントローラ32は、インターフェース17を介して接続されるホストとの通信を行う。
バッファコントローラ33は、バッファRAM14と、ディスクコントローラ13内の各部間でのデータのやりとりを制御する。
サーボコントローラ34は、VCM(ボイスコイルモータ)23及びSPM(スピンドルモータ)24の動作を制御することによって、磁気ディスク21上のサーボパターンからサーボ情報を読み取り、この情報をサーボ制御部15へ渡す。
【0046】
ディスクフォーマッタ35は、バッファRAM14上のデータを磁気ディスク21に書き込んだり、あるいは磁気ディスク21からデータを読み出したりするための制御を行う。
ECCコントローラ36は、バッファRAM14に格納されているデータより、書き込み時にはECC符号を生成して付加したり、あるいは読み出し時にはエラー訂正を行ったりする。
【0047】
本実施の形態に係るハードディスク装置10は、上述したような構成とされ、この構成において、以下説明するように、広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正可能とすることでリトライ動作を回避して転送速度の低下を少なくし、安定したデータ再生を行うものである。
【0048】
1−2 サーボエリア
図4には磁気ディスク21におけるサーボエリアの配置の一例を示している。
図4において半径方向の実線は、サーボエリアSRVを示している(図3に示したようなセクタの区切りではない)。
【0049】
図4に示す例では、磁気ディスク21において、半径方向に32本の実線で示すように、放射状にサーボエリアが配置されている。即ちサーボエリアSRVは、同心円となるゾーン0,1,2に関係なく形成されている。つまりどのゾーンにおいても、1トラックにつき32個のサーボエリアが形成されている。
【0050】
1セクタが512バイトで与えられている場合、セクタ当たりの大きさ(セクタサイズ)は、トラック上の2つのサーボエリアの間の容量と比較して小さいので、トラック上の或るサーボエリアと、次のサーボエリアの間には複数のセクタが配置されることになる。
これらセクタの配置は、主にZBRのゾーン毎に定められている。すなわち、ゾーンが切り替わると、サーボエリアとサーボエリアの間に配置されているセクタ数についても異なっている。
【0051】
そして、上記ゾーンの切り替えに当たり、具体的なセクタ数については、スピンドルモータ24の回転数は一定とし、記録再生クロックを可変にするなどによって、線記録密度を所定の範囲におさめ、ディスク当たりの記憶容量を増加させるように決定される。
【0052】
図4の例では、1トラックあたりのサーボエリア数を32としたが、例えばサーボエリア数を96とすれば、同様にして、ディスクに対して放射状に配置され、さらに、所定のサーボエリアと、次のサーボエリアの間には、複数のセクタが配置される。
尚、サーボ帯域については、1トラックあたりのサーボエリア数及びディスクの回転数、サーボ周波数等によって決定され、システムの要求に合わせて設定されている。
【0053】
図4において▲1▼に示すトラック部分として、サーボエリアとサーボエリアの間に配置されている、セクタの具体的な例を図5に示す。
図5(a)は、サーボエリアSRVとサーボエリアSRVの間に8セクタが配置されている例である。
なお、2つのサーボエリアSRVに挟まれる範囲をサーボフレームとも呼ぶ。従ってこの例は、サーボフレームとして8セクタが設けられる例となる。
また図5(b)は、サーボエリアSRVとサーボエリアSRVの間(サーボフレーム)に8.5セクタが配置されている例である。
【0054】
図5にあるような各セクタの長さは、スピンドルモータ24の回転数および記録再生クロック等によって決定されるが、必ずしもサーボエリアSRVとサーボエリアSRVの間に丁度セクタが収まらなくて良いものとしている。
このような場合、図5(a)のように、サーボエリア間の内に収まる最大のセクタを配置し、余りの部分は空きとしてセクタに使用しないように構成することが出来るし、あるいは図5(b)のように、余りの部分もセクタの配置に使用し、セクタ分として不足した残りを、次のサーボエリア間で配置するような構成にして効率を上げても良い。
【0055】
ところで、上記サーボエリアSRVでは、例えばトラックの位置決め制御を行っている。即ち磁気ヘッド22によるトラックのトレースが、サーボエリアSRVを通過する時に、オントラックとなったか、あるいはトラックが外れたかの情報が得られる。
ここで、データ読み取り時において振動等の外乱が加わったことによって、トラック位置がずれたとする。トラックが大きく移動した場合は、全体のサーボ制御は最初から行われることになる。つまりデータ読取が中断され、再度必要なトラックにアクセスしてデータ読取が行われる。
【0056】
一方、トラックが正しい位置に対して、両隣のトラックの方向に所定の範囲内で移動した(ずれた)場合は、トラック位置制御を行いながら、そのままデータ読み取りを継続している。
そしてトラック位置制御がサーボエリアを通過する際に行われていることより、トラック位置がずれている間のデータ読み取り時のエラーは、サーボエリアSRVと次のサーボエリアSRVの間に渡り、発生することが多い。
すなわち図5(a)の場合では、振動が加わってトラック位置が所定の範囲内でずれた場合には、読み取りエラーの増加は、例えばセクタ番号1から8の間に渡って発生するケースが多いこととなる。
又同様に、図5(b)の場合で言えば、セクタ番号1から9の間となる。
【0057】
なお、セクタ内の読み取りエラーのうち、所定バイトまでの範囲においては、セクタ内エラー訂正により、読み取りエラーは訂正することができる。
ところが、振動が大きく、トラック位置のずれが所定の範囲内でありながら、そのずれが大きくなっていた場合は、読み取りデータのエラーの発生はさらに増加し、同セクタに設定されている、セクタ内エラー訂正の可能な範囲を超えるようになる。
結局、サーボエリアと次のサーボエリアの間に配置されたセクタの全体がエラーとなり易くなる。
すなわち連続したセクタエラーの発生となり、バーストエラーの発生要因のひとつとなる。
【0058】
1−3 ECC構成
図6は、本例のECCブロック構成例を示している。
ECCブロックの内部には、セクタ内の訂正を行うC1(第1のエラー訂正符号)と、セクタ間の訂正を行うC2(第2のエラー訂正符号)が含まれている。
そしてここではECC訂正符号として、シンボル長8のリードソロモン符号を用いているものとする。
【0059】
この場合、ECCブロック構成単位を192セクタとし、セクタ0〜175までの176セクタをデータセクタに、そして残る16セクタを第2のエラー訂正符号C2に用いるとする。
そして1セクタは例えば、512バイトのデータに4バイトのCRC(クロスチェックコード)、並びに合計で48バイトのC1を付加し、4インターリーブで構成する。
【0060】
このようにECCブロック構成の単位を192セクタとした場合、あるゾーンにおいて例えばトラック1周が768セクタであれば、4分の1周(25%:192/768=0.25)がECCブロック構成単位となる。
またあるゾーンにおいて例えばトラック1周が480セクタであれば、2.5分の1周(192/480=0.40)がECCブロック構成単位となる。2.5分の1周とは、トラックをまたいでのECCブロック構成が存在することを意味しており、1周の40%部分がECCブロック構成単位であることを示す。
【0061】
この例におけるエラー訂正能力について考察する。
ランダムエラーに対してはC1を利用することによって、セクタ当たり最大24バイトまで(バイトの消失情報が得られる場合は最大48バイトまで)の訂正が可能である。
さらに、バーストエラーに対しては、C2を利用することによって、ECCブロック構成単位当たり最大8セクタまで(CRCの結果を利用することで最大16セクタまで)の長さのエラー訂正が可能となる。
【0062】
ここで、このようなエラー訂正ブロックを採用する事情について述べておく。
従来のHDDのシステムの多くにおいては、エラー訂正が、512バイトデータと情報ビットからなる1セクタ単位においてのみ行われている。
したがって、各セクタ内に発生するランダムエラーに対してはエラー訂正を行うことができるが、訂正可能範囲を越えたランダムエラーや、あるいはバーストエラーすなわちセクタを越えて長く連続したエラーに対しては、エラー訂正を行うことが出来なかった。
【0063】
このような場合、例えばリトライ動作を実施するなどによって、読み取りエラーを一定以下にし、エラー訂正を行うことができる。ところが、リトライ動作は基本的に、1回当たり1周分の余分なアクセス時間の増加に相当する。
ここで、上述のようなトラック単位アクセスによってアクセス時間の短縮がなされたにもかかわらず、リトライ動作が発生すると、結局アクセス時間は増加し、データ読み出し時間の遅れを発生させる結果となる。
例えばHD(ハイビジョン画質)の再生や特殊再生時といったAVコンテンツを扱う場合において、高転送速度が要求されるとき、訂正不能な読み取りエラーが発生しても時間的にリトライ動作を行う余裕のないときがある。このような場合、現状では、読み取りエラー訂正が行われないまま処理を進めている。この結果、再生品質は悪くなってしまう。
そこで、本実施の形態においては、ECCの構成を上記のようにして、安定したデータ再生を実現し、リトライの発生する事態を引き起こすようなエラー訂正の出来ない場合を減少させるようにするものである。
つまり、従来の1セクタ単位のエラー訂正であるC1訂正に加えて、セクタ間の訂正を行うことが可能なC2訂正を付加した、C1+C2からなる、エラー訂正単位(ECCブロック)を構成する。
【0064】
ところで、上記図6に示す例ではインターリーブについての記述はないが、シンボル長8のリード・ソロモン符号では512バイトのデータに対してインターリーブを適用する必要がある。
図7、図8には、本例のECCブロック構成において、インターリーブを適用した例を示している。
【0065】
図7及び図8では、セクタn に対してインターリーブを適用したものであり、1セクタが4バイトのヘッダと512バイトのデータ、そして4バイトのCRCより、これらの合計を4分割し、各分割単位毎に12バイトのECC符号C1を付加している。
例えば、インターリーブ0は1バイトのヘッダと128バイトのデータと1バイトのCRCに12バイトのパリティが付加されて構成される。インターリーブ2,3,4も同様である。
【0066】
そして、セクタ内の配置を、0番目にはインターリーブ0、1番目にはインターリーブ1、2番目にはインターリーブ2、3番目にはインターリーブ3、4番目には再び戻ってインターリーブ0、・・・のように順に並べる。
4バイトのヘッダ、512バイトのデータ、その後には4バイトのCRCを付加し、続いて作成したC1コードを同様にして順に並べる。
図7にはインターリーブで分解したものを示しており、また、図8にはメモリ上にアドレス0から567まで割り振ったときの配置を示している。
【0067】
このようにして図7及び図8は、前述の図6と同じセクタ単位となる。すなわち、4バイトのヘッダ、512バイトのデータに、4バイトのCRCと、合計48バイトのECC符号C1が付加されて1セクタとなり、磁気ディスク21上への記録セクタの主要部として構成される。
なお、実際の記録データの構成は、プリアンブル、同期信号、ポストアンブルなどがさらに付加されている。また、セクタ単位の他の構成例としては、ヘッダファイルを持たない形式や、あるいはCRCを持たない形式などがある。
【0068】
このようなインターリーブの構成は、主にハードウェア構成によって決定すればよく、シンボル長8のリードソロモン符号では、C1方向(すなわちセクタ方向)においてインターリーブ構成を例えば図7に示すように適用する。
【0069】
なお、上述したインターリーブは、セクタ間でECCを実行したC2に対して適用してもよい。この場合においても、図7において、DATA部のByteをセクタと置き換えてC2方向(すなわちセクタに直交する方向)に展開させることで、同様な構成及び作用を実現することができる。
【0070】
また、この例においては、1セクタを512バイトのデータとしたが、セクタ数はこの限りではなく、例えば1024バイト、あるいは2048バイトを1セクタのデータとした場合においても、上記と同様にしてセクタ毎及びセクタ間に構成されたECCブロックを実現することができる。
【0071】
1−4 フォーマット例及び処理
本実施の形態においては、上記ECCブロック構成のC2設定において、バーストエラー発生の単位となりやすい、サーボエリア間のセクタ数情報を用いている。なお、上記からわかるように、セクタは第1のエラー訂正単位(C1エラー訂正単位)となる。
【0072】
図5(a)の例においては、サーボエリア間(サーボフレーム)のセクタ数は8であるから、ECCブロック構成のC2セクタを、8の倍数に設定する。
あるいは、もしECCブロック構成単位の都合で8の倍数に出来ないときは、最低設定値として8の倍数とし、これ以上の設定値を与えるようにする。
例えば、2サーボフレーム分をC2設定の基準とするとき、ECCブロック構成内におけるC2を、16セクタとする。
あるいは、制約として例えば3の倍数でC2設定をしなければならない場合は、2サーボフレーム分に相当する16セクタを越えた、最初の3の倍数である、18セクタをC2設定値とする。
【0073】
一方の図5(b)の例においては、サーボエリア間(サーボフレーム)のセクタ数は丁度8ではなく、8.5となっている。
このようなときは、定めたサーボフレームに含まれる、全セクタ数情報を用いて、整数値を設定する。
例えば、1サーボフレームを設定の基準とするときは、ECCブロック構成内におけるC2を、9セクタとする。
また、2サーボフレームを設定の基準とする際には、ECCブロック構成内におけるC2は、17セクタとする。
あるいは、上記図5(a)の場合と同様に、制約として例えば3の倍数でC2設定をしなければならないのであれば、2サーボフレームに相当する17セクタを越えた、最初の3の倍数である、18セクタをC2設定値とする。
【0074】
以上のようにC2セクタ設定が行われるが、例えば図5(a)の例に基づいて図6のECCブロックフォーマットが構成される場合、このECCブロックは、構成単位当たりで、最大16セクタ即ち2サーボフレームを訂正することができるフォーマットとなっている。
【0075】
ECCブロック構成の例を、図9で模式的に示して説明する。
図9の例はディスク全部に渡って、固定のECCブロック構成とする場合の例である。
そして図9はZBR(Zone Bit Recording)方式と、サーボエリアの配置を含めて示した例である。
なお、図9(及び後述する図11)において放射状の実線はサーボエリア及びセクタ境界を示しており、破線はセクタ境界を示している。またここでは図5(a)のようにサーボエリア間のセクタ数は整数である場合を例にとっている。
【0076】
なお、説明及び図示の簡略化のため、ここでの固定のECCブロック構成とは、ゾーンの別に関わらずECCブロックが16セクタで構成され、内、データセクタが12セクタ、C2セクタが4セクタとされる構成のことを指すものとしている。もちろん、この具体的なセクタ数は、あくまでも説明上の例であり、上記図6のようなECCブロック単位が192セクタとされるような場合も、以下の例が同様に想定されるべきものである。
【0077】
図9において、磁気ディスク21は、3つのゾーンに分割されており、さらに各ゾーンでトラック1周におけるセクタ数が異なる。
ゾーン0ではトラック1周に64セクタが配置され、ゾーン1では32セクタ、ゾーン2では16セクタが配置されているとする。
各ゾーンにおいては、ディスク回転数を同一とするが、動作クロックを変更し、各ゾーンにおける線記録密度は一定範囲にあるものとする。
【0078】
そしてこの場合、16本の放射状の実線でしめすサーボエリアが、同心円となるゾーン0,1,2に関係無く、半径方向に与えられている。
サーボエリアでの動作クロックは上記データエリアとは別に設定され、ディスク全周に渡り、所定のサーボ帯域が与えられる(サーボクロック)。
ここで、ディスク回転数については、データエリアとサーボエリアで同一としている。
【0079】
このとき、ECCブロック構成は、各セクタ毎においてはC1が付加されている。C1の構成は固定で同一であるものとする。
具体的には、例えば図6のように1セクタにおいて512バイトのデータに対して48バイトのC1が付加されているような構成とする。
【0080】
上記のようにディスク全周においてECCブロックが16セクタで構成されるとすると、トラック1周が64セクタのゾーン0においては、1/4周がECCブロック構成単位となる。
またトラック1周が32セクタのゾーン1においては、1/2周がECCブロック構成単位となり、トラック1周が16セクタのゾーン2においては、1周がECCブロック構成単位となる。
【0081】
そして各ECCブロック構成単位内では、1サーボフレーム分を設定最小値としてC2を配置する。
またC2の構成をディスク全体で固定で同一であるとする本例の場合、全てのゾーンにおいて、12セクタのデータと4セクタのC2の、合計16セクタからなるECCブロック構成となる。
【0082】
つまり、ECCブロック構成が固定であること、及び各ECCブロック構成単位内では1サーボフレーム分を設定最小値としてC2を配置することを考えれば、C2セクタは図9のように配置される。
即ち、ゾーン0においては、1サーボフレームに4セクタが配置されるため、4セクタとされるC2セクタは1サーボフレーム分として設定され、データ用の12セクタと合わせてトラック1/4周で1つのECCブロックが形成される。換言すれば1トラックの4つのECCブロックが形成される。
ゾーン1においては、1サーボフレームに2セクタが配置されるため、4セクタとされるC2セクタは2サーボフレーム分として設定され、データ用の12セクタと合わせてトラック1/2周で1つのECCブロックが形成される。換言すれば1トラックの2つのECCブロックが形成される。
ゾーン2においては、1サーボフレームに1セクタが配置されるため、4セクタとされるC2セクタは4サーボフレーム分として設定され、データ用の12セクタと合わせてトラック1周で1つのECCブロックが形成される。換言すれば1トラックの1つのECCブロックが形成される。
【0083】
このような構成としたとき、サーボフレーム単位で見ると、C2セクタはゾーン0が1サーボフレーム、ゾーン1が2サーボフレーム、ゾーン2が4サーボフレームとなり、ディスク全体としては、全てのECCブロック構成単位内でC2セクタの最小設定値である1サーボフレーム分以上を確保している。具体的には、最外周であるゾーン0においても、1サーボフレーム分(つまり最小設定値)を確保していることになる。
【0084】
この図9のように、ディスク全周で固定のECCブロック設定を行うための処理例を図10に示す。
なお、この処理は上記図6のようにECCブロックを192セクタとして固定する場合を想定して述べたものである。
【0085】
ステップF101では、まずECCブロックのセクタ数を設定する。例えば192セクタをECCブロックとする。
次にステップF102で、サーボフレームの何区間を訂正可能とするかを決定する。例えば2サーボフレームとする。これはC2エラー訂正の冗長比率の設定となる。
ステップF103では、決定した2サーボフレームを満たすセクタ数を設定する。この場合、ディスク全周に渡って固定ECCブロック構成であるから、ZBR方式において、内周のゾーンと外周のゾーンとでは、サーボフレーム当たりのセクタ数が異なる場合がある。このときは最大のサーボフレーム当たりのセクタ数を基準に設定する。
ZBRでは最外周のゾーン0が、通常最大数を与えている。そしてここでは、例えば16セクタとする。つまり最外周のゾーンでは図5(a)のように1サーボフレームに8セクタが含まれるとし、訂正可能とした2サーボフレームに含まれるセクタ数が16セクタである場合である。
そして以上によってステップF104で、今回設定したECCブロックの最大訂正セクタ数が決定される。例えばここでは、192セクタのECCブロックで、最大8セクタまで(消失訂正情報があれば最大16セクタまで)訂正可能となる。
【0086】
この図10のような設定を行うことで、ゾーンに関わらずディスク全周にわたって固定のECCブロック構成で、かつ所定のサーボフレーム単位を訂正可能としたC2設定が実現される。
なお、この図10のような設定処理は記録再生時にディスクコントローラ13及びCPU12の処理で実現されるエラー訂正符号化及びエラー訂正処理機能において実行されればよい。その場合、ECCブロックのセクタ数設定や、訂正可能とするサーボフレームの設定を変更すれば、エラー訂正能力を増減することができる。
或いは、特にエラー訂正能力の変更等が行われないのであれば、予めこのような処理をHDD10内部(例えばCPU11)或いは外部装置で行っておき、その処理で得られた設定値、即ちECCブロック構成(データセクタ数やC2セクタ数)を、ディスクコントローラ13又はCPU11内で記憶しておき、記録再生時には、その記憶された設定値に従ってECC処理を行うようにしてもよい。
【0087】
続いて図11により、ゾーン毎にECCブロック構成を変化させる場合の例を説明する。
図11は、放射状に配置されたサーボエリアとサーボエリアの間の、1サーボフレーム単位を設定最小値としてC2を配置したときの例である。
この図11の場合も、放射状の実線でサーボエリアを示しているが、トラック1周のサーボエリアの数は32であり、またトラック1周のセクタ数は、ゾーン0では96セクタ、ゾーン1では64セクタ、そしてゾーン2では32セクタとしてある。
【0088】
ECCとしては、各セクタ毎においてはC1が付加されている。C1の構成は、固定で同一であるものとする。具体的には、例えば図6のように1セクタにおいて512バイトのデータに対して48バイトのC1が付加されているような構成とする。
そして、C2の構成をゾーンによって切り替える。
また、ディスク全周に渡り、トラック1/4周をECCブロック単位とし、ECCブロック単位内では、1サーボフレーム分を設定最小値としてC2を配置する。
【0089】
このとき、ECCブロック単位で1サーボフレーム分をC2セクタとして設定すると次のようになる。
ゾーン0では1サーボフレームには3セクタが含まれる。またトラック1/4周は24セクタである。従ってゾーン0では24セクタでECCブロックが構成され、3セクタのC2に対し21セクタのデータセクタとされる。
ゾーン1では1サーボフレームには2セクタが含まれる。またトラック1/4周は16セクタである。従ってゾーン1では16セクタでECCブロックが構成され、2セクタのC2に対し14セクタのデータセクタとされる。
ゾーン2では1サーボフレームには1セクタが含まれる。またトラック1/4周は8セクタである。従ってゾーン2では8セクタでECCブロックが構成され、1セクタのC2に対し7セクタのデータセクタとされる。
【0090】
このようにすれば、ECCブロックはトラック1周で丁度4分割される。すると、図11のように、1周あたりで4箇所のC2エリアが与えられることになる。
そして全てのゾーンで、かつ全てのECCブロック構成単位内でC2セクタは最小設定値である1サーボフレーム分として確保される。
【0091】
この図11のように、ゾーン毎にECCブロック設定を可変する場合の処理例を図12に示す。
ステップF201では、ゾーンの切り替え設定が行われる。例えばディスク上にゾーンが16(ゾーン0〜ゾーン15)存在するとして、そのうちの1つを設定する。例えばゾーン0と設定する。
次にステップF202で、ゾーン0におけるECCブロックのセクタ数を設定する。例えば192セクタをECCブロックとする。
続いてステップF203では、C2エラー訂正の所定の冗長比率に応じてサーボフレームの何区間を訂正可能とするか決定する。例えば2サーボフレームとする。
そしてステップF204で、決定した2サーボフレームを満たすセクタ数を設定する。この例では、ゾーン毎でECCブロック構成を設定するものであり、ステップF201で例えばゾーン0と設定した後のステップF204の処理としては、ゾーン0でのサーボフレームに含まれるセクタ数を考えればよい。そしてゾーン0で1サーボフレームに8セクタが含まれるとすると、2サーボフレームを満たすセクタ数として16セクタと設定されることになる。
そして以上の処理から、ステップF205では、今回設定したECCブロックの最大訂正セクタ数が決定される。例えばここでは、192セクタのECCブロックで、最大8セクタまで(消失訂正情報があれば最大16セクタまで)訂正可能となる。
【0092】
この図12のような設定をゾーン毎に行うことで、各ゾーン毎において例えば2サーボフレームを訂正可能とするECCブロックが設定される。
なお、この図12のような設定処理は、或るゾーンに対する記録再生を行う際に、ディスクコントローラ13及びCPU12の処理で実現されるエラー訂正符号化及びエラー訂正処理機能において実行されればよい。その場合、ECCブロックのセクタ数設定や、訂正可能とするサーボフレームの設定を変更すれば、エラー訂正能力を増減することができる。
或いは、特にエラー訂正能力の変更等が行われないのであれば、予めこのような処理を各ゾーンに対応してHDD10内部(例えばCPU11)或いは外部装置で行っておき、その処理で得られた設定値、即ちECCブロック構成(データセクタ数やC2セクタ数)を、ディスクコントローラ13又はCPU11内で記憶しておき、記録再生時には、その記憶された設定値に従ってECC処理を行うようにしてもよい。
【0093】
本例のHDD10では、例えば以上の2つの例のようにECCブロック設定を行うことで、サーボフレーム(サーボフレームに含まれるセクタ数)を基準とした効率の良いECCブロック構成とすることができ、エラー訂正符号による冗長が少なくて、転送レートの点でも好適であるうえ、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能とすることができ、安定したシステムを構築することができる。
【0094】
なお、図10、図12の例においては、ECCブロック数を先に設定した処理の流れを示したが、それ以外でも、先にC2セクタによる冗長を設定し、これに基づいてECCブロックを構成しても、サーボフレームを基本とした設定を行うことによって、同様な扱いとすることが出来る。
【0095】
また図9及び図11の例において、図には無いが、ECCブロック単位を例えば10セクタに設定すると、ECCブロックは、同一トラックのみで構成はされず、次のトラックとまたいでECCブロックを構成する部位が発生する。この場合においても同様にサーボフレーム単位を基準にしてECCブロックを構成すればよい。
【0096】
2.第2の実施の形態
2−1 アクセス動作
続いて、本発明における第2の実施の形態について説明する。
この実施の形態に係るハードディスク装置10の基本的な構成は、上述したような図1,図2と同様となるが、この構成において、以下説明するように、回転待ちを発生することのないデータアクセス制御を行い、アクセス時間の短縮やデータ転送速度の早いシステムを実現する。特にアクセスに関しては、シークされたトラック上でアクセス可能となった先頭のセクタからアクセスを開始して1トラック分のアクセスを行う。
そしてその上で、磁気ディスク21におけるサーボエリアの構成に応じたECCブロック構成を用いることで、広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正可能とすることでリトライ動作を回避して転送速度の低下を少なくするものである。
なお、サーボエリアの配置や、サーボフレームにおけるセクタ配置例については、図4,図5で説明したものと同様である。
【0097】
まず、アクセス動作について説明する。
HDD10においては、磁気ヘッド22がオントラックしたセクタから1トラック分のアクセスを行う。同一トラック上のセクタ番号は固定されておらず、相対位置によって与えることができる。
これにより、1トラック上のどのセクタからでもアクセスを開始することができる。すなわち、1トラックをアクセス単位とすることによって、先読みという不確定要素からなる処理を行う必要をなくして、シーク起動のタイミングを確実に決定することができる。また、1トラックのどのセクタからでもアクセスを行うことによって、回転待ちを行わなくて済む。これによって、シークの回数を最小限に抑え、アクセス時間を短縮させることができる。
【0098】
所定のトラックに書き込みを行う際には、アクセスを開始したセクタから始まる相対位置をセクタに与える。
また、読み出しを行う際には、アクセスを開始したセクタから読み出しを行い、相対位置セクタ番号に基づいて、バッファRAM14上に展開する。このため、どのセクタから読み出しを始めても良い。
【0099】
このような動作を可能とするために磁気ディスク21のトラックで利用されるセクタフォーマットの例を図13に模式的に示す。
図13(a)に示すように、セクタは、トラック上でのセクタの相対位置を表す相対位置データと、データ本体と、セクタ領域全体に対してエラー訂正を行うためのECCとで構成され、これら全体をエラー訂正範囲及び記録範囲とする。
相対位置データをヘッダとしてエラー訂正範囲に含めることにより、例えばセクタ内でランダムエラーが発生した場合であってもエラー訂正により相対位置データを回復することができるので、円滑なディスクアクセス動作を実現することができる。
また、一般に、セクタはセクタの番地を記録するためのIDフィールドを持つが、絶対位置ではなく相対位置を記録するので、IDフィールドのサイズを縮小することができる。その分だけセクタ中でデータ本体に使用可能なフィールドサイズが大きくなり記憶領域の有効活用になる。
【0100】
トラックに書き込みを行うとき、アクセスを開始したセクタから始まる相対位置をセクタに与え、相対位置と本来の記録データによるECCデータを生成して、それぞれを当該セクタの相対位置フィールド、データフィールド、及びECCフィールドに記録する。アクセスを開始したセクタから書き込みを開始するので、回転待ちする必要がない。
【0101】
また、読み出しを行うときには、トラック上でアクセスを開始したセクタから読み出しを行い、相対位置フィールドによって得られたセクタ位置に基づいて、バッファRAM14上での格納位置を決定する。したがって、任意のセクタからデータの読み出しを開始しても、バッファRAM14上では相対位置に基づいてデータを再配置することによって、トラック上に格納されているデータが元の順番通りに復元される。また、アクセスを開始したセクタから読み出しを開始するので、回転待ちする必要がない。
【0102】
また、図13(b)には、本実施の形態に係るHDD10において、磁気ディスク21のトラックで利用されるセクタフォーマットの他の例を模式的に示している。
この場合も、上述と同様に、セクタは、トラック上でのセクタの相対位置を表す相対位置データと、データ本体と、セクタ領域全体に対してエラー訂正を行うためのECCとで構成される。但し、これら全体をエラー訂正範囲とするが、図13(a)に示した例と相違し、相対位置フィールドを記録範囲に含まない。したがって、相対位置フィールドがなくなる分だけ、さらに上述した例よりもセクタ中でデータ本体に使用可能なフィールドサイズが大きくなり記憶領域の有効活用になる。
【0103】
この場合、トラックに書き込みを行うときは、アクセスを開始したセクタから始まる相対位置をセクタに与え、相対位置と本来の記録データによるECCデータを生成して、記録データ及びECCデータのみを当該セクタ上に記録する。アクセスを開始したセクタから書き込みを開始するので、回転待ちする必要がない。
また、読み出しを行うときには、アクセスを開始したセクタから読み出しを行い、ECCを用いてエラー訂正を行うことによって、セクタには書き込まれなかった相対位置を再生成する。そして、この相対位置に基づいて、バッファRAM14上での格納位置を決定する。したがって、任意のセクタからデータの読み出しを開始しても、バッファRAM14上ではトラック上に格納されているデータが元の順番通りに復元される。また、アクセスを開始したセクタから読み出しを開始するので、回転待ちする必要がない。
【0104】
上記のようなセクタフォーマットに係るデータ記録再生の際のホストとの通信例を説明する。
本例のHDD10は、インターフェース17経由で接続されたホストからのコマンドによってデータ書き込みを行うときの通信例は、次のようになる。
【0105】
まずホストは、HDD10に対してデータの書き込みコマンドを発行する。これに応答して、HDD10は現在のアクセスシーケンスからシーク時間が最小となるアドレス領域を応答する。
ホストは、HDD10からの応答を受けると、指示されたアドレス領域の大きさ(バイト数,セクタ数など)のデータコンテンツを転送する。HDD10は、受信したデータコンテンツをトラック単位で書き込み動作を行う。
【0106】
ここで上述のように、書き込み時のトラック上のアクセス先頭位置を基準に各セクタに相対位置情報を割り振ると、書き込み要求の際、ホスト50側では、シリンダ番号、ヘッド番号、セクタ番号などの具体的な書き込み場所を特に意識する必要はなく、またこれらを指示する必要も特にない。
また、HDD10側からホストに通知されるアドレス領域は、例えば、ホストからデータ書き込み要求されるコンテンツを識別するコンテンツ番号などの簡素なものでよい。
HDD10側では、各コンテンツ番号とディスク21上での物理的な記録場所との変換テーブルを用意しておく。
本実施形態では、トラック単位でディスクアクセスを行うことから、コンテンツ番号との変換テーブルは、例えば図14に示すようなものとなる。即ち、コンテンツ番号に対応してトラック番号やヘッド番号が登録されていく。
【0107】
ここで、CHS方式のセクタ番号が変換テーブルに含まれていないことに注意されたい。このように、書き込み時のトラック上のアクセス先頭セクタを基準に各セクタに相対位置情報を割り振る構成では、読み出し時のトラック上のアクセス先頭セクタに関わらず、各セクタの相対位置情報に基づきデータの再配置が可能となる。このため、変換テーブルにおいて、アクセス開始セクタを指定する必要がないものとなる。
【0108】
この変換テーブルは、バッファRAM14内に書き込まれる。変換テーブルの書き込みは、ホスト50から書き込みデータを受け取った時点で、ディスクコントローラ13又はCPU11が実行するソフトウェアによって行われる。
【0109】
また、本例のHDD10がインターフェース17経由で接続されたホストからのコマンドによってデータ読み出しを行うときの通信例は次のようになる。
ホストは、HDD10に対してデータの読み出しコマンドを発行する。読み出しコマンドでは、目的とするコンテンツ番号が指定されている。
これに対し、HDD10は、コンテンツ番号に基づいて上記図14の変換テーブルから目的とするトラックを特定して、磁気ヘッド22のシーク動作を行う。そして、データ書き込み時に応答したアドレス領域のシーケンスに従い、ディスク21上のデータを転送する。
このデータ読み出し要求の際、ホスト側は、所望のコンテンツ番号を指定するだけで、シリンダ番号、ヘッド番号、セクタ番号などの具体的な書き込み場所(PBA)を意識する必要はない。
【0110】
上述したように、HDD10では、磁気ヘッド22がオントラックしたセクタから1トラック分のアクセスを行う。1トラックをアクセス単位とすることで、先読みという不確定な処理を省いて、シーク起動のタイミングを確実に決定することができる。また、トラックのどのセクタからでもアクセスを行うことができるので、シーク直後の任意のヘッド位置から読み書きを行うことにより、回転待ちをなくすことができる。この結果、シークの回数を最小限に抑え、アクセス時間が短縮化される。
【0111】
このようなディスクアクセスオペレーションは、ディスクコントローラ13が、CPU11によるコマンド処理結果に応じて、データ読み書き制御部15やサーボ制御部16に対するハードウェア操作を指示することによって実現される。
【0112】
2−2 ECC構成
上述したように、本例のHDD10は1トラックを単位としてアクセスを行う。この場合、磁気ディスク21上には1トラックを基本単位としたECCブロックが形成されることが適切となる。
【0113】
図15は、本例のECC構成例を示している。
この図の例では、磁気ディスク21は、ゾーン分割されており、ゾーンnにおけるECCブロック構成の例が示されている。すなわち、ゾーンn内の、破線で示す所定のトラックTKのように、各トラックの1周分がECCブロックの構成単位となるようにする。
ECCブロックの内部には、セクタ内の訂正を行うC1と、セクタ間の訂正を行うC2が含まれている。
そしてC1+C2からなるエラー訂正単位(ECCブロック構成単位)は1トラックを基本単位としており、各トラック内においては、ECCブロック構成単位が2つ以上存在することはない。
【0114】
なお、整数周回のトラック、例えばトラック3周などで、C1+C2から成る1つのECCブロックが形成されるなどの例も考えられる。
【0115】
図16には、図15に示したECCブロック構成を採用した磁気ディスク21のECCブロック構造の例を示している。
ここではECC訂正符号として、シンボル長8のリードソロモン符号を用いているものとする。
ある磁気ディスクのあるゾーンにおけるトラック1周分の有効なセクタ数を、768セクタとする。1セクタは例えば、512バイトのデータに4バイトのCRC(クロスチェックコード)、並びに合計で48バイトのC1を付加し、4インターリーブで構成してある。
【0116】
図16のECCブロック構成の例では、セクタ0〜703までの704セクタをデータ領域として与え、セクタ704〜767までの64セクタをC2領域として与えている。C2については、例えば16セクタずつの4インターリーブで構成する。
このような構成としたとき、1つのECCブロックは合計768セクタとなって、このゾーン内において1周分となり、トラック単位を実現させることが出来る。
【0117】
この例におけるエラー訂正能力について考察する。
ランダムエラーに対してはC1を利用することによって、セクタ当たり最大24バイトまで(バイトの消失情報が得られる場合は最大48バイトまで)の訂正が可能である。
さらに、バーストエラーに対しては、C2を利用することによって、トラック当たり最大32セクタまで(CRCの結果を利用することで最大64セクタまで)の長さのエラー訂正が可能となる。
【0118】
上述した第1の実施の形態の場合と同様に、本例においても、従来の1セクタ単位のエラー訂正であるC1訂正に加えて、セクタ間の訂正を行うことが可能なC2訂正を付加する。C1+C2によるECC構成を採用することで、安定したデータ再生を実現し、リトライの発生する事態を引き起こすようなエラー訂正の出来ない場合を減少させるようにするものである。
【0119】
そして、C1+C2からなるエラー訂正単位(ECCブロック)をトラックで完結するような構成をとる。上記もしたが、ECCブロック単位は1トラックを基本とする。
このようにトラックの1周でC1+C2からなるECCブロック単位を完結させることで、1トラックをアクセス単位とすることができ、回転待ちを発生することのないデータアクセス制御を実現することができる。すなわち、所望のデータ記憶場所へのアクセス時間を短縮することができる。また、同一トラック上で2以上のECCブロックを持つことがないため、ECC構成を複数トラック単位とした場合であっても、同様に、回転待ちを発生することのないデータアクセス制御を実現することができる。
【0120】
このようなエラー訂正処理を行う場合のディスクコントローラ13内の動作について説明しておく。
ディスクコントローラ13は、CPU11より、フォーマッタ制御情報及び、ゾーン切替ECC制御情報を受け取る
フォーマッタ制御情報は、シークされたトラック上でアクセス可能となった後の、先頭のセクタからアクセスを開始して、1トラック分のアクセスを行うためのディスクフォーマットに関する情報であり、この情報はCPUインターフェース31を介してディスクフォーマッタ部35へ送られ、ここでデータフォーマッタが生成される。
【0121】
また、ゾーン切替ECC制御情報は、トラック単位で完結するECC構成の設定を行うための情報であり、ゾーンが切り替わるとトラック当たりのセクタ数が切り替わるので、その結果ECC構成の設定が変更される。この情報は、CPUインターフェース31を介してECCコントローラ36へ送られ、ここでECC構成が設定され、バッファRAM14をアクセスして所定のECC処理が行われる。
【0122】
なお図16に示す例ではインターリーブについての記述はないが、シンボル長8のリード・ソロモン符号では512バイトのデータに対してインターリーブを適用する必要がある。その場合、図7、図8で説明した例のようにインターリーブが適用されればよい。
【0123】
ところで、上述したECCブロックをトラック単位に完結させるとき、磁気ディスク21のゾーンが切り替わった際には、トラックあたりのセクタ数が異なるので、同一のECCパリティ数の構成では、エラー訂正能力がゾーン毎で大きく異なったものとなる可能性がある。
そこで、ゾーン毎でECCブロック構成を可変とすることによって、エラー訂正符号の冗長度を一定範囲内におさめることができ、その結果、エラー訂正能力をディスクの全周に渡って同様な強さとすることができる。
【0124】
図17には、ECCブロックをゾーン毎で可変に構成した場合のディスクフォーマットの例を模式的に示している。
同図において、磁気ディスク21は、ゾーン分割されており、さらにゾーン毎に1トラックあたりのセクタ数が異なる。
これは模式的な例であるが、1トラックあたりのセクタ数は、ゾーン0では96セクタ、ゾーン1では64セクタ、ゾーン2では32セクタとなっている。
各ゾーンに対しては、回転数を同一とするが、動作クロックを変更し、各ゾーンにおける線記録密度は一定範囲にあるものとする。
【0125】
このとき、ECCは、各セクタ毎においてはC1が付加されている。C1の構成は固定で同一であるものとする。具体的には、例えば図16のような構成とする。
そして、C2の構成については、図に示すように、ゾーン0では12セクタをC2パリティとして与え、ゾーン1では8セクタを、ゾーン2では4セクタをそれぞれC2パリティとして与えている。
なお、このC2セクタの設定については後述する。
このように構成にしたとき、各ゾーンの1周分のデータセクタ数に対するC2パリティのセクタ数の割合が一定になり、C2訂正能力についても各ゾーンで同一とすることができる。
【0126】
なお、実際のフォーマットにおいては、図17に示すようなゾーンとセクタ数の関係にあるような、ちょうど割り切れる値となる場合は少ないので、ECC部分の冗長度が一定範囲となるような設定をすればよい。
【0127】
以上のように、ECCブロックをトラック単位に完結させ、C1+C2構成とし、さらにインターリーブ構成とすることに加えて、ゾーン毎でECC構成を可変としてECC部分の冗長度を所定範囲内に制御することによって、ディスクの全周に渡って、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能なようになり、安定したデータ再生が実現する。
【0128】
2−3 フォーマット例及び処理
上記のようにゾーン毎にECCブロック構成が変化される図17において、C2セクタは、放射状に配置されたサーボエリアで形成されるサーボフレームに基づいて設定されている。
サーボエリア構成に基づくECCブロック設定について説明する。
【0129】
図17において、放射状の実線はサーボエリア及びセクタ境界を、また破線はセクタ境界を示しているが、どのゾーンにおいてもトラック1周のサーボエリア数は32である。
また上記のように1トラックに1つのECCブロックが形成される。ECCブロック構成単位は、ディスク全周に渡ってトラック単位となっているため、ECCブロックを構成するセクタ数は、ゾーンによって切り替えるようになっている。
そして図17では、C2セクタとして4サーボフレームを訂正可能する構成を採るものとなる。
【0130】
トラック単位のECCブロック構成において、4サーボフレームをC2セクタとして設定するために、ゾーン0,1,2のそれぞれにおいて、ECCブロック構成におけるデータセクタ及びC2セクタの設定値が個別に与えられている。そしてそのECCブロック構成内において、4サーボフレーム分のセクタ数を設定最小値としてC2が配置されている。
【0131】
図17においては、4サーボフレームのセクタ数は、ゾーン0では12セクタ、ゾーン1では8セクタ、そしてゾーン2では4セクタである。
従って、ゾーン0では、1周96セクタで形成されるECCブロックは、12セクタのC2と84セクタのデータセクタで構成される。
ゾーン1では、1周64セクタで形成されるECCブロックは、8セクタのC2と56セクタのデータセクタで構成される。
ゾーン2では、1周32セクタで形成されるECCブロックは、4セクタのC2と28セクタのデータセクタで構成される。
【0132】
このように、丁度トラック1周の構成であり、かつ所定のサーボフレームを訂正可能となるようにC2セクタが配されたECCブロックが設定される。。
なお、このとき図17のように、1周あたりで4サーボエリアをC2としてそれぞれ配置されて記録されるが、物理的な位置としては特定位置である必要はなく、同図のように不定な配置で記録されてよい。
また図17では、簡易のために、ゾーン毎で一括して不定な配置となるような図を示したが、実際にはゾーン毎だけでなく、トラック単位で不定な配置で記録されることになる。しかし、その場合においても、ゾーン単位で1周のセクタ数およびC2の設定セクタ数が設定されており、ゾーンが切り替わると、セクタ数およびC2の設定セクタ数も切り替わっていく。
【0133】
図18は、以上のようなECCブロック設定を行う場合の処理例を示している。
ステップF301として、まずサーボエリア数が設定される。例えば96とする。
次にステップF302で、ゾーンの情報が設定される。すなわち各ゾーンでの1周(あるいは所定周分)当たりのセクタ数が設定される。例えばゾーン0では1周当たり768セクタあるとする。
ステップF303では、所定トラック当たりで、サーボフレームの何区間を訂正可能とするか決定する。例えば1トラック当たりで、8サーボフレームとする。
そしてステップF304で、決定した8サーボフレームを満たすセクタ数を設定する。
この場合、
(所定ゾーンのセクタ数)×(訂正可能サーボフレーム)/(サーボエリア数)としてセクタ数を求める。例えば 768 × 8 / 96 = 64 とし、1トラック当たり768セクタのうち、64セクタをC2として設定する。
そして以上によって、ステップF305で、今回設定した所定トラック単位となるECCブロックの最大訂正セクタ数が決定される。
例えばここでは、1周768セクタのECCブロックで、最大32セクタまで(消失訂正情報があれば最大64セクタまで)訂正可能となる。
【0134】
なお、この図18のような設定処理は、記録再生時にディスクコントローラ13及びCPU12の処理で実現されるエラー訂正符号化及びエラー訂正処理機能において実行されればよい。
その場合、ECCブロックのセクタ数設定や、訂正可能とするサーボフレームの設定を変更すれば、エラー訂正能力を増減することができる。
或いは、特にエラー訂正能力の変更等が行われないのであれば、予めこのような処理をHDD10内部(例えばCPU11)或いは外部装置で行っておき、その処理で得られた設定値、即ちECCブロック構成(データセクタ数やC2セクタ数)を、ディスクコントローラ13又はCPU11内で記憶しておき、記録再生時には、その記憶された設定値に従ってECC処理を行うようにしてもよい。
【0135】
本例のHDD10では、例えば以上の例のようにECCブロック設定を行うことで、サーボフレーム(サーボフレームに含まれるセクタ数)を基準とした効率の良いECCブロック構成とすることができ、エラー訂正符号による冗長が少なくて、転送レートの点でも好適であるうえ、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能とすることができ、安定したシステムを構築することができる。
さらに、1トラックをアクセス単位とすることで、先読みという不確定な処理を省いて、シーク起動のタイミングを確実に決定することができる。また、トラックのどのセクタからでもアクセスを行うことができるので、シーク直後の任意のヘッド位置から読み書きを行うことにより、回転待ちをなくすことができる。この結果、シークの回数を最小限に抑え、アクセス時間が短縮化される。
【0136】
3.変形例
本発明は、上記各例として示したもに限定されず、例えば以下のケースに対しても適用が可能である。
図4でサーボエリアの構成例を説明したが、、配置が放射状であればトラック1周のサーボエリア数がいくつであろうと本発明を適用できる。
またゾーン内のセクタ数が異なる場合も本発明は適用できる。
また図5のように、サーボ間(サーボフレーム)に配置されるセクタの個数には関係なく、本発明は適用できる。
またC2としての割当は、必ずしもセクタ番号の先頭(若い番号)あるいは最後に与える必要はない。2サーボフレームであれば、そこに配置されたセクタの個数で決まる。
図6や図16で示したECCブロック単位は任意であり、上限や下限もとくになく、システムの要求によって決定することができる。
また、C1の構成にはよらず、本発明は適用できる。
【0137】
ディスク上に記録されるC2の配置は、LBAを指定することが出来れば所定の位置に配置してもよい。
即ち図9,図11の例のように特定サーボフレーム内に全て配置しても良いし、ばらばらに配置しても良い。結局、例えば図11の例で言えば、8サーボフレームをECCブロック単位とし、7サーボフレーム分のデータと、1サーボフレーム分のC2で構成されればよく、その内部配置はどのようなものでもよい。
さらに図9、図11の例は、ECCブロックはトラックをまたいでもよい。
また図17の例において、ディスク上に記録されるC2の配置について、どこに配置されていても、トラック単位当たりのECCブロック単位で構成されていれば、本発明は適用できる。
【0138】
さらに実施の形態では、ECCブロック構成については、ゾーン毎に異なるものとしての例を説明したが、ECCブロック構成が可変となる単位はゾーンに限定されない。
例えば複数のゾーンにおいて同一のECC構成となる場合(例えばゾーン1とゾーン2が同一構成で、ゾーン0が異なるなど)、或いは、1つのゾーン内でECC構成が異なる領域が生成されるなどの例も考えられる。
そしてディスク上で各種可変設定されるECCブロック構成の上で、サーボ領域設定に応じたC2設定が行われればよいものである。
【0139】
本発明のプログラムは、上述したHDD10の機能を実現するプログラムである。特にCPU11によって起動され、HDD10の各部がそのプログラムに基づいて制御されることで図10、図12、図18のような処理が実行される。
このプログラムは、例えばROM/RAM12に予め記憶しておくことができる。或いは磁気ディスク21に記憶しておき、ROM/RAM12にロードされる形態も考えられる。
【0140】
【発明の効果】
以上の説明から理解されるように本発明によれば、エラー訂正符号による冗長の効率の良くてかつ、安定したデータ再生を行うことができる、優れたデータ記録再生装置及びデータ記録再生方法、並びにプログラム、記録媒体を提供することができる。
即ち、第1のエラー訂正符号単位を用いることによりセクタ内でのランダムエラーを訂正することができるとともに、第2のエラー訂正符号単位を用いることによって、セクタ内エラー訂正範囲を越えるエラーや、セクタ間にまたがるバーストエラーを訂正することができる。これによって、データ転送速度を所望以上に保つためにリトライが行えない状況においても、適切にエラー訂正ができ、より安定したシステムを提供することができる。そしてこのように、より広い範囲でのランダムエラーやバーストエラーに対してもエラー訂正が可能として、リトライ動作を回避することによって、転送速度を低下させることなく、安定したデータ再生を行うことができる。
さらに、第2のエラー訂正符号(C2)単位の構成が、サーボ領域設定、例えばサーボフレームのセクタ数に応じて設定されることによって、エラー訂正符号単位の効率を良くし、冗長を少なくすることができ、より安定したシステムを提供することができる。
また各ゾーンにおける第2のエラー訂正符号について、サーボ領域設定に応じて設定することにより、ディスクの全周に渡ってエラー訂正能力を均一にすることができるとともに、効率の良いディスクフォーマットを実現できる。
以上によって、よりいっそう安定したシステムを提供することができる。
【0141】
さらに本発明によれば、シークされたトラック上でアクセス可能となった先頭のセクタからアクセスを開始して1トラック分のアクセスを行うことによって、1トラックをアクセス単位とすることができ、回転待ちを発生することのないデータアクセス制御を実現することができる。すなわち、データアクセス時間を短縮することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態のHDDの全体構成のブロック図である。
【図2】実施の形態のHDDのディスクコントローラのブロック図である。
【図3】実施の形態のディスクフォーマット構造を模式的に示した説明図である。
【図4】実施の形態のサーボエリアの説明図である。
【図5】実施の形態のサーボフレームの説明図である。
【図6】実施の形態のECCブロック構造の説明図である。
【図7】実施の形態のインターリーブ構造の説明図である。
【図8】実施の形態のインターリーブ構造の説明図である。
【図9】実施の形態のECCブロック固定の場合のC2セクタ設定の説明図である。
【図10】実施の形態のECCブロック固定の場合の設定処理のフローチャートである。
【図11】実施の形態のECCブロック可変の場合のC2セクタ設定の説明図である。
【図12】実施の形態のECCブロック可変の場合の設定処理のフローチャートである。
【図13】実施の形態のセクタ構造の説明図である。
【図14】実施の形態のアクセスのための変換テーブルの説明図である。
【図15】実施の形態のトラック単位となるECCブロックの説明図である。
【図16】実施の形態のECCブロック構造の説明図である。
【図17】実施の形態のトラック単位のECCブロックの場合のC2セクタ設定の説明図である。
【図18】実施の形態のスリップ情報に応じたC2セクタ設定処理のフローチャートである。
【符号の説明】
10 HDD(ハードディスク装置)、11 CPU、12 ROM/RAM、13 ディスクコントローラ、14 バッファRAM、15 データ読み書き制御部、16 サーボ制御部、21 磁気ディスク
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data recording / reproducing apparatus, a data recording / reproducing method, a computer program, and a recording medium for a randomly accessible recording medium, and more particularly, to scan a magnetic head on a magnetic disk as a medium such as a hard disk. The present invention relates to a technique for a disk-type recording medium that performs data read / write operations. More specifically, the present invention relates to a technique for performing stable data recording / reproduction while shortening the access time to a desired data storage location.
[0002]
[Prior art]
[Patent Document 1]
JP 2000-276856 A
[Patent Document 2]
JP 2000-278645 A
[0003]
With the development of information technology such as information processing and information communication, it has become necessary to reuse information created and edited in the past, and information storage technology has become increasingly important for this purpose. Up to now, information recording devices using various media such as magnetic tapes and magnetic disks have been developed and spread.
[0004]
Among these, HDD (Hard Disk Drive) is a magnetic recording type auxiliary storage device. The HDD drive unit contains several magnetic media as recording media and is rotated at high speed by a motor. The medium is coated with a magnetic material such as iron oxide or cobalt / chromium by plating or forming a thin film.
Then, by scanning the magnetic head in the radial direction on the surface of the rotating medium, the magnetization corresponding to the data is generated on the medium, and writing or reading of the data can be performed.
[0005]
Hard disks are already widespread. For example, as a standard external storage device for a personal computer, for installing various software such as an operating system (OS) and applications necessary for starting the computer, and for saving created / edited files Hard disk is being used. Usually, the HDD is connected to the computer main body via a standard interface such as IDE (Integrated Drive Electronics) or SCSI (Small Computer System Interface), and its storage space is an operating system such as FAT (File Allocation Table). Managed by a file system that is a subsystem of
[0006]
Recently, the capacity of HDDs has been increasing. Along with this, not only as a conventional auxiliary storage device for computers but also as a hard disk recorder for storing broadcast-received AV content, the application field has expanded, and it has begun to be used for recording various content.
[0007]
Here, taking the case of being used as an auxiliary storage device for a computer as an example, the physical formatting method of the hard disk and the data read / write operation to the hard disk will be considered.
A large number of “tracks” are formed concentrically on the hard disk as sections for recording data. Then, track numbers such as 0, 1,... Are assigned from the outermost periphery to the inner periphery. The greater the number of tracks on the disk surface, the greater the storage capacity of the media.
[0008]
Further, each track is divided into “sectors” which are recording units. Normal data read / write operations on the disk are performed in units of sectors. Although the sector size differs for each medium, the hard disk sector is generally determined to be 512 bytes. Further, in consideration of the media usage efficiency, in order to make the recording density on each track substantially uniform, the number of sectors is increased toward the outer track having a longer circumference. This is called a “Zone Bit Recording” (zone bit recording) method.
When the zone bit recording method is adopted, the recording density on each track can be made almost uniform, but the data transfer speed for each track becomes non-uniform. The data transfer rate becomes lower as the disk moves in the inner circumferential direction.
[0009]
Also, in the case of an HDD configured by concentrically overlapping several media, it can be considered that the same numbered track of each media is arranged in a cylindrical shape, and this is called a “cylinder”. Each cylinder is assigned the same number as the track number, and cylinder 0, cylinder 1,. The plurality of heads inserted between the media always operate as one body and move between the cylinders.
[0010]
A CHS mode can be given as a method for designating (addressing) a target sector. This is a method of accessing desired data by designating PBA (Physical Block Address) on the disk in the order of C (Cylinder), H (Head), and S (Sector).
[0011]
On the other hand, in the CHS system, there is a limit to the CHS parameters that can be specified on the computer main body side that operates as a host for the HDD, and it becomes impossible to cope with an increase in capacity of the hard disk. For this reason, an LBA (Logical Block Address) mode is adopted. This expresses a cylinder number, a head number, and a sector number (CHS) by a logical serial number called LBA starting from 0.
[0012]
In the conventional HDD, in order to access the medium and read / write data, the magnetic head is first scanned on the medium in order to reach the track with the target sector. This is called a “seek” operation of the magnetic head. Next, in order to reach the target sector on the track, the medium rotates and waits until the target sector comes directly under the magnetic head. This is called “waiting for rotation”.
[0013]
As the capacity of the disk increases, the track density increases and the track width becomes extremely narrow. Therefore, in order to write and reproduce data accurately, positioning of the magnetic head requires high accuracy. Therefore, a servo technique is adopted in which the position of the magnetic head is always aligned with the center of the track. It is possible to check whether or not the magnetic head is at the center of the track by writing signals called “servo patterns” on each track at regular intervals and reading them with the magnetic head. The servo pattern is written with high accuracy in the manufacturing process of the HDD. For example, a signal for positioning the head, a cylinder number, a head number, and a servo number are written in the servo area.
[0014]
Many conventional HDDs have an interface such as IDE or SCSI for connection to a computer. Then, the disk drive control from the computer main body has a basic operation of designating the LBA indicating the head sector and the number of sectors to be accessed using a command set defined by the interface.
In this case, on the HDD side, access can be made while creating from the designated head sector and creating a sequence for prefetching by predicting the sector to be accessed thereafter.
[0015]
This pre-read operation is based on the premise that sectors having continuous addresses are allocated to a series of data. Normally, sectors having consecutive addresses exist in consecutive head numbers or track numbers.
When large data is continuously written on the medium, the prefetching operation at the time of reading works effectively.
[0016]
[Problems to be solved by the invention]
However, when fragmentation of the storage area proceeds and large data is fragmented into small pieces and distributed in multiple locations, the read-ahead at the time of reading points to other data, so it works effectively. I can't. It can be said that such a phenomenon occurs because the HDD does not grasp the file structure handled by the host (computer main body or the like) side that requests data read / write.
[0017]
In addition, when the prediction is lost due to a new access request from the host side, the disk drive seeks to the track including the sector where the requested data exists, and when the tracking is completed, the target sector is not accessed. Wait for it to be possible. Here, seek time and rotation waiting time occur.
[0018]
Prefetched data is stored as long as the capacity of the data buffer allows. If the prediction is lost continuously or sporadically, the unused old data in the data buffer is discarded in order. Further, seek activation cannot be performed during this prefetching.
[0019]
As described above, it can be said that seek time and rotation waiting time, time loss due to seek start delay due to invalid prefetching, and data loss due to invalid prefetching have occurred.
[0020]
In a normal disk drive, in order to shorten the seek time and the rotation waiting time, the rotation speed of the disk is increased. This is because there is no regularity in the amount of data and the data structure handled on the host side such as a computer, and thus it is difficult to improve by the access method. However, the method of increasing the number of revolutions of the disk is disadvantageous in terms of power consumption and storage capacity, and is problematic.
[0021]
In many conventional external storage systems such as HDDs, error correction is performed in units of one sector (one sector is usually composed of 512 bytes). As a result, error correction can be performed for random errors occurring in each sector. Error correction cannot be performed for random errors or burst errors that exceed the correctable range. In view of this, the read error has been kept below a certain level by performing a retry operation.
However, such a retry operation needs to be read again after waiting for one rotation. This further causes a delay in data read time.
For example, in a system that handles AV content, there is a situation where high transfer speed is required, such as HD (high definition image quality) playback or special playback, and even if an uncorrectable read error occurs in a sector, time Sometimes it is not possible to retry. In such a case, at present, the process cannot be advanced without error correction, and as a result, the reproduction quality is deteriorated.
[0022]
For example, the above-mentioned Patent Document 2 has information indicating the importance level of the data block to be recorded, and based on this information, retry is performed for the important data block, and no retry is performed otherwise. A technique for switching is disclosed.
Further, the above-mentioned Patent Document 1 has information indicating the importance of the data block to be recorded, and based on this information, the error correction capability is increased for the important data block, and other than the normal correction capability. A technique for performing such switching is disclosed.
These techniques function appropriately to some extent, particularly in systems that handle AV contents, but more effective techniques are required for avoiding retries and correcting errors.
[0023]
Furthermore, if a disturbance such as vibration is applied during reading of these AV contents, errors occur more often than when reading without a disturbance. For this reason, the number of data that cannot be corrected for errors increases, resulting in poor reproduction quality.
In particular, with regard to errors in a state where disturbance is applied, when the servo areas of the HDD are arranged radially on the disk, errors often occur intermittently in units of sector sections sandwiched between the servo areas.
The error may be random or a burst. The greater the disturbance, the greater the number of sectors in which intra-sector correction for correcting random errors becomes impossible.
[0024]
[Means for Solving the Problems]
The present invention has been made in view of the above-described problems, and realizes the following objects as a data recording / reproducing apparatus, a data recording / reproducing method, a computer program, and a recording medium.
That is, the access time to a desired data storage location is shortened.
In addition, stable data reproduction is performed without reducing the transfer rate.
In addition, by making it possible to correct errors over a wider range of random errors and burst errors, retry operations can be avoided to reduce transfer speed reduction, and even when disturbances are added, retry operations can be performed. By avoiding this, stable data reproduction can be performed without lowering the transfer rate.
[0025]
In the data recording / reproducing apparatus of the present invention, concentric or spiral tracks are formed, and each of the tracks is divided into a plurality of sectors, and the servo area is formed at each position so as to be radial. A data recording / reproducing apparatus for a disk recording medium, wherein seek means for seeking a target track, data access means for accessing on the seeked track, and error correction code for error correction of data are generated And error correction means for correcting the error of the data based on the error correction code. The error correction means sets a first error correction code unit with respect to a predetermined data amount unit, and a plurality of first error correction units according to a servo area setting in a track formed on the disk recording medium. A second error correction code unit is set for the error correction code unit, and an error correction block including a plurality of the first error correction code units and the second error correction code units added thereto is formed. And the second error correction code based on the number of sectors as the first error correction unit in the section between the two servo areas on the track. unit The error correction block is formed so that there are no two or more error correction blocks per track and the error correction block is completed in units of one or more tracks.
[0026]
Also The error correction means generates an error correction code by a Reed-Solomon code method.
Further, the error correction block formed by the error correction means has an interleave structure in the first or second error correction code unit.
[0027]
Further, the data access means starts access from the head sector that can be accessed on the track sought by the seek means, and performs access for one track.
In this case, the data access means allocates a relative position address to each sector in order from the sector that started the access on the track at the time of write access, and reads data read from each sector on the track at the time of read access. Relocate according to the relative position address to reproduce the written data.
The error correction means sets the second error correction code unit according to the number of the servo areas in one track and the number of the first error correction units in one track.
The error correction means forms the error correction block so that two or more error correction blocks do not exist per track and complete the error correction block in units of one or more tracks.
[0028]
Further, the error correction means makes the error correction block configuration variable on the disk recording medium.
The disk recording medium is configured by a zone bit recording method in which the number of sectors on a track differs depending on the radial position.
The error correction means has a different error correction block configuration for each zone on the disk recording medium. In this case, the error correction means switches the error correction block configuration according to the zone switching information.
Further, the error correction means sets the configuration of the error correction block to a fixed configuration regardless of each zone on the disk recording medium.
[0029]
In the data recording / reproducing method of the present invention, concentric or spiral tracks are formed, each track is divided into a plurality of sectors, and the servo area is formed at each position so as to be radial. As a data recording / reproducing method for a disk recording medium, a seek step for seeking a target track, a data access step for accessing on the seek track, and an error correction code for error correction of data are generated An error correction step of correcting data based on an error correction code, and based on the number of sectors as the first error correction unit in a section between the two servo areas on the track, Second error correction code unit The error correction block is formed so that there are no two or more error correction blocks per track and the error correction block is completed in units of one or more tracks.
In the error correction step, an error correction code is generated by the Reed-Solomon code method.
The error correction block formed in the error correction step has an interleave structure in the first or second error correction code unit.
[0030]
Further, in the data access step, access is started for one track on the track sought by the seek step, starting from the head sector that has become accessible.
In the above data access step, relative access addresses are assigned to each sector in order from the sector that started access on the track at the time of write access, and data read from each sector on the track at the relative position at the time of read access. Relocate according to the address and reproduce the written data.
In the error correction step, the second error correction code unit is set in accordance with the number of servo areas in one track and the number of first error correction units in one track.
In the error correction step, the error correction block is formed so that two or more error correction blocks do not exist per track and the error correction block is completed in units of one or more tracks.
[0031]
In the program of the present invention, concentric or spiral tracks are formed, and each of the tracks is computer-readable for executing a data recording / reproducing process on a disk recording medium divided into a plurality of sectors on a computer system. It is a program described in a format, and is a program for executing the steps of the data recording / reproducing method.
[0032]
In the recording medium of the present invention, a first error correction code unit is set for a predetermined data amount unit, and second error correction code units for a plurality of first error correction code units are set. An error correction block including the first error correction code unit and the second error correction code unit added thereto is formed, and the second error correction code is formed in the error correction block. The number of sectors in the unit is set based on the number of sectors as the first error correction unit in the section sandwiched between two servo areas of the servo area in each recording track formed concentrically or spirally. In addition, the error correction block is formed so that there are no two or more error correction blocks per track and the error correction block is completed in units of one or more tracks. Data having the configuration of the error correction block is recorded on each recording track.
[0033]
With the above-described present invention, the above-described intended object is realized.
That is, the random error in the sector can be corrected by using the first error correction code unit, and the error exceeding the intra-sector error correction range can be corrected by using the second error correction code unit. Can correct burst errors across the In other words, by setting the error correction block configuration to C1 + C2, even when retrying cannot be performed to maintain the data transfer rate higher than desired, error correction is further performed at C2 when error correction becomes impossible at C1. Therefore, a more stable system can be provided. In this way, it is possible to perform error correction even for random errors and burst errors in a wider range, and by avoiding the retry operation, stable data reproduction can be performed without reducing the transfer speed. .
Further, the configuration of the second error correction code (C2) unit is such that the servo area setting in the track, that is, the number of servo areas in one track circumference, the number of sectors (first error correction units), and between the servo area and the servo area. By setting according to the number of first error correction units, it is possible to set in consideration of errors between servo areas (servo frames) due to disturbance or the like. Then, the error correction code unit efficiency can be improved and the redundancy can be reduced as compared with the error correction block setting based on the servo area setting in the track.
In addition, by setting the second error correction code in each zone according to the servo area configuration, the error correction capability can be made uniform over the entire circumference of the disk, and an efficient disk format can be realized. .
[0034]
Further, the data access means starts access from the head sector that has become accessible on the track sought by the seek means, and performs access for one track. For example, an access for one track is performed from a sector in which the magnetic head is on-track. In other words, by using one track as an access unit, it is possible to reliably determine the seek activation timing without the indefinite process of prefetching.
In particular, in this case, the data access means allocates relative position addresses in order from the sector that started access on the track to each sector at the time of write access, and data read from each sector on the track at the time of read access. Can be accessed from any sector of the track by reproducing the written data according to the relative position address and reproducing the written data. Can be eliminated. As a result, the number of seeks is minimized, and the access time is shortened.
Further, a request source for writing or reading (for example, a host device such as a computer connected to the HDD) does not need to be aware of the sector address on the disk. Further, by using a relative position address that requires a short data size, the storage area can be effectively used.
Also, at the time of read access, the data read from each sector on the track is rearranged according to the relative position address on the buffer memory, for example, so that the original data can be assembled regardless of the position of the sector where access is started. However, in this case, it is appropriate to form the error correction block so that there are no two or more error correction blocks per track and to complete the error correction block in units of one or more tracks.
[0035]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in the following order with reference to the drawings.
1. First embodiment
1-1 Configuration of hard disk device
1-2 Servo area
1-3 ECC configuration
1-4 Format examples and processing
2. Second embodiment
2-1 Access operation
2-2 ECC configuration
2-3 Format examples and processing
3. Modified example
[0036]
1. First embodiment
1-1 Configuration of hard disk device
FIG. 1 schematically shows an overall configuration of an HDD (hard disk device) 10 according to an embodiment of the present invention.
As shown in the figure, the HDD 10 includes a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) / RAM (Random Access Memory) 12, a disk controller 13, a buffer RAM 14, a data read / write control unit 15, and the like. , A servo controller 16 and a magnetic disk 21.
[0037]
The CPU 11 executes control codes stored in the ROM / RAM 12 and controls the operation in the drive 10 in an integrated manner.
The disk controller 13 receives a command from a host (not shown) connected via the interface 17. The CPU 11 performs this command processing, and the disk controller 13 instructs a hardware operation to the data read / write control unit 15 and the servo control unit 16 according to the command processing result.
Write data received from the host via the interface 17 and data read from the magnetic disk 21 and passed to the host are temporarily stored in the buffer RAM 14.
[0038]
The data read / write control unit 15 performs a code modulation process to create a data pattern to be actually recorded, and writes data to the magnetic disk 21 via the preamplifier 25. Conversely, the read data is taken in from the magnetic disk 21 via the preamplifier 25 and the data is demodulated.
[0039]
The servo control unit 16 synchronously drives a voice coil motor (VCM) 23 that moves an arm on which the magnetic head 22 is mounted and a spindle motor (SPM) 24 that rotates the magnetic disk 21, so that the magnetic head 22 becomes a magnetic disk. 21 is controlled to reach a predetermined range on the target track. Further, control is performed to seek the head position to a predetermined position from the servo pattern (described above) on the disk.
[0040]
A large number of tracks, which are sections for recording data, are formed concentrically on the magnetic disk 21. For example, the track numbers are 0, 1, 2,... From the outermost periphery of the disk 21 toward the inner periphery. Allocated. Each track is further divided into sectors, and this sector unit is the minimum unit in which data read / write operations can be performed.
The amount of data in the sector is fixed at 512 bytes, for example.
In addition to data, header information, error correction code, and the like are added to the actually recorded sector.
[0041]
As for the number of sectors per circuit, a ZBR (Zone Bit Recording) system is adopted in which the number of sectors increases as it goes to the outer track where the peripheral length becomes longer. That is, the number of sectors per track over the entire circumference of the magnetic disk 21 is not uniform, and the magnetic disk 21 is divided into a plurality of zones in the radial direction, and is set to have the same number of sectors in each zone.
[0042]
Although not shown, several magnetic disks (platters) can be concentrically overlapped in the drive unit, and the same track number of each magnetic disk is arranged in a cylindrical shape (cylinder). It is specified with the same cylinder number as the track number.
[0043]
FIG. 3 shows an example of the ZBR method.
In the example shown in the figure, the disk is divided into three zones, and zones 0, 1, 2 and zone numbers are given in order from the outermost periphery. Further, each zone includes a plurality of tracks.
In FIG. 3, each zone is divided by sectors. In this case (as a schematic example only), zone 0 is composed of 32 sectors. Similarly, zone 1 is 16 sectors and zone 2 is 8 sectors. Each is composed. When switching zones, the number of sectors, the spindle motor 24 rotation speed is kept constant, the recording / reproducing clock is made variable, etc., the linear recording density is kept within a predetermined range, and the storage capacity per disk is increased. To be determined.
[0044]
FIG. 2 shows the internal configuration of the disk controller 13 of FIG. 1 in more detail. As shown in the figure, the disk controller 13 includes a CPU interface 31, a host controller 32, a buffer controller 33, a servo controller 34, a disk formatter 35, and an ECC controller 36. In the figure, an arrow that causes data movement is indicated by a double line.
[0045]
The CPU interface 31 is an interface between the CPU 11 and the RAM / ROM 12, and notifies a command from the host or receives a command processing result from the CPU 11.
The host controller 32 communicates with a host connected via the interface 17.
The buffer controller 33 controls the exchange of data between the buffer RAM 14 and each unit in the disk controller 13.
The servo controller 34 reads the servo information from the servo pattern on the magnetic disk 21 by controlling the operations of the VCM (voice coil motor) 23 and the SPM (spindle motor) 24, and passes this information to the servo controller 15.
[0046]
The disk formatter 35 performs control for writing data on the buffer RAM 14 to the magnetic disk 21 or reading data from the magnetic disk 21.
The ECC controller 36 generates and adds an ECC code from the data stored in the buffer RAM 14 at the time of writing, or performs error correction at the time of reading.
[0047]
The hard disk device 10 according to the present embodiment is configured as described above, and in this configuration, as described below, retry is possible by enabling error correction for a wide range of random errors and burst errors. The operation is avoided to reduce the decrease in transfer speed, and stable data reproduction is performed.
[0048]
1-2 Servo area
FIG. 4 shows an example of the arrangement of servo areas on the magnetic disk 21.
In FIG. 4, the solid line in the radial direction indicates the servo area SRV (not the sector separation as shown in FIG. 3).
[0049]
In the example shown in FIG. 4, servo areas are radially arranged on the magnetic disk 21 as indicated by 32 solid lines in the radial direction. That is, the servo area SRV is formed regardless of the zones 0, 1, and 2 that are concentric circles. That is, in any zone, 32 servo areas are formed per track.
[0050]
When one sector is given by 512 bytes, the size per sector (sector size) is small compared to the capacity between the two servo areas on the track, so that a certain servo area on the track, A plurality of sectors are arranged between the next servo areas.
The arrangement of these sectors is mainly determined for each ZBR zone. That is, when the zone is switched, the number of sectors arranged between the servo areas also differs.
[0051]
When switching the zones, for the specific number of sectors, the rotational speed of the spindle motor 24 is kept constant, the recording / reproducing clock is made variable, and the linear recording density is kept within a predetermined range, so that the memory per disk is stored. Determined to increase capacity.
[0052]
In the example of FIG. 4, the number of servo areas per track is 32. For example, if the number of servo areas is 96, the servo areas are arranged radially with respect to the disk. A plurality of sectors are arranged between the next servo areas.
The servo bandwidth is determined by the number of servo areas per track, the number of rotations of the disk, the servo frequency, etc., and is set according to the system requirements.
[0053]
FIG. 5 shows a specific example of the sector arranged between the servo areas as the track portion indicated by (1) in FIG.
FIG. 5A shows an example in which 8 sectors are arranged between the servo area SRV and the servo area SRV.
A range between two servo areas SRV is also called a servo frame. Therefore, this example is an example in which 8 sectors are provided as servo frames.
FIG. 5B shows an example in which 8.5 sectors are arranged between the servo area SRV and the servo area SRV (servo frame).
[0054]
The length of each sector as shown in FIG. 5 is determined by the number of rotations of the spindle motor 24, the recording / reproducing clock, etc., but it is not always necessary that the sector fits between the servo area SRV and the servo area SRV. Yes.
In such a case, as shown in FIG. 5 (a), the largest sector that can be accommodated between the servo areas can be arranged, and the remaining portion can be made empty and not used for the sector. As shown in (b), the remainder may be used for sector arrangement, and the efficiency may be improved by arranging the remaining shortage for the sector between the next servo areas.
[0055]
Incidentally, in the servo area SRV, for example, track positioning control is performed. In other words, when the track trace by the magnetic head 22 passes through the servo area SRV, information is obtained as to whether the track is turned on or off.
Here, it is assumed that the track position is shifted due to the addition of a disturbance such as vibration during data reading. When the track moves largely, the entire servo control is performed from the beginning. That is, the data reading is interrupted, and a necessary track is accessed again to read the data.
[0056]
On the other hand, when the track is moved (shifted) within the predetermined range in the direction of the adjacent track with respect to the correct position, the data reading is continued as it is while controlling the track position.
Since the track position control is performed when passing through the servo area, an error in reading data while the track position is shifted occurs between the servo area SRV and the next servo area SRV. There are many cases.
That is, in the case of FIG. 5A, when the vibration is applied and the track position is deviated within a predetermined range, an increase in reading error often occurs, for example, between sector numbers 1 to 8. It will be.
Similarly, in the case of FIG. 5B, it is between sector numbers 1-9.
[0057]
Of the reading errors in the sector, in the range up to a predetermined byte, the reading error can be corrected by the error correction in the sector.
However, if the vibration is large and the deviation of the track position is within the predetermined range, but the deviation is large, the occurrence of errors in the read data further increases, and the sector within the sector set in the sector is increased. Beyond the possible range of error correction.
Eventually, the entire sector arranged between the servo area and the next servo area is prone to errors.
That is, continuous sector errors occur, which is one of the causes of burst errors.
[0058]
1-3 ECC configuration
FIG. 6 shows an example of the ECC block configuration of this example.
The ECC block includes C1 (first error correction code) for performing intra-sector correction and C2 (second error correction code) for performing inter-sector correction.
In this example, a Reed-Solomon code having a symbol length of 8 is used as the ECC correction code.
[0059]
In this case, it is assumed that the ECC block structural unit is 192 sectors, 176 sectors from sectors 0 to 175 are used as data sectors, and the remaining 16 sectors are used as the second error correction code C2.
For example, one sector is composed of 512 bytes of data by adding a 4-byte CRC (cross check code) and a total of 48 bytes of C1.
[0060]
As described above, when the unit of the ECC block configuration is 192 sectors, if, for example, a track circumference is 768 sectors in a certain zone, a quarter circumference (25%: 192/768 = 0.25) is the ECC block configuration unit. Become.
For example, if a track has 480 sectors in one zone, 1/2 cycle (192/480 = 0.40) is an ECC block constituent unit. One-half cycle means that there is an ECC block configuration across tracks, and indicates that 40% of one cycle is an ECC block configuration unit.
[0061]
Consider the error correction capability in this example.
By using C1 for a random error, it is possible to correct up to 24 bytes per sector (up to 48 bytes if byte loss information is obtained).
Furthermore, for burst errors, error correction with a length of up to 8 sectors per ECC block constituent unit (up to 16 sectors using the CRC result) can be performed by using C2.
[0062]
Here, the circumstances of adopting such an error correction block will be described.
In many conventional HDD systems, error correction is performed only in units of one sector including 512-byte data and information bits.
Therefore, error correction can be performed for random errors occurring in each sector, but for random errors that exceed the correctable range, or burst errors, that is, errors that continue long beyond the sector, Error correction could not be performed.
[0063]
In such a case, for example, by performing a retry operation, it is possible to make the read error below a certain level and perform error correction. However, the retry operation basically corresponds to an increase in the extra access time for one turn per time.
Here, even if the access time is shortened by the track unit access as described above, if a retry operation occurs, the access time eventually increases, resulting in a delay in data read time.
For example, when handling AV content such as HD (high-definition image quality) playback or special playback, when a high transfer speed is required, even if an uncorrectable read error occurs, there is no time to perform a retry operation in time. There is. In such a case, at present, the processing is proceeding without correcting the reading error. As a result, the reproduction quality is deteriorated.
Therefore, in the present embodiment, the ECC configuration is configured as described above to realize stable data reproduction, and to reduce the number of cases where error correction that causes a retry occurrence cannot be performed. is there.
That is, an error correction unit (ECC block) composed of C1 + C2 is configured by adding C2 correction capable of performing correction between sectors in addition to the conventional C1 correction that is error correction of one sector unit.
[0064]
By the way, in the example shown in FIG. 6, there is no description about interleaving, but in the Reed-Solomon code having a symbol length of 8, it is necessary to apply interleaving to 512-byte data.
7 and 8 show an example in which interleaving is applied to the ECC block configuration of this example.
[0065]
In FIGS. 7 and 8, interleaving is applied to sector n. One sector is divided into 4 parts by a 4-byte header, 512-byte data, and 4-byte CRC. A 12-byte ECC code C1 is added to each unit.
For example, interleave 0 is configured by adding a 12-byte parity to a 1-byte header, 128-byte data, and a 1-byte CRC. The same applies to the interleaves 2, 3, and 4.
[0066]
Then, the arrangement in the sector is interleave 0 for the first, interleave 1 for the first, interleave 2 for the second, interleave 3 for the third, interleave 0 again for the fourth, and so on. Arrange in order.
A 4-byte header, 512-byte data, and then a 4-byte CRC are added, and subsequently created C1 codes are arranged in the same order.
FIG. 7 shows an interleaved decomposition, and FIG. 8 shows an arrangement when addresses 0 to 567 are allocated on the memory.
[0067]
In this way, FIG. 7 and FIG. 8 are the same sector unit as FIG. 6 described above. That is, a 4-byte header and 512-byte data are added with a 4-byte CRC and an ECC code C1 of 48 bytes in total to form one sector, which is configured as a main part of a recording sector on the magnetic disk 21.
Note that the actual recording data configuration further includes a preamble, a synchronization signal, a postamble, and the like. Further, as another configuration example of the sector unit, there are a format without a header file, a format without a CRC, and the like.
[0068]
Such an interleaving configuration may be determined mainly by a hardware configuration. In the Reed-Solomon code having a symbol length of 8, the interleaving configuration is applied in the C1 direction (ie, sector direction) as shown in FIG.
[0069]
Note that the above-described interleaving may be applied to C2 in which ECC is executed between sectors. Even in this case, the same configuration and operation can be realized by replacing the Byte of the DATA portion with the sector in FIG. 7 and expanding the Byte in the C2 direction (that is, the direction orthogonal to the sector).
[0070]
In this example, one sector is 512 bytes of data. However, the number of sectors is not limited to this. For example, even when 1024 bytes or 2048 bytes are used as one sector, the sector is the same as above. An ECC block configured between every sector and between sectors can be realized.
[0071]
1-4 Format examples and processing
In the present embodiment, in the C2 setting of the ECC block configuration, information on the number of sectors between servo areas, which is likely to be a unit for generating a burst error, is used. As can be seen from the above, the sector is the first error correction unit (C1 error correction unit).
[0072]
In the example of FIG. 5A, since the number of sectors between servo areas (servo frames) is 8, the C2 sector of the ECC block configuration is set to a multiple of 8.
Alternatively, if it cannot be set to a multiple of 8 for the sake of the ECC block constitution unit, a minimum set value is set to a multiple of 8 and a set value higher than this is given.
For example, when 2 servo frames are used as a reference for setting C2, C2 in the ECC block configuration is set to 16 sectors.
Alternatively, for example, when C2 must be set as a multiple of 3, the first 18 multiples exceeding 16 sectors corresponding to two servo frames are set as the C2 set value.
[0073]
On the other hand, in the example of FIG. 5B, the number of sectors between servo areas (servo frames) is not just 8, but 8.5.
In such a case, an integer value is set using the total number of sectors information included in the determined servo frame.
For example, when one servo frame is set as a reference for setting, C2 in the ECC block configuration is set to 9 sectors.
Further, when 2 servo frames are set as a reference for setting, C2 in the ECC block configuration is 17 sectors.
Alternatively, as in the case of FIG. 5A, if C2 must be set as a multiple of 3 as a constraint, for example, the first multiple of 3 that exceeds 17 sectors corresponding to 2 servo frames. A certain 18 sectors is set as the C2 set value.
[0074]
The C2 sector is set as described above. For example, when the ECC block format of FIG. 6 is configured based on the example of FIG. 5A, this ECC block has a maximum of 16 sectors, that is, 2 sectors. The servo frame can be corrected.
[0075]
An example of the ECC block configuration will be schematically shown and described in FIG.
The example of FIG. 9 is an example in which a fixed ECC block configuration is used over the entire disk.
FIG. 9 shows an example including the ZBR (Zone Bit Recording) method and the arrangement of servo areas.
In FIG. 9 (and FIG. 11 described later), a radial solid line indicates a servo area and a sector boundary, and a broken line indicates a sector boundary. Here, as an example, as shown in FIG. 5A, the number of sectors between servo areas is an integer.
[0076]
For the sake of simplification of explanation and illustration, the fixed ECC block configuration here is that the ECC block is composed of 16 sectors irrespective of the zone, of which the data sector is 12 sectors and the C2 sector is 4 sectors. It refers to the configuration to be made. Of course, this specific number of sectors is merely an illustrative example, and when the ECC block unit as shown in FIG. 6 is 192 sectors, the following example should be assumed similarly. is there.
[0077]
In FIG. 9, the magnetic disk 21 is divided into three zones, and the number of sectors in one track circumference is different in each zone.
In zone 0, it is assumed that 64 sectors are arranged around one track, zone 1 is 32 sectors, and zone 2 is 16 sectors.
In each zone, the disk rotation speed is the same, but the operation clock is changed, and the linear recording density in each zone is within a certain range.
[0078]
In this case, the servo areas indicated by 16 radial solid lines are given in the radial direction regardless of the zones 0, 1, and 2 that are concentric circles.
The operation clock in the servo area is set separately from the data area, and a predetermined servo band is given over the entire circumference of the disk (servo clock).
Here, the disk rotation speed is the same in the data area and the servo area.
[0079]
At this time, in the ECC block configuration, C1 is added for each sector. The configuration of C1 is fixed and the same.
Specifically, for example, as shown in FIG. 6, a 48-byte C1 is added to 512-byte data in one sector.
[0080]
As described above, assuming that the ECC block is composed of 16 sectors on the entire circumference of the disk, in zone 0 where the track circumference is 64 sectors, 1/4 circumference is the ECC block constituent unit.
Further, in zone 1 where the track circumference is 32 sectors, ½ circumference is the ECC block constituent unit, and in zone 2 where the track circumference is 16 sectors, the circumference is the ECC block constituent unit.
[0081]
In each ECC block constituent unit, C2 is arranged with one servo frame as a set minimum value.
In the case of this example in which the configuration of C2 is fixed and the same throughout the disk, the ECC block configuration is composed of a total of 16 sectors of 12 sectors of data and 4 sectors of C2 in all zones.
[0082]
In other words, considering that the ECC block configuration is fixed and that C2 is arranged with one servo frame as a set minimum value in each ECC block configuration unit, the C2 sector is arranged as shown in FIG.
That is, in zone 0, four sectors are arranged in one servo frame, so the C2 sector, which is set to four sectors, is set as one servo frame, and is combined with 12 sectors for data and one track 1/4. Two ECC blocks are formed. In other words, four ECC blocks for one track are formed.
In zone 1, two sectors are arranged in one servo frame, so the C2 sector, which is set to four sectors, is set as two servo frames, and one ECC in one-half track circumference together with the 12 sectors for data. A block is formed. In other words, two ECC blocks of one track are formed.
In zone 2, one sector is arranged in one servo frame, so the C2 sector, which is set to four sectors, is set as four servo frames, and one ECC block is formed in one track together with the 12 sectors for data. It is formed. In other words, one ECC block for one track is formed.
[0083]
In such a configuration, when viewed in servo frame units, the C2 sector consists of 1 servo frame for zone 0, 2 servo frames for zone 1 and 4 servo frames for zone 2, and the entire disk has all ECC block configurations. One servo frame or more which is the minimum setting value of the C2 sector is secured within the unit. Specifically, even in zone 0, which is the outermost periphery, one servo frame (that is, the minimum set value) is secured.
[0084]
FIG. 10 shows a processing example for setting a fixed ECC block on the entire circumference of the disk as shown in FIG.
This processing is described assuming that the ECC block is fixed as 192 sectors as shown in FIG.
[0085]
In step F101, first, the number of sectors of the ECC block is set. For example, 192 sectors are set as an ECC block.
Next, in step F102, it is determined how many sections of the servo frame can be corrected. For example, assume two servo frames. This is the setting of the redundancy ratio for C2 error correction.
In step F103, the number of sectors that satisfy the determined two servo frames is set. In this case, since the ECC block configuration is fixed over the entire circumference of the disk, the number of sectors per servo frame may be different between the inner zone and the outer zone in the ZBR method. At this time, the maximum number of sectors per servo frame is set as a reference.
In ZBR, the outermost zone 0 usually gives the maximum number. Here, for example, 16 sectors are assumed. That is, in the outermost zone, as shown in FIG. 5A, it is assumed that one servo frame includes 8 sectors, and the number of sectors included in 2 servo frames that can be corrected is 16 sectors.
Thus, in step F104, the maximum correction sector number of the ECC block set this time is determined. For example, here, a ECC block of 192 sectors can be corrected up to 8 sectors (up to 16 sectors if there is erasure correction information).
[0086]
By performing the setting as shown in FIG. 10, the C2 setting is realized with a fixed ECC block configuration over the entire circumference of the disk regardless of the zone and capable of correcting a predetermined servo frame unit.
The setting process as shown in FIG. 10 may be executed by the error correction coding and error correction processing function realized by the processes of the disk controller 13 and the CPU 12 during recording and reproduction. In this case, the error correction capability can be increased or decreased by changing the sector number setting of the ECC block or the setting of the servo frame that can be corrected.
Alternatively, if the error correction capability is not particularly changed, such processing is performed in advance in the HDD 10 (for example, the CPU 11) or an external device, and the setting value obtained by the processing, that is, the ECC block configuration. (The number of data sectors and the number of C2 sectors) may be stored in the disk controller 13 or the CPU 11, and ECC processing may be performed according to the stored setting value during recording and reproduction.
[0087]
Next, an example in which the ECC block configuration is changed for each zone will be described with reference to FIG.
FIG. 11 shows an example in which C2 is arranged with a set minimum value in one servo frame unit between the servo areas arranged radially.
In the case of FIG. 11 as well, the servo area is indicated by a radial solid line, but the number of servo areas per track is 32, and the number of sectors per track is 96 in zone 0 and in zone 1 There are 64 sectors and 32 sectors in Zone 2.
[0088]
As ECC, C1 is added for each sector. The configuration of C1 is fixed and the same. Specifically, for example, as shown in FIG. 6, a 48-byte C1 is added to 512-byte data in one sector.
Then, the configuration of C2 is switched according to the zone.
Further, over the entire circumference of the disk, the track 1/4 is set as an ECC block unit, and within the ECC block unit, C2 is arranged with one servo frame as a set minimum value.
[0089]
At this time, if one servo frame is set as a C2 sector for each ECC block, the result is as follows.
In zone 0, one servo frame includes three sectors. The track ¼ circumference is 24 sectors. Therefore, in the zone 0, an ECC block is composed of 24 sectors, and 21 sectors of data sectors are provided for 3 sectors of C2.
In zone 1, one servo frame includes two sectors. The track ¼ circumference is 16 sectors. Therefore, in the zone 1, the ECC block is composed of 16 sectors, and the data sector is 14 sectors with respect to C2 of 2 sectors.
In zone 2, one servo frame includes one sector. The track ¼ circumference is 8 sectors. Therefore, in the zone 2, an ECC block is composed of 8 sectors, and 7 sectors are formed for one sector C2.
[0090]
In this way, the ECC block is just divided into four on one track. Then, as shown in FIG. 11, four C2 areas are given per round.
In all zones and in all ECC block structural units, the C2 sector is secured as one servo frame, which is the minimum set value.
[0091]
FIG. 12 shows a processing example in the case where the ECC block setting is varied for each zone as shown in FIG.
In step F201, zone switching is set. For example, assuming that there are 16 zones (zone 0 to zone 15) on the disk, one of them is set. For example, zone 0 is set.
In step F202, the number of ECC block sectors in zone 0 is set. For example, 192 sectors are set as an ECC block.
Subsequently, in step F203, it is determined how many servo frames can be corrected according to a predetermined redundancy ratio for C2 error correction. For example, assume two servo frames.
In step F204, the number of sectors that satisfy the determined two servo frames is set. In this example, the ECC block configuration is set for each zone. For example, in step F204 after setting zone 0 in step F201, the number of sectors included in the servo frame in zone 0 may be considered. . If eight servo sectors are included in one servo frame in zone 0, the number of sectors satisfying two servo frames is set to 16 sectors.
From the above processing, in step F205, the maximum correction sector number of the ECC block set this time is determined. For example, here, a ECC block of 192 sectors can be corrected up to 8 sectors (up to 16 sectors if there is erasure correction information).
[0092]
By performing the setting as shown in FIG. 12 for each zone, an ECC block that can correct, for example, two servo frames is set for each zone.
The setting process as shown in FIG. 12 may be executed by the error correction encoding and error correction processing function realized by the processes of the disk controller 13 and the CPU 12 when recording / reproducing for a certain zone. In this case, the error correction capability can be increased or decreased by changing the sector number setting of the ECC block or the setting of the servo frame that can be corrected.
Alternatively, if the error correction capability is not particularly changed, such processing is previously performed in the HDD 10 (for example, the CPU 11) or an external device corresponding to each zone, and settings obtained by the processing are performed. The value, that is, the ECC block configuration (the number of data sectors and the number of C2 sectors) may be stored in the disk controller 13 or the CPU 11 and ECC processing may be performed according to the stored setting value during recording / reproduction.
[0093]
In the HDD 10 of this example, by setting the ECC block as in the above two examples, for example, an efficient ECC block configuration based on the servo frame (the number of sectors included in the servo frame) can be achieved. There is little redundancy due to error correction codes, which is suitable in terms of transfer rate, and it is possible to make error correction for random errors and burst errors in a wider range, and to build a stable system Can do.
[0094]
In the examples of FIGS. 10 and 12, the flow of processing in which the number of ECC blocks is set first is shown. However, in addition to this, redundancy by the C2 sector is set first, and the ECC block is configured based on this. Even if the setting is based on the servo frame, the same handling can be performed.
[0095]
In the examples of FIGS. 9 and 11, although not shown in the figure, when the ECC block unit is set to 10 sectors, for example, the ECC block is not composed of only the same track, and the ECC block is composed of the next track. The part to do occurs. In this case as well, the ECC block may be configured based on the servo frame unit.
[0096]
2. Second embodiment
2-1 Access operation
Next, a second embodiment in the present invention will be described.
The basic configuration of the hard disk device 10 according to this embodiment is the same as that in FIGS. 1 and 2 as described above, but in this configuration, as will be described below, data that does not cause rotation waiting Performs access control to realize a system with reduced access time and high data transfer speed. In particular, with respect to access, access is performed for one track by starting access from the head sector that has become accessible on the sought track.
In addition, by using an ECC block configuration corresponding to the configuration of the servo area on the magnetic disk 21, it is possible to correct errors for a wide range of random errors and burst errors, thereby avoiding a retry operation. This reduces the decrease in transfer speed.
The arrangement of the servo areas and the sector arrangement examples in the servo frame are the same as those described with reference to FIGS.
[0097]
First, the access operation will be described.
In the HDD 10, one track is accessed from the sector on which the magnetic head 22 is on-track. Sector numbers on the same track are not fixed and can be given by relative positions.
As a result, access can be started from any sector on one track. That is, by using one track as an access unit, it is possible to reliably determine the timing of seek activation without the need to perform processing consisting of an uncertain element such as prefetching. In addition, it is not necessary to wait for rotation by accessing from any sector of one track. As a result, the number of seeks can be minimized and the access time can be shortened.
[0098]
When writing to a predetermined track, a relative position starting from the sector where access is started is given to the sector.
Further, when reading is performed, reading is performed from the sector where access is started, and the data is developed on the buffer RAM 14 based on the relative position sector number. Therefore, reading may be started from any sector.
[0099]
An example of the sector format used in the track of the magnetic disk 21 to enable such an operation is schematically shown in FIG.
As shown in FIG. 13A, the sector is composed of relative position data representing the relative position of the sector on the track, a data body, and an ECC for performing error correction on the entire sector area. These are the error correction range and recording range.
By including the relative position data as a header in the error correction range, for example, even if a random error occurs in a sector, the relative position data can be recovered by error correction, thereby realizing a smooth disk access operation. be able to.
In general, a sector has an ID field for recording the address of the sector. However, since a relative position is recorded instead of an absolute position, the size of the ID field can be reduced. Accordingly, the field size that can be used for the data body in the sector increases, and the storage area is effectively used.
[0100]
When writing to a track, a relative position starting from the sector from which access is started is given to the sector, ECC data is generated based on the relative position and the original recording data, and the relative position field, data field, and ECC of each sector are generated. Record in the field. Since writing starts from the sector where access is started, there is no need to wait for rotation.
[0101]
Further, when reading is performed, reading is performed from the sector where access is started on the track, and the storage position on the buffer RAM 14 is determined based on the sector position obtained by the relative position field. Therefore, even if data reading is started from an arbitrary sector, the data stored on the track is restored in the original order by rearranging the data on the buffer RAM 14 based on the relative position. Further, since reading is started from the sector where access is started, there is no need to wait for rotation.
[0102]
FIG. 13B schematically shows another example of the sector format used in the track of the magnetic disk 21 in the HDD 10 according to the present embodiment.
Also in this case, as described above, the sector is composed of relative position data representing the relative position of the sector on the track, a data body, and ECC for performing error correction on the entire sector area. However, the entire error correction range is used, but unlike the example shown in FIG. 13A, the relative position field is not included in the recording range. Therefore, as the relative position field disappears, the field size usable for the data body in the sector becomes larger than in the above-described example, and the storage area is effectively used.
[0103]
In this case, when writing to the track, a relative position starting from the sector where access was started is given to the sector, ECC data is generated based on the relative position and the original recording data, and only the recording data and ECC data are recorded on the sector. To record. Since writing starts from the sector where access is started, there is no need to wait for rotation.
When reading is performed, reading is performed from the sector where access is started, and error correction is performed using ECC, thereby regenerating a relative position that was not written in the sector. Based on this relative position, the storage position on the buffer RAM 14 is determined. Therefore, even if data reading is started from an arbitrary sector, the data stored on the track is restored in the buffer RAM 14 in the original order. Further, since reading is started from the sector where access is started, there is no need to wait for rotation.
[0104]
An example of communication with the host at the time of data recording / reproducing according to the above sector format will be described.
An example of communication when the HDD 10 of this example performs data writing by a command from a host connected via the interface 17 is as follows.
[0105]
First, the host issues a data write command to the HDD 10. In response to this, the HDD 10 responds with an address area having the minimum seek time from the current access sequence.
When the host receives a response from the HDD 10, the host transfers the data content of the designated address area size (number of bytes, number of sectors, etc.). The HDD 10 writes the received data content in units of tracks.
[0106]
Here, as described above, when relative position information is allocated to each sector based on the access start position on the track at the time of writing, the host 50 side specifies the cylinder number, head number, sector number, etc. when making a write request. There is no need to be particularly aware of specific writing places, and there is no need to indicate these.
Further, the address area notified from the HDD 10 side to the host may be a simple one such as a content number for identifying the content requested to be written by the host.
On the HDD 10 side, a conversion table of each content number and a physical recording location on the disk 21 is prepared.
In this embodiment, since the disk access is performed in units of tracks, the conversion table with the content number is as shown in FIG. 14, for example. That is, track numbers and head numbers are registered corresponding to the content numbers.
[0107]
Note that the sector number of the CHS method is not included in the conversion table. As described above, in the configuration in which the relative position information is allocated to each sector based on the access head sector on the track at the time of writing, the data is based on the relative position information of each sector regardless of the access head sector on the track at the time of reading. Relocation is possible. For this reason, it is not necessary to specify the access start sector in the conversion table.
[0108]
This conversion table is written in the buffer RAM 14. The conversion table is written by software executed by the disk controller 13 or the CPU 11 when the write data is received from the host 50.
[0109]
A communication example when the HDD 10 of this example reads data by a command from a host connected via the interface 17 is as follows.
The host issues a data read command to the HDD 10. The target content number is specified in the read command.
On the other hand, the HDD 10 specifies the target track from the conversion table of FIG. 14 based on the content number, and performs the seek operation of the magnetic head 22. Then, the data on the disk 21 is transferred in accordance with the sequence of the address area responded at the time of data writing.
At the time of this data read request, the host side only specifies a desired content number, and does not need to be aware of a specific write location (PBA) such as a cylinder number, a head number, or a sector number.
[0110]
As described above, the HDD 10 accesses one track from the sector on which the magnetic head 22 is on-track. By using one track as an access unit, it is possible to reliably determine the timing of seek activation without the indefinite process of prefetching. In addition, since access can be performed from any sector of the track, read / write is performed from an arbitrary head position immediately after seek, thereby eliminating the waiting for rotation. As a result, the number of seeks is minimized, and the access time is shortened.
[0111]
Such a disk access operation is realized by the disk controller 13 instructing a hardware operation to the data read / write control unit 15 and the servo control unit 16 according to the command processing result by the CPU 11.
[0112]
2-2 ECC configuration
As described above, the HDD 10 of this example performs access in units of one track. In this case, it is appropriate that an ECC block having one track as a basic unit is formed on the magnetic disk 21.
[0113]
FIG. 15 shows an example of the ECC configuration of this example.
In the example of this figure, the magnetic disk 21 is divided into zones, and an example of the ECC block configuration in the zone n is shown. That is, as in a predetermined track TK indicated by a broken line in the zone n, one round of each track is set as a structural unit of the ECC block.
The ECC block includes C1 that performs intra-sector correction and C2 that performs inter-sector correction.
An error correction unit (ECC block constituent unit) composed of C1 + C2 has one track as a basic unit, and no two or more ECC block constituent units exist in each track.
[0114]
An example in which one ECC block made up of C1 + C2 is formed on a track having an integer number of rounds, for example, three rounds of a track, etc.
[0115]
FIG. 16 shows an example of the ECC block structure of the magnetic disk 21 adopting the ECC block configuration shown in FIG.
Here, it is assumed that a Reed-Solomon code having a symbol length of 8 is used as the ECC correction code.
The effective number of sectors for one track in a certain zone of a certain magnetic disk is assumed to be 768 sectors. For example, one sector includes 4 bytes of CRC (cross check code) and a total of 48 bytes of C1 to 512 bytes of data, and is composed of 4 interleaves.
[0116]
In the example of the ECC block configuration of FIG. 16, 704 sectors from sectors 0 to 703 are given as data areas, and 64 sectors from sectors 704 to 767 are given as C2 areas. C2 is composed of, for example, 4 interleaves of 16 sectors each.
With such a configuration, one ECC block has a total of 768 sectors, which is one round in this zone, and a track unit can be realized.
[0117]
Consider the error correction capability in this example.
By using C1 for a random error, it is possible to correct up to 24 bytes per sector (up to 48 bytes if byte loss information is obtained).
Furthermore, for burst errors, error correction can be performed up to 32 sectors per track (up to 64 sectors using the CRC result) by using C2.
[0118]
As in the case of the first embodiment described above, in this example, in addition to the conventional C1 correction, which is error correction in units of one sector, C2 correction capable of performing correction between sectors is added. . By adopting an ECC configuration of C1 + C2, stable data reproduction is realized, and the number of cases where error correction that causes a retry occurrence cannot be reduced.
[0119]
Then, an error correction unit (ECC block) composed of C1 + C2 is completed by a track. As described above, the ECC block unit is basically one track.
Thus, by completing the ECC block unit composed of C1 + C2 in one round of the track, one track can be set as an access unit, and data access control without causing rotation waiting can be realized. That is, the access time to a desired data storage location can be shortened. In addition, since there is no more than two ECC blocks on the same track, data access control that does not cause rotation waiting can be realized even when the ECC configuration is in units of multiple tracks. Can do.
[0120]
An operation in the disk controller 13 when such error correction processing is performed will be described.
The disk controller 13 receives formatter control information and zone switching ECC control information from the CPU 11.
The formatter control information is information relating to the disk format for starting access from the first sector after access is enabled on the seek track, and this information is for the CPU interface. 31 is sent to the disk formatter unit 35, where a data formatter is generated.
[0121]
The zone switching ECC control information is information for setting an ECC configuration that is completed in units of tracks. When the zone is switched, the number of sectors per track is switched. As a result, the setting of the ECC configuration is changed. This information is sent to the ECC controller 36 via the CPU interface 31, where the ECC configuration is set, and the buffer RAM 14 is accessed to perform a predetermined ECC process.
[0122]
In the example shown in FIG. 16, there is no description about interleaving, but in the Reed-Solomon code having a symbol length of 8, it is necessary to apply interleaving to 512-byte data. In that case, interleaving may be applied as in the example described with reference to FIGS.
[0123]
By the way, when the above-described ECC block is completed in units of tracks, when the zone of the magnetic disk 21 is switched, the number of sectors per track is different. Therefore, in the configuration with the same number of ECC parity, the error correction capability is different for each zone. Can be very different.
Therefore, by making the ECC block configuration variable for each zone, the redundancy of the error correction code can be kept within a certain range, and as a result, the error correction capability has the same strength over the entire circumference of the disk. be able to.
[0124]
FIG. 17 schematically shows an example of a disk format when the ECC block is variably configured for each zone.
In the figure, the magnetic disk 21 is divided into zones, and the number of sectors per track differs for each zone.
This is a schematic example, but the number of sectors per track is 96 sectors in zone 0, 64 sectors in zone 1, and 32 sectors in zone 2.
The rotation speed is the same for each zone, but the operation clock is changed, and the linear recording density in each zone is within a certain range.
[0125]
At this time, ECC is added with C1 for each sector. The configuration of C1 is fixed and the same. Specifically, for example, the configuration shown in FIG.
As for the configuration of C2, as shown in the figure, 12 sectors are given as C2 parity in Zone 0, 8 sectors are given as Zone 2 in Zone 1, and 4 sectors are given as C2 Parity in Zone 2, respectively.
The setting of the C2 sector will be described later.
When configured in this way, the ratio of the number of C2 parity sectors to the number of data sectors for one round in each zone becomes constant, and the C2 correction capability can be made the same in each zone.
[0126]
In an actual format, there are few cases where the value is just divisible, as shown in FIG. 17, which has a relationship between the number of zones and the number of sectors. That's fine.
[0127]
As described above, the ECC block is completed in units of tracks, has a C1 + C2 configuration, and further has an interleave configuration. In addition, the ECC configuration is variable for each zone, and the redundancy of the ECC portion is controlled within a predetermined range. Thus, error correction can be performed for random errors and burst errors in a wider range over the entire circumference of the disk, and stable data reproduction is realized.
[0128]
2-3 Format examples and processing
In FIG. 17 where the ECC block configuration is changed for each zone as described above, the C2 sector is set based on a servo frame formed by servo areas arranged radially.
The ECC block setting based on the servo area configuration will be described.
[0129]
In FIG. 17, the radial solid line indicates the servo area and sector boundary, and the broken line indicates the sector boundary. The number of servo areas per track is 32 in any zone.
As described above, one ECC block is formed in one track. Since the ECC block constituent unit is a track unit over the entire circumference of the disk, the number of sectors constituting the ECC block is switched according to the zone.
In FIG. 17, a configuration is adopted in which four servo frames can be corrected as the C2 sector.
[0130]
In the ECC block configuration in track units, in order to set four servo frames as C2 sectors, the setting values of the data sector and C2 sector in the ECC block configuration are individually given in zones 0, 1, and 2, respectively. In the ECC block configuration, C2 is arranged with the number of sectors for four servo frames as a set minimum value.
[0131]
In FIG. 17, the number of sectors of 4 servo frames is 12 sectors in zone 0, 8 sectors in zone 1, and 4 sectors in zone 2.
Therefore, in zone 0, an ECC block formed of 96 sectors per revolution is composed of 12 sectors of C2 and 84 sectors of data sectors.
In zone 1, an ECC block formed by one round of 64 sectors is composed of C2 of 8 sectors and data sectors of 56 sectors.
In zone 2, an ECC block formed by 32 sectors per cycle is composed of 4 sectors of C2 and 28 sectors of data sectors.
[0132]
In this way, an ECC block having a configuration of exactly one track and having a C2 sector arranged so that a predetermined servo frame can be corrected is set. .
At this time, as shown in FIG. 17, four servo areas are arranged and recorded as C2 per round, but the physical position does not need to be a specific position and is indefinite as shown in FIG. It may be recorded in an arrangement.
Further, in FIG. 17, for the sake of simplicity, a diagram is shown in which the arrangement is indeterminate in a lump for each zone. Become. However, even in that case, the number of sectors per round and the set sector number of C2 are set for each zone, and when the zone is switched, the number of sectors and the set sector number of C2 are also switched.
[0133]
FIG. 18 shows a processing example when performing the ECC block setting as described above.
As step F301, first, the number of servo areas is set. For example, 96.
Next, in step F302, zone information is set. That is, the number of sectors per round (or a predetermined round) in each zone is set. For example, in Zone 0, there are 768 sectors per lap.
In step F303, it is determined how many servo frames can be corrected per predetermined track. For example, there are 8 servo frames per track.
In step F304, the number of sectors that satisfy the determined 8 servo frames is set.
in this case,
The number of sectors is calculated as (number of sectors in a predetermined zone) × (correctable servo frame) / (number of servo areas). For example, 768 × 8/96 = 64, and 64 sectors out of 768 sectors per track are set as C2.
As described above, in step F305, the maximum number of correction sectors of the ECC block that is the predetermined track unit set this time is determined.
For example, the ECC block of one round of 768 sectors can be corrected up to 32 sectors (up to 64 sectors if there is erasure correction information).
[0134]
The setting process as shown in FIG. 18 may be executed by an error correction encoding and error correction processing function realized by the processes of the disk controller 13 and the CPU 12 during recording and reproduction.
In this case, the error correction capability can be increased or decreased by changing the sector number setting of the ECC block or the setting of the servo frame that can be corrected.
Alternatively, if the error correction capability is not particularly changed, such processing is performed in advance in the HDD 10 (for example, the CPU 11) or an external device, and the setting value obtained by the processing, that is, the ECC block configuration. (The number of data sectors and the number of C2 sectors) may be stored in the disk controller 13 or the CPU 11, and ECC processing may be performed according to the stored setting value during recording and reproduction.
[0135]
In the HDD 10 of this example, by setting the ECC block as in the above example, an efficient ECC block configuration based on the servo frame (the number of sectors included in the servo frame) can be achieved, and error correction can be performed. Code redundancy is low, which is suitable in terms of transfer rate, and enables error correction for random errors and burst errors over a wider range, thus creating a stable system. .
Furthermore, by using one track as an access unit, the indefinite process of prefetching can be omitted and the seek activation timing can be determined reliably. In addition, since access can be performed from any sector of the track, read / write is performed from an arbitrary head position immediately after seek, thereby eliminating the waiting for rotation. As a result, the number of seeks is minimized, and the access time is shortened.
[0136]
3. Modified example
The present invention is not limited to the examples described above, and can be applied to the following cases, for example.
Although the configuration example of the servo area has been described with reference to FIG. 4, the present invention can be applied to any number of servo areas per track as long as the arrangement is radial.
The present invention can also be applied when the number of sectors in the zone is different.
Further, as shown in FIG. 5, the present invention can be applied regardless of the number of sectors arranged between servos (servo frames).
Further, the assignment as C2 does not necessarily have to be given at the beginning (young number) or the end of the sector number. In the case of two servo frames, it is determined by the number of sectors arranged there.
The ECC block unit shown in FIGS. 6 and 16 is arbitrary, and there is no particular upper or lower limit, and it can be determined according to the requirements of the system.
Further, the present invention can be applied regardless of the configuration of C1.
[0137]
The arrangement of C2 recorded on the disc may be arranged at a predetermined position as long as the LBA can be designated.
That is, all may be arranged within a specific servo frame as in the examples of FIGS. 9 and 11, or may be arranged separately. After all, in the example of FIG. 11, for example, 8 servo frames may be composed of ECC block units, and it may be composed of data for 7 servo frames and C2 for 1 servo frame. Good.
Further, in the examples of FIGS. 9 and 11, the ECC block may straddle tracks.
In the example of FIG. 17, the present invention can be applied to any arrangement of C2 recorded on the disc as long as it is configured in units of ECC blocks per track unit.
[0138]
Further, in the embodiment, the example in which the ECC block configuration is different for each zone has been described, but the unit in which the ECC block configuration is variable is not limited to the zone.
For example, when the same ECC configuration is used in a plurality of zones (for example, zone 1 and zone 2 have the same configuration and zone 0 is different), or an area having a different ECC configuration is generated in one zone. Is also possible.
Then, it is only necessary to perform C2 setting corresponding to the servo area setting on the ECC block configuration that is variably set on the disk.
[0139]
The program of the present invention is a program for realizing the functions of the HDD 10 described above. In particular, the processes shown in FIGS. 10, 12, and 18 are executed by being started up by the CPU 11 and controlling each part of the HDD 10 based on the program.
This program can be stored in advance in the ROM / RAM 12, for example. Alternatively, a form in which the data is stored in the magnetic disk 21 and loaded into the ROM / RAM 12 is also conceivable.
[0140]
【The invention's effect】
As understood from the above description, according to the present invention, an excellent data recording / reproducing apparatus and data recording / reproducing method capable of performing efficient and stable data reproduction with redundancy by error correction codes, and A program and a recording medium can be provided.
That is, the random error in the sector can be corrected by using the first error correction code unit, and the error exceeding the intra-sector error correction range can be corrected by using the second error correction code unit. It is possible to correct burst errors that span in between. As a result, even in a situation where a retry cannot be performed in order to keep the data transfer rate higher than desired, an error can be corrected appropriately and a more stable system can be provided. In this way, it is possible to perform error correction even for random errors and burst errors in a wider range, and by avoiding the retry operation, stable data reproduction can be performed without reducing the transfer speed. .
Further, the configuration of the second error correction code (C2) unit is set according to the servo area setting, for example, the number of sectors of the servo frame, thereby improving the efficiency of the error correction code unit and reducing the redundancy. And a more stable system can be provided.
Also, by setting the second error correction code in each zone according to the servo area setting, the error correction capability can be made uniform over the entire circumference of the disk, and an efficient disk format can be realized. .
As described above, a more stable system can be provided.
[0141]
Furthermore, according to the present invention, one track can be set as an access unit by starting the access from the first sector that can be accessed on the sought track. It is possible to realize data access control that does not generate a problem. That is, the data access time can be shortened.
[Brief description of the drawings]
FIG. 1 is a block diagram of an overall configuration of an HDD according to an embodiment of this invention.
FIG. 2 is a block diagram of a disk controller of the HDD according to the embodiment.
FIG. 3 is an explanatory diagram schematically showing a disk format structure of the embodiment.
FIG. 4 is an explanatory diagram of a servo area according to the embodiment.
FIG. 5 is an explanatory diagram of a servo frame according to the embodiment.
FIG. 6 is an explanatory diagram of an ECC block structure according to the embodiment.
FIG. 7 is an explanatory diagram of an interleave structure according to the embodiment.
FIG. 8 is an explanatory diagram of an interleave structure according to the embodiment.
FIG. 9 is an explanatory diagram of C2 sector setting when the ECC block is fixed according to the embodiment;
FIG. 10 is a flowchart of setting processing when the ECC block is fixed according to the embodiment;
FIG. 11 is an explanatory diagram of C2 sector setting when the ECC block is variable according to the embodiment;
FIG. 12 is a flowchart of setting processing when the ECC block is variable according to the embodiment;
FIG. 13 is an explanatory diagram of a sector structure according to the embodiment.
FIG. 14 is an explanatory diagram of a conversion table for access according to the embodiment;
FIG. 15 is an explanatory diagram of an ECC block that is a track unit according to the embodiment;
FIG. 16 is an explanatory diagram of an ECC block structure according to the embodiment;
FIG. 17 is an explanatory diagram of C2 sector setting in the case of an ECC block in units of tracks according to the embodiment;
FIG. 18 is a flowchart of C2 sector setting processing according to slip information according to the embodiment;
[Explanation of symbols]
10 HDD (Hard Disk Device), 11 CPU, 12 ROM / RAM, 13 Disk Controller, 14 Buffer RAM, 15 Data Read / Write Control Unit, 16 Servo Control Unit, 21 Magnetic Disk

Claims (24)

同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるとともに、サーボ領域が放射状となるように各位置に形成されるディスク記録媒体に対するデータ記録再生装置であって、
目的とするトラックをシークするシーク手段と、
該シークされたトラック上でアクセスを行うデータアクセス手段と、
データをエラー訂正するためのエラー訂正符号を生成するとともにエラー訂正符号に基づいてデータをエラー訂正するエラー訂正手段とを備え、
上記エラー訂正手段は、所定のデータ量単位に対して第1のエラー訂正符号単位を設定し、またディスク記録媒体上に形成されたトラックにおけるサーボ領域設定に応じて、複数個の第1のエラー訂正符号単位に対する第2のエラー訂正符号単位を設定し、複数個の上記第1のエラー訂正符号単位及びこれに対して付加された上記第2のエラー訂正符号単位からなるエラー訂正ブロックを形成し、上記トラック上での2つの上記サーボ領域に挟まれる区間における上記第1のエラー訂正単位としてのセクタ数に基づいて、上記第2のエラー訂正符号単位を含むセクタ数を設定するとともに、
トラック当たりに2以上のエラー訂正ブロックが存在しないように、且つ、1又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成する
ことを特徴とするデータ記録再生装置。
A data recording / reproducing apparatus for a disk recording medium in which concentric or spiral tracks are formed and each of the tracks is divided into a plurality of sectors and the servo area is formed in a radial shape. There,
Seek means to seek the target track;
Data access means for accessing on the sought track;
An error correcting means for generating an error correcting code for error correcting the data and correcting the error of the data based on the error correcting code;
The error correction means sets a first error correction code unit for a predetermined data amount unit, and sets a plurality of first errors according to a servo area setting in a track formed on a disk recording medium. A second error correction code unit is set for the correction code unit, and an error correction block including a plurality of the first error correction code units and the second error correction code unit added thereto is formed. And setting the number of sectors including the second error correction code unit based on the number of sectors as the first error correction unit in the section between the two servo areas on the track,
A data recording / reproducing apparatus, wherein the error correction block is formed so that two or more error correction blocks do not exist per track and the error correction block is completed in units of one or more tracks.
上記エラー訂正手段はリードソロモン符号方式によりエラー訂正符号を生成することを特徴とする請求項1に記載のデータ記録再生装置。  2. The data recording / reproducing apparatus according to claim 1, wherein the error correction means generates an error correction code by a Reed-Solomon code method. 上記エラー訂正手段が形成する上記エラー訂正ブロックは、上記第1又は第2のエラー訂正符号単位において、インターリーブ構造を備えることを特徴とする請求項1に記載のデータ記録再生装置。  2. The data recording / reproducing apparatus according to claim 1, wherein the error correction block formed by the error correction means has an interleave structure in the first or second error correction code unit. 上記データアクセス手段は、上記シーク手段によりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して1トラック分のアクセスを行うことを特徴とする請求項1に記載のデータ記録再生装置。  2. The data according to claim 1, wherein the data access means starts access from the head sector that has become accessible on the track sought by the seek means, and performs access for one track. Recording / playback device. 上記データアクセス手段は、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現することを特徴とする請求項4に記載のデータ記録再生装置。  The data access means allocates a relative position address to each sector in order from the sector that started the access on the track at the time of write access, and reads the data read from each sector on the track at the time of read access. The data recording / reproducing apparatus according to claim 4, wherein the written data is reproduced by relocating according to the above. 上記エラー訂正手段は、上記トラック1周における上記サーボ領域の数と、上記トラック1周における上記第1のエラー訂正単位の数に応じて、上記第2のエラー訂正符号単位の設定を行うことを特徴とする請求項5に記載のデータ記録再生装置。  The error correction means sets the second error correction code unit according to the number of the servo areas in one track and the number of the first error correction units in one track. 6. A data recording / reproducing apparatus according to claim 5, wherein: 上記エラー訂正手段は、エラー訂正ブロック構成を、上記ディスク記録媒体上において可変とすることを特徴とする請求項1に記載のデータ記録再生装置。  2. The data recording / reproducing apparatus according to claim 1, wherein the error correction means makes the error correction block configuration variable on the disk recording medium. 上記ディスク記録媒体は、半径位置に応じてトラック上のセクタ数が相違するゾーンビットレコーディング方式により構成されることを特徴とする請求項1に記載のデータ記録再生装置。  2. The data recording / reproducing apparatus according to claim 1, wherein the disk recording medium is configured by a zone bit recording method in which the number of sectors on a track differs according to a radial position. 上記エラー訂正手段は、エラー訂正ブロック構成を、上記ディスク記録媒体上のゾーン毎に異なる構成とすることを特徴とする請求項9に記載のデータ記録再生装置。  10. The data recording / reproducing apparatus according to claim 9, wherein the error correction means has a different error correction block configuration for each zone on the disk recording medium. 上記エラー訂正手段は、ゾーン切替情報に従ってエラー訂正ブロック構成を切り替えることを特徴とする請求項9に記載のデータ記録再生装置。  10. The data recording / reproducing apparatus according to claim 9, wherein the error correction means switches an error correction block configuration according to zone switching information. 上記エラー訂正手段は、上記エラー訂正ブロックの構成を、上記ディスク記録媒体上のゾーン毎に関係なく固定の構成とすることを特徴とする請求項8に記載のデータ記録再生装置。  9. The data recording / reproducing apparatus according to claim 8, wherein the error correction means sets the error correction block to a fixed configuration regardless of the zones on the disk recording medium. 同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるとともに、サーボ領域が放射状となるように各位置に形成されるディスク記録媒体に対するデータ記録再生方法として、
目的とするトラックをシークするシークステップと、
該シークされたトラック上でアクセスを行うデータアクセスステップと、
データをエラー訂正するためのエラー訂正符号を生成するとともにエラー訂正符号に基づいてデータをエラー訂正するエラー訂正ステップとを備え、
上記エラー訂正ステップでは、所定のデータ量単位に対して第1のエラー訂正符号単位を設定し、またディスク記録媒体上に形成されたトラックにおけるサーボ領域設定に応じて、複数個の第1のエラー訂正符号単位に対する第2のエラー訂正符号単位を設定し、複数個の上記第1のエラー訂正符号単位及びこれに対して付加された上記第2のエラー訂正符号単位からなるエラー訂正ブロックを形成するとともに、
上記エラー訂正ステップは、上記トラック上での2つの上記サーボ領域に挟まれる区間における上記第1のエラー訂正単位としてのセクタ数に基づいて、上記第2のエラー訂正符号単位を含むセクタ数を設定するとともに、トラック当たりに2以上のエラー訂正ブロックが存在しないように、且つ、1又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成すること
を特徴とするデータ記録再生方法。
As a data recording / reproducing method for a disk recording medium in which concentric or spiral tracks are formed, each track is divided into a plurality of sectors, and the servo area is formed radially. ,
Seek step to seek the desired track;
A data access step for accessing on the sought track;
An error correction step for generating an error correction code for error correction of the data and correcting the error of the data based on the error correction code; and
In the error correction step, a first error correction code unit is set for a predetermined data amount unit, and a plurality of first errors are set according to the servo area setting in the track formed on the disk recording medium. A second error correction code unit is set for the correction code unit, and an error correction block including a plurality of the first error correction code units and the second error correction code units added thereto is formed. With
The error correction step sets the number of sectors including the second error correction code unit based on the number of sectors as the first error correction unit in a section between the two servo areas on the track. And the error correction block is formed so that there are no two or more error correction blocks per track and the error correction block is completed in units of one or more tracks. Playback method.
上記エラー訂正ステップでは、リードソロモン符号方式によりエラー訂正符号を生成することを特徴とする請求項12に記載のデータ記録再生方法。  13. The data recording / reproducing method according to claim 12, wherein in the error correction step, an error correction code is generated by a Reed-Solomon code method. 上記エラー訂正ステップで形成される上記エラー訂正ブロックは、上記第1又は第2のエラー訂正符号単位において、インターリーブ構造を備えることを特徴とする請求項12に記載のデータ記録再生方法。  13. The data recording / reproducing method according to claim 12, wherein the error correction block formed in the error correction step has an interleave structure in the first or second error correction code unit. 上記データアクセスステップでは、上記シークステップによりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して1トラック分のアクセスを行うことを特徴とする請求項12に記載のデータ記録再生方法。  13. The data according to claim 12, wherein in the data access step, access is started for one track on the track sought by the seek step, starting from the head sector that has become accessible. Recording and playback method. 上記データアクセスステップでは、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現することを特徴とする請求項15に記載のデータ記録再生方法。  In the data access step, relative access addresses are assigned to each sector in order from the sector that started the access on the track during write access, and data read from each sector on the track is assigned to the relative position address during read access. 16. The data recording / reproducing method according to claim 15, wherein the written data is reproduced by rearranging according to the above. 上記エラー訂正ステップでは、上記トラック1周における上記サーボ領域の数と、上記トラック1周における上記第1のエラー訂正単位の数に応じて、上記第2のエラー訂正符号単位の設定を行うことを特徴とする請求項15に記載のデータ記録再生方法。  In the error correction step, the second error correction code unit is set in accordance with the number of the servo areas in the track circumference and the number of the first error correction units in the track circumference. 16. A data recording / reproducing method according to claim 15, wherein 同心円状又はスパイラル状のトラックが形成されているとともに、上記各トラックは複数のセクタに分割されるとともに、サーボ領域が放射状となるように各位置に形成されるディスク記録媒体に対するデータ記録再生処理をコンピュータシステム上で実行するためにコンピュータ可読形式で記述されたプログラムとして、
目的とするトラックをシークするシークステップと、
該シークされたトラック上でアクセスを行うデータアクセスステップと、
データをエラー訂正するためのエラー訂正符号を生成するとともにエラー訂正符号に基づいてデータをエラー訂正するエラー訂正ステップとを備え、
上記エラー訂正ステップでは、所定のデータ量単位に対して第1のエラー訂正符号単位を設定し、またディスク記録媒体上に形成されたトラックにおけるサーボ領域設定に応じて、複数個の第1のエラー訂正符号単位に対する第2のエラー訂正符号単位を設定し、複数個の上記第1のエラー訂正符号単位及びこれに対して付加された上記第2のエラー訂正符号単位からなるエラー訂正ブロックを形成するとともに、
上記エラー訂正ステップは、上記トラック上での2つの上記サーボ領域に挟まれる区間における上記第1のエラー訂正単位としてのセクタ数に基づいて、上記第2のエラー訂正符号単位を含むセクタ数を設定するとともに、
トラック当たりに2以上のエラー訂正ブロックが存在しないように、且つ、1又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成するようにしたこと
を特徴とするプログラム。
Concentric or spiral tracks are formed, and each track is divided into a plurality of sectors, and data recording / reproduction processing is performed on a disk recording medium formed at each position so that the servo area is radial. As a program written in a computer readable format for execution on a computer system,
Seek step to seek the desired track;
A data access step for accessing on the sought track;
An error correction step for generating an error correction code for error correction of the data and correcting the error of the data based on the error correction code; and
In the error correction step, a first error correction code unit is set for a predetermined data amount unit, and a plurality of first errors are set according to the servo area setting in the track formed on the disk recording medium. A second error correction code unit is set for the correction code unit, and an error correction block including a plurality of the first error correction code units and the second error correction code units added thereto is formed. With
The error correction step sets the number of sectors including the second error correction code unit based on the number of sectors as the first error correction unit in a section between the two servo areas on the track. And
A program characterized in that the error correction block is formed so that two or more error correction blocks do not exist per track and the error correction block is completed in units of one or a plurality of tracks.
上記エラー訂正ステップでは、リードソロモン符号方式によりエラー訂正符号を生成することを特徴とする請求項18に記載のプログラム。  19. The program according to claim 18, wherein in the error correction step, an error correction code is generated by a Reed-Solomon code method. 上記エラー訂正ステップで形成される上記エラー訂正ブロックは、上記第1又は第2のエラー訂正符号単位において、インターリーブ構造を備えるようにしたことを特徴とする請求項18に記載のプログラム。  19. The program according to claim 18, wherein the error correction block formed in the error correction step has an interleave structure in the first or second error correction code unit. 上記データアクセスステップでは、上記シークステップによりシークされたトラック上で、アクセス可能となった先頭のセクタからアクセスを開始して1トラック分のアクセスを行うようにしたことを特徴とする請求項19に記載のプログラム。  20. The data access step according to claim 19, wherein an access for one track is performed by starting an access from a leading sector that has become accessible on the track sought by the seek step. The program described. 上記データアクセスステップでは、書き込みアクセス時には、各セクタに対して、トラック上でアクセスを開始したセクタから順番に相対位置アドレスを割り振り、読み出しアクセス時には、トラック上の各セクタから読み出したデータを相対位置アドレスに従って再配置して、書き込まれたデータを再現するようにしたことを特徴とする請求項21に記載のプログラム。  In the data access step, relative access addresses are assigned to each sector in order from the sector that started the access on the track during write access, and data read from each sector on the track is assigned to the relative position address during read access. The program according to claim 21, wherein the program is rearranged according to the above and the written data is reproduced. 上記エラー訂正ステップでは、上記トラック1周における上記サーボ領域の数と、上記トラック1周における上記第1のエラー訂正単位の数に応じて、上記第2のエラー訂正符号単位の設定を行うようにしたことを特徴とする請求項22に記載のプログラム。  In the error correction step, the second error correction code unit is set in accordance with the number of servo areas in one track and the number of first error correction units in one track. The program according to claim 22, wherein the program has been performed. 所定のデータ量単位に対して第1のエラー訂正符号単位が設定され、また複数個の第1のエラー訂正符号単位に対する第2のエラー訂正符号単位が設定され、複数個の上記第1のエラー訂正符号単位及びこれに対して付加された上記第2のエラー訂正符号単位からなるエラー訂正ブロックが形成されるとともに、
上記エラー訂正ブロックにおいて、上記第2のエラー訂正符号単位のセクタ数は同心円状又はスパイラル状に形成された各記録トラックにおけるサーボ領域の2つの該サーボ領域に挟まれる区間における上記第1のエラー訂正単位としてのセクタ数に基づいて設定されているとともに、
トラック当たりに2以上のエラー訂正ブロックが存在しないように、且つ、1又は複数のトラック単位でエラー訂正ブロックを完結させるように、上記エラー訂正ブロックを形成されており、
上記エラー訂正ブロックの構成を有するデータが、上記各記録トラックに記録されこと特徴とする記録媒体。
A first error correction code unit is set for a predetermined data amount unit, a second error correction code unit for a plurality of first error correction code units is set, and a plurality of the first error correction code units are set. An error correction block including a correction code unit and the second error correction code unit added thereto is formed,
In the error correction block, the number of sectors of the second error correction code unit is the first error correction in a section sandwiched between two servo areas in each recording track formed concentrically or spirally. It is set based on the number of sectors as a unit,
The error correction block is formed so that there are no two or more error correction blocks per track and the error correction block is completed in units of one or more tracks.
Data having the structure of the error correction block, a recording medium according to this and the characteristics recorded in each recording track.
JP2003192939A 2003-07-07 2003-07-07 Data recording / reproducing apparatus, data recording / reproducing method, program, and recording medium Expired - Fee Related JP4694774B2 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2003192939A JP4694774B2 (en) 2003-07-07 2003-07-07 Data recording / reproducing apparatus, data recording / reproducing method, program, and recording medium
US10/884,746 US7339873B2 (en) 2003-07-07 2004-07-02 Data recording/reproducing apparatus, data recording/reproducing method, program, and recording medium
MYPI20042665A MY138778A (en) 2003-07-07 2004-07-05 Data recording/reproducing apparatus, data recording/reproducing method, program, and recording medium
TW093120256A TWI303412B (en) 2003-07-07 2004-07-06 Data recording/reproducing apparatus, data recording/reproducing method, program, and recording medium
CN2004101005085A CN1627425B (en) 2003-07-07 2004-07-07 Data recording/reproducing device and method, program, and recording medium
KR1020040052542A KR101071853B1 (en) 2003-07-07 2004-07-07 Data recording/reproducing apparatus, data recording/reproducing method, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003192939A JP4694774B2 (en) 2003-07-07 2003-07-07 Data recording / reproducing apparatus, data recording / reproducing method, program, and recording medium

Publications (2)

Publication Number Publication Date
JP2005032289A JP2005032289A (en) 2005-02-03
JP4694774B2 true JP4694774B2 (en) 2011-06-08

Family

ID=34204585

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003192939A Expired - Fee Related JP4694774B2 (en) 2003-07-07 2003-07-07 Data recording / reproducing apparatus, data recording / reproducing method, program, and recording medium

Country Status (1)

Country Link
JP (1) JP4694774B2 (en)

Also Published As

Publication number Publication date
JP2005032289A (en) 2005-02-03

Similar Documents

Publication Publication Date Title
KR101077520B1 (en) Data recording/reproducing system, data recording/reproducing method, program, and recording medium
US6115788A (en) Multi-drive array with improved data transfer rate performance
JP3760899B2 (en) Data recording / reproducing apparatus, data recording / reproducing method, and computer program
WO2009014706A1 (en) Quality of service and streaming attributes for a data storage device
US7308637B2 (en) Data recording/reproducing device, data recording/reproducing method, program, and recording medium
JPWO2003071534A1 (en) DATA ACCESS CONTROL DEVICE, DATA ACCESS CONTROL METHOD, CONTROLLER, AND COMPUTER PROGRAM
KR101071853B1 (en) Data recording/reproducing apparatus, data recording/reproducing method, and recording medium
US6775090B2 (en) Adapting logical track addresses in relation to head offsets
US7898757B2 (en) Hard disk drive with divided data sectors and hard disk drive controller for controlling the same
JP2005346816A (en) Data storage device and its control method
JP4694774B2 (en) Data recording / reproducing apparatus, data recording / reproducing method, program, and recording medium
JP4269844B2 (en) Data recording / reproducing apparatus, data recording / reproducing method, program, and recording medium
JP2010061702A (en) Information recording/reproducing apparatus, information recording/reproducing system, information processing apparatus, and information reproducing apparatus
JP4075713B2 (en) Data recording / reproducing apparatus, data recording / reproducing method, program, and recording medium
JP4598417B2 (en) Data recording / reproducing apparatus, data recording / reproducing method, program, and recording medium
JP4082308B2 (en) Data recording / reproducing apparatus, data recording / reproducing method, program, and recording medium
JP2006031825A (en) Recording and reproducing control method, and recording and reproducing control apparatus
JP2005235334A (en) Data recording and reproducing apparatus, data recording and reproducing method, program, and recording medium
JP2002216426A (en) Information recording system
JP2001195844A (en) Magnetic recording and reproducing device
JP2006146976A (en) Recording/reproducing system, error correction device, and recording/reproducing method
JP2000260128A (en) Recorder and disk device
JPH02170220A (en) Disk data reader

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070911

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071112

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080811

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080825

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110124

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees