论文--Intel系列CPU的流水线技术的发展

更新时间:2023-03-08 05:11:32 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机系统结构课程论文

Intel系列CPU的流水线技术的发展

学院:计算机科学与工程学院

班级: 学号: 姓名: 老师:顾一禾

2014年4月13日

目录

一、 简介......................................................................................................................................... 1 二、 影响CPU流水线性能的因素 ............................................................................................... 1

1、多个任务在同一时间周期内争用同一个流水段 ............................................................ 1 2、数据依赖 ............................................................................................................................ 1 3、 条件转移的影响 ............................................................................................................... 1 三、 Inter系列CPU芯片中采用的流水线技术的发展过程 ....................................................... 1

(一)Pentium III时主要采用的技术 ................................................................................... 1

1. 采用超标量双流水线结构 .......................................................................................... 1 2. 分支预测技术 .............................................................................................................. 2 3. 通过乱序来优化指令流水线 ...................................................................................... 2 4. 将指令划分为更细的阶段 ......................................................................................... 2 (二) Pentium IV中增加的技术 ........................................................................................ 2

1. 使用高级动态执行 ....................................................................................................... 2 2. 执行跟踪缓存 .............................................................................................................. 2 3. 快速执行引擎 .............................................................................................................. 2 4.超长管道处理技术(超管线技术) ................................................................................ 2 5. 超线程(HT)技术 .......................................................................................................... 3 (三)Core中增加的技术 ..................................................................................................... 3 (四)Core2时增加的技术 ................................................................................................... 3

1. 高级智能高速缓存技术 .............................................................................................. 3 2. 智能内存访问技术 ...................................................................................................... 3 3. 宽位动态执行技术 ...................................................................................................... 3 4. 优化流水线的技术 .................................................................................................... 3

四、 提高流水线性能及CPU性能的方法、相关技术 ............................................................... 4

1. 采用超标量双流水线结构 .................................................................................................. 4 2. 分支预测技术 ...................................................................................................................... 4 3. 优化指令流水线 .................................................................................................................. 4 4. 将指令划分为更细的阶段 .................................................................................................. 4 5. 加流水线深 .......................................................................................................................... 4 6. 智能内存访问技术 .............................................................................................................. 4 7. 宽位动态执行技术 ............................................................................................................... 4 五、 展望Intel CPU提高流水线性能的技术方向 ....................................................................... 4

1. CPU线程的提高 ................................................................................................................. 4 2. 更多条数的流水线 .............................................................................................................. 4 3. 提供更新的Cache搜索算法和轮换算法 .......................................................................... 4 4. 一定量地减少流水线深度 ................................................................................................. 4 5. 异步架构流水线的使用 ...................................................................................................... 4 六、 感想......................................................................................................................................... 5 七、 资料来源 ................................................................................................................................. 5

Intel系列CPU的流水线技术的发展

一、 简介

流水线技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。在计算机中,把一个重复的过程分解为若干子过程,每个子过程由专门的功能部件来实现。将多个处理过程在时间上错开,依次通过各功能段,这样,每个子过程就可以与其他子过程并行进行。其中,流水线中的每个子过程及其功能部件称为流水线的级或段,段与段相互连接形成流水线。流水线的段数称为流水线的深度。把流水线技术应用于指令的解释执行过程,就形成了指令流水线。其中可以把指令的执行过程分为取指令、译码、执行、存结果4个子过程。把流水线技术应用于运算的执行过程,就形成了运算操作流水线,也称为部件级流水线。

流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5—6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即指令预取、译码、执行、写回结果,浮点流水又分为八级流水。

二、 影响CPU流水线性能的因素

1、多个任务在同一时间周期内争用同一个流水段

例如,假如在指令流水线中,如果数据和指令是放在同一个储存器中,并且访问接口也只有一个,那么,两条指令就会争用储存器;在一些算数流水线中,有些运算会同时访问一个运算部件。

2、数据依赖

比如,A运算必须得到B运算的结果,但是,B运算还没有开始,A运算动作就必须等待,直到A运算完成,两次运算不能同时执行。

3、 条件转移的影响

如果第一条指令是一个条件转移指令,那么系统就会不清楚下面应该执行那一条指令。这时就必须等第一条指令的判断结果出来才能执行第二条指令。条件转移所造成的流水线停顿甚至比相关还要严重的多。

越是长的流水线,相关和转移两大问题也越严重,所以,流水线并不是越长越好,超标量也不是越多越好,找到一个速度与效率的平衡点才是最重要的。

三、 Inter系列CPU芯片中采用的流水线技术的发展过程

(一)Pentium III时主要采用的技术

1. 采用超标量双流水线结构

超标量流水线设计是Pentium微处理器技术的核心。所谓超标量就是处理器内部含有多个执行单元来完成多条指令的同时执行。Pentium有两条分别称为U和V的指令流水线,各自有独立的算术逻辑单元ALU及高速缓存结构。这种双

1

流水线并行作业的方式,使得Pentium在每个时钟周期内可同时执行两条指令。此外,还有一个执行单元,保证同时完成一条浮点运算指令。在Pentium III时采用3条独立的12级超标量流水线。

2. 分支预测技术

为了减少由于转移导致流水线的效率损失,Pentium采用分支预测技术来动态预测指令的目标地址,从而节省了CPU的执行时间。通常在用户程序中包含不少的条件转移指令,在流水线计算机中,这些转移指令由于产生分支可能使予取和予译码指令作废。 Pentium内部有两个予取指令缓冲队列,在执行条件转移指令前,一个以顺序方式予取指令,另一个以转移方式予取指令,后者也称作分支目标缓冲器BTB(Branch Target Buffer),这是一个小的cache,它基于转移指令,尤其是循环转移的固有特点,可以认为在大多数情况下,当一条转移指令被再次执行时,其成功与否及转移目标与上次相同。据此可构造动态的分支目标预测硬件。BTB是一种效果较好的硬件机制,统计表明BTB的容量较大时(如超过256项)预测准确率可达90%。通过这种动态分支预测技术,不管是否产生转移,所需指令都在执行前予取好。

3. 通过乱序来优化指令流水线

在执行中采取了无序执行(out-of-order processing)技术。即当某条指令需要一些数据而未能立即执行完毕时,它将被剔出流水线并等待数据,CPU则马上执行下条指令,就好比在装配线上发现某件产品不太合格,而被淘汰,等待返工一个道理。这样,可以防止一条指令不能执行而影响了整个流水线的效率。

4. 将指令划分为更细的阶段

在P6架构的CPU中将指令划分成了更细的阶段,从而使逻辑设计、工序等等更为简化,提高了速度。在486芯片中,一条指令一般被划分为五个标准的部分,奔腾亦是如此。而在P6中,由于采用了近似于RISC的技术,一条指令被划分成了创纪录的十四个阶段。这极大地提高了流水线的速度。

(二)Pentium IV中增加的技术

1. 使用高级动态执行

为支持乱序执行和提高分支预测精度, 高级动态执行机制可以检查126条指令, 并决定执行次序, 配合128个重命名寄存器, 具有更高的预测精度。与Pentium III相比, 大约可减少1/3的预测错误。 动态执行技术一般指集分支预测、数据流分析(即乱序执行)和猜测执行三种技术于一身。

2. 执行跟踪缓存

用于存储已解码的微指令, 加快运行速率。当下次再执行到相同指令时, 不必再一次重复解码, 只需要取相关数据直接执行即可。这对于循环执行的程序有很高的效率。此外, 当分支预测出错, 需要回到分支处重新开始运行另一路时, 之前的译码阶段已经把另一分支指令缓冲进了Trace Cache, 而不用再译码,可节约1~2个时钟周期。

3. 快速执行引擎

采用了称为Double Pumped的双重并发技术(即两组ALU) , 每个时钟ALU能执行两次, 效率相应提升一倍。因此, Pentium 4的双ALU在一个周期内可以执行4条指令。

4.超长管道处理技术(超管线技术)

2

采用超长管道处理技术, 使流水线深度达20级。Prescott(Pentium IV的一种核心)更是达到了31级。

5. 超线程(HT)技术

资源不冲突时,可同时运行2个线程。

(三)Core中增加的技术

在Core架构时,由于Core架构是Pentium III的P6架构的扩展,所以采用的技术和Pentium III差不多,为3路,12级流水线,同时采用了微指令融合技术,主要是为了减少微指令数量,精简硬件设计。

(四)Core2时增加的技术

1. 高级智能高速缓存技术

各Core可动态支配L2 Cache,可提高L2命中率;减少FSB使用频率(通信量)。

2. 智能内存访问技术

根据软件需求,用预取器预取指令和数据。 3. 宽位动态执行技术

CPU内部增加新操作类型,将多条指令合并为1个操作,实现更大解码带宽、更少空间占用、更低调度负载。微指令融合(Micro-Op Fusion)技术CPU内部优化uop控制,将多个uop合并为1个uop;

4. 优化流水线的技术 优化分支预测技术:采用二级BTB、返回堆栈缓冲器(RSB)满时可导入ROB,平衡BTB/RSB中指令数量与速度的矛盾;64位宏指令融合技术:支持64位宏指令融合、增加了可融合宏指令个数。

上面提到的技术基本上是以提高CPU流水线的性能为目的的,但是其中有一个技术确违背了这个意愿,就是在Pentium中使用超长流水线技术使流水线深度达到20级,在Prescott架构中甚至达到了31级。

关于这个技术就不得不提到CPU发展史上有名的频率之争。Intel和AMD在桌面CPU市场上的激烈竞争,使双方都千方百计地拿出更强大产品来压制对方,而最引人瞩目的就是CPU的频率之争。随着CPU频率不断地攀升,Intel总是在自己某个核心的处理器到达极限之时采用新的、更长流水线的核心来消除频率的瓶颈(流水线越长,频率能更高)。

但是这样做势必会带来一系列的问题。

首先,由于现有芯片制造工艺的限制,频率的提升带来高功耗、高发热量的问题。尽管流水线增长,频率提升的空间相应增大,但是处理器频率提升的其它瓶颈却无法解决。而且过长的流水线意味着更加复杂的内部结构,生产的良品率也难以保证。

其次,在CPU的工作中,指令往往不是孤立的,许多指令按一定的顺序执行才能完成一个任务。而一旦某个指令在运算过程中发生了错误,或者执行了没有用的指令,那么其后与之相关的指令就都没有用了。这些指令必须清除掉,然后再执行其它的指令,CPU相当于做了许多无用功!流水线越长,一旦出错影

3

响也就越大,比如一个指令在最后一级出错,那么可能在后续流水线中的所有指令都要被清除,Northwood核心处理器要浪费20级工序的时间,而Prescott核心处理器就要浪费31级工序的时间!

流水线深度一直是影响处理器效率的重要因素,流水线深度的增加可以让处理器时钟频率进一步提高,但是在有些实际应用中, 已经被证明了处理器流水线的长度与性能成反比。同时容易产生分支预测等问题,Prescott核心的P4达到的31级流水线长度,要比当年的Pentium III和Athlon处理器高出许多,Netburst微架构已无法解决这一问题, 原本计划使基于Netburst微架构的下一代处理器Tejas突破5GHz, 但最终止步于3.8GHz。Prescott最终走上失败之路。

最后Intel公司不得不放弃Pentium IV,频率至上的CPU理论也被推翻。 随后就进入了Core架构,也就是多核时代,多个CPU封装在一个芯片中,协调工作,来达到更高的性能,Netburst架构和Prescott架构被完全抛弃,流水线的深度再次回到了Pentium III时代的3段12级。

四、 提高流水线性能及CPU性能的方法、相关技术

1. 采用超标量双流水线结构 2. 分支预测技术 3. 优化指令流水线

4. 将指令划分为更细的阶段 5. 加流水线深

6. 智能内存访问技术 7. 宽位动态执行技术

五、 展望Intel CPU提高流水线性能的技术方向

1. CPU线程的提高

CPU线程会越来越多,多线程的使用,使CPU的流水线效率和速度得到了很大的提高,所以未来CPU可能会出现一个CPU8个、16个、32个甚至64个线程的情况。

2. 更多条数的流水线

就像GPU那样已经发展到32条流水线并行工作,流水线条数的增加,使CPU在相同的时间内完成更多的工作,相当于提高了CPU的性能。

3. 提供更新的Cache搜索算法和轮换算法

Cache不是越大越好,因为CPU性能和Cache的大小呈负指数二项式增长。当Cache大小达到一定水平后,如果不及时更新Cache的搜索算法和Cache的轮换算法,CPU的性能没法得到本质的提高。

4. 一定量地减少流水线深度

后PC时代,是移动运算高发展的时代,所以CPU应该向低功率,高性能的方向发展,所以流水线深度可能更小,但CPU采用更好的架构以及更高的工艺来制造,达到和长流水线一样甚至更高的性能。

5. 异步架构流水线的使用

个人认为异步架构的使用是未来的一个必然趋势。同步架构的使用已经开始限制芯片的发展,基于时钟的芯片设计,只有在系统所有部分同时得到时钟才能

4

正确操作,这只有在时钟线上的延时可以忽略时才可以做到。然而随着工艺的进步系统越来越大,从而使时钟线上的延时不再可以忽略不计。对于芯片设计者来说,时钟歪斜已经成为了一个瓶颈,不跨越这个瓶颈,可以说未来的CPU发展很难有质的飞跃。

六、 感想

经过学习和查找资料,我大致了解了CPU的发展历程,以及CPU发展过程中遇到的问题与挑战,也了解了IntelBug史上的10大Bug。从CPU的发展可以得到——灵感来源于生活与生产实际,以及人类需求带动科技的发展。就如刚开始的CPU的流水线设计就是借鉴了工业的流水线制造思想。

其次流水线技术的不断完善,也告诉我们一个技术的发展要与时俱进,在应用过程中发现问题,并解决问题,在此基础上更好地使之趋于成熟,让它成为一个趋于完美的技术。

再者,计算机的发展速度很快,我们这些还在大学里学习的孩子们,学习的都是很旧的知识,以后到了社会上要面对的更多未知面,所以在现在正在学习的阶段,除了学好基础知识,也要适当了解当前新新技术,最好是能够古往今来,融会贯通。

承接前辈们的遗产,创造自己的财富,扎实地走好每一步。在未来的IT路上越走越远。

七、 资料来源

【1】计算机系统结构教程,张晨曦、王志英,清华大学出版社 【2】百度百科--流水线技术

http://baike.http://m.njliaohua.com//link?url=_gyknID5Twf2EEv2iAKyC6FBjfk5XbnubzxsgAIxI58nPvMtQ52syrt7-qj2SdfM

【3】百度文库--CPU芯片的发展历程

http://wenku.http://m.njliaohua.com//link?url=KFFKIcAlu7BDHNZdShpRd7DkIMaJMMtirshLI4TaZyj8yCY601NKA0-rvI25ejOx0hXGgYgtdA3PhEiogBe65dSWuhUmTj_2aa9075at_Fi

【4】百度文库--CPU发展历程

http://wenku.http://m.njliaohua.com//view/0dbd7b5e804d2b160b4ec092.html 【5】百度文库--Intel系列CPU的流水线结构与性能分析

http://wenku.http://m.njliaohua.com//link?url=zrmHjCKm2XBqoHSGR_tOYBt8-10TSC-toutGjH9co9GSXwqurGwXTugdEMHftjjUmbfKRsOQXOGX4EzVYwGW4zVtMSIhV5UElTTRI7S3Le7

【6】百度文库--Intel系列CPU的流水线结构与性能分析 http://wenku.http://m.njliaohua.com//view/4a95ba59312b3169a451a44f.html 【7】百度文库--Intel系列CPU的流水线的发展和展望 http://wenku.http://m.njliaohua.com//view/030f6cc80c22590102029d1e.html

5

本文来源:https://www.bwwdw.com/article/fha.html

Top