計算機第2章-修改后的_第1頁
計算機第2章-修改后的_第2頁
計算機第2章-修改后的_第3頁
計算機第2章-修改后的_第4頁
計算機第2章-修改后的_第5頁
已閱讀5頁,還剩106頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章微型計算機的基本組成電路2.1算術(shù)邏輯單元2.2觸發(fā)器2.3寄存器2.4三態(tài)輸出電路2.5總線結(jié)構(gòu)2.6存儲器習題任何一個復雜的電路系統(tǒng)都可以劃分為若干電路,這些電路大都由一些典型的電路組成。微型計算機就是由若干典型電路通過精心設(shè)計而組成的,各個典型電路在整體電路系統(tǒng)中又稱為基本電路部件。本章就是對微型計算機中最常見的基本電路部件的名稱及電路原理作一簡單介紹。這些基本電路中最主要的是算術(shù)邏輯單元(arithmaticlogicalunit,ALU)、觸發(fā)器(trigger)、寄存器(register)、存儲器(memory)及總線結(jié)構(gòu)等。在本章中,數(shù)據(jù)在這些部件之間的流通過程以及“控制字”的概念也將逐步地引出。所有這些內(nèi)容都是組成微型計算機的硬件基礎(chǔ)。2.1算術(shù)邏輯單元(ALU)

算術(shù)邏輯單元用來完成算術(shù)運算、邏輯判斷、邏輯運算和信息傳遞的部件,或者說是數(shù)據(jù)處理的部件。它由加法器、移位電路、邏輯運算部件、寄存器等電路構(gòu)成。由于任何數(shù)學運算最終可以用加法和移位這兩種基本操作來完成。因而加法器是ALU的核心部件。寄存器用來暫時存放參加運算的操作數(shù)和運算結(jié)果。在計算機內(nèi),各種數(shù)據(jù)都用若干個“0”或“1”組成的二進制代碼表示。如果這一組二進制碼是作為一個整體來處理,它的位數(shù)稱為字長(Wordsize),位的單位稱為比特(Bit)。如果這一組二進制碼由16位組成,其字長為16比特。不同類型的計算機的字長是不同的?,F(xiàn)在常用的微型機字長為32位、64位。字長的多少影響著計算的精度和速度。計算機的運算速度是ALU的又一技術(shù)指標。運算速度是指每秒鐘內(nèi)機器能執(zhí)行的指令次數(shù),單位是次/秒。計算機的運算速度不僅取決于ALU。還與存儲器的存取時間等因素有關(guān)。目前CPU的運行速度常用主頻來表示,如300MHz、450MHz、600MHz等,頻率越高運行速度越快。ALU的符號一般畫成圖2.1那樣。A和B為兩個二進制數(shù),S為其運算結(jié)果,control為控制信號(見圖1.9的控制線端SUB)。圖2.12.2觸發(fā)器

觸發(fā)器(trigger)是計算機的記憶裝置的基本單元,也可說是記憶細胞。觸發(fā)器可以組成寄存器,寄存器又可以組成存儲器。寄存器和存儲器統(tǒng)稱為計算機的記憶裝置。微型計算機所用觸發(fā)器一般用晶體管元件而不用磁性元件。這是因為晶體管元件可以制成大規(guī)模的集成電路,體積可以更小些。下面簡要地介紹一下RS觸發(fā)器、D觸發(fā)器和JK觸發(fā)器,因為這些類型的觸發(fā)器是計算機中最常見的基本元件。2.2.1RS觸發(fā)器

RS觸發(fā)器可以用兩個與非門來組成,如圖2.2所示。當S=1而R=0時,Q=1(Q=0)稱為置位;當S=0而R=1時,Q=0(Q=1)稱為復位。為了作圖方便,以后我們就只用方塊來表示,如圖2.3就是RS觸發(fā)器的符號。S端一般稱為置位端,使Q=1(Q=0),R端一般稱為復位端,使Q=0(Q=1)。時標RS觸發(fā)器——為了使觸發(fā)器在整個機器中能和其他部件協(xié)調(diào)工作,RS觸發(fā)器經(jīng)常有外加的時標脈沖,如圖2.4所示。圖2.2圖2.3觸發(fā)器的非端或0端觸發(fā)器的原端或1端對RS觸發(fā)器歸納為以下幾點:1、基本RS觸發(fā)器具有置位、復位和保持(記憶)的功能;2、基本RS觸發(fā)器的觸發(fā)信號是低電平有效,屬于電平觸發(fā)方式;3、基本RS觸發(fā)器存在約束條件(R+S=1),由于兩個與非門的延遲時間無法確定,當R=S=0時,將導致下一狀態(tài)的不確定。4、當輸入信號發(fā)生變化時,輸出即刻會發(fā)生變化,抗干擾性較差。圖2.4此圖中的CLK即為時標脈沖。它與置位信號脈沖S同時加到一個與門的兩個輸入端;而與復位信號脈沖同時加到另一個與門的兩個輸入端。這樣,無論是置位還是復位,都必須在時標脈沖端為高電位時才能進行。2.2.2D觸發(fā)器

RS觸發(fā)器有兩個輸入端S和R。為了存儲一個高電位,就需要一個高電位輸入的S端;為了存儲一個低電位,就需要另一個高電位輸入的R端。這在很多應(yīng)用中是不很方便的。D觸發(fā)器是在RS觸發(fā)器的基礎(chǔ)上引伸出來的,它只需一個輸入端口,圖2.5就是D觸發(fā)器的原理。當D端為高電位時,S端為高電位,而通過非門后加到R端的就是低電位,所以此時Q端就是高電位,稱為置位。當D端為低電位時,S端為低電位,同時R端變?yōu)楦唠娢?,所以Q端是低電位,稱為復位。圖2.5無時標的D觸發(fā)器是不能協(xié)調(diào)運行的,圖2.6所示是如何為D觸發(fā)器加上時標的電路。此圖和圖2.4的道理是一樣的,也是增加兩個與門就可以接受時標脈沖CLK的控制。圖2.6時標脈沖CLK一般都是方波,在CLK處于正半周內(nèi)的任何瞬間,觸發(fā)器都有翻轉(zhuǎn)的可能。這樣計算機的動作就不可能整齊劃一。我們總是想由時標CLK來指揮整個機器的行動。因此,采用時標邊緣觸發(fā)的方式就可以得到準確劃一的動作。圖2.7就是邊緣觸發(fā)的D觸發(fā)器的電路原理圖。圖2.7圖2.7與圖2.6的區(qū)別僅為增加了一個RC微分電路,它能使方波電壓信號的前沿產(chǎn)生正尖峰,后沿產(chǎn)生負尖峰。這樣,在D端輸入信號建立之后,當時標脈沖的前沿到達的瞬間,觸發(fā)器才產(chǎn)生翻轉(zhuǎn)動作。如果D輸入端的信號是在時標脈沖前沿到達之后才建立起來的,則雖然仍在時標脈沖的正半周時間內(nèi),也不能影響觸發(fā)器的狀態(tài),而必須留到下一個時標脈沖的正半周的前沿到達時才起作用。這樣就可以使整個計算機運行在高度準確的協(xié)調(diào)節(jié)拍之中。觸發(fā)器的預(yù)置和清除:在一些電路中,有時需要預(yù)先給某個觸發(fā)器置位(即置1)或清除(即置0),而與時標脈沖以及D輸入端信號無關(guān),這就是所謂預(yù)置和清除。這種電路很簡單,只要在圖2.7的電路中增加兩個或門就可以實現(xiàn),如圖2.8所示。圖2.8邊緣觸發(fā)的D觸發(fā)器在計算機電路圖中常用圖2.9的符號來表示。圖2.9圖2.9(a)為正邊緣觸發(fā)的符號,而圖2.9(b)為負邊緣觸發(fā)的符號。此二符號之差別在于后者增加了一個所謂汽泡“○”。這實際上是在D觸發(fā)器的時標CLK的微分電路之后再串聯(lián)一個非門(反相器)的簡化符號。圖2.9(c)與前二圖之差別,也在于其增加了兩個汽泡“○”,這也是代表了增加兩個非門于PRESET和CLR端。這樣,就必須是低電平到來才能經(jīng)非門轉(zhuǎn)換成高電平去進行預(yù)置和清除作用。2.2.3JK觸發(fā)器

JK觸發(fā)器是組成計數(shù)器的理想記憶元件,這里就JK觸發(fā)器的電路原理作一簡要介紹。在RS觸發(fā)器前面增加兩個與門,并從輸出(Q和Q)到輸入(與門的輸入端)作交叉反饋,即可得到JK觸發(fā)器如圖2.10所示。圖中的CLK輸入端串有RC電路也是為了獲得正邊緣觸發(fā)的工作方式的。這個電路的工作過程是:圖2.10(1)當J=0,K=0,即J和K都是低電平時,兩個與門都被阻塞,無論此時Q和Q是什么狀態(tài),由于S和R也是低電平,所以不會改變Q和Q的狀態(tài),這種狀態(tài)稱為保持閉鎖狀態(tài)。(2)J=0,K=1,即J為低電平而K為高電平。此時上面的與門被阻塞,即S不可能為高電平,所以也無置位(即使Q=1)的可能。如果此時Q=1,則反饋至下面的與門。在下一個CLK的正脈沖邊沿到達時,觸發(fā)器就產(chǎn)生復位動作(Q=0,Q=1)。如果Q原來為低電平(Q=0,Q=1),則反饋至下面的與門而使其也被阻塞,所以即使K=1,也沒有任何動作產(chǎn)生,觸發(fā)器仍處于復位狀態(tài)(Q=0,Q=1)。(3)J=1,K=0,即J為高電平而K為低電平。此時下面的與門被阻塞,即R不可能為高電平,所以也無復位(即使Q=0)的可能。如果此時Q=0,而Q=1,則反饋至上面的與門,在下一個CLK的正脈沖邊緣到達時,觸發(fā)器就產(chǎn)生置位動作(Q=1,Q=0)。如果Q原來為高電平(Q=1,Q=0),則反饋至上面的與門而將其阻塞,這樣上下兩個與門都被阻塞了,觸發(fā)器就仍處于置位狀態(tài)(Q=1,Q=0)。(4)J=1,K=1,即J,K同為高電平,則可能使觸發(fā)器置位(Q=1,Q=0)或復位(Q=0,Q=1)。也就是說,如果原來的狀態(tài)為Q=0,Q=1,在J=1及K=1而且在CLK的正邊緣脈沖到達時,就會翻轉(zhuǎn)到Q=1,Q=0。反之,如果原來的狀態(tài)為Q=1,Q=0,在J=1及K=1而且在CLK的正邊緣脈沖到達時,就會翻轉(zhuǎn)到Q=0,Q=1。所謂翻轉(zhuǎn),就是觸發(fā)器的狀態(tài)改變的意思。圖2.11JK觸發(fā)器的符號JKQ動作00保持原狀自鎖狀態(tài)010復位101置位11原狀態(tài)的反碼翻轉(zhuǎn)2.3寄存器

寄存器(register)是由觸發(fā)器組成的。一個觸發(fā)器就是一個一位寄存器。由多個觸發(fā)器可以組成一個多位寄存器。寄存器由于其在計算機中的作用之不同而具有不同的功能,從而被命名為不同的名稱。常見的寄存器有:緩沖寄存器——用以暫存數(shù)據(jù);移位寄存器——能夠?qū)⑵渌娴臄?shù)據(jù)一位一位地向左或向右移;計數(shù)器——一個計數(shù)脈沖到達時,會按二進制數(shù)的規(guī)律累計脈沖數(shù);累加器——用以暫存每次在ALU中計算的中間結(jié)果。下面分別介紹這些寄存器的工作原理及其電路結(jié)構(gòu)。2.3.1緩沖寄存器

其基本工作原理為:設(shè)有一個二進制數(shù),共有4位數(shù):X=X3X2X1X0要存到這個緩沖寄存器(buffer)中去,此寄存器是由4個D觸發(fā)器組成的。將X0,X1,X2,X3分別送到各個觸發(fā)器的D0,D1,D2,D3端去,只要CLK的正前沿還未到來,則Q0,Q1,Q2,Q3就不受X0,X1,X2,X3的影響而保持其原有的數(shù)據(jù)。只有當CLK的正前沿來到時,Q0,Q1,Q2,Q3才接受D0,D1,D2,D3的影響,而變成:圖2.12Q0=X0Q1=X1Q2=X2Q3=X3結(jié)果就是:Q=Q3Q2Q1Q0=X3X2X1X0=X這就叫做將數(shù)據(jù)X裝到寄存器中去了。如要將此數(shù)據(jù)送至其他記憶元件去,則可由Y0,Y1,Y2,Y3各條引線引出去??煽鼐彌_寄存器:圖2.12的緩沖寄存器的數(shù)據(jù)X輸入到Q只是受CLK的節(jié)拍管理,即只要一將X各位加到寄存器各位的D輸入端,時標節(jié)拍一到,就會立即送到Q去。這有時是不利而有害的,因為也許我們還想讓早已存在其中的數(shù)據(jù)多留一些時間,但由于不可控之故,在CLK正前沿一到就會立即被來到門口的數(shù)據(jù)X替代掉。為此,我們必須為這個寄存器增設(shè)一個可控的“門”。這個“門”的基本原理如圖2.13所示,它是由兩個與門一個或門以及一個非門所組成的。圖2.13在X0端送入數(shù)據(jù)(0或1)后,如LOAD端(以下簡稱為L端)為低電位,則右邊的與門被阻塞,X0過不去,而原來已存在此位中的數(shù)據(jù)由Q0送至左邊的與門。此與門的另一端輸入從非門引來的與L端反相的電平,即高電位。所以Q0的數(shù)據(jù)可以通過左邊的與門,再經(jīng)或門而送達D0端。這就形成自鎖,即既存的數(shù)據(jù)能夠可靠地存在其中而不會丟失。如L端為高電位,則左邊與門被阻塞而右邊與門可讓X0通過,這樣Q0的既存數(shù)據(jù)不再受到自鎖,而X0可以到達D0端。只要CLK的正前沿一到達,X0即被送到Q0去,這時就叫做裝入(LOAD)。一旦裝入之后,L端又降至低電平,則利用左邊的與門,X0就能自鎖而穩(wěn)定地存在Q0中。要記住,以后我們一提到“L門”,大家就要想到圖2.13的電路結(jié)構(gòu)及其作用:高電平時使數(shù)據(jù)裝入,低電平時,數(shù)據(jù)自鎖在其中。對于多位的寄存器,每位各自有一套如圖2.13一樣的電路。不過只用一個非門,并且只有一個LOAD輸入端,如圖2.14所示。圖2.14可控緩沖寄存器的符號一般畫成圖2.15那樣,LOAD為其控制門,而CLR為高電平時則可用以清除,使其中各位變?yōu)?。圖2.152.3.2移位寄存器移位寄存器(shiftingregister)能將其所存儲的數(shù)據(jù)逐位向左或向右移動,以達到計算機在運行過程中所需的功能,例如用來判斷最左邊的位是0或1等。電路原理圖如圖2.16所示。圖2.16左移寄存器如圖2.16(a)所示,當Din=1而送至最右邊的第1位時,D0即為1,當CLK的正前沿到達時,Q0即等于1。同時第2位的D1也等于1。當CLK第2個正前沿到達時,Q1也等于1。結(jié)果可得下列的左移過程:

CLK前沿未到Q=Q3Q2Q1Q0=0000第1前沿來到Q=0001第2前沿來到Q=0011第3前沿來到Q=0111第4前沿來到Q=1111第5前沿來到,如此時Din仍為1,則Q不變,仍為1111。當Q=1111之后,改變Din,使Din=0,則結(jié)果將是把0逐位左移:第1前沿來到Q=1110第2前沿來到Q=1100第3前沿來到Q=1000第4前沿來到Q=0000由此可見,在左移寄存器中,每個時鐘脈沖都要把所儲存的各位向左移動一個數(shù)位。右移寄存器如圖2.16(b)所示。圖2.16(b)與圖2.16(a)之差別僅在于各位的接法不同,而且輸入數(shù)據(jù)Din是加到左邊第1位的輸入端D3。根據(jù)上面的分析,當Din=1時,隨著時鐘脈沖而逐步位移是這樣的:CLK前沿未到Q=0000第1前沿來到Q=1000第2前沿來到Q=1100第3前沿來到Q=1110第4前沿來到Q=1111由此可見,在右移寄存器中,每個時鐘脈沖都要把所存儲的各位向右移動一個位置??煽匾莆患拇嫫鳎汉途彌_寄存器一樣,在整機運行中,移位寄存器也需要另有控制電路,以保證其在適當時機才參與協(xié)調(diào)工作。這個電路也和圖2.13一樣,只要在每一位的電路上增加一個這樣的LOAD門(L門)即可以達到控制的目的??煽匾莆患拇嫫鞯姆柸鐖D2.17所示,其中新出現(xiàn)的符號的意義是:SHL——左移(shifttotheleft)SHR——右移(shifttotheright)圖2.172.3.3計數(shù)器計數(shù)器(counter)也是由若干個觸發(fā)器組成的寄存器,它的特點是能夠把存儲在其中的數(shù)字加1。計數(shù)器的種類很多,有行波計數(shù)器、同步計數(shù)器、環(huán)形計數(shù)器和程序計數(shù)器等。(1)行波計數(shù)器(travellingwavecounter)的特點是:第1個時鐘脈沖促使其最低有效位(leastsignificantbit,LSB)加1,由0變1。第2個時鐘脈沖促使最低有效位由1變0,同時推動第2位,使其由0變1。同理,第2位由1變0時又去推動第3位,使其由0變1,這樣有如水波前進一樣逐位進位下去。圖2.18就是由JK觸發(fā)器組成的行波計數(shù)器的工作原理圖。圖2.18中的各位的J,K輸入端都是懸浮的,這相當于J,K端都是置1的狀態(tài),亦即是各位都處于準備翻轉(zhuǎn)的狀態(tài)。只要時鐘脈沖邊緣一到,最右邊的觸發(fā)器就會翻轉(zhuǎn),即Q由0轉(zhuǎn)為1或由1轉(zhuǎn)為0。各位的JK觸發(fā)器的時鐘脈沖輸入端都帶有一個“氣泡”,這表示是串有一個反相門(非門),這樣,只有時鐘脈沖的后沿(產(chǎn)生負的尖峰電壓)才能為其所接受。因此,可得計數(shù)步驟如下:圖2.18開始時使CLR由高電位變至低電位(這也是由于有“氣泡”在CLR輸入端之故),則計數(shù)器全部清除,所以:Q=Q3Q2Q1Q0=0000第1時鐘后沿到Q=0001此Q0由低電位(0)升至高電位(1),產(chǎn)生的是電位上升的變化,由于有“氣泡”在第2位的時鐘脈沖輸入端,所以第2個觸發(fā)器不會翻轉(zhuǎn),必須在Q0由1降為0時才會翻轉(zhuǎn)。接著:第2時鐘后沿到Q=0010第3時鐘后沿到Q=0011第4時鐘后沿到Q=0100第5時鐘后沿到Q=0101第6時鐘后沿到Q=0110第7時鐘后沿到Q=0111第8時鐘后沿到Q=1000…………第15時鐘后沿到Q=1111第16時鐘后沿到Q=0000在第16個時鐘脈沖到時,計數(shù)器復位至0,因此這個計數(shù)器可以計由0至15的數(shù)。如果要計的數(shù)更多,就需要更多的位,即更多的JK觸發(fā)器來組成計數(shù)器。如8位計數(shù)器可計由0至255的數(shù),12位計數(shù)器可計由0至4095的數(shù),16位則可計由0至65535的數(shù)。圖2.19是可控計數(shù)器的電路原理圖。圖2.19圖2.18中的J,K輸入端是懸浮的,所以每次時鐘脈沖到時,它都要翻轉(zhuǎn)一次。圖2.19中的各個J,K輸入端連在一起引出來,由計數(shù)控制端COUNT的電位信號來控制。當COUNT為高電位時,JK觸發(fā)器才有翻轉(zhuǎn)的可能。當COUNT為低電位時就不可能翻轉(zhuǎn)。圖2.20是這種計數(shù)器的符號。圖2.20(2)同步計數(shù)器(synchronouscounter)行波計數(shù)器的工作原理是在時鐘邊緣到來時開始計數(shù),由右邊第一位(LSB)開始,如有進位的話則要一位一位的推進。而每一位觸發(fā)器都需要建立時間tp(tp約為10納秒)。如果是16位的計數(shù)器,則最大可能的計一個數(shù)的時間為160納秒,這就顯得太慢了。同步計數(shù)器是將時鐘脈沖同時加到各位的觸發(fā)器的時鐘輸入端,而將前一位的輸出端(Q)接到下一位的JK端去。這樣可以使計數(shù)器計數(shù)時間只相當于一個觸發(fā)器的建立時間tp,所以同步計數(shù)器在很多微型機中常被使用。為了避免初學者陷到電路分析中去,這里就不介紹具體線路了。(3)環(huán)形計數(shù)器(ringcounter)也是由若干個觸發(fā)器組成的。不過,環(huán)形計數(shù)器與上述計數(shù)器不一樣,它只是僅有唯一的一個位為高電位,即只有一位為1,其他各位為0。圖2.21是由D觸發(fā)器組成環(huán)形計數(shù)器的電路原理圖。圖2.21當CLR端有高電位輸入時,除右邊第1位(LSB)外,其他各位全被置0(因清除電位CLR都接至它們的CLR端),而右邊第1位則被置1(因清除電位CLR被引至其PR端)。這就是說,開始時Q0=1,而Q1,Q2,Q3全為0。因此,D1也等于1,而D0=Q3=0。在時鐘脈沖正邊緣來到時,則Q0=0,而Q1=1,其他各位仍為0。第2個時鐘脈沖前沿來到時,Q0=0,Q1=0,而Q2=1,Q3仍=0。這樣,隨著時鐘脈沖而各位輪流置1,并且是在最后一位(左邊第1位)置1之后又回到右邊第1位,這就形成環(huán)形置位,所以稱為環(huán)形計數(shù)器。環(huán)形計數(shù)器的符號如圖2.22所示。圖2.22環(huán)形計數(shù)器不是用來計數(shù)用,而是用來發(fā)出順序控制信號的,這在計算機的控制器中是一個很重要的部件。(4)程序計數(shù)器(programcounter)也是一個行波計數(shù)器(也可用同步計數(shù)器)。不過它不但可以從0開始計數(shù),也可以將外來的數(shù)裝入其中,這就需要一個COUNT輸入端,也要有一個LOAD門,程序計數(shù)器的符號如圖2.23所示。圖2.232.3.4累加器

累加器也是一個由多個觸發(fā)器組成的多位寄存器,累加器的英文為accumulator,譯作累加器,似乎容易產(chǎn)生誤解,以為是在其中進行算術(shù)加法運算。其實它不進行加法運算,而是作為ALU運算過程的代數(shù)和的臨時存儲處。這種特殊的寄存器在微型計算機的數(shù)據(jù)處理中擔負著重要的任務(wù)。累加器除了能裝入及輸出數(shù)據(jù)外,還能使存儲其中的數(shù)據(jù)左移或右移,所以它又是一種移位寄存器。累加器的符號如圖2.24所示。圖2.248086的寄存器結(jié)構(gòu)8086CPU內(nèi)部具有14個16位寄存器,用于提供運算,控制指令執(zhí)行和對指令及操作數(shù)尋址。包括通用寄存器、段寄存器、控制寄存器組。AHALBHBLCHCLDHDLSPBPSIDIIPFLAGSCSDSSSES07815AXBXCXDX累加器基址寄存器計數(shù)寄存器數(shù)據(jù)寄存器堆棧指針基址指針源變址寄存器目的變址寄存器指令指針標志寄存器代碼段寄存器數(shù)據(jù)段寄存器堆棧段寄存器附加段段寄存器數(shù)據(jù)寄存器地址指針和變址寄存器控制寄存器組段寄存器組通用寄存器組一、通用寄存器組8個16位通用寄存器分為兩組:數(shù)據(jù)寄存器及地址指針和變址寄存器數(shù)據(jù)寄存器包括AX、BX、CX和DX。在指令的執(zhí)行過程中即可用來寄存操作數(shù),也可用于寄存操作的結(jié)果。它們中的每一個又可將高8位和低8位分成獨立的兩個8位寄存器來使用。16位的數(shù)據(jù)寄存器主要用于存放數(shù)據(jù),也可以用來存放地址。而8位寄存器(AH、AL、BH、BL、CH、CL、DH和DL)只能用于存放數(shù)據(jù)。1、數(shù)據(jù)寄存器地址指針和變址寄存器包括SP、BP、SI和DI。這組寄存器在功能上的功能上的共同點是:在對寄存器操作數(shù)尋址時,用于形成20位物理地址碼的組成部分。在任何情況下,他們都不能獨立地形成訪問內(nèi)存的地址碼,因為他們都只有16位。訪問存儲器的地址碼由段地址(存放在段寄存器中)和段內(nèi)偏移地址兩部分構(gòu)成。而這四個寄存器主要存放段內(nèi)偏移地址的全部或一部分。下面來說明段寄存器和地址形成的方法。2、地址指針和變址寄存器SP(StackPointer)堆棧指針。用于存放堆棧操作(壓入或彈出)地址的段內(nèi)偏移地址。其段地址由段寄存器SS提供。BP(BasePointer)基址指針。在某些間接尋址方式中,BP用來存放段內(nèi)偏移地址的一部分。特別之的說明的是,凡包含BP的尋址方式中,無特別說明,其段地址由段寄存器SS提供。SI(SourceIndex)和DI(DestinationIndex)變址寄存器。在某些間接尋址方式中,SI和DI用來存放段內(nèi)偏移地址的全部或一部分。在字符串操作指令中,SI用作源變址寄存器,DI用作目的變址寄存器。寄存器名稱特定用法AX,AL在乘法或除法指令中作累加器在I/O指令中用作數(shù)據(jù)寄存器AH在LAFH指令中用作目的寄存器AL在BCD碼及ASCII碼運算指令中作累加器在XLAT指令中作累加器BX在間接尋址中作地址寄存器在間接尋址中作基址寄存器在XLAT指令中作為基址寄存器CX在循環(huán)指令和字符串指令中作循環(huán)次數(shù)的計數(shù)寄存器,每作一次循環(huán),CX的內(nèi)容自動減1CL在移位及循環(huán)移位指令中作移位位數(shù)及循環(huán)移位次數(shù)的計數(shù)寄存器DX在I/O指令間接尋址時作地址寄存器在乘法及除法指令中作輔助累加器(當乘積或被除數(shù)為32位時存放高16位)通用寄存器的特定用法寄存器名稱特定用法BP在間接尋址中作為基址寄存器SP在堆棧操作中作為堆棧指針SI在字符串指令中作源變址寄存器在間接尋址中作地址寄存器在間接尋址中作變址寄存器DI在字符串指令中作為目的變址寄存器在間接尋址中作地址寄存器在間接尋址中作變址寄存器續(xù)表二、段寄存器組訪問存儲器的地址碼由段地址和段內(nèi)偏移地址兩部分組成。段寄存器用來存放段地址。總線接口BIU設(shè)置4個段寄存器。CPU可以通過4個段寄存器訪問存儲器中4個不同的段。四個段寄存器分別是:CS(CodeSegment)代碼段寄存器。它存放當前執(zhí)行程序所在段的段地址。CS的內(nèi)容左移四位再加上指令指針I(yè)P的內(nèi)容就是下一條要執(zhí)行的指令地址。DS(DataSegment)數(shù)據(jù)段寄存器。它存放當前數(shù)據(jù)段的段地址。通常數(shù)據(jù)段用來存放數(shù)據(jù)和變量。DS的內(nèi)容左移四位再加上按指令中存儲器尋址方式計算出來的偏移地址,即為對數(shù)據(jù)段制定單元讀寫的地址。SS(StackSegment)堆棧段寄存器。它存放堆棧段的段地址。堆棧是存儲器中開辟的按后進先出原則組織的一個特別存儲區(qū)。主要用于調(diào)用子程序時,保留返回主程序的地址和保存進入子程序?qū)⒁淖兤渲档募拇嫫鞯膬?nèi)容。對堆棧進行操作(壓入或彈出)的地址由SS的左移四位再加上SP的內(nèi)容得到。ES(ExtraSegment)附加段寄存器。附加段是一個附加數(shù)據(jù)段。附加段是在進行字符串操作是作為目的區(qū)地址使用的,ES存放附加段的段地址,DI存放目的區(qū)的偏移地址。DS和ES都要由用戶用程序設(shè)置初值。若DS和ES的初值相同,則數(shù)據(jù)段和附加段重合。三、控制寄存器組1、指令指針(InstructionPointer)指令指針相當于程序計數(shù)器PC。它保存下一條要執(zhí)行的指令的偏移地址,用于調(diào)試程序。某些指令如轉(zhuǎn)移指令、過程調(diào)用指令和返回指令等將改變IP的內(nèi)容。2、標志寄存器(FLAG)共9個標志寄存器。其中6個是反映前一次涉及ALU操作結(jié)果的狀態(tài)標志,3個是控制CPU操作特征的控制標志。CF(CarryFlag)進位標志。如果加法時最高位(對字節(jié)操作是D7

位,對字操作是D15)產(chǎn)生進位或減法時最高位產(chǎn)生錯位,則CF=1,否則CF=0。PF(ParityFlag)奇偶標志。如果操作結(jié)果的低8位中含有偶數(shù)個1,PF=1,否則PF=0。AF(AuxiliaryCarryFlag)輔助進位標志。如果在加法時D3

位有進位或減法時D3位有借位則

AF=1,否則AF=0。ZF(ZeroFlag)零標志。如果運算結(jié)果各位都為零。則ZF=1,否則ZF=0。SF(SignFlag)符號標志。它總是和結(jié)果的最高位相同。因為在補碼運算時的最高位是符號位,所以運算結(jié)果為負時,SF=1,否則SF=0。OF(OverflowFlag)溢出標志。在加或者減運算中結(jié)果超出8位或16位有符號數(shù)所能表示的范圍時,產(chǎn)生溢出,OF=1,否則OF=0。DF(Direction)方向標志??捎弥噶铑A(yù)置。字符串操作指令執(zhí)行是受它的控制。當DF=0時,執(zhí)行串操作指令,變址寄存器地址自動遞增;當DF=1時,則變址寄存器地址自動遞減。則該標志位可控制地址朝增大的方向或減小的方向改變。IF(InterruptEnableFlag)中斷允許標志??捎弥噶铑A(yù)置。當IF=1時,CPU可響應(yīng)可屏蔽中斷請求;當IF=0時,CPU不響應(yīng)可屏蔽中斷請求。TF(TrapFlag)陷阱標志。若TF=1,則CPU處于單步執(zhí)行指令工作方式。IBMPC系統(tǒng)中,用系統(tǒng)調(diào)試程序DEBUG時,T命每執(zhí)行一條指令就自動產(chǎn)生一次類型1的內(nèi)部中斷。令就是利用這種中斷,服務(wù)子程序的功能是顯示所有寄存器的當前值和將要執(zhí)行的下一條指令。例:假如前一條指令執(zhí)行0101010000111001與0100011101100010相加,執(zhí)行完這條指令后標志位SF、ZF、PF、AF、CF和OF分別是多少?解:010101000011100101000111011000101001101110011011SF=1,ZF=0,PF=0,AF=0,CF=0,OF=1+2.4三態(tài)輸出電路

由于記憶元件是由觸發(fā)器組成的,而觸發(fā)器只有兩個狀態(tài):0和1,所以每條信號傳輸線只能傳送一個觸發(fā)器的信息(0或1)。如果一條信號傳輸線既能與一個觸發(fā)器接通,也可以與其斷開而與另外一個觸發(fā)器接通,則一條信息傳輸線就可以傳輸隨意多個觸發(fā)器的信息了。三態(tài)輸出電路(或稱三態(tài)門)就是為了達到這個目的而設(shè)計的。三態(tài)輸出電路可以由兩個或非門和兩個NMOS晶體管(T1,T2)及一個非門組成,如圖2.25所示。當ENABLE(選通端)為高電位時,通過非門而加至兩個或非門的將為低電位,則兩個或非門的輸出狀態(tài)將決定于A端的電位。當A為高電位,G2就是低電位,而G1為高電位,因而T1導通而T2截止,所以B端也呈現(xiàn)高電位(VB≈VDD);當A為低電位,G2將呈現(xiàn)高電位而G1為低電位,因而T1截止而T2導通,所以B也呈現(xiàn)低電位(VB≈0)。這就是說,在選通端(ENABLE端)為高電位時A的兩種可能電平(0和1)都可以順利地通到B輸出去,即E=1時,B=A。圖2.25當選通端E為低電位時,通過非門加至兩個或非門的將為高電位。此時,無論A為高或低電位,兩個或非門的輸出都是低電位,即G1與G2都是低電位。所以T1和T2同時都是截止狀態(tài)。這就是說,在選通端(E端)為低電位時,A端和B端是不相通的,即它們之間存在著高阻狀態(tài)。三態(tài)輸出電路的符號如圖2.25(b)所示。圖2.25稱為單向三態(tài)輸出電路。有時需要雙向輸出時,一般可以用兩個單向三態(tài)輸出電路來組成,如圖2.26所示。A為某個電路裝置的輸出端,C為其輸入端。當EOUT=1時,B=A,即信息由左向右傳輸;EIN=1時,C=B,即信息由右向左傳輸。圖2.26三態(tài)門(E門)和裝入門(L門)一樣,都可加到任何寄存器(包括計數(shù)器和累加器)電路上去。這樣的寄存器就稱為三態(tài)寄存器。L門專管對寄存器的裝入數(shù)據(jù)的控制,而E門專管由寄存器輸出數(shù)據(jù)的控制。有了L門和E門就可以利用總線結(jié)構(gòu),使計算機的信息傳遞的線路簡單化,控制器的設(shè)計也更為合理而易于理解了。2.5總線結(jié)構(gòu)設(shè)有A,B,C和D4個寄存器,它們都有L門和E門,其符號分別附以A,B,C和D的下標。它們的數(shù)據(jù)位數(shù),設(shè)有4位,這樣只要有4條數(shù)據(jù)線即可溝通它們之間的信息來往。圖2.27就是總線結(jié)構(gòu)的原理圖。圖2.27如果將各個寄存器的L門和E門按次序排成一列,則可稱其為控制字CON:CON=LAEALBEBLCECLDED為了避免信息在公共總線W中亂竄,必須規(guī)定在某一時鐘節(jié)拍(CLK為正半周),只有一個寄存器L門為高電位,和另一寄存器的E門為高電位。其余各門則必須為低電位。這樣,E門為高電位的寄存器的數(shù)據(jù)就可以流入到L門為高電位的寄存器中去??刂谱种心男┪粸楦唠娖?,哪些位為低電平,將由控制器發(fā)出并送到各個寄存器上去。為了簡化作圖,不論總線包含幾條導線,都用一條粗線表示。在圖2.28中,有兩條總線,一條稱數(shù)據(jù)總線,專門讓信息(數(shù)據(jù))在其中流通。另一條稱為控制總線,發(fā)自控制器,它能將控制字各位分別送至各個寄存器上去。控制器也有一個時鐘,能把CLK脈沖送到各個寄存器上去。圖2.282.6存儲器

存儲器(memory)是計算機的主要組成部分。它既可用來存儲數(shù)據(jù),也可用以存放計算機的運算程序。存儲器由寄存器組成,可以看做一個寄存器堆,每個存儲單元實際上相當于一個緩沖寄存器。根據(jù)使用不同,存儲器分為兩大類:只讀存儲器(ROM)和隨機存取存儲器(RAM)。下面將分別介紹這兩種存儲器的結(jié)構(gòu)和性能。在微型計算機中采用半導體器件作為記憶元件,這樣體積小些,可以制成大規(guī)模集成電路。每個存儲單元所存儲的內(nèi)容稱為一個字(word)。一個字由若干位(bit)組成。比如8個記憶元件的存儲單元就是一個8位的記憶字稱為一個字節(jié)(byte),由16個記憶單元組成的存儲單元就是一個16位的記憶字(由兩個字節(jié)組成)。一個存儲器可以包含數(shù)以千計的存儲單元。所以,一個儲存器可以存儲很多數(shù)據(jù),也可以存放很多計算步驟——稱為程序(program)。為了便于存入和取出,每個存儲單元必須有一個固定的地址。因此,存儲器的地址也必定是數(shù)以千計的。為了減少存儲器向外引出的地址線,在存儲器內(nèi)部都自帶有譯碼器。根據(jù)二進制編碼譯碼的原理,除地線公用之外,n根導線可以譯成2n個的地址號。例如,一個16×8的存儲器如圖2.29所示,它是一個有16個存儲單元,每個單元為8位記憶字(即每單元存一個字節(jié))的集成電路片,它將有4條地址線A0,A1,A2,A3和8條數(shù)據(jù)線D0,D1,D2,D3,D4,D5,D6,D7。如16個存儲單元為R0,R1,…,R15。它們是A0,A1,A2,A3的全部組合。圖2.29順便提一句,當?shù)刂肪€為10條時,n=10,則可編地址號為1,024個,或稱為1K字節(jié)。這里的1K和習慣為1000不一樣,請務(wù)必注意。A0~A3就是地址總線中的4根譯碼線。當存儲器的存儲單元愈多,則地址總線中的譯碼線,亦即存儲器集成電路片的地址線愈多。在一般微型計算機中,地址線大都為16條。16條地址線,可譯出64K個地址。在286/386/486中采用20條地址線。2.6.1只讀存儲器

這是用以存放固定程序的存儲器,一旦程序存放進去之后,即不可改變。也就是說,不能再“寫”入新的字節(jié),而只能從中“讀”出其所存儲的內(nèi)容,因此稱為只讀存儲器。圖2.30是一個8×4ROM集成電路片的內(nèi)部電路原理圖。右半部分由矩陣電路及半導體二極管組成8個4位的存儲單元。二極管的位置是由制造者配置好了而不可更改的。一條橫線相當于一個存儲單元,而一條豎線相當于一位。所以8條橫線組成8個存儲單元,4條豎線成為一個4位的字。二極管連接到的豎線,則為該位置1。無二極管相連的豎線,則為該位置0。輸出電信號是取自限流電阻R上的電位。為了可控,每條數(shù)據(jù)線都加一個三態(tài)輸出門(E門)。這樣,只有在E門為高電位時,才有可能輸出此ROM中的數(shù)據(jù)。圖2.30左半部為地址譯碼器電路。因為是8個地址號,所以只需3條地址線:A2,A1,A0,每條地址線都并以一個非門,而得3條非線:A2,A1,A0。這6條線通過8個與門即可譯成8個地址號。例如,R0的地址號為A2A1A0=000,當?shù)刂肪€上出現(xiàn)A2A1A0=000時,則R0所在的那條橫線所連接的與門1將導通,而使此橫線為高電位。而此時R0的4條豎線中只有最右一條接有二極管。它將橫線的高電位引至下面的限流電阻R上。所以電阻R的上端出現(xiàn)高電位。其他3條豎線由于無二極管與R0橫線相連,所以它們各自的限流電阻上無電流流過而呈現(xiàn)為低電平(地電位)。當E門為高電位時數(shù)據(jù)線D3D2D1D0將送出數(shù)據(jù)為0001,其他各個存儲單元也可由地址線的信號之不同而選出,并通過E門將數(shù)據(jù)輸出去。圖2.31為ROM的符號圖,圖2.31(a)是8個存儲單元,每個4位(即半個字節(jié)),所以寫成8×4ROM。圖2.31(b)為通用寫法,m×nROM意即為m個存儲單元,其中每個為n位。圖2.31存儲地址寄存器(memoryaddressregister,MAR):作為存儲器的一個附件,存儲地址寄存器是必需的。它將所要尋找的存儲單元的地址暫存下來,以備下一條指令之用。存儲地址寄存器也是一個可控緩沖寄存器,它具有L門以控制地址的輸入。它和存儲器的聯(lián)系是雙態(tài)的,即地址一進入MAR就立即被送到存儲器去,如圖2.32所示。圖2.32【例2.1】程序計數(shù)器PC,存儲地址寄存器MAR和ROM通過總線的聯(lián)系如圖2.33所示。圖2.33設(shè)控制字依次是:(1)CPEPLMER=0110(2)CPEPLMER=0001(3)CPEPLMER=1000問:它們之間的信息是如何流通的?解:開機時,先令CLR=1,則PC=0000(1)第1個控制字是:

CPEPLMER=0110即EP=1,PC準備放出數(shù)據(jù);LM=1,MAR準備裝入數(shù)據(jù)。在CLK正前沿到達時,CLK=1,MAR=PC=0000,PC的數(shù)據(jù)裝入MAR,同時MAR立即指向ROM的第一地址,即選中了ROM中的R0存儲單元。(2)第2個控制字是:

CPEPLMER=0001即ER=1,令ROM放出數(shù)據(jù)。也就是說,當ER為高電位,R0中的8位數(shù)據(jù)就被送入到W總線上去。這樣的動作,不需等待時鐘脈沖的同步訊號,因而稱為異步動作。(3)第3個控制字是:

CPEPLMER=1000即CP=1,這是命令PC加1,所以PC=0001。這是在取數(shù)周期完了時,要求PC進一步,以便為下一條指令準備條件。2.6.2隨機存儲器這種存儲器又叫做讀/寫存儲器。它和ROM之區(qū)別在于這種存儲器不但能讀取已存放在其各個存儲單元中的數(shù)據(jù),而且還能夠隨時寫進新的數(shù)據(jù),或者改寫原來的數(shù)據(jù)。因此,RAM的每一個存儲單元相當于一個可控緩沖寄存器。

1.RAM的材料某些專用計算機常用磁芯作為記憶元件,這樣可以避免停電而失去記憶能力,但體積較大。小型計算機及微型計算機多用雙極型晶體管或金屬氧化物半導體場效應(yīng)晶體管(MOSFET)。這類材料可以制成大規(guī)模集成電路,體積較小。但停電則失去記憶能力。2.靜態(tài)RAM及動態(tài)RAM靜態(tài)RAM常用雙極型晶體管觸發(fā)器作為記憶元件(也有用MOSFET的),只要有電源加于觸發(fā)器,數(shù)據(jù)即可長期保留。動態(tài)RAM則用電容及MOSFET作為記憶元件。由于電容會漏電,因而常需“刷新”,這就是要求每隔2ms充電一次,為此還須另加一刷新電源。雖然動態(tài)RAM比靜態(tài)RAM便宜些,但因要刷新,電路上稍為麻煩,因而大多數(shù)微型機都采用靜態(tài)RAM。3.RAM的符號RAM的符號如圖2.34所示,其中:

A——地址線;

DIN——要寫入的數(shù)據(jù);

DOUT——要讀出的數(shù)據(jù);

ME——選通此RAM的E門。WE及ME的電位與RAM的操作和輸出端的聯(lián)系,也列于圖2.34的表中。當ME=0時,此RAM未選中,故WE是什么(0或1)都不能影響RAM的動作,并且其輸出端是懸浮(高阻)的。只有在ME=1時,此RAM才被選中,才能再進一步去確定其是讀出還是寫入。從圖2.34中的表可見。

WE=0時,為數(shù)據(jù)讀出;

WE=1時,為數(shù)據(jù)寫入。圖2.34存儲器數(shù)據(jù)寄存器(memorydataregister,MDR)也是一個可控緩沖寄存器。它的作用是將要寫入RAM中去的數(shù)據(jù)暫存寄MDR中,以等待控制器發(fā)出WE=1的命令到來時,才能寫入RAM中去。MDR和MAR以及RAM的聯(lián)系如圖2.35所示。因為此RAM有256個存儲單元,即有256個地址號。所以MAR必是8位的寄存器,才能給8條地址線送出256個地址碼。因為RAM是12位的,所以MDR也必是12位的,才能送出12條數(shù)據(jù)線到RAM去。圖2.35【例2.2】一個微型計算機的一部分如圖2.36所示,其工作程序分析如圖。這一部分系統(tǒng)圖是用來分析將數(shù)據(jù)I0裝入到RAM中去的過程的。設(shè)要寫入到RAM中去的數(shù)據(jù)為:I0=1100

0001

1001(共12位)這部分的控制字為:CON=CPEPLMWEMELDLIEI(共8位)已設(shè)計好的控制字的次序如下:

CON1=0110

0000(6016)

CON2=0000

0010(0216)

CON3=0000

0101(0516)

CON4=0001

1000(1816)

CON5=1000

0000(8016)圖2.36問:經(jīng)過CLR=1之后,機器的動作順序和現(xiàn)象如何?解:(1)CON=CPEPLMWEMELDLIEI在CON1時:CON1=0110

0000(6016)EP=1LM=1就是要將PC的內(nèi)容裝到MAR中去,由于CLR已經(jīng)接受過高電位,PC已被清零,PC=0000

0000所以當CLK的前沿一到時:MAR=PC=0000

0000(0016)這是指出存儲器RAM中第一個存儲單元R0的地址。(2)在CON2時:CON2=0000

0010(0216)LI=1,為輸入寄存器作好準備,以便輸入數(shù)據(jù)I0。當?shù)?個CLK的前沿到達時,I=I0=1100

0001

1001(C1916)(3)在CON3時:CON3=0000

0101(0516)LD=1,MDR準備接受數(shù)據(jù);EI=1,I準備放出數(shù)據(jù)。當?shù)?個CLK的前沿到達時,

溫馨提示

  • 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

提交評論