CN111627479B - 编码型闪存装置、系统和编码方法 - Google Patents
编码型闪存装置、系统和编码方法 Download PDFInfo
- Publication number
- CN111627479B CN111627479B CN202010471843.5A CN202010471843A CN111627479B CN 111627479 B CN111627479 B CN 111627479B CN 202010471843 A CN202010471843 A CN 202010471843A CN 111627479 B CN111627479 B CN 111627479B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- memory array
- array structure
- unit
- source line
- 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
- 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
- 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/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
-
- 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
- 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/08—Address circuits; Decoders; Word-line control circuits
-
- 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/24—Bit-line control circuits
-
- 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/26—Sensing or reading circuits; Data output circuits
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Mathematical Optimization (AREA)
- Semiconductor Memories (AREA)
- Read Only Memory (AREA)
- Non-Volatile Memory (AREA)
Abstract
本发明公开了一种编码型闪存装置、系统和编码方法,该编码型闪存装置包括:至少一个闪存阵列结构单元、多个灵敏放大器和多个加法器,至少一个闪存阵列结构单元中每个闪存阵列结构单元为3D NAND FLASH阵列结构单元;多个灵敏放大器中每个灵敏放大器与每个闪存阵列结构单元的每条源线对应相连,用于将对应相连的每条源线的源线电压转换为二进制形式的输出结果;多个加法器中每个加法器与每个闪存阵列结构单元的多个灵敏放大器通过对应的每条源线相连,用于将与每个闪存阵列结构单元对应的多个灵敏放大器的多个输出结果进行加和运算,以实现深度神经网络。本发明的编码型闪存装置输出单元设计简单,同时保证了编码运算的准确性。
Description
技术领域
本发明涉及半导体器件与集成电路技术领域,特别涉及一种实现深度神经网络的编码型闪存装置、系统和编码方法。
背景技术
深度神经网络在图像处理和语音识别等方面展现出优异的性能,并被广泛应用于自动驾驶、智能医疗和安防监控等先进技术领域。传统的冯诺依曼式计算架构的存储单元和计算单元分离、数据通过总线传输,速度慢、能量和硬件资源消耗大,限制了深度神经网络数据处理效率和能效比的提高。为此,现有技术提供了一种基于3D NAND FLASH结构的模拟运算的编码型闪存系统。但是,现有的编码型闪存系统,在不同存储单元之间阈值的涨落较高时,计算准确性无法保证,同时输出单元的设计也颇为复杂。
发明内容
(一)要解决的技术问题
为解决现有技术中基于3D NAND FLASH结构的模拟运算的编码型闪存系统在不同存储单元之间阈值的涨落较高时,导致计算准确性无法保证,同时输出单元设计复杂的技术问题,本发明公开了一种编码型闪存装置、系统和编码方法。
(二)技术方案
本发明的一个方面公开了一种编码型闪存装置,其中,包括:至少一个闪存阵列结构单元、多个灵敏放大器和多个加法器,至少一个闪存阵列结构单元中每个闪存阵列结构单元为3D NAND FLASH阵列结构单元,用于实现编码运算以生成闪存阵列结构单元的多条源线中每条源线上的源线电压;多个灵敏放大器中每个灵敏放大器与每个闪存阵列结构单元的每条源线对应相连,用于将对应相连的每条源线的源线电压转换为二进制形式的输出结果;以及多个加法器中每个加法器与每个闪存阵列结构单元的多个灵敏放大器通过对应的每条源线相连,用于将与每个闪存阵列结构单元对应的多个灵敏放大器的多个输出结果进行加和运算,以实现深度神经网络。
根据本发明的实施例,其中,每个闪存阵列结构单元包括:多个运算阵列单元,多个运算阵列单元中每个运算阵列单元包括相互串联的多个晶体管,其中,每个运算阵列单元的多条子线中的每条字线上对应设置一个运算阵列单元。
根据本发明的实施例,其中,每个闪存阵列结构单元还包括:串选择线和地选择线,串选择线,与闪存阵列结构单元的位线端相连;地选择线,与闪存阵列结构单元的源线端相连;其中,串选择线与地选择线用于在实现编码运算时施加高电平。
根据本发明的实施例,其中,多个加法器的数量与至少一个闪存阵列结构单元的数量一致。
本发明的另一个方面公开了一种编码型闪存系统,包括上述的编码型闪存装置,用于实现深度神经网络。
本发明的又一个方面公开了一种编码方法,基于上述的编码型闪存装置实现,其中,编码方法包括:基于至少一个闪存阵列结构单元进行编码运算,生成其中每个闪存阵列结构单元的多条源线中每条源线上的源线电压;多个灵敏放大器将与每个灵敏放大器对应的每条源线的源线电压转换为二进制形式的输出结果;以及多个加法器中的每个加法器将与每个闪存阵列结构单元对应的多个灵敏放大器的多个输出结果进行加和运算,实现深度神经网络。
根据本发明的实施例,其中,编码运算为全连接运算或卷积层运算。
根据本发明的实施例,其中,编码运算为全连接运算时,基于至少一个闪存阵列结构单元进行编码运算,生成其中每个闪存阵列结构单元的多条源线中每条源线上的源线电压之前,还包括:将全连接层的权值矩阵向量中的多个非零位元素中的每个非零位元素预存入编码型闪存装置中多个运算阵列单元中的对应运算阵列单元中的多个晶体管中的每个晶体管中。
根据本发明的实施例,其中,编码运算为卷积层运算时,基于至少一个闪存阵列结构单元进行编码运算,生成其中每个闪存阵列结构单元的多条源线中每条源线上的源线电压之前,还包括:将卷积层的卷积核向量中的多个卷积核元素中的每个卷积核元素预存入编码型闪存装置中多个运算阵列单元中的对应运算阵列单元中的多个晶体管中的每个晶体管中。
根据本发明的实施例,其中,将全连接层的权值矩阵向量中的多个非零位元素中的每个非零位元素预存入编码型闪存装置中多个运算阵列单元中的对应运算阵列单元中的多个晶体管中的每个晶体管中之后,或将卷积层的卷积核向量中的多个卷积核元素中的每个卷积核元素预存入编码型闪存装置中多个运算阵列单元中的对应运算阵列单元中的多个晶体管中的每个晶体管中之后,还包括:将对应的输入向量的输入元素对应输入多条位线中的每条位线中,以生成相应每条位线上的位线电压。
根据本发明的实施例,其中,在将对应的输入向量的输入元素对应输入多条位线中的每条位线中,以生成相应每条位线上的位线电压之后,还包括:以一运算周期为时间间隔分多个重复次数重复如下步骤:对编码型闪存装置每个闪存阵列结构单元的串选择线和地选择线施加高电平;在对应运算阵列单元所在的字线上施加选择电压;同时,对除运算阵列单元所在的字线之外的其它字线施加通过电压,以确保每条源线上的每个晶体管处于导通状态,从而生成其中每个闪存阵列结构单元的多条源线中每条源线上的源线电压;其中,在第n重复次数的步骤中,对应在第n个运算阵列单元所在的字线上施加选择电压;运算周期的个数、重复次数与每个闪存阵列结构单元中的多条字线的数量相等。
根据本发明的实施例,其中,编码运算为全连接运算时,基于至少一个闪存阵列结构单元进行编码运算,生成其中每个闪存阵列结构单元的多条源线中每条源线上的源线电压,包括:基于多个闪存阵列结构单元同时进行对应输入向量和权值矩阵向量的编码运算,或者基于一个闪存阵列结构单元采用分时复用的方式进行对应输入向量和权值矩阵向量的编码运算;其中,输入向量为多比特数据。
根据本发明的实施例,其中,编码方法还包括:对每个闪存阵列结构单元对应每个加法器输出的加和结果进行移位求和。
根据本发明的实施例,其中,编码运算为卷积层运算时,编码方法还包括:对多个加法器的加和运算输出的多个加和结果进行移位求和,实现深度神经网络;其中,卷积层的卷积核向量为多比特数据。
(三)有益效果
本发明公开了一种编码型闪存装置、系统和编码方法,该编码型闪存装置包括:至少一个闪存阵列结构单元、多个灵敏放大器和多个加法器,至少一个闪存阵列结构单元中每个闪存阵列结构单元为3D NAND FLASH阵列结构单元;多个灵敏放大器中每个灵敏放大器与每个闪存阵列结构单元的每条源线对应相连,用于将对应相连的每条源线的源线电压转换为二进制形式的输出结果;多个加法器中每个加法器与每个闪存阵列结构单元的多个灵敏放大器通过对应的每条源线相连,用于将与每个闪存阵列结构单元对应的多个灵敏放大器的多个输出结果进行加和运算,以实现深度神经网络。本发明的编码型闪存装置输出单元设计简单,同时保证了编码运算的准确性。
附图说明
图1是本发明实施例中的编码型闪存装置的全连接层矩阵运算示意图;
图2是本发明实施例中的编码型闪存装置的卷积层矩阵运算示意图;
图3是本发明一实施例中应用于全连接层运算的编码型闪存装置的组成示意图;
图4是本发明一实施例中的对应图3所示的编码型闪存装置的全连接运算的时序对应示意图;
图5是本发明另一实施例中应用于卷积层运算的编码型闪存装置的组成示意图;
图6是本发明实施例中的编码型闪存系统的模块组成示意图;
图7是本发明实施例中的编码型闪存方法的流程示意图;
图8是本发明一实施例中对应于全连接运算的编码型闪存装置的编码方法的部分流程示意图;
图9是本发明另一实施例中对应于卷积运算的编码型闪存装置的编码方法的部分流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
为解决现有技术中基于3D NAND FLASH结构的模拟运算的编码型闪存系统在不同存储单元之间阈值的涨落较高时,导致计算准确性无法保证,同时输出单元设计复杂的技术问题,本发明公开了一种编码型闪存装置、系统和编码方法,该编码型闪存装置基于加法器辅助的3D NAND FLASH结构,实现了深度神经网络。
在本发明的实施例中,深度神经网络包含多个计算层(全连接层或卷积层)数据处理,本发明的编码型闪存装置主要应用于全连接层或卷积层的编码运算。其中,如图1所示,对于全连接层运算,输入向量X(1×M) 与权值矩阵K(M×N)相乘后得到输出向量Y(1×N),数学表达如下公式(1):
Yi=X1·K1,i+X2·K2,i+…+XM·KM,i
其中1≤i≤N。
此外,如图2所示,对于卷积层运算,多个局部区域的全连接层,输入向量的矩阵X(M×N)的各部分分别与卷积核向量K(k×k)进行矩阵向量乘法运算,完成卷积操作(即卷积运算)并得到输出矩阵Y(m×n),数学表达如下公式(2):
Yi,j=Xi,j·Kk,k+Xi,j+1·Kk,k-1+Xi+1,j·Kk-1,k+…+Xi+k-1,j+k-1·K1,1
其中1≤i≤M-k+1(m),1≤j≤N-k+1(n)。
卷积层运算和全连接运算,都属于向量矩阵乘法运算。相比之下,卷积运算比全连接运算增加了对卷积核的移位操作。在利用3D NAND FLASH结构的闪存阵列结构单元实现上述两种运算类型的向量矩阵乘法运算时,主要差异在于卷积层的位线BL输入会在每个周期后更新为输入图像待卷积的下一个局部区域。具体地,本发明的编码型闪存装置、系统及编码方法基于如下技术构思实现:
在运算开始前,权值矩阵向量的权值向量元素或者卷积核向量中的卷积核元素按照一定映射规则被写入3D NAND FLASH结构(闪存阵列结构单元)。具体地,上述映射规则涉及:在3D NAND FLASH结构的一条字线上对应的存储阵列单元的每个存储单元中,对应将上述的权值向量元素或卷积核元素写入。每个存储阵列单元包括多个存储单元(即晶体管),每个存储阵列单元的多个存储单元的排列方向与源线SL方向相互垂直。此时,在写入上述的权值向量元素或卷积核元素后,该存储阵列单元将作为本发明的运算阵列单元。
输入向量矩阵中不同向量元素的值(0或1)被写入对应3D NAND FLASH结构的不同位线BL中,以决定3D NAND FLASH结构中位线BL 上的输入的位线电压(对应为0或VBL);
此时,3D NAND FLASH结构的源端的输出的源线电流等效为输入数据(对应于输入向量矩阵)与3D NAND FLASH结构的存储阵列单元中存储数据(权值矩阵或者卷积矩阵)相乘后的结果。具体地,当位线输入位线电压为VBL(1)时,其源端输出源线电流与参考电流Iref的比值1即为输入数据1与3D NAND FLASH结构的输入向量数据X的乘积(1*X=X);当位线输入电压为0(0)时,源端输出的源线电流与参考电流Iref的比值为0,即为输入向量数据0与3DNAND FLASH结构的输入向量数据X的乘积(0*X=0)。
然后,通过在3D NAND FLASH结构上多条源线SL的每条源线SL 的末端对应设置一个灵敏放大器,灵敏放大器可以将上述的源端输出的源线电流(或与该源线电流对应的源线电压)以计算结果(0/1)进行并行读出。
最后,借助加法器对来自多条源线上的多个灵敏放大器的计算结果进行加和运算,即得到最终的运算结果,从而实现高效且精确的存储计算一体化。
因此,本发明的加法器辅助基于3D NAND FLASH结构的编码型闪存装置、系统及编码方法,其能够利用存算一体化技术高效地完成各个计算层的功能,而且外围电路能够将运算结果进行精确的后处理并将处理结果传递到下一层深度神经网络。
本发明的一个方面公开了一种编码型闪存装置,其中,包括:至少一个闪存阵列结构单元100、多个灵敏放大器200和多个加法器300,用于实现上述的基于3D NAND FLASH结构的深度神经网络。
编码型闪存装置包括:至少一个闪存阵列结构单元100,如图3和图 5所示,彼此相互并联连接的闪存阵列结构单元100-1至闪存阵列结构单元110-N,共N个闪存阵列结构单元,N≥1。至少一个(即N个)闪存阵列结构单元100中每个闪存阵列结构单元100为3D NANDFLASH阵列结构单元,该3D NAND FLASH阵列结构单元同时具有多个存储单元、多条位线BL、多条字线WL和多条源线SL,用于实现编码运算以生成闪存阵列结构单元的多条源线中每条源线上的源线电压。
如图3和图5所示,该多个存储单元(即晶体管)的数量可以是M×N 个,其中,M个存储单元按照一定的排列规则相互并列形成一个存储阵列单元。该排列规则具体而言:如图3所示,每个闪存阵列结构单元100中共有N个存储阵列单元,每个存储阵列单元通过一条字线WL对应相连。 N个存储阵列单元中的第一个存储阵列单元对应设置于每个闪存阵列结构单元100的位端,也即该存储阵列单元的每个存储单元的位端分别与该闪存阵列结构单元100的多条位线BL的每条位线BL相连,该存储阵列单元的最后一个存储阵列单元对应设置于每个闪存阵列结构单元100的源端,也即该存储阵列单元的每个存储单元的源端分别与该闪存阵列结构单元100的多条源线SL的每条源线SL相连。位线BL、源线SL的数量为 M条,字线WL的数量与存储阵列单元的数量相同,为N个,存储阵列单元上的存储单元数量为M个。
因此,对应每条字线WL上预设定的存储阵列单元,当其在写入了上述的权值向量元素或卷积核元素之后,作为相应的运算阵列单元用于对上述的写入元素进行编码运算。
多个灵敏放大器200中每个灵敏放大器200与每个闪存阵列结构单元 100的每条源线SL对应相连,用于将对应相连的每条源线SL的源线电压转换为二进制形式的输出结果;本发明的灵敏放大器200可以为集成电路领域的标准灵敏电路,将微小的差分输入电压放大成更大的输出电压,同时输出电压的值以对应地二进制形式(0/1)进行表现。在本发明的另一实施例中,上述灵敏放大器200可以替换为采样电路。
多个加法器300中每个加法器300与每个闪存阵列结构单元100的多个灵敏放大器200通过对应的每条源线SL相连,用于将与每个闪存阵列结构单元100对应的多个灵敏放大器200的多个输出结果进行加和运算,以实现深度神经网络。加法器为计算机技术领域中的逻辑器件,用于执行数字的加和运算。在本发明的实施例中,每个闪存阵列结构单元100可以具有一个加法器300,该加法器300与该闪存阵列结构100的多个灵敏放大器通过灵敏放大器各自所在的源线SL相连,其中多个灵敏放大器之间为相互并联的关系。
因此,本发明的编码型闪存装置通过灵敏放大器输出二进制形式的输出结果,不仅能够在不同器件之间的阈值电压涨落较高时,维持较高的计算准确率,而且还可以避免类似传统结果数值的复杂型,防止了为传统模拟运算提供复杂的模数转换电路,提高了3DNAND FLASH结构存内运算的能效比。最后,借助于加法器的辅助,本发明基于3D NANDFLASH结构的存储计算一体化的编码型闪存装置能够显著提高深度神经网络的能效比,减少硬件开销并实现精准计算,实现了在硬件层面对深度神经网络运算进行加速。
根据本发明的实施例,其中,每个闪存阵列结构单元100包括:多个运算阵列单元,多个运算阵列单元中每个运算阵列单元包括相互串联的多个晶体管,此处的“串联”可以理解为多个晶体管通过一条字线WL相连。其中,每个运算阵列单元的多条字线WL中的每条字线WL上对应设置一个运算阵列单元。每个运算阵列单元即为一个存储阵列单元,具有多个存储单元。该运算阵列单元用于对应写入权值矩阵向量的权值元素或卷积核向量的卷积元素。该运算阵列单元中的运算单元可以存储的数值为0或1,每个对应的存储数值会影响相应存储单元的阈值电压。运算阵列单元用于全连接层运算或卷积层运算,在全连接层运算时,全连接层的权值矩阵向量中的多个非零位元素中的每个非零位元素对应存储到相应的运算阵列单元的运算单元中;在进行卷积层运算时,将卷积层的卷积核向量中的多个卷积核元素中的每个卷积核元素对应存储到相应的运算阵列单元的运算单元中。如图3所示,其中,虚线框中所示的多个存储单元C,所处的 WL0字线对应的存储阵列单元即为该闪存阵列结构单元100上的运算阵列单元。
在本发明的实施例中,闪存阵列结构单元100上的编码运算,可以将多个运算阵列单元采用分时、逐个、多次的形式完成对权值矩阵向量或卷积核矩阵向量的编码运算。如图3所示,在第一时间段,基于字线WL0 所在的存储阵列单元作为运算阵列单元进行第一次编码运算;在第二时间段,基于字线WL1所在的存储阵列单元作为运算阵列单元进行第二次编码运算;…在第n时间段,基于字线WLn-1所在的存储阵列单元作为运算阵列单元进行第n次编码运算。多个闪存阵列结构单元100-1~100-N中的每个闪存阵列结构单元100均可以按照上述运算规则同时进行并行编码运算。
根据本发明的实施例,其中,如图3和图5所示,每个闪存阵列结构单元100还包括:串选择线SSL(serial select line)和地选择线GSL(ground select line),串选择线,与闪存阵列结构单元的位线端相连;具体地,串选择线SSL上设置有多个选择管,每个选择管的一端连接位线BL,另一端连接存储阵列单元的每个存储单元的位端,串选择线SSL将多个选择管沿与源线SL相互垂直的方向串接。
地选择线GSL,与闪存阵列结构单元100的源线端相连;具体地,地选择线GSL上设置有多个选择管,每个选择管的一端连接源线SL,另一端连接存储阵列单元的源端,地选择线GSL将多个选择管沿与源线SL相互垂直的方向串接。
其中,串选择线与地选择线用于在实现编码运算时施加高电平。
根据本发明的实施例,其中,多个加法器300的数量与至少一个闪存阵列结构单元100的数量一致。具体地,如图3所示,本发明的编码型闪存装置中具有N个闪存阵列结构单元100(闪存阵列结构单元100-1至 100-N),则该加法器300的数量也为N个,每个闪存阵列结构单元100 对应设置一个加法器300。
本发明的另一个方面公开了一种编码型闪存系统,包括上述的编码型闪存装置,用于实现深度神经网络。
本发明的编码型闪存系统,是基于3D NAND FLASH结构的存储计算一体化系统。如图6所示,该编码型闪存系统主要包括:控制模块和周边模块以及运算模块A100,运算模块A100包括上述编码型闪存装置的基本结构,其中包括多个处理单元A110,用于对全连接运算或卷积核运算进行编码运算。其中,每个处理单元A110包括至少一个闪存阵列结构单元100、灵敏放大器200和加法器300,对应于上述编码型闪存装置的结构设置。
处理单元A110实际上等同于存内计算单元。存内计算单元的主体部分为3D NANDFLASH结构阵列(即闪存阵列结构单元100),可以实现卷积层和全连接层等向量矩阵乘法运算,以源线电流或源线电压形式存在的计算结果需经过灵敏放大器200转换读出,加法器300可对灵敏放大器 200的输出结果进行加和运算,得到最终卷积运算和全连接运算的运算结果。
周边模块主要为处理单元A110周围的外周电路组成,包括位线BL 驱动模块A200、字线WL驱动模块A300、输出模块A400等组成。位线 BL驱动模块A200用于输入向量矩阵的向量元素的输入,向处理单元A110 的闪存阵列结构单元100施加相应的位线电压VBL;字线WL驱动模块 A300用于向处理单元A110的闪存阵列结构单元100施加相应的字线电压 VWL;输出模块A400用于将处理单元A110的加法器300的加和运算结果进行输出,输出模块A400最终输出的输出矩阵可以作为深度神经网络中下一层的输入数据参与运算。因此,本发明的编码型闪存系统,实现了存储计算一体化,能够显著提升深度神经网络的能效比、减少硬件开销并实现精确计算。
控制模块主要用于对处理单元A110的编码运算实现输入/输出的控制,包括微控制器A500、可配置接口A600和缓冲模块A700,微控制器 A500作为中央处理单元,可根据应用场景的差异化,灵活配置计算资源,实现对多个存内计算单元的协同控制,可实现本发明编码型闪存装置对多比特向量矩阵乘法的并行处理,从而对深度神经网络进行加速;可配置接口A600用于与其他存储器电路连接,将该编码型闪存系统与外部连通;缓冲模块A700包括多个区块(Bank)和缓冲控制区(buffer ctrl),用于对输入/输出数据的缓冲存储。
本发明的基于3D NAND FLASH结构设计的编码型闪存系统,能够并行执行深度神经网络中大量的向量矩阵乘法运算,消除了权值矩阵数据传输过程中存在的瓶颈,实现了存储计算一体化。与传统CPU和GPU等计算架构相比,极大地降低了能量和硬件资源消耗、有效提升了计算效率和能效比。
现具体阐述将3D NAND FLASH结构应用于向量矩阵乘法运算,以实现并行化数据处理的过程。
本发明的又一个方面公开了一种编码方法,基于上述的编码型闪存装置实现,如图3、图4、图5以及图7所示,其中编码方法包括:
步骤S100:基于至少一个闪存阵列结构单元100进行编码运算,生成其中每个闪存阵列结构单元100的多条源线SL中每条源线SL上的源线电压VSL;具体地,在对应每条源线SL上预设定的运算阵列单元的对应存储单元中存储数值0或1,对应于存储单元所在的位线BL施加的位线电压为0或VBL,此时即可生成与该存储单元所在的源线SL相应的源线电压VSL。
步骤S200:多个灵敏放大器200将与每个灵敏放大器200对应的每条源线的源线电压转换为二进制形式的输出结果;在本发明的实施例中,灵敏放大器200可以将上述的源线电压VSL(或对应的源线电流ISL)作为电压信号进行转换,以输出二进制数值0或1。
步骤S300:多个加法器300中的每个加法器300将与每个闪存阵列结构单元对应的多个灵敏放大器200的多个输出结果进行加和运算,实现深度神经网络。加法器300为计算机技术领域的逻辑器件,用于执行数字的加和运算。该深度神经网络中包括多个卷积层数据或全连接层数据的处理。
基于本发明的编码型闪存装置的编码方法,能够在3D NAND FLASH 结构内实现并行存内计算的编码方法。具体地,本发明的编码型闪存装置通过加法器辅助的基于3D NANDFLASH的深度神经网络能够利用存算一体技术并行完成各计算层的功能并得到准确的运算结果。
因此,本发明的编码方法通过灵敏放大器200输出二进制形式的输出结果,不仅能够在不同器件之间的阈值电压涨落较高时,维持较高的计算准确率,而且还能够避免类似传统输出结果数值的复杂性,避免传统模拟运算所需要的复杂模数转换电路,提高了3DNAND FLASH结构存内运算所带来的能效比,最后借助于加法器300的辅助,实现了最大化整个计算架构的效率和并行度,可在一个时钟周期之内完成并行的编码运算。
以下对本发明具有多个闪存阵列结构单元的编码型闪存装置的编码方法作进一步的解释。
根据本发明的实施例,其中,本发明的编码运算为全连接运算或卷积层运算。
根据本发明的一实施例,如图1、图3、图4、图7、图8所示,其中,编码运算为全连接运算时,如图7和图8所示,在步骤S100之前,本发明的编码方法还包括:
步骤S410:将全连接层的权值矩阵向量中的多个非零位元素中的每个非零位元素预存入编码型闪存装置中多个运算阵列单元中的对应运算阵列单元中的多个晶体管中的每个晶体管中。在本发明的一实施例中,如图 1、图3、图7和图8所示,在进行全连接的编码运算之前,依据向量矩阵乘法运算时输入向量矩阵与权值向量矩阵的对应关系(如公式(1),结合图1)将多比特的权值向量矩阵的权值向量元素(Bit0~Bit-N)预先写入 3D NANDFLASH结构中M个串(string)的与字线WL0~WL-N分别对应的存储单元中,其中,该处的“串”为对应每条源线SL上设置的多个存储单元(晶体管)构成的存储单元阵列,并且写入存储单元的权值向量元素为非零位元素,如图3所示,对应于该步骤S410。
根据本发明的一实施例,其中,在步骤S410之后,本发明的编码方法还包括:
步骤S420:将对应的输入向量的输入元素对应输入多条位线中的每条位线中,以生成相应每条位线上的位线电压。在本发明的一实施例中,如图1、图3、图7和图8所示,在进行全连接的编码运算之前,依据向量矩阵乘法运算时输入向量矩阵与权值向量矩阵的对应关系(如公式(1),结合图1)将输入向量矩阵的输入向量元素X(X1~X-M)预先写入3D NANDFLASH结构中的M条位线BL中,在输入向量元素在写入位线BL 中后,相当于在对应的位线BL(BL1~BL-M)上施加对应的位线电压VBL,如图3所示,对应于该步骤S420。
根据本发明的一实施例,其中,在步骤S420之后,本发明的编码方法还包括:
步骤S430:以一运算周期为时间间隔分多个重复次数重复如下步骤:
对编码型闪存装置每个闪存阵列结构单元的串选择线和地选择线施加高电平;串选择线SSL和地选择线GSL上所加高电平作为控制信号,用于控制各个串的每个存储单元上的编码运算。
在对应运算阵列单元所在的字线上施加选择电压;
同时,对除运算阵列单元所在的字线之外的其它字线施加通过电压,以确保每条源线上的每个晶体管处于导通状态,从而生成其中每个闪存阵列结构单元的多条源线中每条源线上的源线电压;
其中,在第n重复次数的步骤中,对应在第n个运算阵列单元所在的字线上施加选择电压;运算周期的个数、重复次数与每个闪存阵列结构单元中的多条字线的数量相等。
具体地,以本发明的全连接编码运算为例,如图3和图4所示,可以分为N个运算周期,每个运算周期间隔时间为T,则该全连接编码运算如下:
(1)第一个运算周期0~T:
串选择线SSL和地选择线GSL上均加高电平作为控制信号,同时在字线WL0上施加选择信号生成选择电压Vsel,其中该字线WL0对应的存储阵列单元作为本次编码运算的运算阵列单元,该运算阵列单元的多个存储单元预先写入了权值向量元素。此外,3D NANDFLASH结构中,在同一源线SL上的串的不同存储单元必须导通才能构成完整源线电流的电流通路,使得源线端生成编码运算的源线电流(或源线电压),因此,此时需要在其余字线(WL1~WL-N)上施加通过信号生成通过电压Vpass。字线 WL0上的一存储单元种存储的权值向量元素Bit0与位线BL的输入向量元素进行向量矩阵乘法运算,源线SL的源线电流作为该向量矩阵乘法运算的计算结果。
需要进一步说明的是,如图3所示,在第一个运算周期0~T中的编码运算中,同一根源线SL只有一个存储单元(对应于字线WL0)中存储有权重向量元素,故该计算结果(0或1)可直接通过灵敏放大器200读出。
使用加法器300将同一个运算阵列单元上的不同源线SL的灵敏放大器200读出的运算结果相加,即可得到全连接层单个输出节点对应于权值矩阵Bit0的加和结果,即权值矩阵向量元素Bit0的全连接层的运算结果。
(2)第二个运算周期T~2T:
串选择线SSL和地选择线GSL上均加高电平作为控制信号,同时在字线WL1上施加选择信号生成选择电压Vsel,其中该字线WL1对应的存储阵列单元作为本次编码运算的运算阵列单元,该运算阵列单元的多个存储单元预先写入了权值向量元素。其余字线(WL0,WL2~WL-N)上施加通过信号生成通过电压Vpass。
同理,可得到对应于权值矩阵向量元素Bit1的全连接层的运算结果。
……
(N)第N个运算周期(N-1)T~N*T:
同样地,串选择线SSL和地选择线GSL上均加高电平作为控制信号,同时在字线WL-N上施加选择信号生成选择电压Vsel,其中该字线WL-N 对应的存储阵列单元作为本次编码运算的运算阵列单元,该运算阵列单元的多个存储单元预先写入了权值向量元素。其余字线(WL0,WL1,WL2~WL-N-1)上施加通过信号生成通过电压Vpass。
换言之,以一运算周期T为时间间隔分多个重复次数((1)次-(N) 次)重复上述可得到对应于权值矩阵向量元素Bit-N的全连接层的运算结果,对应于步骤S430。
根据本发明的一实施例,其中,编码运算为全连接运算时,输入向量为多比特数据,则步骤S100包括:
基于多个闪存阵列结构单元同时进行对应输入向量和权值矩阵向量的编码运算,由于多个闪存阵列结构单元在本发明的编码型闪存装置中为并联连接,因此,其可以同时实现对多比特输入和多比特权值矩阵的全连接运算,即多个闪存阵列结构单元的每个闪存阵列结构单元实现单比特数据的全连接运算。
或者基于一个闪存阵列结构单元采用分时复用的方式进行对应输入向量和权值矩阵向量的编码运算;对于闪存阵列结构单元的数量较为有限的情况,可以基于一个闪存阵列结构单元在不同的时间,分为多次进行多比特输入和多比特权值矩阵的全连接运算,即每次该闪存阵列结构单元均实现单比特数据的全连接运算。
根据本发明的一实施例,其中,编码方法还包括:
步骤S440:对每个闪存阵列结构单元对应每个加法器输出的加和结果进行移位求和。当权值矩阵向量元素(Bit0~Bit-N)均运算完毕后,将对应于多比特权值矩阵(Bit0~Bit-N)的加和运算结果进行移位相加得到的输出结果即为输入向量与多比特权值矩阵进行全连接运算后的结果 (Y1~Y-N),为一输出矩阵。
根据本发明的另一实施例,如图2、图5、图7、图9所示,其中,编码运算为卷积层运算时,如图7和图9所示,在步骤S100之前,本发明的编码方法还包括:
步骤S510:将卷积层的卷积核向量中的多个卷积核元素中的每个卷积核元素预存入编码型闪存装置中多个运算阵列单元中的对应运算阵列单元中的多个晶体管中的每个晶体管中。
在本发明的一实施例中,如图2、图5、图7、图9所示,在进行卷积层的编码运算之前,依据向量矩阵乘法运算时输入向量矩阵与卷积核向量矩阵的对应关系(如公式(2),结合图2)将多比特的卷积核向量元素(K0,0, K1,1,…KN,N)预先写入(即映射)3D NAND FLASH结构中字线WL0~WL-N 对应的各个串的存储单元中,该存储单元为其所在字线WL与所在源线SL交叉的位置。与上述全连接层的编码运算类似,此时的每个串负责完成一次卷积层编码运算。
如图5所示,以输入3*3图像矩阵与2*2卷积核向量矩阵的卷积核运算为例,依据公式(2)(参见图2),输入向量矩阵(X1,1,X1,2,X1,3,X2,1,X2,2, X2,3,X3,1,X3,2,X3,3)与卷积核向量矩阵(K1,1,K1,0,K0,1,K0,0)卷积后得到 2*2的输出图像矩阵(Y1,1,Y1,2,Y2,1,Y2,2)。为此,首先将输入图像矩阵沿行拆分成四个子矩阵(X1,1,X1,2,X2,1,X2,2),(X1,2,X1,3,X2,2,X2,3),(X2,1,X2,2,X3,1,X3,2),(X2,2,X2,3,X3,2,X3,3)分别与卷积核向量矩阵(K1,1,K1,0,K0,1, K0,0)进行向量矩阵乘法运算得到输出矩阵(Y1,1,Y1,2,Y2,1,Y2,2)。因此,如图5所示,具体可以输出矩阵向量元素Y1,1和Y2,2的卷积运算为例,其对应的卷积核映射规则(即写入规则)为:
对于输出矩阵向量元素Y1,1:卷积核向量元素被映射到输入向量元素 (X1,1,X1,2,X2,1,X2,2)所对应的位线BL1,BL2,BL4,BL5与运算阵列单元所在字线WL0所交叉的存储单元中;
对于输出矩阵向量元素Y2,2:卷积核向量元素被映射到输入向量元素 (X2,2,X2,3,X3,2,X3,3)所对应的位线BL5,BL6,BL8,BL9与运算阵列单元所在字线WL0所交叉的存储单元(即晶体管)中。
根据本发明的另一实施例,其中,在步骤S510之后,本发明的编码方法还包括:
步骤S520:将对应的输入向量的输入元素对应输入多条位线中的每条位线中,以生成相应每条位线上的位线电压。在本发明的一实施例中,如图2、图5、图7、图9所示,输入向量矩阵沿行的方向拆分成行向量(X1,1, X1,2,…,X1,N,…,XM,1,XM,2,…,XM,N)并分别施加到3D NAND FLASH结构的位线(BL-1,1~BL-M,N)上作为输入信号,生成相应位线BL上的位线电压VBL。考虑到深度神经网络中的每层均有多个卷积核对输入图像(输入向量矩阵)进行多维度特征提取,因此可以将其他卷积核按照相同的原理分别写在WL1~WL-N的对应存储单元中。
根据本发明的另一实施例,其中,在步骤S520之后,本发明的编码方法还包括:
步骤S530:以一运算周期为时间间隔分多个重复次数重复如下步骤:
对编码型闪存装置每个闪存阵列结构单元的串选择线和地选择线施加高电平;串选择线SSL和地选择线GSL上所加高电平作为控制信号,用于控制各个串的每个存储单元上的编码运算。
在对应运算阵列单元所在的字线上施加选择电压;
同时,对除运算阵列单元所在的字线之外的其它字线施加通过电压,以确保每条源线上的每个晶体管处于导通状态,从而生成其中每个闪存阵列结构单元的多条源线中每条源线上的源线电压;
其中,在第n重复次数的步骤中,对应在第n个运算阵列单元所在的字线上施加选择电压;运算周期的个数、重复次数与每个闪存阵列结构单元中的多条字线的数量相等。
具体地,以本发明的卷积核编码运算为例,如图5所示,可以分为N 个运算周期,每个运算周期间隔时间为T,则该卷积核编码运算如下:
(1)第一个运算周期0~T:
串选择线SSL和地选择线GSL上均加高电平作为控制信号,同时在字线WL0上施加选择信号生成选择电压Vsel,同理在其余字线 (WL1~WL-N)上施加通过信号生成通过电压Vpass。
其中该字线WL0对应的存储阵列单元作为本次编码运算的运算阵列单元,该运算阵列单元的多个存储单元预先写入了卷积核向量元素,其存储的卷积核向量元素与通过位线BL输入的输入向量元素进行卷积核运算,同时源线SL的源线电流作为编码运算结果可直接通过灵敏放大器200 转换读出。
最后,使用加法器300将同一个运算阵列单元上的不同源线SL的运算结果相加,即可得到卷积层单个输出节点对应于卷积核元素(K1,1)的加和结果。多个运算阵列单元的加和结果代表卷积层的整体编码运算结果。
(2)第二个运算周期T~2T:
串选择线SSL和地选择线GSL上均加高电平作为控制信号,同时在字线WL1上施加选择信号生成选择电压Vsel,同理在其余字线(WL0, WL2~WL-N)上施加通过信号生成通过电压Vpass。
字线WL1存储的卷积核向量元素与位线BL的输入向量元素进行卷积运算,多个串的加和结果进行输出即最终的编码运算结果。
……
(4)第4个运算周期3T~4T:
以此类推,可以完成第4个重复次数的卷积核编码运算。
换言之,以一运算周期T为时间间隔分多个重复次数((1)次-(4) 次)重复上述可得到对应于卷积核向量元素(K1,1,K1,0,K0,1,K0,0)的卷积层运算结果,对应于步骤S530。
综上,当输入向量矩阵与对应字线WL0~WL-N的存储阵列单元的存储单元中存储的卷积核元素分别进行计算后,即可得到该层的卷积层的全部输出矩阵,即输出图像。
根据本发明的另一实施例,其中,编码运算为卷积层运算时,卷积层的卷积核向量为多比特数据,编码方法还包括:
步骤S540:对多个加法器的加和运算输出的多个加和结果进行移位求和,实现深度神经网络。对于每个闪存阵列结构单元100而言,可分别写入多比特数据的卷积核向量元素,通过并行计算后,对多个加法器的加和结果进行移位求和,即可以得到上述的输出矩阵。
至此,已经结合附图对本公开实施例进行了详细描述。
需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换。
还需要说明的是,实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向,并非用来限制本公开的保护范围。贯穿附图,相同的元素由相同或相近的附图标记来表示。在可能导致对本公开的理解造成混淆时,将省略常规结构或构造。
并且图中各部件的形状和尺寸不反映真实大小和比例,而仅示意本公开实施例的内容。另外,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。
再者,单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。
说明书与权利要求中所使用的序数例如“第一”、“第二”、“第三”等的用词,以修饰相应的元件,其本身并不意味着该元件有任何的序数,也不代表某一元件与另一元件的顺序或是制造方法上的顺序,这些序数的使用仅用来使具有某命名的一元件得以和另一具有相同命名的元件能做出清楚区分。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把他们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把他们分成多个子模块或子单元或子组件。除了这样的特征和/ 或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的代替特征来代替。并且,在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。
类似地,应当理解,为了精简本公开并帮助理解各个公开方面的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,公开方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的单独实施例。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种编码型闪存装置,其特征在于,包括:
至少一个闪存阵列结构单元,其中每个所述闪存阵列结构单元为3D NAND FLASH阵列结构单元;
多个灵敏放大器,其中每个灵敏放大器与每个所述闪存阵列结构单元的每条源线对应相连;以及
多个加法器,其中每个加法器与每个所述闪存阵列结构单元的多个灵敏放大器通过对应的所述每条源线相连;
其中,所述编码型闪存装置用于实现如下的编码方法:
基于至少一个闪存阵列结构单元进行编码运算,生成其中每个闪存阵列结构单元的多条源线中每条源线上的源线电压,其中包括:在对应每条源线上预设定的运算阵列单元的对应存储单元中存储数值0或1,对应于存储单元所在的位线施加的位线电压为0或VBL,生成与该存储单元所在的源线相应的源线电压VSL;
多个灵敏放大器将与每个灵敏放大器对应的所述每条源线的源线电压转换为二进制形式的输出结果,其中包括:将上述的源线电压VSL或对应的源线电流ISL作为电压信号进行转换,输出二进制数值0或1;以及
多个加法器中的每个加法器将与每个所述闪存阵列结构单元对应的所述多个灵敏放大器的多个输出结果进行加和运算,实现深度神经网络,其中,该深度神经网络中包括多个卷积层数据或全连接层数据的处理。
2.根据权利要求1所述的编码型闪存装置,其特征在于,每个所述闪存阵列结构单元包括:
多个运算阵列单元,其中每个运算阵列单元包括相互串联的多个晶体管,其中,所述每个运算阵列单元的多条子线中的每条字线上对应设置一个所述运算阵列单元。
3.根据权利要求2所述的编码型闪存装置,其特征在于,每个所述闪存阵列结构单元还包括:
串选择线,与所述闪存阵列结构单元的位线端相连;
地选择线,与所述闪存阵列结构单元的源线端相连;
其中,所述串选择线与所述地选择线用于在实现所述编码运算时施加高电平。
4.根据权利要求1所述编码型闪存装置,其特征在于,所述多个加法器的数量与所述至少一个闪存阵列结构单元的数量一致。
5.一种编码型闪存系统,包括权利要求1-4中任一项所述的编码型闪存装置,用于实现深度神经网络。
6.一种编码方法,基于权利要求1-4中任一项所述的编码型闪存装置实现,其特征在于,所述编码方法包括:
基于至少一个闪存阵列结构单元进行编码运算,生成其中每个闪存阵列结构单元的多条源线中每条源线上的源线电压;
多个灵敏放大器将与每个灵敏放大器对应的所述每条源线的源线电压转换为二进制形式的输出结果;以及
多个加法器中的每个加法器将与每个所述闪存阵列结构单元对应的所述多个灵敏放大器的多个输出结果进行加和运算,实现深度神经网络。
7.根据权利要求6所述的编码方法,其特征在于,所述编码运算为全连接运算或卷积层运算。
8.根据权利要求7所述的编码方法,其特征在于,所述编码运算为全连接运算时,基于至少一个闪存阵列结构单元进行编码运算,生成其中每个闪存阵列结构单元的多条源线中每条源线上的源线电压之前,还包括:
将所述全连接层的权值矩阵向量中的多个非零位元素中的每个非零位元素预存入所述编码型闪存装置中多个运算阵列单元中的对应运算阵列单元中的多个晶体管中的每个晶体管中。
9.根据权利要求7所述的编码方法,其特征在于,所述编码运算为卷积层运算时,基于至少一个闪存阵列结构单元进行编码运算,生成其中每个闪存阵列结构单元的多条源线中每条源线上的源线电压之前,还包括:
将所述卷积层的卷积核向量中的多个卷积核元素中的每个卷积核元素预存入所述编码型闪存装置中多个运算阵列单元中的对应运算阵列单元中的多个晶体管中的每个晶体管中。
10.根据权利要求8或9所述的编码方法,其特征在于,
将所述全连接层的权值矩阵向量中的多个非零位元素中的每个非零位元素预存入所述编码型闪存装置中多个运算阵列单元中的对应运算阵列单元中的多个晶体管中的每个晶体管中之后,或将所述卷积层的卷积核向量中的多个卷积核元素中的每个卷积核元素预存入所述编码型闪存装置中多个运算阵列单元中的对应运算阵列单元中的多个晶体管中的每个晶体管中之后,还包括:
将对应的输入向量的输入元素对应输入多条位线中的每条位线中,以生成相应每条位线上的位线电压。
11.根据权利要求10所述的编码方法,其特征在于,在将对应的输入向量的输入元素对应输入多条位线中的每条位线中,以生成相应每条位线上的位线电压之后,还包括:
以一运算周期为时间间隔分多个重复次数重复如下步骤:
对所述编码型闪存装置每个闪存阵列结构单元的串选择线和地选择线施加高电平;在所述对应运算阵列单元所在的字线上施加选择电压;同时,对除所述运算阵列单元所在的字线之外的其它字线施加通过电压,以确保所述每条源线上的每个晶体管处于导通状态,从而生成其中每个闪存阵列结构单元的多条源线中每条源线上的源线电压;
其中,在第n重复次数的步骤中,对应在第n个运算阵列单元所在的字线上施加选择电压;
所述运算周期的个数、所述重复次数与所述每个闪存阵列结构单元中的多条字线的数量相等。
12.根据权利要求6所述的编码方法,其特征在于,所述编码运算为全连接运算时,所述基于至少一个闪存阵列结构单元进行编码运算,生成其中每个闪存阵列结构单元的多条源线中每条源线上的源线电压,包括:
基于多个闪存阵列结构单元同时进行对应输入向量和权值矩阵向量的编码运算,或者
基于一个闪存阵列结构单元采用分时复用的方式进行对应输入向量和权值矩阵向量的编码运算;
其中,所述输入向量为多比特数据。
13.根据权利要求12所述的编码方法,其特征在于,所述编码方法还包括:
对所述每个闪存阵列结构单元对应每个加法器输出的加和结果进行移位求和。
14.根据权利要求6所述的编码方法,其特征在于,所述编码运算为卷积层运算时,所述编码方法还包括:
对所述多个加法器的加和运算输出的多个加和结果进行移位求和,实现深度神经网络;
其中,所述卷积层的卷积核向量为多比特数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010471843.5A CN111627479B (zh) | 2020-05-29 | 2020-05-29 | 编码型闪存装置、系统和编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010471843.5A CN111627479B (zh) | 2020-05-29 | 2020-05-29 | 编码型闪存装置、系统和编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111627479A CN111627479A (zh) | 2020-09-04 |
CN111627479B true CN111627479B (zh) | 2022-05-27 |
Family
ID=72273190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010471843.5A Active CN111627479B (zh) | 2020-05-29 | 2020-05-29 | 编码型闪存装置、系统和编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111627479B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094531B (zh) * | 2021-03-22 | 2022-05-20 | 华中科技大学 | 一种存内图像检索方法及检索系统 |
CN113674785A (zh) * | 2021-08-20 | 2021-11-19 | 广东省大湾区集成电路与系统应用研究院 | 存内计算单元、模块和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284474A (zh) * | 2018-08-13 | 2019-01-29 | 北京大学 | 一种加法器辅助实现图像卷积运算的闪存系统及方法 |
CN110008440A (zh) * | 2019-04-15 | 2019-07-12 | 合肥恒烁半导体有限公司 | 一种基于模拟矩阵运算单元的卷积运算及其应用 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9589633B2 (en) * | 2011-05-25 | 2017-03-07 | Peter K. Nagey | Memory devices and related methods |
US11568223B2 (en) * | 2017-04-14 | 2023-01-31 | Semiconductor Energy Laboratory Co., Ltd. | Neural network circuit |
US10692570B2 (en) * | 2018-07-11 | 2020-06-23 | Sandisk Technologies Llc | Neural network matrix multiplication in memory cells |
US20200097807A1 (en) * | 2019-11-27 | 2020-03-26 | Intel Corporation | Energy efficient compute near memory binary neural network circuits |
-
2020
- 2020-05-29 CN CN202010471843.5A patent/CN111627479B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284474A (zh) * | 2018-08-13 | 2019-01-29 | 北京大学 | 一种加法器辅助实现图像卷积运算的闪存系统及方法 |
CN110008440A (zh) * | 2019-04-15 | 2019-07-12 | 合肥恒烁半导体有限公司 | 一种基于模拟矩阵运算单元的卷积运算及其应用 |
Also Published As
Publication number | Publication date |
---|---|
CN111627479A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sim et al. | Scalable stochastic-computing accelerator for convolutional neural networks | |
TW201816592A (zh) | 動態隨機存取記憶體處理單元架構 | |
US11568228B2 (en) | Recurrent neural network inference engine with gated recurrent unit cell and non-volatile memory arrays | |
CN111627479B (zh) | 编码型闪存装置、系统和编码方法 | |
CN111193511A (zh) | 一种应用于基于eFlash存算一体电路的数模混合读取电路的设计 | |
KR20240025523A (ko) | 깊이별 CNN(convolutional neural network)을 지원하는 CIM(computation in memory) 아키텍처 및 데이터 흐름 | |
CN110232441B (zh) | 一种基于单向脉动阵列的堆栈式自编码系统及方法 | |
CN114937470A (zh) | 基于多比特sram单元的定点全精度存内计算电路 | |
US11309026B2 (en) | Convolution operation method based on NOR flash array | |
CN111710356B (zh) | 编码型闪存装置和编码方法 | |
CN114514502A (zh) | 时空积和熔加以及相关系统、方法和装置 | |
KR102555621B1 (ko) | 메모리 내의 컴퓨팅 회로 및 방법 | |
CN115879530A (zh) | 一种面向rram存内计算系统阵列结构优化的方法 | |
CN117795473A (zh) | 用于存储器内计算的部分和管理和可重新配置的脉动流架构 | |
CN112951290B (zh) | 一种基于非易失性随机存储器的内存计算电路及装置 | |
CN113315506B (zh) | 一种相变存储器时序可重构布尔逻辑电路、方法及装置 | |
US11500629B2 (en) | Processing-in-memory (PIM) system including multiplying-and-accumulating (MAC) circuit | |
US20220108203A1 (en) | Machine learning hardware accelerator | |
CN113077042A (zh) | 卷积神经网络的数据重用与高效处理方法 | |
US20230418600A1 (en) | Non-volatile memory die with latch-based multiply-accumulate components | |
US20230033179A1 (en) | Accumulator and processing-in-memory (pim) device including the accumulator | |
US20210224039A1 (en) | Multiplication and accumulation (mac) operator and processing-in-memory (pim) device including the mac operator | |
US20220222044A1 (en) | Multiplication-and-accumulation circuits and processing-in-memory devices having the same | |
US11935586B2 (en) | Memory device and method for computing-in-memory (CIM) | |
Wang et al. | eF 2 lowSim: System-Level Simulator of eFlash-Based Compute-in-Memory Accelerators for Convolutional 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 |