arm's multiply(arm的乘)之五 乘法器的基本结构

本文大部分内容是对《计算机组成和结构》的阅读总结。
一如何设计一个乘法器
这个乘法器使用几个积存器?
使用了拿些基本运算功能?
乘法运算用了几个机器周期?
无符号和有符号的乘法区别?

1 . 我们都知道乘法运算可以用加法和移位来完成。
每个运算周期大概是:


if(乘数最右位是1)
    乘积 = 被乘数+乘积
乘数右移1位<==========这里决定了采用的是无符号还是有符号的乘法

一共循环32次

这个算法的直接实现是要使用2个32位的积存器和一个64位的积存器,以及一些控制电路
控制移位,还有一个加法器。运算需要32个周期。

2. 实际上乘数和乘积可共用一个64位积存器,因为乘机每次右移后就有效位数就少了一个,也
就空出一个位来给乘积用。这样就产生了下面的算法:


开始积存器的分配:
64位 :被乘数(高32位)乘数(低32位)《======此处的被乘数就是最开是的乘积
32位 :乘数

每次循环,64位积存器右移一位,如果乘数最低位是1,就把乘数加到64位积存器的
最高位上。此方法也用32个周期。

3 .BOOTH方法:
BOOTH方法主要是查看连续的1,以减少加法操作,因为在那个年代,加法还比移位操作慢,
(这个可以理解,因为加法需要一位一位的进行)

未完...

转载于:https://www.cnblogs.com/embed/archive/2004/07/19/25506.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值