《计算机组成原理数据的表示和运算课件.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理数据的表示和运算课件.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机组成原理数据计算机组成原理数据的表示和运算的表示和运算1第1页,此课件共36页哦第二部分第二部分 数据的表示和运算数据的表示和运算 n2.1数制与编码数制与编码n2.2定点数表示和运算定点数表示和运算n2.3浮点数表示和运算浮点数表示和运算n2.4算术逻辑单元算术逻辑单元ALU2第2页,此课件共36页哦2.2定点数表示和运算定点数表示和运算2.2.1定点数的表示定点数的表示1、无符号数的表示;、无符号数的表示;2、有符号数的表示。、有符号数的表示。2.2.2定点数的运算定点数的运算1、定点数的位移运算;、定点数的位移运算;2、原码定点数的加、原码定点数的加/减运算;减运算;3、补码定点数
2、的加、补码定点数的加/减运算;减运算;4、定点数的乘法运算、定点数的乘法运算3第3页,此课件共36页哦回顾回顾n1 1、移位运算、移位运算n对有符号数的移位运算成为对有符号数的移位运算成为算术移位算术移位。n对无符号数的移位运算成为对无符号数的移位运算成为逻辑移位。逻辑移位。n算术移位的特点:算术移位的特点:n对于正数,三种机器数算术移位后符号位均不变,左移最高位丢对于正数,三种机器数算术移位后符号位均不变,左移最高位丢1 1,结果错误;,结果错误;右移最低位丢右移最低位丢1 1,影响精度。,影响精度。n对于负数,三种机器数算术移位后符号位不变。对于负数,三种机器数算术移位后符号位不变。n 原
3、码左移,高位丢原码左移,高位丢1 1,结果出错;原码右移低位丢,结果出错;原码右移低位丢1 1,影响精度。,影响精度。n 补码左移,高位丢补码左移,高位丢0 0,结果出错;补码右移低位丢,结果出错;补码右移低位丢1 1,影响精度。,影响精度。n 反码左移,高位丢反码左移,高位丢0 0,结果出错;反码右移低位丢,结果出错;反码右移低位丢0 0,影响精度。,影响精度。4第4页,此课件共36页哦回顾回顾n2、补码定点数的加、补码定点数的加/减运算减运算n补码加法补码加法n补码加法的特点:补码加法的特点:符号位作为数的一部分参加运算,符号位的进位丢掉。符号位作为数的一部分参加运算,符号位的进位丢掉。运
4、算结果为补码形式运算结果为补码形式n整数整数A补补+B补补=A+B补补(mod2n+1)n小数小数A补补+B补补=A+B补补(mod2)n补码减法补码减法n因为因为 AB=A+(B),所以有补码减法:,所以有补码减法:n整数整数AB补补=A+(B)补补=A补补+B补补(mod2n+1)n小数小数AB补补=A+(B)补补=A补补+B补补(mod2)从从Y补补求求-Y补补的法则是:的法则是:对对Y补补包括符号位包括符号位“求反且最末位加求反且最末位加1”5第5页,此课件共36页哦回顾回顾n3、溢出的检测、溢出的检测n溢出:溢出:运算结果超出机器的表数范围运算结果超出机器的表数范围n定点加减法溢出条
5、件:定点加减法溢出条件:同号数相加或异号数相减。同号数相加或异号数相减。运算结果超载。运算结果超载。n1)溢出的检测)溢出的检测可能产生溢出的情况可能产生溢出的情况两正数加,变负数,上溢(大于机器所能表示的最大数)两正数加,变负数,上溢(大于机器所能表示的最大数)两负数加,变正数,下溢(小于机器所能表示的最小数)两负数加,变正数,下溢(小于机器所能表示的最小数)n2)溢出的检测方法)溢出的检测方法n双符号位法双符号位法(参与加减运算的数采用变形补码表示)(参与加减运算的数采用变形补码表示)单符号位法单符号位法6第6页,此课件共36页哦回顾回顾4 4、反码加减法运算、反码加减法运算(1 1)反码
6、加法运算)反码加法运算 反码加法运算遵循反码加法运算遵循 XX反反+Y+Y反反=X+Y=X+Y反反 规则。符号位参加运算。符号位相加后,规则。符号位参加运算。符号位相加后,如果有进位,则把该进位的数字加到数的最低位,即循环进位如果有进位,则把该进位的数字加到数的最低位,即循环进位。(2 2)反码减法)反码减法 两个反码表示的数相减,类似于补码减法,将减数变符号,并根据变号后的两个反码表示的数相减,类似于补码减法,将减数变符号,并根据变号后的减数取反,按反码加法进行。减数取反,按反码加法进行。7第7页,此课件共36页哦2.2.2定点数的运算定点数的运算n7、定点数的乘法运算、定点数的乘法运算分析
7、笔算乘法分析笔算乘法 A=0.1101B=0.1011AB=0.100011110.11010.101111011101000011010.10001111乘积的符号心算求得乘积的符号心算求得符号位单独处理符号位单独处理乘数的某一位决定是否加被乘数乘数的某一位决定是否加被乘数 4 4个位积一起相加个位积一起相加乘积的位数扩大一倍乘积的位数扩大一倍n n n?8第8页,此课件共36页哦2.2.2定点数的运算定点数的运算n笔算乘法改进笔算乘法改进AB=A0.1011=0.1A+0.00A+0.001A+0.0001A=0.1A+0.00A+0.001(A+0.1A)=0.1A+0.010A+0.1
8、(A+0.1A)=0.1A+0.10A+0.1(A+0.1A)=2-1A+2-10A+2-1(A+2-1(A+0)第一步第一步被乘数被乘数A+0第二步第二步1,得新的部分积,得新的部分积第八步第八步1,得结果,得结果第三步第三步部分积部分积+被乘数被乘数右移一位9第9页,此课件共36页哦2.2.2定点数的运算定点数的运算n改进后的笔算乘法过程改进后的笔算乘法过程10第10页,此课件共36页哦2.2.2定点数的运算定点数的运算1)定点原码乘法)定点原码乘法(1)原码一位乘运算规则(以小数为例)原码一位乘运算规则(以小数为例)设设x原原=x0.x1x2xny原原=y0.y1y2yn=(x0y0).
9、x*y*xy原原=(x0y0).(0.x1x2xn)(0.y1y2yn)式中式中x*=0.x1x2xn为为x的绝对值的绝对值y*=0.y1y2yn为为y的绝对值的绝对值乘积的符号位单独处理乘积的符号位单独处理x0y0数值部分为绝对值相乘数值部分为绝对值相乘x*y*11第11页,此课件共36页哦2.2.2定点数的运算定点数的运算n原码一位乘递推公式原码一位乘递推公式x*y*=x*(0.y1y2yn)=x*(y12-1+y22-2+yn2-n)=2-1(y1x*+2-1(y2x*+2-1(ynx*+0)z1znz0=0z1=2-1(ynx*+z0)z2=2-1(yn-1x*+z1)zn=2-1(y
10、1x*+zn-1)z012第12页,此课件共36页哦2.2.2定点数的运算定点数的运算右图是一个右图是一个32位乘法器的位乘法器的结构框图,其中结构框图,其中32位被乘数放位被乘数放在在R2中,运算开始时中,运算开始时32位乘数位乘数放在放在R1中,运算结束时中,运算结束时64位位乘积的高位放在乘积的高位放在R0中,低位放中,低位放在在R1中,中,R0和和R1串联移位。串联移位。在该乘法过程中,每次操作是根据乘数的一位进行操作,对于在该乘法过程中,每次操作是根据乘数的一位进行操作,对于32位数的位数的乘法,需要循环乘法,需要循环32次完成一个乘法操作,因此称为一位乘法。次完成一个乘法操作,因此
11、称为一位乘法。13第13页,此课件共36页哦2.2.2定点数的运算定点数的运算 完成这个定点原码一位乘法的运算规则可以用如下完成这个定点原码一位乘法的运算规则可以用如下图所示的逻辑流程图表示图所示的逻辑流程图表示。14第14页,此课件共36页哦2.2.2定点数的运算定点数的运算已知已知x=0.1110y=0.1101求求x y原原逻辑右移逻辑右移15第15页,此课件共36页哦2.2.2定点数的运算定点数的运算n乘积的符号位乘积的符号位x0y0=10=1n数值部分按绝对值相乘数值部分按绝对值相乘nx*y*=0.10110110n则则xy原原=1.10110110特点特点n绝对值运算绝对值运算n用
12、移位的次数判断乘法是否结束用移位的次数判断乘法是否结束n逻辑移位逻辑移位16第16页,此课件共36页哦2.2.2定点数的运算定点数的运算n原码一位乘的硬件配置原码一位乘的硬件配置0An加加法法器器控控制制门门0Xn移位和加控制移位和加控制计数器计数器CSGM0Qn右移右移A、X、Q均均n+1位位移位和加受末位乘数控制移位和加受末位乘数控制17第17页,此课件共36页哦2.2.2定点数的运算定点数的运算n(2)原码两位乘原码两位乘n原码两位乘与原码一位乘一样,符号位的运算和数值部分原码两位乘与原码一位乘一样,符号位的运算和数值部分是分开进行的,但原码两位乘是用两位乘数的状态来决定是分开进行的,但
13、原码两位乘是用两位乘数的状态来决定新的部分积如何形成,因此可提高运算速度。新的部分积如何形成,因此可提高运算速度。一位乘一位乘符号位符号位和和数值位数值位部分分开运算部分分开运算两位乘两位乘每次用乘数的每次用乘数的2 2位判断原部分积是否位判断原部分积是否加加和和 如如何加何加 被乘数被乘数18第18页,此课件共36页哦2.2.2定点数的运算定点数的运算n两位乘数共有两位乘数共有4种状态,对应这种状态,对应这4种状态可得下表。种状态可得下表。11100100新的部分积新的部分积乘数乘数yn-1yn加加“0”2加加1倍的被乘数倍的被乘数2加加2倍的被乘数倍的被乘数2加加3倍的被乘数倍的被乘数21
14、9第19页,此课件共36页哦2.2.2定点数的运算定点数的运算n原码两位乘运算规则原码两位乘运算规则111110101100011010001000操操作作内内容容标志位标志位Cj乘数判断位乘数判断位yn-1ynz2,y*2,Cj 保持保持“0”z2,y*2,Cj保持保持“1”zx*2,y*2,Cj保持保持“1”z+2x*2,y*2,Cj保持保持“0”z+x*2,y*2,Cj 保持保持“0”zx*2,y*2,置置“1”Cjz+2x*2,y*2,置置“0”Cjz+x*2,y*2,置置“0”Cj共有操作共有操作+x*+2x*x*2实际操作实际操作+x*补补+2x*补补+x*补补2补码移补码移20第
15、20页,此课件共36页哦2.2.2定点数的运算定点数的运算例:已知例:已知x=0.111111y=0.111001求求xy原原补码右移21第21页,此课件共36页哦2.2.2定点数的运算定点数的运算数值部分的运算数值部分的运算乘积的符号位乘积的符号位x0y0=01=1x*y*=0.111000000111则则xy原原=1.111000000111特点特点绝对值的补码运算绝对值的补码运算算术移位算术移位用移位的次数判断乘法是否结束用移位的次数判断乘法是否结束22第22页,此课件共36页哦2.2.2定点数的运算定点数的运算n原码两位乘和原码一位乘比较原码两位乘和原码一位乘比较符号位符号位操作数操作
16、数移位移位移位次数移位次数最多加法次数最多加法次数x0y0 x0y0绝对值绝对值绝对值的补码绝对值的补码逻辑右移逻辑右移算术右移算术右移nnn2(n为偶数)为偶数)n2+1(n为偶数)为偶数)原码一位乘原码一位乘原码两位乘原码两位乘n为奇数时,原码两位乘移为奇数时,原码两位乘移n/2+1次次最多加最多加n/2+1次次23第23页,此课件共36页哦2.2.2定点数的运算定点数的运算n2)补码乘法补码乘法(1)补码与真值的关系)补码与真值的关系n设设x补补=x0.x1x2xnn当当X0时,时,x0=0,x补补=0.x1x2xn=xi2-i=xn当当x0 x(0.y1y2yn)补补=x补补(0.y1
17、y2yn)所以所以x.y补补=x补补(0.y1y2yn)+x补补28第28页,此课件共36页哦2.2.2定点数的运算定点数的运算n 乘数乘数y补补,去掉符号位,操作同,去掉符号位,操作同最后最后加加x补补,校正,校正运算规律:运算规律:29第29页,此课件共36页哦2.2.2定点数的运算定点数的运算n被乘数、乘数符号任意被乘数、乘数符号任意n设设x补补=x0.x1x2xny补补=y0.y1y2ynn综合综合,得到补码乘法统一算式,得到补码乘法统一算式nxy补补=x补补(0.y1yn)+x补补y0n当当y0时,时,y0=0 x.y补补=x补补.yn当当y0时,时,y0=1x.y补补=x补补(0.
18、y1y2yn)+x补补30第30页,此课件共36页哦补码比较法(补码比较法(Booth算法)算法)设设x补补=x0.x1x2xny补补=y0.y1y2ynxy补补=x补补(0.y1yn)x补补y0=x补补(y12-1+y22-2+yn2-n)x补补y0=x补补(y0+y12-1+y22-2+yn2-n)=x补补y0+(y1y12-1)+(y22-1y22-2)+(yn2-(n-1)yn2-n)=x补补(y1y0)+(y2y1)2-1+(ynyn-1)2-(n-1)+(0yn)2-n)y12-1+yn2-nx补补=+x补补2-1=202-12-2=2-12-2=x补补(y1y0)+(y2y1)2
19、-1+(yn+1yn)2-n附加位附加位yn+131第31页,此课件共36页哦Booth算法递推公式算法递推公式z0补补=0z1补补=2-1(yn+1yn)x补补+z0补补yn+1=0zn补补=2-1(y2y1)x补补+zn-1补补xy补补=zn补补+(y1y0)x补补最后一步不移位最后一步不移位如何实现如何实现yi+1yi?000110111+x补补1+x补补11yiyi+1操作操作yi+1yi 01-1032第32页,此课件共36页哦例例已知已知x=+0.0011y=0.1011求求xy补补解:解:00.000011.110111.110100.001111.110100.001111.1
20、1011.0101000.0001111.11011100.000111111.11011111x补补=0.0011y补补=1.0101x补补=1.1101+x补补11.111011010 11+x补补00.00001110101+x补补11.1110111101100.0000 1111101+x补补+x补补xy补补=1.11011111最后一步不移位最后一步不移位33第33页,此课件共36页哦2.2.2定点数的运算定点数的运算Booth 算法的硬件配置算法的硬件配置A、X、Q均均n+2位位移位和加受末两位乘数控制移位和加受末两位乘数控制0An+1n+2位加法器位加法器控控制制门门0Xn+1
21、0Qnn+1移位和加移位和加控制逻辑控制逻辑计数器计数器CGM00,110110右移右移34第34页,此课件共36页哦2.2.2定点数的运算定点数的运算n补码两位乘补码两位乘 补码两位乘运算规则是根据补码一位乘的规则,把比较补码两位乘运算规则是根据补码一位乘的规则,把比较y yi iy yi+1i+1的状的状态应执行的操作和比较态应执行的操作和比较y yi-1i-1y yi i 的状态应执行的操作合并成一步,便可得出补码两的状态应执行的操作合并成一步,便可得出补码两位乘的运算方法。位乘的运算方法。判断位yi-1y iyi+1操作内容000zi+1补=2-2zi补001zi+1补=2-2zi补+
22、x补010zi+1补=2-2zi补+x补011zi+1补=2-2zi补+2x补100zi+1补=2-2zi补+2-x补101zi+1补=2-2zi补+-x补110zi+1补=2-2zi补+-x补111zi+1补=2-2zi补35第35页,此课件共36页哦2.2.2定点数的运算定点数的运算n操作中出现加操作中出现加2x补和加补和加2-x补,故除右移两位的操作外,还有被乘数左移一补,故除右移两位的操作外,还有被乘数左移一位的操作;而加位的操作;而加2x补和加补和加2-x补,都可能因溢出而侵占双符号位,故部分积和补,都可能因溢出而侵占双符号位,故部分积和被乘数采用三位符号位。被乘数采用三位符号位。n
23、补码两位乘的部分积多取一位符号位(共补码两位乘的部分积多取一位符号位(共3位),乘数也多取一位符号位),乘数也多取一位符号位(共位(共2位),这是由于乘数每次右移位),这是由于乘数每次右移2位,且用位,且用3位判断,故采用双符号位判断,故采用双符号位更便于硬件实现。可见,当乘数数值位为偶数时,乘数取位更便于硬件实现。可见,当乘数数值位为偶数时,乘数取2位符号位,位符号位,共需作共需作n/2次移位,最多作次移位,最多作n/2+1次加法,最后一步不移位;当次加法,最后一步不移位;当n为奇数时,可补为奇数时,可补0变为偶数位,以简化逻辑操作。也可对乘数取变为偶数位,以简化逻辑操作。也可对乘数取1位符号位,此时共作位符号位,此时共作n/2+1次加法和次加法和n/2+1次移位(最后一步移一位)。次移位(最后一步移一位)。对于整数补码乘法,其过程与小数乘法完全相同。为了区别于小数乘法,对于整数补码乘法,其过程与小数乘法完全相同。为了区别于小数乘法,在书写上可将符号位和数值位中间的在书写上可将符号位和数值位中间的“.”改为改为“,”即可。即可。36第36页,此课件共36页哦
限制150内