ch4-1指令级并行_记分牌算法_现在微处理机
复习
流水线基本概念– 能够流水的前提条件 – 流水线的评价指标
DLX基本流水线– 五个阶段,各阶段的功能 – 不同数据通路的作用 – 段间寄存器的设置和作用
表3.1 DLX流水线的每个流水段的操作流水段 IF 任何指令类型 IF/ID.IR ← Mem[PC] IF/ID.NPC,PC ← (if EX/MEM.cond{EX/MEM.ALUOutput} 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; ID/EX.IR ← IF/ID.IR; ID/EX.Imm ← (IR16)16##IR16...31; ALU 指令 EX/MEM.IR ← ID/EX.IR; EX/MEM.ALUOutput ← ID/EX.A op ID/EX.B 或 EX/MEM.ALUOutput ← ID/EX.A op ID/EX.Imm; EX/MEM.cond ← 0; Load/Store 指令 分支指令
ID
EX/MEM.IR ← ID/EX.IR; EX/MEM.ALUOutput← ID/EX.NPC+ID/EX.Imm; EX/MEM.B ←ID/EX.B EX/MEM.ALUOutput ← ID/EX.A + ID/EX.Imm; EX/MEM.cond ← 0;
EX
EX/MEM.cond ← (ID/EX.A op 0);
DLX流水线的每个流水段的操作(续)流水段 ALU 指令 任何指令类型 Load/Store 指令 MEM/WB.LMD ← Mem[EX/MEM.ALUOutput]; 或 Mem[EX/MEM.ALUOutput] ← EX/MEM.B; 分支指令 MEM/WB.IR ←EX/MEM.IR; MEM/WB.IR ← EX/MEM.IR; MEM
MEM/WB.ALUOutput ← EX/MEM.ALUOutput;
WB
Regs[MEM/WB.IR16...20] ← MEM/WB.ALUOutput; 或 Regs[MEM/WB.IR11...15] ← MEM/WB.ALUOutput;
Regs[MEM/WB.IR11...15] ← MEM/WB.LMD;
复习
流水线中的相关– 结构相关:需要更多的硬件资源 – 数据相关:需要定向,编译器调度
– 控制相关:尽早检测条件,计算目标地址,延 迟转移,预测 – 如何构造,如何避免
实例分析:MIPS R4000– 特点
ADD R1, R2, R3
IF ID
EX
ME WB
SUB R5, R1, R7XOR R6, R1, R7 OR R7, R1, R7
IF
IDIF
EXID IF
ME WBEX ID ME WB EX
ME WB
LW
R1, 45(R2)
IF ID
EX
ME WB
SUB R8, R6, R7ADD R5, R1, R7
IF
IDIF
EXID
ME WBEX ME WB
LW ADD ADD SUB SW LW SW
R1, R2, R3 30(R2) R1, R2, R3 R8, R6, R7 R5, 30(R1) R5, 45(R1) R6, 45(R1)
IF ID IF ID IF IF
EX EX ID ID
WB WB ME WB ME WB IF ID EX ME WB IF ID EX ME WB
ME ME EX EX
ADD R1, R2, R3
IF ID
EX
ME WB
SWSW
R1, 45(R3)R1, 45(R4)
IF
IDIF
EXID
ME WBEX ME WB
LW
R1, 56(R2)
IF ID
EX
ME WB
SWSW
R1, 45(R3)R1, 45(R4)
IF
IDIF
EXID
ME WBEX ME WB
Ch 4 指令级并行
Embedded System Lab Fall 2012
内容提要 基本的指令调度方法 记分牌算法 Tomasulo算法
4.1 指令级并行 (Instruction Level Parallelism)
相关是程序运行的本质特征 Loop: 相关带来数据冒险 冒险导致CPU停顿 Stall相关的分类: – 数据相关 – 结构相关 – 控制相关
LD F0,0(R1) SUBI R2,R2,8 SUBI R3,R3,8 ADDD F4,F0,F2
ILP: 无关的指令重叠执行
名相关 另一种相关称为名相关( name dependence): 两条指令使用同一个名字(register or memory location) 但不交换数据– 反相关(Antidependence) (WAR) Instruction j 所写的寄存器或存储单元,与 instruction i 所读的寄存
器或存储单元相同,注instruction i 先执行
– 输出相关(Output dependence) (WAW) Instruction i 和instruction j 对同一寄存器或存储单元进行写操作, 必须保证两条指令的写顺序
下列是否有名相关?1 Loop: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 LD ADDD SD LD ADDD SD LD ADDD SD LD ADDD SD SUBI BNEZ NOP F0,0(R1) F4,F0,F2 0(R1),F4 F0,-8(R1) F4,F0,F2 -8(R1),F4 F0,-16(R1) F4,F0,F2 -16(R1),F4 F0,-24(R1) F4,F0,F2 -24(R1),F4 R1,R1,#32 R1,LOOP
;
如何消除名相关?
指令级并行的若干定义 基本块的定义– 直线型代码,无分支 – 整个程序是由分支语句连接基本块构成 – MIPS 的分支指令占15%左右,基本块的大小在4~7条指令
指令级并行的若干定义 OS代码中的分支较少 负责资源管理 填写状态寄存器 填写控制寄存器 设置控制变量
跨基本块的并行(循环级并行)– 循环的特征 控制循环的分支指令是有执行偏好的 绝大多数是成功的, 预测比较容易,但必须有预测方 案
流水线的平均CPIPipeline CPI = Ideal Pipeline CPI + Struct Stalls + RAW Stalls + WAR Stalls + WAW Stalls + Control Stalls
本章研究– 减少停顿(stalls)数的方法和技术
…… 此处隐藏:987字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [实用文档]李践-有效提升销售的12大黄金法则8-大
- [实用文档]党支部换届工作方案
- [实用文档]2013年下期电子商务专业部宣传工作计划
- [实用文档]方庄一矿通风、钻探绩效工资考核管理办
- [实用文档]项目一 认识企业物流认识企业物流
- [实用文档]MBI_Display_产品蓝图规画
- [实用文档]北京市建筑业劳务作业人员普法维权培训
- [实用文档]锅炉燃烧调整与运行优化
- [实用文档]4支付结算业务的核算
- [实用文档]米什金_货币金融学_第9版各章学习指导
- [实用文档]水泥混凝土路面硬化工程施工组织设计
- [实用文档]钢筋工程安全技术交底书
- [实用文档]关于公布华中师范大学本科毕业论文
- [实用文档]太原市园林绿化施工合同范本 2
- [实用文档]周日辅导 初中英语分类复习单项选择题(
- [实用文档]第四章 文化经纪人的管理形式 第二节
- [实用文档]学宪法讲宪法竞赛题库
- [实用文档]《数值计算方法》期末考试模拟试题二
- [实用文档]爱词霸学英语:每日一句( 十月)
- [实用文档]2014年国家公务员面试:无领导小组讨论
- 新课程主要理念和教学案例分析汇编(24
- 英国人的快乐源于幸福的家庭生活
- 七年级上册第一次月考模拟数学试卷
- 真丝及仿真丝的种类有哪些?
- 【最新】华师大版八年级数学下册第十六
- 高中英语3500个必背单词
- 我可以接受失败,但我不能接受放弃!
- 最近更新沪科版八年级物理上册期末试卷
- 绿化工作先进乡镇事迹材料
- 鲁教版九年级上册思想品德教学计划
- 英语音标的分类
- 地下室底板无梁楼盖与普通梁板结构形式
- 美容师黄金销售话术
- 雅思写作满分作文备考方法
- 血清甲状腺激素测定与高频彩色多普勒超
- 1度浅析装修对室内空气品质的影响
- 2017-2022年中国汞矿行业深度分析与投
- 计算机二级VB公共基础知识
- (何勇)秸秆禁烧_重在寻找出路
- 内外墙抹灰工程分包施工合同1




