计算机组成原理乘法运算说明过程,计算机组成原理第二章 第8讲 定点乘法运算...

a7f4a3f590493a1e451dd952a488fd7c.gif 计算机组成原理第二章 第8讲 定点乘法运算

(34页)

计算机组成原理乘法运算说明过程,计算机组成原理第二章 第8讲 定点乘法运算..._第1张图片

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

9.90 积分

定点乘法运算,,2.3 定点乘法运算,2.3.1 定点原码乘法2.3.2 定点补码乘法,2.3.1 定点原码乘法,原码乘法在定点计算机中,两个原码数相乘的运算规则:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。,设n位被乘数和乘数用定点整数表示(定点小数也同样适用):   被乘数   [x]原=xf xn-1…x1x0   乘数    [y]原=yf yn-1…y1y0则乘积 [z]原=(xf?yf)+(xn-1…x1x0)(yn-1…y1y0) 式中,xf为被乘数符号,yf为乘数符号。关键问题:怎样解决两个无符号整数的乘法运算,2.3.1 定点原码乘法,1、定点原码乘法原理,尾数乘法举例如下:设x=1101,y=1011        1 1 0 1 (x)  ×  1 0 1 1 (y)         1 1 0 1     1 1 0 1 0 0 0 0  +   1 1 0 1              1 0 0 0 1 1 1 1 (z),1、定点原码乘法原理,n位乘n位积可能为2n位.乘积的最后是所有位积之和,有n个数相加,而加法器只有两个输入端所以需要改造方法一:硬件实现方法(串行的“移位和加法”),硬件结构简单,速度太慢(时间延迟太长,不采用).方法二:不带符号位的阵列乘法器,1、定点原码乘法原理,A=a4a3a2a1a0 阵列分析:B=b4b3b2b1b0 a4b0 a3b0 a2b0 a1b0 a0b0 a4b1 a3b1 a2b1 a1b1 a0b1 a4b2 a3b2 a2b2 a1b2 a0b2 a4b3 a3b3 a2b3 a1b3 a0b3a4b4 a3b4 a2b4 a1b4 a0b4,,用公式描述乘法过程:设有两个无符号二进制整数:A=am-1…a1a0B=bn-1…b1b0它们的真值分别为a和b,即 m-1    n-1 a =∑ai2i  b =∑bj2j i=0      j=0 在二进制乘法中,被乘数A与乘数B相乘,产生m+n位乘积P: P=pm+n-1…p1p0乘积P 的数值为:,1、定点原码乘法原理,,实现这个乘法过程所需要的操作:其中的aibj实际为ai与bj的逻辑与,不带符号位的阵列乘法器,,解决问题的核心: 怎样将乘法阵列中的每个逻辑与累加 用构思精巧、绘图细密、像个刺绣作品的——阵列乘法器实现,乘法阵列器工作构思图:,a4b0 a3b0 a2b0 a1b0 a0b0 a4b1 a3b1 a2b1 a1b1 a0b1 a4b2 a3b2 a2b2 a1b2 a0b2 a4b3 a3b3 a2b3 a1b3 a0b3a4b4 a3b4 a2b4 a1b4 a0b4,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,,FA结构,FA,,被加数或和,,进位,,加数,,和,进位,,不带符号位的阵列乘法器,,,先勘误:教材图2.5最下边一行FA右侧的水平箭头应删掉(除了0输入)即,改为和上页ppt图一致。,阵列乘法器分析:,m位被乘数,n位乘数的阵列乘法器可由(m-1) ×n个全加器构成。为提高并行处理能力和速度,减少进位延迟时间,每行相加产生的进位移到下一行前一位的全加器处理。虚线部分是一个行波进位加法器,将最后一次进位加入分别累加。最难的就是耗时分析:,阵列乘法器分析:,耗时分析(5位乘以5位原码):对于FA得到S耗时6T,得到C耗时5T向下运算耗时6T × 4最后一行行波进位耗时 2T × 4 +3T3T指的是每个FA运算中第一个异或门的共同耗时,过程中不需要溢出判断不要忘了:乘法阵列是由与门组生成所以tm=T + (n-1) ×6T + (n-1) ×2T +3T,FA逻辑电路和框图,,,1位补码运算的加法减法器,1位补码运算的加法减法器FA,不带符号位的阵列乘法器,,阵列乘法器耗时计算的特别说明:1.该耗时公式为时间估算,有一定程度的细节忽略成分2.即使不做溢出判断,加法器最后一个结果出来还得再多加一个T3.如果将加法器第一个全加器输入端连接更合理(低位进位和0连接Ai、Bi端)又可省出一个T的时间4.具体细节自行推敲讨论,,a4b0 a3b0 a2b0 a1b0 a0b0 a4b1 a3b1 a2b1 a1b1 a0b1 a4b2 a3b2 a2b2 a1b2 a0b2 a4b3 a3b3 a2b3 a1b3 a0b3a4b4 a3b4 a2b4 a1b4 a0b4,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA,思考:向FA左侧产生进位可以吗?,每个FA影响它左边和下边的FA计算,并行程度降低,,[例19] 参见图2.5,已知不带符号的二进制整数A=11011,B=10101,求每一部分乘积项aibj的值与p9p8…p0的值。 解:       1 1 0 1 1 = A (2710) ×     1 0 1 0 1 = B (2110) ————————————       1 1 0 1 1  a4b0=1, a3b0=1, a2b0=0, a1b0=1, a0b0=1      0 0 0 0 0   a4b1=0, a3b1=0, a2b1=0, a1b1=0, a0b1=0     1 1 0 1 1    a4b2=1, a3b2=1, a2b2=0, a1b2=1, a0b2=1    0 0 0 0 0     a4b3=0, a3b3=0, a2b3=0, a1b3=0, a0b3=0 + 1 1 0 1 1      a4b4=1, a3b4=1, a2b4=0, a1b4=1, a0b4=1 ————————————   1 0 0 0 1 1 0 1 1 1 = P  P = p9p8p7p6p5p4p3p2p1p0 = 1000110111 (56710) 注意教材上勘误:a0b2=1,3、带符号位的阵列乘法器,要解决的问题说明:前面刚讨论了两个数是原码时的乘法运算,或者说是正数补码的乘法计算机中大部分时候数据以补码形式出现,当碰到负数,或者说有符号的数的补码乘法时该怎样处理?方法:先转为原码,然后再处理转为原码的过程和求补的过程完全相同,3、带符号位的阵列乘法器,先看求补电路(a3a2a1a0均为数值)、(E接符号位),,3、带符号的阵列乘法器,求补电路分析:E=0时,输入和输出相等E=1时,则从数最右端往左边扫描,直到第一个1的时候,该位和右边各位保持不变0?A=A,左边各数值位按位取反1?A=﹁A可以用符号作为E的输入这些操作也叫对2求补,3、带符号的阵列乘法器,原:1.10110 补:1.01010举例:10011 101000 11000011101 111000 110000(最高位是符号位),从右至左碰到第一个1不变,左边数值按位取反,3、带符号的阵列乘法器,时间延迟分析:或门延时串行时序,是关键时间路径转换n+1位带符号机器码的时间延迟为 t=(n-1)*T+4T其中(n-1)*T为或门延迟时间,4T为最高位与门和异或门的时延。与教材上有出入,3、带符号的阵列乘法器(间接法),带符号的阵列乘法器既适用于原码乘法也适用于补码乘法A、B均为原码时:算前求补和算后求补禁用,即不求补A、B均为补码时:算前求补和算后求补有效,需要求补两者都是符号位单独运算后者耗时约增加一倍,3、带符号的阵列乘法器(间接法),2017/11/24,30,[例20] 设x=+15,y=-13,用带求补器的原码阵列乘法器求出乘积x·y=? 解:[x]原=01111 , [y]原=11101 , |x|=1111 , |y|=1101  符号位运算:0?1=1       1 1 1 1 ×     1 1 0 1 ————————————       1 1 1 1       0 0 0 0      1 1 1 1 +   1 1 1 1 ————————————    1 1 0 0 0 0 1 1 乘积符号为1,算后求补器输出11000011,[x×y]原=111000011 换算成二进制数真值是 x·y = (-11000011)2 = (-195)10,被乘数和乘数都是原码时:求补操作不执行,只将去掉符号的数值部分原样输出。,[例21] 设x=-15,y=-13,用带求补器的补码阵列乘法器求出乘积x·y=? 并用十进制数乘法进行验证。解:[x]补=10001 , [y]补=10011 , 乘积符号位运算:1?1=0 尾数部分算前求补器输出 |x|=1111 , |y|=1101      1 1 1 1×     1 1 0 1————————————      1 1 1 1      0 0 0 0     1 1 1 1+   1 1 1 1————————————   1 1 0 0 0 0 1 1乘积符号为0,算后求补器输出11000011,[x×y]补=011000011补码二进制数真值 x·y=1×27+1×26+1×21+1×20 =(+195)10十进制数乘法验证 x·y = (-15)×(-13) = +195,被乘数和乘数都是补码时:去掉符号位,其余各位求反加1,即完成求补过程得到原码。,你可能好奇:,如果不转成原码直接进行补码乘法?设x=-15,y=-13[x]补=10001 , [y]补=10011 0 0 0 1× 0 0 1 1 ----------------------- 0 0 0 1 0 0 0 1----------------------- 0 0 0 0 1 1 出现错误!,,即,要实现定点两机器数的乘法运算,需要先将其转换为原码,乘法运算结束后,再将其转换为补码,并附加符号位,得到乘积的补码形式,进而得到乘积原码与真值。这样的方案耗时约增加一倍,思考:一定要有这样的来回转换吗?即,一定要有算前对2求补和算后对2求补操作吗?,2.3.2直接补码并行乘法(选学),1.补码与真值的转公式2.一般化的全加器形式3.直接补码阵列乘法器,需要将乘法阵列中的全加器进行升级,改为一般化全加器,使得被加数、加数和进位都可为负,就可实现直接补码并行乘法了!, 关 键 词: 计算机组成原理第二章第8讲定点乘法运算

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

你可能感兴趣的:(计算机组成原理乘法运算说明过程)