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統合に動いた」と考えたほうが正しいであろう。