版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第六章 CPU設(shè)計
6.1CPU設(shè)計基本步驟
6.2組合邏輯控制器設(shè)計
6.3微程序控制器設(shè)計
6.4流水線技術(shù)
6.5小結(jié)
6.1CPU設(shè)計基本步驟
CPU作為計算機(jī)系統(tǒng)的一部分,它的設(shè)計過程不應(yīng)當(dāng)獨(dú)立進(jìn)行,CPU的設(shè)計只是整個系統(tǒng)設(shè)計的一部分。CPU的功能是為系統(tǒng)的整體目標(biāo)服務(wù),它的組成與結(jié)構(gòu)受系統(tǒng)的應(yīng)用目標(biāo)限制。第一步是確定CPU的應(yīng)用場合(目標(biāo))。此步驟的關(guān)鍵是確定CPU所應(yīng)具有的處理能力(功能),應(yīng)保證與應(yīng)用需求一致。設(shè)計舉例第二步是擬定它將運(yùn)行的程序類型,確定為完成所要求功能需要的指令,從而確定CPU指令集結(jié)構(gòu)(ISA結(jié)構(gòu))。在完成指令集結(jié)構(gòu)設(shè)計之后,根據(jù)指令集結(jié)構(gòu)所確定的內(nèi)容來進(jìn)行設(shè)計CPU的各組成部件,以及用于連接各功能部件的數(shù)據(jù)通路結(jié)構(gòu)。第三步確定CPU指令集中各指令的微操作信號的節(jié)拍安排,以明確CPU(主要是控制器)為完成取指令、指令譯碼和執(zhí)行指令集中的每個指令所必須發(fā)出的微操作信號與指令、時間的關(guān)系。第四步形成微操作信號的邏輯表達(dá)式,該表達(dá)式的條件是指令、時間、狀態(tài)等,而結(jié)果是控制信號。依據(jù)各控制信號的邏輯表達(dá)式,可采用組合邏輯設(shè)計法或微程序設(shè)計法獲得控制器的邏輯電路圖或微程序,并將控制器和其它組合到一起形成CPU。設(shè)計舉例1996年,美國國家航空航天局(NASA)發(fā)射了一艘火星探路者號宇宙飛船,這只宇宙飛船用了7個月的時間航行才著陸到火星。一到達(dá)火星,它就放出了一個漫游機(jī)器人,叫做Sojouener,它用來探索探路者號飛船附近的表層,并且將讀取的數(shù)據(jù)傳回給宇宙飛船。然后探路者號飛船再將這些送回地球。1997年7月4日,探路者號飛船成功地到達(dá)了火星的表面。Sojouener只用了一個80C85微處理器控制整個操作。它運(yùn)行的時鐘速度為2MHz,但是該處理器并不是因?yàn)樗乃俣榷贿x中的。實(shí)際上,正是因?yàn)樗軌驁?zhí)行所需功能,而且因?yàn)檫@一版本的8085微處理器能在遠(yuǎn)離大氣層保護(hù),輻射強(qiáng)烈的環(huán)境中正確地工作。
6.2組合邏輯控制器設(shè)計6.2.1模型機(jī)基本設(shè)計
6.2.2微操作節(jié)拍安排
6.2.3模型機(jī)組合邏輯控制器設(shè)計
指令類型類型硬件描述語言形式匯編形式注釋數(shù)據(jù)傳送類AC:=M(X)LDX將存儲器內(nèi)容讀如到AC中M(X):=ACSTX將AC內(nèi)容送入存儲器中DR:=ACMOVDR,AC將AC內(nèi)容送入到DRAC:=DRMOVAC,DR將DR內(nèi)容送入到AC數(shù)據(jù)運(yùn)算類AC:=AC+DRADD將AC+DR結(jié)果送入ACAC:=AC-DRSUB將AC-DR結(jié)果送入ACAC:=ACandDRAND將AC與DR進(jìn)行“與”運(yùn)算,結(jié)果送入ACAC:=notACNOT將AC的內(nèi)容進(jìn)行“非”運(yùn)算,結(jié)果送入AC程序控制類PC:=M(adr)BRAadr將程序流程轉(zhuǎn)移到adr單元所存內(nèi)容所指位置IfAC=0thenPC:=M(adr)BZadr若AC=0則將程序流程轉(zhuǎn)移到adr單元所存內(nèi)容所指位置指令格式指令采用固定字長方式,同時指令中處理的數(shù)據(jù)長度與指令長度相同,均為32位。指令尋址方式采用直接尋址,數(shù)據(jù)尋址方式采用直接尋址和隱含尋址。程序控制單元用于生成連接數(shù)據(jù)處理單元和程序控制單元、以及在CPU與外部存儲器之間的連接控制信號。操作碼
地址碼03431模型機(jī)部件設(shè)置與數(shù)據(jù)通路結(jié)構(gòu)CPU中寄存器的設(shè)置包括:IR(指令寄存器)用于存儲當(dāng)前正在執(zhí)行指令;AR(存儲器地址寄存器)用于存儲預(yù)訪問單元地址;PC(程序計數(shù)器)用于存儲下條指令地址;DR(存儲器數(shù)據(jù)寄存器)用于存儲與存儲器進(jìn)行交互的數(shù)據(jù);AC(累加器)根據(jù)指令系統(tǒng)結(jié)構(gòu)可知寄存器組中可見寄存器為DR和AC,其余均為用于控制的不可見寄存器,標(biāo)志寄存器在結(jié)構(gòu)圖中未標(biāo)識。模型機(jī)的數(shù)據(jù)通路結(jié)構(gòu)為單組內(nèi)總線、分離寄存器結(jié)構(gòu)。模型機(jī)結(jié)構(gòu)框圖6.2.2微操作節(jié)拍安排節(jié)拍安排的目的:列出各條指令執(zhí)行所需的微操作信號以及各操作信號與時序信號之間的關(guān)系。
為提高指令的執(zhí)行效率,應(yīng)進(jìn)行微操作的節(jié)拍順序調(diào)整,微操作的節(jié)拍安排因遵循以下原則:微操作之間若次序有先后,安排時應(yīng)保持其先后次序不變。若微操作使用不同的部件,可使其安排在同一節(jié)拍內(nèi)。若不同微操作所占用的時間均不長,可以將它們安排在同一節(jié)拍的進(jìn)行,且保持其先后順序不變。模型機(jī)操作流程圖模型機(jī)采用將指令周期劃分成:取指工作周期和執(zhí)行工作周期,在取指工作周期包括3個節(jié)拍,而執(zhí)行周期根據(jù)指令復(fù)雜程度不同包含1–3個節(jié)拍。根據(jù)各條指令的功能和節(jié)拍安排原則,可形成下面模型機(jī)的操作流程圖。模型機(jī)控制點(diǎn)
控制點(diǎn)的作用:用于功能的選擇或數(shù)據(jù)流動的控制。數(shù)據(jù)的正確流動,確保指令功能的實(shí)現(xiàn)。控制點(diǎn)與數(shù)據(jù)流控制的關(guān)系功能選擇用于對運(yùn)算器(ALU)進(jìn)行控制,實(shí)現(xiàn)控制ALU完成不同的數(shù)據(jù)處理。模型機(jī)功能選擇信號:C2,C9,C10,C11,C12。存儲控制用于控制外存儲器。模型機(jī)存儲控制信號:C1,C8,C13C14。數(shù)據(jù)通路控制用于控制數(shù)據(jù)通路中各控制點(diǎn)的開放和關(guān)閉狀態(tài)的切換,實(shí)現(xiàn)數(shù)據(jù)、地址、指令等信息在CPU內(nèi)部各個數(shù)據(jù)和控制寄存器之間進(jìn)行傳遞。模型機(jī)數(shù)據(jù)通路控制信號:C0
,C3
,C4
,C5
,C6
,C7。
控制信號功能控制信號功能控制信號功能C0AR:=PCC5AR:=DR(adr)C10AC:=AC-DRC1DR:=M(AR)C6DR:=ACC11AC:=ACandDRC2PC:=PC+1C7AC:=DRC12AC:=notACC3PC:=DR(adr)C8M(AR):=DRC13IO/MRC4IR:=DR(OP)C9AC:=AC+DRC14IO/MW6.2.3模型機(jī)組合邏輯控制器設(shè)計組合邏輯控制器基本結(jié)構(gòu)
模型機(jī)的操作時間表
組合邏輯控制器設(shè)計
組合邏輯控制器的優(yōu)缺點(diǎn)
組合邏輯控制器基本結(jié)構(gòu)組合邏輯控制器中的關(guān)鍵部分是組合邏輯電路,它將時序信號、指令譯碼結(jié)果、狀態(tài)/條件等信息(信號)作為輸入,通過組合邏輯電路的處理,形成相對應(yīng)的控制信號,從而完成CPU的指令控制、操作控制和時間控制功能。
模型機(jī)的操作時間表根據(jù)模型機(jī)指令操作流程圖、指令功能、微操作安排原則和控制信號的設(shè)置情況,形成的操作時間表的作用是列出各指令所需的操作信號與節(jié)拍信號之間的關(guān)系。工作周期標(biāo)志節(jié)拍狀態(tài)條件控制信號LDXSTXMOVDR,ACMOVAC,DRADDSUBANDNOTBRAadrBZadrFE(取指)T0
C01111111111C131111111111T1
C11111111111T2
C21111111111C411111111111→EX1111111111EX(執(zhí)行)T0
C511
C131
C14
1
T1
C11
C6
1
T2
C71
1
C8
1
C6
1
C9
1
C10
1
C11
1
C12
1
C3
1
AC=0C3
1組合邏輯控制器設(shè)計產(chǎn)生C6信號的邏輯圖
根據(jù)操作時間表可以生成各控制信號的邏輯表達(dá)式如下:C0=FE?T0C1=FE?T1+EX?T1?LDC2=FE?T2
C3=EX?T2?(BRA+BZ?(AC=0))C4=FE?T2
C5=EX?T0?(LD+ST)C6=EX?T1?ST+EX?T2?MOV1
C7=EX?T2?(LD+MOV2)C8=EX?T2?ST
C9=EX?T2?ADDC10=EX?T2?SUB
C11=EX?T2?ANDC12=EX?T2?NOT
C13=FE.T0+EX?T0?LDC14=EX?T0?ST在上述的邏輯表達(dá)式中,MOV1表示MOVDR,AC指令,MOV2表示MOVAC,DR指令。
組合邏輯控制器的優(yōu)缺點(diǎn)在組合邏輯控制器的設(shè)計過程發(fā)現(xiàn),組合邏輯控制器控制有以下兩個缺點(diǎn):組合邏輯控制器是由許多門電路產(chǎn)生控制信號,而各控制信號所需的門電路邏輯很不規(guī)整,因此組合邏輯控制器的核心部分比較繁瑣、凌亂,設(shè)計效率較低,檢查調(diào)試比較困難。改進(jìn)方法是將程序設(shè)計技術(shù)引入到CPU機(jī)器的構(gòu)成級,使設(shè)計規(guī)整化。組合邏輯控制因其使用邏輯門電路生成控制信號,設(shè)計結(jié)果被固定在印刷電路板上,使其不易修改和擴(kuò)展。而且,在各個控制信號邏輯表達(dá)式中往往包含許多條件,其中一些邏輯變量可能在許多表達(dá)式公用的,修改一處就會牽動其他,因而很難修改。改進(jìn)的方向是將程序存儲思想引入CPU設(shè)計,取代用組合邏輯電路生成控制信號,而是將控制信號以數(shù)字代碼的形式直接存入一個存儲器中,只要修改所存儲的代碼即控制信號信息,就可以完成修改有關(guān)的功能和執(zhí)行方式。組合邏輯控制器的優(yōu)點(diǎn)是運(yùn)行速度較快,因此目前應(yīng)用于高速計算機(jī)和RISC處理器和巨型機(jī)中,以及規(guī)模較小的計算機(jī)中。6.3微程序控制器設(shè)計6.3.1微程序基本原理6.3.2微程序控制器基本結(jié)構(gòu)
6.3.3微指令格式設(shè)計
6.3.4模型機(jī)微程序設(shè)計
6.3.5實(shí)例:基于微代碼的CPU:奔騰微處理器
6.3.1微程序基本原理指令的執(zhí)行是由一系列有序信號控制實(shí)現(xiàn)地,借鑒程序存儲思想英國劍橋大學(xué)教授威爾克斯在1951年提出微程序控制設(shè)計思想,作為一種控制單元設(shè)計方法,其核心思想可以歸納成一下幾點(diǎn):每一條機(jī)器指令的功能是通過微程序?qū)崿F(xiàn)的;微程序是作為一個實(shí)時指令解釋器,即每一條機(jī)器指令對應(yīng)一個由若干條微指令組成的微程序;微程序中的每一條微指令與一組微操作對應(yīng)(控制信號所對應(yīng)的動作);微指令的序列反映了為完成一條機(jī)器指令所應(yīng)發(fā)出控制信號的先后次序;微指令也采用二進(jìn)制碼的形式;微程序的集合對應(yīng)著一個特定的指令集或機(jī)器語言。6.3.1微程序基本原理微程序控制器的設(shè)計工作只要集中在以下幾個方面:微指令格式設(shè)計,因?yàn)槲⒅噶畈捎枚M(jìn)制碼的形式,所以必須為微指令擬就格式,以表示每一條微指令所對應(yīng)的微操作。微程序編制,為每一條機(jī)器指令編寫對應(yīng)的微程序,根據(jù)機(jī)器指令所包含的微操作,確定每個微程序中的微指令以及次序,進(jìn)而形成存入微程序控制器的微程序。作為一種設(shè)計活動,微程序的設(shè)計可與匯編語言程序設(shè)計相似??刂七壿嬰娐吩O(shè)計,微程序的執(zhí)行和解釋需要相應(yīng)的控制邏輯電路,以實(shí)現(xiàn)微指令的讀取,微指令地址的形成,微指令流程控制和由微指令形成控制信號。6.3.2微程序控制器基本結(jié)構(gòu)1.控制存儲器用于存儲著與全部機(jī)器指令對應(yīng)的微程序。2.微地址控制邏輯依據(jù)時間、條件、指令和下地址信息等信息,來形成下條微指令地址。3.微地址寄存器的作用與PC(指令計數(shù)器)相同,用于存儲下一條微指令地址。4.微指令寄存器用于存儲由控制存儲器取出的微指令。5.微指令譯碼電路的作用是根據(jù)微指令用于生成控制信號。6.3.3微指令格式設(shè)計由于微指令是二進(jìn)制碼的形式而指令也是二進(jìn)制碼的形式,一個微指令一般也包括兩部分:操作控制字段和下地址控制字段。操作控制字段用于指出有那些控制信號被激活。下地址控制字段用于指出下一條待執(zhí)行微指令在控制存儲器中地址的本身或其計算方式。
微指令格式設(shè)計主要解決以下幾個問題:操作控制編碼方式
微指令類型
下地址控制編碼方式
動態(tài)微程序設(shè)計
微操作同步定時
操作控制編碼方式在操作控制字段一般包括一個或多個操作控制域,每個控制域可控制一個或一組控制信號的生成,根據(jù)控制信號是直接生成于控制域還是譯碼生成控制信號的不同可分為以下幾種形式。直接控制法:操作控制字段的每一位都與一個獨(dú)立控制信號相對應(yīng)。若當(dāng)前微指令的某一位ki=1,則與之對應(yīng)ci控制信號有效,否則ci控制信號無效。分段編碼控制法:在微程序級別,許多微操作是可以并行執(zhí)行。一般采用將微指令的操作控制字段分成k個相互獨(dú)立的控制域,每一個控制域存儲一組微操作,每一種編碼對應(yīng)一個微操作,每一個微操作都可以與其它控制域所存儲的任意一個微操作并行執(zhí)行,但在組內(nèi)的微操作之間是互斥的,不允許在同一時間段內(nèi)發(fā)生或有效。分段間接編碼控制法:在微指令格式里,如果一個字段的含義不只決定本字段編碼,還兼由其他字段決定,則可采用分段間接編碼控制法。此時一個字段兼有兩層或兩層以上的含義。分段間接編碼控制法的示意圖。其它方式:在實(shí)際微指令中操作控制編碼并不是只單獨(dú)采用上述三種編碼方式中的一種,而是將上述三種混合使用,以保證能綜合考慮指令的字長、靈活性和執(zhí)行微程序的速度等方面的要求。分段間接編碼控制法的示意圖微指令類型微指令格式一般分為兩種類型:水平型和垂直型。水平型微指令有如下特點(diǎn):指令字比較長;能表達(dá)較高程度的微操作并行性;微操作控制信號編碼的量比較小。垂直型微指令有如下特點(diǎn):指令字長比較短;表達(dá)微操作并行程度的能力較低;要進(jìn)行比較多的操作控制信號的編碼。垂直型微指令在很大程度上與RISC指令相類似,都盡量減少并行性,而保證單周期執(zhí)行的形式。但是計算機(jī)也經(jīng)常被設(shè)計成與水平型微指令相似的形式,具有較長指令字和更高并行性的形式。下地址控制編碼方式一般情況下后繼微指令的地址有以下幾種給出方式:順序遞增法:將μPC設(shè)置成可實(shí)現(xiàn)自動加1的功能,每當(dāng)完成當(dāng)前指令的執(zhí)行,就以μPC+1后的值為地址在控制存儲器中取下一條微指令。直接給出法:下一條微指令的地址直接取自微指令中的下地址字段。分支轉(zhuǎn)移法:在包含分支轉(zhuǎn)移的微指令中常設(shè)置一個條件選擇子區(qū)域,用于指出哪些判定條件被測試,與此同時轉(zhuǎn)移地址被存儲在下地址字段。當(dāng)轉(zhuǎn)移條件滿足時,將下地址字段的內(nèi)容讀入到μPC中,取下一條微指令,實(shí)現(xiàn)微程序轉(zhuǎn)移。若轉(zhuǎn)移條件不滿足,微程序則順序執(zhí)行。微程序入口地址的形成:每條機(jī)器指令所對應(yīng)的微程序的入口地址(首地址),一般由指令的操作碼所決定。在機(jī)器加電后,第一條微指令的地址一般是由專門的邏輯電路生成,也可以采用由外部直接輸入的形式獲得。動態(tài)微程序設(shè)計通常計算機(jī)的指令系統(tǒng)中指令的類型和數(shù)量是固定,而與其對應(yīng)的微程序也應(yīng)當(dāng)是保持不變的。但是如果采用EPROM作為控制存儲器,設(shè)計者可以通過更改控制存儲器所存儲的微程序,來改變機(jī)器的指令系統(tǒng),這種技術(shù)可以稱為動態(tài)微程序技術(shù)。采用動態(tài)微程序技術(shù)可以根據(jù)需要改變微程序,因此可在一臺機(jī)器上實(shí)現(xiàn)不同類型的微指令,可實(shí)現(xiàn)指令系統(tǒng)級的仿真,但對設(shè)計者的要求較高,未得到廣泛推廣。
微操作同步定時對于微指令的執(zhí)行過程都是基于下面的假設(shè),微指令所發(fā)出的控制信號都是在微指令的執(zhí)行周期發(fā)出的,而控制信號的發(fā)出并未指定時間。一個單時鐘信號起到控制信號的同步作用,而其長度與微指令的指令周期長度相同,此種控制模式稱為單周期。與某個特定操作對應(yīng)的微指令數(shù)目可以通過將微指令周期劃分成幾個連續(xù)更小的時間單位或時鐘周期來減少。一個控制信號可以在某個更小的時間單位里被激活,此種控制模式稱為多周期模式。多周期模式允許一個微指令指定一個微操作序列,但是將在一定程度上增加微指令格式的復(fù)雜程度。微操作同步定時(示例)若一條微指令控制實(shí)現(xiàn)下面的寄存器傳送操作:R:=f(R1,R2)其中R可能是R1或R2,該傳送操作可以被分解到以下四個階段進(jìn)行:階段1:從控制存儲器(CM)中取下條微指令到微指令寄存器。階段2:將寄存器R1和R2內(nèi)容送到處理功能單元f。階段3:將功能單元f生成的結(jié)果存儲到臨時寄存器或鎖存器L中。階段4:將臨時寄存器或鎖存器L中的結(jié)果存儲到目的寄存器中。6.3.4模型機(jī)微程序設(shè)計采用微程序控制器的模型機(jī)設(shè)計關(guān)鍵任務(wù)是編寫與每一條機(jī)器指令先對應(yīng)的微程序。具體步驟是:首先列出機(jī)器指令的全部的微操作以及時間節(jié)拍安排,然后確定微指令格式,最后編寫出每條微指令的二進(jìn)制代碼?;疚⒊绦蚩刂破髟O(shè)計
擴(kuò)充微程序設(shè)計
基本微程序控制器設(shè)計模型機(jī)機(jī)器指令的微操作節(jié)拍安排:機(jī)器指令微操作機(jī)器指令微操作FETCHAR:=PC;DR:=M(AR);PC:=PC+1,IR:=DR(OP);轉(zhuǎn)移到對應(yīng)指令執(zhí)行微子程序;MOV1DR:=AC,轉(zhuǎn)移到取指微子程序;MOV2AC:=DR,轉(zhuǎn)移到取指微子程序;ADDAC:=AC+DR,轉(zhuǎn)移到取指微子程序;SUBAC:=AC-DR,轉(zhuǎn)移到取指微子程序;LDAR:=DR(ADR);DR:=M(AR);AC:=DR,轉(zhuǎn)移到取指微子程序;ANDAC:=AC∧DR,轉(zhuǎn)移到取指微子程序;NOTAC:=.not.AC,轉(zhuǎn)移到取指微子程序;BRAPC:=DR(ADR),轉(zhuǎn)移到取指微子程序;STAR:=DR(ADR);DR:=AC;M(AR):=DR,轉(zhuǎn)移到取指微子程序;BZIfAC=0thenPC:=DR(ADR),轉(zhuǎn)移到取指微子程序;模型機(jī)微指令格式模型機(jī)的微指令格式:條件選擇字段的含義:S0S1含義00增量執(zhí)行01AC=0,轉(zhuǎn)移執(zhí)行10讀入起始地址11無條件轉(zhuǎn)移操作控制字段在模型機(jī)中控制信號的數(shù)目較少,所以采用直接控制法。微指令中操作控制字段的長度是15位。其各位所對應(yīng)的微操作見下表
位標(biāo)志對應(yīng)控制信號位標(biāo)志對應(yīng)控制信號7AR:=PC15M(AR):=DR8DR:=M(AR)16AC:=AC+DR9PC:=PC+117AC:=AC-DR10PC:=DR(adr)18AC:=ACandDR11IR:=DR(OP)19AC:=notAC12AR:=DR(adr)20IO/MR13DR:=AC21IO/MW14AC:=DR
模型機(jī)微程序控制器組成
模型機(jī)基本微程序編制
微程序名稱微指令地址微指令(二進(jìn)制代碼)
下地址操作控制
十進(jìn)制0123456789101112131415161718192021取指0000×××××100000000000010
0100×××××010000000000000
0200×××××001010000000000
0310×××××000000000000000LD0400×××××000001000000010
0500×××××010000000000000
061100000000000010000000ST0700×××××000001000000000
0800×××××000000100000001
091100000000000001000000MOV1101100000000000100000000MOV2111100000000000010000000ADD121100000000000000100000SUB131100000000000000010000AND141100000000000000001000NOT151100000000000000000100BRA161100000000100000000000BZ170111000000100000000000擴(kuò)充微程序設(shè)計可以利用微程序控制器設(shè)計方法實(shí)現(xiàn)機(jī)器指令系統(tǒng)中指令擴(kuò)充。在模型機(jī)的基本運(yùn)算單元不變的情況下,利用在控制存儲器中添加微程序?qū)崿F(xiàn)乘法指令和除法指令,乘除法的算法采用補(bǔ)碼的比較算法和補(bǔ)碼不恢復(fù)余數(shù)除法算法。為完成乘/除運(yùn)算在模型機(jī)中需添加兩個專用寄存器:乘商寄存器(MQ,用于在乘法運(yùn)算中保存乘積,在除法運(yùn)算中保存商)和計數(shù)器(COUNT,實(shí)現(xiàn)運(yùn)算過程中加/減并移位運(yùn)算個數(shù)的計數(shù)功能)。而將數(shù)據(jù)寄存器DR作為運(yùn)算過程中的被乘數(shù)和除數(shù)。擴(kuò)充的模型機(jī)的CPU內(nèi)部結(jié)構(gòu)和控制點(diǎn)擴(kuò)展模型機(jī)控制信號
控制信號功能控制信號功能控制信號功能C0AR:=PCC10AC:=AC-DRC20DR:=MQC1DR:=M(AR)C11AC:=ACandDRC21MQ[0]:=1C2PC:=PC+1C12AC:=notACC22MQ[0]:=0C3PC:=DR(ADR)C13RSHIFTACC23COUNT:=COUNT+1C4IR:=DR(OP)C14LSHIFTACC24μPC:=IRC5AR:=DR(ADR)C15RSHIFTAC,MQC25COUNT:=0C6DR:=ACC16LSHIFTAC,MQC26F:=0C7AC:=DRC17AC:=0C27F:=1C8M(AR):=DRC18AC[n-1]:=FC28FLAGS:=0C9AC:=AC+DRC19MQ:=DR
采用HDL描述補(bǔ)碼的比較乘法算法微程序流程
微地址標(biāo)志微操作BEGINA:=0,COUNT:=0,F:=0TEST1IFMQ[0]=0then轉(zhuǎn)到RSHIFTADDAC:=AC+DR,F:=(DR[n-1]andMQ[0]orFRSHIFTAC[n-1]:=f,AC.MQ:=RSHIFT(AC.MQ),COUNT:=COUNT+1,ifCOUNT≠n-1then轉(zhuǎn)到TEST1TEST2ifMQ[0]=0then轉(zhuǎn)到FETCHSUBTRACTAC:=AC-DR,MQ[0]:=0,轉(zhuǎn)到FETCH擴(kuò)展模型機(jī)的微程序控制器
假設(shè)擴(kuò)展模型機(jī)操作控制字段采用直接控制法,則操作控制字段和條件選擇字段的長度和為32位微指令字長為32位,并設(shè)分支地址字段的長度采用8位以表示完整的控制存儲器地址空間
6.3.5實(shí)例:基于微代碼的CPU:奔騰微處理器
6.4流水線技術(shù)6.4.1指令流水線原理
6.4.2流水線性能
6.4.3流水線中的多發(fā)技術(shù)
6.4.1指令流水線原理
在程序執(zhí)行時,指令的執(zhí)行經(jīng)歷了一系列的處理步驟,這個分步驟的執(zhí)行過程很自然地形成一個流水過程,在一般情況下,指令的執(zhí)行過程包括:取指令;分析指令;取操作數(shù);執(zhí)行指令;保存操作結(jié)果。通常意義來講,指令流水線是一個多功能的、可重配置的流水線,通過充分重疊不同的指令不同執(zhí)行步驟實(shí)現(xiàn)加快計算機(jī)的執(zhí)行速度。指令流水線在通常情況下,對程序員來講是不可見的,而由編譯器和CPU內(nèi)部的程序控制器來自動的進(jìn)行管理。1.流水線結(jié)構(gòu)
上圖是一個具有m個階段的運(yùn)算流水線,在流水線中的第Si階段完成數(shù)據(jù)處理后,將其處理結(jié)果連同其他未處理數(shù)據(jù)一起傳送到第Si+1階段,以進(jìn)行進(jìn)一步的處理,與此同時Si段從Si-1段接收到一個新的數(shù)據(jù)進(jìn)行處理。在整個流水線中共存在m個獨(dú)立的數(shù)據(jù),但它們分別位于流水線的不同的階段,在相鄰的兩個階段之間設(shè)置緩沖寄存器R和其他的同步邏輯,以避免相鄰階段之間的相互影響。
2.多階段流水線
一個m段的指令流水線能夠重疊m條指令的執(zhí)行,使用m個階段的目的就是盡最大可能地提高指令吞吐率。如何決定m的值呢?多段流水線的段數(shù)是由指令執(zhí)行過程可以被有效分解的段數(shù)決定的,而這個段數(shù)是與指令系統(tǒng)的復(fù)雜程度、內(nèi)存的組織形式、CPU內(nèi)部的數(shù)據(jù)通路結(jié)構(gòu)等因素有關(guān)。在實(shí)際應(yīng)用中,流水線的段數(shù)的范圍是3個到十幾個或更多。一個具有4段流水線的CPU圖中所顯示的四個階段(S1——S4)分別執(zhí)行下面功能:IF:將指令緩沖中的當(dāng)前指令取出并進(jìn)行解碼。OL:將操作數(shù)由數(shù)據(jù)緩沖取到寄存器中。EX:使用ALU和寄存器對數(shù)據(jù)進(jìn)行處理。OS:將運(yùn)算結(jié)果由寄存器存儲到數(shù)據(jù)緩沖中。四階段指令流水線的時空圖。
假如每個階段的操作均在一個CPU周期(Tc)內(nèi)完成,此時指令流水線和CPU作為一個整體將以f=1/Tc的時鐘頻率運(yùn)行。在理想情況下,假如忽略分支轉(zhuǎn)移、cache缺失或其他原因的延遲,指令流水線的最大的吞吐率可以達(dá)到每個周期執(zhí)行一條指令,既CPI=1。
6.4.2流水線性能1.流水線性能評價
流水線的性能可以通過指令的吞吐率來度量,吞吐率的單位一般是MIPS表示每秒有多少兆條指令被執(zhí)行。另一個比較流行的評價指標(biāo)是CPI表示每條指令執(zhí)行所需的時鐘周期數(shù)。
其中f是流水線的時鐘頻率,單位是MHz。CPI和MIPS都是系統(tǒng)平均值,它們是通過運(yùn)行系統(tǒng)測試基準(zhǔn)程序獲得的。CPI的最大值是1,即每個時鐘周期完成一條指令執(zhí)行,此時流水線的性能達(dá)到最佳,系統(tǒng)的指令吞吐率與流水線的時鐘頻率相等。系統(tǒng)最大吞吐率的獲得要求指令流水線應(yīng)被送入一個連續(xù)不斷的指令流,這樣可以保證指令流水線的各階段都保證處于忙狀態(tài),從而提高硬件利用率和指令的執(zhí)行速度,可視化的分析工具———時空圖時空圖通過顯示指令流水線的每一個階段的時間關(guān)系。一般情況下,一個m段流水線的時空圖包含m×n個格,其中n表示完成N條連續(xù)指令所需的時鐘周期的個數(shù)。圖中的非陰影部分表示流水線的該階段在指定周期處于忙的狀態(tài),并是對應(yīng)指令處于對應(yīng)處理階段,陰影部分表示在指令序列中該階段沒有被使用,這些階段也可是因?yàn)樗璧臄?shù)據(jù)未準(zhǔn)備好,而處于空閑狀態(tài)。
其它度量參數(shù)效率E(m):在整個時空圖中非陰影部分(忙階段)所中的比例稱為流水線的效率。加速比S(m):被定義成如下的形式其中:T(m)表示指定工作程序的指令流在m段流水線上的指令執(zhí)行時間,T(1)表示相同的指令流在非流水線機(jī)上的執(zhí)行時間。加速比與效率之間存在如下關(guān)系:2.m的最優(yōu)化選擇
加速比的定義公式給出一個改進(jìn)流水線的性能的途徑,即增加指令流水線的段數(shù)m。
是不是指令流水線的段數(shù)越多越好呢?段數(shù)多少為合適呢?為確定m的取值范圍做如下的假設(shè)和推導(dǎo):假設(shè)流水線P有m個段,并執(zhí)行一個特定的指令集合SI,a是一個高效的非流水線計算機(jī)執(zhí)行相同的指令集所需的時間。指令流水線中每個階段的延遲是a/m,指令流水線應(yīng)加上一個附加的延遲b,它是由于添加了階段之間的緩沖寄存器。c是每個階段的緩沖寄存器成本,d是流水線數(shù)據(jù)處理部分的硬件成本。(流水線性價比PCR與段數(shù)m之間關(guān)系示意圖)
實(shí)際上,大多數(shù)流水線的時在功能級上進(jìn)行分段的,段數(shù)的范圍在2≤m≤15之間。在實(shí)際的計算機(jī)中,極少有計算機(jī)的流水線設(shè)計成超過10段的。
3.影響流水線性能的因素以及解決方法
在分析流水線的性能過程中,流水線的性能達(dá)到最高水平要求指令系列是連續(xù)的,且在指令執(zhí)行過程中流水線的各段都應(yīng)處于忙狀態(tài)。實(shí)際上在計算機(jī)的執(zhí)行過程中,許多問題均可以影響流水線的執(zhí)行,很難保證流水線各個階段在任何時刻均保持處于忙的狀態(tài)。有哪些因素影響流水線的運(yùn)行?這些問題如何解決?在實(shí)際指令執(zhí)行過程中有以下幾種情況可能影響流水線的性能:(1)訪存沖突
(2)控制相關(guān)
(3)數(shù)據(jù)相關(guān)
(1)訪存沖突根據(jù)前面的分析可知,在指令流水線的取指令、取操作數(shù)、存操作數(shù)等階段都需要訪問存儲器,使得流水線的后繼指令的執(zhí)行停滯,影響流水線的性能。一般可采用以下方法進(jìn)行解決:1)設(shè)置兩個獨(dú)立的存儲器分別存放操作數(shù)和指令,以免取指令和取操作數(shù)同時進(jìn)行時相互沖突,使取某指令和取另一條指令的操作數(shù)實(shí)現(xiàn)時間上的重疊。2)采用指令預(yù)取技術(shù),如在8086中設(shè)置指令隊列,將指令預(yù)先取到指令隊列中排隊。指令預(yù)取技術(shù)的實(shí)現(xiàn)是基于訪存周期很短的情況,如在指令執(zhí)行階段,取數(shù)的時間很短,因此在指令執(zhí)行時,主存會有空閑,此時,只要指令隊列空出,就可以取下一條指令,并放至空出的指令隊列中,從而保證在執(zhí)行第K條指令的同時對第K+1條指令進(jìn)行譯碼,實(shí)現(xiàn)“指令K指令”與“分析K+1”的重疊。3)一般情況下也可以采用精細(xì)的調(diào)度算法,使得可能發(fā)生訪存沖突的指令的開始執(zhí)行時間相互錯開,涉及內(nèi)容較多,將在后繼課程《系統(tǒng)結(jié)構(gòu)》中詳細(xì)介紹,(2)控制相關(guān)條件轉(zhuǎn)移、無條件轉(zhuǎn)移、子程序調(diào)用和其它的程序控制指令都可能導(dǎo)致分支轉(zhuǎn)移,在這些指令的執(zhí)行過程中,下條指令的地址在程序控制類指令I(lǐng)執(zhí)行完畢之前都是不確定的。在程序控制指令I(lǐng)執(zhí)行時,取入的指令很可能是一條錯誤指令,若程序控制指令導(dǎo)致程序控制流程跳轉(zhuǎn)到另外一個位置,此時在之前預(yù)取的指令和相應(yīng)操作都被取消,這將導(dǎo)致指令流水線刷新,明顯的降低指令吞吐率。一般采用如下的解決辦法:1)在雙分支轉(zhuǎn)移情況下,編譯器和指令流水線控制邏輯將“猜測”分支方向,即預(yù)測分支條件測試結(jié)果,將最用可能的目標(biāo)指令在程序控制指令I(lǐng)取入到指令流水線。此時指令流水線的刷新只有在“猜測”錯誤情況下才會發(fā)生。
2)流水線計算機(jī)也可以通過采用不同的硬件技術(shù)來解決由于分支轉(zhuǎn)移引起的流水線性能下降。3)在大部分RISC計算機(jī)中都普遍采用延遲分支技術(shù),一條延遲分支指令I(lǐng)1在執(zhí)行時指令I(lǐng)2被預(yù)取到指令流水線中,但指令I(lǐng)2并非分支指令I(lǐng)1的轉(zhuǎn)移分支,分支指令I(lǐng)1的轉(zhuǎn)移分支I`被放在指令I(lǐng)2后運(yùn)行,而非一般意義上的在指令I(lǐng)1之后運(yùn)行。(3)數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān)問題的發(fā)生是因?yàn)樵谙嘟闹噶罟餐褂猛粋€操作數(shù),數(shù)據(jù)相關(guān)也能影響指令流水線的吞吐率。
數(shù)據(jù)相關(guān)有讀-寫相關(guān)、寫-讀相關(guān)和寫-寫相關(guān)等幾種形式,這幾種情況的發(fā)生與指令流水線的結(jié)構(gòu)有關(guān),同時也與進(jìn)行存取(針對存儲器或寄存器)操作的指令的順序有關(guān)。解決方法:1、程序執(zhí)行過程中可以通過檢測來判斷是否存在數(shù)據(jù)相關(guān)風(fēng)險,這種檢查可以在程序編譯過程中進(jìn)行靜態(tài)風(fēng)險檢測,也可以在程序運(yùn)行過程中進(jìn)行動態(tài)風(fēng)險檢測。若有存在數(shù)據(jù)相關(guān)風(fēng)險的指令對(I1,I2),只要保證在指令I(lǐng)2進(jìn)入數(shù)據(jù)讀寫階段之前,指令I(lǐng)1完成可能發(fā)生數(shù)據(jù)相關(guān)的階段即可,可以通過在指令I(lǐng)1之后插入若干個空操作指令,以延遲指令I(lǐng)2的執(zhí)行。也可以通過改變指令的順序,或?qū)⑵渌噶畈迦氲絀1和I2之間,插入的指令應(yīng)當(dāng)既不減慢指令流入流水線的速度,又不會影響程序的功能。2、在流水線中設(shè)置專門的數(shù)據(jù)傳送通路,實(shí)現(xiàn)在相互作用的指令之間快速傳遞共享數(shù)據(jù)。(使用前向數(shù)據(jù)通路減低數(shù)據(jù)相關(guān)延遲損失示意圖)流水線性價比PCR與段數(shù)m之間關(guān)系示意圖使用前向數(shù)據(jù)通路減低數(shù)據(jù)相關(guān)延遲損失示意圖6.4.3流水線中的多發(fā)技術(shù)
流水線技術(shù)使計算機(jī)的體系結(jié)構(gòu)發(fā)生重大變革,提高了計算機(jī)的性能,為了進(jìn)一步提高計算機(jī)的性能,除了采用好的指令調(diào)度算法、重新組織指令執(zhí)行順序、采用一定的措施降低相關(guān)帶來的干擾和優(yōu)化編譯之外,還可開發(fā)指令流水線的多發(fā)技術(shù),設(shè)法在一個時鐘周期之內(nèi)完成更多指令的執(zhí)行。常見的多發(fā)技術(shù)包括:
超標(biāo)量技術(shù)
超流水技術(shù)
超長指令字(VLIW)
超標(biāo)量技術(shù)超標(biāo)量是指在每個時鐘周內(nèi)可同時并發(fā)多條指令,以并行操作方式將兩條或兩條以上的指令譯碼執(zhí)行。在超標(biāo)量計算機(jī)中有多個執(zhí)行部件(E-unit),每一個分屬不同的指令流水線,這樣在機(jī)器內(nèi)部就構(gòu)成了多個相互獨(dú)立的指令流水線。程序控制單元(PCU)被設(shè)計成具備同時讀取并譯碼多條指令的能力,而且能夠把同時取得K指令分別
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高考地理一輪復(fù)習(xí)第九章第2講工業(yè)地域的形成與工業(yè)區(qū)教案含解析新人教版
- 2024高考化學(xué)二輪復(fù)習(xí)專題突破練4B元素及其化合物含解析
- 二零二五年度股東分紅紅利分配與投資計劃合同3篇
- 第二章復(fù)合材料增強(qiáng)體2017上課講義
- 小學(xué)食品安全管理制度
- 分階段分層次全過程質(zhì)量管控機(jī)制
- 單病種填報要求(更新至20240911)
- 2024年河北軟件職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫含答案解析
- 2024年閘北區(qū)市北醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點(diǎn)附帶答案
- 二零二五年度離婚協(xié)議中個人隱私保護(hù)協(xié)議
- 投石機(jī)(課件)-小學(xué)拓展
- 光伏并網(wǎng)前單位工程驗(yàn)收報告-2023
- 挖掘機(jī)運(yùn)輸方案
- 民企廉潔培訓(xùn)課件
- 飛書使用培訓(xùn)課件
- 食品生產(chǎn)許可證辦理流程詳解
- 高血壓急癥的緊急處理與護(hù)理
- 接地隱蔽記錄表
- 2023年1月自考07484社會保障學(xué)試題及答案含解析
- 餐飲咨詢服務(wù)合同范本
- 股權(quán)投資的基本概念與原理
評論
0/150
提交評論