(57)【要約】    【課題】異常振動を受けてもデータが喪失するようなエラーを回避してデータ保存の信頼性を向上する。    【解決手段】  キャッシュライト制御部４６は上位装置からライトコマンドに対しデータをバッファメモリ３８に格納してコマンド正常終了を応答し、その後にバッファメモリ３８のデータをディスク媒体２０に書込む。振動環境測定部４８は装置に振動が加わる環境を測定する。振動対策処理部５０は、振動環境測定部４８による測定環境からディスク媒体に対する書込みを失敗させる異常振動環境を判定した際に、ライトキャッシュ制御部４８を無効化し、そのときバッファメモリ３８にライトキャッシュデータが残っていれば、一時保存領域に書込み、異常振動環境が判定されなくなったら、ディスク媒体の本来の場所に書き戻す。    【選択図】      図１
2006269006.tif 000002
【特許請求の範囲】
【請求項１】
上位装置からのライトコマンドに基づいて記憶媒体にデータを書込む記憶装置に於いて、
前記上位装置からのライトコマンドに対しデータをバッファに格納してコマンド正常終了を応答し、その後に前記バッファのデータを前記記憶媒体に書込むライトキャッシュ制御部と、
装置の振動環境を測定する振動環境測定部と、
前記振動環境測定部による測定振動環境から前記記憶媒体に対する書込みを失敗させる可能性の高い異常振動環境を判定した際に、前記ライトキャッシュ制御部を無効化する振動対策処理部と、
を備えたことを特徴とする記憶装置。
【請求項２】
請求項１記載の記憶装置に於いて、前記振動対策処理部は、
前記ライトキャッシュ制御部を無効化した際に、前記バッファに記憶媒体への書戻し待ちのライトデータが残っていた場合、一時保存領域に前記ライトデータを保存し、
前記ライトキャッシュ制御部の無効化を解除した状態で、前記一時保存領域に格納しているデータを記憶媒体に書き戻すことを特徴とする記憶装置。
【請求項３】
請求項１記載の記憶装置に於いて、前記振動対策処理部は、前記記憶媒体のシステム領域にデータを書込む際に、前記異常振動環境を判定していた場合、一時保存領域に前記データを保存し、前記異常振動環境が判定されなくなった後に、前記一時保存領域から前記記憶媒体のシステム領域に前記データを書き戻すことを特徴とする記憶装置。
【請求項４】
上位装置からのライトコマンドに基づいて記憶媒体にデータを書込む記憶装置の制御方法に於いて、
前記上位装置からのライトコマンドに対しデータをバッファに格納してコマンド正常終了を応答し、その後に前記バッファのデータを前記記憶媒体に書込むライトキャッシュ制御ステップと、
装置の振動環境を測定する振動環境測定ステップと、
前記振動環境測定ステップによる測定振動環境から前記記憶媒体に対する書込みを失敗させる可能性の高い異常振動環境を判定した際に、前記ライトキャッシュ制御ステップを無効化する振動対策処理ステップと、
を備えたことを特徴とする記憶装置の制御方法。
【請求項５】
上位装置からのライトコマンドに基づいて記憶媒体にデータを書込む記憶装置のコンピュータに、
前記上位装置からのライトコマンドに対しデータをバッファに格納してコマンド正常終了を応答し、その後に前記バッファのデータを前記記憶媒体に書込むライトキャッシュ制御ステップと、
装置の振動環境を測定する振動環境測定ステップと、
前記振動環境測定ステップによる測定振動環境から前記記憶媒体に対する書込みを失敗させる可能性の高い異常振動環境を判定した際に、前記ライトキャッシュ制御ステップを無効化する振動対策処理ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常振動を判定してディスク媒体に対するライトフォルトエラーを回避する記憶装置、制御方法及びプログラムに関し、特に、上位装置からのライトコマンドに対するライトキャッシュ機能を制御して異常振動によるライトフォルトエラーを回避する記憶装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
現在、磁気ディスク装置の用途が拡大の傾向にあり、カーナビゲーションシステムのような車載装置、ＤＶＤレコーダのような家庭電化製品でも用いられるようになってきている。また磁気ディスク装置の小型化も進み、データを記録しているトラックそのものが細くなると同時に、トラック間隔も狭くなってきている。
【０００３】
このような状況において、振動を受ける環境の下に磁気ディスク装置が置かれる状況も想定されるようになり、このような環境のもとで、いかにしてデータを保持するかが重要な課題となりつつある。
【０００４】
従来の磁気ディスク装置では、ヘッドが媒体上に書き込まれているサーボ情報を読み出して復調することにより、ヘッドとトラック中央とのずれを検出し、トラック上の中央部にヘッドが位置するようにトラック追従制御（オントラック制御）を行っている。
【０００５】
ヘッドはボイスコイルモータで駆動されるロータリアクチュエータで媒体記録面に対し支持されており、外部から一定以上の振動が加わって揺れると、ヘッドはトラック追従制御を行いつつもヘッドのずれ量が大きくなる。
【０００６】
このような状況で装置に加わる揺れが更に大きくなると、ヘッドのずれ量が許容限界を越え、媒体に対するデータ書込みはライトフォルトエラーとなって失敗することがある。
【０００７】
このような従来の磁気ディスク装置では、ライトフォルトエラーが起きると、一定回数のリトライを繰り返し、それでもエラー回復できない場合には、媒体欠陥と見なして交代処理が実行される。
【０００８】
しかし、ライトフォルトエラーの原因が振動の場合、交代先への書込み、あるいは交代処理を行うために必要な情報を格納した交代管理情報のシステム領域への書き込みの場合にも、書込み失敗が起きることも予想とされる。その結果、最終的にデータが書き込めない場合、データを保存する手段がないために最終的にデータは失われる。
【０００９】
一方、磁気ディスク装置は、通常、ライトキャッシュ機能を有効に設定して使用している。ライトキャッシュ機能は、上位装置からライトコマンドを受けた際に、バッファにライトデータを書き込んだ状態で上位装置にコマンドの正常終了を応答し、その後に、バッファのライトデータを媒体に書込む機能である。このライトキャッシュ機能を使用することで、上位装置のアクセス性能を向上できる。
【特許文献１】特開２００２−７４９３４号公報
【特許文献２】特開２００１−１４７８３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、このような従来の磁気ディスク装置にあっては、ライトキャッシュ機能を使用した状態で振動によるライトフォルトエラーによって最終的にデータが失われた場合、上位装置からのライトコマンドは既に正常終了となっているため、エラー終了を報告することができず、上位装置はエラー終了に対しリトライ処理を行うことができない。つまり、上位装置側でも磁気ディスク装置側でもエラーをリカバリーすることができず、データが失われてしまうという懸念が常に存在することになる。
【００１１】
このようにデータが失われた場合、従来の磁気ディスク装置では、エラー報告のタイミングが遅れることになるが、書込みの最終的な失敗の後に上位装置から受け取ったコマンドに対してエラー終了を通知し、その後はライトキャッシュ機能を禁止したり、書込み要求そのものを禁止にしたりする処理が採られている。
【００１２】
一方、従来の磁気ディスク装置には、センサ等により異常振動を検出した際に、書込み動作を禁止するのもあるが、ヘッドの振動による位置ずれを判断していないため、ライトフォルトエラーとならないような振動でも書込み動作を禁止する場合があり、また振動が続いている間は上位装置の入出力処理が完全に禁止されるため、磁気ディスク装置の機能が一時的に失われることなり、振動を受け易い環境で使用した際の処理性能が著しく低下する問題がある。
【００１３】
本発明は、異常振動を受けてもデータが喪失するようなエラーを確実に回避してデータ保存の信頼性を向上する記憶装置、制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
図１は本発明の原理説明である。本発明は、記憶装置を提供する。即ち、本発明は、上位装置からのライトコマンドに基づいて記憶媒体にデータを書込む記憶装置に於いて、上位装置からのライトコマンドに対しデータをバッファメモリ３８に格納してコマンド正常終了を応答し、その後にバッファメモリ３８のデータを前記記憶媒体に書込むライトキャッシュ制御部４６と、装置の振動環境を測定する振動環境測定部４８と、振動環境測定部４８による測定振動環境から記憶媒体に対する書込みを失敗させる可能性の高い異常振動環境を判定した際に、ライトキャッシュ制御部４６を無効化する振動対策処理部５０とを備えたことを特徴とする。
【００１５】
振動対策処理部５０は、ライトキャッシュ制御部４６を無効化した後に、異常振動環境が判定されなくなった場合にライトキャッシュ制御部の無効化を解除する。
【００１６】
振動環境測定部４８は、記憶媒体のサーボ情報に基づいてヘッドのトラック追従制御中に検出されるトラック中心位置に対するヘッド位置のずれ量と所定の閾値との比較結果を記録し、振動対策処理部５０は、振動環境測定部４８により記録されたヘッドずれ量の閾値を越える回数が１回転当り所定数以上で且つ複数回転に亘り続いた場合に、異常振動環境を判定してライトキャッシュ制御部４６を無効化し、ライトキャッシュ制御部４６を無効化した後に、振動環境測定部４８により記録されたヘッドずれ量の閾値を越える回数が１回転当り所定の閾値を越えなかった場合にライトキャッシュ制御部４６の無効化を解除する。
【００１７】
振動対策処理部５０は、ライトキャッシュ制御部４６を無効化した際に、バッファメモリ３８にディスク装置への書戻し待ちのライトデータが残っていた場合、一時保存領域６４にライトデータを保存し、ライトキャッシュ制御部４６の無効化を解除した状態で、一時保存領域６４に格納しているデータを記憶媒体に書き戻す。
【００１８】
振動対策処理部５０は、記憶媒体のシステム領域にデータを書込む際に、異常振動環境を判定していた場合、一時保存領域６４にデータを保存し、異常振動環境が判定されなくなった後に、一時保存領域６４から記憶媒体のシステム領域にデータを書き戻す。
【００１９】
一時保存領域６４は記憶媒体に設けられ、記憶媒体の一時保存領域６４はトラック幅を通常の保存領域に対し広くしている。一時保存領域６６は記憶装置内の不揮発メモリに設けるようにしていも良い。
【００２０】
本発明は、記憶装置の制御方法を提供する。即ち、本発明は、上位装置からのライトコマンドに基づいて記憶媒体にデータを書込む記憶装置の制御方法に於いて、
上位装置からのライトコマンドに対しデータをバッファに格納してコマンド正常終了を応答し、その後にバッファのデータを前記記憶媒体に書込むライトキャッシュ制御ステップと、
装置の振動環境を測定する振動環境測定ステップと、
振動環境測定ステップによる測定振動環境から記憶媒体に対する書込みを失敗させる可能性の高い異常振動環境を判定した際に、ライトキャッシュ制御ステップを無効化する振動対策処理ステップと、
を備えたことを特徴とする。
【００２１】
本発明は、記憶装置のコンピュータにより実行されるプログラムを提供する。即ち、本発明のプログラムは、上位装置からのライトコマンドに基づいて記憶媒体にデータを書込む記憶装置のコンピュータに、
上位装置からのライトコマンドに対しデータをバッファに格納してコマンド正常終了を応答し、その後にバッファのデータを前記記憶媒体に書込むライトキャッシュ制御ステップと、
装置の振動環境を測定する振動環境測定ステップと、
振動環境測定ステップによる測定振動環境から記憶媒体に対する書込みを失敗させる可能性の高い異常振動環境を判定した際に、ライトキャッシュ制御ステップを無効化する振動対策処理ステップと、
を実行させることを特徴とする。
【００２２】
尚、本発明の制御方法及びプログラムの詳細は、本発明の記憶装置の場合と基本的に同じになる。
【発明の効果】
【００２３】
本発明によれば、トラックセンタに対し追従制御されるヘッドのずれ量から異常振動環境を判定した場合に、ライトキャッシュ制御を行わないように無効化することで、上位装置からのライトコマンドに対応して異常振動で書込みに失敗した場合、エラーを通知することができるようになり、上位装置からのリトライにより、異常振動が収まったタイミングでの正常な書込み動作が期待できる。
【００２４】
また、ライトキャッシュ制御を行わないように無効化する以前に上位装置からバッファに受領済みのライトキャッシュデータについては、異常振動環境下でも記憶媒体のトラック幅を広げた一時保存領域又は装置内の不揮発性メモリに書込み、異常振動環境が解消した後に、記憶媒体に書き戻すことで、ユーザデータを保証することができ、エラーにより最終的にデータが失われてしまうことを確実に回避できる。
【００２５】
また記憶媒体のシステム領域に書込む記憶装置の制御情報についても、異常振動環境を判定した際には、記憶媒体のトラック幅を広げた一時保存領域又は装置内の不揮発性メモリに書込み、異常振動環境が解消した後に記憶媒体のシステム領域に書き戻すことで、システム情報を確実に更新できるため、振動に対する記憶装置の信頼性を向上し、記憶装置を使用する機器の故障も軽減することができる。
【発明を実施するための最良の形態】
【００２６】
図２は外部振動によりライトフォルトエラーの可能性が高い使用状況に対応する振動対策機能を備えた本発明が適用される磁気ディスク装置のブロック図である。
【００２７】
図２において、ハードディスクドライブ（ＨＤＤ）として知られた磁気ディスク装置１０は、ディスクエンクロージャ１４と制御ボード１２で構成される。ディスクエンクロージャ１４にはスピンドルモータ１６が設けられ、スピンドルモータ１６の回転軸にディスク媒体（記憶媒体）２０を装着し、一定時間例えば４２００ｒｐｍで回転させる。
【００２８】
またディスクエンクロージャ１４にはボイスコイルモータ１８が設けられ、ボイスコイルモータ１８はヘッドアクチュエータのアーム先端にヘッド２２−１，２２−２を搭載しており、ディスク媒体２０の記録面に対するヘッドの位置決めを行う。なお、ヘッド２２−１，２２−２にはライトヘッドとリードヘッドが一体化されて搭載されている。
【００２９】
ヘッド２２−１，２２−２はヘッドＩＣ２４に対し信号線接続されており、ヘッドＩＣ２４は上位装置となるホストからのライトコマンドまたはリードコマンドに基づくヘッドセレクト信号で１つのヘッドを選択して書込みまたは読出しを行う。またヘッドＩＣ２４には、ライト系についてはライトアンプが設けられ、リード系についてはプリアンプが設けられている。
【００３０】
制御ボード１２にはＭＰＵ２６が設けられ、ＭＰＵ２６のバス２８に対し、ＲＡＭを用いた制御プログラム及び制御データを格納するメモリ３０、ＦＲＯＭ等を用いた制御プログラムを格納する不揮発メモリ３２が設けられている。
【００３１】
またＭＰＵ２６のバス２８には、ホストインタフェース制御部３４、バッファメモリ３８を制御するバッファメモリ制御部３６、ハードディスクコントローラとして機能するフォーマット制御部４０、ライト変調部及びリード復調部として機能するリードチャネル４２、ボイスコイルモータ１８及びスピンドルモータ１６を制御するサーボ制御部４４が設けられている。
【００３２】
磁気ディスク装置１０は、ホストからのコマンドに基づき書込処理及び読出処理を行う。ここで、磁気ディスク装置における通常の動作を説明すると次のようになる。
【００３３】
ホストからのライトコマンドとライトデータをホストインタフェース制御部３４で受けると、ライトコマンドをＭＰＵ２６で解読し、受信したライトデータを必要に応じてバッファメモリ３８に格納した後、フォーマット制御部４０で所定のデータ形式に変換すると共にＥＣＣ処理によりＥＣＣ符号を付加し、リードチャネル４２におけるライト変調系でスクランブル、ＲＬＬ符号変換、更に書込補償を行った後、ライトアンプからヘッドＩＣ２４を介して選択した例えばヘッド２２−１のライトヘッドからディスク媒体２０に書き込む。
【００３４】
このときＭＰＵ２６からＤＳＰなどを用いたサーボ制御部４４にヘッド位置決め信号が与えられており、ボイスコイルモータ１８によりヘッドをコマンドで指示された目標トラックにシークした後にオントラックしてトラック追従制御を行っている。
【００３５】
一方、ホストからのリードコマンドをホストインタフェース制御部３４で受けると、リードコマンドをＭＰＵ２６で解読し、ヘッドＩＣ２４のヘッドセレクトで選択されたリードヘッドから読み出された読出信号をリードアンプで増幅した後に、リードチャネル４２のリード復調系に入力し、パーシャルレスポンス最尤検出（ＰＲＭＬ）などによりリードデータを復調し、フォーマット制御部４０でＥＣＣ処理を行ってエラーを検出訂正した後、バッフメモリ３８にバッファリングし、ホストインターフェース制御部３４からリードデータをホストに転送する。
【００３６】
ＭＰＵ２６にはプログラムの実行により実現される機能として、ライトキャッシュ制御部４６、振動環境測定部４８及び振動対策処理部５０が設けられている。ライトキャッシュ制御部４６は、ホストからのライトコマンドに対し、ライトデータをバッファメモリ制御部３６によりバッファメモリ３８に格納してコマンド正常終了を応答し、その後にバッファメモリ３８のライトデータを、フォーマット制御部４０、リードチャネル４２、ヘッドＩＣ２４を介して、ディスク媒体２０の目標セクタに書き込む。このライトキャッシュ制御部４６の機能は、ホストから有効にするか否かを指定できる。
【００３７】
振動環境測定部４８は、磁気ディスク装置１０の振動環境を測定する。振動環境測定部４８は、ヘッドＩＣ２４により現在選択されているヘッド２２−１または２２−２のトラック追従制御中（オントラック制御中）に検出されるトラック中心位置に対するヘッド位置のずれ量と所定の閾値との比較結果を、ディスク媒体の１回転単位にメモリ３０の測定テーブル５２に測定結果として記録している。
【００３８】
図３は図２の磁気ディスク装置１０に設けたディスク媒体２０の記録面のトラックを１つ取り出しており、トラックにはサーボ情報を記録したサーボ領域５４−１，５４−２，・・・５４−ｎ（図示せず）が一定間隔で円周方向に記録されている。
【００３９】
サーボ領域５４−１，５４−２，・・・５４−ｎ（図示せず）の間はデータ領域５６−１，５６−２，・・・５６−ｎであり、それぞれ複数のセクタに分割されている。サーボ領域５４−１，５４−２，・・・５４−ｎ（図示せず）には、例えばヘッド２２−１のトラックセンタに対する位置ずれ量を検出するサーボ位置情報（バースト）が記録されており、このサーボ領域５４−１をヘッド２２−１のリードヘッドで読み取り、図２のリードチャネル５２で復調することで、トラックセンタに対するヘッドの位置ずれ量を検出できる。
【００４０】
図２に示したサーボ制御部４４は、図３のサーボ領域５４−１〜５４−ｎ（図示せず）の読取りに基づいてヘッドの位置ずれ量を検出するごとに、ずれ量をゼロとするようにボイスコイルモータ１８を制御して、ヘッド２２−１をトラックに追従させるフィードバック制御を行っている。
【００４１】
図２のＭＰＵ２６に設けた振動環境測定部４８は、図４の測定テーブル５２に振動環境を測定して記録している。
【００４２】
図４において、測定テーブル５２には図３のヘッド２２−１が現在、追従制御しているトラックのサーボ領域５４−１〜５４−ｎ（図示せず）の各サーボ情報の読取りで得られたトラックセンタに対するヘッドの位置ずれ量を所定の閾値と比較した比較結果が、振動環境の測定値として記録される。
【００４３】
この比較結果は、ヘッド位置ずれ量が閾値を超えている場合、ビット「１」を記録し、閾値未満の場合にビット「０」を記録している。また測定テーブル５２には、現在ポインタＰ１を起点にディスク１回転分のｎ個のサーボ情報から得られた位置ずれ量と閾値の比較結果を記録した現在１回転分データ５５−１と、１回転前ポインタＰ２を起点として同じくｎ個のサーボ情報から得られた位置ずれ量と閾値の比較結果である前回１回転分データ５５−２を記録している。
【００４４】
したがって、サーボ情報を読み取るごとに現在ポインタＰ１で示す位置に検出した位置ずれ量と閾値の比較結果としてビット「１」または「０」を格納し、また異常振動環境の判定については、現在ポインタＰ１を起点に、現在１回転分データ５５−１と１回転前ポインタＰ２を起点とした前回１回転分データ５５−２を参照し、ライトフォルエラーの可能性が高い異常振動環境か否かの判定に用いる。
【００４５】
ここでライトフォルトエラーは、ヘッドのトラック追従制御中にトラックセンタに対するヘッドのずれ量が所定の閾値を超えた場合にライト動作のみが出来ないように回路をマスクし、このマスク状態でライト動作が行われた場合に発生させるエラーである。
【００４６】
再び図２を参照するに、ＭＰＵ２６に設けた振動対策処理部５０は、振動環境測定部４８による測定振動環境、即ちメモリ３０の測定テーブル５２の測定内容から、ディスク媒体２０に対するホストからのライトコマンドに基づく書込みを失敗させる可能性の高い異常振動環境を判定した際に、ライトキャッシュ制御部４６を無効化させる。
【００４７】
即ち振動対策処理部５０にあっては、磁気ディスク装置１０の使用状態において、振動環境測定部４８の測定結果から事前にライトフォルトエラーを誘発し易い異常振動環境に置かれているかどうかを判定し、異常振動環境を判定した場合には、予めライトキャッシュ制御部４６の制御機能を使わないように無効化する機能を提供している。
【００４８】
振動対策処理部５０は、異常振動環境を判定してライトキャッシュ制御部４６を無効化した後についても振動環境測定部４８による測定結果を判定しており、異常振動環境が判定されなくなった場合にはライトキャッシュ制御部４６の無効化を解除することになる。
【００４９】
ここで、振動対策処理部５０による測定テーブル５２の測定結果を用いた異常振動環境の判定条件及び解除条件は、例えば次のようになる。
【００５０】
（１）異常振動環境の判定条件は、図４の測定テーブル５２において、ヘッドずれ量の閾値を超える回数が１回転当たり１回以上で且つ２回転以上に亘り続いた場合とする。
（２）異常振動環境判定の解除条件は、ヘッドずれ量の閾値を超える回数が１回転当たり１回もなかった場合とする。
【００５１】
このような異常振動環境の有無を判定する条件は、磁気ディスク装置１０がライトフォルトエラーを誘発し易い環境に置かれているかどうかの判定であることから、前記（１）（２)の判定条件に限定されず、必要に応じて種々のバリエーションを設定することができる。
【００５２】
更にＭＰＵ２６に設けた振動対策処理部５０にあっては、異常振動環境を判定してライトキャッシュ制御部４６を無効化した際に、バッファメモリ３８にディスク媒体に対する書き戻し待ちのライトキャッシュデータが残っていた場合、異常振動環境ではディスク装置に対しデータを書き込むことはライトフォルトエラーを誘発するためにできないことから、ディスク媒体２０にバッファメモリ３８のライトキャッシュデータを一時的に保存するための一時保存領域を設け、そこに格納する。このライトキャッシュデータの一時保存領域は、ディスク媒体２０以外に例えば不揮発メモリ３２に設けるようにしてもよい。
【００５３】
図５は本発明の磁気ディスク装置１０における一時保存領域のレイアウト説明図である。図５において、磁気ディスク装置１０におけるディスク媒体２０には論理ブロックアドレスＬＢＡ０〜ＬＢＡｎ−１にユーザデータ領域６２が配置されており、ユーザデータ領域６２はホストのＯＳがアクセスできる領域である。これに対し例えば、論理ブロックアドレスＬＢＡ０の手前にシステム領域６０が配置されている。システム領域６０はディスク媒体２０の欠陥セクタの位置情報など、磁気ディスク装置１０の制御に必要な各種の情報を格納している。
【００５４】
これに加え本発明にあっては、例えばユーザデータ領域６２の最後の部分に、異常振動環境の判定でライトキャッシュ制御部４６の制御機能を無効化した際にバッファメモリ３８に残っているキャッシュライトデータを保存するための一時保存領域６４を配置している。更に、必要があれば不揮発メモリ３２の中にキャッシュライトデータを一時的に保存する一時保存領域６６を設けるようにしてもよい。
【００５５】
図６は図５のディスク媒体２０に設けた一時保存領域６４のトラックを、隣接するユーザデータ領域６２のトラックと共に示している。図６において、ユーザデータ領域６２のトラックはトラック幅がＴＰ１であるのに対し、一時保存領域６４のトラックはトラック幅が例えばユーザデータ領域６２のトラック幅ＴＰ１の例えば１．１倍〜３倍程度、フォーマット効率から具体的には２倍となるトラック幅ＴＰ２を持つようにフォーマットしている。
【００５６】
このように一時保存領域６４のトラック幅ＴＰ２を通常のユーザデータ領域６２のトラック幅ＴＰ１に対し例えば２倍というように広めたことで、異常振動環境の判定状態で外部振動によりヘッドがトラックセンタからずれた場合、トラック幅がＴＰ２と十分に広いため、大きくずれたとしてもトラックに正常に書き込むことができる。
【００５７】
このようにトラック幅の広い一時保存領域６４については、トラックセンタからのヘッドのずれ量が大きいときにライトフォルトエラーを判定する閾値を、ユーザデータ領域６２に対し大きめの閾値としており、これによって、振動を受けても一時保存領域６４についてはライトフォルトエラーが発生しにくい条件を設定している。このため外部振動を受けてもライトフォルトエラーの判定によるライト動作を禁止するためのマスク処理を行うことなく、キャッシュライトデータを一時保存領域６４のトラックに書き込むことができる。
【００５８】
一方、不揮発メモリ３２に設けた一時保存領域６６については、異常振動環境の振動とは無関係にライトキャッシュデータを一時保存領域６６に書き込むことが可能である。
【００５９】
更に、図５のディスク媒体２０の一時保存領域６４もしくは不揮発メモリ３２の一時保存領域６６にキャッシュライトデータを書き込んで一時保存した状態にあっては、ライトキャッシュ制御部４６の制御機能は無効化されている。このため、その後に受け取ったライトデータは一時保存領域６４，６６に書き込まれることはない。したがって、一時保存領域６４，６６の容量は、ライトキャッシュ制御部４６を無効化した時点でバッファメモリ３８に残っているキャッシュデータを格納できる容量を保証すればよい。
【００６０】
一時保存領域６４もしくは６６に格納されたライトデータは、異常振動環境がなくなったことが判定されると、ディスク媒体２０のユーザデータ領域６２におけるライトコマンドに基づく目標トラックの目標セクタとなる本来の位置に書き戻す。
【００６１】
更に、図２の振動対策処理部５０にあっては、ディスク媒体２０のユーザデータ格納領域６２に対するライトデータのみならず、システム領域６０に対するシステム情報の書込みについても、異常振動環境を判定した際に一時保存領域６４または６６に格納し、異常振動環境がなくなった後にシステム領域６０に書き戻す振動対策処理を実行する。
【００６２】
即ち磁気ディスク装置１０にあっては、装置の制御に関する情報をホストからのアクセスによるユーザの使用環境下においてもシステム情報としてシステム領域６０に書き込む場合がある。
【００６３】
例えば異常振動環境を判定してライトキャッシュ制御部４６の制御機能を無効化した場合には、ライトコマンドに対しライトデータをバッファメモリ３８に格納することなくディスク媒体に書き込む処理を実行することになり、この場合に振動によるヘッドのずれ量が閾値を超えると、ライト動作のみが実行できないように回路をマスクし、回路のマスク状態でライト動作が行われるとライトフォルトエラーを発生する。
【００６４】
このライトフォルトエラーに対し磁気ディスク装置は、予め定めた回数のリトライ動作を行い、リトライ動作を失敗した場合にはライトフォルトに起因した交替処理を行う。このようなライトフォルトに起因した交替処理を行った場合には、交替先のアドレスなどをシステム領域６０に記録保存しておく必要がある。
【００６５】
しかしながら、異常振動環境を判定した状態では外部振動によってシステム領域６０に対する書込みができない可能性が生ずる。そこで本発明にあっては、異常振動環境の判定状態にあっては、システム領域６０に対するシステム情報の書込み要求に対しシステム情報を一時保存領域６４または６６に書き込んで保存し、異常振動環境がなくなったと判定された後に、一時保存領域６４または６６に保存しているシステム情報をシステム領域６０の本来の場所に書き戻すようにする。
【００６６】
以上のようなＭＰＵ２６に設けた振動対策処理部５０による処理機能は、ライトキャッシュ制御部４６と同様、ホストから動作機能を指定することができ、ホストからの指定を受けた場合にのみ振動対策処理部５０としての処理動作を実行する。もちろん、ホストからの指定によらず、固定的に磁気ディスク装置１０で振動対策処理部５０としての機能を実行するようにしてもよい。
【００６７】
図７は図２のＭＰＵ２６に設けた振動環境測定部４８による測定処理と、振動対策処理部５０における異常振動環境判定処理のフローチャートである。図７の処理は、図３に示したように、ヘッド２２−１でトラックのサーボ領域５４−１〜５４−ｎのサーボ情報を読み取るごとに実行される。
【００６８】
図７において、まずステップＳ１でサーボ情報に基づきトラック中央からのヘッドのずれ量を測定し、ステップＳ２で閾値以上のずれ量の発生か否か判定し、閾値以上のずれ量であれば、ステップＳ３で図４に示したように測定テーブル５２にビット「１」を記録し、閾値未満のずれ量でなければ、ステップＳ４で図４の測定テーブル５２にビット「０」を記録する。
【００６９】
ステップＳ４で現時点の記録位置から遡って連続２回転以上にわたり閾値以上のずれ量が発生している場合、即ち図４の現在１回転分データ５５−１と前回１回転分データ５５−２のそれぞれに少なくとも１つビット「１」が記録されている場合、ステップＳ５に進み、ライトフォルト要因ありを判定する。
【００７０】
一方、ステップＳ２の閾値未満のずれ量の判定結果に基づきステップＳ６で測定テーブルにビット「０」を記録した場合には、ステップＳ７で現在の記録位置から１回転遡った間に１回転以上、閾値以上のずれ量の発生なし、即ちビット「１」の記録がないことを判定すると、ステップＳ８に進み、ライトフォルト要因なしを判定する。このようなステップＳ１〜Ｓ８の処理を、ステップＳ９で停止指示があるまでサーボ情報の読取りごとに繰り返している。
【００７１】
なお図７の処理にあっては、サーボ情報を読み取った時点を起点として、過去の記録位置の２回転分あるいは１回転分遡った記録データについて閾値以上のずれ量の有無の記録結果を判定しているが、１回転分の閾値以上のずれ量を示す記録範囲として、サーボ情報のインデックスを起点とした各回転分の記録範囲について、閾値以上のずれ量の発生があるか否かを判定するようにしてもよい。
【００７２】
図８は図２の振動対策処理部５０の処理機能を用いた本発明による制御処理のフローチャートである。図８において、磁気ディスク装置１０の電源を投入すると、ステップＳ１で初期設定が行われ、ホストからのコマンド処理の可能状態となる。続いて、ステップＳ２で図７の判定結果を参照してライトフォルトの要因があるか否か、即ち異常振動環境か否か判定しており、ライトフォルトの要因があるとステップＳ３に進み、異常振動環境にあるものと判断し、ライトキャッシュ制御部４６の制御機能を無効化する。
【００７３】
続いてステップＳ４で、バッファメモリ３８上に、それまでに受領したライトキャッシュデータが残っているか否かチェックし、ライトキャッシュデータが残っている場合にはステップＳ５に進み、例えば図５に示したディスク媒体２０の一時保存領域６４にライトキャッシュデータを書き込んで保存する。
【００７４】
一方、ステップＳ２でライトフォルトの要因がなく、異常振動環境でないことが判定された場合には、ステップＳ６に進み、例えば図４のディスク媒体２０の一時保存領域６４にデータがあるか否かチェックする。一時保存領域にデータがあった場合には、ステップＳ７でディスク媒体２０のユーザデータ領域６２におけるライトコマンドに基づく目標トラックの目標セクタとなる本来の位置にデータを書き戻す。
【００７５】
続いてステップＳ８で書き戻しの成功か否かをチェックしており、書き戻しに成功すると、ステップＳ９でライトキャッシュ制御部４６を有効化して次の処理に進む。なおステップＳ８で書き戻しに失敗した場合には、この時点でライトフォルトの要因、即ち異常振動環境にあるものと判断し、ステップＳ３に進み、ライトキャッシュ制御を無効化することになる。
【００７６】
以上の処理が終了すると、ステップＳ１０で上位装置からのコマンド受領を判定し、ステップＳ１１でコマンド受領を判定するとステップＳ１２に進み、コマンド処理を実行する。このコマンド処理は、リードコマンドであればディスク媒体からリードデータを読み出して上位装置に応答し、ライトコマンドであれば、そのときライトキャッシュ制御が無効化か有効化かに応じ、それぞれに対応した書込制御を実行する。このようなステップＳ２〜Ｓ１２の処理を、ステップＳ１３で停止指示があるまで繰り返すことになる。
【００７７】
図９は図８のステップＳ１２でライトコマンドを実行するライトコマンド処理のフローチャートである。図９において、まずステップＳ１でライトキャッシュ制御が有効か否かチェックし、有効であった場合にはステップＳ２に進み、ライトデータをバッファメモリ３８に格納して、上位装置に対しコマンド正常終了を応答する。
【００７８】
続いてステップＳ３でライトコマンドに基づき目的トラックへのシーク制御を行ってオントラックし、ステップＳ４でバッファメモリ３８のデータをディスク媒体に書き込む。続いてステップＳ５でライトフォルトエラーの有無をチェックしており、ライトフォルトエラーがなければ一連の処理を終了し、図８のメインルーチンにリターンする。
【００７９】
ステップＳ５でライトフォルトエラーが判定された場合には、ステップＳ６でリトライ回数が設定回数に達するまで、ステップＳ３からのシークとデータ書込みを繰り返す。このとき、外部振動を受けて異常振動環境と判定されるような状況でのライトフォルトエラーであった場合には、リトライ回数を設定回数まで行っても依然としてライトフォルトエラーとなる場合が考えられる。
【００８０】
リトライ回数が設定回数に達すると、ステップＳ７に進み、この状態でディスク装置への書込みは無理であることから、一時保存領域に空きがあるか否かチェックし、もし空きがあれば、ステップＳ８でバッファメモリ３８のキャッシュデータを一時保存領域に書き込んでコマンドを正常終了させ、図８のメインルーチンにリターンする。
【００８１】
一方、ステップＳ１でキャッシュ制御の無効が判定された場合には、ステップＳ９でライトコマンドに基づき目的トラックにシークしてオントラックし、ステップＳ１０でライトデータの書込みを実行する。
【００８２】
続いてステップＳ１１でライトフォルトエラーの有無をチェックし、ライトフォルトエラーがなければライトコマンド処理を正常終了して、図８のメインルーチンにリターンする。
【００８３】
しかしながら、ライトキャッシュ制御を無効とした状態にあっては、ライトフォルトエラーを誘発し易い異常振動環境にあることから、ステップＳ１１でライトフォルトエラーとなる可能性がかなり高く、ライトフォルトエラーとなった場合には、ステップＳ１２でリトライ回数が設定回数に達するまで、ステップＳ９からの目的トラックにシークしてオントラックしてオントラックした後にデータを書き込むリトライ処理を実行する。
【００８４】
しかし、設定回数に亘るリトライ処理によってもライトフォルトエラーが解消されずに書込失敗となった場合には、ステップＳ１３で上位装置にエラーを応答して書込処理を終了し、図８のメインルーチンにリターンする。
【００８５】
このステップＳ１３で書込みに失敗して上位装置にエラーを応答することができれば、エラー応答を受けた上位装置は、その後、リトライ処理を実行してライトコマンドを再発行することとなり、磁気ディスク装置でライトデータがエラーにより失われても上位装置においてライトデータが残っているため、ユーザデータの喪失を起こすことはなく、上位装置のその後リトライにより、エラー終了となったライトデータの再書込みを実行することができる。
【００８６】
図１０は本発明によるシステム情報ライト処理のフローチャートである。図１０において、ステップＳ１でシステム情報の書込要求を判別するとステップＳ２に進み、ライトフォルトの要因があるか否か、即ち異常振動環境か否かチェックし、ライトフォルト要因があった場合には、ステップＳ３に進み、例えば図５のディスク媒体２０の一時保存領域６４にシステム情報を書き込んで保存する。
【００８７】
一方、ステップＳ２でライトフォルトの要因がなくなっている状態、即ち異常振動環境でない場合にはステップＳ４に進み、通常通りシステム領域６０にシステム情報を書き込む。続いてステップＳ５で一時保存領域にシステム情報があるか否かチェックし、システム情報がある場合には、ステップＳ６でシステム情報を本来のシステム領域に書き込む。このようなステップＳ１〜Ｓ６の処理を、ステップＳ７で停止指示があるまで繰り返す。
【００８８】
また本発明は、図２の磁気ディスク装置１０に設けたＭＰＵ２６で実行されるプログラムを提供するものであり、このプログラムは図７，図８，図９及び図１０に示したフローチャートの内容を持つことになる。
【００８９】
なお、上記の実施形態は磁気ディスク装置を例にとるものであったが、これ以外に光ディスク装置、光磁気ディスク装置等の記憶装置についても、そのまま適用できる。また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【００９０】
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
（付記）
（付記１）
上位装置からのライトコマンドに基づいて記憶媒体にデータを書込む記憶装置に於いて、
前記上位装置からのライトコマンドに対しデータをバッファに格納してコマンド正常終了を応答し、その後に前記バッファのデータを前記記憶媒体に書込むライトキャッシュ制御部と、
装置の振動環境を測定する振動環境測定部と、
前記振動環境測定部による測定振動環境から前記記憶媒体に対する書込みを失敗させる可能性の高い異常振動環境を判定した際に、前記ライトキャッシュ制御部を無効化する振動対策処理部と、
を備えたことを特徴とする記憶装置。（１）
【００９１】
（付記２）
付記１記載の記憶装置に於いて、
前記振動対策処理部は、前記ライトキャッシュ制御部を無効化した後に、前記異常振動環境が判定されなくなった場合に前記ライトキャッシュ制御部の無効化を解除することを特徴とする記憶装置。
【００９２】
（付記３）
付記１記載の記憶装置に於いて、
前記振動環境測定部は、ヘッドのトラック追従制御中に検出されるトラック中心位置に対するヘッド位置のずれ量と所定の閾値との比較結果を記録し、
前記振動対策処理部は、前記振動環境測定部により記録されたヘッドずれ量の閾値を越える回数が１回転当り所定数以上で且つ複数回転に亘り続いた場合に、前記異常振動環境を判定して前記ライトキャッシュ制御部を無効化し、
記ライトキャッシュ制御部を無効化した後に、前記振動環境測定部により記録されたヘッドずれ量の閾値を越える回数が１回転当り所定の閾値を越えなかった場合に前記ライトキャッシュ制御部の無効化を解除することを特徴とする記憶装置。
【００９３】
（付記４）
付記１記載の記憶装置に於いて、前記振動対策処理部は、
前記ライトキャッシュ制御部を無効化した際に、前記バッファに記憶媒体への書戻し待ちのライトデータが残っていた場合、一時保存領域に前記ライトデータを保存し、
前記ライトキャッシュ制御部の無効化を解除した状態で、前記一時保存領域に格納しているデータを記憶媒体に書き戻すことを特徴とする記憶装置。（２）
【００９４】
（付記５）
付記１記載の記憶装置に於いて、前記振動対策処理部は、前記記憶媒体のシステム領域にデータを書込む際に、前記異常振動環境を判定していた場合、一時保存領域に前記データを保存し、前記異常振動環境が判定されなくなった後に、前記一時保存領域から前記記憶媒体のシステム領域に前記データを書き戻すことを特徴とする記憶装置。（３）
【００９５】
（付記６）
付記４又は５記載の記憶装置に於いて、前記一時保存領域は前記記憶媒体に設けられ、前記記憶媒体の一時保存領域はトラック幅を通常の保存領域に対し広くしたことを特徴とする記憶装置。
【００９６】
（付記７）
付記４又は５記載の記憶装置に於いて、前記一時保存領域は記憶装置内の不揮発メモリに設けられたことを特徴とする記憶装置。
【００９７】
（付記８）
上位装置からのライトコマンドに基づいて記憶媒体にデータを書込む記憶装置の制御方法に於いて、
前記上位装置からのライトコマンドに対しデータをバッファに格納してコマンド正常終了を応答し、その後に前記バッファのデータを前記記憶媒体に書込むライトキャッシュ制御ステップと、
装置の振動環境を測定する振動環境測定ステップと、
前記振動環境測定ステップによる測定振動環境から前記記憶媒体に対する書込みを失敗させる可能性の高い異常振動環境を判定した際に、前記ライトキャッシュ制御ステップを無効化する振動対策処理ステップと、
を備えたことを特徴とする記憶装置の制御方法。（４）
【００９８】
（付記９）
付記８記載の記憶装置の制御方法に於いて、
前記振動対策処理ステップは、前記ライトキャッシュ制御ステップを無効化した後に、前記異常振動環境が判定されなくなった場合に前記ライトキャッシュ制御ステップの無効化を解除することを特徴とする記憶装置の制御方法。
【００９９】
（付記１０）
付記８記載の記憶装置の制御方法に於いて、
前記振動環境測定ステップは、ヘッドのトラック追従制御中に検出されるトラック中心位置に対するヘッド位置のずれ量と所定の閾値との比較結果を記録し、
前記振動対策処理ステップは、前記振動環境測定ステップにより記録されたヘッドずれ量の閾値を越える回数が１回転当り所定数以上で且つ複数回転に亘り続いた場合に、前記異常振動環境を判定して前記ライトキャッシュ制御ステップを無効化し、
前記ライトキャッシュ制御ステップを無効化した後に、前記振動環境測定ステップにより記録されたヘッドずれ量の閾値を越える回数が１回転当り所定の閾値を越えなかった場合に前記ライトキャッシュ制御ステップの無効化を解除することを特徴とする記憶装置の制御方法。
【０１００】
（付記１１）
付記８記載の記憶装置の制御方法に於いて、前記振動対策処理ステップは、
前記ライトキャッシュ制御ステップを無効化した際に、前記バッファに記憶媒体への書戻し待ちのライトデータが残っていた場合、一時保存領域に前記ライトデータを保存し、
前記ライトキャッシュ制御ステップの無効化を解除した状態で、前記一時保存領域に格納しているデータを記憶媒体に書き戻すことを特徴とする記憶装置の制御方法。
【０１０１】
（付記１２）
付記８記載の記憶装置の制御方法に於いて、前記振動対策処理ステップは、前記記憶媒体のシステム領域にデータを書込む際に、前記異常振動環境を判定していた場合、一時保存領域に前記データを保存し、前記異常振動環境が判定されなくなった後に、前記一時保存領域から前記記憶媒体のシステム領域に前記データを書き戻すことを特徴とする記憶装置の制御方法。
【０１０２】
（付記１３）
付記１１又は１２記載の記憶装置の制御方法に於いて、前記一時保存領域は前記記憶媒体に設けられ、前記記憶媒体の一時保存領域はトラック幅を通常の保存領域に対し広くしたことを特徴とする記憶装置の制御方法。
【０１０３】
（付記１４）
付記１１又は１２記載の記憶装置の制御方法に於いて、前記一時保存領域は記憶装置の制御方法内の不揮発メモリに設けられたことを特徴とする記憶装置の制御方法。
【０１０４】
（付記１５）
上位装置からのライトコマンドに基づいて記憶媒体にデータを書込む記憶装置のコンピュータに、
前記上位装置からのライトコマンドに対しデータをバッファに格納してコマンド正常終了を応答し、その後に前記バッファのデータを前記記憶媒体に書込むライトキャッシュ制御ステップと、
装置の振動環境を測定する振動環境測定ステップと、
前記振動環境測定ステップによる測定振動環境から前記記憶媒体に対する書込みを失敗させる可能性の高い異常振動環境を判定した際に、前記ライトキャッシュ制御ステップを無効化する振動対策処理ステップと、
を実行させることを特徴とするプログラム。（５）
【０１０５】
（付記１６）
付記１５記載のプログラムに於いて、
前記振動対策処理ステップは、前記ライトキャッシュ制御ステップを無効化した後に、前記異常振動環境が判定されなくなった場合に前記ライトキャッシュ制御ステップの無効化を解除することを特徴とするプログラム。
【０１０６】
（付記１７）
付記１５記載のプログラムに於いて、
前記振動環境測定ステップは、ヘッドのトラック追従制御中に検出されるトラック中心位置に対するヘッド位置のずれ量と所定の閾値との比較結果を記録し、
前記振動対策処理ステップは、前記振動環境測定ステップにより記録されたヘッドずれ量の閾値を越える回数が１回転当り所定数以上で且つ複数回転に亘り続いた場合に、前記異常振動環境を判定して前記ライトキャッシュ制御ステップを無効化し、
前記ライトキャッシュ制御ステップを無効化した後に、前記振動環境測定ステップにより記録されたヘッドずれ量の閾値を越える回数が１回転当り所定の閾値を越えなかった場合に前記ライトキャッシュ制御ステップの無効化を解除することを特徴とするプログラム。
【０１０７】
（付記１８）
付記１５記載のプログラムに於いて、前記振動対策処理ステップは、
前記ライトキャッシュ制御ステップを無効化した際に、前記バッファに記憶媒体への書戻し待ちのライトデータが残っていた場合、一時保存領域に前記ライトデータを保存し、
前記ライトキャッシュ制御ステップの無効化を解除した状態で、前記一時保存領域に格納しているデータを記憶媒体に書き戻すことを特徴とするプログラム。
【０１０８】
（付記１９）
付記１５記載のプログラムに於いて、前記振動対策処理ステップは、前記記憶媒体のシステム領域にデータを書込む際に、前記異常振動環境を判定していた場合、一時保存領域に前記データを保存し、前記異常振動環境が判定されなくなった後に、前記一時保存領域から前記記憶媒体のシステム領域に前記データを書き戻すことを特徴とするプログラム。
【０１０９】
（付記２０）
付記１８又は１９記載のプログラムに於いて、前記一時保存領域は前記記憶媒体に設けられ、前記記憶媒体の一時保存領域はトラック幅を通常の保存領域に対し広くしたことを特徴とするプログラム。
【図面の簡単な説明】
【０１１０】
【図１】本発明の原理説明図
【図２】本発明による異常振動環境での対策が適用される磁気ディスク装置のブロック図
【図３】図２のディスク媒体におけるトラックフォーマットの説明図
【図４】図２のメモリに格納されたヘッド位置ずれ量の測定テーブルの説明図
【図５】本発明における一時保存領域のレイアウトの説明図
【図６】図５のディスク媒体におけるユーザ領域と一時保存領域のトラックサイズの説明図
【図７】本発明における異常振動環境の測定と判定処理のフローチャート
【図８】本発明による磁気ディスク装置の制御処理のフローチャート
【図９】本発明によるライトコマンド処理のフローチャート
【図１０】本発明によるシステム情報ライト処理のフローチャート
【符号の説明】
【０１１１】
１０：磁気ディスク装置
１２：制御ボード
１４：ディスクエンクロージャ
１６：スピンドルモータ
１８：ボイスコイルモータ
２０：ディスク媒体
２２−１，２２−２：ヘッド
２４：ヘッドＩＣ
２６：ＭＰＵ
２８：バス
３０：メモリ
３２：不揮発メモリ
３４：ホストインタフェース制御部
３６：バッファメモリ制御部
３８：バッファメモリ
４０：フォーマット制御部
４２：リードチャネル
４４：サーボ制御部
４６：ライトキャッシュ制御部
４８：振動環境測定部
５０：振動対策処理部
５２：測定テーブル
５４−１，５４−２：サーボ領域
５６−１〜５６−ｎ：データ領域
６０：システム領域
６２：ユーザデータ領域
６４，６６：一時保存領域
【図１】
2006269006.tif 000003
【図２】
2006269006.tif 000004
【図３】
2006269006.tif 000005
【図４】
2006269006.tif 000006
【図５】
2006269006.tif 000007
【図６】
2006269006.tif 000008
【図７】
2006269006.tif 000009
【図８】
2006269006.tif 000010
【図９】
2006269006.tif 000011
【図１０】
2006269006.tif 000012