第3章流水线技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章流水线技术
流水线是计算机体系结构设计中普遍应用的技术。本章介绍流水线的基本概念、表示方法、和分类,讨论流水线实现的基本结构、线性流水线的性能与非线性流水线的调度策略,分析流水线的相关及其处理方法。
2.1 流水线的基本概念
2.1.1 多条指令的执行方式
一条指令的执行过程可以分为多个阶段,通常分为三个阶段,执行过程如图2-1所示。第一阶段是取指令,按照程序计数器的内容访问主存储器,取出是一条指令送到指令寄存器。第二阶段是分析指令,对指令寄存器中的指令进行译码分析,即对指令操作码进行译码,分析指令的功能,依据给定的寻址方式和地址码字段的内容形成操作数地址,并读取操作数(立即数寻址除外);同时,程序计数器自动产生一个增量,指到下一条指令。第三阶段是执行指令,根据操作码的要求,对操作数进行运算和处理,完成指令规定的功能,并把运算结果送到指定的地址中。指令执行过程中的第一阶段,一定要访问主存(指令一定在主存中),而在后两个阶段,也可能要访问主存(当操作数在主存中时)。当有多条指令要在一个处理机中完成时,可以有多种执行方式。现假设3个阶段所需要的时间均为△t 。
2.1.1.1 顺序执行方式
顺序执行方式是指在任何时刻,处理机中只有一条指令在执行,指令之间是顺序串行执行的,即第k条指令执行完成后,再执行完成第k+1条指令,依次类推。多条指令执行过程如图2-2(a)所示,执行n条指令所需要的时间为T = 3n△t。
顺序执行方式的优点是控制简单,节省设备。主要缺点有两个,一是处理机执行指令的速度慢。只有当上一条指令执行完毕后,下一条指令才能开始执行。二是功能部件的利用率低。如取指令时主存是忙碌的,而指令执行部件是空闲的。
2.1.1.2 一次重叠执行方式
一次重叠执行方式是指在任何时刻,处理机中至多只有两条指令在同时执行,即使第k 条指令的执行阶段与第k+1条指令的取指令同时进行。多条指令执行过程如图2-2(b)所示,执行n条指令所需要的时间为T = (2n+1)△t。
一次重叠执行方式的主要优点有两个,一是执行n条指令所需要的时间缩短了近一半,二是功能部件的利用率明显提高,如主存可以基本上处于忙碌状态。但是为此需要付出一定的代
计算机体系结构 4 价,即需要增加一些硬件,控制过程也复杂一些。例如,为了能够在执行第k 条指令的同时取第k+1条指令,必须再增加一个指令寄存器,用原来的指令寄存器存放第k 条指令,而新增加的指令寄存器存放第k+1条指令。
2.1.1.3 二次重叠执行方式
二次重叠执行方式是指在任何时刻,处理机中至多可以有3条指令在同时执行,使第k-1条指令的执行阶段与第k 条指令的分析阶段、第k+1条指令的取指令同时进行。多条指令执行过程如图2-2(c )所示,执行n 条指令所需要的时间为T = (n+2)△t 。
图2-2 多条指令的几种执行方式
二次重叠执行方式进一步提高了指令的执行速度,相对顺序执行方式执行n 条指令所需要的时间缩短了近2/3,当然也需要付出更高的代价。
可见,实现多条指令重叠执行,使程序运行如同生产流水线一样源源不断地执行指令,就能有效地提高处理执行指令的速度。当然,同时也会带来许多新的问题,就需要RISC 、先行控制、相关转移处理等许多新技术来支持。
2.1.2 什么是流水线
计算机中的流水线与工厂中的生产流水线十分相似。例如汽车装配生产流水线,整个装配分为多道工序(子过程),每道工序由一个或多个人完成,各道工序所花时间也差不多。当整条流水线流动起来之后,每隔一定的时间间隔(即是一道工序的时间)就有一辆汽车下线。如果跟踪一辆汽车装配的全过程,就会发现一辆汽车装配的总时间并没有缩短,但采用装配流水线后,由于多辆汽车时间上重叠装配,使得总体的装配速度得到极大的提高。
一般说来,流水线技术(Pipelining )是指把一个重复的处理过程分解为若干个子过程,
当每个子过程都设置一个功能部件来实现时,一个过程的子过程可以与其他过程的不同的子过程同时进行,实现多个不同过程在时间上重叠进行的工作方式。过程中所有子过程或实现子过程的所有功能部件按一定的次序连接在一起,即是流水线(Pipelining )。从本质上讲,流水
(a )顺序执行方式 (c )二次重叠执行方式
(b )一次重叠执行方式
第2章 流水线技术 5
线技术是一种时间并行技术,是通过时间重叠的技术途径实现并行处理(时间并发性)。
流水线中的子过程或功能部件称为称为流水段(Stage ),或称流水节拍、流水步、流水步骤、流水阶段或功能段等,流水线中的段数称为流水线的深度(Pipelining Depth )。过程从流水线的一端进入,经过流水线的处理,从流水线的另一端排出。流水线技术是一种非常经济而又有效的技术,已成为计算机中普遍使用的一种并行处理技术。采用流水线技术只需要增加少量的硬件,就能够把处理机的运算速度提高几倍。
2.1.3 流水线的表示方法
流水线的表示方法有3种:连接图、时空图和预约表,其中时空图用于表示线性流水线,预约表用于表示非线性流水线,而连接图则均可表示。现假设一条指令的执行过程分为取指、译码、执行、保存结果四个子过程,相应的指令流水线也要分为取指令、译码、执行、保存结果四个流水段,且对某些指令的执行流水段要重复使用一次。相应的指令流水线可用连接图、时空图和预约表来表示。
2.1.
3.1 连接图
四个流水段的指令流水线的连接图如图2-3所示,其实质是将带执行时间的各流水段按照流水线的执行顺序从左到右排列,并用带箭头的直线把它们连接起来。
(a )线性指令流水线的连接图
(b ) 非线性指令流水线的连接图
图2-3 四功能段指令流水线连接图
2.1.
3.2 时空图
图2-4 四功能段指令流水线时空图 时空图是一种最常用、能直观描述线性流水线工作过程的表示方法。四个流水段的指令流水的时空图如图2-4所示。其实质是利用平面直角坐标系的第一象限。横坐标表示时间,即是输入到流水线的各个任务在流水线中所经过的时间。当流水线中各个流水段的执行时间都相等时,横坐标被分割成相等长度的时间段。纵坐标表示空间,即流水线的每一取指令译码
执行保存结果空间 时间
t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8
t 4
t 4