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