一种支持两种位宽计算的脉动阵列结构制造技术

技术编号:39586636 阅读:6 留言:0更新日期:2023-12-03 19:38
本发明专利技术公开了一种支持两种位宽计算的脉动阵列结构,包括多个脉动阵列单元,各脉动阵列单元均包括输入寄存器

【技术实现步骤摘要】
一种支持两种位宽计算的脉动阵列结构


[0001]本专利技术涉及一种运算电路,尤其涉及一种支持两种位宽计算的脉动阵列结构


技术介绍

[0002]在深度学习领域中,与矩阵相乘相关的运算使用率极高

目前比较方便快捷的矩阵运算方式是用脉动矩阵,而脉动矩阵的基本思路为:在
A*B=Y
的矩阵乘法运算中,固定矩阵
B
,使矩阵
A
在脉动矩阵单元中流动而连续输出
Y
;或者是使矩阵
A
和矩阵
B
在脉动矩阵单元中流动而将结果
Y
存储于脉动矩阵单元中

其不足之处在于:常规脉动阵列采用固定位宽的寄存器进行计算,则在进行不同位宽的矩阵计算时,因寄存器位宽并不完全匹配,势必会造成不必要的硬件开销和资源浪费

如:使用
8bit
位宽的寄存器构成的脉动阵列单元计算
4bit
位宽的矩阵计算,每个
8bit
的寄存器里会有
4bit
是浪费的,必要时,还需要对数据进行位宽扩展,因此,现有的脉动阵列结构存在硬件开销较大

位宽适应性差的技术问题


技术实现思路

[0003]本专利技术的目的在于克服现有技术中的不足,提供一种支持两种位宽计算的脉动阵列结构,能够实现两种位宽的矩阵乘法运算,减少硬件开销

提高脉动阵列对不同位宽矩阵计算的适应

[0004]为达到上述目的,本专利技术是采用下述技术方案实现的:一种支持两种位宽计算的脉动阵列结构,所述脉动阵列结构包括多个脉动阵列单元,各所述脉动阵列单元均包括输入寄存器

权重寄存器

乘法运算单元

移位运算单元

加法运算单元

位宽选择单元

累加器和计算结果寄存器;所述输入寄存器用于存储输入数据;所述权重寄存器用于存储权重数据;所述乘法运算单元用于将输入寄存器中存储的输入数据和权重寄存器中存储的权重数据相乘;所述移位运算单元用于对所述乘法运算单元输出的乘积进行二进制左移运算;所述加法运算单元与所述位宽选择单元相配合,用于根据输入至所述位宽选择单元的位宽选择信号从所述乘法运算单元的运算结果和所述移位运算单元的运算结果中选择所需的运算结果,并进行求和运算;所述累加器用于对所述加法运算单元的求和运算结果执行累加运算;所述计算结果寄存器用于存储所述累加器输出的累加运算结果

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

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

[0007]所述乘法运算单元至少包括:第一乘法器:用于对所述高位输入寄存器中存储的输入数据和所述高位权重寄存器中存储的权重数据执行乘法运算;第二乘法器:用于对所述低位输入寄存器中存储的输入数据和所述高位权重寄存器中存储的权重数据执行乘法运算;第三乘法器:用于对所述高位输入寄存器中存储的输入数据和所述低位权重寄存器中存储的权重数据执行乘法运算;第四乘法器:用于对所述低位输入寄存器中存储的输入数据和所述低位权重寄存器中存储的权重数据执行乘法运算

[0008]所述移位运算单元至少包括第一左移运算器和第二左移运算器;所述第二左移运算器的左移位宽与所述两种位宽中高位宽相等,所述第一左移运算器的左移位宽与所述两种位宽中低位宽相同,所述高位宽是所述低位宽的两倍;所述第一左移运算器对应所述第二乘法器和所述第三乘法器各配置有一个,用于对所述第二乘法器和所述第三乘法器输出的运算结果执行左移低位宽运算;所述第二左移运算器用于对所述第一乘法器输出的运算结果执行左移高位宽运算

[0009]所述位宽选择单元至少包括第一二选一选择器和第二二选一选择器;所述加法运算单元至少包括第一加法器

第二加法器和第三加法器;所述第一加法器用于对两所述第一左移运算器的运算结果进行求和运算;所述第一二选一选择器用于根据所输入的位宽选择信号在所述第一乘法器的运算结果和所述第二左移运算器的运算结果中二选一输出;所述第二加法器用于对所述第四乘法器的运算结果和所述第一二选一选择器所选择的运算结果进行求和运算;所述第二二选一选择器用于根据所输入的位宽选择信号在所述第一加法器的求和运算结果和0中二选一输出;所述第三加法器用于对所述第二二选一选择器所选择的运算结果和所述第二加法器的求和运算结果进行求和运算

[0010]多个所述脉动阵列单元呈矩形阵列排布

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

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

[0013]所述两种位宽包括高位宽和低位宽,所述高位宽是所述低位宽的两倍

[0014]与现有技术相比,本专利技术所达到的有益效果:
本专利技术提供的脉动阵列结构,配置有位宽选择单元,可以根据所输入的位宽选择信号,从而实现两种位宽的矩阵乘法运算的模式切换,可以提高脉动阵列对不同位宽矩阵计算的适应性

附图说明
[0015]图1是根据本专利技术实施例提供的一种支持两种位宽计算的脉动阵列结构的结构框图;图2是图1中脉动阵列单元的电路结构示意图;图3是图1所示脉动阵列结构的信号输入示意图

实施方式
[0016]下面通过附图以及具体实施例对本专利技术技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合

[0017]如图1所示是本专利技术实施例提供的一种支持两种位宽计算的脉动阵列结构的结构框图,包括多个脉动阵列单元,相邻脉动阵列单元之间信号传递方向顺次连接,作为本专利技术的一种实施例,多个脉动阵列单元可以呈矩形阵列分布,纵向相邻的两个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种支持两种位宽计算的脉动阵列结构,其特征在于,所述脉动阵列结构包括多个脉动阵列单元,各所述脉动阵列单元均包括输入寄存器

权重寄存器

乘法运算单元

移位运算单元

加法运算单元

位宽选择单元

累加器和计算结果寄存器;所述输入寄存器用于存储输入数据;所述权重寄存器用于存储权重数据;所述乘法运算单元用于将输入寄存器中存储的输入数据和权重寄存器中存储的权重数据相乘;所述移位运算单元用于对所述乘法运算单元输出的乘积进行二进制左移运算;所述加法运算单元与所述位宽选择单元相配合,用于根据输入至所述位宽选择单元的位宽选择信号从所述乘法运算单元的运算结果和所述移位运算单元的运算结果中选择所需的运算结果,并进行求和运算;所述累加器用于对所述加法运算单元的求和运算结果执行累加运算;所述计算结果寄存器用于存储所述累加器输出的累加运算结果
。2.
根据权利要求1所述的支持两种位宽计算的脉动阵列结构,其特征在于,所述输入寄存器至少配置有两个,包括用于存储高位输入数据的高位输入寄存器和用于存储低位输入数据的低位输入寄存器;所述权重寄存器至少配置有两个,包括用于存储高位权重数据的高位权重寄存器和用于存储低位权重数据的低位权重寄存器
。3.
根据权利要求2所述的支持两种位宽计算的脉动阵列结构,其特征在于,所述两种位宽包括高位宽和低位宽;在进行低位宽计算时,所述高位输入寄存器或所述低位输入寄存器用于存储同一输入矩阵中相邻的两个输入数据;所述高位权重寄存器或所述低位权重寄存器用于存储同一权重矩阵中相邻的两个权重数据;在进行高位宽计算时,所述高位输入寄存器存储同一输入数据的中相邻的高位,所述低位输入寄存器存储同一输入数据的中相邻的低位;所述高位权重寄存器存储同一权重数据的中相邻的高位,所述低位权重寄存器存储同一权重数据的中相邻的低位
。4.
根据权利要求2或3所述的支持两种位宽计算的脉动阵列结构,其特征在于,所述乘法运算单元至少包括:第一乘法器:用于对所述高位输入寄存器中存储的输入数据和所述高位权重寄存器中存储的权重数据执行乘法运算;第二乘法器:用于对所述低位输入寄存器中存储的输入数据和所述高位权重寄存器中存储的权重数据执行乘法运算;第三乘法器:用于对所述高位输入寄存器中存储的输入数...

【专利技术属性】
技术研发人员:乔树山张默寒游恒尚德龙周玉梅
申请(专利权)人:中科南京智能技术研究院
类型:发明
国别省市:

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

1