Intel系列CPU的流水线结构与性能分析_第1页
Intel系列CPU的流水线结构与性能分析_第2页
Intel系列CPU的流水线结构与性能分析_第3页
Intel系列CPU的流水线结构与性能分析_第4页
Intel系列CPU的流水线结构与性能分析_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Intel系列CPU的流水线结构与性能分析流水线技术早在Intel的X86芯片中均得到了实现。流水线的使用使CPU 的性能得到了很大的提升,而Pentium系列CPU产品更是一个高级的超标量 处理器。当然CPU流水线性能是有限制,影响CPU流水线性能的因素有:1、多个任务在同一时间周期内争用同一个流水段例如,假如在指令流水线中,如果数据和指令是放在同一个储存器中,并且 访问接口也只有一个,那么,两条指令就会争用储存器;在一些算数流水线中, 有些运算会同时访问一个运算部件。2、数据依赖比如,A运算必须得到B运算的结果,但是,B运算还没有开始,A运算动 作就必须等待,直到A运算完成,两次运算不能同

2、时执行。3、条件转移的影响如果第一条指令是一个条件转移指令,那么系统就会不清楚下面应该执行那 一条指令。这时就必须等第一条指令的判断结果出来才能执行第二条指令。 条件转移所造成的流水线停顿甚至比相关还要严重的多。越是长的流水线,相关和转移两大问题也越严重,所以,流水线并不是越长 越好,超标量也不是越多越好,找到一个速度与效率的平衡点才是最重要的。为了解决这些影响流水线性能的因素和提高CPU性能,Intel公司采取了一 系列技术手段。在Pentium III的时候主要采用的技术采用超标量双流水线结构超标量流水线设计是Pentium微处理器技术的核心。所谓超标量就是处理 器内部含有多个执行单元来完

3、成多条指令的同时执行。Pentium有两条分别称 为U和V的指令流水线,各自有独立的算术逻辑单元ALU及高速缓存结构。这 种双流水线并行作业的方式,使得Pentium在每个时钟周期内可同时执行两条 指令。此外,还有一个执行单元,保证同时完成一条浮点运算指令。在Pentium III时采用3条独立的12级超标量流水线。分支预测技术为了减少由于转移导致流水线的效率损失Pentium采用分支预测技术来动 态预测指令的目标地址,从而节省了 CPU的执行时间。通常在用户程序中包含 不少的条件转移指令,在流水线计算机中,这些转移指令由于产生分支可能使予 取和予译码指令作废。Pentium内部有两个予取指令

4、缓冲队列,在执行条件转 移指令前,一个以顺序方式予取指令,另一个以转移方式予取指令,后者也称作 分支目标缓冲器BTB (Branch Target Buffer),这是一个小的cache,它基 于转移指令,尤其是循环转移的固有特点,可以认为在大多数情况下,当一条转 移指令被再次执行时,其成功与否及转移目标与上次相同。据此可构造动态的分 支目标预测硬件。BTB是一种效果较好的硬件机制,统计表明BTB的容量较大 时(如超过256项)预测准确率可达90%。通过这种动态分支预测技术,不管 是否产生转移,所需指令都在执行前予取好。通过乱序来优化指令流水线在执行中采取了无序执行(out-of-order

5、processing)技术。即当某条指令 需要一些数据而未能立即执行完毕时,它将被剔出流水线并等待数据,CPU则 马上执行下条指令,就好比在装配线上发现某件产品不太合格,而被淘汰,等待 返工一个道理。这样,可以防止一条指令不能执行而影响了整个流水线的效率。将指令划分为更细的阶段在P6架构的CPU中将指令划分成了更细的阶段,从而使逻辑设计、工序 等等更为简化,提高了速度。在486芯片中,一条指令一般被划分为五个标准 的部分,奔腾亦是如此。而在P6中,由于采用了近似于RISC的技术,一条指 令被划分成了创纪录的十四个阶段。这极大地提高了流水线的速度。在Pentium IV中增加采用的技术如下使用高

6、级动态执行(Advanced Dynamic Execution)为支持乱序执行和提高分支预测精度,高级动态执行机制可以检查126条 指令,并决定执行次序,配合128个重命名寄存器,具有更高的预测精度。与 PIII相比,大约可减少1/3的预测错误。动态执行技术一般指集分支预测、数 据流分析(即乱序执行)和猜测执行三种技术于一身。执行跟踪缓存(Execution Trace Cache)用于存储已解码的微指令(OPs),加快运行速率。当下次再执行到相同指 令时,不必再一次重复解码,只需要取相关数据直接执行即可。这对于循环执行 的程序有很高的效率。此外,当分支预测出错,需要回到分支处重新开始运行另

7、 一路时,之前的译码阶段已经把另一分支指令缓冲进了 Trace Cache,而不用 再译码,可节约12个时钟周期。快速执行引擎(Rapid Execution Engine)采用了称为Double Pumped的双重并发技术(即两组ALU),每个时钟 ALU能执行两次,效率相应提升一倍。因此Pentium 4的双ALU在一个周期 内可以执行4条指令。超长管道处理技术(超管线技术)(Hyper Pipelined Technology)采用超长管道处理技术,使流水线深度达20级。Prescott (Pentium IV 的一种核心)更是达到了 31级。超线程(HT)技术资源不冲突时,可同时运行2

8、个线程。在Core架构时,由于Core架构是Pentium III的P6架构的扩展,所以采 用的技术和Pentium III差不多,为3路,12级流水线,同时采用了微指令融 合技术,主要是为了减少微指令数量,精简硬件设计。到了 Core2时主要采用了高级智能高速缓存技术各Core可动态支配L2 Cache,可提高L2命中率;减少FSB使用频率(通 信量)。智能内存访问技术根据软件需求,用预取器预取指令和数据。宽位动态执行技术CPU内部增加新操作类型,将多条指令合并为1个操作,实现更大解码带 宽、更少空间占用、更低调度负载。微指令融合(Micro-Op Fusion)技术CPU 内部优化uop控

9、制,将多个uop合并为1个uop ;优化流水线的技术优化分支预测技术:采用二级BTB、返回堆栈缓冲器(RSB)满时可导入ROB, 平衡BTB/RSB中指令数量与速度的矛盾;64位宏指令融合技术:支持64位 宏指令融合、增加了可融合宏指令个数。上面提到的技术基本上是以提高CPU流水线的性能为目的的,但是其中有 一个技术确违背了这个意愿,就是在Pentium中使用超长流水线技术使流水线 深度达到20级,在Prescott架构中甚至达到了 31级。关于这个技术就不得不提到CPU发展史上有名的频率之争。Intel和AMD 在桌面CPU市场上的激烈竞争,使双方都千方百计地拿出更强大产品来压制对 方,而最

10、引人瞩目的就是CPU的频率之争。随着CPU频率不断地攀升,Intel 总是在自己某个核心的处理器到达极限之时采用新的、更长流水线的核心来消除 频率的瓶颈(流水线越长,频率能更高)。但是这样做势必会带来一系列的问题。首先,由于现有芯片制造工艺的限制, 频率的提升带来高功耗、高发热量的问题。尽管流水线增长,频率提升的空间相 应增大,但是处理器频率提升的其它瓶颈却无法解决。而且过长的流水线意味着 更加复杂的内部结构,生产的良品率也难以保证。其次,在CPU的工作中,指令往往不是孤立的,许多指令按一定的顺序执 行才能完成一个任务。而一旦某个指令在运算过程中发生了错误,或者执行了没 有用的指令,那么其后与

11、之相关的指令就都没有用了。这些指令必须清除掉,然 后再执行其它的指令,CPU相当于做了许多无用功!流水线越长,一旦出错影 响也就越大,比如一个指令在最后一级出错,那么可能在后续流水线中的所有指 令都要被清除,Northwood核心处理器要浪费20级工序的时间,而Prescott 核心处理器就要浪费31级工序的时间!流水线深度一直是影响处理器效率的重要因素,流水线深度的增加可以让处 理器时钟频率进一步提高,但是在有些实际应用中,已经被证明了处理器流水 线的长度与性能成反比。同时容易产生分支预测等问题,Prescott核心的P4达 到的31级流水线长度,要比当年的Pentium III和Athlo

12、n处理器高出许多, Netburst微架构已无法解决这一问题,原本计划使基于Netburst微架构的下 一代处理器Tejas突破5GHz,但最终止步于3.8GHz。Prescott最终走上失 败之路。最后Intel公司不得不放弃Pentium IV,频率至上的CPU理论也被推翻。随后就进入了 Core架构,也就是多核时代,多个CPU封装在一个芯片中, 协调工作,来达到更高的性能,Netburst架构和Prescott架构被完全抛弃,流 水线的深度再次回到了 Pentium III时代的3段12级。对于未来的CPU流水线技术的发展,个人认为可能会有以下的几个方面。CPU线程的提高CPU线程会越来

13、越多,多线程的使用,使CPU的流水线效率和速度得到了 很大的提高,所以未来CPU可能会出现一个CPU8个、16个、32个甚至64 个线程的情况。更多条数的流水线就像GPU那样已经发展到32条流水线并行工作,流水线条数的增加,使 CPU在相同的时间内完成更多的工作,相当于提高了 CPU的性能。提供更新的Cache搜索算法和轮换算法Cache不是越大越好,因为CPU性能和Cache的大小呈负指数二项式增 长。当Cache大小达到一定水平后,如果不及时更新Cache的搜索算法和 Cache的轮换算法,CPU的性能没法得到本质的提高。一定量地减少流水线深度后PC时代,是移动运算高发展的时代,所以CPU

14、应该向低功率,高性能 的方向发展,所以流水线深度可能更小,但CPU采用更好的架构以及更高的工 艺来制造,达到和长流水线一样甚至更高的性能。异步架构流水线的使用个人认为异步架构的使用是未来的一个必然趋势。同步架构的使用已经开始 限制芯片的发展,基于时钟的芯片设计,只有在系统所有部分同时得到时钟才能 正确操作,这只有在时钟线上的延时可以忽略时才可以做到。然而随着工艺的进 步系统越来越大,从而使时钟线上的延时不再可以忽略不计。对于芯片设计者来 说,时钟歪斜已经成为了一个瓶颈,不跨越这个瓶颈,可以说未来的CPU发展 很难有质的飞跃。而异步式架构设计就是一个很好的出路,使用异步架构,流水线不再依赖于 时

15、钟,采用自定时系统,不用担心时钟消耗的能量也不用为了避免时钟歪斜而付 出大功耗的代价。对于异步式流水线,只有数据通过时才会产生功耗,空闲时没 有动态功耗。同时异步式CPU在计算方面速度也是有很大的优势。据称在1997 年,Intel开发了一颗与奔腾系统兼容的异步测试芯片,其运行速度是同步芯片 的三倍,而功耗只是后者的一半。最后写点自己的一点体会不能一味地走极端就像当初Intel制造Pentium IV 一样就是走了很大的一个极端,不停地提 高流水线深度,不排除当初Intel急切地想打败竞争对手AMD的原因。但是这 样做的后果就只有一个一一很快地失败,当时的事实也证明了这一点。人也一样, 做任何

16、事情不能走极端,不然就会陷入死胡同。要善于取其精华,弃其精粕就像Intel研发Core架构的CPU时,虽然完全抛弃了 Pentium IV的 Netburst架构,但是还是使用了其中可取的部分,比如说超线程,动态执行等 等的技术。因此对任何事情要善于分析,看得到好的也要看得到坏的,不能一味 地否认或肯定,这样才能有更好的收获。做好承上启下的工作计算机的知识也是在不断拓展,计算机事业的发展离不开开放性思维,凡 事都要动动脑子,也许你就会走出一条别人没走过的路。在计算机的发展中我们 要做好的就是“承上启下”,承接上一代的知识,打开下一代技术的大门。附:参考资料1.Intel现代CPU结构与技术作者:东南大学计算机学院任国林 影响流水线性能的因素和解决方法作者:余伦静结合Intel奔腾系列微处理器谈流水线技术来源: HYP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论