《計算機(jī)組成與系統(tǒng)結(jié)構(gòu)》課件第6章_第1頁
《計算機(jī)組成與系統(tǒng)結(jié)構(gòu)》課件第6章_第2頁
《計算機(jī)組成與系統(tǒng)結(jié)構(gòu)》課件第6章_第3頁
《計算機(jī)組成與系統(tǒng)結(jié)構(gòu)》課件第6章_第4頁
《計算機(jī)組成與系統(tǒng)結(jié)構(gòu)》課件第6章_第5頁
已閱讀5頁,還剩143頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第6章中央處理器(CPU)6.1

CPU結(jié)構(gòu)和微操作6.2硬布線控制器設(shè)計6.3微程序控制器設(shè)計6.4微程序控制器與硬布線控制器的比較6.5

CPU性能的測量與提高6.6

CPU中的新技術(shù)6.7典型的CPU

6.1

CPU結(jié)構(gòu)和微操作

利用大規(guī)模集成電路技術(shù),計算機(jī)系統(tǒng)中的控制器、運(yùn)算器、寄存器組(又稱寄存器文件)被集成在一塊芯片上,形成了現(xiàn)在稱之為CPU的中央處理單元。由于控制器是計算機(jī)系統(tǒng)工作的控制核心,因此CPU成為現(xiàn)代計算機(jī)中的核心器件。6.1.1

CPU的功能與結(jié)構(gòu)

任何計算機(jī)系統(tǒng)都不可缺少CPU。CPU的主要功能是執(zhí)行存儲在主存中的指令序列,也即執(zhí)行程序,具體操作如下:

(1)取得指令:CPU從主存中取得指令,將其暫存在CPU內(nèi)部的指令寄存器中。

(2)執(zhí)行指令:CPU對取得的指令進(jìn)行譯碼、執(zhí)行。

(3)確定下條指令地址:CPU依據(jù)當(dāng)前指令信息確定下條指令在主存中的地址(順序地址或由分支跳轉(zhuǎn)類指令決定的跳轉(zhuǎn)地址)。

(4)重復(fù)過程(1)~(3),直到將程序中的所有指令執(zhí)行完畢為止。從另一個角度看,指令流和數(shù)據(jù)流是在主存與CPU內(nèi)部寄存器組之間流動的(見圖6.1),所以對這些指令流和數(shù)據(jù)流的有效管理也是CPU的基本功能。圖6.1處理器與主存之間的通信在CPU內(nèi)部各部件之間,可采用專用通道或總線的數(shù)據(jù)通路連接方式,這使得CPU的內(nèi)部結(jié)構(gòu)及操作方式因此而不同。圖6.2是簡化的單總線結(jié)構(gòu)的CPU,在總線上定時是由

時鐘控制的。圖6.2單總線數(shù)據(jù)通路CPU內(nèi)部結(jié)構(gòu)圖6.1.2指令周期

在執(zhí)行一條指令的過程中,由CPU完成的操作序列構(gòu)成一個指令周期(InstructionCycle)。指令周期也定義為執(zhí)行一條指令所用的時間。所以,指令周期既是運(yùn)行時間的描述,也是操作動作的描述。

圖6.3給出了一個指令周期中四個子周期間的關(guān)系,它也是對CPU行為的一種簡要描述。圖6.3指令周期及CPU操作6.1.3微操作

1.微操作與微命令

在指令周期內(nèi)的CPU行為實際是由一系列微操作(μop)定義的,這些微操作是將CPU行為或功能分解后的CPU最基本的操作,分屬于不同的指令子周期(CPU周期)。圖6.4示出

了一個程序執(zhí)行的分解過程,它描述了指令周期、CPU周期、微操作之間的關(guān)系。圖6.4程序執(zhí)行示意圖以圖6.2所示的CPU為例,當(dāng)將程序計數(shù)器PC的內(nèi)容傳送到地址寄存器AR時,便產(chǎn)生了訪存中的一個微操作,可以將其用符號標(biāo)記為

2.微操作流程

1)時序信號的產(chǎn)生

(1)節(jié)拍周期信號的產(chǎn)生。每一個計算機(jī)都有一個內(nèi)部時鐘,用來管理指令執(zhí)行的速度,同步系統(tǒng)中的所有部件。

CPU需要以一定的時鐘數(shù)來執(zhí)行每條指令,因此指令的性能常用時鐘周期(ClockCycle)來測量。在計算機(jī)系統(tǒng)中,完成各種CPU微操作所需時間的最大者定義為節(jié)拍周期T,它是

測量CPU行為的一個基本時間單位,常作為定義CPU時鐘周期Tclock或時鐘頻率fclock的依據(jù),即圖6.5計數(shù)型節(jié)拍脈沖發(fā)生器(節(jié)拍數(shù)≤16)

(2)CPU周期(機(jī)器周期)信號的產(chǎn)生。若干個節(jié)拍組成一個CPU周期。CPU周期可以設(shè)計為定長與不定長兩種。圖6.6移位型節(jié)拍脈沖發(fā)生器(節(jié)拍數(shù)≤8)圖6.7

CPU周期信號產(chǎn)生電路及時序圖

(3)指令周期的結(jié)束。同樣,若干個CPU周期組成一個指令周期。指令周期也可以設(shè)計為定長與不定長兩種。

2)取指周期

取指周期出現(xiàn)在每一個指令周期的開始,并完成從主存中取出一條指令的任務(wù)。

假設(shè)CPU采用圖6.2所示的組織結(jié)構(gòu),一個簡單的取指周期可由3個步驟、4個微操作組成,即當(dāng)連續(xù)的某些微操作動作不會相互干擾(可并行執(zhí)行)時,為了節(jié)省時間,可將其放在同一節(jié)拍中完成,如第2、3個微操作被放在了T2節(jié)拍中。也可將第3、4個微操作組合在一起,即組合一個微操作序列應(yīng)遵守兩個基本規(guī)則:

(1)遵守操作發(fā)生的順序。如微操作AR←PC必須在DR←Memory[AR]之前,因為讀存儲器要利用AR中的地址。

(2)必須避免沖突。不要試圖在一個節(jié)拍內(nèi)對同一個部件做兩種不同的操作,因為結(jié)果可能不可預(yù)知。如微操作DR←Memory[AR]和IR←DR不應(yīng)出現(xiàn)在同一個節(jié)拍內(nèi)。

3)中斷周期

在執(zhí)行周期結(jié)束時有一個檢測,用來確定被允許的中斷是否已出現(xiàn),若是,則中斷周期產(chǎn)生。中斷周期的特性隨計算機(jī)不同有較大的變化。這里給出一個非常簡單的微操作序列:

4)執(zhí)行周期

(1)MOVR1,R0

這條指令實現(xiàn)將寄存器R0的內(nèi)容傳送至寄存器R1中。與該指令相應(yīng)的執(zhí)行周期的微操作序列為:

(2)MOVR0,X

這條指令實現(xiàn)將存儲單元X中的內(nèi)容傳送至寄存器R0中。與該指令相應(yīng)的執(zhí)行周期的微操作序列為:

(3)MOV(R1),R0

這條指令實現(xiàn)將寄存器R0的內(nèi)容傳送至由寄存器R1間接尋址的存儲單元中。與該指令相應(yīng)的執(zhí)行周期的微操作序列為:

(4)ADDR1,R0

這條指令實現(xiàn)將寄存器R0的內(nèi)容與寄存器R1的內(nèi)容相加并將結(jié)果存入R1的功能。與該指令相應(yīng)的執(zhí)行周期的微操作序列為:

(5)SUBR0,(X)

這條指令實現(xiàn)寄存器R0中的被減數(shù)減去存儲器地址X間接尋址的存儲單元中的減數(shù)、將差值傳送至寄存器R0中的功能。與該指令相應(yīng)的執(zhí)行周期的微操作序列為:

(6)INR0,P

這條指令實現(xiàn)從I/O地址為P的I/O設(shè)備(接口)中輸入數(shù)據(jù)并存入寄存器R0中。與該指令相應(yīng)的執(zhí)行周期的微操作序列為:

(7)OUTP,R0

這條指令實現(xiàn)將寄存器R0中的數(shù)據(jù)輸出到I/O地址為P的I/O設(shè)備(接口)中。與該指令相應(yīng)的執(zhí)行周期的微操作序列為:

(8)JUMPX

這是無條件跳轉(zhuǎn)指令,實現(xiàn)將程序執(zhí)行地址從當(dāng)前跳轉(zhuǎn)指令所在位置轉(zhuǎn)移到存儲器地址為X處。與該指令相應(yīng)的執(zhí)行周期的微操作序列為:

(9)JZoffs

這是采用相對尋址的條件跳轉(zhuǎn)指令。當(dāng)條件為真(即零標(biāo)志ZF=1)時,程序發(fā)生跳轉(zhuǎn);條件為假(即零標(biāo)志ZF=0)時,程序順序執(zhí)行下條指令。跳轉(zhuǎn)地址=PC+offs,offs為帶符號的地址偏移量。與該指令相應(yīng)的執(zhí)行周期的微操作序列為:

(10)PUSHR0

這條指令實現(xiàn)將寄存器R0中的數(shù)據(jù)壓入到堆棧中。與該指令相應(yīng)的執(zhí)行周期的微操作序列為:

(11)POPR0

這條指令實現(xiàn)將堆棧棧頂?shù)臄?shù)據(jù)彈出至寄存器R0中。與該指令相應(yīng)的執(zhí)行周期的微操作序列為:

(12)CALL(X)

這是子程序調(diào)用指令,實現(xiàn)將程序執(zhí)行地址從當(dāng)前調(diào)用指令所在位置轉(zhuǎn)移到以存儲器地址X間接尋址的存儲單元處,并保存返回地址。與該指令相應(yīng)的執(zhí)行周期的微操作序列為:

(13)RET

這是子程序返回指令,實現(xiàn)從堆棧棧頂處獲得子程序調(diào)用時保存的返回主程序的地址。與該指令相應(yīng)的執(zhí)行周期的微操作序列為:6.1.4控制器的組成

從微操作序列分析可以看出,CPU執(zhí)行一條指令是通過執(zhí)行一個指令周期來完成的,也就是通過從取指令微操作序列到執(zhí)行指令微操作序列的連續(xù)實現(xiàn)來完成的。每一個微操作又與一組微命令(即控制信號)相關(guān)聯(lián),實現(xiàn)一組微操作實際上就是要產(chǎn)生與這組微操作相應(yīng)的微命令,這就是控制器(也即控制單元)的任務(wù)。所以,我們可以將控制器應(yīng)完成的任務(wù)歸納為:

(1)產(chǎn)生微命令。

(2)按節(jié)拍產(chǎn)生微命令。圖6.8控制器模型設(shè)計者在設(shè)計控制器之前需要做以下工作:

(1)定義計算機(jī)基本硬件組成和基本指令系統(tǒng);

(2)基于定義的硬件結(jié)構(gòu),針對每條指令,描述CPU完成的微操作;

(3)確定控制單元應(yīng)該完成的功能,即何時產(chǎn)生何種微命令。

6.2硬布線控制器設(shè)計

硬布線控制器設(shè)計法將控制單元看做一個順序邏輯電路(SequentialLogicCircuit)或有限狀態(tài)機(jī)(Finite-stateMachine),它可以產(chǎn)生規(guī)定順序的控制信號,這些信號與提供給控制單元的指令相對應(yīng)。它的設(shè)計目標(biāo)是:使用最少的元器件,達(dá)到最快的操作速度。根據(jù)對一條指令相應(yīng)的微操作序列的時序描述方法的不同,時序產(chǎn)生器有兩種設(shè)計方法。

一是采用一級時序,即只產(chǎn)生節(jié)拍信號,時序產(chǎn)生器可采用圖6.5或圖6.6的電路實現(xiàn)。此時,一條指令執(zhí)行的全過程是用一個從取指令到執(zhí)行指令的完整微操作序列來描述的,

而且對這個微操作序列也是從頭至尾分配節(jié)拍的。例如,針對圖6.2的單總線CPU結(jié)構(gòu),實現(xiàn)指令SUBR0,(X)功能的微操作序列可描述為:二是采用兩級時序,即產(chǎn)生節(jié)拍和CPU周期兩種時間信號,時序產(chǎn)生器可采用圖6.7的電路實現(xiàn)。此時,要按照CPU周期來描述一條指令的微操作序列。例如,實現(xiàn)指令SUBR0,(X)功能的微操作序列需作如下描述:或者描述為:圖6.9計算機(jī)系統(tǒng)模型由于每一個微操作的實現(xiàn)都是在某些微命令的控制下完成的,利用所設(shè)計的這些微命令,我們就可以寫出指令系統(tǒng)中每條指令對應(yīng)的微命令序列。例如,公操作取指周期的微命令序列如下:我們也可以寫出某些指令執(zhí)行周期的微命令序列。例如:例如,PCout出現(xiàn)在取指周期(定義為第1個CPU周期M1)的T1節(jié)拍,出現(xiàn)在指令JZoffs執(zhí)行周期(假設(shè)為第2個CPU周期M2)的T2節(jié)拍(當(dāng)ZF=1時),出現(xiàn)在指令CALL(X)執(zhí)行周期的T1節(jié)拍,……,那么,生成PCout的邏輯表達(dá)式為:

PCout=M1·T1+M2·T2·JZ(相對尋址)·(ZF=1)+M2·T1

·CALL(間接尋址)+…(二級時序)

PCout=T1+T5·JZ(相對尋址)·(ZF=1)+T4·CALL(間接尋址)+…(一級時序)

ARin出現(xiàn)在取指周期的T1節(jié)拍,出現(xiàn)在指令MOVR0,X和指令MOV(R1),R0執(zhí)行周期的T1節(jié)拍,出現(xiàn)在指令SUBR0,(X)執(zhí)行周期的T1和T3節(jié)拍,出現(xiàn)在指令I(lǐng)NR0,P和指令

OUTP,R0執(zhí)行周期的T1節(jié)拍,出現(xiàn)在指令PUSHR0執(zhí)行周期的T2節(jié)拍,出現(xiàn)在指令POPR0執(zhí)行周期的T1節(jié)拍,出現(xiàn)在指令CALL(X)執(zhí)行周期的T2和T4節(jié)拍,出現(xiàn)在指令RET執(zhí)行周期的T1節(jié)拍,……,那么,生成ARin的邏輯表達(dá)式為:或

Mread出現(xiàn)在取指周期的T2節(jié)拍,出現(xiàn)在指令MOVR0,X執(zhí)行周期的T2節(jié)拍,出現(xiàn)在指令SUBR0,(X)執(zhí)行周期的T2和T4節(jié)拍,出現(xiàn)在指令POPR0執(zhí)行周期的T2節(jié)拍,出現(xiàn)在指令CALL(X)執(zhí)行周期的T5節(jié)拍,出現(xiàn)在指令RET執(zhí)行周期的T2節(jié)拍,……,那么,生成Mread的邏輯表達(dá)式為:依此類推,由控制單元產(chǎn)生并加載到CPU內(nèi)外的全部控制信號均可用下述形式表述,即

6.3微程序控制器設(shè)計

6.3.1微程序控制原理

1.微程序控制的基本思想

微程序設(shè)計技術(shù)的指導(dǎo)思想是用軟件方法組織和控制數(shù)據(jù)處理系統(tǒng)的信息傳送,并最終用硬件實現(xiàn)。利用這個指導(dǎo)思想,馮·諾依曼的“存儲程序控制原理”被引入到控制器的設(shè)計中。

2.微指令

如6.1.3節(jié)所述,每種微操作可以用一種符號進(jìn)行標(biāo)記,如AR←PC,將這種標(biāo)記作為一種編程語言,即為微編程語言(MicroprogrammingLanguage)。對在一個時間單位(節(jié)拍)內(nèi)

出現(xiàn)的一組微操作進(jìn)行描述的微編程語句稱作微指令(Microinstruction)。一個微指令序列稱作微程序(Microprogram)或固件(Firmware)。微程序或固件是介于硬件和軟件之間的一種功能實現(xiàn)的中間路線,固件設(shè)計比硬件設(shè)計容易,但寫一個固件程序比寫一個軟件程序困難。為了實現(xiàn)微指令所描述的微操作,需要由微指令提供相應(yīng)的微命令,所以微指令的核心作用就是產(chǎn)生控制信號。通過一組微指令產(chǎn)生的控制信號,使一條指令中的所有微操作得以實現(xiàn),從而實現(xiàn)一條指令的功能。指令、微程序、微指令的關(guān)系如下:微指令的一般格式如圖6.10所示,它由兩大部分組成:控制域和地址域??刂朴蛴脕懋a(chǎn)生控制信號(微命令),地址域用來產(chǎn)生下一條要執(zhí)行的微指令在控制存儲器中的存放地址。圖6.10微指令的一般格式

3.微程序控制器的一般結(jié)構(gòu)和工作原理

微程序控制器就像CPU,它的全部工作就是不斷地取得微指令和執(zhí)行微指令。為此,微程序控制器中必須要有微程序的存放地,這便是控制存儲器。控制存儲器是微程序控制器的核心,控制器中其他電路的設(shè)計都是圍繞著保證控制存儲器能夠有效工作這一目標(biāo)而展開的。微程序控制器的一般結(jié)構(gòu)如圖6.11所示,它由控制存儲器、微指令寄存器、微地址寄存器、時序邏輯等部件組成。圖6.11微程序控制器的一般結(jié)構(gòu)6.3.2微指令設(shè)計

1.微指令地址的生成

時序邏輯電路由決定微指令周期定時的時鐘驅(qū)動,它利用指令寄存器、ALU標(biāo)志、微地址寄存器、微指令寄存器的內(nèi)容(當(dāng)前微指令地址),產(chǎn)生訪問控制存儲器所需的下一條微指令地址。下一條微指令的地址有三種可能:

(1)由指令寄存器確定的微程序首地址;

(2)下一條順序地址;

(3)分支跳轉(zhuǎn)地址。第一類地址是每一個指令周期僅出現(xiàn)一次,且僅出現(xiàn)在剛剛獲取一條指令之后。

第二類地址是最常出現(xiàn)的,是微程序中主要使用的下一條微指令地址的提供形式,它的產(chǎn)生規(guī)則十分簡單,即

下一條微指令地址=當(dāng)前微指令地址+1

第三類地址是為實現(xiàn)微程序段間的銜接和在不同條件下執(zhí)行不同的微程序段而設(shè)置的,它分為無條件和條件跳轉(zhuǎn)、兩分支和多分支跳轉(zhuǎn)等情況。這類地址為靈活的微程序設(shè)計提供了支持。

1)兩地址格式(斷定方式)

最簡單的方法是在每條微指令地址域中提供兩個地址字段,如圖6.12中微指令寄存器μIR所示,地址1和地址2分別提供下條順序地址和跳轉(zhuǎn)地址。為了靈活生成跳轉(zhuǎn)地址以

及要確定下條微指令地址是選擇地址1(順序地址)還是地址2(跳轉(zhuǎn)地址),在地址域中還特別設(shè)置了地址選擇控制位(字段)AC。圖6.12兩地址格式的分支控制邏輯

2)單地址格式(計數(shù)方式,增量方式)

與在內(nèi)存中存放程序一樣,在控制存儲器中,也是將順序執(zhí)行的微指令存放在連續(xù)的控存單元中,因此下條順序微地址通過當(dāng)前微地址加1即可獲得,計數(shù)器正適合完成此功能。參照CPU利用程序計數(shù)器(PC)提供順序的內(nèi)存地址,在控制器中引入了微程序計數(shù)器(μPC),利用微程序計數(shù)器具備的加1計數(shù)的能力,產(chǎn)生下條順序微地址。圖6.13單地址格式的分支控制邏輯

3)可變格式

(1)控制微指令。其格式如下:

(2)轉(zhuǎn)移微指令。其格式如下:圖6.14示意了采用可變格式微指令時分支控制邏輯如何生成下條微指令的地址。與圖6.13比較,圖6.14在μIR的輸出端增加了一個門控電路,它受到微指令標(biāo)識位S的控制,同時標(biāo)識位S對分支邏輯實施控制。(S=0,控制指令;S=1,跳轉(zhuǎn)指令)圖6.14可變格式的分支控制邏輯在采用可變格式微指令時,兩種格式的微指令長度有可能不一致,那么控制存儲器存儲單元的位數(shù)L應(yīng)設(shè)計為

4)三種地址域格式的比較

兩地址格式可以從微指令直接獲得順序地址和跳轉(zhuǎn)地址,所以分支邏輯可以設(shè)計得較簡單,下條微指令地址可以快速生成。兩個地址字段使得地址域較長,造成微指令較長,控存單元需要較多的位數(shù)。

2.微指令控制域編碼

1)水平型微指令控制域的編碼

(1)直接表示法。在微指令的控制域字段中,每一個二進(jìn)制位用來定義一個控制信號(微命令),若計算機(jī)系統(tǒng)需要n個控制信號,則控制域字段長度應(yīng)為n個二進(jìn)制位,見圖6.15。圖6.15直接表示法

(2)譯碼法。當(dāng)計算機(jī)系統(tǒng)功能較強(qiáng)、結(jié)構(gòu)較復(fù)雜時,系統(tǒng)所需的控制信號會很多,使得采用直接表示法時微指令控制域很長,進(jìn)而造成微指令長度過長,控制存儲器空間增大。

(3)字段譯碼法(字段編碼)。一種性能良好而普遍使用的控制域編碼方法是字段譯碼法,它將控制域分為若干字段,

字段內(nèi)垂直編碼,字段間水平編碼。若各字段的編碼相互獨(dú)立,則通過各字段獨(dú)立譯碼就可以獲得計算機(jī)系統(tǒng)的全部控制信號,這被稱作直接譯碼方式。若某些字段的編碼相互關(guān)聯(lián),則關(guān)聯(lián)字段要通過兩級譯碼才能獲得相關(guān)的控制信號,這被稱作間接譯碼方式。字段編碼結(jié)構(gòu)如圖6.16所示。圖6.16字段譯碼法針對圖6.2所示的CPU和圖6.9所示的計算機(jī)系統(tǒng),一種控制域字段的組織和編碼結(jié)果見表6.1。在控制域中,字段數(shù)的選擇可以依據(jù)控制信號按資源或功能分類后的分類數(shù)確定,如表6.1中的8個字段。當(dāng)我們對每個字段的控制信號進(jìn)行編碼時會發(fā)現(xiàn),有些字段的編碼利

用率并不高,如表6.1中的字段4和字段5,造成微指令長度的浪費(fèi)。所以,在按功能或資源組織控制域字段后,通常還要進(jìn)行優(yōu)化處理,將可以合并的字段重新組合,以減少控制域的長度。例如,根據(jù)控制信號相容、互斥的特點、微操作的時序性及NOP信號的靈活使用,我們可以將字段3、字段4和字段7的控制信號組織到其他字段中,結(jié)果見表6.2。對比表6.1和表6.2,優(yōu)化后的控制域的長度減少了6位,同時各控制信號仍能滿足各機(jī)器指令微操作序列所要求的信號相容性或互斥性。

我們也可以對字段進(jìn)行關(guān)聯(lián)設(shè)計,使一個域用于解釋另一個域。例如,對運(yùn)算類控制信號可以按兩字段設(shè)計,字段

i用來確定做哪類運(yùn)算(算術(shù)、邏輯或移位),字段i+1用來進(jìn)一步確定某類運(yùn)算中的具體操作,設(shè)計結(jié)果見表6.3。

2)垂直型微指令控制域的編碼

垂直型微指令與水平型微指令的不同在于它們控制域的編碼方法不同。

垂直型微指令的控制域采用與機(jī)器指令相似的格式,由微操作碼和微操作對象兩大部分構(gòu)成,它的一般格式為:

3)水平型與垂直型微指令的比較

水平型微指令具有如下特性:

(1)需要較長的微指令控制域;

(2)可以表示高度并行的控制信號;

(3)對控制域提供的控制信息只需較少的譯碼電路,甚至不需要譯碼。

垂直型微指令則具有以下不同的特性:

(1)需要較短的微指令控制域;

(2)并行微操作的表示能力有限;

(3)對控制信息必須譯碼,且譯碼電路一般較復(fù)雜。

4)微指令控制域編碼設(shè)計實例

一種水平型微指令的實例為IBMsystem/360Model50的微指令,格式見圖6.17。圖6.17

IBMsystem/360Model50的微指令格式一種垂直型微指令的實例為IBMsystem/370Model145的微指令,格式見圖6.18。圖

6.18

IBMsystem/370Model145的微指令格式6.3.3微程序設(shè)計

1.微程序結(jié)構(gòu)

在設(shè)計微程序時,通常采用如下兩種典型結(jié)構(gòu):

(1)一條指令對應(yīng)一段完整的微程序。

通過指令分析可知,指令系統(tǒng)中的任何一條指令有唯一對應(yīng)的、從取指令到執(zhí)行指令的一個微操作(或微命令)序列,將該序列中每個節(jié)拍下的微操作(或微命令)用一條微指令表示,并按節(jié)拍順序?qū)⒏鳁l微指令組織在一起,就構(gòu)成了與該條指令對應(yīng)的微程序。圖6.19控制存儲器組織結(jié)構(gòu)1

(2)將微程序中的公共部分設(shè)計成微子程序進(jìn)行公共調(diào)用。

在每條指令的微程序中有大量相同的微程序段,如取指微程序段對于所有指令都一樣,尋址方式相同的指令中操作數(shù)獲取的微程序段一樣,每條指令執(zhí)行結(jié)束時要進(jìn)行的中斷檢測處理微程序段也一樣,……這些相同的微程序段在控制存儲器中重復(fù)出現(xiàn),造成控存空間的大量浪費(fèi)。圖6.20控制存儲器組織結(jié)構(gòu)2

2.編寫微程序

編寫微程序要做兩件事:一是按照設(shè)計好的微指令格式,將指令微操作(微命令)序列按每節(jié)拍一條微指令寫出每條微指令的具體編碼;二是按照選定的微程序結(jié)構(gòu),將微指令組織成微程序或微子程序。

例如,針對圖6.2所示的CPU和圖6.9所示的計算機(jī)系統(tǒng),假設(shè)我們采用如下微指令格式:假設(shè)微程序采用圖6.19所示的結(jié)構(gòu),且微程序首地址按表6.4所示方法生成。當(dāng)指令操作碼、尋址方式不同時,將形成不同的微程序首地址。每個微程序的最大長度由JA限制。表6.5給出了幾個微程序段的編碼結(jié)果。6.3.4微程序控制器設(shè)計

1.微程序控制器設(shè)計的基本原則

微程序控制器設(shè)計的基本原則有以下兩方面:

1)速度快

2)體積小

2.微程序控制器設(shè)計的基本步驟

1)指令分析

2)微命令分析

3)微指令及控制器結(jié)構(gòu)設(shè)計

(1)確定微指令地址域格式。

(2)確定微指令控制域格式。

4)微程序與控制存儲器設(shè)計

(1)選擇微指令和微程序結(jié)構(gòu)。

(2)確定微程序入口地址(首地址)的生成方法。

5)微程序控制器實現(xiàn)

6.4微程序控制器與硬布線控制器的比較

硬布線控制器完全利用邏輯器件實現(xiàn),所以速度非??臁.?dāng)計算機(jī)系統(tǒng)越來越復(fù)雜時,硬布線控制器設(shè)計也越來越困難。硬布線控制器一旦被實現(xiàn),便不可修改和擴(kuò)充。

6.5

CPU性能的測量與提高

6.5.1

CPU性能測量

1.CPU時間

時間是測量CPU性能的重要指標(biāo)。通常CPU時間(CPUTime,TCPU)用于指導(dǎo)CPU設(shè)計,響應(yīng)時間(ResponseTime)用于指導(dǎo)系統(tǒng)設(shè)計。在控制器設(shè)計中我們已看到,CPU的工作依賴于系統(tǒng)時鐘。假設(shè)計算機(jī)的時鐘周期為TCLK,執(zhí)行某程序時,CPU需要使用N個時鐘周期,那么,CPU執(zhí)行該程序所用時間為

(6-1)

例6.1計算機(jī)A執(zhí)行某程序用時20s,時鐘頻率為1.5GHz,設(shè)計者現(xiàn)要構(gòu)建計算機(jī)B,使它以10s的執(zhí)行時間運(yùn)行該程序。設(shè)計者已確定增加時鐘頻率是可行的,但會影響CPU設(shè)計的其余部分,使得計算機(jī)B需要1.2倍于計算機(jī)A的時鐘數(shù)來運(yùn)行該程序,那么,設(shè)計者為B應(yīng)選擇多大的時鐘頻率?

解因為

所以因為

所以

即設(shè)計者為B應(yīng)選擇3.6GHz的時鐘頻率。程序是由指令構(gòu)成的,執(zhí)行一段程序就是在執(zhí)行該程序所包含的所有指令。所以,CPU執(zhí)行一段程序所用的時間與該程序所包含的指令數(shù)成正比,即

當(dāng)系統(tǒng)結(jié)構(gòu)確定后,編譯器設(shè)計和應(yīng)用程序開發(fā)會影響指令數(shù),而指令集的體系結(jié)構(gòu)也會影響給定程序所需的指令數(shù)。

2.CPI

我們用時鐘周期數(shù)來測量每條指令的執(zhí)行時間,CPU執(zhí)行一段程序(可能含有n類指令)所需的時鐘周期數(shù)N可表示為

(6-2)

由此得

(6-3)對于某基準(zhǔn)程序,用CPI表示的CPU性能為

(6-4)

例6.2假設(shè)同一指令集結(jié)構(gòu)有兩種實現(xiàn)。計算機(jī)A的時鐘周期為200ps,執(zhí)行某程序時CPI=2.0;而計算機(jī)B的時鐘周期為360ps,執(zhí)行同一程序時CPI=1.2。執(zhí)行該程序時,哪

個計算機(jī)更快?

解假設(shè)該程序包含I條指令,則

那么,兩者的性能比為

所以,執(zhí)行該程序時,計算機(jī)A比計算機(jī)B快1.08倍。

例6.3某個Java程序在桌面處理機(jī)上運(yùn)行15s,一個新的Java編譯器生成的指令數(shù)僅是老編譯器的0.6倍,而CPI增加1.1倍。利用新的Java編譯器,我們能夠期望這個Java程序運(yùn)行得有多快?

解利用老編譯器運(yùn)行該Java程序的時間為TCPU=15s,而利用新編譯器運(yùn)行該Java程序的時間為

3.MIPS

我們可以用另外一種標(biāo)準(zhǔn)來衡量CPU的性能,這就是CPU每秒執(zhí)行的百萬指令數(shù)MIPS(MillionInstructionsPerSecond)。對于一個給定的程序,MIPS被定義為

(6-5)

例6.4某計算機(jī)具有三類指令,測試每類指令得到的CPI結(jié)果如下:用兩種不同的編譯器對某個程序進(jìn)行編譯得到的各類指令的數(shù)量如下:

解由定義可得對于編譯器1生成的代碼序列:對于編譯器2生成的代碼序列:

例6.5對某程序進(jìn)行性能測試,結(jié)果如下:

解由式(6-3)和式(6-4)得

所以,對于給定的程序,計算機(jī)A具有較高的MIPS值,計算機(jī)B執(zhí)行速度更快。

4.FLOPS

為了避免使用MIPS參數(shù)帶來的困惑,更多的高性能計算機(jī)系統(tǒng)采用FLOPS參數(shù)作為性能衡量指標(biāo)。FLOPS(FloatingPointOperationsPerSecond)被定義為CPU每秒完成的浮點運(yùn)

算次數(shù),即

(6-6)6.5.2提高CPU速度的策略

CPU的處理能力和處理速度是衡量CPU性能的兩個重要方面。處理能力可以通過指令系統(tǒng)反映,它是CPU能夠做什么的具體體現(xiàn)。處理速度是CPU執(zhí)行程序完成任務(wù)快慢的

指標(biāo),是計算機(jī)用戶最關(guān)心的指標(biāo)之一。提高CPU速度的技術(shù)可分為兩大類:具體實現(xiàn)的改進(jìn)和體系結(jié)構(gòu)的改進(jìn)??梢圆扇〉牟呗杂?

(1)采用更先進(jìn)的硅加工制造技術(shù);

(2)縮短指令執(zhí)行路徑長度;

(3)簡化組織結(jié)構(gòu)來縮短時鐘周期;

(4)采用并行處理技術(shù)。

6.6

CPU中的新技術(shù)

6.6.1多核技術(shù)

所謂多核(Multicore)技術(shù)就是將多個處理器(計算引擎,內(nèi)核)集成在一塊單獨(dú)的CPU芯片上。利用多核技術(shù)設(shè)計的處理器稱為多核處理器或

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論