当前位置: 首页 > 专利查询>兰州大学专利>正文

乘法器、乘法计算方法、处理系统及存储介质技术方案

技术编号:37051495 阅读:17 留言:0更新日期:2023-03-29 19:29
本发明专利技术公开了一种乘法器、乘法计算方法、处理系统及存储介质,通过移位操作,将乘法器的部分积计算粒度细化,将移位过程中相互无影响的部分积进行拼接操作,避免使用了加法器,极大地提升了计算速度,进而提高了芯片的运行速度;将低32位结果与高32位结果作为两个输出分别进行计算。在仅仅需要低32位结果时,不必对全部部分积进行运算,只需要同低32位结果相关的部分积参与运算,提高了计算速度,降低了计算能耗。计算能耗。计算能耗。

【技术实现步骤摘要】
乘法器、乘法计算方法、处理系统及存储介质


[0001]本专利技术涉及数字电路技术,特别是一种乘法器、乘法计算方法、处理系统及存储介质。

技术介绍

[0002]目前,国内外乘法器的设计思想大体有四种类型,总体为并行乘法器、移位相加乘法器、查找表乘法器以及加法树乘法器。其中,并行乘法器易于实现,运算速度快,然而,当乘法运算位宽增大时,其设计将会耗用较多的内部资源;耗用内部资源小的设计方案是移位相加乘法器,它通过逐项求和来实现,但是,这种设计将会耗用大量时钟,处理速度较慢;处理速度较快的是查找表乘法器,该设计直接将乘积存放于存储器中,将乘数和被乘数作为访问存储器的地址,这样通过查表方式得到的对应存储器相应位置的结果即为所求的乘积结果,不过,存储器的读写访问速度决定着乘法器的运算速度,另外,随着乘数与被乘数的位宽增大,将会急剧增加存储器的空间,因此,此法不太适合大数乘法器的操作;采用流水线结构的加法树乘法器,两个数相乘能在一个时钟内完成,然而,当乘数位宽增加时,流水线的分段随之增加,必将使用更多寄存器资源,增加器件的耗用。采用 Booth 算法的乘法器,在速度,器件消耗等方面有很大优势,然而,这种算法需要做多次右移,加减法运算,取补等。
[0003]传统的乘法器运算,是N位乘N位将得到N个部分积,需要做N

1次加法运算,最终将得到 2N 位乘积。为了提高乘法器的运算效率,增强乘法器的性能,国内大体提出四种设计算法。随着大规模集成电路的发展,MOS 管的工艺体积由0.18mm,0.13mm,28nm到14nm,甚至更小的工体积,这样,在单位体积内可以含有更多的硬件资源。在设计过程中,逐步在芯片体积一定的情况下,提高芯片的运行速度,但是上述四种实现方式均存在明显的缺馅。
[0004]常规的外部时钟驱动方法,无法根据数据特征来细粒度地选择部分积的生成过程,导致两个问题:(1)部分积生成的速度匹配最慢速度,无法提升平均速度;(2)每一轮计算时所有计算模块均参与,不能适配数据特征,能耗大。
[0005]CN107092462B提供了一种基于FPGA的64位异步乘法器,然而该异步乘法器依然无法根据数据特征来细粒度地选择部分积的生成过程,同样存在以上两个问题。

技术实现思路

[0006]本专利技术所要解决的技术问题是,针对现有技术不足,提供一种乘法器、乘法计算方法、处理系统及存储介质,避免使用加法器,提高计算速度。
[0007]为解决上述技术问题,本专利技术所采用的技术方案是:一种乘法器,包括:第一运算单元,用于计算A0×
B3,A1×
B2,A2×
B1,A3×
B0的和,并存储所述和的低8位X1、高8位与1位进位;计算A0×
B1,A1×
B0之和,得到32位结果0X4X50(0的位宽为8位)与一位进位Cout
low1

第二运算单元,用于对所述低8位X1与进位Cout
low1
进行8位加法运算,得到X
´1,并存储加法运算产生的进位Cout
low3
;将加法运算的结果X
´1扩展为32位值X
´1000(0的位宽为8位);将32位值X
´1000(0的位宽为8位)与32位结果0X4X50(0的位宽为8位)按位相加,得到X
´1X4X50以及1位进位Cout
low2
;计算A0×
B2,A1×
B1,A2×
B0的和,得到X2X300,将X2X300与A0×
B0的乘积00X6X7按位相加得到32位结果X2X3X6X7;计算A2×
B3,A3×
B2,产生一位进位Cout
high3
与16位和X8X9,X8X9与存储的高8位计算结果拼接为32位结果Cout
high3
X8X9X1;第三运算单元,用于将X
´1X4X50(0的位宽为8位)与X2X3X6X7两个32位值进行加和,得到低32位结果与1位进位Cout
low4
;计算A1×
B3,A2×
B2,A3×
B1之和,得到16位结果X
10
X
11
与1位进位Cout
high2
,计算A3×
B3得到16位结果X
12
X
13
,两个32位结果00X
10
X
11
与X
12
X
13
00按位相加成32位数X
12
X
13
X
10
X
11
;其中,A3A2A1A0与B3B2B1B0为将32位定点数A、B分别分解为8位得到的结果X
i
为位宽8位的数,i=1,2...n,n为正整数。
[0008]本专利技术通过移位操作,将乘法器的部分积计算粒度细化,将移位过程中相互无影响的部分积进行拼接操作,避免使用了加法器;在仅仅需要低32位结果时,不必对全部部分积进行运算,只需要同低32位结果相关的部分积参与运算,提高了计算的速度。
[0009]本专利技术的乘法器还包括:第四运算单元,用于将Cout
high3
X8X9X1与X
12
X
13
X
10
X
11
进行32位加法,得到高32位结果的中间值,拼接Cout
high2
、Cout
high1
和Cout
low
,得到0Cout
high2
Cout
high1
Cout
low
,将所述高32位结果的中间值与进位的拼接值0Cout
high2
Cout
high1
Cout
low
再进行一次32位加法运算,得到高32位计算结果;Cout
low
为对第三运算单元加和过程中产生的3个进位Cout
low2
、Cout
low3
、Cout
low4
进行二进制编码得到的结果。
[0010]本专利技术将低32位结果与高32位结果作为两个输出分别计算,提高了计算的速度。
[0011]具体地,本专利技术中,所述第一运算单元包括:第一计算模块,用于计算A0×
B3,A1×
B2,A2×
B1,A3×
B0的和,并存储所述和的低8位X1、高8位与1位进位;第二计算模块,用于计算A0×
B1,A1×
B0之和,得到32位结果0X4X50(0的位宽为8位)与一位进位Cout
low1

[0012]本专利技术将低8位X1用于计算最终的低32位结果,高8位与1位进位存储下来,在计算高32位时传输,避免重复计算,提高了本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种乘法器,其特征在于,包括:第一运算单元,用于计算A0×
B3,A1×
B2,A2×
B1,A3×
B0的和,并存储所述和的低8位X1、高8位与1位进位;计算A0×
B1,A1×
B0之和,得到16位结果X4X5与一位进位Cout
low1
;第二运算单元,用于对所述低8位X1与进位Cout
low1
进行8位加法运算,得到X
´1,并存储加法运算产生的进位Cout
low3
;将加法运算的结果X
´1扩展为32位值X
´1000;拼接所述32位值X
´1000与32位结果0X4X50,得到X
´1X4X50以及1位进位Cout
low2
;计算A0×
B2,A1×
B1,A2×
B0的和,得到X2X300,将X2X300与A0×
B0的结果00X6X7按位相加,得到32位结果X2X3X6X7;计算A2×
B3,A3×
B2,产生一位进位Cout
high3
与16位和X8X9,将其分别扩展成32位的Cout
high3
000和0X8X90,并与之前存储的扩展后的32位000X1计算结果按位相加得32位结果Cout
high3
X8X9X1;第三运算单元,用于将X
´1X4X50与X2X3X6X7两个32位值进行加和,得到低32位结果与1位进位Cout
low4
;计算A1×
B3,A2×
B2,A3×
B1之和,得到16位结果X
10
X
11
与1位进位Cout
high2
,计算A3×
B3得到16位结果X
12
X
13
,两个32位结果00X
10
X
11
与X
12
X
13
00拼接成32位数X
12
X
13
X
10
X
11
;其中,A3A2A1A0与B3B2B1B0为将32位定点数A、B分别分解为8位得到的结果,X
i
为位宽8位的数,i=1,2...n,n为正整数。2.根据权利要求1所述的乘法器,其特征在于,还包括:第四运算单元,用于将Cout
high3
X8X9X1与X
12
X
13
X
10
X
11
进行32位加法,得到高32位结果的中间值和1位进位Cout
high1
,拼接Cout
high2
、Cout
high1
和Cout
low
,得到0Cout
high2
Cout
high1
Cout
low
,将高32位结果的中间值与进位的拼接值再进行一次32位加法运算,得到高32位计算结果;Cout
low
为对第三运算单元加和过程中产生的3个进位Cout
low2
、Cout
low3
、Cout
low4
进行二进制编码得到的结果。3.根据权利要求1所述的乘法器,其特征在于,所述第一运算单元包括:第一计算模块,用于计算A0×
B3,A1×
B2,A2×
B1,A3×
B0的和,并存储所述和的低8位X1、高8位与1位进位;第二计算模块,计算A0×
B1,A1×
B0之和,得到32位结果0X4X50与一位进位Cout
low1
。4.根据权利要求3所述的乘法器,其特征在于,所述第二运算单元包括:8位加法运算模块,用于对所述第一计算模块产生的低8位X1与进位Cout
low1
进行8位加法运算,得到X
´1,并存储加法运算产生的进位Cout
low3
;扩展模块,用于将加法运算的结果X
´1扩展为32位值X
´1000;第一拼接模块,将32位值X
´1000与32位结果0X4X50按位相加,得到X
´1X4X50以及1位进位Cout
low2
;复用模块,用于复用所述第一计算模块,以计算A0×
B2,A1×
B1,A2×
B0三个部分积的和X2X300;以及复用所述第二计算模块,计算A2×
B3,A3×
B2,产生一位进位Cout
high3
与16位和X8X9;第二拼接模块,用于拼接X2X300与A0×
B0的结果00X6X7,得到32位结果X2X3X6X7;将Cout
high3
、0X8X90与之前存储的扩展后的32位000X1位计算结果按位拼接相加得32位结果Cout
high3
X8X9X1。5.根据权利要求3所述的乘法器,其特征...

【专利技术属性】
技术研发人员:何安平尚未赵康利张博
申请(专利权)人:兰州大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1