(57)【特許請求の範囲】
【請求項１】
データトラックを有する記録ディスクと、複数の給電される構成素子と、データの読み取り及び書き込みのために前記構成素子を制御するディスク制御装置と、前記記録ディスクを回転させるスピンドルモータと、前記ディスクに対してデータの読み書きを行うヘッドと、このヘッドに接続されこのヘッドを前記ディスク上のそれぞれのトラックへ移動させるアクチュエータとを含むデータ記録ディスクの駆動機構において電力消費を管理する方法であって、
前記記録ディスクへの読み取り又は書き込みのアクセス周波数をタイムウィンドウで起きるアクセス密度から決定するステップと、
このアクセス周波数の値を記憶するステップと、
前記アクセス周波数から複数の節電モードそれぞれのしきい周波数を計算するステップと、
前記アクセス周波数が前記何れかのしきい周波数よりも低下したとき、そのしきい周波数に応じた節電モードとなるように前記構成素子毎に電力状態を変更するステップとを含む方法。
【請求項２】
前記制御装置からのアクセスに応答して、電力が減らされた前記構成素子への電力を回復するステップを含む請求項１に記載の方法。
【請求項３】
前記データ記録ディスク駆動機構は前記記録ディスクのトラック上に前記ヘッドを保持するために前記アクチュエータに接続されたサーボ制御電子回路を備え、前記電力状態を変更するステップは前記アクチュエータをパーキング位置に移動させ、前記サーボ制御電子回路への電力を減らすステップを含む、請求項１に記載の方法。
【請求項４】
データトラックを有する記録ディスクと、複数の給電される構成素子と、データの読み取り及び書き込みのために前記構成素子を制御するディスク制御装置と、前記記録ディスクを回転させるスピンドルモータと、前記ディスクに対してデータの読み書きを行うヘッドと、このヘッドに接続されこのヘッドを前記ディスク上のそれぞれのトラックへ移動させるアクチュエータとを含むデータ記録ディスクの駆動機構において電力消費を管理する方法であって、
前記記録ディスクへの読み取り又は書き込みのアクセス周波数を複数決定するステップと、
このアクセス周波数の値を記憶するステップと、
前記アクセス周波数から複数の節電モードそれぞれのしきい周波数を前記決定された複数のアクセス周波数の最大及び最小のアクセス周波数か計算するステップと、
前記アクセス周波数が前記何れかのしきい周波数よりも低下したとき、そのしきい周波数に応じた節電モードとなるように前記構成素子毎に電力状態を変更するステップとを含む方法。
【請求項５】
前記制御装置からのアクセスに応答して、電力が減らされた前記構成素子への電力を回復するステップを含む請求項４に記載の方法。
【請求項６】
前記データ記録ディスク駆動機構は前記記録ディスクのトラック上に前記ヘッドを保持するために前記アクチュエータに接続されたサーボ制御電子回路を備え、前記電力状態を変更するステップは前記アクチュエータをパーキング位置に移動させ、前記サーボ制御電子回路への電力を減らすステップを含む、請求項１に記載の方法。
【請求項７】
データトラックを有する記録ディスクと、この記録ディスクを回転させるスピンドルモータと、データトラックにデータを書き込み又はデータトラックからデータを読み取るヘッドと、データの読み書きを制御するディスク制御装置と、前記ヘッドをそれぞれのデータトラック及びパーキング位置に移動させるアクチュエータと、データの読み取り又は書き込みの間、前記ヘッドをデータトラックに保持するサーボ制御電子回路とを備え、少なくとも２つの節電モードで動作できるデータ記録ディスクの駆動機構において電力消費を管理する方法であって、
前記記録ディスクへの読み取り又は書き込みのアクセス周波数を複数決定するステップと、
これら複数のアクセス周波数の値を記憶するステップと、
これら複数の記憶されたアクセス周波数の最大及び最小しきい周波数から第１のしきい周波数を計算するステップと、
読み取り又は書き込みアクセス周波数が前記第１のしきい周波数よりも低いとき前記アクチュエータをパーキング位置に移動させ、前記サーボ制御電子回路への電力を減らすことにより、第１の節電モードの動作を開始させるステップとを含む方法。
【請求項８】
前記記憶されたアクセス周波数から第２のしきい周波数を計算し、読み取り又は書き込みアクセス周波数が前記第２のしきい周波数よりも低いとき前記スピンドルモータへの電力を減らすことにより、前記ディスク駆動機構に第２の節電モードの動作を開始させるステップを更に含む、請求項７に記載の方法。
【請求項９】
前記スピンドルモータへの電力を減らすステップは、パーキング位置に前記アクチュエータを移動させるのとほぼ同時に前記スピンドルモータへの電力を減らすことにより、前記ディスク駆動機構は最初に前記第１の節電モードを開始せずに前記第２の節電モードを開始するステップを含む、請求項８に記載の方法。
【請求項１０】
データトラックを有する記録ディスクと、この記録ディスクを回転させるスピンドルモータと、前記データトラックにデータを書き込み又は前記データトラックからデータを読み取るヘッドと、データの読み書きを制御するディスク制御装置と、前記ヘッドをそれぞれの前記データトラック及びパーキング位置に移動させるアクチュエータと、データの読み取り又は書き込みの間、前記ヘッドを前記データトラックに保持するサーボ制御電子回路とを備え、節電モードの動作を開始し且つ終了できるデータ記録ディスクの駆動機構において電力消費を管理する方法であって、
前記記録ディスクへの読み取り又は書き込みのアクセス周波数を決定するステップと、
このアクセス周波数の値を記憶するステップと、
この記憶されたアクセス周波数からしきい周波数を計算するステップと、
前記アクセス周波数がこのしきい周波数よりも低いとき、前記節電モードの動作を開始するステップと、
前記節電モード開始及び終了時間を検出するステップと、
検出されたモード開始及び終了時間からの前記節電モード持続時間が、前記節電モードの終了に要したディスク駆動エネルギに概ね等しいディスク駆動エネルギ節約を必要とする、所定のエネルギ損益なしの時間よりも短い場合に、エネルギペナルティを計算するステップと、
この計算されたエネルギペナルティを累積するステップと、
累積された前記エネルギペナルティが所定のトリップレベルを越えたとき、前記しきい周波数を変更し、前記エネルギペナルティの履歴から前記データ記録ディスク駆動機構の節電モード開始動作を動的に調整するステップとを含む方法。
【請求項１１】
読み取り及び書き込みのアクセス時間を検出するステップと、
前記節電モード開始なしに検出が成功した前記アクセス時間の間の時間間隔が前記エネルギ損益なしの時間よりも長い場合に機会逸失ペナルティを計算するステップと、
この計算された機会逸失ペナルティを累積するステップと、
累積された前記機会逸失ペナルティが所定のトリップレベルを越えたとき前記しきい周波数を変更し、前記機会逸失ペナルティの履歴から前記データ記録ディスク駆動機構の節電モード開始動作を動的に調整するステップとを更に含む、請求項１０に記載の方法。
【請求項１２】
前記アクセス周波数を決定するステップは、前記アクセス周波数を複数決定し、
前記しきい周波数を計算するステップは、決定された複数の前記アクセス周波数の最大及び最小しきい周波数から計算するステップを含む、請求項１０に記載の方法。
【請求項１３】
前記節電モードを開始する際に前記アクチュエータを前記パーキング位置に移動させ、そして前記サーボ制御電子回路への電力を減らすステップを含む、請求項１０に記載の方法。
【請求項１４】
前記節電モードを開始する際に前記アクチュエータを前記パーキング位置に移動させ、前記スピンドルモータを停止させるステップを含む、請求項１３に記載の方法。
【請求項１５】
前記アクセスが定期的なパターンであるかどうかを決定し、その後次の定期的なアクセスの前に前記節電モードを終了するステップを更に含む、請求項１３に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に携帯用コンピュータ、例えばラップトップ又はノートブックコンピュータで用いられる、バッテリーで給電されるディスク駆動機構に関する。特に、本発明はエネルギ消費を最小にするための手法を含む前記ディスク駆動機構に関する。
【０００２】
【従来の技術】
携帯用コンピュータはバッテリー電源が枯渇するまでの数時間しか作動しえない。電力は主としてハードディスク駆動機構で消費される。携帯用コンピュータのハードディスク駆動機構の基本的な電力管理手法は幾つかの電力低減、即ち節電型動作モードの使用である。これらのモードの各々は、ディスク駆動機構の読取り又は書込み動作からの一定の所定の時間が経過した後に開始される。例えば、ユーザがハードディスクに最後にデータを書込んでから一定の時間が経過した後、読取／書込ヘッドがそれらのパーキング位置に移動され、そしてディスク駆動機構スピンドルモータが停止させられる。ユーザが次にディスク駆動機構にアクセスすると、スピンドルモータがスピンアップされ、そして適切なデータトラックでデータを読取り又は書込むためにヘッドをディスク上で移動させる。このような節電モードの第１の欠点は、そのモードを終了させる際の時間遅延であり、その間、ユーザは待機しなければならない。これはコンピュータの性能に大きく影響する。一定の長さの時間はソフトウェアを介してコンピュータのユーザによりセットされる。
【０００３】
この従来の節電手法の問題は、良好な一定の時間を選択するのに必要なデータをユーザが持たないことである。ユーザはアクセスパターンに関する限られた知識のみを有し、ディスク駆動機構のエネルギ及び性能パラメータに関する実際の情報を有しない。ユーザはそのシステムのハードウェア及びソフトウェアによりディスク駆動機構アクセスパターンから隔離されている。節電モードを開始するための一定の時間は、ユーザの作業負荷の余裕がないから、エネルギ及び性能の間の不十分な交換条件である。ユーザは作業負荷を予期して一定の時間を変更せねばならない。そして余りに短い又は余りに長い時間の選択は性能及びエネルギ消費に悪影響を及ぼすことがありうる。
【０００４】
アクセスパターンが活動のバースト及びそれに続く長い非活動期間を有するとき、短いモード開始時間はエネルギを節約する。しかしながら、非活動期間がモード開始時間に接近しているとき、余分なエネルギが使用される。短い非活動期間の後に前記モードが開始されるから、性能も大きな影響を受けることがあり、一般にモード回復時間によるアクセス遅延がもっと頻繁に生ずる。
【０００５】
より長い非活動期間はより短い非活動期間よりも少ないと仮定すれば、長いモード開始時間はコンピュータ性能への大きな影響を緩和し、そして余分なエネルギを使用する傾向を少なくする。しかしながら、それらは、節電モードの開始を待つ間に余分なエネルギを使用する。
【０００６】
特定のユーザの作業負荷の間に、最適時間が変わる可能性は大きい。更に、作業負荷は、たぶんユーザが実行しているアプリケーションソフトウェアの動作により、ユーザが知らないうちに変わることがある。
【０００７】
ユーザは実際には、一定のモード開始時間の間ではなく、エネルギ消費及びコンピュータ性能の間で選択することを欲している。ユーザの一定モード開始時間の選択は、あるエネルギ又は性能目標を達成するための推測に過ぎない。できれば、ディスク駆動機構がユーザのエネルギ及び性能目標を入力として受取ることが望ましいことは明白である。これらの目標により、ディスク駆動機構は、それらに適切なものであればどんな尺度でも選択しうる。もしモード開始毎にユーザが一定の時間を選択しなければ、ユーザはその駆動機構の特定の節電モードを知る必要がないから、これは多くのより電力を節約するモードの使用を可能にする。
【０００８】
【発明が解決しようとする課題】
本発明の目的は、作業負荷の変化を検出し且つそれに適応しうる、そして一定時間の代わりに、節電モードを開始し且つ終了する時期を決定してエネルギ及び性能を用いうる、電力管理を達成するためのディスク駆動方法及びシステムを提供することにある。
【０００９】
【課題を解決するための手段】
本発明のディスク駆動機構は過去のディスク駆動機構アクセス履歴及び将来のユーザ要求の予測から節電モード開始及び終了時間を決定する電力管理を実行する。これは現在のユーザが選択しうる所定の、即ち一定のモード開始時間よりも有利であるのは、ユーザは性能及びエネルギ消費費用が節電モードの開始及び終了にどう関連するかを知らないからである。ディスク駆動機構は節電モードに関連したエネルギの損益なしの時間及び回復時間に関する情報を有する。エネルギ損益なしの時間は、当該モードの間に当該モードからの回復の間に消費された余分なエネルギがエネルギ消費の減少と釣合うように駆動機構が特定の節電モードに留まる必要がある時間である。回復時間はディスク駆動機構が節電モードから活動状態に復帰するのに要する時間である。ディスク駆動機構はアクセスパターン、即ちデータの読取り又は書込み、且つ（又は）アクチュエータを移動する要求の履歴を追跡する。従って、ディスク駆動機構は現在のユーザの作業負荷を検出し、そして複数の節電モードのどれが適切であるかとモードを開始する時期とを決定する。良好な実施例では、ディスク駆動機構アクセスの各々が検出され、そして現在のアクセス周波数を計算するのに用いられる。現在のアクセス周波数は、前に計算され絶えず更新されるしきい周波数と比較される。しきい周波数はアクセスパターン、例えば均一又は散発的なパターンを表わし、そして調整可能な利得係数を含む式から計算される。ディスク駆動機構の動作中、適切な節電モードは現在のアクセス周波数がしきい周波数よりも低くなったときに開始される。中間の節電モードは検出されたアクセスパターンに基づいてスキップできる。ディスク駆動機構は作業負荷状況の変動にも動的に適応しうるので、より多くのエネルギを性能低下なしに節約する。これは、そのシステムの実際の性能の追跡に応答して利得係数を調整し、しきい周波数を変更することにより行われる。ディスク駆動機構は必ずしもユーザアクセスを待たずに節電モードを終了する時期も決定する。従って、本発明では、さもなければユーザが追跡することができない多くの節電モードがありうる。節電モードは、ある一定の時間をセットする基準、即ちいくつかの節電モードに適合させる必要なしに異なるディスク駆動機構製品に特化することもできる。新しいユーザ選択可能なパラメータ、例えばオン／オフ、性能及びエネルギ目標は一定のモード開始時間を置き換えるために使用できる。これらのパラメータは利得係数、従ってしきい周波数を調整する。これは節電モードを開始する時期の決定に用いる式を変える。
【００１０】
【発明の実施の形態】
［ディスク駆動システム］
図１は本発明のディスク駆動機構を電力管理する種々の構成素子を示すブロック図である。ディスク駆動機構４０は一般にラップトップコンピュータ、例えばコンピュータ４１の囲いの中に含まれたハードディスク駆動機構である。ディスク駆動機構４０はスピンドルモータ３２に取付けられ回転させられる少なくとも１つのディスク、例えば典型的なディスク３４を含む。データヘッド３３は、一般にロータリボイスコイルモータ（ＶＣＭ）３０により作動するアクチュエータ３１に連結される。スピンドルモータ３２はスピンドルドライバ１及びスピンドル制御電子回路５により駆動される。サーボ制御電子回路６はディスク３４の種々のデータトラック上のヘッド３３の位置決めに用いられ、そしてＶＣＭドライバ２に接続される。ＶＣＭドライバ２はＶＣＭ３０に電流を供給する。アクチュエータ３１のクラッシュストップ３７及びロード／アンロード（Ｌ／ＵＬ）ランプ３８も図１に示されている。ディスク駆動機構４０が接触開始／停止（ＣＳＳ）タイプであって、スピンドルモータが回転しないときヘッド３３がディスク３４上にある場合、アクチュエータはＶＣＭ３０への電流によりクラッシュストップ３７に駆動され、ヘッド３３がディスク内径（ＩＤ）に近い非データ着地ゾーンに停止できるようにする。ディスク駆動機構４０がＬ／ＵＬタイプである場合、スピンドルモータ停止位置にアクチュエータ３１が駆動され、ヘッド３３を支持する懸架部がランプ３８に乗り、ヘッド３３をアンロードしてディスクから切離す。ＣＳＳディスク駆動機構のＩＤ着地ゾーン及びＬ／ＵＬディスク駆動機構のランプはしばしばヘッドパーキング位置と呼ばれる。
【００１１】
データヘッド３３はディスク３４にユーザデータを読み書きし、そして一般に薄膜誘導型（ＴＦＩ）読取／書込ヘッドであるか又はＴＦＩ書込ヘッドと磁気抵抗型（ＭＲ）読取ヘッドの組合せである。データヘッド３３は前置増幅器及び書込ドライバ３、データ記録チャネル４及びディスク制御装置電子回路７に接続される。データ記録チャネル４はピーク検出器又はＰＲＭＬ（partial-responsemaximum likelihood）のようなタイプであればどれでもよく、そしてデータ検出、符号化及び復号のような機能を含む。マイクロプロセッサ９に接続されたディスク制御装置７はデータの読取り及び書込みのプロセスを処理し、コンピュータ４１との通信を調整し、バッファメモリ１０を管理し、そしてサーボ制御電子回路６及びスピンドル制御電子回路５に命令する。
【００１２】
ディスク駆動機構４０はマイクロプロセッサ９、マイクロプロセッサメモリ８、バッファメモリ１０、インタフェースモジュール１１及び電力制御モジュール１２も含む。マイクロプロセッサメモリ８はマイクロプロセッサ９のコード及びデータの記憶に用いられる。バッファメモリ１０はコンピュータ４１からディスク駆動機構４０に転送されるデータの記憶に用いられ、そして一般にキャッシュメモリとして構成される。インタフェースモジュール１１はコンピュータのインタフェース制御装置１３からインタフェースを介した情報の伝達を制御する。ＩＤＥ(integrated drive electronics）インタフェース及びＳＣＳＩ(small computer system interface）は最も一般的なタイプのインタフェースである。
【００１３】
図１に示されたディスク駆動機構４０の全ての構成素子は作動するための電力を必要とする。電力制御モジュール１２は、バス７１を介して電源２０から電力を受取る、ディスク駆動機構４０の電力管理を制御する。全ての構成素子への電源接続は図１には図示されていないが、それらの各々は電力をバス７１から直接に、又は別の構成素子を通じて受取る。電力制御モジュール１２は制御装置７の内部の論理回路として物理的に含まれることもあり、且つ（又は）マイクロプロセッサ９により実行するためにマイクロコードの形式でマイクロプロセッサメモリ８に記憶されることもある。電源２０からエネルギを消費する構成素子の各々への電源回線は、モジュール１２又はマイクロプロセッサ９の出力により直接に制御できる、即ち構成素子宛にコマンドを出し、オフ又はオンに切換え、さもなければそれらの電力状態を変更できる。
【００１４】
ディスク駆動機構４０の種々の構成素子の間の接続は概略的に図１に示されているが、その動作は他の構成により達成しうる。例えば、マイクロプロセッサメモリ８はマイクロプロセッサ９の中に含めてもよく、又はバッファメモリ１０と組合わせてもよい。更に、通常はディスク駆動機構に２つ以上のマイクロプロセッサを有し、１つのマイクロプロセッサは主にインタフェース及び駆動機構管理機能に用いられ、そして他のマイクロプロセッサはサーボ機能に用いられる。このような場合、サーボ制御電子回路６は別個のサーボマイクロプロセッサを含むことがある。
【００１５】
コンピュータ４１はインタフェース制御装置１３、プロセッサ１４、メモリ１５、ディスプレイ１６、キーボード１７及び（又は）他の入力装置、周辺装置１８、電源２０ならびに制御電子回路１９を含む。インタフェース制御装置１３はディスク駆動機構４０との通信を処理する。電源２０はコンピュータ４１及びディスク駆動機構４０の電源である。携帯用に用いるために、これは通常は再充電できるバッテリーであるが、他の任意の電源、例えばＡ／Ｃ電源でもよい。電源２０はバス７０によりコンピュータ４１内の種々の構成素子に、そしてバス７１によりディスク駆動機構４０に電力を供給する。電源２０は制御電子回路１９とも通信する。例えば、携帯用コンピュータ内のバッテリーは、バッテリー状態、例えば放電状態を監視する内部制御電子回路を含む。
【００１６】
［ディスク駆動機構電力管理］
ディスク駆動機構４０は一定比率でエネルギを消費しない。シーク時（即ち、ＶＣＭ３０への電流供給によりディスク３４のデータトラック上でヘッド３３を移動するとき）には、トラック追随時（即ち、ＶＣＭ３０への間欠的な電流パルスにより１つのデータトラック上にヘッド３３を維持するとき）よりも多くのエネルギが消費される。また、書込み動作の間には、書込み電流がＴＦＩヘッドのコイルに供給されるので、更に多くのエネルギが消費される。これらのディスク駆動機構アクセスにより２つの活動状態の電力モード：シーク／読取り／書込み電力モード及びアイドル電力モードが識別される。シーク／読取り／書込み電力モードは一般に推測であるのは、それがユーザ作業負荷の仮定に基づいているからである。アイドル電力モードは、データが読取り中又は書込み中ではなく、そしてシークが行われていない通常のトラック追随動作である。用語 "活動状態" はディスク駆動機構がシーク／読取り／書込み電力モード又はアイドル電力モードのどちらかであるときを指すのに用いられる。
【００１７】
２つの節電モードはアイドル２モード及びスタンバイモードと呼ばれる。アイドル２節電モードでは、アクチュエータ３１はパーキングされ（即ち、クラッシュストップ３７に移動させられるか又はランプ３８でアンロードされ）、そしてサーボ制御電子回路６と、前置増幅器３及びチャネル４を含む読取り／書込み電子回路とはオフに切換えられる。従って、アイドル２モードはＶＣＭドライバ２、サーボ制御電子回路６、前置増幅器３及びチャネル４への電力を大幅に少なくする。アイドル２モードでは、サーボ及び読取り／書込みタスクは活動状態ではないので、ディスク制御装置７及びマイクロプロセッサ９への電力を少なくすることもできる。スタンバイ節電モードはアイドル２モードの全ての外に、更にスピンドル制御電子回路５及びスピンドルドライバ１への電力も少なくする。ある実施例では、バッファメモリ１０はアイドル２モード及びスタンバイモードの一方又は両方をオフに切換えうる。更に別の節電モードも可能である。例えば、スリープモードはスタンバイモードの節電特性を含み、そして殆ど全ての残りの電子回路もオフに切換え、インタフェースモジュール１１の一部分と、それ以外にコンピュータインタフェース制御装置１３からのスリープ回復コマンドに応答するのに必要な部分の電力のみをオンの状態に維持する。
【００１８】
テーブル１は典型的な２．５インチのディスク駆動機構の前述の２つの活動状態のモード及び２つの節電モードの電力値を示す。このテーブルから、アイドル２及びスタンバイ節電モードはエネルギ消費を十分に少なくすることが明白である。
【表１】
0004132105.tif 000002
【００１９】
テーブル１は２つの節電モードの回復時間（ＴRec）も示す。これはディスク駆動機構が節電モードから活動状態に復帰するために要する時間である。平均回復電力（ＰRec）も示される。エネルギ損益なしの時間（ＴBE）はこの情報から計算しうる。これは駆動機構が特定の節電モードに留まるべき時間であり、それによって当該モードから回復する間に消費される余分なエネルギが当該モードの間のエネルギ消費の減少と釣合うようにする。ＴBEは下記の式により推定しうる。この場合、通常の活動状態のモードがアイドルであり且つ回復時間（ＴRec） が節電モードにのみ用いられると仮定する。
【数１】
ＴBE ＝ ＰRec（ＴRec／ＰIdle）              （１）
【００２０】
テーブル２はテーブル１の例のエネルギ損益なしの時間（ＴBE）を示す。
【表２】
0004132105.tif 000003
【００２１】
本発明では、どの節電モードが最も適切であるか、そしてそれをいつ開始するかを決定するために実際のユーザ作業負荷が用いられる。従って、節電モードの開始は、ユーザが選択した一定の時間により決定されるのではなく、ユーザの作業負荷による要求により行われる。
【００２２】
［ディスク駆動機構アクセス周波数］
エネルギ消費を最適化するためには、ディスク駆動機構へのアクセスのタイプ及びその各々がいかに動作するかを知ることが重要である。所与の節電モードについて、節電モードからの回復を必要とする動作としてアクセスが定義される。例えば、節電モードがアイドル２であり、ディスク３４はスピンしているがサーボ制御電子回路６はオフであり、そしてＶＣＭドライバ２はオフであるがディスクキャッシュを含むバッファメモリ１０は活動状態である場合、データの読取り及び書込みのためにアクチュエータ３１の移動を必要とするディスク駆動機構アクセスがアクセスとしてカウントされる。この節電モードではキャッシュヒットはアクセスではなく、一定の他のインタフェースコマンド、例えばコンピュータ４１からの状況照会もアクセスではないのは、それらはディスク３４に対してデータの読取り又は書込みを必要としないからである。設計の簡略化のために、アクセスをカウントするときキャッシュヒットの影響を考慮しなくてもよい。このような場合、インタフェースを介して受取った読取り又は書込みコマンドはどれも、たとえデータが完全にキャッシュ内に存在する場合にも、アクセスとしてカウントされる。この仮定はエネルギ節約を低下させるが、費用効果がすぐれていることがあるのは、電力管理手法を設計する際の複雑さを少なくするからである。
【００２３】
特定の節電モード、例えばスタンバイ（ディスク３４のスピンダウン）を開始する決定は最近のアクセスパターンによる影響を受ける。アクセスパターンはそれを駆動しているソフトウェアプロセスに関する情報を含む。アクセスパターンは周波数、即ちディスク駆動機構アクセスが起きる速度により特徴付けられ、そして周波数の分布はアクセス履歴から決定されることがある。観察されるアクセス周波数が最近のアクセス履歴から周波数の分布に属さないときを決定することができる。この決定は低いアクセス周波数が最近のアクセスパターンの一部ではない確率を推定することにより統計的に行われ、従ってアクセスパターン及びそれによってそれに責任を有する関連ソフトウェアプロセスが停止していることを表わす。このような決定には多くの要素がある。本発明では、これらの要素はディスク駆動機構の性能に基づいて動的に調整することもでき、適応性のある電力管理を可能にする。
【００２４】
アクセス周波数から定期的なアクセスを検出し、そして定期的なアクセスの開始及び終了を予期して節電モードを開始し終了することもできる。定期的なアクセスの例はワード処理文書の時間設定による節約である、例えば、ワード処理ソフトウェアが５分毎に自動的にファイルをディスクに書込むことをソフトウェアユーザが許す場合である。定期的なアクセスを開始する直前に節電モードを終了する能力はユーザが応答待時間を経験しないので性能を向上する。定期的なアクセスを終了した直後に節電モードを開始する能力は、より短い遅延で節電モードを開始できるから、エネルギ節約を大きくする。
【００２５】
良好な実施例では、ディスクアクセスパターンは２つのカテゴリ：均一アクセスパターン及び散発アクセスパターンに分類されると想定される。均一アクセスパターンは一組のアクセス周波数が統計的に良好に決められたパターンとして与えられる。例えば、アクセス周波数の平均及び標準偏差は計算しうる。標準偏差が平均の或る分数である場合、アクセス周波数は良好に定義されているとみなしうる。さもなければ、アクセスパターンは散発的である、即ち平均及び標準偏差により良好に定義されていないとみなされる。均一な場合には、もし観察されたアクセス周波数の低下が（平均）−（標準偏差の或る倍数）よりも少なければ、そのアクセスパターンは終了しているとみなされる。これは観察されたアクセス周波数が観察されたアクセスパターンに属する確率を選択するのに等しい。最小の観察されたアクセス周波数の分数をアクセスパターンの終了の推定として用いることもありうる。根源的な原理はアクセスパターンを特徴づけるために最近のアクセス周波数を使用し、そしてこの周波数からしきい周波数を決定することである。従って、アクセス周波数がこのしきい周波数と交差したときそのアクセスパターンが終了した可能性が高いと想定される。
【００２６】
［アクセス密度測定］
アクセス周波数は、タイムウィンドウを選択し、ウィンドウ内で起きるアクセスの数をカウントし、そしてその数を周波数に変換することにより測定される。節電モードの各々について異なるタイムウィンドウを選択することができる。タイムウィンドウ内で起きるアクセスの数はアクセス密度と呼ばれる。
【００２７】
図２はアクセス密度の測定の詳細を示す流れ図である。ステップ４０３でタイマが検査され、ウィンドウタイムが経過したかどうかを判定する。このタイマはハードウェアでもソフトウェアでもよい。ウィンドウが終了していない場合、ステップ４０１で、アクセスの発生が検査される。アクセスが発生している場合、ステップ４０２で密度カウンタが増分される。図２は全てのタイミングウィンドウが最短ウィンドウの複数倍であるときの動作を示す。このような場合、ステップ４０２で全ての節電モードの密度が増分される。密度カウンタのリセットは明白には示されていないが、それらは現在のウィンドウの密度値が他の記憶装置、例えばリングバッファに移された後に且つ次のウィンドウのアクセスを累積する前にリセットされる。最短のタイムウィンドウの或る複数倍のタイムウィンドウを有する節電モードでは、密度カウントは長い方のウィンドウが終了したときにのみリセットされる。図２はポーリングループ設計の動作を示す。同等な割込みに基づいた設計も図２から容易に引出しうる。
【００２８】
図２に示されたプロセスは電力制御モジュール１２の機能の一部であり、ハードウェア及び（又は）ソフトウェアで実現しうる。図３は図２のプロセスの実現に適切なハードウェア構成を示す。タイマ２０１、カウンタ２０２及びリングバッファ２０３はディスク制御装置７の一部として示される。リングバッファ２０３はマイクロプロセッサ９によりアドレス可能である。図２のプロセス（及び図４〜６のプロセス）のステップを実行するプログラム命令のセットはマイクロコードとしてメモリ８に記憶される。メモリ８もマイクロプロセッサ９によりアドレス指定しうる。密度カウンタ２０２はアクセス信号２２０をディスク制御装置７から受取る。例えば、信号２２０はインタフェース１１及びインタフェース制御装置１３を横切る読取り要求に応答して、又は同時に制御装置７が読取りコマンドをチャネル４に送ったとき制御装置７により生成しうる。アクセス信号２２０はディスク駆動機構がアクセスされる毎にカウンタ２０２に送られる。カウンタ２０２はアクセス２２０をカウントする。タイマ２０１は絶えず動作し、各タイミングウィンドウの終りで信号２２１を出力する。カウンタ２０２の密度値は信号２２２として出力される。この信号は密度記憶バッファ（図３のリングバッファ２０３）に送られる。タイマ２０１からのウィンドウ終了信号２２１により、リングバッファ２０３は次のメモリロケーションに密度値を書込み、そしてバッファ書込みポインタを進める。そして信号２２１はカウンタ２０２をリセットする。密度値はマイクロプロセッサ９によりリングバッファ２０３から読取られる。マイクロプロセッサ９はバッファ２０３を読取るためにクリア信号２２３及び読取り信号２２５を送り、そして密度値を表わす出力信号２２４を受取る。マイクロプロセッサ９はメモリ８に記憶されたマイクロコードを実行するあいだこの密度値を使用してディスク駆動機構構成素子へのコマンドを生成し、それらの電力状態を変更する、即ち適切な節電モードを開始又は終了する。
【００２９】
一般に、所与の節電モードのタイムウィンドウが選択され、そのモードに適切なディスク駆動機構が出会うアクセス周波数の範囲で良好な応答を可能にする。関心のある周波数はその周期が節電モードの待時間及びエネルギ損益なしの時間に近いものである。よって、エネルギ損益なしの時間に近いタイムウィンドウが適切である。タイムウィンドウ値は更にディスク駆動機構の動作を試験することにより、即ちシミュレーションにより最適化しうる。タイムウィンドウ選択では他の要素、例えば性能目標が考慮されることもある。テーブル１のディスク駆動機構の例では、タイミングウィンドウの良好な選択はアイドル２の場合に４００ｍｓであり、スタンバイの場合には１．６ｓである。
【００３０】
［アクセス密度とアクセス周波数の変換］
上記のように得られたアクセス密度値は特定のタイムウィンドウで起きるアクセスの数である。よって、密度値はスケーリングにより周波数値に変換しうる。周波数の動的範囲は、０の密度が０の周波数に等しくないことを実現することにより拡張しうる。密度が０であるとき、周波数は複数の連続する０の密度から計算される。１つの前記変換式は次の式で示される：
【数２】
周波数 = 密度 * スケール                    :密度 > 0     （２）
【００３１】
【数３】
周波数 = スケール/(number_zero_density+1)   :密度 <= 0    （３）
【００３２】
number_zero_density は密度が０である場合の連続するタイムウィンドウの数である。スケールは密度を周波数に変換するスケーリング係数である。式（２）及び（３）はアクセス周波数が（１／タイムウィンドウ）よりも低下した時のアクセス周波数の良好な概略値を与える。処理を容易にするために、スケール係数により決められた整数周波数単位を用いることは当然である。即ち、密度１は周波数のスケールに対応する。スケール係数は計算を容易にし且つ所望の動的周波数範囲を与えるように選択される。一般に、２５６のスケール値が１６ビット処理に適するのは、密度が非０であるときスケーリングを簡略化することによりビットシフト動作の乗算を少なくするからである。
【００３３】
下記のテーブル３は式（２）〜（３）及び４００ｍｓのタイミングウィンドウ、即ちアイドル２モードのタイミングウィンドウを用いる密度対周波数変換の例である。最上部の行はタイミングウィンドウの各々の開始時間を示す。２番目の行はウィンドウ毎のアクセス密度値の例を示す。３番目の行は２番目の行にあるアクセス密度から取出されたアクセス周波数を示す。例えば、１９アクセスが時間０．４ｓ及び時間０．８ｓの間に起きている。これはスケール係数２５６を有する周波数４８６４に対応する。１．２ｓ及び２．０ｓの間にはアクセスがなかったので、２つの密度値０が与えられる。これらの密度値は２５６／３＝８５の単一周波数値に変わる。
【表３】
0004132105.tif 000004
【００３４】
ディスク駆動機構アクセスの期間中の遅延を少なくするためにエネルギ管理の計算を最小にすることが望ましい。ディスク駆動機構のアクセスが起きているときあまり計算を必要としない密度アプローチが有利である。ディスク駆動機構のアクセスが遅いときは密度測定又は密度対周波数変換をスキップすることが望ましいことがある。これは応答時間の速度を上げ、そして前記区間のアクセス密度は遅いアクセスを表わす一定値にセットしうる。ひとたびディスク駆動機構の使用頻度が低下すれば、これらの区間のアクセス密度、即ち周波数値は更新しうる。例えば、密度２５６は使用中の区間に割当てられることがあり、これはスケール係数２５６を有する周波数６５，５３６に対応する。
【００３５】
正確なアクセスのタイミングは密度から得られないから、上記の密度対周波数変換がアクセス周波数の推定値を与える。しかしながら、ウィンドウタイムがそれに従って選択された場合、関心のある周波数範囲内で推定値は十分に正確である。代わりに使用しうるアクセス周波数を測定又は推定する他の手法、例えばフーリェ変換手法もある。
【００３６】
現在のアクセス周波数がしきい周波数よりも低下したとき、マイクロプロセッサ９は節電モードが開始されるべきであると判定する。これはアクセス履歴から判定される。図４は節電モードの開始の詳細を示す流れ図である。この流れ図で、種々の節電モードが想定され、節電を高める順序に１からＭＡＸモードまでの番号が付与される。用語ＴＦ［モード］は特定の節電モードのしきい周波数を示す。用語ＬＦ［モード］は特定のモードの低周波数フラグを示す。このフラグはしきい周波数の計算を制御する際に役立つ。ステップ３０１で、ラストモードは１にセットされる。これは全ての節電モードが検査されることを意味する。全てのモードについて、しきい周波数がクリアされ（ＴＦ［モード］＝０）、そして低周波数フラグがクリアされる（ＬＦ［モード］＝０）。
【００３７】
次に、ステップ３０２で、プロセスは最短ウィンドウタイムが経過するまで待つ。その詳細は図２に示され、それに関連して記述されている。図４で、２つ以上のウィンドウタイムが用いられる（即ち、節電モードの各々が特有のタイムウィンドウを有する）とき、より長いウィンドウタイムは最短ウィンドウタイムの整数倍であると想定される。ひとたびウィンドウタイムが経過し、そしてアクセス密度が特定されたならば、ステップ３０３に進む。ステップ３０３で、検査される節電モードはマックスモード、即ち最大エネルギ節約モードにセットされる。ステップ３０４で、プロセスは現在の時間が検査中のモードのウィンドウタイムであるかどうかを調べる検査をする。結果がノーならば、プロセスはステップ３０８に進む。
【００３８】
ステップ３０８で、現在のモードがラストモードである場合、プロセスはステップ３０２に進み、次のタイムウィンドウの密度が測定される。この時点で、活動状態の節電モードを検査するときではないと判定されている。ステップ３０８で、現在のモードがラストモードではない場合、プロセスはステップ３０９に進み、（節電が減少する順序で）次のより低いモード（モード−１）が選択される。そしてプロセスは再びステップ３０４に進む。ラストモード＝１であるときステップ３０４の検査が常に真であることに注目されたい。それはステップ３０２の終了と同じ状態であるからである。ステップ３０４の検査が真である場合、モードの新しい密度値が使用できるので、プロセスはステップ３０５に進む。ステップ３０２で測定されたアクセス密度は、ステップ３０５で、式（２）〜（３）の変換を用いて周波数（freq）に変換される。
【００３９】
ステップ３０５で計算されたアクセス周波数は、ステップ３０６で、このモードのしきい周波数ＴＦ［モード］と比較される。アクセス周波数がしきい周波数よりも大きい場合、プロセスはステップ３０７に進む。ステップ３０７で、現在のモードのしきい周波数、ＴＦ［モード］が取得される。しきい周波数は条件により変わることもあり、変わらないこともある。（しきい周波数の調整の詳細は図５に関連して説明する。）そしてプロセスはステップ３０８に進む。その後の流れは上記のように進行する。ステップ３０６で、アクセス周波数がしきい周波数よりも小さいか又はそれにに等しい場合、プロセスはステップ３１０に進み、この節電モードを開始する。これはマイクロプロセッサ９が適切なディスク駆動機構構成素子に電力の減少を知らせることを意味する。ステップ３１１で、現在のモードがマックスモードである場合、それ以上の節電モードは得られないから流れは分岐し、プロセスはステップ３１３に進む。更に節電モードが検査に使用できる場合、プロセスはステップ３１２に進む。ステップ３１２で、開始されたモードよりも小さいか又はそれに等しい全ての節電モードはもはや考慮されないことを反映するために、ラストモードはモード＋１に更新される。そしてプロセスは再びステップ３０２に進む。
【００４０】
最大エネルギを節約するためのステップ３０４での節電モードの検査は最大のエネルギ節約から最小のエネルギ節約への順序で行われる。これにより、ディスク駆動機構はステップ３１０で最も好ましい節電モードを開始する。従って、中間の節電モードをスキップすることができる。例えば、本発明の使用により、アイドルモードのディスク駆動機構は最初にアイドル２モードを開始せずにスタンバイモードを開始しうる。最大モード以外の特定の節電モードが開始された場合、ディスク駆動機構は、より大きいモードへの移行に適するまで又は当該モードが終了するまで当該モードで作動する。
【００４１】
図５は節電モードのしきい周波数を計算し調整する良好な実施例の詳細を示す流れ図である。最新のアクセス周波数はマイクロプロセッサ９によりアドレス指定できるリングバッファ（図示せず）に記憶される。このバッファは節電モード毎に異なることがある。リングバッファは、周波数測定値の各々がロードされるレジスタ（又はメモリロケーション）のセットである。リングバッファはそのセットのレジスタ（又はメモリロケーション）の数に等しい数の周波数を保持しうる。ひとたびこの数の周波数がロードされたならば、新たな周波数値の付加は最も古い値を脱落させる。これは最近のアクセス履歴の変化を観察できる効果を有する。
【００４２】
ステップ５０１で、この節電モードがしきい周波数を計算するのに十分な値がリングバッファにあるかどうかを調べる検査が実行される。最少数の周波数値は一般に２である。より大きい数はより大きい統計的な精度を保証するが、これらの値はしきい周波数を計算する前に収集されなければならない。リングバッファ内の値の数が十分ではない場合、プロセスはステップ５０３に進む。ステップ５０３は現在の周波数を検査し、それがスケール／２よりも大きいかどうかを調べる。ここで、スケールは式（２）〜（３）で定義されている。この検査結果が真である場合、プロセスはステップ５０４に進み、現在の周波数値がリングバッファにプッシュされる。検査結果が偽である場合、０密度の連続するタイムウィンドウの数はなお増加しているから、リングバッファ内の最後の周波数値は変更されなければならない。これはステップ５０９で実行される。これはプッシュ動作ではないので、それはリングバッファ内の値のカウントを変えないことに注目されたい。プロセスはステップ５０４及び５０９からステップ５１０に進む。ステップ５１０で、プロセスはステップ５０１に戻る。
【００４３】
ステップ５０１で、リングバッファ内の値の数が十分である場合、プロセスはステップ５０２に進む。ステップ５０２で、現在のアクセス周波数は値、活動状態のしきい周波数と比較される。この値は処理を加速し且つ安全しきい値を与えるのに用いられる。スケール／２の値は典型的な活動状態のしきい周波数の初期選択値である。ステップ５０２で、検査結果が真である場合、ディスク駆動機構アクセス周波数は活動状態のしきい周波数よりも高いので、更にしきい周波数を計算する必要がない。プロセスはステップ５０５に進み、低周波数フラグＬＦ［モード］がクリアされる。そしてプロセスはステップ５０３に進み、その後、プロセスは上記のように進行する。
【００４４】
ステップ５０２で、検査結果が偽である場合、アクセス周波数は活動状態のしきい周波数よりも低いので、更に処理が必要である。ステップ５０６で、低周波数フラグＬＦ［モード］が検査される。それがセットされる場合、プロセスはステップ５０３に進み、現在の低周波数しきい値が維持される。ひとたび低周波数フラグがセットされれば、アクセスパターンの終了が検査中であると想定される。よって、現在の周波数はこのパターンの一部分ではないと想定されるので、しきい周波数の変更に用いるべきではない。しかしながら、この周波数がなおリングバッファ内に置かれるのは、アクセス周波数を活動状態のしきい周波数よりも高くすることにより低周波数フラグがクリアされることがあるからである。このような場合、アクセスパターンが終了したという想定は誤りであった。それゆえ、検査中に生ずる周波数は現時点でアクセスパターンの一部分とみなされる。ステップ５０６で、低周波数フラグがクリアされる場合、新しいしきい周波数が計算されるから、プロセスはステップ５０７に進む。この計算はステップ５０７で行われる。ステップ５０８で、低周波数モードフラグがセットされ、そしてプロセスは再びステップ５０３に進む。
【００４５】
図５に示されたプロセスは最新のアクセスの履歴を用いて節電モード毎にしきい周波数を計算する。この計算はアクセス周波数が活動状態のしきい値よりも低いときにのみ実行される。これはディスク駆動機構が非活動状態のときにのみしきい周波数計算を実行するので、性能への影響を少なくするのに役立つ。
【００４６】
ステップ５０７で、節電モードのしきい周波数は当該モードに関連したリングバッファ内のアクセス履歴に基づいて計算される。リングバッファ内の値の平均及び標準偏差は計算しうるが、それらは複雑な計算を必要とする。代わりに、均一なアクセスパターンでは、平均周波数ｍｅａｎｆは次の式によりリングバッファ内の最大周波数ｍａｘｆ及び最小周波数ｍｉｎｆから概算しうる。
【数４】
meanf=(maxf+minf)/2            （４）
【００４７】
これが均一なアクセスパターンの良好な推定値であるのは、分布が良好に特徴付けられると仮定されるからである。標準偏差ｓｄｅｖｆは周波数の範囲から次の式のように推定しうる。
【数５】
sdevf=(maxf-minf)/4          （５）
【００４８】
従って、平均値及び標準偏差を実際に計算する必要はなく、より簡単な式（４）及び（５）とそれらを置き換えることが望ましい。散発的なアクセスパターンでは、最小周波数のある部分で十分である。下記の式（６）〜（８）はステップ５０７で用いた計算を示す。
【数６】
t1［モード］= (maxf+minf)/2-g1［モード］* (maxf-minf)  （６）
【００４９】
【数７】
t2［モード］= minf/g2［モード］        （７）
【００５０】
【数８】
TF［モード］= max(t1,t2)               （８）
【００５１】
値ｔ１［モード］は均一なアクセスパターンに対応するのに対し、ｔ２［モード］は散発的なアクセスパターンに対応する。これらの２つのうちの大きい方の値は所与のモードのしきい周波数に用いられる。
【００５２】
ｇ１［モード］及びｇ２［モード］はそれぞれ均一なアクセスパターン及び散発的なアクセスパターンの利得係数である。利得係数はモード毎に異なることがある。テーブル１のディスク駆動機構では、ｇ１＝１及びｇ２＝４の値はアイドル２モード及びスタンバイモードの双方に適する。式（６）及び（７）から観察しうるように、利得係数の値の増加はしきい周波数を低くする効果を有し、そして利得係数の値の減少はしきい周波数を高くする効果を有する。それゆえ、節電モード開始動作はこれらの利得係数の選択及び調整により同調させることができる。利得係数は適切なシステム又はアプリケーションソフトウェアを介してユーザが選択し調整しうる。
【００５３】
節電モード毎に別個のリングバッファを使用し、そしてバッファのサイズは独立して選択しうる。バッファのサイズを大きくすることは、アクセス履歴が収集される時間を長くするのに対し、サイズを小さくすることは前記時間を短くする。バッファサイズの選択は履歴の長さを制限する希望により影響を受けることもある。これはより最近の事象に対する応答を改善し、必要なメモリの量を制限する。テーブル１のディスク駆動機構では、２つのモードのバッファに１６のサイズが適する。アクセス履歴を維持するための更に精巧な方法も可能である。例えば、リングバッファ内の周波数はバッファ内の時間の長さに関連した重みづけ係数を持ちうる。アクセス周波数ヒストグラムは、古いデータの除去、例えば再基準化の機構によりリングバッファの代わりに用いうる。しかしながら、リングバッファは設計が簡単であるという利点を有する。
【００５４】
リングバッファは、図３に示すように、周波数の代わりに密度を保持するように構成されることもある。この場合、密度はしきい周波数計算中に周波数に変換される。密度バッファを用いてしきい周波数を計算するプロセスが図６に示される。その流れは幾つかの例外を除いて図５の流れに密接に対応する。ステップ６０１はステップ５０１に対応する。追加のステップ６０３では、密度は式（２）及び（３）により周波数に変換される。ステップ６０４、６０５及び６０６はそれぞれステップ５０２、５０５及び５０６に対応する。追加のステップ６０７では、リングバッファ内の密度値の各々は式（２）及び（３）を用いて周波数値に変換される。この場合、連続する０密度が１つの周波数値に変換されるから、周波数値の数をリングバッファ内の密度値の数よりも少なくすることに注目されたい。ステップ６０８及び６０９はそれぞれステップ５０７及び５０８に対応する。最後に、ステップ６０２は、現在の密度値を、選択された節電モードのリングバッファにプッシュする。
【００５５】
これらのリングバッファ構成はどちらもしきい周波数の計算に適する。周波数バッファの利点は低い周波数が存在する時間が増加する履歴の長さを有することである。密度バッファは一定の履歴の長さを有する利点を有し、ディスクアクセス活動の期間中のその計算オーバーヘッドを少なくするのは、活動状態の周波数しきい値が交差するまでそれが密度対周波数の変換を遅らせるからである。
【００５６】
上記のように、節電モードは、それが開始された後、別の節電モードの開始により、又は駆動機構を活動状態に戻すことにより終了しうる。前者は推定アクセス周波数が降下し続け、他のモードのしきい周波数と交差したときに起きる。後者はディスクアクセスが起きたとき、又は定期的なアクセスパターンが検出されたために駆動機構により活動状態が開始されたときに起きる。ディスク駆動機構が活動状態に戻ったとき、リングバッファをクリアすることが望ましいことがあるのは、新しいアクセスパターンが測定中であると推定されるからである。これは古いパターンのリングバッファへの影響に一層の制限を加える。ある構成では、たぶん前のパターンからのデータの重みづけ係数を変更するリングバッファデータを保持することが望ましいことがある。
【００５７】
利得係数を調整してしきい周波数の決定に影響を及ぼすために他の要素を用いることがある。例えば、ヘッドがデータを直ちに読み書きできない（例えば、ディスクがスピンダウンされているスタンバイの）場合に節電モードを開始する要求が現在のキャッシュヒット率により重みづけできる。例えば、利得係数を下げることにより、高いキャッシュヒット率を用いてしきい周波数を上げるように調整することがある。たとえしきい周波数が交差された直ぐ後でアクセスが起きる場合でも、キャッシュをヒットする見込みはある。それゆえ、余分にエネルギを使用する確率は更に低下する。同様に、低いキャッシュヒット率は更に低い所望のしきい周波数を生ずることがあるのは、ディスクからの読み書きを必要とする次のアクセスの確率が高くなるからである。前記の場合、キャッシュ（図１のバッファ１０）への電力を制御する新たな節電モードが望ましいことがある。これはキャッシュバッファがスタンバイモードでも活動状態に留まることを可能にする。このモードの利得係数もキャッシュヒット率による影響を受ける。高いヒット率のために、動作のしきい周波数を下げ、より高いキャッシュヒットを捕捉できることが望ましいことがある。特定のキャッシュアクセス、例えば読み書きの別個の処理、又はアクセスの局所の使用を調べることもできる。これらは全て利得係数、従ってしきい周波数の調整に用いうる。
【００５８】
［節電モード開始動作の可調性］
上記設計には幾つかの調整できるパラメータがある。これらは利得係数ｇ１及びｇ２、タイミングウィンドウサイズ、リングバッファサイズ、密度対周波数スケール係数ｓｃａｌｅ及び活動状態のしきい周波数を含む。しかしながら、良好な実施例では、節電モード開始の動作を調整する最も適切なパラメータは式（６）及び（７）の利得係数である。調整できるパラメータはディスク駆動機構製造時に固定しうる、即ち、それらはユーザが特定のアプリケーションに適合させることにより、又は電力管理の過去の性能ペナルティに基づいて動的に調整しうる。
【００５９】
［ユーザ可調性（adjustability)］
上記のように、利得係数を直接にセットするためにコンピュータからのコマンドをインタフェース制御装置１３（図１）を通じて用いることができる。しかしながら、エネルギ管理の内部の詳細をコンピュータ４１から隠すことはもっと有利である。よって、性能係数ｐｆと呼ばれる別の係数が用いられる。それはコンピュータ４１からのコマンドにより調整され、そしてディスク駆動機構で実現された特定のエネルギ管理設計とは無関係である。
【００６０】
ディスク駆動機構内の節電モードによるエネルギ管理はアクセス性能とエネルギ節約の間のトレードオフを必要とする。これは上記の節電モードの回復待時間の影響を直接に受ける。エネルギ対性能の妥協の重要性を記述する単一重みづけ性能係数は極めて望ましい。一方の端で、係数は性能と関係なくエネルギ節約の最大化に助力する。他の端では、係数はエネルギ節約に関係なく性能に助力する。これは通常のディスク駆動機構電力管理手法と全く異なり、ここではエネルギ管理コマンドは節電モードを開始する一定の時間を調整する。これらの管理は性能又はエネルギ節約と直接には関係しない。更に、異なる駆動機構は、同じ一定の時間設定でも、異なるエネルギ節約及び性能の強い影響を生ずる。しかしながら、エネルギ対性能係数のスケールは固定することができ、全ての駆動機構が同じように動作することを可能にする。良好な実施例では、性能係数インタフェースコマンドは下記のテーブル４で定義される。
【表４】
0004132105.tif 000005
【００６１】
値０は最大エネルギ節約に対応し、そして値２５５は最大性能（エネルギ管理なし）に対応する。このユーザ選択の性能係数コマンドも通常のディスク駆動機構インタフェース、例えばＳＣＳＩ又はＩＤＥで使用できる普通の固定タイムコマンドを用いてエミュレートしうる。ＩＤＥの場合、スタンバイモードのタイム値は０（最大節電モード）から最大値２５５までの範囲で変化する。この場合、実際のタイム＝５ｓ（秒）＊タイム値であり、タイムは５秒からおよそ２０分までの範囲で変化する。このコマンドを性能係数に変換すると、０は最大性能であり、そしてテーブル４から線形スケールは０〜２５４の代わりに１〜２５５の値の範囲で変化する。
【００６２】
良好な実施例では、性能係数コマンドからの入力は利得係数ｇ１及びｇ２を調整することによりエネルギ管理システムの動作に変換される。これは利得係数をエネルギ及び性能の端を表わす２つの限界の間で変化させることになる。例えば、式（６）の均一なアクセスの範疇では、ｇ１は標準偏差ｓｄｅｖの推定値に関する乗数に対応する。これはｇ１の実際的なある範囲：０．５＜ｇ１＜５を示唆する。同様に、ｇ２は最小周波数ｍｉｎｆの分数であるから、その実際的な値も１＜ｇ２＜１０の範囲にある。統計的に、ｇ１の下限は、しきい周波数が実際に分布の一部である通常の分布データにおよそ２０％の確率で対応する。下限が低すぎると、節電モードが不適切に開始される高い確率を生ずるので、実際にはエネルギ使用が増加する。ｇ１の上限はおよそ１０-6の確率に対応し、これはたぶん十分である。これらの限界の動作は、それらも統計的に定義されていないけれども、ｇ２の場合に類似する。これらの限界の選択を改善するために、性能及びエネルギ動作に関する経験的なデータを考慮することが望ましいことがある。更に、多くの設定は実際にはわずかに識別できるだけでよいので、テーブル４の説明の必要がないであろう。次の式（９）及び（１０）はテーブル１の電力値を有するディスク駆動機構についてテーブル４のコマンドの性能係数ｐｆ変換を示す。
【数９】
g1 = (12+pf/4)/16               （９）
【００６３】
【数１０】
g2 = (24+pf/2)/16             （１０）
【００６４】
ここで、限界は概略的に０．７５＜ｇ１＜４．７５であり、そして１．５＜ｇ２＜９．５である。式（９）及び（１０）は整数アルゴリズムによる実現を容易にするように設計されているのは、分割がシフト演算に置き換えうるからである。式（６）及び（７）を評価する最後のステップとして係数１６によるスケーリングを実行することが望ましい。
【００６５】
他のパラメータ、例えばタイミングウィンドウサイズも性能係数を用いて調整しうる。一般に、値が大きくなれば、電力消費の代償を払って性能が改善される。使用できる節電モードの下位セットも選択しうる。例えば、節電モードには他よりも大きな影響を及ぼすものもあるので、性能が重要なときは、それらを使用しないことが望ましいことがある。上記の性能係数ｐｆの利点は、エンドユーザ又はシステム構成者が特定の実施例の詳細を知ることなしに設計目標に適合させるためにどのパラメータを調整すべきかを、ディスク駆動機構設計者が決定しうることである。
【００６６】
［性能を犠牲にした動的可調性］
節電モードはディスク駆動機構アクセスの周波数に基づいて開始される。十分な電力管理動作は、新しい値が選択されるまでパラメータが固定される、図６及び図７を用いて行われる。選択されたパラメータ、例えば利得係数のセットの適合性は実際のアクセスパターンによるであろう。アクセスパターンの変化が節電モード開始動作に影響する場合には新しいパラメータが選択されなければならない。しかしながら、アクセスパターンの変化に追随するためにパラメータは動的に調整しうる。これは性能目標がいかに達成されるかを測定し、それに従って利得係数を動的に調整する適応性のあるシステムを用いて行われる。
【００６７】
動的適応性の達成は所望の動作との比較のために実際の動作を測定する能力を必要とする。性能目標からの偏差の大きさ及び方向の両者が測定されるとき、最良の性能が得られる。これらの測定値は利得係数の調整に用いられるのでペナルティとして扱われることがある。電力測定の場合、２種類のペナルティ：エネルギ／応答ペナルティ（ＥＲＰ）及び機会逸失ペナルティ（ＭＯＰ）を定義することが好都合である。前者はディスク駆動機構が余分なエネルギを使用するか又は性能に影響するときに起きる。これはしきい周波数ＴＦの設定が高すぎたことを意味する。後者はディスク駆動機構が節電モードを、それが適切であったときに、開始していないときに起きる。これはしきい周波数の設定が低すぎたことを意味する。２つのタイプのペナルティはしきい周波数決定に対する影響が相反するから、それらはシステムの動作を平衡させるのに用いうる。
【００６８】
ペナルティはしきい周波数の式のパラメータの調整に用いられるから、それらは任意の都合のよい単位で計算しうる。ペナルティを時間単位で計算することは計算が簡単である利点を有する。ペナルティの周波数単位での計算は、要求による計算から入手できる幾つかの入力値を有する利点がある。
【００６９】
図７は節電モードの開始及び終了の時系列を示す図である。時間は水平軸に描かれ、そして電力は垂直軸に（任意の単位で）描かれる。水平軸の短い目盛りマークは節電モードのタイミングウィンドウを表わす。３つの電力レベル：シーク読取り／書込み電力Ｐ０、アイドル電力Ｐ１及びモード電力Ｐ２が示されている。簡明さのために、ディスク駆動機構アクセスは全て電力レベルＰ０で短い区間として示されている。ディスク駆動機構は電力レベルＰ１でアイドル状態で始動する。時間Ｔ０はアクセスが起きる場合のタイミングウィンドウの開始点である。後の時間Ｔ１で節電モードが開始されて時間Ｔ２まで続き、時間Ｔ２で次のアクセスが起き、そして駆動機構は活動状態に戻る。Ｔ４で開始するタイミングウィンドウで次のディスクアクセスが起きる。Ｔ５で再び節電モードが開始されてＴ６で終了し、そして別のディスクアクセスが起きる。
【００７０】
性能ペナルティについては、節電モードの持続期間が重要である。図８には、上記の図３に示されたハードウェアにカウンタ２０４が付加されている。カウンタ２０４はモード開始２２６及び、アクセス２２０として示されたモード終了の間のタイムウィンドウ２２１の数をカウントする。出力２２７はタイムウィンドウ単位のモードの持続時間である。この出力はモード終了後に使用できる。この値は時間単位として直接に使用し、又は式（２）及び（３）により周波数単位に変換しうる。
【００７１】
［エネルギ／応答ペナルティ］
エネルギ／応答ペナルティＥＲＰについては、エネルギの影響及び応答時間の影響が測定される。エネルギペナルティＥＰは節電モードが不適切に開始されたとき用いられる余分なエネルギの量の測定値である。応答時間ペナルティＲＰは節電モードか不適切に開始されたとき実際のデータスループットにどれだけ影響があるかを示す測定値である。図７では、２つの例のモードが示されている。１つは時間Ｔ１〜Ｔ２であり、他の１つは時間Ｔ５〜Ｔ６である。エネルギ／応答ペナルティはＴ５で開始されたモードで起きるが、Ｔ１で開始されたモードでは起きないであろう。これは図７でＥＲＰラベルで示されている。
【００７２】
エネルギペナルティについては、節電モードのエネルギ損益なしの時間ＴBEまでの時間があり、このモードの持続期間中に節約されたエネルギは回復エネルギにより釣合わされる。参照として図７の最初のモードを考慮して、Ｔ０はアクセス密度＞０の最後のタイミングウィンドウを指し、Ｔ１はモードが開始される時間を指し、そしてＴ２はモードが終了する時間を指す。値Ｔ２−Ｔ１はハードウェア実現のカウンタ２０４からのモード持続時間である。Ｔ２−Ｔ１＜ＴBEの場合、エネルギペナルティＥＰが起きる。エネルギペナルティＥＰはＴ２−Ｔ１及びＴBEの関数として計算される。良好な実施例では、
【数１１】
if (T2−T1＜TBE）    EP ＝ 16−16 * (T2−T1)／TBE
else  EP＝0                                         （１１）
【００７３】
式（１１）で、節電モードの持続時間が実質的に０である（アクセスがモードの開始直後に起きた）ときの値１６から、エネルギ損益なしの時間を越えたときの値０までの範囲で直線的に変化するエネルギペナルティＥＰが計算される。異なる重みづけのペナルティを与える、他のエネルギペナルティの式も可能である。しかしながら、式（１１）はかなり簡単であり、エネルギの影響の良好な推定値を与える。実際には、式（１１）のパラメータの値は正確でなくてもよく、計算は整数算で実行しうる。整数算では、１６のペナルティレベルがあり、十分な分解能を与える。
【００７４】
節電モードの応答時間の影響は回復により起きる新たな待時間ＲＬに基づいて計算される。これはスループットへの影響の測定値（ディスク駆動機構の性能の測定値）である。よって、スループット影響の上限ＴＵＢは性能係数から取出しうる。節電モードからのスループット影響はＲＬ／（Ｔ２−Ｔ０）として測定される。それゆえ、応答制限時間ＴＲＬがあり、これはスループット上限ＴＵＢによる、即ちＴＲＬ＝ＲＬ／ＴＵＢである。応答ペナルティはＴ２−Ｔ０＜ＴＲＬのときは必ず起きる。
【数１２】
TF ＝ scale／(T1−T0＋1)           （１２）
【００７５】
それゆえ、
【数１３】
T2−T0 ＝ T2−T1−1＋scale／TF       （１３）
【００７６】
上記の式により、値Ｔ２−Ｔ０はしきい周波数及びモード持続時間Ｔ２−Ｔ１から計算しうる。応答ペナルティＲＰはＴ２−Ｔ０及びＴＲＬの関数として計算される。良好な実施例では、
【数１４】
if（T2−T0＜TRL）RP ＝ 16−16 *（T2−T0）／TRL;
else RP ＝ 0;                                  （１４）
【００７７】
式（１４）で、節電モードの持続時間が実質的に０のときの値１６から、応答制限時間を越えるときの値０までの範囲で直線的に変化する応答ペナルティＲＰが計算される。異なる重みづけのペナルティを与える他の応答ペナルティの式も可能である。しかしながら、式（１４）はかなり簡単であり、スループット影響の良好な推定値を与える。実際には、式（１４）のパラメータの値は整数算で実行しうる。整数算では、十分な分解能を与える１６のペナルティレベルがある。
【００７８】
エネルギペナルティＥＰ及び応答ペナルティＲＰが組合わされたものがエネルギ／応答ペナルティＥＲＰである。良好な実施例では、２つのペナルティのうちの大きい方だけがエネルギ／応答ペナルティとして用いられる。従って、次の式に示すように、時間制限の大きい方のペナルティのみを計算すればよいから、計算が簡略化される。しかしながら、エネルギ及び応答ペナルティの両者を用いて、例えば重みづけ平均値を用いることによりエネルギ／応答ペナルティを計算することが望ましいであろう。
【数１５】
MTL ＝ max（TBE'TRL）                  （１５）
【００７９】
エネルギ及び応答ペナルティは周波数単位でも計算しうる。この場合、時間値ＴBE及びＴＲＬは式（２）及び（３）により対応する周波数として計算される。エネルギ損益なしの周波数ＦＢＥ及び応答制限周波数ＦＲＬがある。モード持続時間は式（２）及び（３）を用いて周波数値ＦＭＤに変換される。次の式はペナルティの式である。
【数１６】
if（FMD＞FEB）EP ＝ 16−16 * FEB／FMD;
else EP ＝ 0;                                （１６）
【００８０】
【数１７】
if（1／FMD−1／TF＞1/FRL）RP ＝ 16−16 * FRL * TF * FMD／（TF-FMD）;
else RP ＝ 0;                                              （１７）
【００８１】
良好な実施例では、これらの２つのペナルティの大きい方だけを再び用いるので、次の式により低い方の周波数を有するペナルティを計算するだけでよい。
【数１８】
MFL ＝ min（FBE,FRL)                       （１８）
【００８２】
モードが終了して活動状態に戻ったとき、エネルギ及び応答ペナルティが計算される。より深いモードが開始された場合にペナルティは生じないのは、回復ペナルティは当該モードに関連付けられないからである。
【００８３】
［機会逸失ペナルティ］
機会逸失ペナルティＭＯＰについては、節電モードの使用はエネルギペナルティも応答ペナルティも生じない理想的な動作と比較される。節電モードが用いられないとき（タイプ１）、又はモードを開始するしきい周波数が低すぎるとき（タイプ２）に機会逸失が起きる。このタイプの機会はどちらもエネルギペナルティ又は応答ペナルティなしに区間を使用できる場合にのみ考慮される。図７で、区間Ｔ３〜Ｔ４は（ＭＯＰ１と表示された）タイプ１の機会の例であるのに対し、区間Ｔ０〜Ｔ１及びＴ４〜Ｔ５はタイプ２の機会の例である。区間Ｔ０〜Ｔ１は（ＭＯＰ２と表示された）タイプ２のペナルティを生ずることがあるのに対し、区間Ｔ４〜Ｔ５はそれを生じないであろう。エネルギ／応答ペナルティのように、機会逸失ペナルティは任意の都合のよい単位で計算でき、周波数及び時間は最も好都合である。
【００８４】
機会逸失ペナルティは時間単位で計算しうる。節電モードでは、機会逸失は区間が脱落したときに起きる。図７で、値Ｔ０、Ｔ１及びＴ２は前の段落に記述されているように定義される。タイプ１の機会では、関連する時間はＴ３、０よりも大きいアクセス密度を有する最後のタイミングウィンドウ、及びＴ４、節電モードがその区間で開始されなかったときの次のディスクアクセスの時間である。値Ｔ４−Ｔ３はその区間の長さを表わし、次の式を用いてアクセス周波数から計算しうる。
【数１９】
T4 − T3 ＝ scale／freq − 1          （１９）
【００８５】
ここで、ｆｒｅｑは測定されたアクセス周波数である。もちろん、エネルギ損益なしの時間よりも長い区間及び応答制限のみを考慮すればよい。次の式はタイプ１の機会逸失ペナルティの式である。
【数２０】
MOP1 ＝ (T4 − T3)／MTL              （２０）
【００８６】
式（２０）がペナルティ０を生ずるのは、整数算が実行されたとき機会（Ｔ４−Ｔ３）がペナルティを生ずる場合である。ペナルティの大きさは機会がエネルギ損益なしの時間又は応答制限の大きい方よりもどれだけ大きいかによる。従って、大きい方のペナルティは大きい方の機会に課される、そして小さい方のペナルティは小さい方の機会に課される。
【００８７】
節電モードが開始される、タイプ２の機会については、次の式を用いて値Ｔ１−Ｔ０がしきい周波数から計算しうる。
【数２１】
T1 − T0 ＝ scale／TF − 1            （２１）
【００８８】
タイプ２のペナルティが使用されるのは、エネルギペナルティも応答ペナルティもない節電モードを持ちうるとき、ならびにモード開始前に望ましくない量のエネルギの消費をしきい周波数が許したときにのみ起こりうる。これは次の式により計算される。
【数２２】
MOP2 ＝ (T1 − T0)／MTL               （２２）
【００８９】
タイプ１の場合のように、機会がエネルギペナルティ又は応答ペナルティを課す場合、ペナルティは生じない。タイプ１の場合、これは絶対的な限界である。タイプ２の場合、これは概略値である。なぜなら、エネルギペナルティ又は応答ペナルティの賦課はタイプ２の機会及びモード持続時間の両者によるからである。しかしながら、式（２２）は計算が非常に簡単であるという利点がある。
【００９０】
機会逸失ペナルティは周波数単位でも計算しうる。タイプ１の機会では、測定された周波数ｆｒｅｑが低周波数ペナルティ限界ＭＦＬよりも低下したとき、ペナルティが生ずる。この場合、次の式が良好なペナルティ計算式である。
【数２３】
MOP1 ＝ MFL／freq                     （２３）
【００９１】
タイプ２の場合、次の式が用いられる。
【数２４】
MOP2 ＝ MFL／TF                       （２４）
【００９２】
周波数単位を用いてペナルティを計算する利点は現在の周波数ｆｒｅｑ及びしきい周波数ＴＦを使用できることである。しかしながら、カウンタを有するハードウェアの実現を容易にするために、又はエネルギペナルティ及び応答ペナルティについて（一貫性のために）時間単位が用いられるときは、時間単位が望ましいことがある。
【００９３】
明らかに、他のペナルティの式もありうる。上記の説明はエネルギペナルティ又は応答ペナルティが生ずる場合には機会逸失ペナルティはとられないと仮定する。状況によっては、これらの場合に機会逸失ペナルティの発生が望ましいことがある。そのとき、ペナルティはエネルギペナルティ又は応答ペナルティの大きさにより追加の重みづけ係数を有するかも知れない。
【００９４】
複数の節電モードがあるとき、ペナルティ値はモード毎に決定されることが望ましい。モードによりタイミングウィンドウが異なるときこれが特に望ましいのは、それらがアクセス周波数スペクトルの異なる部分に応答することがあるからである。所与のモードでは、ペナルティを決定する際に他のモードのエントリを用いうるが、これは不要である。例えば、ペナルティは全ての区間にある全てのモードについて、又は最適のモードについてのみ検査しうる。更に、節電モード毎に複数のペナルティを保持することが有利である。例えば、式（６）〜（８）は均一なアクセスパターン及び散発的なアクセスパターンの場合を表わす。ペナルティのセットはこれらの種類のどちらにも保持され、これらの２つの場合について独立した動的な適応性を可能にする。これは所与の区間の間にどの種類が活動状態であるかに注目し、当該特定の種類のペナルティを計算することによりなし遂げられる。
【００９５】
［ペナルティの履歴］
ペナルティの時間履歴は式（６）及び（７）のしきい周波数計算でパラメータ、できれば利得係数ｇ１及びｇ２を調整するために用いられる。良好な実施例では、個々のペナルティが生じ、それらは対応する累積ペナルティ値：累積エネルギ／応答ペナルティのＣＥＲＰ、及び累積機会逸失ペナルティＣＭＯＰに付加される。これらの値の１つが所定のトリップレベルと交差したとき、選択されたしきい周波数計算のパラメータがそれによって変更され、そして累積値は減少させられる。ペナルティが課されずに節電モードが開始されたとき、対応する累積ペナルティ値はある量だけ減少させられる。これは時間によりペナルティを減少させる作用を有し、より古いペナルティの影響はより新しいペナルティの影響よりも少なくなる。このプロセスは図９に示される。水平軸にはモード区間が表示され、各区切りはモード開始（又は機会）に対応する。垂直軸は累積ペナルティＣＥＲＰの大きさである。区間０でペナルティが生じ、累積ペナルティ値は増加する。区間１ではペナルティは生じないので、累積ペナルティ値は減少する。この動作は継続し、累積ペナルティは新しいペナルティ毎に増加し、ペナルティが生じないときは一定の速度で減少する。区間７では、図示のように、新しいペナルティと累積ペナルティの組合せの大きさはペナルティのトリップレベルと交差するのに十分である。この時点で、式（６）及び（７）の利得係数は変更され、累積ペナルティ値は減少して０になる。パラメータ調整が動作を変更したと推定されて累積ペナルティはクリアされるので、新しい測定値が必要となる。この影響は区間８以後の時間区間に示され、ペナルティは以前の区間よりも少なく且つ小さくなる。
【００９６】
良好な実施例では、エネルギ／応答ペナルティ（ＥＰ及びＲＰのうちの大きい方）は、このようなペナルティが生じたとき、次の式に示すようにＣＥＲＰに付加される。
【数２５】
CERP ＝ CERP ＋ max（EP,RP)         （２５）
【００９７】
そして累積ペナルティは所定のトリップレベルＥＲＰＴと比較され、しきい周波数計算において利得係数ｇ１及びｇ２が変更される。良好な実施例では、均一なアクセス及び散発的なアクセスについてペナルティは別個に追跡され、そして適切な利得係数ｇ１又はｇ２が増分される。ＥＲＰＴの良好な値は１６である。上記のように、実際には利得係数に限界があり、これらは利得の上限を制限するために用いうる。
【００９８】
ペナルティがない場合、次の式に示すように、累積ペナルティＣＥＲＰは、下限０に達するまで、モード終了毎に所定の量（ＣＥＲＤ）だけ減少させられる。
【数２６】
CERP ＝ CERP − CERD               （２６）
【００９９】
ＣＥＲＤは累積ペナルティの減衰率の働きをする。一般に、ＣＥＲＤの値は２が適切である。ペナルティの影響は、値が大きければ、より早い速度で減少し、値が小さければ、より遅い速度で減少する。
【０１００】
累積機会逸失ペナルティＣＭＯＰは累積エネルギ／応答ペナルティと同様に計算される。タイプ１及びタイプ２のペナルティを別個に（累積ペナルティとは別に）処理し、又はそれらを同じ累積ペナルティに、より簡単に、付加することができる。機会逸失ペナルティが生じたとき、累積ペナルティＣＭＯＰに適切な値（ＭＯＰ１又はＭＯＰ２）が付加される。良好な実施例では、累積ペナルティがトリップレベルＭＯＰＴを越えたとき、適切な利得係数ｇ１又はｇ２が減分される。ＭＯＰＴの良好な値は１６である。上記のように、実際には利得係数に限界があり、これらは利得の下限を制限するのに用いうる。ペナルティがない場合、ＣＭＯＰは下限０まで所定の量ＣＭＯＤだけ減少させられる。繰り返せば、ＣＭＯＤの適切な値は２である。
【０１０１】
エネルギ／応答ペナルティＥＲＰ及び機会逸失ペナルティＭＯＰ２はモードが終了したとき計算される。このプロセスの詳細は図１０に示される。ステップ３５０は、最も深いモードが開始されたとき、図４のステップ３１３からも開始される。ステップ３５２は、アクセスが起き且つ駆動機構が現に節電モードであるとき、図２のステップ４０１から開始される。ステップ３５１はアクセスがステップ３５０から開始されるときを待つ。ステップ３５２で、上記のようにモード持続時間が得られる。ステップ３５３で、エネルギペナルティＥＰ及び応答ペナルティＲＰが上記のように計算される。ステップ３５４はペナルティがあるかどうかを検査する。ペナルティがない場合、ステップ３５６が開始される。ペナルティがある場合、ステップ３５５が開始される。ステップ３５５で、累積ペナルティＣＥＲＰにペナルティが付加される。ステップ３５８で、累積ペナルティがペナルティトリップレベルＥＲＰＴと比較される。トリップレベルに満たない場合、ステップ３６７が開始され、図４のステップ３００に制御が戻される。トリップレベルを上回る場合、ステップ３５９で、適切な利得係数が変更される。ステップ３６０で、累積ペナルティが０にセットされ、ステップ３６７が開始される。ステップ３５６では、ペナルティがなかったので、累積ペナルティは減少させられる。ステップ３５７で、式（２４）を用いてタイプ２の機会逸失ペナルティが計算される。ステップ３６１はペナルティが生じたかどうかを検査する。ペナルティがなかった場合、ステップ３６２で、累積ペナルティは減少させられ、ステップ３６７が開始される。ペナルティがあった場合、ステップ３６３は累積ペナルティにそのペナルティを付加する。ステップ３６４は累積ペナルティがトリップレベルを越えるかどうかを検査する。トリップレベルを越えた場合、ステップ３６７が開始される。トリップレベルを越えない場合、ステップ３６５で適切な利得係数が変更され、ステップ３６６で累積ペナルティが０にセットされ、そしてステップ３６７が開始される。
【０１０２】
タイプ１の機会逸失ペナルティＭＯＰ１はアクセス周波数が周波数ペナルティ限界よりも低下したとき計算される。図４で、比較及び計算がステップ３０７の一部として行われる。これはより詳細に図１１に示される。ステップ３２５は図４のステップ３０７から開始される。ステップ３２６で、式（２３）によりペナルティ値ＭＯＰ１が計算される。ステップ３２７はペナルティがなかったかどうかを検査する。ペナルティがなかった場合、ステップ３２８で図４のステップ３０７に戻る。ペナルティが生じた場合、ステップ３２９はこれを累積ペナルティＣＭＯＰに付加する。ステップ３３０で、累積ペナルティが機会逸失トリップレベルＭＯＰＴと比較される。トリップレベルを越えない場合、ステップ３２８が開始される。トリップレベルを越える場合、ステップ３３１が開始され、適切な利得係数が変更される。ステップ３３２で、累積ペナルティはクリアされ、ステップ３２８に進む。
【０１０３】
機会逸失ペナルティの明確な使用がなくても利得係数を調整しうる。このような場合、エネルギ／応答ペナルティ発生の周波数を代わりに使用できる。これはエネルギ／応答ペナルティがいくらかあるとき最適動作が生ずるとの想定に基づいて動作する。発生の速度が遅すぎることはシステムが十分にエネルギを節約していないことを示す。それゆえ、あるレベル以下に発生の速度が低下した場合、利得係数はあたかも機会逸失ペナルティが生じたかのように変更しうる。
【０１０４】
もちろん、ペナルティ情報を再びしきい周波数計算に供給する方法を設計することもできるが、上記の実施例は非常に簡単な設計である利点を有し、実際のシステムの動作に応答する。他の設計はペナルティ統計、例えばヒストグラムによる統計の維持、及びペナルティの重みづけ、例えば再基準化による重みづけの提供を含む。他のパラメータ、例えばペナルティトリップレベル、ペナルティ減衰レベル、（式（１４）に示すような）ペナルティ量変換係数及び利得係数の制限の調整を可能にすることが望ましいこともある。これらはコンピュータ４１からのコマンドにより、又は累積ペナルティトリップレベルと交差したとき動的に調整しうる。上記のような性能／エネルギ目標コマンドに基づいてこれらの種々の係数が調整されることも望ましい。
【０１０５】
ディスク駆動機構はそれが特定のエネルギ／性能目標をいかに良好に満たしているかをコンピュータに知らせることも望ましい。前記情報は、例えば状況コマンドで転送しうる。これはコンピュータがエネルギ／性能目標を変更し、又はその目標が満たされていないことをユーザに知らせることを可能にする。
【０１０６】
［定期的なアクセス］
定期的なアクセスの場合には性能に影響を与えずにエネルギ節約を高めることもできる。定期的なアクセスは極めて一般的である。例えば、大抵のワード処理アプリケーションは、ユーザが指定した定期的な間隔で、例えば１０分毎に現在の文書を記憶する自動保管特性を有する。このようなアクセスパターンを検出できる場合、節電モードはより迅速に開始され、そして予期されたアクセスの前に終了しうる。これは節電モード回復時間をユーザから隠し、さもなければ実際よりも早くモードを開始することによりエネルギを一層節約する効果を有する。アクセス周波数の方法は自然に定期的なアクセスの検出に役立つ。この場合、極長波（ＶＬＦ）アクセス動作が重要である。ＶＬＦ動作はアクセス密度から測定できるが、目標周波数範囲では測定できないことに留意されたい。これはモード回復時間よりも長い時間の範囲であろう。自動保管動作の検出では、少なくとも数秒のタイミングウィンドウが適切であろう。履歴バッファはＶＬＦ動作、例えば最後の３ＶＬＦの発生について維持される。履歴バッファ内でパターンが検出された場合、定期的なモードが開始される。１つの非常に簡単なパターンは最後の３ＶＬＦの値が相互に、ある公差、たぶん５％の範囲内にあることである。ひとたび定期的なモードが開始されれば、利得係数が減少させられ、より迅速に節電モードを開始するのは、性能ペナルティはないであろうと想定されるからである。前の値が保管されるのは、定期的なモードが終了したときそれらが回復されるからである。ディスク駆動機構は、測定されたＶＬＦが、ある公差の、予想されたＶＬＦの範囲内にあるとき活動状態に戻る。この公差はＶＬＦの値の統計的な信頼に基づいているので、節電モード回復時間も含み、ＶＬＦアクセスが起きたときディスク駆動機構が使用できることを保証する。パターンが反復されなかったとき、定期的なモードは終了させられる。定期的なモードを終了させるための簡単な検出機構は、遅くても早くても、予測されたＶＬＦの、ある公差の範囲内で、アクセスが起きないときに可能である。
【０１０７】
利得係数及びその他の調整できるパラメータを非揮発性記憶装置に保管できるので、電源が遮断されたときディスク駆動機構はその動作を保持できる。これは半導体記憶装置、例えばフラッシュＲＡＭの使用により、又はその値をディスクに書込むことにより行われる。後者は、例えば、節電モードの開始前に実行できる。
【０１０８】
まとめとして、本発明の構成に関して以下の事項を開示する。
（１）データトラックを有する記録ディスク、複数の給電される構成素子、及びディスクでのデータの読取り及び書込みのためにこれらの構成素子をアクセスするデータ制御装置を備え、前記構成素子が前記ディスクを回転させるためのスピンドルモータ、前記ディスクに対してデータの読み書きを行うヘッド及び前記ヘッドに接続され前記ヘッドを前記ディスク上のそれぞれのトラックへ移動させるアクチュエータを含むデータ記録ディスク駆動機構において電力消費を管理する方法であって、少なくとも１つの構成素子をアクセスする周波数を決定するステップと、前に決定された周波数からアクセスしきい周波数を選択するステップと、決定されたアクセス周波数がアクセスしきい周波数よりも低下したとき少なくとも１つの構成素子への電力を減らすステップとを含む方法。
（２）制御装置からのアクセスに応答して、前に電力が減らされた構成素子への電力を回復するステップを更に含む、上記（１）に記載の方法。
（３）前記ディスク駆動機構は前記ディスクのトラック上に前記ヘッドを保持するために前記アクチュエータに接続されたサーボ制御電子回路を備え、前記アクセスする周波数を決定するステップは前記ヘッドが前記ディスクに対してデータを読取り又は書込むためのアクセス周波数を決定するステップを含み、前記電力を減らすステップは前記アクチュエータをパーキング位置に移動させ、前記サーボ制御電子回路への電力を減らすステップを含む、上記（１）に記載の方法。
（４）前記アクセスする周波数を決定するステップは前記アクチュエータが前記ディスクを横切ってシークするためのアクセスの周波数を決定するステップを含み、前記電力を減らすステップは前記アクチュエータをパーキング位置に移動させ、前記スピンドルモータを停止させるステップを含む、上記（１）に記載の方法。
（５）前記アクセスする周波数を決定するステップは、タイムウィンドウで起きるアクセスの密度からアクセス周波数を推定するステップを含む、上記（１）に記載の方法。
（６）前記前に決定されたアクセス周波数からアクセスしきい周波数を選択するステップは、最初にアクセス周波数のパターンの標準偏差がそのパターンの平均値の所定の分数よりも小さいかどうかを決定し、その後平均値に利得係数を乗じるステップを含む、上記（１）に記載の方法。
（７）前記前に決定されたアクセス周波数からアクセスしきい周波数を選択するステップは、最初にアクセス周波数のパターンの標準偏差がそのパターンの平均値の所定の分数よりも大きいかどうかを決定し、その後そのパターンの最小アクセス周波数に利得係数を乗じるステップを含む、上記（１）に記載の方法。
（８）前記アクセスしきい周波数を選択するステップは、前に決定されたアクセス周波数のセット内の最大及び最小アクセスしきい周波数からアクセスしきい周波数を計算するステップを含む、上記（１）に記載の方法。
（９）前記アクセスしきい周波数を選択するステップは、最大及び最小アクセス周波数に所定の利得係数を乗じるステップを含む、上記（８）に記載の方法。
（１０）利得係数を調整するステップを更に含む、上記（９）に記載の方法。
（１１）アクセスが定期的なパターンであるかどうかを決定し、その後次の定期的なアクセスの前に、電力が減らされた構成素子に電力を回復するステップを更に含む、上記（１）に記載の方法。
（１２）データトラックを有する記録ディスク、前記ディスクを回転させるスピンドルモータ、データトラックにデータを書込み又はデータトラックからデータを読取るヘッド、データを読み書きするために前記ヘッドをアクセスするデータ制御装置、それぞれのデータトラックにそしてデータがないパーキング位置に前記ヘッドを移動させるために前記ヘッドに連結されたアクチュエータ、データの読取り又は書込みの間、前記ヘッドをデータトラックに保持するために前記アクチュエータに接続されたサーボ制御電子回路を備え、少なくとも２つの節電モードで動作できるデータ記録ディスク駆動機構において電力消費を管理する方法であって、読取り又は書込みアクセスの周波数を決定するステップと、前に決定されたアクセス周波数の値を記憶するステップと、前に決定されたアクセス周波数の記憶された値から第１のアクセスしきい周波数を計算するステップと、読取り又は書込みアクセス周波数が第１のしきい周波数よりも低いとき前記アクチュエータをパーキング位置に移動させ、前記サーボ制御電子回路への電力を減らすことにより、前記ディスク駆動機構に第１の節電モードの動作を開始させるステップとを含む方法。
（１３）前記前に決定されたアクセス周波数の記憶された値から第２のアクセスしきい周波数を計算し、そして読取り又は書込みアクセス周波数が第２のしきい周波数よりも低いとき前記スピンドルモータへの電力を減らすことにより、前記ディスク駆動機構に第２の節電モードの動作を開始させるステップを更に含む、上記（１２）に記載の方法。
（１４）前記スピンドルモータへの電力を減らすステップは、パーキング位置にアクチュエータを移動させるのとほぼ同時に前記スピンドルモータへの電力を減らすことにより、前記ディスク駆動機構は最初に第１の節電モードを開始せずに第２の節電モードを開始するステップを含む、上記（１３）に記載の方法。
（１５）前記第１のアクセスしきい周波数を計算するステップは、前記前に決定されたアクセス周波数のセット内の最大及び最小アクセス周波数からアクセスしきい周波数を計算するステップを含む、上記（１２）に記載の方法。
（１６）前記第１のアクセスしきい周波数を計算するステップは、前記最大及び最小アクセス周波数に利得係数を乗じるステップを含む、上記（１５）に記載の方法。
（１７）前記利得係数を調整するステップを更に含む、上記（１６）に記載の方法。
（１８）前記利得係数を調整するステップは、最大ディスク駆動節電を１つの限界とし最大ディスク駆動性能を他の限界とする範囲内で選択できる値を有する性能係数により利得係数を変更するステップを含む、上記（１７）に記載の方法。
（１９）データトラックを有する記録ディスク、前記ディスクを回転させるスピンドルモータ、データトラックにデータを書込み又はデータトラックからデータを読取るヘッド、データを読み書きするために前記ヘッドをアクセスするデータ制御装置、それぞれのデータトラックにそしてデータがないパーキング位置に前記ヘッドを移動させるために前記ヘッドに連結されたアクチュエータ、データの読取り又は書込みの間、前記ヘッドをデータトラックに保持するために前記アクチュエータに接続されたサーボ制御電子回路を有し、節電モードの動作を開始し且つ終了できるデータ記録ディスク駆動機構において電力消費を管理する方法であって、前の読取り又は書込みアクセスを記憶するステップと、最後のアクセスの後に、記憶された前のアクセスから、前記記憶された前のアクセスにより変化する節電モード開始時間を計算するステップと、最大ディスク駆動節電を１つの限界とし最大ディスク駆動性能を他の限界とする範囲の値を有する性能係数を選択するステップと、選択された性能係数を用いてモード開始時間計算を変更し、前記ディスク駆動機構のモード開始動作を前記選択された性能係数により調整するステップとを含む方法。
（２０）前記記憶するステップは前に決定されたアクセス周波数の値を記憶するステップを含み、前記節電モード開始時間を計算するステップは前記前に決定されたアクセス周波数の記憶された値からアクセスしきい周波数を計算するステップを含むことにより、読取り又は書込みアクセス周波数がしきい周波数よりも低いとき節電モードが開始される、上記（１９）に記載の方法。
（２１）前記アクセスしきい周波数を計算するステップは利得係数を使用するステップを含む、上記（２０）に記載の方法。
（２２）前記選択された性能係数を用いてモード開始時間計算を変更するステップは、利得係数を、それに前記選択された性能係数を乗じることにより、調整するステップを含む、上記（２１）に記載の方法。
（２３）節電モードを開始する際に前記アクチュエータをパーキング位置に移動させ、そしてサーボ制御電子回路への電力を減らすステップを含む、上記（１９）に記載の方法。
（２４）節電モードを開始する際に前記アクチュエータをパーキング位置に移動させ、そして前記スピンドルモータを停止するステップを含む、上記（１９）に記載の方法。
（２５）前記ディスク駆動機構は第１の節電モードよりも使用電力が少ない第２の節電モードの動作を開始・終了でき、最後のアクセスの後に、前記記憶された前のアクセスから、前記記憶された前のアクセスにより変化し、前記第１の節電モードを開始する最初の時間と異なる第２の節電モードを開始する別の時間を計算するステップと、前記選択された性能係数を用いて第２のモード開始時間計算を変更することにより、ディスク駆動機構の第２の節電モード開始動作を前記選択された性能係数により調整するステップとを更に含む、上記（１９）に記載の方法。
（２６）ディスク駆動機構が最初に第１の節電モードを開始せずに第２の節電モードを開始するようにするステップを更に含む、上記（２５）に記載の方法。
（２７）前記記憶された読取り又は書込みアクセスが定期的なアクセスのパターンを表わすかどうかを決定し、その後次の定期的なアクセスの前に節電モードを終了するステップを更に含む、上記（１９）に記載の方法。
（２８）データトラックを有する記録ディスク、前記ディスクを回転させるスピンドルモータ、データトラックにデータを書込み又はデータトラックからデータを読取るヘッド、データを読み書きするために前記ヘッドをアクセスするデータ制御装置、それぞれのデータトラックにそしてデータがないパーキング位置に前記ヘッドを移動させるために前記ヘッドに連結されたアクチュエータ、データの読取り又は書込みの間、前記ヘッドをデータトラックに保持するためにアクチュエータに接続されたサーボ制御電子回路を備え、節電モードの動作を開始し且つ終了できるデータ記録ディスク駆動機構において電力消費を管理する方法であって、読取り又は書込みアクセスの周波数を決定するステップと、前に決定されたアクセス周波数の値を記憶するステップと、前記前に決定されたアクセス周波数の記憶された値からアクセスしきい周波数を計算するステップと、前記読取り又は書込みアクセス周波数がアクセスしきい周波数よりも低いとき、節電モードの動作を開始するステップと、節電モード開始及び終了時間を検出するステップと、検出されたモード開始及び終了時間からの節電モード持続時間が、節電モードの終了に要したディスク駆動エネルギに概ね等しいディスク駆動エネルギ節約を必要とする、所定のエネルギ損益なしの時間よりも短い場合に、エネルギペナルティを計算するステップと、前記計算されたエネルギペナルティを累積するステップと、累積されたエネルギペナルティが所定のトリップレベルを越えたとき、アクセスしきい周波数を変更し、エネルギペナルティの履歴からディスク駆動機構の節電モード開始動作を動的に調整するステップとを含む方法。
（２９）前記読取り及び書込みアクセスの時間を検出するステップと、節電モード開始なしに検出が成功したアクセス時間の間の時間間隔が前記エネルギ損益なしの時間よりも長い場合に機会逸失ペナルティを計算するステップと、前記計算された機会逸失ペナルティを累積するステップと、前記累積された機会逸失ペナルティが所定のトリップレベルを越えたときアクセスしきい周波数を変更し、前記機会逸失ペナルティの履歴からディスク駆動機構の節電モード開始動作を動的に調整するステップとを更に含む、上記（２８）に記載の方法。
（３０）前記アクセスしきい周波数を計算するステップは、記憶されたアクセス周波数のセット内の最大及び最小アクセス周波数から、そして利得係数の使用により、アクセスしきい周波数を計算するステップを含む、上記（２８）に記載の方法。
（３１）前記アクセスしきい周波数を変更するステップは前記利得係数を調整するステップを含む、上記（３０）に記載の方法。
（３２）節電モードを開始する際に前記アクチュエータをパーキング位置に移動させ、そしてサーボ制御電子回路への電力を減らすステップを含む、上記（２８）に記載の方法。
（３３）節電モードを開始する際に前記アクチュエータをパーキング位置に移動させ、前記スピンドルモータを停止させるステップを含む、上記（２８）に記載の方法。
（３４）前記アクセスが定期的なパターンであるかどうかを決定し、その後次の定期的なアクセスの前に節電モードを終了するステップを更に含む、上記（２８）に記載の方法。
【図面の簡単な説明】
【図１】電力資源及び種々のエネルギを消費するディスク駆動機構構成要素を示すディスク駆動機構及びコンピュータシステムのブロック図である。
【図２】所定のタイムウィンドウ内の少なくとも１つの電力消費ディスク駆動機構のアクセスをカウントする流れ図である。
【図３】アクセス密度を増大するリングバッファに接続されたマイクロプロセッサを示すブロック図である。
【図４】ディスク駆動機構の節電モードを開始する時期を決定するためのアクセス周波数の計算及び周波数しきい値との比較を示す流れ図である。
【図５】リングバッファに予め記憶されたアクセス周波数を用いる周波数しきい値の計算を示す流れ図である。
【図６】リングバッファに予め記憶されたアクセス密度を用いる周波数しきい値の計算を示す流れ図である。
【図７】節電モードの開始及び終了の時系列を示す図である。
【図８】節電モードの開始及び終了の間のタイムウィンドウをカウントするカウンタが付加された図３に類似のブロック図である。
【図９】トリップレベルが交差するときの利得係数の調整を示す時間の関数としての累積エネルギ／応答ペナルティを示す図である。
【図１０】節電モードが終了したときのエネルギ／応答ペナルティ及び機会逸失ペナルティの計算を示す流れ図である。
【図１１】トリップレベルが交差したときの累積機会逸失ペナルティの計算及び利得係数の調整を示す流れ図である。
【符号の説明】
１        スピンドルドライバ
２        ＶＣＭドライバ
３        前置増幅器及び書込ドライバ
４        データ記録チャネル
５        スピンドル制御電子回路
６        サーボ制御電子回路
７        ディスク制御装置
８        マイクロプロセッサメモリ
９        マイクロプロセッサ
１０      バッファメモリ
１１      インタフェースモジュール
１２      電力制御モジュール
１３      インタフェース制御装置
１４      プロセッサ
１５      メモリ
１６      ディスプレイ
１７      キーボード
１８      周辺装置
１９      制御電子回路
２０      電源
３０      ＶＣＭ
３１      アクチュエータ
３２      スピンドルモータ
３３      データヘッド
３４      ディスク
３７      クラッシュストップ
３８      Ｌ／ＵＬランプ
４０      ディスク駆動機構
４１      コンピュータ
７０      バス
７１      バス
【図１】
0004132105.tif 000006
【図２】
0004132105.tif 000007
【図３】
0004132105.tif 000008
【図４】
0004132105.tif 000009
【図５】
0004132105.tif 000010
【図６】
0004132105.tif 000011
【図７】
0004132105.tif 000012
【図８】
0004132105.tif 000013
【図９】
0004132105.tif 000014
【図１０】
0004132105.tif 000015
【図１１】
0004132105.tif 000016