(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-25
(45)【発行日】2023-11-02
(54)【発明の名称】並べ替えリングネットワーク相互接続型コンピューティングアーキテクチャ
(51)【国際特許分類】
G06F 15/173 20060101AFI20231026BHJP
【FI】
G06F15/173 682
G06F15/173 683B
G06F15/173 673
(21)【出願番号】P 2021552892
(86)(22)【出願日】2020-03-07
(86)【国際出願番号】 US2020021601
(87)【国際公開番号】W WO2020185634
(87)【国際公開日】2020-09-17
【審査請求日】2022-05-24
(32)【優先日】2019-03-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519182279
【氏名又は名称】デジラム コーポレーション
(74)【代理人】
【識別番号】110001379
【氏名又は名称】弁理士法人大島特許事務所
(72)【発明者】
【氏名】タム、キット・エス
【審査官】坂東 博司
(56)【参考文献】
【文献】特開昭58-004427(JP,A)
【文献】米国特許出願公開第2012/0195321(US,A1)
【文献】特表2016-502700(JP,A)
【文献】米国特許出願公開第2018/0145850(US,A1)
【文献】特表2019-536399(JP,A)
【文献】特開平09-054762(JP,A)
【文献】特開平09-160893(JP,A)
【文献】特開2012-252490(JP,A)
【文献】特開2006-012133(JP,A)
【文献】米国特許出願公開第2012/0201171(US,A1)
【文献】米国特許出願公開第2014/0201443(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/173
(57)【特許請求の範囲】
【請求項1】
複数のコンピューティングスライスであって、その各々が、複数のコンピュートエンジンと、複数のメモリバンクと、通信ノードと、第1レベル相互接続構造とを含み、前記第1レベル相互接続構造は、前記複数のコンピュートエンジン、前記複数のメモリバンク、および前記通信ノードの各々を互いに接続する、該複数のコンピューティングスライスと、
第2レベル相互接続構造であって、
複数の双方向ソースシンクロナスリングネットワークを有する並べ替えリングネットワークを含み、
前記複数の双方向ソースシンクロナスリングネットワークの各々が、リング状に接続された複数のデータ伝送機構を含み、前記複数のコンピューティングスライスの前記通信ノードの各々が、前記複数の双方向ソースシンクロナスリングネットワークの各々における前記複数のデータ伝送機構のうちの1つのデータ伝送機構に接続される、該第2レベル相互接続構造と、
第2レベル相互接続構造に接続された前記第1のネットワーク通信ノードであって、前記第1のネットワーク通信ノードは、前記第2レベル相互接続構造の前記複数の双方向ソースシンクロナスリングネットワークの各々における前記複数のデータ伝送機構のうちの1つのデータ伝送機構に接続される、該第1のネットワーク通信ノードと、
を備える、コンピュータアーキテクチャ。
【請求項2】
前記第1レベル相互接続構造の各々は、
複数の双方向ソースシンクロナスリングネットワークを有するスライスレベル並べ替えリングネットワークを含み、
前記複数の双方向ソースシンクロナスリングネットワークの各々が、リング状に接続された複数のデータ伝送機構を含み、前記
複数のコンピューティングスライス
のなかの対応する1つの前記複数のコンピュートエンジン、前記複数のメモリバンク、および前記通信ノード
の各々は、前記スライスレベル並べ替えリングネットワークの前記複数の双方向ソースシンクロナスリングネットワークの各々における前記複数のデータ伝送機構のうちの1つのデータ伝送機構に接続される、請求項1に記載のコンピュータアーキテクチャ。
【請求項3】
前記第1レベル相互接続構造の各々は、前記
複数のコンピューティングスライスの
なかの対応する1つの前記複数のコンピュートエンジン、前記複数のメモリバンク、および前記通信ノードに接続されたクロスバースイッチを含む、請求項1に記載のコンピュータアーキテクチャ。
【請求項4】
前記第1レベル相互接続構造の各々は、前記
複数のコンピューティングスライスの
なかの対応する1つの前記複数のコンピュートエンジン、前記複数のメモリバンク、および前記通信ノードに接続されたリングネットワークを含む、請求項1に記載のコンピュータアーキテクチャ。
【請求項5】
前記第2レベル相互接続構造に接続され、前記複数の双方向ソースシンクロナスリングネットワークの各々における前記複数のデータ伝送機構のうちの1つのデータ伝送機構に接続されたメモリインタフェース通信ノードと、
前記メモリインタフェース通信ノードに接続されたメモリデバイスと、を更に備える、請求項1に記載のコンピュータアーキテクチャ。
【請求項6】
前記メモリデバイスは、ダイナミックランダムアクセスメモリ(DRAM)デバイスである、請求項5に記載のコンピュータアーキテクチャ。
【請求項7】
前記第1のネットワーク通信ノードに接続されたシステムレベル相互接続構造を更に備える、請求項
1に記載のコンピュータアーキテクチャ。
【請求項8】
前記システムレベル相互接続構造は、第3レベル相互接続構造に接続された複数のネットワーク通信ノードを備え、
前記複数のネットワーク通信ノードのうちの第1の通信ノードは、前記第1のネットワーク通信ノードに接続される、請求項
7に記載のコンピュータアーキテクチャ。
【請求項9】
前記複数のネットワーク通信ノードのうちの第2の通信ノードに接続されたホストシステムプロセッサを更に備える、請求項
8に記載のコンピュータアーキテクチャ。
【請求項10】
前記複数のネットワーク通信ノードのうちの第3の通信ノードに接続されたシステムメモリを更に備える、請求項
9に記載のコンピュータアーキテクチャ。
【請求項11】
前記第3レベル相互接続構造は、
各々がリング状に接続された複数のデータ伝送機構
を含む複数の双方向ソースシンクロナスリングネットワークを有するシステムレベル並べ替えリングネットワークを含み、
前記複数のネットワーク通信ノードの各々は、前記システムレベル並べ替えリングネットワークの前記複数の双方向ソースシンクロナスリングネットワークの各々における前記複数のデータ伝送機構のうちの1つのデータ伝送機構に接続される、請求項
8に記載のコンピュータアーキテクチャ。
【請求項12】
前記第3レベル相互接続構造は、前記複数のネットワーク通信ノードに接続されたクロスバースイッチを含む、請求項
8に記載のコンピュータアーキテクチャ。
【請求項13】
前記第3レベル相互接続構造は、前記複数のネットワーク通信ノードに接続されたリングネットワークを含む、請求項
8に記載のコンピュータアーキテクチャ。
【請求項14】
第2の複数のコンピューティングスライスであって、その各々が、第2の複数のコンピュートエンジンと、第2の複数のメモリバンクと、第2の通信ノードと、第2の第1レベル相互接続構造とを含み、前記第2の第1レベル相互接続構造は、前記第2の複数のコンピュートエンジン、前記第2の複数のメモリバンク、および前記第2の通信ノードの各々を互いに接続する、該第2の複数のコンピューティングスライスと、
第2の第2レベル相互接続構造であって、
各々がリング状に接続された第2の複数のデータ伝送機構
を含む第2の複数の双方向ソースシンクロナスリングネットワークを有する第2の並べ替えリングネットワークを含み、前記第2の複数のコンピューティングスライスの前記第2の通信ノードの各々が、前記第2の複数の双方向ソースシンクロナスリングネットワークの各々における前記第2の複数のデータ伝送機構のうちの1つの第2のデータ伝送機構に接続される、該第2の第2レベル相互接続構造と、
前記第2の第2レベル相互接続構造に接続された第2のネットワーク通信ノードであって、前記第2の第2レベル相互接続構造の前記第2の複数の双方向ソースシンクロナスリングネットワークの各々における前記第2の複数のデータ伝送機構のうちの1つの第2のデータ伝送機構に接続され、前記システムレベル相互接続構造に接続された、該第2のネットワーク通信ノードと、
を更に備える、請求項8に記載のコンピュータアーキテクチャ。
【請求項15】
前記通信ノードの各々は、他の通信ノードの各々への
通信経路を含み、
前記
通信経路の各々は、隣接するデータ伝送機構間の
1ホップ経路を含む、請求項1に記載のコンピュータアーキテクチャ。
【請求項16】
前記複数のデータ伝送機構のうちの互いに隣接するデータ伝送機構の固有のペアが、前記通信ノードの各ペア間の
通信経路を提供する、請求項1に記載のコンピュータアーキテクチャ。
【請求項17】
前記複数の双方向ソースシンクロナスリングネットワークは、第1のクロックドメインで動作し、
前記複数のコンピュートエンジンおよび前記複数のメモリバンクは、前記第1のクロックドメインとは異なる第2のクロックドメインで動作する、請求項1に記載のコンピュータアーキテクチャ。
【請求項18】
前記複数のコンピューティングスライスおよび前記第2レベル相互接続構造は、同じ半導体チップ上に位置する、請求項1に記載のコンピュータアーキテクチャ。
【請求項19】
前記通信ノードの各々は、前記複数の双方向ソースシンクロナスリングネットワークにおいて他の前記通信ノードとは異なる位置を有する、請求項1に記載のコンピュータアーキテクチャ。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、参照によって本明細書に組み込まれる、2019年3月14日に出願された、「Permutated Ring Network Interconnected Computing Architecture」と題された米国特許出願第16/353,198号への優先権を主張するものである。
【0002】
(技術分野)
本発明は、1または複数の並べ替えリングネットワークを用いて様々なコンピュートエンジンを接続するコンピュータアーキテクチャに関する。より具体的には、本発明は、スケーリング可能、広帯域幅、低レイテンシのポイントツーポイントマルチチップ通信解決策を提供する複数の相互接続型並べ替えリングネットワークを用いるコンピューティングアーキテクチャに関する。
【背景技術】
【0003】
図1は、複数のプロセッサチップ101~102、チップ間相互接続105、およびDRAMデバイス111~112を含む、従来のCPUアーキテクチャのブロック図である。プロセッサチップ101および102の各々は、それぞれ複数のプロセッサコアC
01~C
0NおよびC
11~C
1Nを含む。プロセッサコアの各々は、レジスタファイルおよび演算論理装置(ALU)、第1レベルキャッシュメモリL1、および第2レベルキャッシュメモリL2を含む。プロセッサチップ101および102の各々は、それぞれ複数の第3レベル(L3)キャッシュメモリ121および122、およびそれぞれキャッシュコヒーレンス相互接続論理131および132も含む。
【0004】
一般に、第1レベルキャッシュメモリL1は、高速データアクセス(1~2サイクル)を可能にするが、比較的小さい。第2レベルキャッシュメモリL2は、より緩慢なデータアクセス(5~6サイクル)を示すが、第1レベルキャッシュメモリよりも大きい。プロセッサコアC01~C0NおよびC11~C1Nの各々は、独自の専用第1レベルキャッシュメモリL1および第2レベルキャッシュメモリL2を有する。チップ101上のプロセッサコアC01~C0Nの各々は、キャッシュコヒーレンス相互接続論理131を介して、複数のレベル3(L3)キャッシュメモリ121にアクセスする。同様に、チップ102上のプロセッサコアC11~C1Nの各々は、キャッシュコヒーレンス相互接続論理132を介して、複数のレベル3(L3)キャッシュメモリ122にアクセスする。したがって、各チップ上の複数のプロセッサコアは、同じチップ上の複数のレベル3(L3)キャッシュメモリを共有する。
【0005】
チップ101上のプロセッサコアC01~C0Nの各々は、キャッシュコヒーレンス相互接続論理131を介してDRAM111にアクセスする。同様に、チップ102上のプロセッサコアC11~C1Nの各々は、キャッシュコヒーレンス相互接続論理132を介してDRAM112にアクセスする。
【0006】
キャッシュコヒーレンス相互接続論理131は、プロセッサコアC01~C0Nの全てが、レベル3(L3)キャッシュ121の同じエントリで同じデータを見ることを確実にする。キャッシュコヒーレンス相互接続論理131は、プロセッサコアC01~C0Nの複数が、レベル3(L3)キャッシュ121の同じエントリによって格納されたデータを更新しようと試みる、あらゆる「複数ライタ」問題を解消する。レベル3(L3)キャッシュ121内のデータを変更しようと望むプロセッサコアC01~C0Nのいずれかは、最初に、キャッシュコヒーレンス相互接続論理131からの許可を得る必要がある。この許可を得ることは、望ましくない点として、長時間を要し、複雑なメッセージ交換の実行を伴う。キャッシュコヒーレンス相互接続論理131は、DRAM111から読み取られ/DRAM111に書き込まれたデータのコヒーレンスも確実にする。
【0007】
キャッシュコヒーレンス相互接続論理132は、同様に、L3キャッシュ122によって格納され、DRAM112から読み取られ/DRAM112に書き込まれたデータのコヒーレンスを確実にする。
【0008】
チップ間相互接続論理105は、プロセッサチップ101~102間の通信を可能にし、この論理105は、チップ境界を跨ぐ際に必要なプロトコル変更を処理する。
【0009】
図1によって示すように、従来のCPUアーキテクチャ100は、キャッシュ階層を有する複数のキャッシュレベル(L1、L2、およびL3)を実装する。高レベルのキャッシュメモリは、比較的小容量および比較的高いアクセス速度を有し(たとえばSRAM)、低レベルのキャッシュメモリは、比較的大容量および比較的低いアクセス速度を有する(たとえばDRAM)。キャッシュコヒーレンスプロトコルは、様々なキャッシュレベルにわたりデータコヒーレンスを維持することを必要とする。キャッシュ階層は、専用の一次(L1およびL2)キャッシュの使用、キャッシュコヒーレンスポリシによって制御される複数のアクセス、および様々な物理ネットワークを跨いで(たとえばプロセッサチップ101と102との間で)必要なデータ横断により、複数の異なるプロセッサコアC
01~C
0NおよびC
11~C
1N間でデータを共有することを困難にする。
【0010】
キャッシュ階層は、今後データがアクセスされる場合の長レイテンシアクセスを回避するために、高レベルキャッシュが低レベルキャッシュから移されたキャッシュラインを保持するように、時間的および空間的局所性の原理に基づく。ただし、(多数のニューラルネットワークデータセットの場合のように)データセット内に最小限の空間的および時間的局所性しかない場合、レイテンシは増加し、有用なメモリ場所のサイズは低減され、不必要なメモリアクセスの数が増加する。
【0011】
従来の(たとえばアーキテクチャ100などの)CPUアーキテクチャのハードウェアは、共有メモリプログラミングモデルのために最適化される。このモデルにおいて、複数のコンピュートエンジンは、キャッシュコヒーレンスプロトコルを用いてメモリ共有を介して通信する。しかし、これらの従来のCPUアーキテクチャは、一般に(冗長なメモリ読取りおよび書込み動作ならびに長レイテンシを示す)ニューラルネットワークの順方向伝搬によって実装される生産者消費者実行モデルをサポートするために最も効率の良い方法ではない。生産者消費者実行モデルにおいて、生産者から消費者へのダイレクトメッセージの受渡しが、より効率的である。対照的に、共有メモリプログラミングモデルにおいて、プロセッサコアC01~C0NおよびC11~C1N間での直接通信に関するハードウェアサポートは存在しない。共有メモリプログラミングモデルは、メッセージ受渡しプログラミングモデルを構築するためにソフトウェアに依拠する。
【0012】
共有メモリプログラミングモデルのために最適化された従来のCPUアーキテクチャ100の各レベルにおける通信チャネルは、サービス提供されているサブシステムのために高度に特殊化および最適化される。たとえば、(1)データキャッシュとALU/レジスタファイルとの間の、(2)異なるレベルのキャッシュ間の、(3)DRAMチャネルへの、および(4)チップ間相互接続105内の、特殊化相互接続システムが存在する。これらの相互接続システムの各々は、独自のプロトコルおよび速度で動作する。その結果、これらのチャネルを跨いで通信するために必要とされる多大なオーバヘッドが存在する。これは、大量のデータへのアクセスを必要とするタスク(たとえば、タスクを実行するために複数のコンピューティングエンジンを用いる大次元行列乗算)を高速化しようと試みる際、著しい非効率性を招く。
【0013】
クロスバースイッチおよび単純なリングネットワークは、上述した特殊化相互接続システムを実装するために一般的に用いられる。しかし、これらの相互接続構造の速度、電力効率、およびスケーラビリティは、制限される。
【発明の概要】
【発明が解決しようとする課題】
【0014】
上述したように、従来のCPUアーキテクチャは、ニューラルネットワークおよび機械学習アプリケーションの実装において、いくつかの固有の欠点を有する。したがって、ニューラルネットワーク/機械学習アプリケーションにおいてより効率的にデータを処理することができる改善されたコンピューティングシステムアーキテクチャを有することが望ましい。また、複数のチップ間でのキャッシュコヒーレンスプロトコルを必要とせず、複数のチップに広がることが可能な改善されたネットワークトポロジを有することが望ましい。重ねて、そのようなマルチチップ通信システムが容易にスケーリング可能であり、多数の異なるチップ間の通信を提供することが可能であれば、望ましい。
したがって、本発明の目的は、ニューラルネットワーク/機械学習アプリケーションにおいてより効率的にデータを処理することができる改善されたコンピューティングシステムアーキテクチャを提供することである。本発明の別の目的は、複数のチップ間でのキャッシュコヒーレンスプロトコルを必要とせず、複数のチップに広がることが可能な改善されたネットワークトポロジを提供することである。本発明の更に別の目的は、容易にスケーリング可能であり、多数の異なるチップ間の通信を提供することが可能なマルチチップ通信システムを提供することである。
【課題を解決するための手段】
【0015】
したがって、本発明は、各々が複数のコンピュートエンジンと、複数のメモリバンクと、通信ノードと、第1レベル相互接続構造とを含む複数のコンピューティングスライスを含むコンピュータアーキテクチャを提供する。第1レベル相互接続構造は、複数のコンピュートエンジン、複数のメモリバンク、および通信ノードの各々を接続する。第1レベル相互接続は、コンピュートエンジンの各々が、同じコンピューティングスライス内でメモリバンクの各々にアクセスすることを可能にする。1つの実施形態において、第1レベル相互接続構造は、並べ替えリングネットワークである。ただし、他の実施形態において、第1レベル相互接続構造は、たとえばクロスバースイッチまたは単純なリングネットワークなどの他の構造を用いて実装され得る。
【0016】
このコンピュータアーキテクチャは、並べ替えリングネットワークを含む第2レベル相互接続構造も含む。本明細書で定義するように、並べ替えリングネットワークは、各々が複数のデータ伝送機構を含む複数の双方向ソースシンクロナスリングネットワークを含む。複数のコンピューティングスライスの各通信ノードは、複数の双方向ソースシンクロナスリングネットワークの各々におけるデータ伝送機構の1つに接続される。第2レベル相互接続構造は、第2レベル相互接続構造に接続されたコンピューティングスライスの各々の間のアクセスを可能にする。
【0017】
このコンピュータアーキテクチャは、第2レベル相互接続構造に接続されたメモリインタフェース通信ノードを更に含んでよく、メモリインタフェース通信ノードは、第2レベル相互接続構造の複数の双方向ソースシンクロナスリングネットワークの各々におけるデータ伝送機構の1つに接続される。この実施形態において、外部メモリデバイス(たとえばDRAMデバイス)は、メモリインタフェース通信ノードに接続される。
【0018】
このコンピュータアーキテクチャは、第2レベル相互接続構造に接続された第1のネットワーク通信ノードを更に含んでよく、第1のネットワーク通信ノードは、第2レベル相互接続構造の複数の双方向ソースシンクロナスリングネットワークの各々におけるデータ伝送機構の1つに接続される。この実施形態において、第1のネットワーク通信ノードは、システムレベル相互接続構造に接続される。
【0019】
システムレベル相互接続構造は、第3レベル相互接続構造に接続された複数のネットワーク通信ノードを含んでよい。これらの複数のネットワーク通信ノードのうちの第1のネットワーク通信ノードは、第1のネットワーク通信ノードに接続され得る。これらの複数のネットワーク通信ノードのうちの第2のネットワーク通信ノードは、ホストシステムプロセッサに接続され得る。これらの複数のネットワーク通信ノードのうちの第3のネットワーク通信ノードは、システムメモリに接続され得る。これらの複数のネットワーク通信ノードのうちの第4のネットワーク通信ノードは、他の複数のコンピューティングスライスに接続される他の第2レベル相互接続構造に接続され得る。第3レベル相互接続構造は、並べ替えリングネットワークによって、またはたとえばクロスバースイッチまたは単純なリングネットワークなどの他の構造によって実装され得る。
【0020】
有利な点として、第1、第2、および第3レベル相互接続構造が全て並べ替えリングネットワークを用いて実装された場合、メッセージおよびデータは、単一のメッセージングプロトコルを用いてコンピュータアーキテクチャ上で送信/受信され得る。アドレスマッピングは、デバイス(たとえばコンピュートエンジン、メモリバンク、DRAMデバイス)の各々が、コンピュータアーキテクチャ内の固有のアドレスを有することを確実にする。
【0021】
特定の実施形態において、第2レベル相互接続構造および対応する複数のコンピューティングスライスは、同じ半導体チップ上に製造される。
【0022】
本発明は、以下の説明および図面を考慮して、より深く理解される。
【図面の簡単な説明】
【0023】
【
図1】共有メモリプログラミングモデルのために最適化された従来のコンピュータアーキテクチャのブロック図である。
【
図2】本発明の1つの実施形態に係る、複数のコンピュートエンジンおよびメモリデバイスを接続するために並べ替えリングネットワークを用いるコンピュータアーキテクチャのブロック図である。
【
図3】本発明の1つの実施形態に係る、
図2のコンピュータアーキテクチャの変形図である。
【
図4】本発明の1つの実施形態に係る、
図2~3のコンピュータアーキテクチャにおいて用いられる第1レベル並べ替えリングネットワークのブロック図である。
【
図5】本発明の1つの実施形態に係る、
図4の第1レベル並べ替えリングネットワークの4つの通信チャネルの相互接続マトリックスである。
【
図6】本発明の1つの実施形態に係る、
図4の並べ替えリングネットワークにおけるトラフィックの流れを定めるルート指定表である。
【
図7】本発明の代替実施形態に係るコンピュータアーキテクチャのブロック図である。
【
図8】本発明の他の代替実施形態に係るコンピュータアーキテクチャのブロック図である。
【発明を実施するための形態】
【0024】
本発明は、機械学習コンピューティングシステムの相互接続システムのためのより良い解決策を提供するために、並べ替えリングネットワーク(PRN)アーキテクチャを用いる。PRNアーキテクチャは、異なるチップ上の(および同一チップ上の)コンピュートエンジンが共通の通信プロトコルを用いて互いに直接通信することを可能にするフラットメモリ階層を含む。相互接続システムは、非キャッシュコヒーレントである。1つの実施形態において、相互接続システムは、単一の相互接続構造(すなわち、複数の並べ替えリングネットワーク)を用いる。
【0025】
代替実施形態において、PRN構造は、(たとえば、同一チップ上の複数のコンピューティングスライスを接続するために)相互接続構造内の特定の場所でのみ用いられる。
【0026】
図2は、本発明の1つの実施形態に係るコンピュータシステム200のブロック図である。コンピュータシステム200は、複数のプロセッサチップ201~204、ホストプロセッサシステム205、システムメモリ206、システムレベル相互接続チップ210、およびDRAMデバイス211~214を含む。4つのプロセッサチップ201~204のみが
図2に示されるが、コンピュータシステム200は、他の実施形態において、他の数のプロセッサチップを含むように容易に変更され得ることが理解される。また、プロセッサチップ201のみが
図2において詳しく示されるが、プロセッサチップ202~204は、説明される実施形態において、プロセッサチップ201と同じ内部要素を含むことが理解される。代替実施形態において、プロセッサチップ201~204は、後述する説明に従って、様々な数のコンピューティングスライス、コンピュートエンジン、および/またはメモリバンクを含んでよい。
【0027】
図示した実施形態において、プロセッサチップ201は、コンピューティングスライス1、2、3、および4、および並べ替えリングネットワーク(PRN)ベースの相互接続構造21を含む。4つのスライスが
図2に示されるが、他の実施形態において、他の数のスライスがプロセッサチップ201に含まれ得ることが理解される。各スライスは、複数のコンピュートエンジン、複数のメモリバンク、通信ノード、および第1レベルPRNベース相互接続構造を含む。より具体的には、スライス1、2、3、および4は、それぞれコンピュートエンジンセットCE
1、CE
2、CE
3、およびCE
4、それぞれメモリバンクセットM
1、M
2、M
3、およびM
4、それぞれ第1レベルPRNベース相互接続構造11、12、13、および14、およびそれぞれ通信ノードCN
1、CN
2、CN
3、およびCN
4を含む。コンピュートエンジンセットCE
1、CE
2、CE
3、およびCE
4の各々は、複数のコンピュートエンジン(たとえばローカルプロセッサ)を含む。コンピュートエンジンセットCE
1、CE
2、CE
3、およびCE
4の各々は、図示した例において4つのコンピュートエンジンを含む。ただし、他の実施形態において、各コンピュートエンジンセット内に他の数のコンピュートエンジンが含まれ得ることが理解される。同様に、メモリバンクセットM
1、M
2、M
3、およびM
4の各々は、複数のメモリバンクを含む。メモリバンクセットの各々は、図示した例において4つのメモリバンクを含む。ただし、他の実施形態において、各メモリバンク内に他の数のメモリバンクが含まれ得ることが理解される。1つの実施形態において、メモリバンクセットM
1、M
2、M
3、およびM
4内のメモリバンクの各々は、比較的高速のメモリアクセスが実施されることを可能にするスタティックランダムアクセスメモリ(SRAM)である。
【0028】
コンピューティングスライス1、2、3、および4の各々において、対応する第1レベルPRNベース相互接続構造11、12、13、および14は、対応するコンピュートエンジンセットCE1、CE2、CE3、およびCE4と、対応するメモリバンクセットM1、M2、M3、およびM4とを接続する。これにより、コンピュートエンジンの各々は、対応する第1レベルPRNベース相互接続構造を用いて、同一スライス内でメモリバンクの各々にアクセスすることができる。たとえば、コンピューティングスライス1のコンピュートエンジンセットCE1内の4つのコンピュートエンジンの各々は、スライス1の対応する第1レベルPRNベース相互接続構造11を介して、コンピューティングスライス1のメモリバンクセットM1の4つのメモリバンクの各々にアクセスすることができる。
【0029】
第1レベルPRNベース相互接続構造11、12、13、および14は、対応するスライス1、2、3、および4において対応する通信ノードCN1、CN2、CN3、およびCN4にも接続される。後に詳しく説明するように、通信ノードCN1、CN2、CN3、およびCN4は、対応する第1レベルPRNベース相互接続構造11、12、13、および14と、第2レベルPRNベース相互接続構造21との間で、メッセージおよびデータを受け渡す。
【0030】
この構成により、プロセッサチップ201上のコンピュートエンジンの各々は、第1レベルPRNベース相互接続構造11~14および(必要に応じて)第2レベルPRNベース相互接続構造21を用いて、プロセッサチップ201上のメモリバンクの各々にアクセスすることができる。たとえば、コンピューティングスライス1のコンピュートエンジンセットCE1内のコンピュートエンジンの各々は、コンピューティングスライス1の対応する第1レベルPRNベース相互接続構造11、通信ノードCN1、第2レベルPRNベース相互接続構造21、通信ノードCN4、およびコンピューティングスライス4の第1レベルPRNベース相互接続構造14を含む経路を介して、スライス4のメモリバンクセットM4のメモリバンクの各々にアクセスすることができる。
【0031】
またこの構成は、プロセッサチップ201上のコンピュートエンジンの各々が、第1レベルPRNベース相互接続構造11~14および(必要に応じて)第2レベルPRNベース相互接続構造21を用いて、プロセッサチップ201上の他のコンピュートエンジンの各々と通信することも可能にする。たとえば、コンピューティングスライス2のコンピュートエンジンセットCE2内のコンピュートエンジンの各々は、スライス2の対応する第1レベルPRNベース相互接続構造12、通信ノードCN2、第2レベルPRNベース相互接続構造21、通信ノードCN3、およびスライス3の第1レベルPRNベース相互接続構造13を含む経路を介して、コンピューティングスライス3のコンピュートエンジンセットCE3内のコンピュートエンジンの各々と通信することができる。
【0032】
第2レベルPRNベース相互接続構造21は、メモリインタフェース通信ノードCN5を介して外部DRAM211にも接続される。この構成により、プロセッサチップ201のコンピュートエンジンの各々は、第1レベルPRNベース相互接続構造11~14および第2レベルPRNベース相互接続構造21を介して、DRAM211にアクセスすることができる。たとえば、コンピューティングスライス1のコンピュートエンジンセットCE1内のコンピュートエンジンの各々は、コンピューティングスライス1の対応する第1レベルPRNベース相互接続構造11、通信ノードCN1、第2レベルPRNベース相互接続構造21、および通信ノードCN5を含む経路を介して、DRAM211にアクセスすることができる。
【0033】
図2のコンピュータシステム200は、システムレベル相互接続チップ210上に製造された第3レベルPRNベース相互接続構造31も含む。第3レベルPRNベース相互接続構造31は、チップ210において複数の通信ノードCN
11~CN
16に接続される。後に詳しく説明するように、第3レベルPRNベース相互接続構造31は、通信ノードCN
11~CN
16の間でのメッセージおよびデータの送信を可能にする。通信ノードCN
11、CN
12、CN
13、およびCN
14は、それぞれプロセッサチップ201、202、203、および204に接続される。通信ノードCN
15およびCN
16は、それぞれホストシステムプロセッサ205およびシステムメモリ206に接続される。
【0034】
システムレベル相互接続チップ210は、ホストシステムプロセッサ205、システムメモリ206、およびプロセッサチップ201~204の各々の間でのデータおよびメッセージの送信を可能にする。より具体的には、ホストプロセッサ205は、プロセッサチップ201~204上のコンピュートエンジンのいずれか、またはプロセッサチップ201~204上のメモリバンクのいずれかと通信することができる。たとえば、ホストプロセッサ205は、通信ノードCN15、第3レベルPRNベース相互接続構造31、ネットワーク通信ノードCN11およびCN6、第2レベルPRNベース相互接続構造21、通信ノードCN1、および第1レベルPRNベース相互接続構造11を含む経路を介して、コンピューティングスライス1のコンピュートエンジンセットCE1内のコンピュートエンジン(またはコンピューティングスライス1のメモリバンクセットM1のメモリバンク)にアクセスすることができる。
【0035】
ホストプロセッサ205は、DRAM211~214のいずれかと通信することもできる。たとえば、ホストプロセッサ205は、通信ノードCN15、第3レベルPRNベース相互接続構造31、ネットワーク通信ノードCN11およびCN6、第2レベルPRNベース相互接続構造21、および通信ノードCN5を含む経路を介して、DRAM211にアクセスすることができる。ホストプロセッサ205は、それぞれプロセッサチップ202~204内の同様の経路を介して、DRAM212~214にアクセスすることができる。
【0036】
ホストプロセッサ205は、通信ノードCN15、第3レベルPRNベース相互接続構造31、および通信ノードCN16を含む経路を介して、システムメモリ206と通信することもできる。
【0037】
加えて、プロセッサチップ201~204のいずれかにおけるコンピュートエンジンの各々は、他のプロセッサチップ201~204のいずれかにおけるコンピュートエンジンまたはメモリバンクのいずれか、ならびにこれら他のプロセッサチップに接続されたDRAM211~214と通信することができる。
【0038】
1つの実施形態によると、プロセッサチップ201~204に位置する様々なメモリバンク、コンピュートエンジン、および通信ノード、DRAM211~214、ホストシステム205、システムメモリ206、およびシステムレベル相互接続チップ210上の通信ノードCN11~CN16は、固有のシステムアドレスを割り当てられており、それによって、これらのシステム要素の各々は、他のシステム要素のいずれかによって容易にアクセスされ(その結果、それらと通信する)ことが可能である。
【0039】
図3は、プロセッサチップ202を詳しく示す、PRNベースのコンピュータシステム200のブロック図である。プロセッサチップ201および202内の同様の要素は、同様の参照番号で符号付けされる。したがって、プロセッサチップ202は、それぞれメモリバンクセットM
1´、M
2´、M
3´、およびM
4´、それぞれコンピュートエンジンセットCE
1´、CE
2´、CE
3´、およびCE
4´、それぞれ第1レベルPRNベース相互接続構造11´、12´、13´、および14´、およびそれぞれ通信ノードCN
1´、CN
2´、CN
3´、およびCN
4´を含むコンピューティングスライス1´、2´、3´、および4´を含む。プロセッサチップ202は、第2レベルPRNベース相互接続構造21´、それぞれDRAM212およびネットワーク通信ノードCN
12´に接続されたメモリインタフェース通信ノードCN
5´およびネットワーク通信ノードCN
6´も含む。
【0040】
この構成により、(プロセッサチップ201の)コンピュートエンジンセットCE1内のコンピュートエンジンの各々は、第1レベルPRNベース相互接続構造11、通信ノードCN1、第2レベルPRNベース相互接続構造21、ネットワーク通信ノードCN6およびCN11、第3レベルPRNベース相互接続構造31、ネットワーク通信ノードCN12およびCN6´、第2レベルPRNベース相互接続構造21´、通信ノードCN3´、および第1レベルPRNベース相互接続構造13´を含む経路を介して、(プロセッサチップ202の)コンピュートエンジンセットCE3´内のコンピュートエンジンの各々にアクセスすることができる。同様に、(プロセッサチップ201の)コンピュートエンジンセットCE1内のコンピュートエンジンの各々は、同じ経路を用いて、(プロセッサチップ202の)メモリバンクセットM3´内のメモリバンクの各々にアクセスすることができる。
【0041】
この構成は、各プロセッサチップのコンピュートエンジンの各々が、他のプロセッサチップに接続されたDRAMにアクセスすることも可能にする。たとえば、(プロセッサチップ201の)スライス1のコンピュートエンジンセットCE1内のコンピュートエンジンの各々は、スライス1の対応する第1レベルPRNベース相互接続構造11、通信ノードCN1、第2レベルPRNベース相互接続構造21、通信ノードCN6およびCN11、第3レベルPRNベース相互接続構造31、通信ノードCN12およびCN6´、第2レベルPRNベース相互接続構造21´、および通信ノードCN5´を含む経路を介して、(プロセッサチップ202に接続された)DRAM212にアクセスすることができる。
【0042】
上述したように、PRNA相互接続型コンピュータシステム200は、スライスレベル、チップレベル、およびシステムレベルを含む3つのレベルの階層を有し、各レベルは、その物理構造境界によって定められる。
【0043】
コンピューティングスライス1~4(およびコンピューティングスライス1´~4´)によって表されるスライスレベルは、コンピュータシステム200の基礎構造ブロックである。各コンピューティングスライスは、それ自体が、ホストシステムプロセッサ205と第1レベルPRNベース相互接続構造との間のブリッジを介して小規模機械学習プロセッサとして実装され得る。
【0044】
プロセッサチップ201~204によって表されるチップレベルは、複数のコンピューティングスライスおよび対応する第2レベルPRNベース相互接続構造を含む、ダイ上に含まれたサブシステムによって画定される。各プロセッサチップは、ホストシステムプロセッサ205と第2レベルPRNベース相互接続構造との間のブリッジを介して中規模機械学習システムとして実装され得る。
【0045】
ホストシステムプロセッサ205を含むシステムレベルは、複数のプロセッサチップおよびシステムレベル相互接続チップ210上に構築される。プロセッサチップ201~204は、システムレベル相互接続チップ210を介して通信する。システムレベル相互接続チップ210によって実装される第3レベルPRNベース相互接続構造31は、有利な点として、広帯域幅、低レイテンシ、および高電力効率で動作する。並べ替えリングネットワークを用いて第1、第2、および第3レベル相互接続構造を実装することにより、システム全体で同じ通信プロトコルが維持され得る。これにより、システム全体での共有メモリおよびメッセージ受渡しプロトコルが大幅に簡略化される。上述したように、コンピュータシステム200は、任意のコンピュートエンジンが、PRNベース相互接続構造を介してシステム200内の全てのメモリバンクセット(たとえばメモリバンクセットM1~M4およびM1´~M4´)および全てのDRAM(たとえばDRAM211~214)にアクセスすることを可能にする。したがって、コンピュータシステム200は、融通性の高い共有メモリコンピューティングシステムである。
【0046】
また、コンピュータシステム200の全てのコンピュートエンジンは、PRNベース相互接続構造を介して互いに直接通信することができる。有利な点として、異なるコンピューティングスライスまたはチップのコンピュートエンジン間で交換されたメッセージを変換するためにソフトウェアサポートが必要ではないため、高効率なメッセージ受渡しコンピューティングシステムがもたらされる。
【0047】
図2および
図3のレベル1、レベル2、およびレベル3のPRN相互接続構造を実装するために用いられたPRNベース相互接続構造は、参照によってその全体が組み込まれる、共同所有の同時係属米国公開特許出願第2018/0145850号において詳しく説明される。様々な実施形態に係るコンピュータシステム200におけるPRN相互接続構造の使用は、後に詳しく説明される。
【0048】
図4は、本発明の1つの実施形態に係る、第1レベル並べ替えリングネットワーク11のブロック図である。コンピュータシステム200の他の第1レベル並べ替えリングネットワーク(たとえば並べ替えリングネットワーク12~14および11´~14´)は、第1レベル並べ替えリングネットワーク11と同一であってよい。図示した実施形態において、第1レベル並べ替えリングネットワーク11は、4つの双方向ソースシンクロナスリングネットワーク401、402、404、および404を含む。リングネットワーク401~404の各々は、通信チャネルとしての機能を果たす。図示した並べ替えリングネットワーク11は、9つの通信ノード(すなわち通信ノードCN
1、コンピュートエンジンセットCE
1のコンピュートエンジンCE
1A、CE
1B、CE
1C、およびCE
1D、およびメモリバンクセットM
1のメモリバンクM
1A、M
1B、M
1C、およびM
1D)および4つの通信チャネル401~404を含むが、他の実施形態において、他の数の通信ノードおよび通信チャネルが用いられ得ることが理解される。一般に、第1レベル並べ替えリングネットワーク11内の通信ノードの数は、値Nで識別され、第1レベル並べ替えリングネットワーク11内の双方向リングネットワークの数は、値Mで識別される。通信チャネルの数(M)は、通信ネットワークの帯域幅要件と通信ネットワークのエリア電力制約との適当なトレードオフをもたらすように選択される。
【0049】
通信チャネル401~404の各々は、双方向リンク(相互接続)によって接続された複数のデータ伝送機構を含む。より具体的には、通信チャネル401は、9つのデータ伝送機構A0~A8を含み、通信チャネル402は、9つのデータ伝送機構B0~B8を含み、通信チャネル403は、9つのデータ伝送機構C0~C8を含み、通信チャネル404は、9つのデータ伝送機構D0~D8を含む。通信チャネル401の双方向リンクは、リング内のデータ伝送機構A0~A8を結ぶ実線で示される。通信チャネル402の双方向リンクは、リング内のデータ伝送機構B0~B8を結ぶ長破線で示される。通信チャネル403の双方向リンクは、リング内のデータ伝送機構C0~C8を結ぶ点線で示される。通信チャネル404の双方向リンクは、リング内のデータ伝送機構D0~D8を結ぶ短破線で示される。双方向リンクは、時計回りおよび反時計回りの両方でのデータおよびクロック信号の同時送信を可能にする。
【0050】
一般に、データ伝送機構A0~A8、B0~B8、C0~C8、およびD0~D8の各々は、9つの通信ノードと通信チャネル401~404との間のデータ転送を可能にする。
【0051】
一般に、通信チャネル401~404の各々は、マスタクロック信号を受信するために接続される。したがって、
図4の例において、通信チャネル401、402、403、および404は、それぞれマスタクロック信号CKA、CKB、CKC、およびCKDを受信するために接続される。図示した実施形態において、データ伝送機構A0、B0、C0、およびD0が、それぞれマスタクロック信号CKA、CKB、CKC、およびCKDを受信するために接続され得る。ただし、他の実施形態において、通信チャネル401、402、403、および404内の他のデータ伝送機構が、それぞれマスタクロック信号CKA、CKB、CKC、およびCKDを受信するために接続され得る。4つの個別のマスタクロック信号CKA、CKB、CKC、およびCKDが例示されたが、マスタクロック信号CKA、CKB、CKC、およびCKDの各々は、単一のマスタクロック信号から導出され得ることが理解される。説明される実施形態において、マスタクロック信号CKA、CKB、CKC、およびCKDの各々は、同じ周波数を有する。
【0052】
マスタクロック信号CKA、CKB、CKC、およびCKDを生成するために、従来のクロック生成回路(たとえば位相ロックループ回路)が用いられ得る。説明される実施形態において、マスタクロック信号は、約5GHz以上の周波数を有してよい。ただし、マスタクロック信号は、他の実施形態において、他の周波数を有し得ることが理解される。マスタクロック信号の周波数および電圧は、リングネットワークアーキテクチャの帯域幅需要および電力最適化に基づいてスケーリングされ得る。図示した実施形態において、データ伝送機構A0、B0、C0、およびD0は、それぞれマスタクロック信号CKA、CKB、CKC、およびCKDを受信する。他のデータ伝送機構の各々は、隣接するデータ伝送機構から、自身のクロック信号を受信する。すなわち、マスタクロック信号CKA、CKB、CKC、およびCKDは、連続して、それぞれ通信チャネル401、402、402、および404のデータ伝送機構の各々へ効率的に送信される。
【0053】
通信チャネル401、402、403、および404の各々は、それぞれ自身の対応するマスタクロック信号CKA、CKB、CKC、およびCKDに関してソースシンクロナス方式で動作する。
【0054】
一般に、各データ伝送機構は、2つの経路で出力メッセージを送信してよい。第1の経路において、上流のデータ伝送機構によって受信されたメッセージは、下流のデータ伝送機構へ転送される(たとえば、データ伝送機構A0は、時計回りの経路において、下流のデータ伝送機構A8から受信したメッセージを上流のデータ伝送機構A1へ転送してよく、または、データ伝送機構A0は、反時計回りの経路において、下流のデータ伝送機構A1から受信したメッセージを上流のデータ伝送機構A8へ転送してよい)。第2の経路において、データ伝送機構に接続された通信ノードによって提供されたメッセージは、下流のデータ伝送機構にルート指定される(たとえば、データ伝送機構A0は、コンピュートエンジンセットCE1Aから受信したメッセージを、時計回りの経路において下流のデータ伝送機構A1へ、または反時計回りの経路において下流のデータ伝送機構A8へ転送してよい)。また、第2の経路において、データ伝送機構によって受信されたメッセージは、アドレス指定された通信ノードにルート指定される(たとえば、データ伝送機構A0は、時計回りの経路において下流のデータ伝送機構A8から受信したメッセージをコンピュートエンジンセットCE1Aへ転送してよく、反時計回りの経路において下流のデータ伝送機構A0から受信したメッセージをコンピュートエンジンセットCE1Aへ転送してよい)。留意すべき点として、データ伝送機構間でクロック信号およびメッセージを送信するために用いられるワイヤおよびバッファは、セットアップおよびホールド時間ロスを最小限にするために、高度に等化および平衡化される。
【0055】
クロック信号経路およびメッセージバスは、ウェーブパイプラインシステムとして動作し、データ伝送機構間で送信されるメッセージは、クロック信号経路上で送信されたクロック信号を用いてソースシンクロナス方式で受信側データ伝送機構にラッチされる。このようにすると、メッセージは、データ伝送機構間で、マスタクロック信号CKA、CKB、CKC、およびCKDの周波数で送信され、データ伝送機構間の高速データ転送が可能となる。
【0056】
ポイントツーポイントソースシンクロナス通信が実施されることにより、クロック信号線構造およびメッセージバス構造のワイヤおよびバッファ遅延が通信チャネル401~404の動作周波数を低下させることはない。
【0057】
データ伝送機構が比較的単純な設計を有することにより、並べ替えリングネットワーク11におけるメッセージの送信は、比較的高い周波数で行われ得る。通信ノードCN1、コンピュートエンジンCE1A、CE1B、CE1C、およびCE1D、ならびにメモリバンクM1A、M1B、M1C、およびM1Dは典型的には、より複雑な設計を含み、マスタクロック信号CKA、CKB、CKC、およびCKDの周波数よりも緩慢な周波数で動作し得る。
【0058】
留意すべき点として、通信チャネル401~404の環状構成は、発信源のデータ伝送機構A0、B0、C0、およびD0(マスタクロック信号CKA、CKB、CKC、およびCKDを受信するデータ伝送機構)によって受信されるメッセージが、それぞれマスタクロック信号CKA、CKB、CKC、およびCKDに再同期されなければならないことを必須とする。1つの実施形態において、再同期回路(不図示)は、下流のデータ伝送機構から受信した入来クロック信号に応答して、第1のフリップフロップに入来メッセージをラッチすることによって、この同期動作を行う。この第1のフリップフロップの出力において提供されたメッセージは、その後、マスタクロック信号(たとえばCKA)に応答して、第2のフリップフロップにラッチされる。第2のフリップフロップは、同期化メッセージを発信源のデータ伝送機構(たとえばデータ伝送機構A0)へ提供する。この同期化メッセージは、マスタクロック信号(CKA)に応答して、発信源のデータ伝送機構(A0)に格納される。
【0059】
ここで、第1レベル並べ替えリングネットワーク11のトポグラフィに戻ると、通信ノードCN
1、コンピュートエンジンCE
1A、CE
1B、CE
1C、およびCE
1D、およびメモリバンクM
1A、M
1B、M
1C、およびM
1Dの各々は、4つの通信チャネル401~404の各々におけるデータ伝送機構A0~A8、B0~B8、C0~C8、およびD0~D8の固有の1つに接続される。たとえば、コンピュートエンジンCE
1Aは、通信チャネル401内のデータ伝送機構A0、通信チャネル402内のデータ伝送機構B8、通信チャネル403内のデータ伝送機構C7、および通信チャネル404内のデータ伝送機構D6に接続される。以下の表1は、1つの実施形態に従って、通信ノードCN
1、コンピュートエンジンCE
1A、CE
1B、CE
1C、およびCE
1D、ならびにメモリバンクM
1A、M
1B、M
1C、およびM
1Dと、データ伝送機構A0~A8、B0~B8、C0~C8、およびD0~D8との間の接続を定める。留意すべき点として、通信ノードCN
1、コンピュートエンジンCE
1A、CE
1B、CE
1C、およびCE
1D、およびメモリバンクM
1A、M
1B、M
1C、およびM
1Dと、データ伝送機構A0~A8、B0~B8、およびC0~C8との間の物理接続は、明確性のために
図4には明示されない。
【0060】
【0061】
図5は、4つの通信チャネル401~404の相互接続マトリックス500を提供するために表1のデータを並べ替えるものであり、相互接続マトリックス500は、通信チャネル401~404の各々におけるデータ伝送機構によって順序付けされる。この相互接続マトリックス500は、通信チャネル401~404の各々における、通信ノードCN
1、コンピュートエンジンCE
1A、CE
1B、CE
1C、およびCE
1D、ならびにメモリバンクM
1A、M
1B、M
1C、およびM
1Dの間のホップ数の決定を容易にする。留意すべき点として、通信ノードCN
1、コンピュートエンジンCE
1A、CE
1B、CE
1C、およびCE
1D、ならびにメモリバンクM
1A、M
1B、M
1C、およびM
1Dは、4つの通信チャネル401~404において異なる相対位置を有するデータ伝送機構に接続される。後に詳しく説明するように、この構成は、通信ノード間のメッセージの多様かつ効率的なルート指定を可能にする。
【0062】
図6は、本実施形態に係る、並べ替えリングネットワーク11を介した、通信ノードCN
1、コンピュートエンジンCE
1A、CE
1B、CE
1C、およびCE
1D、ならびにメモリバンクM
1A、M
1B、M
1C、およびM
1Dの間のトラフィックの流れを定めるルート指定表600である。たとえば、通信ノードCN
1およびコンピュートエンジンCE
1Aは、通信チャネル404においてデータ伝送機構D5とD6との間の経路を用いて通信する。この経路に沿ったホップ数は、通信チャネル404において通過するセグメントの数によって定められる。データ伝送機構D5およびD6は通信チャネル404において隣り合う(すなわち、データ伝送機構D5とD6との間に1つのセグメントが存在する)ので、通信ノードCN
1とコンピュートエンジンCE
1Aとの間の通信経路は、1ホップ(1H)で構成される。
【0063】
ルート指定表600によって示されるように、通信ノードCN1、コンピュートエンジンCE1A、CE1B、CE1C、およびCE1D、ならびにメモリバンクM1A、M1B、M1C、およびM1Dの間の全ての関連通信経路は、固有の1ホップ通信経路を含む。また他の実施形態において、通信ノードCN1、コンピュートエンジンCE1A、CE1B、CE1C、およびCE1D、ならびにメモリバンクM1A、M1B、M1C、およびM1Dの1または複数のペア間に、複数の通信経路が提供され得る。他の実施形態において、異なる通信ノードペアが、同じ通信経路を共有してよい。
【0064】
データ伝送機構A0~A8、B0~B8、C0~C8、およびD0~D8の間の通信は、ソースシンクロナスネットワークによって可能な最も高い周波数で動作する。この周波数は、通信ノードの数および通信チャネルの数がスケールアップしても低下しない。通信チャネル401~404の各々は、初期化、仲裁、流れ制御、およびエラー処理のための規定を含むことが理解される。1つの実施形態において、これらの規定は、確立した技術を用いて提供される。
【0065】
コンピュートエンジンCE1A、CE1B、CE1C、およびCE1D、ならびにメモリバンクM1A、M1B、M1C、およびM1Dの各々は、ルート指定表600に従って、並べ替えリングネットワーク11上で(データを含み得る)メッセージを送信する。たとえば、コンピュートエンジンCE1Aは、通信チャネル404を用いてメモリバンクM1Cへデータ要求メッセージを送信してよい。より具体的には、コンピュートエンジンCE1Aは、データ伝送機構C7の時計回り送信経路へデータ要求メッセージを送信してよい。このデータ要求メッセージは、データ伝送機構C8およびメモリバンクM1Cをアドレス指定する。データ要求メッセージを受信すると、データ伝送機構C8は、データ要求メッセージがメモリバンクM1Cをアドレス指定することを決定し、メモリバンクM1Cへデータ要求メッセージを転送する。データ要求メッセージを処理した後、メモリバンクM1Cは、データ伝送機構C8の反時計回り送信経路へデータ応答メッセージを送信してよい。このデータ応答メッセージは、データ伝送機構C7およびコンピュートエンジンCE1Aをアドレス指定する。データ応答メッセージを受信すると、データ伝送機構C7は、データ応答メッセージがコンピュートエンジンCE1Aをアドレス指定することを決定し、コンピュートエンジンCE1Aへデータ応答メッセージを転送する。
【0066】
メッセージは、通信ノードCN1を介して並べ替えリングネットワーク11の内外へ送信され得る。たとえば、スライス1のコンピュートエンジンCE1Aは、通信チャネル404を用いて、コンピューティングスライス2のメモリバンクM2Aへデータ要求メッセージを送信してよい。より具体的には、コンピュートエンジンCE1Aは、データ伝送機構D6の反時計回りの送信経路へデータ要求メッセージを送信してよい。このデータ要求メッセージは、データ伝送機構D5および通信ノードCN1(ならびにコンピューティングスライス2の通信ノードCN2およびコンピューティングスライス2内のメモリバンクM2A)をアドレス指定する。データ要求メッセージを受信すると、データ伝送機構D5は、データ要求メッセージが通信ノードCN1をアドレス指定することを決定し、通信ノードCN1へデータ要求メッセージを転送する。応答して、通信ノードCN1は、データ要求メッセージがコンピューティングスライス2内の通信ノードCN2をアドレス指定することを決定し、(第2レベルPRN相互接続21によって実装されるルート指定表を用いて)第2レベルPRN相互接続21においてデータ要求メッセージを転送する。留意すべき点として、第2レベルPRN相互接続21は、通信ノードCN1~CN6の間でメッセージをルート指定するために、第1レベルPRN相互接続11と同様のPRN構造を用いる。留意すべき点として、第2レベルPRN相互接続21の実施は、第2レベルPRN相互接続21によってサービス提供される通信ノードの異なる数により、第1レベルPRN相互接続11の実装とは異なり得る(たとえば、異なる数の通信チャネル、異なるルート指定表)。1つの実施形態によると、第2レベルPRNベース相互接続構造21は、3つの通信チャネル(すなわち、3つの双方向リングネットワーク)を含み、各通信チャネルは、6つのデータ伝送機構を含む。この実施形態において、通信ノードCN1~CN6の各々は、3つの通信チャネルの各々におけるデータ伝送機構の対応する1つに接続される。
【0067】
通信ノードCN2に関連するデータ伝送機構は、第2レベルPRN相互接続21において送信されたデータ要求メッセージを受信し、データ要求メッセージが通信ノードCN2をアドレス指定することを決定し、通信ノードCN2へデータ要求メッセージを転送する。応答して、通信ノードCN2は、データ要求メッセージがコンピューティングスライス2内のメモリバンクM2Aをアドレス指定することを決定し、(第1レベルPRN相互接続12によって実装されるルート指定表を用いて)第1レベルPRN相互接続12においてデータ要求メッセージを転送する。留意すべき点として、第1レベルPRN相互接続12は、通信ノードCN2、(コンピュートエンジンセットCE2の)コンピュートエンジンCE2A、CE2B、CE2C、CE2D、ならびに(メモリバンクセットM2の)メモリバンクM2A、M2B、M2C、およびM2Dの間でメッセージをルート指定するために第1レベルPRN相互接続11と同様のPRN構造を用いる。
【0068】
メモリバンクM2Aに関連するデータ伝送機構は、第1レベルPRN相互接続12において送信されたデータ要求メッセージを受信し、データ要求メッセージがメモリバンクM2Aをアドレス指定することを決定し、メモリバンクM2Aへデータ要求メッセージを転送する。メモリバンクM2Aは、その後、データ要求メッセージに応答してよい。たとえば、メモリバンクM2Aは、格納されたデータ値を取得し、このデータ値を、データ応答メッセージを用いてコンピュートエンジンC1Aへ返信してよい。このデータ応答メッセージは、元のデータ要求メッセージの逆経路を用いてコンピュートエンジンC1Aへ送信される。
【0069】
1つの実施形態によると、第3レベルPRNベース相互接続構造31は、3つの通信チャネル(すなわち、3つの双方向リングネットワーク)を含み、各通信チャネルは、6つのデータ伝送機構を含む。この実施形態において、通信ノードCN11~CN16の各々は、3つの通信チャネルの各々におけるデータ伝送機構の対応する1つに接続される。
【0070】
上述したフラットコンピュータアーキテクチャおよびメッセージングシステムを用いて、メッセージは、メッセージングプロトコルの変更を必要とせず、第1、第2、および第3レベルPRN相互接続構造を介して、コンピュータシステム200の様々な要素のいずれかの間で送信され得る。1つの実施形態によると、コンピュータシステム200の要素の各々は、固有の(システム)アドレスを割り当てられる。このようなシステム200の様々な要素のアドレスマッピングにより、これらの要素は、第1、第2、および第3レベルPRN相互接続構造にわたり一貫してアクセスされることが可能である。留意すべき点として、コンピュータシステム200は、コンピューティングスライス内のメモリバンク、DRAM211~214、またはシステムメモリ206によって格納されたデータのコヒーレンスを明確に確実にするものではないため、非コヒーレントなシステムである。代わりに、ユーザは、所望の方法で、これらのメモリによって格納されたデータを制御することを要求される。したがって、コンピュータシステム200は、たとえばニューラルネットワークの順方向伝搬によって実装されるモデルなどの生産者消費者実行モデルを実装するために適している。すなわち、コンピュータシステム200は、ニューラルネットワーク/機械学習アプリケーションにおいて効率的にデータを処理することができる。コンピュータシステム200の改善されたネットワークトポロジは、有利な点として、複数のチップ間でのキャッシュコヒーレンスプロトコルを必要とせず、複数のチップに広がることができる。したがってコンピュータシステム200は、容易にスケーリング可能であり、多数の異なるチップ間の通信を提供することができる。
【0071】
上述した実施形態において、第1レベル相互接続構造11、第2レベル相互接続構造21、および第3レベル相互接続構造31は全て、双方向ソースシンクロナス並べ替えリングネットワークを用いて実装される。ただし、本発明の代替実施形態において、第1レベル相互接続構造は、非PRNベースの構造を用いて実装され得る。
【0072】
図7は、本発明の代替実施形態に係るコンピュータシステム700のブロック図である。コンピュータシステム700はコンピュータシステム200と同様であるため、
図7および
図2における同様の要素は、同様の参照番号で符号付けされる。したがって、コンピュータシステム700は、複数のプロセッサチップ701~704、ホストプロセッサシステム205、システムメモリ206、システムレベル相互接続チップ210、およびDRAMデバイス211~214を含む。4つのプロセッサチップ701~704のみが
図7に示されるが、コンピュータシステム700は、他の実施形態において、他の数のプロセッサチップを含むように容易に変更され得ることが理解される。また、プロセッサチップ701のみが
図7において詳しく示されるが、プロセッサチップ702~704は、説明される実施形態において、プロセッサチップ701と同じ(または同様の)内部要素を含むことが理解される。後に詳しく説明するように、プロセッサチップ701は、プロセッサチップ201の第1レベルPRNベース相互接続構造11~14の代わりに、単純なネットワーク相互接続構造711~714を用いる。単純なネットワーク相互接続構造711~714は、たとえば、クロスバースイッチベースの相互接続構造、または単純なリングネットワークであってよい。
【0073】
図示した実施形態において、プロセッサチップ701は、第2レベル並べ替えリングネットワーク相互接続構造21に接続された4つのコンピューティングスライス71、72、73、および74を含む。4つのコンピューティングスライスが
図7に示されるが、他の実施形態において、他の数のコンピューティングスライスがプロセッサチップ701上に含まれ得ることが理解される。各コンピューティングスライスは、複数のコンピュートエンジン、複数のメモリバンク、通信ノード、および単純なネットワーク相互接続構造を含む。より具体的には、スライス71、72、73、および74は、それぞれコンピュートエンジンセットCE
1、CE
2、CE
3、およびCE
4、それぞれメモリバンクセットM
1、M
2、M
3、およびM
4、それぞれ単純なネットワーク相互接続構造711、712、713、および714、ならびにそれぞれ通信ノードCN
1、CN
2、CN
3、およびCN
4を含む。コンピュートエンジンセットCE
1、CE
2、CE
3、およびCE
4ならびにメモリバンクセットM
1、M
2、M
3、およびM
4は、
図2および
図3に関連して詳しく上述される。
【0074】
スライス71、72、73、および74の各々において、対応する単純なネットワーク相互接続構造711、712、713、および714は、対応するコンピュートエンジンセットCE1、CE2、CE3、およびCE4と、対応するメモリバンクセットM1、M2、M3、およびM4とを接続する。これにより、コンピュートエンジンの各々は、対応する単純なネットワークを用いて、同じスライス内のメモリバンクの各々にアクセスすることができる。
【0075】
単純なネットワーク相互接続構造711、712、713、および714は、対応するコンピューティングスライス71、72、73、および74内の対応する通信ノードCN1、CN2、CN3、およびCN4にも接続される。通信ノードCN1、CN2、CN3、およびCN4は、上述した方法で、第2レベルPRNベース相互接続構造21に接続される。通信ノードCN1、CN2、CN3、およびCN4は、対応する単純なネットワーク相互接続構造711、712、713、および714と、第2レベルPRNベース相互接続構造21との間でメッセージおよびデータを受け渡す。留意すべき点として、単純なネットワーク相互接続構造711、712、713、および714と、対応する通信ノードCN1、CN2、CN3、およびCN4との間で送信されるメッセージは、受信側システムと一致するプロトコルに変換される必要がある。そのような変換は、単純なネットワーク相互接続構造711~714内のインタフェース、または通信ノードCN1、CN2、CN3、およびCN4内のインタフェースによって実施され得る。このプロトコル変換は、コンピュータシステム700の動作を複雑化するが、各コンピューティングスライスにおける単純なネットワーク相互接続構造の使用を可能にし、コンピューティングスライス71~74の必要なレイアウトエリアを低減し得る。
【0076】
本発明の他の実施形態において、(上記
図7において、第1レベルPRNベース相互接続構造11~14の代わりに単純なネットワーク構造711~714が用いられたのと同様に)第3レベルPRNベース相互接続構造31の代わりに、たとえばクロスバースイッチベースの相互接続構造または単純なリングネットワークなどの単純なネットワーク相互接続構造が用いられる。
図8は、上述したように、システムレベル相互接続チップ810において第3レベルPRNベース相互接続構造31の代わりに単純なネットワーク相互接続構造81が用いられる、この代替実施形態に係るコンピュータシステム800のブロック図である。たとえばクロスバースイッチベースの相互接続構造または単純なリングネットワークを含み得る単純なネットワーク相互接続構造81は、通信ノードCN
11~CN
16の間の接続を提供する。留意すべき点として、プロセッサチップ701~704、ホストプロセッサシステム205、およびシステムメモリ206と、対応する通信ノードCN
11、CN
12、CN
13、CN
14、CN
15、およびCN
16との間で送信されるメッセージは、受信側システムと一致するプロトコルに変換される必要がある。そのような変換は、単純なネットワーク相互接続構造81内のインタフェース、または通信ノードCN
11~CN
16内のインタフェースによって実施され得る。このプロトコル変換は、コンピュータシステム800の動作を複雑化するが、システムレベル相互接続チップ810における単純なネットワーク相互接続構造の使用を可能にする。
【0077】
システムレベル相互接続チップ810の単純なネットワーク相互接続構造81は、単純なネットワーク相互接続構造711~713を有するコンピューティングスライス71~74と組み合わせて示されるが、システムレベル相互接続チップ810の単純なネットワーク相互接続構造81は、
図2によって示したように、第1レベルPRNベース相互接続構造11~14を有するコンピューティングスライス1~4と組み合わせて用いられてもよいことが理解される。
【0078】
双方向ソースシンクロナス並べ替えリングネットワークとともに第1および第3レベル相互接続構造が実装される(
図2A~2B)べきか、たとえばクロスバースイッチまたは単純なリングネットワークなどの単純なネットワーク相互接続構造が実装される(
図7~8)べきかを決定するために、いくつかの要因が用いられ得る。並べ替えリングネットワークは、単純な単一リングネットワークよりも良好な性能を提供する(が、より大きなレイアウトエリアを必要とする)。並べ替えリングネットワークはまた、一般に、クロスバースイッチよりも良好な性能を提供する(かつ、より大きなレイアウトエリアを必要とし得る)。一般に、相互接続構造によって接続される通信ノードが多いほど、単一リングネットワークまたはクロスバースイッチではなく並べ替えリングネットワークを用いることが(レイアウトエリアおよび性能の観点で)効率的になる。1つの実施形態によると、接続される通信ノードの数が4以上である場合、並べ替えリングネットワークが用いられる。
【0079】
本発明は、いくつかの実施形態に関して説明されたが、本発明は、開示された実施形態に限定されることなく、当業者には明らかである様々な変更が可能であることが理解される。したがって、本発明は、以下の特許請求の範囲によってのみ限定される。