01计算机组成原理与体系结构
7-流水线技术
2021-07-22 797 5
简介 本文介绍了流水线相关概念,流水线的周期、时间计算,流水线的吞吐率、加速比、效率的计算。
1. 流水线(pipeline)概念
工业制造中的流水线起源于福特公司,流水线理念最早的运用,可以追溯到十九世纪上半叶,但未能引起重视;到1903年,亨利·福特创办了福特汽车公司,自那之后,“流水线”作业才以革命者的强势态度登堂入室,一路摧枯拉朽,让现代工业焕发出全新的生机。
计算机中的流水线技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度, 福特公司第一次使用到流水线技术
假设指令的执行需要3个步骤:取地址、分析、执行
Fetching an instruction
Decoding it
Executing it
未使用流水线的情况:
使用流水线的情况:
2. 流水线的周期和执行时间
流水线的周期为执行时间最长的一段
理论公式
(t1 + t2 + ... + tk) + (n - 1) * Δt
k表示一条指令分几部分执行, n表示指令的条数, Δt为指令的周期时间, 也就是 1条指令执行时间 + (指令条数 - 1) * 流水线的周期
实践公式
(k + n -1)* Δt
k表示一条指令分几部分执行, n表示指令的条数,Δt为指令的周期时间
例题1:
若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别是取指2ns,分析2ns,执行1ns,那么,流水线周期是多少?100条指令全部执行完毕需要的时间是多少?
理论公式计算: 2+2+1 +(100-1)*2 = 203ns
实践公式计算: 3* 2 + (100 - 1) * 2 = 204ns
※ 前三个周期时间称为流水线的建立时间(流水线运转起来的时间), 理论公式计算中的 2 + 2 +1(实践公式中的 3 * 2)为流水线的建立时间
3. 流水线的吞吐率和最大吞吐率
流水线- 吞吐率计算
流水线的吞吐率(Through Put rate, TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量,
计算流水线吞吐率的最基本公式: TP= 指令条数 / 流水线执行时间
最大吞吐率TP(max):
TP= 1 / △t
最大吞吐率的理解:
1. 当n趋于无穷大的时候, n / (k+n-1) 接近于1 (n为指令条数, k为指令分k个阶段执行)
2. 当n趋于无穷大,或者忽略第一条指令的执行时间(流水线的创建时间),那么一个周期执行一条指令, 所以最大吞吐率为 1 / △t
4. 流水线加速比
加速比 s = 不使用流水线的执行时间 / 使用流水线的执行时间
加速比越高越高, 使用流水线的效率越高
5. 流水线的效率
流水线的效率是指流水线的设备利用率。在时空图上,流水线的效率定义为n个任务占用的时空区与k个流水段总的时空区之比
(△t + △t + △t + 3△t )* 4 4个任务占用的时空区
15△t * 4 4个任务占用的总时空区
效率 E = (△t + △t + △t + 3△t )* 4 / 15△t * 4
引入效率的概念,是为了研究如何设计流水线,使流水线的效率最高