一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种乘累加运算电路的制作方法

2021-12-03 23:31:00 来源:中国专利 TAG:


1.本发明涉及电路的技术领域,尤其涉及一种乘累加运算电路。


背景技术:

2.如今,人工神经网络在模式识别、自动控制、金融分析、生物医疗等领域都得到了广泛应用并取得了优异的表现。其中,卷积神经网络作为人工神经网络中应用最为广泛的一种网络,在图像处理方面的表现尤为出色。
3.然而随着任务的复杂度不断增加,神经网络的规模不断增大,网络中的参数量、计算量也越来越大,这也就意味着神经网络映射到硬件上所消耗的资源和功耗日益增加。其中,卷积神经网络中最核心,也是占比最多的运算为乘累加运算,因而实现一个低功耗卷积神经网络的关键在于低功耗乘累加运算单元的设计。
4.随机计算是一种以随机数为操作数的特殊计算范式,具有以低功耗、低硬件代价使用简单门电路完成算术运算的特征。因为卷积神经网络需要大量的参数以及算数运算,而随机计算恰好可以用较小的硬件代价和功耗完成算数运算,因而将随机计算应用于卷积神经网络中可以大大提高卷积神经网络部署于硬件上的能耗,降低硬件成本。
5.然而,随机计算电路结构中存在着转换模块占比过大的问题,转换模块对数据进行处理和信号转换,将会造成大量的能耗问题,致使计算精度变差。因此,如何减小随机计算电路结构中乘累加单元的能耗,提升计算效率和精度,是目前亟需解决的问题。


技术实现要素:

6.本发明的目的是提供一种乘累加运算电路,用以解决现有技术中随机计算中结构的缺陷,实现减小随机计算电路结构中的能耗。
7.本发明提供一种乘累加运算电路,包括:图像传感器、模拟

随机数转换器、以及随机计算模块;所述图像传感器,用于接收图像的像素信息,并将所述像素信息转换成模拟电压;所述模拟

随机数转换器,与所述图像传感器连接,用于从所述图像传感器获取所述模拟电压,将所述模拟电压译码生成随机数;所述随机计算模块,与所述模拟

随机数转换器连接,用于根据所述随机数执行神经网络中的卷积层的乘累加运算。
8.根据本发明提供的一种乘累加运算电路,还包括:存储器;所述存储器,与所述模拟

随机数转换器连接,用于将所述随机数进行存储。
9.根据本发明提供的一种乘累加运算电路,所述随机计算模块还用于:将乘累加运算结果作为模拟信号,输入至所述模拟

随机数转换器。
10.根据本发明提供的一种乘累加运算电路,所述模拟

随机数转换器包括灵敏放大器和选择器;所述灵敏放大器的输入端与所述图像传感器的输出端连接,所述选择器输入端与所述灵敏放大器的输出端连接,且所述选择器的输出端与所述随机计算模块连接;所述灵敏放大器,用于通过正相输入端输入所述图像传感器输出的模拟电压,通过反相输入端输入参考电压,对所述模拟电压和所述参考电压进行比较,并输出比较结果;所述选择
器,用于根据所述比较结果输出对应的随机数,不同的比较结果对应不同随机数。
11.根据本发明提供的一种乘累加运算电路,所述随机计算模块具体用于:基于神经网络的权重和所述随机数,进行多次与门乘法逻辑运算,并输出运算结果;将所述运算结果进行累加,并输出累加结果。
12.根据本发明提供的一种乘累加运算电路,所述随机计算模块包括正数电路和负数电路;所述正数电路,用于获取所有正数乘累加结果的输出电压;所述负数电路,用于获取所有负数乘累加结果的输出电压;将所述正数电路和负数电路的输出电压进行累加,输出累加后的总输出电压。
13.根据本发明提供的一种乘累加运算电路,所述正数电路包括多个相互并联的正数充电单元;所述正数充电单元包括:与门乘法器、电容和开关;所述与门乘法器的输入端输入所述随机数、神经网络的权重以及sign信号,输出端与所述电容串联;所述开关的一端连接于其中一个所述正数充电单元的所述与门乘法器和所述电容之间,所述开关的另一端连接于另一个所述正数充电单元的所述与门乘法器和所述电容之间。
14.根据本发明提供的一种乘累加运算电路,所述负数电路包括多个相互并联的负数充电单元;所述负数充电单元包括:与非门乘法器、电容和开关;所述与非门乘法器的输入端为所述随机数、神经网络的权重以及sign信号,输出端与所述电容串联;所述开关的一端连接于其中一个所述负数充电单元的所述与非门乘法器和所述电容之间,所述开关的另一端连接于另一个所述负数充电单元的所述与非门乘法器和所述电容之间。
15.根据本发明提供的一种乘累加运算电路,所述正数电路的输出电压的计算公式为:
[0016][0017]
其中,vp为正数输出电压,sp为所有正数乘累加结果的绝对值,n
×
m为电容总量,vdd为电源电压;
[0018]
所述负数电路的输出电压的计算公式为:
[0019][0020]
其中,vn为负数输出电压,sn为负数部分乘累加结果的绝对值;n
×
m为电容总量,vdd为电源电压;
[0021]
所述总输出电压的计算公式为:
[0022][0023]
本发明提供的一种乘累加运算电路,在现有的随机计算的结构的基础上进行了改进,去除了二进制

随机数转换器、模数转换器以及随机数

二进制转换器,直接将图像传感器输出的模拟电压进行随机数转换,转换为随机数并进行存储。改进后的装置省略了模拟信号与数字信号之间的相互转换以及数字信号和随机数之间的相互转换过程,仅留下模拟电压和随机数两种数据表达形式,使模拟电压直接转换为随机数,减少了大量的数据转换过程,因而减少了进行数据转换模块的能耗,从而减少整个系统的能耗,提升整个系统的计
算效率和计算精度。
附图说明
[0024]
图1是现有技术中随机计算装置的工作原理图;
[0025]
图2是本发明提供的乘累加运算电路的结构示意图;
[0026]
图3是本发明提供的乘累加运算电路的工作原理图;
[0027]
图4是本发明提供的乘累加运算电路中模拟

随机数转换器的结构示意图;
[0028]
图5是本发明提供的乘累加运算电路中随机计算模块的正数电路示意图;
[0029]
图6是本发明提供的乘累加运算电路中随机计算模块的负数电路示意图。
具体实施方式
[0030]
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031]
现有技术中的随机计算结构的步骤包括:图像传感器、模数转换器、存储器、二进制

随机数转换器、随机计算模块以及随机数

二进制转换器六个模块。
[0032]
如图1所示,该结构的工作过程为:首先,图像传感器将图片中的像素信息转化为相应电平的模拟电压,该模拟电压经过模拟

数字转换器转化为一定精度的数字电压信号,并存储在存储器中以供后续处理。接下来,二进制

随机数转换器从存储器阵列中读取二进制输入值并将其转化为随机数,由随机计算逻辑执行卷积神经网络中的乘累加运算。最后,运算结果经过随机数

二进制转换器重新转换为二进制数,存入存储器阵列,并作为第一层网络的部分和或者下一层网络的输入进行再次计算。
[0033]
在现有技术的随机计算结构中,随机计算模块占比较小,数据转换模块的占比较大,数据转换模块包括模数转换器、二进制

随机数转换器以及随机数

二进制转换器,因此数据转换模块占据了大量的能耗。
[0034]
下面结合图2

图6描述本发明的乘累加运算电路。
[0035]
如图2所示,本发明实施例提供一种乘累加运算电路,包括:图像传感器1、模拟

随机数转换器2、以及随机计算模块3;
[0036]
所述图像传感器1,用于接收图像的像素信息,并将所述像素信息转换成模拟电压;
[0037]
所述模拟

随机数转换器2,与所述图像传感器1连接,用于从所述图像传感器1获取所述模拟电压,将所述模拟电压译码生成随机数;
[0038]
所述随机计算模块3,与所述模拟

随机数转换器2连接,用于根据所述随机数执行神经网络中的卷积层的乘累加运算。
[0039]
下面对本实施例进行详细说明。
[0040]
如图3所示,本发明提供的乘累加运算电路的工作过程为:首先接收图像信息,通过图像传感器将图片中的像素信息转化为相应电平的模拟电压;模拟电压经过模拟

随机数转换器转换为随机数信号,存储在存储器中;随机计算模块将存储器中的随机数取出,作
为输入进行计算,得到的计算结果作为第一层网络的部分或者作为输入再次进行计算。
[0041]
具体地,图像传感器是利用光电器件的光电转换功能将感光面上的光像转换为与光像成相应比例关系的电信号,图像传感器是将其受光面上的光像,分成许多小单元,将其转换成可用的电信号的一种功能器件。因此,图像传感器是一种将光学图像转换成电子信号的设备,广泛地应用在数码相机和其他电子光学设备中。
[0042]
模拟

随机数转换器将图像传感器输出的模拟信号直接转换为随机数,即无需对模拟信号进行模数转换,同样也省略了数字信号的二进制和随机数之间的转换。
[0043]
模拟

随机数转换器直接将模拟信号转换为随机数,节省了大量的数据处理和信号转换的装置,因此对于整个随机计算模块的能耗有着大量的节省。
[0044]
随机计算模块调取出存储器中的随机数进行计算,需要说明的是,本实施例中的随机计算模块的计算方法不同于传统的纯数字的随机计算,而是进行混合计算,乘法采用数字方法,加法采用模拟方法,即把乘法的乘积结果相加,得到最终的输出信号。最终的输出信号为模拟量,该模拟量可直接作为模拟

随机数转换器的输入,进行下一轮的乘累加运算。
[0045]
本实施例在现有的随机计算的结构的基础上,在现有的随机计算的结构的基础上进行了改进,去除了二进制

随机数转换器、模数转换器以及随机数

二进制转换器,直接将图像传感器输出的模拟信号进行随机数转换,转换为随机数并进行存储。改进后的装置省略了模拟信号与数字信号之间的相互转换以及数字信号和随机数之间的相互转换过程,仅留下模拟量和随机数两种数据表达形式,使模拟信号和随机数之间直接进行相互转换,减少了大量的数据转换过程,因而减少了进行数据转换模块的能耗,从而减少整个系统的能耗,提升整个系统的计算效率。
[0046]
在一种优选的实施方式中,还包括:存储器;所述存储器,与所述模拟

随机数转换器连接,用于将所述随机数编码进行存储。
[0047]
其中,存储器可设置为存储器阵列,存储器阵列由大量的存储单元构成,多为静态随机存取存储器阵列(sram)。其中,静态是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。sram需要不断刷新电路即能保存它内部存储的数据,因此具有较高的性能。如图1和图3所示,本发明实施例中的存储器与现有技术的存储器不同之处在于,现有技术中的存储器是对数字量二进制信号进行存储,而本发明实施例中的存储器是对随机数进行存储。
[0048]
在一种优选的实施方式中,所述随机计算模块还用于:将乘累加运算结果作为模拟信号,输入至所述模拟

随机数转换器。
[0049]
具体地,由于卷积神经网络是复杂的层结构网络,因此需要进行多次随机计算,计算得出每一层的卷积结果。每次卷积计算的结果会作为输出特征图像的一个点,而特征图像在进行卷积过程后,会输出一幅新的特征图像,因此这便需要卷积核与特征图像进行多次卷积计算。
[0050]
在一种优选的实施方式中,如图4所示,所述模拟

随机数转换器包括灵敏放大器和选择器;
[0051]
所述灵敏放大器的输入端与所述图像传感器的输出端连接,所述选择器输入端与所述灵敏放大器的输出端连接,且所述选择器的输出端与所述随机计算模块连接;
[0052]
所述灵敏放大器,用于通过正相输入端输入所述图像传感器输出的模拟电压,通过反相输入端输入参考电压,对所述模拟电压和参考电压进行比较,并输出比较结果;
[0053]
所述选择器,用于根据所述比较结果输出对应的随机数,不同的比较结果对应不同随机数。
[0054]
下面对本实施例进行具体说明。
[0055]
灵敏放大器可设置为三个,分别为灵敏放大器sa1、灵敏放大器sa2和灵敏放大器sa0;输出信号包括y0、y1和y2,y0、y1和y2的不同输出编码组合可反应出灵敏放大器sa1、灵敏放大器sa2和灵敏放大器sa0的工作状态。
[0056]
灵敏放大器的输入为图像传感器输出的模拟电压信号,分别从输入端口1、2和3输入,以及三个不同的参考电压,分别从输入端口4、5和6输入。选用vref0、vref1和vref2为三个参考电压,分别作为灵敏放大器sa0、灵敏放大器sa1和灵敏放大器sa2和的一个输入端,分别从输入端口4、5和6输入。其中vref0、vref1和vref2与电源电压vdd的关系依次为:vdd/4,vdd/2以及3vdd/4。灵敏放大器sa0的输出端与y0相对应;灵敏放大器sa1和灵敏放大器sa2的输出端分别与选择器的输入端连接,两个选择器的输出端分别对应输出信号y1和y2。并且y0和y1的输出结果分别和灵敏放大器sa1和灵敏放大器sa2连接,作为灵敏放大器sa1和灵敏放大器sa2的供电电源。两个选择器的作用相当于一个双掷开关,使输出分别流向不同的分支。
[0057]
如下表所示,模拟

随机数转换器的输入与输出结果对比:
[0058]
指数模拟输入输出00

vdd/40001vdd/4

vdd/20012vdd/2

3vdd/401133vdd/4

vdd111
[0059]
由表中数据可以看出,当模拟信号和电源电压vdd处于不同的关系时,输出的结果有所不同。由表中数据可知,当y0的输出值为0时,y1和y2均为0,此时的电压处于0

vdd/4之间。当y1的输出值为0,y2的输出值也必定是0。
[0060]
也就是说,图像传感器输出的电压信号小于vdd/4时,说明此时的模拟电压信号较弱,便可通过y0的输出信号控制灵敏放大器和选择器的工作状态,使灵敏放大器sa1和灵敏放大器sa2停止工作,y1和y2通过选择器直接输出0。
[0061]
当图像传感器输出的电压信号为vdd/4

vdd/2时,y0的输出信号为1,y1的输出信号为0。此时可能是灵敏放大器sa1和灵敏放大器sa0同时工作,但灵敏放大器sa2不工作。
[0062]
当图像传感器输出的电压信号大于vdd3/4时,此时y1和y0的输出才均为1,此时灵敏放大器sa0、灵敏放大器sa1和灵敏放大器sa2才会同时工作。
[0063]
本发明实施例通过设置灵敏放大器和选择器,当图像传感器输出的模拟电压较小时,可以减小模拟

随机数转换器内器件的工作状态,减小了灵敏放大器产生的功耗,从而提升了模拟

随机数转换器的整体能效。
[0064]
在一种优选的实施方式中,如图5和图6所示,所述随机计算模块具体用于:
[0065]
基于神经网络的权重和所述随机数,进行多次与门乘法逻辑运算,并输出运算结果;将所述运算结果进行累加,并输出累加结果。
[0066]
所述随机计算模块包括正数电路和负数电路;
[0067]
所述正数电路,用于获取所有正数乘累加结果的输出电压;
[0068]
所述负数电路,用于获取所有负数乘累加结果的输出电压;
[0069]
将所述正数电路和负数电路的输出电压进行累加,输出累加后的总输出电压。
[0070]
进一步地,如图5所示,所述正数电路包括多个相互并联的正数充电单元;
[0071]
所述正数充电单元包括:与门乘法器、电容和开关;
[0072]
所述与门乘法器的输入端输入所述随机数、神经网络的权重以及sign信号,输出端与所述电容串联;
[0073]
所述开关的一端连接于其中一个所述正数充电单元的所述与门乘法器和所述电容之间,所述开关的另一端连接于另一个所述正数充电单元的所述与门乘法器和所述电容之间。
[0074]
进一步地,如图6所示,所述负数电路包括多个相互并联的负数充电单元;
[0075]
所述负数充电单元包括:与非门乘法器、电容和开关;
[0076]
所述与非门乘法器的输入端为所述随机数、神经网络的权重以及sign信号,输出端与所述电容串联;
[0077]
所述开关的一端连接于其中一个所述负数充电单元的所述与非门乘法器和所述电容之间,所述开关的另一端连接于另一个所述负数充电单元的所述与非门乘法器和所述电容之间。
[0078]
所述正数电路的输出电压的计算公式为:
[0079][0080]
其中,vp为正数输出电压,sp为所有正数乘累加结果的绝对值,n
×
m为电容总量,vdd为电源电压;
[0081]
具体地,与门乘法器的三个输入端1、2和3分别输入in
i
[j]、w
i
[j]以及sign
i
,in
i
[j]和w
i
[j]分别代表输入随机数和神经网络的权重,输出端输出三个输入信号的逻辑运算结果。当且仅当与门乘法器的sign
i
为1(表示正数)时,以及且in
i
[j]与w
i
[j]均为高电平时,才会对电容进行充电,与门乘法器执行与门乘法的操作,得到的乘积给入电容阵列,通过电容电荷的累加进行模拟加和运算。当计算结束后,可将开关全部闭合,从而切断与门乘法器和电容之间的电流,使整个电路重新复位,以便于下次进行计算。
[0082]
所述负数电路的输出电压的计算公式为:
[0083][0084]
其中,vn为负数输出电压,sn为负数部分乘累加结果的绝对值;n
×
m为电容总量,vdd为电源电压;
[0085]
具体地,与非门乘法器的三个输入端4、5和6分别输入in
i
[j]、w
i
[j]以及sign
i
。in
i
[j]和w
i
[j]分别代表输入随机数和神经网络的权重,输出端输出三个输入信号的逻辑运算结果。当且仅当与非门乘法器的输入端的sign
i
为0,且in
i
[j]和w
i
[j]均为1时,电容不会充电到电源电压。即当负数乘积绝对值为1,则不给电容充电,反之,则给电容充电,设负数部分乘累加结果的绝对值为sn,则有sn个电容不会被充电,其余(n
×
m

sn)个电容都会被充电
至vdd。当计算结束后,可将开关全部闭合,从而切断与门乘法器和电容之间的电流,使整个电路重新复位,以便于下次进行计算。
[0086]
所述总输出电压的计算公式为:
[0087][0088]
根据所述输出电压判断乘累加结果,得出所述输出电压与乘累加模拟量的对应关系。电压的大小与乘累加和的模拟量为正比关系,当v=1/2vdd时,当累加结果为0时,即正数绝对值之和等于负数绝对值之和。若v>1/2vdd,则乘累加结果为正;若v<1/2vdd,则乘累加结果为负。
[0089]
本实施例通过正数电路和负数电路,对随机数进行了混合运算,通过数字运算和模拟运算相结合,得出了电压与混合计算后的模拟量的关系。
[0090]
结合以下表格,本发明提出的结构与现有技术中的结构模块的能耗对比:
[0091][0092]
通过上述表格能够看出,本发明提供的一种乘累加运算电路,相对于现有技术,省去了模数转换器和随机数

数字转换器两个模块的能量转化的消耗,并且模拟

随机数转换器的能耗也远远小于数字

随机数传感器的能耗,混合信号随机计算模块的能耗也小于随机计算逻辑模块的能耗。
[0093]
虽然,上文中已经用一般性说明及具体实施方案对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献