一种支持两种位宽计算的脉动阵列结构的制作方法

文档序号:36194989发布日期:2023-11-30 00:55阅读:40来源:国知局
一种支持两种位宽计算的脉动阵列结构的制作方法

本发明涉及一种运算电路,尤其涉及一种支持两种位宽计算的脉动阵列结构。


背景技术:

1、在深度学习领域中,与矩阵相乘相关的运算使用率极高。目前比较方便快捷的矩阵运算方式是用脉动矩阵,而脉动矩阵的基本思路为:在a*b=y的矩阵乘法运算中,固定矩阵b,使矩阵a在脉动矩阵单元中流动而连续输出y;或者是使矩阵a和矩阵b在脉动矩阵单元中流动而将结果y存储于脉动矩阵单元中。其不足之处在于:常规脉动阵列采用固定位宽的寄存器进行计算,则在进行不同位宽的矩阵计算时,因寄存器位宽并不完全匹配,势必会造成不必要的硬件开销和资源浪费。如:使用8bit位宽的寄存器构成的脉动阵列单元计算4bit位宽的矩阵计算,每个8bit的寄存器里会有4bit是浪费的,必要时,还需要对数据进行位宽扩展,因此,现有的脉动阵列结构存在硬件开销较大、位宽适应性差的技术问题。


技术实现思路

1、本发明的目的在于克服现有技术中的不足,提供一种支持两种位宽计算的脉动阵列结构,能够实现两种位宽的矩阵乘法运算,减少硬件开销、提高脉动阵列对不同位宽矩阵计算的适应性。

2、为达到上述目的,本发明是采用下述技术方案实现的:

3、一种支持两种位宽计算的脉动阵列结构,所述脉动阵列结构包括多个脉动阵列单元,各所述脉动阵列单元均包括输入寄存器、权重寄存器、乘法运算单元、移位运算单元、加法运算单元、位宽选择单元、累加器和计算结果寄存器;

4、所述输入寄存器用于存储输入数据;所述权重寄存器用于存储权重数据;

5、所述乘法运算单元用于将输入寄存器中存储的输入数据和权重寄存器中存储的权重数据相乘;

6、所述移位运算单元用于对所述乘法运算单元输出的乘积进行二进制左移运算;

7、所述加法运算单元与所述位宽选择单元相配合,用于根据输入至所述位宽选择单元的位宽选择信号从所述乘法运算单元的运算结果和所述移位运算单元的运算结果中选择所需的运算结果,并进行求和运算;

8、所述累加器用于对所述加法运算单元的求和运算结果执行累加运算;

9、所述计算结果寄存器用于存储所述累加器输出的累加运算结果。

10、所述输入寄存器至少配置有两个,包括用于存储高位输入数据的高位输入寄存器和用于存储低位输入数据的低位输入寄存器;

11、所述权重寄存器至少配置有两个,包括用于存储高位权重数据的高位权重寄存器和用于存储低位权重数据的低位权重寄存器。

12、所述两种位宽包括高位宽和低位宽;

13、在进行低位宽计算时,所述高位输入寄存器或所述低位输入寄存器用于存储同一输入矩阵中相邻的两个输入数据;所述高位权重寄存器或所述低位权重寄存器用于存储同一权重矩阵中相邻的两个权重数据;

14、在进行高位宽计算时,所述高位输入寄存器存储同一输入数据的中相邻的高位,所述低位输入寄存器存储同一输入数据的中相邻的低位;所述高位权重寄存器存储同一权重数据的中相邻的高位,所述低位权重寄存器存储同一权重数据的中相邻的低位。

15、所述乘法运算单元至少包括:

16、第一乘法器:用于对所述高位输入寄存器中存储的输入数据和所述高位权重寄存器中存储的权重数据执行乘法运算;

17、第二乘法器:用于对所述低位输入寄存器中存储的输入数据和所述高位权重寄存器中存储的权重数据执行乘法运算;

18、第三乘法器:用于对所述高位输入寄存器中存储的输入数据和所述低位权重寄存器中存储的权重数据执行乘法运算;

19、第四乘法器:用于对所述低位输入寄存器中存储的输入数据和所述低位权重寄存器中存储的权重数据执行乘法运算。

20、所述移位运算单元至少包括第一左移运算器和第二左移运算器;所述第二左移运算器的左移位宽与所述两种位宽中高位宽相等,所述第一左移运算器的左移位宽与所述两种位宽中低位宽相同,所述高位宽是所述低位宽的两倍;

21、所述第一左移运算器对应所述第二乘法器和所述第三乘法器各配置有一个,用于对所述第二乘法器和所述第三乘法器输出的运算结果执行左移低位宽运算;

22、所述第二左移运算器用于对所述第一乘法器输出的运算结果执行左移高位宽运算。

23、所述位宽选择单元至少包括第一二选一选择器和第二二选一选择器;所述加法运算单元至少包括第一加法器、第二加法器和第三加法器;

24、所述第一加法器用于对两所述第一左移运算器的运算结果进行求和运算;

25、所述第一二选一选择器用于根据所输入的位宽选择信号在所述第一乘法器的运算结果和所述第二左移运算器的运算结果中二选一输出;

26、所述第二加法器用于对所述第四乘法器的运算结果和所述第一二选一选择器所选择的运算结果进行求和运算;

27、所述第二二选一选择器用于根据所输入的位宽选择信号在所述第一加法器的求和运算结果和0中二选一输出;

28、所述第三加法器用于对所述第二二选一选择器所选择的运算结果和所述第二加法器的求和运算结果进行求和运算。

29、多个所述脉动阵列单元呈矩形阵列排布。

30、纵向相邻的两个所述脉动阵列单元通过位宽选择信号和权重数据信号连接;横向相邻的两个所述脉动阵列单元通过输入数据信号连接。

31、横向相邻的两个所述脉动阵列单元通过位宽选择信号和权重数据信号连接;纵向相邻的两个所述脉动阵列单元通过输入数据信号连接。

32、所述两种位宽包括高位宽和低位宽,所述高位宽是所述低位宽的两倍。

33、与现有技术相比,本发明所达到的有益效果:

34、本发明提供的脉动阵列结构,配置有位宽选择单元,可以根据所输入的位宽选择信号,从而实现两种位宽的矩阵乘法运算的模式切换,可以提高脉动阵列对不同位宽矩阵计算的适应性。



技术特征:

1.一种支持两种位宽计算的脉动阵列结构,其特征在于,所述脉动阵列结构包括多个脉动阵列单元,各所述脉动阵列单元均包括输入寄存器、权重寄存器、乘法运算单元、移位运算单元、加法运算单元、位宽选择单元、累加器和计算结果寄存器;

2.根据权利要求1所述的支持两种位宽计算的脉动阵列结构,其特征在于,所述输入寄存器至少配置有两个,包括用于存储高位输入数据的高位输入寄存器和用于存储低位输入数据的低位输入寄存器;

3.根据权利要求2所述的支持两种位宽计算的脉动阵列结构,其特征在于,所述两种位宽包括高位宽和低位宽;

4.根据权利要求2或3所述的支持两种位宽计算的脉动阵列结构,其特征在于,所述乘法运算单元至少包括:

5.根据权利要求4所述的支持两种位宽计算的脉动阵列结构,其特征在于,所述移位运算单元至少包括第一左移运算器和第二左移运算器;所述第二左移运算器的左移位宽与所述两种位宽中高位宽相等,所述第一左移运算器的左移位宽与所述两种位宽中低位宽相同,所述高位宽是所述低位宽的两倍;

6.根据权利要求5所述的支持两种位宽计算的脉动阵列结构,其特征在于,所述位宽选择单元至少包括第一二选一选择器和第二二选一选择器;所述加法运算单元至少包括第一加法器、第二加法器和第三加法器;

7.根据权利要求1所述的支持两种位宽计算的脉动阵列结构,其特征在于,多个所述脉动阵列单元呈矩形阵列排布。

8.根据权利要求7所述的支持两种位宽计算的脉动阵列结构,其特征在于,纵向相邻的两个所述脉动阵列单元通过位宽选择信号和权重数据信号连接;横向相邻的两个所述脉动阵列单元通过输入数据信号连接。

9.根据权利要求7所述的支持两种位宽计算的脉动阵列结构,其特征在于,横向相邻的两个所述脉动阵列单元通过位宽选择信号和权重数据信号连接;纵向相邻的两个所述脉动阵列单元通过输入数据信号连接。

10.根据权利要求1所述的支持两种位宽计算的脉动阵列结构,其特征在于,所述两种位宽包括高位宽和低位宽,所述高位宽是所述低位宽的两倍。


技术总结
本发明公开了一种支持两种位宽计算的脉动阵列结构,包括多个脉动阵列单元,各脉动阵列单元均包括输入寄存器、权重寄存器、乘法运算单元、移位运算单元、加法运算单元、位宽选择单元、累加器和计算结果寄存器;乘法运算单元和移位运算单元相配合用于实现矩阵乘法运算,加法运算单元与位宽选择单元相配合,用于根据输入的位宽选择信号从乘法运算单元的运算结果和移位运算单元的运算结果中选择所需的运算结果,并进行求和运算;累加器用于对加法运算单元的求和运算结果执行累加运算;计算结果寄存器用于存储累加器输出的累加运算结果。本发明可以根据所输入的位宽选择信号,从而实现两种位宽的矩阵乘法运算的模式切换,可以提高脉动阵列的适应性。

技术研发人员:乔树山,张默寒,游恒,尚德龙,周玉梅
受保护的技术使用者:中科南京智能技术研究院
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1