1. 引言
在现代处理器中,浮点乘法器是计算单元的核心部件,在浮点乘法器的设计过程中,
制约性能的瓶颈在于部分积的产生以及部分积的压缩过程
[1]
.使用 Booth 算法可以将部分积
数量减少为一半或者更少,而使用 Wallace 树的方法可以将生成的部分积并行压缩.根据文
献[2]得出的综合结果,Booth 编码部分与 Wallace Tree 在乘法器的关键路径延迟时间中大
约占了 38.08%.因此对于 Booth 编码与 Wallace Tree 结构的优化成了提升乘法器性能的关
键.文献[3]简化了每个部分积的符号扩展位,使部分积的排列方式更加紧凑规则,文献[4]
采用了 7-2 压缩器结构的 Wallace Tree 以及 64 位 Brent Kung 树结构的超前进位加法器,提
高了乘法器的运行速度,文献[5]提出了一种截断式的加法器进位链,但是在对部分积进行
压缩处理的关键路径上仍然存在着较大的延时,在文献[6]中,提出了一种新型的 Booth 选
择器以及 4-2 压缩器,有效的缩短了关键路径的延时.本文将 4-2 压缩器以及 5-2 压缩器进
一步改进,并重新组合,提出了一种基于 32 bit 浮点乘法运算的新型 Wallace Tree 结构,
同时对部分积产生电路进行了优化,使浮点乘法器的整体性能与文献[5]相比得到了显著提
升.
2. 浮点乘法器
现在广泛所采用的均为 IEEE754 标准
[7]
的 32 bit 二进制单精度浮点数.32 bit 的浮点数
分为三个部分,其中最高位 31 位为浮点数的符号位(Sign),0 表示浮点数为正数,1 表示浮
点数为负数;指数位(Exponent),为浮点数的第 30~23 位,其中包含了 127 的偏置,原指数
为 E-127;尾数位(Mantissa)为第 22~0 位,表示了浮点数的小数部分,其中包含了整数部分
1.所以原浮点数的表示方法为:
F=(−1)S×1.M×2E−127F=(−1)S×1.M×2E−127
本文基于基 4Booth 算法以及 Wallace 树,实现了 32 bit 浮点数的计算过程,流水线级
数为四级.大致的框架如图 1 所示.