TileraのTILE64

次の図に示すように、TILE64のコアは、P0、P1、P2の3個の演算パイプラインを持ち、64bit長の命令語の中に3つの演算器の制御を含んだVLIW(Very Long Instruction Word)方式である。TeraFlopsプロトタイプとは異なり、TILE64の演算器は整数演算であり、32bitデータだけでなく、16bit、8bitのPackedデータとして並列演算を行うこともできる。また、通常の算術演算に加えてビデオ処理や通信処理用の命令が追加し、これらの処理の性能を改善しているという。

Agarwal教授がKILL(Kill if Less than Liner)ルールと呼ぶ、チップ面積の増加と性能の増加を比較して、性能増加のパーセントの低い機構は採用しないという方針で、コアの絶対性能ではなく、面積あたりの性能を優先して作ったのがこのサイズのコアである。

TILE64のタイル。(Tileraの発表資料をもとに作成)

そして、IntelのコアとTileraのコアの大きな違いは、浮動小数点と整数というデータタイプの違いだけではない。Intelの80コアTeraFlopsプロトタイプはOSを動かすことは出来ないと思われるが、Tileraのコアは命令、データともに8KBの1次キャッシュと64KBの2次キャッシュを持ち、メモリ管理や割り込み処理機構などを備え、Linuxが動くという点が大きく異なる。

また、1次、2次キャッシュは各プロセサコアの専用キャッシュであるが、64KBの2次キャッシュはインタコネクトを通してチップ全体でキャッシュコヒーレントな4MBの3次キャッシュとしても動作するという。このような方式により、小容量であるが高速のローカルキャッシュと大容量の3次キャッシュを実現しているという。

TILE64は750MHzクロックの動作で、32ビットデータの場合には144Bopsと発表されており、チップ全体で1サイクルに192演算で、各コアは1サイクルで3演算を行う。なお、TILE64のクロックは600MHz~1.0GHzと発表され、タイル1個の消費電力は、1.0GHzの動作で300mWと発表された。

TILE64のルータは各方向に32ビット×2の接続を5チャンネルもっており、クロックあたりのバンド幅という点では、Intelの80コアTeraFlopsプロトタイプの5倍の能力を持たせている。また、ルータの通過レーテンシは1サイクルと高速である。そして、この5チャンネルは転送の用途ごとに区別して使われ、IDNはシステムとIO関係の通信を担当し、MDNはキャッシュミスやDMAに使用される。そして、TDNはタイル間のメモリアクセスに使用され、UDNとSDNはユーザのデータ転送に使用する。

さらに、このメッシュインタコネクトの一部の接続を切ることにより、チップ全体を複数の領域に分割し、それぞれの領域で別OSを動かすと言うような使い方もできる。

TILE64の構造。(出典:Tilera)

この図に示すように、TILE64は8×8のアレイ状にコアを集積しているだけでなく、その上下の辺には合計4個のDDR2メモリコントローラを搭載し、左辺には2チャンネルのPCI-Expressと、UART、HPI、JTAG、I2C、SPIポート、そしてFlexible IOポートを搭載している。また、右辺にはXAUIを2チャンネルと、Gbit Ethernetを2チャンネル、さらにFlexible IOポートを備えている。このように各種のインタフェースを備えているので、DDR2 DRAMをつけると、このチップだけで殆どシステムが出来てしまう。

当初のターゲット市場は通信分野とメディア処理であり、通信処理の性能として、リアルタイムにパケット分析を行いネットワークへの侵入を検出するSNORTプログラムにおいて10Gbpsのストリームを処理することができ、メディア処理では、20Mbpsの1080pのH.264ストリームのエンコードができると発表された。