体系结构ch3.pptVIP

  • 22
  • 0
  • 约2.44万字
  • 约 246页
  • 2018-05-06 发布于河南
  • 举报
体系结构ch3

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Earle锁存器 1965年由J.G.Earle发明 优点 对时钟扭曲不敏感(相对而言),一般是两级门延迟,避免了数据通过锁存器时可能产生的时钟扭曲 在锁存器中可以执行两级逻辑运算,而不会增加锁存器的延迟时间,可以隐藏锁存器产生的额外开销 单周期延迟分支 从失败处调度 表3.9 R4000浮点流水线中8个流水段 流水段 功能部件 描述 A 浮点加法器 尾数加 D 浮点除法器 除法 E 浮点乘法器 例外测试 M 浮点乘法器 乘法第一阶段 N 浮点乘法器 乘法第二阶段 R 浮点加法器 舍入 S 浮点加法器 操作数移位 U 展开浮点数 表3.10 R4000浮点流水线中8个流水段 浮点指令 延迟 延迟初始化间隔 使用的流水段 加、减 4 3 U,S+A,A+R,R+S 乘 8 4 U,E+M,M,M,M,N,N+A,R 除 36 35 U,A,R,D28,D+A,D+R,D+A,D+R,A,R 求平方根 112 111 U,E,(A+R)108,A,R 取反 2 1 U,S 求绝对值 2 1 U,S 浮点比较 3 2 U,A,R 表3.11 暂停对R4000流水线CPI的影响 整数平均: 流水线CPI 1.54 载入暂停时钟周期数 0.16 分支暂停时钟周期数 0.38 浮点结果暂停时钟周期数 0.00 浮点结构性暂停时钟周期数 0.00 浮点平均: 流水线CPI 2.48 载入暂停时钟周期数 0.10 分支暂停时钟周期数 0.33 浮点结果暂停时钟周期数 0.95 浮点结构性暂停时钟周期数 0.18 垂直(纵向) D = A * B + C ( ) S1←5.0 ;将常数5.0送入标量寄存器S1; S2←1.0 ;将常数1.0送入标量寄存器S2; VL←N ;在向量长度寄存器VL中设 ;置向量长度N; V0←B ;从存储器中将向量B读入向 ;量寄存器V0; V1←S1*V0 ;向量B中的每个元素分别和 ;常数S1相乘; V2←S2+V1 ;向量V1中的每个元素分别 ;和常数S2相加; A←V2 ;将计算结果从向量寄存器 ;V2存入存储器的向量A. S1←5.0; S2←1.0; VL←L; V0←B; V1←S1*V0; V2←S2+V1; A←V2; VL←64; for (I=0 to K-1){ V0←B; V1←S1*V0; V2←S2+V1; A←V2; } 假设N=K*64+L 处理L部分 0 所有指令中,分支指令占的比重高,而其中条件分支指令占大部分 PC+正偏移值 PC+负偏移值 所有条件分支指令中,平均有67%的是分支成功 预测分支失败,实际分支失败 预测分支失败,实际分支成功 由于延迟槽的存在,无论是分支失败还是成功,都不再需要插入暂停周期。 从前调度;从目标处调度;从失败处调度 ADD R1,R2,R3 IF R1=0 THEN 延迟槽 SUB R4,R5,R6 SUB R4,R5,R6 ADD R1,R2,R3 IF R2=0 THEN 延迟槽 ADD R1,R2,R3 IF R2=0 THEN 延迟槽 实际分支方向与预测情况不同,则将延迟槽中指令转化成一个空操作。 预测分支成功,实际分支失败; 预测分支失败,实际分支成功。 预测分支失败,实际分支成功,则取消延迟槽中指令 预测分支失败,实际分支失败,正常执行延迟槽中指令 流水段 分 支 指 令 操 作 IF ID EX 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; MEM WB 表3.6 三种方法的要求及效果 调 度 策 略 对调度的要求 什么情况下起作用? 从 前 调 度 从目标处调度 从失败处调度 必须保证在分支失败时执行被调度

文档评论(0)

1亿VIP精品文档

相关文档