版權(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)
4、數(shù)據(jù)的的功能是實(shí)現(xiàn)數(shù)據(jù)的算算 術(shù)與邏輯運(yùn)算術(shù)與邏輯運(yùn)算。 ALU ALU的輸入有兩個端口,分別接收參加運(yùn)算的兩個操作數(shù),的輸入有兩個端口,分別接收參加運(yùn)算的兩個操作數(shù), 通常它們來自通常它們來自CPUCPU中的通用寄存器或中的通用寄存器或ALUALU總線??偩€。 ALUALU的輸出取決于對其功能的控制,當(dāng)控制功能選擇加、的輸出取決于對其功能的控制,當(dāng)控制功能選擇加、 減、與、或等運(yùn)算功能之一時(shí),其輸出結(jié)果將為對應(yīng)的和、減、與、或等運(yùn)算功能之一時(shí),其輸出結(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)
6、多種功能,如它的配合可以實(shí)現(xiàn)多種功能,如它 們可為們可為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í)行指令時(shí),需根據(jù)用
7、來存放當(dāng)前正在執(zhí)行的一條指令。執(zhí)行指令時(shí),需根據(jù)PC 中的指令地址從主存讀取指令送到中的指令地址從主存讀取指令送到IR中。中。 程序計(jì)數(shù)器程序計(jì)數(shù)器PCPC(P Program rogram C Counterounter) 用以存放當(dāng)前或下一條用以存放當(dāng)前或下一條指令指令在主存中的在主存中的地址地址,因此又稱為指,因此又稱為指 令計(jì)數(shù)器或指令指針令計(jì)數(shù)器或指令指針I(yè)PIP(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)和和
8、 工作方式工作方式,其內(nèi)容稱為程序狀態(tài)字,其內(nèi)容稱為程序狀態(tài)字PSWPSW(Program State WordProgram State Word),), PSWPSW是參與控制程序執(zhí)行的重要依據(jù)。是參與控制程序執(zhí)行的重要依據(jù)。 2 2總線總線 所謂總線是一組能為多個部件所謂總線是一組能為多個部件分時(shí)共享分時(shí)共享的公共信息傳送線路,的公共信息傳送線路, 它分時(shí)接收各部件送來的信息,并發(fā)送信息到有關(guān)部件。它分時(shí)接收各部件送來的信息,并發(fā)送信息到有關(guān)部件。 由于多個部件連接在一組公共總線上,可能會出現(xiàn)多個部件由于多個部件連接在一組公共總線上,可能會出現(xiàn)多個部件爭爭 用用總線,因此需設(shè)置總線控制邏
9、輯以解決總線控制權(quán)的有關(guān)問題??偩€,因此需設(shè)置總線控制邏輯以解決總線控制權(quán)的有關(guān)問題。 CPUCPU內(nèi)部總線內(nèi)部總線用來連接用來連接CPU CPU內(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之間通常用總線方
10、式傳送數(shù)據(jù)信息。之間通常用總線方式傳送數(shù)據(jù)信息。介紹介紹 兩種常見的結(jié)構(gòu)。兩種常見的結(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)算
11、結(jié)果也經(jīng)內(nèi)總線輸出。 (2 2)多組內(nèi)總線結(jié)構(gòu))多組內(nèi)總線結(jié)構(gòu) 采用三總線結(jié)構(gòu)的采用三總線結(jié)構(gòu)的CPUCPU數(shù)據(jù)通路數(shù)據(jù)通路 為了提高為了提高CPUCPU的工作速度,一種方法是在的工作速度,一種方法是在CPUCPU內(nèi)部設(shè)置多組內(nèi)總內(nèi)部設(shè)置多組內(nèi)總 線,使幾個數(shù)據(jù)傳送操作能夠同時(shí)進(jìn)行,即實(shí)現(xiàn)部分并行操作。線,使幾個數(shù)據(jù)傳送操作能夠同時(shí)進(jìn)行,即實(shí)現(xiàn)部分并行操作。 3.1.2 3.1.2 指令執(zhí)行過程指令執(zhí)行過程 CPU CPU的主要功能就是的主要功能就是執(zhí)行存放在存儲器中的指令序列執(zhí)行存放在存儲器中的指令序列,即,即 程序。程序。 1 1指令的分段執(zhí)行過程指令的分段執(zhí)行過程 任何一條指令的執(zhí)行都要
12、經(jīng)過任何一條指令的執(zhí)行都要經(jīng)過讀取讀取指令、指令、分析分析指令和指令和執(zhí)行執(zhí)行指指 令令3 3個階段。個階段。 執(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指令之間的銜接方式指令之間的銜接方式 指令之間的銜接方式有兩種:指令之間的銜接方式有兩種:串行串行的順序安排方式與的順序安排方式與
13、并行并行的的 重疊處理方式。重疊處理方式。 3.1.3 3.1.3 時(shí)序控制方式時(shí)序控制方式 執(zhí)行一條指令的過程可分為幾個階段,而每一階段又分為若干執(zhí)行一條指令的過程可分為幾個階段,而每一階段又分為若干 步基本操作,每一步操作則由控制器產(chǎn)生一些相應(yīng)的控制信號實(shí)現(xiàn)。步基本操作,每一步操作則由控制器產(chǎn)生一些相應(yīng)的控制信號實(shí)現(xiàn)。 因此,每條指令都可分解為一個控制信號序列,指令的執(zhí)行過程就因此,每條指令都可分解為一個控制信號序列,指令的執(zhí)行過程就 是依次執(zhí)行一個確定的是依次執(zhí)行一個確定的控制信號序列控制信號序列的過程。的過程。 時(shí)序控制方式時(shí)序控制方式就是指微操作與時(shí)序信號之間采取何種關(guān)系,就是指微操
14、作與時(shí)序信號之間采取何種關(guān)系, 它不僅直接決定時(shí)序信號的產(chǎn)生,也影響到控制器及其他部件的組它不僅直接決定時(shí)序信號的產(chǎn)生,也影響到控制器及其他部件的組 成,以及指令的執(zhí)行速度。成,以及指令的執(zhí)行速度。 1 1同步控制方式同步控制方式 同步控制方式是指各項(xiàng)操作由同步控制方式是指各項(xiàng)操作由統(tǒng)一統(tǒng)一的時(shí)序信號進(jìn)行同步控制。的時(shí)序信號進(jìn)行同步控制。 同步控制的基本特征是將操作時(shí)間分為若干長度相同的同步控制的基本特征是將操作時(shí)間分為若干長度相同的時(shí)鐘時(shí)鐘 周期周期(也稱為節(jié)拍),要求在一個或幾個時(shí)鐘周期內(nèi)完成各個(也稱為節(jié)拍),要求在一個或幾個時(shí)鐘周期內(nèi)完成各個微微 操作操作。在在CPUCPU內(nèi)部通常是采
15、用同步控制方式內(nèi)部通常是采用同步控制方式 。 同步控制方式的優(yōu)點(diǎn)是時(shí)序關(guān)系簡單,結(jié)構(gòu)上易于集中,相應(yīng)同步控制方式的優(yōu)點(diǎn)是時(shí)序關(guān)系簡單,結(jié)構(gòu)上易于集中,相應(yīng) 的設(shè)計(jì)和實(shí)現(xiàn)比較方便。的設(shè)計(jì)和實(shí)現(xiàn)比較方便。 2 2同步控制方式的多級時(shí)序系統(tǒng)同步控制方式的多級時(shí)序系統(tǒng) (1 1)多級時(shí)序的概念)多級時(shí)序的概念 在同步控制方式中,通常將時(shí)序信號劃分為幾級(其中包括指在同步控制方式中,通常將時(shí)序信號劃分為幾級(其中包括指 令周期),稱為多級時(shí)序。令周期),稱為多級時(shí)序。 機(jī)器周期機(jī)器周期 節(jié)拍(時(shí)鐘周期)節(jié)拍(時(shí)鐘周期) 時(shí)鐘脈沖信號時(shí)鐘脈沖信號 (2 2)多級時(shí)序信號之間的關(guān)系)多級時(shí)序信號之間的關(guān)系
16、三級時(shí)序信號之間的關(guān)系三級時(shí)序信號之間的關(guān)系 (3 3)時(shí)序系統(tǒng)的組成)時(shí)序系統(tǒng)的組成 時(shí)序系統(tǒng)框圖時(shí)序系統(tǒng)框圖 3.1.4 3.1.4 指令流水線指令流水線 兩段指令流水線兩段指令流水線 為獲得進(jìn)一步的加速,流水線可以分成更多的階段。為獲得進(jìn)一步的加速,流水線可以分成更多的階段。 取指令取指令 計(jì)算操作數(shù)地計(jì)算操作數(shù)地 址址 譯碼指令譯碼指令 寫操作數(shù)寫操作數(shù) 取操作數(shù)取操作數(shù) 執(zhí)行指令執(zhí)行指令 指令流水線操作時(shí)序圖指令流水線操作時(shí)序圖 3.2 3.2 算術(shù)邏輯部件算術(shù)邏輯部件ALUALU和運(yùn)算方法和運(yùn)算方法 算術(shù)邏輯部件算術(shù)邏輯部件ALUALU主要完成對二進(jìn)制代碼的定點(diǎn)主要完成對二進(jìn)制代碼
17、的定點(diǎn)算術(shù)運(yùn)算算術(shù)運(yùn)算和和 邏輯運(yùn)算邏輯運(yùn)算。 3.2.1 3.2.1 算術(shù)邏輯部件算術(shù)邏輯部件ALUALU 算術(shù)邏輯部件算術(shù)邏輯部件ALUALU的硬件實(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全加器全加器 用半
18、加器構(gòu)成的全加器用半加器構(gòu)成的全加器 iiii CBA iiiiii C)BA(BAC 1 和和 進(jìn)位進(jìn)位 目前,廣泛采用半加器構(gòu)成全加器。目前,廣泛采用半加器構(gòu)成全加器。 2 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ù)與操作數(shù)的位數(shù)相同。 (1 1)基本進(jìn)位公式)基本進(jìn)位公式 設(shè)相加的兩個設(shè)相加的兩個n n位操作數(shù)為位操作數(shù)為: : 021 AAAAA inn 021 BBB
19、B inn B iiiiii )CB(ABAC 1 進(jìn)位信 號的邏 輯式 可以看出可以看出C C 由兩部分組成:由兩部分組成: 1i iiiii )CB(ABA與 我們定義兩個輔助函數(shù):我們定義兩個輔助函數(shù): iii BAG iii BAP 進(jìn)位產(chǎn)進(jìn)位產(chǎn) 生函數(shù)生函數(shù) 進(jìn)位傳進(jìn)位傳 遞函數(shù)遞函數(shù) 因此有:因此有: iiii CPGC 1 (2 2)并行加法器的串行進(jìn)位)并行加法器的串行進(jìn)位 采用串行進(jìn)位的并行加法器,是將采用串行進(jìn)位的并行加法器,是將n n個全加器串接起來,就可個全加器串接起來,就可 進(jìn)行兩個進(jìn)行兩個n n位數(shù)相加。位數(shù)相加。 11111111 111111112 000000
20、001 )CB(ABACPGC )CB(ABACPGC )CB(ABACPGC nnnnnnnnn 由于串行進(jìn)位的延遲時(shí)間較長,所以在由于串行進(jìn)位的延遲時(shí)間較長,所以在ALUALU中很少采用純串行中很少采用純串行 進(jìn)位的方式。但這種方式可節(jié)省器件,成本低,在分組進(jìn)位方式中進(jìn)位的方式。但這種方式可節(jié)省器件,成本低,在分組進(jìn)位方式中 局部采用有時(shí)也是可取的。局部采用有時(shí)也是可取的。 3 3并行進(jìn)位(先行進(jìn)位、同時(shí)進(jìn)位)并行進(jìn)位(先行進(jìn)位、同時(shí)進(jìn)位) 為了提高并行加法器的運(yùn)算速度,就必須解決進(jìn)位傳遞的問題。為了提高并行加法器的運(yùn)算速度,就必須解決進(jìn)位傳遞的問題。 方法是讓各級進(jìn)位信號同時(shí)形成,而不是
21、串行形成。方法是讓各級進(jìn)位信號同時(shí)形成,而不是串行形成。 0012301231232333334 00120121222223 0010111112 0001 CPPPPGPPPGPPGPGCPGC CPPPGPPGPGCPGC CPPGPGCPGC CPGC 這種同時(shí)形成各位進(jìn)位的方法稱為這種同時(shí)形成各位進(jìn)位的方法稱為并行進(jìn)位并行進(jìn)位或或先行進(jìn)位先行進(jìn)位, 又稱為又稱為同時(shí)進(jìn)位同時(shí)進(jìn)位。 雖然并行進(jìn)位加法器的運(yùn)算速度快,但這是以增加硬件邏輯線雖然并行進(jìn)位加法器的運(yùn)算速度快,但這是以增加硬件邏輯線 路為代價(jià)的。兩種常用的路為代價(jià)的。兩種常用的分組進(jìn)位分組進(jìn)位結(jié)構(gòu)是:結(jié)構(gòu)是: 組內(nèi)并行、組間串行
22、的進(jìn)位鏈。組內(nèi)并行、組間串行的進(jìn)位鏈。 組內(nèi)并行、組間并行的進(jìn)位鏈。組內(nèi)并行、組間并行的進(jìn)位鏈。 4 4ALUALU舉例舉例 SN74181SN74181框圖框圖 (1 1)SN74181SN74181外特性外特性 SN74181SN74181的一位單元的一位單元 (2 2)SN74181SN74181內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu) S3S2XiS1S0Yi 0 010 0Ai 0 1Ai+0 1AiBi 1 0Ai+Bi1 0Ai 1 1Ai1 10 表表3-1 一位一位ALU單元的輸入選擇邏輯單元的輸入選擇邏輯 i B i B A BA AB BA A B BA B BA BA BA 工作方式選工作方式
23、選 擇擇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=0 0000A減減11000A加(加(A+B) 0001AB減減11001A加加B 0010+BA 減減11010BAB加(加(A+B) 0011邏輯邏輯1全全11011A+BA+B 0100A加(加(A+B)1100邏輯邏輯0全全0 0101AB加(加(A+B)1101AB加加A 0110A加加B B1110ABAB加加A 0111A+B1111AA (3 3)SN74181SN74181功能表功能表 (4 4)用)用SN7
24、4181SN74181構(gòu)成構(gòu)成1616位并行進(jìn)位位并行進(jìn)位ALUALU 3.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)算。的運(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í)際操作是做減法
25、(+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 + +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ù)以上討
26、論,可將補(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ǔ)碼表示。運(yùn)算結(jié)果用補(bǔ)碼表示。 【例【例3-33-3】 X X = 00110110 = 00110110, Y Y =11001101 =11001101,求,求 X X+ +Y Y , X X- -Y Y 。 補(bǔ)補(bǔ) 補(bǔ) 補(bǔ)
27、(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 0011111 0 0001101 (1)31 +13=44 0 0101100 (2)-31 +(-12)=-43 0 0111111 0 1000010 (3) 63+66=129 1 0000001 1 1000001 1 0111110 (4) -63+(-66)=-129 0
28、1111111 正溢正溢負(fù)溢負(fù)溢 1 1100001 1 1110100 1 1010101 采用一個符號位判斷采用一個符號位判斷 溢出溢出= S +A B = S +A B n A n B n S nnn 采用最高有效位的進(jìn)位判斷采用最高有效位的進(jìn)位判斷 溢出溢出= C +C =C C = C +C =C C 1n n C n 1 C nn 1n 采用變形補(bǔ)碼判斷采用變形補(bǔ)碼判斷( (雙符號位雙符號位) ) 用用S S 、S Sn n分別表示結(jié)果最高符號位和第分別表示結(jié)果最高符號位和第2 2符號位符號位 1n 溢出溢出=S S =S S 1nn 00 0111111 00 1000010 (
29、3) 63+66=129 01 0000001 11 1000001 11 0111110 (4) -63+(-66)=-129 10 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ì)可分為移位操作按移位性質(zhì)可分為3 3種類型:種類型:邏輯移位邏輯移位、循環(huán)移位循環(huán)移位 和和算術(shù)移位算術(shù)移位。 移位示意圖移位示意圖 3
30、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用來存放被乘數(shù);用來存放被乘數(shù); C存放乘數(shù);存放乘數(shù); A初值為初值為0,然后存放部分積,然后存放部分
31、積,最后最后 存放乘積高位存放乘積高位。 由于乘數(shù)每乘一位該位代碼就不再由于乘數(shù)每乘一位該位代碼就不再 使用,因此用使用,因此用A和和C寄存器聯(lián)合右移以寄存器聯(lián)合右移以 存放逐次增加的部分積,并且使每次存放逐次增加的部分積,并且使每次 操作依據(jù)的乘數(shù)位始終在操作依據(jù)的乘數(shù)位始終在C的最低位。的最低位。 乘法完成時(shí),乘法完成時(shí),A與與C存放的是最后乘積,存放的是最后乘積, 其中其中C的內(nèi)容是乘積的低位部分的內(nèi)容是乘積的低位部分。 實(shí)現(xiàn)無符號整數(shù)一位乘法的硬件原理框圖如下圖所示。實(shí)現(xiàn)無符號整數(shù)一位乘法的硬件原理框圖如下圖所示。 圖中,用進(jìn)位觸發(fā)器圖中,用進(jìn)位觸發(fā)器Ca保存每次累加暫時(shí)產(chǎn)生的進(jìn)位,它
32、的初值為保存每次累加暫時(shí)產(chǎn)生的進(jìn)位,它的初值為0。在被。在被 乘數(shù)送入乘數(shù)送入B、乘數(shù)送入、乘數(shù)送入C,A和和Ca被置被置0后,控制邏輯控制乘法進(jìn)入第后,控制邏輯控制乘法進(jìn)入第1個節(jié)拍,個節(jié)拍, 這時(shí)由乘數(shù)位這時(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é)拍的操作后所得到的乘積存放在A和和C中。中。 【例【例3-103-10】 11011101 10111
33、011 的運(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í)余數(shù)左移一位。這種方法的缺點(diǎn)是增加硬件代價(jià)。同時(shí)余數(shù)左移一位。這種方法的缺點(diǎn)是增加硬件代價(jià)。 直接做減
34、法試探,不論是否夠減,都將被除數(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)余數(shù)A A為正時(shí),上商為正時(shí),上商1 1,下一步,下一步A A
35、左移左移 一位再減除數(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)不夠減時(shí),并不需要恢復(fù)余數(shù),故在出現(xiàn)不夠減時(shí),并不需要恢復(fù)余數(shù), 只是下一步要進(jìn)行只是下一步要進(jìn)行2A+B2A+B的操作,因此稱的操作,因此稱 為為不恢復(fù)余數(shù)法不恢復(fù)余數(shù)法或加減交替法。其算法或加減交替法。其算法 流程如右圖所示。流程
36、如右圖所示。 圖中使用圖中使用3 3個寄存器個寄存器A A、B B和和C C。運(yùn)算開始。運(yùn)算開始 時(shí),時(shí),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)樽詈蟮?寄存器寄存器A中應(yīng)獲得正確的正余數(shù)。中應(yīng)獲得正確的正余數(shù)。 【例【
37、例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個步驟才能完成。個步驟才能完成。 X E 2 Y E 2 對階操作對階操作 對階的規(guī)則
38、是對階的規(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ī)的同時(shí)應(yīng)判斷結(jié)果是否左規(guī)。在左規(guī)的同時(shí)應(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é)果會溢出,此時(shí)需調(diào)整階表明浮點(diǎn)結(jié)果會溢出,此時(shí)需調(diào)整階 碼,將尾數(shù)右移一位,階碼加碼,將尾數(shù)右移一位,階碼加1 1,稱,稱 為右規(guī)。右規(guī)時(shí),應(yīng)判斷結(jié)果是否會為右規(guī)。右規(guī)時(shí),應(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鑄鐵閘門放水試驗(yàn)施工方案
- 燃料助劑項(xiàng)目可行性研究報(bào)告
- 老年公寓裝修設(shè)計(jì)合同模板
- 學(xué)校翻新項(xiàng)目解除合同書
- 專賣店翻新合同取消
- 湖北孝感美珈職業(yè)學(xué)院《酒店新媒體運(yùn)營》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度貨物運(yùn)輸司機(jī)合作合同3篇
- 2025年度銷售代理合同糾紛訴訟狀3篇
- 湖北2025年湖北城市建設(shè)職業(yè)技術(shù)學(xué)院招聘5人筆試歷年參考題庫附帶答案詳解
- 2025年房屋買賣合同含車庫6篇
- 2024年日語培訓(xùn)機(jī)構(gòu)市場供需現(xiàn)狀及投資戰(zhàn)略研究報(bào)告
- 2024年公安機(jī)關(guān)理論考試題庫附參考答案(基礎(chǔ)題)
- 歷史-廣東省大灣區(qū)2025屆高三第一次模擬試卷和答案
- 2024年安全生產(chǎn)法律、法規(guī)、標(biāo)準(zhǔn)及其他要求清單
- 2023年高考文言文閱讀設(shè)題特點(diǎn)及備考策略
- 抗心律失常藥物臨床應(yīng)用中國專家共識
- 考級代理合同范文大全
- 2024解析:第三章物態(tài)變化-講核心(原卷版)
- DB32T 1590-2010 鋼管塑料大棚(單體)通 用技術(shù)要求
- 安全行車知識培訓(xùn)
- 2024年安徽省高校分類對口招生考試數(shù)學(xué)試卷真題
評論
0/150
提交評論