第4讲定点乘法

上传人:工**** 文档编号:568784617 上传时间:2024-07-26 格式:PPT 页数:20 大小:283.50KB
返回 下载 相关 举报
第4讲定点乘法_第1页
第1页 / 共20页
第4讲定点乘法_第2页
第2页 / 共20页
第4讲定点乘法_第3页
第3页 / 共20页
第4讲定点乘法_第4页
第4页 / 共20页
第4讲定点乘法_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《第4讲定点乘法》由会员分享,可在线阅读,更多相关《第4讲定点乘法(20页珍藏版)》请在金锄头文库上搜索。

1、计算机组成原理Principles of Computer Organization广义双语教学课程http:/211.64.192.109/skyclass25/青岛理工大学 校级精品课程http:/ 计算机的运算方法计算机的运算方法( 3 )A binary multiplier is an electronic circuit used in digital electronics, such as a computer, to multiply two binary numbers. It is built using binary adders.Until the late 1970

2、s, most minicomputers did not have a multiply instruction, and so programmers used a multiply routine” which repeatedly shifts and accumulates partial results, often written using loop unwinding. Early microprocessors also had no multiply instruction.Mainframe computers had multiply instructions, bu

3、t they did the same sorts of shifts and adds as a multiply routine.如果尾数和阶码都用补码表示:非零最小正数为非零绝对值最小负数为例1 设浮点数基数为2,阶码为7位补码(包含1个符号位),尾数为9位原码(包含1个符号位)。 X= +13.25, Y= 1/8。求X和Y的规格化浮点机器数。X01-1XmaxXmin阶码上溢阶码上溢阶码下溢可表示的正数可表示的负数阶码为正阶码为正阶码为负3例1 浮点数基数为2,阶码为7位补码(包含1个符号位),尾数为9位原码(包含1个符号位)。X= +13.25,Y= -1/8。求X和Y的规格化浮点

4、机器数X=(+13.25)10 =(+1101.01)2 =+0.110101002+0100,Y=(-1/8)10 =(-0.001)2 = -0.1002010解:尾符尾数阶码浮点机器数: X浮点=0 0000100 11010100 Y浮点=1 1111110 10000000如果阶码为移码,尾数为补码,则Y=(-1/8)10 =(-0.001)2 = -0.1002010= -1.0000000020011Xj补=0000100 Xj移=1000100 XS补=0.11010100Yj补=1111101 Yj移=0111101 YS补=1.00000000 浮点机器数: X浮点=0 1

5、000100 11010100 Y浮点=1 0111101 00000000设浮点数格式为: 1 2 8 9 16Xj补=0000100 XS原=0.11010100Yj补=1111110 YS原=1.1000000046. 3. 3 乘法运算乘法运算Binary (Fixed-Point) Multiplication Arithmetic原码一位乘法原码两位乘法A variety of computer arithmetic techniques can be used to implement a digital multiplier. Most techniques involve c

6、omputing a set of partial products, and then summing the partial products together. This process is similar to the method taught to primary schoolchildren for conducting long multiplication on base-10 integers, but has been modified here for application to a base-2 (binary) numeral system.5原码一位乘法原码一

7、位乘法 用原码实现乘法运算十分方便。两个原码表示的数(无论小数或整数)相乘,乘积的值是两数绝对值之积绝对值之积,符号是相乘两数符号位的异或异或值。两个尾数为n位的数相乘,乘积的尾数为2n位。手算乘法的过程:1011 被乘数 1101 乘数101100001011101110001111位积乘积需要n个寄存器保存位积对应于乘数的位,将被乘数逐次左移一位加在左下方。最后将n个位积相加,得到乘积。计算机不能照搬手算的算法。运算器一次只能完成两数的求和操作。需要2n位的加法器Unsigned Binary Multiplication6计算机的算法:只能把每一个新位积与部分积(部分积的初值为零)相加,

8、总共做n次加法。 部分积与位积相加时,只有n位与位积相加,其余部分并不参加运算。因此用n位的加法器就可完成乘法了。被乘数左移一位的操作改为部分积右移一位后与被乘数相加。只需用1个n位的寄存器存放部分积的高位,部分积的低位与乘数共用一个n位的寄存器,在乘数右移一位(计算该位位积后自动丢失)的同时将部分积最低一位移入。乘法完成后,原来存放乘数的寄存器中是乘积的低n位,乘数全部丢失,而硬件则节省了一个寄存器。被乘数10111101 乘数0000部分积+ 10111011+ 000001011+ 101101011 110 右移一位001011 11 右移一位设计乘法逻辑7&计数器A 部分积 AFBF

9、F/2ACdC 乘数B 被乘数 F 加法器 移位电路 C/2C原码一位乘法逻辑原理图运算前,先将被乘数送寄存器B,乘数送寄存器C,计数器的初值为N,部分积寄存器A清零。若乘数末位Yi1,部分积与被乘数在加法器相加。若乘数末位Yi0,则加法器输出的是部分积与0的和。寄存器A和C中的部分积和乘数都右移一位形成新的部分积,部分积的最低位移入C空出的最高位。如此重复N次,乘法计算完毕。乘积的高N位在A中,低N位在C中,原来在C中的乘数在移位中丢失。CPA8例1 X+0.1011B,Y0.1101B,解:乘积的符号位用原码一位乘法计算XYX原 =|X|=Y原 =|Y|=0.10111.11010.101

10、10.1101原码运算,必须把符号位与数值部分分开进行。符号位做异或运算,数值部分做无符号数相乘。Most computers use a shift and add algorithm for multiplying small integers.9|X|= 0.1011, |Y|= 0.1101高位部分积 0 0 0 0 0低位部分积 / 乘数 1 1 0 1初始状态|XY|=0.10001111右移 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1右移 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1+) 0 1 0 1 1右移 0 0 0 1

11、 0 1 1 1 1 0 0 1 0 1 1 1 1 0+) 0 0 0 0 0右移 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 1+) 0 1 0 1 1+) 0 1 0 1 1XY0.10001111BXY原=1.10001111乘数最低位为1,加|X|乘数最低位为0,加0乘数最低位为1,加|X|乘数最低位为1,加|X|10原码一位乘法流程图YY开始结束A0,CdnBX,CYCn=1?A(A)+(B)(A),(C)右移一位Cd(Cd)1Cd=0?NNFlowchart如果乘数的数值部分是N位,则共需做N次加法,N次右移。乘积的数值部分是2N位。原码乘法做的是绝对值相

12、乘,相当于无符号数相乘。右移按逻辑右移进行。缺点:需做N次加法,N次右移,时间太长。11原码两位乘法原码两位乘法按照乘数每两位的情况,一次求出对应于该2位的部分积。增加少量逻辑电路,可使乘法的速度提高一倍。乘数的相邻两位Yi-1Yi有4种状态组合,分别对应一种操作:Yi-1Yi 操 作0 00 11 01 1相当于0X相当于1X相当于2X相当于3X部分积Pi +0后右移2位部分积Pi +X后右移2位部分积Pi +2X后右移2位部分积Pi +3X后右移2位12加2X很容易实现。把X左移一位,或者把X向左斜传送一位。加3X一般不能一次完成。分两次(3X=X+2X)又降低了速度。如果令 3X=4XX

13、, 形式上看好象需要2次。实际上可以: 本次运算只做减X,用一个欠帐触发器C记下欠加4X,下一步操作时补上。 由于本次累加后,部分积要右移2位,相当于乘数相对左移2位。此时做+X相当于前一步+4X。所以,3X=4XX只需要做一次。欠帐触发器C的初值为0。Yi-1Yi 操 作0 00 11 01 1相当于0X相当于1X相当于2X相当于3X部分积Pi +0后右移2位部分积Pi +X后右移2位部分积Pi +2X后右移2位部分积Pi +3X后右移2位13原码二位乘法的运算规则:当欠帐触发器C=0时,Yi-1 Yi C 0 0 0 0 1 0 1 0 0 1 1 0操 作部分积Pi +0后右移2位部分积

14、Pi +X后右移2位部分积Pi +2X后右移2位部分积Pi X后右移2位 0C0C0C1C当欠帐触发器C=1时,Yi-1 Yi C 0 0 1 0 1 1 1 0 1 1 1 1操 作部分积Pi +X后右移2位部分积Pi +2X后右移2位部分积Pi +-X补后右移2位部分积Pi +0后右移2位 0C0C1C1C14减X用加-X补实现。右移按补码右移规则进行。 当乘数的数值部分是N位(N必须是偶数),则共需做N/2次加法和N/2次右移。最后如果还有欠帐,再做一次+X。欠帐触发器C的初值为0。 由于在运算中有+2|X|,产生的进位可能侵占符号位,所以被乘数和部分积应该取3符号位。例2:X= -0.

15、111111,Y= +0.111001,用原码二位乘法计算X*Y符号位单独处理,乘数的数值部分必须是偶数位。相乘的是两数的绝对值。原码二位乘法的运算规则:15解:X 原=1.111111 ,Y 原=0.111001乘积的符号位| X |=0.111111 | Y |=0.111001| 2X |=001.111110 -|X |补补=1.000001例2:X= -0.111111,Y= +0.111001,用原码二位乘法计算X*Y16部分积 000. 0 0 0 0 0 0+ 000. 1 1 1 1 1 1 000. 1 1 1 1 1 1 000. 0 0 1 1 1 1+ 001. 1

16、1 1 1 1 0 010. 0 0 1 1 0 1 000. 1 0 0 0 1 1 + 111. 0 0 0 0 0 1 111. 1 0 0 1 0 0 111. 1 1 1 0 0 1+ 000. 1 1 1 1 1 1 000. 1 1 1 0 0 0乘数 欠帐触发器C1 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 说 明 Yi-1Yi C010,加|X|,0C 右移2位Yi-1Yi C100,加|2X| ,0C右移2位Yi-1Yi C110,加-|X|补,1C 右移2位C1,加|X|X*Y原原

17、=1. 111000000111X*Y= -0.11100000011117移码移码加减法运算加减法运算按照定义,两个移码表示的数相加,有X移Y移两个移码相加应采用 XY移X移Y补为了便于判断溢出,应该取双符号位。移码的双符号位的最高位(第一符号位)必须为0,如果运算结果的符号位为11或10(第一符号位为1),表明溢出。X移2nX10表示正溢出,11表示负溢出。即00表示负数,01表示正数。2nXY移2n(2n(XY)2nX2nY两个移码相减应采用 XY移X移-Y补18Homework6 - 20When thinking of multiplication as repeated addit

18、ion, the number to be multiplied is called the multiplicand, while the number of multiples is called the multiplier. The result of a multiplication is called a product.The numbers to be multiplied are generally called the factors or multiplicands.On currently available processors, a bit-wise shift instruction is faster than a multiply instruction and can be used to multiply (shift left) and divide (shift right) by powers of two. Multiplication by a constant and division by a constant can be implemented using a sequence of shifts and adds or subtracts. .19斜传电路20

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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