(57)【特許請求の範囲】
【請求項１】
処理要素と複数の統合ブロックとを含む集積回路と、
前記複数の統合ブロックのうちの少なくとも１つのためにランタイム前に複数の構成パラメータを定義するデータ構造を格納する永続ストレージであって、前記データ構造は、１または複数のレジスタへのリンクを含む、永続ストレージと、
前記複数の構成パラメータに基づいて前記複数の統合ブロックのうちの前記少なくとも１つを構成し、前記データ構造の前記リンクに基づいて前記複数の統合ブロックのうちの前記少なくとも１つのための前記１または複数のレジスタへの１または複数のアクセスをサービスするロジックと、を備え、
前記複数の構成パラメータは、前記１または複数の統合ブロックのそれぞれによってサポートされる複数のトランスポートモードを含み、前記複数のトランスポートモードは、定義されたトランスポート層における複数のモードを含む、装置。
【請求項２】
処理要素と複数の統合ブロックとを含む集積回路と、
前記複数の統合ブロックのうちの少なくとも１つのためにランタイム前に複数の構成パラメータを定義するデータ構造を格納する永続ストレージであって、前記データ構造は、１または複数のレジスタへのリンクを含む、永続ストレージと、
前記データ構造の前記リンクに基づいて前記複数の統合ブロックのうちの前記少なくとも１つのための前記１または複数のレジスタへの１または複数のアクセスをサービスし、前記１または複数の統合ブロックの各々に対し、前記データ構造の前記複数の構成パラメータを識別し、前記複数の構成パラメータに基づいて前記複数の統合ブロックのうちの前記少なくとも１つを構成するロジックと、を備え、
前記１または複数のレジスタは、前記データ構造において定義された前記複数の構成パラメータで入力されており、
前記ロジックは、前記データ構造において定義された前記複数の構成パラメータのうちの特定の１つを変更し、
特定のレジスタ値が、前記特定のレジスタ値と前記データ構造との間のリンクに基づいて、前記特定の構成パラメータへの変更を反映するよう更新される、装置。
【請求項３】
前記複数の構成パラメータは、１または複数の統合ブロックのために維持されるメタデータに基づいている、請求項１または２に記載の装置。
【請求項４】
前記複数の構成パラメータのうちの少なくともいくつかは、前記集積回路のビルド時に定義される、請求項１から３のいずれか１項に記載の装置。
【請求項５】
前記ロジックは、ランタイム時に前記１または複数の統合ブロックに関連付けられた前記１または複数のレジスタへの１または複数のアクセスをサービスする、請求項１から４のいずれか一項に記載の装置。
【請求項６】
前記１または複数のレジスタは、複数の状態レジスタおよび複数の構成レジスタのうちの１または複数を含む、請求項１から５のいずれか一項に記載の装置。
【請求項７】
前記集積回路は、システムオンチップを含む、請求項１から６のいずれか一項に記載の装置。
【請求項８】
コンピュータに、
集積回路デバイスにおける１または複数の統合ブロックの複数の構成パラメータを定義するデータ構造にアクセスする手順と、
前記データ構造において定義された対応する複数の構成パラメータに基づいて、前記複数の統合ブロックのうちの１または複数を構成する手順と、を実行させ、
前記複数の構成パラメータはランタイム前に設定され、前記データ構造内に永続的に格納され、
前記複数の構成パラメータは、前記１または複数の統合ブロックのそれぞれによってサポートされる複数のトランスポートモードを含み、前記複数のトランスポートモードは、定義されたトランスポート層における複数のモードを含む、プログラム。
【請求項９】
コンピュータに、
集積回路デバイスにおける１または複数の統合ブロックの複数の構成パラメータを定義するデータ構造にアクセスする手順と、
前記１または複数の統合ブロックの各々に対し、前記データ構造の前記複数の構成パラメータを識別する手順と、
前記データ構造において定義された対応する複数の構成パラメータに基づいて、前記複数の統合ブロックのうちの１または複数を構成する手順と、を実行させ、
前記複数の構成パラメータはランタイム前に設定され、前記データ構造内に永続的に格納され、
前記データ構造は１または複数のレジスタへのリンクを含み、前記１または複数のレジスタは前記データ構造において定義された前記複数の構成パラメータで入力されており、
前記コンピュータに、
前記データ構造において定義された前記複数の構成パラメータのうちの特定の１つを変更する手順、をさらに実行させ、
特定のレジスタ値が、前記特定のレジスタ値と前記データ構造との間のリンクに基づいて、前記特定の構成パラメータへの変更を反映するよう更新される、プログラム。
【請求項１０】
前記複数の構成パラメータは、前記１または複数の統合ブロックのために維持されるメタデータに基づいている、請求項８または９に記載のプログラム。
【請求項１１】
前記複数の構成パラメータのうちの少なくともいくつかは、前記集積回路デバイスのビルド時に定義される、請求項８から１０のいずれか一項に記載のプログラム。
【請求項１２】
前記データ構造において定義された前記複数の構成パラメータのうちの少なくとも一部は、複数のペリフェラルコンポーネントインターコネクト（ＰＣＩ）エクスプレス（ＰＣＩｅ）機能を含む、請求項８から１１のいずれか一項に記載のプログラム。
【請求項１３】
前記データ構造は、前記１または複数の統合ブロックの各々に対し、前記１または複数の統合ブロックのそれぞれのＰＣＩクラス、サブクラス、およびプログラミングインタフェースを識別する、請求項８から１２のいずれか一項に記載のプログラム。
【請求項１４】
前記集積回路デバイス内の１または複数のレジスタが、前記データ構造において定義された構成情報に基づいてランタイム時に入力される、請求項８から１３のいずれか一項に記載のプログラム。
【請求項１５】
前記プログラムは前記コンピュータに対し、
ランタイム時に前記１または複数の統合ブロックに関連付けられた複数のレジスタへアクセスする手順をさらに実行させる、請求項８から１４のいずれか一項に記載のプログラム。
【請求項１６】
オペレーティングシステムによって、システムのランタイム前に定義される永続的データ構造にアクセスする段階であって、前記永続的データ構造は、前記システム内の１または複数の統合ブロックの複数の構成パラメータを定義する、段階と、
前記オペレーティングシステムによって、前記１または複数の統合ブロックの各々に対し、前記永続的データ構造の前記システムの複数の構成パラメータを識別する段階と、
前記オペレーティングシステムによって、前記複数の構成パラメータに基づいて、前記１または複数の統合ブロックのうちの少なくとも１つを構成する段階と、を備え、
前記複数の構成パラメータは、前記１または複数の統合ブロックのそれぞれによってサポートされる複数のトランスポートモードを含み、前記複数のトランスポートモードは、定義されたトランスポート層における複数のモードを含む、方法。
【請求項１７】
オペレーティングシステムによって、システムのランタイム前に定義される永続的データ構造にアクセスする段階であって、前記永続的データ構造は、前記システム内の１または複数の統合ブロックの複数の構成パラメータを定義する、段階と、
前記オペレーティングシステムによって、前記１または複数の統合ブロックの各々に対し、前記永続的データ構造の前記システムの複数の構成パラメータを識別する段階と、
前記オペレーティングシステムによって、前記複数の構成パラメータに基づいて、前記１または複数の統合ブロックのうちの少なくとも１つを構成する段階と、を備え、
前記システム内の１または複数のレジスタは、前記永続的データ構造にリンクされ、前記永続的データ構造において定義された複数の構成パラメータで入力されており、
前記オペレーティングシステムによって、前記永続的データ構造において定義された前記複数の構成パラメータのうちの特定の１つを変更する段階をさらに備え、
特定のレジスタ値が、前記特定のレジスタ値と前記永続的データ構造との間のリンクに基づいて、前記特定の構成パラメータへの変更を反映するよう更新される、方法。
【請求項１８】
前記オペレーティングシステムによって、前記１または複数の統合ブロックのうちの少なくとも１つに係る前記複数の構成パラメータとは別の複数の追加の構成パラメータを識別するデータを受信する段階をさらに備え、
前記複数の追加の構成パラメータは、ランタイム時に検出される、請求項１６または１７に記載の方法。
【請求項１９】
前記データはＢＩＯＳから受信される、請求項１８に記載の方法。
【請求項２０】
システムのランタイム前に定義される永続的データ構造にアクセスするための手段であって、前記永続的データ構造は、前記システム内の１または複数の統合ブロックの複数の構成パラメータを定義する、手段と、
前記１または複数の統合ブロックの各々に対し、前記永続的データ構造の前記１または複数の統合ブロックの複数の構成パラメータを識別するための手段と、
前記複数の構成パラメータに基づいて、前記１または複数の統合ブロックのうちの少なくとも１つを構成するための手段と、を備え、
前記複数の構成パラメータは、前記１または複数の統合ブロックのそれぞれによってサポートされる複数のトランスポートモードを含み、前記複数のトランスポートモードは、定義されたトランスポート層における複数のモードを含む、システム。
【請求項２１】
システムのランタイム前に定義される永続的データ構造にアクセスするための手段であって、前記永続的データ構造は、前記システム内の１または複数の統合ブロックの複数の構成パラメータを定義する、手段と、
前記１または複数の統合ブロックの各々に対し、前記永続的データ構造の前記１または複数の統合ブロックの前記複数の構成パラメータを識別するための手段と、
前記複数の構成パラメータに基づいて、前記１または複数の統合ブロックのうちの少なくとも１つを構成するための手段と、を備え、
前記永続的データ構造は１または複数のレジスタへのリンクを含み、前記１または複数のレジスタは前記永続的データ構造において定義された前記複数の構成パラメータで入力されており、
前記永続的データ構造において定義された前記複数の構成パラメータのうちの特定の１つを変更する手段をさらに備え、
特定のレジスタ値が、前記特定のレジスタ値と前記永続的データ構造との間のリンクに基づいて、前記特定の構成パラメータへの変更を反映するよう更新される、システム。
【請求項２２】
少なくとも１つのデータプロセッサと、
複数のデバイスと、
メモリに格納され、前記複数のデバイスのうちの１または複数に係る複数の構成パラメータを定義するデータ構造と、
オペレーティングシステムと、を備え、
前記複数の構成パラメータは、永続的に定義されており、
前記オペレーティングシステムは、
前記データ構造にアクセスし、
前記データ構造において定義された対応する複数の構成パラメータに基づいて前記複数のデバイスのうちの１または複数を構成し、
前記複数の構成パラメータは、前記１または複数のデバイスのそれぞれによってサポートされる複数のトランスポートモードを含み、前記複数のトランスポートモードは、定義されたトランスポート層における複数のモードを含む、システム。
【請求項２３】
少なくとも１つのデータプロセッサと、
複数のデバイスと、
メモリに格納され、前記複数のデバイスのうちの１または複数に係る複数の構成パラメータを定義するデータ構造と、
オペレーティングシステムと、
を備え、
前記複数の構成パラメータは、永続的に定義されており、
前記オペレーティングシステムは、
前記データ構造にアクセスし、
前記１または複数のデバイスの各々に対し、前記データ構造の前記複数の構成パラメータを識別し、
前記データ構造において定義された対応する複数の構成パラメータに基づいて前記複数のデバイスのうちの１または複数を構成し、
前記データ構造は１または複数のレジスタへのリンクを含み、前記１または複数のレジスタは前記データ構造において定義された前記複数の構成パラメータで入力されており、
前記オペレーティングシステムは、前記データ構造において定義された前記複数の構成パラメータのうちの特定の１つを変更し、
特定のレジスタ値が、前記特定のレジスタ値と前記データ構造との間のリンクに基づいて、前記特定の構成パラメータへの変更を反映するよう更新される、システム。
【請求項２４】
前記複数のデバイスのうちの少なくとも一部は、複数のＩＰブロックを含む、請求項２２または２３に記載のシステム。
【請求項２５】
前記システムは、システムオンチップを含む、請求項２２から２４のいずれか一項に記載のシステム。
【請求項２６】
システム内の１または複数のデバイスの複数の構成パラメータを定義するデータ構造を格納するシステムメモリと、
前記データ構造にアクセスし、前記データ構造において定義された対応する複数の構成パラメータに基づいて、前記複数のデバイスのうちの１または複数を構成する構成ロジックと、を備え、
前記複数の構成パラメータは、前記システムのランタイム前に設定されており、前記データ構造内に永続的に格納され、
前記複数の構成パラメータは、前記１または複数のデバイスのそれぞれによってサポートされる複数のトランスポートモードを含み、前記複数のトランスポートモードは、定義されたトランスポート層における複数のモードを含む、装置。
【請求項２７】
システム内の１または複数のデバイスの複数の構成パラメータを定義するデータ構造を格納するシステムメモリと、
前記データ構造にアクセスし、前記１または複数のデバイスの各々に対し前記データ構造の前記複数の構成パラメータを識別し、前記データ構造において定義された対応する複数の構成パラメータに基づいて、前記複数のデバイスのうちの１または複数を構成する構成ロジックと、
を備え、
前記複数の構成パラメータは、前記システムのランタイム前に設定されており、前記データ構造内に永続的に格納され、
前記データ構造は前記１または複数のレジスタへのリンクを含み、前記１または複数のレジスタは前記データ構造において定義された前記複数の構成パラメータで入力されており、
前記構成ロジックは、前記データ構造において定義された前記複数の構成パラメータのうちの特定の１つを変更し、
特定のレジスタ値が、前記特定のレジスタ値と前記データ構造との間のリンクに基づいて、前記特定の構成パラメータへの変更を反映するよう更新される、装置。
【請求項２８】
前記データ構造は、オペレーティングシステムよって修正可能である、請求項２６または２７に記載の装置。
【請求項２９】
請求項８から１５のいずれか一項に記載のプログラムを格納するコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピューティングシステム、特に（限定はされないが）ポイントツーポイント相互接続に関する。
【背景技術】
【０００２】
半導体処理およびロジック設計における進歩は、集積回路デバイスに存在し得るロジック量の増加を可能にするに至った。必然的帰結として、コンピュータシステム構成は、システムにおける単一若しくは複数の集積回路からマルチコア、複数のハードウェアスレッド、および個々の集積回路上に存在する複数の論理プロセッサ、並びにそのようなプロセッサ内に統合された他のインタフェースへと進化した。プロセッサ若しくは集積回路は通常、単一の物理プロセッサダイを備え、そこにおいてプロセッサダイは、任意の数のコア、ハードウェアスレッド、論理プロセッサ、インタフェース、メモリ、コントローラハブ等を含み得る。
【０００３】
より小さなパッケージにおいて、より大きな処理能力により適合できる結果、より小型のコンピューティングデバイスの人気が増した。スマートフォン、タブレット、超薄型ノートブック、および他のユーザ機器が、飛躍的に成長している。しかしながら、これらのより小型のデバイスは、データストレージおよびフォームファクタを超える複雑な処理の両方に対し、サーバに依存している。その結果、高性能コンピューティング市場（すなわち、サーバ空間）における要求もまた、増大している。例えば、現行のサーバにおいては通常、マルチコアを有するシングルプロセッサだけでなく、コンピューティング力を高めるために複数の物理プロセッサ（マルチソケットとも称される）が存在する。しかしながら、コンピューティングシステムにおけるデバイス数とともに処理能力が増大するにつれ、ソケットと他のデバイスとの間の通信がより重大性を帯びてきている。
【０００４】
実際、相互接続は、電気通信を主に処理してきた従来型のマルチドロップバスから、高速通信を容易にする本格的な相互接続アーキテクチャへと成長した。残念ながら、はるかに使用効率の高い将来のプロセッサへの要求があり、対応する要求は、既存の相互接続アーキテクチャの機能に対しある。
【図面の簡単な説明】
【０００５】
【図１】相互接続アーキテクチャを含むコンピューティングシステムの実施形態を示す。
【図２】層状スタックを含む相互接続アーキテクチャの実施形態を示す。
【図３】相互接続アーキテクチャ内で生成または受信されるリクエストまたはパケットの実施形態を示す。
【図４】相互接続アーキテクチャのための送信機と受信機のぺアの実施形態を示す。
【図５】例示的なシステムにおける例示的な構成属性データ構造の簡易表示を示す。
【図６】構成ツールを含む例示的なシステムの簡易ブロック図である。
【図７】例示的な構成データの生成における例示的なフローを示すブロック図である。
【図８】例示的なシステムのトランスポート層を示す、簡易ブロック図である。
【図９】デバイスツーデバイスデータトランスポートにおける技術を示すフロー図である。
【図１０】例示的な相互接続アーキテクチャの簡易ブロック図を示す。
【図１１Ａ】システムオンチップ（ＳｏＣ）アーキテクチャおよび他のシステムにおいて採用可能な例示的な技術を示すフローチャートである。
【図１１Ｂ】システムオンチップ（ＳｏＣ）アーキテクチャおよび他のシステムにおいて採用可能な例示的な技術を示すフローチャートである。
【図１１Ｃ】システムオンチップ（ＳｏＣ）アーキテクチャおよび他のシステムにおいて採用可能な例示的な技術を示すフローチャートである。
【図１１Ｄ】システムオンチップ（ＳｏＣ）アーキテクチャおよび他のシステムにおいて採用可能な例示的な技術を示すフローチャートである。
【図１２】マルチコアプロセッサを含むコンピューティングシステムの実施形態のブロック図を示す。
【図１３】マルチコアプロセッサを含むコンピューティングシステムの実施形態のブロック図を示す。
【図１４】プロセッサの実施形態のブロック図を示す。
【図１５】プロセッサを含むコンピューティングシステムの別の実施形態のブロック図を示す。
【図１６】複数のプロセッサを含むコンピューティングシステムの実施形態のブロックを示す。
【図１７】システムオンチップ（ＳｏＣ）として実装された例示的なシステムを示す。
【発明を実施するための形態】
【０００６】
以下の説明には、本発明の深い理解を与えるべく、多数の具体的な詳細が記載されている。例えば、特定のタイプのプロセッサおよびシステム構成、特定のハードウェア構造、特定の設計上およびミクロ設計上の細部、特定のレジスタ構成、特定の命令タイプ、特定のシステムコンポーネント、特定の寸法／高さ、特定のプロセッサパイプライン段階、および動作等の例示である。しかしながら、本発明を実施するのにこれらの具体的な細部を採用する必要がないことは、当業者にとって明らかであろう。他の例において、特定のおよび代替的なプロセッサアーキテクチャ、記載されたアルゴリズムのための特定のロジック回路／コード、特定のファームウェアコード、特定の相互接続動作、特定のロジック構成、特定の製造技術および材料、特定のコンパイラ実装、コードにおけるアルゴリズムの特定の表現、特定のパワーダウンおよびゲーティング技術／ロジック並びにコンピュータシステムの他の特定の動作詳細のような周知のコンポーネントまたは方法については、本発明を不必要に不明瞭にするのを回避すべく、詳細に記載されていない。
【０００７】
以下の実施形態は、コンピューティングプラットフォームまたはマイクロプロセッサといった特定の集積回路における省エネルギーおよびエネルギー効率に関し記載されている場合があるが、他の実施形態が、他のタイプの集積回路およびロジックデバイスに適用可能である。本明細書に記載された実施形態に係る同様の技術および教示が、他のタイプの回路または半導体デバイスに適用可能であり、それらも、より優れたエネルギー効率および省エネルギーからの利益を享受し得る。例えば、開示された実施形態は、デスクトップコンピュータシステムまたはウルトラブック（商標）に限定されない。また、ハンドヘルドデバイス、タブレット、他の薄型ノートブック、システムオンチップ（ＳＯＣ）デバイス、および埋め込みアプリケーションのような他のデバイスにおいても使用され得る。ハンドヘルドデバイスのいくつかの例としては、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末（ＰＤＡ）、およびハンドヘルドＰＣが挙げられる。埋め込みアプリケーションとは典型的には、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、システムオンチップ、ネットワークコンピュータ（ＮｅｔＰＣ）、セットトップボックス、ネットワークハブ、広域ネットワーク（ＷＡＮ）スイッチ、または以下に教示される機能および動作を実行し得る任意の他のシステムを含む。さらに、本明細書に記載される装置、方法およびシステムは、物理コンピューティングデバイスに限定されず、省エネルギーおよび効率性のためのソフトウェア最適化にも関連し得る。以下の詳細な説明から容易に明らかであるように、本明細書に記載の方法、装置、システムの実施形態（ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせに関するかどうかを問わず）は、性能検討事項とバランスが採られた「グリーンテクノロジ」の将来に不可欠である。
【０００８】
コンピューティングシステムが進歩するにつれ、それらのコンポーネントは、より複雑化してきている。結果として、最適なコンポーネント動作のための帯域幅要件が満たされることを保証すべく、コンポーネント間の連結および通信を行うための相互接続アーキテクチャも複雑性が増している。さらに、様々な市場セグメントが、市場ニーズに適合する相互接続アーキテクチャの様々な態様を要求する。例えば、サーバがさらなる高性能を必要とする一方で、モバイルエコシステムは場合によっては、省電力化のために性能全体を犠牲にできる。とはいえ、最大限の省電力化で可能な限り高い性能を提供することが、大半のファブリックの唯一の目的である。以下に説明される多数の相互接続は、本明細書に記載される本発明の複数の態様から潜在的に利益を享受するであろう。
【０００９】
ある相互接続ファブリックアーキテクチャは、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）エクスプレス（ＰＣＩｅ）アーキテクチャを含む。ＰＣＩｅの第１の目的は、クライアント（デスクトップおよびモバイル）、サーバ（標準およびエンタープライズ）、並びに埋め込みおよび通信デバイスといった複数の市場セグメントにわたる、異なるベンダのコンポーネントおよびデバイスが、オープンアーキテクチャにおいて相互運用できるようにすることにある。ＰＣＩ  Ｅｘｐｒｅｓｓは、多種多様な将来のコンピューティングおよび通信プラットフォームのために定義された高性能な汎用Ｉ／Ｏ相互接続である。その利用モデル、ロード‐ストアアーキテクチャ、およびソフトウェアインタフェースのようないくつかのＰＣＩ属性が、その改訂版を通して維持されているが、これに対し、以前のパラレルバス実装は、高度に拡張可能な完全シリアルインタフェースによって置き換えられた。ＰＣＩ  Ｅｘｐｒｅｓｓのより最近のバージョンでは、新しいレベルの性能と特徴を供給すべく、ポイントツーポイント相互接続、スイッチベースの技術、およびパケット化されたプロトコルにおける進展を活用している。ＰＣＩ  Ｅｘｐｒｅｓｓによってサポートされるいくつかの高度な特徴の中に、電力管理、サービスの品質（ＱｏＳ）、ホットプラグ／ホットスワップサポート、データ整合性、およびエラー処理がある。
【００１０】
図１を参照すると、一連のコンポーネントを相互接続するポイントツーポイントリンクから構成されるファブリックの一実施形態が示されている。システム１００は、コントローラハブ１１５に連結されたプロセッサ１０５およびシステムメモリ１１０を含む。プロセッサ１０５は、マイクロプロセッサ、ホストプロセッサ、埋め込みプロセッサ、コプロセッサ、または他のプロセッサのような任意の処理要素を含む。プロセッサ１０５は、フロントサイドバス（ＦＳＢ）１０６を介してコントローラハブ１１５に連結される。一実施形態において、ＦＳＢ１０６は後述のようなシリアルポイントツーポイント相互接続である。別の実施形態において、リンク１０６は、異なる相互接続規格に準拠するシリアルの差動相互接続アーキテクチャを含む。
【００１１】
システムメモリ１１０は、ランダムアクセスメモリ（ＲＡＭ）、不揮発性（ＮＶ）メモリ、またはシステム１００におけるデバイスによってアクセス可能な他のメモリのような、任意のメモリデバイスを含む。システムメモリ１１０は、メモリインタフェース１１６を介してコントローラハブ１１５に連結される。メモリインタフェースの例としては、ダブルデータレート（ＤＤＲ）メモリインタフェース、デュアルチャネルＤＤＲメモリインタフェース、および動的ＲＡＭ（ＤＲＡＭ）メモリインタフェースが含まれる。
【００１２】
一実施形態において、コントローラハブ１１５は、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅまたはＰＣＩＥ）相互接続階層におけるルートハブ、ルートコンプレックス、またはルートコントローラである。コントローラハブ１１５の例としては、チップセット、メモリコントローラハブ（ＭＣＨ）、ノースブリッジ、相互接続コントローラハブ（ＩＣＨ）、サウスブリッジ、およびルートコントローラ／ハブが含まれる。チップセットという用語はしばしば、２つの物理的に別個のコントローラハブ、すなわち相互接続コントローラハブ（ＩＣＨ）に連結されたメモリコントローラハブ（ＭＣＨ）を指す。現在のシステムは通常、プロセッサ１０５と統合されたＭＣＨを含む一方で、コントローラ１１５は、後述されるのと同様の態様で、Ｉ／Ｏデバイスと通信することに留意されたい。いくつかの実施形態において、ピアツーピアルーティングが任意に、ルートコンプレックス１１５を介してサポートされる。
【００１３】
ここでは、コントローラハブ１１５はシリアルリンク１１９を介してスイッチ／ブリッジ１２０に連結される。インタフェース／ポート１１７および１２１とも呼ばれ得る入／出力モジュール１１７および１２１は、層状プロトコルスタックを含み／実装して、コントローラハブ１１５とスイッチ１２０との間の通信を提供する。一実施形態において、複数のデバイスが、スイッチ１２０に連結可能である。
【００１４】
スイッチ／ブリッジ１２０は、デバイス１２５から上流に、すなわちルートコンプレックスに向かい１階層上のコントローラハブ１１５へ、および下流に、すなわちルートコントローラから１階層下へ、プロセッサ１０５若しくはシステムメモリ１１０およびデバイス１２５間で、パケット／メッセージをルーティングする。一実施形態において、スイッチ１２０は、複数の仮想ＰＣＩツーＰＣＩブリッジデバイスの論理的アセンブリと呼ばれる。デバイス１２５は、Ｉ／Ｏデバイス、ネットワークインタフェースコントローラ（ＮＩＣ）、アドインカード、オーディオプロセッサ、ネットワークプロセッサ、ハードドライブ、ストレージデバイス、ＣＤ／ＤＶＤ  ＲＯＭ、モニタ、プリンタ、マウス、キーボード、ルータ、ポータブルストレージデバイス、ファイヤワイヤデバイス、ユニバーサルシリアルバス（ＵＳＢ）デバイス、スキャナ、および他の入／出力デバイスのような、電子システムに連結される任意の内蔵若しくは外付けのデバイスまたはコンポーネントを含む。ＰＣＩｅ用語ではしばしば、そのようなデバイスをエンドポイントと呼ぶ。具体的に示されていないが、デバイス１２５は、レガシまたは他のバージョンのＰＣＩデバイスをサポートすべく、ＰＣＩｅツーＰＣＩ／ＰＣＩ−Ｘブリッジを含んでよい。ＰＣＩｅにおけるエンドポイントデバイスは通常、レガシエンドポイント、ＰＣＩｅエンドポイント、またはルートコンプレックス統合エンドポイントとして分類される。
【００１５】
グラフィックアクセラレータ１３０も、シリアルリンク１３２を介してコントローラハブ１１５に連結される。一実施形態において、グラフィックアクセラレータ１３０は、ＩＣＨに連結されたＭＣＨに連結される。スイッチ１２０、およびそれに基づいてＩ／Ｏデバイス１２５が次にＩＣＨに連結される。Ｉ／Ｏモジュール１３１および１１８はまた、グラフィックアクセラレータ１３０およびコントローラハブ１１５間で通信するための層状プロトコルスタックを実装する。上記のＭＣＨの記載と同様、グラフィックコントローラまたはグラフィックアクセラレータ１３０それ自体が、プロセッサ１０５に統合されてよい。
【００１６】
図２を見ると、層状プロトコルスタックの一実施形態が示されている。層状プロトコルスタック２００は、クイックパスインターコネクト（ＱＰＩ）スタック、ＰＣＩｅスタック、次世代高性能コンピューティング相互接続スタック、または他の層状スタックのような、任意の形態の層状通信スタックを含む。図１〜図４に関する直下の記載はＰＣＩｅスタックに関するものであるが、同一概念が他の相互接続スタックに適用されてよい。一実施形態において、プロトコルスタック２００は、トランザクション層２０５、リンク層２１０、および物理層２２０を含むＰＣＩｅプロトコルスタックである。図１中のインタフェース１１７、１１８、１２１、１２２、１２６および１３１のようなインタフェースが、通信プロトコルスタック２００として表されてよい。通信プロトコルスタックとして表されるものは、プロトコルスタックを実装／包含するモジュールまたはインタフェースとも称され得る。
【００１７】
ＰＣＩ  Ｅｘｐｒｅｓｓは、コンポーネント間で情報を通信するためにパケットを使用する。パケットは、送信コンポーネントから受信コンポーネントへと情報を搬送すべく、トランザクション層２０５およびデータリンク層２１０で形成される。送信されるパケットが他の層を流れる際に、それらの層においてパケットを処理するために必要な追加の情報でパケットが拡張される。受信側では逆の処理が発生し、パケットは物理層２２０として表されるものから、データリンク層２１０として表されるものへと変換され、最終的（トランザクション層パケット用）に、受信デバイスのトランザクション層２０５によって処理され得る形態に変換される。
【００１８】
トランザクション層
【００１９】
一実施形態において、トランザクション層２０５は、デバイスの処理コアと、データリンク層２１０および物理層２２０のような相互接続アーキテクチャとの間のインタフェースを提供する。この点において、トランザクション層２０５の主な役割は、パケット（すなわち、トランザクション層パケットまたはＴＬＰ）のアセンブリおよびディスアセンブリである。トランザクション層２０５は通常、ＴＬＰのためのクレジットベースのフロー制御を管理する。ＰＣＩｅは、分割トランザクション、すなわち、時間により分離されたリクエストと応答を持つトランザクションを実装し、ターゲットデバイスが当該応答のためのデータを収集中に、リンクが他のトラフィックを搬送することを可能にする。
【００２０】
また、ＰＣＩｅはクレジットベースのフロー制御を利用する。このスキームにおいて、デバイスはトランザクション層２０５内の複数の受信バッファの各々に対するクレジットの初期量を通知する。図１のコントローラハブ１１５のようなリンクの反対側における外部デバイスは、各ＴＬＰによって使用されるクレジット数をカウントする。トランザクションは、そのトランザクションがクレジット制限（ｃｒｅｄｉｔ  ｌｉｍｉｔ）を超過しない場合に、送信されてよい。応答を受信すると、クレジット量が復元される。クレジットスキームの利点は、クレジット制限が発生しなければ、クレジットリターン（ｃｒｅｄｉｔ  ｒｅｔｕｒｎ）のレイテンシが性能に影響を与えないことである。
【００２１】
一実施形態において、４つのトランザクションアドレス空間は、構成アドレス空間、メモリアドレス空間、入／出力アドレス空間、およびメッセージアドレス空間を含む。メモリマップされた位置へ／からデータを転送するために、メモリ空間トランザクションは、読み取りリクエストおよび書き込みリクエストのうちの１または複数を含む。一実施形態において、メモリ空間トランザクションは、例えば、３２ビットアドレスのようなショートアドレスフォーマット、または６４ビットアドレスのようなロングアドレスフォーマットといった、２つの異なるアドレスフォーマットを使用可能である。構成空間トランザクションを使用して、ＰＣＩｅデバイスの構成空間にアクセスする。構成空間に対するトランザクションには、読み取りリクエストおよび書き込みリクエストが含まれる。メッセージ空間トランザクション（または、単にメッセージ）は、ＰＣＩｅエージェント間のインバンド通信をサポートするよう定義される。
【００２２】
従って、一実施形態において、トランザクション層２０５は、パケットヘッダ／ペイロード２０６を組み立てる。現行のパケットヘッダ／ペイロードのためのフォーマットは、ＰＣＩｅ仕様ウェブサイトにおけるＰＣＩｅ仕様において見出され得る。
【００２３】
図３を素早く参照するに、ＰＣＩｅトランザクション記述子の一実施形態が示されている。一実施形態において、トランザクション記述子３００は、トランザクション情報を搬送するためのメカニズムである。この点において、トランザクション記述子３００は、システム内のトランザクションの識別をサポートする。他の潜在的な使用としては、既定のトランザクションの順序付けの修正およびチャネルとトランザクションとの関連付けを追跡することを含む。
【００２４】
トランザクション記述子３００は、グローバル識別子フィールド３０２、属性フィールド３０４およびチャネル識別子フィールド３０６を含む。図示される例では、グローバル識別子フィールド３０２は、ローカルトランザクション識別子フィールド３０８およびソース識別子フィールド３１０を含むよう示されている。一実施形態において、グローバルトランザクション識別子３０２は、すべての未処理のリクエストに対し一意である。
【００２５】
一実装に従うと、ローカルトランザクション識別子フィールド３０８は要求元エージェントによって生成されるフィールドであり、このフィールドは、その要求元エージェントのための、完了を必要とするすべての未処理のリクエストに対して一意である。さらに、この例において、ソース識別子３１０は、ＰＣＩｅ階層内の要求元エージェントを一意に識別する。従って、ローカルトランザクション識別子フィールド３０８はソースＩＤ３１０と共に、階層ドメイン内のトランザクションのグローバルな識別を提供する。
【００２６】
属性フィールド３０４は、トランザクションの特性および関係を指定する。この点において、属性フィールド３０４は、トランザクションの既定の処理に対する修正を可能にする追加の情報を提供すべく、潜在的に使用される。一実施形態において、属性フィールド３０４は、優先度フィールド３１２、予約フィールド３１４、順序付けフィールド３１６、およびスヌープ無しフィールド３１８を含む。ここで、優先度サブフィールド３１２は、そのトランザクションへ優先度を割り当てるために、イニシエータによって修正されてよい。予約属性フィールド３１４は、将来のため、またはベンダ定義の用途のために、予約された状態になっている。優先度またはセキュリティ属性を使用する、可能な利用モデルが、予約属性フィールドを使用して実装されてよい。
【００２７】
この例において、順序付け属性フィールド３１６が使用され、既定の順序付けルールを修正し得る順序付けタイプを伝達する任意の情報を供給する。一例示的な実装によると、順序付け属性「０」は、既定の順序付けルールが適用されることを示し、その場合、順序付け属性「１」は緩和された順序付けを示し、その場合、書き込みは、同一方向への書き込みを渡すことができ、読み取り完了は、同一方向への書き込みを渡すことができる。スヌープ属性フィールド３１８は、トランザクションがスヌープされるかどうかを判断するために利用される。図示の通り、チャネルＩＤフィールド３０６は、トランザクションが関連付けられるチャネルを識別する。
【００２８】
リンク層
【００２９】
データリンク層２１０とも呼ばれるリンク層２１０は、トランザクション層２０５と物理層２２０との間の中間段階として動作する。一実施形態において、データリンク層２１０の役割は、リンクの２つのコンポーネント間でトランザクション層パケット（ＴＬＰ）を交換するための信頼性のあるメカニズムを提供することである。データリンク層２１０の一方側は、トランザクション層２０５によって組み立てられたＴＬＰを受け入れ、パケットシーケンス識別子２１１、すなわち識別番号またはパケット番号を適用し、エラー検出コード、すなわちＣＲＣ２１２を計算および適用し、物理デバイスから外部デバイスにわたる送信のため、修正されたＴＬＰを物理層２２０に送信する。
【００３０】
物理層
【００３１】
一実施形態において、物理層２２０は、パケットを外部デバイスに物理的に送信するための論理サブブロック２２１および電気サブブロック２２２を含む。ここで、論理サブブロック２２１は、物理層２２０の「デジタル」機能を担当する。この点において、論理サブブロックは、物理サブブロック２２２による送信のための発信情報を準備する送信セクション、および受信された情報をリンク層２１０に渡す前に、それを識別および準備するための受信セクションを含む。
【００３２】
物理ブロック２２２は、送信機および受信機を含む。送信機には、論理サブブロック２２１によってシンボルが供給され、送信機はそれらをシリアライズし、外部デバイスへと送信する。受信機は外部デバイスからのシリアライズされたシンボルが供給され、受信された信号をビットストリームに変換する。ビットストリームは、逆シリアル化されて、論理サブブロック２２１へ供給される。一実施形態において、８ｂ／１０ｂ送信コードが採用され、その場合、１０ビットシンボルが送信／受信される。ここで、複数のフレーム２２３を有するパケットをフレーム化するために特別なシンボルが使用される。また、一例において、受信機も着信シリアルストリームから復元されたシンボルクロックを提供する。
【００３３】
上記の通り、トランザクション層２０５、リンク層２１０、および物理層２２０はＰＣＩｅプロトコルスタックの特定の実施形態に関し記載されているが、層状プロトコルスタックはそのように限定されない。実際、任意の層状プロトコルが含まれ／実装されてよい。一例として、層状プロトコルとして典型的なポート／インタフェースとしては、（１）パケットを組み立てる第１の層、すなわちトランザクション層と、パケットを順序付ける第２の層、すなわちリンク層、およびパケットを送信する第３の層、すなわち物理層が含まれる。具体例としては、共通の標準インタフェース（ＣＳＩ）層状プロトコルが利用される。
【００３４】
次に図４を見ると、ＰＣＩｅシリアルポイントツーポイントファブリックの実施形態が示されている。ＰＣＩｅシリアルポイントツーポイントリンクの実施形態が示されているが、シリアルポイントツーポイントリンクは、シリアルデータを送信するための任意の送信パスを含み、そのように限定されない。図示された実施形態においては、基本的なＰＣＩｅリンクは、２組の低電圧な、差動的に駆動される信号ペア、すなわち送信ペア４０６／４１１および受信ペア４１２／４０７を含む。従って、デバイス４０５は、データをデバイス４１０へ送信するための送信ロジック４０６と、デバイス４１０からデータを受信するための受信ロジック４０７とを含む。換言すると、２つの送信パス、すなわちパス４１６および４１７と、２つの受信パス、すなわちパス４１８および４１９とがＰＣＩｅリンクに含まれる。
【００３５】
送信パスは、送信ライン、銅線、光回線、無線通信チャネル、赤外線通信リンク、または他の通信パスのような、データを送信するための任意のパスを指す。例えば、デバイス４０５およびデバイス４１０のような２つのデバイス間の接続は、リンク４１５等のリンクと呼ばれる。リンクは、１つのレーンをサポートしてよく、各レーンは差動信号ペアのセット（１つのペアは送信用、１つのペアは受信用）を表わす。帯域幅を拡張すべく、リンクはｘＮとして示される複数のレーンを集約してよく、ここでＮは、例えば１、２、４、８、１２、１６、３２、６４、またはそれより広い、任意のサポートされたリンク幅である。
【００３６】
差動ペアは、差動信号を送信するためのライン４１６および４１７のような２つの送信パスを指す。一例として、ライン４１６が低電圧レベルから高電圧レベルへと切り替わる、すなわち立ち上りエッジであるとき、ライン４１７は高ロジックレベルから低ロジックレベルへ、すなわち、立ち下りエッジへと、駆動する。差動信号は、より良好な電気的特性、たとえばより良好な信号完全性、すなわちクロスカップリング、電圧オーバシュート／アンダシュート、リンギング等を潜在的に示す。これにより、より良好なタイミングウィンドウを可能にし、それにより、より高速な送信周波数を可能にする。
【００３７】
ＰＣＩおよびＰＣＩｅを含む従来の相互接続アーキテクチャは、パーソナルコンピュータ（ＰＣ）のような従来のコンピューティングデバイスの枠組み中心で主に開発および標準化されてきたが、そこにおいてはチップツーチップ接続、プラグアンドプレイ、およびコンポーネント化アーキテクチャが標準であった。より最新の技術は、市場内におけるデスクトップコンピュータを補完するスマートフォン、ネットブック、ラップトップ、およびタブレットで、より小型で、より可動性のあるコンピューティングに焦点を当ててきた。モバイルコンピューティングデバイスの小型サイズおよびコンパクトなフォームファクタを考慮すると、パーソナルコンピュータは、よりモジュール式でなくなってきている。過去においては、グラフィックカード、メモリ、および他のコンポーネントを交換することが比較的一般的であったが、スマートフォン、タブレット、または他のそのようなデバイスのコンポーネントにアクセスし、アップグレードすることは一般的ではなくなっている。実際、市場によってはアップグレードが必要な場合、オーナが前のデバイスを下取りするか、あるいは前のデバイスを完全に新しいデバイスと交換することが想定されており、これに対し、過去においては、オーナは個々のコンポーネントをアップグレードすることによって、デバイスの寿命を延長することを試行したであろう。多くの現行システムにおいては、コンピューティングハードウェアは、モジュール式モデルから、複数のコンポーネントが単一のボードに統合される統合化モデルまたはシステムオンチップ（ＳｏＣ）へと移行している。
【００３８】
統合化への動向は、既存の相互接続アーキテクチャを含む、従来のＩ／Ｏ技術を時代遅れにする可能性があると考える者もいる。というのは、Ｉ／Ｏ技術開発の目的が、チップツーチップ接続を有効化することから、ＳｏＣの知的財産（ＩＰ）ブロック統合を有効化することに変わってきているからである。本開示は、より短い製品サイクルを通して有意義な価値、一層のシリコン適用柔軟性、コスト低減、電力低減およびユーザエクスペリエンスの向上をもたらし得る改善による信頼性のある確立された相互接続アーキテクチャの原理の上に構築されるメカニズムについて記載している。そのような改善されたＩ／Ｏソリューションは、タブレット、電話、および他の低コストの埋め込みプラットフォームに対してのみでなく、他の複数の例の中でも特に、現行および次世代ＰＣに対しても最適化され得る。
【００３９】
ＰＣＩおよびＰＣＩｅは、ＰＣ（例えば、筐体内のチップツーチップ）のローカルＩ／Ｏアーキテクチャとしてユビキタスに展開されてきた。また、プラットフォームコントロールハブ（ＰＣＨ）、Ｉ／Ｏコントローラハブ（ＩＣＨ）、またはプラットフォームＣＰＩと連携して使用される他のハブデバイスを介して提供される多くの統合機能は、システムソフトウェアにとっては、ＰＣＩまたはＰＣＩｅ機能として見える。代替的および競合的なロード／ストアアーキテクチャは、当該機能の多くおよびＰＣＩ／ＰＣＩｅの微調整が欠如しており、異なる基本的な動作想定（例えば、トランザクション順序付けルールに関する）を形成し、また他のコンピューティングプラットフォームをターゲットとして開発されており、結果的にＰＣタイプのプラットフォームにおけるこれらのプラットフォームのために開発されたブロックを使用することは、著しいハードウェアおよびソフトウェアの追加コストを招来する可能性がある。
【００４０】
ロード／ストアは、ＰＣＩ／ＰＣＩｅのようなロード／ストア  Ｉ／Ｏアーキテクチャが現行コンピューティングにおいて根本的な役割を果たす環境をもたらす、ＣＰＵの「ネイティブ言語」としてみなされている。例えば、コントローラベースのＩ／Ｏ技術（例えば、ＵＳＢ、ＳＡＴ  Ａ、ＵｎｉＰｒｏ）は、ロード／ストア  Ｉ／Ｏを使用して、それらのコントローラのＣＰＵに対するインタフェースを取ることができる。ＣＰＵに対する直接的な低レベルのインタフェースを提供することによって、ロード／ストア  Ｉ／Ｏは、コントローラベースのＩ／Ｏに対し、柔軟性と性能面での利点を提供し得る。この柔軟性は、例えば今日のストレージを使って、技術移行を可能にするために特に魅力的である。というのは、新しい特徴および機能を有効にするために、依存関係がより少ないからである。
【００４１】
本開示、以下に記載された特徴、コンポーネント、および例は、他の複数の例の中でも特に、これらの問題のうちの少なくともいくつかに対処し得る。特に、ＰＣＩおよびＰＣＩｅの仕様を含む、既存の相互接続アーキテクチャの原理の上に構築可能な改善点の集まりが詳細に記載されている。一実装例において、潜在的な他の特徴および機能の中でも特に、以下の機能のうちの１または複数を含み得る高集積ＰＣＩ（ＨＩＰＣＩ）アーキテクチャが提案される。（１）静的デバイス構成値を識別するためにランタイム時におけるプログラムレジスタの使用を排除し得るインスタントデバイス構成。（２）基本的なトランスポートサービス層を持つ層状ドライバモデルを可能にするハードウェア／ソフトウェアアーキテクチャ（例えば、確立されたＰＣＩおよび／またはＰＣＩｅ機能およびプロトコルの少なくとも一部の上に構築された、同一のものをサービスとして提供する）。これはユニバーサルシリアルバス（ＵＳＢ）クラススタックのような他のプロトコルクラスとの併用を可能にするソフトウェアブリッジを含む、直接のオペレーティングシステム（ＯＳ）のサポートを介してサポートされる。（３）システムメモリバッファ処理なしの直接的なデバイスツーデバイス通信のためのフレームワーク。（４）ＳｏＣおよびマルチチップパッケージ（ＭＣＰ）ＩＰブロック統合のための最適化されたＩＰブロックインタフェース。これらの特徴および他の特徴、並びにそれらの原理は、全体的または部分的に採用可能であり、また他のものから独立して採用可能である。さらに、本明細書の多くの例が、これらの特徴をＳｏＣの文脈または適用において記載している一方、例えば、他の複数の例の中でも特に、ＰＣＨ、ＩＣＨ、Ｉ／Ｏハブ（ＩＯＨ）のような他のシステムおよびコンポーネント、あるいはさらに単一の機能コンポーネントとの関連においても、これらの特徴の適用は全く同様に適切に採用可能であることを理解されたい。
【００４２】
図５は、複数の統合デバイスを採用する、コンピューティングシステムのオペレーティングシステムを含むシステムに係る簡易ブロック図５００であり、例えば、複数のＩＰブロック（本明細書においてシステムブロック、統合ブロック、または単にブロックとも称される）を含むＳｏＣである。コンピューティングシステムは、当該複数のデバイスをシステム上で構成するよう適合されたオペレーティングシステム５０５を含み得る。システムハードウェアコンポーネントを初期化およびテスト可能な基本入出力システム（ＢＩＯＳ）５１０が提供され得る。様々なデバイスに対する構成情報は、当該複数のデバイスのレジスタ５１５に格納され得る。ＢＩＯＳは、ランタイム時（例えば、ブートアップ時）にレジスタを読み取り、情報をＯＳに渡すことができる。いくつかの実装において、機械可読インスタント構成データ構造５２０が追加的に提供され得る。そこから、システムデバイスの構成情報のすべてまたは一部が格納され得、ＯＳ５０５によって、システムハードウェアを構成するために、直接読み取りおよびアクセスされる。いくつかの例において、データ構造５２０がレジスタ５１５を全体的または部分的に置換可能であり、それによりレジスタ空間が減少され、コンパクト化され、あるいはいくつかの構成アクティビティをソフトウェアに委任することを介して、最適化されることを可能にする。
【００４３】
電話／タブレットおよび他の埋め込みシステム用に想定された多くのＩＰブロックは、自動検出／構成「プラグアンドプレイ」メカニズムが欠如している。そのようなメカニズムは、他の複数の例の中でも特に、ユーザがＰＣＩ／ＰＣＩｅアドインカードを追加／除去、ＵＳＢデバイスをつなぐこと等により、ハードウェア構成を修正した場合、システムの自動構成を可能にするよう元々は開発された。自動構成は、システム内に統合された論理ブロックに対する限定的なユーティリティであると思われる可能性がある（例えば、除去または交換不可）が、それでもなお、そのような機能を提供するアーキテクチャを介して提供される構造のような「プラグアンドプレイ」構成の利点の一部が失われる可能性がある。例えば、可能性のあるシステム／デバイス構成のマトリックスが手に負えないほど大きく成長し、ベンダごとに変わるようになると、そのような構造がなければ、開発者およびオペレーティングシステムおよび仮想化ベンダに対する負荷が増し得る。そのような例においては、デバイス構成の単純な態様ですら、ブロックごとに異なる可能性があり、そのようなシステムの設計、ビルド、および構成がさらに複雑化する。
【００４４】
改善されたシステムにおいて、ハードウェアの検出および構成は、ランタイムからビルド時に、少なくとも部分的に変えることができる。例えば、ＳＯＣ内に含まれるデバイスの静的属性は、設計時に識別され得、ＯＳ（またはハブコントローラ）によって直接アクセス可能な機械可読データ構造（例えば、５２０）内に永続的に格納されたデータに記述され得る。そのような属性は、ＯＳによって効果的に、即座に識別、または構成され得る。ＰＣＩ／ＰＣＩｅ機能レジスタのような、機能レジスタのすべてまたは一部は、インスタント構成データ構造内に格納されたデバイス（例えば、ＩＰブロック）メタデータとして再定義され得る。そのようなメタデータ構造（例えば、５２０）は、例えば、ブート後は修正されない構成レジスタ内に従来格納される情報を含み得る。いくつかの実装において、当該データ構造は、ＸＭＬまたは他の機械可読データファイルであり得る。
【００４５】
いくつかの実装において、ＩＰブロックメタデータは、システムの設計時に利用可能である。当該メタデータは、ｃｏｍｐｕｔｅｒ  ａｉｄｅｄ  ｄｅｓｉｇｎ（ＣＡＤ）またはＳＯＣ（または他のシステムの）設計において利用される他のツールによる使用のために構成され得る。メタデータを読み取り、メタデータ内に含まれるＩＰブロック情報に基づいて相互接続ファブリックおよび他のブロックを自動的に構成し得るツールが提供可能である。さらに、ツールは所望のＩＰブロックのセットをＳｏＣ、ＭＣＰ等に統合すべく、ＩＰブロックメタデータ内の情報を利用し得る。
【００４６】
インスタント構成メタデータを使用（例えば、データ構造５２０を介して）することにより、ランタイムのデバイス構成を減らすことが可能になる。そのような構造（例えば、５２０）は、メインシステムメモリ内に格納され得る。さらに、いくつかの実装において、ランタイム時に使用される状態レジスタおよび構成レジスタは、変更されないままに維持可能であり、あるいは例えば、フィールド圧縮（ｆｉｅｌｄ  ｐａｃｋｉｎｇ）の密度を改善すべく最適化可能である。あるいは、例えば、構成レジスタを介するよりも、メインメモリ内のデータ構造を介して動作すべく、これらと動作するためのメカニズムは修正可能である。統合システムは、固定のデバイスのセット（例えば、ＩＰブロック）を有すると仮定し得る。当該統合システムの設計中、当該複数のデバイスの特定の属性および構成は、静的であると想定できる。統合された複数のデバイスの集まりに対する静的属性は、ＩＰブロックメタデータ内に記述でき、ソフトウェアレベルでアクセス可能な１または複数のデータ構造内に格納できる。また、いくつかの実装において、「静的」属性のうちのいくつかは、例えば、システムファームウェア（例えば、システムＢＩＯＳまたは他のファームウェア）またはオペレーティングシステムにより、当該静的属性に対応するメタデータ値を修正することにより、ソフトウェアレベルで再定義可能である。例えば、システムファームウェアは、オペレーティングシステムに制御を渡す前に、メタデータ構造内で代替の値を記述することによって、または例えば、オペレーティングシステムに代替のメモリポインタを提供することにより、代替のメタデータ構造で置換することによって、システムメモリ内に格納されたメタデータ値を修正できる。
【００４７】
いくつかの例において、特定のＩＰブロックの静的属性を記述するメタデータは、定義されたスキーマ（例えば、メタデータが設計時に使用されるツールおよび／または統合システム等のオペレーティングシステムと互換性があるような）に従い、そのようなメタデータを提供する様々なソースから取得可能である。一例において、設計時に、ＳｏＣに統合される複数の異なるＩＰブロックのそれぞれの属性は、識別または構成され得る。例えば、識別され得る属性として、ベンダＩＤ、デバイスＩＤ、および／またはＰＣＩにより定義されるようなクラスコードが含まれる。構成され得る他の属性は、メモリマップされたＩ／Ｏ空間、割り込みベクトル、および／または各ＩＰブロックによってサポートされるそれぞれの最大ペイロードサイズ（ＭＡＸ  ＰＡＹＬＯＡＤ  ＳＩＺＥ）のようなＩＰブロック自体の属性のようなリソース割り当てを含む。それぞれのＭＡＸ  ＰＡＹＬＯＡＤ  ＳＩＺＥは、メタデータ内で定義可能であり、そのシステムのハードウェアを構成すべく、オペレーティングシステムによってアクセスされるデータ構造内に格納可能である。一例において、アプリケーションは、メタデータ内で定義された互換性のないＭＡＸ  ＰＡＹＬＯＡＤ  ＳＩＺＥ属性を持つ２つのデバイス間でのデータ交換を伴うサービスを要求できる。オペレーティングシステムは、いくつかの例において、非互換性に基づいてサービスを無効として許可しないようにできる。他の例において、オペレーティングシステムは、要求されたサービスが許可されるよう、当該デバイスのうちの１つのＭＡＸ  ＰＡＹＬＯＡＤ  ＳＩＺＥを一時的に修正し得る。いくつかの実装において、データ構造は、レジスタ値へのリンクを含み得る。いくつかの例において、値およびインスタント構成データ構造に対しなされる変更は、レジスタレベル（例えば、リンクに基づいて）で自動的に反映されるようにできる。いくつかの実装において、定義されたメタデータスキーマが定義され得、当該定義は、対応するレジスタをスキーマ（および当該スキーマ内で記述された値）にマッピング可能である。また、他の複数の例の中でも特に、例えば、メタデータが適切にフォーマットされていること、対応するプロトコル仕様に適合すること、および、ＭＡＸ  ＰＡＹＬＯＡＤ  ＳＩＺＥ若しくは別の例示的な属性が、ブロックをシステム内での１または複数の特定の使用に対し好適なものにするかといった、特定のコンテキストでの使用に好適な構成またはブロックを記述することを確認すべく、メタデータの検証が実行可能である。
【００４８】
図６を見ると、いくつかの例示的実施形態により、インスタント構成メタデータを生成および使用するための例示的なシステムを図示する簡易ブロック図６００が示されている。図６の特定の例において、ＩＰブロックメタデータ６３０、６３５、６４０をホストするメタデータサーバまたはソース（例えば、６１０、６１５、６２０）と対話可能な例示的な構成ツール６０５が提供されている。構成ツール６０５は、プライベートまたはパブリックネットワーク（インターネットを含む）のような１または複数のネットワーク６４５を経由して、メタデータソース（例えば、６１０、６１５、６２０）とインタフェースを取ることにより、メタデータ（例えば６３０、６３５、６４０）を取得可能である。ステッチャツール６５０、ＣＡＤツール、または他のシステム設計ツールのような他のツールが、メタデータから生成された（例えば、構成ツール６０５によって）ＩＰブロックメタデータまたは他の構成データを使用できる。そのようなツールは、複数のＩＰブロックを記述するメタデータまたは他のデータを使用するための機能並びに当該複数のＩＰブロックを相互運用すべく、当該複数のＩＰブロックおよびオンダイ通信ファブリックを結合する通信ファブリックを含むことができる。いくつかの実装において、他の複数の例の中でも特に、そのようなツールはまた、当該複数のＩＰブロックに特有の任意のソフトウェアロジックをシステムファームウェア／ソフトウェア（例えば、オペレーティングシステム）に結合または統合すべく使用可能であり、システムソフトウェアを当該複数の特定のＩＰブロックおよび／または当該ツールを使用して設計された通信ファブリックに合わせて調整する。
【００４９】
一例において、潜在的に考えられる他の複数の例の中でも特に、構成ツール６０５は、１または複数のデータ処理デバイス６５５、１または複数のメモリ要素６６０、並びにクエリエンジン６６５、メタデータマネージャ６７０、および構成エンジン６７５のような１または複数の他のソフトウェアおよび／またはハードウェアベースのコンポーネントを含み得る（本明細書に記載の例示コンポーネントの機能を組み合わせるコンポーネントのような）。クエリエンジン６６５は、構成ツール６０５に対し識別された複数のＩＰブロックのうちの各々に対するメタデータ（例えば、６１０、６１５、６２０）のそれぞれのソースを識別するロジックを含み得る。いくつかの例において、ＩＰブロックのグループ化（ＳｏＣまたはＭＣＰに包含されるためにエンジニアにより選択されるＩＰブロックの特定のグループ化のような）が指定可能である。いくつかの例において、１または複数のソース（例えば、６１０、６１５、６２０）によって提供されるメタデータ（例えば、６３０、６３５、６４０）は、特定のスキーマにより（例えば、均一のＸＭＬテンプレートにより）標準化され得る。各ＩＰブロックのメタデータ（例えば、６３０、６３５、６４０）は、定義されたスキーマに従い、ＩＰブロックの属性を記述し、当該記述をフォーマットできる。いくつかの例において、メタデータソースは、製造者、ベンダ、または特定のＩＰブロックに関連付けられた他の組織に対応可能である。ソースを識別すると、クエリエンジン６６５は、メタデータのソースに、対応するＩＰブロックについてクエリできる。メタデータエンジン６７０は、クエリおよびＩＰブロックのグループ化の各々に対するＩＰブロックメタデータの取得を管理できる。ＩＰブロックの指定のグループ化に対するＩＰブロックメタデータのセットを取得すると、メタデータエンジンは、当該メタデータのセットを例えば、構成エンジン６７５に対し利用可能にし得る。
【００５０】
一例において、構成エンジン６７５は、ＳｏＣのようなシステム内でＩＰブロックのセットをどのように統合および構成するかを判断するためのロジックを含み得る。構成エンジン６７５のロジックは、提案されたシステムに統合されるＩＰブロックのＩＰブロックメタデータのセットを入力として受け入れ、人間による指示なしに自動的に、当該ＩＰブロックのセットに対し提案されるレイアウトおよび構成を判断できる。これには、他の複数の例の中でも特に、ダイ上での複数のＩＰブロックのレイアウト（またはレイアウト制約）、タイミング制約、複数のＩＰブロック間の互換性、様々なブロックの諸機能、様々なブロックによってサポートされるトランスポート、ＩＰブロックのドライバ、クロック周波数、システムに提供される多数のゲート、各ＩＰブロックに割り当てるシステムリソースのタイプおよび量の判断が含まれ得る。他の複数の例の中でも特に、レイアウトマネージャ６８０、互換性エンジン６８５、機能マネージャ６９０のような構成エンジン６７５のサブロジックは、様々なＩＰブロックの属性を記述するメタデータに対し、様々なチェックおよび分析を実行できる。構成エンジン６７５は、例えば、取得されたＩＰブロックメタデータによって記述されるＩＰブロックのセットを含むシステムに対して、判断された構成情報を記述するスキーママネージャ６９５を使用して、構成データを生成できる。
【００５１】
いくつかの実装において、例えば、構成エンジン６７５によって生成される構成データは、構成エンジン６７５によって判断され、構成データにおいて記述されたシステム構成を具現化するよう製造され得るＳｏＣおよびＳｏＣファブリックのモデルを生成すべく、ステッチツール６５０によって使用され得る。いくつかの例において、システム設計者はシステム上で実行されるＯＳ周辺のシステムを設計する可能性がある一方、いくつかの実装において、ステッチャツール（例えば、６５０）または他のツールはさらに、ＩＰブロックの特定のグループ化を組み込むシステムの構成の概要を生成すべく、構成データを利用できる。他の複数の例の中でも特に、ＯＳ設計者はそれにより、ＯＳを構成エンジン６７５により判断され、構成エンジンにより生成された構成データに記述されたシステムの設計時の仕様に合うよう調整できる。実際、他の複数の例の中でも特に、いくつかの実装において、構成ツール６０５およびステッチャツール６５０の機能は結合可能である。
【００５２】
いくつかの例において、ＩＰブロックメタデータメカニズムの有用性を強化すべく、各ＩＰブロックまたはデバイスには、一意識別子を割り当て可能であり、対応するＩＰブロックまたはデバイス（およびメタデータのソース）を記述するメタデータが、当該一意識別子にマッピング可能である（ベンダＩＤ／デバイスＩＤの組み合わせが効果的）。
【００５３】
いくつかの実装において、ハードウェア構成の態様に加え、特定のプラットフォームに存在するハードウェアを最適に動作させるべく、必要なファームウェア／ソフトウェア設定およびドライバを自動的に生成すべく、同様のＣＡＤメカニズムが作成され得る。例えば、システムに統合されるブロックにまさに要求される（および対応するメタデータのセットによって記述される）ドライバを含むべく、Ｌｉｎｕｘ（登録商標）カーネル構成パラメータが自動的に生成され得る。
【００５４】
構成メタデータがＩＰ統合自動化を改善すべく、使用され得る。インスタント構成（システムの集約コンポーネントのメタデータに基づくデータレコードを介して有効化された）のメカニズムと結合された共通のインタフェース定義が、複数の異なるソースのＩＰブロックのＳｏＣ統合に対する高度な自動化を可能にし得る。上記の通り、機械可読フォーマット（例えば、ＸＭＬ）のＳｏＣ統合のために使用される、均一のテンプレートがメタデータのために定義され得る。例えば、共通の信号インタフェースの使用を介して、ベンダ中立な準拠および相互運用性メカニズムが確立可能であり、その結果は、評価されたＩＰブロックに関連付けられたメタデータとして発行され、統合ＳｏＣの全体的な信頼性測定基準に寄与すべく、ステッチツールに供給される。不完全なまたは不適格なテスト結果を持つブロックを含めることは、ツールが例えば、インスタント構成を介して確立された構成情報を使用して、特定の問題のあるケースまたは特定のＩＰブロックの制限事項が、統合されるＳｏＣの機能または性能に影響を与えないということを判断できない限り、フラグを立てることができる。一例として、特定のＩＰブロックのＭＡＸ  ＰＡＹＬＡＯＤ  ＳＩＺＥの制限事項が、提案されるＳｏＣ（ＩＰブロックを含む）の機能または性能を全体として制限しないことを判断できる。他の複数の例の中でも特に、上記の複数の態様に加え、レイテンシ管理（例えば、ＬＴＲ）およびプラットフォーム内のアクティビティの調整（ＯＢＦＦ）のために整合されたＳｏＣの同等物を確立可能なツールが提供でき、シミュレーションおよび検証ツールを提供し、テストは整合された実装を確立および維持するのに適している。
【００５５】
図７を見ると、複数のＩＰブロックからなる統合システムのようなシステムの構成を記述する構成データ７１０を生成するステッチャ７０５（または構成ツール）の例示的な実装の簡易ブロック図が示されている。この特定の例において、ステッチャ７０５は、ＩＰブロック構成情報のデータベースおよび付随情報（例えば、セット内のＩＰブロックのためのビルド付随情報）を含むデータ７１０を生成する。一例において、トランスポートモード、機能、メモリリソース要件、タイミング属性、ペイロード制限、および対応するＩＰブロックの他の静的、半静的、または既定の属性のような構成属性を指定するＩＰブロックメタデータ７１５から構成データ７１０が生成され得る。ビルド付随データ７２０はまた、各ＩＰブロックに対し、ステッチャで評価され得る。ビルド付随データは例えば、設計段階で「ソフトＩＰブロック」またはＩＰブロックを記述するデータを含み得る。ビルド付随情報は、レジスタ転送言語（ＲＴＬ）または別のプレシリコン設計言語を使用して実装され得る。いくつかの実装において、ビルド付随データ７２０は、ＩＰブロックメタデータに含まれ得る。ＩＰブロック準拠性テスト結果データ７２５も、ステッチャ７０５によって使用され得、ＳｏＣまたはＭＣＰに包含するよう指定された様々なＩＰブロック間の相互運用性および互換性のレベルを含む、ＩＰブロックの互換性および準拠性分析の結果を記述できる。テストまたは検証ロジック（例えば、テストエンジン７３０）は、テスト結果データ７２５を生成すべく、ＩＰメタデータ７１５の機械可読部分および／またはビルド付随情報７２０に対し、これらの検証、互換性および準拠テストを実行できる。データ７１５、７２０、７２５から取得された機能、構成パラメータ、およびブロック間の互換性および機能に関する情報を用いて、ステッチャロジック７０５は、システム（例えば、統合システム）の構成属性（例えば、レイアウト構成、クロック構成、サポートされるトランスポート、ＩＰブロック間の相互運用性構成等）を判断でき、その結果を機械可読構成データ７１０に記述できる。構成データ７１０は、潜在的に考えられる他の情報の中でも特に、ＲＴＬコード、合成ディレクティブ、制約、およびＳｏＣを構築するために合成すべき他の情報、ＳｏＣに特有／適切なＯＳソースファイル、テスト結果、ユーザ文書を含む、対応するＳｏＣおよびそのコンポーネントの実質的に完全な記述を含むことができる。上記の他の例で示した通り、構成データ７１０は、例えば、他の潜在的な使用の中でも特に、システムおよびシステムＯＳの設計者をガイドし、並びにインスタント構成データ構造（例えば、５２０）の基礎を形成すべく、使用され得る。
【００５６】
上記の通り、プレシリコン「ソフト」ＩＰブロックが、対応するソフトＩＰブロックに基づいてシリコンに実装され得るハードウェアベースの「ハード」ＩＰブロックの構成および属性を記述するデータに具現化され得る。ソフトＩＰブロックはこの文脈においてハードＩＰブロックから区別される一方、「ＩＰブロック」（すなわち、「ハード」または「ソフト」ＩＰブロックとして具体的に称されない場合）の特徴および使用に関する記載が、文脈によってハードおよび／またはソフトＩＰブロックに適用され得ることを理解されたい。
【００５７】
ＰＣＩおよびＰＣＩｅのような定義済みの信頼される高性能相互接続トランスポートプロトコルおよびアーキテクチャを提供するシステムが、システムへの統合のための潜在的に考えられる任意のＩＰブロックのドライバまたは他の上位層ロジックによって活用され得るトランスポート層を介して、サービスとして、実装され得る。従来のＰＣＩは、仕様を定義されたクラスドライバソフトウェアスタックをサポートでき、そこでは各特定のデバイスタイプに対する特定のＰＣＩ／ＰＣＩｅクラス／サブクラス／プログラミングインタフェース（ＰＩ）がレジスタインタフェースレベルにおいて定義される。改善されたアーキテクチャにおいては、明示的に定義された層状モデルが提供され、改善されたＰＣＩまたはＰＣＩｅプラットフォーム上でサポートされ得る。そこでは、例えば、データトランスポート、シグナリング、およびデバイス管理のような、ＰＣＩまたはＰＣＩｅアーキテクチャの仕様を定義された原理および特徴のうちの少なくとも一部を適用するサービスが一般的に定義される。図８に示される通り、統合システム内のＩＰブロックのような複数のデバイス（例えば、８０５、８１０、８１５）は、システム内のすべてのデバイス（例えば、８０５、８１０、８１５）に対し利用可能にされている定義されたＰＣＩトランスポート層８３５を介して提供されるＰＣＩ／ＰＣＩｅベースのトランスポートサービスとのインタフェースを取ることができ、それを使用可能なＩＰブロック特有のドライバまたは他の上位レベルのプロトコルおよびロジック（例えば、８２０、８２５、８３０）を有し得る。例えば、デバイス特有のドライバは、デバイス（例えば、８０５、８１０、８１５）の各々に対するこのＰＣＩトランスポート層８３５基盤の上部に、構築され得る。
【００５８】
いくつかの実装において、システム（例えば、ＳｏＣ）内の様々なデバイスのために開発されたドライバは、定義された均一のＰＣＩベースのトランスポート層８３５を含む層状アーキテクチャに基づくことができる。そのような定義されたトランスポート層を使用することで、開発者が特定のデバイス用に一から新しいトランスポートメカニズムを構築するのではなく、実績のあるトランスポートアーキテクチャ（例えば、ＰＣＩ／ＰＣＩｅ）上に構築できることから、システム開発コストを低減できる。他の複数の例の中でも特に、Ｉ／Ｏ仮想化の強化およびデータ移動エンジンのようなハードウェアの付加価値機能の製品化を単純にするための確立されたハードウェアメカニズムの均一のセットを用いることで、製品化までの時間およびプラットフォームの堅牢性が改善され得る。
【００５９】
いくつかの例において、図８に示されるもののように、ＰＣＩトランスポート層は、定義されたモード８４０のセットを含み得る。各モードは、定義されたＰＣＩ／ＰＣＩｅトランスポート機能のセットを提供する、それぞれのレベルのサービスを提供できる。いくつかのコンポーネントアプリケーションが、ＰＣＩ／ＰＣＩｅ性能強化、効率性強化、または省エネルギー機能およびプロトコルを有効に活用してよい一方、他のアプリケーションは、よりベアボーンなバージョンのＰＣＩ／ＰＣＩｅで満足され得る。従って、複数の異なるモードがパッケージされ得、様々なレベルのＰＣＩ／ＰＣＩｅトランスポートおよび対応する機能を提供する。例えば、一例（図８に示すような）において、最高モード（「モード５」）は、ハードウェアスキャッタ／ギャザー機能のためのサポートを含むマルチキューモデルのような、堅牢なＰＣＩ／ＰＣＩｅトランスポートモデルに基づいている。別のモード、「モード４」は、モード５に類似するが、ハードウェアスキャッタ／ギャザーを有さないモデルのような、僅かにより簡易化されたＰＣＩ／ＰＣＩｅトランスポートモデルを提供する。また、さらに簡易化されたモード、「モード３」は、システムメモリ内での固定バッファおよびバスマスタリングをサポートおよび使用する、簡易化されたモデルに従い、ＰＣＩ／ＰＣＩｅベースのトランスポートサービスを提供する。別のモード、「モード２」はさらに簡易化されており、固定バッファ（例えば、インメモリマップされたＩ／Ｏ（ＭＭＩＯ））ベースアドレスレジスタ（ＢＡＲ）メモリ）を持つが、バスマスタリングを持たない（例えば、コンポーネントが送信先であり、送信元ではない）簡易モードを提供する。図８の例において、例示的なＰＣＩトランスポート層モードを介して提供される最も単純なモードは、バスマスタリングを持たず、データ移動（例えば、ＣＰＵにより命令されたデータ移動のためのｘ８６ＭＯＶＳ命令を使用する）のためのバイトストリームサポートのみを持つ「モード１」である。
【００６０】
ＰＣＩトランスポート層を提供する、システム内のそれぞれ個々のコンポーネントは、ＰＣＩトランスポート層のモード（例えば、８４０）のうちの１または複数をサポート可能である。さらに、いくつかのコンポーネントは、ＰＣＩトランスポート層を介して提供されるモードによって拡張され得るコアまたはネイティブトランスポート（例えば、非ＰＣＩ／ＰＣＩｅ）を有してよい。例えば、ＵＳＢデバイスは、いくつかの選択された例において、ＰＣＩトランスポート層を介して提供される複数のモードのうちの特定の１つを使用して、データを送信できる。実際、ＰＣＩトランスポート層の様々なモードは、例えば、トランザクションのいくつかのカテゴリにおけるモードのうちの１つおよび他のトランザクションにおけるモードのうちの別の１つを使用して、特定のデバイス（例えば、ＩＰブロック）によって選択的に使用可能である。
【００６１】
いくつかの実装において、「ＰＣＩトランスポート」は、デバイスに対し識別される特定のＰＣＩクラスコード（またはサブクラスまたはプログラミングインタフェース）を介して、システムソフトウェアによって検出される。例えば、１または複数のＰＣＩクラスが、「ＰＣＩトランスポート」に割り当て可能であり、当該クラスは、定義されたＰＣＩトランスポートサービスをサポートするハードウェアを含むことを示す。そのような各クラスは、ＰＣＩトランスポートの各々の潜在的使用のためのサブクラスを有し得る。例えば、あるサブクラスはストレージに対応でき、別のものはネットワーキング用に、別のものはＰＣＩトランスポート経由のＵＳＢ用に、別のものはＰＣＩトランスポート経由のＨＩＤ用といった具合である。いくつかの実装において、ＰＣＩにおけるクラス／サブクラス／ＰＩは、特定の機能に適用可能であり、よって、その機能について、あるものはＰＣＩトランスポートを使用するかまたは使用せず、しかしながら、単一のハードウェアコンポーネントは、複数の機能インタフェースを実装でき、従って、それは、ＰＣＩトランスポートを使用する１つの機能と、ＰＣＩトランスポートを使用しない別の機能（例えば、当該第２の機能は、例えばＷｉＦｉといった、既存のデバイスドライバにバインド可能である）とを有し得る。さらに、デバイスのＰＣＩサブクラスは、どの上位レベルプロトコルが、デバイスのＰＣＩトランスポート層より上にバインドされるかを識別すべく使用され得る。例えば、一例において、プロセス間通信ロジック、ヒューマンインタフェースデバイス（ＨＩＤ）のための既存のスタックへのバインド、または他の上位レベルプロトコルが、特定のデバイスのＰＣＩトランスポート層より上にバインドされ得る。さらに、いくつかの例において、他の複数の例の中でも特に、ＰＣＩトランスポート層モードの特定のＰＣＩ  Ｐｉｓへの厳格なまたは非公式のマッピングを介する等して、どのＰＣＩトランスポート層メカニズムがデバイスによって使用されるかを定義すべく、デバイスのそれぞれのＰＣＩプログラミングインタフェース（ＰＩ）を識別することが使用され得る。いくつかの例において、他の複数の例の中でも特に、マッピングは、例えば、ランタイム時に特定のタスク用のＰＣＩトランスポートサービスを要求する、デバイスドライバのためのＡＰＩを提供すること等による、より静的でない方法でなされ得る。
【００６２】
ＰＣＩトランスポート層の実装は、複数の動作モードを定義できる。いくつかの実装において、どのＰＣＩトランスポート層モードが採用されており、システムのどのコンポーネントによってサポートされているかを定義する１または複数のレジスタ、または他のデータ構造が提供され得る。実際、コンポーネントによって採用されるモードのセットは、静的構成属性にでき、システムメモリ内に永続的に維持されるデータ構造（例えば、５２０）において、システムＯＳ、ソフトウェアアプリケーション、または他のシステム要素への直接的なインスタントアクセスのために定義できる。実際、いくつかの実装において、デバイスによってサポートされるＰＣＩトランスポート層は、当該デバイスに対応するＩＰブロックメタデータにおいて定義できる。レジスタおよび／またはメタデータはさらに、様々なＰＣＩトランスポート層モードが特定のデバイス（例えば、ＳｏＣのＩＰブロック）によって使用されることになるアプリケーションまたは他の状態を定義できる。潜在的に無限に変わり得る潜在的に考えられる他の例の中でも特に、例を挙げると、一例において、ＰＣＩトランスポート層を実装し、複数の異なるプログラミングインタフェースをサポートし、異なる複数のスタックにバインドするシステムは、例えば、独自ドライバ（今日の標準のような）を使用するＷｉＦｉ  ＰＣＩｅ機能、例示的なＰＣＩトランスポート層の特定のモードを使用（例えば、図８の例示のモード４の例のプログラミングインタフェースを使用）してＭＢＩＭスタックにバインドするＷＷＡＮ機能、および異なるプログラミングインタフェースを使用してオーディオスタックをＰＣＩトランスポート層モードの別のモード（例えば、前の例のモード２またはモード３）にバインドするＢｌｕｅｔｏｏｔｈ（登録商標）機能を有する可能性のある、例えば多機能無線モジュールをサポートし得る。
【００６３】
別の例において、センサ取り付け使用モデルはさらに、ＰＣＩトランスポート層の、例えばＵＳＢ若しくはＨＩＤの既存のソフトウェアスタックへのバインドを可能にするシステムを活用できる。既存のＨＩＤソフトウェアスタックと相互運用できる能力は、ユーザによる対話のためのプラットフォームセンサを使用する機能構築を単純化でき、例えば、様々なタッチおよび／またはイメージングセンサがマウス若しくはトラックパッドのような既知のポインティングデバイスとしてアプリケーションに表示されるよう作成できる。デバイスが異なる最適化ポイントを用いる異なる転送メカニズムを使用する傾向があるので、以前のソリューションでは、ＰＣＩ／ＰＣＩｅのホスト（例えば、ルートコンプレックス）の最適化を容認にすることが難しかったが、例示的な他の利点および用途の中でも特に、ＰＣＩトランスポート層およびサービスを確立する追加的な利点として、定義された層が、基礎をなすトランスポートメカニズムからなる共通セットの広範な使用に基づいて、ロード／ストアレベルにおける一連のマイクロベンチマークの定義を有効化できることにある。
【００６４】
ＰＣＩトランスポート層の複数の用途の中でも特に、いくつかの実装において、強化された標準化ピアツーピア（または「デバイスツーデバイス」）転送が、有効化され得る。例えば、従来のソリューションは、デバイスツーデバイス転送を有効化するためにサイドバンドデータパスに大幅に依存してきた。しかしながら、これはシリコンおよび基板の柔軟性を制限し、過剰コストをもたらす可能性がある。いくつかのシステムにおいて、直接的なピアツーピア接続を検出および構成するための（いくつかの場合において、少なくとも部分的にＰＣＩトランスポート層上に構築された）アーキテクチャが提供され得る。そのような接続は、オーディオストリームをデジタル信号プロセッサ（ＤＳＰ）ブロックから出力デバイスへと送信するような簡易な接続から、ＰＣＩトランスポート層がサポートされるファブリック（限定されないが、スイッチ、非透過的ブリッジ等を使用して形成されるＰＣＩｅファブリックを含む）を使用して接続されるマルチプロセッサシステムにおけるコアツーコア通信までにわたる可能性がある。他の潜在的な利点の中でも特に、いくつかの実装において、あらゆる場合にコストを低減し、デバイス／プラットフォームの柔軟性を向上させつつ、直接的な特定目的のピアツーピアデータパスを介して実現可能なものに相当するか、場合によってはそれよりも優れた電力レベルを実現できる。
【００６５】
一例において、直接的なピアツーピア転送（または、単に「ピア転送」若しくは「直接転送」）機能は、ＰＣＩトランスポート層を介して提供され得、それは、例えば、１または複数の一意のサブクラスにマッピングされている等、ＰＣＩトランスポート層の他の使用法と区別される。様々な異なるピア転送パスが、システム内の様々なデバイス間で確立され得る。ピア転送のこれらの様々なカテゴリは、さらにサブレイヤ化され得る。例えば、一例では、オーディオ／ビデオ（ＡＶ）トランスポートをサポートする一般的なタイプの接続が、当該ピア転送に参加することになる当該デバイスのうちの１つまたは両方に対し識別されたＰＣＩサブクラスに基づいて検出され得る。例えば、転送におけるソースデバイスが、トランスポートされるデータの正確なタイプのような、当該転送の追加属性を判断すべく、クエリされ得る。いくつかの実装において、ピア転送が適用されるトランザクションまたはアプリケーションの属性が識別され得、ピア転送の対応する構成が関与するデバイスの構成属性（例えば、ＯＳによってアクセスされるデータ構造（例えば、５２０）に含まれるＩＰブロックメタデータから確認される）に基づいてソフトウェア（例えば、ＯＳ）によって確立され得る。ピア転送は、関与するソースおよびシンクデバイスに対し判断された互換性並びに転送タイプ（例えば、データタイプ、ピア転送が実行されるアプリケーションタイプ等）に従い、構成され得る。
【００６６】
図９は、第１のソースデバイスと第２のシンクデバイス（すなわち、ソースデバイスからの転送データを受信するもの）との間にピア転送を構成するための例示的なフローを示す、例示的なフローチャート９００を示す。一例において、ソフトウェアアプリケーションまたは他のプログラムが、あるソースデバイスから別のシンクデバイスへのデータ転送を含む、特定のサービスをリクエストできる（９０５）。当該ソースおよびシンクデバイスは、当該リクエストに基づいて識別され得る。例えば、１または複数の候補ソース要素のセットが、それぞれのデバイスの識別された機能に基づいて、識別（例えば、ＯＳまたは構成メタデータのデータ構造のハブによって）され得る。他の例において、当該ソースおよびシンクデバイスは明示的に識別され得る。また、いくつかの例において、転送されるデータタイプに対し適切なトランスポートのタイプ（ＰＣＩトランスポート層を介して提供される特定のモードのような）も識別され得る。ピア転送のタイプにおける当該ソースおよびシンクデバイスの互換性（例えば、ＰＣＩトランスポート層のサービス経由で提供される）が判断され得る。例えば、互換性は、他の複数の例の分類の中でも特に、当該ソースデバイスのクラス／サブクラス／ＰＩの識別に基づいて判断され得る（９１０）。識別されたソースデバイスのクラス／サブクラス／ＰＩがリクエストと互換性がない場合、リクエストを失敗させることができる。また、シンクデバイスのクラス／サブクラス／ＰＩがリクエストと互換性があるかどうかも判断され得る（９１５）。ソースおよびシンクデバイスが、互換性がある場合、ソースデバイスは、選択されたプログラミングインタフェース（例えば、ＰＣＩトランスポート層）を使用して、シンクデバイスをターゲットとするよう構成され得る。ピア転送を終了させるリクエストが受信される（例えば、９２５において）まで、当該転送は続行され得る。シンクデバイスは、例えば、転送終了時に当該シンクおよびソース間で出現する可能性のある競合状態を補助すべく、データの処理は停止するが、データの受け入れは続行するよう構成され得る（９３０）。ピア転送を終了するために次に、ソースデバイスは９３５において無効化され、開始状態に戻され得る（例えば、潜在的な将来のトランザクションに備える）。同様に、シンクデバイスも９４０において、無効化され、開始状態に戻され得る。
【００６７】
前の例で暗示したように、デバイスの構成属性（例えば、サポートされるトランスポートモード、機能等）は、シンクデバイスのＰＣＩ／ＰＣＩｅ  クラス／サブクラス／ＰＩの連結によって定義される分類子から識別され得る。各クラス／サブクラス／ＰＩは、対応するタイプのサービスを提供可能な、または対応するタイプのサービスに参加可能な複数のデバイスのカテゴリに関連付けられることができ、さらにデバイス間の互換性を識別すべく、使用できる。デバイスの構成属性（例えば、クラス／サブクラス／ＰＩベース）は、システム上で実行される特定のアプリケーションを含むソフトウェアに表示できる。いくつかの場合において、他の複数の例の中でも特に、アプリケーションが、システムに、ピア転送のような特定のトランザクションを実行するためのデバイスが欠如していると識別した場合、当該アプリケーションは、ソフトウェアで追加のステップを実行することによって、ハードウェアの当該識別された欠陥をプログラム的に埋め合わせる手段を用いることができる。
【００６８】
いくつかの実装において、ピア転送に対応する特定のアクティビティのためのシステムリソースを判断することによって、ピア通信を可能にすべく、いくつかのデータパスがランタイム時に動的に提供され得る。他の複数の例の中でも特に、特定のピア転送トランザクションで使用されないと判断された他のリソースは、パワーダウンできる。そのような直接転送の動的な使用は、ＳｏＣアクティビティを特定のワークロードに対しアクティブになるブロックのみに限定されるようにでき、直接転送アクティビティ中、ＳｏＣファブリック要素、バッファ等を含む他のリソースがパワーゲートされることを保証する。いくつかの実装において、システム（ＳｏＣのような）内のＩＰブロックは、さらなる効率性を導入すべく、専用データムーバおよびＩ／Ｏ中心のワークロードを、より大型のコアおよびシステムメモリのような中央リソースからオフロードされるようにできる異種のＩ／Ｏ最適化コアを含むことができる。
【００６９】
いくつかの実装において、ピア転送の使用に対し、ＡＶトランスポートとの接続のような切り替えメカニズムが提供され得、アプリケーションまたはプラットフォーム動作モードが変わる際、例えば、異なるソースからのデータフローの歪み（例えば、不調、屈曲等）のない移行を補助する。例えば、切り替えメカニズムは、ホストＣＰＵがオーディオ処理を実行しているが、このタスクを特化エンジンにオフロードし、節電のためシャットダウンするモードからの切り替えに使用できる。さらに、いくつかの場合において、ＴＣ０／ＶＣ０上のようなピア転送トラフィックを区画から分離すべく、トラフィッククラス（ＴＣ）／仮想チャネル（ＶＣ）差別化（ＰＣＩ／ＰＣＩｅで定義されるような）も提供され得る。あるいは、他の複数のＰＣＩ／ＰＣＩｅ機能の中でも特に、Ｒｅｌａｘｅｄ  Ｏｒｄｅｒｉｎｇ（ＲＯ）およびＩＤ  Ｏｒｄｅｒｉｎｇ（ＩＤＯ）のような順序付け属性が、ピア転送トラフィックに適用可能であり、例えば、他の複数の例の中でも特に、状況に応じてピア転送トラフィックのブロック解除を可能にする。
【００７０】
従来のＰＣＩｅは通常、配線コネクタ、ケーブル等を介して単一のプリント基板上で接続され得る２つのコンポーネントのインタフェースを取るために定義された高速シリアル物理インタフェースの文脈の中で考えられている。ＰＣＩ／ＰＣＩｅアーキテクチャは、オンダイ統合のために実装されてきたが、ＰＣＩ／ＰＣＩｅオンダイを統合する従来のソリューションは、インテルオンチップシステムファブリック（ＩＯＳＦ）のような独自のインタフェースを用いる。そのような独自のファブリックおよびＳｏＣ統合技術と方法論を開発するコストは、場合によっては容認できるが、最小の開発若しくは経常コストにおいて、他の独自技術と相互運用するＳｏＣ技術のＰＣＩ／ＰＣＩｅ原理を実装するための定義されたアーキテクチャは、顕しい利益を生み出すことができる。例えば、様々な新しいシステムおよびシステムの柔軟性が、内部および外部の両方のソースのＩＰブロックの使用を介して実現され得る。例えば、ＩＰブロック統合を容易にすべく、ＩＰブロックとＳｏＣの残部との間の明確に定義されたインタフェースが定義可能である。さらに、プログラミングモデルおよび他のソフトウェアの関連する態様を含む、ＩＰブロック間同士およびＳｏＣの他の部分とのインタフェースを取るためのツールおよび技術も、ＩＰブロックのための動作環境を確立するアーキテクチャと共に、概して確立可能である。
【００７１】
図１０は、様々なＰＣＩ／ＰＣＩｅアーキテクチャモデルを示す簡易ブロック図を示す。従来のＰＣＩ／ＰＣＩｅシステムにおけるデバイス間トランスポートは通常、モデル１００５に従い概念化されてきた。そこでは、２つの個別のコンポーネント（ホストおよびデバイスのような）がトランザクション、データリンク、および物理層を使用して実装される従来のＰＣＩｅリンク経由で接続されている。さらに、いくつかの場合において、パイプ物理層インタフェースが利用され得る。パイプインタフェースは従来、ＭＡＣ／ＰＨＹインタフェースとして実装されてきたが、参照により本明細書に組み込まれる米国特許第８，３９５，４１６号に記載の通り、ＩＰブロックインタフェースのような統合システム内でも使用可能である。モデル１０１０に示される通り、パイプインタフェース、すなわち「パイプ‐Ｌリンク」を使用して実装されたＩＰブロックインタフェースは、そのようなリンクを使用して接続されたＩＰブロックコンポーネントに対しほとんど修正を加えることなく、あるいはまったく修正を加えることなく、正常に展開可能である。しかしながら、いくつかの場合において、パイプ‐Ｌベースのソリューションは、シリコン領域の最適化使用を満たさないといった、いくつかの欠点を被る可能性がある。リンクのさらなる第３のカテゴリにおいて、データリンクおよび物理層ロジックへの依存から引き離し、相互接続アーキテクチャの実装のためのシリコンの使用を最適化するＡｒｅａ  Ｏｐｔｉｍｉｚｅｄ  Ｂｌｏｃｋインタフェース（ＡＯＢ）リンクが定義および提供可能である。ＡＯＢリンクは、モデル１０１５に図示の通り、ＩＰブロック間の直接のトランザクション層対トランザクション層インタフェースを容易にできる。そのような複数の実装において、他の複数の例の中でも特に、ＩＰブロック自体の上流層は、ＩＰブロックを互いに、およびコア、メインメモリのようなシステムの中央リソースに接続する「ファブリック」を実装できる。
【００７２】
一例において、月並みな従来のＰＣＩ／ＰＣＩｅアーキテクチャにおいて確立された従来の個別のコンポーネント信号送信モデル（例えば、１００５）のコア機能を維持しつつ、トランザクション層対トランザクション層の信号送信の柔軟性を提供する信号のライブラリを含むＡＯＢリンクインタフェースが提供可能である。以下の例においては、概してリンクインタフェースは、存在するすべての機能とともに記載されている。しかしながら、特定の例は、すべての機能を必要としない可能性があり、そのような場合は簡易サブセットが実装され得る。
【００７３】
一例において、ＡＯＢリンクインタフェースは、ＰＣＩ／ＰＣＩｅアーキテクチャの不可欠な態様と一貫性のある、生成可能または使用可能なすべてのタイプのＴＬＰを含むことができる。例えば、ＰＣＩｅは、トランザクション層パケット（ＴＬＰ）の３つのクラス、すなわち、Ｐｏｓｔｅｄ、ＮｏｎＰｏｓｔｅｄ、およびＣｏｍｐｌｅｔｉｏｎを区別し、これら３つのタイプに基づいて順序付けルールを定義する。ＡＯＢリンクインタフェースの「送信機」側は、「受信機」からのフロー制御情報に基づいてＴＬＰの送信のための正しい順序を判断する。ＡＯＢリンクインタフェースのいくつかの実装においては、従来のＰＣＩ／ＰＣＩｅにおけるようにクレジットベースのフロー制御を使用するのではなく、ハンドシェイクメカニズムが提供可能である。そのようなハンドシェイクおよびＡＯＢリンクインタフェースの他の特徴を提供するには、定義された信号のライブラリが提供可能である。例えば、ＡＯＢリンクインタフェースの一例において、信号およびセマンティクスは、次のものを含み得る。
【００７４】
【表１】
0006311164.tif 000002
【００７５】
いくつかの実装において、ＰＣＩ／ＰＣＩｅにおけるヘッダをフォーマットするヘッダが採用され得る。しかしながら、他の複数の例の中でも特に、いくつかの例において、ヘッダは従来のＰＣＩ／ＰＣＩｅヘッダより小さいサイズで定義可能であり、これは例えば、統合システムにおいて実装されるリンク幅が狭くなることが主な原因である。上記の表のＵｐ／ＤｎおよびＤｎ／Ｕｐ注記によって記載された通り、いくつかの信号は潜在的なシンクデバイスによって、潜在的なソースデバイス（すなわち、Ｕｐ／Ｄｎ）に対し上流にアサートされることができ、それによりソースデバイスに影響を与える（例えば、保留信号）。あるいは、送信された（または送信される）（すなわち、Ｄｎ／Ｕｐ）データに関する情報を含めるべく、有効信号のような他の信号がデータの送信機によってアサートされ得る。
【００７６】
図１１Ａから１１Ｄを見ると、ＳｏＣアーキテクチャおよび他のシステムにおいて採用可能な例示的な技術を示すフローチャート１１００ａ〜１１００ｄである。例えば、図１１Ａの例においては、構成メタデータが、オペレーティングシステムまたは他のシステムソフトウェアにアクセス可能なデータ構造内に永続的に格納可能であり、システム上のデバイスの様々な（場合によっては、静的）構成パラメータを記述する。いくつかの場合において、例えば、ＩＰブロック、チップ、またはＳｏＣの他のコンポーネントのようなデバイスがシステム内に統合可能である。データ構造内に定義済みのシステムデバイスに関する１または複数の構成パラメータを使用して、既に存在する（例えば、ランタイム前）データ構造が、例えばランタイム時に識別可能である（１１０５）。各デバイスの特定の構成パラメータが、データ構造にアクセスし、そこから読み取ることによって、識別可能である（１１１０）（例えば、オペレーティングシステムを使用して）。データ構造から識別（１１１０）されたこれらの構成パラメータに少なくとも部分的に基づいて、デバイスは構成可能である。他の複数の例の中でも特に、デバイスのうちの１または複数の他の構成パラメータが、例えば、システムファームウェア（例えば、ＢＩＯＳ）のスキャンによって、ランタイム時に識別および定義可能であり、それぞれのデバイスを構成すべく、データ構造から識別された構成パラメータと関連させて使用可能である。
【００７７】
図１１Ｂにおいて、デバイス構成メタデータに基づくまたはそれを含むデータ構造が、例えば、オペレーティングシステムまたは他のシステムソフトウェアによって、アクセス可能である（１１２０）。構成メタデータは、データ構造内に永続的に格納可能であり、システム上のデバイス並びにシステム（例えば、ＳｏＣ）全体の様々な（場合によっては、静的）構成パラメータを記述する。構成パラメータはまた、デバイス（例えば、ドライバ若しくは他のハードウェアおよび／またはソフトウェアロジック）のロジックが、標準化されたトランスポート層にバインドされ、それを使用することを識別するのに使用可能である（１１２５）。トランスポート層は、他のプロトコルをそれらのネイティブプロトコルとして利用するデバイスを含む、他のデバイスにより使用されるサービスとして提供されるＰＣＩｅトランスポート層であり得る。いくつかの例において、トランスポート層は、複数のモードを定義可能であり、デバイスによってサポートまたは使用されるトランスポート層モードのサブセットが構成パラメータから判断可能である（１１３０）。一例において、構成パラメータは、予め定義可能（例えば、ランタイム前）であり、システム内のデバイスのクラス、サブクラス、および／またはプログラミングインタフェース、およびデバイスによるトランスポート層のバインドおよび使用を示すことができ、並びにデバイスによって使用されるトランスポート層モードは、デバイスのそれぞれのクラス、サブクラス、および／またはプログラミングインタフェース分類から識別できる。
【００７８】
図１１Ｃを見ると、いくつかの例において、システム上のソフトウェアアプリケーションのサービスリクエストのような、サービスリクエストが識別可能である（１１４０）。サービスリクエストは、直接的なデバイスツーデバイス、すなわちピアツーピアのデータ転送に関連付けられると識別され得る。デバイスツーデバイスデータ転送を介して要求されたサービスの少なくとも一部を実行するための機能を含む第１および第２のデバイスが識別され得る。デバイスツーデバイスデータ転送における第１のデバイスの第２のデバイスとの互換性が判断可能である（１１４５）。デバイスの機能を識別し、それらの互換性を判断するこことは、他の複数の例の中でも特に、構成データ構造および／またはデバイスレジスタに格納されたデバイス構成情報に基づくことができる。第１のデバイスおよび第２のデバイスに互換性がある場合、第１のデバイス（および潜在的には第２のデバイスも）は、デバイスツーデバイスデータ転送を実行すべく、構成可能である（１１５０）。他の複数の例の中でも特に、データ転送に関与しない他のデバイスは、第１のデバイスおよび第２のデバイスがデバイスツーデバイスデータ転送（または「ピア転送」）を完了する間、一時的にアイドルまたは非アクティブ化されてよい。
【００７９】
図１１Ｄにおいて、フローチャート１１００ｄが、システムオンチップ（ＳｏＣ）または他の統合システムに含まれるデバイスのセットを記述するデータの識別（１１６０）を含む例を示す。データは、他の複数の例の中でも特に、デバイスメタデータ、ビルド付随情報、テスト結果、ユーザ文書を含むことができる。データは、デバイスのセットにおける各デバイスに対し、取得可能である（１１６５）。例えば、セット中の各デバイスに対するそれぞれのデータソースが識別可能であり、そのデータについてデータソースにクエリ可能である。識別されたソースのクエリから戻されたデータは、例えば、ステッチャまたは他のシステム設計ツールによって処理され、当該デバイスのセットを含む統合システムの構成を判断できる（１１７０）。他の複数の例の中でも特に、判断された構成を記述するシステム構成データが生成可能であり、システム内での使用のために構成データ構造を生成すべく使用可能であり、システムのオペレーティングシステム構成の自動化設計において使用可能である。
【００８０】
上記の装置、方法、およびシステムは、前述の通り、任意の電子デバイスまたはシステムにおいて実装されてよいことに留意されたい。具体例として、以下の図は、本明細書に記載の本発明を利用するための例示的なシステムを提供する。以下のシステムがより詳細に記載される通り、多数の異なる相互接続が開示され、記載され、上記説明から再検討される。容易に明らかなように、上記の進歩は、それらの相互接続、ファブリック、またはアーキテクチャのうちの任意のものに適用され得る。
【００８１】
図１２を参照すると、マルチコアプロセッサを含むコンピューティングシステムの一実施形態のブロック図が示されている。プロセッサ１２００は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システムオンチップ（ＳＯＣ）、コードを実行する他のデバイスのような任意のプロセッサまたは処理デバイスを含む。一実施形態において、プロセッサ１２００は、少なくとも２つのコア、コア１２０１および１２０２を含み、これらは、非対称コアまたは対称コアを含んでよい（図示された実施形態）。しかしながら、プロセッサ１２００は、対称または非対称であり得る任意の数の処理要素を含んでよい。
【００８２】
一実施形態において、処理要素とは、ソフトウェアスレッドをサポートするハードウェアまたはロジックを指す。ハードウェア処理要素の例としては、スレッドユニット、スレッドスロット、スレッド、処理ユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、および／または、実行状態またはアーキテクチャ状態のようなプロセッサの状態を保持可能な任意の他の要素を含む。換言すると、一実施形態において、処理要素は、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、または他のコードのようなコードに独立して関連付け可能な任意のハードウェアを指す。物理プロセッサ（またはプロセッサソケット）は通常、コアまたはハードウェアスレッドのような任意の数の他の処理要素を潜在的に含む集積回路を指す。
【００８３】
コアとは通常、独立のアーキテクチャ状態を維持可能な集積回路上に位置するロジックを指し、独立に維持される各アーキテクチャ状態は、少なくともいくつかの専用実行リソースと関連付けられる。コアとは対照的に、ハードウェアスレッドとは通常、独立のアーキテクチャ状態を維持可能な集積回路上に位置された任意のロジックを指し、独立に維持されるアーキテクチャ状態は、実行リソースへのアクセスを共有する。わかる通り、特定のリソースが共有され、他のリソースが特定のアーキテクチャ状態に専用化された場合、ハードウェアスレッドおよびコア間の用語体系のラインが重複する。さらにしばしば、コアおよびハードウェアスレッドは、オペレーティングシステムによって個々の論理プロセッサとして見なされ、その場合、オペレーティングシステムは、各論理プロセッサに対する操作を個々にスケジューリング可能である。
【００８４】
図１２に示されるように、物理プロセッサ１２００は２つのコア、すなわちコア１２０１および１２０２を含む。ここで、コア１２０１および１２０２は、対称コア、すなわち、同一の構成、機能ユニット、および／またはロジックを備えるコアであるとみなされる。別の実施形態において、コア１２０１はアウトオブオーダプロセッサコアを含む一方、コア１２０２はインオーダプロセッサコアを含む。しかしながら、コア１２０１および１２０２は、ネイティブコア、ソフトウェア管理コア、ネイティブ命令セットアーキテクチャ（ＩＳＡ）を実行するよう適合されたコア、変換された命令セットアーキテクチャ（ＩＳＡ）を実行するよう適合されたコア、共同設計されたコア、または他の既知のコアといった、任意のタイプのコアから個々に選択されてよい。異種コア環境（すなわち、非対称コア）においては、バイナリ変換のような、ある形態の変換が利用されてよく、一方または両方のコアに対し、コードをスケジューリングまたは実行する。まだ説明していないが、コア１２０１内の図示された機能ユニットについて、以下にさらに詳細に述べる。コア１２０２におけるユニットは、図示された実施形態において同様の態様で動作する。
【００８５】
図示の通り、コア１２０１は、ハードウェアスレッドスロット１２０１ａおよび１２０１ｂとも称され得る、２つのハードウェアスレッド１２０１ａおよび１２０１ｂを含む。従って、一実施形態において、オペレーティングシステムのようなソフトウェアエンティティは、プロセッサ１２００を４つの別個のプロセッサ、すなわち、４つのソフトウェアスレッドを同時に実行可能な４つの論理プロセッサまたは処理要素として潜在的にみなす。先に暗示の通り、第１のスレッドはアーキテクチャ状態レジスタ１２０１ａに関連付けられ、第２のスレッドは、アーキテクチャ状態レジスタ１２０１ｂに関連付けられ、第３のスレッドはアーキテクチャ状態レジスタ１２０２ａに関連付けられてよく、第４のスレッドは、アーキテクチャ状態レジスタ１２０２ｂに関連付けられてよい。ここで、アーキテクチャ状態レジスタ（１２０１ａ、１２０１ｂ、１２０２ａ、および１２０２ｂ）の各々は上記の通り、処理要素、スレッドスロット、またはスレッドユニットと称されてよい。図示の通り、アーキテクチャ状態レジスタ１２０１ａは、アーキテクチャ状態レジスタ１２０１ｂにおいて複製されており、よって個々のアーキテクチャ状態／コンテキストは、論理プロセッサ１２０１ａおよび論理プロセッサ１２０１ｂのために格納可能である。コア１２０１において、命令ポインタおよび割り当ておよびリネームブロック１２３０内のリネームロジックのような、他のより小さなリソースも、スレッド１２０１ａおよび１２０１ｂのために複製されてよい。並べ替え／リタイヤユニット１２３５における並べ替えバッファのようないくつかのリソース、ＩＬＴＢ  １１２０、ロード／ストアバッファ、およびキューが、パーティショニングを介して共有されてよい。汎用内部レジスタ、ページテーブルベースレジスタ、低レベルデータキャッシュおよびデータＴＬＢ１２５０、実行ユニット１２４０、アウトオブオーダユニット１２３５の部分のような他のリソースが、潜在的に完全に共有される。
【００８６】
プロセッサ１２００は通常、複数の他のリソースを含み、それらは完全に共有、パーティショニングを介して共有、または処理要素により／対して専用とされてよい。図１２において、プロセッサの例示的な論理ユニット／リソースを有する純粋に例示的なプロセッサの実施形態が図示されている。プロセッサは、これらの機能ユニットのうちの任意のものを含む、または省略してよく、並びに図示されていない、任意の他の既知の機能ユニット、ロジック、またはファームウェアを含んでよいことに留意されたい。図示の通り、コア１２０１は、簡易化された代表的アウトオブオーダ（ＯＯＯ）プロセッサコアを含む。しかしながら、インオーダプロセッサは、異なる実施形態において利用されてよい。ＯＯＯコアは、実行されるべき／取り出されるべき分岐を予測する分岐ターゲットバッファ１２２０と、命令に対するアドレス変換エントリを格納する命令変換バッファ（Ｉ−ＴＬＢ）１２２０とを含む。
【００８７】
コア１２０１はさらに、フェッチされた要素をデコードするフェッチユニット１２２０に連結されたデコードモジュール１２２５を含む。一実施形態において、フェッチロジックは、スレッドスロット１２０１ａ、１２０１ｂにそれぞれ関連付けられた個々のシーケンスを含む。通常、コア１２０１は、プロセッサ１２００上で実行可能な命令を定義／指定する第１のＩＳＡに関連付けられる。通常、第１のＩＳＡの部分である機械コード命令は、命令（オペコードと称される）の部分を含み、それは実行される命令または動作を参照／指定する。デコードロジック１２２５は、これらの命令をそれらのオペコードから認識し、第１のＩＳＡによって定義されるよう処理するために、デコードされた命令をパイプラインで渡す回路を含む。例えば、後に詳細に記載される通り、一実施形態において、デコーダ１２２５は、トランザクション命令のような特定の命令を認識するよう設計または適合されたロジックを含む。デコーダ１２２５の認識の結果、アーキテクチャまたはコア１２０１は、適切な命令に関連付けられたタスクを実行すべく、特定の予め定義されたアクションを取る。本明細書で記載されたタスク、ブロック、動作、および方法のうちの任意のものが、単一または複数の命令に応答して実行されてよく、それらのうちのいくつかは、新しいまたは古い命令であってよいことを留意することが重要である。一実施形態において、デコーダ１２２６は、同一のＩＳＡ（または、それらのサブセット）を認識することに留意されたい。あるいは、異種コア環境においては、デコーダ１２２６は、第２のＩＳＡ（第１のＩＳＡのサブセットまたは別個のＩＳＡ）を認識する。
【００８８】
一例において、割り当ておよびリネーマブロック１２３０は、命令処理結果を格納するレジスタファイルのようなリソースを予約するアロケータを含む。しかしながら、スレッド１２０１ａおよび１２０１ｂは潜在的にアウトオブオーダ実行を可能であり、その場合、割り当ておよびリネーマブロック１２３０は、命令結果を追跡する並べ替えバッファのような他のリソースも予約する。ユニット１２３０はまた、プログラム／命令参照レジスタをプロセッサ１２００の内部の他のレジスタにリネームするレジスタリネーマも含んでよい。並べ替え／リタイヤユニット１２３５は、上述の並べ替えバッファ、ロードバッファ、およびストアバッファのようなコンポーネントを含み、アウトオブオーダ実行と、その後のアウトオブオーダ実行された命令のインオーダリタイヤとをサポートする。
【００８９】
スケジューラおよび実行ユニットブロック１２４０は、一実施形態において、実行ユニットに対する命令／操作をスケジューリングするスケジューラユニットを含む。例えば、浮動小数点命令が、利用可能な浮動小数点実行ユニットを有する実行ユニットのポートでスケジューリングされる。情報命令処理結果を格納すべく、実行ユニットに関連付けられたレジスタファイルも含まれる。例示的な実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、ストア実行ユニット、および他の既知の実行ユニットを含む。
【００９０】
より低レベルのデータキャッシュおよびデータ変換バッファ（Ｄ−ＴＬＢ）１２５０が、実行ユニット１２４０に連結される。データキャッシュは、データオペランドのような最近使用／操作された要素を格納し、それらは、メモリコヒーレンシ状態で潜在的に保持される。Ｄ−ＴＬＢは、物理アドレスへの最近の仮想／線形変換を格納する。具体例として、プロセッサは、物理メモリを複数の仮想ページに分割するページテーブル構造を含んでよい。
【００９１】
ここで、コア１２０１および１２０２は、オンチップインタフェース１２１０に関連付けられた第２のレベルキャッシュのような、より高レベルまたはより遠いキャッシュへのアクセスを共有する。より高レベル、またはより遠いとは、増加した、または実行ユニットからさらに離れた、キャッシュレベルを指すことに留意されたい。一実施形態において、より高レベルのキャッシュは、ラストレベルデータキャッシュ、すなわちプロセッサ１２００のメモリ階層のラストキャッシュであり、例えば第２または第３のレベルデータキャッシュである。しかしながら、より高レベルのキャッシュはそのように限定されず、命令キャッシュに関連付けられてよく、またはそれを含んでよい。トレースキャッシュ、命令キャッシュのタイプが代わりに、デコーダ１２２５の後に連結され、最近デコードされたトレースを格納してよい。ここで、命令は潜在的にマクロ命令（すなわち、デコーダにより認識される一般的命令）を指し、それは複数のマイクロ命令（マイクロ操作）にデコードされてよい。
【００９２】
図示の構成において、プロセッサ１２００はまた、オンチップインタフェースモジュール１２１０を含む。歴史的には、メモリコントローラは、以下で詳細に後述するが、プロセッサ１２００の外部のコンピューティングシステムに含まれてきた。このシナリオでは、オンチップインタフェース１２１０は、プロセッサ１２００の外部のデバイス、例えば、システムメモリ１２７５、チップセット（通常、メモリ１２７５に接続するメモリコントローラハブ、および周辺デバイスに接続するＩ／Ｏコントローラハブを含む）、メモリコントローラハブ、ノースブリッジ、または他の集積回路、と通信する。またこのシナリオでは、バス１２０５は任意の既知の相互接続を含んでよく、例えば、マルチドロップバス、ポイントツーポイント相互接続、シリアル相互接続、パラレルバス、コヒーレント（例えば、キャッシュコヒーレント）バス、層状プロトコルアーキテクチャ、差動バス、およびＧＴＬバスである。
【００９３】
メモリ１２７５は、プロセッサ１２００に専用であってもよいし、システム内の他のデバイスと共有されてもよい。メモリ１２７５の共通のタイプの例としては、ＤＲＡＭ、ＳＲＡＭ、不揮発性メモリ（ＮＶメモリ）、および他の既知のストレージデバイスが含まれる。デバイス１２８０は、グラフィックアクセラレータ、メモリコントローラハブに連結されたプロセッサ若しくはカード、Ｉ／Ｏコントローラハブに連結されたデータストレージ、無線送受信器、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ、または他の既知のデバイスを含んでよいことに留意されたい。
【００９４】
しかしながら、最近、より多くのロジックおよびデバイスがＳｏＣのような単一のダイ上に統合されており、これらのデバイスの各々はプロセッサ１２００上に組み込まれてよい。例えば、一実施形態において、メモリコントローラハブが、プロセッサ１２００と同一のパッケージおよび／またはダイ上にある。ここで、コア１２１０の部分（オンコア部分）は、メモリ１２７５またはグラフィックデバイス１２８０等の他のデバイスとのインタフェースを取るための１または複数のコントローラを含む。そのようなデバイスとインタフェースを取るための相互接続とコントローラとを含む構成は通常、オンコア（または、アンコア構成）と称される。一例として、オンチップインタフェース１２１０は、オンチップ通信のためのリング相互接続と、オフチップ通信のための高速シリアルポイントツーポイントリンク１２０５とを含む。さらに、ＳｏＣ環境では、ネットワークインタフェース、コプロセッサ、メモリ１２７５、グラフィックプロセッサ１２８０、および任意の他の既知のコンピュータデバイス／インタフェース等の、さらにずっと多くのデバイスが、単一のダイまたは集積回路に統合され、高機能および低電力消費を備えたスモールフォームファクタを提供してよい。
【００９５】
一実施形態において、プロセッサ１２００は、本明細書に記載の装置および方法をサポートし、またはそれらとインタフェースを取るべく、アプリケーションコード１２７６をコンパイル、変換、および／または最適化するためのコンパイラ、最適化、および／または変換コード１２７７を実行可能である。コンパイラは通常、ソースのテキスト／コードをターゲットのテキスト／コードへと変換するためのプログラムまたはプログラムのセットを含む。通常、コンパイラによるプログラム／アプリケーションコードのコンパイルは、高レベルのプログラミング言語コードを低レベルの機械またはアセンブリ言語コードへと変換すべく、複数のフェーズおよびパスで行われる。しかしながら、簡易コンパイルのために単一パスのコンパイラも利用されてよい。コンパイラは、任意の既知のコンパイル技術を利用してよく、字句分析、前処理、解析、セマンティック分析、コード生成、コード変換、およびコード最適化のような任意の既知のコンパイラ動作を実行してよい。
【００９６】
より大型のコンパイラは通常、複数のフェーズを含むが、ほとんどの場合、これらのフェーズは、次の２つの一般的なフェーズ内に含まれる。（１）フロントエンド。すなわち、概してそこでは、構文処理、セマンティック処理、およびいくつかの変換／最適化が行われ得る。（２）バックエンド。すなわち、概してそこでは、分析、変換、最適化、およびコード生成が行われる。いくつかのコンパイラはミドルと称され、コンパイラにおけるフロントエンドとバックエンドとの間のあいまいな描写を示す。結果として、挿入、関連付け、生成、またはコンパイラの他の動作への言及が、前述のフェーズまたはパスのうち任意のものにおいて、並びにコンパイラの任意の他の既知のフェーズまたはパスにおいて行われてよい。例示的な例として、コンパイラは、動作、呼び出し、機能等をコンパイルの１または複数のフェーズにおいて潜在的に挿入する。例えば、コンパイルのフロントエンドフェーズにおいて呼び出し／動作を挿入する。その後、変換フェーズ中にその呼び出し／動作をより低レベルのコードへと変換する。動的コンパイル中、コンパイラコードまたは動的最適化コードは、そのような動作／呼び出しを挿入するだけでなく、ランタイム中の実行のためにコードを最適化してよいことに留意されたい。特定の例示的な例として、バイナリコード（既にコンパイルされたコード）が、ランタイム中に動的に最適化されてよい。ここで、プログラムコードには、動的最適化コード、バイナリコード、またはこれらの組み合わせが含まれてよい。
【００９７】
コンパイラと同様、バイナリトランスレータ等のトランスレータは、コードを最適化および／または変換すべく、コードを静的または動的のいずれかで変換する。故に、コード、アプリケーションコード、プログラムコード、または他のソフトウェア環境の実行という言及は、（１）プログラムコードをコンパイルし、ソフトウェア構造を維持し、他の動作を実行し、コードを最適化し、またはコードを変換するための、コンパイラプログラム、最適化コードオプティマイザ、または動的若しくは静的いずれかのトランスレータの実行、（２）最適化／コンパイルがなされたアプリケーションコードといった、動作／呼び出しを含むメインプログラムコードの実行、（３）ソフトウェア構造を維持し、他のソフトウェア関連の動作を実行し、またはコードを最適化すべく、メインプログラムコードに関連付けられたライブラリ等の他のプログラムコードの実行、あるいは（４）これらの組み合わせ、を指してよい。
【００９８】
ここで図１３を参照すると、マルチコアプロセッサの一実施形態のブロック図が示されている。図１３の実施形態に示される通り、プロセッサ１３００は、複数のドメインを含む。具体的には、コアドメイン１３３０は、複数のコア１３３０Ａ〜１３３０Ｎを含み、グラフィックドメイン１３６０は、メディアエンジン１３６５を有する１または複数のグラフィックエンジンおよびシステムエージェントドメイン１３１０を含む。
【００９９】
様々な実施形態において、システムエージェントドメイン１３１０は、電力制御イベントおよび電力管理を処理し、その結果、ドメイン１３３０および１３６０（例えば、複数のコアおよび／またはグラフィックスエンジン）の個々のユニットは、特定のユニット内で発生するアクティビティ（または非アクティビティ）の観点から、適切な電力モード／レベル（例えば、アクティブ、ターボ、スリープ、休止状態、ディープスリープ、または他のＡｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅのような状態）において動的に動作するよう独立的に制御可能である。ドメイン１３３０および１３６０の各々は、異なる電圧および／または電力で動作してよく、さらに当該複数のドメイン内の個々のユニットはそれぞれ、独立した周波数および電圧で潜在的に動作する。３つのドメインのみとともに示されているが、本発明の範囲はこの点に限定されず、他の実施形態において追加のドメインが存在してよいことに留意されたい。
【０１００】
図示の通り、各コア１３３０は、様々な実行ユニットおよび追加の処理要素に加え、低レベルキャッシュをさらに含む。ここで、様々なコアが互いに連結され、またラストレベルキャッシュ（ＬＬＣ）１３４０Ａ〜１３４０Ｎの複数のユニットまたはスライスから形成される共有キャッシュメモリへと連結されている。これらのＬＬＣは通常、ストレージおよびキャッシュコントローラ機能を含み、これらのコア間、並びに潜在的にはグラフィックエンジンとの間においても共有される。
【０１０１】
見ての通り、リング相互接続１３５０は、当該コアを互いに連結し、複数のリングストップ１３５２Ａ〜１３５２Ｎを介して、コアドメイン１３３０、グラフィックドメイン１３６０、およびシステムエージェント回路１３１０間の相互接続を提供する。当該リングストップの各々は、コアとＬＬＣスライスとの間の連結において存在する。図１３に示されるように、相互接続１３５０は、アドレス情報、データ情報、受信確認情報、およびスヌープ／無効情報を含む様々な情報を搬送するために使用される。リング相互接続が示されているが、任意の既知のオンダイ相互接続またはファブリックが利用されてよい。例示として、上記のいくつかのファブリック（例えば、別のオンダイ相互接続、オンチップシステムファブリック（ＯＳＦ）、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ  Ｂｕｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＡＭＢＡ）相互接続、多次元メッシュファブリック、または他の既知の相互接続アーキテクチャ）が、同様の態様で利用されてよい。
【０１０２】
さらに示される通り、システムエージェントドメイン１３１０は、関連付けられたディスプレイに対する制御およびそれに対するインタフェースを提供するディスプレイエンジン１３１２を含む。システムエージェントドメイン１３１０は、システムメモリ（例えば、複数のＤＩＭＭとともに実装されたＤＲＡＭ）へのインタフェースを提供する統合メモリコントローラ１３２０、メモリコヒーレンシ動作を実行するコヒーレンシロジック１３２２のような他のユニットを含んでよい。プロセッサと他の回路との間の相互接続を有効にする複数のインタフェースが存在してよい。例えば、一実施形態において、少なくとも１つのダイレクトメディアインタフェース（ＤＭＩ）１３１６インタフェース並びに１または複数のＰＣＩｅ（商標）インタフェース１３１４が提供される。ディスプレイエンジンおよびこれらのインタフェースは通常、ＰＣＩｅ（商標）ブリッジ１３１８を介してメモリに連結される。さらに、追加のプロセッサまたは他の回路等の他のエージェント間での通信を提供するために、１または複数の他のインタフェースが提供されてよい。
【０１０３】
図１４を参照すると、代表的なコアのブロック図が示されている。具体的には、図１３のコア１３３０のようなコアのバックエンドの論理ブロックである。概して、図１４に示される構造は、着信命令をフェッチし、様々な処理（例えば、キャッシュ、デコード、分岐予測等）およびアウトオブオーダ（ＯＯＯ）エンジン１４８０に複数の命令／動作を渡すことを実行すべく使用されるフロントエンドユニット１４７０を有するアウトオブオーダプロセッサを含む。ＯＯＯエンジン１４８０は、デコードされた命令に対し、さらなる処理を実行する。
【０１０４】
具体的には、図１４の実施形態において、アウトオブオーダエンジン１４８０は、１または複数のマイクロ命令またはマイクロオペレーションの形態であり得るデコードされた命令をフロントエンドユニット１４７０から受信し、それらをレジスタ等の適切なリソースに割り当てる割り当てユニット１４８２を含む。次に、命令は予約ステーション１４８４へ提供され、このステーションは、複数の実行ユニット１４８６Ａ〜１４８６Ｎのうちの１つに対し実行するために、リソースを予約およびスケジューリングする。様々なタイプの実行ユニットが存在してよく、例えば、とりわけ、演算ロジックユニット（ＡＬＵ）、ロードおよびストアユニット、ベクトル処理ユニット（ＶＰＵ）、浮動小数点実行ユニットを含む。これらの異なる実行ユニットからの結果は、並べ替えバッファ（ＲＯＢ）１４８８へと提供され、並べ替えバッファは、順序付けられていない結果を取得し、それらを正しいプログラム順序へ戻す。
【０１０５】
さらに図１４を参照し、フロントエンドユニット１４７０およびアウトオブオーダエンジン１４８０の両方が、異なるレベルのメモリ階層に連結されていることに留意されたい。具体的には、命令レベルキャッシュ１４７２が図示され、その次には中間レベルキャッシュ１４７６に連結され、その次にはラストレベルキャッシュ１４９５に連結される。一実施形態において、ラストレベルキャッシュ１４９５が、オンチップ（場合により、アンコアと呼ばれる）ユニット１４９０に実装されている。一例として、ユニット１４９０は、図１３のシステムエージェント１３１０と同様である。上記の通り、アンコア１４９０は、示された実施形態において、ＥＤ  ＲＡＭを介して実装されるシステムメモリ１４９９と通信する。アウトオブオーダエンジン１４８０内の様々な実行ユニット１４８６が、第１のレベルキャッシュ１４７４と通信し、当該第１のレベルキャッシュはまた中間レベルキャッシュ１４７６と通信することを留意されたい。追加のコア１４３０Ｎ２〜１４３０Ｎが、ＬＬＣ１４９５に連結できることにも留意されたい。図１４の実施形態においては、この高レベルにおいて示されているが、様々な変更および追加のコンポーネントが存在してよいことを理解されたい。
【０１０６】
図１５を参照すると、命令を実行するための実行ユニットを含むプロセッサで形成された例示的なコンピュータシステムのブロック図が示されており、そこでは、１または複数の相互接続が、本発明の一実施形態に従い、１または複数の機能を実装する。システム１５００は、本明細書に記載される実施形態のような本発明に従い、処理データのためのアルゴリズムを実行するロジックを含む実行ユニットを採用するプロセッサ１５０２のようなコンポーネントを含む。システム１５００は、ＰＥＮＴＩＵＭ（登録商標）  ＩＩＩ（商標）、Ｐｅｎｔｉｕｍ（登録商標）４（商標）、Ｘｅｏｎ（商標）、Ｉｔａｎｉｕｍ、ＸＳｃａｌｅ（商標）および／またはＳｔｒｏｎｇＡＲＭ（商標）マイクロプロセッサに基づく典型的な処理システムであるが、他のシステム（他のマイクロプロセッサを有するＰＣ、エンジニアリングワークステーション、セットトップボックス等も含む）も使用されてよい。一実施形態において、サンプルシステム１５００は、ワシントン州レドモンドのマイクロソフト社から入手可能なＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムのあるバージョンを実行するが、他のオペレーティングシステム（例えば、ＵＮＩＸ（登録商標）およびＬｉｎｕｘ（登録商標））、埋め込みソフトウェア、および／またはグラフィカルユーザインタフェースも使用されてよい。従って、本発明の複数の実施形態は、ハードウェア回路およびソフトウェアの任意の特定の組み合わせに限定されない。
【０１０７】
実施形態は、コンピュータシステムに限定されない。本発明の代替的な実施形態は、ハンドヘルドデバイスおよび埋め込みアプリケーションのような他のデバイスにおいて使用され得る。ハンドヘルドデバイスのいくつかの例としては、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末（ＰＤＡ）、およびハンドヘルドＰＣを含む。埋め込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、システムオンチップ、ネットワークコンピュータ（ＮｅｔＰＣ）、セットトップボックス、ネットワークハブ、広域ネットワーク（ＷＡＮ）スイッチ、あるいは少なくとも一実施形態に従う１または複数の命令を実行し得る任意の他のシステムを含み得る。
【０１０８】
この示された実施形態では、プロセッサ１５０２は、少なくとも１つの命令を実行するアルゴリズムを実装する１または複数の実行ユニット１５０８を含む。一実施形態が、シングルプロセッサのデスクトップまたはサーバシステムの文脈で記載されることがあるが、代替的な実施形態が、マルチプロセッサシステムに含まれてよい。システム１５００は、「ハブ」システムアーキテクチャの一例である。コンピュータシステム１５００は、データ信号を処理するためのプロセッサ１５０２を含む。１つの例示として、プロセッサ１５０２は、複合命令セットコンピュータ（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、命令セットの組み合わせを実装するプロセッサ、あるいは、例えば、デジタル信号プロセッサのような任意の他のプロセッサデバイスを含む。プロセッサ１５０２は、システム１５００内のプロセッサ１５０２と他のコンポーネントとの間でデータ信号を送信するプロセッサバス１５１０に連結される。システム１５００の要素（例えば、グラフィックアクセラレータ１５１２、メモリコントローラハブ１５１６、メモリ１５２０、Ｉ／Ｏコントローラハブ１５２４、無線送受信器１５２６、フラッシュＢＩＯＳ１５２８、ネットワークコントローラ１５３４、オーディオコントローラ１５３６、シリアル拡張ポート１５３８、Ｉ／Ｏコントローラ１５４０等）は、当業者に周知の従来の機能を実行する。
【０１０９】
一実施形態において、プロセッサ１５０２は、レベル１（Ｌ１）の内部キャッシュメモリ１５０４を含む。アーキテクチャに応じて、プロセッサ１５０２は、単一の内部キャッシュまたは複数のレベルの内部キャッシュを有してよい。他の実施形態は、特定の実装および必要性に応じて、内部および外部キャッシュの両方の組み合わせを含む。レジスタファイル１５０６は、異なるタイプのデータを、整数レジスタ、浮動小数点レジスタ、ベクトルレジスタ、バンクレジスタ、シャドウレジスタ、チェックポイントレジスタ、状態レジスタ、および命令ポインタレジスタを含む、様々なレジスタに格納する。
【０１１０】
整数および浮動小数点操作を実行するロジックを含む実行ユニット１５０８も、プロセッサ１５０２に存在する。プロセッサ１５０２は、一実施形態において、実行時に特定のマイクロ命令のためのアルゴリズムを実行する、または複雑なシナリオを処理するマイクロコードを格納するマイクロコード（μコード）ＲＯＭを含む。ここで、マイクロコードは、プロセッサ１５０２のためのロジックバグ／修正を処理すべく、潜在的に更新可能である。一実施形態について、実行ユニット１５０８は、パックされた命令セット１５０９を処理するためのロジックを含む。パックされた命令セット１５０９を汎用プロセッサ１５０２の命令セットに、命令を実行するための関連付けられた回路とともに含むことで、多くのマルチメディアアプリケーションによって使用される操作は、汎用プロセッサ１５０２のパックされたデータを使用して実行されてよい。従って、パックされたデータに対し操作を実行するためのプロセッサのデータバスの全幅を使用することによって、多くのマルチメディアアプリケーションが、加速され、より効率的に実行される。これにより、１または複数の操作を実行すべく、一度に１つのデータ要素といった、より小さなデータ単位をプロセッサのデータバスに渡り転送する必要性が潜在的になくなる。
【０１１１】
実行ユニット１５０８の代替的な実施形態は、マイクロコントローラ、埋め込みプロセッサ、グラフィックデバイス、ＤＳＰ、および他のタイプのロジック回路においても使用されてよい。システム１５００は、メモリ１５２０を含む。メモリ１５２０は、動的ランダムアクセスメモリ（ＤＲＡＭ）デバイス、静的ランダムアクセスメモリ（ＳＲＡＭ）デバイス、フラッシュメモリデバイス、または他のメモリデバイスを含む。メモリ１５２０は、プロセッサ１５０２によって実行されるデータ信号によって表される命令および／またはデータを格納する。
【０１１２】
本発明に係る前述の特徴または態様のうちの任意のものが、図１５に例示された１または複数の相互接続で利用されてよいことに留意されたい。例えば、プロセッサ１５０２の内部ユニットを連結するための、不図示のオンダイ相互接続（ＯＤＩ）が、上記の本発明の１または複数の態様を実装する。あるいは、本発明はプロセッサバス１５１０（例えば、他に高性能コンピューティング相互接続として知られる）、メモリ１５２０への高帯域幅メモリパス１５１８、グラフィックアクセラレータ１５１２へのポイントツーポイントリンク（例えば、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）準拠ファブリック）、コントローラハブ相互接続１５２２、他の図示されたコンポーネントを連結するためのＩ／Ｏまたは他の相互接続（例えば、ＵＳＢ、ＰＣＩ、ＰＣＩｅ）に関連する。そのようなコンポーネントのいくつかの例としては、オーディオコントローラ１５３６、ファームウェアハブ（フラッシュＢＩＯＳ）１５２８、無線送受信器１５２６、データストレージ１５２４、ユーザ入力とキーボードインタフェース１５４２とを備えるレガシＩ／Ｏコントローラ１５１０、ユニバーサルシリアルバス（ＵＳＢ）のようなシリアル拡張ポート１５３８、およびネットワークコントローラ１５３４を含む。データストレージデバイス１５２４は、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ‐ＲＯＭデバイス、フラッシュメモリデバイス、または他の大容量ストレージデバイスを備え得る。
【０１１３】
ここで図１６を見ると、本発明の一実施形態に従う第２のシステム１６００のブロック図が示されている。図１６に示される通り、マルチプロセッサシステム１６００は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続１６５０を介して連結された第１のプロセッサ１６７０と、第２のプロセッサ１６８０とを含む。プロセッサ１６７０および１６８０の各々は、プロセッサの何らかのバージョンであってよい。一実施形態において、１６５２および１６５４は、高性能アーキテクチャのような、シリアルポイントツーポイントコヒーレント相互接続ファブリックの一部である。結果的に、本発明は、ＱＰＩアーキテクチャ内に実装されてよい。
【０１１４】
２つのプロセッサ１６７０、１６８０のみが示されているが、本発明の範囲はそのように限定されないことを理解されたい。他の実施形態において、１または複数の追加のプロセッサが、特定のプロセッサにおいて存在してよい。
【０１１５】
プロセッサ１６７０および１６８０は、統合メモリコントローラユニット１６７２および１６８２をそれぞれ含むように示されている。プロセッサ１６７０はまた、自己のバスコントローラユニットの一部として、ポイントツーポイント（Ｐ−Ｐ）インタフェース１６７６および１６７８を含み、同様に、第２のプロセッサ１６８０は、Ｐ−Ｐインタフェース１６８６および１６８８を含む。プロセッサ１６７０、１６８０は、ポイントツーポイント（Ｐ−Ｐ）インタフェース回路１６７８、１６８８を使用するＰ−Ｐインタフェース１６５０を介して、情報を交換してよい。図１６に示されるように、ＩＭＣ１６７２および１６８２は、当該複数のプロセッサをそれぞれのメモリ、すなわちメモリ１６３２およびメモリ１６３４に連結し、これらは、それぞれのプロセッサへローカルに取り付けられたメインメモリの部分であってよい。
【０１１６】
プロセッサ１６７０、１６８０はそれぞれ、ポイントツーポイントインタフェース回路１６７６、１６９４、１６８６、１６９８を使用する個々のＰ−Ｐインタフェース１６５２、１６５４を介して、チップセット１６９０と情報を交換する。チップセット１６９０はまた、高性能グラフィックス回路１６３８と、高性能グラフィックス相互接続１６３９沿いのインタフェース回路１６９２を介して情報を交換する。
【０１１７】
共有キャッシュ（不図示）は、いずれかのプロセッサの内部に含まれ、または両方のプロセッサの外部にあってもよいが、プロセッサが低電力モードであっても、いずれかまたは両方のプロセッサのローカルキャッシュ情報が共有キャッシュに格納され得るように、Ｐ−Ｐ相互接続を介して複数のプロセッサに接続される。
【０１１８】
チップセット１６９０が、インタフェース１６９６を介して、第１のバス１６１６に連結されてよい。一実施形態において、第１のバス１６１６は、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、またはＰＣＩ  Ｅｘｐｒｅｓｓバスまたは別の第３世代Ｉ／Ｏ相互接続バスのようなバスであってよいが、本発明の範囲はそのように限定されない。
【０１１９】
図１６に示されるように、様々なＩ／Ｏデバイス１６１４が、第１のバス１６１６に、バスブリッジ１６１８とともに連結され、このブリッジは、第１のバス１６１６を第２のバス１６２０へと連結する。一実施形態において、第２のバス１６２０は、ｌｏｗ  ｐｉｎ  ｃｏｕｎｔ（ＬＰＣ）バスを含む。様々なデバイスが、第２のバス１６２０に連結され、例えば、キーボードおよび／またはマウス１６２２、通信デバイス１６２７および、通常、一実施形態において命令／コードおよびデータ１６３０を含むディスクドライブまたは他の大容量ストレージデバイスのようなストレージユニット１６２８を含む。さらに、オーディオＩ／Ｏ  １６２４が第２のバス１６２０に連結されて示されている。他のアーキテクチャが可能であり、その場合、含まれるコンポーネントおよび相互接続アーキテクチャが変わることに留意されたい。例えば、図１６のポイントツーポイントアーキテクチャの代わりに、システムは、マルチドロップバスまたは他のそのようなアーキテクチャを実装してよい。
【０１２０】
次に図１７を見ると、本発明に従うシステムオンチップ（ＳＯＣ）設計の一実施形態が示されている。具体的な例示として、ＳＯＣ１７００が、ユーザ機器（ＵＥ）に含まれる。一実施形態において、ＵＥとは、携帯電話、スマートフォン、タブレット、超薄型ノートブック、ブロードバンドアダプタ付きノートブック、または任意の他の同様の通信デバイスのような、通信するためにエンドユーザによって使用される任意の他のデバイスを指す。通常、ＵＥは、ＧＳＭ（登録商標）ネットワークにおける本質的な移動局（ＭＳ）に潜在的に対応する、基地局またはノードに接続する。
【０１２１】
ここで、ＳＯＣ１７００は、２つのコア、１７０６および１７０７を含む。上記と同様、コア１７０６および１７０７は、Ｉｎｔｅｌ（登録商標）Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｃｏｒｅ（商標）ベースのプロセッサ、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．（ＡＭＤ）のプロセッサ、ＭＩＰＳベースのプロセッサ、ＡＲＭベースのプロセッサ設計、またはそれらの顧客、並びにライセンシー若しくは採用者等の命令セットアーキテクチャに準拠してよい。コア１７０６および１７０７は、システム１７００の他の部分と通信するため、バスインタフェースユニット１７０９およびＬ２キャッシュ１７１１に関連付けられたキャッシュ制御１７０８に連結されている。相互接続１７１０は、ＩＯＳＦ、ＡＭＢＡ、または上述した他の相互接続のようなオンチップ相互接続を含み、本明細書に記載の１または複数の態様を潜在的に実装する。
【０１２２】
インタフェース１７１０は、ＳＩＭカードとのインタフェースを取る加入者識別モジュール（ＳＩＭ）１７３０、ＳＯＣ１７００を初期化およびブートすべくコア１７０６および１７０７によって実行されるブートコードを保持するブートＲＯＭ１７３５、外部メモリ（例えば、ＤＲＡＭ１７６０）とインタフェースを取るＳＤＲＡＭコントローラ１７４０、不揮発性メモリ（例えば、フラッシュ１７６５）とインタフェースを取るフラッシュコントローラ１７４５、周辺機器とインタフェースを取る周辺コントロール１７５０（例えば、シリアル周辺インタフェース）、入力（例えば、タッチ対応入力）を表示および受信するビデオコーデック１７２０およびビデオインタフェース１７２５、グラフィック関連の計算を行うＧＰＵ１７１５等といった他のコンポーネントに対する通信チャネルを提供する。これらのインタフェースのうちの任意のものが、本明細書に記載の本発明の複数の態様を組み込んでよい。
【０１２３】
また、本システムは、Ｂｌｕｅｔｏｏｔｈ（登録商標）モジュール１７７０、３Ｇモデム１７７５、ＧＰＳ１７８５、およびＷｉＦｉ  １７８５のような通信用の周辺機器を示す。上記の通り、ＵＥは通信用無線を含むことに留意されたい。結果的に、これら周辺通信モジュールがすべて必要なわけではない。しかしながら、ＵＥにおいては、外部通信用の何らかの形式の無線通信が含まれる。
【０１２４】
本発明は、限定された数の実施形態に関し記載されているが、当業者はそれらからの多数の修正形態および改変形態を想起するであろう。添付の特許請求の範囲は、そのようなすべての修正形態および改変形態が、本発明の真の精神および範囲に属することを意図している。
【０１２５】
設計は、作成からシミュレーション、そして製造まで様々な段階を経ることがある。設計を表わすデータは、当該設計を多数の態様で表してよい。第１に、シミュレーションで有用なように、ハードウェアは、ハードウェア記述言語または別の機能記述言語を使用して表されてよい。また、ロジックおよび／またはトランジスタゲートを持つ回路レベルモデルが、設計処理のどこかの段階で生成されてよい。さらに、いくつかの段階において、多くの設計は、ハードウェアモデルにおける様々なデバイスの物理的配置を表わすレベルのデータに到達する。従来の半導体製造技術が使用される場合、ハードウェアモデルを表すデータとは、集積回路の製造に使用されるマスクのための異なるマスク層に、様々な特徴が存在するか存在しないかを指定するデータであってよい。設計の任意の表現において、データは任意の形態の機械可読媒体に格納されてよい。メモリまたはディスク等の磁気または光ストレージが当該機械可読媒体であってよく、変調されたまたはそれ以外の方法で生成された、そのような情報を送信するための光または電気の波を介して送信される情報を格納する。コードまたは設計を、示しまたは搬送する電気的な搬送波が送信される場合、その電気信号のコピー、バッファ処理、または再送信が実行される範囲において、新たなコピーが作成される。従って、通信プロバイダまたはネットワークプロバイダは、搬送波にエンコードされた情報のような、本発明の複数の実施形態における複数の技術を具体化した項目を有形の機械可読媒体に少なくとも一時的に格納してよい。
【０１２６】
本明細書で使用されるモジュールとは、ハードウェア、ソフトウェア、および／またはファームウェアの任意の組み合わせを指してよい。一例として、モジュールは、マイクロコントローラのような、マイクロコントローラによって実行されるよう適合されたコードを格納するための非一時的媒体に関連付けられたハードウェアを含む。従って、一実施形態において、モジュールという言及は、非一時的媒体に保持されるコードを認識および／または実行するよう特に構成されたハードウェアを指す。さらに、別の実施形態において、モジュールの使用は、予め定められた動作を実行するためのマイクロコントローラによって実行されるよう特に適合されたコードを含む非一時的媒体を指す。さらに、推測され得るように、さらなる別の実施形態では、モジュールという用語は（この例では）、当該マイクロコントローラおよび当該非一時的媒体の組み合わせを指すことがある。通常、別個に示されるモジュールの境界線は一般に変化し、潜在的には重複する。例えば、第１および第２のモジュールは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせを共有しつつ、その一方で、潜在的には、いくらかの独立したハードウェア、ソフトウェアまたはファームウェアを維持してよい。一実施形態において、ロジックという用語の使用は、トランジスタ、レジスタのようなハードウェア、またはプログラマブルロジックデバイスのような他のハードウェアを含む。
【０１２７】
一実施形態において、「構成される」という文言の使用は、指定された、または判断されたタスクを実行すべく、装置、ハードウェア、ロジック、または要素を、配置し、組み立て、製造し、販売の申出をし、輸入し、および／または、設計することを指す。この例において、動作していない装置またはその要素が、指定されたタスクを実行すべく設計され、連結され、および／または相互接続されている場合には、依然として、指定されたタスクを実行するよう「構成され」ている。純粋な例示として、ロジックゲートが動作中、０または１を提供してよい。しかし、イネーブル信号をクロックに供給するよう「構成され」たロジックゲートは、１または０を提供し得るすべての潜在的なロジックゲートを含むわけではない。代わりに、ロジックゲートは、動作中に１または０の出力がクロックをイネーブルにするように、いくつかの態様で連結されているものである。「構成され」という用語の使用は、動作を必要とはせず、その代わりに、装置、ハードウェア、および／または要素の潜在的な状態に重きを置いたものであって、その場合、潜在的な状態においては、装置、ハードウェアおよび／または要素は、装置、ハードウェアおよび／または要素が動作中、特定のタスクを実行するよう設計されていることに再度留意されたい。
【０１２８】
さらに、「すべく」、「可能」、および／または「動作可能」という文言の使用は、一実施形態において、装置、ロジック、ハードウェアおよび／または要素を指定された態様で使用することを可能にするよう設計された、いくつかの装置、ロジック、ハードウェア、および／または要素を指す。上記したように、すべく、可能、または動作可能の使用は、一実施形態において、装置、ロジック、ハードウェアおよび／または要素の潜在的な状態を指し、この場合、装置、ロジック、ハードウェア、および／または要素は、動作をしているのではなく、指定された態様での装置の使用を可能にするよう設計がされていることに留意されたい。
【０１２９】
本明細書中で使用される値は、数値、状態、ロジック状態、またはバイナリロジック状態についての任意の既知の表現を含み得る。通常、ロジックレベル、ロジック値、または論理値という使用は、単純にバイナリロジック状態を表す１および０のレベルまたは値を表わす。例えば、１は高ロジックレベルおよび０は低ロジックレベルを指す。一実施形態において、トランジスタまたはフラッシュセルのようなストレージセルは、単一の論理値または複数の論理値を保持可能であってよい。しかしながら、コンピュータシステムにおける他の値の表現が使用されている。例えば、１０進数の１０は、バイナリ値１０１０として、１６進数では文字Ａとして、表され得る。従って、値は、コンピュータシステムにおいて保持可能な情報の任意の表現を含む。
【０１３０】
さらに、状態は、値または値の部分によって表現されてよい。一例として、ロジック１等の第１の値が、既定または初期の状態を表し得るが、ロジック０等の第２の値は、既定以外の状態を表し得る。また、一実施形態において、リセットおよび設定という用語は、既定および更新された値または状態をそれぞれ指す。例えば、既定値は潜在的に高論理値、すなわち、リセットを含むが、更新値は潜在的に低論理値、すなわち、設定を含む。値の任意の組み合わせが、任意の数の状態を表すべく利用され得ることに留意されたい。
【０１３１】
上述の方法、ハードウェア、ソフトウェア、ファームウェアまたはコードの複数の実施形態は、機械アクセス可能、機械可読、コンピュータアクセス可能、または処理要素によって実行可能なコンピュータ可読媒体上に格納された命令またはコードを介して実装されてよい。非一時的機械アクセス可能／可読媒体は、コンピュータまたは電子システムのような機械によって読み取り可能な形態の情報を提供（すなわち、格納および／または送信）する任意のメカニズムを含む。例えば、非一時的機械アクセス可能媒体としては、静的ＲＡＭ（ＳＲＡＭ）若しくは動的ＲＡＭ（ＤＲＡＭ）のようなランダムアクセスメモリ（ＲＡＭ）、ＲＯＭ、磁気若しくは光ストレージ媒体、フラッシュメモリデバイス、電気ストレージデバイス、光ストレージデバイス、音響ストレージデバイス、一時的（伝搬される）信号（例えば、搬送波、赤外線信号、デジタル信号）から受信される情報を保持するための他の形態のストレージデバイス等を含み、これらは、それらからの情報を受信できる非一時的媒体とは区別される。
【０１３２】
本発明の複数の実施形態を実行するロジックをプログラムすべく使用される命令は、ＤＲＡＭ、キャッシュ、フラッシュメモリ、または他のストレージのようなシステム内のメモリ内部に格納されてよい。さらに、命令はネットワークを介して、または他のコンピュータ可読媒体によって配信され得る。従って、機械可読媒体は、機械（例えば、コンピュータ）によって読み取り可能な形態で情報を格納または送信するための任意のメカニズムを含んでよい。そのようなものとして、限定されないが、フロッピー（登録商標）ディスク、光ディスク、コンパクトディスク、リードオンリメモリ（ＣＤ‐ＲＯＭ）、および光磁気ディスク、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、磁気または光カード、フラッシュメモリ、または電気形態、光形態、音響形態若しくは他の形態の伝搬信号（例えば、搬送波、赤外線信号、デジタル信号等）を介したインターネット経由での情報送信に使用される有形の機械可読ストレージが挙げられる。従って、コンピュータ可読媒体には、機械（例えば、コンピュータ）によって読み取り可能な形態で電子命令または情報を格納または送信するのに好適な任意のタイプの有形の機械可読媒体が含まれる。
【０１３３】
以下の複数の例は、本明細書に従う複数の実施形態に関する。１または複数の実施形態は、集積回路デバイスにおける１または複数の統合ブロックの複数の構成パラメータを定義するデータ構造にアクセスし、上記データ構造において定義された対応する複数の構成パラメータに基づいて、上記複数の統合ブロックのうちの１または複数を構成させ、上記複数の構成パラメータはランタイム前に設定され、上記データ構造内に永続的に格納される、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアおよび／またはソフトウェアベースのロジック、および方法を提供してよい。
【０１３４】
少なくとも一例において、上記複数の構成パラメータは、上記１または複数の統合ブロックのために維持されるメタデータに基づいている。
【０１３５】
少なくとも一例において、上記複数の構成パラメータのうちの少なくともいくつかは、上記集積回路デバイスのビルド時に定義される。
【０１３６】
少なくとも一例において、上記データ構造において定義された上記複数の構成パラメータのうちの少なくとも一部は、複数のペリフェラルコンポーネントインターコネクト（ＰＣＩ）エクスプレス（ＰＣＩｅ）機能を含む。
【０１３７】
少なくとも一例において、上記複数の構成パラメータは、それぞれのデバイスによってサポートされる複数のトランスポートモードを含み、上記複数のトランスポートモードは、定義されたトランスポート層における複数のモードを含む。
【０１３８】
少なくとも一例において、上記データ構造は、上記１または複数の統合ブロックの各々に対し、上記統合ブロックのそれぞれのＰＣＩクラス、サブクラス、およびプログラミングインタフェースを識別する。
【０１３９】
少なくとも一例において、上記集積回路デバイス内の１または複数のレジスタが、上記データ構造において定義された構成情報に基づいてランタイム時に入力される。
【０１４０】
少なくとも一例において、上記１または複数の統合ブロックに関連付けられた複数のレジスタの複数のクエリからランタイム時に生成されるデータがアクセス可能である。
【０１４１】
少なくとも一例において、上記１または複数の統合ブロックのうちの少なくとも１つの複数の追加の構成パラメータを識別するデータが受信可能であり、上記複数の追加の構成パラメータはランタイム時に検出される。
【０１４２】
少なくとも一例において、上記構成する段階は、オペレーティングシステムによって実行され、上記データはＢＩＯＳから受信される。
【０１４３】
少なくとも一例において、上記システム内の１または複数のレジスタは、データ構造にリンクされ、上記データ構造において定義された複数の構成パラメータで入力されており、上記データ構造において定義された上記複数の構成パラメータのうちの特定の１つは変更可能であり、特定のレジスタ値が、上記特定のレジスタ値と上記データ構造との間のリンクに基づいて、上記特定の構成パラメータへの変更を反映するよう更新される。
【０１４４】
少なくとも一例において、処理要素と複数の統合ブロックとを含む集積回路と、上記複数の統合ブロックのうちの少なくとも１つのためにランタイム前に複数の構成パラメータを保持する永続ストレージと、上記複数の構成パラメータに基づいて上記複数の統合ブロックのうちの上記少なくとも１つを構成し、上記永続ストレージからの上記複数の統合ブロックのうちの上記少なくとも１つのための複数の状態レジスタへの複数のアクセスをサービスするロジックと、を備える装置が提供される。
【０１４５】
少なくとも一例において、少なくとも１つのデータプロセッサと、複数のデバイスと、メモリに格納され、上記複数のデバイスのうちの１または複数に係る複数の構成パラメータを定義するデータ構造と、オペレーティングシステムと、を含み、上記複数の構成パラメータは、永続的に定義されており、上記オペレーティングシステムは、上記データ構造にアクセスし、上記データ構造において定義された対応する複数の構成パラメータに基づいて上記複数のデバイスのうちの１または複数を構成する、システムが提供される。
【０１４６】
少なくとも一例において、上記複数のデバイスの少なくとも一部は、複数のＩＰブロックを含む。 
【０１４７】
少なくとも一例において、上記システムは、システムオンチップを含む。
【０１４８】
少なくとも一例において、システム内の１または複数のデバイスの複数の構成パラメータを定義するデータ構造を格納するシステムメモリと、上記データ構造において定義された対応する複数の構成パラメータに基づいて、上記複数のデバイスのうちの１または複数を構成する構成ロジックと、を含み、上記複数の構成パラメータは、上記システムのランタイム前に設定されており、上記データ構造内に永続的に格納される、装置が提供される。データ構造は、修正可能なオペレーティングシステムであり得る。
【０１４９】
１または複数の実施形態は、少なくとも１つの上位プロトコル層および標準化されたトランスポート層を提供する装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアおよび／またはソフトウェアベースのロジック、および方法を提供してよく、上記トランスポート層は、ロード／ストアアーキテクチャを採用し、複数の定義されたトランスポートモードを含み、上記上位プロトコル層は、上記複数のモードのうちの少なくとも特定の１つを介して提供される複数のサービスを利用する。
【０１５０】
少なくとも一例において、上記トランスポート層は、システム内の複数の異なるデバイスの各々によって使用されるために利用可能にされる。
【０１５１】
少なくとも一例において、上記上位プロトコル層および上記標準化されたトランスポート層は、上記システム内の複数のデバイスのうちの特定の１つに係るドライバによって使用される。
【０１５２】
少なくとも一例において、上記システムは、システムオンチップを含む。 
【０１５３】
少なくとも一例において、上記複数のデバイスは、上記システムに統合される。
【０１５４】
少なくとも一例において、上記複数のデバイスのうちの各々は、上記トランスポート層を利用する関連付けられたドライバを有する。
【０１５５】
少なくとも一例において、上記トランスポート層は、複数のＰＣＩベースのトランスポートサービスを含む。 
【０１５６】
少なくとも一例において、上記トランスポート層は、ＰＣＩｅベースの複数のトランスポートサービスを含む。
【０１５７】
少なくとも一例において、上記トランスポート層は、第１のトランスポートプロトコルに基づき、上記上位プロトコル層は、異なる第２のプロトコルに基づく。
【０１５８】
少なくとも一例において、上記複数のモードは、少なくとも５つのモードを含む。
【０１５９】
少なくとも一例において、上記複数のモードのうちの特定の１つは、複数のキューおよびスキャッタ／ギャザーを許可するモードを含む。
【０１６０】
少なくとも一例において、上記複数のモードのうちの別の１つは、スキャッタ／ギャザーを持たない簡易モードを含む。
【０１６１】
少なくとも一例において、上記複数のモードのうちの別の１つは、システムメモリ内の複数の固定バッファを持つ簡易モードを含み、上記簡易モードは、バスマスタリングを含む。
【０１６２】
少なくとも一例において、上記複数のモードのうちの第３のものは、バスマスタリングを持たない簡易モードを含む。
【０１６３】
少なくとも一例において、上記複数のモードのうちの別の１つは、バスマスタリングを持たない、データ移動のためのバイトストリームサポートを提供する簡易モードを含む。
【０１６４】
少なくとも一例において、上記上位レベルプロトコルは、上記トランスポート層の上記複数のモードのうちの２または２より多いモードを利用する。
【０１６５】
少なくとも一例において、上記上位レベルプロトコルは、上記トランスポート層の上記複数のモードのうちのすべてより少ないモードを利用する。
【０１６６】
１または複数の実施形態において、少なくとも１つのデータプロセッサ、相互接続ファブリック、標準化されたトランスポート層にアクセスし、利用する第１のトランスポートロジックを含む第１のデバイスを含むシステムが提供可能であり、上記トランスポート層は、ロード／ストアアーキテクチャを採用し、複数の定義されたトランスポートモードを含む。上記システムは、上記標準化されたトランスポート層にアクセスし、利用する第２のトランスポートロジックを含む第２のデバイスを含み得る。
【０１６７】
少なくとも一例において、少なくとも上記第１および第２のデバイスのために定義するための少なくとも１つのデータ構造を格納する少なくとも１つのメモリ要素が提供可能であり、上記複数のモードのうちのいずれかが、それぞれのデバイスによってサポートされる。
【０１６８】
少なくとも一例において、上記システムは、上記データ構造において識別された複数の構成属性に基づいて上記第１および第２のデバイスを構成するための構成ロジックを含み得る。
【０１６９】
少なくとも一例において、上記第１のトランスポートロジックは、上記複数のモードのうちの第１のサブセットを利用するよう定義され、上記第２のトランスポートロジックは、上記複数のモードのうちの異なる第２のサブセットを利用するよう定義される。
【０１７０】
少なくとも一例において、上記第１のデバイスは、第１のＩＰブロックを含み、上記第２のデバイスは、第２のＩＰブロックを含む。
【０１７１】
少なくとも一例において、上記システムは、システムオンチップ（ＳｏＣ）を含む。 
【０１７２】
１または複数の実施形態は、システム内の１または複数のデバイスの複数の構成パラメータを定義するデータ構造にアクセスし、上記複数の構成パラメータから、上記複数のデバイスのうちの特定の１つに係るロジックが標準化されたトランスポート層にバインドされていることを識別し、上記トランスポート層は、ロード／ストアアーキテクチャを採用し、複数の定義されたトランスポートモードを含み、上記複数のモードのうちのいずれが上記特定のデバイスに適用されるかを判断する、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアおよび／またはソフトウェアベースのロジック、および方法を提供してよい。
【０１７３】
少なくとも一例において、上記複数のデバイスのうちの１または複数は、上記データ構造において定義された対応する複数の構成パラメータに基づいて構成される。
【０１７４】
少なくとも一例において、上記複数の構成パラメータは、上記システムのランタイム前に設定され、上記データ構造内に永続的に格納される。
【０１７５】
少なくとも一例において、上記特定のデバイスのロジックが、上記複数のモードのうちの特定の１つを使用する複数の状態が判断される。
【０１７６】
少なくとも一例において、上記複数のモードのうちの特定の１つを使用する、上記特定のデバイスからのデータのトランスポートが容易にされる。
【０１７７】
少なくとも一例において、上記データは、上記特定のデバイスから上記複数のデバイスのうちの別のものへ直接トランスポートされる。
【０１７８】
少なくとも一例において、上記複数のデバイスのうちの１または複数は、上記データ構造において定義された対応する複数の構成パラメータに基づいて構成される。
【０１７９】
１または複数の実施形態は、デバイスツーデバイスデータ転送のために、第１のデバイスの第２のデバイスとの互換性を判断し、上記第１のデバイスを上記デバイスツーデバイスデータ転送のために構成し、上記互換性は、上記第１のデバイスのクラス、サブクラス、およびプログラミングインタフェース（ＰＩ）に基づく上記第１のデバイスの分類および上記第２のデバイスのクラス、サブクラス、およびプログラミングインタフェース（ＰＩ）に基づく上記第２のデバイスの分類に基づく、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアおよび／またはソフトウェアベースのロジック、および方法を提供してよい。
【０１８０】
少なくとも一例において、上記互換性は、各デバイスの構成情報を識別するデータ構造から判断される。
【０１８１】
少なくとも一例において、上記複数の構成パラメータは、上記システムのランタイム前に上記データ構造において永続的に設定され、上記データ構造はシステムメモリ内に永続的に格納される。
【０１８２】
少なくとも一例において、上記構成ロジックはさらに、サービスリクエストを識別し、上記サービスリクエストのためのデバイスツーデバイスデータ転送を構成する。
【０１８３】
少なくとも一例において、上記サービスリクエストは、ソフトウェアアプリケーションのサービスリクエストを含む。
【０１８４】
少なくとも一例において、上記構成ロジックは、上記サービスリクエストに基づいて、上記第１のデバイスをソースとして識別し、上記サービスリクエストに基づいて、上記第２のデバイスをシンクとして識別する。
【０１８５】
少なくとも一例において、上記構成ロジックはさらに、サービスを終了するためのリクエストを受信し、上記サービスを終了するためのリクエストに基づいて、上記デバイスツーデバイスデータ転送における上記第１のデバイスを無効にし、上記サービスを終了するためのリクエストに基づいて、上記デバイスツーデバイスデータ転送における上記第２のデバイスを無効にする。
【０１８６】
少なくとも一例において、上記サービスを終了するためのリクエストは、上記サービスリクエストをも生成したソフトウェアアプリケーションから受信される。
【０１８７】
少なくとも一例において、上記構成ロジックは、上記第１のデバイスと上記第２のデバイスとの間のデバイスツーデバイスデータ転送が、正当なトランザクションであるかをシステム内の複数のデバイスに対し維持される静的構成データから判断する。
【０１８８】
少なくとも一例において、上記構成ロジックは、上記構成データから、上記第１のデバイスと上記第２のデバイスとの間の上記デバイスツーデバイスデータ転送のためのトランスポートのタイプを判断する。
【０１８９】
少なくとも一例において、上記デバイスツーデバイス転送は、上記第１のデバイスと上記第２のデバイスとによってサポートされる共通のＰＣＩベースのトランスポート層を使用する。
【０１９０】
少なくとも一例において、上記トランスポート層は複数のモードを含み、上記第１のデバイスおよび上記第２のデバイスによってサポートされる上記複数のモードのうちのそれぞれのサブセットは、上記構成データから判断され、上記トランスポートのタイプは、上記第１のデバイスと上記第２のデバイスとによってサポートされる上記複数のモードの複数のサブセットに基づいて判断される。
【０１９１】
少なくとも一例において、上記互換性は、識別されたサービスリクエストに基づいて判断可能である。
【０１９２】
少なくとも一例において、上記サービスリクエストに基づいて、上記第１のデバイスと上記第２のデバイスとを識別することは、上記第１のデバイスおよび上記第２のデバイスの各々の複数の機能を識別することを含み、上記第１のデバイスおよび上記第２のデバイスのそれぞれの複数の機能を判断することは、上記サービスリクエストのために、上記第１のデバイスおよび上記第２のデバイスをデバイスツーデバイスデータ転送において使用することを可能にする。
【０１９３】
少なくとも一例において、メモリ内に格納される、デバイスツーデバイスデータ転送のための上記第１のデバイスと上記第２のデバイスとの互換性を判断するための静的構成データにアクセス可能である。
【０１９４】
少なくとも一例において、上記サービスリクエストは、ソフトウェアアプリケーションのサービスリクエストである。
【０１９５】
少なくとも一例において、デバイスツーデバイスデータ転送は、ＰＣＩベースのデバイスツーデバイスデータ転送を含む。
【０１９６】
少なくとも一例において、デバイスツーデバイスデータ転送は、ＰＣＩｅベースのデバイスツーデバイスデータ転送を含む。
【０１９７】
少なくとも一例において、上記複数のデバイスは、ＳｏＣにおける複数の統合ブロックであり得る。 
【０１９８】
１または複数の実施形態は、定義された相互接続を使用する通信を実装し、上記通信はＰＣＩベースのプロトコルスタックのトランザクション層を介して実装され、上記通信は、データリンク層制御データおよび物理層制御ロジック制御データを控える、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアおよび／またはソフトウェアベースのロジック、および方法を提供してよい。
【０１９９】
少なくとも一例において、上記定義された相互接続は、定義された制御信号のセットを含む。
【０２００】
少なくとも一例において、制御信号のセットは、下流デバイスのパワーゲーティング制御を有効にするパワーゲーティング信号を含む。
【０２０１】
少なくとも一例において、制御信号のセットは、ｐｏｓｔｅｄ、ｎｏｎ‐ｐｏｓｔｅｄ、およびｃｏｍｐｌｅｔｉｏｎタイプのパケットをサポートする。
【０２０２】
少なくとも一例において、上記複数のパケットの各々は、ヘッダおよびペイロードを含む。 
【０２０３】
少なくとも一例において、制御信号のセットは、ハンドシェイクを定義する。 
【０２０４】
少なくとも一例において、上記ハンドシェイクを定義する複数の制御信号は、保留信号および有効信号を含む。
【０２０５】
少なくとも一例において、上記複数の制御信号は、保留ヘッダｐｏｓｔｅｄ信号、保留ヘッダｎｏｎｐｏｓｔｅｄ信号、保留ヘッダｃｏｍｐｌｅｔｉｏｎ信号、保留ペイロードｐｏｓｔｅｄ信号、保留ペイロードｎｏｎｐｏｓｔｅｄ信号、保留ペイロードｃｏｍｐｌｅｔｉｏｎ信号を含む。
【０２０６】
少なくとも一例において、上記複数の制御信号は、ヘッダｐｏｓｔｅｄ有効信号、ヘッダｎｏｎｐｏｓｔｅｄ有効信号、ヘッダｃｏｍｐｌｅｔｉｏｎ有効信号、ペイロードｐｏｓｔｅｄ有効信号、ペイロードｎｏｎｐｏｓｔｅｄ有効信号、ペイロードｃｏｍｐｌｅｔｉｏｎ有効信号を含む。
【０２０７】
少なくとも一例において、複数の保留信号がアサートされた場合、それらは特定の対応するタイプのデータが、上記信号をアサートするデバイスに送信されないことを示す。
【０２０８】
少なくとも一例において、複数の有効信号は、上記信号をアサートするデバイスによって送信される特定の対応するタイプのデータが有効であることを示す。
【０２０９】
少なくとも一例において、上記第１のデバイスおよび上記第２のデバイスはそれぞれ、各統合されたＩＰブロックを含む。
【０２１０】
少なくとも一例において、上記システムは、システムオンチップ（ＳｏＣ）を含む。
【０２１１】
１または複数の実施形態は、システムオンチップ（ＳｏＣ）に含まれるデバイスのセットを識別するデータを識別し、上記デバイスのセットにおける各デバイスのための構成メタデータを取得し、上記構成メタデータに基づいて、上記ＳｏＣ内の複数のデバイスの構成を判断する装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアおよび／またはソフトウェアベースのロジック、および方法を提供してよい。
【０２１２】
少なくとも一例において、複数のデバイスの構成を判断することは、上記構成メタデータに基づいて、上記ＳｏＣ上の複数のデバイスの物理的レイアウトを判断することを含む。
【０２１３】
少なくとも一例において、複数のデバイスの構成を判断することは、上記構成メタデータに基づいて、上記ＳｏＣのためのクロックを判断することを含む。
【０２１４】
少なくとも一例において、複数のデバイスの構成を判断することは、上記複数のデバイスのセットにおける複数のデバイスそれぞれの間における複数の互換性を判断することを含む。
【０２１５】
少なくとも一例において、上記複数の互換性は、上記複数のデバイスのセットにおける複数のそれぞれのデバイスの間で実行される複数の互換性テストから判断され、上記複数の互換性テストは、複数のそれぞれのデバイスのそれぞれの構成メタデータを使用して実行される。
【０２１６】
少なくとも一例において、複数のデバイスの構成を判断することは、上記複数のデバイスのセットにおける各デバイスの複数の互換性を判断することを含む。
【０２１７】
少なくとも一例において、各デバイスの上記構成メタデータは、各デバイスのそれぞれのビルド付随情報を含む。
【０２１８】
少なくとも一例において、上記複数のデバイスのセットの静的構成情報は、結果的に得られるＳｏＣの構成中、アクセスのために永続的に格納されるべきと判断される。
【０２１９】
少なくとも一例において、上記デバイスのための構成メタデータのそれぞれのソースが識別され、上記構成メタデータのそれぞれのソースをクエリする。
【０２２０】
少なくとも一例において、上記複数のソースのうちの少なくとも１つは、それぞれのデバイスのプロバイダに関連付けられたデータサーバを含む。
【０２２１】
少なくとも一例において、上記複数のソースのうちの少なくとも１つは、複数の異なるデバイスのための構成メタデータを格納するデータベースを含む。
【０２２２】
少なくとも一例において、上記ＳｏＣ内の複数のデバイスの判断された構成を記述する構成データ構造が生成される。
【０２２３】
少なくとも一例において、上記構成データ構造は、機械可読データ構造である。
【０２２４】
少なくとも一例において、上記構成データ構造は、上記ＳｏＣのためのオペレーティングシステムの構成を判断する際における使用のために適合される。
【０２２５】
少なくとも一例において、システムオンチップ（ＳｏＣ）に含まれるデバイスのセットを識別するデータは、少なくとも部分的にユーザ定義されており、上記ＳｏＣ内の複数のデバイスの構成は、さらなるユーザによる介在なしに判断される。
【０２２６】
少なくとも一例において、上記構成メタデータは、機械可読であり、定義されたテンプレートに従い構造化される。
【０２２７】
少なくとも一例において、上記ＳｏＣのためのオペレーティングシステムの構成は、上記構成メタデータから判断された上記ＳｏＣ内の複数のデバイスの構成から判断される。
【０２２８】
少なくとも一例において、上記構成メタデータは、定義されたテンプレートに従う。 
【０２２９】
少なくとも一例において、上記デバイスのセットにおける各デバイスに対する複数の構成属性を判断するための構成メタデータを読み取り可能なステッチャツールが提供される。上記ステッチャツールは、上記構成メタデータを取得すべく、複数のソースにクエリ可能である。上記ステッチャツールは、上記ＳｏＣのための相互接続ファブリックを判断可能である。
【０２３０】
本明細書全体で「一実施形態」または「ある実施形態」に言及する場合、当該実施形態に関連して記載された特定の特徴、構造、または特性が本発明の少なくとも一実施形態に含まれることを意味する。従って、本明細書中の随所における「一実施形態において」または「ある実施形態において」という文言が現れても、必ずしもすべてが同一の実施形態を指している訳ではない。さらに、当該特定の特徴、構造、または特性は、１または複数の実施形態において、任意の好適な態様で組み合わされ得る。
【０２３１】
上記明細書においては、詳細な説明は、特定の例示的な実施形態に関し記載されている。しかしながら、添付の特許請求の範囲に記載される本発明のより広範な精神および範囲から逸脱することなく、様々な変更および修正がそこになされ得ることは明らかであろう。本明細書および添付図面は、従って、限定的な意味ではなく、例示的な意味のものとみなされるべきである。さらに、実施形態および他の例示的な文言の上記使用は、同一の実施形態または同一の例を必ずしも指しておらず、異なるおよび区別される複数の実施形態並びに潜在的に同一の実施形態を指すことがある。
（項目１）
処理要素と複数の統合ブロックとを含む集積回路と、
上記複数の統合ブロックのうちの少なくとも１つのためにランタイム前に複数の構成パラメータを保持する永続ストレージと、
上記複数の構成パラメータに基づいて上記複数の統合ブロックのうちの上記少なくとも１つを構成し、上記永続ストレージからの上記複数の統合ブロックのうちの上記少なくとも１つのための複数の状態レジスタへの複数のアクセスをサービスするロジックと、を備える装置。
（項目２）
上記複数の構成パラメータは、１または複数の統合ブロックのために維持されるメタデータに基づいている、項目１に記載の装置。
（項目３）
上記複数の構成パラメータのうちの少なくともいくつかは、上記集積回路のビルド時に定義される、項目１に記載の装置。
（項目４）
構成ロジックはさらに、
上記１または複数の統合ブロックに関連付けられた複数のレジスタの複数のクエリからランタイム時に生成されるデータにアクセスする、項目１に記載の装置。
（項目５）
上記複数のレジスタは、複数の状態レジスタおよび複数の構成レジスタのうちの１または複数を含む、項目４に記載の装置。
（項目６）
データ構造がシステムメモリに格納される、項目１に記載の装置。
（項目７）
上記集積回路は、システムオンチップを含む、項目１に記載の装置。
（項目８）
格納されたコードを有する少なくとも１つの機械アクセス可能ストレージ媒体であって、上記コードは機械における実行時、上記機械に対し、
集積回路デバイスにおける１または複数の統合ブロックの複数の構成パラメータを定義するデータ構造にアクセスさせ、
上記データ構造において定義された対応する複数の構成パラメータに基づいて、上記複数の統合ブロックのうちの１または複数を構成させ、
上記複数の構成パラメータはランタイム前に設定され、上記データ構造内に永続的に格納される、少なくとも１つの機械アクセス可能ストレージ媒体。
（項目９）
上記複数の構成パラメータは、上記１または複数の統合ブロックのために維持されるメタデータに基づいている、項目８に記載のストレージ媒体。
（項目１０）
上記複数の構成パラメータのうちの少なくともいくつかは、上記集積回路デバイスのビルド時に定義される、項目８に記載のストレージ媒体。
（項目１１）
上記データ構造において定義された上記複数の構成パラメータのうちの少なくとも一部は、複数のペリフェラルコンポーネントインターコネクト（ＰＣＩ）エクスプレス（ＰＣＩｅ）機能を含む、項目８に記載のストレージ媒体。
（項目１２）
上記複数の構成パラメータは、それぞれのデバイスによってサポートされる複数のトランスポートモードを含み、上記複数のトランスポートモードは、定義されたトランスポート層における複数のモードを含む、項目８に記載のストレージ媒体。
（項目１３）
上記データ構造は、上記１または複数の統合ブロックの各々に対し、上記統合ブロックのそれぞれのＰＣＩクラス、サブクラス、およびプログラミングインタフェースを識別する、項目８に記載のストレージ媒体。
（項目１４）
上記集積回路デバイス内の１または複数のレジスタが、上記データ構造において定義された構成情報に基づいてランタイム時に入力される、項目８に記載のストレージ媒体。
（項目１５）
構成ロジックはさらに、
上記１または複数の統合ブロックに関連付けられた複数のレジスタの複数のクエリからランタイム時に生成されるデータにアクセスする、項目８に記載のストレージ媒体。
（項目１６）
システムのランタイム前に定義される永続的データ構造にアクセスする段階であって、上記永続的データ構造は、上記システム内の１または複数の統合ブロックの複数の構成パラメータを定義する、段階と、
１または複数のデバイスの各々に対し、上記永続的データ構造からの上記システムの複数の構成パラメータを識別する段階と、
上記複数の構成パラメータに基づいて、上記１または複数の統合ブロックのうちの少なくとも１つを構成する段階と、を備える方法。
（項目１７）
上記１または複数の統合ブロックのうちの少なくとも１つに係る複数の追加の構成パラメータを識別するデータを受信する段階をさらに備え、
上記複数の追加の構成パラメータは、ランタイム時に検出される、項目１６に記載の方法。
（項目１８）
上記構成する段階は、オペレーティングシステムによって実行され、上記データはＢＩＯＳから受信される、項目１７に記載の方法。
（項目１９）
上記システム内の１または複数のレジスタは、データ構造にリンクされ、上記データ構造において定義された複数の構成パラメータで入力されており、上記方法は、上記データ構造において定義された上記複数の構成パラメータのうちの特定の１つを変更する段階をさらに備え、
特定のレジスタ値が、上記特定のレジスタ値と上記データ構造との間のリンクに基づいて、上記特定の構成パラメータへの変更を反映するよう更新される、項目１６に記載の方法。
（項目２０）
システムのランタイム前に定義される永続的データ構造にアクセスするための手段であって、上記永続的データ構造は、上記システム内の１または複数の統合ブロックの複数の構成パラメータを定義する、手段と、
上記１または複数の統合ブロックの各々に対し、上記永続的データ構造からの上記統合ブロックの複数の構成パラメータを識別するための手段と、
上記複数の構成パラメータに基づいて、上記１または複数の統合ブロックのうちの少なくとも１つを構成するための手段と、を備える、システム。
（項目２１）
少なくとも１つのデータプロセッサと、
複数のデバイスと、
メモリに格納され、上記複数のデバイスのうちの１または複数に係る複数の構成パラメータを定義するデータ構造と、
オペレーティングシステムと、を備え、
上記複数の構成パラメータは、永続的に定義されており、
上記オペレーティングシステムは、
上記データ構造にアクセスし、
上記データ構造において定義された対応する複数の構成パラメータに基づいて上記複数のデバイスのうちの１または複数を構成する、システム。
（項目２２）
上記複数のデバイスのうちの少なくとも一部は、複数のＩＰブロックを含む、項目２１に記載のシステム。
（項目２３）
上記システムは、システムオンチップを含む、項目２１に記載のシステム。
（項目２４）
システム内の１または複数のデバイスの複数の構成パラメータを定義するデータ構造を格納するシステムメモリと、
上記データ構造において定義された対応する複数の構成パラメータに基づいて、上記複数のデバイスのうちの１または複数を構成する構成ロジックと、を備え、
上記複数の構成パラメータは、上記システムのランタイム前に設定されており、上記データ構造内に永続的に格納される、装置。
（項目２５）
上記データ構造は、修正可能なオペレーティングシステムである、項目２４に記載の装置。
【図１】
0006311164.tif 000003
【図２】
0006311164.tif 000004
【図３】
0006311164.tif 000005
【図４】
0006311164.tif 000006
【図５】
0006311164.tif 000007
【図６】
0006311164.tif 000008
【図７】
0006311164.tif 000009
【図８】
0006311164.tif 000010
【図９】
0006311164.tif 000011
【図１０】
0006311164.tif 000012
【図１１Ａ】
0006311164.tif 000013
【図１１Ｂ】
0006311164.tif 000014
【図１１Ｃ】
0006311164.tif 000015
【図１１Ｄ】
0006311164.tif 000016
【図１２】
0006311164.tif 000017
【図１３】
0006311164.tif 000018
【図１４】
0006311164.tif 000019
【図１５】
0006311164.tif 000020
【図１６】
0006311164.tif 000021
【図１７】
0006311164.tif 000022