計(jì)算機(jī)組成原理(第六章)課件_第1頁(yè)
計(jì)算機(jī)組成原理(第六章)課件_第2頁(yè)
計(jì)算機(jī)組成原理(第六章)課件_第3頁(yè)
計(jì)算機(jī)組成原理(第六章)課件_第4頁(yè)
計(jì)算機(jī)組成原理(第六章)課件_第5頁(yè)
已閱讀5頁(yè),還剩87頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第六章 中央處理器(2)混合控制方式現(xiàn)代計(jì)算機(jī)系統(tǒng)廣泛采用的方式基本思想:將每個(gè)指令周期分成多個(gè)機(jī)器周期,每個(gè)機(jī)器周期中再分成多個(gè)節(jié)拍,于是各條指令可取不同的機(jī)器周期數(shù)作為各自的指令周期。如簡(jiǎn)單指令包含一個(gè)機(jī)器周期,復(fù)雜指令可包含多個(gè)機(jī)器周期。這種方式不浪費(fèi)很多時(shí)間,控制上又不十分復(fù)雜。二、控制器的功能與組成1、控制器的功能指令控制

根據(jù)給定的地址從主存儲(chǔ)器中取出待執(zhí)行的指令,并分析指令功能,然后執(zhí)行該指令,接著取下條指令,分析并執(zhí)行下條指令。時(shí)序控制 機(jī)器指令的操作過(guò)程(包括取指令、分析指令和執(zhí)行指令)是嚴(yán)格按照一定的時(shí)序進(jìn)行的,一個(gè)指令周期中包含多少個(gè)機(jī)器周期隨指令功能的不同而不同,一個(gè)機(jī)器周期中包含多少個(gè)節(jié)拍隨機(jī)器周期的不同而不同。這些周期和節(jié)拍信息都應(yīng)由時(shí)序部件定時(shí)產(chǎn)生,不允許出現(xiàn)任何差錯(cuò)。第六章 中央處理器(2)混合控制方式1第六章 中央處理器(3)操作控制 在時(shí)序信號(hào)控制下,各個(gè)指令周期中包含多少個(gè)機(jī)器周期,各個(gè)機(jī)器周期內(nèi)部的各個(gè)節(jié)拍中完成什么功能,均由指令操作流程作出嚴(yán)格規(guī)定??刂破鲬?yīng)能按照指令操作流程圖的規(guī)定,在各個(gè)節(jié)拍中產(chǎn)生控制信號(hào),控制各各相關(guān)部件完成相應(yīng)的操作。由于這些控制信號(hào)所完成的操作非常簡(jiǎn)單,通常稱它們微操作控制信號(hào)或微命令。2、控制器的組成 控制器是全機(jī)的指揮中心,其復(fù)雜程度隨機(jī)器規(guī)模大小有比較大的區(qū)別,但一般應(yīng)包含如下主要部件:程序計(jì)數(shù)器PC:存放待執(zhí)行指令在存儲(chǔ)器中的地址,即指令地址寄存器指令寄存器IR:存放從寄存器中取出的待執(zhí)行指令指令譯碼器ID:操作碼譯碼時(shí)序部件:產(chǎn)生計(jì)算機(jī)工作過(guò)程中所需的各種時(shí)序信號(hào)微操作控制部件:產(chǎn)生與各條微指令對(duì)應(yīng)的微操作控制信號(hào)。通常有三種構(gòu)成方式-由邏輯電路,或存儲(chǔ)邏輯電路構(gòu)成,或可編程邏輯陣列PLA構(gòu)成中斷系統(tǒng)操作控制臺(tái)第六章 中央處理器(3)操作控制2第六章 中央處理器(4)三、指令的執(zhí)行過(guò)程1、指令周期“指令周期”是指一條指令從取出到執(zhí)行完畢所需要的時(shí)間,通常將其分成兩個(gè)階段-取指令、分析指令階段和執(zhí)行指令階段。取指令階段對(duì)所有指令都相同,可稱作“公操作階段”。執(zhí)行指令階段的不同操作才反映出不同的指令功能。對(duì)于采用混合控制方式的現(xiàn)代計(jì)算機(jī),一般的做法是定義幾個(gè)基本的機(jī)器周期,例如:取指令機(jī)器周期,讀存儲(chǔ)器機(jī)器周期,寫存儲(chǔ)器機(jī)器周期和執(zhí)行運(yùn)算機(jī)器周期等。一個(gè)指令周期中,可包含不同數(shù)量、不同種類的一個(gè)或幾個(gè)機(jī)器周期。但任何指令的第一個(gè)機(jī)器周期必須是取指令機(jī)器周期,由它完成取指令和分析指令的功能。機(jī)器周期又稱作CPU周期,通常是存儲(chǔ)器的一個(gè)訪問周期。一個(gè)機(jī)器周期內(nèi)部又可分為幾個(gè)節(jié)拍。節(jié)拍是計(jì)算機(jī)操作的最小單位,又稱作時(shí)鐘周期或T周期。第六章 中央處理器(4)三、指令的執(zhí)行過(guò)程3第六章 中央處理器(5)指令周期取指令機(jī)器周期執(zhí)行指令機(jī)器周期T1T3T2T3T1TxT2Tn節(jié)拍第六章 中央處理器(5)指令周期取指令機(jī)器周期執(zhí)行指令機(jī)4第六章 中央處理器(6)一個(gè)機(jī)器周期內(nèi)所包含的節(jié)拍數(shù)可固定不變,或可變。2、指令操作流程任何一條機(jī)器指令的執(zhí)行過(guò)程都是一個(gè)微操作序列的執(zhí)行過(guò)程。將指令周期中所包含的微操作合理地分配在各個(gè)機(jī)器周期的各個(gè)節(jié)拍中,便可構(gòu)成各條指令的操作流程圖。任何指令在取指令周期的操作都基本相同。 假定某計(jì)算機(jī)中,每個(gè)機(jī)器周期內(nèi)均包含4個(gè)節(jié)拍(T1~T4),則取指令機(jī)器周期的操作流程為:PC→MARRDMPC+1→PCMDR→IR指令譯碼T1T2T3T4第六章 中央處理器(6)一個(gè)機(jī)器周期內(nèi)所包含的節(jié)拍數(shù)可固5第六章 中央處理器(7) 各節(jié)拍操作:T1拍:將PC內(nèi)容置入存儲(chǔ)器地址寄存器MAR中;T2拍:向存儲(chǔ)器發(fā)出讀令;T3拍:修改PC內(nèi)容,使之指向下條指令地址;T4拍:將從存儲(chǔ)器讀出的指令置入指令寄存器IR中,并對(duì)操作碼部分進(jìn)行譯碼。其它機(jī)器周期的操作流程圖與具體指令有關(guān)。例如:采用直接尋址方式的取數(shù)指令完成從存儲(chǔ)器的有效地址中取出操作數(shù)置入累加器AC中,則應(yīng)在取指令周期后安排一個(gè)執(zhí)行操作的機(jī)器周期。如右圖。IR(ADR)→MART1RDMT2MDR→DBUST3BUS→ACT4第六章 中央處理器(7) 各節(jié)拍操作:其它機(jī)器周期的操作6第六章 中央處理器(8)

在這個(gè)機(jī)器周期中,主要完成從存儲(chǔ)器中取操作數(shù)的功能,因此可稱它為讀存儲(chǔ)器機(jī)器周期。各節(jié)拍操作:T1拍:將指令中的地址碼部分(形式地址D)置入存儲(chǔ)器地址寄存器MAR中;T2拍:向存儲(chǔ)器發(fā)出讀令;T3拍:將讀出的操作數(shù)送數(shù)據(jù)總線;T4拍:將操作數(shù)置入累加寄存器AC中。

同樣是取數(shù)指令,若采用間接尋址方式,則至少需要兩個(gè)執(zhí)行周期。第一個(gè)執(zhí)行周期訪問存儲(chǔ)器取操作數(shù)地址,第二個(gè)執(zhí)行周期訪問存儲(chǔ)器取操作數(shù)置入累加器中。

假想模型機(jī)的指令系統(tǒng)包含8條機(jī)器指令,其指令操作流程圖如下:第六章 中央處理器(8) 在這個(gè)機(jī)器周期中,主要完成從存7第六章 中央處理器(9)IR(ADR)→MARRDM讀出操作MDR→BUS→ACIR(ADR)→MARAC→MDRWEM寫入操作IR(ADR)→MARRDM讀出操作AC+MDR→ACIR(ADR)→MARRDM讀出操作AC∩MDR→ACIR(ADR)→PC0→啟停邏輯IR(ADR)→PCZF=1?AC→ACPC→MARRDMPC+1→PCMDR→IRT1T2T3T4指令譯碼T1T2T3T4執(zhí)行指令機(jī)器周期取指令機(jī)器周期LDASTAADDANDJMPJMPZCOMHALT該模型機(jī)所有指令均在兩個(gè)周期內(nèi)完成。第一個(gè)機(jī)器周期為取指令周期,第二個(gè)機(jī)器周期的操作各不相同,分別完成各條指令的不同功能。一般情況下,任何一條指令執(zhí)行完畢都要訪問中斷,若當(dāng)前有中斷請(qǐng)求,則轉(zhuǎn)去執(zhí)行中斷處理程序,否則進(jìn)入下條機(jī)器指令的取指令周期,開始下一個(gè)指令周期。第六章 中央處理器(9)IR(ADR)→MARRDM8第六章 中央處理器(10)四、時(shí)序部件指令的執(zhí)行過(guò)程嚴(yán)格按照指令操作流程圖所規(guī)定的時(shí)序定時(shí);時(shí)序部件用來(lái)產(chǎn)生必要的時(shí)序信號(hào)為機(jī)器周期和節(jié)拍信號(hào)定時(shí);根據(jù)組成計(jì)算機(jī)各部件的器件特性,時(shí)序信號(hào)通常采用“電位-脈沖”制。時(shí)序部件的構(gòu)成脈沖源即主時(shí)鐘,通常由石英晶體振蕩器構(gòu)成節(jié)拍信號(hào)發(fā)生器

又叫脈沖分配器,產(chǎn)生各個(gè)機(jī)器周期中的節(jié)拍信號(hào)。啟停線路邏輯第六章 中央處理器(10)四、時(shí)序部件9第六章 中央處理器(11)五、組合邏輯控制器基本概念機(jī)器指令的執(zhí)行過(guò)程就是一個(gè)微操作序列的執(zhí)行過(guò)程,在各條機(jī)器指令的各個(gè)機(jī)器周期的各個(gè)節(jié)拍中,應(yīng)該產(chǎn)生那些微操作控制信號(hào),由指令操作流程圖作出嚴(yán)格的規(guī)定。采用組合邏輯電路來(lái)產(chǎn)生微操作控制信號(hào)的部件稱作“組合邏輯控制器”;優(yōu)點(diǎn)是速度快,但設(shè)計(jì)工作量大。設(shè)計(jì)過(guò)程微操作綜合:將指令操作流程圖中各條機(jī)器指令在不同機(jī)器周期的不同節(jié)拍中產(chǎn)生的同一個(gè)微操作控制信號(hào)集中到一起形成一個(gè)邏輯表達(dá)式?;?jiǎn)邏輯表達(dá)式。用具體的邏輯電路實(shí)現(xiàn)所有表達(dá)式。組合邏輯控制器的特點(diǎn)一旦設(shè)計(jì)成功,不易修改。由組合邏輯控制器產(chǎn)生的微操作控制信號(hào)Ci是指令I(lǐng)m、時(shí)序信號(hào)Ti和運(yùn)算結(jié)果特征Si的函數(shù)。即Ci=f(Im,Ti,Si)設(shè)計(jì)舉例(144)第六章 中央處理器(11)五、組合邏輯控制器10第六章 中央處理器(12)六、微程序控制器1、基本概念任何一條機(jī)器指令的執(zhí)行過(guò)程就是一個(gè)微操作控制信號(hào)的產(chǎn)生過(guò)程;一個(gè)微操作控制信號(hào)稱作一個(gè)微命令;將幾個(gè)、十幾個(gè)甚至幾十個(gè)微命令集中由一條微指令來(lái)產(chǎn)生,于是一條機(jī)器指令便可由一條或幾條微指令來(lái)解釋。微指令:微命令的集合微程序:解釋一條機(jī)器指令的微指令的集合微程序設(shè)計(jì):設(shè)計(jì)與各條機(jī)器指令相對(duì)應(yīng)的微程序的過(guò)程。一種確定的算法,由一段機(jī)器語(yǔ)言程序解釋;任何一條機(jī)器指令又可由一段相應(yīng)的微程序來(lái)解釋。第六章 中央處理器(12)六、微程序控制器11第六章 中央處理器(13)問題的算法ADDR1,R2STAm1機(jī)器語(yǔ)言程序ADD指令微程序STA指令微程序第六章 中央處理器(13)問題的算法ADDR1,R2S12第六章 中央處理器(14)說(shuō)明:各條機(jī)器指令對(duì)應(yīng)的微程序長(zhǎng)度各不相同,取決于指令功能的強(qiáng)弱,也與微指令本身的功能強(qiáng)弱有關(guān)系;機(jī)器指令的執(zhí)行過(guò)程就是與之對(duì)應(yīng)的微程序的執(zhí)行過(guò)程;機(jī)器執(zhí)行過(guò)程中的微命令由微指令產(chǎn)生;上述這種控制方式,稱作微程序控制方式,其相應(yīng)的部件,稱作微程序控制器。顯然,微程序控制器是將組合邏輯控制器中的硬件軟化成為微程序而形成的;優(yōu)點(diǎn):修改方便,規(guī)整性好,有規(guī)律可尋,可借鑒軟件設(shè)計(jì)經(jīng)驗(yàn);采用微程序控制方式的計(jì)算機(jī),把所有的微程序集中存放在一個(gè)獨(dú)立的存儲(chǔ)器中,稱作控制存儲(chǔ)器(CM-ControlMemory);微程序一旦設(shè)計(jì)完畢,不允許修改,只允許執(zhí)行,因此CM一般由EPROM構(gòu)成;每條微指令在CM中占用一個(gè)地址,CM的容量取決于微指令的字長(zhǎng)和微程序的總長(zhǎng)度?,F(xiàn)代計(jì)算機(jī)廣泛采用微程序控制方式。超高速計(jì)算機(jī)不宜采用這種方式。第六章 中央處理器(14)說(shuō)明:13第六章 中央處理器(15)2、微指令格式微指令與機(jī)器指令類似,由微操作碼和微地址碼組成;微操作碼部分用來(lái)確定該微指令所能產(chǎn)生的微命令,稱作控制字段;微地址碼部分用來(lái)確定將要執(zhí)行的下條微指令在CM中的地址,其作用與機(jī)器指令中的地址碼不同;

(1)、微指令的控制字段微指令分類:水平型微指令、垂直型微指令水平型微指令:能并行產(chǎn)生多個(gè)微命令的微指令,又分2種:直接控制的水平型微指令編碼控制的水平型微指令第六章 中央處理器(15)2、微指令格式14第六章 中央處理器(15)直接控制的水平型微指令特點(diǎn):控制字段中每一位表示一個(gè)微命令。n位長(zhǎng)的控制字段最多能并行產(chǎn)生n個(gè)微命令;缺點(diǎn):控制字段較長(zhǎng);格式:控制字段地址字段………..C0C1C2C3Cn第六章 中央處理器(15)直接控制的水平型微指令控制字段15第六章 中央處理器(16)編碼控制的水平型微指令特點(diǎn):將控制字段分成許多子字段,每個(gè)子字段設(shè)置一個(gè)譯碼器,任何微命令都是經(jīng)過(guò)譯碼器輸出;任何時(shí)候任何一個(gè)子字段中最多只能產(chǎn)生一個(gè)微命令;一個(gè)子字段所包含的微命令構(gòu)成一個(gè)“相斥類”的微命令組,即它們是不允許同時(shí)產(chǎn)生的微命令;處于各個(gè)不同子字段中的微命令構(gòu)成一個(gè)“相容類”的微命令組,它們?cè)试S在一條微命令中同時(shí)產(chǎn)生;缺點(diǎn):并行性降低,且需增設(shè)譯碼器;優(yōu)點(diǎn):可縮短微指令長(zhǎng)度,減小CM容量。注意:設(shè)計(jì)時(shí)考慮各子字段不產(chǎn)生微命令的特殊情況。格式:第六章 中央處理器(16)編碼控制的水平型微指令16第六章 中央處理器(17)控制字段譯碼器譯碼器譯碼器譯碼器A0~A7B0~B31C0~C31D0~D15地址字段A字段B字段C字段D字段XXXXXXXXXXXXXXXXX第六章 中央處理器(17)控制字段譯碼器譯碼器譯碼器譯碼17第六章 中央處理器(18)垂直型微指令接近于機(jī)器指令,無(wú)并行性;每條微指令任何時(shí)候只能產(chǎn)生一條微命令。格式:譯碼器C0~C31控制字段地址字段XXXXX目標(biāo)部件地址源部件地址第六章 中央處理器(18)垂直型微指令譯碼器C0~C3118第六章 中央處理器(19)

(2)、微指令的地址字段微程序有兩種不同的順序控制方式:斷定方式和增量方式。兩種方式下地址字段的設(shè)置不同。斷定方式微指令在CM可不順序存放外部測(cè)試條件的考慮控制字段條件測(cè)試下條微指令地址增量方式微指令在CM中順序存放設(shè)upc控制字段條件測(cè)試第六章 中央處理器(19) (2)、微指令的地址字段控制19第六章 中央處理器(20) 舉例:某計(jì)算機(jī)采用微程序控制方式,微指令字長(zhǎng)24位,采用水平型編碼控制的微指令格式,斷定方式。共有微命令30個(gè),構(gòu)成4個(gè)相斥類,各包含5個(gè)、8個(gè)、14個(gè)和3個(gè)微命令,外部條件4個(gè)。(1)求控制存儲(chǔ)器的容量; (2)設(shè)計(jì)微指令的具體格式。控制字段譯碼器譯碼器譯碼器譯碼器A0~A5

B0~B8

C0~C14

D0~D3XXXXXXXX條件測(cè)試字段XXXXXXXXXXXXXXXX微地址字段

232120171613121110870解:(1)256×24(位)(2)第六章 中央處理器(20) 舉例:控制字段譯碼器譯碼器譯20第六章 中央處理器(21)3、微程序控制器的結(jié)構(gòu) 根據(jù)微程序的兩種不同順序控制方式,微程序控制器有兩種不同的結(jié)構(gòu)。

(1)、采用斷定方式的微程序控制器結(jié)構(gòu)01n控制存儲(chǔ)器(CM)微地址譯碼器微程序首地址(來(lái)自控制器)控制字段條件測(cè)試地址字段地址轉(zhuǎn)移邏輯外部條件

C0C1 … Cm第六章 中央處理器(21)3、微程序控制器的結(jié)構(gòu)01n控21第六章 中央處理器(22)采用斷定方式的微程序控制器的特點(diǎn)微程序控制器的主體是用來(lái)存放微指令的控制存儲(chǔ)器(CM),其容量為CM的總字?jǐn)?shù)與微指令字長(zhǎng)的乘積;CM中可存放與各條機(jī)器指令對(duì)應(yīng)的許多個(gè)微程序,組成各個(gè)微程序的微指令可在CM中任意存放,由各條微指令的微地址字段給出下條微指令在CM中的地址。若是條件轉(zhuǎn)移類微指令,則由條件測(cè)試字段通過(guò)地址轉(zhuǎn)移邏輯判定外部條件是否滿足。若滿足條件,則改變微地址字段的某一位或多位的狀態(tài),以實(shí)現(xiàn)微程序的轉(zhuǎn)移,否則,按微地址字段給定的地址去執(zhí)行下條微指令。采用斷定方式的微程序控制器的操作過(guò)程由于取指令機(jī)器周期的微操作與指令無(wú)關(guān),能產(chǎn)生相應(yīng)微命令的微指令固定存放在CM的指定地址中;一旦機(jī)器被啟動(dòng),該地址(即微程序首地址)經(jīng)微地址譯碼器譯碼后開始執(zhí)行微程序,在相應(yīng)微指令控制之下將第一條機(jī)器指令從主存儲(chǔ)器中取出置入指令寄存器中,經(jīng)指令譯碼器譯碼后利用條件轉(zhuǎn)移微指令轉(zhuǎn)到執(zhí)行該機(jī)器指令的微程序入口去執(zhí)行后續(xù)微指令,直到整個(gè)微程序執(zhí)行完畢。第六章 中央處理器(22)采用斷定方式的微程序控制器的特22第六章 中央處理器(23)

(2)、采用增量方式的微程序控制器結(jié)構(gòu)微程序首地址(來(lái)自控制器)控制字段條件測(cè)試地址轉(zhuǎn)移邏輯外部條件

C0C1 … Cm01n控制存儲(chǔ)器(CM)微地址譯碼器微程序計(jì)數(shù)器upcupc+1第六章 中央處理器(23) (2)、采用增量方式的微程序23第六章 中央處理器(24)采用增量方式的微程序控制器的特點(diǎn)微指令字中不需要包含微地址字段;控制器中需要單獨(dú)設(shè)置一個(gè)微程序計(jì)數(shù)器(upc)。一般情況下由upc+1來(lái)確定下條微指令在CM中的地址,只有遇到轉(zhuǎn)移類微指令才需要改變upc中的某一位或多位地址碼的狀態(tài),以實(shí)現(xiàn)微程序的轉(zhuǎn)移。若是條件轉(zhuǎn)移類微指令,則由條件測(cè)試字段通過(guò)地址轉(zhuǎn)移邏輯判定是否滿足條件。若滿足條件,則修改upc的內(nèi)容,實(shí)現(xiàn)微程序轉(zhuǎn)移;否則順序執(zhí)行下條微指令。這種結(jié)構(gòu)的微程序控制器要求對(duì)應(yīng)各條機(jī)器指令的微程序一般情況下在CM中順序存放,只有遇到轉(zhuǎn)移類微指令才能改變微程序的走向,這種結(jié)構(gòu)可有效縮短CM的字長(zhǎng)。第六章 中央處理器(24)采用增量方式的微程序控制器的特24第六章 中央處理器(25)采用增量方式的微程序控制器的操作過(guò)程將完成取指令功能的第一條微指令在CM中的地址置入微程序計(jì)數(shù)器upc中,經(jīng)譯碼后可從該地址中取出第一條微指令,執(zhí)行由它開始的一條或幾條第一條機(jī)器指令取出置入指令寄存器IR中,經(jīng)指令譯碼后利用條件轉(zhuǎn)移微指令可轉(zhuǎn)移到執(zhí)行相應(yīng)機(jī)器指令的微程序入口;將該入口地址置入upc后,一般情況下順序執(zhí)行后續(xù)微指令,由upc+1給出后續(xù)微指令地址,只有遇到轉(zhuǎn)移類微指令,才會(huì)修改upc內(nèi)容實(shí)現(xiàn)微程序的轉(zhuǎn)移。重復(fù)以上過(guò)程直到停機(jī)為止。兩種微程序控制器操作過(guò)程的主要區(qū)別斷定方式由微指令的微地址字段給出下條微指令的地址;增量方式由微程序計(jì)數(shù)器給定下條微指令的地址。第六章 中央處理器(25)采用增量方式的微程序控制器的操25第六章 中央處理器(26)4、微指令的定時(shí)在采用微程序控制方式的計(jì)算機(jī)系統(tǒng)中,機(jī)器指令的執(zhí)行過(guò)程成為一個(gè)微程序的執(zhí)行過(guò)程,一條機(jī)器指令的指令周期就成為多條微指令的微指令周期的總和;為了不會(huì)因?yàn)椴捎梦⒊绦蚩刂品绞蕉箼C(jī)器指令的執(zhí)行速度大大降低,希望微指令的制周期越短越好;任何一條微指令都要從CM中取出后才能去執(zhí)行,若將機(jī)器指令的一個(gè)機(jī)器周期內(nèi)的微操作由一條微指令來(lái)完成,則要求一條微指令的指令周期與CPU的一個(gè)機(jī)器周期的持續(xù)時(shí)間相等,如下圖:取指令機(jī)器周期執(zhí)行指令機(jī)器周期指令周期(機(jī)器指令)取微指令執(zhí)行微指令微指令周期微指令周期第六章 中央處理器(26)4、微指令的定時(shí)取指令機(jī)器周期26第六章 中央處理器(27)上述情況下,若能做到每條微指令都能夠產(chǎn)生機(jī)器指令的一個(gè)機(jī)器周期中的全部微命令,則不會(huì)降低機(jī)器指令的執(zhí)行速度;但要求控制存儲(chǔ)器的速度要足夠高,而且微指令的功能要相當(dāng)強(qiáng),有較高的并行性;垂直型微指令無(wú)法滿足這一要求,因此采用微程序控制方式的計(jì)算機(jī)完全不降低機(jī)器的原有速度是不易做到的,除非CM的訪問速度非???;目前,受器件水平和價(jià)格的限制,超高速的計(jì)算機(jī)系統(tǒng)仍然不采用微程序控制方式。第六章 中央處理器(27)上述情況下,若能做到每條微指令27第六章 中央處理器(28)IR(ADR)→ARRDMM→DRDR→XR1→Y“+”LDR!PC→ARRDMPC+1→PCDR→IR1234指令譯碼執(zhí)行指令機(jī)器周期取指令機(jī)器周期ADD678955、微程序設(shè)計(jì)舉例對(duì)于一臺(tái)采用微程序控制方式的計(jì)算機(jī),設(shè)計(jì)與各條機(jī)器指令相對(duì)應(yīng)的微程序的過(guò)程稱作“微程序設(shè)計(jì)”;指令系統(tǒng)中,有多少條機(jī)器指令,就應(yīng)該設(shè)計(jì)出多少個(gè)微程序。以前述模型機(jī)為例,采用微程序控制器,微指令采用斷定方式及直接控制水平型微指令格式,CM容量為256×30(位)。以一條“加法指令”(ADD)為例來(lái)說(shuō)明微程序設(shè)計(jì)的具體過(guò)程,流程圖為右圖。第六章 中央處理器(28)IR(ADR)→ARRDM28第六章 中央處理器(29)IR(ADR)→ARRDMM→DRDR→XR2→Y“+”LDR!PC→ARRDMPC+1→PCDR→IR1234指令譯碼執(zhí)行指令機(jī)器周期取指令機(jī)器周期ADD67895假定將取指令周期中的微命令用一條“取指”微指令uI1來(lái)完成,將執(zhí)行指令機(jī)器周期中的微命令uI2和uI3來(lái)完成,前者完成第6到第8步的功能,后者完成第9步的功能,于是ADD指令的微程序可用下面的流程圖描述。PC→AR,RDMPC+1,DR→IR指令譯碼(由P1控制)IR→AR,RDMM→DRDR→X,R2→Y“+”,LDR100H82H34H00H第六章 中央處理器(29)IR(ADR)→ARRDM29第六章 中央處理器(30)微指令uI1,uI2和uI3的格式如下:微地址字段P1P2條件測(cè)試字段C1C2C3C4C5C6C7C8C9C10C11C12C13C14C15C16C17C18C19C20

000101

11000RDMLDIRLDARPC+1100000000029 109870uI1微地址字段P1P2條件測(cè)試字段C1C2C3C4C5C6C7C8C9C10C11C12C13C14C15C16C17C18C19C20

0001

1010000RDMLDDRLDAR000011010029 109870uI2第六章 中央處理器(30)微指令uI1,uI2和uI3的30第六章 中央處理器(31)微地址字段P1P2條件測(cè)試字段C1C2C3C4C5C6C7C8C9C10C11C12C13C14C15C16C17C18C19C20

1001101000000000000

109870uI3LDR1R2→YDR→X“+”仿照類似的方法可設(shè)計(jì)出所有機(jī)器指令的微程序,并將它們寫入到CM中,CM一般由EPROM構(gòu)成;微程序設(shè)計(jì)完后,若發(fā)現(xiàn)某些機(jī)器指令的功能不夠理想,希望作修改時(shí),只需對(duì)相應(yīng)微程序的某些微指令作適當(dāng)修改后,重新寫入到CM中即可;微程序仿真:在一臺(tái)計(jì)算機(jī)上用微程序模擬另一臺(tái)計(jì)算機(jī)的指令系統(tǒng)。第六章 中央處理器(31)微地址字段P1P2條件測(cè)31第六章 中央處理器(32)七、中斷系統(tǒng)中斷概念的提出及中斷系統(tǒng)的基本功能中斷請(qǐng)求:當(dāng)事件發(fā)生時(shí)能向CPU發(fā)出的請(qǐng)求中斷系統(tǒng):能接受中斷請(qǐng)求,并對(duì)中斷事件進(jìn)行處理的部件1、中斷系統(tǒng)的功能及時(shí)發(fā)現(xiàn)和處理機(jī)器中的軟、硬件故障,如電源掉電,存儲(chǔ)器奇偶校驗(yàn)錯(cuò),運(yùn)算溢出,程序越界等;應(yīng)用實(shí)時(shí)控制系統(tǒng)的計(jì)算機(jī),由中斷系統(tǒng)來(lái)接受從外部適時(shí)輸入的信息并進(jìn)行必要的處理;計(jì)算機(jī)系統(tǒng)中主機(jī)與輸入輸出設(shè)備間可采用中斷方式交換信息,以實(shí)現(xiàn)主機(jī)與外設(shè)并行工作;計(jì)算機(jī)軟件的調(diào)試和維護(hù)過(guò)程中,可利用中斷系統(tǒng)提供人工干預(yù)的途徑,以實(shí)現(xiàn)人機(jī)會(huì)話功能;多用戶計(jì)算機(jī)系統(tǒng)中,通過(guò)中斷系統(tǒng)進(jìn)行多道程序的調(diào)度以實(shí)現(xiàn)多道運(yùn)行。第六章 中央處理器(32)七、中斷系統(tǒng)32第六章 中央處理器(33)2、中斷的分類與分級(jí)

一個(gè)計(jì)算機(jī)系統(tǒng)中常常包含幾個(gè)、十幾個(gè)、幾十個(gè)甚至更多的中斷源,可將它們分成不同的類型和不同的級(jí)別。中斷的分類根據(jù)中斷源所在的位置,分為內(nèi)部中斷和外部中斷;內(nèi)部中斷:CPU內(nèi)部產(chǎn)生的中斷源,如運(yùn)算溢出中斷,程序越界中斷,指令中斷等;外部中斷:如掉電中斷,存儲(chǔ)器奇偶校驗(yàn)錯(cuò)中斷,外部設(shè)備輸入輸出設(shè)備請(qǐng)求中斷等。根據(jù)中斷源的可屏蔽性質(zhì),分為可屏蔽中斷和不可屏蔽中斷;根據(jù)中斷源的性質(zhì)分為故障中斷和正常中斷;根據(jù)中斷的進(jìn)入方式分為自愿中斷和強(qiáng)迫中斷。中斷的分級(jí) 根據(jù)系統(tǒng)中各中斷源的主要性將其分成不同的優(yōu)先級(jí),最重要的中斷源應(yīng)具有最高的優(yōu)先級(jí),而最不重要的中斷源應(yīng)具有最低的優(yōu)先級(jí),其它中斷源的級(jí)別依此類推。第六章 中央處理器(33)2、中斷的分類與分級(jí)33第六章 中央處理器(34)

中斷的優(yōu)先級(jí)別是中斷系統(tǒng)對(duì)中斷源進(jìn)行排隊(duì)的依據(jù),一般來(lái)說(shuō),中斷排隊(duì)?wèi)?yīng)遵循如下原則:若多個(gè)不同優(yōu)先級(jí)的中斷請(qǐng)求同時(shí)產(chǎn)生,則應(yīng)響應(yīng)高級(jí)中斷,后響應(yīng)低級(jí)中斷;主程序nn+1INT0,INT2INT0中斷服務(wù)程序INT2中斷服務(wù)程序第六章 中央處理器(34) 中斷的優(yōu)先級(jí)別是中斷系統(tǒng)對(duì)中34第六章 中央處理器(35)若不同優(yōu)先級(jí)別的中斷嵌套產(chǎn)生,即當(dāng)一個(gè)中斷服務(wù)程序正在執(zhí)行過(guò)程中,又有一個(gè)新的中斷請(qǐng)求產(chǎn)生,可將其稱作產(chǎn)生了“多重中斷”,則中斷系統(tǒng)應(yīng)能允許高級(jí)中斷打斷低級(jí)中斷,禁止低級(jí)中斷打斷高級(jí)中斷,也禁止同級(jí)中斷打斷同級(jí)中斷。主程序ss+1INT3INT3中斷服務(wù)程序INT0中斷服務(wù)程序INT0INT2kk+1第六章 中央處理器(35)若不同優(yōu)先級(jí)別的中斷嵌套產(chǎn)生,35第六章 中央處理器(36)3、中斷排隊(duì)的實(shí)現(xiàn)

實(shí)現(xiàn)中斷排隊(duì)是中斷系統(tǒng)中必須妥善處理的問題之一,通??刹捎密浖抨?duì)和硬件排隊(duì)兩種方式。軟件排隊(duì)方式軟件排隊(duì)方式又稱程序查詢方式,其基本做法是:當(dāng)CPU訪問到有中斷請(qǐng)求信號(hào)時(shí),則保留好中斷斷點(diǎn)后,立即進(jìn)入中斷處理程序入口,從最高優(yōu)先級(jí)開始順序查詢當(dāng)前產(chǎn)生的是哪一級(jí)中斷請(qǐng)求。若查詢到某一級(jí)有中斷請(qǐng)求時(shí),便不再繼續(xù)查詢較低級(jí)的中斷請(qǐng)求,而是轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序;這種軟件排隊(duì)方式優(yōu)點(diǎn)是控制簡(jiǎn)單,不需附加硬件,當(dāng)需改變中斷級(jí)別時(shí),只需改變中斷查詢的順序;缺點(diǎn)是中斷響應(yīng)的速度慢;當(dāng)由多級(jí)中斷請(qǐng)求同時(shí)產(chǎn)生時(shí),能保證先響應(yīng)和處理優(yōu)先級(jí)別高的中斷請(qǐng)求。第六章 中央處理器(36)3、中斷排隊(duì)的實(shí)現(xiàn)36第六章 中央處理器(37)入口是INT0請(qǐng)求嗎?INT0中斷服務(wù)程序返回是INT1請(qǐng)求嗎?返回INT1中斷服務(wù)程序是INT2請(qǐng)求嗎?INT2中斷服務(wù)程序返回軟件排隊(duì)方式流程圖第六章 中央處理器(37)入口是INT0請(qǐng)求嗎?INT037第六章 中央處理器(38)硬件排隊(duì)方式采用硬件電路進(jìn)行中斷排隊(duì);優(yōu)點(diǎn)是對(duì)中斷請(qǐng)求的響應(yīng)速度快缺點(diǎn)是需附加硬件,改變中斷級(jí)別較困難。4、中斷向量的產(chǎn)生CPU響應(yīng)任何一級(jí)中斷請(qǐng)求都要暫停執(zhí)行原來(lái)的程序,轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序;一個(gè)計(jì)算機(jī)系統(tǒng),有多少級(jí)中斷,就應(yīng)有多少個(gè)獨(dú)立的中斷服務(wù)程序,而且允許它們?cè)谡麄€(gè)主存空間中浮動(dòng)。當(dāng)CPU響應(yīng)了某個(gè)中斷時(shí),如何正確找到相應(yīng)的中斷服務(wù)程序的入口呢?在主存中開辟一片區(qū)域設(shè)置一個(gè)中斷向量表(或稱作中斷入口地址表);各級(jí)別中斷服務(wù)程序的入口地址按中斷級(jí)別順序存放在該表中;8086系統(tǒng)中,中斷向量表位于主存儲(chǔ)器的00000H~003FFH地址中,占1KB,每個(gè)中斷入口地址占4個(gè)字節(jié),系統(tǒng)最多可接受256種類型的中斷請(qǐng)求。IPCS4n+04n+14n+24n+3n:中斷類型號(hào)LH第六章 中央處理器(38)硬件排隊(duì)方式IPCS4n+0438第六章 中央處理器(39)5、一次中斷處理的全過(guò)程 中斷系統(tǒng)本身是軟、硬件的結(jié)合,一次中斷處理的全過(guò)程是由軟、硬件共同完成的。訪問中斷YN響應(yīng)中斷關(guān)中斷保護(hù)斷點(diǎn)(PC入棧)得到的中斷入口地址→PC保護(hù)CPU現(xiàn)場(chǎng)開中斷并設(shè)置中斷屏蔽執(zhí)行中斷處理程序關(guān)中斷并恢復(fù)中斷屏蔽恢復(fù)CPU現(xiàn)場(chǎng)開中斷返回(PC出棧)第六章 中央處理器(39)5、一次中斷處理的全過(guò)程訪問中39第六章 中央處理器(40)八、CPU結(jié)構(gòu)舉例8086CPU:由總線接口單元(BIU)和執(zhí)行單元(EU)構(gòu)成;BIU功能:形成主存的物理地址,訪問主存取指令置入指令隊(duì)列中等待執(zhí)行;訪問存儲(chǔ)器或I/O端口讀取操作數(shù)去參加運(yùn)算或存放運(yùn)算結(jié)果。EU功能:執(zhí)行指令;BIU與EU獨(dú)立操作,并行執(zhí)行。80386CPU:32位微處理器芯片,系統(tǒng)內(nèi)部設(shè)置了指令流水線和地址流水線。指令流水線可使多條指令重疊操作,并行執(zhí)行;地址流水線能快速生成有效地址、線性地址和物理地址。80486CPU:與80386大體相同主要區(qū)別僅在于80486將浮點(diǎn)運(yùn)算部件FPU和8KB的高速緩沖存儲(chǔ)器集成到芯片內(nèi)部,有效提高了浮點(diǎn)運(yùn)算速度,80486的整體性能是80386的2-3倍。第六章 中央處理器(40)八、CPU結(jié)構(gòu)舉例40第六章 中央處理器(41)九、CPU中的流水線結(jié)構(gòu)基本概念 若將指令的解釋過(guò)程分成取指令,分析指令,取操作數(shù)和執(zhí)行操作4個(gè)階段,各階段可稱作一個(gè)功能段,如下圖所示。入口取指令分析指令取操作數(shù)執(zhí)行操作出口定時(shí)控制△t1△t2△t3△t4tB1tB2tB3tB4上圖中,任何時(shí)候可以有4條指令處于流水線中不同的功能段,即同時(shí)有4條指令在機(jī)內(nèi)執(zhí)行。第六章 中央處理器(41)九、CPU中的流水線結(jié)構(gòu)入口取41第六章 中央處理器(42) 若把每個(gè)功能塊所需的執(zhí)行時(shí)間叫做一個(gè)節(jié)拍,在連續(xù)流水的情況下,每個(gè)節(jié)拍可執(zhí)行完一條指令,可用時(shí)空?qǐng)D表示如下:空間時(shí)間1345672134567213456721345672取指令分析指令取操作數(shù)執(zhí)行操作t0t1t2t3t4t5t6t7t8t9t10

從圖中,可以看出:流水線操作不能加快任何一條指令的執(zhí)行過(guò)程,但是它能加快連續(xù)一串指令的執(zhí)行過(guò)程,而且連續(xù)流水的時(shí)間越長(zhǎng),系統(tǒng)效率越高;設(shè)計(jì)流水線結(jié)構(gòu)時(shí)應(yīng)使各個(gè)功能塊的持續(xù)時(shí)間(△ti)盡可能相同。若△ti不等,則畫時(shí)空?qǐng)D應(yīng)以最大的△ti為標(biāo)準(zhǔn),即(△ti)=max(△ti)+tBi,tBi是各個(gè)功能塊之間的緩沖設(shè)備的延遲時(shí)間。一般情況下,各個(gè)tBi相等。這種流水線在操作過(guò)程中,各個(gè)功能塊間無(wú)反饋連接,稱作線性流水線。線性流水線的操作過(guò)程可分為裝滿(t0~t3)、穩(wěn)定流水(t3~t7)和排空(t7~t10)三個(gè)階段。第六章 中央處理器(42) 若把每個(gè)功能塊所需的執(zhí)行時(shí)間42第六章 中央處理器(43)流水線結(jié)構(gòu)的分類根據(jù)應(yīng)用場(chǎng)合:部件級(jí)流水結(jié)構(gòu)、處理機(jī)級(jí)的流水結(jié)構(gòu)、處理機(jī)間的流水結(jié)構(gòu)根據(jù)完成的功能:?jiǎn)喂δ芰魉€、多功能流水線根據(jù)功能塊間的連接方式:線性流水線和非線性流水線流水結(jié)構(gòu)中的相關(guān)處理

指令流水線同一時(shí)刻在流水線中被操作的指令有多條,這多條指令之間可能存在著各種類型的相關(guān)情況。局部性相關(guān)指令相關(guān):若已進(jìn)入流水線的前面的指令,對(duì)后邊的指令進(jìn)行某種修改,稱作產(chǎn)生了指令相關(guān)。解決辦法:禁止修改指令。數(shù)據(jù)相關(guān):若已進(jìn)入流水線的前面的指令的結(jié)果操作數(shù)是后面指令的源操作數(shù),稱作產(chǎn)生了數(shù)據(jù)相關(guān)。根據(jù)該操作數(shù)是在主存中還是在通用寄存器中分別稱作“主存數(shù)相關(guān)”和“寄存器數(shù)相關(guān)”。解決辦法:解決主存數(shù)相關(guān),通過(guò)主存控制部件實(shí)現(xiàn)“先寫后讀”的排隊(duì)方式。解決寄存器數(shù)相關(guān),推遲讀出或在寄存器間設(shè)置“相關(guān)專用通路”。第六章 中央處理器(43)流水線結(jié)構(gòu)的分類43第六章 中央處理器(44)全局性相關(guān)

轉(zhuǎn)移類指令尤其是條件轉(zhuǎn)移類指令對(duì)流水線操作產(chǎn)生嚴(yán)重影響。因?yàn)闂l件轉(zhuǎn)移指令中的條件是否滿足,只有形成條件碼的指令流出流水線時(shí)才能確定。若轉(zhuǎn)移成功,則已進(jìn)入流水線的后續(xù)指令將全部作廢,因此稱之為“全局性相關(guān)”。

解決全局性相關(guān)可采用的辦法:猜測(cè)法:遇到條件轉(zhuǎn)移類指令,要先猜測(cè)轉(zhuǎn)移不成功的路徑并繼續(xù)向前執(zhí)行,一旦發(fā)現(xiàn)猜測(cè)失誤,則立即回到轉(zhuǎn)移成功路徑執(zhí)行程序。為加快這一進(jìn)程,可設(shè)置轉(zhuǎn)移成功路徑緩沖器。提前形成條件碼:有些運(yùn)算類指令并非執(zhí)行完才能建立起轉(zhuǎn)移條件,如判定乘除法運(yùn)算結(jié)果的符號(hào),可在乘除法運(yùn)算操作之前提前形成。這樣可提前判定轉(zhuǎn)移是否成功,對(duì)于縮短流水線的斷流時(shí)間是有效的。縮短循環(huán)程序的長(zhǎng)度:指令流水線執(zhí)行循環(huán)程序時(shí),設(shè)置一定容量的指令緩沖器,盡可能縮短循環(huán)程序的長(zhǎng)度,使之全部包含在指令緩沖器中。該循環(huán)程序執(zhí)行期間,指令緩沖器中的內(nèi)容保持不變,處理好首尾相連便可使流水線不斷流。延遲轉(zhuǎn)移法:遇到轉(zhuǎn)移類指令,則將轉(zhuǎn)移指令提前一條或幾條指令優(yōu)先執(zhí)行,使轉(zhuǎn)移指令延遲一條或幾條指令執(zhí)行后再實(shí)現(xiàn);或在轉(zhuǎn)移類指令后增設(shè)一條或幾條空指令,待空操作執(zhí)行完后再實(shí)現(xiàn)轉(zhuǎn)移,雖然程序加長(zhǎng)了,但對(duì)保持流水結(jié)構(gòu)連續(xù)流水很有效。第六章 中央處理器(44)全局性相關(guān)44第六章 中央處理器(45)十、RISC計(jì)算機(jī)RISC:精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī);CISC:復(fù)雜指令系統(tǒng)計(jì)算機(jī);1975年由Coke等人率先提出RISC思想;70年代末,IBM80132位RISC計(jì)算機(jī)問世;RISC的目標(biāo)不是簡(jiǎn)單地放在縮減指令系統(tǒng)上,而是要使計(jì)算機(jī)的結(jié)構(gòu)更簡(jiǎn)單、更合理、性能更高,而設(shè)計(jì)工作量卻減小,設(shè)計(jì)周期有效縮短;RISC計(jì)算機(jī)的特點(diǎn):指令系統(tǒng)中只包含最常用的少數(shù)指令,一般不超過(guò)100條指令,可優(yōu)化編譯程序;指令格式種類少,盡可能縮短指令字的長(zhǎng)度,一般采用等長(zhǎng)指令字;指令中采用少數(shù)幾種最常用的尋址方式,使得尋址操作過(guò)程簡(jiǎn)單;縮短指令執(zhí)行時(shí)間。一般指令在一個(gè)機(jī)器周期內(nèi)完成,便于采用流水線結(jié)構(gòu);CPU內(nèi)部設(shè)置大量的寄存器,使得一般指令的操作均在寄存器內(nèi)部實(shí)現(xiàn),而不需訪問存儲(chǔ)器;第六章 中央處理器(45)十、RISC計(jì)算機(jī)45第六章 中央處理器(46)指令中只有取數(shù)和存數(shù)指令需要訪問存儲(chǔ)器;一般采用組合邏輯控制方式,而不采用或少采用微程序控制方式;由于機(jī)器結(jié)構(gòu)簡(jiǎn)單,便于集成化,可有效縮短機(jī)器的設(shè)計(jì)周期,提高系統(tǒng)可靠性,便于維護(hù)、故障檢測(cè)和診斷。第六章 中央處理器(46)指令中只有取數(shù)和存數(shù)指令需要訪46第六章 中央處理器(2)混合控制方式現(xiàn)代計(jì)算機(jī)系統(tǒng)廣泛采用的方式基本思想:將每個(gè)指令周期分成多個(gè)機(jī)器周期,每個(gè)機(jī)器周期中再分成多個(gè)節(jié)拍,于是各條指令可取不同的機(jī)器周期數(shù)作為各自的指令周期。如簡(jiǎn)單指令包含一個(gè)機(jī)器周期,復(fù)雜指令可包含多個(gè)機(jī)器周期。這種方式不浪費(fèi)很多時(shí)間,控制上又不十分復(fù)雜。二、控制器的功能與組成1、控制器的功能指令控制

根據(jù)給定的地址從主存儲(chǔ)器中取出待執(zhí)行的指令,并分析指令功能,然后執(zhí)行該指令,接著取下條指令,分析并執(zhí)行下條指令。時(shí)序控制 機(jī)器指令的操作過(guò)程(包括取指令、分析指令和執(zhí)行指令)是嚴(yán)格按照一定的時(shí)序進(jìn)行的,一個(gè)指令周期中包含多少個(gè)機(jī)器周期隨指令功能的不同而不同,一個(gè)機(jī)器周期中包含多少個(gè)節(jié)拍隨機(jī)器周期的不同而不同。這些周期和節(jié)拍信息都應(yīng)由時(shí)序部件定時(shí)產(chǎn)生,不允許出現(xiàn)任何差錯(cuò)。第六章 中央處理器(2)混合控制方式47第六章 中央處理器(3)操作控制 在時(shí)序信號(hào)控制下,各個(gè)指令周期中包含多少個(gè)機(jī)器周期,各個(gè)機(jī)器周期內(nèi)部的各個(gè)節(jié)拍中完成什么功能,均由指令操作流程作出嚴(yán)格規(guī)定??刂破鲬?yīng)能按照指令操作流程圖的規(guī)定,在各個(gè)節(jié)拍中產(chǎn)生控制信號(hào),控制各各相關(guān)部件完成相應(yīng)的操作。由于這些控制信號(hào)所完成的操作非常簡(jiǎn)單,通常稱它們微操作控制信號(hào)或微命令。2、控制器的組成 控制器是全機(jī)的指揮中心,其復(fù)雜程度隨機(jī)器規(guī)模大小有比較大的區(qū)別,但一般應(yīng)包含如下主要部件:程序計(jì)數(shù)器PC:存放待執(zhí)行指令在存儲(chǔ)器中的地址,即指令地址寄存器指令寄存器IR:存放從寄存器中取出的待執(zhí)行指令指令譯碼器ID:操作碼譯碼時(shí)序部件:產(chǎn)生計(jì)算機(jī)工作過(guò)程中所需的各種時(shí)序信號(hào)微操作控制部件:產(chǎn)生與各條微指令對(duì)應(yīng)的微操作控制信號(hào)。通常有三種構(gòu)成方式-由邏輯電路,或存儲(chǔ)邏輯電路構(gòu)成,或可編程邏輯陣列PLA構(gòu)成中斷系統(tǒng)操作控制臺(tái)第六章 中央處理器(3)操作控制48第六章 中央處理器(4)三、指令的執(zhí)行過(guò)程1、指令周期“指令周期”是指一條指令從取出到執(zhí)行完畢所需要的時(shí)間,通常將其分成兩個(gè)階段-取指令、分析指令階段和執(zhí)行指令階段。取指令階段對(duì)所有指令都相同,可稱作“公操作階段”。執(zhí)行指令階段的不同操作才反映出不同的指令功能。對(duì)于采用混合控制方式的現(xiàn)代計(jì)算機(jī),一般的做法是定義幾個(gè)基本的機(jī)器周期,例如:取指令機(jī)器周期,讀存儲(chǔ)器機(jī)器周期,寫存儲(chǔ)器機(jī)器周期和執(zhí)行運(yùn)算機(jī)器周期等。一個(gè)指令周期中,可包含不同數(shù)量、不同種類的一個(gè)或幾個(gè)機(jī)器周期。但任何指令的第一個(gè)機(jī)器周期必須是取指令機(jī)器周期,由它完成取指令和分析指令的功能。機(jī)器周期又稱作CPU周期,通常是存儲(chǔ)器的一個(gè)訪問周期。一個(gè)機(jī)器周期內(nèi)部又可分為幾個(gè)節(jié)拍。節(jié)拍是計(jì)算機(jī)操作的最小單位,又稱作時(shí)鐘周期或T周期。第六章 中央處理器(4)三、指令的執(zhí)行過(guò)程49第六章 中央處理器(5)指令周期取指令機(jī)器周期執(zhí)行指令機(jī)器周期T1T3T2T3T1TxT2Tn節(jié)拍第六章 中央處理器(5)指令周期取指令機(jī)器周期執(zhí)行指令機(jī)50第六章 中央處理器(6)一個(gè)機(jī)器周期內(nèi)所包含的節(jié)拍數(shù)可固定不變,或可變。2、指令操作流程任何一條機(jī)器指令的執(zhí)行過(guò)程都是一個(gè)微操作序列的執(zhí)行過(guò)程。將指令周期中所包含的微操作合理地分配在各個(gè)機(jī)器周期的各個(gè)節(jié)拍中,便可構(gòu)成各條指令的操作流程圖。任何指令在取指令周期的操作都基本相同。 假定某計(jì)算機(jī)中,每個(gè)機(jī)器周期內(nèi)均包含4個(gè)節(jié)拍(T1~T4),則取指令機(jī)器周期的操作流程為:PC→MARRDMPC+1→PCMDR→IR指令譯碼T1T2T3T4第六章 中央處理器(6)一個(gè)機(jī)器周期內(nèi)所包含的節(jié)拍數(shù)可固51第六章 中央處理器(7) 各節(jié)拍操作:T1拍:將PC內(nèi)容置入存儲(chǔ)器地址寄存器MAR中;T2拍:向存儲(chǔ)器發(fā)出讀令;T3拍:修改PC內(nèi)容,使之指向下條指令地址;T4拍:將從存儲(chǔ)器讀出的指令置入指令寄存器IR中,并對(duì)操作碼部分進(jìn)行譯碼。其它機(jī)器周期的操作流程圖與具體指令有關(guān)。例如:采用直接尋址方式的取數(shù)指令完成從存儲(chǔ)器的有效地址中取出操作數(shù)置入累加器AC中,則應(yīng)在取指令周期后安排一個(gè)執(zhí)行操作的機(jī)器周期。如右圖。IR(ADR)→MART1RDMT2MDR→DBUST3BUS→ACT4第六章 中央處理器(7) 各節(jié)拍操作:其它機(jī)器周期的操作52第六章 中央處理器(8)

在這個(gè)機(jī)器周期中,主要完成從存儲(chǔ)器中取操作數(shù)的功能,因此可稱它為讀存儲(chǔ)器機(jī)器周期。各節(jié)拍操作:T1拍:將指令中的地址碼部分(形式地址D)置入存儲(chǔ)器地址寄存器MAR中;T2拍:向存儲(chǔ)器發(fā)出讀令;T3拍:將讀出的操作數(shù)送數(shù)據(jù)總線;T4拍:將操作數(shù)置入累加寄存器AC中。

同樣是取數(shù)指令,若采用間接尋址方式,則至少需要兩個(gè)執(zhí)行周期。第一個(gè)執(zhí)行周期訪問存儲(chǔ)器取操作數(shù)地址,第二個(gè)執(zhí)行周期訪問存儲(chǔ)器取操作數(shù)置入累加器中。

假想模型機(jī)的指令系統(tǒng)包含8條機(jī)器指令,其指令操作流程圖如下:第六章 中央處理器(8) 在這個(gè)機(jī)器周期中,主要完成從存53第六章 中央處理器(9)IR(ADR)→MARRDM讀出操作MDR→BUS→ACIR(ADR)→MARAC→MDRWEM寫入操作IR(ADR)→MARRDM讀出操作AC+MDR→ACIR(ADR)→MARRDM讀出操作AC∩MDR→ACIR(ADR)→PC0→啟停邏輯IR(ADR)→PCZF=1?AC→ACPC→MARRDMPC+1→PCMDR→IRT1T2T3T4指令譯碼T1T2T3T4執(zhí)行指令機(jī)器周期取指令機(jī)器周期LDASTAADDANDJMPJMPZCOMHALT該模型機(jī)所有指令均在兩個(gè)周期內(nèi)完成。第一個(gè)機(jī)器周期為取指令周期,第二個(gè)機(jī)器周期的操作各不相同,分別完成各條指令的不同功能。一般情況下,任何一條指令執(zhí)行完畢都要訪問中斷,若當(dāng)前有中斷請(qǐng)求,則轉(zhuǎn)去執(zhí)行中斷處理程序,否則進(jìn)入下條機(jī)器指令的取指令周期,開始下一個(gè)指令周期。第六章 中央處理器(9)IR(ADR)→MARRDM54第六章 中央處理器(10)四、時(shí)序部件指令的執(zhí)行過(guò)程嚴(yán)格按照指令操作流程圖所規(guī)定的時(shí)序定時(shí);時(shí)序部件用來(lái)產(chǎn)生必要的時(shí)序信號(hào)為機(jī)器周期和節(jié)拍信號(hào)定時(shí);根據(jù)組成計(jì)算機(jī)各部件的器件特性,時(shí)序信號(hào)通常采用“電位-脈沖”制。時(shí)序部件的構(gòu)成脈沖源即主時(shí)鐘,通常由石英晶體振蕩器構(gòu)成節(jié)拍信號(hào)發(fā)生器

又叫脈沖分配器,產(chǎn)生各個(gè)機(jī)器周期中的節(jié)拍信號(hào)。啟停線路邏輯第六章 中央處理器(10)四、時(shí)序部件55第六章 中央處理器(11)五、組合邏輯控制器基本概念機(jī)器指令的執(zhí)行過(guò)程就是一個(gè)微操作序列的執(zhí)行過(guò)程,在各條機(jī)器指令的各個(gè)機(jī)器周期的各個(gè)節(jié)拍中,應(yīng)該產(chǎn)生那些微操作控制信號(hào),由指令操作流程圖作出嚴(yán)格的規(guī)定。采用組合邏輯電路來(lái)產(chǎn)生微操作控制信號(hào)的部件稱作“組合邏輯控制器”;優(yōu)點(diǎn)是速度快,但設(shè)計(jì)工作量大。設(shè)計(jì)過(guò)程微操作綜合:將指令操作流程圖中各條機(jī)器指令在不同機(jī)器周期的不同節(jié)拍中產(chǎn)生的同一個(gè)微操作控制信號(hào)集中到一起形成一個(gè)邏輯表達(dá)式?;?jiǎn)邏輯表達(dá)式。用具體的邏輯電路實(shí)現(xiàn)所有表達(dá)式。組合邏輯控制器的特點(diǎn)一旦設(shè)計(jì)成功,不易修改。由組合邏輯控制器產(chǎn)生的微操作控制信號(hào)Ci是指令I(lǐng)m、時(shí)序信號(hào)Ti和運(yùn)算結(jié)果特征Si的函數(shù)。即Ci=f(Im,Ti,Si)設(shè)計(jì)舉例(144)第六章 中央處理器(11)五、組合邏輯控制器56第六章 中央處理器(12)六、微程序控制器1、基本概念任何一條機(jī)器指令的執(zhí)行過(guò)程就是一個(gè)微操作控制信號(hào)的產(chǎn)生過(guò)程;一個(gè)微操作控制信號(hào)稱作一個(gè)微命令;將幾個(gè)、十幾個(gè)甚至幾十個(gè)微命令集中由一條微指令來(lái)產(chǎn)生,于是一條機(jī)器指令便可由一條或幾條微指令來(lái)解釋。微指令:微命令的集合微程序:解釋一條機(jī)器指令的微指令的集合微程序設(shè)計(jì):設(shè)計(jì)與各條機(jī)器指令相對(duì)應(yīng)的微程序的過(guò)程。一種確定的算法,由一段機(jī)器語(yǔ)言程序解釋;任何一條機(jī)器指令又可由一段相應(yīng)的微程序來(lái)解釋。第六章 中央處理器(12)六、微程序控制器57第六章 中央處理器(13)問題的算法ADDR1,R2STAm1機(jī)器語(yǔ)言程序ADD指令微程序STA指令微程序第六章 中央處理器(13)問題的算法ADDR1,R2S58第六章 中央處理器(14)說(shuō)明:各條機(jī)器指令對(duì)應(yīng)的微程序長(zhǎng)度各不相同,取決于指令功能的強(qiáng)弱,也與微指令本身的功能強(qiáng)弱有關(guān)系;機(jī)器指令的執(zhí)行過(guò)程就是與之對(duì)應(yīng)的微程序的執(zhí)行過(guò)程;機(jī)器執(zhí)行過(guò)程中的微命令由微指令產(chǎn)生;上述這種控制方式,稱作微程序控制方式,其相應(yīng)的部件,稱作微程序控制器。顯然,微程序控制器是將組合邏輯控制器中的硬件軟化成為微程序而形成的;優(yōu)點(diǎn):修改方便,規(guī)整性好,有規(guī)律可尋,可借鑒軟件設(shè)計(jì)經(jīng)驗(yàn);采用微程序控制方式的計(jì)算機(jī),把所有的微程序集中存放在一個(gè)獨(dú)立的存儲(chǔ)器中,稱作控制存儲(chǔ)器(CM-ControlMemory);微程序一旦設(shè)計(jì)完畢,不允許修改,只允許執(zhí)行,因此CM一般由EPROM構(gòu)成;每條微指令在CM中占用一個(gè)地址,CM的容量取決于微指令的字長(zhǎng)和微程序的總長(zhǎng)度。現(xiàn)代計(jì)算機(jī)廣泛采用微程序控制方式。超高速計(jì)算機(jī)不宜采用這種方式。第六章 中央處理器(14)說(shuō)明:59第六章 中央處理器(15)2、微指令格式微指令與機(jī)器指令類似,由微操作碼和微地址碼組成;微操作碼部分用來(lái)確定該微指令所能產(chǎn)生的微命令,稱作控制字段;微地址碼部分用來(lái)確定將要執(zhí)行的下條微指令在CM中的地址,其作用與機(jī)器指令中的地址碼不同;

(1)、微指令的控制字段微指令分類:水平型微指令、垂直型微指令水平型微指令:能并行產(chǎn)生多個(gè)微命令的微指令,又分2種:直接控制的水平型微指令編碼控制的水平型微指令第六章 中央處理器(15)2、微指令格式60第六章 中央處理器(15)直接控制的水平型微指令特點(diǎn):控制字段中每一位表示一個(gè)微命令。n位長(zhǎng)的控制字段最多能并行產(chǎn)生n個(gè)微命令;缺點(diǎn):控制字段較長(zhǎng);格式:控制字段地址字段………..C0C1C2C3Cn第六章 中央處理器(15)直接控制的水平型微指令控制字段61第六章 中央處理器(16)編碼控制的水平型微指令特點(diǎn):將控制字段分成許多子字段,每個(gè)子字段設(shè)置一個(gè)譯碼器,任何微命令都是經(jīng)過(guò)譯碼器輸出;任何時(shí)候任何一個(gè)子字段中最多只能產(chǎn)生一個(gè)微命令;一個(gè)子字段所包含的微命令構(gòu)成一個(gè)“相斥類”的微命令組,即它們是不允許同時(shí)產(chǎn)生的微命令;處于各個(gè)不同子字段中的微命令構(gòu)成一個(gè)“相容類”的微命令組,它們?cè)试S在一條微命令中同時(shí)產(chǎn)生;缺點(diǎn):并行性降低,且需增設(shè)譯碼器;優(yōu)點(diǎn):可縮短微指令長(zhǎng)度,減小CM容量。注意:設(shè)計(jì)時(shí)考慮各子字段不產(chǎn)生微命令的特殊情況。格式:第六章 中央處理器(16)編碼控制的水平型微指令62第六章 中央處理器(17)控制字段譯碼器譯碼器譯碼器譯碼器A0~A7B0~B31C0~C31D0~D15地址字段A字段B字段C字段D字段XXXXXXXXXXXXXXXXX第六章 中央處理器(17)控制字段譯碼器譯碼器譯碼器譯碼63第六章 中央處理器(18)垂直型微指令接近于機(jī)器指令,無(wú)并行性;每條微指令任何時(shí)候只能產(chǎn)生一條微命令。格式:譯碼器C0~C31控制字段地址字段XXXXX目標(biāo)部件地址源部件地址第六章 中央處理器(18)垂直型微指令譯碼器C0~C3164第六章 中央處理器(19)

(2)、微指令的地址字段微程序有兩種不同的順序控制方式:斷定方式和增量方式。兩種方式下地址字段的設(shè)置不同。斷定方式微指令在CM可不順序存放外部測(cè)試條件的考慮控制字段條件測(cè)試下條微指令地址增量方式微指令在CM中順序存放設(shè)upc控制字段條件測(cè)試第六章 中央處理器(19) (2)、微指令的地址字段控制65第六章 中央處理器(20) 舉例:某計(jì)算機(jī)采用微程序控制方式,微指令字長(zhǎng)24位,采用水平型編碼控制的微指令格式,斷定方式。共有微命令30個(gè),構(gòu)成4個(gè)相斥類,各包含5個(gè)、8個(gè)、14個(gè)和3個(gè)微命令,外部條件4個(gè)。(1)求控制存儲(chǔ)器的容量; (2)設(shè)計(jì)微指令的具體格式??刂谱侄巫g碼器譯碼器譯碼器譯碼器A0~A5

B0~B8

C0~C14

D0~D3XXXXXXXX條件測(cè)試字段XXXXXXXXXXXXXXXX微地址字段

232120171613121110870解:(1)256×24(位)(2)第六章 中央處理器(20) 舉例:控制字段譯碼器譯碼器譯66第六章 中央處理器(21)3、微程序控制器的結(jié)構(gòu) 根據(jù)微程序的兩種不同順序控制方式,微程序控制器有兩種不同的結(jié)構(gòu)。

(1)、采用斷定方式的微程序控制器結(jié)構(gòu)01n控制存儲(chǔ)器(CM)微地址譯碼器微程序首地址(來(lái)自控制器)控制字段條件測(cè)試地址字段地址轉(zhuǎn)移邏輯外部條件

C0C1 … Cm第六章 中央處理器(21)3、微程序控制器的結(jié)構(gòu)01n控67第六章 中央處理器(22)采用斷定方式的微程序控制器的特點(diǎn)微程序控制器的主體是用來(lái)存放微指令的控制存儲(chǔ)器(CM),其容量為CM的總字?jǐn)?shù)與微指令字長(zhǎng)的乘積;CM中可存放與各條機(jī)器指令對(duì)應(yīng)的許多個(gè)微程序,組成各個(gè)微程序的微指令可在CM中任意存放,由各條微指令的微地址字段給出下條微指令在CM中的地址。若是條件轉(zhuǎn)移類微指令,則由條件測(cè)試字段通過(guò)地址轉(zhuǎn)移邏輯判定外部條件是否滿足。若滿足條件,則改變微地址字段的某一位或多位的狀態(tài),以實(shí)現(xiàn)微程序的轉(zhuǎn)移,否則,按微地址字段給定的地址去執(zhí)行下條微指令。采用斷定方式的微程序控制器的操作過(guò)程由于取指令機(jī)器周期的微操作與指令無(wú)關(guān),能產(chǎn)生相應(yīng)微命令的微指令固定存放在CM的指定地址中;一旦機(jī)器被啟動(dòng),該地址(即微程序首地址)經(jīng)微地址譯碼器譯碼后開始執(zhí)行微程序,在相應(yīng)微指令控制之下將第一條機(jī)器指令從主存儲(chǔ)器中取出置入指令寄存器中,經(jīng)指令譯碼器譯碼后利用條件轉(zhuǎn)移微指令轉(zhuǎn)到執(zhí)行該機(jī)器指令的微程序入口去執(zhí)行后續(xù)微指令,直到整個(gè)微程序執(zhí)行完畢。第六章 中央處理器(22)采用斷定方式的微程序控制器的特68第六章 中央處理器(23)

(2)、采用增量方式的微程序控制器結(jié)構(gòu)微程序首地址(來(lái)自控制器)控制字段條件測(cè)試地址轉(zhuǎn)移邏輯外部條件

C0C1 … Cm01n控制存儲(chǔ)器(CM)微地址譯碼器微程序計(jì)數(shù)器upcupc+1第六章 中央處理器(23) (2)、采用增量方式的微程序69第六章 中央處理器(24)采用增量方式的微程序控制器的特點(diǎn)微指令字中不需要包含微地址字段;控制器中需要單獨(dú)設(shè)置一個(gè)微程序計(jì)數(shù)器(upc)。一般情況下由upc+1來(lái)確定下條微指令在CM中的地址,只有遇到轉(zhuǎn)移類微指令才需要改變upc中的某一位或多位地址碼的狀態(tài),以實(shí)現(xiàn)微程序的轉(zhuǎn)移。若是條件轉(zhuǎn)移類微指令,則由條件測(cè)試字段通過(guò)地址轉(zhuǎn)移邏輯判定是否滿足條件。若滿足條件,則修改upc的內(nèi)容,實(shí)現(xiàn)微程序轉(zhuǎn)移;否則順序執(zhí)行下條微指令。這種結(jié)構(gòu)的微程序控制器要求對(duì)應(yīng)各條機(jī)器指令的微程序一般情況下在CM中順序存放,只有遇到轉(zhuǎn)移類微指令才能改變微程序的走向,這種結(jié)構(gòu)可有效縮短CM的字長(zhǎng)。第六章 中央處理器(24)采用增量方式的微程序控制器的特70第六章 中央處理器(25)采用增量方式的微程序控制器的操作過(guò)程將完成取指令功能的第一條微指令在CM中的地址置入微程序計(jì)數(shù)器upc中,經(jīng)譯碼后可從該地址中取出第一條微指令,執(zhí)行由它開始的一條或幾條第一條機(jī)器指令取出置入指令寄存器IR中,經(jīng)指令譯碼后利用條件轉(zhuǎn)移微指令可轉(zhuǎn)移到執(zhí)行相應(yīng)機(jī)器指令的微程序入口;將該入口地址置入upc后,一般情況下順序執(zhí)行后續(xù)微指令,由upc+1給出后續(xù)微指令地址,只有遇到轉(zhuǎn)移類微指令,才會(huì)修改upc內(nèi)容實(shí)現(xiàn)微程序的轉(zhuǎn)移。重復(fù)以上過(guò)程直到停機(jī)為止。兩種微程序控制器操作過(guò)程的主要區(qū)別斷定方式由微指令的微地址字段給出下條微指令的地址;增量方式由微程序計(jì)數(shù)器給定下條微指令的地址。第六章 中央處理器(25)采用增量方式的微程序控制器的操71第六章 中央處理器(26)4、微指令的定時(shí)在采用微程序控制方式的計(jì)算機(jī)系統(tǒng)中,機(jī)器指令的執(zhí)行過(guò)程成為一個(gè)微程序的執(zhí)行過(guò)程,一條機(jī)器指令的指令周期就成為多條微指令的微指令周期的總和;為了不會(huì)因?yàn)椴捎梦⒊绦蚩刂品绞蕉箼C(jī)器指令的執(zhí)行速度大大降低,希望微指令的制周期越短越好;任何一條微指令都要從CM中取出后才能去執(zhí)行,若將機(jī)器指令的一個(gè)機(jī)器周期內(nèi)的微操作由一條微指令來(lái)完成,則要求一條微指令的指令周期與CPU的一個(gè)機(jī)器周期的持續(xù)時(shí)間相等,如下圖:取指令機(jī)器周期執(zhí)行指令機(jī)器周期指令周期(機(jī)器指令)取微指令執(zhí)行微指令微指令周期微指令周期第六章 中央處理器(26)4、微指令的定時(shí)取指令機(jī)器周期72第六章 中央處理器(27)上述情況下,若能做到每條微指令都能夠產(chǎn)生機(jī)器指令的一個(gè)機(jī)器周期中的全部微命令,則不會(huì)降低機(jī)器指令的執(zhí)行速度;但要求控制存儲(chǔ)器的速度要足夠高,而且微指令的功能要相當(dāng)強(qiáng),有較高的并行性;垂直型微指令無(wú)法滿足這一要求,因此采用微程序控制方式的計(jì)算機(jī)完全不降低機(jī)器的原有速度是不易做到的,除非CM的訪問速度非??欤荒壳?,受器件水平和價(jià)格的限制,超高速的計(jì)算機(jī)系統(tǒng)仍然不采用微程序控制方式。第六章 中央處理器(27)上述情況下,若能做到每條微指令73第六章 中央處理器(28)IR(ADR)→ARRDMM→DRDR→XR1→Y“+”LDR!PC→ARRDMPC+1→PCDR→IR1234指令譯碼執(zhí)行指令機(jī)器周期取指令機(jī)器周期ADD678955、微程序設(shè)計(jì)舉例對(duì)于一臺(tái)采用微程序控制方式的計(jì)算機(jī),設(shè)計(jì)與各條機(jī)器指令相對(duì)應(yīng)的微程序的過(guò)程稱作“微程序設(shè)計(jì)”;指令系統(tǒng)中,有多少條機(jī)器指令,就應(yīng)該設(shè)計(jì)出多少個(gè)微程序。以前述模型機(jī)為例,采用微程序控制器,微指令采用斷定方式及直接控制水平型微指令格式,CM容量為256×30(位)。以一條“加法指令”(ADD)為例來(lái)說(shuō)明微程序設(shè)計(jì)的具體過(guò)程,流程圖為右圖。第六章 中央處理器(28)IR(ADR)→ARRDM74第六章 中央處理器(29)IR(ADR)→ARRDMM→DRDR→XR2→Y“+”LDR!PC→ARRDMPC+1→PCDR→IR1234指令譯碼執(zhí)行指令機(jī)器周期取指令機(jī)器周期ADD67895假定將取指令周期中的微命令用一條“取指”微指令uI1來(lái)完成,將執(zhí)行指令機(jī)器周期中的微命令uI2和uI3來(lái)完成,前者完成第6到第8步的功能,后者完成第9步的功能,于是ADD指令的微程序可用下面的流程圖描述。PC→AR,RDMPC+1,DR→IR指令譯碼(由P1控制)IR→AR,RDMM→DRDR→X,R2→Y“+”,LDR100H82H34H00H第六章 中央處理器(29)IR(ADR)→ARRDM75第六章 中央處理器(30)微指令uI1,uI2和uI3的格式如下:微地址字段P1P2條件測(cè)試字段C1C2C3C4C5C6C7C8C9C10C11C12C13C14C15C16C17C18C19C20

000101

11000RDMLDIRLDARPC+1100000000029 109870uI1微地址字段P1P2條件測(cè)試字段C1C2C3C4C5C6C7C8C9C10C11C12C13C14C15C16C17C18C19C20

0001

1010000RDMLDDRLDAR000011010029 109870uI2第六章 中央處理器(30)微指令uI1,uI2和uI3的76第六章 中央處理器(31)微地址字段P1P2條件測(cè)試字段C1C2C3C4C5C6C7C8C9C10C11C12C13C14C15C16C17C18C19C20

1001101000000000000

109870uI3LDR1R2→YDR→X“+”仿照類似的方法可設(shè)計(jì)出所有機(jī)器指令的微程序,并將它們寫入到CM中,CM一般由EPROM構(gòu)成;微程序設(shè)計(jì)完后,若發(fā)現(xiàn)某些機(jī)器指令的功能不夠理想,希望作修改時(shí),只需對(duì)相應(yīng)微程序的某些微指令作適當(dāng)修改后,重新寫入到CM中即可;微程序仿真:在一臺(tái)計(jì)算機(jī)上用微程序模擬另一臺(tái)計(jì)算機(jī)的指令系統(tǒng)。第六章 中央處理器(31)微地址字段P1P2條件測(cè)77第六章 中央處理器(32)七、中斷系統(tǒng)中斷概念的提出及中斷系統(tǒng)的基本功能中斷請(qǐng)求:當(dāng)事件發(fā)生時(shí)能向CPU發(fā)出的請(qǐng)求中斷系統(tǒng):能接受中斷請(qǐng)求,并對(duì)中斷事件進(jìn)行處理的部件1、中斷系統(tǒng)的功能及時(shí)發(fā)現(xiàn)和處理機(jī)器中的軟、硬件故障,如電源掉電,存儲(chǔ)器奇偶校驗(yàn)錯(cuò),運(yùn)算溢出,程序越界等;應(yīng)用實(shí)時(shí)控制系統(tǒng)的計(jì)算機(jī),由中斷系統(tǒng)來(lái)接受從外部適時(shí)輸入的信息并進(jìn)行必要的處理;計(jì)算機(jī)系統(tǒng)中主機(jī)與輸入輸出設(shè)備間可采用中斷方式交換信息,以實(shí)現(xiàn)主機(jī)與外設(shè)并行工作;計(jì)算機(jī)軟件的調(diào)試和維護(hù)過(guò)程中,可利用中斷系統(tǒng)提供人工干預(yù)的途徑,以實(shí)現(xiàn)人機(jī)會(huì)話功能;多用戶計(jì)算機(jī)系統(tǒng)中,通過(guò)中斷系統(tǒng)進(jìn)行多道程序的調(diào)度以實(shí)現(xiàn)多道運(yùn)行。第六章 中央處理器(32)七、中斷系統(tǒng)78第六章 中央處理器(33)2、中斷的分類與分級(jí)

一個(gè)計(jì)算機(jī)系統(tǒng)中常常包含幾個(gè)、十幾個(gè)、幾十個(gè)甚至更多的中斷源,可將它們分成不同的類型和不同的級(jí)別。中斷的分類根據(jù)中斷源所在的位置,分為內(nèi)部中斷和外部中斷;內(nèi)部中斷:CPU內(nèi)部產(chǎn)生的中斷源,如運(yùn)算溢出中斷,程序越界中斷,指令中斷等;外部中斷:如掉電中斷,存儲(chǔ)器奇偶校驗(yàn)錯(cuò)中斷,外部設(shè)備輸入輸出設(shè)備請(qǐng)求中斷等。根據(jù)中斷源的可屏蔽性質(zhì),分為可屏蔽中斷和不可屏蔽中斷;根據(jù)中斷源的性質(zhì)分為故障中斷和正常中斷;根據(jù)中斷的進(jìn)入方式分為自愿中斷和強(qiáng)迫中斷。中斷的分級(jí) 根據(jù)系統(tǒng)中各中斷源的主要性將其分成不同的優(yōu)先級(jí),最重要的中斷源應(yīng)具有最高的優(yōu)先級(jí),而最不重要的中斷源應(yīng)具有最低的優(yōu)先級(jí),其它中斷源的級(jí)別依此類推。第六章 中央處理器(33)2、中斷的分類與分級(jí)79第六章 中央處理器(34)

中斷的優(yōu)先級(jí)別是中斷系統(tǒng)對(duì)中斷源進(jìn)行排隊(duì)的依據(jù),一般來(lái)說(shuō),中斷排隊(duì)?wèi)?yīng)遵循如下原則:若多個(gè)不同優(yōu)先級(jí)的中斷請(qǐng)求同時(shí)產(chǎn)生,則應(yīng)響應(yīng)高級(jí)中斷,后響應(yīng)低級(jí)中斷;主程序nn+1INT0,INT2INT0中斷服務(wù)程序INT2中斷服務(wù)程序第六章 中央處理器(34) 中斷的優(yōu)先級(jí)別是中斷系統(tǒng)對(duì)中80第六章 中央處理器(35)若不同優(yōu)先級(jí)別的中斷嵌套產(chǎn)生,即當(dāng)一個(gè)中斷服務(wù)程序正在執(zhí)行過(guò)程中,又有一個(gè)新的中斷請(qǐng)求產(chǎn)生,可將其稱作產(chǎn)生了“多重中斷”,則中斷系統(tǒng)應(yīng)能允許高級(jí)中斷打斷低級(jí)中斷,禁止低級(jí)中斷打斷高級(jí)中斷,也禁止同級(jí)中斷打斷同級(jí)中斷。主程序ss+1INT3INT3中斷服務(wù)程序INT0中斷服務(wù)程序INT0INT2kk+1第六章 中央處理器(35)若不同優(yōu)先級(jí)別的中斷嵌套產(chǎn)生,81第六章 中央處理器(36)3、中斷排隊(duì)的實(shí)現(xiàn)

實(shí)現(xiàn)中斷排隊(duì)是中斷系統(tǒng)中必須妥善處理的問題之一,通常可采用軟件排隊(duì)和硬件排隊(duì)兩種方式。軟件排隊(duì)方式軟件排隊(duì)方式又稱程序查詢方式,其基本做法是:當(dāng)CPU訪問到有中斷請(qǐng)求信號(hào)時(shí),則保留好中斷斷點(diǎn)后,立即進(jìn)入中斷處理程序入口,從最高優(yōu)先級(jí)開始順序查詢當(dāng)前產(chǎn)生的是哪一級(jí)中斷請(qǐng)求。若查詢到某一級(jí)有中斷請(qǐng)求時(shí),便不再繼續(xù)查詢較低級(jí)的中斷請(qǐng)求,而是轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序;這種軟件排隊(duì)方式優(yōu)點(diǎn)是控制簡(jiǎn)單,不需附加硬件,當(dāng)需改變中斷級(jí)別時(shí),只需改變中斷查詢的順序;缺點(diǎn)是中斷響應(yīng)的速度慢;當(dāng)由多級(jí)中斷請(qǐng)求同時(shí)產(chǎn)生時(shí),能保證先響應(yīng)和處理優(yōu)先級(jí)別高的中斷請(qǐng)求。第六章 中央處理器(36)3、中斷排隊(duì)的實(shí)現(xiàn)82第六章 中央處理器(37)入口是INT0請(qǐng)求嗎?INT0中斷服務(wù)程序返回是INT1請(qǐng)求嗎?返回INT1中斷服務(wù)程序是INT2請(qǐng)求嗎?INT2中斷服務(wù)程序返回軟件排隊(duì)方式流程圖第六章 中央處理器(37)入口是INT0請(qǐng)求嗎?INT083第六章 中央處理器(38)硬件排隊(duì)方式采用硬件電路進(jìn)行中斷排隊(duì);優(yōu)點(diǎn)是對(duì)中斷請(qǐng)求的響應(yīng)速度快缺點(diǎn)是需附加硬件,改變中斷級(jí)別較困難。4、中斷向量的產(chǎn)生CPU響應(yīng)任何一級(jí)中斷請(qǐng)求都要暫停執(zhí)行原來(lái)的程序,轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序;一個(gè)計(jì)算機(jī)系統(tǒng),有多少級(jí)中斷,就應(yīng)有多少個(gè)獨(dú)立的中斷服務(wù)程序,而且允許它們?cè)谡麄€(gè)主存空間中浮動(dòng)。當(dāng)CPU響應(yīng)了某個(gè)中斷時(shí),如何正確找到相應(yīng)的中斷服務(wù)程序的入口呢?在主存中開辟一片區(qū)域設(shè)置一個(gè)中斷向量表(或稱作中斷入口地址表

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論