【計算機組成原理】 中央處理器

CPU 的功能和基本結構程序員

中央處理器(CPU)由運算器和控制器組成。控制器的功能是負責協調並控制計算機各部件執行程序的指令序列,包括取指指令、分析指令和執行指令;運算器的功能是對數據進行加工。CPU 的具體功能包括:編程

  1. 指令控制。完成取指令、分析指令和執行指令的操做,即程序的順序控制。
  2. 操做控制。一條指令的功能每每有若干操做信號的組合來實現。CPU 管理併產生由內存取出的每條指令的操做信號,把各類操做信號送往相應的部件,從而控制這些部件按指令的要求進行動做。
  3. 時間控制。對各類操做加以時間控制。時間控制要爲每條指令按時間順序提供應有的控制信號。
  4. 數據加工。對數據進行算術和邏輯運算。
  5. 中斷處理。對計算機運行過程當中出現的異常狀況和特殊請求進行處理。

 

1.運算器併發

  運算器接收從控制器送來的命令並執行相應的動做,對數據進行加工和處理。運算器是計算機對數據進行加工處理的中心,它主要由算術邏輯單元(ALU)、暫存寄存器、累加寄存器(ACC)、通用寄存器組、程序狀態字寄存器(PSW)。移位器、計數器(CT)等組成。異步

  1. 算術邏輯單元。主要功能是進行算術/邏輯運算。
  2. 暫存寄存器。用於暫存從主存讀來的數據,該數據不能存放在通用寄存器中,不然會破壞其原有內容。暫存寄存器對應用程序員是透明的
  3. 累加寄存器。它是一個通用寄存器,用於暫時存放 ALU 運算的結果信息,能夠做爲加法運算的一個輸入端。
  4. 通用寄存器組。如 AX、BX、CX、DX、SP 等(也經常使用 R0、R1...表示),用於存放操做數(包括源操做數、目的操做數及中間結果)和各類地址信息等。SP 是堆棧指針,用於指示棧頂的地址。
  5. 程序狀態字寄存器。保留由算術邏輯運算指令或測試指令的結果而創建的各類狀態信息,如溢出標誌(OF)、符號標誌(SF)、零標誌(ZF)、進位標誌(CF)等。PSW 中的這些位參與並決定微操做的造成。
  6. 移位器。對操做數或運算結果進行移位運算。
  7. 計數器。控制乘除運算的操做步數。

2.控制器性能

  控制器是整個系統的指揮中樞,在控制器的控制下,使運算器、存儲器和輸入/輸出設備等功能部件構成一個有機的總體,根據指令的要求指揮全機協調工做。控制器的基本功能是執行指令,每條指令的執行是由控制器發出的一組微操做實現的。測試

  控制器有硬佈線控制器和微程序控制器兩種類型。控制器由程序計數器(PC)、指令寄存器(IR)、指令譯碼器、存儲器地址寄存器(MAR)、存儲器數據寄存器(MDR)、時序系統和微操做信號發生器等組成。優化

  1. 程序計數器。用於指出下一條指令在主存中的存放地址。CPU 根據 PC 的內容去主存中取指令。PC 具備自增功能。
  2. 指令寄存器。用於保存當前正在執行的那條指令。
  3. 指令譯碼器。僅對操做碼字段進行譯碼,向控制器提供特定的操做信號。
  4. 存儲器地址寄存器。用於存放所要訪問的主存單元的地址。
  5. 存儲器數據寄存器。用於存放向主存寫入的信息或從主存中讀出的信息。
  6. 時序系統。用於產生各類時序信號,它們都由統一時鐘(CLOCK)分頻獲得。
  7. 微操做信號發生器。根據 IR 的內容(指令)、PSW 的內容(狀態信息)及時序信號,產生控制整個計算機系統所需的各類控制信號,其結構有組合邏輯型和存儲邏輯型兩種。

  控制器的工做原理是,根據指令操做碼、指令的執行步驟(微命令序列)和條件信號來造成當前計算機各部件要用到的控制信號。計算機整機各硬件系統在這些控制信號的控制下協同運行,產生預期的執行效果。編碼

  CPU 內部寄存器大體可分爲兩類:一類是用戶可見的寄存器,可對這類寄存器編程,如通用寄存器組、程序狀態字寄存器;另外一類是用戶不可見的寄存器,對用戶是透明的,不可對這類寄存器編程,如存儲器地址寄存器、存儲器數據寄存器、指令寄存器。spa

 

數據總線的位數與處理器的位數相同,它表示 CPU 一次能處理的數據的位數,即 CPU 的位數。設計

程序計數器的位數取決於存儲器的容量。

指令寄存器的位數取決於指令字長。

通用寄存器的位數取決於機器字長。

指令包括操做碼字段和地址碼字段,但指令譯碼器僅對操做碼字段進行譯碼,藉以肯定指令的操做功能。

地址譯碼器是主存等存儲器的組成部分,其做用是根據輸入的地址碼惟一選定一個存儲單元,它不是 CPU 的組成部分。

間址週期結束時,CPU 內寄存器 MAR 的內容爲操做數地址。

 

指令執行過程

  CPU 從主存每取出並執行一條指令所需的所有時間稱爲指令週期,即 CPU 完成一條指令的時間。

  指令週期經常使用若干機器週期來表示,一個機器週期又包含若干時鐘週期(也稱節拍或 T週期,它是 CPU 操做的最基本單位)。每一個指令週期內的機器週期數能夠不等,每一個機器週期內的節拍數也能夠不等。

 

  對於無條件轉移指令 JMP X,在執行時不須要訪問主存,只包含取指階段(包括取指和分析) 和執行階段,因此其指令週期僅包含取指週期和執行週期。對於間接尋址的指令,爲了取操做數,須要先訪問一次主存,取出有效地址,而後訪問主存。取出操做數,因此還須要包括間址週期。間址週期介於取指週期和執行週期之間。

  一個完整的指令週期應包括取指、間址、執行和中斷 4 個週期。這 4 個週期都有 CPU 訪存操做,只是訪存的目的不一樣。取指週期是爲了取指令,間址週期是爲了取有效地址,執行週期是爲了取操做數,中斷週期是爲了保存程序斷點。中斷週期中的進棧操做是將 SP 減1,這和傳統意義上的進棧操做相反,緣由是計算機的堆棧中都是向低地址增長,因此進棧操做是減1而不是加1。

 

取指週期的任務是根據 PC 中的內容從主存中取出指令代碼並存放在 IR 中。取指令的同時, PC 加 1。

間址週期的任務是取操做數有效地址。一次間址將指令中的地址碼送到 MAR 並送至地址總線,此後 CU 向存儲器發讀命令,以獲取有效地址並存至 MDR。

執行週期的任務是根據 IR 中的指令字的操做碼和操做數經過 ALU 操做產生執行結果,不一樣指令的執行週期操做不一樣。

中斷週期的任務是處理中斷請求。

 

指令執行方案

  1.單指令週期。對全部指令都選用相同的執行時間來完成,稱爲單指令週期方案。此時,每條指令都在固定的時鐘週期內完成,指令之間串行執行,即下一條指令只能在前一條指令執行結束後才能啓動。所以,指令週期取決於執行時間最長的指令的執行時間。

  2.多指令週期。對不一樣指令選用不一樣的執行步驟來完成,稱爲多指令週期方案。指令之間串行執行,即下一條指令只能在前一條指令執行結束後才能啓動。但可選用不一樣個數的時鐘週期來完成不一樣指令的執行過程指令須要幾個週期就爲其分配幾個週期,而再也不要求全部指令佔用相同的執行時間。

  3.流水線方案。指令之間能夠並行執行的方案,稱爲流水線方案,其追求的目標是力爭在每一個時鐘脈衝週期完成一條指令的執行過程(只有在理想狀況下才能達到該效果)。這種方案經過在每一個時鐘週期啓動一條指令,儘可能讓多條指令同時運行,但各自處在不一樣的執行步驟中。

 

指令老是根據程序計數器從主存中讀出。

在一條無條件跳轉指令的指令週期內,程序計數器(PC)的值被修改了 2 次。首先在取指週期結束後,PC 的值自動加 1;在執行週期中,PC 的值修改成要跳轉的地址。綜上,在一條無條件跳轉指令的指令週期內,程序計數器(PC)的值被修改了 2 次。取指操做是自動進行的,控制器不須要獲得相應的指令。不一樣長度的指令,其取指操做多是不一樣的。控制器可區分存儲單元中存放的是指令仍是數據。

取指操做時自動進行的,控制器不須要獲得相應的指令。

不一樣長度的指令,其取指操做多是不一樣的。

 

數據通路的功能和基本結構

  數據在功能部件之間傳送的路徑稱爲數據通路。運算器與各寄存器之間的數據傳送路徑就是中央處理器的內部數據通路。數據通路描述了信息從什麼地方開始,中間通過哪一個寄存器或多路開關,最後傳送到哪一個寄存器,這些都要加以控制。創建數據通路的任務是由「操做控制部件」來完成的。數據通路的功能是實現 CPU 內部的運算器與寄存器及寄存器之間的數據交換。

 

數據通路的基本結構主要有如下幾種:

  1. CPU 內部單總線方式。將全部寄存器的輸入端和輸出端都鏈接到一條公共通路上,這種結構比較簡單,但數據傳輸存在較多的衝突現象。
  2. CPU 內部多總線方式。將全部寄存器的輸入端和輸出端都鏈接到多條公共通路上,同時在多個總線上傳送不一樣的數據,提升效率。
  3. 專用數據通路方式。根據指令執行過程當中的數據和地址的流動方向安排鏈接線路,避免使用共享的總線,性能較高,但硬件量大。

 

內部總線是指同一部件,如 CPU 內部鏈接各寄存器及運算器部件之間的總線;系統總線是指同一臺計算機系統的各個部件,如 CPU、內存、通道和各種 I/O接口之間互相鏈接的總線。

寄存器之間的數據傳送可經過 CPU 內部總線完成。

主存與 CPU 之間的數據傳送也要藉助 CPU 內部總線完成。

執行算術或邏輯操做時,因爲 ALU 自己是沒有內部存儲功能的組合電路,所以如要執行加法運算,相加的兩個數必須在 ALU 的兩個輸入端同時有效。

 

在單總線的 CPU 中,ALU 只能有一個輸入端可與總線相連,另外一輸入端需經過暫存器與總線相連,不然兩個端口會同時得到兩個相同的數據,是數據通路不能正常工做。

 

實現 ADD R1,(R2) 的微操做序列

(PC) → MAR

M → MDR

(PC) + 1 → PC

MDR → IR

R1 → LA

(R2) → MAR

M → MDR

MDR → LB

(LA) + (LB) → R1

 

控制器的功能和工做原理

  根據控制器產生微操做控制信號的方式的不一樣,控制器可分爲硬佈線控制器和微操做控制器,兩類控制器中的 PC 和 IR 是相同的,但肯定和表示指令執行步驟的辦法以及給出控制各部件運行所須要的控制信號的方案是不一樣的。

 

硬佈線控制器

  硬佈線控制器的基本原理是根據指令的要求、當前的時序及外部和內部的狀態,按時間的順序發送一系列微操做控制信號。它由複雜的組合邏輯門電路和一些觸發器構成,所以又稱組合邏輯控制器

     指令的操做碼是決定控制單元發出不一樣操做命令(控制信號)的關鍵。爲了簡化控制單元(CU)的邏輯,將指令的操做碼譯碼和節拍發生器從 CU 分離出來,即可獲得簡化的控制單元圖。CU 的輸入信號來源以下:

  1. 經指令譯碼器譯碼產生的指令信息。現行指令的操做碼決定了不一樣指令在執行週期所需完成的不一樣操做,故指令的操做碼字段是控制單元的輸入信號,它與時鐘配合產生不一樣的控制信號。
  2. 時序系統產生的機器週期信號和節拍信號。爲了使控制單元按必定的前後順序、必定的節奏發出各個控制信號,控制單元必須受時鐘控制,即一個時鐘脈衝使控制單元發送一個操做命令,或發送一組須要同時執行的操做命令。
  3. 來自執行單元的反饋信息即標誌。控制單元有時需依賴 CPU 當前所處的狀態產生控制信號,如 BAN 指令,控制單元要根據上條指令的結果是否爲負來產生不一樣的控制信號。

控制單元還接收來自系統總線(控制總線)的控制信號,如中斷請求、DMA 請求。

 

硬佈線控制器的時序系統及微操做

  1. 時鐘週期。用時鐘信號控制節拍發生器,能夠產生節拍,每一個節拍的寬度正好對應一個時鐘週期。在每一個節拍內機器可完成一個或幾個需同時執行的操做。
  2. 機器週期。機器週期可視爲全部指令執行過程當中的一個基準時間。不一樣指令的操做不一樣,指令週期也不一樣。訪問一次存儲器的時間是固定的,所以一般以存取週期時間做爲基準時間,即內存中讀取一個指令字的最短期爲機器週期。在存儲字長等於指令字長的狀況下,取指週期也可視爲機器週期。   在一個機器週期裏可完成若干微操做,每一個微操做都需必定的時間,可用時鐘信號來控制產生每一個微操做指令。
  3. 指令週期。見上。
  4. 微操做命令分析。控制單元具備發出各類操做命令(控制信號)序列的功能。這些命令與指令有關,並且必須按照必定次序發出,才能使 機器有序地工做。

一條指令分爲 3 個工做週期:取指週期、間址週期和執行週期。

 

CPU 的控制方式主要有如下三種:

  1. 同步控制方式。是指系統有一個統一的時鐘,全部的控制信號均來自這個統一的時鐘信號一般以最長的的微操做序列和最繁瑣的微操做做爲標準,採起徹底統一的、具備相同時間間隔和相同數目的節拍做爲機器週期來運行不一樣的指令。同步控制方式的優勢是控制電路簡單,缺點是運行速度慢。
  2. 異步控制方式。異步控制方式不存在基準時標信號,各部件按自身固有的速度,經過應答方式進行聯絡。異步方式的優勢是運行速度快,缺點是控制電路比較複雜。
  3. 聯合控制方式。聯合控制方式是介於同步同步、異步之間的一種折中。這種方法對各類不一樣的指令微操做實行大部分採用同步控制、小部分採用異步控制的辦法。

 

微程序控制器

  微程序控制器採用邏輯存儲實現,也就是把微操做信號代碼化,使每條機器指令轉化成爲一段微程序並存入一個專門的存儲器(控制存儲器)中,微操做控制信號由微指令產生。

 

(1)微命令與微操做。一條機器指令能夠分解成一個微操做序列,這些微操做是計算機中最基本的 、不可再分解的操做。在微程序控制的計算機中,將控制部件向執行部件發出的各類程序控制命令稱爲微指令,它是構成控制序列的最小單位。微命令和微操做是一一對應的。微命令是微操做的控制信號,微操做是微命令的執行過程。微命令有相容性和互斥性之分。相容性微命令是指那些能夠同時產生、共同完成某一些微操做的微指令;而互斥性微命令是指在機器中不容許同時出現的微命令。相容和互斥都是相對的,一個微命令能夠和一些微命令相容,和另外一些微命令互斥。

(2)微指令與微週期。微指令是若干微命令的集合。存放微指令的控制存儲器的單元地址稱爲微地址。一條微指令一般至少包含兩大部分信息:

  1. 操做控制字段,又稱微操做碼字段,用於產生某一步操做所需的各類操做控制信號。
  2. 順序控制字段,又稱微地址碼字段,用於控制產生下一條要執行的微指令地址。

    微週期一般指從控制存儲器中讀取一條微指令並執行相應的微操做所需的時間。

(3)主存儲器與控制存儲器。主存儲器用於存放程序和數據,在 CPU  外部,用 RAM  實現;控制存儲器(CM)用於存放微程序,在 CPU 內部,用 ROM 實現。

(4)程序與微程序。程序是指令的有序集合,用於完成特定的功能;微程序是微指令的有序集合,一條指令的功能由一段微程序來實現

 

微程序和程序是兩個不一樣的概念。微程序是由微指令組成的,用於描述機器指令。微程序其實是機器指令的實時解釋器,是由計算機設計者實現編制好並存放在控制存儲器中的,通常不提供給用戶。對於程序員來講,計算機系統中微程序的結構和功能是透明的。而程序最終由機器指令組成,是由軟件設計人員實現編制好並存放在主存或輔存中的。

 

注意區分如下寄存器:

1.地址寄存器(MAR)。用於存放主存的 讀/寫地址。

2.微地址寄存器(CMAR)。用於存放控制存儲器的 讀/寫微指令的地址。

3.指令寄存器(IR)。用於存放從主存中讀出的指令。

4.微指令寄存器(CMDR 或 μIR)。用於存放從控制器中讀出的微指令。

 

若指令週期中具備 n 種機器指令,則控制存儲器中的微程序數至少是 n + 1(1 爲公共的取指微程序,有中斷再 +1)。

 

微指令的編碼方式:

  1. 直接編碼(直接控制)方式。直接編碼無須進行譯碼,微指令的微命令字段中的每位都表明一個微命令。設計微指令時,選用或不選用某個微指令,只要將表示該微命令的對應位設置成 1 或 0 便可。每一個微命令對應並控制數據通路中的一個微操做。
  2. 字段直接編碼方式。將微指令的微命令字段分爲若干小字段,把互斥性微命令組合在統一字段中,把相容性微命令組合在不一樣字段中,每一個字段獨立編碼,每種編碼表明一個微命令且各字段編碼含義單獨定義,與其餘字段無關,這就是字段直接編碼方式。通常每一個小段還要留出一個狀態,表示本字段不發出任何微命令。所以,當某字段長度爲 3 時,最多隻能表示 7 各互斥的微命令,一般用 000 表示不操做。
  3. 字段間接編碼方式。一個字段的某些微命令需由另外一個字段中的某些微命令來解釋,因爲不是靠字段直接譯碼發出的微指令,故稱爲字段間接編碼,又稱隱式編碼。這種方式可進一步縮短微指令字長,但因削弱了微指令的並行控制能力,所以一般做爲字段直接編碼的一種輔助手段。

 

微指令的格式與微指令的編碼方式有關,一般分爲水平型微指令和垂直型微指令。

  1. 水平型微指令。從編碼方式看,直接編碼、字段直接編碼、字段間接編碼和混合編碼都屬於水平型微指令。指令字中的一位對應一個控制信號,有輸出是爲 1,不然爲 0。一條水平型微指令定義並執行幾種並行的基本操做。

     

     

  2. 垂直型微指令。垂直型微指令的特色是採用相似機器指令操做碼的方式,在微指令中設置微操做碼字段,採用微操做碼編譯法,由微操做碼規定微指令的功能,一條垂直型微指令只能定義並執行一種基本操做。
  3.  

    混合型微指令。在垂直型的基礎上增長一些不太複雜的並行操做。微指令較短,仍便於編寫;微程序也不長,執行速度加快。

 

微程序控制器與硬佈線控制器的對比
對比項目\類別 微程序控制器 硬佈線控制器
工做原理 微操做控制信號以微程序的形式存放在控制存儲器中,執行指令時讀出便可 微操做控制信號由組合邏輯電路根據當前的指令碼、狀態和時序即時產生
執行速度
規整性 較規整 繁瑣、不規整
應用場合 CISC CPU RISC CPU
易擴充性 易擴充修改 困難

 

在微程序控制器中,造成微程序入口地址的是機器指令的操做碼字段。

微程序控制存儲器用來存放微程序,是微程序控制器的核心部件,屬於 CPU 的一部分。

硬佈線控制器與微程序控制器相比,微程序控制器的時序系統比較簡單。

一般狀況下,一個微程序的週期對應一個指令週期。

 

指令流水線

當多條指令在處理器中執行時,能夠採用如下三種方式:

  1. 順序執行方式。指令順序執行,前一條指令執行完後,才啓動下一條指令。設取指、分析、執行三個階段的時間都相等,用 t 表示,順序執行 n 條指令所用時間爲 T 爲 T = 3nt。
  2. 一次重疊方式。這種方式同時進行第 k 條指令的執行階段和第 k + 1 條指令的取指階段。採用此種方式時,執行 n 條指令所用的時間爲 T = (1 + 2n)t。

     

     

     

     

  3. 二次重疊方式。爲了進一步提升指令的執行速度,能夠把取 k +1 條指令提早到分析第 k 條指令的期間完成,而將分析第 k + 1 條指令與執行第 k 條指令同時進行。採用此種方式時,執行 n 條指令所用的時間是 T = (2 + n)t。 

     

     

流水線方式的特色(與傳統串行方式相比):

  1. 把一個任務(一條指令或一個操做)分解爲幾個有聯繫的子任務,每一個子任務由一個專門的功能部件來執行,並依靠多個功能部件並行工做來縮短程序的執行時間。
  2. 流水線每一個功能部件後面都要有一個緩衝寄存器,或稱鎖存器,其做用是保存本流水段的執行結果,提供給下一流水段使用。
  3. 流水線中各功能段的時間應儘可能相等,不然將引發堵塞、斷流。
  4. 只有接二連三地提供同一任務時才能發揮流水線的效率,因此在流水線中處理的必須是連續任務。在採用流水線方式工做的處理機中,要在軟件和硬件設計等多方面儘可能爲流水線提供連續的任務。
  5. 流水線須要有裝入時間和排空時間。裝入時間是指第一個任務進入流水線到輸出流水線的時間。排空時間是指最後一個任務進入流水線到輸出流水線的時間。

 

流水線的分類:

  1. 部件功能級、處理機級和處理機間級流水線。部件功能級流水將複雜的算術邏輯運算組成流水線工做方式。例如,可將浮點數加法操做分紅求階差、對階、尾數相加及結果規格化等 4 個子過程。處理機級流水把一條指令解釋過程分紅多個子過程,如取指、譯碼、執行、訪存和寫回 5 個子過程。處理機間級流水是一種宏流水,其中每一個處理機完成某一專門任務,各個處理機獲得的結果需存放在與下一個處理機共享的存儲器中。
  2. 單功能流水線和多功能流水線。單功能流水線是指只能實現一種固定的專門功能的流水線;多功能流水線是指經過各段間的不一樣鏈接方式能夠同時或不一樣時地實現多種功能的流水線。
  3. 動態流水線和靜態流水線。靜態流水線指在同一時間內,流水線的各段之能按同一種功能的鏈接方式工做。動態流水線指在同一時間內,當某些段正在實現某種運算時另外一些段卻在進行另外一種運算。
  4. 線性流水線和非線性流水線。線性流水線中,從輸入到輸出,每一個功能段只容許通過一次,不存在反饋迴路。非線性流水線存在反饋迴路,從輸入到輸出的過程當中,某些功能段將數次經過流水線,這種流水線適合進行線性遞歸的運算

 

影響流水線的因素:

  1. 結構相關(資源衝突)。因爲多條指令在同一時刻爭用同一資源而造成的衝突稱爲結構相關,有如下兩種解決方法:
    1. 前一指令訪存時,使後一條相關指令(以及其後續指令)暫停一個時鐘週期。
    2. 單獨設置數據存儲器和指令存儲器,使兩項操做各自在不一樣的存儲器中進行,這屬於資源重複配置。
  2. 數據相關(數據衝突)。數據相關指在一個程序中,存在必須等前一條指令執行完才能執行後一條指令的狀況,此時這兩條指令即爲數據相關。當多條指令重疊處理時就會發生衝突,解決的辦法由如下幾種:
    1. 把遇到數據相關的指令及其後續指令都暫停一至幾個時鐘週期,直到數據相關問題消失後再繼續執行,可分爲硬件阻塞(stall)和軟件插入「NOP」指令兩種方法。
    2. 設置相關專用通路,即不等前一條指令把計算結果寫回寄存器組,下一條指令也再也不讀寄存器組,而直接把前一條指令的 ALU 的計算結果做爲本身的輸入數據開始計算過程,使原本須要暫停的操做變得能夠繼續執行,這稱爲數據旁路技術
    3. 經過編譯器對數據相關的指令編譯優化的方法,調整指令順序來解決數據相關。
  3. 控制相關(控制衝突)當流水線遇到轉移指令和其餘改變 PC 值的指令而形成斷流時,會引發控制相關。解決的辦法有如下幾種:
    1. 對轉移指令進行分支預測,儘早生成轉移目標地址。分支預測分爲簡單(靜態)預測和動態預測。靜態預測老是預測條件不知足,即繼續執行分支指令的後續指令。動態預測根據程序執行的歷史狀況,進行動態預測調整,有較高的預測準確率。
    2. 預取轉移成功和不成功兩個控制流方向上的目標指令。
    3. 加快和提早造成條件碼。
    4. 提升轉移方向的猜準率。

Cache 缺失的處理過程也會引發流水線阻塞。在不過多增長硬件成本的狀況下,如何儘量提升指令流水線的運行效率(處理能力)是選用指令流水線技術必須解決的問題。

流水線中有三類數據相關衝突:寫後讀(RAW)相關;讀後寫(WAR)相關;寫後寫(WAW)相關

 

 

流水線的性能指標:

1.流水線的吞吐率。在指令級流水線中,吞吐率是指在單位時間內流水線所完成的任務數量,或輸出結果的數量。計算流水線吞吐率(TP)的最基本的公式爲 TP = n / (Tk)。其中 n 是任務數,Tk是處理完 n 個任務所用的時間。

 

 2.加速比。

 

 3.效率。

 

 

1.超標量流水線技術。每一個時鐘週期可併發多條獨立指令,即以並行操做方式將兩條指令或多條指令編譯並執行,爲此需配置多個功能部件。超標量計算機不能調整指令的執行順序,所以經過編譯優化技術,把可並行執行的指令搭配起來,挖掘更多的並行性。

 

2.超流水線技術。在一個週期內再分段,在一個時鐘週期內一個功能部件使用屢次。不能調整指令的執行順序,靠編譯程序解決優化問題。

 

3.超長指令字。由編譯程序挖掘出指令間潛在的並行性,將多條能並行操做的指令組合成一條具備多個操做碼字段的超長指令字(可達幾百位),爲此須要採用多個處理部件。

 

 

流水 CPU 是以時間並行性爲原理構造的處理器。

超標量流水線能結合動態調度技術提升指令並行性。(與上面矛盾,暫時以此爲準)

五階段流水線可分爲取指 IF、譯碼/取數 ID、執行 EXC、存儲器讀 MEM、寫回 Write Back。數字系統中,各個子系統經過數據總線鏈接造成的數據傳送路徑稱爲數據通路,包括程序計數器、算術邏輯運算部件、通用寄存器組、取指部件等,不包括控制部件。

流水線按序流動時,在 RAW、WAR、WAW 中,只可能出現 RAW相關。

 

以上內容均來自王道書籍及相關課程等

相關文章
相關標籤/搜索