計算機組成原理 第 7 章.ppt
《計算機組成原理 第 7 章.ppt》由會員分享,可在線閱讀,更多相關《計算機組成原理 第 7 章.ppt(59頁珍藏版)》請在裝配圖網上搜索。
1、現(xiàn)代計算機組成原理,潘 明 潘 松 編著,,科學出版社,第 7 章,流水線結構RISC CPU設計,7.1 流水線的一般概念,7.1.1 DLX指令流水線結構,7.1 流水線的一般概念,7.1.1 DLX指令流水線結構,1非流水線結構數據通路,圖7-1非流水線實現(xiàn)的指令解釋數據通路,7.1 流水線的一般概念,7.1.1 DLX指令流水線結構,1非流水線結構數據通路,(1)取指令周期(IF): IR MemPC NPC PC + 1,(2)譯碼/讀寄存器周期(ID) A RegIR 6..10 B RegIR11..15 Imm ( (IR16)16## IR16..31),7.1 流水線的一般
2、概念,7.1.1 DLX指令流水線結構,1非流水線結構數據通路,(3)執(zhí)行/有效地址計算(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指令流水線結構,1非流水線結構數據通路,(4)存儲器訪問/轉移完成(MEM) Load/Store: LMD MemALUoutput MemALUoutput B Branch:
3、 if (Cond) then PCALUoutput else PC NPC,7.1 流水線的一般概念,7.1.1 DLX指令流水線結構,1非流水線結構數據通路,(5)寫回周期(WB) R-R ALU: RegsIR16..20 ALUoutput R-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-
4、1 五級流水線的每一級的具體操作,7.1 流水線的一般概念,7.1.2流水線CPU的時空圖,圖7-3 流水線時空圖,7.1 流水線的一般概念,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
5、.1 資源相關,7.2 流水線中的主要問題及處理,7.2.2 數據相關及其分類,7.2 流水線中的主要問題及處理,7.2.3 數據競爭的處理技術,【例7-1】數據相關實例 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)的數據相關,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)
6、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-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 數據競爭的處理技術,圖7-6 例7-3的流水狀態(tài)圖,7.2 流水線中的主要問題及處理,7.2.3 數據競爭的處理技術,【例7-4】
7、 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 ;同SUB,可用“提前”方法解決,7.2 流水線中的主要問題及處理,7.2.3 數據競爭的處理技術,圖7-7引入forwarding path后的狀態(tài)圖,7.2 流水線中的主要問題及處理,7.2.3 數據競爭的處理技術,圖7-8引入forwa
8、rding path的硬件示意圖,7.2 流水線中的主要問題及處理,7.2.3 數據競爭的處理技術,圖7-9 引入forwarding后消除了Stall,7.2 流水線中的主要問題及處理,7.2.3 數據競爭的處理技術,圖7-10 例7-4的流水線狀態(tài)圖,7.2 流水線中的主要問題及處理,7.2.3 數據競爭的處理技術,圖7-11 插入Stall消除Load引起的競爭,7.2 流水線中的主要問題及處理,7.2.3 數據競爭的處理技術,圖7-12 插入Stall消除Load引起競爭的電路結構,7.2 流水線中的主要問題及處理,7.2.4 控制相關,在指令流水線中,為了減少因控制相關而引起的流水線
9、性能下降,可采用如下方法:,(1)加快和提前形成條件碼,(2)轉移預測法,(3)優(yōu)化延遲轉移技術,7.2 流水線中的主要問題及處理,7.2.5 流水實現(xiàn)的關鍵技術,需要的解決關鍵技術有:,(1)首先必須保證在指令重疊時,不存在任何流水線資源沖突問題。,(2)解決ID段和WB段在使用寄存器文件時出現(xiàn)的數據相關問題。,(3)解決PC改寫產生的控制競爭問題。,(4)使用流水線鎖存器。,(5)配置不同用途的算術/邏輯運算部件。,(6)數據流向控制。,7.3流水線的性能評價,7.3.1 流水線的性能指標,1流水線的主要性能指標,(1)吞吐率,(7-1),(7-2),7.3流水線的性能評價,7.3.1 流
10、水線的性能指標,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為,流水線的加速比S為,7.3流水線的性能評價,7.3.2 應用舉例,2流水線延時與開銷對流水線性能的影響,單條指令執(zhí)行時間 = CC 平均CPI = 10 (60% 4 + 40% 5)= 44ns 平均指令執(zhí)行時間:CCpipelin
11、e = 11ns 于是得到:Speedup = 44 /11 = 4,欲求若使用流水線,執(zhí)行速度提高了幾倍。計算方法是:,欲求執(zhí)行速度提高了幾倍?計算方法如下:,平均指令執(zhí)行時間 = 10+8+10+10+7 = 45ns, 而流水線時平均指令執(zhí)行時間 = 11ns; 于是得到:Speedup = 45/11 = 4.1,7.3流水線的性能評價,7.3.2 應用舉例,3流水線障礙(流水線競爭)對流水線性能的影響,(7-10),CPI pipeline = CPI ideal + 流水線stall周期 = 1 +流水線stall周期,(7-11),7.3流水線的性能評價,7.3.2 應用舉
12、例,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 結構競爭流水線狀態(tài)圖,7.3流水線的性能評價,7.3.2 應用舉例,5控制競爭對流水線性能的影響,圖7-15 7-14 結構競爭流水線狀態(tài)圖,7.3流水線的性能評價,7.3.2 應用舉例,5控制競爭對流水線性能的影響,圖7-17 預測成功無停頓,7.3流水線的性能評價,7.3.2 應用舉例,5控制競爭對流水線
13、性能的影響,圖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) R6,M(B)是存儲單元 I6 MUL R6,R7 ;(R6) (R7) R6 7-2指令流水線有取指(IF)、譯碼(ID)、執(zhí)行
14、(EX)、訪存(MEM)、寫回寄存器堆(WB)五個過程段,現(xiàn)共有2條指令連續(xù)輸入此流水線。畫出流水處理的時空圖,假設時鐘周期為100ns。,習 題,7-3假設有一個計算機系統(tǒng)分為四級,每一級指令都比它下面一級指令在功能上強M倍。即一條r+1級指令能夠完成M條r指令的工作,且一條r+1指令需要N條r級指令解釋。對于一段在第一級執(zhí)行時間為K的程序,在第二、第三、第四級上的一段等效程序需要執(zhí)行多少時間? 7-4對于一臺400MHz計算機執(zhí)行標淮測試程序,此程序中的指令類型,執(zhí)行數量和平均時鐘周期數如下表,求該計算機的有效CPI、MIPS和程序執(zhí)行時間。,習 題,7-5計算機系統(tǒng)中有三個部件可以改進,
15、這三個部件的部件加速比如下: 部件加速比1=30 ; 部件加速比2=20 ;部件加速比3=10 (1)如果部件1和部件2的可改進比例均為30,那么當部件3的可改進比例為多少時,系統(tǒng)加速比才可以達到10%? (2)如果三個部件的可改進比例分別為30、30和20,三個部件同時改進,那么系統(tǒng)中不可加速部分的執(zhí)行時間在總執(zhí)行時間中占的比例是多少? (3)如果相對某個測試程序,三個部件的可改進比例分別為20、20%和70要達到最好改進效果,僅對一個部件改進時,要選擇哪個部件?如果允許改進兩個部件,又如何選擇? 7-6在流水線處理器中,可能有哪幾種數據相關?這幾種相關分別發(fā)生在什么情況下?解決操作數相關的
16、方法有哪幾種?,習 題,7-7假設在一臺40MHz處理器上運行200 000條指令的目標代碼,程序主要由四種指令組成。根據程序跟蹤實驗結果,已知指令混合比和每種指令所需的指令數如下:,(1)計算在單處理機上用上述跟蹤數據運行程序的平均CPI。 (2)根據(1)所得CPI,計算相應MIPS速率。,習 題,7-8對于一臺40MHz計算機執(zhí)行標準測試程序,程序中指令類型,執(zhí)行數量和平均時鐘周期數如下:,求該計算機的有效CPI、MIPS和程序執(zhí)行時間。 7-9敘述Amdahl定律的主要內容。,實驗與設計,實驗7-1 乘法器實驗,圖7-19 最基本的硬件乘法器,實驗與設計,實驗7-1 乘法器實驗,圖7-
17、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_vector(15 downto 0)); end mult; architect
18、ure 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_logic_vector(30 d
19、ownto 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:std_logic_vec
20、tor(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); signala_t
21、emp13: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) 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) <= and
22、16_1(a,b(14));a_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
23、; 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_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) <= b0
24、000000 ; a_temp9(21 downto 6) <= and16_1(a,b(6)) ;a_temp9(5 downto 0) <= b000000 ;,接下頁,實驗與設計,實驗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
25、_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,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_te
26、mp7, 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 downto 0); variableout3,c2 : std_logic_vector(27 downto 0); variableout4 : std_logic_vector(25 downto 0); variableout5,c3 : std_logic_vector(
27、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(31 downto 0); variablec6 : std_logic_vector(27 downto 0); begin out1 := (0 out2 := (0 use ieee.std_logic_1164.all; u
28、se 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_logic_vector(15 downto 0)); end div; architecture rtl of div is signalsigna,signb:std_logic_vector(15 downto 0); begin process(div_clk),接下頁,
29、實驗與設計,實驗7-2 除法器實驗,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 := 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 ;,實驗與設計,實驗7-2 除法器實驗,圖7-23 除法運算流程圖,實驗與設計,實驗7-2 除法器實驗,圖7-24 1616除法器仿真運算結果,
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 某咨詢創(chuàng)業(yè)__奇正實業(yè)集團有限公司戰(zhàn)略績效管理
- 廣西崇左市大新縣全茗鎮(zhèn)中學九年級語文上冊 第5課 敬業(yè)與樂業(yè)課件 (新版)新人教版
- 代時間管理FTF
- 學校常見傳染病防控知識課件
- 家具設計面料品牌畫冊
- 地基處理練習題
- 如何讓孩子有話說
- 抽樣誤差與假設檢驗
- 中考數學專題復習專題提升五一次函數的圖象與性質的應用講義
- 人教版必修一2.4《勻變速直線運動的位移與速度的》課件
- 2光的衍射概述課件
- 工信版(中職)虛擬現(xiàn)實技術與應用【03】1-3-8 虛擬現(xiàn)實立體顯示器電子課件
- 七年級語文下冊 《雪花的快樂》課件 鄂教版
- 自我認知與時間管理
- 百分數的意義與寫法