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

一种用于矩阵乘法运算的权位分立存算阵列设计方法技术

技术编号:29937467 阅读:17 留言:0更新日期:2021-09-04 19:16
本发明专利技术公开了一种用于矩阵乘法运算的权位分立存算阵列设计方法,该方法包括:步骤一:根据电输入数据的二进制位数a设计a个相同的权重阵列,构成存算阵列;步骤二:对存算阵列的二进制电输入数据进行权位分立,并将不同权位以不同幅度的电脉冲输入至相应的权重阵列的输入端;步骤三:存算阵列的每个存算单元对接收到的电脉冲输入和预编程的标量数据进行乘法运算;步骤四:存算阵列中,每一行上所有存算单元的电流经过累加,并由模拟量输出端口输出,完成矩阵乘法运算。本发明专利技术的方法使每个存算单元的电输入bit位数最小化,降低存算阵列的功耗,并提高能效比,同时提高存算阵列的矩阵乘法的运算精度,提高存算阵列的所部署的算法的准确率。法的准确率。法的准确率。

【技术实现步骤摘要】
一种用于矩阵乘法运算的权位分立存算阵列设计方法


[0001]本专利技术涉及一种用于矩阵乘法运算的权位分立存算阵列设计方法,属于存算一体化以及类脑计算领域。

技术介绍

[0002]传统的计算机架构大多是冯

诺伊曼架构,这种存算分离的架构不仅会导致数据传输时能量消耗过大,也会导致数据的存储速率和运算速率的不同步,从而影响计算机整体的运算速度。存内计算实现了存算一体化,打破了存算的“速度墙”和“功耗墙”。同时,利用非易失性存算器件的特性,单个器件可完成一次乘加操作,整个器件阵列也能够具有速度快、并行度高、能效比好的特点,适用于需要进行大量乘加运算的神经网络。
[0003]在存内计算的设计中,每个存算单元既对数据进行存储也对数据进行运算操作,相较于传统的存储单元,存算单元最大的区别是每个单元需要存储更多的信息。随着单个器件中需要存储的信息增加,器件线性工作区的电压带会成指数级增加。由此,电压带之间会有较大概率发生交叠,从而造成数据存储的误码。传统的浮栅单元作为存储单元时,为保持存储数据的稳定,单个器件最多只存储3

bit数据。而将浮栅器件作为存算单元时,需要至少存储8

bit信息,即每个存算单元中存在256个电压带,这造成了相对较高的误码率和读写操作精度。
[0004]由于浮栅器件本身线性区范围的限制,若电压带的数量较多,则每个电压带就会很窄;并且每个存算单元存在两个存算操作数,预先编程存储的信息作为一个操作数,另一个操作数则通过电输入获得的输入数据,当输入多bit数据,并且预先编程存储的操作数为多bit数据时,极小的输入电压波动都会造成计算错误。但减少输入数据的位数,则会降低原本算法的计算精度及的准确率,因此,按传统的电输入方法输入多bit数据,存算阵列整体的计算精度较低。

技术实现思路

[0005]为了解决目前存在的上述问题,本专利技术提供了一种面向矩阵乘法运算的权位分立存算阵列设计方法,对存算阵列进行权重分立的设计,将多bit的输入数据的每个权重位分立并由不同的存算矩阵通过电脉冲输入,由此提高存算阵列的整体计算精度。使每个存算单元的电输入bit位数最小化,以提高计算精度,同时也能够保证原有算法的准确率。
[0006]本专利技术提供了一种用于矩阵乘法运算的权位分立存算阵列设计方法,适用于存内计算中的矩阵乘法运算。
[0007]根据本专利技术的权位分立存算阵列设计方法,权位分立是指将存算阵列的电输入数据的不同权重位进行分离,本专利技术的基本思路是对存算阵列的电输入数据进行权重位分离,并以不同幅度的电脉冲将电输入数据的不同权重位输入到不同的阵列中进行计算。
[0008]根据本专利技术的用于矩阵乘法运算的权位分立存算阵列设计方法,存算阵列由存算单元组成,每个存算单元(CIM)采用浮栅器件,每个浮栅器件在源极连接固定偏置电压,且
拥有两个运算量:电脉冲输入数据和预先编程的标量数据,存算阵列中每一列CIM的电脉冲输入均相同。预先编程的标量数据表现为CIM的沟道电导,电脉冲输入数据由栅极施加在CIM上,当电脉冲为高电平,CIM的沟道打开,在源极偏置电压的作用下,CIM会输出一模拟量;当电脉冲为低电平,CIM的沟道关闭,CIM会输出的模拟量为零。由此CIM的输出模拟量可视为这两个运算量带系数的乘积;同时根据基尔霍夫定律,存算阵列的模拟量输出端口的模拟量为一行上所有CIM的模拟量累加,从而通过这一系列的乘加过程完成矩阵乘法操作。
[0009]根据本专利技术的用于矩阵乘法运算的权位分立存算阵列设计方法,所述方法具体包括如下步骤:
[0010]步骤一:根据电输入数据的二进制位数a设计a个相同的权重阵列,所述a个权重阵列构成存算阵列;
[0011]步骤二:对所述存算阵列的二进制电输入数据进行权位分立,并将电输入数据的不同权位以不同幅度的电脉冲输入至相应的权重阵列的输入端;
[0012]步骤三:所述存算阵列的每个存算单元对接收到的电脉冲输入和预编程的标量数据进行乘法运算;
[0013]步骤四:存算阵列中,每一行上所有存算单元的电流经过累加,并由模拟量输出端口输出,完成矩阵乘法运算。
[0014]根据本专利技术的存算阵列设计方法,电输入数据为位宽为8bit的二进制数,如下式(1)所示的1
×
n向量D表示:
[0015]D=[d
1 d
2 ... d
n
]ꢀꢀꢀ
(1);
[0016]进一步地,向量D的第一个权位的二进制数组成向量[d
11 d
21 ... d
n1
],向量D的第二个权位的二进制数组成的向量[d
12 d
22 ... d
n2
],向量D的第8个权位的二进制数组成的向量[d
18 d
28 ... d
n8
],其中d
11
~d
18
分别代表数据d1的每个权位,以此类推d
n1
~d
n8
分别代表数据d
n
的每个权位;则向量D表达成:
[0017]D=[d
11 d
21 ... d
n1
]+2
×
[d
12 d
22 ... d
n2
]+

+128
×
[d
18 d
28 ... d
n8
]ꢀꢀꢀ
(2)。
[0018]根据本专利技术的存算阵列设计方法,由于本专利技术的电输入数据向量D为8位二进制数,因此设计8个相同的权重阵列,分别为权重1阵列、权重2阵列、权重3阵列、权重4阵列、权重阵列5、权重6阵列、权重7阵列及权重8阵列。每个阵列中预先编程相同的权重矩阵W,并分别输入向量D的不同二进制权位电脉冲。每个阵列预先编程的标量数据构成的权重矩阵W,如下式(3)所示:
[0019][0020]根据本专利技术的存算阵列设计方法,具体地,权重1阵列的数据输入端以幅度为XmV的脉冲输入向量D二进制数的第一个二进制权位组成的向量[d
11 d
21 ... d
n1
],完成当前二进制权位的矩阵乘,具体过程如下:
[0021]权重1阵列中预先编程的权重矩阵则权重1阵列完成下式(4)的运算:
[0022][0023]同理,权重2阵列的输入端以幅度为2X mV的脉冲输入向量D的第二个权位的二进制数组成的向量[d
12 d
22 ... d
n2
],完成Y2=2
×
[d
12 d
22 ... dn2]×
W运算;权重3阵列的输入端以幅度为4X mV的脉冲输入向量D的第三个权位的二进制数组成的向量[d
13 d
23 ... d
n3
],并完成Y3=本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于矩阵乘法运算的权位分立存算阵列设计方法,存算阵列由存算单元组成,每个存算单元采用浮栅器件,每个浮栅器件拥有两个运算量:电脉冲输入数据和预先编程的标量数据,所述方法包括如下步骤:步骤一:根据电输入数据的二进制位数a设计a个相同的权重阵列,所述a个权重阵列构成存算阵列;步骤二:对所述存算阵列的二进制电输入数据进行权位分立,并将电输入数据的不同权位以不同幅度的电脉冲输入至相应的权重阵列的输入端;步骤三:所述存算阵列的每个存算单元对接收到的电脉冲输入和预编程的标量数据进行乘法运算;步骤四:所述存算阵列中,每一行上所有存算单元的电流经过累加,并由模拟量输出端口输出,完成矩阵乘法。2.根据权利要求1所述的方法,其特征在于,一个权重阵列中,每一列浮栅器件的电脉冲输入均相同;每个浮栅器件对这两个运算量进行乘法运算,权重阵列的模拟量输出端口输出一行中所有浮栅器件的总电流量,完成该权重阵列的矩阵乘法。3.根据权利要求1所述的方法,其特征在于,所述电输入数据为位宽为8bit的二进制数,由下式所示的1
×
n的向量D表示:D=[d
1 d
2 ... d
n
];所述向量D的第一个权位的二进制数组成向量[d
11 d
21 ... d
n1
],所述向量D的第二个权位的二进制数组成的向量[d
12 d
22 ... d
n2
],所述向量D的第8个权位的二进制数组成的向量[d
18 d
28 ... d
n8
],其中d
11
~d
18
分别代表数据d1的每个权位,d
n1
~d
n8
分别代表数据d
n
的每个权位;则所述向量D表达成:D=[d
11 d
21 ... d
n1
]+2
×
[d
12 d
22 ... d
n2
]+

+128
×
[d
18 d
28 ... d
n8
]。4.根据权利要求3所述的方法,其特征在于,所述方法包括:根据所述电输入数据的二进制位数,设计8个相同的权重阵列,分别为权重1阵列、权重2阵列、权重3阵列、权重4阵列、权重阵列5、权重6阵列、权重7阵列及权重8阵列,并且每个权重阵列中预先编程相同的权重矩阵W,如下式所示:5.根据权利要求4所述的方法,其特征在于,所述方法包括:以不同幅度的电脉冲向各个权重阵列的数据输入端分别输入所述向量D的不同二进制权位的二进制数组成的向量。6.根据权利要求4所述的方法,其特征在于,所述方法包括:所述权重1阵列的数据输入端以幅度为X mV的脉冲输入所述向量D的第一个二进制权位组成的向量,完成当前二进制权位的矩阵乘法,过程如下:输入所述向量D的第一个权位的二进制数组成的向量[d
11 d
21 ... d
n1
],所述权重1阵
列中预先编程的权重矩阵为则权重1阵列进行如下运算:7.根据权利要求4所述的方法,其特征在于,所述方法包括:所述权重2阵列的输入端以幅度为2X mV的脉冲输入所述向量D的第二个权位的二进制数组成的向量[d
12 d
22 ... d
n2
],并完成Y2=2
×
[d
12 d
22 ... d
n2
]
×
W运算;所述权重3阵列的输入端以幅度为4X mV的脉冲输入所述向量D的第三个权位的二进制数组成的向量[d
13 d
23 ... d
n3
],并完成Y3=4
×
[d
13 d
23 ... d
n3
]
...

【专利技术属性】
技术研发人员:虞致国马晓杰顾晓峰
申请(专利权)人:江南大学
类型:发明
国别省市:

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

1