> 文章列表 > 《软件设计师-知识点》

《软件设计师-知识点》

《软件设计师-知识点》

1、指令流水线

(一)一条指令的执行过程可分为三个阶段:取指分析执行

取指根据PC(程序计数器)内容访问主存储器,取出一条指令送到IR(指令寄存器)中。

分析对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从EA中取出操作数。

执行根据操作码字段,完成指令规定的功能,即把运算结果写道通用寄存器或主存中。当多条指令在处理器中执行时,可以采用以下三种方式:

顺序执行方式一次重叠执行方式二次重叠执行方式

顺序执行方式:指令按顺序执行,前一条指令执行完后,才启动下一条指令。优点是控制简单,硬件代价小;缺点是执行指令的速度较慢,在任何时刻,处理机中只有一条指令在执行,各功能部件的利用率很低。

一次重叠执行方式:这种方式同时进行第k条指令的执行阶段和第k+1条指令的取指阶段。

二次重叠执行方式:为了进一步提高指令的执行速度,可以把取k+1条指令提前到分析第k条指令的期间完成,而将分析第k+1条指令与执行第k条指令同时进行。

(二)衡量流水线性能的主要指标有吞吐率、加速比和效率。

(1)吞吐率有个公式:指令条数除以流水线时间

(2)流水线时间计算有个公式:一条指令所需时间+(指令条数-1)*时间最长的指令的一段
即:7+(8-1)*3 = 28

则吞吐率 = 8/28Δt

(3)流水线的加速比:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。计算流水线加速比的基本公式如下:s=不使用流水线执行时间/使用流水线执行时间

(4)流水线的效率:流水线的效率是指流水线的设备利用率。在时空图上,流水线的效率定义为n个任务占用的时空区与k个流水段总的时空区之比。公式为:
  流水线效率 = n个任务占用的时空区/k个流水线的总时空区

待续