CN112580790B - 神经网络计算电路、芯片及系统 - Google Patents

神经网络计算电路、芯片及系统 Download PDF

Info

Publication number
CN112580790B
CN112580790B CN201910932314.8A CN201910932314A CN112580790B CN 112580790 B CN112580790 B CN 112580790B CN 201910932314 A CN201910932314 A CN 201910932314A CN 112580790 B CN112580790 B CN 112580790B
Authority
CN
China
Prior art keywords
current
circuit
computing
voltage
neural network
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
Application number
CN201910932314.8A
Other languages
English (en)
Other versions
CN112580790A (zh
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.)
Huawei Technologies Co Ltd
Institute of Microelectronics of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Microelectronics of CAS
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 Huawei Technologies Co Ltd, Institute of Microelectronics of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201910932314.8A priority Critical patent/CN112580790B/zh
Publication of CN112580790A publication Critical patent/CN112580790A/zh
Application granted granted Critical
Publication of CN112580790B publication Critical patent/CN112580790B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Control Of Electrical Variables (AREA)

Abstract

本申请公开了一种神经网络计算电路、芯片及系统,属于神经网络技术领域。该神经网络计算电路包括第一计算单元、第二计算单元和处理电路。所述第一计算单元用于根据第一计算单元的输入端电压、第一计算单元的输出端电压以及设置的第一权重值获得第一电流。所述第二计算单元用于根据第二计算单元的输入端电压、第二计算单元的输出端电压以及设置的第二权重值获得第二电流。所述处理电路,分别与第一计算单元的输出端和第二计算单元的输出端连接,用于根据第一电流和第二电流获取目标电流差,并根据目标电流差获取用于指示目标计算结果的输出电压,其中,目标计算结果用于指示神经元基于输入数据的权重值对输入数据的计算结果。

Description

神经网络计算电路、芯片及系统
技术领域
本申请涉及神经网络技术领域,特别涉及一种神经网络计算电路、芯片及系统。
背景技术
神经网络包括多个卷积层,每个卷积层的功能可以通过一个神经网络计算电路实现。实际应用中,当在采用阻变存储器(resistance random access memory,RRAM)或相变存储器(phase-change memory,PCM)等电阻型计算单元时,由于计算单元中无法存储负值的权重值,因此,神经网络计算电路通常采用正权重计算阵列和负权重计算阵列共同实现该卷积层的神经网络计算。在计算过程中,正权重计算阵列的输出结果与负权重计算阵列的输出结果的差值为该卷积层的计算结果。正权重计算阵列和负权重计算阵列均包括:阵列排布的多个计算单元。正权重计算阵列中的多列计算单元与负权重计算阵列中的多列计算单元一一对应,且存在对应关系的两列计算单元与一个神经元对应。
相关技术中,可分别将存在对应关系的两列计算单元的输出转换为电压,并将该两列计算单元对应的转换后的电压的差值输入至下一卷积层,以推动下一卷积层执行运算。其中,在转换电压时,是通过在每列计算单元的输出端串联电阻实现的。但是,这种方式会导致转换电路占用的面积较大,且功耗较高。
发明内容
本申请提供了一种神经网络计算电路、芯片及系统,技术方案如下:
第一方面,提供了一种神经网络计算电路,包括第一计算单元、第二计算单元以及处理电路。所述第一计算单元中设置有第一权重值。所述第一计算单元用于根据第一计算单元的输入端电压、第一计算单元的输出端电压以及所述第一权重值获得第一电流。其中,第一计算单元的输入端电压用于指示输入数据,第一电流用于指示第一计算单元的输入数据与第一权重值的第一计算结果。所述第二计算单元中设置有第二权重值。所述第二计算单元用于根据第二计算单元的输入端电压、第二计算单元的输出端电压以及第二权重值获得第二电流。第二电流用于指示第二计算单元的输入数据与第二权重值的第二计算结果。其中,第二计算单元的输入端电压与第一计算单元的输入端电压相同。第二计算单元的输出端电压与第一计算单元的输出端电压均为参考电压。且第一计算单元和第二计算单元与神经网络系统中的同一神经元对应。第一权重值和第二权重值的差值用于指示输入神经元的数据的权重值。所述输入神经元的数据与输入数据相同。所述处理电路分别与第一计算单元的输出端和第二计算单元的输出端连接。所述处理电路用于根据第一电流和第二电流获取目标电流差,并根据目标电流差获取用于指示目标计算结果的输出电压。其中,目标计算结果用于指示神经元基于输入数据的权重值对输入数据的计算结果。
在本申请实施例提供的神经网络计算电路中,通过根据第一电流和第二电流获取目标电流差,将两路电流合并为一路电流,再对合并后的一路电流进行电流电压转换,从而无需使用两路电流电压转换电路分别将第一电流和第二电流转换为电压,减少了一路电流电压转换电路的使用。相较于相关技术,减小了神经网络计算电路占用的面积,且减小了神经网络计算电路的功耗。
可选的,所述神经网络计算电路还包括:偏置电路。所述偏置电路与处理电路连接,所述偏置电路用于向处理电路提供偏置电流,偏置电流用于指示神经元的偏置。
相应的,所述处理电路用于根据第一电流、第二电流和偏置电流,获取目标电流差,并根据目标电流差获取输出电压。通过偏置电流体现神经元的偏置,使得可以通过调整该偏置电流实现对神经元的偏置的调整,提高了调整偏置的灵活性。
可选的,所述神经网络计算电路还包括:第一电压钳位电路和第二电压钳位电路中的一个或两个。
所述第一电压钳位电路与第一计算单元的输出端连接。所述第一电压钳位电路用于控制第一计算单元的输出端电压为参考电压。通过第一电压钳位电路控制第一计算单元的输出端的电位,提高了该输出端的电压稳定性,能够使第一计算单元在稳定的输出端电压的基础上,根据第一计算单元的输入端电压输出第一电流,保证了第一电流的精度,进而保证了电流电压转换的准确性。
所述第二电压钳位电路与第二计算单元的输出端连接。所述第二电压钳位电路用于控制第二计算单元的输出端电压为参考电压。通过第二电压钳位电路控制第二计算单元的输出端的电位,提高了该输出端的电压稳定性,能够使第二计算单元在稳定的输出端电压的基础上,根据第二计算单元的输入端电压输出第二电流,保证了第二电流的精度,进而保证了电流电压转换的准确性。
可选的,为了对电流进行缩放处理,该神经网络计算电路还可以包括:第一缩放电路和所述第二缩放电路中的一个或全部。所述第一缩放电路对第一电流进行缩放处理。所述第二缩放电路对第二电流进行缩放处理。
所述第一缩放电路分别连接第一计算单元的输出端以及处理电路的输入端。所述第一缩放电路用于按照设定的缩放倍数对第一电流进行缩放处理,向处理电路提供经过缩放处理后的第一电流。
所述第二缩放电路分别连接第二计算单元的输出端以及处理电路的输入端。所述第二缩放电路用于按照设定的缩放倍数对第二电流进行缩放处理,向处理电路提供经过缩放处理后的第二电流。
在一种可实现方式中,所述处理电路包括:电流差分电路和转换电路。所述电流差分电路分别与第一计算单元的输出端和第二计算单元的输出端连接。所述电流差分电路用于根据第一电流和第二电流,获取目标电流差。所述转换电路与电流差分电路的输出端连接。所述转换电路用于根据目标电流差进行电流电压转换,得到输出电压。
可选的,电流差分电路包括电流镜。这样一来,能够有效保证对第一电流和第二电流做差的准确性。
并且,第一计算单元和第二计算单元为电阻型存储器计算单元。所述电阻型存储器计算单元包括阻变存储器(resistance random access memory,RRAM)或相变存储器(phase-change memory,PCM)等。
第二方面,提供了一种神经网络计算芯片,该神经网络计算芯片包括:如第一方面以及第一方面的任意一种可能的实现方式中所述的神经网络计算电路。
第三方面,提供了一种神经网络计算系统,包括多个如第二方面所述的神经网络计算芯片,其中,所述神经网络计算芯片中包括多个如第一方面以及第一方面的任意一种可能的实现方式中所述的神经网络计算电路。
附图说明
图1是本申请实施例提供的一种神经网络计算电路的结构示意图;
图2是本申请实施例提供的另一种神经网络计算电路的结构示意图;
图3是本申请实施例提供的一种神经网络计算电路中计算阵列的电路示意图;
图4是本申请实施例提供的另一种神经网络计算电路的结构示意图;
图5是本申请实施例提供的一种处理电路的结构示意图;
图6是本申请实施例提供的一种处理电路的电路示意图;
图7是本申请实施例提供的再一种神经网络计算电路的结构示意图;
图8是本申请实施例提供的另一种神经网络计算电路的电路示意图;
图9是本申请实施例提供的一种神经网络计算电路的输出电压随第一电流发生变化的示意图;
图10是本申请实施例提供的一种神经网络计算电路的输出电压随第一电流和第二电流发生变化的示意图;
图11是本申请实施例提供的一种神经网络计算芯片的结构示意图;
图12是本申请实施例提供的另一种神经网络计算芯片的结构示意图;
图13是本申请实施例提供的一种神经网络计算系统的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请所有实施例中采用的晶体管均可以为薄膜晶体管或场效应管或其他特性相同的器件,根据在电路中的作用本申请的实施例所采用的晶体管主要为开关晶体管。由于这里采用的开关晶体管的源极、漏极是对称的,所以其源极、漏极是可以互换的。在本申请实施例中,将其中源极称为第一级,漏极称为第二级。按附图中的形态规定晶体管的中间端为栅极、信号输入端为源极、信号输出端为漏极。此外,本申请实施例所采用的开关晶体管可以包括P型开关晶体管和N型开关晶体管,其中,P型开关晶体管在栅极为低电位时开启,在栅极为高电位时截止,N型开关晶体管在栅极为高电位时开启,在栅极为低电位时截止。此外,本申请各个实施例中的多个信号都对应有高电位和低电位,信号的有效电位为使开关晶体管打开的电位,例如:对于P型开关晶体管,低电位为有效电位,对于N型开关晶体管,高电位为有效电位。
神经网络计算电路具有多种类型,其中,由阻变存储器(resistance randomaccess memory,RRAM)或相变存储器(phase-change memory,PCM)等电阻型存储器组成的神经网络计算电路,由于具有并行度高、密度大和功耗低等特点,且该神经网络计算电路的操作原理与动物的神经系统相似,因此,该神经网络计算电路在人工智能领域的应用被广泛看好。
本申请实施例还提供了一种神经网络计算电路,如图1所示,该神经网络计算电路10可以包括:
第一计算单元S1,设置有第一权重值,用于根据第一计算单元S1的输入端电压、第一计算单元S1的输出端Iout1的输出端电压以及第一权重值获得第一电流。第一计算单元S1的输入端电压用于指示第一计算单元S1的输入数据。第一电流用于指示第一计算单元S1的输入数据与第一权重值的第一计算结果。示例的,当第一权重值用电导值表示时,该第一电流可以为该第一计算单元S1上的电压降与用于表示第一权重值的电导值的乘积,且该第一计算单元S1上的电压降等于该第一计算单元S1的输出端电压与输入端电压的差值。
第二计算单元S2,设置有第二权重值,用于根据第二计算单元S2的输入端电压、第二计算单元S2的输出端Iout2的输出端电压以及第二权重值获得第二电流。第二电流用于指示第二计算单元S2的输入数据与第二权重值的第二计算结果。其中,第二计算单元S2的输入端电压与第一计算单元S1的输入端电压相同,即第二计算单元S2的输入数据与第一计算单元S1的输入数据相同。且第二计算单元S2的输出端电压与第一计算单元S1的输出端电压均为参考电压。示例的,当第二权重值用电导值表示时,该第二电流可以为该第二计算单元S2上的电压降与用于表示第二权重值的电导值的乘积,且该第二计算单元S2上的电压降等于该第二计算单元S2的输出端电压与输入端电压的差值。
并且,第一计算单元S1和第二计算单元S2与神经网络系统中的同一神经元对应,第一权重值和第二权重值的差值用于指示输入该神经元的数据的权重值,且该输入神经元的数据与第二计算单元S2的输入数据、第一计算单元S1的输入数据均相同。
处理电路H1,分别与第一计算单元S1的输出端Iout1和第二计算单元S2的输出端Iout2连接,用于根据第一电流和第二电流获取目标电流差,并根据目标电流差获取用于指示目标计算结果的输出电压,其中,目标计算结果用于指示第一计算单元S1和第二计算单元S2所对应的神经元,基于输入数据的权重值对输入数据的计算结果。
为便于区分,下文将第一计算单元S1的输出端Iout1称为第一输出端,将第二计算单元S2的输出端Iout2称为第二输出端。
在本申请实施例提供的神经网络计算电路中,通过根据第一电流和第二电流获取目标电流差,将两路电流合并为一路电流,再对合并后的一路电流进行电流电压转换,使得无需使用两路电流电压转换电路分别将第一电流和第二电流转换为电压,减少了一路电流电压转换电路的使用。相较于相关技术,减小了神经网络计算电路占用的面积,且减小了神经网络计算电路的功耗。
进一步的,如图2所示,神经网络计算电路10可以包括:第一计算阵列20、第二计算阵列30、以及、一个或多个处理电路H1。该第一计算阵列20可以包括一个或多个计算单元S,上述第一计算单元S1可以为该第一计算阵列20中一个或多个计算单元S中的任一个。该第二计算阵列30可以包括一个或多个计算单元S,上述第二计算单元S2可以为该第二计算阵列30中一个或多个计算单元S中的任一个。本申请实施例以第一计算阵列和第二计算阵列均包括多个计算单元为例进行说明,且该图2为第一计算阵列20和第二计算阵列30均包括多个计算单元S的示意图。
当第一计算阵列20和第二计算阵列30均包括n行ⅹm列计算单元时,如图2和图8所示,第一计算阵列20中的第i行计算单元与第i条位线(bit line,BL)连接,第一计算阵列20中的第j列计算单元与第j条字线(word line,WL)(图2中未示出)连接,第一计算阵列20中的第j列计算单元与第j条源极线(source line,SL)连接。其中,n和m均为不小于2的整数,i的值从1到n,j的值从1到m。
第二计算阵列30中的第j列计算单元与第一计算阵列中的第j列计算单元相对应,如图2和图8所示,第二计算阵列30中的第i行计算单元与第i条位线BL连接,第二计算阵列30中的第j列计算单元与第j条字线连接,第二计算阵列30中的第j列计算单元与第m+j条源极线SL连接。
当神经网络计算电路包括多个处理电路时,第一计算阵列20所连接的第j条源极线SL和第二计算阵列30所连接的第m+j条源极线SL与同一处理电路H1连接,该处理电路H1用于根据第j条源极线SL输出的第一电流和第m+j条源极线SL输出的第二电流,获取目标电流差,并根据该目标电流差获取用于指示目标计算结果的输出电压。其中,图2是神经网络计算电路包括多个处理电路的示意图。
当神经网络计算电路包括一个处理电路时,第一计算阵列30所连接的每条源极线SL和第二计算阵列所连接的每条源极线SL均与该处理电路H1连接,该处理电路H1用于分时处理多对源极线SL输出的电流,且处理电路H1在处理每对源极线SL时,是根据该对源极线SL中第j条源极线SL输出的第一电流和该对源极线SL中第m+j条源极线SL输出的第二电流,获取目标电流差,并根据该目标电流差获取用于指示目标计算结果的输出电压。
可选的,该第一计算阵列20可以为正权重计算阵列电路,该正权重计算阵列电路用于负责神经网络卷积层中正权重部分的矩阵运算和求和运算。该第二计算阵列30可以为负权重计算阵列电路,该负权重计算阵列电路用于负责神经网络卷积层中负权重部分的矩阵运算和求和运算。或者,第一计算阵列20可以为负权重计算阵列电路,第二计算阵列30可以为正权重计算阵列电路。
在将神经网络系统的权重矩阵映射到正权重计算阵列电路和负权重计算阵列电路中时,正权重计算阵列电路中的第j列计算单元用于设置神经网络系统的权重矩阵中第j列权重值中的绝对值,负权重计算阵列电路中的第j列计算单元用于设置权重矩阵中第j列权重值中的负值。也即是,若权重值为正数,则可以将该权重值映射至正权重计算阵列电路中对应的计算单元S中,并将0映射至负权重计算阵列电路中对应的计算单元S中;若权重值为负数,则可以将该权重值的绝对值映射至负权重计算阵列电路中对应的计算单元S中,并将0映射至正权重计算阵列电路中对应的计算单元S中。
并且,如图3所示,每个计算单元S包括:第一存储元件Z,第一存储元件Z的电导值用于反映计算单元S的权重值。在一种可实现方式中,该第一存储元件Z可以为电阻。此时,可以使用RRAM或PCM等电阻类型存储器存储各个计算单元S的权重值。
进一步的,如图3所示,计算单元S还可以包括:开关晶体管J4,该开关晶体管J4的栅极与字线WL连接,该开关晶体管J4的第一极和第二极串联在源极线与第一存储元件Z的一端之间,且该第一存储元件Z的另一端与位线BL连接,位线BL用于向第一存储元件Z输入输入数据Vi。该开关晶体管J4用于控制是否通过源极线将其所在计算单元S运算得到的电流输出。
在一种可实现方式中,如图4所示,处理电路H1可以包括:电流差分电路H11和转换电路H12。电流差分电路H11分别与第一计算单元的第一输出端Iout1和第二计算单元的第二输出端Iout2连接,用于根据第一电流和第二电流,获取目标电流差。转换电路H12与电流差分电路的输出端连接,用于根据目标电流差进行电流电压转换,得到输出电压。
可选的,该电流差分电路H11可以通过电流镜或其他具有相同功能的电路实现。下面以该电流差分电路H11通过电流镜实现为例,对该电流差分电路获取目标电流差的实现过程进行说明:
如图5所示,处理电路H1包括:电流差分电路H11和转换电路H12,且该电流差分电路H11包括:第一控制电路101、第二控制电路102、第三控制电路103和第四控制电路104。
该第一控制电路101分别与第一电源端V1、控制节点P和第一电流汇流节点PI1连接,用于在控制节点P的控制下,向第一电流汇流节点PI1提供来自第一电源端V1的第一电源电流。其中,第一电流汇流节点PI1还与第一电流支路连接,第一电流支路上流通的电流的值,基于第一电流的值确定。示例的,当控制节点P的电位为有效电位时,该第一控制电路101用于向第一电流汇流节点PI1提供第一电源电流,并通过该第一电流汇流节点PI1向第一电流支路提供电流。
其中,第一输出端Iout1可以与第一电流汇流节点PI1直接连接或间接连接。当第一输出端Iout1与第一电流汇流节点PI1直接连接时,该第一电流支路上流通的电流为第一电流。当第一输出端Iout1与第一电流汇流节点PI1间接连接时,该第一电流支路上流通的电流可以为根据第一电流转换得到的电流。
该第二控制电路102分别与第一电流汇流节点PI1、第二电源端V2和控制节点P连接,用于在来自第二电源端V2的第二电源信号的控制下,向控制节点P提供来自第一电流汇流节点PI1的电流。其中,向控制节点P提供的电流的值基于基准电流确定。示例的,当第二电源信号的电位为有效电位时,该第二控制电路102用于向控制节点P提供来自第一电流汇流节点PI1的电流,此时,根据基尔霍夫电流定律,向第一电流汇流节点PI1提供的第一电源电流I1、第一电流支路上流通的电流的值Ip、及向控制节点P提供的电流的值Ib1应满足:I1=Ip+Ib1。
该第三控制电路103分别与第三电源端V3、控制节点P和第二电流汇流节点PI2连接,用于在控制节点P的控制下,向第二电流汇流节点PI2提供来自第三电源端V3的第三电源电流,其中,在控制节点P的控制下,第三电源电流的值基于第一电源电流的值确定,且第二电流汇流节点PI2还与第二电流支路连接,第二电流支路上流通的电流的值,基于第二电流的值确定。示例的,当控制节点P的电位为有效电位时,该第三控制电路103用于向第二电流汇流节点PI2提供第三电源电流,并通过该第二电流汇流节点PI2向第二电流支路提供电流。并且,由于第一控制电路101和第三控制电路103均与控制节点P连接,使得在该控制节点P的控制下,第一控制电路101和第三控制电路103的导通状态能够保持为尽量相同,相应的,使得第三电源电流的值等于或基本等于第一电源电流的幅值,即I3≈I1=Ip+Ib1。
其中,第二输出端Iout2可以与第二电流汇流节点PI2直接连接或间接连接。当第二输出端Iout2与第二电流汇流节点PI2直接连接时,该第二电流支路上流通的电流为第二电流。当第二输出端Iout2与第二电流汇流节点PI2间接连接时,该第二电流支路上流通的电流可以为根据第二电流转换得到的电流。
该第四控制电路104分别与第二电源端V2、第二电流汇流节点PI2和输出节点Vout连接,用于在第二电源信号的控制下,向输出节点Vout提供来自第二电流汇流节点PI2的电流。该输出节点Vout可视为电流差分电路的输出端,该输出节点Vout的电压即为输出电压,此时,向输出节点Vout提供的电流的值Iout可视为目标电流差。示例的,当第二电源信号的电位为有效电位时,该第四控制电路104用于向输出节点Vout提供来自第二电流汇流节点PI2的电流,此时,根据基尔霍夫节点电流定律,向第二电流汇流节点PI2提供的第三电源电流I3、第二电流支路上流通的电流的值In、及向输出节点Vout提供的电流的值Iout应满足:I3=In+Iout。并且,由于第一电流支路上流通的电流的值Ip基于第一电流的值确定,向控制节点P提供的电流的值Ib1基于基准电流确定,第二电流支路上流通的电流的值In基于第二电流的值确定,即Ip、Ib1和In均为已知量,且I3≈I1=Ip+Ib1,因此,可以得到目标电流差Iout=I3-In=Ip+Ib1-In。
相应的,该转换电路H12分别与输出节点Vout和第二电源端V2连接,用于基于第二电源信号,将输入至输出节点Vout的电流转换为电压。在一种可实现方式中,如图6所示,该转换电路H12可以包括:阻性元件R1。该阻性元件R1的一端与输出节点Vout连接,阻性元件R1的另一端与第二电源端V2连接。示例的,该阻性元件R1可以为电阻,其阻值为R,当向输出节点Vout提供的电流流经该电阻时,该电阻上产生的电压降即为输出节点Vout的电位,该输出节点Vout的电位Vout=IoutⅹR=(Ip+Ib1-In)ⅹR,此时,将目标电流差转换成了用于指示目标计算结果的输出电压。
上述第一控制电路、第二控制电路、第三控制电路、第四控制电路和转换电路的实现方式可以有多种,例如可以采用集成电路实现或采用晶体管等元件实现。下面以第一控制电路、第二控制电路、第三控制电路和第四控制电路均采用晶体管实现为例进行说明。
如图6所示,第一控制电路101可以包括:第一晶体管T1。该第一晶体管T1的栅极与控制节点P连接,第一晶体管T1的第一极与第一电源端V1连接,第一晶体管T1的第二极与第一电流汇流节点PI1连接。
如图6所示,第二控制电路102可以包括:第二晶体管T2。该第二晶体管T2的栅极与第二电源端V2连接,第二晶体管T2的第一极与第一电流汇流节点PI1连接,第二晶体管T2的第二极与控制节点P连接。
如图6所示,第三控制电路103可以包括:第三晶体管T3的栅极与控制节点P连接,第三晶体管T3的第一极与第三电源端V3连接,第三晶体管T3的第二极与第二电流汇流节点PI2连接。
如图6所示,第四控制电路104可以包括:第四晶体管T4。第四晶体管T4的栅极与第二电源端V2连接,第四晶体管T4的第一极与第二电流汇流节点PI2连接,第四晶体管T4的第二极与输出节点Vout连接。
由上可知,由于第一晶体管T1的栅极和第三晶体管T3的栅极均与控制节点P连接,且第二晶体管T2的第二极与控制节点P连接,使得第一晶体管T1、第二晶体管T2、第三晶体管T3和第四晶体管T4构成了电流镜结构,使得第一控制电路101和第三控制电路103的导通状态能够保持为尽量相同,保证了第三电源电流的值等于或基本等于第一电源电流的幅值。
在提供基准电流的第一种可实现方式中,可以通过电流源提供基准电流。例如,可以采用基准电流源提供大小为Ib0的基准电流。
在提供基准电流的第二种可实现方式中,基准电流可以根据神经元的偏置确定。此时,神经网络计算电路10还可以包括:偏置电路。该偏置电路与处理电路H1连接,用于向处理电路H1提供偏置电流(在该情况下,该偏置电流也称为基准电流),且该偏置电流根据神经元的偏置确定。相应的,处理电路H1用于根据第一电流、第二电流和偏置电流,获取目标电流差,并根据该目标电流差获取输出电压。在一种可实现方式中,如图4所示,该偏置电路105与电流差分电路H11连接。可选的,该偏置电路可以包括电流源电路,该电流源电路提供的电流为偏置电流。此时,可以通过调整该偏置电流对神经元的偏置进行调整,提高了调整偏置的灵活性。
其中,该神经元的偏置为神经元根据输入数据和权重值进行决策时的阈值。该偏置的作用表现为:假设输入神经元的数据为x,输入神经元的数据的权重值为w,神经元的偏置为b,当xⅹw+b≥0时,神经元的输出为1,当xⅹw+b<0时,神经元的输出为0。
可选的,偏置电流与神经元的偏置可以呈线性关系,且该线性关系可以根据第一电流支路上流通的电流与第一电流的大小关系,及第二电流支路上流通的电流与第二电流的大小关系确定。示例的,当第一电流支路上流通的电流为经过缩放处理后的第一电流时,该线性关系可以根据对第一电流进行缩放时的缩放倍数确定。例如,假设偏置为x,用于反映偏置的电流的值为f(x),该f(x)为x的线性函数,且在提供基准电流的第一种可实现方式中,基准电流源提供的基准电流的初始值为Ib0,则偏置电路提供的偏置电流的值Ib=Ib0+f(x)。
需要说明的是,在提供基准电流的第一种可实现方式中,可以通过以下方式处理神经元的偏置。第一计算阵列20和第二计算阵列30均还可以包括:阵列排布的多个偏置单元,多个偏置单元与多个神经元对应。该偏置单元包括第二存储元件,该第二存储元件的电导值用于反映对应神经元的偏置。偏置单元分别与一条偏置信号线和一条输出信号线SL连接,偏置单元的电导值与偏置信号线上加载的偏置信号的值的乘积为对应神经元的偏置,偏置单元所连接的输出信号线SL用于将表示偏置的电流输出。
例如,第一计算阵列20和第二计算阵列30可以各包括200行ⅹ200列计算单元S,且还可以包括2行ⅹ200列偏置单元,200列计算单元与200列偏置单元一一对应,且对应的一列计算单元和一列偏置单元与一个神经元对应。其中,每列偏置单元中第二存储元件的电导值用于反映对应神经元的偏置,当向一列中2个偏置单元均加载的偏置信号时,该2个偏置单元中第二存储元件的电导值与偏置信号的值的乘积之和为对应神经元的偏置,该偏置可通过该一列偏置单元所连接的输出信号线SL输出。
需要说明的是,由于神经元的偏置不随神经元的输入信号发生变化,因此,偏置信号线上加载的偏置信号可以为具有固定电位的电压信号,而不是神经元的输入信号,以保证神经元的偏置不受输入信号影响。并且,在确定基准电流时,需要保证该基准电流大于第一电流与第二转换电流差的最大值的50%,使得根据目标电流差转换后的电压为正值,以保证转换的准确性。
为保证提供的基准电流的可控性,可以通过对电路具有控制作用的电路向处理电路H1提供基准电流。例如,该神经网络计算电路10还可以包括:电流控制电路,该电流控制电路与偏置电路105的输出端连接,且与电流差分电路H11的输入端连接。
在一种可实现方式中,当电流差分电路10可以包括:第一控制电路101、第二控制电路102、第三控制电路103和第四控制电路104时,如图7所示,该电流控制电路110分别与控制节点P、第二电源端V2和基准电流提供点B连接,用于在来自基准电流提供点B的基准电流和第二电源信号的控制下,控制第二控制电路102向控制节点P提供的电流的值。通过设置该电流控制电路110,能够控制向控制节点P提供的电流的大小,保证了向该控制节点P提供的电流的可控性。
如图8所示,该电流控制电路110可以包括:第八晶体管T8和第九晶体管T9。第八晶体管T8的栅极和第一极均与基准电流提供点B连接,第八晶体管T8的第二极与第二电源端V2连接。第九晶体管T9的栅极与基准电流提供点B连接,第九晶体管T9的第一极与控制节点P连接,第九晶体管T9的第二极与第二电源端V2连接。
第八晶体管T8的第一极、第八晶体管T8的栅极和第九晶体管T9的栅极均与基准电流提供点B连接,使得该第八晶体管T8与第九晶体管T9构成了电流镜结构,且保证了第八晶体管T8源漏极之间的电流和第九晶体管T9源漏极之间的电流可以为倍数关系。例如,当第八晶体管T8和第九晶体管T9的等效阻抗值相等时,该第八晶体管T8源漏极之间的电流与第九晶体管T9源漏极之间的电流均约等于基准电流,保证了向控制节点P提供的电流能够尽量等于该基准电流,提高了电流控制的精度。或者,当第九晶体管T9的等效阻抗值为第八晶体管T8的等效阻抗值的四倍时,第九晶体管T9源漏极之间的电流约为基准电流的四分之一。
进一步的,如图8所示,电流控制电路110还可以包括:第十晶体管T10。该第十晶体管T10的栅极与第四电源端V4连接,第十晶体管T10的第一极和第二极串联在与控制节点P和第九晶体管T9的第一极之间。也即是,第九晶体管T9的第一极与第十晶体管T10的第二极连接,第十晶体管T10的第一极与控制节点P连接。通过来自第四电源端V4的第四电源信号,可以控制该第十晶体管T10的开启程度,控制该第十晶体管T10源漏极之间的电流,调整该第十晶体管T10上的电压降,通过该电压降可实现对第八晶体管T8和第九晶体管T9的阻抗匹配程度,进而控制向控制节点P提供的电流的值,保证了电流镜工作的稳定性,提高了该神经网络计算电路10的可控性。
需要说明的是,当第一控制电路101包括第一晶体管T1,第二控制电路102包括第二晶体管T2,第三控制电路103包括第三晶体管T3,第四控制电路104包括第四晶体管T4,转换电路H12包括阻性元件R1,电流控制电路110包括第八晶体管T8和第九晶体管T9时,该处理电路H1实质包括一个电流差分电路和一个电流电压转换电路,通过使用该处理电路H1先获取第一电流和第二电流的目标电流差,并将该目标电流差转换为电压,相较于使用电阻分别将第一电流和第二电流转换为电压,再将由第一电流转换后的电压和由第二电流转换后的电压输出至电压减法器,以通过电压减法器获取其电压差的相关技术,能够减小电路中电阻的使用,减小电路占用的面积,有利于神经网络计算电路的性能优化。
并且,如图4所示,为了对第一电流进行缩放处理,该神经网络计算电路10还可以包括:第一缩放电路106,该第一缩放电路106分别连接第一输出端Iout1以及处理电路H1的输入端,该第一缩放电路106用于按照设定的缩放倍数对第一电流进行缩放处理,向处理电路H1提供经过缩放处理后的第一电流。
类似的,如图4所示,为了对第二电流进行缩放处理,该神经网络计算电路10还可以包括:第二缩放电路107,该第二缩放电路107分别与第二输出端Iout2以及处理电路H1的输入端,该第二缩放电路107用于按照设定的缩放倍数对第二电流进行缩放处理,向处理电路H1提供经过缩放处理后的第二电流。
在一种可实现方式中,如图7所示,第一缩放电路106分别与第一输出端Iout1、第一缩放控制节点SP1、第一电流汇流节点PI1和第二电源端V2连接,用于在来自第一缩放控制节点SP1的第一缩放控制信号的控制下,按照第一参考缩放倍数对第一输出端Iout1输出的第一电流进行缩放处理,并将缩放处理后的第一电流输入至第一电流汇流节点PI1。此时,第一电流支路用于在第二电源端V2与第一电流汇流节点PI1之间,传输缩放处理后的第一电流,即第一电流支路为第二电源端V2与第一电流汇流节点PI1之间的电流通路。
如图7所示,第二缩放电路107分别与第二输出端Iout2、第二缩放控制节点SP2、第二电流汇流节点PI2和第二电源端V2连接,用于在来自第二缩放控制节点SP2的第二缩放控制信号的控制下,按照第二参考缩放倍数对第二输出端Iout2输出的第二电流进行缩放处理,并将缩放处理后的第二电流输入至第二电流汇流节点PI2。此时,第二电流支路用于在第二电源端V2与第二电流汇流节点PI2之间,传输缩放处理后的第二电流,即第二电流支路为第二电源端V2与第二电流汇流节点PI2之间的电流通路。
需要说明的是,该神经网络计算电路10中可以包括第一缩放电路106和第二缩放电路107中的一个或两个。相应的,当神经网络计算电路10包括第一缩放电路106,未包括第二缩放电路107时,处理电路H1用于对经过缩放处理后的第一电流和第二输出端Iout2输出的第二电流获取目标电流差。当神经网络计算电路10未包括第一缩放电路106,包括第二缩放电路107时,处理电路H1用于对第一输出端Iout1输出的第一电流和经过缩放处理后的第二电流获取目标电流差。当神经网络计算电路10包括第一缩放电路106和第二缩放电路107时,处理电路H1用于对经过缩放处理后的第一电流和经过缩放处理后的第二电流获取目标电流差。
并且,当该神经网络计算电路10包括第一缩放电路106或第二缩放电路107时,可以通过调整神经网络计算电路中计算单元的权重值,使得输入至处理电路H1后的第一电流和第二电流得到近似相同程度的缩放。并且,第一参考缩放倍数与第二参考缩放倍数可以相等,也可以不等,且当第一参考缩放倍数与第二参考缩放倍数不等时,也可以通过调整该神经网络计算电路中计算单元的权重,使得输入至处理电路H1后的第一电流和第二电流得到近似相同程度的缩放。
进一步的,如图8所示,第一缩放电路106可以包括:第一电流输入模块1061、N个第一开关模块1062和N个第一电流缩放模块1063,该N个第一电流缩放模块1063对应N个缩放倍数,该N为正整数。其中,N个第一电流缩放模块1063对应的N个缩放倍数可以互不相同,可以部分相同,或者,可以全部相同。图8为第一缩放电路106包括3个第一开关模块1062和3个第一电流缩放模块1063的示意图。
第一电流输入模块1061分别与第一输出端Iout1、第一缩放控制节点SP1和第二电源端V2连接,用于在第一缩放控制节点SP1的控制下,在第二电源端V2和第一输出端Iout1之间传输第一电流。
N个第一开关模块1062中的第i个第一开关模块1062,分别与第i个第一开关控制端K1、第一电流汇流节点PI1和第i个第一开关节点(图8中未示出)连接,用于在来自第i个第一开关控制端K1的第i个第一开关控制信号的控制下,向第i个第一开关节点提供来自第一电流汇流节点PI1的电流。
N个第一电流缩放模块1063中的第i个第一电流缩放模块1063,分别与第一缩放控制节点SP1、第i个第一开关节点(图8中未示出)和第二电源端V2连接,用于基于第一缩放控制节点SP1的电位,控制由第i个第一开关节点向第二电源端V2提供的电流的值,i为正整数。
由于该第i个第一电流缩放模块1063与第一缩放控制节点SP1和第二电源端V2连接,第一电流输入模块1061也与第一缩放控制节点SP1和第二电源端V2连接,加载在该第i个第一电流缩放模块1063和第一电流输入模块1061上的电压相同,使得该第i个第一电流缩放模块1063和第一电流输入模块1061的开启程度相同,因此,当第一电流由第一输出端Iout1传输至第一电流输入模块1061后,在第一缩放控制节点SP1和第二电源端V2的控制下,第i个第一电流缩放模块1063中会流通有具有一定大小的电流,且第i个第一电流缩放模块1063中流通的电流的值与第一电流成比例,该比例为第一电流输入模块1061与第i个第一电流缩放模块1063的等效阻抗值之比。由此可知,第i个第一电流缩放模块1063中流通的电流即为按照第一参考缩放倍数对第一电流进行缩放处理后的第一电流,且该第一参考缩放倍数为第一电流输入模块1061与第i个第一电流缩放模块1063的等效阻抗值之比。
可以看出,第一开关模块1062用于对第一电流缩放模块1063进行选通,当某一第一电流缩放模块1063所连接的第一开关模块1062处于导通状态时,表示需要基于该第一电流缩放模块1063的缩放倍数,对第一电流进行缩放处理。并且,当N为大于1的正整数,且该N个第一开关模块1062中的多个第一开关模块1062处于导通状态时,第一缩放电路106对应的第一参考缩放倍数为该多个处于导通状态的第一开关模块1062所连接的第一电流缩放模块1063对应的缩放倍数的和。
例如,假设第一缩放电路106包括4个第一开关模块1062和4个第一电流缩放模块1063,第i个第一开关模块1062与第i个第一电流缩放模块1063连接,第1个第一电流缩放模块1063的缩放倍数为1/16,第2个第一电流缩放模块1063的缩放倍数为1/32,第3个第一电流缩放模块1063的缩放倍数为1/64,第4个第一电流缩放模块1063的缩放倍数为1/128,当第1个第一开关模块1062关闭,第2个第一开关模块1062关闭,第3个第一开关模块1062导通,第4个第一开关模块1062关闭时,可以确定第一参考缩放倍数为1/64,即为第3个第一电流缩放模块1063的缩放倍数。当第1个第一开关模块1062关闭,第2个第一开关模块1062关闭,第3个第一开关模块1062导通,第4个第一开关模块1062导通时,可以确定第一参考缩放倍数为3/128,即为第3个第一电流缩放模块1063的缩放倍数与第4个第一电流缩放模块1063的缩放倍数的和。
可以看出,当N为大于1的正整数时,多个第一电流缩放模块1063对应多个缩放倍数,在进行电流缩放时,能够根据需要控制多个第一开关模块1062的导通状态,并使用与处于导通状态的第一开关模块1062连接的第一电流缩放模块1063,按照该第一电流缩放模块对应的缩放倍数对第一电流进行缩放,实现了缩放倍数的可调节,能够保证缩放后的电流在适当的范围内,进而保证根据该电流转换后的电压在适当的范围内,以保证电压的读出准确性。
进一步的,如图8所示,第一电流输入模块1061可以包括:第一第五晶体管T51。第一第五晶体管T51的栅极与第一缩放控制节点SP1连接,第一第五晶体管T51的第一极与第一输出端Iout1连接,第一第五晶体管T51的第二极与第二电源端V2连接。
如图8所示,第i个第一电流缩放模块1063可以包括:第一第六晶体管T61。第一第六晶体管T61的栅极与第一缩放控制节点SP1连接,第一第六晶体管T61的第一极与第二电源端V2连接,第一第六晶体管T61的第二极与第i个第一开关节点(图8中未示出)连接。
其中,第一参考缩放倍数可以通过控制第一第五晶体管T51和第一第六晶体管T61工作在饱和区,且设置第一第五晶体管T51的导电沟道宽长比,及该第i个第一电流缩放模块1063中第一第六晶体管T61的导电沟道宽长比实现。根据晶体管在饱和区的工作特性,晶体管的栅极和第二极的电位差(即栅源电压Vgs)、源漏极电流Ids和晶体管宽长比满足关系:Ids=kⅹW/Lⅹ(Vgs-Vth)2,k为晶体管的迁移率,W/L为晶体管的导电沟道的宽长比,Vth为晶体管的阈值电压。由于第一第五晶体管T51的栅极和第一第六晶体管T61的栅极均与第一缩放控制节点连接,第一第五晶体管T51的第二极和第一第六晶体管T61的第二极均与第二电源端V2连接,即第一第五晶体管T51的栅源电压Vgs和第一第六晶体管T61的栅源电压Vgs相等,可知该第一第五晶体管T51的源漏极电流Id和第一第六晶体管T61的源漏极电流Id之比,应等于第一第五晶体管T51的导电沟道宽长比和第一第六晶体管T61的导电沟道宽长比之比,因此,当第一第五晶体管T51和第一第六晶体管T61工作在饱和区时,可以通过设置第一第五晶体管T51的导电沟道宽长比,及该第i个第一电流缩放模块1063中第一第六晶体管T61的导电沟道宽长比,实现对第一参考缩放倍数的设置。并且,可以通过控制第一缩放控制节点SP1的电位,使得第一第五晶体管T51和第一第六晶体管T61工作在饱和区。
示例的,当第一第五晶体管T51和第一第六晶体管T61工作在饱和区时,可以设置第一第五晶体管T51的导电沟道宽长比为n1,第i个第一电流缩放模块1063中第一第六晶体管T61的导电沟道宽长比为n2,则该第i个第一电流缩放模块1063中第一第六晶体管T61对应的缩放倍数为n1:n2,也即是,当第一电流为I1时,根据该缩放倍数,通过第一第五晶体管T51和第一第六晶体管T61对电流进行缩放处理后,向第i个第一开关节点提供的电流的值为I1ⅹ(n2/n1)。并且,由于该对电流的缩放处理为按比例缩小第一电流的值,因此,该n1通常大于n2。
并且,该宽长比的设置至少可以通过以下两种实现方式实现。在第一种实现方式中,第一第五晶体管T51和第一第六晶体管T61可以均为一个单独的晶体管,此时,该单独的第一第五晶体管T51的导电沟道宽长比可以为n1,该单独的第一第六晶体管T61的导电沟道宽长比可以为n2。在第二种实现方式中,第一第五晶体管T51可以包括级联的多个晶体管,由该级联的多个晶体管构成的等效导电沟道宽长比为n1,第一第六晶体管T61可以为一个单独的晶体管,该单独的第一第六晶体管T61的导电沟道宽长比为n2,或者,第一第六晶体管T61也可以包括级联的多个晶体管,由该级联的多个晶体管构成的等效导电沟道宽长比为n2。
如图8所示,第i个第一开关模块1062可以包括:第一第七晶体管T71。第一第七晶体管T71的栅极与第i个第一开关控制端K1连接,第一第七晶体管T71的第一极与第i个第一开关节点(图8中未示出)连接,即第i个第一开关模块1062中第一第七晶体管T71的第一极与第i个第一电流缩放模块1063中第一第六晶体管T61的第二极连接,第一第七晶体管T71的第二极与第一电流汇流节点PI1连接。
在第一缩放电路106中,由于可以按照第一参考缩放倍数对第一电流进行缩放处理,且缩放处理后的第一电流的值较小,其对晶体管的驱动能力要求较低,因此,第一开关模块1062和第一电流缩放模块1063中的晶体管均可以使用具有较小尺寸的晶体管,能够进一步减小电流电压转换单元占用的面积。
如图8所示,第二缩放电路107可以包括:第二电流输入模块1071、N个第二开关模块1072和N个第二电流缩放模块1073,N为正整数。其中,图8为第二缩放电路107包括2个第二开关模块1072和2个第二电流缩放模块1073的示意图。
第二电流输入模块1071分别与第二输出端Iout2、第二缩放控制节点SP2和第二电源端V2连接,用于在第二缩放控制节点SP2的控制下,在第二电源端V2和第二输出端Iout2之间传输第二电流。
N个第二开关模块1072中的第i个第二开关模块1072,分别与第i个第二开关控制端K2、第二电流汇流节点PI2和第i个第二开关节点(图8中未示出)连接,用于在来自第i个第二开关控制端K2的第i个第二开关控制信号的控制下,向第i个第二开关节点提供来自第二电流汇流节点PI2的电流。
N个第二电流缩放模块1073中的第i个第二电流缩放模块1073,分别与第二缩放控制节点SP2、第i个第二开关节点(图8中未示出)和第二电源端V2连接,用于基于第二缩放控制节点SP2的电位,控制由第i个第二开关节点向第二电源端V2提供的电流的值,i为正整数。也即是,该第i个第二电流缩放模块1073用于根据该第二参考缩放倍数对第二电流进行缩放处理,并第二电源端V2和第i个第二开关节点之间传输缩放处理后的第二电流。其中,该第二参考缩放倍数为第二电流输入模块1071与第i个第二电流缩放模块1073的等效阻抗值之比。
可以看出,当N为大于1的正整数时,多个第二电流缩放模块1073对应多个缩放倍数,在进行电流缩放时,能够根据需要控制多个第二开关模块1072的导通状态,并使用与处于导通状态的第二开关模块1072连接的第二电流缩放模块1073,按照该第二电流缩放模块对应的缩放倍数对第二电流进行缩放,实现了缩放倍数的可调节,能够保证缩放后的电流在适当的范围内,进而保证根据该电流转换后的电压在适当的范围内。
如图8所示,第二电流输入模块1071可以包括:第二第五晶体管T52。第二第五晶体管T52的栅极与第二缩放控制节点SP2连接,第二第五晶体管T52的第一极与第二输出端Iout2连接,第二第五晶体管T52的第二极与第二电源端V2连接。
如图8所示,第i个第二电流缩放模块1073可以包括:第二第六晶体管T62。第二第六晶体管T62的栅极与第二缩放控制节点SP2连接,第二第六晶体管T62的第一极与第二电源端V2连接,第二第六晶体管T62的第二极与第i个第二开关节点(图8中未示出)连接。
如图8所示,第i个第二开关模块1072可以包括:第二第七晶体管T72。第二第七晶体管T72的栅极与第i个第二开关控制端K2连接,第二第七晶体管T72的第一极与第i个第二开关节点(图8中未示出)连接,即第i个第二开关模块1072中第二第七晶体管T72的第一极与第i个第二电流缩放模块1073中第二第六晶体管T62的第二极连接,第二第七晶体管T72的第二极与第二电流汇流节点PI2连接。
该第二缩放电路107的工作原理请相应参考第一缩放电路106的工作原理,此处不再赘述。
由上可知,第一缩放电路106和第二缩放电路107是通过晶体管实现的,无需使用电阻实现缩放处理,减小了神经网络计算电路10占用的面积,有利于电路性能的优化。并且,由于无需使用电阻实现缩放处理,使得无需因配合反馈电阻而将开关晶体管设置的较大,也减小了开关晶体管占用的面积。进一步的,在该图8所示的神经网络计算电路10中,由于流经开关模块中晶体管的电流为经过缩放处理后的电流,该电流的值较小,对晶体管的驱动力要求较低,因此,可以使用小尺寸的开关晶体管实现缩放倍数的调节。
可选的,该神经网络计算电路10还可以包括:第一电压钳位电路和第二电压钳位电路中的一个或两个。图4为神经网络计算电路10包括:第一电压钳位电路108和第二电压钳位电路109的示意图。如图4所示,第一电压钳位电路108与第一输出端Iout1连接,用于控制第一计算单元S1的输出端电压为参考电压。第二电压钳位电路109与第二输出端Iout2连接,用于控制第二计算单元的输出端电压为参考电压。并且,第一电压钳位电路108还可以与第一缩放电路106连接,以控制第一缩放电路106的电位,第二电压钳位电路109还可以与第二缩放电路107连接,以控制第二缩放电路107的电位。
在一种可实现方式中,如图7所示,第一电压钳位电路108分别与第一输出端Iout1、第一缩放控制节点SP1和第一基准电压源Vb1连接,用于在来自第一基准电压源Vb1的第一基准电压的控制下,控制第一输出端Iout1的电位和第一缩放控制节点SP1的电位。该第一电压钳位电路108通过控制第一输出端Iout1的电位,提高了第一输出端Iout1的电压稳定性,能够使第一计算单元S1在稳定的输出端电压的基础上,根据第一计算单元S1的输入端电压输出第一电流,保证了第一电流的精度,进而保证了电流电压转换的准确性。通过控制第一缩放控制节点SP1的电位,能够实现对第一缩放电路106的控制,保证了第一缩放电路106工作过程的可控性。例如,通过控制第一输出端Iout1的电位和第一缩放控制节点SP1的电位,可以控制第一第五晶体管T51和第一第六晶体管T61工作在饱和区。
类似的,如图7所示,第二电压钳位电路109分别与第二输出端Iout2、第二缩放控制节点SP2和第二基准电压源Vb2连接,用于在来自第二基准电压源Vb2的第二基准电压的控制下,控制第二输出端Iout2的电位和第二缩放控制节点SP2的电位。其中,第二基准电压与第一基准电压可以相等或不等。该第二电压钳位电路109通过控制第二输出端Iout2的电位,提高了第二输出端Iout2电位的稳定性,能够使第二计算单元在稳定的输出端Iout2电位下,根据第二计算单元的输入端电压输出第二电流,保证了第二电流的精度,进而保证了电流电压转换的准确性。通过控制第二缩放控制节点SP2的电位,能够实现对第二缩放电路107的控制,保证了第二缩放电路107工作过程的可控性。例如,通过控制第二输出端Iout2的电位和第二缩放控制节点SP2的电位,可以控制第二第五晶体管T52和第二第六晶体管T62工作在饱和区。
作为一种可实现方式,如图8所示,第一电压钳位电路108可以包括:第一运算放大器1081。第一运算放大器1081的同相输入端与第一输出端Iout1连接,第一运算放大器1081的反相输入端与第一基准电压源Vb1连接,第一运算放大器1081的输出端与第一缩放控制节点SP1连接。
如图8所示,第二电压钳位电路109可以包括:第二运算放大器1091。第二运算放大器1091的同相输入端与第二输出端Iout2连接,第二运算放大器1091的反相输入端与第二基准电压源Vb2连接,第二运算放大器1091的输出端与第二缩放控制节点SP2连接。
以图8为例,对第一电压钳位电路108控制第一输出端Iout1的电位和第一缩放控制节点SP1的电位的原理进行说明:根据第一运算放大器1081“虚短虚断”的原理,第一运算放大器1081能够控制第一输出端Iout1的电位和第一基准电压源Vb1的电位尽量相等,实现了对第一输出端Iout1的电位的控制。但是,当第一输出端Iout1输出的第一电流的值按照第一方向(例如增大)发生变化时,该第一输出端Iout1的电位会按照第一方向发生变化,且由于第一运算放大器1081的同相输入端与和反相输入端能够对第一运算放大器1081的输出端的电位进行控制,此时,第一输出端Iout1会根据第一基准电压源Vb1的电位和变化后的第一输出端Iout1的电位,调整第一缩放控制节点SP1的电位,使得第一第五晶体管T51的开启程度按照第一方向发生变化,相应的,第一第五晶体管T51中流通的电流的大小也按照第一方向发生变化,使得第一第五晶体管T51上的压降按照第一方向的反方向(例如减小)发生变化,进而使得第一输出端Iout1的电位也按照第一方向的反方向发生变化,实现了对第一输出端Iout1的电位的负反馈控制,及对第一缩放控制节点SP1的电位的动态控制。
第二运算放大器1091的工作原理类似,此处不再赘述。其中,运算放大器的“虚短”的原理是指在理想情况下,运算放大器的同相输入端和反相输入端两个输入端的电位相等,运算放大器的“虚断”的原理是指在理想情况下,流入运算放大器两个输入端的电流为零。
当电流电压转换模块还包括第一缩放电路106、第二缩放电路107、第一电压钳位电路108和第二电压钳位电路109时,由于第一运算放大器1081和第二运算放大器1091中的每个运算放大器只需要驱动N+1个晶体管,且该N+1个晶体管为运算放大器的容性负载,使得该运算放大器能够使用较小的驱动电流对该N+1个晶体管进行驱动,相较于相关技术,运算放大器中无需设置缓冲电路,简化了运算放大器的结构,能够减小运算放大器占用的面积和功耗,并提高运算放大器的反应速度。
通过实验验证,在晶体管沟道的单位长度为40纳米(nm)的工艺下,在相关技术中结构最简单的电压减法器中,开关晶体管所占的面积为n×64微米(um)/200nm个晶体管的面积,本申请实施例提供的神经网络计算电路10在该工艺下,开关晶体管所占的面积为64um/200nm+n个晶体管的面积,该n为开关管的个数,可知本申请实施例提供的神经网络计算电路的开关晶体管所占面积更小。并且,相较于相关技术中电压减法器中运算放大器的面积,本申请实施例提供的神经网络计算电路10的运算放大器的面积可节省48%,且在源极线电流和为2毫安时,本申请实施例提供的神经网络计算电路10可以节省约26%的功耗,同时,电路中电阻的数量更少。
图9是在保持第二电流不变,且控制第一电流线性变化时,本申请实施例提供的神经网络计算电路10的输出电压随第一电流发生变化的示意图,其中,输出电压的单位为伏,第一电流的单位为微安。从该图9可以看出:输出电压随第一电流发生变化的线性度较好。
图10是在第二电流和第一电流均发生变化时,本申请实施例提供的神经网络计算电路10的输出电压随第一电流和第二电流发生变化的示意图,该第一电流和第二电流的单位均为微安,输出电压的单位均为伏。从该图10可以看出:输出电压随第一电流和第二电流发生变化的线性度较好。因此,可以确定采用本申请实施例提供的电压电流转换电路具有较高的电流电压转换精度。
综上所述,本申请实施例提供的神经网络计算电路,通过根据第一电流和第二电流获取目标电流差,将两路电流合并为一路电流,再对合并后的一路电流进行电流电压转换,从而无需使用两路电流电压转换电路分别将第一电流和第二电流转换为电压,减少了一路电流电压转换电路的使用,相较于相关技术,减小了神经网络计算电路占用的面积,且减小了神经网络计算电路的功耗。并且,相较于相关技术,由于无需使用电压减法器,使得无需在神经网络计算电路中设置多个电阻,进一步减少了神经网络计算电路中电阻所占的面积,有利于对神经网络计算电路进行性能优化。
同时,通过第一电压钳位电路控制第一计算单元的输出端的电位,提高了该输出端的电压稳定性,能够使第一计算单元在稳定的输出端电压的基础上,根据所述第一计算单元的输入端电压输出第一电流,保证了第一电流的精度,以及,通过第二电压钳位电路控制第二计算单元的输出端的电位,提高了该输出端的电压稳定性,能够使第二计算单元在稳定的输出端电压的基础上,根据所述第二计算单元的输入端电压输出第二电流,保证了第二电流的精度,进而保证了电流电压转换的准确性。
本申请实施例还提供了一种神经网络计算芯片,该神经网络计算芯片包括:本申请实施例提供的神经网络计算电路10。在该神经网络计算芯片中,可以采用数字信号在神经网络层间进行信号传递,或者,可以采用模拟信号在神经网络层间进行信号传递。
在一种可实现方式中,神经网络计算芯片中可以采用数字信号在神经网络层间进行信号传递,此时,该神经网络计算芯片可以包括多个乘加计算单元,每两个乘加计算单元之间串联一个数字处理单元。其中,每个乘加计算单元可视为神经网络中的一个卷积层,且每个乘加计算单元包括:串联的数字模拟转换器(digital to analog converter,DAC)、存储器、本申请实施例提供的神经网络计算电路和模拟数字转换器(analog to digitalconverter,ADC),且存储器可以为RRAM或PCM等电阻类型存储器。
示例的,图11为神经网络计算芯片1包括两个乘加计算单元的结构示意图,如图11所示,该神经网络计算芯片1包括:依次串联的第一数字处理单元1101、第一乘加计算单元1102、第二数字处理单元1103、第二乘加计算单元1104和第三数字处理单元1105。其中,第一乘加计算单元1102包括:串联的第一DAC 11021、第一存储器11022、神经网络计算电路10和第一ADC 11023。第二乘加计算单元1104的结构可以相应参考第一乘加计算单元1102的结构。
在另一种可实现方式中,神经网络计算芯片中可以采用模拟信号在神经网络层间进行信号传递,此时,该神经网络计算芯片可以包括:依次串联的第一数字处理单元、DAC、多个乘加计算单元、ADC和第二数字处理单元。其中,每个乘加计算单元可视为神经网络中的一个卷积层,每个乘加计算单元包括:串联的存储器和本申请实施例提供的神经网络计算电路,且存储器可以为RRAM或PCM等电阻类型存储器。
示例的,图12为神经网络计算芯片1包括串联的三个乘加计算单元的结构示意图,如图12所示,该神经网络计算芯片1包括:依次串联的第四数字处理单元1201、第二DAC1202、第三乘加计算单元1203、第四乘加计算单元1204、第五乘加计算单元1205、第二ADC1206和第五数字处理单元1207。其中,第三乘加计算单元1203包括:第二存储器12031和神经网络计算电路10。第四乘加计算单元1204和第五乘加计算单元1205的结构可以相应参考第三乘加计算单元1203的结构。
需要说明的是,第一数字处理单元1101、第二数字处理单元1103、第三数字处理单元1105、第四数字处理单元1201和第五数字处理单元1207可以具有相同或不同的结构,第一DAC 11021和第二DAC 1202可以具有相同或不同的结构,第一存储器11022第二存储器12031可以具有相同或不同的结构,第一ADC 11023和第二ADC 1206可以具有相同或不同的结构。并且,图11和图12所示的神经网络计算芯片1中的神经网络计算电路10可以为本申请实施例提供的任一中神经网络计算电路,且该图11中的神经网络计算电路10和图12中的神经网络计算电路10也可以具有相同或不同的结构。
综上所述,本申请实施例提供的神经网络计算芯片,该神经网络计算芯片包括神经网络计算电路,通过神经网络计算电路根据第一电流和第二电流获取目标电流差,将两路电流合并为一路电流,再对合并后的一路电流进行电流电压转换,从而无需使用两路电流电压转换电路分别将第一电流和第二电流转换为电压,减少了一路电流电压转换电路的使用。相较于相关技术,减小了神经网络计算电路占用的面积,且减小了神经网络计算电路的功耗。并且,相较于相关技术,由于无需使用电压减法器,使得无需在神经网络计算电路中设置多个电阻,进一步减少了神经网络计算电路中电阻所占的面积,有利于对神经网络计算芯片进行性能优化。
通过实验验证,在相同性能参数的前提下,相关技术中电流电压转换电路的神经网络计算芯片的大小至少为35um×14um,本申请实施例的神经网络计算芯片的大小为21um×12um,有效减小了神经网络计算芯片的大小,有利于芯片性能的优化。
本申请实施例还提供了一种神经网络系统。如图13所示,在图13所示的神经网络系统中,主机50通过PCIE交换机(peripheral component interconnect express switch)60与多个PCIE卡70连接,每个PCIE卡70上可以包括多个神经网络芯片701,神经网络芯片701之间通过高速互联接口连接。在此不对神经网络芯片701之间的互联方式进行限定。
其中,PCIE卡70上包括的多个神经网络计算芯片701中一个或多个可以为本申请实施例提供的神经网络计算芯片,且该神经网络计算芯片可以包括本申请实施例提供的任一神经网络计算电路。例如,每个PCIE卡70上包括的神经网络计算芯片701均为图11或图12所示的神经网络计算芯片1,每个神经网络计算芯片1可以包括图8所示的神经网络计算电路。
可以理解的是,实际应用中主机50可以包括处理器以及内存,还可以包括通信接口以及作为外存的磁盘等其他器件,在此不做限制。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本申请实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”是指一个或多个,术语“多个”指两个或两个以上,除非另有明确的限定。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (16)

1.一种神经网络计算电路,其特征在于,包括:
第一计算单元,设置有第一权重值,用于根据所述第一计算单元的输入端电压、所述第一计算单元的输出端电压以及所述第一权重值获得第一电流,所述第一计算单元的输入端电压用于指示输入数据,所述第一电流用于指示所述第一计算单元的输入数据与所述第一权重值的第一计算结果;
第二计算单元,设置有第二权重值,用于根据所述第二计算单元的输入端电压、所述第二计算单元的输出端电压以及所述第二权重值获得第二电流,所述第二电流用于指示所述第二计算单元的输入数据与所述第二权重值的第二计算结果,其中,所述第二计算单元的输入端电压与所述第一计算单元的输入端电压相同,所述第二计算单元的输出端电压与所述第一计算单元的输出端电压均为参考电压,且所述第一计算单元和所述第二计算单元与神经网络系统中的同一神经元对应,所述第一权重值和所述第二权重值的差值用于指示输入所述神经元的数据的权重值,所述输入所述神经元的数据与所述输入数据相同;
处理电路,分别与所述第一计算单元的输出端和所述第二计算单元的输出端连接,用于根据所述第一电流和所述第二电流获取目标电流差,并根据所述目标电流差获取用于指示目标计算结果的输出电压,其中,所述目标计算结果用于指示所述神经元基于所述输入数据的权重值对所述输入数据的计算结果。
2.根据权利要求1所述的计算电路,其特征在于,所述计算电路还包括:
偏置电路,与所述处理电路连接,用于向所述处理电路提供偏置电流,所述偏置电流用于指示所述神经元的偏置;
所述处理电路,用于根据所述第一电流、所述第二电流和所述偏置电流,获取所述目标电流差,并根据所述目标电流差获取所述输出电压。
3.根据权利要求1所述的计算电路,其特征在于,所述计算电路还包括:
第一电压钳位电路,与所述第一计算单元的输出端连接,用于控制所述第一计算单元的输出端电压为所述参考电压;和/或,
第二电压钳位电路,与所述第二计算单元的输出端连接,用于控制所述第二计算单元的输出端电压为所述参考电压。
4.根据权利要求2所述的计算电路,其特征在于,所述计算电路还包括:
第一电压钳位电路,与所述第一计算单元的输出端连接,用于控制所述第一计算单元的输出端电压为所述参考电压;和/或,
第二电压钳位电路,与所述第二计算单元的输出端连接,用于控制所述第二计算单元的输出端电压为所述参考电压。
5.根据权利要求1至4任一所述的计算电路,其特征在于,所述计算电路还包括:
第一缩放电路,分别连接所述第一计算单元的输出端以及所述处理电路的输入端,用于按照设定的缩放倍数对所述第一电流进行缩放处理,向所述处理电路提供经过缩放处理后的第一电流;和/或,
第二缩放电路,分别连接所述第二计算单元的输出端以及所述处理电路的输入端,用于按照设定的缩放倍数对所述第二电流进行缩放处理,向所述处理电路提供经过缩放处理后的第二电流。
6.根据权利要求1至4任一所述的计算电路,其特征在于,所述处理电路包括:
电流差分电路,分别与所述第一计算单元的输出端和所述第二计算单元的输出端连接,用于根据所述第一电流和所述第二电流,获取所述目标电流差;
转换电路,与所述电流差分电路的输出端连接,用于根据所述目标电流差进行电流电压转换,得到所述输出电压。
7.根据权利要求5所述的计算电路,其特征在于,所述处理电路包括:
电流差分电路,分别与所述第一计算单元的输出端和所述第二计算单元的输出端连接,用于根据所述第一电流和所述第二电流,获取所述目标电流差;
转换电路,与所述电流差分电路的输出端连接,用于根据所述目标电流差进行电流电压转换,得到所述输出电压。
8.根据权利要求6所述的计算电路,其特征在于,所述电流差分电路包括电流镜。
9.根据权利要求7所述的计算电路,其特征在于,所述电流差分电路包括电流镜。
10.根据权利要求1至4任一、7、8或9所述的计算电路,其特征在于:所述第一计算单元和所述第二计算单元为电阻型存储器计算单元。
11.根据权利要求5所述的计算电路,其特征在于:所述第一计算单元和所述第二计算单元为电阻型存储器计算单元。
12.根据权利要求6所述的计算电路,其特征在于:所述第一计算单元和所述第二计算单元为电阻型存储器计算单元。
13.根据权利要求10所述的计算电路,其特征在于,所述电阻型存储器计算单元包括阻变存储器RRAM或相变存储器PCM。
14.根据权利要求11或12所述的计算电路,其特征在于,所述电阻型存储器计算单元包括阻变存储器RRAM或相变存储器PCM。
15.一种神经网络计算芯片,其特征在于,所述神经网络计算芯片包括:如权利要求1至14任一所述的神经网络计算电路。
16.一种神经网络计算系统,其特征在于,包括多个神经网络计算芯片,每个神经网络计算芯片中包括如权利要求1至14任一所述的神经网络计算电路。
CN201910932314.8A 2019-09-29 2019-09-29 神经网络计算电路、芯片及系统 Active CN112580790B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910932314.8A CN112580790B (zh) 2019-09-29 2019-09-29 神经网络计算电路、芯片及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910932314.8A CN112580790B (zh) 2019-09-29 2019-09-29 神经网络计算电路、芯片及系统

Publications (2)

Publication Number Publication Date
CN112580790A CN112580790A (zh) 2021-03-30
CN112580790B true CN112580790B (zh) 2023-06-30

Family

ID=75110991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910932314.8A Active CN112580790B (zh) 2019-09-29 2019-09-29 神经网络计算电路、芯片及系统

Country Status (1)

Country Link
CN (1) CN112580790B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022245384A1 (en) * 2021-05-19 2022-11-24 Silicon Storage Technology, Inc. Output circuit for analog neural memory in a deep learning artificial neural network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250580A (zh) * 2016-07-04 2016-12-21 中国石油大学(华东) 一种基于脉冲神经膜系统和匀质神经细胞的逻辑异或门设计方法
CN108171323A (zh) * 2016-12-28 2018-06-15 上海寒武纪信息科技有限公司 一种人工神经网络计算装置和方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0634248B2 (ja) * 1989-12-16 1994-05-02 三菱電機株式会社 半導体神経回路網
KR970007006B1 (ko) * 1993-08-31 1997-05-01 한국전자통신연구원 인공 신경 회로와 패턴 분리 및 인식용 발진 신경 망의 구조
JP5077646B2 (ja) * 2007-04-26 2012-11-21 日本電気株式会社 半導体記憶装置、及び、半導体記憶装置の動作方法
KR102282192B1 (ko) * 2015-07-23 2021-07-27 삼성전자 주식회사 미스매치 검출 및 보상 회로를 갖는 반도체 장치
JP6844013B2 (ja) * 2017-09-07 2021-03-17 パナソニック株式会社 半導体記憶素子を用いたニューラルネットワーク演算回路及び動作方法
CN109102071B (zh) * 2018-08-07 2020-12-11 中国科学院微电子研究所 一种神经元电路以及神经网络电路
CN109829540B (zh) * 2019-01-28 2021-05-28 中国科学院微电子研究所 神经网络运算系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250580A (zh) * 2016-07-04 2016-12-21 中国石油大学(华东) 一种基于脉冲神经膜系统和匀质神经细胞的逻辑异或门设计方法
CN108171323A (zh) * 2016-12-28 2018-06-15 上海寒武纪信息科技有限公司 一种人工神经网络计算装置和方法

Also Published As

Publication number Publication date
CN112580790A (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
CN107533668B (zh) 用于计算神经网络的节点值的硬件加速器和方法
US11893271B2 (en) Computing-in-memory circuit
US11436478B2 (en) Control circuit for multiply accumulate circuit of neural network system
US11157803B2 (en) Neuromorphic device including a synapse having a variable resistor and a transistor connected in parallel with each other
US10783963B1 (en) In-memory computation device with inter-page and intra-page data circuits
US10381074B1 (en) Differential weight reading of an analog memory element in crosspoint array utilizing current subtraction transistors
US10839898B2 (en) Differential memristive circuit
CN113178219B (zh) 一种应用于图像识别领域的忆阻器感存算一体电路结构
CN113484595A (zh) 一种用于存内运算的存算单元的电流读出系统及方法
CN115794728B (zh) 一种存内计算位线钳位与求和外围电路及其应用
CN112580790B (zh) 神经网络计算电路、芯片及系统
KR20180090560A (ko) 다수 개의 시냅스 셀들을 가진 시냅스를 포함하는 뉴로모픽 소자
CN114400031B (zh) 一种补码映射的rram存算一体芯片及电子设备
BE1005226A5 (fr) Multiplicateur analogique mosfet.
Cao et al. A non-idealities aware software–hardware co-design framework for edge-AI deep neural network implemented on memristive crossbar
Yang et al. Essence: Exploiting structured stochastic gradient pruning for endurance-aware reram-based in-memory training systems
CN113222131B (zh) 基于1t1r的可实现带符号权重系数的突触阵列电路
CN116032258A (zh) 延时缓冲单元及其操作方法、计算装置及其操作方法
Radhakrishnan et al. Bridge memristor super-resolution crossbars
CN114861902A (zh) 处理单元及其操作方法、计算芯片
US20220101142A1 (en) Neural network accelerators resilient to conductance drift
JP2021168024A (ja) 半導体装置
CN111859261A (zh) 计算电路及其操作方法
US20200234763A1 (en) Row switch resistance error reduction for rram crossbar array circuit
GB2587021A (en) Physical implementation of artificial neural networks

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