第8章 中央處理器_第1頁
第8章 中央處理器_第2頁
第8章 中央處理器_第3頁
第8章 中央處理器_第4頁
第8章 中央處理器_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1第8章

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

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

R2(R1)

t1:R1out,

MARint2:Readt3:WMFC;等待MFC信號(hào)t4:MDRout,R2in138.1CPU的結(jié)構(gòu)與功能CPU基本功能存儲(chǔ)器寫主存地址裝入MAR,數(shù)據(jù)字節(jié)裝入MDR,然后向存儲(chǔ)器發(fā)一個(gè)“寫”信號(hào)。

例:把一個(gè)字寫入主存,數(shù)據(jù)字放在寄存器R2中,主存單元地址放在R1中

t1:R1out,MARint2:R2out,MDRint3:Writet4:WMFC148.1CPU的結(jié)構(gòu)與功能CPU基本功能通用寄存器之間傳送數(shù)據(jù)

例:MOVR4,R1R1out,R4in進(jìn)行算術(shù)和邏輯運(yùn)算并保存結(jié)果至寄存器或存儲(chǔ)器

例:ADDR3,R1,R2

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

t2:R2out,ADD,Zin

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

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

AddR1,(R3)◆執(zhí)行這條指令需要下列動(dòng)作:(1)取指令;(2)取第一個(gè)操作數(shù)(由R3指出的存儲(chǔ)單元的內(nèi)容);(3)完成加法運(yùn)算;(R1+(R3))(4)結(jié)果存入R1中。8.1CPU的結(jié)構(gòu)與功能22▲指令A(yù)ddR1,(R3)的執(zhí)行控制序列返回微指令步

動(dòng)作說明

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

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

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

上述控制序列中第4步應(yīng)改為:

IfN=0thenEnd;N為符號(hào)位

IfN=1thenPCout,Yin◆

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

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

節(jié)拍(狀態(tài))

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

節(jié)拍(狀態(tài))328.2控制器的功能與設(shè)計(jì)時(shí)序信號(hào)的控制方式同步控制方式延長(zhǎng)節(jié)拍選取能滿足大多數(shù)機(jī)器周期的要求的節(jié)拍數(shù)為基本節(jié)拍。對(duì)于復(fù)雜機(jī)器周期,若基本節(jié)拍無法完成周期內(nèi)的所有操作,則可以延長(zhǎng)一到兩個(gè)節(jié)拍機(jī)器周期機(jī)器周期(取指令)(執(zhí)行指令)T0T1T2T3T0T1T2T3TT延長(zhǎng)

節(jié)拍(狀態(tài))338.2控制器的功能與設(shè)計(jì)時(shí)序信號(hào)的控制方式異步控制方式按每條指令、每個(gè)操作的需要而占用時(shí)間的一種控制方式;沒有集中統(tǒng)一的時(shí)序信號(hào)形成和控制部件;各操作之間是用“結(jié)束”或“就緒”—“起始”的應(yīng)答方式銜接起來的;機(jī)器效率高;但實(shí)現(xiàn)起來非常復(fù)雜。348.2控制器的功能與設(shè)計(jì)時(shí)序信號(hào)的控制方式聯(lián)合控制方式同步和異步控制方式的結(jié)合實(shí)行部分統(tǒng)一、部分區(qū)別對(duì)待的方式;在功能部件內(nèi)部基本采用同步控制方式;在功能部件之間采用異步控制方式,如CPU和主存、外設(shè)等交換數(shù)據(jù)時(shí)。358.2控制器的功能與設(shè)計(jì)控制器的功能與種類控制器的功能CPU的控制流程控制器完成的基本任務(wù)排序:根據(jù)指令流執(zhí)行順序,控制器以一定的時(shí)序安排相應(yīng)的微操作序列。執(zhí)行:控制器通過發(fā)出各種微操作信號(hào)使得指令得以完成。程序執(zhí)行完了嗎?取出指令啟動(dòng)分析指令執(zhí)行指令是否有中斷請(qǐng)求?轉(zhuǎn)中斷處理程序返回否是是否等待368.2控制器的功能與設(shè)計(jì)控制器的功能與種類控制器的組成啟??刂凭€操作控制信號(hào)形成部件時(shí)序信號(hào)產(chǎn)生部件指令譯碼器指令寄存器程序計(jì)數(shù)器脈沖源狀態(tài)寄存器通用寄存器ALU

總線控制邏輯中斷機(jī)構(gòu)+"1"轉(zhuǎn)移地址地址總線數(shù)據(jù)總線控制總線378.2控制器的功能與設(shè)計(jì)控制器的功能與種類控制器的組成指令部件程序計(jì)數(shù)器PC指令寄存器IR指令譯碼器ID程序狀態(tài)和標(biāo)志寄存器PSW時(shí)序部件脈沖源啟停控制線路時(shí)序信號(hào)產(chǎn)生部件388.2控制器的功能與設(shè)計(jì)控制器的功能與種類控制器的組成操作控制信號(hào)形成部件綜合指令譯碼信息、時(shí)序信號(hào)和被控部件反饋的狀態(tài)條件信號(hào),產(chǎn)生指令執(zhí)行時(shí)所需的各種操作控制信號(hào)。中斷控制邏輯中斷控制邏輯是用來控制中斷處理的硬件邏輯,實(shí)現(xiàn)對(duì)異常情況和某些外設(shè)請(qǐng)求的處理??偩€控制邏輯實(shí)現(xiàn)對(duì)總線數(shù)據(jù)傳輸?shù)恼{(diào)度和控制。398.2控制器的功能與設(shè)計(jì)控制器的功能與種類控制器按結(jié)構(gòu)分類硬布線方式實(shí)現(xiàn)控制器本質(zhì)上是一個(gè)組合邏輯電路,因此也稱為組合邏輯控制器。它將輸入的邏輯信號(hào)經(jīng)過復(fù)雜的編碼器轉(zhuǎn)換成一組輸出邏輯信號(hào),即微操作控制信號(hào)。有組合邏輯控制器和PLA控制器兩種。

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

簡(jiǎn)化的組合邏輯控制器

43◆

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

End控制信號(hào)的邏輯:(圖2是其實(shí)現(xiàn)電路)

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

PLA模型

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

49指令A(yù)ddR1,(R3)的執(zhí)行控制序列對(duì)應(yīng)的控制步

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

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

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

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

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

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

定向技術(shù)消除RAW相關(guān)768.3流水線處理器

用亂序解決寫后讀(RAW)相關(guān)從三種解決方案看,不同硬件結(jié)構(gòu)對(duì)軟件設(shè)計(jì)有什么啟示?778.3流水線處理器流水線中的相關(guān)問題及解決數(shù)據(jù)相關(guān)寫后寫相關(guān)(WAW)

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

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

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

sub$1,$3,10;$1=$3-10在按序執(zhí)行的單流水中不會(huì)有問題。788.3流水線處理器流水線中的相關(guān)問題及解決控制相關(guān):當(dāng)程序執(zhí)行到條件分支指令的時(shí)候,會(huì)出現(xiàn)與轉(zhuǎn)移相關(guān)的問題

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

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

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

878.4多發(fā)射技術(shù)指令發(fā)射策略按序發(fā)射無序完成

采用無序完成,可最大程度地發(fā)揮各個(gè)功能部件的并行性。此時(shí),指令發(fā)射只受結(jié)構(gòu)相關(guān)、數(shù)據(jù)相關(guān)或控制相關(guān)影響而停滯。

888.4多發(fā)射技術(shù)指令發(fā)射策略無序發(fā)射無序完成

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

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

I1:R1:=R1opR2→R1b

:=R1aopR2a

I2:R3:=R1+1→R3b

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

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

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

1

2

345

67

8

9

10111213時(shí)鐘周期指令序列928.4多發(fā)射技術(shù)超長(zhǎng)指令字技術(shù)(VLIW)VLIW中編譯器經(jīng)過優(yōu)化策略,將多條能并行執(zhí)行的指令合并成一條具有多個(gè)操作碼的超長(zhǎng)指令。VLIW相對(duì)于超標(biāo)量具有更高的并行能力,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論