CN111967586B - 一种用于脉冲神经网络存内计算的芯片及计算方法 - Google Patents
一种用于脉冲神经网络存内计算的芯片及计算方法 Download PDFInfo
- Publication number
- CN111967586B CN111967586B CN202010682227.4A CN202010682227A CN111967586B CN 111967586 B CN111967586 B CN 111967586B CN 202010682227 A CN202010682227 A CN 202010682227A CN 111967586 B CN111967586 B CN 111967586B
- Authority
- CN
- China
- Prior art keywords
- neural network
- array
- signal
- memory
- module
- 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.)
- Active
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/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/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/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Image Analysis (AREA)
Abstract
本发明实施例提供一种用于脉冲神经网络存内计算的芯片及计算方法,该芯片包括依次连接的信号输入模块、存内计算模块、信号输出模块;信号输入模块用于将输入的图像像素阵列转换成生物脉冲信号输入至存内计算模块;存内计算模块用于根据预先存储的神经网络突触权重值,对生物脉冲信号进行存内运算,并将输出的位线电流输入至信号输出模块;信号输出模块用于将位线电流转换成识别脉冲信号。本发明实施例提供的用于脉冲神经网络存内计算的芯片及计算方法,集合类脑计算及存内计算优势,通过集合片上训练、片上存储及片上推理功能,突破了冯诺依曼架构的计算瓶颈,从而实现集存储与计算一体的低功耗计算,实现了输出精度可调,有效的提升了计算性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于脉冲神经网络存内计算的芯片及计算方法。
背景技术
在人工智能(Artificial Intelligence,AI)领域,随着深度学习的不断发展,人工智能被广泛的应用到多个领域,在神经网络芯片的设计过程中,芯片的功耗、存储问题成了不可忽视的问题。脉冲神经网络(Spiking Neural Network,SNN)作为第三代神经网络,主要模拟的是神经突触以电脉冲传递信息的编码方式,兼具生物信息处理特性,在实现低功耗方面有着独特的优势。同时,SNN在算法上面的优势使得其可以很方便的实现神经网络的训练,相比于卷积神经网络(Convolutional Neural Network,CNN)、深度神经网络(DeepNeural Network,DNN)结构更易于实现芯片的低功耗,且消耗较少的硬件资源。
此外,在神经网络芯片设计过程中,存储一直是芯片设计的难点,存内计算(Computing-in-Memory,CIM)架构突破传统冯诺依曼架构的计算思维,采用存储单元进行计算的设计思路,适宜于应用至神经网络芯片设计中,不仅能降低神经网络在工作过程中访存所带来的延迟与功耗,还解决了神经网络芯片的存储问题。
现有技术尚未记载如何通过结合SNN与CIM计算,架构实现神经网络训练-推理芯片,以实现集神经网络训练、存储、推理于一体的高性能类脑计算的结构。
发明内容
本发明实施例提供一种用于脉冲神经网络存内计算的芯片及计算方法,用以解决现有技术中存储与运算分开计算,需要在存储器与处理器之间频繁的传输数据,导致功耗与时延较高的缺陷,有效的提升计算性能。
第一方面,本发明实施例提供一种用于脉冲神经网络存内计算的芯片,包括:依次连接的信号输入模块、存内计算模块、信号输出模块。其中,信号输入模块用于将输入的图像像素阵列转换成生物脉冲信号输入至存内计算模块;存内计算模块用于根据预先存储的神经网络突触权重值,对生物脉冲信号进行存内运算,并将输出的位线电流输入至信号输出模块;信号输出模块用于将位线电流转换成识别脉冲信号。
作为可选地,本发明实施例提供的用于脉冲神经网络存内计算的芯片,还包括神经网络突触阵列模块;所述神经网络突触阵列模块用于根据样本生物脉冲信号,获取神经网络突触权重值,并将该神经网络突触权重值存储至存内计算模块;样本生物脉冲信号是由信号输入模块对样本图像像素阵列进行处理后获取的。
作为可选地,上述神经网络突触阵列模块由生物可塑性突触阵列和比较器阵列构成;每个生物可塑性突触中包含学习算法电路和突出电路,用于根据样本生物脉冲信号获取突触权重;每个生物可塑性突触连接一个比较器,该比较器用于对突触权重进行二值化后存储至存内计算模块。
作为可选地,信号输入模块由模数转化器阵列和输入神经元阵列构成;模数转化器阵列用于将图像像素阵列转换成电流信号输入至输入神经元阵列;输入神经元阵列用于将电流信号转换成生物脉冲信号。
作为可选地,存内计算模块由脉冲-电压转化器阵列和静态随机存储器阵列构成;脉冲-电压转化器阵列用于将生物脉冲信号转换成电压信号输入至静态随机存储器阵列;该静态随机存储器阵列用于对电压信号进行乘累加运算,获取位线电压输入至信号输出模块。
作为可选地,上述脉冲-电压转化器阵列将生物脉冲信号转换成电压信号输入至静态随机存储器阵列,是采取并行处理的方式。
作为可选地,在每个脉冲-电压转化器与静态随机存储器阵列之间增设一个预充开关,用于控制电压信号输入的启停。
作为可选地,上述信号输出模块为输出层神经元电路阵列结构;该输出层神经元电路阵列结构由多个输出层神经元电路和多个突触子阵列组成,突触子阵列在输出层神经元电路之间作层内链接,以实现侧向抑制机制。
第二方面,本发明实施例提供一种用于脉冲神经网络存内计算方法,包括:根据预先存储的神经网络突触权重值,对输入的生物脉冲信号进行存内运算,获取位线电流;根据位线电流生成识别脉冲信号;所述生物脉冲信号是由图像像素阵列转换获取的。
作为可选地,本发明实施例提供的用于脉冲神经网络存内计算方法,还包括获取神经网络突触权重值,具体为:根据样本生物脉冲信号,获取神经网络突触权重值;将所述神经网络突触权重值储存至静态随机存储器阵列。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现如第二方面任一所述的用于脉冲神经网络存内计算方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第二方面任一所述的用于脉冲神经网络存内计算方法的步骤。
本发明实施例提供的用于脉冲神经网络存内计算的芯片及计算方法,集合类脑计算及存内计算优势,通过集合片上训练、片上存储及片上推理功能,突破了冯诺依曼架构的计算瓶颈,从而实现集存储与计算一体的低功耗计算,实现了输出精度可调,有效的提升了计算性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种用于脉冲神经网络存内计算的芯片的结构示意图;
图2为本发明实施例提供的另一种用于脉冲神经网络存内计算的芯片的结构示意图;
图3为本发明实施例提供的又一种用于脉冲神经网络存内计算的芯片的结构示意图;
图4为本发明实施例提供的一种神经网络突触阵列模块的结构示意图;
图5为本发明实施例提供的一种存内计算模块的结构示意图;
图6为本发明实施例提供的一种输入神经元阵列的电路示意图;
图7为本发明实施例提供的一种基于存内计算的SNN网络连接方式示意图;
图8为本发明实施例提供的一种静态随机存储器阵列内的存内计算电路示意图;
图9为本发明实施例提供的一种用于脉冲神经网络存内计算方法的流程示意图;
图10为本发明实施例提供的脉冲神经网络存内芯片在一个周期内的操作波形仿真结果示意图;
图11为进行图片识别任务时的识别结果示意图;
图12为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
冯·诺依曼体系自20世纪30年代被提出后一直作为经典计算机架构沿用至今,然而近年来随着数据量的日益增长,CPU运算能力的不断提升,内存的访问延迟却几乎没有提升。现有的计算的核心是获取输入数据,并将其在存储数据的内存和按时钟进行操作的逻辑之间移动。所有数据都存储在内存中,然后传送到计算引擎。这些数据的来回调用会带来大量的功耗和性能的降低,但由于摩尔定律的进步,这种功耗和性能降低在很大程度上被掩盖了。在传统架构下,存储与运算之间数据交换通路窄、能耗高的问题日益凸显,存算一体成为现阶段实现高带宽、低功耗、计算需求的一条有效途径。
若把数据存储在计算的地方,在实际计算过程中,要么检查一个典型突触/神经元的权重,要么调整它的值(所有这些工作都是并行的),以驱动生物逻辑,这比在两个不同的芯片(存储芯片和运算芯片)之间来回移动数据要省电得多。通过将一个相关的电子元件编程成一个离散的阻值和状态,然后将这些具有不同权重的电子元件相互卷积,则可以建立一个近似突触和神经元的系统。在传统方法中,可以通过将内存元素组织成一个数组,通过对元素进行编程,利用相应的工程材料来实现不同的阻值。在这种架构下,可以组织许多权重值(基于元素的电阻),并通过数组将它们相互关联,以使其更接近生物系统的效率。
在本发明实施例提供一种用于脉冲神经网络存内计算的芯片,如图1所示,主要包括但不限于:依次连接的信号输入模块1、存内计算模块2和信号输出模块3;信号输入模块1主要用于将输入的图像像素阵列转换成生物脉冲信号输入至存内计算模块2;存内计算模块2主要用于根据预先存储的神经网络突触权重值,对生物脉冲信号进行存内运算,并将输出的位线电流输入至信号输出模块3;信号输出模块3主要用于将位线电流转换成识别脉冲信号。
具体地,本发明实施例提供的脉冲神经网络存内计算的芯片可用于图像识别技术领域,首先,通过图像提取技术,对目标图像进行特征提取获取图像像素阵列,又称二维特征图(Feature Map)后,将所述图像像素阵列作为数字量信号输入至信号输入模块1。
其中,信号输入模块1主要用于对输入的数值量信号进行处理,生成作为SNN模型输入的生物脉冲信号,该生物脉冲信号可以具体为一种电流脉冲信号。例如,可以对数字量信号先进行数模转换成模拟量信号,然后将生成的模拟量信号进行二值化等操作,生成对应的生物脉冲信号。
作为可选地,可以在本发明实施例提供的脉冲神经网络存内计算的芯片的信号输入模块1中设置神经元电路,将转换后的模拟量信号输入至该神经元电路后,可以获取对应的生物脉冲信号。其中,所述神经元电路可以是基于电容充放电及电路反馈机制设计而成的。
进一步地,在转换获取到生物脉冲信号后,将其输入至存内计算模块2,在该存内计算模块2中预先存储有神经网络突触权重值。在存内计算模块2中首先将输入的生物脉冲信号转换成脉冲电压信号,然后根据神经网络突触权重值,对脉冲电压信号进行乘累加(multiply-and-accumulate,MAC)操作后,获取对应的位线电流信号。
作为可选地,将位线电流信号输入至信号输出模块后,位于信号输出模块中的输出层神经元电路输出层电路结构用于将对位线电流信号进行计算后,再利用位于信号输出模块中的输出层电路结构将输出的结果以脉冲的形式输出,即输出识别脉冲信号。
最后,根据识别脉冲信号的特性,获取对目标图像的识别结果。
本发明实施例提供的用于脉冲神经网络存内计算的芯片,集合类脑计算及存内计算优势,通过集合片上训练、片上存储及片上推理功能,突破了冯诺依曼架构的计算瓶颈,从而实现集存储与计算一体的低功耗计算,实现了输出精度可调,有效的提升了计算性能。
基于上述实施例的内容,作为可选地,如图2所示,本发明实施例提供的用于脉冲神经网络存内计算的芯片,还可以包括神经网络突触阵列模块4;神经网络突触阵列模块4主要用于根据样本生物脉冲信号,获取神经网络突触权重值,并将神经网络突触权重值存储至存内计算模块;样本生物脉冲信号是由信号输入模块对样本图像像素阵列进行处理后获取的。
本发明实施例提供的用于脉冲神经网络存内计算的芯片,还具有用于神经网络的训练学习结构,即具有神经网络突触阵列模块,用于对样本图像进行训练,获取神经网络突触权重值,并将获取的权重值预先存储至存内计算模块,以利用存内计算模块2同时实现片上存储以及片上运算的功能。即存内计算模块2在获取并存储神经网络突触权重值之后,实现了存储及运算一体化,克服了数据的来回调所带来大量的功耗和性能降低的缺陷。
其中,神经网络突触阵列模块4可以由生物可塑性突触阵列和比较器阵列构成;每个生物可塑性突触中包含学习算法电路和突触电路,用于根据样本生物脉冲信号获取突触权重;每个生物可塑性突触连接一个比较器,比较器用于对突触权重进行二值化后存储至存内计算模块。
具体地,如图3所示,本发明实施例提供的用于脉冲神经网络存内计算的芯片,主要可以包括4个部分:
第一部分是信号输入模块1部分,具体可以是一种由输入神经元阵列及信号输入电路构成的结构,由数-模转化器(Digital-to-Analog Converter,DAC)阵列和输入神经元阵列构成。其中,构成输入神经元阵列的电路是基于电容充放电及电路反馈机制设计而成,用于接收外部的输入信号(Feature Map),并产生生物脉冲信号。
第二部分是神经网络突触阵列模块4部分,即神经网络的训练学习结构。该电路结构由生物可塑性突触阵列以及比较器阵列电路构成。突触阵列在神经网络训练过程中完成神经网络突触权重的更新学习,建立稳定的网络连接关系;在训练过程结束后根据比较器的比较结果把相应的突触权重值写入到第三部分存内计算模块3的存储单元内。
第三部分是存内计算模块3,即神经网络的CIM单元阵列结构。该电路结构可以由静态随机存储器(Static Random Access Memory,SRAM)阵列及脉冲-电压转化器(Spike-to-Voltage Converter,SVC)电路阵列构成。
其中,CIM单元阵列负责在神经网络的推理过程中执行乘累加(multiply-and-accumulate,MAC)操作,其中SVC电路负责把神经元产生的脉冲信号转化为电压信号便于SRAM执行乘法操作。
第四部分是信号输出模块4,即神经网络的输出层神经元电路阵列结构,该电路结构由输出层神经元电路和突触子阵列组成。其中,输出层神经元电路的原理和输入神经元电路一致,突触阵列在输出层神经元之间层内链接,实现侧向抑制机制。输出层电路结构负责把神经网络的计算识别结果以脉冲的形式输出,实现了高精度输出且精度可调。
图4为本发明实施例提供的一种神经网络突触阵列模块的结构示意图,如图4所示,在于训练模式下(Training mode),被训练的图像像素阵列经过DAC模块转化为电流信号,输送给输入神经元阵列,使输入神经元产生脉冲信号,脉冲信号经突触传递给输出层神经元。学习算法根据输入层与输出层神经元产生的脉冲更新突触权重。突触模块主要包含两个部分:生物可塑性突触(bio-plasticity synapse)模块和比较器(comparator)模块。可塑性突触模块里包含学习算法电路和突触电路,用来更新突触权重;比较器负责把训练结束后的权重二值化后输送给SRAM单元内。图4中的输入层神经元(Pre-spike)和输出层神经元(Post-spike)产生的脉冲信号,前者在本发明实施例中定义为生物脉冲信号,后者被定义为识别脉冲信号,突触权重表示为W,突触传递给输出层神经元的电流信号简称为PSC,比较器的参考电压简称为REF,比较器的使能信号简称为EN。
结合图5所示,在测试模式下(Testing mode),此时网络训练模式结束,训练完成的突触权重已存储在SRAM单元阵列内。在此模式下,输入的的图像像素阵列经过DAC模块转化为电流信号,输送给输入层神经元使输入层神经元产生Pre-spike信号。该信号经SVC电路转化成与输入像素(如4bit)成比例的电压值预充到SRAM单元读位线(Read Bit Line,RBL)上,预充完成后读字线RWL有效,SRAM开始执行乘累加计算操作,计算完成后由电流输出电路根据计算后的位线电压输出相应电流到输出神经元,使输出神经元产生脉冲。
本发明实施例提供的用于脉冲神经网络存内计算的芯片,通过增设由生物可塑性突触阵列和比较器阵列构成的神经网络突触阵列模块,在预训练阶段,获取神经网络突触权重值存储至存内计算模块,同时实现神经网络的片上训练、片上存储及片上推理功能,集合类脑计算及存内计算优势,保证了片上存储,降低了计算功耗,实现了输出精度可调,提升计算性能。
基于上述实施例的内容,作为一种可选实施例,信号输入模块1可以由模数转化器阵列和输入神经元阵列构成;其中,模数转化器阵列用于将图像像素阵列转换成电流信号输入至输入神经元阵列;输入神经元阵列用于将电流信号转换成生物脉冲信号。
作为可选地,DAC可以由数字寄存器、模拟电子开关、位权网络、求和运算放大器和基准电压源(或恒流源)等部件组成。用存于数字寄存器的数字量的各位数码,分别控制对应位的模拟电子开关,使数码为1的位在位权网络上产生与其位权成正比的电流值,再由运算放大器对各电流值求和,并转换成相应的电压值或电流值。其中,本发明实施例中所使用的DAC可以是并行数模转换方式。
其中,在本发明实施例中所使用的输入神经元阵列的电路原理可以如下:本发明实施例采用的神经元电路可以是基于三级缓冲器的级联外加一个反馈电路设计而成,电路结构如图6所示,电容表示神经元膜,电容上的电压变化表示神经元膜电位,当外部输入电流信号。神经元接收到电流信号对电容充电,电容上的电压(即膜电位)上升,当神经元膜电位达到第一级缓冲器的阈值电压时,电路经过三级缓冲器后会在电路输出端的正脉冲信号会翻转成高电平,并使神经元的复位管导通,把神经元膜电位电压拉低,输出端正脉冲信号被重新拉低,在极端的时间内,该神经元电路使输出端正脉冲信号电平发生两次翻转,即产生了一个具有一定宽度脉冲信号,负脉冲是一个正脉冲的反脉冲信号;重复上述过程,神经元就能产生一定频率的脉冲信号。
该电路在不同大小的电流刺激下,产生的脉冲频率是不一样的,电流越大,脉冲频率越高。
本发明实施例提供的用于脉冲神经网络存内计算的芯片,利用信号输入模块对输入的图像像素阵列进行处理,获取到与之对应的生物脉冲信号,为将SNN网络模型与CIM相结合提供了基础,且实现了精度的可调。
基于上述实施例的内容,作为一种可选实施例,存内计算模块由脉冲-电压转化器阵列和静态随机存储器阵列构成;脉冲-电压转化器阵列用于将生物脉冲信号转换成电压信号输入至静态随机存储器阵列;静态随机存储器阵列用于对电压信号进行乘累加运算,获取位线电压输入至信号输出模块。
图5为本发明实施例提供的一种存内计算模块的结构示意图,图7为本发明实施例提供的一种基于存内计算的SNN网络连接方式示意图,如图5和图7所示,SVC电路预充时为并行处理设计,因此大大提升了计算速度。在Training mode结束,训练完成的突触权重已存储在存内计算单元3中的SRAM单元阵列内。在推理模式(Testing mode)下被识别的图像像素阵列经过DAC模块转化为电流信号,输送给输入层神经元使输入层神经元产生Pre-spike信号,该信号经SVC电路转化成与4bit输入像素成比例的电压值预充到SRAM单元读位线(Read Bit Line,RBL)上,预充完成后读字线RWL有效,SRAM开始执行乘累加计算操作,计算完成后由电流输出电路根据计算后的位线电压输出相应电流到输出神经元,使输出神经元产生脉冲。
作为可选地,本发明实施例提供一种静态随机存储器阵列内的存内计算电路,如图8所示,该存内计算电路的具体结构可以为:
一种基于8T SRAM的存内计算单元主要包含三个部分,脉冲-电压转换电路(Spike-to-Voltage Converter,SVC)、8T SRAM单元及电流输出电路,包含晶体管M1-M10、和两个反相器INV0、INV1,整个电路一共包含14个晶体管。该电路工作原理分为三个阶段进行:
第一阶段:读位线RBL电压预充阶段,此时开关闭合,SVC电路接收到来自输入神经元的脉冲信号,通过晶体管M1、M2、M3对SRAM的读位线电容充电。
第二阶段:SRAM执行乘法操作,当读位线RBL电压预充结束后,把RWL置为高电平,SRAM读控制管M5打开(突触权重在训练结束后即存储在SRAM中,SRAM中Q为‘0’表示突触权重为低,Q为‘1’表示突触权重为高),SRAM会根据存的数据Q(0/1)的大小通过M5、M6通路对位线RBL电压放电,当Q为‘0’时,RBL被放电到地,当Q为‘1’时,位线RBL将保持原有电压。
第三阶段:SRAM执行乘法操作后,电流输出电路会根据当前位线RBL电压通过M9、M10通路,产生位线输出电流,输送给输出层神经元。
本发明实施例提供的用于脉冲神经网络存内计算的芯片,通过在片上设置由SVC阵列和SRAM阵列构成存内计算模块,实现了片上训练、片上存储及片上推理功能,突破了冯诺依曼架构的计算瓶颈,从而实现集存储与计算一体的低功耗计算,实现了输出精度可调,有效的提升了计算性能。
基于上述实施例的内容,作为可选地,如图5所示,SVC阵列将生物脉冲信号转换成电压信号输入至SRAM阵列,是采取并行处理的方式。
与之对应地,由于,SVM阵列采取并行处理的方式,在本发明实施例中的存内计算模块中的SRAM阵列进行存储及计算的方式也采取并行的方式,可以有效的提高计算的效率。
基于上述实施例的内容,作为可选地,在每个SVC与SRAM阵列之间增设一个预充开关,用于控制电压信号输入的启停。
该预充开关的具体为了可以是按如图8所示的位置进行设置,由于本申请的技术方案中涉及两个模式,即Training mode和Testing mode,其中在Training mode下,神经网络突触阵列模块4参与计算,用于根据样本生物脉冲信号,获取神经网络突触权重值,并将神经网络突触权重值存储至存内计算模块2中;但是在Testing mode下,神经网络突触阵列模块4则不参与计算过程,此时可以通过预充开关控制两个模式之间的切换。
另外,在本发明实施例提供的用于脉冲神经网络存内计算的芯片还可以通过程序指令控制预充开关的停启,例如根据一个模拟量输入信号(简称Pre-charge信号),实现对预充开关的自动化控制。
基于上述实施例的内容,作为可选地,信号输出模块3为输出层神经元电路阵列结构;输出层神经元电路阵列结构由多个输出层神经元电路和多个突触子阵列组成,突触子阵列在输出层神经元电路之间作层内链接,以实现侧向抑制机制。
图9为本发明实施例提供的一种用于脉冲神经网络存内计算方法的流程示意图,如图9所示,该方法包括但不限于以下步骤:
步骤S1:根据预先存储的神经网络突触权重值,对输入的生物脉冲信号进行存内运算,获取位线电流;
步骤S2:根据位线电流生成识别脉冲信号;
步骤S3:生物脉冲信号是由图像像素阵列转换获取的。
具体地,在本发明实施例中,首先,通过图像提取技术,对目标图像进行特征提取获取图像像素阵列,将图像像素阵列作为数字量信号输入至信号输入模块1。信号输入模块1对输入的数值量信号进行处理,生成作为SNN模型输入的生物脉冲信号。例如,可以对数字量信号先进行数模转换成模拟量信号,然后将生成的模拟量信号进行二值化等操作,生成对应的生物脉冲信号。
进一步地,在转换获取到生物脉冲信号后,将其输入至存内计算模块2,在该存内计算模块2中预先存储有神经网络突触权重值。在存内计算模块2中首先将输入的生物脉冲信号转换成脉冲电压信号,然后根据神经网络突触权重值,对脉冲电压信号进行乘累加(multiply-and-accumulate,MAC)操作后,获取对应的位线电流信号。
进一步地,将位线电流信号输入至信号输出模块后,位于信号输出模块中的输出层神经元电路输出层电路结构用于将对位线电流信号进行计算后,再利用位于信号输出模块中的输出层电路结构将输出的结果以脉冲的形式输出,即输出识别脉冲信号。
最后,根据识别脉冲信号的特性,获取对目标图像的识别结果。
基于上述实施例的内容,作为一种可选实施例,上述存内计算方法还包括获取所述神经网络突触权重值,具体为:根据样本生物脉冲信号,获取神经网络突触权重值;将神经网络突触权重值储存至静态随机存储器阵列。
图10为本发明实施例提供的脉冲神经网络存内芯片在一个周期内的操作波形仿真结果示意图,如图10所示,训练开启信号(Training-Ctr)和推理开启信号(Testing-Ctr)分别为控制训练和推理模式的控制信号,位线电压复位信号(RBL-RESET)为位线RBL的复位信号,电压预充开关信号(Pre-charge)为开关PR的控制信号,用来控制对SRAM位线电压的预充。如图所示,当Training-Ctr信号有效时,网络根据算法更新突触权重,训练结束后突触权重被训练成高权重,此时SRAM的写字线WWL有效,把“1”写入SRAM单元;当Testing-Ctr和Pre-charge信号有效时,电路开始对SRAM的读位线预充电,预充结束后,SRAM读字线RWL有效,SRAM开始执行乘法操作,由于权重为高SRAM内部存“1”,所以RBL电压保持预充结束状态,电流输出电路根据RBL电压产生电流输送给输出神经元使输出神经元产生脉冲。
具体地,图11是运用本发明实施例提供的用于脉冲神经网络存内计算的芯片及计算方法进行图片识别任务时的识别结果示意图,如图11所示,L1为Training mode模式下时间阶段,L2为Testing mode模式下时间阶段,以其中的(A)图为样本图像训练神经网络,在Training mode模式下触发网络“侧向抑制”机制,最终只有“5”号神经元(Output Neuron‘5’)产生高频率脉冲信号,其他神经元仅发射极少量脉冲或不发射脉冲。
在Testing mode模式,用网络先后去识别两个不同的图片:即(B)图和图(C)所示的图片,当识别图(B)时,“5”号神经元发射出密集的脉冲信号,识别图(C)时,“5”号神经元仅发射极少量脉冲信号(图(B)与图(C)之间存在11%的像素重叠)。由此可明显的获知,本发明实施例提供的脉冲神经网络存内芯片能够对图片表现出很好的识别能力。
通过上述仿真实验可以获知:本发明实施例提供的用于脉冲神经网络存内计算的芯片及计算方法,集合类脑计算及存内计算优势,通过集合片上训练、片上存储及片上推理功能,突破了冯诺依曼架构的计算瓶颈,从而实现集存储与计算一体的低功耗计算,实现了输出精度可调,有效的提升了计算性能。并且,由于支持片上非监督训练和高速低功耗并行推理功能,同时采用基于脉冲的数据输出,使得输出精度可调,可以综合考虑输出频率、功耗等来调整输出精度。
图12示例了一种电子设备的实体结构示意图,如图12所示,该电子设备可以包括:处理器(processor)110、通信接口(Communications Interface)120、存储器(memory)130和通信总线140,其中,处理器110,通信接口120,存储器130通过通信总线140完成相互间的通信。处理器110可以调用存储器130中的逻辑指令,以执行如下的方法:根据预先存储的神经网络突触权重值,对输入的生物脉冲信号进行存内运算,获取位线电流;根据位线电流生成识别脉冲信号;所述生物脉冲信号是由图像像素阵列转换获取的。
此外,上述的存储器130中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机计算方法(可以是个人计算机,服务器,或者网络计算方法等)执行本发明各个实施例所述的芯片的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输的芯片,例如包括:根据预先存储的神经网络突触权重值,对输入的生物脉冲信号进行存内运算,获取位线电流;根据位线电流生成识别脉冲信号;所述生物脉冲信号是由图像像素阵列转换获取的。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机计算方法(可以是个人计算机,服务器,或者网络计算方法等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种用于脉冲神经网络存内计算的芯片,其特征在于,包括依次连接的信号输入模块、存内计算模块、信号输出模块;
所述信号输入模块用于将输入的图像像素阵列转换成生物脉冲信号输入至所述存内计算模块;
所述存内计算模块用于根据预先存储的神经网络突触权重值,对所述生物脉冲信号进行存内运算,并将输出的位线电流输入至所述信号输出模块;
所述信号输出模块用于将所述位线电流转换成识别脉冲信号;
还包括神经网络突触阵列模块;
所述神经网络突触阵列模块用于根据样本生物脉冲信号,获取所述神经网络突触权重值,并将所述神经网络突触权重值存储至所述存内计算模块;
所述样本生物脉冲信号是由所述信号输入模块对样本图像像素阵列进行处理后获取的;
所述存内计算模块由脉冲-电压转化器阵列和静态随机存储器阵列构成;
所述脉冲-电压转化器阵列用于将所述生物脉冲信号转换成电压信号输入至所述静态随机存储器阵列;
所述静态随机存储器阵列用于对所述电压信号进行乘累加运算,获取位线电压输入至所述信号输出模块。
2.根据权利要求1所述的用于脉冲神经网络存内计算的芯片,其特征在于,所述神经网络突触阵列模块由生物可塑性突触阵列和比较器阵列构成;
每个生物可塑性突触中包含学习算法电路和突触电路,用于根据样本生物脉冲信号获取突触权重;
每个所述生物可塑性突触连接一个比较器,所述比较器用于对所述突触权重进行二值化后存储至所述存内计算模块。
3.根据权利要求1所述的用于脉冲神经网络存内计算的芯片,其特征在于,所述信号输入模块由模数转化器阵列和输入神经元阵列构成;
所述模数转化器阵列用于将所述图像像素阵列转换成电流信号输入至所述输入神经元阵列;
所述输入神经元阵列用于将所述电流信号转换成所述生物脉冲信号。
4.根据权利要求1所述的用于脉冲神经网络存内计算的芯片,其特征在于,所述脉冲-电压转化器阵列将所述生物脉冲信号转换成电压信号输入至所述静态随机存储器阵列,是采取并行处理的方式。
5.根据权利要求4所述的用于脉冲神经网络存内计算的芯片,其特征在于,在每个脉冲-电压转化器与静态随机存储器阵列之间增设一个预充开关,用于控制所述电压信号输入的启停。
6.根据权利要求1所述的用于脉冲神经网络存内计算的芯片,其特征在于,所述信号输出模块为输出层神经元电路阵列结构;
所述输出层神经元电路阵列结构由多个输出层神经元电路和多个突触子阵列组成,所述突触子阵列在输出层神经元电路之间作层内链接,以实现侧向抑制机制。
7.一种用于脉冲神经网络存内计算方法,其特征在于,包括:
根据预先存储的神经网络突触权重值,对输入的生物脉冲信号进行存内运算,获取位线电流;
根据所述位线电流生成识别脉冲信号;
所述生物脉冲信号是由图像像素阵列转换获取的;
还包括获取所述神经网络突触权重值,具体为:
根据样本生物脉冲信号,获取所述神经网络突触权重值;
将所述神经网络突触权重值储存至静态随机存储器阵列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010682227.4A CN111967586B (zh) | 2020-07-15 | 2020-07-15 | 一种用于脉冲神经网络存内计算的芯片及计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010682227.4A CN111967586B (zh) | 2020-07-15 | 2020-07-15 | 一种用于脉冲神经网络存内计算的芯片及计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111967586A CN111967586A (zh) | 2020-11-20 |
CN111967586B true CN111967586B (zh) | 2023-04-07 |
Family
ID=73361985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010682227.4A Active CN111967586B (zh) | 2020-07-15 | 2020-07-15 | 一种用于脉冲神经网络存内计算的芯片及计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111967586B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112669893B (zh) * | 2020-12-30 | 2022-08-16 | 杭州海康存储科技有限公司 | 确定待使用读电压的方法、系统、装置及设备 |
CN113222107A (zh) * | 2021-03-09 | 2021-08-06 | 北京大学 | 数据处理方法、装置、设备及存储介质 |
CN113159277B (zh) * | 2021-03-09 | 2022-12-23 | 北京大学 | 目标检测方法、装置及设备 |
CN113313240B (zh) * | 2021-08-02 | 2021-10-15 | 成都时识科技有限公司 | 计算设备及电子设备 |
CN113672860B (zh) * | 2021-08-25 | 2023-05-12 | 恒烁半导体(合肥)股份有限公司 | 一种正负数兼容的存内运算方法、乘加运算装置及其应用 |
CN114723023B (zh) * | 2022-03-03 | 2024-04-23 | 北京大学 | 数据通信方法及系统、脉冲神经网络运算系统 |
CN114418081B (zh) * | 2022-03-30 | 2022-07-19 | 浙江大学 | 面向片上脉冲神经网络的神经元实现系统 |
CN114897800A (zh) * | 2022-04-22 | 2022-08-12 | 南京航空航天大学 | 基于SiC神经网络芯片的超高速X射线图像识别方法及装置 |
CN114997385A (zh) * | 2022-06-17 | 2022-09-02 | 北京大学 | 应用于神经网络的存内计算架构的操作方法、装置和设备 |
CN116563616B (zh) * | 2023-04-23 | 2024-01-30 | 北京大学 | 一种基于神经网络的图像识别方法、计算机设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109460817A (zh) * | 2018-09-11 | 2019-03-12 | 华中科技大学 | 一种基于非易失存储器的卷积神经网络片上学习系统 |
CN109784483A (zh) * | 2019-01-24 | 2019-05-21 | 电子科技大学 | 基于fd-soi工艺的二值化卷积神经网络内存内计算加速器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10699778B2 (en) * | 2017-04-28 | 2020-06-30 | Arizona Board Of Regents On Behalf Of Arizona State University | Static random access memory (SRAM) cell and related SRAM array for deep neural network and machine learning applications |
US20190042949A1 (en) * | 2018-09-28 | 2019-02-07 | Intel Corporation | Methodology for porting an ideal software implementation of a neural network to a compute-in-memory circuit |
-
2020
- 2020-07-15 CN CN202010682227.4A patent/CN111967586B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109460817A (zh) * | 2018-09-11 | 2019-03-12 | 华中科技大学 | 一种基于非易失存储器的卷积神经网络片上学习系统 |
CN109784483A (zh) * | 2019-01-24 | 2019-05-21 | 电子科技大学 | 基于fd-soi工艺的二值化卷积神经网络内存内计算加速器 |
Non-Patent Citations (2)
Title |
---|
HÜSREV CILASUN etc..An Inference and Learning Engine for Spiking Neural Networks in Computational RAM (CRAM).《arXiv:2006.03007v1》.2020,第1、3节. * |
面向CNN的高能效SRAM计算阵列的研究与实现;刘炎;《中国优秀硕士学位论文全文数据库信息科技辑》;20200615;第2.2节 * |
Also Published As
Publication number | Publication date |
---|---|
CN111967586A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111967586B (zh) | 一种用于脉冲神经网络存内计算的芯片及计算方法 | |
Long et al. | ReRAM-based processing-in-memory architecture for recurrent neural network acceleration | |
US10692570B2 (en) | Neural network matrix multiplication in memory cells | |
US11501131B2 (en) | Neural network hardware accelerator architectures and operating method thereof | |
US10339041B2 (en) | Shared memory architecture for a neural simulator | |
CN112183739A (zh) | 基于忆阻器的低功耗脉冲卷积神经网络的硬件架构 | |
US20150269480A1 (en) | Implementing a neural-network processor | |
US20200364577A1 (en) | Training of artificial neural networks | |
US20150134582A1 (en) | Implementing synaptic learning using replay in spiking neural networks | |
US9959499B2 (en) | Methods and apparatus for implementation of group tags for neural models | |
Gupta et al. | FPGA implementation of simplified spiking neural network | |
US20140310216A1 (en) | Method for generating compact representations of spike timing-dependent plasticity curves | |
Sun et al. | Low-consumption neuromorphic memristor architecture based on convolutional neural networks | |
US9542645B2 (en) | Plastic synapse management | |
Zheng et al. | Hardware-friendly actor-critic reinforcement learning through modulation of spike-timing-dependent plasticity | |
US9536190B2 (en) | Dynamically assigning and examining synaptic delay | |
Spoon et al. | Accelerating deep neural networks with analog memory devices | |
Liu et al. | A 40-nm 202.3 nJ/classification neuromorphic architecture employing in-SRAM charge-domain compute | |
CN115994221A (zh) | 一种基于忆阻器的文本情感检测系统及方法 | |
Delbruck et al. | Data-driven neuromorphic DRAM-based CNN and RNN accelerators | |
Li et al. | A compact and accelerated spike-based neuromorphic VLSI chip for pattern recognition | |
Taylor et al. | CMOS Implementation of Spiking Equilibrium Propagation for Real-Time Learning | |
Tian et al. | A Lightweight Spiking GAN Model for Memristor-centric Silicon Circuit with On-chip Reinforcement Adversarial Learning | |
EP4386629A1 (en) | Monostable multivibrators-based spiking neural network training method | |
Fang et al. | An 1.38 nJ/Inference Clock-Free Mixed-Signal Neuromorphic Architecture Using ReL-PSP Function and Computing-in-Memory |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |