特許第6333971号(P6333971)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ インテル コーポレイションの特許一覧

特許6333971ジェネリックホストベースのコントローラレイテンシ方法及び装置
<>
  • 特許6333971-ジェネリックホストベースのコントローラレイテンシ方法及び装置 図000002
  • 特許6333971-ジェネリックホストベースのコントローラレイテンシ方法及び装置 図000003
  • 特許6333971-ジェネリックホストベースのコントローラレイテンシ方法及び装置 図000004
  • 特許6333971-ジェネリックホストベースのコントローラレイテンシ方法及び装置 図000005
  • 特許6333971-ジェネリックホストベースのコントローラレイテンシ方法及び装置 図000006
  • 特許6333971-ジェネリックホストベースのコントローラレイテンシ方法及び装置 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6333971
(24)【登録日】2018年5月11日
(45)【発行日】2018年5月30日
(54)【発明の名称】ジェネリックホストベースのコントローラレイテンシ方法及び装置
(51)【国際特許分類】
   G06F 13/10 20060101AFI20180521BHJP
   G06F 1/32 20060101ALI20180521BHJP
【FI】
   G06F13/10 330C
   G06F1/32 Z
【請求項の数】21
【全頁数】16
(21)【出願番号】特願2016-521916(P2016-521916)
(86)(22)【出願日】2014年6月26日
(65)【公表番号】特表2016-523413(P2016-523413A)
(43)【公表日】2016年8月8日
(86)【国際出願番号】US2014044250
(87)【国際公開番号】WO2014210258
(87)【国際公開日】20141231
【審査請求日】2015年12月22日
(31)【優先権主張番号】13/931,807
(32)【優先日】2013年6月28日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】クーパー,バーンズ
【審査官】 田上 隆一
(56)【参考文献】
【文献】 特開2010−009581(JP,A)
【文献】 国際公開第2013/043352(WO,A1)
【文献】 米国特許出願公開第2009/0327774(US,A1)
【文献】 特開2012−226776(JP,A)
【文献】 国際公開第2011/142087(WO,A1)
【文献】 米国特許出願公開第2009/0249103(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/10
G06F 1/32
(57)【特許請求の範囲】
【請求項1】
コンピューティングシステムの一以上のデバイスへのアクセスを制御するホストコントローラから、前記一以上のデバイスに対応するレイテンシ情報を検出する、少なくとも部分的にハードウェアロジックを含むロジックを有し、
前記ロジックは、前記ホストコントローラにより開始される一以上のレイテンシ情報トランザクションに応じて前記レイテンシ情報を検出し、前記レイテンシ情報は、前記ホストコントローラが前記一以上のデバイスのデータまたはメッセージを移動する要求をしてから、前記ホストコントローラが前記データまたはメッセージを移動する要求を前記コンピューティングシステムに認められるまでに前記ホストコントローラが許容できる遅延量に少なくとも部分的に基づいて決定される、
装置。
【請求項2】
前記ロジックは、パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち一または複数に、検出した前記レイテンシ情報を送る、請求項1に記載の装置。
【請求項3】
前記パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち少なくともひとつは、送られた前記レイテンシ情報を受け取り、受け取った情報を利用して、エネルギー効率を上げて動作しているか、または性能レベルを上げて動作しているか判断する、
請求項2に記載の装置。
【請求項4】
前記レイテンシ情報は、前記ホストコントローラのアイドル時間値を含む、
請求項1に記載の装置。
【請求項5】
前記ロジックは、前記一以上のデバイスにより開始されない一以上のレイテンシ情報トランザクションに応じて前記レイテンシ情報を検出する、
請求項1に記載の装置。
【請求項6】
前記一以上のデバイスは、embedded Multimedia Card(eMMC)、Serial Advanced Technology Attachment(SATA)ストレージデバイス、及びUniversal Flash Storage(UFS)デバイスのうち一または複数を含む、
請求項1に記載の装置。
【請求項7】
前記ホストコントローラがインアクティブである限り、レイテンシ情報を漸進的に周期的に繰り返して複数のレイテンシ値を決定するロジックを含む、
請求項1に記載の装置。
【請求項8】
前記ロジック、一以上のプロセッサコア、及びメモリは単一の集積回路ダイ上に配置される、請求項1に記載の装置。
【請求項9】
コンピューティングシステムの一以上のデバイスへのアクセスを制御するホストコントローラから、前記一以上のデバイスに対応するレイテンシ情報を検出するステップを含み、
前記レイテンシ情報の検出は、前記ホストコントローラにより開始される一以上のレイテンシ情報トランザクションに応じて行われ、前記レイテンシ情報は、前記ホストコントローラが前記一以上のデバイスのデータまたはメッセージを移動する要求をしてから、前記ホストコントローラが前記データまたはメッセージを移動する要求を前記コンピューティングシステムに認められるまでに前記ホストコントローラが許容できる遅延量に少なくとも部分的に基づいて決定される、
方法。
【請求項10】
パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち一または複数に、検出した前記レイテンシ情報を送るステップをさらに含む、
請求項9に記載の方法。
【請求項11】
前記パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち少なくともひとつが、送られた前記レイテンシ情報を受け取り、受け取った情報を利用して、エネルギー効率を上げて動作しているか、または性能レベルを上げて動作しているか判断するステップをさらに含む、
請求項10に記載の方法。
【請求項12】
コンピューティングシステムの一以上のデバイスへのアクセスを制御するホストコントローラから、前記一以上のデバイスに対応するレイテンシ情報を検出する、少なくとも部分的にハードウェアロジックを含むロジックを含むプロセッサを有し、
前記ロジックは、前記ホストコントローラにより開始される一以上のレイテンシ情報トランザクションに応じて前記レイテンシ情報を検出し、前記レイテンシ情報は、前記ホストコントローラが前記一以上のデバイスのデータまたはメッセージを移動する要求をしてから、前記ホストコントローラが前記データまたはメッセージを移動する要求を前記コンピューティングシステムに認められるまでに前記ホストコントローラが許容できる遅延量に少なくとも部分的に基づいて決定される、
システム。
【請求項13】
前記ロジックは、パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち一または複数に、検出した前記レイテンシ情報を送信する、請求項12に記載のシステム。
【請求項14】
前記パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち少なくともひとつは、送られた前記レイテンシ情報を受け取り、受け取った情報を利用して、エネルギー効率を上げて動作しているか、または性能レベルを上げて動作しているか判断する、
請求項13に記載のシステム。
【請求項15】
前記レイテンシ情報は、前記ホストコントローラのアイドル時間値を含む、
請求項12に記載のシステム。
【請求項16】
前記ロジックは、前記一以上のデバイスにより開始されない一以上のレイテンシ情報トランザクションに応じて前記レイテンシ情報を検出する、請求項12に記載のシステム。
【請求項17】
前記一以上のデバイスは、embedded Multimedia Card(eMMC)、Serial Advanced Technology Attachment(SATA)ストレージデバイス、及びUniversal Flash Storage(UFS)デバイスのうち一または複数を含む、
請求項12に記載のシステム。
【請求項18】
前記ロジック、一以上のプロセッサコア、及びメモリは単一の集積回路ダイ上に配置される、請求項12に記載のシステム。
【請求項19】
前記ホストコントローラがインアクティブである限り、レイテンシ情報を漸進的に周期的に繰り返して複数のレイテンシ値を決定する、請求項12に記載のシステム。
【請求項20】
プロセッサに、請求項9ないし11いずれか一項に記載の方法のステップを実行させるコンピュータプログラム。
【請求項21】
請求項20に記載のコンピュータプログラムを格納したコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概してエレクトロニクスの分野に関する。より具体的には、幾つかの実施形態はジェネリックホストベースのコントローラレイテンシ方法及び装置に関する。
【背景技術】
【0002】
モバイルコンピューティングがより一般的になるにつれて、システムデザイナーの主要な目標は消費電力を低減し、例えばバッテリーの寿命を延ばしたり、発熱を少なくしたりすることである。しかし、コンピュータシステムのさまざまなコンポーネントにおける消費電力低減になると、システムデザイナーは、一般的に、かかるコンポーネントの動作のタイミングを支配する既定の標準から得られる情報に依存して、正しさを保証しなければならない。したがって、コンポーネントが低消費電力状態に入れ、まだ正しいか否かは、(例えば、タイミング要件に関する)標準がそのコンポーネントに対してすでに既定されているかに直接依存するかも知れない。
【0003】
さらにまた、今日の小型フォームファクタのモバイルコンピューティングデバイスにとってエネルギー効率は重要であるが、より大きなシステムにとってもエネルギー効率は重要である。消費電力が大きいと発熱が増えることが一因である。過熱によりコンピュータシステムのコンポーネントが損傷する可能性がある。さらに、電力利用量が大きいと、例えば、携帯型コンピューティング装置では、バッテリー消費が大きくなり、それにより、携帯型装置が充電までに動作する時間が短くなる。消費電力の増加により、より大きいバッテリーの利用が必要となり、より重くなる。バッテリーが重いと、携帯型コンピューティング装置の携帯性や有用性が低下する。
【図面の簡単な説明】
【0004】
詳細な説明は、添付した図面を参照して行う。図中、参照数字の最も左の桁は、その参照数字が最初に現れる図面を指す。異なる図面で同じ参照番号を用いて、同様の又は同一のアイテムを示す。
図1】ここに説明する様々な実施形態を実装するのに利用可能なコンピューティングシステムの実施形態を示すブロック図である。
図2】一実施形態によるプログレッシブレイテンシレポーティングを実装するロジックを示す状態図である。
図3】一実施形態による、コントローラアイドル時間の関数としてレイテンシ情報プロビジョンを示すグラフである。
図4】ここに説明する様々な実施形態を実装するのに利用可能なコンピューティングシステムの実施形態を示すブロック図である。
図5】ここに説明する様々な実施形態を実装するのに利用可能なコンピューティングシステムの実施形態を示すブロック図である。
図6】ここに説明する様々な実施形態を実装するのに利用可能なコンピューティングシステムの実施形態を示すブロック図である。
【発明を実施するための形態】
【0005】
以下の説明では、様々な実施形態をよく理解してもらうために、具体的な詳細事項を多数記載する。しかし、さまざまな実施形態はこれらの具体的な詳細事項がなくても実施することができる。他の場合には、具体的な実施形態を分かりにくくしないように、周知の方法、手順、コンポーネント、回路は詳細には説明していない。さらに、実施形態の様々な態様は、集積半導体回路(「ハードウェア」)、一又は複数のプログラムに組織化されたコンピュータ読み取り可能命令(「ソフトウェア」)、又はハードウェアとソフトウェアの組合せなどの様々な手段を用いて実行できる。本開示の目的において、「ロジック」とはハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせのどれかを意味するものとする。
【0006】
幾つかの実施形態は、ジェネリックホストベースのコントローラレイテンシレポーティングによる(コンピューティングシステムの一以上のデバイスの)レイテンシ情報の決定を提供する。正しい動作を確保するため、一定のレイテンシ要件が満たされる必要がある。これらのレイテンシ要件は一般的にデバイスごとに異なる。さらに、幾つかの実装は、既定の標準に依存してデバイスレイテンシ情報を決定するものである。しかし、すべてのデバイスに対してそのような既定標準が常に存在する訳ではなく、幾つかのデバイスは標準の要件を超えた動作をすることができることもある。このため、一実施形態では、一以上のデバイスへのアクセスを制御するホストコントローラから、上記一以上のデバイスに対応するレイテンシ情報を検出するロジックを利用する。ロジックは、ホストコントローラにより開始される一以上のトランザクションに応じてレイテンシ情報を検出してもよい。
【0007】
ここに説明するように、「ホストコントローラ」は、一般的には、(図1及び図4−6を参照して説明するコンピューティングシステムのような)コンピューティングシステムのコンポーネントによる一以上のデバイス(例えば、図1のデバイス162)へのアクセスを制御/ゲート(gates)するロジック(例えば、図1のコントローラ161)を指す。また、ここに説明するように、「レイテンシ情報(latency information)」は一般的に、デバイスまたはホストコントローラが許容する、データまたはメッセージの移動を要求してからシステムがその要求を満たすまでの遅延量を指す。幾つかの場合(例えば、ネットワーキングデバイス)では、これは接続の速さと内部バッファリングの関数であってもよく、他のデバイスの場合(例えば、ストレージ)では、そのデバイスがどのように利用され、及び/またはそれがどのくらい最近利用されたかに基づく性能的制約であってもよい。例えば、ホストコントローラがインアクティブ/アイドル状態にある限り、スリープレイテンシ値が漸進的に周期的に繰り返され、よりいっそう深いレイテンシ値を決定してもよい。レイテンシ情報は一以上のエンティティにレポートされ(ここでさらに詳しく説明する)、例えば、性能対消費電力低減/エネルギー効率のトレードオフをより柔軟にすることができる。
【0008】
いくつかの実施形態では、ここに説明する少なくともいくつかの電力消費状態は、電力制御インタフェース(ACPI)仕様第5版(2011年12月)で規定された状態による、またはそれと同様である。例えば、L0は一般的に通常の動作モードを指し、L1はスリープモードを指し、L2はより深いスリープモードを指し、以下同様であってもよい。
【0009】
ここに説明する手法は、図1及び図4−6を参照して説明するシステム(これには、スマートフォン、タブレット、ラップトップコンピュータ、UMPC(Ultra−Mobile Personal Computer)、ウルトラブックなどが含まれ得る)などの、消費電力設定を有する任意のタイプのコンピューティングシステムで用いることができる。より具体的に、図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を含み得る。プロセッサコア106は、1つの集積回路(IC)チップ上に実装できる。さらに、チップは、一または複数の共有キャッシュ及び/またはプライベートキャッシュ(例えば、キャッシュ108)、バスまたは相互接続(例えば、バスまたは相互接続ネットワーク112)、メモリコントローラ(例えば、図4−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】
一実施形態では、ロジック160は、(例えば、図2−4を参照してさらに詳しく説明するような漸進的態様で)ホストコントローラ161から(一以上のデバイス162に関する)レイテンシ情報を検出する。ロジック160は、検出されたレイテンシ情報を、パワーマネジメント(PM)ロジック170、オペレーティングシステム(OS)、デバイスドライバ、ソフトウェアアプリケーションなどのシステムの他のコンポーネントに送る。これは、検出されたレイテンシ情報に基づいて決定されるレイテンシ要件を忠実に守ることにより、正しい動作を維持するためである。例えば、ロジック160により、(例えば、既定の標準があっても無くても)個々のデバイスのレイテンシ情報を動的に調整できるようにしてもよい。さらにまた、(例えば、OS及び/又はソフトウェアアプリケーション及び/又はデバイスドライバがメモリ114に格納されている場合、)PMロジック170、OS、デバイスドライバ及び/又はソフトウェアアプリケーションから得られるレイテンシ情報に少なくとも部分的に基づいて、消費電力制御が(例えば、ロジック160により)実現されてもよい。一実施形態では、レイテンシ情報は(ロジック161などの)ホストコントローラにより提供され、レイテンシ情報トランザクションは(デバイス162などの)デバイスにより直接的には開始されないが、デバイスのホストコントローラを通して開始される。また、デバイスは、図1−6を参照して説明するコンポーネント、例えば、eMMC(embedded MultiMedia Card)、Serial Advanced Technology Attachment(SATA)、及び/又はUFS(Universal Flash Storage)ストレージデバイスを含んでいてもよい。さらにまた、ロジック160及び/又は170は、図1に示す位置とは異なる位置に(例えば、コア106内に、相互接続104に直接結合されて、など)設けられ得る。
【0014】
図2は、一実施形態によるプログレッシブレイテンシレポーティングを実装する状態図である。一実施形態では、図1のロジック160は、図2の状態図に示したように動作する。図示したように、ロジック160は、デバイスコントローラ161のアイドル時間をトラック(track)して、ホストコントローラ161がインアクティブ/アイドル状態でいる限り、(例えば、プラットフォームのパワーマネジメント(PM)ロジック170に)レポートされる、より深いレイテンシ値を漸進的に周期的に繰り返す。ホストコントローラ161がより長い間アイドル状態にあるとき、エネルギー効率と性能との間のトレードオフをより柔軟にするため、レイテンシ値は(例えば、シリコンベンダー、システムデベロッパ、ユーザなどにより)ソフトウェアで提供されてもよい。
【0015】
一般的に、ホストコントローラ(例えば、コントローラ161)を介して結合された(デバイス162などの)一以上のエンドデバイス(end device)のサービスレイテンシ要件のレポートをできるLTR(Latency Tolerance Reporting)が用いられる。次いで、これにより、機能性及び/又は性能に影響を与えずに(例えば、PMロジック170により)パワーマネジメントができる。また、図2では(Peripheral Component Interconnect express(PCIe)に関連していてもよい)LTR値を使用していたとしても、実施形態は他の明示的レイテンシレポーティングメカニズムにより適用されてもよい。例えば、Universal Serial Bus(USB)3.0によりサポートされたLatency Tolerance Messaging(LTM)メカニズム(例えば、2008年11月にリリースされたUSB3.0仕様書によるもの)、またはUSB2.0によりサポートされたLink Power Management(LPM)メカニズム(例えば、2007年7月16日付けUSB 2.0 Specificationに対するUSB 2.0 Link Power Management Addendum Engineering Change Notice、及び2011年10月11日付けErrata for USB 2.0 ECN: Link Power Management(LPM)−7/2007によるもの)、Serial Advanced Technology Attachment(SATA)リンク状態などにより適用されてもよい。代替的なアプローチには、デバイスドライバにチップセットの固有レジスタ(例えば、SDIO(Serial Data Input/Output)レジスタ)に書き込ませるものが含まれる。さらにまた、幾つかの実施形態は、eMMC、SATA及び/又はUFSストレージデバイスに適用されてもよい。
【0016】
図2を参照して、(T0に設定された)アイドルタイマーが満了すると、(LTRがL0でありアイドルタイマーがT0に設定される。幾つかの実施形態によると、図2の下部のテーブルにはTとLのサンプル値を示した)ステージ202からステージ204に移動する。ステージ204において、LTRはL1に設定され、アイドルタイマーはL1に設定される。コントローラ(例えば、ホストコントローラ161)がアクティブになると、ステージ202に入る。ステージ204においてコントローラがインアクティブであると、(L1に設定された)アイドルタイマーが満了すると、ステージ206に入る。このプロセスは、図2の下部のテーブルフォーマットに示した値により、図2に示したようにステージ206−210で繰り返される。一実施形態では、図示したタイミング値は、時間の単位を選択する倍数(例えば、000b=マイクロ秒、001b=ミリ秒、010=数百ミリ秒、011=秒)と値(例えば、10ビット)を有する。レイテンシ値は、マイクロ秒単位で32ビットでプログラムされ、乗数は有しない。よって、レイテンシ値は、ホストコントローラがインアクティブ(inactive)に留まる間、(ステージ202−210を進むことにより)漸進的に増加し、それにより徐々により深いスリープ状態に到達し、(シリコンベンダー、システムデベロッパ、ユーザ等により提供される)ソフトウェアがレイテンシ値を提供し、エネルギー効率と性能との間のトレードオフをより柔軟にできるように、柔軟性を提供する。
【0017】
図3は、一実施形態による、コントローラアイドル時間の関数としてレイテンシ情報プロビジョンを示すグラフである。図示したように、(例えば、T0からT3までの4つの漸進的ステップにおいて)アイドル時間値が増加するにつれ、Lx値が増加してより大きいレイテンシ(例えば、LTR)値を示す。したがって、ホストコントローラ161がより長い間アイドル状態(図3においてアイドル時間は増加する)にあるとき、エネルギー効率と性能との間のトレードオフをより柔軟にするため、レイテンシ値は(例えば、シリコンベンダー、システムデベロッパ、ユーザなどにより)ソフトウェアで提供されてもよい。
【0018】
図4は、一実施形態によるコンピューティングシステム400を示すブロック図である。コンピューティングシステム400は、相互接続ネットワーク(すなわちバス)404を介して通信する一又は複数の中央処理ユニット(CPU)402又はプロセッサを含む。プロセッサ402は、汎用プロセッサ、(コンピュータネットワーク403により通信されるデータを処理する)ネットワークプロセッサ、(RISC(reduced instruction set computer)又はCISC(complex instruction set computer)を含む)その他のタイプのプロセッサを含む。
【0019】
さらに、プロセッサ402はシングルコアデザインでもマルチコアデザインでもよい。マルチコアデザインのプロセッサ402は、同じ集積回路(IC)ダイ上に異なるタイプのプロセッサコアを集積したものであってもよい。また、マルチコアデザインのプロセッサ402は、対称又は非対称のマルチプロセッサとして実装されてもよい。一実施形態では、一または複数のプロセッサ402は図1のプロセッサ102と同じまたは同様であってもよい。例えば、システム400の一以上のコンポーネントは、(例えば、図4に示したような)ロジック160または図1ないし図3を参照して説明したその他のコンポーネントを含んでもよい。また、図1−3を参照して説明した動作は、システム400の一以上のコンポーネントにより実行されてもよい。
【0020】
チップセット406も相互接続404で通信できる。チップセット406は、グラフィックス・メモリ・コントロール・ハブ(Graphics and Memory Control Hub、GMCH)408を含む。GMCH408は、(図1のメモリ114と同じまたは同様な)メモリ412と通信するメモリコントローラ410を含み得る。メモリ412は、CPU402またはコンピューティングシステム400に含まれるその他の任意のデバイスにより実行される命令シーケンスを含むデータを記憶する。一実施形態では、メモリ412は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、又はその他のタイプの記憶デバイスなどの一又は複数の揮発性ストレージ(すなわちメモリ)を含む。ハードディスクなどの不揮発性メモリも利用できる。複数のCPU及び/又は複数のシステムメモリなど別のデバイスも、相互接続ネットワーク404を介して通信できる。
【0021】
GMCH408は、ディスプレイ装置416と通信するグラフィックスインタフェース414も含み得る。一実施形態では、グラフィックスインタフェース414は、AGP(accelerated graphics port)を介してディスプレイ装置416と通信できる。一実施形態では、(フラットパネルディスプレイなどである)ディスプレイ416は、例えば信号変換器によりグラフィックスインタフェース414と通信する。信号変換器は、ビデオメモリやシステムメモリなどのストレージデバイスに記憶された画像のデジタル表現をディスプレイ信号に変換する。ディスプレイ信号はディスプレイ416により解釈され表示される。ディスプレイデバイスにより生成されたディスプレイ信号は、ディスプレイ416により解釈されそれに表示される前に、様々な制御デバイスを通して送られる。
【0022】
ハブインタフェース418により、GMCH408と入出力コントロールハブ(ICH)420が通信できる。ICH420は、コンピューティングシステム400と通信するI/Oデバイスにインタフェースを提供する。ICH420は、ペリフェラルコンポーネント相互接続(PCI)ブリッジ、ユニバーサルシリアルバス(USB)コントローラ、又はその他のタイプのペリフェラルブリッジやコントローラなどのペリフェラルブリッジ(又はコントローラ)424を通してバス422と通信できる。ブリッジ424は、CPU402とペリフェラルデバイスとの間にデータパスを提供する。他のタイプのトポロジーも利用できる。また、複数のバスが、例えば複数のブリッジ又はコントローラにより、ICH420と通信できる。さらに、ICH420と通信する他のペリフェラルには、様々な実施形態において、IDE(integrated drive electronics)又はSCSI(small computer system interface)ハードディスクドライブ、USBポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピィ(登録商標)ディスクドライブ、デジタル出力サポート(DVI(digital video interface)など)、その他のデバイスが含まれる。
【0023】
バス422は、オーディオデバイス426、一又は複数のディスクドライブ428、及びネットワークインタフェースデバイス430と通信できる(これらはコンピュータネットワーク403と通信できる)。他のデバイスはバス422を介して通信できる。また、幾つかの実施形態では、(ネットワークインタフェースデバイス430などの)様々なコンポーネントがGMCH408と通信してもよい。また、プロセッサ402とGMCH408が結合された単一チップを形成してもよいし、及び/またはGMCH408の一部または全部が、(例えば、チップセット406のGMCH408に含まれるのではなく)プロセッサ402に含まれてもよい。さらに、他の実施形態では、グラフィックアクセラレータ416はGMCH408内に含まれてもよい。
【0024】
さらに、コンピューティングシステム400は揮発性及び/又は不揮発性のメモリ(又はストレージ)を含んでいてもよい。例えば、不揮発性メモリは、次のうち一又は複数を含む:リードオンリメモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的EPROM(EEPROM)、ディスクドライブ(例えば、428)、フロッピィ(登録商標)ディスク、コンパクトディスクROM(CD−ROM)、デジタルバーサタイルディスク(DVD)、フラッシュメモリ、光磁気ディスク、又は(例えば命令を含む)電子的データを記憶することができる他のタイプの不揮発性機械読み取り可能媒体を含む。
【0025】
図5は、一実施形態による、ポイントツーポイント(PtP)構成で構成されたコンピューティングシステム500を示す図である。具体的に、図5は、プロセッサ、メモリ、及び/または入出力装置が複数のポイントツーポイントインタフェースにより相互接続されているシステムを示す。図1−4を参照して説明した動作は、システム500の一又は複数のコンポーネントにより実行してもよい。
【0026】
図5に示したように、システム500は複数のプロセッサを含んでいてもよく、明確性のため、そのうち2つのプロセッサ502、504のみを示した。プロセッサ502と504は、それぞれ、ローカルメモリコントローラハブ(MCH)506、508を含み、メモリ510と512と通信できる。メモリ510及び/または512は、図4のメモリ412を参照して説明したような様々なデータを格納し得る。
【0027】
一実施形態では、プロセッサ502と504は、図4を参照して説明した複数のプロセッサ402のうちのものであってもよい。プロセッサ502と504は、それぞれPtPインタフェース回路516と518を用いて、ポイントツーポイント(PtP)インタフェース514を介してデータを交換できる。また、プロセッサ502と504は、それぞれ、ポイントツーポイントインタフェース回路526、528、530及び532を用いて、個々のPtPインタフェース522と524を介してチップセット520とデータを交換できる。チップセット520は、さらに、例えば、PtPインタフェース回路537を用いて、グラフィックスインタフェース536を介してグラフィックス回路534とデータを交換できる。
【0028】
少なくとも一実施形態は、プロセッサ502と504に設けることができる。例えば、システム500の一以上のコンポーネントは、プロセッサ502と504内に配置されることも含め、図1ないし図4のロジック160を含んでいてもよい。しかし、他の実施形態は、図5のシステム500内の他の回路、ロジックユニット、またはデバイスにあってもよい。さらにまた、他の実施形態は、図5に示した複数の回路、ロジックユニット、またはデバイスに分散していてもよい。
【0029】
チップセット520は、PtPインタフェース回路540を用いてバス541を介して通信できる。バス540は、バスブリッジ542とI/Oデバイス543などの一または複数のデバイスと通信できる。バスブリッジ542は、バス544を介して、キーボード/マウス545、通信デバイス546(例えば、モデム、ネットワークインタフェースデバイス、またはコンピュータネットワーク403と通信できるその他の通信デバイス)、オーディオI/Oデバイス547、及び/またはデータストレージデバイス548などのその他のデバイスと通信できる。データストレージデバイス548は、プロセッサ502及び/または504により実行できるコード549を格納できる。
【0030】
幾つかの実施形態では、ここに説明したコンポーネントのうち一または複数は、システムオンチップ(SOC)デバイスとして実施できる。 図6は、一実施形態によるSOCパッケージを示すブロック図である。図6に示したように、SOC602は、一以上の中央処理装置(Central Processing Unit (CPU))コア630、一以上のグラフィックスプロセッサユニット(Graphics Processor Unit(GPU))コア630、入出力(Input/Output(I/O))インタフェース640、及びメモリコントローラ642を含む。SOCパッケージ602のさまざまなコンポーネントは、他の図を参照してここに説明したように、相互接続またはバスに結合され得る。また、SOCパッケージ602は、他の図を参照してここに説明したように、一意序のコンポーネントを含んでいてもよい。さらに、SOCパッケージ620の各コンポーネントは、例えば他の図を参照してここに説明したように、他の一以上のコンポーネントを含んでいてもよい。一実施形態では、SOCパッケージ620(及びそのコンポーネント)は、一以上の集積回路(Integrated Circuit(IC))ダイ上に設けられ、パッケージされて単一の半導体デバイスとされてもよい。
【0031】
図6に示したように、SOCパッケージ602は、メモリコントローラ642を介してメモリ660(他の図を参照してここに説明したメモリと同様のまたは同じものであってもよい)に結合されている。一実施形態では、メモリ660(またはその一部)は、SOCパッケージ602上に集積できる。
【0032】
I/Oインタフェース640は、例えば、他の図を参照してここに説明したような相互接続及び/またはバスを介して、一以上のI/Oデバイス670に結合されていてもよい。I/Oデバイス670は、キーボード、マウス、タッチパッド、ディスプレイ、(カメラやカムコーダ/ビデオレコーダなどの)画像/ビデオ収集デバイス、タッチスクリーン、スピーカなどのうち一または複数を含んでいてもよい。さらにまた、一実施形態では、SOCパッケージ602はロジック160を含み/集積していてもよい。あるいは、ロジック160は、SOCパッケージ602の外側に(すなわち、ディスクリートロジックとして)設けられてもよい。
【0033】
以下の例はさらに別の実施形態に関する。実施例1は装置を含み、該装置は、一以上のデバイスへのアクセスを制御するホストコントローラから、前記一以上のデバイスに対応するレイテンシ情報を検出する、少なくとも部分的にハードウェアロジックを含むロジックを有し、前記ロジックは、前記ホストコントローラにより開始される一以上のトランザクションに応じて前記レイテンシ情報を検出する。実施例2は実施例1の装置を含み、前記ロジックは、パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち一または複数に検出した前記レイテンシ情報を送信する。実施例3は実施例2の装置を含み、前記パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち少なくともひとつは、送られた前記レイテンシ情報を受け取り、受け取った情報を利用して、エネルギー効率を上げて動作しているか、または性能レベルを上げて動作しているか判断する。実施例4は実施例1の装置を含み、前記レイテンシ情報は、前記ホストコントローラのアイドル時間値、及び前記ホストコントローラのスリープレイテンシ値とのうち一以上を含む。実施例5は実施例1の装置を含み、前記ロジックは、前記一以上のデバイスにより開始されない一以上のトランザクションに応じて前記レイテンシ情報を検出する。実施例6は実施例1の装置を含み、前記一以上のデバイスは、embedded Multimedia Card(eMMC)、Serial Advanced Technology Attachment(SATA)ストレージデバイス、及びUniversal Flash Storage(UFS)デバイスのうち一または複数を含む。実施例7は実施例1の装置を含み、前記ホストコントローラがインアクティブである限り、レイテンシ情報を漸進的に周期的に繰り返して複数のレイテンシ値を決定する。実施例8は実施例1の装置を含み、前記ロジック、一以上のプロセッサコア、及びメモリは単一の集積回路ダイ上に配置される。
【0034】
実施例9は方法を含み、該方法は、一以上のデバイスへのアクセスを制御するホストコントローラから、前記一以上のデバイスに対応するレイテンシ情報を検出するステップを含み、前記レイテンシ情報の検出は、前記ホストコントローラにより開始される一以上のトランザクションに応じて行われる。実施例10は実施例9の方法を含み、パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち一または複数に検出した前記レイテンシ情報を送るステップをさらに含む。実施例11は実施例10の方法を含み、前記パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち少なくともひとつが、送られた前記レイテンシ情報を受け取り、受け取った情報を利用して、エネルギー効率を上げて動作しているか、または性能レベルを上げて動作しているか判断するステップをさらに含む。
【0035】
実施例12は、プロセッサで実行されたとき、一以上の動作を実行するよう前記プロセッサを設定する一以上の命令を含むコンピュータ読み取り可能媒体を含み、該一以上の動作は、一以上のデバイスへのアクセスを制御するホストコントローラから、前記一以上のデバイスに対応するレイテンシ情報を検出するステップを含み、前記レイテンシ情報の検出は、前記ホストコントローラにより開始される一以上のトランザクションに応じて行われる。実施例13は実施例12に記載のコンピュータ読み取り可能媒体を含み、前記プロセッサで実行されたとき、パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち一以上に、検出されたレイテンシ情報の送信をさせる一以上の命令を実行するように前記プロセッサを設定する一以上の命令をさらに含む。実施例14は実施例13に記載のコンピュータ読み取り可能媒体を含み、前記プロセッサで実行されたとき、前記パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち少なくともひとつに、送られた前記レイテンシ情報を受け取らせ、受け取った情報を利用して、エネルギー効率を高くして動作しているか、または性能レベルを高くして動作しているか判断させる一以上の動作を実行する一以上の命令をさらに含む。実施例15は実施例12に記載のコンピュータ読み取り可能媒体を含み、前記レイテンシ情報は、前記ホストコントローラのアイドル時間値、及び前記ホストコントローラのスリープレイテンシ値とのうち一以上を含む。実施例16は実施例12に記載のコンピュータ読み取り可能媒体を含み、前記プロセッサで実行されたとき、前記一以上のデバイスにより開始されない前記一以上のトランザクションに対応するレイテンシ情報を検出させる一以上の動作を実行するように、前記プロセッサを設定する一以上の命令をさらに含む。実施例17は実施例12に記載のコンピュータ読み取り可能媒体を含み、前記一以上のデバイスは、embedded Multimedia Card(eMMC)、Serial Advanced Technology Attachment(SATA)ストレージデバイス、及びUniversal Flash Storage(UFS)デバイスのうち一または複数を含む。
【0036】
実施例18はシステムを含み、該システムは、一以上のデバイスへのアクセスを制御するホストコントローラから、前記一以上のデバイスに対応するレイテンシ情報を検出する、少なくとも部分的にハードウェアロジックを含むロジックを含むプロセッサを有し、前記ロジックは、前記ホストコントローラにより開始される一以上のトランザクションに応じて前記レイテンシ情報を検出する。実施例19は実施例18のシステムを含み、前記ロジックは、パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち一または複数に検出した前記レイテンシ情報を送信する。実施例20は実施例19のシステムを含み、前記パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち少なくともひとつは、送られた前記レイテンシ情報を受け取り、受け取った情報を利用して、エネルギー効率を上げて動作しているか、または性能レベルを上げて動作しているか判断する。実施例21は実施例18のシステムを含み、前記レイテンシ情報は、前記ホストコントローラのアイドル時間値、及び前記ホストコントローラのスリープレイテンシ値とのうち一以上を含む。実施例22は実施例18のシステムを含み、前記ロジックは、前記一以上のデバイスにより開始されない一以上のトランザクションに応じて前記レイテンシ情報を検出する。実施例23は実施例18のシステムを含み、前記一以上のデバイスは、embedded Multimedia Card(eMMC)、Serial Advanced Technology Attachment(SATA)ストレージデバイス、及びUniversal Flash Storage(UFS)デバイスのうち一または複数を含む。実施例24は実施例18のシステムを含み、前記ロジック、一以上のプロセッサコア、及びメモリは単一の集積回路ダイ上に配置される。実施例25は実施例18のシステムを含み、前記ホストコントローラがインアクティブである限り、レイテンシ情報を漸進的に周期的に繰り返して複数のレイテンシ値を決定する。
【0037】
実施例26は、プロセッサで実行されたとき、実施例9ないし11いずれか一項に記載の一以上の動作を実行するよう前記プロセッサを設定する一以上の命令を含むコンピュータ読み取り可能媒体。
【0038】
実施例27は装置を含み、該装置は、一以上のデバイスへのアクセスを制御するホストコントローラから、前記一以上のデバイスに対応するレイテンシ情報を検出する手段を含み、前記レイテンシ情報の検出は、前記ホストコントローラにより開始される一以上のトランザクションに応じて行われる。実施例28は実施例27の装置を含み、前記プロセッサで実行されたとき、パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち一以上に、検出されたレイテンシ情報の送信をさせる一以上の命令を実行するように前記プロセッサを設定する一以上の命令をさらに含む。実施例29は実施例28の装置を含み、前記パワーマネジメントロジック、オペレーティングシステム、デバイスドライバ、及びソフトウェアアプリケーションのうち少なくともひとつが、送られた前記レイテンシ情報を受け取り、受け取った情報を利用して、エネルギー効率を上げて動作しているか、または性能レベルを上げて動作しているか判断させる手段をさらに含む。実施例30は実施例27の装置を含み、前記レイテンシ情報は、前記ホストコントローラのアイドル時間値、及び前記ホストコントローラのスリープレイテンシ値とのうち一以上を含む。実施例31は実施例27の装置を含み、前記一以上のデバイスにより開始されない一以上のトランザクションに応じて前記レイテンシ情報を検出させる手段をさらに有する。実施例32は実施例27の装置を含み、前記一以上のデバイスは、embedded Multimedia Card(eMMC)、Serial Advanced Technology Attachment(SATA)ストレージデバイス、及びUniversal Flash Storage(UFS)デバイスのうち一または複数を含む。
【0039】
様々な実施形態において、例えば図1−6を参照してここに説明した動作は、ハードウェア(例えば、ロジック回路)、ソフトウェア、ファームウェア、またはこれらの組み合わせとして実装でき、コンピュータプログラム製品として提供することもでき、これには、ここで説明した方法を実行するようにコンピュータをプログラムするのに使われる命令(またはソフトウェア手順)を格納した、(例えば、一時的でない)機械読み取り可能またはコンピュータ読み取り可能な媒体を含む。機械読み取り可能媒体は、図1−6を参照して説明したような記憶デバイスを含み得る。
【0040】
また、かかるコンピュータ読み取り可能媒体は、コンピュータプログラム製品としてダウンロード可能であってもよい。この場合、プログラムは、通信リンク(例えば、バス、モデム、又はネットワーク接続)を介して、リモートコンピュータ(例えば、サーバ)から要求コンピュータ(例えば、クライアント)に、搬送はその他の伝搬媒体に化体されたデータ信号により転送できる。
【0041】
本明細書において「一実施形態」または「いくつかの実施形態」とは、その実施形態に関して説明する機能、構造、特徴が少なくとも1つの実施形態に含まれることを意味している。本明細書ではいろいろな箇所で「一実施形態とは」と記載するが、同じ実施形態を指すものであってもなくてもよい。
【0042】
また、以下の説明及び請求項において、「coupled」と「connected」との用語及びその変化形を用いることがある。幾つかの実施形態では、「接続された」という用語を用いて、2以上の要素が互いに物理的または電気的に直接的に接触していることを示している。「結合された(coupled)」という用語は、2つ以上の要素が物理的または電気的に直接的に接触していることを示している。しかし、「結合された」という用語は、複数の要素が互いに直接的には接触してないが、互いに協働または相互作用することを示している。
【0043】
よって、実施形態を構造的特徴及び/又は方法動作の具体的な言葉で説明したが、言うまでもなく、本発明は説明した具体的な特徴や動作に限定されない。むしろ、具体的な特徴や動作は、請求した主題を実施する形式例として開示したものである。
図1
図2
図3
図4
図5
図6