(57)【特許請求の範囲】
【請求項１】
ハード・ディスク・ドライブによって消費される電力を管理する方法であって、
前記ハード・ディスク・ドライブのリソースに関連するトークン値を保持するステップであって、周期的に前記トークン値の第１のフィールドをインクリメントするステップと、前記ハード・ディスク・ドライブの低電力移行が実行される度に、前記トークン値の第２のフィールドをインクリメントするステップとを含む、前記インクリメントするステップと、
前記ハード・ディスク・ドライブが、電力を節約するために低電力状態にされるべきであると決定するステップと、
前記ハード・ディスク・ドライブが低電力移行を実行することが許容されるかどうかを決定するために、前記トークン値を評価するステップであって、前記トークン値の前記第１のフィールドが前記トークン値の前記第２のフィールドよりも少なくとも所定の値大きければ、前記ハード・ディスク・ドライブに関して前記低電力移行が許容可能であると決定するステップを含む、前記評価するステップと、
前記ハード・ディスク・ドライブの前記低電力移行を許容すると前記トークン値が評価されれば、前記ハード・ディスク・ドライブの前記低電力移行を実行するステップと
を含む、前記方法。
【請求項２】
前記トークン値の第２のフィールドをインクリメントするステップが、
前記低電力移行が前記リソースに対して実行されるたびにインクリメントするステップ
を含む、請求項１に記載の方法。
【請求項３】
前記トークン値の前記第１のフィールドが前記リソースに対して許容可能な低電力移行の総回数を表す、請求項１又は２に記載の方法。
【請求項４】
前記トークン値の前記第２のフィールドが前記リソースに対して生じた低電力移行の総回数を表す、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記低電力移行を実行するステップは、
前記ハード・ディスク・ドライブをスピン・ダウンするステップ
を含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記低電力移行を実行するステップは、
前記ハード・ディスク・ドライブのヘッドをパーキングするステップ
を含む、請求項１〜４のいずれか一項に記載の方法。
【請求項７】
前記ハード・ディスク・ドライブの前記低電力移行を実行する前に、前記ハード・ディスク・ドライブの前記低電力移行の実行を許容すると前記トークン値が評価されるのを待つステップ
をさらに含む、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
最後の電力管理移行のときからのタイマを保持するステップと、
前記ハード・ディスク・ドライブの前記低電力移行を実行する前に、前記タイマが所定の時間を超えるのを待つステップと
をさらに含む、請求項１に記載の方法。
【請求項９】
ハード・ディスク・ドライブによって消費される電力を管理するためのコンピュータ・プログラムであって、コンピュータに、請求項１〜８のいずれか一項に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
【請求項１０】
データ記憶デバイスであって、
回転可能な記憶媒体と、
前記回転可能な記憶媒体をスピンさせることができるモータと、
前記モータを制御することができ、トークン記憶構成要素および制御インターフェースを含むディスク・コントローラと、
を含み、
前記ディスク・コントローラは、
前記トークン記憶構成要素に記憶されたトークン値の第１のフィールドを周期的にインクリメントし、前記ハード・ディスク・ドライブの低電力移行が実行される度に、前記トークン値の第２のフィールドをインクリメントし、前記トークン値の前記第１のフィールドが前記ハード・ディスク・ドライブのリソースに対して許容可能な低電力移行の総回数を表し、前記トークン値の前記第２のフィールドが前記リソースに対して生じた低電力移行の総回数を表し、
前記トークン記憶構成要素の前記トークン値のリクエストに応答して、前記トークン記憶構成要素に記憶された前記トークン値を、前記制御インターフェースを経由して提供するよう構成されている、
前記データ記憶デバイス。
【請求項１１】
前記ディスク・コントローラは、
前記データ記憶デバイスを低電力状態にするリクエストを、前記制御インターフェースを介して受け取り、
前記トークン値の前記第１のフィールドが前記トークン値の前記第２のフィールドよりも少なくとも所定の値大きければ、
前記トークン記憶構成要素に記憶された前記トークン値の前記第１のフィールドをデクリメントし、
前記データ記憶デバイスを前記低電力状態にするようさらに構成されている、
請求項１０に記載のデータ記憶デバイス。
【請求項１２】
前記ディスク・コントローラは、
前記データ記憶デバイスを前記低電力状態にする前に、前記トークン値の前記第１のフィールドが所定の値よりも大きくなるのを待つようさらに構成されている、請求項１１に記載のデータ記憶デバイス。
【請求項１３】
前記ディスク・コントローラは、
最後のディスク・アクセス・コマンドが前記制御インターフェースを介して受け取られたときからの経過時間を測定し、
前記経過時間が所定の経過時間を超え、前記トークン値の前記第１のフィールドが所定の値よりも大きければ、
前記トークン記憶構成要素に記憶された前記トークン値の前記第１のフィールドをデクリメントし、
前記データ記憶デバイスを低電力状態にするようさらに構成されている、
請求項１０に記載のデータ記憶デバイス。
【請求項１４】
コンピュータ・システムであって、
プロセッサと、
前記プロセッサに通信可能に結合されたメモリと、
前記プロセッサに通信可能に結合されたディスク・インターフェース・ユニットと、
前記ディスク・インターフェース・ユニットに通信可能に結合されたハード・ディスク・ドライブと
を含み、
前記ハード・ディスク・ドライブは、
回転可能な記憶媒体と、
前記回転可能な記憶媒体をスピンさせることができるモータと、
前記モータを制御することができるディスク・コントローラと
を含み、
前記コンピュータ・システムは、
前記ハード・ディスク・ドライブのリソースに関連するトークン値を保持し、前記保持することは、周期的に前記トークン値の第１のフィールドをインクリメントすることであって、前記ハード・ディスク・ドライブの低電力移行が実行される度に、前記トークン値の第２のフィールドをインクリメントすることを含み、
前記ハード・ディスク・ドライブが、電力を節約するために低電力状態にされるべきであると決定し、
前記ハード・ディスク・ドライブが低電力移行を実行することが許容されるかどうかを決定するために、前記トークン値を評価し、前記評価することは、前記トークン値の前記第１のフィールドが前記トークン値の前記第２のフィールドよりも少なくとも所定の値大きければ、前記ハード・ディスク・ドライブに関して前記低電力移行が許容可能であると決定することを含み、
前記ハード・ディスク・ドライブの前記低電力移行を許容すると前記トークン値が評価されれば、前記ハード・ディスク・ドライブの前記低電力移行を実行する
ように構成されている、前記コンピュータ・システム。
【請求項１５】
前記コンピュータ・システムは、
前記ハード・ディスク・ドライブの前記低電力移行を実行する前に、前記ハード・ディスク・ドライブの前記低電力移行の実行を許容すると前記トークン値が評価されるのを待つ
ようさらに構成されている、請求項１４に記載のコンピュータ・システム。
【請求項１６】
前記トークン値は、前記メモリに記憶されている、請求項１４又は１５に記載のコンピュータ・システム。
【請求項１７】
前記トークン値は、前記ディスク・コントローラに記憶されている、請求項１４又は１５に記載のコンピュータ・システム。
【請求項１８】
前記プロセッサは、前記ハード・ディスク・ドライブを低電力状態にするためのコマンドを、前記ディスク・インターフェース・ユニットを経由して前記ディスク・コントローラへ送るように構成されており、
前記ディスク・コントローラは、前記ハード・ディスク・ドライブの前記低電力移行を許容すると前記トークン値が評価されれば、前記コマンドに応答して前記ハード・ディスク・ドライブの前記低電力移行を実行するように構成されている、
請求項１７に記載のコンピュータ・システム。
【請求項１９】
前記ディスク・コントローラは、
最後のディスク・アクセス・コマンドが受け取られたときからの経過時間を測定し、
前記経過時間が所定の経過時間を超えれば、前記ハード・ディスク・ドライブが低電力状態にされるべきであるという前記決定を実施し、
前記ハード・ディスク・ドライブの前記低電力移行を許容すると前記トークン値が評価されれば、前記ハード・ディスク・ドライブの前記低電力移行の前記実行を実施する
ように構成されている、請求項１７に記載のコンピュータ・システム。
【請求項２０】
前記低電力移行は、
前記ハード・ディスク・ドライブをスピン・ダウンすること
を含む、請求項１４〜１９のいずれか一項に記載のコンピュータ・システム。
【請求項２１】
前記低電力移行は、
前記ハード・ディスク・ドライブのヘッドをパーキングすること
を含む、請求項１４〜１９のいずれか一項に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本主題は、ハード・ディスク・ドライブに関し、特に、ハード・ディスク・ドライブの電力を管理することに関する。
【背景技術】
【０００２】
多数のコンピュータ・システムが、データの記憶にハード・ディスク・ドライブを利用する。今日の典型的なハード・ディスク・ドライブは、同軸上に配置され電気モータを利用してスピンさせられる、１つ以上のディスクを利用する。データは、各ディスクの非常に近くを「浮上」する、各ディスク用の磁気ヘッドを使用して、書き込み・読み取りが行われることもある。データは、ヘッドを使用して、ディスクの小さな領域を特定の極性に磁化することによって書き込まれ、ヘッドを使用して各領域の極性を検出することによって読み取られる。ヘッドは、ヘッドをディスクの軸から所望の距離に配置するために、典型的には、ボイス・コイル・アクチュエータなどのアクチュエータによって駆動され、これによって、各ディスク上にデータの異なる同心円を多数作成することが可能になる。モータ、アクチュエータ、および磁気ヘッドは、ディスク・コントローラによって制御されることもあり、ディスク・コントローラはさらに、ディスク・インターフェースを提供することもあり、ディスク・インターフェースは、ハード・ディスク・ドライブへのアクセスおよびその制御を行うためにコンピュータ・システムによって使用され得る。ハード・ディスク・ドライブ全体は、筐体内に入っていることもあり、筐体は、露出した電源およびディスク・インターフェース接続を備え、コンピュータ・システムの残りの部分との相互接続を可能にする。
【０００３】
サーバ、デスクトップ、および携帯用コンピュータを含む多くのコンピュータ・システムは、動作コストの節約、ならびに環境への配慮の両方のために電力消費を削減するべく、省電力モードで動作できる。省電力のいくつかの側面は、電力制御インターフェース（ＡＣＰＩ：Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）規格で規定されているものなどの技術を使用してオペレーティング・システム内から制御されることもある。その他の側面は、個々のデバイスによって直接管理されることもある。さらに他の側面は、アプリケーションによって明示的に管理されることもある。
【０００４】
ハード・ディスク・ドライブは、多くのコンピュータ・システムにおいて、特に、多数のハード・ディスク・ドライブを利用することもあるサーバなどのコンピュータ・システムの場合、電力消費の主な要因となり得る。ハード・ディスク・ドライブは、１つ以上の低電力動作状態を提供することもある。ハード・ディスク・ドライブによって消費される電力の大部分をモータが占めることもあるため、低電力状態の一部は、省電力の一方法として、ディスクをスピンさせるモータをオフにすることもある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、信頼性を意識したディスク電力管理を提供することである。
【課題を解決するための手段】
【０００６】
ハード・ディスク・ドライブによって消費される電力を管理する方法の様々な実施形態は、ハード・ディスク・ドライブの低電力移行（ｌｏｗ  ｐｏｗｅｒ  ｔｒａｎｓｉｔｉｏｎ）の実際の数と比較した、ハード・ディスク・ドライブの低電力移行の許容可能数（ａｌｌｏｗａｂｌｅ  ｎｕｍｂｅｒ）に基づくトークン値（ｔｏｋｅｎ  ｖａｌｕｅ）を保持するステップを含む。低電力移行の許容可能数は、ハード・ディスク・ドライブの寿命中に増加する。ハード・ディスク・ドライブが、電力を節約するために低電力状態にされるべきであると決定されると、トークン値が評価されて、ハード・ディスク・ドライブが低電力移行を実行することが許容されるかどうかが決定される。ハード・ディスク・ドライブの低電力移行は、ハード・ディスク・ドライブの低電力移行を許容するとトークン値が評価されれば実行される。他の実施形態は、ハード・ディスク・ドライブによって消費される電力を管理する方法の各側面を実施するハード・ディスク・ドライブおよびシステムを含む。
【図面の簡単な説明】
【０００７】
【図１】電力管理の様々な実施形態に適したハード・ディスク・ドライブの様々な側面のブロック図を示す。
【図２】電力管理の様々な実施形態に適したハード・ディスク・ドライブの様々な側面のブロック図を示す。
【図３】ハード・ディスク・ドライブの電力管理の様々な実施形態のいくつかの側面のフローチャートである。
【図４】ハード・ディスク・ドライブの電力管理の様々な実施形態のいくつかの側面のフローチャートである。
【図５】ハード・ディスク・ドライブの電力管理の様々な実施形態のいくつかの側面のフローチャートである。
【図６】ハード・ディスク・ドライブの電力管理の様々な実施形態に適したシステムのブロック図である。
【発明を実施するための形態】
【０００８】
添付の図面は、本明細書に組み込まれてその一部を構成しており、本発明の様々な実施形態を示す。全般的な記載とともに、図面は、様々な実施形態の原理を説明するのに役立つ。
【０００９】
以下の詳細な説明では、様々な実施形態の完全な理解をもたらすために特定の詳細事項が例として多数記載される。なお、当業者には当然のことながら、本開示の実施形態は、そのような詳細事項を伴わずに実践されてもよい。他の場合には、本概念の側面を不必要に曖昧にすることを回避するために、周知の方法、手順、およびコンポーネントは、比較的上位で、詳細事項を伴わずに記載されている。いくつかの記述用語および表現が、本開示の様々な実施形態を記載するのに使用されている。これらの記述用語および表現は、別の定義が本明細書で与えられていない限り、当業者が一般に合意済みである意味を伝えるよう使用されている。明確にするために、いくつかの記述用語および表現を、以下の段落に示す。
【００１０】
「ヘッド・パーキング」（または「ヘッドをパーキングする」または「このヘッドをパーキングする」）は、ハード・ディスク・ドライブのヘッドを、ディスクの表面領域から離れた位置に移動させることを指す。これは、ヘッドとディスクとの物理的接触によって引き起こされ得る、回転中のディスクの損傷の可能性をなくすために行われることもある。これはさらに、ボイス・コイル・アクチュエータによって消費される電力量を削減するために行われることもある。一部の実施形態では、ヘッド（単数または複数）は、それらをディスクの表面領域から離すためにランプ（ｒａｍｐ）（単数または複数）に配置されることもある。
【００１１】
「スピン・ダウン」は、ハード・ディスク・ドライブのディスクをスピンさせるモータをオフにするプロセスを指す。一部の実施形態では、ディスク（単数または複数）は完全にスピンを止めることもあるが、他の実施形態では、ディスクは、スピンを完全には止めないまま再びスピン・アップされることもあり、または、ディスクは完全には止められず、単にずっと遅くスピンすることもある。
【００１２】
「スピン・アップ」は、ディスクをスピンさせるモータをオンにするプロセスを指す。ディスクは、実施形態および状況により、完全に止まった状態から、またはスピン・ダウンの一環としてまだ減速している段階から、またはより遅い速度から、スピン・アップされ得る。一部の実施形態では、スピン・アップ・プロセスはさらに、ディスク（単数または複数）に対するデータの書き込みまたは読み取りに備えてハード・ディスク・ドライブの準備が再び整うよう、ディスク表面の上にヘッド（単数または複数）を再配置することを含むこともある。
【００１３】
ハード・ディスク・ドライブは、一部のコンピュータ・システム、特に多数のハード・ディスク・ドライブを利用するサーバの電力消費の大きな要素であることもある。ハード・ディスク・ドライブによる電力使用の１つの最大要因は、典型的には、ディスクをスピンさせるモータである。したがって、コンピュータ・システムの省電力の最も効果的な方法の１つは、ハード・ディスク・ドライブのスピン・ダウンであると考えられる。しかし、ハード・ディスク・ドライブは、モータの寿命中に一定数までしか、信頼性を損なうことなくスピン・アップ／スピン・ダウン・サイクルを処理することができない設計であることもある。コンピュータ・システムが、そのハード・ディスク・ドライブを繰り返しスピン・アップおよびスピン・ダウンすると、そのスピン・アップ／スピン・ダウン・サイクル数が、モータおよび軸受がその寿命中に処理するよう設計されているスピン・アップ／スピン・ダウン・サイクル数を超えることもあり得ると考えられる。スピン・アップ／スピン・ダウン・サイクルの最大許容可能数を超えないようスピン・アップ／スピン・ダウン・サイクル数を管理することは、コンピュータ・システムの信頼性を改善する方法となり得る。
【００１４】
同様に、ハード・ディスク・ドライブは、限られた回数のヘッド・パーキングしか提供しないよう設計されていることもあり、それを超えた後は信頼性が損なわれる可能性がある。したがって、ハード・ディスク・ドライブの寿命中にヘッド・パーキング動作の最大許容可能数を超えないように、ヘッド・パーキング動作を管理することが、コンピュータ・システムの信頼性を改善するもう１つの方法となり得る。
【００１５】
例として、一実施形態において、ハード・ディスク・ドライブが１００，０００時間（約１１．５年）の動作を目標としていてもよい。このハード・ディスク・ドライブは、４００，０００のヘッド・パーキング動作および３００，０００のスピン・アップ／スピン・ダウン・サイクルという設計寿命を有してもよい。そこで、コンピュータ・システムの信頼性を高めるためには、ハード・ディスク・ドライブの様々な動作の設計寿命を超えないことが望ましい。
【００１６】
以下、添付の図面に示され下記で説明する例を詳しく参照する。
【００１７】
図１および図２は、電力管理の様々な実施形態に適したハード・ディスク・ドライブ１００の様々な側面のブロック図を示す。どちらの図も、回転可能な１つ以上のディスク１０１と、ディスク１０１をスピンさせるモータ１０２とを示す。多くの実施形態では、ディスク１０１は、磁気材料でコーティングされ、データの磁気記憶ができるとよい。他の実施形態では、ディスクは、データの光学記憶を可能にするよう設計されていてもよい。任意の方法を使用してディスク１０１にデータを記憶するとよい。モータ１０２もしくはボイス・コイル・アクチュエータ１３０またはその両方を制御できるディスク・コントローラ１１０が提供されるとよい。ディスク・コントローラはさらに、ディスク・コントローラ１１０の機能性を管理するプロセッサ１１１を含むとよい。プロセッサ１１１は、プログラム命令もしくはデータまたはその両方を記憶するメモリを含むとよい。そのようなメモリは、揮発性または不揮発性としてよく、プロセッサ１１１に組み込まれていても、またはディスク・コントローラ１１０上の別個の構成要素として含まれていてもよい。プロセッサ１１１は、ディスク・インターフェース・ユニット１１９に通信可能に結合されるとよく、ディスク・インターフェース・ユニット１１９は、シリアルＡＴＡ（ＳＡＴＡ：Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（シリアル・アドバンスド・テクノロジ・アタッチメント））、小型コンピュータ・システム・インターフェース（ＳＣＳＩ：Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）、ファイバ・チャネル、またはその他のプロトコルなどの入出力バス１２０上で通信するよう構成されている。
【００１８】
ディスク・コントローラ１１０は、タイマ１１３も含んでもよい。タイマ１１３は、一定時間が経過したという通知を提供することを含むがこれに限定されない、様々な機能を提供してもよい。さらに、特定の間隔の後に、プロセッサ１１１に割り込む能力を提供してもよい。さらに、経過時間記憶構成要素１１７を更新する能力を提供してもよく、経過時間記憶構成要素１１７は、プロセッサ１１１によって読み取り可能であり、経過時間記憶構成要素１１７が最後にリセットされてから経過した時間を測定する。経過時間記憶構成要素１１７はさらに、設定時間を超えるとプロセッサ１１１に割り込む能力を有してもよい。
【００１９】
図１は、ハード・ディスク・ドライブ１００のモータ１０２を制御する一部の実施形態で有益となり得る構成要素を示す。プロセッサ１１１に通信可能に結合されているとよいモータ・コントローラ１１２は、リンク１０３を介してモータ１０２を制御するよう構成されている。モータ・コントローラ１１２は、電界効果トランジスタ（ＦＥＴ：ｆｉｅｌｄ  ｅｆｆｅｃｔ  ｔｒａｎｓｉｓｔｏｒ）、バイポーラ・トランジスタ、またはその他の電子デバイスを利用して、リンク１０３を介して流れるモータ１０２への電力を制御してもよい。他の実施形態では、モータは、直接の電源接続を有してもよく、リンク１０３は、単にモータ・コントローラ１１２からモータ１０２へのオン／オフ指示を提供してもよい。他の実施形態では、リンク１０３は、望ましいスピードまたはその他の制御情報などの追加情報をモータ１０２に提供してもよい。第１のトークン記憶構成要素１１５が、ディスク・コントローラ上に提供されてもよい。なお、一部の実施形態では、第１のトークン記憶構成要素１１５は、ディスク・コントローラ上に位置しなくてもよく、ホスト・コンピュータのメモリ位置またはその他の適切な位置として提供されてもよい。なお、図１に示されている実施形態では、第１のトークン記憶構成要素１１５は、プロセッサ１１１によってアクセス可能であり、様々な実施形態において、プロセッサ１１１、またはディスク・コントローラ１１０のその他の構成要素のアクションにより読み取り、書き込み、インクリメント、デクリメント、または変更され得る。第１のトークン記憶構成要素１１５のコンテンツは、そのコンテンツをリクエストするコマンドを送ることによって、入出力バス１２０を経由してホスト・コンピュータまたはその他のデバイスによってアクセスされることもできる。プロセッサ１１１は、それに応答して、第１のトークン記憶構成要素のコンテンツを読み取り、ディスク・インターフェース・ユニット１１９を経由して入出力バス１２０へ返すことによって、そのようなコマンドに応答してもよい。
【００２０】
図２は、ハード・ディスク・ドライブ１００のヘッド・パーキングを制御する他の実施形態で有益となり得る構成要素を示す。プロセッサ１１１に通信可能に結合されているとよいアクチュエータ・コントローラ１３２は、ボイス・コイル・アクチュエータ１３０を制御するよう構成されている。ボイス・コイル・アクチュエータ１３０は、必要に応じ、アーム（単数または複数）１３６を移動させて、ヘッド（単数または複数）１３４を回転可能なディスク（単数または複数）１０１の望ましい部分の上に配置する。いくつかの状況では、プロセッサ１１１は、ヘッドをパーキングすることを決定し、アクチュエータ・コントローラ１３２と通信して、ヘッド（単数または複数）１３４がランプ（単数または複数）１３８に移動するようにアーム（単数または複数）１３６を移動させるよう、ボイス・コイル・アクチュエータ１３０を制御する。ヘッド（単数または複数）１３４は、ランプ（単数または複数）１３８へ移動させることによって、ディスク（単数または複数）１０１と接触できないように配置されてもよく、その結果ディスク（単数または複数）１０１の損傷が回避される。第２のトークン記憶構成要素１３５が、ディスク・コントローラ上に提供されてもよい。なお、一部の実施形態では、第２のトークン記憶構成要素１３５は、ディスク・コントローラ上に位置しなくてもよく、ホスト・コンピュータのメモリ位置またはその他の適切な位置として提供されてもよい。なお、図２に示されている実施形態では、第２のトークン記憶構成要素１３５は、プロセッサ１１１によってアクセス可能であり、様々な実施形態において、プロセッサ１１１、またはディスク・コントローラ１１０のその他の構成要素のアクションにより読み取り、書き込み、インクリメント、デクリメント、または変更され得る。第２のトークン記憶構成要素１３５のコンテンツは、そのコンテンツをリクエストするコマンドを送ることによって、入出力バス１２０を経由してホスト・コンピュータまたはその他のデバイスによってアクセスされることもできる。プロセッサ１１１は、それに応答して、第２のトークン記憶構成要素のコンテンツを読み取り、ディスク・インターフェース・ユニット１１９を経由して入出力バス１２０へ返すことによって、そのようなコマンドに応答してもよい。
【００２１】
コマンドが、コンピュータ・システムまたはその他のデバイスからディスク・コントローラ１１０へ、入出力バス１２０を介して送られてもよい。コマンドは、データの書き込みまたは読み取りであってもよく、または電力管理コマンドを含むその他のコマンドであってもよい。一部の電力管理コマンドは、ハード・ディスク・ドライブ１００が低電力状態にされることをリクエストしてもよい。様々な低電力状態が、様々な実施形態においてサポートされ得る。一部の実施形態は、動作状態に加えて単一の低電力状態しか提供しなくてもよい。他の実施形態は、動作状態に加えて、複数の低電力状態を提供してもよい。様々な実施形態において提供され得るいくつかの低電力状態は、（ａ）プロセッサ１１１のクロックを止める技術などを使用してディスク・コントローラ１１０の電子回路の少なくとも一部を低電力状態にすること、（ｂ）ヘッド（単数または複数）１３４をランプ（単数または複数）１３８にパーキングすること、（ｃ）ディスク（単数または複数）１０１がスピンを停止できるようモータ１０２をオフにすること、（ｄ）ディスク（単数または複数）１０１のスピンのペースを遅くするが、ヘッド（単数または複数）１３４がディスク（単数または複数）１０１上を「浮上」し続けられるだけ十分に速くスピンさせておくこと、（ｅ）データ・キャッシュなどのディスク・コントローラ１１０の様々な部分を無効化すること、または技術（ａ）〜（ｅ）の組み合わせを含むが、これらに限定はされない。低電力移行は、ディスク・ドライブが低電力状態に入るときに生じる。低電力移行は、特定の低電力状態の影響を受けると考えられるモータ１０２またはヘッド（単数または複数）１３４などのリソースに関連するとよい。特定の種類の低電力移行とは、特定のリソースに影響する低電力状態への移行である。第１のトークン記憶構成要素１１５もしくは第２のトークン記憶構成要素１３５またはその両方を使用して、ハード・ディスク・ドライブ１００の当該リソースの低電力移行の実際の数と比べた、ハード・ディスク・ドライブ１００の当該リソースの低電力移行の許容可能数に基づく、ハード・ディスク・ドライブ１００のリソースに関係するトークン値が保持されるとよい。したがって、トークンは、特定のリソースに影響する特定の種類の低電力移行に関係してもよい。
【００２２】
図３〜図５は、ハード・ディスク・ドライブ１００の電力管理の様々な実施形態のいくつかの側面のフローチャート２００、２１０、２２０である。様々な実施形態が、フローチャート２００、２１０、２２０に示された方法のうちの１つ以上を実施してもよい。本方法は、同時に、または連続的に、または何らかの方法で交互に実行されてもよい。図３〜５の上述の方法は、特定のハード・ディスク・ドライブが、その寿命の間に電力管理移行の許容可能数を超えないことを保証するために使用されるとよい。一部の実施形態では、ハード・ディスク・ドライブのＲＡＩＤセットなど、グループとして管理される複数のドライブを表すのに、１つのトークンが使用されてもよい。
【００２３】
図３は、ある時間間隔でトークン値をインクリメントするフローチャート２００を示す。一実施形態では、タイマ１１３は、フローチャート２００のブロック２０１にてタイマ・ティック（ｔｉｍｅｒ  ｔｉｃｋ）を生成するとよい。タイマ・ティックは、ブロック２０２にて、１つまたは両方のトークン、またはトークン（単数または複数）のフィールドをインクリメントするために使用されるとよい。続いて、本方法は、ブロック２０３にて次のタイマ・ティックを待つ。
【００２４】
タイマ１１３は、ハード・ディスク・ドライブ１００が電力を供給されていて動作できるときにのみタイマ・ティックが生じるよう設定されていてもよい。一部の実施形態では、これは、ドライブが低電力状態にあるときを含んでもよいが、他の実施形態は、特定の低電力状態ではタイマ１１３を無効化してもよい。その他の実施形態では、タイマ１１３は常に実行されてもよく、ハード・ディスク・ドライブ１００が電源に接続されていないときでもバッテリ電源で実行される。一部の実施形態では、トークン記憶構成要素（単数または複数）１１５、１３５は、タイマ・ティックによって直接インクリメントされてもよいが、他の実施形態では、プロセッサ１１１が、プロセッサ１１１にトークン記憶構成要素（単数または複数）１１５、１３５をインクリメントするよう促すタイマ・ティックをタイマ１１３から受け取ってもよい。トークン記憶構成要素１１５、１３５のうちの１つまたは両方をディスク・コントローラ１１０外で実装する実施形態では、トークン記憶構成要素（単数または複数）１１５、１３５を保持するために他の方法が使用されてもよい。例えば、トークン記憶構成要素（単数または複数）１１５、１３５がホスト・コンピュータ・システムのメモリにおいて実装される場合、ホスト・コンピュータもしくはオペレーティング・システム機能またはその両方のハードウェア・タイマがそのホスト・コンピュータ・システムのＣＰＵによって使用されて、それが適切な間隔でトークン記憶構成要素（単数または複数）１１５、１３５をインクリメントできるようにしてもよい。トークン値（単数または複数）のインクリメントは、ハード・ディスク・ドライブ１００が使用されている時間の増加を考慮することにより増加する、許容され得る電力管理移行数を表す。
【００２５】
タイマ・ティック間隔は、予想される動作寿命、およびヘッド・パーキング動作もしくはスピン・アップ／スピン・ダウン動作またはその両方に関する設計寿命など、ハード・ディスク・ドライブ１００についての情報を使用して設定されてもよい。したがって、例えば、ハード・ディスク・ドライブ１００の予想される動作寿命が１００，０００時間（約１１．５年）であり、４００，０００のヘッド・パーキング動作および３００，０００のスピン・アップ／スピン・ダウン・サイクルの設計寿命を有する場合、第１のトークン記憶構成要素１１５は、２０分（１００，０００時間／３００，０００）の目標間隔でインクリメントされるとよく、第２のトークン記憶構成要素１３５は、１５分（１００，０００時間／４００，０００）の目標間隔でインクリメントされるとよい。使用される時間の間隔は、特定のハード・ディスク・ドライブ１００の仕様を使用して計算することも、フィールド信頼性データに基づき選ばれることも、工学的判断に基づき定義されることも、またはその他任意の方法で決定されることもできる。一部の実施形態では、時間間隔は、様々な理由で、各インクリメントに関して正確に同じでなくてもよい。本開示の明細書および特許請求の範囲に関して、時間間隔は大きく変化することもある。長期間にわたる平均間隔が、目標間隔と基本的に一致していれば、特定の間隔の時間は重要ではない。
【００２６】
図４は、ハード・ディスク・ドライブ１００が低電力状態への移行をリクエストされたときに、低電力状態に入ってよいかどうかを管理する方法のフローチャート２１０を示す。低電力状態に入るリクエストが、ブロック２１１にてハード・ディスク・ドライブ１００によって受け取られる。続いてブロック２１２にて、ハード・ディスク・ドライブ１００は、リクエストされた低電力状態への移行によって影響が及ぼされる可能性のあるリソースに関係している１つ以上のトークン値を評価するとよい。一部の実施形態では、低電力状態は、ハード・ディスク・ドライブ１００のヘッド（単数または複数）１３４をパーキングすることを必要とすることもある。他の実施形態では、低電力状態は、ハード・ディスク・ドライブ１００のディスク（単数または複数）１０１をスピン・ダウンすることを必要とすることもある。さらに他の実施形態は、他のリソースに影響を及ぼすことも、または複数のリソースを必要とすることもある（ヘッド（単数または複数）１３４のパーキングと、ディスク（単数または複数）１０１のスピン・ダウンの両方など）。トークン値は、種々の実施形態において、いくつかの異なる方法で評価され得る。一部の実施形態では、所与のリソースに対し単一のトークン値がある。この単一のトークンを評価するために、その値が、ゼロ（０）などの所定の値に対して比較されてもよい。他の実施形態では、所定の値は負であり、電力管理移行の将来の割り当てと引き替えにいくつかの数の電力管理移行を「借りられる」ようにしてもよい。他の実施形態では、所定の値はゼロより大きくてもよい。他の実施形態では、２つのフィールドが各トークンにおいて保持され、１つのフィールドは、タイマ・ティックによってインクリメントされ、任意の特定の時間に所与のリソースに関してその寿命の間に許容される電力管理移行の総数を表し、もう一方のフィールドは、その電力管理移行が実際にそのリソースに対して実行されるたびにインクリメントされ、そのリソースに対して生じた電力管理移行の総数を表してもよい。当該実施形態では、トークンは、２つのフィールド間の差を決定して、それをゼロ（０）、または単一値トークンに関して上述したものに似た他の値などの所定の値と比較することによって評価される。一部の実施形態では、所定の値は時間とともに変化してもよい。これは、リソースの電力管理移行の実行が許容される可能性に影響を与えるために行われてもよい。一実施形態では、所定の値は、夜間は−１００、日中は＋１００と等しくてもよい。なお、長期間にわたり無制限に増減されない限り、所定の値の変更が、累積した電力管理移行に対して大きな長期的影響を与えることはない。
【００２７】
現在当該リソースに対して電力管理移行が許容可能でないことを示すとトークンが評価される場合、これはブロック２１２ではゼロ以下のトークンによって表され、様々な実施形態において異なるアクションがとられ得る。フローチャート２１０に示されている実施形態では、本方法は、ある期間ブロック２１３において待ち、続いてブロック２１２にてトークンを再び再評価して、電力管理移行の発生が許容される段階までフローチャート２００の方法によってトークンがインクリメントされるまで、電力管理移行を事実上遅らせる。他の実施形態では、低電力状態に入るリクエストに対し、低電力状態に移行することなくエラー・メッセージによる応答が行われてもよく、他の実施形態では、リクエストが単に無視されてもよい。
【００２８】
現在当該リソースに対して電力管理移行が許容されることを示すとトークンが評価される場合、これはブロック２１２ではゼロより大きいトークンによって表され、ブロック２１４にてトークンはデクリメントされ（または２フィールド・トークンの第２のフィールドがインクリメントされ）、ブロック２１５にて関連するリソースが低電力状態に入ることを許容される。次に、ブロック２１６にてハード・ディスク・ドライブ１００は、入出力バス１２０を介した次のコマンドまたはアクセスを待つ。次のコマンドまたはアクセス次第で、ハード・ディスク・ドライブ１００は、リソースをその完全動作状態に戻すこともある。上記のように、電力管理に利用され得、トークンに関連し得るリソースとしては、特に、ヘッド（単数または複数）１３４をパーキングすることおよびモータ１０２をオフにすることがある。
【００２９】
一部の実施形態では、図３および図４に示された方法はどちらも、ハード・ディスク・ドライブ１００において実施されてもよい。他の実施形態では、フローチャート２００に示された方法が、ハード・ディスク・ドライブ１００において実施されてもよく、フローチャート２１０に示された方法が、ホスト・コンピュータ上で実行されているソフトウェアを使用して実施されてもよい。他の実施形態では、どちらの方法も、入出力バス１２０を介してハード・ディスク・ドライブ１００と通信しているホスト・コンピュータ上で実行されるソフトウェアを使用して実施されてもよい。
【００３０】
図５は、非アクティブ・タイマ（ｉｎａｃｔｉｖｉｔｙ  ｔｉｍｅｒ）に基づき電力管理移行を管理する方法のフローチャート２２０を示す。ブロック２２１にて、入出力バス１２０を介してディスク・アクセスが受け取られると、ブロック２２２にて非アクティブ・タイマがリセットされるとよい。非アクティブ・タイマは、一部の実施形態では、経過時間記憶構成要素１１７を使用して実装されてもよく、他の実施形態では、ホスト・コンピュータ上で実行されているソフトウェアにおいて実装されてもよい。非アクティブ・タイマは、ブロック２２４にて新たなディスク・アクセスが受け取られるか、またはブロック２２５にて非アクティブ・タイマがタイムアウト値を超えるまで、ブロック２２３において経過時間を測定し続けるとよい。ブロック２２４にて新たなディスク・アクセスが受け取られると、ブロック２２２にて非アクティブ・タイマは再びリセットされ、ブロック２２３にて非アクティブの新たな期間を測定することができるとよい。ブロック２２５にて、非アクティブがタイムアウト値を超えると、ブロック２２６にて、低電力状態に使用されるリソースに関連するトークンが、図４に関して行われたのと似た方法で所定の値と照合される。ブロック２２６にて、そのリソースに関して現在電力管理移行が許容されないことを示すとトークンが評価されれば、ブロック２２４にて新たなディスク・アクセスが受け取られブロック２２２にて非アクティブ・タイマのリセットをもたらすまで、またはブロック２２６にて電力管理移行を許容するとトークン値が評価されるまで、非アクティブ・タイマは増え続けるとよい。電力管理移行が許容されれば、ブロック２２７にてトークン値がデクリメント（または第２のフィールドがインクリメント）されるとよく、ブロック２２８にてハード・ディスク・ドライブ１００は、低電力状態にされる。続いて、ブロック２２９にて本方法は次のディスク・アクセスを待つ。図５の方法は、完全にハード・ディスク・ドライブ１００において実施されてもよく、またはホスト・コンピュータ上で実行されているソフトウェアにおいて実施されてもよく、またはそれぞれで実行されている構成要素を用いて実施されてもよい。
【００３１】
なお、図３〜５において上述されたこうした方法は、電力管理移行の最低または最高のペースを規定しないが、一部の実施形態はさらに、各電力管理移行間の最短時間を規定してもよい。例えば、ヘッド・パーキング間の最短時間、スピン・ダウン間の最短時間、スピン・アップとスピン・ダウンとの間の最短時間（スピン・アップされる最短時間）、もしくはスピン・ダウンとスピン・アップとの間の最短時間（スピン・ダウンされる最短時間）、またはそのいずれかの組み合わせなどである。記載された方法は、電力管理移行の余剰の累積を可能にし、それを後からより速いペースで使い切ることができる。例えば、スピン・ダウン・トークン値が２０分毎にインクリメントされる上記のスピン・ダウンの例のみを考察すると、ドライブの使用が開始され、最初の３０日間、１日１２時間のほぼ一定した使用状態であり、その結果１日１２時間スピン・ダウンされて使用されず、１日に１回のみスピン・ダウンが実行されると、トークン値は１日に３＊２４−１＝７１増加することになり、３１日目の始まりには、２２０１の値となるであろう。
【００３２】
３１日目から、利用パターンまたは電力管理ポリシが変化し、そのドライブを使用するホスト・コンピュータが、１分間ハード・ディスク・ドライブをスピン・ダウンし、続いてドライブをスピン・アップしてそれを１分間使用することを試行し始め、トークンを２分毎にデクリメントすると、そのパターンは、以下の計算で示されるように３日間超にわたって続くことができるであろう。２２０１＊２＝４４０２分（７３．３６時間）後、トークン値は、最初の４４０２分の間に起きたトークン・インクリメントに基づき、７３．３６＊３＝２２０となり、さらに少なくとも４４０分の同様の動作が可能である。さらに４４０分、同じ１分のスピン・アップ、１分のスピン・ダウン・パターンを行った後、トークン値は２２となると考えられ、さらに４４分後には、トークン値は２となると考えられ、トークン値がゼロと等しくなるまで、さらに４分の当該利用パターンが可能である。したがって、３０日の１２時間のスピン・アップ、１２時間のスピン・ダウンの後、続いてハード・ディスク・ドライブは、４８９０分間（３日と９．５時間）にわたって１分のスピン・アップ、１分のスピン・ダウン動作を実行することができるであろう。
【００３３】
オペレーティング・システムが、ハード・ディスク・ドライブを、１分のスピン・アップ、１分のスピン・ダウン動作モードで動作させようとする試みを続ける場合、ゼロというトークン値は、ハード・ディスク・ドライブが、次のトークン・インクリメントを待ってからスピン・ダウンを行うこともあり得、次のドライブ・アクセスが生じれば、待つのを中止するということを意味する。したがって、オペレーティング・システムがまだ１分のスピン・アップ、１分のスピン・ダウンとしてハード・ディスク・ドライブを動作させようと試みていても、ハード・ディスク・ドライブは、２０分毎に１度のみしかスピン・ダウン・コマンドに応答せず、続いて、再びアクセスされれば１分後にハード・ディスク・ドライブをスピン・アップし、１分のスピン・ダウン、十九（１９）分のスピン・アップというパターンがもたらされる。
【００３４】
図６は、様々な実施形態を実施するのに適したコンピュータ・システム６００の詳細を示す。コンピュータ・システム６００は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、メインフレーム・コンピュータ、またはその他、命令を実行するようプログラムまたは構成されることができる任意のハードウェアもしくは論理装置の形態で構成されていてよい。一部の実施形態では、コンピュータ・システム６００は、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）６１８またはインターネット６２０を介して遠隔ユーザからの入力を受け付けるサーバとしての機能を果たしてもよい。他の実施形態では、コンピュータ・システム６００は、ＬＡＮ６１８上またはインターネット６２０上のサーバのスマート・ユーザ・インターフェース・デバイスとして機能してもよい。コンピュータ・システム６００は、１つの位置に位置して相互接続されてもよく、または様々な位置に分散して、ＬＡＮ６１８もしくは広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）などの通信リンクを介して、インターネット６２０を介して、公衆交換電話網（ＰＳＴＮ：ｐｕｂｌｉｃ  ｓｗｉｔｃｈｅｄ  ｔｅｌｅｐｈｏｎｅ  ｎｅｔｗｏｒｋ）、交換網、セルラ電話網、ワイヤレス・リンク、またはその他の類似の通信リンクを介して相互接続されてもよい。その他のデバイスも、実施形態または実施形態の一部を実施または実践するのに適していることもある。そのようなデバイスには、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、ワイヤレス・ハンドセット（例えばセルラ電話またはページャ）、およびその他、好適には命令またはルーチンを実行するようプログラムされることができる類似の電子デバイスが含まれる。当業者には当然のことながら、多数の異なるアーキテクチャがコンピュータ・システム６００に適すると考えられるが、図６には１つのみの典型的なアーキテクチャが示されている。
【００３５】
コンピュータ・システム６００は、マイクロプロセッサとして、図６に示されている２つ以上の並列プロセッサとして、中央処理ユニット（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）として、またはその他の類似の制御論理もしくは回路として具現化され得るプロセッサ６０１を含むこともできる。プロセッサ６０１は、ローカル・キャッシュ・メモリ６０２にアクセスするよう構成されてもよく、ローカル・キャッシュ・メモリ６０２にないデータのリクエストを、キャッシュ・バス６０３をわたって二次キャッシュ・メモリ６０４に送る。一部の実施形態は、プロセッサ６０１およびローカル・キャッシュ・メモリ６０２を単一の集積回路に統合してもよく、他の実施形態は、単一レベルのキャッシュ・メモリを利用しても、またはキャッシュ・メモリをまったく利用しなくてもよい。他の実施形態は、複数のプロセッサ６０１を、単一のダイ上もしくは単一のパッケージ、またはその両方に統合してもよい。さらに他の実施形態は、二次キャッシュ・メモリ６０４とともに複数のローカル・キャッシュ・メモリ６０２を備える複数のプロセッサ６０１を、メモリ／バス・コントローラ６０６と通信するためのフロント・サイド・バス６０５を備える単一のプロセッサ・パッケージ６４０に統合してもよい。メモリ／バス・コントローラ６０６は、プロセッサ（単数または複数）６０１からのアクセスを受け付け、それを内部メモリ６０８または様々な入出力（Ｉ／Ｏ：ｉｎｐｕｔ／ｏｕｔｐｕｔ）バス１２０、６１１、６１３のいずれかに向かわせるとよい。ディスク・インターフェース・ユニット６５０は、入出力バス１２０に接続すること、もしくはハード・ディスク・ドライブ１００に接続すること、もしくは他の入出力バス６１１を介して光ディスク・ドライブ６１２に接続すること、またはそのいずれかの組み合わせをすることもでき、メモリ／バス・コントローラ６０６に統合されても、または別個のチップであってもよい。コンピュータ・システム６００の一部の実施形態は、メモリ／バス・コントローラへのフロント・サイド・バス６０５を共有する複数のプロセッサ・パッケージ６４０を含むこともできる。他の実施形態は、メモリ／バス・コントローラへの独立したフロント・サイド・バス接続を備える複数のプロセッサ・パッケージ６４０を有することもできる。メモリ・バス・コントローラは、メモリ・バス６０７を使用して内部メモリ６０８と通信することもできる。内部メモリ６０８は、シンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ：ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ダブル・データ・レート（ＤＤＲ：ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ）メモリ、またはその他の揮発性ランダム・アクセス・メモリなどのランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）デバイスの１つ以上を含むこともできる。内部メモリ６０８は、電気的消去可能プログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ：ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ／ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ＮＡＮＤフラッシュ・メモリ、ＮＯＲフラッシュ・���モリ、プログラム可能読み取り専用メモリ（ＰＲＯＭ：ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、バッテリ・バックアップＲＡＭ、またはその他の不揮発性メモリなどの不揮発性メモリも含むこともできる。一部の実施形態では、コンピュータ・システム６００は、３次キャッシュ・メモリ、またはこうした種類もしくは他の類似の種類の、情報を検索可能なフォーマットで記憶するよう構成された回路の組み合わせも含むこともできる。一部の実装では、内部メモリ６０８は、プロセッサ６０１の一部として構成されてもよく、またはその代わりに、プロセッサ６０１とは別個であるが同じプロセッサ・パッケージ６４０内に構成されてもよい。プロセッサ６０１は、コンピュータ・システム６００の他のコンポーネントにアクセスするために使用されるのとは異なるバスまたは制御ラインを介して内部メモリ６０８にアクセスできてもよい。
【００３６】
コンピュータ・システム６００はさらに、１つ以上のハード・ディスク・ドライブ１００（またはその他の種類の記憶メモリ）および光ディスク・ドライブ６１２を含んでも、またはそれにアクセスできてもよい。ハード・ディスク・ドライブ１００および光ディスク・ドライブ６１２の光ディスクは、様々な実施形態の最終または中間結果を記憶するのに適した機械可読（コンピュータ可読とも呼ばれる）媒体の例である。光ディスク・ドライブ６１２は、リムーバブル記憶媒体（例えばＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ、ＤＶＤ−Ｒ、ＤＶＤ−Ｗ、ＤＶＤ−ＲＷ、ＨＤ−ＤＶＤ、Ｂｌｕ−Ｒａｙ（Ｒ）、および同様のもの）に対する読み取りもしくは書き込みまたはその両方を行うことができる様々なフォーマットのいくつかのディスク・ドライブの組み合わせを含むこともできる。コンピュータ・システム６００の一部の実施形態に含まれることもできる他の形態のコンピュータ可読媒体には、フレキシブル・ディスク・ドライブ、９トラック・テープ・ドライブ、テープ・カートリッジ・ドライブ、ソリッド・ステート・ドライブ、カセット・テープ・レコーダ、紙テープ・リーダ、バブル・メモリ・デバイス、磁気ストリップ・リーダ、パンチ・カード・リーダ、またはその他任意の種類の記憶媒体またはコンピュータ使用可能記憶媒体が含まれるが、これらに限定はされない。コンピュータ・システム６００は、ハード・ディスク・ドライブ１００および光ディスク・ドライブ６１２を、コンピュータ・システム６００の一体部分として（例えば、同じキャビネットもしくは筐体内にあるか、もしくは同じ電力供給を使用するか、またはその両方）含んでも、接続された周辺機器として含んでもよく、もしくは、ネットワークを介してハード・ディスク・ドライブ１００および光ディスク・ドライブ６１２にアクセスしてもよく、またはこれらの組み合わせも可能である。ハード・ディスク・ドライブ１００は、データ、コンピュータ・プログラム、またはその他の情報の記憶および検索用に構成された回転する磁気媒体を含むことが多い。ハード・ディスク・ドライブ１００は、記憶媒体を回転させるため、ならびに媒体上のデータにアクセスするためにモータを制御できる、ディスク・コントローラも含むことが多い。一部の実施形態では、追加のドライブは、半導体メモリを使用するソリッド・ステート・ドライブであってもよい。他の実施形態では、他の何らかの種類のコンピュータ使用可能媒体が使用されてもよい。ハード・ディスク・ドライブ１００は、必ずしもコンピュータ・システム６００内に含まれる必要はない。例えば、一部の実施形態では、ハード・ディスク・ドライブ１００は、データ、コンピュータ・プログラム、またはその他の情報の記憶および検索のためにコンピュータ・システム６００がアクセス可能なネットワーク内のサーバ記憶領域であってもよい。場合によっては、コンピュータ・システム６００は、インターネット６２０またはその他の通信ラインによってアクセス可能なサーバ・ストレージ・ファーム、または類似の種類のストレージ設備の記憶領域を使用してもよい。ハード・ディスク・ドライブ１００は、例えば、様々な実施形態のアクティビティを実行するためのコンピュータ・アプリケーション・プログラムの全部または一部を含む、コンピュータ・システム６００によって実行されるソフトウェア、命令、およびプログラムを記憶するために使用されることが多い。
【００３７】
入出力バス１２０もしくは入出力バス６１１またはその両方は、ハード・ディスク・ドライブ１００および光ディスク・ドライブ６１２のコンテンツにアクセスするために使用されてもよい。これらの入出力バス１２０、６１１は、シリアル・アドバンスド・テクノロジ・アタッチメント（ＳＡＴＡ）などのポイント・ツー・ポイントリンクとしても、またはパラレル・アドバンスド・テクノロジ・アタッチメント（ＰＡＴＡ：Ｐａｒａｌｌｅｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）もしくは小型コンピュータ・システム・インターフェース（ＳＣＳＩ）などのバス型接続としても、ＩＥＥＥ−１３９４などのデイジー・チェーン・トポロジとしても、ファイバ・チャネルなどの様々なトポロジをサポートするリンクとしても、またはその他、コンピュータ可読媒体との通信に使用され得る任意のコンピュータ通信プロトコル、標準、もしくはプロプライエタリとしてもよい。メモリ／バス・コントローラは、その他の入出力バス６１３も提供してもよい。一部の実施形態では、入出力バス６１３は、周辺コンポーネント・インターフェース（ＰＣＩ：ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｆａｃｅ）、マイクロチャネル、業界標準アーキテクチャ（ＩＳＡ：ｉｎｄｕｓｔｒｙ  ｓｔａｎｄａｒｄ  ａｒｃｈｉｔｅｃｔｕｒｅ）バス、拡張業界標準アーキテクチャ（ＥＩＳＡ：ｅｘｔｅｎｄｅｄ  ｉｎｄｕｓｔｒｙ  ｓｔａｎｄａｒｄ  ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＶＥＲＳＡモジュール・ユーロカード（ＶＭＥ：ＶＥＲＳＡｍｏｄｕｌｅ  Ｅｕｒｏｃａｒｄ）バス、またはその他任意の共有コンピュータ・バスなどの共有バス・アーキテクチャとしてもよい。他の実施形態では、入出力バス６１３は、ＰＣＩ−Ｅｘｐｒｅｓｓ、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ、またはその他任意のポイント・ツー・ポイントＩ／Ｏリンクなどのポイント・ツー・ポイント・リンクとしてもよい。様々なＩ／Ｏデバイスが、コンピュータ・システム６００の一部として構成されてもよい。多数の実施形態において、コンピュータ・システム６００がＬＡＮ６１８に接続できるようにネットワーク・インターフェース６１４が含まれてもよい。ＬＡＮ６１８は、ＩＥＥＥ８０２．３イーサネット・ネットワーク、ＩＥＥＥ８０２．１１Ｗｉ−Ｆｉワイヤレス・ネットワーク、またはその他、ＬＡＮ、ＷＡＮ、パーソナル・エリア・ネットワーク（ＰＡＮ：ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、有線ネットワーク、無線周波数ネットワーク、パワーライン・ネットワーク、および光ネットワークを含むがこれらに限定されない任意の種類のコンピュータ・ネットワークとすることもできる。ネットワーク・ゲートウェイ６１９またはルータは、コンピュータ・システム６００とは別個のコンポーネントであっても、またはコンピュータ・システム６００の一体部分として含まれてもよく、ＬＡＮ６１８に接続されて、コンピュータ・システム６００が、非対称デジタル加入者線（ＡＤＳＬ：ａｓｙｍｍｅｔｒｉｃ  ｄｉｇｉｔａｌ  ｓｕｂｓｃｒｉｂｅｒ  ｌｉｎｅ）、データ・オーバ・ケーブル・サービス・インターフェース仕様（ＤＯＣＳＩＳ：ｄａｔａ  ｏｖｅｒ  ｃａｂｌｅ  ｓｅｒｖ���ｃｅ  ｉｎｔｅｒｆａｃｅ  ｓｐｅｃｉｆｉｃａｔｉｏｎ）リンク、Ｔ１、またはその他のインターネット接続メカニズムなどのインターネット接続６２１を介してインターネット６２０と通信できるようにしてもよい。他の実施形態では、コンピュータ・システム６００は、インターネット６２０への直接接続を有してもよい。一部の実施形態では、拡張スロット６１５が含まれて、ユーザが追加の機能性をコンピュータ・システム６００に追加できるようにしてもよい。
【００３８】
コンピュータ・システム６００は、ユニバーサル・シリアル・バス（ＵＳＢ：ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）６２６、ＲＳ−２３２などのシリアル・ポート、パラレル・ポート、オーディオ入力６２４およびオーディオ出力６２２接続、ハイ・パフォーマンス・シリアル・バスＩＥＥＥ−１３９４、もしくはその他の通信リンク、またはそのいずれかの組み合わせなどの外部通信インターフェースへのアクセスを提供するＩ／Ｏコントローラ６１６を含むこともできる。こうした接続はさらに、一部の実施形態では別個の回路を有してもよく、またはブリッジを経由してＩ／Ｏコントローラ６１６によって提供される別のコンピュータ通信リンクに接続されてもよい。さらに、プロセッサ６０１上で実行するアプリケーションが情報をユーザに対して表示できるよう、グラフィックス・コントローラ６１７が提供されてもよい。グラフィックス・コントローラ６１７は、アナログ・ビデオ・グラフィック・アレイ（ＶＧＡ：ｖｉｄｅｏ  ｇｒａｐｈｉｃ  ａｒｒａｙ）接続、デジタル・ビデオ・インターフェース（ＤＶＩ：ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｉｎｔｅｒｆａｃｅ）、デジタル高解像度マルチメディア・インターフェース（ＨＤＭＩ：ｈｉｇｈ  ｄｅｆｉｎｉｔｉｏｎ  ｍｕｌｔｉｍｅｄｉａ  ｉｎｔｅｒｆａｃｅ）接続、またはその他任意のビデオ接続などの、標準またはプロプライエタリ・フォーマットを利用し得るビデオ・ポート６２９を経由してビデオを出力してもよい。ビデオ・ポート６２９は、ディスプレイ６３０に接続して、ビデオ情報をユーザに提示してもよい。ディスプレイ６３０は、液晶ディスプレイ（ＬＣＤ：ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ）、陰極線管（ＣＲＴ：ｃａｔｈｏｄｅ  ｒａｙ  ｔｕｂｅ）モニタ、有機発光ダイオード（ＯＬＥＤ：ｏｒｇａｎｉｃ  ｌｉｇｈｔ  ｅｍｉｔｔｉｎｇ  ｄｉｏｄｅ）アレイ、またはその他の種類の、情報をユーザに対して表示するのに適したディスプレイを含む、いくつかの種類のディスプレイのいずれかとしてよい。ディスプレイ６３０は、１つ以上の発光ダイオード（ＬＥＤ：ｌｉｇｈｔ  ｅｍｉｔｔｉｎｇ  ｄｉｏｄｅ）インジケータ・ライト、またはその他の類似のディスプレイ・デバイスを含むこともできる。典型的には、コンピュータ・システム６００には、キーボード６２７、マウス６２８、もしくは示されたカーソルを制御する他の手段、またはそのいずれかの組み合わせなどの１つ以上のユーザ入出力（Ｉ／Ｏ）デバイスが含まれ、この、カーソルを制御する他の手段には、タッチスクリーン、タッチパッド、ジョイスティック、トラックボール、タブレット、またはその他のデバイスが含まれるが、これらに限定はされない。ユーザＩ／Ｏデバイスは、ＵＳＢ６２６インターフェース、またはＲＳ−２３２、ＰＳ／２コネクタまたはその他のインターフェースなどの他の接続を使用してコンピュータ・システム６００に接続してもよい。一部の実施形態は、ＵＳＢ６２６を使用して接続してもよいウェブカメラ６３１、オーディオ入力６２４に接続されたマイク６２５、もしくはオーディオ出力６２２に接続されたスピーカ６２３、またはそのいずれかの組み合わせを含むこともできる。キーボード６２７およびマウス６２８、スピーカ６２３、マイク６２５、ウェブカメラ６３１、ならびにディスプレイ６３０は、情報をユーザに提示する手段、もしくは様々なプログラムおよび計算を実行するのに使用される情報およびその他の入力をユーザから受け取る手段、またはその両方として、様々な組み合わせで使用されても、または別々に使用されてもよい。音声認識ソフトウェアが、マイク６２５とともに使用されて、ユーザ音声コマンドを受け取り解釈してもよい。
【００３９】
コンピュータ・システム６００は、ハード・ディスク・ドライブ１００の電力を管理する実施形態に適しているとよい。例えば、プロセッサ６０１は、マイクロプロセッサ、マイクロコントローラ、ＤＳＰ、ＲＩＳＣプロセッサ、２つ以上のパラレル・プロセッサ、またはその他、本願明細書に記載された機能、アクティビティ、および方法を実行または制御できると当業者が認識するであろう任意の種類の処理ユニットとして具現化されてよい。様々な実施形態のうちの少なくとも１つによる処理ユニットは、ハード・ディスク・ドライブ１００、光ディスク・ドライブ６１２、またはその他任意の種類のハード・ディスク・ドライブに準拠したもの、フレキシブル・ディスク、フラッシュ・メモリ、ＲＡＭ、または当業者に知られている他のコンピュータ可読媒体などのコンピュータ可読媒体上に記憶（具現化）されたコンピュータ・ソフトウェア・プログラムを動作させることができる。
【００４０】
当業者であれば当然のことであるが、様々な実施形態の側面は、システム、方法またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードまたは同様のものを含む）、または本願明細書においてすべて概して「回路」、「モジュール」、「ハード・ディスク・ドライブ」、「論理」、もしくは「システム」と呼ばれ得る、ソフトウェアおよびハードウェアの側面を兼ね備えた実施形態の形態をとってもよい。さらに、様々な実施形態の側面は、コンピュータ可読プログラム・コードが記憶された１つ以上のコンピュータ可読媒体（単数または複数）に具現化されたコンピュータ・プログラム製品の形態をとることもできる。
【００４１】
１つ以上のコンピュータ可読媒体（単数または複数）の任意の組み合わせが利用され得る。コンピュータ可読媒体は、典型的にはコンピュータ可読記憶媒体である。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線、もしくは半導体システム、装置、もしくはデバイス、またはその他、当業者に既知である同様の記憶デバイス、または前述のものの任意の適切な組み合わせとして具現化されてよい。そのようなコンピュータ可読記憶媒体の例には、ポータブル・コンピュータ・ディスケット、ハード・ディスク・ドライブ、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、光学式記憶デバイス、磁気記憶デバイスまたは前述のものの任意の適切な組み合わせが含まれる。この文書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムを含むこと、または記憶することができる任意の有形の媒体であればよい。
【００４２】
様々な実施形態の側面の動作を実行するコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋または同様のものなどのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは同様のプログラミング言語などの従来の手続きプログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書かれていてよい。様々な実装に従って、プログラム・コードは、スタンド・アロン・ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で実行されること、部分的にユーザのコンピュータ上で実行されること、または部分的にユーザのコンピュータ上で、かつ部分的に遠隔コンピュータ上で実行されること、または完全に遠隔コンピュータもしくはサーバ上で実行されることもできる。後者のシナリオでは、ローカル・エリア・ネットワーク（ＬＡＮ）、もしくは広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを経由して遠隔コンピュータがユーザのコンピュータに接続されてもよく、または、外部コンピュータに接続されてもよい（例えば、インターネット・サービス・プロバイダを使用しインターネットを経由して）。
【００４３】
様々な実施形態の側面は、本願明細書に開示された様々な実施形態による方法、装置、システム、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図、またはその両方を参照して記載されている。当然のことながら、フローチャート図もしくはブロック図またはその両方の様々なブロック、およびフローチャート図もしくはブロック図またはその両方の複数ブロックの組み合わせは、コンピュータ・プログラム命令により実施可能である。当該コンピュータ・プログラム命令が、機械を生じるよう、汎用コンピュータ、専用コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサに提供されて、この命令が、コンピュータまたはその他のプログラム可能データ処理装置のプロセッサを用いて実行されて、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能／動作を実施する手段を作り出すようにすることもできる。
【００４４】
さらに、特定の形で機能するようコンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスに指示することができる当該コンピュータ・プログラム命令は、コンピュータ可読媒体に記憶されて、コンピュータ可読媒体に記憶されたこの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能／動作を実施する命令を含む製品を生じるようにすることもできる。さらに、コンピュータ・プログラム命令は、コンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置、またはその他のデバイス上で一連の動作ステップが実行されるようにしてコンピュータに実施されるプロセスを生じさせ、コンピュータまたはその他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能／動作を実施するためのプロセスを提供するようにすることもできる。
【００４５】
各図面のフローチャートもしくはブロック図またはその両方は、様々な実施形態のシステム、方法およびコンピュータ・プログラム製品の考えられる実装のアーキテクチャ、機能性および動作を説明するのに役立つ。この関連で、フローチャートまたはブロック図内の各ブロックは、指定の論理機能（単数または複数）を実施する１つ以上の実行可能命令を含むモジュール、セグメント、またはコードの一部を表現することもできる。なお、さらに、いくつかの代わりの実装では、ブロック内に示されている機能が、図面に示されているのとは異なる順序で生じてもよい。例えば、関連する機能性次第で、連続して示されている２つのブロックが実際には事実上同時に実行されてもよく、または、各ブロックが逆順で実行されることがあってもよい。なお、さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方の複数ブロックの組み合わせは、指定の機能もしくは動作を実行する専用ハードウェア・ベース・システム、または専用ハードウェアおよびコンピュータ命令の組み合わせにより実装することができる。
【００４６】
本願明細書で使用される専門用語は、特定の実施形態を説明するためのものでしかなく、本発明の限定となることは目的としていない。本願明細書で使用される、単数形「ａ」、「ａｎ」および「ｔｈｅ」は、文脈によりそうでないことが明確に示されていない限り、複数形も含むものとする。さらに、当然のことながら、本明細書で使用される、「含む（ｃｏｍｐｒｉｓｅｓ）、「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」、「含む（ｉｎｃｌｕｄｅｓ）」、もしくは「含んでいる（ｉｎｃｌｕｄｉｎｇ）」、またはそのいずれかの組み合わせの用語は、記載された機能、整数、ステップ、動作、構成要素、もしくはコンポーネント、またはそのいずれかの組み合わせの存在を指定するが、１つ以上の他の機能、整数、ステップ、動作、構成要素、コンポーネント、もしくはそのグループ、またはそのいずれかの組み合わせの存在または追加を除外するものではない。本願明細書で使用される「結合」という用語は、直接および間接的な接続を含む。さらに、第１および第２のデバイスが結合されている場合、それらの間にアクティブなデバイスを含む介在するデバイスがあってもよい。
【００４７】
以下の特許請求の範囲のミーンズまたはステップ・プラス・ファンクション構成要素すべての対応する構造、材料、動作、および等価物は、明確に請求されている他の請求される構成要素とともに機能を実行する任意の構造、材料、または動作を含むものとする。様々な実施形態の記載は、例証および説明のために示されたものであるが、包括的であることも、本発明を開示された形態に限定することも目的としていない。当業者には、本発明の範囲および主旨から逸脱することのない、多数の変更および変形が明らかであろう。本願明細書に含まれた様々な実施形態は、本発明の原理および実際の応用を最もよく説明して、当業者が、意図される特定の用途に適する様々な変更を用いた様々な実施形態に関して、本発明を理解できるように選ばれ、記載された。
【符号の説明】
【００４８】
１００  ハード・ディスク・ドライブ
１０１  ディスク
１０２  モータ
１０３  リンク
１１０  ディスク・コントローラ
１１１  プロセッサ
１１２  モータ・コントローラ
１１３  タイマ
１１５  第１のトークン記憶構成要素
１１７  経過時間記憶構成要素
１１９  ディスク・インターフェース・ユニット
１２０  入出力バス
【図１】
0005828549.tif 000002
【図２】
0005828549.tif 000003
【図３】
0005828549.tif 000004
【図４】
0005828549.tif 000005
【図５】
0005828549.tif 000006
【図６】
0005828549.tif 000007