国产精品久久婷婷-国产精品久久社区-国产精品久久色-国产精品久久日韩-国产精品久久日本-国产精品久久日-国产精品久久人妻在线-国产精品久久人妻-国产精品久久人-国产精品久久情趣酒店

當前位置: 首頁 > 產品大全 > 吉林大學計算機系統結構 第三章 指令級并行 曲冠南老師版 筆記

吉林大學計算機系統結構 第三章 指令級并行 曲冠南老師版 筆記

吉林大學計算機系統結構 第三章 指令級并行 曲冠南老師版 筆記

第三章 指令級并行 (Instruction-Level Parallelism, ILP)

一、 基本概念
1. 指令級并行 (ILP):指在單個處理器內,通過硬件或軟件技術,使得多條指令在執行階段可以重疊進行,從而提高程序執行速度。其核心思想是挖掘和利用程序中指令之間潛在的并行性。
2. 關鍵度量
* 并行度:平均每個時鐘周期可以執行的指令數。

  • 主要目標:使 CPI (Clock Cycles Per Instruction) 盡可能接近1甚至小于1。
  1. 限制ILP的因素
  • 數據相關 (Data Hazard):真數據相關(寫后讀,RAW)限制了指令的執行順序。
  • 名字相關 (Name Hazard):反相關(寫后寫,WAW)和輸出相關(讀后寫,WAR),可通過寄存器重命名解決。
  • 控制相關 (Control Hazard):由分支指令引起,影響指令的取指順序。
  • 結構沖突 (Structural Hazard):硬件資源沖突。

二、 基于硬件的動態調度技術

  1. 記分板算法 (Scoreboarding)
  • 目標:在保持數據流和異常行為的前提下,允許指令亂序執行(Out-of-Order Execution)。
  • 核心思想:中央控制器(記分板)跟蹤所有指令的狀態、數據相關性和資源使用情況。指令在譯碼后進入記分板,當操作數就緒且功能單元可用時,記分板才發射該指令執行。
  • 執行階段:分為4段:
  1. 發射 (Issue):檢查結構沖突與WAW相關。
  1. 讀操作數 (Read Operands):等待數據相關消除(即源操作數就緒)。
  1. 執行 (Execution):在功能單元中計算。
  1. 寫回 (Write Back):結果寫回寄存器。
  • 缺點:檢測和解決所有相關,硬件復雜;無法處理WAR和WAW相關(通過停頓解決,影響效率)。
  1. Tomasulo算法
  • 核心改進
  • 分布式控制:通過保留站(Reservation Station)進行指令調度,而非中央記分板。
  • 寄存器重命名:使用保留站和公共數據總線(CDB)實現,徹底消除WAR和WAW相關。
  • 前瞻執行:為處理控制相關(分支)奠定基礎。
  • 主要部件與流程
  • 保留站:緩存已發射但未執行的指令及其操作數(或指向操作數的指針)。
  • 公共數據總線:廣播結果,實現數據前遞(Forwarding)。
  • 流程:發射 -> 執行 -> 寫回。在“發射”階段,若操作數未就緒,則從寄存器或CDB獲取“標簽”,實現寄存器重命名。
  • 優勢:能高效處理數據相關,支持亂序執行,為后續的分支預測推測執行提供了硬件基礎。

三、 基于硬件的分支預測與推測執行

  1. 分支預測 (Branch Prediction)
  • 動機:減少控制相關帶來的流水線停頓。
  • 靜態分支預測:編譯時確定,如“總是預測不跳轉”、“向后跳轉預測跳轉”等。簡單但準確率有限。
  • 動態分支預測:運行時根據歷史信息進行預測。
  • 分支歷史表 (BHT):使用分支指令地址的低位索引一個表,表中記錄上次執行的結果(跳轉/不跳轉)。
  • 兩位飽和計數器:提高預測準確性,需兩次預測錯誤才會改變預測方向,具有良好的穩定性。
  • 分支目標緩沖器 (BTB):緩存預測跳轉的分支指令的目標地址,可在取指階段直接提供目標指令地址。
  • 相關分支預測器 (如兩位局部/全局歷史預測器):利用分支之間的相關性(模式)進行更精確的預測。
  1. 推測執行 (Speculative Execution)
  • 概念:基于分支預測的結果,在分支指令結果確定之前,提前執行預測路徑上的指令。
  • 硬件支持(結合Tomasulo算法)
  • 重排序緩沖器 (ROB):核心組件。按程序順序緩存所有推測執行的指令及其結果。
  • 流程:指令按序發射到ROB和保留站,亂序執行,但結果先寫入ROB,并不立即更新寄存器。只有當指令在ROB中變為最舊的、且非推測狀態時,才按序提交結果到寄存器或內存。
  • 異常處理:在推測執行期間發生的異常被記錄在ROB中,只有在該指令提交時才真正處理,保證了異常行為的精確性。
  • 錯誤預測恢復:當分支預測錯誤時,清空該分支之后的所有推測執行指令(清空ROB和保留站相關項),并從正確路徑重新取指。

四、 基于軟件的靜態調度技術(由編譯器完成)

  1. 循環展開 (Loop Unrolling)
  • 將循環體復制多次,減少循環控制指令(如分支、自增)的開銷,為編譯器調度創造更多指令,以填充延遲槽。
  • 需注意寄存器壓力增加和代碼膨脹問題。
  1. 指令調度 (Instruction Scheduling)
  • 編譯器通過調整指令順序,盡可能分離存在數據相關的指令,以填充因數據相關或功能單元延遲導致的流水線氣泡。
  • 常用方法:靜態調度軟流水線 (Software Pipelining) 等。
  1. 靜態多發射處理器與VLIW
  • 靜態多發射:處理器每個時鐘周期發射固定數量的指令包,依賴編譯器在編譯時挖掘ILP,并將指令打包,硬件相對簡單。
  • 超長指令字 (VLIW):靜態多發射的典型代表。一條“超長指令”包含多個獨立操作字段,編譯器負責調度和打包,硬件無需復雜的動態調度邏輯。
  • 挑戰:對編譯器要求極高;二進制代碼兼容性差;難以處理緩存缺失等動態事件。

五、 多發射處理器
1. 超標量處理器 (Superscalar):每個時鐘周期動態發射可變數量的指令(如1-8條),依賴硬件(如Tomasulo)進行動態調度、相關檢測和亂序執行。這是現代通用CPU的主流技術。
2. 超流水線處理器 (Superpipelining):將流水線劃分成更多、更細的階段,通過提高主頻來提升性能,屬于時間并行。常與超標量技術結合使用。

本章小結
指令級并行是提升單處理器性能的核心技術。主要途徑包括:

  • 硬件動態方法:通過記分板、Tomasulo算法實現亂序執行;結合分支預測和推測執行(ROB)克服控制相關。
  • 軟件靜態方法:通過編譯器進行循環展開、指令調度,服務于靜態多發射/VLIW架構。
  • 現代高性能處理器(如Intel/AMD的CPU)普遍采用動態調度的超標量結構,并結合強大的分支預測和推測執行技術,以挖掘程序中的指令級并行。

更新時間:2026-06-19 01:50:03

如若轉載,請注明出處:http://www.kmjiuteng.cn/product/9.html

主站蜘蛛池模板: 国产盗摄一 | 日日撸影院在线 | 青青草综合网 | 免费看片的软件 | 亚洲人妻精品中文 | 欧美色色潮喷 | 最新欧美精品 | 日韩午夜片 | 成人免费视频网站 | 久草手机视频 | 欧美在线叉叉 | 97国产影院 | 欧美操逼视频免看 | 成人无码AAA | 久草资源免费在线 | 日本中文字幕黄 | 91精品国产麻豆 | 狠狠亚洲org | 日韩高清在线看 | 免费伦理电影网站 | 很黄免费网站 | 日韩在线观看导航 | 精品国产理论电影 | 欧美色色女 | 绯色无码视频 | 在线韩国伦理电影 | 欧美精品人与兽 | 中文字幕高清乱码 | 日韩高清不卡在线 | 国内精品在线看 | 高清国产 | 国产欧美日韩三区 | 污网站在线观看 | 美女视频一区二区 | 亚洲美女福利在线 | AV黄色天堂网站 | 泰国最美人妖宝儿 | 制服丝袜怡红院 | 男女干b视频 | 欧洲大片A级看 | 91视频官网下载 |