第五章重叠、流水和向量处理
- 格式:pdf
- 大小:2.59 MB
- 文档页数:186
一种方案:
工序 1 工具 1 工序 2 工具 2 工序 3 工具 3 工序 4 工具 4
工序 1 工具 1
工序 2 工具 2
工序 3 工具 3
工序 4 工具 4
工序 1 工具 1
工序 2 工具 2
工序 3 工具 3
工序 4 工具 4
5.2
DLX的基本流水线
5.2.1 DLX的一种简单实现 非流水线实现 最多用5个时钟周期来实现一条指令: (1) (2) (3) (4) (5) 取指令周期(IF,Instruction Fetch) 指令译码/读寄存器周期(ID,Instruction Decode) 执行/有效地址计算周期(EX,Execution) 存储器访问/分支完成周期(MEM,Memory Access) 写回周期(WB,Write Back)
0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00
doduc mdljdp2 ear hydro2d su2cor 浮点平均
2.84 2.66 2.17 2.53 2.18 2.48
0.01 0.01 0.00 0.00 0.02 0.01
处理机的算术逻辑部件分段,以便为各种数 据类型进行流水操作。
◆ 处理机级流水线(指令流水线):它是把指
令的解释执行过程按照流水方式进行处理。
例如,前面把指令解释过程分解为:
分析和执行。 DLX的基本流水线把指令解释过程分解为:
取指令、指令译码、执行、访存、写回。
◆ 处理机间流水线(宏流水线):它是指由两个
从失败处调度
的指令不会导致错误。
分支失败时
表 3.7 各种减少分支损失方法的效果
调度方法
每条条件分支指 令的分支损失 整 型 浮点 平 均 平均 1.00 1.00 1.00 1.00 0.70 0.35 每条无条 件分支指 令的损失 1.00 1.00 1.00 0.00
每条分支指令的 平均分支损失 整 型 浮点 平 均 平均
(3) 各个功能段所需时间应尽量相等,否则,时间长 的功能段将成为流水线的瓶颈,会造成流水线的 “堵塞”和“断流”。这个时间一般为一个时钟 周期 (拍); (4) 流水线需要有“通过时间”(第一个任务流出结果 所 需的时间),在此之后流水过程才进入稳定工作状 (5) 态,每一个时钟周期(拍)流出一个结果; 流水技术适合于大量重复的时序过程,只有输入 端能连续地提供任务,流水线的效率才能充分发 挥。
Regs[IR16 ..20] ← ALUOutput ◆ 寄存器―立即值型 ALU 指令 Regs[IR11 ..15] ← ALUOutput
图示 图示
◆ Load 指令
Regs[IR11 ..15] ← LMD
实现特点:不同的时钟周期之间的数据传递通过记
忆装置来实现,这种记忆装置可以分外部可见与不 可见两类,外部可见记忆装置包括存储器、通用寄 存器、PC等,用于在指令之间传递数据;外部不可 见记忆装置为一些临时寄存器,包括LMD、Imm、A、
0.22 0.31 0.46 0.62 0.07 0.33
1.39 1.20 0.59 0.75 0.84 0.95
0.22 0.15 0.12 0.17 0.26 0.18
总平均
2.00
0.10
0.36
0.46
0.09
5.1
流水线的基本概念
5.1.1 基本概念
1. 产品生产流水线
下面通过一个例子来说明流水线的好处:
以上的处理机串行地对同一数据流进行处理, 每个处理机完成一项任务。
4.按照数据表示来分
◆ 标量处理机:不具有向量指令和向量数据表示,
仅对标量进行流水处理的处理机。 例如:IBM360/91, Amdahl 470V/6 等 ◆ 向量处理机:具有向量指令和向量数据表示的 处理机。 例如:TI ASC, CRAY-I 等
定义: ADD: 加法器 PC: 指令计数器 NPC: 下一条顺序指令计数器 IR: 指令寄存器 A、B: 操作数临时寄存器 Imm: 立即数临时寄存器 Cond: 条件值寄存器 MUX: 多路开关 ALU: 运算器 ALU Output:运算器输出寄存器 LMD: 存储器数据读取寄存器
时钟周期说明: (1) 取指令周期(IF) IR ← Mem[PC] NPC ← PC+4
(3)执行/有效地址计算周期(EX) 在这个周期,不同的指令有不同的操作。
◆ 存储器访问
ALUOutput ← A+Imm ◆ 寄存器―寄存器 ALU 操作 ALUOutput ← A op B ◆ 寄存器―立即值 ALU 操作 ALUOutput ← A op Imm ◆ 分支操作 ALUOutput ← NPC+Imm Cond ← (A op 0)
B、IR、NPC、ALUOutput以及Cond,用于在一条指
加、减
乘 除 求平方根 取反 求绝对值
4
8 36 112 2 2
U,S+A,A+R,R+S
U,E+M,M,M,M,N,N+A,R 28 U,A,R,D ,D+A,D+R,D+A,D+R,A,R U,E,(A+R) 108 ,A,R
U,S U,S
浮点比较
3
2
U,A,R
基准程序
流水线CPI
载入暂停时钟周 期数
1.00 1.00 0.69 0.21 1.00 1.00 0.74 0.30
因分支暂停造 成的实际 CPI 整 型 浮点 平 均 平均 1.17 1.17 1.12 1.04 1.15 1.15 1.11 1.04
暂停流水线 预测分支成功 预测分支失败
0.62
0.25
延迟分支
流水段
分支暂停时钟周 期数
浮点结果暂停时 钟周期数
浮点结构性暂停 时钟周期数
compress eqntott espresso gcc li 整数平均
1.20 1.88 1.42 1.56 1.64 1.54
0.14 0.27 0.07 0.13 0.18 0.16
0.06 0.61 0.35 0.43 0.46 0.38
◆ 存储器访问
LMD ← Mem[ALUOutput] 或 Mem [ALUOutput] ← B ◆ 计算下一条指令地址 if(cond)PC ← ALUOutput else PC ← NPC (5)写回周期(WB) 不同指令在该周期完成的工作也不一样。
◆ 寄存器―寄存器型 ALU 指令
图示
图示
A D E M N R S U
功能部件
浮点加法器 浮点除法器 浮点乘法器 浮点乘法器 浮点乘法器 浮点加法器 浮点加法器
描
述
尾数加流水段 除法流水段 例外测试段 乘法器第一个流水段 乘法器第二个流水段 舍入段 操作数移位段 展开浮点数
浮点指令
延 迟
初始化间 隔 3
4 35 111 1 1
使用的流水段
ID
EX
MEM WB
从前调度 ADD R1,R2,R3 if R2=0 then 延迟槽
从目标处调度 SUB R4,R5,R6 ADD R1,R2,R3 if R1=0 then 延迟槽
从失败处调度 ADD R1,R2,R3 if R1=0 then 延迟槽 SUB R4,R5,R6
SUB R4,R5,R6 if R2=0 then ADD R1,R2,R3 ADD R1,R2,R3 if R1=0 then SUB R4,R5,R6
看,由于4道工序在同时进行,处理速度提高4倍。
指令流水线: 把指令的解释过程分解为“分析”和“执行” 两个子过程,并让这两个子过程分别用独立的分 析部件和执行部件来实现。 理想情况:速度提高一倍
指令流水线:
浮点加法流水线 把浮点加法的全过程分解为“求阶差”、“对 阶”、“尾数相加”、“规格化”四个子过程,并让 它们分别用各自独立的部件来实现。 理想情况:速度提高3倍
(2)指令译码/读寄存器周期(ID) 操作码译码 A ← Regs[IR6 ..10] B ← Regs[IR11 ..15] Imm ← (IR16)16 ## IR16 ..31
指令译码和读寄存器是并行进行的。之所
以能做到这一点,是因为在DLX指令格式中, 操作码在固定位置。这种技术也称为固定字段 译码。
图示 图示 图示
图示
上述四种操作都要用到ALU,它们能放在同一个时钟 周期中完成的原因: 因为在 DLX 指令集结构中,没有任何指令需要 同时计算数据的存储器地址、计算分支指令的目标地 址和进行ALU数据运算,也即这样做是由 DLX指令集 结构本身的特点所允许的。
(4)存储器访问/分支完成周期(MEM)
第 5章
重叠、流水和向量处理机
流水线技术是提高CPU性能和运算部
件性能的一类主要技术,也是现代计算
机系统设计中的一项关键技术。 即现代CPU设计的关键是高性能的流 水线。
表 3.6 改进后流水线的分支操作
ADD R1,R2,R3 if R1=0 then SUB R4,R5,R6
三种方法的要求及效果
调 度 策 略 从 前 调 度 对调度的要求 被调度的指令必须与分支无关 什么情况下起作用?
任何情况
必须保证在分支失败时执行被调度
从目标处调度
分支成功时 的指令不会导致错误。有可能需要 (但由于复制指令,有 可能会增大程序空间) 复制指令。 必须保证在分支成功时执行被调度
浮点加法流水线
时-空图: 时-空图从时间和空间两个方面描述了流水 线的工作过程。时-空图中,横坐标代表时间, 纵坐标代表流水线的各个段。