<<前回へ<<

 「京」は、大規模並列環境でプログラムを高速に実行するために、様々な新しい技術を取り入れている。「京」のハードウエアの中で最も重要な構成要素であるCPUとネットワークについて解説しよう。

 「京」のCPUは富士通が設計・製造した「SPARC64 VIIIfx」。このCPUは、45n(ナノ)mの半導体プロセス技術で製造した、8コアのスーパースカラー・マルチコアプロセッサで、チップ当たり128GFLOPSの性能を持つ。

 高速化のため、このCPUは様々な新機能を取り入れている。SIMD*6と呼ばれる演算機構や、コア当たり256本の浮動小数点レジスタ、6Mバイト(12way)の共有2次キャッシュ、キャッシュを効率良く利用するための「セクターキャッシュ機構」、コア間の同期を高速に実行するための「バリア同期機構」などだ(図5)。

*6 SIMD(Single Instruction Multiple Data)とは1回の命令で、複数のデータに対して同時に同じ処理を実行できる機構のこと。SPARC64 VIIIfxでは、コア当たり2つのSIMD機構を持ち、チップ全体で積和演算を32個同時に実行できる。
図5 SPARC64 VIIIfxの仕様と構成
[画像のクリックで拡大表示]

 セクターキャッシュ機構とは、ユーザーがアプリケーションからキャッシュメモリーを制御できる機構である。一般的なCPUではハードウエアがキャッシュメモリーを制御し、ユーザーは直接コントロールできない。そのため、ユーザーが意図しないデータアクセスによって、繰り返し使われるデータがキャッシュメモリー上から追い出されるという問題が起こる場合がある。

 これを解決するための1つの手段として、SPARC64 VIIIfxでは、キャッシュメモリーを2つの領域(セクター)に分割し、データごとにキャッシュする領域をユーザーが選択できる機構を設けた(図6)。

図6 セクターキャッシュの利用イメージ
[画像のクリックで拡大表示]

 例えば、セクター0には1度しか使わないデータを、セクター1には繰り返し使うデータをキャッシュするように指定する。繰り返し使うデータは、キャッシュから追い出されにくくなる。このセクターキャッシュ機構は、コンパイラが自動的に活用するほか、ユーザーがソースコード中に指示行を記述して利用することもできる。

 バリア同期機構は、複数のコアで並列実行する処理の終了を待ち合わせるためのものだ。SPARC64 VIIIfxでは、バリア同期をハードウエアのレジスタを使うことで高速化している。ソフトウエアでメモリー上のデータをチェックして同期するよりも数倍性能が高く、コア数が増えても処理時間が増えない。

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら