以下の説明には、本発明の深い理解を与えるべく、多数の具体的な詳細が記載されている。例えば、特定のタイプのプロセッサおよびシステム構成、特定のハードウェア構造、特定の設計上およびミクロ設計上の細部、特定のレジスタ構成、特定の命令タイプ、特定のシステムコンポーネント、特定の構成パラメータ等の例示である。しかしながら、本発明を実施するのにこれらの具体的な細部を採用する必要がないことは、当業者にとって明らかであろう。他の例において、特定のおよび代替的なプロセッサアーキテクチャ、記載されたアルゴリズムのための特定のロジック回路/コード、特定のファームウェアコード、特定の相互接続動作、特定のロジック構成、特定の製造技術および材料、特定のコンパイラ実装、コードにおけるアルゴリズムの特定の表現、特定のパワーダウンおよびゲーティング技術/ロジック並びにコンピュータシステムの他の特定の動作詳細のような周知のコンポーネントまたは方法については、本発明を不必要に不明瞭にするのを回避すべく、詳細に記載されていない。
以下の実施形態は、コンピューティングプラットフォームまたはマイクロプロセッサといった特定の集積回路における省エネルギーおよびエネルギー効率に関し記載されている場合があるが、他の実施形態が、他のタイプの集積回路および論理デバイスに適用可能である。本明細書に記載された実施形態に係る同様の技術および教示が、他のタイプの回路または半導体デバイスに適用可能であり、それらも、より優れたエネルギー効率および省エネルギーからの利点を享受し得る。例えば、開示された実施形態は、サーバ、デスクトップまたはウルトラブック(商標)のような軽量コンピューティングデバイスに限定されない。また、ハンドヘルドデバイス、タブレット、他の薄型ノートブック、システムオンチップ(SOC)デバイス、および埋め込みアプリケーションのような他のデバイスにおいても使用され得る。ハンドヘルドデバイスのいくつかの例としては、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末(PDA)、およびハンドヘルドPCが挙げられる。埋め込みアプリケーションとは通常、マイクロコントローラ、デジタル信号プロセッサ(DSP)、システムオンチップ、ネットワークコンピュータ(NetPC)、セットトップボックス、ネットワークハブ、広域ネットワーク(WAN)スイッチ、または以下に教示される機能および動作を実行し得る任意の他のシステムを含む。さらに、本明細書に記載される装置、方法およびシステムは、物理コンピューティングデバイスに限定されず、省エネルギーおよび効率性のためのソフトウェア最適化にも関連し得る。以下の詳細な説明から容易に明らかであるように、本明細書に記載の方法、装置、システムの実施形態(ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせに関するかどうかを問わず)は、性能検討事項とバランスが採られた「グリーンテクノロジ」の将来に不可欠である。
コンピューティングシステムが進歩するにつれ、それらのコンポーネントは、より複雑化してきている。結果的に、最適なコンポーネント動作のための帯域幅要件が満たされることを保証すべく、コンポーネント間の連結および通信を行うための相互接続アーキテクチャも複雑性を増している。さらに、様々な市場セグメントが、市場ニーズに適合する相互接続アーキテクチャの様々な態様を要求する。例えば、サーバがさらなる高性能を必要とする一方で、モバイルエコシステムは場合によっては、省電力化のために性能全体を犠牲にできる。とはいえ、最大限の省電力化で可能な限り高い性能を提供することが、大半のファブリックの唯一の目的である。以下に説明される多数の相互接続は、本明細書に記載される本発明の複数の態様から潜在的に利点を享受するであろう。
図1を参照すると、マルチコアプロセッサを含むコンピューティングシステムの一実施形態のブロック図が示されている。プロセッサ100は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システムオンチップ(SOC)、またはコードを実行する他のデバイスのような任意のプロセッサまたは処理デバイスを含む。一実施形態において、プロセッサ100は、少なくとも2つのコア、コア101および102を含み、これらは、非対称コアまたは対称コアを含んでよい(図示された実施形態)。しかしながら、プロセッサ100は、対称または非対称であり得る任意の数の処理要素を含んでよい。
一実施形態において、処理要素とは、ソフトウェアスレッドをサポートするハードウェアまたはロジックを指す。ハードウェア処理要素の例としては、スレッドユニット、スレッドスロット、スレッド、処理ユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、および/または、実行状態またはアーキテクチャ状態のようなプロセッサの状態を保持可能な任意の他の要素を含む。換言すると、一実施形態において、処理要素は、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、または他のコードのようなコードに独立して関連付け可能な任意のハードウェアを指す。物理プロセッサ(またはプロセッサソケット)は通常、コアまたはハードウェアスレッドのような任意の数の他の処理要素を潜在的に含む集積回路を指す。
コアとは通常、独立のアーキテクチャ状態を維持可能な集積回路上に位置するロジックを指し、独立に維持される各アーキテクチャ状態は、少なくともいくつかの専用実行リソースと関連付けられる。コアとは対照的に、ハードウェアスレッドとは通常、独立のアーキテクチャ状態を維持可能な集積回路上に位置された任意のロジックを指し、独立に維持されるアーキテクチャ状態は、実行リソースへのアクセスを共有する。わかる通り、特定のリソースが共有され、他のリソースが特定のアーキテクチャ状態に専用化された場合、ハードウェアスレッドおよびコア間の用語体系のラインが重複する。さらに通常、コアおよびハードウェアスレッドは、オペレーティングシステムによって個々の論理プロセッサとして見なされ、その場合、オペレーティングシステムは、各論理プロセッサに対する操作を個々にスケジューリング可能である。
図1に示されるように、物理プロセッサ100は2つのコア、すなわちコア101および102を含む。ここで、コア101および102は、対称コア、すなわち、同一の構成、機能ユニット、および/またはロジックを備えるコアであるとみなされる。別の実施形態において、コア101はアウトオブオーダプロセッサコアを含む一方、コア102はインオーダプロセッサコアを含む。しかしながら、コア101および102は、ネイティブコア、ソフトウェア管理コア、ネイティブ命令セットアーキテクチャ(ISA)を実行するよう適合されたコア、変換された命令セットアーキテクチャ(ISA)を実行するよう適合されたコア、共同設計されたコア、または他の既知のコアといった、任意のタイプのコアから個々に選択されてよい。異種コア環境(すなわち、非対称コア)においては、バイナリ変換のような、ある形態の変換が利用されてよく、一方または両方のコアに対し、コードをスケジュールまたは実行する。まだ説明していないが、コア101内の図示された機能ユニットについて、以下にさらに詳細に述べる。コア102におけるユニットは、図示された実施形態において同様の態様で動作する。
図示の通り、コア101は、ハードウェアスレッドスロット101aおよび101bとも称され得る、2つのハードウェアスレッド101aおよび101bを含む。従って、一実施形態において、オペレーティングシステムのようなソフトウェアエンティティは、プロセッサ100を4つの別個のプロセッサ、すなわち、4つのソフトウェアスレッドを同時に実行可能な4つの論理プロセッサまたは処理要素として潜在的にみなす。先に暗示の通り、第1のスレッドはアーキテクチャ状態レジスタ101aに関連付けられ、第2のスレッドは、アーキテクチャ状態レジスタ101bに関連付けられ、第3のスレッドはアーキテクチャ状態レジスタ102aに関連付けられてよく、第4のスレッドは、アーキテクチャ状態レジスタ102bに関連付けられてよい。ここで、アーキテクチャ状態レジスタ(101a、101b、102a、および102b)の各々は上記の通り、処理要素、スレッドスロット、またはスレッドユニットと称されてよい。図示の通り、アーキテクチャ状態レジスタ101aは、アーキテクチャ状態レジスタ101bにおいて複製されており、よって個々のアーキテクチャ状態/コンテキストは、論理プロセッサ101aおよび論理プロセッサ101bのために格納可能である。コア101において、命令ポインタおよび割り当ておよびリネーマブロック130内のリネームロジックのような、他のより小さなリソースも、スレッド101aおよび101bのために複製されてよい。並べ替え/リタイヤユニット135における並べ替えバッファのようないくつかのリソース、ILTB 120、ロード/ストアバッファ、およびキューが、パーティショニングを介して共有されてよい。汎用内部レジスタ、ページテーブルベースレジスタ、低レベルデータキャッシュおよびデータTLB150、実行ユニット140、およびアウトオブオーダユニット135の部分のような他のリソースが、潜在的に完全に共有される。
プロセッサ100は通常、複数の他のリソースを含み、それらは完全に共有、パーティショニングを介して共有、または処理要素により/対して専用とされてよい。図1において、プロセッサの例示的な論理ユニット/リソースを有する純粋に例示的なプロセッサの一実施形態が図示されている。プロセッサは、これらの機能ユニットのうちの任意のものを含む、または省略してよく、および図示されていない、任意の他の既知の機能ユニット、ロジック、またはファームウェアを含んでよいことに留意されたい。図示の通り、コア101は、簡易化された代表的アウトオブオーダ(OOO)プロセッサコアを含む。しかしながら、インオーダプロセッサは、異なる実施形態において利用されてよい。OOOコアは、実行されるべき/取り出されるべき分岐を予測する分岐ターゲットバッファ120と、命令に対するアドレス変換エントリを格納する命令変換バッファ(I−TLB)120とを含む。
コア101は、フェッチされた要素をデコードするフェッチユニット120に連結されたデコードモジュール125をさらに含む。一実施形態において、フェッチロジックは、スレッドスロット101a、101bにそれぞれ関連付けられた個々のシーケンスを含む。通常、コア101は、プロセッサ100上で実行可能な命令を定義/指定する第1のISAに関連付けられる。通常、第1のISAの部分である機械コード命令は、命令(オペコードと称される)の部分を含み、それは実行される命令または動作を参照/指定する。デコードロジック125は、これらの命令をそれらのオペコードから認識し、第1のISAによって定義されるよう処理するために、デコードされた命令をパイプラインで渡す回路を含む。例えば、後に詳細に記載される通り、一実施形態において、デコーダ125は、トランザクション命令のような特定の命令を認識するよう設計または適合されたロジックを含む。デコーダ125による認識の結果、アーキテクチャまたはコア101は、適切な命令に関連付けられたタスクを実行すべく、特定の予め定義されたアクションを取る。本明細書で記載されたタスク、ブロック、動作、および方法のうちの任意のものが、単一または複数の命令に応答して実行されてよく、それらのうちのいくつかは、新しいまたは古い命令であってよいことを留意することが重要である。一実施形態において、デコーダ126は、同一のISA(または、それらのサブセット)を認識することに留意されたい。あるいは、異種コア環境においては、デコーダ126は、第2のISA(第1のISAのサブセットまたは別個のISAのいずれか)を認識する。
一例において、割り当ておよびリネーマブロック130は、命令処理結果を格納するレジスタファイルのようなリソースを予約するアロケータを含む。しかしながら、スレッド101aおよび101bは潜在的にアウトオブオーダ実行を可能であり、その場合、割り当ておよびリネーマブロック130は、命令結果を追跡する並べ替えバッファのような他のリソースも予約する。ユニット130はまた、プログラム/命令参照レジスタをプロセッサ100の内部の他のレジスタにリネームするレジスタリネーマも含んでよい。並べ替え/リタイヤユニット135は、上述の並べ替えバッファ、ロードバッファ、およびストアバッファのようなコンポーネントを含み、アウトオブオーダ実行と、その後のアウトオブオーダ実行された命令のインオーダリタイヤとをサポートする。
スケジューラおよび実行ユニットブロック140は、一実施形態において、実行ユニットに対する命令/操作をスケジュールするスケジューラユニットを含む。例えば、浮動小数点命令が、利用可能な浮動小数点実行ユニットを有する実行ユニットのポートでスケジュールされる。情報命令処理結果を格納すべく、実行ユニットに関連付けられたレジスタファイルも含まれる。例示的な実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、ストア実行ユニット、および他の既知の実行ユニットを含む。
より低レベルのデータキャッシュおよびデータ変換バッファ(D−TLB)150が、実行ユニット140に連結される。データキャッシュは、データオペランドのような最近使用/操作された要素を格納し、それらは、メモリコヒーレンシ状態で潜在的に保持される。D−TLBは、物理アドレスへの最近の仮想/線形変換を格納する。具体例として、プロセッサは、物理メモリを複数の仮想ページに分割するページテーブル構造を含んでよい。
ここで、コア101および102は、オンチップインタフェース110に関連付けられた第2のレベルキャッシュのような、より高レベルまたはより遠いキャッシュへのアクセスを共有する。より高レベル、またはより遠いとは、増加した、または実行ユニットからさらに離れた、キャッシュレベルを指すことに留意されたい。一実施形態において、より高レベルのキャッシュは、ラストレベルデータキャッシュ、すなわちプロセッサ100のメモリ階層のラストキャッシュであり、例えば第2または第3のレベルデータキャッシュである。しかしながら、より高レベルのキャッシュはそのように限定されず、命令キャッシュに関連付けられてよく、またはそれを含んでよい。命令キャッシュのタイプであるトレースキャッシュが代わりに、デコーダ125の後に連結され、最近デコードされたトレースを格納してよい。ここで、命令は潜在的にマクロ命令(すなわち、デコーダにより認識される一般的命令)を指し、それは複数のマイクロ命令(マイクロ操作)にデコードされてよい。
図示の構成において、プロセッサ100はまた、オンチップインタフェースモジュール110を含む。歴史的には、メモリコントローラは、以下で詳細に後述するが、プロセッサ100の外部のコンピューティングシステムに含まれてきた。このシナリオでは、オンチップインタフェース110は、プロセッサ100の外部のデバイス、例えば、システムメモリ175、チップセット(通常、メモリ175に接続するメモリコントローラハブ、および周辺デバイスに接続するI/Oコントローラハブを含む)、メモリコントローラハブ、ノースブリッジ、または他の集積回路、と通信する。またこのシナリオでは、バス105は任意の既知の相互接続を含んでよく、例えば、マルチドロップバス、ポイントツーポイント相互接続、シリアル相互接続、パラレルバス、コヒーレント(例えば、キャッシュコヒーレント)バス、層状プロトコルアーキテクチャ、差動バス、およびGTLバスである。
メモリ175は、プロセッサ100に専用であってもよいし、システム内の他のデバイスと共有されてもよい。メモリ175の共通のタイプの例としては、DRAM、SRAM、不揮発性メモリ(NVメモリ)、および他の既知のストレージデバイスが含まれる。デバイス180は、グラフィックアクセラレータ、メモリコントローラハブに連結されたプロセッサ若しくはカード、I/Oコントローラハブに連結されたデータストレージ、無線送受信機、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ、または他の既知のデバイスを含んでよいことに留意されたい。
しかしながら、最近、より多くのロジックおよびデバイスがSoCのような単一のダイ上に統合されており、これらのデバイスの各々はプロセッサ100上に組み込まれてよい。例えば、一実施形態において、メモリコントローラハブが、プロセッサ100と同一のパッケージおよび/またはダイ上にある。
ここで、コア110の部分(オンコア部分)は、メモリ175またはグラフィックデバイス180等の他のデバイスとのインタフェースを取るための1または複数のコントローラを含む。そのようなデバイスとインタフェースを取るための相互接続とコントローラとを含む構成は通常、オンコア(または、アンコア構成)と称される。一例として、オンチップインタフェース110は、オンチップ通信のためのリング相互接続と、オフチップ通信のための高速シリアルポイントツーポイントリンク105とを含む。さらに、SoC環境では、ネットワークインタフェース、コプロセッサ、メモリ175、グラフィックプロセッサ180、および任意の他の既知のコンピュータデバイス/インタフェース等の、さらにずっと多くのデバイスが、単一のダイまたは集積回路に統合され、高機能および低電力消費を備えたスモールフォームファクタを提供してよい。
一実施形態において、プロセッサ100は、本明細書に記載の装置および方法をサポートし、またはそれらとインタフェースを取るべく、アプリケーションコード176をコンパイル、変換、および/または最適化するためのコンパイラ、最適化、および/または変換コード177を実行可能である。コンパイラは通常、ソースのテキスト/コードをターゲットのテキスト/コードへと変換するためのプログラムまたはプログラムのセットを含む。通常、コンパイラによるプログラム/アプリケーションコードのコンパイルは、高レベルのプログラミング言語コードを低レベルの機械またはアセンブリ言語コードへと変換すべく、複数のフェーズおよびパスで行われる。しかしながら、簡易コンパイルのために単一パスのコンパイラも依然利用されてよい。コンパイラは、任意の既知のコンパイル技術を利用してよく、字句分析、前処理、解析、セマンティック分析、コード生成、コード変換、およびコード最適化のような任意の既知のコンパイラ動作を実行してよい。
より大型のコンパイラは通常、複数のフェーズを含むが、ほとんどの場合、これらのフェーズは、次の2つの一般的なフェーズ内に含まれる。(1)フロントエンド。すなわち、概してそこでは、構文処理、セマンティック処理、およびいくつかの変換/最適化が行われ得る。(2)バックエンド。すなわち、概してそこでは、分析、変換、最適化、およびコード生成が行われる。いくつかのコンパイラはミドルと称され、コンパイラにおけるフロントエンドとバックエンドとの間のあいまいな描写を示す。結果的に、挿入、関連付け、生成、またはコンパイラの他の動作への言及が、前述のフェーズまたはパスのうち任意のものにおいて、およびコンパイラの任意の他の既知のフェーズまたはパスにおいて行われてよい。一例示として、コンパイラは、動作、呼び出し、機能等をコンパイルの1または複数のフェーズにおいて潜在的に挿入する。例えば、コンパイルのフロントエンドフェーズにおいて呼び出し/動作を挿入する。その後、変換フェーズ中にその呼び出し/動作をより低レベルのコードへと変換する。動的コンパイル中、コンパイラコードまたは動的最適化コードは、そのような動作/呼び出しを挿入するだけでなく、ランタイム中の実行のためにコードを最適化してよいことに留意されたい。特定の一例示として、バイナリコード(既にコンパイルされたコード)が、ランタイム中に動的に最適化されてよい。ここで、プログラムコードには、動的最適化コード、バイナリコード、またはこれらの組み合わせが含まれてよい。
コンパイラと同様、バイナリトランスレータ等のトランスレータは、コードを最適化および/または変換すべく、コードを静的または動的のいずれかで変換する。故に、コード、アプリケーションコード、プログラムコード、または他のソフトウェア環境の実行という言及は、(1)プログラムコードをコンパイルし、ソフトウェア構造を維持し、他の動作を実行し、コードを最適化し、またはコードを変換するための、コンパイラプログラム、最適化コードオプティマイザ、または動的若しくは静的いずれかのトランスレータの実行、(2)最適化/コンパイルがなされたアプリケーションコードといった、動作/呼び出しを含むメインプログラムコードの実行、(3)ソフトウェア構造を維持し、他のソフトウェア関連の動作を実行し、またはコードを最適化すべく、メインプログラムコードに関連付けられたライブラリ等の他のプログラムコードの実行、あるいは(4)これらの組み合わせ、を指してよい。
システムコンポーネントとのインタフェースを取るために開発された相互接続ファブリックアーキテクチャの1つに、ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)アーキテクチャが含まれる。PCIeの目的は、複数の市場セグメント、クライアント(デスクトップおよびモバイル)、サーバ(スタンダードおよびエンタープライズ)、および組み込みデバイスおよび通信デバイスにわたる、異なるベンダのコンポーネントおよびデバイスが、オープンアーキテクチャにおいて相互運用できるようにすることにある。PCI Expressは通常、ロード‐ストア、I/O、または様々な将来のコンピューティングおよび通信プラットフォームのために定義されたロード‐ストアI/O相互接続アーキテクチャと称される。その使用モデル、ロード‐ストアアーキテクチャ、およびソフトウェアインタフェースのようないくつかのPCI属性は、その改訂版を通して維持されてきたが、以前のパラレルバス実装は、高度に拡張可能な完全シリアルインタフェースによって置き換えられた。PCI Expressのより最近のバージョンでは、新レベルの性能および特徴を供給すべく、ポイントツーポイント相互接続、スイッチベースの技術、およびパケット化されたプロトコルにおける進歩を活用している。電力管理、サービスの品質(QoS)、ホットプラグ/ホットスワップサポート、データ整合性、およびエラー処理は、PCI Express(PCIe)によってサポートされる高度な特徴のうちのいくつかである。しかしながら、PCIe仕様において定義されるプロトコルが、任意の物理インタフェースまたはトポロジ、すなわちポイント‐ツー‐ポイント、リング、メッシュ、クラスタ等に対し、利用されてよい。
図2を参照すると、一連のコンポーネントを相互接続するポイントツーポイントリンクから構成されるファブリックの一実施形態が示されている。システム200は、コントローラハブ215に連結されたプロセッサ205およびシステムメモリ210を含む。プロセッサ205は、マイクロプロセッサ、ホストプロセッサ、埋め込みプロセッサ、コプロセッサ、または他のプロセッサのような任意の処理要素を含む。プロセッサ205は、フロントサイドバス(FSB)206を介してコントローラハブ215に連結される。一実施形態において、FSB206は後述のようなシリアルポイントツーポイント相互接続である。別の実施形態において、リンク206は、異なる相互接続規格に準拠するシリアルの差動相互接続アーキテクチャを含む。
より多くのデバイスがプロセッサ205とともに同一のダイに統合され、いくつかの実装において、コントローラハブ215がプロセッサ205と統合されることに留意することが重要である。ここで、プロセッサ205の複数のコアが、ダイに統合されているメモリコントローラハブ215とのインタフェースを取る。さらに、PCIeインタフェースは、プロセッサ205から、またはプロセッサ205上に統合されたコントローラハブ215から、またはその両方から直接提供されてよい。
システムメモリ210は、ランダムアクセスメモリ(RAM)、不揮発性(NV)メモリ、またはシステム200におけるデバイスによってアクセス可能な他のメモリのような、任意のメモリデバイスを含む。システムメモリ210は、メモリインタフェース216を介してコントローラハブ215に連結される。メモリインタフェースの例としては、ダブルデータレート(DDR)メモリインタフェース、デュアルチャネルDDRメモリインタフェース、および動的RAM(DRAM)メモリインタフェースが含まれる。
一実施形態において、コントローラハブ215は、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIeまたはPCIE)相互接続階層におけるルートハブ、ルートコンプレックス、またはルートコントローラである。コントローラハブ215の例としては、チップセット、メモリコントローラハブ(MCH)、ノースブリッジ、相互接続コントローラハブ(ICH)、サウスブリッジ、およびルートコントローラ/ハブが含まれる。チップセットという用語は通常、2つの物理的に別個のコントローラハブ、すなわち相互接続コントローラハブ(ICH)に連結されたメモリコントローラハブ(MCH)を指す。上述の通り、多くの現行システムは通常、プロセッサ205と統合されたMCHを含む一方で、コントローラ215は、後述されるのと同様の態様で、I/Oデバイスと通信すべく、プロセッサ205の内部または外部に別個に提供されてよい。いくつかの実施形態において、ピアツーピアルーティングが任意に、ルートコンプレックス215を介してサポートされる。一実施形態において、ルートコンプレックス215は、ルートポート、ルートコンプレックスレジスタブロック、またはルートコンプレックス統合エンドポイントの論理的集約を含む。
ここでは、コントローラハブ215はシリアルリンク219を介してスイッチ/ブリッジ220に連結される。インタフェース/ポート217および221とも呼ばれ得る入/出力モジュール217および221は、層状プロトコルスタックを含み/実装して、コントローラハブ215とスイッチ220との間の通信を提供する。一実施形態において、複数のデバイスが、スイッチ220に連結可能である。
スイッチ/ブリッジ220は、デバイス225から上流に、すなわちルートコンプレックスに向かい1階層上のコントローラハブ215へ、および下流に、すなわちルートコントローラから1階層下へ、プロセッサ205若しくはシステムメモリ210およびデバイス225間で、パケット/メッセージをルーティングする。この例で使用される上流とは、ルートコンプレックスにより近い要素の相対位置またはルートコンプレックスに向かう情報フローの方向を含み、これに対し、下流は逆に、ルートコンプレックスからさらに遠い要素またはルートコンプレックスから離れる情報フローの方向を指す。一実施形態において、スイッチ220とは、複数の仮想PCI対PCIブリッジデバイスの論理アセンブリを指す。ここで、スイッチ220は、パケットがあるポートから別のポートへとルーティングされるのを可能にすべく、2または2より多いポートを接続するシステム要素として示されており、いくつかの実装において、PCI‐PCIブリッジの集合として表されてよい。ブリッジ、すなわちスタンドアロンブリッジは通常、PCI/PCI‐Xセグメント若しくはPCIeポートを、内部コンポーネントの相互接続または別のPCI/PCI‐Xバスセグメント若しくはPCIeポートと仮想的または実際に接続する機能を指す。
デバイス225は、I/Oデバイス、ネットワークインタフェースコントローラ(NIC)、アドインカード、オーディオプロセッサ、ネットワークプロセッサ、ハードドライブ、ストレージデバイス、CD/DVD ROM、モニタ、プリンタ、マウス、キーボード、ルータ、ポータブルストレージデバイス、ファイヤワイヤデバイス、ユニバーサルシリアルバス(USB)デバイス、スキャナ、および他の入/出力デバイスのような、電子システムに連結される任意の内蔵若しくは外付けのデバイスまたはコンポーネントを含む。PCIe用語では通常、そのようなデバイスをエンドポイントと呼ぶ。具体的に示されていないが、デバイス225は、レガシまたは他のバージョンのPCIデバイスをサポートすべく、PCIe対PCI/PCI−Xブリッジを含んでよい。PCIeにおけるエンドポイントデバイスは通常、レガシエンドポイント、PCIeエンドポイント、またはルートコンプレックス統合エンドポイントとして分類される。一実施形態において、デバイス225は、あるタイプのI/Oを実行する物理的または論理的エンティティ、リンクのいずれかの端におけるコンポーネント、または機能(またはマルチ機能デバイスにおける機能の集合)への参照を含む。PCIeにおいては通常、PCIeリンク上の要素またはエンティティのより一般的な使用は、機能と称される。ここで、機能とは通常、機能番号に関連付けられた構成空間内のアドレス指定可能なエンティティを指す。いくつかの実施形態において、機能とは、単一の機能デバイスを指すのに対し、他の複数の実施形態においては、機能とは多機能デバイスを指す。
グラフィックアクセラレータ230も、シリアルリンク232を介してコントローラハブ215に連結される。一実施形態において、グラフィックアクセラレータ230は、ICHに連結されたMCHに連結される。スイッチ220、およびそれに基づいてI/Oデバイス225が次にICHに連結される。I/Oモジュール231および218はまた、グラフィックアクセラレータ230およびコントローラハブ215間で通信するための層状プロトコルスタックを実装する。上記のMCHの記載と同様、グラフィックコントローラまたはグラフィックアクセラレータ230それ自体が、プロセッサ205に統合されてよい。
図3を見ると、層状プロトコルスタックの一実施形態が示されている。層状プロトコルスタック300は、クイックパスインターコネクト(QPI)スタック、PCIeスタック、次世代高性能コンピューティング相互接続スタック、低電力インタフェーススタック、モバイルインダストリプロセッサインタフェース(MIPI)、または他の層状スタックのような、任意の形態の層状通信スタックを含む。図2〜図5に関するすぐ下の記載はPCIeスタックに関するものであるが、同一概念が他の相互接続スタックに適用されてよい。一実施形態において、プロトコルスタック300は、トランザクション層305、リンク層310、および物理層320を含むPCIeプロトコルスタックである。図1中のインタフェース217、218、221、222、226および231のようなインタフェースが、通信プロトコルスタック300として表されてよい。通信プロトコルスタックとして表されるものは、プロトコルスタックを実装/包含するモジュールまたはインタフェースとも称され得る。
PCI Expressは、コンポーネント間で情報を通信するためにパケットを使用する。パケットはトランザクション層305およびデータリンク層310で形成され、送信コンポーネントから受信コンポーネントへと情報を搬送する。送信されるパケットが他の層を流れる際に、それらの層でパケットを処理するために必要な追加の情報でパケットが拡張される。受信側では逆の処理が発生し、パケットは物理層320として表されるものから、データリンク層310として表されるものへと変換され、最終的(トランザクション層パケット用)に、受信デバイスのトランザクション層305によって処理され得る形態に変換される。
トランザクション層
一実施形態において、トランザクション層305は、デバイスの処理コアと、データリンク層310および物理層320のような相互接続アーキテクチャとの間のインタフェースを提供する。この点において、トランザクション層305の主な役割は、パケット(すなわち、トランザクション層パケットまたはTLP)のアセンブリおよびディスアセンブリである。トランザクション層305は通常、TLPのためのクレジットベースのフロー制御を管理する。PCIeは、分割トランザクション、すなわち、時間により分離されたリクエストと応答を持つトランザクションを実装し、ターゲットデバイスが当該応答のためのデータを収集中に、リンクが他のトラフィックを搬送することを可能にする。
また、PCIeはクレジットベースのフロー制御を利用する。このスキームにおいて、デバイスはトランザクション層305内の受信バッファの各々に対するクレジットの初期量を通知する。図1のコントローラハブ115のようなリンクの反対側における外部デバイスは、各TLPによって使用されるクレジット数をカウントする。トランザクションは、そのトランザクションがクレジット制限を超過しない場合に、送信されてよい。応答を受信すると、クレジット量が復元される。クレジットスキームの利点は、クレジット制限が発生しなければ、クレジットリターン(credit return)のレイテンシが性能に影響を与えないことである。
一実施形態において、4つのトランザクションアドレス空間は、構成アドレス空間、メモリアドレス空間、入/出力アドレス空間、およびメッセージアドレス空間を含む。メモリマップされた位置へ/からデータを転送するために、メモリ空間トランザクションは、読み取りリクエストおよび書き込みリクエストのうちの1または複数を含む。一実施形態において、メモリ空間トランザクションは、例えば、32ビットアドレスのようなショートアドレスフォーマット、または64ビットアドレスのようなロングアドレスフォーマットといった、2つの異なるアドレスフォーマットを使用可能である。構成空間トランザクションを使用して、PCIeデバイスの構成空間にアクセスする。構成空間に対するトランザクションには、読み取りリクエストおよび書き込みリクエストが含まれる。メッセージ空間トランザクション(または、単にメッセージ)は、PCIeエージェント間のインバンド通信をサポートするよう定義される。
従って、一実施形態において、トランザクション層305は、パケットヘッダ/ペイロード306を組み立てる。現行のパケットヘッダ/ペイロードのためのフォーマットは、PCIe仕様ウェブサイトにおけるPCIe仕様において見出され得る。
図4を素早く参照するに、PCIeトランザクション記述子の一実施形態が示されている。一実施形態において、トランザクション記述子400は、トランザクション情報を搬送するための機構である。この点において、トランザクション記述子400は、システム内のトランザクションの識別をサポートする。他の潜在的な使用としては、既定のトランザクションの順序付けの修正およびチャネルとトランザクションとの関連付けを追跡することを含む。
トランザクション記述子400は、グローバル識別子フィールド402、属性フィールド404およびチャネル識別子フィールド406を含む。図示される例では、グローバル識別子フィールド402は、ローカルトランザクション識別子フィールド408およびソース識別子フィールド410を含むよう示されている。一実施形態において、グローバルトランザクション識別子402は、すべての未処理のリクエストに対し一意である。
一実装に従うと、ローカルトランザクション識別子フィールド408は要求元エージェントによって生成されるフィールドであり、このフィールドは、その要求元エージェントのための、完了を必要とするすべての未処理のリクエストに対して一意である。さらに、この例において、ソース識別子410は、PCIe階層内の要求元エージェントを一意に識別する。従って、ローカルトランザクション識別子408フィールドはソースID410と共に、階層ドメイン内のトランザクションのグローバルな識別を提供する。
属性フィールド404は、トランザクションの特性および関係を指定する。この点において、属性フィールド404は、トランザクションの既定の処理に対する修正を可能にする追加の情報を提供すべく、潜在的に使用される。一実施形態において、属性フィールド404は、優先度フィールド412、予約フィールド414、順序付けフィールド416、およびスヌープ無しフィールド418を含む。ここで、優先度サブフィールド412は、そのトランザクションへ優先度を割り当てるために、イニシエータによって修正されてよい。
予約属性フィールド414は、将来のため、またはベンダ定義の用途のために、予約された状態になっている。優先度またはセキュリティ属性を使用する、可能な利用モデルが、予約属性フィールドを使用して実装されてよい。
この例において、順序付け属性フィールド416が使用され、既定の順序付けルールを修正し得る順序付けタイプを伝達するオプションの情報を供給する。一例示的な実装によると、順序付け属性「0」は、既定の順序付けルールが適用されることを示し、その場合、順序付け属性「1」は緩和された順序付けを示し、その場合、書き込みは、同一の方向への書き込みを渡すことができ、読み取り完了は、同一の方向への書き込みを渡すことができる。スヌープ属性フィールド418は、トランザクションがスヌープされるかどうかを判断するために利用される。図示の通り、チャネルIDフィールド406は、トランザクションが関連付けられるチャネルを識別する。
リンク層
データリンク層310とも呼ばれるリンク層310は、トランザクション層305と物理層320との間の中間段階として動作する。一実施形態において、データリンク層310の役割は、リンクの2つのコンポーネント間でトランザクション層パケット(TLP)を交換するための信頼性のある機構を提供することである。データリンク層310の一方側は、トランザクション層305によって組み立てられたTLPを受け入れ、パケットシーケンス識別子311、すなわち識別番号またはパケット番号を適用し、エラー検出コード、すなわちCRC312を計算および適用し、物理デバイスから外部デバイスにわたる送信のため、修正されたTLPを物理層320に送信する。
物理層
一実施形態において、物理層320は、パケットを外部デバイスに物理的に送信するための論理サブブロック321および電気サブブロック322を含む。ここで、論理サブブロック321は、物理層321の「デジタル」機能を担当する。この点において、論理サブブロックは、物理サブブロック322による送信のための発信情報を準備する送信セクション、および受信された情報をリンク層310に渡す前に、それを識別および準備するための受信セクションを含む。
物理ブロック322は、送信機および受信機を含む。送信機には、論理サブブロック321によってシンボルが供給され、送信機はそれらをシリアライズし、外部デバイスへと送信する。受信機は外部デバイスからのシリアライズされたシンボルが供給され、受信された信号をビットストリームに変換する。ビットストリームは、逆シリアル化されて、論理サブブロック321へ供給される。一実施形態において、8b/10b送信コードが採用され、その場合、10ビットシンボルが送信/受信される。ここで、フレーム323を有するパケットをフレーム化するために特別なシンボルが使用される。また、一例において、受信機も着信シリアルストリームから復元されたシンボルクロックを提供する。
上述の通り、トランザクション層305、リンク層310、および物理層320はPCIeプロトコルスタックの特定の実施形態に関し記載されているが、層状プロトコルスタックはそのように限定されない。実際、任意の層状プロトコルが含まれ/実装されてよい。一例として、層状プロトコルとして典型的なポート/インタフェースとしては、(1)パケットを組み立てる第1の層、すなわちトランザクション層と、パケットを順序付ける第2の層、すなわちリンク層、およびパケットを送信する第3の層、すなわち物理層が含まれる。具体例としては、共通の標準インタフェース(CSI)層状プロトコルが利用される。
次に図5を見ると、PCIeシリアルポイントツーポイントファブリックの実施形態が示されている。PCIeシリアルポイントツーポイントリンクの実施形態が示されているが、シリアルポイントツーポイントリンクは、シリアルデータを送信するための任意の送信パスを含み、そのように限定されない。図示された実施形態においては、基本的なPCIeリンクは、2組の低電圧な、差動的に駆動される信号ペア、すなわち送信ペア506/511および受信ペア512/507を含む。従って、デバイス505は、データをデバイス510へ送信するための送信ロジック506と、デバイス510からデータを受信するための受信ロジック507とを含む。換言すると、2つの送信パス、すなわちパス516および517と、2つの受信パス、すなわちパス518および519とがPCIeリンクに含まれる。
送信パスは、送信ライン、銅線、光回線、無線通信チャネル、赤外線通信リンク、または他の通信パスのような、データを送信するための任意のパスを指す。例えば、デバイス505およびデバイス510のような2つのデバイス間の接続は、リンク415等のリンクと呼ばれる。リンクは、1つのレーンをサポートしてよく、各レーンは差動信号ペアのセット(1つのペアは送信用、1つのペアは受信用)を表す。帯域幅を拡張すべく、リンクはxNとして示される複数のレーンを集約してよく、ここでNは、例えば1、2、4、8、12、16、32、64、またはそれより広い、任意のサポートされたリンク幅である。
差動ペアは、差動信号を送信するためのライン416および417のような2つの送信パスを指す。一例として、ライン416が低電圧レベルから高電圧レベルへと切り替わる、すなわち立ち上りエッジであるとき、ライン417は高ロジックレベルから低ロジックレベルへ、すなわち、立ち下りエッジへと、駆動する。差動信号は、より良好な電気的特性、例えば、より良好な信号完全性、すなわちクロスカップリング、電圧オーバシュート/アンダシュート、リンギング等を潜在的に示す。これにより、より良好なタイミングウィンドウを可能にし、それにより、より高速な送信周波数を可能にする。
図6を参照すると、メモリマップされた構成空間の複数の実施形態の論理図が示されている。メモリマップされた構成空間のこれらの例のうちの少数が、図6を参照してすぐ下に記載されている。ここで、PCIアーキテクチャは、メモリ625内の構成アドレス空間626を定義および提供し、それは通常、I/Oおよびメモリアドレス空間626に対し直交する。
一実施形態において、プロセッサ605のI/O空間615内のCFC/CF8のような固定アドレスに位置するI/Oマップされたアドレスデータウィンドウ616を使用した、構成読み取りおよび書き込み生成のための機構が提供される。ここで、プロセッサは、アドレス空間616に対し読み取りまたは書き込みを発行し、それは、構成アドレス空間626の代表的なものである。次に、当該読み取りまたは書き込みは、エンドポイント622において実行され、エンドポイント622はPCIeネットワーク内のデバイスまたは機能であってよい。
別の実施形態において、強化された構成アクセス機構(ECAM)が、PCIeデバイスまたは機能構成を強化すべく、提供される。ここで、構成アクセス空間626を表し、複数の構成読み取り/書き込みバスセマンティックリクエストを生成すべく、ルートコンプレックス610が、ルートコンプレックスメモリ空間内のメモリマップされたウィンドウ621に関連付けられる。ECAMの内部の動作をより詳しく示すべく、ECAM実装の例示的な実施形態がすぐ下に記載される。しかしながら、ECAM実装はそのように限定されない。さらに、後述の通り、FCAMがECAMに類似する複数の属性を利用してよく、よって以下の例はFCAMフレームワークを理解するために寄与されてよい。しかし、FCAMも当該詳細な例示には限定されない。
一ECAM実装において、通常、PCIソフトウェア構成機構との互換性を維持すべく、デバイス622のようなPCI Express要素は、PCIと互換性のある構成空間626と関連付けられる。いくつかの例がここに記載される。PCI Expressリンクは、ロジカルPCI‐PCIブリッジを起点とし、このブリッジのセカンダリバスとして構成空間626にマップされる。ルートコンプレックス610内のルートポートは、PCI Expressルートコンプレックス610からのPCI Expressリンクを起点とするPCI‐PCIブリッジ構造である。PCI Expressスイッチは、PCI Expressリンクを内部の論理PCIバスに接続する複数のPCI‐PCIブリッジ構造によって表される。スイッチ上流ポートは、PCI‐PCIブリッジを含む。このブリッジのセカンダリバスは、スイッチの内部ルーティングロジックを表す。スイッチ下流ポートは、内部バスから、PCI Expressスイッチからの下流PCI Expressリンクを表すバスまでブリッジするPCI‐PCIブリッジである。スイッチ下流ポートを表すPCI‐PCIブリッジは、内部バスに表れてよい。いくつかの実装において、タイプ0構成空間ヘッダによって表れるエンドポイント622は内部バス上に表れるのを許可されていない。
PCI Expressエンドポイント622は、デバイス内の単一機能として構成空間626内にマップされてよく、デバイスは、複数の機能または単にその機能のみを含む可能性がある。PCI Expressエンドポイントおよびレガシエンドポイントは通常、ルートコンプレックス610に起点を持つ複数の階層ドメインのうちの1つの中に表れる。一例として、デバイス622はそのヘッドとしてのルートポートを有するツリーにおける構成空間626内に表れる。ルートコンプレックス統合エンドポイントおよびルートコンプレックスイベントコレクタは、ルートコンプレックス610に起点を持つ複数の階層ドメインのうちの1つの中に表れなくてよい。その代わり、いくつかの実装において、これらは構成空間626内に複数のルートポートの複数のピアとして表れる。
一実施形態において、PCI Expressは、構成空間626を、PCIローカルバス仕様によって許可される256バイトと比較して、機能ごとに4096バイトといったような、より大きなサイズに拡張する。一実施形態において、PCI Express構成空間626は、機能622の構成空間の第1の256バイトのような第1の量から成るPCI3.0に互換性のある領域、および残りの構成空間626から成るPCI Express拡張構成空間に分割される。構成空間626のPCI3.0に互換性のある部分は、後述のPCIローカル5バス仕様において定義される機構またはPCI Express強化された構成アクセス機構(ECAM)または高速構成アクセス機構(FCAM)のいずれかを使用してアクセス可能である。
PCI Express拡張構成空間は、ECAMまたはFCAMを使用してアクセスされてよい。PCI3.0またはそれ以降(例えば、4.0、5.0およびその他これから開発されるもの)と互換性のあるPCI Express構成機構は、PCI ローカルバス仕様で定義されるPCI構成空間プログラミングモデルをサポートする。このモデルに準拠することで、PCI Expressインタフェースを組み込むシステムは、従来のPCIバス列挙および構成ソフトウェアに準拠したままになる。PCI 3.0デバイス機能と同様に、PCI Expressデバイス機能は、ソフトウェア駆動の初期化および構成のための構成空間を提供する。PCI Express構成空間626のヘッダは通常、PCI ローカルバス仕様で定義されたフォーマットおよび動作に対応するよう編成される。PCI3.0と互換性のある構成アクセス機構は、ECAMまたはFCAMと同一のリクエストフォーマットを使用してよい。PCIと互換性のある構成リクエストについては、拡張レジスタアドレスフィールドが、すべてゼロに設定されてよい。
一実施形態において、構成空間626へのアクセスを可能にするプロセッサアーキテクチャ特有のファームウェアインタフェース標準を実装するシステムについて、オペレーティングシステムは標準のファームウェアインタフェースを使用し、ECAMまたはFCAMアクセスはオプションである。例えば、Developer's Interface Guide for 64−bit Intel Architecture−based Servers (DIG64),Version 2.1,93に準拠するシステムについては、オペレーティングシステムは、構成空間にアクセスするために、SALファームウェアサービスを使用する。
一実施形態において、ECAMは、デバイス622の構成レジスタにアクセスするために、フラットメモリマップされたアドレス空間を利用する。この場合、メモリアドレスはアクセスされた構成レジスタを判断し、メモリデータはアドレス指定されたレジスタの内容を更新(書き込みに対し)またはそれを返す(読み取りに対し)。メモリアドレス空間からPCI Express構成空間アドレスへの1つの例示的なマッピングが表1に定義されている。
構成空間にマップされるメモリアドレスの範囲に関するサイズおよびベースアドレスは、ホストブリッジおよびファームウェアの設計によって判断される。それらは、ファームウェアによって、実装特有の態様でオペレーティングシステムに報告されてよい。当該範囲のサイズは、ホストブリッジが構成アドレスにおけるバス番号フィールドにマップするビット数によって判断される。表1では、このビット数はnで表され、ここにおいて、1≦n≦8である。n個のメモリアドレスビットをバス番号フィールドにマップするホストブリッジは、0から2n−1まで(両端の数値を含む)のバス番号をサポートし、当該範囲のベースアドレスは、2(n+20)バイトメモリアドレス境界に整合される。メモリアドレスビットからマップされていないバス番号フィールド内のビットはいずれも「クリア」であってよい。
例えば、システムが3つのメモリアドレスビットをバス番号フィールドにマップする場合、以下のことが当てはまってよい。すなわち、n=3である。ベースアドレスにアドレスビットA[63:23]が使用され、ベースアドレスは2^23バイト(8MB)境界に整合される。アドレスビットA[22:20]がバス番号フィールドのビット[2:0]にマップされる。バス番号フィールドのビット[7:3]はクリアに設定され、システムは0から7まで(両端の数値を含む)の間のバス番号をアドレス指定可能である。
1つのメモリアドレスビットの最小値(n=1)がバス番号フィールドにマップされてよい。しかしながら、他の実装において、より多数のバスをサポートすることが必要とされると、システムは追加のメモリアドレスビットをバス番号フィールドにマップする。例えば、4GBより大きいメモリアドレスをサポートするシステムは、メモリアドレスの少なくとも8ビット(n=8)をバス番号フィールドにマップする。各ホストブリッジに異なる範囲のバス番号が割り当てられている複数のホストブリッジを含むシステムにおいては、システムの最も高いバス番号は、最も高いバス番号が割り当てられているホストブリッジによってマップされるビット数によって潜在的に限定されることに留意されたい。そのようなシステムにおいて、特定のホストブリッジに割り当てられる最も高いバス番号5は、多くの場合、そのホストブリッジに割り当てられたバス数よりも、大きくなるであろう。換言すると、各ホストブリッジについて、バス番号フィールドにマップされたビット数nは、各特定のブリッジに割り当てられた最も高いバス番号が、そのブリッジについて2n−1に等しいかそれより小さくなるよう、十分な大きさである必要がある。いくつかのプロセッサアーキテクチャにおいて、単一の構成リクエスト内で表現されないメモリアクセスを生成する可能性がある。それは例えば、DW整合境界にわたることに起因する、またはロックされたアクセスが使用されるからである。そのようなアクセスに関する構成リクエストへの変換をサポートするために、ルートコンプレックス実装が使用されなくてよい。
余談であるが、リクエストはARIデバイスにおける拡張機能をターゲットとしてよく、A[19:12]が(8ビット)機能番号を表し、それは(5ビット)デバイス番号および(3ビット)機能番号フィールドに置き換わる。
一実施形態において、システムハードウェアは、システムソフトウェア実行が継続する前に、ECAMを使用する書き込みトランザクションがコンプリータによって完了されることを保証すべく、システムソフトウェアのための方法を提供する。
一実装において、ECAMは、ホストCPUからのメモリトランザクションをPCI Expressファブリック上の構成リクエストに変換する。この変換が潜在的にソフトウェアに対し、順序付けの問題を生じさせることがある。理由は、メモリアドレスへの書き込みは通常、ポステッドトランザクションであるが、構成空間への書き込みは、PCI Expressファブリックにポストされない可能性があるからである。
概して、ソフトウェアは、ポステッドトランザクションがコンプリータによっていつ完了されるかを認識していない。ソフトウェアが、ポステッドトランザクションがコンプリータによって完了されたことを認識する必要があるそれらの場合において、ソフトウェアによって一般的に使用される技術は、書き込みがされたばかりの場所を読み取ることである。全体を通してPCI順序付けルールに従うシステムについては、読み取りトランザクションは、ポステッド書き込みが完了するまで完了しない。しかしながら、PCI順序付けルールは、ノンポステッド書き込みトランザクションおよび読み取りトランザクションが互いに再順序付けされるのを可能にするので、トランザクションがコンプリータによって完了されるのを保証すべく、CPU605はPCI Expressファブリック上でノンポステッド書き込みが完了するのを待機する必要がある。一例として、ソフトウェアが、ECAMを使用してデバイス622に書き込むことによって、デバイス機能622のベースアドレスレジスタを構成し、そしてこのベースアドレスレジスタによって記述されるメモリマップされた範囲における場所を読み取ろうとしてよもよい。ECAM書き込みの完了前に、ソフトウェアがメモリマップされた読み取りを発行する場合、構成書き込みリクエストより前に、メモリマップされた読み取りは再順序付けされ、デバイスに到着する可能性があり、予期できない結果を生じさせる。この問題を回避すべく、一実施形態において、プロセッサ605およびホストブリッジ610の実装は、ECAMを使用する書き込みのコンプリータによる完了時を判断するための方法がソフトウェアに対し存在することを保証する。
この方法は単に次のようなものであってよい。すなわち、プロセッサ605自身が、ECAMアクセスをマップするための専用メモリ範囲を一意と認識し、この範囲へのアクセスを、PCI Expressファブリック上でノンポステッド書き込みを生成する他のアクセスを扱うのと同一の態様で扱う。すなわち、プロセッサの観点からは、トランザクションはポストされない。代替の機構は、ホストブリッジ610(プロセッサ605ではなく)がメモリマップされた構成空間626のアクセスを認識し、ノンポステッド構成トランザクションがPCI Expressファブリック上で完了するまで、プロセッサ605に対し、この書き込みが受理されたことを通知しないことである。3番目の代替策としては、プロセッサ605およびホストブリッジ610が、ECAMに対しメモリマップされた書き込みをポストし、ホストブリッジ610が、構成書き込みリクエストのPCI Expressファブリック上での完了時を判断するために、ソフトウェアが読み取り可能な別個のレジスタを提供することであろう。他の代替策も可能である。例えば、プロセッサが、命令の実行時に、前の(以前に発行された)メモリアクセス操作が完了したことを保証するフェンス命令を提供してよい。
ルートコンプレックス実装は、DW境界にわたる、またはロックされたセマンティクスを使用するアクセスからの構成リクエストの生成をサポートする必要がないので、ソフトウェアは、使用されているルートコンプレックス610実装がその変換をサポートすることを認識していない限り、メモリマップされたECAMを使用する場合に、そのようなアクセスの生成を生じさせることのないよう注意する必要がある。ECAMを実装するそれらのシステムについて、PCI Expressホストブリッジ610は、ホストプロセッサからのメモリマップされたPCI Express構成空間アクセスをPCI Express構成トランザクションに変換する。ホストブリッジPCIクラスコードの使用は、下位互換性のために予約されてよい。ホストブリッジ構成空間は、PCIホストブリッジタイプ0構成空間と互換性があるか、または互換性がないかのいずれかの実装特有の態様で実装されてよい。PCI Expressホストブリッジは、ルートコンプレックスイベントコレクタを介して、エラーをシグナリングする必要がなくてよい。このサポートは、PCI Expressホストブリッジのオプションである。デバイス622は、構成レジスタアクセスをデコードするための追加の4ビットをサポートしてよく、すなわち、構成リクエストヘッダの拡張レジスタアドレス[3:0]フィールドをデコードする。
構成空間内に配置されるべき適切な理由を有するデバイス特有のレジスタ(例えば、それらは、メモリ空間が割り当てられる前にアクセス可能である)が、ベンダ特有の機能構造(PCIと互換性のある構成空間内)またはベンダ特有の拡張機能構造(PCI Express拡張構成空間内)に配置されてよい。ドライバによってランタイム環境においてアクセスされるデバイス特有のレジスタは、1または複数のベースアドレスレジスタによって割り当てられているメモリ空間内に配置されてよい。PCIと互換性のある構成空間またはPCI Express拡張構成空間は、ランタイム時のデバイス特有のレジスタのための適切な場所を有する可能性があるが、通常は、それらをそこに配置することは推奨されない。
ルートポートまたはルートコンプレックス統合エンドポイントは、4096バイトのブロックのようなルートコンプレックスレジスタブロック(RCRB)と称される、メモリマップされたレジスタのオプションのブロックに関連付けられてよい。一実施形態において、これらのレジスタは構成空間626と類似する態様で使用され、PCI Express拡張機能およびルートコンプレックスに適用される他の実装特有のレジスタを含んでよい。
複数のルートポートまたは内部デバイスが、同一のRCRBに関連付けられることを許可されてよい。一実装において、RCRBのメモリマップされたレジスタは、メモリマップされた構成空間またはメモリ空間と同一のアドレス空間に存在しない。別の実施形態においては、それらは同一のアドレス空間に存在するが、異なるアドレスを有する。
わかる通り、ECAMは、CPUにより生成された構成リクエストのより高速な完了が、CPUのストール時間を低減することを潜在的に可能にし、システムソフトウェアからは見えない構成キャッシングは、電力状態の出入りを速くすることを可能にする。しかしながら、いくつかの実施形態において、そのような利点は統合デバイスには拡張されない。
結果的に、一実施形態において、高速構成アクセス機構(FCAM)が提供される。一例として、FCAM実装には、ルートコンプレックス610が新しいFCAMポリシーを構成リクエストのサービス提供に適用する際、ホストソフトウェアに対してはECAMとして透過的に見えることを含む。さらに、いくつかの実施形態において、ルートコンプレックス610はまた、メモリ読み取り/書き込みコマンドを使用する新しいバスセマンティクスを生成し、それに加え、そのようなコマンドのためのテンプレートを潜在的に提供する。
一実施形態において、ルートコンプレックス610は、例えばFCAMキャッシュのような、メモリマップされたI/Oウィンドウにマップされたキャッシュを含む。そのようなキャッシュの利用は、以下のうちの1または複数を潜在的に可能にする。すなわち、(1)キャッシュにバッファされ、ホストプロセッサ205から見てより迅速に完了する、ホストにより開始される構成書き込み。(2)デバイス622に対する単一のバストランザクションに結合可能なホストにより開始される複数の構成書き込み。これは効率を改善し、構成時間を低減する。(3)キャッシュからサービス提供される、静的および半静的デバイス構成レジスタからの、ホストにより開始される読み取り。これはレイテンシを低減し、バストラフィックを低減し、電力を低減する。(4)キャッシュ内にコンテキストを保持することによって、デバイス622は電源オフされた後、迅速に構成コンテキストを再構築してよく、キャッシュはその後、デバイス622が電源オンに戻ったとき(これは、複数のデバイスが電源オンにされる場合、並行で行われてよい)、デバイス622に迅速にダンプされ、直接的なホストの関与を要求しなくてよい。これは電力およびレイテンシを低減する。
一実施形態において、FCAMキャッシュは、プロセッサ605のキャッシュとコヒーレントなキャッシュではない。これとは逆に、非コヒーレントなキャッシュを提供できることにより、レガシのPCI/PCIeハードウェアをサポートするブリッジ内のような、非コヒーレントI/Oリンクの背後におけるキャッシュ機構の実装を可能にしてよい。しかしながら、別の実施形態においては、FCAMキャッシュは、プロセッサ605のキャッシュとコヒーレントなものとして実装される。
一実施形態において、FCAMキャッシュは、構成更新が、ターゲット機能に対し送信されることを保証すべく、ライトスルーポリシーを実装する。さらに、ライトスルーポリシーは任意の様々な形態を取ってよい。例えば、一実装では、緩慢なライトスルーポリシーを潜在的に利用し、その場合、書き込みは合理的に適時な態様、すなわち混雑に起因する遅延等でライトスルーされる。さらに、このシナリオにおいて、書き込みは確定的に完了してよい。
一実施形態において、エンドポイントデバイスのために構成コンテキストをFCAMキャッシュから構成空間に再ロードするといった、構成コンテキストの再確立の際、ホストは、ターゲットの機能/デバイスに対し、大きなブロックの書き込みを発行することを許可される。ここで、構成空間自体は、キャッシュから、またはプロセッサから、DW(またはそれより小さい)書き込み等のより小さな書き込みの代わりに、ブロック書き込みを使用して書き込まれてよい。
FCAMキャッシュおよび、FCAMキャッシュからの構成コンテキストを復元することが、図7および9を参照して、以下により詳細に記載されている。
一実施形態において、少なくとも2つのタイプの構成ブロック、レガシおよびクリーンが定義されている。一例示において、バイト書き込みマスクが追跡され、書き込みデータと共にレガシブロック構成領域に送信され、その後の書き込みが別個に発行される。また、この例においては、レガシの互換性のある構成レジスタがレガシブロック内に実装される。一方、クリーンブロックは、バイト書き込みマスクを利用しなくてよい。ここで、ライトコンバイニング、マージング、コラプシング、またはそれらのうちの何らかの組み合わせが、潜在的に許可/可能にされる。さらに、クリーンブロック領域の要件を順守する場合、実装者は、クリーンブロックおよびレガシブロックの両方においてアクセス可能な、いくつかのレガシ互換性のある構成レジスタを含んでよい。レガシおよびクリーンブロックは、図12を参照して、以下により詳細に記載される。
一実施形態において、FCAM可能なデバイスは、オフセットアドレスにおいて、ホストFCAMキャッシュのミラーを実装する。ここで、FCAMミラーキャッシュはまた、ホストに対しローカルの更新を反映させる緩慢なライトスルーポリシーを実装する。
一実施形態において、FCAM構成トラフィックは、メモリ書き込みセマンティクスを使用する。結果的に、いくつかの実装において、レガシのPCI/PCIe機能に対し、そのようなメモリ書き込みセマンティクスの変換が利用される。変換の特定の一例示として、書き込みは上記の通り機能するが、レガシデバイス622のための構成空間はレガシブロックとして扱われ、メモリ書き込みセマンティクスは、レガシの構成書き込みのような構成書き込みに変換される。読み取りは、FCAMキャッシュからはサービス提供されず、レガシデバイス622に渡される。一シナリオにおいて、FCAM可能なデバイスは、デバイス準備状態(DRS)様の、若しくは機能準備状態(FRS)メッセージ機構または構成ベースアドレスレジスタ(CBAR)様のメッセージ機構のような、一意のメッセージの使用を介して自己識別する。
上記の通り、従来の統合されていない機能/デバイスに加え、システムオンチップ(SoC)内のような統合された機能/デバイスに対し、高速構成機構が実行されてよい。個別の実装、すなわち、機能が統合されていない実装について、例示的な一プロトコル機構がここに記載される。ここで、FCAM機構は、特別なアドレスに対するメモリ書き込みを使用して動作する。特別なアドレスとは、例えば、構成ベースアドレスレジスタ(CBAR)を介して機能に関連付けられた範囲およびメモリ内の任意の場所に配置可能な、ホスト/ルートコンプレックス610上の別の範囲である。一実施形態において、自身をFCAM可能であると識別するデバイスによって送信されるメッセージに応答して送信されるホスト610からのメッセージを使用して、CBARアドレス範囲は設定される。例示的なワイヤプロトコルで継続し、CBAR範囲はインオーダでコミットされ、長期間ストールされない。また、デバイスからホストの領域への更新は、例えば、割り込み、待機状態から戻るためのトリガ(MWAIT)、または何らかの他の既知の機構といった、ホストソフトウェアの通知を発生させる。さらに、いくつかの実装において、CBAR更新の際、アクションをトリガすべく、通知機構が提供される。
図7を参照すると、相互接続アーキテクチャの要素を構成するためのコントローラの一実施形態が示されている。一実施形態において、コントローラ705はルートコントローラを含む。同様に、コントローラ705は、ルートコンプレックス、ホスト、ホストブリッジまたはPCIeアーキテクチャのルート様相のための集約ポイントとして通常動作する高レベルな階層要素のための他の名前で称されてよい。特定の一例示として、ルートコントローラ705は、メモリコントローラを含み、メモリコントローラは、プロセッサまたはSoCに統合されても統合されなくてもよい。
コントローラ705はまた、I/Oデバイスに連結されるI/Oコントローラであってよい。または、コントローラ705は、統合されたエンドポイントデバイス735とのインタフェースを取るための、SoC上の論理ブロックであってよい。
インタフェースロジック715、716および717は、PCIeデバイス、ブリッジ、機能、およびエンドポイントのような要素とのインタフェースを取るロジックを含む。その最も基本的な形態において、インタフェースロジック715は、列挙された複数のデバイスに物理的に連結するための物理層インタフェースを含む。しかしながら、上述の通り、コントローラ705は、デバイスと通信するための層状スタックを含んでよい。さらに、各層は、同一または異なる仕様に基づいてよいことに留意することが重要である。例えば、プロトコル層、リンク層、および物理層は、1または複数のPCIe仕様に基づいてよい。または代替として、PHY層の少なくとも一部が、MPHY仕様のようなMIPI PHY仕様に基づいてよい一方で、残りの層はPCIeベースである。結果的に、相互接続アーキテクチャがPCIeプロトコル準拠、すなわち1または複数のPCIeプロトコル定義に実質的に準拠しつつ、それらのプロトコルを異なる物理的に定義されたインタフェースを介して実装してよい。物理インタフェースのいくつかの例には、低電力のPHY仕様、モバイルインダストリペリフェラルインタフェース(MIPI)PHY仕様、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)PHY仕様、およびより高性能および高電力なPHY仕様が含まれる。しかしながら、それらの層の目的は、それらの内部動作をお互いのために抽出することであるので、任意の既知のPHYインタフェースが利用されてよい。さらに、FCAMはPCIeではない別のプロトコルまたはリンク層適合の中で利用されてよく、これについては後により詳しく記載する。
図7はまた、複数の要素を示し、それらにはデバイス、機能、スイッチ、ブリッジ、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)仕様で定義された複数のプロトコル通信を認識可能なPCIeデバイス、PCIe仕様で定義された複数のプロトコル通信を認識不能な非PCIeデバイス、または他の既知のI/Oデバイスが含まれてよい。一例として、図7は、本明細書に記載のレガシの変換器を持つスイッチ725を示している。結果的に、デバイス735がレガシ機能であると仮定すると、スイッチ725は、メモリ書き込みセマンティクスの構成書き込みへの、およびメモリ読み取りセマンティクスの構成読み取りへのレガシの変換を実行し、下位互換性を保証する。このシナリオにおいては、デバイス726および727は、FCAMサポートを含む。
コントローラ705は、FCAMブロック710を含む。一実施形態において、FCAMブロック710は、デバイス725、726、727および735を効率的に構成するための高速構成機構をサポートするハードウェアを含む。いくつかの実施形態において、FCAMブロック710は、高速構成をサポートする特定の操作を実行すべく、ローカルに実行される併置コードも含んでよいことを留意されたい。例示の実施形態において、FCAMブロック710は、構成制御ロジック711および構成ストレージ712を含む。構成ストレージ712は1つの論理ブロックとして示されるが、そのようには限定されない。実際、構成ストレージ712は、併置されない複数の別個のストレージ要素であってよい。特定の一例示として、構成ストレージ712は、次のものを含んでよい。すなわち、構成空間のためのベースアドレスを格納するレジスタ、書き込みをキャッシュし、制御ロジック711と連携して構成のためのメモリ書き込みセマンティクスを実装するためのキャッシュ、および構成コンテキスト情報自体のためのストレージ/キャッシュである。これらのアイテムのうちの1つ、またはこれらのアイテムの組み合わせが、構成ストレージ712としてコントローラ705内に含まれてよいことに留意されたい。しかしながら、説明を簡単にするために、構成ストレージの上記複数の例のうちの1つ1つについて、以下に別個に説明する。
第1の例として、構成ストレージ712は、ホストプロセッサ構成リクエストに対しサービス提供するためのキャッシュを含む。ここで、ホストプロセッサが、構成書き込みまたは他の書き込みを発行し、完全な終了(エンドポイントデバイスにおける更新および完了通知)まで待機する代わりに、プロセッサは、ホストプロセッサが実行を継続できるように、即座に完了を提供すべく、メモリ書き込みを発行し、FCAMブロック710に依存することができる。この間、FCAMブロック710は、メモリ書き込みを、デバイス構成レジスタ/空間への書き込みとしてサービス提供する。換言すると、ホストから見て、完了がより迅速に行われ得るよう、キャッシュはホストにより開始された構成書き込みをバッファする。この実施形態において、デバイス726の構成レジスタは、メモリ内の構成空間にマップされ、デバイス726内の特定の構成レジスタへの書き込みは、特定の構成レジスタに関連付けられるメモリ内の構成空間内のメモリアドレスをアドレス指定する。メモリアドレスへの書き込みが実行されるとき、キャッシュは書き込みをバッファし、ホストに対し完了を提供し、書き込みのメモリアドレスにマップされる特定の構成レジスタに書き込みを提供する。また、キャッシュは、ライトコンバイニング、マージング、コラプシングといった他の強化点を提供してよい。
別の例として、構成ストレージ712は、構成コンテキストへの参照を保持する。一例において、構成コンテキストへの参照とは、構成空間が位置する参照先を指す。この例において、参照は、メモリアドレス、ポインタ、または構成空間の位置に対する他の既知の参照を含んでよい。ここで、ベースアドレスレジスタのようなアドレスレジスタは、図6のアドレス空間626のような、要素に関連付けられるメモリマップされた構成空間へのアドレス参照を保持してよい。
別の実施形態において、構成コンテキストへの参照とは、メモリ場所または他の場所のような、構成コンテキストのキャッシュされたコピーが保持される場所を指す。または、別の実施形態において、構成コンテキストへの参照には、構成コンテキストを構成コンテキストが関連付けられるデバイスと関連付ける参照を含む。例えば、デバイス726が低電力状態の間、構成ストレージ712がデバイス726のキャッシュ構成コンテキストを保持すると仮定すると、この実施形態においては、構成コンテキストへの参照は、ストレージ712内の構成コンテキスト自体、および、構成ストレージ712内のデバイス726とコンテキストを関連付けるデバイスID、インデックス、ヘッダ等のような参照を含む。
さらに別の例において、構成ストレージは、構成コンテキストを保持する。本明細書に記載の通り、構成空間は、情報の定義済みテンプレートを潜在的に順守する。デバイス726のようなデバイスがより低電力状態に入る場合、その構成空間情報は失われてよい。結果的に、一実施形態において、その構成空間情報は、デバイス726がアクティブ状態に再び入る際、復元されるべく、キャッシュされる。ここで、キャッシュコンテキスト情報は、任意の場所に格納されてよい。従って、一実施形態において、構成ストレージ712は、構成空間のキャッシュされたコピーの格納場所への参照を保持する。異なる例として、デバイス726がFCAM可能であると仮定すると、スイッチ725はFCAMキャッシュを含む。スイッチ725内のFCAMキャッシュは、デバイス726の構成空間のキャッシュされたコピーを保持してよい。アクティブな電力状態に再度入るリクエストの際、コントローラ705は、デバイス726の構成空間を再構築すべく、そのキャッシュされたコピーを提供してよい。
別の実施形態において、構成ストレージ712は、機能726のようなデバイスのための構成コンテキストを保持する。結果的に、このシナリオにおいては、デバイス726が低電力状態に入る場合、構成空間(または少なくともその一部)は、構成ストレージ712に格納される。換言すると、デバイス726(統合されているか、または別個であるかを問わず)の構成データは、構成ストレージ712に書き込まれ、その後、デバイス726は低電力状態に入る。アクティブ状態に再度入る際、プロセッサが、レガシの構成書き込みを使用して、構成情報を再書き込みする必要なく、デバイス726の構成コンテキストが提供される。結果として、図6のプロセッサ605のようなホスト処理デバイスからの指示介入または直接アクセスなしで、FCAMブロック710を使用して、デバイス726のパワーダウンおよびパワーアップは非常に高速に行われることが可能である。
上述の通り、一実施形態において、構成コンテキストは、デバイス726のような要素のための複数の構成空間パラメータに対する状態を含む。結果的に、コンテキストは、レジスタの値およびデバイス726のパラメータを保持してよく、それらのいくつかが、レガシブロックおよびクリーンブロックを持つ構成空間テンプレートに関連して本明細書に記載される。一実施形態において、構成データは、デバイス726内の複数の構成レジスタからのデータを含む。
また、上記に示唆した通り、一実施形態において、コンテキストの格納または復元(例えば、キャッシュされたコピーからコンテキストを提供/ライトバックする)は、電源イベントに応答して行われる。電源イベントは、電圧または電力の実際の変化を含んでよい。さらに、他の実施形態において、電源イベントとは、状態の変化、状態の要求される変化、または、リンク状態の変化(例えば、リンクの状態機械のある状態から別の状態への移行、または定義される電力状態に入る/出る移行)のような状態間の移行期を指す。コンテキストの格納またはバックアップの場合、電源イベントは、スリープ状態(RTD3)のような低電力状態へのエントリ(またはエントリのリクエスト等のエントリの指標)を含んでよい。キャッシュ712内にあるようなキャッシュコピーからのコンテキストの復元または提供については、キャッシュ制御ロジック711は、アクティブな電力状態へのエントリ(またはエントリのリクエスト等のエントリの指標)に応答して、コンテキストを開始または提供してよい。電源イベントの他の例としては、要素がアクティブな電力状態に入るという指標、要素がリンクトレーニングを完了するという指標、要素がリンク初期化または動作の別の段階を完了するという指標、またはリンクがリンク状態間を移行するという指標が含まれる。一実施形態において、構成コンテキストに関するアクティブな電力状態とは、アクティブな構成空間を有するよう定義される状態であり、スリープまたは低電力モードとは、構成空間情報が潜在的なデータ損失または電力損失に起因し、他の場所に格納されるモードである。
図7の複数のブロックは、論理的に別個かつ異なるものとして示されるものの、実際の実装はそのように異なるものでなくてよく、代わりに、ブロックの境界が重なる、または同一デバイスに統合されてもよい。一例示として、ブロックのすべて(コントローラ705およびデバイス725、726、727および735)がSoCとして単一のダイに統合される。ここで、SoCは、標準化された音声通信機能を持つモバイル端末のようなシステムまたは、音声通信機能を有しても有さなくてもよい非モバイル端末内に含まれてよい。
異なる例として、コントローラ705およびデバイス726、727は共に集積回路上にある一方で、スイッチ725およびデバイス735は当該集積回路に個別的に連結される。さらに、すべてのデバイスは個別に分離していてよい。さらに、711および712のような論理ブロックは、互いにおよびインタフェースロジック715、716および717のような他のブロックとインタリーブされてよい。その例においては、FCAM操作を実行するキャッシュまたはロジックは、相互接続アーキテクチャの層状スタックロジック内に含まれてよい。
結果的に、FCAMブロック710は、次のことを潜在的に可能にする。すなわち、統合された相互接続デバイスおよび個別の相互接続デバイスの両方に対する高速構成の適用。ホスト介入およびアーキテクチャ制限事項を減少させることによる、スリープ再開のレイテンシの低減。非ブロック構成アクティビティの同時および独立スレッド。機能拡張の完全サポートを含む、I/Oデバイスの完全仮想化。既存のソフトウェアおよびハードウェアのためのレガシ互換性機構。
図8は、ホストデバイスからのメモリアクセスを使用して、要素を構成するための一実施形態のプロトコル図を示す。ここで、処理要素のようなホスト805が、デバイス815を構成する。ホスト805は、デバイス815をターゲットとする書き込み821を実行する。第1の例として、書き込み821は、構成書き込みを含む。代替的に、書き込み821は、メモリ書き込みセマンティクスを持つメモリ書き込みを含む。後者の場合、メモリ書き込み821は、例えば、デバイス815の構成空間および潜在的にはデバイス815内の特定の構成レジスタにマップされるように、デバイス815に関連付けられるメモリアドレスを参照するメモリ書き込みのためのメモリアドレスを使用して、デバイス815をターゲットとしてよい。
コントローラ810は、書き込み821を受信する。受信は、任意のリンクを介してよい。一実装において、コントローラ810は、プロセッサ805に統合されたコントローラハブである。結果的に、メッセージ821の受信は、オンダイ相互接続からである。しかしながら、コントローラ810はホスト805の外部に存在してもよく、それにより、メッセージ821が、ホスト805の外部の相互接続を経由して送信および受信されるようになる。
一実施形態において、コントローラ810は、メッセージ822を初期化し、デバイス815に送信する。上記の例から継続し、そこでは書き込みは、デバイス815内の構成レジスタという意図されるターゲットを有する。書き込み822は、レジスタを書き込み821からの構成値で更新すべく、構成空間またはデバイスレジスタへのレガシの構成書き込み、またはECAM様の書き込みの形態を取ってよい。
1つのシナリオにおいて、完了823および824が、コントローラ810およびホスト805にそれぞれ返されてよい。ここでわかる通り、ホスト805のメッセージ821の送信から、ホスト805における完了824の受信までに、潜在的な遅延(ホスト構成完了遅延と以下で呼ばれる)が存在する。
図9を参照すると、高速デバイス構成のための構成ロジックの一実施形態が示されている。一実施形態において、FCAMブロック910は、構成を加速化するためのブロックを含み、例えば、上記のホスト構成完了遅延を潜在的に低減し、機能の構成のためのレイテンシを低減等する。
上記と同様、構成ストレージは、多くの形態を取ってよい。例えば、機能のための構成空間への参照を保持するストレージ、構成コンテキストへの参照を保持するストレージ、構成書き込みを保持するストレージ、またはそれらの組み合わせである。構成ストレージの少なくとも2つのタイプが、図9に例示的に提供されている。例えば、FCAMブロック910は、機能に関連付けられる構成空間のベースアドレスを保持するベースアドレスレジスタ911を含む。
第2の例として、キャッシュ913が提供されている。キャッシュ913は、構成コンテキスト(構成空間、構成コンテキストのストレージ場所、または構成コンテキスト自体)への参照を保持してよく、またはキャッシュ913は、デバイス構成のためのメモリ読み取り/書き込みセマンティクスをサポートするキャッシュまたはバッファとして動作してよい。
具体例として、キャッシュストレージ913は、デバイスのための構成コンテキストへの参照を保持する。上記の説明から、これには、構成空間の場所への参照、構成空間のための構成コンテキストの場所、キャッシュされた構成コンテキストが関連付けられるデバイス/機能への参照、構成コンテキスト自体、またはそれらの組み合わせを含んでよいことに留意されたい。
また、一実施形態において、キャッシュ913は、デバイス/機能の構成のためのメモリアクセスセマンティクスをサポートする。ここで、アクセスはホストデバイスによって作成され、キャッシュ913内にバッファ(またはキャッシュ)される。さらに、制御ロジック912は、アクセスをサービス提供する。例えば、アクセスを適切な場所に適切な形態で提供し、また、ターゲットデバイスからの完了なしに、ホストに対し完了を潜在的に提供する。図10を素早く参照すると、この例がさらに示されており、そこでは要素の高速構成の一実施形態のプロトコル図が示されている。
ここでは、デバイス1015内の構成レジスタをターゲットとするメモリアドレスへの書き込み等のメモリアクセス1021が、コントローラ1010に対し送信される。コントローラ1010は、当該書き込みをデバイス1015に、例えばデバイス1015によって認識可能な書き込みのような許容可能なフォーマットで提供し、関連付けられた構成レジスタを、アクセス1021からの新しい値で更新する。このシナリオにおいて、キャッシュ913は、当該書き込みをバッファするために利用されてよい。また、コントローラ1010は、並行してホスト1005に対し、完了を返す(すなわち、書き込み1022を参照するデバイス1015からの完了なしに、またはメッセージ1022の送信/処理と少なくとも部分的に同じ期間に)。
図8と比較してわかる通り、図10におけるデバイス1015を持つレジスタの構成は、ホスト1005から見て、次の点において加速されている。すなわち、それが、図8における書き込み822の完了に応答する、遅延された完了824を待機することなく、迅速(および潜在的に即座)に、コントローラ1010からの完了を受信するという点においてである。
図9に戻ると、構成空間の読み取りも、加速されてよい。例えば、読み取りアクセスがホストデバイスによって作成されてよい。現在のコピーがキャッシュ913内に保持される場合、読み取りは、現在のデータ値を取得すべく、メモリまたはデバイスに向かうことなく、コントローラによってサービス提供され得る。結果的に、一実施形態において、キャッシュストレージ913は、1または複数のプロセッサキャッシュとコヒーレントである。しかしながら、別の実施形態においては、キャッシュストレージ913は、1または複数のプロセッサキャッシュとコヒーレントでない。さらに、いくつかの実装において、キャッシュ913は、関連付けられたデバイスの構成状態と整合する。一例として、いくつかの実装において、キャッシュ913は、ブリッジの背後に実装される。その場合、キャッシュ913は、デバイスの構成状態とは整合するが、プロセッサキャッシュとはコヒーレントではない。
任意の既知の他のキャッシュポリシーまたはアルゴリズムが、制御912およびキャッシュ913のために利用されてよい。例として、制御911およびキャッシュ913は、ライトスルー、ライトバック、または他の既知のキャッシュアルゴリズムを実装してよい。
構成値を保持するためにキャッシュが使用される(構成アクセスのためのまたは構成コンテキストを保持するためのいずれかのバッファとして)一例においては、コントローラおよびFCAMブロック910は、次のことが可能である。すなわち、メモリアドレスを構成レジスタに関連付け、メモリアドレスへのアクセスを受信する。キャッシュ913内にレジスタの構成値を保持/格納する。ホスト処理デバイスからメモリアドレスへのメモリアクセスを、強化された構成アクセス機構モードのような第1の構成モードにおいて構成レジスタに対する構成リクエストに変換する。コントローラまたはスイッチ若しくはブリッジのような下流コンポーネントは、キャッシュ913内に保持される構成値を、ホスト処理デバイスからのメモリアクセスなしに、高速構成アクセスモード(FCAM)のような第2の構成モードにおいて、構成レジスタに対し提供することがさらに可能である。FCAMモードにおいては、ホスト処理デバイスは、加速された完了(上記の通り)を提供しつつ、コントローラがキャッシュし、デバイスに対し提供するメモリアクセスを実行してよいことに留意されたい。しかしながら、FCAMモードにおいては、ホスト処理デバイスによるその同一のメモリアクセスは、キャッシュ913または別のコンポーネントのいずれかに格納される構成コンテキストを復元する必要がない。
図11を参照すると、高速構成機能を示すデバイスのための一実施形態のプロトコル図が示されている。一例として、デバイスは、FCAM可能であると自己識別してよい。図示の通り、リンクは、リンクトレーニング等の何らかのトレーニング120、または他のフェーズ/状態の移行を実行してよい。次に、デバイス1115は、自身がFCAM可能であることを示すメッセージ1125を送信する。一例として、メッセージ1125は、DRSまたはDRS0様のメッセージを含む。別の例として、メッセージ1125は、構成の準備を示すための構成ベースアドレスレジスタ(CBAR)メッセージを含む。それは、CBARの場所を示すDRSメッセージに追加するもの、DRSメッセージに代わるものであってよい。メッセージ1125を受信すると、コントローラ1110は次にデバイス1115を、場合によっては直接的なホスト介入なしに、FCAMまたはCBAR機構を使用して、構成可能である。いくつかの例において、レガシ互換性をサポートすべく、ルートコンプレックス1110(またはスイッチ)は、リセット等の電源イベント後、一定時間(例えば、例示的な時間範囲としては1msから500msであり、100msのような特定値であってよい)、構成リクエストを発行することを阻止されてよい。しかしながら、その間にFCAM機能を示すDRSまたはCBARメッセージが受信される場合、構成1130は、さらに一切待機することなく、即座に開始されてよい。
次に図12を参照すると、相互接続アーキテクチャ内の要素のための構成空間の一実施形態が示されている。図示の通り、構成ベースアドレス領域またはデータ構造のような構成領域1205は従って、レガシブロック1210およびクリーンブロック1215を含む。ここで、レガシブロック1210への複数の書き込みは、ブロック1210に対する、例示的なフォーマットで図示されるように、データがインタリーブされた複数の読み取り/書き込みバイト選択を潜在的に含む。図示の通り、ブロック1210のフォーマットは、ヘッダ1211、マスク122、およびデータ1213aから1213gを含み、データは一例としてダブルワードを含む。さらに、一実施形態において、レガシブロック1210への複数の書き込みは昇順のアドレス順序でコミットされ、適切に処理されることが保証される副次的効果を持つ。
クリーンブロック1215は、一実施形態において、複数の読み取り/書き込みバイト選択を含まないが、代替的な実施形態においては、含んでよい。クリーンブロック1215のビット定義は、副次的効果がブロックレベルで安全であるという態様で定義されてよい。ここでも、複数の書き込みを昇順のアドレス順序でコミットすることが依然好ましくてよい。一実施形態において、コントローラ内の構成ロジックおよびデバイス内のロジックが、クリーンブロック領域1215に対するライトコンバイニングおよびマージングをサポートすることができる。
図13は、デバイスを構成する方法のための一実施形態のフロー図を示す。上記から、本明細書に記載のロジックによって実行される複数のプロトコルフローまたは動作のうちの任意のものが方法として表されてよいことに留意されたい。一例として、図10の説明は、ホストに関連して行われているが、コントローラおよびデバイスがプロトコルメッセージを送信する。メッセージ送信(すなわち、メッセージ1021およびメッセージ1021に応答する完了1023は、方法としても表されてよい)。逆に、本明細書に記載の任意の方法が装置において同様に実装されてよい。
図13の例示的な方法において、高速構成互換性を示すデバイスからの特定のメッセージが、フロー1305において受信される。上記の通り、当該メッセージは、DRS様のメッセージまたはCBARメッセージを含んでよい。ここで、CBARメッセージは、コントローラ内のCBARを更新するために使用される場所(すなわち、ベースアドレス)を参照してよい。その後、フロー1310において、デバイスが当該メッセージの受信に応答して構成される。一実施形態において、デバイスのそのような構成は、構成コンテキストを復元している。ここで、FCAM可能なメッセージが受信される。デバイスがスリープに入る場合、デバイスは構成コンテキストをキャッシュのような構造に保存する。その後、アクティブ電力モードに入る際、コントローラは、キャッシュされた構成コンテキストおよびデバイスのFCAM機能に基づいて、デバイスを直接的に構成できる。または、リセットまたは電力オンの際、コントローラは、FCAM可能メッセージの受信に応答してデバイスを即座に構成できる。いずれかの方法で、FCAM可能デバイスの1または複数の構成レジスタは、更新または構成されてよい。
一実施形態において、フロー1310におけるデバイスの構成は、構成アドレス空間への第1のメモリ書き込みの開始および構成アドレス空間に直交するルートコンプレックスメモリ空間への第2のメモリ書き込みの開始を含む。
図14を参照すると、低電力コンピューティングプラットフォームの一実施形態が示されている。一実施形態において、低電力コンピューティングプラットフォーム1400は、ユーザ機器(UE)またはモバイル端末を含む。いくつかの実施形態において、UEとは、音声通信機能を持つデバイスのような、通信に使用され得るデバイスを指す。UEの例としては、電話およびスマートフォンが含まれる。しかしながら、低電力コンピューティングプラットフォームとはまた、より低電力の動作ポイントを取得するための任意の他のプラットフォームを指してよく、例えば、タブレット、低電力ノートブック、超軽量または極薄型ノートブック、マイクロサーバサーバ、低電力デスクトップ、送信デバイス、受信デバイス、またはモバイル端末以外の任意の他の既知の若しくは入手可能なコンピューティングプラットフォームが挙げられる。示されるプラットフォームは、複数の異なるデバイスを連結するための多くの異なる相互接続を示す。これらの相互接続の例示的な説明が以下に記載され、本明細書に開示の装置および方法に係る実装および包含におけるオプションを提供する。例えば、図示および記載される相互接続プロトコルのうちの任意のものが、PCIeアーキテクチャ自体を潜在的に実装することなく、PCIeアーキテクチャに関する上記記載と同様の高速構成機構を実装してよい。しかしながら、低電力プラットフォーム1400は、示される相互接続またはデバイスを含むまたは実装する必要はない。さらに、具体的に示されない他のデバイスおよび相互接続構造が含まれてよい。
図の中央から始め、プラットフォーム1400は、アプリケーションプロセッサ1405を含む。通常、これは低電力プロセッサを含み、低電力プロセッサは、本明細書に記載または業界で既知のプロセッサ構成のバージョンであってよい。一例として、プロセッサ1400はシステムオンチップ(SoC)として実装される。特定の一例示として、プロセッサ1400は、i3、i5、i7のようなインテル(登録商標)アーキテクチャコア(商標)ベースのプロセッサ、またはカリフォルニア州サンタクララのインテルコーポレーションから入手可能な別のそのようなプロセッサを含む。しかしながら、カリフォルニア州サニーベールのAdvanced Micro Devices,Inc.(AMD)から入手可能な他の低電力プロセッサ、カリフォルニア州サニーベールのMIPS Technologies,Inc.のMIPSベースの設計、ARM Holdings,Ltd.またはその顧客、または彼らのライセンシー若しくは採用者からライセンスされるARMベースの設計が代わりに、Apple A5/A6プロセッサ、Qualcomm Snapdragonプロセッサ、またはTI OMAPプロセッサのような他の実施形態において存在してよいことを理解されたい。これらの会社のプロセッサおよびSoC技術の進歩につれ、ホストプロセッサ1400と別個に示されるより多くのコンポーネントが、SoCに統合されてよいことに留意されたい。結果的に、同様の相互接続(およびそこにおける複数の発明)は「オンダイ」使用されてよい。
一実施形態において、アプリケーションプロセッサ1405は、オペレーティングシステム、ユーザインタフェースおよびアプリケーションを実行する。ここで、アプリケーションプロセッサ1405は通常、オペレーティングシステム、ユーザインタフェース、およびアプリケーションが、プロセッサ1405の動作/実行を指示するために利用する命令セットアーキテクチャ(ISA)を認識またはそれに関連付けられる。また、それは通常、センサ、カメラ、ディスプレイ、マイクおよび大容量ストレージとのインタフェースを取る。いくつかの実装は、タイムクリティカルな電気通信関連の処理を他のコンポーネントにオフロードする。
図示の通り、ホストプロセッサ1405はWLAN、WiGig、WirelessHD、または他の無線インタフェースのような無線インタフェース1430に連結される。ここで、ホストプロセッサ1405および無線インタフェース1430に連結するため、LLI、SSICまたはUniPort準拠の相互接続が利用される。
LLIとは、低レイテンシインタフェースを表す。LLIは通常、2つのデバイス間でのメモリ共有を可能にする。双方向インタフェースは、メモリトランザクションを2つのデバイス間でトランスポートし、デバイスが別のデバイスのローカルメモリにアクセスすることを可能にする。通常、これは、あたかもそれが単一デバイスであるかのように、ソフトウェアの介入なしに行われる。一実施形態において、LLIは、3つのクラスのトラフィックを可能にし、リンク経由で信号を搬送し、GPIO数を低減する。一例として、LLIは、通信のための層状プロトコルスタックまたは以下により詳細に記載されるMPHYのような物理層(PHY)を定義する。
SSICとは、スーパースピードインターチップ(SuperSpeed Inter−Chip)を指す。SSICは、低電力物理層を使用する高速USBデバイスの設計を可能にする。一例として、より良好な電力性能のために、USB3.0準拠のプロトコルおよびソフトウェアがMPHYの上方で利用されるとき、MPHY層が利用される。
UniProは、物理層抽象化を用いて層状プロトコルスタックを記述し、アプリケーションプロセッサ、コプロセッサ、モデムおよび周辺機器のような広範なデバイスおよびコンポーネントを相互接続するための汎用のエラー処理用高速ソリューションを提供するのに加え、制御メッセージ、バルクデータ転送およびパケット化ストリーミングを含む、異なるタイプのデータトラフィックをサポートする。UniProは、MPHYまたはDPHYの利用をサポートしてよい。
本明細書に記載の装置および方法を利用し得る他のインタフェースを介して、デバッグ1490、ネットワーク1485、ディスプレイ1470、カメラ1475、およびストレージ1480のような他のインタフェースもホストプロセッサ1405に直接連結されてよい。
デバッグインタフェース1490およびネットワーク1485は、例えば、PTIのようなデバッグインタフェース1491、または例えば、機能ネットワーク接続1485を介して動作するデバッグインタフェースのようなネットワーク接続を介して、アプリケーションプロセッサ1405と通信する。
ディスプレイ1470は、1または複数のディスプレイを含む。一実施形態において、ディスプレイ1470は、タッチ入力を受信/感知可能な1または複数のタッチセンサを持つディスプレイを含む。ここで、ディスプレイ1470は、ディスプレイインタフェース(DSI)1471を介して、アプリケーションプロセッサ1405に連結される。DSI 1471は、D‐PHY物理インタフェースを利用し得るホストプロセッサと周辺デバイスとの間のプロトコルを定義する。DSI 1471は通常、ディスプレイピクセルインタフェース2(DPI‐2)のようなピクセルフォーマットおよびビデオフォーマットおよびシグナリングのための定義済みコマンドセット、およびディスプレイコマンドセット(DCS)を介するような制御ディスプレイモジュールパラメータを採用する。一例として、DSI 1471は、レーン毎に約1.5Gb/sまたは最大6Gb/sで動作する。
一実施形態において、カメラ1475は、静止画像、ビデオキャプチャ、またはその両方のために使用されるイメージセンサを含む。フロントサイドカメラおよびバックサイドカメラが、モバイルデバイスでは一般的である。立体サポートを提供すべく、デュアル‐カメラが使用されてよい。図示の通り、カメラ1475は、CSI 1476のような周辺相互接続を介して、アプリケーションプロセッサ1405に連結される。CSI 1476は、周辺デバイス(例えば、カメラ、イメージ信号プロセッサ)およびホストプロセッサ(例えば1405、ベースバンド、アプリケーションエンジン)間のインタフェースを定義する。一実施形態において、イメージデータ転送は、データおよびクロック信号との一方向差動シリアルインタフェースであるDPHY経由で実行される。一実施形態において、周辺機器の制御は、カメラ制御のような別個のバックチャネルを経由して行われる。一例示として、CSIの速度は、50Mbps〜2Gbpsにわたってよく、またはその範囲内の任意の範囲/値であってよい。
一例において、ストレージ1480は、大量の情報を格納すべく、アプリケーションプロセッサ1405によって使用される不揮発性メモリを含む。ストレージ1480は、フラッシュ技術またはハードディスクのような磁気タイプのストレージに基づいてよい。ここで、1480はユニバーサルフラッシュストレージ(UFS)相互接続1481を介してプロセッサ1405に連結される。一実施形態において、UFS 1481はモバイルシステムのような低電力コンピューティングプラットフォーム用に調整された相互接続を含む。一例として、UFS 1481は、ランダムな読み取り/書き込みの速度を上げるべく、キュー機能を利用して、200から500MB間の転送速度(例えば、300MB/s)を提供する。一実装において、UFS 1481は、MPHY物理層およびUniProのようなプロトコル層を使用する。
モデム1410は通常、変調器/復調器を表す。モデム1410は通常、セルラーネットワークへのインタフェースを提供する。モデム1410は、使用される通信規格に応じて、異なるネットワークタイプ、異なる周波数と通信可能である。
一実施形態において、音声およびデータ接続の両方がサポートされる。モデム1410は、LLI、SSIC、UniPro、Mobile Express等のうちの1または複数のような、任意の既知の相互接続を利用して、ホスト1405に連結される。一実施形態において、無線1435、スピーカ1440、マイク1445のような制御インタフェースまたはデータインタフェースを連結するために、制御バスが利用される。そのようなバスの一例がSLIMbusであり、それは広範なオーディオおよび制御ソリューションをサポート可能な柔軟性のある低電力マルチドロップインタフェースである。他の例としては、PCM、I2S、I2C、SPI、およびUARTが含まれる。無線1435は、2つのデバイス間の短距離通信規格(例えば、Bluetooth(登録商標)またはNFC)、位置および/または時間を三角測量可能なナビゲーションシステム(例えば、GPS)、アナログ放送または無線放送用の受信機(例えば、FMラジオ)、または他の既知の無線インタフェース若しくは規格のようなインタフェースを含む。スピーカ1440は、着信音または音楽を生成する電子機械デバイスのような、サウンドを生成する任意のデバイスを含む。ステレオまたはマルチチャネルサウンド用に複数のスピーカが使用されてよい。マイク1445は通常、電話中の呼び出しのような音声入力のために利用される。
無線周波数集積回路(RFIC)1415は、無線信号の処理のようなアナログ処理を行い、例えば、増幅、ミキシング、フィルタリング、およびデジタル変換が挙げられる。図示の通り、RFIC 1415は、インタフェース1412を介してモデム1410に連結される。一実施形態において、インタフェース1412は、LTE、3GPP、EGPRS、UMTS、HSPA+、およびTD−SCDMAのような通信規格をサポートする双方向高速インタフェース(例えば、DigRF)を含む。具体例として、DigRFは、M‐PHY物理層に基づくフレーム指向のプロトコルを利用する。DigRFは通常、最適化されたピン数を備えた、フレンドリーで、低レイテンシで、低電力なRFと称され、これは一般的に、1レーンにつき1.5から3Gbpsの間で動作し、4レーンのような複数のレーンで構成可能である。
インタフェース1461(例えば、RF制御インタフェース)は、簡易デバイスから複雑なデバイスまでサポートする柔軟なバスを含む。具体例として、インタフェース1461は、RFフロントエンドコンポーネントの制御用に設計された、柔軟な2つの配線から成るシリアルバスを含む。1つのバスマスタは、RF信号を増幅させる電力アンプ1450、センサ入力を受信するセンサ、ネットワークモードに応じてRF信号パス間で切り替えるスイッチモジュール1460、およびアンテナの不良状態を補償するまたは帯域幅を上げるアンテナチューナ1465のような複数のデバイスに対し、書き込みおよび読み取りを行ってよい。一実施形態において、インタフェース1461はタイムクリティカルなイベントおよび低EMIのグループトリガ機能を有する。
モバイルデバイス1400内のすべての異なるコンポーネントに対し、モバイルデバイス内のコンポーネントの効率を改善するために、電圧を上げ下げする等、電力管理された電圧を提供すべく、電力管理1420が使用される。一実施形態において、電力管理1420はまた、バッテリの充電および残りのエネルギーを制御および監視する。電力管理1420とバッテリとの間に、バッテリインタフェースが利用されてよい。一例示として、バッテリインタフェースは、モバイル端末と、スマート/低コストバッテリとの間に単一配線の通信を含む。
ここで図15を参照すると、マルチコアプロセッサの一実施形態のブロック図が示されている。図15の実施形態において示される通り、プロセッサ1500は、複数のドメインを含む。具体的には、コアドメイン1530は、複数のコア1530A〜1530Nを含み、グラフィックドメイン1560は、メディアエンジン1565を有する1または複数のグラフィックエンジンおよびシステムエージェントドメイン1510を含む。ここで、本明細書で開示される高速構成機構が実装され、グラフィック1565または他のエージェントのような統合デバイス/機能を構成してよい。ここで、いくつかの実装において、システムエージェント1510はルートコントローラまたはコンプレックスとして動作してよい一方で、コア1530はホスト処理デバイスを含むことに留意されたい。
様々な実施形態において、システムエージェントドメイン1510は、電力制御イベントおよび電力管理を処理し、その結果ドメイン1530および1560(例えば、コアおよび/またはグラフィックエンジン)の複数の個々のユニットは、特定のユニットで発生するアクティビティ(または非アクティビティ)の観点から、適切な電力モード/レベル(例えば、アクティブ、ターボ、スリープ、休止状態、ディープスリープ、または他のAdvanced Configuration Power Interfaceのような状態)で動的に動作するよう独立的に制御可能である。ドメイン1530および1560の各々は、異なる電圧および/または電力で動作してよく、さらに当該複数のドメイン内の個々のユニットはそれぞれ、独立した周波数および電圧で潜在的に動作する。3つのドメインのみが示されているが、本発明の範囲はこの点には限定されず、他の実施形態において、追加のドメインが存在してよいことを理解するよう留意されたい。
図示の通り、各コア1530は、様々な実行ユニットおよび追加の処理要素に加え、低レベルキャッシュをさらに含む。ここで、様々なコアが互いに、かつラストレベルキャッシュ(LLC)1540A〜1540Nにおける複数のユニットまたはスライスから形成される共有キャッシュメモリへ連結され、これらのLLCは通常、ストレージおよびキャッシュコントローラ機能を有し、これらのコアの間だけでなく、潜在的にはグラフィックエンジン間においても共有される。
見ての通り、リング相互接続1550が複数のコアを共に連結し、複数のリングストップ1552A〜1552Nを介して、コアドメイン1530、グラフィックドメイン1560、およびシステムエージェント回路1510間の相互接続を提供する。当該リングストップの各々は、コアとLLCスライスとの間の連結にある。図15に見られるように、相互接続1550は、アドレス情報、データ情報、受信確認情報、およびスヌープ/無効情報を含む様々な情報を搬送するために使用される。リング相互接続が図示されているが、任意の既知のオンダイ相互接続またはファブリックが利用されてよい。一例示として、上記複数のファブリック(例えば、別のオンダイ相互接続、インテルオンチップシステムファブリック(IOSF)、アドバンストマイクロコントローラバスアーキテクチャ(AMBA)相互接続、多次元メッシュファブリック、または他の既知の相互接続アーキテクチャ)のうちのいくつかが、同様の様式で利用されてよい。
さらなる例示の通り、システムエージェントドメイン1510は、関連付けられたディスプレイの制御、およびそれへのインタフェースを提供するディスプレイエンジン1512を含む。システムエージェントドメイン1510は、システムメモリ(例えば、複数のDIMMと共に実装されたDRAM)へのインタフェースを提供する統合メモリコントローラ1520、メモリコヒーレンシ動作を実行するコヒーレンシロジック1522のような他のユニットを含んでよい。プロセッサと他の回路との間の相互接続を可能にすべく、複数のインタフェースが存在してよい。例えば、一実施形態において、少なくとも1つのダイレクトメディアインタフェース(DMI)1516インタフェースに加え、1または複数のPCIe(登録商標)インタフェース1514が提供される。ディスプレイエンジンおよびこれらのインタフェースは通常、PCIeブリッジ1518を介してメモリに連結される。またさらに、追加のプロセッサまたは他の回路等の他のエージェント間での通信を提供するために、1または複数の他のインタフェース(例えば、インテル(登録商標)クイックパスインターコネクト(QPI)ファブリック)が提供されてよい。
次に図16を参照すると、本発明によるシステムオンチップ(SOC)設計の一実施形態が図示されている。特定の一例示として、SOC1600が、ユーザ機器(UE)またはモバイル端末に含まれる。一実施形態において、UEとはユーザによって通信のために使用される、携帯電話のような任意のデバイスを指す。UEは通常、基地局またはノードへと接続し、これらは潜在的に、事実上、GSM(登録商標)ネットワークの移動局(MS)に対応する。しかしながら、図示のSoCは、タブレット、極薄型ノートブック、ブロードバンドアダプタ付きのノートブック、または任意の他の類似の通信デバイスのような他の非モバイル端末において利用されてよい。SoC1600内に、GPU1615、ビデオ1620、ビデオ1625、フラッシュコントローラ1645、SDRAmコントローラ1640、ブートROM1635、SIM1630、電力制御1655、PC1650、または他のロジックブロックのような統合デバイスを構成すべく、高速構成機構が本明細書に記載されるように利用されてよい。ここで、ブロック1610内のコントローラまたは他のロジックがルートコンプレックスとして動作してよい。さらに、図示されたMIPI、HDMI(登録商標)、または他の図示されていないポートに連結されたデバイスを構成すべく、高速構成機構は利用されてよい。
ここで、SoC1600は1606および1607の2つのコアを含む。上記と同様、コア1606および1607は、Intel(登録商標)Architecture Core(商標)ベースのプロセッサ、Advanced Micro Devices, Inc.(AMD)のプロセッサ、MIPSベースのプロセッサ、ARMベースのプロセッサ設計、またはそれらの顧客に加えそれらのライセンシー若しくは採用者等の命令セットアーキテクチャに準拠してよい。コア1606および1607は、システム1600の他の部分と通信するため、バスインタフェースユニット1609およびL2キャッシュ1610に関連付けられたキャッシュ制御1608に連結されている。相互接続1610は、記載された本発明の1または複数の態様を潜在的に実装する、IOSF、AMBA、または上述した他の相互接続のようなオンチップ相互接続を含む。
インタフェース1610は、SIMカードとのインタフェースを取る加入者識別モジュール(SIM)1630、SOC1600を初期化およびブートすべくコア1606および1607によって実行されるブートコードを保持するブートROM1635、外部メモリ(例えば、DRAM1660)とインタフェースを取るSDRAMコントローラ1640、不揮発性メモリ(例えば、フラッシュ1665)とインタフェースを取るフラッシュコントローラ1645、周辺機器とインタフェースを取る周辺コントロールQ1650(例えば、シリアル周辺インタフェース)、入力(例えば、タッチ対応入力)を表示および受信するビデオコーデック1620およびビデオインタフェース1625、グラフィック関連の計算を行うGPU1615等といった他のコンポーネントに対する通信チャネルを提供する。これらのインタフェースのうちの任意のものが、本明細書に記載の本発明の複数の態様を組み込んでよい。
また、本システムは、Bluetooth(登録商標)モジュール1670、3Gモデム1675、GPS1685、およびWiFi 1685のような通信用の周辺機器を示す。上述の通り、UEは通信用無線を含むことに留意されたい。結果的に、これらの周辺通信モジュールがすべて必要なわけではない。しかしながら、UEにおいては、外部通信用の何らかの形式の無線が含まれる。
上記の装置、方法、およびシステムは、前述の通り、任意の電子デバイスまたはシステムに実装されてよいことに留意されたい。具体例として、以下の図は、本明細書に記載の本発明を利用するための例示的なシステムを提供する。以下にシステムがより詳細に記載される通り、多数の異なる相互接続が開示され、記載され、上記説明から再検討される。容易に明らかなように、上記の進歩は、それらの相互接続、ファブリック、またはアーキテクチャのうちの任意のものに適用され得る。
ここで図17を参照すると、本発明の一実施形態によるコンピュータシステム内に存在するコンポーネントのブロック図が示されている。上記と同様、図17に示され/記載される複数のブロックのうちの任意のものを構成すべく、高速構成機構がプロセッサ1710上で利用され、またはそこに連結されてよい。図示の通り、システム1700は、複数のコンポーネントのうちの任意の組み合わせを含む。これらのコンポーネントは、コンピュータシステムに適合される、IC、それらの部分、個別の電子デバイス、または他のモジュール、ロジック、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせとして、または別途にコンピュータシステムの筐体の中に組み込まれたコンポーネントとして、実装され得る。図17のブロック図は、コンピュータシステムの多くのコンポーネントの高レベルの図を示すことが意図されることにも留意されたい。しかしながら、他の実装において、図示される複数のコンポーネントのうちのいくつかは省略可能で、追加のコンポーネントが存在してよく、図示のコンポーネントの異なる配置がなされてよいことを理解されたい。結果的に、上記の本発明は、以下に図示されまたは記載される相互接続のうちの1または複数のうちの任意の部分に実装されてよい。
図17に示されるように、一実施形態において、プロセッサ1710は、マイクロプロセッサ、マルチコアプロセッサ、マルチスレッドプロセッサ、超低電圧プロセッサ、埋め込みプロセッサ、または他の既知の処理要素を含む。例示の実装において、プロセッサ1710は、システム1700の様々なコンポーネントの多くとの通信のためのメイン処理ユニットおよび中央ハブとして動作する。一例として、プロセッサ1700は、システムオンチップ(SoC)として実装される。特定の一例示として、プロセッサ1710は、i3、i5、i7のようなインテル(登録商標)アーキテクチャコア(商標)ベースのプロセッサ、またはカリフォルニア州サンタクララのインテルコーポレーションから入手可能な別のそのようなプロセッサを含む。しかしながら、カリフォルニア州サニーベールのAdvanced Micro Devices,Inc.(AMD)から入手可能な他の低電力プロセッサ、カリフォルニア州サニーベールのMIPS Technologies,Inc.のMIPSベースの設計、ARM Holdings,Ltd.またはその顧客、またはそれらのライセンシー若しくは採用者からライセンスされるARMベースの設計が代わりに、Apple A5/A6プロセッサ、Qualcomm Snapdragonプロセッサ、またはTI OMAPプロセッサのような他の実施形態において存在してよいことを理解されたい。そのようなプロセッサの顧客によるバージョンの多くは、修正および変更されていることに留意されたい。しかしながら、それらはプロセッサのライセンサによって記述される定義済みアルゴリズムを実行する特定の命令セットをサポートまたは認識してよい。ここで、マイクロアーキテクチャ実装は変わる可能性があるが、プロセッサのアーキテクチャ機能は通常は一貫している。一実装におけるプロセッサ1710のアーキテクチャおよび動作に関する具体的な詳細が、さらに詳しく後述され、例示を提供する。
一実施形態において、プロセッサ1710は、システムメモリ1715と通信する。一例示として、一実施形態は、特定量のシステムメモリを提供すべく、複数のメモリデバイスを介して実装され得る。一例として、メモリは、JEDEC JESD 209−2E(2009年4月に公開)による現在のLPDDR2規格、または帯域幅を上げるためにLPDDR2への拡張を供給するであろうLPDDR3若しくはLPDDR4と呼ばれる次世代のLPDDR規格のような電子機器技術評議会(JEDEC)の低電力ダブルデータレート(LPDDR)ベースの設計に従うことができる。様々な実装において、個々のメモリデバイスは、シングルダイパッケージ(SDP)、デュアルダイパッケージ(DDP)またはクアッドダイパッケージ(Q17P)のような異なるパッケージタイプであってよい。いくつかの実施形態において、これらのデバイスは、より低プロファイルなソリューションをもたらすべく、マザーボードに直接半田付けされる一方、他の実施形態においては、それらのデバイスは1または複数のメモリモジュールとして構成され、次に特定のコネクタによってマザーボードに連結される。もちろん、他のタイプのメモリモジュール等、他のメモリ実装が可能であり、例えば、microDIMM、MiniDIMMを含む、異なる様々なデュアルインラインメモリモジュール(DIMM)が挙げられるが、これらに限定されない。特定の例示的な実施形態において、メモリは2GBから16GBの間でサイズ設定され、ボールグリッドアレイ(BGA)を介してマザーボードに半田付けされるDDR3LMパッケージまたはLPDDR2若しくはLPDDR3メモリとして構成されてよい。
データ、アプリケーション、1または複数のオペレーティングシステム等の情報の永続的なストレージを提供すべく、大容量ストレージ1720もまた、プロセッサ1710に連結されてよい。様々な実施形態において、より薄型でより軽量のシステム設計を可能にし、またシステム応答性を改善するために、この大容量ストレージがSSDを介して実装されてよい。しかしながら、他の実施形態において、大容量ストレージは、パワーダウンイベント中に、コンテキスト状態および他のそのような情報の不揮発性ストレージを可能にするSSDキャッシュとして動作するSSDストレージをより少量備えたハードディスクドライブ(HDD)を使用して主に実装されてよく、その結果、システムアクティビティの再開始における高速パワーアップが可能になる。また図17に示される通り、フラッシュデバイス1722が、例えばシリアルペリフェラルインタフェース(SPI)を介してプロセッサ1710に連結されてよい。このフラッシュデバイスは、基本入出力システム(BIOS)およびシステムの他のファームウェアを含む、システムソフトウェアの不揮発性ストレージを提供してよい。
様々な実施形態において、システムの大容量ストレージはSSD単体によって、またはディスク、SSDキャッシュを備える光学ドライブ若しくは他のドライブとして実装される。いくつかの実施形態において、大容量ストレージはレストア(RST)キャッシュモジュールとともに、SSDまたはHDDとして実装される。様々な実装において、HDDは、320GBから4テラバイト(TB)の間およびそれより大きいサイズのストレージを提供する一方、RSTキャッシュは、24GBから256GBの容量を有するSSDを用いて実装される。そのようなSSDキャッシュは、適切なレベルの応答性を提供すべく、シングルレベルキャッシュ(SLC)またはマルチレベルキャッシュ(MLC)オプションとして構成されてよいことに留意されたい。SSDのみのオプションにおいては、モジュールは、mSATAまたはNGFFスロットのような様々な場所に収容されてよい。一例として、SSDは120GBから1TBの範囲の容量を有する。
様々な入/出力(IO)デバイスがシステム1700内に存在してよい。ディスプレイ1724が、図17の実施形態に具体的に示されているが、それは筐体の蓋部分内部に構成される高解像度LCDまたはLEDパネルであってよい。このディスプレイパネルも、タッチスクリーン1725を提供してよく、例えば、ディスプレイパネルの上方外部に適合され、その結果、このタッチスクリーンとのユーザの対話を介して、例えば、情報の表示、情報のアクセス等に関する所望の操作を可能にすべく、ユーザ入力がシステムに供給可能になる。一実施形態において、高性能グラフィック相互接続として実装可能なディスプレイ相互接続を介して、ディスプレイ1724がプロセッサ1710に連結されてよい。タッチスクリーン1725が、別の相互接続を介してプロセッサ1710に連結されてよく、それは一実施形態においてI2C相互接続であってよい。図17にさらに示される通り、タッチスクリーン1725に加え、タッチを手段とするユーザ入力は筐体内に構成可能なタッチパッド1730を介して行われてもよく、タッチパッド1730は、タッチスクリーン1725と同一のI2C相互接続に連結されてよい。
ディスプレイパネルは複数のモードで動作してよい。第1のモードにおいて、ディスプレイパネルは透過的な状態に構成されてよく、その状態においてディスプレイパネルは可視光に対し透過的である。様々な実施形態において、ディスプレイパネルの大半は、周辺のベゼルを除くディスプレイであってよい。システムがノートブックモードで動作する場合、ディスプレイパネルは透過的な状態で動作し、ユーザはディスプレイパネル上に表示される情報を見ることができ、同時にディスプレイ背後にあるオブジェクトも見ることができる。また、ディスプレイパネル上に表示される情報は、ディスプレイ背後に位置するユーザによって見られることができる。または、ディスプレイパネルの動作状態は、可視光がディスプレイパネルを介して送信されない不透明な状態であり得る。
タブレットモードにおいて、システムは、ベースパネルの底面がある面上に置かれるか、またはユーザによって保持されるとき、ディスプレイパネルのバックディスプレイ表面が、外方へとユーザに対面するような位置に置かれるように折り畳んで閉じられる。タブレットモードの動作において、バックディスプレイ表面は、ディスプレイおよびユーザインタフェースの役割を実行し、というのは、この表面はタッチスクリーン機能を有してよく、タブレットデバイスのような従来型タッチスクリーンデバイスの他の既知の機能を実行してよいからである。この目的のために、ディスプレイパネルは、タッチスクリーン層とフロントディスプレイ表面との間に配置される透明度を調整する層を含んでよい。いくつかの実施形態において、透明度を調整する層は、エレクトロクロミック層(EC)、LCD層、またはEC層およびLCD層の組み合わせであってよい。
様々な実施形態において、ディスプレイは、例えば、11.6"または13.3"スクリーンのように様々なサイズであってよく、16:9アスペクト比、および少なくとも輝度300nitを有してよい。また、ディスプレイは、フルハイデフィニション(HD)解像度(少なくとも1920×1080p)であってよく、埋め込みディスプレイポート(eDP)と互換性があってよく、パネルセルフリフレッシュを備える低電力パネルであってよい。
タッチスクリーン機能に関しては、システムは、マルチタッチ容量性の、少なくとも5フィンガー対応のディスプレイマルチタッチパネルを提供してよい。いくつかの実施形態において、ディスプレイは10フィンガー対応であってよい。一実施形態において、タッチスクリーンは、「指の水ぶくれ」を減らし、「指の滑り」を回避すべく、低摩擦用の損傷しづらく、傷がつきにくいガラスコーティング(例えば、Gorilla Glass(商標)またはGorilla Glass2(商標))内に収容される。向上されたタッチ感および応答性を提供すべく、いくつかの実装において、タッチパネルは、ピンチズーム中、静止ビューごとに2フレーム(30Hz)未満のようなマルチタッチ機能、および200msでフレームごとに1cm未満(30Hz)の(指からポインタへのラグ)シングルタッチ機能を有する。いくつかの実装において、ディスプレイは、パネル表面と平坦でもある最小のスクリーンベゼルを持つ端から端までのガラス、およびマルチタッチ使用時の限定されたIO干渉をサポートする。
知覚コンピューティングまたは他の目的のために、様々なセンサが、システム内に存在してよく、異なる態様においてはプロセッサ1710に連結されてよい。特定の慣性および環境センサが、例えばI2C相互接続を介する等、センサハブ1740を通してプロセッサ1710に連結されてよい。図17に示される実施形態においては、これらのセンサは、加速度計1741、環境光センサ(ALS)1742、コンパス1743およびジャイロスコープ1744を含んでよい。他の環境センサは、1または複数の熱センサ1746を含んでよく、これらはいくつかの実施形態において、システム管理バス(SMBus)バスを介してプロセッサ1710に連結される。
プラットフォームにおいて存在する様々な慣性センサおよび環境センサを使用して、多数の異なる使用事例が実現され得る。これらの使用事例は、知覚コンピューティングを含む高度な計算処理を可能とし、また、電力管理/電池寿命、セキュリティ、およびシステム応答性に関する強化も可能とする。
例えば、電力管理/電池寿命の問題に関して、環境光センサからの情報に少なくとも部分的に基づいて、プラットフォームの場所における環境光の状態が判断され、それに応じて、ディスプレイの明度が制御される。故に、ディスプレイ動作における消費電力は、特定の光の条件下で低減される。
セキュリティ操作については、位置情報のようなセンサから取得されたコンテキスト情報に基づき、ユーザが特定の安全なドキュメントにアクセス可能かどうかが判断されてよい。例えば、ユーザは職場または家庭においてそのようなドキュメントにアクセスすることを許容されてよい。しかしながら、プラットフォームがパブリックな場所にある場合、ユーザはそのようなドキュメントへのアクセスが阻止される。一実施形態において、この判断は位置情報に基づいており、例えば、GPSセンサまたはランドマークのカメラによる認識を介して判断される。他のセキュリティ操作は、例えば、本明細書に記載のポータブルプラットフォームおよびユーザのデスクトップコンピュータ、携帯電話等、近距離内のデバイスを互いにペアにすることを提供することを含んでよい。いくつかの実装において、これらのデバイスがそのようにペアにされる場合、特定の共有が近距離無線通信を介して実現される。しかしながら、これらのデバイスが特定の範囲を超えると、そのような共有は無効にされてよい。さらに、本明細書に記載のプラットフォームおよびスマートフォンをペアにする場合、パブリックな場所にある場合に、これらのデバイスが互いの予め定められた距離を超えて移動されるとき、アラームがトリガされるよう構成されてよい。対照的に、これらのペアにされたデバイスが、例えば、職場または家庭等、安全な場所にある場合、これらのデバイスは、そのようなアラームをトリガすることなく、この予め定められた制限を超えてよい。
センサ情報を使用して応答性も強化されてよい。例えば、プラットフォームが低電力状態にある場合でも、センサは依然として比較的低周波数で実行することを可能にされてよい。従って、慣性センサ、例えば、GPSセンサ等による慣性センサによって判断される、プラットフォームの位置のあらゆる変化が判断される。そのような変化がまったく記録されない場合、Wi−Fi(商標)アクセスポイントまたは同様の無線有効化のような以前の無線ハブへのより高速な接続が行われ、この場合、利用可能な無線ネットワークリソースのスキャンが不要である。故に、低電力状態からのウェイク時、さらに高レベルの応答性が実現される。
多くの他の使用事例は、本明細書に記載のプラットフォーム内の統合センサを介して取得されるセンサ情報を使用して有効にされてよく、上記の複数の例は、例示目的のみであることを理解されたい。本明細書に記載のシステムを使用すると、知覚コンピューティングは、ジェスチャー認識を含む代替的な入力モダリティの追加を許容でき、システムがユーザの動作および意図を感知できるにしてよい。
いくつかの実施形態において、1または複数の赤外線若しくは他の熱感知要素、またはユーザの存在または動きを感知する任意の他の要素が存在してよい。そのような感知要素は、共に動作する、順番に動作する、またはその両方である複数の異なる要素を含んでよい。例えば、感知要素は、光プロジェクションまたはサウンドプロジェクションのような初期感知を提供する要素を含み、初期感知の後には、例えばフライトカメラまたはパターン化光カメラの超音波の時間によるジェスチャー検出のための感知が続く。
また、いくつかの実施形態において、システムは、照射ラインを生成するライトジェネレータを含む。いくつかの実施形態において、このラインは、仮想境界に関する視覚的手がかり、すなわち、空間における架空または仮想の場所を提供し、そこにおいて、仮想境界または平面を通過または打ち破るユーザのアクションは、コンピューティングシステムに関与するための意図として解釈される。いくつかの実施形態において、照射ラインは、コンピューティングシステムがユーザに対し、異なる状態に移行するとき、色が変わってよい。照射ラインは、ユーザに、空間の仮想境界の視覚的手がかりを提供するために使用されてよく、ユーザに対するコンピュータの状態の移行を判断すべく、システムによって使用されてよく、それにはいつユーザがコンピュータへの関与を所望するかを判断することが含まれる。
いくつかの実施形態において、コンピュータは、ユーザの位置を感知し、コンピュータに関与するユーザの意図を示すジェスチャーとしての、仮想境界でのユーザの手の動きを解釈すべく動作する。いくつかの実施形態において、ユーザが仮想ラインまたは平面を通過する際、ライトジェネレータによって生成される光は変化してよく、それにより、ユーザに対し、ユーザが入力をコンピュータに提供するためのジェスチャーを提供するための領域に入ったという視覚的なフィードバックを提供する。
ディスプレイスクリーンは、ユーザに対するコンピューティングシステムの状態の移行に関する視覚的な指標を提供してよい。いくつかの実施形態において、第1の状態において第1のスクリーンが提供されてよく、そこではユーザの存在が、例えば、感知要素のうちの1または複数の使用を介して、システムによって感知される。
いくつかの実装において、システムは、顔認識による等、ユーザ識別を感知するよう動作してよい。ここで、第2のスクリーンへの移行が第2の状態において提供されてよく、そこではコンピューティングシステムがユーザ識別を認識済みで、この第2のスクリーンはユーザに対し、ユーザが新しい状態に移行したという視覚的なフィードバックを提供する。第3のスクリーンへの移行は、第3の状態で発生してよく、そこではユーザは、ユーザ認識を確認済みである。
いくつかの実施形態において、コンピューティングシステムは、ユーザに対する仮想境界の位置を判断するための移行機構を使用してよく、そこでは仮想境界の位置が、ユーザおよびコンテキストとともに変わってよい。コンピューティングシステムは、システムに関与するための仮想境界を示すべく、照射ラインのような光を生成してよい。いくつかの実施形態において、コンピューティングシステムは、待機状態にあってよく、光は第1の色で生成されてよい。コンピューティングシステムは、例えば、感知要素を使用し、ユーザの存在または動きを感知することによって、ユーザが仮想境界を超すに至ったかどうかを検出してよい。
いくつかの実施形態において、ユーザが仮想境界を横切ったとして検出された場合(ユーザの手が仮想境界ラインよりもコンピューティングシステムに近い等)、コンピューティングシステムはユーザからのジェスチャー入力を受信するための状態に移行してよく、その状態において、移行を示す機構は仮想境界が第2の色に変化することを示す光を含んでよい。
いくつかの実施形態において、コンピューティングシステムは次に、ジェスチャーの動きが検出されるかどうかを判断してよい。ジェスチャーの動きが検出される場合、コンピューティングシステムは、ジェスチャー認識処理に進んでよく、ジェスチャー認識処理は、ジェスチャーデータライブラリからのデータの使用を含んでよく、ジェスチャーデータライブラリはコンピューティングデバイスにおけるメモリ内に存在してよく、またはコンピューティングデバイスによって別途アクセスされてよい。
ユーザのジェスチャーが認識されると、コンピューティングシステムは、入力に応答して、ある機能を実行してよく、ユーザが仮想境界内にいる場合、追加のジェスチャーの受信に戻ってよい。いくつかの実施形態において、ジェスチャーが認識されない場合、コンピューティングシステムはエラー状態に移行してよく、そこでは、エラー状態を示す機構は、仮想境界が第3の色に変化することを示す光を含んでよく、システムは、ユーザがコンピューティングシステムと関与するため、仮想境界内にいる場合、追加のジェスチャーを受信するよう戻る。
上記の通り、他の実施形態において、システムは、タブレットモードおよびノートブックモードの少なくとも2つの異なるモードで使用可能なコンバーチブルタブレットシステムとして構成可能である。コンバーチブルシステムは、2つのパネル、すなわちディスプレイパネルおよびベースパネルを有してよく、その結果、タブレットモードにおいて、これら2つのパネルは互いの上面で重なり合って配置される。タブレットモードにおいて、ディスプレイパネルは外側に向き、従来型タブレットにみられるタッチスクリーン機能を提供してよい。ノートブックモードでは、これら2つのパネルは、オープンクラムシェル構成に配置されてよい。
様々な実施形態において、加速度計は、少なくとも50Hzのデータ速度を有する3軸加速度計であってよい。ジャイロスコープも含まれてよく、それは3軸ジャイロスコープであり得る。また、e−コンパス/磁力計が存在してよい。また、1または複数の近接センサが提供されてよい(例えば、蓋が開いている場合、人がシステムの近くにいる(または近くにいない)ときを感知し、電池寿命を延長すべく電力/性能を調整する)。加速度計を含むいくつかのOSのセンサ融合機能について、ジャイロスコープ、およびコンパスが強化機能を提供してよい。また、リアルタイムクロック(RTC)を有するセンサハブを介し、システムの残りが低電力状態にある場合にセンサ入力を受信すべく、センサ機構からのウェイクが実現されてよい。
いくつかの実施形態において、内部の蓋/ディスプレイオープンスイッチまたはセンサは、蓋の開/閉時を示すものであって、システムをコネクトスタンバイに置く、またはコネクトスタンバイ状態から自動的にウェイクするのに用いられ得る。他のシステムセンサは、内部プロセッサ、メモリ、並びに感知されたパラメータに基づいて、プロセッサおよびシステムの動作状態に対する変更を有効にするための皮膚温度モニタリングのためのACPIセンサを含み得る。
一実施形態において、OSは、コネクトスタンバイを実装するMicrosoft(登録商標)Windows(登録商標)8 OS(本明細書においてWin8CSとも呼ばれる)であってよい。Windows(登録商標)8コネクトスタンバイまたは同様の状態を有する別のOSは、本明細書に記載のプラットフォームを介して、非常に低い電力消費でアプリケーションを例えば、クラウドベースの場所に接続されたままにできる非常に低いウルトラアイドル電力を提供可能である。プラットフォームは、3つの電力状態、すなわち、スクリーンオン(通常)、コネクトスタンバイ(既定の「オフ」状態として)およびシャットダウン(ゼロワットの電力消費)をサポート可能である。故に、コネクトスタンバイ状態においては、たとえスクリーンがオフでも、プラットフォームは論理的にオン(最小電力レベルにおいて)である。そのようなプラットフォームにおいては、電力管理がアプリケーションに対し透過的になされ得、最小の電力が供給されるコンポーネントに操作を実行できるようにするオフロード技術に部分的に起因して、常時接続を維持可能である。
また、図17に示される通り、様々な周辺デバイスが、低ピン数(LPC)相互接続を介してプロセッサ1710に連結されてよい。示される実施形態において、様々なコンポーネントが埋め込みコントローラ1735を介して連結され得る。そのようなコンポーネントは、(例えば、PS2インタフェースを介して連結される)キーボード1736、ファン1737、および熱センサ1739を含み得る。いくつかの実施形態において、タッチパッド1730も、PS2インタフェースを介してEC 1735に連結されてよい。また、2003年10月2日付けのトラステッドコンピューティンググループ(TCG)TPM仕様バージョン1.2に従う、信頼されたプラットフォームモジュール(TPM)1738のようなセキュリティプロセッサが、このLPC相互接続を介してプロセッサ1710に連結されてよい。しかしながら、本発明の範囲はこの点に限定されず、セキュア情報の安全な処理およびストレージが、セキュリティコプロセッサ内の静的ランダムアクセスメモリ(SRAM)のような別の保護される場所に置かれてよく、またはセキュアエンクレーブ(SE)プロセッサモードによって保護される場合にのみ復号化される暗号化データブロブとして存在してよいことを理解されたい。
特定の実装において、周辺ポートは、高解像度メディアインタフェース(HDMI(登録商標))コネクタ(フルサイズ、ミニまたはミクロのような異なるフォームファクタであってよい)を含んでよい。例えば、ユニバーサルシリアルバスリビジョン3.0仕様(2008年11月)に従うフルサイズの外部ポートのような1または複数のUSBポートが挙げられ、システムがコネクトスタンバイ状態で、ACの壁のコンセントにプラグが差し込まれる場合、少なくとも1つのUSBポートは、USBデバイス(スマートフォン等)の充電用に電力供給される。また、1または複数のThunderbolt(商標)ポートが提供可能である。
他のポートは、フルサイズSD‐XCカードリーダおよび/またはWWAN用のSIMカードリーダ(例えば、8ピンカードリーダ)のような外部アクセス可能なカードリーダを含んでよい。オーディオについては、ステレオサウンドとマイク機能(例えば、組み合わせ機能)とを持つ3.5mmジャックが、ジャック検出のサポートとともに存在してよい(例えば、蓋内のマイクを使用するヘッドホンのみのサポートまたはケーブル内のマイクを備えるヘッドホン)。いくつかの実施形態において、このジャックは、ステレオヘッドホンとステレオマイク入力との間で再タスク可能であってよい。また、電力ジャックがACブリックに連結するために提供可能である。
システム1700は、無線を含む様々な態様で、外部デバイスと通信可能である。図17に示される実施形態において、様々な無線モジュールが存在し、それらの各々が特定の無線通信プロトコルのために構成された無線機に対応できる。近距離のような短い範囲における無線通信の一態様は、一実施形態においてSMバスを介してプロセッサ1710と通信可能な近距離無線通信(NFC)ユニット1745を介してであってよい。このNFCユニット1745を介して、互いに近接するデバイスが通信可能であることに留意されたい。例えば、ユーザは、システム1700が別の(例えば、)ユーザのスマートフォンのようなポータブルデバイスと、これら2つのデバイスを共に密接に適合し、識別情報、支払情報、イメージデータ等のようなデータといった情報の転送を可能にすることを介して通信可能にすることができる。無線電力転送もNFCシステムを使用して実行されてよい。
本明細書に記載のNFCユニットを使用し、ユーザは、そのようなデバイスのうちの1または複数のコイル間の連結を利用することによって、近距離連結機能(近距離無線通信および無線電力転送(WPT)等)のために、複数のデバイスをサイドツーサイドでバンプし、複数のデバイスをサイドバイサイドで配置することができる。より具体的には、複数の実施形態は、コイルのより良い連結を提供すべく、デバイスに対し戦略的な形状および配置がなされたフェライト材料を提供する。各コイルは、コイルに関連付けられたインダクタンスを有し、それは、システムの共通する共振周波数を有効にすべく、抵抗性、容量、およびシステムの他の機能と関連して選択可能である。
図17にさらに示される通り、追加の無線ユニットが、WLANユニット1750およびBluetooth(登録商標)ユニット1752を含む他の短距離無線エンジンを含むことができる。WLANユニット1750を使用し、特定の米国電気電子学会(IEEE)802.11規格に従うWi‐Fi(商標)通信を実現できる一方、Bluetooth(登録商標)ユニット1752を介して、Bluetooth(登録商標)プロトコルを介する短距離通信が行われ得る。これらのユニットは、例えば、USBリンクまたは汎用非同期送受信機(UART)リンクを介してプロセッサ1710と通信してよい。または、これらのユニットは、例えば、PCI Express(商標)Specification Base Specification version 3.0(2007年1月17日発行)、またはシリアルデータ入/出力(SDIO)規格のような別のそのようなプロトコルによる、ペリフェラルコンポーネントインターコネクトエクスプレス(商標)(PCIe(商標))プロトコルに従う相互接続を介してプロセッサ1710に連結してよい。もちろん、1または複数のアドインカード上に構成可能なこれらの周辺デバイス間の実際の物理的接続は、マザーボードに適合されたNGFFコネクタを介するものであり得る。
また、例えば、セルラーまたは他の無線広域プロトコルによる無線広域通信が、WWANユニット1756を介して行われてよく、WWANユニット1756は次に加入者識別モジュール(SIM)1757に連結されてよい。また、位置情報の受信および使用を可能にすべく、GPSモジュール1755も存在してよい。図17に示される実施形態において、WWANユニット1756およびカメラモジュール1754のような統合キャプチャデバイスは、USB2.0若しくは3.0リンク、またはUART若しくはI2Cプロトコルのような特定のUSBプロトコルを介して通信してよいことに留意されたい。繰り返すが、これらのユニットの実際の物理的接続は、NGFFアドインカードの、マザーボード上に構成されたNGFFコネクタへの適合を介するものであってよい。
特定の実施形態において、例えば、Windows(登録商標)8CSのサポートと共に、WiFi(商標)802.11acソリューション(例えば、IEEE802.11abgnと下位互換性のアドインカード)を用いて、無線機能はモジュール式に提供可能である。このカードは、内部スロット(例えば、NGFFアダプタを介して)に構成可能である。追加モジュールは、Bluetooth(登録商標)機能(例えば、下位互換性を持つBluetooth(登録商標)4.0)およびインテル(登録商標)ワイヤレスディスプレイ機能を提供してよい。また、NFCサポートが、別個のデバイスまたはマルチ機能デバイスを介して提供されてよく、一例として、容易なアクセスのために筐体の前面右部分に配置可能である。さらなる追加のモジュールは、3G/4G/LTEおよびGPSのためのサポートを提供可能なWWANデバイスであってよい。このモジュールは、内部(例えば、NGFF)スロットに実装可能である。統合アンテナサポートが、WiFi(商標)、Bluetooth(登録商標)、WWAN、NFCおよびGPSに対し提供可能であり、WiFi(商標)からWWAN無線、ワイヤレスギガビット仕様(2010年7月)に従うワイヤレスギガビット(WiGig)へ、およびその逆のシームレスな移行を可能にする。
上記の通り、統合カメラが蓋に組み込み可能である。一例として、このカメラは、例えば、少なくとも2.0メガピクセル(MP)の解像度を有し、6.0MPおよびそれ以上に拡張可能な高解像度カメラであってよい。
音声入力および出力を提供すべく、高解像度オーディオ(HDA)リンクを介してプロセッサ1710に連結可能なデジタル信号プロセッサ(DSP)1760を介して、オーディオプロセッサが実装可能である。同様に、DSP1760は、統合コーダ/デコーダ(CODEC)およびアンプ1762と通信してよく、統合コーダ/デコーダ(CODEC)およびアンプ1762は次に、筐体内で実装可能な出力スピーカ1763に連結されてよい。同様に、システム内の様々な操作に対する音声でアクティブ化される制御を有効にするための高品質音声入力を提供すべく、アンプおよびCODEC1762は、一実施形態において、デュアルアレイマイク(デジタルマイクアレイ等)を介して実装可能なマイク1765からの音声入力を受信すべく連結され得る。音声出力は、アンプ/CODEC1762からヘッドホンジャック1764に提供可能なことにも留意されたい。図17の実施形態においては、これらの特定のコンポーネントを用いて示されているが、本発明の範囲は、この点に限定されないことを理解されたい。
特定の実施形態において、デジタルオーディオCODECおよびアンプは、ステレオヘッドホンジャック、ステレオマイクジャック、内部マイクアレイおよびステレオステレオスピーカを駆動可能である。異なる実装において、CODECは、オーディオDSPに統合可能であり、またはHDオーディオパスを介して周辺コントローラハブ(PCH)に連結可能である。いくつかの実装において、統合ステレオスピーカに加え、1または複数のバススピーカが提供可能であり、スピーカソリューションは、DTSオーディオをサポート可能である。
いくつかの実施形態において、プロセッサ1710は、外部電圧レギュレータ(VR)および完全統合電圧レギュレータ(FIVR)と称される、プロセッサダイの内部に統合される複数の内部電圧レギュレータによって電力供給されてよい。プロセッサ内で複数のFIVRを使用することにより、複数のコンポーネントを別個の電源プレーンへグループ化することを可能にし、その結果、電力は、グループ内のそれらのコンポーネントのみに対するFIVRによって制御および供給される。電力管理中、プロセッサが特定の低電力状態に置かれた場合、あるFIVRの特定の電源プレーンはパワーダウンまたは電源オフされてよい一方、別のFIVRの別の電源プレーンは、アクティブまたは完全に電力供給されたままである。
一実施形態において、いくつかのディープスリープ状態中、例えば、プロセッサおよびPCHの間のインタフェース、外部VRとのインタフェース、およびEC 1735とのインタフェースのような複数のI/O信号のためのI/Oピンを電源オンすべく、維持電源プレーンが使用可能である。この維持電源プレーンは、オンボードSRAMまたは、スリープ状態中、プロセッサコンテキストが格納される他のキャッシュメモリをサポートするオンダイ電圧レギュレータにも電力供給する。維持電源プレーンは、様々なウェイクアップソース信号を監視および処理するプロセッサのウェイクアップロジックを電源オンすべく使用される。
電力管理中、プロセッサが特定のディープスリープ状態に入る場合、他の電源プレーンはパワーダウンまたは電源オフされる一方、維持電源プレーンは、上記参照されるコンポーネントをサポートすべく、電源オンのままである。しかしながら、これらのコンポーネントが不要の場合、これは不必要な電力消費またはワット損につながり得る。この目的のため、実施形態は、専用の電源プレーンを使用して、プロセッサコンテキストを維持すべく、コネクトスタンバイのスリープ状態を提供してよい。一実施形態において、コネクトスタンバイのスリープ状態は、PCHのリソースを使用して、プロセッサウェイクアップを容易にし、PCH自体は、プロセッサとのパッケージ内に存在してよい。一実施形態において、コネクトスタンバイのスリープ状態は、プロセッサウェイクアップまで、PCHにおける維持プロセッサアーキテクチャ機能を容易にし、これによって、すべてのクロックのオフを含み、ディープスリープ状態中に以前電源オンのままにされた不要なプロセッサコンポーネントのうちのすべてをオフにすることを可能にする。一実施形態において、PCHは、タイムスタンプカウンタ(TSC)およびコネクトスタンバイ状態中、システムを制御するためのコネクトスタンバイロジックを含む。維持電源プレーンのための統合電圧レギュレータは、PCH上にも存在してよい。
一実施形態において、コネクトスタンバイ状態中、統合電圧レギュレータは、専用キャッシュメモリをサポートすべく電源オンに維持される専用の電源プレーンとして機能してよい。当該専用のキャッシュメモリ内には、プロセッサがディープスリープ状態およびコネクトスタンバイ状態に入る場合のような重大な状態変数のようなプロセッサコンテキストが格納される。この重大な状態は、アーキテクチャ、マイクロアーキテクチャ、デバッグ状態に関連付けられる状態変数、および/またはプロセッサに関連付けられる同様の状態変数を含んでよい。
コネクトスタンバイ状態中、EC 1735からのウェイクアップソース信号が、プロセッサの代わりにPCHに送信されてよく、その結果、PCHは、プロセッサの代わりにウェイクアップ処理を管理できる。また、維持プロセッサアーキテクチャ機能を容易にすべく、TSCがPCH内に維持される。図17の実施形態においては、これらの特定のコンポーネントを用いて示されているが、本発明の範囲は、この点に限定されないことを理解されたい。
プロセッサ内の電力制御は、省電力化の向上をもたらし得る。例えば、電力が動的にコア間で割り当て可能で、個々のコアは、周波数/電圧を変更可能であり、非常に低い電力消費を可能にすべく、複数のディープ低電力状態が提供可能である。また、コアまたは独立のコア部分の動的制御は、コンポーネントが使用されていないとき、それらを電源オフにすることによって、電力消費の低減をもたらし得る。
いくつかの実装は、プラットフォーム電力を制御するための特定の電力管理IC(PMIC)を提供してよい。このソリューションを使用することで、システムは、Win8コネクトスタンバイ状態のような、特定のスタンバイ状態時における延長期間(例えば、16時間)中、非常に低い(例えば、5%未満)バッテリ劣化を実現してよい。Win8アイドル状態において、例えば、9時間を超える電池寿命が実現されてよい(例えば、150nitにおいて)。ビデオ再生については、長い電池寿命が実現可能であり、例えば、フルHDビデオ再生が最低6時間行われ得る。一実装において、プラットフォームは、例えば、SSDを使用するWin8 CSに対し、35ワット時間(Whr)のエネルギー容量を有してよく、RSTキャッシュ構成とともにHDDを使用するWin8 CSに対しては(例えば、)40〜44Whrである。
特定の実装が、15Wの名目上のCPU熱設計電力(TDP)のサポートを提供してよく、構成可能なCPU TDPは最大約25W TDP設計ポイントである。プラットフォームは、上記の熱特徴により、最小のベントを含んでよい。また、プラットフォームは、ピローフレンドリー(熱風がユーザに吹きかからないという意味で)である。異なる最大温度点は、筐体の材料に応じて、実現可能である。プラスチック筐体(少なくともプラスチックの蓋またはベース部分を有する)の一実装において、最大動作温度は摂氏52度(C)であってよい。金属筐体の実装については、最大動作温度は46℃であってよい。
異なる実装において、TPMのようなセキュリティモジュールがプロセッサに統合可能であり、またはTPM2.0デバイスのような個別のデバイスであってよい。プラットフォームトラストテクノロジ(PTT)とも呼ばれる統合されたセキュリティモジュールを用いると、BIOS/ファームウェアが、特定のセキュリティ機能のための特定のハードウェア機能を呈することを可能にされ得る。それには、セキュア命令、セキュアブート、インテル(登録商標)アンチセフトテクノロジ、インテル(登録商標)アイデンティティプロテクションテクノロジ、インテル(登録商標)トラステッドエクゼキューションテクノロジ(TXT)、並びにセキュアキーボードおよびディスプレイのようなセキュアユーザインタフェースと組み合わせたインテル(登録商標)マネージャビリティエンジンテクノロジが含まれる。
多数の例が以下に提供される。これらは単に例示であることに留意されたい。さらに、いくつかは、装置、方法、コンピュータ可読媒体、手段等に言及する。しかしながら、複数の例示のうちの任意のものが提供または交換されてよい。例えば、複数の例示のうちの1つが、実行時に特定のアイテムを実行するコードを有するコンピュータ可読媒体を提供する。それらのアイテムは、それらのアイテムを実行する装置における方法またはロジックのアイテムとして同様にみなされてよい。
一例において、要素に連結されるインタフェースロジックと、上記要素に関連付けられる構成コンテキストへの参照を保持する構成ストレージと、上記構成ストレージと第2のインタフェースとに連結される構成制御ロジックと、を備え、上記構成制御ロジックは、電源イベントに応答して、上記構成ストレージ内に保持される上記構成コンテキストへの上記参照に基づいて、上記要素に関連付けられる上記構成コンテキストの少なくとも部分を構成する、デバイス構成のための装置である。
一例において、上記インタフェースロジックは、低電力のPHY仕様、モバイルインダストリペリフェラルインタフェース(MIPI)仕様、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)仕様、およびより高性能およびより高電力のPHY仕様から成る群から選択される物理層(PHY)仕様に基づく、物理層ロジックを含む。
一例において、上記要素は、PCIe仕様で定義される複数のプロトコル通信を認識可能なペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)デバイスを含む。
一例において、上記構成コンテキストは、上記要素の複数の構成空間パラメータのための状態を含む。
一例において、構成コンテキストへの参照を保持する上記構成ストレージは、上記要素に関連付けられるメモリマップされた構成空間へのアドレス参照を保持するためのアドレスレジスタを含む。
一例において、上記装置はルートコントローラを備え、上記構成ストレージは、上記構成コンテキストへの上記参照および上記構成コンテキストを保持するためのキャッシュストレージを含む。
一例において、上記キャッシュストレージは、上記ルートコントローラに連結されるプロセッサ内に含まれる1または複数のプロセッサキャッシュとコヒーレントである。
一例において、上記キャッシュストレージは、上記ルートコントローラに連結されるプロセッサ内に含まれる1または複数のプロセッサキャッシュとコヒーレントでない。一例において、上記キャッシュストレージは、ライトスルーポリシーを実装する。
一例において、上記構成コンテキストの少なくとも部分を構成するための上記構成制御ロジックは、上記要素を構成すべく、ホストデバイスからの介入がさらにない場合、電源イベントに応答する。
一例において、上記電源イベントは、上記要素がアクティブな電力状態に入るという指標を含む。
一例において、上記電源イベントは、上記要素がリンクトレーニングを完了するという指標を含む。
一例において、上記インタフェースロジック、上記構成ストレージ、および上記構成制御ロジックは、音声通信が可能な無線インタフェースロジックに連結されるシステムオンチップ(SoC)に統合される。
一例において、上記インタフェースロジック、上記構成ストレージ、および上記構成制御ロジックは、非モバイル端末システム内に連結される集積回路上に統合される。
一例において、ホスト処理デバイスと、ストレージと、統合デバイスのための構成データを上記ストレージに書き込み、構成データの上記ストレージへの上記書き込みの後、低電力状態に入る上記統合デバイスと、上記ホスト処理デバイス、上記統合デバイス、および上記ストレージに連結されるコントローラと、を備え、上記コントローラは、上記統合デバイスがアクティブな電力状態に入ることを開始することに応答して、上記ストレージに保持される上記構成データに少なくとも部分的に基づいて、上記ホスト処理デバイスの直接的な介入なしに、上記統合デバイスを構成する、デバイス構成のための装置である。一例において、上記低電力状態は、スリープ電力状態を含む。
一例において、上記構成データは、上記統合デバイス内の複数の構成レジスタからのデータを含む。
一例において、上記複数の構成レジスタは、メモリ内の構成空間にマップされ、上記統合デバイス内の特定の構成レジスタへの書き込みは、上記特定の構成レジスタに関連付けられるメモリ内の上記構成空間内のメモリアドレスをアドレス指定する。
一例において、ホスト処理デバイスに連結する第1のポートと、構成レジスタを含む下流の要素に連結する第2のポートと、上記構成レジスタのための構成値を保持するキャッシュと、メモリアドレスを上記構成レジスタに関連付け可能で、上記ホスト処理デバイスから上記メモリアドレスへのメモリアクセスを、第1の構成モードにおいて上記構成レジスタに対する構成リクエストに変換可能なコントローラと、を備え、上記コントローラは、上記構成レジスタのための上記構成値を、上記ホスト処理デバイスから上記メモリアドレスへの上記メモリアクセスなしに、第2の構成モードにおいて上記構成レジスタに提供することがさらに可能である、デバイス構成のための装置である。
一例において、上記第1の構成モードは、強化された構成アクセス機構(ECAM)モードを含み、上記第2の構成モードは、高速構成アクセス機構(FCAM)モードを含む。
一例において、上記コントローラは、上記構成レジスタのための上記構成値を、上記ホスト処理デバイスから上記メモリアドレスへの上記メモリアクセスなしに、第2の構成モードにおいて上記構成レジスタに提供することがさらに可能であることは、上記コントローラが、上記ホスト処理デバイスからの上記メモリアクセスに含まれる上記構成値を上記キャッシュにキャッシュし、上記メモリアクセスの完了を上記ホスト処理デバイスに提供し、上記キャッシュからの上記構成値を上記要素内の上記構成レジスタに提供する、ことを含む。
一例において、高速構成互換性を示すデバイスからの特定のメッセージを受信する段階と、上記特定のメッセージの受信に応答して、上記デバイスのための構成アドレス空間への参照で構成レジスタを更新する段階と、上記構成アドレス空間への第1のメモリ書き込みを開始する段階を含む上記デバイスを構成する段階と、上記構成アドレス空間に直交するルートコンプレックスメモリ空間への第2のメモリ書き込みを開始する段階と、を含む、デバイス構成のための方法である。一例において、上記特定のメッセージは、クリーンベースアドレスレジスタメッセージを含む。 一例において、上記特定のメッセージは、デバイス準備状態(DRS)メッセージを含む。
一例において、1または複数のクリーン構成レジスタを含むクリーンブロック領域へのライトコンバイニングおよびマージングをサポート可能な構成ロジックと、上流デバイスに連結するポートと、上記ポートに関連付けられる、高速構成機能を示す特定のメッセージを生成するプロトコルロジックと、を備える、高速デバイス構成のための装置である。一例において、上記特定のメッセージは、クリーンベースアドレスレジスタメッセージを含む。一例において、上記構成ロジックは、レガシブロックへの複数の書き込みをさらにサポートする。
一例において、上記レガシブロックへの上記複数の書き込みは、データがインタリーブされた複数の読み取り/書き込みバイト選択を含み、昇順のアドレス順序でコミットされる。
一例において、実行時に、第1のデバイスに対し、第2のデバイスの高速構成機能を示す、特定のメッセージを受信させ、第3のデバイスから、上記第1のデバイスの構成空間に関連付けられるアドレスを参照する書き込みメッセージを受信させ、上記第1のデバイスの上記構成空間への書き込みを開始させ、上記第1のデバイスの上記構成空間への上記書き込みに対する上記第1のデバイスからの応答を受信することなく、上記第2のデバイスに対する上記書き込みメッセージの完了を開始させる、コードを備える、非一時的コンピュータ可読媒体である。
一例において、上記第1のデバイスはエンドポイントデバイスであり、上記第2のデバイスはホスト処理デバイスである。
一例において、上記第1、第2、および第3のデバイスは、上記コードを保持するためのストレージと共に単一の集積回路に含まれる。
本発明は限定数の実施形態に関連して記載されたが、当業者は、そこから多数の修正形態および改変形態を理解するであろう。添付の特許請求の範囲は、そのようなすべての修正形態および改変形態を本発明の真の精神および範囲に属するものとして包含する意図である。
設計は、作成からシミュレーション、製造まで様々な段階を経るであろう。設計を表すデータは、多数の態様でその設計を表現することがある。まず、シミュレーションで有用なように、ハードウェアは、ハードウェア記述言語、または別の機能記述言語を使用して表され得る。また、ロジックおよび/またはトランジスタゲートを用いる回路レベルモデルは、設計プロセスのいくつかの段階において生成され得る。さらに、大部分の設計が、ある段階においてハードウェアモデルにおいて様々なデバイスの物理的な配置を表すデータのレベルに到達する。従来の半導体製造技術が使用される場合、ハードウェアモデルを表すデータとは、集積回路の生産に使用されるマスクのための異なるマスク層における様々な特徴の存在または不存在を指定するデータであってよい。設計の任意の表現において、データは任意の形態の機械可読媒体に格納されてよい。メモリ、またはディスク等の磁気若しくは光ストレージがこの機械可読媒体であってよく、そのような情報を送信すべく、変調されたまたは別途生成された光または電気の波を介して送信される情報を格納する。コードまたは設計を、示しまたは搬送する電気的な搬送波が送信される場合、その電気信号のコピー、バッファ処理、または再送信が実行される範囲において、新しいコピーが作成される。故に、通信プロバイダまたはネットワークプロバイダは、例えば搬送波にエンコードされる情報のような項目を有形な機械可読媒体上に少なくとも一時的に格納してよく、本発明の複数の実施形態に係る技術を具現化する。
本明細書で使用されるモジュールとは、ハードウェア、ソフトウェア、および/またはファームウェアの任意の組み合わせを指す。一例として、モジュールは、マイクロコントローラによって実行されるよう適合されたコードを格納する非一時的媒体に関連付けられるマイクロコントローラ等のハードウェアを含む。従って、一実施形態において、モジュールという言及は、非一時的媒体に保持されるコードを認識および/または実行するよう具体的に構成されたハードウェアを指す。さらに別の実施形態において、モジュールという使用は、コードを含む非一時的媒体を指し、このコードは、予め定められた動作を実行すべく、マイクロコントローラによって実行されるよう特に適合されている。暗示され得るように、さらなる別の実施形態において、モジュールという用語(この例において)は、マイクロコントローラおよび非一時的媒体の組み合わせを指してよい。通常、別個として図示されるモジュールの境界線は、一般に変動し、潜在的に重なり合う。例えば、第1および第2のモジュールは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせを共有し、その一方で、何らかの独立したハードウェア、ソフトウェアまたはファームウェアを潜在的に保持してよい。一実施形態において、ロジックという用語の使用には、トランジスタ、レジスタ、またはプログラマブルロジックデバイスのような他のハードウェア等のハードウェアを含む。
一実施態様における「to(ための)」または「configured to(構成され)」という文言の使用は、指定または判断されたタスクを実行する装置、ハードウェア、ロジック、または要素の配置、組み立て、製造、販売の申し出、輸入および/または設計を指す。この例において、動作していない装置または当該装置の要素が当該指定されたタスクを実行すべく設計、連結、および/または相互接続されている場合、それは指定されたタスクを実行するよう依然として「構成され」ている。純粋に例示として、ロジックゲートは、動作中、0または1を提供し得る。しかしながら、イネーブル信号をクロックに提供するよう「configured to(構成され)」たロジックゲートは、1または0を提供し得るあらゆる潜在的なロジックゲートを含まない。代わりに、ロジックゲートは、動作中に1または0の出力がクロックをイネーブルにするように、いくつかの態様で連結されているものである。用語「configured to(構成され)」の使用は、動作を必要としないがその代わり、装置、ハードウェア、および/または要素の潜在的な状態に重点を置く。その場合、潜在的な状態において、当該装置、ハードウェア、および/または要素が動作中の場合に当該装置、ハードウェア、および/または要素が特定のタスクを実行するよう設計されることに再度留意されたい。
さらに、一実施態様における「capable of/to(することができる)」および/または「operable to(することができる)という用語の使用は、何らかの装置、ロジック、ハードウェア、および/または要素の特定の態様での使用を可能にするよう設計された当該装置、ロジック、ハードウェア、および/または要素を指す。上記の通り、一実施形態における「to(ための)」、「capable to(可能)」または「operable to(することができる)」の使用は、装置、ロジック、ハードウェア、および/または要素の潜在的な状態を指し、この場合、当該装置、ロジック、ハードウェア、および/または要素は動作をしているのではなく、装置の特定の態様における使用を可能にするように設計されていることに留意されたい。
本明細書で使用される値とは、数字、状態、ロジック状態、またはバイナリロジック状態の任意の既知の表現を含む。通常、ロジックレベル、ロジック値、または論理値という使用はまた、「1の」および「0の」とも称され、それは単に複数のバイナリロジック状態を表す。例えば、1は高ロジックレベルを指し、0は低ロジックレベルを指す。一実施形態において、トランジスタまたはフラッシュセル等のストレージセルは、単一の論理値または複数の論理値を保持可能であってよい。しかしながら、コンピュータシステムにおける値の他の表現が使用されている。例えば、10進数の10は、バイナリ値1010として、16進数では文字Aとしても、表され得る。従って、値は、コンピュータシステム内に保持可能な情報の任意の表現を含む。
さらに、状態は値または値の部分によって表されてよい。一例として、論理1のような第1の値が、既定または初期の状態を表してよく、これに対して、論理ゼロのような第2の値が、既定以外の状態を表してよい。また、一実施形態におけるリセットおよび設定という用語は、既定および更新された値または状態を、それぞれ指す。例えば、既定値は潜在的に高論理値、すなわち、リセットを含み、これに対して更新された値は潜在的に低論理値、すなわち、設定を含む。値の任意の組み合わせが、多数の状態を表すために利用されてよいことに留意されたい。
上述の方法、ハードウェア、ソフトウェア、ファームウェアまたはコードに係る複数の実施形態は、機械アクセス可能、機械可読、コンピュータアクセス可能、または処理要素によって実行可能なコンピュータ可読媒体上に格納された命令またはコードを介して実装されてよい。非一時的機械アクセス可能/可読媒体は、コンピュータまたは電子システムのような機械によって読み取り可能な形態で情報を提供(すなわち、格納および/または送信)する任意の機構を含む。例えば、非一時的機械アクセス可能媒体は、静的RAM(SRAM)または動的RAM(DRAM)のようなランダムアクセスメモリ(RAM)、ROM、磁気または光ストレージ媒体、フラッシュメモリデバイス、電気ストレージデバイス、光ストレージデバイス、音響ストレージデバイス、一時的(伝搬される)信号(例えば、搬送波、赤外線信号、デジタル信号)から受信される情報を保持するためのストレージデバイスの他の形態等を含み、これらは、そこから情報を受信可能な非一時的媒体とは区別されるべきである。
本発明の実施形態を実行するロジックをプログラムすべく使用される命令は、DRAM、キャッシュ、フラッシュメモリ、または他のストレージのようなシステム内のメモリ内に格納されてよい。さらに、命令は、ネットワークを介して、または、他のコンピュータ可読媒体を用いて、配信可能である。故に、機械可読媒体は、機械(例えば、コンピュータ)によって読み取り可能な形態で情報を格納または送信するための任意の機構を含んでよい。そのようなものとして、限定はされないが、フロッピー(登録商標)ディスク、光ディスク、コンパクトディスク、リードオンリメモリ(CD―ROM)、および光磁気ディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラマブルリードオンリメモリ(EPROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、磁気または光カード、フラッシュメモリ、または電気形態、光形態、音響形態若しくは他の形態の伝搬信号(例えば、搬送波、赤外線信号、デジタル信号等)を介したインターネット経由での情報送信に使用される有形の機械可読ストレージが挙げられる。従って、コンピュータ可読媒体としては、機械(例えばコンピュータ)によって読み取り可能な形態で電子命令または情報を格納または送信するのに好適な任意のタイプの有形の機械可読媒体が含まれる。
本明細書の随所における「一実施形態」または「ある実施形態」という言及は、当該実施形態に関連して記載される特定の特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。故に、本明細書の様々な箇所における「一実施形態において」または「ある実施形態において」という文言は必ずしもすべてが、同一実施形態を指すわけではない。さらに、特定の特徴、構造、または特性は、1または複数の実施形態において、任意の好適な様式で組み合わされ得る。
上記の明細書において、詳細な説明は、特定の例示的実施形態に関し提供されている。しかしながら、添付の特許請求の範囲に記載される本発明のより広範な精神および範囲から逸脱することなく、様々な修正および変更が実施形態になされ得ることは明らかであろう。本明細書および図面は、従って、制限的な意味ではなく、例示的な意味のものとみなされるべきである。さらに、実施形態および他の例示的な文言の上記使用は、同一実施形態または同一例を必ずしも指しておらず、異なる区別される実施形態を指してもよく、潜在的には同一実施形態を指してもよい。
(項目1)
要素に連結されるインタフェースロジックと、
上記要素に関連付けられる構成コンテキストへの参照を保持する構成ストレージと、
上記構成ストレージと第2のインタフェースとに連結される構成制御ロジックと、を備え、
上記構成制御ロジックは、上記構成ストレージ内に保持される上記構成コンテキストへの上記参照に基づいて、上記要素に関連付けられる上記構成コンテキストの少なくとも部分を構成する、デバイス構成のための装置。
(項目2)
上記インタフェースロジックは、低電力の物理層(PHY)仕様、モバイルインダストリペリフェラルインタフェース(MIPI)仕様、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)仕様、およびより高性能およびより高電力のPHY仕様から成る群から選択されるPHY仕様に基づく、物理層ロジックを含む、項目1に記載の装置。
(項目3)
上記要素は、PCIe仕様で定義される複数のプロトコル通信を認識可能なペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)デバイスを含む、項目1に記載の装置。
(項目4)
上記構成コンテキストは、上記要素の複数の構成空間パラメータのための状態を含む、項目1に記載の装置。
(項目5)
上記構成コンテキストへの上記参照を保持する上記構成ストレージは、上記要素に関連付けられるメモリマップされた構成空間へのアドレス参照を保持するアドレスレジスタを含む、項目1に記載の装置。
(項目6)
上記装置はルートコントローラを備え、上記構成ストレージは、上記構成コンテキストへの上記参照および上記構成コンテキストを保持するキャッシュストレージを含む、項目1に記載の装置。
(項目7)
上記キャッシュストレージは、上記ルートコントローラに連結されるプロセッサ内に含まれる1または複数のプロセッサキャッシュとコヒーレントである、項目6に記載の装置。
(項目8)
上記キャッシュストレージは、上記ルートコントローラに連結されるプロセッサ内に含まれる1または複数のプロセッサキャッシュとコヒーレントでない、項目6に記載の装置。
(項目9)
上記キャッシュストレージは、ライトスルーポリシーを実装する、項目6に記載の装置。
(項目10)
上記構成コンテキストの上記少なくとも部分を構成する上記構成制御ロジックは、電源イベントに応答する、項目1に記載の装置。
(項目11)
上記電源イベントは、上記要素がアクティブな電力状態に入るという指標を含む、項目10に記載の装置。
(項目12)
上記電源イベントは、上記要素がリンクトレーニングを完了するという指標を含む、項目10に記載の装置。
(項目13)
上記インタフェースロジック、上記構成ストレージ、および上記構成制御ロジックは、音声通信が可能な無線インタフェースロジックに連結されるシステムオンチップ(SoC)に統合される、項目1に記載の装置。
(項目14)
上記インタフェースロジック、上記構成ストレージ、および上記構成制御ロジックは、非モバイル端末システム内に連結される集積回路上に統合される、項目1に記載の装置。
(項目15)
ホスト処理デバイスと、
ストレージと、
統合デバイスのための構成データを上記ストレージに書き込み、上記構成データの上記ストレージへの上記書き込みの後、低電力状態に入る上記統合デバイスと、
上記ホスト処理デバイス、上記統合デバイス、および上記ストレージに連結されるコントローラと、を備え、
上記コントローラは、上記統合デバイスがアクティブな電力状態に入ることを開始することに応答して、上記ストレージに保持される上記構成データに少なくとも部分的に基づいて、上記ホスト処理デバイスの直接的な介入なしに、上記統合デバイスを構成する、デバイス構成のための装置。
(項目16)
上記低電力状態は、スリープ電力状態を含む、項目15に記載の装置。
(項目17)
上記構成データは、上記統合デバイス内の複数の構成レジスタからのデータを含む、項目15に記載の装置。
(項目18)
上記複数の構成レジスタは、メモリ内の構成空間にマップされ、上記統合デバイス内の特定の構成レジスタへの書き込みは、上記特定の構成レジスタに関連付けられるメモリ内の上記構成空間内のメモリアドレスをアドレス指定する、項目17に記載の装置。
(項目19)
ホスト処理デバイスに連結する第1のポートと、
構成レジスタを含む下流の要素に連結する第2のポートと、
上記構成レジスタのための構成値を保持するキャッシュと、
メモリアドレスを上記構成レジスタに関連付け可能で、上記ホスト処理デバイスから上記メモリアドレスへのメモリアクセスを、第1の構成モードにおいて上記構成レジスタに対する構成リクエストに変換可能なコントローラと、を備え、
上記コントローラはさらに、上記構成レジスタのための上記構成値を、上記ホスト処理デバイスから上記メモリアドレスへの上記メモリアクセスなしに、第2の構成モードにおいて上記構成レジスタに提供可能である、デバイス構成のための装置。
(項目20)
上記第1の構成モードは、強化された構成アクセス機構(ECAM)モードを含み、上記第2の構成モードは、高速構成アクセス機構(FCAM)モードを含む、項目19に記載の装置。
(項目21)
上記コントローラがさらに、上記構成レジスタのための上記構成値を、上記ホスト処理デバイスから上記メモリアドレスへの上記メモリアクセスなしに、第2の構成モードにおいて上記構成レジスタに提供可能であることは、上記コントローラが、
上記ホスト処理デバイスからの上記メモリアクセスに含まれる上記構成値を上記キャッシュにキャッシュし、
上記メモリアクセスの完了を上記ホスト処理デバイスに提供し、
上記キャッシュからの上記構成値を上記要素内の上記構成レジスタに提供する、ことを含む、項目19に記載の装置。
(項目22)
高速構成互換性を示すデバイスから特定のメッセージを受信する段階と、
上記特定のメッセージの受信に応答して、上記デバイスのための構成アドレス空間への参照で構成レジスタを更新する段階と、
上記構成アドレス空間への第1のメモリ書き込みを開始する段階を含む上記デバイスを構成する段階と、
上記構成アドレス空間に直交するルートコンプレックスメモリ空間への第2のメモリ書き込みを開始する段階と、を備える、デバイス構成のための方法。
(項目23)
上記特定のメッセージは、クリーンベースアドレスレジスタメッセージを含む、項目22に記載の方法。
(項目24)
上記特定のメッセージは、デバイス準備状態(DRS)メッセージを含む、項目23に記載の方法。
(項目25)
1または複数のクリーン構成レジスタを含むクリーンブロック領域へのライトコンバイニングおよびマージングをサポート可能な構成ロジックと、
上流デバイスに連結するポートと、
上記ポートに関連付けられ、高速構成機能を示す特定のメッセージを生成するプロトコルロジックと、を備える、高速デバイス構成のための装置。
(項目26)
上記特定のメッセージは、クリーンベースアドレスレジスタメッセージを含む、項目25に記載の装置。
(項目27)
上記構成ロジックは、レガシブロックへの複数の書き込みをさらにサポートし、上記レガシブロックへの上記複数の書き込みは、データがインタリーブされた複数の読み取り/書き込みバイト選択を含み、昇順のアドレス順序でコミットされる、項目25に記載の装置。
(項目28)
実行時に、機械に対し、
第1のデバイスの高速構成機能を示す、特定のメッセージを受信させ、
第2のデバイスから、上記第1のデバイスの構成空間に関連付けられるアドレスを参照する書き込みメッセージを受信させ、
上記第1のデバイスの上記構成空間への書き込みを開始させ、
上記第1のデバイスの上記構成空間への上記書き込みに対する上記第1のデバイスからの応答を受信することなく、上記第2のデバイスに対する上記書き込みメッセージの完了を開始させる、コードを備える、非一時的コンピュータ可読媒体。
(項目29)
上記第1のデバイスは、エンドポイントデバイスであり、上記第2のデバイスは、ホスト処理デバイスである、項目28に記載のコンピュータ可読媒体。
(項目30)
上記第1および第2のデバイスは、上記コンピュータ可読媒体と共に単一の集積回路上に含まれる、項目29に記載のコンピュータ可読媒体。