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

下載本文檔

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

文檔簡介

第5章中央處理器本章內(nèi)容:CPU的組成和功能指令周期時序產(chǎn)生器和控制方式微程序控制器微程序設(shè)計技術(shù)硬布線控制器傳統(tǒng)和現(xiàn)代CPU介紹5.1CPU的功能和組成CPU的功能程序是存放在內(nèi)存儲器中能夠解決某個問題的一組指令序列,計算機中能夠完成自動取出指令并執(zhí)行指令的部件稱為中央處理器,簡稱CPU。CPU有如下基本功能:-指令控制:保證機器按順序執(zhí)行程序-操作控制:把指令的各種操作信號送往相應(yīng)的部件,從而控制這些部件按指令的要求進行動作。-時間控制:保證指令的各種操作信號按照嚴格的時序關(guān)系送往相應(yīng)的部件,使計算機有條不紊的按序工作。-數(shù)據(jù)加工:數(shù)據(jù)加工就是對數(shù)據(jù)進行算術(shù)運算和邏輯運算處理,這是CPU的基本功能。CPU的基本組成-傳統(tǒng)CPU基本組成:運算器、控制器。(在諾曼機的定義中)-現(xiàn)代CPU基本組成:運算器、控制器、浮點運算器和Cache??刂破鞯慕M成:程序計數(shù)器、指令寄存器、指令譯碼器、時序產(chǎn)生器和操作控制器??刂破鞯闹饕δ埽?)從內(nèi)存中取出指令,并指出下一條指令在內(nèi)存中的位置。2)對指令進行譯碼并產(chǎn)生相應(yīng)的控制信號啟動規(guī)定的動作。3)控制CPU與內(nèi)存或CPU與輸入/輸出設(shè)備之間數(shù)據(jù)傳遞。運算器的組成:算術(shù)邏輯單元(ALU)、通用寄存器、數(shù)據(jù)緩沖寄存器和狀態(tài)寄存器。運算器的主要功能:1)執(zhí)行所有的算術(shù)運算。2)執(zhí)行所有的邏輯運算。CPU內(nèi)部的主要寄存器程序計數(shù)器PC用來確定下一條待執(zhí)行的指令在指令存儲器中的地址,順序?qū)ぶ稰C+1->PC;跳躍尋址將指令中的地址碼裝入。數(shù)據(jù)緩沖寄存器用來暫存ALU的運算結(jié)果或者由內(nèi)存讀出或者向內(nèi)存寫入的數(shù)據(jù)或者指令狀態(tài)寄存器用來保存上次算術(shù)或邏輯結(jié)果的某些特性,例如運算結(jié)果是否有進位、運算結(jié)果是否溢出等。指令譯碼器對指令的操作碼進行測試,向操作控制器發(fā)送具體操作的信號。通用寄存器組,暫存參加運算的操作數(shù)或運算結(jié)果,為ALU提供工作區(qū)。目前的CPU中有16個、32個或者更多的累加寄存器構(gòu)成通用寄存器組??刂破鬟\算器數(shù)據(jù)地址寄存器用來保存CPU所訪問的數(shù)據(jù)存儲器單元的地址,在CPU讀寫數(shù)據(jù)存儲器的期間驅(qū)動數(shù)據(jù)地址總線上的地址信息。Cache指令寄存器保存當前執(zhí)行的指令,是指令譯碼器的輸入。CPU取指時通過指令總線將指令送指令寄存器。操作控制器與時序產(chǎn)生器

在CPU中有很多寄存器,信息從什么地方開始,中間經(jīng)過哪個寄存器,最后傳送到哪個寄存器,都要加以控制。在各寄存器之間建立數(shù)據(jù)通路的任務(wù),這是由稱為操作控制器的部件來完成的。操作控制器的功能:根據(jù)指令操作碼和時序信號,產(chǎn)生各種操作控制號,以便正確地建立數(shù)據(jù)通路,從而完成取指令和執(zhí)行指令的控制。根據(jù)設(shè)計方法不同,操作控制器可分為:1)采用時序邏輯技術(shù)實現(xiàn)的硬布線控制器

2)采用存儲邏輯實現(xiàn)的微程序控制器3)前兩種方式的組合的控制器

操作控制器對各部件產(chǎn)生的控制信號必須嚴格遵守時序關(guān)系,這是由時序產(chǎn)生器的部件完成的。時序產(chǎn)生器的功能:對各種操作實施時間上的限制。5.2

指令周期

CPU從內(nèi)存取出一條指令并執(zhí)行該指令;緊接著又是取指令,執(zhí)行指令……,如此周而復(fù)始構(gòu)成了一個封閉的循環(huán)。除非遇到停機指令,否則這個循環(huán)將一直繼續(xù)下去,所以計算機能夠自動的工作下去。開始取指令執(zhí)行指令

指令和數(shù)據(jù)都以二進制的形式存放在內(nèi)存中,CPU能夠準確的判斷哪些是指令,哪些是數(shù)據(jù)并送往相應(yīng)的寄存器并進行相應(yīng)的操作,這是計算機自動工作的前提。本節(jié)討論一些典型指令的工作周期,加深對CPU工作過程的理解。指令周期的概念-時鐘周期:時鐘周期是CPU的基本時間計量單位,它是CPU一切操作的計時標準和基本控制信號,它由計算機的主頻決定。

8086的主頻為5MHZ,則一個時鐘周期為200ns80486主頻為100MHZ,則一個時鐘周期為10ns-機器周期(CPU周期):CPU通過總線從內(nèi)存讀取一個機器字的時間稱為一個CPU周期,一般需要4個時鐘周期,分別稱為T1、T2、T3、T4狀態(tài)。機器周期T1T2T3T4CLK時鐘周期CLK該機器周期讀取的一個機器字可以是指令也可以是數(shù)據(jù)。如果是指令,該機器周期稱取指周期-指令周期:執(zhí)行一條指令需要經(jīng)過讀取指令,指令譯碼及指令執(zhí)行的過程,把執(zhí)行一條指令所需要的時間稱為指令周期。不同指令的指令周期是不等長的,最短時間為兩個機器周期,一個機器周期取指令,一個機器周期執(zhí)行指令;有的復(fù)雜的指令需要更多機器周期。CLK機器周期機器周期機器周期

(取指令)(取有效地址)(執(zhí)行指令)指令周期T1T2T3T4T1T2T3T4T1T2T3T4非訪存指令T1T2T3T4T1T2T3T4機器周期(取指令)指令周期機器周期

(執(zhí)行指令)訪存指令

下面給出6條指令組成的一個程序,通過每一條指令的取指階段和執(zhí)行階段的分解動作,了解指令的指令周期和CPU執(zhí)行程序的過程。

內(nèi)存地址

助記符說明

101

MOVR0,R1傳送指令:非訪存指令

102

LADR1,6取數(shù)指令:訪存指令

103

ADDR1,R2加法指令:非訪存指令

104

STOR2,(R3)存數(shù)指令:訪存指令

105

JMP101跳轉(zhuǎn)指令:程序控制指令

106ANDR1,R3與指令:非訪存指令指令存儲器數(shù)據(jù)存儲器

內(nèi)存地址

數(shù)據(jù)說明

5

***

6

100LAD指令的操作數(shù)

7

***

8***

3040STO指令的操作數(shù)MOV指令的指令周期

MOV是一條典型的RR指令,屬于非訪存指令,它需要兩個機器周期,其中取指令階段需要一個機器周期,執(zhí)行指令階段需要一個機器周期。第一個機器周期(取指令):

-從指存取出指令

-程序計數(shù)器PC加1-對操作碼譯碼并測試第二個機器周期(執(zhí)行指令):操作控制器按照指令的要求發(fā)出控制信號,完成指令要求的操作,在R0和R1之間傳遞數(shù)據(jù)。MOV指令取值周期102+100101012030MOVR0,R110040MOV指令執(zhí)行周期10200102030MOVR0,R1101010040LAD指令的指令周期

LAD是一條RS型訪存指令,它需要三個機器周期,其中取指令階段需要一個機器周期,過程與MOV指令完全相同,執(zhí)行指令階段需要兩個機器周期。第一個機器周期(取指令):

-從指存取出指令

-程序計數(shù)器PC加1-對操作碼譯碼并測試第二個機器周期(執(zhí)行指令):將指令中的地址碼6送數(shù)據(jù)地址寄存器驅(qū)動數(shù)存。第三個機器周期(執(zhí)行指令):從數(shù)存6單元取數(shù)并送寄存器R1。LAD指令取值周期103+110101022030LADR1,610040LAD指令執(zhí)行周期10310102030LADR1,6610040100100ADD指令的指令周期

ADD是一條RR型非訪存指令,它需要兩個機器周期,其中取指令階段需要一個機器周期,過程與MOV指令完全相同,執(zhí)行指令階段需要一個機器周期。第一個機器周期(取指令):

-將PC寄存器中的103送指令地址總線,啟動讀命令

-所選指存103單元的ADD指令經(jīng)指令總線送入指令寄存器IR

-程序計數(shù)器PC加1,變?yōu)?04,為下一條指令做好準備-指令寄存器的操作碼(OP)送指令譯碼器被譯碼測試第二個機器周期(執(zhí)行指令):

-選中R1和R2通用寄存器,R1為源寄存器,R2為目標寄存器

-ALU做R1和R2的加法運算

-ALU送結(jié)果120到數(shù)據(jù)總線

-將數(shù)據(jù)總線的數(shù)據(jù)打入緩沖寄存器DR,運算結(jié)果特征位保存在狀態(tài)寄存器PSW中

-將緩沖寄存器DR中的數(shù)據(jù)打入R2,R2的內(nèi)容變?yōu)?20ADD指令執(zhí)行周期1041002030ADDR1,R21201010040120STO指令的指令周期

ST0是一條RS型訪存指令,它需要三個機器周期,其中取指令階段需要一個機器周期,整個過程與MOV指令完全相同,執(zhí)行指令階段需要兩個機器周期。第一個機器周期(取指令):

-從指存取出指令

-程序計數(shù)器PC加1-對操作碼譯碼并測試第二個機器周期(執(zhí)行指令):將通用寄存器R3中的地址碼30送數(shù)據(jù)地址寄存器驅(qū)動數(shù)存。第三個機器周期(執(zhí)行指令):從寄存器R2中的數(shù)據(jù)120送數(shù)據(jù)總線寫入數(shù)存30單元。STO指令執(zhí)行周期10510030STOR2,(R3)101004030120120JMP指令的指令周期

JMP是一條程序控制指令,需要兩個機器周期,其中取指令階段需要一個機器周期,執(zhí)行指令階段需要一個機器周期。第一個機器周期(取指令):

-從指存取出指令

-程序計數(shù)器PC加1-對操作碼譯碼并測試第二個機器周期(執(zhí)行指令):將JMP指令的地址碼101送程序計數(shù)器PC。JMP指令執(zhí)行周期10610030JMP10110100120120101用方框圖語言表示指令周期-方框代表一個CPU周期,方框中的內(nèi)容表示數(shù)據(jù)通路的操作或某種控制操作。-菱形表示某種判別或測試,不過時間上它依附于緊接它的前面一個方框的CPU周期,而不單獨占用一個CPU周期。-~符號是公操作符號,表示一條指令已經(jīng)執(zhí)行完畢而轉(zhuǎn)入公操作(CPU每執(zhí)行完一條指令,都要測試外部設(shè)備有無中斷請求,DMA控制器有無DMA請求,這些操作稱為公操作)。如果沒有公操作,CPU轉(zhuǎn)入下一條指令的執(zhí)行。-DBUS表示數(shù)據(jù)總線-IBUS表示指令總線-ABUS(D)表示數(shù)據(jù)地址總線-ABUS(I)表示指令地址總線-RD(I)表示讀指存,RD(D)表示讀數(shù)存,-WE(D)表示寫數(shù)存取指周期MOVLADADDSTOJMPR1->ALUALU->DRDR->R0IR->PCIR->ARAR->ABUS(D)M->DRDR->R1RD(D)R1->ALUR2->ALUALU->DRDR->R2執(zhí)行周期WE(D)R3->ARR2->MPC->ABUS(I)M->IBUS->IRPC+1->PC譯碼測試RD(I)例:某計算機有如下部件:ALU,主存M,數(shù)據(jù)寄存器DR,地址寄存器AR,程序計數(shù)器PC,指令寄存器IR,通用寄存器R0—R3,暫存器C和D。1)請將各邏輯部件組成一個計算機的數(shù)據(jù)通路,并標明數(shù)據(jù)流向。2)畫出“ADDR1,(R2)”指令的指令周期流程圖,指令功能是將R1中的數(shù)據(jù)和R2所指內(nèi)存單元的數(shù)據(jù)相加結(jié)果送R1(假設(shè)該指令地址已在PC中)。移位器DCPCIRR3R2R1R0ARMDRALU+1移位器DCPCIRR3R2R1R0ARMDRALU+1ADDR1,[R2]指令的指令周期流程圖如下所示,該指令功能是將R1中的數(shù)據(jù)和R2所指內(nèi)存單元的數(shù)據(jù)相加結(jié)果送R1。M→DR→IR(R1)→C(R2)→ARM→DR→D(C)+(D)→R1

譯碼(PC)→AR,(PC)+1送當前指令地址到AR,PC+1取當前指令到IR,指令譯碼取R1操作數(shù)→C暫存器R2中的內(nèi)容是內(nèi)存地址從內(nèi)存取出數(shù)→D暫存器暫存器C和D中的數(shù)相加后送R1例:某32位CPU其內(nèi)部結(jié)構(gòu)如下圖所示,其中一個累加寄存器AC,一個狀態(tài)條件寄存器和其它四個寄存器,各部分之間的連線表示數(shù)據(jù)通路,箭頭表示信息傳送方向。標出A~D四個寄存器的名稱。寫出CPU從內(nèi)存中讀取指令的全過程。CPU主存儲器MACACBDALU狀態(tài)寄存器指令譯碼器+15.3時序產(chǎn)生器時序信號的理解

CPU從內(nèi)存取出的指令送指令寄存器,取出的數(shù)據(jù)送累計器AC或運算器ALU,但指令和數(shù)據(jù)都是以二進制形式存放在存儲器中,CPU如何知道取得的是指令還是數(shù)據(jù)?

CPU識別指令和數(shù)據(jù)的方法:從時間上來說,取指令事件發(fā)生在指令周期的第一個CPU周期中,即發(fā)生在“取指令”階段,而取數(shù)據(jù)事件發(fā)生在指令周期的后面幾個CPU周期中,即發(fā)生在“執(zhí)行指令”階段。不僅如此,CPU還將一個機器周期分為分為若干個更小的時間段(1個機器周期一般等于4個時鐘周期),同時規(guī)定在1個時間段內(nèi)CPU的動作。這種時間的約束對CPU來說是必要的而且非常嚴格,這種時間約束就是時序控制,是由時序產(chǎn)生器的時序信號來控制的。CLKT1T2T3T4時鐘周期機器周期機器周期T1T2T3T4T1T2T3T4時序產(chǎn)生器如何生成規(guī)律的T1,T2,T3,T4信號和其他信號序列呢?時序產(chǎn)生器的構(gòu)成時序信號產(chǎn)生器由:時鐘源、環(huán)形脈沖發(fā)生器、節(jié)拍脈沖和讀寫時序譯碼邏輯、啟??刂七壿嫷炔糠纸M成。

環(huán)形脈沖發(fā)生器時鐘脈沖源節(jié)拍脈沖和讀寫時序譯碼邏輯RD’WE’啟??刂七壿婻D0WE0T10T30T20T40啟動停止RDWET1T3T2T4C1C2C3C4時鐘周期CLK-時鐘源時鐘源用來為環(huán)形脈沖發(fā)生器提供頻率穩(wěn)定且電平匹配的方波時鐘脈沖信號。它通常由石英晶體振蕩器和與非門組成的正反饋振蕩電路組成,其輸出送至環(huán)形脈沖發(fā)生器。設(shè)時鐘源的頻率為5MHZ,則時鐘源的脈沖周期為1/5M=200ns時鐘周期是CPU的基本時間計量單位-環(huán)形脈沖發(fā)生器環(huán)形脈沖發(fā)生器的作用是產(chǎn)生一組有序的間隔相等或不等的脈沖序列,通過譯碼電路來產(chǎn)生最后所需的節(jié)拍脈沖。為了在節(jié)拍脈沖上不帶干擾毛刺,環(huán)形脈沖發(fā)生器通常采用循環(huán)移位寄存器形式。

CLK0123457689C4C1C2C3時鐘周期在環(huán)形脈沖發(fā)生器的作用下,4個D型觸發(fā)器的輸出分別如下:-節(jié)拍脈沖譯碼為了在一個機器周期內(nèi)產(chǎn)生4個等間隔的節(jié)拍脈沖,我們給出譯碼邏輯如下:T10=C1·C2T20=C2·C3T30=C3T40=C1C4C1C2C3T10=C1·C2T10T20=C2·C3T20CLK0123457689C4C1C2C3T30=C3T30T40=C1T40CLK0123457689

在譯碼電路的作用下,一個機器周期內(nèi)產(chǎn)生4個等間隔的節(jié)拍脈沖。T10T20T30T40機器周期CLK0123457689注意:T10、T20、T30、T40信號在機器加電后,即時鐘脈沖源接通電源后便按照順序周而復(fù)始的產(chǎn)生機器需要的原始的機器周期序列。

其中RD0,WE0是經(jīng)過譯碼邏輯產(chǎn)生的對存儲器進行讀/寫操作的時序信號。RD’和WE’是來自控制器的控制信號,他們的持續(xù)時間都是一個機器周期。RD’CLK0123457689C2C3WE’-讀寫信號譯碼存儲器的讀/寫信號必須符合時序的要求,下面給出讀寫信號的譯碼邏輯:RD0=(C2∪C3)·RD’

WE0=(C2∪C3)·WE’RD

0WE0-啟停控制邏輯由于T10~T40信號在機器加電后便按照順序周而復(fù)始的產(chǎn)生,然而只有在啟動機器運行的時候才需要CPU工作的機器周期信號。利用啟停電路控制T10~T40的發(fā)送,經(jīng)過啟停電路的T10~T40我們記做T1、T2、T3、T4。這是CPU工作時需要的機器周期的4個T狀態(tài)。讀寫信號一般為低電平有效,所以啟??刂七壿嬤€要將RD0和WE0轉(zhuǎn)化為RD和WE.這才是讀寫存儲器的信號。T1T2T3T4CLK0123457689RDWE控制方式機器指令的指令周期是由數(shù)目不等的機器周期組成,一條指令使用的機器周期的多少反映了指令動作的復(fù)雜程度;對一個機器周期而言,由數(shù)目不等的操作控制信號組成,操作控制信號所需的時間也不相同。不同操作控制信號的時序控制方法稱為控制器的控制方式-同步控制方式指令執(zhí)行的機器周期數(shù)固定不變,稱為同步控制方式。同步控制方式有下面三種選擇方案:1)采用完全統(tǒng)一的機器周期執(zhí)行各種不同的指令。以控制信號最復(fù)雜繁瑣的指令的機器周期作為標準,意味著對簡單的操作和指令有時間的浪費。2)采用不定長機器周期。對簡單指令用較短的機器周期完成。對較復(fù)雜的指令利用較長的機器周期完成。

機器周期機器周期(取指令)(執(zhí)行指令)指令周期T1T2T3T4T1T2T3機器周期機器周期(取指令)(執(zhí)行指令)T1T2T3T4T1T2T3T4TT延長3)

采用中央控制和局部控制的方式。大部分指令安排在固定的機器周期內(nèi)完成。對復(fù)雜的指令利用較長的機器周期。

-異步控制方式?jīng)]有嚴格的時鐘周期和機器周期,每條指令、每個操作控制信號需要多少時間就占用多少時間,當控制器發(fā)出某一操作控制信號后,等待執(zhí)行部件完成操作后發(fā)“回答”信號,再開始新的操作。-聯(lián)合控制方式該方式為同步控制和異步控制相結(jié)合的方式。1)大部分指令安排在固定的機器周期中,對某些時間難以確定的操作則以執(zhí)行部件的“回答”信號作為本次操作的結(jié)束;2)機器周期的節(jié)拍脈沖數(shù)固定,但是各條指令周期的機器周期數(shù)不固定。目前廣泛采用,一個機器周期有4個節(jié)拍脈沖,即4個T狀態(tài),指令周期可能是2、3或者4個機器周期。5.4微程序控制器根據(jù)設(shè)計方法不同,操作控制器可分為:1)采用時序邏輯技術(shù)實現(xiàn)的硬布線控制器(組合邏輯控制器)

2)采用存儲邏輯實現(xiàn)的微程序控制器優(yōu)點:微程序控制器同硬布線控制器相比較具有規(guī)整性、靈活性、可維護性等一系列優(yōu)點,因而在計算機設(shè)計中逐漸取代了早期采用的硬布線控制器,并已被廣泛地應(yīng)用?;舅枷耄何⒊绦蛟O(shè)計技術(shù)是利用軟件方法來設(shè)計硬件的一門技術(shù)。即仿照通常的解題程序的方法,把操作控制信號編成所謂的“微指令”,存放到一個只讀存儲器里。當機器運行時一條又—條地讀出這些“微指令”,從而產(chǎn)生全機所需要的各種操作控制信號,使相應(yīng)部件執(zhí)行所規(guī)定的操作。微命令和微操作一臺計算機分為兩個部分,控制部件和執(zhí)行部件,控制器就是控制部件,而運算器,存儲器,外圍設(shè)備對控制器來說就是執(zhí)行部件??刂撇考蛨?zhí)行部件的聯(lián)系:1)控制部件通過控制總線向執(zhí)行部件發(fā)送的各種控制信號稱為微命令,執(zhí)行部件接受信號后所進行的操作稱為微操作。2)執(zhí)行部件通過反饋線向控制部件反映操作的情況,使控制部件根據(jù)執(zhí)行部件的“狀態(tài)”下達新的微命令。由于數(shù)據(jù)通路的結(jié)構(gòu)關(guān)系,微操作可以分為兩類:1)相容性微操作,指在同時或同一個CPU周期內(nèi)可以并行執(zhí)行的微操作。2)相斥性微操作,指不能在同時或不能在同一個CPU周期內(nèi)并行執(zhí)行的微操作。

相斥操作相容操作相斥操作相斥操作微指令在機器的一個CPU周期中,一組實現(xiàn)一定操作功能的微命令的組合,構(gòu)成一條微指令。微指令字長23位11微指令中如果操作控制字段的某一位的信息為“1”時,表示發(fā)出微命令,為“0”時,表示不發(fā)出微命令。某條微指令的二進制編碼是:

10011000010000000******完成的四個微操作是:

R1->XR3->Y+LDR1運算器完成了R1+R3->R1的操作。非訪存指令A(yù)DDR1,R3的執(zhí)行周期:PC->AR->ABUSDBUS->DR->IRPC+1->PC開始譯碼測試R1->ALUR3->ALUALU->R1ADD

為了在第二個機器周期執(zhí)行該指令,微指令給出R1->X的選通信號4’,R3->Y的選通信號5’,ALU的加信號+’和R1的選通信號1’,它們都在一個機器周期內(nèi)有效,但這4個信號的到來有嚴格的時間順序關(guān)系,由時序信號T1,T2,T3,T4來控制。微指令:10011000010000000******T1T2T3T4CLK4’5’+’1’45+1設(shè)4=T1·4’,5=T1·5’,+=(T2∪T3)·+’,1=T4·1’微指令的操作控制字段決定給出的微命令,時序產(chǎn)生器決定微命令的時序關(guān)系

一條微指令就能完成一條機器指令嗎?

考慮ADDR2,30的執(zhí)行過程,ADD指令需要三個機器周期組成,第一個是取指周期,后兩個是執(zhí)行周期,微操作如下所示:取指周期:PC->ARAR->ABUSRAM->DRDR->IRPC+1->PC第一個執(zhí)行周期:IR->AR(指令的地址碼送地址寄存器)第二個執(zhí)行周期:AR->ABUSRAM->DRDR->ALU(X端)R2->ALU(Y端)ALU完成加運算

ALU->R2微指令01000011010000000******完成微程序一條機器指令的功能是用許多條微指令組成的序列來實現(xiàn)的,這個微指令序列通常叫做微程序。

完成一條機器指令微操作命令1微操作命令2微操作命令n……微指令110100000…微程序00010010………微操作命令n+1微指令n微程序控制器的結(jié)構(gòu)微程序控制器主要由控制存儲器、微地址寄存器、微命令寄存器和地址轉(zhuǎn)移邏輯構(gòu)成。

將微程序存入到高速的只讀存儲器中,機器指令的解釋執(zhí)行通過讀取對應(yīng)的微程序來完成,存儲邏輯實現(xiàn)的控制器稱為微程序控制器。

微指令的操作控制部分決定給出的微命令,順序控制部分決定下一條微指令在只讀存儲器中的地址,由P測試字段和后續(xù)直接地址構(gòu)成。如果判別測試字段全為0,后續(xù)直接地址給出下一條微指令的地址;否則修改后續(xù)直接地址作為下一條微指令的地址。控制存儲器:存放實現(xiàn)全部指令系統(tǒng)的微程序,它是一種只讀型存儲器。要求速度快,讀出周期短。微地址寄存器:存放讀出微指令的直接地址,決定要讀取的下一條微指令的地址。微命令寄存器:保存讀出微指令的操作控制字段和判別測試字段的信息。地址轉(zhuǎn)移邏輯:承擔自動完成修改微地址的任務(wù)。控制字段

P字段

直接地址

微指令地址轉(zhuǎn)移邏輯:P1=0,P2=0,不修改微地址寄存器中的直接地址,是下一條微指令地址。P1=1,P2=0,則指令寄存器中的指令的操作碼的后四位修改微地址寄存器的四位地址,給出16路分支。如某條指令的操作碼是00001010,則下一條微指令的地址是1010。P1稱為操作碼測試。P1=0,P2=1,則利用進位標志CY求反修改微地址寄存器的最后一位。微程序舉例下面以一個“十進制”加法的機器指令來說明微程序以及微程序的控制?!笆M制”加法指令就是利用BCD碼讓運算器完成十進制的加法運算。4位2進制數(shù)BCD碼00000000110010200113010040101501106011171000810019在計算機中,可以用4位二進制數(shù)表示1位十進制數(shù),這種代碼稱為BCD碼。BCD碼只有0~9十種編碼,對于二進制數(shù)1010~1111在BCD碼中無意義BCD碼調(diào)整原理00001000+0000011100001111(0F)例如:8+7=15BCD碼是逢10進1,4位二進制數(shù)是逢16進1,如果1位BCD碼所對應(yīng)的4位二進制數(shù)超過9,可以補加一個6。+00000110

00010101(15)運算器進行BCD碼的加法運算時,將被加數(shù)、加數(shù)相加后再加6,如果低4位向高4位有進位,不需要調(diào)整;否則得到的和減6。00000111+0000011000001101(0D)例如:7+6=13+00000110

00010011(13)有進位正確00000011+0000010100001000(08)例如:3+5=8+00000110

00001110(0E)無進位不正確-00000110

00001000(08)正確模型機及控制信號第一條微指令對應(yīng)的操作:取指過程第一條微指令的二進制編碼是:00000000000010101100000這條微指令的操作控制字段對應(yīng)4個微操作13位:指存讀命令15位:IBUS->IR17位:PC+1->PC這條微指令的順序控制字段對應(yīng)1個P1測試P1=1,表明后4位給出的不是下一條微指令的地址,根據(jù)P1測試的修改地址的規(guī)則,如果十進制加法指令的操作碼是00001010,則下一條微指令地址1010。第二條微指令對應(yīng)的操作:兩數(shù)相加(被加數(shù)在R1中,加數(shù)在R2中)。該微指令的地址是1010第二條微指令的二進制編碼是01010010010000000001001這條微指令的操作控制字段對應(yīng)4個微操作4位:R1->X7位:R2->Y10位:加操作2位:LDR2’完成R1+R2->R2的操作。這條微指令的順序控制字段沒有P測試表明后4位給出的是下一條微指令的地址,則下一條微指令地址1001第三條微指令對應(yīng)的操作:和加6(和在R2中,加數(shù)6在R3中)。該微指令的地址是1001第三條微指令的二進制編碼是01001100010000000010000這條微指令的操作控制字段對應(yīng)4個微操作6位:R2->X5位:R3->Y10位:加操作2位:LDR2’完成R2+R3->R2的操作。這條微指令的順序控制字段有P2測試P2=1,根據(jù)P2測試的修改地址的規(guī)則,測試進位標志CY,如果CY=1下一條微指令地址0000,如果CY=0,則下一條微指令地址是0001。第四條微指令對應(yīng)的操作:減6調(diào)整,調(diào)整的結(jié)果在R2中。該微指令的地址是0001第四條微指令的二進制編碼是01001100000100000000000這條微指令的操作控制字段對應(yīng)4個微操作6位:R2->X5位:R3->Y12位:減操作2位:LDR2’完成R2-R3->R2的操作。這條微指令的順序控制字段P沒有測試,下一條微指令的地址就是0000,轉(zhuǎn)入公操作或者取指操作。如果CY=1,下一條微指令地址0000,轉(zhuǎn)入公操作或者取指的微指令,取下一條指令。機器指令、微指令、微操作的關(guān)系對于十進制加法指令來說由4條微指令構(gòu)成,其中:第一條微指令的二進制編碼是

00000000000010101100000第二條微指令的二進制編碼是

01010010010000000001001第三條微指令的二進制編碼是

010001001

10000000010000第四條微指令的二進制編碼是

01000100100100000000000機器指令微程序1)一條機器指令對應(yīng)一個微程序,這個微程序是由若干條微指令序列組成的。因此,一條機器指令的功能是由若干條微指令組成的序列來實現(xiàn)的。2)從指令與微指令,程序與微程序,地址與微地址的一一對應(yīng)關(guān)系來看,前者與內(nèi)存儲器有關(guān),后者與控制存儲器有關(guān)。3)每一個CPU周期就對應(yīng)一條微指令。程序計數(shù)器PC+1指令存儲器地址譯碼指令寄存器IROP指令地址微指令微地址微地址寄存器控制存儲器地址譯碼地址轉(zhuǎn)換邏輯控制字段……微命令信號P字段狀態(tài)信號P字段直接地址例:A、B、C、I四條微指令的地址如圖所示,P1測試處的微指令轉(zhuǎn)移利用指令寄存器的指令操作碼的IR5IR6修改微地址寄存器的最后兩位uA1和uA0,P2測試處的微指令轉(zhuǎn)移利用進位標志CY修改微地址寄存器的uA2。寫出控制存儲器中所有微指令P測試位和直接地址的內(nèi)容??刂拼鎯ζ鞑僮骺刂莆籔1P2uA0~uA3P測試位直接地址******地址0000000100100011010001010110011110001001101010111100110111101111******************************************************************************************000001A1010**B000100H000101I000101N000000O001110J010*11C000101D001101E000010F001111K001100G000101L000100MABEGKMFHDCIJLNOIR5IR6=00IR5IR6=01IR5IR6=10IR5IR6=11CY=0CY=100000001P1P210000011

了解了微程序控制器的原理,我們知道確定微指令的結(jié)構(gòu)是設(shè)計微程序的關(guān)鍵,也是控制器設(shè)計的關(guān)鍵,也是CPU的關(guān)鍵,同樣也是指令系統(tǒng)的關(guān)鍵。一個良好的微指令結(jié)構(gòu)應(yīng)該滿足:1)有利于縮短微指令字的長度2)有利于減少控制存儲器的容量3)有利于提高微程序的執(zhí)行速度4)有利于微指令的修改5)有利于提高微程序的靈活性-微指令編碼直接表示法:特點是操作控制宇段中的每一位代表一個微命令。這種方法的優(yōu)點是簡單直觀,其輸出直接用于控制。缺點是微指令字較長,因而使控制存儲器容量較大。

編碼表示法:編碼表示法是把一組相斥性的微命令信號組成一個字段,然后通過字段譯碼器對每一個微命令信號進行譯碼,譯碼輸出作為操作控制信號。優(yōu)點是可以用較小的二進制信息位表示較多的微命令信號,可使微指令字大大縮短。缺點是微程序的執(zhí)行速度稍稍減慢。

字段1字段2……P字段下一個微地址譯碼譯碼譯碼………微操作微程序設(shè)計技術(shù)

某計算機有8條微指令I(lǐng)1—I8,每條微指令所包含的微命令控制信號見下表所示,a—j分別對應(yīng)10種不同性質(zhì)的微命令信號。假設(shè)一條微指令的控制字段僅限8位,請安排微指令的控制字段格式。微指令abcdefghijI1I2I3I4I5I6I7I8√√√√√√√√√√√√√√√√√√√√√√√√√

經(jīng)分析(d,i,j)和(e,f,h)可分別組成兩個小組或兩個字段,然后進行譯碼,可得六個微命令信號,剩下的a,b,c,g四個微命令信號可進行直接控制,其整個控制字段組成如下:

-微地址的形成方式多路轉(zhuǎn)移方式:在微指令順序執(zhí)行的時候,后續(xù)微指令的地址由順序控制字段的直接地址給出;出現(xiàn)分支轉(zhuǎn)移時,由順序控制字段的判別測試位來選擇跳轉(zhuǎn)的微地址。如果狀態(tài)信息位有n位就可以實現(xiàn)微程序2n路轉(zhuǎn)移。多路轉(zhuǎn)移方式的特點是:能以較短的順序控制字段配合,實現(xiàn)多路并行轉(zhuǎn)移,靈活性好,速度較快。計數(shù)器法方式:這種方法同用程序計數(shù)器來產(chǎn)生機器指令地址的方法相類似。微地址寄存器通常作為計數(shù)器,在順序執(zhí)行微指令的時候,后續(xù)微指令地址由現(xiàn)行微地址加一產(chǎn)生。為此順序執(zhí)行的微指令必須安排在控制存儲器的連續(xù)單元中。-微指令格式水平型微指令:一次能定義并執(zhí)行多個微操作命令的微指令。控制字段判別測試字段下地址字段

水平型微指令中控制字段某位為“1”時,表示發(fā)出微命令,為“0”時,表示不發(fā)出微命令,它的特點是:1)可以使多個微操作并發(fā)執(zhí)行,效率高。2)由于水平型微命令并行執(zhí)行的效率高,可以用較少的微指令來完成一條機器指令的執(zhí)行。3)水平型微指令一般直接控制對象,速度快。4)水平型微指令的微指令字較長。5)水平型微指令用戶難以掌握,不宜理解。垂直型微指令:微指令中設(shè)置微操作碼字段,對微操作碼進行譯碼來產(chǎn)生相應(yīng)的微命令。一條微指令譯碼只能產(chǎn)生一個或者幾個微命令,這種微指令稱為垂直型微指令。垂直型微指令的結(jié)構(gòu)類似于機器指令的結(jié)構(gòu)。000源寄存器目的寄存器…果微操作碼000表示寄存器-寄存器型微指令,源寄存器0010表示DR,目的寄存器1001表示IR,則微指令00000101001***表示一個微操作:DR->IR

001X端輸入Y端輸入ALU操果微操作碼001表示運算控制微指令,X端輸入0001表示R1,Y輸入端0010表示R2,ALU操作的010表示加運算,則微指令00100010010010表示三個微操作:R1->X

R2->Y運算器+操作

垂直型微指令一般只能完成一個微操作,并行能力操作差,并且垂直型微指令不直接控制對象,要經(jīng)過譯碼,速度慢。但是垂直型微指令具有指令字比較短的特點,并且對用戶來說容易掌握。5.6硬布線控制器基本思想硬布線控制器是早期設(shè)計控制器的一種方法。這種方法是把控制部件看作為產(chǎn)生時序控制信號的邏輯電路,這種邏輯電路是一種由門電路和觸發(fā)器構(gòu)成的復(fù)雜樹形邏輯網(wǎng)絡(luò),故稱之為硬布線控制器。由于硬布線控制器采用完全的邏輯電路來實現(xiàn),一旦控制部件構(gòu)成后,除非重新設(shè)計和物理上對它重新布線,否則要想增加新的控制功能是不可能的。因此在現(xiàn)代的控制器的設(shè)計中已經(jīng)很少使用。與微程序控制相比,硬布線控制的速度較快。其原因是微程序控制中每條微指令都要從控制存儲器中讀取一次,影響了速度,而硬布線控制主要取決于電路延遲。因此,近年來在某些超高速新型計算機結(jié)構(gòu)中,又選用了硬布線控制器。樹形邏輯網(wǎng)絡(luò)N微操作控制信號……C1CnB1Bj結(jié)果反饋信息指令譯碼器I1Im………指令寄存器啟動停止時鐘復(fù)位節(jié)拍電位/脈沖發(fā)生器MiM1TkT1………邏輯網(wǎng)絡(luò)N的輸入信號:邏輯網(wǎng)絡(luò)N的輸出信號:C=f(Im,Mi,Tk,Bj)指令操碼譯碼器的輸出執(zhí)行部件的反饋信息時序產(chǎn)生器的時序信號對執(zhí)行部件進行控制的各種操作信號硬布線控制器基本結(jié)構(gòu)硬布線控制器基本原理:指令執(zhí)行流程M1M3M2

節(jié)拍電平信號M1~Mi就是機器周期信號,一條指令有多少個機器周期就有多少個節(jié)拍電平信號。節(jié)拍脈沖信號T1~Tk就是時鐘周期信號,一個機器周期內(nèi)有多個操作,必須用節(jié)拍脈沖信號對操作的先后次序進行控制。PC->ABUS(I)IBUS->IRPC+1->PCMOVLADADDSTOJMPR1+R2->R2R1->R0IR->PCIR->ARAR->ABUS(D)DBUS->DRDR->R1RD(D)RD(I)R3->ARWE(D)R3->DBUS微操作信號的產(chǎn)生在微程序控制器中,微操作控制信號由微指令產(chǎn)生,并且可以重復(fù)使用。在硬布線控制器中,某一微操作控制信號由布爾代數(shù)表達式描述的輸出函數(shù)產(chǎn)生。結(jié)合上5條指令邏輯網(wǎng)絡(luò)N的輸出讀信號RD(I)的邏輯表達式分析如下:任何指令的第一機器周期都是取指令,只要M1信號有效RD(I)就有效;RD(I)控制信號的邏輯表達式:RD(I)=M1WE(D)控制信號的邏輯表達式:WE(D)=M3·T3·STOLDIR控制信號的邏輯表達式:LDIR=M1·T4LDR2控制信號的邏輯表達式:LDR2=M2·T4·ADDLDDR控制信號的邏輯表達式:LDDR=M2·T3·(MOV+ADD)+M3·T3·LDA

設(shè)計微操作控制信號的方法和過程是,根據(jù)所有機器指令流程圖,尋找出產(chǎn)生同一個微操作信號的所有條件,并與適當?shù)墓?jié)拍電位和節(jié)拍脈沖組合,從而寫出其布爾代數(shù)表達式并進行簡化,然后用門電路或可編程器件來實現(xiàn)。

5.6流水CPU并行處理技術(shù)并行和并發(fā)的含義:-并行性:兩個以上事件在同一時刻發(fā)生。例如在多CPU系統(tǒng)中,同一時刻多個進程在運行。-并發(fā)行:兩個以上事件在同一間隔內(nèi)發(fā)生。如某一時刻CPU中只有一個進程運行,而一個時間段內(nèi)多個進程同時運行。并行性的三種形式:-時間并行:讓多個處理過程在時間上相互錯開,輪流地使用同一套硬件設(shè)備的各個部分,以加快硬件周轉(zhuǎn)而贏得速度。時間并行性概念的實現(xiàn)方式就是采用流水處理部件。

-空間并行:設(shè)置重復(fù)資源,同時工作??臻g并行技術(shù)主要體現(xiàn)在多處理器系統(tǒng)和多計算機系統(tǒng)。

-時間并行+空間并行:時間重疊和資源重復(fù)的綜合應(yīng)用。流水CPU的組成多體交叉存儲器Cache指令部件(指令I(lǐng)+K+1)指令隊列(指令I(lǐng)+K)……(指令I(lǐng)+1)執(zhí)行部件(指令I(lǐng))流水方式CPU-流水CPU的組成:指令部件,指令隊列,執(zhí)行部件。這三個功能部件可以組成一個3級流水線。-指令部件:指令部件由取指令、指令譯碼、計算操作數(shù)地址、取操作數(shù)構(gòu)成一個4級指令流水線地址形成部件指令譯碼部件取操作數(shù)部件取指令部件-執(zhí)行部件:由定點執(zhí)行部件和浮點運算部件構(gòu)成,浮點運算部件以流水方式構(gòu)成運算流水線。對階部件尾數(shù)加部件規(guī)格化部件階碼比較流水CPU的時空圖

空間S時間SWBEXIDIF123456789101112指令1指令2指令3設(shè)一條指令包含4個子過程:取指令(IF)、指令譯碼(ID)、執(zhí)行指令(EX)、結(jié)果回寫(WB)。下面表述了非流水時空圖和流水時空圖??臻gS時間SWBEXIDIF123456789101112I1I2I3超標量技術(shù):具有兩條以上的指令流水線,當流水線滿載時每一個時鐘周期可以執(zhí)行兩條以上的指令。

空間S時間SWBEXIDIF123456789101112假設(shè)每條指令需要4個時間單位執(zhí)行完畢,如果有N條指令:在非流水CPU中,N條指令執(zhí)行完畢需要時間t=N*4。在流水CPU中,N條指令執(zhí)行完畢需要時間t=4+(N-1)。如果有20條指令,非流水CPU需要80個時間單位,而流水CPU需要23個時間單位,計算機的速度有很大提高。流水線分類-指令流水線是指令執(zhí)行步驟的并行。將指令流的處理過程劃分為取指令、譯碼、執(zhí)行、寫回等幾個并行處理的過程段。目前,幾乎所有的高性能計算機都采用了指令流水線。完成一條指令分7段,每段需一個時鐘周期若流水線不出現(xiàn)斷流1

個時鐘周期出

1

結(jié)果不采用流水技術(shù)7

個時鐘周期出1結(jié)果地址形成部件指令譯碼部件取操作數(shù)部件取指令部件操作執(zhí)行部件回寫結(jié)果部件修改指令指針部件-算術(shù)流水線指運算操作步驟的并行。如流水加法器、流水乘法器、流水除法器等?,F(xiàn)代計算機中已廣泛采用了流水的算術(shù)運算器。完成浮點加運算可分比較階碼、對階、尾數(shù)求和、規(guī)格化四段鎖存器對階功能部件第二段尾數(shù)加部件鎖存器第三段規(guī)格化部件鎖存器第四段鎖存器比較階碼部件第一段-處理機流水線又稱為宏流水線,是指程序步驟的并行。由一串級聯(lián)的處理機構(gòu)成流水線的各個過程段,每臺處理機負責某一特定的任務(wù)。流水線的主要問題-資源相關(guān):指多條指令進入流水線后在同一機器時鐘周期內(nèi)爭用同一個功能部件所發(fā)生的沖突。設(shè)一條指令流水線包含5個子過程:取指令(IF)、指令譯碼(ID)、計算有效地址(EX)、取操作數(shù)(MEM)、結(jié)果回寫(WB)。由于都要訪問存儲器,發(fā)生資源相關(guān)-數(shù)據(jù)相關(guān):在一個程序中,如果必須等前一條指令執(zhí)行完畢后,才能執(zhí)行后一條指令,這兩條指令就是數(shù)據(jù)相關(guān)。有下面三條指令流水執(zhí)行:

ADDR1,R2,R3;R2+R3->R1SUBR4,R1,R5;R1-R5->R4ANDR6,R1,R7;R1∧R7->R6ADD在時鐘5寫入R1,SUB在時鐘3讀取寄存器R1,AND在時鐘4讀取寄存器R1,發(fā)生了數(shù)據(jù)相關(guān)。例4:流水線中有三類數(shù)據(jù)相關(guān)沖突:寫后讀相關(guān);讀后寫相關(guān);寫后寫相關(guān)。判斷以下三組指令各存在哪種類型的數(shù)據(jù)相關(guān)。(1)I1:

ADDR1,R2,R3;(R2)+(R3)->R1

I2:

SUBR4,R1,R5;(R1)-(R5)->R4(2)I3:

STOM(x),R3;(R3)->M(x),M(x)是存儲器單元

I4:

ADDR3,R4,R5;(R4)+(R5)->R3(3)I5:

MULR3

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論