計(jì)算機(jī)組成原理 第 7 章.ppt

上傳人:za****8 文檔編號(hào):14536452 上傳時(shí)間:2020-07-23 格式:PPT 頁數(shù):59 大?。?14.06KB
收藏 版權(quán)申訴 舉報(bào) 下載
計(jì)算機(jī)組成原理 第 7 章.ppt_第1頁
第1頁 / 共59頁
計(jì)算機(jī)組成原理 第 7 章.ppt_第2頁
第2頁 / 共59頁
計(jì)算機(jī)組成原理 第 7 章.ppt_第3頁
第3頁 / 共59頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《計(jì)算機(jī)組成原理 第 7 章.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)組成原理 第 7 章.ppt(59頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、現(xiàn)代計(jì)算機(jī)組成原理,潘 明 潘 松 編著,科學(xué)出版社,第 7 章,流水線結(jié)構(gòu)RISC CPU設(shè)計(jì),7.1 流水線的一般概念,7.1.1 DLX指令流水線結(jié)構(gòu),7.1 流水線的一般概念,7.1.1 DLX指令流水線結(jié)構(gòu),1非流水線結(jié)構(gòu)數(shù)據(jù)通路,圖7-1非流水線實(shí)現(xiàn)的指令解釋數(shù)據(jù)通路,7.1 流水線的一般概念,7.1.1 DLX指令流水線結(jié)構(gòu),1非流水線結(jié)構(gòu)數(shù)據(jù)通路,(1)取指令周期(IF): IR MemPC NPC PC + 1,(2)譯碼/讀寄存器周期(ID) A RegIR 6.10 B RegIR11.15 Imm ( (IR16)16# IR16.31),7.1 流水線的一般概念,7.

2、1.1 DLX指令流水線結(jié)構(gòu),1非流水線結(jié)構(gòu)數(shù)據(jù)通路,(3)執(zhí)行/有效地址計(jì)算(ALU) Load/Store: ALUoutput A+Imm R-R ALU: ALUoutput A func B R-I ALU: ALUoutput A op Imm Branch: ALUoutput NPC + Imm; Cond A op 0,7.1 流水線的一般概念,7.1.1 DLX指令流水線結(jié)構(gòu),1非流水線結(jié)構(gòu)數(shù)據(jù)通路,(4)存儲(chǔ)器訪問/轉(zhuǎn)移完成(MEM) Load/Store: LMD MemALUoutput MemALUoutput B Branch: if (Cond) then PC

3、ALUoutput else PC NPC,7.1 流水線的一般概念,7.1.1 DLX指令流水線結(jié)構(gòu),1非流水線結(jié)構(gòu)數(shù)據(jù)通路,(5)寫回周期(WB) R-R ALU: RegsIR16.20 ALUoutput R-I ALU: RegsIR11.15 ALUoutput Load: RegsIR11.15 LMD,7.1 流水線的一般概念,7.1.1 DLX指令流水線結(jié)構(gòu),2DLX基本指令流水線,圖7-2 DLX基本指令流水線,7.1 流水線的一般概念,7.1.1 DLX指令流水線結(jié)構(gòu),2DLX基本指令流水線,表7-1 五級(jí)流水線的每一級(jí)的具體操作,7.1 流水線的一般概念,7.1.2流水

4、線CPU的時(shí)空圖,圖7-3 流水線時(shí)空圖,7.1 流水線的一般概念,7.1.2流水線CPU的時(shí)空圖,圖7-4 指令流水線的時(shí)空圖,7.1 流水線的一般概念,7.1.2流水線CPU的時(shí)空圖,(a) 一個(gè)指令流水線過程段 b)非流水線時(shí)空圖,圖7-5 流水線時(shí)空圖,7.1 流水線的一般概念,7.1.2流水線CPU的時(shí)空圖,(c) 標(biāo)量流水時(shí)空圖 d)超標(biāo)量流水線時(shí)空圖,圖7-5 流水線時(shí)空圖,7.1 流水線的一般概念,7.1.3 流水線分類,7.2 流水線中的主要問題及處理,7.2.1 資源相關(guān),7.2 流水線中的主要問題及處理,7.2.2 數(shù)據(jù)相關(guān)及其分類,7.2 流水線中的主要問題及處理,7.

5、2.3 數(shù)據(jù)競爭的處理技術(shù),【例7-1】數(shù)據(jù)相關(guān)實(shí)例 ADD R1,R2,R3 ; (R2)(R3)R1 SUB R4,R1,R5 ; (R1)(R5)R4 AND R6,R1,R7 ; (R1)(R7)R6,表7-2 例7-1中出現(xiàn)的數(shù)據(jù)相關(guān),7.2 流水線中的主要問題及處理,7.2.3 數(shù)據(jù)競爭的處理技術(shù),【例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)是存儲(chǔ)單元 I4 ADD R3,R4,R5 ;(R4) (R5) R3

6、 (3) I5 MUL R3,R1,R2 ;(R1) (R2) R3 I6 ADD R3,R4,R5 ;(R4) (R5) R3,【例7-3】 ADD R1,R2,R3 SUB R4,R5,R1 AND R6,R1,R7 OR R8,R1,R9 XOR R10,R1,R11,7.2 流水線中的主要問題及處理,7.2.3 數(shù)據(jù)競爭的處理技術(shù),圖7-6 例7-3的流水狀態(tài)圖,7.2 流水線中的主要問題及處理,7.2.3 數(shù)據(jù)競爭的處理技術(shù),【例7-4】 LW R1,0(R2) ;R1最早要等到第四拍MEM結(jié)束, ;才能得到數(shù)據(jù).(即才能從Data Memory讀入, 存入暫存器) SUB R4,R

7、1,R5 ;SUB所用的R1最遲在第三拍EX開始時(shí)要準(zhǔn)備好, 與LW相差一拍。 AND R6,R1,R7 ;同SUB,可用“提前”方法解決 OR R8,R1,R9 ;同SUB,可用“提前”方法解決,7.2 流水線中的主要問題及處理,7.2.3 數(shù)據(jù)競爭的處理技術(shù),圖7-7引入forwarding path后的狀態(tài)圖,7.2 流水線中的主要問題及處理,7.2.3 數(shù)據(jù)競爭的處理技術(shù),圖7-8引入forwarding path的硬件示意圖,7.2 流水線中的主要問題及處理,7.2.3 數(shù)據(jù)競爭的處理技術(shù),圖7-9 引入forwarding后消除了Stall,7.2 流水線中的主要問題及處理,7.2

8、.3 數(shù)據(jù)競爭的處理技術(shù),圖7-10 例7-4的流水線狀態(tài)圖,7.2 流水線中的主要問題及處理,7.2.3 數(shù)據(jù)競爭的處理技術(shù),圖7-11 插入Stall消除Load引起的競爭,7.2 流水線中的主要問題及處理,7.2.3 數(shù)據(jù)競爭的處理技術(shù),圖7-12 插入Stall消除Load引起競爭的電路結(jié)構(gòu),7.2 流水線中的主要問題及處理,7.2.4 控制相關(guān),在指令流水線中,為了減少因控制相關(guān)而引起的流水線性能下降,可采用如下方法:,(1)加快和提前形成條件碼,(2)轉(zhuǎn)移預(yù)測法,(3)優(yōu)化延遲轉(zhuǎn)移技術(shù),7.2 流水線中的主要問題及處理,7.2.5 流水實(shí)現(xiàn)的關(guān)鍵技術(shù),需要的解決關(guān)鍵技術(shù)有:,(1)

9、首先必須保證在指令重疊時(shí),不存在任何流水線資源沖突問題。,(2)解決ID段和WB段在使用寄存器文件時(shí)出現(xiàn)的數(shù)據(jù)相關(guān)問題。,(3)解決PC改寫產(chǎn)生的控制競爭問題。,(4)使用流水線鎖存器。,(5)配置不同用途的算術(shù)/邏輯運(yùn)算部件。,(6)數(shù)據(jù)流向控制。,7.3流水線的性能評(píng)價(jià),7.3.1 流水線的性能指標(biāo),1流水線的主要性能指標(biāo),(1)吞吐率,(7-1),(7-2),7.3流水線的性能評(píng)價(jià),7.3.1 流水線的性能指標(biāo),1流水線的主要性能指標(biāo),(2)加速比,(7-3),(7-4),(3)使用效率,7.3流水線的性能評(píng)價(jià),7.3.1 流水線的性能指標(biāo),2CPU性能公式,(7-5),(7-6),(7

10、-7),(7-8),(7-9),7.3流水線的性能評(píng)價(jià),7.3.2 應(yīng)用舉例,1一般流水線的性能分析,7-13 用4段加法器求8個(gè)數(shù)和的流水線時(shí)空圖,流水線的吞吐率TP為,流水線的加速比S為,7.3流水線的性能評(píng)價(jià),7.3.2 應(yīng)用舉例,2流水線延時(shí)與開銷對流水線性能的影響,單條指令執(zhí)行時(shí)間 = CC 平均CPI = 10 (60% 4 + 40% 5)= 44ns 平均指令執(zhí)行時(shí)間:CCpipeline = 11ns 于是得到:Speedup = 44 /11 = 4,欲求若使用流水線,執(zhí)行速度提高了幾倍。計(jì)算方法是:,欲求執(zhí)行速度提高了幾倍?計(jì)算方法如下:,平均指令執(zhí)行時(shí)間 = 10+8+

11、10+10+7 = 45ns, 而流水線時(shí)平均指令執(zhí)行時(shí)間 = 11ns; 于是得到:Speedup = 45/11 = 4.1,7.3流水線的性能評(píng)價(jià),7.3.2 應(yīng)用舉例,3流水線障礙(流水線競爭)對流水線性能的影響,(7-10),CPI pipeline = CPI ideal + 流水線stall周期 = 1 +流水線stall周期,(7-11),7.3流水線的性能評(píng)價(jià),7.3.2 應(yīng)用舉例,3流水線障礙(流水線競爭)對流水線性能的影響,(7-12),(7-13),7.3流水線的性能評(píng)價(jià),7.3.2 應(yīng)用舉例,4結(jié)構(gòu)競爭對流水線性能的影響,圖7-14 7-13 結(jié)構(gòu)競爭示意圖,7.3流

12、水線的性能評(píng)價(jià),7.3.2 應(yīng)用舉例,4結(jié)構(gòu)競爭對流水線性能的影響,圖7-15 7-14 結(jié)構(gòu)競爭流水線狀態(tài)圖,7.3流水線的性能評(píng)價(jià),7.3.2 應(yīng)用舉例,5控制競爭對流水線性能的影響,圖7-15 7-14 結(jié)構(gòu)競爭流水線狀態(tài)圖,7.3流水線的性能評(píng)價(jià),7.3.2 應(yīng)用舉例,5控制競爭對流水線性能的影響,圖7-17 預(yù)測成功無停頓,7.3流水線的性能評(píng)價(jià),7.3.2 應(yīng)用舉例,5控制競爭對流水線性能的影響,圖7-18 預(yù)測失敗停頓一個(gè)周期,7.3流水線的性能評(píng)價(jià),7.3.3 Amdahl定律,Amdahl定律還可以表為如下形式,習(xí) 題,7-1判斷以下三組指令中各存在哪種類型的數(shù)據(jù)相關(guān)? (1

13、)I1 LAD R1,A ;M(A) R1,M(A)是存儲(chǔ)器單元 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) R6,M(B)是存儲(chǔ)單元 I6 MUL R6,R7 ;(R6) (R7) R6 7-2指令流水線有取指(IF)、譯碼(ID)、執(zhí)行(EX)、訪存(MEM)、寫回寄存器堆(WB)五個(gè)過程段,現(xiàn)共有2條指令連續(xù)輸入此流水線。畫出流水處理的時(shí)空圖,假設(shè)時(shí)鐘周期為100ns。,習(xí) 題,7-3假設(shè)有一個(gè)計(jì)算機(jī)系統(tǒng)分為四級(jí),每一級(jí)指令都比它

14、下面一級(jí)指令在功能上強(qiáng)M倍。即一條r+1級(jí)指令能夠完成M條r指令的工作,且一條r+1指令需要N條r級(jí)指令解釋。對于一段在第一級(jí)執(zhí)行時(shí)間為K的程序,在第二、第三、第四級(jí)上的一段等效程序需要執(zhí)行多少時(shí)間? 7-4對于一臺(tái)400MHz計(jì)算機(jī)執(zhí)行標(biāo)淮測試程序,此程序中的指令類型,執(zhí)行數(shù)量和平均時(shí)鐘周期數(shù)如下表,求該計(jì)算機(jī)的有效CPI、MIPS和程序執(zhí)行時(shí)間。,習(xí) 題,7-5計(jì)算機(jī)系統(tǒng)中有三個(gè)部件可以改進(jìn),這三個(gè)部件的部件加速比如下: 部件加速比1=30 ; 部件加速比2=20 ;部件加速比3=10 (1)如果部件1和部件2的可改進(jìn)比例均為30,那么當(dāng)部件3的可改進(jìn)比例為多少時(shí),系統(tǒng)加速比才可以達(dá)到10

15、%? (2)如果三個(gè)部件的可改進(jìn)比例分別為30、30和20,三個(gè)部件同時(shí)改進(jìn),那么系統(tǒng)中不可加速部分的執(zhí)行時(shí)間在總執(zhí)行時(shí)間中占的比例是多少? (3)如果相對某個(gè)測試程序,三個(gè)部件的可改進(jìn)比例分別為20、20%和70要達(dá)到最好改進(jìn)效果,僅對一個(gè)部件改進(jìn)時(shí),要選擇哪個(gè)部件?如果允許改進(jìn)兩個(gè)部件,又如何選擇? 7-6在流水線處理器中,可能有哪幾種數(shù)據(jù)相關(guān)?這幾種相關(guān)分別發(fā)生在什么情況下?解決操作數(shù)相關(guān)的方法有哪幾種?,習(xí) 題,7-7假設(shè)在一臺(tái)40MHz處理器上運(yùn)行200 000條指令的目標(biāo)代碼,程序主要由四種指令組成。根據(jù)程序跟蹤實(shí)驗(yàn)結(jié)果,已知指令混合比和每種指令所需的指令數(shù)如下:,(1)計(jì)算在單處

16、理機(jī)上用上述跟蹤數(shù)據(jù)運(yùn)行程序的平均CPI。 (2)根據(jù)(1)所得CPI,計(jì)算相應(yīng)MIPS速率。,習(xí) 題,7-8對于一臺(tái)40MHz計(jì)算機(jī)執(zhí)行標(biāo)準(zhǔn)測試程序,程序中指令類型,執(zhí)行數(shù)量和平均時(shí)鐘周期數(shù)如下:,求該計(jì)算機(jī)的有效CPI、MIPS和程序執(zhí)行時(shí)間。 7-9敘述Amdahl定律的主要內(nèi)容。,實(shí)驗(yàn)與設(shè)計(jì),實(shí)驗(yàn)7-1 乘法器實(shí)驗(yàn),圖7-19 最基本的硬件乘法器,實(shí)驗(yàn)與設(shè)計(jì),實(shí)驗(yàn)7-1 乘法器實(shí)驗(yàn),圖7-20 改進(jìn)后的硬件乘法器,實(shí)驗(yàn)與設(shè)計(jì),實(shí)驗(yàn)7-1 乘法器實(shí)驗(yàn),圖7-19 最基本的硬件乘法器,【例7-5】 library ieee; use ieee.std_logic_1164.all; use

17、 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_vector(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

18、 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_logic_vector(30 downto 0); signala_temp1:std_logic_vector(29 downto 0); signala_temp2:std_logic_vector(28 downto 0); signal

19、a_temp3:std_logic_vector(27 downto 0); signala_temp4:std_logic_vector(26 downto 0);,接下頁,實(shí)驗(yàn)與設(shè)計(jì),實(shí)驗(yàn)7-1 乘法器實(shí)驗(yàn),圖7-19 最基本的硬件乘法器,signala_temp5:std_logic_vector(25 downto 0); signala_temp6:std_logic_vector(24 downto 0); signala_temp7:std_logic_vector(23 downto 0); signala_temp8:std_logic_vector(22 downto 0)

20、; 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); signala_temp13:std_logic_vector(17 downto 0); signala_temp14:std_logic_vector(16 downto 0); signala_temp15:std_logi

21、c_vector(15 downto 0); begin process(mul_clk) begin if rising_edge(mul_clk)then a_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_temp1(13 downto 0) = b00000000000000 ; a_temp2(28 downto 13) = and16_1(a,b(13);a_temp2(12 downto

22、 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(9 downto 0) = b0000000000 ; a_temp6(24 downto 9) = and16_1(a,b(9) ;a_tem

23、p6(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 ;,接下頁,實(shí)驗(yàn)與設(shè)計(jì),實(shí)驗(yàn)7-1 乘法器實(shí)驗(yàn),圖7-19 最基本的硬件乘法器,a_temp10(20 down

24、to 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) = and16_1(a,

25、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

26、downto 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); varia

27、blec5 : std_logic_vector(31 downto 0); variablec6 : std_logic_vector(27 downto 0); begin out1 := (0 out2 := (0 use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity div is port(div_clk: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

28、_logic_vector(15 downto 0); end div; architecture rtl of div is signalsigna,signb:std_logic_vector(15 downto 0); begin process(div_clk),接下頁,實(shí)驗(yàn)與設(shè)計(jì),實(shí)驗(yàn)7-2 除法器實(shí)驗(yàn),variable a_temp,b_temp: std_logic_vector(15 downto 0); variablep,q:std_logic_vector(15 downto 0); begin if rising_edge(div_clk) then a_temp :=

29、 a ; b_temp := b; p := b0000000000000000;q := b0000000000000000; for i in signarange loop p := p(14 downto 0) process(ea,eb,signa,signb) begin if 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 ;,實(shí)驗(yàn)與設(shè)計(jì),實(shí)驗(yàn)7-2 除法器實(shí)驗(yàn),圖7-23 除法運(yùn)算流程圖,實(shí)驗(yàn)與設(shè)計(jì),實(shí)驗(yàn)7-2 除法器實(shí)驗(yàn),圖7-24 1616除法器仿真運(yùn)算結(jié)果,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!