"ハードディスクドライブによって消費される電力を管理する方法であって、ハードディスクドライブの低電力移行の実際の数と比較した、前記ハードディスクドライブの低電力移行の許容可能数に基づく、トークン値を保持するステップであって、低電力移行の前記許容可能数は、前記ハードディスクドライブの寿命中に増加する、前記ステップと、前記ハードディスクドライブが、電力を節約するために低電力状態にされるべきであると決定するステップと、前記ハードディスクドライブが低電力移行を実行することが許容されるかどうかを決定するために、前記トークン値を評価するステップと、前記ハードディスクドライブの前記低電力移行を許容すると前記トークン値が評価されれば、前記ハードディスクドライブの前記低電力移行を実行するステップと、を含む、前記方法。前記低電力移行は、前記ハードディスクドライブをスピンダウンするステップを含む、請求項1に記載の方法。前記低電力移行は、前記ハードディスクドライブのヘッドをパーキングするステップを含む、請求項1に記載の方法。前記トークン値の前記保持は、周期的に前記トークン値をインクリメントするステップと、前記ハードディスクドライブの前記低電力移行の実行と関連する時点に、前記トークン値をデクリメントするステップと、を含み、前記トークン値の前記評価は、前記トークン値が所定の値よりも大きければ、前記ハードディスクドライブに関して前記低電力移行が許容可能であると決定するステップを含む、請求項1に記載の方法。前記所定の値は、ゼロである、請求項4に記載の方法。前記ハードディスクドライブの前記低電力移行を実行する前に、前記ハードディスクドライブの前記低電力移行の実行を許容すると前記トークン値が評価されるのを待つステップをさらに含む、請求項1に記載の方法。前記トークン値の前記保持は、周期的に前記トークン値の第1のフィールドをインクリメントするステップと、前記ハードディスクドライブの前記低電力移行の実行と関連する時点に、前記トークン値の第2のフィールドをインクリメントするステップと、を含み、前記トークン値の前記評価は、前記トークン値の前記第1のフィールドが前記トークン値の前記第2のフィールドよりも、少なくとも所定の値大きければ、前記ハードディスクドライブに関して前記低電力移行が許容可能であると決定するステップを含む、請求項1に記載の方法。最後の電力管理移行のときからのタイマを保持するステップと、前記ハードディスクドライブの前記低電力移行を実行する前に、前記タイマが所定の時間を超えるのを待つステップと、をさらに含む、請求項1に記載の方法。ハードディスクドライブによって消費される電力を管理するためのコンピュータプログラムであって、前記コンピュータプログラムは、非一時的コンピュータ可読記憶媒体を用いて具現化されたコンピュータ可読プログラムコードを有する、前記非一時的コンピュータ可読記憶媒体を含み、前記コンピュータ可読プログラムコードは、請求項1に記載の方法を実施するよう構成されたコンピュータ可読プログラムコードを含む、コンピュータプログラム。回転可能な記憶媒体と、前記回転可能な記憶媒体をスピンさせることができるモータと、前記モータを制御することができ、トークン記憶構成要素および制御インターフェースを含むディスクコントローラと、を含むデータ記憶デバイスであって、前記ディスクコントローラは、前記トークン記憶構成要素に記憶された値を周期的にインクリメントし、前記トークン記憶構成要素の前記値のリクエストに応答して、前記トークン記憶構成要素に記憶された前記値を、前記制御インターフェースを経由して提供するよう構成されている、データ記憶デバイス。前記ディスクコントローラは、前記データ記憶デバイスを低電力状態にするリクエストを、前記制御インターフェースを介して受け取り、前記トークン記憶構成要素に記憶された前記値が所定の値よりも大きければ、前記トークン記憶構成要素に記憶された前記値をデクリメントし、前記データ記憶デバイスを前記低電力状態にするようさらに構成されている、請求項10に記載のデータ記憶デバイス。前記ディスクコントローラは、前記データ記憶デバイスを前記低電力状態にする前に、トークン記憶構成要素に記憶された前記値が前記所定の値よりも大きくなるのを待つようさらに構成されている、請求項11に記載のデータ記憶デバイス。前記ディスクコントローラは、最後のディスクアクセスコマンドが前記制御インターフェースを介して受け取られたときからの経過時間を測定し、前記経過時間が所定の経過時間を超え、前記トークン記憶構成要素に記憶された前記値が所定の値よりも大きければ、前記トークン記憶構成要素に記憶された前記値をデクリメントし、前記データ記憶デバイスを低電力状態にするようさらに構成されている、請求項10に記載のデータ記憶デバイス。プロセッサと、前記プロセッサに通信可能に結合されたメモリと、前記プロセッサに通信可能に結合されたディスクインターフェースユニットと、前記ディスクインターフェースユニットに通信可能に結合されたハードディスクドライブと、を含むコンピュータシステムであって、前記ハードディスクドライブは、回転可能な記憶媒体と、前記回転可能な記憶媒体をスピンさせることができるモータと、前記モータを制御することができるディスクコントローラと、を含み、前記コンピュータシステムは、前記ハードディスクドライブの低電力移行の実際の数と比較した、前記ハードディスクドライブの低電力移行の許容可能数であって、前記ハードディスクドライブの寿命中に増加する、前記許容可能数に基づくトークン値を保持し、前記ハードディスクドライブが、電力を節約するために低電力状態にされるべきであると決定し、前記ハードディスクドライブが低電力移行を実行することが許容されるかどうかを決定するために、前記トークン値を評価し、前記ハードディスクドライブの前記低電力移行を許容すると前記トークン値が評価されれば、前記ハードディスクドライブの前記低電力移行を実行するよう構成されている、コンピュータシステム。前記コンピュータシステムは、前記ハードディスクドライブの前記低電力移行を実行する前に、前記ハードディスクドライブの前記低電力移行の実行を許容すると前記トークン値が評価されるのを待つようさらに構成されている、請求項14に記載のコンピュータシステム。前記トークン値は、前記メモリに記憶されている、請求項14に記載のコンピュータシステム。前記トークン値は、前記ディスクコントローラに記憶されている、請求項14に記載のコンピュータシステム。前記プロセッサは、前記ハードディスクドライブを低電力状態にするためのコマンドを、前記ディスクインターフェースユニットを経由して前記ディスクコントローラへ送るよう構成されており、前記ディスクコントローラは、前記ハードディスクドライブの前記低電力移行を許容すると前記トークン値が評価されれば、前記コマンドに応答して前記ハードディスクドライブの前記低電力移行を実行するよう構成されている、請求項17に記載のコンピュータシステム。前記ディスクコントローラは、最後のディスクアクセスコマンドが受け取られたときからの経過時間を測定し、前記経過時間が所定の経過時間を超えれば、前記ハードディスクドライブが低電力状態にされるべきであるという前記決定を実施し、前記ハードディスクドライブの前記低電力移行を許容すると前記トークン値が評価されれば、前記ハードディスクドライブの前記低電力移行の前記実行を実施するよう構成されている、請求項17に記載のコンピュータシステム。前記低電力移行は、前記ハードディスクドライブをスピンダウンすることを含む、請求項14に記載のコンピュータシステム。前記低電力移行は、前記ハードディスクドライブのヘッドをパーキングすることを含む、請求項14に記載のコンピュータシステム。本発明の目的は、信頼性を意識したディスク電力管理を提供することである。ハードディスクドライブによって消費される電力を管理する方法の様々な実施形態は、ハードディスクドライブの低電力移行lowpowertransitionの実際の数と比較した、ハードディスクドライブの低電力移行の許容可能数allowablenumberに基づくトークン値tokenvalueを保持するステップを含む。低電力移行の許容可能数は、ハードディスクドライブの寿命中に増加する。ハードディスクドライブが、電力を節約するために低電力状態にされるべきであると決定されると、トークン値が評価されて、ハードディスクドライブが低電力移行を実行することが許容されるかどうかが決定される。ハードディスクドライブの低電力移行は、ハードディスクドライブの低電力移行を許容するとトークン値が評価されれば実行される。他の実施形態は、ハードディスクドライブによって消費される電力を管理する方法の各側面を実施するハードディスクドライブおよびシステムを含む。添付の図面は、本明細書に組み込まれてその一部を構成しており、本発明の様々な実施形態を示す。全般的な記載とともに、図面は、様々な実施形態の原理を説明するのに役立つ。以下の詳細な説明では、様々な実施形態の完全な理解をもたらすために特定の詳細事項が例として多数記載される。なお、当業者には当然のことながら、本開示の実施形態は、そのような詳細事項を伴わずに実践されてもよい。他の場合には、本概念の側面を不必要に曖昧にすることを回避するために、周知の方法、手順、およびコンポーネントは、比較的上位で、詳細事項を伴わずに記載されている。いくつかの記述用語および表現が、本開示の様々な実施形態を記載するのに使用されている。これらの記述用語および表現は、別の定義が本明細書で与えられていない限り、当業者が一般に合意済みである意味を伝えるよう使用されている。明確にするために、いくつかの記述用語および表現を、以下の段落に示す。ヘッドパーキングまたはヘッドをパーキングするまたはこのヘッドをパーキングするは、ハードディスクドライブのヘッドを、ディスクの表面領域から離れた位置に移動させることを指す。これは、ヘッドとディスクとの物理的接触によって引き起こされ得る、回転中のディスクの損傷の可能性をなくすために行われることもある。これはさらに、ボイスコイルアクチュエータによって消費される電力量を削減するために行われることもある。一部の実施形態では、ヘッド単数または複数は、それらをディスクの表面領域から離すためにランプramp単数または複数に配置されることもある。スピンダウンは、ハードディスクドライブのディスクをスピンさせるモータをオフにするプロセスを指す。一部の実施形態では、ディスク単数または複数は完全にスピンを止めることもあるが、他の実施形態では、ディスクは、スピンを完全には止めないまま再びスピンアップされることもあり、または、ディスクは完全には止められず、単にずっと遅くスピンすることもある。スピンアップは、ディスクをスピンさせるモータをオンにするプロセスを指す。ディスクは、実施形態および状況により、完全に止まった状態から、またはスピンダウンの一環としてまだ減速している段階から、またはより遅い速度から、スピンアップされ得る。一部の実施形態では、スピンアッププロセスはさらに、ディスク単数または複数に対するデータの書き込みまたは読み取りに備えてハードディスクドライブの準備が再び整うよう、ディスク表面の上にヘッド単数または複数を再配置することを含むこともある。ハードディスクドライブは、一部のコンピュータシステム、特に多数のハードディスクドライブを利用するサーバの電力消費の大きな要素であることもある。ハードディスクドライブによる電力使用の1つの最大要因は、典型的には、ディスクをスピンさせるモータである。したがって、コンピュータシステムの省電力の最も効果的な方法の1つは、ハードディスクドライブのスピンダウンであると考えられる。しかし、ハードディスクドライブは、モータの寿命中に一定数までしか、信頼性を損なうことなくスピンアップ/スピンダウンサイクルを処理することができない設計であることもある。コンピュータシステムが、そのハードディスクドライブを繰り返しスピンアップおよびスピンダウンすると、そのスピンアップ/スピンダウンサイクル数が、モータおよび軸受がその寿命中に処理するよう設計されているスピンアップ/スピンダウンサイクル数を超えることもあり得ると考えられる。スピンアップ/スピンダウンサイクルの最大許容可能数を超えないようスピンアップ/スピンダウンサイクル数を管理することは、コンピュータシステムの信頼性を改善する方法となり得る。同様に、ハードディスクドライブは、限られた回数のヘッドパーキングしか提供しないよう設計されていることもあり、それを超えた後は信頼性が損なわれる可能性がある。したがって、ハードディスクドライブの寿命中にヘッドパーキング動作の最大許容可能数を超えないように、ヘッドパーキング動作を管理することが、コンピュータシステムの信頼性を改善するもう1つの方法となり得る。例として、一実施形態において、ハードディスクドライブが100,000時間約11.5年の動作を目標としていてもよい。このハードディスクドライブは、400,000のヘッドパーキング動作および300,000のスピンアップ/スピンダウンサイクルという設計寿命を有してもよい。そこで、コンピュータシステムの信頼性を高めるためには、ハードディスクドライブの様々な動作の設計寿命を超えないことが望ましい。以下、添付の図面に示され下記で説明する例を詳しく参照する。図1および図2は、電力管理の様々な実施形態に適したハードディスクドライブ100の様々な側面のブロック図を示す。どちらの図も、回転可能な1つ以上のディスク101と、ディスク101をスピンさせるモータ102とを示す。多くの実施形態では、ディスク101は、磁気材料でコーティングされ、データの磁気記憶ができるとよい。他の実施形態では、ディスクは、データの光学記憶を可能にするよう設計されていてもよい。任意の方法を使用してディスク101にデータを記憶するとよい。モータ102もしくはボイスコイルアクチュエータ130またはその両方を制御できるディスクコントローラ110が提供されるとよい。ディスクコントローラはさらに、ディスクコントローラ110の機能性を管理するプロセッサ111を含むとよい。プロセッサ111は、プログラム命令もしくはデータまたはその両方を記憶するメモリを含むとよい。そのようなメモリは、揮発性または不揮発性としてよく、プロセッサ111に組み込まれていても、またはディスクコントローラ110上の別個の構成要素として含まれていてもよい。プロセッサ111は、ディスクインターフェースユニット119に通信可能に結合されるとよく、ディスクインターフェースユニット119は、シリアルATASATA:SerialAdvancedTechnologyAttachmentシリアルアドバンスドテクノロジアタッチメント、小型コンピュータシステムインターフェースSCSI:SmallComputerSystemsInterface、ファイバチャネル、またはその他のプロトコルなどの入出力バス120上で通信するよう構成されている。ディスクコントローラ110は、タイマ113も含んでもよい。タイマ113は、一定時間が経過したという通知を提供することを含むがこれに限定されない、様々な機能を提供してもよい。さらに、特定の間隔の後に、プロセッサ111に割り込む能力を提供してもよい。さらに、経過時間記憶構成要素117を更新する能力を提供してもよく、経過時間記憶構成要素117は、プロセッサ111によって読み取り可能であり、経過時間記憶構成要素117が最後にリセットされてから経過した時間を測定する。経過時間記憶構成要素117はさらに、設定時間を超えるとプロセッサ111に割り込む能力を有してもよい。図1は、ハードディスクドライブ100のモータ102を制御する一部の実施形態で有益となり得る構成要素を示す。プロセッサ111に通信可能に結合されているとよいモータコントローラ112は、リンク103を介してモータ102を制御するよう構成されている。モータコントローラ112は、電界効果トランジスタFET:fieldeffecttransistor、バイポーラトランジスタ、またはその他の電子デバイスを利用して、リンク103を介して流れるモータ102への電力を制御してもよい。他の実施形態では、モータは、直接の電源接続を有してもよく、リンク103は、単にモータコントローラ112からモータ102へのオン/オフ指示を提供してもよい。他の実施形態では、リンク103は、望ましいスピードまたはその他の制御情報などの追加情報をモータ102に提供してもよい。第1のトークン記憶構成要素115が、ディスクコントローラ上に提供されてもよい。なお、一部の実施形態では、第1のトークン記憶構成要素115は、ディスクコントローラ上に位置しなくてもよく、ホストコンピュータのメモリ位置またはその他の適切な位置として提供されてもよい。なお、図1に示されている実施形態では、第1のトークン記憶構成要素115は、プロセッサ111によってアクセス可能であり、様々な実施形態において、プロセッサ111、またはディスクコントローラ110のその他の構成要素のアクションにより読み取り、書き込み、インクリメント、デクリメント、または変更され得る。第1のトークン記憶構成要素115のコンテンツは、そのコンテンツをリクエストするコマンドを送ることによって、入出力バス120を経由してホストコンピュータまたはその他のデバイスによってアクセスされることもできる。プロセッサ111は、それに応答して、第1のトークン記憶構成要素のコンテンツを読み取り、ディスクインターフェースユニット119を経由して入出力バス120へ返すことによって、そのようなコマンドに応答してもよい。図2は、ハードディスクドライブ100のヘッドパーキングを制御する他の実施形態で有益となり得る構成要素を示す。プロセッサ111に通信可能に結合されているとよいアクチュエータコントローラ132は、ボイスコイルアクチュエータ130を制御するよう構成されている。ボイスコイルアクチュエータ130は、必要に応じ、アーム単数または複数136を移動させて、ヘッド単数または複数134を回転可能なディスク単数または複数101の望ましい部分の上に配置する。いくつかの状況では、プロセッサ111は、ヘッドをパーキングすることを決定し、アクチュエータコントローラ132と通信して、ヘッド単数または複数134がランプ単数または複数138に移動するようにアーム単数または複数136を移動させるよう、ボイスコイルアクチュエータ130を制御する。ヘッド単数または複数134は、ランプ単数または複数138へ移動させることによって、ディスク単数または複数101と接触できないように配置されてもよく、その結果ディスク単数または複数101の損傷が回避される。第2のトークン記憶構成要素135が、ディスクコントローラ上に提供されてもよい。なお、一部の実施形態では、第2のトークン記憶構成要素135は、ディスクコントローラ上に位置しなくてもよく、ホストコンピュータのメモリ位置またはその他の適切な位置として提供されてもよい。なお、図2に示されている実施形態では、第2のトークン記憶構成要素135は、プロセッサ111によってアクセス可能であり、様々な実施形態において、プロセッサ111、またはディスクコントローラ110のその他の構成要素のアクションにより読み取り、書き込み、インクリメント、デクリメント、または変更され得る。第2のトークン記憶構成要素135のコンテンツは、そのコンテンツをリクエストするコマンドを送ることによって、入出力バス120を経由してホストコンピュータまたはその他のデバイスによってアクセスされることもできる。プロセッサ111は、それに応答して、第2のトークン記憶構成要素のコンテンツを読み取り、ディスクインターフェースユニット119を経由して入出力バス120へ返すことによって、そのようなコマンドに応答してもよい。コマンドが、コンピュータシステムまたはその他のデバイスからディスクコントローラ110へ、入出力バス120を介して送られてもよい。コマンドは、データの書き込みまたは読み取りであってもよく、または電力管理コマンドを含むその他のコマンドであってもよい。一部の電力管理コマンドは、ハードディスクドライブ100が低電力状態にされることをリクエストしてもよい。様々な低電力状態が、様々な実施形態においてサポートされ得る。一部の実施形態は、動作状態に加えて単一の低電力状態しか提供しなくてもよい。他の実施形態は、動作状態に加えて、複数の低電力状態を提供してもよい。様々な実施形態において提供され得るいくつかの低電力状態は、aプロセッサ111のクロックを止める技術などを使用してディスクコントローラ110の電子回路の少なくとも一部を低電力状態にすること、bヘッド単数または複数134をランプ単数または複数138にパーキングすること、cディスク単数または複数101がスピンを停止できるようモータ102をオフにすること、dディスク単数または複数101のスピンのペースを遅くするが、ヘッド単数または複数134がディスク単数または複数101上を浮上し続けられるだけ十分に速くスピンさせておくこと、eデータキャッシュなどのディスクコントローラ110の様々な部分を無効化すること、または技術a~eの組み合わせを含むが、これらに限定はされない。低電力移行は、ディスクドライブが低電力状態に入るときに生じる。低電力移行は、特定の低電力状態の影響を受けると考えられるモータ102またはヘッド単数または複数134などのリソースに関連するとよい。特定の種類の低電力移行とは、特定のリソースに影響する低電力状態への移行である。第1のトークン記憶構成要素115もしくは第2のトークン記憶構成要素135またはその両方を使用して、ハードディスクドライブ100の当該リソースの低電力移行の実際の数と比べた、ハードディスクドライブ100の当該リソースの低電力移行の許容可能数に基づく、ハードディスクドライブ100のリソースに関係するトークン値が保持されるとよい。したがって、トークンは、特定のリソースに影響する特定の種類の低電力移行に関係してもよい。図3~図5は、ハードディスクドライブ100の電力管理の様々な実施形態のいくつかの側面のフローチャート200、210、220である。様々な実施形態が、フローチャート200、210、220に示された方法のうちの1つ以上を実施してもよい。本方法は、同時に、または連続的に、または何らかの方法で交互に実行されてもよい。図3~5の上述の方法は、特定のハードディスクドライブが、その寿命の間に電力管理移行の許容可能数を超えないことを保証するために使用されるとよい。一部の実施形態では、ハードディスクドライブのRAIDセットなど、グループとして管理される複数のドライブを表すのに、1つのトークンが使用されてもよい。図3は、ある時間間隔でトークン値をインクリメントするフローチャート200を示す。一実施形態では、タイマ113は、フローチャート200のブロック201にてタイマティックtimertickを生成するとよい。タイマティックは、ブロック202にて、1つまたは両方のトークン、またはトークン単数または複数のフィールドをインクリメントするために使用されるとよい。続いて、本方法は、ブロック203にて次のタイマティックを待つ。タイマ113は、ハードディスクドライブ100が電力を供給されていて動作できるときにのみタイマティックが生じるよう設定されていてもよい。一部の実施形態では、これは、ドライブが低電力状態にあるときを含んでもよいが、他の実施形態は、特定の低電力状態ではタイマ113を無効化してもよい。その他の実施形態では、タイマ113は常に実行されてもよく、ハードディスクドライブ100が電源に接続されていないときでもバッテリ電源で実行される。一部の実施形態では、トークン記憶構成要素単数または複数115、135は、タイマティックによって直接インクリメントされてもよいが、他の実施形態では、プロセッサ111が、プロセッサ111にトークン記憶構成要素単数または複数115、135をインクリメントするよう促すタイマティックをタイマ113から受け取ってもよい。トークン記憶構成要素115、135のうちの1つまたは両方をディスクコントローラ110外で実装する実施形態では、トークン記憶構成要素単数または複数115、135を保持するために他の方法が使用されてもよい。例えば、トークン記憶構成要素単数または複数115、135がホストコンピュータシステムのメモリにおいて実装される場合、ホストコンピュータもしくはオペレーティングシステム機能またはその両方のハードウェアタイマがそのホストコンピュータシステムのCPUによって使用されて、それが適切な間隔でトークン記憶構成要素単数または複数115、135をインクリメントできるようにしてもよい。トークン値単数または複数のインクリメントは、ハードディスクドライブ100が使用されている時間の増加を考慮することにより増加する、許容され得る電力管理移行数を表す。タイマティック間隔は、予想される動作寿命、およびヘッドパーキング動作もしくはスピンアップ/スピンダウン動作またはその両方に関する設計寿命など、ハードディスクドライブ100についての情報を使用して設定されてもよい。したがって、例えば、ハードディスクドライブ100の予想される動作寿命が100,000時間約11.5年であり、400,000のヘッドパーキング動作および300,000のスピンアップ/スピンダウンサイクルの設計寿命を有する場合、第1のトークン記憶構成要素115は、20分100,000時間/300,000の目標間隔でインクリメントされるとよく、第2のトークン記憶構成要素135は、15分100,000時間/400,000の目標間隔でインクリメントされるとよい。使用される時間の間隔は、特定のハードディスクドライブ100の仕様を使用して計算することも、フィールド信頼性データに基づき選ばれることも、工学的判断に基づき定義されることも、またはその他任意の方法で決定されることもできる。一部の実施形態では、時間間隔は、様々な理由で、各インクリメントに関して正確に同じでなくてもよい。本開示の明細書および特許請求の範囲に関して、時間間隔は大きく変化することもある。長期間にわたる平均間隔が、目標間隔と基本的に一致していれば、特定の間隔の時間は重要ではない。図4は、ハードディスクドライブ100が低電力状態への移行をリクエストされたときに、低電力状態に入ってよいかどうかを管理する方法のフローチャート210を示す。低電力状態に入るリクエストが、ブロック211にてハードディスクドライブ100によって受け取られる。続いてブロック212にて、ハードディスクドライブ100は、リクエストされた低電力状態への移行によって影響が及ぼされる可能性のあるリソースに関係している1つ以上のトークン値を評価するとよい。一部の実施形態では、低電力状態は、ハードディスクドライブ100のヘッド単数または複数134をパーキングすることを必要とすることもある。他の実施形態では、低電力状態は、ハードディスクドライブ100のディスク単数または複数101をスピンダウンすることを必要とすることもある。さらに他の実施形態は、他のリソースに影響を及ぼすことも、または複数のリソースを必要とすることもあるヘッド単数または複数134のパーキングと、ディスク単数または複数101のスピンダウンの両方など。トークン値は、種々の実施形態において、いくつかの異なる方法で評価され得る。一部の実施形態では、所与のリソースに対し単一のトークン値がある。この単一のトークンを評価するために、その値が、ゼロ0などの所定の値に対して比較されてもよい。他の実施形態では、所定の値は負であり、電力管理移行の将来の割り当てと引き替えにいくつかの数の電力管理移行を借りられるようにしてもよい。他の実施形態では、所定の値はゼロより大きくてもよい。他の実施形態では、2つのフィールドが各トークンにおいて保持され、1つのフィールドは、タイマティックによってインクリメントされ、任意の特定の時間に所与のリソースに関してその寿命の間に許容される電力管理移行の総数を表し、もう一方のフィールドは、その電力管理移行が実際にそのリソースに対して実行されるたびにインクリメントされ、そのリソースに対して生じた電力管理移行の総数を表してもよい。当該実施形態では、トークンは、2つのフィールド間の差を決定して、それをゼロ0、または単一値トークンに関して上述したものに似た他の値などの所定の値と比較することによって評価される。一部の実施形態では、所定の値は時間とともに変化してもよい。これは、リソースの電力管理移行の実行が許容される可能性に影響を与えるために行われてもよい。一実施形態では、所定の値は、夜間は-100、日中は100と等しくてもよい。なお、長期間にわたり無制限に増減されない限り、所定の値の変更が、累積した電力管理移行に対して大きな長期的影響を与えることはない。現在当該リソースに対して電力管理移行が許容可能でないことを示すとトークンが評価される場合、これはブロック212ではゼロ以下のトークンによって表され、様々な実施形態において異なるアクションがとられ得る。フローチャート210に示されている実施形態では、本方法は、ある期間ブロック213において待ち、続いてブロック212にてトークンを再び再評価して、電力管理移行の発生が許容される段階までフローチャート200の方法によってトークンがインクリメントされるまで、電力管理移行を事実上遅らせる。他の実施形態では、低電力状態に入るリクエストに対し、低電力状態に移行することなくエラーメッセージによる応答が行われてもよく、他の実施形態では、リクエストが単に無視されてもよい。現在当該リソースに対して電力管理移行が許容されることを示すとトークンが評価される場合、これはブロック212ではゼロより大きいトークンによって表され、ブロック214にてトークンはデクリメントされまたは2フィールドトークンの第2のフィールドがインクリメントされ、ブロック215にて関連するリソースが低電力状態に入ることを許容される。次に、ブロック216にてハードディスクドライブ100は、入出力バス120を介した次のコマンドまたはアクセスを待つ。次のコマンドまたはアクセス次第で、ハードディスクドライブ100は、リソースをその完全動作状態に戻すこともある。上記のように、電力管理に利用され得、トークンに関連し得るリソースとしては、特に、ヘッド単数または複数134をパーキングすることおよびモータ102をオフにすることがある。一部の実施形態では、図3および図4に示された方法はどちらも、ハードディスクドライブ100において実施されてもよい。他の実施形態では、フローチャート200に示された方法が、ハードディスクドライブ100において実施されてもよく、フローチャート210に示された方法が、ホストコンピュータ上で実行されているソフトウェアを使用して実施されてもよい。他の実施形態では、どちらの方法も、入出力バス120を介してハードディスクドライブ100と通信しているホストコンピュータ上で実行されるソフトウェアを使用して実施されてもよい。図5は、非アクティブタイマinactivitytimerに基づき電力管理移行を管理する方法のフローチャート220を示す。ブロック221にて、入出力バス120を介してディスクアクセスが受け取られると、ブロック222にて非アクティブタイマがリセットされるとよい。非アクティブタイマは、一部の実施形態では、経過時間記憶構成要素117を使用して実装されてもよく、他の実施形態では、ホストコンピュータ上で実行されているソフトウェアにおいて実装されてもよい。非アクティブタイマは、ブロック224にて新たなディスクアクセスが受け取られるか、またはブロック225にて非アクティブタイマがタイムアウト値を超えるまで、ブロック223において経過時間を測定し続けるとよい。ブロック224にて新たなディスクアクセスが受け取られると、ブロック222にて非アクティブタイマは再びリセットされ、ブロック223にて非アクティブの新たな期間を測定することができるとよい。ブロック225にて、非アクティブがタイムアウト値を超えると、ブロック226にて、低電力状態に使用されるリソースに関連するトークンが、図4に関して行われたのと似た方法で所定の値と照合される。ブロック226にて、そのリソースに関して現在電力管理移行が許容されないことを示すとトークンが評価されれば、ブロック224にて新たなディスクアクセスが受け取られブロック222にて非アクティブタイマのリセットをもたらすまで、またはブロック226にて電力管理移行を許容するとトークン値が評価されるまで、非アクティブタイマは増え続けるとよい。電力管理移行が許容されれば、ブロック227にてトークン値がデクリメントまたは第2のフィールドがインクリメントされるとよく、ブロック228にてハードディスクドライブ100は、低電力状態にされる。続いて、ブロック229にて本方法は次のディスクアクセスを待つ。図5の方法は、完全にハードディスクドライブ100において実施されてもよく、またはホストコンピュータ上で実行されているソフトウェアにおいて実施されてもよく、またはそれぞれで実行されている構成要素を用いて実施されてもよい。なお、図3~5において上述されたこうした方法は、電力管理移行の最低または最高のペースを規定しないが、一部の実施形態はさらに、各電力管理移行間の最短時間を規定してもよい。例えば、ヘッドパーキング間の最短時間、スピンダウン間の最短時間、スピンアップとスピンダウンとの間の最短時間スピンアップされる最短時間、もしくはスピンダウンとスピンアップとの間の最短時間スピンダウンされる最短時間、またはそのいずれかの組み合わせなどである。記載された方法は、電力管理移行の余剰の累積を可能にし、それを後からより速いペースで使い切ることができる。例えば、スピンダウントークン値が20分毎にインクリメントされる上記のスピンダウンの例のみを考察すると、ドライブの使用が開始され、最初の30日間、1日12時間のほぼ一定した使用状態であり、その結果1日12時間スピンダウンされて使用されず、1日に1回のみスピンダウンが実行されると、トークン値は1日に324-1=71増加することになり、31日目の始まりには、2201の値となるであろう。31日目から、利用パターンまたは電力管理ポリシが変化し、そのドライブを使用するホストコンピュータが、1分間ハードディスクドライブをスピンダウンし、続いてドライブをスピンアップしてそれを1分間使用することを試行し始め、トークンを2分毎にデクリメントすると、そのパターンは、以下の計算で示されるように3日間超にわたって続くことができるであろう。22012=4402分73.36時間後、トークン値は、最初の4402分の間に起きたトークンインクリメントに基づき、73.363=220となり、さらに少なくとも440分の同様の動作が可能である。さらに440分、同じ1分のスピンアップ、1分のスピンダウンパターンを行った後、トークン値は22となると考えられ、さらに44分後には、トークン値は2となると考えられ、トークン値がゼロと等しくなるまで、さらに4分の当該利用パターンが可能である。したがって、30日の12時間のスピンアップ、12時間のスピンダウンの後、続いてハードディスクドライブは、4890分間3日と9.5時間にわたって1分のスピンアップ、1分のスピンダウン動作を実行することができるであろう。オペレーティングシステムが、ハードディスクドライブを、1分のスピンアップ、1分のスピンダウン動作モードで動作させようとする試みを続ける場合、ゼロというトークン値は、ハードディスクドライブが、次のトークンインクリメントを待ってからスピンダウンを行うこともあり得、次のドライブアクセスが生じれば、待つのを中止するということを意味する。したがって、オペレーティングシステムがまだ1分のスピンアップ、1分のスピンダウンとしてハードディスクドライブを動作させようと試みていても、ハードディスクドライブは、20分毎に1度のみしかスピンダウンコマンドに応答せず、続いて、再びアクセスされれば1分後にハードディスクドライブをスピンアップし、1分のスピンダウン、十九19分のスピンアップというパターンがもたらされる。図6は、様々な実施形態を実施するのに適したコンピュータシステム600の詳細を示す。コンピュータシステム600は、デスクトップコンピュータ、ラップトップコンピュータ、メインフレームコンピュータ、またはその他、命令を実行するようプログラムまたは構成されることができる任意のハードウェアもしくは論理装置の形態で構成されていてよい。一部の実施形態では、コンピュータシステム600は、ローカルエリアネットワークLAN:localareanetwork618またはインターネット620を介して遠隔ユーザからの入力を受け付けるサーバとしての機能を果たしてもよい。他の実施形態では、コンピュータシステム600は、LAN618上またはインターネット620上のサーバのスマートユーザインターフェースデバイスとして機能してもよい。コンピュータシステム600は、1つの位置に位置して相互接続されてもよく、または様々な位置に分散して、LAN618もしくは広域ネットワークWAN:wideareanetworkなどの通信リンクを介して、インターネット620を介して、公衆交換電話網PSTN:publicswitchedtelephonenetwork、交換網、セルラ電話網、ワイヤレスリンク、またはその他の類似の通信リンクを介して相互接続されてもよい。その他のデバイスも、実施形態または実施形態の一部を実施または実践するのに適していることもある。そのようなデバイスには、携帯情報端末PDA:personaldigitalassistant、ワイヤレスハンドセット例えばセルラ電話またはページャ、およびその他、好適には命令またはルーチンを実行するようプログラムされることができる類似の電子デバイスが含まれる。当業者には当然のことながら、多数の異なるアーキテクチャがコンピュータシステム600に適すると考えられるが、図6には1つのみの典型的なアーキテクチャが示されている。コンピュータシステム600は、マイクロプロセッサとして、図6に示されている2つ以上の並列プロセッサとして、中央処理ユニットCPU:centralprocessingunitとして、またはその他の類似の制御論理もしくは回路として具現化され得るプロセッサ601を含むこともできる。プロセッサ601は、ローカルキャッシュメモリ602にアクセスするよう構成されてもよく、ローカルキャッシュメモリ602にないデータのリクエストを、キャッシュバス603をわたって二次キャッシュメモリ604に送る。一部の実施形態は、プロセッサ601およびローカルキャッシュメモリ602を単一の集積回路に統合してもよく、他の実施形態は、単一レベルのキャッシュメモリを利用しても、またはキャッシュメモリをまったく利用しなくてもよい。他の実施形態は、複数のプロセッサ601を、単一のダイ上もしくは単一のパッケージ、またはその両方に統合してもよい。さらに他の実施形態は、二次キャッシュメモリ604とともに複数のローカルキャッシュメモリ602を備える複数のプロセッサ601を、メモリ/バスコントローラ606と通信するためのフロントサイドバス605を備える単一のプロセッサパッケージ640に統合してもよい。メモリ/バスコントローラ606は、プロセッサ単数または複数601からのアクセスを受け付け、それを内部メモリ608または様々な入出力I/O:input/outputバス120、611、613のいずれかに向かわせるとよい。ディスクインターフェースユニット650は、入出力バス120に接続すること、もしくはハードディスクドライブ100に接続すること、もしくは他の入出力バス611を介して光ディスクドライブ612に接続すること、またはそのいずれかの組み合わせをすることもでき、メモリ/バスコントローラ606に統合されても、または別個のチップであってもよい。コンピュータシステム600の一部の実施形態は、メモリ/バスコントローラへのフロントサイドバス605を共有する複数のプロセッサパッケージ640を含むこともできる。他の実施形態は、メモリ/バスコントローラへの独立したフロントサイドバス接続を備える複数のプロセッサパッケージ640を有することもできる。メモリバスコントローラは、メモリバス607を使用して内部メモリ608と通信することもできる。内部メモリ608は、シンクロナスダイナミックランダムアクセスメモリSDRAM:synchronousdynamicrandomaccessmemory、ダブルデータレートDDR:doubledatarateメモリ、またはその他の揮発性ランダムアクセスメモリなどのランダムアクセスメモリRAM:randomaccessmemoryデバイスの1つ以上を含むこともできる。内部メモリ608は、電気的消去可能プログラム可能読み取り専用メモリEEPROM:electricallyerasable/programmableread-onlymemory、NANDフラッシュメモリ、NORフラッシュメモリ、プログラム可能読み取り専用メモリPROM:programmableread-onlymemory、読み取り専用メモリROM:read-onlymemory、バッテリバックアップRAM、またはその他の不揮発性メモリなどの不揮発性メモリも含むこともできる。一部の実施形態では、コンピュータシステム600は、3次キャッシュメモリ、またはこうした種類もしくは他の類似の種類の、情報を検索可能なフォーマットで記憶するよう構成された回路の組み合わせも含むこともできる。一部の実装では、内部メモリ608は、プロセッサ601の一部として構成されてもよく、またはその代わりに、プロセッサ601とは別個であるが同じプロセッサパッケージ640内に構成されてもよい。プロセッサ601は、コンピュータシステム600の他のコンポーネントにアクセスするために使用されるのとは異なるバスまたは制御ラインを介して内部メモリ608にアクセスできてもよい。コンピュータシステム600はさらに、1つ以上のハードディスクドライブ100またはその他の種類の記憶メモリおよび光ディスクドライブ612を含んでも、またはそれにアクセスできてもよい。ハードディスクドライブ100および光ディスクドライブ612の光ディスクは、様々な実施形態の最終または中間結果を記憶するのに適した機械可読コンピュータ可読とも呼ばれる媒体の例である。光ディスクドライブ612は、リムーバブル記憶媒体例えばCD-R、CD-RW、DVD、DVD-R、DVD-W、DVD-RW、HD-DVD、Blu-RayR、および同様のものに対する読み取りもしくは書き込みまたはその両方を行うことができる様々なフォーマットのいくつかのディスクドライブの組み合わせを含むこともできる。コンピュータシステム600の一部の実施形態に含まれることもできる他の形態のコンピュータ可読媒体には、フレキシブルディスクドライブ、9トラックテープドライブ、テープカートリッジドライブ、ソリッドステートドライブ、カセットテープレコーダ、紙テープリーダ、バブルメモリデバイス、磁気ストリップリーダ、パンチカードリーダ、またはその他任意の種類の記憶媒体またはコンピュータ使用可能記憶媒体が含まれるが、これらに限定はされない。コンピュータシステム600は、ハードディスクドライブ100および光ディスクドライブ612を、コンピュータシステム600の一体部分として例えば、同じキャビネットもしくは筐体内にあるか、もしくは同じ電力供給を使用するか、またはその両方含んでも、接続された周辺機器として含んでもよく、もしくは、ネットワークを介してハードディスクドライブ100および光ディスクドライブ612にアクセスしてもよく、またはこれらの組み合わせも可能である。ハードディスクドライブ100は、データ、コンピュータプログラム、またはその他の情報の記憶および検索用に構成された回転する磁気媒体を含むことが多い。ハードディスクドライブ100は、記憶媒体を回転させるため、ならびに媒体上のデータにアクセスするためにモータを制御できる、ディスクコントローラも含むことが多い。一部の実施形態では、追加のドライブは、半導体メモリを使用するソリッドステートドライブであってもよい。他の実施形態では、他の何らかの種類のコンピュータ使用可能媒体が使用されてもよい。ハードディスクドライブ100は、必ずしもコンピュータシステム600内に含まれる必要はない。例えば、一部の実施形態では、ハードディスクドライブ100は、データ、コンピュータプログラム、またはその他の情報の記憶および検索のためにコンピュータシステム600がアクセス可能なネットワーク内のサーバ記憶領域であってもよい。場合によっては、コンピュータシステム600は、インターネット620またはその他の通信ラインによってアクセス可能なサーバストレージファーム、または類似の種類のストレージ設備の記憶領域を使用してもよい。ハードディスクドライブ100は、例えば、様々な実施形態のアクティビティを実行するためのコンピュータアプリケーションプログラムの全部または一部を含む、コンピュータシステム600によって実行されるソフトウェア、命令、およびプログラムを記憶するために使用されることが多い。入出力バス120もしくは入出力バス611またはその両方は、ハードディスクドライブ100および光ディスクドライブ612のコンテンツにアクセスするために使用されてもよい。これらの入出力バス120、611は、シリアルアドバンスドテクノロジアタッチメントSATAなどのポイントツーポイントリンクとしても、またはパラレルアドバンスドテクノロジアタッチメントPATA:ParallelAdvancedTechnologyAttachmentもしくは小型コンピュータシステムインターフェースSCSIなどのバス型接続としても、IEEE-1394などのデイジーチェーントポロジとしても、ファイバチャネルなどの様々なトポロジをサポートするリンクとしても、またはその他、コンピュータ可読媒体との通信に使用され得る任意のコンピュータ通信プロトコル、標準、もしくはプロプライエタリとしてもよい。メモリ/バスコントローラは、その他の入出力バス613も提供してもよい。一部の実施形態では、入出力バス613は、周辺コンポーネントインターフェースPCI:peripheralcomponentinterface、マイクロチャネル、業界標準アーキテクチャISA:industrystandardarchitectureバス、拡張業界標準アーキテクチャEISA:extendedindustrystandardarchitectureバス、VERSAモジュールユーロカードVME:VERSAmoduleEurocardバス、またはその他任意の共有コンピュータバスなどの共有バスアーキテクチャとしてもよい。他の実施形態では、入出力バス613は、PCI-Express、HyperTransport、またはその他任意のポイントツーポイントI/Oリンクなどのポイントツーポイントリンクとしてもよい。様々なI/Oデバイスが、コンピュータシステム600の一部として構成されてもよい。多数の実施形態において、コンピュータシステム600がLAN618に接続できるようにネットワークインターフェース614が含まれてもよい。LAN618は、IEEE802.3イーサネットネットワーク、IEEE802.11Wi-Fiワイヤレスネットワーク、またはその他、LAN、WAN、パーソナルエリアネットワークPAN:personalareanetwork、有線ネットワーク、無線周波数ネットワーク、パワーラインネットワーク、および光ネットワークを含むがこれらに限定されない任意の種類のコンピュータネットワークとすることもできる。ネットワークゲートウェイ619またはルータは、コンピュータシステム600とは別個のコンポーネントであっても、またはコンピュータシステム600の一体部分として含まれてもよく、LAN618に接続されて、コンピュータシステム600が、非対称デジタル加入者線ADSL:asymmetricdigitalsubscriberline、データオーバケーブルサービスインターフェース仕様DOCSIS:dataovercableserviceinterfacespecificationリンク、T1、またはその他のインターネット接続メカニズムなどのインターネット接続621を介してインターネット620と通信できるようにしてもよい。他の実施形態では、コンピュータシステム600は、インターネット620への直接接続を有してもよい。一部の実施形態では、拡張スロット615が含まれて、ユーザが追加の機能性をコンピュータシステム600に追加できるようにしてもよい。コンピュータシステム600は、ユニバーサルシリアルバスUSB:universalserialbus626、RS-232などのシリアルポート、パラレルポート、オーディオ入力624およびオーディオ出力622接続、ハイパフォーマンスシリアルバスIEEE-1394、もしくはその他の通信リンク、またはそのいずれかの組み合わせなどの外部通信インターフェースへのアクセスを提供するI/Oコントローラ616を含むこともできる。こうした接続はさらに、一部の実施形態では別個の回路を有してもよく、またはブリッジを経由してI/Oコントローラ616によって提供される別のコンピュータ通信リンクに接続されてもよい。さらに、プロセッサ601上で実行するアプリケーションが情報をユーザに対して表示できるよう、グラフィックスコントローラ617が提供されてもよい。グラフィックスコントローラ617は、アナログビデオグラフィックアレイVGA:videographicarray接続、デジタルビデオインターフェースDVI:digitalvideointerface、デジタル高解像度マルチメディアインターフェースHDMI:highdefinitionmultimediainterface接続、またはその他任意のビデオ接続などの、標準またはプロプライエタリフォーマットを利用し得るビデオポート629を経由してビデオを出力してもよい。ビデオポート629は、ディスプレイ630に接続して、ビデオ情報をユーザに提示してもよい。ディスプレイ630は、液晶ディスプレイLCD:liquidcrystaldisplay、陰極線管CRT:cathoderaytubeモニタ、有機発光ダイオードOLED:organiclightemittingdiodeアレイ、またはその他の種類の、情報をユーザに対して表示するのに適したディスプレイを含む、いくつかの種類のディスプレイのいずれかとしてよい。ディスプレイ630は、1つ以上の発光ダイオードLED:lightemittingdiodeインジケータライト、またはその他の類似のディスプレイデバイスを含むこともできる。典型的には、コンピュータシステム600には、キーボード627、マウス628、もしくは示されたカーソルを制御する他の手段、またはそのいずれかの組み合わせなどの1つ以上のユーザ入出力I/Oデバイスが含まれ、この、カーソルを制御する他の手段には、タッチスクリーン、タッチパッド、ジョイスティック、トラックボール、タブレット、またはその他のデバイスが含まれるが、これらに限定はされない。ユーザI/Oデバイスは、USB626インターフェース、またはRS-232、PS/2コネクタまたはその他のインターフェースなどの他の接続を使用してコンピュータシステム600に接続してもよい。一部の実施形態は、USB626を使用して接続してもよいウェブカメラ631、オーディオ入力624に接続されたマイク625、もしくはオーディオ出力622に接続されたスピーカ623、またはそのいずれかの組み合わせを含むこともできる。キーボード627およびマウス628、スピーカ623、マイク625、ウェブカメラ631、ならびにディスプレイ630は、情報をユーザに提示する手段、もしくは様々なプログラムおよび計算を実行するのに使用される情報およびその他の入力をユーザから受け取る手段、またはその両方として、様々な組み合わせで使用されても、または別々に使用されてもよい。音声認識ソフトウェアが、マイク625とともに使用されて、ユーザ音声コマンドを受け取り解釈してもよい。コンピュータシステム600は、ハードディスクドライブ100の電力を管理する実施形態に適しているとよい。例えば、プロセッサ601は、マイクロプロセッサ、マイクロコントローラ、DSP、RISCプロセッサ、2つ以上のパラレルプロセッサ、またはその他、本願明細書に記載された機能、アクティビティ、および方法を実行または制御できると当業者が認識するであろう任意の種類の処理ユニットとして具現化されてよい。様々な実施形態のうちの少なくとも1つによる処理ユニットは、ハードディスクドライブ100、光ディスクドライブ612、またはその他任意の種類のハードディスクドライブに準拠したもの、フレキシブルディスク、フラッシュメモリ、RAM、または当業者に知られている他のコンピュータ可読媒体などのコンピュータ可読媒体上に記憶具現化されたコンピュータソフトウェアプログラムを動作させることができる。当業者であれば当然のことであるが、様々な実施形態の側面は、システム、方法またはコンピュータプログラム製品として具現化され得る。したがって、本発明の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態ファームウェア、常駐ソフトウェア、マイクロコードまたは同様のものを含む、または本願明細書においてすべて概して回路、モジュール、ハードディスクドライブ、論理、もしくはシステムと呼ばれ得る、ソフトウェアおよびハードウェアの側面を兼ね備えた実施形態の形態をとってもよい。さらに、様々な実施形態の側面は、コンピュータ可読プログラムコードが記憶された1つ以上のコンピュータ可読媒体単数または複数に具現化されたコンピュータプログラム製品の形態をとることもできる。1つ以上のコンピュータ可読媒体単数または複数の任意の組み合わせが利用され得る。コンピュータ可読媒体は、典型的にはコンピュータ可読記憶媒体である。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線、もしくは半導体システム、装置、もしくはデバイス、またはその他、当業者に既知である同様の記憶デバイス、または前述のものの任意の適切な組み合わせとして具現化されてよい。そのようなコンピュータ可読記憶媒体の例には、ポータブルコンピュータディスケット、ハードディスクドライブ、ランダムアクセスメモリRAM、読み取り専用メモリROM、消去可能プログラム可能読み取り専用メモリEPROMまたはフラッシュメモリ、ポータブルコンパクトディスク読み取り専用メモリCD-ROM:compactdiscread-onlymemory、光学式記憶デバイス、磁気記憶デバイスまたは前述のものの任意の適切な組み合わせが含まれる。この文書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムを含むこと、または記憶することができる任意の有形の媒体であればよい。様々な実施形態の側面の動作を実行するコンピュータプログラムコードは、JavaR、SmalltalkR、Cまたは同様のものなどのオブジェクト指向プログラミング言語、およびCプログラミング言語もしくは同様のプログラミング言語などの従来の手続きプログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれていてよい。様々な実装に従って、プログラムコードは、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で実行されること、部分的にユーザのコンピュータ上で実行されること、または部分的にユーザのコンピュータ上で、かつ部分的に遠隔コンピュータ上で実行されること、または完全に遠隔コンピュータもしくはサーバ上で実行されることもできる。後者のシナリオでは、ローカルエリアネットワークLAN、もしくは広域ネットワークWANを含む任意の種類のネットワークを経由して遠隔コンピュータがユーザのコンピュータに接続されてもよく、または、外部コンピュータに接続されてもよい例えば、インターネットサービスプロバイダを使用しインターネットを経由して。様々な実施形態の側面は、本願明細書に開示された様々な実施形態による方法、装置、システム、およびコンピュータプログラム製品のフローチャート図もしくはブロック図、またはその両方を参照して記載されている。当然のことながら、フローチャート図もしくはブロック図またはその両方の様々なブロック、およびフローチャート図もしくはブロック図またはその両方の複数ブロックの組み合わせは、コンピュータプログラム命令により実施可能である。当該コンピュータプログラム命令が、機械を生じるよう、汎用コンピュータ、専用コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサに提供されて、この命令が、コンピュータまたはその他のプログラム可能データ処理装置のプロセッサを用いて実行されて、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実施する手段を作り出すようにすることもできる。さらに、特定の形で機能するようコンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスに指示することができる当該コンピュータプログラム命令は、コンピュータ可読媒体に記憶されて、コンピュータ可読媒体に記憶されたこの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実施する命令を含む製品を生じるようにすることもできる。さらに、コンピュータプログラム命令は、コンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置、またはその他のデバイス上で一連の動作ステップが実行されるようにしてコンピュータに実施されるプロセスを生じさせ、コンピュータまたはその他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実施するためのプロセスを提供するようにすることもできる。各図面のフローチャートもしくはブロック図またはその両方は、様々な実施形態のシステム、方法およびコンピュータプログラム製品の考えられる実装のアーキテクチャ、機能性および動作を説明するのに役立つ。この関連で、フローチャートまたはブロック図内の各ブロックは、指定の論理機能単数または複数を実施する1つ以上の実行可能命令を含むモジュール、セグメント、またはコードの一部を表現することもできる。なお、さらに、いくつかの代わりの実装では、ブロック内に示されている機能が、図面に示されているのとは異なる順序で生じてもよい。例えば、関連する機能性次第で、連続して示されている2つのブロックが実際には事実上同時に実行されてもよく、または、各ブロックが逆順で実行されることがあってもよい。なお、さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方の複数ブロックの組み合わせは、指定の機能もしくは動作を実行する専用ハードウェアベースシステム、または専用ハードウェアおよびコンピュータ命令の組み合わせにより実装することができる。本願明細書で使用される専門用語は、特定の実施形態を説明するためのものでしかなく、本発明の限定となることは目的としていない。本願明細書で使用される、単数形a、anおよびtheは、文脈によりそうでないことが明確に示されていない限り、複数形も含むものとする。さらに、当然のことながら、本明細書で使用される、含むcomprises、含んでいるcomprising、含むincludes、もしくは含んでいるincluding、またはそのいずれかの組み合わせの用語は、記載された機能、整数、ステップ、動作、構成要素、もしくはコンポーネント、またはそのいずれかの組み合わせの存在を指定するが、1つ以上の他の機能、整数、ステップ、動作、構成要素、コンポーネント、もしくはそのグループ、またはそのいずれかの組み合わせの存在または追加を除外するものではない。本願明細書で使用される結合という用語は、直接および間接的な接続を含む。さらに、第1および第2のデバイスが結合されている場合、それらの間にアクティブなデバイスを含む介在するデバイスがあってもよい。以下の特許請求の範囲のミーンズまたはステッププラスファンクション構成要素すべての対応する構造、材料、動作、および等価物は、明確に請求されている他の請求される構成要素とともに機能を実行する任意の構造、材料、または動作を含むものとする。様々な実施形態の記載は、例証および説明のために示されたものであるが、包括的であることも、本発明を開示された形態に限定することも目的としていない。当業者には、本発明の範囲および主旨から逸脱することのない、多数の変更および変形が明らかであろう。本願明細書に含まれた様々な実施形態は、本発明の原理および実際の応用を最もよく説明して、当業者が、意図される特定の用途に適する様々な変更を用いた様々な実施形態に関して、本発明を理解できるように選ばれ、記載された。"