文章目录

  • 指令流水的定义
    • 1. 顺序执行方式:总耗时T = n×3t = 3nt
      • 优缺点
    • 2. 一次重叠执行方式:总耗时T = 3t + (n-1)×2t = (1+2n)t
      • 优缺点
    • 3. 二次重叠执行方式:总耗时T = 3t + (n-1)×t = (2+n)t
      • 注意:
  • 流水线的表示方法
    • 1. 指令执行过程图
    • 2. 时空图
  • 流水线的性能指标
    • 1. 吞吐率
    • 2. 加速比
    • 3. 效率:

 

指令流水的定义

一条指令的执行过程可以分成多个阶段(或过程)。
根据计算机的不同,具体的分法也不同。

  • 取指:根据PC内容访问主存储器,取出一条指令送到IR中。
  • 分析:对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从有效地址EA中取出操作数。(特点:每个阶段用到的硬件不一样。)
  • 执行:根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中。

设取指、分析、执行3个阶段的时间都相等,用t表示 ,按以下几种执行方式分析n条指令的执行时间

1. 顺序执行方式:总耗时T = n×3t = 3nt

指令流水线——基本概念与性能指标_编程语言
传统冯·诺依曼机采用顺序执行方式,又称串行执行方式。

优缺点

优点:控制简单,硬件代价小。
缺点:执行指令的速度较慢,在任何时刻,处理机中只有
一条指令在执行,各功能部件的利用率很低。

2. 一次重叠执行方式:总耗时T = 3t + (n-1)×2t = (1+2n)t

指令流水线——基本概念与性能指标_计算机组成原理_02

优缺点

优点:程序的执行时间缩短了1/3,各功能部件的利用率明显提高。
缺点:需要付出硬件上较大开销的代价,控制过程也比顺序执行复杂了

3. 二次重叠执行方式:总耗时T = 3t + (n-1)×t = (2+n)t

指令流水线——基本概念与性能指标_编程语言_03

与顺序执行方式相比,指令的执行时间缩短近2/3。这是一种理想的指令执行方式,在正常情况下,处理机中同时有3条指令在执行。

注意:

也可以把每条指令的执行过程分成4个或5个阶段,分成5个阶段是比较常见的做法。

流水线的表示方法

通过指令执行过程图与时空图的方式进行表示

1. 指令执行过程图

指令流水线——基本概念与性能指标_计算机组成原理_04
主要用于分析指令执行过程以及影响流水线的因素

2. 时空图

空间:不同的阶段所对应的不同的硬件资源

指令流水线——基本概念与性能指标_python_05
主要用于分析流水线的性能

流水线的性能指标

流水线的性能指标有以下三个标准:

  1. 吞吐率
  2. 加速比
  3. 效率

我们分别来看:

1. 吞吐率

吞吐率是指在单位时间内流水线所完成的任务数量,或是输出结果的数量。

设任务数为n;处理完成n个任务所用的时间为Tk

则计算流水线吞吐率(TP)的最基本的公式为 TP = n/Tk。

理想情况下,流水线的时空图如下:

指令流水线——基本概念与性能指标_编程语言_06

一条指令的执行分为k个阶段,每个阶段耗时△t ,一般取△t =一个时钟周期

2. 加速比

加速比:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。

设T0表示不使用流水线时的执行时间,即顺序执行所用的时间;Tk表示使用流水线时的执行时间

则计算流水线加速比(S)的基本公式为 S = T0/Tk

理想情况下,流水线的时空图如下:
指令流水线——基本概念与性能指标_linux_07
一条指令的执行分为k个阶段,每个阶段耗时△t ,一般取△t =一个时钟周期

3. 效率:

效率:流水线的设备利用率称为流水线的效率。

在时空图上,流水线的效率定义为完成n个任务占用的时空区有效面积与 n个任务所用的时间与k个流水段所围成的时空区总面积之比。

理想情况下,流水线的时空图如下:

指令流水线——基本概念与性能指标_linux_08

一条指令的执行分为k个阶段,每个阶段耗时Dt ,一般取Dt =一个时钟周期