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

下載本文檔

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

文檔簡介

第八章中央處理單元計(jì)算機(jī)組成原理2009年2月6日8.1CPU的功能和結(jié)構(gòu)8.1.1CPU的結(jié)構(gòu)CPU可以自動完成取出指令和執(zhí)行指令的任務(wù)。

CPU結(jié)構(gòu)框圖PCIR指令控制操作控制時(shí)間控制數(shù)據(jù)加工處理中斷ALU寄存器中斷系統(tǒng)1.CPU與系統(tǒng)總線CU時(shí)序電路寄存器ALU

中斷

系統(tǒng)CUCPU控制總線數(shù)據(jù)總線地址總線2.CPU的內(nèi)部結(jié)構(gòu)

算術(shù)和布爾邏輯取反移位狀態(tài)標(biāo)志內(nèi)部數(shù)據(jù)總線CPU寄存器CU中斷系統(tǒng)ALU控制信號…8.1.2CPU的功能

當(dāng)代主流計(jì)算機(jī)所遵循的仍然是馮.諾依曼的“存儲程序”思想,即:當(dāng)用計(jì)算機(jī)解決某個問題時(shí),首先必須為它編寫程序。

由第七章的討論已知,程序?qū)嵸|(zhì)上是一個指令序列,這個序列將明確地告訴計(jì)算機(jī):應(yīng)該逐步地執(zhí)行什么操作;在什么地方找到用來操作的數(shù)據(jù),結(jié)果存到何處等。

一旦把程序裝入內(nèi)存儲器,就可以由計(jì)算機(jī)來自動完成取出指令和執(zhí)行指令的任務(wù)。專門用來完成此項(xiàng)工作的計(jì)算機(jī)部件稱為中央處理單元,通常簡稱:CPU。顯然,CPU對整個計(jì)算機(jī)系統(tǒng)的運(yùn)行是極其重要的。CPU具有如下四方面的基本功能:★指令控制

程序的順序控制稱為指令控制。用于控制指令嚴(yán)格地按程序規(guī)定的順序,逐條取出并加以執(zhí)行。

★操作控制

一條指令的功能往往是由若干個操作信號的組合來實(shí)現(xiàn)的,因此,CPU負(fù)責(zé)管理并產(chǎn)生每條指令所對應(yīng)的操作信號,并把各種操作信號送往相應(yīng)的部件,從而控制這些部件按指令的要求進(jìn)行動作。ADDR1,R0★時(shí)間控制

對各種操作的實(shí)施時(shí)間進(jìn)行定時(shí),稱為時(shí)間控制。在計(jì)算機(jī)中,各種指令的操作信號以及一條指令的整個執(zhí)行過程都嚴(yán)格的時(shí)間要求,需要CPU設(shè)定規(guī)定的時(shí)序關(guān)系?!飻?shù)據(jù)加工

數(shù)據(jù)加工就是對數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算處理,這是CPU的核心功能之一。ADDR1,R08.1.3CPU的基本組成

CPU的基本部分由運(yùn)算器、cache和控制器三大部分組成。

CPU模型參看CAI演示

運(yùn)算部件寄存器寄存器控制部件運(yùn)算器控制器運(yùn)算器:

由算術(shù)邏輯運(yùn)算單元(ALU)、累加寄存器、數(shù)據(jù)緩沖寄存器和狀態(tài)條件寄存器組成,它是數(shù)據(jù)加工處理部件。相對控制器而言,運(yùn)算器是一種執(zhí)行部件,它是接受控制器的命令而進(jìn)行動作,即:運(yùn)算器所進(jìn)行的全部操作都是由控制器發(fā)出的控制信號來指揮的。

運(yùn)算器的主要功能:

(1)執(zhí)行所有的算術(shù)運(yùn)算;

(2)執(zhí)行所有的邏輯運(yùn)算,并進(jìn)行邏輯測試(如零值測試或兩個值的比較等)??刂破?

由程序計(jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、時(shí)序產(chǎn)生器和操作控制器等組成,它是發(fā)布命令的“決策機(jī)構(gòu)”,即完成對整個計(jì)算機(jī)系統(tǒng)操作的協(xié)調(diào)與指揮??刂破鞯闹饕δ埽?/p>

(1)控制機(jī)器從內(nèi)存中取出一條指令,并指出下一條指令在內(nèi)存中的位置;

(2)對指令進(jìn)行譯碼或測試,并產(chǎn)生相應(yīng)的操作控制信號,送往相應(yīng)的部件,啟動規(guī)定的動作;

(3)指揮并控制CPU、內(nèi)存與輸入/輸出(I/O)設(shè)備之間數(shù)據(jù)流動的方向。8.1.4

CPU中的主要寄存器

在CPU中至少要有六類寄存器:數(shù)據(jù)緩沖寄存器(DR)、指令寄存器(IR)、程序計(jì)數(shù)器(PC)、地址寄存器(AR)、累加寄存器(AC)、狀態(tài)條件寄存器(PSW),并且根據(jù)需要,可以擴(kuò)充其數(shù)目。1.存儲器數(shù)據(jù)緩沖寄存器(MDR)

存儲器數(shù)據(jù)緩沖寄存器MDR用來暫時(shí)存放由內(nèi)存讀出的一條指令或一個數(shù)據(jù)字;反之,當(dāng)向內(nèi)存存入一條指令或一個數(shù)據(jù)字時(shí),也先將它們送到存儲器數(shù)據(jù)緩沖寄存器MDR中,然后再寫入內(nèi)存。存儲器緩沖寄存器MDR的作用是:

(1)作為CPU和內(nèi)存及外部I/O設(shè)備之間信息傳送的中轉(zhuǎn)站;

(2)用于補(bǔ)償CPU與內(nèi)存及外圍設(shè)備之間在操作速度上的差別;

(3)在單累加器結(jié)構(gòu)的運(yùn)算器中,存儲器數(shù)據(jù)緩沖寄存器還可兼作為操作數(shù)寄存器。2.指令寄存器(IR)

指令寄存器IR用來保存當(dāng)前正在執(zhí)行的一條指令。當(dāng)執(zhí)行一條指令時(shí),先把它從內(nèi)存取到緩沖寄存器中,然后再傳送至指令寄存器。指令分為操作碼和地址碼字段,由二進(jìn)制數(shù)字組成。為了執(zhí)行任何給定的指令,必須對操作碼進(jìn)行測試,以便識別所要求的操作,指令譯碼器就是完成這項(xiàng)工作的。指令寄存器中的操作碼字段被送入指令譯碼器中,操作碼一經(jīng)譯碼后,即可向操作控制器發(fā)出具體操作的特定信號。3.程序計(jì)數(shù)器(PC)

為了保證程序能夠連續(xù)地執(zhí)行下去,CPU必須具有某些手段來自動確定下一條指令的地址。而程序計(jì)數(shù)器PC正是起到這種作用的,所以PC通常又稱為指令計(jì)數(shù)器。在程序開始執(zhí)行前,必須將該程序在內(nèi)存單元的起始地址,即第一條指令的地址送入PC。當(dāng)執(zhí)行指令時(shí),CPU將自動修改PC的內(nèi)容,使其保持的總是將下一條要執(zhí)行的指令的地址。由于大多數(shù)指令都是按順序來執(zhí)行的,所以修改的過程通常只是簡單的對PC自增即可。當(dāng)遇到轉(zhuǎn)移指令(如JMP指令)時(shí),由于后繼指令的地址(即PC的內(nèi)容)必須從指令的地址段取得。在這種情況下,下一條指令的地址將由轉(zhuǎn)移指令來規(guī)定,而不是像通常一樣按順序來取得。因此程序計(jì)數(shù)器PC的結(jié)構(gòu),應(yīng)當(dāng)是具有信息寄存和計(jì)數(shù)兩種功能的結(jié)構(gòu)。4.地址寄存器(MAR)

地址寄存器AR用來保存當(dāng)前CPU所訪問的內(nèi)存單元的地址。由于在內(nèi)存和CPU之間存在著操作速度上的差別,所以必須使用地址寄存器來保持地址信息,直到對內(nèi)存的讀/寫操作完成為止。當(dāng)CPU和內(nèi)存進(jìn)行信息交換,即CPU向內(nèi)存存/取數(shù)據(jù)或指令時(shí),都要使用地址寄存器AR和數(shù)據(jù)緩沖寄存器DR。此外,我們可以把外圍I/O設(shè)備的設(shè)備地址作為像內(nèi)存的地址單元那樣來進(jìn)行訪問,那么可知,當(dāng)CPU和外圍設(shè)備交換信息時(shí),同樣需要使用地址寄存器和數(shù)據(jù)緩沖寄存器。地址寄存器的結(jié)構(gòu)和數(shù)據(jù)緩沖寄存器、指令寄存器一樣,通常使用單純的寄存器結(jié)構(gòu)。信息的存入一般采用電位-脈沖方式,即電位輸入端對應(yīng)數(shù)據(jù)信息位,脈沖輸入端對應(yīng)控制信號,在控制信號clk的作用下,瞬時(shí)地將信息打入寄存器5.累加寄存器(AC)

累加寄存器AC通常簡稱為累加器,它是一個通用寄存器。其功能是:當(dāng)運(yùn)算器需執(zhí)行算術(shù)或邏輯運(yùn)算時(shí),為ALU提供一個工作區(qū),它可暫時(shí)存放ALU運(yùn)算的結(jié)果信息。顯然,運(yùn)算器中至少要有一個累加寄存器。目前CPU中的累加寄存器,多達(dá)16個,32個,甚至更多。當(dāng)使用多個累加器時(shí),就變成通用寄存器堆結(jié)構(gòu),其中任何一個可存放源操作數(shù),也可存放結(jié)果操作數(shù)。在這種情況下,需要在指令格式中對寄存器號加以編址。6.狀態(tài)條件寄存器(PSW)

狀態(tài)條件寄存器保存由算術(shù)指令和邏輯指令運(yùn)行或測試的結(jié)果建立的各種條件碼內(nèi)容,如運(yùn)算結(jié)果進(jìn)位標(biāo)志(C),運(yùn)算結(jié)果溢出標(biāo)志(V),運(yùn)算結(jié)果為零標(biāo)志(Z),運(yùn)算結(jié)果為負(fù)標(biāo)志(N)等等。這些標(biāo)志位通常分別由1位觸發(fā)器保存。除此之外,狀態(tài)條件寄存器還保存中斷和系統(tǒng)工作狀態(tài)等信息,因此,狀態(tài)條件寄存器是一個由各種狀態(tài)條件標(biāo)志拼湊而成的寄存器。其作用是使CPU和系統(tǒng)能及時(shí)了解機(jī)器運(yùn)行狀態(tài)和程序運(yùn)行狀態(tài)。

8.2操作控制器與時(shí)序產(chǎn)生器

數(shù)據(jù)通路:是指寄存器之間傳送信息的通路。信息從什么地方開始,中間經(jīng)過哪個寄存器或多路開關(guān),最后傳送到哪個寄存器,都要加以控制。在各寄存器之間建立數(shù)據(jù)通路的任務(wù),是由稱為操作控制器的部件來完成的。

時(shí)序產(chǎn)生器:產(chǎn)生并發(fā)出計(jì)算機(jī)所需要的時(shí)序控制信號。

操作控制器的功能:就是根據(jù)指令操作碼和時(shí)序信號,產(chǎn)生各種操作控制信號,以便正確地建立數(shù)據(jù)通路,從而完成取指令和執(zhí)行指令的控制。

根據(jù)設(shè)計(jì)方法不同,操作控制器可分為時(shí)序邏輯型、存儲邏輯型、時(shí)序邏輯與存儲邏輯結(jié)合型三種類型。1.硬布線控制器是采用時(shí)序邏輯技術(shù)來實(shí)現(xiàn)的控制器,屬于時(shí)序邏輯型;2.微程序控制器是采用存儲邏輯來實(shí)現(xiàn)的控制器,屬于存儲邏輯型;3.前兩種方式的組合

(時(shí)序+存儲)的方法構(gòu)成。8.3指令周期

8.3.1指令周期的基本概念

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

CAI演示[名詞概念]:指令周期

:

CPU從內(nèi)存取出一條指令并執(zhí)行完這條指令的時(shí)間總和。

CPU周期

:

又稱機(jī)器周期,CPU訪問內(nèi)存所花的時(shí)間較長,因此用CPU從內(nèi)存讀取一條指令字的所需的最短時(shí)間來定義。時(shí)鐘周期

:

通常稱為節(jié)拍脈沖或T周期。一個CPU周期包含若干個時(shí)鐘周期T。

相互關(guān)系:

1個指令周期=若干個CPU周期;

1個CPU周期=若干T周期

取指時(shí)間+執(zhí)行指令時(shí)間

下圖示出了采用定長CPU周期的指令周期示意圖。

[例]:為了分析不同類型的指令所對應(yīng)的指令周期的情況,后面分析由5條典型指令構(gòu)成的簡單程序的執(zhí)行特征,以加深對指令周期及指令執(zhí)行過程的理解。

020

CLA

;累加器清0

(非訪內(nèi)指令)

021

ADD30;(AC)+(30)→AC

(訪內(nèi)指令)

022

STA40

;(AC)→(40)

(訪內(nèi)指令)

023

NOP

;空操作

(非訪內(nèi)指令)

024

JMP21

;21→PC

(非訪內(nèi)指令)可見:程序中有兩大類指令,即:非訪內(nèi)型指令和訪內(nèi)型指令。8.3.2指令周期1.一個指令周期包括如下周期:取指:將下一條指令由存儲器讀入中央處理器。執(zhí)行:解釋操作碼并完成指定的操作。中斷:若中斷是允許的并且已出現(xiàn),則保存當(dāng)前進(jìn)程的狀態(tài)并為此中斷服務(wù)。開始取下一條指令執(zhí)行指令檢查中斷處理中斷停機(jī)圖8-4有中斷的指令周期2.間址周期指令的執(zhí)行可能涉及到一個或多個存儲器中的操作數(shù),它們每個都要求一次存儲器訪問,而且,若使用間接尋址,則還需要另外的存儲器訪問。我們可把間接地址的取看成是一個額外的指令子周期,如下圖所示。動作的主線由交替的取指令和指令執(zhí)行動作組成。取來一條指令之后,要對它進(jìn)行檢查以確定是否需要間接尋址。若是,則所要求的操作數(shù)使用間接尋址方式取來。在執(zhí)行之后,可能有一個中斷在取下一條指令之前被處理。

取指令執(zhí)行間接中斷圖8-5指令周期具有間接尋址的指令周期帶有中斷周期的指令周期取指周期間址周期指令周期執(zhí)行周期取指周期間址周期指令周期執(zhí)行周期中斷周期3.指令周期流程取指周期執(zhí)行周期有間址嗎?有中斷嗎?間址周期中斷周期是是否否圖8-6準(zhǔn)確地說明了指令周期的本質(zhì)。一旦取來一條指令,它的操作數(shù)指定器必須證實(shí)。然后取每個存儲器中的操作數(shù),這個過程可能要求間接尋址。寄存器操作數(shù)不需要取,一旦操作碼被執(zhí)行,可能需要一個類似的過程將結(jié)果存入主存。指令地址計(jì)算指令操作譯碼操作數(shù)地址計(jì)算數(shù)據(jù)操作操作數(shù)地址計(jì)算中斷檢查中斷取指令取操作數(shù)存操作數(shù)間接間接下一條指令字符串或向量無中斷圖8-6指令周期狀態(tài)圖4.CPU工作周期的標(biāo)志CPU訪存有4種性質(zhì)取指令取地址取操作數(shù)存程序斷點(diǎn)取指周期間址周期執(zhí)行周期中斷周期FEDINDDINTDCLK1FE1IND1EX1INTEXDCPU的4個工作周期5.三類指令的指令周期取指周期執(zhí)行周期取指周期執(zhí)行周期取指周期執(zhí)行周期取指周期間址周期執(zhí)行周期(1)非訪存指令周期(2)直接訪存指令周期(3)間接訪存指令周期(4)轉(zhuǎn)移指令周期

(1)非訪存指令的指令周期

CLA是一條非訪內(nèi)指令,它需要兩個CPU周期,其中:取指令階段需要一個CPU周期,執(zhí)行指令階段需要一個CPU周期。其指令周期請參看CAI演示①取指令階段

(a)程序計(jì)數(shù)器PC的內(nèi)容20(八進(jìn)制)被裝入地址寄存器AR;

(b)程序計(jì)數(shù)器內(nèi)容加1,變成21,為取下一條指令做好準(zhǔn)備;

(c)地址寄存器的內(nèi)容被放到地址總線上;

(d)所選存儲器單元20的內(nèi)容經(jīng)過數(shù)據(jù)總線,傳送到數(shù)據(jù)緩沖寄存器DR;

(e)緩沖寄存器的內(nèi)容傳送到指令寄存器IR;

(f)指令寄存器中的操作碼被譯碼或測試;

(g)CPU識別出是指令CLA,至此,取指令階段即告結(jié)束。

②執(zhí)行指令階段

(a)操作控制器送一控制信號給算術(shù)邏輯運(yùn)算單元ALU;

(b)ALU響應(yīng)該控制信號,將累加寄存器AC的內(nèi)容全部清零,從而執(zhí)行了CLA指令。

(2)取數(shù)(訪存)指令的指令周期

顯然,本程序中的ADD指令是一條訪存型指令,本指令的指令周期由三個CPU周期組成,1個CPU周期用于取出指令,2個CPU周期用于指令的執(zhí)行。

請參看CAI演示。①.送操作數(shù)地址

第二個CPU周期主要完成送操作數(shù)地址。在此階段,CPU的動作只有一個,那就是把指令寄存器中的地址碼部分(30)裝入地址寄存器,其中30為內(nèi)存中存放操作數(shù)的地址。

把指令寄存器中的地址碼部分(30)裝入地址寄存器第三個CPU周期主要完成取操作數(shù)并執(zhí)行加法操作中。在此階段,CPU完成如下動作:

(AC)+(30)→AC

(2)由存儲器單元30中讀出操作數(shù)(6),并經(jīng)過數(shù)據(jù)總線傳送到緩沖寄存器。

(3)存數(shù)指令的指令周期

本例中,STA指令也是一條訪內(nèi)型指令,對應(yīng)的指令周期由三個CPU周期組成。也是:1個CPU周期用于取出指令,2個CPU周期用于指令的執(zhí)行。

請參看CAI演示。在執(zhí)行階段的第一個CPU周期中,CPU完成的動作是把指令寄存器中地址碼部分的形式地址40裝到地址寄存器。其中數(shù)字40是操作數(shù)地址。①.送操作數(shù)地址執(zhí)行階段的第二個CPU周期中,累加寄存器的內(nèi)容傳送到緩沖寄存器,然后再存入到所選定的存儲單元(40)中。CPU完成如下動作:

(a)累加器的內(nèi)容(6)被傳送到數(shù)據(jù)緩沖寄存器DR;

(b)把地址寄存器的內(nèi)容(40)發(fā)送到地址總線上,40即為將要存入的數(shù)據(jù)6的內(nèi)存單元號;

(c)把緩沖寄存器的內(nèi)容(6)發(fā)送到數(shù)據(jù)總線上;

(d)數(shù)據(jù)總線上的數(shù)寫入到所選中的存儲器單元中,即將數(shù)6寫入到存儲器40號單元中。

注意:

在這個操作之后,累加器中仍然保留和數(shù)6,而存儲器40號單元中原先的內(nèi)容被沖掉。

(4)空操作指令和轉(zhuǎn)移指令的指令周期第四條指令即“NOP”指令,這是一條空操作指令。其中第一個CPU周期中取指令,CPU把23號單元的“NOP”指令取出放到指令寄存器;第二個CPU周期中執(zhí)行該指令。

因譯碼器譯出是“NOP”指令,第二個CPU周期中操作控制器不發(fā)出任何控制信號,機(jī)器空等一個CPU周期。JMP指令的指令周期由兩個CPU周期組成,請參看CAI演示。①.第一個CPU周期(取指令階段)

CPU把24號單元的“JMP21”指令取出放至指令寄存器,同時(shí)程序計(jì)數(shù)器內(nèi)容加1,變?yōu)?5,從而取下一條指令做好準(zhǔn)備。(24)→IR(PC)+1→PC②.第二個CPU周期(執(zhí)行階段)

CPU把指令寄存器中地址碼部分21送到程序計(jì)數(shù)器,從而用新內(nèi)容21代替PC原先的內(nèi)容25。這樣,下一條指令將不從25單元讀出,而是從內(nèi)存21單元開始讀出并執(zhí)行,從而改變了程序原先的執(zhí)行順序。

五條指令的取指和執(zhí)行過程

我們把前面的五條典型指令加以歸納,其取指和執(zhí)行過程請見CAI演示。2.數(shù)據(jù)流指令周期期間,嚴(yán)格的事件序列取決于中央處理器的設(shè)計(jì),然而我們能以通常的方式取出什么事件必定發(fā)生。先假定一個中央處理器,它有存儲器地址寄存器(MAR)一個存儲器緩沖寄存器(MDR),一個程序計(jì)數(shù)器(PC),一個指令寄存器(IR)。在取指令周期期間,一條指令由存儲器讀入,圖8-6表示此期間的數(shù)據(jù)流動。開始時(shí)PC內(nèi)容有待取的下一條指令的地址。這個地址被傳送到并放在地址總線上??刂破靼l(fā)生一次存儲讀,其結(jié)果放到數(shù)據(jù)總線上并被復(fù)制到MBR,然后傳送到IR。在此期間PC增1,為下次取指做好準(zhǔn)備。

1.取指周期數(shù)據(jù)流指令周期的數(shù)據(jù)流MDRCUMARPCIR存儲器CPU地址總線數(shù)據(jù)總線控制總線IR+1

一旦經(jīng)歷取指周期,控制器檢查IR的內(nèi)容,以確定是否有一個使用間接尋址的操作數(shù)指定器。若是一個間址周期完成,如圖8-8所示,這是一個簡單周期。MDR最右的N位是一個地址引用,被傳送到MAR。然后,控制器發(fā)一個存儲器讀信號,得到所要求的操作數(shù)地址并送入MDR。像取指和間址周期一樣,中斷周期是可預(yù)期的。圖8-9。PC的當(dāng)前內(nèi)容必須保存,以便在中斷之后中央處理器能恢復(fù)正常的工作。于是,PC的內(nèi)容傳送到MBR,將被寫入存儲器。為此目的,一個專門的存儲器位置內(nèi)控制器裝入,例如它可能是一個堆棧指針。年三月中斷子程序的地址裝入PC。結(jié)果是,下一指令周期將以取此相應(yīng)的指令而開始。

間址周期數(shù)據(jù)流MDRCUMARCPU地址總線數(shù)據(jù)總線控制總線PCIR存儲器MDR執(zhí)行周期數(shù)據(jù)流中斷周期數(shù)據(jù)流不同指令的執(zhí)行周期數(shù)據(jù)流不同MDRCUMARCPU地址總線數(shù)據(jù)總線控制總線PC存儲器程序計(jì)數(shù)器運(yùn)算器控制器控制存儲器用于運(yùn)算器輸入/出設(shè)備主存儲器控制總線041278BD2090CZVS接口.PCMARIR數(shù)據(jù)總線地址總線ALU乘商寄存器66881234R9操作數(shù)地址操作碼寄存器組映射地址寄存器指令寄存器微程序定序器主振脈沖微指令寄存器下地址字段內(nèi)容80034090807A48098FBAC003041800807800801

0401

0401

4275

4275

MARPC讀內(nèi)存,IR讀出內(nèi)容R0

R0+R1PCPC+1+ADDR0,R18.3.3用指令流程圖表示指令周期上述典型指令用指令流程圖描述

·公操作:指每一條指今執(zhí)行完畢后,CPU所進(jìn)行的一些操作,這些操作包括CPU對外設(shè)請求的處理,如中斷處理、通道處理等。

·方框圖語言描述方法是較為重要的內(nèi)容,應(yīng)掌握。例題1:某計(jì)算機(jī)的數(shù)據(jù)通路如下圖所示,其中M—主存,MBR—主存數(shù)據(jù)寄存器,MAR—主存地址寄存器,R0-R3—通用寄存器,IR—指令寄存器,PC—程序計(jì)數(shù)器(具有自增能力),C、D--暫存器,ALU—算術(shù)邏輯單元(此處做加法器看待),移位器—左移、右移、直通傳送。所有雙向箭頭表示信息可以雙向傳送。

請按數(shù)據(jù)通路圖畫出“ADD(R1),(R2)+”指令的指令周期流程圖。該指令的含義是兩個數(shù)進(jìn)行求和操作。其中源操作地址在寄存器R1中,目的操作數(shù)尋址方式為自增型寄存器間接尋址(先取地址后加1)。解:“ADD(R1),(R2)+”指令是SS型指令,兩個操作數(shù)均在主存中。其中源操作數(shù)地址在R1中,所以是R1間接尋址。目的操作數(shù)地址在R2中,由R2間接尋址,但R2的內(nèi)容在取出操作數(shù)以后要加1進(jìn)行修改。指令周期流程圖如圖所示:例題2:某計(jì)算機(jī)有如下部件:ALU,移位器,主存M,主存數(shù)據(jù)寄存器MDR,主存地址寄存器MAR,指令寄存器IR,通用寄存器R0——R3

,暫存器C和D。見下圖所示(1)請將各邏輯部件組成一個數(shù)據(jù)通路,并標(biāo)明數(shù)據(jù)流向。(2)畫出“ADDR1,(R2)”指令的指令周期流程圖,指令功能是(R1)+((R2))→R1。解:(1)各功能部件聯(lián)結(jié)成如圖所示數(shù)據(jù)通路。(2)此指令為RS型指令,一個操作數(shù)在R1中,另一個操作數(shù)在R2為地址的內(nèi)存單元中,相加結(jié)果放在R1中。送當(dāng)前指令地址到MAR取當(dāng)前指令到IR,PC+1,為取下條指令做好準(zhǔn)備①取R1操作數(shù)→C暫存器。②R2中的內(nèi)容是內(nèi)存地址③從內(nèi)存取出數(shù)→D暫存器④暫存器C和D中的數(shù)相加后送R1

8.4時(shí)序產(chǎn)生器和控制方式1.時(shí)序信號的作用計(jì)算機(jī)的操作控制器發(fā)出的各種控制信號是時(shí)間因素和空間因素的函數(shù),以保證機(jī)器有條不紊地工作。2.時(shí)序信號組成時(shí)序系統(tǒng)最基本體制:電位-脈沖制,即脈沖到達(dá)之前,電平信號必須要穩(wěn)定。以操作控制信號控制數(shù)據(jù)通路。以時(shí)序信號保證各操作信號執(zhí)行的先后次序。

1)硬布線控制器時(shí)序

采用三級體制:主狀態(tài)周期--節(jié)拍電位--節(jié)拍脈沖

(指令周期)(CPU周期)(時(shí)鐘周期)

·主狀態(tài)周期可包含若干個節(jié)拍電位,為最大的時(shí)間單位;

·-個節(jié)拍電位表示一個CPU周期的時(shí)間,它表示了一個較大的時(shí)間單位;

·在一個節(jié)拍電位中又包含若干個節(jié)拍脈沖,表示較小的時(shí)間單位。

2)微程序控制器時(shí)序

采用二級體制:節(jié)拍電位--節(jié)拍脈沖

8.4.1時(shí)序信號產(chǎn)生器

微程序控制器中使用的時(shí)序信號產(chǎn)生器由時(shí)鐘源、環(huán)形脈沖發(fā)生器、節(jié)拍脈沖和讀寫時(shí)序譯碼邏輯、啟??刂七壿嫷炔糠纸M成。1.時(shí)鐘源時(shí)鐘源用來為環(huán)形脈沖發(fā)生器提供頻率穩(wěn)定、且電平匹配的方波時(shí)鐘脈沖信號。它通常由石英晶體振蕩器和與非門組成的正反饋振蕩電路組成,其輸出送至環(huán)形脈沖發(fā)生器。2.環(huán)形脈沖發(fā)生器

環(huán)形脈沖發(fā)生器的作用:是產(chǎn)生一組有序的、間隔相等或不等的脈沖序列,以便通過譯碼電路來產(chǎn)生最后所需的節(jié)拍脈沖。

123456789101112131415ΦΦC4C1C2C32.節(jié)拍脈沖和存儲器讀/寫時(shí)序譯碼

環(huán)形脈沖發(fā)生器的作用:是產(chǎn)生一組有序的、間隔相等或不等的脈沖序列,以便通過譯碼電路來產(chǎn)生最后所需的節(jié)拍脈沖。T1O=C1?C2T2O=C2?C3T3O=C3T4O=C1RDO=C2?RD’WEO=C3?WE’

123456789101112131415ΦΦC4C1C2C3RD’RDWE’WET1T2T3T4CPU周期CPU周期CPU周期T4O=C1T1O=C1?C2T2O=C2?C3T3O=C3RDO=C2?RD’WEO=C3?WE’T40的下降沿采樣啟/停信號的狀態(tài)8.4.2控制方式

控制方式:即控制不同操作序列時(shí)序信號的方法。常用的有同步控制、異步控制、聯(lián)合控制三種方式,其實(shí)質(zhì)反映了時(shí)序信號的定時(shí)方式。

1.同步控制方式在任何情況下,已定的指令在執(zhí)行時(shí)所需的CPU周期(機(jī)器周期)數(shù)和時(shí)鐘周期數(shù)都固定不變。根據(jù)不同情況,同步控制方式可選取如下方案:(1)采用完全統(tǒng)一的機(jī)器周期執(zhí)行各種不同的指令。(2)采用不定長機(jī)器周期。(3)中央控制與局部控制結(jié)合。

產(chǎn)生不同微操作命令序列所用的時(shí)序控制方式

同步控制方式任一微操作均由統(tǒng)一基準(zhǔn)時(shí)標(biāo)的時(shí)序信號控制CLK機(jī)器周期機(jī)器周期機(jī)器周期(取指令)(取有效地址)(執(zhí)行指令)指令周期T0T1T2T3T0T1T2T3T0T1T2T3(1)采用完全統(tǒng)一的機(jī)器周期和節(jié)拍以最長的微操作序列和最繁的微操作作為標(biāo)準(zhǔn)(2)采用不同節(jié)拍的機(jī)器周期機(jī)器周期機(jī)器周期(取指令)(執(zhí)行指令)指令周期T0T1T2T3T0T1T2

節(jié)拍(狀態(tài))機(jī)器周期機(jī)器周期(取指令)(執(zhí)行指令)T0T1T2T3T0T1T2T3TT延長(3)采用中央控制和局部控制相結(jié)合的方法T0T1T2T3T0T1T2中央控制節(jié)拍T*T*T*局部控制節(jié)拍

T3T0T1中央控制節(jié)拍機(jī)器周期執(zhí)行周期指令周期取指周期T0T1T2T3局部控制的節(jié)拍寬度與中央控制的節(jié)拍寬度一致2.異步控制方式

其特點(diǎn)是:每條指令、每個操作控制信號需要多少時(shí)間就占用多少時(shí)間。這意味著每條指令的指令周期可由多少不等的機(jī)器周期數(shù)組成;也可以是當(dāng)控制器發(fā)出某一操作控制信號后,等待執(zhí)行部件完成操作后發(fā)“回答”信號,再開始新的操作。顯然,用這種方式形成的操作控制序列沒有固定的CPU周期數(shù)(節(jié)拍電位)或嚴(yán)格的時(shí)鐘周期(節(jié)拍脈沖)與之同步。

3.聯(lián)合控制方式

此為同步控制和異步控制相結(jié)合的方式。

情況(1):大部分操作序列安排在固定的機(jī)器周期中,對某些時(shí)間難以確定的操作則以執(zhí)行部件的“回答”信號作為本次操作的結(jié)束;

情況(2):機(jī)器周期的節(jié)拍脈沖數(shù)固定,但是各條指令周期的機(jī)器周期數(shù)不固定。8.4.3中央處理器控制流程計(jì)算機(jī)對信息進(jìn)行處理是通過不斷執(zhí)行程序來實(shí)現(xiàn)的。程序是能完成某個確定算法的指令序列,所以計(jì)算機(jī)進(jìn)行信息處理的過程就是不斷地取指令,分析指令和執(zhí)行指令這樣一個周而復(fù)始的過程。由以下幾步完成:

啟動程序執(zhí)行完?取出指令分析指令執(zhí)行指令是否有中斷?轉(zhuǎn)中斷處理程序YNNY圖8-3CPU控制流程1.取指令:由程序計(jì)數(shù)器(PC)指出當(dāng)前指令地址,通過執(zhí)行“(MAR←(PC)”和“讀”命令,從主存中取出指令。2.分析指令:或稱解釋指令,指令譯碼等。對取出的指令進(jìn)行分析,指出它執(zhí)行什么操作產(chǎn)生相應(yīng)的操作控制信號。如果參與操作的數(shù)據(jù)在主存中,則還要形成操作數(shù)地址。3.執(zhí)行指令:根據(jù)指令分析得到的“操作命令”和“操作數(shù)地址”,按一定的算法形成相應(yīng)的操作控制命令序列,通過運(yùn)算器、存儲器及外部設(shè)備的具體執(zhí)行,實(shí)現(xiàn)每條指令的功能。響應(yīng)該請求,中止當(dāng)前執(zhí)行的程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,處理完畢,返回原程序繼續(xù)執(zhí)行。

8.4.4控制單元CU

控制單元產(chǎn)生中央處理器所有的微操作控制信號。所謂微操作,即計(jì)算機(jī)中最簡單不能再分解的操作,如打開某一個控制門,寄存器的清除脈沖等。復(fù)雜操作是通過執(zhí)行一系列微操作實(shí)現(xiàn)的。根據(jù)指令譯碼器產(chǎn)生的操作控制信號,時(shí)序部件產(chǎn)生的時(shí)序信號以及其他控制條件可以產(chǎn)生整個機(jī)器所需要的全部微操作控制信號。這些控制信號引向計(jì)算機(jī)各個部件,以控制指令的執(zhí)行。此部件可由硬連線方式或微程序方式實(shí)現(xiàn)。除上述的主要組成部件外,一般還應(yīng)包括指令譯碼器,對指令寄存器中的操作碼(有時(shí)也包括尋址等)進(jìn)行譯碼,產(chǎn)生相應(yīng)的控制信號。而且中央處理器中的這些組成部件一般通過中央處理器內(nèi)部總線將各部件連接在一起。

控制單元的外特性指令寄存器控制單元

CU…時(shí)鐘標(biāo)志CPU內(nèi)部的控制信號到系統(tǒng)總線的控制信號來自系統(tǒng)總線的控制信號系統(tǒng)總線8.5指令流水線8.5.1如何提高機(jī)器速度1.提高訪存速度2.提高I/O和主機(jī)之間的傳送速度4.提高整機(jī)處理能力高速芯片Cache多體并行多總線DMAI/O處理機(jī)通道高速器件改進(jìn)系統(tǒng)結(jié)構(gòu),開發(fā)系統(tǒng)的并行性中斷3.提高運(yùn)算器速度高速芯片改進(jìn)算法快速進(jìn)位鏈8.5.2系統(tǒng)的并行性時(shí)間上互相重疊2.并行性的等級指令級(指令之間)過程級(程序、進(jìn)程)兩個或兩個以上事件在同一時(shí)刻發(fā)生兩個或兩個以上事件在同一時(shí)間段發(fā)生并行1.并行的概念粗粒度軟件實(shí)現(xiàn)細(xì)粒度硬件實(shí)現(xiàn)并發(fā)同時(shí)取指令3執(zhí)行指令38.5.3指令流水原理2.指令的二級流水1.指令的串行執(zhí)行取指令

取指令部件完成總有一個部件空閑指令預(yù)取若取指和執(zhí)行階段時(shí)間上完全重疊指令周期減半速度提高1倍…執(zhí)行指令

執(zhí)行指令部件完成取指令1執(zhí)行指令1取指令2執(zhí)行指令2取指令3執(zhí)行指令3取指令2執(zhí)行指令2取指令1執(zhí)行指令18.5.4流水線策略指令流水類似于工廠的裝配線的使用。即一個產(chǎn)品要通過幾個制作步驟。通過把制作過程安排在一條裝配線上,產(chǎn)品能在各個階段同時(shí)被加工。這種過程被稱為流水處理,因?yàn)樽鳛橐粭l流水線,在先前接收的輸入已成為加工的結(jié)果出現(xiàn)在另一端時(shí),新的輸入又在一端被接收進(jìn)來。將這種概念施加到指令的執(zhí)行上,事實(shí)上一條指令的執(zhí)行也是分成幾個步驟。作為一個簡化的方法,將指令處理分成兩個階段:取指令和執(zhí)行指令。在一條指令執(zhí)行期間,有主存未被存取的時(shí)間。這個時(shí)間能用于取下一條指令,從而這個取與當(dāng)前指令的執(zhí)行并行工作。圖8-9(一)描述了這種方法。此流水線有兩個獨(dú)立的階段。第一個階段取一條指令并緩存它。當(dāng)?shù)诙€階段空閑時(shí),第一個階段將緩存的指令輸送給它。當(dāng)?shù)诙€階段正在執(zhí)行此指令時(shí),第一個階段利用未使用的存儲器周期來取下一條指令并緩存它。這稱為指令預(yù)取或取交迭。8.6中斷系統(tǒng)8.6.1概述1.引起中斷的各種因素(1)人為設(shè)置的中斷(2)程序性事故如轉(zhuǎn)管指令溢出、操作碼不能識別、除法非法(5)外部事件(4)I/O設(shè)備(3)硬件故障用鍵盤中斷現(xiàn)行程序轉(zhuǎn)管指令………管理程序2.中斷系統(tǒng)需解決的問題(1)各中斷源如何向CPU提出請求?(2)各中斷源同時(shí)提出請求怎么辦?(5)如何尋找入口地址?(4)如何保護(hù)現(xiàn)場?(3)CPU什么條件、什么時(shí)間、以什么方式

響應(yīng)中斷?(6)如何恢復(fù)現(xiàn)場,如何返回?(7)處理中斷的過程中又出現(xiàn)新的中斷怎么辦?硬件

+軟件8.6.2中斷和異常有兩類事件能引起PII掛起當(dāng)前指令流的執(zhí)行并響應(yīng)事件;中斷和異常。兩種情況下處理器都要保存當(dāng)前進(jìn)程的上下文,并將轉(zhuǎn)至一個預(yù)先定義的子程序來執(zhí)行特殊的服務(wù)。中斷通常是由硬件信號產(chǎn)生的,并可出現(xiàn)在程序執(zhí)行期間內(nèi)的任何時(shí)刻。異常是由軟件產(chǎn)生的,是由執(zhí)行指令所引發(fā)的。有兩類中斷源和兩類異常源:1.中斷1)可屏蔽中斷:由處理器的INTR引腳接收此信號。除非中斷允許標(biāo)志(IF)被置位,否則處理器不響應(yīng)可屏蔽中斷。2)不可屏蔽中斷:由處理器的NMI引腳接收其信號。這類中斷的響應(yīng)不能不響應(yīng)。

2.異常1)處理器確定的異常:當(dāng)試圖執(zhí)行一條指令而處理器遇到一個錯誤時(shí)此異常發(fā)生。2)程序異常:有些指令(INTO,INT3,INT等)能產(chǎn)生異常。8.6.3中斷請求標(biāo)記和中斷判優(yōu)邏輯1.中斷請求標(biāo)記INTR一個請求源

一個INTR

中斷請求標(biāo)記觸發(fā)器多個INTR

組成中斷請求標(biāo)記寄存器INTR

分散在各個中斷源的接口電路中INTR集中在CPU

的中斷系統(tǒng)內(nèi)12345n掉電過熱階上溢內(nèi)存讀寫校驗(yàn)錯非法除法鍵盤打印機(jī)2.中斷判優(yōu)邏輯①

分散在各個中斷源的接口電路中鏈?zhǔn)脚抨?duì)器②集中在CPU

內(nèi)(1)硬件實(shí)現(xiàn)(排隊(duì)器)

1

1

1

&

1

&

1

&INTR1INTR2INTR3INTR4INTR1

、

INTR2、

INTR3、

INTR4

優(yōu)先級按降序排列INTP1INTP2INTP3INTP4A、B、C

優(yōu)先級按降序排列(2)軟件實(shí)現(xiàn)(程序查詢)否……是否A請求?是B

請求?是否C請求?轉(zhuǎn)A

的服務(wù)程序入口地址轉(zhuǎn)B

的服務(wù)程序入口地址轉(zhuǎn)C

的服務(wù)程序入口地址是是是否否8.6.4中斷服務(wù)程序入口地址的尋找1.硬件向量法入口地址200入口地址300入口地址40012H13H14H主存12H13H14HJMP200JMP300JMP400主存向量地址形成部件…………中斷向量排隊(duì)器輸出向量地址

12H、13H、14H入口地址

200、300、4002.軟件查詢法中斷識別程序(入口地址M)地址說明指令

M

JMP1#SR1#D=1轉(zhuǎn)1#服務(wù)程序

SKPDZ2#

JMP2#SR2#D=0跳2#D=1轉(zhuǎn)2#服務(wù)程序

SKPDZ8#

JMP8#SR8#D=0跳8#D=1轉(zhuǎn)8#服務(wù)程序八個中斷源1、2、8按降序排列…………

SKPDZ1#1#D=0跳(D為完成觸發(fā)器)8.6.5中斷響應(yīng)1.響應(yīng)中斷的條件允許中斷觸發(fā)器EINT=12.響應(yīng)中斷的時(shí)間指令執(zhí)行周期結(jié)束時(shí)刻由CPU發(fā)查詢信號

CPU中斷查詢INTR1DQINTR2DQINTRnDQ中斷源1中斷源2中斷源n……至排隊(duì)器3.中斷隱指令(1)保護(hù)程序斷點(diǎn)(2)尋找服務(wù)程序入口地址(3)硬件關(guān)中斷向量地址形成部件INTSQREINTSQRPC

1

&≥1排隊(duì)器……斷點(diǎn)存于特定地址(0號地址)內(nèi)斷點(diǎn)進(jìn)棧INT中斷標(biāo)記EINT允許中斷R–S

觸發(fā)器向量地址PC(硬件向量法)中斷識別程序入口地址MPC(軟件查詢法)8.6.6保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場1.保護(hù)現(xiàn)場2.恢復(fù)現(xiàn)場寄存器內(nèi)容斷點(diǎn)保護(hù)現(xiàn)場其他服務(wù)程序恢復(fù)現(xiàn)場中斷返回PUSH視不同請求源而定POP中斷服務(wù)程序完成中斷服務(wù)程序中斷隱指令完成中斷服務(wù)程序完成IRET1.多重中斷的概念klmk

+1l

+1m

+1第一次中斷第二次中斷第三次中斷程序斷點(diǎn)k+1,l+1,m+18.6.7中斷屏蔽技術(shù)2.實(shí)現(xiàn)多重中斷的條件B,CA中斷請求主程序(2)優(yōu)先級別高的中斷源有權(quán)中斷優(yōu)先級別低的中斷源(1)提前設(shè)置開中斷指令A(yù)BCD中斷服務(wù)程序(A、B、C、D優(yōu)先級按降序排列)D

&3.屏蔽技術(shù)(1)屏蔽觸發(fā)器的作用MASK=0(未屏蔽)INTR能被置“1”

1

&

&

&

1

1

1

1INTP1INTP2INTP3INTP4INTR1INTR2INTR3INTR4MASK1MASK2MASK3MASK4DQ

1

DINTR

MASKQCPU查詢MASKi

=1(屏蔽)INTPi

=0(不能被排隊(duì)選中)(2)屏蔽字優(yōu)先級屏蔽字111111111111111101111111111111110011111111111111000111111111111100001111111111110000011111111111……000000000000001100000000000000011234561516……16個中斷源1、2、3……

16按降序排列(1)斷點(diǎn)進(jìn)棧(2)斷點(diǎn)存入“0”地址中斷隱指令完成中斷周期命令存儲器寫0MARPCMDR(MDR)存入存儲器三次中斷,三個斷點(diǎn)都存入“0”地址4.多重中斷的斷點(diǎn)保護(hù)斷點(diǎn)MDR?如何保證斷點(diǎn)不丟失?中斷隱指令完成(3)程序斷點(diǎn)存入“0”地址的斷點(diǎn)保護(hù)

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論