MAGAZINE ARTICLES
このページをホームページに登録Microprocessor Forum 2007特別リポート
マルチコア時代の牽引役は
最新メモリーアクセス技術
[2007年07月号]
2007年5月21日~23日、米国サンノゼにおいて「Microprocessor Forum 2007」が開催された。フォーラム全体を通じて見えてきたのは、マルチコアプロセッサの普及が進む中、そのメリットを追求するために、各企業がメモリーアクセス技術にポイントを置いて開発を行っていることだ。
マルチコアが抱える課題
消費電力の問題と微細化の進展という2つの背景から、クロック周波数を抑えて消費電力を削減しつつ、プロセッコアサの数を増やすことでパフォーマンスを向上させる手法がトレンドとなった。これが、マルチコアプロセッサが主流となった理由である。
しかし、マルチコアプロセッサのメリットは、単に複数のコアを集積すれば得られるというわけではない。処理の効率化を図るためには、演算能力に見合った高いメモリー帯域(データの転送レート)と遅延の少ないアクセス速度を実現する必要がある。Microprocessor Forum 2007では、このテーマが焦点となった。
メモリーアクセスが効率化の要
米Intel社は、テラフロップス(テラFLOPS:1秒間に1兆回の浮動小数点数演算)規模の演算能力を備える「Tera-scale Research Processor(TRP)」についての講演を行った。その中心にあったのは、マルチコアプロセッサにおけるキャッシュメモリーの在り方だ。
TRPは、80個のコアを1パッケージに集積したプロセッサである。タイルと呼ばれる個々のコアは、2Kバイトのデータメモリーと3Kバイトの命令メモリー、2個の浮動小数点演算ユニット、内部接続用のクロスバールーターを備える。このように、個々のコアは、少ないメモリー容量しか備えていないが、それぞれのコアから個別にアクセス可能なSRAMメモリーを別チップとして積層することによってキャッシュメモリーの容量を確保する。このキャッシュメモリーとプロセッサの接続は、図1のようなオンダイコネクトとする。それにより、高いメモリー帯域と小さいアクセス遅延を実現する。
もちろん、図1の工夫以外にも、メモリーアクセスに関する多くの新技術の開発が行われている。TRPのように、80個にも及ぶ多数のコアが動作する場合には何が必要になるのか。同社は、以下の4つの技術を提案した。
TRPは、80個のコアを1パッケージに集積したプロセッサである。タイルと呼ばれる個々のコアは、2Kバイトのデータメモリーと3Kバイトの命令メモリー、2個の浮動小数点演算ユニット、内部接続用のクロスバールーターを備える。このように、個々のコアは、少ないメモリー容量しか備えていないが、それぞれのコアから個別にアクセス可能なSRAMメモリーを別チップとして積層することによってキャッシュメモリーの容量を確保する。このキャッシュメモリーとプロセッサの接続は、図1のようなオンダイコネクトとする。それにより、高いメモリー帯域と小さいアクセス遅延を実現する。
もちろん、図1の工夫以外にも、メモリーアクセスに関する多くの新技術の開発が行われている。TRPのように、80個にも及ぶ多数のコアが動作する場合には何が必要になるのか。同社は、以下の4つの技術を提案した。
図1 TRPとメモリーを積層するスタック構造
TRPでは、キャッシュメモリーとプロセッサチップの接続にスタック構造の採用が考えられている。
●階層メモリー構造
Intel社は、1つの巨大なメモリーを用いるのではなく、用途に応じて細分化されたメモリー構造を用意する手法を検討している。この階層メモリーは、個々のコアが備える16Kバイト~64KバイトのL1キャッシュメモリー、関連する処理を行う数個のコア間で共有される256Kバイト~1Mバイト程度のL2キャッシュメモリー、すべてのコア間で共有される8Mバイト~32Mバイト程度のL3キャッシュメモリーで構成される。
複数のコアでスレッドを処理する場合、コア間でキャッシュの複製処理を行う必要がある。L2キャッシュメモリーを共有することにより、この複製処理を削減することができる。また、個々のコアにL2キャッシュを備えるよりも面積効率を高められる。
●NCIDの採用
NCID(non-inclusive cash, inclusive directory)は、L2キャッシュメモリーとL3キャッシュメモリーの間に用いる技術である。NCIDを利用する場合、通常であればL3キャッシュメモリーに置くべきL2キャッシュメモリーのデータを保存しない。その代わりに、L2キャッシュメモリーが外部メモリーのどのアドレスから複製されたのかを表すディレクトリ情報をL3キャッシュメモリーに保存する。ほかのコアがキャッシュしているメモリーを読み出したい場合には、そのディレクトリ情報を使ってスヌープフィルタ処理を行うことが可能だ。
NCIDを用いることの利点は、L2キャッシュメモリーの情報が書き換えられてもL3キャッシュメモリーでそれと同じ処理をする必要がないことだ。これにより、無駄にメモリーアクセスが発生するのを避けることができる。
●L4キャッシュメモリーの内蔵
3つ目の工夫は、パッケージ内に配置されたDRAMベースのL4キャッシュメモリーである。3Dスタック、あるいはマルチチップパッケージ(MCP:multi chip package)により、1つのパッケージ内にL4キャッシュメモリーとしてDRAMを配置する。これにより、高いメモリー帯域を実現し、アクセス遅延を回避することができるというメリットが得られる。
●QoSの導入
もう1つの工夫は、キャッシュメモリーへのQoS(quality of service)の導入である。これは、例えば複数の仮想マシンを1つのプロセッサ上で動作させる場合に、優先度の高いアプリケーションに対してより大きなサイズのキャッシュメモリーを動的に割り当てたりするというもの。優先度の低いアプリケーションが大きなキャッシュメモリーを消費することで、優先度の高いアプリケーションの処理が遅れるのを避けることができる。結果として、キャッシュメモリーリソースの有効活用が実現される。
Intel社は、1つの巨大なメモリーを用いるのではなく、用途に応じて細分化されたメモリー構造を用意する手法を検討している。この階層メモリーは、個々のコアが備える16Kバイト~64KバイトのL1キャッシュメモリー、関連する処理を行う数個のコア間で共有される256Kバイト~1Mバイト程度のL2キャッシュメモリー、すべてのコア間で共有される8Mバイト~32Mバイト程度のL3キャッシュメモリーで構成される。
複数のコアでスレッドを処理する場合、コア間でキャッシュの複製処理を行う必要がある。L2キャッシュメモリーを共有することにより、この複製処理を削減することができる。また、個々のコアにL2キャッシュを備えるよりも面積効率を高められる。
●NCIDの採用
NCID(non-inclusive cash, inclusive directory)は、L2キャッシュメモリーとL3キャッシュメモリーの間に用いる技術である。NCIDを利用する場合、通常であればL3キャッシュメモリーに置くべきL2キャッシュメモリーのデータを保存しない。その代わりに、L2キャッシュメモリーが外部メモリーのどのアドレスから複製されたのかを表すディレクトリ情報をL3キャッシュメモリーに保存する。ほかのコアがキャッシュしているメモリーを読み出したい場合には、そのディレクトリ情報を使ってスヌープフィルタ処理を行うことが可能だ。
NCIDを用いることの利点は、L2キャッシュメモリーの情報が書き換えられてもL3キャッシュメモリーでそれと同じ処理をする必要がないことだ。これにより、無駄にメモリーアクセスが発生するのを避けることができる。
●L4キャッシュメモリーの内蔵
3つ目の工夫は、パッケージ内に配置されたDRAMベースのL4キャッシュメモリーである。3Dスタック、あるいはマルチチップパッケージ(MCP:multi chip package)により、1つのパッケージ内にL4キャッシュメモリーとしてDRAMを配置する。これにより、高いメモリー帯域を実現し、アクセス遅延を回避することができるというメリットが得られる。
●QoSの導入
もう1つの工夫は、キャッシュメモリーへのQoS(quality of service)の導入である。これは、例えば複数の仮想マシンを1つのプロセッサ上で動作させる場合に、優先度の高いアプリケーションに対してより大きなサイズのキャッシュメモリーを動的に割り当てたりするというもの。優先度の低いアプリケーションが大きなキャッシュメモリーを消費することで、優先度の高いアプリケーションの処理が遅れるのを避けることができる。結果として、キャッシュメモリーリソースの有効活用が実現される。
Sponsor Links
Partner Solutions
Event
-
品質向上セミナー
『開発上流で品質を確保する手法と事例』
2008年12月11日ー2008年12月11日
UDX GALLERY -
第1回 アナログセミナー
『アナログICを選ぶ、使う』
2008年12月03日ー2008年12月03日
東京コンファレンスセンター・品川












