来自当知百科
跳转到: 导航搜索
  
内存控制器

目录

基本类型

  随着计算机技术发展,内存控制器分为传统型和整合型两种。

传统型

  传统的计算机系统其内存控制器位于主板芯片组北桥芯片内部,CPU要和内存进行数据交换,需要经过“CPU--北桥--内存--北桥--CPU”五个步骤,在此模式下数据经由多级传输,数据延迟显然比较大从而影响计算机系统的整体性能;

整合型

  集成内存控制器,就是在CPU的基板上内置一个内存控制器,先说说没有内存控制器时系统是如何工作的。26个数据A~Z,要传送到CPU,这时候CPU就向北桥发出指令(因为内存控制器是集成在北桥上,说所以要经过北桥),内存通过内存控制器接受到了指令,这个指令就是把内存上b单元的A~Z数据传送到CPU,内存这个时候开始取数据,也就是平常所说的寻址。当内存找到了这个数据,而这26个数据每个数据为500MB,所有数据总和就约为12GB,假设内存为双通道R2800,数据传输率就为800MHZ乘以128BIT除以8比特每字节=12GB每秒,通过分析,认为只需一秒就能传送到CPU,此时的数据在一秒的时间内只传送到了北桥,内存控制器在北桥,在北桥的数据如何传送到CPU呢,这就要通过FSB前端总线了,假设FSB的频率为800MHZ,那么数据传输率就为800MHZ乘以64BIT除以8比特每秒=6.4GB每秒,从北桥到CPU要2秒,所以数据传送到CPU的总时间为3秒,接下来再来看看CPU集成内存控制器的时候系统是如何工作的;数据从内存传输到控制器后,同样为1秒,所不同的是这个时候不用再通过慢吞吞的前端总线了,CPU直接从内存控制器读取数据就行了,因为内存控制器在CPU的门口罗,打个比方,一件东西在你门口的时候,大家就可以直接拿了,就是这个原理,算了一下,集成内存控制器的CPU读取12GB的数据是才用了1秒的时间,所以大大节省了运算时间,也充分发挥了CPU的性能。

  最后总结一下:CUP没有内存控制器时:数据以内存控制器---北桥----CPU的方式传输有内存控制器时:数据以内存控制器------CPU的方式传输,一步到位。[1]

内存控制器的的发展方向

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

  AMD的在K8系列CPU及其之后的产品(包括Socket 754/939/940等接口的各种处理器),CPU的内部则整合了内存控制器,CPU与内存之间的数据交换过程就简化为“CPU--内存--CPU”三个步骤,省略了两个步骤,与传统的内存控制器方案相比显然具有更低的数据延迟,这有助于提高计算机系统的整体性能。

  Inter在最新的酷睿i5酷睿i7 系列CPU中,也引入了整合内存控制器的方案。

内存控制器的计算

  以AMD CPU为例:Socket939时代CPU主频与倍频直接相除就是CPU内存控制器所支持的内存频率.

  到了DDR2时代的AM2处理器,虽然核心方面同样内置了DDR2的内存控制器, 但与过去的Socket939接口不同的是,它所支持的内存频率被更新至DDR2-800的水平。CPU主频再也不能与CPU的倍频直接相除,而是除以倍频数二分之一后的整数(不能被整除取整数部分再加1).以4600+和4800+CPU为例:

  即内存运行频率=(CPU主频÷倍频/2)×2

  X2 4800+ ,主频为2.5GHz,倍频为12.5。所以内存的除频数为7,此时内存运行的频率=(2500M÷7)×2=714M

  X2 4600+ 主频为2.4GHz, 倍频为12 . 所以内存的除频数为6, 此时内存运行的频率 =(2400M÷6)×2=800M

  4600+完美的支持DDR2-800

  简单的来说就是,如果CPU的主频倘若不能被400整除的话,就说明该AM2处理器在默认的频率下无法运行在DDR2-800的模式下。

技术应用

  Intel将在45纳米Penryn系列推出全新微架构,代号Nehalem,届时将看到多项全新技术,其中整合的内存控制器无疑非常吸引人。AMD一直在自身的处理器内集成内存控制器,因而取得了很好的内存性能,但也导致每次内存规格升级都必须更新处理器接口;相反,Intel坚持把内存控制器放在北桥芯片里,同时对处理器本身的调整更多地依赖于缓存容量的增减。虽然Intel曾经列举了多项理由,表示不集成内存控制器好处多多,但随着形势的发展变化,Intel自然也不会一条路走到黑,到了下一代新架构。内存控制器就将与图形核心一起走入Intel处理器的内部。显然,Intel所做的不仅仅是简单集成。据了解,Nehalem架构下的原生四核心处理器Bloomfield将具备三通道DDR3内存控制器,支持DDR3-1600规格,可提供38.4GB/s的巨大带宽,相比双通道20GB/s左右几乎翻了一番,同时内建的图形核心也能因此获得更好的性能表现,尤其是在3D游戏里。不过,Nehalem下的双核心处理器可能还会只配备双通道内存控制器,以拉开市场差距。[2]

集成内存控制器

CPU内存集成内存控制器优点

  CPU内存集成内存控制器有很多优点 比较突出的是三点:

第一CPU内部整合内存控制器

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

第二内存控制器同频于CPU频工作

  CPU内部集成内存控制器可以使内存控制器同频于CPU频工作(现在CPU工作频率一般都在2G以上)而北桥的内存控制器一般就要大大低于CPU工作频率 系统延时就更加少。

第三CPU内部集成内存控制器

  CPU内部集成内存控制器 由于内存数据不经过北桥有效的降低了北桥的工作压力为北桥减低可负担

  CPU内部集成内存控制器是K8 CPU的一大设计亮点 就算是现在的扣肉虽然在总体性能上远远超过K8但是在内存性能上扣肉相对于K8来说还是望尘莫及。

整合内存控制器的特征

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

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

  通常,对于整个PC系统来说,我们往往只关注于CPU的主频、系统前端总线的频率、内存的工作频率和它们之间的总线带宽等,但是内存延迟对系统性能的影响也相当大。

  那么,什么是内存延迟呢?通俗来讲,系统要对某些数据进行操作时,会由CPU发出指令,存储在硬盘里的数据将传送到内存里,由内存转送给CPU。但是通常内存控制器是集成在主板芯片组的北桥芯片内,数据经由多级传输,往往会产生一定延迟。因而CPU发出指令后并不能及时获得数据,对其并进行处理。内存延迟对系统性能有着重要的影响,目前内存系统的总体延迟大约为120~150ns,在这段时间内CPU所能做的只有等待。因而,尽可能的降低内存延迟无疑对系统性能的提升有着莫大的帮助。传统的处理器要和内存进行数据交换,需要经过“CPU-北桥-DIMM-北桥-CPU”。而处理器内核整合内存控制器,进程就会简化为“CPU-DIMM-CPU”,省略了两个步骤。

  这恐怕是AMD64位处理器在目前的32位应用环境下也能表现出强劲性能的主要原因之一。处理器内部集成内存控制器的好处,就是可以有效控制内存控制器工作在与处理器核心同样的频率上,而且由于内存与处理器之间的数据传输无需经过北桥,可以有效降低传输延迟。打个比方,这就如同将货物仓库直接搬到了加工车间旁边,大大减少了原材料/制成品在货物仓库和加工车间之间往返运输所需时间,极大地提高了生产效率。这样一来系统的整体性能也得到了提升。在实际测试中,Athlon 64等待内存数据的时钟周期比AthlonXP减少了30~40%,带来系统整体性能的提升高达25~30%。

  整合内存控制器虽然可以达到高宽带和低延迟,但是其升级换代不就成了一个大问题吗?通常,如果一种新的内存标准推出,芯片组厂商可以直接开发支持新内存的芯片组来支持。而内存控制器整合到处理器核心中,就造成升级的困难,因为改一下支持内存的规格就需要改内核。但就目前的情况来看,这个疑虑似乎可以打消了。

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

内部整合优缺点

优点

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

缺点

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

总结

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

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

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

个人工具
名字空间

变换
查看
操作
导航
工具箱