运算方法和运算器——定点乘法

一、小引
1、软件实现
(1)、利用加法运算指令,编写循环子程序
(2)、所需硬件最少,但速度最慢
2、硬件实现
(1)、串行乘法器
乘数每次和一位被乘数相乘
(2)、并行乘法器
乘数同时和被乘数所有二进制位相乘
(3)、硬件乘法器,需要专门的乘法指令

二、原码并行乘法
1、运算规则
(1)、积的符号位由两数符号位按异或得到
(2)、积的数值由两个正数相乘得到
即:
[X]=XfXn-1···X0
[Y]=YfYn-1···Y0
则:[Z]=(Xf⊕Yf)[(Xn-1···X0)(Yn-1···Y0)]
2、人工算法
(1)、求部分积
从乘数的最低位开始,逐位与被乘数相乘(与运算)
根据权重移位:每个部分积根据乘数的权左移
(2)、部分积相加
将移位后的部分积加起来得到Z
3、计算机乘法的困难
(1)、两个n位数相乘,乘积为2n位。部分积、乘积如何存储。
(2)、只有两个操作数相加的加法器如何将n个部分积相加
4、设计高速并行乘法器的基本问题
缩短部分积的加法时间
5、原理图
运算方法和运算器——定点乘法
运算方法和运算器——定点乘法
6、不带符号的阵列乘法器
运算方法和运算器——定点乘法
(1)、实现n位
n位
需要n(n-1)个全加器和n2个与门
(2)、时间
与门延迟为T,则:
t=T+(n-1)*6T+(n-1)*2T=(8n-7)T
3、带符号的阵列乘法器
(1)、对于补码表示的乘数与被乘数,需先将补码转换成原码
求补电路:
运算方法和运算器——定点乘法
利用符号位E作为控制信号,转换一个(n+1)位带符号的数,所需时间tTC=(n+5)T
(2)、求补器与原码阵列乘法器结合组成带符号的阵列乘法器
共需要三个求补器
算前求补2个
算后求补1个

运算方法和运算器——定点乘法