(57)【特許請求の範囲】
【請求項１】
データを記憶するディスクと前記ディスクへデータを読み書きするためのヘッドとを備えるハードディスクドライブの制御装置であって、
前記ディスクの最大容量位置である第１位置に前記ヘッドを移動させる第１移動命令を出力し、前記第１移動命令の出力後に、前記第１位置と異なる第２位置に前記ヘッドを移動させる第２移動命令を出力する命令部と、
前記ディスクに記録されたスマート情報に基づいて前記ヘッドが前記第２位置に移動しているか否かを判定する移動判定部と
を備え、
前記ヘッドが前記第２位置に移動していないと判定された場合に、前記命令部が前記ヘッドに前記第２移動命令を出力する
ハードディスクドライブの制御装置。
【請求項２】
データを記憶するディスクと前記ディスクへデータを読み書きするためのヘッドとを備えるハードディスクドライブの制御装置であって、
前記ディスクのうちアクセス頻度が所定値未満のデータが格納される位置である第１位置に前記ヘッドを移動させる第１移動命令を出力し、前記第１移動命令の出力後に、前記第１位置と異なる第２位置に前記ヘッドを移動させる第２移動命令を出力する命令部と、
前記ディスクに記録されたスマート情報に基づいて前記ヘッドが前記第２位置に移動しているか否かを判定する移動判定部と
を備え、
前記ヘッドが前記第２位置に移動していないと判定された場合に、前記命令部が前記ヘッドに前記第２移動命令を出力する
ハードディスクドライブの制御装置。
【請求項３】
データを記憶するディスクと前記ディスクへデータを読み書きするためのヘッドとを備えるハードディスクドライブの制御装置であって、
前記ディスクの第１位置に記録されたデータを前記ヘッドに読み出させるリード命令を出力し、前記第１位置から読み出したデータを前記ヘッドに前記第１位置へ書き込ませるライト命令を出力し、前記ライト命令の出力後に、前記第１位置と異なる第２位置に前記ヘッドを移動させる第２移動命令を出力する命令部と、
前記ディスクに記録されたスマート情報に基づいて前記ヘッドが前記第２位置に移動しているか否かを判定する移動判定部と
を備え、
前記ヘッドが前記第２位置に移動していないと判定された場合に、前記命令部が前記ヘッドに前記第２移動命令を出力する
ハードディスクドライブの制御装置。
【請求項４】
前記第２位置が、前記ディスクから離れた退避位置である
請求項１から請求項３の何れか１項に記載のハードディスクドライブの制御装置。
【請求項５】
前記第１位置が、一定時間内のアクセス数が０である位置である
請求項２に記載のハードディスクドライブの制御装置。
【請求項６】
前記ハードディスクドライブの温度を取得する温度取得部をさらに備え、
前記命令部が、前記温度取得部が取得した前記温度が所定値未満である場合に、前記リード命令を出力する
請求項３に記載のハードディスクドライブの制御装置。
【請求項７】
データを記憶するディスクと前記ディスクへデータを読み書きするためのヘッドとを備えるハードディスクドライブの制御方法であって、
前記ディスクの最大容量位置である第１位置に前記ヘッドを移動させる第１移動命令を出力することと、
前記第１移動命令の出力後に、前記第１位置と異なる第２位置に前記ヘッドを移動させる第２移動命令を出力することと、
前記ディスクに記録されたスマート情報に基づいて前記ヘッドが前記第２位置に移動しているか否かを判定することと、
前記ヘッドが前記第２位置に移動していないと判定された場合に、前記ヘッドに前記第２移動命令を出力することと
を含むハードディスクドライブの制御方法。
【請求項８】
データを記憶するディスクと前記ディスクへデータを読み書きするためのヘッドとを備えるハードディスクドライブの制御装置に、
前記ディスクの最大容量位置である第１位置に前記ヘッドを移動させる第１移動命令を出力することと、
前記第１移動命令の出力後に、前記第１位置と異なる第２位置に前記ヘッドを移動させる第２移動命令を出力することと、
前記ディスクに記録されたスマート情報に基づいて前記ヘッドが前記第２位置に移動しているか否かを判定することと、
前記ヘッドが前記第２位置に移動していないと判定された場合に、前記ヘッドに前記第２移動命令を出力することと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスクドライブの制御装置、ハードディスクドライブの制御方法、およびプログラムに関する。
【背景技術】
【０００２】
特許文献１、２には、ハードディスクドライブにおいてディスクとヘッドとが衝突することを防ぐために、ヘッドを所定の退避位置に移動させる技術が開示されている。特許文献３には、ディスクで潤滑膜が波状化することを防ぐために、ヘッドを移動させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００８／１１７３９０号
【特許文献２】特開２００９−１２３３２１号公報
【特許文献３】特開２００３−１５１２２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ヘッドを駆動させるアクチュエータの軸受に設けられるベアリングにグリスが溜まることで、ヘッドの動作が不安定になることがある。ヘッドの動作が不安定になると、ヘッドがディスクに吸着し、ハードディスクドライブの故障につながる可能性がある。グリスは、アクチュエータの可動範囲のうち、動作させる頻度の少ない範囲に溜まりやすい。ハードディスクドライブにスタンバイ命令を送ることで、ヘッドを退避位置に移動させることができる。しかしながら、既にヘッドが退避位置にある場合、スタンバイ命令を送ってもヘッドが動かない可能性がある。
本発明の目的は、上述した課題を解決するハードディスクドライブの制御装置、ハードディスクドライブの制御方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明の第１の態様によれば、ハードディスクドライブの制御装置は、データを記憶するディスクと前記ディスクへデータを読み書きするためのヘッドとを備えるハードディスクドライブの制御装置であって、前記ディスクの最大容量位置である第１位置に前記ヘッドを移動させる第１移動命令を出力し、前記第１移動命令の出力後に、前記第１位置と異なる第２位置に前記ヘッドを移動させる第２移動命令を出力する命令部と、前記ディスクに記録されたスマート情報に基づいて前記ヘッドが前記第２位置に移動しているか否かを判定する移動判定部とを備え、前記ヘッドが前記第２位置に移動していないと判定された場合に、前記命令部が前記ヘッドに前記第２移動命令を出力する。
【０００６】
本発明の第２の態様によれば、ハードディスクドライブの制御装置は、データを記憶するディスクと前記ディスクへデータを読み書きするためのヘッドとを備えるハードディスクドライブの制御装置であって、前記ディスクのうちアクセス頻度が所定値未満のデータが格納される位置である第１位置に前記ヘッドを移動させる第１移動命令を出力し、前記第１移動命令の出力後に、前記第１位置と異なる第２位置に前記ヘッドを移動させる第２移動命令を出力する命令部と、前記ディスクに記録されたスマート情報に基づいて前記ヘッドが前記第２位置に移動しているか否かを判定する移動判定部とを備え、前記ヘッドが前記第２位置に移動していないと判定された場合に、前記命令部が前記ヘッドに前記第２移動命令を出力する。
【０００７】
本発明の第３の態様によれば、ハードディスクドライブの制御装置は、データを記憶するディスクと前記ディスクへデータを読み書きするためのヘッドとを備えるハードディスクドライブの制御装置であって、前記ディスクの第１位置に記録されたデータを前記ヘッドに読み出させるリード命令を出力し、前記第１位置から読み出したデータを前記ヘッドに前記第１位置へ書き込ませるライト命令を出力し、前記ライト命令の出力後に、前記第１位置と異なる第２位置に前記ヘッドを移動させる第２移動命令を出力する命令部と、前記ディスクに記録されたスマート情報に基づいて前記ヘッドが前記第２位置に移動しているか否かを判定する移動判定部とを備え、前記ヘッドが前記第２位置に移動していないと判定された場合に、前記命令部が前記ヘッドに前記第２移動命令を出力する。
【０００８】
本発明の第４の態様によれば、ハードディスクドライブの制御方法は、データを記憶するディスクと前記ディスクへデータを読み書きするためのヘッドとを備えるハードディスクドライブの制御方法であって、前記ディスクの最大容量位置である第１位置に前記ヘッドを移動させる第１移動命令を出力することと、前記第１移動命令の出力後に、前記第１位置と異なる第２位置に前記ヘッドを移動させる第２移動命令を出力することと、前記ディスクに記録されたスマート情報に基づいて前記ヘッドが前記第２位置に移動しているか否かを判定することと、前記ヘッドが前記第２位置に移動していないと判定された場合に、前記ヘッドに前記第２移動命令を出力することとを含む。
【０００９】
本発明の第５の態様によれば、プログラムは、データを記憶するディスクと前記ディスクへデータを読み書きするためのヘッドとを備えるハードディスクドライブの制御装置に、前記ディスクの最大容量位置である第１位置に前記ヘッドを移動させる第１移動命令を出力することと、前記第１移動命令の出力後に、前記第１位置と異なる第２位置に前記ヘッドを移動させる第２移動命令を出力することと、前記ディスクに記録されたスマート情報に基づいて前記ヘッドが前記第２位置に移動しているか否かを判定することと、前記ヘッドが前記第２位置に移動していないと判定された場合に、前記ヘッドに前記第２移動命令を出力することとを実行させる。
【発明の効果】
【００１０】
上記態様のうち少なくとも１つの態様によれば、ヘッドを第１位置から第２位置へ動かすことにより、アクチュエータの軸受にグリスが溜まることを防ぐことができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係るコンピュータの構成を示す概略ブロック図である。
【図２】第１の実施形態に係るハードディスクドライブの構成を示す概略斜視図である。
【図３】第１の実施形態に係るＣＰＵのソフトウェア構成を示す概略ブロック図である。
【図４】第１の実施形態に係るコンピュータによるハードディスクドライブの制御方法を示すフローチャートである。
【図５】第２の実施形態に係るＣＰＵのソフトウェア構成を示す概略ブロック図である。
【図６】第３の実施形態に係るコンピュータによるハードディスクドライブの制御方法を示すフローチャートである。
【図７】ハードディスクドライブの制御装置の基本構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら実施形態について詳しく説明する。
〈第１の実施形態〉
図１は、第１の実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ１００は、ＣＰＵ１１０、ハードディスクドライブ１２０、メインメモリ１３０、およびインタフェース１４０を備える。
ＣＰＵ１１０は、ハードディスクドライブ１２０に記録されたプログラムを読み出し、プログラムに従って処理を実行する。当該プログラムには、ハードディスクドライブ１２０の故障を予防するための制御プログラムが含まれる。ＣＰＵ１１０は、ハードディスクドライブ１２０に命令を出力し、命令によって読み出されたデータを取得する。ＣＰＵ１１０は、ハードディスクドライブ１２０の制御装置の一例である。
ハードディスクドライブ１２０は、プログラムおよびデータを記憶するストレージである。
メインメモリ１３０は、ＣＰＵ１１０に読み出されたプログラムおよび当該プログラムの実行に用いるデータを記憶する。
インタフェース１４０は、外部装置およびネットワークとの接続を中継する。
【００１３】
図２は、第１の実施形態に係るハードディスクドライブの構成を示す概略斜視図である。
ハードディスクドライブ１２０は、筐体１２１、ディスク１２２、モータ１２３、ヘッド１２４、アクチュエータ１２５、コントローラ１２６を備える。
筐体１２１はハードディスクドライブ１２０の外殻をなす。ディスク１２２、モータ１２３、ヘッド１２４およびアクチュエータ１２５は、筐体１２１内に設けられる。コントローラ１２６は、筐体１２１の外部に設けられても良い。
ディスク１２２は、データを記憶する記憶媒体である。ディスク１２２への記録は、ディスク１２２の外周側から内周側へ向けてなされる。つまり、ディスク１２２の最大容量位置Ｐｍａｘは、ディスク１２２の最内周側の位置である。ディスク１２２の最小容量位置Ｐｍｉｎは、ディスク１２２の最外周側の位置である。ディスク１２２には、スマート（ＳＭＡＲＴ：Self-Monitoring Analysis and Reporting Technology）情報が記録される。スマート情報とは、ハードディスクドライブ１２０における自己診断の結果を示す情報である。
モータ１２３は、ディスク１２２を回転させる。
ヘッド１２４は、ディスク１２２からデータを読み出し、またはディスク１２２にデータを書き込む。ヘッド１２４は、データの書き込みまたは読み出しを行うときに、ディスク１２２との間に所定の間隔を隔てて浮上する。
アクチュエータ１２５は、回転軸回りにヘッド１２４を回動させることで、ヘッド１２４の先端をディスク１２２の径方向に沿って移動させる。
コントローラ１２６は、ＣＰＵ１１０からの命令に従ってヘッド１２４およびアクチュエータ１２５を駆動させる。具体的には、コントローラ１２６は、ＣＰＵ１１０からリード命令を受け付けると、ヘッド１２４の先端が指定のリード位置に位置するようにアクチュエータ１２５を制御し、ヘッド１２４に流れる電流からリード位置に記録されたデータを読み取る。コントローラ１２６は、ＣＰＵ１１０からライト命令を受け付けると、ヘッド１２４の先端が指定のライト位置に位置するようにアクチュエータ１２５を制御し、ヘッド１２４に電流を流すことで、からライト位置にデータを書き込む。コントローラ１２６は、ＣＰＵ１１０からスタンバイ命令を受け付けると、ヘッド１２４の先端が所定の退避位置Ｐｒｅｔに位置するようにアクチュエータ１２５を制御する。退避位置Ｐｒｅｔとは、ディスク１２２から径方向に離れた位置である。つまり、退避位置Ｐｒｅｔは、ディスク１２２の最小容量位置Ｐｍｉｎよりさらに外周側の位置である。
【００１４】
図３は、第１の実施形態に係るＣＰＵのソフトウェア構成を示す概略ブロック図である。
ＣＰＵ１１０は、ハードディスクドライブ１２０から制御プログラムを読み出して実行することで、条件判定部１１１、命令部１１２、取得部１１３、最大容量認識部１１４、計数部１１５、リトライ判定部１１６を備える。
条件判定部１１１は、ヘッド１２４の駆動制御を行うための条件が満たされたか否かを判定する。条件の例としては、オペレーティングシステムのシャットダウン、ＢＩＯＳ（Basic Input-Output System）などのファームウェアの起動、アイドル状態通知の受信、温度の低下が挙げられる。条件判定部１１１は、温度取得部の一例である。
命令部１１２は、ハードディスクドライブ１２０に対し、リード命令、ライト命令、およびスタンバイ命令を出力する。
取得部１１３は、リード命令によって読み出されたデータをハードディスクドライブ１２０から取得する。
最大容量認識部１１４は、ハードディスクドライブ１２０の最大容量を認識する。
計数部１１５は、命令部１１２によるスタンバイ命令の実施回数を計算する。
リトライ判定部１１６は、計数部１１５が算出する実施回数に基づいてスタンバイ命令を出力するか否かを判定する。
【００１５】
次に、第１の実施形態に係るコンピュータ１００の動作について説明する。
図４は、第１の実施形態に係るコンピュータによるハードディスクドライブの制御方法を示すフローチャートである。
条件判定部１１１は、所定の条件が満たされたか否かを判定する（ステップＳ１）。具体的には、条件判定部１１１は、シャットダウン指示を受け付けたこと、ＢＩＯＳを起動したこと、アイドル状態通知を受信したことの、いずれかが満たされた場合に、条件が満たされたと判定する。
【００１６】
条件判定部１１１が条件が満たされていないと判定した場合（ステップＳ１：ＮＯ）、命令部１１２は、ハードディスクドライブ１２０にスマート情報のリード命令を出力する（ステップＳ２）。取得部１１３は、ハードディスクドライブ１２０からスマート情報を取得する（ステップＳ３）。次に、条件判定部１１１は、取得したスマート情報からハードディスクドライブ１２０の温度を読み取る（ステップＳ４）。温度に係る情報は、スマート情報のうちＣ２に割り当てられている。条件判定部１１１は、読み取った温度が所定の閾値（例えば摂氏１０度）以上であるか否かを判定する（ステップＳ５）。温度が閾値以上である場合（ステップＳ５：ＹＥＳ）、ＣＰＵ１１０はステップＳ１に処理を戻し、条件の判定を繰り返す。
【００１７】
温度が閾値未満である場合（ステップＳ５：ＮＯ）、最大容量認識部１１４は、ハードディスクドライブ１２０のコントローラ１２６から、ディスク１２２の最大容量を取得する（ステップＳ６）。次に、命令部１１２は、ハードディスクドライブ１２０にステップＳ６で取得した最大容量を指定してデータのリード命令を出力する（ステップＳ７）。次に、取得部１１３は、ハードディスクドライブ１２０から最大容量位置のデータを取得する（ステップＳ８）。次に、命令部１１２は、ハードディスクドライブ１２０にステップＳ６で取得した最大容量を指定して、ステップＳ８で取得したデータのライト命令を出力する（ステップＳ９）。
【００１８】
次に、命令部１１２は、ハードディスクドライブ１２０にスマート情報のリード命令を出力する（ステップＳ１０）。取得部１１３は、ハードディスクドライブ１２０からスマート情報を取得する（ステップＳ１１）。次に、条件判定部１１１は、取得したスマート情報からハードディスクドライブ１２０の温度を読み取る（ステップＳ１２）。条件判定部１１１は、読み取った温度が所定の閾値以上であるか否かを判定する（ステップＳ１３）。温度が閾値未満である場合（ステップＳ１３：ＮＯ）、ＣＰＵ１１０はステップＳ７に処理を戻し、最大容量位置におけるデータのリードライトを繰り返す。ハードディスクドライブ１２０は、データのライトによりヘッド１２４に電気を流れることで、温度を上昇させることができる。
【００１９】
ステップＳ１で条件が満たされた場合（ステップＳ１：ＹＥＳ）、またはステップＳ１３で温度が閾値以上となった場合（ステップＳ１３：ＹＥＳ）、計数部１１５は、スタンバイ命令の実施回数を０にセットする（ステップＳ１４）。最大容量認識部１１４は、ハードディスクドライブ１２０のコントローラ１２６から、ディスク１２２の最大容量を取得する（ステップＳ１５）。次に、リトライ判定部１１６は、計数部１１５が算出するスタンバイ命令の実施回数が所定のリトライ回数（例えば１０回）以上であるか否かを判定する（ステップＳ１６）。
【００２０】
スタンバイ命令の実施回数がリトライ回数未満である場合（ステップＳ１６：ＮＯ）、命令部１１２は、ハードディスクドライブ１２０にステップＳ１５で取得した最大容量を指定してデータのリード命令を出力する（ステップＳ１７）。これにより、ハードディスクドライブ１２０のコントローラ１２６は、ヘッド１２４がディスク１２２の最大容量位置Ｐｍａｘに移動するようアクチュエータ１２５を制御する。最大容量位置Ｐｍａｘは、第１位置の一例である。つまり、最大容量を指定するリード命令は、第１移動命令の一例である。なお、通常、最大容量位置Ｐｍａｘは、アクセス頻度が所定値（例えば、過去１カ月間のアクセス数が０回）以下のデータが格納される位置である。なお、「最大容量を指定するリード命令」は、最大容量位置Ｐｍａｘのデータを読み取らせるもののみならず、最大容量位置Ｐｍａｘの近傍の位置のデータを読み取らせるものをも含む。
次に、命令部１１２は、ハードディスクドライブ１２０にスタンバイ命令を出力する（ステップＳ１８）。これにより、ハードディスクドライブ１２０のコントローラ１２６は、ヘッド１２４が退避位置Ｐｒｅｔに移動するようアクチュエータ１２５を制御する。計数部１１５は、スタンバイ命令の実施回数に１を加算する（ステップＳ１９）。退避位置Ｐｒｅｔは、第２位置の一例である。つまり、スタンバイ命令は、第２移動命令の一例である。そして、コンピュータ１００は、処理をステップＳ１６に戻す。
ステップＳ３においてスタンバイ命令の実施回数がリトライ回数以上である場合（ステップＳ１９：ＹＥＳ）、コンピュータ１００は、ハードディスクドライブ１２０の制御処理を終了する。
【００２１】
このように、第１の実施形態によれば、コンピュータ１００は、ディスク１２２の最大容量位置Ｐｍａｘにヘッド１２４を移動させるリード命令を出力し、その後に、退避位置Ｐｒｅｔにヘッド１２４を移動させるスタンバイ命令を出力する。これにより、アクチュエータ１２５を可動範囲全体に亘って駆動させることができるため、アクチュエータ１２５の軸受にグリスが溜まることを防ぐことができる。またコンピュータ１００は、ヘッド１２４を退避位置Ｐｒｅｔに移動させることで、コンピュータ１００が異常終了したとしても、ヘッド１２４とディスク１２２とが衝突することを防ぐことができる。
【００２２】
また、第１の実施形態においては、コンピュータ１００は、ハードディスクドライブ１２０の温度が低い場合に、リード命令とスタンバイ命令とを、所定のリトライ回数だけ繰り返し実行する。これは、ハードディスクドライブ１２０が命令の実行に失敗する可能性があるので、ハードディスクドライブ１２０のヘッド１２４を確実に動かすことを目的としている。
【００２３】
また、第１の実施形態においては、ハードディスクドライブ１２０の温度が低い場合、コンピュータ１００は、リード命令で取得したデータを同じ位置に書き込ませるライト命令を出力する。これにより、ヘッド１２４に電気を供給させ、ハードディスクドライブ１２０の温度を上昇させることができる。グリスは低温で粘度が高くなるため、ハードディスクドライブ１２０の温度を上昇させることで、グリスをアクチュエータ１２５の軸受に溜まりにくくすることができる。またコンピュータ１００は、取得したデータを同じ位置に書き込ませることにより、データの破損を防ぐことができる。
【００２４】
なお、第１の実施形態では、コンピュータ１００は、最大容量位置Ｐｍａｘを指定したリード命令の後にスタンバイ命令を出力するが、他の実施形態では、これに限られない。例えば、他の実施形態に係るコンピュータ１００は、最大容量位置Ｐｍａｘ以外の位置を指定したリード命令の後にスタンバイ命令を出力してもよい。このような場合においても、少なくとも確実にヘッド１２４を動かすことができる。また、他の実施形態では、コンピュータ１００は、最大容量位置Ｐｍａｘを指定したリード命令の後に最小容量位置Ｐｍｉｎを指定したリード命令を出力してもよい。また、他の実施形態では、コンピュータ１００は、スタンバイ命令に代えてアイドル命令を出力してもよい。
【００２５】
なお、第１の実施形態では、コンピュータ１００は、スマート情報からハードディスクドライブ１２０の温度を取得するが、これに限られない。例えば、ハードディスクドライブ１２０のコントローラ１２６が、温度が定格範囲から外れたときにアラームを出力する場合、コンピュータ１００は、当該アラームからハードディスクドライブ１２０の温度を取得してもよい。
【００２６】
〈第２の実施形態〉
第１の実施形態に係るコンピュータ１００は、アクチュエータの軸受にグリスが溜まることを防ぐため、最大容量位置Ｐｍａｘを指定したリード命令の後にスタンバイ命令を出力する。これに対し、第２の実施形態に係るコンピュータ１００は、アクチュエータの軸受にグリスが溜まることを防ぐため、アクセス頻度が低いデータが格納される位置を指定したリード命令の後にスタンバイ命令を出力する。
【００２７】
図５は、第２の実施形態に係るＣＰＵのソフトウェア構成を示す概略ブロック図である。
第２の実施形態に係るＣＰＵ１１０は、第１の実施形態に係る構成のうち、最大容量認識部１１４に代えて、アクセス履歴記録部１１７、リード位置決定部１１８を備える。
アクセス履歴記録部１１７は、制御プログラム以外のプログラムによってアクセスされたハードディスクドライブ１２０の位置（セクタまたはブロック）と最後にアクセスされた時刻と関連付けたアクセス履歴情報を、メインメモリ１３０またはハードディスクドライブ１２０に記録する。なおアクセス履歴情報がメインメモリ１３０に記録される場合、ＣＰＵ１１０は、制御プログラムの終了時に当該アクセス履歴情報をハードディスクドライブ１２０に退避させる。制御プログラム以外のプログラムの例としては、オペレーティングシステムプログラムおよびアプリケーションプログラムが挙げられる。
リード位置決定部１１８は、アクセス履歴記録部１１７によって記録されたアクセス履歴情報に基づいて、アクセス頻度が所定値未満の位置を、命令部１１２が出力すべきリード命令のリード位置に決定する。具体的には、リード位置決定部１１８は、アクセス履歴情報に格納された位置のうち、現在時刻より一定時間（例えば１カ月）以内にアクセスがなく（アクセス頻度が１回／１カ月未満）、かつ一定時間以内にアクセスがある他の位置よりもディスク１２２の内周側の位置を、リード位置に決定する。例えば、ディスク１２２の内周側から順に、セクタＡ、セクタＢ、セクタＣが設けられる場合において、一定時間以内にセクタＡおよびセクタＣへのアクセスが無くセクタＢへのアクセスがあるとき、リード位置決定部１１８は、セクタＡをリード位置に決定する。リード位置決定部１１８が決定するリード位置は、第１位置の一例である。
【００２８】
このように、第２の実施形態によれば、命令部１１２は、ディスク１２２のうちアクセス頻度が所定値未満のデータが格納される位置にヘッド１２４を移動させるリード命令を出力し、当該リード命令の出力後に、スタンバイ命令を出力する。これにより、コンピュータ１００は、アクチュエータ１２５を駆動させる頻度が低い部分まで駆動させることができるため、アクチュエータ１２５の軸受にグリスが溜まることを防ぐことができる。
【００２９】
第２の実施形態に係るリード位置は、一定時間内のアクセス数が０である位置である。
つまり、第２の実施形態では、リード位置の決定に用いられるアクセス頻度の閾値が０であるが、他の実施形態では、これに限られない。例えば、他の実施形態では、アクセス頻度の閾値として１以上の値を用いてもよい。
【００３０】
〈第３の実施形態〉
第１の実施形態に係るコンピュータ１００は、確実にヘッド１２４を移動させるために、リード命令とスタンバイ命令の組み合わせを、所定のリトライ回数だけ繰り返し出力する。これに対し、第３の実施形態に係るコンピュータ１００は、スマート情報を参照してリード命令とスタンバイ命令の組み合わせを出力するか否かを決定する。
第３の実施形態に係るＣＰＵのソフトウェア構成は、第１の実施形態と同様である。なお、第３の実施形態においては、ＣＰＵ１１０は、計数部１１５を備えなくてもよい。
【００３１】
図６は、第３の実施形態に係るコンピュータによるハードディスクドライブの制御方法を示すフローチャートである。
条件判定部１１１は、所定の条件が満たされたか否かを判定する（ステップＳ１０１）。具体的には、条件判定部１１１は、シャットダウン指示を受け付けたこと、ＢＩＯＳを起動したこと、アイドル状態通知を受信したことの、いずれかが満たされた場合に、条件が満たされたと判定する。
【００３２】
条件判定部１１１が条件が満たされていないと判定した場合（ステップＳ１０１：ＮＯ）、命令部１１２は、ハードディスクドライブ１２０にスマート情報のリード命令を出力する（ステップＳ１０２）。取得部１１３は、ハードディスクドライブ１２０からスマート情報を取得する（ステップＳ１０３）。次に、条件判定部１１１は、取得したスマート情報からハードディスクドライブ１２０の温度を読み取る（ステップＳ１０４）。条件判定部１１１は、読み取った温度が所定の閾値（例えば摂氏１０度）以上であるか否かを判定する（ステップＳ１０５）。温度が閾値以上である場合（ステップＳ１０５：ＹＥＳ）、ＣＰＵ１１０はステップＳ１０１に処理を戻し、条件の判定を繰り返す。
【００３３】
温度が閾値未満である場合（ステップＳ１０５：ＮＯ）、最大容量認識部１１４は、ハードディスクドライブ１２０のコントローラ１２６から、ディスク１２２の最大容量を取得する（ステップＳ１０６）。次に、命令部１１２は、ハードディスクドライブ１２０にステップＳ１０６で取得した最大容量を指定してデータのリード命令を出力する（ステップＳ１０７）。次に、取得部１１３は、ハードディスクドライブ１２０から最大容量位置のデータを取得する（ステップＳ１０８）。次に、命令部１１２は、ハードディスクドライブ１２０にステップＳ１０６で取得した最大容量を指定して、ステップＳ１０８で取得したデータのライト命令を出力する（ステップＳ１０９）。
【００３４】
次に、命令部１１２は、ハードディスクドライブ１２０にスマート情報のリード命令を出力する（ステップＳ１１０）。取得部１１３は、ハードディスクドライブ１２０からスマート情報を取得する（ステップＳ１１１）。次に、条件判定部１１１は、取得したスマート情報からハードディスクドライブ１２０の温度を読み取る（ステップＳ１１２）。条件判定部１１１は、読み取った温度が所定の閾値以上であるか否かを判定する（ステップＳ１１３）。温度が閾値未満である場合（ステップＳ１１３：ＮＯ）、ＣＰＵ１１０はステップＳ１０７に処理を戻し、最大容量位置におけるデータのリードライトを繰り返す。
【００３５】
ステップＳ１０１で条件が満たされた場合（ステップＳ１０１：ＹＥＳ）、またはステップＳ１１３で温度が閾値以上となった場合（ステップＳ１１３：ＹＥＳ）、最大容量認識部１１４は、ハードディスクドライブ１２０のコントローラ１２６から、ディスク１２２の最大容量を取得する（ステップＳ１１４）。次に、命令部１１２は、ハードディスクドライブ１２０にスマート情報のリード命令を出力する（ステップＳ１１５）。取得部１１３は、ハードディスクドライブ１２０からスマート情報を取得する（ステップＳ１１６）。次に、条件判定部１１１は、取得したスマート情報からヘッド１２４の退避回数を読み取る（ステップＳ１１７）。退避回数に係る情報は、スマート情報のうちＣ１に割り当てられている。
【００３６】
次に、命令部１１２は、ハードディスクドライブ１２０にステップＳ１１４で取得した最大容量を指定してデータのリード命令を出力する（ステップＳ１１８）。次に、命令部１１２は、ハードディスクドライブ１２０にスタンバイ命令を出力する（ステップＳ１１９）。
【００３７】
次に、命令部１１２は、ハードディスクドライブ１２０にスマート情報のリード命令を出力する（ステップＳ１２０）。取得部１１３は、ハードディスクドライブ１２０からスマート情報を取得する（ステップＳ１２１）。次に、条件判定部１１１は、取得したスマート情報からヘッド１２４の退避回数を読み取る（ステップＳ１２２）。条件判定部１１１は、前回読み取った退避回数とステップＳ１２２で読み取った退避回数とを比較し、退避回数が増加しているか否かを判定する（ステップＳ１２３）。退避回数が増加したということは、ステップＳ１１９のスタンバイ命令によりヘッド１２４が退避位置Ｐｒｅｔに移動したことを意味する。他方、退避回数が増加していないということは、何らかの原因でスタンバイ命令の発行にも関わらずヘッド１２４が移動しなかったことを意味する。つまり、第３の実施形態に係る条件判定部１１１は、ディスク１２２に記録されたスマート情報に基づいてヘッド１２４が退避位置Ｐｒｅｔに移動しているか否かを判定する移動判定部の一例である。
【００３８】
退避回数が増加していない場合、コンピュータ１００は、処理をステップＳ１６に戻す。他方、退避回数が増加している場合（ステップＳ１２３：ＹＥＳ）、コンピュータ１００は、ハードディスクドライブ１２０の制御処理を終了する。
このように、第３の実施形態によれば、所定回数のリトライをせずに、確実にヘッド１２４を退避位置Ｐｒｅｔに移動させることができる。
【００３９】
以上、図面を参照していくつかの実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。
例えば、上述した実施形態において、制御プログラムがハードディスクドライブ１２０に記録されるが、これに限られない。例えば、他の実施形態においては、制御プログラムがインタフェース１４０を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）、半導体メモリ等に記録されていてもよい。また他の実施形態においては、上記制御プログラムがファームウェアに組み込まれていてもよい。
【００４０】
また、当該制御プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、当該制御プログラムは、前述した機能をハードディスクドライブ１２０に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００４１】
また、上述した実施形態において、ヘッド１２４の駆動制御を行うための条件の例として、オペレーティングシステムのシャットダウン、ファームウェアの起動、アイドル状態通知の受信、温度の低下を挙げたが、これに限られない。例えば、コンピュータ１００は、ヘッド１２４が退避位置Ｐｒｅｔに所定時間以上滞留していることを、ヘッド１２４の駆動制御を行うための条件としてもよい。この場合、コンピュータ１００は、所定時間が経過する度に、ヘッド１２４を移動させるための命令を出力する。これにより、アクチュエータ１２５が長時間駆動しないことによるグリスが軸受に滞留することを防ぐことができる。また例えば、コンピュータ１００は、ヘッド１２４がディスク１２２上に所定時間以上滞留していることを、ヘッド１２４の駆動制御を行うための条件としてもよい。特に、コンピュータ１００がハードディスクドライブ１２０以外の記憶手段（例えば、ソリッドステートドライブ）や他のハードディスクドライブ１２０を備え、当該ハードディスクドライブ１２０へのアクセス頻度が少ない場合に、グリスが軸受に滞留することを防ぐことができる。
【００４２】
《基本構成》
図７は、ハードディスクドライブの制御装置の基本構成を示す概略ブロック図である。
上述した実施形態では、ハードディスクドライブの制御装置の一実施形態として図３、図５に示すＣＰＵ１１０のソフトウェア構成について説明したが、制御装置１０の基本構成は、図７に示すとおりである。
すなわち、制御装置１０は、命令部１１２を備えることを基本構成とする。命令部１１２は、ディスク１２２の第１位置にヘッド１２４を移動させる第１移動命令を出力し、第１移動命令の出力後に、第１位置と異なる第２位置にヘッドを移動させる第２移動命令を出力する。
これにより、制御装置１０は、ヘッドを第１位置から第２位置へ動かすことにより、アクチュエータの軸受にグリスが溜まることを防ぐことができる。
【符号の説明】
【００４３】
１００  コンピュータ
１１０  ＣＰＵ
１２０  ハードディスクドライブ
１２２  ディスク
１２４  ヘッド
１２５  アクチュエータ
１３０  メインメモリ
１４０  インタフェース
１１１  条件判定部
１１２  命令部
１１３  取得部
１１４  最大容量認識部
１１５  計数部
１１６  リトライ判定部
【図１】
0006638505.tif 000002
【図２】
0006638505.tif 000003
【図３】
0006638505.tif 000004
【図４】
0006638505.tif 000005
【図５】
0006638505.tif 000006
【図６】
0006638505.tif 000007
【図７】
0006638505.tif 000008