计算机组成原理xu.ppt_第1页
计算机组成原理xu.ppt_第2页
计算机组成原理xu.ppt_第3页
计算机组成原理xu.ppt_第4页
计算机组成原理xu.ppt_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

11/24/2019,1,3.4二进制乘法运算3.4.1定点数一位乘法,11/24/2019,2,1.定点原码一位乘法XY原=(X0Y0)|(X1X2Xn)(Y1Y2Yn)用我们传统人工方法(二进制)X=0.1101,Y=0.1011XY=0.100011110.1101x0.101111011101000011010.10001111,11/24/2019,3,机器实现在传统人工的方法的基础上做些修改.(1)形成部分积.(2)部分积右移.(3)乘数右移(空出高位存乘积的低位).用N位加法器实现2N位积的运算.,11/24/2019,4,运算过程举例:X=0.1101,Y=0.1011求XY用双符号位,乘积高位,乘积低位,XY=0.10001111,积的符号:00=0,11/24/2019,5,实现加法运算的逻辑结构,11/24/2019,6,图3.5实现原码一位乘法的逻辑电路框图,11/24/2019,7,图3.6乘法运算的控制流程,11/24/2019,8,2.定点补码一位乘法,补码运算的几个基本问题,(1)补码与真值的转换关系,X=X0+Xi2-i,n,i=1,p75,(2)补码右移:二进制条件下,定点小数补码整体右移一位,符号不变,相当于除2,若X补=X0.X1X2Xn,X=X0+Xi2-i,n,i=1,X/2=X0/2+Xi2i2-1,n,X/2=X0/2+Xi2(i+1)+X0/2-X0/2,i=1,i=1,n,X/2=X0+Xi2(i+1),n,i=0,若X补=X0.X1X2Xn,有X/2补=X0.X0X1X2Xn,11/24/2019,9,(3)补码一位乘法的一般讨论p75X负Y正X补Y补=2n+1Y+XY=2+XYmod2XY补=X补Y补XY补=X补(0.Y1Y2Yn)X正负Y负XY补=X补(0.Y1Y2Yn)X补X,Y正负都有XY补=X补(0.Y1Y2Yn)X补Y0p76例3.333.34p76-77,11/24/2019,10,设:Y补=Y0Y1Y2Yn,Y=Y0+Yi2-i,n,i=1,XY补=X补Y0Yi2-i,n,i=1,=X补Y0Y121Y222Yn2n,=X补Y0(Y1Y121)(Y221Y222)(Yn2(n1)Yn2n),=X补(Y1Y0)(Y2Y1)21(YnYn-1)2(n1)(0Yn)2n,=X补(Yi1Yi)2i,n,i=0,定点补码一位乘法(1)布斯Booth算法原理,11/24/2019,11,(2).分步运算逻辑实现的递推,P1补=21(Yn+1Yn)X补,P2补=21(P1补(YnYn-1)X补),Pi补=21(Pi-1补(Yn-i+2Yn-i+1)X补),Pn补=21(Pn-1补(Y2Y1)X补),X*Y补=Pn+1补=(Pn补(Y1Y0)X补),Yn+1=0,11/24/2019,12,(3).补码一位乘法的运算规则,c、Yn与Yn+1构成了各步运算的乘数判断位。,规则:,a、被乘数与部分积取双符号位,并参与运算。,b、乘数取单符号位,但在最末位要加一附加位(Yn+1),其初始值为“0”,YnYn+1操作00Pi右移一位01PiX补后,再右移一位10PiX补后,再右移一位11Pi右移一位,11/24/2019,13,e、按补码右移规则,部分积为正时,补“0”,部分积为负时补“1”。,d、按上述算法进行N+1步(N为乘数的数值位数)但第N+1步不再右移。,(4)补码一位乘法举例,已知:X补=11.0011,Y补=0.1011;求XY补,解:由题有X补=0.1101,按补码一位乘法,设置部分积,乘数及操作说明完成运算,11/24/2019,14,部分积乘数YnYn+1(附加位)操作说明,000000010110初始情形,设置附加位Yn+1,+001101判别位10,+-X补,000110101011右移一位,+000000判别为11,+0,000110,+110011判别位01,+X补,1101110001最后一次不移位,XY补1101110001XY=-0.10001111,001101,000011010101右移一位,110110,111011001010右移一位,+001101判别位10,+-X补,001000,000100000101右移一位,+110011判别位01,+X补,11/24/2019,15,3.4.2定点两位乘法一位乘法是以乘数单一数位处理为基础。两位乘法:一次求出对应两位乘数的部分积。1,原码两位乘乘数(Y)被乘数(X)都是原码表示两位乘数由四种可能组合:00-相当于X0。部分积Pi,右移2位无其它运算01-相当于X1。部分积Pi+X,右移2位;10-相当于X2。部分积Pi+2X,右移2位;11-相当于X3。部分积Pi+3X,右移2位;,11/24/2019,16,部分积Pi+2X,X左移一位得2X部分积Pi+3X,(4X-X)代替3X先减X并引入寄存C纪录是否拖欠+4X.部分积Pi右移2位后上步+4X变为+X规则总结表3.4p88幻灯片172.补码两位乘(不细讲了)p89将布斯算法的求部分积过程两步合并考虑。判断乘数三位的01组合,11/24/2019,17,表3.4原码两位乘法规则,11/24/2019,18,3.4.3阵列乘法器p82每个小单元处理一位。四位是同时处理的输入都在右(y)上(x),输出都在左下(p)。每梯形列处理一位部分积。乘数从上倒下每行送一位上低位下高位被乘数每位沿右上到左下的梯形列传送每行正下输出pi最下一行输出是结果每列左输出进位最左输出为下一行的p新位乘数的一零判断用小单元内的与门实现。左下进位输出结果最高位,11/24/2019,19,11/24/2019,20,3.5二进制除法运算3.5.1定点数除法运算1.原码一位除法,(被除数除数和商都是原码),11/24/2019,21,恢复余数法符号位和数值位分别处理。商符号位是相除的两数符号的异或;数值是两数绝对值相除的结果。被除数加除数数值部分的负补码。判断余数的正负,正,商1。负,商零并加除数的数值部分-恢复余数,余数与商左移位重复上3步到余数为零或满足精度为止。例:p92X=0.1011Y=0.1101求X/Y,11/24/2019,22,解:X=00.1011,Y=00.1101,-Y补=11.0011(数值部分负补码),被除数/余数商操作说明,00101100000开始情形,+110011Y,11111000000不够减,商值取“0”,+001101Y,恢复正余数,00101100000余数与商左移一位,01011000000,+110011Y,00100100001够减,商值取“1”,01001000010余数与商数左移一位,+110011Y,00010100011够减,商值取“1”,00101000110余数与商左移一位,+110011Y,11110100110不够减,商值取“0”,+001101Y,恢复正余数,001010余数与商数左移一位,01010001100,+110011Y,00011101101够减,商值取“1”,11/24/2019,23,加减交替法恢复余数法的一种修正.原理分析:第i次求商余数的计算和上一次余数有Ri=2Ri-1Y恢复余数法中Ri0,商的第i位上0,后加Y并余数左移一位再减Y即:Ri+1=2(Ri+Y)Y=2Ri+2YY=2Ri+Y第i-1次求商所得余数Ri0时不再恢复余数而继续下一位求商.但是用加Y而不是减Y的操作.,11/24/2019,24,加减交替法规则a,商的符号为两数符号异或.b,被除数减除数.c,余数为正商1为负商0,余数与商左移一位d,求下一位商,上次商为0加Y反复到C,为1反复到be,余数为0或精度满足结束.加减交替法举例,X补=00.1011,Y补=00.1101,-Y补=11.0011,11/24/2019,25,11/24/2019,26,图3.5实现原码一位乘法的逻辑电路框图,11/24/2019,27,11/24/2019,28,对于定点原码一位除法的几点说明:p94被除数绝对值要比除数小。商符号两数符号位半加和。被除数位数可以比除数多一倍,初始时低位放在商寄存器,后随计算时与余数一同左移。,11/24/2019,29,2.定点补码一位除法,总之:QiSriSy(Syi-余数数符,Sy-除数数符)且Q是反码,补码不恢复余数法的运算操作过程:,(1).运算应使余数的绝对值越来越少。,(2).操作中要用余数Ri与除数Y进行符号比较,这是因为除数Y在运算中保持不变,进行符号比较方便。,(3).运算操作规则:p85,p87-表3.6,X补Y补(数符)商符操作R补Y补(数符)Qi商值下一步操作,同号0X补Y补同号(够减)1Ri+1补=2Ri补Y补,同号0X补Y补异号(不够减)0Ri+1补=2Ri补Y补,异号1X补Y补同号(不够减)1Ri+1补=2Ri补Y补,异号1X补Y补异号(够减)0Ri+1补=2Ri补Y补,11/24/2019,30,3.补码不恢复余数法举例,设:X补=10111,Y补=01101,-Y补=10011,用不恢复余数法及末位恒置一法求:X补Y补,补充说明:(1)商的符号,是在第一次求商试算时求出的,若定点除不溢出,得到的就是正确的符号位的值。(2)商的修正问题。在对精度要求不高时,将商的最低一位恒置1。最大误差为|2-n|。,11/24/2019,31,被除数商操作说明,11011100000开始情形,+001101两数异号+Y补,00010000001余数与除数同号,商为1,00100000010余数左移一位,+110011上次商1,+-Y补,11101100010余数与除数异号,商为0,11011000100余数左移一位,+001101上次商0,+Y补,00001100101余数与除数同号,商为1,00011001010左移一位,+110011上次商1,+-Y补,11100101010余数与除数异号,商为0,11001010101左移,商的最低位恒置1,不恢复余数法,X补Y补1.0101,11/24/2019,32,3.5.2快速除法举例1,跳0跳1法p872,除法运算通过乘法操作实现,XXF0F1Fr,YYF0F1Fr,=,Fi(0ir)为迭代系数,如若使分母YF0F1Fr趋近于1了分子就是商了,若X和Y为规格化正的二进制小数代码时,可写成:Y=1-(0-0.11101010,5.判溢出阶码符号位为00,不溢出2011(-0.11101010),11/24/2019,40,浮点数加减法运算流程图,11/24/2019,41,3.6.2浮点数的乘除法运算原理,两浮点数相乘除,阶码相加减,尾数相乘除两浮点数相除,阶码相减(被除减除),尾数相除辅以规格化,舍入,判溢处理1,浮点数的阶码运算阶码四种运算,+1,-1,和,差阶码表示-移码,补码,11/24/2019,42,移码运算规则移码的定义为:X移=2n+X-2nX2n(Mod2n+1)X移+Y移=?X+Y移,11/24/2019,43,X移=2n+X-2nX2n(Mod2n+1)按此定义,则有X移+Y移=2n+X+2n+Y=2n+(2n+X+Y)=2n+X+Y移直接用移码实现求阶码之和时,结果的最高位(符号位)多加了个1,要得到移码形式的结果,必须对结果的符号再执行一次求反操作。借助补码Y补=2n+1+Y,11/24/2019,44,那么有:X移+Y补=2n+X+2n+1+Y=2n+1+(2n+(X+Y))(mod2n+1)=X+Y移同理有,X移+-Y补=X-Y移实际中阶码加减运算时,对加数或减数的符号送的是移码符号位的反码。,11/24/2019,45,阶码运算溢出判断(1)阶码运算溢出判断用双符号位(2)移码最高符号位恒用0(3)当计算结果最高符号位为1时则溢出发生。(双符号位“10”上溢出,“11”下溢出;“01”结果正,“00”结果负)举例说明:设有四位阶码(符号1位数值3位)X=+011,Y=+110;X移=01011,Y补=00110,-Y补=11010Case1:X+Y移=X移+Y补=10001;上溢出Case2:X-Y移=X移+-Y补=00101;结果正确-3,11/24/2019,46,X=-011,Y=-110;X移=00101,Y补=11010,-Y补=00110Case3:X+Y移=X移+Y补=11111;下溢出Case4:X-Y移=X移+-Y补=01011结果正确+32,浮点数运算舍入处理浮点数运算结果尾数超出给定位数,处理原则尽可能减小误差及累计误差。武断截取;丢1保1;恒置1;0舍1入例:p93,3.46(0舍1入),11/24/2019,47,3,浮点乘法运算步骤举例说明运算步骤浮点数:X=2-5*0.1110011,Y=23*(-0.1110010),阶码位,尾数8位,X浮001101110011,Y浮101110001110(移阶),(1)阶码运算乘积的阶码是两数阶码的和(双符号),Ex移Ey补000110001100110(-2),(2)尾数相乘(定点补码乘法双符号位),尾数补码:,X补001110011,-X补110001101,XY补1100110011001010,(3)规格化(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论