CPU带宽和内存带宽之间的匹配.docx
《CPU带宽和内存带宽之间的匹配.docx》由会员分享,可在线阅读,更多相关《CPU带宽和内存带宽之间的匹配.docx(11页珍藏版)》请在冰豆网上搜索。
![CPU带宽和内存带宽之间的匹配.docx](https://file1.bdocx.com/fileroot1/2023-6/5/edd18426-4e2f-48d5-97b0-eb3e5cee27ad/edd18426-4e2f-48d5-97b0-eb3e5cee27ad1.gif)
CPU带宽和内存带宽之间的匹配
存还有CPU带宽如何计算
2009年08月03日 星期一 下午 04:
05
CPU带宽是指CPU与北桥之间的数据传输率,从CPU前端总线带宽的计算方法“前端总线带宽=系统外频×N倍速×64位总线位宽/8”中,我们可以知道,P4系列133MHz外频即前端总线为533MHz(133MHz外频×4倍速)的CPU的传输带宽可达4.2GB/s(533MHz×8)速率。
由此我们可以换算出其他不同前端总线CPU的带宽:
266MHz FSB的传输带宽为2.1GB/s;333MHz FSB的传输带宽为2.7GB/s;400MHz FSB的传输带宽为3.2GB/s;533MHz FSB的传输带宽为4.2GB/s,800MHz FSB的传输带宽为6.4GB/s。
存速率是指存的工作频率,例如DDR266的工作频率即为266MHz,根据存带宽的算法:
带宽=总线位宽/8×一个时钟周期交换的数据包个数×总线频率,DDR266的带宽=64/8×2×133=2128,它的传输带宽为2.1GB/s,因此DDR266又俗称为PC2100,这里的2100就是指其存带宽约为2100MB。
同理,DDR333的工作频率为333MHz,传输带宽为2.7GB/s,俗称PC2700;DDR400的工作频率为400MHz,传输带宽为3.2GB/s,俗称PC3200。
存带宽计算公式:
带宽=存时钟频率×存总线位数×倍增系数/8。
以目前的DDR400存为例,它的运行频率为200MHz,数据总线位数为64bit,由于上升沿和下降沿都传输数据,因此倍增系数为2,此时带宽为:
200×64×2/8=3.2GB/s(如果是两条存组成的双通道,那带宽则为6.4 GB/s)。
很明显,在现有技术水准下,运行频率很难成倍提升,此时数据总线位数与倍增系数是技术突破点。
计算存带宽
存的带宽总量可能是决定一组存的性能的重要标准之一了。
这个是什么意思呢?
其实真正理解起来不难,而且还非常容易计算。
我们刚才所说的存带宽总量其实就是在理想状态下这一组存在一秒所能传输的最大数据容量。
公式也很简单:
存带宽总量(MBytes) = 最大时钟速频率 (MHz) x 总线宽度 (bits) x 每时钟数据段数量/ 8
好了,我们还是来解释解释吧。
“每时钟数据段数量”这个是最好理解的了——你只需要记住,如果你的存是SDR那么这里这个值就等于1,如果您使用的是DDR或者是RDRAM的话,那么这个值就是2。
然后我们再将这个值除以8的意义就是将位这个单位换算成为字节。
所以说,对于一般的标准PC2100 DDR存来说,他的最大时钟频率应该是133MHz,而它的存总线宽度为64bit,每时钟数据段数为2。
所以(133x64x2)/8 = 2128MB/s。
一秒种能够传输2128MB,现在你知道为什么叫做PC2100了吧?
再来一个例子。
这次就拿PC800的RDRAM来计算吧。
最大时钟频率为400MHz,存总线宽度为16bit,每时钟数据段数为2,那么套用公式了之后就是(400x16x2)/8 = 1600MB/s。
从这里的大家可以看的出来吧,PC2100的DDR存能够提供高达2.1GB/s 的带宽,而RDRAM存的带宽只能达到1.6GB/s,但是需要大家注意的是,由于RDRAM是曾对使用,两条存一共可以3.2GB/s的存带宽,而新一代的RIMM存(总线为32位的RDRAM存) 将会使用两个数据通道进行工作,所以,他们的带宽几一下增加了一倍——这样就成为了3.2GB/s,并且单独一条存即可使用。
存带宽计算公式
存带宽=存工作频率X存总线宽度/8(计算带宽时位和字节的换算)
SDR和DDR都是64bit的总线宽度,只是DDR可以在时钟信号的上升沿和下降沿都传送数据,因此计算得到的相应带宽要X2。
RDR的总线带宽较窄,只有16bit,但RDR在工作时使用的是对称传输的工作模式,因此计算得到的相应带宽也要X2。
DDR266、333的命名方式是因为DDR的理论效能是SDR的两倍,为了区别SDR,所以分别以SDR工作频率的两倍来区分DDR,分别映射在133、166MHz工作下的DDR。
PC1600、2100、2700的命名方式是指DDR的实际带宽,分别映射在100、133、166MHz工作下的DDR。
产生CPU和Memory瓶颈的原因
现今的存储器速度远远低于处理器的速度。
外频并不一定是CPU的BIU(Bus Interface Unit)的工作频率。
现在的总线的速度一般在200MHz到500MHz。
和CPU一样,总线的工作频率也是通过倍频得到的。
现在的主板提供的存异步工作模式都是存频率小于总线频率。
比如Bus工作在266MHz下,存工作在100MHz下。
你说的266应该是DDR存吧,266MHz的DDR,clock还是133MHz。
如果你的Duron是100MHz的外频,也就是说Bus的频率是200MHz,那么你的DDR的工作clock也是100MHz。
INTEL系列,CPU通过FSB与北桥芯片连接,北桥芯片负责与存和显卡通信!
英特尔 Pentium 4的FSB分别是400、533、800MHz,总线带宽分别是3.2GB/sec,4.2GB/sec和6.4GB/sec,而DDR 266/DDR 333/DDR 400所能提供的存带宽分别是2.1GB/sec,2.7GB/sec和3.2GB/sec。
数据带宽=(总线频率×数据位宽)÷8.
无论单核、双核还是多核CPU,前端总线带宽的计算方法与单核的完全一样。
原因很简单,这些多核CPU的前端总线只有一条,只能与单一的存控制器连接。
这里说一下SMP平台。
在多路处理器平台上(桌面PC除外),没块CPU都有自己独立的存控制器和相应的存模块,所有CPU采取并行处理方式工作。
64位CPU只是将CPU的物理存寻址空间提高了,并没有影响到CPU前端总线带宽,所以计算方法同前。
问:
看到越来越多的地方提到CPU带宽和存带宽,我想问一下它们具体是怎么样计算的,电脑维修还有主板是否也有带宽计算的问题,如果有应该如何计算?
答:
带宽计算的一般公式为:
带宽=数据频率x位宽=8。
国贸电脑维修所谓的CPU带宽一般是指CPU
的前端总线(FSB)带宽,也就是CPU与存控制器之间传输数据的速度。
比如Intel Celeron/Pentium 4和AMD Athlon/Duron处理器的前端总线位宽都是64 bit, 800 MHz FSB的Pentium 4处理器前端总线带宽为800 MHzX64 bit-' 8=6.4 GB/x,400 MHz FSB的Barton核心Athlon XP处理器前端总线带宽为400 MHzX64 bit-' 8=3.2 GB/s,
存带宽的计算也是如此,SDRAM和DDRSDRAM存都是64 bit位宽,DDR 400的带宽
为400 MHzX64 bit-8=3.2 GB/so因为CPU和存要频繁地交换数据,望京电脑维修所以当存带宽与CPU前端总线带宽相匹配时才能获得更好的性能。
实际上,计算机中只要有数据传输的地方(不论是串行总线还是并行总线)都会涉及带宽,因此主板也有带宽的问题。
例如前面所讲的前端总线带宽就是CPU和主板北桥芯片之间的数据传输率,存带宽就是存和主板北桥芯片之间的数据传输率,还有主板的南北桥之间、ATA/SATA接口和硬盘之间都存在带宽大小的问题
1、CPU带宽是指CPU与北桥之间的数据传输率,其计算公式如下:
CPU带宽=前端总线频率×数据总线位数/8 以800MHZ的FSB的P4为例,其带宽为:
800×64/8=6400MB/S
2、存带宽;
存带宽=存总线频率×数据总线位数/8 以单通道DDR400存为例,其带宽为:
400×64/8=3200MB/S 如果为双通道的则×2;
3、总线带宽;
总线带宽=总线频率×数据总线位数/8 以32位PCI为例:
33×32/8=132MB/S 再以AGP 8× 为例;528×32/8=2212MB/S AGP 1×的总线频率为66MHZ
技嘉MA770T-D3L (AMD 770+SB710,全固态,带COM口) 550
华硕M4A88T-M LE (AMD 880G,VGA+DVI+HDMI,全固态) 515
华硕M4A87TD (AMD 870+SB850,全固态大板) 670
主板:
微星870-C45 V2 AMD870+SB710 540
微星870A-G46 AMD870+SB850 690
Intel的CPU,从P4开始就对存带宽有一定要求,为什么当年Intel非要推RamBUS来搭配P4?
就是因为SDRAM和DDRRAM都不足以满足P4的需求。
具体说一下,FSB为533的P4(外频为133),数据带宽需求为4.3GB/S(可以这么粗略估算,CPU带宽=FSB×8),FSB800的P4带宽需求为6.4GB/s。
而同时期的DDR400能提供的带宽也只有3.2GB/s(所以DDR400又叫PC3200存,就是以带宽命名的),DDR266带宽为2.1GB/s,DDR333带宽为2.7GB/s,可见单根DDR存满足不了FSB800的P4的需求,当CPU要数据时存却传不过来足够的数据,造成CPU闲置。
所以Intel费劲功夫硬性推广RamBUS来搭配自家的P4。
但无奈RamBUS成本和产能都摆在那里,成了曲高和寡的东西。
不得已Intel舍弃850芯片组,重新推出的支持SDRAM的845芯片组来搭配P4,早期买P4的可能就是这种主板,其实此时P4的性能被存制约了。
包括后来出的支持DDR单通道存的845D、848等等芯片组,都没有完美解决问题。
后来出现了支持“双通道”的865芯片组才解决了问题,双通道的DDR266带宽正好满足FSB533的P4,而双通道的DDR400则满足了FSB800的P4。
这个规律可以简单的推算为存标称值*2=FSB频率(补充一下:
存实际工作频率是标称值的一半,也就是标称DDR400的存,实际存工作频率是200MHz,DDR2800存,实际工作频率是400MHz)。
如DDR400的双通道存可以满足FSB800的CPU,DDR2533的双通道存可以满足FSB1066的CPU,DDR2667的存双通到可以满足FSB1333的CPU,DDR2800存双通就可以满足FSB1600。
目前的酷睿CPU,低端的仍旧是FSB800的(肉羊420、E2140、E4300等),此时一根DDR2667的存还满足不了CPU的需求(如果超频到800也可以),而1根DDR2800的存则正好能满足需求(或者2跟DDR400存组双通道也可以,不过极少有这种主板)。
如果进行超频,比如E2140,当CPU外频从200超到266,FSB为1066,此时双通道的DDR2533可以满足带宽,超频到333外频时则双通道的667可以满足带宽,超频到400外频时,此时FSB已是1600了,则只有双通道的DDR2800存才能满足CPU的需求。
8E2e0I#g*`0z({:
j.L 由此可见,如果不超频,搭配FSB800系列,最好起步就是单根800的存,如果购买的是FSB1066或1333的U,单根存就彻底没法满足要求了,最好上双通道。
如果还打算超频,比如大家梦寐以求的400外频,则最好一次就购入2条800的存组成双通道。
否则即使CPU频率上去了,实际使用中还是会因为存带宽不足而拖CPU的后退。
目前800存和667存几乎一个价,所以就不要再考虑667存了。
-t6K8O3?
6Y%I'K0e5j!
a)p9_ 如果不知道自己的系统到底cpu和存带宽是多少,可以运行一个叫EVEREST的软件,在“主板”-“主板”下可以查到2者的带宽情况。
只要存带宽高于前端总线(FSB)带宽就可以了。
1.JPG(32.58KB)
.h(c0[8K9D'K2008-11-2120:
13"J,h5p5r2j6t)T M)O)X#M8V0d0j:
Y部分CPU的FSB4t$g)H A%J9_1}FSB800 赛扬4XX系列,奔腾E2XXX系列,酷睿E4XXX系列,还有很老的奔腾D系列。
%u3k*A4l7j7|/C7oFSB1066 部分E6XXX系列(6300/6400/6500/6320/6420),E7XXX系列(7200/7300),X6(X6800),4核的Q6XXX系列(6600/6700)。
1b6M#Q0d4?
8I*g6D2~%cFSB1333 部分E6XXX系列(6550/6750/6850),E8XXX系列(8100/8200/8300/8400),4核的Q9XXX系列(9100/9300/9550)/QX9XXX(9650)/QX6XXX(6850),补充:
最近发现老有DIYer选用E7200/E8300之类CPU,却只搭配1根DDR2800存,这样会严重拖累系统的。
请装机时注意避免。
9u&k#z0O0{'X!
H Z'q;{0a,?
*|3Y注:
对于AMD的CPU,因为部整合了存管理器,所以不需要经过北桥来读取存数据,而是CPU直接读取数据,因此不像Intel的CPU这么需要强调带宽搭配问题,一般可以用单条2GDDR2800来装机。
超频基础知识:
简单核算CPU前端总线和存带宽匹配的问题
带宽计算公式:
带宽=时钟频率×总线位数×倍增系数/8
在Intel平台,存控制器集成在北桥里,CPU和存交换数据,是经由CPU前端总线和北桥交换数据,再由北桥和存交换数据。
所以北桥到存的带宽必须大于等于CPU到北桥的带宽这样才不会产生瓶颈。
前端总线和存位数都是64。
现在的存都是DDR存,即DOUBLE DATA RATE(双倍数据率),倍增系数都是2,我们平时所说的DDR2 667或DDR2 800等等都是乘上了“2”这个倍增系数的频率,存实际工作的频率为333和400MHZ,如果按我们的习惯称谓来计算存带宽,就不需再乘以备增系数。
可以看出,按我们的习惯,在这个公式里,只有时钟频率是不一定的,在其他系数均相同的情况下,完全可以简单的比较前端总线和存的频率关系来核算两者带宽是否匹配。
例如:
E4500的前端总线为800MHZ,如果采用1条DDR2 800MHZ存,那么两个频率相等即带宽相等,不存在瓶颈。
又如E6550的前端总线为1333MHZ,由于没有这么高频率的DDR2存,所以如果采用单条存方案,无论匹配哪种DDR2存,都会产生瓶颈。
只有组建双通道才能解决瓶颈问题,比如采用两条ddr2 667存,根据以上说明,简单将其频率相加为1333MHZ,则代表此时两者带宽刚好匹配,无瓶颈产生.
在AMD平台,存控制器集成在CPU部,CPU通过HT总线直接和存交换数据,绕开了北桥的连接,所以没有前端总线一说。
也就没有存带宽和前端总线带宽是否匹配的说法!
AMD CPU部的存控制器采用了分频的方式,这个方式有点复杂,可以通过以下的频率关系公式计算得出存实际运行频率:
1、存分频=主频(超频前,目前均为200MHZ)×倍频(超频后)÷存频率(BIOS设置值)后取整。
2、主频×倍频=CPU实际运行频率。
3、CPU实际运行频率÷存分频=存实际运行频率,这个非常重要,很多人超频不成功就是因为存的实际运行频率大大高于默认频率,而存条的超频性能又不是很好。
所以,AMD平台在大多数时候,存都工作在一个非标准的频率下,这个频率随着CPU主频、倍频、设定存频率的变化而变化,存带宽也就千变万化,但是总结经验如下:
不超频采用双通道667足够,超频就必须用体质好的DDR2 800存组建双通道,以避免因存分频关系,造成超频后存实际工作频率过高而引起的不稳定!
CPU总线带宽和存带宽匹配
外频
外频是由主板为CPU提供的基准时钟频率,一般常见的有100、133、166、200。
我们说的FSB(FrontSystemBus)指的是系统前端总线,他是处理器和主板北桥芯片或存控制集线器之间的数据通道,常见频率有400、333、533、800。
作为新手不必掌控那么多概念性的东西,只要记住以下几个公式:
主频=外频*倍频(MHz)
IntelCPU前端总线=外频*4(MHz)
AMDCPU前端总线=外频*2(MHz)
CPU数据带宽=前端总线*8(MB/s)
存带宽=存等效工作频率*8(MB/s)前端总线频率
总线是将信息以一个或多个源部件传送到一个或多个目的部件的一组传输线。
通俗的说,就是多个部件间的公共连线,用于在各个部件之间传输信息。
人们常常以MHz表示的速度来描述总线频率。
总线的种类非常多,前端总线的英文名字是FrontSideBus,通常用FSB表示,是将CPU连接到北桥芯片的总线。
计算机的前端总线频率是由CPU和北桥芯片一起决定的。
北桥芯片负责联系存、显卡等数据吞吐量最大的部件,并和南桥芯片连接。
CPU就是通过前端总线(FSB)连接到北桥芯片,进而通过北桥芯片和存、显卡交换数据。
前端总线是CPU和外界交换数据的最主要通道,因此前端总线的数据传输能力对计算机整体性能作用非常大,如果没足够快的前端总线,再强的CPU也不能明显提高计算机整体速度。
数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率,即数据带宽=(总线频率×数据位宽)÷8。
目前PC机上所能达到的前端总线频率有266MHz、333MHz、400MHz、533MHz、800MHz几种,最高到1066MHz。
前端总线频率越大,代表着CPU和北桥芯片之间的数据传输能力越大,更能充分发挥出CPU的功能。
目前的CPU技术发展非常快,运算速度提高非常快,而足够大的前端总线能保障有足够的数据供给给CPU,较低的前端总线将无法供给足够的数据给CPU,这样就限制了CPU性能得发挥,成为系统瓶颈。
外频和前端总线频率的差别
前端总线的速度指的是CPU和北桥芯片间总线的速度,更实质性的表示了CPU和外界数据传输的速度。
而外频的概念是建立在数字脉冲信号震荡速度基础之上的,也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一万万次,他更多的影响了PCI及其他总线的频率。
之所以前端总线和外频这两个概念容易混淆,主要的原因是在以前的非常长一段时间里(主要是在Pentium4出现之前和刚出现Pentium4时),前端总线频率和外频是相同的,因此往往直接称前端总线为外频,最终造成这样的误会。
随着计算机技术的发展,人们发现前端总线频率需要高于外频,因此采用了QDR(QuadDateRate)技术,或其他类似的技术实现这个目的。
这些技术的原理类似于AGP的2X或4X,他们使得前端总线的频率成为外频的2倍、4倍甚至更高,从此之后前端总线和外频的差别才开始被人们重视起来,目前的主流产品均采用这些技术。
DDR和DDR2存说明DDR传输标准
严格的说DDR应该叫DDRSDRAM,人们习惯称为DDR,部分初学者也常看到DDRSDRAM,就认为是SDRAM。
DDRSDRAM是DoubleDataRateSDRAM的缩写,是双倍速率同步动态随机存储器的意思。
DDR存是在SDRAM存基础上发展而来的,仍然沿用SDRAM生产体系,因此对于存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR存的生产,可有效的降低成本。
SDRAM在一个时钟周期只传输一次数据,他是在时钟的上升期进行数据传输;而DDR存则是个时钟周期传输两次次数据,他能够在时钟的上升期和下降期各传输一次数据,因此称为双倍速率同步动态随机存储器。
DDR存能在和SDRAM相同的总线频率下达到更高的数据传输率。
和SDRAM相比:
DDR运用了更先进的同步电路,使指定地址、数据的输送和输出主要步骤既独立执行,又保持和CPU完全同步;DDR使用了DLL(DelayLockedLoop,延时锁定回路提供一个数据滤波信号)技术,当数据有效时,存储控制器可使用这个数据滤波信号来精确定位数据,每16次输出一次,并重新同步来自不同存储器模块的数据。
DDR本质上不必提高时钟频率就能加倍提高SDRAM的速度,他允许在时钟脉冲的上升沿和下降沿读出数据,因而其速度是标准SDRA的两倍。
从外形体积上DDR和SDRAM相比差别并不大,他们具有同样的尺寸和同样的针脚距离。
但DDR为184针脚,比SDRAM多出了16个针脚,主要包含了新的控制、时钟、电源和接地等信号。
DDR存采用的是支持2.5V电压的SSTL2标准,而不是SDRAM使用的3.3V电压的LVTTL标准。
DDR存的频率能用工作频率和等效频率两种方式表示,工作频率是存颗粒实际的工作频率,不过由于DDR存能在脉冲的上升和下降沿都传输数据,因此传输数据的等效频率是工作频率的两倍。
PC1600如果按照传统习惯传输标准的命名,PC1600(DDR200)应该是PC200。
在当时DDR存正在和RDRAM存进行下一代存标准之争,此时的RDRAM按照频率命名应该叫PC600和PC800。
这样对于不是非常了解的人来说,自然会认为PC200远远落后于PC600,而JEDEC基于市场竞争的考虑,将DDR存的命名规进行了调整。
传统习惯是按照存工作频率来命名,而DDR存则以存传输速率命名。
因此才有了今天的PC1600、PC2100、PC2700、PC3200、PC3500等(在用CPU-Z工具查看机器时,在SPD中显示的最大带宽)。
PC1600的实际工作频率是100MHz,而等效工作频率是200MHz,那么他的数据传输率就为“数据传输率=频率*每次传输的数据位数”,就是200MHz*64bit=12800Mb/s,再除以8就换算为MB为单位,就是1600MB/s,从而命名为PC1600。
DDR2传输标准
DDR2能看作是DDR技术标准的一种升级和扩展:
DDR的核心频率和时钟频率相等,但数据频率为时钟频率的两倍,也就是说在一个时钟周期必须传输两次数据。
而DDR2采用“4bitPrefetch(4位预取)”机制,核心频率仅为时钟频率的一半、时钟频率再为数据频率的一半,这样即使核心频率还在200MHz,DDR2存的数据频率也能达到800MHz?
也就是所谓的DDR2800。
目前,已有的标准DDR2存分为DDR2400和DDR2533,DDR2667和DDR2800,其核心频率分别为100MHz、133MHz、166MHz和200MHz,其总线频率(时钟频率)分别为200MHz、266MHz、333MHz和400MHz,等效的数据传输频率分别为400MHz、533MHz、667MHz和800MHz,其对应的存传输带宽分别为3.2GB/sec、4.3GB/sec、5.3GB/sec和6.4GB/sec,按照其存传输带宽分别标注为PC23200、PC24300、PC25300和PC26400。
DDRSDRAM是“DoubleDataRateSDRAM”的缩写,即“双倍速率同步动态随机存储器”。
和早期的SDR