第五章中央处理器-4指令流水线
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理
——中央处理器(4)
2016-4-20
23:36
第5章 中央处理器
5.1 CPU的功能和组成
5.1.1 CPU的功能 5.1.2 CPU的基本组成 5.1.3 CPU中的主要寄存器 5.1.4 操作控制器与时序产生器
5.3.3 控制方式
5.4 微程序控制器
2
5.3 时序产生器和控制方式
5.3.1 时序信号的作用和体制 5.3.2 时序信号产生器
计算机组成原理
23:36
5.6 流水CPU
5.6.1 并行处理技术 5.6.2 流水CPU的结构 5.6.3 流水线中的主要问题 5.6.4 奔腾CPU
计算机组成原理
3
23:36
计算机组成原理
4
23:36
5.6.1 并行处理技术
三种形式 时间并行(时间重叠):让多个处理过程在时间上相互错开,轮 流重叠地使用同一套硬件设备的各个部件,以加快硬件周转而赢 得速度,实现方式就是采用流水处理部件;
空间并行(资源重复):以数量取胜;
• 它能真正的体现同时性; • LSI和VLSI为其提供了技术保证; 时间+空间并行 • Pentium中采用了超标量流水线技术;
5.5 硬连线控制器 5.6 流水CPU
5.6.1 并行处理技术 5.6.2 流水CPU的结构 5.6.3 流水线中的主要问题 5.6.4 奔腾CPU
5.7 RISC CPU
5.7.1 RISC机器的特点 5.7.2 RISC CPU实例 5.7.3 动态流水线调度
计算机组成原理
13
23:36
5.6.3 流水线中的主要问题
2、数据相关→三种数据相关: (1)写后读的数据相关RAW(Read After Write) →后面指令运行需要 用到前面指令所写的数据; 比如下列程序: ADD R1,R2,R3; (R1←R2+R3) SUB R4,R1,R5; (R4←R1-R5) AND R6,R1,R7; (R6←R1· R7)
计算机组成原理 24
23:36
小 结
RISC CPU是继承CISC的成功技术,并在克服 CISC机器缺点的基础上发展起来的。
RISC机器的三个基本要素是:①一个有限的简 单指令集,②CPU配备大量的通用寄存器,③强 调指令流水线的优化。 RISC机器一定是流水CPU,但流水CPU不一定 是RISC机器。如奔腾CPU是流水CPU,但奔腾 机是CISC机器。
5.6.1 并行处理技术
早期的计算机基于冯· 洛依曼的体系结构,采用串行处理,即任何 时刻只能执行一个操作;
并行性(Parrelism)概念 具有可以同时进行运算或操作的特性 例:在相同时间的条件下,用n位运算器进行n位并行运算速度几 乎是一位运算器进行n位串行运算的n倍(狭义) (广义)含义→只要在同一时刻(同时性)或在同一时间间隔内(并 发性)完成两种或两种以上性质相同或不同的工作,他们在时间上相 互重叠,都体现了并行性;
T ′= nm Δ · t
则
nm · nm Δt Sp = = mΔ · t +(n-1) Δ · t m + n -1
23:36
5.6.4 流水线性能
3. 效率
流水线中各功能段的 利用率 由于流水线有 建立时间 和 排空时间 因此各功能段的 设备不可能 一直 处于 工作 状态
S空间
空间 S4 S3 S2
n Tp = m· Δt+ (n-1) ·Δ t
23:36
5.6.4 流水线性能
2. 加速比 Sp
m 段的 流水线的速度 与等功能的 非流水线的速度 之比 设流水线各段时间为 Δ t 完成 n 条指令在 m 段流水线上共需 T=m· · t Δ t + (n-1) Δ 完成 n 条指令在等效的非流水线上共需
计算机组成原理
7
23:36
5.6.2 流水CPU的结构
标量流水计算机→只有一条指令流水线; 超标量流水计算机→有多条指令流水线,超标度N表示就有N条流水 线,上述超标量计算机的超标度为2;
计算机组成原理
8
23:36
5.6.2 流水CPU的结构
具有两条以上的指令流水线; 上图中流水线满载时,每一个时钟 周期可以执行2条指令; 采用时间和空间并行技术;
计算机组成原理 6
23:36
5.6.2 流水CPU的结构
2、流水线CPU时空图 为了实现流水,必须把一个任务分 成若干个能够在流水线的各个阶段 并发执行的子任务; IF→Instruction Fetch取指; ID→Instruction Decode指令译码; EX→Execution执行; WD→Write Data结果写回; 假设每个子任务执行需要一个时钟 周期;
计算机组成原理
9
23:36
5.6.2 流水CPU的结构
计算机组成原理
10
23:36
5.6.2 流水CPU的结构
计算机组成原理
11
23:36
5.6.2 流水CPU的结构
3、流水线(Pipelining)的分类(按不同并行级别分类) 指令流水线→将指令流的处理过程分成取指、译码、取操作数、执 行、写回等若干个并行处理的过程段进行流水; 算术流水线→指运算操作步骤的流水,如设置流水加法器、流水乘 法器等; 处理机流水线(宏流水线)→设置若干台处理机构成流水线的各个过程 段,每台处理机负责一个特定的任务;数据流从一台处理机依次流 过各台处理机进行相关操作;如浮点加法器(0操作数检查、对阶、 尾数相加、规格化、舍入处理等);
5.4.1 微程序控制器原理 5.4.2 微程序设计技术
5.2 指令周期
5.2.1 指令周期的基本概念 5.2.2 MOV指令的指令周期 5.2.3 LAD指令的指令周期 5.2.4 ADD指令的指令周期 5.2.5 STO指令的指令周期 5.2.6 JMP指令的指令周期 5.2.7 用方框图语言表示指令周期
计算机组成原理
5
23:36
5.6.2 流水CPU的结构
1、流水计算机的系统组成
存储器体系→主存采用多体交叉存储器; Cache
CPU流水方式→分成指令部件、指令队列 、执行部件三部分(三级流水线);
第一级流水线→指令流水线;
第二级流水线→指令队列FIFO 流水线:存 放译码后的指令+取来的各个操作数; 第三级流水线→执行部件流水线:可以由 多个采用流水线方式构成的算术逻辑部件 构成;比如: 将定点运算部件和浮点运算部件分开; 将浮点加法部件和浮点乘除部件分开(浮点 运算部件都以流水线方式工作)。
第(3)组指令中,如果I6指令的加法运算完成时间早于I5指令的乘法运 算时间,变成指令I6在指令I5写入R3前就写入R3,导致R3的内容错 误,发生WAW相关。
计算机组成原理
19
23:36
5.6.4 流水线性能
1. 吞吐率
单位时间内 流水线所完成指令 或 输出结果 的 数量 设 m 段的流水线各段时间为Δ t • 最大吞吐率 1 Tpmax = Δt • 实际吞吐率 连续处理 n 条指令的吞吐率为
(2) I3 STO I4 ADD
(3) I5 MUL I6 ADD
计算机组成原理
18
23:36
5.6.3 流水线中的主要问题
[解 ] : 第(1)组指令中,I1指令运算结果应先写入R1,然后在I2指令中读出R1 内容。由于I2指令进入流水线,变成I2指令在I1指令写入R1前就读出 R1内容,发生RAW相关。 第(2)组指令中,I3指令应先读出R3内容并存入存储单元M(x),然后 在I4指令中将运算结果写入R3。但由于I4指令进入流水线,变成I4指 令在I3指令读出R3内容前就写入R3,发生WAR相关。
计算机组成原理
12
23:36
wenku.baidu.com
5.6.3 流水线中的主要问题
三种相关冲突→资源相关、数据相关、控制相关 1、资源相关→多条指令进入流水线后在同一时钟周期内争用同一功 能部件。 IF(取指)、ID(译码)、EX(计算有效地址或执行)、MEM(访存取数)、 WB(写回) 解决办法→①.后续指令拖一个节拍后再推进;②.增设功能部件;
流水线中各段总的时空区
=
1 1 1 2 3 2 3 4
mnΔt m(m + n -1) Δt
2 3 4 3 4 4 5 … … … n-1 n 5 … … … n-1 n 5 … … … n-1 n
S1
1
2
5 … … … n-1 n
T时间
mΔt
(n-1) Δt
23:36
小 结
并行处理技术可贯穿于信息加工的各个步骤和阶 段。概括起来,主要有三种形式:①时间并行; ②空间并行;③时间并行+空间并行。 流水CPU是以时间并行性为原理构造的处理机, 是一种非常经济而实用的并行技术。目前的高性 能微处理机几乎无一例外地使用了流水技术。 流水技术中的主要问题是资源相关、数据相关和 控制相关,为此需要采取相应的技术对策,才能 保证流水线畅通而不断流。
1 1 1 1 2 2 3 2 3 4
2 3 4
3 4
4
5 … … … n-1 n
5 … … … n-1 n
5 … … … n-1 n
S1
5 … … … n-1 n
T时间
mΔt
(n-1) Δt
23:36
5.6.4 流水线性能
3. 效率
流水线中各功能段的 利用率
效率 =
S空间
空间 S4 S3 S2
流水线各段处于工作时间的时空区
(2)读后写的数据相关WAR(Write After Read) →后面指令覆盖前面 指令所读的单元(在简单流水线中没有此类相关); AND R3,R4 MOV R4,R5 ;(R3←R3+R4)后完成 ;(R4←R4×R5)先完成
计算机组成原理 14
23:36
5.6.3 流水线中的主要问题
控制相关解决办法: (1).延迟转移法→由编译程序重排指令序列来实现,基本思想是“先 执行在转移”即发生转移取指时不排空流水线,让紧跟转移指令之后 的已经进入流水线的少数指令继续完成(这种方法不是始终有效)。 (2).转移预测法→硬件依据指令过去的行为来预测将来的行为。通过 使用转移取指预取队列器、顺序取指预取队列器和目标指令cache,可 将转移预测提前到取指阶段进行;
数据相关的解决办法: (1)可以推后后继指令对相关单元的读操作; (2)设置相关的直接通路(Forwarding); (3)设置若干个运算结果缓冲寄存器,用来暂时存放运算结 果,以便后继指令直接使用,称之为定向传输技术;
计算机组成原理
16
23:36
5.6.3 流水线中的主要问题
3、控制相关→由于转移指令而引起流水线断流(有时可能出错等)现象;
计算机组成原理 17
23:36
5.6.3 流水线中的主要问题
[例4] 流水线中有三类数据相关冲突:写后读(RAW)相关;读后写(WAR) 相关;写后写(WAW)相关。判断以下三组指令各存在哪种类型的数据 相关。 (1) I1 ADD I2 SUB R1,R2,R3 ;R1 ← (R2)+(R3) R4,R1,R5 ;R4← (R1)-(R5) M(x),R3 ;M(x) ← (R3),M(x)是存储器单元 R3,R4,R5;R3←(R4)+(R5) R3,R1,R2 ;R3←(R1)×(R2) R3,R4,R5;R3←(R4)+(R5)
(3)写后写的数据相关WAW(Write After Write) →两条指令写同一个 单元(在简单流水线中没有此类相关,因为不会乱序执行); LDA R6,B MUL R6,R7 ;(R6←M(B)存储单元)后完成 ;(R6←R6×R7)先完成
计算机组成原理
15
23:36
5.6.3 流水线中的主要问题
计算机组成原理
25
——中央处理器(4)
2016-4-20
23:36
第5章 中央处理器
5.1 CPU的功能和组成
5.1.1 CPU的功能 5.1.2 CPU的基本组成 5.1.3 CPU中的主要寄存器 5.1.4 操作控制器与时序产生器
5.3.3 控制方式
5.4 微程序控制器
2
5.3 时序产生器和控制方式
5.3.1 时序信号的作用和体制 5.3.2 时序信号产生器
计算机组成原理
23:36
5.6 流水CPU
5.6.1 并行处理技术 5.6.2 流水CPU的结构 5.6.3 流水线中的主要问题 5.6.4 奔腾CPU
计算机组成原理
3
23:36
计算机组成原理
4
23:36
5.6.1 并行处理技术
三种形式 时间并行(时间重叠):让多个处理过程在时间上相互错开,轮 流重叠地使用同一套硬件设备的各个部件,以加快硬件周转而赢 得速度,实现方式就是采用流水处理部件;
空间并行(资源重复):以数量取胜;
• 它能真正的体现同时性; • LSI和VLSI为其提供了技术保证; 时间+空间并行 • Pentium中采用了超标量流水线技术;
5.5 硬连线控制器 5.6 流水CPU
5.6.1 并行处理技术 5.6.2 流水CPU的结构 5.6.3 流水线中的主要问题 5.6.4 奔腾CPU
5.7 RISC CPU
5.7.1 RISC机器的特点 5.7.2 RISC CPU实例 5.7.3 动态流水线调度
计算机组成原理
13
23:36
5.6.3 流水线中的主要问题
2、数据相关→三种数据相关: (1)写后读的数据相关RAW(Read After Write) →后面指令运行需要 用到前面指令所写的数据; 比如下列程序: ADD R1,R2,R3; (R1←R2+R3) SUB R4,R1,R5; (R4←R1-R5) AND R6,R1,R7; (R6←R1· R7)
计算机组成原理 24
23:36
小 结
RISC CPU是继承CISC的成功技术,并在克服 CISC机器缺点的基础上发展起来的。
RISC机器的三个基本要素是:①一个有限的简 单指令集,②CPU配备大量的通用寄存器,③强 调指令流水线的优化。 RISC机器一定是流水CPU,但流水CPU不一定 是RISC机器。如奔腾CPU是流水CPU,但奔腾 机是CISC机器。
5.6.1 并行处理技术
早期的计算机基于冯· 洛依曼的体系结构,采用串行处理,即任何 时刻只能执行一个操作;
并行性(Parrelism)概念 具有可以同时进行运算或操作的特性 例:在相同时间的条件下,用n位运算器进行n位并行运算速度几 乎是一位运算器进行n位串行运算的n倍(狭义) (广义)含义→只要在同一时刻(同时性)或在同一时间间隔内(并 发性)完成两种或两种以上性质相同或不同的工作,他们在时间上相 互重叠,都体现了并行性;
T ′= nm Δ · t
则
nm · nm Δt Sp = = mΔ · t +(n-1) Δ · t m + n -1
23:36
5.6.4 流水线性能
3. 效率
流水线中各功能段的 利用率 由于流水线有 建立时间 和 排空时间 因此各功能段的 设备不可能 一直 处于 工作 状态
S空间
空间 S4 S3 S2
n Tp = m· Δt+ (n-1) ·Δ t
23:36
5.6.4 流水线性能
2. 加速比 Sp
m 段的 流水线的速度 与等功能的 非流水线的速度 之比 设流水线各段时间为 Δ t 完成 n 条指令在 m 段流水线上共需 T=m· · t Δ t + (n-1) Δ 完成 n 条指令在等效的非流水线上共需
计算机组成原理
7
23:36
5.6.2 流水CPU的结构
标量流水计算机→只有一条指令流水线; 超标量流水计算机→有多条指令流水线,超标度N表示就有N条流水 线,上述超标量计算机的超标度为2;
计算机组成原理
8
23:36
5.6.2 流水CPU的结构
具有两条以上的指令流水线; 上图中流水线满载时,每一个时钟 周期可以执行2条指令; 采用时间和空间并行技术;
计算机组成原理 6
23:36
5.6.2 流水CPU的结构
2、流水线CPU时空图 为了实现流水,必须把一个任务分 成若干个能够在流水线的各个阶段 并发执行的子任务; IF→Instruction Fetch取指; ID→Instruction Decode指令译码; EX→Execution执行; WD→Write Data结果写回; 假设每个子任务执行需要一个时钟 周期;
计算机组成原理
9
23:36
5.6.2 流水CPU的结构
计算机组成原理
10
23:36
5.6.2 流水CPU的结构
计算机组成原理
11
23:36
5.6.2 流水CPU的结构
3、流水线(Pipelining)的分类(按不同并行级别分类) 指令流水线→将指令流的处理过程分成取指、译码、取操作数、执 行、写回等若干个并行处理的过程段进行流水; 算术流水线→指运算操作步骤的流水,如设置流水加法器、流水乘 法器等; 处理机流水线(宏流水线)→设置若干台处理机构成流水线的各个过程 段,每台处理机负责一个特定的任务;数据流从一台处理机依次流 过各台处理机进行相关操作;如浮点加法器(0操作数检查、对阶、 尾数相加、规格化、舍入处理等);
5.4.1 微程序控制器原理 5.4.2 微程序设计技术
5.2 指令周期
5.2.1 指令周期的基本概念 5.2.2 MOV指令的指令周期 5.2.3 LAD指令的指令周期 5.2.4 ADD指令的指令周期 5.2.5 STO指令的指令周期 5.2.6 JMP指令的指令周期 5.2.7 用方框图语言表示指令周期
计算机组成原理
5
23:36
5.6.2 流水CPU的结构
1、流水计算机的系统组成
存储器体系→主存采用多体交叉存储器; Cache
CPU流水方式→分成指令部件、指令队列 、执行部件三部分(三级流水线);
第一级流水线→指令流水线;
第二级流水线→指令队列FIFO 流水线:存 放译码后的指令+取来的各个操作数; 第三级流水线→执行部件流水线:可以由 多个采用流水线方式构成的算术逻辑部件 构成;比如: 将定点运算部件和浮点运算部件分开; 将浮点加法部件和浮点乘除部件分开(浮点 运算部件都以流水线方式工作)。
第(3)组指令中,如果I6指令的加法运算完成时间早于I5指令的乘法运 算时间,变成指令I6在指令I5写入R3前就写入R3,导致R3的内容错 误,发生WAW相关。
计算机组成原理
19
23:36
5.6.4 流水线性能
1. 吞吐率
单位时间内 流水线所完成指令 或 输出结果 的 数量 设 m 段的流水线各段时间为Δ t • 最大吞吐率 1 Tpmax = Δt • 实际吞吐率 连续处理 n 条指令的吞吐率为
(2) I3 STO I4 ADD
(3) I5 MUL I6 ADD
计算机组成原理
18
23:36
5.6.3 流水线中的主要问题
[解 ] : 第(1)组指令中,I1指令运算结果应先写入R1,然后在I2指令中读出R1 内容。由于I2指令进入流水线,变成I2指令在I1指令写入R1前就读出 R1内容,发生RAW相关。 第(2)组指令中,I3指令应先读出R3内容并存入存储单元M(x),然后 在I4指令中将运算结果写入R3。但由于I4指令进入流水线,变成I4指 令在I3指令读出R3内容前就写入R3,发生WAR相关。
计算机组成原理
12
23:36
wenku.baidu.com
5.6.3 流水线中的主要问题
三种相关冲突→资源相关、数据相关、控制相关 1、资源相关→多条指令进入流水线后在同一时钟周期内争用同一功 能部件。 IF(取指)、ID(译码)、EX(计算有效地址或执行)、MEM(访存取数)、 WB(写回) 解决办法→①.后续指令拖一个节拍后再推进;②.增设功能部件;
流水线中各段总的时空区
=
1 1 1 2 3 2 3 4
mnΔt m(m + n -1) Δt
2 3 4 3 4 4 5 … … … n-1 n 5 … … … n-1 n 5 … … … n-1 n
S1
1
2
5 … … … n-1 n
T时间
mΔt
(n-1) Δt
23:36
小 结
并行处理技术可贯穿于信息加工的各个步骤和阶 段。概括起来,主要有三种形式:①时间并行; ②空间并行;③时间并行+空间并行。 流水CPU是以时间并行性为原理构造的处理机, 是一种非常经济而实用的并行技术。目前的高性 能微处理机几乎无一例外地使用了流水技术。 流水技术中的主要问题是资源相关、数据相关和 控制相关,为此需要采取相应的技术对策,才能 保证流水线畅通而不断流。
1 1 1 1 2 2 3 2 3 4
2 3 4
3 4
4
5 … … … n-1 n
5 … … … n-1 n
5 … … … n-1 n
S1
5 … … … n-1 n
T时间
mΔt
(n-1) Δt
23:36
5.6.4 流水线性能
3. 效率
流水线中各功能段的 利用率
效率 =
S空间
空间 S4 S3 S2
流水线各段处于工作时间的时空区
(2)读后写的数据相关WAR(Write After Read) →后面指令覆盖前面 指令所读的单元(在简单流水线中没有此类相关); AND R3,R4 MOV R4,R5 ;(R3←R3+R4)后完成 ;(R4←R4×R5)先完成
计算机组成原理 14
23:36
5.6.3 流水线中的主要问题
控制相关解决办法: (1).延迟转移法→由编译程序重排指令序列来实现,基本思想是“先 执行在转移”即发生转移取指时不排空流水线,让紧跟转移指令之后 的已经进入流水线的少数指令继续完成(这种方法不是始终有效)。 (2).转移预测法→硬件依据指令过去的行为来预测将来的行为。通过 使用转移取指预取队列器、顺序取指预取队列器和目标指令cache,可 将转移预测提前到取指阶段进行;
数据相关的解决办法: (1)可以推后后继指令对相关单元的读操作; (2)设置相关的直接通路(Forwarding); (3)设置若干个运算结果缓冲寄存器,用来暂时存放运算结 果,以便后继指令直接使用,称之为定向传输技术;
计算机组成原理
16
23:36
5.6.3 流水线中的主要问题
3、控制相关→由于转移指令而引起流水线断流(有时可能出错等)现象;
计算机组成原理 17
23:36
5.6.3 流水线中的主要问题
[例4] 流水线中有三类数据相关冲突:写后读(RAW)相关;读后写(WAR) 相关;写后写(WAW)相关。判断以下三组指令各存在哪种类型的数据 相关。 (1) I1 ADD I2 SUB R1,R2,R3 ;R1 ← (R2)+(R3) R4,R1,R5 ;R4← (R1)-(R5) M(x),R3 ;M(x) ← (R3),M(x)是存储器单元 R3,R4,R5;R3←(R4)+(R5) R3,R1,R2 ;R3←(R1)×(R2) R3,R4,R5;R3←(R4)+(R5)
(3)写后写的数据相关WAW(Write After Write) →两条指令写同一个 单元(在简单流水线中没有此类相关,因为不会乱序执行); LDA R6,B MUL R6,R7 ;(R6←M(B)存储单元)后完成 ;(R6←R6×R7)先完成
计算机组成原理
15
23:36
5.6.3 流水线中的主要问题
计算机组成原理
25