計算機組成原理第二章第三講_第1頁
計算機組成原理第二章第三講_第2頁
計算機組成原理第二章第三講_第3頁
計算機組成原理第二章第三講_第4頁
計算機組成原理第二章第三講_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機組成原理第二章第三講第一頁,共二十九頁,編輯于2023年,星期一第一章計算機系統(tǒng)概論第二章運算方法和運算器第三章存儲系統(tǒng)第四章指令系統(tǒng)第五章中央處理器第六章總線系統(tǒng)第七章外圍設(shè)備第八章輸入輸出系統(tǒng)第九章并行組織目錄第二頁,共二十九頁,編輯于2023年,星期一

上一講回顧1.數(shù)據(jù)與文字的表示方法(2)數(shù)的機器碼表示(熟練掌握)原碼、反碼、補碼、移碼(3)字符與字符串的表示方法(4)漢字的表示方法2.定點加減法運算(熟練掌握)(1)定點加法運算(2)定點減法運算第三頁,共二十九頁,編輯于2023年,星期一2.2.3

溢出概念與檢驗方法兩個正數(shù)相加,結(jié)果為負(即:大于機器所能表示的最大正數(shù)),稱為上溢。兩個負數(shù)相加,結(jié)果為正(即:小于機器所能表示的最小負數(shù)),稱為下溢。運算出現(xiàn)溢出,結(jié)果就是錯誤的。第四頁,共二十九頁,編輯于2023年,星期一[例12]

x=+0.1011,y=+0.1001,求x+y。[解:]

[x]補=0.1011,[y]補=0.1001[x]補

0.1011+[y]補

0.1001[x+y]補

1.0100

兩正數(shù)相加,結(jié)果為負,顯然錯誤。--運算中出現(xiàn)了“上溢”有進位無進位第五頁,共二十九頁,編輯于2023年,星期一[又例]

x=+0.1011,y=+0.0010,求x+y。[解:]

[x]補=0.1011,[y]補=0.0010[x]補

0.1011+[y]補

0.0010[x+y]補

0.1101兩正數(shù)相加,結(jié)果無溢出無進位無進位第六頁,共二十九頁,編輯于2023年,星期一[例13]

x=-0.1101,y=-0.1011,求x+y。[解:]

[x]補=1.0011[y]補=1.0101

[x]補

1.0011

+[y]補

1.0101[x+y]補

0.1000兩負數(shù)相加,結(jié)果為正,顯然錯誤。--運算中出現(xiàn)了“下溢”無進位有進位第七頁,共二十九頁,編輯于2023年,星期一[又例]

x=-0.1101,y=-0.0010,求x+y。[解:]

[x]補=1.0011[y]補=1.1110

[x]補

1.0011

+[y]補

1.1110[x+y]補

1.0001兩負數(shù)相加,結(jié)果為負,無溢出。有進位有進位第八頁,共二十九頁,編輯于2023年,星期一進一步結(jié)論:

當最高有效位產(chǎn)生進位而符號位無進位時,產(chǎn)生上溢;當最高有效位無進位而符號位有進位時,產(chǎn)生下溢。產(chǎn)生“溢出”的原因:分析可知,當最高有效數(shù)值位的運算進位與符號位的運算進位不一致時,將產(chǎn)生運算“溢出”第九頁,共二十九頁,編輯于2023年,星期一“溢出”檢測方法:

為了判斷“溢出”是否發(fā)生,可采用兩種檢測的方法。第一種方法:采用雙符號位法,稱為“變形補碼”或“模4補碼”,可使模2補碼所能表示的數(shù)的范圍擴大一倍。

變形補碼定義為

[x]補=x2>x≥04+x0>x≥-2

或用同余式表示為[x]補=4+x(mod4)

下式也同樣成立:[x]補+[y]補=[x+y]補

第十頁,共二十九頁,編輯于2023年,星期一

變形補碼的符號位由原來的“0”和“1”分別變?yōu)椤?0”和“11”,分別表示正負數(shù)。為了滿足補碼運算法則,必須具備以下條件:

1.兩個符號位都看作數(shù)碼一樣參加運算;

2.兩數(shù)進行以4位模的加法,即最高符號位上產(chǎn)生的進位要丟掉。采用變形補碼后,如果兩個數(shù)相加后,其結(jié)果的符號位出現(xiàn)“01”或“10”兩種組合時,表示發(fā)生溢出。因為兩個絕對值小于1的數(shù)相加,其結(jié)果不會大于或等于2,所以最高符號位永遠表示結(jié)果的正確符號。

第十一頁,共二十九頁,編輯于2023年,星期一[例14]

x=+0.1100,y=+0.1000,求x+y。

[解:][x+y]補=[x]補+[y]補=00.1100+00.1000=01.0100

兩個符號位出現(xiàn)“01”,表示已溢出,即結(jié)果大于+1。

[例15]

x=-0.1100,y=-0.1000,求x+y。

[解:] [x+y]補=[x]補+[y]補=11.0100+11.1000=10.1100

兩個符號位出現(xiàn)“10”,表示已溢出,即結(jié)果小于-1。由此可以得出如下結(jié)論:

1.當以模4補碼運算,運算結(jié)果的二符號位相異時,表示溢出;相同時,表示未溢出。故溢出邏輯表達式為V=Sf1⊕Sf2,其中Sf1和Sf2分別為最高符號位和第二符號位。此邏輯表達式可用異或門實現(xiàn)。

2.模4補碼相加的結(jié)果,不論溢出與否,最高符號位始終指示正確的符號。

第十二頁,共二十九頁,編輯于2023年,星期一“溢出”檢測方法:

判斷“溢出”是否發(fā)生,可采用兩種檢測的方法。

第一種方法:采用雙符號位法,稱為“變形補碼”或“模4補碼”,可使模2補碼所能表示的數(shù)的范圍擴大一倍。

第二種溢出檢測方法:采用“單符號位法”。當最高有效位產(chǎn)生進位而符號位無進位時,產(chǎn)生上溢;當最高有效位無進位而符號位有進位時,產(chǎn)生下溢。故:溢出邏輯表達式為:

V=Cf⊕Co

其中:

Cf為符號位產(chǎn)生的進位,Co為最高有效位產(chǎn)生的進位。(顯然:此邏輯關(guān)系可用異或門方便地實現(xiàn))

在定點機器中,當運算結(jié)果發(fā)生溢出時,機器通過邏輯電路自動檢查出溢出故障,并進行中斷處理。

第十三頁,共二十九頁,編輯于2023年,星期一2.2.4基本的二進制加法/減法器

計算機中完成兩個二進制數(shù)相加的基本加法器有半加器和全加器。半加器在完成兩數(shù)相加時,不需要考慮低位進位。全加器用來完成兩個二進制數(shù)相加,并且同時考慮低位的進位,即全加器完成三個一位數(shù)相加的功能。設(shè):

Ai表示被加數(shù)的第i位

Bi表示加數(shù)的第i位

Ci為第i-1位向第i位產(chǎn)生的進位

Ci+1為第i位向第i+1位產(chǎn)生的進位

Si為第i位產(chǎn)生的和則全加器以Ai、Bi、Ci為輸入,以Ci+1、Si為輸出構(gòu)成一個邏輯圖。第十四頁,共二十九頁,編輯于2023年,星期一2.2.4基本的二進制加法/減法器全加器邏輯圖CiAiBiSiCi+1FACiAiBiSiCi+1輸出輸入0110100001101000100010100010111010111111表2-2全加器真值表第十五頁,共二十九頁,編輯于2023年,星期一2.2.4基本的二進制加法/減法器

全加器的表達式為:

Si=AiBiCi

Ci+1=AiBi+BiCi+AiCi

一位全加器內(nèi)部邏輯圖

BCSiCi+1ABCAAiBiCi第十六頁,共二十九頁,編輯于2023年,星期一2.2.4基本的二進制加法/減法器利用全加器可以實現(xiàn)兩數(shù)的和或差1、串行加法:從低位開始,每步只完成一位運算的加法。(1)串行加法器只需要一個全加器和一個進位觸發(fā)器。(2)計算兩個n位數(shù)之和,需要n+1步(1位符號位),或n+2步(2位符號位)運算。(3)高位運算只有等低位運算完成后才能進行,速度較慢。2、并行加法器:可在較短時間內(nèi)完成n位數(shù)的運算。(1)若采用變形補碼表示一個機器數(shù),則符號位需2位,這時需要n+2個加法器。(2)運算速度比串行進位加法器高很多,這是用足夠多的硬件設(shè)備換來的。第十七頁,共二十九頁,編輯于2023年,星期一2.2.4基本的二進制加法/減法器圖2-3行波進位補碼加法/減法器(S=A±B)FAFAFAFAFAS0S1Sn-3Bn-1An-1Bn-2An-2Cn-1CnSn-2Sn-1Bn-3An-3Cn-2Cn-3B1A1B0A0C1C2C0溢出M方式控制M=1減M=0加第十八頁,共二十九頁,編輯于2023年,星期一

現(xiàn)在我們計算一個n位的行波進位加法器的時間延遲。假如采用圖2.3(a)所示的一位全加器并考慮溢出檢測,那么n位行波進位加法器的延遲時間ta為ta=n·2T+9T=(2n+9)T(2.24)9T為最低位上的兩極“異或”門再加正溢出“異或”門的總時間,2T為每級進位鏈的延遲時間。當不考慮溢出檢測時,有

ta=(n-1)·2T+9T

(2.25)

ta意味著加法器的輸入端輸入加數(shù)和被加數(shù)后,在最壞情況下加法器輸出端得到穩(wěn)定的求和輸出所需的最長時間。顯然這個時間越小越好。注意,加數(shù)、被加數(shù)、進位與和數(shù)都是用電平來表示的,因此,所謂穩(wěn)定的求和輸出,就是指穩(wěn)定的電平輸出。第十九頁,共二十九頁,編輯于2023年,星期一2.2.5十進制加法器 十進制加法器可由BCD碼(二-十進制碼)來設(shè)計,它可以在二進制加法器的基礎(chǔ)上加上適當?shù)摹靶U边壿媮韺崿F(xiàn),該校正邏輯可將二進制的“和”改變成所要求的十進制格式。

n位BCD碼行波式進位加法器的一般結(jié)構(gòu)如圖2.4(a)所示,它由n級組成,每一級將一對4位的BCD數(shù)字相加,并通過一位進位線與其相鄰級連接。第二十頁,共二十九頁,編輯于2023年,星期一第二十一頁,共二十九頁,編輯于2023年,星期一2.3定點乘法運算2.3.1原碼乘法

1.人工算法與機器算法的同異性在定點計算機中,兩個原碼表示的數(shù)相乘的運算規(guī)則是:乘積的符號位由兩數(shù)的符號位按異或運算得到,而乘積的數(shù)值部分則是兩個正數(shù)相乘之積。設(shè)n位被乘數(shù)和乘數(shù)用定點小數(shù)表示(定點整數(shù)也同樣適用)被乘數(shù)[x]原=xf.xn-1…x1x0乘數(shù)[y]原=yf.yn-1…y1y0

則乘積[z]原=(xf⊕yf)+(0.xn-1…x1x0)(0.yn-1…y1y0)(2.26)

式中,xf為被乘數(shù)符號,yf為乘數(shù)符號。乘積符號的運算法則是:同號相乘為正,異號相乘為負。由于被乘數(shù)和乘數(shù)的符號組合只有四種情況(xfyf=00,01,10,11),因此積的符號可按“異或”(按位加)運算得到。數(shù)值部分的運算方法與普通的十進制小數(shù)乘法類似,不過對于用二進制表達式的數(shù)來說,其乘法規(guī)則更為簡單一些。第二十二頁,共二十九頁,編輯于2023年,星期一

設(shè)x=0.1101,y=0.1011。讓我們先用習(xí)慣方法求其乘積,其過程如下:

第二十三頁,共二十九頁,編輯于2023年,星期一

如果被乘數(shù)和乘數(shù)用定點整數(shù)表示,我們也會得到同樣的結(jié)果。人們習(xí)慣的算法對機器并不完全適用。原因之一,機器通常只有n位長,兩個n位數(shù)相乘,乘積可能為2n位。原因之二,只有兩個操作數(shù)相加的加法器難以勝任將n各位積一次相加起來的運算。早期計算機中為了簡化硬件結(jié)構(gòu),采用串行的1位乘法方案,即多次執(zhí)行“加法—移位”操作來實現(xiàn)。這種方法并不需要很多器件。然而串行方法畢竟太慢,自從大規(guī)模集成電路問世以來,出現(xiàn)了各種形式的流水式陣列乘法器,它們屬于并行乘法器。第二十四頁,共二十九頁,編輯于2023年,星期一2.不帶符號的陣列乘法器設(shè)有兩個不帶符號的二進制整數(shù):

A=am-1…a1a0 B=bn-1…b1b0

它們的數(shù)值分別為a和b,即

m-1

n-1

a=∑ai2i

b=∑bj2j

i=0

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論