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

上传人:san****019 文档编号:70825099 上传时间:2019-01-18 格式:PPT 页数:34 大小:1.09MB
返回 下载 相关 举报
计算机组成原理第二章第8讲定点乘法运算_第1页
第1页 / 共34页
计算机组成原理第二章第8讲定点乘法运算_第2页
第2页 / 共34页
计算机组成原理第二章第8讲定点乘法运算_第3页
第3页 / 共34页
计算机组成原理第二章第8讲定点乘法运算_第4页
第4页 / 共34页
计算机组成原理第二章第8讲定点乘法运算_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《计算机组成原理第二章第8讲定点乘法运算》由会员分享,可在线阅读,更多相关《计算机组成原理第二章第8讲定点乘法运算(34页珍藏版)》请在金锄头文库上搜索。

1、定点乘法运算,2.3 定点乘法运算,2.3.1 定点原码乘法 2.3.2 定点补码乘法,2.3.1 定点原码乘法,原码乘法 在定点计算机中,两个原码数相乘的运算规则: 乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。,设n位被乘数和乘数用定点整数表示 (定点小数也同样适用): 被乘数 原f n110 乘数 原f n110 则乘积 原(ff)(n110)(n110) 式中,f为被乘数符号,f为乘数符号。 关键问题:怎样解决两个无符号整数的乘法运算,2.3.1 定点原码乘法,1、定点原码乘法原理,尾数乘法举例如下: 设1101,1011 1 1 0 1 () 1 0

2、 1 1 () 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 (),1、定点原码乘法原理,n位乘n位积可能为2n位. 乘积的最后是所有位积之和,有n个数相加,而加法器只有两个输入端 所以需要改造 方法一:硬件实现方法(串行的“移位和加法”),硬件结构简单,速度太慢(时间延迟太长,不采用). 方法二:不带符号位的阵列乘法器,1、定点原码乘法原理,A=a4a3a2a1a0 阵列分析: B=b4b3b2b1b0 a4b0 a3b0 a2b0 a1b0 a0b0 a4b1 a3b1 a2b1 a1b1 a0b1 a4b2 a3b2 a2b2 a1b2

3、a0b2 a4b3 a3b3 a2b3 a1b3 a0b3 a4b4 a3b4 a2b4 a1b4 a0b4,用公式描述乘法过程: 设有两个无符号二进制整数: Aam1a1a0 Bbn1b1b0 它们的真值分别为a和b,即 m1 n1 a ai2i b bj2j i0 j0 在二进制乘法中,被乘数A与乘数B相乘,产生mn位乘积P: Ppmn1p1p0 乘积P 的数值为:,1、定点原码乘法原理,实现这个乘法过程所需要的操作: 其中的aibj实际为ai与bj的逻辑与,不带符号位的阵列乘法器,解决问题的核心: 怎样将乘法阵列中的每个逻辑与累加 用构思精巧、绘图细密、像个刺绣作品的阵列乘法器实现,乘法

4、阵列器工作构思图:,a4b0 a3b0 a2b0 a1b0 a0b0 a4b1 a3b1 a2b1 a1b1 a0b1 a4b2 a3b2 a2b2 a1b2 a0b2 a4b3 a3b3 a2b3 a1b3 a0b3 a4b4 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

5、1) n个全加器构成。 为提高并行处理能力和速度,减少进位延迟时间,每行相加产生的进位移到下一行前一位的全加器处理。 虚线部分是一个行波进位加法器,将最后一次进位加入分别累加。 最难的就是耗时分析:,阵列乘法器分析:,耗时分析(5位乘以5位原码): 对于FA得到S耗时6T,得到C耗时5T 向下运算耗时6T 4 最后一行行波进位耗时 2T 4 +3T 3T指的是每个FA运算中第一个异或门的共同耗时,过程中不需要溢出判断 不要忘了:乘法阵列是由与门组生成 所以tm=T + (n-1) 6T + (n-1) 2T +3T,FA逻辑电路和框图,1位补码运算的加法减法器,1位补码运算的加法减法器FA,不

6、带符号位的阵列乘法器,阵列乘法器耗时计算的特别说明: 1.该耗时公式为时间估算,有一定程度的细节忽略成分 2.即使不做溢出判断,加法器最后一个结果出来还得再多加一个T 3.如果将加法器第一个全加器输入端连接更合理(低位进位和0连接Ai、Bi端)又可省出一个T的时间 4.具体细节自行推敲讨论,a4b0 a3b0 a2b0 a1b0 a0b0 a4b1 a3b1 a2b1 a1b1 a0b1 a4b2 a3b2 a2b2 a1b2 a0b2 a4b3 a3b3 a2b3 a1b3 a0b3 a4b4 a3b4 a2b4 a1b4 a0b4,FA,FA,FA,FA,FA,FA,FA,FA,FA,FA

7、,FA,FA,FA,FA,FA,FA,思考:向FA左侧产生进位可以吗?,每个FA影响它左边和下边的FA计算,并行程度降低,例19 参见图2.5,已知不带符号的二进制整数A=11011,B=10101,求每一部分乘积项aibj的值与p9p8p0的值。 解: 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, a1

8、b2=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、带符号位的阵列乘法器,要解决的问题说明: 前面刚讨论了两个数是原码时的乘法运算,或者说是正数补码的乘法 计算机中大部分时候数据以补码形式出现,当碰到负数,或者说有符号的数的补码乘法时该怎样处理? 方法:先转为

9、原码,然后再处理 转为原码的过程和求补的过程完全相同,3、带符号位的阵列乘法器,先看求补电路 (a3a2a1a0均为数值)、(E接符号位),3、带符号的阵列乘法器,求补电路分析: E=0时,输入和输出相等 E=1时,则从数最右端往左边扫描,直到第一个1的时候,该位和右边各位保持不变0A=A,左边各数值位按位取反1A=A 可以用符号作为E的输入 这些操作也叫对2求补,3、带符号的阵列乘法器,原:1.10110 补:1.01010 举例: 10011 101000 110000 11101 111000 110000 (最高位是符号位),从右至左碰到第一个1不变,左边数值按位取反,3、带符号的阵列

10、乘法器,时间延迟分析: 或门延时串行时序,是关键时间路径 转换n+1位带符号机器码的时间延迟为 t=(n-1)*T+4T 其中(n-1)*T为或门延迟时间,4T为最高位与门和异或门的时延。 与教材上有出入,3、带符号的阵列乘法器(间接法),带符号的阵列乘法器既适用于原码乘法也适用于补码乘法 A、B均为原码时: 算前求补和算后求补禁用,即不求补 A、B均为补码时: 算前求补和算后求补有效,需要求补 两者都是符号位单独运算 后者耗时约增加一倍,3、带符号的阵列乘法器(间接法),2019/1/18,30,例20 设x=+15,y=-13,用带求补器的原码阵列乘法器求出乘积xy=? 解:x原=0111

11、1 , y原=11101 , |x|=1111 , |y|=1101 符号位运算:01=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, xy原=111000011 换算成二进制数真值是 xy = (-11000011)2 = (-195)10,被乘数和乘数都是原码时:求补操作不执行,只将去掉符号的数值部分原样输出。,例21 设x=-15,y=-13,用带求补器的补码阵列乘法器求出乘积 xy=? 并用十进制数乘法进行验证。 解:x补=10001 , y补=10011

12、 , 乘积符号位运算:11=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,xy补=011000011 补码二进制数真值 xy=127126121120 =(+195)10 十进制数乘法验证 xy = (-15)(-13) = +195,被乘数和乘数都是补码时: 去掉符号位,其余各位求反加1,即完成求补过程得到原码。,你可能好奇:,如果不转成原码直接进行补码乘法? 设x=-15,y=-13 x补=100

13、01 , 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.直接补码阵列乘法器,需要将乘法阵列中的全加器进行升级,改为一般化全加器,使得被加数、加数和进位都可为负,就可实现直接补码并行乘法了!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号