PR
図1 米Intel Corp, Principal Research Scientist, Corporate Technology GroupのRavi Iyer氏
図1 米Intel Corp, Principal Research Scientist, Corporate Technology GroupのRavi Iyer氏
[画像のクリックで拡大表示]
図2 数コアをまとめたグループごとに置く2次キャッシュと,すべてのCPUコアで共有する3次キャッシュという階層化が有効
図2 数コアをまとめたグループごとに置く2次キャッシュと,すべてのCPUコアで共有する3次キャッシュという階層化が有効
[画像のクリックで拡大表示]
図3 3次キャッシュは,2次キャッシュのデータの複製を部分的にとどめ,補完的に使うようにする。併せて,2次キャッシュに格納したデータのアドレスを格納するディレクトリ情報の領域を用意する
図3 3次キャッシュは,2次キャッシュのデータの複製を部分的にとどめ,補完的に使うようにする。併せて,2次キャッシュに格納したデータのアドレスを格納するディレクトリ情報の領域を用意する
[画像のクリックで拡大表示]
図4 大容量で帯域幅が広いDRAMを4次キャッシュとして使う
図4 大容量で帯域幅が広いDRAMを4次キャッシュとして使う
[画像のクリックで拡大表示]

 米Intel Corp.のPrincipal Research Scientist, Corporate Technology GroupであるRavi Iyer氏は,「Microprocessor Forum 2007」(米国カリフォルニア州サンノゼ,2007年5月21~23日)で「Re-inventing Multi-Core Cache & Memory」と題した講演を行った(図1)。多数のCPUコアを搭載するマルチコア型マイクロプロセサでは従来とは異なる考え方のキャッシュや主記憶の構成が,処理のスループット向上に必要であるとした。具体的には「数個のCPUコアごとの共有2次キャッシュ」や「DRAMを使った4次キャッシュ」を配置する構成が,80個のCPUコアを集積したマイクロプロセサで有効であるとする見解を示した。

 Intel社は,80個のCPUコアを1チップ上に集積したマイクロプロセサを試作し,TFLOPS級の演算性能を備えたマイクロプロセサによる「Tera-Scale Computing」の研究プロジェクトを進めている(関連記事)。Iyer氏は講演の中で,Tera-Scale Computingの代表的な形態として,(1)検索エンジンや企業情報システムなどのサーバー機に代表される,一つのOSが管理する多数のスレッドを同時に実行するシステム,(2)複数のサーバー機を1台にまとめた,仮想マシンの上で多数のOSが動作するシステム,の二つを提示。このうち前者では,共有キャッシュを階層的にすることや,3次キャッシュでの2次キャッシュのデータの複製に「Non-inclusive Cache, Inclusive Directory(NCIC)」と呼ぶ考え方の導入や,DRAMを使った4次キャッシュを配置などが有効であるとした。

 階層的な共有キャッシュとは,それぞれのCPUコアが備える1次キャッシュと,すべてのCPUコアで共有する3次キャッシュの間に,数個のCPUコアごとの共有2次キャッシュを置くという考え方である(図2)。例えば4コアごとに2次キャッシュを置く場合,各コアに256Kバイトの1次キャッシュを置くのと4コアに対して512Kバイトの2次キャッシュを置くのが同等の性能であり,面積の利用効率が2倍になるとした。

 NCIDは,データを複製する回数を減らすとともに,3次キャッシュ内のデータの格納場所の自由度を高めることや,コア数が増えたときにスヌープ処理の時間が長くならないようにすることが狙いである。3次キャッシュは,2次キャッシュのデータの複製を部分的にとどめる代わりに,どのアドレスのデータを2次キャッシュに格納したかというディレクトリ情報を持つようにする(図3)

 マルチコア型マイクロプロセサと主記憶の間の帯域幅は,CPUコアの数が32個になった時点で100Gバイト/秒以上が必要になるとし,そこで有効になるのがDRAMを使った4次キャッシュであるとした。DRAMは,読み出しや書き込みのレイテンシは低いものの,複数チップを1パッケージに封止して大容量化したり,マイクロプロセサのチップに積層することで帯域幅を広げたりできる。そこで,4次キャッシュとして大容量のDRAMを置くとキャッシュ・ミスを減らせることが確認できたとした(図4)