計(jì)算機(jī)組織與系統(tǒng)結(jié)構(gòu)習(xí)題答案_第1頁
計(jì)算機(jī)組織與系統(tǒng)結(jié)構(gòu)習(xí)題答案_第2頁
計(jì)算機(jī)組織與系統(tǒng)結(jié)構(gòu)習(xí)題答案_第3頁
計(jì)算機(jī)組織與系統(tǒng)結(jié)構(gòu)習(xí)題答案_第4頁
計(jì)算機(jī)組織與系統(tǒng)結(jié)構(gòu)習(xí)題答案_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、習(xí)題1. 給出以下 概 念的 解 釋 說 明 。指 令 流 水 線 ( Instruction pipelining )指令吞吐 量 (Instruction throughput)結(jié) 構(gòu) 冒 險(xiǎn) ( Structural hazard )數(shù)據(jù)冒險(xiǎn)(Data hazard )氣泡(Bubble)分支條件滿足 ( Branch taken)靜態(tài)分支預(yù)測 ( Static predict)延遲分支 ( Delayed branch)轉(zhuǎn)發(fā)(Forwarding )流 水 段 寄 存 器 ( Pipeline register )靜態(tài)多發(fā)射(Static multiple issue)超流水線 ( S

2、uperpipelining)超標(biāo)量流水線( Superscalar )指 令 預(yù) 取 ( Instruction prefetch )按 序 發(fā) 射 ( in-order issue )存 儲 站 ( Reservation station )指令提交單元 ( Instruction commit unit)按序完成(in-order completion )2. 簡 單 回 答 下 列 問 題 。流水線深度(Pipeline Depth)流水線冒險(xiǎn)(Hazard )控制冒險(xiǎn)(Control hazard)流水線阻塞( Pipeline stall)空操作(nop)分 支 預(yù) 測 ( Bra

3、nch predict )動態(tài)分支預(yù) 測( Dynamic predict )分 支 延 遲 槽 ( Delayed branch slot ) 旁 路 ( Bypassing )IPC ( Instructions Per Cycle )動態(tài)多發(fā)射( Dynamic multipleissue)超長指令字VLIW動 態(tài) 流 水 線 ( Dynamic pipelining)指令分發(fā)(Instruction dispatch)無 序 發(fā) 射 ( out-of-order issue )重 排 序 緩 沖 ( Reorder buffer )亂 序 執(zhí) 行 ( out-of-order exec

4、ution )無 序 完 成 ( out-of-order completion )?167 ?1) 流 水線方式下,一條指令的執(zhí)行時間縮短 了還 是 加 長 了 ? 程序 的執(zhí)行時間縮短了還 是加長了?為什么?2) 具有什么 特征的指令集易于實(shí)現(xiàn)指令流 水線 ?3) )流水線處理器中時鐘周期如何確定?單 條流水 線 處 理 器 的CPI 為多少?每個時鐘周 期一定有一條指令完成嗎?為什么?4) 流水線處理器的控制器實(shí)現(xiàn)方式更類似于單周期控制器還是多周期控制器?5) 為什么要在各流水段之間加寄存器?各流水段寄存器的寬度是否都一樣?為什么 ?6) 你能列出哪幾種流水線被阻塞的情況?你知道硬件和軟

5、件是如何處理它們的嗎?7) 超流水線和多發(fā)射流水線的主要區(qū)別是什么?8) 靜態(tài)多發(fā)射流水線和動態(tài)多發(fā)射流水線的主要區(qū)別是什么?9) 為 什 么 說 Pentium 4 是 “ CISC 殼 、 RISC 核 ” 的 體 系 結(jié) 構(gòu) ?3. 假 定 在一 個 五級 流 水線 ( 如 圖 7.5 所 示 ) 處 理 器 中 , 各 主 要 功 能 單 元的 操 作 時 間 為 : 存 儲單 元 :200ps; ALU和 加 法 器: 150ps; 寄 存 器 堆 讀 口 或 寫 口 : 50ps 。 請 問 :4. 1 )若 執(zhí) 行 階 段 EX 所 用 的 ALU 操 作 時 間 縮 短 20%

6、 ,則 能 否 加 快 流 水 線 執(zhí) 行 速 度 ? 如 果 能的話,能加快多少?如果不能的話,為什么?5. 2 )若ALU 操作時間增加20% ,對流水線的性能有何影響?6. 3 )若ALU 操作時間增加40% ,對流水線的性能有何影響?參考答案:a. ALU 操 作 時 間 縮 短 20% 不 能 加 快 流 水 線 指 令 速 度 。因 為 存 儲 單 元 的 時 間 為 200ps ,所 以 流 水 線 的 時 鐘 周 期 不 會 因 為 ALU 操 作 時 間 的 縮 短 而 變 短 。b. ALU 操 作 時 間 延 長 20% 時 , 變 為 180ps , 比 200ps 小

7、 , 對 流 水 線 性 能 沒 有 影 響 ;c. ALU 操 作 時 間 延 長 40% 時 ,變 為 210ps ,比 200ps 大 ,所 以 ,流 水 線 的 時 鐘 周 期 將 變 為 210 , 其 效 率 降 低 了 ( 210-200)/200=5%。4. 假 定 某計(jì) 算 機(jī) 工程 師 想 設(shè)計(jì) 一個新 CPU ,一 個 典 型 程 序 的 核 心 模 塊 有 一 百 萬 條 指 令 ,每 條指 令 執(zhí)行 時 間 為100ps。請 問:( 1) 在 非 流 水 線 處 理 器 上 執(zhí) 行 該 程 序 需 要 花 多 長 時 間 ?( 2 )若 新 CPU 是 一 個 20

8、級 流 水 線 處 理 器 ,執(zhí) 行 上 述 同 樣 的 程 序 ,理 想 情 況 下 ,它 比 非 流 水線處理器快多少?( 3 )實(shí) 際 流 水 線 并 不 是 理 想 的 ,流 水 段 間 數(shù) 據(jù) 傳 送 會 有 額 外 開 銷 。這 些 開 銷 是 否 會 影 響 指令 執(zhí) 行 時 間 ( Instruction latency ) 和 指 令 吞 吐 率 ( Instruction throughput ) ? 參考答案:(1)非流水線處理器上執(zhí)行該程序的時間為:100Ps x 10 6=100g( 2 )若在 一 個 20 級 流 水 線 的 處 理 器 上 執(zhí) 行 ,理 想 情

9、況 下 ,每 個 時 鐘 周 期 為 : 100/20=5ps ,所以,程序執(zhí)行時間約為5 x 10 6=5的.快100/5=20倍。( 3)流水 線 段 之 間數(shù) 據(jù) 的 傳 遞 產(chǎn) 生 的 額 外 開 銷 , 使 得 一 條 指 令 的 執(zhí)行時間被延 長 , 即 影響Instructionlatency; 同 時 也 拉 長 了 每 個 流 水 段 的 執(zhí) 行 時 間,即影響 InstructionthroughPut 。還有什么不理想的因素? 時 鐘 周 期 不 會 是 5us可能發(fā)生阻塞等5. 假 定 最復(fù) 雜 的一條 指令所 用的 組 合 邏 輯分 成6塊,依次為AF,其延遲分別為8

10、0ps、30ps 、60ps 、50ps 、70ps、10ps。 在 這些 組合邏輯塊之間插入必 要的流水段寄存器就 可實(shí)現(xiàn) 相應(yīng) 的 指令 流 水線, 寄 存器 延遲 為20ps。理想情況下,以下 各種方式所得到的時 鐘周期 、指令吞吐率和指令執(zhí)行時間各是多少?應(yīng)該在哪里插入流水線寄存器?(1) 插入一個流水段寄存器,得到一個兩級流水線(2) 插入兩個流水段寄存器,得到一個三級流水線(3) 插入三個流水段寄存器,得到一個四級流水線(4) 吞吐量最大的流水線參考答案:(1) 兩 級 流水 線的平衡點(diǎn)在C和D之間 , 其 前 面 一 個 流 水 段的 組 合 邏輯延 時為80+30+60=170

11、ps, 后面一個流水段的組合邏輯延 時 為 50+70+10=130ps。 這 樣 每個流 水段都 以 最 長 延 時 調(diào) 整 為 170+20=190ps, 故 時 鐘 周 期 為 190ps , 指 令 吞 吐 率 為1/190ps=5.26GOPS,每條指令的執(zhí)行時間為2x190=380ps。( 2 )兩 個 流 水 段 寄 存 器 分 別 插 在 B 和 C 、 D 和 E 之 間 ,這 樣 第 一 個 流 水 段 的 組 合 邏 輯 延 時 為 80+30=110ps, 中 間 第 二 段 的 時 延 為 60+50=110ps, 最 后 一 個 段 延 時 為 70+10=80ps

12、。這 樣 每 個 流 水 段 都 以最長延時調(diào)整為110+20=130ps, 故 時鐘周 期 為130ps,指令吞吐率為1/130ps=7.69GOPS,每條指令的執(zhí)行時 間 為 3x130=390ps。( 3 )三 個 流 水 段 寄 存 器 分 別 插 在 A 和 B 、 C 和 D 、 D 和 E 之 間 ,這 樣 第 一 個 流 水 段 的 組 合 邏 輯 延 時 為 80ps,第二段時延為30+60=90ps, 第 三 段時延 為50ps ,最后一段延時為70+10=80ps。 這 樣 每 個 流 水 段都 以 最 長 延 時 調(diào) 整 為 90+20=110ps,故 時鐘周 期為 1

13、10ps ,指 令 吞 吐 率 為 1/110ps=9.09GOPS, 每 條 指 令 的 執(zhí) 行 時 間 為 4x110=440ps。( 4) 因?yàn)?所 有 組 合 邏 輯 塊中 最 長 延 時 為 80ps, 所 以 , 達(dá) 到 最大可 能吞吐 率的 劃 分 應(yīng) 該是 以 一 個 流 水 段 延 時 為 80ps+20ps 來 進(jìn) 行 ,因 此 ,至 少 按 五 段 來 劃 分 ,分 別 把 流 水 段 寄 存 器 插 在 A 和 B、 B 和 C、 C 和 D、 D 和 E 之 間 ,這 樣 第 一 段 的 組 合 邏 輯 延 時 為 80ps ,第 二 段 為 30ps , 第 三 段

14、 為 60ps , 第 四 段 為 50ps , 最 后 一 段 為 70+10=80ps。 這 樣 每 個 流 水 段 都 以 最長延時調(diào)整為80+20=100ps ,故時鐘 周 期 為 100ps ,指 令 吞 吐 率 為 1/100ps=10GOPS ,每 條指令的執(zhí)行時間 為 5x100=500ps。吞吐率的提高,單條指令執(zhí)行時間的延長6. 以 下 指 令 序 列 中 ,哪 些 指 令 對 發(fā) 生 數(shù) 據(jù) 相 關(guān) ? 假 定 采 用“ 取 指 、譯 碼/取 數(shù) 、執(zhí) 行 、訪 存 、寫 回 ”五 段 流 水 線 方 式 ,那 么 不 用“ 轉(zhuǎn) 發(fā) ”技 術(shù) 的 話 ,需 要 在 發(fā) 生

15、 數(shù) 據(jù) 相 關(guān) 的 指 令 前 加 入 幾 條 nop 指 令 才 能 使 這 段 程 序 避 免 數(shù) 據(jù) 冒 險(xiǎn) ? 如 果 采 用 “ 轉(zhuǎn) 發(fā) ” 是 否 可 以 完 全 解 決 數(shù) 據(jù) 冒 險(xiǎn) ? 不 行 的 話 , 需 要 在 發(fā) 生 數(shù) 據(jù) 相 關(guān) 的 指 令 前 加 入 幾 條 nop 指 令 才 能 使 這 段 程 序 不 發(fā) 生數(shù)據(jù)冒險(xiǎn)?add$s3, $s1, $s0sub$t2, $s0, $s3lw$t1, 0($t2)add $t1, $t1, $t2參考答案:發(fā)生數(shù)據(jù)相關(guān)的有:第1和2 間關(guān)于$s3、 第2 和 3間關(guān)于$t2 、 第2 和 4間關(guān)于$t2、第 3

16、和4間關(guān)于$t1 。不 進(jìn) 行“ 轉(zhuǎn) 發(fā) ”處 理 的 話 ,需 要 分 別 在 第 2 、 3 、 4 條 指 令 前 加 三 條 nop 指 令 才 能 避 免 數(shù)據(jù)冒險(xiǎn)。而 通 過 “轉(zhuǎn)發(fā)”可 以 避 免1和2、2 和 3、2 和4 間 的 數(shù)據(jù) 相 關(guān);但第3和4 間是load-use數(shù)據(jù)相關(guān),所以無法用“轉(zhuǎn) 發(fā)”消 除冒險(xiǎn) , 因此 ,需 在 第4條指令前加入一條 nop指令。寄存器寫口和寄存器讀口分別安排在一個時鐘周期的前、后半個周期內(nèi)獨(dú)立工作呢? 2、 3、 4 條 之 前 分 別 插 入 2 條 nop 就 可 以7. 假 定 以 下 MIPS 指 令 序 列 在 圖 7.18

17、 所 示 的 流 水 線 數(shù) 據(jù) 通 路 中 執(zhí) 行 : addu$s3, $s1, $s0subu$t2, $s0, $s3lw$t1, 0($t2)add$t3, $t1, $t2add$t1, $s4, $s5請 問:(1) 上 述 指 令 序 列 中, 哪 些 指 令 的哪 個 寄 存器 需 要 轉(zhuǎn) 發(fā) , 轉(zhuǎn) 發(fā) 到 何 處 ?( 2) 上述 指 令 序 列 中 , 是 否存 在 load-use數(shù) 據(jù) 冒 險(xiǎn) ?( 3) 第 5 周 期 結(jié) 束 時 , 各 指 令 執(zhí) 行 狀 態(tài) 是 什 么 ? 哪 些 寄 存 器 的 數(shù) 據(jù) 正 被 讀 出 ? 哪 些 寄 存 器 將被寫入?參考

18、答案:( 1 )發(fā) 生 數(shù) 據(jù) 相 關(guān) 的 有 :第 1 和 2 間 關(guān) 于 $s3 、第 2 和 3 間 關(guān) 于 $t2 、第 2 和 4 間 關(guān) 于 $t2 、 第3 和 4 間關(guān) 于$t1。通過“轉(zhuǎn)發(fā)” 可 以 避 免 1 和2、 2 和3、2 和4間 的 數(shù) 據(jù) 相 關(guān) ;( 2 ) 第3 和 4 間是load-use數(shù)據(jù)相關(guān), 所 以 無 法 用 “轉(zhuǎn)發(fā) ” 消除冒險(xiǎn) 。( 4) 第 五 個 時 鐘 內(nèi) 各 條 指 令 的 執(zhí) 行 情 況 如 下 :指 令1 在“WB ”階 段,控制信息等在MEM/WB.Reg中 ,$s3 正 在被寫 ,結(jié)束 時 寫 完指 令2 在“MEM”階段,控

19、制信息等在EX/MEM.Reg 中。sub 指令在 該 階段 進(jìn) 行 的 是 空 操作 ;在 轉(zhuǎn) 發(fā) 檢 測 單 元 中 ,因 為 流 水 段 寄 存 器 Ex/Mem 中 的 目 的 寄 存 器 RegRd 為 $t2 ,流 水 段 寄 存 器 ID/Ex 中 的 源 寄 存 器 Rs 也 為 $t2 ,同 時 ,流 水 段 寄 存 器 Ex/Mem 中 的 RegWr 控 制 信 號 為 1 ,所 以 檢 測 到 轉(zhuǎn) 發(fā) 條 件 滿 足 ,因 而 ,此 時 , sub 指 令 在 上 一 個 時 鐘 周 期 中 的 執(zhí) 行 結(jié) 果( 在 流 水段寄存器 Ex/Mem 中 的 ALU 輸出結(jié)

20、果 )正被 回送到ALU 的 輸 入 端 ; 結(jié)束 時轉(zhuǎn)發(fā)完成指令3 在 “EXE ”階 段 , ALU正在執(zhí) 行“add”操作, 進(jìn)行 地址 運(yùn) 算 ,ALU輸出結(jié)果將被寫入流水段 寄 存 器 Ex/Mem 中 ; 結(jié)束 時 運(yùn) 算 完 成 ??刂菩?息等 在ID/EX.Reg 中,正在檢測是否loaduse 冒 險(xiǎn)指 令 4 在 “ ID/REG ”階 段 ,指 令 在 IF/ID.Reg 中 , $t1 和 $t2 正 在 被 讀 出 。 在 load-use 冒 險(xiǎn) 檢測單元中,因?yàn)榱魉渭拇?器IF/ID中源操作數(shù)寄存器Rs為$t1,流水 段寄存器 ID/Ex中目的操作數(shù)寄存器Rt也

21、為$t1 ,同 時,因?yàn)樯蠗l指令是lw,故 流水段 寄 存器ID/Ex 中的MemRead 控 制 信 號 為 1 , 所 以 在 該 階 段 檢 測 到 load-use 冒 險(xiǎn) 條 件 滿 足 , 此 時 , 需 要 進(jìn) 行 load-use 冒險(xiǎn)處理,在流水線中插入一 個“氣 泡”,將指令的執(zhí)行阻塞 一個時鐘周期 。包括以 下 三 個步驟: 將流水段寄存器ID/Ex中的控制信號全部清0,以保證第4條指令被阻塞一個時鐘周 期執(zhí)行; 將 流 水段寄存器IF/ID中的 指令維持不變,以保證 第4 條指 令重新譯碼后 執(zhí) 行;將PC 的 值 維 持不變,以保證 根據(jù) PC 的值重新取出第5條指

22、令。結(jié) 束時完成上述 工 作。指 令5在“IF ”階段,指令正被 讀出。 結(jié)束時已送到流水段寄存 器IF/ID的輸入端。 因 為之前 發(fā) 生 了 load-use 數(shù) 據(jù) 冒 險(xiǎn) , 所 以 該 指 令 將 在 隨 后 的 第 6 個 時 鐘 周 期 內(nèi) 重 新 被 讀 出 。8. 假te有一個程序的指令序列為 lw, add, lw, add, 。add指令僅依賴它刖面的lw指令, 而lw指令也僅依賴它前面的add指令,寄存器寫口和寄存器讀口分別在一個時鐘周期的前、 后半個周期內(nèi)獨(dú)立工作。請問:(1)在帶轉(zhuǎn)發(fā)的五段流水線中執(zhí)行該程序,其CPI為多少?(2)在不帶轉(zhuǎn)發(fā)的五段流水線中執(zhí)行該程序,

23、其CPI為多少?參考答案:(1 )因?yàn)閘w指令和add指令之間存在一個load- use 數(shù)據(jù)冒險(xiǎn),所 以每個lw 指令和add指令之間要有一次流水線阻塞。而add指令和lw指令之間的數(shù)據(jù)冒險(xiǎn)可通過 數(shù)據(jù)轉(zhuǎn)發(fā)解決。即:CPI為1.5使用,轉(zhuǎn)發(fā)”的情況:Time (clock cycfes)add rl,r2,r3Iw r4,0(r1) stall add r6,r4,r7Iw r8f0(r6)使用,'轉(zhuǎn)發(fā)”時,只有附指令后需要一次阻塞!不使用“轉(zhuǎn)發(fā)”的情況:Tim& (clock cycles)(2)如果沒有轉(zhuǎn)發(fā),而寄存器寫口和寄存器讀口分別在一個時鐘周期的前、后半個周期 內(nèi)工

24、作,則在每條lw指令和add指令之間將會有兩個阻塞,這樣每條指令相當(dāng)于都要有 三個時鐘才能完成。即:CPI為3add r6,r4,r7IFID/RFMEMWB iadd rl,r2fr3stallstallIw r4,0(r1) stall stall通過寄存器與口,讀口分別安排在前華/后半周期r在不使用,,轉(zhuǎn) 發(fā)”時使得每條指令之間只要阻塞兩次就可解決!9. 假 定 在 一 個 帶 轉(zhuǎn) 發(fā) 功 能 的 五 段 流 水 線 中 執(zhí) 行 以 下 程 序 段 , 則 可 以 怎 樣 調(diào) 整 以 下 指 令 序 列 使 其性能達(dá)到最好?參考答案:1lw$2, 100($6)2add$2, $2, $

25、33 lw $3, 200($7)4add$6, $4, $75sub$3, $4, $66lw$2, 300($8)7beq$2, $8, Loop因?yàn)椴捎谩稗D(zhuǎn)發(fā)”技術(shù),所以 ,只 要對load-use數(shù)據(jù)冒險(xiǎn)進(jìn)行 指 令序列調(diào)整。從上述指令序列來看,第1和第2 條指令、 第6 和第7 條 指 令之間存在load-use數(shù)據(jù)冒險(xiǎn),所以,可將與第2和第3條指令無關(guān)的第4條指 令插入 第 2條指令之前;將 無 關(guān)的第5條指令插入第7條 指 令 之 前 。 調(diào) 整 順 序 后 的 指 令 序 列 如 下 ( 粗 體 部 分 為 變 換 了 位 置 的 指 令 )。lw $2, 100($6)add

26、$6, $4, $7add$2, $2, $3lw$3, 200($7)lw$2, 300($8)sub$3, $4, $6beq$2, $8, Loop10. 在 一 個 采 用“ 取 指 、譯 碼 /取 數(shù) 、執(zhí) 行 、訪 存 、寫 回 ”的 五 段 流 水 線 中 ,若 檢 測 結(jié) 果 是 否 為 “零 ”的 操 作 在 執(zhí) 行 階 段 進(jìn) 行 , 則 分 支 延 遲 損 失 時 間 片 ( 即 分 支 延 遲 槽 ) 為 多 少 ? 以 下 一 段 MIPS 指 令 序 列 中 , 在 考 慮 數(shù) 據(jù) 轉(zhuǎn) 發(fā) 的 情 況 下 , 哪 些 指 令 執(zhí) 行 時 會 發(fā) 生 流 水 線 阻

27、塞 ? 各 需要阻塞幾個時鐘周期?loop:add$t1, $s3, $s3add$t1, $t1, $t1add$t1, $t1, $s6lw$t0, 0($t1)bne$t0, $s5, exitadd$s3, $s3, $s4loopexit:參考答案:若 檢 測 操 作 在 執(zhí) 行 階 段 進(jìn) 行 , 則 分 支 延 遲 損 失 時 間 片 ( 即 分 支 延 遲 槽 ) 為 2。分 析 :發(fā) 生 數(shù) 據(jù) 相 關(guān) 的 是 :第 1 和 第 2 條 指 令 之 間 關(guān) 于 $t1 ,第 2 和 第 3 條 指 令 之 間 關(guān) 于 $t1 , 第 3 和 第 4 條 指 令 之 間 關(guān) 于

28、 $t1 , 第 4 和 第 5 條 指 令 之 間 關(guān) 于 $t0 , 以 及 第 6 和 第 1 條 指 令 之關(guān) 于 $s3。 此 外 , 第 5 和 第 7 條 指 令 的 執(zhí) 行 都 會 發(fā) 生 控 制 相 關(guān) 。對于數(shù)據(jù)冒險(xiǎn),如果不采用“轉(zhuǎn)發(fā)”,而是簡單地通過加入nop指 令 來避免冒險(xiǎn)的話,那么應(yīng)該在第2、3、 4、5 條指令 前各 加 兩 條 nop 指 令 , 以 消 除 數(shù) 據(jù) 相 關(guān) ; 對 于 第 6條 和 第 1條指令之間的 數(shù)據(jù) 相 關(guān), 則可通 過在 第 7 條“ j loop ”指 令 后 面 加 一 條 或 兩 條 nop指 令消 除 (這樣同時還能解決第7條

29、“jloop” 指令的控制 冒險(xiǎn));此處,第2、3、4 條指令所需的 操作數(shù)可通過“轉(zhuǎn)發(fā)”得到 ,無 需 加nop指令。第5條bne指令所需的操作數(shù)$t0是load-use冒險(xiǎn),不能用“轉(zhuǎn)發(fā)”解決問 題,需要在第 5 條指令前加一條 nop 指令,或通過硬件將第5 條指令的執(zhí) 行 阻 塞 一 個 時 鐘 周 期 。j指令如果在譯碼階段就根據(jù)譯碼結(jié)果計(jì)算跳轉(zhuǎn)目標(biāo)地址,那么j指令后面指令會被阻塞1個時鐘 周 期,若在執(zhí)行階段計(jì)算, 則要阻塞2個 時 鐘 周 期 。其它11. 假設(shè)數(shù)據(jù) 通路中各 主 要功 能 單元的 操 作 時 間為:存儲單元: 200ps ; ALU和 加 法 器 : 100ps

30、 ;寄存器堆 讀口或?qū)?口 :50ps 。程序中 指 令 的組成比例為:取 數(shù) 25% 、 存 數(shù)10% 、 ALU52% 、分支11%、跳轉(zhuǎn)2%。假 設(shè) 時鐘周期 取 存 儲器存取時間的一 半 , MUX 、控 制 單 元 、 PC、擴(kuò)展器和傳輸線路等的延遲都忽略不計(jì),則下面的實(shí)現(xiàn)方式中,哪個更快?快多少?(1) 單周期方式:每條指令在一個固定 長 度 的 時 鐘周期 內(nèi) 完 成 ;(2) 多周期方式:每類指令時鐘數(shù):取 數(shù) -7, 存 數(shù)-6, ALU-5, 分 支 -4, 跳 轉(zhuǎn) -4;(3) 流水線 方 式:取指1 、取指2、取數(shù)/譯碼、執(zhí)行、存取1 、存取2、寫回7段流水線;沒有 結(jié)

31、構(gòu)冒險(xiǎn);數(shù)據(jù)冒險(xiǎn) 采用“轉(zhuǎn)發(fā)”技術(shù)處理;load指令與后續(xù)各指令之間存在依賴關(guān)系的概率分別1/2、1/4、1/8、;分支延遲損失時間片為2,預(yù)測準(zhǔn)確 率為75% ;不考慮異常、中斷 和訪問失效引起的流水線冒 險(xiǎn)。參考答案:單 周 期 : 存 儲 器 操 作 變 為 兩 個 時 鐘 周 期 后 , 其 數(shù) 據(jù) 通 路 的 時 鐘 周 期 不 變 , 為 600ps多 周 期 : CPI=0.25x7+0.10x6+0.52x5+0.11x4+0.02x4 = 5.47存儲器操作變?yōu)閮蓚€時鐘周 期 后 , 多周 期 數(shù)據(jù) 通 路 的 時 鐘 周 期 為 100ps ,故一條指令的執(zhí)行時間為100x5.47=547ps流 水 線 : 存儲 器操 作 變?yōu)閮?個時鐘 周期后 ,其流 水 線包 含 了 7個 階 段.對 于 ALU指 令, 隨 后的數(shù) 據(jù)相關(guān) 指令都 可通過 轉(zhuǎn) 發(fā)解 決 ,故 CPI=1對于Store指令,不會發(fā)生數(shù)據(jù)冒險(xiǎn),故CPI=1對于Jump指令,總要等到譯碼結(jié)束才能確 定 轉(zhuǎn)移 地址,故CPI=3(取指1,2, 譯 碼 )對于beq,若預(yù)測正確,則為1個周 期, 若預(yù)測 錯誤 ,則為 3個周 期 , 故CPI=1/4x3+3/4x1=1.5對 于 loa

溫馨提示

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

最新文檔

評論

0/150

提交評論