CN114902241A - 串行化神经网络计算单元 - Google Patents
串行化神经网络计算单元 Download PDFInfo
- Publication number
- CN114902241A CN114902241A CN202080082888.1A CN202080082888A CN114902241A CN 114902241 A CN114902241 A CN 114902241A CN 202080082888 A CN202080082888 A CN 202080082888A CN 114902241 A CN114902241 A CN 114902241A
- Authority
- CN
- China
- Prior art keywords
- neural network
- memory
- elements
- bit
- computing unit
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 34
- 230000015654 memory Effects 0.000 claims abstract description 89
- 230000004044 response Effects 0.000 claims abstract description 5
- 210000000225 synapse Anatomy 0.000 claims description 111
- 230000005669 field effect Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 abstract description 15
- 230000000946 synaptic effect Effects 0.000 description 100
- 238000000034 method Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000003491 array Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 210000004027 cell Anatomy 0.000 description 6
- 230000003213 activating effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
- G11C11/223—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements using MOS with ferroelectric gate insulating film
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
- G11C11/225—Auxiliary circuits
- G11C11/2293—Timing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0061—Timing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0408—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
- G11C16/0425—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a merged floating gate and select transistor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0408—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
- G11C16/0441—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing multiple floating gate devices, e.g. separate read-and-write FAMOS transistors with connected floating gates
- G11C16/045—Floating gate memory cells with both P and N channel memory transistors, usually sharing a common floating gate
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/77—Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/79—Array wherein the access device being a transistor
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Semiconductor Memories (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及一种串行化神经网络计算单元。所述计算单元包括:位线;内存阵列,其具有多个记忆块,各记忆块具有一个或多个的存储元件,各存储元件连接至位线;控制电路配置为:依序将串行化输入施加到存储元件,使得存储元件响应于串行化输入依序产生输出,其中各输出对应于输入与储存在存储元件中的权重值的乘积;以及为控制电路设定组参考电流位准,此组参考电流位准中的每一个具有特定的电流量,以控制存储元件产生对应于此组参考电流位准的相应输出电流。
Description
相关申请
本申请要求于2019年12月3日所提出名称为“SERIALIZED NONVOLATILE NEURALNETWORK COMPUTING UNIT”的美国临时专利申请62/942,923的优先权。
技术领域
本发明涉及一种串行化神经网络计算单元,其输入、加权及输出模式被串行化,使得可以使用数字输入信号、低精密度的存储元件(memory cell)及传统的1位(1-bit)感测放大器实现神经网络计算单元,并且不需要在具有高精密度存储元件的内存阵列的列电路及行电路中的复杂的高精密度数位模拟转换器电路及模拟数字转换器电路。
背景技术
神经网络计算单元越来越多地用于人工智能及机器学习的应用。计算的主要部分为输入数据与对应的训练加权值之间的大量的乘法与累加(Multiply-and-Accumulate,MAC)运算。为了有效地实现上述MAC运算而提出的一种方法为内存中计算(compute-in-memory)架构,其在储存数据的位置执行计算。在现有技术中,配置有内存中计算架构的MAC计算块(computing block)使用存储元件作为神经网络的突触存储元件,其用于执行模拟输入数据与模拟加权值的乘法运算以产生最终的模拟输出电流。可以通过对模拟领域中的内存阵列的位在线的电流求和以执行累加运算。
然而,由于计算系统的其余部分与数字领域中的MAC计算块之间进行通讯,因此先前的MAC计算装置需要复杂的高精度(例如4、8、16或32位)数字模拟转换器电路及模拟数字转换器电路,以在数字领域与模拟领域之间转换关联的信号。数字领域数据可以表示最大为4、8、16或32位的信息。并且,先前的MAC计算块需要高精度(例如4、8、16或32位)的突触组件,其中4、8、16或32位的信息可以储存在单个突触组件中。因此,配置有内存中计算架构的MAC引擎的效率显著地受限于高精度数位模拟转换器电路及模拟数字转换器电路以及高精度突触组件的可利用性。
发明内容
本发明提供了一种神经网络计算单元。根据本发明,神经网络计算单元包括:位线;内存阵列,其具有多个记忆块,各记忆块具有一个或多个的存储元件,各存储元件连接至位线;以及控制电路,其配置为:依序施加串行化输入至存储元件,使得存储元件响应于串行化输入依序产生多个输出,其中各输出对应于输入与储存在存储元件中的权重值的乘积;以及为该控制电路设定一组参考电流位准,此组参考电流位准中的每一个具有特定的电流量,以控制存储元件产生与对应于此组参考电流位准的个别输出电流。
在一种实施方式中,控制电路进一步配置为依序施加的串行化电压输入至存储元件,使得存储元件对应于串行化电压输入依序产生各个输出电流,其中输出电流对应于串行化电压输入与储存在存储元件中的权重值的乘积。在一种实施方式中,计算单元进一步包含感测电路,用以依序接收该位线中的存储元件的输出电流。在一种实施方式中,该计算单元进一步包含累加器电路,其耦接至感测电路,并且累加器电路配置为将所接收的温度计码形式的输出电流之值转换为二进制码。在一种实施方式中,累加器电路进一步配置为以控制电路所定义的位移位方式(bit-shifted manner)累加经转换的值。
在一种实施方式中,计算单元进一步包含:主突触阵列,其包含连接至通用位线的多个存储元件;并且控制电路进一步配置为:将对应于多个串行输入数据的多个流电压输入串行化地施加至主突触阵列中对应的多个存储元件。在一种实施方式中,串行输入数据的最高有效位是最先输入至对应的存储元件中。在一种实施方式中,神经网络计算单元在不完全计算最低有效位的情况下完成计算。在一种实施方式中,计算单元进一步包含:参考突触阵列,其包含连接至位线的多个参考元件,其中参考元件是程序化为产生相同或不同的预定义输出电流至位线;并且控制电路进一步配置为:施加对应于多个串行输入数据的多个输入电压至选定的参考突触阵列的多个参考元件。
在一种实施方式中,控制电路进一步配置为关闭或者启动零个、一个或多个参考元件,以产生对应于由控制电路所定义的参考位准的个别输出。在一种实施方式中,来自参考元件的输出电流为二进制加权的。在一种实施方式中,感测电路进一步配置为感测第一记忆块中的存储元件的输出电流与第二记忆块中的存储元件的输出电流之和。
在一种实施方式中,感测电路进一步配置为获取以下各项之和:(i)对应于施加至第一记忆块的串行输入数据中的一位的输出电流,以及(ii)在施加至第二记忆块中的串行输入数据的一位的持续时间内,对应于各参考位准相的参考元件的输出电流。在一种实施方式中,感测电路进一步配置为:获取位线中的总输出电流;产生特定的阈值电流位准与总输出电流位准之间的比较结果;以及转换比较结果为对应的二进制信号。在一种实施方式中,感测电路进一步配置以为下列步骤设定迭代次数:(i)阈值电流位准与总输出电流位准之间的比较,以及(ii)根据结果将比较结果转换为对应的二进制信号。
在本发明的一种实施方式中,一种装置包含:存储元件阵列,其包含:位线;第一组存储元件,其分别连接至位线;第二组存储元件,其分别连接至位线;控制电路;第一组控制线,其连接控制电路至第一组存储元件,其中控制电路配置为依序以串行格式施加电压输入数据至第一组存储元件,使其响应于电压输入数据依序产生输出电流,其中输出电流对应于电压输入数据与储存于各存储元件中的权重的乘积;以及,第二组控制线,其连接控制电路至第二组存储元件,其中控制电路配置为设定一组参考电流位准,此组参考电流位准中的每一个具有特定的电流量,使得控制电路控制第二组存储元件产生对应于此组参考电流位准的个别输出电流;以及,感测电路,用以接收来自位线中的第一组存储元件及第二组存储元件的输出电流。
在一种实施方式中,存储元件为闪存、可变电阻式内存、铁电场效内存或具有权重内存的逻辑晶体管,其中的每一个皆经过程序化以产生预定义的特定输出电流。在一种实施方式中,此装置进一步包含累加器电路,其耦接至感测电路,其中累加器电路配置为以控制电路定义的位移位方式从感测电路接收经处理的信号值。在一种实施方式中,感测电路进一步配置为串行化地接收位线中的相应一个输出电流,并将其与预定义的阈值进行比较。在一种实施方式中,累加器电路进一步配置为执行将所接收的信号值从温度计码转换为二进制码,并且以控制电路定义的位移位方式累加经转换的二进制码。
附图说明
通过以下对于附图的说明,本发明的特征对于本领域普通技术人员将变得显而易见。应当理解的是,附图仅描述了本发明的典型实施例,且因此不应将附图视为对本发明范围的限制,并且将通过使用附图以附加的特征及细节来说明本发明。
图1为根据本发明一种实施方式的神经网络计算单元的方块图。
图2A至图2H为使用各种存储元件的根据本发明一种实施方式的例示性突触存储元件的示意图。
图3为根据本发明一种实施方式的突触内存阵列的简化方块图。
图4为根据本发明的一种实施方式的图1的计算电路的操作的时序图。
图5为说明根据本发明一种实施方式的串行化感测操作的过程的流程图。
图6为根据本发明一种实施方式的比较位线中所测量的总电流与预设阈值电流组的过程的流程图。
图7为根据本发明另一种实施方式的比较位线中所测量的总电流与一组预设阈值电流的过程的流程图。
图8为根据本发明另一种实施方式的比较位线中所测量的总电流与一组预设阈值电流的过程的流程图。
图9为根据本发明另一种实施方式的比较位线中所测量的总电流与一组预设阈值电流的过程的流程图。
具体实施方式
图1为根据本发明一种实施方式的神经网络计算单元的方块图。神经网络计算单元(Computing Unit)100包含控制器(Controller)110、主突触阵列(Main Synapse Array)120、参考突触阵列(Reference Synapse Array)130、感测电路(Sensing Circuit)140及累加器电路(Accumulator Circuit)150。
控制器110与主突触阵列120、参考突触阵列130、感测电路140及累加器电路150进行通讯。主突触阵列120可以包含单个或多个突触存储元件以共同表现特定的参数值。参考突触阵列130可以包含单个或多个突触存储元件以共同表现特定的参考值。主突触阵列120及参考突触阵列130可以从控制器110接收串行化的数字输入序列信号。来自主突触阵列120及参考突触阵列130的对应于输入序列信号的输出可以在连接至感测电路140的共享的位线BL中累加。
感测电路140配置为应用一个或多个的通过控制器110校正的阈值位准。感测电路140依序地从位线(bit line)BL接收串行化信号,并且使用通过控制器110配置的阈值位准以产生其串行化输出(serialized output)SO序列。累加器电路150从感测电路140接收串行化输出SO的值,并将这些值以通过控制器110的另一个控制信号配置的位移位方式累加在其输出节点(accumulator output)AO中。
此外,控制器110可以包含关键子区块(key subblock),例如缓存器、数据存储器、程序代码内存(code memory)、一次可程序内存或只读存储器或其他非挥发性内存、时序电路或数字处理电路。缓存器可以储存用于使控制器110执行预期操作的关键配置(keyconfiguration)。数据存储器可以储存数字输入数据以提供至主突触阵列120及参考突触阵列130。程序代码内存配置为储存控制器110的操作顺序。一次可程序内存或只读存储器或其他非挥发性内存可以储存感测电路140的参考电流位准,并且可以进一步配置为储存输入数字序列信号的串行化序列顺序(serialization sequence order)或时序信息(例如,MSB优先、CSB优先或LSB优先)、参数选择序列(parameter selection sequence)信号(例如,MSB优先、CSB优先或LSB优先)或者参考数字序列(reference digital sequence)信号(例如,低位准优先、中位准优先或高位准优先)。由于来自MSB资料的结果对整个结果的贡献最大,因此可以优先输入MSB输入数字信号及MSB参数选择信号,使得控制器110能够在用LSB数据完成完整的运算序列信号之前停止发送数字序列信号,以在输出精度可牺牲的情况下取得更高的性能表现。当在LSB数据的运算结束前停止了输入序列,累加器输出AO节点上的中间累加器输出信号可以大约足够好地表示(represent approximately goodenough)来自计算单元的总体输出。
时序电路可以检查操作顺序并且根据特定的时序以调制关键信号脉冲(modulatekey signal pulses)(例如,图4中示出的操作时序)。数字处理电路可以从缓存器、数据存储器或程序代码内存、一次性可编程内存或只读存储器或其他非挥发性内存或时序电路中检索信息,并且具有错误检测或修正、压缩或解压缩、加密或解密,模式检测或计数、过滤、调制,布尔逻辑运算等能力,使得控制器110可以弹性地(resiliently)且高效率地发送位串行化(bit-serialized)数字序列信号至主突触阵列120及参考突触阵列130,以及发送控制信号至感测电路140及累加器电路150。控制器110的关键子区块的定义及使用为本领域普通技术人员了解的,并且不限定于在此阐述的具体说明或形式。
虽然将单条位线BL定义为用于神经网络计算单元100中相关联的电路组件的单条线,但是可以将复数条位线BL并联连接以同时计算多个行。因此,各个行可以共享通用串行化数字输入及参考序列信号以及来自控制器110的控制信号。另一方面,位线BL上的信号可以表示信息的正值或者负值。尽管在图1中描述了单条位线(例如,位线BL),但是突触阵列可以具有两条不同的输出位线(例如,BL_P及BL_N),使得一条线(例如,BL_P)携带正值的信息并且另一条线(例如,BL_N)携带负值的信息。在此情况下,感测电路140将两线信号之间的差作为输入。
此外,即使在图1中示出了单组的主突触阵列120,也可以将多组的主突触阵列120并联连接以表示多个参数,并且同时在共享的位线BL中累加多组的输出。因此,各组主突触阵列120可以分别具有串行化的数字输入序列信号。
进一步地,主突触阵列120及参考突触阵列130可以具有来自控制器110的多条输入信号线,使得输入数据的符号信息及其大小信息可以被携带至突触阵列。在一种实施方式中,主突触阵列120中的一组存储元件从控制器110依序接收多个输入信号。控制器110依序传送n位(二进制)输入数据至主突触阵列120中的各个突触存储元件,使得对应的存储元件产生对应于输入乘以所储存的存储元件权重的函数的输出电流信号。当提供n位输入信号至主突触阵列120中选定的存储元件中时,控制器110同步化主突触阵列120及参考突触阵列130中的存储元件的操作。控制器110同时传输多个参考序列信号至参考突触阵列130中的参考元件组,其中此信号启动零个、一个或多个对应的参考元件,以在各步骤中依序设定参考突触电流位准。
多个参考突触电流位准依序施加,通过传送多个参考序列信号至参考突触阵列130,同时将n位输入中的一位提供至主突触阵列120中选定的存储元件而实现。控制器110控制参考突触阵列130中的参考元件组,使其一旦当输入的n位中的一个由主突触阵列120中选定的存储元件处理时,则会将各参考突触位准依序加以调整。
图2A至图2H为使用各种存储元件的根据本发明一种实施方式的例示性突触存储元件的示意图,其使用例如逻辑闪存、逻辑与非门闪存、与非门闪存、或门闪存、具有晶体管的可变电阻内存、不具有晶体管的可变电阻内存、铁电场效(Ferroelectric Field-EffectTransistor,FeFET)内存以及具有权重内存W的逻辑晶体管。各突触存储元件可以根据控制线输入信号(例如,CG或CGx)以及以阈值电压(用于闪存)、电阻(用于可变式电阻内存)、极化(用于铁电场效内存)或电导(用于具有权重内存的逻辑晶体管)等形式储存于内存的加权值,以使适当的电流位准(例如,Cur_W)流向位线BL。
图2A示出设定(programmed)在电流位准Cur_W的使用逻辑闪存的突触存储元件。电流位准表示输入信号及权重参数的乘积。在此,通过一对信号线CG1及CG2施加输入信号。权重参数储存在逻辑闪存组件中。输出电流位准Cur_W提供至位线BL。
图2B示出设定在电流位准Cur_W的使用逻辑与非门(NAND)闪存的突触存储元件。电流位准表示输入信号及权重参数的乘积。在此,通过从多对信号线中选定的一对信号线以施加输入信号(例如,信号线CG1/信号线CG2及信号线CG3/信号线CG4中的一组)。权重参数储存在选定的逻辑与非门(NAND)闪存组件中。通过开启(turning on)所有其他的未选定的存储元件以及连接至信号线SG1/信号线SG2的顶部/底部开关晶体管,以提供输出电流位准Cur_W至位线BL。
图2C示出设定在电流位准Cur_W的使用与非门(NAND)闪存的突触存储元件。电流位准表示输入信号及权重参数的乘积。在此,通过从多条信号线(信号线CG1至信号线CG4)中选定的一条信号线以施加输入信号。权重参数储存在选定的与非门(NAND)闪存组件中。通过开启所有其他的未选定的存储元件以及连接至信号线SG1/信号线SG2的顶部/底部开关晶体管,以提供输出电流位准Cur_W至位线BL。
图2D示出设定在电流位准Cur_W的使用或非门(NOR)闪存的突触存储元件。电流位准表示输入信号及权重参数的乘积。在此,通过信号线CG以施加输入信号。权重参数储存在或非门(NOR)闪存组件中。通过开关连接至信号线SG的开关晶体管,以提供输出电流位准Cur_W至位线BL。
图2E示出设定在电流位准Cur_W的使用可变式电阻(resistive change)内存的突触存储元件,其具有晶体管。电流位准表示输入信号及权重参数的乘积。在此,通过信号线CG以施加输入信号。权重参数储存在可变电阻R_w中。通过开关连接至信号线CG的开关晶体管,以提供输出电流位准Cur_W至位线BL。
图2F示出设定在电流位准Cur_W的使用可变式电阻内存的突触存储元件,其不具有晶体管。电流位准表示输入信号及权重参数的乘积。在此,通过信号线CG以施加输入信号。权重参数储存在可变电阻R_w中。输出电流位准Cur_W提供至位线BL。
图2G示出设定在电流位准Cur_W的使用铁电场效内存的突触存储元件。电流位准表示输入信号及权重参数的乘积。在此,通过信号线CG以施加输入信号。权重参数储存在铁电场效内存中。输出电流位准Cur_W提供至位线BL。
图2H示出设定在电流位准Cur_W的使用具有权重内存W的逻辑晶体管的突触存储元件。电流位准表示输入信号及权重参数的乘积。在此,通过信号线CG以施加输入信号。权重参数储存在权重内存W中。通过开关连接至信号线CG的开关晶体管,以提供输出电流位准Cur_W至位线BL。
除了上述的突触存储元件之外,可以进一步配置有其他种类的突触存储元件,这些突触存储元件经过仔细地设定以达到对应于神经网络的权重参数的目标电流位准。
图3为根据本发明一种实施方式的突触内存阵列的简化方块图。
在一种实施方式中,主突触阵列120包含四个突触存储元件Wa、Wb、Wc及Wd。这些突触存储元件Wa、Wb、Wc及Wd通过通用位线BL连接,并且通过信号线CG_Wa、CG_Wb、CG_Wc及CG_Wd分别接收输入序列信号。进一步地,参考突触阵列130包含六个参考元件R0、R1、R2、R3、R4及R5,其通过位线BL连接,并且通过耦接的信号线CG_R0、CG_R1、CG_R2、CG_R3、CG_R4及CG_R5接收参考序列信号。感测放大器(感测电路140)连接至位线BL,并且产生其串行化输出SO至连接至累加器(累加器电路150)的线。累加器(累加器电路150)配置为累加串行化的部分和(serialized partial sums)以产生累加器输出(accumulator output)AO。
值得一提的是,主突触阵列120及参考突触阵列130的数量可以大于一个,并且沿着行及列扩展。主突触阵列120及参考突触阵列130中的一个或两者可以根据各种特定的技术需求,以行或列的单一或多种形式布置。在此,主突触阵列120包含四个突触存储元件Wa、Wb、Wc及Wd,并且参考突触阵列130包含六个参考元件R0、R1、R2、R3、R4及R5。虽然图3中的主突触阵列120及参考突触阵列130描述为分别具有四个或六个存储元件,但是其可以根据存储元件用于储存权重值的容量以及阵列的可用面积,而包含多于或少于在此所述的存储元件。
在两个阵列主突触阵列120及参考突触阵列130中的突触存储元件以串联连接,并且共享通用位线BL。主突触阵列120及参考突触阵列130中的各突触存储元件可以储存固定或可调的突触权重并且产生输出,其为输入乘以权重的函数。进一步地,在本发明的一种实施方式中,通过信号线(信号线CG_Wa、CG_Wb、CG_Wc及CG_Wd)施加至多个存储元件的各输入具有特定的时间间隔。因此,对应于输入的输出电流将以特定的时间间隔分别在位线BL上流动。
主突触阵列120中的突触存储元件的总量可以根据各存储元件的容量而调整。举例来说,当将8位权重分配至主突触阵列120时,且如果可用存储元件可以储存具有四个逻辑状态的两位信息,则主突触阵列120可能总共需要四个存储元件以执行相关的乘法运算。然而,如果主突触阵列120可以储存具有十六个逻辑状态的四位信息,则主突触阵列120可能只需要两个存储元件。并且,如果各存储元件储存具有两个逻辑状态的1位信息,则需要八个突触存储元件。
图3标出设置有8位权重的情形;各存储元件配置为储存2位信息;因此,主突触阵列120中总共布置有4个存储元件以执行相关的对应乘法。在一种实施方式中,参考突触阵列130包含一组参考元件R0、R1、R2、R3、R4及R5。这些参考元件R0、R1、R2、R3、R4及R5可以与主突触阵列120中的存储元件相同或者相似。这些参考元件R0、R1、R2、R3、R4及R5分别耦接至参考信号线(例如,参考信号线CG_R0至参考信号线CG_R5),并且共享通用位线BL。各参考元件R0、R1、R2、R3、R4及R5在输出线BL上输出特定的参考电流,因为当经由对应的信号线接收电压时,各参考元件R0、R1、R2、R3、R4及R5具有其自己的特定突触权重。在此,参考突触阵列130中的六个参考元件R0、R1、R2、R3、R4及R5中的每一个可以设定为产生渐增的不同电流(incrementally different current)。例如,从字符串的最高位至最低位的顺序,启动(activated)的参考元件R5配置为输出6μA;启动的参考元件R4可以输出5μA;启动的参考元件R3可以输出4μA;启动的参考元件R2可以输出3μA;启动的参考元件R1可以输出2μA;并且,启动的参考元件R0可以输出1μA。
感测电路140可以确认在位线BL中感测到的输出电流是否大于或小于阈值,其为控制器110所定义的预定值或校准值。在一种实施方式中,关于主突触阵列120中的突触存储元件与参考突触阵列130中的参考元件(或称参考存储元件)之间的交互作用,控制器110可以被配置为:
1.选择主突触阵列120中的突触存储元件之间的操作的顺序以进行启动。
2.定义一组参考突触位准(通过零个、一个或多个参考突触存储元件获得的输出电流设定值)。
3.选择性地操作参考突触阵列130中的参考元件,使得选择性组合的参考元件(selectively combined reference cells)可以同时产生与所定义的参考位准相同电流的输出电流。
4.在主突触阵列120中选定的突触存储元件正在处理中(under progress)之时控制参考元件的操作。
5.通过在参考突触阵列130中不启动参考元件中的任何一个、选择性地启动部分的参考元件或者启动的所有参考元件,以取得(pursue)通过参考位准设定的位线BL中的各个不同的电流。
在另一种实施方式中,根据所储存的默认顺序,控制器110可以以预定顺序逐个提供序列操作输入及参考信号至主突触阵列120及参考突触阵列130。这些存储元件的依序启动为预先确定的,或者可以由使用者重新设置。通过选择性地在信号在线施加电压输入,控制器110控制选定的主突触存储元件(例如,权重A)以产生输出,其为输入乘以储存在主突触存储元件中参数的函数。控制器110同步化参考元件组的启动与选定权重存储元件的操作。也就是说,当选定的突触存储元件产生对应于经由信号线施加的输入电压的输出电流时,控制器110可以逐步启动参考元件组(参考元件R0至参考元件R5)。可以一起启动多个突触列,以使累加电流流经位线BL。
图4为根据本发明的一种实施方式的图1的计算电路的操作的时序图。
在此,从图式的顶部到第四行表示信号线(信号线CG_Wd、CG_Wc、CG_Wb及CG_Wa),信号线携带用于主突触阵列120中的存储元件(突触存储元件Wa、Wb、Wc及Wd)的3位输入信号。3数元输入值(3-digit input value)通过最高有效位(Most Significant Bit,MSB)、中心有效位(Center Significant Bit,CSB)及最低有效位(Least Significant Bit,LSB)表示。此外,第五列(标为“CG_R5”)与图式底部(标为“CG_R0”)之间的六个行中的每一行示出了经由信号线(信号线CG_R5、CG_R4、CG_R3、CG_R2、CG_R1及CG_R0)分别输入至参考元件组(参考元件R5、R4、R3、R2、R1及R0)的串行二进制输入数据。
在一种实施方式中,控制器110依序启动零个、一个或多个参考元件(参考元件R0、R1、R2、R3、R4及R5),以在位线BL中产生预定义的参考突触位准,而选定存储元件(突触存储元件Wd、Wc、Wb及Wa)中的一个接收3位输入信号以产生对应的输出电流,此输出电流为3位输入乘以储存在存储元件中的权重的函数。
更具体的是,在时间段T1期间,控制器110传送占用最高有效位(IN_MSB)的二进制输入至突触存储元件Wd,以通过位线产生二进制输入乘以储存在突触存储元件Wd中的权重的电流。在时间段T2期间,控制器110通过信号线CG_Wd传送占用中间有效位(IN_CSB)的二进制输入至突触存储元件Wd,且因此,突触存储元件Wd通过位线产生二进制输入乘以储存在突触存储元件Wd中的权重的电流。在时间段T3期间,控制器110通过信号线CG_Wd传送占用最低有效位(IN_LSB)的二进制输入至突触存储元件Wd,且因此,突触存储元件Wd通过位线产生二进制输入乘以储存在突触存储元件Wd中的权重的电流。在时间段T4至时间段T6期间执行发送3位输入信号至突触存储元件Wc;在时间段T7至时间段T9期间执行发送3位输入信号至突触存储元件Wb;并且,在时间段T10至时间段T12期间执行发送3位输入信号至突触存储元件Wa。如图4所示,所执行的对突触存储元件Wa、Wb及Wc的3位输入信号的传输与上述对突触存储元件Wd的3位输入信号的传输相似。
如图4所示,当时间段T1被分割为7个子时间段t1至子时间段t7时,控制器110可以控制与7个子时间段中的每一个相对应的零个、一个或多个参考元件组(参考元件R0、R1、R2、R3、R4及R5)的操作。换句话说,控制器110可以传送信号组至参考元件组(参考元件R0、R1、R2、R3、R4及R5),使得具有信号1的参考元件被共同启动以在位线BL中设定电流的预定参考突触位准,上述电流为添加至来自选定参考元件的输出电流,选定参考元件为被3位输入信号启动的突触存储元件Wd、Wc、Wb及Wa中的一个。在用于参考元件(参考元件R5、R4、R3、R2、R1及R))的二进制序列输入数据中,“1”表示赋能信号,而“0”表示对应参考元件的闲置信号。
在子时间段t1期间,控制器操作突触存储元件Wd(通过提供IN_MSB输入信号)以及参考元件R5(通过提供赋能1数据信号)以输出。因此,在子时间段t1期间产生这些参考元件的输出电流的总和。并且,在子时间段t2至子时间段t7中的每一个时间段期间,控制器110持续传输IN-MSB输入信号至突触存储元件Wd,并且使得能够依序操作参考元件R4、R3、R2、R1、R0及无以输出对应的输出电流。
在时间段T2期间,控制器110传送IN_CSB信号至突触存储元件Wd并依序传输输入信号1至参考元件R5至参考元件R0中的每一个,并且在构成时间段T2的子时间段t8至t14期间传送所有“0”至参考元件。在时间段T3期间,控制器110传送IN_LSB信号至突触存储元件Wd并依序传输输入信号1至参考元件R5至参考元件R0中的每一个,并且在构成时间段T3的子时间段t15至子时间段t21期间传送所有“0”至参考元件。并且,控制器110在剩余的时间段T4至时间段T12中,将与在时间段T1至时间段T3期间所执行的控制器操作的相同方式应用于剩余的存储元件(突触存储元件Wc、Wb及Wa)。
图5为说明根据本发明一种实施方式的串行化感测操作的过程的流程图。应注意的是,在神经网络计算单元100中多个主突触阵列120及多个参考突触阵列130排列成多列及多行。应注意的还有,主突触阵列120及参考突触阵列130中存储元件的数量为控制器110或者用户通过与神经网络计算单元100相关联的接口(未示出)以预先设置或确定的。
在步骤501中,感测电路140设定为“开启(on)”模式以开始感测/校正操作。在步骤503中,主突触位准表示主突触阵列120中对应的突触存储元件所获得的特定输出电流。当接收到时,感测电路140可以识别对应于输入(施加至突触存储元件的n位输入中的一个)乘以储存在选定存储元件中的权重的函数的输出电流量。
在步骤505,控制器110可以设定参考突触位准(通过零个、一个或多个的参考元件所获得的一组输出电流值)。为了获取突触位准指定的输出电流,控制器110可以在参考突触阵列130中设定零个、一个或多个的参考元件。当通过组合参考元件获得设定的输出电流时,控制器110可以计算参考元件的理想数量。例如,为了产生3位格式的输出,其为输入(例如,3位输入)乘以储存在主突触阵列120的突触存储元件中的权重的函数,控制器110可以设定总共七个参考突触位准(7个输出电流设定值),并且根据于程序化等式,例如总参考突触位准S=2^(3)-1,即7,以执行相关的操作。控制器110的操作决定(1)执行感测步骤的次数,以及(2)通过预定义的程序代码或者可以根据使用者的需求手动输入实现参考突触位准的数量。
在步骤507中,控制器110可以操作主突触阵列120及参考突触阵列130中的存储元件以结合(1)来自参考突触阵列130的输出电流,以及(2)来自主突触阵列120的输出电流。换句话说,由特定的参考突触位准所定义的输出电流被添加至来自位线BL中的主突触阵列120中选定的突触存储元件的输出电流。
在步骤509中,感测电路140可以比较在特定时间段T测量的添加输出电流与预设阈值电流值。感测电路140可以储存阈值电流值或者允许使用者输入新的阈值电流值或重设预设阈值电流值。
在步骤511中,当发现测量到的输出电流和大于预设阈值时,感测电路140可以将比较结果记录为二进制信号,例如H。相反地,在步骤513中,当发现测量到的输出电流和未大于预设阈值时,控制器110将比较结果纪录为二进制信号,例如L。
在步骤515中,感测电路140可以检查所有的预定义参考突触位准是否经过了添加及比较步骤507及509。如图4中所述,例如,当完成与参考元件R5相关联的参考突触位准的添加/比较步骤时,这些步骤将应用于与参考元件R4相关联的参考突触位准,并且接着用于参考元件R3、R2、R1、R0及无。
在步骤517中,当发现比较操作并未施加至所有的预设参考突触位准时,感测电路140在重复步骤507至步骤515的操作之前,通过启动不同的参考元件组以继续调整参考突触位准。步骤519为当所有的预设参考突触位准的操作完成时。
在步骤519中,已经完成所有选定的主突触存储元件的预设操作。然而,应注意的是,当突触存储元件Wd处理3位输入数据的一位(MSB)时,在图4中的时间段(例如,T1)期间实现针对相关存储元件的添加、比较及循环步骤。因此,如图4所示,整个步骤501至步骤519可以应用于时间段T2至时间段T12中的每一个。
图6为图5中所示的串行化电流位准感测的示例的示意图。在一种实施方式中,感测电路140可以配置为获取以下各项之和:(i)来自主突触阵列120中的一个选定存储元件的电流,以及(ii)如图4所示,在预设时间段(例如,子时间段t1、t2、t3…)期间来自参考突触阵列130中的零个、一个或多个参考元件的电流。感测电路140可以根据参考突触位准实施求和比较步骤。在本发明的另一种实施方式中,控制器110可以进一步配置为将比较结果转换为指定的特定二进制码。
图6为根据本发明一种实施方式的比较位线中所测量的总电流与一组预设阈值电流的过程的流程图。在图6中,突触阵列控制器110通过控制线CG_Wa传送IN_LSB位输入电压值High至突触列中选定的突触存储元件Wa。并且,如图3所示,存储元件Wa输出2μA,其为输出High乘以两位权重的函数。与突触存储元件Wa相关联(例如,权重参数的权重位0及1)的Cur_Wa为2μA。参考单位中的一组参考突触存储元件(参考元件R0、R1、R2、R3、R4及R5)中的每一个皆使用与主突触存储元件相同类型的突触存储元件实现。这些突触存储元件耦接至对应的参考信号线(例如,信号线CG_R0至信号线CG_R5),彼此并联连接,并且共享通用位线。因为当通过对应的信号线接收电压时各参考突触存储元件具有特定的突触权重,各参考突触存储元件在输出线(位线BL)上输出特定参考电流。在此,六个参考突触存储元件中的每一个配置为产生渐增的不同电流。例如,从阵列的顶部至底部的顺序,启动的参考元件R5配置为输出6μA;启动的参考元件R4可以输出5μA;启动的参考元件R3可以输出4μA;启动的参考元件R2可以输出3μA;启动的参考元件R1可以输出2μA;并且,启动的参考元件R0可以输出1μA。感测放大器的阈值位准可以定义为7μA。当通用位线电流位准Cur大于阈值位准时,感测电路140的串行化输出SO为高。当通用位线电流位准Cur未大于阈值位准时,感测电路140的串行化输出SO为低。
在步骤S1中,感测电路140感测到总电流值8μA(等于2μA的电流位准Cur_Wa加上6μA的电流位准Cur_R5)大于参考阈值位准7μA,且因此产生二进制码High或H的判断结果。接下来,在步骤S2中,感测电路140接续感测到总电流值7μA(等于2μA的电流位准Cur_Wa加上5μA的电流位准Cur_R4)等于参考阈值位准7μA,且因此产生二进制码low或L的判断结果。接下来,在步骤S2中,感测电路140感测到总电流值6μA(等于2μA的电流位准Cur_Wa加上4μA的电流位准Cur_R3)小于参考阈值位准7μA,且因此产生二进制码L的判断结果。接下来,在步骤S4中,感测电路140感测到总电流值5μA(等于2μA的电流位准Cur_Wa加上3μA的电流位准Cur_R2)小于参考阈值位准7μA,且因此产生二进制码L的判断结果。
接下来,在步骤S5中,感测电路140感测到总电流值4μA(等于2μA的电流位准Cur_Wa加上2μA的电流位准Cur_R1)小于参考阈值位准7μA,且因此产生二进制码L的判断结果。接下来,在步骤S6中,感测电路140感测到总电流值3μA(等于2μA的电流位准Cur_Wa加上1μA的电流位准Cur_R0)小于参考阈值位准7μA,且因此产生二进制码L的判断结果。接下来,在步骤S7中,感测电路140感测到总电流值2μA(等于2μA的电流位准Cur_Wa)小于参考阈值位准7μA,且因此产生二进制码L的判断结果。
在另一种实施方式中,以这种方式,从感测电路140串行化地感测位线电流位准Cur,且因此通过七个步骤以产生序列“HLLLLLL”。尽管在图6中针对特定的感测电路140描述了特定位线中的用于电流位准Cur的一个特定序列,但是各感测电路140可以根据各位线电流位准Cur以在各串行化输出SO节点中产生不同的序列。然后,通过对数量进行计数,可以将温度计码转换为二进制码,并且因为温度计码具有一个高信号,在此处的阵列的行中产生用于温度计码“HLLLLLL”的二进制码“001”。相较于温度计码,二进制码仅需较少的位数以储存相同的信息。然后,可以通过适当的移位以将二进制码适当地累加至累加器电路150的缓存器位置,以更新累加器输出AO。
如图6所示,当在输入LSB(IN_LSB)与加权位0、1之间进行计算时,不可以进行位(bits)的移位(shift)。当计算为用于输入LSB(IN_LSB)及加权位2、3时,可以进行2位移位(2-bit shift)。在输入LSB(IN_LSB)与加权位4、5之间进行计算时,可以移位4位。在计算用于输入LSB(IN_LSB)及加权位6、7时,可以进行6位移位(6-bit shift)。在输入CSB(IN_CSB)与加权位0、1之间进行计算时,可以进行1位移位。在输入CSB(IN_CSB)与加权位2、3之间进行计算时,可以进行3位移位。在输入CSB(IN_CSB)与加权位4、5之间进行计算时,可以进行5位移位。在输入CSB(IN_CSB)与加权位6、7之间进行计算时,可以进行7位移位。在输入MSB(IN_MSB)与加权位0、1之间进行计算时,可以进行2位移位。在输入MSB(IN_MSB)与加权位2、3之间进行计算时,可以进行4位移位。在输入MSB(IN_MSB)与加权位4、5之间进行计算时,可以进行6位移位。在输入MSB(IN_MSB)与加权位6、7之间进行计算时,可以进行8位移位。对于权重及输入位的其他精度,可以通过适当的位移位(bit shift)计数以进行类似地串连化地累加。
图7为根据本发明另一种实施方式的比较位线中所测量的总电流与一组预设阈值电流的过程的流程图。如图6中所述,感测电路140根据指定的参考突触位准以执行求和比较步骤。
在步骤S1中,当发现输出电流和13μA(包含第一参考突触位准6μA)大于参考阈值7μA时,感测电路140产生二进制码H。接下来在步骤S2中,当发现输出电流和12μA(包含第二参考突触位准5μA)大于参考阈值位准7μA时,感测电路140产生二进制码H。
接下来在步骤S3中,当发现输出电流和11μA(包含第三参考突触位准4μA)大于参考阈值位准7μA时,感测电路140产生二进制码H。接下来在步骤S4中,当发现输出电流和10μA(包含第四参考突触位准3μA)大于参考阈值位准7μA时,感测电路140产生二进制码H。
接下来在步骤S5中,当发现输出电流和9μA(包含第五参考突触位准2μA)大于参考阈值位准7μA时,感测电路140产生二进制码H。接下来在步骤S6中,当发现输出电流和8μA(包含第六参考突触位准1μA)大于参考阈值位准7μA时,感测电路140产生二进制码H。最后,在步骤S7中,当发现输出电流和7μA(包含第七参考突触位准0μA)等于参考阈值位准7μA时,感测电路140产生二进制码L的判断结果。
在另一种实施方式中,以这种方式,串行化地从感测电路140感测位线电流位准Cur,并通过七个步骤产生序列“HHHHHHL”。通过对数量进行计数,可以将温度计码转换为二进制码,并且因为温度计码具有六个高信号,在此处的行中产生用于温度计码“HHHHHHL”的二进制码“110”。然后,可以通过适当的移位以将二进制码适当地累加至累加器电路150的缓存器位置,以更新累加器输出AO。如图7所示,当在输入LSB(IN_LSB)与加权位0、1之间进行计算时,不可以进行位的移位。当在输入LSB(IN_LSB)与加权位2、3之间进行计算时,可以进行二位移位。当在输入LSB(IN_LSB)与加权位4、5之间进行计算时,可以进行四位移位。当在输入LSB(IN_LSB)与加权位6、7之间进行计算时,可以进行六位移位。
图8为根据本发明另一种实施方式的比较位线中所测量的总电流与一组预设阈值电流的过程的流程图。如图6及图7中所述,感测电路140根据指定的参考突触位准以执行求和比较步骤。在此情况下,突触阵列控制器110通过控制线CG_Wa传送IN_LSB位输入电压值Low至突触列中选定的突触存储元件Wa。并且,如图3所示,突触存储元件Wa的输出接近0μA,其为输入low乘以两位的权重的函数。电流位准Cur_Wa与突触存储元件Wa(例如,权重参数的加权位0及1)相关联。
在步骤S1中,当发现总输出电流接近6μA,其仅包第一参考突触位准6μA,而小于参考阈值位准7μA时,感测电路140产生二进制码L的判断结果。接下来在步骤S2中,当发现总输出电流接近5μA,其仅包含第二参考突触位准5μA,而小于参考阈值位准7μA时,感测电路140产生二进制码L的判断结果。
接下来在步骤S3中,当发现总输出电流接近4μA,其仅包含第二参考突触位准4μA,而小于参考阈值位准7μA时,感测电路140产生二进制码L的判断结果。接下来在步骤S4中,当发现总电流值大约为3μA,其仅包含第二参考突触位准3μA,而小于参考阈值位准7μA时,感测电路140产生二进制码L的判断结果。
下来在步骤S5中,当发现总电流值大约为2μA,其仅包含第二参考突触位准2μA,而小于参考阈值位准7μA时,感测电路140产生二进制码L的判断结果。接下来在步骤S6中,当发现总电流值大约为1μA,其仅包含第二参考突触位准1μA,而小于参考阈值位准7μA时,感测电路140产生二进制码L的判断结果。接下来,在步骤S7中,当发现总电流值大约为0μA,其仅包含第七参考突触位准0μA,而小于参考阈值位准7μA时,感测电路140产生二进制码L的判断结果。
在另一种实施方式中,以这种方式,串行化地从感测电路140感测位线电流位准Cur,并且如图8所示,从七个步骤中产生序列“LLLLLLL”。通过对数量进行计数,可以将温度计码转换为二进制码,并且因为温度计码具有零个高信号,因此产生用于温度计码“LLLLLLL”的二进制码“000”。然后,因为此添加不会改变累加器输出AO,所以此二进制码可以不被添加至累加器电路150的缓存器位置。
图9为根据本发明另一种实施方式的比较位线中所测量的总电流与一组预设阈值电流的过程的流程图。
在此情况中,突触阵列控制器110通过控制线CG_Wa传送IN_LSB位输入电压值High至突触列中选定的突触存储元件Wa。并且,参考突触位准为通过参考突触阵列130中的零个、单个参考元件或者参考元件的组合以获得的。来自参考元件的输出位准为二进制加权的(例如,电流位准Cur_R2为电流位准Cur_R1的两倍,并且电流位准Cur_R1为电流位准Cur_R0的两倍)。当使用二进制加权的参考元件时,用于执行与图7相同的操作所需的参考元件的数量从六个(例如,图7中的电流位准Cur_R5至电流位准Cur_R0)减少至三个(图9中的电流位准Cur_R2至电流位准Cur_R0)。这样可以减少参考元件阵列所需要的面积,并增加神经网络计算单位的面积效率。
在步骤S1中,感测电路140感测到总电流值8μA(包含(i)通过电流位准Cur_Wa的突触存储元件的2μA,以及(ii)通过参考元件R2、R1的组合以获取的突触位准1的6μA)大于参考阈值位准7μA,并且产生二进制码H的判断结果。在步骤S2中,感测电路140接续感测到总电流值7μA(包含(i)通过电流位准Cur_Wa的突触存储元件的2μA,以及(ii)通过参考元件R2、R0的组合以获取的突触位准2的5μA)等于参考阈值位准7μA,并且产生二进制码L的判断结果。
接下来,在步骤S3中,感测电路140感测到总电流值6μA(包含(i)通过电流位准Cur_Wa的突触存储元件的2μA,以及(ii)通过参考元件R2以获取的突触位准3的4μA)小于参考阈值位准7μA,并且产生二进制码L的判断结果。接下来,在步骤S4中,感测电路140感测到总电流值5μA(包含(i)通过电流位准Cur_Wa的突触存储元件的2μA,以及(ii)通过参考元件R1、R0的组合以获取的突触位准4的3μA)小于参考阈值位准7μA,并且产生二进制码L的判断结果。
接下来,在步骤S5中,感测电路140感测到总电流值4μA(包含(i)通过电流位准Cur_Wa的突触存储元件的2μA,以及(ii)通过参考元件R1以获取的突触位准5的2μA)小于参考阈值位准7μA,并且产生二进制码L的判断结果。接下来,在步骤S6中,感测电路140感测到总电流值3μA(包含(i)通过电流位准Cur_Wa的突触存储元件的2μA,以及(ii)通过参考元件R0以获取的突触位准6的1μA)小于参考阈值位准7μA,并且产生二进制码L的判断结果。接下来,在步骤S7中,感测电路140感测到总电流值2μA(包含不通过参考元件获取的突触位准7的0μA),其仅包含电流位准Cur_Wa的2μA,小于参考阈值位准7μA,并且产生二进制码L的判断结果。
在另一种实施方式中,以这种方式,串行化地从感测电路140感测位线电流位准Cur,并且如图9所示,从七个步骤中产生序列“HLLLLLL”。通过对数量简单地进行计数,可以将温度计码转换为二进制码,并且因为温度计码具有一个高信号,因此在所示的行中产生用于温度计码“HLLLLLL”的二进制码“001”。然后,因为此添加不会改变累加器输出AO,所以此二进制码可以不被添加至累加器电路150的缓存器位置。可以通过适当的移位以将二进制码适当地累加至累加器电路150的缓存器位置,以更新累加器输出AO。如图9所示,当在输入LSB(IN_LSB)与加权位0、1之间进行计算时,不可以进行位的移位。当在输入LSB(IN_LSB)与加权位2、3之间进行计算时,可以进行二位移位。当在输入LSB(IN_LSB)与加权位4、5之间进行计算时,可以进行四位移位。当在输入LSB(IN_LSB)与加权位6、7之间进行计算时,可以进行六位移位。
Claims (20)
1.一种神经网络计算单元,包含:
位线;
内存阵列,具有多个记忆块,各个记忆块具有一个或多个的存储元件,各个所述存储元件连接至所述位线;以及
控制电路,配置为:
依序施加串行化输入至所述存储元件,使得所述存储元件响应于所述串行化输入依序产生多个输出,其中各所述输出对应于所述串行化输入与储存在所述存储元件中的权重值的乘积;以及
设定一组参考电流位准,其各自具有特定的电流量,从而所述控制电路控制所述存储元件以产生分别对应于该组参考电流位准的输出电流。
2.根据权利要求1所述的神经网络计算单元,其中所述控制电路进一步配置为依序将串行化电压输入施加至所述存储元件,使得所述存储单元的每一输出电流按与所述电压输入相对应的顺序产生,其中所述输出电流对应于所述电压输入与存储在所述存储元件中的权重值的乘积。
3.根据权利要求2所述的神经网络计算单元,其中所述计算单元进一步包括感测电路,用以依序接收所述位线中所述存储元件的所述输出电流。
4.根据权利要求3所述的神经网络计算单元,其中所述计算单元进一步包括累加器电路,其耦接至所述感测电路,并且所述累加器电路配置为将所接收的温度计码形式的所述输出电流值转换为二进制码。
5.根据权利要求4所述的神经网络计算单元,其中所述累加器电路进一步配置为以所述控制电路所定义的位移位方式累加经转换的值。
6.根据权利要求2所述的神经网络计算单元,其中所述计算单元进一步包括:
主突触阵列,包括连接至所述位线的多个存储元件;并且
所述控制电路进一步配置为:
将对应于多个串行输入数据的多个电压输入串行化地施加至所述主突触阵列中对应的所述多个存储元件。
7.根据权利要求6所述的神经网络计算单元,其中所述串行输入数据的最高有效位是最先输入至对应的所述存储元件中。
8.根据权利要求7所述的神经网络计算单元,其中所述神经网络计算单元在不完全计算最低有效位的情况下完成计算。
9.根据权利要求6所述的神经网络计算单元,其中所述计算单元进一步包括:
参考突触阵列,包括连接至所述位线的多个参考元件,其中所述多个参考元件是配置为产生相同或不同的预定义输出电流至所述位线;并且
所述控制电路进一步配置为:
施加对应于多个串行输入数据的多个输入电压至选定的所述参考突触阵列的所述多个参考元件。
10.根据权利要求9所述的神经网络计算单元,其中所述控制电路进一步配置为关闭或者启动零个、一个或多个所述参考元件,以产生分别对应于由所述控制电路定义的参考位准的输出。
11.根据权利要求9所述的神经网络计算单元,其中来自所述参考元件的所述输出电流为二进制加权的。
12.根据权利要求3所述的神经网络计算单元,其中所述感测电路进一步配置为感测第一记忆块中的存储元件的输出电流与第二记忆块中的存储元件的输出电流之和。
13.根据权利要求12所述的神经网络计算单元,其中所述感测电路进一步配置为获取以下各项之和:(i)对应于施加至所述第一记忆块的串行输入数据的一位的所述存储元件的输出电流,以及(ii)对应于所述控制电路定义的各参考电流位准的参考元件的输出电流。
14.根据权利要求13所述的神经网络计算单元,其中所述感测电路进一步配置为:
获取所述位线中的总输出电流;
产生特定的阈值电流位准与所获得的所述总输出电流位准之间的比较结果;以及
转换所述比较结果为对应的二进制信号。
15.根据权利要求14所述的神经网络计算单元,其中所述感测电路进一步配置为设定多个迭代:(i)所述阈值电流位准与所述总输出电流位准之间的比较,以及(ii)将所述比较的结果转换为对应的二进制信号。
16.一种装置,包括:
存储元件阵列,其包括:
位线;
第一组存储元件,分别连接至所述位线;
第二组存储元件,分别连接至所述位线;
控制电路;
第一组控制线,连接所述控制电路至所述第一组存储元件,其中所述控制电路配置为依序以串行格式施加电压输入数据至所述第一组存储元件,使其响应于所述电压输入数据依序产生输出电流,其中输出电流对应于所述电压输入数据与储存于各所述存储元件中的权重的乘积;
第二组控制线,连接所述控制电路至所述第二组存储元件,其中所述控制电路配置为设定一组参考电流位准,其各自具有特定的电流量,使得所述第二组存储元件产生对应于所述组参考电流位准的相应输出电流;以及
感测电路,用以接收来自所述第一组存储元件及所述第二组存储元件所述位线中的输出电流。
17.根据权利要求16所述的装置,其中所述存储元件为闪存、可变电阻式内存、铁电场效内存或具有权重内存的逻辑晶体管,其各自经过程序化以产生预定义的特定输出电流。
18.根据权利要求16所述的装置,其进一步包括累加器电路,其耦接至所述感测电路,其中所述累加器电路配置为以所述控制电路定义的位移位方式从所述感测电路接收经处理的信号值。
19.根据权利要求16所述的装置,其中所述感测电路进一步配置为串联化地接收所述位线中的相应一个输出电流,并将其与预定义的阈值进行比较。
20.根据权利要求18所述的装置,其中所述累加器电路进一步配置为执行将接收的信号值从温度计码转换为二进制码,并且以所述控制电路定义的位移位方式累加经转换的二进制码。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962942923P | 2019-12-03 | 2019-12-03 | |
US62/942,923 | 2019-12-03 | ||
US17/109,114 US20210166110A1 (en) | 2019-12-03 | 2020-12-01 | Serialized neural network computing unit |
US17/109,114 | 2020-12-01 | ||
PCT/US2020/062802 WO2021113298A1 (en) | 2019-12-03 | 2020-12-02 | Serialized neural network computing unit |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114902241A true CN114902241A (zh) | 2022-08-12 |
Family
ID=76091568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080082888.1A Pending CN114902241A (zh) | 2019-12-03 | 2020-12-02 | 串行化神经网络计算单元 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20210166110A1 (zh) |
EP (1) | EP4070243A4 (zh) |
KR (1) | KR20220112280A (zh) |
CN (1) | CN114902241A (zh) |
TW (1) | TW202131331A (zh) |
WO (1) | WO2021113298A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11966628B2 (en) * | 2022-01-11 | 2024-04-23 | Macronix International Co., Ltd. | Memory device and operating method thereof |
WO2023177269A1 (en) * | 2022-03-18 | 2023-09-21 | Samsung Electronics Co., Ltd. | Neural network based method and device |
CN116863936B (zh) * | 2023-09-04 | 2023-12-19 | 之江实验室 | 一种基于FeFET存算一体阵列的语音识别方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5256911A (en) * | 1992-06-10 | 1993-10-26 | Intel Corporation | Neural network with multiplexed snyaptic processing |
US6081456A (en) * | 1999-02-04 | 2000-06-27 | Tower Semiconductor Ltd. | Bit line control circuit for a memory array using 2-bit non-volatile memory cells |
CN104756193B (zh) * | 2013-01-14 | 2018-11-06 | 慧与发展有限责任合伙企业 | 非易失性存储器阵列逻辑 |
US9747546B2 (en) * | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
JP7306725B2 (ja) * | 2018-03-19 | 2023-07-11 | ミシック,インコーポレイテッド | 混合信号コンピューティングのためのシステムおよび方法 |
US11048434B2 (en) * | 2018-09-28 | 2021-06-29 | Intel Corporation | Compute in memory circuits with time-to-digital computation |
US11132176B2 (en) * | 2019-03-20 | 2021-09-28 | Macronix International Co., Ltd. | Non-volatile computing method in flash memory |
US11436478B2 (en) * | 2019-05-22 | 2022-09-06 | Ememory Technology Inc. | Control circuit for multiply accumulate circuit of neural network system |
-
2020
- 2020-12-01 US US17/109,114 patent/US20210166110A1/en active Pending
- 2020-12-02 EP EP20896243.1A patent/EP4070243A4/en active Pending
- 2020-12-02 KR KR1020227022815A patent/KR20220112280A/ko unknown
- 2020-12-02 CN CN202080082888.1A patent/CN114902241A/zh active Pending
- 2020-12-02 WO PCT/US2020/062802 patent/WO2021113298A1/en unknown
- 2020-12-03 TW TW109142688A patent/TW202131331A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20210166110A1 (en) | 2021-06-03 |
KR20220112280A (ko) | 2022-08-10 |
WO2021113298A1 (en) | 2021-06-10 |
EP4070243A4 (en) | 2024-02-28 |
TW202131331A (zh) | 2021-08-16 |
EP4070243A1 (en) | 2022-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114902241A (zh) | 串行化神经网络计算单元 | |
US11132176B2 (en) | Non-volatile computing method in flash memory | |
US5729490A (en) | Parallel-dichotomic serial sensing method for sensing multiple-level non-volatile memory cells, and sensing circuit for actuating such method | |
CN109800876B (zh) | 一种基于NOR Flash模块的神经网络的数据运算方法 | |
JP7384925B2 (ja) | ビットオーダバイナリ加重乗算器/積算器 | |
CN111985607A (zh) | 运用于类神经网络系统的乘积累加电路的相关控制电路 | |
US11385863B2 (en) | Adjustable precision for multi-stage compute processes | |
US20200160165A1 (en) | Methods and systems of operating a neural circuit in a non-volatile memory based neural-array | |
JP2021518590A (ja) | 混合信号コンピューティングのためのシステムおよび方法 | |
CA3137231A1 (en) | Training of artificial neural networks | |
GB2583790A (en) | Computing circuitry | |
CN110729011B (zh) | 用于类神经网路的存储器内运算装置 | |
US20200026496A1 (en) | Calculation device | |
KR102409859B1 (ko) | 신경망들을 위한 가중된 입력들을 생성하도록 구성된 메모리 셀들 | |
EP4022426A1 (en) | Refactoring mac operations | |
CN113255875A (zh) | 神经网络电路和神经网络系统 | |
Luo et al. | Benchmark non-volatile and volatile memory based hybrid precision synapses for in-situ deep neural network training | |
US20220101142A1 (en) | Neural network accelerators resilient to conductance drift | |
KR20210029070A (ko) | Mac 연산 동작을 수행하는 비휘발성 메모리 장치 | |
CN112447228A (zh) | 执行乘法累加运算的非易失性存储器件 | |
US20210241084A1 (en) | Neural network unit | |
CN111722830B (zh) | 快闪存储器的非易失性计算方法 | |
TWI771835B (zh) | 用於神經網路之推理引擎及其操作方法 | |
WO2019211601A1 (en) | An analogue-digital hybrid computer | |
US20220043885A1 (en) | Method and apparatus for convolutional computation based on floating gate nvm array |
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 |