特許第5828549号(P5828549)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧
特許5828549ディスク電力管理方法、コンピュータ・プログラム、データ記憶デバイス、およびコンピュータ・システム
<>
  • 特許5828549-ディスク電力管理方法、コンピュータ・プログラム、データ記憶デバイス、およびコンピュータ・システム 図000002
  • 特許5828549-ディスク電力管理方法、コンピュータ・プログラム、データ記憶デバイス、およびコンピュータ・システム 図000003
  • 特許5828549-ディスク電力管理方法、コンピュータ・プログラム、データ記憶デバイス、およびコンピュータ・システム 図000004
  • 特許5828549-ディスク電力管理方法、コンピュータ・プログラム、データ記憶デバイス、およびコンピュータ・システム 図000005
  • 特許5828549-ディスク電力管理方法、コンピュータ・プログラム、データ記憶デバイス、およびコンピュータ・システム 図000006
  • 特許5828549-ディスク電力管理方法、コンピュータ・プログラム、データ記憶デバイス、およびコンピュータ・システム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5828549
(24)【登録日】2015年10月30日
(45)【発行日】2015年12月9日
(54)【発明の名称】ディスク電力管理方法、コンピュータ・プログラム、データ記憶デバイス、およびコンピュータ・システム
(51)【国際特許分類】
   G06F 3/06 20060101AFI20151119BHJP
【FI】
   G06F3/06
   G06F3/06 304R
【請求項の数】21
【全頁数】21
(21)【出願番号】特願2011-264177(P2011-264177)
(22)【出願日】2011年12月2日
(65)【公開番号】特開2012-123798(P2012-123798A)
(43)【公開日】2012年6月28日
【審査請求日】2014年7月7日
(31)【優先権主張番号】12/962477
(32)【優先日】2010年12月7日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100091568
【弁理士】
【氏名又は名称】市位 嘉宏
(72)【発明者】
【氏名】ジョン・ブルース・カーター
(72)【発明者】
【氏名】ウェズリー・マイケル・フェルター
(72)【発明者】
【氏名】アンソニー・ネルソン・ヒリック
【審査官】 田上 隆一
(56)【参考文献】
【文献】 特開2008−114571(JP,A)
【文献】 特開2004−110922(JP,A)
【文献】 特開2007−279952(JP,A)
【文献】 特開2007−193449(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
ハード・ディスク・ドライブによって消費される電力を管理する方法であって、
記ハード・ディスク・ドライブのリソースに関連するトークン値を保持するステップであって、周期的に前記トークン値の第1のフィールドをインクリメントするステップと、前記ハード・ディスク・ドライブの低電力移行が実行される度に、前記トークン値の第2のフィールドをインクリメントするステップとを含む、前記インクリメントするステップと、
前記ハード・ディスク・ドライブが、電力を節約するために低電力状態にされるべきであると決定するステップと、
前記ハード・ディスク・ドライブが低電力移行を実行することが許容されるかどうかを決定するために、前記トークン値を評価するステップであって、前記トークン値の前記第1のフィールドが前記トークン値の前記第2のフィールドよりも少なくとも所定の値大きければ、前記ハード・ディスク・ドライブに関して前記低電力移行が許容可能であると決定するステップを含む、前記評価するステップと、
前記ハード・ディスク・ドライブの前記低電力移行を許容すると前記トークン値が評価されれば、前記ハード・ディスク・ドライブの前記低電力移行を実行するステップと
を含む、前記方法。
【請求項2】
前記トークン値の第2のフィールドをインクリメントするステップが、
前記低電力移行が前記リソースに対して実行されるたびにインクリメントするステップ
を含む、請求項1に記載の方法。
【請求項3】
前記トークン値の前記第1のフィールドが前記リソースに対して許容可能な低電力移行の総回数を表す、請求項1又は2に記載の方法。
【請求項4】
前記トークン値の前記第2のフィールドが前記リソースに対して生じた低電力移行の総回数を表す、請求項1〜3のいずれか一項に記載の方法。
【請求項5】
前記低電力移行を実行するステップは、
前記ハード・ディスク・ドライブをスピン・ダウンするステップ
を含む、請求項1〜4のいずれか一項に記載の方法。
【請求項6】
前記低電力移行を実行するステップは、
前記ハード・ディスク・ドライブのヘッドをパーキングするステップ
を含む、請求項1〜4のいずれか一項に記載の方法。
【請求項7】
前記ハード・ディスク・ドライブの前記低電力移行を実行する前に、前記ハード・ディスク・ドライブの前記低電力移行の実行を許容すると前記トークン値が評価されるのを待つステップ
をさらに含む、請求項1〜6のいずれか一項に記載の方法。
【請求項8】
最後の電力管理移行のときからのタイマを保持するステップと、
前記ハード・ディスク・ドライブの前記低電力移行を実行する前に、前記タイマが所定の時間を超えるのを待つステップと
をさらに含む、請求項1に記載の方法。
【請求項9】
ハード・ディスク・ドライブによって消費される電力を管理するためのコンピュータ・プログラムであって、コンピュータに、請求項1〜8のいずれか一項に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
【請求項10】
データ記憶デバイスであって、
回転可能な記憶媒体と、
前記回転可能な記憶媒体をスピンさせることができるモータと、
前記モータを制御することができ、トークン記憶構成要素および制御インターフェースを含むディスク・コントローラと、
を含み、
前記ディスク・コントローラは、
前記トークン記憶構成要素に記憶されたトークンの第1のフィールドを周期的にインクリメントし、前記ハード・ディスク・ドライブの低電力移行が実行される度に、前記トークン値の第2のフィールドをインクリメントし、前記トークン値の前記第1のフィールドが前記ハード・ディスク・ドライブのリソースに対して許容可能な低電力移行の総回数を表し、前記トークン値の前記第2のフィールドが前記リソースに対して生じた低電力移行の総回数を表し、
前記トークン記憶構成要素の前記トークン値のリクエストに応答して、前記トークン記憶構成要素に記憶された前記トークン値を、前記制御インターフェースを経由して提供するよう構成されている、
前記データ記憶デバイス。
【請求項11】
前記ディスク・コントローラは、
前記データ記憶デバイスを低電力状態にするリクエストを、前記制御インターフェースを介して受け取り、
前記トークン値の前記第1のフィールドが前記トークン値の前記第2のフィールドよりも少なくとも所定の値大きければ、
前記トークン記憶構成要素に記憶された前記トークンの前記第1のフィールドをデクリメントし、
前記データ記憶デバイスを前記低電力状態にするようさらに構成されている、
請求項10に記載のデータ記憶デバイス。
【請求項12】
前記ディスク・コントローラは、
前記データ記憶デバイスを前記低電力状態にする前に、前記トークンの前記第1のフィールドが所定の値よりも大きくなるのを待つようさらに構成されている、請求項11に記載のデータ記憶デバイス。
【請求項13】
前記ディスク・コントローラは、
最後のディスク・アクセス・コマンドが前記制御インターフェースを介して受け取られたときからの経過時間を測定し、
前記経過時間が所定の経過時間を超え、前記トークン値の前記第1のフィールドが所定の値よりも大きければ、
前記トークン記憶構成要素に記憶された前記トークン値の前記第1のフィールドをデクリメントし、
前記データ記憶デバイスを低電力状態にするようさらに構成されている、
請求項10に記載のデータ記憶デバイス。
【請求項14】
コンピュータ・システムであって、
プロセッサと、
前記プロセッサに通信可能に結合されたメモリと、
前記プロセッサに通信可能に結合されたディスク・インターフェース・ユニットと、
前記ディスク・インターフェース・ユニットに通信可能に結合されたハード・ディスク・ドライブと
を含み、
前記ハード・ディスク・ドライブは、
回転可能な記憶媒体と、
前記回転可能な記憶媒体をスピンさせることができるモータと、
前記モータを制御することができるディスク・コントローラと
を含み、
前記コンピュータ・システムは、
記ハード・ディスク・ドライブのリソースに関連するトークン値を保持し、前記保持することは、周期的に前記トークン値の第1のフィールドをインクリメントすることであって、前記ハード・ディスク・ドライブの低電力移行が実行される度に、前記トークン値の第2のフィールドをインクリメントすることを含み
前記ハード・ディスク・ドライブが、電力を節約するために低電力状態にされるべきであると決定し、
前記ハード・ディスク・ドライブが低電力移行を実行することが許容されるかどうかを決定するために、前記トークン値を評価し、前記評価することは、前記トークン値の前記第1のフィールドが前記トークン値の前記第2のフィールドよりも少なくとも所定の値大きければ、前記ハード・ディスク・ドライブに関して前記低電力移行が許容可能であると決定することを含み、
前記ハード・ディスク・ドライブの前記低電力移行を許容すると前記トークン値が評価されれば、前記ハード・ディスク・ドライブの前記低電力移行を実行する
よう構成されている、前記コンピュータ・システム。
【請求項15】
前記コンピュータ・システムは、
前記ハード・ディスク・ドライブの前記低電力移行を実行する前に、前記ハード・ディスク・ドライブの前記低電力移行の実行を許容すると前記トークン値が評価されるのを待つ
ようさらに構成されている、請求項14に記載のコンピュータ・システム。
【請求項16】
前記トークン値は、前記メモリに記憶されている、請求項14又は15に記載のコンピュータ・システム。
【請求項17】
前記トークン値は、前記ディスク・コントローラに記憶されている、請求項14又は15に記載のコンピュータ・システム。
【請求項18】
前記プロセッサは、前記ハード・ディスク・ドライブを低電力状態にするためのコマンドを、前記ディスク・インターフェース・ユニットを経由して前記ディスク・コントローラへ送るよう構成されており、
前記ディスク・コントローラは、前記ハード・ディスク・ドライブの前記低電力移行を許容すると前記トークン値が評価されれば、前記コマンドに応答して前記ハード・ディスク・ドライブの前記低電力移行を実行するよう構成されている、
請求項17に記載のコンピュータ・システム。
【請求項19】
前記ディスク・コントローラは、
最後のディスク・アクセス・コマンドが受け取られたときからの経過時間を測定し、
前記経過時間が所定の経過時間を超えれば、前記ハード・ディスク・ドライブが低電力状態にされるべきであるという前記決定を実施し、
前記ハード・ディスク・ドライブの前記低電力移行を許容すると前記トークン値が評価されれば、前記ハード・ディスク・ドライブの前記低電力移行の前記実行を実施する
よう構成されている、請求項17に記載のコンピュータ・システム。
【請求項20】
前記低電力移行は、
前記ハード・ディスク・ドライブをスピン・ダウンすること
を含む、請求項14〜19のいずれか一項に記載のコンピュータ・システム。
【請求項21】
前記低電力移行は、
前記ハード・ディスク・ドライブのヘッドをパーキングすること
を含む、請求項14〜19のいずれか一項に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本主題は、ハード・ディスク・ドライブに関し、特に、ハード・ディスク・ドライブの電力を管理することに関する。
【背景技術】
【0002】
多数のコンピュータ・システムが、データの記憶にハード・ディスク・ドライブを利用する。今日の典型的なハード・ディスク・ドライブは、同軸上に配置され電気モータを利用してスピンさせられる、1つ以上のディスクを利用する。データは、各ディスクの非常に近くを「浮上」する、各ディスク用の磁気ヘッドを使用して、書き込み・読み取りが行われることもある。データは、ヘッドを使用して、ディスクの小さな領域を特定の極性に磁化することによって書き込まれ、ヘッドを使用して各領域の極性を検出することによって読み取られる。ヘッドは、ヘッドをディスクの軸から所望の距離に配置するために、典型的には、ボイス・コイル・アクチュエータなどのアクチュエータによって駆動され、これによって、各ディスク上にデータの異なる同心円を多数作成することが可能になる。モータ、アクチュエータ、および磁気ヘッドは、ディスク・コントローラによって制御されることもあり、ディスク・コントローラはさらに、ディスク・インターフェースを提供することもあり、ディスク・インターフェースは、ハード・ディスク・ドライブへのアクセスおよびその制御を行うためにコンピュータ・システムによって使用され得る。ハード・ディスク・ドライブ全体は、筐体内に入っていることもあり、筐体は、露出した電源およびディスク・インターフェース接続を備え、コンピュータ・システムの残りの部分との相互接続を可能にする。
【0003】
サーバ、デスクトップ、および携帯用コンピュータを含む多くのコンピュータ・システムは、動作コストの節約、ならびに環境への配慮の両方のために電力消費を削減するべく、省電力モードで動作できる。省電力のいくつかの側面は、電力制御インターフェース(ACPI:Advanced Configuration and Power Interface)規格で規定されているものなどの技術を使用してオペレーティング・システム内から制御されることもある。その他の側面は、個々のデバイスによって直接管理されることもある。さらに他の側面は、アプリケーションによって明示的に管理されることもある。
【0004】
ハード・ディスク・ドライブは、多くのコンピュータ・システムにおいて、特に、多数のハード・ディスク・ドライブを利用することもあるサーバなどのコンピュータ・システムの場合、電力消費の主な要因となり得る。ハード・ディスク・ドライブは、1つ以上の低電力動作状態を提供することもある。ハード・ディスク・ドライブによって消費される電力の大部分をモータが占めることもあるため、低電力状態の一部は、省電力の一方法として、ディスクをスピンさせるモータをオフにすることもある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の目的は、信頼性を意識したディスク電力管理を提供することである。
【課題を解決するための手段】
【0006】
ハード・ディスク・ドライブによって消費される電力を管理する方法の様々な実施形態は、ハード・ディスク・ドライブの低電力移行(low power transition)の実際の数と比較した、ハード・ディスク・ドライブの低電力移行の許容可能数(allowable number)に基づくトークン値(token value)を保持するステップを含む。低電力移行の許容可能数は、ハード・ディスク・ドライブの寿命中に増加する。ハード・ディスク・ドライブが、電力を節約するために低電力状態にされるべきであると決定されると、トークン値が評価されて、ハード・ディスク・ドライブが低電力移行を実行することが許容されるかどうかが決定される。ハード・ディスク・ドライブの低電力移行は、ハード・ディスク・ドライブの低電力移行を許容するとトークン値が評価されれば実行される。他の実施形態は、ハード・ディスク・ドライブによって消費される電力を管理する方法の各側面を実施するハード・ディスク・ドライブおよびシステムを含む。
【図面の簡単な説明】
【0007】
図1】電力管理の様々な実施形態に適したハード・ディスク・ドライブの様々な側面のブロック図を示す。
図2】電力管理の様々な実施形態に適したハード・ディスク・ドライブの様々な側面のブロック図を示す。
図3】ハード・ディスク・ドライブの電力管理の様々な実施形態のいくつかの側面のフローチャートである。
図4】ハード・ディスク・ドライブの電力管理の様々な実施形態のいくつかの側面のフローチャートである。
図5】ハード・ディスク・ドライブの電力管理の様々な実施形態のいくつかの側面のフローチャートである。
図6】ハード・ディスク・ドライブの電力管理の様々な実施形態に適したシステムのブロック図である。
【発明を実施するための形態】
【0008】
添付の図面は、本明細書に組み込まれてその一部を構成しており、本発明の様々な実施形態を示す。全般的な記載とともに、図面は、様々な実施形態の原理を説明するのに役立つ。
【0009】
以下の詳細な説明では、様々な実施形態の完全な理解をもたらすために特定の詳細事項が例として多数記載される。なお、当業者には当然のことながら、本開示の実施形態は、そのような詳細事項を伴わずに実践されてもよい。他の場合には、本概念の側面を不必要に曖昧にすることを回避するために、周知の方法、手順、およびコンポーネントは、比較的上位で、詳細事項を伴わずに記載されている。いくつかの記述用語および表現が、本開示の様々な実施形態を記載するのに使用されている。これらの記述用語および表現は、別の定義が本明細書で与えられていない限り、当業者が一般に合意済みである意味を伝えるよう使用されている。明確にするために、いくつかの記述用語および表現を、以下の段落に示す。
【0010】
「ヘッド・パーキング」(または「ヘッドをパーキングする」または「このヘッドをパーキングする」)は、ハード・ディスク・ドライブのヘッドを、ディスクの表面領域から離れた位置に移動させることを指す。これは、ヘッドとディスクとの物理的接触によって引き起こされ得る、回転中のディスクの損傷の可能性をなくすために行われることもある。これはさらに、ボイス・コイル・アクチュエータによって消費される電力量を削減するために行われることもある。一部の実施形態では、ヘッド(単数または複数)は、それらをディスクの表面領域から離すためにランプ(ramp)(単数または複数)に配置されることもある。
【0011】
「スピン・ダウン」は、ハード・ディスク・ドライブのディスクをスピンさせるモータをオフにするプロセスを指す。一部の実施形態では、ディスク(単数または複数)は完全にスピンを止めることもあるが、他の実施形態では、ディスクは、スピンを完全には止めないまま再びスピン・アップされることもあり、または、ディスクは完全には止められず、単にずっと遅くスピンすることもある。
【0012】
「スピン・アップ」は、ディスクをスピンさせるモータをオンにするプロセスを指す。ディスクは、実施形態および状況により、完全に止まった状態から、またはスピン・ダウンの一環としてまだ減速している段階から、またはより遅い速度から、スピン・アップされ得る。一部の実施形態では、スピン・アップ・プロセスはさらに、ディスク(単数または複数)に対するデータの書き込みまたは読み取りに備えてハード・ディスク・ドライブの準備が再び整うよう、ディスク表面の上にヘッド(単数または複数)を再配置することを含むこともある。
【0013】
ハード・ディスク・ドライブは、一部のコンピュータ・システム、特に多数のハード・ディスク・ドライブを利用するサーバの電力消費の大きな要素であることもある。ハード・ディスク・ドライブによる電力使用の1つの最大要因は、典型的には、ディスクをスピンさせるモータである。したがって、コンピュータ・システムの省電力の最も効果的な方法の1つは、ハード・ディスク・ドライブのスピン・ダウンであると考えられる。しかし、ハード・ディスク・ドライブは、モータの寿命中に一定数までしか、信頼性を損なうことなくスピン・アップ/スピン・ダウン・サイクルを処理することができない設計であることもある。コンピュータ・システムが、そのハード・ディスク・ドライブを繰り返しスピン・アップおよびスピン・ダウンすると、そのスピン・アップ/スピン・ダウン・サイクル数が、モータおよび軸受がその寿命中に処理するよう設計されているスピン・アップ/スピン・ダウン・サイクル数を超えることもあり得ると考えられる。スピン・アップ/スピン・ダウン・サイクルの最大許容可能数を超えないようスピン・アップ/スピン・ダウン・サイクル数を管理することは、コンピュータ・システムの信頼性を改善する方法となり得る。
【0014】
同様に、ハード・ディスク・ドライブは、限られた回数のヘッド・パーキングしか提供しないよう設計されていることもあり、それを超えた後は信頼性が損なわれる可能性がある。したがって、ハード・ディスク・ドライブの寿命中にヘッド・パーキング動作の最大許容可能数を超えないように、ヘッド・パーキング動作を管理することが、コンピュータ・システムの信頼性を改善するもう1つの方法となり得る。
【0015】
例として、一実施形態において、ハード・ディスク・ドライブが100,000時間(約11.5年)の動作を目標としていてもよい。このハード・ディスク・ドライブは、400,000のヘッド・パーキング動作および300,000のスピン・アップ/スピン・ダウン・サイクルという設計寿命を有してもよい。そこで、コンピュータ・システムの信頼性を高めるためには、ハード・ディスク・ドライブの様々な動作の設計寿命を超えないことが望ましい。
【0016】
以下、添付の図面に示され下記で説明する例を詳しく参照する。
【0017】
図1および図2は、電力管理の様々な実施形態に適したハード・ディスク・ドライブ100の様々な側面のブロック図を示す。どちらの図も、回転可能な1つ以上のディスク101と、ディスク101をスピンさせるモータ102とを示す。多くの実施形態では、ディスク101は、磁気材料でコーティングされ、データの磁気記憶ができるとよい。他の実施形態では、ディスクは、データの光学記憶を可能にするよう設計されていてもよい。任意の方法を使用してディスク101にデータを記憶するとよい。モータ102もしくはボイス・コイル・アクチュエータ130またはその両方を制御できるディスク・コントローラ110が提供されるとよい。ディスク・コントローラはさらに、ディスク・コントローラ110の機能性を管理するプロセッサ111を含むとよい。プロセッサ111は、プログラム命令もしくはデータまたはその両方を記憶するメモリを含むとよい。そのようなメモリは、揮発性または不揮発性としてよく、プロセッサ111に組み込まれていても、またはディスク・コントローラ110上の別個の構成要素として含まれていてもよい。プロセッサ111は、ディスク・インターフェース・ユニット119に通信可能に結合されるとよく、ディスク・インターフェース・ユニット119は、シリアルATA(SATA:Serial Advanced Technology Attachment(シリアル・アドバンスド・テクノロジ・アタッチメント))、小型コンピュータ・システム・インターフェース(SCSI:Small Computer Systems Interface)、ファイバ・チャネル、またはその他のプロトコルなどの入出力バス120上で通信するよう構成されている。
【0018】
ディスク・コントローラ110は、タイマ113も含んでもよい。タイマ113は、一定時間が経過したという通知を提供することを含むがこれに限定されない、様々な機能を提供してもよい。さらに、特定の間隔の後に、プロセッサ111に割り込む能力を提供してもよい。さらに、経過時間記憶構成要素117を更新する能力を提供してもよく、経過時間記憶構成要素117は、プロセッサ111によって読み取り可能であり、経過時間記憶構成要素117が最後にリセットされてから経過した時間を測定する。経過時間記憶構成要素117はさらに、設定時間を超えるとプロセッサ111に割り込む能力を有してもよい。
【0019】
図1は、ハード・ディスク・ドライブ100のモータ102を制御する一部の実施形態で有益となり得る構成要素を示す。プロセッサ111に通信可能に結合されているとよいモータ・コントローラ112は、リンク103を介してモータ102を制御するよう構成されている。モータ・コントローラ112は、電界効果トランジスタ(FET:field effect transistor)、バイポーラ・トランジスタ、またはその他の電子デバイスを利用して、リンク103を介して流れるモータ102への電力を制御してもよい。他の実施形態では、モータは、直接の電源接続を有してもよく、リンク103は、単にモータ・コントローラ112からモータ102へのオン/オフ指示を提供してもよい。他の実施形態では、リンク103は、望ましいスピードまたはその他の制御情報などの追加情報をモータ102に提供してもよい。第1のトークン記憶構成要素115が、ディスク・コントローラ上に提供されてもよい。なお、一部の実施形態では、第1のトークン記憶構成要素115は、ディスク・コントローラ上に位置しなくてもよく、ホスト・コンピュータのメモリ位置またはその他の適切な位置として提供されてもよい。なお、図1に示されている実施形態では、第1のトークン記憶構成要素115は、プロセッサ111によってアクセス可能であり、様々な実施形態において、プロセッサ111、またはディスク・コントローラ110のその他の構成要素のアクションにより読み取り、書き込み、インクリメント、デクリメント、または変更され得る。第1のトークン記憶構成要素115のコンテンツは、そのコンテンツをリクエストするコマンドを送ることによって、入出力バス120を経由してホスト・コンピュータまたはその他のデバイスによってアクセスされることもできる。プロセッサ111は、それに応答して、第1のトークン記憶構成要素のコンテンツを読み取り、ディスク・インターフェース・ユニット119を経由して入出力バス120へ返すことによって、そのようなコマンドに応答してもよい。
【0020】
図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へ返すことによって、そのようなコマンドに応答してもよい。
【0021】
コマンドが、コンピュータ・システムまたはその他のデバイスからディスク・コントローラ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のリソースに関係するトークン値が保持されるとよい。したがって、トークンは、特定のリソースに影響する特定の種類の低電力移行に関係してもよい。
【0022】
図3図5は、ハード・ディスク・ドライブ100の電力管理の様々な実施形態のいくつかの側面のフローチャート200、210、220である。様々な実施形態が、フローチャート200、210、220に示された方法のうちの1つ以上を実施してもよい。本方法は、同時に、または連続的に、または何らかの方法で交互に実行されてもよい。図3〜5の上述の方法は、特定のハード・ディスク・ドライブが、その寿命の間に電力管理移行の許容可能数を超えないことを保証するために使用されるとよい。一部の実施形態では、ハード・ディスク・ドライブのRAIDセットなど、グループとして管理される複数のドライブを表すのに、1つのトークンが使用されてもよい。
【0023】
図3は、ある時間間隔でトークン値をインクリメントするフローチャート200を示す。一実施形態では、タイマ113は、フローチャート200のブロック201にてタイマ・ティック(timer tick)を生成するとよい。タイマ・ティックは、ブロック202にて、1つまたは両方のトークン、またはトークン(単数または複数)のフィールドをインクリメントするために使用されるとよい。続いて、本方法は、ブロック203にて次のタイマ・ティックを待つ。
【0024】
タイマ113は、ハード・ディスク・ドライブ100が電力を供給されていて動作できるときにのみタイマ・ティックが生じるよう設定されていてもよい。一部の実施形態では、これは、ドライブが低電力状態にあるときを含んでもよいが、他の実施形態は、特定の低電力状態ではタイマ113を無効化してもよい。その他の実施形態では、タイマ113は常に実行されてもよく、ハード・ディスク・ドライブ100が電源に接続されていないときでもバッテリ電源で実行される。一部の実施形態では、トークン記憶構成要素(単数または複数)115、135は、タイマ・ティックによって直接インクリメントされてもよいが、他の実施形態では、プロセッサ111が、プロセッサ111にトークン記憶構成要素(単数または複数)115、135をインクリメントするよう促すタイマ・ティックをタイマ113から受け取ってもよい。トークン記憶構成要素115、135のうちの1つまたは両方をディスク・コントローラ110外で実装する実施形態では、トークン記憶構成要素(単数または複数)115、135を保持するために他の方法が使用されてもよい。例えば、トークン記憶構成要素(単数または複数)115、135がホスト・コンピュータ・システムのメモリにおいて実装される場合、ホスト・コンピュータもしくはオペレーティング・システム機能またはその両方のハードウェア・タイマがそのホスト・コンピュータ・システムのCPUによって使用されて、それが適切な間隔でトークン記憶構成要素(単数または複数)115、135をインクリメントできるようにしてもよい。トークン値(単数または複数)のインクリメントは、ハード・ディスク・ドライブ100が使用されている時間の増加を考慮することにより増加する、許容され得る電力管理移行数を表す。
【0025】
タイマ・ティック間隔は、予想される動作寿命、およびヘッド・パーキング動作もしくはスピン・アップ/スピン・ダウン動作またはその両方に関する設計寿命など、ハード・ディスク・ドライブ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の仕様を使用して計算することも、フィールド信頼性データに基づき選ばれることも、工学的判断に基づき定義されることも、またはその他任意の方法で決定されることもできる。一部の実施形態では、時間間隔は、様々な理由で、各インクリメントに関して正確に同じでなくてもよい。本開示の明細書および特許請求の範囲に関して、時間間隔は大きく変化することもある。長期間にわたる平均間隔が、目標間隔と基本的に一致していれば、特定の間隔の時間は重要ではない。
【0026】
図4は、ハード・ディスク・ドライブ100が低電力状態への移行をリクエストされたときに、低電力状態に入ってよいかどうかを管理する方法のフローチャート210を示す。低電力状態に入るリクエストが、ブロック211にてハード・ディスク・ドライブ100によって受け取られる。続いてブロック212にて、ハード・ディスク・ドライブ100は、リクエストされた低電力状態への移行によって影響が及ぼされる可能性のあるリソースに関係している1つ以上のトークン値を評価するとよい。一部の実施形態では、低電力状態は、ハード・ディスク・ドライブ100のヘッド(単数または複数)134をパーキングすることを必要とすることもある。他の実施形態では、低電力状態は、ハード・ディスク・ドライブ100のディスク(単数または複数)101をスピン・ダウンすることを必要とすることもある。さらに他の実施形態は、他のリソースに影響を及ぼすことも、または複数のリソースを必要とすることもある(ヘッド(単数または複数)134のパーキングと、ディスク(単数または複数)101のスピン・ダウンの両方など)。トークン値は、種々の実施形態において、いくつかの異なる方法で評価され得る。一部の実施形態では、所与のリソースに対し単一のトークン値がある。この単一のトークンを評価するために、その値が、ゼロ(0)などの所定の値に対して比較されてもよい。他の実施形態では、所定の値は負であり、電力管理移行の将来の割り当てと引き替えにいくつかの数の電力管理移行を「借りられる」ようにしてもよい。他の実施形態では、所定の値はゼロより大きくてもよい。他の実施形態では、2つのフィールドが各トークンにおいて保持され、1つのフィールドは、タイマ・ティックによってインクリメントされ、任意の特定の時間に所与のリソースに関してその寿命の間に許容される電力管理移行の総数を表し、もう一方のフィールドは、その電力管理移行が実際にそのリソースに対して実行されるたびにインクリメントされ、そのリソースに対して生じた電力管理移行の総数を表してもよい。当該実施形態では、トークンは、2つのフィールド間の差を決定して、それをゼロ(0)、または単一値トークンに関して上述したものに似た他の値などの所定の値と比較することによって評価される。一部の実施形態では、所定の値は時間とともに変化してもよい。これは、リソースの電力管理移行の実行が許容される可能性に影響を与えるために行われてもよい。一実施形態では、所定の値は、夜間は−100、日中は+100と等しくてもよい。なお、長期間にわたり無制限に増減されない限り、所定の値の変更が、累積した電力管理移行に対して大きな長期的影響を与えることはない。
【0027】
現在当該リソースに対して電力管理移行が許容可能でないことを示すとトークンが評価される場合、これはブロック212ではゼロ以下のトークンによって表され、様々な実施形態において異なるアクションがとられ得る。フローチャート210に示されている実施形態では、本方法は、ある期間ブロック213において待ち、続いてブロック212にてトークンを再び再評価して、電力管理移行の発生が許容される段階までフローチャート200の方法によってトークンがインクリメントされるまで、電力管理移行を事実上遅らせる。他の実施形態では、低電力状態に入るリクエストに対し、低電力状態に移行することなくエラー・メッセージによる応答が行われてもよく、他の実施形態では、リクエストが単に無視されてもよい。
【0028】
現在当該リソースに対して電力管理移行が許容されることを示すとトークンが評価される場合、これはブロック212ではゼロより大きいトークンによって表され、ブロック214にてトークンはデクリメントされ(または2フィールド・トークンの第2のフィールドがインクリメントされ)、ブロック215にて関連するリソースが低電力状態に入ることを許容される。次に、ブロック216にてハード・ディスク・ドライブ100は、入出力バス120を介した次のコマンドまたはアクセスを待つ。次のコマンドまたはアクセス次第で、ハード・ディスク・ドライブ100は、リソースをその完全動作状態に戻すこともある。上記のように、電力管理に利用され得、トークンに関連し得るリソースとしては、特に、ヘッド(単数または複数)134をパーキングすることおよびモータ102をオフにすることがある。
【0029】
一部の実施形態では、図3および図4に示された方法はどちらも、ハード・ディスク・ドライブ100において実施されてもよい。他の実施形態では、フローチャート200に示された方法が、ハード・ディスク・ドライブ100において実施されてもよく、フローチャート210に示された方法が、ホスト・コンピュータ上で実行されているソフトウェアを使用して実施されてもよい。他の実施形態では、どちらの方法も、入出力バス120を介してハード・ディスク・ドライブ100と通信しているホスト・コンピュータ上で実行されるソフトウェアを使用して実施されてもよい。
【0030】
図5は、非アクティブ・タイマ(inactivity timer)に基づき電力管理移行を管理する方法のフローチャート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において実施されてもよく、またはホスト・コンピュータ上で実行されているソフトウェアにおいて実施されてもよく、またはそれぞれで実行されている構成要素を用いて実施されてもよい。
【0031】
なお、図3〜5において上述されたこうした方法は、電力管理移行の最低または最高のペースを規定しないが、一部の実施形態はさらに、各電力管理移行間の最短時間を規定してもよい。例えば、ヘッド・パーキング間の最短時間、スピン・ダウン間の最短時間、スピン・アップとスピン・ダウンとの間の最短時間(スピン・アップされる最短時間)、もしくはスピン・ダウンとスピン・アップとの間の最短時間(スピン・ダウンされる最短時間)、またはそのいずれかの組み合わせなどである。記載された方法は、電力管理移行の余剰の累積を可能にし、それを後からより速いペースで使い切ることができる。例えば、スピン・ダウン・トークン値が20分毎にインクリメントされる上記のスピン・ダウンの例のみを考察すると、ドライブの使用が開始され、最初の30日間、1日12時間のほぼ一定した使用状態であり、その結果1日12時間スピン・ダウンされて使用されず、1日に1回のみスピン・ダウンが実行されると、トークン値は1日に3*24−1=71増加することになり、31日目の始まりには、2201の値となるであろう。
【0032】
31日目から、利用パターンまたは電力管理ポリシが変化し、そのドライブを使用するホスト・コンピュータが、1分間ハード・ディスク・ドライブをスピン・ダウンし、続いてドライブをスピン・アップしてそれを1分間使用することを試行し始め、トークンを2分毎にデクリメントすると、そのパターンは、以下の計算で示されるように3日間超にわたって続くことができるであろう。2201*2=4402分(73.36時間)後、トークン値は、最初の4402分の間に起きたトークン・インクリメントに基づき、73.36*3=220となり、さらに少なくとも440分の同様の動作が可能である。さらに440分、同じ1分のスピン・アップ、1分のスピン・ダウン・パターンを行った後、トークン値は22となると考えられ、さらに44分後には、トークン値は2となると考えられ、トークン値がゼロと等しくなるまで、さらに4分の当該利用パターンが可能である。したがって、30日の12時間のスピン・アップ、12時間のスピン・ダウンの後、続いてハード・ディスク・ドライブは、4890分間(3日と9.5時間)にわたって1分のスピン・アップ、1分のスピン・ダウン動作を実行することができるであろう。
【0033】
オペレーティング・システムが、ハード・ディスク・ドライブを、1分のスピン・アップ、1分のスピン・ダウン動作モードで動作させようとする試みを続ける場合、ゼロというトークン値は、ハード・ディスク・ドライブが、次のトークン・インクリメントを待ってからスピン・ダウンを行うこともあり得、次のドライブ・アクセスが生じれば、待つのを中止するということを意味する。したがって、オペレーティング・システムがまだ1分のスピン・アップ、1分のスピン・ダウンとしてハード・ディスク・ドライブを動作させようと試みていても、ハード・ディスク・ドライブは、20分毎に1度のみしかスピン・ダウン・コマンドに応答せず、続いて、再びアクセスされれば1分後にハード・ディスク・ドライブをスピン・アップし、1分のスピン・ダウン、十九(19)分のスピン・アップというパターンがもたらされる。
【0034】
図6は、様々な実施形態を実施するのに適したコンピュータ・システム600の詳細を示す。コンピュータ・システム600は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、メインフレーム・コンピュータ、またはその他、命令を実行するようプログラムまたは構成されることができる任意のハードウェアもしくは論理装置の形態で構成されていてよい。一部の実施形態では、コンピュータ・システム600は、ローカル・エリア・ネットワーク(LAN:local area network)618またはインターネット620を介して遠隔ユーザからの入力を受け付けるサーバとしての機能を果たしてもよい。他の実施形態では、コンピュータ・システム600は、LAN618上またはインターネット620上のサーバのスマート・ユーザ・インターフェース・デバイスとして機能してもよい。コンピュータ・システム600は、1つの位置に位置して相互接続されてもよく、または様々な位置に分散して、LAN618もしくは広域ネットワーク(WAN:wide area network)などの通信リンクを介して、インターネット620を介して、公衆交換電話網(PSTN:public switched telephone network)、交換網、セルラ電話網、ワイヤレス・リンク、またはその他の類似の通信リンクを介して相互接続されてもよい。その他のデバイスも、実施形態または実施形態の一部を実施または実践するのに適していることもある。そのようなデバイスには、携帯情報端末(PDA:personal digital assistant)、ワイヤレス・ハンドセット(例えばセルラ電話またはページャ)、およびその他、好適には命令またはルーチンを実行するようプログラムされることができる類似の電子デバイスが含まれる。当業者には当然のことながら、多数の異なるアーキテクチャがコンピュータ・システム600に適すると考えられるが、図6には1つのみの典型的なアーキテクチャが示されている。
【0035】
コンピュータ・システム600は、マイクロプロセッサとして、図6に示されている2つ以上の並列プロセッサとして、中央処理ユニット(CPU:central processing unit)として、またはその他の類似の制御論理もしくは回路として具現化され得るプロセッサ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:synchronous dynamic random access memory)、ダブル・データ・レート(DDR:double data rate)メモリ、またはその他の揮発性ランダム・アクセス・メモリなどのランダム・アクセス・メモリ(RAM:random access memory)デバイスの1つ以上を含むこともできる。内部メモリ608は、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM:electrically erasable/programmable read−only memory)、NANDフラッシュ・メモリ、NORフラッシュ・メモリ、プログラム可能読み取り専用メモリ(PROM:programmable read−only memory)、読み取り専用メモリ(ROM:read−only memory)、バッテリ・バックアップRAM、またはその他の不揮発性メモリなどの不揮発性メモリも含むこともできる。一部の実施形態では、コンピュータ・システム600は、3次キャッシュ・メモリ、またはこうした種類もしくは他の類似の種類の、情報を検索可能なフォーマットで記憶するよう構成された回路の組み合わせも含むこともできる。一部の実装では、内部メモリ608は、プロセッサ601の一部として構成されてもよく、またはその代わりに、プロセッサ601とは別個であるが同じプロセッサ・パッケージ640内に構成されてもよい。プロセッサ601は、コンピュータ・システム600の他のコンポーネントにアクセスするために使用されるのとは異なるバスまたは制御ラインを介して内部メモリ608にアクセスできてもよい。
【0036】
コンピュータ・システム600はさらに、1つ以上のハード・ディスク・ドライブ100(またはその他の種類の記憶メモリ)および光ディスク・ドライブ612を含んでも、またはそれにアクセスできてもよい。ハード・ディスク・ドライブ100および光ディスク・ドライブ612の光ディスクは、様々な実施形態の最終または中間結果を記憶するのに適した機械可読(コンピュータ可読とも呼ばれる)媒体の例である。光ディスク・ドライブ612は、リムーバブル記憶媒体(例えばCD−R、CD−RW、DVD、DVD−R、DVD−W、DVD−RW、HD−DVD、Blu−Ray(R)、および同様のもの)に対する読み取りもしくは書き込みまたはその両方を行うことができる様々なフォーマットのいくつかのディスク・ドライブの組み合わせを含むこともできる。コンピュータ・システム600の一部の実施形態に含まれることもできる他の形態のコンピュータ可読媒体には、フレキシブル・ディスク・ドライブ、9トラック・テープ・ドライブ、テープ・カートリッジ・ドライブ、ソリッド・ステート・ドライブ、カセット・テープ・レコーダ、紙テープ・リーダ、バブル・メモリ・デバイス、磁気ストリップ・リーダ、パンチ・カード・リーダ、またはその他任意の種類の記憶媒体またはコンピュータ使用可能記憶媒体が含まれるが、これらに限定はされない。コンピュータ・システム600は、ハード・ディスク・ドライブ100および光ディスク・ドライブ612を、コンピュータ・システム600の一体部分として(例えば、同じキャビネットもしくは筐体内にあるか、もしくは同じ電力供給を使用するか、またはその両方)含んでも、接続された周辺機器として含んでもよく、もしくは、ネットワークを介してハード・ディスク・ドライブ100および光ディスク・ドライブ612にアクセスしてもよく、またはこれらの組み合わせも可能である。ハード・ディスク・ドライブ100は、データ、コンピュータ・プログラム、またはその他の情報の記憶および検索用に構成された回転する磁気媒体を含むことが多い。ハード・ディスク・ドライブ100は、記憶媒体を回転させるため、ならびに媒体上のデータにアクセスするためにモータを制御できる、ディスク・コントローラも含むことが多い。一部の実施形態では、追加のドライブは、半導体メモリを使用するソリッド・ステート・ドライブであってもよい。他の実施形態では、他の何らかの種類のコンピュータ使用可能媒体が使用されてもよい。ハード・ディスク・ドライブ100は、必ずしもコンピュータ・システム600内に含まれる必要はない。例えば、一部の実施形態では、ハード・ディスク・ドライブ100は、データ、コンピュータ・プログラム、またはその他の情報の記憶および検索のためにコンピュータ・システム600がアクセス可能なネットワーク内のサーバ記憶領域であってもよい。場合によっては、コンピュータ・システム600は、インターネット620またはその他の通信ラインによってアクセス可能なサーバ・ストレージ・ファーム、または類似の種類のストレージ設備の記憶領域を使用してもよい。ハード・ディスク・ドライブ100は、例えば、様々な実施形態のアクティビティを実行するためのコンピュータ・アプリケーション・プログラムの全部または一部を含む、コンピュータ・システム600によって実行されるソフトウェア、命令、およびプログラムを記憶するために使用されることが多い。
【0037】
入出力バス120もしくは入出力バス611またはその両方は、ハード・ディスク・ドライブ100および光ディスク・ドライブ612のコンテンツにアクセスするために使用されてもよい。これらの入出力バス120、611は、シリアル・アドバンスド・テクノロジ・アタッチメント(SATA)などのポイント・ツー・ポイントリンクとしても、またはパラレル・アドバンスド・テクノロジ・アタッチメント(PATA:Parallel Advanced Technology Attachment)もしくは小型コンピュータ・システム・インターフェース(SCSI)などのバス型接続としても、IEEE−1394などのデイジー・チェーン・トポロジとしても、ファイバ・チャネルなどの様々なトポロジをサポートするリンクとしても、またはその他、コンピュータ可読媒体との通信に使用され得る任意のコンピュータ通信プロトコル、標準、もしくはプロプライエタリとしてもよい。メモリ/バス・コントローラは、その他の入出力バス613も提供してもよい。一部の実施形態では、入出力バス613は、周辺コンポーネント・インターフェース(PCI:peripheral component interface)、マイクロチャネル、業界標準アーキテクチャ(ISA:industry standard architecture)バス、拡張業界標準アーキテクチャ(EISA:extended industry standard architecture)バス、VERSAモジュール・ユーロカード(VME:VERSAmodule Eurocard)バス、またはその他任意の共有コンピュータ・バスなどの共有バス・アーキテクチャとしてもよい。他の実施形態では、入出力バス613は、PCI−Express、HyperTransport、またはその他任意のポイント・ツー・ポイントI/Oリンクなどのポイント・ツー・ポイント・リンクとしてもよい。様々なI/Oデバイスが、コンピュータ・システム600の一部として構成されてもよい。多数の実施形態において、コンピュータ・システム600がLAN618に接続できるようにネットワーク・インターフェース614が含まれてもよい。LAN618は、IEEE802.3イーサネット・ネットワーク、IEEE802.11Wi−Fiワイヤレス・ネットワーク、またはその他、LAN、WAN、パーソナル・エリア・ネットワーク(PAN:personal area network)、有線ネットワーク、無線周波数ネットワーク、パワーライン・ネットワーク、および光ネットワークを含むがこれらに限定されない任意の種類のコンピュータ・ネットワークとすることもできる。ネットワーク・ゲートウェイ619またはルータは、コンピュータ・システム600とは別個のコンポーネントであっても、またはコンピュータ・システム600の一体部分として含まれてもよく、LAN618に接続されて、コンピュータ・システム600が、非対称デジタル加入者線(ADSL:asymmetric digital subscriber line)、データ・オーバ・ケーブル・サービス・インターフェース仕様(DOCSIS:data over cable service interface specification)リンク、T1、またはその他のインターネット接続メカニズムなどのインターネット接続621を介してインターネット620と通信できるようにしてもよい。他の実施形態では、コンピュータ・システム600は、インターネット620への直接接続を有してもよい。一部の実施形態では、拡張スロット615が含まれて、ユーザが追加の機能性をコンピュータ・システム600に追加できるようにしてもよい。
【0038】
コンピュータ・システム600は、ユニバーサル・シリアル・バス(USB:universal serial bus)626、RS−232などのシリアル・ポート、パラレル・ポート、オーディオ入力624およびオーディオ出力622接続、ハイ・パフォーマンス・シリアル・バスIEEE−1394、もしくはその他の通信リンク、またはそのいずれかの組み合わせなどの外部通信インターフェースへのアクセスを提供するI/Oコントローラ616を含むこともできる。こうした接続はさらに、一部の実施形態では別個の回路を有してもよく、またはブリッジを経由してI/Oコントローラ616によって提供される別のコンピュータ通信リンクに接続されてもよい。さらに、プロセッサ601上で実行するアプリケーションが情報をユーザに対して表示できるよう、グラフィックス・コントローラ617が提供されてもよい。グラフィックス・コントローラ617は、アナログ・ビデオ・グラフィック・アレイ(VGA:video graphic array)接続、デジタル・ビデオ・インターフェース(DVI:digital video interface)、デジタル高解像度マルチメディア・インターフェース(HDMI:high definition multimedia interface)接続、またはその他任意のビデオ接続などの、標準またはプロプライエタリ・フォーマットを利用し得るビデオ・ポート629を経由してビデオを出力してもよい。ビデオ・ポート629は、ディスプレイ630に接続して、ビデオ情報をユーザに提示してもよい。ディスプレイ630は、液晶ディスプレイ(LCD:liquid crystal display)、陰極線管(CRT:cathode ray tube)モニタ、有機発光ダイオード(OLED:organic light emitting diode)アレイ、またはその他の種類の、情報をユーザに対して表示するのに適したディスプレイを含む、いくつかの種類のディスプレイのいずれかとしてよい。ディスプレイ630は、1つ以上の発光ダイオード(LED:light emitting diode)インジケータ・ライト、またはその他の類似のディスプレイ・デバイスを含むこともできる。典型的には、コンピュータ・システム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とともに使用されて、ユーザ音声コマンドを受け取り解釈してもよい。
【0039】
コンピュータ・システム600は、ハード・ディスク・ドライブ100の電力を管理する実施形態に適しているとよい。例えば、プロセッサ601は、マイクロプロセッサ、マイクロコントローラ、DSP、RISCプロセッサ、2つ以上のパラレル・プロセッサ、またはその他、本願明細書に記載された機能、アクティビティ、および方法を実行または制御できると当業者が認識するであろう任意の種類の処理ユニットとして具現化されてよい。様々な実施形態のうちの少なくとも1つによる処理ユニットは、ハード・ディスク・ドライブ100、光ディスク・ドライブ612、またはその他任意の種類のハード・ディスク・ドライブに準拠したもの、フレキシブル・ディスク、フラッシュ・メモリ、RAM、または当業者に知られている他のコンピュータ可読媒体などのコンピュータ可読媒体上に記憶(具現化)されたコンピュータ・ソフトウェア・プログラムを動作させることができる。
【0040】
当業者であれば当然のことであるが、様々な実施形態の側面は、システム、方法またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードまたは同様のものを含む)、または本願明細書においてすべて概して「回路」、「モジュール」、「ハード・ディスク・ドライブ」、「論理」、もしくは「システム」と呼ばれ得る、ソフトウェアおよびハードウェアの側面を兼ね備えた実施形態の形態をとってもよい。さらに、様々な実施形態の側面は、コンピュータ可読プログラム・コードが記憶された1つ以上のコンピュータ可読媒体(単数または複数)に具現化されたコンピュータ・プログラム製品の形態をとることもできる。
【0041】
1つ以上のコンピュータ可読媒体(単数または複数)の任意の組み合わせが利用され得る。コンピュータ可読媒体は、典型的にはコンピュータ可読記憶媒体である。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線、もしくは半導体システム、装置、もしくはデバイス、またはその他、当業者に既知である同様の記憶デバイス、または前述のものの任意の適切な組み合わせとして具現化されてよい。そのようなコンピュータ可読記憶媒体の例には、ポータブル・コンピュータ・ディスケット、ハード・ディスク・ドライブ、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、光学式記憶デバイス、磁気記憶デバイスまたは前述のものの任意の適切な組み合わせが含まれる。この文書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムを含むこと、または記憶することができる任意の有形の媒体であればよい。
【0042】
様々な実施形態の側面の動作を実行するコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++または同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの従来の手続きプログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれていてよい。様々な実装に従って、プログラム・コードは、スタンド・アロン・ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で実行されること、部分的にユーザのコンピュータ上で実行されること、または部分的にユーザのコンピュータ上で、かつ部分的に遠隔コンピュータ上で実行されること、または完全に遠隔コンピュータもしくはサーバ上で実行されることもできる。後者のシナリオでは、ローカル・エリア・ネットワーク(LAN)、もしくは広域ネットワーク(WAN)を含む任意の種類のネットワークを経由して遠隔コンピュータがユーザのコンピュータに接続されてもよく、または、外部コンピュータに接続されてもよい(例えば、インターネット・サービス・プロバイダを使用しインターネットを経由して)。
【0043】
様々な実施形態の側面は、本願明細書に開示された様々な実施形態による方法、装置、システム、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図、またはその両方を参照して記載されている。当然のことながら、フローチャート図もしくはブロック図またはその両方の様々なブロック、およびフローチャート図もしくはブロック図またはその両方の複数ブロックの組み合わせは、コンピュータ・プログラム命令により実施可能である。当該コンピュータ・プログラム命令が、機械を生じるよう、汎用コンピュータ、専用コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサに提供されて、この命令が、コンピュータまたはその他のプログラム可能データ処理装置のプロセッサを用いて実行されて、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実施する手段を作り出すようにすることもできる。
【0044】
さらに、特定の形で機能するようコンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスに指示することができる当該コンピュータ・プログラム命令は、コンピュータ可読媒体に記憶されて、コンピュータ可読媒体に記憶されたこの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実施する命令を含む製品を生じるようにすることもできる。さらに、コンピュータ・プログラム命令は、コンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置、またはその他のデバイス上で一連の動作ステップが実行されるようにしてコンピュータに実施されるプロセスを生じさせ、コンピュータまたはその他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実施するためのプロセスを提供するようにすることもできる。
【0045】
各図面のフローチャートもしくはブロック図またはその両方は、様々な実施形態のシステム、方法およびコンピュータ・プログラム製品の考えられる実装のアーキテクチャ、機能性および動作を説明するのに役立つ。この関連で、フローチャートまたはブロック図内の各ブロックは、指定の論理機能(単数または複数)を実施する1つ以上の実行可能命令を含むモジュール、セグメント、またはコードの一部を表現することもできる。なお、さらに、いくつかの代わりの実装では、ブロック内に示されている機能が、図面に示されているのとは異なる順序で生じてもよい。例えば、関連する機能性次第で、連続して示されている2つのブロックが実際には事実上同時に実行されてもよく、または、各ブロックが逆順で実行されることがあってもよい。なお、さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方の複数ブロックの組み合わせは、指定の機能もしくは動作を実行する専用ハードウェア・ベース・システム、または専用ハードウェアおよびコンピュータ命令の組み合わせにより実装することができる。
【0046】
本願明細書で使用される専門用語は、特定の実施形態を説明するためのものでしかなく、本発明の限定となることは目的としていない。本願明細書で使用される、単数形「a」、「an」および「the」は、文脈によりそうでないことが明確に示されていない限り、複数形も含むものとする。さらに、当然のことながら、本明細書で使用される、「含む(comprises)、「含んでいる(comprising)」、「含む(includes)」、もしくは「含んでいる(including)」、またはそのいずれかの組み合わせの用語は、記載された機能、整数、ステップ、動作、構成要素、もしくはコンポーネント、またはそのいずれかの組み合わせの存在を指定するが、1つ以上の他の機能、整数、ステップ、動作、構成要素、コンポーネント、もしくはそのグループ、またはそのいずれかの組み合わせの存在または追加を除外するものではない。本願明細書で使用される「結合」という用語は、直接および間接的な接続を含む。さらに、第1および第2のデバイスが結合されている場合、それらの間にアクティブなデバイスを含む介在するデバイスがあってもよい。
【0047】
以下の特許請求の範囲のミーンズまたはステップ・プラス・ファンクション構成要素すべての対応する構造、材料、動作、および等価物は、明確に請求されている他の請求される構成要素とともに機能を実行する任意の構造、材料、または動作を含むものとする。様々な実施形態の記載は、例証および説明のために示されたものであるが、包括的であることも、本発明を開示された形態に限定することも目的としていない。当業者には、本発明の範囲および主旨から逸脱することのない、多数の変更および変形が明らかであろう。本願明細書に含まれた様々な実施形態は、本発明の原理および実際の応用を最もよく説明して、当業者が、意図される特定の用途に適する様々な変更を用いた様々な実施形態に関して、本発明を理解できるように選ばれ、記載された。
【符号の説明】
【0048】
100 ハード・ディスク・ドライブ
101 ディスク
102 モータ
103 リンク
110 ディスク・コントローラ
111 プロセッサ
112 モータ・コントローラ
113 タイマ
115 第1のトークン記憶構成要素
117 経過時間記憶構成要素
119 ディスク・インターフェース・ユニット
120 入出力バス
図1
図2
図3
図4
図5
図6