四川大學系統結構期末總結_第1頁
四川大學系統結構期末總結_第2頁
四川大學系統結構期末總結_第3頁
四川大學系統結構期末總結_第4頁
四川大學系統結構期末總結_第5頁
已閱讀5頁,還剩9頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、四川大學系統結構期末總結第一章RISC:精簡指令集計算機,簡化了指令系統,使得 更多地實現流水和caches系統結構的重大轉折:從單純依靠指令級并行轉向開發線程 級并行和數據級并行。翻譯:先把N+1級程序全部轉換成 N級程序后,再去執行 新產生的N級程序,在執行過程中 N+1級程序不再被訪問。(編譯)解釋:每當一條N+1級指令被譯碼后,就直接去執 行一串等效的N級指令,然后再去取下一條 N+1級的指令,依 此重復進行。解釋執行比編譯后再執行所花的時間多,但占用的存儲空間 較少。Amdahl提出的系統結構實際上是指傳統機器語言級程序員 所看到的計算機屬性。計算機組成:計算機系統結構的邏輯實現。計

2、算機實現:計算機組成的物理實現計算機系統結構的分類:Flynn分類法:按指令流和數據流的多倍性進行分類。SISD (順序處理機、標量流水線處理機)SIMD(陣列處理機、向量流水線處理機)MISDMIMD (多處理機)指令流 (Instructionstream ):機器執行的指令序列;數據流 (Datastream):由指令處理的數據序列;多倍性( Multiplicity ): 在系統最窄的部件上,處于同一時間單位內,最多可并行執行的指令條數或處理的數據個數馮式分類法:用系統的最大并行度對計算機進行分類。最大并行度:計算機系統在單位時間內能夠處理的最大的二 進制位數。計算機系統的定量原理1.

3、以經常性事件為重點進行優化2.Amdahl定律加快某部件執行速度(部件加速比Se)所能獲得的系統性能加速比(Sn),受限于該部件的執行時間占系統中總 執行時間的百分比(Fe)。假定某部件的運行時間在全系統運行時間T0中所占的百分比為Fe,系統中其他部分運行時間所占百分比為1-Fe。再設該部件改進前后的運行時間之比為Se,也即該部件速度提高的倍數。于是對該部件改進后,全系統的運行時間應為: Tn=T0(1 -Fe)+T0Fe/Se=T0(1 Fe+Fe/Se)(利用對力口速比的計算, 可以決定提高全系統性能的努力應該從何處入手,即花較小的代價,獲取較大的效益。)3.CPU性能公式1)習慣上總是以

4、主時鐘(時鐘周期)T C來表示一個 CPU的速度2) CPU時間一個程序在 CPU上運行 所需的時間TCPU表示為:?TC表示時鐘周期時間。?CPI表示執行每條指令所需的平均時鐘周期數。(作為衡量CPU運行速度的指標)?IN表示要執行程序中的 指令總數。(執行概率)4.程序的局部性原理:時間局部性:程序即將用到的信息很可能就是目前正在使用的信息??臻g局部性:程序即將用到的信息很可能與目前正在使用的 信息在空間上相鄰或者臨近。二.計算機系統的性能評測1.執行時間:計算機完成某一任務 所花費的全部時間2.吞吐率(throughput):單位時間內完成的任 務數。3.基準測試程序(benchmark

5、):用高級語言編寫用于測試和 比較性能的程序。分為兩類:1)一類用以測試系統中所用的元部件,如 CPU、 硬盤等。2)一類則用來對全系統的性能進行測試。以前常采用簡化了的程序,例如:(1)核心程序:從真實的 程序中選出的關鍵代碼段構成的小程序。(2)合成測試程序:人工合成出來的程序。(3)小測試程序:簡單的只有幾十行的程序。從測試性能的角度來看,上述測試程序不可信。SPEC測試程序套件:由各種不同的真實應用程序構成,能 比較全面地反映計算機在各個方面的處理性能。4.MIPS (MillionInstructionPerSecond ),被稱為每秒百萬條指 令,用于衡量標量處理機定點運算的速度對

6、馮諾依曼系統結構 進行的改進1)輸入/輸出方式的改進2)采用并行處理技術(在 不同的級別采用并行技術。如:微操作級、指令級、線程級、進程級、任務級等。)3)存儲器組織結構的發展4)指令集的發展(復雜指令集計 算機(CISC)精減指令集計算機(RISC)軟件的可移植性: 一個軟件可以不經修改或者只需少量修改就可以由一臺計算機 移植到另一臺計算機上正確地運行。我們稱這兩臺計算機是軟件兼容的。實現可移植性的常用方法:系列機,模擬與仿真,統一高級語 言。模擬:指用軟件的方法在一臺計算機 a上實現另一臺計算機 B的功能。A機通常稱為宿主機,B機實際上不一定存在,因此稱為虛 擬機。仿真:當宿主機采用微程序

7、控制器時,通過宿主機上的微程 序來實現虛擬機指令系統中一條指令的功能。這種模擬過程不是在指令級進行,而是在宿主機的微程序水 平上進行,稱為仿真。并行性:計算機系統在同一時刻或者同一時間間隔內進行多 種運算或操作。(只要在時間上相互重疊,就存在并行性 )(1)同時性:兩個 或兩個以上的事件在同一時刻發生。(2)并發性:兩個或兩個以上的事件在同一時間間隔內發生。并行性的實現途徑(1)時間重疊:引入時間因素,讓多個 處理過程在時間上相互錯開, 輪流重疊地使用同一套硬件設備的 各個部分,以加快硬件周轉而贏得速度。最典型的例子:流水線技術(部件功能專用化)(2)資源重復: 引入空間因素,以數量取勝。通過

8、重復設置硬件資源,大幅度地提高計算機系統的性能。(實現指令級并行)(3)資源共享:這是一種軟件方法,它使 多個任務按一定時間順序輪流使用同一套硬件設備。如:多道程序、分時系統 并行性的等級(1)從處理數據的 角度來看,從低到高可分為:字串位串:每次只對一個字的一位 進行處理。(最基本的串行處理方式,不存在并行性)字串位并:同時 對一個字的全部位進行處理,不同字之間是串行的。(開始出現并行性)字并位串:同時對許多字的同一位(稱 為位片)進行處理。(具有較高的并行性)全并行:同時對許多字的全部位或部 分位進行處理。(最高一級的并行)(2)從執行程序的角度來看,從低到高 可分為:指令內部并行:單條指

9、令中各微操作之間的并行。指令級并行:并行執行兩條或兩條以上的指令。(流水線)線程級并行:并行執行兩個或兩個以上的線程。通常是以一個進程內派生的多個線程為調度單位。任務級或過程級并行:并行執行兩個或兩個以上的過程或任 務(程序段)。以子程序或進程為調度單元。作業或程序級并行:并行執行兩個或兩個以上的作業或程序。在發展高性能單處理機過程中,起主導作用的是時間重疊原 理。實現時間重疊的基礎:部件功能專用化第三章:流水線技術 (提高指令并行度、計算機性能)順序執行(取、分析、執行指令)、重疊執行(一次重疊、二次重疊。OO)(讓前后連續的指令在處理機內以重疊的方式執行.)緩沖棧實際上是一個以先進先出(F

10、IFO)方式工作的移位寄存器組(鎖 存器、緩沖寄存器)先行控制技術是指令預處理技術和緩沖技 術的結合,使指令分析部件和執行部件中同時處理的兩條指令可 以是不相鄰的,實現了多條指令的重疊解釋執行。流水線技術(pipelining):把一個重復的過程分解為若干個子 過程,每個子過程由專門的功能部件來實現。把多個處理過程在時間上錯開,依次通過各功能段,這樣, 每個子過程就可以與其他的子過程并行進行。流水線中的每個子過程及其功能部件稱為流水線的級或段, 段與段相互連接形成流水線。流水線的段數稱為流水線的深度。分類:按功能:單功能流水線、多功能流水線(各段進行不 同連接實現不同功能)靜態流水線、動態流水

11、線(同一時間段內 執行了不同功能)按流水的級別:部件級流水線(運算操作)、處理機級流水線(指令流水線)、處理機間級(宏流水線)(異構 型多處理機系統)按是否有反饋回路:線性流水線、非線性流水 線(有反饋回路,某些段要多次通過)按任務流入和流出的順序: 順序流水線、亂序流水線 流水線的性能指標:吞吐率(TP)、加 速比(S)和效率(e) 一.吞吐率:把流水線在單位時間內完成的 任務量定義為吞吐率。TP=完成的指令總條數/完成n個任務所用的時間。若各段執行時間不同,瓶頸:在各級的執行時間不相等的 流水線中,時間最長的段。瓶頸”問題的消除:(兩種方式在效果上是可以等效的) 1)分 割瓶頸部件的工作2

12、)重復設置瓶頸部件二、 加速比:處理同一批 任務,不用流水線與采用流水線時所花費的時間之比, 稱為流水 線的加速比。S=T0/Tk三.效率:流水線設備的利用率(面積比)減少數據相 關性一個經典的5段流水線一條指令的執行過程分為 5個周期: 取指令周期(IF)、指令譯碼/讀寄存器周期(ID)、執行/有效地 址計算周期(EX)、存儲器訪問/分支完成周期(MEM)(只有load、store、分支指令在 MEM有操作)寫回周期(WB)5段流水線的兩種描述方式 流水線的相關(兩條指令之間存在某種依賴關系)與沖突一、相關 1)名相關:如果兩條指令使 用相同的名(寄存器、存儲單元),但是它們之間并沒有數據流

13、 動,則稱這兩條指令存在名相關。(解決:換名技術)1、反相關(前讀后寫用同名)2、輸出相關(前寫后寫用同名)2)數據相關:后指令用到前指令,具 有傳遞性3)控制相關:由分支指令引起的相關(與一條分支指 令控制相關的指令不能被移到該分支之前,如果一條指令與某分支指令不存在控制相關,就不能把該指令移到該分支之后)二、 流水線沖突(hazards冒險):對于具體的流水線來說,由于相關 的存在,使得指令流中的下一條指令不能在指定的時鐘周期執 行。流水線沖突有3種類型:1結構沖突:指多條指令進入流水 線后,在同一時間爭用同一功能部件,從而發生沖突。解決方法:暫停一拍(也稱為流水線氣泡,簡稱氣泡)。2、數

14、據沖突:指由于流水線中各指令重疊執行,使得原來對 操作數的訪問順序發生變化,從而引起的一種數據沖突。類型:寫后讀沖突、寫后寫沖突、讀后寫沖突、解決辦法 : 采用定向傳送技術(旁路技術或相關專用通路技術)減少數據沖 突引起的停頓;將計算結果從產生的地方 (EX和MEM之間的流 水寄存器)直接送到需要的地方(ALU入口)。增加流水線互鎖硬件,插入 暫停指令調度(流水線調度)3、控制沖突:流水線遇到分支指 令(轉移指令)和其他會改變 PC值的指令所引起的沖突。為了減小分支延遲造成的損失,可采用以下措施:1)在流水線中盡早判斷出分支轉移是否成功。2)盡早計算出分支目標地址。為了減小分支延遲造成的損失,

15、還可通過軟件(編譯器)來減少分支延遲,常見的有以下幾種:(1)預測分支失敗n允許分 支指令后的指令繼續在流水線中流動,就好象什么都沒發生似 的。n若確定分支失敗,將分支指令看作是一條普通指令,流水 線正常流動。n若確定分支成功,流水線就把在分支指令之后取出的所有 指令轉化為空操作,并按分支目地重新取指令執行。(2)預測分支成功n假設分支轉移成功,并從分支目標地址 處取指令執行。n起作用的前題:先知道分支目標地址,后知道分支是否成 功。n前述5段流水線中,由于判斷分支是否成功與分支目標地 址計算是在同一流水段(MEM)完成,這種方法沒有任何好處。(3)延遲分支(分支指令+延遲糟,不管分支是否成功

16、,按 順序執行延遲槽中的指令;若失敗,什么都沒發生繼續順序執行; 若失敗,跳轉到目標指令)從前調度(把分支指令前一條指令放入延遲糟)從目標處調度(目標處指令)從失敗處調度(不 跳轉,順序執行)向量處理的幾種方式橫向處理方式縱向處理方式縱橫處理方式五.提高向量處理機性能的方法主要有:n設置多個功能部件,使它們并行工作。n采用鏈接技術,加快一串向量指令的執行。n采用循環開采技術,加快循環的處理。n采用多處理機系統,進一步提高性能。第四章指令級并行(ILP : Instruction-LevelParallelism ) CPI 流水線=CPI理想+停頓結構沖突+停頓數據沖突+停頓控制沖 突CPI表

17、示執行每條指令所需的平均時鐘周期數IPC: InstructionsPerCycle (每個時鐘周期完成的指令條數)1.循環級并行:(使一個循環中的不同循環體并行執行,指令級并行研究 的重點之一錦環展開(loopunrolling )技術:在編譯時多次展開 循環體,再對指令序列重新排序,以進一步提高流水線的并行性。宗用向量指令和向量數據表示 2.相關與流水線沖突n靜態指 令調度n動態指令調度4.對于正確地執行程序來說,必須保持的 最關鍵的兩個屬性是:數據流和異常行為。數據流:指數據值從其產生者指令到其消費者指令的實際流 動。保持異常行為是指:無論怎么改變指令的執行順序,都不能 改變程序中異常的

18、發生情況。靜態調度:在編譯期間通過把相關的指令拉開距離來減少可能產生的停頓進行代碼調度和優化O(亂序執行)動態調度:在程序的執行過程中,依靠專門硬件 對代碼進行調度,減少數據相關導致的停頓。(亂序執行)指令的動態調度:為了允許亂序執行,我們將 5段流水線的譯碼階段(ID)再分為兩個階段:1,流出(Issue, IS):指令譯碼,檢查是否存在結構沖突。(in-orderissue)2,讀操作數(ReadOperands, RO):等待數 據沖突消失,然后讀操作數。Tomasulo算法可以通過使用寄存器重命名來消除(名相關或輸出相關造成的WAR和WAW沖突)。核心思想:1、記錄和檢測指令相關,操作

19、數一旦就緒就立即 執行,把發生 RAW沖突的可能性減少到最??;2、通過寄存器 換名來消除 WAR沖突和 WAW 沖突。1)保留站(reservationstation)每個保留站中保存一條已經流 出并等待到本功能部件執行的指令(相關信息)。包括:操作碼、操作數以及用于檢測和解決沖突的信息。"一條指令流出到保留站的時候,如果該指令的源操作數已經在寄存器中就緒,則將之取到該保留站中。口果操作數還沒有計算出來,則在該保留站中記錄將產生這 個操作數的保留站的標識。2)公共數據總線 CDB所有功能部件的計算結果都是送到 CDB上,由它把這些結果直接送到(播送到)各個需要該結果的地方。3) lo

20、ad緩沖器和store緩沖器(存放讀/寫存儲器的數據或地 址)4)浮點寄存器 FP5)指令隊列(指令先進先出) 6)運算部 件(浮點加法、乘法器)n在Tomasulo算法中,寄存器換名是通 過保留站和流出邏輯來共同完成的。'''當指令流出時,如果其操作數還沒有計算出來,則將該指 令中相應的寄存器號換名為將產生這個操作數的保留站的標識。'''指令流出到保留站后,其操作數寄存器號或者換成了數據 本身(如果該數據已經就緒),或者換成了保留站的標識,不再 與寄存器有關系。計算結果通過 CDB直接從產生它的保留站傳送到所有需 要它的功能部件,而不用經過寄存

21、器。Tomasulo指令執行的步驟使用 Tomasulo算法的流水線需 3 段:1)流出:從指令隊列的頭部取一條指令。飲口果沒有空閑的保留站,指令就不能流出。(發生了結構沖突)效口果該指令的操作所要求的保留站有空 閑的,就把該指令送到該保留站。(寄存器換名和對操作數進行緩沖,消除WAR沖突)猊成對目標寄存器的預約工作(消除了WAW沖突)2)執行當兩個操作數都就緒后,本保留站就用相應的功能部件開始執行指令規 定的操作。(消除了 RAW沖突)3)寫結果功能部件計算完畢后,就將計算結果放到CDB上,所有等待該計算結果的寄存器和保留站(包括store緩沖器)都同時從 CDB上獲得所需要的數據。動態分支

22、預測:在程序運行時,根據分支指令過去的表現來 預測其將來的行為。1、采用分支歷史表 BHT (BranchHistoryTable)分支預測緩 沖器(BranchPredicitonBuffer)來記錄分支指令最近一次或幾次 的執行情況(成功或不成功),并據此進行預測。2)操作步驟:分支預測。當分支指令到達譯碼段(ID)時,根據從BHT讀出的信息進 行分支預測;若預測正確,就繼續處理后續的指令,流水線沒有 斷流。否則,就要作廢已經預取和分析的指令,恢復現場,并從另 一條分支路徑重新取指令。狀態修改。2、.采用分支目標緩沖器 BTB (預測的分支目標地址)n目 標:將分支的開銷降為0n方法:分支目標緩沖分支成功的分 支指令的地址和它的分支目標地址都放到一個緩沖區中保存起 來,緩沖區以分支指令的地址作為標識。立個緩沖區就是分支目標緩沖器( Branch-TargetBuffer,簡 記為 BTB ,或者 Branch-TargetCache)。3、基于硬件的前瞻執行 1.前瞻執行(speculation)的基本思 想:n對分支指令的結果進行猜測,并假設這個猜測總是對的,然后按這個猜測結果繼續取、流出和執行后續的指令。只是執行指令的結果不是寫回到寄存器或存儲器,而是放到一個稱為 ROB (ReOrderBuffer)的緩沖

溫馨提示

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

評論

0/150

提交評論