(57)【要約】【課題】オフトラック防止のための処理を高速化かつ効率化し、簡易な回路構成でリードオフトラックを防止する。【解決手段】ライトデータの書き込みの都度、セクタ単位に履歴番号を付与することとした。１回目のライトによるライトデータには、セクタ毎にすべて同一の履歴番号「（１）」を付与し、２回目のライトによるライトデータには、セクタ毎にすべて同一の履歴番号「（２）」を付与する。そして、最新のライトデータである２回目のライトデータをリードヘッドで読み出す際に、履歴番号が「（２）」であることを確認する。この確認作業をセクタ毎に行うことによって、リードオフトラックの発生を回避する。【選択図】図１
2010176769.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体へデータを書き込む際に、データ管理単位毎に前記データに履歴番号を付与する履歴番号付与部と、
前記履歴番号付与部によって前記データ管理単位毎に前記データに付与された履歴番号を管理する履歴番号管理部と、
前記記憶媒体から前記データを読み出す際に、前記データ管理単位毎に前記データに付与されている履歴番号と、前記履歴番号管理部によって管理されている前記データ管理単位毎の前記データに対応する履歴番号とを比較する履歴番号比較部と
を有することを特徴とする記憶装置。
【請求項２】
前記履歴番号比較部によって、前記データ管理単位毎に前記データに付与されている履歴番号と、前記履歴番号管理部によって管理されている前記データ管理単位毎の前記データに対応する履歴番号とが一致するとされた場合、前記記憶媒体から読み出した前記データを外部へ出力し、
前記履歴番号比較部によって、前記データ管理単位毎に前記データに付与されている履歴番号と、前記履歴番号管理部によって管理されている前記データ管理単位毎の前記データに対応する履歴番号とが一致しないとされた場合、前記記憶媒体から前記データを再度読み出す
ことを特徴とする請求項１記載の記憶装置。
【請求項３】
前記履歴番号は、データ管理単位毎に前記データに付加されるデータ管理情報に含まれる空きビットを用いて付加される
ことを特徴とする請求項１又は２記載の記憶装置。
【請求項４】
記憶媒体へデータを書き込む際に、データ管理単位毎に前記データに履歴番号を付与する履歴番号付与部と、
前記履歴番号付与部によって前記データ管理単位毎に前記データに付与された履歴番号を管理する履歴番号管理部と、
前記記憶媒体から前記データを読み出す際に、前記データ管理単位毎に前記データに付与されている履歴番号と、前記履歴番号管理部によって管理されている前記データ管理単位毎の前記データに対応する履歴番号とを比較する履歴番号比較部と
を有することを特徴とする記憶装置の制御装置。
【請求項５】
記憶媒体へデータを書き込む際に、データ管理単位毎に前記データに履歴番号を付与する履歴番号付与ステップと、
前記履歴番号付与ステップによって前記データ管理単位毎に前記データに付与された履歴番号を管理する履歴番号管理ステップと、
前記記憶媒体から前記データを読み出す際に、前記データ管理単位毎に前記データに付与されている履歴番号と、前記履歴番号管理ステップによって管理されている前記データ管理単位毎の前記データに対応する履歴番号とを比較する履歴番号比較ステップと、
前記履歴番号比較ステップによって、前記データ管理単位毎に前記データに付与されている履歴番号と、前記履歴番号管理ステップによって管理されている前記データ管理単位毎の前記データに対応する履歴番号とが一致するとされた場合、前記記憶媒体から読み出した前記データを外部へ出力する出力ステップと、
前記履歴番号比較ステップによって、前記データ管理単位毎に前記データに付与されている履歴番号と、前記履歴番号管理ステップによって管理されている前記データ管理単位毎の前記データに対応する履歴番号とが一致しないとされた場合、前記記憶媒体から前記データを再度読み出す再読み出しステップと
を含むことを特徴とする記憶装置におけるリードオフトラック防止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リードオフトラックを防止する記憶装置、記憶装置の制御装置及び記憶装置におけるリードオフトラック防止方法に関する。
【背景技術】
【０００２】
一般的に、コンピュータ装置の記憶装置として、例えば、磁気ディスク装置が用いられることが多い。磁気ディスク装置は、大容量の記憶領域を有し、高速にアクセスすることが可能であることから、コンピュータ装置の外部記憶装置として欠かせない存在となっている。
【０００３】
磁気ディスク装置は、所定の軸を中心に揺動自在なヘッドを介して、回転軸を中心に回転する磁気ディスクにデータを書き込んだり、磁気ディスクからデータを読み出したりする。このため、外部から磁気ディスク装置の筐体に衝撃が加えられたり、磁気ディスクを回転させるスピンドルモータに振動が発生したりすると、ヘッドが振動し、磁気ディスクのトラックにオントラックしない場合がある。
【０００４】
トラックの幅は、ヘッド（ライトデータの書き込みヘッド、ライトデータの読み出しヘッド、一般的に、ライトデータの書き込みヘッドの幅は、ライトデータの読み出しヘッドの幅より広い）の幅と比較して広く取られることが一般的である。このため、前述の様にヘッドが振動し、磁気ディスクへライトデータを書き込む、又は、ライトデータを読み出す度に異なる軌跡を描くことになる。
【０００５】
すなわち、磁気ディスクのライトデータを更新した場合、古いライトデータに完全に上書きする様に新しいライトデータが書き込まれるのではなく、同一トラックにおいて、古いライトデータと、新しいライトデータとが併存するセクタが存在する場合が発生する。
【０００６】
この様に、同一セクタにおいて古いライトデータと、新しいライトデータとが併存する場合、ライトデータを読み出す時、ヘッドが誤って古いライトデータを読み出すことがある。これをリードオフトラックという。従来から、リードオフトラックを回避するために様々な技術が提案されてきた。
【０００７】
例えば、従来技術として、データ書き込み中にオフトラックが検出されると、データ書き込み終了後、オフトラックが生じたセクタからデータを読み出し、この読み出したデータとデータバッファメモリに格納されている書き込みデータとを比較することによって、リードオフトラックを回避する磁気ディスク装置が提案されていた。
【０００８】
また、他の従来技術として、ライトデータの書き込みにおいて、サーボ・データに加えてユーザ・データの読み出し信号を使用して、磁気ディスクへのユーザ・データの書き込み許否を判定する。これによって、ヘッド振動を検出し、ライトデータの書き込み時にオフトラックが発生することを防止し、延いては、リードオフトラックの発生を防止する磁気ディスク装置が提案されていた。
【０００９】
また、他の従来技術として、ライトデータの書き込み時にヘッドのオフトラック量が第一の閾値を超えると書き込みを禁止するとともに、ライトデータの読み出し時にオフトラック量が第二の閾値を超えると読み出しを禁止する磁気ディスク装置が提案されていた。
【００１０】
また、他の従来技術として、磁気ディスクのトラック幅をライトデータの書き込みヘッドの幅に合わせて狭くし、磁気ディスクのライトデータを更新した場合、古いライトデータに完全に上書きする様に新しいライトデータが書き込まれる磁気ディスク装置が提案されていた。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平１０−０６４１７６号公報
【特許文献２】特開２００７−５８９８８号公報
【特許文献３】特開２００２−３２９７１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記従来技術では、ヘッドの振動やオフトラックを検出する機能を設けなければならず、オフトラック防止のための処理量の増加を招き、回路構成を複雑化していた。また、磁気ディスクのトラック幅を狭くした場合、ライトデータの書き込みヘッドがほぼ完全にオントラックする様にライト電流を調整するが、ライト電流を調整する機能を設けるため、処理量の増加を招き、回路構成を複雑化していた。しかし、ヘッドの素材、磁気ディスクの素材、磁気ディスクの筐体内温度及び気圧等の変化によってライト電流の調整は困難であった。
【００１３】
開示の技術は、上記に鑑みてなされたものであって、オフトラック防止のための処理を高速化かつ効率化し、簡易な回路構成でリードオフトラックを防止する記憶装置、記憶装置の制御装置及び記憶装置におけるリードオフトラック防止方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本願の開示する記憶装置、記憶装置の制御装置及び記憶装置におけるリードオフトラック防止方法は、一つの態様において、記憶媒体へデータを書き込む際に、データ管理単位毎にデータに履歴番号を付与し、データ管理単位毎にデータに付与された履歴番号を管理し、記憶媒体からデータを読み出す際に、データ管理単位毎にデータに付与されている履歴番号と、管理されているデータ管理単位毎のデータに対応する履歴番号とを比較し、データ管理単位毎にデータに付与されている履歴番号と、管理されているデータ管理単位毎のデータに対応する履歴番号とが一致する場合、記憶媒体から読み出したデータを外部へ出力し、前述の二つの履歴番号が一致しない場合、記憶媒体からデータを再度読み出すことを要件とする。
【００１５】
この態様によれば、データを記憶媒体へ書き込む際にデータに履歴番号を付与するとともにこの履歴番号を別途管理し、データを記憶媒体から読み出す際にデータの履歴番号と、別途管理されている履歴番号とを比較して一致しない場合、記憶媒体からのデータの読み出しを再度実行するという処理のみでリードオフトラックを防止することができる。
【００１６】
なお、トラック幅をライトデータの書き込みヘッドの幅より広く取っても、おおむね２回に１回の割合で正しいライトデータを読み出すことができることから、前述の二つの履歴番号が一致しない場合、記憶媒体からのデータの読み出しを再度実行するのみでリードオフトラックを防止することができる。
【発明の効果】
【００１７】
本願の開示する記憶装置、記憶装置の制御装置及び記憶装置におけるリードオフトラック防止方法の一つの態様によれば、トラック幅を広く取っても、少ない処理量、簡易な回路構成でリードオフトラックを防止することができるという効果を奏する。また、ライト電流の調整を必要としないため、生産工程の短縮を図り、ヘッド特性の変化にかかわらず磁気ディスクから常に最新のライトデータを読み出すことができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、実施例１の概要を説明するための図である。
【図２】図２は、実施例１に係る磁気ディスク装置の構成を示すブロック図である。
【図３】図３は、実施例１に係るＨＤＣの構成を示すブロック図である。
【図４】図４は、実施例１に係るセクタ単位のデータ構成を示す図である。
【図５】図５は、実施例１に係る履歴番号管理テーブル例を示す図である。
【図６】図６は、実施例１に係る対象セクタリード処理手順を示すフローチャートである。
【図７】図７は、実施例１に係る対象セクタライト処理手順を示すフローチャートである。
【図８】図８は、実施例２の概要を説明するための図である。
【図９】図９は、実施例２に係る履歴番号管理テーブル例を示す図である。
【図１０】図１０は、実施例２に係る対象セクタリード処理手順を示すフローチャートである。
【図１１】図１１は、実施例２に係る対象セクタライト処理手順を示すフローチャートである。
【図１２】図１２は、実施例３に係るセクタ単位のデータ構成を示す図である。
【図１３】図１３は、実施例３に係るＣＲＣフィールドの未使用ビットの使用例を示す図である。
【図１４】図１４は、実施例３に係る対象セクタリード処理手順を示すフローチャートである。
【図１５】図１５は、実施例３に係る対象セクタライト処理手順を示すフローチャートである。
【図１６−１】図１６−１は、リードオフトラックの概要を説明するための図（その１）である。
【図１６−２】図１６−２は、リードオフトラックの概要を説明するための図（その２）である。
【発明を実施するための形態】
【００１９】
以下に、本願の開示する記憶装置、記憶装置の制御装置及び記憶装置におけるリードオフトラック防止方法の実施例を図面に基づいて詳細に説明する。以下の実施例で示す記憶装置は、磁気ディスクを記憶媒体とする磁気ディスク装置である。しかし、これに限らず、光ディスク装置、光磁気ディスク装置、熱磁気ディスク装置、半導体不揮発メモリの様な他の記憶装置であってもよい。なお、以下の実施例により本願発明が限定されるものではない。
【００２０】
以下の実施例では、磁気ディスクへのライトデータの書き込み単位は、セクタ単位であるとして説明するが、隣接するサーボ情報間に含まれる複数のセクタ、トラック等であってもよい。なお、以下の実施例でいう「対象セクタ」、「該当セクタ」とは、ライトデータを書き込む、若しくは、ライトデータを読み出す磁気ディスクのセクタである。
【実施例１】
【００２１】
［実施例１の概要］
図１は、実施例１の概要を説明するための図である。同図は、実施例１に係る磁気ディスク装置の磁気ディスクのあるトラックのある部分において、ライトデータがすでに書き込まれている状態から新しいライトデータがデータ更新によって上書きで書き込まれた状況を示している。
【００２２】
図１及び図１６−１に示す様に、該当トラックの該当部分において、すでに書き込まれていた１回目のライトによる旧いライトデータがトラック内で描く軌跡と、上書きで書き込まれた２回目のライトによる新しいライトデータがトラック内で描く軌跡とが異なっている。
【００２３】
具体的には、「セクタ０２」及び「セクタ０３」においては、旧いライトデータと、新しいライトデータとは、重畳する部分がほぼ無い。このため、これらのセクタからライトデータを読み出した場合、旧いライトデータ又は新しいライトデータのいずれが読み出されるか確実ではない。
【００２４】
同様に、その他のセクタにおいても旧いライトデータと、新しいライトデータとが完全には重畳していないので、旧いライトデータ又は新しいライトデータのいずれが読み出されるか確実ではない。すなわち、図１６−２に示すように、リードヘッドが新しいライトデータ（２回目のライトデータ）を読み出そうとして誤って旧いライトデータ（１回目のライトデータ）をミスリードしてしまうリードオフトラックが発生する可能性がある。
【００２５】
これは、磁気ディスク装置の筐体に加えられた振動や、磁気ディスクを回転させるスピンドルモータ（ＳＰＭ）の振動により、ライトデータを書き込むためのライトヘッド、及び、ライトデータを読み出すためのリードヘッドと、磁気ディスクのトラックの中心との位置関係が不定となるためである。
【００２６】
いかなる状態であってもライトヘッドが正確にオントラックすれば、新しいライトデータは旧いライトデータと完全に重畳する様に上書きされる。そして、リードヘッドは、新しいライトデータを読みだそうとして誤って旧いライトデータを読み出すこともない。
【００２７】
また、たとえライトデータを書き込む際、ライトヘッドと、１回目のライトと、２回目のライトとが異なる軌跡を描いたとしても、リードヘッドが２回目のライトによるライトデータの軌跡を正確に追従できれば、リードオフトラックの問題も発生しない。
【００２８】
そこで、図１に示す様に、実施例１では、ライトデータの書き込みの都度、セクタ単位に履歴番号を付与することとした。１回目のライトによるライトデータには、セクタ毎にすべて同一の履歴番号「（１）」を付与し、２回目のライトによるライトデータには、セクタ毎にすべて同一の履歴番号「（２）」を付与する。
【００２９】
そして、最新のライトデータである２回目のライトデータをリードヘッドで読み出す際に、履歴番号が「（２）」であることを確認する。この確認作業をセクタ毎に行うことによって、リードオフトラックの発生を回避することができる。
【００３０】
［実施例１に係る磁気ディスク装置の構成］
図２は、実施例１に係る磁気ディスク装置１００ａの構成を示すブロック図である。同図に示す様に、実施例に係る磁気ディスク装置１００ａは、磁気ディスク１１と、磁気ディスク１１を、回転軸を中心に回転させるＳＰＭ（SPindle  Motor）１２と、インナストッパ１３と、アウタストッパ１４と、ヘッドアクチュエータ１５と、ヘッドアクチュエータ１５の先端に取り付けられた磁気ヘッド１６と、ＶＣＭ（Voice  Coil  Motor）１７とを有する。 
【００３１】
また、ＳＰＭ１２を駆動するＳＰＭ駆動回路１８と、ＶＣＭ１７を駆動させるＶＣＭ駆動回路１９とを有する。また、磁気ヘッド１６によって、磁気ディスク１１から読み出された信号および磁気ディスク１１へ書き込む信号を増幅するプリアンプ２０と、磁気ディスク１１に書き込む情報をエンコードし、磁気ディスク１１から読み取った信号をデコードするＲ／ＷＣ（Read/Write  Channel）２１とを有する。 
【００３２】
さらに、磁気ディスク装置１００ａは、自装置の制御を行うＭＣＵ（Micro  Controller  Unit）２２と、ＭＣＵ２２に接続される書き換え可能な不揮発メモリ２３を有する。また、磁気ディスク装置１００ａのホストコンピュータ２００との間で送受信するデータの誤り訂正などを行うマイクロコンピュータ等の制御装置であるＨＤＣ（Hard  Disk  Controller）２４ａと、ＨＤＣ２４ａがホストコンピュータ２００との間で送受信するデータをバッファリングするバッファ２５と、ホストコンピュータ２００との接続インターフェースであるホストインターフェース２６とを有する。
【００３３】
［実施例１に係るＨＤＣの構成］
図３は、実施例１に係るＨＤＣの構成を示すブロック図である。同図に示す様に、実施例１に係るＨＤＣ２４ａは、ＥＣＣ（Error  Correcting  Code）データ訂正処理部２４ａ１と、ＣＲＣ（Cyclic  Redundancy  Check）比較処理部２４ａ２、と、履歴番号比較処理部２４ａ３と、履歴番号管理部２４ａ４と、履歴番号付与処理部２４ａ５とを有する。
【００３４】
ＥＣＣデータ訂正処理部２４ａ１は、磁気ディスク１１から読み出したデータの誤り訂正を行う。ＣＲＣ比較処理部２４ａ２は、磁気ディスク１１から読み出したデータの誤り検出を行う。
【００３５】
履歴番号比較処理部２４ａ３は、磁気ディスク１１からトラック単位で読み出したデータの履歴番号と、履歴番号管理部２４ａ４でトラック単位に管理されている履歴番号とを比較する。そして、これら２つの履歴番号が一致する場合、読み出しデータをバッファ２５を介してホストコンピュータ２００へと出力する。２つの履歴番号が一致しない場合、磁気ディスク１１の同一セクタから再度、ライトデータを読み出す様にＭＣＵ２２に指示する。
【００３６】
履歴番号管理部２４ａ４は、図５に示すような履歴番号管理テーブルを格納する。図５に示す履歴番号管理テーブルは、「トラックＮｏ．」毎に「履歴番号」、すなわち何度目のデータ更新が行われたかを記憶している。従って、ランダムアクセスによってトラックに含まれるセクタが一つでもデータ更新されたならば、該当トラックの全てのセクタの履歴番号を１加算して更新する。
【００３７】
履歴番号付与処理部２４ａ５は、ホストコンピュータ２００から書き込みトラック及び書き込みセクタが指定された磁気ディスク１１へのセクタ単位の書き込みデータの履歴番号を履歴番号管理部２４ａ４によって管理される履歴番号管理テーブルを参照して取得する。そして、取得した該当トラックの履歴番号に１加算した数値を書き込みデータの末尾に付加する。そして、取得した該当トラックの履歴番号に１加算した数値で履歴番号管理テーブルの対象トラックの履歴番号を更新する。
【００３８】
なお、図４の実施例１に係るセクタ単位のデータ構成を示す図に示す様に、セクタ単位の書き込みデータは、「Data」、「ECC」、「CRC」、「履歴番号」の順序の各フィールドによって構成される。なお、「履歴番号」のフィールドは数ｂｉｔ、例えば２ｂｉｔの領域が確保されている。
【００３９】
［実施例１に係る対象セクタリード処理］
図６は、実施例１に係る対象セクタリード処理手順を示すフローチャートである。同図に示すように、ステップＳ１０１では、履歴番号比較処理部２４ａ３は、履歴番号管理テーブルを参照して、リードデータを磁気ディスク１１から読み出す対象セクタが含まれる対象トラックの履歴番号を取得する。
【００４０】
続いて、ステップＳ１０２では、ＨＤＣ２４ａは、対象セクタのデータを１つ読み出す。続いて、ステップＳ１０３では、履歴番号比較処理部２４ａ３は、対象セクタの履歴番号を読み出し、読み出した履歴番号と、履歴番号管理テーブルから読み出した対象セクタが含まれる対象トラックの履歴番号とを比較する。
【００４１】
続いて、ステップＳ１０４では、履歴番号比較処理部２４ａ３は、読み出した履歴番号と、履歴番号管理テーブルから読み出した対象セクタが含まれる対象トラックの履歴番号とが一致するか否かを判定する。一致すると判定された場合（ステップＳ１０４肯定）、ステップＳ１０５へ移り、一致すると判定されなかった場合（ステップＳ１０４否定）、ステップＳ１０６へ移る。
【００４２】
一方、ステップＳ１０６では、ＨＤＣ２４ａは、ステップＳ１０２で読み出した対象セクタと同一のセクタから再度データを読み出す。この処理が終了すると、ステップＳ１０３へ移る。ここで、対象セクタの履歴番号と、履歴番号管理テーブルから読み出した対象セクタが含まれる対象トラックの履歴番号とが一致しないとは、リードオフトラックが発生し、対象セクタから誤った旧いデータを読み出した場合である。
【００４３】
ステップＳ１０５では、ＨＤＣ２４ａは、全ての対象セクタのデータをリードしたか否かを判定する。全ての対象セクタのデータをリードしたと判定された場合（ステップＳ１０５肯定）、ステップＳ１０７へ移り、全ての対象セクタのデータをリードしたと判定されなかった場合（ステップＳ１０５否定）、ステップＳ１０８へ移る。
【００４４】
ステップＳ１０７では、ＨＤＣ２４ａは、全ての対象トラックのデータをリードしたか否かを判定する。全ての対象トラックのデータをリードしたと判定される場合（ステップＳ１０７肯定）、本対象セクタリード処理は終了し、全ての対象トラックのデータをリードしたと判定されなかった場合（ステップＳ１０７否定）、ステップＳ１０９へ移る。
【００４５】
一方、ステップＳ１０８では、ＨＤＣ２４ａは、データを読み出す対象のセクタを次ぎのセクタへと移動させる。この処理が終了すると、ステップＳ１０２へ移る。また、ステップＳ１０９では、ＨＤＣ２４ａは、データを読み出す対象のトラックを次ぎのトラックへと移動させる。この処理が終了すると、ステップＳ１０１へ移る。
【００４６】
［実施例２に係る対象セクタライト処理］
図７は、実施例１に係る対象セクタライト処理手順を示すフローチャートである。同図に示すように、先ず、ステップＳ１１１では、ＨＤＣ２４ａは、書き込み対象のセクタが含まれるトラックのすべてのセクタのデータを読み出す。これは、書き込み対象のセクタのデータを上書き更新する場合、該当セクタが含まれるトラックの全てのセクタのデータの履歴番号を変更しなければならないためである。
【００４７】
続いて、ステップＳ１１２では、履歴番号付与処理部２４ａ５は、履歴番号管理テーブルを参照して、ライトデータを磁気ディスク１１へ書き込む対象セクタが含まれる対象トラックの履歴番号を取得する。
【００４８】
続いて、ステップＳ１１３では、履歴番号付与処理部２４ａ５は、ステップＳ１１２で読み出した履歴番号に１を加算して新たな履歴番号とする。続いて、ステップＳ１１４では、履歴番号付与処理部２４ａ５は、ステップＳ１１１で読み出した対象トラックの１セクタの履歴番号を新たな履歴番号で更新する。
【００４９】
続いて、ステップＳ１１５では、履歴番号付与処理部２４ａ５は、ステップＳ１１４で履歴番号を更新した対象セクタのデータをバッファ２５を介して磁気ディスク１１の該当記憶領域に書き込む。
【００５０】
続いて、ステップＳ１１６では、ＨＤＣ２４ａは、対象トラックの全てのセクタに履歴番号を更新した対象セクタのデータを書き込んだか否かを判定する。対象トラックの全てのセクタに履歴番号を更新した対象セクタのデータを書き込んだと判定された場合（ステップＳ１１６肯定）、ステップＳ１１７へ移り、対象トラックの全てのセクタに履歴番号を更新した対象セクタのデータを書き込んだと判定されなかった場合（ステップＳ１１６否定）、ステップＳ１１８へ移る。
【００５１】
ステップＳ１１７では、ＨＤＣ２４ａは、対象セクタが含まれる全ての対象トラックに履歴番号を更新した対象セクタのデータを書き込んだか否かを判定する。対象セクタが含まれる全ての対象トラックに履歴番号を更新した対象セクタのデータを書き込んだと判定された場合（ステップＳ１１７肯定）、ステップＳ１２０へ移り、対象セクタが含まれる全ての対象トラックに履歴番号を更新した対象セクタのデータを書き込んだと判定されなかった場合（ステップＳ１１７否定）、ステップＳ１１９へ移る。
【００５２】
ステップＳ１１８では、ＨＤＣ２４ａは、データを書き込む対象のセクタを次ぎのセクタへと移動させる。この処理が終了すると、ステップＳ１１２へ移る。また、ステップＳ１１９では、ＨＤＣ２４ａは、データを読み出す対象のトラックを次ぎのトラックへと移動させる。この処理が終了すると、ステップＳ１１１へ移る。
【００５３】
ステップＳ１２０では、履歴番号付与処理部２４ａ５は、履歴番号管理部２４ａ４によって管理される履歴番号管理テーブルの全ての対象トラックの履歴番号に１を加算して更新する。この処理が終了すると、本対象セクタライト処理は終了する。
【００５４】
上述してきた様に、本実施例１では、トラック毎に履歴番号を管理するので、履歴番号管理テーブルの記憶資源使用領域を節減することができる。また、トラック毎に履歴番号を管理することから、連続するセクタにデータを書き込む順次アクセスの場合、高速に履歴番号のチェックを行うことができる。特に、大量のデータを順次アクセスで書き込む場合に有用である場合がある。
【実施例２】
【００５５】
［実施例２の概要］
図８は、実施例２の概要を説明するための図である。実施例２では、実施例１との差異部分についてのみ説明を行う。特記しない限り、実施例２の説明において実施例１と同一の符号が付与されているブロックは同一の機能を有し、同一のステップ番号が付与されている処理は同一の処理を示す。
【００５６】
図８は、実施例２に係る磁気ディスク装置の磁気ディスクのあるトラックのある部分において、ライトデータがすでに書き込まれている状態から新しいライトデータがデータ更新によって上書きで書き込まれた状況を示している。
【００５７】
実施例２では、図８に示す様に、ライトデータの書き込みの都度、セクタ単位に異なる履歴番号を付与することとした。１回目のライトによるライトデータには、「セクタ００」〜「セクタ０５」それぞれに異なる履歴番号「（１）」、「（１）」、「（１）」、「（２）」、「（１）」、「（１）」が付与されており、２回目のライトによるライトデータには、セクタ毎に異なる履歴番号「（１）」、「（３）」、「（２）」、「（３）」、「（５）」、「（４）」が付与されている。
【００５８】
そして、最新のライトデータである２回目のライトデータをリードヘッドで読み出す際に、各セクタの履歴番号がそれぞれ「（１）」、「（３）」、「（２）」、「（３）」、「（５）」、「（４）」であることを確認する。この確認作業を行うことによって、セクタ単位でリードオフトラックの発生を回避することができる。
【００５９】
［実施例２に係る磁気ディスク装置及びＨＤＣの構成］
実施例２に係る磁気ディスク装置１００ｂは、実施例１と比較してＨＤＣ２４ａに代えてＨＤＣ２４ｂを有する（図２参照）。また、ＨＤＣ２４ｂは、ＥＣＣデータ訂正処理部２４ａ１と、ＣＲＣ比較処理部２４ａ２と、履歴番号比較処理部２４ｂ３と、履歴番号管理部２４ｂ４と、履歴番号付与処理部２４ａ５とを有する（図３参照）。
【００６０】
履歴番号比較処理部２４ｂ３は、磁気ディスク１１からセクタ単位で読み出したデータの履歴番号と、履歴番号管理部２４ａ４でセクタ単位に管理されている履歴番号とを比較する。そして、これら２つの履歴番号が一致する場合、読み出しデータをバッファ２５を介してホストコンピュータ２００へと出力する。２つの履歴番号が一致しない場合、磁気ディスク１１の同一セクタから再度、ライトデータを読み出す様にＭＣＵ２２に指示する。
【００６１】
履歴番号管理部２４ｂ４は、図９に示す様な、実施例２に係る履歴番号管理テーブルを格納する。図９に示すように、履歴番号は、トラック番号及びセクタ番号で特定されるセクタ毎に異なる数値となっている。これらの数値は、例えば、磁気ディスクの対象トラックの対象セクタのデータが更新して上書きされた回数を表す。
【００６２】
この様に、データが更新して上書きされた回数を磁気ディスク１１の対象トラックの対象セクタ毎に管理することによって、少量のデータを磁気ディスク１１にランダムアクセスで書き込む場合に有用である場合がある。
【００６３】
［実施例２に係る対象セクタリード処理］
図１０は、実施例２に係る対象セクタリード処理手順を示すフローチャートである。同図に示すように、ステップＳ２０１では、ＨＤＣ２４ｂは、対象セクタのデータを１つ読み出す。続いて、ステップＳ２０２では、履歴番号比較処理部２４ａ３は、ステップＳ２０１で読み出した履歴番号と、履歴番号管理テーブルから読み出した対象セクタの履歴番号とを比較する。
【００６４】
続いて、ステップＳ２０３では、履歴番号比較処理部２４ｂ３は、読み出した履歴番号と、履歴番号管理テーブルから読み出した対象セクタが含まれる対象トラックの履歴番号とが一致するか否かを判定する。一致すると判定された場合（ステップＳ２０３肯定）、ステップＳ２０４へ移り、一致すると判定されなかった場合（ステップＳ２０３否定）、ステップＳ２０６へ移る。
【００６５】
ステップＳ２０４では、ＨＤＣ２４ｂは、全ての対象セクタのデータをリードしたか否かを判定する。全ての対象セクタのデータをリードしたと判定された場合（ステップＳ２０４肯定）、本対象セクタリード処理は終了し、全ての対象セクタのデータをリードしたと判定されなかった場合（ステップＳ２０４否定）、ステップＳ２０５へ移る。
【００６６】
ステップＳ２０５では、ＨＤＣ２４ｂは、データを読み出す対象のセクタを次ぎのセクタへと移動させる。この処理が終了すると、ステップＳ２０２へ移る。一方、ステップＳ２０６では、ＨＤＣ２４ｂは、ステップＳ２０１で読み出した対象セクタと同一のセクタから再度データを読み出す。この処理が終了すると、ステップＳ２０１へ移る。
【００６７】
［実施例２に係る対象セクタライト処理］
図１１は、実施例２に係る対象セクタライト処理手順を示すフローチャートである。同図に示すように、ステップＳ２１１では、履歴番号付与処理部２４ａ５は、履歴番号管理テーブルを参照して、ライトデータを磁気ディスク１１へ書き込む対象セクタの履歴番号を取得する。
【００６８】
続いて、ステップＳ２１２では、履歴番号付与処理部２４ａ５は、ステップＳ２１１で読み出した履歴番号に１を加算して新たな履歴番号とする。続いて、ステップＳ２１３では、履歴番号付与処理部２４ａ５は、ステップＳ２１１で読み出した対象セクタの履歴番号を新たな履歴番号で更新する。
【００６９】
続いて、ステップＳ２１４では、履歴番号付与処理部２４ａ５は、ステップＳ２１３で履歴番号を更新した対象セクタのデータをバッファ２５を介して磁気ディスク１１の該当記憶領域に書き込む。
【００７０】
続いて、ステップＳ２１５では、履歴番号付与処理部２４ａ５は、履歴番号管理部２４ｂ４によって管理される履歴番号管理テーブルの全ての対象セクタの履歴番号に１を加算して更新する。
【００７１】
続いて、ステップＳ２１６では、ＨＤＣ２４ａは、全ての対象セクタに履歴番号を更新したデータを書き込んだか否かを判定する。全ての対象セクタに履歴番号を更新したデータを書き込んだと判定された場合（ステップＳ２１６肯定）、本対象セクタライト処理は終了し、全ての対象セクタに履歴番号を更新したデータを書き込んだと判定されなかった場合（ステップＳ２１６否定）、ステップＳ２１７へ移る。
【００７２】
ステップＳ２１７では、ＨＤＣ２４ａは、データを書き込む対象のセクタを次ぎのセクタへと移動させる。この処理が終了すると、ステップＳ２１１へ移る。
【００７３】
上述してきた様に、本実施例２では、セクタ毎に履歴番号を管理するので、データを分散する複数のセクタに書き込むランダムアクセスの場合、高速に履歴番号のチェックを行うことができる。特に、少量のデータをランダムアクセスで書き込む場合に有用である場合がある。
【実施例３】
【００７４】
実施例３は、実施例１における履歴番号をシリンダ番号に代えた実施例である。実施例３では、実施例１との差異部分についてのみ説明を行う。特記しない限り、実施例３の説明において実施例１と同一の符号が付与されているブロックは同一の機能を有し、同一のステップ番号が付与されている処理は同一の処理を示す。
【００７５】
［実施例３に係る磁気ディスク装置及びＨＤＣの構成］
実施例３に係る磁気ディスク装置１００ｃは、実施例１と比較してＨＤＣ２４ａに代えてＨＤＣ２４ｃを有する（図３参照）。また、ＨＤＣ２４ｃは、ＥＣＣデータ訂正処理部２４ａ１と、ＣＲＣ比較処理部２４ｃ２と、履歴番号比較処理部２４ｃ３と、履歴番号管理部２４ｃ４と、履歴番号付与処理部２４ｃ５とを有する。
【００７６】
ＣＲＣ比較処理部２４ｃ２は、磁気ディスク１１からトラック単位で読み出したデータのＣＲＣの比較チェックを行う。履歴番号比較処理部２４ｃ３は、ＣＲＣ比較処理部２４ｃ２がＣＲＣ比較チェックを行う際、磁気ディスク１１からトラック単位で読み出したデータのシリンダ番号と、履歴番号管理部２４ｃ４でトラック単位に管理されているシリンダ番号とを比較する。なお、履歴番号管理部２４ｃ４でトラック単位に管理されているシリンダ番号は、図１２に示す様に、ＣＲＣフィールドに含まれる「Cylinder」フィールドの上位４ビットを用いて履歴番号としたものである。
【００７７】
例えば、図１３に示す様に、シリンダ番号が例えば７桁の１６進数であった場合、最上位の１ｂｉｔを履歴番号の格納領域として用いる。この場合、７桁の１６進数の最上位桁をｂｉｔ列で表わすと４ｂｉｔである。その４ｂｉｔの最上位ｂｉｔを履歴番号の格納領域とし「０」又は「１」を格納することによって履歴番号とする。４ｂｉｔの最上位ｂｉｔを「１」とした場合、ビット列は「１０００」であるので１６進数の最上位桁の数値は「８ｈ」となる。
【００７８】
なお、上記の様にした場合、履歴番号は２種類のみしか区別することが出来ないが、おおむね２回に１回の割合で正しいライトデータを読み出すことができるため、履歴番号が２種類のみの区別であってもよい。さらに区別可能な履歴番号を増やしたい場合には、シリンダ番号を示すｂｉｔ列に空きがある限り、空いている上位の複数ｂｉｔを履歴番号の格納領域として用いてもよい。
【００７９】
そして、履歴番号比較処理部２４ｃ３は、磁気ディスク１１からトラック単位で読み出したデータのシリンダ番号と、履歴番号管理部２４ｃ４でトラック単位に管理されているシリンダ番号とが一致する場合、読み出しデータをバッファ２５を介してホストコンピュータ２００へと出力する。２つのシリンダ番号が一致しない場合、磁気ディスク１１の同一セクタから再度、ライトデータを読み出す様にＭＣＵ２２に指示する。
【００８０】
履歴番号管理部２４ｃ４は、図１３に例示する履歴番号管理テーブルを格納する。履歴番号付与処理部２４ａ５は、ホストコンピュータ２００からの新たな書き込みデータに含まれるシリンダ番号と、履歴番号管理部２４ｃ４でトラック単位に管理されているシリンダ番号とを比較する。そして、履歴番号管理部２４ｃ４で管理されているシリンダ番号の最上位ビットを反転させたものを新たな書き込みデータのシリンダ番号とする。そして、新たな書き込みデータのシリンダ番号を、書き込みデータ及び履歴番号管理テーブルの対象トラックに該当するシリンダ番号に新たな書き込みデータのシリンダ番号を反映させる。
【００８１】
［実施例３に係る対象セクタリード処理］
図１４は、実施例３に係る対象セクタリード処理手順を示すフローチャートである。実施例３に係る対象セクタリード処理は、図６に示した実施例１に係る対象セクタリード処理と比較して、ステップＳ１０１、ステップＳ１０３及びステップＳ１０４がステップＳ１０１ａ、ステップＳ１０３ａ及びステップＳ１０４ａに代わったものとなっている。これら以外は、実施例１に係る対象セクタリード処理と同一である。
【００８２】
ステップＳ１０１ａでは、履歴番号比較処理部２４ｃ３は、履歴番号管理テーブルを参照して、リードデータを磁気ディスク１１から読み出す対象セクタが含まれる対象トラックの履歴番号を取得する。
【００８３】
ステップＳ１０３ａでは、履歴番号比較処理部２４ｃ３は、対象セクタのシリンダ番号を読み出し、読み出したシリンダ番号と、履歴番号管理テーブルから読み出した対象セクタが含まれる対象トラックのシリンダ番号とを比較する。
【００８４】
ステップＳ１０４ａでは、履歴番号比較処理部２４ｃ３は、読み出したシリンダ番号と、履歴番号管理テーブルから読み出した対象セクタが含まれる対象トラックのシリンダ番号とが一致するか否かを判定する。一致すると判定された場合（ステップＳ１０４ａ肯定）、ステップＳ１０５へ移り、一致すると判定されなかった場合（ステップＳ１０４ａ否定）、ステップＳ１０６へ移る。
【００８５】
［実施例３に係る対象セクタライト処理］
図１５は、実施例３に係る対象セクタライト処理手順を示すフローチャートである。実施例３に係る対象セクタライト処理は、図７に示した実施例１に係る対象セクタライト処理と比較して、ステップＳ１１２、ステップＳ１１３、ステップＳ１１４及びステップＳ１２０がステップＳ１１２ａ、ステップＳ１１３ａ、ステップＳ１１４ａ及びステップＳ１２０ａに代わったものとなっている。これら以外は、実施例１に係る対象セクタライト処理と同一である。
【００８６】
ステップＳ１１２ａでは、履歴番号付与処理部２４ｃ５は、履歴番号管理テーブルを参照して、ライトデータを磁気ディスク１１へ書き込む対象セクタが含まれる対象トラックのシリンダ番号を取得する。
【００８７】
ステップＳ１１３ａでは、履歴番号付与処理部２４ｃ５は、ステップＳ１１２ａで読み出したシリンダ番号の上位１ｂｉｔを反転させたものを新たなシリンダ番号とする。すなわち、読み出したシリンダ番号の上位１ｂｉｔが「０」ならば「１」へ、「１」ならば「０」へとシリンダ番号を変換する。ステップＳ１１４ａでは、履歴番号付与処理部２４ｃ５は、ステップＳ１１１で読み出した対象トラックの１セクタのシリンダ番号を新たなシリンダ番号で更新する。
【００８８】
ステップＳ１２０ａでは、履歴番号付与処理部２４ｃ５は、履歴番号管理部２４ｃ４によって管理される履歴番号管理テーブルの全ての対象トラックのシリンダ番号を上記新たなシリンダ番号で更新する。
【００８９】
なお、履歴番号として空きｂｉｔを用いる対象は、図１２に示す「Cylinder」フィールドのシリンダ番号に限らず、ＣＲＣフィールドの空きｂｉｔであれば、何れのフィールドを用いてもよい。
【００９０】
上述してきた様に、本実施例３では、ＣＲＣの空きｂｉｔを使用して履歴番号を埋め込むので、ＣＲＣチェックと同時に履歴番号のチェックを行うことができることから、処理の高速化、回路構成の簡易化を図ることができる場合がある。
【００９１】
以上、実施例を説明したが、これに限られるものではなく、特許請求の範囲に記載した技術的思想の範囲内で、更に種々の異なる実施例で実施されてよい。また、実施例に記載した効果は、これに限定されるものではない。
【００９２】
具体的には、読み書きするデータ量、及び／又は、アクセスの種類に応じて実施例１及び実施例２の処理を切り換えて実行する、若しくは、実施例２及び実施例３の処理を切り換えて実行することとしてもよい。例えば、大量のデータを順次アクセスにより更新する場合、実施例１（若しくは、実施例３）の処理を実行し、少量のデータをランダムアクセスにより更新する場合、実施例２の処理を実行する等である。この様にすると、読み書きするデータの特性に応じて、更新データの履歴管理をより高速に効率的に行うことが可能になる。
【００９３】
上記実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記実施例で示した処理手順、制御手順、具体的名称、各種のデータやパラメタを含む情報については、特記する場合を除いて任意に変更することができる。
【００９４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の様に構成されていることを要しない。すなわち、各装置の分散及び／又は統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散及び／又は統合して構成することができる。
【符号の説明】
【００９５】
１１  磁気ディスク
１２  ＳＰＭ
１３  インナストッパ
１４  アウタストッパ
１５  ヘッドアクチュエータ
１６  磁気ヘッド
１７  ＶＣＭ
１８  ＳＰＭ駆動回路
１９  ＶＣＭ駆動回路
２０  プリアンプ
２１  Ｒ／ＷＣ
２２  ＭＣＵ
２３  不揮発メモリ
２４ａ１  ＥＣＣデータ訂正処理部
２４ａ２  ＣＲＣ比較処理部
２４ｃ２  ＣＲＣ比較処理部
２４ａ３、２４ｂ３、２４ｃ３  履歴番号比較処理部
２４ａ４、２４ｂ４、２４ｃ４  履歴番号管理部
２４ａ５、２４ｃ５  履歴番号付与処理部
２５  バッファ
２６  ホストインターフェース
１００ａ、１００ｂ、１００ｃ  磁気ディスク装置
２００  ホストコンピュータ
【図１】
2010176769.tif 000003
【図２】
2010176769.tif 000004
【図３】
2010176769.tif 000005
【図４】
2010176769.tif 000006
【図５】
2010176769.tif 000007
【図６】
2010176769.tif 000008
【図７】
2010176769.tif 000009
【図８】
2010176769.tif 000010
【図９】
2010176769.tif 000011
【図１０】
2010176769.tif 000012
【図１１】
2010176769.tif 000013
【図１２】
2010176769.tif 000014
【図１３】
2010176769.tif 000015
【図１４】
2010176769.tif 000016
【図１５】
2010176769.tif 000017
【図１６−１】
2010176769.tif 000018
【図１６−２】
2010176769.tif 000019