版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
運算方法與運算器第1頁,共130頁,2023年,2月20日,星期二本章首先講述計算機中數據與文字的表示方法然后講述定點運算方法、定點運算器的組成,最后講述浮點運算方法、浮點運算器的組成。重點掌握和了解二進數的表示和數的范圍IEEE754標準定點數的加減乘除法運算規(guī)格化浮點數的四則運算陣列乘除法器本章主要內容第2頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法第3頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法數據信息控制信息非數值型數據指令信息等
一、數值型數據的表示方法
數值型數據的三個要素:符號,數碼,小數點數值型數據第4頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法(一)符號的表示方法
---符號數碼化:0---正數;1----負數
---放在最前面
---機器數:符號數碼化的數---無符號化,或用ASCII碼(二)數碼部分的表示由10個阿拉伯的數字構成
1。編碼:BCD碼,ASCII碼第5頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法1。編碼:BCD碼,ASCII碼
0000-----0;0001----1;0010---20011-----3;0100----4;0101---50110-----6;0111----7;1000---81001-----900110000---0。。。。00111001----9轉換簡單,編碼效率低,運算器復雜第6頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法2。采用二進制數表示*日常生活中,我們采用10進制數十進制數:10個符號,逢十進一,權10i*計算機中只有兩個符號可用---二進制數1)進位計數制
r進制數:用r個符號的組合表示數碼部分,并且每個位置上的權為ri,計數時逢r進位的計數制。第7頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法r進制數的表示方法:(Pn-1Pn-2…Pi…P2P1P0.P-1P-2….P-m)r=Pn-1rn-1+Pn-2rn-2+…Piri…P2r2+P1r1+P0
+P-1r-1+P-2r-2….P-mr-m2)
計算機中常用的進位基數制
可用數碼進位基數0~K-10~9ABCDEF01234567010~9逢K進1逢16進1逢8進1逢2進1逢10進1K168210K進制十六進制八進制二進制十進制第8頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法(1)二←→八,十六進制之間的轉換*23=8;24=16---分組合并,擴展表示方法例:(100010001)B=421O=111H(2)二、八、十六→十。按權相加法:。逐次乘基/除基相加法3)不同進制數之間的相互轉換Pn-1rn-1+Pn-2rn-2+…Piri…P2r2+P1r1+P0+P-1r-1+P-2r-2….P-mr-m=(((((…Pn-1r1+Pn-2)r1+。。。)r1+P0+
(((((…(P-mr-1+P-m-1)r-1…….P-2)r-1+P-1)r-1第9頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法(3)十→二、八、十六減權定位法例(326)10=(101000110)B。除基取余法(整數部分)/乘基取整法(小數部分)例:(326.625)10=(?)B*采用二進制數表示,可以直接使用人們習慣的計數和計算規(guī)則。第10頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法(三)小數點處理1。定點處理
1)無符號整數:省略符號位,適應只有正整數的運算
2)帶符號定點整數:小數點默認為在末尾,適應只有整數的運算
3)帶符號定點小數:小數點默認為在最前面,適應只有小數的運算第11頁,共130頁,2023年,2月20日,星期二三、小數點處理2。浮點處理
---用一組0/1組合表示小數點的位置—階碼。浮點數的定義
N=+/-RE×M;E:階碼;M:尾數;R:基數(2)例:+111.1101=0.1111101×23-111.1101=-0.1111101×23第12頁,共130頁,2023年,2月20日,星期二(四)數的機器碼表示無符號數:正整數。帶符號數:正數或負數。真值:帶“+”、“–”的數值本身。例:+0.01、-1000機器數(機器碼):最高位為符號位,“0”表示“+”,“1”表示“–”。原碼反碼補碼2.1數據與文字的表示方法第13頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法原碼定點整數X1=+9=+1001B[X1]原=00001001.X2=–9=–1001B[X2]原=10001001.定點小數X1=+0.75=+0.11B[X1]原=0.1100000X2=–0.75=–0.11B[X2]原=1.11000000的表示形式不唯一[+0]原=00000000[–0]原=10000000原碼加減法運算復雜。第14頁,共130頁,2023年,2月20日,星期二反碼定點整數X1=+9=+1001B[X1]反=00001001.X2=–9=–1001B[X2]反=11110110.定點小數X1=+0.75=+0.11B[X1]反=0.1100000X2=–0.75=–0.11B[X2]反=1.00111110的表示形式不唯一[+0]反=00000000[–0]反=111111112.1數據與文字的表示方法第15頁,共130頁,2023年,2月20日,星期二補碼的引入模和同余模:計量器的溢出容量,用M表示。當運算結果超出計量范圍,溢出部分舍棄。字長為n+1位時定點整數的模為2n+1
。定點小數的模為2。同余:兩整數A、B除以模M,所得的余數相同。可記作A=B(modM)當模為12時
4和16同余,可寫作4=16(mod12)
-2和10同余,可寫作–2=10(mod12)利用補碼可將減法運算轉換成為加法運算2.1數據與文字的表示方法n+11000…0n+110.00…04-2=4+10第16頁,共130頁,2023年,2月20日,星期二補碼定點整數X1=+9=+1001B[X1]補=00001001.X2=–9=–1001B[X2]補=11110111.定點小數X1=+0.75=+0.11B[X1]補=0.1100000X2=–0.75=–0.11B[X2]補=1.01000000的表示形式唯一[+0]補=[–0]補=000000002.1數據與文字的表示方法第17頁,共130頁,2023年,2月20日,星期二X真值+/-變成0/1數值位不變[X]原XS=0時,數值位不變XS=1時,數值位變反加1[X]補XS=0時,數值位不變XS=1時,數值位變反[X]反2.1數據與文字的表示方法三種不同機器數以及真值之間的轉換第18頁,共130頁,2023年,2月20日,星期二原碼與補碼的直接轉換法當X為正數時,[X]補=[X]原=X;當X為負數時,由原碼求補碼的簡便算法:符號位不變,最后面的1及其后各位保持不變,中間各位按位取反。例:[X]原=1.111001
1000[X]補=1.00011010002.1數據與文字的表示方法不變不變取反第19頁,共130頁,2023年,2月20日,星期二三種機器數的比較正數的原、反、補碼相等,負數的各自不同原碼的符號位是人為定義的,不能參與運算補碼的符號位是通過模運算得到的,是數值的一部分,可參與運算。原、反碼零的表示形式不唯一,補碼零的表示形式唯一。假設字長為8位,則:[+0]原=00000000[-0]原=10000000[+0]反=00000000[-0]反=11111111[+0]補=[-0]補=000000002.1數據與文字的表示方法第20頁,共130頁,2023年,2月20日,星期二機器碼的表數范圍不同原、反碼的表數范圍相對于零點對稱補碼的表數范圍,負方向比正方向寬以字長4位(含符號位)的純整數為例原碼、反碼表數范圍
補碼表數范圍(多表示一個負數)0+1+2+3+4+5+6+7-1-2-3-4-5-6-7+0-07個正數7個負數0+1+2+3+4+5+6+7-1-2-3-4-5-6-7-87個正數8個負數-82.1數據與文字的表示方法第21頁,共130頁,2023年,2月20日,星期二1000-81000-02.1數據與文字的表示方法真值與三種機器數間的對照第22頁,共130頁,2023年,2月20日,星期二定點數與浮點數定點數約定機器中所有數據的小數點位置是固定不變的。小數點隱含表示。可表示成純小數或純整數。定點數X=X0X1X2…Xn表示形式2.1數據與文字的表示方法第23頁,共130頁,2023年,2月20日,星期二定點數的表示范圍原碼定點數(字長n+1位)純小數:–(1-2-n)~(1-2-n)例:字長為8位,則最小定點小數:-127/128最大定點小數:127/128純整數:–(2n-1)~(2n-1)例:字長為8位,則最小定點整數:-127最大定點整數:1271.11111110.111111111111111.01111111.2.1數據與文字的表示方法第24頁,共130頁,2023年,2月20日,星期二定點數的表示范圍補碼定點數(字長n+1位)純小數:-1~1-2-n
例:字長為8位,則最小定點小數:-1最大定點小數:127/128純整數:-2n~2n-1例:字長為8位,則最小定點整數:-128最大定點整數:1271.00000000.111111110000000.01111111.2.1數據與文字的表示方法第25頁,共130頁,2023年,2月20日,星期二階碼,常為純整數尾數,常為純小數浮點數小數點的位置不固定,根據需要而浮動。任何一個數N的浮點表示形式為
N=M×2E2.1數據與文字的表示方法0+–0+1-1+–第26頁,共130頁,2023年,2月20日,星期二第n位K個0K個1n個0n個1K個1浮點數的表示范圍若階碼數值部分為K位,尾數數值部分為n位,均用補碼表示,則2.1數據與文字的表示方法第27頁,共130頁,2023年,2月20日,星期二規(guī)格化的浮點數為了充分利用尾數的有效數位,規(guī)定尾數值應在0.5~1之間。補碼表示時,尾數的最高位應與符號位不同當1/2<=M<1時,應有0.1…的形式當–1<=M<-1/2時,應有1.0…的形式為什么是<,而不是<=?為什么是<=?2.1數據與文字的表示方法補碼的表示范圍比原碼寬,可以表示-1,[-1]補=1.0000000,是規(guī)格化的浮點數[-1/2]原=1.1000000[-1/2]補=1.1000000不是規(guī)格化的浮點數第28頁,共130頁,2023年,2月20日,星期二浮點數的典型值:階碼和尾數均用補碼表示浮點數代碼真值階碼尾數最大正數最小正數規(guī)格化的最小正數絕對值最大負數絕對值最小負數規(guī)格化的絕對值最小負數01…110…010…001…110…010…00.11…110.00…010.10…001.00…001.11…111.01…112.1數據與文字的表示方法第29頁,共130頁,2023年,2月20日,星期二[X1]移=27+1101101=10000000
+1101101=11101101[X1]補=01101101[X2]移=27+(-1101101)=10000000
-1101101=00010011
[X2]補=10010011移碼:在真值X的基礎上加一個常數,相當于X在數軸上向正方向偏移了若干單位。[X]移碼=偏置值+X標準偏置值:字長n+1位時,偏置值為2n。例:字長8位,若偏置值為27,X1=+1101101,X2=-1101101,求移碼。2.1數據與文字的表示方法P26第30頁,共130頁,2023年,2月20日,星期二真值X(十進制)真值X(二進制)[X]補[X]移-128-127……-101127-10000000-1111111……-00000010000000000000111111111000000010000001……111111110000000000000001011111110000000000000001……011111111000000010000001111111112.1數據與文字的表示方法移碼、補碼和真值之間的關系設字長8位,偏置值為標準偏置值——27第31頁,共130頁,2023年,2月20日,星期二移碼的特點(字長8位,偏置值為27)移碼最高位為0表示負數,最高位為1表示正數。移碼直觀反映真值的大小。全0時,所對應的真值最小;全1時,所對應的真值最大;有利于兩個浮點數進行階碼的大小比較0的移碼表示形式唯一[+0]移=[-0]移=10000000移碼將真值映射到正數域,可視為無符號數同一真值的補碼和移碼只相差符號位。2.1數據與文字的表示方法第32頁,共130頁,2023年,2月20日,星期二IEEE754標準的浮點數:應用于80X86微機182332位短浮點數數符階碼尾數64位長浮點數11152數符階碼尾數80位臨時浮點數數符階碼尾數1156432位短浮點數1.尾數隱含了最高位1(位權20),實際為24位,尾數采用原碼表示。2.階碼采用偏置值為127的移碼表示。2.1數據與文字的表示方法P20第33頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法IEEE754標準基數R=2,基數固定,采用隱含方式來表示它。32位的浮點數:S數的符號位,1位,在最高位,“0”表示正數,“1”表示負數。M是尾數,23位,在低位部分,采用純小數表示E是階碼,8位,采用移碼表示。移碼比較大小方便。規(guī)格化:若不對浮點數的表示作出明確規(guī)定,同一個浮點數的表示就不是惟一的。尾數域最左位(最高有效位)總是1,故這一位經常不予存儲,而認為隱藏在小數點的左邊。采用這種方式時,將浮點數的指數真值e變成階碼E時,應將指數e加上一個固定的偏移值127(01111111),即E=e+127。第34頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法64位的浮點數中符號位1位,階碼域11位,尾數域52位,指數偏移值是1023。因此規(guī)格化的64位浮點數x的真值為:
x=(-1)S×(1.M)×2E-1023e=E-1023一個規(guī)格化的32位浮點數x的真值表示為
x=(-1)S×(1.M)×2E-127e=E-127第35頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法真值x為零表示:當階碼E為全0且尾數M也為全0時的值,結合符號位S為0或1,有正零和負零之分。真值x為無窮大表示:當階碼E為全1且尾數M為全0時,結合符號位S為0或1,也有+∞和-∞之分。這樣在32位浮點數表示中,要除去E用全0和全1(25510)表示零和無窮大的特殊情況,指數的偏移值不選128(10000000),而選127(01111111)。對于規(guī)格化浮點數,E的范圍變?yōu)?到254,真正的指數值e則為-126到+127。因此32位浮點數表示的絕對值的范圍是10-38~1038(以10的冪表示)。浮點數所表示的范圍遠比定點數大。一臺計算機中究竟采用定點表示還是浮點表示,要根據計算機的使用條件來確定。一般在高檔微機以上的計算機中同時采用定點、浮點表示,由使用者進行選擇。而單片機中多采用定點表示。第36頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法浮點數表示范圍如下圖所示第37頁,共130頁,2023年,2月20日,星期二(2)計算出階碼真值e=移碼-偏置值127
e=10000010-1111111=011=(3)10(3)寫出尾數(包括隱含的最高位1)1.M=1.011011(4)寫出此數的浮點記數形式X=(-1)s×1.M×2e
=+1.011011*23=1011.011(5)轉換成十進制數,并加上符號位
11.375例1:若短浮點數x的754標準存儲格式為(41360000)16,求其浮點數的十進制數值。
(1)將十六進制數轉換成二進制數,寫成短浮點數格式2.1數據與文字的表示方法01101100000000000000000100000100s階碼(8位)尾數(23位)第38頁,共130頁,2023年,2月20日,星期二01000001101001001100000000000000正數階碼的移碼(8位)隱含了最高數位1的尾數的原碼(23位)例2:將(20.59375)10轉換成短浮點數格式
(1)把十進制數轉換為二進制數
(20.59375)10=(10100.10011)2(2)寫成浮點記數形式,尾數保留最高位1,不計入。
10100.10011=1.010010011*24
(3)計算出階碼的移碼
1111111+100=10000011
(4)以短浮點數格式存儲該數41A4C000H2.1數據與文字的表示方法第39頁,共130頁,2023年,2月20日,星期二二、非數值數據表示通常是指字符、字符串、圖形符號和漢字等各種數據,它們通常不用來表示數值的大小,一般情況下不對它們進行算術運算。字符和字符串表示ASCⅡ(美國標準信息交換碼)7位基本ASCⅡ碼(國際通用)可表示128種字符8位擴充ASCⅡ碼(可重新定義)可表示256種字符ASCⅡ碼可分為:顯示字符控制字符“0”為48“A”為65return、backspace鍵的編碼分別為13、82.1數據與文字的表示方法P27第40頁,共130頁,2023年,2月20日,星期二2.1數據與文字的表示方法第41頁,共130頁,2023年,2月20日,星期二256列256行1024個1024個1024行1024列統一代碼(Unicode)
能夠表示6800種語言中任意一種語言里使用的所有符號。UCS-2用16位數來表示可表示65536個符號UCS-4用32位數來表示每個16位數都來自于對UCS-2的進一步擴展可表示220個字符2.1數據與文字的表示方法第42頁,共130頁,2023年,2月20日,星期二漢字編碼漢字是一種象形文字,無法直接用標準西文鍵盤輸入,必須經過轉換間接輸入;漢字的字數也較多,不能用單字節(jié)的ASCⅡ(256個字符)來表示目前采用兩個字節(jié)(可以表示64K字符)的漢字編碼方案。漢字的應用范圍較廣(東南亞國家),但編碼字符集不相同,中國大陸常用GB/GBK碼,臺灣BIG5。2.1數據與文字的表示方法第43頁,共130頁,2023年,2月20日,星期二外部(輸入)碼機內碼字形(輸出)碼漢字信息其它系統或設備漢字信息鍵盤管理程序漢字處理程序交換碼(國標碼)漢字處理過程2.1數據與文字的表示方法第44頁,共130頁,2023年,2月20日,星期二外部碼也叫漢字輸入編碼,主要是從鍵盤(語音、手寫、光電)輸入計算機中的代表漢字的編碼。漢字輸入方案有數百種,基本上是直接利用西文標準鍵盤進行漢字輸入,每一種漢字輸入法都各自提供相應的鍵盤碼與漢字機內碼(碼表)。編碼方案可分四類:數碼(如電報碼,區(qū)位碼,國標碼等)音碼(如全拼碼,簡拼碼,雙拼碼等)形碼(如五筆字型,大眾碼,倉吉碼等)音形碼(如自然碼,首尾碼等)2.1數據與文字的表示方法第45頁,共130頁,2023年,2月20日,星期二交換碼用于計算機與其他系統或設備之間進行漢字代碼信息交換的標準漢字代碼目前最常使用的是國標碼2000年的GB18030-2000每個漢字(圖形符號)用兩個字節(jié)表示,每個字節(jié)只用低7位,即最高位為0的二進制碼漢字分為兩級:一級為使用頻度高的常用漢字二級為次常用的漢字2.1數據與文字的表示方法第46頁,共130頁,2023年,2月20日,星期二內部碼
也稱漢字內碼或機內碼,是計算機對漢字進行存儲、運算、傳碼的實際代碼。一般用兩個字節(jié)表示一個漢字內碼,每個字節(jié)最高位為1。還有少數三字節(jié)、四字節(jié)等內部碼。最多能表示128×128=16384個漢字和圖形符號機內碼目前雖未完全統一,但已趨于標準化。內部碼與國標碼的對應關系:內碼=國標碼+8080國標碼每個字節(jié)最高位為1→內部碼。例如:國標碼3B7A→0011101101111010
機內碼BBFA→10111011111110102.1數據與文字的表示方法第47頁,共130頁,2023年,2月20日,星期二字形碼也稱為字模碼,用點陣表示的漢字字形代碼,是漢字的輸出形式。簡易型16×16提高型24×24、32×32等16×16點陣,每個漢字占32字節(jié)。每行16點,每點0/1,16位,2個字節(jié)共16行16×2=32字節(jié)2.1數據與文字的表示方法第48頁,共130頁,2023年,2月20日,星期二各種輸入碼交換碼(國標碼)內碼字形碼顯示漢字打印漢字2.1數據與文字的表示方法漢字代碼交換流程第49頁,共130頁,2023年,2月20日,星期二奇偶校驗碼常用于存儲器讀、寫檢查或ASCII字符傳送過程中的檢查。實現方法:由有效信息位和1位奇偶校驗位組成。奇校驗保證整個校驗碼中有奇數個1偶校驗保證整個校驗碼中有偶數個12.1數據與文字的表示方法第50頁,共130頁,2023年,2月20日,星期二有效信息偶校驗碼奇校驗碼10101010101010100101010101010101000101010010101010000000000000000000000000000101111111011111111011111110111111111111111101111111112.1數據與文字的表示方法簡單奇偶校驗僅實現橫向的奇、偶校驗??蓹z測出一位(或奇數位)錯誤,但不能確定出錯位置。例7:假定信息位8位,奇、偶校驗位在末尾。第51頁,共130頁,2023年,2月20日,星期二交叉奇偶校驗橫向:每一個字節(jié)有一個奇、偶校驗位縱向:全部字節(jié)同一位也設置奇、偶校驗位可以發(fā)現兩位同時出錯的情況。例:縱、橫均約定為偶校驗2.1數據與文字的表示方法有效信息橫向校驗第一字節(jié)101010100第二字節(jié)010101001第三字節(jié)000000000第四字節(jié)011111111第五字節(jié)111111110縱向校驗0111111011第52頁,共130頁,2023年,2月20日,星期二補碼加減法運算公式(討論純小數,純整數類似)[X+Y]補=[X]補+[Y]補(mod2)[X-Y]補=[X]補+[-Y]補(mod2)可證,[-Y]補=-[Y]補(mod2)所以,[X-Y]補=[X]補-[Y]補(mod2)[-Y]補=?[Y]補+2-n
([Y]補連同符號位變反,末位加1)簡便方法:[Y]補最右邊的1及其后各位保持不變,連同符號位在內一起變反。例10:已知X1=-0.1110,X2=+0.1101,
求:[X1]補,[-X1]補,[X2]補,[-X2]補解:[X1]原=1.1110[X2]原=0.1101[X1]補=1.0010[X2]補=0.1101[-X1]補=0.1110[-X2]補=1.00112.2定點加減運算第53頁,共130頁,2023年,2月20日,星期二例9:x=+0.1011,y=-0.0101,利用補碼加法計算x+y=?解:
[x]補=0.1011,[y]補=1.1011[x]補=0.1011
+[y]補=1.1011[x+y]補=10.0110x+y=+0.01102.2定點加減運算P32自動舍棄+0.6875-0.3125+0.375第54頁,共130頁,2023年,2月20日,星期二例11:x=+0.1101,y=+0.0110,利用補碼減法計算x-y=?解:[x]補=0.1101,[y]補=0.0110,[-y]補=1.1010[x]補=0.1101
+[-y]補=1.1010[x-y]補=10.0111x-y=0.0111符號位參與運算,超出模的進位自動舍棄。自動舍棄后,結果正確嗎?如何判斷?2.2定點加減運算P33自動舍棄+0.8125+0.375+0.4375第55頁,共130頁,2023年,2月20日,星期二補碼的溢出在選定了運算字長和數的表示方法之后,計算裝置所能表示的數的范圍是一定的,超過此范圍就稱為溢出。例:運算字長數的表示方法定點整數的范圍
n=8原碼-127——+127n=8反碼-127——+127n=8補碼-128——+1272.2定點加減運算第56頁,共130頁,2023年,2月20日,星期二例12:X=0.1011,Y=0.1001,[X+Y]補=?[X]補
0.1011
+[Y]補
0.1001
[X+Y]補1.0100兩正數相加,結果為負,上溢。溢出檢測方法方法一:常識判別法補碼加法運算時,僅在兩數同號時才可能產生溢出。
OVER=XsYsZs+XsYsZs=1兩正數相加,結果為負,產生上溢;兩負數相加,結果為正,產生下溢。2.2定點加減運算第57頁,共130頁,2023年,2月20日,星期二方法二:雙高位判別法(單符號位補碼)考察兩補碼相加時符號位產生的進位Cf和最高數值位產生的進位C0。
OVER=Cf⊕C0=1
例14:X=+0.1100,Y=+0.1000,[X+Y]補=?[X]補0.1100
+[Y]補
0.1000
[X+Y]補
1.0100
Cf=0C0=1Cf⊕C0=1有上溢出產生2.2定點加減運算第58頁,共130頁,2023年,2月20日,星期二方法三:變形補碼法(雙符號位補碼)采用雙符號位補碼(模4補碼)00-正數11-負數01-上溢10-下溢例15:X=-0.1100,Y=-0.1000,利用變形補碼計算[X+Y]補
[x]變補110100
+[y]變補111000[x+y]變補
101100下溢
練習:P69-6(1)X=0.11011,Y=-0.11111,用變形補碼計算X-Y,并指出結果是否溢出?2.2定點加減運算第59頁,共130頁,2023年,2月20日,星期二基本的二進制加減法器加法單元全加器:有三個輸入端,是考慮低位向本位進位的加法器。FAAiBiCi-1CiSiSi=Ai⊕Bi⊕Ci-1Ci=AiBi+(Ai
⊕Bi)Ci-1本位進位傳送進位3T3TTTT6T5T第60頁,共130頁,2023年,2月20日,星期二全加器真值表AiBiCi-1SiCi0000111100110011010101010110100100010111本位進位傳送進位基本的二進制加減法器第61頁,共130頁,2023年,2月20日,星期二加法器串行加法器:只有一位全加器的加法器,它每次只能進行一位二進制數運算,整個數據需要一位一位地串行送入全加器,分時進行運算。AiBi本位和Ci→→QCCPD移位寄存器A移位寄存器B進位觸發(fā)器全加器CP基本的二進制加減法器第62頁,共130頁,2023年,2月20日,星期二本位進位,記為Gi傳送進位,記為PiCi-1基本的二進制加減法器并行加法器:由多位全加器組成的加法器,各位全加器之間傳遞進位信號的線路組成進位鏈。根據進位鏈設置方法的不同,分為串行進位并行進位影響并行加法器速度的關鍵因素進位信號產生和傳遞的時間。進位信號的基本邏輯Ci=AiBi+(Ai⊕Bi)Ci-1第63頁,共130頁,2023年,2月20日,星期二FAAnBnCn-1CnSn…FAA2B2C2S2C0C1FAA1B1S1Cn=Gn+PnCn-1,…,C2=G2+P2C1,
C1=G1+P1C0基本的二進制加減法器串行進位:也稱為行波進位各全加器由進位信號線串接在一起每一位的進位直接依賴于前一級的進位。進位是串行的,結構簡單速度慢。假設一級進位產生時間2T,n級串行進位加法器的總延遲時間約為2nT。第64頁,共130頁,2023年,2月20日,星期二基本的二進制加減法器串行進位加減法器邏輯結構圖P35第65頁,共130頁,2023年,2月20日,星期二C1=G1+P1C0C2=G2+P2
(G1+P1C0)=G2+P2G1+P2P1C0
C3=G3+P3
(G2+P2
(G1+P1C0
))=G3+P3G2+P3P2G1+P3P2P1C0
…Cn=Gn+PnGn-1+…+(Pn…P1)C0
基本的二進制加減法器并行進位:先行進位、超前進位根據最高位進位,預先推算出各高位的進位關系使串行進位變成并行進位,從而實現快速加法運算并行進位的邏輯表示第66頁,共130頁,2023年,2月20日,星期二十進制加法器對8421BCD碼直接進行加法運算在二進制加法器的基礎上,加上適當的“校正”邏輯來實現。n位行波進位BCD碼加法器由n級BCD碼加法單元級聯而成。每一級完成4位BCD數的加法運算。基本的二進制加減法器結果≥10,加6調整。(10)10=(1010)2→(10000)BCD+6P36第67頁,共130頁,2023年,2月20日,星期二一位BCD碼加法單元第一次近似求值時,完成4位二進數加法得到的暫時和大于10或向高位產生進位時,進行加6調整?;镜亩M制加減法器第68頁,共130頁,2023年,2月20日,星期二計算機實現乘除法的方法純軟件不需要專門的硬件電路,無乘除運算指令,只能用子程序來實現乘除運算。低檔微機。硬件擴充——串行乘法器在原有運算器的基礎上增加一些硬件設備,使乘除運算變換成累加和移位操作,設有專門的乘除指令。適合中、小、微型機。專用硬件——并行乘法器設置專用的乘除法器,機器中設有相應的乘除指令,運算速度快,電路復雜。適合中、大型機。2.3定點乘法運算第69頁,共130頁,2023年,2月20日,星期二補碼的移位運算補碼左移一位相當于乘以2,低位補0。補碼右移一位相當于除以2,高位補符號位
例:0.01左移0.10,右移0.001
1.11左移1.10,右移1.111+0.5+0.25+0.125-0.5-0.25-0.1252.3定點乘法運算第70頁,共130頁,2023年,2月20日,星期二人工算法與機器算法的同異性人工算法:乘積P=|X|·|Y|符號PS=XS⊕YS
引例:X=0.1101,Y=0.1011,求X*Y。
0.1101
×0.1011110111010000+11010.10001111因為PS=XS⊕YS=0⊕0=0所以X×Y=0.10001111為適合計算機運算需要改進:1.一次進行n個數相加→一次進行2個數相加;2.小數點移動→小數點固定;3.需要2n個加法器→只設n個加法器;2.3定點乘法運算第71頁,共130頁,2023年,2月20日,星期二又稱為比較法、Booth法參加運算的數用補碼表示,符號位參加運算被乘數X與部分積取雙符號位乘數Y取單符號位,末位增設附加位Yn+1,初值0Yn與Yn+1構成了各步運算的判斷位串行乘法——補碼一位乘
YnYn+1
操作
00原部分積→1
01原部分積+[X]補,→1
10原部分積+[-X]補,→1
11原部分積→1推導進行n+1步操作,但第n+1步不移位按補碼右移規(guī)則移位補充第72頁,共130頁,2023年,2月20日,星期二BOOTH法的推導設[Y]補=Y0.Y1Y2…Yn,其中Y0是符號位,可以證明
[X·Y]補=[X]補·{0.Y1Y2…Yn}-[X]補·Y0Y0=0,正數,[X·Y]補=[X]補·{0.Y1Y2…Yn}不需校正
Y0=1,負數,[X·Y]補=[X]補·{0.Y1Y2…Yn}-[X]補校正[X·Y]補=[X]補·{0.Y1Y2…Yn}-[X]補·Y0
=[X]補·[2-1Y1+2-2Y2+…+2-(n-1)Yn-1+2-nYn]-[X]補·Y0
=[X]補·[-Y0+2-1Y1+2-2Y2+…+2-(n-1)Yn-1+2-nYn]又因為,2-1Y1=Y1-2-1Y1,2-2Y2=2-1Y2-2-2Y2…,可得[X]補·[-Y0+Y1-2-1Y1+2-1Y2-2-2Y2+…+2-(n-2)Yn-1-2-(n-1)Yn-1+2-(n-1)Yn-2-nYn]=[X]補·[(Y1-Y0)+2-1(Y2-Y1)+2-2(Y3-Y2)+…2-(n-1)(Yn-Yn-1)+2-n(0-Yn)]第73頁,共130頁,2023年,2月20日,星期二=[X]補·[(Y1-Y0)+2-1(Y2-Y1)+2-2(Y3-Y2)+…2-(n-1)(Yn-Yn-1)+2-n(0-Yn)]設Yn+1=0=[X]補·[(Y1-Y0)+2-1(Y2-Y1)+2-2(Y3-Y2)+…2-(n-1)(Yn-Yn-1)+2-n(Yn+1-Yn)]=[X]補·[(Y1-Y0)+2-1((Y2-Y1)+2-1((Y3-Y2)+…2-1(Yn+1-Yn)…)]=[X]補·(Y1-Y0)+2-1([X]補(Y2-Y1)+2-1([X]補(Y3-Y2)+…2-1([X]補(Yn+1-Yn)…))=[X]補·(Y1-Y0)+2-1([X]補(Y2-Y1)+2-1([X]補(Y3-Y2)+…2-1([X]補(Yn+1-Yn+0)…))設[P0]補=0[P1]補=2-1([X]補(Yn+1-Yn)
+[P0]補)[P2]補=2-1([X]補(Yn-Yn-1)
+[P1]補)…[Pn]補=2-1([X]補(Y2-Y1
)
+[Pn-1]補)[Pn+1]補=[X·Y]補=
[X]補(Y1-Y0)+[Pn]補YnYn+1操作00部分積→101部分積+[X]補,→110部分積+[-X]補,→111部分積→1返回第74頁,共130頁,2023年,2月20日,星期二補碼一位乘法運算示例例:X=-0.1101Y=0.1011用補碼一位乘法計算X*Y=?解:[X]補=11.0011[-X]補=00.1101[Y]補=0.1011AC附加位說明00.00000.10110YnYn+1=10,+[-X]補+00.110100.1101→100.011010.1011YnYn+1=11,→100.0011010.10
1YnYn+1=01,+[X]補+11.0011
11.0110→111.10110010.1
0
YnYn+1=10,+[-X]補+00.1101
00.1000→100.010000010.
1
YnYn+1=01,+[X]補+11.0011
最后一步不移位11.01110001所以,X×Y=-0.10001111第75頁,共130頁,2023年,2月20日,星期二補碼一位乘法運算器框圖反變量原變量右移A寄存器加法器與或門B寄存器Yn+1C寄存器Yn部分積被乘數乘數
附加位計數器+1加法01減法1000或11+1第76頁,共130頁,2023年,2月20日,星期二陣列乘法器專用硬件——并行乘法器由于乘法運算量大,采用高速乘法部件可以提高速度和效率。隨著大規(guī)模集成電路的問世,可由全加器陣列,構成流水式陣列乘法器,實現多個部分積并行相加,稱為并行乘法器。運算速度快,電路復雜。P38第77頁,共130頁,2023年,2月20日,星期二不帶符號的陣列乘法器設有兩個不帶符號的二進制整數A=am-1…a1a0B=bn-1…b1b0它們的數值分別為a和b,即設P=A*B=pm+n-1…p1p0
,即第78頁,共130頁,2023年,2月20日,星期二不帶符號的陣列乘法器這個過程與手工計算乘法過程非常類似m×n個aibj,可以用m×n個與門并行地產生m×n個aibj相加,可用(m-1)×n個全加器實現第79頁,共130頁,2023年,2月20日,星期二不帶符號陣列乘法器邏輯框圖第80頁,共130頁,2023年,2月20日,星期二FACiAiBiSiCi+1來自低位的進位加數加數向高位產生的進位和全加器邏輯符號第81頁,共130頁,2023年,2月20日,星期二例如:當m=n=5時a0b0FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAp8p7p6p5p4p3p2p1p0p9a1b0a2b0a3b0a4b0a0b1a1b1a2b1a3b1a4b1a0b2a1b2a2b2a3b2a4b2a0b3a1b3a2b3a3b3a4b3a0b4a1b4a2b4a3b4a4b400000不帶符號的陣列乘法器邏輯電路圖Ta:與門時間延遲Tf:全加器進位時間延遲總時間延遲=Ta+(n-1)×6T+(n-1)×Tf=(8n-6)T第82頁,共130頁,2023年,2月20日,星期二不帶符號的陣列乘法器[例16]已知兩個不帶符號的二進制整數A=11011,B
=10101,求每一部分乘積項aibj的值與p9p8……p0的值[解]a4b0=1
a3b0=1
a2b0=0a1b0=1
a0b0=1a4b1=0
a3b1=0
a2b1=0
a1b1=0
a0b1=0a4b2=1
a3b2=1
a2b2=0
a1b2=1
a0b2=0a4b3=0
a3b3=0
a2b3=0
a1b3=0
a0b3=0a4b4=1
a3b4=1
a2b4=0a1b4=1
a0b4=1第83頁,共130頁,2023年,2月20日,星期二10000111010100FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA11011000001101100000110110110101P=p9p8p7p6p5p4p3p2p1p0=1000110111(56710)0000001100010011011010011
串行進位鏈的并行加法器不帶符號陣列乘法器工作過程演示A*B=11011*10101第84頁,共130頁,2023年,2月20日,星期二帶符號的陣列乘法器對2求補器:在帶符號數與無符號數間進行轉換求補方法:設A=an…a1a0是n+1位帶符號數,負數:E=1,最右邊的“1”及其后各位保持不變,其余各位按位取反。1010→0110正數:E=0,輸出和輸入相等。可利用符號位做為控制信號。第85頁,共130頁,2023年,2月20日,星期二帶符號陣列乘法器邏輯框圖將A和B變成正整數當A和B異號時,把運算結果變成帶符號的數第86頁,共130頁,2023年,2月20日,星期二帶符號的陣列乘法器[例17]
設X=+15,Y=-13,用帶求補器的原碼陣列乘法器求出乘積X×Y=?[解]設最高位為符號位,則輸入數據為
[X]原=01111
[Y]原=11101符號位單獨考慮,算前求補級后
|X|=1111,|Y|=1101算后經求補級輸出并加上乘積符號位1,則原碼乘積值為111000011。真值是(-11000011)2=(-195)10第87頁,共130頁,2023年,2月20日,星期二手工除法示例假定:X=0.1011,Y=0.1101,則
0.11010.10110
X小于Y,商00.2.4定點除法運算0.10.110.1100.11010.01101
Y右移,夠減,商1,相減0.010010
得R0
0.001101
Y再右移,夠減,商1,相減0.0001010
得R1
0.0001101
Y再右移,不夠減,商00.00000111得R3
商符qf=Xf⊕Yf=0⊕0=0X÷Y=0.1101+0.0111*2-4/0.11010.00001101
Y再右移,夠減,商1,相減0.00010100
得R2
第88頁,共130頁,2023年,2月20日,星期二計算機實現除法的改進定點機,商應為純小數,否則溢出。所以,只有在被除數小于除數時(X-Y<0),運算才能開始。將除數右移改為余數左移。中間過程判斷是否夠減,直接進行相減R-YR>0,商1,余數左移,進行下一步R<0,商0恢復余數法+Y(恢復余數),余數左移,進行下一步不恢復余數法(加減交替法)∵Ri+1=2(Ri+Y)-Y=2Ri+Y∴余數左移,下一步加+Y串行除法第89頁,共130頁,2023年,2月20日,星期二串行除法——補碼不恢復余數法涉及到的問題及解決第一步,判斷是否開始,不是簡單地相減:
——補碼表示時:X與Y同號,相減
X與Y異號,相加中間過程中,不同情況不同處理:——R與Y同號,商1,1←,+[-Y]補
R與Y異號,商0,1←,+[Y]補商的校正
——末尾恒置1法補充第90頁,共130頁,2023年,2月20日,星期二補碼不恢復余數法示例例:X=0.1000Y=-0.1010用補碼不恢復余數法計算X/Y解:A:[X]補=00.1000B:[Y]補=11.0110,[-Y]補=00.1010
C:商,初值為0AC操作00.1000X與Y異號
+11.0110+[Y]補11.11101R與Y同號,商111.1100
1.1←
+00.1010+[-Y]補
00.01101.0
R與Y異號,商000.11001.01←
+11.0110+[Y]補
00.00101.00
R與Y異號,商000.01001.001←第91頁,共130頁,2023年,2月20日,星期二補碼不恢復余數法示例例:X=0.1000Y=-0.1010用補碼不恢復余數法計算X/Y解:A:[X]補=00.1000B:[Y]補=11.0110,[-Y]補=00.1010
C:商,初值為0AC操作
00.01001.001←
+11.0110+[Y]補
11.10101.001R與Y同號,商111.0100
1.0011←+00.101011.11101.0011
末位恒置1
[X/Y]補=1.0011+1.1110*2-4/1.0110
[X/Y]=-0.1101+0.0010*2-4/0.1010第92頁,共130頁,2023年,2月20日,星期二陣列除法器采用大規(guī)模集成電路制造的并行運算部件。與串行除法器相比,運算速度高。形式多樣不恢復余數陣列除法器補碼陣列除法器基本的單元電路——可控加/減法單元(CAS)既可完成減法操作,又可完成加法操作適用于除法操作過程中的加減交替。第93頁,共130頁,2023年,2月20日,星期二可控加/減法(CAS)單元CASAiBiPPCiCi+1SiBi四個輸入端Ai、Bi、CiP:控制端輸入四個輸出端Si、Ci+1Bi:除數右移P:控制端輸出P=0:CAS作加法Si=Ai⊕Bi⊕CiCi+1=AiBi+(Ai
⊕Bi)CiP=1:CAS作減法Si=Ai⊕Bi⊕Ci(
Bi=Bi⊕1)Ci+1=AiCi+(Ai
⊕Ci)Bi第94頁,共130頁,2023年,2月20日,星期二不恢復余數的陣列除法器不恢復余數的除法——加減交替法當前行應執(zhí)行加法還是減法,取決于上一行余數的符號與被除數的符號是否一致:余數與被除數異號(余數為負),商“0”,除數右移,與原余數相加,得新余數;余數與被除數同號(余數為正),商“1”,除數右移,與原余數相減,得新余數。只介紹被除數、除數均為正數的情況。第95頁,共130頁,2023年,2月20日,星期二陣列除法器邏輯結構圖被除數
x=0.x1x2x3x4x5x6
(雙倍長)除數y=0.y1y2y3(X<Y)商數q=0.q1q2q3余數r=0.00r3r4r5r6字長n+1=4第一行做減法(P=1),由于X<Y,余數<0,商的個位q0上0。第二行做加法,余數加上右移一位后的Y。由余數的正負決定第二位商q1是1或0。由q1控制第三行做加法或減法,依次類推。第96頁,共130頁,2023年,2月20日,星期二[例20]x=0.101001,y=0.111,求x÷y。[解:]
[-y]補=1.001
被除數x
0.101001被除數x
減y
1.001
(-0.111)
第一步減除數y
1.110001<0q0=0
余數為負商0,下步做加法
加y
0.0111
除數右移,加
0.001101>0
q1=1
余數為正商1,下步做減法
減y
1.11001(-0.00111)
除數再右移,減
1.111111<0
q2=0
余數為負商0,下步做加法
加y
0.000111
除數再右移,加
0.000110>0
q3=1
余數為正商1
故得商q=q0.q1q2q3=0.101
余數r=(0.00r3r4r5r6)=0.000110陣列除法器完成除法運算示例第97頁,共130頁,2023年,2月20日,星期二2.5定點運算器的組成ALU算術邏輯單元,實現基本算術、邏輯運算。寄存器組提供操作數與暫存運算結果。多路選擇器或鎖存器向ALU提供操作數。內部總線運算器內部的數據通路,用來傳輸運算過程中的數據。判別邏輯和控制電路第98頁,共130頁,2023年,2月20日,星期二多功能算邏單元ALUALU:算邏單元,是運算器的核心。是由多個全加器構成的并行加法器;既可以完成算術運算加、減、乘、除又可以完成邏輯運算與、或、非、異或每一位都是邏輯數,無符號位、數值位、階碼、階符之分。簡單位運算:位與位之間沒有進/借位關系。P51第99頁,共130頁,2023年,2月20日,星期二為完
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學年河北省張家口市橋西區(qū)八年級(上)期末數學試卷(含答案)
- 11月國產%26進口游戲版號發(fā)放騰訊混元3D創(chuàng)作引擎推出國際站
- 2026西藏林芝市林業(yè)和草原局招聘公益性崗位人員1人參考考試題庫及答案解析
- 2026湖南長沙市長郡雨花外國語第二附屬小學春季合同制教師招聘備考考試題庫及答案解析
- 2026安徽滁州市公共數據授權運營合伙人(第一批)招募考試備考題庫及答案解析
- 2026中科華軌航空產業(yè)發(fā)展(天津)有限公司招聘6人參考考試題庫及答案解析
- pg梁施工方案(3篇)
- 山東省耗材管理制度(3篇)
- 車間附屬設備區(qū)管理制度(3篇)
- 2026年度濟南平陰縣事業(yè)單位公開招聘初級綜合類崗位人員參考考試題庫及答案解析
- 性激素六項結果解讀課件
- PCB高端生產線技術改造項目節(jié)能評估報告
- 病案管理匯報工作
- DBJ50-T-516-2025 危險性較大的分部分項工程安全管理標準
- 維修飛機基礎知識培訓課件
- 地下水庫工程設計導則(2025版)
- 外墻漆脫落維修施工方案
- 注射用伏欣奇拜單抗-臨床用藥解讀
- 密碼學培訓課件
- 消毒供應室醫(yī)院感染管理
- 雙眼皮手術講解
評論
0/150
提交評論