運算方法和運算器_第1頁
運算方法和運算器_第2頁
運算方法和運算器_第3頁
運算方法和運算器_第4頁
運算方法和運算器_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章 運算方法與運算器2.1.1 數(shù)值數(shù)據(jù)在機內(nèi)的表示 在選擇計算機的數(shù)值數(shù)的表示方式時,需要考慮以下幾個因素: (1)要表示的數(shù)的類型 (小 數(shù)、整數(shù)、實數(shù)和復數(shù) );(2)可能遇到的數(shù)值范圍; (3)數(shù)值精確度; (4)數(shù)據(jù)存儲和處理所需要 的硬件代價。2.1.1.1 定點數(shù)與浮點數(shù) 計算機處理的數(shù)值數(shù)據(jù)多數(shù)帶有小數(shù),小數(shù)點在計算機中通常有兩種表示方法,一種是 約定所有數(shù)值數(shù)據(jù)的小數(shù)點隱含在某一個固定位置上,稱為定點表示法,簡稱定點數(shù);另一 種是小數(shù)點位置可以浮動,稱為浮點表示法,簡稱浮點數(shù)。1. 定點數(shù)表示法 (fixed-point) 所謂定點格式,即約定機器中所有數(shù)據(jù)的小數(shù)點位置是

2、固定不變的。在計算機中通常采 用兩種簡單的約定:將小數(shù)點的位置固定在數(shù)據(jù)的最高位之前,或者是固定在最低位之后。 一般常稱前者為定點小數(shù),后者為定點整數(shù)。定點小數(shù)是純小數(shù),約定的小數(shù)點位置在符號位之后、有效數(shù)值部分最高位之前。2. 浮點數(shù)表示法 (floating-point number) 與科學計數(shù)法相似。2.1.1.2 數(shù)的機器碼表示1. 原碼表示法 原碼表示法是一種比較直觀的表示方法,其符號位表示該數(shù)的符號,正用“0”表示,負用“1”表示;而數(shù)值部分仍保留著其真值的特征。2. 補碼表示法 由于計算機的運算受一定字長的限制,屬于有模運算,所以,在計算機中可以使用補碼 進行計算。在定點小數(shù)機

3、器中數(shù)最大不超過 1,也就是負的小數(shù)對“ 1”的補碼是等價的。但 實際上,負數(shù)的符號位還有一個“ 1”,要把它看成數(shù)的一部分,所以要對 2 求補碼,也就是 以 2 為模數(shù)。3. 反碼表示方法反碼表示法中,符號的表示法與原碼相同。正數(shù)的反碼與正數(shù)的原碼形式相同;負數(shù)的 反碼符號位為 1,數(shù)值部分通過將負數(shù)原碼的數(shù)值部分各位取反 (0變 1,1變0)得到。4. 移碼表示法 移碼通常用于表示浮點數(shù)的階碼。2.1.2 非數(shù)值數(shù)據(jù)在機內(nèi)的表示 計算機中數(shù)據(jù)的概念是廣義的,機內(nèi)除了有數(shù)值的信息之外,還有數(shù)字、字母、通用符 號、控制符號等字符信息有邏輯信息、圖形、圖像、語音等信息,這些信息進入計算機都轉(zhuǎn) 變

4、成 0、1 表示的編碼,所以稱為非數(shù)值數(shù)據(jù)。2.1.2.1 字符的表示方法 字符主要指數(shù)字、字母、通用符號、控制符號等,在機內(nèi)它們都被變換成計算機能夠識 別的十進制編碼形式。這些字符編碼方式有很多種,國際上廣泛采用的是美國國家信息交換 標準代碼 (AmericanStandard Code for Information Interchange,) 簡稱 ASCII 碼。2.1.2.2 漢字的表示方法1. 漢字的輸入碼 目前,計算機一般是使用西文標準鍵盤輸入的,為了能直接使用西文標準鍵盤輸入漢字, 必須給漢字設(shè)計相應(yīng)的輸入編碼方法。其編碼方案有很多種,主要的分為三類:數(shù)字編碼、 拼音碼和字形編

5、碼。2. 漢字的內(nèi)碼3. 漢字字形碼2.2.1 補碼加法運算 補碼加法的公式是: x 補 + y 補 = x + y 補 ( mod 2 ) 含義是:兩個數(shù)的補碼之和等于兩個數(shù)之和的補碼。2.2.2 補碼減法運算x-y補=x補-y補=x補+-y補 ( mod 2 )2.2.3 溢出概念及檢測方法在計算機中,若采用定點小數(shù),數(shù)的表示范圍為 |x|1,如果出現(xiàn)運算結(jié)果超出數(shù)的表示 范圍的現(xiàn)象,就稱為溢出。在采用定點整數(shù)的情況下,由于機器字長一定,所以能表示的數(shù) 據(jù)范圍也是有限的,仍存在溢出問題。產(chǎn)生溢出會丟失有效數(shù)字,結(jié)果將是錯誤的,因此, 必須解決溢出的判斷問題,當計算過程中出現(xiàn)溢出時,能及時處

6、理。兩個正數(shù)相加,結(jié)果大于機器所能表示的最大正數(shù),稱為正溢。而兩個負數(shù)相加,結(jié)果 小于機器所能表示的最小負數(shù),稱為負溢。為了判斷“溢出”是否發(fā)生,可采用兩種檢測方法。1變形補碼操作檢測方法2單符號位操作檢測方法2.2.4 基本的二進制加法 /減法器重點介紹一位全加器 (FA)。2.3.1 原碼一位乘法。在定點計算機中,兩個原碼表示的數(shù)相乘的運算規(guī)則是:乘積的符號位由兩數(shù)的符號按 異或運算得到,而乘積的數(shù)值部分則是兩個正數(shù)相乘之積。設(shè) n 位被乘數(shù)和乘數(shù)用定點小數(shù) 表示 (定點整數(shù)也同樣適用 )被乘數(shù) x 原 = xf .x0 x1 x2 xn乘數(shù) y 原 = yf .y0 y1 y2 yn則乘

7、積 z 原 = ( xfyf ) . (0. x0 x1 x2 xn)(0 . y1 y2 yn)式中,xf 為被乘數(shù)符號, yf 為乘數(shù)符號。 乘積符號的運算法則是:同號相乘為正,異號相乘為負。由于被乘數(shù)和乘數(shù)和符號組合 只有四種情況 (xf yf = 00 ,01,10,11),因此積的符號可按“異或” (按位加)運算得到。數(shù)值部分的運算方法與普通的十進制小數(shù)乘法相類似,不過對于用二進制表達的數(shù)來說, 其乘法規(guī)則更為簡單一些:從乘法 y 的最低位開始,若這一位為“ 1”,則將被乘數(shù) x 寫下; 若這一位為“ 0”,則寫下全 0。然后再對乘數(shù) y 的高一位進行的乘法運算,其規(guī)則同上,不過這一

8、位乘數(shù)的權(quán)與最低位乘數(shù)的權(quán)不一樣,因此被乘數(shù) x 要左移一位。依次類推,直到乘數(shù) 各位乘完為止,最后將它們統(tǒng)統(tǒng)加起來,便得到最后乘積 z 。2.3.2 補碼一位乘法 原碼乘法的主要問題是符號位不能參加運算,單獨用一個異或門產(chǎn)生乘積的符號位。故 自然提出能否讓符號數(shù)字化后也參加乘法運算,補碼乘法就可以實現(xiàn)符號位直接參加運算。2.4.1 原碼一位除法兩個原碼表示的數(shù)相除時,商的符號由兩數(shù)的符號按位相加求得,商的數(shù)值部分由兩數(shù) 的數(shù)值部分相除求得。設(shè)有 n位定點小數(shù) (定點整數(shù)也同樣適用 ):被除數(shù) x ,其原碼為x 原 = xf . x1 x2 xn除數(shù) y,其原碼為y 原 = yf . y1 y

9、2 yn設(shè)商為 q = x/y,其原碼為q原 = ( xfyf ). ( x1 x2 xn / y1 y2 yn )商的符號運算 qf= xfyf 與原碼乘法一樣,用模 2 求和得到。商的數(shù)值部分的運算,實質(zhì)上是兩正數(shù)求商的運算。根據(jù)我們所熟知的十進 制除法運算方法,很容易得到二進制數(shù)的除法運算方法,所不同的只是在二進制中,商的每 一位不是“ 1”就是“ 0”,其運算法則更簡單一些。1恢復余數(shù)法 事實上,機器的運算過程和人畢竟不同,人會心算,一看就知道夠不夠減。但機器卻不 會心算,必須先做減法,若余數(shù)為正,才知道夠減;若余數(shù)為負,才知道不夠減。不夠減時 必須恢復原來的余數(shù),以便再繼續(xù)往下運算,

10、這種方法稱為恢復余數(shù)法。要恢復原來的余數(shù), 只要當前的余數(shù)加上除數(shù)即可。2加減交替法 對恢復余數(shù)法來說,由于要恢復余數(shù),使除法進行過程的步數(shù)不固定,因此控制比較復 雜。實際上常用不恢復余數(shù)法,又稱加減交替法。其特點是運算過程中如出現(xiàn)不夠減,則不 必恢復余數(shù),根據(jù)余數(shù)符號,可以繼續(xù)往下運算,因此步數(shù)固定,控制簡單。原碼加減交替法的規(guī)則是:當余數(shù)為正時,商“ 1”,余數(shù)左移一位減除數(shù);當余數(shù)為負 時,商“ 0”,余數(shù)左移一位,加除數(shù)。2.4.2 補碼一位除法補碼除法的被除數(shù)、除數(shù)用補碼表示,符號位和數(shù)值位一起參加運算,商的符號位與數(shù) 值位由統(tǒng)一的算法求得。1補碼加減交替法算法在補碼一位除法中也必須

11、比較被除數(shù) (余數(shù) )和除數(shù)的大小,并根據(jù)比較的結(jié)果來上商。另 外,為了避免溢出,商的絕對值不能絕對值大于 1,即被除數(shù)的絕對值一定要小于除數(shù)的絕對 值。補碼加減交替除法的算法規(guī)則如下:(1) 被除數(shù)與除數(shù)同號,被除數(shù)與減去除數(shù);被除數(shù)與除數(shù)異號,被除數(shù)加上除數(shù)。(2) 余數(shù)和除數(shù)同號,商為 1,余數(shù)左移一位,下次減除數(shù);余數(shù)和除數(shù)異號,商為0,余數(shù)左移一位,下次加除數(shù)。(3) 重復步驟 (2),包括符號位在內(nèi),共做 n+1 步。2商的校正補碼一位除法的算法是在商的末位“恒置 1”的舍入條件下推導的。按照這種算法所得到 的有限位商為負數(shù)時,是反碼形式。而正確需要得到的商是補碼形式,兩者之間至多

12、是相關(guān) 末位的一個“ 1”,這樣引起的最大誤差是 2 - n。在對商的精度沒有特殊要求的情況下,一般 采用商的末位“恒置 1”的方式進行舍入,這樣處理的好處是操作簡單,便于實現(xiàn)。如果要求 進一步提高商的精度,可以不用“恒置 1”的方式舍入,而按上述法則多求一位后,再采用如 下校正方法對商進行處理:(1) 剛好能除盡時,如果除數(shù)為正,商不必校正;如果除數(shù)為負,則商加2 - n。(2) 不能除盡時,如果商為正,則不必校正;如果商為負,則商加2 - n。2.5.1 邏輯非邏輯非也稱求反。對某數(shù)進行邏輯非運算,就是按位求它的反,常用變量上方加一橫來 表示。2.5.2 邏輯加對兩個數(shù)進行邏輯或,就是按位

13、求它們的“或” ,所以邏輯或又稱邏輯加,常用記號“ V “或“ +”來表示。2.5.3 邏輯乘對兩數(shù)進行邏輯與,就是按位求它們的“與” ,所以邏輯與又稱邏輯乘,常用記號“” 或“”來表示。2.5.4 邏輯異或?qū)蓴?shù)進行邏輯異或就是按位求它們的模 2 和,所以邏輯異或又稱按位加, 常用記號“” 來表示。2.6.1 多功能算術(shù) /邏輯運算單元 (ALU)了解 74181ALU 算術(shù) /邏輯運算功能表,并結(jié)合實驗內(nèi)容完成本部分的教學工作。2.6.2 內(nèi)部總線 由于計算機內(nèi)部的主要工作過程是信息傳送和加工的過程,因此在機器內(nèi)部各部件之間 的數(shù)據(jù)傳送非常頻繁。為了減少內(nèi)部數(shù)據(jù)傳送線并便于控制,通常將一些

14、寄存器之間數(shù)據(jù)傳 送的通路加以歸并,組成總線結(jié)構(gòu),使不同來源的信息在此傳輸線上分時傳送。因此,所謂 總線,就是一個或多個信息源傳送信息到多個目的的數(shù)據(jù)通路,它是多個部件之間傳送信息 的一級傳輸線。根據(jù)總線所處的位置,總線分為內(nèi)部總線和外部總線兩類。內(nèi)部總線是指 CPU 內(nèi)各部件 的連線,而外部總線是指系統(tǒng)總線,即 CPU與存儲器、 IO 系統(tǒng)之間的連線。本節(jié)只討論內(nèi) 部總線。按總線的邏輯結(jié)構(gòu)來說,總線可分為單向傳送總線和雙向傳送總線。所謂單向總線,就 是信息只能向一個方向傳送。所謂雙向總線,就是信息可以向兩個方向傳送,即可以發(fā)送數(shù) 據(jù),也可以接收數(shù)據(jù)??偩€的邏輯電路往往是三態(tài)的,即輸出電平有三

15、種狀態(tài):邏輯“ 1”、邏輯“ 0”和“浮空” 狀態(tài)。三態(tài)緩沖器是靠在“允許 /禁止”輸入端來禁止其操作的,禁止時,輸出呈現(xiàn)高阻抗狀 態(tài)。在高阻抗狀態(tài)下,可以認為輸出與電路的其他部分被斷開。2.6.3 定點運算器的基本結(jié)構(gòu)運算器包括 ALU 、陣列乘除器、寄存器、多路開關(guān)、三態(tài)緩沖器、數(shù)據(jù)總線等邏輯部件。 運算器的設(shè)計,主要是圍繞著 ALU 和寄存器同數(shù)據(jù)總線之間如何傳送操作數(shù)和運算結(jié)果而進 行的。在決定方案時,需要考慮數(shù)據(jù)傳送的方便性和操作速度,在微型機和單片機中還要考 慮在硅片上制作總線的工藝。計算機的運算器大體有如下三種結(jié)構(gòu)形式:1單總線結(jié)構(gòu)的運算器2雙總線結(jié)構(gòu)的運算器3三總線結(jié)構(gòu)的運算器2.6.4 浮點運算器實例(了解)2.7.1 浮點加法和減法完成浮點加減運算的操作過程大體分為四步:1. 0 操作數(shù)的檢查;2. 比較階碼

溫馨提示

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

評論

0/150

提交評論