計(jì)算機(jī)組成與工作原理電子教案第3章(1).ppt_第1頁
計(jì)算機(jī)組成與工作原理電子教案第3章(1).ppt_第2頁
計(jì)算機(jī)組成與工作原理電子教案第3章(1).ppt_第3頁
計(jì)算機(jī)組成與工作原理電子教案第3章(1).ppt_第4頁
計(jì)算機(jī)組成與工作原理電子教案第3章(1).ppt_第5頁
已閱讀5頁,還剩58頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、主 編 劉曉川,計(jì)算機(jī)組成與工作原理 電子教案,中等職業(yè)學(xué)校教學(xué)用書(計(jì)算機(jī)技術(shù)專業(yè)),第3章 計(jì)算機(jī)硬件工作原理,3.1 中央處理器 3.2 存儲器 3.3 總線系統(tǒng),3.1 中央處理器,3.1.1 CPU的組成結(jié)構(gòu)與功能 (一) CPU的功能 用計(jì)算機(jī)解決某個(gè)問題時(shí),首先必須為它編寫程序。程序是由指令構(gòu)成的序列,這個(gè)序列明確告訴計(jì)算機(jī)應(yīng)該執(zhí)行什么操作,在什么地方找到用來操作的數(shù)據(jù)。一旦把程序裝入內(nèi)存儲器,CPU就可以自動完成取出指令和執(zhí)行指令的任務(wù)。 CPU對整個(gè)計(jì)算機(jī)系統(tǒng)的運(yùn)行是極其重要的,它具有如下四方面的基本功能: 1操作控制 一條指令的功能往往是由若干個(gè)操作信號的組合來實(shí)現(xiàn)的,因此

2、,CPU管理并產(chǎn)生由內(nèi)存取出的每條指令的操作信號,把各種操作信號送往相應(yīng)的部件,從而控制這些部件按指令的要求進(jìn)行動作。,2指令控制 程序的順序控制,稱為指令控制。由于程序是一個(gè)由指令構(gòu)成的序列,這些指令的相互順序不能任意顛倒,必須嚴(yán)格按程序規(guī)定的順序進(jìn)行,因此,保證機(jī)器按順序執(zhí)行程序是CPU的首要任務(wù)。 3時(shí)間控制 對各種操作實(shí)施時(shí)間上的定時(shí),稱為時(shí)間控制。因?yàn)樵谟?jì)算機(jī)中,各種指令的操作信號均受到時(shí)間的嚴(yán)格定時(shí)。另一方面,一條指令的整個(gè)執(zhí)行過程也受到時(shí)間的嚴(yán)格定時(shí)。只有這樣,計(jì)算機(jī)才能有條不紊地自動工作。 4數(shù)據(jù)加工 數(shù)據(jù)加工,就是對數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算處理。完成數(shù)據(jù)的加工處理,是CPU

3、的根本任務(wù)。因?yàn)椋夹畔⒅挥薪?jīng)過加工處理后才能對人們有用。,(二) CPU的組成結(jié)構(gòu),在前面介紹的內(nèi)容中我們知道CPU主要由運(yùn)算器和控制器組成。但隨著計(jì)算機(jī)硬件技術(shù)的發(fā)展,特別是集成電路技術(shù)的應(yīng)用,以及人們對計(jì)算機(jī)運(yùn)算速度的更高要求,一些在傳統(tǒng)意義的計(jì)算機(jī)中屬于CPU外部的邏輯功能部件紛紛移入到了CPU中,比如浮點(diǎn)運(yùn)算單元、高速緩沖存儲器等。這樣,CPU就由運(yùn)算器(包括定點(diǎn)與浮點(diǎn)運(yùn)算單元)、控制器以及Cache三大部分組成。下面先給出CPU的簡單模型,然后再分塊詳細(xì)介紹。,圖3-1 CPU的簡單模型,在圖3-1中縮寫字母代表的含義: ALU表示算術(shù)邏輯運(yùn)算單元 Acc表示累加寄存器 CU表示

4、控制單元 PSWR表示程序狀態(tài)字寄存器 IR表示指令寄存器 PC表示程序記數(shù)器 MDR表示存儲器數(shù)據(jù)寄存器 MAR表示存儲器地址寄存器 1運(yùn)算器的主要功能有: 運(yùn)算器由算術(shù)邏輯運(yùn)算單元(ALU)、累加寄存器、數(shù)據(jù)緩沖寄存器和程序狀態(tài)寄存器組成,它是數(shù)據(jù)加工處理部件。相對控制器而言,運(yùn)算器接受控制器的命令而進(jìn)行動作,即運(yùn)算器所進(jìn)行的全部操作都是由控制器發(fā)出的控制信號來指揮的,所以它是執(zhí)行部件。運(yùn)算器有兩個(gè)主要功能: 執(zhí)行所有的算術(shù)運(yùn)算; 執(zhí)行所有的邏輯運(yùn)算,并可進(jìn)行邏輯測試,如零值測試或兩個(gè)值的比較等。,2控制器的主要功能有: 控制器由程序計(jì)數(shù)器、指令寄存器、指令譯碼器、時(shí)序產(chǎn)生器和操作控制器組

5、成,它是發(fā)布命令的“決策機(jī)構(gòu)”,即完成協(xié)調(diào)和指揮整個(gè)計(jì)算機(jī)系統(tǒng)的操作??刂破鞯闹饕δ苡校?從主存中取出一條指令,并指出下一條指令在主存中的位置。 對指令進(jìn)行譯碼或測試,產(chǎn)生相應(yīng)的操作控制信號,以便啟動規(guī)定的動作。 指揮并控制CPU、主存和輸入輸出設(shè)備之間的數(shù)據(jù)流動方向。,(三) CPU中的主要寄存器 CPU中的寄存器是用來暫時(shí)保存運(yùn)算和控制過程中的中間結(jié)果、最終結(jié)果以及控制、狀態(tài)信息的,它可以分為通用寄存器和專用寄存器兩大類。 1通用寄存器 通用寄存器可用來存放原始數(shù)據(jù)和運(yùn)算結(jié)果,有的還可以作為變址寄存器、計(jì)數(shù)器、地址指針等?,F(xiàn)代計(jì)算機(jī)中為了減少訪問存儲器的次數(shù),提高運(yùn)算速度,往往在CPU中

6、設(shè)置大量的通用寄存器,少則幾個(gè),多則幾十個(gè),甚至上百個(gè)。 累加寄存器Acc也是一個(gè)通用寄存器,它用來暫時(shí)存放ALU運(yùn)算的結(jié)果信息。例如,在執(zhí)行一個(gè)加法運(yùn)算前,先將一個(gè)操作數(shù)暫時(shí)存放在Acc中,再從主存中取出另一操作數(shù),然后同Acc的內(nèi)容相加,所得的結(jié)果送回Acc中。運(yùn)算器中至少要有一個(gè)累加寄存器。,2專用寄存器 程序計(jì)數(shù)器(PC) 程序計(jì)數(shù)器又稱指令計(jì)數(shù)器,用來存放正在執(zhí)行的指令地址或接著要執(zhí)行的下條指令地址。 對于順序執(zhí)行的情況,PC的內(nèi)容應(yīng)不斷地增量(加“1”),以控制指令的順序執(zhí)行。這種加“1”的功能,有些機(jī)器是程序計(jì)數(shù)器本身具有的,也有些機(jī)器是借助運(yùn)算器來實(shí)現(xiàn)的。 在遇到需要改變程序執(zhí)

7、行順序的情況時(shí),將轉(zhuǎn)移的目標(biāo)地址送往PC,即可實(shí)現(xiàn)程序的轉(zhuǎn)移。有些情況下除改變PC的內(nèi)容外,還需要保留改變之前的內(nèi)容,以便返回時(shí)使用。 指令寄存器(IR) 指令寄存器用來存放從存儲器中取出的指令。當(dāng)指令從主存取出暫存于指令寄存器之后,在執(zhí)行指令的過程中,指令寄存器的內(nèi)容不允許發(fā)生變化,以保證實(shí)現(xiàn)指令的全部功能。, 存儲器數(shù)據(jù)寄存器(MDR) 存儲器數(shù)據(jù)寄存器用來暫時(shí)存放由主存儲器讀出的一條指令或一個(gè)數(shù)據(jù)字;反之,當(dāng)向主存存入一條指令或一個(gè)數(shù)據(jù)字時(shí),也暫時(shí)將它們存放在存儲器數(shù)據(jù)寄存器中。 存儲器地址寄存器(MAR) 存儲器地址寄存器用來保存當(dāng)前CPU所訪問的主存單元的地址。由于主存和CPU之間存

8、在著操作速度上的差別,所以必須使用地址寄存器來保持地址信息,直到主存的讀寫操作完成為止。 當(dāng)CPU和主存進(jìn)行信息交換,無論是CPU向主存存取數(shù)據(jù)時(shí),還是CPU從主存中讀出指令時(shí),都要使用存儲器地址寄存器和數(shù)據(jù)寄存器。 狀態(tài)標(biāo)志寄存器(PSWR) 狀態(tài)標(biāo)志寄存器用來存放程序狀態(tài)字(PSW)。程序狀態(tài)字的各位表征程序和機(jī)器運(yùn)行的狀態(tài),是參與控制程序執(zhí)行的重要依據(jù)之一。它主要包括兩部分內(nèi)容:一是狀態(tài)標(biāo)志,如進(jìn)位標(biāo)志(C)、結(jié)果為零標(biāo)志(Z)等,大多數(shù)指令的執(zhí)行將會影響到這些標(biāo)志位;二是控制標(biāo)志,如中斷標(biāo)志、陷阱標(biāo)志等。狀態(tài)標(biāo)志寄存器的位數(shù)往往等于機(jī)器字長,各類機(jī)器的狀態(tài)標(biāo)志寄存器的位數(shù)和設(shè)置位置不盡

9、相同。,3.1.2 CPU的指令系統(tǒng),(一) 指令系統(tǒng)概述 指令和指令系統(tǒng)是計(jì)算機(jī)系統(tǒng)中的最基本概念。計(jì)算機(jī)系統(tǒng)主要由硬件和軟件兩大部分組成。所謂硬件是指由五大基本部件組成的實(shí)際裝置。軟件則是為了方便用戶使用計(jì)算機(jī)而編寫的各種程序,最終轉(zhuǎn)化成一系列機(jī)器指令后在計(jì)算機(jī)上執(zhí)行。 計(jì)算機(jī)的指令是機(jī)器指令的簡稱,是計(jì)算機(jī)硬件能夠識別和執(zhí)行的操作命令,用二進(jìn)制編碼形式表示。從表面上看,指令與數(shù)據(jù)(在計(jì)算機(jī)中也是以二進(jìn)制編碼形式表示)并沒有什么不同,但作為指令的二進(jìn)制編碼與數(shù)據(jù)的二進(jìn)制編碼是有著根本不同的含意的。每一條指令都指示計(jì)算機(jī)硬件完成指定的基本操作。任何一種類型的計(jì)算機(jī)的基本指令的個(gè)數(shù)都是固定的,

10、但通過它們編寫出的程序是無窮的。,指令系統(tǒng)是一臺計(jì)算機(jī)所能執(zhí)行的全部指令的集合。計(jì)算機(jī)的性能與它所設(shè)置的指令系統(tǒng)有很大的關(guān)系,而指令系統(tǒng)的設(shè)置又與機(jī)器的硬件結(jié)構(gòu)密切相關(guān)。指令系統(tǒng)的發(fā)展也由早期計(jì)算機(jī)的硬件結(jié)構(gòu)簡單、指令條數(shù)和實(shí)現(xiàn)的功能簡單到后來硬件結(jié)構(gòu)越來越復(fù)雜、指令條數(shù)和功能也越來越豐富。比如早期的計(jì)算機(jī)CPU中無專門的乘除法模塊,也沒有乘除法指令,實(shí)現(xiàn)乘除運(yùn)算通過執(zhí)行實(shí)現(xiàn)乘除的子程序來完成(將乘除轉(zhuǎn)換為加減和移位),但隨著硬件技術(shù)的發(fā)展,CPU中設(shè)有專門的乘除法模塊,有了專門的乘除法指令,計(jì)算機(jī)執(zhí)行乘除法操作的速度也得到了提高。 一臺計(jì)算機(jī)的指令系統(tǒng)越豐富,這臺計(jì)算機(jī)的CPU越復(fù)雜,其處理

11、能力也越強(qiáng)。,一個(gè)完善的指令系統(tǒng)應(yīng)該具備如下幾個(gè)方面的特性: 1完備性 完備性是指用匯編語言編寫各種程序時(shí),指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來實(shí)現(xiàn)。完備性要求指令系統(tǒng)豐富、功能齊全、使用方便。 2有效性 有效性是指利用該指令系統(tǒng)所編寫的程序能夠高效率地運(yùn)行。高效率主要是指時(shí)空效率,即程序在執(zhí)行時(shí)所占用的存儲空間小而執(zhí)行速度快。 3規(guī)整性 規(guī)整性包括指令系統(tǒng)的對稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。 對稱性:在指令系統(tǒng)中所有的寄存器和存儲器單元都可同等對待,所有的指令都可使用各種尋址方式; 勻齊性:一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型; 格式一致性:指令長度和數(shù)據(jù)長度有一定的關(guān)

12、系,以方便處理和存取。 4兼容性 兼容性主要是指程序的移植性。至少要能做到“向上兼容”,即低檔機(jī)上運(yùn)行的軟件可以在高檔機(jī)上運(yùn)行。,一般來說,指令包括操作碼及地址碼兩部分。操作碼用來表示各種不同的操作,或者說操作碼指明該指令執(zhí)行什么類型的操作,。地址碼指出被操作的數(shù)據(jù)在內(nèi)存中存放的位置。但深入討論指令的構(gòu)成時(shí),指令中還應(yīng)以下信息: 操作的種類和性質(zhì),我們稱之為操作碼。 操作數(shù)的存放地址,在雙操作數(shù)運(yùn)算中,如加、減、乘、除、邏輯乘、邏輯加的運(yùn)算中都需要指定兩個(gè)操作數(shù),給出二個(gè)操作數(shù)地址。 操作結(jié)果存放地址。,(二) 指令的格式, 下條指令存放地址,這樣可以保證程序能連續(xù)不斷地執(zhí)行下去,直到程序結(jié)束

13、。 指令中用不同的代碼段表示上述不同信息,這種代碼段的劃分和含義,就是指令的編碼方式,又叫指令格式,通常一條指令中包括操作碼字段和若干個(gè)地址碼字段。有些地址信息可以在指令中明顯的給出,稱為顯地址;也可以依照某種事先的約定,用隱含的方式給出,稱為隱地址。,1地址碼結(jié)構(gòu) 根據(jù)指令中顯地址的個(gè)數(shù)可以分為如下幾種指令格式: 四地址指令 OP:操作碼; A1:第一地址碼,存放第一操作數(shù); A2:第二地址碼,存放第二操作數(shù); A3:第三地址碼,存放操作結(jié)果; A4:第四地址碼,存放下條要執(zhí)行指令的地址。 其中:Ai表示地址,(Ai)表示存放于該地址中的內(nèi)容。 該指令完成的操作可示意為:(A1)OP(A2)

14、A3 這種指令直觀易懂,后續(xù)指令的地址可任意填寫。由于程序中大部分指令都是順序執(zhí)行的,當(dāng)采用指令計(jì)數(shù)器后,A4地址可以省去;則得到三地址指令。, 三地址指令 三地址指令中各項(xiàng)含義與四地址指令相同。由于采用了指令計(jì)數(shù)器(又稱程序計(jì)數(shù)器,簡稱PC),省去了A4地址;用三地址指令編寫的程序,其指令在內(nèi)存中必須依次存放,才能利用程序計(jì)數(shù)器自動增量的辦法順序執(zhí)行。若程序要轉(zhuǎn)向時(shí),必須用轉(zhuǎn)移指令改變程序的執(zhí)行順序。, 二地址指令 OP:操作碼; A1:既作第一操作數(shù)地址,又作目的地址; A2:第二操作數(shù)地址。 該指令完成的操作可示意為:(A1)OP(A2)A1 使用二地址指令編寫的程序,其指令在內(nèi)存中也要

15、依次存放,才能用程序計(jì)數(shù)器自動增量使之順序執(zhí)行。若程序發(fā)生轉(zhuǎn)向時(shí),也必須用轉(zhuǎn)移指令改變程序的執(zhí)行順序。當(dāng)二地址指令執(zhí)行之后,A1中的內(nèi)容被修改了。, 一地址指令 指令中只給出一個(gè)操作數(shù)地址,另一個(gè)操作數(shù)地址和目的地址則是隱含的。這個(gè)隱含的地址就是運(yùn)算器的累加寄存器Acc。 該指令完成的操作可示意為:(Acc)OP(A)Acc 采用一地址指令編寫的程序,其指令在內(nèi)存中也要順序存放,由程序計(jì)數(shù)器自動增量控制其順序執(zhí)行。程序轉(zhuǎn)向時(shí),也用轉(zhuǎn)移指令改變程序的執(zhí)行方向。在程序執(zhí)行前,必須用一條“取數(shù)指令”把其中一個(gè)操作數(shù)放到累加寄存器中。 程序結(jié)束后,累加寄存器的內(nèi)容已被修改。若要將累加寄存器中的結(jié)果送回

16、內(nèi)存,則必須使用“存數(shù)指令”。, 零地址指令 沒有操作數(shù)地址的指令稱為零地址指令。 執(zhí)行零地址指令時(shí),被運(yùn)算的操作數(shù)地址全部是隱含的,指令格式中只說明作什么操作。如停機(jī)指令就是零地址指令。 指令中地址碼個(gè)數(shù)的選取需要考慮諸多因素。從縮短程序長度、用戶使用方便、增加操作并行度等方面考慮,采用三地址指令格式較好;從縮短指令長度,減少訪存次數(shù)、簡化硬件設(shè)計(jì)等方面考慮,一地址指令格式較好。對于同一個(gè)問題,采用三地址指令編寫的程序最短,但指令長度最長;而采用二(一、零)地址指令編寫,程序長度變長,但指令的長度變短。比如:完成(X)+(Y)Z的操作。 用一條三地址指令編寫為:ADD X,Y,Z; 用二地址

17、指令編寫則為:ADD X,Y; (X)+(Y)X MOV Z,X; (X)Z,2操作碼編碼 操作碼表示該指令應(yīng)進(jìn)行什么性質(zhì)的操作。組成操作碼字段的位數(shù)一般取決于計(jì)算機(jī)指令系統(tǒng)的規(guī)模,也就是說操作碼所占的二進(jìn)制位數(shù)越多,這臺計(jì)算機(jī)所能允許的指令的條數(shù)也就越多。 例如,操作碼占用六位二進(jìn)制碼時(shí),六位二進(jìn)制碼可以有000000、0000001111111共計(jì)26=64種狀態(tài),每一種狀態(tài)可以用來表示一種類型的操作,所以這臺計(jì)算機(jī)最多就可以允許有64條指令。,操作碼字段的編碼方案分兩種類型: 第一種類型就是采用定長操作碼形式編碼,也就是說操作碼長度固定不變,如同前面介紹的情況。若操作碼的長度為k位二進(jìn)制

18、位,則它最多只能有2K條不同的指令。這種格式有利于簡化硬件設(shè)計(jì),減少指令譯碼時(shí)間,廣泛用于字長較長的大、中型計(jì)算機(jī)和超級小型計(jì)算機(jī)中。 第二種類型采用可變長度操作碼格式,各種指令操作碼的位數(shù)不同,即操作碼的長度是可變的,且分散地放在指令的不同字段中。這種格式有利于壓縮程序中操作碼的平均長度,在字長較短的微型機(jī)中被廣泛應(yīng)用。例如下圖3-2是一種擴(kuò)展操作碼的示意:,圖3-2 擴(kuò)展操作碼的示意,這是一個(gè)16位字長的指令碼,包括4位基本操作碼字段和三個(gè)4位長的地址字段。4位基本操作碼,若全部用于三地址指令,則有16條。顯然,4位基本操作碼是不夠的,必須向地址碼字段擴(kuò)展操作作碼的長度。其擴(kuò)展方法及步驟如

19、下: 15條三地址指令的操作碼由4位基本操作碼00001110所給定,剩下一個(gè)1111則用于把操作碼擴(kuò)展到X地址碼字段,即由4位擴(kuò)展到8位; 0000 XXXX YYYY ZZZZ 0001 XXXX YYYY ZZZZ 15條三地址指令 1110 XXXX YYYY ZZZZ, 15條二地址指令的操作碼由8位操作碼的1111,00001111,1110給定,剩下的1111,1111又可用于把操作碼擴(kuò)充到Y(jié)地址字段,即從8位又?jǐn)U充到12位; 1111 0000 YYYY ZZZZ 1111 0001 YYYY ZZZZ 15條二地址指令 1111 1110 YYYY ZZZZ, 15條一地址指

20、令的操作碼由12位操作碼的1111,1111,00001111,1111,1110給定,剩下的1111,1111,1111又可用于把操作碼擴(kuò)充到Z地址字段,即從12位又?jǐn)U充到16位,得到16條零地址指令。 1111 1111 0000 ZZZZ 1111 1111 0001 ZZZZ 15條一地址指令 1111 1111 1110 ZZZZ 1111 1111 1111 0000 1111 1111 1111 0001 16條零地址指令 1111 1111 1111 1111,需要說明的是擴(kuò)展方法不是唯一的,例如上例中也可擴(kuò)展為15條3地址、14條二地址、31條一地址和16條零地址指令。由于擴(kuò)

21、展方法多樣,究竟選用哪一種方法有一個(gè)重要的原則:使用頻度高的指令應(yīng)分配短的操作碼,使用頻度低的應(yīng)分配較長的操作碼。,(三) 尋址方式,所謂尋址,指的是尋找操作數(shù)的地址或下一條將要執(zhí)行的指令地址。 指令尋址比較簡單,它又可以細(xì)分為順序?qū)ぶ泛吞S尋址。順序?qū)ぶ房赏ㄟ^程序計(jì)數(shù)器PC加“1”,自動形成下一條指令的地址;跳躍尋址是指程序執(zhí)行轉(zhuǎn)移指令,需要通過程序轉(zhuǎn)移類指令實(shí)現(xiàn)。即當(dāng)程序執(zhí)行到轉(zhuǎn)移指令時(shí),下條指令的地址不再由PC給出,而是由本條指令給出。 數(shù)據(jù)尋址方式種類較多,其最終目的都是尋找所需要的操作數(shù)。,在前面指令格式中介紹了,指令中不僅應(yīng)指明要執(zhí)行什么類型的操作,還要指明參加操作的數(shù)據(jù)在主存中的

22、存放地址;如果沒有采用任何尋址方式,即地址碼字段就是參加操作的數(shù)據(jù)在主存中存放的實(shí)際地址,那顯然有如下公式成立:如果地址碼字段的位數(shù)為n位,則該指令能夠訪問存儲器的地址范圍是2n。但在大多數(shù)計(jì)算機(jī)中地址碼的位數(shù)受指令長度的限制而不會太長,而主存的容量卻比較大,導(dǎo)致指令無法訪問主存全部空間。如果為了加大訪存范圍而設(shè)置更長的地址碼位數(shù),又會導(dǎo)致指令過長、程序設(shè)計(jì)的靈活性變差等問題。在這種背景下,尋址技術(shù)被廣泛采用了,即在地址碼中給出的地址并不是數(shù)據(jù)在主存中存放的實(shí)際地址,稱為形式地址。形式地址需要經(jīng)過某種運(yùn)算才能夠得到能直接訪問主存的地址稱為有效地址(一般用字母EA表示),從形式地址生成有效地址的

23、各種方式稱為尋址方式,即: 尋址方式 形式地址 有效地址,下面介紹幾種計(jì)算機(jī)中常用的基本尋址方式。 1立即尋址 指令中給出的不是通常意義上的操作數(shù)地址,而是操作數(shù)本身,也就是說數(shù)據(jù)就包含在指令中,只要取出指令,也就取出了可以立即使用的操作數(shù)。在取指令時(shí),操作碼和操作數(shù)被同時(shí)取出,不必再次訪問主存,從而提高了指令的執(zhí)行速度。但是,因?yàn)椴僮鲾?shù)是指令的一部分,不能被修改,而且立即數(shù)的大小受到指令長度的限制,所以這種尋址方式靈活性最差,通常用于給某一寄存器或主存單元賦初值或提供一個(gè)常數(shù)。,2寄存器尋址 寄存器尋址指令的地址碼部分給出某一個(gè)通用寄存器的編號,這個(gè)指定的寄存器中存放著操作數(shù)。操作數(shù)S與寄存

24、器Ri的關(guān)系為: S=(Ri) 寄存器尋址具有兩個(gè)明顯的優(yōu)點(diǎn): 從寄存器中存取數(shù)據(jù)比從主存中快得多; 由于寄存器的數(shù)量較少,其地址碼字段比主存單元地址字段短得多。,3直接尋址 指令中地址碼字段給出的地址A就是操作數(shù)的有效地址,即形式地址等于有效地址:EA=A。由于這樣給出的操作數(shù)地址是不能修改的,與程序本身所在的位置無關(guān),所以又叫做絕對尋址方式。 操作數(shù)S=(A) 這種尋址方式不需作任何尋址運(yùn)算,簡單直觀,也便于硬件實(shí)現(xiàn),但地址空間受到指令中地址碼字段位數(shù)的限制。,4間接尋址 間接尋址意味著指令中給出的地址A不是操作數(shù)的地址;而是另一個(gè)地址的地址時(shí),所使用的尋址方式稱為間接尋址方式。間接尋址方

25、式又可以分為寄存器間接尋址方式和存儲器間接尋址方式。 寄存器間接尋址方式 在這種尋址方式中,操作數(shù)在主存中,指令中給出存放操作數(shù)地址的寄存器編號。其尋址過程為:先根據(jù)指令中給出的寄存器編號,取出該寄存器中的地址,然后再找到這個(gè)地址所對應(yīng)的內(nèi)存單元,取出操作數(shù)即可。 操作數(shù)S=(R), 存儲器間接尋址方式 在這種尋址方式中,指令中給出存放操作數(shù)地址的存儲單元的地址。存放操作數(shù)地址的存儲單元,稱為間址單元。其尋址過程為:先根據(jù)指令中給出的間址單元地址,取出存儲器中該單元的值,這個(gè)值是操作數(shù)在存儲器中地址值,然后再根據(jù)這個(gè)地址找到所對應(yīng)的內(nèi)存單元,取出操作數(shù)即可。 操作數(shù)S=(A0),5變址尋址方式

26、 把變址寄存器Rx的內(nèi)容與指令中給出的形式地址A相加,形成操作數(shù)有效地址,即EA=(Rx)+A。Rx的內(nèi)容稱為變址值。形式地址為基準(zhǔn)地址,變址寄存器提供偏移量 S=(Rx)+A),6基址尋址 與變址尋址類似,但在基址尋址中,基址寄存器Rb提供基準(zhǔn)地址,形式地址為偏移量,基址寄存器Rb的內(nèi)容加上指令格式中的形式地址而形成操作數(shù)的有效地址,即EA=(Rb)+A S=(Rb)+A) 7相對尋址 把程序計(jì)數(shù)器PC的內(nèi)容加上指令格式中的形式地址而形成操作數(shù)的有效地址。 EA=(PC)+A,(四) 指令類型,一臺計(jì)算機(jī)的指令系統(tǒng)通常有上百條或幾百條指令,從它們所完成的功能來看,一個(gè)較為完善的指令系統(tǒng),應(yīng)具

27、備以下各類指令: 1數(shù)據(jù)傳送類指令 這類指令的功能是實(shí)現(xiàn)寄存器與寄存器,寄存器與存儲單元以及存儲單元與存儲單元之間的數(shù)據(jù)傳送。數(shù)據(jù)傳送指令主要包括取數(shù)指令、存數(shù)指令、傳送指令、成組傳送指令、字節(jié)交換指令、清累加器指令、堆棧操作指令等等。 2算術(shù)運(yùn)算指令 這類指令包括二進(jìn)制定點(diǎn)加、減、乘、除指令,浮點(diǎn)加、減、乘、除指令,求反、求補(bǔ)指令,算術(shù)移位指令,算術(shù)比較指令,十進(jìn)制加、減運(yùn)算指令等。這類指令主要用于定點(diǎn)或浮點(diǎn)的算術(shù)運(yùn)算。,3邏輯運(yùn)算指令 這類指令包括邏輯加、邏輯乘、邏輯比較、測等指令、按位加、邏輯移位等指令,主要用于無符號數(shù)的位操作、代碼的轉(zhuǎn)換、判斷及運(yùn)算。移位指令用來對寄存器的內(nèi)容實(shí)現(xiàn)左移

28、、右移或循環(huán)移位。 4程序控制指令 程序控制指令也稱轉(zhuǎn)移指令。執(zhí)行程序時(shí),有時(shí)機(jī)器執(zhí)行到某條指令時(shí),出現(xiàn)了幾種不同結(jié)果,這時(shí)機(jī)器必須執(zhí)行一條轉(zhuǎn)移指令,根據(jù)不同結(jié)果進(jìn)行轉(zhuǎn)移,從而改變程序原來執(zhí)行的順序。這種轉(zhuǎn)移指令稱為條件轉(zhuǎn)移指令。除各種條件轉(zhuǎn)移指令外,還有無條件轉(zhuǎn)移指令、轉(zhuǎn)子程序指令、返回主程序指令、中斷返回指令等。轉(zhuǎn)移指令的轉(zhuǎn)移地址一般采用直接尋址和相對尋址方式來確定。 5輸入輸出指令 輸入輸出指令主要用來啟動外圍設(shè)備,檢查測試外圍設(shè)備的工作狀態(tài),并實(shí)現(xiàn)外部設(shè)備和CPU之間,或外圍設(shè)備與外圍設(shè)備之間的信息傳送。,6字符串處理指令 字符串處理指令是一種非數(shù)值處理指令,一般包括字符串傳送、字符串

29、轉(zhuǎn)換(把一種編碼的字符串轉(zhuǎn)換成另一種編碼的字符串)、字符串替換(把某一字符串用另一字符串替換)等。這類指令在文字編輯中對大量字符串進(jìn)行處理。 7特權(quán)指令 特權(quán)指令是指具有特殊權(quán)限的指令。這類指令只用于操作系統(tǒng)或其他系統(tǒng)軟件,一般不直接提供給用戶使用。在多用戶、多任務(wù)的計(jì)算機(jī)系統(tǒng)中特權(quán)指令必不可少。它主要用于系統(tǒng)資源的分配和管理。 8其他指令 除以上各類指令外,還有狀態(tài)寄存器置位、復(fù)位指令、測試指令、暫停指令,空操作指令,以及其他一些系統(tǒng)控制用的特殊指令。,3.1.3 CPU的控制功能及原理,控制器是計(jì)算機(jī)系統(tǒng)的指揮中心,它把運(yùn)算器、存儲器、輸入輸出設(shè)備等部件組成一個(gè)有機(jī)的整體,然后根據(jù)指令的要

30、求指揮全機(jī)的工作。 (一) 控制器的基本組成 1指令部件 指令部件的主要任務(wù)是完成取指令并分析指令。指令部件包括: 程序計(jì)數(shù)器 指令寄存器 指令譯碼器 暫存在指令寄存器中的指令只有在其操作碼部分經(jīng)過譯碼之后才能識別出這是一條什么樣的指令,并產(chǎn)生相應(yīng)的控制信號提供給微操作信號發(fā)生器。 地址形成部件 根據(jù)指令的不同尋址方式,形成操作數(shù)的有效地址。,2時(shí)序部件 時(shí)序部件能產(chǎn)生一定的時(shí)序信號,以保證機(jī)器的各功能部件有節(jié)奏地進(jìn)行信息傳送、加工及信息存儲。包括: 脈沖源 產(chǎn)生具有一定頻率和寬度的時(shí)鐘脈沖信號,為整個(gè)機(jī)器提供基準(zhǔn)信號。 啟??刂七壿?啟??刂七壿嫷淖饔檬歉鶕?jù)計(jì)算機(jī)的需要,可靠地開放或封鎖脈沖

31、,控制時(shí)序信號的發(fā)生或停止,實(shí)現(xiàn)對整個(gè)機(jī)器的正確啟動或停止。 節(jié)拍信號發(fā)生器 節(jié)拍信號發(fā)生器又稱脈沖分配器。脈沖源產(chǎn)生的脈沖信號,經(jīng)過節(jié)拍信號發(fā)生器后產(chǎn)生出各個(gè)機(jī)器周期中的節(jié)拍信號,用以控制計(jì)算機(jī)完成每一步微操作。,3微操作信號發(fā)生器 一條指令的取出和執(zhí)行可以分解成很多最基本的操作,這種最基本的不可再分割的操作稱為微操作。微操作信號發(fā)生器也稱為控制單元(CU)。不同的機(jī)器指令具有不同的微操作序列。 4中斷控制邏輯 中斷控制邏輯是用來控制中斷處理的硬件邏輯。,由于計(jì)算機(jī)高速地進(jìn)行工作,每一個(gè)動作的時(shí)間是非常嚴(yán)格的,不能有任何差錯。時(shí)序系統(tǒng)是控制器的心臟,其功能是為指令的執(zhí)行提供各種定時(shí)信號。 1

32、指令周期和機(jī)器周期 指令周期是指從取指令、分析取數(shù)到執(zhí)行完該指令所需的全部時(shí)間。由于各種指令的操作功能不同,有的簡單,有的復(fù)雜,因此各種指令的指令周期不盡相同。 機(jī)器周期又稱CPU周期。通常把一個(gè)指令周期劃分為若干個(gè)機(jī)器周期,每個(gè)機(jī)器周期完成一個(gè)基本操作。一般機(jī)器的CPU周期有取指周期、取數(shù)周期、執(zhí)行周期、中斷周期等。所以有:指令周期i機(jī)器周期。 通常,每個(gè)機(jī)器周期都有一個(gè)與之對應(yīng)的周期狀態(tài)觸發(fā)器。機(jī)器運(yùn)行在不同的機(jī)器周期時(shí),其對應(yīng)的周期狀態(tài)觸發(fā)器被置“1”。顯然,在機(jī)器運(yùn)行的任何時(shí)刻只能處于一種周期狀態(tài),因此,有一個(gè)且僅有一個(gè)觸發(fā)器被置“1”。,(二) 時(shí)序系統(tǒng),2節(jié)拍 在一個(gè)機(jī)器周期內(nèi),要

33、完成若干個(gè)微操作。因而應(yīng)把一個(gè)機(jī)器周期分為若干個(gè)相等的時(shí)間段,每一個(gè)時(shí)間段對應(yīng)一個(gè)電位信號,稱為節(jié)拍電位信號。 節(jié)拍的寬度取決于CPU完成一次微操作的時(shí)間。節(jié)拍的選取一般有以下幾種方法: 統(tǒng)一節(jié)拍法 以最復(fù)雜的機(jī)器周期為準(zhǔn)定出節(jié)拍數(shù),每一個(gè)節(jié)拍時(shí)間的長短也以最繁的微操作作為標(biāo)準(zhǔn)。這種方法采用統(tǒng)一的、具有相等時(shí)間間隔和相同數(shù)目的節(jié)拍,使得所有的機(jī)器周期長度都是相等的,因此稱為定長CPU周期。, 分散節(jié)拍法 按照機(jī)器周期的實(shí)際需要安排節(jié)拍數(shù),需要多少節(jié)拍,就發(fā)出多少節(jié)拍,這樣可以避免浪費(fèi),提高時(shí)間利用率。由于各機(jī)器周期長度不同,故稱為不定長CPU周期。 延長節(jié)拍法 在照顧多數(shù)機(jī)器周期要求的情況下,

34、選取適當(dāng)?shù)墓?jié)拍數(shù),作為基本節(jié)拍。如果在某個(gè)機(jī)器周期內(nèi)統(tǒng)一的節(jié)拍數(shù)無法完成該周期的全部微操作,則可以延長一或兩個(gè)節(jié)拍。 時(shí)鐘周期插入 在一些微型機(jī)中,時(shí)序信號中不設(shè)置節(jié)拍,而直接使用時(shí)鐘周期信號。一個(gè)機(jī)器周期中含有若干個(gè)時(shí)鐘周期,時(shí)鐘周期的數(shù)目取決于機(jī)器周期內(nèi)完成微操作數(shù)目的多少及相應(yīng)功能部件的速度。一個(gè)機(jī)器周期的基本時(shí)鐘周期數(shù)確定之后,還可以不斷插入等待時(shí)鐘周期。如8086的一個(gè)總線周期(即機(jī)器周期)中包含四個(gè)基本時(shí)鐘周期T1T4,在T3和T4之間可以插入任意個(gè)等待時(shí)鐘周期TW,以等待速度較慢的存儲部件或外部設(shè)備完成讀或?qū)懖僮鳌?3工作脈沖 在節(jié)拍中執(zhí)行的有些微操作需要同步定時(shí)脈沖,如將穩(wěn)定的

35、運(yùn)算結(jié)果打入寄存器,又如機(jī)器周期狀態(tài)切換等。為此,在一個(gè)節(jié)拍內(nèi)常常設(shè)置一個(gè)或幾個(gè)工作脈沖,作為各種同步脈沖的來源。工作脈沖的寬度只占節(jié)拍電位寬度的 ,并處于節(jié)拍的末尾部分,以保證所有的觸發(fā)器都能可靠、穩(wěn)定地翻轉(zhuǎn)。 在只設(shè)置機(jī)器周期和時(shí)鐘周期的微型機(jī)中,一般不再設(shè)置工作脈沖,因?yàn)闀r(shí)鐘周期既可以作為電位信號,其前、后沿又可以作為脈沖觸發(fā)信號。,4多級時(shí)序系統(tǒng) 下圖3-4為小型機(jī)每個(gè)指令周期中常采用的機(jī)器周期、節(jié)拍、工作脈沖三級時(shí)序系統(tǒng)。圖中每個(gè)機(jī)器周期M中包括四個(gè)節(jié)拍T1T4,每個(gè)節(jié)拍內(nèi)有一個(gè)脈沖P。在機(jī)器周期間、節(jié)拍電位間、工作脈沖間既不允許有重疊交叉,也不允許有空隙,應(yīng)該是一個(gè)接一個(gè)的準(zhǔn)確連接

36、。,圖3-4 三級時(shí)序,(三) 時(shí)序控制方式,1同步控制方式 同步控制方式即固定時(shí)序控制方式,各項(xiàng)操作都由統(tǒng)一的時(shí)序信號控制,在每個(gè)機(jī)器周期中產(chǎn)生統(tǒng)一數(shù)目的節(jié)拍電位和工作脈沖。由于不同的指令,操作時(shí)間長短不一致。同步控制方式應(yīng)以最復(fù)雜指令的操作時(shí)間作為統(tǒng)一的時(shí)間間隔標(biāo)準(zhǔn)。 這種控制方式設(shè)計(jì)簡單,容易實(shí)現(xiàn);但是對于許多簡單指令來說會有較多的空閑時(shí)間,造成較大數(shù)量的時(shí)間浪費(fèi),從而影響了指令的執(zhí)行速度。 在同步控制方式中,各指令所需的時(shí)序由控制器統(tǒng)一發(fā)出,所有微操作都與時(shí)鐘同步,所以又稱為集中控制方式或中央控制方式。,2異步控制方式 異步控制方式即可變時(shí)序控制方式,各項(xiàng)操作不采用統(tǒng)一的時(shí)序信號控制,

37、而根據(jù)指令或部件的具體情況決定,需要多少時(shí)間,就占用多少時(shí)間。 這是一種“應(yīng)答”方式,各操作之間的銜接是由“結(jié)束起始”信號來實(shí)現(xiàn)的。由前一項(xiàng)操作已經(jīng)完成的“結(jié)束”信號,或由下一項(xiàng)操作的“準(zhǔn)備好”信號來作為下一項(xiàng)操作的起始信號,在未收到“結(jié)束”或“準(zhǔn)備好”信號之前不開始新的操作。 異步控制采用不同時(shí)序,沒有時(shí)間上的浪費(fèi),因而提高了機(jī)器的效率,但是控制比較復(fù)雜。 由于這種控制方式?jīng)]有統(tǒng)一的時(shí)鐘,而是由各功能部件本身產(chǎn)生各自的時(shí)序信號自我控制,故又稱為分散控制方式或局部控制方式。,3聯(lián)合控制方式 這是同步控制和異步控制相結(jié)合的方式。實(shí)際上現(xiàn)代計(jì)算機(jī)中幾乎沒有完全采用同步或完全采用異步的控制方式,大多

38、數(shù)是采用聯(lián)合控制方式。通常的設(shè)計(jì)思想是:在功能部件內(nèi)部采用同步方式或以同步方式為主的控制方式,在功能部件之間采用異步方式。,(四) 指令運(yùn)行的基本過程,1取指令階段 取指令階段完成的任務(wù)是將現(xiàn)行指令從主存中取出來并送至指令寄存器中去。具體的操作如下: 將程序計(jì)數(shù)器(PC)中的內(nèi)容送至存儲器地址寄存器(MAR),并送地址總線(AB)。 由控制單元(CU)經(jīng)控制總線(CB)向存儲器發(fā)讀命令。 從主存中取出的指令通過數(shù)據(jù)總線(DB)送到存儲器數(shù)據(jù)寄存器(MDR)。 將MDR的內(nèi)容送至指令寄存器(IR)中。 將PC的內(nèi)容遞增,為取下一條指令做好準(zhǔn)備。 以上這些操作對任何一條指令來說都是必須要執(zhí)行的操作

39、,所以稱為公共操作。完成取指階段任務(wù)的時(shí)間稱為取指周期。,圖3-5 取指周期的工作流程,2分析取數(shù)階段 取出指令后,指令譯碼器ID可識別和區(qū)分出不同的指令類型。此時(shí)計(jì)算機(jī)進(jìn)入分析取數(shù)階段,以獲取操作數(shù)。由于各條指令功能不同,尋址方式也不同,所以分析取數(shù)階段的操作是各不相同的。 3執(zhí)行階段 執(zhí)行階段完成指令規(guī)定的各種操作,形成穩(wěn)定的運(yùn)算結(jié)果,并將其存儲起來。完成執(zhí)行階段任務(wù)的時(shí)間稱為執(zhí)行周期。 計(jì)算機(jī)的基本工作過程就是取指令、取數(shù)、執(zhí)行指令,然后再取下一條指令如此周而復(fù)始,直至遇到停機(jī)指令或外來的干預(yù)為止。,(五) 微程序控制器,1控制器的硬件實(shí)現(xiàn) 控制器的核心是微操作信號發(fā)生器(控制單元CU)

40、。微操作控制信號是由指令部件提供的譯碼信號、時(shí)序部件提供的時(shí)序信號和被控制功能部件所反饋的狀態(tài)及條件綜合形成的。 控制單元的輸入包括時(shí)序信號、機(jī)器指令操作碼、各部件狀態(tài)反饋信號等,輸出的微操作控制信號又可以細(xì)分為CPU內(nèi)的控制信號和送至主存或外設(shè)的控制信號。根據(jù)產(chǎn)生微操作控制信號的方式不同,控制器可分為組合邏輯型、存儲邏輯型、組合邏輯與存儲邏輯結(jié)合型3種,它們的根本區(qū)別在于控制單元的實(shí)現(xiàn)方法不同,而控制器中的其他部分基本上是大同小異的。, 組合邏輯型 采用組合邏輯技術(shù)來實(shí)現(xiàn),其控制單元是由門電路組成的復(fù)雜樹形網(wǎng)絡(luò)。這種方法是分立元件時(shí)代的產(chǎn)物,以使用最少器件數(shù)和取得最高操作速度為設(shè)計(jì)目標(biāo)。 最

41、大優(yōu)點(diǎn)是速度快。但是控制單元的結(jié)構(gòu)不規(guī)整,使得設(shè)計(jì)、調(diào)試、維修較困難,難以實(shí)現(xiàn)設(shè)計(jì)自動化;一旦控制單元構(gòu)成之后,要想增加新的控制功能是不可能的。因此,它受到微程序控制器的強(qiáng)烈沖擊。目前僅有一些巨型機(jī)和RISC機(jī)為了追求高速度仍采用組合邏輯控制器。 存儲邏輯型 這種控制器稱為微程序控制器,是采用存儲邏輯來實(shí)現(xiàn)的,也就是把微操作信號代碼化,使每條機(jī)器指令轉(zhuǎn)化成為一段微程序并存入一個(gè)專門的存儲器(控制存儲器)中,微操作控制信號由微指令產(chǎn)生。,微程序控制器具有設(shè)計(jì)規(guī)整、調(diào)試、維修以及更改、擴(kuò)充指令方便的優(yōu)點(diǎn),易于實(shí)現(xiàn)自動化設(shè)計(jì),已成為當(dāng)前控制器的主流。但是,由于它增加了一級控制存儲器,所以指令的執(zhí)行速

42、度比組合邏輯控制器慢。 組合邏輯和存儲邏輯結(jié)合型 這種控制器稱為PLA(可編程邏輯陣列)控制器,是吸收前兩種方法的設(shè)計(jì)思想來實(shí)現(xiàn)的。PLA控制器實(shí)際上也是一種組合邏輯控制器,但它又與常規(guī)的組合邏輯控制器的硬聯(lián)結(jié)構(gòu)不同;它是可編程序的,某一微操作控制信號由PLA的某一輸出函數(shù)產(chǎn)生。 PLA控制器是組合邏輯技術(shù)和存儲邏輯技術(shù)結(jié)合的產(chǎn)物,克服了兩者的缺點(diǎn),是一種較有前途的方法。,2微程序控制的基本概念 組合邏輯控制器的主要缺點(diǎn)是操作命令的設(shè)計(jì)沒有一定的規(guī)律,調(diào)整、維護(hù)困難,修改擴(kuò)充指令更加困難。 改進(jìn)辦法是采用微程序設(shè)計(jì)技術(shù)。微程序設(shè)計(jì)思想是英國劍橋大學(xué)的威爾克斯(MVWilkes)1951年提出的,他提出一條機(jī)器指令可以分解為許多基本的微命令序列。并且首先把這種思想用于計(jì)算機(jī)控制器的設(shè)計(jì)。但由于控制存儲器速度低、價(jià)格高等原因,微程序技術(shù)一直處于停滯階段。直到1964年,由于半導(dǎo)體技術(shù)的發(fā)展以及研制大型機(jī)和系列機(jī)的推動,微程序設(shè)計(jì)技術(shù)開始興旺起來。IBM360系統(tǒng)的誕生,可以作為微程序設(shè)計(jì)發(fā)展的標(biāo)志。, 有關(guān)術(shù)語 微命令和微操作 一條機(jī)器指令可以分解成一個(gè)微操作序列,這些微操作是計(jì)算機(jī)中最基本的、不可再分解的操作。在微程序控制的計(jì)算機(jī)中,將控制部件向執(zhí)行部件發(fā)出的各種控制命令叫做微命令,它是構(gòu)成控制序列的最小單位

溫馨提示

  • 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

提交評論