CN110991624A - 一种变脉宽输入电荷积累型忆阻神经网络电路 - Google Patents
一种变脉宽输入电荷积累型忆阻神经网络电路 Download PDFInfo
- Publication number
- CN110991624A CN110991624A CN201911423140.9A CN201911423140A CN110991624A CN 110991624 A CN110991624 A CN 110991624A CN 201911423140 A CN201911423140 A CN 201911423140A CN 110991624 A CN110991624 A CN 110991624A
- Authority
- CN
- China
- Prior art keywords
- circuit
- neural network
- input
- pulse width
- charge accumulation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
本发明公开一种变脉宽输入电荷积累型忆阻神经网络电路,包括脉宽调制电路,极性控制电路,编程控制电路,忆阻器阵列,电荷积累电路,激活函数电路,比较控制与模拟权重更新电路。本发明将输入的数字逻辑值通过脉宽调制电路变换为脉宽调制信号,从而有利于神经网络精度的提高;将脉宽调制电路和极性控制电路相结合,以及利用电荷积累电路的同向或反向积分,使得只使用单一的忆阻器阵列即可实现正,零或负的权重,并能够显著地节省了芯片面积;此外,忆阻器阵列的权重编程和电荷积累电容的复位可以同步进行,有利于硬件电路的运算速度的提升。
Description
技术领域
本发明涉及集成电路技术领域,具体涉及一种变脉宽输入电荷积累型忆阻神经网络电路。
背景技术
过去十几年来,热点技术之一的非易失性存储技术受到学术界和工业界的双重推动,取得了非常大的进步,特别是以忆阻器为代表的阻性随机存储器。其突出特征是可以三维高密度集成,超低功耗,并行处理等,从而成为大数据人工智能硬件电路实现的最佳候选器件之一。忆阻器在存储器,逻辑电路,模拟电路,神经形态等各方面都有广泛的应用,其中基于忆阻神经网络的神经形态应用研究则是研究热点中的热点,也是人工智能硬件实现的关键。
传统的电压模忆阻神经网络的特征是输入电压Vj的幅度可变,通过忆阻器阵列后实现电流积累,即对忆阻器第j列来说,电流积累的输出Ij等于其中Mij为第i行第j列的忆阻器阻值。而作为无源元件,忆阻器的阻值Mij为恒大于零的值。为了获得负的权重值,往往需要增加一个同等规模的辅助忆阻器阵列,利用两个忆阻器阵列的信号运算获得负的权重值,当神经网络的规模较大的时候,辅助忆阻器阵列显著地增加了芯片面积。其次,对忆阻器阵列的编程一旦完成后,就需要在下一次编程之前保持稳定,从而要求输入电压信号Vj的幅度小于忆阻器的阈值电压。但不幸的是,对非二进制神经网络,系统的输入Vj是多值或模拟连续信号输入,要使得所有的输入值低于忆阻器的阈值电压,就意味着各个输入值之间的电压差变得非常小,忆阻器的阈值电压越低,意味着最大输入电压Vjmax越小,相邻输入值Vj和Vj+1的电压差△V越小,硬件实现越困难,以至于无法区分相邻的输入值。在这种情况下,即使软件模拟的神经网络精度较高,也会由于硬件精度较低或无法实现,而使得最终的硬件神经网络的精度大打折扣。为此,在输入值域较大的忆阻神经网络中,亟需一种新的方法来解决以上问题,从而易于区分输入的多态值和便于硬件电路实现。
发明内容
本发明所要解决的是传统的电压模忆阻神经网络电路在多态输入值下,硬件电路实现困难,相邻的输入值难以区分的问题,提供一种变脉宽输入电荷积累型忆阻神经网络电路。
为解决上述问题,本发明是通过以下技术方案实现的:
一种变脉宽输入电荷积累型忆阻神经网络电路,包括比较控制与模拟权重更新电路和至少一层神经网络电路。
每一层神经网络电路均包括可调时钟源、脉宽调制电路、极性控制电路、编程控制电路、忆阻器阵列、电荷积累电路和激活函数电路。可调时钟源的输出端连接脉宽调制电路的时钟输入端;脉宽调制电路的ms个输入端形成本层神经网络电路的ms个输入端,脉宽调制电路的ms个输出端连接极性控制电路的ms个第一输入端;极性控制电路的ms个输出端连接编程控制电路的ms个第一输入端;编程控制电路的ms个输出端连接忆阻器阵列的ms个输入端。忆阻器阵列的ns个输出端连接电荷积累电路的ns个第一输入端,电荷积累电路的ns个输出端连接激活函数电路的ns个输入端,激活函数电路的ns个输出端形成本层神经网络电路的ns个输出端。
第一层神经网络电路的脉宽调制电路的输入端形成整个变脉宽输入电荷积累型忆阻神经网络电路的总的输入端;前一层神经网络电路的激活函数电路的输出端连接后一层神经网络电路的脉宽调制电路的输入端;最后一层神经网络电路的激活函数电路的输出端形成整个变脉宽输入电荷积累型忆阻神经网络电路的总的输出端。
比较控制与模拟权重更新电路的TAR信号输入端个数与最后一层神经网络电路的输出端数量相同,其与给定的目标值信号相连。比较控制与模拟权重更新电路的Z信号输出端个数为其分别连接各层神经网络电路的极性控制电路的ms个第二输入端。比较控制与模拟权重更新电路的P信号输出端个数为其分别连接各层神经网络电路的编程控制电路的ms个第二输入端,比较控制与模拟权重更新电路的SIN信号输出端个数为其分别连接各层神经网络电路的编程控制电路的ms个第三输入端,比较控制与模拟权重更新电路的SWP信号输出端个数为其分别连接各层神经网络电路的编程控制电路的ms个第四输入端。比较控制与模拟权重更新电路的S信号输出端个数为其分别连接各层神经网络电路的忆阻器阵列的ms×ns个控制端。比较控制与模拟权重更新电路的SGF信号输出端个数为其分别连接各层神经网络电路的电荷积累电路的ns个第二输入端,比较控制与模拟权重更新电路的SGB信号输出端个数为其分别连接各层神经网络电路的电荷积累电路的ns个第三输入端。比较控制与模拟权重更新电路的Y信号输入端个数为其分别连接各层神经网络电路的激活函数电路的ns个输出端。
其中ms为第s层神经网络电路的输入端数目;ns为第s层神经网络电路的输出端的数目,s=1,2,…,S,S为神经网络的层数。
上述方案中,所有层神经网络电路共用同一个可调时钟源。
上述方案中,第一层神经网络电路的脉宽调制电路为数控脉宽调制电路,第二层至最后一层的脉宽调制电路为模拟脉宽调制电路。
上述方案中,所述极性控制电路由ms路极性控制单元组成;其中每路极性控制单元均包括PMOS管TJpi,NMOS管TJni,电阻RJi0-RJi2,以及放大器A3i;PMOS管TJpi的漏极和NMOS管TJni的漏极相连后,形成极性控制电路的第i个第一输入端;PMOS管TJpi的栅极和NMOS管TJni的栅极相连后,形成极性控制电路的第i个第二输入端;NMOS管TJni的源极经由电阻RJi1连接放大器A3i的反向输入端;PMOS管TJpi的源极分为两路,一路经由电阻RJi2连接放大器A3i的反向输入端,另一路连接放大器A3i的输出端;电阻RJi0的一端连接放大器A3i的同向输入端,另一端接地;放大器A3i的输出端形成极性控制电路的第i个输出端;其中i=1,2,…,ms,ms为第s层神经网络电路的输入端数目。
上述方案中,所述编程控制电路由ms路编程控制单元组成;其中每路编程控制单元均包括NMOS管TBi、TPi;NMOS管TBi的漏极形成编程控制电路的第i个第一输入端;NMOS管TPi的漏极形成编程控制电路的第i个第二输入端;NMOS管TBi的源极和NMOS管TPi的源极相连后,形成编程控制电路的第i个输出端;NMOS管TBi的栅极形成编程控制电路的第i个第三输入端;NMOS管TPi的栅极形成编程控制电路的第i个第四输入端;其中i=1,2,…,ms,ms为第s层神经网络电路的输入端数目。
上述方案中,所述电荷积累电路包括ns路电荷积累单元;每路电荷积累单元均包括NMOS管TGFj、TGBj,放大器A1j、A2j,以及电容Cj;NMOS管TGFj的漏极和放大器A1j的反向输入端相连后,形成电荷积累电路的第j个第一输入端;NMOS管TGFj的栅极形成电荷积累电路的第j个第二输入端;电容Cj的一端连接放大器A1j的反向输入端,另一端连接放大器A1j的输出端;放大器A1j的输出端、放大器A2j的同向输入端和NMOS管TGBj的漏极相连;NMOS管TGBj的栅极形成电荷积累电路的第j个第三输入端;放大器A2j的反向输入端和输出端相连后,形成电荷积累电路的第j个输出端;放大器A1j的同向输入端、NMOS管TGFj的源极和NMOS管TGBj的源极接地;其中j=1,2,…,ns,ns为第s层神经网络电路的输出端的数目。
上述方案中,所述激活函数电路由ns路激活函数单元组成;每路激活函数单元的输入端形成激活函数电路的第j个输入端,每路激活函数单元的输出端形成激活函数电路的第j个输出端;其中j=1,2,…,ns,ns为第s层神经网络电路的输出端的数目。
本发明将输入的数字逻辑值通过脉宽调制电路变换为脉宽调制信号,这种变脉宽输入特别适合离散多值或模拟连续输入的情况,非常易于区分相邻输入值,并且对输入的值域大小没有任何限制,基准脉宽还可以通过调节可调时钟源的频率进行控制,这些都有利于神经网络精度的提高,解决了传统的电压模忆阻神经网络电路的输入值域受限于忆阻器阈值电压的问题。脉宽调制电路和极性控制电路相结合,以及利用电荷积累电路的同向或反向积分,使得只使用单一的忆阻器阵列即可实现正,零或负的权重,相比传统的电压模忆阻神经网络电路的两个忆阻器阵列,这一方法显著地节省了芯片面积。而且忆阻器阵列的权重编程和电荷积累电容的复位可以同步进行,有利于硬件电路的运算速度的提升。
与现有技术相比,本发明具有如下特点:
1.本发明提出的电路可以根据神经网络的输入值的大小将其变换为脉宽受输入值大小控制的变脉宽信号。这种变脉宽输入特别适合离散多值或模拟连续输入的情况,非常易于区分相邻输入值,并且对输入的值域大小没有任何限制,基准脉宽还可以通过调节可调时钟源的频率进行控制,这些都有利于神经网络精度的提高。而传统的电压模忆阻神经网络电路的输入值域受限于忆阻器阈值电压,输入值域越大,则相邻输入值越难区分,导致神经网络的精度越低。
2.本发明通过脉宽调制电路和极性控制电路的变换,将其输入变为脉宽与输入大小成正比的信号,其信号的极性则取决于目标权重的符号。并将忆阻器阵列的列输出通过电容进行同向积分或反向积分,电容上的电荷积累值即忆阻器阵列的矢量矩阵乘法结果。这一方法非常容易地在忆阻器阵列上实现正,零或负的权重。无需像传统的电压模忆阻神经网络电路那样通常需要两个忆阻器阵列。这一方法仅需一个忆阻器阵列。
3.忆阻器阵列的权重编程和积累电容复位可以同步进行,有利于硬件电路的运算速度的提升。
附图说明
图1为一种变脉宽输入电荷积累型忆阻神经网络电路的原理图。
图2为1M1T结构忆阻器阵列原理图。
图3为忆阻神经网络电路第k列的前向信号计算等效电路图。
图4为电路运行流程图。
图5为关键节点的电压波形示意图。
具体实施方式
本发明实际上可以适合任意深度(即任意层数)的忆阻神经网络,设计之初,会给定输入端的个数和输出端的个数,但忆阻神经网络的层数可以在设计之初直接给定,也可以在设计时通过性能优化进行确定。实际应用中神经网络的输入端数目m的大小、输出端数目n的大小、神经网络的层数和比较控制与模拟权重更新电路中所运行的权重更新的算法等取决于具体的应用场景需要。例如对3×3二进制图像进行简单的3类模式识别,采用10个输入3个输出的单层忆阻神经网络即可,而对MNIST手写数字识别库的手写数字识别通常需要784个输入10个输出的单层或多层忆阻神经网络;而对Yale人脸识别数据库的人脸图像进行识别则通常需要1024个输入15个输出的多层忆阻神经网络。但是,基于多层神经网络的层与层的相似性,本实施例仅通过单层神经网络描述本发明的特征。
虽然本发明适合任意深度的忆阻神经网络电路,但为方便描述,本实施例以图1所示的单层忆阻神经网络电路为例进行说明,即一种变脉宽输入电荷积累型忆阻神经网络电路,包括可调时钟源、脉宽调制电路、极性控制电路、编程控制电路、忆阻器阵列、电荷积累电路、激活函数电路、以及比较控制与模拟权重更新电路。
所述忆阻器阵列的端口包括输入信号XC1,XC2,…,XCm,S11,…,Smn,输出信号YC1,YC2,…,YCn。输入信号XC1,XC2,…,XCm为编程控制电路的输出信号。输入信号S11,…,Smn为比较控制与模拟权重更新电路的输出信号。输出信号YC1,…,YCn为电荷积累电路的输入信号。以忆阻器阵列的第n列电路为例,忆阻器阵列的输出YCn和电荷积累电路的TGFn的漏极、放大器A1n的反向输入端以及Cn的一端相连。
忆阻器阵列的大小可以根据给定的输入信号的个数、输出信号的个数和层数进行选择。当给定的输入信号为m个,输出信号为n个时,由于本实施例为单层忆阻神经网络,因此所选用的忆阻器阵列大小为m×n。所选用的忆阻器阵列可以采用1M1T结构、2M1R结构或4M桥式结构等,但在本实施中,忆阻器阵列为如图2所示的1M1T结构,其包括忆阻器M11,…,Mmn,NMOS管TC11,…,TCmn。其中忆阻阵列的输入信号XC1,XC2,…,XCm为编程控制电路的输出;输出信号YC1,YC2,…,YCn为电荷积累电路的输入;NMOS管TC11,…,TCmn的栅极分别连接到比较控制与模拟权重更新电路的S11,…,Smn。以第m行第n列的电路为例,忆阻器Mmn的正极连接忆阻器阵列输入信号XCm,Mmn负极连接NMOS管TCmn的漏极;NMOS管TCmn的栅极连接Smn,NMOS管TCmn的源极连接输出信号YCn。
所述脉宽调制电路的输入端为变脉宽输入电荷积累型忆阻神经网络电路的信号输入端,其输入信号有m个,分别为X1,X2,…,Xm,脉宽调制电路的输出为XA1,XA2,…,XAm,输出XA1,XA2,…,XAm的脉宽宽度分别和输入X1,X2,…,Xm的幅度大小成正比。脉宽调制电路的输出接极性控制电路的输入端。
所述可调时钟源的输出CLK连接脉宽调制电路输入端。
所述极性控制电路包括PMOS管TJp1,TJp2,…,TJpm,NMOS管TJn1,TJn2,…,TJnm,电阻RJ10,RJ20,…,RJm0,RJ11,RJ21,…,RJm1,RJ12,RJ22,…,RJm2,及放大器A31,A32,…,A3m。其中每一对TJpm、TJnm构成一个极性控制开关,每一组RJm0、RJm1、RJm2及放大器A3m构成一个反向比例运算放大器。以第m行电路为例,脉宽调制电路的输出信号XAm连接PMOS管TJpm的漏极和NMOS管TJnm的漏极;比较控制与模拟权重更新电路的输出信号Zm连接到极性控制电路的PMOS管TJpm的栅极以及NMOS管TJnm的栅极;NMOS管TJnm的源极连接电阻RJm1的一端;电阻RJm1的另一端与放大器A3m的反向输入端及电阻RJm2的一端相连接;电阻RJm2的另一端与PMOS管TJpm的源极及放大器A3m的输出相连接;放大器A3m的同向输入端连接电阻RJm0的一端,电阻RJm0的另一端接地;反向比例运算放大器A3m的输出XBm即为极性控制电路的输出。极性控制电路的输出XB1,XB2,…,XBm为编程控制电路的输入。
所述编程控制电路包括NMOS管TB1,TB2,…,TBm,TP1,TP2,…,TPm。其中NMOS管TB1,…,TBm的栅极分别连接到比较控制与模拟权重更新电路的输出信号SIN1,…,SINm;极性控制电路的输出XB1,XB2,…,XBm即为编程控制电路的输入。NMOS管TP1,…,TPm的栅极分别连接到比较控制与模拟权重更新电路的输出信号SWP1,…,SWPm;NMOS管TP1,…,TPm的漏极分别连接到比较控制与模拟权重更新电路的输出编程脉冲信号端P1,…,Pm。编程控制电路的输出信号XC1,…,XCm为忆阻器阵列的输入信号。以第m行电路为例,极性控制电路的输出XBm连接编程控制电路的NMOS管TBm的漏极;NMOS管TBm的源极与NMOS管Tpm的源极连接到忆阻器阵列的输入端XCm。
所述电荷积累电路包括ns路电荷积累单元;每路电荷积累单元均包括NMOS管TGFj、TGBj,放大器A1j、A2j,以及电容Cj;NMOS管TGFj的漏极和放大器A1j的反向输入端相连后,形成电荷积累电路的第j个第一输入端;NMOS管TGFj的栅极形成电荷积累电路的第j个第二输入端;电容Cj的一端连接放大器A1j的反向输入端,另一端连接放大器A1j的输出端;放大器A1j的输出端、放大器A2j的同向输入端和NMOS管TGBj的漏极相连;NMOS管TGBj的栅极形成电荷积累电路的第j个第三输入端;放大器A2j的反向输入端和输出端相连后,形成电荷积累电路的第j个输出端;放大器A1j的同向输入端、NMOS管TGFj的源极和NMOS管TGBj的源极接地;其中j=1,2,…,ns,ns为第s层神经网络电路的输出端的数目。
所述激活函数电路由激活函数f1(x),…,fn(x)构成,其中电荷积累电路的输出信号Yf1,Yf2,…,Yfn即为其输入信号,其输出信号Y1,Y2,…,Yn连接到比较控制与模拟权重更新电路的输入,输出信号Y1,Y2,…,Yn同时也是变脉宽输入电荷积累忆阻神经网络电路的输出。
所述比较控制与模拟权重更新电路包括输入信号Y1,Y2,…,Yn,TAR1,TAR2,…,TARn;输出信号Z1,Z2,…,Zm,P1,P2,…,Pm,P1,SWP1,…,SWPm,S11,…,Smn,SGF1,…,SGFn,SIN1,…,SINm,SGB1,…,SGBn。其中输入信号TAR1,TAR2,…,TARn为变脉宽输入电荷积累型忆阻神经网络电路的输入信号;输入信号Y1,Y2,…,Yn连接到激活函数电路的输出;输出信号Z1,Z2,…,Zm连接到极性控制电路的输入;输出信号SWP1,…,SWPm,P1,P2,…,Pm,SIN1,…,SINm连接到编程控制电路的输入;输出信号SGF1,…,SGFn,SGB1,…,SGBn连接到电荷积累电路的输入;输出信号S11,…,Smn连接到忆阻器阵列的输入。
比较控制和模拟权重更新电路的内部结构取决于所选用的权重更新的算法,例如误差反向传播(BP)算法,该方法对网络中所有权重计算损失函数的梯度,通过梯度下降法来更新权重值以最小化损失函数,激励前向传播和误差反向传播反复迭代,直到系统对输入的响应达到满意的预定目标范围为止。又如随机权重更新(RWC)算法是根据误差进行随机权重生成,优点是比BP算法硬件电路要简单很多,但是需要更多的迭代计算,速度较慢。当然也可以融合BP算法和RWC算法来实现比较控制和模拟权重更新电路。比较控制和模拟权重更新电路的本身和应用到的算法并不属于本发明所关注的重点。
本发明的工作原理为:
为了描述的方便,以及遵循神经网络电路研究中的习惯,这里以矢量矩阵符号简要标记输入量,输出量和权重。记输入信号X1,X2,…,Xm为X,通过脉宽调制电路后的信号XA1,XA2,…,XAm为XA,通过极性控制电路后的信号XB1,XB2,…,XBm为XB,通过编程控制电路后的信号XC1,XC2,…,XCm为XC,忆阻器阵列的权重M11,M12,…,M1n,M12,…,Mmn为权重矩阵M,忆阻器阵列的NMOS管TC11,TC12,…,TC1n,TC12,…,TCmn的控制信号S11,S12,…,S1n,S12,…,Smn为S。电荷积累电路的输出信号Yf1,Yf2,…,Yfn为Yf,激活函数电路的输出Y1,Y2,…,Yn为Y,目标值TAR1,TAR2,…TARn为TAR。编程控制电路的NMOS管栅极信号SIN1,SIN2,…,SINm为SIN。编程控制电路的NMOS管栅极信号SWP1,SWP2,…,SWPm为SWP,编程控制电路的输入信号P1,P2,…,Pm为P,NMOS管TB1,TB2,…,TBm为TB。NMOS管TP1,TP2,…,TPm为TP。忆阻器阵列的输入信号XC1,XC2,…,XCm为XC,忆阻器阵列的输出信号YC1,YC2,…,YCn为YC。电荷积累电路的NMOS管TGF1,TGF2,…,TGFn为TGF,栅极信号SGF1,SGF2,…,SGFn为SGF,NMOS管TGB1,TGB2,…,TGBn为TGB,栅极信号SGB1,SGB2,…,SGBn为SGB。
本发明所给定的输入信号为数字逻辑值X。而传统的电压模忆阻神经网络电路的输入通常是归一化的电压信号,电压幅度大小各异。本发明的输入的数字逻辑值X和归一化的电压信号大小成正比,电压幅度越高,则对应的数字逻辑值越大。脉宽调制电路接受可调时钟源的时钟CLK,将输入的数据X转换为脉宽宽度与X的数据元素大小分别成正比的信号XA,基准脉宽的宽度则可以通过可调时钟源CLK的频率来控制。由于实际的神经网络运算中,权重矩阵的值可能为正,零或负值,但忆阻器属于非线性的无源器件,其阻值M只可能为正值。因此传统的方法往往配置忆阻器阵列和辅助忆阻器阵列,通过两个阵列的信号运算来实现负权重值。
为了有效减小芯片面积,本发明利用极性控制电路来实现负权重值,而无需辅助忆阻器阵列,其基本的原理是将需要实现负权重的对应输入支路电压进行极性反转,从而获得负权重等同的效果。以XA1和XA2支路为例,若分别需要实现正和负权重,则比较控制和模拟权重更新电路发出低电平指令Z1和高电平指令Z2,低电平Z1将关断NMOS管TJn1,导通PMOS管TJp1,高电平Z2的效果刚好相反,将关断PMOS管TJp2,导通NMOS管TJn2。因此,XA1通过TJp1后的信号XB1仍为原来的极性,XA2则通过TJn2以及反向比例运算放大器RJ21,RJ22,RJ20,A32变为反极性的信号XB2。
编程控制电路实现信号处理和权重编程的切换控制。当信号处理控制矩阵SIN为低电平,编程控制矩阵SWP为高电平,同时SGF和SGB为高电平时,积累电容阵列C1,C2,…,Cn通过NMOS管TGF和TGB放电复位,并且编程脉冲P通过晶体管阵列TP送至忆阻器阵列的XC输入端。此时对忆阻器阵列中的任意忆阻器Mij的编程只需要将其串联的NMOS TCij的栅极Sij置为高电平即可。当信号处理控制矩阵SIN为高电平,编程控制矩阵SWP为低电平,同时复位NMOS管TGF和TGB通过低电平SGF和低电平SGB的控制断开时,信号XB通过晶体管阵列TB送入忆阻器阵列XC端,实现信号处理功能。
电荷积累电路对忆阻器阵列的输出信号YC进行电荷积累计算,并将计算结果送至激活函数电路。电荷积累电路的工作模式分为积累电容复位模式和电荷积累模式。积累电容复位模式下,晶体管阵列TGF通过高电平SGF,晶体管阵列TGB通过高电平SGB,将积累电容阵列C1,C2,…,Cn放电复位。值得注意的是,忆阻器阵列的权重编程和积累电容复位可以同步进行,加快了硬件电路的运算速度。当SGB,SGF均为低电平时,进入电荷积累模式,忆阻器阵列的输出信号YC通过A11,A12,…,A1n和积累电容阵列C1,C2,…,Cn以及A21,A22,…,A2n进行电荷积累计算,每列信号分别通过电荷积累电容C1,…,Cn进行同向或反向积分,若XC的组成元素全部是正极性信号则进行反向积分,否则可能进行同向积分或反向积分,具体取决于忆阻器阵列的列元素的同极性和反极性信号的相对强度。这里对忆阻器的列输出求解的是电流和时间的乘积和,即电荷积累,计算结果Yf送入激活函数电路。
图3为变脉宽输入电荷积累忆阻神经网络电路的前向信号计算的第k列等效电路图,包括忆阻器M1k,…,Mmk,放大器A1k,A2k,电容Ck,激活函数fk(x),其中输入信号XCm与忆阻器Mmk的正极相连接;忆阻器Mmk的负极连接放大器A1k的反向输入端及电容Ck的一端;电容Ck的另一端同时连接放大器A1k的输出及放大器A2k的同向输入端;放大器A1k的同向输入端接地;放大器A2k的反向输入端连接放大器A2k的输出端,并作为激活函数fk(x)的输入信号;激活函数fk(x)的输出信号为Yk。
根据图3的变脉宽输入电荷积累忆阻神经网络电路的前向信号计算等效电路图,可以知道,系统的传递函数为:
激活函数电路模拟神经元的激活,激活函数f(x)可以是sigmoid函数,tanh函数,ReLU函数等,具体取决于神经网络电路的应用需求。
比较控制和模拟权重更新电路完成误差计算和权重更迭功能。输出信号Y送到比较控制和模拟权重更新电路,和目标值TAR进行比较,得到误差信号,根据误差信号调整权重。即重新返回权重编程和积累电容复位阶段,然后进行再次循环计算,直至满足最低误差要求为止。图4的电路运行流程图反应了电路的上述工作流程。图5则反应了变脉宽输入电荷积累忆阻神经网络电路在某一时刻的关键节点的波形示意图,这里以X2支路需要反极性为例进行说明。由于输入信号X各元素的大小取决于实际应用,这里假设输入的数字码DX2>DX1>DXm。从图5可以看出,和传统的电压模忆阻神经网络不同,这里并不将输入信号变为电压幅度可变的信号,而是以数字逻辑值表示其输入信号的大小,输入信号越大,逻辑值越大,通过脉宽调制电路后的信号XA的脉宽宽度就越宽,显然这里由于DX2最大,因此对应的XA2脉宽最宽,极性控制电路则根据权重值的正,零和负的要求,变更信号极性,图5是X2为负极性的情形,通过电荷积累电路后,完成电压的同向或反向积分,图中Yf2的积分方向和其他路径相反。值得一提的是,即使第k列有图5所示的反极性信号XB2,Yf2的积分方向也并非在任何情况下一定和其他路径相反,因为根据图3,公式(1)的列电流求和值的符号才决定了积分的方向。
本发明提出一种变脉宽输入电荷积累型忆阻神经网络电路,所谓的变脉宽输入即将多值或模拟连续神经网络的输入值以变脉宽形式输入,从而易于区分输入的多态值,并且不对输入的值域大小做任何限制,从而有利于神经网络精度的提高。而传统的电压模忆阻神经网络电路的输入值域受限于忆阻器阈值电压,输入值越多,则神经网络的精度越低。本发明通过脉宽调制电路和极性控制电路的变换,将其输入变为脉宽与输入大小成正比的信号,其信号的极性则取决于目标权重的符号。基准脉宽的宽度则可以通过可调时钟源的频率进行调节。然后将忆阻器阵列的列输出通过电容进行同向积分或反向积分,电容上的电荷积累值即忆阻器阵列的矢量矩阵乘法结果。这一方法非常容易地在忆阻器和CMOS构成的混合电路上实现正,零或负的权重。无需像传统的电压模忆阻神经网络电路那样通常需要两个忆阻器阵列。这一方法显著地节省了芯片面积。忆阻器阵列的权重编程和积累电容复位可以同步进行,从而加快了硬件电路的运算速度。
需要说明的是,尽管以上本发明所述实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。
如对于2层以上(包括2层)的多层变脉宽输入电荷积累型忆阻神经网络电路,其主要由1个比较控制与模拟权重更新电路和S个神经网络电路组成。其中S为神经网络电路的层数。
(1)神经网络电路
每一层神经网络电路均由可调时钟源、脉宽调制电路、极性控制电路、编程控制电路、忆阻器阵列、电荷积累电路和激活函数电路。其中第一层神经网络电路的输入端(即脉宽调制电路的输入端)形成整个神经网络电路的总的输入端;第一层神经网络电路的输出端(即激活函数电路的输出端)连接第二层神经网络电路的输入端(即脉宽调制电路的输入端);第二层神经网络电路的输出端(即激活函数电路的输出端)连接第三层神经网络电路的输入端(即脉宽调制电路的输入端);……;最后一层神经网络电路的输出端(即激活函数电路的输出端)形成整个神经网络电路的总的输出端。
关于多层神经网络每层的规模(即每一层忆阻器阵列的输入端和输出端的个数),取决于神经网络本身的类型和应用领域。第一层忆阻器阵列的输入端数目与给定的整个神经网络的输入端数目相同,最后一层忆阻器阵列的输出端数目与给定的整个神经网络的输出端数目相同,但第一层忆阻器阵列的输出端的数目、中间层忆阻器阵列的输入端和输出端的数目、以及最后一层忆阻器阵列的输入端的数目却存在一定的相互制约关系,即前一层忆阻器阵列的输出端数目等于后一层忆阻器阵列的输入端数目。以三层忆阻神经网络的忆阻器阵列模块为例,假设第一层的输入数是m1,输出数是n1,第二层的输入数是m2,输出是n2,第三层的输入数是m3,输出数是n3,由于前一层神经元的输出是后一层神经元的输入,因此m2=n1,m3=n2,第一层忆阻器个数为m1×n1,第二层忆阻器个数为n1×n2,第三层忆阻器个数为n2×n3。
考虑到成本和电路的简化等因素,所有神经网络层的可调时钟源可以共用,不管是数控脉宽调制电路还是模拟脉宽调制电路,均通过可调时钟源CLK的频率来控制基准脉宽的宽度。此外,由于总输入信号为数字信号,即第一层的输入为数字信号,因此第一层神经网络电路所选用的脉宽调制电路是数控脉宽调制电路。由于第一层至最后一层神经网络电路的输出信号均为模拟信号,即第二层至最后一层神经网络电路的输入为模拟信号,因此第二层至最后一层神经网络电路所选用的脉宽调制电路是模拟脉宽调制电路。
(2)比较控制与模拟权重更新电路
基于误差控制原理,所有神经网络层的比较控制与模拟权重更新电路必须是共用的。比较控制与模拟权重更新电路外部给定的目标值信号,以及每一层神经网络电路的极性控制电路、编程控制电路、忆阻器阵列、电荷积累电路和激活函数电路连接。随着神经网络层数的增加,比较控制和模拟权重更新电路连接到各层的控制信号会成倍增加。具体来说:
比较控制与模拟权重更新电路的TAR信号输入端个数与最后一层神经网络电路的输出端数量相同,其与给定的目标值信号相连。
比较控制与模拟权重更新电路的P信号输出端个数为其分别连接各层神经网络电路的编程控制电路的ms个第二输入端,比较控制与模拟权重更新电路的SIN信号输出端个数为其分别连接各层神经网络电路的编程控制电路的ms个第三输入端,比较控制与模拟权重更新电路的SWP信号输出端个数为其分别连接各层神经网络电路的编程控制电路的ms个第四输入端。
比较控制与模拟权重更新电路的SGF信号输出端个数为其分别连接各层神经网络电路的电荷积累电路的ns个第二输入端,比较控制与模拟权重更新电路的SGB信号输出端个数为其分别连接各层神经网络电路的电荷积累电路的ns个第三输入端。
其中ms为第s层神经网络电路的输入端数目;ns为第s层神经网络电路的输出端的数目,s=1,2,…,S,S为神经网络的层数。
Claims (7)
1.一种变脉宽输入电荷积累型忆阻神经网络电路,包括比较控制与模拟权重更新电路和至少一层神经网络电路,其特征是,
每一层神经网络电路均包括可调时钟源、脉宽调制电路、极性控制电路、编程控制电路、忆阻器阵列、电荷积累电路和激活函数电路;可调时钟源的输出端连接脉宽调制电路的时钟输入端;脉宽调制电路的ms个输入端形成本层神经网络电路的ms个输入端,脉宽调制电路的ms个输出端连接极性控制电路的ms个第一输入端;极性控制电路的ms个输出端连接编程控制电路的ms个第一输入端;编程控制电路的ms个输出端连接忆阻器阵列的ms个输入端;忆阻器阵列的ns个输出端连接电荷积累电路的ns个第一输入端,电荷积累电路的ns个输出端连接激活函数电路的ns个输入端,激活函数电路的ns个输出端形成本层神经网络电路的ns个输出端;
第一层神经网络电路的脉宽调制电路的输入端形成整个变脉宽输入电荷积累型忆阻神经网络电路的总的输入端;前一层神经网络电路的激活函数电路的输出端连接后一层神经网络电路的脉宽调制电路的输入端;最后一层神经网络电路的激活函数电路的输出端形成整个变脉宽输入电荷积累型忆阻神经网络电路的总的输出端;
比较控制与模拟权重更新电路的TAR信号输入端个数与最后一层神经网络电路的输出端数量相同,其与给定的目标值信号相连;比较控制与模拟权重更新电路的Z信号输出端个数为其分别连接各层神经网络电路的极性控制电路的ms个第二输入端;比较控制与模拟权重更新电路的P信号输出端个数为其分别连接各层神经网络电路的编程控制电路的ms个第二输入端,比较控制与模拟权重更新电路的SIN信号输出端个数为其分别连接各层神经网络电路的编程控制电路的ms个第三输入端,比较控制与模拟权重更新电路的SWP信号输出端个数为其分别连接各层神经网络电路的编程控制电路的ms个第四输入端;比较控制与模拟权重更新电路的S信号输出端个数为其分别连接各层神经网络电路的忆阻器阵列的ms×ns个控制端;比较控制与模拟权重更新电路的SGF信号输出端个数为其分别连接各层神经网络电路的电荷积累电路的ns个第二输入端,比较控制与模拟权重更新电路的SGB信号输出端个数为其分别连接各层神经网络电路的电荷积累电路的ns个第三输入端;比较控制与模拟权重更新电路的Y信号输入端个数为其分别连接各层神经网络电路的激活函数电路的ns个输出端;
其中ms为第s层神经网络电路的输入端数目;ns为第s层神经网络电路的输出端的数目,s=1,2,…,S,S为神经网络的层数。
2.根据权利要求1所述的一种变脉宽输入电荷积累型忆阻神经网络电路,其特征是,各层神经网络电路共用同一个可调时钟源。
3.根据权利要求1所述的一种变脉宽输入电荷积累型忆阻神经网络电路,其特征是,第一层神经网络电路的脉宽调制电路为数控脉宽调制电路,第二层至最后一层的脉宽调制电路为模拟脉宽调制电路。
4.根据权利要求1所述的一种变脉宽输入电荷积累型忆阻神经网络电路,其特征是,所述极性控制电路由ms路极性控制单元组成;
其中每路极性控制单元均包括PMOS管TJpi,NMOS管TJni,电阻RJi0-RJi2,以及放大器A3i;PMOS管TJpi的漏极和NMOS管TJni的漏极相连后,形成极性控制电路的第i个第一输入端;PMOS管TJpi的栅极和NMOS管TJni的栅极相连后,形成极性控制电路的第i个第二输入端;NMOS管TJni的源极经由电阻RJi1连接放大器A3i的反向输入端;PMOS管TJpi的源极分为两路,一路经由电阻RJi2连接放大器A3i的反向输入端,另一路连接放大器A3i的输出端;电阻RJi0的一端连接放大器A3i的同向输入端,另一端接地;放大器A3i的输出端形成极性控制电路的第i个输出端;
其中i=1,2,…,ms,ms为第s层神经网络电路的输入端数目。
5.根据权利要求1所述的一种变脉宽输入电荷积累型忆阻神经网络电路,其特征是,所述编程控制电路由ms路编程控制单元组成;
其中每路编程控制单元均包括NMOS管TBi、TPi;NMOS管TBi的漏极形成编程控制电路的第i个第一输入端;NMOS管TPi的漏极形成编程控制电路的第i个第二输入端;NMOS管TBi的源极和NMOS管TPi的源极相连后,形成编程控制电路的第i个输出端;NMOS管TBi的栅极形成编程控制电路的第i个第三输入端;NMOS管TPi的栅极形成编程控制电路的第i个第四输入端;
其中i=1,2,…,ms,ms为第s层神经网络电路的输入端数目。
6.根据权利要求1所述的一种变脉宽输入电荷积累型忆阻神经网络电路,其特征是,所述电荷积累电路包括ns路电荷积累单元;
每路电荷积累单元均包括NMOS管TGFj、TGBj,放大器A1j、A2j,以及电容Cj;
NMOS管TGFj的漏极和放大器A1j的反向输入端相连后,形成电荷积累电路的第j个第一输入端;NMOS管TGFj的栅极形成电荷积累电路的第j个第二输入端;电容Cj的一端连接放大器A1j的反向输入端,另一端连接放大器A1j的输出端;放大器A1j的输出端、放大器A2j的同向输入端和NMOS管TGBj的漏极相连;NMOS管TGBj的栅极形成电荷积累电路的第j个第三输入端;放大器A2j的反向输入端和输出端相连后,形成电荷积累电路的第j个输出端;放大器A1j的同向输入端、NMOS管TGFj的源极和NMOS管TGBj的源极接地;
其中j=1,2,…,ns,ns为第s层神经网络电路的输出端的数目。
7.根据权利要求1所述的一种变脉宽输入电荷积累型忆阻神经网络电路,其特征是,所述激活函数电路由ns路激活函数单元组成;
每路激活函数单元的输入端形成激活函数电路的第j个输入端,每路激活函数单元的输出端形成激活函数电路的第j个输出端;
其中j=1,2,…,ns,ns为第s层神经网络电路的输出端的数目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911423140.9A CN110991624A (zh) | 2019-12-31 | 2019-12-31 | 一种变脉宽输入电荷积累型忆阻神经网络电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911423140.9A CN110991624A (zh) | 2019-12-31 | 2019-12-31 | 一种变脉宽输入电荷积累型忆阻神经网络电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110991624A true CN110991624A (zh) | 2020-04-10 |
Family
ID=70080484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911423140.9A Pending CN110991624A (zh) | 2019-12-31 | 2019-12-31 | 一种变脉宽输入电荷积累型忆阻神经网络电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110991624A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111833278A (zh) * | 2020-07-13 | 2020-10-27 | 西南大学 | 基于忆阻器遗忘特性的图片处理方法 |
CN112734022A (zh) * | 2021-02-02 | 2021-04-30 | 郑州轻工业大学 | 一种具有识别和排序功能的四字符忆阻神经网络电路 |
CN112787657A (zh) * | 2021-01-11 | 2021-05-11 | 杭州电子科技大学 | 一种可编程忆阻器逻辑电路 |
CN115906968A (zh) * | 2022-11-09 | 2023-04-04 | 南方科技大学 | 双有符号操作数非易失性存算一体单元、阵列及运算方法 |
-
2019
- 2019-12-31 CN CN201911423140.9A patent/CN110991624A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111833278A (zh) * | 2020-07-13 | 2020-10-27 | 西南大学 | 基于忆阻器遗忘特性的图片处理方法 |
CN111833278B (zh) * | 2020-07-13 | 2022-05-17 | 西南大学 | 基于忆阻器遗忘特性的图片处理方法 |
CN112787657A (zh) * | 2021-01-11 | 2021-05-11 | 杭州电子科技大学 | 一种可编程忆阻器逻辑电路 |
CN112734022A (zh) * | 2021-02-02 | 2021-04-30 | 郑州轻工业大学 | 一种具有识别和排序功能的四字符忆阻神经网络电路 |
CN112734022B (zh) * | 2021-02-02 | 2023-12-19 | 郑州轻工业大学 | 一种具有识别和排序功能的四字符忆阻神经网络电路 |
CN115906968A (zh) * | 2022-11-09 | 2023-04-04 | 南方科技大学 | 双有符号操作数非易失性存算一体单元、阵列及运算方法 |
CN115906968B (zh) * | 2022-11-09 | 2023-12-08 | 南方科技大学 | 双有符号操作数非易失性存算一体单元、阵列及运算方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110991624A (zh) | 一种变脉宽输入电荷积累型忆阻神经网络电路 | |
JP6764473B2 (ja) | 抵抗型処理ユニット | |
CN111433792B (zh) | 可编程可重置人工神经网络的基于计数器的电阻处理单元 | |
US9779355B1 (en) | Back propagation gates and storage capacitor for neural networks | |
US11934480B2 (en) | NAND block architecture for in-memory multiply-and-accumulate operations | |
CN110352436B (zh) | 用于神经网络训练的具有迟滞更新的电阻处理单元 | |
US9466362B2 (en) | Resistive cross-point architecture for robust data representation with arbitrary precision | |
CN109800876B (zh) | 一种基于NOR Flash模块的神经网络的数据运算方法 | |
US8275728B2 (en) | Neuromorphic computer | |
CN109492187A (zh) | 用于执行模拟复向量矩阵乘法的方法和系统 | |
US8275727B2 (en) | Hardware analog-digital neural networks | |
Teimoory et al. | Optimized implementation of memristor-based full adder by material implication logic | |
EP3432226A1 (en) | Control plane organisation for flexible digital data plane | |
US20230401432A1 (en) | Distributed multi-component synaptic computational structure | |
CN113988255A (zh) | 深度均衡模型的硬件计算结构 | |
CN210864805U (zh) | 一种变脉宽输入电荷积累型忆阻神经网络电路 | |
Tarkhan et al. | Design of a memristor based fuzzy processor | |
CN111340203A (zh) | 使用误差反向传播执行监督学习的神经形态系统 | |
CN113222131B (zh) | 基于1t1r的可实现带符号权重系数的突触阵列电路 | |
CN113841164A (zh) | Rpu阵列的噪声和信号管理 | |
Fouda et al. | Effect of asymmetric nonlinearity dynamics in RRAMs on spiking neural network performance | |
CN114861902A (zh) | 处理单元及其操作方法、计算芯片 | |
Kakkar | Comparative study on analog and digital neural networks | |
Cai et al. | A low-computation-complexity, energy-efficient, and high-performance linear program solver using memristor crossbars | |
Chen et al. | A Low-Cost Training Method of ReRAM Inference Accelerator Chips for Binarized Neural Networks to Recover Accuracy Degradation due to Statistical Variabilities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |