前几天有网友提出了内存频率的疑问,所以今天就来讲一讲这方面的内容。主要讲述的内容是Cpu主频(内频)、系统总线频率(外频)、前端总线频率(Fsb)、内存核心频率(实际频率)、内存工作频率、内存等效频率、内存实效频率之间的关系。
人的生命在于运动,电脑也是一样,电脑中的运动称为“数字脉冲信号震荡”,其实就是不断在两种状态转换的一种运动,你可以把它想象成经典抽插运动,那么所有的运动都有一个动力源,电脑的动力源在哪里呢,电脑的动力源不在Cpu,而在主板上一块叫做时钟发生器的模块里,这个时钟发生器不停地发生所谓的“数字脉冲信号震荡”,这个震荡的作用对象有两个,一个是Cpu,一个是主板,作用在Cpu上会带动Cpu一起震荡,也就是说Cpu的震荡是由于有外部这样一个时钟发生器震荡而随之震荡,Cpu是“受”,时钟发生器才是“攻”,这个受到的震荡的频率(单位时间内的震荡次数)由于来自Cpu外部(单位时间内的震荡次数)我们称之为\"外频\",然后Cpu受此外频带动自已也震荡起来了,这个震荡是在Cpu内部发生的,所以我们也称之为“内频”,然后“总攻”时钟发生器大人的震荡除了影响Cpu外,还影响了主板,于是主板也震荡起来了,主板里有个连接所有主板零件的线,我们称为“系统总线”,时钟发生器震荡把主板的系统总线也震荡起来了,总线上所有的部件于是都震荡起来了,主板才能正常运作, 那么这个系统总线的震荡频率始终就和时钟发生器的频率外频保持一致,而对Cpu来说它的震荡也是由外频引起的所以Cpu的震荡频率“内频”也和“外频”保持一致,所以我们能得到结论时钟发生器“外频”=Cpu“内频”=主板“系统总线频率”。
本来这样就很好了,几个部件完全同步保持一致,但是呢Cpu的内部频率又是Cpu运算速度的关键,所以又称为Cpu\"主频“,大家都希望Cpu的运算速度能进一步提高,就必须提高Cpu\"主频“也就是”内频“,这样也就必须提高时钟发生器的频率,但是呢时钟发生器频率受限于材质和设计确实很难提升,从计算机问世到最新的I7等Cpu,其支持的“外频”(注意这里的用词,外频是Cpu外部的属性不是Cpu内部固有属性,“对特定外频的支持”才是Cpu固有属性)最高也不过3百多一点,所以呢专家们为了提高芯片运算速度就让Cpu的内部频率和外部时钟发生器的频率不一致,将外频成倍增长,引入了一个倍频的概念,于是新的公式变成Cpu“内频”=Cpu“主频”=时钟发生器“外频”×Cpu“倍频”,这个倍频是Cpu的固有属性,它的产生和默认值的设定都是由Cpu所完成的,而且大部分都是锁定的(对于极少没有锁定倍频的Cpu,如果主板支持则可在主板Bios中设置倍频),所以我们在超频的时候只能超外频,这样Cpu的运算速度提升上去了于是主板就不高兴了,为什么呢,很明显啊本来时钟发生器的震荡是同时传给主板的“系统总线”和Cpu,两者享受同样的运行速度,现在Cpu靠自己在内部构造的一个倍频设置把自己的运行速度搞上去了,时钟发生器却还是老样子给自己低的频率性能上不去主板各部件的运行效率成为了一个瓶颈,于是开发人员又故技重施,给主板总线也加了一个“倍频”
这个主板的“倍频”(当然其实不叫倍频)呢是叫做“前端总线(Fsb)频率”的东西了,这个称呼在各种大大小小的计算机文章中出现的最多了,但是呢大家一直没搞清楚这到底是个什么东西,都是以讹传讹这样子传播,虽不明但觉厉啊,要解释清楚这个Fsb首先得明确在计算机中“频率”这个词的概念,频率这次词在计算机中的物理意义就是
数字脉冲信号在单位时间内震荡的次数,然后有趣的是计算机中的频率有一个普遍现象,每个部件和部件之间传输数据的吞吐量肯定是频率×位宽÷8,所以对于总线频率来讲,它就规定了主板吞吐数据的效率是系统总线频率(也就是外频)×位宽÷8,然后按照这个定义,主板的总线震荡频率就是外频,于是我们也可以反其道而行,对应于每一个吞吐量可以定义出它所对应的频率,即使这个频率不代表任何实际存在的“数字脉冲信号震荡”,也就是说在计算机硬件中有许多叫做“频率”的东西其实都是假频率,根本就没有对应这个频率的震荡发生,是一个人为假定出来的根本没有实际物理意义的词汇,这种“假频率”存在的意义就是能更好地表达频率<->吞吐量公式中它所对应的吞吐量,而其中最典型的就是这个”前端总线频率“,这并不是一个具有物理意义的频率,是一个人为假定出来的假频率,它之所以存在的意义就是表征主板和Cpu之间数据的吞吐量,然后数据从Cpu流出到主板首先经过的就是属于系统总线一部分的连接Cpu和主板的线路,属于系统总线但还未触及主板核心部分,这部分控制着主板数据的吞吐量就称为前端总线,之所以叫前端是根据Cpu为参照系,在Cpu的前部射入Cpu身子,如果是后入式则称为”后端总线“,后端总线连接的是Cpu后部和L2和L3缓存(Cache),其总线频率和吞吐量都高于前端总线,好接下去让我们来看一张维基百科的英文构图和一段话加深我们的理解
正常来说,外频速度越高代表处理器在同一周期下可读写越多的数据,因此,外频速度很可能会变成系统性能上的瓶颈,为解决处理器带宽不足的问题,Intel于Pentium 4时代加入Quad Pumped Bus架构,使其在同一周期内可传送4笔数据,此举令外部传输时钟频率不变下,传输效率却可提升四倍。
从维基百科的这段话中我们可以看到,所谓的前端总线真的没有频率的震荡,而仅仅是一种基于传输效率的假设性”频率“,而Intel采用的Quad Date Rate技术使得前端总线N倍于本身的系统总线频率(外频),但是要牢记驱动Cpu和主板间数据交流的还是主板时钟发生器激发的系统总线的震荡,前端总线频率没有实物参照没有物理意义,只是一个数据吞吐概念,于是接下去我们要讲一下最难理解的部分了,那就是内存中的各种经常误解以讹传讹的“频率”
在写内存部分之前,先回顾一下刚才的内容,底下有网友提出了时钟发生器是不是真的驱动Cpu震荡使其运行的问题,这里可以看一张更加清楚的
图, ,这里
我们看到由于主板各部件之间和Cpu内部的各部件之间需要一个统一的震荡指令来维持他们的运行,所以时钟发生器才担当了一个相当于心脏作用的位置,不仅对主板,对Cpu也是如此,给出了一个初始的震荡频率给Cpu作为基准频率,然后Cpu的控制器里就有一个倍频发生器模块放大此基准频率(也就是外频),然后用Cpu自带的时序发生器维持此频率,并不停地从外部获取新的外频修正先前的外频,对此我们也可以做一个反证,假设我上面说的都是错的,主板上的时钟发生器和Cpu主频没有关系,又或者是反过来驱动的,Cpu的主频按照一定比例衰减后驱动主板上的时钟发生器,再作用到主板零件,那么超频者就没有办法调整主板上时钟发生器的频率进而影响Cpu主频,因为不可逆向驱动两者顺序反了,另有例子,有一些特别的Cpu,它的时钟发生器是直接集成在Cpu芯片里面,产生的震荡回路直接作用在Cpu上而不需经过前端总线,如http://www.pcpop.com/doc/0/741/741585.shtml,
这里很清楚得显示了时钟发生器对Cpu的重要性,另外由于作为Cpu本身一部分而不是传统的主板一部分,导致主板对他的修改权限为零,几乎不可能大幅度超外频,而传统能超外频(即Cpu内部基准频率)的Cpu其驱动外频的时钟发生器都在主板上当然也有超频爱好者建议购买带外置时钟发生器的主板来超频,这样Cpu能优先使用主板上的时钟发生器。
看到这里,如果你还是不相信我所说的“主板时钟发生器驱动Cpu,然后Cpu根据这个频率为内部基准频率再加倍震荡产生高频脉冲运转”,那么请看这里
http://www.baike.com/wiki/%E6%97%B6%E9%92%9F%E9%A2%91%E7%8E%87,定位到“谁在产
生频率”这一段,这里明明白白已经写清楚
上次我们讲到,电脑主板的心脏,发生频率的位置,是在主板的时钟发生器上面,注意不要把时钟发生器和晶振混淆,晶振只是时钟发生器中的一种,或者说是时钟发生器中可能存在的常用部件,然后时钟发生器发出数字脉冲信号,这种信号的震荡频率,带动了整个主板和主板上各部件的频率的产生(包括Cpu),这种代表实际震荡具有物理意义的频率典型的就为时钟发生器频率,然后我们又讲了另一种频率,一种不代表震荡没有实际物理意义,但能表明传输带宽的虚假频率,这种频率典型代表为前端总线(Fsb)频率,这回我们将继续从发生实际震荡,具有实际物理意义的外频也就时钟发生器频率出发,探讨内存工作中产生的各种频率。
时钟发生器的频率是由真实的震荡产生的,所以它能实际传递具有物理意义的震荡,这个数字脉冲信号的震荡经过主板北桥,然后传递给了内存,然后呢一发入孕,内存怀孕了,我们知道内存的肚子里有好多的颗粒/^(?:<卵子>颗粒)$/,我们称为内存颗粒,你们去查百科,百科就会告诉你什么是内存颗粒,原来内存颗粒就是内存芯片,又称为晶片,但是如果称为颗粒,确实我们就能更容易理解内存芯片的一个重要工作状态,那就是“震荡”,颗粒会震荡,所以内存有频率,这个频率就是来自时钟发生器的震荡,当然这种震荡有两个大的特征,一是他不是真的经典力学上的震荡,所以内存中并没有真的颗粒在上下左右震荡,而是在内存芯片中存在的数字信号脉冲的电磁震荡,二在没有外界增幅设施的情况下,其震荡满足经典物理的震荡特征,也就是随着震荡的不断传递震荡能量逐步衰减,虽然对于电子脉冲信号来讲,这种衰减并不明显,但肯定有,至少传递到位置的能量不会大于等于初始能量,根据电子脉冲适用的E=hv方程,能量和频率直接挂钩,也就是传递到位置的内存频率必须小于初始时钟发生器的频率也就是外频,那么这种必须小于外频的内存频率,由于是外频直接作用在内存核心颗粒上而激发的频率,我们称为内存核心频率,内存核心频率的大小永远只跟一个“因素”有“关系”,那个“因素”就是外频,那个“关系”就是“小于“,在颗粒开始随着时钟发生器震荡后这个核心震荡就在内存的内部传递,最终传递到一个出口,这个出口也是内存和主板交换数据的输入输出端口,我们称为I/O缓冲区,初始的核心颗粒的震荡频率多少,I/O缓冲区频率就是多少,又由于这也是内存和主板传输数据的必经端口,内存的大部分工作效果和性能特征都要经过此端口向主板和别的各模块体现,于是就称这个I/O缓冲区频率为实际工作频率(这里实际工作频率的意义并不是说内存就实际运行在这个频率,而是外界也就是主板能直接监控到感受到的和主板发生直接数据吞吐关系的频率),震荡经过了I/O缓冲区后就开始向主板传递数据,这里又遇到了和前端总线一样的概念,就是虚假频率的概念,由于I/O缓冲区的频率是直接挂钩于内存缓冲区的数据吞吐量,决定内存在单位时间内能和主板和Cpu做数据吞吐的总量,具有很现实的性能意义,所以就对即使没有物理意义的I/O缓冲区和外界传输数据的总吞吐量也人为定义出一个频率概念,这个频率就是
“内存等效频率”,它是一个具有很强现实意义的表征实际该内存和外界传输数据吞吐量的一个缺乏实际物理模型和意义的“虚假频率”。
人们就发现,这种震荡频率太低了,Cpu内部的频率和主板前端总线频率那是经过放大了的时钟频率(虽然是虚拟频率),那么是不是给内存也来个频率放大,答案是肯定的,我们来看下面的这张图,可以说我要讲的关于内存部分的内容大部分都蕴涵在这张图里。
因篇幅问题不能全部显示,请点此查看更多更全内容