(57)【要約】【課題】書き戻し対象となるセクタ数を固定することによって発生する性能低下を防止すること。【解決手段】磁気ディスク装置１００は、書き戻し判定部１８５が、各サーボフレームに対応するオフトラック量を含んだサーボ信号をポジション情報メモリ１８３から取得し、取得したサーボ信号に基づいてライトフォールトが発生したか否かを判定する。そして、ライトフォールトが発生した場合には、書き戻し判定部１８５が書き戻しを行うセクタ数を判定し、ライト制御部１８７がハードディスクコントローラ１７０を制御して書き戻し判定部１８５によって判定されたセクタ数に対応させて書き戻しを実行する。【選択図】        図２
2008059634.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体に対するデータの書き込みエラーが発生した場合にデータの書き戻しをおこなう記憶装置を制御する制御装置であって、
データの書き込みエラーが発生した原因を判別するエラー原因判別部と、
前記エラー原因判別部により判別されたエラー原因に応じて、データの書き戻しを行うセクタの数を判定するセクタ数判定部と、
を備えたことを特徴とする制御装置。
【請求項２】
前記エラー原因判別部は、トラック中心とヘッドとのずれ量を示すオフトラック量、衝撃を検出するショックセンサの検出結果、回路の不具合に関する回路情報の少なくとも一つに基づいて、エラー原因を判別することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記記憶媒体上に記憶されたサーボフレームを用いて該記憶媒体上のトラック中心とヘッドとのずれ量を示すオフトラック量を前記サーボフレームごとに検出するオフトラック量検出部を備え、前記セクタ数判定部は、前記オフトラック量検出部によって検出されたオフトラック量に基づいてデータの書き戻しを行うセクタの数を判定することを特徴とする請求項２に記載の制御装置。
【請求項４】
記憶媒体に対するデータの書き込みエラーが発生した場合にデータの書き戻しをおこなう記憶装置であって、
データの書き込みエラーが発生した原因を判別するエラー原因判別部と、
前記エラー原因判別部により判別されたエラー原因に応じて、データの書き戻しを行うセクタの数を判定するセクタ数判定部と、
を備えたことを特徴とする記憶装置。
【請求項５】
前記エラー原因判別部は、トラック中心とヘッドとのずれ量を示すオフトラック量、衝撃を検出するショックセンサの検出結果、回路の不具合に関する回路情報の少なくとも一つに基づいて、エラー原因を判別することを特徴とする請求項４に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記憶媒体に対するデータの書き込みエラーが発生した場合にデータの書き戻しをおこなう記憶装置およびその制御装置に関し、特に、データの書き戻しに起因する性能低下を防止することができる制御装置および記憶装置に関するものである。
【背景技術】
【０００２】
従来、磁気ディスク装置において、データの書き込み時にライトフォールト（Write  Fault）が発生した場合には、このライトフォールトが発生したセクタより以前の所定数のセクタに対してデータの書き戻しを行っている（例えば、特許文献１参照）。
【０００３】
ここで、ライトフォールトの発生したセクタより以前の所定数のセクタに対してデータを書き戻す目的は、ポジションオフトラック（Position  off  track）を検出するサーボサンプリングが間欠的であるため、ポジションオフトラック等でライトフォールトが発生した場合、ポジションオフトラックを検出したサーボフレームより１つ前のサーボフレーム（このサーボフレームにおいてポジションオフトラックは発生していないものとする）からライトフォールトを検出したサーボフレームまでの間がオフトラックしている可能性があり、この間のデータを、トラックの中心位置に書き直す必要があるためである。
【０００４】
従って、ポジションオフトラックを検出した場合の、ライトフォールトを検出したサーボフレームを含んだセクタ数を書き戻すことが必要である。
【０００５】
通常、磁気ディスク装置では、記録密度をあげるために磁気ディスクのアウターからインナーまでをゾーン（Zone）に区切り、１周あたりのセクタ数を違えている。しかし、サーボフレームに関しては、サーボサンプリングを一定にするために１周あたりのサーボフレーム数は、アウターからインナーまで同一である。
【０００６】
従って、１つのサーボフレームを跨ぐセクタ数は、磁気ディスクのアウター側ではセクタ数が多く、インナー側ではセクタ数が少なくなる。書き戻しを行うセクタ数を固定とする場合には、アウター側におけるサーボフレーム間のセクタ数が最も多くなるセクタ数を、書き戻しを実行する際のセクタ数に設定している。
【０００７】
【特許文献１】特開平５−２０７８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来の技術では、ライトフォールト発生時に書き戻しを行うセクタ数が、磁気ディスクのアウター側におけるサーボフレーム間のセクタ数に基づいて固定で設定されているため、アウター側よりもサーボフレーム間のセクタ数が少ないインナー側でライトフォールトが発生した場合には、書き戻し対象となるセクタが複数のサーボフレームを跨ぐことになり、磁気ディスク装置の性能低下を引き起こすという問題があった。
【０００９】
なぜなら、複数のサーボフレームを跨いで書き戻しを行う場合は、書き戻し対象のセクタに含まれる全てのサーボフレームにおいて連続で書き戻しを成功させる必要（ライトがＯＫである必要）があり、書き戻しが成功する確率は、書き戻しを行うセクタに含まれるサーボフレームの数に比例して低くなるためである。
【００１０】
また、磁気ディスク装置に対して連続的に振動が印加される状況下（ユーザが磁気ディスク装置を電車などに持ち込んだ場合）などでは、書き戻しを行うセクタに含まれる複数のサーボフレームにおいて連続してライトが成功する可能性は極めて低くなり、データの書き込み処理が進行せず、最終的にはリトライオーバーによるアンリカバードなライトフォールトに至る問題となるため、この問題は更に深刻なものとなっていた。
【００１１】
つまり、磁気ディスク装置は積極的にモバイル機器(携帯型情報ツールや携帯型音楽プレーヤなど)に採用されてきており、電車や航空機などの乗車中や徒歩中や登山中に使用する機会があり、連続的に振動が印加される状況や気圧変動の環境下にさらされる機会が多くなり、それらの使用環境の影響を受けやすくなってきている。したがって、書き戻し重要性が装置の新たな使用形態において新たな課題として浮上してきた。
【００１２】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、データ書き戻しに起因する性能低下を防止することができる制御装置および記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、本発明は、記憶媒体に対するデータの書き込みエラーが発生した場合にデータの書き戻しをおこなう記憶装置を制御する制御装置であって、データの書き込みエラーが発生した原因を判別するエラー原因判別部と、前記エラー原因判別部により判別されたエラー原因に応じて、データの書き戻しを行うセクタの数を判定するセクタ数判定部と、を備えたことを特徴とする。
【００１４】
本発明によれば、データの書き込みエラーが発生した原因を判別し、判別したエラー原因に応じて、データの書き戻しを行うセクタの数を判定するので、書き戻しが不必要なセクタに対して書き戻しが実行されなくなり、記憶装置の性能を向上させることができる。また、不必要な書き戻しをなくすことによって、書き戻し対象となるセクタが複数のサーボフレームを跨ぐことがなくなり、リトライ時の書き戻しを連続で成功させるべきサーボフレームの数を減らすことができるので、振動時等の外乱印加時の性能耐性を向上させることができる。
【００１５】
また、本発明は、上記発明において、前記エラー原因判別部は、トラック中心とヘッドとのずれ量を示すオフトラック量、衝撃を検出するショックセンサの検出結果、回路の不具合に関する回路情報の少なくとも一つに基づいて、エラー原因を判別することを特徴とする。
【００１６】
本発明によれば、トラック中心とヘッドとのずれ量を示すオフトラック量、衝撃を検出するショックセンサの検出結果、回路の不具合に関する回路情報の少なくとも一つに基づいて、エラー原因を判別するので、より正確に書き戻しを行うセクタ数を判定することができ、効率よく書き戻しを実行することができる。
【００１７】
また、本発明は、上記発明において、前記記憶媒体上に記憶されたサーボフレームを用いて該記憶媒体上のトラック中心とヘッドとのずれ量を示すオフトラック量を前記サーボフレームごとに検出するオフトラック量検出部を備え、前記セクタ数判定部は、前記オフトラック量検出部によって検出されたオフトラック量に基づいてデータの書き戻しを行うセクタの数を判定することを特徴とする。
【００１８】
本発明によれば、記憶媒体上に記憶されたサーボフレームを用いて記憶媒体上のトラック中心とヘッドとのずれ量を示すオフトラック量を前記サーボフレームごとに検出し、検出したオフトラック量に基づいてデータの書き戻しを行うセクタの数を判定するので、書き戻し対象のセクタの数は必要最低限のセクタ数となり、効率よくデータの書き戻しを実行することができる。
【００１９】
また、本発明は、記憶媒体に対するデータの書き込みエラーが発生した場合にデータの書き戻しをおこなう記憶装置であって、データの書き込みエラーが発生した原因を判別するエラー原因判別部と、前記エラー原因判別部により判別されたエラー原因に応じて、データの書き戻しを行うセクタの数を判定するセクタ数判定部と、を備えたことを特徴とする。
【００２０】
本発明によれば、データの書き込みエラーが発生した原因を判別し、判別したエラー原因に応じて、データの書き戻しを行うセクタの数を判定するので、書き戻しが不必要なセクタに対して書き戻しが実行されなくなり、記憶装置の性能を向上させることができる。また、不必要な書き戻しをなくすことによって、書き戻し対象となるセクタが複数のサーボフレームを跨ぐことがなくなり、リトライ時の書き戻しを連続で成功させるべきサーボフレームの数を減らすことができるので、振動時等の外乱印加時の性能耐性を向上させることができる。
【００２１】
また、本発明によれば、上記発明において、前記エラー原因判別部は、トラック中心とヘッドとのずれ量を示すオフトラック量、衝撃を検出するショックセンサの検出結果、回路の不具合に関する回路情報の少なくとも一つに基づいて、エラー原因を判別することを特徴とする。
【００２２】
本発明によれば、トラック中心とヘッドとのずれ量を示すオフトラック量、衝撃を検出するショックセンサの検出結果、回路の不具合に関する回路情報の少なくとも一つに基づいて、エラー原因を判別するので、より正確に書き戻しを行うセクタ数を判定することができ、効率よく書き戻しを実行することができる。
【発明の効果】
【００２３】
本発明によれば、ライトフォールトが発生した場合に、最適なセクタ数を判定してデータの書き戻しを実行するので、書き戻し対象となるセクタが複数のサーボフレームを跨ぐことが無くなり、書き戻しにかかる処理をスムーズに実行することができる。また、データの書き戻しに対する成功率が格段に向上するため、この装置に対する信頼性を向上させることができる。特に、モバイル機器に採用される記憶装置において、振動や落下、気圧変動などに対する装置の信頼性を向上させるのに有効である。
【発明を実施するための最良の形態】
【００２４】
以下に添付図面を参照して、この発明に係る制御装置および記憶装置の好適な実施の形態を詳細に説明する。なお、本実施例では一例として、磁気ディスク装置を用いて説明する。
【実施例】
【００２５】
本実施例にかかる磁気ディスク装置は、磁気ディスク上に記録されたサーボフレームを用いて磁気ディスク上のトラック中心とヘッドとのずれ量を示すオフトラック量をサーボフレームごとに検出し、検出したオフトラック量に基づいてデータの書き戻しをおこなうセクタ数を判定し、判定したセクタ数によってデータの書き戻しをおこなう。
【００２６】
図１は、本実施例にかかる磁気ディスク装置の概要および特徴を説明するための説明図である。なお、図１では一例として、サーボフレームＳＶ（ｎ）において、ライトフォールト（Write  Fault）が発生した場合を示している。図１に示す例では、サーボフレームＳＶ（ｎ−１）からＳＶ（ｎ）の区間のポジションは、Write  Offtrack  Sliceを超えている。
【００２７】
この場合、サーボフレームＳＶ（ｎ−１）以降のライト（Write）軌跡は、Write  Offtrack  Sliceを超えている可能性がある。図１に示す「Ｃａｓｅ１」の場合は、ＳＶ（ｎ）の時点でのオフトラック量が大きい（例えば、規定値よりも大きい）。従って、Ｃａｓｅ１のような場合には、本実施例にかかる磁気ディスク装置は、サーボフレームＳＶ（ｎ−１）を含むようなセクタ、すなわち、サーボフレームＳＶ（ｎ−１）からＳＶ（ｎ）間の全てのセクタに対して書き戻しを実行する。つまり、全セクタ数が書き戻し対象となる。この点は、従来の磁気ディスク装置にかかる書き戻し処理と同様である。
【００２８】
一方、図１に示す「Ｃａｓｅ２」の場合は、サーボフレームＳＶ（ｎ）の時点でのオフトラック量がＣａｓｅ１の場合と比較して小さい（あるいは、規定値よりも小さい）。このような場合は、サーボフレームＳＶ（ｎ−１）直後のデータセクタのオフトラック量は小さく、書き戻しを実行する必要が無い。そこで、Ｃａｓｅ２のような場合には、本実施例にかかる磁気ディスク装置は、サーボフレームＳＶ（ｎ−１）からＳＶ（ｎ）間の全てのセクタに対して書き戻しを実行するのではなく、一部分のセクタに対して書き戻しを実行する（例えば、サーボフレームＳＶ（ｎ−１）とＳＶ（ｎ）との間のセクタから書き戻しを実行する；換言すれば、書き戻しを実行するセクタ数を全セクタ数から規定数減らしている）。
【００２９】
このように、本実施例にかかる磁気ディスク装置は、各サーボフレームのオフトラック量に基づいてデータの書き戻しをおこなうセクタ数を判定し、書き戻しを実行するので、不必要な書き戻しがなくなり、磁気ディスク装置の性能を向上させることができる。
【００３０】
また、不必要な書き戻しをなくすことによって、書き戻し対象となるセクタが複数のサーボフレームを跨ぐことがなくなり、リトライ時の書き戻しを連続で成功させるべきサーボフレームの数を減らすことができるので、振動時等の外乱印加時の性能耐性を向上させることができる。
【００３１】
次に、本実施例にかかる磁気ディスク装置の構成について説明する。図２は、本実施例にかかる磁気ディスク装置１００の構成を示す機能ブロック図である。同図に示すように、この磁気ディスク装置１００は、ヘッドアクチュエータ１１０と、スピンドルモータ１２０と、モータドライバ回路１３０と、ヘッドアンプ回路１４０と、Ｒ（Read）／Ｗ（Write）回路１５０と、コントロール回路１６０と、ハードディスクコントローラ１７０と、制御部１８０と、ＲＯＭ１９０とを備えて構成される。
【００３２】
このうち、ヘッドアクチュエータ１１０は、モータドライバ回路１３０から出力される制御電流によって、ヘッド１１０ａ，１１０ｂを移動させる装置である。なお、ここでは説明の便宜上、ヘッド１１０ａ，１１０ｂのみを示すが、このヘッドアクチュエータ１１０はその他の図示しないヘッドも移動させるものとする。
【００３３】
スピンドルモータ１２０は、モータドライバ回路１３０から出力される制御電流によって、磁気ディスクの回転制御をおこなう装置である。モータドライバ回路１３０は、コントロール回路１６０から出力される制御命令を取得し、取得した制御命令に基づいてヘッドアクチュエータ１１０およびスピンドルモータ１２０に制御電流を出力する装置である。
【００３４】
ヘッドアンプ回路１４０は、コントロール回路１６０から制御命令を取得すると共に、Ｒ／Ｗ回路１５０からライトデータ（磁気ディスクに書き込むデータ）およびライトゲート（磁気ディスクにデータを書き込むタイミングを示すデータ）を取得して、ヘッド１１０ａ，１１０ｂを介して、ライトデータを磁気ディスクに書き込む装置である。また、ヘッドアンプ回路１４０は、ヘッド１１０ａ，１１０ｂから取得するリード信号（磁気ディスクから読み取られたデータ）をＲ／Ｗ回路１５０に出力する。
【００３５】
Ｒ／Ｗ回路１５０は、磁気ディスクに対するリードおよびライトにかかる各種処理を実行する装置である。具体的に、このＲ／Ｗ回路１５０は、ヘッドアンプ回路１４０から出力されるリード信号を増幅したリードデータ（一定の出力レベルを有するリードデータ）を作成し、ハードディスクコントローラ１７０から出力されるリードゲート（データを読み取るタイミングを示すデータ）に応じて、リードデータをハードディスクコントローラ１７０に出力する。また、Ｒ／Ｗ回路１５０は、ハードディスクコントローラ１７０から出力されるライトデータおよびコントロール回路１６０から出力されるライトゲートをヘッドアンプ回路１４０に出力する。
【００３６】
また、Ｒ／Ｗ回路１５０は、コントロール回路１６０からサーボゲート（磁気ディスク上のサーボ信号を読み取るタイミングを示すデータ）を取得し、サーボ信号をコントロール回路１６０に出力する。なお、図示しないが、Ｒ／Ｗ回路１５０は、ヘッド１１０ａ，１１０ｂ、ヘッドアンプ回路１４０を介して、サーボ信号を取得し、取得したサーボ信号をコントロール回路１６０に出力する。また、このサーボ信号は、ヘッド（ヘッド１１０ａあるいはヘッド１１０ｂ）と磁気ディスクのトラック中心とのずれを示すオフトラック量の情報をサーボフレームごとに含んでいるものとする。
【００３７】
更に、Ｒ／Ｗ回路１５０は、リード信号を増幅した際のリード信号の増幅度（Ｒ／Ｗ回路１５０の利得）をサーボＡＧＣ（Automatic  Gain  Control）値としてコントロール回路１６０に出力する。Ｒ／Ｗ回路１５０は、リードデータの出力レベルを一定に保つように増幅度を調整するので、かかるサーボＡＧＣ値は、リード信号が小さくなるにしたがって、大きくなる（あるいはリード信号が大きくなるにしたがって小さくなる）。
【００３８】
コントロール回路１６０は、制御部１８０からの制御命令に応じてモータドライバ回路１３０およびヘッドアンプ回路１４０を制御する装置である。また、コントロール回路１６０は、ハードディスクコントローラ１７０からライトゲートを取得し、取得したライトゲートをＲ／Ｗ回路１５０に出力する。また、コントロール回路１６０は、サーボゲートをＲ／Ｗ回路１５０に出力し、Ｒ／Ｗ回路１５０からサーボ信号およびサーボＡＧＣ値を取得すると共に、取得したサーボ信号およびサーボＡＧＣ値を制御部１８０に出力する。
【００３９】
ハードディスクコントローラ１７０は、ホストコンピュータ（図示しない）あるいは制御部１８０から種々のデータ／コマンドを受け付け、磁気ディスク装置１００全体を制御する装置である。なお、本発明に密接に関連するハードディスクコントローラ１７０の処理としては、ホストコンピュータからの書き込み命令に応答して、ライトゲートをコントロール回路１６０に出力し、ライトデータをＲ／Ｗ回路１５０に出力する。また、ホストコンピュータからの読み込み命令に応答して、リードゲートをＲ／Ｗ回路１５０に出力し、Ｒ／Ｗ回路１５０から取得するリードデータをホストコンピュータに出力する。
【００４０】
更に、ハードディスクコントローラ１７０は、制御部１８０からライトリトライ命令を取得した場合には、制御部１８０によって判定された磁気ディスク上のセクタにデータの書き戻しをおこなうべく、ライトデータをＲ／Ｗ回路１５０に出力し、ライトゲートをコントロール回路１６０に出力する。
【００４１】
制御部１８０は、各種制御データを格納するための内部メモリを有し、これらを用いて種々の処理を実行する処理部であり、特に本発明に密接に関連するものとしては、図２に示すように、ボイスコイルモータ（ＶＣＭ）制御部１８１と、スピンドルモータ（ＳＰＭ）制御部１８２と、ポジション情報メモリ１８３と、ＡＧＣ情報メモリ１８４と、書き戻し判定部１８５と、ライトリトライ制御部１８６と、ライト制御部１８７とを備える。
【００４２】
ＶＣＭ制御部１８１は、コントロール回路１６０からサーボ信号を取得し、取得したサーボ信号に基づいて磁気ディスク上のデータの書き込み対象となるトラックあるいはデータの読み込み対象となるトラックにヘッド（ヘッド１１０ａあるいはヘッド１１０ｂ）が移動するように、コントロール回路１６０に制御命令を出力する処理部である。また、ＶＣＭ制御部１８１は、コントロール回路１６０から取得したサーボ信号をポジション情報メモリ１８３に記録する。
【００４３】
ＳＰＭ制御部１８２は、スピンドルモータ１２０の回転数を調整するための制御命令をコントロール回路１６０に出力する処理部である。ポジション情報メモリ１８３は、サーボフレームごとのオフトラック量のデータを含んだサーボ信号を記録するメモリである。このサーボ信号は、ＶＣＭ制御部１８１によって記録される。また、ＡＧＣ情報メモリ１８４は、コントロール回路１６０から出力されるサーボＡＧＣ値をサーボフレームごとに記録するメモリである。
【００４４】
書き戻し判定部１８５は、ポジション情報メモリ１８３に記録されたサーボ信号に基づいて、データの書き戻しをおこなうか否かを判定し、データの書き戻しをおこなう場合には、書き戻しをおこなうセクタの数を判定する処理部である。
【００４５】
また、書き戻し判定部１８５は、ライト（Ｗｒｉｔｅ）が失敗した原因に基づいて書き戻しを行うか否かを判定し、書き戻しを行うセクタ数を判定する。書き戻し判定部１８５は、ショックセンサ（図示しない）から検出される衝撃に関する情報、各回路から出力される回路の不具合に関する回路情報、オフトラック量の情報を取得してエラー原因を判定する。
【００４６】
この書き戻し判定部１８５は、エラーの原因がオフトラック量であると判定した場合、サーボフレームごとのオフトラック量に基づいて、書き戻しをおこなうか否かを判定する第１の判定処理のケースと、ヘッドが次に到達するサーボフレームのオフトラック量を予測して、書き戻しをおこなうか否かを判定する第２の判定処理のケースとをおこなう。以下において、第１の判定処理、第２の判定処理の順に具体的に説明する。
【００４７】
図３は、第１の判定処理を説明するための図である。まず、書き戻し判定部１８５は、ポジション情報メモリ１８３に記録されたサーボ信号を取得し、サーボフレームごとにオフトラック量が規定値（図３に示すWrite  Offtrack  Slice）以上となっているか否かを判定する。そして、書き戻し判定部１８５は、書き戻しをおこなうと判定する。
【００４８】
第１の判定処理において、書き戻し判定部１８５は、書き戻しをおこなうと判定した後に、書き戻しをおこなうセクタ数を判定する。図３では一例として、サーボフレームＳＶ（ｎ）において、オフトラック量が規定値を超えた場合（ライトフォールトが発生した場合）を示している。
【００４９】
図３に示す「Ｃａｓｅ１」の場合は、サーボトラックＳＶ（ｎ）の時点でのオフトラック量が、規定値を大きく上回っているため、サーボフレームＳＶ（ｎ−１）を含むようなセクタ、すなわち、サーボフレームＳＶ（ｎ−１）からＳＶ（ｎ）間の全てのセクタに対して書き戻しをおこなうと判定する。（例えば、書き戻し判定部１８５は、書き戻すセクタ数を５と判定する。）
【００５０】
一方、図３に示す「Ｃａｓｅ２」の場合は、サーボトラックＳＶ（ｎ）の時点でのオフトラック量が規定値以上であるが、オフトラック量はそれほど大きくない。このような場合は、サーボフレームＳＶ（ｎ−１）直後のデータセクタのオフトラック量は小さく、書き戻しを実行する必要がない。そこで、「Ｃａｓｅ２」の場合、書き戻し判定部１８５は、サーボフレームＳＶ（ｎ−１）からＳＶ（ｎ）間の全てのセクタに対して書き戻しを実行するのではなく、一部分のセクタに対して書き戻しをおこなうと判定する。（例えば、書き戻し判定部１８５は、書き戻すセクタ数を４と判定する。）
【００５１】
ここで、Ｃａｓｅ１およびＣａｓｅ２の分類方法について具体的に説明する。書き戻し判定部１８５は、サーボトラックＳＶ（ｎ）のオフトラック量をＰｏｓ（ｎ）とし、ＳＶ（ｎ−１）とＳＶ（ｎ）との真ん中のオフトラック量Ｐｏｓ（ｎ−０．５）を線形補間によって求め、求めた線形補間値に基づいてライトフォールト発生時のケースをＣａｓｅ１あるいはＣａｓｅ２に分類する。
【００５２】
Ｐｏｓ（ｎ−０．５）を線形補間によって算出する具体的な算定式は、
Pos(n-0.5)=((Pos(n)-Pos(n-1)/2)+Pos(n-1))
によって表すことができる。
【００５３】
そして、書き戻し判定部１８５は、Ｐｏｓ（ｎ−０．５）の値が規定値（Write  Offtrack  Slice）以上の場合には、サーボトラックＳＶ（ｎ−１）直後に書き込まれたデータのオフトラック量が大きいと考えられるため、Ｃａｓｅ１とする。
【００５４】
一方、書き戻し判定部１８５は、Ｐｏｓ（ｎ−０．５）の値が規定値（Write  Offtrack  Slice）よりも小さい場合には、サーボトラックＳＶ（ｎ−１）直後に書き込まれたデータのオフトラック量が小さいと考えられるため、Ｃａｓｅ２とする。
【００５５】
続いて、第２の判定処理について説明する。図４は、第２の判定処理を説明するための図である。書き戻し判定部１８５は、第２の判定処理において、ポジション情報メモリ１８３に記録されたサーボ信号に基づいて、次のサーボフレームにおけるオフトラック量を算出（予測）し、算出したオフトラック量が規定値（Write  Offtrack  Predetect  Slice）以上となるか否かを判定し、規定値以上となる場合には、ライト（Ｗｒｉｔｅ）処理を中断し、再書き込み及び書き戻しをおこなうと判定する。
【００５６】
ここで、現在のサーボフレームをＳＶ（ｎ）とすると、予測すべきオフトラック量は、サーボフレームＳＶ（ｎ＋１）のオフトラック量となる。次のサーボフレームにおけるオフトラック量を算出する算定式は、どのような算定式を用いても構わないが、例えば、
SV(n+1)=SV(n)+(SV(n)-SV(n-1))
によって算出することができる。
【００５７】
そして、書き戻し判定部１８５は、第２の判定処理において、ライト（Ｗｒｉｔｅ）を中断すると判定した場合には、現在のサーボフレーム直後に書き込まれたデータセクタから書き戻しをおこなうと判定する。例えば、現在のサーボフレームがＳＶ（ｎ）の場合には、ＳＶ（ｎ）直後を含むデータセクタから書き戻しをおこなう。（例えば、書き戻し判定部１８５は、書き戻すセクタ数を２あるいは１と判定する。）
【００５８】
なお、ここでは、算定式を利用して、次のサーボフレームにおけるオフトラック量を予測したがこれに限定されるのもではなく、オブザーバによるヘッドのポイント予測をおこない、次のオフトラック量を予測して、ライト処理を中断し、再書き込みおよび書き戻しを行うか否かを判定してもよい。
【００５９】
また、書き戻し判定部１８５は、ライトを中断した原因によって書き戻しのセクタ数を判定する。例えば、磁気ディスク装置１００に対する衝撃を検出するショックセンサからのショック検出信号やヘッドアンプ回路１４０に不具合が発生したか否かのアンプ情報などの回路の不具合に関する回路情報などに基づき、いずれか１つもしくはこれらの組合せでエラー原因を判別し、書き戻し対象となるセクタ数を判定する。この場合の判定基準の一例を示すと、磁気ディスク装置１００に衝撃が印加され、ヘッドアンプ回路１４０にエラーが発生した場合（エラー原因が磁気ディスク装置１００に対する衝撃および回路の不具合である場合）には、書き戻し判定部１８５は、書き戻しするセクタ数を「２」とする。また、ヘッドアンプ回路１４０のエラーあるいは磁気ディスク装置１００に対する衝撃印加のいずれか一方が発生した場合（エラー原因が、磁気ディスク装置１００に対する衝撃あるいは回路の不具合である場合）には、書き戻し判定部１８５は、書き戻しするセクタ数を「１」とする。
【００６０】
このように、ショックセンサからの信号およびヘッドアンプ回路１４０からのアンプ情報などを更に考慮して、エラー原因を判別し、セクタ数を判定することによって、より正確に書き戻しを行うセクタ数を判定することができ、効率よく書き戻しを行うことができる。
【００６１】
図２の説明に戻ると、ライトリトライ制御部１８６は、書き戻し判定部１８５に対して書き戻しをおこなうか否かの問い合わせをおこなう処理部である。このライトリトライ制御部１８６は、書き戻し判定部１８５が、書き戻しをおこなうと判定している場合には、書き戻しが必要となるセクタ数を書き戻し判定部１８５から取得し、取得したセクタ数をリトライ条件としてライト制御部１８７に出力する。
【００６２】
ライト制御部１８７は、データの書き戻しを実行する場合に、リトライ条件をハードディスクコントローラ１７０に出力し、ライトリトライを実行させる処理部である。なお、このライト制御部１８７は、書き戻しを行うか否かの問い合わせをライトリトライ制御部１８６に出力し、リトライ条件をライトリトライ制御部１８６から取得した場合に、ライトリトライを実行すると判定し、リトライ条件のデータをハードディスクコントローラ１７０に出力する。
【００６３】
ＲＯＭ１９０は、制御部１８０による各種処理に必要なデータおよびプログラムを記録した記憶装置である。
【００６４】
つぎに、各書き戻しセクタ数によるライトリトライ時のライトゲートとサーボフレームのタイミングについて説明する。図５は、各書き戻しセクタ数によるライトリトライ時のライトゲートとサーボフレームのタイミングの一例を示す図である。図５の１段目に示すＳＧはサーボゲートを示し、このサーボゲートの値が「High」になっている時点において、ヘッドがサーボフレーム上に位置していることとなる。また、ＳＧ上の「Offtrack  judge」において、ライトフォールトが発生しているか否かが判定される。この「Offtrack  judge」は、ＳＧが「High」になる時点が、「Offtrack  judge」おこなうためのトリガとなる。
【００６５】
図５の２段目に示すＳＣＴＰは、磁気ディスク上のセクタを示しており、３段目のＷＧはライトゲートをしており、４段目のＷＦＬＴは、ライトフォールトの発生タイミングを示している。同図に示す例では、ＳＣＴＰの「ｍ＋６」と「ｍ＋７」との間でライトフォールトが発生している。
【００６６】
図５に示すレベル１リトライＷＧ〜レベル５リトライＷＧは、各書き戻しセクタ数に対応するライトゲートの信号を示している。レベル１リトライＷＧは、書き戻しを実行するセクタ数が「１」（図５に示す例では、ＳＣＴＰ「ｍ＋６」から書き戻しをおこなう）であり、レベル２リトライＷＧは、書き戻しを実行するセクタ数が「２」（図５に示す例では、ＳＣＴＰ「ｍ＋５」から書き戻しをおこなう）であり、レベル３リトライＷＧは、書き戻しを実行するセクタ数が「４」（図５に示す例では、ＳＣＴＰ「ｍ＋３」から書き戻しをおこなう）である。
【００６７】
また、レベル４リトライＷＧは、書き戻しを実行するセクタ数が「５」（図５に示す例では、ＳＣＴＰ「ｍ＋１」から書き戻しをおこなう）であり、レベル５リトライＷＧは、Ｐｏｓ（ｎ−２）を跨ぐ位置から書き戻しが実行される。
【００６８】
上述した書き戻し判定部１８５が、第１の判定処理において、「Ｃａｓｅ１」であると判定した場合には、磁気ディスク装置１００は、レベル４リトライＷＧによってデータの書き戻しを実行し、「Ｃａｓｅ２」であると判定した場合には、レベル３リトライＷＧによって書き戻しを実行する。
【００６９】
また、書き戻し判定部１８５が、第２の判定処理において書き戻しを実行すると判定した場合には、磁気ディスク装置１００は、レベル２リトライＷＧあるいはレベル１リトライＷＧによって書き戻しを実行する。
【００７０】
従来では、常にレベル４リトライＷＧあるいはレベル５リトライＷＧによって、データの書き戻しを実行していたが、本発明にかかる磁気ディスク装置１００は、状況に応じてセクタ数を変更するので、書き戻しを無駄に行って磁気ディスク装置１００の性能を低下させることを防止することができる。
【００７１】
つぎに、磁気ディスク装置１００が書き戻しのセクタ数を判定する処理手順について説明する。図６は、磁気ディスク装置１００が書き戻しのセクタ数を判定する処理手順を示すフローチャートである。同図に示すように、磁気ディスク装置１００は、書き戻し判定部１８５がポジション情報メモリ１８３からサーボ信号を取得してライトフォールトが発生したか否かを判定し（ステップＳ１０１）、ライトフォールトが発生していない場合には（ステップＳ１０２，Ｎｏ）、ステップＳ１０１に移行する。
【００７２】
一方、ライトフォールトが発生している場合には、書き戻し判定部１８５は、各サーボフレームに対応するオフトラック量をポジション情報メモリ１８３から取得し（ステップＳ１０３）、書き戻しを行うセクタ数を判定する（ステップＳ１０４）。このステップＳ１０４において、書き戻し判定部１８５は、第１の判定処理もしくは第２の判定処理を行い、書き戻しのセクタ数を判定する。
【００７３】
そして、ライト制御部１８７は、書き戻し判定部１８５から、ライトリトライ制御部１８６を介して、書き戻しを行うセクタ数を取得し、ライトリトライを実行する（ステップＳ１０５）。
【００７４】
このように、書き戻し判定部１８５が、ライトフォールトが発生した場合に、書き戻しを行うセクタ数を判定し、ライト制御部１８７が書き戻しを実行するので、磁気ディスク装置１００の性能を向上させることができる。
【００７５】
上述してきたように、本実施例にかかる磁気ディスク装置１００は、書き戻し判定部１８５が、各サーボフレームに対応するオフトラック量を含んだサーボ信号をポジション情報メモリ１８３から取得し、取得したサーボ信号に基づいてライトフォールトが発生したか否かを判定する。そして、ライトフォールトが発生した場合には、書き戻し判定部１８５が書き戻しを行うセクタ数を判定し、ライト制御部１８７がハードディスクコントローラ１７０を制御して書き戻し判定部１８５によって判定されたセクタ数に対応させて書き戻しを実行するので、不必要な書き戻しがなくなり、磁気ディスク装置の性能を向上させることができる。
【００７６】
また、本実施例にかかる磁気ディスク装置１００が不必要な書き戻しをなくすことによって、書き戻し対象となるセクタが複数のサーボフレームを跨ぐことがなくなり、リトライ時の書き戻しを連続で成功させるべきサーボフレームの数を減らすことができるので、振動時等の外乱印加時の性能耐性を向上させることができる。
【００７７】
ところで、上記実施例で説明した各種の処理は、予め用意されたプログラムを、磁気ディスク装置１００に備えられたＣＰＵ（Central  Processing  Unit）（若しくは、ＭＣＵ（Micro  Control  Unit）やＭＰＵ（Micro  Processing  Unit）などの処理装置）で実行することによって実現することができる。図２に示す例では、上述した各種の処理を実現する各種のプログラムがＲＯＭ１９０に記憶されており、制御部がＲＯＭ１９０に記録された各種のプログラムを読み出して実行することにより、上述した各種の処理部の機能を実現する各種プロセスが起動される。
【００７８】
なお、これらの各種プログラムは、必ずしも最初からＲＯＭ１９０に記録させておく必要はない。例えば、ホストコンピュータに挿入されるフレキシブルディスク（ＦＤ）や、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、ホストコンピュータの内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータに接続される「他のコンピュータ（またはサーバ）」などに各種プログラムを記憶しておき、コンピュータがこれらから各種プログラムを読み出して実行するようにしてもよい。
【００７９】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施例にて実施されてもよいものである。
【００８０】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。
【００８１】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８２】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００８３】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８４】
（付記１）記憶媒体に対するデータの書き込みエラーが発生した場合にデータの書き戻しをおこなう記憶装置を制御する制御装置であって、
データの書き込みエラーが発生した原因を判別するエラー原因判別部と、
前記エラー原因判別部により判別されたエラー原因に応じて、データの書き戻しを行うセクタの数を判定するセクタ数判定部と、
を備えたことを特徴とする制御装置。
【００８５】
（付記２）前記エラー原因判別部は、トラック中心とヘッドとのずれ量を示すオフトラック量、衝撃を検出するショックセンサの検出結果、回路の不具合に関する回路情報の少なくとも一つに基づいて、エラー原因を判別することを特徴とする付記１に記載の制御装置。
【００８６】
（付記３）前記記憶媒体上に記憶されたサーボフレームを用いて該記憶媒体上のトラック中心とヘッドとのずれ量を示すオフトラック量を前記サーボフレームごとに検出するオフトラック量検出部を備え、前記セクタ数判定部は、前記オフトラック量検出部によって検出されたオフトラック量に基づいてデータの書き戻しを行うセクタの数を判定することを特徴とする付記２に記載の制御装置。
【００８７】
（付記４）前記セクタ数判定部は、前記記憶装置に対する衝撃を検出するショックセンサから出力される当該記憶装置に対する衝撃のデータおよびヘッドに対する書き込み用の信号を処理するヘッドアンプに不具合が発生したか否かを示すアンプ情報に基づいて、書き戻しをおこなうセクタ数を判定することを特徴とする付記１、２または３に記載の制御装置。
【００８８】
（付記５）記憶媒体に対するデータの書き込みエラーが発生した場合にデータの書き戻しをおこなう記憶装置であって、
データの書き込みエラーが発生した原因を判別するエラー原因判別部と、
前記エラー原因判別部により判別されたエラー原因に応じて、データの書き戻しを行うセクタの数を判定するセクタ数判定部と、
を備えたことを特徴とする記憶装置。
【００８９】
（付記６）前記エラー原因判別部は、トラック中心とヘッドとのずれ量を示すオフトラック量、衝撃を検出するショックセンサの検出結果、回路の不具合に関する回路情報の少なくとも一つに基づいて、エラー原因を判別することを特徴とする付記５に記載の記憶装置。
【００９０】
（付記７）前記記憶媒体上に記憶されたサーボフレームを用いて該記憶媒体上のトラック中心とヘッドとのずれ量を示すオフトラック量を前記サーボフレームごとに検出するオフトラック量検出部を備え、前記セクタ数判定部は、前記オフトラック量検出部によって検出されたオフトラック量に基づいてデータの書き戻しを行うセクタの数を判定することを特徴とする付記６に記載の記憶装置。
【００９１】
（付記８）前記セクタ数判定部は、前記記憶装置に対する衝撃を検出するショックセンサから出力される当該記憶装置に対する衝撃のデータおよびヘッドに対する書き込み用の信号を処理するヘッドアンプに不具合が発生したか否かを示すアンプ情報に基づいて、書き戻しをおこなうセクタ数を判定することを特徴とする付記５、６または７に記載の記憶装置。
【００９２】
（付記９）記憶媒体に対するデータの書き込みエラーが発生した場合にデータの書き戻しをおこなう書き戻し実行プログラムであって、
データの書き込みエラーが発生した原因を判別するエラー原因判別手順と、
前記エラー原因判別手順により判別されたエラー原因に応じて、データの書き戻しを行うセクタの数を判定するセクタ数判定手順と、
をコンピュータに実行させることを特徴とする書き戻し実行プログラム。
【００９３】
（付記１０）前記エラー原因判別手順は、トラック中心とヘッドとのずれ量を示すオフトラック量、衝撃を検出するショックセンサの検出結果、回路の不具合に関する回路情報の少なくとも一つに基づいて、エラー原因を判別することを特徴とする付記９に記載の書き戻し実行プログラム。
【産業上の利用可能性】
【００９４】
以上のように、本発明にかかる制御装置および記憶装置は、書き込みエラーなどが発生した場合にデータの書き戻しを実行する記憶装置などに対して有用であり、特に、記憶装置の性能を低下させることなく効率的に書き戻しを実行する必要がある場合に適している。
【図面の簡単な説明】
【００９５】
【図１】本実施例にかかる磁気ディスク装置の概要および特徴を説明するための説明図である。
【図２】本実施例にかかる磁気ディスク装置の構成を示す機能ブロック図である。
【図３】第１の判定処理を説明するための図である。
【図４】第２の判定処理を説明するための図である。
【図５】各書き戻しセクタ数によるライトリトライ時のライトゲートとサーボフレームのタイミングの一例を示す図である。
【図６】磁気ディスク装置が書き戻しのセクタ数を判定する処理手順を示すフローチャートである。
【符号の説明】
【００９６】
１００    磁気ディスク装置
１１０    ヘッドアクチュエータ
１２０    スピンドルモータ
１３０    モータドライバ回路
１４０    ヘッドアンプ回路
１５０    Ｒ／Ｗ回路
１６０    コントロール回路
１７０    ハードディスクコントローラ
１８０    制御部
１８１    ＶＣＭ制御部
１８２    ＳＰＭ制御部
１８３    ポジション情報メモリ
１８４    ＡＧＣ情報メモリ
１８５    書き戻し判定部
１８６    ライトリトライ制御部
１８７    ライト制御部
１９０    ＲＯＭ
【図１】
2008059634.tif 000003
【図２】
2008059634.tif 000004
【図３】
2008059634.tif 000005
【図４】
2008059634.tif 000006
【図５】
2008059634.tif 000007
【図６】
2008059634.tif 000008