计算机体系结构之流水线工作原理与分类_第1页
计算机体系结构之流水线工作原理与分类_第2页
计算机体系结构之流水线工作原理与分类_第3页
计算机体系结构之流水线工作原理与分类_第4页
计算机体系结构之流水线工作原理与分类_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

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

文档简介

北京邮电大学计算机系科学与技术系/cs_web/流水线基础(PipeliningBasic)王春露(Prof.ChunluWang)wangcl@

流水线技术相关性分析技术超标量处理机超流水线处理机超标量超流水线处理机流水线技术流水线是很自然的!°洗衣店的例子°A,B,C,D均有一些衣务要清洗,甩干,折叠°清洗要花30分钟°甩干要用30分钟°叠衣物也需要30分钟°还要花费30分钟的时间将衣物放在衣柜里ABCD顺序操作°洗4个人的衣物,顺序操作需要8个小时°如果使用流水线作业,将需要多少时间呢?30任务顺序BCDA时间3030303030303030303030303030306下午78910111212上午流水线作业°流水线作业洗4个人的衣物只需要3.5个小时!任务顺序122上午6下午78910111时间BCDA30303030303030流水线°流水线无法帮助解决单个任务的延迟,有利于减少整个工作全部时间°多个任务同时操作需要不同的资源°可能的加速比=流水线的段数°流水线的速率受速度最慢的流水段的限制°流水线各段长度不均会降低加速比°充满流水线所需的时间和排空流水线所需的时间影响加速比°会由于依赖而造成阻塞6下午789时间BCDA30303030303030任务顺序传统的流水线执行表示IFetchDcdExecMemWBIFetchDcdExecMemWBIFetchDcdExecMemWBIFetchDcdExecMemWBIFetchDcdExecMemWBIFetchDcdExecMemWB程序流时间轴为什么采用流水线呢?因为有资源空闲!指令顺序时间(时钟周期)Inst0Inst1Inst2Inst4Inst3ALUImRegDmRegALUImRegDmRegALUImRegDmRegALUImRegDmRegALUImRegDmReg单时钟周期,多时钟周期,同流水线比较.ClkCycle1多时钟周期的实现:IfetchRegExecMemWrCycle2Cycle3Cycle4Cycle5Cycle6Cycle7Cycle8Cycle9Cycle10LoadIfetchRegExecMemWrIfetchRegExecMemLoadStore流水线的实现:IfetchRegExecMemWrStoreClk单时钟周期的实现:LoadStoreWasteIfetchR-typeIfetchRegExecMemWrR-typeCycle1Cycle2为什么使用流水线?°设想我们要执行100条指令°单周期的机器•45

ns/cyclex1CPIx100

inst=4500

ns°多周期的机器•10

ns/cyclex4.2CPI(dueto

inst

mix)x100

inst=4200

ns°理想的流水线机器•10

ns/cyclex(1CPIx100

inst+4cycledrain)=1040

nsLoad指令的五个个阶段°Ifetch:获取指指令•从指令存储储器中获取取指令°Reg/Dec:获取寄存器器,指令译译码°Exec:计算内存地地址°Mem:从数据据存储器中中读数据°Wr:向寄存存器文件写写回数据Cycle1Cycle2Cycle3Cycle4Cycle5IfetchReg/DecExecMemWrLoadPipelining°通过增加指指令的执行行阶段增强强性能理想的加速速比是流水水线的段数数.我我们能够获获得这个加加速比吗?InstructionfetchRegALUDataaccessReg8

nsInstructionfetchRegALUDataaccessReg8

nsInstructionfetch

8

nsTimelw

$1,

100($0)lw

$2,

200($0)lw

$3,

300($0)246810121416182468101214...程序执行顺序InstructionfetchRegALUDataaccessRegTimelw

$1,

100($0)lw

$2,

200($0)lw

$3,

300($0)2

nsInstructionfetchRegALUDataaccessReg2

nsInstructionfetchRegALUDataaccessReg2

ns2

ns2

ns2

ns2

nsProgramexecutionorder(in

instructions)基本思想°我们要将数数据通路分分割成不同同的阶段,,需要增加加些什么?InstructionmemoryAddress4320AddAddresultShiftleft

2InstructionMux01AddPC0WritedataMux1RegistersReaddata

1Readdata

2Readregister

1Readregister

216SignextendWriteregisterWritedataReaddataAddressDatamemory1ALUresultMuxALUZeroIF:

Instruction

fetchID:

Instruction

decode/register

file

readEX:

Execute/address

calculationMEM:

Memory

accessWB:

Write

back流水线数据据通路InstructionmemoryAddress4320AddAddresultShiftleft

2InstructionIF/IDEX/MEMMEM/WBMux01AddPC0WritedataMux1RegistersReaddata

1Readdata

2Readregister

1Readregister

216SignextendWriteregisterWritedataReaddata1ALUresultMuxALUZeroID/EXDatamemoryAddress流水线技术术流水线是一一种实现技技术空间并行性性:设置多个个独立的操操作部件如:多操作部件件处理机、、超标量处处理机时间并行性性:采用流水水线技术不增加或只只增加少量量硬件就能能使运算速速度提高几几倍,如:流水线处理理机、超流流水线处理理机流水线工作作原理流水线的分分类线性流水线线的性能分分析非线性流水水线的调度度技术流水线工作作原理1、流水线线锁存器流水线的每每一个阶段段称为流水步、流水步骤骤、流水段、流水线阶段、流流水功能段段、功能段、流水级、流水节拍拍等。在每一个流流水段的末末尾或开头头必须设置置一个(多个)寄存器,称为流水寄存器器、流水锁锁存器、流流水闸门寄寄存器等。流水锁存器器会增加每每条指令的的执行时间间,但采用用流水线之之后整个程序序的执行时时间会缩短短。为了简化,,在一般流流水线中不不画出流水水锁存器。。2、流水线线的表示方方法流水线的连接图表示方法表示流水线线的逻辑关关系流水线的时空图表示方法表示流水线线的时间关关系流水线的预约表表示方法将在非线性性流水线中中介绍一般处理机机的指令流流水线为4至12个个级指令流水线线等于和大大于8级的的称为超流流水线处理理机3、流水线线时空图一条简单流水线线的时空图图一个浮点加加法器流水水线的时空空图由求阶差、对对阶、尾数数加和规格格化4个流水段段组成4、流水线线的主要特特点只有连续提提供同类任任务才能充充分发挥流流水线的效效率。对于指令流流水线:要要尽量减少少因条件分分支造成的的“断流””对于操作部部件:主要要通过编译译技术,尽尽量提供连连续的相同同类型的操操作。在流水线的的每一个流流水线段中中都要设置置一个流水水锁存器。。时间开销::流水线的的执行时间间加长,是流水线中中需要增加加的主要硬硬件之一。。各流水段的时时间应尽量量相等。流水线处理理机的基本本时钟周期期等于时间间最长的流流水段的时时间长度。。流水线需需要有“装入时间间”和“排空时间间”。Latency&throughput?流水线技技术流水线技技术在50年代代后期被被应用于于处理器器设计IBMStretch----firstgeneral-purposepipelinedcomputerCDC6600useload/storedesigntoachieveefficientpipelining.流水线工工作原理理流水线的的分类线性流水水线的性性能分析析非线性流流水线的的调度技技术流水线技技术流水线的的分类1、线性性流水线线与非线线性流水水线流水线的的各个流流水段之之间是否否有反馈馈信号线性流水水线(LinearPipelining)::每一个流流水段都都流过一一次,而而且仅流流过一次次。非线性流流水线(NonlinearPipelining)::在流水线线的某些些流水段段之间有有反馈回回路或前前馈回路路。线性流水水线能够够用流水水线连接接图唯一表示非线性流流水线必必须用流流水线连连接图流流水线预预约表等等共同表表示2、按照照流水线线的级别别来分处理机级级流水线线,又称称为指令流水水线。例如:在在采用先先行控制制器的处处理机中中,各功功能部件件之间的的流水线线部件级流流水线((操作流水水线),如浮浮点加法法器流水水线。处理机之之间的流流水线称称为宏流流水线((MacroPipelining)每个处理理机对同同一个数数据流的的不同部部分分别别进行处处理。3、单功功能流水水线与多多功能流流水线单功能流流水线::只能完成成一种固固定功能能的流水水线。Cray-1计算机种种有12条YH-1计算机有有18条条Pentium有一条5段的定定点和一一条8段段的浮点点流水线线。PentiumⅢ有两条定定点指令令流水线线,一条条浮点指指令流水水线。多功能流流水线::流水线的的各段通通过不同同的连接接实现不不同的功功能。Texas公司的ASC计算机中中的8段段流水线线,能够够实现::定点加减减法、定定点乘法法、浮点加法法、浮点点乘法,,逻辑运算算、移位位操作、、数据转换换、向量量运算等等。4、静态态流水线线与动态态流水线线静态流水水线:同一段时时间内,,多功能能流水线线中的各各个功能能段只能能按照一一种固定定的方式式连接,,实现一一种固定定的功能能。只有连续续出现同同一种运运算时,,流水线线的效率率才能得得到充分分的发挥挥。动态流水线:在同一段时间间内,多功能能流水线中的的各段可以按按照不同的方方式连接,同同时执行多种种功能。5、流水线的的其他分类方方法按照数据表示示方式:标量流水线和和向量流水线线按照控制方式:同步流水线和和异步流水线线顺序流水线与与乱序流水线线,乱序流水线线又称为无序序流水线、错序流水线或或异步流水线线等。(outoforder)流水线工作原原理流水线的分类类线性流水线的的性能分析非线性流水线线的调度技术术标量处理机流水线技术线性流水线的的性能分析衡量流水线性性能的主要指指标有:吞吐率、加速速比和效率。1、吞吐率((ThoughPut))计算流水线吞吞吐率的最基基本公式:其中:n为任务数,TTk为完成n个任务所用的的时间。各段执行时间间相等,输入入连续任务情况下::完成n个连续任务需需要的总时间间为:Tk=(k+n--1)t其中:k为流水线的段段数,t为时钟周期。。吞吐率为:最大吞吐率为为:各段执行时间间不相等,输输入连续任务务情况下:吞吐率为:最大吞吐率为为:流水线各段执执行时间不相相等的解决办办法(1)将流水水线的“瓶颈”部分再细分(如果可分的的话)。2、加速比((Speedup)计算流水线加加速比的基本本公式:各段执行时间间相等,输入入连续任务情情况下:加速比为:最大加速比为为:各段执行时间间不相等,输输入连续任务务情况下,实实际加速比比为:当流水线段数数增加时,需需要连续输入入的任务数也也必须增加4、流水线最最佳段数的选选择采用顺序执行行方式完成一一个任务的时时间为t在同等速度的的k段流水线上执执行一个任务务的时间为::t/k+d其中:d为流水锁存器器的延迟时间间流水线的最大大吞吐率为::流水线的总价价格估计为::C=a+bk,其中:a为所有功能段段本身的总价价格,b为每个锁存器器的价格A.G.Larson把流水线的性性能价格比PCR定义为:求得到PCR的最大值为::5、流水线性性能分析举例例对于单功能线线性流水线,,输入连续任任务的情况,,通过上面给给出的公式很很容易计算出出流水线的吞吞吐率、加速速比和效率。。例:用一条4段浮点加法法器流水线求求8个浮点数数的和:Z=A+B++C+D+E+F+G++H解:Z=[(A++B)+(C+D)]++[(E+F)+(G++H)]流水线工作原原理流水线的分类类线性流水线的的性能分析非线性流水线线的调度技术术流水线技术非线性流水线线的调度技术术非线性流水线线调度的任务务是要找出一一个最小的循循环周期,按按照这周期向向流水线输入入新任务,流流水线的各个个功能段都不不会发生冲突突,而且流水水线的吞吐率率和效率最高高。1、非线性流水线线的表示线性流水线能能够用流水线线连接图唯一一表示连接图不能用用唯一表示非非线性流水线线的工作流程程,因此,引引入流水线预预约表与流水线预约约表对应的流流水线连接图图一张预约表可可能与多个流流水线连接图图相对应一个流水线连连接图对应与与多张预约表表2、非线性流水水线的冲突流水线的启动动距离:连续输入两个个任务之间的的时间间隔流水线的冲突突:几个任务务争用同一个个流水段3、无冲突调度度方法,由E.S.Davidson及其学生于1971年提出非线性流水线线的禁止启动集合合:预约表中每每一行任意两两个“×”之间的距离都都计算出来,,去掉重复的的。上例中为为(3,4,6)由禁止启动集合合得到冲突向量:C=(CmCm-1…C2C1)其中:m是禁止向量中的的最大值。如如果i在禁止向量中中,则Ci=1,否则Ci=0。上例中C=(101100)。由冲突向量构构造状态图::把冲突向量送送入一个m位逻辑右移移移位器;如果果移位器移出出0,用移位器中中的值与初始冲突向量量作“按位或”运算,得到一一个新的冲突突向量;否则则不作任何处处理;如此重重复m次。对于中间形成成的每一个新新的冲突向量量,也要按照照这一方法进进行处理。在初始冲突向向量和所有的的新形成的冲冲突向量之间间用带箭头的的线连接,当当新形成的冲冲突向量出现现重复时可以以合并到一起起。例:一条有4个功能段的非非线性流水线线,每个功能能段的延迟时间都相等,,它的预约表表如下:(1)写出流水线的的禁止集合和和初始冲突向向量。(2)画出调度流水水线的状态图图。(3)求流水线的最最小启动循环环和最小平均均启动距离。。(4)求平均启动距距离最小的恒恒定循环。解:(1)禁止集合为::(2,4,6)初始冲突向量量:101010(2)初始冲突向量量逻辑右移2、4、6位时,不作任任何处理,逻辑右移1、3、5和大于等于7时,要进行处处理。初始冲突向量量右移1位之后:010101∨101010=111111,初始冲突向量量右移3位之后:000101∨101010=101111,初始冲突向量量右移5位之后:000001∨101010=101011,初始冲突向量量右移7位或大于7位后:还原到到它本身。中间冲突向量量101111右移5位之后:000001∨101010=101011,中间冲突向量量101011右移3位之后:000101∨101010=101111,中间冲突向量量101011右移5位之后:000001∨101010=101011。预约表与状态态图是唯一对对应,但不同的预约约表也可能有有相同的状态态图。简单循环:状状态图中各种种冲突向量只只经过一次的的启动循环。。简单循环的个个数是有限的的,由简单循环计计算平均启动动距离。(3)最小的启动循循环为(1,7)和(3,5),平均启动距离离为4。(4)启动距离最小小的恒定循环环是(5)。4、优化调度方方法L.E.Shar于1972年提出流水线线最小平均启启动距离的限限制范围(1)下限是预约表表中任意一行行里“×”的最多个数。(2)小于或等于状状态图中任意意一个简单循循环的平均启启动距离。(3)最小平均启动动距离的上限限是冲突向量量中1的个数再加上上1。1992年,L.E.Shar又证明了上述述限制范围。。最有用的是第第1条。预约表中中“×”最多的行一定定是瓶颈流水段采用预留算法来调度非线性性流水线,可可以达到最优优调度:(1)确定最小平均均启动距离((MAL)。预约表任一行行中“×”的最多个数(2)确定最小启动动循环。一般恒定循环环作为最小启启动循环。(3)通过插入非计计算延迟段--修改预约表实现最小启动动循环。对于上面的例例子:最小平平均启动距离离为2。最小启动循环环为恒定循环环(2)。任一行中与第第1个“×”的距离为2的倍数的周期期都要预留出出来。每一行中与第第1个“×”的距离为2的倍数的位置置都要预留出出来。S3行的第2个“×”从周期5延迟到周期6。为此,S2行的第2个“×”要向后延迟一一个周期,从从周期6延迟到周期7;S1行的第2个“×”要向后后延迟迟一个个周期期,从从周期期7延迟到到周期期8。实际上上,只只要在在流水水段S4的输出出端到到流水水段S3的输入入端中中间插插入一一个非非计算算延迟迟D1。在非线线性流流水线线中,,“×”最多的的流水水段一一定是是“瓶瓶颈““流水水段。。实现最最优调调度的的目标标是使使“瓶颈颈”流流水段段处于于忙碌碌状态态,没没有空空闲周周期。。最优调调度方方法能能够使使非线线性流流水线线的吞吞吐率率、加加速比比和效效率达达到最最优。。动态调调度方方法一个启启动循循环C,从C推导出出各个个起始始之间间所有有可能能的时时间间间隔集集合Gc,称为为启动动间隔隔集合合C=(2,3,2,5)Gc=(2,3,5,7,9,10,14,15,17,19,21,22,24,26,。。。。))间隔并并不限限于两两个相相邻的的起始始取Gc(modp),p为循环环周期期P=12的循环环C=(2,3,2,5)Gc(mod12)={0,2,3,5,7,9,10}在禁止止起动动集合合为F的流水水线中中,iff:F(modp)Gc(modp)=时周期为为p和启动动间隔隔集合合Gc的启动动循环环C才是可可以允允许的的。高级流流水线线技术术超标量量流水水线超流水水线超标量量超流流水线线超标量量处理理机基本结结构单发射射与多多发射射多流水水线调调度资源冲冲突超标量量处理理机性性能三种主主流处处理机机:超标量量处理理机::Intel公司的的i860、i960、Pentium处理机机,Motolora公司的的MC88110,IBM公司的的Power6000,SUN公司的的SPARC、SuperSPARC、UltraSPARC等。超流水水线处处理机机:SGI公司的的MIPSR4000、R5000、R10000等。超标量量超流流水线线处理理机::DEC公司的的Alpha等。基本结结构一般流流水线线处理理机::一条指指令流流水线线,一个多多功能能操作作部件件,每个时时钟周周期平平均执执行指指令的的条数数小于于1。多操作作部件件处理理机::一条指指令流流水线线,多个独独立的的操作作部件件,可以采采用流流水线线,也也可以以不流流水。。多操作作部件件处理理机的的指令级级并行行度小小于1。超标量量处理理机典典型结结构::多条指指令流流水线线。先进的的超标标量处处理机机有::定点点处理理部件件CPU,浮点点处理理部件件FPU,图形加加速部部件GPU,大量量的通通用寄寄存器器,两两个一一级Cache。超标量量处理理机的的指令级级并行行度((ILP)大于于1。Motorola公司的的MC88110。有10个操作作部件件。两个寄寄存器器堆::整数数部件件通用用寄存存器堆堆,32个32位寄存存器;;浮点部部件扩扩展寄寄存器器堆,,32个80位寄存存器。。缓冲深深度为为4的先行行读数数栈,,缓冲冲深度度为3的后行行写数数栈。。两个独独立的的高速速Cache中,各各为8KB,采用用两路路组相相联方方式,,转移目目标指指令Cache,存放放一条条分支支上的的指令令。单发射射与多多发射射单发射射处理理机::每个周周期只只取一一条指指令、、只译译码一一条指指令,,只执执行一一条指指令,,只写写回一一个运运算结结果。。取指令令部件件和指指令译译码部部件各各设置置一套套;只设置置一个个多功功能操操作部部件或或设置置多个个独立立的操操作部部件;;操作部部件中中可以以采用用流水水线结结构,,也可可以不不采用用流水水线结结构。。目标是是每个个时钟钟周期期平均均执行行一条条指令令,ILP的期望望值为为1。多发射射处理理机::每个周周期同同时取取多条条指令令、同同时译译码多多条指指令,,同时时执行行多条条指令令,同同时写写回多多个运运算结结果。。需要多多个取取指令令部件件,多多个指指令译译码部部件和和多个个写结结果部部件。。设置多多个指指令执执行部部件,,有些指指令执执行部部件采采用流流水线线结构构。目标是是每个个时钟钟周期期平均均执行行多条条指令令,ILP的期望望值大大于1。超标量量处理理机::一个时时钟周周期能能同时时发射射多条条指令令的处处理机机必须须有有两两条条或或两两条条以以上上能能够够同同时时工工作作的的指指令令流流水水线线。。先行行指指令令窗窗口口:能能够够从从指指令令Cache中预预取取多多条条指指令令,,能够够对对窗窗口口内内的的指指令令进进行行数数据据相相关关性性分分析析和和功功能能部部件件冲冲突突检检测测。。先行行指指令令窗窗口口的的大大小小::一一般般为为2至8条指指令令。。目前前的的指指令令调调度度技技术术,,每每个个周周期期发发射射2至4条指指令令比比较较合合理理。。例如如::Intel公司司的的i860、i960、Pentium,Motolora公司司的的MC88110,IBM公司司的的Power6000等每每个个周周期期都都发发射射两两条条指指令令;;TI公司司生生产产SuperSPARC,PentiumIII每个周期期发射三三条指令令。操作部件件的个数数一般多多于每个个周期发发射的指指令条数数。通常常为4个至16个操作部部件。超标量处处理机的的指令级级并行度度:1<ILP<m。m为每个周周期发射射的指令条数数。多流水线线调度多条流水水线的调调度问题题是一个个NP完全问题题,顺序发射射(in-orderissue)与乱序序发射((out-orderissue):指令发射射顺序是是按照程程序中指指令排列列顺序进进行的称称为顺序序发射顺序完成成(in-ordercompletion)与乱序完完成(out-ordercompletion)指令完成成顺序是是按照程程序中指指令排列列顺序进进行的称称为顺序序完成多流水线线的调度度主要有有三种方方法:顺序发射射顺序完完成,顺顺序发射射乱序完完成,乱乱序发射射乱序完完成。I1:LOADR1,A;R1←(A)I2:FADDR2,R1;R2←(R2)+(R1)I3:FMULR3,R4;R3←(R3)×(R4)I4:FADDR4,R5;R4←(R4)+(R5)I5:DECR6;R6←(R6)-1I6:FMULR6,R7;R6←(R6)+(R7)1、顺序发发射顺序序完成6条指令按按顺序分分三个时时钟周期期发射,,共用10个时钟周周期完成成。除了流水水线的装装入和排排空部分分之外,,还有8个空闲的的时钟周周期。2、顺序发发射乱序序完成与顺序发发射顺序序完成调调度方法法相比,,少了5个空闲时时钟周期期。6条指令总的执行行时间为为9个时钟周周期,与顺序序发射顺顺序完成成调度方方法相比比节省了一一个时钟钟周期。3、乱序发发射乱序序完成,必须使使用先行行指令窗窗口。除除了装装入和排排空之外外,没有空闲闲周期,,功能部部件得到到充分利利用6条指令总的执行行时间缩缩短为8个周期,比顺序序发射顺顺序完成成方法节节省2个周期,,比顺序序发射乱乱序完成成方法相相比节省省一个周周期。资源冲突突如果操作作部件采采用流水水线结构构,发生生资源冲冲突的可可能性很很小;如果不采采用流水水线结构构,发生生资源冲冲突的可可能性就就大。下面是一一个由4条指令程程序的程程序:I1:FADDR0,R1;R0←(R0)+(R1)I2:FMULR2,R3;R2←(R2)×(R3)I3:FADDR4,R5;R4←(R4)+(R5)I4:FMULR6,R7;R6←(R6)+(R7)操作部件件不采用用流水线线:做完4条指令总总共用了了11个周期,,有5个空闲周周期。操作部件件采用流流水线::做完4条指令共共用8个周期,,少用3个周期。。在超标量量处理机机中,操操作部件件采用流流水线结结构的原原因分析析假每个周周期发射射m条指令,,操作部部件的延延迟时间间为k个周期期,如果操操作部部件不不采用用流水水线结结构,,则使使用同同一个个操作作部件件的两两条指指令的的序号号应该该至少相相差m×k。如果操操作部部件采采用k个功能能段的的流水水线结结构,,则使使用同同一个个操作作部件件的两两条指指令的的序号号只需要要相差差m或m以上。指令流流水线线的段段数k一般在在4至10之间,,每个个时钟钟周期期发射射的指指令条条数m在2至4之间。。取中中间值值,k=7,m=3;为了不不发生生资源源冲突突,如如果操操作部部件不不采用用流水水线结结构,,两条使使用同同一个个功能能部件件的指指令序序号必必须相相差21或21以上;;如果操操作部部件采采用流流水线线结构构,两条使使用同同一个个功能能部件件的指指令序序号只只需要要相差差3或3以上。。因此,,在超超标量量处理理机中中,操操作部部件一一般要要采用用流水水线结结构如果由由于某某种原原因,,操作作部件件不能能采用用流水水线结结构,,则必必须设设置多多个相相同种种类的的操作作部件件普通标标量处处理机机,希希望相相同操操作连连续出出现。。只有连连续出出现相相同操操作的的指令令序列列时,,流水水线才才能不不“断流”,功能能部件件的效效率才才能得得到充充分发发挥。。超标量量处理理机则则正好好相反反,希希望相相同操操作不不要连连续出出现。。相同操操作的的指令令序列列连续续出现现时,,会发发生资资源冲冲突;;要求相相同操操作的的指令令能够够相对对均匀匀地分分布在在程序序中。。超标量量处理理机的的这种种要求求正好好符合合一般般标量量程序序的特特点。。超标量量处理理机性性能单流水水线普普通标标量处处理机机的指指令级级并行行度记记作(1,1),超标量量处理理机的的指令令级并并行度度记作作(m,1),超流水水线处处理机机的指指令级级并行行度记记作(1,n),而超标标量超超流水水线处处理机机的指指令级级并行行度记记作(m,n)。在理想想情况况下,,N条指令令在单单流水水线标标量处处理机机上的的执行行时间间为::T(1,1)=(k+N-1)t在每个个周期期发射射m条指令令的超超标量量处理理机上上执行行的时时间为为:T(m,1)=(k+))t超标量量处理理机相相对于于单流流水线线标量量处理理机的的加速速比为为:S(m,1)=超标量量处理理机的的加速速比的的最大大值为为:S(m,1)MAX=m超流水水线处处理机机两种定定义::在一个个周期期内能能够分分时发发射多多条指指令的的处理理机指令流流水线线的功功能段段数为为8段或超超过8段的流流水线线处理理机提高处处理机机性能能的不不同方方法::超标量量处理理机::通过过增加加硬件件资源源来提提高处处理机机性能能超流水线处处理机:通通过各部分分硬件的重重叠工作来来提高处理机性能能。两种不同并并行性:超标量处理理机采用的的是空间并并行性。超流水线处处理机采用用的是时间间并行性。。指令执行时时序每隔1/n个时钟周期期发射一条条指令,即处理机的的流水线周周期为1/n个时钟周期期。在超标量处处理机中,,流水线的的有些功能能段还可以以进一步细细分,例如:ID功能段,可可以再细分分为:译码码、读第一一操作数和和读第二操作数数三个流水水段。典型处理机机结构MIPSR4000处理机,每个时钟周周期包含两两个流水段段,是一种很标标准的超流流水线处理理机结构。。指令流水线线有8个流水段。。有两个Cache,指令Cache和数据Cache的容量各8KB,每个时钟周周期可以访访问Cache两次,因此在一个个时钟周期期内可以从从指令Cache中读出两条条指令,从数据Cache中读出或写写入两个数数据。主要运算部部件有整数数部件和浮浮点部件。。如果在LOAD指令之后的的两条指令令中,任何何一条指令令要在它的的EX流水级使用用这个数据据,则指令令流水线要要暂停一个个时钟周期期。采用顺序发发射方式。。超流水线处处理机性能能指令级并行行度为(1,n)的超流水线线处理机,,执行N条指令所的时间为为:超流水线处处理机相对对于单流水水线普通标标量处理机机的加速比为::即:超流水线处处理机的加加速比的最最大值为::S(1,n)MAX=n超标量超流流水线处理理机把超标量与与超流水线线技术结合合在一起,,就成为超标标量超流水水线处理机机超标量超流流水线处理理机在一个个时钟周期期内分时发发射指令m次,每次同时发发射指令n条超标量超流流水线处理理机每个时时钟周期总总共发射指指令mn条指令执行时时序典型处理机机结构超标量超流流水线处理理机性能三种指令级级并行性处处理机性能能比较指令执行时时序典型处理机机结构DEC公司的Alpha处理机采用用超标量超流流水线结构构。主要由四个个功能部件件和两个Cache组成。四个功能部部件是:整整数部件EBOX、浮点部件件FBOX、地址部件ABOX和中央控制制部件IBOX。中央控制部部件IBOX能够同时读读出两条指指令,同时对两条条指令进行行译码,作作资源冲突突检测,进进行数据相相关性和控制相关关性分析。。如果资源源和相关性性允许,IBOX就把两条指指令同时发射射给EBOX、ABOX和FBOX三个执行部部件中的两两个。指令流水线线采用顺序发射乱乱序完成的控制方式式。在指令Cache中有一个转转移历史表表,实现条条件转移的的动态预测测。在EBOX内还有多条条专用数据据通路,可可以把运算算结果直接接送到执行行部件。Alpha21064处理机共有有三条指令流流水线,(1)整数操作流流水线为7个流水段,,其中,取指令为2个流水段分析指令为为2个流水段运算为2个流水段写结果1个流水段(2)访问存储器器流水线为为7个流水段,,(3)浮点操作流流水线分为为10个流水段,,其中,浮点执行部部件FBOX的延迟时间间为6个流水段。。因为三条指令流流水线的平平均段数为为8,且每个时时钟周期发发射两条指令。因因此,Alpha21064处理机是超超标量超流流水线处理理机所有指令执执行部件,,包括EBOX、IBOX、ABOX和FBOX中都设置有专用数据据通路。超标量超流流水线处理理机性能指令级并行行度为(m,n)的超标量超超流水线处处理机,连续执行N条指令所需需要的时间间为:超标量超流流水线处理理机相对于于单流水线线标量处理理机的加速比为::在理想情况况下,超标标量超流水水线处理机机加速比的的最大值为为:S(m,n)MAX=mn三种指令级级并行处理理机性能比比较超标量处理理机、超流流水线处理理机和超标标量超流水水线处理机机相对于单流流水线普通通标量处理理机的性能能曲线。9、静夜夜四无无邻,,荒居居旧业业贫。。。12月月-2212月月-22Thursday,December29,202210、雨中黄叶叶树,灯下下白头人。。。20:48:5520:48:5520:4812/29/20228:48:55PM11、以我独沈久久,愧君相见见频。。12月-2220:48:5520:48Dec-2229-Dec-2212、故人人江海海别,,几度度隔山山川。。。20:48:5520:48:5520:48Thursday,December29,202213、乍见翻疑梦梦,相悲各问问年。。12月-2212月-2220:48:5520:48:55December29,202214、他他乡乡生生白白发发,,旧旧国国见见青青山山。。。。29十十二二月月20228:48:55下下午午20:48:55

温馨提示

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

评论

0/150

提交评论