白中英《計算機組成原理》第四版第二章_第1頁
白中英《計算機組成原理》第四版第二章_第2頁
白中英《計算機組成原理》第四版第二章_第3頁
白中英《計算機組成原理》第四版第二章_第4頁
白中英《計算機組成原理》第四版第二章_第5頁
已閱讀5頁,還剩132頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2022-3-141第二章第二章 運算方法和運算器運算方法和運算器2.1數(shù)據(jù)與文字的表示2.2定點加法、減法運算2.3定點乘法運算2.4定點除法運算2.5定點運算器的組成2.6浮點運算與浮點運算器返回2022-3-1422.1數(shù)據(jù)與文字的表示方法數(shù)據(jù)與文字的表示方法2.1.1數(shù)據(jù)格式2.1.2數(shù)的機器碼表示2.1.3字符的表示2.1.4漢字的表示2.1.5校驗碼2022-3-1432.1數(shù)據(jù)與文字的表示方法數(shù)據(jù)與文字的表示方法l計算機中使用的數(shù)據(jù)可分成兩大類:l符號數(shù)據(jù):非數(shù)字符號的表示(ASCII、漢字、圖形等)l數(shù)值數(shù)據(jù):數(shù)字數(shù)據(jù)的表示方式(定點、浮點)l計算機數(shù)字和字符的表示方法應有利于

2、數(shù)據(jù)的存儲、加工(處理)、傳送;l編碼:用少量、簡單的基本符號,選擇合適的規(guī)則表示盡量多的信息,同時利于信息處理(速度、方便)2022-3-1442.1.1數(shù)據(jù)格式數(shù)據(jù)格式一、復習10進制和R進制之間的轉換 R進制到10進制: 10進制到R進制:整數(shù)部分:除r取余,r為進制基數(shù) 小數(shù)部分:乘r取整2022-3-1452.1.1數(shù)據(jù)格式數(shù)據(jù)格式 二、數(shù)值數(shù)據(jù) 計算機在數(shù)據(jù)、文字的表示方式時,應該考慮一下幾個因素:l表示的數(shù)據(jù)類型(符號、小數(shù)點、數(shù)值)l數(shù)值的范圍l數(shù)值精度l存儲、處理、傳送的硬件代價2022-3-1462.1.1數(shù)據(jù)格式數(shù)據(jù)格式三、計算機常用的數(shù)據(jù)表示格式有兩種:l定點表示:小數(shù)

3、點位置固定l浮點表示:小數(shù)點位置不固定2022-3-1472.1.1數(shù)據(jù)格式數(shù)據(jù)格式四、定點表示法l所有數(shù)據(jù)的小數(shù)點位置固定不變l理論上位置可以任意,但實際上將數(shù)據(jù)表示有兩種方法(小數(shù)點位置固定-定點表示法/定點格式):l純小數(shù)l純整數(shù)l定點數(shù)表示:l帶符號數(shù)l不帶符號數(shù)2022-3-1481、定點純小數(shù)、定點純小數(shù) x0 x1 x2 x3 xn-1 xn表示數(shù)的范圍是 0|12n(最小數(shù)、最大數(shù)、最接近0的正數(shù)、最接近0的負數(shù))符號量值小數(shù)點固定于符號位之后,不需專門存放位置2.1.1數(shù)據(jù)格式數(shù)據(jù)格式2022-3-1492.1.1數(shù)據(jù)格式數(shù)據(jù)格式x=0.00.0 x=1.00.0 x=0正正

4、0和負和負0都是都是0 x=0.11.1x=12n 最大最大x=0.00.01x=2n 最接近最接近0的正數(shù)的正數(shù)x=1.00.01 x=2n最接近最接近0的負數(shù)的負數(shù)x=1.11.1 x=(12n ) 最小最小2、純小數(shù)的表示范圍、純小數(shù)的表示范圍2022-3-14102.1.1數(shù)據(jù)格式數(shù)據(jù)格式3、定點純整數(shù) x0 x1 x2 x3 xn-1 xn表示數(shù)的范圍是 0|2n1最小數(shù)、最大數(shù)、最接近0的正數(shù)、最接近0的負數(shù)呢符號量值小數(shù)點固定于最后一位之后,不需專門存放位置2022-3-14112.1.1數(shù)據(jù)格式數(shù)據(jù)格式4、定點表示法的特點l定點數(shù)表示數(shù)的范圍受字長限制,表示數(shù)的范圍有限;l定點

5、表示的精度有限l機器中,常用定點純整數(shù)表示; 如果用定點表示,則如何表示實數(shù)(包括小數(shù)和整數(shù))呢? -引入浮點2022-3-14122.1.1數(shù)據(jù)格式數(shù)據(jù)格式五、浮點表示:小數(shù)點位置隨階碼不同而浮動1、格式:N=RE.M2、機器中表示指數(shù)E基數(shù)R,取固定的值,比如10,2等尾數(shù)M階符 階碼 數(shù)符 尾數(shù) 2022-3-14132.1.1數(shù)據(jù)格式數(shù)據(jù)格式3、IEEE754標準(規(guī)定了浮點數(shù)的表示格式,運算規(guī)則等)l規(guī)則規(guī)定了單精度(32)和雙精度(64)的基本格式. l規(guī)則中,尾數(shù)用原碼,指數(shù)用移碼(便于對階和比較)2022-3-14142.1.1數(shù)據(jù)格式數(shù)據(jù)格式IEEE754標準l基數(shù)R=2,基

6、數(shù)固定,采用隱含方式來表示它。l32位的浮點數(shù):lS數(shù)的符號位,1位,在最高位,“0”表示正數(shù),“1”表示負數(shù)。lM是尾數(shù), 23位,在低位部分,采用純小數(shù)表示lE是階碼,8位,采用移碼表示。移碼比較大小方便。l規(guī)格化: 若不對浮點數(shù)的表示作出明確規(guī)定,同一個浮點數(shù)的表示就不是惟一的。尾數(shù)域最左位(最高有效位)總是1, 故這一位經常不予存儲,而認為隱藏在小數(shù)點的左邊。采用這種方式時,將浮點數(shù)的指數(shù)真值e變成階碼E時,應將指數(shù)e加上一個固定的偏移值127(01111111),即E=e+127。2022-3-14152.1.1數(shù)據(jù)格式數(shù)據(jù)格式l64位的浮點數(shù)中符號位1位,階碼域11位,尾數(shù)域52位

7、,指數(shù)偏移值是1023。因此規(guī)格化的64位浮點數(shù)x的真值為: x=(-1)S(1.M)2E-1023 e=E-1023l一個規(guī)格化的32位浮點數(shù)x的真值表示為 x=(-1)S(1.M)2E-127 e=E-1272022-3-14162.1.1數(shù)據(jù)格式數(shù)據(jù)格式l真值x為零表示:當階碼E為全0且尾數(shù)M也為全0時的值,結合符號位S為0或1,有正零和負零之分。l真值x為無窮大表示:當階碼E為全1且尾數(shù)M為全0時,結合符號位S為0或1,也有+和-之分。l這樣在32位浮點數(shù)表示中,要除去E用全0和全1(25510)表示零和無窮大的特殊情況,指數(shù)的偏移值不選128(10000000),而選127(0111

8、1111)。對于規(guī)格化浮點數(shù),E的范圍變?yōu)?到254,真正的指數(shù)值e則為-126到+127。因此32位浮點數(shù)表示的絕對值的范圍是10-381038(以10的冪表示)。l浮點數(shù)所表示的范圍遠比定點數(shù)大。一臺計算機中究竟采用定點表示還是浮點表示,要根據(jù)計算機的使用條件來確定。一般在高檔微機以上的計算機中同時采用定點、浮點表示,由使用者進行選擇。而單片機中多采用定點表示。2022-3-14172.1.1數(shù)據(jù)格式數(shù)據(jù)格式浮點數(shù)表示范圍如下圖所示浮點數(shù)表示范圍如下圖所示2022-3-14182.1.1數(shù)據(jù)格式數(shù)據(jù)格式例1若浮點數(shù)x的754標準存儲格式為(41360000)16,求其浮點數(shù)的十進制數(shù)值。解

9、:將16進制數(shù)展開后,可得二制數(shù)格式為 0 100 00010011 0110 0000 0000 0000 0000 S 階碼(8位) 尾數(shù)(23位)指數(shù)e=階碼-127=10000010-01111111=00000011=(3)10包括隱藏位1的尾數(shù)1.M=1.011 0110 0000 0000 0000 0000=1.011011于是有x=(-1)S1.M2e=+(1.011011)23=+1011.011=(11.375)102022-3-14192.1.1數(shù)據(jù)格式數(shù)據(jù)格式例2將數(shù)(20.59375)10轉換成754標準的32位浮點數(shù)的二進制存儲格式。解:首先分別將整數(shù)和分數(shù)部分轉

10、換成二進制數(shù):20.59375=10100.10011 然后移動小數(shù)點,使其在第1,2位之間 10100.10011=1.01001001124 e=4于是得到: S=0, E=4+127=131, M=010010011 最后得到32位浮點數(shù)的二進制存儲格式為:01000001101001001100000000000000=(41A4C000)162022-3-14202.1.1數(shù)據(jù)格式數(shù)據(jù)格式4、十進制數(shù)串的表示l字符串形式lBCD(壓縮)l編碼方式l有權碼: (8421碼、2421碼、5211碼)l無權碼: (余三碼、格雷碼)l自定義數(shù)據(jù)表示2022-3-14212.1.2數(shù)的機器碼表

11、示數(shù)的機器碼表示一、數(shù)的機器碼表示l真值:一般書寫的數(shù)l機器碼:機器中表示的數(shù), 要解決在計算機內部數(shù)的正、負符號和小數(shù)點運算問題。l原碼l反碼l補碼l移碼2022-3-14221、原碼表示法、原碼表示法l定點小數(shù)x0.x1x2xn x 1x0 0,正x原= 符號 1-x 0 x -1 1,負數(shù)l有正0和負0之分l范圍2-n-11- 2-n例:x=+0.11001110 x原=0.11001110 -x原=1.110011102022-3-14231、原碼表示法、原碼表示法l定點整數(shù)X0X1X2Xn x 2nx0 0,正數(shù)x原= 符號 2n-x 0 x -2n 1,負數(shù)說明:l有正0和負0之分

12、l范圍 1 - 2n 2n 1l例:x=+11001110 x原=011001110 -x原=1110011102022-3-14241、原碼表示法、原碼表示法 原碼特點:l表示簡單,易于同真值之間進行轉換,實現(xiàn)乘除運算規(guī)則簡單。l進行加減運算十分麻煩。2022-3-14252、補碼表示法、補碼表示法l定義:正數(shù)的補碼就是正數(shù)的本身,負數(shù)的補碼是原負數(shù)加上模。l計算機運算受字長限制,屬于有模運算.定點小數(shù)x0.x1x2.xn溢出量為2,以2為模定點整數(shù)x0 x1x2.xn溢出量為2,以2n+1為模l定點小數(shù)x0.x1x2xn x 1x0 0,正數(shù)x補= 符號 2+x 0 x -1 1,負數(shù)20

13、22-3-14262、補碼表示法、補碼表示法例: x= -0.1011 lx補=10+x=10.0000-0.1011=1.0101ly=-0.01111ly補=10+y=10.00000-0.01111=1,10001l定點整數(shù)x0 x1x2xn x 2nx0 0,正數(shù),0 x補= 符號 2n+1+x 0 x -2n 1,負數(shù)2022-3-14272、補碼表示法、補碼表示法l補碼性質l高位表明正負l正數(shù)補碼,尾數(shù)與原碼相同l范圍-2n2n-1(定點整數(shù))l變相補碼(雙符號補碼)l為了防止溢出而設定2022-3-14282、補碼表示法、補碼表示法l最大的優(yōu)點就是將減法運算轉換成加法運算。 X補

14、-Y補= X補+-Y補例如 X=(11)10=(1011)2 Y=(5)10=(0101)2已知字長n=5位X補-Y補 =X補+-Y補=01011+11011=100110=00110=(6)10 注: 最高1位已經超過字長故應丟掉l無正零和負零之分l但是,在求補碼還要減法,電路繁瑣,下面的反碼表示解決著個問題。2022-3-14293、反碼表示法、反碼表示法l定義:正數(shù)的表示與原、補碼相同,負數(shù)的補碼符號位為1,數(shù)值位是將原碼的數(shù)值按位取反,就得到該數(shù)的反碼表示。l電路容易實現(xiàn),觸發(fā)器的輸出有正負之分。2022-3-14303、反碼表示法、反碼表示法l對尾數(shù)求反,它跟補碼的區(qū)別在于末位少加一

15、個1,所以可以推出反碼的定義l定點小數(shù)x0.x1x2xn x 1x0 x反= 2+x 2-n 0 x -1X1=+0.1011011 , X1 反 =0.1011011X2= -0.1011011 , X2 反 =1.0100100 1. 1 1 1 1 1 1 1 0. 1 0 1 1 0 1 1 1. 0 1 0 0 1 0 0 2022-3-14313、反碼表示法、反碼表示法lx 補=x 反+2-n(證明見書)l反碼表示有正0和負0之分l上述公式解決了前邊的問題(求補碼還要減法)l定點整數(shù)的反碼定義見書2022-3-14324、移碼表示法、移碼表示法l移碼表示法(用在階碼中)l定點整數(shù)定

16、義 x移=2n+x 2n x-2n l0000000011111111(-2n2n-1)l例+1011111 原碼為01011111l補碼為01011111 反碼為01011111l移碼為 110111112022-3-14334、移碼表示法、移碼表示法例-1011111 原碼為11011111補碼為10100001 反碼為10100000移碼為00100001特點:移碼和補碼尾數(shù)相同,符號位相反范圍:-2n2n-1P22 浮點IEEE754表示e=-127+12800000000階碼表示數(shù)字”0”,尾數(shù)的隱含位為011111111階碼表示數(shù)字”無窮大” ,尾數(shù)的隱含位為0p21例3-9202

17、2-3-1434例例6以定點整數(shù)為例以定點整數(shù)為例,用數(shù)軸形式說用數(shù)軸形式說明原碼、反碼、補碼表示范圍和可能明原碼、反碼、補碼表示范圍和可能的數(shù)碼組合情況。的數(shù)碼組合情況。 2022-3-1435例例7將十進制真值將十進制真值(127,1,0,1,127)列表表示成二進制數(shù)及原碼、列表表示成二進制數(shù)及原碼、反碼、補碼、移碼值。反碼、補碼、移碼值。2022-3-1436例例8設機器字長設機器字長16位位,定點表示定點表示,尾數(shù)尾數(shù)15位位,數(shù)數(shù)符符1位位,問:問:(1)定點原碼整數(shù)表示時定點原碼整數(shù)表示時,最大正數(shù)最大正數(shù)是多少是多少?最小負數(shù)是多少最小負數(shù)是多少?(2)定點原碼小數(shù)表定點原碼小

18、數(shù)表示時示時,最大正數(shù)是多少最大正數(shù)是多少?最小負數(shù)是多少最小負數(shù)是多少?(1)定點原碼整數(shù)表示最大正數(shù)值(2151)10(32767)10最小負數(shù)值(2151)10(32767)10(2)定點原碼小數(shù)表示 最大正數(shù)值(1215)10(0.111.11)2最小負數(shù)值(1215)10(0.111.11)2注:1符號,數(shù)字2022-3-1437例例9假設由假設由S,E,M三個域組成的一個三個域組成的一個32位二進制字所表示的非零規(guī)位二進制字所表示的非零規(guī)格化浮點數(shù)格化浮點數(shù),真值表示為(非真值表示為(非IEEE754標準):標準):(1)s(1.M)2E128問:它所表示的規(guī)格化的最大正數(shù)、最小正

19、數(shù)、最大負數(shù)、最小負數(shù)問:它所表示的規(guī)格化的最大正數(shù)、最小正數(shù)、最大負數(shù)、最小負數(shù)是多少?是多少?(1)最大正數(shù)0 1111 1111 111 1111 1111 1111 1111 11111(12-23)2127(2)最小正數(shù) 000 000 000000 000 000 000 000 000 000 001.02128(3)最小負數(shù)111 111 111111 111 111 111 111 111 111 111(1223)2127(4)最大負數(shù)100 000 000000 000 000 000 000 000 000 001.02128 2022-3-14382.1.3字符和字符

20、串字符和字符串(非數(shù)值非數(shù)值)的表示方法的表示方法l符號數(shù)據(jù):字符信息用數(shù)據(jù)表示,如ASCII等;l字符表示方法ASCII:用一個字節(jié)來表示,低7位用來編碼(128),最高位為校驗位,參見教材P24表2.1l字符串的存放方法CAI2022-3-14392.1.4漢字的存放漢字的存放l漢字的表示方法(一級漢字3755個,二級漢字3008個)l輸入碼l國標碼一級(1655)*94二級(5687)*94圖形符號(682個)(0109)*94l拼音、五筆l漢字內碼:漢字信息的存儲,交換和檢索的機內代碼,兩個字節(jié)組成,每個字節(jié)高位都為1(區(qū)別于英文字符)2022-3-14402.1.4漢字的存放漢字的存

21、放l漢字字模碼:漢字字形l點陣l漢字庫2022-3-14412.1.5校驗碼校驗碼l校驗碼(只介紹奇偶校驗碼)l引入:信息傳輸和處理過程中受到干擾和故障,容易出錯。l解決方法:是在有效信息中加入一些冗余信息(校驗位)l奇偶校驗位定義l設(01n1)是一個n位字,則奇校驗位定義為:C0 1 n1,式中 代表按位加,表明只有當中包含有奇數(shù)個1時,才使C1,即C0。同理可以定義偶校驗。 l只能檢查出奇數(shù)位錯;不能糾正錯誤。lp26例10自己看一下。l其它還有Hamming,CRC2022-3-14422.2 定點加法、減法運算定點加法、減法運算2.2.1補碼加減法2.2.2溢出檢測2.2.3基本的加

22、法和減法器2.2.4十進制加法器2022-3-14432.2.1補碼加減法補碼加減法l補碼加法公式:x+y補=x補+y補l補碼減法 為了將減法轉變?yōu)榧臃?,需證明公式: x-y補=x補+-y補 (證明) 為了求得同時-y補,需要證明-y補=乛y補+2-n(意義是-y補等于y補取反,末位加1)2022-3-1444補補補補補補證明證明l假設1, 1, 1 l現(xiàn)分四種情況來證明 (1)0,0,則0 補=x, 補=y, 補=x+y所以等式成立.(2)0,0,則0或0時,2 () 2,進位2必丟失,又因()0,故補補補當0時,2 () 2,又因()0,故補補2()補所以上式成立2022-3-1445補補

23、補補補補證明證明(3)0,則0或 0 這種情況和第2種情況一樣,把和的位置對調即得證。 (4)0,0,則0 相加兩數(shù)都是負數(shù),則其和也一定是負數(shù)。補2,補2補補222(2)上式右邊分為”2”和(2)兩部分.既然()是負數(shù),而其絕對值又小于1,那么(2)就一定是小于2而大于1的數(shù),進位”2”必丟失.又因()x0 x補= 4+x 0 x -2 Sf1 SF2 0 0正確(正數(shù))01上溢10下溢11正確(負數(shù)) Sf1 表示正確的符號,邏輯表達式為V=Sf1 Sf2,可以用異或門來實現(xiàn)2022-3-14512.2.2 溢出的檢測溢出的檢測二、檢驗舉例:l0.1100, 0.1000,求 l0.110

24、0, -0.1000,求 l結果出現(xiàn)了01或10的情況就為溢出2022-3-14522.2.2 溢出的檢測溢出的檢測2、單符號位法lCf C000正確(正數(shù))01上溢10下溢11正確(負數(shù))lV=Cf C0 其中Cf為符號位產生的進位,C0為最高有效位產生2022-3-14532.2.3基本的加法和減法器基本的加法和減法器l基本的加法和減法器l半加器HiAi Bi不考慮進位l全加器考慮低位進位Ci-1和向高位的進位Ci 2022-3-1454一位全加器真值表輸入輸出AiBiCiSiCi100000001100101001101100101010111001111112022-3-1455FA邏

25、輯方程邏輯方程iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiCBCABACBABACBABABACBABACBACBABACBABABACBABA)()()()()(因為:2022-3-1456FA邏輯方程邏輯方程l邏輯方程見下iiiiCBASiiiiCBASiiiiiiiiiiiiiiiiiCBABACBABACBCABAC).( .)(12022-3-1457FA邏輯電路和框圖邏輯電路和框圖FA(全加器)邏輯電路圖 FA框圖2022-3-1458n位行波進位加法器位行波進位加法器圖2-3行波進位的補碼加法/加法器2022-3-14592. 定點乘法運

26、算定點乘法運算2.3.1 定點原碼乘法2.3.2 定點補碼乘法2022-3-14602.3.1 定點原碼乘法定點原碼乘法l乘法實現(xiàn)方法l在現(xiàn)有的加法和減法器的基礎上增加適當?shù)囊詾榫€路及控制邏輯可以實現(xiàn)l用LSI和VLSI工藝實現(xiàn)專用的乘法器l編制子程序(單片機等低端機器)2022-3-14611、定點原碼乘法原理、定點原碼乘法原理x原=xf.xn-1x1x0 y原=yf.yn-1y1y0 x.y原=(xf yf)+(0. xn-1x1x0).(0. yn-1y1y0)尾數(shù)乘法如下:設0.1101,0.1011 0.1 1 0 1 () 0.1 0 1 1() 1101 1101 0000 11

27、01 0.10001111()2022-3-14621、定點原碼乘法原理、定點原碼乘法原理ln位乘n位積可能為2n位.l乘積的最后是所有部分積之和,有n個數(shù)相加,而FA只有兩個輸入端所以需要改造方法一:硬件實現(xiàn)方法(串行的“加法和移位”),硬件 結構簡單,速度太慢(時間延遲太長).方法二:不帶符號位的陣列乘法器2022-3-14631、定點原碼乘法原理、定點原碼乘法原理設0.1101,0.1011求x*y部分積 乘數(shù)部分積初始化為0. 0 0 0 00 1 0 1 1 部分積右移,前面補+X0. 1 1 0 1 乘數(shù)最低位為,加上被乘數(shù)-0 1 1 0 10 1 0 1 1 部分積右移,前面補

28、0. 0 1 1 01 0 1 0 1 乘數(shù)最低位為,加上被乘數(shù)+X0 1 1 0 1-1 0 0 1 11 0 1 0 1 部分積右移,前面補0 1 0 0 11 1 0 1 0 乘數(shù)最低位為,加上+00 0 0 0 0-0 1 0 0 11 1 0 1 0部分積右移,前面補0 0 1 0 01 1 1 0 1乘數(shù)最低位為,加上被乘數(shù)+X0 1 1 0 1- 1 0 0 0 11 1 1 0 1部分積右移,前面補0. 1 0 0 01 1 1 1 0運算四次結束,數(shù)值部分運算2022-3-14642、不帶符號位的陣列乘法器、不帶符號位的陣列乘法器不帶符號陣列乘法器邏輯圖2022-3-1465

29、2、不帶符號位的陣列乘法器、不帶符號位的陣列乘法器2022-3-14663、帶符號位的陣列乘法器、帶符號位的陣列乘法器l求補電路原理:算前求補乘法器算后求補,見下圖2022-3-14673 3、帶符號的陣列乘法器、帶符號的陣列乘法器l求補電路小結lE=0時,輸入和輸出相等lE=1時,則從數(shù)最右端往左邊掃描,直到第一個1的時候,該位和右邊各位保持不變0 A=A,左邊各數(shù)值位按位取反1 A=乛Al可以用符號作為E 的輸入l原:1.11110 補:1.00010l時間延遲分析:轉換n+1位帶符號的時間延遲為t=n*2T+5T,其中n*2T為或門延遲時間,5T為最高位與門和異或門的時延。不變,左邊數(shù)值

30、位取反2022-3-14683 3、帶符號的陣列乘法器、帶符號的陣列乘法器( (間接法間接法) ) 原碼補碼2022-3-1469舉例舉例(P36)例20用帶求補器原碼乘法器(輸入/出:為原碼)Y=(+15)*(-13)例21用帶求補器補碼乘法器(輸入/出:為補碼)Y=(-15)*(-13)2022-3-14702.4 定點除法運算定點除法運算 0.1 1 0 1商q0.1 0 1 1 0.1 0 0 1 0(r0)被除數(shù) 0.0 1 0 1 121除數(shù)右移1位,減除數(shù) 0.0 0 1 1 1 0r1得余數(shù)r1 0.0 0 1 0 1 122除數(shù)右移1位,減除數(shù) 0.0 0 0 0 1 1 0

31、r2得余數(shù)r2 0.0 0 0 1 0 1 123除數(shù)右移1位,不減除數(shù) 0.0 0 0 0 1 1 0 0r3得余數(shù)r3 0.0 0 0 0 1 0 1 124除數(shù)右移1位,減除數(shù) 0.0 0 0 0 0 0 0 1r4得余數(shù)r4w商0還是商1人可以比較后確定,計算機如何確定?w余數(shù)末位補0后,減去除數(shù)右移后的值,導致加法器尾數(shù)逐漸增多,最后要求加法器的位數(shù)必須為被除數(shù)的兩倍定點原碼一位除法實現(xiàn)方案(手工)2022-3-1471 定點原碼除法的流程圖 R0 0 ? 第 8 次循環(huán)? 3a. 商 1 3b. R0 + R2 R0, 商 0 4. R0, R1左移 1. R0, R1左移, 商

32、0 2. R0 - R2 R0 5. R0右移 Y N N Y R0,R1被除數(shù)/余數(shù),商R2除數(shù)最后一步余數(shù)是負數(shù),需要修正再加上除數(shù).2022-3-14722、不恢復余數(shù)的除法、不恢復余數(shù)的除法l加減交替法(不恢復余數(shù)法)l當i-1次求商的余數(shù)為正時,下一次求商的辦法是 Ri=2Ri-Yl若Ri0時,則I位上商0,而恢復余數(shù)作加法Ri+Y,下一次即I+1次求商作減法時Ri+1=2(Ri+Y)-Y=2Ri+Yl上述式子表明,當某一次商差為負時,本次商0,繼續(xù)求下一位商不必恢復余數(shù),而直接將商的差值左移動一位,在加Y的辦法得到。2022-3-14732、不恢復余數(shù)的除法、不恢復余數(shù)的除法l法則

33、:l余數(shù)為正,商1,求下一位商的辦法是余數(shù)左移,減除數(shù)l余數(shù)為負,商0,求下一位商的辦法是余數(shù)左移,加除數(shù)l若最后余數(shù)與被除數(shù)X異號,則需要糾余,增加如下操作:l若X、Y同號,用+Y糾余;l若X、Y異號,用-Y糾余。l例:x=0.1011 y=0.1101 求x/yx補=001011y補=001101-y補= .l計算過程如下:2022-3-1474 001011 00000 開始 110011 -y 111110 00000 為負,商0 111100 00000 左移一位 001101 + y 001001 00001 為正,商1 010010 00010 左移一位 110011 -y 00

34、0101 00011 為正,商1 001010 00110 左移一位 110011 -y 111101 00110 為負,商0 111010 01100 左移一位 001101 + y 000111 01101 為正,商1被除數(shù)商說明2022-3-14752.不恢復余數(shù)的除法不恢復余數(shù)的除法l則x/y=0.1101余數(shù)為0.0111*2-4(左移了4次)l小結:l判斷溢出/”0”l商的符號由被除數(shù)的符號和除數(shù)的符號共同決定l被除數(shù)的位數(shù)可以是除數(shù)位數(shù)的兩倍,地位開始放于商的寄存器中.l最后一步余數(shù)是負數(shù),需要修正再加上除數(shù),移位.直到為正2022-3-1476可控的加法/減法單元CAS單元P=

35、0,作加法運算P=1,作減法運算第一行:P=1減法運算;不恢復余數(shù)算法除數(shù)右代替部分積左依x/y商Q=0.q3q2q1余數(shù)R=0.00r6r5r4r32022-3-14772.3.4 并行除法器并行除法器l可控的加法/減法單元CAS單元lP=0,作加法運算lP=1,作減法運算2022-3-14782.3.4 并行除法器并行除法器上級商,作為下一級的P(控制端)輸入。2022-3-1479舉例舉例p44例例230.101001, 0.111, 求。解解:補1.001 除數(shù)右移被除數(shù)0.1 0 1 0 0 1減1.0 0 1 余數(shù)為負1.1 1 0 0 0 1 0q00加0.0 1 1 1 余數(shù)為

36、正0.0 0 1 1 0 1 0q11減1.1 1 0 0 1 余數(shù)為負1.1 1 1 1 1 10q20加0.0 0 0 1 1 1 余數(shù)為正0.0 0 0 1 1 0 0q31故得商 qq0.q1q2q30.101 余數(shù) r(0.00r3r4r5r6)0.000110 2022-3-14802.5 定點運算器的組成定點運算器的組成2.5.1 邏輯運算2.5.2 多功能算術/邏輯運算單元ALU2.5.3 內部總線2.5.4 定點運算器的基本結構2022-3-14812.5.1 邏輯運算邏輯運算l自學P442022-3-14822.5.2 多功能算術多功能算術/邏輯運算單元邏輯運算單元ALUl

37、多功能算術/邏輯運算單元ALU,本節(jié)介紹的是74LS181的基本邏輯結構是先行進位加法器,通過改變其輸入端Ai和Bi來實現(xiàn)算術運算和邏輯運算功能。怎樣實現(xiàn)呢?l基本思想:一位全加器FA的邏輯表達式:l為了實現(xiàn)多種算術邏輯運算,可將Ai和Bi輸入一個函數(shù)發(fā)生器(進位傳遞函數(shù)和進位產生函數(shù))得到輸出Xi和Yi,作為一位全加器的輸入(見下頁圖)。iniiiCBAFiniiniiiinCBCABAC12022-3-1483加法器FA、減法單元CAS和一位ALU邏輯圖一位ALU邏輯圖2022-3-1484ALU的邏輯圖與邏輯表達式的邏輯圖與邏輯表達式inniiiinniiiXCCYYXCCYXF1111

38、2022-3-1485S0 S1 Yi S2 S3 Xi 0001101 10001101 11iAiiBAiiBA0iiBA iiBA iAiiiiiiiiiiiiASSBASSBASSSSXBASSBASSASSY32323232101010)()(XiYi 與控制參數(shù)和輸入量的關系構造如下真值表2.5.2 多功能算術多功能算術/邏輯運算單元邏輯運算單元ALU2022-3-14862.5.2 多功能算術多功能算術/邏輯運算單元邏輯運算單元ALUiiiiiiiiiBSBSAYBASBASX1023iniiiniiininniiiinniiiXCYXYCYXCXCCYYXCCYXF111111

39、1)(1、可以證明:Xi+Yi=Xi Xi.Yi=Yi(自己試試看)2、進一步化簡得到下式2022-3-14872.5.2 多功能算術多功能算術/邏輯運算單元邏輯運算單元ALUlALU的某一位邏輯表達式見下:iniiiCYXFiniiinCXYC1iiiiiiiiiBSBSAYBASBASX10232022-3-1488例如:S3S2S0S10000代入:inininiiiiiiiiiiiiiACACACXYFABSBSAYBASBASX的時候,輸出結果為所以在)設0000SS0(1100031111023則可以處理16種算術邏輯運算,每種運算只針對1位二進制編碼?思考:如何設計4位ALU?1

40、6位呢?2.5.2 多功能算術多功能算術/邏輯運算單元邏輯運算單元ALU2022-3-14892.5.2 多功能算術多功能算術/邏輯運算單元邏輯運算單元ALUl4位ALUl 問題1:片內是串行進位還是并行進位?回答:由上圖結構中可以看出 Cn1Y0X0Cn Cn2Y1X1Cn1 Cn3Y2X2Cn2 Cn4Y3X3Cn3 顯然是一個串行進位,速度慢,為了實現(xiàn)快速ALU,需加以改進。2022-3-14902.5.2 多功能算術多功能算術/邏輯運算單元邏輯運算單元ALUl上述片內進位采用串行,具有延時長的缺點如何改進?l思考:Cni與X、Y有關,而每一位中X、Y的產生是不是同時的?答:由于每一位中

41、X、Y的產生是同時的,則可以由下面方法算出并行進位的Cn4 第0位向第1位的進位公式為Cn1Y0X0Cn(1)其中C是向第0位(末位)的進位。第1位向第2位的進位公式為Cn2Y1X1Cn1Y1Y0X1X0X1Cn( Cn1用(1)式代入)第2位向第3位的進位公式為Cn3Y2X2Cn2Y2Y1X1Y0X1X2X0X1X2Cn第3位的進位輸出(即整個4位運算進位輸出)公式為Cn4Y3X3Cn3Y3Y2X3Y1X2X3Y0X1X2X3X0X1X2X3Cn 2022-3-14912.5.2 多功能算術多功能算術/邏輯運算單元邏輯運算單元ALU 令GY3Y2X3Y1X2X3Y0X1X2X3 PX0X1X

42、2X3 G為進位發(fā)生輸出 P為進位傳送輸出 增加P和G的目的在于實現(xiàn)多片(組)ALU之間的先行進位,需要配合電路,稱為先行進位發(fā)生器(CLA) 器件: 741812022-3-14922.5.2 多功能算術多功能算術/邏輯運算單元邏輯運算單元ALUl具有正邏輯和負邏輯兩種內部邏輯結構圖見下頁2022-3-149374181ALU邏輯圖(邏輯圖(1)+iiiiiBASBASX23iiiiBSBSAY10AiS0S1AiiBS2AiBiS32022-3-149474181ALU邏輯圖(邏輯圖(2)XiYiCnMFi異或門1niiiCXYF2022-3-149574181ALU邏輯圖(邏輯圖(2)P

43、 GX3Y3X2Y2X1Y1X0Y0 C0GY3Y2X3Y1X2X3Y0X1X2X3PX0X1X2X32022-3-149674181ALU邏輯圖(總體)邏輯圖(總體)2022-3-14972.5.2 多功能算術多功能算術/邏輯運算單元邏輯運算單元ALUl算術邏輯運算的實現(xiàn)(74181)lM=L時,對進位信號沒有影響,做算術運算lM=H時,進位門被封鎖,做邏輯運算l說明:l74181執(zhí)行正邏輯輸入/輸出方式的一組算術運算和邏輯運算和負邏輯輸入/輸出方式的一組算術運算和邏輯運算是等效的。lA=B端可以判斷兩個數(shù)是否相等。2022-3-14982.5.2 多功能算術多功能算術/邏輯運算單元邏輯運算

44、單元ALUl設計16位ALUlCn+x=G0+P0Cn Cn+y=G1+P1Cn+xl Cn+x=G2+P2Cn+y Cn+4=G3+P3Cn+zl片內先行進位,片間串行進位2022-3-14992.4.3 先行進位先行進位ALUl兩級先行進位的ALUl4片(組)的先行進位邏輯lCn+x=G0+P0Cn lCn+y=G1+P1Cn+x=G1+G0P1+P0P1Cnl Cn+x=G2+P2Cn+yl =G2+G1P2+G0P1P2+P0P1P2Cn lCn+4=G3+P3Cn+zl =G3+G2P3+G1P2P3+G0P1P2P3+P0P1P2P3Cnl =G*+P*CnlG*為成組先行進位發(fā)生

45、輸出lP*為成組先行進位傳送輸出2022-3-14100成組先行進位部件成組先行進位部件CLA的邏輯圖的邏輯圖2022-3-141012.4.3 先行進位先行進位ALUl例:設計16位先行進位ALU(圖2.13)l內先行進位,片間先行進位.2022-3-1410232位位ALU邏輯方框圖邏輯方框圖 2個74L1828個4位ALU74L1812022-3-141034位ALUA15-A12B15-B12F15-F12C124位ALUA11-A8B11-B8F11-F8C84位ALUA7-A4B7-B4F7-F4C44位ALUA3-A0B3-B0F3-F0C0C16G*P*7 4 L 1 8 2

46、CG3 P3 Cnz G2 P2 Cny G1P1 CnxG0 P0G PG PG PG P4位ALUA15-A12B15-B12F15-F12C124位ALUA11-A8B11-B8F11-F8C84位ALUA7-A4B7-B4F7-F4C44位ALUA3-A0B3-B0F3-F0C0C16G*P*7 4 L 1 8 2 CG3 P3 Cnz G2 P2 Cny G1P1 CnxG0 P0G PG PG PG P4位ALUA15-A12B15-B12F15-F12C124位ALUA11-A8B11-B8F11-F8C84位ALUA7-A4B7-B4F7-F4C44位ALUA3-A0B3-B0

47、F3-F0C0C16G*P*7 4 L 1 8 2 CG3 P3 Cnz G2 P2 Cny G1P1 CnxG0 P0G PG PG PG PG*P*7 4 L 1 8 2 CG3 P3 Cnz G2 P2 Cny G1P1 CnxG0 P0.64位組間先行進位ALU2022-3-141042.5.3內部總線內部總線l內部總線l機器內部各部份數(shù)據(jù)傳送頻繁,可以把寄存器間的數(shù)據(jù)傳送通路加以歸并,組成總線結構。l分類l所處位置內部總線(CPU內)外部總線(系統(tǒng)總線)l邏輯結構單向傳送總線雙向傳送總線l圖(2-14)2022-3-14105三態(tài)門組成的雙向數(shù)據(jù)總線三態(tài)門組成的雙向數(shù)據(jù)總線2022-

48、3-14106由三態(tài)門組成的數(shù)據(jù)總線由三態(tài)門組成的數(shù)據(jù)總線2022-3-141072.5.4定點運算器的基本結構定點運算器的基本結構1、單總線結構的運算器2022-3-141082.5.4定點運算器的基本結構定點運算器的基本結構2、雙總線結構的運算器雙總線結構的運算器2022-3-141092.5.4定點運算器的基本結構定點運算器的基本結構3、三總線結構的運算器2022-3-141102.6 浮點運算方法和浮點運算器浮點運算方法和浮點運算器2.6.1 浮點加法、減法運算浮點加法、減法運算2.6.2 浮點乘法、除法運算浮點乘法、除法運算2.6.3 浮點運算流水線浮點運算流水線2.6.4 浮點運算

49、器實例浮點運算器實例2022-3-141112.6.1 浮點加法、減法運算1、浮點加減運算設有兩個浮點數(shù)和,它們分別為2EM2EM其中E和E分別為數(shù)和的階碼,M和M為數(shù)和的尾數(shù)。兩浮點數(shù)進行加法和減法的運算規(guī)則是(M2EEM)2E,設E0,表示EE;l若EE。l當EE 時,要通過尾數(shù)的移動以改變E或E,使之相等。2022-3-14115l原則:小階向大階l設E0,表示EE,則移動y的尾數(shù),M右移E位,問題:為什么要小階向大階看齊?l階差=Ex-Ey=00 010- 00 100 =11 110l即階差為-2,Mx右移兩位,Ex加2lx=00100 , 0.00110110(11)2.6.1 浮

50、點加法、減法運算2022-3-141162.6.1 浮點加法、減法運算3、尾數(shù)相加l00.00110110(11)+11.01010100=11.10001010(11)4、結果規(guī)格化l(1)在浮點加減運算時,尾數(shù)求和的結果也可以得到01.或10.,即兩符號位不等,此時將運算結果右移以實現(xiàn)規(guī)格化表示,稱為向右規(guī)格化。l規(guī)則:尾數(shù)右移1位,階碼加1l(2)結果是00.0.01.或11.1.10.時,則向左規(guī)格化l規(guī)則:尾數(shù)左移1位,階碼減1,直到規(guī)格化l右規(guī),階碼加1,左規(guī),階碼減1l剛才例子左規(guī)為11.00010101(10),階碼減1為00011l練習:01.1101 10.0001 11.

51、10012022-3-141172.6.1 浮點加法、減法運算l舍入處理(對階和向右規(guī)格化時)l就近舍入(0舍1入):類似”四舍五入”,丟棄的最高位為1,進1l朝0舍入:截尾l朝舍入:正數(shù)多余位不全為”0”,進1;負數(shù),截尾l朝 舍入:負數(shù)多余位不全為”0”,進1;正數(shù),截尾l例子l溢出判斷和處理l階碼上溢,一般將其認為是和 。l階碼下溢,則數(shù)值為0l尾數(shù)上溢,兩個同符號位的數(shù)相加。處理方法是尾數(shù)右移,階碼 加1。l尾數(shù)下溢。尾數(shù)右移時,最低位從最右端流出。進行要進行舍入處理 。2022-3-14118l設1補11.01100000,2補11.01100001,3補11.01101000,4補

52、11.01111001, 求執(zhí)行只保留小數(shù)點后4位有效數(shù)字的舍入操作值。課堂作業(yè)課堂作業(yè)2022-3-141192.6.1 浮點加法、減法運算l課堂練習:x=0.1101*201 y=-0.1010*211l尾數(shù)和階符都采用補碼表示,都采用雙符號位表示法。l求x+y2022-3-141202.6.1 浮點加法、減法運算x浮=0001,00.1101y浮=0011,11.0110階差=1110 即為-2Mx應當右移2位,x浮=0011,00.0011(01)尾數(shù)和為11.1001(01)左規(guī)11.0010(10),階碼減1為0010舍入(就近舍入)11.0011 丟棄10 x+y=-0.1101

53、*2102022-3-141212.6.2 浮點乘法和除法運算浮點乘法和除法運算l設有兩個浮點數(shù)和:2EM2EMl2(EE)(MM)l2(EE)(MM)l乘除運算分為四步l0操作數(shù)檢查l階碼加減操作l尾數(shù)乘除操作l結果規(guī)格化和舍入處理2022-3-141222.6.2 浮點乘法和除法運算浮點乘法和除法運算l浮點數(shù)的階碼運算(移碼的運算規(guī)則)lX移+Y移=2n+X+Y移)2(mod21nnxyyxyxyx補移補移移移移原因是什么呢?)2(mod1nxyyxyx補移補移移2022-3-141232.6.2 浮點乘法和除法運算浮點乘法和除法運算l移碼采用雙符號位,為了對溢出進行判斷l(xiāng)01 為正 00

54、 為負l10 上溢 11 下溢011,110,求移 和 移,并判斷是否溢出。 移01 011, 補00 110, 補11 010移移補10 001, 結果上溢。 移移補00 101, 結果正確,為3。2022-3-141242.6.2 浮點乘法和除法運算浮點乘法和除法運算l尾數(shù)處理l截斷l(xiāng)舍入l尾數(shù)用原碼表示時只要尾數(shù)最低為1或者移出位中有1數(shù)值位,使最低位置10舍1入l尾數(shù)用補碼表示時(p57例30)丟失的位全為0,不必舍入。丟失的最高位為0,以后各位不全為0時;或者最高為1,以后各位全為0時,不必舍入。丟失的最高位為1,以后各位不全為0時,則在尾數(shù)的最低位入1的修正操作。2022-3-141252.6.2 浮點乘法和除法運算浮點乘法和除法運算 設有浮點數(shù)250.0110011,23(0.1110010),階碼用4位移碼表示,尾數(shù)(含符號位)用8位補碼表示。求浮。要求用補碼完成尾數(shù)乘法運算,運算結果尾數(shù)保留高8位(含符號位),并用尾數(shù)低位字長值處理舍入操作。2022-3-14126解解:移碼采用雙符號位,尾數(shù)補碼采用單符號位,則有 M補0.0110011, M補1.0001110,E移01 011, E補00 011, E移00

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論