目录
一、指令控制方式 1.1 说明 1.2 顺序方式 1.3 重叠方式 1.4 流水方式
二、流水线的种类 三、流水的相关处理 3.1 说明 3.2 RISC 中采用的流水技术 3.2.1 超流水线(Super Pipe Line)技术 3.2.2 超标量(Super Scalar)技术 3.2.3 超长指令字(Very Long Instruction Word,VLIW)技术
四、吞吐率和流水建立时间 五、例题
一、指令控制方式
1.1 说明
1.指令控制方式有顺序方式 、重叠方式 和流水方式 3种。
1.2 顺序方式
1.各机器指令之间顺序串行执行,执行完一条指令才能取下一条指令 2.这种方式控制简单,但利用率低
1.3 重叠方式
1.执行第1条指令的时候,可以开始执行第2条指令 2.复杂性不高、处理速度较快 3.容易发生冲突 4.例如假设某计算机指令分为分析指令和执行指令两个小步骤,可以在某个时候,第一条指令中的执行指令和第二条指令中的分析指令同时在执行 5.如图,指令1的执行指令和指令2的分析指令在同时执行
1.4 流水方式
1.流水方式是模仿工业生产过程的流水线(如汽车装配线)而提供的一种指令控制方式。 2.流水技术(Pipelining)是把并行性或并发性嵌入到计算机系统里的一种形式,它把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效地并发工作。 3.在概念上,流水可以看成是重叠的延伸。差别仅在于一次重叠是把指令解释分解为两个子过程,流水是分解为更多的子过程。
二、流水线的种类
1.从流水的级别上,可分为部件级、处理机级以及系统级的流水。 2.从流水的功能上,可分为单功能流水线和多功能流水线。 3.从流水的连接上,可分为静态流水线和动态流水线。 4.从流水是否有反馈回路,可分为线性流水线和非线性流水线。 5.从流水的流动顺序上,可分为同步流水线和异步流水线。 6.从流水线的数据表示上,可分为标量流水线和向量流水线。
三、流水的相关处理
3.1 说明
1.由于流水时机器同时解释多条指令,这些指令可能有对同一主存单元或同一寄存器的“先写后读”的要求,这时就出现了相关。 2.这种相关包括指令相关、访存操作数相关以及通用寄存器组相关等,它只影响相关的两条或几条指令,而且最多影响流水线的某些段推后工作,并不会改动指令缓冲器中预取到的指令内容,影响是局部的,所以称为局部性相关。 3.解决局部性相关有两种方法:推后法 和通路法 。 4.推后法是推后对相关单元的读,直至写入完成。 5.通路法设置相关专用通路,使得不必先把运算结果写入相关存储单元,再从这里读出后才能使用,而是经过相关专用通路直接使用运算结果,以加快速度。 6.转移指令(尤其是条件转移指令)与它后面的指令之间存在关联,使之不能同时解释。 7.执行转移指令时,可能会改动指令缓冲器中预取到的指令内容,从而会造成流水线吞吐率和效率下降,比局部性相关的影响要严重得多,所以称为全局性相关。 8.解决全局性相关有3种方法:猜测转移分支、加快和提前形成条件码、加快短循环程序的处理。 9.条件转移指令有两个分支,一个分支是按原来的顺序继续执行下去,称为转移不成功分支;另一个分支是按转移后的新指令序列执行,称为转移成功分支。 10.许多流水机器都猜选转移不成功分支,若猜对的几率很大,流水线的吞吐率和效率就会比不采用猜测法时高得多。 11.尽早获得条件码以便对流水线简化条件转移的处理。 12.例如,一个乘法运算所需的时间较长,但在运算之前就能知道其结果为正或为负,或者是否为0,因此,加快单条指令内部条件码的形成,或者在一段程序内提前形成条件码,对转移问题的顺利解决是很有好处的。 13.由于程序中广泛采用循环结构,因此流水线大多采用特殊措施以加快循环程序的处理。 14.例如,使整个循环程序都放入指令缓冲存储器中,对提高流水效率和吞吐率均有明显效果。 15.中断和转移一样,也会引起流水线断流。好在中断出现的概率要比条件转移出现的概率低得多,因此只要处理好断点现场保护及中断后的恢复,尽量缩短断流时间即可。
3.2 RISC 中采用的流水技术
3.2.1 超流水线(Super Pipe Line)技术
1.它通过细化流水、增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。 2.其实质是以时间换取空间。 3.超流水机器的特征是在所有的功能单元都采用流水,并有更高的时钟频率和更深的流水深度。 4.由于它只限于指令级的并行,所以超流水机器的 CPI(Clock Cycles Per Instruction,每个指令需要的机器周期数)值稍高。
3.2.2 超标量(Super Scalar)技术
1.它通过内装多条流水线来同时执行多个处理,其时钟频率虽然与一般流水接近,却有更小的CPI。 2.其实质是以空间换取时间。
3.2.3 超长指令字(Very Long Instruction Word,VLIW)技术
1.VLIW 和超标量都是 20 世纪80年代出现的概念,其共同点是要同时执行多条指令,其不同在于超标量依靠硬件来实现并行处理的调度,VLIW 则充分发挥软件的作用,而使硬件简化,性能提高。 2.VLIW 有更小的 CPI值,但需要有足够高的时钟频率。
四、吞吐率和流水建立时间
1.吞吐率是指单位时间内流水线处理机流出的结果数。 2.对指令而言,就是单位时间内执行的指令数。 3.如果流水线的子过程所用时间不一样,则吞吐率p应为最长子过程的倒数。 4.流水线开始工作,需经过一定时间才能达到最大吞吐率,这就是建立时间。 5.若m个子过程所用时间一样,均为△t,则建立时间T=m△t。
五、例题
5.1 例题1
1.执行指令时,将每一节指令都分解为取指、分析和执行三步。已知取指时间为5△t,分析时间为2△t,
执行时间为3△t,如果按照[取指]k,[分析]k+1,[执行]k+2重叠的流水线方式执行指令,
从头到尾执行完500条指令需(B)△t。
A.2500
B.2505
C.2510
D.2515
1.流水线执行时间=流水线建立时间+(n-1)x流水线周期。
2.流水建立时间=5△t+2△t+3△t10△t。
3.流水线周期为时间最长的指令执行时间,即5△t。
4.流水线建立好时,已经执行了一次,所以剩下时间为(n-1)x5△t。