計算機(jī)組成和結(jié)構(gòu)課件第二章_第1頁
計算機(jī)組成和結(jié)構(gòu)課件第二章_第2頁
計算機(jī)組成和結(jié)構(gòu)課件第二章_第3頁
計算機(jī)組成和結(jié)構(gòu)課件第二章_第4頁
計算機(jī)組成和結(jié)構(gòu)課件第二章_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章運(yùn)算方法與運(yùn)算器Department of Computer覃 穎 Tel: 6392292Email: 2.1 數(shù)據(jù)與文字的表示方法 2.1.1 數(shù)的機(jī)器碼表示在計算機(jī)中參與運(yùn)算的數(shù)有兩大類:無符號數(shù)和有符號數(shù)。無符號數(shù):所謂無符號數(shù),即沒有符號的數(shù),數(shù)中的每一位均是有效數(shù)值。有符號數(shù):將符號數(shù)字化,用“0”表示“正”,用“1”表示“負(fù)”,并且規(guī)定放在有效數(shù)字的前面,這就構(gòu)成有符號數(shù)。2.1 數(shù)據(jù)與文字的表示方法 2.1.1 數(shù)的機(jī)器碼表示機(jī)器數(shù)與真值:把符號“數(shù)字化”的數(shù)叫機(jī)器數(shù),而把帶“+”或“-”符號的數(shù)叫真值。機(jī)器數(shù)實(shí)質(zhì)是符號和數(shù)值形成的一種編碼表

2、示,常見的有原碼、反碼、補(bǔ)碼和移碼等表示法。2.1 數(shù)據(jù)與文字的表示方法 2.1.1 數(shù)的機(jī)器碼表示原碼表示法: 整數(shù)原碼的定義: x原= 0,x 2n x 0 2n x 0 x -2n 小數(shù)原碼的定義: x原= x 1 x 0 1x 0 x -1 式中x為真值,n為整數(shù)的位數(shù)2.1 數(shù)據(jù)與文字的表示方法 2.1.1 數(shù)的機(jī)器碼表示原碼表示法:原碼表示是一種帶符號的絕對值表示方法。 例如,+0.1001,則原0.1001 -0.1001,則原1.1001采用原碼表示法簡單易懂,但它的最大缺點(diǎn)是加法運(yùn)算復(fù)雜。 2.1 數(shù)據(jù)與文字的表示方法 2.1.1 數(shù)的機(jī)器碼表示補(bǔ)碼表示法: 整數(shù)補(bǔ)碼的定義:

3、 x補(bǔ)= 0,x 2n x 0 2n+1 +x 0 x -2n (mod 2n+1) 小數(shù)補(bǔ)碼的定義: x補(bǔ)= x 1 x 0 2+x 0 x -1 (mod 2) 式中x為真值,n為整數(shù)的位數(shù)2.1 數(shù)據(jù)與文字的表示方法 2.1.1 數(shù)的機(jī)器碼表示補(bǔ)碼表示法: 例如,+0.1011,則補(bǔ)0.1011 -0.1011,則補(bǔ)10+ 10.0000-0.1011 1.0101采用補(bǔ)碼表示法進(jìn)行減法運(yùn)算就比原碼方便得多了。因?yàn)椴徽摂?shù)是正還是負(fù),機(jī)器總是做加法,減法運(yùn)算可變?yōu)榧臃ㄟ\(yùn)算。 2.1 數(shù)據(jù)與文字的表示方法 2.1.1 數(shù)的機(jī)器碼表示反碼表示法: 整數(shù)反碼的定義: x反= 0,x 2n x 0

4、 (2n+1-1)+x 0 x -2n (mod 2n+1-1) 小數(shù)反碼的定義: x反= x 1 x 0 (2-2-n)+x 0 x -1 (mod 2-2-n) 式中x為真值,n為整數(shù)的位數(shù)2.1 數(shù)據(jù)與文字的表示方法 2.1.1 數(shù)的機(jī)器碼表示反碼表示法:所謂反碼,就是二進(jìn)制的各位數(shù)碼0變?yōu)?,1變?yōu)?。 例如,+0.1011,則反0.1011 -0.1011,則反10-0.0001+ 1.1111-0.1011 1.0100不難證明:補(bǔ)反2-n 這個公式告訴我們,若要一個負(fù)數(shù)變補(bǔ)碼,其方法是符號位置1,其余各位0變1,1變0,然后在最末位(2-n)上加1。 2.1 數(shù)據(jù)與文字的表示方法

5、 2.1.1 數(shù)的機(jī)器碼表示移碼表示法:移碼通常用于表示定點(diǎn)整數(shù)。 整數(shù)移碼的定義: x移= 2n +x 2n x -2n 式中x為真值,n為整數(shù)的位數(shù)2.1 數(shù)據(jù)與文字的表示方法 2.1.1 數(shù)的機(jī)器碼表示移碼表示法: 例如,+10101,則移25+10101 1,10101 -10101,則移25+ 100000-10101 0,01011顯然,移碼中符號位表示的規(guī)律與原碼、補(bǔ)碼、反碼相反。 二進(jìn)制代碼無符號數(shù)對應(yīng)的真值原碼對應(yīng)的真值補(bǔ)碼對應(yīng)的真值反碼對應(yīng)的真值移碼對應(yīng)的真值0000000000000001000000100111111001111111100000001000000110

6、000010111111011111111011111111012126127128129130253254255+0+1+2+126+127-0-1-2-125-126-127+0+1+2+126+127-128-127-126-3-2-1+0+1+2+126+127-127-126-125-2-1-0-128-127-126-2-10+1+2+125+126+1272.1 數(shù)據(jù)與文字的表示方法 2.1.2 數(shù)據(jù)格式 在選擇計算機(jī)的數(shù)的表示方式時,需要考慮以下幾個因素:(1)要表示的數(shù)的類型(小數(shù)、整數(shù)、實(shí)數(shù)和復(fù)數(shù));(2)可能遇到的數(shù)值范圍;(3)熟知精確度;(4)數(shù)據(jù)存儲和處理所需要的硬

7、件代價。 2.1 數(shù)據(jù)與文字的表示方法 2.1.2 數(shù)據(jù)格式 計算機(jī)中常用的數(shù)據(jù)表示格式有兩種,一是定點(diǎn)格式,二是浮點(diǎn)格式。一般來說,定點(diǎn)格式容許的數(shù)值范圍有限,但要求的處理硬件比較簡單。而浮點(diǎn)格式容許的數(shù)值范圍很大,但要求的處理硬件比較復(fù)雜。 2.1 數(shù)據(jù)與文字的表示方法 2.1.2 數(shù)據(jù)格式 定點(diǎn)數(shù)的表示方法:所謂定點(diǎn)格式,即約定機(jī)器中所有數(shù)據(jù)的小數(shù)點(diǎn)位置是固定不變的。有兩種格式:定點(diǎn)整數(shù)和定點(diǎn)小數(shù)。 定點(diǎn)整數(shù):小數(shù)點(diǎn)位于數(shù)值位之后,機(jī)器內(nèi)的數(shù)為純整數(shù)。定點(diǎn)小數(shù):小數(shù)點(diǎn)位于數(shù)符和第一數(shù)值位之間,機(jī)器內(nèi)的數(shù)為純小數(shù)。SfS1S2Sn數(shù)符數(shù)值部分2.1 數(shù)據(jù)與文字的表示方法 2.1.2 數(shù)據(jù)格

8、式 浮點(diǎn)數(shù)的表示方法: 通常,浮點(diǎn)數(shù)表示為N = M re M為尾數(shù),e為階碼,r是基數(shù)(在計算機(jī)中,可取2、4、8或16等)。為提高數(shù)據(jù)精度和便于浮點(diǎn)數(shù)的比較,計算機(jī)中規(guī)定浮點(diǎn)數(shù)的尾數(shù)用純小數(shù)形式,并將尾數(shù)最高位為1的浮點(diǎn)數(shù)稱作規(guī)格化數(shù)。2.1 數(shù)據(jù)與文字的表示方法 2.1.2 數(shù)據(jù)格式 浮點(diǎn)數(shù)的表示方法:在早期計算機(jī)中,一個機(jī)器浮點(diǎn)數(shù)由階碼和尾數(shù)及其符號位組成: 2.1 數(shù)據(jù)與文字的表示方法 2.1.2 數(shù)據(jù)格式 浮點(diǎn)數(shù)的表示方法:按照 IEEE754 的標(biāo)準(zhǔn),32位浮點(diǎn)數(shù)和64位浮點(diǎn)數(shù)的標(biāo)準(zhǔn)格式為:浮點(diǎn)數(shù)的符號位 ;:階碼,采用移碼方式(好處);:尾數(shù),小數(shù)點(diǎn)放在尾數(shù)域的最前面,尾數(shù)域所

9、表示的值是1.M (為什么) 。 2.1 數(shù)據(jù)與文字的表示方法 2.1.2 數(shù)據(jù)格式 十進(jìn)制數(shù)串的表示方法:大多數(shù)通用性較強(qiáng)的計算機(jī)都能直接處理十進(jìn)制形式表示的數(shù)據(jù)。十進(jìn)制數(shù)串在計算機(jī)內(nèi)主要有兩種表示形式:字符串形式 壓縮的十進(jìn)制數(shù)串形式 2.1 數(shù)據(jù)與文字的表示方法 2.1.2 數(shù)據(jù)格式 十進(jìn)制數(shù)串的表示方法字符串形式 :即一個字節(jié)存放一個十進(jìn)制的數(shù)位或符號位。在主存中,這樣的一個十進(jìn)制數(shù)占用連續(xù)的多個字節(jié),故為了指明這樣一個數(shù),需要給出該數(shù)在主存中的起始地址和位數(shù)(串的長度)。這種方式表示的十進(jìn)制字符串主要用在非數(shù)值計算的應(yīng)用領(lǐng)域中。 2.1 數(shù)據(jù)與文字的表示方法 2.1.2 數(shù)據(jù)格式 十

10、進(jìn)制數(shù)串的表示方法壓縮的十進(jìn)制數(shù)串形式 :即一個字節(jié)存放兩個十進(jìn)制的數(shù)位。它比前一種形式節(jié)省存儲空間,又便于直接完成十進(jìn)制數(shù)的算術(shù)運(yùn)算,是廣泛采用的較為理想的方法。與第一種表示形式類似,要指明一個壓縮的十進(jìn)制數(shù)串,也得給出它在主存中的首地址和數(shù)字位個數(shù)(不含符號位),又稱位長,位長為0的數(shù)其值為0。十進(jìn)制數(shù)串表示法的優(yōu)點(diǎn)是位長可變,許多機(jī)器中規(guī)定該長度從0到31,有的甚至更長。 2.1 數(shù)據(jù)與文字的表示方法 2.1.3 字符與字符串的表示方法 現(xiàn)代計算機(jī)不僅處理數(shù)值領(lǐng)域的問題,而且處理大量非數(shù)值領(lǐng)域的問題。這樣一來,必然要引入文字、字母以及某些專用符號,以便表示文字語言、邏輯語言等信息。例如人

11、機(jī)交換信息時使用英文字母、標(biāo)點(diǎn)符號、十進(jìn)制數(shù)以及諸如$,%,+等符號。然而數(shù)字計算機(jī)只能處理二進(jìn)制數(shù)據(jù),因此,上述信息應(yīng)用到計算機(jī)中時,都必須編寫成二進(jìn)制各式的代碼,也就是字符信息用數(shù)據(jù)表示,成為符號數(shù)據(jù)。 2.1 數(shù)據(jù)與文字的表示方法 2.1.3 字符與字符串的表示方法 目前國際上普遍采用的字符系統(tǒng)是ASCII碼(美國國家信息交換標(biāo)準(zhǔn)字符碼), ASCII碼規(guī)定8個二進(jìn)制位的最高一位為0,余下的7位可以給出128個編碼,表示128個不同的字符。 字符串是指連續(xù)的一串字符,通常方式下,它們占用主存中連續(xù)的多個字節(jié),每個字節(jié)存一個字符。當(dāng)主存字由2個或4個字節(jié)組成時,在同一個主存字中,既可按從低

12、位字節(jié)向高位字節(jié)的順序存放字符串的內(nèi)容,也可按從高位字節(jié)向低位字節(jié)的次序順序存放字符串的內(nèi)容。這兩種存放方式都是常用方式,不同的計算機(jī)可以選用其中任何一種。 2.1 數(shù)據(jù)與文字的表示方法 2.1.4 漢字的表示方法 漢字的輸入編碼:為了能直接使用西文標(biāo)準(zhǔn)鍵盤把漢字輸入到計算機(jī),就必須為漢字設(shè)計相應(yīng)的輸入編碼方法。當(dāng)前采用的方法主要有以下三類: 數(shù)字編碼:常用的是國標(biāo)區(qū)位碼 拼音碼:拼音碼是以漢字拼音為基礎(chǔ)的輸入方法。 字形編碼:字形編碼是用漢字的形狀來進(jìn)行的編碼。除了上述三種編碼方法之外,為了加快輸入速度,在上述方法基礎(chǔ)上,發(fā)展了詞組輸入聯(lián)想輸入等多種快速輸入方法。但是都利用了鍵盤進(jìn)行“手動”

13、輸入。理想的輸入方式是利用語音或圖象識別技術(shù)“自動”將拼音或文本輸入到計算機(jī)內(nèi),使計算機(jī)能認(rèn)識漢字,聽懂漢語,并將其自動轉(zhuǎn)換為機(jī)內(nèi)代碼表示。目前這種理想已經(jīng)成為現(xiàn)實(shí)。 2.1 數(shù)據(jù)與文字的表示方法 2.1.4 漢字的表示方法 漢字內(nèi)碼:漢字內(nèi)碼是用于漢字信息的存儲、交換、檢索等操作的機(jī)內(nèi)代碼,一般采用兩個字節(jié)表示。英文字符的機(jī)內(nèi)代碼是七位的ASCII碼,當(dāng)用一個字節(jié)表示時,最高位為“0”。為了與英文字符能相互區(qū)別,漢字機(jī)內(nèi)代碼中兩個字節(jié)的最高位均規(guī)定為“1”。有些系統(tǒng)中字節(jié)的最高位用于奇偶校驗(yàn)位,這種情況下用三個字節(jié)表示漢字內(nèi)碼。2.1 數(shù)據(jù)與文字的表示方法 2.1.4 漢字的表示方法 漢字字

14、模碼:字模碼是用點(diǎn)陣表示的漢字字形代碼,它是漢字的輸出形式。 根據(jù)漢字輸出的要求不同,點(diǎn)陣的多少也不同。簡易型漢字為1616點(diǎn)陣,提高型漢字為2424點(diǎn)陣、3232點(diǎn)陣,甚至更高。字模點(diǎn)陣的信息量很大,所占存儲空間也很大(示例)。因此字模點(diǎn)陣只能用來構(gòu)成漢字庫,不能用于機(jī)內(nèi)存儲。字庫中存儲了每個漢字的點(diǎn)陣代碼。當(dāng)顯示輸出或打印輸出時才檢索字庫,輸出字模點(diǎn)陣,得到字形。2.1 數(shù)據(jù)與文字的表示方法 2.1.4 漢字的表示方法 注意:漢字的輸入編碼、漢字內(nèi)碼、字模碼是計算機(jī)中用于輸入、內(nèi)部處理、輸出三種不同用途的編碼,不要混為一談。 2.1 數(shù)據(jù)與文字的表示方法 2.1.5 校驗(yàn)碼 為了防止計算機(jī)

15、在處理信息過程中出現(xiàn)錯誤,可將信號采用專門的邏輯線路進(jìn)行編碼以檢測錯誤,甚至校正錯誤。通常的方法是,在每個字上添加一些校驗(yàn)位,用來確定字中出現(xiàn)錯誤的位置。計算機(jī)中常用這種檢錯或糾錯技術(shù)進(jìn)行存儲器讀寫正確性或傳輸信息的檢驗(yàn)。這里僅介紹最簡單且應(yīng)用廣泛的檢錯碼:采用一位校驗(yàn)位的奇校驗(yàn)或偶校驗(yàn)(原理)。 2.2 定點(diǎn)加法減法運(yùn)算 2.2.1 補(bǔ)碼加法 補(bǔ)碼加法的公式是: 補(bǔ)補(bǔ)補(bǔ) (mod 2)補(bǔ)碼加法的特點(diǎn),一是符號位要作為數(shù)的一部分一起參加運(yùn)算,二是要在模2的意義下相加,即超過2的進(jìn)位要丟掉(示例)。 2.2 定點(diǎn)加法減法運(yùn)算 2.2.2 補(bǔ)碼減法 補(bǔ)碼減法的公式是: 補(bǔ)補(bǔ)補(bǔ) 補(bǔ)補(bǔ) 可見,負(fù)數(shù)的減

16、法運(yùn)算也要設(shè)法化為加法來做,其所以使用這種方法而不使用直接減法,是因?yàn)樗梢院统R?guī)的加法運(yùn)算使用同一加法器電路,從而簡化了計算機(jī)的設(shè)計(示例)。 2.2 定點(diǎn)加法減法運(yùn)算 2.2.3 溢出概念與檢測方法 在定點(diǎn)小數(shù)機(jī)器中,數(shù)的表示范圍為|1. 在運(yùn)算過程中如出現(xiàn)大于1的現(xiàn)象,稱為“溢出”。在定點(diǎn)機(jī)中,正常情況下溢出是不允許的,因?yàn)橐绯霭l(fā)生會使運(yùn)算結(jié)果產(chǎn)生錯誤。 兩個正數(shù)相加,結(jié)果大于機(jī)器所能表示的最大正數(shù),稱為正溢。而兩個負(fù)數(shù)相加,結(jié)果小于機(jī)器所能表示的最小負(fù)數(shù),稱為負(fù)溢(示例) 。 對定點(diǎn)整數(shù)而言,也同樣存在正溢、負(fù)溢問題。 2.2 定點(diǎn)加法減法運(yùn)算 2.2.3 溢出概念與檢測方法 為了判斷

17、“溢出”是否發(fā)生,可采用兩種檢測的方法:第一種方法是采用雙符號位法,這稱為“變形補(bǔ)碼”或“模4補(bǔ)碼”。第二種溢出檢測方法是采用單符號位法。 2.2 定點(diǎn)加法減法運(yùn)算 2.2.3 溢出概念與檢測方法 采用變形補(bǔ)碼后,任何小于1的正數(shù),兩個符號位都是“0”,即00.12n;任何大于1的負(fù)數(shù),兩個符號位都是“1”,即11.12n。如果兩個數(shù)相加后,其結(jié)果的符號位出現(xiàn)“01”或“10”兩種組合時,表示發(fā)生溢出(示例) 。 溢出邏輯表達(dá)式為 VSf1Sf2,其中Sf1和Sf2分別為最高符號位和第二符號位。此邏輯表達(dá)式可用異或門實(shí)現(xiàn)。 變形補(bǔ)碼相加的結(jié)果,不論溢出與否,最高符號位始終指示正確的符號。 2.

18、2 定點(diǎn)加法減法運(yùn)算 2.2.3 溢出概念與檢測方法 采用單符號位法時,當(dāng)最高有效位產(chǎn)生進(jìn)位而符號位無進(jìn)位時,產(chǎn)生上溢;當(dāng)最高有效位無進(jìn)位而符號位有進(jìn)位時,產(chǎn)生下溢。溢出邏輯表達(dá)式為VCfCo,其中Cf為符號位產(chǎn)生的進(jìn)位,Co為最高有效位產(chǎn)生的進(jìn)位。此邏輯表達(dá)式也可用異或門實(shí)現(xiàn)。在定點(diǎn)機(jī)中,當(dāng)運(yùn)算結(jié)果發(fā)生溢出時,機(jī)器通過邏輯電路自動檢查出溢出,并進(jìn)行中斷處理。2.2 定點(diǎn)加法減法運(yùn)算 2.2.4 基本的二進(jìn)制加法/減法器 復(fù)習(xí)一位全加器的設(shè)計實(shí)現(xiàn)。動畫演示:4位行波進(jìn)位加減器。2.2 定點(diǎn)加法減法運(yùn)算 2.2.5 十進(jìn)制加法器 十進(jìn)制加法器可由BCD碼(二十進(jìn)制碼)來設(shè)計,它可以在二進(jìn)制加法器

19、的基礎(chǔ)上加上適當(dāng)?shù)摹靶U边壿媮韺?shí)現(xiàn),該校正邏輯可將二進(jìn)制的“和”改變成所要求的十進(jìn)制格式。一位十進(jìn)制數(shù)字的BCD加法器單元的邏輯結(jié)構(gòu)圖及n位BCD碼行波式進(jìn)位加法器的一般結(jié)構(gòu)圖。2.3 定點(diǎn)乘法運(yùn)算 2.3.1 原碼并行乘法 在定點(diǎn)計算機(jī)中,兩個原碼表示的數(shù)相乘的運(yùn)算規(guī)則是:乘積的符號位由兩數(shù)的符號位按異或運(yùn)算得到,而乘積的數(shù)值部分則是兩個正數(shù)相乘之積。設(shè)n位被乘數(shù)和乘數(shù)用定點(diǎn)小數(shù)表示(定點(diǎn)整數(shù)也同樣適用)被乘數(shù) 原f .n110乘數(shù) 原f .n110乘積 原(ff)(0.n110)(0.n110)式中:f為被乘數(shù)符號,f為乘數(shù)符號。 2.3 定點(diǎn)乘法運(yùn)算 2.3.1 原碼并行乘法 不帶符號

20、的陣列乘法器 設(shè)有兩個不帶符號的二進(jìn)制整數(shù):Aam1a1a0,Bbn1b1b0相乘后產(chǎn)生mn位乘積P:Ppmn1p1p0乘法過程如右圖:2.3 定點(diǎn)乘法運(yùn)算 2.3.1 原碼并行乘法 不帶符號的陣列乘法器設(shè)計思想:每一個部分乘積項(xiàng)(位積)aibj叫做一個被加數(shù)。這mn個被加數(shù)aibj|0im1和0jn1可以用mn個“與”門并行地產(chǎn)生。m位乘n位不帶符號整數(shù)的陣列乘法器設(shè)計為兩部分:被加數(shù)產(chǎn)生部件和被加數(shù)求和部件,顯然,設(shè)計高速并行乘法器的基本問題,就在于縮短被加數(shù)矩陣中每列所包含的1的加法時間。 2.3 定點(diǎn)乘法運(yùn)算 2.3.1 原碼并行乘法 不帶符號的陣列乘法器mn位邏輯圖:演示:5位5位陣

21、列乘法器 2.3 定點(diǎn)乘法運(yùn)算 2.3.1 原碼并行乘法 帶符號的陣列乘法器求補(bǔ)電路: 演示2.3 定點(diǎn)乘法運(yùn)算 2.3.1 原碼并行乘法 帶符號的陣列乘法器(n1)(n1)位帶求補(bǔ)器的陣列乘法器邏輯方框圖:既適用于原碼乘法,也適用于間接的補(bǔ)碼乘法。 2.3 定點(diǎn)乘法運(yùn)算 2.3.2 補(bǔ)碼并行乘法 補(bǔ)碼與真值得轉(zhuǎn)換公式 設(shè)定點(diǎn)補(bǔ)碼整數(shù)N補(bǔ)an-1an-2a1a0,an-1是符號位,則真值N可以表示成: n-2 N an-12n-1ai2ii=0 2.3 定點(diǎn)乘法運(yùn)算 2.3.2 補(bǔ)碼并行乘法 一般化的全加器形式 2.3 定點(diǎn)乘法運(yùn)算 2.3.2 補(bǔ)碼并行乘法 直接補(bǔ)碼陣列乘法器 5位5位直接補(bǔ)

22、碼操作,()標(biāo)注負(fù)的被加項(xiàng): (a4) a3 a2 a1 a0A ) (b4) b3 b2 b1 b0B (a4b0) a3b0 a1b0 a1b0 a0b0 (a4b1) a3b1 a2b1 a1b1 a0b1 (a4b2) a3b2 a2b2 a1b2 a0b2 (a4b3) a3b3 a2b3 a1b3 a0b3) a4b4 (a3b4) (a2b4) (a1b4) (a0b4) p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 P 5位5位直接補(bǔ)碼陣列乘法器原理示意2.4 定點(diǎn)除法運(yùn)算 2.4.1 原碼除法算法原理 兩個原碼表示的數(shù)相除時,商的符號由兩數(shù)的符號按位相加求得,商

23、的數(shù)值部分由兩數(shù)的數(shù)值部分相除求得。設(shè)有n位定點(diǎn)小數(shù)(定點(diǎn)整數(shù)也同樣適用):被除數(shù),其原碼為原f .n-110除數(shù),其原碼為原f .n-110 則有商q/,其原碼為:q原(ff)+(0.n-110/0.n-110)2.4 定點(diǎn)除法運(yùn)算 2.4.1 原碼除法算法原理 設(shè)0.1001,0.1011,求的過程如下: 0.1101 商q0.1011 0.10010(r0) 被除數(shù)小于除數(shù),商0 0.01011 2-1除數(shù)右移1位,減除數(shù),商1 0.001110 r1得余數(shù)r1 0.001011 2-2除數(shù)右移1位,減除數(shù),商1 0.0000110 r2 得余數(shù)r2 0.0001011 2-3除數(shù)右移1

24、位,不夠減,商0 0.00001100 r3 得余數(shù)r3 0.00001011 2-4除數(shù)右移1位,減除數(shù),商1 0.00000001 r4 得余數(shù)r4得的商q0.1101,余數(shù)r0.00000001。2.4 定點(diǎn)除法運(yùn)算 2.4.1 原碼除法算法原理 事實(shí)上,機(jī)器的運(yùn)算過程和人畢竟不同,人會心算,一看就知道夠不夠減。但機(jī)器卻不會心算,必須先作減法,若余數(shù)為正,才知道夠減;若余數(shù)為負(fù),才知道不夠減。不夠減時必須恢復(fù)原來的余數(shù),以便再繼續(xù)往下運(yùn)算。這種方法稱為恢復(fù)余數(shù)法。要恢復(fù)原來的余數(shù),只要當(dāng)前的余數(shù)加上除數(shù)即可。但由于要恢復(fù)余數(shù),使除法進(jìn)行過程的步數(shù)不固定,因此控制比較復(fù)雜。實(shí)際中常用不恢復(fù)

25、余數(shù)法,又稱加減交替法。其特點(diǎn)是運(yùn)算過程中如出現(xiàn)不夠減,則不必恢復(fù)余數(shù),根據(jù)余數(shù)符號,可以繼續(xù)往下運(yùn)算,因此步數(shù)固定,控制簡單。 2.4 定點(diǎn)除法運(yùn)算 2.4.2 并行除法器 可控加法/減法(CAS)單元 2.4 定點(diǎn)除法運(yùn)算 2.4.2 并行除法器 不恢復(fù)余數(shù)的陣列除法器 被除數(shù)(雙倍長) :0.123456除數(shù):0.123商數(shù):0.q1q2q3余數(shù):0.00r3r4r5r6字長: n14(示例)2.5 定點(diǎn)運(yùn)算器的組成 2.5.1 邏輯運(yùn)算 計算機(jī)中除了進(jìn)行加、減、乘、除等基本算術(shù)運(yùn)算外,還可對兩個或一個邏輯數(shù)進(jìn)行邏輯運(yùn)算。所謂邏輯數(shù),是指不帶符號的二進(jìn)制數(shù)。利用邏輯運(yùn)算可以進(jìn)行兩個數(shù)的比

26、較,或者從某個數(shù)中選取某幾位等操作。 計算機(jī)中的邏輯運(yùn)算,主要是指邏輯非、邏輯加、邏輯乘、邏輯異四種基本運(yùn)算。 2.5 定點(diǎn)運(yùn)算器的組成 2.5.1 邏輯運(yùn)算 邏輯非運(yùn)算:邏輯非也稱求反。對某數(shù)進(jìn)行邏輯非運(yùn)算,就是按位求它的反,常用變量上方加一橫來表示。設(shè)一個數(shù)表示成:012n對求邏輯非,則有:012n ii(i0,1,2,n)2.5 定點(diǎn)運(yùn)算器的組成 2.5.1 邏輯運(yùn)算 邏輯加運(yùn)算:對兩個數(shù)進(jìn)行邏輯加,就是按位求它們的“或”,所以邏輯加又稱邏輯或,常用記號“V”或“”來表示。設(shè)有兩個數(shù),它們表示為:012n 012n若 : 012n則: iii (i0,1,2,n)2.5 定點(diǎn)運(yùn)算器的組成

27、 2.5.1 邏輯運(yùn)算 邏輯乘運(yùn)算:對兩數(shù)進(jìn)行邏輯乘,就是按位求它們的“與”,所以邏輯乘又稱“邏輯與”,常用記號“”或“”來表示。 設(shè)有兩個數(shù),它們表示為:012n 012n若 : 012n則: iii (i0,1,2,n)2.5 定點(diǎn)運(yùn)算器的組成 2.5.1 邏輯運(yùn)算 邏輯異運(yùn)算:對兩數(shù)進(jìn)行異就是按位求它們的模2和,所以邏輯異又稱“按位加”,常用記號“”表示。 設(shè)有兩個數(shù),它們表示為:012n 012n若 : 012n則: iii (i0,1,2,n)2.5 定點(diǎn)運(yùn)算器的組成 2.5.2 多功能算術(shù)/邏輯運(yùn)算單元 將全加器的功能進(jìn)行擴(kuò)展后能完成多種算術(shù)/邏輯運(yùn)算:(74181ALU芯片實(shí)例)

28、 2.5 定點(diǎn)運(yùn)算器的組成 2.5.2 多功能算術(shù)/邏輯運(yùn)算單元 先行進(jìn)位原理74182先行進(jìn)位部件(CLA) 兩級先行進(jìn)位的ALU的構(gòu)成 由八個74181ALU和兩個74182CLA器件組成的32位ALU邏輯方框圖: 2.5 定點(diǎn)運(yùn)算器的組成 2.5.3 內(nèi)部總線 根據(jù)總線所在位置,總線分為內(nèi)部總線和外部總線兩類。內(nèi)部總線是指CPU內(nèi)各部件的連線,而外部總線是指系統(tǒng)總線,即CPU與存儲器、I/O系統(tǒng)之間的連線。 按總線的邏輯結(jié)構(gòu)來說,總線可分為單向傳送總線和雙向傳送總線。所謂單向總線,就是信息只能向一個方向傳送。所謂雙向總線,就是信息可以分兩個方向傳送,既可以發(fā)送數(shù)據(jù),也可以接收數(shù)據(jù)。 2.

29、5 定點(diǎn)運(yùn)算器的組成 2.5.3 內(nèi)部總線 2.5 定點(diǎn)運(yùn)算器的組成 2.5.4 定點(diǎn)運(yùn)算器的基本結(jié)構(gòu) 運(yùn)算器包括ALU陣列乘除器寄存器多路開關(guān)三態(tài)緩沖器數(shù)據(jù)總線等邏輯部件。運(yùn)算器的設(shè)計,主要是圍繞ALU和寄存器同數(shù)據(jù)總線之間如何傳送操作數(shù)和運(yùn)算結(jié)果進(jìn)行的。計算機(jī)的運(yùn)算器大體有如下三種結(jié)構(gòu)形式 :單總線結(jié)構(gòu)的運(yùn)算器 雙總線結(jié)構(gòu)的運(yùn)算器 三總線結(jié)構(gòu)的運(yùn)算器 2.5 定點(diǎn)運(yùn)算器的組成 2.5.4 定點(diǎn)運(yùn)算器的基本結(jié)構(gòu) 單總線結(jié)構(gòu)的運(yùn)算器2.5 定點(diǎn)運(yùn)算器的組成 2.5.4 定點(diǎn)運(yùn)算器的基本結(jié)構(gòu) 雙總線結(jié)構(gòu)的運(yùn)算器2.5 定點(diǎn)運(yùn)算器的組成 2.5.4 定點(diǎn)運(yùn)算器的基本結(jié)構(gòu) 三總線結(jié)構(gòu)的運(yùn)算器2.6

30、浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 2.6.1 浮點(diǎn)加法、減法運(yùn)算 設(shè)有兩個浮點(diǎn)數(shù)和,它們分別為 2EM 2EM其中:E和E分別為數(shù)和的階碼 M和M為數(shù)和的尾數(shù)。兩浮點(diǎn)數(shù)進(jìn)行加法和減法的運(yùn)算規(guī)則是: (M2E- EM)2E,EE2.6 浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 2.6.1 浮點(diǎn)加法、減法運(yùn)算 完成浮點(diǎn)加減運(yùn)算的操作過程大體分為四步: 0 操作數(shù)的檢查比較階碼大小并完成對階尾數(shù)進(jìn)行加或減運(yùn)算結(jié)果規(guī)格化并進(jìn)行舍入處理浮點(diǎn)加減運(yùn)算的操作流程例題 2.6 浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 2.6.1 浮點(diǎn)加法、減法運(yùn)算 浮點(diǎn)加減運(yùn)算操作過程的幾個關(guān)鍵: 在對階時應(yīng)該總是使小階向大階看齊(?)。 結(jié)果規(guī)格化時,在尾數(shù)求和

31、有溢出時應(yīng)該右規(guī),否則一般情況下是左規(guī)。在舍入處理中,簡單的舍入方法有“0舍1入”法和“恒置一”法。浮點(diǎn)數(shù)的溢出是以其階碼溢出表現(xiàn)出來的。階碼上溢是指超過了階碼可能表示的最大值的正指數(shù)值,一般將其認(rèn)為是和。階碼下溢是指超過了階碼可能表示的最小值的負(fù)指數(shù)值,一般將其認(rèn)為是0。 2.6 浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 2.6.2 浮點(diǎn)乘法、除法運(yùn)算 設(shè)有兩個浮點(diǎn)數(shù)和,它們分別為 2EM 2EM其中:E和E分別為數(shù)和的階碼 M和M為數(shù)和的尾數(shù)。兩浮點(diǎn)數(shù)進(jìn)行乘法和除法的運(yùn)算規(guī)則是: 2E+ E(M M) 2E- E(M M)2.6 浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 2.6.2 浮點(diǎn)乘法、除法運(yùn)算 完成浮點(diǎn)加減運(yùn)算的

32、操作過程大體分為四步: 0 操作數(shù)的檢查階碼加/減操作:運(yùn)算時必須檢查結(jié)果是否溢出。如果是移碼操作,則使用雙符號位的階碼加法器,并規(guī)定移碼的第二個符號位,即最高符號位恒用 0 參加加減運(yùn)算,則溢出條件是結(jié)果的最高符號位為1。此時,當(dāng)?shù)臀环栁粸?0時,表明結(jié)果上溢,為1時,表明結(jié)果下溢。 尾數(shù)乘/除操作 結(jié)果規(guī)格化并進(jìn)行舍入處理2.6 浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 2.6.3 浮點(diǎn)運(yùn)算流水線 流水線原理計算機(jī)的流水處理過程同工廠中的流水裝配線類似。為了實(shí)現(xiàn)流水,首先必須把輸入的任務(wù)分割為一系列的子任務(wù),使各子任務(wù)能在流水線的各個階段并發(fā)地執(zhí)行。將任務(wù)連續(xù)不斷地輸入流水線,從而實(shí)現(xiàn)了子任務(wù)的并行。因

33、此流水處理大幅度地改善了計算機(jī)的系統(tǒng)性能,是在計算機(jī)上實(shí)現(xiàn)時間并行性的一種非常經(jīng)濟(jì)的方法。2.6 浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 2.6.3 浮點(diǎn)運(yùn)算流水線 流水線原理在流水線中,原則上要求各個階段的處理時間都相同。若某一階段的處理時間較長,勢必造成其他階段的空轉(zhuǎn)等待。因此對子任務(wù)的劃分,是決定流水線性能的一個關(guān)鍵因素,它取決于操作部分的效率、所期望的處理速度,以及成本價格等等。2.6 浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 2.6.3 浮點(diǎn)運(yùn)算流水線 流水線原理 假定作業(yè) T 被分成 k 個子任務(wù),可表達(dá)為: TT1,T2,Tk 且各個子任務(wù)之間有一定的優(yōu)先關(guān)系:若ij,則必須在 Ti 完成以后,Tj才能開始工

34、作。具有這種線性優(yōu)先關(guān)系的流水線稱為線性流水線。2.6 浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 2.6.3 浮點(diǎn)運(yùn)算流水線 流水線原理 線性流水線處理的硬件基本結(jié)構(gòu): 2.6 浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 2.6.3 浮點(diǎn)運(yùn)算流水線 流水線原理 設(shè)過程段 Si所需的時間為i,緩沖寄存器的延時為l,線性流水線的時鐘周期定義為: maxilml 故流水線處理的頻率為 f1/。2.6 浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 2.6.3 浮點(diǎn)運(yùn)算流水線 流水線原理 在流水線處理中,當(dāng)任務(wù)飽滿時,任務(wù)源源不斷的輸入流水線,不論有多少級過程段,每隔一個時鐘周期都能輸出一個任務(wù)。從理論上說,一個具有k 級過程段的流水線處理 n 個任務(wù)需要

35、的時鐘周期數(shù)為: Tkk(n1) 如果用非流水線的硬件來處理這n個任務(wù),時間上只能串行進(jìn)行,則所需時鐘周期數(shù)為:TLnk 定義k級線性流水線的加速比為:CkTL/Tk2.6 浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 2.6.3 浮點(diǎn)運(yùn)算流水線 流水線浮點(diǎn)加法器 除0操作數(shù)檢查之外的3段流水線浮點(diǎn)加法器框圖: thanks作業(yè):P70:1,3,5,6,8,9 階符采用隱含方式,即采用移碼方式來表示正負(fù)指數(shù)。移碼方法對兩個指數(shù)大小的比較和對階操作都比較方便,因?yàn)殡A碼域值大者其指數(shù)值也大。采用這種方式時,將浮點(diǎn)數(shù)的指數(shù)真值e 變成階碼 時,應(yīng)將指數(shù) e 加上一個固定的偏移值。 例如在IEEE754標(biāo)準(zhǔn)中,對32位浮

36、點(diǎn)數(shù) ,占用8 位,固定偏移值采用127(01111111)(為什么),即 e127;對64位浮點(diǎn)數(shù) ,占用11 位,固定偏移值采用1023(0111111111),即 e1023 當(dāng)一個浮點(diǎn)數(shù)的尾數(shù)為 0,不論其階碼為何值,或者當(dāng)階碼的值遇到比它能表示的最小值還小時,不管其尾數(shù)為何值,計算機(jī)都把該浮點(diǎn)數(shù)看成零值,稱為機(jī)器零。 當(dāng)階碼E為全0且尾數(shù)M也為全0時,表示的真值x為零,結(jié)合符號位S為0或1,有正零和負(fù)零之分。當(dāng)階碼E為全1且尾數(shù)M也為全0時,表示的真值x為無窮大,結(jié)合符號位S為0或1,有正無窮和負(fù)無窮之分。這樣在32位浮點(diǎn)數(shù)表示中,要除去E用全0和全1表示零和無窮大的特殊情況,指數(shù)的

37、偏移值不選128(10000000),而選127(01111111)。對于規(guī)格化浮點(diǎn)數(shù),E的范圍變?yōu)?到254,真正的指數(shù)值e則為-126到+127。因此32位浮點(diǎn)數(shù)表示的絕對值的范圍是10-38-10+38。 因?yàn)橐?guī)格化的浮點(diǎn)數(shù)的尾數(shù)域最左(最高有效位)總是1,故這一位經(jīng)常不予存儲,而認(rèn)為隱藏在小數(shù)點(diǎn)的左邊。 故IEEE754標(biāo)準(zhǔn)中,一個規(guī)格化的32位浮點(diǎn)數(shù)的真值可表示為: (1)s(1.)2127e127 規(guī)格化的64位浮點(diǎn)數(shù)的真值為: (1)s(1.)21023 e1023 (兩個例子) 例1 若浮點(diǎn)數(shù)的754標(biāo)準(zhǔn)存儲格式為(41360000)16,求其浮點(diǎn)數(shù)的十進(jìn)制值。 解: 將十六進(jìn)

38、制數(shù)展開后,可得二進(jìn)制數(shù)格式為: 指數(shù)e階碼1271000001001111111 00000011 (3)10 尾數(shù)1.M1.0110110 00000000 00000000 1.011011 于是有:(1)s1.M2e(1.011011)23 1011.011(11.375)10 例2 將十進(jìn)制數(shù)數(shù)20.59375轉(zhuǎn)換成754標(biāo)準(zhǔn)的32位浮點(diǎn)數(shù)的二進(jìn)制格式來存儲。 解: 首先分別將整數(shù)和分?jǐn)?shù)部分轉(zhuǎn)換成二進(jìn)制數(shù): 20.5937510100.10011 然后移動小數(shù)點(diǎn),使其在第1,2位之間 10100.100111.01001001124 于是得到: S0 E4127131 M010010

39、011 最后得到32位浮點(diǎn)數(shù)的二進(jìn)制存儲格式為: 01000001 10100100 11000000 00000000 (41A4C000)16一位奇偶校驗(yàn)工作原理: 設(shè)(01n1)是一個n位字,則定義: 奇校驗(yàn)位C01n1 偶校驗(yàn)位C01n1 假設(shè)一個字從部件 A 傳送到部件 B。在源點(diǎn) A,計算校驗(yàn)位C并合在一起將(01n1C)送到B。假設(shè)在B點(diǎn)真正接收到的是: (01 n1C) 計算F01n1C 若F0,表明字傳送正確,反之則出錯。注意:奇偶校驗(yàn)可提供單個錯誤檢測,但無法檢測多個錯誤,更無法識別錯誤信息的位置。例已知下表中左面一欄有5個字節(jié)的數(shù)據(jù)。請分別用奇校驗(yàn)和偶校驗(yàn)進(jìn)行編碼,填在中

40、間一欄和右面一欄。解: 假定最低一位為校驗(yàn)位,其余高8位為數(shù)據(jù)位,列表如下。從中看出,校驗(yàn)位的值取0還是取1, 是由數(shù)據(jù)位中1的個數(shù)決定的。數(shù)據(jù)偶校驗(yàn)編碼奇校驗(yàn)編碼1 0 1 0 1 0 1 00 1 0 1 0 1 0 00 0 0 0 0 0 0 00 1 1 1 1 1 1 11 1 1 1 1 1 1 11 0 1 0 1 0 1 0 00 1 0 1 0 1 0 0 10 0 0 0 0 0 0 0 00 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 01 0 1 0 1 0 1 0 10 1 0 1 0 1 0 0 00 0 0 0 0 0 0 0 10 1 1 1

41、 1 1 1 1 01 1 1 1 1 1 1 1 1例1 0.1001,0.0101,求。解: 補(bǔ)0.1001, 補(bǔ)0.0101 補(bǔ) 0.1001 補(bǔ) 0.0101 補(bǔ) 0.1110 所以0.1110例2 +0.1011,-0.0101,求。解: 補(bǔ)0.1011, 補(bǔ)1.1011 補(bǔ)0.1011 補(bǔ)1.1011 補(bǔ) 10.0110 所以0.0110例 +0.1101,+0.0110,求-。解: 補(bǔ)0.1101 補(bǔ)0. 0110 , -補(bǔ)1.1010 補(bǔ)0.1101 -補(bǔ)1.1010 -補(bǔ) 10.0111 所以-+0.0111例1 +0.1011,+0. 1001,求。解: 補(bǔ)0.1011, 補(bǔ)0. 1001 補(bǔ) 0.1011 補(bǔ) 0.1001 補(bǔ) 1.0100 兩個正數(shù)相加的結(jié)果成為負(fù)數(shù),這顯然是錯誤的。 例2 -0.1101,-0. 1011,求。解: 補(bǔ)1.0011, 補(bǔ)1. 0101 補(bǔ)1.0011 補(bǔ)1.0101 補(bǔ) 0.1000 兩個負(fù)數(shù)相加的結(jié)果成為正數(shù),這同樣是錯誤的。 例1 +0.1100,+0. 1000,求。解: 補(bǔ)00.1100, 補(bǔ)00. 1000 補(bǔ) 00.1100 補(bǔ) 00.1000 補(bǔ) 01.0100 兩個符號位出現(xiàn)“01”,表示正溢。 例2 -0.1100,-0. 1000,求。解: 補(bǔ)11.0100

溫馨提示

  • 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

提交評論