




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第2 2篇篇 計(jì)算機(jī)系統(tǒng)分層結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)分層結(jié)構(gòu) 在本篇用在本篇用3章分三個層次,即微體系結(jié)構(gòu)層、指章分三個層次,即微體系結(jié)構(gòu)層、指令系統(tǒng)層和匯編語言層討論計(jì)算機(jī)系統(tǒng)的組成。令系統(tǒng)層和匯編語言層討論計(jì)算機(jī)系統(tǒng)的組成。 微體系結(jié)構(gòu)層是具體的硬件層次,可看作是指令系微體系結(jié)構(gòu)層是具體的硬件層次,可看作是指令系統(tǒng)的解釋器。統(tǒng)的解釋器。 指令系統(tǒng)層是一個抽象的層次,其指令系統(tǒng)是一種指令系統(tǒng)層是一個抽象的層次,其指令系統(tǒng)是一種硬件和編譯器都可識別的機(jī)器語言。硬件和編譯器都可識別的機(jī)器語言。 匯編語言層提供的語言,是將機(jī)器語言匯編語言層提供的語言,是將機(jī)器語言“符號化符號化”以以便于人們理解。便于人們
2、理解。 用匯編語言編寫的程序先由匯編器翻譯成機(jī)器語用匯編語言編寫的程序先由匯編器翻譯成機(jī)器語言程序,再由微體系結(jié)構(gòu)層解釋執(zhí)行。言程序,再由微體系結(jié)構(gòu)層解釋執(zhí)行。第第3 3章章 微體系結(jié)構(gòu)層微體系結(jié)構(gòu)層cpucpu組織組織 在微體系結(jié)構(gòu)層在微體系結(jié)構(gòu)層,是從寄存器級分析是從寄存器級分析cpu的結(jié)的結(jié)構(gòu)和功能。本章主要內(nèi)容:構(gòu)和功能。本章主要內(nèi)容: cpu的基本組成和功能的基本組成和功能 算術(shù)邏輯部件算術(shù)邏輯部件alu和運(yùn)算方法和運(yùn)算方法 cpu模型機(jī)模型機(jī) 組合邏輯控制器原理組合邏輯控制器原理 微程序控制器原理微程序控制器原理 中央處理器中央處理器cpu的主要功能是從主存儲器中取的主要功能是從主
3、存儲器中取出指令、分析指令和執(zhí)行指令,即按指令控制計(jì)算出指令、分析指令和執(zhí)行指令,即按指令控制計(jì)算機(jī)各部件操作,并對數(shù)據(jù)進(jìn)行處理。機(jī)各部件操作,并對數(shù)據(jù)進(jìn)行處理。 3.1 cpu3.1 cpu的組成和功能的組成和功能3.1.1 cpu3.1.1 cpu的組成的組成cpucpu通常由以下幾部分構(gòu)成通常由以下幾部分構(gòu)成: 控制器控制器 ; 算術(shù)邏輯部件算術(shù)邏輯部件alu;alu; 各種寄存器各種寄存器; ; cpucpu內(nèi)部總線。內(nèi)部總線。cpu的基本組成框圖 1 1alualu部件與寄存器部件與寄存器alu框圖 (1 1)alualu部件部件 alu alu的功能是實(shí)現(xiàn)數(shù)據(jù)的的功能是實(shí)現(xiàn)數(shù)據(jù)的算
4、算術(shù)與邏輯運(yùn)算術(shù)與邏輯運(yùn)算。 alu alu的輸入有兩個端口,分別接收參加運(yùn)算的兩個操作數(shù),的輸入有兩個端口,分別接收參加運(yùn)算的兩個操作數(shù),通常它們來自通常它們來自cpucpu中的通用寄存器或中的通用寄存器或alualu總線??偩€。alualu的輸出取決于對其功能的控制,當(dāng)控制功能選擇加、的輸出取決于對其功能的控制,當(dāng)控制功能選擇加、減、與、或等運(yùn)算功能之一時,其輸出結(jié)果將為對應(yīng)的和、減、與、或等運(yùn)算功能之一時,其輸出結(jié)果將為對應(yīng)的和、差、與值、或值等。差、與值、或值等。(2 2)寄存器)寄存器 cpu cpu 中的寄存器包括存放中的寄存器包括存放控制信息控制信息的寄存器,如的寄存器,如指令寄
5、存指令寄存器器、程序計(jì)數(shù)器程序計(jì)數(shù)器和和狀態(tài)字寄存器狀態(tài)字寄存器;以及存放所;以及存放所處理數(shù)據(jù)處理數(shù)據(jù)的寄的寄存器,如存器,如通用寄存器通用寄存器和和暫存器暫存器。 通用寄存器通用寄存器 通常通常cpucpu內(nèi)部設(shè)置有一組寄存器,每個寄存器都可以承擔(dān)多種內(nèi)部設(shè)置有一組寄存器,每個寄存器都可以承擔(dān)多種用途,因此習(xí)慣上稱為通用寄存器。用途,因此習(xí)慣上稱為通用寄存器。 通用寄存器本身在邏輯上只具有接收信息、存儲信息和發(fā)送信通用寄存器本身在邏輯上只具有接收信息、存儲信息和發(fā)送信息的功能。但通過編程以及與息的功能。但通過編程以及與alualu的配合可以實(shí)現(xiàn)多種功能,如它的配合可以實(shí)現(xiàn)多種功能,如它們可
6、為們可為alualu提供操作數(shù)并存放運(yùn)算結(jié)果,也可用作變址寄存器、地提供操作數(shù)并存放運(yùn)算結(jié)果,也可用作變址寄存器、地址指針和計(jì)數(shù)器等。址指針和計(jì)數(shù)器等。 暫存器 在在cpucpu中一般要設(shè)置暫存器,主要是為了暫存從主存儲器讀中一般要設(shè)置暫存器,主要是為了暫存從主存儲器讀出的數(shù)據(jù)出的數(shù)據(jù),暫存器沒有寄存器號,因此不能直接編程訪問它們。暫存器沒有寄存器號,因此不能直接編程訪問它們。 指令寄存器寄存器irir(i instruction nstruction r registeregister) 用來存放當(dāng)前正在執(zhí)行的一條指令。執(zhí)行指令時,需根據(jù)用來存放當(dāng)前正在執(zhí)行的一條指令。執(zhí)行指令時,需根據(jù)pc
7、中的指令地址從主存讀取指令送到中的指令地址從主存讀取指令送到ir中。中。 程序計(jì)數(shù)器程序計(jì)數(shù)器pcpc(p program rogram c counterounter) 用以存放當(dāng)前或下一條用以存放當(dāng)前或下一條指令指令在主存中的在主存中的地址地址,因此又稱為指,因此又稱為指令計(jì)數(shù)器或指令指針令計(jì)數(shù)器或指令指針ipip(instruction pointerinstruction pointer)。)。 狀態(tài)寄存器狀態(tài)寄存器 cpu cpu內(nèi)部設(shè)置的狀態(tài)寄存器,用來存放當(dāng)前程序的內(nèi)部設(shè)置的狀態(tài)寄存器,用來存放當(dāng)前程序的運(yùn)行狀態(tài)運(yùn)行狀態(tài)和和工作方式工作方式,其內(nèi)容稱為程序狀態(tài)字,其內(nèi)容稱為程序狀
8、態(tài)字pswpsw(program state wordprogram state word),),pswpsw是參與控制程序執(zhí)行的重要依據(jù)。是參與控制程序執(zhí)行的重要依據(jù)。 2 2總線總線 所謂總線是一組能為多個部件所謂總線是一組能為多個部件分時共享分時共享的公共信息傳送線路,的公共信息傳送線路,它分時接收各部件送來的信息,并發(fā)送信息到有關(guān)部件。它分時接收各部件送來的信息,并發(fā)送信息到有關(guān)部件。 由于多個部件連接在一組公共總線上,可能會出現(xiàn)多個部件由于多個部件連接在一組公共總線上,可能會出現(xiàn)多個部件爭爭用用總線,因此需設(shè)置總線控制邏輯以解決總線控制權(quán)的有關(guān)問題。總線,因此需設(shè)置總線控制邏輯以解決
9、總線控制權(quán)的有關(guān)問題。 cpucpu內(nèi)部總線內(nèi)部總線用來連接用來連接cpucpu內(nèi)的各寄存器與內(nèi)的各寄存器與alualu ;總線分類: 系統(tǒng)總線系統(tǒng)總線用來連接用來連接cpucpu、主存儲器與、主存儲器與i/oi/o接口,它通常包括接口,它通常包括三組:三組:數(shù)據(jù)數(shù)據(jù)總線、總線、地址地址總線和總線和控制控制總線??偩€。按總線傳送的方向可將總線分為按總線傳送的方向可將總線分為單向單向總線和總線和雙向雙向總線??偩€。3 3cpucpu內(nèi)部數(shù)據(jù)通路內(nèi)部數(shù)據(jù)通路 cpu cpu內(nèi)部寄存器及內(nèi)部寄存器及alualu之間通常用總線方式傳送數(shù)據(jù)信息。之間通常用總線方式傳送數(shù)據(jù)信息。介紹介紹兩種常見的結(jié)構(gòu)。兩
10、種常見的結(jié)構(gòu)。 (1 1)單總線單總線數(shù)據(jù)通路結(jié)構(gòu)數(shù)據(jù)通路結(jié)構(gòu)采用單總線結(jié)構(gòu)的采用單總線結(jié)構(gòu)的cpucpu數(shù)據(jù)通路數(shù)據(jù)通路 cpu cpu數(shù)據(jù)通路結(jié)構(gòu)只采用數(shù)據(jù)通路結(jié)構(gòu)只采用一組內(nèi)總線一組內(nèi)總線,它是,它是雙向雙向總線。通用總線。通用寄存器組、其他寄存器和寄存器組、其他寄存器和alualu均連在這組內(nèi)總線上。均連在這組內(nèi)總線上。 cpu cpu內(nèi)各寄存器間的數(shù)據(jù)傳送必須通過內(nèi)總線進(jìn)行,內(nèi)各寄存器間的數(shù)據(jù)傳送必須通過內(nèi)總線進(jìn)行,alualu通過內(nèi)通過內(nèi)總線得到操作數(shù),其運(yùn)算結(jié)果也經(jīng)內(nèi)總線輸出??偩€得到操作數(shù),其運(yùn)算結(jié)果也經(jīng)內(nèi)總線輸出。 (2 2)多組內(nèi)總線結(jié)構(gòu))多組內(nèi)總線結(jié)構(gòu)采用三總線結(jié)構(gòu)的采用
11、三總線結(jié)構(gòu)的cpucpu數(shù)據(jù)通路數(shù)據(jù)通路 為了提高為了提高cpucpu的工作速度,一種方法是在的工作速度,一種方法是在cpucpu內(nèi)部設(shè)置多組內(nèi)總內(nèi)部設(shè)置多組內(nèi)總線,使幾個數(shù)據(jù)傳送操作能夠同時進(jìn)行,即實(shí)現(xiàn)部分并行操作。線,使幾個數(shù)據(jù)傳送操作能夠同時進(jìn)行,即實(shí)現(xiàn)部分并行操作。3.1.2 3.1.2 指令執(zhí)行過程指令執(zhí)行過程 cpu cpu的主要功能就是的主要功能就是執(zhí)行存放在存儲器中的指令序列執(zhí)行存放在存儲器中的指令序列,即,即程序。程序。1 1指令的分段執(zhí)行過程指令的分段執(zhí)行過程 任何一條指令的執(zhí)行都要經(jīng)過任何一條指令的執(zhí)行都要經(jīng)過讀取讀取指令、指令、分析分析指令和指令和執(zhí)行執(zhí)行指指令令3 3
12、個階段。個階段。 執(zhí)行階段還可細(xì)分執(zhí)行階段還可細(xì)分為:(1 1)取指令)取指令(2 2)分析指令)分析指令(3 3)執(zhí)行指令)執(zhí)行指令 取操作數(shù)取操作數(shù) 執(zhí)行操作執(zhí)行操作 形成下一條指令地址形成下一條指令地址 此外,此外,cpucpu還應(yīng)該對運(yùn)行過程中出現(xiàn)的某些還應(yīng)該對運(yùn)行過程中出現(xiàn)的某些異常情況異常情況或或輸入輸入/ /輸出請求輸出請求進(jìn)行處理進(jìn)行處理 。2 2指令之間的銜接方式指令之間的銜接方式 指令之間的銜接方式有兩種:指令之間的銜接方式有兩種:串行串行的順序安排方式與的順序安排方式與并行并行的的重疊處理方式。重疊處理方式。 3.1.3 3.1.3 時序控制方式時序控制方式 執(zhí)行一條指令
13、的過程可分為幾個階段,而每一階段又分為若干執(zhí)行一條指令的過程可分為幾個階段,而每一階段又分為若干步基本操作,每一步操作則由控制器產(chǎn)生一些相應(yīng)的控制信號實(shí)現(xiàn)。步基本操作,每一步操作則由控制器產(chǎn)生一些相應(yīng)的控制信號實(shí)現(xiàn)。因此,每條指令都可分解為一個控制信號序列,指令的執(zhí)行過程就因此,每條指令都可分解為一個控制信號序列,指令的執(zhí)行過程就是依次執(zhí)行一個確定的是依次執(zhí)行一個確定的控制信號序列控制信號序列的過程。的過程。 時序控制方式時序控制方式就是指微操作與時序信號之間采取何種關(guān)系,就是指微操作與時序信號之間采取何種關(guān)系,它不僅直接決定時序信號的產(chǎn)生,也影響到控制器及其他部件的組它不僅直接決定時序信號的
14、產(chǎn)生,也影響到控制器及其他部件的組成,以及指令的執(zhí)行速度。成,以及指令的執(zhí)行速度。 1 1同步控制方式同步控制方式 同步控制方式是指各項(xiàng)操作由同步控制方式是指各項(xiàng)操作由統(tǒng)一統(tǒng)一的時序信號進(jìn)行同步控制。的時序信號進(jìn)行同步控制。 同步控制的基本特征是將操作時間分為若干長度相同的同步控制的基本特征是將操作時間分為若干長度相同的時鐘時鐘周期周期(也稱為節(jié)拍),要求在一個或幾個時鐘周期內(nèi)完成各個(也稱為節(jié)拍),要求在一個或幾個時鐘周期內(nèi)完成各個微微操作操作。在在cpucpu內(nèi)部通常是采用同步控制方式內(nèi)部通常是采用同步控制方式 。 同步控制方式的優(yōu)點(diǎn)是時序關(guān)系簡單,結(jié)構(gòu)上易于集中,相應(yīng)同步控制方式的優(yōu)點(diǎn)是
15、時序關(guān)系簡單,結(jié)構(gòu)上易于集中,相應(yīng)的設(shè)計(jì)和實(shí)現(xiàn)比較方便。的設(shè)計(jì)和實(shí)現(xiàn)比較方便。2 2同步控制方式的多級時序系統(tǒng)同步控制方式的多級時序系統(tǒng)(1 1)多級時序的概念)多級時序的概念 在同步控制方式中,通常將時序信號劃分為幾級(其中包括指在同步控制方式中,通常將時序信號劃分為幾級(其中包括指令周期),稱為多級時序。令周期),稱為多級時序。 機(jī)器周期機(jī)器周期 節(jié)拍(時鐘周期)節(jié)拍(時鐘周期) 時鐘脈沖信號時鐘脈沖信號(2 2)多級時序信號之間的關(guān)系)多級時序信號之間的關(guān)系三級時序信號之間的關(guān)系三級時序信號之間的關(guān)系 (3 3)時序系統(tǒng)的組成)時序系統(tǒng)的組成時序系統(tǒng)框圖時序系統(tǒng)框圖 3.1.4 3.1.
16、4 指令流水線指令流水線 兩段指令流水線兩段指令流水線 為獲得進(jìn)一步的加速,流水線可以分成更多的階段。為獲得進(jìn)一步的加速,流水線可以分成更多的階段。 取指令取指令計(jì)算操作數(shù)地計(jì)算操作數(shù)地址址譯碼指令譯碼指令寫操作數(shù)寫操作數(shù)取操作數(shù)取操作數(shù)執(zhí)行指令執(zhí)行指令指令流水線操作時序圖指令流水線操作時序圖 3.2 3.2 算術(shù)邏輯部件算術(shù)邏輯部件alualu和運(yùn)算方法和運(yùn)算方法 算術(shù)邏輯部件算術(shù)邏輯部件alualu主要完成對二進(jìn)制代碼的定點(diǎn)主要完成對二進(jìn)制代碼的定點(diǎn)算術(shù)運(yùn)算算術(shù)運(yùn)算和和邏輯運(yùn)算邏輯運(yùn)算。 3.2.1 3.2.1 算術(shù)邏輯部件算術(shù)邏輯部件alualu算術(shù)邏輯部件算術(shù)邏輯部件alualu的硬件
17、實(shí)現(xiàn)涉及三個問題:的硬件實(shí)現(xiàn)涉及三個問題:(1 1)如何構(gòu)成一位二進(jìn)制加法單元,即全加器。)如何構(gòu)成一位二進(jìn)制加法單元,即全加器。(2 2)n n位全加器連同進(jìn)位信號傳送邏輯,構(gòu)成一個位全加器連同進(jìn)位信號傳送邏輯,構(gòu)成一個n n位并行加法器。位并行加法器。(3 3)以加法器為核心,通過輸入選擇邏輯擴(kuò)展為具有多種算術(shù)和邏)以加法器為核心,通過輸入選擇邏輯擴(kuò)展為具有多種算術(shù)和邏輯運(yùn)算功能的輯運(yùn)算功能的alualu。1 1全加器全加器 用半加器構(gòu)成的全加器用半加器構(gòu)成的全加器 iiiicbaiiiiiic)ba(bac1和和進(jìn)位進(jìn)位目前,廣泛采用半加器構(gòu)成全加器。目前,廣泛采用半加器構(gòu)成全加器。 2
18、 2并行加法器與進(jìn)位鏈結(jié)構(gòu)并行加法器與進(jìn)位鏈結(jié)構(gòu) 用用n n位全加器實(shí)現(xiàn)兩個位全加器實(shí)現(xiàn)兩個n n位操作數(shù)各位同時相加,這種加法器稱位操作數(shù)各位同時相加,這種加法器稱為并行加法器。并行加法器中全加器的位數(shù)與操作數(shù)的位數(shù)相同。為并行加法器。并行加法器中全加器的位數(shù)與操作數(shù)的位數(shù)相同。(1 1)基本進(jìn)位公式)基本進(jìn)位公式設(shè)相加的兩個設(shè)相加的兩個n n位操作數(shù)為位操作數(shù)為: :021aaaaainn021bbbbinnbiiiiii)cb(abac1進(jìn)位信號的邏輯式 可以看出可以看出c c 由兩部分組成:由兩部分組成: 1iiiiii)cb(aba與我們定義兩個輔助函數(shù):我們定義兩個輔助函數(shù): ii
19、ibag iiibap進(jìn)位產(chǎn)進(jìn)位產(chǎn)生函數(shù)生函數(shù)進(jìn)位傳進(jìn)位傳遞函數(shù)遞函數(shù)因此有:因此有:iiiicpgc1(2 2)并行加法器的串行進(jìn)位)并行加法器的串行進(jìn)位 采用串行進(jìn)位的并行加法器,是將采用串行進(jìn)位的并行加法器,是將n n個全加器串接起來,就可個全加器串接起來,就可進(jìn)行兩個進(jìn)行兩個n n位數(shù)相加。位數(shù)相加。 11111111111111112000000001)cb(abacpgc)cb(abacpgc)cb(abacpgcnnnnnnnnn 由于串行進(jìn)位的延遲時間較長,所以在由于串行進(jìn)位的延遲時間較長,所以在alualu中很少采用純串行中很少采用純串行進(jìn)位的方式。但這種方式可節(jié)省器件,成本
20、低,在分組進(jìn)位方式中進(jìn)位的方式。但這種方式可節(jié)省器件,成本低,在分組進(jìn)位方式中局部采用有時也是可取的。局部采用有時也是可取的。 3 3并行進(jìn)位(先行進(jìn)位、同時進(jìn)位)并行進(jìn)位(先行進(jìn)位、同時進(jìn)位) 為了提高并行加法器的運(yùn)算速度,就必須解決進(jìn)位傳遞的問題。為了提高并行加法器的運(yùn)算速度,就必須解決進(jìn)位傳遞的問題。方法是讓各級進(jìn)位信號同時形成,而不是串行形成。方法是讓各級進(jìn)位信號同時形成,而不是串行形成。00123012312323333340012012122222300101111120001cppppgpppgppgpgcpgccpppgppgpgcpgccppgpgcpgccpgc 這種同時形
21、成各位進(jìn)位的方法稱為這種同時形成各位進(jìn)位的方法稱為并行進(jìn)位并行進(jìn)位或或先行進(jìn)位先行進(jìn)位,又稱為又稱為同時進(jìn)位同時進(jìn)位。 雖然并行進(jìn)位加法器的運(yùn)算速度快,但這是以增加硬件邏輯線雖然并行進(jìn)位加法器的運(yùn)算速度快,但這是以增加硬件邏輯線路為代價的。兩種常用的路為代價的。兩種常用的分組進(jìn)位分組進(jìn)位結(jié)構(gòu)是:結(jié)構(gòu)是:組內(nèi)并行、組間串行的進(jìn)位鏈。組內(nèi)并行、組間串行的進(jìn)位鏈。組內(nèi)并行、組間并行的進(jìn)位鏈。組內(nèi)并行、組間并行的進(jìn)位鏈。4 4alualu舉例舉例sn74181sn74181框圖框圖 (1 1)sn74181sn74181外特性外特性sn74181sn74181的一位單元的一位單元 (2 2)sn741
22、81sn74181內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)s3s2xis1s0yi0 010 0ai0 1ai+0 1aibi1 0ai+bi1 0ai1 1ai1 10表表3-1 一位一位alu單元的輸入選擇邏輯單元的輸入選擇邏輯 ibibabaabba abba bbaba ba 工作方式選工作方式選擇擇s3s2s1s0邏輯運(yùn)算邏輯運(yùn)算m=1算術(shù)運(yùn)算算術(shù)運(yùn)算m=0工作方式選工作方式選擇擇s3s2s1s0邏輯運(yùn)算邏輯運(yùn)算m=1算術(shù)運(yùn)算算術(shù)運(yùn)算m=00000a減減11000a加(加(a+b)0001ab減減11001a加加b0010+ba 減減11010bab加(加(a+b)0011邏輯邏輯1全全11011a+ba+
23、b0100a加(加(a+b)1100邏輯邏輯0全全00101ab加(加(a+b)1101ab加加a0110a加加b b1110abab加加a0111a+b1111aa(3 3)sn74181sn74181功能表功能表(4 4)用)用sn74181sn74181構(gòu)成構(gòu)成1616位并行進(jìn)位位并行進(jìn)位alualu3.2.2 3.2.2 定點(diǎn)數(shù)運(yùn)算方法定點(diǎn)數(shù)運(yùn)算方法 數(shù)值運(yùn)算的核心是指加、減、乘、除四則算術(shù)。由于計(jì)算機(jī)中數(shù)值運(yùn)算的核心是指加、減、乘、除四則算術(shù)。由于計(jì)算機(jī)中的數(shù)有定點(diǎn)和浮點(diǎn)兩種表示形式,因此相應(yīng)有的數(shù)有定點(diǎn)和浮點(diǎn)兩種表示形式,因此相應(yīng)有定點(diǎn)數(shù)定點(diǎn)數(shù)的運(yùn)算和的運(yùn)算和浮浮點(diǎn)數(shù)點(diǎn)數(shù)的運(yùn)算。的
24、運(yùn)算。1 1定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算(1 1)原碼加減運(yùn)算)原碼加減運(yùn)算 例如,加法指令指示做(例如,加法指令指示做(+a+a)+ +(-b-b),由于一個操作數(shù)為負(fù),),由于一個操作數(shù)為負(fù),實(shí)際操作是做減法(實(shí)際操作是做減法(+a+a)- -(+b+b),結(jié)果符號與絕對值大的符號相),結(jié)果符號與絕對值大的符號相同。同理,在減法指令中指示做(同。同理,在減法指令中指示做(+a+a)- -(-b-b),實(shí)際操作是做加),實(shí)際操作是做加法(法(+a+a)+ +(+b+b),結(jié)果與被減數(shù)符號相同。),結(jié)果與被減數(shù)符號相同。 (2 2)補(bǔ)碼加減運(yùn)算)補(bǔ)碼加減運(yùn)算 補(bǔ)碼加法運(yùn)算補(bǔ)碼加法運(yùn)算 x x +
25、+y y = =x x + +y y 補(bǔ)補(bǔ)補(bǔ) 補(bǔ)碼減法運(yùn)算補(bǔ)碼減法運(yùn)算 x xy y = =x x +(-+(-y y ) =) =x x +- +-y y 補(bǔ)補(bǔ)補(bǔ)補(bǔ)機(jī)器負(fù)數(shù)機(jī)器負(fù)數(shù) 補(bǔ)碼運(yùn)算規(guī)則補(bǔ)碼運(yùn)算規(guī)則 根據(jù)以上討論,可將補(bǔ)碼加減規(guī)則歸納根據(jù)以上討論,可將補(bǔ)碼加減規(guī)則歸納如下:如下: 參加運(yùn)算的操作數(shù)用補(bǔ)碼表示。參加運(yùn)算的操作數(shù)用補(bǔ)碼表示。 符號位參加運(yùn)算。符號位參加運(yùn)算。 若指令操作碼為加,則兩數(shù)直接相加;若操作碼為減,則將減數(shù)連同若指令操作碼為加,則兩數(shù)直接相加;若操作碼為減,則將減數(shù)連同符號位一起變反加符號位一起變反加1 1后再與被減數(shù)相加。后再與被減數(shù)相加。 運(yùn)算結(jié)果用補(bǔ)碼表示。
26、運(yùn)算結(jié)果用補(bǔ)碼表示?!纠纠?-33-3】 x x = 00110110 = 00110110, y y =11001101 =11001101,求,求 x x+ +y y , x x- -y y 。補(bǔ)補(bǔ)補(bǔ)補(bǔ)(3 3)溢出判別)溢出判別在什么情況下可能產(chǎn)生溢出在什么情況下可能產(chǎn)生溢出?例:設(shè)定點(diǎn)整數(shù)字長例:設(shè)定點(diǎn)整數(shù)字長8 8位,補(bǔ)碼表示(最高位位,補(bǔ)碼表示(最高位為符號位),表示范圍為為符號位),表示范圍為-128-128 127127,運(yùn)算結(jié)果,運(yùn)算結(jié)果超出此范圍就發(fā)生溢出。超出此范圍就發(fā)生溢出。 0 00111110 0001101(1)31 +13=44 0 0101100 (2)-3
27、1 +(-12)=-430 01111110 1000010(3) 63+66=1291 0000001 1 10000011 0111110(4) -63+(-66)=-1290 1111111 正溢正溢負(fù)溢負(fù)溢1 11000011 11101001 1010101 采用一個符號位判斷采用一個符號位判斷溢出溢出= s +a b = s +a b nanbnsnnn 采用最高有效位的進(jìn)位判斷采用最高有效位的進(jìn)位判斷溢出溢出= c +c =c c = c +c =c c 1nncn1cnn1n 采用變形補(bǔ)碼判斷采用變形補(bǔ)碼判斷( (雙符號位雙符號位) )用用s s 、s sn n分別表示結(jié)果最高
28、符號位和第分別表示結(jié)果最高符號位和第2 2符號位符號位 1n溢出溢出=s s =s s 1nn00 011111100 1000010(3) 63+66=12901 0000001 11 100000111 0111110(4) -63+(-66)=-12910 1111111 根據(jù)兩個符號位是否一致來判斷是否發(fā)生溢出根據(jù)兩個符號位是否一致來判斷是否發(fā)生溢出雙符號位的含義:雙符號位的含義:00 00 結(jié)果為正,無溢出結(jié)果為正,無溢出01 01 結(jié)果正溢出結(jié)果正溢出10 10 結(jié)果負(fù)溢出結(jié)果負(fù)溢出11 11 結(jié)果為負(fù),無溢出結(jié)果為負(fù),無溢出2 2移位移位 移位操作按移位性質(zhì)可分為移位操作按移位性
29、質(zhì)可分為3 3種類型:種類型:邏輯移位邏輯移位、循環(huán)移位循環(huán)移位和和算術(shù)移位算術(shù)移位。 移位示意圖移位示意圖 3 3定點(diǎn)數(shù)乘除運(yùn)算定點(diǎn)數(shù)乘除運(yùn)算(1 1)無符號整數(shù)一位乘法)無符號整數(shù)一位乘法 計(jì)算機(jī)中的乘法運(yùn)算采用的方法是:將計(jì)算機(jī)中的乘法運(yùn)算采用的方法是:將n位乘轉(zhuǎn)換為位乘轉(zhuǎn)換為n次次“累加累加與移位與移位”,即每一步只求一位乘數(shù)所對應(yīng)的新部分積,并與原部分,即每一步只求一位乘數(shù)所對應(yīng)的新部分積,并與原部分積作一次累加,然后右移一位。積作一次累加,然后右移一位。 右圖是無符號整數(shù)一位乘的算法右圖是無符號整數(shù)一位乘的算法流程圖。圖中使用了流程圖。圖中使用了3個寄存器個寄存器a、b和和c。 b
30、用來存放被乘數(shù);用來存放被乘數(shù); c存放乘數(shù);存放乘數(shù); a初值為初值為0,然后存放部分積,然后存放部分積,最后最后存放乘積高位存放乘積高位。 由于乘數(shù)每乘一位該位代碼就不再由于乘數(shù)每乘一位該位代碼就不再使用,因此用使用,因此用a和和c寄存器聯(lián)合右移以寄存器聯(lián)合右移以存放逐次增加的部分積,并且使每次存放逐次增加的部分積,并且使每次操作依據(jù)的乘數(shù)位始終在操作依據(jù)的乘數(shù)位始終在c的最低位。的最低位。乘法完成時,乘法完成時,a與與c存放的是最后乘積,存放的是最后乘積,其中其中c的內(nèi)容是乘積的低位部分的內(nèi)容是乘積的低位部分。 實(shí)現(xiàn)無符號整數(shù)一位乘法的硬件原理框圖如下圖所示。實(shí)現(xiàn)無符號整數(shù)一位乘法的硬件
31、原理框圖如下圖所示。 圖中,用進(jìn)位觸發(fā)器圖中,用進(jìn)位觸發(fā)器ca保存每次累加暫時產(chǎn)生的進(jìn)位,它的初值為保存每次累加暫時產(chǎn)生的進(jìn)位,它的初值為0。在被。在被乘數(shù)送入乘數(shù)送入b、乘數(shù)送入、乘數(shù)送入c,a和和ca被置被置0后,控制邏輯控制乘法進(jìn)入第后,控制邏輯控制乘法進(jìn)入第1個節(jié)拍,個節(jié)拍,這時由乘數(shù)位這時由乘數(shù)位c0產(chǎn)生產(chǎn)生“加加b/不加不加”(不加相當(dāng)于加(不加相當(dāng)于加0)信號,用以控制被乘數(shù))信號,用以控制被乘數(shù)b是否與上次部分積相加產(chǎn)生本次部分積,然后是否與上次部分積相加產(chǎn)生本次部分積,然后ca、a、c一起右移一位。重復(fù)一起右移一位。重復(fù)n個個節(jié)拍的操作后所得到的乘積存放在節(jié)拍的操作后所得到的
32、乘積存放在a和和c中。中?!纠纠?-103-10】 11011101 10111011的運(yùn)算過程如圖所示。的運(yùn)算過程如圖所示。(2 2)無符號整數(shù)一位除法)無符號整數(shù)一位除法 在計(jì)算機(jī)中實(shí)現(xiàn)除法運(yùn)算,著重要解決如何判斷夠減與否的問題,在計(jì)算機(jī)中實(shí)現(xiàn)除法運(yùn)算,著重要解決如何判斷夠減與否的問題,可以用以下兩種辦法:可以用以下兩種辦法: 用邏輯線路進(jìn)行比較判別。將被除數(shù)或余數(shù)減去除數(shù),如果夠用邏輯線路進(jìn)行比較判別。將被除數(shù)或余數(shù)減去除數(shù),如果夠減就執(zhí)行一次減法并商減就執(zhí)行一次減法并商1 1,然后余數(shù)左移一位;如果不夠減就商,然后余數(shù)左移一位;如果不夠減就商0 0,同時余數(shù)左移一位。這種方法的缺點(diǎn)是
33、增加硬件代價。同時余數(shù)左移一位。這種方法的缺點(diǎn)是增加硬件代價。 直接做減法試探,不論是否夠減,都將被除數(shù)或余數(shù)減去除數(shù)。直接做減法試探,不論是否夠減,都將被除數(shù)或余數(shù)減去除數(shù)。若所得余數(shù)符號位為若所得余數(shù)符號位為0(即正數(shù))表明夠減,上商(即正數(shù))表明夠減,上商1;若余數(shù)符號位;若余數(shù)符號位為為1(即負(fù)數(shù))表明不夠減,由于已做了減法,因此上商(即負(fù)數(shù))表明不夠減,由于已做了減法,因此上商0并加上除并加上除數(shù)(即恢復(fù)余數(shù));然后余數(shù)左移一位再做下一步。這就是數(shù)(即恢復(fù)余數(shù));然后余數(shù)左移一位再做下一步。這就是恢復(fù)余恢復(fù)余數(shù)法數(shù)法。 通過分析恢復(fù)余數(shù)法可以發(fā)現(xiàn):通過分析恢復(fù)余數(shù)法可以發(fā)現(xiàn):當(dāng)余數(shù)當(dāng)
34、余數(shù)a a為正時,上商為正時,上商1 1,下一步,下一步a a左移左移一位再減除數(shù)一位再減除數(shù)b b,相當(dāng)于執(zhí)行,相當(dāng)于執(zhí)行2a-b2a-b的運(yùn)的運(yùn)算;算;若余數(shù)若余數(shù)a a為負(fù),上商為負(fù),上商0 0,并加除數(shù)以恢復(fù),并加除數(shù)以恢復(fù)余數(shù)即余數(shù)即a+ba+b,下一步左移一位減去除數(shù),下一步左移一位減去除數(shù)b b,這實(shí)際相當(dāng)于執(zhí)行這實(shí)際相當(dāng)于執(zhí)行 2 2(a+ba+b)- b = 2a+b- b = 2a+b故在出現(xiàn)不夠減時,并不需要恢復(fù)余數(shù),故在出現(xiàn)不夠減時,并不需要恢復(fù)余數(shù),只是下一步要進(jìn)行只是下一步要進(jìn)行2a+b2a+b的操作,因此稱的操作,因此稱為為不恢復(fù)余數(shù)法不恢復(fù)余數(shù)法或加減交替法。其
35、算法或加減交替法。其算法流程如右圖所示。流程如右圖所示。圖中使用圖中使用3 3個寄存器個寄存器a a、b b和和c c。運(yùn)算開始。運(yùn)算開始時,時,n n位除數(shù)存放在位除數(shù)存放在b b中,中,2 2n n位被除數(shù)存位被除數(shù)存放在放在a a和和c c寄存器中。除法完成后寄存器中。除法完成后商放在商放在c c寄存器中,余數(shù)放在寄存器中,余數(shù)放在a a寄存器中寄存器中。從圖中可以看出,在重復(fù)從圖中可以看出,在重復(fù)n-1次操作后次操作后,如果,如果a中的余數(shù)為負(fù),需要恢復(fù)余數(shù)中的余數(shù)為負(fù),需要恢復(fù)余數(shù)做做a+b。這一步是必需的,因?yàn)樽詈蟮?。這一步是必需的,因?yàn)樽詈蟮募拇嫫骷拇嫫鱝中應(yīng)獲得正確的正余數(shù)。中
36、應(yīng)獲得正確的正余數(shù)。 【例【例3-113-11】 用不恢復(fù)余數(shù)法計(jì)算用不恢復(fù)余數(shù)法計(jì)算000010000000100000110011。解:解:a a、c c:0000100000001000; b b:00110011; b+1b+1:11011101。其運(yùn)算過程如右圖。其運(yùn)算過程如右圖。 3.2.3 3.2.3 浮點(diǎn)數(shù)運(yùn)算方法浮點(diǎn)數(shù)運(yùn)算方法1 1浮點(diǎn)數(shù)加減運(yùn)算浮點(diǎn)數(shù)加減運(yùn)算 設(shè)有兩個浮點(diǎn)數(shù):設(shè)有兩個浮點(diǎn)數(shù):x x= =mxmx ,y y= =mymy 。要實(shí)現(xiàn)。要實(shí)現(xiàn)x x + +y y的運(yùn)算,的運(yùn)算,需要以下需要以下4 4個步驟才能完成。個步驟才能完成。xe2ye2 對階操作對階操作 對
37、階的規(guī)則是對階的規(guī)則是:階碼小的數(shù)向階碼大的數(shù)對齊階碼小的數(shù)向階碼大的數(shù)對齊 實(shí)現(xiàn)尾數(shù)的加(減)運(yùn)算實(shí)現(xiàn)尾數(shù)的加(減)運(yùn)算 結(jié)果規(guī)格化和判溢出結(jié)果規(guī)格化和判溢出a左規(guī)左規(guī) b右規(guī)右規(guī) 若運(yùn)算結(jié)果是非規(guī)格化的數(shù),例如尾若運(yùn)算結(jié)果是非規(guī)格化的數(shù),例如尾數(shù)是數(shù)是11.1xx11.1xx或或00.0 xx00.0 xx形式,就需形式,就需要將尾數(shù)左移,每左移一位,階碼減要將尾數(shù)左移,每左移一位,階碼減1 1,直至滿足規(guī)格化條件為止(即尾,直至滿足規(guī)格化條件為止(即尾數(shù)最高有效位的真值為數(shù)最高有效位的真值為1 1,或尾數(shù)符,或尾數(shù)符與最高有效位不等),這個過程稱為與最高有效位不等),這個過程稱為左規(guī)。在左規(guī)的同時應(yīng)判斷結(jié)果是否左規(guī)。在左規(guī)的同時應(yīng)判斷結(jié)果是否會下溢,即階碼小于所能表示的最小會下溢,即階碼小于所能表示的最小負(fù)數(shù)。負(fù)數(shù)。若運(yùn)算結(jié)果尾數(shù)發(fā)生溢出,例如尾數(shù)若運(yùn)算結(jié)果尾數(shù)發(fā)生溢出,例如尾數(shù)為為10.xxx10.xxx或或01.xxx01.xxx形式,這并不形式,這并不表明浮點(diǎn)結(jié)果會溢出,此時需調(diào)整階表明浮點(diǎn)結(jié)果會溢出,此時需調(diào)整階碼,將尾數(shù)右移一位,階碼加碼,將尾數(shù)右移一位,階碼加1 1,稱,稱為右規(guī)。右規(guī)時,應(yīng)判斷結(jié)果是否會為右規(guī)。右規(guī)時,應(yīng)判斷結(jié)果是否會上溢,即階碼大于所能
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黨章黨紀(jì)黨史黨建知識競賽多項(xiàng)選擇題庫及答案(共210道題)
- 2025年激光掃描繪圖機(jī)項(xiàng)目發(fā)展計(jì)劃
- 診所裝修環(huán)保保證金協(xié)議
- 農(nóng)業(yè)科技節(jié)水灌溉技術(shù)推廣應(yīng)用策略
- 公司可行性分析報(bào)告
- 廣汽充電樁 遠(yuǎn)程
- 垃圾發(fā)電采購
- 高速電動汽車充電樁
- 保險(xiǎn)行業(yè)保險(xiǎn)科技創(chuàng)新與風(fēng)險(xiǎn)管理方案
- 智能家電產(chǎn)品開發(fā)與生產(chǎn)標(biāo)準(zhǔn)
- 油氣管道視頻監(jiān)控系統(tǒng)總體設(shè)計(jì)方案
- 呼吸內(nèi)科小講課血?dú)夥治鲈诤粑鼉?nèi)科的應(yīng)用
- 知識產(chǎn)權(quán)案件調(diào)解實(shí)務(wù)
- 手術(shù)室護(hù)理查房之甲狀腺切除術(shù)手術(shù)配合
- 毫米波集成電路詳述
- 打印設(shè)備維護(hù)服務(wù)投標(biāo)方案
- JGT454-2014 建筑門窗、幕墻中空玻璃性能現(xiàn)場檢測方法
- 一定溶質(zhì)質(zhì)量分?jǐn)?shù)的氯化鈉溶液的配制
- DB5301∕T 24-2019 園林綠化養(yǎng)護(hù)規(guī)范
- 地坪漆施工合同地坪漆施工合同范本
- 高風(fēng)險(xiǎn)供應(yīng)商管理程序(經(jīng)典-專業(yè)-建議收藏)
評論
0/150
提交評論