計(jì)算機(jī)組成原理與匯編語(yǔ)言程序設(shè)計(jì)第3章1ppt課件_第1頁(yè)
計(jì)算機(jī)組成原理與匯編語(yǔ)言程序設(shè)計(jì)第3章1ppt課件_第2頁(yè)
計(jì)算機(jī)組成原理與匯編語(yǔ)言程序設(shè)計(jì)第3章1ppt課件_第3頁(yè)
計(jì)算機(jī)組成原理與匯編語(yǔ)言程序設(shè)計(jì)第3章1ppt課件_第4頁(yè)
計(jì)算機(jī)組成原理與匯編語(yǔ)言程序設(shè)計(jì)第3章1ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩39頁(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篇計(jì)算機(jī)系統(tǒng)分層結(jié)構(gòu),在本篇用3章分三個(gè)層次,即微體系結(jié)構(gòu)層、指令系統(tǒng)層和匯編語(yǔ)言層討論計(jì)算機(jī)系統(tǒng)的組成。微體系結(jié)構(gòu)層是具體的硬件層次,可看作是指令系統(tǒng)的解釋器。指令系統(tǒng)層是一個(gè)抽象的層次,其指令系統(tǒng)是一種硬件和編譯器都可識(shí)別的機(jī)器語(yǔ)言。匯編語(yǔ)言層提供的語(yǔ)言,是將機(jī)器語(yǔ)言“符號(hào)化”以便于人們理解。用匯編語(yǔ)言編寫的程序先由匯編器翻譯成機(jī)器語(yǔ)言程序,再由微體系結(jié)構(gòu)層解釋執(zhí)行。,.,第3章微體系結(jié)構(gòu)層CPU組織,在微體系結(jié)構(gòu)層,是從寄存器級(jí)分析CPU的結(jié)構(gòu)和功能。本章主要內(nèi)容:CPU的基本組成和功能算術(shù)邏輯部件ALU和運(yùn)算方法CPU模型機(jī)組合邏輯控制器原理微程序控制器原理,.,中央處理器CPU的主要功能是從主存儲(chǔ)器中取出指令、分析指令和執(zhí)行指令,即按指令控制計(jì)算機(jī)各部件操作,并對(duì)數(shù)據(jù)進(jìn)行處理。,3.1CPU的組成和功能,.,3.1.1CPU的組成,CPU通常由以下幾部分構(gòu)成:,控制器;,算術(shù)邏輯部件ALU;,各種寄存器;,CPU內(nèi)部總線。,CPU的基本組成框圖,.,1ALU部件與寄存器,ALU框圖,(1)ALU部件,ALU的功能是實(shí)現(xiàn)數(shù)據(jù)的算術(shù)與邏輯運(yùn)算。,ALU的輸入有兩個(gè)端口,分別接收參加運(yùn)算的兩個(gè)操作數(shù),通常它們來(lái)自CPU中的通用寄存器或ALU總線。ALU的輸出取決于對(duì)其功能的控制,當(dāng)控制功能選擇加、減、與、或等運(yùn)算功能之一時(shí),其輸出結(jié)果將為對(duì)應(yīng)的和、差、與值、或值等。,.,(2)寄存器,CPU中的寄存器包括存放控制信息的寄存器,如指令寄存器、程序計(jì)數(shù)器和狀態(tài)字寄存器;以及存放所處理數(shù)據(jù)的寄存器,如通用寄存器和暫存器。,通用寄存器,通常CPU內(nèi)部設(shè)置有一組寄存器,每個(gè)寄存器都可以承擔(dān)多種用途,因此習(xí)慣上稱為通用寄存器。,通用寄存器本身在邏輯上只具有接收信息、存儲(chǔ)信息和發(fā)送信息的功能。但通過編程以及與ALU的配合可以實(shí)現(xiàn)多種功能,如它們可為ALU提供操作數(shù)并存放運(yùn)算結(jié)果,也可用作變址寄存器、地址指針和計(jì)數(shù)器等。,暫存器,在CPU中一般要設(shè)置暫存器,主要是為了暫存從主存儲(chǔ)器讀出的數(shù)據(jù),暫存器沒有寄存器號(hào),因此不能直接編程訪問它們。,.,指令寄存器IR(InstructionRegister),用來(lái)存放當(dāng)前正在執(zhí)行的一條指令。執(zhí)行指令時(shí),需根據(jù)PC中的指令地址從主存讀取指令送到IR中。,程序計(jì)數(shù)器PC(ProgramCounter),用以存放當(dāng)前或下一條指令在主存中的地址,因此又稱為指令計(jì)數(shù)器或指令指針I(yè)P(InstructionPointer)。,狀態(tài)寄存器,CPU內(nèi)部設(shè)置的狀態(tài)寄存器,用來(lái)存放當(dāng)前程序的運(yùn)行狀態(tài)和工作方式,其內(nèi)容稱為程序狀態(tài)字PSW(ProgramStateWord),PSW是參與控制程序執(zhí)行的重要依據(jù)。,.,2總線,所謂總線是一組能為多個(gè)部件分時(shí)共享的公共信息傳送線路,它分時(shí)接收各部件送來(lái)的信息,并發(fā)送信息到有關(guān)部件。,由于多個(gè)部件連接在一組公共總線上,可能會(huì)出現(xiàn)多個(gè)部件爭(zhēng)用總線,因此需設(shè)置總線控制邏輯以解決總線控制權(quán)的有關(guān)問題。,CPU內(nèi)部總線用來(lái)連接CPU內(nèi)的各寄存器與ALU;,總線分類:,系統(tǒng)總線用來(lái)連接CPU、主存儲(chǔ)器與I/O接口,它通常包括三組:數(shù)據(jù)總線、地址總線和控制總線。,按總線傳送的方向可將總線分為單向總線和雙向總線。,.,3CPU內(nèi)部數(shù)據(jù)通路,CPU內(nèi)部寄存器及ALU之間通常用總線方式傳送數(shù)據(jù)信息。介紹兩種常見的結(jié)構(gòu)。,(1)單總線數(shù)據(jù)通路結(jié)構(gòu),采用單總線結(jié)構(gòu)的CPU數(shù)據(jù)通路,.,CPU數(shù)據(jù)通路結(jié)構(gòu)只采用一組內(nèi)總線,它是雙向總線。通用寄存器組、其他寄存器和ALU均連在這組內(nèi)總線上。,CPU內(nèi)各寄存器間的數(shù)據(jù)傳送必須通過內(nèi)總線進(jìn)行,ALU通過內(nèi)總線得到操作數(shù),其運(yùn)算結(jié)果也經(jīng)內(nèi)總線輸出。,(2)多組內(nèi)總線結(jié)構(gòu),采用三總線結(jié)構(gòu)的CPU數(shù)據(jù)通路,為了提高CPU的工作速度,一種方法是在CPU內(nèi)部設(shè)置多組內(nèi)總線,使幾個(gè)數(shù)據(jù)傳送操作能夠同時(shí)進(jìn)行,即實(shí)現(xiàn)部分并行操作。,.,3.1.2指令執(zhí)行過程,CPU的主要功能就是執(zhí)行存放在存儲(chǔ)器中的指令序列,即程序。,1指令的分段執(zhí)行過程,任何一條指令的執(zhí)行都要經(jīng)過讀取指令、分析指令和執(zhí)行指令3個(gè)階段。,執(zhí)行階段還可細(xì)分為:,(1)取指令,(2)分析指令,(3)執(zhí)行指令,此外,CPU還應(yīng)該對(duì)運(yùn)行過程中出現(xiàn)的某些異常情況或輸入/輸出請(qǐng)求進(jìn)行處理。,.,2指令之間的銜接方式,指令之間的銜接方式有兩種:串行的順序安排方式與并行的重疊處理方式。,3.1.3時(shí)序控制方式,執(zhí)行一條指令的過程可分為幾個(gè)階段,而每一階段又分為若干步基本操作,每一步操作則由控制器產(chǎn)生一些相應(yīng)的控制信號(hào)實(shí)現(xiàn)。因此,每條指令都可分解為一個(gè)控制信號(hào)序列,指令的執(zhí)行過程就是依次執(zhí)行一個(gè)確定的控制信號(hào)序列的過程。,時(shí)序控制方式就是指微操作與時(shí)序信號(hào)之間采取何種關(guān)系,它不僅直接決定時(shí)序信號(hào)的產(chǎn)生,也影響到控制器及其他部件的組成,以及指令的執(zhí)行速度。,.,1同步控制方式,同步控制方式是指各項(xiàng)操作由統(tǒng)一的時(shí)序信號(hào)進(jìn)行同步控制。,同步控制的基本特征是將操作時(shí)間分為若干長(zhǎng)度相同的時(shí)鐘周期(也稱為節(jié)拍),要求在一個(gè)或幾個(gè)時(shí)鐘周期內(nèi)完成各個(gè)微操作。在CPU內(nèi)部通常是采用同步控制方式。,同步控制方式的優(yōu)點(diǎn)是時(shí)序關(guān)系簡(jiǎn)單,結(jié)構(gòu)上易于集中,相應(yīng)的設(shè)計(jì)和實(shí)現(xiàn)比較方便。,2同步控制方式的多級(jí)時(shí)序系統(tǒng),(1)多級(jí)時(shí)序的概念,在同步控制方式中,通常將時(shí)序信號(hào)劃分為幾級(jí)(其中包括指令周期),稱為多級(jí)時(shí)序。,機(jī)器周期,節(jié)拍(時(shí)鐘周期),時(shí)鐘脈沖信號(hào),.,(2)多級(jí)時(shí)序信號(hào)之間的關(guān)系,三級(jí)時(shí)序信號(hào)之間的關(guān)系,.,(3)時(shí)序系統(tǒng)的組成,時(shí)序系統(tǒng)框圖,3.1.4指令流水線,兩段指令流水線,.,為獲得進(jìn)一步的加速,流水線可以分成更多的階段。,取指令,計(jì)算操作數(shù)地址,譯碼指令,寫操作數(shù),取操作數(shù),執(zhí)行指令,指令流水線操作時(shí)序圖,影響流水線性能主要有以下幾個(gè)因素:(1)若各個(gè)階段不全是相等的時(shí)間(2)流水線中的相關(guān)問題(3)當(dāng)遇到條件轉(zhuǎn)移指令時(shí)(4)當(dāng)I/O設(shè)備有中斷請(qǐng)求或機(jī)器有故障時(shí),.,3.2算術(shù)邏輯部件ALU和運(yùn)算方法,算術(shù)邏輯部件ALU主要完成對(duì)二進(jìn)制代碼的定點(diǎn)算術(shù)運(yùn)算和邏輯運(yùn)算。,3.2.1算術(shù)邏輯部件ALU,算術(shù)邏輯部件ALU的硬件實(shí)現(xiàn)涉及三個(gè)問題:,(1)如何構(gòu)成一位二進(jìn)制加法單元,即全加器。(2)n位全加器連同進(jìn)位信號(hào)傳送邏輯,構(gòu)成一個(gè)n位并行加法器。(3)以加法器為核心,通過輸入選擇邏輯擴(kuò)展為具有多種算術(shù)和邏輯運(yùn)算功能的ALU。,.,1全加器,用半加器構(gòu)成的全加器,和,進(jìn)位,目前,廣泛采用半加器構(gòu)成全加器。,.,2并行加法器與進(jìn)位鏈結(jié)構(gòu),用n位全加器實(shí)現(xiàn)兩個(gè)n位操作數(shù)各位同時(shí)相加,這種加法器稱為并行加法器。并行加法器中全加器的位數(shù)與操作數(shù)的位數(shù)相同。,(1)基本進(jìn)位公式,設(shè)相加的兩個(gè)n位操作數(shù)為:,進(jìn)位信號(hào)的邏輯式,.,可以看出C由兩部分組成:,我們定義兩個(gè)輔助函數(shù):,進(jìn)位產(chǎn)生函數(shù),進(jìn)位傳遞函數(shù),因此有:,.,(2)并行加法器的串行進(jìn)位,采用串行進(jìn)位的并行加法器,是將n個(gè)全加器串接起來(lái),就可進(jìn)行兩個(gè)n位數(shù)相加。,由于串行進(jìn)位的延遲時(shí)間較長(zhǎng),所以在ALU中很少采用純串行進(jìn)位的方式。但這種方式可節(jié)省器件,成本低,在分組進(jìn)位方式中局部采用有時(shí)也是可取的。,.,3并行進(jìn)位(先行進(jìn)位、同時(shí)進(jìn)位),為了提高并行加法器的運(yùn)算速度,就必須解決進(jìn)位傳遞的問題。方法是讓各級(jí)進(jìn)位信號(hào)同時(shí)形成,而不是串行形成。,這種同時(shí)形成各位進(jìn)位的方法稱為并行進(jìn)位或先行進(jìn)位,又稱為同時(shí)進(jìn)位。,雖然并行進(jìn)位加法器的運(yùn)算速度快,但這是以增加硬件邏輯線路為代價(jià)的。兩種常用的分組進(jìn)位結(jié)構(gòu)是:,組內(nèi)并行、組間串行的進(jìn)位鏈。組內(nèi)并行、組間并行的進(jìn)位鏈。,.,4ALU舉例,SN74181框圖,(1)SN74181外特性,.,SN74181的一位單元,(2)SN74181內(nèi)部結(jié)構(gòu),表3-1一位ALU單元的輸入選擇邏輯,.,(3)SN74181功能表,.,(4)用SN74181構(gòu)成16位并行進(jìn)位ALU,.,3.2.2定點(diǎn)數(shù)運(yùn)算方法,數(shù)值運(yùn)算的核心是指加、減、乘、除四則算術(shù)。由于計(jì)算機(jī)中的數(shù)有定點(diǎn)和浮點(diǎn)兩種表示形式,因此相應(yīng)有定點(diǎn)數(shù)的運(yùn)算和浮點(diǎn)數(shù)的運(yùn)算。,1定點(diǎn)加減運(yùn)算,(1)原碼加減運(yùn)算,例如,加法指令指示做(+A)+(-B),由于一個(gè)操作數(shù)為負(fù),實(shí)際操作是做減法(+A)-(+B),結(jié)果符號(hào)與絕對(duì)值大的符號(hào)相同。同理,在減法指令中指示做(+A)-(-B),實(shí)際操作是做加法(+A)+(+B),結(jié)果與被減數(shù)符號(hào)相同。,(2)補(bǔ)碼加減運(yùn)算,補(bǔ)碼加法運(yùn)算,X+Y=X+Y,補(bǔ)碼減法運(yùn)算,XY=X+(-Y)=X+-Y,機(jī)器負(fù)數(shù),.,補(bǔ)碼運(yùn)算規(guī)則根據(jù)以上討論,可將補(bǔ)碼加減規(guī)則歸納如下:參加運(yùn)算的操作數(shù)用補(bǔ)碼表示。符號(hào)位參加運(yùn)算。若指令操作碼為加,則兩數(shù)直接相加;若操作碼為減,則將減數(shù)連同符號(hào)位一起變反加1后再與被減數(shù)相加。運(yùn)算結(jié)果用補(bǔ)碼表示。,【例3-3】X=00110110,Y=11001101,求X+Y,X-Y。,.,(3)溢出判別,在什么情況下可能產(chǎn)生溢出?,例:設(shè)定點(diǎn)整數(shù)字長(zhǎng)8位,補(bǔ)碼表示(最高位為符號(hào)位),表示范圍為-128127,運(yùn)算結(jié)果超出此范圍就發(fā)生溢出。,.,0001111100001101,(1)31+13=44,00101100,(2)-31+(-12)=-43,0011111101000010,(3)63+66=129,10000001,1100000110111110,(4)-63+(-66)=-129,01111111,正溢,負(fù)溢,1110000111110100,11010101,.,采用一個(gè)符號(hào)位判斷,溢出=S+AB,采用最高有效位的進(jìn)位判斷,溢出=C+C=CC,采用變形補(bǔ)碼判斷(雙符號(hào)位),用S、Sn分別表示結(jié)果最高符號(hào)位和第2符號(hào)位,溢出=SS,.,根據(jù)兩個(gè)符號(hào)位是否一致來(lái)判斷是否發(fā)生溢出,雙符號(hào)位的含義:00結(jié)果為正,無(wú)溢出01結(jié)果正溢出10結(jié)果負(fù)溢出11結(jié)果為負(fù),無(wú)溢出,.,2移位,移位操作按移位性質(zhì)可分為3種類型:邏輯移位、循環(huán)移位和算術(shù)移位。,移位示意圖,.,3定點(diǎn)數(shù)乘除運(yùn)算,(1)無(wú)符號(hào)整數(shù)一位乘法,計(jì)算機(jī)中的乘法運(yùn)算采用的方法是:將n位乘轉(zhuǎn)換為n次“累加與移位”,即每一步只求一位乘數(shù)所對(duì)應(yīng)的新部分積,并與原部分積作一次累加,然后右移一位。,.,右圖是無(wú)符號(hào)整數(shù)一位乘的算法流程圖。圖中使用了3個(gè)寄存器A、B和C。B用來(lái)存放被乘數(shù);C存放乘數(shù);A初值為0,然后存放部分積,最后存放乘積高位。由于乘數(shù)每乘一位該位代碼就不再使用,因此用A和C寄存器聯(lián)合右移以存放逐次增加的部分積,并且使每次操作依據(jù)的乘數(shù)位始終在C的最低位。乘法完成時(shí),A與C存放的是最后乘積,其中C的內(nèi)容是乘積的低位部分。,.,實(shí)現(xiàn)無(wú)符號(hào)整數(shù)一位乘法的硬件原理框圖如下圖所示。,圖中,用進(jìn)位觸發(fā)器Ca保存每次累加暫時(shí)產(chǎn)生的進(jìn)位,它的初值為0。在被乘數(shù)送入B、乘數(shù)送入C,A和Ca被置0后,控制邏輯控制乘法進(jìn)入第1個(gè)節(jié)拍,這時(shí)由乘數(shù)位C0產(chǎn)生“加B/不加”(不加相當(dāng)于加0)信號(hào),用以控制被乘數(shù)B是否與上次部分積相加產(chǎn)生本次部分積,然后Ca、A、C一起右移一位。重復(fù)n個(gè)節(jié)拍的操作后所得到的乘積存放在A和C中。,.,【例3-10】11011011的運(yùn)算過程如圖所示。,.,(2)無(wú)符號(hào)整數(shù)一位除法,在計(jì)算機(jī)中實(shí)現(xiàn)除法運(yùn)算,著重要解決如何判斷夠減與否的問題,可以用以下兩種辦法:用邏輯線路進(jìn)行比較判別。將被除數(shù)或余數(shù)減去除數(shù),如果夠減就執(zhí)行一次減法并商1,然后余數(shù)左移一位;如果不夠減就商0,同時(shí)余數(shù)左移一位。這種方法的缺點(diǎn)是增加硬件代價(jià)。直接做減法試探,不論是否夠減,都將被除數(shù)或余數(shù)減去除數(shù)。若所得余數(shù)符號(hào)位為0(即正數(shù))表明夠減,上商1;若余數(shù)符號(hào)位為1(即負(fù)數(shù))表明不夠減,由于已做了減法,因此上商0并加上除數(shù)(即恢復(fù)余數(shù));然后余數(shù)左移一位再做下一步。這就是恢復(fù)余數(shù)法。,.,通過分析恢復(fù)余數(shù)法可以發(fā)現(xiàn):當(dāng)余數(shù)A為正時(shí),上商1,下一步A左移一位再減除數(shù)B,相當(dāng)于執(zhí)行2A-B的運(yùn)算;若余數(shù)A為負(fù),上商0,并加除數(shù)以恢復(fù)余數(shù)即A+B,下一步左移一位減去除數(shù)B,這實(shí)際相當(dāng)于執(zhí)行2(A+B)-B=2A+B故在出現(xiàn)不夠減時(shí),并不需要恢復(fù)余數(shù),只是下一步要進(jìn)行2A+B的操作,因此稱為不恢復(fù)余數(shù)法或加減交替法。其算法流程如右圖所示。圖中使用3個(gè)寄存器A、B和C。運(yùn)算開始時(shí),n位除數(shù)存放在B中,2n位被除數(shù)存放在A和C寄存器中。除法完成后商放在C寄存器中,余數(shù)放在A寄存器中。從圖中可以看出,在重復(fù)n-1次操作后,如果A中的余數(shù)為負(fù),需要恢復(fù)余數(shù)做A+B。這一步是必需的,因?yàn)樽詈蟮募拇嫫鰽中應(yīng)獲得正確的正余數(shù)。,.,【例3-11】用不恢復(fù)余數(shù)法計(jì)算000010000011。,.,3.2.3浮點(diǎn)數(shù)運(yùn)算方法,1浮點(diǎn)數(shù)加減運(yùn)算,設(shè)有兩個(gè)浮點(diǎn)數(shù):X=Mx,Y=My。要實(shí)現(xiàn)X+Y的運(yùn)算,需要以下4個(gè)步驟才能完成。,對(duì)階操作對(duì)階的規(guī)則是:階碼小的數(shù)向階碼大的數(shù)對(duì)齊,實(shí)現(xiàn)尾數(shù)的加(減)運(yùn)算,結(jié)果規(guī)格化和判溢出,a左規(guī),b右規(guī),若運(yùn)算結(jié)果是非規(guī)格化的數(shù),例如尾數(shù)是11.1xx或00.0 xx形式,就需要將尾數(shù)左移,每左移一位,階碼減1,直至滿足規(guī)格化條件為止(即尾數(shù)最高有效位的真值為1,或尾數(shù)符與最高有效位不等),這個(gè)過程稱為左規(guī)。在左規(guī)的同時(shí)應(yīng)判斷結(jié)果是否會(huì)下溢,即階碼小于所能表示的最小負(fù)數(shù)。,若運(yùn)算結(jié)果尾數(shù)發(fā)生溢出,例如尾數(shù)為10.xxx或01.x

溫馨提示

  • 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)論