Loading

乘法器加速1--Booth算法

引言

之前学习了乘法器的设计(计算机组成与设计-乘法器),在考虑对乘法器进行优化中,有一种Booth算法可以进一步加快计算速度。下文对其进行介绍:

Booth Algorithm

Booth算法实际上就是考虑减少计算过程中的乘积项,关键点在于对乘数进行Booth编码:以0111为例

Booth编码特性,当前位与后一位进行比较,若1-0变化,则Booth码为-1;若0-1变化,则Booth码为1;若没有跳变则Booth码为0。最低位需要将被乘数右边扩展一位0作为参考。

因此原本需要进行3次加法,经过编码后减少到2次。对于含有较多连续1或连续0的数据,这样的方式可以极大减小计算次数。

当Booth码为-1时,把被乘数用补码表示,并且符号位扩展,再进行对应位的加法计算即可。

计算案例

2×7:

负数×正数或者负数×负数也是一样的分析方法。可自行验证。

 

posted @ 2022-03-12 16:53  月光小猪(已长膘)  阅读(680)  评论(0编辑  收藏  举报