PR
チップのレイアウトと寸法
チップのレイアウトと寸法
[画像のクリックで拡大表示]
各CPUコア中のブロック図
各CPUコア中のブロック図
[画像のクリックで拡大表示]

 米Intel Corp.は2007年2月12日,ISSCC 2007で講演し,同社が開発した80個のCPUコアを備えるマイクロプロセサの詳細な構造と,性能の実測値などを発表した。現時点で「完全に動作する」(発表者で同社のSriram Vangal氏)。2次元の構成ながら,アーキテクチャやデータ処理の方法,CPUコア間のデータの受け渡し方法に至るまで,最近のスカラー型のスーパーコンピュータに用いられるアーキテクチャや利用法に非常に似たものとなっている。

 Intel社は2006年9月,2007年2月11日と少しずつこのチップに関する情報を明らかにしている(関連記事1関連記事2)。今回ISSCCで講演したのは,同チップの演算器の構造など詳細な設計と主な動作原理,および温度などある動作条件の下で実測した演算性能についてである。

 チップ全体の構造は,80個のCPUコアをスイッチ回路でメッシュ状に接続するもの。独自に定義したビット配列に基づく「パケット」をMPI(message passing interface)と呼ぶ,超並列のスーパーコンピュータでよく用いるライブラリを用いてCPUコア間でやり取りすることで,データを転送する。CPUコア間の伝送帯域は,最大32Gバイト/秒。スイッチである「ルーター」自身は最大80Gバイト/秒までの伝送容量がある。

 オンチップ・メモリとしては,80個ある「タイル」中にデータ用のメモリが2Kバイト,命令用メモリが3Kバイト利用できる。レジスタには6個の読み出し用と4個の書き込み用ポートがあり,浮動小数点演算ユニットの利用に加えて,データ用メモリへのデータのロード命令やストア命令,他のCPUコアへのパケットの転送や受信を同時に行える。CPUコアは,複数の命令を96ビットの長さにまとめたVLIW(very long instruction word)を用いて,1サイクルで8回の演算を処理できる。

 演算ユニットは9段のパイプラインになっており,初めの5段が乗算,後の4段が加算を担当する。つまり演算ユニット1個で1サイクル2回の浮動小数点計算を行える。1個のCPUコアにはこの演算ユニットが2個備わっているため,4GHz動作の場合の演算性能は,CPUコア1個当たりで2×2×4GHz=16GFLOPSとなる。チップ全体では,16GFLOPS×80=1.28TFLOPSになる。

80コアでもPLLは1個

 80個のCPUコアを備えるにもかかわらず,クロックを分配する源となるPLLは1個しかなく,動作周波数はすべてのCPUコアで同じとなる。この点は米Advanced Micro Devices社が今回発表したクアッド・コア型マイクロプロセサが各CPUコアにそれぞれPLLを配置することで,動作周波数をコアごとに変えられるようにしたのとは対照的である。

 Intel社は消費電力を減らすことを目的に,各CPUコア内にクロックのオン/オフが可能なゲーティング・ポイントを6カ所設けた。これにより,スリープ・モードとアクティブ・モードを各タイル中21の区画で独立に切り替える「細粒度クロック・ゲーティング」機能を実現している。

 性能の計測には,このチップを1248端子のLGAで封止したものを用いた。計測結果は例えば,あるアプリケーション・ソフトウエアをチップ温度80℃で動作させた場合,単位消費電力当たりの演算性能が最大で10.5GFLOPS/Wを記録したという。80個のCPUコアをすべて動作させている時のリーク電流は,消費電力全体の9.6~15.7%である。

 本来このチップと張り合わせて用いるはずの「3D積層メモリ」がないことについて,Vangal氏は「3D積層メモリは動作に必須ではない。ただし,そのメモリがないと扱えるデータ量に限界がある。例えば,1000×1000の行列の計算などは今のままでは難しい」と述べた。