次の図はDPUのPEアレイの階層構造を示したものである。DPUの基本素子はPEと呼ぶ処理ユニットであり、PEには命令メモリとデータメモリが付いている。次の階層はクラスタと呼ぶ16個のPEと8個のアリスメティックユニットを含むものである。クラスタは4個のPEからなる4個のクワッドからなり、クワッドの中の4個のPEは密に直結されている。一方、クワッド間は2次元メッシュネットワークで接続されている。

図の左下に示すように、PEは32×32のアレイ上に配置されており、その内部は24個の領域に区分されている。この領域はCompute Machineと呼ばれ、それぞれがAXI4バスとのインタフェースを持っている。このAXIバスを経由して、Compute MachineはメモリやI/Oにアクセスすることができる。

そして、DPUチップは、32×32のPEアレイを16個集積しており、全体では16K個のPEが搭載されている。

DPUチップのPEアレイの階層構造。DPUチップにはこのPEアレイが16個搭載されている

次の図はPEの内部構造を示すものである。PEは256語の命令メモリと1KBのデータメモリを持っている。

PEは通常は低電力のアイドル状態になっており、入力の信号が到着すると命令の読出しを行って動作を開始して、処理が終わると出力を出すというデータフロー型の処理を行う。

PEは命令メモリから命令を読み出して実行するが、PEの命令実行には分岐は無く、単純に0番地の命令から順番に実行して行く。ただし、命令にはプレディケートがあり、実行をスキップすることはできるようである。

アリスメティックユニットは、自分のアキュムレータの出力Aと同一クワッドにある他の3つのPEのアキュムレータ(b、c、d)の内の1つを入力として選択して演算を行う。そして、次のサイクル以降に同一クワッド以外のPEからのデータを受け取って演算を行うという方法で、最初の演算と3番目の入力データの転送時間をオーバラップさせることができる。

アリスメティックユニットのクロックは6.7GHzであり、積和演算/クロックとすると、積和演算は2演算であるので、8192個のアリスメティックユニットのピーク演算性能は219.5TeraOps/sとなる。このDPUチップを16個使用すると、3.5PetaOpsという計算になるのであるが、2.9PetaOps/sという発表であるので、なにか完全には連続して演算できない制約があり、それを織り込んだ発表性能値になっていると思われる。

通常、データフローマシンはトークンベースで、トークンが来るまで次の命令は分からないが、DPUは命令ごとのデータフローでなく、その上位の粗い粒度のエージェントへのデータ到着レベルのデータフロー制御であり、エージェントの機能を実現するPE命令のプリフェッチを行うことができ、高バンド幅の命令供給ができる。PEは、通常は低電力のスリープ状態になっているが、データが到着するとエージェント(とそれを実行する何個かのクラスタ)がWake upされて動作を始めるようになっている。

アリスメティックユニットがPEとは別に作られているのは、アリスメティックユニットでの演算とPEでのメモリアクセスを並列に実行できるようにして、性能を向上させるためである。

メモリはパイプラン化したシングルポートメモリで、コンパイラがスケジュールしたスタティックな調停に従ってPEやスイッチがアクセスすることができる。アリスメティックユニットは、パイプライン化されたMAC(Multiply Accumulate)ユニットを持っている。

大規模並列LSIではクロックジッタやクロックスキューがクロックの上限を制限してしまうので、DPUでは、グローバルのクロック分配は行っていない。いわゆるGALS(Globally Asynchronous Locally Synchronous)というクロック方式を使い、ローカルな同期回路でクラスタ間のローカルな通信が正しく行えることを保証している。2012年に作った28nmプロセスのテストチップで10GHzを超えるところまで、回路が安定に動作することを確認しているという。

他のGALSでは通信のためにFIFOを使っているが、Wave ComputingのCGRAの場合、クラスタ間の信号伝送はFIFOなどを使わなくとも6.7GHzで動作するという。

DPUのチップ内ネットワークのバイセクションバンド幅は8.6TB/sとなっており、この回路については別途、発表する予定である。また、全部のPEが同時に命令0を実行するように、ブートストラップするやり方についても今後開示する予定であるという。

PEのブロック図。命令RAM、データRAM、ローカルレジスタとアリスメティックユニット、アキュムレータとデータを通過させるMUX、DEMUXなどからなる