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

一种支持负值激励的存算阵列输出电流读出方法及系统技术方案

技术编号:32126048 阅读:60 留言:0更新日期:2022-01-29 19:14
本发明专利技术公开了一种支持负值激励的存算阵列输出电流读出方法及系统,所述系统包括:补码编码模块、控制模块、电流反向模块、累加模块、激活模块、池化模块及模数转换模块。激励以二进制补码形式逐位输入,输出电流经电流反向模块和累加模块转换至电压,再经激活模块、池化模块及数模转换模块完成读出。补码编码的运用能够有效地表示负值激励,避免了因抛去负值激励而引起神经网络推理精度低的问题;电流反向模块在读出符号位电流时使能,配合编码方式实现二进制补码向十进制转换,在模拟域即完成输出电流的累加,减少了读出过程所需的模数转换次数,从而降低了读出系统的功耗与延时。基于上述两点本发明专利技术所述读出系统实现了对负值激励的更完善支持。激励的更完善支持。激励的更完善支持。

【技术实现步骤摘要】
一种支持负值激励的存算阵列输出电流读出方法及系统


[0001]本专利技术涉及一种支持负值激励的存算阵列输出电流读出方法及系统,属于神经网络算法硬件实现领域。

技术介绍

[0002]近年来,存算一体架构得到了人们的广泛关注与研究,其基本思想是通过将权重映射存储到存算阵列内,从而把一些简单但数据量巨大的逻辑计算功能放在存储器中完成,以减少存储器与处理器之间的数据传输量以及传输距离。
[0003]经典非易失性存算阵列的运作原理如图1所示,为了计算两个相乘矩阵将权重矩阵W的值以电导形式储存在存算阵列中,再将激励的值以电压形式输入到存算阵列的输入端,从存算阵列的输出端得到电流形式的运算结果,由读出系统对存算阵列的输出电流进行读出操作,完成存算一体化过程。存算一体架构也因其适合矩阵运算的特点,与神经网络算法非常契合,常被用做神经网络算法的硬件实现架构。
[0004]随着神经网络算法的发展,负数的输入(当前层的激励)和输出(传递至下一层的激励)在训练和推理中占据愈发重要的地位。神经网络算法的该种发展趋势在激活函数的应用中也有所体现:即越来越多的有负值输出的激活函数,如Tanh函数、Leaky_Relu函数等,被用于网络结构的构建。这是因为,当算法面对的问题更加复杂或算法被用于某些特性领域时,这些负值承载了部分关键的信息,而这部分信息对实现整个网络功能来说又是不可或缺的。
[0005]然而,受二进制表示负值在硬件域中难以实现等因素的制约,现有的存算阵列输出电流读出系统不能很好地支持负值激励。在面对可能出现的负值激励时,当前的读出系统主要有图2所示的两种处理方式。
[0006]如图2(a)所示,第一种处理方式为简单地换用无负值输出的激活函数,如Leaky_Relu函数替换为Relu函数,以确保在通过激活函数后,无负值激励传递到下一层。该种处理方式避免了负值激励问题的产生,但本质上只是抛弃了负值,并未解决对负值运算的需求问题。在面对某些应用于特定领域的神经网络算法时,采用该处理方式可能会造成网络训练效果差和推理精度低。从可解释性深度学习角度分析,这是因为简单地抛去负值激励造成了太多的信息丢失,而神经网络本身却需要该部分信息对网络参数进行更新。因此该种处理方式仅适用于小部分场景,具有相当大的局限性。
[0007]如图2(b)所示,第二种处理方式为将存算阵列的输出结果首先通过模数转换器件进行模数转换,然后在数字域而非模拟域对负值激励进行处理。该种处理方式存在的不足有:1、每一位数据都需要进行模数转换,而过多次数的模数转换会带来巨大的功耗及相当高的延时;2、数字域本身受到二进制限制,对负值的处理比较复杂,电路实现需要较多的逻辑单元,造成电路成本和面积提高,因此该种处理方式会严重影响电路的能耗比、算力等性能,且不适用于大规模神经网络的硬件实现场景。

技术实现思路

[0008]为了解决现有的存算阵列输出电流读出系统不能很好地支持负值激励,导致神经网络算法硬件实现时训练效果差、推理精度低、功耗高等问题,本专利技术提供了一种支持负值激励的存算阵列输出电流读出方法及系统。
[0009]本专利技术的第一个目的在于提供一种支持负值激励的存算阵列输出电流读出方法及系统,其特征在于,所述系统包括:补码编码模块、控制模块、电流反向模块、累加模块、激活模块、池化模块以及模数转换模块;
[0010]所述电流反向模块、累加模块、激活模块、池化模块以及模数转换模块依次连接;
[0011]所述控制模块用于提供控制信号;所述补码编码模块用于将原始激励转化成补码形式并输入到存算阵列;所述电流反向模块用于实现对存算阵列输出电流的反向;所述累加模块用于对电流进行逐位累加;所述激活模块用于硬件实现算法中的激活函数操作;所述池化模块用于硬件实现算法中的池化操作;所述模数转换模块用于模拟信号与数字信号的转换。可选的,所述补码编码模块产生的输入激励补码包含N位数值,其中包括1位符号位和N

1位数据位。
[0012]可选的,所述原始激励的补码输入存算阵列的过程包括:逐位进行输入,先输入数据位的最低位,由低到高依次输入各数据位,最后输入符号位。
[0013]可选的,所述控制模块提供的控制信号包括:电流反向模块的使能信号。
[0014]可选的,所述电流反向模块的使能信号控制所述电流反向模块是否工作,具体过程包括:
[0015]输入数据位时,不使能所述电流反向模块,所述电流反向模块不工作;
[0016]输入符号位时,使能电流反向模块,所述电流反向模块工作,用于反向符号位所对应的存算阵列输出电流。
[0017]可选的,所述系统的工作过程包括:
[0018]S1:原始激励通过补码编码模块后转化为补码形式激励,补码的码宽为N比特,包含1比特符号位和N

1比特数据位;
[0019]S2:补码形式激励逐位输入到存算阵列中进行计算:先输入数据位的最低位,由低到高依次输入各数据位,最后输入符号位;
[0020]S3:逐位处理存算阵列输出电流,在累加模块中按照由数据低位到数据高位再到符号位的顺序将输出电流进行累加;
[0021]对于N

1个数据位所对应的输出电流,不使能电流反向模块,输出电流不反向;
[0022]对于1个符号位所对应的输出电流,使能电流反向模块,输出电流反向后流入累加模块;
[0023]S4:所有数据位和符号位累加完成后,将累加值传递给后续的激活模块和池化模块,在激活和池化处理后得到该层网络的运算结果V_out;
[0024]S5:将V_out传递至模数转换模块,转换为数字码值后输出。输出结果如需传递至下层网络,重复上述过程。
[0025]可选的,所述输入激励补码为8位补码。
[0026]本专利技术第二个目的在于提供一种支持负值激励的存算阵列输出电流读出方法,其特征在于,所述方法基于上述的一种支持负值激励的存算阵列输出电流读出系统实现,所
述方法包括:
[0027]步骤一:原始激励通过补码编码模块后转化为补码形式激励,补码的码宽为N比特,包含1比特符号位和N

1比特数据位;
[0028]步骤二:补码形式激励逐位输入到存算阵列中进行计算:先输入数据位的最低位,由低到高依次输入各数据位,最后输入符号位;
[0029]步骤三:逐位处理存算阵列输出电流,在累加模块中按照由数据低位到数据高位再到符号位的顺序将输出电流进行累加;
[0030]对于N

1个数据位所对应的输出电流,不使能电流反向模块,输出电流不反向;
[0031]对于1个符号位所对应的输出电流,使能电流反向模块,输出电流反向后流入累加模块;
[0032]步骤四:所有数据位和符号位累加完成后,将累加值传递给后续的激活模块和池化模块,在激活和池化处理后得到该层网络的运算结果V_out;
[0033]步骤五:将V_out传递至模数转换模块,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持负值激励的存算阵列输出电流读出系统,其特征在于,所述系统包括:补码编码模块、控制模块、电流反向模块、累加模块、激活模块、池化模块以及模数转换模块;所述电流反向模块、累加模块、激活模块、池化模块以及模数转换模块依次连接;所述控制模块用于提供控制信号;所述补码编码模块用于将原始激励转化成补码形式并输入到存算阵列;所述电流反向模块用于实现对存算阵列输出电流的反向;所述累加模块用于对电流进行逐位累加;所述激活模块用于硬件实现算法中的激活函数操作;所述池化模块用于硬件实现算法中的池化操作;所述模数转换模块用于模拟信号与数字信号的转换。2.根据权利要求1所述的系统,其特征在于,所述补码编码模块产生的输入激励补码包含N位数值,其中包括1位符号位和N

1位数据位。3.根据权利要求2所述的系统,其特征在于,所述原始激励的补码输入存算阵列的过程包括:逐位进行输入,先输入数据位的最低位,由低到高依次输入各数据位,最后输入符号位。4.根据权利要求3所述的系统,其特征在于,所述控制模块提供的控制信号包括:电流反向模块的使能信号。5.根据权利要求4所述的系统,其特征在于,所述电流反向模块的使能信号控制所述电流反向模块是否工作,具体过程包括:输入数据位时,不使能所述电流反向模块,所述电流反向模块不工作;输入符号位时,使能电流反向模块,所述电流反向模块工作,用于反向符号位所对应的存算阵列输出电流。6.根据权利要求5所述的系统,其特征在于,所述系统的工作过程包括:S1:原始激励通过补码编码模块后转化为补码形式激励,补码的码宽为N比特,包含1比特符号位和N

1比特数据位;S2:补码形式激励逐位输入到存算阵列中进行计算:先输入数据位的最低位,由低到高依次输入各数据位,最后输入符号位;S3:逐位处理存算阵列输出电流,在累加模块中按照由数据低位到数据高位再到符号位的顺序将输出电流进行累加;对于N

1个数据位所对应的输出电流,不使能电流反向模块,输出电流不反向;对于1个符号位所对应的输出电流,使能电流反向模块,输出电流反向后流...

【专利技术属性】
技术研发人员:虞致国孙一钟啸宇刘彦航顾晓峰
申请(专利权)人:江南大学
类型:发明
国别省市:

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

1