計算機(jī)組成原理第4章_第1頁
計算機(jī)組成原理第4章_第2頁
計算機(jī)組成原理第4章_第3頁
計算機(jī)組成原理第4章_第4頁
計算機(jī)組成原理第4章_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1計算機(jī)組成原理教學(xué)課件計算機(jī)組成原理教學(xué)課件王王 誠誠 宋佳興宋佳興清華大學(xué)計算機(jī)系清華大學(xué)計算機(jī)系2009年10月2第第 4 章章 計算機(jī)系統(tǒng)概述計算機(jī)系統(tǒng)概述4.1 算術(shù)邏輯運(yùn)算單元的線路實現(xiàn)算術(shù)邏輯運(yùn)算單元的線路實現(xiàn)4.2 計算機(jī)的定點運(yùn)算器計算機(jī)的定點運(yùn)算器4.3浮點運(yùn)算與浮點運(yùn)算器浮點運(yùn)算與浮點運(yùn)算器4.4 提高運(yùn)算器部件處理能力的可行途徑提高運(yùn)算器部件處理能力的可行途徑31、設(shè)計支持、設(shè)計支持 +、 、 功能的功能的 ALU 線路線路一位的一位的ALU的線路設(shè)計的線路設(shè)計:1、首先畫出其組成示意圖、首先畫出其組成示意圖 輸入數(shù)據(jù)輸入數(shù)據(jù) A、B加減進(jìn)位輸入加減進(jìn)位輸入 Cin加減

2、進(jìn)位輸出加減進(jìn)位輸出 Cout3種運(yùn)算用種運(yùn)算用3部分電路部分電路運(yùn)算結(jié)果運(yùn)算結(jié)果S, 3選選1得到得到運(yùn)算功能選擇控制運(yùn)算功能選擇控制+/-選擇選擇 B 或或 /B 的控制的控制三選一三選一加法器加法器與運(yùn)算與運(yùn)算或運(yùn)算或運(yùn)算二選一二選一ABSCoutCin運(yùn)算功運(yùn)算功能選擇能選擇OPB4設(shè)計支持設(shè)計支持 +、 、 功能的功能的 ALU 線路線路一位的一位的ALU的線路設(shè)計的線路設(shè)計:2、接著寫出功能的真值表、接著寫出功能的真值表OP A B Cin S Cout0 0 0 0 0 0 00 0 0 1 0 1 00 0 1 0 0 1 00 0 1 1 0 0 10 0 0 0 1 1 0

3、0 0 0 1 1 0 10 0 1 0 1 0 10 0 1 1 1 1 1OP A B S 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 OP A B S 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 (加法加法)(與與)(或或)5nnnnn-1n-1nn-1nnnnn-1nnn-1nnn-1nn-1nnnnn-1nnnn-1nn-1F =X Y C+X Y C+X Y C+X Y CC =X Y C+X Y C+X Y C+X Y C =X Y +X C+Y CCnCn+SnCn+1XnYn.+真值表真值表 邏輯表達(dá)式邏

4、輯表達(dá)式一位加法器的真值表、邏輯表達(dá)式、線路圖一位加法器的真值表、邏輯表達(dá)式、線路圖Xn Yn Cn Sn Cn+1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0nnnnnnCn+1nnnnn6設(shè)計支持設(shè)計支持 +、 、 功能的功能的 ALU 線路線路一位的一位的ALU的線路設(shè)計的線路設(shè)計:3、按真值表寫邏輯表達(dá)式、按真值表寫邏輯表達(dá)式S = (/OP1/OP0) ( A/B/Cin 加法運(yùn)算加法運(yùn)算 + /A B/Cin + /A/B Cin + A B Cin ) + ( OP

5、1/OP0) ( A B ) 與運(yùn)算與運(yùn)算 + ( OP1 OP0) ( A + B ) 或運(yùn)算或運(yùn)算 Cout = (/OP1/OP0) ( AB 加法運(yùn)算加法運(yùn)算 + ACin + BCin )7設(shè)計支持設(shè)計支持 +、 、 功能的功能的 ALU 線路線路一位的一位的ALU的線路設(shè)計的線路設(shè)計:4、按邏輯表達(dá)式畫出電路圖、按邏輯表達(dá)式畫出電路圖三三選選一一加加法法器器或或門門與與門門ABCoutSCin一位的一位的ALUABCoutCinS 這只是個原理性的這只是個原理性的設(shè)計與實現(xiàn)方案,真正設(shè)計與實現(xiàn)方案,真正的產(chǎn)品功能更全,經(jīng)過的產(chǎn)品功能更全,經(jīng)過優(yōu)化后性能也更高。優(yōu)化后性能也更高。簡化

6、為簡化為OPOP加法和加法和與結(jié)果與結(jié)果或結(jié)果或結(jié)果8設(shè)計支持設(shè)計支持 +、 功能功能的的16位位ALU一位的一位的ALUA0B0Cout0Cin0S0 用用 16個個 一位的一位的ALU實現(xiàn)一實現(xiàn)一個個 16位位 的的 ALU,使其并行執(zhí)行,使其并行執(zhí)行算邏運(yùn)算,使每位算邏運(yùn)算,使每位ALU處在不處在不同的數(shù)位上,信號名加位序號。同的數(shù)位上,信號名加位序號。一位的一位的ALUA1B1Cout1Cin1S1一位的一位的ALUA15B15Cout15Cin15S15 需要把每一位上的需要把每一位上的 ALU 的的進(jìn)位輸出信號和相鄰高位的進(jìn)位進(jìn)位輸出信號和相鄰高位的進(jìn)位輸入信號正確連接;并把全部位

7、輸入信號正確連接;并把全部位上的上的控制信號控制信號連接在一起,使它連接在一起,使它們同步執(zhí)行相同的運(yùn)算功能,從們同步執(zhí)行相同的運(yùn)算功能,從而對兩個而對兩個16位的數(shù)據(jù)執(zhí)行正確的位的數(shù)據(jù)執(zhí)行正確的運(yùn)算功能,產(chǎn)生正確的結(jié)果。運(yùn)算功能,產(chǎn)生正確的結(jié)果。OP1 OP0 還需要解決進(jìn)位信號傳送速還需要解決進(jìn)位信號傳送速度,可采用超前進(jìn)位的方案。度,可采用超前進(jìn)位的方案。9兩種不同類型的運(yùn)算器兩種不同類型的運(yùn)算器運(yùn)算器包括運(yùn)算器包括 定點運(yùn)算器定點運(yùn)算器 和和 浮點運(yùn)算器浮點運(yùn)算器 兩種類型兩種類型定點運(yùn)算器定點運(yùn)算器,教學(xué)中重點講解教學(xué)中重點講解 主要完成對整數(shù)類型數(shù)據(jù)的算術(shù)運(yùn)算、邏輯類主要完成對整數(shù)

8、類型數(shù)據(jù)的算術(shù)運(yùn)算、邏輯類型數(shù)據(jù)的邏輯運(yùn)算,。型數(shù)據(jù)的邏輯運(yùn)算,。浮點運(yùn)算器浮點運(yùn)算器,教學(xué)中簡單介紹,教學(xué)中簡單介紹 主要完成對浮點類型數(shù)據(jù)的算術(shù)運(yùn)算,也可以主要完成對浮點類型數(shù)據(jù)的算術(shù)運(yùn)算,也可以用于完成長整數(shù)、用于完成長整數(shù)、BCD等類型的數(shù)據(jù)運(yùn)算等類型的數(shù)據(jù)運(yùn)算102、定點運(yùn)算器的、定點運(yùn)算器的基本功能基本功能和和組成組成完成算術(shù)、邏輯運(yùn)算,產(chǎn)生運(yùn)算結(jié)果完成算術(shù)、邏輯運(yùn)算,產(chǎn)生運(yùn)算結(jié)果 由由 ALU 執(zhí)行執(zhí)行 +、 (、等等)運(yùn)算)運(yùn)算給出并記憶運(yùn)算結(jié)果的狀態(tài)給出并記憶運(yùn)算結(jié)果的狀態(tài) C(進(jìn)位輸出)(進(jìn)位輸出)、Z(結(jié)果為(結(jié)果為0) V(結(jié)果溢出)(結(jié)果溢出)、S(結(jié)果符號)(結(jié)果符

9、號)暫存運(yùn)算所用操作數(shù)暫存運(yùn)算所用操作數(shù)和運(yùn)算的中間結(jié)果和運(yùn)算的中間結(jié)果由通用寄存器組由通用寄存器組 REGs 承擔(dān)承擔(dān)接收輸入數(shù)據(jù),接收輸入數(shù)據(jù), 送出運(yùn)算結(jié)果送出運(yùn)算結(jié)果作為處理機(jī)內(nèi)部數(shù)據(jù)通路作為處理機(jī)內(nèi)部數(shù)據(jù)通路(Data Path) 運(yùn)算器由運(yùn)算器由算邏算邏運(yùn)算單元運(yùn)算單元 ALU、寄存器組寄存器組REGs 和和標(biāo)志位寄存器標(biāo)志位寄存器等三等三個主要部分組成,個主要部分組成,通過幾組多路選擇通過幾組多路選擇器電路實現(xiàn)連接。器電路實現(xiàn)連接。11運(yùn)算周期運(yùn)算周期一個運(yùn)算周期中的各時間段示意圖一個運(yùn)算周期中的各時間段示意圖控制信號建立時間控制信號建立時間運(yùn)算結(jié)果送到寄存器輸入端時運(yùn)算結(jié)果送到

10、寄存器輸入端時間間寄存器內(nèi)容送出時間寄存器內(nèi)容送出時間運(yùn)算器執(zhí)行運(yùn)算時間運(yùn)算器執(zhí)行運(yùn)算時間寄存器接收運(yùn)算結(jié)果時間寄存器接收運(yùn)算結(jié)果時間單步完成的單步完成的一次運(yùn)算的時序關(guān)系一次運(yùn)算的時序關(guān)系運(yùn)算器組成示意圖運(yùn)算器組成示意圖121取指取指 周期周期 000執(zhí)行執(zhí)行 周期周期 001存儲存儲 周期周期 011指令執(zhí)行步驟指令執(zhí)行步驟復(fù)位狀態(tài)復(fù)位狀態(tài) 100全部指令都經(jīng)取指取指和執(zhí)行執(zhí)行周期,僅讀寫內(nèi)存指令經(jīng)存儲存儲周期計算機(jī)硬件系統(tǒng)組成計算機(jī)硬件系統(tǒng)組成13 這個這個運(yùn)算器部件運(yùn)算器部件由由ALU、REGs和和Flag 這這個主要部件組成。個主要部件組成。ALU完成數(shù)據(jù)運(yùn)算完成數(shù)據(jù)運(yùn)算 ,運(yùn)算數(shù)據(jù)

11、可來自運(yùn)算數(shù)據(jù)可來自REGs 的的B口數(shù)據(jù)和口數(shù)據(jù)和A口數(shù)據(jù),口數(shù)據(jù),常數(shù)和常數(shù)和,通過內(nèi)部,通過內(nèi)部總線總線IB送來的送來的輸入數(shù)據(jù)輸入數(shù)據(jù),由多路選擇器選擇由多路選擇器選擇。REGs暫存數(shù)據(jù)和結(jié)果暫存數(shù)據(jù)和結(jié)果, 由寄存器編號選擇讀寫由寄存器編號選擇讀寫的寄存器,的寄存器,讀出數(shù)據(jù)讀出數(shù)據(jù)送送ALU,寫入的數(shù)據(jù)寫入的數(shù)據(jù)來自來自ALU運(yùn)算結(jié)果并經(jīng)移位運(yùn)算結(jié)果并經(jīng)移位電路。電路。Flag保存保存ALU產(chǎn)生的運(yùn)產(chǎn)生的運(yùn)算結(jié)果的算結(jié)果的標(biāo)志信息標(biāo)志信息。運(yùn)算器的輸出運(yùn)算器的輸出可以經(jīng)可以經(jīng)IB送到其他部件。送到其他部件。實例實例1:FPGA芯片中芯片中 實現(xiàn)的算器部件實現(xiàn)的算器部件14 運(yùn)算器部

12、件運(yùn)算器部件用到的用到的信息和控制信號信息和控制信號:對對REGs: b_sel 和和a_sel 選擇寄存器編號選擇寄存器編號, reg_src選擇寫入數(shù)據(jù)選擇寫入數(shù)據(jù), 是直接寫、左移一位寫是直接寫、左移一位寫或右移一位寫,或右移一位寫,reg_wt 控制寫入操作??刂茖懭氩僮鳌LU :s_sel和和r_sel 選擇選擇 2 路輸入數(shù)據(jù),路輸入數(shù)據(jù),alu_func選擇運(yùn)算功能選擇運(yùn)算功能. 對對Flag : flag_func控控制標(biāo)志位的接收操作。制標(biāo)志位的接收操作。y_sel選擇把選擇把ALU結(jié)果結(jié)果還是還是 A口數(shù)據(jù)送到口數(shù)據(jù)送到 Y, y_ib控制控制 Y內(nèi)容內(nèi)容 送送IB。

13、實例實例1:FPGA芯片中芯片中 實現(xiàn)的算器部件實現(xiàn)的算器部件15看一下加法指令在看一下加法指令在運(yùn)算運(yùn)算器部件器部件中的執(zhí)行過程中的執(zhí)行過程。R2+R3R2REGs(2) + REGs(3) REG(2) b_sel 選選00 a_sel 選選00 s_sel 選選00 r_sel 選選00 alu_func 選選000 reg_src 選選00 reg_wt 選選 1 flag_func選選 001231234234512342345357923 +00000000 0010 0011指令內(nèi)容指令內(nèi)容00動畫演示動畫演示16MIPS機(jī)的硬件系統(tǒng)組成機(jī)的硬件系統(tǒng)組成(未畫出乘除未畫出乘除用寄

14、存器用寄存器)17由寄存器堆寄存器堆 和 算術(shù)邏算術(shù)邏輯運(yùn)算部件輯運(yùn)算部件 ALU 組成寄存器堆由寄存器堆由 32個個32位位 的的寄存器組成寄存器組成, 使用使用 3個端口個端口選擇寄存器,選擇寄存器,2 個用于選個用于選擇讀出、擇讀出、1 個控制寫入個控制寫入寄存器堆有寄存器堆有 1 路數(shù)據(jù)路數(shù)據(jù)輸入,輸入,2 路數(shù)據(jù)輸出,路數(shù)據(jù)輸出,輸出存入輸出存入A、B寄存器寄存器 32位的位的 ALU 接收兩接收兩路輸入數(shù)據(jù)執(zhí)行運(yùn)算路輸入數(shù)據(jù)執(zhí)行運(yùn)算,各從各從 2 個數(shù)據(jù)和個數(shù)據(jù)和 4個個數(shù)據(jù)中進(jìn)行選擇數(shù)據(jù)中進(jìn)行選擇 ALU支持支持 + 等運(yùn)算,等運(yùn)算,用于完成用于完成 數(shù)據(jù)數(shù)據(jù) 和和 地址地址 計

15、算計算,輸出結(jié)果輸出結(jié)果R 和和 特征信息特征信息 Z,有存有存ALU計算結(jié)果的計算結(jié)果的寄存器寄存器C實例實例2、MIPS機(jī)的運(yùn)算器部件機(jī)的運(yùn)算器部件18MIPS多指令周期多指令周期CPU的運(yùn)算器部件的運(yùn)算器部件1 2 3 41 2 3 43 4 5 63 4 5 61 2 3 44 6 8 A3 4 5 64 6 8 A 以執(zhí)行以執(zhí)行 regrs+ regrtregrd 為例,看這個運(yùn)算器的執(zhí)行過程:從為例,看這個運(yùn)算器的執(zhí)行過程:從控制器接收寄存器編號??刂破鹘邮占拇嫫骶幪?。第第1步步,用用 rs 和和 rt 從寄存器組中讀出兩個寄存從寄存器組中讀出兩個寄存器的內(nèi)容并暫存到寄存器器的內(nèi)容

16、并暫存到寄存器A和和B,第第2步步,兩個寄存器的內(nèi)容經(jīng),兩個寄存器的內(nèi)容經(jīng)2個多路選個多路選擇器電路送到擇器電路送到ALU的輸入端,的輸入端,ALU執(zhí)行加法運(yùn)算,并保存結(jié)果到寄存器執(zhí)行加法運(yùn)算,并保存結(jié)果到寄存器C,第第3步步,把寄存器把寄存器C中的計算結(jié)果寫入到寄存器組內(nèi)由中的計算結(jié)果寫入到寄存器組內(nèi)由 rd 選擇的寄存器選擇的寄存器。19計算機(jī)計算機(jī)終端終端PC機(jī)機(jī)微程序微程序控制器控制器運(yùn)算器運(yùn)算器16 位,用位,用4片片Am2901實現(xiàn)實現(xiàn)主存儲器主存儲器(16位)位)按鍵按鍵 開關(guān)開關(guān) 指示燈指示燈串行接口串行接口接口實驗接口實驗 中斷實驗中斷實驗內(nèi)存擴(kuò)展實驗內(nèi)存擴(kuò)展實驗電電 源源+

17、5V硬布線硬布線控制器控制器教學(xué)計算機(jī)硬件系統(tǒng)的組成教學(xué)計算機(jī)硬件系統(tǒng)的組成運(yùn)算器用4片Am2901芯片實現(xiàn)2720實例實例3:位片結(jié)構(gòu)的運(yùn)算器芯片:位片結(jié)構(gòu)的運(yùn)算器芯片Am2901 教學(xué)機(jī)中一個教學(xué)機(jī)中一個CPU系統(tǒng)中的運(yùn)算器是選用系統(tǒng)中的運(yùn)算器是選用 4片片 4位字長的運(yùn)算器芯片位字長的運(yùn)算器芯片 Am2901 實現(xiàn)的,我們首先花實現(xiàn)的,我們首先花一點時間講解這個芯片的內(nèi)部組成和功能。一點時間講解這個芯片的內(nèi)部組成和功能。 在教學(xué)的整個過程中,我們會用到一臺由教學(xué)在教學(xué)的整個過程中,我們會用到一臺由教學(xué)組研制的教學(xué)計算機(jī)系統(tǒng),既作為講解原理知識的組研制的教學(xué)計算機(jī)系統(tǒng),既作為講解原理知識的

18、實例,又用于教學(xué)實驗。實例,又用于教學(xué)實驗。 請大家注意請大家注意,這個芯片是上個世紀(jì)七十年代初,這個芯片是上個世紀(jì)七十年代初的產(chǎn)品,當(dāng)時有明顯的先進(jìn)性,現(xiàn)在作為運(yùn)算器實的產(chǎn)品,當(dāng)時有明顯的先進(jìn)性,現(xiàn)在作為運(yùn)算器實例也有很好的典型性。但它畢竟只是眾多器件和計例也有很好的典型性。但它畢竟只是眾多器件和計算機(jī)系統(tǒng)中的一個特例,把握好算機(jī)系統(tǒng)中的一個特例,把握好了解特例了解特例和和學(xué)懂通學(xué)懂通用原理用原理的關(guān)系非常重要。的關(guān)系非常重要。21二選一二選一 B 16個個 A 通用寄存器通用寄存器三選一三選一二選一二選一三選一三選一三選一三選一 A L U S RB鎖存器鎖存器A鎖存器鎖存器乘商寄存器乘商

19、寄存器QCn/OEQ3Q0RAM0RAM3F輸出輸出YF3F=0000OVRCn+4輸入輸入DA口地址口地址B口地址口地址Am2901內(nèi)部組成內(nèi)部組成組成組成算邏運(yùn)算部件算邏運(yùn)算部件通用寄存器組通用寄存器組乘商寄存器乘商寄存器 Q功能功能8種運(yùn)算功能種運(yùn)算功能8種數(shù)據(jù)組合種數(shù)據(jù)組合8種結(jié)果處理種結(jié)果處理22 A L U S RCnFF3F=0000OVRCn+4 Am2901芯片是芯片是一個一個 4位的位片結(jié)構(gòu)位的位片結(jié)構(gòu)的運(yùn)算器器件的運(yùn)算器器件 , 其內(nèi)其內(nèi)部組成如下:部組成如下:第一個組成部分是第一個組成部分是算邏運(yùn)算部件算邏運(yùn)算部件ALU,完成完成 3 種算術(shù)運(yùn)算種算術(shù)運(yùn)算和和 5 種邏

20、輯運(yùn)算,種邏輯運(yùn)算,共計共計 8 種功能。種功能。其輸出為其輸出為 F,兩路輸,兩路輸入為入為 S、R,最低位,最低位進(jìn)位進(jìn)位Cn,4個狀態(tài)輸個狀態(tài)輸出信號如圖所示出信號如圖所示符號位符號位結(jié)果為零結(jié)果為零結(jié)果溢出結(jié)果溢出進(jìn)位輸出進(jìn)位輸出RSRS8 種運(yùn)算功能種運(yùn)算功能0000010100111001011101113 位功能選擇碼位功能選擇碼R+SS RR SR? SRSRS23 B 16個個 A 通用寄存器通用寄存器 A L U S RB鎖存器鎖存器A鎖存器鎖存器CnFF3F=0000OVRCn+4A口地址口地址B口地址口地址第二個組成部分是第二個組成部分是由由16個寄存器構(gòu)成個寄存器構(gòu)成

21、通用寄存器組,并通用寄存器組,并通過通過B口與口與A口地址口地址選擇被讀寄存器,選擇被讀寄存器, B口地址還用于指口地址還用于指 寫入寄存器寫入寄存器通過通過B口、口、A口地口地址讀出的數(shù)據(jù)將送址讀出的數(shù)據(jù)將送到到B、A鎖存器,鎖存器,要寫入寄存器的數(shù)要寫入寄存器的數(shù)據(jù)由一個多路選擇據(jù)由一個多路選擇器(圖中未畫)送器(圖中未畫)送來。來。(寫入)(寫入)24 B 16個個 A 通用寄存器通用寄存器 A L U S RB鎖存器鎖存器A鎖存器鎖存器Q寄存器寄存器CnFF3F=0000OVRCn+4A口地址口地址B口地址口地址第三個組成部分第三個組成部分是乘商寄存器是乘商寄存器Q,它能對自己的內(nèi)它能

22、對自己的內(nèi)容完成左右移位容完成左右移位功能,其輸出可功能,其輸出可以送往以送往ALU,并,并可接收可接收ALU的輸?shù)妮敵鼋Y(jié)果。出結(jié)果。25該芯片的第四個該芯片的第四個組成部分是組成部分是 5 組組多路選通門多路選通門,包括包括: B 16個個 A 通用寄存器通用寄存器三選一三選一二選一二選一 A L U S RB鎖存器鎖存器A鎖存器鎖存器Q寄存器寄存器CnFF3F=0000OVRCn+4輸入輸入DA口地址口地址B口地址口地址一組三選一門和一組三選一門和另一組二選一門另一組二選一門用來選擇送向用來選擇送向ALU的的 R、S輸輸入端的數(shù)據(jù)來源入端的數(shù)據(jù)來源,包括,包括Q寄存器、寄存器、A口、口、

23、B口、外口、外部輸入部輸入D數(shù)據(jù)的數(shù)據(jù)的8 種不同組合。種不同組合。8種數(shù)據(jù)組合種數(shù)據(jù)組合(R,S)AQ AB 0Q 0B 0A DA DQ D0 3位數(shù)據(jù)選擇碼位數(shù)據(jù)選擇碼 000 001 010 011 100 101 110 11126 B 16個個 A 通用寄存器通用寄存器三選一三選一二選一二選一三選一三選一三選一三選一 A L U S RB鎖存器鎖存器A鎖存器鎖存器Q寄存器寄存器CnQ3Q0RAM0RAM3FF3F=0000OVRCn+4輸入輸入DA口地址口地址B口地址口地址一組三選一門一組三選一門完成把完成把ALU的的輸出、或右移輸出、或右移一位、或左移一位、或左移一位的值送往一位

24、的值送往通用寄存器組通用寄存器組,最高、最低,最高、最低位移位信號有位移位信號有雙向入雙向入/出問題出問題一組三選一門一組三選一門完成完成Q寄存器寄存器的右移一位、的右移一位、或左移一位、或左移一位、或接收或接收ALU輸輸出值的功能,出值的功能,最高、最低位最高、最低位移位信號有雙移位信號有雙向入向入/出問題。出問題。27二選一二選一 B 16個個 A 通用寄存器通用寄存器三選一三選一二選一二選一三選一三選一三選一三選一 A L U S RB鎖存器鎖存器A鎖存器鎖存器Q寄存器寄存器Cn/OEQ3Q0RAM0RAM3F輸出輸出YF3F=0000OVRCn+4輸入輸入DA口地址口地址B口地址口地址

25、一組二選一門,一組二選一門,選擇把選擇把A口數(shù)據(jù)口數(shù)據(jù)或或ALU結(jié)果送出結(jié)果送出芯片,以給出輸芯片,以給出輸出出Y的數(shù)據(jù),的數(shù)據(jù),Y輸輸出的有無還受輸出的有無還受輸出使能出使能 /OE信號信號的控制,僅當(dāng)?shù)目刂?,僅當(dāng) /OE為低是才有為低是才有Y輸出輸出 ,/OE為高,為高,Y輸出輸出為高阻態(tài)。為高阻態(tài)。288 種結(jié)果處理種結(jié)果處理 000 QF F 001 F 010 BF A 011 BF F 100 BF/2 QQ/2 F 101 BF/2 F 110 B2F Q2Q F 111 B2F F3位控制碼位控制碼 通用寄存器通用寄存器 Q寄存器寄存器 Y輸出輸出29Am2901入出信號及引腳

26、入出信號及引腳Y3Y0D3D0RAM3Q3RAM0Q0CPOECnCn+4F=0OverF3Am2901A3A0B3B0I8I6 I5I3 I2I0GP30Am2901Y118Y30D118D74D30CinRAM0Q0Y74高位高位Am2901Y1512D1512OVERF=0F15CyCPRAM15Q15A口口B口口I86I53I204 片片Am2901之間的連接之間的連接Am2901低位低位Am2901VccR310,1,RAM0Q0,RAM15 16位的位的 運(yùn)算器運(yùn)算器16 位運(yùn)算器的完整組成位運(yùn)算器的完整組成 四位標(biāo)志位四位標(biāo)志位GAL1右移輸入信號右移輸入信號GAL3 SST左移

27、輸入信號左移輸入信號GAL3 最低位進(jìn)位最低位進(jìn)位 GAL3CZVSCyF=0OVRF15來自內(nèi)部總線來自內(nèi)部總線 IBSSHSSHSCI右移控制右移控制左移控制左移控制RAM15Q15RAM0Q00CQ15/F150CCyF001CY150D150B口口A口口 I8I0Cin32運(yùn)算器的時鐘脈沖信號運(yùn)算器的時鐘脈沖信號 CP 時鐘脈沖信號時鐘脈沖信號 CP 用于控制寄存器和鎖存器的用于控制寄存器和鎖存器的動作時間動作時間,注意,注意兩個跳變沿兩個跳變沿和和低電平低電平的的作用作用。周期周期 通用寄存器通用寄存器接收接收A、B口鎖存口鎖存Q 接收接收 通用寄存器通用寄存器是是 R_S觸發(fā)器觸發(fā)

28、器, 低電平低電平期間接收輸入。期間接收輸入。 Q寄存器是寄存器是 D 型型 觸發(fā)器,用脈沖觸發(fā)器,用脈沖上升沿上升沿接收輸入。接收輸入。 鎖存器鎖存器,在時鐘脈沖的高電平期間,其輸入信,在時鐘脈沖的高電平期間,其輸入信號直接號直接“穿穿”過線路送到其輸出端,用脈沖過線路送到其輸出端,用脈沖下降沿下降沿把輸入信號存儲起來用于后續(xù)的輸出。把輸入信號存儲起來用于后續(xù)的輸出。33Am2901的控制信號的控制信號匯總表匯總表 000 Q F F R + S A Q 001 F S R A B 010 B F A R S 0 Q 011 B F F R? S 0 B 100 B F/2 Q Q/2 F

29、RS 0 A 101 B F/2 F RS D A 110 B 2F Q 2Q F RS D Q 111 B 2F F RS D 0B Q YR S編碼編碼 I8 I7 I6 I5 I4 I3 I2 I1 I0SST=000,保存標(biāo)志位的值,保存標(biāo)志位的值SSH SCI=001,Cin=1 34雙雙CPU教學(xué)計算機(jī)系統(tǒng)教學(xué)計算機(jī)系統(tǒng)雙雙 CPU教學(xué)計算機(jī)系統(tǒng)教學(xué)計算機(jī)系統(tǒng)控制器部件控制器部件(2 種類型種類型)運(yùn)算器部件運(yùn)算器部件串行口電路串行口電路存儲器部件存儲器部件用用VHDL描述功描述功能能, 用用 FPGA器器件實現(xiàn)的第件實現(xiàn)的第2 個個 CPU 系統(tǒng)系統(tǒng)輔助電路輔助電路地址地址數(shù)據(jù)數(shù)

30、據(jù)ALUIRFlags節(jié)拍節(jié)拍32位控制信號位控制信號按鍵、功能開關(guān)按鍵、功能開關(guān)16位數(shù)據(jù)開關(guān)位數(shù)據(jù)開關(guān)36位控制信號開關(guān)位控制信號開關(guān)5V直流電源直流電源微指令下地址微指令下地址這個系統(tǒng)的優(yōu)點這個系統(tǒng)的優(yōu)點在于修改已有設(shè)在于修改已有設(shè)計或增加新的指計或增加新的指令等,主要表現(xiàn)令等,主要表現(xiàn)為修改為修改 ABEL或或VHDL 語言的程語言的程序源碼,編譯后序源碼,編譯后重新下載即可,重新下載即可,受布線影響小,受布線影響小,教學(xué)實驗效率高教學(xué)實驗效率高351取指取指 周期周期 000執(zhí)行執(zhí)行 周期周期 001存儲存儲 周期周期 011指令執(zhí)行步驟指令執(zhí)行步驟復(fù)位狀態(tài)復(fù)位狀態(tài) 100全部指令都

31、經(jīng)取指取指和執(zhí)行執(zhí)行周期,僅讀寫內(nèi)存指令經(jīng)存儲存儲周期選用在選用在FPGA芯片中實現(xiàn)的芯片中實現(xiàn)的CPU構(gòu)件的計算機(jī)整機(jī)系統(tǒng)構(gòu)件的計算機(jī)整機(jī)系統(tǒng)36部件之間的信號傳遞關(guān)系部件之間的信號傳遞關(guān)系左側(cè)大虛線框內(nèi)部分在左側(cè)大虛線框內(nèi)部分在FPGA芯片內(nèi)部實現(xiàn),芯片內(nèi)部實現(xiàn),右側(cè)的右側(cè)的3個電路在印制電路板上個電路在印制電路板上。37硬件組成的設(shè)計依據(jù)硬件組成的設(shè)計依據(jù) 依據(jù)已有的依據(jù)已有的2929條指令的指令格式和功能要求,把條指令的指令格式和功能要求,把計算機(jī)硬件劃分成計算機(jī)硬件劃分成運(yùn)算器運(yùn)算器、控制器控制器、總線控制總線控制、存儲器存儲器和和串行接口電路串行接口電路這這 4 4個部分,把前個部

32、分,把前 3 3 部分在部分在 FPGAFPGA芯片內(nèi)實現(xiàn),芯片內(nèi)實現(xiàn),存儲器和串行接口電路存儲器和串行接口電路選用低集選用低集成度的專用功能的芯片成度的專用功能的芯片(6116(6116、58C6558C65、intel-8251A) intel-8251A) 實實現(xiàn)。從突出計算機(jī)組成的基本原理和實現(xiàn)簡單考慮,現(xiàn)。從突出計算機(jī)組成的基本原理和實現(xiàn)簡單考慮,把全部指令的執(zhí)行功能把全部指令的執(zhí)行功能劃分到劃分到 2 2 或或 3 3 個步驟中個步驟中并并分配分配給不同的部件給不同的部件去完成,即控制器完成讀取指令、運(yùn)算去完成,即控制器完成讀取指令、運(yùn)算器完成數(shù)據(jù)或內(nèi)存地址計算、內(nèi)存儲器完成器完成

33、數(shù)據(jù)或內(nèi)存地址計算、內(nèi)存儲器完成數(shù)據(jù)(指數(shù)據(jù)(指令)令)讀寫這樣讀寫這樣 3 3 個步驟。下面分別介紹該計算機(jī)系統(tǒng)個步驟。下面分別介紹該計算機(jī)系統(tǒng)各個部件的實際組成。各個部件的實際組成。38硬件組成的設(shè)計依據(jù)硬件組成的設(shè)計依據(jù)運(yùn)算器設(shè)計考慮:運(yùn)算器設(shè)計考慮: 運(yùn)算器包括寄存器組運(yùn)算器包括寄存器組REGs REGs 、算邏運(yùn)算單元、算邏運(yùn)算單元ALUALU和和 FlagFlag。 REGsREGs的組成和控制的組成和控制: R R型指令型指令的寄存器編號是的寄存器編號是 4 4位,故位,故REGsREGs可由可由1616個寄存器組成。為實現(xiàn)個寄存器組成。為實現(xiàn) REGsdr op REGssrR

34、EGsdr op REGssr REGsdrREGsdr,需要,需要REGsREGs支持雙端口讀出和單端口控制寫入。為支持雙端口讀出和單端口控制寫入。為把把寄存器讀出、寄存器讀出、ALUALU運(yùn)算、結(jié)果寫回運(yùn)算、結(jié)果寫回三項操作安排在同一個步三項操作安排在同一個步驟中完成,要把驟中完成,要把ALUALU的運(yùn)算結(jié)果送到的運(yùn)算結(jié)果送到REGsREGs的數(shù)據(jù)輸入端。還要的數(shù)據(jù)輸入端。還要支持移位指令支持移位指令( (SHLSHL、SHRSHR) ),因此在,因此在REGsREGs的數(shù)據(jù)輸入端選用了的數(shù)據(jù)輸入端選用了三選一的電路三選一的電路分別接收分別接收ALUALU本位的值、左移一位的值、右移一本位

35、的值、左移一位的值、右移一位的值,由信號位的值,由信號 reg_src reg_src 實現(xiàn)此處的選擇控制。實現(xiàn)此處的選擇控制。 送到送到REGsREGs的寄存器編號可以來自指令寄存器的的寄存器編號可以來自指令寄存器的 drdr和和 sr sr字段,字段,再考慮到把通用寄存器再考慮到把通用寄存器R4R4用作為堆棧指針用作為堆棧指針SPSP,ININ 和和OUTOUT 指令指令要默認(rèn)使用要默認(rèn)使用R0R0,所以,所以REGsREGs的兩個端口的兩個端口B B和和A A分別使用分別使用三選一三選一、二選一二選一電路得到寄存器編號,由控制信號電路得到寄存器編號,由控制信號 b_selb_sel、a_

36、sel a_sel 實現(xiàn)選實現(xiàn)選擇。擇。A A、B B用于控制讀出,用于控制讀出,B B還同時用于控制寫入還同時用于控制寫入。 是否執(zhí)行寄存器組的寫入操作取決于是否執(zhí)行寄存器組的寫入操作取決于 reg_wtreg_wt 信號。信號。39硬件組成的設(shè)計依據(jù)硬件組成的設(shè)計依據(jù)運(yùn)算器設(shè)計考慮運(yùn)算器設(shè)計考慮: ALUALU的組成和控制的組成和控制:從指令系統(tǒng)看,:從指令系統(tǒng)看,ALUALU需要實現(xiàn)加、減需要實現(xiàn)加、減法法 2 2種算術(shù)運(yùn)算,與、或、異或種算術(shù)運(yùn)算,與、或、異或 3 3種邏輯運(yùn)算,這可以通過種邏輯運(yùn)算,這可以通過3 3位位的功能選擇碼的功能選擇碼 alu_funcalu_func 來實現(xiàn)

37、選擇。需要產(chǎn)生進(jìn)位輸出信號來實現(xiàn)選擇。需要產(chǎn)生進(jìn)位輸出信號CyCy 和結(jié)果為和結(jié)果為0 0 標(biāo)志標(biāo)志ZeroZero,并將其保存到標(biāo)志位寄存器,并將其保存到標(biāo)志位寄存器 FlagsFlags中,要中,要用用flag_funcflag_func信號指明具體要求。信號指明具體要求。 ALUALU的的S S端輸入端輸入要接收通過要接收通過B B口從寄存器組讀出的數(shù)據(jù)或通口從寄存器組讀出的數(shù)據(jù)或通過過A A口讀出的數(shù)據(jù),和常數(shù)口讀出的數(shù)據(jù),和常數(shù)0 (0 (用于實現(xiàn)例如用于實現(xiàn)例如R+0R+0的操作的操作) ),用,用s_sel s_sel 信號實現(xiàn)選擇。信號實現(xiàn)選擇。R R端輸入端輸入要接收通過要接

38、收通過A A口從寄存器組讀出的口從寄存器組讀出的數(shù)據(jù)、常數(shù)數(shù)據(jù)、常數(shù)0 (0 (用于實現(xiàn)例如用于實現(xiàn)例如S+0S+0的操作的操作) )、常數(shù)、常數(shù)1 (1 (用于實現(xiàn)例如用于實現(xiàn)例如S+1S+1、S-1S-1的操作的操作) ),或從內(nèi)部總線,或從內(nèi)部總線IB IB 送來的數(shù)據(jù)送來的數(shù)據(jù) ( (接收讀內(nèi)存、接收讀內(nèi)存、讀接口指令讀來的數(shù)據(jù)讀接口指令讀來的數(shù)據(jù)) ),用,用 r-selr-sel 信號實現(xiàn)選擇。信號實現(xiàn)選擇。經(jīng)經(jīng)A A口讀出的口讀出的數(shù)據(jù)可以與數(shù)據(jù)可以與ALUALU的輸出實現(xiàn)二選一共同作為輸出結(jié)果的輸出實現(xiàn)二選一共同作為輸出結(jié)果。 ALUALU的輸出的輸出 若是數(shù)據(jù)運(yùn)算結(jié)果,可寫回

39、寄存器組,也可經(jīng)若是數(shù)據(jù)運(yùn)算結(jié)果,可寫回寄存器組,也可經(jīng)IB IB 寫入內(nèi)存或接口電路,若是內(nèi)存地址,則需要寫入寫入內(nèi)存或接口電路,若是內(nèi)存地址,則需要寫入ARAR。40 運(yùn)算器部件運(yùn)算器部件用到的用到的信息和控制信號匯總信息和控制信號匯總:對對REGs: b_sel 和和a_sel 選擇寄存器編號選擇寄存器編號, reg_src選擇寫入數(shù)據(jù)選擇寫入數(shù)據(jù), reg_wt 控制寫入操作??刂茖懭氩僮?。對對ALU :s_sel和和r_sel 選擇選擇 2 路輸入數(shù)據(jù),路輸入數(shù)據(jù),alu_func選擇運(yùn)算功能選擇運(yùn)算功能, flag_func控制標(biāo)志位的控制標(biāo)志位的接收操作,接收操作,y_sel選擇

40、把選擇把ALU結(jié)果結(jié)果還是還是 A口數(shù)據(jù)送到口數(shù)據(jù)送到 Y, y_ib控制控制 Y內(nèi)容內(nèi)容 送送IB,ar_wt控制控制 AR寄存器的寄存器的寫入操作。寫入操作。41看一下加法指令在看一下加法指令在運(yùn)算運(yùn)算器部件器部件中的執(zhí)行過程中的執(zhí)行過程。R2+R3R2REGs(2) + REGs(3) REG(2) b_sel 選選00 a_sel 選選00 s_sel 選選00 r_sel 選選00 alu_func 選選000 reg_src 選選00 reg_wt 選選 1 flag_func選選 001231234234512342345357923 +00000000 0010 0011指令內(nèi)

41、容指令內(nèi)容00動畫演示動畫演示42 運(yùn)算器運(yùn)算器和其他部件和其他部件之間信息傳送關(guān)系之間信息傳送關(guān)系: 控制器部件控制器部件要送來要送來 dr和和sr信息信息, 以及以及b_sel, a_sel, reg_src, reg_wt, s_sel,r_sel ,alu_func, flag_func, y_sel, y_ib, ar_wt 控制信號。控制信號。 運(yùn)算器向控制器送運(yùn)算器向控制器送標(biāo)志位信息標(biāo)志位信息 C 和和 Z,以,以及由及由 sr 選擇的寄存器選擇的寄存器的內(nèi)容到控制器的的內(nèi)容到控制器的 PC 。向地址總線送數(shù)據(jù)地址向地址總線送數(shù)據(jù)地址(AR的內(nèi)容)。還要通的內(nèi)容)。還要通過內(nèi)部

42、總線過內(nèi)部總線IB 與存儲器與存儲器和串行接口交換數(shù)據(jù)。和串行接口交換數(shù)據(jù)。433、浮點數(shù)在計算機(jī)內(nèi)的格式、浮點數(shù)在計算機(jī)內(nèi)的格式浮點數(shù)浮點數(shù): X = MS ES Em-1 .E2 E1 M-1M-2.M-n 浮點數(shù)的浮點數(shù)的階碼階碼的位數(shù)決定數(shù)的表示范圍,的位數(shù)決定數(shù)的表示范圍,尾數(shù)尾數(shù)的的位數(shù)決定數(shù)的精度,精度不夠造成誤差位數(shù)決定數(shù)的精度,精度不夠造成誤差 IEEE 標(biāo)準(zhǔn):標(biāo)準(zhǔn):階碼用移碼階碼用移碼, 基為基為2;尾數(shù)用原碼;尾數(shù)用原碼 符號位符號位 階碼位階碼位 尾數(shù)數(shù)碼位尾數(shù)數(shù)碼位 總位數(shù)總位數(shù)單精度單精度(短短)浮點數(shù)浮點數(shù): 1 8 23 32雙精度雙精度(長長)浮點數(shù)浮點數(shù):

43、1 11 52 64 臨時浮點數(shù)臨時浮點數(shù): 1 15 64 80 臨時浮點數(shù)僅用于計算過程,它不屬于臨時浮點數(shù)僅用于計算過程,它不屬于 IEEE 標(biāo)準(zhǔn),在某標(biāo)準(zhǔn),在某些計算機(jī)的系統(tǒng)中,用于減少計算誤差。些計算機(jī)的系統(tǒng)中,用于減少計算誤差。 EXX = MX244浮點數(shù)的浮點數(shù)的尾數(shù)部分尾數(shù)部分 (規(guī)格化表示規(guī)格化表示) 尾數(shù)用原碼表示尾數(shù)用原碼表示 浮點數(shù)是數(shù)學(xué)中實數(shù)的子集合,由一個純小數(shù)乘上浮點數(shù)是數(shù)學(xué)中實數(shù)的子集合,由一個純小數(shù)乘上一個指數(shù)值兩部分組成。在計算機(jī)內(nèi),一個指數(shù)值兩部分組成。在計算機(jī)內(nèi),其純小數(shù)部分其純小數(shù)部分被稱為浮點數(shù)的尾數(shù)被稱為浮點數(shù)的尾數(shù),對非,對非 0 值的浮點數(shù),

44、要求尾數(shù)值的浮點數(shù),要求尾數(shù)的絕對值的絕對值必須必須 0.5,稱滿足這種表示要求的浮點數(shù)為,稱滿足這種表示要求的浮點數(shù)為規(guī)格化表示規(guī)格化表示; 把不滿足這一表示要求的尾數(shù),變成滿足這一要把不滿足這一表示要求的尾數(shù),變成滿足這一要求的尾數(shù)的操作過程,叫作浮點數(shù)的求的尾數(shù)的操作過程,叫作浮點數(shù)的規(guī)格化處理規(guī)格化處理,通,通過移位尾數(shù)和修改階碼實現(xiàn)。過移位尾數(shù)和修改階碼實現(xiàn)。 EXX = MX2浮點數(shù)浮點數(shù): X = MS ES Em-1 .E2 E1 M-1M-2.M-n IEEE 標(biāo)準(zhǔn):標(biāo)準(zhǔn):階碼用移碼,基為階碼用移碼,基為2;45浮點數(shù)的浮點數(shù)的尾數(shù)部分尾數(shù)部分 (隱藏位概念隱藏位概念) 尾數(shù)

45、用原碼表示尾數(shù)用原碼表示 按按 IEEE 規(guī)定的標(biāo)準(zhǔn),浮點數(shù)的尾數(shù)用原碼表示,即符號規(guī)定的標(biāo)準(zhǔn),浮點數(shù)的尾數(shù)用原碼表示,即符號位位 Ms用用 0 表示正,表示正,1 表示負(fù)表示負(fù),且非,且非 0 值尾數(shù)數(shù)值的最高位值尾數(shù)數(shù)值的最高位 M-1 必為必為 1, 才符合浮點數(shù)規(guī)格化表示的要求;才符合浮點數(shù)規(guī)格化表示的要求; 既然非既然非 0 值浮點數(shù)的尾數(shù)數(shù)值最高位值浮點數(shù)的尾數(shù)數(shù)值最高位必定為必定為 1,則在保存,則在保存浮點數(shù)到內(nèi)存前,通過尾數(shù)左移浮點數(shù)到內(nèi)存前,通過尾數(shù)左移, 強(qiáng)行把該位去掉強(qiáng)行把該位去掉, 用同樣多的用同樣多的尾數(shù)位就能多存一位二進(jìn)制數(shù),有利于提高數(shù)據(jù)表示精度,把尾數(shù)位就能多

46、存一位二進(jìn)制數(shù),有利于提高數(shù)據(jù)表示精度,把這種處理方案稱作為這種處理方案稱作為隱藏位隱藏位技術(shù)。當(dāng)然,在取回這樣的浮點數(shù)技術(shù)。當(dāng)然,在取回這樣的浮點數(shù)到運(yùn)算器執(zhí)行運(yùn)算時,必須先恢復(fù)該隱藏位。到運(yùn)算器執(zhí)行運(yùn)算時,必須先恢復(fù)該隱藏位。EXX = MX2浮點數(shù)浮點數(shù): X = MS ES Em-1 .E2 E1 M-1M-2.M-n IEEE 標(biāo)準(zhǔn):標(biāo)準(zhǔn):階碼用移碼,基為階碼用移碼,基為2;46浮點數(shù)的浮點數(shù)的階碼部分階碼部分 (移碼知識移碼知識) IEEE 標(biāo)準(zhǔn):標(biāo)準(zhǔn):階碼用移碼,基為階碼用移碼,基為2 按按 IEEE 標(biāo)準(zhǔn),浮點數(shù)的標(biāo)準(zhǔn),浮點數(shù)的階碼用整數(shù)給出,用移碼表階碼用整數(shù)給出,用移碼表示

47、示,用作為以用作為以 2 為底的指數(shù)的冪。既然該指數(shù)的底一定為為底的指數(shù)的冪。既然該指數(shù)的底一定為 2 ,就就不必不必在浮點數(shù)的格式中予以表示,在浮點數(shù)的格式中予以表示, 只需給出指數(shù)的冪值。只需給出指數(shù)的冪值。 移碼移碼只用于只用于表示整數(shù)表示整數(shù),只用在,只用在浮點數(shù)的階碼部分浮點數(shù)的階碼部分,其定義類似于整數(shù)的補(bǔ)碼定義,差別在符號位。其定義類似于整數(shù)的補(bǔ)碼定義,差別在符號位。 移碼的符號位移碼的符號位是是 0 表示負(fù),表示負(fù),1 表示正表示正,與補(bǔ)碼的符號,與補(bǔ)碼的符號位正好相反,移碼使機(jī)器數(shù)和其真值在數(shù)軸上是移位關(guān)系;位正好相反,移碼使機(jī)器數(shù)和其真值在數(shù)軸上是移位關(guān)系; 移碼的數(shù)值位移

48、碼的數(shù)值位 與補(bǔ)碼的數(shù)值位完全相同與補(bǔ)碼的數(shù)值位完全相同。EXX = MX2 浮點數(shù)浮點數(shù): X = MS ES Em-1 .E2 E1 M-1M-2.M-n 47浮點數(shù)格式浮點數(shù)格式: 移碼移碼的知識小結(jié)的知識小結(jié) 8 位的移碼能表示位的移碼能表示 0000000011111111, 對應(yīng)十進(jìn)制對應(yīng)十進(jìn)制的的 -128+127。對于移對于移128 的方案的方案,它的機(jī)器數(shù)為數(shù)的,它的機(jī)器數(shù)為數(shù)的真值在數(shù)軸上真值在數(shù)軸上向右平移向右平移了了 128 個位置,用個位置,用 1 位符號位位符號位和和 n 位數(shù)值位表示的移碼位數(shù)值位表示的移碼, 其定義為:其定義為: E移移 = 2n + E -2n

49、=E2n 范圍范圍: 00000000 11111111 移碼只用于表示整數(shù),僅用于浮點數(shù)的階碼,通移碼只用于表示整數(shù),僅用于浮點數(shù)的階碼,通常僅執(zhí)行加減和常僅執(zhí)行加減和 增增 1、 減減 1 運(yùn)算。在加減運(yùn)算時,其運(yùn)算。在加減運(yùn)算時,其符號位計算結(jié)果求反符號位計算結(jié)果求反后,才是結(jié)果正確符號位的值。后,才是結(jié)果正確符號位的值。 移碼中移移碼中移128的方案的方案用于浮點數(shù)的計算過程用于浮點數(shù)的計算過程,而在,而在IEEE浮點數(shù)標(biāo)準(zhǔn)浮點數(shù)標(biāo)準(zhǔn)754中規(guī)定,要對尾數(shù)采用隱藏位,中規(guī)定,要對尾數(shù)采用隱藏位,其階碼就選用移其階碼就選用移127的方案,的方案,是浮點數(shù)的存儲格式是浮點數(shù)的存儲格式。48

50、浮點數(shù)的表示范圍浮點數(shù)的表示范圍浮點數(shù)的溢出表現(xiàn)為階碼的溢出浮點數(shù)的溢出表現(xiàn)為階碼的溢出浮點數(shù)的上溢浮點數(shù)的上溢 (overflow)數(shù)據(jù)太大,以至于大于階碼所能表示的數(shù)值數(shù)據(jù)太大,以至于大于階碼所能表示的數(shù)值浮點數(shù)的下溢浮點數(shù)的下溢 (underflow)數(shù)據(jù)太小,以至于小于階碼所能表示的數(shù)值數(shù)據(jù)太小,以至于小于階碼所能表示的數(shù)值 負(fù)負(fù) 上上 溢溢 負(fù)負(fù) 下下 溢溢 正正 下下 溢溢 正正 上上 溢溢 - + 負(fù)負(fù) 數(shù)數(shù) 正正 數(shù)數(shù) 049浮點運(yùn)算器與浮點數(shù)運(yùn)算浮點運(yùn)算器與浮點數(shù)運(yùn)算 浮點運(yùn)算器浮點運(yùn)算器通常由通常由 處理階碼處理階碼的的 和和 處理尾數(shù)處理尾數(shù)的的 兩個定點運(yùn)算器兩個定點運(yùn)

51、算器線路組成線路組成 在早期的小或微型機(jī)中,浮點運(yùn)算器通常以在早期的小或微型機(jī)中,浮點運(yùn)算器通常以任選件任選件方式提供給用戶方式提供給用戶 , 主要用于計算浮點數(shù)。主要用于計算浮點數(shù)。浮點數(shù)加減運(yùn)算浮點數(shù)加減運(yùn)算 對階對階 尾數(shù)加減尾數(shù)加減 規(guī)格化規(guī)格化 舍入處理舍入處理 判溢出判溢出浮點數(shù)乘除運(yùn)算浮點數(shù)乘除運(yùn)算階碼加減階碼加減 尾數(shù)乘除尾數(shù)乘除 舍入與規(guī)格化處理舍入與規(guī)格化處理 判溢出判溢出50浮點運(yùn)算器舉例浮點運(yùn)算器舉例-Intel 80287 數(shù)據(jù)數(shù)據(jù) 浮點運(yùn)算部件浮點運(yùn)算部件以協(xié)處理器方式和以協(xié)處理器方式和CPU CPU 連接,有獨立連接,有獨立的控制邏輯;的控制邏輯; 8 8個個 8

52、080位位 浮點浮點數(shù)寄存器,精度更數(shù)寄存器,精度更高,采用堆棧結(jié)構(gòu)高,采用堆棧結(jié)構(gòu)并進(jìn)行了擴(kuò)展;并進(jìn)行了擴(kuò)展; 支持支持 3 3大類共大類共 7 7 種數(shù)據(jù),支持約種數(shù)據(jù),支持約 60 60 條指令;條指令; 在后來的奔騰在后來的奔騰機(jī)中有重大改進(jìn)。機(jī)中有重大改進(jìn)。51浮點數(shù)算術(shù)運(yùn)算浮點數(shù)算術(shù)運(yùn)算(1)對階操作,求階差:)對階操作,求階差: E= MX -MY, 使階碼小的數(shù)的尾數(shù)右移使階碼小的數(shù)的尾數(shù)右移E 位,位, 其階碼取大的階碼值;其階碼取大的階碼值;(2)尾數(shù)加減;)尾數(shù)加減;(3)規(guī)格化處理;)規(guī)格化處理;(4)舍入操作,可能帶來又一次規(guī)格化;)舍入操作,可能帶來又一次規(guī)格化;(

53、5)判結(jié)果的正確性,即檢查階碼上下溢出)判結(jié)果的正確性,即檢查階碼上下溢出EXX = MX 2 EYY = MY 2 浮點數(shù)加減運(yùn)算浮點數(shù)加減運(yùn)算52浮點數(shù)加運(yùn)算舉例浮點數(shù)加運(yùn)算舉例 X=2+0100.1101111, Y=2+100(-0.1010110)寫出寫出X、Y的正確的浮點數(shù)表示:的正確的浮點數(shù)表示: 階碼用階碼用 4 位移碼位移碼 尾數(shù)用尾數(shù)用 8 位原碼位原碼 (含符號位(含符號位 ) (含符號位(含符號位 ) X浮浮 = 0 1 010 1101111 Y浮浮 = 1 1 100 1010110為運(yùn)算方便,尾數(shù)的符號位寫在數(shù)值位之前:為運(yùn)算方便,尾數(shù)的符號位寫在數(shù)值位之前: X

54、浮浮 = 1 010 0 1101111 Y浮浮 = 1 100 1 1010110 53浮點數(shù)加運(yùn)算舉例浮點數(shù)加運(yùn)算舉例 X=2+0100.1101111, Y=2+100(-0.1010110)(1)計算階差)計算階差(移碼計算):(移碼計算): E = EX -EY= EX +(-EY) = 1 010 + 0 100 = 0 110 注意:注意:階碼計算結(jié)果的符號位在此變了一次反,階碼計算結(jié)果的符號位在此變了一次反,為為 -2 的的 移碼,移碼, 是是X的階碼值小,使其取的階碼值小,使其取 Y 的階碼值的階碼值1100(即(即 +4););因此,相應(yīng)地修改因此,相應(yīng)地修改 MX原原 =

55、0 0011011 11(即右移(即右移 2 位)位)(2)尾數(shù)求和)尾數(shù)求和: 1 1010110 0 0011011 11 1 0111010 01右移出的右移出的11被保存到保護(hù)位中被保存到保護(hù)位中此處是原碼加法,符號不相此處是原碼加法,符號不相同,絕對值大的減小的,結(jié)同,絕對值大的減小的,結(jié)果符號取決于絕對值大的數(shù)果符號取決于絕對值大的數(shù)54浮點數(shù)加運(yùn)算舉例浮點數(shù)加運(yùn)算舉例 X=2+010 0.1101111 ,Y=2+100 (-0.1010110)(3)規(guī)格化處理)規(guī)格化處理:相加結(jié)果是:相加結(jié)果是: 1 0111010 01 相加相加結(jié)果的數(shù)值最高位為結(jié)果的數(shù)值最高位為 0,應(yīng)執(zhí)行,應(yīng)執(zhí)行 1 次左規(guī)操作次左規(guī)操作, 故得故得 MX+Y原原 = 1 1110100 1, 階碼減階碼減 1 得得 1 011 (為為+3)(4)舍入處理)舍入處理: 采用采用 0 舍舍 1入方案,在最低位入方案,在最低位 1 1 1110100 + 0 0000001 1 1110101 此處是原碼加法此處是原碼加法(5)檢查溢出否:和的階碼為)檢查溢出否:和的階碼為 1011,不溢出不溢出 計算后的計算后的 XY浮浮 = 1 1011 1110101 即數(shù)的實際值為:即數(shù)的實際值為: 23(-0.1110101)55浮點數(shù)算術(shù)運(yùn)算浮點數(shù)算術(shù)運(yùn)算 (1) 階碼加、減:階碼加

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論