説明

磁気ディスク装置、同磁気ディスク装置を備えた電子機器及びデータ書き込み方法

【課題】非定常状態における書き込み特性の低下に適切に対応できるようにする。
【解決手段】実施形態によれば、磁気ディスク装置は、ディスクと、バッファと、ヘッドと、判定手段と、書き込み手段とを含む。ディスクは、記録面を備えている。バッファは、記録面とは異なる領域に設けられる。ヘッドは、記録面にデータを書き込み且つ記録面からデータを読み出すのに用いられる。判定手段は、磁気ディスク装置が動作状態に遷移した直後の非定常状態においてヘッドを用いたデータ書き込みの要求が実行される際に、ヘッドが、非定常状態における動作マージンが所定レベルよりも低い低マージンヘッドであるかを判定する。書き込み手段は、ヘッドが低マージンヘッドであるならば、ヘッドを用いて記録面へデータを書き込む代わりに、当該データをバッファに書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、磁気ディスク装置、同磁気ディスク装置を備えた電子機器及びデータ書き込み方法に関する。
【背景技術】
【0002】
磁気ディスク装置は、記録媒体として磁気ディスクを備えている。磁気ディスクの回転が開始された直後は、磁気ディスク装置の特性は、定常状態とは異なることが知られている。磁気ディスクの回転は、例えば、磁気ディスク装置に電源が投入されて、当該磁気ディスク装置が動作を開始した場合に開始される。また、磁気ディスクの回転は、磁気ディスク装置に電源が投入されていても、当該磁気ディスク装置が省電力モードに設定されているために停止している状態で当該省電力モードから復帰した場合にも開始される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−243249号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述したように、磁気ディスクの回転が開始された直後のような、磁気ディスク装置の過渡状態(つまり非定常状態)では、当該磁気ディスク装置の特性は定常状態とは異なる。このような磁気ディスク装置の特性として、書き込み特性が挙げられる。具体的には、非定常状態における書き込み特性は、定常状態におけるそれよりも低下する。そこで、非定常状態においてデータ書き込みを実行するためには、書き込み特性が低下することを考慮する必要がある。
【0005】
本発明の目的は非定常状態における書き込み特性の低下に適切に対応できる磁気ディスク装置、同磁気ディスク装置を備えた電子機器及びデータ書き込み方法を提供することである。
【課題を解決するための手段】
【0006】
実施形態によれば、磁気ディスク装置は、ディスクと、バッファと、ヘッドと、判定手段と、書き込み手段とを具備する。前記ディスクは、記録面を備えている。前記バッファは、前記記録面とは異なる領域に設けられる。前記ヘッドは、前記記録面にデータを書き込み且つ前記記録面からデータを読み出すのに用いられる。前記判定手段は、前記磁気ディスク装置が動作状態に遷移した直後の非定常状態において前記ヘッドを用いたデータ書き込みの要求が実行される際に、前記ヘッドが、前記非定常状態における動作マージンが所定レベルよりも低い低マージンヘッドであるかを判定する。前記書き込み手段は、前記ヘッドが前記低マージンヘッドであるならば、前記ヘッドを用いて前記記録面へデータを書き込む代わりに、当該データを前記バッファに書き込む。
【図面の簡単な説明】
【0007】
【図1】実施形態に係る磁気ディスク装置を備えた電子機器の典型的な構成を示すブロック図。
【図2】同実施形態で適用されるディスクの記録面のフォーマットを示す概念図。
【図3】同実施形態に係る製造工程で適用される、ヘッドの動作マージンの検出を含む処理の手順を説明するためのフローチャート。
【図4】同実施形態で適用されるヘッド管理テーブルの一例を示す図。
【図5】同実施形態で適用されるバッファ管理テーブルの一例を、代用バッファと関連付けて示す図。
【図6】同実施形態に係る磁気ディスク装置がユーザによって使用される場合の動作の手順を説明するためのフローチャートの一部を示す図。
【図7】同実施形態に係る磁気ディスク装置がユーザによって使用される場合の動作の手順を説明するためのフローチャートの残りを示す図。
【発明を実施するための形態】
【0008】
以下、実施の形態につき図面を参照して説明する。
図1は実施形態に係る磁気ディスク装置を備えた電子機器の典型的な構成を示すブロック図である。図1において、電子機器は、磁気ディスク装置(HDD)10及びホスト20から構成される。本実施形態において、電子機器はパーソナルコンピュータである。しかし、電子機器がパーソナルコンピュータである必要はなく、パーソナルコンピュータ以外の電子機器、例えばビデオカメラ、音楽プレーヤー、携帯端末、携帯電話機、或いはプリンタ装置であってもよい。ホスト20はHDD10を当該ホスト20の記憶装置として使用する。ホスト20はホストインタフェース200によりHDD10と接続されている。
【0009】
HDD10は、ディスク(磁気ディスク)11-0及び11-1と、ヘッド(磁気ヘッド)12-0乃至12-3と、スピンドルモータ(SPM)13と、アクチュエータ14と、ボイスコイルモータ(VCM)15と、ドライバIC16と、ヘッドIC17と、システムLSI18とを備えている。
【0010】
ディスク11-0及び11-1は磁気記録媒体であり、一定の間隔を保って積層配置されている。ディスク11-0及び11-1は、いずれも上側と下側のディスク面を有している。本実施形態においてこれらのディスク面は、いずれもデータが磁気記録される記録面をなしている。つまり、ディスク11-0は記録面RS0及びRS1を有し、ディスク11-1は記録面RS2及びRS3を有している。
【0011】
ディスク11-0及び11-1はSPM13によって高速に回転させられる。SPM13は、ドライバIC16から供給される駆動電流(または駆動電圧)により駆動される。なお、HDD10が単一枚のディスクを備えていても構わない。
【0012】
図2は、本実施形態で適用されるディスクの記録面(ディスク面)のフォーマットを、ディスク11-0の記録面RS0を例に示す概念図である。
ディスク11-0の記録面RS0は、ユーザ領域111とシステム領域112とを備えている。ユーザ領域111は、ユーザから使用可能な記憶領域、つまりユーザから認識される記憶領域である。システム領域112はシステムが使用する記憶領域、つまりユーザからは認識されない記憶領域である。システム領域112は、ユーザ領域111に対して非ユーザ領域であるといえる。本実施形態において、システム領域112はディスク11-0の内周に確保されている。しかし、システム領域112がディスク11-0の外周に確保されていてもよい。なお、ディスク11-0の記録面RS1と、ディスク11-1の記録面RS2及びRS3も、ディスク11-0の記録面RS0と同様に、ユーザ領域111とシステム領域112とを備えている。
【0013】
本実施形態において、ディスク11-0の記録面RS0のシステム領域112の一部は、図2に示すように、代用バッファ113に割り当てられている。つまり記録面RS0のシステム領域112の一部は、代用バッファ113を備えている。代用バッファ113の役割については後述する。
【0014】
再び図1を参照する。ヘッド12-0及び12-1はディスク11-0のそれぞれ上下の記録面RS0及びRS1に対応して配置され、ヘッド12-2及び12-3はディスク11-1のそれぞれ上下の記録面RS2及びRS3に対応して配置されている。ヘッド12-0乃至12-3及び対応する記録面RS0乃至RS3は、ヘッド番号0(H0)乃至3(H3)により特定される。ヘッド12-0乃至12-4は、いずれもリード素子及びライト素子を備えている。ヘッド12-0及び12-1は、それぞれ、ディスク11-0の記録面RS0及びRS1へのデータの書き込みと当該記録面RS0及びRS1からのデータの読み出しとに用いられる。ヘッド12-2及び12-3は、それぞれ、ディスク11-1の記録面RS2及びRS3へのデータの書き込みと当該記録面RS2及びRS3からのデータの読み出しとに用いられる。
【0015】
ヘッド12-0乃至12-3は、アクチュエータ14の先端に取り付けられている。より詳細には、ヘッド12-0乃至12-3は、アクチュエータ14が有する4つのアームから延出したサスペンションの先端に取り付けられている。このような、ヘッド12-j(j=0,1,2,3)を備えたサスペンションの構造は、ヘッドジンバルアセンブリ(HGAと称する)と呼ばれる。つまりヘッド12-jは、HGAの形でアクチュエータ14のアームに取り付けられている。
【0016】
アクチュエータ14は枢軸140の回りで揺動自在に支持されている。アクチュエータ14は、VCM15を備えている。VCM15は、アクチュエータ14の駆動源として用いられる。VCM15は、ドライバIC16から供給される駆動電流(または駆動電圧)により駆動され、アクチュエータ14を枢軸140の回りに揺動させる。これにより、アクチュエータ14の各アームに取り付けられたヘッド12-jは、ディスク11-i(i=0,1)の半径方向に移動させられる。
【0017】
ディスク11-0の記録面RS0及びRS1から外れた位置、例えばディスク11-0の外周に近接する位置には、それぞれ、ランプ120-0及び120-1が配置されている。同様に、ディスク11-1の記録面RS2及びRS3から外れた位置、例えばディスク11-1の外周に近接する位置には、それぞれ、ランプ120-2及び120-3が配置されている。ランプ120-j(j=0,1,2,3)の位置は、ヘッド12-jを有するHGA(より詳細には、HGAの先端のリフトタブ)の移動経路上の位置でもある。ランプ120-jは、HDD10が非動作状態にある期間、ヘッド12-jを有するHGAを退避させておくための退避領域(パーキング領域)を提供する。以下の説明では、ヘッド12-jを有するHGAのランプ120-jへの退避を、簡略化のために、ヘッド12-jのランプ120-jへの退避と呼ぶ。
【0018】
HDD10の非動作状態とは、HDD10に供給される電源が遮断された場合のようにHDD10が動作を完全に停止している状態の他、HDD10の特定の省電力モードの状態も含むものとする。特定の省電力モードは、例えば、HDD10に電源は供給されているものの、省電力のために、ディスク11-0及び11-1の回転が停止されるモード(第1の省電力モード)である。また、特定の省電力モードが、ディスク11-0及び11-1は回転しているものの、省電力のために、HDD10内の少なくともデータの読み出し/書き込みに関する回路要素への電源の供給が遮断されるモード(第2の省電力モード)であってもよい。特定の省電力モードは、HDD10内で自律的に設定される他、ホスト20からの指示によっても設定される。ヘッド12-jは、HDD10が非動作状態にある期間、ランプ120-jに退避されている。つまりHDD10が非動作状態にある期間、ヘッド12-jはランプ120-j上に位置している。
【0019】
これに対し、HDD10の動作状態とは、ディスク11-0及び11-1が回転していて、且つヘッド12-0乃至12-3が、ディスク11-0及び11-1の記録面RS0乃至RS3上に位置している状態を指す。つまりHDD10の動作状態とは、ヘッド12-jがディスク11-iの記録面RSj上を浮上していて、当該記録面RSjへのデータの書き込みまたは当該記録面RSjからのデータの読み出しが可能な状態を指す。
【0020】
HDD10が動作状態から非動作状態に遷移する際には、ヘッド12-jは退避のためにディスク11-i上からランプ120-jに移動される。このディスク11-i上からランプ120-jへのヘッド12-jの移動は、アンロード(またはヘッドアンロード)と呼ばれる。また、HDD10が非動作状態から動作状態に遷移する際には、ヘッド12-jはランプ120-jからディスク111上に移動される。このランプ120-jからディスク111上へのヘッド12-jの移動は、ロード(またはヘッドロード)と呼ばれる。
【0021】
ドライバIC16は、システムLSI18内の後述するCPU186の制御に従い、SPM13及びVCM15を駆動する。ヘッドIC17は、ヘッド12-jにより読み出された信号(リード信号)を増幅する。ヘッドIC17はまた、システムLSI18内の後述するR/Wチャネル181から転送されるライトデータをライト電流に変換してヘッド12-jに出力する。
【0022】
システムLSI18は、複数の素子が単一チップに集積されたSOC(System-on-Chip)と呼ばれるLSIである。システムLSI18は、リード/ライトチャネル(R/Wチャネル)181、ハードディスクコントローラ(HDC)182、バッファRAM183、フラッシュメモリ184、プログラムROM185、CPU186及びRAM187を備えている。
【0023】
R/Wチャネル181は、リード/ライトに関連する信号群を処理する信号処理デバイスである。R/Wチャネル181は、リード信号をデジタル化し、このデジタル化されたデータからリードデータを復号する。R/Wチャネル181はまた、上記デジタルデータからヘッド12-jの位置決めに必要なサーボデータを抽出する。R/Wチャネル181はまた、ライトデータを符号化する。
【0024】
HDC182は、ホストインタフェース200を介してホスト20と接続されている。HDC182は、ホスト20から転送されるコマンド(ライトコマンド、リードコマンド等)を受信する。HDC182は、ホスト20と当該HDC182との間のデータ転送を制御する。HDC182は、ディスク11-iと当該HDC182との間のデータ転送を制御する。
【0025】
バッファRAM183は、ディスク11-iに書き込まれるべきデータ及びディスク11-iからヘッドIC17及びR/Wチャネル181を介して読み出されたデータを一時格納するバッファ領域を備えている。またバッファRAM183は、HDD10のパワーオン時に、テーブル参照の高速化のために、後述するヘッド管理テーブル184a及びバッファ管理テーブル184bがフラッシュメモリ184からロードされるテーブル領域も備えている。但し、以下の説明では、簡略化のためにヘッド管理テーブル184a及びバッファ管理テーブル184bは、フラッシュメモリ184に格納されている状態で参照されるものとする。
【0026】
フラッシュメモリ184は、書き換え可能な不揮発性メモリである。フラッシュメモリ184は、ヘッド管理テーブル184a及びバッファ管理テーブル184bを格納するのに用いられる。ヘッド管理テーブル184a及びバッファ管理テーブル184bについては後述する。
【0027】
プログラムROM185は、制御プログラム(ファームウェアプログラム)を予め格納する。なお、制御プログラムがフラッシュメモリ184の一部の領域に格納されていても構わない。
【0028】
CPU186は、HDD10の主コントローラとして機能する。CPU186はプログラムROM185に格納されている制御プログラムに従ってHDD10内の他の少なくとも一部の要素を制御する。RAM187の一部の領域は、CPU186の作業領域として用いられる。
【0029】
ここで、ヘッド12-0乃至12-3の動作マージンについて説明する。
HDD10が非動作状態から動作状態に切り替えられた直後(ここでは、ヘッド12-0乃至12-3が対応するディスク11-0及び11-1上にロードされた直後)は、HDD10の特性、例えばヘッド12-0乃至12-3の特性は、不安定であることが知られている。また、この要因が、ヘッド12-0乃至12-3が動作する環境の温度の低下にあることも知られている。このため、ヘッド12-0乃至12-3の特性が不安定な状態は、HDD10が動作状態に切り替えられた時点から、ある程度の時間が経過すると解消されるのが一般的である。ヘッド12-0乃至12-3の特性(つまりHDD10の特性)が不安定な状態を非定常状態と呼び、この不安定な状態が解消された状態を定常状態と呼ぶ。
【0030】
ヘッド12-0乃至12-3(HDD10)が非定常状態にある期間、ヘッド12-0乃至12-3の動作マージンは低下している。ヘッド12-0乃至12-3の動作マージンは、一般にヘッド毎に異なる。ここで、HDD10が時点t0で非動作状態から動作状態に切り替えられたものとする。この時点t0から予め定められた時間Tが経過しても、ヘッド12-0乃至12-3の中に、動作マージンが、HDD10に要求される第1のレベルL1に達しないヘッドが含まれている場合がある。このようなヘッドの動作マージンは、上記時点t0の直後において、第1のレベルL1よりも低い第2のレベルL2(L2<L1)にも達していない可能性が高い。一方、上記時点t0の直後の動作マージンが第2のレベルL2より高いヘッドでは、上記時間Tが経過した時点の動作マージンは、第1のレベルL1より高くなる。なお、多くのヘッドの動作マージンは、上記時点t0の直後において既に第1のレベルL1よりも高いのが一般的である。
【0031】
従来技術では、図1に示されるHDD10を製造する工程(より詳細には、製造工程におけるテスト工程)において、CPU186が、上記時点t0の直後におけるヘッド12-0乃至12-3の動作マージンを検出(測定)する。そして、ヘッド12-0乃至12-3の中に、動作マージンが第1のレベルL1よりも低いヘッドが存在する場合、当該ヘッドは不良であり、HDD10も不良であると判定される。
【0032】
これに対して本実施形態では、ヘッド12-0乃至12-3の中に、第2のレベルL2(L2<L1)よりも低いヘッドが存在する場合、当該ヘッドは不良であり、HDD10も不良であると判定される。一方、動作マージンが、第2のレベルL2よりも低くないが、第1のレベルL1よりも低いヘッドは、HDD10の非定常状態における動作マージンが低い第1のクラスのヘッド(低マージンヘッド)として検出される。次に、動作マージンが、第1のレベルL1よりも低くないヘッドは、HDD10の非定常状態における動作マージンが高い第2のクラスのヘッド(高マージンヘッド)として検出される。これら第1のクラスのヘッド及び第2のクラスのヘッドは、CPU186によって検出される。
【0033】
以下、本実施形態において、HDD10を製造する工程における例えばテスト工程で適用される、ヘッド12-0乃至12-3の動作マージンの検出を含む処理の手順について、図3のフローチャートを参照して説明する。
【0034】
まずCPU186は、HDD10を予め定められた時間T0だけ非動作状態に設定する(ステップ301)。CPU186は時間T0が経過した後、HDD10を非動作状態から動作状態に切り替える(ステップ302)。これにより、ヘッド12-0乃至12-3は、それぞれランプ120-0乃至120-3からディスク11-0及び11-1の記録面RS0乃至RS3にロードされる。時間T0は、HDD10が非動作状態から動作状態に切り替えられた直後、当該HDD10(特にヘッド12-0乃至12-3)が非定常状態となるのに十分な時間である。
【0035】
次にCPU186は、ヘッド番号jを0に設定する(ステップ303)。そしてCPU186は、ヘッド番号がjのヘッド12-j(ここでは、ヘッド番号が0のヘッド12-0)の動作マージンMjを検出(測定)する(ステップ304)。動作マージンの検出方法については後述する。
【0036】
次にCPU186は、ヘッド12-jの動作マージンMjが第2のレベルL2よりも低いかを判定する(ステップ305)。もし、動作マージンMjが第2のレベルL2よりも低いならば(ステップ305のYes)、CPU186はヘッド12-jは不良であると判定する(ステップ306)。この場合、説明の簡略化のために、CPU186はヘッド12-jを備えたHDD10も不良であるとして、当該HDD10に関するテスト工程を終了するものとする。
【0037】
これに対し、ヘッド12-jの動作マージンMjが第2のレベルL2よりも低くないならば(ステップ305のNo)、つまりMj≧L2であるならば、CPU186はステップ307に進む。ステップ307においてCPU186は、動作マージンMjが第1のレベルL1(L1>L2)よりも低いかを判定する。
【0038】
もし、動作マージンMjが第1のレベルL1よりも低いならば(ステップ307のYes)、CPU186は、ヘッド12-jが第1のクラスのヘッドであると判定する(ステップ308)。つまりL2≦Mj<L1であるならば、CPU186は、ヘッド12-jを第1のクラスのヘッドとして検出する。これに対し、動作マージンMjが第1のレベルL1よりも低くないならば(ステップ307のNo)、CPU186は、ヘッド12-jが第2のクラスのヘッドであると判定する(ステップ309)。つまりMj≧L1であるならば、CPU186は、ヘッド12-jを第2のクラスのヘッドとして検出する。
【0039】
CPU186は、ステップ308または309のいずれかを終了すると、ステップ310に進む。ステップ310においてCPU186は、ヘッド番号jを1インクリメントする。CPU186は、インクリメント後のヘッド番号jが、3を超えたかを判定する(ステップ311)。もし、インクリメント後のヘッド番号jが3を超えていないならば(ステップ311のNo)、CPU186は、ステップ304に戻る。そしてCPU186は、ステップ304から始まる処理を再び実行する。
【0040】
このようにCPU186は、ヘッド12-0乃至12-3が不良ヘッドでない場合でも、当該ヘッド12-0乃至12-3がそれぞれ第1のクラスのヘッドであるか、或いは第2のクラスのヘッドであるかを判定する。つまりCPU186は、ヘッド12-0乃至12-3を第1のクラスのヘッドと第2のクラスのヘッドとに分類する。本実施形態では、ヘッド12-0乃至12-2が第2のクラスのヘッドに分類され、ヘッド12-3が第1のクラスのヘッドに分類されたものとする。
【0041】
ここで、ヘッド12-0乃至12-3の動作マージンは、例えば、当該ヘッド12-0乃至12-3によって、ディスク11-0及び11-1の記録面RS0乃至RS3にデータを書き込み、書き込まれたデータを当該ヘッド12-0乃至12-3によって読み出す動作を繰り返すことによって検出される。ヘッド12-0乃至12-3の動作マージンは、読み出し時のエラーの発生率(つまりエラーレート)またはエラーレートに準ずる指標から検出可能である。エラーレートに準ずる指標としては、リードエラーの確率を適用してもよい。また、リードエラーの確率として、エラーレートと相関のよい、周知のビタビ・メトリクス(Viterbi-Metrics)マージン値(VMM)を用いてもよい。ここでは、エラーレートまたはVMMが小さいほど、対応するヘッドの動作マージンは高くなる。
【0042】
やがて、インクリメント後のヘッド番号jが3を超えたならば(ステップ311のYes)、CPU186は、ヘッド12-0乃至12-3の動作マージンの検出及び分類が終了したと判断する。するとCPU186は、ヘッド12-0乃至12-3がそれぞれ第1のクラスのヘッドまたは第2のクラスのヘッドのいずれであるかを、ヘッド管理テーブル184aに登録する(ステップ312)。次にCPU186は、ヘッド12-0乃至12-3の中に、第1のクラスと判定されたヘッドが存在するかを判定する(ステップ313)。
【0043】
もし、第1のクラスと判定されたヘッドが存在するならば(ステップ313のYes)、CPU186は、第2のクラスと判定されたヘッドに対応するディスク11-iの記録面のシステム領域112に代用バッファ113を確保する(ステップ314)。ここでは、ディスク11-0の記録面RS0のシステム領域112に代用バッファ113が確保されたものとする(図2参照)。代用バッファ113は、HDD10が非定常状態にある期間に、第1のクラスのヘッドに対応するディスクの記録面へのデータの書き込みの要求(例えば、ホスト20からの要求、つまりホスト20からのライトコマンド)が実行される場合に、当該対応するディスクの記録面に代えて当該データを書き込むのに用いられる。
【0044】
CPU186はまた、代用バッファ113を管理するためのバッファ管理テーブル184bをフラッシュメモリ184内に生成する(ステップ315)。すると、ヘッド12-0乃至12-3の動作マージンの検出を含む処理は終了する。
【0045】
一方、第1のクラスのヘッドであると判定されたヘッドが存在しないならば(ステップ313のNo)、CPU186は、ヘッド12-0乃至12-3の動作マージンの検出を含む処理を終了する。つまり、ヘッド12-0乃至12-3が全て第2のクラスのヘッドであるならば、CPU186は、バッファ管理テーブル184bを生成することなく、ヘッド12-0乃至12-3の動作マージンの検出を含む処理を終了する。
【0046】
なお、図3に示す手順は一例である。例えば全てのヘッド12-0乃至12-3の動作マージン(より詳細には、非定常状態における動作マージン)を検出(測定)する条件を同一にするために、1つのヘッド12-jの動作マージンが検出される毎に、ステップ301から始まる動作が行われてもよい。また、分類の精度を上げるために、ヘッド12-0乃至12-3の動作マージンの時間に対する変化を検出するようにしてもよい。例えば、ヘッド12-0乃至12-3の動作マージンを一定時間毎に検出し、検出された動作マージンを、それぞれ検出時点に対応するレベル(第1のレベルL1に相当)と比較することで、ヘッド12-0乃至12-3分類してもよい。例えばヘッド12-jの動作マージンが、全ての検出時点で、対応するレベルよりも高い場合だけ、当該ヘッド12-jを第2のクラスのヘッドと判定するようにしてもよい。
【0047】
図4は、ヘッド管理テーブル184aの一例を示す。
ヘッド管理テーブル184aは、ヘッド12-0乃至12-3にそれぞれ対応するエントリE0乃至E3を備えている。ヘッド管理テーブル184aのエントリE0乃至E3は、それぞれ、ヘッド番号0乃至3が設定されるヘッド番号フィールドFa1と、ヘッド番号が0乃至3のヘッド12-0乃至12-3が第1のクラスのヘッドまたは第2のクラスのヘッドのいずれであるかを示すクラスフィールドFa2とを備えている。図4に示すヘッド管理テーブル184aは、ヘッド番号が0乃至2のヘッド12-0乃至12-2は第2のクラスのヘッドであり、ヘッド番号が3のヘッド12-3は第1のクラスのヘッドであることを示す。
【0048】
図5は、バッファ管理テーブル184bの一例を、代用バッファ113と関連付けて示す。
バッファ管理テーブル184bの各エントリは、フラグフィールドFb1、論理アドレスフィールドFb2、データ長フィールドFb3及びバッファポインタフィールドFb4を備えている。
【0049】
フラグフィールドFb1は、対応するエントリが有効であるかを示すフラグF(情報)を保持する。本実施形態において、F=1は、フラグフィールドFb1の対応するエントリが有効であることを示し、F=0は、フラグフィールドFb1の対応するエントリが無効であることを示す。ヘッド管理テーブル184aが生成された段階では、F=0である。
【0050】
バッファポインタフィールドFb4は、対応するエントリで管理される代用バッファ113内の領域の開始位置を指し示すポインタ(バッファポインタ)を保持する。論理アドレスフィールドFb2及びデータ長フィールドFb3は、それぞれ、対応するエントリで管理される代用バッファ113内の領域に格納されるデータの開始論理アドレス(例えば開始論理ブロックアドレス)及びデータ長を保持する。
【0051】
本実施形態において、ヘッド管理テーブル184a及びバッファ管理テーブル184bは、フラッシュメモリ184に格納される。しかし、ヘッド管理テーブル184a及びバッファ管理テーブル184bが、代用バッファ113と同様に、第2のクラスと判定されたヘッドに対応するディスクの記録面のシステム領域112(例えばディスク11-0の記録面RS0のシステム領域112)に格納されても構わない。
【0052】
次に、HDD10がユーザによって使用される場合の動作の手順について、図6及び図7のフローチャートを参照して説明する。ここでは、ヘッド12-0乃至12-2がいずれも第2のクラスのヘッドとして、ヘッド12-3が第1のクラスのヘッドとして、ヘッド管理テーブル184aに登録されているものとする(図4参照)。
【0053】
CPU186は、例えばHDD10のパワーオンにより、図6及び図7のフローチャートに従う動作を開始する。まずCPU186は状態判定手段として機能して、HDD10(より詳細にはヘッド12-j)が非定常状態にあるかを判定する(ステップ601)。本実施形態では、CPU186は、HDD10が動作状態に切り替えられた時点t0から予め定められた時間T1(T1<T0)が経過するまでは、HDD10(ヘッド12-0乃至12-3)が非定常状態にあると判定する。つまり、HDD10が動作状態に切り替えられた時点t0から時間T1が経過した後は、CPU186は、HDD10が非定常状態にないと判定する。ここで、HDD10が非動作状態にある時間が予め定められた時間T2(T2<T0)を経過する前に、HDD10が動作状態に切り替えられた場合も、HDD10が非定常状態にないとCPU186が判定してもよい。
【0054】
なお、HDD10が動作状態に切り替えられた直後の当該HDD10の環境温度が予め定められた温度よりも低いことが検出された場合、その検出時点から予め定められた時間(例えばT1)が経過するまでは、HDD10が非定常状態にあるとCPU186が判定してもよい。また、HDD10が動作状態に切り替えられ直後に、CPU186がヘッド12-jの動作マージンを測定し、当該動作マージンが予め定められたレベルより低い場合に、HDD10が非定常状態にあると判定してもよい。
【0055】
もし、HDD10が非定常状態にないならば(ステップ601のNo)、CPU186はステップ602に進む。つまり、HDD10が定常状態にあるならば、CPU186はステップ602に進む。ステップ602においてCPU186はバッファ判定手段として機能して、代用バッファ113にデータが格納されているかを判定する。より詳細に述べるならば、CPU186は、バッファ管理テーブル184bを参照して、有効なエントリが存在するかを判定することにより、代用バッファ113にデータが格納されているかを判定する。
【0056】
もし、代用バッファ113にデータが格納されているならば(ステップ602のYes)、CPU186はステップ603に進む。ステップ603においてCPU186は、バッファ管理テーブル184bから1つの有効なエントリを選択する。ここでは、最も古い有効なエントリが選択されるものとする。この選択を容易にするために、バッファ管理テーブル184bのエントリをエントリの並び順にリング状に使用してもよい。また、最も古い有効なエントリを、当該最も古い有効なエントリを指し示す有効エントリポインタで管理し、当該有効エントリポインタをフラッシュメモリ184に格納しておいてもよい。
【0057】
次にCPU186は書き込み手段として機能して、選択されたエントリに保持されているバッファポインタ、開始論理アドレス及びデータ長に基づいて、代用バッファ113からデータを読み出し、当該データを、当該データが本来書き込まれるべきディスク11-iの領域(以下、本来領域と称する)に書き戻す(ステップ604)。ここで、代用バッファ113から読み出されるデータは、上記バッファポインタ及びデータ長に基づいて特定される。また上記本来領域は、上記開始論理アドレス及びデータ長に基づいて特定される。
【0058】
CPU186は上述の書き戻し(ステップ604)の後、バッファ管理テーブル184b内の上記選択されたエントリを有効エントリから無効エントリに変更する(ステップ605)。つまりCPU186は、上記選択されたエントリのフラグフィールドFb1をF=1からF=0に更新する。なお、バッファ管理テーブル184bのエントリが無効であるか或いは有効であるかを、当該エントリに特定のデータが書かれているか否かによって管理してもよい。この場合、バッファ管理テーブル184bのエントリが、フラグフィールドFb1を有している必要はない。
【0059】
上述の書き戻しに関する一連の処理(ステップ603乃至605)は、ホスト20(ユーザ)から認識されない処理である。そこで本実施形態では、ステップ603乃至605はシステムのバックグラウンドで実行される。つまりステップ603乃至605は通常動作の合間に実行される。
【0060】
CPU186はステップ603乃至605を実行するとステップ606に進む。CPU186はまた、代用バッファ113にデータが格納されていないならば(ステップ602のNo)、ステップ603乃至605をスキップしてステップ606に進む。ステップ606においてCPU186は、通常動作を実行する。
【0061】
この通常動作においてCPU186は、ホスト20からHDD10にライトコマンド(書き込み要求)が送られているならば書き込み手段として機能して、当該ライトコマンドで指定されたディスク11-i上の領域にヘッド12-jを用いてデータを書き込む。また通常動作においてCPU186は、ホスト20からHDD10にリードコマンド(読み出し要求)が送られているならば読み出し手段として機能して、当該リードコマンドで指定されたディスク11-i上の領域からヘッド12-jを用いてデータを読み出す。これによりステップ606(通常動作)は終了する。これに対し、ホスト20からHDD10にリードコマンドまたはライトコマンドが送られていないならば、CPU186はそのままステップ606(通常動作)を終了する。CPU186はステップ606を終了すると、ステップ601に戻る。
【0062】
一方、HDD10が非定常状態にあるならば(ステップ601のYes)、CPU186はステップ701に進む。ステップ701においてCPU186は状態判定手段として機能して、HDD10が非定常状態から定常状態に遷移したかを判定する。本実施形態では、CPU186は、HDD10が動作状態に切り替えられた時点t0から時間T1が経過したならば、HDD10が非定常状態から定常状態に遷移したと判定する。
【0063】
もし、HDD10が定常状態に遷移したならば(ステップ701のYes)、CPU186はステップ601に戻る。この場合、HDD10は非定常状態にないことから(ステップ601のNo)、CPU186はステップ602に進む。
【0064】
これに対し、HDD10が定常状態に遷移していないならば(ステップ701のNo)、CPU186は、第1のクラスのヘッド12-jによるデータの書き込みが要求されているかを判定する(ステップ702)。つまりCPU186は、第1のクラスのヘッド12-j(ここではヘッド12-3)によるデータの書き込みを指定するライトコマンドが受信されているかを判定する。
【0065】
もし、第1のクラスのヘッド12-j(12-3)によるデータの書き込みが要求されているならば(ステップ702のYes)、CPU186は書き込み手段として機能して、要求されたデータ(つまりライトコマンドで指定されたデータ)を、第2のクラスのヘッド12-0を用いて代用バッファ113内の空き領域に書き込む(ステップ703)。本実施形態では代用バッファ113の管理を容易にするために、当該代用バッファ113がリングバッファとして用いられるものとする。この場合、上記空き領域の開始位置は、代用バッファ113内の前回データが書き込まれた領域に後続する位置となる。もし、この領域の終了位置が代用バッファ113の終端であるならば、空き領域の開始位置は、代用バッファ113の始端となる。この空き領域の開始位置を、当該開始位置を示す空き領域ポインタで管理し、当該空き領域ポインタをフラッシュメモリ184に格納しておいてもよい。
【0066】
次にCPU186は、バッファ管理テーブル184bから1つの無効エントリを選択する(ステップ704)。そしてCPU186はバッファ管理手段として機能して、選択されたエントリに、代用バッファ113内の今回データが書き込まれた領域の開始位置を指し示すバッファポインタ、本来領域(当該データが本来書き込まれるべきディスク11-i上の領域)の開始位置を示す論理アドレス、及び当該データのデータ長を設定する(ステップ705)。次にCPU186は、バッファ管理テーブル184b内の上記選択されたエントリを無効エントリから有効エントリに変更する(ステップ706)。つまりCPU186は、上記選択されたエントリのフラグフィールドFb1をF=0からF=1に更新する。CPU186はステップ706を終了すると、ステップ701に戻る。
【0067】
一方、第1のクラスのヘッド12-jによるデータの書き込みでないならば(ステップ701のYes)、CPU186は、上記ステップ606と同様に通常動作を実行する(ステップ707)。そしてCPU186は、ステップ701に戻る。
【0068】
このように本実施形態によれば、HDD10が非定常状態から定常状態に遷移する前に(ステップ701のNo)、第1のクラスのヘッド12-jによるデータの書き込みを指定するライトコマンドを実行すべき場合(ステップ702のYes)、当該第1のクラスのヘッド12-j(12-3)によるディスク11-i上の本来領域への書き込みが抑止される。つまり、HDD10が非定常状態にある期間、第1のクラスのヘッド12-j(12-3)を用いるデータの書き込みが抑止される。そして、本来領域への書き込みに代えて、ライトコマンドによって指定されたデータが代用バッファ113に書き込まれる(ステップ703)。
【0069】
本実施形態では、代用バッファ113は、第2のクラスのヘッド12-0乃至12-2のうちのヘッド12-0に対応するディスク11-0内の記録面RS0のシステム領域112に確保されている。この場合、代用バッファ113へのデータの書き込みは、第2のクラスのヘッド12-0を用いて行われる。非定常状態における第2のクラスのヘッド12-0の動作マージンは、前述のように、第1のクラスのヘッド12-3とは異なって十分に高い。このため、たとえ非定常状態であっても、第2のクラスのヘッド12-0を用いた代用バッファ113へのデータの書き込みは正常に行える。これに対して、ライトコマンドによって指定された第1のクラスのヘッド12-3を用いて本来領域にデータを書き込んだならば、エラーが発生する可能性が高い。このため従来技術では、第1のクラスのヘッド12-3は、HDD10の製造工程で不良ヘッドと判定される。しかし本実施形態では、第1のクラスのヘッド12-3を不良ヘッドとしなくても、上述のように、当該第1のクラスのヘッド12-3によるデータの書き込みを指定するライトコマンドを正常に実行できる。一方、定常状態では、第1のクラスのヘッド12-3でも、対応するディスク11-1の記録面RS2に正常にデータを書き込むことができる。
【0070】
上記実施形態では、代用バッファ113は、第2のクラスと判定されたヘッドに対応するディスクの記録面に確保されている。しかし、代用バッファ113がフラッシュメモリ184内に確保されても構わない。この構成は、ヘッド12-0乃至12-3の全てが第1のクラスのヘッドである場合、つまり第2のクラスのヘッドが存在しない場合に適している。しかし、この構成は、ヘッド12-0乃至12-3の少なくとも1つが第2のクラスのヘッドである場合にも適用可能である。
【0071】
また、上記実施形態では、HDD10が2つのディスク11-0及び11-1を備えている。しかし、HDD10が1つのディスク、或いは2つを超えるディスクを備えていても構わない。また、各ディスクの一方のディスク面だけが記録面であっても構わない。
【0072】
以上説明した少なくとも1つの実施形態によれば、非定常状態における書き込み特性の低下に適切に対応できる磁気ディスク装置、同磁気ディスク装置を備えた電子機器及びデータ書き込み方法を提供することができる。
【0073】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0074】
11-0,11-2…ディスク、12-0〜12-3…ヘッド、13…スピンドルモータ(SPM)、113…代用バッファ、184…フラッシュメモリ(不揮発性メモリ)、184a…ヘッド管理テーブル、184b…バッファ管理テーブル、186…CPU(主コントローラ)。

【特許請求の範囲】
【請求項1】
磁気ディスク装置において、
記録面を備えたディスクと、
前記記録面とは異なる領域に設けられるバッファと、
前記記録面にデータを書き込み且つ前記記録面からデータを読み出すのに用いられるヘッドと、
前記磁気ディスク装置が動作状態に遷移した直後の非定常状態において前記ヘッドを用いたデータ書き込みの要求が実行される際に、前記ヘッドが、前記非定常状態における動作マージンが所定レベルよりも低い低マージンヘッドであるかを判定する判定手段と、
前記ヘッドが前記低マージンヘッドであるならば、前記ヘッドを用いて前記記録面へデータを書き込む代わりに、当該データを前記バッファに書き込む書き込み手段と
を具備する磁気ディスク装置。
【請求項2】
前記書き込み手段は、前記ヘッドが前記低マージンヘッドでないならば、前記ヘッドを用いて前記記録面へデータを書き込む請求項1記載の磁気ディスク装置。
【請求項3】
前記磁気ディスク装置が前記非定常状態から定常状態に遷移した後、前記書き込み手段は、前記バッファに書かれているデータを、前記ディスク上の本来書き込まれるべき領域に前記ヘッドを用いて書き戻す請求項2記載の磁気ディスク装置。
【請求項4】
前記ヘッドを用いて前記記録面へデータを書き込む代わりに当該データが書き込まれた前記バッファ内の領域を示す情報と前記記録面上の本来書き込まれるべき領域とを示す情報を格納するバッファ管理テーブルを更に具備し、
前記書き込み手段は、前記バッファ管理テーブルに基づいて、前記データと前記本来書き込まれるべき領域とを特定する
請求項3記載の磁気ディスク装置。
【請求項5】
前記ヘッドが前記低マージンヘッドであるかを示す情報を予め格納するヘッド管理テーブルを更に具備し、
前記判定手段は、前記ヘッドが前記低マージンヘッドであるかを前記ヘッド管理テーブルに基づいて判定する
請求項1記載の磁気ディスク装置。
【請求項6】
前記記録面、前記ディスク及び前記ヘッドは、それぞれ、第1の記録面、第1のディスク及び第1のヘッドであり、
前記磁気ディスク装置は、第2の記録面にデータを書き込み且つ前記第2の記録面からデータを読み出すのに用いられる第2のヘッドを更に備え、
前記第2の記録面は、前記第1のディスクの前記第1の記録面とは反対側、または前記磁気ディスク装置が更に備える第2のディスクに備えられており、
前記第2のヘッドは前記非定常状態における動作マージンが前記所定レベルよりも高い高マージンヘッドであり、
前記第2の記録面の一部が前記バッファとして用いられる
請求項1記載の磁気ディスク装置。
【請求項7】
磁気ディスク装置と、
前記磁気ディスク装置を記憶装置として使用するホストとを具備し、
前記磁気ディスク装置は、
記録面を備えたディスクと、
前記記録面とは異なる領域に設けられるバッファと、
前記記録面にデータを書き込み且つ前記記録面からデータを読み出すのに用いられるヘッドと、
前記磁気ディスク装置が動作状態に遷移した直後の非定常状態において前記ヘッドを用いたデータ書き込みの要求が実行される際に、前記ヘッドが、前記非定常状態における動作マージンが所定レベルよりも低い低マージンヘッドであるかを判定する判定手段と、
前記ヘッドが前記低マージンヘッドであるならば、前記ヘッドを用いて前記記録面へデータを書き込む代わりに、当該データを前記バッファに書き込む書き込み手段とを具備する
電子機器。
【請求項8】
記録面を備えたディスクと、前記記録面とは異なる領域に設けられるバッファと、前記記録面にデータを書き込み且つ前記記録面からデータを読み出すのに用いられるヘッドとを備えた磁気ディスク装置におけるデータ書き込み方法であって、
前記磁気ディスク装置が動作状態に遷移した直後の非定常状態において前記ヘッドを用いたデータ書き込みの要求が実行される際に、前記ヘッドが、前記非定常状態における動作マージンが所定レベルよりも低い低マージンヘッドであるかを判定し、
前記ヘッドが前記低マージンヘッドであるならば、前記ヘッドを用いて前記記録面へデータを書き込む代わりに、当該データを前記バッファに書き込む
データ書き込み方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−230735(P2012−230735A)
【公開日】平成24年11月22日(2012.11.22)
【国際特許分類】
【出願番号】特願2011−98306(P2011−98306)
【出願日】平成23年4月26日(2011.4.26)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】