(57)【要約】【課題】非定常状態における書き込み特性の低下に適切に対応できるようにする。【解決手段】実施形態によれば、磁気ディスク装置は、ディスクと、バッファと、ヘッドと、判定手段と、書き込み手段とを含む。ディスクは、記録面を備えている。バッファは、記録面とは異なる領域に設けられる。ヘッドは、記録面にデータを書き込み且つ記録面からデータを読み出すのに用いられる。判定手段は、磁気ディスク装置が動作状態に遷移した直後の非定常状態においてヘッドを用いたデータ書き込みの要求が実行される際に、ヘッドが、非定常状態における動作マージンが所定レベルよりも低い低マージンヘッドであるかを判定する。書き込み手段は、ヘッドが低マージンヘッドであるならば、ヘッドを用いて記録面へデータを書き込む代わりに、当該データをバッファに書き込む。【選択図】      図１
2012230735.tif 000002
【特許請求の範囲】
【請求項１】
磁気ディスク装置において、
記録面を備えたディスクと、
前記記録面とは異なる領域に設けられるバッファと、
前記記録面にデータを書き込み且つ前記記録面からデータを読み出すのに用いられるヘッドと、
前記磁気ディスク装置が動作状態に遷移した直後の非定常状態において前記ヘッドを用いたデータ書き込みの要求が実行される際に、前記ヘッドが、前記非定常状態における動作マージンが所定レベルよりも低い低マージンヘッドであるかを判定する判定手段と、
前記ヘッドが前記低マージンヘッドであるならば、前記ヘッドを用いて前記記録面へデータを書き込む代わりに、当該データを前記バッファに書き込む書き込み手段と
を具備する磁気ディスク装置。
【請求項２】
前記書き込み手段は、前記ヘッドが前記低マージンヘッドでないならば、前記ヘッドを用いて前記記録面へデータを書き込む請求項１記載の磁気ディスク装置。
【請求項３】
前記磁気ディスク装置が前記非定常状態から定常状態に遷移した後、前記書き込み手段は、前記バッファに書かれているデータを、前記ディスク上の本来書き込まれるべき領域に前記ヘッドを用いて書き戻す請求項２記載の磁気ディスク装置。
【請求項４】
前記ヘッドを用いて前記記録面へデータを書き込む代わりに当該データが書き込まれた前記バッファ内の領域を示す情報と前記記録面上の本来書き込まれるべき領域とを示す情報を格納するバッファ管理テーブルを更に具備し、
前記書き込み手段は、前記バッファ管理テーブルに基づいて、前記データと前記本来書き込まれるべき領域とを特定する
請求項３記載の磁気ディスク装置。
【請求項５】
前記ヘッドが前記低マージンヘッドであるかを示す情報を予め格納するヘッド管理テーブルを更に具備し、
前記判定手段は、前記ヘッドが前記低マージンヘッドであるかを前記ヘッド管理テーブルに基づいて判定する
請求項１記載の磁気ディスク装置。
【請求項６】
前記記録面、前記ディスク及び前記ヘッドは、それぞれ、第１の記録面、第１のディスク及び第１のヘッドであり、
前記磁気ディスク装置は、第２の記録面にデータを書き込み且つ前記第２の記録面からデータを読み出すのに用いられる第２のヘッドを更に備え、
前記第２の記録面は、前記第１のディスクの前記第１の記録面とは反対側、または前記磁気ディスク装置が更に備える第２のディスクに備えられており、
前記第２のヘッドは前記非定常状態における動作マージンが前記所定レベルよりも高い高マージンヘッドであり、
前記第２の記録面の一部が前記バッファとして用いられる
請求項１記載の磁気ディスク装置。
【請求項７】
磁気ディスク装置と、
前記磁気ディスク装置を記憶装置として使用するホストとを具備し、
前記磁気ディスク装置は、
記録面を備えたディスクと、
前記記録面とは異なる領域に設けられるバッファと、
前記記録面にデータを書き込み且つ前記記録面からデータを読み出すのに用いられるヘッドと、
前記磁気ディスク装置が動作状態に遷移した直後の非定常状態において前記ヘッドを用いたデータ書き込みの要求が実行される際に、前記ヘッドが、前記非定常状態における動作マージンが所定レベルよりも低い低マージンヘッドであるかを判定する判定手段と、
前記ヘッドが前記低マージンヘッドであるならば、前記ヘッドを用いて前記記録面へデータを書き込む代わりに、当該データを前記バッファに書き込む書き込み手段とを具備する
電子機器。
【請求項８】
記録面を備えたディスクと、前記記録面とは異なる領域に設けられるバッファと、前記記録面にデータを書き込み且つ前記記録面からデータを読み出すのに用いられるヘッドとを備えた磁気ディスク装置におけるデータ書き込み方法であって、
前記磁気ディスク装置が動作状態に遷移した直後の非定常状態において前記ヘッドを用いたデータ書き込みの要求が実行される際に、前記ヘッドが、前記非定常状態における動作マージンが所定レベルよりも低い低マージンヘッドであるかを判定し、
前記ヘッドが前記低マージンヘッドであるならば、前記ヘッドを用いて前記記録面へデータを書き込む代わりに、当該データを前記バッファに書き込む
データ書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、磁気ディスク装置、同磁気ディスク装置を備えた電子機器及びデータ書き込み方法に関する。
【背景技術】
【０００２】
磁気ディスク装置は、記録媒体として磁気ディスクを備えている。磁気ディスクの回転が開始された直後は、磁気ディスク装置の特性は、定常状態とは異なることが知られている。磁気ディスクの回転は、例えば、磁気ディスク装置に電源が投入されて、当該磁気ディスク装置が動作を開始した場合に開始される。また、磁気ディスクの回転は、磁気ディスク装置に電源が投入されていても、当該磁気ディスク装置が省電力モードに設定されているために停止している状態で当該省電力モードから復帰した場合にも開始される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２４３２４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したように、磁気ディスクの回転が開始された直後のような、磁気ディスク装置の過渡状態（つまり非定常状態）では、当該磁気ディスク装置の特性は定常状態とは異なる。このような磁気ディスク装置の特性として、書き込み特性が挙げられる。具体的には、非定常状態における書き込み特性は、定常状態におけるそれよりも低下する。そこで、非定常状態においてデータ書き込みを実行するためには、書き込み特性が低下することを考慮する必要がある。
【０００５】
本発明の目的は非定常状態における書き込み特性の低下に適切に対応できる磁気ディスク装置、同磁気ディスク装置を備えた電子機器及びデータ書き込み方法を提供することである。
【課題を解決するための手段】
【０００６】
実施形態によれば、磁気ディスク装置は、ディスクと、バッファと、ヘッドと、判定手段と、書き込み手段とを具備する。前記ディスクは、記録面を備えている。前記バッファは、前記記録面とは異なる領域に設けられる。前記ヘッドは、前記記録面にデータを書き込み且つ前記記録面からデータを読み出すのに用いられる。前記判定手段は、前記磁気ディスク装置が動作状態に遷移した直後の非定常状態において前記ヘッドを用いたデータ書き込みの要求が実行される際に、前記ヘッドが、前記非定常状態における動作マージンが所定レベルよりも低い低マージンヘッドであるかを判定する。前記書き込み手段は、前記ヘッドが前記低マージンヘッドであるならば、前記ヘッドを用いて前記記録面へデータを書き込む代わりに、当該データを前記バッファに書き込む。
【図面の簡単な説明】
【０００７】
【図１】実施形態に係る磁気ディスク装置を備えた電子機器の典型的な構成を示すブロック図。
【図２】同実施形態で適用されるディスクの記録面のフォーマットを示す概念図。
【図３】同実施形態に係る製造工程で適用される、ヘッドの動作マージンの検出を含む処理の手順を説明するためのフローチャート。
【図４】同実施形態で適用されるヘッド管理テーブルの一例を示す図。
【図５】同実施形態で適用されるバッファ管理テーブルの一例を、代用バッファと関連付けて示す図。
【図６】同実施形態に係る磁気ディスク装置がユーザによって使用される場合の動作の手順を説明するためのフローチャートの一部を示す図。
【図７】同実施形態に係る磁気ディスク装置がユーザによって使用される場合の動作の手順を説明するためのフローチャートの残りを示す図。
【発明を実施するための形態】
【０００８】
以下、実施の形態につき図面を参照して説明する。  
図１は実施形態に係る磁気ディスク装置を備えた電子機器の典型的な構成を示すブロック図である。図１において、電子機器は、磁気ディスク装置（ＨＤＤ）１０及びホスト２０から構成される。本実施形態において、電子機器はパーソナルコンピュータである。しかし、電子機器がパーソナルコンピュータである必要はなく、パーソナルコンピュータ以外の電子機器、例えばビデオカメラ、音楽プレーヤー、携帯端末、携帯電話機、或いはプリンタ装置であってもよい。ホスト２０はＨＤＤ１０を当該ホスト２０の記憶装置として使用する。ホスト２０はホストインタフェース２００によりＨＤＤ１０と接続されている。
【０００９】
ＨＤＤ１０は、ディスク（磁気ディスク）１１-0及び１１-1と、ヘッド（磁気ヘッド）１２-0乃至１２-3と、スピンドルモータ（ＳＰＭ）１３と、アクチュエータ１４と、ボイスコイルモータ（ＶＣＭ）１５と、ドライバＩＣ１６と、ヘッドＩＣ１７と、システムＬＳＩ１８とを備えている。
【００１０】
ディスク１１-0及び１１-1は磁気記録媒体であり、一定の間隔を保って積層配置されている。ディスク１１-0及び１１-1は、いずれも上側と下側のディスク面を有している。本実施形態においてこれらのディスク面は、いずれもデータが磁気記録される記録面をなしている。つまり、ディスク１１-0は記録面ＲＳ０及びＲＳ１を有し、ディスク１１-1は記録面ＲＳ２及びＲＳ３を有している。
【００１１】
ディスク１１-0及び１１-1はＳＰＭ１３によって高速に回転させられる。ＳＰＭ１３は、ドライバＩＣ１６から供給される駆動電流（または駆動電圧）により駆動される。なお、ＨＤＤ１０が単一枚のディスクを備えていても構わない。
【００１２】
図２は、本実施形態で適用されるディスクの記録面（ディスク面）のフォーマットを、ディスク１１-0の記録面ＲＳ０を例に示す概念図である。  
ディスク１１-0の記録面ＲＳ０は、ユーザ領域１１１とシステム領域１１２とを備えている。ユーザ領域１１１は、ユーザから使用可能な記憶領域、つまりユーザから認識される記憶領域である。システム領域１１２はシステムが使用する記憶領域、つまりユーザからは認識されない記憶領域である。システム領域１１２は、ユーザ領域１１１に対して非ユーザ領域であるといえる。本実施形態において、システム領域１１２はディスク１１-0の内周に確保されている。しかし、システム領域１１２がディスク１１-0の外周に確保されていてもよい。なお、ディスク１１-0の記録面ＲＳ１と、ディスク１１-1の記録面ＲＳ２及びＲＳ３も、ディスク１１-0の記録面ＲＳ０と同様に、ユーザ領域１１１とシステム領域１１２とを備えている。
【００１３】
本実施形態において、ディスク１１-0の記録面ＲＳ０のシステム領域１１２の一部は、図２に示すように、代用バッファ１１３に割り当てられている。つまり記録面ＲＳ０のシステム領域１１２の一部は、代用バッファ１１３を備えている。代用バッファ１１３の役割については後述する。
【００１４】
再び図１を参照する。ヘッド１２-0及び１２-1はディスク１１-0のそれぞれ上下の記録面ＲＳ０及びＲＳ１に対応して配置され、ヘッド１２-2及び１２-3はディスク１１-1のそれぞれ上下の記録面ＲＳ２及びＲＳ３に対応して配置されている。ヘッド１２-0乃至１２-3及び対応する記録面ＲＳ０乃至ＲＳ３は、ヘッド番号０（Ｈ０）乃至３（Ｈ３）により特定される。ヘッド１２-0乃至１２-4は、いずれもリード素子及びライト素子を備えている。ヘッド１２-0及び１２-1は、それぞれ、ディスク１１-0の記録面ＲＳ０及びＲＳ１へのデータの書き込みと当該記録面ＲＳ０及びＲＳ１からのデータの読み出しとに用いられる。ヘッド１２-2及び１２-3は、それぞれ、ディスク１１-1の記録面ＲＳ２及びＲＳ３へのデータの書き込みと当該記録面ＲＳ２及びＲＳ３からのデータの読み出しとに用いられる。
【００１５】
ヘッド１２-0乃至１２-3は、アクチュエータ１４の先端に取り付けられている。より詳細には、ヘッド１２-0乃至１２-3は、アクチュエータ１４が有する４つのアームから延出したサスペンションの先端に取り付けられている。このような、ヘッド１２-j（ｊ＝０，１，２，３）を備えたサスペンションの構造は、ヘッドジンバルアセンブリ（ＨＧＡと称する）と呼ばれる。つまりヘッド１２-jは、ＨＧＡの形でアクチュエータ１４のアームに取り付けられている。
【００１６】
アクチュエータ１４は枢軸１４０の回りで揺動自在に支持されている。アクチュエータ１４は、ＶＣＭ１５を備えている。ＶＣＭ１５は、アクチュエータ１４の駆動源として用いられる。ＶＣＭ１５は、ドライバＩＣ１６から供給される駆動電流（または駆動電圧）により駆動され、アクチュエータ１４を枢軸１４０の回りに揺動させる。これにより、アクチュエータ１４の各アームに取り付けられたヘッド１２-jは、ディスク１１-i（ｉ＝０，１）の半径方向に移動させられる。
【００１７】
ディスク１１-0の記録面ＲＳ０及びＲＳ１から外れた位置、例えばディスク１１-0の外周に近接する位置には、それぞれ、ランプ１２０-0及び１２０-1が配置されている。同様に、ディスク１１-1の記録面ＲＳ２及びＲＳ３から外れた位置、例えばディスク１１-1の外周に近接する位置には、それぞれ、ランプ１２０-2及び１２０-3が配置されている。ランプ１２０-j（ｊ＝０，１，２，３）の位置は、ヘッド１２-jを有するＨＧＡ（より詳細には、ＨＧＡの先端のリフトタブ）の移動経路上の位置でもある。ランプ１２０-jは、ＨＤＤ１０が非動作状態にある期間、ヘッド１２-jを有するＨＧＡを退避させておくための退避領域（パーキング領域）を提供する。以下の説明では、ヘッド１２-jを有するＨＧＡのランプ１２０-jへの退避を、簡略化のために、ヘッド１２-jのランプ１２０-jへの退避と呼ぶ。
【００１８】
ＨＤＤ１０の非動作状態とは、ＨＤＤ１０に供給される電源が遮断された場合のようにＨＤＤ１０が動作を完全に停止している状態の他、ＨＤＤ１０の特定の省電力モードの状態も含むものとする。特定の省電力モードは、例えば、ＨＤＤ１０に電源は供給されているものの、省電力のために、ディスク１１-0及び１１-1の回転が停止されるモード（第１の省電力モード）である。また、特定の省電力モードが、ディスク１１-0及び１１-1は回転しているものの、省電力のために、ＨＤＤ１０内の少なくともデータの読み出し／書き込みに関する回路要素への電源の供給が遮断されるモード（第２の省電力モード）であってもよい。特定の省電力モードは、ＨＤＤ１０内で自律的に設定される他、ホスト２０からの指示によっても設定される。ヘッド１２-jは、ＨＤＤ１０が非動作状態にある期間、ランプ１２０-jに退避されている。つまりＨＤＤ１０が非動作状態にある期間、ヘッド１２-jはランプ１２０-j上に位置している。
【００１９】
これに対し、ＨＤＤ１０の動作状態とは、ディスク１１-0及び１１-1が回転していて、且つヘッド１２-0乃至１２-3が、ディスク１１-0及び１１-1の記録面ＲＳ０乃至ＲＳ３上に位置している状態を指す。つまりＨＤＤ１０の動作状態とは、ヘッド１２-jがディスク１１-iの記録面ＲＳｊ上を浮上していて、当該記録面ＲＳｊへのデータの書き込みまたは当該記録面ＲＳｊからのデータの読み出しが可能な状態を指す。
【００２０】
ＨＤＤ１０が動作状態から非動作状態に遷移する際には、ヘッド１２-jは退避のためにディスク１１-i上からランプ１２０-jに移動される。このディスク１１-i上からランプ１２０-jへのヘッド１２-jの移動は、アンロード（またはヘッドアンロード）と呼ばれる。また、ＨＤＤ１０が非動作状態から動作状態に遷移する際には、ヘッド１２-jはランプ１２０-jからディスク１１１上に移動される。このランプ１２０-jからディスク１１１上へのヘッド１２-jの移動は、ロード（またはヘッドロード）と呼ばれる。
【００２１】
ドライバＩＣ１６は、システムＬＳＩ１８内の後述するＣＰＵ１８６の制御に従い、ＳＰＭ１３及びＶＣＭ１５を駆動する。ヘッドＩＣ１７は、ヘッド１２-jにより読み出された信号（リード信号）を増幅する。ヘッドＩＣ１７はまた、システムＬＳＩ１８内の後述するＲ／Ｗチャネル１８１から転送されるライトデータをライト電流に変換してヘッド１２-jに出力する。
【００２２】
システムＬＳＩ１８は、複数の素子が単一チップに集積されたＳＯＣ（System-on-Chip）と呼ばれるＬＳＩである。システムＬＳＩ１８は、リード／ライトチャネル（Ｒ／Ｗチャネル）１８１、ハードディスクコントローラ（ＨＤＣ）１８２、バッファＲＡＭ１８３、フラッシュメモリ１８４、プログラムＲＯＭ１８５、ＣＰＵ１８６及びＲＡＭ１８７を備えている。
【００２３】
Ｒ／Ｗチャネル１８１は、リード／ライトに関連する信号群を処理する信号処理デバイスである。Ｒ／Ｗチャネル１８１は、リード信号をデジタル化し、このデジタル化されたデータからリードデータを復号する。Ｒ／Ｗチャネル１８１はまた、上記デジタルデータからヘッド１２-jの位置決めに必要なサーボデータを抽出する。Ｒ／Ｗチャネル１８１はまた、ライトデータを符号化する。
【００２４】
ＨＤＣ１８２は、ホストインタフェース２００を介してホスト２０と接続されている。ＨＤＣ１８２は、ホスト２０から転送されるコマンド（ライトコマンド、リードコマンド等）を受信する。ＨＤＣ１８２は、ホスト２０と当該ＨＤＣ１８２との間のデータ転送を制御する。ＨＤＣ１８２は、ディスク１１-iと当該ＨＤＣ１８２との間のデータ転送を制御する。
【００２５】
バッファＲＡＭ１８３は、ディスク１１-iに書き込まれるべきデータ及びディスク１１-iからヘッドＩＣ１７及びＲ／Ｗチャネル１８１を介して読み出されたデータを一時格納するバッファ領域を備えている。またバッファＲＡＭ１８３は、ＨＤＤ１０のパワーオン時に、テーブル参照の高速化のために、後述するヘッド管理テーブル１８４ａ及びバッファ管理テーブル１８４ｂがフラッシュメモリ１８４からロードされるテーブル領域も備えている。但し、以下の説明では、簡略化のためにヘッド管理テーブル１８４ａ及びバッファ管理テーブル１８４ｂは、フラッシュメモリ１８４に格納されている状態で参照されるものとする。
【００２６】
フラッシュメモリ１８４は、書き換え可能な不揮発性メモリである。フラッシュメモリ１８４は、ヘッド管理テーブル１８４ａ及びバッファ管理テーブル１８４ｂを格納するのに用いられる。ヘッド管理テーブル１８４ａ及びバッファ管理テーブル１８４ｂについては後述する。
【００２７】
プログラムＲＯＭ１８５は、制御プログラム（ファームウェアプログラム）を予め格納する。なお、制御プログラムがフラッシュメモリ１８４の一部の領域に格納されていても構わない。
【００２８】
ＣＰＵ１８６は、ＨＤＤ１０の主コントローラとして機能する。ＣＰＵ１８６はプログラムＲＯＭ１８５に格納されている制御プログラムに従ってＨＤＤ１０内の他の少なくとも一部の要素を制御する。ＲＡＭ１８７の一部の領域は、ＣＰＵ１８６の作業領域として用いられる。
【００２９】
ここで、ヘッド１２-0乃至１２-3の動作マージンについて説明する。  
ＨＤＤ１０が非動作状態から動作状態に切り替えられた直後（ここでは、ヘッド１２-0乃至１２-3が対応するディスク１１-0及び１１-1上にロードされた直後）は、ＨＤＤ１０の特性、例えばヘッド１２-0乃至１２-3の特性は、不安定であることが知られている。また、この要因が、ヘッド１２-0乃至１２-3が動作する環境の温度の低下にあることも知られている。このため、ヘッド１２-0乃至１２-3の特性が不安定な状態は、ＨＤＤ１０が動作状態に切り替えられた時点から、ある程度の時間が経過すると解消されるのが一般的である。ヘッド１２-0乃至１２-3の特性（つまりＨＤＤ１０の特性）が不安定な状態を非定常状態と呼び、この不安定な状態が解消された状態を定常状態と呼ぶ。
【００３０】
ヘッド１２-0乃至１２-3（ＨＤＤ１０）が非定常状態にある期間、ヘッド１２-0乃至１２-3の動作マージンは低下している。ヘッド１２-0乃至１２-3の動作マージンは、一般にヘッド毎に異なる。ここで、ＨＤＤ１０が時点ｔ０で非動作状態から動作状態に切り替えられたものとする。この時点ｔ０から予め定められた時間Ｔが経過しても、ヘッド１２-0乃至１２-3の中に、動作マージンが、ＨＤＤ１０に要求される第１のレベルＬ１に達しないヘッドが含まれている場合がある。このようなヘッドの動作マージンは、上記時点ｔ０の直後において、第１のレベルＬ１よりも低い第２のレベルＬ２（Ｌ２＜Ｌ１）にも達していない可能性が高い。一方、上記時点ｔ０の直後の動作マージンが第２のレベルＬ２より高いヘッドでは、上記時間Ｔが経過した時点の動作マージンは、第１のレベルＬ１より高くなる。なお、多くのヘッドの動作マージンは、上記時点ｔ０の直後において既に第１のレベルＬ１よりも高いのが一般的である。
【００３１】
従来技術では、図１に示されるＨＤＤ１０を製造する工程（より詳細には、製造工程におけるテスト工程）において、ＣＰＵ１８６が、上記時点ｔ０の直後におけるヘッド１２-0乃至１２-3の動作マージンを検出（測定）する。そして、ヘッド１２-0乃至１２-3の中に、動作マージンが第１のレベルＬ１よりも低いヘッドが存在する場合、当該ヘッドは不良であり、ＨＤＤ１０も不良であると判定される。
【００３２】
これに対して本実施形態では、ヘッド１２-0乃至１２-3の中に、第２のレベルＬ２（Ｌ２＜Ｌ１）よりも低いヘッドが存在する場合、当該ヘッドは不良であり、ＨＤＤ１０も不良であると判定される。一方、動作マージンが、第２のレベルＬ２よりも低くないが、第１のレベルＬ１よりも低いヘッドは、ＨＤＤ１０の非定常状態における動作マージンが低い第１のクラスのヘッド（低マージンヘッド）として検出される。次に、動作マージンが、第１のレベルＬ１よりも低くないヘッドは、ＨＤＤ１０の非定常状態における動作マージンが高い第２のクラスのヘッド（高マージンヘッド）として検出される。これら第１のクラスのヘッド及び第２のクラスのヘッドは、ＣＰＵ１８６によって検出される。
【００３３】
以下、本実施形態において、ＨＤＤ１０を製造する工程における例えばテスト工程で適用される、ヘッド１２-0乃至１２-3の動作マージンの検出を含む処理の手順について、図３のフローチャートを参照して説明する。
【００３４】
まずＣＰＵ１８６は、ＨＤＤ１０を予め定められた時間Ｔ０だけ非動作状態に設定する（ステップ３０１）。ＣＰＵ１８６は時間Ｔ０が経過した後、ＨＤＤ１０を非動作状態から動作状態に切り替える（ステップ３０２）。これにより、ヘッド１２-0乃至１２-3は、それぞれランプ１２０-0乃至１２０-3からディスク１１-0及び１１-1の記録面ＲＳ０乃至ＲＳ３にロードされる。時間Ｔ０は、ＨＤＤ１０が非動作状態から動作状態に切り替えられた直後、当該ＨＤＤ１０（特にヘッド１２-0乃至１２-3）が非定常状態となるのに十分な時間である。
【００３５】
次にＣＰＵ１８６は、ヘッド番号ｊを０に設定する（ステップ３０３）。そしてＣＰＵ１８６は、ヘッド番号がｊのヘッド１２-j（ここでは、ヘッド番号が０のヘッド１２-0）の動作マージンＭｊを検出（測定）する（ステップ３０４）。動作マージンの検出方法については後述する。
【００３６】
次にＣＰＵ１８６は、ヘッド１２-jの動作マージンＭｊが第２のレベルＬ２よりも低いかを判定する（ステップ３０５）。もし、動作マージンＭｊが第２のレベルＬ２よりも低いならば（ステップ３０５のＹｅｓ）、ＣＰＵ１８６はヘッド１２-jは不良であると判定する（ステップ３０６）。この場合、説明の簡略化のために、ＣＰＵ１８６はヘッド１２-jを備えたＨＤＤ１０も不良であるとして、当該ＨＤＤ１０に関するテスト工程を終了するものとする。
【００３７】
これに対し、ヘッド１２-jの動作マージンＭｊが第２のレベルＬ２よりも低くないならば（ステップ３０５のＮｏ）、つまりＭｊ≧Ｌ２であるならば、ＣＰＵ１８６はステップ３０７に進む。ステップ３０７においてＣＰＵ１８６は、動作マージンＭｊが第１のレベルＬ１（Ｌ１＞Ｌ２）よりも低いかを判定する。
【００３８】
もし、動作マージンＭｊが第１のレベルＬ１よりも低いならば（ステップ３０７のＹｅｓ）、ＣＰＵ１８６は、ヘッド１２-jが第１のクラスのヘッドであると判定する（ステップ３０８）。つまりＬ２≦Ｍｊ＜Ｌ１であるならば、ＣＰＵ１８６は、ヘッド１２-jを第１のクラスのヘッドとして検出する。これに対し、動作マージンＭｊが第１のレベルＬ１よりも低くないならば（ステップ３０７のＮｏ）、ＣＰＵ１８６は、ヘッド１２-jが第２のクラスのヘッドであると判定する（ステップ３０９）。つまりＭｊ≧Ｌ１であるならば、ＣＰＵ１８６は、ヘッド１２-jを第２のクラスのヘッドとして検出する。
【００３９】
ＣＰＵ１８６は、ステップ３０８または３０９のいずれかを終了すると、ステップ３１０に進む。ステップ３１０においてＣＰＵ１８６は、ヘッド番号ｊを１インクリメントする。ＣＰＵ１８６は、インクリメント後のヘッド番号ｊが、３を超えたかを判定する（ステップ３１１）。もし、インクリメント後のヘッド番号ｊが３を超えていないならば（ステップ３１１のＮｏ）、ＣＰＵ１８６は、ステップ３０４に戻る。そしてＣＰＵ１８６は、ステップ３０４から始まる処理を再び実行する。
【００４０】
このようにＣＰＵ１８６は、ヘッド１２-0乃至１２-3が不良ヘッドでない場合でも、当該ヘッド１２-0乃至１２-3がそれぞれ第１のクラスのヘッドであるか、或いは第２のクラスのヘッドであるかを判定する。つまりＣＰＵ１８６は、ヘッド１２-0乃至１２-3を第１のクラスのヘッドと第２のクラスのヘッドとに分類する。本実施形態では、ヘッド１２-0乃至１２-2が第２のクラスのヘッドに分類され、ヘッド１２-3が第１のクラスのヘッドに分類されたものとする。
【００４１】
ここで、ヘッド１２-0乃至１２-3の動作マージンは、例えば、当該ヘッド１２-0乃至１２-3によって、ディスク１１-0及び１１-1の記録面ＲＳ０乃至ＲＳ３にデータを書き込み、書き込まれたデータを当該ヘッド１２-0乃至１２-3によって読み出す動作を繰り返すことによって検出される。ヘッド１２-0乃至１２-3の動作マージンは、読み出し時のエラーの発生率（つまりエラーレート）またはエラーレートに準ずる指標から検出可能である。エラーレートに準ずる指標としては、リードエラーの確率を適用してもよい。また、リードエラーの確率として、エラーレートと相関のよい、周知のビタビ・メトリクス（Viterbi-Metrics）マージン値（ＶＭＭ）を用いてもよい。ここでは、エラーレートまたはＶＭＭが小さいほど、対応するヘッドの動作マージンは高くなる。
【００４２】
やがて、インクリメント後のヘッド番号ｊが３を超えたならば（ステップ３１１のＹｅｓ）、ＣＰＵ１８６は、ヘッド１２-0乃至１２-3の動作マージンの検出及び分類が終了したと判断する。するとＣＰＵ１８６は、ヘッド１２-0乃至１２-3がそれぞれ第１のクラスのヘッドまたは第２のクラスのヘッドのいずれであるかを、ヘッド管理テーブル１８４ａに登録する（ステップ３１２）。次にＣＰＵ１８６は、ヘッド１２-0乃至１２-3の中に、第１のクラスと判定されたヘッドが存在するかを判定する（ステップ３１３）。
【００４３】
もし、第１のクラスと判定されたヘッドが存在するならば（ステップ３１３のＹｅｓ）、ＣＰＵ１８６は、第２のクラスと判定されたヘッドに対応するディスク１１-iの記録面のシステム領域１１２に代用バッファ１１３を確保する（ステップ３１４）。ここでは、ディスク１１-0の記録面ＲＳ０のシステム領域１１２に代用バッファ１１３が確保されたものとする（図２参照）。代用バッファ１１３は、ＨＤＤ１０が非定常状態にある期間に、第１のクラスのヘッドに対応するディスクの記録面へのデータの書き込みの要求（例えば、ホスト２０からの要求、つまりホスト２０からのライトコマンド）が実行される場合に、当該対応するディスクの記録面に代えて当該データを書き込むのに用いられる。
【００４４】
ＣＰＵ１８６はまた、代用バッファ１１３を管理するためのバッファ管理テーブル１８４ｂをフラッシュメモリ１８４内に生成する（ステップ３１５）。すると、ヘッド１２-0乃至１２-3の動作マージンの検出を含む処理は終了する。
【００４５】
一方、第１のクラスのヘッドであると判定されたヘッドが存在しないならば（ステップ３１３のＮｏ）、ＣＰＵ１８６は、ヘッド１２-0乃至１２-3の動作マージンの検出を含む処理を終了する。つまり、ヘッド１２-0乃至１２-3が全て第２のクラスのヘッドであるならば、ＣＰＵ１８６は、バッファ管理テーブル１８４ｂを生成することなく、ヘッド１２-0乃至１２-3の動作マージンの検出を含む処理を終了する。
【００４６】
なお、図３に示す手順は一例である。例えば全てのヘッド１２-0乃至１２-3の動作マージン（より詳細には、非定常状態における動作マージン）を検出（測定）する条件を同一にするために、１つのヘッド１２-jの動作マージンが検出される毎に、ステップ３０１から始まる動作が行われてもよい。また、分類の精度を上げるために、ヘッド１２-0乃至１２-3の動作マージンの時間に対する変化を検出するようにしてもよい。例えば、ヘッド１２-0乃至１２-3の動作マージンを一定時間毎に検出し、検出された動作マージンを、それぞれ検出時点に対応するレベル（第１のレベルＬ１に相当）と比較することで、ヘッド１２-0乃至１２-3分類してもよい。例えばヘッド１２-jの動作マージンが、全ての検出時点で、対応するレベルよりも高い場合だけ、当該ヘッド１２-jを第２のクラスのヘッドと判定するようにしてもよい。
【００４７】
図４は、ヘッド管理テーブル１８４ａの一例を示す。  
ヘッド管理テーブル１８４ａは、ヘッド１２-0乃至１２-3にそれぞれ対応するエントリＥ０乃至Ｅ３を備えている。ヘッド管理テーブル１８４ａのエントリＥ０乃至Ｅ３は、それぞれ、ヘッド番号０乃至３が設定されるヘッド番号フィールドＦａ１と、ヘッド番号が０乃至３のヘッド１２-0乃至１２-3が第１のクラスのヘッドまたは第２のクラスのヘッドのいずれであるかを示すクラスフィールドＦａ２とを備えている。図４に示すヘッド管理テーブル１８４ａは、ヘッド番号が０乃至２のヘッド１２-0乃至１２-2は第２のクラスのヘッドであり、ヘッド番号が３のヘッド１２-3は第１のクラスのヘッドであることを示す。
【００４８】
図５は、バッファ管理テーブル１８４ｂの一例を、代用バッファ１１３と関連付けて示す。  
バッファ管理テーブル１８４ｂの各エントリは、フラグフィールドＦｂ１、論理アドレスフィールドＦｂ２、データ長フィールドＦｂ３及びバッファポインタフィールドＦｂ４を備えている。
【００４９】
フラグフィールドＦｂ１は、対応するエントリが有効であるかを示すフラグＦ（情報）を保持する。本実施形態において、Ｆ＝１は、フラグフィールドＦｂ１の対応するエントリが有効であることを示し、Ｆ＝０は、フラグフィールドＦｂ１の対応するエントリが無効であることを示す。ヘッド管理テーブル１８４ａが生成された段階では、Ｆ＝０である。
【００５０】
バッファポインタフィールドＦｂ４は、対応するエントリで管理される代用バッファ１１３内の領域の開始位置を指し示すポインタ（バッファポインタ）を保持する。論理アドレスフィールドＦｂ２及びデータ長フィールドＦｂ３は、それぞれ、対応するエントリで管理される代用バッファ１１３内の領域に格納されるデータの開始論理アドレス（例えば開始論理ブロックアドレス）及びデータ長を保持する。
【００５１】
本実施形態において、ヘッド管理テーブル１８４ａ及びバッファ管理テーブル１８４ｂは、フラッシュメモリ１８４に格納される。しかし、ヘッド管理テーブル１８４ａ及びバッファ管理テーブル１８４ｂが、代用バッファ１１３と同様に、第２のクラスと判定されたヘッドに対応するディスクの記録面のシステム領域１１２（例えばディスク１１-0の記録面ＲＳ０のシステム領域１１２）に格納されても構わない。
【００５２】
次に、ＨＤＤ１０がユーザによって使用される場合の動作の手順について、図６及び図７のフローチャートを参照して説明する。ここでは、ヘッド１２-0乃至１２-2がいずれも第２のクラスのヘッドとして、ヘッド１２-3が第１のクラスのヘッドとして、ヘッド管理テーブル１８４ａに登録されているものとする（図４参照）。
【００５３】
ＣＰＵ１８６は、例えばＨＤＤ１０のパワーオンにより、図６及び図７のフローチャートに従う動作を開始する。まずＣＰＵ１８６は状態判定手段として機能して、ＨＤＤ１０（より詳細にはヘッド１２-j）が非定常状態にあるかを判定する（ステップ６０１）。本実施形態では、ＣＰＵ１８６は、ＨＤＤ１０が動作状態に切り替えられた時点ｔ０から予め定められた時間Ｔ１（Ｔ１＜Ｔ０）が経過するまでは、ＨＤＤ１０（ヘッド１２-0乃至１２-3）が非定常状態にあると判定する。つまり、ＨＤＤ１０が動作状態に切り替えられた時点ｔ０から時間Ｔ１が経過した後は、ＣＰＵ１８６は、ＨＤＤ１０が非定常状態にないと判定する。ここで、ＨＤＤ１０が非動作状態にある時間が予め定められた時間Ｔ２（Ｔ２＜Ｔ０）を経過する前に、ＨＤＤ１０が動作状態に切り替えられた場合も、ＨＤＤ１０が非定常状態にないとＣＰＵ１８６が判定してもよい。
【００５４】
なお、ＨＤＤ１０が動作状態に切り替えられた直後の当該ＨＤＤ１０の環境温度が予め定められた温度よりも低いことが検出された場合、その検出時点から予め定められた時間（例えばＴ１）が経過するまでは、ＨＤＤ１０が非定常状態にあるとＣＰＵ１８６が判定してもよい。また、ＨＤＤ１０が動作状態に切り替えられ直後に、ＣＰＵ１８６がヘッド１２-jの動作マージンを測定し、当該動作マージンが予め定められたレベルより低い場合に、ＨＤＤ１０が非定常状態にあると判定してもよい。
【００５５】
もし、ＨＤＤ１０が非定常状態にないならば（ステップ６０１のＮｏ）、ＣＰＵ１８６はステップ６０２に進む。つまり、ＨＤＤ１０が定常状態にあるならば、ＣＰＵ１８６はステップ６０２に進む。ステップ６０２においてＣＰＵ１８６はバッファ判定手段として機能して、代用バッファ１１３にデータが格納されているかを判定する。より詳細に述べるならば、ＣＰＵ１８６は、バッファ管理テーブル１８４ｂを参照して、有効なエントリが存在するかを判定することにより、代用バッファ１１３にデータが格納されているかを判定する。
【００５６】
もし、代用バッファ１１３にデータが格納されているならば（ステップ６０２のＹｅｓ）、ＣＰＵ１８６はステップ６０３に進む。ステップ６０３においてＣＰＵ１８６は、バッファ管理テーブル１８４ｂから１つの有効なエントリを選択する。ここでは、最も古い有効なエントリが選択されるものとする。この選択を容易にするために、バッファ管理テーブル１８４ｂのエントリをエントリの並び順にリング状に使用してもよい。また、最も古い有効なエントリを、当該最も古い有効なエントリを指し示す有効エントリポインタで管理し、当該有効エントリポインタをフラッシュメモリ１８４に格納しておいてもよい。
【００５７】
次にＣＰＵ１８６は書き込み手段として機能して、選択されたエントリに保持されているバッファポインタ、開始論理アドレス及びデータ長に基づいて、代用バッファ１１３からデータを読み出し、当該データを、当該データが本来書き込まれるべきディスク１１-iの領域（以下、本来領域と称する）に書き戻す（ステップ６０４）。ここで、代用バッファ１１３から読み出されるデータは、上記バッファポインタ及びデータ長に基づいて特定される。また上記本来領域は、上記開始論理アドレス及びデータ長に基づいて特定される。
【００５８】
ＣＰＵ１８６は上述の書き戻し（ステップ６０４）の後、バッファ管理テーブル１８４ｂ内の上記選択されたエントリを有効エントリから無効エントリに変更する（ステップ６０５）。つまりＣＰＵ１８６は、上記選択されたエントリのフラグフィールドＦｂ１をＦ＝１からＦ＝０に更新する。なお、バッファ管理テーブル１８４ｂのエントリが無効であるか或いは有効であるかを、当該エントリに特定のデータが書かれているか否かによって管理してもよい。この場合、バッファ管理テーブル１８４ｂのエントリが、フラグフィールドＦｂ１を有している必要はない。
【００５９】
上述の書き戻しに関する一連の処理（ステップ６０３乃至６０５）は、ホスト２０（ユーザ）から認識されない処理である。そこで本実施形態では、ステップ６０３乃至６０５はシステムのバックグラウンドで実行される。つまりステップ６０３乃至６０５は通常動作の合間に実行される。
【００６０】
ＣＰＵ１８６はステップ６０３乃至６０５を実行するとステップ６０６に進む。ＣＰＵ１８６はまた、代用バッファ１１３にデータが格納されていないならば（ステップ６０２のＮｏ）、ステップ６０３乃至６０５をスキップしてステップ６０６に進む。ステップ６０６においてＣＰＵ１８６は、通常動作を実行する。
【００６１】
この通常動作においてＣＰＵ１８６は、ホスト２０からＨＤＤ１０にライトコマンド（書き込み要求）が送られているならば書き込み手段として機能して、当該ライトコマンドで指定されたディスク１１-i上の領域にヘッド１２-jを用いてデータを書き込む。また通常動作においてＣＰＵ１８６は、ホスト２０からＨＤＤ１０にリードコマンド（読み出し要求）が送られているならば読み出し手段として機能して、当該リードコマンドで指定されたディスク１１-i上の領域からヘッド１２-jを用いてデータを読み出す。これによりステップ６０６（通常動作）は終了する。これに対し、ホスト２０からＨＤＤ１０にリードコマンドまたはライトコマンドが送られていないならば、ＣＰＵ１８６はそのままステップ６０６（通常動作）を終了する。ＣＰＵ１８６はステップ６０６を終了すると、ステップ６０１に戻る。
【００６２】
一方、ＨＤＤ１０が非定常状態にあるならば（ステップ６０１のＹｅｓ）、ＣＰＵ１８６はステップ７０１に進む。ステップ７０１においてＣＰＵ１８６は状態判定手段として機能して、ＨＤＤ１０が非定常状態から定常状態に遷移したかを判定する。本実施形態では、ＣＰＵ１８６は、ＨＤＤ１０が動作状態に切り替えられた時点ｔ０から時間Ｔ１が経過したならば、ＨＤＤ１０が非定常状態から定常状態に遷移したと判定する。
【００６３】
もし、ＨＤＤ１０が定常状態に遷移したならば（ステップ７０１のＹｅｓ）、ＣＰＵ１８６はステップ６０１に戻る。この場合、ＨＤＤ１０は非定常状態にないことから（ステップ６０１のＮｏ）、ＣＰＵ１８６はステップ６０２に進む。
【００６４】
これに対し、ＨＤＤ１０が定常状態に遷移していないならば（ステップ７０１のＮｏ）、ＣＰＵ１８６は、第１のクラスのヘッド１２-jによるデータの書き込みが要求されているかを判定する（ステップ７０２）。つまりＣＰＵ１８６は、第１のクラスのヘッド１２-j（ここではヘッド１２-3）によるデータの書き込みを指定するライトコマンドが受信されているかを判定する。
【００６５】
もし、第１のクラスのヘッド１２-j（１２-3）によるデータの書き込みが要求されているならば（ステップ７０２のＹｅｓ）、ＣＰＵ１８６は書き込み手段として機能して、要求されたデータ（つまりライトコマンドで指定されたデータ）を、第２のクラスのヘッド１２-0を用いて代用バッファ１１３内の空き領域に書き込む（ステップ７０３）。本実施形態では代用バッファ１１３の管理を容易にするために、当該代用バッファ１１３がリングバッファとして用いられるものとする。この場合、上記空き領域の開始位置は、代用バッファ１１３内の前回データが書き込まれた領域に後続する位置となる。もし、この領域の終了位置が代用バッファ１１３の終端であるならば、空き領域の開始位置は、代用バッファ１１３の始端となる。この空き領域の開始位置を、当該開始位置を示す空き領域ポインタで管理し、当該空き領域ポインタをフラッシュメモリ１８４に格納しておいてもよい。
【００６６】
次にＣＰＵ１８６は、バッファ管理テーブル１８４ｂから１つの無効エントリを選択する（ステップ７０４）。そしてＣＰＵ１８６はバッファ管理手段として機能して、選択されたエントリに、代用バッファ１１３内の今回データが書き込まれた領域の開始位置を指し示すバッファポインタ、本来領域（当該データが本来書き込まれるべきディスク１１-i上の領域）の開始位置を示す論理アドレス、及び当該データのデータ長を設定する（ステップ７０５）。次にＣＰＵ１８６は、バッファ管理テーブル１８４ｂ内の上記選択されたエントリを無効エントリから有効エントリに変更する（ステップ７０６）。つまりＣＰＵ１８６は、上記選択されたエントリのフラグフィールドＦｂ１をＦ＝０からＦ＝１に更新する。ＣＰＵ１８６はステップ７０６を終了すると、ステップ７０１に戻る。
【００６７】
一方、第１のクラスのヘッド１２-jによるデータの書き込みでないならば（ステップ７０１のＹｅｓ）、ＣＰＵ１８６は、上記ステップ６０６と同様に通常動作を実行する（ステップ７０７）。そしてＣＰＵ１８６は、ステップ７０１に戻る。
【００６８】
このように本実施形態によれば、ＨＤＤ１０が非定常状態から定常状態に遷移する前に（ステップ７０１のＮｏ）、第１のクラスのヘッド１２-jによるデータの書き込みを指定するライトコマンドを実行すべき場合（ステップ７０２のＹｅｓ）、当該第１のクラスのヘッド１２-j（１２-3）によるディスク１１-i上の本来領域への書き込みが抑止される。つまり、ＨＤＤ１０が非定常状態にある期間、第１のクラスのヘッド１２-j（１２-3）を用いるデータの書き込みが抑止される。そして、本来領域への書き込みに代えて、ライトコマンドによって指定されたデータが代用バッファ１１３に書き込まれる（ステップ７０３）。
【００６９】
本実施形態では、代用バッファ１１３は、第２のクラスのヘッド１２-0乃至１２-2のうちのヘッド１２-0に対応するディスク１１-0内の記録面ＲＳ０のシステム領域１１２に確保されている。この場合、代用バッファ１１３へのデータの書き込みは、第２のクラスのヘッド１２-0を用いて行われる。非定常状態における第２のクラスのヘッド１２-0の動作マージンは、前述のように、第１のクラスのヘッド１２-3とは異なって十分に高い。このため、たとえ非定常状態であっても、第２のクラスのヘッド１２-0を用いた代用バッファ１１３へのデータの書き込みは正常に行える。これに対して、ライトコマンドによって指定された第１のクラスのヘッド１２-3を用いて本来領域にデータを書き込んだならば、エラーが発生する可能性が高い。このため従来技術では、第１のクラスのヘッド１２-3は、ＨＤＤ１０の製造工程で不良ヘッドと判定される。しかし本実施形態では、第１のクラスのヘッド１２-3を不良ヘッドとしなくても、上述のように、当該第１のクラスのヘッド１２-3によるデータの書き込みを指定するライトコマンドを正常に実行できる。一方、定常状態では、第１のクラスのヘッド１２-3でも、対応するディスク１１-1の記録面ＲＳ２に正常にデータを書き込むことができる。
【００７０】
上記実施形態では、代用バッファ１１３は、第２のクラスと判定されたヘッドに対応するディスクの記録面に確保されている。しかし、代用バッファ１１３がフラッシュメモリ１８４内に確保されても構わない。この構成は、ヘッド１２-0乃至１２-3の全てが第１のクラスのヘッドである場合、つまり第２のクラスのヘッドが存在しない場合に適している。しかし、この構成は、ヘッド１２-0乃至１２-3の少なくとも１つが第２のクラスのヘッドである場合にも適用可能である。
【００７１】
また、上記実施形態では、ＨＤＤ１０が２つのディスク１１-0及び１１-1を備えている。しかし、ＨＤＤ１０が１つのディスク、或いは２つを超えるディスクを備えていても構わない。また、各ディスクの一方のディスク面だけが記録面であっても構わない。
【００７２】
以上説明した少なくとも１つの実施形態によれば、非定常状態における書き込み特性の低下に適切に対応できる磁気ディスク装置、同磁気ディスク装置を備えた電子機器及びデータ書き込み方法を提供することができる。
【００７３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７４】
１１-0，１１-2…ディスク、１２-0〜１２-3…ヘッド、１３…スピンドルモータ（ＳＰＭ）、１１３…代用バッファ、１８４…フラッシュメモリ（不揮発性メモリ）、１８４ａ…ヘッド管理テーブル、１８４ｂ…バッファ管理テーブル、１８６…ＣＰＵ（主コントローラ）。
【図１】
2012230735.tif 000003
【図２】
2012230735.tif 000004
【図３】
2012230735.tif 000005
【図４】
2012230735.tif 000006
【図５】
2012230735.tif 000007
【図６】
2012230735.tif 000008
【図７】
2012230735.tif 000009