freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第3章流水線技術(shù)31流水線的基本概念32dlx的基本流水線(參考版)

2024-10-15 13:40本頁面
  

【正文】 4種方法 ?以非精確方式處理,用軟件來修正 ? 為軟件修正保存足夠的狀態(tài) ? 讓軟件仿真尚未執(zhí)行完的指令的執(zhí)行 ? 例如 Instruction 1 – A 執(zhí)行時間較長,引起中斷的指令 Instruction 2, instruction 3, ….instruction n 1 未執(zhí)行完的指令 Instruction n 已執(zhí)行完的指令 由于第 n條指令已執(zhí)行完,中斷返回地址為第 n+1條指令,如果我們保存所有的流水線的 PC值,那么軟件可以仿真 Instruction1 到Instruction n1 的執(zhí)行 ?暫停發(fā)射,直到先前的指令都無異常的完成,再發(fā)射下面的指令。 ?方法 2:緩存操作結(jié)果,直到早期發(fā)射的指令執(zhí)行完。 Repeat Interval ?延時 (Latency) ? 定義為完成某一操作所需的 cycle數(shù) ? 定義為使用當(dāng)前指令所產(chǎn)生結(jié)果的指令與當(dāng)前指令間的最小間隔周期數(shù) ?循環(huán)間隔( Repeat/Initiation interval) ? 發(fā)射相同類型的指令所需的間隔周期數(shù) ?對于 EX部件流水化的新的 DLX Function Unit Latency Repeat Interval Integer ALU 0 1 Data Memory (Integer and FP loads(1 less for store latency)) 1 1 FP Add 3 1 FP multiply 6 1 FP Divide (also integer divide and FP sqrt) 24 25 計算機體系結(jié)構(gòu) 將部分執(zhí)行部件流水化后的 DLX流水線 計算機體系結(jié)構(gòu) 新的相關(guān)和定向問題 ?結(jié)構(gòu)沖突增多 ? 非流水的 Divide部件,使得 EX段增長 24個 cycles ? 在一個周期內(nèi)有多個寄存器寫操作 3 FPR write ?可能指令亂序完成(亂序到達 WB段)有可能存在 WAW ?由于在 ID段讀,還不會有 WAR 相關(guān) ?亂序完成導(dǎo)致異常處理復(fù)雜 ?由于指令的延遲加大導(dǎo)致 RAW 相關(guān)的 stall數(shù)增多 ?需要付出更多的代價來增加定向路徑 計算機體系結(jié)構(gòu) 新的結(jié)構(gòu)相關(guān) ?縱向檢查指令所使用的資源 ? 第 10個 cycle, 三條指令同時進入 MEM, 但由于 MULTD和 ADDD在 MEM段沒有實際動作,這種情況沒有關(guān)系 ? 第 11個 cycle, 三條指令同時進入 WB段,存在結(jié)構(gòu)相關(guān) 計算機體系結(jié)構(gòu) 解決方法 ?Option 1 ? 在 ID段跟蹤寫端口的使用情況,以便能暫停該指令的發(fā)射 ? 一旦發(fā)現(xiàn)沖突,暫停當(dāng)前指令的發(fā)射 ?Option 2 ? 在進入 MEM或 WB段時,暫停沖突的指令,讓有較長延時的指令先做,因為較長延時的指令,會更容易引起其他 RAW相關(guān),從而導(dǎo)致更多的 stalls 計算機體系結(jié)構(gòu) 關(guān)于數(shù)據(jù)相關(guān) ?較長延時的流水線,導(dǎo)致數(shù)據(jù)相關(guān)比例增多, stalls數(shù)增多 計算機體系結(jié)構(gòu) 新的沖突源 ?GPR與 FPR間的數(shù)據(jù)傳送造成的數(shù)據(jù)相關(guān) ? MOVI2FP and MOVFP2I instructions ?如果在 ID段進行相關(guān)檢測,指令發(fā)射前須做如下檢測: ? 結(jié)構(gòu)相關(guān) 循環(huán)間隔檢測 確定寄存器寫端口是否可用 ? RAW相關(guān) 列表所有待寫的目的寄存器 不發(fā)射以待寫寄存器做為源寄存器的指令,直到該寄存器值可用 ? WAW相關(guān) 仍然使用上述待寫寄存器列表 不發(fā)射那些目的寄存器在待寫寄存器列表中的指令,直到對應(yīng)的待寫寄存器值可用 (完成 WB)。 ? 當(dāng)今很多高性能計算機, Alpha 21164, MIPSR10000等支持精確中斷,但精確模式要滿 10倍,一般用在代碼調(diào)試是,很多系統(tǒng)要求精確中斷模式,如 IEEE FP標(biāo)準(zhǔn)處理程序,虛擬存儲器等。 最大吞吐率取決于最慢段 ? 提高流水線吞吐率的方法 細(xì)分 段重復(fù)設(shè)置 ? 實際吞吐率 按吞吐率定義計算 P92 計算機體系結(jié)構(gòu) 性能分析 (cont.) Page 92 ?加速比 ? 指 m段流水線的速度與等功能的非流水線的速度之比。 assuming a, b, c, d ,e, and f in memory. Slow code: LW Rb,b LW Rc,c ADD Ra,Rb,Rc SW a,Ra LW Re,e LW Rf,f SUB Rd,Re,Rf SW d,Rd 采用軟件方法避免數(shù)據(jù)相關(guān) Fast code: LW Rb,b LW Rc,c LW Re,e ADD Ra,Rb,Rc LW Rf,f SW a,Ra SUB Rd,Re,Rf SW d,Rd 計算機體系結(jié)構(gòu) 流水線相關(guān)檢測部件可以檢測到的相關(guān)情況 計算機體系結(jié)構(gòu) 采用定向技術(shù)硬件所需做的修改 MEM/WR ID/EX EX/MEM Data Memory ALU mux mux Registers NextPC Immediate mux 計算機體系結(jié)構(gòu) 定向源為 RR ALU操作的定向比較判斷 計算機體系結(jié)構(gòu) 定向源為 ALU- imm操作的定向比較判斷 計算機體系結(jié)構(gòu) 定向源為 Load操作的比較判定 計算機體系結(jié)構(gòu) 控制相關(guān) ?問題更復(fù)雜,分支需要解決兩個問題 ? 分支目標(biāo)地址(轉(zhuǎn)移成功意謂著 PC值不是 PC+4) ? CC是否有效 CC, 這兩點在 DLX中都在流水線的靠后段中確定 ?是否為分支指令是在 ID段后,此時取進來的指令可能是錯誤的指令 ?對于簡單的 DLX流水線 3 cycle branch penalty ? 有效地址在 EX段才能確定 ? 條件是否為真在 MEM段才能知道 ? 因此有 3個 stall ?見 Page111 簡單處理分支指令的方法及其流水線的時空圖 計算機體系結(jié)構(gòu) 回顧 DLX數(shù)據(jù)通路 計算機體系結(jié)構(gòu) 減少分支延時的方法 ?修改數(shù)據(jù)通路 ? 使得目標(biāo)地址和分支條件盡早確定 ? 使得其中之一盡早確定是沒有用的,這點都可以在 ID段結(jié)束前確定 ? 必要時使用互鎖機制來插入 Stall? ? 使用另一個加法器計算 可以在 ID段計算 BTA 即在 ID段形成下一條指令地址,兩種可能( BTA, PC+4) 選擇哪一個取決于 ID段確定的 CC ?采用軟件的方法 ?設(shè)計合適的 ISA ? . BNEZ, BEQZ on DLX 使得 CC可以在 ID段確定 ?調(diào)度一些指令放入分支的延遲槽中 ?統(tǒng)計分支成功和失敗的情況,提高預(yù)測精度 計算機體系結(jié)構(gòu) 新的 DLX數(shù)據(jù)通路 ?存在問題 :zero的輸出應(yīng)該直接送到 IF段的 MUX的控制端 計算機體系結(jié)構(gòu) 四種可能的解決沖突的方法 1: Stall 直到分支方向確定 2: 預(yù)測分支失敗 ? 直接執(zhí)行后繼指令 ? 如果分支實際情況為分支成功,則撤銷流水線中的指令對流水線狀態(tài)的更新 ? DLX分支指令平均 47%為分支失敗 ? 由于 PC+4已經(jīng)計算出來,因此可以用它來取下一條指令 3: 預(yù)測分支成功 ? 平均 53% DLX 分支為分支成功 ? 但分支目標(biāo)地址在 ID段才能計算出目標(biāo)地址 DLX 還是有 1個 cycle branch penalty 計算機體系結(jié)構(gòu) 四種可能的解決沖突的方法 4: 延遲轉(zhuǎn)移 ? 定義分支發(fā)生在一系列指令之后 branch instruction sequential successor1 sequential successor2 ........ sequential successorn branch target if taken ? 5級流水只需要一個延遲槽就可以確定目標(biāo)地址和確定條件 ? DLX 使用這種方式 Branch delay of length n 計算機體系結(jié)構(gòu) 延遲轉(zhuǎn)移 ?從何處選擇指令來填充延遲槽? ? 分支指令之前的指令 Before branch instruction ? 從分支目標(biāo)地址處取 : 僅在分支成功時有用 ? 從分支失敗處調(diào)度:僅在分支失敗時有用 ?編譯器可以有效的調(diào)度一個延遲槽 ? 如果提供取消分支時, 編譯器可以調(diào)度更多的指令填入延遲槽 計算機體系結(jié)構(gòu) 評估減少分支策略的效果 Scheduling Branch CPI speedup v. speedup v. scheme penalty unpipelined stall Stall pipeline 3 Predict taken 1 Predict not taken 1 Delayed branch = 1+1*14%*65% Conditional amp。因為 ? 所有指令都是 5段,并且寫操作都在第
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1