ディスク装置
【課題】記録媒体のセクタに旧データが消し残りとして残っているような場合であっても、新データと旧データとを見分けることを可能とする技術を提供する。
【解決手段】磁気ディスク装置1において、記録媒体6は、データを記録するセクタを備える。取得手段は、記録媒体6のセクタごとに設定されているシンクバイトの値を保持するテーブルからシンクバイトを取得する。設定手段は、取得手段により取得したシンクバイトをRDC3のレジスタに設定する。判定手段は、RDC3を介してセクタから読み出したシンクバイトの値と、取得手段により取得したシンクバイトの値とが互いに一致するか否かに基づいて、RDC3を介して読み出したシンクバイトに対応するデータの新旧を判定する。
【解決手段】磁気ディスク装置1において、記録媒体6は、データを記録するセクタを備える。取得手段は、記録媒体6のセクタごとに設定されているシンクバイトの値を保持するテーブルからシンクバイトを取得する。設定手段は、取得手段により取得したシンクバイトをRDC3のレジスタに設定する。判定手段は、RDC3を介してセクタから読み出したシンクバイトの値と、取得手段により取得したシンクバイトの値とが互いに一致するか否かに基づいて、RDC3を介して読み出したシンクバイトに対応するデータの新旧を判定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを記録するディスク装置に関し、特に、ヘッドを駆動してセクタにデータを記録する構造を備えたディスク装置に関する。
【背景技術】
【0002】
磁気ディスク装置は、ホストから指示されたデータを記録し、再生する装置である。データのライト時には、ホストから指示されたデータは、ハードディスクコントローラ(HDC)及びリードチャネル(RDC)によりデータがエンコードされ、プリアンプを通してライトヘッドからディスク(記録媒体)上の記録面にデータがライトされる。データのリード時には、ディスク上の記録信号をリードヘッドが読み取り、プリアンプにより信号が増幅されてRDCとHDCとでデータがデコードされ、ホストにデータが転送される。
【0003】
ここで、データのライト処理に関しては、磁気ディスク装置自体のトラック位置の精度(オントラックの精度)や外部からの振動等の影響を考慮して、所定の範囲内でのオフセットライト(トラックのセンター位置から外れた書き込み)を許容している。
【0004】
オフセット量が必要以上に大きい場合には、隣接セクタのデータをオフセットイレーズしてしまうが、逆にオフセット量が必要以上に小さい場合には、ライト不可が多発することとなり、ライト時のパフォーマンスの悪化につながることとなる。このため、装置に応じて適したオフセットをライト時の許容オフセットとして設定している。
【0005】
図11は、オフセットライトによる従来の問題点を説明する図である。セクタNについて説明をする。
セクタNのデータは、図11(a)の「セクタ(Sector)Nオフセット」で示すオフセットライトがなされている。この場合に、図11(b)の色分けされた領域に示す箇所にデータが上書きされたとする。セクタNについては、上書き前の旧データと上書き後の新データとが許容オフセットの範囲内で逆位相でライトされ、旧データが消し残りとして残っている。
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記のとおり、旧データがリード可能な状態で残ったような場合には、1つのセクタに新データと旧データとが共存することとなる。しかし、従来においては、図11のセクタNのデータをリードするときに、旧データをリードしてしまった場合であっても、それをデータ化けとして判断することができなかった。
【0007】
本発明は、記録媒体のセクタに旧データが消し残りとして残っているような場合であっても、新データと旧データとを見分けることを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、開示のディスク装置においては、データを記録するセクタを備えた記録媒体と、前記記録媒体のセクタごとに設定されているセクタ情報を保持する保持手段から該セクタ情報を取得する取得手段と、前記取得手段により取得したセクタ情報をリードチャネルに設定する設定手段と、前記リードチャネルを介して前記セクタから読み出したセクタ情報と、前記取得手段により取得したセクタ情報とが互いに一致するか否かに基づいて、該リードチャネルを介して読み出したセクタ情報に対応するデータの新
旧を判定する判定手段と、を備えた構成とする。
【0009】
保持手段に保持されているセクタ情報をリードチャネルのレジスタに設定し、セクタからデータを読み出す。セクタから読み出したセクタ情報と保持手段から取得したセクタ情報とが互いに一致しない場合には、そのセクタのデータは旧データであると判定することができる。
【0010】
ホストコンピュータからの指示にしたがって前記セクタにデータを書き込むとともに、前記取得手段により取得した第1のセクタ情報とは異なる第2のセクタ情報を、前記セクタのセクタ情報として設定する更新手段と、前記更新手段により新たに設定された前記第2のセクタ情報を、前記保持手段に登録する登録手段と、を更に備えた構成としてもよい。
【0011】
データの書き込みを行うごとに、それまでセクタに設定されていたセクタ情報とは異なる値を設定することで、データの読み出しを行うときに、データの新旧を判定することが可能となる。
【発明の効果】
【0012】
開示のディスク装置によれば、セクタごとに設定されているセクタ情報に基づいて、セクタに記録されているデータの新旧を判定することが可能となる。データの新旧を判定して旧データの読み出しを防ぐことにより、オフセットライトによる旧データの消し残りによるデータ化けが発生する可能性を低減させることが可能となる。
【発明を実施するための最良の形態】
【0013】
以下、本発明の好適な実施の形態について、図面を参照して詳細に説明する。
図1は、本発明に係る磁気ディスク装置によるデータの新旧の判定方法を概念的に説明する図である。図1(a)は、記録媒体(ディスク)の状態を示し、図1(b)は、本発明に係る磁気ディスク装置の構成図である。
【0014】
図1(a)においては、新たにデータが記録された領域については色分けして示す。例えばセクタNの色分けした部分には新データが記録されており、残りの部分には旧データが残っている。
【0015】
データの読み出し時には、磁気ディスク装置のリードヘッドが記録媒体上を通過し、各セクタに格納されている情報を読み出す。リードヘッドの位置決めは、サーボが行う。本発明においては、セクタごとに設定されているセクタ情報を参照して、係るデータの新旧を判定する。以下においては、シンクバイト(SB)をセクタ情報として利用する場合の実施例について説明する。
【0016】
図1(b)に示す磁気ディスク装置1は、ホスト10と接続され、ハードディスクコントローラ(以下HDC)2、リードチャネル(以下RDC)3、プリアンプ4、ヘッド5及び記録媒体(図においてはMEDIUMと表記)6から構成される。なお、磁気ディスク装置1については、本発明に関わる構成のみを示す。
【0017】
記録媒体6は、データを記録するための磁気ディスクからなる。ヘッド5は、リードヘッド及びライトヘッドからなり、リードヘッドは、セクタ上を通過して記録媒体6に記録されている情報を読み出し、ライトヘッドは、記録媒体6への情報の書き込みを行う。以下、データの読み出し及び書き込みのそれぞれについて説明するときには、リードヘッド及びライトヘッドのそれぞれに対して同じ符号を付すこととする。プリアンプ4は、記録媒体6から読み出した信号を増幅してRDC3に与える。
【0018】
HDC2は、磁気ディスク装置1のデータの読み出し/書き込みを制御する。データの読み出しに関しては、データを読み出すべきセクタのリードチャネルを設定する。
RDC3は、HDC2により設定されたシンクバイトの値を用いて記録媒体6からデータを読み出す。
【0019】
図1(b)の上段には、リードヘッド5が図1(a)においては色分けして示す新データ上を通過した場合の処理の流れを示し、下段には、リードヘッド5が旧データ上を通過した場合の処理の流れを示す。
【0020】
新データ上をリードヘッド5が通過した場合には、記録媒体6のセクタに格納されているシンクバイトの値xと、RDC3において設定されているシンクバイトの値xが互いに一致する。この場合は、セクタに格納されているデータは新データと判定して、HDC2は、データをホスト10に転送する。
【0021】
これに対し、旧データ上をリードヘッド5が通過した場合には、記録媒体6のセクタに格納されているシンクバイトの値xと、RDC3において設定されているシンクバイトの値x+1が相互に一致せず、シンクバイトの読み出しができない。この場合は、シンクバイトエラーが検知され、セクタに格納されているデータは旧データと判定される。
【0022】
以下、シンクバイトを用いて新旧データを判定する方法について、具体的に説明する。
図2は、セクタのデータフォーマット及びリードチャネルのシンクバイト検出について説明する図である。
【0023】
1つのセクタには、プリアンブル(Preamble)、シンクバイト(Sync Byte、SB)、データ(Data)、CRC(Cyclic Redundancy Check巡回冗長検査)及びECC(Error Correcting Code)が含まれる。
【0024】
プリアンブルは、主に出力追従と周波数追従に用いられる。シンクバイトは、通常はデータの開始位置を示すために使用されるが、本実施形態においては、セクタのデータが新旧データのいずれであるかを判定するためにも兼用する。
【0025】
データは、ホストからの指示にしたがって記録媒体6に記録される実データである。CRC及びECCは、いずれもデータのエラーを検出するための情報である。
HDC2からの命令にしたがってリードゲートがオンに切り替えられ、リードヘッド5の駆動が開始されると、RDC3は、まず、プリアンブル部分の読み出しで、データの周波数の調整や出力の調整等を行う。これらの調整の後、シンクバイトのサーチを開始する。データ波形の中でシンクバイトに相当するデータパターンをサーチし、シンクバイトと見られるパターンが検出された時点でデータ(実データ)開始を見なす。
【0026】
シンクバイトのデータパターンについては、予めRDC3において複数の種類を持っておき、実際に設定するシンクバイトパターンについては、RDC3に設定するレジスタの値を変更することにより変更する。
【0027】
図3は、シンクバイトパターンを説明する図である。図3に示す例では、シンクバイトが40ビットから構成される場合を示す。
従来においては、通常シンクバイトのデータパターンは1通りであるが、本実施形態においては、図3に示すように、複数のデータパターンを用意しておき、データの書き込みごとにデータパターンを変更する。
【0028】
図3のように予め設定された複数のデータパターンのうち、実際にシンクバイトに設定されている値を、パターンテーブルに保持しておく。データの書き込み/読み出しの際には、パターンテーブルを参照してRDC3の設定を行う。
【0029】
図4は、シンクバイトのパターンテーブルを示す図である。ここでは、シンクバイトのデータパターンとして16通り用意され、記録媒体6のユーザ領域以外の領域にパターンテーブルを備える場合を例に説明する。
【0030】
1つのセクタは512バイト構成であるとし、あるセクタに対して設定されているシンクバイトを格納するための領域として1バイト割り当てるとすると、1つのシンクバイトパターンテーブル(1つのセクタ)に512セクタ分のシンクバイトを保持されることとなる。例えば、LBA(Logical Block Addressing)が0〜511のセクタのシンクバイトについてはテーブル0に、LBAが512〜1023のセクタのシンクバイトについてはテーブル1に、といった形式で、各セクタに設定されているシンクバイトを、セクタのLBAにより決定されるテーブルの所定の位置に保持する。
【0031】
図5は、記録媒体6にシンクバイトパターンテーブルを設ける場合の配置例を示す図である。図5に示す記録媒体6は、1トラックに1500個のセクタを備える構成である。
図5に示すとおり、実施例においては、記録媒体6にシンクバイトパターンテーブルを設ける場合は、テーブルに保持されるセクタごとのシンクバイトと、対応するセクタとが近傍に位置するようにテーブルを配置する。上記のシンクバイトパターンテーブルの構成例では、トラック0のテーブル0には、LBAが0〜511のセクタについてのシンクバイトが格納されている。そこで、LBAが0〜511のセクタの前にテーブル0を配置し、続くLBAが512〜1023のセクタの前には、対応するテーブル1を配置している。これにより、シンクバイトデータパターンにアクセスすることによるパフォーマンスの悪化を小さく抑えている。
【0032】
なお、例えば、LBAが1024〜1535のセクタについては、シンクバイトはトラック0のテーブル2に格納されているが、このうち、LBAが1500〜1535のセクタについては、トラックの構成上、テーブル2が配置されたトラック0とは異なるトラック(トラック1)に配置されることとなる。
【0033】
なお、図5に示す例では、記録媒体6の記録面上にテーブルを設けており、テーブルからのシンクバイトの読み出し/書き込みについては、データを格納するセクタと同様に、オフセットライトによるデータ化けが生じ得る。しかし、シンクバイトパターンテーブル自体のシンクバイトの値については、所定の値を設定しておき、変更しないものとする。
【0034】
シンクバイトパターンテーブルを記録媒体6に設ける場合の実際のデータの書き込み/読み出し処理について、具体的に説明する。
図6A及び図6Bは、シンクバイトパターンテーブルを記録媒体6に設ける場合におけるデータの書き込み/読み出し処理を説明する図である。LBAが「10000」のセクタについてデータの上書き及び読み出しを行う場合を例に説明する。また、ここでは、シンクバイトパターンテーブルは、図5に例示する構成であり、1つのテーブルには512セクタ分のシンクバイトを保持しているものとする。
【0035】
図6Aは、データの書き込み処理を説明する図である。まず、手順(1)において、ホスト10からLBA「10000」のセクタにデータを書き込む旨の指示を受け取ると、HDC2は、LBAが「10000」のセクタについてのシンクバイトを保持するシンクバイトパターンテーブル「19」のデータを読み出すよう指示する。RDC3は、HDC2の指示にしたがって、シンクバイトパターンテーブル「19」のセクタのシンクバイト
をレジスタに設定して、テーブル番号「19」のテーブルからLBA「10000」のセクタのシンクバイトを読み出す。
【0036】
手順(2)において、HDC2は、シンクバイトパターンテーブル「19」から、LBA「10000」に対応するシンクバイトの値「x」を取得する。
手順(3)において、HDC2は、取得したシンクバイトの値「x」とは異なる値(ここではx+1)をLBA「10000」のシンクバイトとしてRDC3に設定させる。RDC3は、値「x+1」をシンクバイトとしてレジスタに設定し、LBAが「10000」のセクタにデータを書き込むとともに、シンクバイトとして「x+1」を書き込む。
【0037】
手順(4)において、HDC2は、シンクバイトパターンテーブル「19」を更新して、LBA「10000」のセクタに新たに設定されたシンクバイト「x+1」を、シンクバイトパターンテーブルの対応する箇所に書き込む。
手順(5)において、HDC2において書き込みが完了した旨報告を受信すると、処理を終了する。
【0038】
図6Bは、データの読み出し処理を説明する図である。まず、手順(1)において、ホスト10からLBA「10000」のセクタからデータを読み出す旨の指示を受信すると、HDC2は、LBAが「10000」のセクタについてのシンクバイトを保持するシンクバイトパターンテーブル「19」のデータを読み出すよう指示する。RDC3は、HDC2の指示にしたがって、シンクバイトパターンテーブル「19」のセクタのシンクバイトをレジスタに設定して、テーブル番号「19」のテーブルから、LBA「10000」のセクタのシンクバイトを読み出す。
【0039】
手順(2)において、HDC2は、シンクバイトパターンテーブル「19」から、LBA「10000」に対応するシンクバイトの値「x」を取得する。
手順(3)において、HDC2は、取得したシンクバイトの値「x」を、LBA「10000」のセクタのシンクバイトとしてRDC2に設定させる。RDC3は、値「x」をシンクバイトとしてレジスタに設定し、LBA「10000」のセクタからデータを読み出す。
最後に、手順(4)において、読み出したデータをホスト10に転送し、処理を終了する。
【0040】
図6Aを参照して説明したとおり、記録媒体6にデータを書き込むときに、まずシンクバイトパターンテーブルに格納されているシンクバイトの値を読み出し、読み出したシンクバイトをRDC3のレジスタに設定してセクタのシンクバイトを読み出す。そして、シンクバイトの読み出しに用いた値とは異なる値のシンクバイトを新たに設定してデータの書き込みをし、新たに設定したシンクバイトをシンクバイトパターンテーブルにも登録する。
【0041】
そして、図6Bを参照して説明したとおり、記録媒体6からデータを読み出すときには、シンクバイトパターンテーブルに格納されているシンクバイトの値を読み出し、読み出したシンクバイトをRDC3のレジスタに設定してデータを読み出す。書き込み処理の度に異なるシンクバイトを設定しておくため、セクタに消し残りの旧データがある場合であっても、データの読み出し時に、旧データのシンクバイトの値は、RDC3のレジスタに設定された値と異なっているため、リードヘッド5が旧データの領域に駆動されて旧データを読み出そうとしても、シンクバイトエラーとなり、旧データが誤って読み出されることがない。
【0042】
上記においては、シンクバイトパターンテーブルを記録媒体6に設ける場合について説
明したが、これには限らない。例えば、記録媒体6以外の手段、例えば不揮発性メモリにシンクバイトパターンテーブルを設ける構成としてもよい。
【0043】
次に、不揮発性メモリ等の記録媒体6の外部にシンクバイトパターンテーブルを設置する場合について説明する。
図7は、不揮発性メモリにシンクバイトパターンテーブルを設ける場合の配置例を示す図である。不揮発性メモリの1つのセクタが512バイト構成である場合を例に説明する。
【0044】
記録媒体6の512個のセクタのそれぞれのシンクバイトを、不揮発性メモリの1つのセクタに記録する。記録媒体6にテーブルを設ける場合と同様に、データの書き込み/読み出し対象のセクタのLBAに対していずれのテーブルにシンクバイトが格納されているかを算出し、所望のシンクバイトを取得する。
不揮発性メモリにシンクバイトパターンテーブルを設けた場合は、テーブルのデータ化けを起こす可能性が低く、より安全にシンクバイトの値を保持しておくことができる。
【0045】
図8A及び図8Bは、シンクバイトパターンテーブルを不揮発性メモリに設ける場合におけるデータの書き込み/読み出し処理を説明する図である。図6A及び図6Bと同様に、LBAが「10000」のセクタについてデータの上書き及び読み出しを行う場合を例に説明する。図7に例示する不揮発性メモリ(FROM)11は、1つのテーブルに512セクタ分のシンクバイトを保持しているものとする。
【0046】
以下、図6A及び図6Bに示す記録媒体6上にシンクバイトパターンテーブルが設けられた構成との処理の違いを中心に説明する。
図8Aは、データの書き込み処理を説明する図である。手順(1)は、図6Aの手順(1)及び手順(2)に相当し、ホスト10からの指示にしたがって、HDC2は、不揮発性メモリ11からシンクバイトを取得する。
手順(2)から手順(4)については、図6Aの手順(3)から手順(5)にそれぞれ対応しているので、説明については省略する。
【0047】
図8Bは、データの読み出し処理を説明する図である。手順(1)は、図6Bの手順(1)及び手順(2)に相当し、ホスト10からの指示にしたがって、HDC2は、不揮発性メモリ11からシンクバイトを取得する。
手順(2)及び手順(3)については、図6Bの手順(3)及び手順(4)にそれぞれ対応しているので、説明については省略する。
【0048】
このように、シンクバイトパターンテーブルを記録媒体6の外部に、ここでは不揮発性メモリ11上に設けた場合であっても、同様にシンクバイトを用いてデータの新旧を判断してデータの読み出しが可能となる。
【0049】
上記のシンクバイトを利用してセクタに記録されているデータの新旧を判定する方法は、1つのセクタに対するデータの書き込みや読み出しには限定されない。例えば、連続するセクタに対してデータの書き込みや読み出しを行う場合についても適用が可能である。
【0050】
図9は、連続セクタに対してシンクバイトを利用してデータの書き込み及び読み出しを行う方法を説明する図である。このうち、図9(a)は、連続セクタへのデータの書き込み方法を説明する図であり、図9(b)は、連続セクタからのデータの読み出し方法を説明する図である。
【0051】
まず、連続セクタへのデータの書き込み方法について説明する。図9(a)に示すよう
に、LBAが10000から10002までの3つの連続するセクタに対してデータを書き込むこととする。
【0052】
データを書き込むセクタのLBAから、シンクバイトの値が格納されているシンクバイトパターンテーブルのテーブル番号「19」を算出し、そのテーブルからシンクバイトを取得する。図に示す例では、LBAが10000、10001及び10002のセクタには、それぞれ「x1」、「x2」及び「x3」を取得する。
【0053】
そして、取得したシンクバイトすなわちセクタに設定されているシンクバイトとは異なる値を各セクタに設定し直す。図に示す例では、LBAが10000、10001及び10002のセクタに対して、データを書き込むとともに、それぞれ「x1+1」、「x2+1」及び「x3+1」を設定する。設定した値は、1つのセクタについてと同様に、シンクバイトパターンテーブルの所定の箇所に登録して値を更新する。
【0054】
各セクタに対して新たにシンクバイトの値(x1+1、x2+1及びx3+1)を書き込むときには、RDC3において、ライトゲートの信号のオン/オフに応じてレジスタの値を変更させていく。図に示す例では、ライトゲートがオフからオンに切り替わるタイミングで、x1+1、x1+1及びx3+1にそれぞれ設定していくことで、上記のような連続セクタへの書き込みが可能となる。
【0055】
次に連続セクタからのデータの読み出し方法について説明する。図9(b)に示すように、LBAが10000から10002までの3つの連続するセクタからデータを読み出すこととする。
【0056】
データを読み出すセクタのLBAから、シンクバイトの値が格納されているシンクバイトパターンテーブルのテーブル番号「19」を算出し、そのテーブルからシンクバイトを取得する。図に示す例では、LBAが10000、10001及び10002のセクタには、それぞれ「x1」、「x2」及び「x3」を取得する。
【0057】
そして、取得したシンクバイトをRDC3に設定してこれらの連続するセクタから順次データを読み出していく。シンクバイトパターンテーブルから取得したシンクバイトと互いに一致するシンクバイトが設定されている場合にのみ、そのデータは新データであると判定してデータを読み出す。
【0058】
各セクタからデータを読み出していくときには、RDC3において、リードゲートの信号のオン/オフに応じてレジスタの値を順次変更していく。図に示す例では、リードゲートがオフからオンに切り替わるタイミングで、x1、x2及びx3にそれぞれ設定していくことで、上記のような連続セクタからの読み出しが可能となる。
【0059】
上記のとおり、本実施形態においては、データの書き込みのタイミングで新データには旧データと異なるシンクバイトを設定し、設定したシンクバイトをテーブルに保持しておく。データの読み出しの際にはテーブルから取得したシンクバイトを用いて読み出しを行い、テーブルに保持されている値と互いに一致するシンクバイトが設定されているセクタからデータを読み出す。これにより、新旧データの判別が可能となる。
【0060】
すなわち、セクタのデータの新旧を正しく判定するためには、セクタのシンクバイトの値と、シンクバイトパターンテーブルに保持されているシンクバイトの値とが互いに一致していることが必要である。上記の実施形態においては、データをセクタに書き込む処理において、まず更新後の新たなシンクバイトをセクタに設定し、その後にシンクバイトパターンテーブルへの登録を行っている。
【0061】
しかし、磁気ディスク装置1の電源が遮断される等の予期せぬ動作により、セクタに新たなシンクバイトを設定後、シンクバイトパターンテーブルを更新前に処理が終了してしまう事態も起こりうる。このような、セクタのシンクバイトとテーブルに保持されているシンクバイトとが互いに一致しない場合においては、以下の方法によりデータを読み出すことができる。
【0062】
図10は、シンクバイトパターンテーブルの更新前にデータ書き込み動作が終了してしまった場合におけるデータ読み出しのリトライ処理を説明する図である。LBAが「10000」のセクタに設定されているシンクバイトの値は「x+3」であるが、シンクバイトパターンテーブルには「x」が登録されている場合を例に説明する。
【0063】
まず、手順(1)については、図6Bに示す読み出し処理の手順のうち、手順(1)と同様であり、シンクバイトパターンテーブルから取得したシンクバイト「x」をRDC3においてレジスタに設定し、記録媒体6からシンクバイトを読み出す。
【0064】
次に、手順(2)において、セクタのシンクバイトは「x+3」であるので、RDC3において設定した値と互いに異なるため、HDC2は、シンクバイトエラーを検出する。
手順(3)においては、HDC2は、シンクバイトエラーが検出されると、HDC2は、ファームウェア等でリトライ用に予め用意されているテーブルを参照する。そして、RDC3のレジスタに異なる値のシンクバイトを設定し(図10の例では「x+1」を設定し)、手順(2)についてリトライを行う。
【0065】
ここで設定するシンクバイトの値は、リトライ用のテーブルにおいて、リトライ時において新たにシンクバイトを設定するルールを定めておき、そのルールにしたがって決定される。図10に示す例では、リトライ時には、シンクバイトの値を1加算する、というルールにしたがって値を再設定している。
【0066】
以降は、セクタのシンクバイトと一致するシンクバイトがRDC3に設定され、読み出しができるまで、手順(2)及び手順(3)を繰り返す。
手順(4)において、シンクバイト「x+3」をRDC3のレジスタに設定することによりセクタのデータの読み出しが可能となる。
【0067】
手順(5)においては、シンクバイトパターンテーブルに、LBAが「10000」のセクタのシンクバイトの値として、「x+3」を登録し、手順(6)でホスト10に読み出したデータを転送し、処理を終了する。
【0068】
なお、図10に示す例では、データの読み出しのリトライ方法を示しているが、データの書き込み処理においても、例えば図6Aの手順(2)でシンクバイトエラーが生じた場合には、リトライ用のテーブルを参照してシンクバイトの値を設定し直すことで、リトライを実施することができる。
【0069】
以上説明したように、本実施形態に係る磁気ディスク装置によれば、セクタにデータを書き込むごとに書き込み前とは異なるシンクバイトを設定しておき、データを読み出すときには、最後に更新されたシンクバイトを用いてデータの読み出しを行う。セクタに旧データが消し残りとして存在する場合であっても、新データとは異なるシンクバイトが設定されているため、旧データを誤って読み出すことがなく、データの新旧を判定することが可能となる。
【0070】
そして、データの新旧を判定することが可能となることにより、オフセットライトによ
って旧データが消し残りとして存在する場合であっても、旧データを誤って読み出すことがなくなり、データの読み出し時にデータ化けが発生する可能性を低減させることが可能となる。
【0071】
なお、上記においては、磁気ディスク装置について説明しているが、本発明はこれには限らない。セクタにデータを記録する構成の記録媒体を備えたディスク装置であって、シンクバイト等の識別情報を用いてデータの新旧を判定するディスク装置であれば、本発明に含まれる。
【0072】
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
データを記録するセクタを備えた記録媒体と、
前記記録媒体のセクタごとに設定されているセクタ情報を保持する保持手段から該セクタ情報を取得する取得手段と、
前記取得手段により取得したセクタ情報をリードチャネルに設定する設定手段と、
前記リードチャネルを介して前記セクタから読み出したセクタ情報と、前記取得手段により取得したセクタ情報とが互いに一致するか否かに基づいて、該リードチャネルを介して読み出したセクタ情報に対応するデータの新旧を判定する判定手段と、
を備えたことを特徴とするディスク装置。
(付記2)
ホストコンピュータからの指示にしたがって前記セクタにデータを書き込むとともに、前記取得手段により取得した第1のセクタ情報とは異なる第2のセクタ情報を、前記セクタのセクタ情報として設定する更新手段と、
前記更新手段により新たに設定された前記第2のセクタ情報を、前記保持手段に登録する登録手段と、
を更に備えたことを特徴とする付記1記載のディスク装置。
(付記3)
ホストコンピュータからの指示にしたがって前記セクタからデータを読み出すときに、前記取得手段は、前記保持手段に保持されているセクタ情報を取り出して前記設定手段に与える
ことを特徴とする付記2記載のディスク装置。
(付記4)
前記保持手段は、前記記録媒体上に設けられる
ことを特徴とする付記1記載のディスク装置。
(付記5)
前記保持手段は、不揮発性メモリに設けられる
ことを特徴とする付記1記載のディスク装置。
(付記6)
前記取得手段は、前記ホストコンピュータからの指示にしたがって連続する複数のセクタに対する書き込みを行うときは、前記保持手段から該連続する複数のセクタについてのセクタ情報をそれぞれ取得し、
前記更新手段は、ライトゲート信号にしたがって前記連続する複数のセクタのそれぞれにデータを書き込んでゆくとともに、該ライトゲート信号にしたがって前記設定手段により前記リードチャネルに設定されるセクタ情報を、順次更新してゆく
ことを特徴とする付記2記載のディスク装置。
(付記7)
前記取得手段は、ホストコンピュータからのデータ読み出しの指示にしたがって前記連続する複数のセクタからデータの読み出しを行うときは、前記保持手段から該連続する複数のセクタについてのセクタ情報をそれぞれ取得して前記設定手段に与え、
前記設定手段は、ライトゲート信号にしたがって、前記取得手段により取得した前記連
続する複数のセクタについてのセクタ情報を、順次前記リードチャネルに設定してゆく
ことを特徴とする付記6記載のディスク装置。
(付記8)
前記更新手段におけるセクタ情報の設定に関わる情報を、リトライ処理用に記憶しておくための記憶手段と、
を更に備え、
前記更新手段は、前記登録手段により前記第2のセクタ情報が前記保持手段に登録される前にデータの書き込みが終了している場合には、前記記憶手段に記憶されている情報に基づいて、該第2のセクタ情報とは異なる第3のセクタ情報トを設定するとともに、該更新したセクタ情報を前記設定手段に与え、
前記設定手段は、前記第3のセクタ情報を前記リードチャネルに設定して、データの読み出しあるいは書き込みのリトライを実行させる
ことを特徴とする付記3記載のディスク装置。
(付記9)
データを記憶する記録媒体のセクタごとに設定されているセクタ情報を保持する保持手段からセクタ情報を取得し、
前記取得したセクタ情報をリードチャネルに設定し、
前記リードチャネルを介して前記セクタから読み出したセクタ情報と、前記取得したセクタ情報とが互いに一致するか否かに基づいて、該リードチャネルを介して読み出したセクタ情報に対応するデータの新旧を判定する、
処理を備えたことを特徴とするデータの判定方法。
【図面の簡単な説明】
【0073】
【図1】本発明に係るデータの新旧の判定方法を説明する図である。
【図2】セクタのデータフォーマット及びリードチャネルのシンクバイト検出について説明する図である。
【図3】シンクバイトパターンを説明する図である。
【図4】シンクバイトのパターンテーブルを示す図である。
【図5】記録媒体にシンクバイトパターンテーブルを設ける場合の配置例を示す図である。
【図6A】シンクバイトパターンテーブルを記録媒体に設ける場合におけるデータの書き込み処理を説明する図である。
【図6B】シンクバイトパターンテーブルを記録媒体に設ける場合におけるデータの読み出し処理を説明する図である。
【図7】不揮発性メモリにシンクバイトパターンテーブルを設ける場合の配置例を示す図である。
【図8A】シンクバイトパターンテーブルを不揮発性メモリに設ける場合におけるデータの書き込み処理を説明する図である。
【図8B】シンクバイトパターンテーブルを不揮発性メモリに設ける場合におけるデータの読み出し処理を説明する図である。
【図9】連続セクタに対してシンクバイトを利用してデータの書き込み及び読み出しを行う方法を説明する図である。
【図10】シンクバイトパターンテーブルの更新前にデータ書き込み動作が終了してしまった場合のリトライ処理を説明する図である。
【図11】オフセットライトによる従来の問題点を説明する図である。
【符号の説明】
【0074】
1 磁気ディスク装置
2 HDC
3 RDC
4 プリアンプ
5 ヘッド(リードヘッド/ライトヘッド)
6 記録媒体
10 ホスト
11 不揮発性メモリ(FROM)
【技術分野】
【0001】
本発明は、データを記録するディスク装置に関し、特に、ヘッドを駆動してセクタにデータを記録する構造を備えたディスク装置に関する。
【背景技術】
【0002】
磁気ディスク装置は、ホストから指示されたデータを記録し、再生する装置である。データのライト時には、ホストから指示されたデータは、ハードディスクコントローラ(HDC)及びリードチャネル(RDC)によりデータがエンコードされ、プリアンプを通してライトヘッドからディスク(記録媒体)上の記録面にデータがライトされる。データのリード時には、ディスク上の記録信号をリードヘッドが読み取り、プリアンプにより信号が増幅されてRDCとHDCとでデータがデコードされ、ホストにデータが転送される。
【0003】
ここで、データのライト処理に関しては、磁気ディスク装置自体のトラック位置の精度(オントラックの精度)や外部からの振動等の影響を考慮して、所定の範囲内でのオフセットライト(トラックのセンター位置から外れた書き込み)を許容している。
【0004】
オフセット量が必要以上に大きい場合には、隣接セクタのデータをオフセットイレーズしてしまうが、逆にオフセット量が必要以上に小さい場合には、ライト不可が多発することとなり、ライト時のパフォーマンスの悪化につながることとなる。このため、装置に応じて適したオフセットをライト時の許容オフセットとして設定している。
【0005】
図11は、オフセットライトによる従来の問題点を説明する図である。セクタNについて説明をする。
セクタNのデータは、図11(a)の「セクタ(Sector)Nオフセット」で示すオフセットライトがなされている。この場合に、図11(b)の色分けされた領域に示す箇所にデータが上書きされたとする。セクタNについては、上書き前の旧データと上書き後の新データとが許容オフセットの範囲内で逆位相でライトされ、旧データが消し残りとして残っている。
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記のとおり、旧データがリード可能な状態で残ったような場合には、1つのセクタに新データと旧データとが共存することとなる。しかし、従来においては、図11のセクタNのデータをリードするときに、旧データをリードしてしまった場合であっても、それをデータ化けとして判断することができなかった。
【0007】
本発明は、記録媒体のセクタに旧データが消し残りとして残っているような場合であっても、新データと旧データとを見分けることを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、開示のディスク装置においては、データを記録するセクタを備えた記録媒体と、前記記録媒体のセクタごとに設定されているセクタ情報を保持する保持手段から該セクタ情報を取得する取得手段と、前記取得手段により取得したセクタ情報をリードチャネルに設定する設定手段と、前記リードチャネルを介して前記セクタから読み出したセクタ情報と、前記取得手段により取得したセクタ情報とが互いに一致するか否かに基づいて、該リードチャネルを介して読み出したセクタ情報に対応するデータの新
旧を判定する判定手段と、を備えた構成とする。
【0009】
保持手段に保持されているセクタ情報をリードチャネルのレジスタに設定し、セクタからデータを読み出す。セクタから読み出したセクタ情報と保持手段から取得したセクタ情報とが互いに一致しない場合には、そのセクタのデータは旧データであると判定することができる。
【0010】
ホストコンピュータからの指示にしたがって前記セクタにデータを書き込むとともに、前記取得手段により取得した第1のセクタ情報とは異なる第2のセクタ情報を、前記セクタのセクタ情報として設定する更新手段と、前記更新手段により新たに設定された前記第2のセクタ情報を、前記保持手段に登録する登録手段と、を更に備えた構成としてもよい。
【0011】
データの書き込みを行うごとに、それまでセクタに設定されていたセクタ情報とは異なる値を設定することで、データの読み出しを行うときに、データの新旧を判定することが可能となる。
【発明の効果】
【0012】
開示のディスク装置によれば、セクタごとに設定されているセクタ情報に基づいて、セクタに記録されているデータの新旧を判定することが可能となる。データの新旧を判定して旧データの読み出しを防ぐことにより、オフセットライトによる旧データの消し残りによるデータ化けが発生する可能性を低減させることが可能となる。
【発明を実施するための最良の形態】
【0013】
以下、本発明の好適な実施の形態について、図面を参照して詳細に説明する。
図1は、本発明に係る磁気ディスク装置によるデータの新旧の判定方法を概念的に説明する図である。図1(a)は、記録媒体(ディスク)の状態を示し、図1(b)は、本発明に係る磁気ディスク装置の構成図である。
【0014】
図1(a)においては、新たにデータが記録された領域については色分けして示す。例えばセクタNの色分けした部分には新データが記録されており、残りの部分には旧データが残っている。
【0015】
データの読み出し時には、磁気ディスク装置のリードヘッドが記録媒体上を通過し、各セクタに格納されている情報を読み出す。リードヘッドの位置決めは、サーボが行う。本発明においては、セクタごとに設定されているセクタ情報を参照して、係るデータの新旧を判定する。以下においては、シンクバイト(SB)をセクタ情報として利用する場合の実施例について説明する。
【0016】
図1(b)に示す磁気ディスク装置1は、ホスト10と接続され、ハードディスクコントローラ(以下HDC)2、リードチャネル(以下RDC)3、プリアンプ4、ヘッド5及び記録媒体(図においてはMEDIUMと表記)6から構成される。なお、磁気ディスク装置1については、本発明に関わる構成のみを示す。
【0017】
記録媒体6は、データを記録するための磁気ディスクからなる。ヘッド5は、リードヘッド及びライトヘッドからなり、リードヘッドは、セクタ上を通過して記録媒体6に記録されている情報を読み出し、ライトヘッドは、記録媒体6への情報の書き込みを行う。以下、データの読み出し及び書き込みのそれぞれについて説明するときには、リードヘッド及びライトヘッドのそれぞれに対して同じ符号を付すこととする。プリアンプ4は、記録媒体6から読み出した信号を増幅してRDC3に与える。
【0018】
HDC2は、磁気ディスク装置1のデータの読み出し/書き込みを制御する。データの読み出しに関しては、データを読み出すべきセクタのリードチャネルを設定する。
RDC3は、HDC2により設定されたシンクバイトの値を用いて記録媒体6からデータを読み出す。
【0019】
図1(b)の上段には、リードヘッド5が図1(a)においては色分けして示す新データ上を通過した場合の処理の流れを示し、下段には、リードヘッド5が旧データ上を通過した場合の処理の流れを示す。
【0020】
新データ上をリードヘッド5が通過した場合には、記録媒体6のセクタに格納されているシンクバイトの値xと、RDC3において設定されているシンクバイトの値xが互いに一致する。この場合は、セクタに格納されているデータは新データと判定して、HDC2は、データをホスト10に転送する。
【0021】
これに対し、旧データ上をリードヘッド5が通過した場合には、記録媒体6のセクタに格納されているシンクバイトの値xと、RDC3において設定されているシンクバイトの値x+1が相互に一致せず、シンクバイトの読み出しができない。この場合は、シンクバイトエラーが検知され、セクタに格納されているデータは旧データと判定される。
【0022】
以下、シンクバイトを用いて新旧データを判定する方法について、具体的に説明する。
図2は、セクタのデータフォーマット及びリードチャネルのシンクバイト検出について説明する図である。
【0023】
1つのセクタには、プリアンブル(Preamble)、シンクバイト(Sync Byte、SB)、データ(Data)、CRC(Cyclic Redundancy Check巡回冗長検査)及びECC(Error Correcting Code)が含まれる。
【0024】
プリアンブルは、主に出力追従と周波数追従に用いられる。シンクバイトは、通常はデータの開始位置を示すために使用されるが、本実施形態においては、セクタのデータが新旧データのいずれであるかを判定するためにも兼用する。
【0025】
データは、ホストからの指示にしたがって記録媒体6に記録される実データである。CRC及びECCは、いずれもデータのエラーを検出するための情報である。
HDC2からの命令にしたがってリードゲートがオンに切り替えられ、リードヘッド5の駆動が開始されると、RDC3は、まず、プリアンブル部分の読み出しで、データの周波数の調整や出力の調整等を行う。これらの調整の後、シンクバイトのサーチを開始する。データ波形の中でシンクバイトに相当するデータパターンをサーチし、シンクバイトと見られるパターンが検出された時点でデータ(実データ)開始を見なす。
【0026】
シンクバイトのデータパターンについては、予めRDC3において複数の種類を持っておき、実際に設定するシンクバイトパターンについては、RDC3に設定するレジスタの値を変更することにより変更する。
【0027】
図3は、シンクバイトパターンを説明する図である。図3に示す例では、シンクバイトが40ビットから構成される場合を示す。
従来においては、通常シンクバイトのデータパターンは1通りであるが、本実施形態においては、図3に示すように、複数のデータパターンを用意しておき、データの書き込みごとにデータパターンを変更する。
【0028】
図3のように予め設定された複数のデータパターンのうち、実際にシンクバイトに設定されている値を、パターンテーブルに保持しておく。データの書き込み/読み出しの際には、パターンテーブルを参照してRDC3の設定を行う。
【0029】
図4は、シンクバイトのパターンテーブルを示す図である。ここでは、シンクバイトのデータパターンとして16通り用意され、記録媒体6のユーザ領域以外の領域にパターンテーブルを備える場合を例に説明する。
【0030】
1つのセクタは512バイト構成であるとし、あるセクタに対して設定されているシンクバイトを格納するための領域として1バイト割り当てるとすると、1つのシンクバイトパターンテーブル(1つのセクタ)に512セクタ分のシンクバイトを保持されることとなる。例えば、LBA(Logical Block Addressing)が0〜511のセクタのシンクバイトについてはテーブル0に、LBAが512〜1023のセクタのシンクバイトについてはテーブル1に、といった形式で、各セクタに設定されているシンクバイトを、セクタのLBAにより決定されるテーブルの所定の位置に保持する。
【0031】
図5は、記録媒体6にシンクバイトパターンテーブルを設ける場合の配置例を示す図である。図5に示す記録媒体6は、1トラックに1500個のセクタを備える構成である。
図5に示すとおり、実施例においては、記録媒体6にシンクバイトパターンテーブルを設ける場合は、テーブルに保持されるセクタごとのシンクバイトと、対応するセクタとが近傍に位置するようにテーブルを配置する。上記のシンクバイトパターンテーブルの構成例では、トラック0のテーブル0には、LBAが0〜511のセクタについてのシンクバイトが格納されている。そこで、LBAが0〜511のセクタの前にテーブル0を配置し、続くLBAが512〜1023のセクタの前には、対応するテーブル1を配置している。これにより、シンクバイトデータパターンにアクセスすることによるパフォーマンスの悪化を小さく抑えている。
【0032】
なお、例えば、LBAが1024〜1535のセクタについては、シンクバイトはトラック0のテーブル2に格納されているが、このうち、LBAが1500〜1535のセクタについては、トラックの構成上、テーブル2が配置されたトラック0とは異なるトラック(トラック1)に配置されることとなる。
【0033】
なお、図5に示す例では、記録媒体6の記録面上にテーブルを設けており、テーブルからのシンクバイトの読み出し/書き込みについては、データを格納するセクタと同様に、オフセットライトによるデータ化けが生じ得る。しかし、シンクバイトパターンテーブル自体のシンクバイトの値については、所定の値を設定しておき、変更しないものとする。
【0034】
シンクバイトパターンテーブルを記録媒体6に設ける場合の実際のデータの書き込み/読み出し処理について、具体的に説明する。
図6A及び図6Bは、シンクバイトパターンテーブルを記録媒体6に設ける場合におけるデータの書き込み/読み出し処理を説明する図である。LBAが「10000」のセクタについてデータの上書き及び読み出しを行う場合を例に説明する。また、ここでは、シンクバイトパターンテーブルは、図5に例示する構成であり、1つのテーブルには512セクタ分のシンクバイトを保持しているものとする。
【0035】
図6Aは、データの書き込み処理を説明する図である。まず、手順(1)において、ホスト10からLBA「10000」のセクタにデータを書き込む旨の指示を受け取ると、HDC2は、LBAが「10000」のセクタについてのシンクバイトを保持するシンクバイトパターンテーブル「19」のデータを読み出すよう指示する。RDC3は、HDC2の指示にしたがって、シンクバイトパターンテーブル「19」のセクタのシンクバイト
をレジスタに設定して、テーブル番号「19」のテーブルからLBA「10000」のセクタのシンクバイトを読み出す。
【0036】
手順(2)において、HDC2は、シンクバイトパターンテーブル「19」から、LBA「10000」に対応するシンクバイトの値「x」を取得する。
手順(3)において、HDC2は、取得したシンクバイトの値「x」とは異なる値(ここではx+1)をLBA「10000」のシンクバイトとしてRDC3に設定させる。RDC3は、値「x+1」をシンクバイトとしてレジスタに設定し、LBAが「10000」のセクタにデータを書き込むとともに、シンクバイトとして「x+1」を書き込む。
【0037】
手順(4)において、HDC2は、シンクバイトパターンテーブル「19」を更新して、LBA「10000」のセクタに新たに設定されたシンクバイト「x+1」を、シンクバイトパターンテーブルの対応する箇所に書き込む。
手順(5)において、HDC2において書き込みが完了した旨報告を受信すると、処理を終了する。
【0038】
図6Bは、データの読み出し処理を説明する図である。まず、手順(1)において、ホスト10からLBA「10000」のセクタからデータを読み出す旨の指示を受信すると、HDC2は、LBAが「10000」のセクタについてのシンクバイトを保持するシンクバイトパターンテーブル「19」のデータを読み出すよう指示する。RDC3は、HDC2の指示にしたがって、シンクバイトパターンテーブル「19」のセクタのシンクバイトをレジスタに設定して、テーブル番号「19」のテーブルから、LBA「10000」のセクタのシンクバイトを読み出す。
【0039】
手順(2)において、HDC2は、シンクバイトパターンテーブル「19」から、LBA「10000」に対応するシンクバイトの値「x」を取得する。
手順(3)において、HDC2は、取得したシンクバイトの値「x」を、LBA「10000」のセクタのシンクバイトとしてRDC2に設定させる。RDC3は、値「x」をシンクバイトとしてレジスタに設定し、LBA「10000」のセクタからデータを読み出す。
最後に、手順(4)において、読み出したデータをホスト10に転送し、処理を終了する。
【0040】
図6Aを参照して説明したとおり、記録媒体6にデータを書き込むときに、まずシンクバイトパターンテーブルに格納されているシンクバイトの値を読み出し、読み出したシンクバイトをRDC3のレジスタに設定してセクタのシンクバイトを読み出す。そして、シンクバイトの読み出しに用いた値とは異なる値のシンクバイトを新たに設定してデータの書き込みをし、新たに設定したシンクバイトをシンクバイトパターンテーブルにも登録する。
【0041】
そして、図6Bを参照して説明したとおり、記録媒体6からデータを読み出すときには、シンクバイトパターンテーブルに格納されているシンクバイトの値を読み出し、読み出したシンクバイトをRDC3のレジスタに設定してデータを読み出す。書き込み処理の度に異なるシンクバイトを設定しておくため、セクタに消し残りの旧データがある場合であっても、データの読み出し時に、旧データのシンクバイトの値は、RDC3のレジスタに設定された値と異なっているため、リードヘッド5が旧データの領域に駆動されて旧データを読み出そうとしても、シンクバイトエラーとなり、旧データが誤って読み出されることがない。
【0042】
上記においては、シンクバイトパターンテーブルを記録媒体6に設ける場合について説
明したが、これには限らない。例えば、記録媒体6以外の手段、例えば不揮発性メモリにシンクバイトパターンテーブルを設ける構成としてもよい。
【0043】
次に、不揮発性メモリ等の記録媒体6の外部にシンクバイトパターンテーブルを設置する場合について説明する。
図7は、不揮発性メモリにシンクバイトパターンテーブルを設ける場合の配置例を示す図である。不揮発性メモリの1つのセクタが512バイト構成である場合を例に説明する。
【0044】
記録媒体6の512個のセクタのそれぞれのシンクバイトを、不揮発性メモリの1つのセクタに記録する。記録媒体6にテーブルを設ける場合と同様に、データの書き込み/読み出し対象のセクタのLBAに対していずれのテーブルにシンクバイトが格納されているかを算出し、所望のシンクバイトを取得する。
不揮発性メモリにシンクバイトパターンテーブルを設けた場合は、テーブルのデータ化けを起こす可能性が低く、より安全にシンクバイトの値を保持しておくことができる。
【0045】
図8A及び図8Bは、シンクバイトパターンテーブルを不揮発性メモリに設ける場合におけるデータの書き込み/読み出し処理を説明する図である。図6A及び図6Bと同様に、LBAが「10000」のセクタについてデータの上書き及び読み出しを行う場合を例に説明する。図7に例示する不揮発性メモリ(FROM)11は、1つのテーブルに512セクタ分のシンクバイトを保持しているものとする。
【0046】
以下、図6A及び図6Bに示す記録媒体6上にシンクバイトパターンテーブルが設けられた構成との処理の違いを中心に説明する。
図8Aは、データの書き込み処理を説明する図である。手順(1)は、図6Aの手順(1)及び手順(2)に相当し、ホスト10からの指示にしたがって、HDC2は、不揮発性メモリ11からシンクバイトを取得する。
手順(2)から手順(4)については、図6Aの手順(3)から手順(5)にそれぞれ対応しているので、説明については省略する。
【0047】
図8Bは、データの読み出し処理を説明する図である。手順(1)は、図6Bの手順(1)及び手順(2)に相当し、ホスト10からの指示にしたがって、HDC2は、不揮発性メモリ11からシンクバイトを取得する。
手順(2)及び手順(3)については、図6Bの手順(3)及び手順(4)にそれぞれ対応しているので、説明については省略する。
【0048】
このように、シンクバイトパターンテーブルを記録媒体6の外部に、ここでは不揮発性メモリ11上に設けた場合であっても、同様にシンクバイトを用いてデータの新旧を判断してデータの読み出しが可能となる。
【0049】
上記のシンクバイトを利用してセクタに記録されているデータの新旧を判定する方法は、1つのセクタに対するデータの書き込みや読み出しには限定されない。例えば、連続するセクタに対してデータの書き込みや読み出しを行う場合についても適用が可能である。
【0050】
図9は、連続セクタに対してシンクバイトを利用してデータの書き込み及び読み出しを行う方法を説明する図である。このうち、図9(a)は、連続セクタへのデータの書き込み方法を説明する図であり、図9(b)は、連続セクタからのデータの読み出し方法を説明する図である。
【0051】
まず、連続セクタへのデータの書き込み方法について説明する。図9(a)に示すよう
に、LBAが10000から10002までの3つの連続するセクタに対してデータを書き込むこととする。
【0052】
データを書き込むセクタのLBAから、シンクバイトの値が格納されているシンクバイトパターンテーブルのテーブル番号「19」を算出し、そのテーブルからシンクバイトを取得する。図に示す例では、LBAが10000、10001及び10002のセクタには、それぞれ「x1」、「x2」及び「x3」を取得する。
【0053】
そして、取得したシンクバイトすなわちセクタに設定されているシンクバイトとは異なる値を各セクタに設定し直す。図に示す例では、LBAが10000、10001及び10002のセクタに対して、データを書き込むとともに、それぞれ「x1+1」、「x2+1」及び「x3+1」を設定する。設定した値は、1つのセクタについてと同様に、シンクバイトパターンテーブルの所定の箇所に登録して値を更新する。
【0054】
各セクタに対して新たにシンクバイトの値(x1+1、x2+1及びx3+1)を書き込むときには、RDC3において、ライトゲートの信号のオン/オフに応じてレジスタの値を変更させていく。図に示す例では、ライトゲートがオフからオンに切り替わるタイミングで、x1+1、x1+1及びx3+1にそれぞれ設定していくことで、上記のような連続セクタへの書き込みが可能となる。
【0055】
次に連続セクタからのデータの読み出し方法について説明する。図9(b)に示すように、LBAが10000から10002までの3つの連続するセクタからデータを読み出すこととする。
【0056】
データを読み出すセクタのLBAから、シンクバイトの値が格納されているシンクバイトパターンテーブルのテーブル番号「19」を算出し、そのテーブルからシンクバイトを取得する。図に示す例では、LBAが10000、10001及び10002のセクタには、それぞれ「x1」、「x2」及び「x3」を取得する。
【0057】
そして、取得したシンクバイトをRDC3に設定してこれらの連続するセクタから順次データを読み出していく。シンクバイトパターンテーブルから取得したシンクバイトと互いに一致するシンクバイトが設定されている場合にのみ、そのデータは新データであると判定してデータを読み出す。
【0058】
各セクタからデータを読み出していくときには、RDC3において、リードゲートの信号のオン/オフに応じてレジスタの値を順次変更していく。図に示す例では、リードゲートがオフからオンに切り替わるタイミングで、x1、x2及びx3にそれぞれ設定していくことで、上記のような連続セクタからの読み出しが可能となる。
【0059】
上記のとおり、本実施形態においては、データの書き込みのタイミングで新データには旧データと異なるシンクバイトを設定し、設定したシンクバイトをテーブルに保持しておく。データの読み出しの際にはテーブルから取得したシンクバイトを用いて読み出しを行い、テーブルに保持されている値と互いに一致するシンクバイトが設定されているセクタからデータを読み出す。これにより、新旧データの判別が可能となる。
【0060】
すなわち、セクタのデータの新旧を正しく判定するためには、セクタのシンクバイトの値と、シンクバイトパターンテーブルに保持されているシンクバイトの値とが互いに一致していることが必要である。上記の実施形態においては、データをセクタに書き込む処理において、まず更新後の新たなシンクバイトをセクタに設定し、その後にシンクバイトパターンテーブルへの登録を行っている。
【0061】
しかし、磁気ディスク装置1の電源が遮断される等の予期せぬ動作により、セクタに新たなシンクバイトを設定後、シンクバイトパターンテーブルを更新前に処理が終了してしまう事態も起こりうる。このような、セクタのシンクバイトとテーブルに保持されているシンクバイトとが互いに一致しない場合においては、以下の方法によりデータを読み出すことができる。
【0062】
図10は、シンクバイトパターンテーブルの更新前にデータ書き込み動作が終了してしまった場合におけるデータ読み出しのリトライ処理を説明する図である。LBAが「10000」のセクタに設定されているシンクバイトの値は「x+3」であるが、シンクバイトパターンテーブルには「x」が登録されている場合を例に説明する。
【0063】
まず、手順(1)については、図6Bに示す読み出し処理の手順のうち、手順(1)と同様であり、シンクバイトパターンテーブルから取得したシンクバイト「x」をRDC3においてレジスタに設定し、記録媒体6からシンクバイトを読み出す。
【0064】
次に、手順(2)において、セクタのシンクバイトは「x+3」であるので、RDC3において設定した値と互いに異なるため、HDC2は、シンクバイトエラーを検出する。
手順(3)においては、HDC2は、シンクバイトエラーが検出されると、HDC2は、ファームウェア等でリトライ用に予め用意されているテーブルを参照する。そして、RDC3のレジスタに異なる値のシンクバイトを設定し(図10の例では「x+1」を設定し)、手順(2)についてリトライを行う。
【0065】
ここで設定するシンクバイトの値は、リトライ用のテーブルにおいて、リトライ時において新たにシンクバイトを設定するルールを定めておき、そのルールにしたがって決定される。図10に示す例では、リトライ時には、シンクバイトの値を1加算する、というルールにしたがって値を再設定している。
【0066】
以降は、セクタのシンクバイトと一致するシンクバイトがRDC3に設定され、読み出しができるまで、手順(2)及び手順(3)を繰り返す。
手順(4)において、シンクバイト「x+3」をRDC3のレジスタに設定することによりセクタのデータの読み出しが可能となる。
【0067】
手順(5)においては、シンクバイトパターンテーブルに、LBAが「10000」のセクタのシンクバイトの値として、「x+3」を登録し、手順(6)でホスト10に読み出したデータを転送し、処理を終了する。
【0068】
なお、図10に示す例では、データの読み出しのリトライ方法を示しているが、データの書き込み処理においても、例えば図6Aの手順(2)でシンクバイトエラーが生じた場合には、リトライ用のテーブルを参照してシンクバイトの値を設定し直すことで、リトライを実施することができる。
【0069】
以上説明したように、本実施形態に係る磁気ディスク装置によれば、セクタにデータを書き込むごとに書き込み前とは異なるシンクバイトを設定しておき、データを読み出すときには、最後に更新されたシンクバイトを用いてデータの読み出しを行う。セクタに旧データが消し残りとして存在する場合であっても、新データとは異なるシンクバイトが設定されているため、旧データを誤って読み出すことがなく、データの新旧を判定することが可能となる。
【0070】
そして、データの新旧を判定することが可能となることにより、オフセットライトによ
って旧データが消し残りとして存在する場合であっても、旧データを誤って読み出すことがなくなり、データの読み出し時にデータ化けが発生する可能性を低減させることが可能となる。
【0071】
なお、上記においては、磁気ディスク装置について説明しているが、本発明はこれには限らない。セクタにデータを記録する構成の記録媒体を備えたディスク装置であって、シンクバイト等の識別情報を用いてデータの新旧を判定するディスク装置であれば、本発明に含まれる。
【0072】
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
データを記録するセクタを備えた記録媒体と、
前記記録媒体のセクタごとに設定されているセクタ情報を保持する保持手段から該セクタ情報を取得する取得手段と、
前記取得手段により取得したセクタ情報をリードチャネルに設定する設定手段と、
前記リードチャネルを介して前記セクタから読み出したセクタ情報と、前記取得手段により取得したセクタ情報とが互いに一致するか否かに基づいて、該リードチャネルを介して読み出したセクタ情報に対応するデータの新旧を判定する判定手段と、
を備えたことを特徴とするディスク装置。
(付記2)
ホストコンピュータからの指示にしたがって前記セクタにデータを書き込むとともに、前記取得手段により取得した第1のセクタ情報とは異なる第2のセクタ情報を、前記セクタのセクタ情報として設定する更新手段と、
前記更新手段により新たに設定された前記第2のセクタ情報を、前記保持手段に登録する登録手段と、
を更に備えたことを特徴とする付記1記載のディスク装置。
(付記3)
ホストコンピュータからの指示にしたがって前記セクタからデータを読み出すときに、前記取得手段は、前記保持手段に保持されているセクタ情報を取り出して前記設定手段に与える
ことを特徴とする付記2記載のディスク装置。
(付記4)
前記保持手段は、前記記録媒体上に設けられる
ことを特徴とする付記1記載のディスク装置。
(付記5)
前記保持手段は、不揮発性メモリに設けられる
ことを特徴とする付記1記載のディスク装置。
(付記6)
前記取得手段は、前記ホストコンピュータからの指示にしたがって連続する複数のセクタに対する書き込みを行うときは、前記保持手段から該連続する複数のセクタについてのセクタ情報をそれぞれ取得し、
前記更新手段は、ライトゲート信号にしたがって前記連続する複数のセクタのそれぞれにデータを書き込んでゆくとともに、該ライトゲート信号にしたがって前記設定手段により前記リードチャネルに設定されるセクタ情報を、順次更新してゆく
ことを特徴とする付記2記載のディスク装置。
(付記7)
前記取得手段は、ホストコンピュータからのデータ読み出しの指示にしたがって前記連続する複数のセクタからデータの読み出しを行うときは、前記保持手段から該連続する複数のセクタについてのセクタ情報をそれぞれ取得して前記設定手段に与え、
前記設定手段は、ライトゲート信号にしたがって、前記取得手段により取得した前記連
続する複数のセクタについてのセクタ情報を、順次前記リードチャネルに設定してゆく
ことを特徴とする付記6記載のディスク装置。
(付記8)
前記更新手段におけるセクタ情報の設定に関わる情報を、リトライ処理用に記憶しておくための記憶手段と、
を更に備え、
前記更新手段は、前記登録手段により前記第2のセクタ情報が前記保持手段に登録される前にデータの書き込みが終了している場合には、前記記憶手段に記憶されている情報に基づいて、該第2のセクタ情報とは異なる第3のセクタ情報トを設定するとともに、該更新したセクタ情報を前記設定手段に与え、
前記設定手段は、前記第3のセクタ情報を前記リードチャネルに設定して、データの読み出しあるいは書き込みのリトライを実行させる
ことを特徴とする付記3記載のディスク装置。
(付記9)
データを記憶する記録媒体のセクタごとに設定されているセクタ情報を保持する保持手段からセクタ情報を取得し、
前記取得したセクタ情報をリードチャネルに設定し、
前記リードチャネルを介して前記セクタから読み出したセクタ情報と、前記取得したセクタ情報とが互いに一致するか否かに基づいて、該リードチャネルを介して読み出したセクタ情報に対応するデータの新旧を判定する、
処理を備えたことを特徴とするデータの判定方法。
【図面の簡単な説明】
【0073】
【図1】本発明に係るデータの新旧の判定方法を説明する図である。
【図2】セクタのデータフォーマット及びリードチャネルのシンクバイト検出について説明する図である。
【図3】シンクバイトパターンを説明する図である。
【図4】シンクバイトのパターンテーブルを示す図である。
【図5】記録媒体にシンクバイトパターンテーブルを設ける場合の配置例を示す図である。
【図6A】シンクバイトパターンテーブルを記録媒体に設ける場合におけるデータの書き込み処理を説明する図である。
【図6B】シンクバイトパターンテーブルを記録媒体に設ける場合におけるデータの読み出し処理を説明する図である。
【図7】不揮発性メモリにシンクバイトパターンテーブルを設ける場合の配置例を示す図である。
【図8A】シンクバイトパターンテーブルを不揮発性メモリに設ける場合におけるデータの書き込み処理を説明する図である。
【図8B】シンクバイトパターンテーブルを不揮発性メモリに設ける場合におけるデータの読み出し処理を説明する図である。
【図9】連続セクタに対してシンクバイトを利用してデータの書き込み及び読み出しを行う方法を説明する図である。
【図10】シンクバイトパターンテーブルの更新前にデータ書き込み動作が終了してしまった場合のリトライ処理を説明する図である。
【図11】オフセットライトによる従来の問題点を説明する図である。
【符号の説明】
【0074】
1 磁気ディスク装置
2 HDC
3 RDC
4 プリアンプ
5 ヘッド(リードヘッド/ライトヘッド)
6 記録媒体
10 ホスト
11 不揮発性メモリ(FROM)
【特許請求の範囲】
【請求項1】
データを記録するセクタを備えた記録媒体と、
前記記録媒体のセクタごとに設定されているセクタ情報を保持する保持手段から該セクタ情報を取得する取得手段と、
前記取得手段により取得したセクタ情報をリードチャネルに設定する設定手段と、
前記リードチャネルを介して前記セクタから読み出したセクタ情報と、前記取得手段により取得したセクタ情報とが互いに一致するか否かに基づいて、該リードチャネルを介して読み出したセクタ情報に対応するデータの新旧を判定する判定手段と、
を備えたことを特徴とするディスク装置。
【請求項2】
ホストコンピュータからの指示にしたがって前記セクタにデータを書き込むとともに、前記取得手段により取得した第1のセクタ情報とは異なる第2のセクタ情報を、前記セクタのセクタ情報として設定する更新手段と、
前記更新手段により新たに設定された前記第2のセクタ情報を、前記保持手段に登録する登録手段と、
を更に備えたことを特徴とする請求項1記載のディスク装置。
【請求項3】
ホストコンピュータからの指示にしたがって前記セクタからデータを読み出すときに、前記取得手段は、前記保持手段に保持されているセクタ情報を取り出して前記設定手段に与える
ことを特徴とする請求項2記載のディスク装置。
【請求項4】
前記取得手段は、前記ホストコンピュータからの指示にしたがって連続する複数のセクタに対する書き込みを行うときは、前記保持手段から該連続する複数のセクタについてのセクタ情報をそれぞれ取得し、
前記更新手段は、ライトゲート信号にしたがって前記連続する複数のセクタのそれぞれにデータを書き込んでゆくとともに、該ライトゲート信号にしたがって前記設定手段により前記リードチャネルに設定されるセクタ情報を、順次更新してゆく
ことを特徴とする請求項2記載のディスク装置。
【請求項5】
前記更新手段におけるセクタ情報の設定に関わる情報を、リトライ処理用に記憶しておくための記憶手段と、
を更に備え、
前記更新手段は、前記登録手段により前記第2のセクタ情報が前記保持手段に登録される前にデータの書き込みが終了している場合には、前記記憶手段に記憶されている情報に基づいて、該第2のセクタ情報とは異なる第3のセクタ情報トを設定するとともに、該更新したセクタ情報を前記設定手段に与え、
前記設定手段は、前記第3のセクタ情報を前記リードチャネルに設定して、データの読み出しあるいは書き込みのリトライを実行させる
ことを特徴とする請求項3記載のディスク装置。
【請求項1】
データを記録するセクタを備えた記録媒体と、
前記記録媒体のセクタごとに設定されているセクタ情報を保持する保持手段から該セクタ情報を取得する取得手段と、
前記取得手段により取得したセクタ情報をリードチャネルに設定する設定手段と、
前記リードチャネルを介して前記セクタから読み出したセクタ情報と、前記取得手段により取得したセクタ情報とが互いに一致するか否かに基づいて、該リードチャネルを介して読み出したセクタ情報に対応するデータの新旧を判定する判定手段と、
を備えたことを特徴とするディスク装置。
【請求項2】
ホストコンピュータからの指示にしたがって前記セクタにデータを書き込むとともに、前記取得手段により取得した第1のセクタ情報とは異なる第2のセクタ情報を、前記セクタのセクタ情報として設定する更新手段と、
前記更新手段により新たに設定された前記第2のセクタ情報を、前記保持手段に登録する登録手段と、
を更に備えたことを特徴とする請求項1記載のディスク装置。
【請求項3】
ホストコンピュータからの指示にしたがって前記セクタからデータを読み出すときに、前記取得手段は、前記保持手段に保持されているセクタ情報を取り出して前記設定手段に与える
ことを特徴とする請求項2記載のディスク装置。
【請求項4】
前記取得手段は、前記ホストコンピュータからの指示にしたがって連続する複数のセクタに対する書き込みを行うときは、前記保持手段から該連続する複数のセクタについてのセクタ情報をそれぞれ取得し、
前記更新手段は、ライトゲート信号にしたがって前記連続する複数のセクタのそれぞれにデータを書き込んでゆくとともに、該ライトゲート信号にしたがって前記設定手段により前記リードチャネルに設定されるセクタ情報を、順次更新してゆく
ことを特徴とする請求項2記載のディスク装置。
【請求項5】
前記更新手段におけるセクタ情報の設定に関わる情報を、リトライ処理用に記憶しておくための記憶手段と、
を更に備え、
前記更新手段は、前記登録手段により前記第2のセクタ情報が前記保持手段に登録される前にデータの書き込みが終了している場合には、前記記憶手段に記憶されている情報に基づいて、該第2のセクタ情報とは異なる第3のセクタ情報トを設定するとともに、該更新したセクタ情報を前記設定手段に与え、
前記設定手段は、前記第3のセクタ情報を前記リードチャネルに設定して、データの読み出しあるいは書き込みのリトライを実行させる
ことを特徴とする請求項3記載のディスク装置。
【図2】
【図3】
【図4】
【図1】
【図5】
【図6A】
【図6B】
【図7】
【図8A】
【図8B】
【図9】
【図10】
【図11】
【図3】
【図4】
【図1】
【図5】
【図6A】
【図6B】
【図7】
【図8A】
【図8B】
【図9】
【図10】
【図11】
【公開番号】特開2009−230780(P2009−230780A)
【公開日】平成21年10月8日(2009.10.8)
【国際特許分類】
【出願番号】特願2008−72195(P2008−72195)
【出願日】平成20年3月19日(2008.3.19)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成21年10月8日(2009.10.8)
【国際特許分類】
【出願日】平成20年3月19日(2008.3.19)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]