流水线技术怎么样提高处理器的性能
发布网友
发布时间:2022-05-07 02:39
我来回答
共1个回答
热心网友
时间:2023-10-12 12:31
CPU的流水线
1.主频
主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。CPU的主频=外频×倍频系数。很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差。至今,没有一条确定的公式能够实现主频和实际的运算速度两者之间的数值关系,即使是两大处理器厂家Intel和AMD,在这点上也存在着很大的争议,我们从Intel的产品的发展趋势,可以看出Intel很注重加强自身主频的发展。像其他的处理器厂家,有人曾经拿过一快1G的全美达来做比较,它的运行效率相当于2G的Intel处理器。
所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。在Intel的处理器产品中,我们也可以看到这样的例子:1 GHz Itanium芯片能够表现得差不多跟2.66 GHz Xeon/Opteron一样快,或是1.5 GHz Itanium 2大约跟4 GHz Xeon/Opteron一样快。CPU的运算速度还要看CPU的流水线的各方面的性能指标。
当然,主频和实际的运算速度是有关的,只能说主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。
3.前端总线(FSB)频率
前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。有一条公式可以计算,即数据带宽=(总线频率×数据带宽)/8,数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。比方,现在的支持64位的至强Nocona,前端总线是800MHz,按照公式,它的数据传输最大带宽是6.4GB/秒。
6.缓存
缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于CPU芯片面积和成本的因素来考虑,缓存都很小。
11.超流水线与超标量
在解释超流水线与超标量前,先了解流水线(pipeline)。流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5—6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即指令预取、译码、执行、写回结果,浮点流水又分为八级流水。
超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。例如Pentium 4的流水线就长达20级。将流水线设计的步(级)越长,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。但是流水线过长也带来了一定副作用,很可能会出现主频较高的CPU实际运算速度较低的现象,Intel的奔腾4就出现了这种情况,虽然它的主频可以高达1.4G以上,但其运算性能却远远比不上AMD 1.2G的速龙甚至奔腾III。
12.封装形式
CPU封装是采用特定的材料将CPU芯片或CPU模块固化在其中以防损坏的保护措施,一般必须在封装后CPU才能交付用户使用。CPU的封装方式取决于CPU安装形式和器件集成设计,从大的分类来看通常采用Socket插座进行安装的CPU使用PGA(栅格阵列)方式封装,而采用Slot x槽安装的CPU则全部采用SEC(单边接插盒)的形式封装。现在还有PLGA(Plastic Land Grid Array)、OLGA(Organic Land Grid Array)等封装技术。由于市场竞争日益激烈,目前CPU封装技术的发展方向以节约成本为主。
好了,上面贴的一些都是和CPU的运行效率直接相关的参数,剩下的参数,有的太简单,有的我们不常接触到.没有贴,
好,看一下流水线的来由,大家都知道,两个CPU会比一个CPU快,但是为什么呢,也不会出现,一个CPU,运行WORD,一个CPU,运行CS呀, 那是因为,把指令细分成线程后,他们可以分别运行,cyrix的MII,当时不是有个技术么,乱序运行!!就是提高运行效率的一个手段,流水线,也是这种目的,P4,的时候,就20级流水线了,就是说,CPU运行一次的时候,等于,20个CPU(没有流水线),同时运行一样,这本来是什么呢,运行速度一下子,提高了20倍
但是,事实上并不是这样,为什么呢,这20个东东运行完了,得把他们再拼一起呀,还有一件事,如果拼错了,(下面的工人装不上,就认为是原料有问题)他就认为,这次的运行结果是错的,说,"重来"吧. 那么,有一个CPU,只有10级流水线,但是由于他们的管理很好,每次运行都不返工,所以,他们的生产效率反而更高!!!
AMD,和INTEL,现在正是这种情况,一个抓管理,管理上去了,下面的工人出错的才少,(返工次数少)
一个抓技术,工人熟练了,生产的东西,质量才高!!(每次出来的东西多)
当然,又抓管理,又抓技术,两手都要抓,两手都要硬,这是中国人的想法,都抓的人,显然什么都没抓好,都破产了,现在只有这两家还存活着,......现在我想给流水线一个公正一点的说法, 如果你的CPU组装的水平很差,那当然,流水线越多,你越乱,就像,你的水平不行, 管理了,10000多个程序员高手, 项目乱的一团糟, 但是,如果你是一个管理经验丰富的人, 下面的人一下也不会做活, 那么,项目也是一个失败, 幸好,事实上,并不是这样绝对,管理员也是差不多的水平, 程序员也是差不多的水平, 那么你建一个项目, 你选好的程序员,还是好的管理员!!!
我说,不一定,我得看是什么项目, 如果项目是一般的项目, 一般的管理员就可以了,那么,我当然选好的程序员, 项目完成的又快又好, 一个程序,本身就可以乱序运行, 那么,INTEL的CPU当然就是最好了, 反正,大家都不会返工!!!!! 但是一个项目是很复杂的, 而代码量并不多, 那么,当然是选好的管理员, 如果一个程序,就是针对测试而测试的, 导致,CPU运算不断的返工, 那当然就是AMD的CPU好, 比如,大浮点数的运行,AMD,比INTEL的高50%现在看不到这种比较了, 但是,你可以查一查,以前的资料, 有PIII1G,与AMD速龙1G的比较, 这个差异到现在也没有改变, 这就是为什么AMD的CPU,显卡得分,会比INTEL的高, 3Dmark2001的得分,一般都比INTEL的高, 而,business stone,INTEL 一般都比AMD要高, SYSMARK,也是,INTEL 比AMD要高, 因为这些程序不复杂,(线程复杂,和我们想的程序本身复杂是两回事)
买CPU也是一样, AMD,和INTEL谁好,????? 我也不知道,我喜欢AMD,但我目前确实使用的是INTEL, 家里的两台机子全是INTEL. 没有AMD,INTEL不会这么便宜, 没有AMD,中国的D版软件..... 中国的组装机.............但是,我要为流水线正一正名, 并不是流水线长了,运行效率就低了, 流水线长了,运行效率绝对是高了, 但是,运行出错的代价是大了,流水线,这本身是一个提高效率的技术, 怎么现在的人,都当成是,因为提高频率,所必须采用的手段呢????? 当时没有流水线的时候, 流水线一出来的时候, 大家都认为这是提高效率的秘密武器呀!!!
越是实际的程序,越容易发生流水线返工,因此P4效能越差。
倒是纯粹的理论测试,比如sandra,pcmark还有3dmark之类P4表现不错(老实说P4在3dmark里面的表现相对于在bussiness winstone里面算好的了),而到了实际测试,特别是bussiness winstone(直接调用office源代码)或者sciencemark(直接编译的标准量子化学代码)里面,p4的表现那叫一个菜。。。。连P4c都不是同PR的AthlonXP的对手。
至于sysmark里面Intel的分高,那是一个著名的bug,因为sysmark认为AthlonXP不支持SSE,结果是AthlonXP用x87浮点对抗专门为SSE优化的多媒体代码,自然性能不成(即使这样Intel也没有多少优势)
在bussiness winstone 2002的测试结果,看看就会发现,P4 3.2c的性能刚刚可以匹敌公认为虚标最严重的AthlonXp 3200+。 当然,多媒体性能上P4 3.2c还是毫无疑问的战胜AXP 3200+,毕竟,AXP不支持SSE2。
即使没有流水线返工,长流水线的性能也就和短流水线相同,因为每条流水线每周期就只能执行一条指令(p4有个怪异的设计就是如果跑配对的两个简单微指令,那么两个可以并成一个执行,所以如果你反复执行完全相同的指令比如a=a+1一百亿次,那么P4比AthlonXP要快一倍),所以长流水在任何角度也不可能提升效率。
长流水的唯一好处就是,电路比较简单,设计起来比较容易.解释的详细一点就是,并不是说20级流水线每次执行的动作比10级流水线多一倍,相反,他们能执行的实际功能是一样的,只是每级执行的操作简单了一些。
比如,一个工厂造螺丝,可以分成两级流水,一个人造螺丝,一个人车螺纹。也可以分成100个步骤,第一个人负责拿铁块,第二个人负责递,第三个人负责往上画线。。。。第99个人车单数螺纹,第100个人负责擦掉粉尘。
如果每个步骤耗费的时间都一样,那么两种做法速度完全一样,唯一的区别是,前面的办法工人素质必须很高,因为他每个人干了对方50个人的活。