53硬件方案:指令级并行 为什么要使用硬件调度方案? 在编译时无法确定的相关,可以通过硬件调度来优化 编译器简单 代码在不同组织结构的机器上,同样可以有效的运行 基本思想:允许st叫后的指令继续向前流动 DIVD FOF2. F4 ADDD F10. F0 F8 SUBD F12F8, F14 允许乱序执行( out-of-order execution)=> out-of- order completion 计算机体系结构
2021/2/7 计算机体系结构 32 5.3 硬件方案: 指令级并行 • 为什么要使用硬件调度方案? – 在编译时无法确定的相关,可以通过硬件调度来优化 – 编译器简单 – 代码在不同组织结构的机器上,同样可以有效的运行 • 基本思想: 允许 stall后的指令继续向前流动 DIVD F0,F2,F4 ADDD F10,F0,F8 SUBD F12,F8,F14 – 允许乱序执行(out-of-order execution) => out-oforder completion
硬件方案之一:记分牌 记分牌的基本概念示意图 Instructions F Window Scoreboard Note: normal ID stage now split in 2 1. decode EX WB 2. issue CPU Pipeline
• 记分牌的基本概念示意图 2021/2/7 33 硬件方案之一: 记分牌
记分牌技术要点(1/2 Out-of-order execution将D段分 为: sue译码,检测结构相关 Read operands-等待到无数据相关时 MAY 读操作数 MAY 起源于1963年推出的CDc6600 680NA oNDE 4FPU ONG AO 2 Memory Reference OHRATN CENTEAL T 集中相关检查,互锁机制解决相关 L0帆 cDc6600:顺序发射,乱序执行,乱 FONDLRY 序完成,CDC6600流水线没有采用定 NHEMENT 向技术,只实现非精确中断 ouTat 贴wL5 NC疑N ·Load/ store结构 BSINH 采用这种技术的微处理器企业 气队50mPg6 MIPS HP IBM 司的 UltraSparc DEC Alpha 计算机体系结构
2021/2/7 计算机体系结构 34 记分牌技术要点(1/2) • Out-of-order execution 将ID 段分 为: – Issue—译码,检测结构相关 – Read operands—等待到无数据相关时, 读操作数 • 起源于1963年推出的CDC6600 – 4 FPU – 2 Memory Reference – 4 IU • 集中相关检查,互锁机制解决相关 • CDC 6600: 顺序发射,乱序执行,乱 序完成,CDC6600流水线没有采用定 向技术,只实现非精确中断 • Load /store结构 • 采用这种技术的微处理器企业 – MIPS,HP, IBM – Sun 公司的UltraSparc – DEC Alpha
记分牌技术要点(2/2) Out-of-order completion = WAR, WAW hazards? WAR的一般解决方案 对操作排队 仅在读操作数阶段读寄存器 对WAW而言,检测到相关后,停止发射前一条指令 直到前一条指令完成 要提高效率,需要有多条指令进入执行阶段=>必须有 多个执行部件或执行部件是流水化的 记分牌保存相关操作和状态 记分牌用四段代替ID,EX,WB三段 计算机体系结构
2021/2/7 计算机体系结构 35 记分牌技术要点(2/2) • Out-of-order completion => WAR, WAW hazards? • WAR的一般解决方案 – 对操作排队 – 仅在读操作数阶段读寄存器 • 对WAW而言, 检测到相关后,停止发射前一条指令, 直到前一条指令完成 • 要提高效率,需要有多条指令进入执行阶段=>必须有 多个执行部件或执行部件是流水化的 • 记分牌保存相关操作和状态 • 记分牌用四段代替ID, EX, WB 三段
带有记分牌控制的DLⅩ Registers FP Mult FP Mult Note: this model could apport both single multi-issue FP Divide Exception is that one multiply will be issued FP Add per cycle Integer Unit All depends on bus/trunk structure SCOREBOARD 计算机体系结构
2021/2/7 计算机体系结构 36 带有记分牌控制的DLX