计算机组成原理第 7 章.ppt

上传人:牧羊曲112 文档编号:6606638 上传时间:2023-11-17 格式:PPT 页数:59 大小:549KB
返回 下载 相关 举报
计算机组成原理第 7 章.ppt_第1页
第1页 / 共59页
计算机组成原理第 7 章.ppt_第2页
第2页 / 共59页
计算机组成原理第 7 章.ppt_第3页
第3页 / 共59页
计算机组成原理第 7 章.ppt_第4页
第4页 / 共59页
计算机组成原理第 7 章.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《计算机组成原理第 7 章.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第 7 章.ppt(59页珍藏版)》请在三一办公上搜索。

1、现代计算机组成原理,潘 明 潘 松 编著,科学出版社,第 7 章,流水线结构RISC CPU设计,7.1 流水线的一般概念,7.1.1 DLX指令流水线结构,7.1 流水线的一般概念,7.1.1 DLX指令流水线结构,1非流水线结构数据通路,图7-1非流水线实现的指令解释数据通路,7.1 流水线的一般概念,7.1.1 DLX指令流水线结构,1非流水线结构数据通路,(1)取指令周期(IF):IR MemPCNPC PC+1,(2)译码/读寄存器周期(ID)A RegIR 6.10B RegIR11.15Imm(IR16)16#IR16.31),7.1 流水线的一般概念,7.1.1 DLX指令流水

2、线结构,1非流水线结构数据通路,(3)执行/有效地址计算(ALU)Load/Store:ALUoutput A+ImmR-R ALU:ALUoutput A func BR-I ALU:ALUoutput A op ImmBranch:ALUoutput NPC+Imm;Cond A op 0,7.1 流水线的一般概念,7.1.1 DLX指令流水线结构,1非流水线结构数据通路,(4)存储器访问/转移完成(MEM)Load/Store:LMD MemALUoutputMemALUoutput BBranch:if(Cond)then PCALUoutput else PC NPC,7.1 流水线

3、的一般概念,7.1.1 DLX指令流水线结构,1非流水线结构数据通路,(5)写回周期(WB)R-R ALU:RegsIR16.20 ALUoutputR-I ALU:RegsIR11.15 ALUoutput Load:RegsIR11.15 LMD,7.1 流水线的一般概念,7.1.1 DLX指令流水线结构,2DLX基本指令流水线,图7-2 DLX基本指令流水线,7.1 流水线的一般概念,7.1.1 DLX指令流水线结构,2DLX基本指令流水线,表7-1 五级流水线的每一级的具体操作,7.1 流水线的一般概念,7.1.2流水线CPU的时空图,图7-3 流水线时空图,7.1 流水线的一般概念,

4、7.1.2流水线CPU的时空图,图7-4 指令流水线的时空图,7.1 流水线的一般概念,7.1.2流水线CPU的时空图,(a)一个指令流水线过程段 b)非流水线时空图,图7-5 流水线时空图,7.1 流水线的一般概念,7.1.2流水线CPU的时空图,(c)标量流水时空图 d)超标量流水线时空图,图7-5 流水线时空图,7.1 流水线的一般概念,7.1.3 流水线分类,7.2 流水线中的主要问题及处理,7.2.1 资源相关,7.2 流水线中的主要问题及处理,7.2.2 数据相关及其分类,7.2 流水线中的主要问题及处理,7.2.3 数据竞争的处理技术,【例7-1】数据相关实例 ADD R1,R2

5、,R3;(R2)(R3)R1SUB R4,R1,R5;(R1)(R5)R4AND R6,R1,R7;(R1)(R7)R6,表7-2 例7-1中出现的数据相关,7.2 流水线中的主要问题及处理,7.2.3 数据竞争的处理技术,【例7-2】(1)I1 ADD R1,R2,R3;(R2)十(R3)R1 I2 SUB R4,R1,R5;(R1)一(R5)R4(2)I3 STA M(x),R3;(R3)M(x),M(x)是存储单元 I4 ADD R3,R4,R5;(R4)(R5)R3(3)I5 MUL R3,R1,R2;(R1)(R2)R3 I6 ADD R3,R4,R5;(R4)(R5)R3,【例7-

6、3】ADD R1,R2,R3SUB R4,R5,R1AND R6,R1,R7OR R8,R1,R9XOR R10,R1,R11,7.2 流水线中的主要问题及处理,7.2.3 数据竞争的处理技术,图7-6 例7-3的流水状态图,7.2 流水线中的主要问题及处理,7.2.3 数据竞争的处理技术,【例7-4】LW R1,0(R2);R1最早要等到第四拍MEM结束,;才能得到数据.(即才能从Data Memory读入,存入暂存器)SUB R4,R1,R5;SUB所用的R1最迟在第三拍EX开始时要准备好,与LW相差一拍。AND R6,R1,R7;同SUB,可用“提前”方法解决OR R8,R1,R9;同S

7、UB,可用“提前”方法解决,7.2 流水线中的主要问题及处理,7.2.3 数据竞争的处理技术,图7-7引入forwarding path后的状态图,7.2 流水线中的主要问题及处理,7.2.3 数据竞争的处理技术,图7-8引入forwarding path的硬件示意图,7.2 流水线中的主要问题及处理,7.2.3 数据竞争的处理技术,图7-9 引入forwarding后消除了Stall,7.2 流水线中的主要问题及处理,7.2.3 数据竞争的处理技术,图7-10 例7-4的流水线状态图,7.2 流水线中的主要问题及处理,7.2.3 数据竞争的处理技术,图7-11 插入Stall消除Load引起

8、的竞争,7.2 流水线中的主要问题及处理,7.2.3 数据竞争的处理技术,图7-12 插入Stall消除Load引起竞争的电路结构,7.2 流水线中的主要问题及处理,7.2.4 控制相关,在指令流水线中,为了减少因控制相关而引起的流水线性能下降,可采用如下方法:,(1)加快和提前形成条件码,(2)转移预测法,(3)优化延迟转移技术,7.2 流水线中的主要问题及处理,7.2.5 流水实现的关键技术,需要的解决关键技术有:,(1)首先必须保证在指令重叠时,不存在任何流水线资源冲突问题。,(2)解决ID段和WB段在使用寄存器文件时出现的数据相关问题。,(3)解决PC改写产生的控制竞争问题。,(4)使

9、用流水线锁存器。,(5)配置不同用途的算术/逻辑运算部件。,(6)数据流向控制。,7.3流水线的性能评价,7.3.1 流水线的性能指标,1流水线的主要性能指标,(1)吞吐率,(7-1),(7-2),7.3流水线的性能评价,7.3.1 流水线的性能指标,1流水线的主要性能指标,(2)加速比,(7-3),(7-4),(3)使用效率,7.3流水线的性能评价,7.3.1 流水线的性能指标,2CPU性能公式,(7-5),(7-6),(7-7),(7-8),(7-9),7.3流水线的性能评价,7.3.2 应用举例,1一般流水线的性能分析,7-13 用4段加法器求8个数和的流水线时空图,流水线的吞吐率TP为

10、,流水线的加速比S为,7.3流水线的性能评价,7.3.2 应用举例,2流水线延时与开销对流水线性能的影响,单条指令执行时间=CC 平均CPI=10(60%4+40%5)=44ns平均指令执行时间:CCpipeline=11ns 于是得到:Speedup=44/11=4,欲求若使用流水线,执行速度提高了几倍。计算方法是:,欲求执行速度提高了几倍?计算方法如下:,平均指令执行时间=10+8+10+10+7=45ns,而流水线时平均指令执行时间=11ns;于是得到:Speedup=45/11=4.1,7.3流水线的性能评价,7.3.2 应用举例,3流水线障碍(流水线竞争)对流水线性能的影响,(7-1

11、0),CPI pipeline=CPI ideal+流水线stall周期=1+流水线stall周期,(7-11),7.3流水线的性能评价,7.3.2 应用举例,3流水线障碍(流水线竞争)对流水线性能的影响,(7-12),(7-13),7.3流水线的性能评价,7.3.2 应用举例,4结构竞争对流水线性能的影响,图7-14 7-13 结构竞争示意图,7.3流水线的性能评价,7.3.2 应用举例,4结构竞争对流水线性能的影响,图7-15 7-14 结构竞争流水线状态图,7.3流水线的性能评价,7.3.2 应用举例,5控制竞争对流水线性能的影响,图7-15 7-14 结构竞争流水线状态图,7.3流水线

12、的性能评价,7.3.2 应用举例,5控制竞争对流水线性能的影响,图7-17 预测成功无停顿,7.3流水线的性能评价,7.3.2 应用举例,5控制竞争对流水线性能的影响,图7-18 预测失败停顿一个周期,7.3流水线的性能评价,7.3.3 Amdahl定律,Amdahl定律还可以表为如下形式,习 题,7-1判断以下三组指令中各存在哪种类型的数据相关?(1)I1 LAD R1,A;M(A)R1,M(A)是存储器单元 I2 ADD R2,R1;(R2)(R1)R2(2)I3 ADD R3,R4;(R3)(R4)R3 I4 MUL R4,R5;(R4)(R5)R4(3)I5 LAD R6,B;M(B)

13、R6,M(B)是存储单元 I6 MUL R6,R7;(R6)(R7)R67-2指令流水线有取指(IF)、译码(ID)、执行(EX)、访存(MEM)、写回寄存器堆(WB)五个过程段,现共有2条指令连续输入此流水线。画出流水处理的时空图,假设时钟周期为100ns。,习 题,7-3假设有一个计算机系统分为四级,每一级指令都比它下面一级指令在功能上强M倍。即一条r+1级指令能够完成M条r指令的工作,且一条r+1指令需要N条r级指令解释。对于一段在第一级执行时间为K的程序,在第二、第三、第四级上的一段等效程序需要执行多少时间?7-4对于一台400MHz计算机执行标淮测试程序,此程序中的指令类型,执行数量

14、和平均时钟周期数如下表,求该计算机的有效CPI、MIPS和程序执行时间。,习 题,7-5计算机系统中有三个部件可以改进,这三个部件的部件加速比如下:部件加速比1=30;部件加速比2=20;部件加速比3=10(1)如果部件1和部件2的可改进比例均为30,那么当部件3的可改进比例为多少时,系统加速比才可以达到10%?(2)如果三个部件的可改进比例分别为30、30和20,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少?(3)如果相对某个测试程序,三个部件的可改进比例分别为20、20%和70要达到最好改进效果,仅对一个部件改进时,要选择哪个部件?如果允许改进两个部件,又

15、如何选择?7-6在流水线处理器中,可能有哪几种数据相关?这几种相关分别发生在什么情况下?解决操作数相关的方法有哪几种?,习 题,7-7假设在一台40MHz处理器上运行200 000条指令的目标代码,程序主要由四种指令组成。根据程序跟踪实验结果,已知指令混合比和每种指令所需的指令数如下:,(1)计算在单处理机上用上述跟踪数据运行程序的平均CPI。(2)根据(1)所得CPI,计算相应MIPS速率。,习 题,7-8对于一台40MHz计算机执行标准测试程序,程序中指令类型,执行数量和平均时钟周期数如下:,求该计算机的有效CPI、MIPS和程序执行时间。7-9叙述Amdahl定律的主要内容。,实验与设计

16、,实验7-1 乘法器实验,图7-19 最基本的硬件乘法器,实验与设计,实验7-1 乘法器实验,图7-20 改进后的硬件乘法器,实验与设计,实验7-1 乘法器实验,图7-19 最基本的硬件乘法器,【例7-5】library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mult is port(mul_clk,ema,emb:in std_logic;a,b:in std_logic_vector(15 downto 0);mul_a_out,mul_b_out:out std_logic_vect

17、or(15 downto 0);end mult;architecture rtl of mult is function and16_1(oper:in std_logic_vector(15 downto 0);sel:in std_logic)return std_logic_vector is begin if sel=1 then return oper;else return 0000000000000000;end if;end function and16_1;signalout0:std_logic_vector(31 downto 0);signala_temp0:std_

18、logic_vector(30 downto 0);signala_temp1:std_logic_vector(29 downto 0);signala_temp2:std_logic_vector(28 downto 0);signala_temp3:std_logic_vector(27 downto 0);signala_temp4:std_logic_vector(26 downto 0);,接下页,实验与设计,实验7-1 乘法器实验,图7-19 最基本的硬件乘法器,signala_temp5:std_logic_vector(25 downto 0);signala_temp6:s

19、td_logic_vector(24 downto 0);signala_temp7:std_logic_vector(23 downto 0);signala_temp8:std_logic_vector(22 downto 0);signala_temp9:std_logic_vector(21 downto 0);signala_temp10:std_logic_vector(20 downto 0);signala_temp11:std_logic_vector(19 downto 0);signala_temp12:std_logic_vector(18 downto 0);sign

20、ala_temp13:std_logic_vector(17 downto 0);signala_temp14:std_logic_vector(16 downto 0);signala_temp15:std_logic_vector(15 downto 0);begin process(mul_clk)beginif rising_edge(mul_clk)thena_temp0(30 downto 15)=and16_1(a,b(15);a_temp0(14 downto 0)=b000000000000000;a_temp1(29 downto 14)=and16_1(a,b(14);a

21、_temp1(13 downto 0)=b00000000000000;a_temp2(28 downto 13)=and16_1(a,b(13);a_temp2(12 downto 0)=b0000000000000;a_temp3(27 downto 12)=and16_1(a,b(12);a_temp3(11 downto 0)=b000000000000;a_temp4(26 downto 11)=and16_1(a,b(11);a_temp4(10 downto 0)=b00000000000;a_temp5(25 downto 10)=and16_1(a,b(10);a_temp5

22、(9 downto 0)=b0000000000;a_temp6(24 downto 9)=and16_1(a,b(9);a_temp6(8 downto 0)=b000000000;a_temp7(23 downto 8)=and16_1(a,b(8);a_temp7(7 downto 0)=b00000000;a_temp8(22 downto 7)=and16_1(a,b(7);a_temp8(6 downto 0)=b0000000;a_temp9(21 downto 6)=and16_1(a,b(6);a_temp9(5 downto 0)=b000000;,接下页,实验与设计,实验

23、7-1 乘法器实验,图7-19 最基本的硬件乘法器,a_temp10(20 downto 5)=and16_1(a,b(5);a_temp10(4 downto 0)=b00000;a_temp11(19 downto 4)=and16_1(a,b(4);a_temp11(3 downto 0)=b0000;a_temp12(18 downto 3)=and16_1(a,b(3);a_temp12(2 downto 0)=b000;a_temp13(17 downto 2)=and16_1(a,b(2);a_temp13(1 downto 0)=b00;a_temp14(16 downto 1

24、)=and16_1(a,b(1);a_temp14(0)=0;a_temp15=and16_1(a,b(0);end if;end process;process(a_temp0,a_temp1,a_temp2,a_temp3,a_temp4,a_temp5,a_temp6,a_temp7,a_temp8,a_temp9,a_temp10,a_temp11,a_temp12,a_temp13,a_temp14,a_temp15)variableout1,c1:std_logic_vector(31 downto 0);variableout2:std_logic_vector(29 downt

25、o 0);variableout3,c2:std_logic_vector(27 downto 0);variableout4:std_logic_vector(25 downto 0);variableout5,c3:std_logic_vector(23 downto 0);variableout6:std_logic_vector(21 downto 0);variableout7,c4:std_logic_vector(19 downto 0);variableout8:std_logic_vector(17 downto 0);variablec5:std_logic_vector(

26、31 downto 0);variablec6:std_logic_vector(27 downto 0);beginout1:=(0 out2:=(0&a_temp2)+a_temp3;out3:=(0&a_temp4)+a_temp5;out4:=(0&a_temp6)+a_temp7;out5:=(0&a_temp8)+a_temp9;,接下页,实验与设计,实验7-1 乘法器实验,out6:=(0 process(ema,emb,out0)beginif ema=1then mul_a_out=out0(15 downto 0);else mul_a_out=ZZZZZZZZZZZZZZ

27、ZZ;end if;if emb=1then mul_b_out=out0(31 downto 16);else mul_b_out=ZZZZZZZZZZZZZZZZ;end if;end process;end rtl;,实验与设计,实验7-1 乘法器实验,图7-21 乘法器仿真波形,实验与设计,实验7-1 乘法器实验,图7-22 乘法器的时序分析,实验与设计,实验7-2 除法器实验,【例7-6】library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div isport(div_clk:

28、in std_logic;ea,eb:in std_logic;a,b:in std_logic_vector(15 downto 0);div_a_out,div_b_out:out std_logic_vector(15 downto 0);end div;architecture rtl of div issignalsigna,signb:std_logic_vector(15 downto 0);beginprocess(div_clk),接下页,实验与设计,实验7-2 除法器实验,variable a_temp,b_temp:std_logic_vector(15 downto 0

29、);variablep,q:std_logic_vector(15 downto 0);beginif rising_edge(div_clk)then a_temp:=a;b_temp:=b;p:=b0000000000000000;q:=b0000000000000000;for i in signarange loopp:=p(14 downto 0)process(ea,eb,signa,signb)beginif ea=1 then div_a_out=signa else div_a_out=ZZZZZZZZZZZZZZZZ end if;if eb=1 then div_b_out=signb;else div_b_out=ZZZZZZZZZZZZZZZZ;end if;end process;end rtl;,实验与设计,实验7-2 除法器实验,图7-23 除法运算流程图,实验与设计,实验7-2 除法器实验,图7-24 1616除法器仿真运算结果,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号