整合内存控制器(integrated memory controller,IMC)是英特尔在其最新的Nehalem架构处理器中新加入的一种快速通道互联技术,这也是Nehalem架构处理器全新采用的直连架构后的产物。它使CPU到内存的路径更短,大幅度降低了内存的延迟,同时每一个CPU都具有自己专有的内存带宽,这一点在数据库应用中表现非常显著,数据库应用对存储器的延迟很敏感,而对于普通用户来说,在使用大型软件和3D游戏时,其数据加载时间将更短,打开大型软件和3D游戏时的加载速度将更快,告别长时间的等待。

外文名

integrated memory controller

产生背景

内存控制器(MemoryController)是计算机系统内部控制内存并且通过内存控制器使内存与CPU之间交换数据的重要组成部分。内存控制器决定了计算机系统所能使用的最大内存容量、内存BANK数、内存类型和速度、内存颗粒数据深度和数据宽度等等重要参数,也就是说决定了计算机系统的内存性能,从而也对计算机系统的整体性能产生较大影响。

传统的计算机系统其内存控制器位于主板芯片组的北桥芯片内部,CPU要和内存进行数据交换,需要经过“CPU--北桥--内存--北桥--CPU”五个步骤,在此模式下数据经由多级传输,数据延迟显然比较大从而影响计算机系统的整体性能;而AMD的K8系列CPU(包括Socket754/939/940等接口的各种处理器)内部则整合了内存控制器,CPU与内存之间的数据交换过程就简化为“CPU--内存--CPU”三个步骤,省略了两个步骤,与传统的内存控制器方案相比显然具有更低的数据延迟,这有助于提高计算机系统的整体性能。

CPU内部整合内存控制器的优点,就是可以有效控制内存控制器工作在与CPU核心同样的频率上,而且由于内存与CPU之间的数据交换无需经过北桥,可以有效降低传输延迟。打个比方,这就如同将货物仓库直接搬到了加工车间旁边,大大减少了原材料和制成品在货物仓库和加工车间之间往返运输所需要的时间,极大地提高了生产效率。这样一来系统的整体性能也得到了提升。

CPU内部整合内存控制器的最大缺点,就是对内存的适应性比较差,灵活性比较差,只能使用特定类型的内存,而且对内存的容量和速度也有限制,要支持新类型的内存就必须更新CPU内部整合的内存控制器,也就是说必须更换新的CPU;例如AMD的K8系列CPU目前就只能支持DDR,而不能支持更高速的DDR2。而传统方案的内存控制器由于位于主板芯片组的北桥芯片内部,就没有这方面的问题,只需要更换主板,甚至不更换主板也能使用不同类型的内存,例如Intel Pentium4系列CPU,如果原来配的是不支持DDR2的主板,那么只要更换一块支持DDR2的主板就能使用DDR2,如果配的是同时支持DDR和DDR2的主板,则不必更换主板就能直接使用DDR2。

将内存控制器整合到CPU内部显然是今后的发展方向,而且其技术也会越来越完善。以后Intel也将会推出整合内存控制器的CPU。

技术演变

确切的说AMD并不是第一个采用处理器集成内存控制器技术的公司,只能说是他们把这项技术推了向市场。而英特尔才是真正的处理器集成内存控制器技术创始人,他们曾经在1999年3月推出的Timna处理器(参见图1)中集成了Rambus内存控制器(同时还集成S3的Savage4图形芯片和英特尔的I/O控制芯片ICH2),但遗憾的是由于Rambus内存在市场上的惨败而流产。

技术规格

Nehalem整合内存控制器IMC,可以支持三通道的DDR3内存,运行速度是外频x8,内存位宽从128位提升到192位。这样总共的峰值带宽就可以达到32GB/s(3×64bit×1.33GT/s÷8),达到了Core 2的3倍,而双路服务器的内存带宽峰值可以达到64GB/s。

在实际应用过程中,普通用户使用DDR3-1066即可满足Core i7在内存环节的需求,Nehalem的IMC会通过乱序执行来为DDR3三通道降低延迟,并让其每条通道都能够独立操作,这也使得内存的兼容性大大提高,组建三通道的门槛相对降低。

技术优点

CPU集成内存控制器,由于CPU和内存之间的数据传输不再需要经过北桥芯片,因此可以缩短CPU与内存之间的数据交换周期。这肯定是北桥芯片来负责内存控制器的模式无法比拟的。

许多应用程序拥有更为复杂的读取模式(几乎是随机地,特别是当cache hit不可预测的时候),并且没有有效地利用带宽。典型的这类应用程序就是业务处理软件,即使拥有如乱序执行(out of order execution)这样的CPU特性,也会受内存延迟的限制。这样CPU必须得等到运算所需数据被除数装载完成才能执行指令(无论这些数据来自CPU cache还是主内存系统)。当前低段系统的内存延迟大约是120-150ns,而CPU速度则达到了3GHz以上,一次单独的内存请求可能会浪费200-300次CPU循环。即使在缓存命中率(cache hit rate)达到99%的情况下,CPU也可能会花50%的时间来等待内存请求的结束- 比如因为内存延迟的缘故。

以看到Opteron整合的内存控制器,它的延迟,与芯片组支持双通道DDR内存控制器的延迟相比来说,是要低很多的。英特尔也按照计划的那样在处理器内部整合内存控制器,这样导致北桥芯片将变得不那么重要。但改变了处理器访问主存的方式,有助于提高带宽、降低内存延时和提升处理器性。

技术缺点

1、由于内存控制器是集成在CPU内部,因此内存的工作频率与CPU相同,而且不能进行频率异步设置,这样的话在超频的时候会导致内存的频率同CPU的外频一起升高,一旦超过内存的承受能力,就会导致内存无法工作,这会大大限制处理器的超频能力。

2、虽然将内存控制器集成于CPU内核当中,CPU无需通过北桥,直接可以对内存进行访问操作,有效的提高了处理效率。但这样的设计存在的问题就是对内存延时要求很高,内存延时的提高会给系统性能带来很大的影响。

Intel:不整合内存控制器原因

内存标准一直在改变: 

Athlon处理器不能搭配DDR2内存只是因为它整合的内存控制器只能连接DDR,这也是AMD要升级到Socket AM2的主要原因。Intel当初的Timna处理器曾整合了RAMBUS内存控制器,但随着RAMBUS在市场上的惨败而流产。

Intel可以在处理器上集成大容量

缓存

: 

AMD处理器对缓存容量不是非常敏感,而Intel处理器则可以凭借大容量的缓存弥补未整合内存控制器带来的损失。奥特里尼在IDF上说:“唯一能战胜整合内存控制器的武器是处理器缓存。”

不整合内存控制器可以减小处理器面积:

尽管Intel不断改进自己的生产工艺和产能,但产量总是有限度的。因此,处理器面积越小,能生产的数量就越多,最终带来更多收入。

不甘心直接使用AMD的

HyperTransport

技术: 

AMD之所以能将整合控制器成功应用到市场中有一重要原因是使用了新的传输技术HyperTransport,该技术不仅仅简化了CPU与内存之间的数据传输,也简化了CPU与CPU之间的数据传输(在未来可能会简化CPU与GPU之间的数据传输),英特尔需要通过更先进的技术(QPI)来战胜对手。