(58)【調査した分野】(Int.Cl.,DB名)
前記ロジックは、前記複数のアプリケーションの一以上のアプリケーションのどれが前記プロセッサを前記低消費電力状態からウェイクアップすることを可能にするか優先順序を決める、請求項1に記載の装置。
前記複数のアプリケーションは、プラットフォームが低消費電力状態にされたときにアクティブでない一以上のplatform-power-awareアプリケーションまたは前記プラットフォームが低消費電力状態にされたときにアクティブである一以上のplatform-power-unawareアプリケーションを含む、
請求項1に記載の装置。
前記ロジックは、前記複数のアプリケーションの一以上のアプリケーションのどれが前記プロセッサを前記低消費電力状態からウェイクアップすることを可能にするか優先順序を決める、請求項6に記載の装置。
前記複数のアプリケーションは、プラットフォームが低消費電力状態にされたときにアクティブでない一以上のplatform-power-awareアプリケーションまたは前記プラットフォームが低消費電力状態にされたときにアクティブである一以上のplatform-power-unawareアプリケーションを含む、
請求項6に記載の装置。
前記命令は、前記プロセッサに、前記複数のアプリケーションの一以上のアプリケーションのどれが前記プロセッサを前記低消費電力状態からウェイクアップすることを可能にするか優先順序を決めさせる、請求項11に記載のコンピュータ読み取り可能媒体。
前記複数のアプリケーションは、プラットフォームが低消費電力状態にされたときにアクティブでない一以上のplatform-power-awareアプリケーションまたは前記プラットフォームが低消費電力状態にされたときにアクティブである一以上のplatform-power-unawareアプリケーションを含む、
請求項11に記載のコンピュータ読み取り可能媒体。
前記命令は、前記プロセッサに、前記複数のアプリケーションの一以上のアプリケーションのどれが前記プロセッサを前記低消費電力状態からウェイクアップすることを可能にするか優先順序を決めさせる、請求項15に記載のコンピュータ読み取り可能媒体。
前記複数のアプリケーションは、プラットフォームが低消費電力状態にされたときにアクティブでない一以上のplatform-power-awareアプリケーションまたは前記プラットフォームが低消費電力状態にされたときにアクティブである一以上のplatform-power-unawareアプリケーションを含む、
請求項15に記載のコンピュータ読み取り可能媒体。
【発明を実施するための形態】
【0006】
以下の説明では、様々な実施形態をよく理解してもらうために、具体的な詳細事項を多数記載する。しかし、本発明の様々な実施形態はこれらの具体的な詳細事項がなくても実施することができる。他の場合には、本発明の具体的な実施形態を分かりにくくしないように、周知の方法、手順、コンポーネント、回路は詳細には説明していない。さらに、本発明の実施形態の様々な態様は、集積半導体回路(「ハードウェア」)、一又は複数のプログラムに組織化されたコンピュータ読み取り可能命令(「ソフトウェア」)、又はハードウェアとソフトウェアの組合せなどの様々な手段を用いて実行できる。本開示の目的において、「ロジック」とはハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせのどれかを意味するものとする。また、「命令」と「マイクロオペレーション(μop)」は、ここでの説明では交換可能である。
【0007】
ここに説明するいくつかの実施形態は、プロセッサが低消費電力状態を出るようにするアプリケーションイベントの数を低減する優先度アプリケーションイベントコントロール(Priority Based Application Event Control、PAEC)を利用できる。いくつかの実施形態では、PAECは携帯型装置やその他のタイプのコンピューティング装置で利用し得る。一実施形態では、PAEC法は、ハードウェア(例えば、システムオンチップ(SoC)やオンダイシステムファブリック(OSF))をレバレッジして、アプリケーション(「apps」)に優先度を割り当て、これらのアプリケーション優先度またはアプリケーションを複数のプラットフォームサブシステム状態(モード)に関連づけ、例えば、QOS(Quality Of Service)やユーザ体験を犠牲にせずに、優先度及び/またはポリシー設定(policy configuration)に基づいてplatform-power-awareアプリケーション及び/またはplatform-power-unawareアプリケーションの両方により発生するプラットフォームイベントを制御する。一実施形態では、PAECは、プラットフォームサブシステムにアプリケーションを関連付け、例えば、QOSの要請及び/またはユーザ体験に影響せずに、どのアプリケーションがシステムまたはプロセッサをウェイクアップするか、システムウェイクアップまたはプロセッサウェイクアップ後に、どのアプリケーションが実行されねばならないか又はできるかなどを指定及び/または優先度設定するメカニズムを提供することにより、きめ細かい電力管理を提供する。
【0008】
いくつかの実施形態では、(プロットフォーム/システム及び/またはプロセッサが低消費電力状態に入った後の)一または複数のアプリケーションの再開は、ポリシー(ここでは、交換可能に設定とも呼ぶ)情報または設定に基づき、PAECにより制限され得る。この情報は、いくつかの実施形態では、ランタイム中に適合及び変更され得る。さらにまた、このポリシー情報は、プラットフォーム/システム及び/またはプロセッサが低消費電力状態から一旦出たら、一または複数のアプリケーション及び/またはそれらの関連サブシステムをウェイクアップするか、どの順序でするか、どれをするかに関する情報を含む。一実施形態では、ポリシー情報は、どのアプリケーション及び/またはサブシステムがシステムをウェイクアップするか示す及び/または優先度設定してもよい。
【0009】
ここで説明する手法は、
図1、2、5及び6を参照して説明するシステムなどの任意タイプのコンピューティングシステムで用いることができる。より具体的に、
図1は、本発明の一実施形態によるコンピューティングシステム100を示すブロック図である。システム100は、一または複数のプロセッサ102−1ないし102−N(ここでは「複数のプロセッサ102」または「プロセッサ102」と総称する)を含む。複数のプロセッサ102は、相互接続ネットワークまたはバス104を介して通信できる。各プロセッサは様々なコンポーネントを含み、そのうちのいくつかのコンポーネントについては、明確性のためプロセッサ102−1のみを参照して説明する。したがって、残りの各プロセッサ102−2ないし102−Nは、プロセッサ102−1を参照して説明するのと同じまたは同様のコンポーネントを含み得る。
【0010】
一実施形態では、プロセッサ102−1は、一または複数のプロセッサコア106−1ないし106−M(ここで、「複数のコア106」またはより一般的には「コア106」と総称する)、共有キャッシュ108、ルータ110及び/またはロジック120を含み得る。プロセッサコア106は、1つの集積回路(IC)チップ上に実装できる。さらに、チップは、一または複数の共有キャッシュ及び/またはプライベートキャッシュ(例えば、キャッシュ108)、バスまたは相互接続(例えば、バスまたは相互接続ネットワーク112)、メモリコントローラ(例えば、
図5、6を参照して説明するもの)、またはその他のコンポーネントを含み得る。
【0011】
一実施形態では、ルータ110は、プロセッサ102−1及び/またはシステム100の様々なコンポーネント間の通信に用いられ得る。さらに、プロセッサ102−1は2以上のルータ110を含み得る。さらに、複数のルータ110は、プロセッサ102−1の内部または外部の様々なコンポーネント間のデータルーティングを可能にするように通信する。
【0012】
共有キャッシュ108は、コア106などのプロセッサ102−1の一または複数のコンポーネントにより利用されるデータ(例えば、命令を含む)を格納する。例えば、共有キャッシュ108は、プロセッサ102のコンポーネントによるより速いアクセスのために、メモリ114に格納されたデータをローカルでキャッシュできる。一実施形態では、キャッシュ108は、ミッドレベルキャッシュ(例えば、レベル2(L2)、レベル3(L3)、レベル4(L4)またはその他のキャッシュレベル)、ラストレベルキャッシュ(LLC)、及び/またはこれらの組み合わせを含む。さらに、プロセッサ102−1の様々なコンポーネントは、直接的に、バス(例えば、バス112)を通して、及び/またはメモリコントローラまたはハブを通して、共有キャッシュ108と通信できる。
図1に示したように、いくつかの実施形態では、複数のコア106のうちの一または複数のコアは、レベル1(L1)キャッシュ116−1(ここでは「L1キャッシュ116」と総称する)を含み得る。
【0013】
一実施形態では、PAECロジック120は、プロセッサ/プラットフォームを低消費電力状態から出させるアプリケーションイベントの数を低減し、プロセッサ/プラットフォームが低消費電力状態を出た後のアプリケーションによる動作の再開(及び対応するサブシステムのパワーオン)を制約し得る。ロジック120は、メモリ114に格納できるアプリケーション(「apps」)に優先度を割り当て、さらに、プラットフォームサブシステム状態(モード)をアプリケーションに関連づけて、例えば、QOS(Quality of Service)やユーザ体験を犠牲にすることなく、アプリケーション優先度及び/またはポリシー設定に基づき、platform-power-awareアプリケーション及び/またはplatform-power-unawareアプリケーションにより発生するプラットフォームイベントを制御する。いくつかの実施形態では、ロジック120により実行される演算は、(いくつかの実施形態では、ユーザインタフェース(例えば、
図3のUI314)からの情報に基づき)(例えば、メモリ114に格納され得る)OS及び/またはソフトウェアアプリケーションを介して、ユーザまたはOEMにより、制御または設定され得る。また、アプリケーション優先度及び/またはアプリケーションポリシー設定に関する情報は、例えば、メモリ114及び/またはキャッシュ108/116などを含む、ここで説明するメモリのどれに格納されてもよい。
【0014】
図2は、本発明の一実施形態による、コンピューティングシステムのプロセッサコア106その他のコンポーネントの一部を示すブロック図である。一実施形態では、
図2に示した矢印は、コア106における命令が流れる方向を示す。(プロセッサコア106などの)一または複数のプロセッサコアを、
図1を参照して説明したように、1つの集積回路チップ(すなわちダイ)に実装できる。さらに、チップは、一または複数の共有キャッシュ及び/またはプライベートキャッシュ(例えば、
図1のキャッシュ108)、相互接続(例えば、
図1の相互接続104及び/または112)、制御部、メモリコントローラ、その他のコンポーネントを含み得る。
【0015】
図2に示すように、プロセッサコア106は、実行する命令(条件分岐を含む命令を含む)をフェッチするフェッチ部202を含み得る。命令は、メモリ114、及び/または
図5ー6を参照して説明するメモリデバイスなどの任意のストレージデバイスからフェッチできる。コア106は、フェッチされた命令をデコードするデコード部204も含み得る。例えば、デコード部204は、フェッチされた命令を複数のuops(マイクロオペレーション)にデコードする。また、コア106はスケジュール部206を含み得る。スケジュール部206は、(例えば、デコード部204から受け取った)デコードされた命令がディスパッチできるようになるまで、例えば、デコードされた命令のすべてのソース値が利用可能になるまで、その命令の格納に関連する様々なオペレーションを実行し得る。一実施形態では、スケジュール部206は、スケジュールして、デコードされた命令を、実行部208に実行のため発行(すなわちディスパッチ)し得る。実行部208は、命令が(例えば、デコード部204により)デコードされ、(例えば、スケジュール部206により)ディスパッチされた後、ディスパッチされた命令を実行し得る。一実施形態では、実行部208は2以上の実行部を含み得る。また実行部208は、加法、減法、乗法及び/または除法などの様々な算術演算を実行し、一または複数の算術論理演算部(ALU)を含み得る。一実施形態では、コプロセッサ(図示せず)が実行部208と共に様々な算術演算を実行できる。
【0016】
さらに、実行部208は、命令をout-of-orderで実行できる。よって、プロセッサコア106は一実施形態ではout-of-orderプロセッサであり得る。コア106は、リタイアメント部210も含む。リタイアメント部210は、実行された命令がコミットされた後に、その命令をリタイア(retire)し得る。一実施形態では、実行された命令のリタイアメントの結果、例えば、プロセッサ状態が命令実行からコミットされ、命令により使用された物理的レジスタがデ・アロケート(de-allocate)される。
【0017】
コア106は、プロセッサコア106のコンポーネントと他のコンポーネント(
図1を参照して説明したコンポーネントなど)との間の、一または複数のバス(例えば、バス104及び/または112)を介した通信を可能にするバス部214も含む。またコア106は、コア106の様々なコンポーネントによりアクセスされるデータ(例えば、割り当てられたアプリケーション優先度及び/またはサブシステム状態(モード)アソシエーションに関連する値)を格納する一または複数のレジスタ216を含み得る。
【0018】
さらにまた、
図1にはPAECロジック120が相互接続112を介してコア106に結合されているものとして図示したが、様々な実施形態では、PAECロジック120は他のところにあってもよく、例えばコア106内にあっても、バス104を介してコアに結合されていても、その他の形態であってもよい。
【0019】
さらに、現世代のスマートフォンやネットブックのプラットフォームは、OSPM(Operating System Power Management)、PMU(Power Management Unit)、及びSCU(System Controller Unit)を介した粒度の細かいパワーマネジメントをサポートし得る。SCUは、オペレーティングシステムと共に、Always On Always Connected(AO AC)機能をプラットフォームに提供し得る。SCUは、OSパワーマネージャの誘導に基づき、プラットフォームにおける(CPU(Central Processing Unit)やプロセッサを含む)異なるサブシステムに対して、正しいパワーレベルを判断し得る。タイマー割り込みや通信(Comms)モジュールからの割り込みなどの外部イベントは、SCUによりCPUに転送され、CPUをウェイクアップし得る。サブシステム割り込みとは別に、CPUは、AO AC機能を提供するタイマーやイベントのために、アプリケーション(apps)によりウェイクアップされ得る。これらのウェイクアップにより、CPUのスリープ状態またはディープスリープ状態にいるレジデンシー時間(residency time)が短くなり、消費電力が増加する。また、パワーマネージャエンティティがプラットフォームをスタンバイ/スリープモードにしたとしても、プラットフォームpower-unawareアプリケーションはアクティブであり、その結果CPUその他のサブシステムはウェイクアップされる。また、アプリケーションは、考慮しているリソースに変化がなくても、タイマーを設定し、CPUを定期的にウェイクアップし得る。
【0020】
さらにまた、現在のいくつかのプラットフォームは、外部イベントの融合(coalescing)をサポートし、いくつかのウェイク設定に基づき、イベント(ウェイク)を待ち、またはデリバー(deliver)し得る。現在の実装は、概して、プラットフォーム中のアプリケーションに優先度を割り当てて、これらのアプリケーション優先度をプラットフォームの異なるオペレーティングモード(例えば、ブラウジング、ビデオ再生など)に関連づけられず、結果として、アプリケーションはフリーズ/解凍できる、すなわちスリープ/ディープスリープ/スタンバイ状態にされ、または強制的にサスペンド状態にされ、または実行が許される。また、概して、どのアプリケーションがサスペンド状態からシステムをウェイクアップでき、プラットフォームがウェイクアップした時、どのアプリケーションが実行されなければならないか、または実行できるかを指定し、優先度設定するメカニズムは存在しない。例えば、現在のいくつかのシステムでは、SCUは、サブシステム状態のみを制御し、それに関連するアプリケーションは制御しない。また、現在の方法論は、強制的にスリープ/スタンバイ状態にされるアプリケーション/サブシステムにおけるQOSやユーザ体験へのインパクトを考慮していない。
【0021】
図3は、いくつかの実施形態による、PAEC法が実装され得るシステム300を示すブロック図である。システム300は、計算及び記憶機能を設けるため、(
図1−2及び5−6を参照して説明するプロセッサのような)ホストCPU(または、GFX(Graphics))302、(
図1−2及び5−6を参照して説明するメモリのような)メモリ304、及び(例えば、サブシステム1ないしXの一部としての)ドライブを含み得る。概して、図示したサブシステム(例えば、1,2,・・・X)は、
図1−2及び4−6を参照して説明されるコンポーネントなどの、コンピューティングシステム中の任意のコンポーネントであって、パワーゲートでき、及び/またはコンピューティングシステム/プラットフォーム、及び/またはプロセッサをウェイクアップできるコンポーネントを含み得る。
【0022】
さらにまた、システム300は次のものを含み得る:ディスプレイ機能を提供するディスプレイコントローラ308;必要な任意の暗号オペレーション及び/または盗聴防止実行環境を提供するハードウェアセキュリティエンジン310;OS313内で実行されるOSコンポーネントとして実装されるPAECコンポーネント312(PAEC312は、一実施形態では、OS313のスケジューラ及びOSパワーマネージャに密接に組み込まれ、いくつかの実施形態では、現在実行されているプロセス/プログラムを停止/フリーズ/解凍し、後で再開する機能を有していてもよい);管理者またはユーザが優先度を指定し、及び/またはそれをプラットフォーム中のサブシステムのモードに関連づける能力を提供するPAEC UI(User Interface)314(一実施形態では、アプリケーションコンポーネントであってもよい);ユーザにより設定されたPAECポリシー/管理者情報を格納する、盗聴防止された安全なストレージを提供するセキュアストレージ316;きめ細かいプラットフォームパワーマネジメントサポートを提供するSC(System Controller Unit)及び/またはPMU(Power Management Unit)318。
【0023】
図4は、いくつかの実施形態による、PAECを実施する方法を示すフローダイヤグラムを示す図である。一実施形態では、
図4は、PAECロジック120の動作、PAECコンポーネント312、及び/またはいくつかの実施形態によるPAEC UI314を示す。さらにまた、
図4を参照して説明した動作は、
図1−3及び5ー6の一または複数のコンポーネントにより実行され得る。
【0024】
図1−4を参照して、PAEC機能がステップ402においてイネーブルされ、(例えば、ユーザ/OEM/OS等により、ビットなどのいくつかの記憶された値により)PAEC UIがステップ403において起動されると、PAEC UI314は、ステップ404において、ユーザに、セキュリティストレージ316に格納された現在のポリシー設定を提供し得る。PAEC UI314は、ステップ406において、ユーザに、ポリシー及び/または優先度設定を変更するオプションを提供する。ステップ408において、PAEC UI314により、ユーザまたは管理者は、アプリケーションに優先度を割り振り、それらをサブシステムオペレーティングモード(例えば、ブラウジング、ビデオ再生など)に関連づけて、例えばポリシー設定を更新できる。
【0025】
一実施形態では、ステップ408において、OEM、OS、またはアプリケーションプロバイダにより優先度が割り振られる。さらにまた、一実施形態では、アプリケーション登録の際にアプリケーションにより課されたQOS API(Application Program Interface)要請に基づき優先度が決定及び割り振られる。Power-aware-appsは、QOS APIを用いて、PAECメカニズム(例えば、アイテム120または312)が例えばベクトルとして利用して複数のアプリケーションを決定するQOS要請を指定し得る。ステップ410において、PAECは、ポリシー設定に基づき、イベントをウェイクアップする閾値優先度を決定し、システム/プラットフォームが再開した後にフリーズされるアプリケーションのリストを構成する。一実施形態では、閾値優先度により、CPUをウェイクアップする前に、どのくらいPAECがイベントを遅らせてよいか決定できる。
【0026】
ステップ412において、プラットフォームが(例えば、S0ix)プラットフォーム低消費電力状態に入ろうとしている時、例えば、いくつかの優先度方式とポリシー設定に基づいて、(例えば、PAECメカニズム120または312により)すべてのアプリケーションがフリーズされ、プロセス実行が停止される。「S0ix」は、一般的に、周期的なまたはポーリングされたアクティビティに基づく従来のアイドル消費電力状態ではなく、(例えば、OSまたはソフトウェアアプリケーション入力に基づく)イベントドリブンであるプラットフォームレベル消費電力管理により実現される改善されたアイドル消費電力状態をいう。いくつかの実施形態では、少なくともいくつかのここに説明した消費電力状態は、ACPI(Advanced Configuration and Power Interface)仕様書第4.0a版(2010年4月5日)で定義されたものに準拠し、例えば次のものを含む:プロセッサが動作していることを示すC0;プロセッサが命令を実行していないがすぐに実行状態に戻れることを示すC1;プロセッサがすべてのソフトウェアビジブル(software-visible)情報を維持するが、完全な実行状態に戻るにはより長い時間がかかることを示すC2;プロセッサがスリープ状態であり、そのキャッシュをコヒーレントに保つ必要がないことを示すC3。
【0027】
一実施形態では、PAECメカニズム(例えば、アイテム120または312)は、アプリケーション登録または起動の際に得られる情報に基づき、アプリケーションをフリーズする。いくつかの実施形態では、ステップ412において、PAECがフリーズすべきでない例外的なアプリケーションの場合、PAECはそれらのアプリケーションに、利用できる最高/最低の優先度を割り当て、それらのウェイクイベントが適宜CPUに生じる(land)ように構成されていてもよい。PAECは、これらのアプリケーションに関する通知を、またはこれらのアプリケーションに関するログ情報を、例えば、PAEC UI314を介して、ユーザに送り得る。これにより、ユーザは、将来的にデフォルト設定を書き換えることができる。
【0028】
ステップ414において、コンフィギュレーション設定(configuration settings)に基づき、PAECメカニズム(例えば、アイテム120または312)は、選択されたアプリケーションに、システム/プロセッサをウェイクアップさせ、(S0ixなどの低消費電力状態から)ポストレジュームを実行し、対応するサブシステムを低消費電力状態に維持し、CPUが低消費電力状態にいる時間(residency)を長くすることができ、またはそれを制限し得る。また、PAECメカニズム(例えば、アイテム120または312)は、プラットフォーム(例えば、S0ix)低消費電力状態の間のウェイクイベントの跡を保持して、パラメータの微調整のため、ポリシーマネージャにポリシー設定に関するフィードバックをすることができる。これにより、PAECは、例えば、ランタイム中にウェイクイベントの跡を保持することにより、適応的になる。
【0029】
様々な実施形態では、PAECは、アプリケーションとサブシステムパワー状態との間の関係を確立して、OS/アプリケーション/パワーマネージャロジックにより大きな柔軟性を提供して、非常に細かい粒度でパワー低減をする。また、PAECは適応的であってもよく、プラットフォームにおけるQOSまたはユーザ体験に影響を与えなくてもよい。いくつかの実施形態では、PAECは設定可能(configurable)であり、特定のアプリケーションを制限するため、マルウェアプログラム、ペアレンタルコントロールなど他のコンポーネントと集積されてもよい。PAECは、ウェイクアップを減らし、CPUをアイドル状態に長くとどめることができる。アプリケーション開発者は、QOS APIをレバレッジして、パワーセービングを強化してユーザ体験を改善し得る。いくつかの実施形態では、PAECは、アプリケーションをプラットフォームサブシステム動作モードに関連づけ、低パワー状態からレジューム(例えば、S0ix状態からのウェイクアップなど)後、選択されたアプリケーションをウェイク/実行するオプションを提供する。
【0030】
一実施形態では、PAECは、ポリシー設定に基づき、選択されたサブシステム/アプリケーションからウェイクイベントをマスキングできる。さらに、PAECは、後の時間フレームにおいて、複数の低優先度ウェイクをまとめて実行してもよい。また、PAECは、アプリケーションを、その優先度設定に基づき、及び/またはその関連サブシステム状態に基づきフリーズし、ユーザ体験やQOSを犠牲にすることなく、サブシステムが低パワー(例えば、S0ix)状態中にオンになるのを回避する。また、(セキュリティの最適化などのために)アプリケーションごとにコンフィギュレーション「ノブ」のユーザ制御がより大きくてもよい。また、PAECは、セキュアストレージにポリシー設定をセキュアに格納する機能を提供することもできる。
【0031】
いくつかの実施形態では、PAECは、次のもののうち一または複数を含む複数の利点を提供できる:(1)プラットフォームにおける優先度をアプリケーションに割り当て、アプリケーションをサブシステム動作モードと関連づける機能。優先度は、アプリケーションプロバイダ/システム管理者/サービスプロバイダにより割り当てられても、ユーザ設定可能ポリシー設定に基づいてもよい。さらに、一実施形態では、アプリケーションは、その優先度に基づき分類でき、例えばより容易なアプリケーション管理を提供できる。(2)PAECは、アプリケーションのイベントを回避するため、オーバーレイ領域においてマスクされるアプリケーションを停止/フリーズするよう構成でき得る。(3)PAECは、コンフィギュレーション設定に基づき、選択されたアプリケーションとそれらの関連サブシステムとをウェイクアップするメカニズムを提供する。PAECは、OS/アプリケーションの観点から粒度が細かい制御を提供する。(4)PAECは、適応的であってもよい。例えば、停止状態中にウェイクアップをトラッキングして、パラメータを微調整するフィードバックを提供することができる。(5)CPU及びその他のサブシステムの、最も深い低パワー状態にいる時間を長くする。(6)盗聴防止されたセキュアストレージにユーザ設定ポリシーを格納する。
【0032】
図5は、本発明の一実施形態によるコンピューティングシステム500を示すブロック図である。コンピューティングシステム500は、相互接続ネットワーク(すなわちバス)504を介して通信する一又は複数の中央処理ユニット(CPU)502又はプロセッサを含む。プロセッサ502は、汎用プロセッサ、(コンピュータネットワーク503により通信されるデータを処理する)ネットワークプロセッサ、(RISC(reduced instruction set computer)又はCISC(complex instruction set computer)を含む)その他のタイプのプロセッサを含む。さらに、プロセッサ502はシングルコアデザインでもマルチコアデザインでもよい。マルチコアデザインのプロセッサ502は、同じ集積回路(IC)ダイ上に異なるタイプのプロセッサコアを集積したものであってもよい。また、マルチコアデザインのプロセッサ502は、対称又は非対称のマルチプロセッサとして実装されてもよい。一実施形態では、一または複数のプロセッサ502は
図1のプロセッサと同じまたは同様であってもよい。例えば、一または複数のプロセッサ502は
図1−4を参照して説明したPAECロジック120を含み得る。また、
図1−4を参照して説明した動作は、システム500の一又は複数のコンポーネントにより実行できる。
【0033】
チップセット506も相互接続504で通信できる。チップセット506は、メモリコントロールハブ(MCH)508を含む。MCH508は、(
図1のメモリ114と同じまたは同様な)メモリ512と通信するメモリコントローラ510を含み得る。メモリ512は、CPU502またはコンピューティングシステム502に含まれるその他の任意のデバイスにより実行される命令シーケンスを含むデータを記憶する。例えば、メモリ512は、
図3−4を参照して説明したPAEC312、OS313、及び/またはPAEC UI314を格納できる。本発明の一実施形態では、メモリ512は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、又はその他のタイプの記憶デバイスなどの一又は複数の揮発性ストレージ(すなわちメモリ)を含む。ハードディスクなどの不揮発性メモリも利用できる。複数のCPU及び/又は複数のシステムメモリなど別のデバイスも、相互接続ネットワーク504を介して通信できる。
【0034】
MCH508は、ディスプレイ装置516と通信するグラフィックスインタフェース514も含み得る。本発明の一実施形態では、グラフィックスインタフェース514は、AGP(accelerated graphics port)を介してディスプレイ装置516と通信できる。本発明の一実施形態では、(フラットパネルディスプレイなどである)ディスプレイ516は、例えば信号変換器によりグラフィックスインタフェース514と通信する。信号変換器は、ビデオメモリやシステムメモリなどのストレージデバイスに記憶された画像のデジタル表現をディスプレイ信号に変換する。ディスプレイ信号はディスプレイ516により解釈され表示される。ディスプレイデバイスにより生成されたディスプレイ信号は、ディスプレイ516により解釈されそれに表示される前に、様々な制御デバイスを通して送られる。
【0035】
ハブインタフェース518により、MCH508と入出力コントロールハブ(ICH)520が通信できる。ICH520は、コンピューティングシステム500と通信するI/Oデバイスにインタフェースを提供する。ICH520は、ペリフェラルコンポーネント相互接続(PCI)ブリッジ、ユニバーサルシリアルバス(USB)コントローラ、又はその他のタイプのペリフェラルブリッジやコントローラなどのペリフェラルブリッジ(又はコントローラ)524を通してバス522と通信できる。ブリッジ524は、CPU502とペリフェラルデバイスとの間にデータパスを提供する。他のタイプのトポロジーも利用できる。また、複数のバスが、例えば複数のブリッジ又はコントローラにより、ICH520と通信できる。さらに、ICH520と通信する他のペリフェラルには、本発明の様々な実施形態において、IDE(integrated drive electronics)又はSCSI(small computer system interface)ハードディスクドライブ、USBポート、キーボード、マウス、タッチスクリーン、カメラ、パラレルポート、シリアルポート、フロッピィ(登録商標)ディスクドライブ、デジタル出力サポート(DVI(digital video interface)など)、その他のデバイスが含まれる。
【0036】
バス522は、オーディオデバイス526、一又は複数のディスクドライブ528、及びネットワークインタフェースデバイス530と通信できる(これらはコンピュータネットワーク503と通信できる)。他のデバイスはバス522を介して通信できる。また、本発明のいくつかの実施形態では、様々なコンポーネント(ネットワークインタフェースデバイス530など)がMCH508と通信できる。また、プロセッサ502とMCH508は結合されて一チップを形成することもできる。さらに、本発明の他の実施形態では、グラフィックアクセラレータ516はMCH508内に含まれてもよい。
【0037】
さらに、コンピューティングシステム500は揮発性及び/又は不揮発性のメモリ(又はストレージ)を含む。例えば、不揮発性メモリは、次のうち一又は複数を含む:リードオンリメモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的EPROM(EEPROM)、ディスクドライブ(例えば、528)、フロッピィ(登録商標)ディスク、コンパクトディスクROM(CD−ROM)、デジタルバーサタイルディスク(DVD)、フラッシュメモリ、光磁気ディスク、又は(命令などを含む)電子的データを記憶することができる他のタイプの不揮発性機械読み取り可能媒体を含む。
【0038】
図6は、本発明の一実施形態による、ポイントツーポイント(PtP)構成で構成されたコンピューティングシステム600を示す図である。具体的に、
図6は、プロセッサ、メモリ、及び/または入出力装置が複数のポイントツーポイントインタフェースにより相互接続されているシステムを示す。
図1−5を参照して説明した動作は、システム600の一又は複数のコンポーネントにより実行できる。
【0039】
図6に示したように、システム600は複数のプロセッサを含んでいてもよく、明確性のため、そのうち2つのプロセッサ602、604のみを示した。プロセッサ602と604は、それぞれ、ローカルメモリコントローラハブ(MCH)606、608を含み、メモリ610と612と通信できる。メモリ610及び/または612は、
図5のメモリ512を参照して説明したような様々なデータを格納し得る。
【0040】
一実施形態では、プロセッサ602と604は、
図5を参照して説明した複数のプロセッサ502のうちのものであってもよい。プロセッサ602と604は、それぞれPtPインタフェース回路616と618を用いて、ポイントツーポイント(PtP)インタフェース614を介してデータを交換できる。また、プロセッサ602と604は、それぞれ、ポイントツーポイントインタフェース回路626、628、630及び632を用いて、個々のPtPインタフェース622と624を介してチップセット620とデータを交換できる。さらにチップセット620は、例えば、PtPインタフェース回路637を用いて、グラフィックスインタフェース636を介してグラフィックス回路634とデータを交換できる。
【0041】
本発明の少なくとも一実施形態は、プロセッサ602と604に設けることができる。例えば、
図1−4のPAECロジック120は、プロセッサ602と604内に配置してもよい。しかし、本発明の他の実施形態は、
図6のシステム600内の他の回路、ロジックユニット、またはデバイスにあってもよい。さらにまた、本発明の他の実施形態は、
図6に示した複数の回路、ロジックユニット、またはデバイスに分散していてもよい。
【0042】
チップセット620は、PtPインタフェース回路641を用いてバス640を介して通信できる。バス640は、バスブリッジ642とI/Oデバイス643などの一または複数のデバイスと通信できる。バスブリッジ642は、バス644を介して、キーボード/マウス/タッチスクリーン/カメラ645、通信デバイス646(例えば、モデム、ネットワークインタフェースデバイス、またはコンピュータネットワーク503と通信できるその他の通信デバイス)、オーディオI/Oデバイス647、及び/またはデータストレージデバイス648などのその他のデバイスと通信できる。データストレージデバイス648は、プロセッサ602及び/または604により実行できるコード649を格納できる。
【0043】
本発明の様々な実施形態において、例えば
図1−6を参照してここに説明した動作は、ハードウェア(例えば、ロジック回路)、ソフトウェア、ファームウェア、またはこれらの組み合わせとして実装でき、コンピュータプログラム製品として提供することもでき、これには、ここで説明した方法を実行するようにコンピュータをプログラムするのに使われる命令(またはソフトウェア手順)を格納した、(例えば、一時的でない)機械読み取り可能またはコンピュータ読み取り可能な媒体を含む。機械読み取り可能媒体は、
図1−6を参照して説明したような記憶デバイスを含み得る。
【0044】
また、かかるコンピュータ読み取り可能媒体は、コンピュータプログラム製品としてダウンロード可能であってもよい。この場合、プログラムは、通信リンク(例えば、バス、モデム、又はネットワーク接続)を介して、リモートコンピュータ(例えば、サーバ)から要求コンピュータ(例えば、クライアント)に、搬送はその他の伝搬媒体に化体されたデータ信号により転送できる。
【0045】
本明細書において「一実施形態」または「いくつかの実施形態」とは、その実施形態に関して説明する機能、構造、特徴が少なくとも1つの実施形態に含まれることを意味している。本明細書ではいろいろな箇所で「一実施形態とは」と記載するが、同じ実施形態を指すものであってもなくてもよい。
【0046】
また、以下の説明及び請求項において、「coupled」と「connected」との用語及びその変化形を用いることがある。本発明のある実施形態では、「接続された(connected)」という用語を用いて、2以上の要素が互いに物理的または電気的に直接的に接触していることを示している。「結合された」という用語は、2つ以上の要素が物理的または電気的に直接的に接触していることを示している。しかし、「結合された」という用語は、複数の要素が互いに直接的には接触してないが、互いに協働または相互作用することを示している。
【0047】
よって、本発明の実施形態を構造的特徴及び/又は方法動作の具体的な言葉で説明したが、言うまでもなく、本発明は説明した具体的な特徴や動作に限定されない。むしろ、具体的な特徴や動作は、請求した主題を実施する形式例として開示したものである。