(57)【特許請求の範囲】
【請求項１】
１つ以上の処理ユニットにデータ処理システムの性能管理する方法を実行させる実行可能命令を有する非一時的機械可読媒体であって、
前記方法は、
前記データ処理システムに対する過去の入出力情報を収集することと、
前記データ処理システムの現在の入出力動作の入出力情報を受信することと、
前記現在の入出力動作に応じて、前記過去の入出力情報及び前記現在の入出力動作の前記入出力情報に基づいて、前記現在の入出力動作が前記データ処理システムの入出力サブシステムにより処理されている間に、前記データ処理システムの集積回路の処理コアに対する低減電力状態を決定することと、
を含む、非一時的機械可読媒体。
【請求項２】
前記方法は、
前記決定された低減電力状態を前記処理コアに適用することを、更に含む、請求項１に記載の非一時的機械可読媒体。
【請求項３】
前記現在の入出力動作の前記入出力情報は、前記入出力動作の方向を含み、前記入出力動作の前記方向は読み取り及び書き込みのうちの一つである、請求項１に記載の非一時的機械可読媒体。
【請求項４】
前記入出力動作の前記方向が書き込みであることに応じて、前記現在の入出力情報は、前記低減電力状態の前記決定することにおいて無視される、請求項３に記載の非一時的機械可読媒体。
【請求項５】
前記入出力動作の前記方向が読み取りであることに応じて、前記低減電力状態の前記決定することは、高電力消費レベル及び短い待ち時間の電力状態の選択を含む、請求項３に記載の非一時的機械可読媒体。
【請求項６】
前記現在の入出力動作の前記入出力情報は、前記入出力動作の規模を含み、前記入出力動作の前記規模は、前記入出力動作に関わるデータの量を含む、請求項１に記載の非一時的機械可読媒体。
【請求項７】
前記現在の入出力動作は第一の入出力動作であり、前記低減電力状態は第一の電力状態であり、前記方法は、第二の入出力動作の入出力情報を受信することと、前記過去の入出力情報及び前記第二の入出力動作の前記入出力情報に基づいて、第二の電力状態を決定することと、を更に含み、前記第一の入出力動作の前記規模は前記第二の入出力動作の規模より小さく、前記第一の電力状態は、前記第二の電力状態より高い電力消費及びより短い待ち時間を有するように決定される、請求項６に記載の非一時的機械可読媒体。
【請求項８】
前記現在の入出力動作の前記入出力情報は、前記現在の入出力動作のサービス品質を含む、請求項１に記載の非一時的機械可読媒体。
【請求項９】
前記現在の入出力動作は第一の入出力動作であり、前記低減電力状態は第一の電力状態であり、前記方法は、第二の入出力動作の入出力情報を受信することと、前記過去の入出力情報及び前記第二の入出力動作の前記入出力情報に基づいて、第二の電力状態を決定することと、を更に含み、前記第一の入出力動作の前記サービス品質は前記第二の入出力動作のサービス品質より高く、前記第一の電力状態は、前記第二の電力状態より高い電力消費及びより短い待ち時間を有するように決定される、請求項８に記載の非一時的機械可読媒体。
【請求項１０】
コンピュータにより実行される、デバイスの性能を管理する方法であって、前記方法は、
前記デバイスに対する過去の入出力情報を収集することと、
前記デバイスの現在の入出力動作の入出力情報を受信することと、
前記現在の入出力動作に応じて、前記過去の入出力情報及び前記現在の入出力動作の前記入出力情報に基づいて、前記現在の入出力動作が前記デバイスの入出力サブシステムにより処理されている間に、前記デバイスの集積回路の処理コアに対する低減電力状態を決定することと、
を含む、方法。
【請求項１１】
前記方法は、前記処理コアに対する前記決定された低減電力状態に入ることを更に含む、請求項１０に記載の方法。
【請求項１２】
前記現在の入出力動作の前記入出力情報は、前記現在の入出力動作の規模を含み、前記現在の入出力動作の前記規模は、前記現在の入出力動作に関わるデータの量を含む、請求項１０に記載の方法。
【請求項１３】
前記現在の入出力動作の前記入出力情報は、前記現在の入出力動作のサービス品質を含む、請求項１０に記載の方法。
【請求項１４】
前記現在の入出力動作の前記入出力情報は、前記現在の入出力動作のメディアタイプを含む、請求項１０に記載の方法。
【請求項１５】
前記低減電力状態の前記決定することは、前記現在の入出力動作の前記メディアタイプがソリッドステートドライブであることに応じて、より高い電力消費及びより短い待ち時間の電力状態を選択することと、前記現在の入出力動作の前記メディアタイプがハードドライブであることに応じて、より低い電力消費及びより長い待ち時間の電力状態を選択することと、を含む、請求項１４に記載の方法。
【請求項１６】
管理を実行するデバイスであって、
集積回路の処理コアと、
バスを通して前記処理コアに連結されているメモリと、
前記処理コアに、過去の入出力情報を収集させ、入出力動作の現在の情報を受け取らせ、前記現在の入出力動作に応じて、前記過去の入出力情報及び前記現在の情報に基づいて、前記現在の入出力動作が前記デバイスの入出力サブシステムにより処理されている間に、前記処理コアに対する低減電力状態を決定させる、前記処理コアによって前記メモリから実行されるプロセスと、
を備えるデバイス。
【請求項１７】
前記過去の入出力情報は、標本期間における複数の入出力動作を含む、請求項１６に記載のデバイス。
【請求項１８】
前記低減電力状態の前記決定することは、入出力動作数が多いことに応じて、より高い電力消費及びより短い待ち時間の電力状態を選択することと、前記入出力動作数が少ないことに応じて、より低い電力消費及びより長い待ち時間の電力状態を選択することと、を含む、請求項１７に記載のデバイス。
【請求項１９】
前記過去の入出力情報は、標本期間における入出力動作の到着間隔を含む、請求項１６に記載のデバイス。
【請求項２０】
前記低減電力状態の前記決定することは、入出力動作の前記到着間隔が短いことに応じて、より高い電力消費及びより短い待ち時間の電力状態を選択することと、入出力動作の前記到着間隔が長いことに応じて、より低い電力消費及びより長い待ち時間の電力状態を選択することと、を含む、請求項１９に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連事項）
本出願は、２０１５年１月２６日に出願された「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  ＳｏＣ  Ｉｄｌｅ  Ｐｏｗｅｒ  Ｓｔａｔｅ  Ｃｏｎｔｒｏｌ  Ｂａｓｅｄ  ｏｎ  Ｉ／Ｏ  Ｏｐｅｒａｔｉｏｎ  Ｃｈａｒａｃｔｅｒｉｚａｔｉｏｎ」と題する米国仮出願６２／１０８，０３３の先の出願日の利益を有する。
【０００２】
本発明は、全般的にオペレーティングシステムに関し、特に性能管理用のデバイスに関する。
【背景技術】
【０００３】
オペレーティングシステムは、デバイスのハードウェア資源を管理するソフトウェアの集合であり、コンピュータプログラムのための共通のサービスを提供する。オペレーティングシステムは、デバイスのシステムソフトウェアの非常に重要な構成要素である。システムソフトウェアは、デバイスの性能を管理し、統合する。システムソフトウェアは、オペレーティングシステム、ユーティリティソフトウェア、デバイスドライバ及び他のソフトウェアツールを含む。オペレーティングシステムは、デバイスの電力消費及び性能を管理する。
【０００４】
プロセッサが非アクティブな時、デバイスの電力管理は、プロセッサをゲーティングして低電力状態にする。低電力状態は、プロセッサに対するアイドル状態であっても良い。コンピュータシステム内の現在のプロセッサでは、携帯型及び組込型システムの、総エネルギー消費の低減、冷却要求の低減、バッテリ寿命の延長のため、しばしば積極的な電力管理技術が採用される。その結果、プロセッサは、より頻繁に低電力状態に入り、そのような低電力状態により長い時間留まる。そのような低電力状態への遷移は、通常、そのような状態への頻繁な出入りの遷移による純効率利得の低減と共に、追加の待ち時間を伴う。プロセッサは、複数の型のアイドル電力状態を支援することができ、それぞれの型のアイドル電力状態は、異なる遷移待ち時間、遷移エネルギー及び達成可能な電力レベルに関わる。
【０００５】
入出力は、コンピュータと外部との間の通信である。入力はコンピュータが受信する信号又はデータであり、出力は、コンピュータから送信する信号又はデータである。例えば、ディスクドライブからデータを読み込むことにより、コンピュータのＣＰＵやメモリから、又は、ＣＰＵやメモリへの情報のあらゆる転送は、入出力と考えられる。
【発明の概要】
【０００６】
入出力情報に基づいて、電力状態を制御することによりシステム性能を管理するデバイスの、方法と機器について説明する。一実施形態では、入出力情報は、入出力動作に関係する現在と過去の入出力情報である。一実施形態では、現在の入出力情報は、現在の入出力動作の方向（例えば、読み取り又は書き込み）を含む。一実施形態では、現在の入出力情報は、現在の入出力動作の規模（例えば、関わるデータ量）を含む。一実施形態では、現在の入出力情報は、現在の入出力動作のサービス品質を含む。一実施形態では、現在の入出力情報は、現在の入出力動作のメディアタイプ（例えば、ソリッドステートドライブ又はハードドライブ）を含む。一実施形態の過去の入出力情報は、標本期間における入出力動作の数を含む。一実施形態では、過去の入出力情報は、標本期間における入出力動作の到着間隔を含む。一実施形態では、過去の入出力情報は、標本期間における読み取り動作の総規模及び標本期間における書き込み動作の総規模を含む。
【０００７】
一実施形態では、デバイスは過去の入出力情報を収集する。デバイスは、そのデバイスによって実行されるべき、現在の入出力動作の入出力情報を更に受信する。システム効率を改善し、かつシステム性能の許容可能レベルを維持しながら、電力消費を低減するため、デバイスは、過去及び現在の入出力情報に基づいて、電力状態を決定する。デバイスは決定された電力状態を更に適用する。一実施形態では、電力状態はデバイス全体に適用される。別の実施形態では、電力状態はデバイスのプロセッサに適用される。更に別の実施形態では、電力状態は、デバイスのシステムオンチップに適用される。
【０００８】
他の方法と機器についても説明する。非一時的機械可読性媒体についても説明し、非一時的機械可読性媒体は、データ処理システムによって実行された時にデータ処理システムがここで説明する１つ以上の方法を実行する、実行可能なコンピュータプログラム命令を含む。
【図面の簡単な説明】
【０００９】
本開示は、例として示されるものであり、添付図面の図中のものに限定されるものではなくなく、添付図面の図中において、同様の参照符号は同様の要素を示す。
【００１０】
【図１】入出力情報に基づいて電力状態を制御することによりシステム性能を管理するデバイスの一実施形態のブロック図である。
【００１１】
【図２】電力管理器の一実施形態の詳細ブロック図を示す。
【００１２】
【図３Ａ】入出力情報に基づいて電力状態を制御することによりシステム性能を管理するプロセスの一実施形態のフローチャートを示す。
【００１３】
【図３Ｂ】入出力情報に基づいて電力状態を制御することによりシステム性能を管理する別のプロセスの一実施形態のフローチャートを示す。
【００１４】
【図４】一実施形態において使用される現在の入出力情報の一例を示す。
【００１５】
【図５】一実施形態において使用される過去の入出力情報の一例を示す。
【００１６】
【図６】入出力情報に基づいて補正される電力状態の一実施形態の一例を示す。
【００１７】
【図７】本開示の一実施形態と共に使用することができるデータ処理システムの一例を示す。
【００１８】
【図８】本開示の一実施形態と共に使用することができる別のデータ処理システムの例を示す。
【発明を実施するための形態】
【００１９】
入出力情報に基づいて、電力状態を制御することによりシステム性能を管理するデバイスの、方法と機器について説明する。以下の説明では、本開示の実施形態の完全な説明を提供するために、多くの具体的な詳細が記載される。しかしながら、当業者が、本開示の実施形態をこれらの具体的な詳細を伴わずとも実践できることは、明らかであろう。他の例では、本説明の理解を分かりにくくすることがないように、周知の構成要素、構造及び技術は、詳細には示されていない。
【００２０】
本明細書中での「一実施形態」又は「実施形態」への言及は、その実施形態に関連して説明される特定の機構、構造、又は特性を、本開示の少なくとも１つの実施形態に含めることができることを意味する。本明細書の様々な箇所に出てくる、語句「一実施形態では」は、必ずしも全てが同じ実施形態に言及しているものではない。
【００２１】
以下の説明及び請求項において、「連結している」及び「接続されている」と共にこれらの派生語が使用される場合がある。これらの言葉は、互いに同義語として意図されていないことを理解すべきである。「連結している」は、相互に物理的又は電気的に直接接触しているかもしれず、していないかもしれない２つ以上の要素が、互いに協働し、又は相互作用することを示すために使用される。「接続されている」は、相互に連結している２つ以上の要素間の通信の確立を示すために使用される。
【００２２】
以下の図で示されるプロセスは、ハードウェア（例えば、回路機構、専用論理など）、ソフトウェア（汎用デバイス、又は専用機械上で実行されるものなど）、又は両方の組み合わせを含む、処理論理によって実行される。それらのプロセスは、幾つかの逐次動作の観点から以下で説明されるが、説明される動作の一部は、異なる順序で実行することができる点を理解するべきである。更には、一部の動作は、逐次的にではなく、並列して実行することができる。
【００２３】
「サーバ」、「クライアント」、「デバイス」という用語は、サーバ、クライアント及び／又はデバイスに特定のフォームファクタよりも、一般的にデータ処理システムに言及することを意図している。
【００２４】
時々、プロセッサが入出力動作（例えば、読み取り又は書き込みコマンドをＮＡＮＤ型記憶装置に発行する）を実行した後、他の停止中のワークがない場合、プロセッサ及び／又はシステムオンチップ（ＳｏＣ）が、低電力状態に入ることができる。一実施形態では、この低電力状態はアイドル状態である。この実施形態では、電力管理モジュールが、プロセッサ、関連するキャッシュ及びメモリコントローラ、並びにランダムアクセスメモリ（ＲＡＭ）に低電力状態に入らせる。選択された電力状態に依存して、プロセッサキャッシュを排除することができ、ＲＡＭはセルフリフレッシュを行うことができる。それからほどなくして、ＮＡＮＤ型記憶装置が入出力要求を完了し、データにアクセスするために、メモリコントローラ及びＲＡＭが再アクティブ化される。プロセッサに入出力の完了を通知し、プロセッサ及び関連する構成要素を低電力状態からフル電力状態へ戻して、プロセッサが入出力動作によって戻ったデータで動作するようにするために、割り込みが発生する。
【００２５】
入出力要求が完了した後、プロセッサ及び関連構成要素が低電力状態から抜け出すのには時間がかかるので、入出力サブシステムからデータを受信するには待ち時間がある。よって、入出力動作が完了するには、時間の量が増えるであろう。場合によっては、アプリケーションの起動中や記憶装置上に記憶されたメモリにデバイスがページングしている時に、ユーザはデータがＲＡＭに入ることを待っており、このようなことは受け入れられないかもしれない。従って、入出力要求の発行後に、プロセッサ及び関連構成要素を頻繁に低電力状態に入らせることは、コンピュータシステムの性能に悪影響を及ぼす。
【００２６】
更に、プロセッサ及び関連構成要素をすぐに正常な電力状態に戻すためだけに、それらを低電力状態に入らせることにより、異なる電力状態間で遷移を実行するのには相当量のエネルギーが浪費され、それには、プロセッサ及び関連構成要素を低電力状態に入らせるためにパワーゲーティングして、更に、低電力状態からすぐに抜け出させるために再アクティブ化することも含む。よって、コンピュータシステムの効率にも悪影響を及ぼす。
【００２７】
システム効率を改善し、かつシステム性能の合理的なレベルを維持しながら電力消費を低減するための、システム性能を管理するデバイスの方法と機器が記載されている。一実施形態では、プロセッサが不揮発性記憶装置に入出力要求を発行した後、プロセッサが低電力状態に入り、その低電力状態では、プロセッサ及び関連構成要素への電力が、デバイスの電力消費を低減するためにパワーゲーティングされる。不揮発性記憶装置は入出力トランザクションを完了し、入出力トランザクションに関わるデータを更に処理するように、プロセッサに通知する。プロセッサ及び関連構成要素は、データを処理するために再アクティブ化される。このことは、入出力サブシステムからのデータ受信の待ち時間につながり、低電力状態への出入りで不要なエネルギーコストの追加となる。待ち時間とは、プロセッサが意図された機能を実行する、低電力状態からより高い電力状態に遷移する時間の量である。一実施形態では、システム効率を改善し、かつシステム性能の許容可能レベルを維持しながら、電力消費を低減するために、デバイスは、過去の入出力情報及び現在の入出力情報に基づいて、電力状態を決定する。そこで、デバイスは、決定された電力状態に入る。一実施形態では、入出力動作がインフライトである時、デバイスに決定された電力状態が適用される。別の実施形態では、入出力動作の結果を受信した後、入出力動作がインフライトである時、デバイスに決定された電力状態が適用される。
【００２８】
図１は、入出力情報に基づいて電力状態を制御することによりシステム性能を管理するデバイス１００の一実施形態のブロック図である。一実施形態では、デバイス１００は、デスクトップコンピュータ、サーバ、スマートホン、ラップトップ、携帯情報端末、音楽演奏装置、ゲーム機、又は、複数のプロセスを実行可能な他のデバイスであってもよい。図１において、デバイス１００は、集積回路１１０、オペレーティングシステム１０２、揮発性メモリ１３０及び不揮発性メモリ１３５を含む。一実施形態において、デバイス１００は、複数のプロセッサ及び／又は複数の処理コアを含むこともできる。
【００２９】
集積回路１１０は、プロセッサ１２０及びメモリコントローラ１２５を含む。一実施形態では、集積回路１１０は、システムオンチップ（ＳｏＣ）であってもよい。プロセッサ１２０は、デジタルデータを入力として受け付け、プロセッサのメモリ内に記憶された命令に従ってデータを処理し、出力結果を供給する。プロセッサ１２０は、プロセッサ１２０に取り付けられたブロック記憶装置（例えば、不揮発性メモリ１３５）を制御するブロック記憶ドライバ１２２を含む。メモリコントローラ１２５は、揮発性メモリ１３０と行き来するデータの流れを管理する。
【００３０】
オペレーティングシステム１０２は、デバイスのハードウェア資源の管理に使われるソフトウェアの集合であり、アプリケーションプログラムのなどの他の実行中のコンピュータプログラムのための共通のサービスを提供する。オペレーティングシステム１０２は、デバイス１００の電力消費を管理する電力管理器１０５を含む。電力管理器１０５は、デバイス１００全体に対する電力状態又はデバイスの各構成要素に対する電力状態を決定することができる。一実施形態では、電力管理器１０５により、電力状態が集積回路１１０に適用される。別の実施形態では、電力管理器１０５により、電力状態がプロセッサ１２０に適用される。
【００３１】
電力状態は、デバイス又はデバイスの１つ以上の構成要素の電力消費レベルを規定する。例えば、一実施形態では、電力状態はフル電力状態（すなわち、最高電力状態）又は電力オフ状態（すなわち、最低電力状態）があり得る。フル電力状態の下では、いかなる構成要素も省電力モードにはない状態で、デバイス又はデバイスの構成要素の群は、最大電力となっている。電力オフ状態では、デバイス又は構成要素の電源が切られている。別の実施形態では、フル電力状態と電力オフ状態の間の異なる電力消費レベルを規定するいくつかの低電力状態があり得る。デバイス又は構成要素の群に関し、より多くの構成要素が省電力モードになると、電力状態がより低くなる。
【００３２】
省電力モードにある構成要素に関し、異なる電力低減技術により、異なる電力状態を規定できる。例えば、パワーゲーティングは、電力消費を低減するために回路ブロックへの電流を遮断する電力低減技術である。クロックゲーティングは、回路のある個所へのクロックパルスをディスエーブルして、回路のそれらの箇所のトランジスタが状態を切り替えないようにすることにより節電する電力低減技術である。状態の切り替えによる電力消費が避けられたとしても、依然として、漏洩電流はクロックゲーティングで発生する。よって、パワーゲーティングはクロックゲーティングより多くの節電を行い、パワーゲーティングされた構成要素は、クロックゲーティングされた構成要素より低電力状態にある。しかしながら、プロセッサキャッシュのコンテンツなどの、パワーゲーティングは状態を維持することができず、パワーゲート出口において復元する必要があるかもしれない。
【００３３】
不揮発性メモリ１３５は、ハードディスクやＮＡＮＤスタックなどの、永久的に情報を記憶するブロック記憶装置である。揮発性メモリ１３０は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）などの、記憶された情報を維持するのに電力を必要とするコンピュータメモリである。
【００３４】
一実施形態では、ブロック記憶ドライバ１２２は、不揮発性メモリ１３５内のデータにアクセスするために、（入出力要求を発行することにより（、読み取り／書き込みコマンド１２３を発行する。読み取りコマンドの場合、不揮発性メモリ１３５が要求されたデータ１３６をメモリコントローラ１２５に送信し、メモリコントローラ１２５は、さらなる処理のためにデータ１３６を揮発性メモリ１３０に渡す。
【００３５】
一実施形態では、読み取り／書き込みコマンド１２３を送信している間、ブロック記憶ドライバ１２２も、現在の入出力要求に関係する入出力情報を電力管理器１０５に送信する。一実施形態では、電力管理器１０５は、効率を改善[MLJ1]し、かつシステム性能の許容可能レベルを維持しながら、電力消費を低減するために、現在の入出力情報１０６及び記憶された過去の入出力情報（不図示）に基づいて、低電力状態を決定する。例えば、一実施形態では、プロセッサ１２０及びその関係する構成要素を、プロセッサ１２０がパワーゲーティングされる（例えば、電力オフ状態）超低電力状態に落とす代りに、電力管理器１０５が、現在の入出力情報１０６及び記憶された過去の入出力情報（不図示）に基づいて、プロセッサ１２０がクロックゲーティングされる低電力状態を決定し、より高レベルの電力消費を有する。より高い電力状態を決定し、そのより高い電力状態をプロセッサ１２０に適用することにより、ある入出力動作中に超低電力状態に入りそこからすぐに抜け出してしまうことによって生じる、待ち時間及び効率への悪影響を避けることができる。
【００３６】
一実施形態では、現在の入出力情報１０６は、現在の入出力動作の、方向、規模、サービス品質及びメディアタイプを含むことができる。一実施形態では、電力管理器１０５により、決定された電力状態がデバイス１００全体に適用される。別の実施形態では、電力管理器１０５により、決定された電力状態が集積回路１１０に適用される。更に別の実施形態では、電力管理器１０５によって、決定された電力状態が、プロセッサ１２０及びメモリコントローラ１２５、揮発性メモリ１３０などの、プロセッサに関係するいくつかの構成要素に適用される。
【００３７】
一実施形態では、集積回路１１０は、複数のプロセッサ及び／又は複数の処理コアを含む。その実施形態では、電力管理器１０５は、決定された電力状態を集積回路１１０に適用することにより、集積回路１１０の全体のアイドル電力状態を制御する。集積回路１１０は、一つのコアがアクティブであっても、達成可能なアイドル状態に抑えられている。例えば、一実施形態では、電力管理器１０５が、決定された電力状態をそのコアに適用することによって、入出力サブシステムから完了割り込みを受信するコアのアイドル電力状態を制御する。一実施形態では、入出力サブシステムからの完了割り込みは、実行の複雑化を避けるために、指定されたコアによって受信されるように制限されている。
【００３８】
図２は、電力管理器１０５の一実施形態の詳細なブロック図である。一実施形態では、上記図１に示されているように、電力管理器１０５は、オペレーティングシステムの一部である。別の実施形態では、電力管理器１０５は、デバイスの電力消費を管理する独立したハードウェア／ソフトウェアモジュールである。図２において、電力管理器１０５は、積算器２１０及び過去の入出力データ記憶装置[MLJ2]２２０を含む。
【００３９】
一実施形態では、積算器２１０は、現在の入出力情報１０６をブロック記憶ドライバ（不図示）から受信し、現在の入出力情報１０６を過去の入出力データ記憶装置２２０に記憶する。一実施形態では、現在の入出力情報１０６は、現在の入出力動作の、方向、規模、サービス品質及びメディアタイプを含むことができる。積算器２１０は、過去の入出力データ２２５を過去の入出力データ記憶装置[MLJ3]２２０から受信することもできる。一実施形態では、過去の入出力データ２２５は、標本期間における入出力動作の数、入出力動作の到着間隔、読み取り動作の総規模及び書き込み動作の総規模を含むことができる。一実施形態では、積算器２１０は、現在の入出力情報１０６及び過去の入出力データ２２５に基づいて、電力状態２３０を決定する。
【００４０】
一実施形態では、積算器２１０によって出力される電力状態２３０は、低電力状態である。一実施形態では、決定された電力状態２３０が、デバイス全体に適用される。別の実施形態では、決定された電力状態２３０が、プロセッサ及びプロセッサに密に関連する構成要素（例えば、メモリコントローラ及びＤＲＡＭ）に適用される。
【００４１】
過去の入出力データ記憶装置２２０は、現在の入出力情報１０６を受信し、現在の入出力情報１０６を、過去の入出力データの一部として記憶する。一実施形態では、各入出力動作に対する情報は、別々の項目として過去の入出力データ記憶装置２２０に記憶される。別の実施形態では、入出力動作に対する情報は、統合されて過去の入出力データ記憶装置２２０に記憶される。過去の入出力データ記憶装置２２０は、過去の入出力データ２２５を積算器２１０に供給する。
【００４２】
一実施形態では、積算器２１０は、効率を改善[MLJ4]し、かつシステム性能の許容可能レベルを維持しながら、電力消費を低減するために、現在の入出力情報１０６及び過去の入出力データ２２５に基づいて、適切な低電力状態２３０を決定する。例えば、一実施形態では、プロセッサを、プロセッサの回路ブロックがパワーゲーティングされる超低電力状態に落とす代りに、積算器２１０が、現在の入出力情報１０６及び過去の入出力データ２２５に基づいて、プロセッサのほとんどの回路ブロックがクロックゲーティングされる電力状態２３０を決定し、それにより、エネルギー消費はより多くてもより待ち時間の少ない遷移をもたらす。より高い電力状態を選択し、そのより高い電力状態をプロセッサに適用することにより、多くのプロセッサがパワーゲーティングされている時のように、すべての状態を再初期化及び再ロードするのではなく、入出力動作が完了したことを示す割り込みが到着した時、クロックゲーティングされたプロセッサが、クロックゲーティングを無効とする信号を受信のみである。その結果、ある入出力動作中に超低電力状態に入りそこからすぐに抜け出してしまうことによって生じる、待ち時間及び悪影響を避けることができる。
【００４３】
例えば、ページングは、コンピュータがデータを、メインメモリでの使用のために、同一規模ブロック（すなわちページ）で、補助メモリに記憶し、補助メモリから取り出すメモリ管理方式である。ページングストーム中、短時間で多くのページング要求が発行され、非常に多くの入出力動作が実行される。例えば、一実施形態では、ページングストームは、アプリケーションプログラムの起動中に発生する。電力状態制御が入出力情報に基づいていない時、ページングストーム中に入出力要求が発行される毎に、プロセッサは深い低電力状態に落ちる可能性がある（例えば、電力消費が非常に低レベルであり、再アクティブ化のための長い待ち時間を有するであろう、パワーゲーティングされた状態）。一旦、入出力動作が完了すると、プロセッサが深い低電力状態から抜け出し、入出力サブシステムから受信したデータを更に処理するためには、長い時間及び非常に多くの電力を要するであろう。このことは、システムの性能及び効率に悪影響を与えるであろう。なぜなら、ユーザはアプリケーションの起動をより長時間待たなければならないであろうし、深い低電力状態への頻繁の出入りでは、電力が浪費される。
【００４４】
入出力に基づいた電力状態制御では、ページングストーム中に入出力要求が発行される毎に、プロセッサの電力状態は、入出力動作及び過去の入出力データの特性を考慮して決定される。アプリケーションの起動によって起きるページングストームの場合、各入出力動作は高Ｑｏｓを有する。なぜなら、ユーザは、アプリケーションプログラムが起動されるのを待っているからである。ページングストームに関係する過去の入出力情報によれば、入出力動作数は多く、入出力動作の到着間隔は短い、ことが示されているであろう。その結果、システム効率を改善し、かつ高レベルのシステム性能を維持しながら、少ない電力を節約するために、浅い低電力状態（例えば、比較的高電力消費レベル及び非常に短い待ち時間のアイドルプロセッサ電力状態）が、ページングストームに関わる入出力動作にわたって選択されるであろう。異なる電力状態間での遷移中、ユーザが知覚する、起動されるアプリケーションの待機は短くなるであろうし、より少ないエネルギーが消費されている。
【００４５】
電力管理器１０５は、本開示の一実施形態について上述したものである。当業者であれば、他の実施形態では、このモジュールを違う方法で実施できることが分かるであろう。例えば、上記の一実施形態では、或るモジュールはソフトウェアモジュールとして実施される。しかしながら、別の実施形態では、いくつかの又は全てのモジュールは、専用特定用途ハードウェア（例えば、ＡＳＩＣチップやコンポーネント）又は汎用のチップ（例えば、マイクロポロプロセッサやＦＰＧＡ）でありうる、ハードウェアによって実施されるかもしれない。
【００４６】
図３は、入出力情報に基づいて電力状態を制御することによってシステム性能を管理するプロセス３００の一実施形態のフローチャートを示す。一実施形態では、上記図１及び図２に記載された電力管理器１０５は、システム効率を改善し、かつシステム性能の許容可能レベルを維持しながら、電力消費を低減するために、プロセス３００を実行して適切な低電力状態を決定する。図３Ａでは、プロセス３００は、デバイスに対する過去の入出力情報を収集、統合する（ブロック３０５）ことから始まる。一実施形態では、図２に記載されているように、積算器２１０が現在の入出力情報を収集し、その現在の入出力情報を過去の入出力情報に統合する。一実施形態では、過去の入出力情報は、標本期間における入出力動作の数、入出力動作の到着間隔、読み取り動作の総規模及び書き込み動作の総規模を含むことができる。
【００４７】
ブロック３１０において、プロセス３００は、現在の入出力動作に関する入出力情報を受信する。一実施形態では、現在の入出力情報は、現在の入出力動作の、方向、規模、サービス品質及びメディアタイプを含むことができる。
【００４８】
一実施形態では、現在の入出力情報は、実行されるべき入出力動作に関する情報である。別の実施形態では、現在の入出力情報は、予測情報である。例えば、一実施形態では、オペレーティングシステムは、ファイルに対する順次アクセスを察知することができる。そのシステムは、入出力動作に備えるものの、実際には入出力動作に対する入出力要求を発行せず、この入出力動作は予測であることを示すフラグを設定する、選択をすることができる。
【００４９】
ブロック３１５において、プロセス３００は、過去の入出力情報及び現在の入出力情報に基づいて、デバイスに対する電力状態を決定する。一実施形態では、ブロック３１５で決定された電力状態は、システム効率を改善し、かつシステム性能の合理的なレベルを維持しながら電力消費を低減する低電力状態である。例えば、一実施形態では、プロセッサを、プロセッサがパワーゲーティングされる超低電力状態に落とす代りに、プロセス３００が、現在の入出力情報及び過去の入出力情報に基づいて、プロセッサがクロックゲーティングされる電力状態を決定し、それにより、より高レベルの電力消費を有する。より高い電力状態を決定し、そのより高い電力状態をプロセッサに適用することにより、ある入出力動作中に超低電力状態に入りそこからすぐに抜け出してしまうことによって生じる、待ち時間の及び効率への悪影響を避けることができる。
【００５０】
一実施形態では、現在の入出力の予測フラグが立つと、より長い時間にわたる電力状態の決定を計画できる。例えば、一実施形態では、プロセス３００が、一連の入出力動作の総待ち時間に上限を定め、それに従って電力状態を決定する。一実施形態では、現在の入出力の予測フラグが立つと、プロセス３００は、電力管理の積極性を低減することができる。
【００５１】
プロセス３００により、（ブロック３２０において、）決定された電力状態が適用される。一実施形態では、電力状態はデバイス全体に適用される。別の実施形態では、電力状態は、デバイスのプロセッサ及びメモリコントローラ及びＲＡＭなどのプロセッサに関係する構成要素に、適用される。
【００５２】
当業者であれば、プロセス３００は、システム性能の管理に使用される動作の概念的表示であることが、理解できるであろう。プロセス３００の特定の動作は、図示及び説明された厳密な順序で実行されなくともよい。特定の動作は、連続した一連の動作としては実行されず、異なる特定の動作は、異なる実施形態で実行できる。更に、プロセス３００は、いくつかのサブプロセスを使用して、又はより大きなマクロプロセスの一部として、実行できるであろう。
【００５３】
入出力に基づいた電力状態制御のプロセスは、電力管理器の観点から図３Ａに記載されている。図３Ｂは、入出力情報に基づいて電力状態を制御することによりシステム性能を管理する、別のプロセス３５０の一実施形態のフローチャートを示している。図３Ｂには、入出力動作の観点から、入出力に基づいた電力状態制御のプロセスが記載されている。一実施形態では、図１に記載されたデバイス１００がプロセス３５０を実行する。図３Ｂでは、プロセス３５０は、（ブロック３５５において）過去の入出力データを収集することにより始まる。一実施形態では、過去の入出力データは、標本期間における入出力動作数、入出力動作の到着間隔、読み取り動作の総規模及び書き込み動作の総規模を含むことができる。
【００５４】
ブロック３６０において、プロセス３５０は、実行されるべき入出力動作を決定する。一実施形態では、入出力動作は、読み取り動作又は書き込み動作である。ブロック３６５において、プロセス３５０は、入出力動作の特性を決定する。一実施形態では、入出力動作の特性は、方向、規模、サービス品質及びメディアタイプを含むことができる。
【００５５】
一実施形態では、現在の入出力情報は、実行されるべき入出力動作に関する情報である。別の実施形態では、現在の入出力情報は、予測情報である。例えば、一実施形態では、オペレーティングシステムは、ファイルに対する順次アクセスを察知することができる。そのシステムは、入出力動作に備えるものの、実際には入出力動作に対する入出力要求を発行せず、この入出力動作は予測であることを示すフラグを設定する、選択をすることができる。
【００５６】
ブロック３７０において、プロセス３５０は、過去の入出力データ及び入出力動作の特性に基づいて、低電力状態を決定する。一実施形態では、ブロック３７０で決定された低電力状態は、システム効率を改善し、かつシステム性能の合理的なレベルを維持しながら電力消費を低減する低電力状態である。例えば、一実施形態では、プロセッサを、プロセッサがパワーゲーティングされる超低電力状態に落とす代りに、プロセス３５０が、現在の入出力動作の特性及び過去の入出力データに基づいて、プロセッサがクロックゲーティングされる低電力状態を決定し、それにより、より高レベルの電力消費を有する。より高い電力状態を決定し、そのより高い電力状態をプロセッサに適用することにより、ある入出力動作中に超低電力状態に入りそこからすぐに抜け出してしまうことによって生じる、待ち時間及び効率への悪影響を避けることができる。
【００５７】
一実施形態では、現在の入出力の予測フラグが立つと、より長い時間にわたる電力状態の決定を計画できる。例えば、一実施形態では、プロセス３５０が、一連の入出力動作の総待ち時間に上限を定め、それに従って電力状態を決定する。一実施形態では、現在の入出力の予測フラグが立つと、プロセス３５０は、電力管理の積極性を低減することができる。例えば、一実施形態では、パワーゲーティングされた状態の代わりにクロックゲーティングされた状態を使用することにより、より積極的ではない電力管理が実施される。
【００５８】
ブロック３７５において、プロセス３５０は、入出力動作に対する入出力命令を発行する。プロセス３５０は、（ブロック３８０）において、決定された低電力状態に入る。一実施形態では、低電力状態が、デバイス全体に適用される。別の実施形態では、低電力状態が、プロセッサ及びメモリコントローラ及びＤＲＡＭなどのプロセッサに深く関係する関連要素に適用される。
【００５９】
ブロック３８５において、プロセス３５０は、入出力動作が完了した通知を受信する。一実施形態では、通知は、入出力処理を実行した記憶装置から発信される。ブロック３９０において、プロセッサは、入出力動作の結果を処理するために低電力状態から抜け出す。
【００６０】
当業者であれば、プロセス３５０は、システム性能の管理に使用される操作の概念的表示であることが、理解できるであろう。プロセス３５０の特定の動作は、図示及び説明された厳密な順序で実行されない可能性がある。例えば、ブロック３７０及びブロック３７５の動作は、並行して実行したり、逆順序で実行したりできる。特定の動作は、連続した一連の動作としては実行されず、異なる特定の動作は、異なる実施形態で実行できる。更に、プロセス３５０は、いくつかのサブプロセスを使用して、又はより大きなマクロプロセスの一部として、実施できるであろう。
【００６１】
図４は、一実施形態において使用される現在の入出力情報の一例を示す。図に示されたように、現在の入出力情報１０６には、入出力方向４０５、入出力規模４１０、入出力Ｑｏｓ４１５及び入出力メディアタイプ４２０を含む情報項目が含まれるが、情報項目はこれらに限定されるものではない。一実施形態では、現在の入出力動作に対する情報項目のうちの１つ以上は、システム効率を改善し、かつシステム性能の許容可能レベルを維持しながら、電力消費を低減するために、適切な低電力状態を決定するのに使用することができる。
【００６２】
入出力方向４０５は、入出力動作の方向（例えば、読み取り又は書き込み）を表す。一実施形態では、入出力動作が書き込み動作である場合、低電力状態の決定につき、現在の入出力情報１０６は無視される。なぜなら、書き込み動作はブロック記憶においてバッファリングされ、プロセッサは、書き込み動作が完了しても作動しないからである。その実施形態では、書き込み動作に関する情報が電力状態の決定に影響を与えないのに対し、読み取り動作に関する情報は、電力状態の決定に影響を与えることができる。一実施形態では、読み取り動作に関する情報が受信されている間、より浅い低電力状態（すなわち、入出力情報を考慮しない電力状態より、高い電力消費レベルの電力状態及び短い待ち時間の電力状態）が選択されるであろう。
【００６３】
当業者であれば、高電力消費レベルは全面稼働の電力レベルより小さく、低電力消費レベルは完全な電力オフより大きいことを、理解できるであろう。当業者であれば、「高」は「無電力」に対する比較で使われ、「低」は「フル電力」に対する比較で使われていることも、理解できるであろう。
【００６４】
入出力規模４１０は、入出力動作の規模（例えば、関わるデータの量）を表す。一実施形態では、大規模の入出力動作には、低電力状態を決定するのに、小規模の入出力動作に比べてより少ない重みづけが与えられる。なぜなら、大規模な入出力動作は、完了するのにより長い時間を要し、直後の電力状態に与える影響はより少ないからである。それに対し、小規模の入出力動作は早く完了し、直後の電力状態により多くの影響を与える。一実施形態では、大規模な入出力動作では、より深い低電力状態（すなわち、より低い電力消費レベル及びより長い待ち時間）が選択される一方、小規模な入出力動作では、より浅い低電力状態（すなわち、より高い電力消費レベル及びより短い待ち時間）が選択されるであろう。
【００６５】
Ｑｏｓ４１５は、その入出力動作が重要であるか否かを表示する。一実施形態では、低Ｑｏｓが付された入出力動作は、電力状態の決定について、ほとんど影響を与えないか、全く影響を与えない。その実施形態では、高Ｑｏｓが付された入出力動作（例えば、ページング操作）には、電力状態の決定について、より多くの影響を与える。例えば、一実施形態では、低Ｑｏｓの入出力動作には、電力状態の決定に関し、完全に除去されるか、より低く重みづけられる。例えば、一実施形態では、中品質サービスの入出力動作には、重要な入出力動作（例えばページングからの）のちょうど半分に重みづけされるかもしれない。例えば、一実施形態では、中Ｑｏｓの入出力動作では、より深い低電力状態（例えば、高Ｑｏｓの入出力動作に対する電力状態の電力消費レベルの約半分の電力状態）が選択される一方、高Ｑｏｓの入出力処理では、より浅い低電力状態（すなわち、より高い電力消費レベル及びより短い待ち時間）が選択されるであろう。
【００６６】
入出力メディアタイプ４２０は、入出力動作が実行されるメディアの型（例えば、ソリッドステートドライブ又はハードドライブ）を表す。一実施形態では、ハードドライブで実行される入出力動作は、ソリッドステートドライブで実行される入出力動作より、電力状態の決定に与える影響が少ない。なぜなら、ハードドライブの入出力動作に対する待ち時間がより長く、よって、入出力動作の完了が直後の電力状態に与える影響が、より少ないからである。一実施形態では、ハードドライブの入出力動作では、より深い低電力状態（すなわち、より低い電力消費レベル及びより長い待ち時間）が選択される一方、ソリッドステートドライブの入出力動作では、より浅い低電力状態（すなわち、より高い電力消費レベル及びより短い待ち時間）が選択されるであろう。
【００６７】
低電力状態の決定に対する、現在の入出力情報１０６の各情報項目の効果は、上記で個々に議論されている。しかしながら、その技術分野の当業者であれば、低電力状態の決定を更に改善するために、２つ以上の情報項目を結合することができることを、理解するであろう。一実施形態では、低電力状態は、現在の入出力情報１０６の２つ以上の情報項目の累積効果に基づいて、決定される。
【００６８】
図５は、一実施形態において使用される過去の入出力情報の一例を示す。図で示されているように、過去の入出力データ２２５には、入出力動作数５０５、入出力動作の到着間隔５１０、読み取り動作の総規模５１５及び書き込み動作の総規模５２０を含む情報項目が含まれるが、情報項目はこれらに限定されるものではない。一実施形態では、過去の入出力データに対する情報項目のうちの１つ以上は、システム効率を改善し、かつシステム性能の合理的レベルを維持しながら電力消費を低減するために、適切な低電力状態の決定に使用することができる。
【００６９】
入出力動作数５０５は、標本期間における入出力動作の数である。一実施形態では、入出力動作数が少ない時は、より深い低電力状態（すなわち、より低い電力消費レベル及びより長い待ち時間[MLJ5]）が選択される一方、入出力動作数が多い時は、より浅い低電力状態（すなわち、より高い電力消費レベル及びより短い待ち時間）が選択されるであろう。一実施形態では、入出力動作数が多いほど、低電力状態がより浅くなるであろう。
【００７０】
一実施形態では、入出力動作の到着間隔は、標本期間における入出力動作の到着間隔の平均を表す。一実施形態では、入出力動作の到着間隔が長い場合、より深い低電力状態（例えば、より低い電力消費レベル及びより長い待ち時間）が選択される一方、入出力動作の到着間隔が短い場合、より浅い低電力状態（すなわち、より高い電力消費レベル及び短い待ち時間）が選択されるであろう。一実施形態では、入出力動作の到着間隔がより短いほど、低電力状態がより浅くなるであろう。
【００７１】
読み取り動作５１５の総規模は、標本期間における読み取り動作の規模合計である。一実施形態では、読み取り動作の総規模が大きい場合、より深い低電力状態（例えば、より低い電力消費レベル及びより長い待ち時間）が選択される一方、読み取り動作の総規模が小さい場合、より浅い低電力状態（すなわち、より高い電力消費レベル及び短い待ち時間）が選択されるであろう。一実施形態では、読み取り動作の総規模が小さいほど、低電力状態がより浅いであろう。
【００７２】
書き込み動作の総規模５２０は、標本期間における書き込み動作の規模合計である。一実施形態では、書き込み動作の総規模が大きい場合、より深い低電力状態（例えば、より低い電力消費レベル及びより長い待ち時間）が選択される一方、書き込み動作の総規模が小さい場合、より浅い低電力状態（すなわち、より高い電力消費レベル及びより短い待ち時間）が選択されるであろう。一実施形態では、書き込み動作の総規模が小さいほど、低電力状態がより浅いであろう。
【００７３】
低電力状態の決定に対する、過去の入出力データ２２５の各情報項目の効果は、上記で個々に議論されている。しかしながら、その技術分野の当業者であれば、低電力状態の決定を更に改善するために、２つ以上の情報項目を結合することができることを、理解するであろう。一実施形態では、低電力状態は、過去の入出力データ２２５の２つ以上の情報項目の累積効果に基づいて、決定される。
【００７４】
図６は、入出力情報に基づいて補正される電力状態の一実施形態の一例を示す。図６において、チャート６００のＸ軸上に、いくつかの異なる時点（６１０Ａから６１０Ｆ）を特定する。この期間中、３つの入出力動作が発生した。第一の入出力動作は、６１０Ａの時に発行され、６１０Ｂの時に完了している。第二の入出力動作は、６１０Ｃの時に発行され、６１０Ｄの時に完了している。第三の入出力動作は、６１０Ｅの時に発行され、６１０Ｆの時に完了している。
【００７５】
図６において、チャート６００のＹ軸上に、いくつかの異なる電力状態（６２０Ａから６２０Ｅ）も特定する。待ち時間とは、プロセッサが意図された機能を実行する、低電力状態からより高い電力状態に遷移する時間の量である。電力状態がチャート６００の原点に近いほど、電力状態は、より低い電力消費レベル及びより長い待ち時間を有する。電力状態がチャート６００の原点から遠いほど、電力状態は、より高い電力消費レベル及びより短い待ち時間を有する。例えば、電力状態６２０Ｄは、電力状態６２０Ａから６２０Ｃより、高い電力消費レベル及び短い待ち時間を有する。
【００７６】
一実施形態では、第一、第二及び第三の入出力動作は、同じ特性のものである。例えば、同じ規模で同じＱｏｓ等である。その実施形態では、電力状態は、第一の入出力動作が発行される前に、６２０Ａにて設定される。６１０Ａの時点では、過去の入出力情報は全くない。一実施形態では、過去の入出力情報が全くないことは、過去の入出力情報が全く記憶されていないことを意味する。別の実施形態では、過去の入出力情報が全くないことは、より古い過去の入出力情報は失効して分析に使われないことを意味する。更に、別の実施形態では、過去の入出力情報が全くないことは、期間内入出力動作が全くないことを意味する。６１０Ａの時点で、第一の入出力動作を発行するために、電力状態は６２０Ｃ[MLJ6]に上昇する。６１０Ｂの時点で、第一の入出力動作は完了し、電力状態は６２０Ｂに下落する。
【００７７】
６１０Ｃの時点で、第一の入出力動作の発生及び場合によっては、それ以前の他の入出力動作の発生に伴って使用できる過去の入出力情報が存在する。使用できる過去の入出力情報が存在するので、電力状態が６１０Ｃの時点で６２０Ｄまで上昇する。それは、第二の入出力動作を発行するために、６１０Ａの時点における時よりも電力消費の大きな上昇である。６１０Ｄの時点では、第二の入出力動作が完了し、電力状態は６２０Ｃまで下落し、それは、第一の入出力動作が完了した後の電力状態６２０Ｂより、高い電力消費レベル及び短い待ち時間を有する。
【００７８】
６１０Ｅの時点では、第一と第二の入出力動作の発生及び場合によっては、それ以前の他の入出力動作の発生に伴って、より多くの使用できる過去の入出力情報が存在する。より多くの使用できる過去の入出力情報が存在するので、電力状態が６１０Ｅの時点で６２０Ｅまで上昇する。それは、第三の入出力動作を発行するために、６１０Ｃの時点における時よりも電力消費の更に大きな上昇である。６１０Ｆの時点では、第三の入出力動作が完了し、電力状態は６２０Ｄまで下落し、それは、第二の入出力動作が完了した後の電力状態６２０Ｃより、更に高い電力消費レベル及び短い待ち時間を有する。
【００７９】
図６は、益々過去の入出力情報が使用できる時、電力状態が飛躍的に上昇することを示す。高電力消費レベル及び短い待ち時間を有する電力状態が、システム効率を改善しながら電力消費を低減し、かつシステム性能の合理的レベルを保証するために、入出力動作を処理するように維持される。
【００８０】
図７は、本開示の一実施形態と共に使用できるデータ処理システム７００の一例を示す。例えば、処理システム７００は、図１に示されたデバイス１００で実行できる。図７は、デバイスの様々な構成要素を示すが、それらの詳細は本開示と密接に関連するものではないため、それらの構成要素を相互接続する、いずれかの特定のアーキテクチャ又は方式を表すことを意図するものではない点を理解されたい。より少ない構成要素又はおそらくより多い構成要素を有する、ネットワークコンピュータ、他のデータ処理システム及び他の家庭用電子機器が、本開示と共に使用できることも、理解できるであろう。
【００８１】
図７に示されているように、データ処理システム型のデバイス７００は、マイクロプロセッサ（単数又は複数）７０５、ＲＯＭ（読み取り専用メモリ）７０７、揮発性ＲＡＭ７０９及び不揮発性メモリ７１１に連結されているバス７０３を含む。マイクロプロセッサ７０５は、キャッシュメモリ７０４に連結されている。キャッシュメモリ７０４は、揮発性メモリでも不揮発性メモリでもよい。マイクロプロセッサ７０５は、メモリ７０７，７０９，７１１及び７０４から命令を取り出し、上記の動作を実行するためにそれらの命令を実行する。バス７０３は、様々な構成要素を相互接続し、これら構成要素７０５、７０７，７０９，及び７１１をディスプレイコントローラ及びディスプレイ装置７１３並びに入出力装置７１５などの周辺機器に相互接続する。入出力装置７１５は、マウス、キーボード、モデム、ネットワークインターフェース、プリンタ及びこの技術分野で周知の他のデバイスであってもよい。
【００８２】
通常、入出力装置７１５は、入出力制御装置７１０を通してそのシステムに連結されている。揮発性ＲＡＭ（ランダムアクセスメモリ）７０９は、通常、メモリ中のデータをリフレッシュ又は維持するために継続して電力を必要とするダイナミックＲＡＭ（ＤＲＡＭ）として実装される。
【００８３】
大容量記憶装置７１１は、通常、電力がシステムから除去された後でもデータ（例えば、大容量データ）を維持する、磁気ハードドライブ、磁気光ドライブ、光ドライブ、ＤＶＤ  ＲＡＭ、フラッシュメモリ又は他の型のメモリシステムである。通常、大容量記憶装置７１１はＲＡＭであってもよいが、必要ではない。図７は、大容量記憶装置７１１が、データ処理システムの他の構成要素に直接連結されているローカルデバイスであることを示しているが、本開示は、モデム、イーサネットインターフェース又は無線ネットワークなどのネットワークインターフェースを通して、データ処理システムに連結されているネットワーク記憶装置などのシステムからリモートにある、不揮発性メモリを利用することもできることも、理解できるであろう。バス７０３は、その技術分野で周知の、様々なブリッジ、コントローラ及び／又はアダプタを通して相互に接続される１つ以上のバスを含んでもよい。
【００８４】
図８は、本開示の一実施形態と共に使用できる別のデータ処理システム８００の一例を示す。例えば、処理システム８００は、図１に示されたデバイス１００として実行できる。図８に示されたデータ処理システム８００は、１つ以上のマイクロプロセッサ又はチップ集積回路上のシステムであり得る処理システム８１１を含み、更に、処理システム８００は、その処理システムによって実行されるデータ及びプログラムを記憶するためのメモリ８０１も含む。システム８００は、例えばスピーカ及びマイクロフォンを通してバックミュージックを演奏したり電話機能を提供したりするための、マイクロフォン及びスピーカを含むオーディオ入出力サブシステム８０５も含む。
【００８５】
ディスプレイコントローラ及びディスプレイ装置８０９は、ユーザに視覚ユーザーインターフェースを提供する。このデジタルインターフェースは、ＯＳＸオペレーティングシステムソフトウェア実行時のマッキントッシュコンピュータ又はｉＯＳオペレーティングシステムを実行時のＡｐｐｌｅ  ｉＰｈｏｎｅ（登録商標）上で表示されるものなどに似たグラフィックユーザーインターフェースを含むことができる。システム８００は、図８のシステム８００のなどの別のデータ処理システムと通信するための１つ以上の無線送受信機８０３も含む。無線送受信機は、ＷＬＡＮ送受信機、赤外線送受信機、ブルートゥース送受信機及び／又は無線携帯電話型送受信機であってもよい。実施形態によっては、図示されない追加の構成要素がシステム８００の一部であってもよく、実施形態によっては、図８に示されているよりも少ない構成要素がデータ処理システム内で使用されてもよいこともまた理解できるであろう。システム８００は、図１０中のシステムなどの別のデータ処理システムと通信するための１つ以上の通信ポート８１７を更に含む。通信ポートは、ＵＳＢポート、Ｆｉｒｅｗｉｒｅ（商標）ポート、ブルートゥースインターフェース等でもよい。
【００８６】
データ処理システム８００は、ユーザがシステムに入力することを許可する１つ以上の入力装置８１３も含む。これらの入力装置は、キーパッド、キーボード、タッチパネル又はマルチタッチパネルでもよい。データ処理システム８００は、ドックコネクタであり得る選択的入出力装置８１５も含む。更には、不図示の１つ以上のバスを使用して、当該技術分野において周知であるように、様々な構成要素を相互接続することができる点が、理解されるであろう。図８に示されたデータ処理システムは、携帯端末、携帯情報端末（ＰＤＡ）、ＰＤＡの様な機能が付いた携帯電話、携帯電話を含む携帯端末、ｉＰｏｄ（登録商標）などのメディアプレイヤー、それらのデバイスの態様や機能を結合したデバイス（１つのデバイス、組込機器又は他の家電製品における、ＰＤＡ及び携帯電話と結合されたメディアプレイヤーなど）、であってもよい。他の実施形態では、データ処理システム８００は、ネットワークコンピュータ、別のデバイス内の組込処理装置、又は、図８に示されたものより構成要素が少ないか又はおそらく多い、他の型のデータ処理システムであってもよい。
【００８７】
少なくとも、本開示のある実施形態では、メディアを表すためのメディア処理システムを含む、携帯音楽機器及び／又はビデオメディアプレイヤーなどのデジタルメディアプレイヤー、又は、メディアを記憶する記憶装置の一部でもよく、アンテナシステム及びメディア処理システムと連結された無線周波送受信機（例えば、携帯電話用無線周波送受信機）を更に含んでもよい。ある実施形態では、リモートの記憶装置に記憶されたメディアは、無線周波送受信機を通してメディアプレイヤーに転送され得る。例えば、メディアは、音楽若しくは他のオーディオ、静止画、又は動画のうちの１つ以上であってもよい。
【００８８】
携帯メディアプレイヤーは、Ａｐｐｌｅ，Ｉｎｃ（カリフォルニア州Ｃｕｐｅｒｔｉｎｏ）のｉＰｏｄ（登録商標）又はｉＰｏｄ  Ｎａｎｏ（登録商標）上のクリックホイール入力装置、タッチスクリーン入力装置、プッシュボタン装置、可動ポインティング入力装置又は他の入力装置などのメディア選択装置を含んでもよい。メディア選択装置は、記憶装置及び／又はリモートの記憶装置に記憶されたメディアを選択するために、使うことができる。少なくともある実施形態では、携帯メディアプレイヤーは、入力装置を通して選択され、スピーカ、イヤホン（単数又は複数）、ディスプレイ装置上又は、ディスプレイ装置上及びスピーカ若しくはイヤホン（単数又は複数）に表された、メディアのタイトル及び他のインジケータを表示するためのメディア処理システムに連結されたディスプレイ装置を含んでもよい。携帯メディアプレイヤーの例は、米国特許第７，３４５，６７１号及び同第７，６２７，３４３号に記載されており、これら両者を参照することにより本明細書に援用される。
【００８９】
上述されたものの諸部分は、専用論理回路などの論理回路で、又はプログラムコード命令を実行する、マイクロコントローラ若しくは他の形態のプロセッシングコアで実行することができる。それゆえ、上記の考察によって教示される処理は、機械実行可能命令などのプログラムコードで実行することができ、このプログラムコードは、これらの命令を実行するマシンに特定の機能を実行させる。この文脈では、「マシン」は、中間形態（又は「抽象」）命令を、プロセッサ固有命令に変換するマシン（例えば、「仮想マシン」（例えば、Ｊａｖａ仮想マシン）、インタープリタ、共通言語ランタイム、高級言語仮想マシンなどの、抽象的実行環境）、並びに／又は、汎用プロセッサ及び／若しくは専用プロセッサの命令を実行するように設計された、半導体チップ上に配置される電子回路（例えば、トランジスタで実装される「論理回路」）とすることができる。上記の考察によって教示されるプロセスはまた、プログラムコードを実行することなく、それらのプロセス（又は処理の一部分）を実行するよう設計された、電子回路によって（機械の代わりに、又は機械と組み合わせて）実行することもできる。
【００９０】
本開示はまた、本明細書に記載された動作を実行するための機器にも関する。この機器は、必要な目的のために特別に構築されてもよく、又はデバイスに記憶されたコンピュータプログラムにより選択的にアクティブ化されるか若しくは再構成される汎用デバイスを含むものでもよい。そのようなコンピュータプログラムは、以下に限定するものではないが、フロッピーディスク、光ディスク、ＣＤ−ＲＯＭ、及び磁気光ディスクを含めた任意のタイプのディスク、読み出し専用メモリ（ＲＯＭ）、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気若しくは光カード、又は電子命令の記憶に好適な任意のタイプの媒体などの、それぞれがデバイスバスに結合される、コンピュータ可読記憶媒体内に記憶することができる。
【００９１】
機械読取可能な媒体は、機械（例えばコンピュータ）によって読取可能な型で情報を記憶又は転送するための任意の方式を含む。例えば、機械読取可能な媒体は、読み出し専用メモリ（ＲＯＭ）ランダムアクセスメモリ（ＲＡＭ）磁気ディスク記憶媒体光記憶媒体フラッシュメモリデバイス等を含む。
【００９２】
製品を使用して、プログラムコードを記憶することができる。プログラムコードを記憶する製品は、１つ以上のメモリ（例えば、１つ以上のフラッシュメモリ、ランダムアクセスメモリ（スタティック、ダイナミック、又はその他））、光ディスク、ＣＤ−ＲＯＭ、ＤＶＤ  ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気若しくは光カード、又は電子命令の記憶に好適な他のタイプの機械可読媒体として具体化することができるが、これらに限定されない。プログラムコードはまた、伝搬媒体中に具体化されるデータ信号によって（例えば、通信リンク（例えば、ネットワーク接続）を介して）、リモートコンピュータ（例えば、サーバ）から要求側コンピュータ（例えば、クライアント）にダウンロードすることもできる。
【００９３】
上記の詳細な説明は、デバイスメモリ内部のデータビット上での操作の、アルゴリズム及びシンボリックな表現の観点から表されている。これらのアルゴリズムの説明及び表現は、データ処理技術の当業者によって、その作業内容の本質を他の当業者に最も効果的に伝えるために使用されるツールである。アルゴリズムとは、本明細書では、及び概して、所望の結果をもたらす、自己矛盾のない動作のシーケンスであると考えられる。それらの動作は、物理量の物理的操作を必要とするものである。通常は、必須ではないが、これらの量は、記憶、転送、組み合わせ、比較、及び他の方式での操作が可能な、電気信号若しくは磁気信号の形態を取る。主として一般的な使用の理由から、これらの信号を、ビット、値、要素、記号、文字、用語、数字などと称することが、好都合な場合があることが判明している。
【００９４】
しかしながら、これらの用語、及び同様の用語の全ては、適切な物理量と関連付けられるものであり、これらの量に適用される便宜的な標識にすぎない点に留意するべきである。特に具体的な記述がない限り、上記の考察から明らかであるように、説明全体を通して、「受信する」又は「選択する」又は「決定する」又は「収集する」又は「適用する」又は「入る」などの用語を利用する考察は、コンピュータシステムのレジスタ若しくはメモリ内の物理（電子）量として表されるデータを操作して、デバイスのメモリ又はレジスタ、あるいは他のそのような情報記憶装置、伝送装置、又はディスプレイ装置内の物理量として同様に表される他のデータへと変換する、デバイス又は同様の電子コンピューティング装置の、動作並びにプロセスを指すことが理解されよう。
【００９５】
本明細書で提示されるプロセス及び表示は、いずれかの特定のデバイス若しくは他の機器に、固有に関連するものではない。様々な汎用システムを、本明細書での教示に従ったプログラムで使用することができ、又は、説明される動作を実行するための、より特殊化された装置を構築することが、好都合であると判明する場合もある。様々なこれらのシステムに関して必要とされる構造は、以下の説明から明らかであろう。更に、本開示は、いずれかの特定のプログラミング言語に関連して記しているものではない。様々なプログラミング言語を使用して、本明細書に記されている本開示の教示を実施することが可能であることが、理解されるであろう。
【００９６】
上記の考察は、本開示のいくつかの例示的実施形態を記載したに過ぎない。当業者であれば、上記の考察、添付図面及び特許請求の範囲から、本開示の趣旨と範囲から離れることのない様々な変更が可能であることが、すぐに分かるであろう。
【図１】
0006535749.tif 000002
【図２】
0006535749.tif 000003
【図３Ａ】
0006535749.tif 000004
【図３Ｂ】
0006535749.tif 000005
【図４】
0006535749.tif 000006
【図５】
0006535749.tif 000007
【図６】
0006535749.tif 000008
【図７】
0006535749.tif 000009
【図８】
0006535749.tif 000010