このページの本文へ

前へ 1 2 3 次へ

ロードマップでわかる!当世プロセッサー事情 第78回

マルチコアCPUのキャッシュで問題となるコヒーレンシと解決策

2010年11月22日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/)

  • この記事をはてなブックマークに追加
  • 本文印刷

スヌープフィルタは3次キャッシュで代用されるように

 もっとも、最初に実装されたIntel 5000Xでは、まだ実装方法に問題があったようだ。「実際にベンチマークテストをしてみたところ、スヌープフィルタを実装しない『Intel 5000P』の方が高速だった。そのためIntel 5000Xを搭載したシステムでも、スヌープフィルタを無効にした」というシステムベンダーのレポートがあったほどである。

 しかし、これはあくまでも実装上の問題であり、スヌープフィルタ方式自体が否定されたわけではない。次に登場した「Intel 7300」チップセット(図7)では、Xeon MP向けに4本のFSBに加えて、64MBものスヌープフィルタを搭載するお化けに進化している。

Intel 7300の構成

図7 Intel 7300の構成

 また、AMDも6コアOpteronで、「HT Assist」という名前でこのスヌープフィルタに相当するものを実装している。ただしこちらはオプション扱いで、3次キャッシュのうち1MB分をスヌープフィルタ機能に割り当てるというものである。大規模システムではこうした形で、スヌーピングそのもののトラフィックを削減しないといけないわけだ。

 現状ではこうしたスヌーピングにまつわる問題は、大規模システムだけで済んでいる。だが、さらに多数のCPUコアを搭載する製品が増えつつある状況では、シングルダイのチップ内部であっても、CPUコア間のスヌーピングが問題になると予測されている。特にインテルが「メニイコア」と呼ぶ、数十コアを集積するような世代になると、これが馬鹿にならない。

 インテルではこうした世代のCPUには、「NCID」(Non-inclusive Cache※1、Inclusive Directory)と呼ばれる方法が最適であるという研究を、2007年に開かれた半導体業界のイベント「MicroProcessor Forum」で発表している。

※1 Inclusive Cache(包括的キャッシュ)とExclusive Cache(排他的キャッシュ)の中間的な方法(関連記事)。3次キャッシュは部分的に2次キャッシュのコピーを持つ。

キャッシュ方法の研究を説明したスライド

各々独立した2次キャッシュを持つ複数のコアが、さらに共有3次キャッシュを持つケースにおける、キャッシュ方法の研究を説明したスライド

 この方式では、キャッシュのデータは共有しないが、タグ情報は「ディレクトリ」という形で共有させて持つ。ようするに、チップセット内にあったスヌープフィルタの機能を、ディレクトリと称して共有3次キャッシュ内に持たせるわけだ。ほかのCPUからスヌープ情報が来ると、ディレクトリを参照して必要なCPUコアのみスヌープ動作させる。これにより、効率的な処理を可能にするという方法である。

 もっとも、2007年の発表時はあくまで研究レベルの話で、すぐに製品に実装されるというものではなかった。しかし、2010年3月に登場した8コアの「Nehalem-EX」こと「Xeon 7500」シリーズは、3次キャッシュを使ってスヌープフィルタの動作を行なえる。恐らく2011年に登場する10コアの「Westmere-EX」も、同様の機能を持つことになるだろう。

 今後、デスクトップパソコン向けCPUが何コア程度まで増えるのかは不明だが、現行の6コア品に続いて8コア品が投入されるならば、ここにもスヌープフィルタの機能が搭載されるかもしれない。

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン