Memory Controller

Nehalem MAの、外部から見て一番判りやすい特徴がこれだろう。従来North Bridge(というか、Intelの用語ならばMCH/GMCH)に搭載されていたMemory Controllerを、Nehalem MAでは遂にCPU側に移す事になった。

もっともこれ、プロセッサの性能向上を考える上では避けて通れない道でもある。Memory Controllerを統合することのメリット・デメリットを並べると、

メリット:

  • Memory Controllerが統合されることで、Memory AccessのLatencyを大幅に削減できる
  • FSBがボトルネックになってメモリ性能が出ない、なんてケースが理論上無くなる
  • CPUの数に連動してMemory BandwidthとMemory Capacityを増やせる

デメリット:

  • CPUパッケージ側にMemory I/Fの信号ピンが移る事になり、パッケージが巨大化する
  • メモリアーキテクチャが変更された場合、CPU側にも変更が必要
  • UMA方式の統合グラフィックを使う場合に、メモリタイミングの設計が難しい
  • FSBを使ったマルチCPU構成がとれなくなる

といったあたりになる。

実のところ、いまどきMemory ControllerをCPU側に統合していない製品の方が珍しい、というのが正直なところだ。ハイエンドで言えばIBMのPOWERはPOWER4でメモリコントローラの機能をCPUの外部L3の外側に移し、MCM構成をとることで事実上CPUパッケージ(というか、CPU Module)と一体化しているし、SunのUltraSPARC系列や富士通のSPARC64など、古いところでは旧DECのAlphaのEV7(21364)もMemory Controllerを統合している。MIPSの場合、MIPS32/64共にMemory Controllerそのものは含まれて居ないが、実際にMIPS32/64コアを使ったSoCでMemory Controllerを搭載しないケースは今まで見たことが無い。PowerPC系列は、Appleに採用されていたPowerPC601や、これに続くG2~G5までは何れもMemory Controllerが外付けであったが、その後に登場した製品(例えばSCE向けのCellやWii向けのBroadway、XBox360向けのPXコア、あるいはHPC向けのBlueGeneファミリー)は何れもMemory Controllerが統合されている。

もっと言えば、様々な組み込み用途向けのMPU/MCUは、Memory Controllerを統合するのが当然であり、むしろ外付けになっているPC向けプロセッサの方が珍しいと言っても過言ではない。

x86系に限っても、例えば1998年に旧Cyrixが発表したM3は、図11の様な構成となっていた。CPUコアは同社のM2までに使われていたものの延長にあるが(つまり2-wayのIn-order SuperScaler)、ここにL2キャッシュと2D/3Dグラフィック、2chのDirect RDRAMなどを集積したものである。今から見ると、GraphicsがL2にもアクセス可能(つまりL2はCPUとGPUで共有)といった不思議な構成ではあるが、Direct RDRAMを統合することで高性能と低コストの両立を狙ったものだった。似たものに、やはりIntelが開発しつつもお蔵入りとなったTimnaがある。こちらはKatmaiコアにGraphics、そしてやはりDirect RDRAMを統合することで低コストと高性能を狙ったCPUであった。こうした未完成品だけでなく、例えばTransmetaのEfficeonはやはりCPU側にMemory Controllerを統合している。これに続いたのがAMDのK8コアであり、なので「やっとIntelも遅まきながらMemory Controller統合に動いた」と考えたほうが正しいであろう。