第五章重叠、流水和向量处理

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

(3)执行/有效地址计算周期(EX) 在这个周期,不同的指令有不同的操作。
◆ 存储器访问
ALUOutput ← A+Imm ◆ 寄存器―寄存器 ALU 操作 ALUOutput ← A op B ◆ 寄存器―立即值 ALU 操作 ALUOutput ← A op Imm ◆ 分支操作 ALUOutput ← NPC+Imm Cond ← (A op 0)
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. 产品生产流水线
下面通过一个例子来说明流水线的好处:
Regs[IR16 ..20] ← ALUOutput ◆ 寄存器―立即值型 ALU 指令 Regs[IR11 ..15] ← ALUOutput
图示 图示
◆ Load 指令
Regs[IR11 ..15] ← LMD
实现特点:不同的时钟周期之间的数据传递通过记
忆装置来实现,这种记忆装置可以分外部可见与不 可见两类,外部可见记忆装置包括存储器、通用寄 存器、PC等,用于在指令之间传递数据;外部不可 见记忆装置为一些临时寄存器,包括LMD、Imm、A、
A D E M N R S U
功能部件
浮点加法器 浮点除法器 浮点乘法器 浮点乘法器 浮点乘法器 浮点加法器 浮点加法器


尾数加流水段 除法流水段 例外测试段 乘法器第一个流水段 乘法器第二个流水段 舍入段 操作数移位段 展开浮点数
浮点指令
延 迟
初始化间 隔 3
4 35 111 1 1
使用的流水段
(2)指令译码/读寄存器周期(ID) 操作码译码 A ← Regs[IR6 ..10] B ← Regs[IR11 ..15] Imm ← (IR16)16 ## IR16 ..31
指令译码和读寄存器是并行进行的。之所
以能做到这一点,是因为在DLX指令格式中, 操作码在固定位置。这种技术也称为固定字段 译码。
以上的处理机串行地对同一数据流进行处理, 每个处理机完成一项任务。
4.按照数据表示来分
◆ 标量处理机:不具有向量指令和向量数据表示,
仅对标量进行流水处理的处理机。 例如:IBM360/91, Amdahl 470V/6 等 ◆ 向量处理机:具有向量指令和向量数据表示的 处理机。 例如:TI ASC, CRAY-I 等
流 水 段
IF
分 支 指 令 操 作
IF/ID.IR ← Mem[PC]; IF/ID.NPC,PC ← (if ID/EX.cond {ID/EX.NPC} else {PC+4}); 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;
看,由于4道工序在同时进行,处理速度提高4倍。
指令流水线: 把指令的解释过程分解为“分析”和“执行” 两个子过程,并让这两个子过程分别用独立的分 析部件和执行部件来实现。 理想情况:速度提高一倍
指令流水线:
浮点加法流水线 把浮点加法的全过程分解为“求阶差”、“对 阶”、“尾数相加”、“规格化”四个子过程,并让 它们分别用各自独立的部件来实现。 理想情况:速度提高3倍
从失败处调度
的指令不会导致错误。
分支失败时
表 3.7 各种减少分支损失方法的效果
调度方法
每条条件分支指 令的分支损失 整 型 浮点 平 均 平均 1.00 1.00 1.00 1.00 0.70 0.35 每条无条 件分支指 令的损失 1.00 1.00 1.00 0.00
每条分支指令的 平均分支损失 整 型 浮点 平 均 平均
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
工序 1 工具 1
工序 2 工具 2
工序 3 工具 3
工序 4 工具 4
另一种方案:
工序 1 工具 1 工序 2 工具 2 工序 3 工具 3 工序 4 工具 4
流水线生产过程的抽象描述:
这种流水工作方式的主要特点:
每件产品还是要经过4道工序处理,从单件产品角 度来看,加工时间并没有改变,但从多件产品角度来
◆ 存储器访问
LMD ← Mem[ALUOutput] 或 Mem [ALUOutput] ← B ◆ 计算下一条指令地址 if(cond)PC ← ALUOutput else PC ← NPC (5)写回周期(WB) 不同指令在该周期完成的工作也不一样。
◆ 寄存器―寄存器型 ALU 指令
图示
图示
加、减
乘 除 求平方根 取反 求绝对值
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
载入暂停时钟周 期数
B、IR、NPC、ALUOutput以及Cond,用于在一条指
浮点加法流水线
时-空图: 时-空图从时间和空间两个方面描述了流水 线的工作过程。时-空图中,横坐标代表时间, 纵坐标代表流水线的各个段。
流水技术 流水技术是指:将一个重复的时序过程分解 成为若干个子过程,而每个子过程都可有效地在 其专用功能段上与其他子过程同时执行。 流水技术的特点 (1) 流水过程由多个相联系的子过程组成,每个 子过程称为流水线的“级”或“段”。“段” 的数 目称为流水线的“深度”。 (2) 每个子过程由专用的功能段实现;
5.1.2 流水线的分类 1.按功能的多少来分
◆ 单功能流水线:只能完成一种固定功能的
流水线。 ◆ 多功能流水线:流水线的各段可以进行不同的 连接,从而实现不同的功能。 例如:TI ASC 的多功能流水线
2.按同一时间内各段之间的连接方式来分
◆ 静态流水线:在同一时刻,流水线的各段只能
按同一种功能的连接方式工作。
分支暂停时钟周 期数
浮点结果暂停时 钟周期数
浮点结构性暂停 时钟周期数
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
图示 图示 图示
图示
上述四种操作都要用到ALU,它们能放在同一个时钟 周期中完成的原因: 因为在 DLX 指令集结构中,没有任何指令需要 同时计算数据的存储器地址、计算分支指令的目标地 址和进行ALU数据运算,也即这样做是由 DLX指令集 结构本身的特点所允许的。
(4)存储器访问/分支完成周期(MEM)
工序 1 工具 1 工序 2 工具 2 工序 3 工具 3 工序 4 工具 4
一种方案:
工序 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. 按照是否有反馈回路来分
◆ 线性流水线:
流水线中的各段串行连接,没 有反馈回路。 ◆ 非线性流水线:流水线中的各段除有串行连接 外,还有反馈回路。
6. 按照流动是否可以乱序来分 ◆ 顺序流动流水线:流水线输出端任务流出的顺 序与输入端任务流入的顺序相同。 ◆ 异步流动流水线(乱序流水线):流水线输出 端任务流出的顺序与输入端任务流入的顺序 不同。 例如:动态流水线
第 5章
重叠、流水和向量处理机
流水线技术是提高CPU性能和运算部
件性能的一类主要技术,也是现代计算
机系统设计中的一项关键技术。 即现代CPU设计的关键是高性能的流 水பைடு நூலகம்。
表 3.6 改进后流水线的分支操作
(3) 各个功能段所需时间应尽量相等,否则,时间长 的功能段将成为流水线的瓶颈,会造成流水线的 “堵塞”和“断流”。这个时间一般为一个时钟 周期 (拍); (4) 流水线需要有“通过时间”(第一个任务流出结果 所 需的时间),在此之后流水过程才进入稳定工作状 (5) 态,每一个时钟周期(拍)流出一个结果; 流水技术适合于大量重复的时序过程,只有输入 端能连续地提供任务,流水线的效率才能充分发 挥。
在静态流水线中,只有当输入是一串相同 的运算操作时,流水的效率才能得到发挥。
◆ 动态流水线:在同一时刻,流水线的各段可以
按不同功能的连接方式工作。 这样就不是非得相同运算的一串操作才能 流水处理。
优点:能提高流水线的效率 缺点:会使流水线的控制变得复杂
3.按照流水线的级别来分
◆ 部件级流水线(运算操作流水线):它是把
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
处理机的算术逻辑部件分段,以便为各种数 据类型进行流水操作。
◆ 处理机级流水线(指令流水线):它是把指
令的解释执行过程按照流水方式进行处理。
例如,前面把指令解释过程分解为:
分析和执行。 DLX的基本流水线把指令解释过程分解为:
取指令、指令译码、执行、访存、写回。
◆ 处理机间流水线(宏流水线):它是指由两个
定义: ADD: 加法器 PC: 指令计数器 NPC: 下一条顺序指令计数器 IR: 指令寄存器 A、B: 操作数临时寄存器 Imm: 立即数临时寄存器 Cond: 条件值寄存器 MUX: 多路开关 ALU: 运算器 ALU Output:运算器输出寄存器 LMD: 存储器数据读取寄存器
时钟周期说明: (1) 取指令周期(IF) IR ← Mem[PC] NPC ← PC+4
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
延迟分支
流水段
ADD R1,R2,R3 if R1=0 then SUB R4,R5,R6
三种方法的要求及效果
调 度 策 略 从 前 调 度 对调度的要求 被调度的指令必须与分支无关 什么情况下起作用?
任何情况
必须保证在分支失败时执行被调度
从目标处调度
分支成功时 的指令不会导致错误。有可能需要 (但由于复制指令,有 可能会增大程序空间) 复制指令。 必须保证在分支成功时执行被调度
相关文档
最新文档