【文献】
Boris Grot, Joel Hestness, Stephen W. Kecker, Onur Mutlu,Express Cube Topologies for On-Chip Interconnects,Proceedings of the 15th International Symposium on High-Performance Computer Architecture (HPCA2009),IEEE,2009年 2月14日,Pages:163-174
(58)【調査した分野】(Int.Cl.,DB名)
前記ポイント・ツー・マルチポイント・インターコネクトは、第2のメタルレイヤに少なくとも部分的に構成され、前記第2のメタルレイヤは、前記第1のメタルレイヤより高いメタルレイヤである、請求項2に記載の装置。
前記複数のネットワークスイッチと、前記ポイント・ツー・ポイント・インターコネクトと、前記ポイント・ツー・マルチポイント・インターコネクトとを有するダイ上インターコネクト・ファブリックを更に有する、請求項1に記載の装置。
前記第1の複数の出力ポートのうち少なくとも1つは、前記第1のメタルレイヤに少なくとも部分的に構成されたポイント・ツー・ポイント・インターコネクトを介して前記隣接するネットワークスイッチに結合する、請求項9に記載の装置。
前記第2の複数の出力ポートのうち少なくとも1つは、前記第2のメタルレイヤに少なくとも部分的に構成されたポイント・ツー・マルチポイント・インターコネクトを介して前記複数の隣接しないネットワークスイッチに結合し、前記第2のメタルレイヤは前記第1のメタルレイヤより高いレイヤであり、前記第1及び第2のメタルレイヤは、半導体ダイに構成された積層スタックにある、請求項12に記載の装置。
前記第1の複数の出力ポートのうち少なくとも1つは、第1のクロックサイクルにおいて前記隣接するネットワークスイッチに出力単位を通信し、前記第2の複数の出力ポートのうち少なくとも1つは、前記第1のクロックサイクルにおいて前記複数の隣接しないネットワークスイッチに出力単位を通信する、請求項13に記載の装置。
前記第1のパケットがローカルコアに向かうものである場合、前記ネットワークスイッチを含むドメインのローカルコアに前記第1のパケットを送信するステップを更に有する、請求項17に記載の方法。
第1のメタルレイヤに少なくとも部分的に構成されたポイント・ツー・ポイント・インターコネクトを介して前記隣接するネットワークスイッチに前記第1のパケットを送信するステップを更に有する、請求項17に記載の方法。
第2のメタルレイヤに少なくとも部分的に構成されたポイント・ツー・マルチポイント・インターコネクトを介して前記複数の隣接しないネットワークスイッチに前記第1のパケットを送信するステップを更に有し、
前記第2のメタルレイヤは、前記第1のメタルレイヤより高いメタルレイヤである、請求項19に記載の方法。
【発明を実施するための形態】
【0003】
コンピューティング技術が進化すると共に、大量の計算容量が単一の半導体ダイ上で実現可能になっている。現在では、4個、8個又は8個以上のコアを有するマルチコアプロセッサが利用可能である。将来のプロセッサは、数百又は数千もの小さい計算コアを単一のシリコンダイ上に統合する可能性があることが予想される。しかし、現在のダイ上インターコネクト・ファブリックは、許容可能な帯域幅を提供しつつ、特に小さい電力消費及び待ち時間でこのような大量のノードまで効率的に拡大することができない。2次元メッシュ、リングバス又はリングメッシュトポロジを含む従来のネットワークトポロジは、このような予想されるプロセッサについて効率的に拡大することができず、主にネットワーク内の大量の中間ホップ及びバッファのため、過度の待ち時間及びかなり高い電力消費を生じる。
【0004】
様々な実施例では、ダイ上インターコネクト技術は、最新の半導体プロセス技術により提供される豊富なインターコネクトリソースと、メタルスタックの階層的積層(hierarchical buildup)の特有の待ち時間/エネルギー/帯域幅/リピータ間隔(repeater spacing)特性とを利用するために提供される。このように、実施例によるインターコネクト・ファブリックは、アプリケーションの性能にとって低い待ち時間/エネルギー及び許容可能な帯域幅で1000個のノードへのネットワークスケーラビリティを実現し得る。
【0005】
実施例は、サブミクロンの半導体プロセスのための先進技術のノードの存在を利用する。一例として、半導体ダイに適合されるメタルスタックは、メタルリソースの豊富なセット(例えば、9個以上のレイヤ)を提供する。実施例では、これらのメタルレイヤのうち4個以上は、ダイ上インターコネクト・ファブリックのために使用され得る。各メタルレイヤは、異なる幅/間隔/材料特性を含むが、これらに限定されない異なる物理特性を有する。例として、異なるレイヤは、異なるエネルギー特性(例えば、エネルギー/ミリメートル(mm))、待ち時間特性(例えば、待ち時間/mm)、帯域幅特性(配線/mm)、及び最適なリピータ間隔特性を有してもよい。或る実施例では、インターコネクトされるコア又は他の計算ロジックのサイズは、高レベルのメタルでは最適なリピータ間隔より小さくてもよく、従って、リピータの必要性が回避可能であり、高レベルのメタルレイヤの配線(低レベルのメタルレイヤの配線より大きくてもよく及び/又は太くてもよい)は、低い待ち時間と、単一クロックサイクルにおけるクロス/トラバース・マルチコア(cross/traverse multiple core)を提供し得る。
【0006】
実施例によるインターコネクト・ファブリックは、配線の階層を使用してもよい。低/中レベルのレイヤは、ポイント・ツー・ポイント・インターコネクトにより、隣接するコアのクラスタ(又はコアのグループ)の間を結合するのに十分な帯域幅を有する配線を含む。次に、高レベルのメタルレイヤは、ポイント・ツー・ポイント・インターコネクトにより単一クロックサイクルにおける複数のコアのグループに跨って接続する配線を含む。実施例は、物理的/論理的に隣接する離れたノードを階層的に結合する配線の階層及び平坦な論理スイッチ階層を有する階層的ネットワークトポロジを提供する。コア(ノード)の小さいサイズのため、コア毎にスイッチを平坦化することは実現可能でない可能性があり、その代わりに、トポロジはコアのグループで平坦化されてもよい。
【0007】
ここに記載するトポロジは、階層的ポイント・ツー・ポイント及びポイント・ツー・マルチポイント・インターコネクトで相互接続された高基数(high-radix)の平坦なスイッチを組み込む。階層的配線のための更なる接続性でスイッチを平坦化することは、スイッチの基数を増加させ、ホップ数及び全体のネットワーク待ち時間/エネルギーを最小化する。帯域幅が一定に保持されている限り、個々のスイッチのエネルギーはかなり増加することはない(1次まで)。ネットワークトポロジは、スイッチの基数、帯域幅、並びに階層的配線の区間及びドロップ数を両立させることにより、所与の技術(リソース)、コア数及びアプリケーション要件に最適化されてもよい。例えば、メタル幅/間隔の選択は、帯域幅/待ち時間の間のトレードオフを決定する。大きい空間の広いメタル配線は、小さい帯域幅(mm当たり配線)の代償で低い待ち時間を生じる。同様に、コアのサイズが減少した場合、多くのコアが単一サイクルで接続され得る。
【0008】
より具体的には、実施例は、アイランド毎に平坦なスイッチを使用する。N個のコア(アイランド)のグループは、ネットワークスイッチを共有する。アイランド内のコアは、クロスバー・ネットワークを使用して接続される。
図1Aを参照すると、本発明の実施例によるプロセッサ又はSoCのコアの集合又はグループのブロック図が示されている。
図1Aでは、集合100は、ここではドメイン又はアイランドと呼ばれてもよい。或る実施例では、アイランドは、独立した電圧及び周波数ドメインにあってもよい。認識できるように、複数のコア110
0〜110
nが存在する。実施例によって変わるが、図示の例では、8個のコアが存在する。しかし、異なる実施例では、多くのコア又は少ないコアが所与のアイランドに存在してもよいことが分かる。
【0009】
コア110は、第1のトポロジのインターコネクト120を介して互いに結合する。一例として、インターコネクト120は、コアが相互に通信することを可能にするクロスバー・ネットワークでもよい。アイランド100は、ネットワークスイッチ130を更に含む。実施例では、スイッチ130は高基数のスイッチである。スイッチ130は、集合100内のコア及びプロセッサ又はSoCの他の部分の間(及び次にオフチップの位置へ)の相互接続及び通信を提供する。更に、ここに説明するように、ネットワークスイッチ130は、異なる種類のインターコネクトにより他のドメイン又はアイランドと通信してもよい。これらのインターコネクトの少なくとも一部は、積層スタックの異なるメタルレイヤに構成される。それ自体異なる特性を有する、この積層スタックの異なるメタルレイヤの特性を利用することにより、他の動作特性の中でも待ち時間、帯域幅のようなインターコネクト自体の動作特性が変化する。このような特性は、メタル配線の幅/間隔の選択の関数でもよい。低いレイヤは、密の間隔及び狭い幅を有してもよく、増加する抵抗のため、高い帯域幅(mm当たり)及び高い待ち時間を生じてもよい。高いレイヤは、広い幅及び大きい間隔を有してもよく、結果として、抵抗の減少のため、小さい帯域幅(mm当たり)であるが、低い待ち時間となってもよい。
【0010】
例示的な実施例では、ネットワークスイッチ130の出力ポートの第1のセットは、ポイント・ツー・ポイント・インターコネクト(図示の容易のため
図1Aには図示せず)を介して隣接するドメイン又はアイランドと通信する。次に、ネットワークスイッチ130の出力ポートの第2のセットは、ポイント・ツー・マルチポイント・インターコネクト(図示の容易のため
図1Aには図示せず)を介して隣接しないドメイン又はアイランドと通信する。
図1Aの例では、このハイレベルにて示されているが、多くの変形及び代案が可能である。
【0011】
次に
図1Bを参照すると、実施例による複数のプロセッサアイランドのブロック図が示されている。認識できるように、5個のアイランド100
0-100
nが存在する。ハイレベル且つ一般レベルにて示されているが、各アイランドが同種のリソースを含んでもよいことが分かる。同種のリソースは、複数のコア(例えば、8個)と、クロスバー・インターコネクト・ネットワークと、スイッチとを含んでもよい。異なるアイランドを一緒に結合するインターコネクトの少なくとも一部における異なるメタルレイヤの特有の特性を利用することにより、異なる通信の待ち時間が生じる。従って、
図1Bにおいて分かるように、(例えば)単一クロックサイクルにおいて、ネットワークスイッチ130
0の第1の出力ポートは、インターコネクト140を介して隣接するアイランド100
1のネットワークスイッチ130
1の対応する入力ポートに出力単位(例えば、パケット)を提供する。実施例では、インターコネクト140は、第1のメタルレイヤ(例えば、積層スタックの中レベルのメタルレイヤ)に少なくとも部分的に構成されたポイント・ツー・ポイント・インターコネクトとして実現される。その代わりに、ネットワークスイッチ130
0の第2の出力ポートは、複数のネットワークスイッチ(すなわち、ネットワークスイッチ130
2、130
3及び103
n)の対応する入力ポートに出力単位を提供する。ネットワークスイッチ130
0のこの出力ポートからのこの通信は、第2のメタルレイヤ(例えば、中レベルのメタルレイヤより少なくとも高い積層スタックの高いメタルレイヤ)に少なくとも部分的に構成されたポイント・ツー・マルチポイント・インターコネクト150を介してもよい。
【0012】
図1Bのこの例示的な例で示されているが、実施例は、3個の隣接しないアイランドにのみ結合するマルチポイント・インターコネクトに限定されないことが分かる。他の実施例では、このようなインターコネクトは、更なる隣接しないインターコネクトに結合してもよい(任意選択で、隣接するアイランドにも同様に結合してもよい)。更に、この単一サイクルの通信の待ち時間で説明するが、本発明の範囲はこの点に限定されず、他の例では、インターコネクトが結合する他の宛先への通信の待ち時間は単一サイクル未満でもよく、単一サイクルより大きくてもよいことが分かる。
【0013】
一例では、ダイ上インターコネクト構造は、以下のコンポーネント、すなわち、8コアを有する256個のアイランド/16×16のノードのネットワークにおけるアイランド及びアイランド毎に1つのスイッチとして構成された2048個のコアを有するエクサスケール(exascale)SoC又は他のプロセッサに実現されてもよい。この例示的なトポロジでは、各ネットワークスイッチは、複数の出力ポートを含んでもよく、4個のポートが4つの方向の最も近い隣接するものに結合し、4個のポートが各方向において4個のアイランドに跨るポイント・ツー・マルチポイント・インターコネクトに結合してもよい。この設計の他の仮定は、2つの仮想チャネル(要求及び応答毎に1つずつ)、64バイト(B)のパケットサイズ、及び均一のランダムなトラヒックパターンでのアイランド当たり毎秒64ギガバイト(Gbps)の注入帯域幅の最小帯域幅を備えた次元オーダのXYルーティング(dimension-ordered XY routing)を含む。
【0014】
次に
図2を参照すると、本発明の実施例による他のプロセッサ又はSoCのブロック図が示されている。
図2の例では、プロセッサ200は、非常に大きい数のコアを含むエクサスケール・プロセッサである。例として、1024又は2048個のコアが存在してもよい。一般的に、コアは、アイランドに配列されてもよい。ハイレベルの図では、アイランド210
0,0-210
n,nの16×16のアレイが存在する。各アイランドは所与の数のコアを含んでもよい。異なる例では、同種のコア又は異種のコアの混合が考えられる。相互接続を提供するために、ダイ上インターコネクト・ファブリックは、複数のネットワークスイッチを介して実現されてもよい。例えば、一般的に
図1A及び1Bに関して前述したように構成された高基数のネットワークスイッチが各アイランド内に存在する。
【0015】
従って、各ネットワークスイッチ130は、第1の種類のインターコネクト(すなわち、ポイント・ツー・ポイント・インターコネクト)を介して、X、Y方向に隣接するアイランドに結合する(ダイの外周のアイランドは4個の隣接するアイランドに結合しないことがあることが分かる)。更に、各ネットワークスイッチ130は、第2の種類のインターコネクト(すなわち、ポイント・ツー・マルチポイント・インターコネクト)を介して、隣接しないアイランドに更に結合する。
【0016】
実施例によるトポロジは、低い負荷条件で最低の待ち時間を実現してもよく、同じスイッチ帯域幅では、2Dメッシュネットワークに比べて、均一なランダムなトラヒック条件のもとでネットワークが飽和する前の3倍までの高い注入率を実現する点に留意すべきである。高い局所的な最近傍のトラヒックパターンでは、トポロジは、2Dメッシュネットワークに比べて負けることはない。
【0017】
図2のトポロジは一般的なトポロジの例であり、正確な仕様は、技術の選択、回路パラメータ、コア数/サイズ等に基づいてもよいことが分かる。従って、実施例は、ダイ上インターコネクト・ファブリックの柔軟な実現を提供する。各ポイント・ツー・マルチポイント・インターコネクトの区間及びドロップ数は、基本技術仕様(例えば、メタルレイヤの数、配線/mm、最適なリピータ間隔等)、回路パラメータ(例えば、とりわけ電圧、クロックサイクル期間)及びコア数により規定されてもよい点に留意すべきである。これらの検討事項は、所望のネットワーク直径(エネルギー/待ち時間)及び帯域幅に対してバランスが保たれてもよい。ネットワークスイッチの所与の注入/排出帯域幅では、局所的な通信の高い帯域幅を提供するために、中間レイヤのメタルについて大きい数の配線/mmが使用されてもよい。
【0018】
次に
図3を参照すると、本発明の実施例によるネットワークスイッチのブロック図が示されている。
図3に示すように、ネットワークスイッチ300は、プロセッサ又はSoCの異なるドメイン又はアイランドを通じてインスタンス化されてもよい。このスイッチを使用して、様々なルーティング、アービトレーション(arbitration)及び関係する動作が実行されてもよい。認識できるように、ネットワークスイッチ300は、複数の入力ポートI0-Inを介して入力を受信する。複数の入力ポートI0-Inは、他のアイランドからの入力(例えば、ポイント・ツー・ポイント・インターコネクト又はポイント・ツー・マルチポイント・インターコネクトを介して受信される)を受信するように構成される。他の入力ポートは、ネットワークスイッチ300が含まれるアイランドの様々なローカルコアに結合されてもよい。従って、出力ポートの数より多くの入力ポートが存在する(図示の実施例では、出力ポートO0-O7が提供される)。
【0019】
要求情報又は応答情報の形式でもよい入来する情報を参照すると、入来する情報は、要求仮想チャネルに対応する対応レーン又は仮想チャネル310
0と、応答仮想チャネルに対応する仮想チャネル310
1とに提供される。認識できるように、各チャネルは、複数の独立したバッファ312
0-312
nを含む。所与の入力単位で受信されてもよい入来する情報(例えば、所与のプロセッサのパケットサイズの入来する情報)は、例えば、所与のパケットに含まれるアドレス及び制御情報に基づいて、対応する適切な宛先を決定するために、ルート計算ロジック314
0-314
nに提供される。このルート決定情報に基づいて、所与のパケットを配信する適切な出力ポートを決定するために、ポートアービタ315においてポートアービトレーション(port arbitration)が実行されてもよい。
【0020】
しかし、出力前に、バスアービタ320においてバスアービトレーション(bus arbitration)がまず生じる。認識できるように、アービトレーションのこの時点において、所与の宛先が対応するパケットを受信するのに十分なリソースを有するか否かを決定するために、フロー制御情報が考慮される。従って、認識できるように、フロー制御情報は、バスアービタ320(より具体的には、独立したバスアービトレーションロジック322
0-322
n)にフィードバック式に提供されてもよい。
【0021】
対応するバスアービトレーションロジック322からのアービトレーションされたパケットは、対応するパイプ段326
0、328
0、329
0-326
n、328
n、329
nに提供される。認識できるように、パケットは、クロスバーロジック335を含むクロスバールータ330に提供される。このように、パケットは、選択された宛先(クロスバー・ネットワーク330に結合されたローカルコアを含む、図示の容易のため
図3には図示せず)に提供されてもよい。認識できるように、ネットワークスイッチ300の所与の出力ポートから出力されるパッケージでは、通信は、対応するセレクタ又はマルチプレクサ338
0-338
7を介する。従って、出力パケットは、出力ポートO0-03(それぞれポイント・ツー・ポイント・インターコネクトに次に結合される)に結合されたパイプ段340
0-340
3を介して、隣接するアイランドのいずれかに提供される。パケットは、1サイクルの待ち時間で隣接するアイランドの隣接するネットワークスイッチに通信されてもよい。その代わりに、関連するネットワークスイッチを介して複数の隣接しないアイランドの1つに提供されるパケットは、マルチプレクサ338
4-338
7から、対応するパイプ段340
4-340
7を通じて対応する出力ポートO4-O7(それぞれポイント・ツー・マルチポイント・インターコネクトに次に結合される)に送信される。
【0022】
従って、図示のように、ネットワークスイッチ300は、ダイ上ファブリックの高基数のスイッチである。要求及び応答について別々のレーン又は仮想チャネルを有するこの特定の例で示されているが、本発明の範囲はこの点に限定されず、他の実現では、更なる仮想チャネル又は異なる仮想チャネルが提供されてもよいことが分かる。
【0023】
次に
図4を参照すると、本発明の実施例に従ってネットワークスイッチを通じてパケットをルーティングする方法のフローチャートが示されている。
図4に示すように、方法400は、ネットワークスイッチ内の様々なロジックにより実行されてもよい。認識できるように、方法400は、処理されるべき複数のパケットを受信することにより始まる(ブロック410)。このようなパケットは、そのローカルコアから、また、ネットワークスイッチの様々な入力ポートに結合されたポイント・ツー・ポイント及びポイント・ツー・マルチポイント・インターコネクトからネットワークスイッチ内で受信されてもよい。次にブロック420において、出力のために適切なパケットを決定するためにアービトレーションが実行されてもよい。アービトレーションは、特定のソースからのパケットが他のソースのパケットが送信されるのを妨げないように或いは餓死させないようにするために、公平性を考慮して、ラウンドロビンのアービトレーションに基づいてもよい。更に、ポート及びバスアービトレーションを含むアービトレーションはまた、宛先が入来するパケットを扱うのに十分なリソースを有さない場合にパケットが選択されないようにフロー制御情報を考慮してもよい。
【0024】
更に
図4を参照すると、次にブロック430において、出力されるべきそれぞれ所与のパケット(例えば、入力ポートより少ない出力ポートが存在する場合のパケット1-P)についてネットワークスイッチロジックにより処理が実行されてもよい。認識できるように、選択されたパケットのルーティングが決定されてもよい(ブロック440)。次に、ルーティングに基づいて、宛先がローカルコアであるか否かが決定されてもよい(菱形450)。そうである場合、所与のパケットについて制御はブロック455に進み、ローカルポート(クロスバー・ネットワークの一部でもよく、従って、アイランド内部のコアにパケットを提供してもよい)を介してローカルコアに送信されてもよい。
【0025】
その代わりに、宛先がローカルコアでない場合、制御は菱形460に進み、宛先が隣接するアイランド内にあるか否かが決定される。そうである場合、制御はブロック470に進み、パケットは、ポイント・ツー・ポイント・インターコネクトに結合された出力ポートを介して、隣接するネットワークスイッチに送信されてもよい。そうでなく、宛先が隣接するアイランドではない場合、制御はブロック470に進み、パケットは、ポイント・ツー・マルチポイント・インターコネクトに結合された出力ポートを介して、複数の隣接しないネットワークスイッチに送信されてもよい。ポイント・ツー・マルチポイント・インターコネクトでパケットを送信するときに、パケットを最終的な宛先に転送するホップを動作させるスイッチのみにパケットがシンクされることを確保するためにサイドバンド制御信号も提供されてもよい点に留意すべきである(これは所与のネットワークスイッチ内のルーティングテーブルに基づいてもよい)。従って、パケットは、インターコネクトに結合された他の(宛先でない/ホップでない)スイッチにシンクされない。このように、サイドバンド相互接続情報を使用することにより、パケットは、宛先でないスイッチにおいてルート計算を通過する必要がなくなる。
図4の実施例では、このハイレベルにて示されているが、本発明の範囲はこの点に限定されないことが分かる。
【0026】
ここに記載のダイ上インターコネクトを含むエクサスケール・プロセッサ又はSoC(又は他の集積回路)は、小さいポータブルデバイスから高性能のコンピューティングシステム及びネットワークの範囲に及ぶ多くの異なるシステムで使用されてもよいことが分かる。次に
図5を参照すると、本発明の実施例によるシステムのブロック図が示されている。
図5の実施例では、システム900は、複数のドメインを含むSoCでもよい。それぞれのドメインは、独立した動作電圧及び動作周波数で動作するように制御されてもよい。ドメインのそれぞれは、ここに記載のように相互接続されたネットワークスイッチを含む異種のアイランドでもよい。特定の例示の例として、システムは、Intel Corporationから入手可能なi3、i5、i7のようなIntel Architecture Coreに基づくSoC又は他のこのようなプロセッサでもよい。しかし、Sunnyvale, CAのAdvanced Micro Devices, Inc. (AMD)から入手可能なもの、ARM Holdings, LtdからのARMに基づく設計若しくはそのライセンス、又はSunnyvale, CAのMIPS Technologies, Inc.からのMIPSに基づく設計若しくはそのライセンス若しくはアダプタのような他の低電力SoC又はプロセッサが代わりに存在してもよい。他の実施例では、Apple A7プロセッサ、Qualcomm Snapdragonプロセッサ、又はTexas Instruments OMAPプロセッサのようなプロセッサが存在してもよい。このようなSoCは、スマートフォン、タブレットコンピュータ、ファブレットコンピュータ、ウルトラブックコンピュータ、IoTデバイス、ウェアラブル又は他のポータブルコンピューティングデバイスのような低電力システムで使用されてもよい。
【0027】
図5に示すハイレベルの図では、SoC900は、複数のコアユニット910
0-910
nを含む。各コアユニットは、1つ以上のプロセッサコアと、1つ以上のキャッシュメモリと、他の回路とを含んでもよい。各コアユニット910は、1つ以上の命令セット(例えば、x86命令セット(新たなバージョンで追加されたいくつかの拡張を含む)、MIPS命令セット、ARM命令セット(NEONのような任意選択の更なる拡張を含む))若しくは他の命令セット又はこれらの組み合わせをサポートしてもよい。コアユニットのいくつかは、異種のリソース(例えば、異なる設計)でもよい点に留意すべきである。更に、それぞれのこのようなコアは、キャッシュメモリ(図示せず)に結合されてもよい。実施例では、キャッシュメモリは、共有レベル(L2)キャッシュメモリでもよい。不揮発性記憶装置930は、様々なプログラム及び他のデータを格納するために使用されてもよい。例えば、この記憶装置は、マイクロコード、BIOSのようなブート情報、他のシステムソフトウェア等の少なくとも一部を格納するために使用されてもよい。
【0028】
各コアユニット910はまた、SoCの更なる回路への相互接続を可能にするネットワークインタフェースのようなインタフェースを含んでもよい。実施例では、各コアユニット910は、次にメモリコントローラ935に結合するプライマリキャッシュのコヒーレント・ダイ上インターコネクトとして動作してもよいダイ上インターコネクトに形成されたコヒーレント・ファブリック(coherent fabric)に結合する。次に、メモリコントローラ935は、DRAM(図示の容易のため
図5には図示せず)のようなメモリとの通信を制御する。
【0029】
コアユニットに加えて、グラフィックス処理を実行し、場合によってはグラフィックスプロセッサでの汎用の動作(いわゆるGPGPU動作)を実行する1つ以上のグラフィックス処理ユニット(GPU:graphics processing unit)を含んでもよい少なくとも1つのグラフィックスユニット920を含み、更なる処理エンジンがプロセッサ内に存在する。更に、少なくとも1つの画像信号プロセッサ925が存在してもよい。信号プロセッサ925は、SoCの内部であれオフチップであれ、1つ以上のキャプチャデバイスから受信した入来する画像データを処理するように構成されてもよい。
【0030】
他のアクセラレータが存在してもよい。
図5の例では、ビデオコーダ950は、ビデオ情報の符号化及び復号化を含むコーディング動作を実行してもよく、例えば、高解像度ビデオコンテンツのためのハードウェア促進サポートを提供する。ディスプレイコントローラ955は、システムの内部及び外部ディスプレイのためのサポートの提供を含み、ディスプレイ動作を促進するために更に提供されてもよい。更に、セキュリティプロセッサ945は、セキュリティ動作を実行するために存在してもよい。それぞれのユニットは、電力マネージャ940を介して制御されるその電力消費を有してもよい。電力マネージャ940は、様々な電力管理技術を実行するための制御ロジックを含んでもよい。
【0031】
或る実施例では、SoC900は、様々な周辺機器デバイスが結合してもよいコヒーレント・ファブリックに結合された非コヒーレント・ファブリックを更に含んでもよい。1つ以上のインタフェース960a-960dは、1つ以上のオフチップデバイスとの通信を可能にする。このような通信は、他の種類の通信プロトコルの中でもPCIe、GPIO、USB、I
2C、UART、MIPI、SDIO、DDR、SPI、HDMI(登録商標)のような様々な通信プロトコルに従ってもよい。
図5の実施例では、このハイレベルにて図示されているが、本発明の範囲はこの点に限定されないことが分かる。
【0032】
次に
図6を参照すると、実施例が使用され得る例示的なシステムのブロック図が示されている。認識できるように、システム1200は、スマートフォン又は他の無線通信機でもよい。ベースバンドプロセッサ1205は、システムから送信されるべき通信信号又はシステムにより受信された通信信号に関して、様々な信号処理を実行するように構成される。次に、ベースバンドプロセッサ1205は、アプリケーションプロセッサ1210に結合される。アプリケーションプロセッサ1210は、多くの周知のソーシャルメディア及びマルチメディアアプリケーションのようなユーザアプリケーションに加えてOS及び他のシステムソフトウェアを実行するシステムの主なSoCでもよい。アプリケーションプロセッサ1210は、デバイスのための様々な他のコンピューティング動作を実行するように更に構成されてもよく、ここに記載のダイ上インターコネクト構造を含んでもよい。
【0033】
次に、アプリケーションプロセッサ1210は、ユーザインタフェース/ディスプレイ1220(例えば、タッチスクリーンディスプレイ)に結合してもよい。更に、アプリケーションプロセッサ1210は、不揮発性メモリ(すなわち、フラッシュメモリ1230)と、システムメモリ(すなわち、ダイナミックランダムアクセスメモリ(DRAM:dynamic random access memory)1235)とを含むシステムメモリに結合してもよい。更に認識できるように、アプリケーションプロセッサ1210は、ビデオ及び/又は静止画を記録することができる1つ以上の画像キャプチャデバイスのようなキャプチャデバイス1240に更に結合する。
【0034】
更に
図6を参照すると、加入者識別モジュールと、場合によっては安全な記憶装置及び暗号化プロセッサとを有する汎用ICカード(UICC:universal integrated circuit card)1240も、アプリケーションプロセッサ1210に結合される。システム1200は、アプリケーションプロセッサ1210に結合してもよいセキュリティプロセッサ1250を更に含んでもよい。複数のセンサ1225は、加速度計のような様々な検知情報及び他の環境情報の入力を可能にするために、アプリケーションプロセッサ1210に結合してもよい。オーディオ出力デバイス1295は、(例えば、音声通信、再生又はストリーミングオーディオデータ等の形式で)音を出力するためのインタフェースを提供してもよい。
【0035】
更に示すように、NFCアンテナ1265を介してNFC近距離内で通信する近距離無線通信(NFC:near field communication)非接触インタフェース1260が提供される。
図6には別々のアンテナが示されているが、或る実装では、様々な無線機能を可能にするために、1つのアンテナ又は異なるセットのアンテナが提供されてもよいことが分かる。
【0036】
電力管理集積回路(PMIC:power management integrated circuit)1215は、プラットフォームレベルの電力管理を実行するために、アプリケーションプロセッサ1210に結合する。このため、PMIC1215は、必要に応じて特定の低電力状態に入るように、電力管理要求をアプリケーションプロセッサ1210に発行してもよい。更に、プラットフォームの制約に基づいて、PMIC1215はまた、システム1200の他のコンポーネントの電力レベルを制御してもよい。
【0037】
通信が送信及び受信されることを可能にするために、様々な回路がベースバンドプロセッサ1205とアンテナ1290との間に結合されてもよい。具体的に、無線周波数(RF:radio frequency)トランシーバ1270及び無線ローカルエリアネットワーク(WLAN:wireless local area network)トランシーバ1275が存在してもよい。一般的に、RFトランシーバ1270は、符号分割多元アクセス(CDMA:code division multiple access)、GSM(登録商標)(global system for mobile communication)、LTE(long term evolution)又は他のプロトコルに従うもののような3G又は4G無線通信プロトコルのように、所与の無線通信プロトコルに従って無線データ及び呼を受信及び送信するために使用されてもよい。更に、GPSセンサ1280が存在してもよい。無線信号(例えば、AM/FM及び他の信号)の受信又は送信のような他の無線通信も提供されてもよい。更に、WLANトランシーバ1275を介して、Bluetooth(登録商標)標準又はIEEE802.11a/b/g/nのようなIEEE802.11標準に従うもののようなローカル無線通信も実現されてもよい。
【0038】
次に
図7を参照すると、実施例が使用され得る他の例示的なシステムのブロック図が示されている。
図7の例では、システム1300は、タブレットコンピュータ、2:1タブレット、ファブレット又は他のコンバーチブル若しくはスタンドアローン型のタブレットシステムのようなモバイル低電力システムでもよい。図示のように、SoC1310が存在し、デバイスのアプリケーションプロセッサとして動作するように構成されてもよい。SoC1310は、ここに記載のダイ上インターコネクトのアーキテクチャを含んでもよい。
【0039】
様々なデバイスは、SoC1310に結合してもよい。図示の例では、メモリサブシステムは、SoC1310に結合されたフラッシュメモリ1340及びDRAM1345を含む。更に、タッチパネル1320は、タッチパネル1320のディスプレイ上の仮想キーボードの提供を含み、ディスプレイ機能及びタッチを介したユーザ入力を提供するために、SoC1310に結合される。有線ネットワーク接続を提供するために、SoC1310は、Ethernet(登録商標)インタフェース1330に結合する。周辺機器ハブ1325は、様々なポート又は他のコネクタのいずれかによりシステム1300に結合され得るもののような様々な周辺機器デバイスとのインタフェースを可能にするために、SoC1310に結合される。
【0040】
SoC1310内の内部電力管理回路及び機能に加えて、PMIC1380は、例えば、システムが電池1390により電力供給されているか、ACアダプタ1395を介してAC電源により電力供給されているかに基づいて、プラットフォームに基づく電力管理を提供するために、SoC1310に結合される。この電源に基づく電力管理に加えて、PMIC1380は、環境及び使用条件に基づいてプラットフォームの電力管理アクティビティを更に実行してもよい。更に、PMIC1380は、SoC1310内で様々な電力管理動作を行わせるために、制御及び状態情報をSoC1310に通信してもよい。
【0041】
更に
図7を参照すると、無線機能を提供するために、WLANユニット1350は、SoC1310に結合され、次にアンテナ1355に結合される。様々な実装では、WLANユニット1350は、IEEE802.11プロトコル、Bluetoothプロトコル又は他の無線プロトコルを含む1つ以上の無線プロトコルに従って通信を提供してもよい。
【0042】
更に図示のように、複数のセンサ1360は、SoC1310に結合してもよい。これらのセンサは、ユーザジェスチャセンサを含む様々な加速度計、環境及び他のセンサを含んでもよい。最後に、オーディオコーデック1365は、オーディオ出力デバイス1370へのインタフェースを提供するために、SoC1310に結合される。当然に、
図7においてこの特定の実装で示されているが、多くの変更及び代案が可能であることが分かる。
【0043】
次に
図8に進み、実施例によるSoC設計の実施例が示されている。特定の図示の例では、SoC2000は、ユーザ装置(UE:user equipment)に含まれる。一実施例では、UEは、ウェアラブル、ハンドヘルド電話機、スマートフォン、タブレット、超薄型ノートブック、ノートブック、IoTデバイス又は他の同様のデバイスのような、エンドユーザにより使用されるいずれかのデバイスを示す。しばしば、UEは基地局又はノードに接続し、実際にGSMネットワークの移動局(MS:mobile station)に潜在的に対応する。
【0044】
ここでは、SoC2000は2個のコア2006及び2007を含む。前述と同様に、コア2006及び2007は、Intel Architecture Coreに基づくプロセッサ、Advanced Micro Devices, Inc.(AMD)プロセッサ、MIPSに基づくプロセッサ、ARMに基づくプロセッサ設計又はそのカスタマ及びこれらのライセンシー又はアダプタのような命令セットアーキテクチャに従ってもよい。コア2006及び2007は、システム2000の他の部分と通信するために、バスインタフェースユニット2009及びL2キャッシュ2010に関連するキャッシュ制御ユニット2008に結合される。インターコネクト2010は、オンチップ・インターコネクトを含み、これは、ここに記載の異種の階層アーキテクチャになってもよい。
【0045】
インターコネクト2010は、SOC2000を初期化及びブートするためにコア2006及び2007により実行されるブートコードを保持するブートROM2035、外部メモリ(例えば、DRAM2060)とインタフェース接続するSDAMコントローラ2040、不揮発性メモリ(例えば、フラッシュ2065)とインタフェース接続するフラッシュコントローラ2045、周辺機器とインタフェース接続する周辺機器コントローラ2050(例えば、シリアル周辺機器インタフェース)、MIPI又はHDMI/DPインタフェースの1つを介して入力(例えば、タッチ可能入力)を表示及び受信するビデオコーデック2020及びビデオインタフェース2025、グラフィックスに関する計算を実行するGPU2015等のような他のコンポーネントへの通信チャネルを提供する。
【0046】
更に、システムは、Bluetoothモジュール2070、3Gモデム2075、GPS2080及びWiFi2085のような通信のための周辺機器を示す。また、システムに電力コントローラ2055が含まれる。
【0047】
次に
図9を参照すると、本発明の実施例によるシステムのブロック図が示されている。
図9に示すように、高性能コンピューティングシステムのようなマルチプロセッサシステム1500は、次にHPCネットワークの他のシステムに結合してもよい。システム1500は、ポイント・ツー・ポイント・インターコネクト1550を介して結合された第1のプロセッサ1570及び第2のプロセッサ1580を含む。
図9に示すように、プロセッサ1570及び1580のそれぞれは、例えば、ここに記載のダイ上インターコネクトのアーキテクチャを介して相互接続されてもよい100以上のアイランドのうち2つのアイランドの代表的な第1及び第2のプロセッサコア(すなわち、プロセッサコア1574a及び1574b並びにプロセッサコア1584a及び1584b)を含む多数のコアのプロセッサでもよい。
【0048】
更に
図9を参照すると、第1のプロセッサ1570は、メモリコントローラハブ(MCH:memory controller hub)1572と、ポイント・ツー・ポイント(P-P)インタフェース1576及び1578とを更に含む。同様に、第2のプロセッサ1580は、MCH1582と、P-Pインタフェース1586及び1588とを含む。
図9に示すように、MCH1572及び1582は、プロセッサをそれぞれのメモリ(すなわち、メモリ1532及びメモリ1534)に結合する。メモリ1532及びメモリ1534は、それぞれのプロセッサにローカルに取り付けられたシステムメモリ(例えば、DRAM)の一部でもよい。第1のプロセッサ1570及び第2のプロセッサ1580は、それぞれP-Pインターコネクト1562及び1564を介してチップセット1590に結合されてもよい。
図9に示すように、チップセット1590は、P-Pインタフェース1594及び1598を含む。
【0049】
更に、チップセット1590は、P-Pインターコネクト1539によりチップセット1590を高性能グラフィックスエンジン1538と結合するためのインタフェース1592を含む。次に、チップセット1590は、インタフェース1596を介して第1のバス1516に結合されてもよい。
図9に示すように、様々な入出力(I/O)デバイス1514は、第1のバス1516を第2のバス1520に結合するバスブリッジ1518と共に、第1のバス1516に結合されてもよい。例えば、キーボード/マウス1522、通信デバイス1526及びデータ記憶ユニット1528(一実施例ではコード1530を含んでもよいディスクドライブ又は他の大容量記憶デバイス等)を含み、様々なデバイスは第2のバス1520に結合されてもよい。更に、オーディオI/O1524は、第2のバス1520に結合されてもよい。
【0051】
一例では、装置は、半導体ダイに構成された複数のアイランドであり、複数のアイランドのうち少なくとも2つは複数のコアを有する複数のアイランドと、複数のアイランドと関連付けられる半導体ダイに構成された複数のネットワークスイッチとを有し、複数のネットワークスイッチのうち第1のネットワークスイッチは、複数の出力ポートを有し、複数の出力ポートのうち第1のセットの出力ポートは、ポイント・ツー・ポイント・インターコネクトを介してアイランドの関連するネットワークスイッチに結合し、出力ポートのうち第2のセットの出力ポートは、ポイント・ツー・マルチポイント・インターコネクトを介して複数のアイランドの関連するネットワークスイッチに結合する。
【0052】
一例では、ポイント・ツー・ポイント・インターコネクトは、第1のメタルレイヤに少なくとも部分的に構成される。
【0053】
一例では、ポイント・ツー・マルチポイント・インターコネクトは、第2のメタルレイヤに少なくとも部分的に構成され、第2のメタルレイヤは、第1のメタルレイヤより高いメタルレイヤである。
【0054】
一例では、第1のメタルレイヤに構成されたポイント・ツー・ポイント・インターコネクトの配線幅は、高いメタルレイヤに構成されたポイント・ツー・マルチポイント・インターコネクトの配線幅より大きい。
【0055】
一例では、ポイント・ツー・マルチポイント・インターコネクトは、クロックサイクルにおいてネットワークスイッチからの出力情報を複数のアイランドの関連するネットワークスイッチに通信するように構成され、複数のアイランドは、ネットワークスイッチのアイランドに物理的に隣接しない。
【0056】
一例では、ポイント・ツー・ポイント・インターコネクトは、クロックサイクルにおいてネットワークスイッチからの出力情報をアイランドの関連するネットワークスイッチに通信するように構成され、アイランドは、ネットワークスイッチのアイランドに物理的に隣接する。
【0057】
一例では、装置は、複数のネットワークスイッチと、ポイント・ツー・ポイント・インターコネクトと、ポイント・ツー・マルチポイント・インターコネクトとを有するダイ上インターコネクト・ファブリックを更に有する。
【0058】
一例では、ダイ上インターコネクト・ファブリックは、アイランドの複数のコアをそれぞれ相互接続する複数のクロスバー・ネットワークを含む階層的ネットワークと、複数のアイランドのうち隣接するものを相互接続する複数のポイント・ツー・ポイント・インターコネクトと、複数のアイランドのうち隣接しないものを相互接続する複数のポイント・ツー・マルチポイント・インターコネクトとを有する。
【0059】
他の例では、装置は、半導体ダイに構成されたネットワークスイッチを有し、ネットワークスイッチは、他のネットワークスイッチから情報を受信する複数の入力ポートと、第1のメタルレイヤを介して複数の隣接するネットワークスイッチに結合する第1の複数の出力ポートと、第2のメタルレイヤを介して複数の隣接しないネットワークスイッチに結合する第2の複数の出力ポートとを含む。
【0060】
一例では、複数の入力ポートの数は、第1の複数の出力ポートの数と第2の複数の出力ポートの数との和より大きい。
【0061】
一例では、ネットワークスイッチは、第1の仮想チャネルに関連する少なくとも1つの第1のバッファと、第2の仮想チャネルに関連する少なくとも1つの第2のバッファと、アイランドにある複数のコアをネットワークスイッチに結合するクロスバー・ネットワークと、複数のコアのうち少なくともいくつかからの出力要求の間をアービトレーションするアービタとを更に有する。
【0062】
一例では、第1の複数の出力ポートのうち少なくとも1つは、第1のメタルレイヤに少なくとも部分的に構成されたポイント・ツー・ポイント・インターコネクトを介して隣接するネットワークスイッチに結合する。
【0063】
一例では、第2の複数の出力ポートのうち少なくとも1つは、第2のメタルレイヤに少なくとも部分的に構成されたポイント・ツー・マルチポイント・インターコネクトを介して複数の隣接しないネットワークスイッチに結合し、第2のメタルレイヤは第1のメタルレイヤより高いレイヤであり、第1及び第2のメタルレイヤは、半導体ダイに構成された積層スタックにある。
【0064】
一例では、第1の複数の出力ポートのうち少なくとも1つは、第1のクロックサイクルにおいて隣接するネットワークスイッチに出力単位を通信し、第2の複数の出力ポートのうち少なくとも1つは、第1のクロックサイクルにおいて複数の隣接しないネットワークスイッチに出力単位を通信する。
【0065】
一例では、装置は、複数のコアを含むエクサスケールSoCを有する。
【0066】
一例では、エクサスケールSoCは、複数のコアの一部とネットワークスイッチとをそれぞれ有する複数のアイランドを有する。
【0067】
他の例では、機械により実行された場合、機械に対して、ダイ上インターコネクトのネットワークスイッチにおいて複数のパケットを受信するステップと、複数のパケットのうち第1のパケットのルーティングを決定するステップと、第1のパケットが隣接するネットワークスイッチに関連するドメインの宛先ロジックに向けたものである場合、ポイント・ツー・ポイント・インターコネクトに結合された第1の出力ポートを介して隣接するネットワークスイッチに第1のパケットを送信するステップと、第1のパケットが複数の隣接しないネットワークスイッチのうち1つに関連するドメインの宛先ロジックに向けたものである場合、ポイント・ツー・マルチポイント・インターコネクトに結合された第2の出力ポートを介して複数の隣接しないネットワークスイッチに第1のパケットを送信するステップとを有する方法を実行させる命令を格納した機械読み取り可能媒体である。
【0068】
一例では、この方法は、第1のパケットがローカルコアに向かうものである場合、ネットワークスイッチを含むドメインのローカルコアに第1のパケットを送信するステップを更に有する。
【0069】
一例では、この方法は、第1のメタルレイヤに少なくとも部分的に構成されたポイント・ツー・ポイント・インターコネクトを介して隣接するネットワークスイッチに第1のパケットを送信するステップを更に有する。
【0070】
一例では、この方法は、第2のメタルレイヤに少なくとも部分的に構成されたポイント・ツー・マルチポイント・インターコネクトを介して複数の隣接しないネットワークスイッチに第1のパケットを送信するステップを更に有し、第2のメタルレイヤは、第1のメタルレイヤより高いメタルレイヤである。
【0071】
実施例は、多くの異なる種類のシステムで使用されてもよい。例えば、一実施例では、通信デバイスは、ここに記載の様々な方法及び技術を実行するように構成されてもよい。当然に、本発明の範囲は通信デバイスに限定されず、その代わりに、他の実施例は、命令を処理する他の種類の装置を対象としてもよく、コンピューティングデバイスで実行されたことに応じて、デバイスに対してここに記載の方法及び技術のうち1つ以上を実行させる命令を含む1つ以上の機械読み取り可能媒体を対象としてもよい。
【0072】
実施例は、コードで実現されてもよく、システムが命令を実行するようにプログラムするために使用され得る命令を格納した過渡的でない記憶媒体に格納されてもよい。記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、ソリッドステートドライブ(SSD:solid state drive)、コンパクトディスク読み取り専用メモリ(CD-ROM:compact disk read-only memory)、再書き込み可能コンパクトディスク(CD-RW:compact disk rewritable)及び光磁気ディスクを含むいずれかの種類のディスク、読み取り専用メモリ(ROM:read-only memory)、ランダムアクセスメモリ(RAM:random access memory)(ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)等)、消去可能プログラム可能読み取り専用メモリ(EPROM)、フラッシュメモリ、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)のような半導体デバイス、磁気若しくは光カード、又は電子情報を格納するのに適した他の種類の媒体を含んでもよいが、これらに限定されない。
【0073】
限られた数の実施例を参照して本発明について説明したが、当業者は、それからの多数の変更及び変形を認識する。特許請求の範囲は、本発明の真の要旨及び範囲内に入る全てのこのような変更及び変形をカバーすることを意図する。