CN114418080A - 存算一体运算方法、忆阻器神经网络芯片及存储介质 - Google Patents

存算一体运算方法、忆阻器神经网络芯片及存储介质 Download PDF

Info

Publication number
CN114418080A
CN114418080A CN202210108371.6A CN202210108371A CN114418080A CN 114418080 A CN114418080 A CN 114418080A CN 202210108371 A CN202210108371 A CN 202210108371A CN 114418080 A CN114418080 A CN 114418080A
Authority
CN
China
Prior art keywords
analog
memory macro
unit
memristor
output
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
Application number
CN202210108371.6A
Other languages
English (en)
Inventor
胡明
祝叶华
孙炜
高滨
刘宇一
伍冬
吴华强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Guangdong Oppo Mobile Telecommunications Corp Ltd
Zeku Technology Shanghai Corp Ltd
Original Assignee
Tsinghua University
Guangdong Oppo Mobile Telecommunications Corp Ltd
Zeku Technology Shanghai Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University, Guangdong Oppo Mobile Telecommunications Corp Ltd, Zeku Technology Shanghai Corp Ltd filed Critical Tsinghua University
Priority to CN202210108371.6A priority Critical patent/CN114418080A/zh
Publication of CN114418080A publication Critical patent/CN114418080A/zh
Priority to PCT/CN2022/143857 priority patent/WO2023142883A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Memory System (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

本申请实施例公开了一种存算一体运算方法、忆阻器神经网络芯片及存储介质,其中,忆阻器神经网络芯片包括:至少一个模拟存算宏单元和至少一个混合存算宏单元,至少一个所述模拟存算宏单元与至少一个所述混合存算宏单元连接;所述至少一个模拟存算宏单元,用于在单元内的忆阻器阵列上施加输入的模拟电压,并将产生的模拟电流转换成预设范围内的模拟电压后输出;所述至少一个混合存算宏单元,用于在单元内的忆阻器阵列上施加所述至少一个模拟存算宏单元输出的模拟电压,并将产生的模拟电流依次进行钳位、相减、模数转换后输出。

Description

存算一体运算方法、忆阻器神经网络芯片及存储介质
技术领域
本申请实施例涉及存算一体芯片技术领域,尤其涉及一种存算一体运算方法、忆阻器神经网络芯片及存储介质。
背景技术
近年来,通过使用深度学习,人工智能领域取得了长足的发展。人工智能芯片架构层面中存在难以避免的存储单元与计算单元的数据交换。
目前,通常通过忆阻器存算一体架构通过消除传统冯诺依曼架构中计算单元和存储单元之间的数据移动。然而,忆阻器存算一体芯片数据移动过程中存在较大的模数转换开销而且大大限制了芯片的能效。
发明内容
本申请实施例提供一种存算一体运算方法、忆阻器神经网络芯片及存储介质。
本申请实施例的技术方案是这样实现的:
本申请实施例提供了一种忆阻器神经网络芯片,包括:至少一个模拟存算宏单元和至少一个混合存算宏单元,至少一个所述模拟存算宏单元与至少一个所述混合存算宏单元连接;
所述至少一个模拟存算宏单元,用于在单元内的忆阻器阵列上施加输入的模拟电压,并将产生的模拟电流转换成预设范围内的模拟电压后输出;
所述至少一个混合存算宏单元,用于在单元内的忆阻器阵列上施加所述至少一个模拟存算宏单元输出的模拟电压,并将产生的模拟电流依次进行钳位、相减、模数转换后输出。
本申请实施例提供了一种存算一体运算方法,应用于上述忆阻器神经网络芯片,所述方法包括:
利用至少一个模拟存算宏单元,将输入的模拟电压施加到单元内的忆阻器阵列上,并将产生的模拟电流转换成预设范围内的模拟电压后输出;
利用至少一个混合存算宏单元,将所述至少一个模拟存算宏单元输出的模拟电压施加到单元内的忆阻器阵列上,并将产生的模拟电流依次进行钳位、相减、模数转换后输出。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被执行时实现上述存算一体运算方法。
本申请实施例提供了一种存算一体运算方法、忆阻器神经网络芯片及存储介质,其中,忆阻器神经网络芯片包括:至少一个模拟存算宏单元和至少一个混合存算宏单元,至少一个所述模拟存算宏单元与至少一个所述混合存算宏单元连接;所述至少一个模拟存算宏单元,在单元内的忆阻器阵列上施加输入的模拟电压,并将产生的模拟电流转换成预设范围内的模拟电压后输出;所述至少一个混合存算宏单元,用于在单元内的忆阻器阵列上施加所述至少一个模拟存算宏单元输出的模拟电压,并将产生的模拟电流依次进行钳位、相减、模数转换后输出。本申请实施例提供的忆阻器神经网络芯片,基于模拟电路传输数据,减少了芯片中的外围电路,降低了芯片的能耗,提高了芯片的能效。
附图说明
图1为本申请实施例提供的一种忆阻器神经网络芯片的结构示意图;
图2为本申请实施例提供的一种模拟存算宏单元和混合存算宏单元的结构示意图;
图3为本申请实施例提供的一种模拟直传模块的结构示意图;
图4为本申请实施例提供的一种卷积层网络结构示意图;
图5为本申请实施例提供的一种全连接层网络结构示意图;
图6为本申请实施例提供的一种示例性的卷积层数据流示意图;
图7为本申请实施例提供的一种功能单元的结构示意图;
图8为本申请实施例提供的一种存算一体运算方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
另外,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
本申请实施例提供了一种忆阻器神经网络芯片。图1为本申请实施例提供的一种忆阻器神经网络芯片的结构示意图。如图1所示,在本申请的实施例中,忆阻器神经网络芯片包括:至少一个模拟存算宏单元10和至少一个混合存算宏单元11,至少一个所述模拟存算宏单元10与至少一个所述混合存算宏单元11连接;
至少一个模拟存算宏单元10,用于在单元内的忆阻器阵列20上施加输入的模拟电压,并将产生的模拟电流转换成预设范围内的模拟电压后输出;
至少一个混合存算宏单元11,用于在单元内的忆阻器阵列上施加至少一个模拟存算宏单元10输出的模拟电压,并将产生的模拟电流依次进行钳位、相减、模数转换后输出。
需要说明的是,在本申请的实施例中,如图1所示,忆阻器神经网络芯片还可以包括:多路选择器组12和控制器13。至少一个模拟存算宏单元10和至少一个混合存算宏单元11中,存在连接关系的存算宏单元,可以通过多路选择器组12连接,具体的连接方式可以根据实际需求和应用场景设定,本申请实施例不作限定。控制器13与至少一个模拟存算宏单元10和至少一个混合存算宏单元11连接,用于控制至少一个模拟存算宏单元10和至少一个混合存算宏单元11。
具体的,在本申请的实施例中,至少一个模拟存算宏单元10包括多个级联的模拟存算宏单元10,其中,最后一级的模拟存算宏单元10与至少一个混合存算宏单元11连接。下一级存算宏单元输入的模拟电压,是其相连的上一级存算宏单元输出的模拟电压。
需要说明的是,在本申请的实施例中,模拟存算宏单元10和混合存算宏单元11作用的差异取决于两者结构不同,混合存算宏单元11中既有模拟存算宏单元10中部分模块,也有模数转换等模块。混合存算宏单元11实际上有两个用途,一个是用于卷积层网络部分的最后一层输出,因为从卷积层输出到全连接层需要等到全部输出数据都准备好,所以需要将已经计算好的数据存储,等待后面的数据全部计算出来;另一个是用于实现全连接分类器的最后一层网络层,因为最后一层需要输出到片外并存储,因此需要用到模数转换等模块。以下结合图2进行模拟存算宏单元10和混合存算宏单元11结构的详述。
具体的,在本申请的实施例中,如图2所示,至少一个模拟存算宏单元10和至少一个混合存算宏单元11均包括:忆阻器阵列20,具备实现向量矩阵乘法运算的功能。将表征向量的模拟电压施加到忆阻器阵列20上,即相当于实现该向量的向量矩阵乘法运算,其中,阵列字行(Word Line,WL)、阵列位线(Bit Line,BL)和阵列源线(Source Line,SL),阵列字行WL用于控制阵列开启,阵列位线BL用于模拟电压输入,阵列源线SL用于输出产生的模拟电流。
需要说明的是,在本申请的实施例中,对于至少一个模拟存算宏单元10,其包括的忆阻器阵列20的类型和具体数量可以根据实际需求设定,对于至少一个混合存算宏单元11,其包括的忆阻器阵列20可以由两个单晶体管单忆阻器阵列组成,当然,也可以根据实际情况设定。至少一个模拟存算宏单元10和至少一个混合存算宏单元11包括的忆阻器阵列20的大小,可以根据存算宏单元用于实现的神经网络中的网络层设定。
具体的,在本申请的实施例中,如图2所示,至少一个模拟存算宏单元10包括:与忆阻器阵列20连接的模拟直传模块101。
具体的,如图3所示,在本申请的实施例中,模拟直传模块101,包括:积分器1011、开关电容单位增益缓冲器1012、灵敏放大器1013、两路多路选择器1014;
积分器1011的输入端能够接入忆阻器阵列20产生的模拟电流,积分器1011的输出端能够与开关电容单位增益缓冲器1012的输入端连接;
灵敏放大器1013,能够连接于开关电容单位增益缓冲器1012的输出端以及两路多路选择器1014之间;
两路多路选择器1014,与开关电容单位增益缓冲器1012的输出端连接。
需要说明的是,如图3所示,在本申请的实施例中,模拟直传模块101中部署有四个开关S1、S2、S3和S4,通过开关的开合,能够实现两端相连的器件之间的连接或断开,即在开关闭合时,能够实现两端相连的器件之间的连接,在开关打开时,能够实现两端相连的器件之间的断开。
具体的,在本申请的实施例中,积分器1011,用于对忆阻器阵列20产生的模拟电流积分,得到积分电压;
开关电容单位增益缓冲器1012,用于保持并输出积分电压;
灵敏放大器1013,用于比较积分电压与阈值电压;
两路多路选择器1014,用于选择积分电压与阈值电压中最大的电压输出。
需要说明的是,在本申请的实施例中,参考图3所示的模拟直传模块101结构,模拟直传模块101的工作方式如下:开关S1、开关S2闭合时积分器1011置位,之后开关S1闭合,开关S2断开,积分器1011开始积分,即具体在积分电容上积分输入的模拟电流,然后开关S1、开关S2断开,开关S3、开关S4闭合,积分电压完成线性整流并输出。
需要说明的是,在本申请的实施例中,如图3所示,Vref为参考电压,Vth为阈值电压。
需要说明的是,在本申请的实施例中,如图2所示,至少一个模拟存算宏单元10还包括单位增益缓冲器30,其中,用于将输入的模拟电压加载到忆阻器阵列20上。
可以理解的是,在本申请的实施例中,至少一个模拟存算宏单元10中,单位增益缓冲器30将输入的模拟电压施加到内部连接的忆阻器阵列20上,之后,产生的模拟电流经过模拟直传模块101进行转换,输出预设范围内的模拟电压。
具体的,在本申请的实施例中,如图2所示,至少一个混合存算宏单元11,还包括:与忆阻器阵列20连接的单位增益缓冲器30、与单位增益缓冲器30连接的电流减法器111,以及与电流减法器111连接的模数转换器112;
单位增益缓冲器30,用于对忆阻器阵列20产生的模拟电流进行电流钳位,得到钳位电流;
电流减法器111,用于对钳位电流进行减法运算,得到输出电流;
模数转换器112,用于将输出电流模数转换为数字信号后输出。
需要说明的是,在本申请的实施例中,至少一个混合存算宏单元11还包括单位增益缓冲器30、电流减法器111和模数转换器112,其中,电流减法器111和模数转换器112,以及单位增益缓冲器30的数量,需要根据混合存算宏单元11用于实现的神经网络的网络层设定,本申请实施例不作限定。
可以理解的是,在本申请的实施例中,至少一个混合存算宏单元11中的忆阻器阵列20可以为两个单晶体管单忆阻器阵列,其只能实现正权重,其中,对于一个混合存算宏单元11而言,其连接的上一级存算宏单元输出的模拟电压将输入每个单晶体管单忆阻器阵列,需要将每个单晶体管单忆阻器阵列输出的模拟电流利用单位增益缓冲器30做反馈将电流钳位,然后利用电流镜将两路电流复制给电流减法器111,利用电流减法器111再将相减得到的电压输出给模数转换器112转换为数字信号,从而可以缓存到芯片上或芯片外。
以下结合神经网络的网络层,进行忆阻器神经网络芯片的结构详述。
图4为本申请实施例提供的一种卷积层网络结构示意图。如图4所示,在本申请的实施例中,至少一个模拟存算宏单元10包括K2×K2个模拟存算宏单元10,K2×K2个模拟存算宏单元包括大小为(C×K1×K1,N)的忆阻器阵列20,K2×K2个模拟存算宏单元10划分为每组包括K2个模拟存算宏单元10的K2组模拟存算宏单元10;
至少一个混合存算宏单元11包括第一混合存算宏单元,第一混合存算宏单元包括大小为(N×K2×K2,M)的忆阻器阵列20;
K2组模拟存算宏单元10中每组模拟存算宏单元10,分别与第一混合存算宏单元连接;K1、C、N、K2和M为大于等于1的自然数。
需要说明的是,K2组模拟存算宏单元10,具备实现卷积核尺寸为K1×K1,输入通道数为C,输出通道数为N的卷积层的运算功能;第一混合存算宏单元,具备实现卷积核尺寸为K2×K2,输入通道数为N,输出通道数为M的卷积层的运算功能。
需要说明的是,在本申请的实施例中,第一混合存算宏单元即为一个包含的忆阻器阵列20的大小为(N×K2×K2,M)的特定的混合存算宏单元11。
需要说明的是,在本申请的实施例中,如图4所示,对于第一层卷积层硬件架构,为了减少数据等待延迟,需要将第一层卷积复制K2×K2份,分为K2组,每组K2个(C×K1×K1,N)大小的模拟存算宏单元10。阵列字行WL为晶体管栅端,用于控制阵列开启。阵列位线BL晶体管漏连接忆阻器的一端,用于模拟电压输入。阵列源线SL为晶体管源端,用于模拟电流输出。模拟输入电压为1/2VDD±Vread,输入值通过单位增益缓冲器30加到阵列BL上。推理时WL全部开启,通过忆阻器阵列20实现输入向量和权重矩阵的向量矩阵乘,在SL处得到输出模拟电流,并通过模拟直传模块101转换成范围为1/2VDD±Vread的模拟电压。模拟直传模块101工作模式分为两个阶段:首先采样阶段,开关切换到只有积分器1011工作,输出模拟电流在积分电容上积分,设计积分时间为10ns。之后保持阶段,开关切换到只有开关电容单位增益缓冲器1012工作,将积分器1011上的积分电压保持并输出给下一层;同时灵敏放大器1013会将积分电压同阈值电压比较,若积分电压大于阈值电压则多路选择器选择输出积分电压,否则选择输出阈值电压,从而实现卷积层的激活函数的功能。为了充分利用已经求解出的结果,第一层K2组卷积依次工作,即每次只有一组卷积阵列工作,其他组卷积阵列保持结果。因此需要K2路多路选择器,将每次K2组卷积的结果整合输出。
需要说明的是,在本申请的实施例中,如图4所示,对于第二层卷积层硬件架构,即第一混合存算宏单元,其输入为K2组模拟存算宏单元10输出的模拟电压,具体K2组模拟存算宏单元10输出的模拟电压分别输入到第一混合存算宏单元中两个1T1R忆阻器阵列20的BL,工作时两个阵列全部WL开启。由于1T1R只能实现正权重,因此需要将输出电流钳位然后再做减法,具体由单位增益缓冲器30做反馈将电流钳位,然后利用电流镜将两路电流复制给电流减法器111,然后再将相减得到的电压利用模数转换112转换为数字信号。
图5为本申请实施例提供的一种全连接层网络结构示意图。如图5所示,在本申请的实施例中,至少一个模拟存算宏单元10包括第一模拟存算宏单元和第二模拟存算宏单元,第一模拟存算宏单元包括大小为(S,L)的忆阻器阵列20,第二模拟存算宏单元包括大小为(L,P)的忆阻器阵列20;
至少一个混合存算宏单元11包括第二混合存算宏单元,第二混合存算宏单元包括大小为(P,Q)的忆阻器阵列20;
第二模拟存算宏单元连接于第一模拟存算宏单元和第二混合存算宏单元之间;S、L、P和Q为大于等于1的自然数。
需要说明的是,在本申请的实施例中,第一模拟存算宏单元,具备实现输入神经元个数为S,输出神经元个数为L的全连接层的运算功能;第二模拟存算宏单元,具备实现输入神经元个数为L,输出神经元个数为P的全连接层的运算功能;第二混合存算宏单元,具备实现输入神经元个数为P,输出神经元个数为Q的全连接层的运算功能。
需要说明的是,在本申请的实施例中,对于第一层全连接层硬件架构,其结构类似于连续两个卷积层网络的第一层卷积层硬件架构,只是由于全连接层不存在数据等待,因此不需要复制。
需要说明的是,在本申请的实施例中,对于第二层全连接层硬件架构,若只有两层全连接层,其结构同连续两个卷积层网络的第二层卷积层硬件架构一样,若还有第三层全连接层,则模拟直传模块101之后连接对应的混合存算宏单元11继续进行处理后输出。
需要说明的是,在本申请的实施例中,模拟存算宏单元10和混合存算宏单元11均可以包括电流镜,此外,模拟存算宏单元10也可以包括电流减法器111,具体可以根据实际需求设定,本申请实施例不作限定。
以下结合一个具体的实例对上述忆阻器神经网络芯片进一步详述。
在本申请的实施例中,预设神经网络的结构如表1所示。
Figure BDA0003494607490000091
如表1所示,其中K是卷积核尺寸;A为卷积层输入通道数;B为卷积层输出通道数;IN,OUT分别为全连接层输入神经元个数和输出神经元个数;Row,Col分别为映射的忆阻器阵列20的行数和列数,replic为阵列个数,默认为1;C,H,W分别为卷积层输入特征图的通道数、高度、宽度。
针对表1所示的预设神经网络,如图6所示,对于连续两个卷积层网络的硬件架构中的第一层卷积层,为了减少数据等待延迟,需要将第一层卷积层复制25份,分为5组,每组5个(75,6)大小的模拟存算宏单元10。对于连续两个卷积层网络的硬件架构中的第二层卷积层,为(150,16)大小的混合存算宏单元11,第一层卷积层的结果输入到混合存算宏单元11中两个1T1R忆阻器阵列20的BL。对于数据集中一张图片的输入特征图大小为32x32x3,输入到第一层卷积层硬件上时,会将输入特征图展开依次输入到阵列上。
具体的,在本申请的实施例中,图6输入特征图中黑色方框标出的13x13x3的大块为第一次输入到第一层卷积层阵列上的输入,大块中的小块为5x5x3,每个大块中有25个小块,小块间步长为2。黑色方框中标灰色的部分为5个[3,5,5]的小块,展开为5个维度[75]的向量后会输入到第一组5个(75,6)的模拟存算宏单元10上。同理,其他四列的5个3x5x5的块会分别输入到第二~五组的模拟存算宏单元10上。然后五组多路选择器分别选择第一、二、三、四、五组阵列的输出到第二层卷积层。
在第二次输入时,黑色方框会右移两步,因此需要计算的只有此时大块中组最右边的一列(第五列),其他列对应的计算结果已经在第一拍计算好并存储在第二~五组阵列的模拟直传模块102的积分电容上。将第五列5个[3,5,5]的小块展开为5个维度[75]的向量后输入到第一组5个(75,6)的模拟存算宏单元10上,其他第二~五组阵列的保持上次结果,然后五组多路选择器分别选择第二、三、四、五、一组阵列的输出到第二层卷积层。
第三次输入时,黑色方框会再右移两步,需要计算的是此时大块中组最右边的一列(第五列),其他列对应的计算结果已经在第一拍和第二拍时计算好并存储在第三~五组和第一组阵列的模拟直传模块102的积分电容上。将第五列5个[3,5,5]的小块展开为5个维度[75]的向量后输入到第二组5个(75,6)的模拟存算宏单元10上,其他第三~五组和第一组阵列的保持之前结果,然后五组多路选择器分别选择第三、四、五、一、二组阵列的输出到第二层卷积层。之后输入依此类推。
需要说明的是,在本申请的实施例中,忆阻器神经网络芯片适用于循环神经网络,在此情况下,如图1和图7所示,忆阻器神经网络芯片中还包括功能单元14。
具体的,如图7所示,在本申请的实施例中至少一个模拟存算宏单元10包括:用于输入的模拟存算宏单元10和用于循环的模拟存算宏单元10,至少一个混合存算宏单元包括:用于输出的混合存算单元,忆阻器神经网络还包括:
与用于输入的模拟存算宏单元10、用于循环的模拟存算宏单元10,以及用于输出的混合存算宏单元11分别连接的功能单元14;
功能单元14,用于得到用于输入的模拟存算宏单元10和用于循环的模拟存算宏单元10输出的总模拟电流,并利用总模拟电流产生输出电压,将输出电压输出至用于输出的混合存算宏单元11。
需要说明的是,在本申请的实施例中,功能单元14不仅可以将输出电压输出至用于输出的混合存算单元11,供其继续完成后续处理,还可以利用输出电压驱动用于循环的模拟存算宏单元10,使得用于循环的模拟存算宏单元10循环工作。
具体的,如图7所示,在本申请的实施例中,功能单元14,包括:两个模拟直传模块101和激活模拟电路141;
激活模拟电路141连接于两个模拟直传模块101之间;
两个模拟直传模块101中,一个为输入直传模块,另一个为输出直传模块;
输入直传模块,与用于输入的模拟存算宏单元10和用于循环的模拟存算宏单元10连接,用于得到总模拟电流,并将总模拟电流转换为预设范围内的模拟电压并输出;
激活模拟电路141,用于激活输入直传模块输出的模拟电压,并将产生激活电流输出;
输出直传模块,用于将激活电流转换为预设范围内的模拟电压,作为输出电压。
本申请实施例提供了一种忆阻器神经网络芯片,包括:至少一个模拟存算宏单元和至少一个混合存算宏单元,至少一个所述模拟存算宏单元与至少一个所述混合存算宏单元连接;所述至少一个模拟存算宏单元,在单元内的忆阻器阵列上施加输入的模拟电压,并将产生的模拟电流转换成预设范围内的模拟电压后输出;所述至少一个混合存算宏单元,用于在单元内的忆阻器阵列上施加所述至少一个模拟存算宏单元输出的模拟电压,并将产生的模拟电流依次进行钳位、相减、模数转换后输出。本申请实施例提供的忆阻器神经网络芯片,基于模拟电路传输数据,减少了芯片中的外围电路,降低了芯片的能耗,提高了芯片的能效。
本申请实施例还提供了一种存算一体运算方法,应用于上述忆阻器神经网络芯片。图8为本申请实施例提供的一种存算一体运算方法的流程示意图。如图8所示,在本申请的实施例中,存算一体运算方法包括:
S801、利用至少一个模拟存算宏单元,将输入的模拟电压施加到单元内的忆阻器阵列上,并将产生的模拟电流转换成预设范围内的模拟电压后输出。
需要说明的是,在本申请的实施例中,如上述忆阻器神经网络芯片的结构中所述,至少一个模拟存算宏单元10能够将输入的模拟电压施加到忆阻器阵列20上,以实现向量矩阵乘法运算,并将产生的模拟电流转换成预设范围内的模拟电压后输出,其中,每个模拟存算宏单元10中的具体模块和器件实现的运算步骤在此不再赘述。
S802、利用至少一个混合存算宏单元,将至少一个模拟存算宏单元输出的模拟电压施加到单元内的忆阻器阵列上,并将产生的模拟电流依次进行钳位、相减、模数转换后输出。
需要说明的是,在本申请的实施例中,如上述忆阻器神经网络芯片的结构中所述,至少一个混合存算宏单元11能够将至少一个模拟存算宏单元10输出的模拟电压施加到忆阻器阵列20上,以实现向量矩阵乘法运算,并将产生的模拟电流依次进行钳位、相减、模数转换后输出,其中,每个混合存算宏单元11中的具体模块和器件实现的运算步骤在此不再赘述。
需要说明的是,在本申请的实施例中,忆阻器神经网络芯片利用控制器13控制不同模拟存算宏单元10和不同混合存算宏单元11工作,本申请实施例不作限定。
可以理解的是,在本申请的实施例中,忆阻器神经网络芯片,利用至少一个模拟存算宏单元10和至少一个混合存算宏单元11基于模拟电路传输数据,减少了芯片中的外围电路,降低了芯片的能耗,提高了芯片的能效。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述存算一体运算方法。计算机可读存储介质可以是是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);也可以是包括上述存储器之一或任意组合的各自设备,如移动电话、计算机、平板设备、个人数字助理
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本实用申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种忆阻器神经网络芯片,其特征在于,包括:至少一个模拟存算宏单元和至少一个混合存算宏单元,至少一个所述模拟存算宏单元与至少一个所述混合存算宏单元连接;
所述至少一个模拟存算宏单元,用于在单元内的忆阻器阵列上施加输入的模拟电压,并将产生的模拟电流转换成预设范围内的模拟电压后输出;
所述至少一个混合存算宏单元,用于在单元内的忆阻器阵列上施加所述至少一个模拟存算宏单元输出的模拟电压,并将产生的模拟电流依次进行钳位、相减、模数转换后输出。
2.根据权利要求1所述的忆阻器神经网络芯片,其特征在于,
所述至少一个模拟存算宏单元包括多个级联的模拟存算宏单元,其中,最后一级的模拟存算宏单元与所述至少一个混合存算宏单元连接。
3.根据权利要求1所述的忆阻器神经网络芯片,其特征在于,
所述至少一个模拟存算宏单元和所述至少一个混合存算宏单元包括的忆阻器阵列,具备实现向量矩阵乘法运算的功能。
4.根据权利要求1所述的忆阻器神经网络芯片,其特征在于,
所述至少一个模拟存算宏单元还包括:与忆阻器阵列连接的模拟直传模块;
所述模拟直传模块,包括:积分器、开关电容单位增益缓冲器、灵敏放大器和两路多路选择器;
所述积分器的输入端能够接入忆阻器阵列产生的模拟电流,所述积分器的输出端能够与所述开关电容单位增益缓冲器的输入端连接;
所述灵敏放大器,能够连接于所述开关电容单位增益缓冲器的输出端以及所述两路多路选择器之间;
所述两路多路选择器,与所述开关电容单位增益缓冲器的输出端连接。
5.根据权利要求4所述的忆阻器神经网络芯片,其特征在于,
所述积分器,用于对忆阻器阵列产生的模拟电流积分,得到积分电压;
所述开关电容单位增益缓冲器,用于保持并输出所述积分电压;
所述灵敏放大器,用于比较所述积分电压与阈值电压;
所述两路多路选择器,用于选择所述积分电压与所述阈值电压中最大的电压输出。
6.根据权利要求1所述的忆阻器神经网络芯片,其特征在于,
所述至少一个混合存算宏单元,还包括:与忆阻器阵列连接的单位增益缓冲器、与所述单位增益缓冲器连接的电流减法器,以及与所述电流减法器连接的模数转换器;
所述单位增益缓冲器,用于对忆阻器阵列产生的模拟电流进行电流钳位,得到钳位电流;
所述电流减法器,用于对所述钳位电流进行减法运算,得到输出电流;
所述模数转换器,用于将所述输出电流模数转换为数字信号后输出。
7.根据权利要求1所述的忆阻器神经网络芯片,其特征在于,包括:
所述至少一个模拟存算宏单元包括K2×K2个模拟存算宏单元,所述K2×K2个模拟存算宏单元包括大小为(C×K1×K1,N)的忆阻器阵列,所述K2×K2个模拟存算宏单元划分为每组包括K2个模拟存算宏单元的K2组模拟存算宏单元;
所述至少一个混合存算宏单元包括第一混合存算宏单元,所述第一混合存算宏单元包括大小为(N×K2×K2,M)的忆阻器阵列;
所述K2组模拟存算宏单元中每组模拟存算宏单元,分别与所述第一混合存算宏单元连接;K1、C、N、K2和M为大于等于1的自然数。
8.根据权利要求7所述的忆阻器神经网络芯片,其特征在于,
所述K2组模拟存算宏单元,具备实现卷积核尺寸为K1×K1,输入通道数为C,输出通道数为N的卷积层的运算功能;
所述第一混合存算宏单元,具备实现卷积核尺寸为K2×K2,输入通道数为N,输出通道数为M的卷积层的运算功能。
9.根据权利要求1所述的忆阻器神经网络芯片,其特征在于,
所述至少一个模拟存算宏单元包括第一模拟存算宏单元和第二模拟存算宏单元,所述第一模拟存算宏单元包括大小为(S,L)的忆阻器阵列,所述第二模拟存算宏单元包括大小为(L,P)的忆阻器阵列;
所述至少一个混合存算宏单元包括第二混合存算宏单元,所述第二混合存算宏单元包括大小为(P,Q)的忆阻器阵列;
所述第二模拟存算宏单元连接于所述第一模拟存算宏单元和所述第二混合存算宏单元之间;S、L、P和Q为大于等于1的自然数。
10.根据权利要求9所述的忆阻器神经网络芯片,其特征在于,
所述第一模拟存算宏单元,具备实现输入神经元个数为S,输出神经元个数为L的全连接层的运算功能;
所述第二模拟存算宏单元,具备实现输入神经元个数为L,输出神经元个数为P的全连接层的运算功能;
所述第二混合存算宏单元,具备实现输入神经元个数为P,输出神经元个数为Q的全连接层的运算功能。
11.根据权利要求1所述的忆阻器神经网络芯片,其特征在于,所述至少一个模拟存算宏单元包括:用于输入的模拟存算宏单元和用于循环的模拟存算宏单元,所述至少一个混合存算宏单元包括:用于输出的混合存算单元,所述忆阻器神经网络芯片还包括:
与所述用于输入的模拟存算宏单元、所述用于循环的模拟存算宏单元,以及所述用于输出的混合存算宏单元分别连接的功能单元;
所述功能单元,用于得到所述用于输出的模拟存算宏单元和所述用于循环的模拟存算宏单元输出的总模拟电流,并利用所述总模拟电流产生输出电压,将所述输出电压输出至所述用于输出的混合存算宏单元。
12.根据权利要求11所述的忆阻器神经网络芯片,其特征在于,
所述功能单元,包括:两个模拟直传模块和激活模拟电路;
所述激活模拟电路连接于所述两个模拟直传模块之间;
所述两个模拟直传模块中,一个为输入直传模块,另一个为输出直传模块;
所述输入直传模块,与所述输入模拟存算宏单元和所述循环模拟存算宏单元连接,用于得到所述总模拟电流,并将所述总模拟电流转换为预设范围内的模拟电压并输出;
所述激活模拟电路,用于激活所述输入直传模块输出的模拟电压,并将产生激活电流输出;
所述输出直传模块,用于将所述激活电流转换为预设范围内的模拟电压,作为所述输出电压。
13.根据权利要求1所述的忆阻器神经网络芯片,其特征在于,还包括:
控制器,所述控制器与所述至少一个模拟存算宏单元和所述至少一个混合存算宏单元连接,用于控制所述至少一个模拟存算宏单元和所述至少一个混合存算宏单元。
14.一种存算一体运算方法,应用于权利要求1-13任一项所述的忆阻器神经网络芯片,其特征在于,所述方法包括:
利用至少一个模拟存算宏单元,将输入的模拟电压施加到单元内的忆阻器阵列上,并将产生的模拟电流转换成预设范围内的模拟电压后输出;
利用至少一个混合存算宏单元,将所述至少一个模拟存算宏单元输出的模拟电压施加到单元内的忆阻器阵列上,并将产生的模拟电流依次进行钳位、相减、模数转换后输出。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被执行时实现如权利要求14所述的存算一体运算方法。
CN202210108371.6A 2022-01-28 2022-01-28 存算一体运算方法、忆阻器神经网络芯片及存储介质 Pending CN114418080A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210108371.6A CN114418080A (zh) 2022-01-28 2022-01-28 存算一体运算方法、忆阻器神经网络芯片及存储介质
PCT/CN2022/143857 WO2023142883A1 (zh) 2022-01-28 2022-12-30 存算一体运算方法、忆阻器神经网络芯片及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210108371.6A CN114418080A (zh) 2022-01-28 2022-01-28 存算一体运算方法、忆阻器神经网络芯片及存储介质

Publications (1)

Publication Number Publication Date
CN114418080A true CN114418080A (zh) 2022-04-29

Family

ID=81279275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210108371.6A Pending CN114418080A (zh) 2022-01-28 2022-01-28 存算一体运算方法、忆阻器神经网络芯片及存储介质

Country Status (2)

Country Link
CN (1) CN114418080A (zh)
WO (1) WO2023142883A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114781634A (zh) * 2022-06-21 2022-07-22 之江实验室 一种基于忆阻器的神经网络阵列的自动映射方法和装置
CN116881193A (zh) * 2023-09-01 2023-10-13 北京犀灵视觉科技有限公司 一种感存算一体宏单元电路、系统及数据处理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042715B2 (en) * 2019-04-11 2021-06-22 International Business Machines Corporation Electronic system for performing a multiplication of a matrix and vector
CN111460365B (zh) * 2020-03-10 2021-12-03 华中科技大学 一种基于忆阻线性神经网络的方程组求解器及其操作方法
CN111478703B (zh) * 2020-04-14 2023-08-22 中国人民解放军国防科技大学 基于忆阻交叉阵列的处理电路及输出电流的补偿方法
CN111507464B (zh) * 2020-04-19 2022-03-18 华中科技大学 一种基于忆阻器阵列的方程求解器及其操作方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114781634A (zh) * 2022-06-21 2022-07-22 之江实验室 一种基于忆阻器的神经网络阵列的自动映射方法和装置
CN114781634B (zh) * 2022-06-21 2022-11-04 之江实验室 一种基于忆阻器的神经网络阵列的自动映射方法和装置
CN116881193A (zh) * 2023-09-01 2023-10-13 北京犀灵视觉科技有限公司 一种感存算一体宏单元电路、系统及数据处理方法
CN116881193B (zh) * 2023-09-01 2023-11-10 北京犀灵视觉科技有限公司 一种感存算一体宏单元电路、系统及数据处理方法

Also Published As

Publication number Publication date
WO2023142883A1 (zh) 2023-08-03

Similar Documents

Publication Publication Date Title
WO2023142883A1 (zh) 存算一体运算方法、忆阻器神经网络芯片及存储介质
US11270764B2 (en) Two-bit memory cell and circuit structure calculated in memory thereof
Sun et al. Fully parallel RRAM synaptic array for implementing binary neural network with (+ 1,− 1) weights and (+ 1, 0) neurons
US11507808B2 (en) Multi-layer vector-matrix multiplication apparatus for a deep neural network
US20190188237A1 (en) Method and electronic device for convolution calculation in neutral network
JP6794891B2 (ja) ニューラルネットワーク回路
US11966833B2 (en) Accelerating neural networks in hardware using interconnected crossbars
WO2021027214A1 (zh) 基于flash存算阵列的脉冲型卷积神经网络
TW202143026A (zh) 記憶體內運算架構及用於執行乘積累加運算的方法
CN108446764B (zh) 一种新型神经形态芯片架构
WO2020172951A1 (zh) 可软件定义存算一体芯片及其软件定义方法
US11335400B2 (en) Computing-in-memory chip and memory cell array structure
CN113792010A (zh) 存算一体芯片及数据处理方法
CN111052153A (zh) 使用半导体存储元件的神经网络运算电路及动作方法
CN209766043U (zh) 存算一体芯片、存储单元阵列结构
CN112636745B (zh) 逻辑单元、加法器以及乘法器
CN114298296A (zh) 基于存算一体阵列的卷积神经网络处理方法和装置
US11922169B2 (en) Refactoring mac operations
CN211016545U (zh) 基于NAND Flash的存内计算芯片、存储装置以及终端
CN115794728A (zh) 一种存内计算位线钳位与求和外围电路及其应用
CN114791796A (zh) 一种基于分离栅闪存晶体管的多输入计算单元及其计算方法
CN111464764A (zh) 一种基于忆阻器的图像传感器及其进行卷积运算的方法
US20210287745A1 (en) Convolution operation method based on nor flash array
WO2020013934A1 (en) Redundant memory access for rows or columns containing faulty memory cells in analog neural memory in deep learning artificial neural network
CN114842893A (zh) 存储器装置及其操作方法

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