流水线技术--流水线中的相关

合集下载

最新3 4流水线中的相关

最新3 4流水线中的相关

34流水线中的相关3 4流水线中的相关流水线中的相关是指相邻或相近的指令因存在某种关联,后面的指令不能在原指定的时钟周期开始执行。

一般来说,流水线中的相关主要分为如下三种类型:1.结构相关:当硬件资源满足不了指令重叠执行的要求,而发生资源冲突时,就发生了结构相关。

2.数据相关:当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起数据相关。

3.控制相关:当流水线遇到分支指令和其它能够改变PC值的指令时,就会发生控制相关。

一旦流水线中出现相关,必然会给指令在流水线中的顺利执行带来许多问题,如果不能很好地解决相关问题,轻则影响流水线的性能,重则导致错误的执行结果。

消除相关的基本方法是让流水线暂停执行某些指令,而继续执行其它一些指令。

在后面的讨论中,我们约定:当一条指令被暂停时,在该暂停指令之后发射的所有指令都要被暂停,而在该暂停之前发射的指令则可继续进行,在暂停期间,流水线不会取新的指令。

如果某些指令组合在流水线中重叠执行时,产生资源冲突,则称该流水线有结构相关。

为了能够在流水线中顺利执行指令的所有可能组合,而不发生结构相关,通常需要采用流水化功能单元的方法或资源重复的方法。

许多流水线机器都是将数据和指令保存在同一存储器中。

如果在某个时钟周期内,流水线既要完成某条指令对数据的存储器访问操作,又要完成取指令的操作,那么将会发生存储器访问冲突问题(如图3.3.1所示),产生结构相关。

为了解决这个问题,可以让流水线完成前一条指令对数据的存储器访问时,暂停取后一条指令的操作(如图3.3.2所示)。

该周期称为流水线的一个暂停周期。

暂停周期一般也称为流水线气泡,或简称为气泡。

从图3.3.2可以看出,在流水线中插入暂停周期可以消除这种结构相关。

图3.3.1由于存储器访问冲突而带来的流水线结构相关图3.3.2为消除结构相关而插入的流水线气泡也可以用如图3.3.3所示的时空图来表示上述暂停情况。

计算机体系结构——流水线技术(Pipelining)

计算机体系结构——流水线技术(Pipelining)
2.按功能分
单功能流水线:流水线只完成一种固定功能 多功能流水线:流水线可以完成多种功能,如 TI公司的ASC机,8段流水线,能够实现:定点加减 法、定点乘法、浮点加法等功能 3.按同一时间内各段之间的连接方式分 静态多功能流水线 :同一时间内,多功能结构只能按一种功能的连接方式工作。 动态多功能流水线:在同一时间内,可以有多种功能的连接方式同时工作 4.按处理的数据类型 标量流水线 向量流水线 5.按控制方式 同步流水线 异步流水线:当Si功能段要向Si+1段传送数据时,首 先发出就绪信号,Si+1功能段收到信号后,向Si回送 一个回答信号。 6.按任务从输出端的流出顺序 顺序流水方式:指令流出顺序 = 指令流入顺序 乱序流水方式:指令流出顺序 != 指令流入顺序 7. 线性流水线——不带反馈回路的流水线
三、流水线的分类(了解)
四、流水线相关及冲突(重点) 1.流水线相关 2.流水线冲突 3.流水线冲突带来问题 4.数据冲突及其解决方案 5.结构冲突及其解决方案 6.控制冲突及其解决方案
五、流水线性能分析(含例题讲解) 1.流水线的基本参数——吞吐率 2.流水线的基本参数——加速比 3.流水线的基本参数——效率 4.结果分析 5.有关流水线性能的若干问题
整体评估、反馈、再改进
3. 指令周期
单周期处理机模型:一个周期完成一个指令(每个周期是等长的),指令长度可能不一样,会造成很大的浪费 多周期处理机模型:将一个指令的完成划分成若干个周期来实现 流水线模型
二、流水线技术 1. 什么是流水线? 计算机中的流水线是把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行进行。由于这种工作方式与工厂中的生产 流水线十分相似, 因此称为流水线技术 从本质上讲,流水线技术是一种时间并行技术。

吉林大学计算机系统结构题库第三章

吉林大学计算机系统结构题库第三章

第三章流水线技术知识点汇总先行控制、流水线、单功能流水线、多功能流水线、静态流水线、动态流水线、部件级流水线、处理机级流水线、处理机间流水线、线性流水线、非线性流水线、顺序流水线、乱序流水线、时空图、流水线性能评价(吞吐率、加速比、效率)、解决流水线瓶颈问题方法、相关(数据相关、名相关、控制相关)、换名技术、流水线冲突(结构冲突、数据冲突、控制冲突)、流水线互锁机制、定向技术、指令调度、预测分支失败、预测分支成功、延迟分支(从前调度、从失败处调度、从成功处调度)、流水寄存器、3种向量处理方式(横向、纵向、纵横)、链接技术。

简答题1.流水技术有哪些特点?(答出4个即可)(知识点:流水线)答:1.将处理过程分解为若干子过程,由专门的功能部件来实现,2各段的时间尽可能相等,3各部件间都有一个缓冲寄存器,4适用于大量重复的时序过程,5需要通过时间和排空时间。

2.什么是静态流水线?什么是动态流水线?(知识点:静态流水线、动态流水线)答:同一时间段内,多功能流水线中的各段只能按同一种功能的连接方式工作;同一时间段内,多功能流水线中的各段可以按照不同的方式连接同时执行多种功能。

3.什么是单功能流水线?什么是多功能流水线?(知识点:单功能流水线、多功能流水线)答:只能完成一种固定功能的流水线。

流水线的各段可以进行不同的连接,以实现不同的功能。

4.什么是线性流水线?什么是非线性流水线?(知识点:线性流水线、非线性流水线)答:流水线的各段串行连接,没有反馈回路。

流水线中除了有串行的连接外,还有反馈回路。

5.列举3种相关。

(知识点:相关)答:数据相关,名相关,控制相关。

6.流水线中有哪三种冲突?各是什么原因造成的?(知识点:流水线冲突)答:结构冲突,硬件资源满足不了指令重叠执行的要求;数据冲突,指令在流水线中重叠执行时需要用到前面指令的执行结果;控制冲突,流水线遇到分支指令和其他会改变PC值的指令。

7.选择至少2种解决流水线结构冲突的方法简述。

流水线技术——DLX流水线数据通路

流水线技术——DLX流水线数据通路

四种不同的数据相关
• 两条指令i 和j,都会访问同一寄存器R, 假设i 先进入流水线,则它们对R有四种不 同的访问顺序: • (1)写后读(RAW )——i写j读
–如果j 在i 完成写之前从R 中读出数据,将得 到错误的结果! –最常见的数据相关,严重制约了CPU的性能, 是程序最重要的特征之一!
1
2
2
3 … … n-1 n
时间
3 … … n-1 n (n-1) Dt
3 … … n-1 n
mD t
nDt
T
(m-1)Dt

• 相关的概念
–现代汉语词典 • 彼此关连;互相牵涉 –流水线中的相关 • 指相邻或相近的两条指令因存在某种关联, 后一条指令不能在原指定的时钟周期开始执 行。
• 三种相关
• 资源相关(又称结构相关)
流水线技术——DLX流水线数据通 路
(IF) (ID) (EX) (MEM)
(WB)
IF
ID EX MEM WB
• 性能指标
– 吞吐率(TP, Thoughput Rate) – 加速比(Speed Ratio) – 效率(Efficiency)
空间
S4 1 2 3 … … n-1 n
S3
S2 S1 1 1 2
流水线技术——DLX流水线数据通 路
(IF) (ID) (EX) (MEM)
(WB)
• • • •
通过定向技术减少数据相关带来的暂停 定向(forwarding),也称为旁路(bypassing) 工作过程 主要思路:将计算结果从其产生的地方直 接送到真正需要它的地方,就可以避免暂 停。
–寄存器文件EX/MEM中的ALU运算结果总是回送 到ALU的输入寄存器 –从定向通路得到输入数据的ALU操作不必从源 寄存器中读取操作数

预备知识-流水线相关与冒险

预备知识-流水线相关与冒险

流水线的相关与冒险
通过定向技术减少数据冒险引起的停顿
(定向技术也称为旁路或短路)

关键思想:在某条指令产生计算结果之前,其他指 令并不真正立即需要该计算结果,如果能够将该计 算结果从其产生的地方直接送到其他指令需要它的
地方,那么就可以避免停顿。

采用定向技术消除上例中的相关 工作过程演示
流水线的相关与冒险
指令i 指令i+1
指令i+2 指令i+3 指令i+4 指令i+5
IF
ID IF
EX ID
IF
MEM EX
ID stall
WB MEM
EX IF
WB
MEM ID IF WB EX ID IF WB MEM EX ID WB MEM EX WB MEM
流水线的相关与冒险
有时流水线设计者允许结构冒险的存在
写回周期(WB)
ALU运算指令和load指令在这个周期把结果 数据写入通用寄存器组。
ALU运算指令:结果数据来自ALU。 load指令:结果数据来自存储器系统。
在这个实现方案中:

分支指令需要4个时钟周期(如果把分支指令的执行 提前到ID周期,则只需要2个周期)。 store指令需要4个周期。 其他指令需要5个周期才能完成。
指令j写的名=指令i写的名
流水线的相关与冒险

名相关的两条指令之间并没有数据的传送。
如果一条指令中的名改变了,并不影响另外一条指
令的执行。
换名技术

换名技术:通过改变指令中操作数的名来消除名相关。
对于寄存器操作数进行换名称为寄存器换名。
既可以用编译器静态实现,也可以用硬件动态完成。

流水线原理——ILP

流水线原理——ILP
– 编译器,指令调度。乱序执行,动态调度
llxx@ 18
直到C6,数据才可用
指令调度
• 指令调度,是RISC微处理器编译技术之一。 • 指令调度是解决数据相关的最经济的方法,它可以解决RAW、WAR 和WAW数据相关。 • 假设有这样一个指令序列: I0: R1+R2R3 I1: R3+R4R5 I2: R7 OR R8R9 • 假定我们按下列方法重新安排指令次序: R1+R2 R3 R7 OR R8 R9 R3+R4 R5
从此开始,每个 周期流出一条指 令,IPC≈1
Execute Store res.
pipelined instruction execution
Time
llxx@
9
流水线分类
• 单功能流水线:只能完成一种功能的流水线,如浮点加法 流水线。 • 多功能流水线:流水线的各段可以进行不同的连接,从而 使流水线在不同的时间完成不同的功能。 • 静态流水线:在某一时间段内,流水线的各段只能按同一 种功能的连接方式工作,即只有当输入是一串相同性质的 操作时其性能才能得到发挥。 • 动态流水线:在某一段时间内,某些段正在实现某类操作 (定点乘),其他段却在实现另一类操作(浮点加)。 • 线性流水线:流水线的各段串行连接,没有反馈回路。 • 非线性流水线:流水线中除了串行的通路,还有反馈回来。 • 顺序流水线:流水线的流出顺序与其流入顺序相同。 • 乱序流水线:流水线的流出顺序与其流入顺序不同。
Pipelined
non-pipelined dish cleaning
Time
pipelined dish cleaning
Time
• 流水过程由多个相互联系的子过程组成,每个子过程称为 流水线的“级”或“段”。

计算机体系结构之流水线技术(ppt 125页)

计算机体系结构之流水线技术(ppt 125页)
3 流水线技术
张伟 计算机学院
大纲
1 概念定义 2 流水线分类 3 MIPS五级流水线 4 性能分析 5 流水线相关 6 高级流水线技术
1 概念定义
洗衣店的例子
A, B, C, D 均有一些衣物要 清洗,甩干,折叠
清洗要花30 分钟 甩干要用40 分钟 叠衣物也需要20 分钟
流水线输出端任务流出的顺序与输入端任务流 入的顺序相同。
异步流动流水线(乱序流水线):
流水线输出端任务流出的顺序与输入端任务流 入的顺序不同。
3 MIPS五级流水线
DLX(Dancing Links)
DLX 是一种简单的指令集(教学、简单芯片) 在不流水的情况下,如何实现DLX。
实现DLX指令的一种简单数据通路
4. 存储器访问周期MEM(Memory Access) 5. 写回周期WB(Write Back)
MIPS的简单实现
Instruction Fetch
Instr. Decode Reg. Fetch
Next PC
Next SEQ PC
4
RS1
RS2
Execute Addr. Calc
Zero?
RD
增加了向后传递IR和从MEM/WB.IR回送到通用寄存 器组的连接。
将对PC的修改移到了IF段,以便PC能及时地加 4,为取下一条指令做好准备。
2. 每一个流水段进行的操 作
IR[rs]=IR6..10 IR[rt]=IR11..15 IR[rd]=IR16..20
流水线的每个流水段的操作
将有效地址计算周期和执行周期合并为一个时钟周期,这
是因为MIPS指令集采用load/store结构,没有任何指令
需要同时进行数据有效地址的计算、转移目标地址的计算

流水线技术

流水线技术

8.2
8.2.1
流水线的分类方法
流水线的分级
根据使用流水线的级别差异,可以把流水线分为功能 部件级、处理机级和处理机之间级等多种流水线类型。
⑴ 功能部件级流水线
所谓功能部件级流水线,又称为运算操作流水线
(arithmetic pipelines)。图8-5中的浮点加法器就是一种典
型的功能部件级流水线。要提高执行部件执行算术逻辑运 算操作的速度,除了在运算操作部件中采用流水线之外, 还可以设置多个独立的操作部件,并通过这些操作部件的 并行工作,来提高处理机执行算术逻辑运算的速度。
可见,当流水线的各段执行时间不相等时,流水线的吞吐率 主要由执行时间最长的“瓶颈”流水段决定,这种流水结构
显然会造成机器资源的浪费。
解决方法:

⑴ 将“瓶颈段”进一步细分,消除“瓶颈”。
⑵ 若由于结构等方面的原因,“瓶颈段”无法再细分时,
可通过重复设置“瓶颈段”的方法,用多段并行工作的方 法来解决,见教材。
∴ 流水线的实际吞吐率为:
n TP (k n 1)t
当任务数n>>段数k时(取n→∞时),可得最大吞吐率为:
TPmax
n 1 lim n ( k n 1) t t
2. 各段执行时间不相等的流水线 (如图)
这时, 流水线的传送时钟周期应当为:
t Max(t1 , t 2 , t 3 , t 4 )
3 流水线的特点
⑴ 把一个任务(一条指令或一个操作)分解为几个有联系的子 任务,每个子任务由一个专门的功能部件来实现,依靠多 个功能部件并行工作来缩短程序的执行时间。 ⑵ 由于流水线中每一个流水段的延迟时间不可能绝对相等, 再加上电路的延迟时间和时钟等都存在偏移,因此,流水 段之间传送任务时,必须通过锁存器。 ⑶ 流水线中各功能段的延迟时间应尽量相等,否则将引起堵 塞、断流。流水线的瓶颈,会造成流水线中的其它功能部 件不能充分发挥作用。

高性能计算中的流水线技术分析(三)

高性能计算中的流水线技术分析(三)

在高性能计算中,流水线技术是一种重要的优化手段,可以提高计算效率和性能。

本文将从流水线技术的基本原理、流水线相关的问题以及流水线技术的应用等几个方面进行分析。

1. 流水线技术的基本原理流水线技术是将一项复杂的任务分解为多个子任务,并将它们分别在不同的处理阶段进行处理,从而实现并行计算。

流水线中的每个阶段都有专门的功能和任务,每个阶段的输出作为下一个阶段的输入,形成了一条流水线的运行模式。

流水线技术的基本原理是时间重叠和空间共享。

通过将一个任务划分为多个阶段,在每个阶段的同时进行处理,可以充分利用硬件资源,加快计算速度。

同时,由于每个阶段的处理结果会在下一个阶段使用,可以保持计算流程的连续性,提高整体性能。

2. 流水线相关的问题尽管流水线技术可以提高计算效率,但也存在一些问题需要解决。

首先是数据依赖性问题,即某个阶段的计算结果依赖于前面阶段的计算结果。

一旦前面的计算结果尚未完成,后续的计算就无法进行,从而导致流水线停顿,降低了整体性能。

此外,流水线中的每个阶段都需要有足够的处理时间,否则就会出现阶段饱和的情况。

而某些任务可能会引起阶段的处理时间不均匀,从而导致流水线的性能下降。

3. 流水线技术的应用流水线技术在高性能计算中有着广泛的应用,尤其是在图像处理、模拟计算、数据压缩等领域。

以图像处理为例,流水线可以将图像的不同处理任务划分为多个阶段,从而实现并行计算,提高图像处理的速度和效率。

此外,在模拟计算中,流水线技术可以将复杂的数值计算过程分解为多个阶段,并分别在不同的处理器上进行计算,从而实现并行计算,提高计算效率。

在数据压缩方面,流水线技术可以将压缩的不同处理步骤划分为多个阶段,每个阶段负责一个处理步骤,从而加快数据压缩的速度。

总之,流水线技术作为一种重要的优化手段,在高性能计算中发挥着重要作用。

通过合理地使用流水线技术,可以提高计算效率和性能,进而满足不同领域对计算速度和效率的需求。

对流水线技术的进一步研究和改进,有助于更好地发挥高性能计算的潜力,推动科学技术的发展。

生产线

生产线
流水线的基本概念
流水线技术的定义
所谓流水技术,是指将一个重复的时序过程,分解成为若 干个子过程,而每一个子过程都可有效地在其专用功能段上与 其他子过程同时执行。
描述流水线工作的时空图
空 间 工序4
工序3
工序2
工序1
t1 t2 t3 t4 t5 t6 t7
时间
流水线的特点
1、流水过程由多个相联系的子过程组成,每个子过程称为流水线的 “级”或 “段”。流水线的段数也称为流水线的“深度”或“流水深度”;
SH 502 (R2), R31 SB 41 (R3), R2
DLX中Load和Store指令实例
指令名称 载入整型字 载入整型字 载入字节 载入无符号字节 载入整型半字
载入单精度浮点 载入双精度浮点 储存整型字 储存单精度浮点 储存双精度浮点
储存整型半字 储存整型字节
含义
Regs[R1] ←32 Mem[30+Regs[R2]] Regs[R1] ←32 Mem[1000+0] Regs[R1] ←32 (Mem[40+Regs[R3]]0)24 ## Mem[40+Regs[R3]] Regs[R1] ←32 024 ## Mem[40+Regs[R3]] Regs[R1] ←32 (Mem[40+Regs[R3]]0)16 ## Mem[40+Regs[R3]]
所谓向量流水处理机( vector pipelines processor),是 指处理机具有向量数据表示,并通过向量指令对向量的各元 素进行处理。
线性流水线与非线性流水线
a) 线性流水线:流水过程中,从输入至输出每功能段仅
经过一次,不存在反馈。
b) 非线性流水线:存在反馈,某些流水功能段允许被通过

流水线(Pipeline)介绍

流水线(Pipeline)介绍

i: DSUB R4,R1,R3 j: DADD R1,R2,R3 k: DMUL R6,R1,R7
Can’t happen in MIPS 5 stage pipeline because: - All instructions take 5 stages, and - Reads are always in stage 2, and 读后读RAR不是数据冒险, 读操作不改变值 19 - Writes are always in stage 5

结构冲突(资源冲突):流水线中多条指令在同一 时钟周期内争用同一功能部件的现象。即因硬件资 源满足不了指令重叠执行的要求而发生的冲突。 常见的导致结构相关的原因:
功能部件不是完全流水或者资源不够用。

例如访存冲突
9
结构冒险
10
2.2 结构冒险的解决办法
MIPS指令集是为流水线设计的,在设计流水 线过程中能够很容易的避免结构冒险。 但是流水结构中只有一个存储器时,两条指 令同时在一个存储器中预取指令就会发生结 构冒险。

29
动态调度的思想


基本思想 :•把相关的解决尽量延迟到马上就会出错的时候 •前面指令的stall不影响后面指令继续前进 把译码分成两个阶段:发射和读操作数 •发射:指令译码,检查结构相关 •读操作数:检查操作数是否准备好,准备好就 读数,否则等待,当一条指令在读操作数阶段 等待时,后面指令的发射可以继续进行 •乱序执行: •指令进入是有序的 •执行可以乱序,只要没有相关就可执行,多条 指令同时执行 •结束可以乱序,也可以有序(主要是精确例外 的需要),乱序结束会导致WAR相关(静态 流水线中只有RAW和WAW相关) 30

流水线的描述:最常用的方法是时间-空间图

计算机组成与体系结构——流水线相关知识点(常考计算)

计算机组成与体系结构——流水线相关知识点(常考计算)

计算机组成与体系结构——流⽔线相关知识点(常考计算) 流⽔线是软考中经常考的⼀部分内容,并且常以要求计算的形式出现,所以,这⾥详细总结⼀下流⽔线的相关知识点。

流⽔线的概念 流⽔线是指在程序执⾏时多条指令重叠进⾏操作的⼀种准并⾏处理实现技术。

即可以同时为多条指令的不同部分进⾏⼯作,以提⾼各部件的利⽤率和指令的平均执⾏速度。

我们都知道,在执⾏⼀条指令的过程中,最少要经历取指分析执⾏三个步骤,也就是说,假设有三个指令1 、2、 3,当我们在正常情况下,在执⾏指令1的时候,会⾸先对指令1按照以上三个步骤进⾏处理,处理完毕后在对指令2进⾏处理,以此类推。

⽽流⽔线的应⽤,就是像我们在⼯⼚中⼀样,当对指令1进⾏分析⼯作时,同时对指令2进⾏取指,继续执⾏,当指令1到达执⾏阶段时,指令2进⼊分析阶段1同时对于指令3进⾏取指处理,这样就⼤⼤增加了对于时间的利⽤率。

流⽔线的计算 1、流⽔线的执⾏时长 ①关于流⽔线的周期,我们需要知道的是,流⽔线周期(△t)为指令执⾏阶段中执⾏时间最长的⼀段。

②流⽔线的计算公式为: 完成⼀条指令所需的时间+(指令条数-1)*流⽔线周期,在这个公式中,⼜存在理论公式和实践公式。

理论公式: 实践公式:(k+n-1)*△t k为⼀条指令所包含的部分的多少 例题:若指令流⽔线⼀条指令分为取指、分析、执⾏三个阶段,并且这三个阶段的时间分别为取指1ns,分析2ns,执⾏1ns,则流⽔线的周期为多少?100条指令全部执⾏完毕需要执⾏的时间是多少? 分析:上⾯已经说过,流⽔线的周期为花费时间最长的阶段所花费的时间,所以流⽔线的周期就是2ns。

根据理论公式,T=(1+2+1)+(100-1)*2=4+99*2=202ns 根据实践公式,T=(3+100-1)*2=204ns 在这⾥,需要注意的是,因为流⽔线的理论公式和实践公式的结果不⼀样,但是在考试过程中可能都会考到,所以,在应⽤时,先考虑理论公式,后考虑实践公式。

软件设计师计算机体系结构考点:流水线技术

软件设计师计算机体系结构考点:流水线技术

软件设计师计算机体系结构考点:流水线技术【考法分析】本考点涉及的考查形式有:(1)流水线相关理论概念;(2)流水线相关计算。

【要点分析】1.流水线理论概念(1)流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。

各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。

(2)流水线建立时间:1条指令执行时间。

(3)流水线周期:执行时间最长的一段。

2、流水线相关计算:(1)流水线执行时间(理论公式):(t1+t2+..+tk)+(n-1)*∆t。

(2)流水线执行时间(实践公式):k*∆t +(n-1)*∆t。

(3)流水线吞吐率:TP = 指令条数/ 流水线执行时间。

(4)流水线最大吞吐率1 / ∆t。

(5)流水线加速比:顺序执行时间/流水线执行时间。

【备考点拨】吞吐率:单位时间内流水线处理机流出的结果。

对指令而言就是单位时间内执行的指令数。

如果流水线子过程所用的时间不一样,则吞吐率P应为(最长子过程的倒数)。

流水线开始工作,需要经过一段时间才能达到最大吞吐率。

【相关考题】1.下列关于流水线方式执行指令的叙述中,不正确的是()。

A.流水线方式可提高单条指令的执行速度B.流水线方式下可同时执行多条指令C.流水线方式提高了各部件的利用率D.流水线方式提高了系统的吞吐率2.流水线的吞吐率是指单位时间流水线处理的任务数,如果各段流水的操作时间不同,则流水线的吞吐率是()的倒数。

A. 最短流水段操作时间B. 各段流水的操作时间总和C. 最长流水段操作时间D. 流水段乘以最长流水段操作时间。

第三章流水线技术.ppt

第三章流水线技术.ppt

ExtOp
MemtoReg
ALUSelB
chapter3.3
3.1 流水线的基本概念
• 洗衣为例 • Ann, Brian, Cathy, Dave 每人进行洗衣的动作: wash, dry, and fold • washer需要 30 minutes • Dryer 需要 40 minutes • “Folder” 需要 20 minutes A B C D
– 45 ns/cycle x 1 CPI x 100 inst = 4500 ns
• 多周期机器
– 10 ns/cycle x 4.6 CPI (due to inst mix) x 100 inst = 4600 ns
• 理想流水线机器
– 10 ns/cycle x (1 CPI x 100 inst + 4 cycle drain) = 1040 ns
32
WrAdr 32 Din Dout
Ideal Memory
Rt 0 Rd
Reg File
busA A
32
2019/3/18
Mux
32
4 B
32
Mem Data Reg
0
1 Mux 0
Mux
1
32
1
2 3
32 32
<< 2
ALU Control
Imm 16
Extend
32
ALUOp
中国科学技术大学
• Step 2 step
ID - instruction decode and register fetch
– A <-- Regs[IR6..10] – B <-- Regs[IR11..16]

第三章 流水线技术

第三章 流水线技术

第3章流水线技术3.1解释下列术语流水线:将一个重复的时序过程,分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其它子过程同时执行。

单功能流水线:指流水线的各段之间的连接固定不变、只能完成一种固定功能的流水线。

多功能流水线:指各段可以进行不同的连接,以实现不同的功能的流水线。

静态流水线:指在同一时间内,多功能流水线中的各段只能按同一种功能的连接方式工作的流水线。

当流水线要切换到另一种功能时,必须等前面的任务都流出流水线之后,才能改变连接。

动态流水线:指在同一时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能的流水线。

它允许在某些段正在实现某种运算时,另一些段却在实现另一种运算。

部件级流水线:把处理机中的部件进行分段,再把这些部件分段相互连接而成。

它使得运算操作能够按流水方式进行。

这种流水线也称为运算操作流水线。

处理机级流水线:又称指令流水线。

它是把指令的执行过程按照流水方式进行处理,即把一条指令的执行过程分解为若干个子过程,每个子过程在独立的功能部件中执行。

处理机间流水线:又称为宏流水线。

它是把多个处理机串行连接起来,对同一数据流进行处理,每个处理机完成整个任务中的一部分。

前一个处理机的输出结果存入存储器中,作为后一个处理机的输入。

线性流水线:指各段串行连接、没有反馈回路的流水线。

数据通过流水线中的各段时,每一个段最多只流过一次。

非线性流水线:指各段除了有串行的连接外,还有反馈回路的流水线。

顺序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。

乱序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成。

这种流水线又称为无序流水线、错序流水线、异步流水线。

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

流水线的加速比:使用顺序处理方式处理一批任务所用的时间与按流水处理方式处理同一批任务所用的时间之比。

流水线技术 ppt课件

流水线技术  ppt课件
▪反映了单位时间内完成的任务数 n
T P T 1 T 2 T K(n 1 ) M a x(T 1,T 2, T K )
▪K为流水线段数,Ti为第i段所需要的时间
❖指令流水线的吞吐率
单位时间内流水线所完成的指令数
n TP
kT (n 1)T
▪N为通过流水线的指令数 ▪T为指令流水线各个流水段的时间 ▪kT为指令流水线的填充时间
ADD R1, R2, R3 ; (R1) + (R2) → R3 OR R3, R2, R6 ; (R2) ^ (R3) → R6 SUB R3, R4, R5 ; (R4) - (R3) → R5
时钟周期 1 2 3 4
5
6
ADD IF ID EX —— WB
OR
IF ID EX —— WB
6
❖最大吞吐率
当流水线充满之后,理想情况下每个周期都有一条指令完成
1 T P max
T
❖最大吞吐率和实际吞吐率之间的关系
TPkT(n n1)Tkn n1T 11k 11TPm ax n
当n>>k时,TP≈TPmax
❖MIPS与吞吐率
TPMIPS106
MIPS:单位时间内所完成的指令数
7
❖加速比
时钟周期 1 2 3 4 5
6
7
8
指令1 IF ID EX MEM WB
指令2
IF ID EX MEM WB
指令3
IF ID EX MEM WB
指令4
IF ID EX MEM WB
13
❖争用同一个硬件资源,又称资源相关、冲突
时钟周期 1 2 3 4
5
6
7
8
指令1 Ik时,Sp≈k 增加流水线深度可以提高加速比

计算机体系结构问答题第3章

计算机体系结构问答题第3章

第3章流水线技术1. 流水技术有哪些特点?(1)流水过程由多个相联系的子过程组成,每个过程称为流水线的“级”或“段”。

(2)每个子过程由专用的功能段实现。

(3)各个功能段所需时间应尽量相等。

(4)流水线需要有“通过时间”,在此之后流水过程才进入稳定工作状态,每一个时钟周期(拍)流出一个结果。

(5)流水技术适合于大量重复的时序过程,只有在输入端能连续地提供任务,流水线的效率才能充分发挥。

2. 按照流水线所完成的功能来分,流水线可分为哪两类?(1)单功能流水线:只能完成一种固定功能的流水线。

(2)多功能流水线:流水线的各段可以进行不同的连接,从而使流水线在不同的时间,或者在同一时间完成不同的功能。

3. 按照同一时间内各段之间的连接方式来分,流水线可分为哪两类?(1)静态流水线:在同一时间内,流水线的各段只能按同一种功能的连接方式工作。

(2)动态流水线:在同一时间内,当某些段正在实现某种运算时,另一些段却在实现另一种运算。

4. 按照流水的级别来分,流水线可分为哪三类?(1)部件级流水线(运算操作流水线):把处理机的算术逻辑部件分段,以便为各种数据类型进行流水操作。

(2)处理机级流水线(指令流水线):把解释指令的过程按照流水方式处理。

(3)处理机间流水线(宏流水线):由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。

5. 按照数据表示来分,流水线可分为哪两类?(1)标量流水处理机:处理机不具有向量数据表示,仅对标量数据进行流水处理。

(2)向量流水处理机:处理机具有向量数据表示,并通过向量指令对向量的各元素进行处理。

6. 按照流水线中是否有反馈回路来分,流水线可分为哪两类?(1)线性流水线:流水线的各段串行连接,没有反馈回路。

(2)非线性流水线:流水线中除有串行连接的通路外,还有反馈回路。

7. 在5段流水线中,一条指令的执行需要几个时钟周期?它们分别是什么?一条指令的执行需要5个时钟周期。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

举例
虚拟存储器的特点
3.3 流水线中的相关
(3) 读后写相关 (WAR) 在 i 读之前,j 先写。 i 读出的内容是错误的! ① 这种相关仅出现在这样的流水线中: 有些指令是在流水线的后部读源操作数, 而有些指令则是在流水线的前部写结果。 ② DLX流水线中不会发生这种相关; (读在先(ID),写在后(WB)) ③ 这种相关很少发生; (因为流水线一般是先读操作数,后写结果)
3.3 流水线中的相关
5.对数据相关的编译调度方法
(1) 流水线中常常会遇到许多种类型的暂停
例如,按通常的代码生成模式,表达式
A=B+C的代码会导致暂停
28/63
A=B+C的代码会导致暂停
3.3 流水线中的相关
(2) 编译器可以通过重新排列代码的顺序来消 除这种暂停,这种技术称为流水线调度或
指令调度。
24/63
3.3 流水线中的相关
26/63
3.3 流水线中的相关
例 3.5 假设某指令序列中 20 %的指令是 Load 指令, 并且紧跟在 Load 指令之后的半数指令需要使用到载 入的结果,如果这种数据相关将产生一个时钟周期 的延迟。理想流水线(没有任何延迟, CPI 为 1)的 指令执行速度要比这种真实流水线的快多少?
◆ 流水线中有多个段可以进行写操作 ◆ 当某条指令在流水线中暂停时,允许其后
的指令继续向前流动。
虚拟存储器的特点 19/63
② DLX整数流水线中不会发生这种相关
(仅在WB段进行写操作) ③ 若对DLX作以下修改,则会发生WAW相关:
◆ 把ALU操作指令的“写回”移到MEM段 ◆ 假设访问数据存储器需占用两拍
带执行延迟槽中的指令,从而减少分支开销。
延迟分支以及指令的执行顺序
53/63
3.3 流水线中的相关
(2) 具有一个分支延迟槽的DLX流水线的执行过程 分支延迟槽中的指令“掩盖”了流水线原来
必需插入的暂停周期。
55/63
56/63
(3) 分支延迟指令的调度(编译器) 任务:在延迟槽中放入有用的指令 ◆ 三种调度方法 从前调度 (最好) 从目标处调度 从失败处调度
包含源寄存器和目的寄存器地址(字段)
36/63
◆ 所有的定向发生在:
ALU或DM输出 →
ALU输入,DM输入,
“O”检测部件 (图示)
37/63
38/63
3.3 流水线中的相关
3.3.3 流水线的控制相关
一、分支引起的暂停及减少分支开销的方法 1. 分支指令的执行结果
◆ 转移失败:PC值加4
◆ 转移成功:将PC值改变为转移目标地址
(3) 举例:
例3.6 请为下列表达式生成没有暂停的DLX
指令序列: a=b+c ; d=e-f ; 假设载入延迟为1个时钟周期。 题解
30/63
3.3 流水线中的相关
6. 对DLX流水线控制的实现 (1) 指令发射(issue):指令从译码段(ID)进入 执行段(EX)。 相应的指令称为已发射的指令。 (2) DLX整数流水线中,可以在ID段检测所有的 数据相关; 若数据相关,则在指令流出前,让其暂停。 (3) 可以在ID段确定需要什么样的定向,并设臵 相应的控制; 这样能减少硬件复杂度(因为不必挂起已 改变了机器状态的指令)。
开销减少一拍。 改进后流水线的分支操作 (表3.5)
43/63
表 3.5 改进后流水线的分支操作
流 水 段 IF 分 支 指 令 操 作
IF/ID.IR ← Mem[PC]; IF/ID.NPC,PC ← (if ID/EX.cond {ID/EX.NPC} else {PC+4});
(动画演示)
当一条指令需要用到前面某条指令的结 果,从而不能重叠执行时,就发生了数据相 关。 ◆ 控制相关 当流水线遇到分支指令和其他能够改变 PC值的指令时,就会发生控制相关。 3.几个问题
◆ 相关有可能会使流水线停顿。
虚拟存储器的特点
2/63
3.3 流水线中的相关
◆ 消除相关的基本方法:
让流水线中的某些指令暂停,而让其它
第三章 流水线技术
3.3 流水线中的相关
1.相关的概念
流水线中的相关是指相邻或相近的两条指 令因存在某种关联,后一条指令不能在原指定
的时钟周期开始执行。
2.相关的分类 ◆ 结构相关 当硬件资源满足不了同时重叠执行的指 令的要求,而发生资源冲突时,就发生了结 构相关。
虚拟存储器的特点 1/63
3.3 流水线中的相关 ◆ 数据相关
32/63
3.3 流水线中的相关
(4) 也可以在需要用到操作数的那个时钟周期检测 相关或定向; (5) 举例说明: ◆ 由Load指令引起的RAW相关的互锁(简称Load 互锁)可以通过ID段的检测来实现; ◆ 到ALU输入的定向可以在EX段实现。
Load互锁 ◆ 流水线相关硬件可以检测到的各种相关情况 可以看出,仅需把Load指令的目的寄存 器地址与Load指令后的两条指令的源寄存器 地址进行比较。
ID
ID/EX.A ← Regs[IF/ID.IR6..10]; ID/EX.B ← Regs[IF/ID.IR11..15]; ID/EX.NPC ← IF/ID.NPC + (IR16)16##IR16..31; ID/EX.IR ← IF/ID.IR; ID/EX.cond ← (Regs[IF/ID.IR6..10] op 0; ID/EX.Imm ← (IR16)16##IR16..31; (动画演示)
指令继续执行。
在本章中,我们约定:
当一条指令被暂停时,暂停在其后发射 (流出)的指令,但继续执行在其前发射的 指令。
虚拟存储器的特点
3/63
3.3 流水线中的相关
3.3.1 流水线中的结构相关
1. 在流水线机器中,为了使各种指令组合能顺 利地重叠执行,需要把功能部件流水化,并 把资源重复设置。
2. 如果某种指令组合因资源冲突而不能顺利重
3.3 流水线中的相关
3. 减少分支开销的两种途径
◆ 在流水线中尽早判断分支转移是否成功; ◆ 转移成功时,尽早计算出转移目标地址。
两者应同时采用,缺一不可。
对于DLX作如下改进:
(1) 把“=0?”测试移至ID段;
41/63
3.3 流水线中的相关
(2) 在ID段增设一个加法器,这样可以把分支
工作过程演示
虚拟存储器的特点
12/63
虚拟存储器的特点
虚拟存储器的特点
3.3 流水线中的相关
(3) 当定向硬件检测到前面某条指令的结果寄存 器就是当前指令的源寄存器时,控制逻辑会
将前面那条指令的结果直接从其产生的地方
定向到当前指令所需的位臵。 (4) 一个功能单元的输出不仅可以定向到其自身 的输入,而且还可以定向到其它单元的输入。 举例
虚拟存储器的特点
15/63
3.3 流水线中的相关
虚拟存储器的特点
16/63
3.3 流水线中的相关
(5) 在DLX中,任何流水寄存器到任何功能单元的 输入都可能需要定向路径。 (6) 当两条指令对存储器同一单元进行读写时,
也可能发生数据相关。但本章仅讨论有关寄
存器的数据相关。 3. 数据相关的分类 按照指令对寄存器的读写顺序,可以将数据 相关分为以下三种类型: (考虑两条指令i和j , 假设i 先进入流水线)
33/63
◆ 在ID段检测是否需要启动Load互锁需要进行
三种比较
3.3 流水线中的相关 ◆ 当检测到相关后,控制部件必须在流水线中
插入暂停周期,并使IF和ID段中的指令停止 前进。

将ID/EX中的控制部分清“O”。 IF/ID内容回送到其自身入口。
定向逻辑
◆ 有更多的情况要考虑
◆ 关键思路:流水线寄存器不仅包含数据,而且
硬件代价很大。 6. 有些设计方案允许有结构相关 ◆ 降低成本
◆ 减少部件的延迟
虚拟存储器的特点 9/63
3.3 流水线中的相关
3.3.2 流水线的数据相关
1. 数据相关简介 当指令在流水线中重叠执行时,流水线有 可能改变指令读/写操作数的顺序,使之不同 于它们在非流水实现时的顺序,这将导致数据 相关。
整数程序 向前:13% 向后:3% 浮点程序 向前:7% 向右:3% 2.条件分支转移成功的概率
无条件:4%
无条件:1%
所有条件分支:67% 向前:60% 向后:85% (向后分支一般形成循环)
47/63
3.3 流水线中的相关
48/63
3.3 流水线中的相关
三、减少流水线分支损失的方法 (4种简单的静态方法,编译时预测) 1. “冻结”或“排空”流水线 在流水线中停住或删除分支后的指令, 直到知道转移目标地址。 优点:简单。 2.预测分支失败
数据相关举例
虚拟存储器的特点
10/63
虚拟存储器的特点
3.3 流水线中的相关
2. 利用定向技术减少数据相关引起的暂停 (1) 定向技术的主要思路:在发生上述 数据相关时,后面的指令并不是马 上就要用到前一条指令的计算结果。
如果能够将计算结果从其产生的地
方直接送到需要它的地方,就可以 避免暂停。
(2) 采用定向技术消除上例中的相关
虚拟存储点
3.3 流水线中的相关
(1) 写后读相关 (RAW) (命名规则) 在 i 写入之前,j 先去读。 j 读出的内容是错误的。 这是最常见的相关。 (2) 写后写相关 (WAW) 在 i 写入之前,j 先写。 最后写入的结果是 i 的,错误! ① 这种相关仅出现在这样的流水线中:
④ 复杂指令可能导致这种相关。
虚拟存储器的特点 21/63
3.3 流水线中的相关
4. 需要暂停的数据相关 (1) 并非所有的数据相关都可以用定向技术解决 举例
相关文档
最新文档