第8章 中央處理器_第1頁
第8章 中央處理器_第2頁
第8章 中央處理器_第3頁
第8章 中央處理器_第4頁
第8章 中央處理器_第5頁
已閱讀5頁,還剩98頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1第8章

中央處理器2本章內容CPU的結構與功能控制器的功能與設計流水線處理器多發射技術多核處理器處理器舉例38.1CPU的結構與功能CPU概念:CPU是讀取指令,控制并執行指令的部件,該部件不僅要與計算機的其它功能部件進行信息交換,還要控制它們的操作。CPU主要包括:控制器與運算器兩大功能部件和寄存器組。運算器:算術邏輯單元,負責算術與邏輯運算控制器:控制指令執行的功能部件寄存器組:用于存放結果、狀態等數據的存儲部件48.1CPU的結構與功能寄存器組寄存器功能:在CPU中用來保存運算和控制過程中的中間結果、最終結果以及控制、狀態信息。寄存器堆:現代計算機通常有大量的通用寄存器,在硬件實現的時候,通常將他們放在一個單獨的模塊中,采用存儲元件陣列來實現,這個模塊稱為寄存器堆。58.1CPU的結構與功能寄存器組通用寄存器這是一組程序員可以訪問的多功能的寄存器,可以存放數據,也可以做一些專用的數據或存儲地址,如R0~Rn-1地址寄存器用于存放基址地址或變址地址或堆棧指針的專用處理器。在有些系統中可能會將某些通用寄存器指定為地址寄存器。暫存器有些系統具有臨時存放數據的暫存器TEMP68.1CPU的結構與功能寄存器組控制寄存器MAR:存儲器地址寄存器存放將被訪問的存儲器單元的地址MDR:存儲器數據寄存器存放要寫入存儲器或從存儲器讀出的數據PC:程序計數器存放下一條要取出的指令的地址IR:指令寄存器存放當前取出準備執行的指令78.1CPU的結構與功能寄存器組控制寄存器Y:暫存輸入ALU的數據Z:暫存ALU的輸出結果狀態寄存器(條件碼寄存器)條件碼寄存器存放進位、溢出等條件碼PSW:程序狀態字寄存器存放程序狀態字88.1CPU的結構與功能寄存器組織使用寄存器要注意:了解地址寄存器和數據寄存器的長度了解通用寄存器有無特殊指派或特殊用法了解專用寄存器的用法了解寄存器的數量程序員可見的寄存器通用寄存器、地址寄存器、條件碼寄存器(部分可見)、PC9CPU內部結構

CPU內部總線①②③④⑤⑥⑦⑧⑨返回8.1CPU的結構與功能CPU的內部結構108.1CPU的結構與功能CPU與主存間通信存儲結構馮·諾依曼式代碼與數據存放在同一個存儲體中哈佛式代碼與數據分別放在不同的存儲體中CPU與主存間通信方式——解決CPU與主存間速度不匹配問題同步用一條公共時鐘線讓兩者同頻工作異步通過一個“存儲器操作完成”(MFC)信號讓CPU等待存儲器操作的結束。118.1CPU的結構與功能CPU的基本功能存儲器讀:讀取某一主存單元的內容,并將其裝入某一個CPU寄存器;讀出來的可能是數據也可能是指令存儲器寫:把一個數據字從某一CPU寄存器存入給定的主存單元中;寄存器傳送:把一個數據字從某一CPU寄存器送到另一個寄存器或者ALU;運算:進行一個算術運算或邏輯運算,將結果送入某一CPU寄存器或存儲器。128.1CPU的結構與功能CPU的基本功能存儲器讀:CPU向主存發送地址和讀信號;例:從內存讀取一字節

R2(R1)

t1:R1out,

MARint2:Readt3:WMFC;等待MFC信號t4:MDRout,R2in138.1CPU的結構與功能CPU基本功能存儲器寫主存地址裝入MAR,數據字節裝入MDR,然后向存儲器發一個“寫”信號。

例:把一個字寫入主存,數據字放在寄存器R2中,主存單元地址放在R1中

t1:R1out,MARint2:R2out,MDRint3:Writet4:WMFC148.1CPU的結構與功能CPU基本功能通用寄存器之間傳送數據

例:MOVR4,R1R1out,R4in進行算術和邏輯運算并保存結果至寄存器或存儲器

例:ADDR3,R1,R2

R3(R1)+(R2)t1:R1out,Yin

t2:R2out,ADD,Zin

t3:Zout,R3in158.1CPU的結構與功能數據通路概念:數據在功能部件之間傳送的路徑稱為數據通路。運算器與各寄存器之間的傳送路徑就是中央處理器內部數據通路。“數據通路”描述了信息從什么地方開始,中間經過哪個寄存器或多路開關,最后傳送到哪個寄存器及數據流動時候的控制。功能:實現CPU內部的運算器和寄存器以及寄存器之間的數據交換。168.1CPU的結構與功能數據通路基本結構CPU內部總線方式:將所有的寄存器的輸入端和輸出端都連接到一條或多條公共的通路上,結構簡單,但是數據傳輸存在較多的沖突現象,性能較低。如果連接各部件的總線只有一條,則稱單總線結構;如果CPU中有兩條或更多的總線,則構成雙總線結構和多總線結構。在雙總線或多總線結構中,數據的傳遞可以同時進行。專用數據通路方式(不采用CPU內部總線方式):根據指令執行過程中的數據和地址的流動方向安排連接線路,避免使用共享的總線,性能比較高,但硬件量大。圖1圖217例1CPU結構如圖,其中有一個累加寄存器AC、一個狀態寄存器;各部分之間的連線表示數據通路,箭頭表示信息轉送方向。要求:(1)標明圖中a,b,c,d四個寄存器的名稱。(2)簡述指令從主存儲器取到控制器的數據通路。(3)簡述數據在運算器和主存之間進行存/取訪問的數據通路。1819解:(1)a:存儲數據寄存器MDR;b:指令寄存器IR;

c:存儲地址寄存器MAR;d:程序計數器PC。(2)MIR控制器(3)讀:MMDRALUAC;寫:ACMDRM問題:(1)標明圖中a,b,c,d四個寄存器的名稱。(2)簡述指令從主存儲器取到控制器的數據通路。(3)簡述數據在運算器和主存之間進行存/取訪問的數據通路。208.1CPU的結構與功能一條指令的完整執行過程取指階段,CPU從內存中讀取指令,程序計數器保存要被取出的下一條指令的地址,除非遇到跳轉指令等情況,否則,PC一般都是在每次取指后加上一個增量(當前指令的字節數);分析階段,對取出的指令解釋指令的功能,分析操作數地址。這一階段也稱為譯碼執行階段,執行譯碼好的指令,這期間可能會讀寫存儲器或端口來獲取操作數或者存放結果。注意,階段可能會分的更細,如取指、譯碼、執行、訪存、回寫等,如酷睿分了14個階段,Pentium4分了21甚至32階段21◆考慮一條比較簡單的指令:

AddR1,(R3)◆執行這條指令需要下列動作:(1)取指令;(2)取第一個操作數(由R3指出的存儲單元的內容);(3)完成加法運算;(R1+(R3))(4)結果存入R1中。8.1CPU的結構與功能22▲指令AddR1,(R3)的執行控制序列返回微指令步

動作說明

1PCout,MARin,Read,ClearY,1=>C0,Add,Zin

;取指,(PC)+12Zout,PCin,WMFC;(PC)+1=>PC3MDRout,IRin

;指令=>IR4R3out,MARin,Read;取數據5R1out,Yin,WMFC;(R1)=>Y6MDRout,Add,Zin;相加7Zout,R1in,End;結果=>R1返回微程序概念23步動作1PCout,MARin,Read,ClearY,1=>C0,Add,Zin2Zout,PCin,WMFC3MDRout,IRin4PCout,Yin5(IR的偏移字段)out,Add,Zin6Zout,PCin,End◆條件轉移指令BRN的情況

上述控制序列中第4步應改為:

IfN=0thenEnd;N為符號位

IfN=1thenPCout,Yin◆

無條件轉移(相對)指令BR的控制序列返回248.2控制器的功能與設計指令周期、機器周期、時鐘周期指令周期:執行一條指令所需要的時間稱為指令周期,一般包括三個子周期。取指令周期:在指令周期開始之時,根據PC值將指令從存儲器中取出放進IR中。間址周期:從存儲器取出操作數,受操作數數目,尋址方式影響,如果無需從存儲器讀取操作數,則無此子周期。執行周期:根據操作碼完成指令的執行。258.2控制器的功能與設計指令周期、機器周期、時鐘周期典型指令的指令周期非訪存指令:只有取指的時候才訪存,數據無需訪存。直接訪存指令:除了取指外,至少還要為一個操作數的獲得再訪存一遍,直接訪存的操作數越多,訪存次數越多。間接訪存指令:需要兩次訪存才能獲得一個間接尋址的操作數。程序控制指令:根據目的地址的尋址方式決定訪存次數。268.2控制器的功能與設計指令周期、機器周期、時鐘周期機器周期所有指令執行過程中的一個基準時間確定機器周期需考慮的因素每條指令的執行步驟每一步驟所需要的時間基準時間的確定以完成最復雜指令功能的時間為準以訪問一次存儲器的時間為基準若指令字長=存儲字長則取指周期=機器周期278.2控制器的功能與設計指令周期、機器周期、時鐘周期時鐘周期:每兩個相鄰的時鐘脈沖上升(下降)沿之間的時間間隔稱為T狀態,節拍或時鐘周期(ClockCycle)

時鐘周期是控制計算機操作的最小單位時間一個機器周期內可以完成若干微操作,每個微操作需要一定的時間,時鐘周期(節拍)將一個機器周期分成了若干時間段T288.2控制器的功能與設計指令周期、機器周期、時鐘周期、三個周期組成多級時序系統CLK機器周期機器周期機器周期(取指令)(取有效地址)(執行指令)指令周期T0T1T2T3T0T1T2T3T0T1T2T3機器周期機器周期(取指令)(執行指令)指令周期T0T1T2T3T0T1T2

節拍(狀態)

節拍(狀態)298.2控制器的功能與設計時序信號的控制方式同步控制方式指令執行過程中每個操作的完成,都由確定的具有基準時標的時序信號來控制;設計簡單,實現容易;影響簡單指令執行的速度。308.2控制器的功能與設計時序信號的控制方式同步控制方式采用定長的機器周期(統一節拍)以最長的微操作序列和最繁的微操作作為標準(機器周期內節拍數相等)CLK機器周期機器周期機器周期(取指令)(取有效地址)(執行指令)指令周期T0T1T2T3T0T1T2T3T0T1T2T3318.2控制器的功能與設計時序信號的控制方式同步控制方式采用不定長機器周期(分散節拍)按照每一個機器周期的實際需求來安排節拍數;機器周期內節拍數不等機器周期機器周期(取指令)(執行指令)指令周期T0T1T2T3T0T1T2

節拍(狀態)328.2控制器的功能與設計時序信號的控制方式同步控制方式延長節拍選取能滿足大多數機器周期的要求的節拍數為基本節拍。對于復雜機器周期,若基本節拍無法完成周期內的所有操作,則可以延長一到兩個節拍機器周期機器周期(取指令)(執行指令)T0T1T2T3T0T1T2T3TT延長

節拍(狀態)338.2控制器的功能與設計時序信號的控制方式異步控制方式按每條指令、每個操作的需要而占用時間的一種控制方式;沒有集中統一的時序信號形成和控制部件;各操作之間是用“結束”或“就緒”—“起始”的應答方式銜接起來的;機器效率高;但實現起來非常復雜。348.2控制器的功能與設計時序信號的控制方式聯合控制方式同步和異步控制方式的結合實行部分統一、部分區別對待的方式;在功能部件內部基本采用同步控制方式;在功能部件之間采用異步控制方式,如CPU和主存、外設等交換數據時。358.2控制器的功能與設計控制器的功能與種類控制器的功能CPU的控制流程控制器完成的基本任務排序:根據指令流執行順序,控制器以一定的時序安排相應的微操作序列。執行:控制器通過發出各種微操作信號使得指令得以完成。程序執行完了嗎?取出指令啟動分析指令執行指令是否有中斷請求?轉中斷處理程序返回否是是否等待368.2控制器的功能與設計控制器的功能與種類控制器的組成啟停控制線操作控制信號形成部件時序信號產生部件指令譯碼器指令寄存器程序計數器脈沖源狀態寄存器通用寄存器ALU

總線控制邏輯中斷機構+"1"轉移地址地址總線數據總線控制總線378.2控制器的功能與設計控制器的功能與種類控制器的組成指令部件程序計數器PC指令寄存器IR指令譯碼器ID程序狀態和標志寄存器PSW時序部件脈沖源啟停控制線路時序信號產生部件388.2控制器的功能與設計控制器的功能與種類控制器的組成操作控制信號形成部件綜合指令譯碼信息、時序信號和被控部件反饋的狀態條件信號,產生指令執行時所需的各種操作控制信號。中斷控制邏輯中斷控制邏輯是用來控制中斷處理的硬件邏輯,實現對異常情況和某些外設請求的處理??偩€控制邏輯實現對總線數據傳輸的調度和控制。398.2控制器的功能與設計控制器的功能與種類控制器按結構分類硬布線方式實現控制器本質上是一個組合邏輯電路,因此也稱為組合邏輯控制器。它將輸入的邏輯信號經過復雜的編碼器轉換成一組輸出邏輯信號,即微操作控制信號。有組合邏輯控制器和PLA控制器兩種。

微程序方式實現把機器指令的每一操作控制步編成一條微指令。當執行機器指令時,只要從控制存儲器中順序取出這些微指令,即可按所要求的次序產生相應的操作控制信號微程序存儲器(控制存儲器):存放計算機指令系統所對應的所有微程序的一個專門存儲器。408.2控制器的功能與設計硬布線控制與微程序控制的比較實現硬布線控制器由邏輯門組合實現微程序控制器:由控制存儲器和存放當前正在執行的微指令的寄存器直接控制下實現的,性能微程序控制器電路較規整,易增加或修改,在CISC中廣泛使用。在相同的半導體工藝條件下,微程序控制比硬布線控制的速度低,在RISC中一般用硬布線控制。418.2控制器的功能與設計硬布線實現的控制器組合邏輯控制器組合邏輯控制部件:基于時鐘信號CLK驅動的計數器來控制每個控制步。操作控制信號的產生由下列因素確定:控制步計數器的內容(時序信號);指令寄存器的內容;條件碼和其它狀態標志的內容。狀態標志是指CPU中各部分狀態以及連到各控制部件的信號,如MFC信號等。42

簡化的組合邏輯控制器

43◆

Zin信號的邏輯:(圖1是其實現電路)Zin=T1+T6·ADD+T5·BR+T5·N·BRN…◆

End控制信號的邏輯:(圖2是其實現電路)

End=T7·ADD+T6·BR+(T6·N+T4·N)·BRN+…圖1Zin信號的產生圖2End信號的產生轉圖448.2控制器的功能與設計硬布線實現的控制器PLA控制器可編程陣列(PLA)產生指令執行操作控制信號圖3在一個VLSI芯片(PLA)上實現控制信號序列45◆一個簡單的PLA模型

PLA模型

468.2控制器的功能與設計微程序控制器Wilkes提出的微程序控制器設計方案減少了控制器的復雜性和非標準化程度,把純硬件的用量限制在狹小范圍內。主要缺點:它要比相同或相近半導體技術的硬布線式控制器(如PLA方式)慢一些?;舅枷氚褭C器指令的每一操作控制步編成一條微指令。當執行機器指令時,只要從控制存儲器中順序取出這些微指令,即可按所要求的次序產生相應的操作控制信號。微程序存儲器(控制存儲器)存放計算機指令系統所對應的所有微程序的一個專門存儲器。47微程序控制器原理框圖488.2控制器的功能與設計微程序控制器基本概念微操作:一條指令的功能是通過執行一系列操作控制步完成的;這些控制步中的基本操作稱為微操作。微命令:微操作的控制信號,如PCin,Zout等,而微操作是微命令的操作內容。微指令:可同時執行的一組微命令組成一條微指令,完成一個基本運算或傳送功能。微程序:完成指定任務的微指令序列稱為微程序;一條機器指令其功能可由一段微程序解釋完成。對應的例子

49指令AddR1,(R3)的執行控制序列對應的控制步

508.2控制器的功能與設計微程序控制器微指令控制器組成微程序控制器的基本組織51微程序控制器微程序控制器工作流程不斷地執行取指令的微程序和執行相應功能指令的微程序。8.2控制器的功能與設計528.2控制器的功能與設計微程序控制器微指令的格式與編碼格式:水平型微指令和垂直型微指令水平型微指令:一次能定義并執行多個并行操作微命令的微指令,叫做水平型微指令。

能最大限度地表示微操作的并行性;使用較長的代碼;適用于要求較高速度的場合;水平型微指令的碼空間利用率較低,編制最佳水平微程序難度較大??刂谱侄闻袛鄿y試字段下一地址字段538.2控制器的功能與設計微程序控制微指令的格式與編碼垂直微指令:微指令中設置微操作碼字段,采用微操作碼編譯法,由微操作碼規定微指令的功能,稱為垂直型微指令。

采用短格式,一條微指令只能控制一、二個微操作;用地址碼來指定微操作數所在的寄存器地址或微指令轉移地址。編寫垂直微程序的方法和傳統的程序設計方法更為接近;垂直型微指令面向算法描述而水平型微指令面向處理機內部控制邏輯的描述。548.2控制器的功能與設計微程序控制微指令的格式與編碼水平型微指令與垂直微指令比較水平型微指令并行操作能力強,效率高,靈活性強,垂直型微指令則較差。水平型微指令執行一條指令的時間短,垂直型微指令執行時間長。由水平型微指令解釋指令的微程序,有微指令字較長而微程序短的特點。垂直型微指令則相反。水平型微指令用戶難以掌握,而垂直型微指令與指令比較相似,相對來說,比較容易掌握。558.2控制器的功能與設計微程序控制水平微指令編碼方法直接表示法(不編碼)在微指令的微命令字段中,每個二進制位表示一個微命令,為“1”表示該控制信號有效。這種方法直觀、不必譯碼、控制電路簡單、速度快;通常微命令的個數很多,使得微指令字長多達幾百位,實現上非常困難;計算機一般不采用直接表示法。56▲控制信號(微命令)列表57▲直接表示法微指令格式(ADDR3,R2,x(R1))▲加法指令的微指令編碼PC→AB,PC+1,DB→IR,READimm→ALU,rs1→GR,(rs1)→ALU,ADD,ALU→ARDB→DR,AR→AB,ADS,READrs2→GR,(rs2)→ALU,DR→ALU,ADD,ALU→GR588.2控制器的功能與設計微程序控制水平微指令編碼方法分段直接編碼法微指令中相容的微命令分配在不同字段;微指令中相斥的微命令組合在一起,編成一個字段,經過譯碼發出相應控制信號;它為多數微程序控制的計算機所采用。每一字段只能有一個微操作信號有效59圖6.19608.2控制器的功能與設計微程序控制水平微指令編碼方法分段間接編碼法某一小字段可以表示多個微命令組,到底代表哪一組微命令,則由另一小字段的二進制碼確定。兩級譯碼618.2控制器的功能與設計微程序控制微指令地址生成法(微指令排序)由硬件產生微程序入口地址:由指令寄存器IR確定微程序的開始地址中斷周期由硬件產生中斷周期微程序首地址計數器法(增量方式)按順序執行微指令,由μPC負責生成下一微指令的地址(μPC+1→μPC);機器指令操作碼PLA翻譯法將機器指令的操作碼通過PLA翻譯成對應的微程序入口地址,這時微指令可寫為:μPC←(PLA)。628.2控制器的功能與設計微程序控制微指令地址生成法(微指令排序)轉移微指令指定微程序的轉移由專門的“轉移微指令”來實現,通過微地址發生器以及相應的條件碼和標志,生成轉移地址送μPC;當存在著較大量的轉移微指令時,這將嚴重影響計算機的工作速度。638.2控制器的功能與設計微程序控制微指令地址生成法下地址字段法在微指令中設置一個專門的地址字段用以指出下一條微指令的地址;優點是消除了專門的轉移微指令,而且在給微指令分配地址時簡直沒有什么限制;缺點是增加了微指令的長度,有時還會對控制存儲器的設計帶來影響。648.2控制器的功能與設計微程序設計微指令執行方式微指令的串行執行658.2控制器的功能與設計微程序設計微指令執行方式微指令的并行執行668.2控制器的功能與設計微程序設計毫微程序設計(二級微程序設計)目的是增加微程序的通用性,使微程序便于修改,減少存儲空間。一級用垂直微程序,二級采用水平微程序垂直微指令寄存器水平微指令寄存器微命令控制存儲器1(微程序)控制存儲器2(毫微程序)CMAR-1CMAR-2+1轉移地址及起始地址CMAR:控制存儲器的地址寄存器678.2控制器的功能與設計動態微程序的設計靜態微程序設計:實現指令系統的微程序固定不變動態微程序設計:使計算機的指令系統按需要改變,采用這種技術的機器能更靈活、更有效地適應不同的應用場合,而無須改變或更換硬件利用部分未定義的擴充操作碼,用戶可自定義指令;將編寫好所定義指令的微程序寫入控制存儲器(WCS);成為指令系統的一部分688.3流水線處理器流水線技術:將功能部件分離、執行時間重疊的一種技術,它可以在增加盡可能少的硬件設備情況下有效地提高CPU性能。指令流水:將指令執行的各個階段(如取指階段與執行階段)重疊執行的技術稱為指令流水。操作流水:在諸如ALU,浮點運算部件等部件中如果采用流水技術,稱為操作流水。698.3流水線處理器基本概念時間E3F1E1F2E2F3I1I2I3(a)順序執行存儲緩沖器B1取指令部件執行部件(b)硬件組織時鐘周期1234F1E1F2E2F3E3I1I2I3(c)流水線執行指令708.3流水線處理器一個五段(級)指令流水分析五個階段S1,取指令(IF):由cache或主存取指令;S2,指令譯碼(ID):生成指令將要完成的操作;S3,取操作數(OF):確定存儲器操作數地址,讀取存儲器操作數和寄存器操作數;S4,執行(EX):對操作數完成指定操作;S5,寫回(WB):修改目標操作數。后一指令的第i功能步與前一指令的第i+1功能步同時進行。718.3流水線處理器一個五段(級)指令流水分析上圖中,完成4條指令的執行只用了8個時鐘周期;而非流水線的順序處理則需20個時鐘周期。IFIDOFEXWBB1B2B3B4IFWBEXOFID指令I1I4I2I328176543時鐘周期IFWBEXOFIDIFWBEXOFIDIFWBEXOFID728.3流水線處理器流水線中的相關問題及解決結構相關:指令在重疊執行的時候由于硬件資源不能滿足重疊執行的要求,而產生的一種結構上的相關,如訪存沖突。

738.3流水線處理器流水線中的相關問題及解決結構相關解決方法:阻塞法資源重復法使用哈佛結構存儲體,代碼與數據分開存放使用多體交叉存儲器,使兩條相鄰指令的操作數存放在不同的存儲體內采用指令預取技術提前將指令取出并放入指令隊列中;指令發射部件將隊列頭上的指令發送到空閑的執行部件去執行適用于訪存周期短的情況748.3流水線處理器流水線中的相關問題及解決數據相關:某條指令的操作數依賴前一條或前幾條指令的運行結果,這就是數據相關。寫后讀相關(RAW)

addi$1,$2,10;$1=$2+10

sub$5,$1,$4;$5=$1-$4解決方法阻塞(后推法)定向轉發(向前數據通路法)亂序758.3流水線處理器

定向技術消除RAW相關768.3流水線處理器

用亂序解決寫后讀(RAW)相關從三種解決方案看,不同硬件結構對軟件設計有什么啟示?778.3流水線處理器流水線中的相關問題及解決數據相關寫后寫相關(WAW)

addi$1,$2,$4;$1=$2+$4

sub$1,$3,10;$1=$3-10在按序執行的單流水中不會有問題。讀后寫相關(WAR)

addi$2,$1,$4;$2=$1+$4

sub$1,$3,10;$1=$3-10在按序執行的單流水中不會有問題。788.3流水線處理器流水線中的相關問題及解決控制相關:當程序執行到條件分支指令的時候,會出現與轉移相關的問題

解決方法阻塞798.3流水線處理器流水線中的相關問題及解決控制相關:解決方法分支預測靜態預測:編譯器來完成,預測部分代碼放在轉移指令中,指令的操作碼字段指明轉移被預測為發生還是不發生。動態預測:用硬件記錄上次轉移預測的結果,并以此為依據來預測下次轉移是否會發生?,F代計算機經常采用一種轉移目標緩沖器BTB來保存更多的信息以提高預測的準確度和程序執行的性能。顯然,同樣的轉移指令在不同的場合可能有不同的預測結果。808.3流水線處理器流水線中的相關問題及解決控制相關:解決方法延遲槽法(a)原始程序段LOOP:SLR1;R1左移1位

DecR2;R2←(R2-1)BNZLOOP;不為零,轉移NEXT:AddR1+R3(b)指令重排序后LOOP:DecR2BNZLOOPSLR1NEXT:AddR1+R3818.4多發射技術流水線中的多發射技術超標量技術超流水線技術超長指令字技術828.4多發射技術超標量概述超標量處理器是指在處理器中安排多個指令執行部件,多條指令可以被同時啟動和獨立執行有效提高指令級并行性在超標量處理器中配備了多個功能部件和指令譯碼電路,還有多個寄存器端口和總線,以便同時執行多條指令。在超標量流水線中,并行執行的流水線條數稱為超標度。編譯程序如何安排哪些指令可以同時執行(指令配對)對于充分發揮超標量結構的優勢非常重要。838.4多發射技術超標量概述超標量處理器實際上是以增加硬件為代價來換取對機器性能的提高,即以空間換取時間。

IFIDOFEXWB超標度為3的五段超標量處理器IFIDOFEXWBWBEXOFIDIFI1I2I3I4I5I6I7I8I9IFIDOFEXWBIFIDOFEXWBIFIDOFEXWBIFIDOFEXWBIFIDOFEXWBIFIDOFEXWB848.4多發射技術指令發射策略指令發射是指啟動指令執行處理器功能的過程;發射指令所采用的協議或規則稱為指令發射策略。本質就是處理器試圖在當前執行點前面查找能進入流水線并執行的指令。指令發射策略依賴于指令的排序,有三類排序取指令順序;執行指令順序;寄存器和存儲器位置改變的順序。指令發射策略需要通過更改排序,即對流水線的調度來提高流水線的利用率858.4多發射技術指令發射策略下述例子的條件超標度為2,四段流水線,除了執行部件有3個,其他各段的資源都是2個I1執行階段要兩個時鐘周期,I3和I4執行階段需要同一個功能部件I5的執行要等待I4的結果,I5和I6執行階段需要同一個功能部件868.4多發射技術指令發射策略按序發射按序完成嚴格地按能實現順序執行的順序發射指令,并以同樣順序寫結果為保證按序發射,當指令在某些流水段超過一個時鐘周期時或產生功能部件沖突時,必須停止指令發射。

878.4多發射技術指令發射策略按序發射無序完成

采用無序完成,可最大程度地發揮各個功能部件的并行性。此時,指令發射只受結構相關、數據相關或控制相關影響而停滯。

888.4多發射技術指令發射策略無序發射無序完成

后續指令中可能存在與流水線中的指令無沖突的指令,它們可被提前引入流水線中;稱無序發射。

898.4多發射技術寄存器重命名當采用無序發射、無序完成策略時,會產生輸出相關性和反相關性。輸出相關性是指兩條指令先后改寫同一個結果,但在它們之間有別的指令讀取第一次改寫的結果;則后一條寫指令不能在前一條寫指令前完成(寫后寫問題)。反相關性是指兩條指令先后改寫同一個結果,但在它們之間有別的指令讀取第一次改寫的結果,則在該條指令讀出操作數之前,后一條指令不能完成(讀后寫問題)。908.4多發射技術寄存器重命名采用無序技術時每個執行點上寄存器值可能不再反映被程序流指定的值的順序的情況。寄存器重命名技術是采用資源復制來解決寄存器輸出相關和反相關的方案。下面的程序如果在I3中沒有重命名,則在I1和I2發射之前,I3不能發射。

I1:R1:=R1opR2→R1b

:=R1aopR2a

I2:R3:=R1+1→R3b

:=R1b+1I3:R1:=R2+2→R1c

:=R2a+2I4:R4:=R1opR3→R4b

:=R1copR3b918.4多發射技術超流水線技術把流水段進一步細分,使各段的功能部件在每個時鐘周期內被使用多次,這樣,在一個時鐘周期內多條指令流入流水線,即在一個基本時鐘周期內分時發射多條指令。超流水線處理器對硬件速度要求較高,以時間換取空間。流水線速度是原來速度的3倍IFIDEXWR0

1

2

345

67

8

9

10111213時鐘周期指令序列928.4多發射技術超長指令字技術(VLIW)VLIW中編譯器經過優化策略,將多條能并行執行的指令合并成一條具有多個操作碼的超長指令。VLIW相對于超標量具有更高的并行能力,

溫馨提示

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

評論

0/150

提交評論