CN119851703A - Nand存储器中的向量元素乘法 - Google Patents
Nand存储器中的向量元素乘法 Download PDFInfo
- Publication number
- CN119851703A CN119851703A CN202411026966.2A CN202411026966A CN119851703A CN 119851703 A CN119851703 A CN 119851703A CN 202411026966 A CN202411026966 A CN 202411026966A CN 119851703 A CN119851703 A CN 119851703A
- Authority
- CN
- China
- Prior art keywords
- memory
- vector
- memory cells
- multiplicand
- series
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1018—Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Memory System (AREA)
Abstract
本申请涉及NAND存储器中的向量元素乘法。存储器可包含多个串联连接的存储器单元串,其各自对应于被乘数的多个数字中的相应数字,且可进一步包含控制器,所述控制器经配置以使所述存储器针对乘数的多个数字中具有指示所述乘数的所述多个数字中的每一数字乘以被乘数的值的相应电流电平的每一数字产生流过所述多个串联连接的存储器单元串的相应电流,将所述相应电流电平转换为指示所述乘数的所述多个数字中的每一数字乘以所述被乘数的值及量值的相应数字值,以及对所述乘数的所述多个数字中的每一数字的所述相应数字值求和。
Description
相关申请
本申请要求2023年10月17日申请的第63/590,860号美国临时申请的权利,所述临时申请的全部内容特此以引用的方式并入本文中。
技术领域
本公开大体上涉及集成电路及其操作方法,且特定来说,在一或多个实施例中,本公开涉及经配置以执行人工智能(AI)计算模式(例如,包含涉及向量元素乘法的矩阵点积)的存储器。
背景技术
集成电路装置遍历广泛范围的电子装置。一种特定类型包含存储器装置,通常简称为存储器。存储器装置通常被提供作为计算机或其它电子装置中的内部半导体集成电路装置。存在许多不同类型的存储器,包含随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)及快闪存储器。
快闪存储器已发展成用于广泛电子应用的非易失性存储器的普遍来源。快闪存储器通常使用允许高存储密度、高可靠性及低功耗的单晶体管存储器单元。通过电荷存储节点(例如浮动栅极或电荷陷阱)的编程(其通常称为写入)或其它物理现象(例如相变或极化),存储器单元的阈值电压(Vt)的变化确定每一存储器单元的数据状态(例如数据值)。快闪存储器及其它非易失性存储器的常见用途包含个人计算机、个人数字助理(PDA)、数码相机、数字媒体播放器、数字记录器、游戏、家用电器、载具、无线装置、移动电话及可拆卸存储器模块,且非易失性存储器的用途继续扩展。
NAND快闪存储器是快闪存储器装置的常见类型,因此需要布置基本存储器单元配置的逻辑形式。通常,用于NAND快闪存储器的存储器单元阵列经布置使得阵列的一行的每一存储器单元的控制栅极可连接在一起以形成存取线(例如字线)。阵列的列包含一起串联连接于一对选择门(例如源极选择晶体管与漏极选择晶体管)之间的存储器单元串(通常称为NAND串)。每一源极选择晶体管可连接到源极,而每一漏极选择晶体管可连接到例如列位线的数据线。在存储器单元串与源极之间及/或在存储器单元串与数据线之间使用多于一个选择门的变化是已知的。
人工神经网络(ANN)可使用神经元网络处理到网络的输入且从网络产生输出。通常,可使用监督式及/或非监督式方法来训练ANN。
深度学习可使用多层机器学习来从输入数据逐步提取特征,且可经由ANN(例如深度神经网络、深度信念网络、递归神经网络及/或卷积神经网络)实施。深度学习已用于许多应用领域,例如计算机视觉、语音/音频辨识、自然语言处理、机器翻译、生物信息学、药物设计、医学图像处理、游戏等。
发明内容
根据本公开的一方面,提供一种存储器。所述存储器包括:多个数据线;共同源极;多个串联连接的存储器单元串,其中所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串选择性地连接到所述多个数据线中的相应数据线,且选择性地连接到所述共同源极,且其中所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串对应于被乘数的多个数字中的相应数字;多个存取线,其中所述多个存取线中的每一存取线连接到所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串的相应存储器单元的控制栅极;及控制器,其经配置以使所述存储器:对于乘数的多个数字中的每一数字:产生流过所述多个串联连接的存储器单元串的相应电流,所述相应电流具有指示所述乘数的所述多个数字中的所述数字的值乘以所述被乘数的相应电流电平;及将所述乘数的所述多个数字中的所述数字的所述相应电流电平转换为指示所述乘数的所述多个数字中的所述数字的所述值及量值乘以所述被乘数的相应数字值;及对所述乘数的所述多个数字中的每一数字的所述相应数字值求和。
根据本公开的另一方面,提供一种存储器。所述存储器包括:多个数据线;共同源极;乘法累加(MAC)寄存器,其包括多个部分乘积寄存器及累加寄存器;模数转换器(ADC),其具有连接到所述共同源极的输入,且具有连接到所述MAC寄存器的输出;多个串联连接的存储器单元串,其中所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串选择性地连接到所述多个数据线中的相应数据线,且选择性地连接到所述共同源极,且其中所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串对应于具有N个向量的被乘数矩阵的对应向量的对应元素的相应数字,其中N为大于或等于1的整数值;多个存取线,其中所述多个存取线中的每一存取线连接到所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串的相应存储器单元的控制栅极;及控制器,其经配置以使所述存储器:对于所述被乘数矩阵的第一向量的一或多个元素中的元素:产生流过所述多个串联连接的存储器单元串的电流,所述电流具有指示所述第一向量的所述元素的值乘以具有一或多个数字的乘数的数字的电流电平;及将所述第一向量的所述元素的所述电流电平转换为指示所述第一向量的所述元素的所述值及量值乘以所述乘数的所述数字的相应数字值。
根据本公开的又一方面,提供一种存储器。所述存储器包括:多个数据线;共同源极;乘法累加(MAC)寄存器,其包括多个部分乘积寄存器及累加寄存器;模数转换器(ADC),其具有连接到所述共同源极的输入,且具有连接到所述MAC寄存器的输出;多个串联连接的存储器单元串,其中所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串选择性地连接到所述多个数据线中的相应数据线,且选择性地连接到所述共同源极,且其中所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串对应于被乘数的多个数字中的相应数字;多个存取线,其中所述多个存取线中的每一存取线连接到所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串的相应存储器单元的控制栅极;及控制器,其经配置以使所述存储器:将一组控制信号施加到多个存取线,所述一组控制信号经配置以激活对应于所述被乘数的具有第一逻辑电平的相应数字的所述多个串联连接的存储器单元串的存储器单元,激活不对应于所述被乘数的任何数字的所述多个串联连接的存储器单元串的存储器单元,且取消激活对应于所述被乘数的具有不同于所述第一逻辑电平的第二逻辑电平的相应数字的所述多个串联连接的存储器单元串的存储器单元;当所述多个串联连接的存储器单元串连接到所述共同源极时,将控制信号施加到连接到具有指示乘数的数字的值的电压电平的所述多个串联连接的存储器单元串的所述多个数据线;及将在所述多个串联连接的存储器单元串连接到所述共同源极及所述ADC的所述输入时在所述ADC的所述输入处由施加所述一组控制信号到所述多个存取线以及施加所述控制信号到所述多个数据线产生的电流电平转换为对应于所述被乘数乘以所述乘数的所述数字的值的相应数字值。
附图说明
图1是根据实施例的与作为电子系统的部分的处理器通信的存储器的简化框图。
图2A到2B是根据实施例的存储器单元阵列的一部分的示意图。
图3A到3D描绘连接到主机的深度学习加速器,以及可在深度学习加速器中使用的各种处理单元。
图4描绘矩阵-矩阵单元。
图5详述矩阵-矩阵单元的计算。
图6A及6B描绘根据实施例的经配置以分别以模拟方式及二进制方式存储被乘数的数字的存储器单元阵列的部分。
图7描绘根据实施例的用于讨论算术运算的具有存储器单元块的存储器单元阵列的一部分。
图8A到8F描绘根据实施例的乘法累加运算期间的寄存器。
图9A到9F描绘根据另一实施例的乘法累加运算期间的寄存器。
图10到12可表示电流作为相关变量的函数的表征。
图13是根据实施例的操作存储器的方法的流程图。
图14是根据另一实施例的操作存储器的方法的流程图。
图15是根据另一实施例的操作存储器的方法的流程图。
图16A是根据又一实施例的操作存储器的方法的流程图。
图16B是根据替代实施例的操作存储器的方法的流程图。
图17描绘根据实施例的具有多于一个存储器单元块的存储器单元阵列的一部分。
具体实施方式
在以下详细描述中,参考形成其一部分的附图,且附图中通过说明展示特定实施例。在图中,相同参考数字描述贯穿若干视图的基本上类似组件。在不脱离本公开的范围的情况下,可利用其它实施例,且可进行结构、逻辑及电改变。因此,以下详细描述不应以限制性意义理解。
除非从上下文明显看出,否则本文中所使用的术语“导电的”以及其各种相关形式(例如传导的、导电地、传导、导电、导电性等)是指导电。类似地,除非从上下文明显看出,否则本文中所使用的术语“连接(connecting)”以及其各种相关形式(例如连接(connect)、经连接、连接(connection)等)是指通过导电路径电连接。
如本文所使用的,并发执行的多个动作意味着这些动作中的每一者执行相应的时间段,且这些相应的时间段中的每一者与剩余相应时间段中的每一者部分或全部重叠。换句话说,那些动作中的每一者的部分同时执行至少一些时间段。
除非另有定义,否则在附图的描述中使用的例如上、顶部、下、底部、侧、左、右、平行、正交等的方向参考是指相对于附图本身的定向的此类方向。
在本文中应认识到,即使在可能预期值是相等的情况下,工业处理及操作的可变性及准确性也可导致与其预期值不同。这些可变性及准确性通常将取决于集成电路装置的制造及操作中所利用的技术。因而,如果预期值是相等的,那么将那些值视为相等,而无论其所得值为何。
人工神经网络(ANN)可使用神经元网络处理到网络的输入且从网络产生输出。举例来说,网络中的每一神经元可接收一组输入。到神经元的一些输入可为网络中的特定神经元的输出;且到神经元的一些输入可为提供到神经网络的输入。网络中的神经元当中的输入/输出关系表示网络中的神经元连接性。
每一神经元对其输入可分别具有偏差、激活函数及一组突触权重。激活函数可呈阶梯函数、线性函数、对数S形(log-sigmoid)函数等形式。网络中的不同神经元可具有不同激活函数。
每一神经元可产生其输入及其偏差的加权和且接着产生输出,所述输出是使用神经元的激活函数计算的加权和的函数。
一般来说,ANN的输入与输出之间的关系可由ANN模型定义,所述ANN模型包含表示网络中的神经元的连接性的数据,以及每一神经元的偏差、激活函数及突触权重。基于给定ANN模型,计算装置可经配置以根据到网络的一组给定输入计算网络的输出。
举例来说,可基于相机输入产生到ANN的输入;且来自ANN的输出可为项目(例如事件或物体)的识别。
一般来说,ANN可使用监督式方法训练,其中ANN中的参数经调整以最小化或减少与相应输入相关联或由相应输入得到的已知输出与经由将输入应用到ANN产生的经计算输出之间的误差。监督式学习/训练方法的实例包含强化学习及具有错误校正的学习。
替代地,或组合地,可使用非监督式方法训练ANN,其中由一组给定输入得到的精确输出在训练完成之前是未知的。ANN可经训练以将项目分类到多个类别中,或将数据点分类到集群中。多种训练算法可用于复杂的机器学习/训练范式。
深度学习可使用多层机器学习,以从输入数据中逐渐提取特征。例如,较低层可经配置以识别图像中的边缘;且较高层可经配置为基于使用较低层检测到的边缘来识别图像中捕获的项目,例如面部、物体、事件等。深度学习可经由ANN实施,例如深度神经网络、深度信念网络、递归神经网络及/或卷积神经网络。
深度学习已用于许多应用领域,例如计算机视觉、语音/音频辨识、自然语言处理、机器翻译、生物信息学、药物设计、医学图像处理、游戏等。
对向量及矩阵进行运算的DLA的粒度对应于在DLA执行一条指令期间可对其进行运算的向量/矩阵的最大单位。在对向量/矩阵运算数的预定义运算的指令执行期间,可由DLA并行地对向量/矩阵运算数的元素进行运算,以减少与存储器/数据存取相关联的执行时间及/或能量消耗。对DLA粒度的向量/矩阵运算数的运算可用作构建块,以实施对较大尺寸的向量/矩阵的计算。
典型/实用ANN的实施涉及尺寸大于DLA的运算粒度的向量/矩阵运算数。为了使用DLA实施此ANN,涉及大尺寸的向量/矩阵运算数的计算可被分解为DLA粒度的向量/矩阵运算数的计算。DLA可经由指令进行编程,以执行涉及大型向量/矩阵运算数的计算。例如,DLA响应于指令操纵DLA粒度的向量及矩阵的原子计算能力可经编程为在ANN中实施计算。
在一些实施方案中,DLA缺乏典型中央处理单元(CPU)的一些逻辑操作能力。然而,DLA可配置有足够的逻辑单元来处理提供给ANN的输入数据,并根据为DLA产生的一组指令来产生ANN的输出。因此,DLA可在很少或没有来自CPU或另一处理器的帮助下执行ANN的计算。任选地,常规的通用处理器也可经配置为DLA的部分,以执行不能使用DLA的向量/矩阵处理单元有效实施及/或不能由DLA的向量/矩阵处理单元执行的操作。
典型ANN可以标准格式(例如,开放式神经网络交换(ONNX))描述/指定。编译器可用于将ANN的描述转换成使DLA执行ANN计算的一组指令。编译器可优化所述一组指令,以改进DLA在实施ANN时的性能。
DLA可具有本地存储装置,例如寄存器、缓冲器及/或高速缓存,其经配置以存储向量/矩阵运算数及向量/矩阵运算的结果。寄存器中的中间结果可在DLA中流水线化/移位,作为后续向量/矩阵运算的运算数,以减少存取存储器/数据的时间及能量消耗,且从而加速实施典型ANN中向量/矩阵运算的典型模式。DLA中的寄存器、缓冲器及/或高速缓存的容量通常不足以保持用于实施典型ANN的计算的整个数据集。因此,耦合到DLA的随机存取存储器可经配置以提供用于实施典型ANN的经改进数据存储能力。例如,DLA可从随机存取存储器加载数据及指令,并将结果存储回随机存取存储器中。
本文描述的各种实施例寻求促进NAND存储器阵列内的人工神经网络(ANN)的计算的性能。此类实施例可用作DLA的矩阵-矩阵单元、矩阵-向量单元及/或向量-向量单元。
图1是根据实施例的与作为第三设备(呈电子系统形式)的部分的第二设备(呈处理器130形式)通信的第一设备(呈存储器(例如存储器装置)100形式)的简化框图。电子系统的一些实例包含个人计算机、个人数字助理(PDA)、数码相机、数字媒体播放器、数字记录器、游戏、家用电器、载具、无线装置、移动电话及类似物。处理器130(例如存储器装置100外部的控制器)可为存储器控制器或其它外部主机装置。
存储器装置100包含可在逻辑上布置成行及列的存储器单元阵列104。根据一或多个实施例,存储器单元阵列104可含有存储器阵列结构。逻辑行的存储器单元通常连接到同一存取线(通常称为字线),而逻辑列的存储器单元通常被选择性地连接到同一数据线(通常称为位线)。单个存取线可与多于一个逻辑行的存储器单元相关联,且单个数据线可与多于一个逻辑列相关联。存储器单元阵列104的至少一部分的存储器单元(图1中未展示)能够被编程到至少两种目标数据状态中的一者。
行解码电路系统108及列解码电路系统110经提供以对地址信号进行解码。地址信号经接收及解码以存取存储器单元阵列104。存储器装置100还包含用于管理命令、地址及数据输入到存储器装置100以及数据及状态信息从存储器装置100输出的输入/输出(I/O)控制电路系统112。地址寄存器114与I/O控制电路系统112及行解码电路系统108及列解码电路系统110通信以在解码之前锁存地址信号。命令寄存器124与I/O控制电路系统112及控制逻辑116通信以锁存传入命令。
控制器(例如存储器装置100内部的控制逻辑116)响应于命令控制对存储器单元阵列104的存取且可产生用于外部处理器130的状态信息,即,控制逻辑116经配置以对存储器单元阵列104执行存取操作(例如感测操作[其可包含读取操作及验证操作]、编程操作及/或擦除操作)。控制逻辑116与行解码电路系统108及列解码电路系统110通信以响应于地址控制行解码电路系统108及列解码电路系统110。控制逻辑116可包含指令寄存器128,其可表示用于存储计算机可读指令的计算机可用存储器。对于一些实施例,指令寄存器128可表示固件。替代地,指令寄存器128可表示存储器单元阵列104的存储器单元的分组,例如存储器单元的保留块。控制逻辑116可经配置以例如响应于此类计算机可读指令,使存储器100执行一或多个实施例的方法。
控制逻辑116可进一步与高速缓存寄存器118通信。高速缓存寄存器118在存储器单元阵列104忙于(分别地)写入或读取其它数据时根据控制逻辑116的引导锁存传入或传出的数据以暂时存储数据。在编程操作(例如写入操作)期间,数据可从高速缓存寄存器118传递到数据寄存器120以传送到存储器单元阵列104;接着,新数据可从I/O控制电路系统112锁存于高速缓存寄存器118中。在读取操作期间,数据可从高速缓存寄存器118传递到I/O控制电路系统112以输出到外部处理器130;接着,新数据可从数据寄存器120传递到高速缓存寄存器118。高速缓存寄存器118及/或数据寄存器120可形成存储器装置100的页面缓冲器(例如,可形成页面缓冲器的一部分)。页面缓冲器可进一步包含用于例如通过感测连接到存储器单元阵列104中的存储器单元的数据线的状态来感测所述存储器单元的数据状态的感测装置(图1中未展示)。状态寄存器122可与I/O控制电路系统112及控制逻辑116通信以锁存状态信息以输出到处理器130。
控制逻辑116可进一步与乘法累加(MAC)寄存器136通信。MAC寄存器136可表示易失性存储器、锁存器或其它存储位置,例如,易失性或非易失性。对于一些实施例,MAC寄存器136可表示数据寄存器120及/或高速缓存寄存器118的一部分。MAC寄存器136可进一步与一或多个模数转换器通信,如将在后续附图中描绘。MAC寄存器136可经配置以存储向量-向量运算的向量的元素的一或多个乘法运算的部分乘积,以及乘法运算的相应和。MAC寄存器136可进一步经配置以存储向量-向量运算的点积。
存储器装置100在控制逻辑116处经由控制链路132从处理器130接收控制信号。所述控制信号可包含芯片启用CE#、命令锁存启用CLE、地址锁存启用ALE、写入启用WE#、读取启用RE#及写入保护WP#。取决于存储器装置100的性质,可通过控制链路132进一步接收额外或替代控制信号(未展示)。存储器装置100经由多路复用输入/输出(I/O)总线134从处理器130接收命令信号(其表示命令)、地址信号(其表示地址)及数据信号(其表示数据)及经由I/O总线134将数据输出到处理器130。
举例来说,命令可经由I/O总线134的输入/输出(I/O)引脚[7:0]在I/O控制电路系统112处接收,且接着,可被写入到命令寄存器124中。地址可通过I/O总线134的输入/输出(I/O)引脚[7:0]在I/O控制电路系统112处接收,且接着,可被写入到地址寄存器114中。数据可经由8位装置的输入/输出(I/O)引脚[7:0]或16位装置的输入/输出(I/O)引脚[15:0]在I/O控制电路系统112处接收,且接着,可被写入到高速缓存寄存器118中。数据随后可写入到数据寄存器120中以对存储器单元阵列104进行编程。对于另一实施例,可省略高速缓存寄存器118,且数据可被直接写入到数据寄存器120中。数据还可通过8位装置的输入/输出(I/O)引脚[7:0]或16位装置的输入/输出(I/O)引脚[15:0]输出。尽管可参考I/O引脚,但其可包含由外部装置(例如处理器130)提供到存储器装置100的电连接的任何导电节点,例如通常所使用的导电垫或导电凸块。
所属领域的技术人员应了解,可提供额外电路系统及信号,且已简化图1的存储器装置100。应认识到,参考图1描述的各种块组件的功能性可不必被分隔到集成电路装置的相异组件或组件部分。举例来说,集成电路装置的单个组件或组件部分可经调适以执行图1的多于一个块组件的功能性。替代地,集成电路装置的一或多个组件或组件部分可经组合以执行图1的单个块组件的功能性。
另外,虽然根据用于接收及输出各种信号的流行惯例描述特定I/O引脚,但应注意,在各种实施例中可使用I/O引脚(或其它I/O节点结构)的其它组合或数量。
图2A是根据实施例的如可用于参考图1描述的类型的存储器中的存储器单元阵列200A(例如NAND存储器阵列)的一部分的示意图。存储器单元阵列200A包含存取线(例如,字线)2020到202N以及数据线(例如,位线)204。存储器单元阵列200A可经布置成行(每一者对应于存取线202)及列(每一者对应于数据线204)。每一列可包含串联连接的存储器单元(例如非易失性存储器单元)串,例如NAND串2060到206M中的一者。每一NAND串206可经连接(例如选择性地连接)到共同源极(SRC)216且可包含存储器单元2080到208N。存储器单元208可表示用于数据存储的非易失性存储器单元。
每一NAND串206的存储器单元208可串联连接于选择门210(例如场效应晶体管)(例如选择门2100到210M中的一者)与选择门212(例如场效应晶体管)(例如选择门2120到212M中的一者)之间。选择门2100到210M可共同连接到选择线214(例如源极选择线(SGS)),且选择门2120到212M可连接到不同选择线215(例如选择线2150到215M)。每一选择门210的控制栅极可连接到选择线214。每一选择门212的控制栅极可连接到选择线215。如本文所使用,场效应晶体管(例如,使用电场来控制电流流动的集成电路装置)可替代地被简称为晶体管。
每一选择门210的源极可连接到共同源极(SRC)216。每一选择门210的漏极可经连接到对应NAND串206的存储器单元208。举例来说,选择门2100的漏极可连接到对应NAND串2060的存储器单元2080的源极。因此,对应NAND串206的每一选择门210可经配置以选择性地将所述NAND串206连接到共同源极216。
每一选择门212的漏极可连接到数据线204。每一选择门212的源极可连接到对应NAND串206的存储器单元208。举例来说,选择门2120的源极可连接到对应NAND串2060的存储器单元208N。因此,对应NAND串206的每一选择门212可经配置以选择性地将所述NAND串206连接到数据线204。
存取线202及选择线214及215可围绕通道材料结构244形成。每一通道材料结构244可含有形成选择门210、选择门212以及其相应NAND串206的每一存储器单元208的通道的通道材料。例如,通道材料结构2440可形成用于选择门2100、选择门2120以及NAND串2060的每一存储器单元2080到208N的通道。
存储器单元208的典型构造包含可确定存储器单元的数据状态(例如,通过阈值电压的变化)的数据存储结构234(例如包含浮动栅极、电荷陷阱,或经配置以存储电荷的其它结构),及控制栅极236,如图2A中展示。数据存储结构234可包含导电结构及/或电介质结构,而控制栅极236通常由一或多种导电材料形成。在一些情况中,存储器单元208可进一步具有经定义源极/漏极(例如源极)230及经定义源极/漏极(例如漏极)232。存储器单元208使其控制栅极236连接到(且在一些情况中形成)存取线202。
存储器单元208的列可为NAND串206或选择性地连接到给定数据线204的多个NAND串206。存储器单元208的行可为共同连接到给定存取线202的存储器单元208。存储器单元208的行可(但不是必须的)包含共同连接到给定存取线202的所有存储器单元208。存储器单元208的行通常可被划分到存储器单元208的一或多个物理页面群组中,且存储器单元208的物理页面通常包含共同连接到给定存取线202的每隔一个存储器单元208。共同连接到给定存取线202的其它分组的存储器单元208还可定义存储器单元208的物理页面。针对特定存储器装置,共同连接到给定存取线202的所有存储器单元可被视为存储器单元的物理页面。在单个读取操作期间读取或在单个编程操作期间编程的存储器单元的物理页面的部分(在一些实施例中,其可仍为整行)(例如,存储器单元的上页面或下页面)可被视为存储器单元的逻辑页面。存储器单元块可包含经配置以一起擦除且可共享共同源极216的存储器单元。除非明确区分,否则在本文中对存储器单元页面的任何引用是指存储器单元的逻辑页面的存储器单元。
图2B是如可用于参考图1描述的类型的存储器中的存储器单元阵列200B的一部分(例如,作为存储器单元阵列104的一部分)的另一示意图。图2B中相同编号的元件对应于关于图2A所提供的描述。图2B提供三维NAND存储器阵列结构的一个实例的额外细节。三维NAND存储器阵列200B可并入竖直结构,所述竖直结构可包含半导体柱,所述半导体柱可为实心的或中空的,其中柱的一部分可充当NAND串206的存储器单元的通道区,例如,当存储器单元(例如,场效应晶体管)被激活时电流可从中流过的区。NAND串206可各自通过选择晶体管212(例如,其可为漏极选择晶体管,通常称为选择门漏极)而选择性地连接到数据线2040到204M且通过选择晶体管210(例如,其可为源极选择晶体管,通常称为选择门源极)而选择性地连接到共同源极216。多个NAND串206可被选择性地连接到同一数据线204。NAND串206的子组可通过加偏压于选择线2150到215K以选择性地激活处于NAND串206与数据线204之间的每一特定选择晶体管212来连接到其相应数据线204。选择晶体管210可通过加偏压于选择线214来激活。每一存取线202可连接到存储器阵列200B的多行存储器单元。通过特定存取线202共同连接到彼此的存储器单元的行可统称为层级。
三维NAND存储器阵列200B可形成在外围电路系统226上。外围电路系统226可表示用于存取存储器阵列200B的各种电路系统。外围电路系统226可包含互补电路元件。例如,外围电路系统226可包含覆盖在同一半导体衬底上形成的n通道区及p通道区晶体管两者,工艺通常称为CMOS或互补金属氧化物半导体。尽管归因于集成电路制造及设计的进步,CMOS通常不再利用严格的金属氧化物半导体构造,但为了方便仍保留CMOS名称。
图3A展示连接到主机313的深度学习加速器301。深度学习加速器301可包含处理单元303、控制单元305、本地存储装置307及通信接口309。
当向量及矩阵运算数(例如被乘数及乘数)在本地存储装置307中时,控制单元305可使用处理单元303根据指令执行向量及矩阵运算。此外,控制单元305可通过通信接口309及连接(例如高速/带宽连接)311从主机313加载指令及/或运算数。主机313可为能够向DLA301提供模型数据、指令及运算数作为输入且能够从DLA 301接收输出(例如,结果数据)的任何装置(例如,控制器、存储器、专用集成电路(ASIC)或其它集成电路装置)。
可基于DLA 301的处理速度来配置连接311的数据存取速度。例如,在一定量的数据及指令已经被加载到本地存储装置307之后,控制单元305可使用处理单元303来执行对数据进行运算的指令以产生输出。在进行处理以产生输出的时间段内,连接311的存取带宽可允许相同量的数据及指令被加载到本地存储装置307中用于下一运算,且允许相同量的输出被存储回主机313。例如,当控制单元305使用本地存储装置307的一部分来处理数据并产生输出时,通信接口309可从本地存储装置307的另一部分将先前运算的输出卸载到主机313中,并将运算数数据及指令加载到所述另一部分中。因此,DLA 301的利用及性能不因连接311的带宽受限或降低。
主机313可用于存储ANN的模型数据及缓冲ANN的输入数据。模型数据通常不会频繁变化。模型数据可包含由编译器为DLA产生以实施ANN的输出。模型数据通常包含在ANN的描述中使用的矩阵及为DLA 301产生的指令,以基于DLA 301的粒度的向量/矩阵运算来执行ANN的向量/矩阵运算。所述指令不仅对ANN的向量/矩阵运算进行操作,而且对ANN的输入数据进行操作。
DLA301的处理单元303可包含向量-向量单元、矩阵-向量单元及/或矩阵-矩阵单元。下面结合图3B到3D讨论经配置以执行向量-向量运算、矩阵-向量运算及矩阵-矩阵运算的单元的实例。
图3B展示经配置以执行矩阵-矩阵运算的矩阵-矩阵单元321的处理单元。例如,图3B的矩阵-矩阵单元321可用作图3A的DLA 301的处理单元303的一者。
在图3B中,矩阵-矩阵单元321包含多个内核缓冲器3311到331V及多个映射存储体3511到351V。整数值V可等于要由DLA 301对其进行操作的矩阵的尺寸(例如,最大尺寸)。例如,V可表示矩阵的行数量及列数量。
每一映射存储体3511到351V可存储矩阵运算数的一个向量(例如,矩阵被乘数的行),所述矩阵运算数具有分别存储在映射存储体3511到351V中的多个向量;且每一内核缓冲器3311到331V可存储另一矩阵运算数的一个向量(例如,矩阵乘数的列),所述另一矩阵运算数具有分别存储在内核缓冲器3311到331V中的多个向量。矩阵-矩阵单元321可经配置以使用可并行运算的多个矩阵-向量单元3411到341V对两个矩阵运算数的元素执行乘法及累加运算。
交叉开关323可通过多路复用器(MUX)325将映射存储体3511到351V连接到矩阵-向量单元3411到341V。存储在映射存储体3511到351V中的相同矩阵运算数可经由交叉开关323提供给每一矩阵-向量单元3411到341V,且矩阵-向量单元3411到341V可并行地从映射存储体3511到351V接收数据元素。每一内核缓冲器3311到331V可连接到矩阵-向量单元3411到341V中的相应者,并可向其相应的矩阵-向量单元341提供向量运算数。矩阵-向量单元3411到341V可并发操作以计算存储在映射存储体3511到351V中的相同矩阵运算数乘以存储在内核缓冲器3311到331V中的对应向量的运算。
图3B中的矩阵-向量单元3411到341V中的每一者可以图3C所说明的方式实施。图3C展示经配置以执行矩阵-向量运算的作为矩阵-向量单元341X的处理单元,其中X是从1到V的任何整数值。例如,图3C的矩阵-向量单元341X可表示图3B的矩阵-矩阵单元321中的任何矩阵-向量单元341。
在图3C中,每一映射存储体3511到351V以类似于图3B的映射存储体3511到351V的方式存储矩阵运算数的一个向量,所述矩阵运算数具有分别存储在映射存储体3511到351V中的多个向量。图3C中的交叉开关323分别将来自映射存储体3511到351V的向量提供给向量-向量单元361X1到361XV。存储在内核缓冲器331X中的同一向量经提供给向量-向量单元3611到361V。
向量-向量单元3611到361V可并发操作以计算分别存储在映射存储体3511到351V中的对应向量运算数乘以存储在内核缓冲器331X中的同一向量运算数的运算。
图3C中的向量-向量单元3611到361V中的每一者可以图3D所说明的方式实施。图3D展示经配置以执行向量-向量运算的作为向量-向量单元361YZ的处理单元,其中Y及Z独立地是从1到V的任何整数值。例如,图3D的向量-向量单元361YZ可用作图3C的矩阵-向量单元341X中的向量-向量单元361X1到361XV中的任一者。
在图3D中,向量-向量单元361YZ具有多个乘法-累加(MAC)单元3711到371Q,其中Q可为小于或等于将对其进行运算的向量的元素的数字的数量(例如,数字的最大数量)的整数值。每一MAC单元3711到371Q可接收两个数(例如向量元素)作为运算数,执行所述两个数的乘法,并将乘法的结果与维持在MAC单元中的和相加。
每一向量缓冲器381及383可存储相应向量作为数的列表。一对数(每一者来自向量缓冲器381及383的一者)可被提供给每一MAC单元3711到371Q作为输入。MAC单元3711到371Q可并行地从向量缓冲器381及383接收多对数,且并行地执行乘法-累加(MAC)运算。来自MAC单元3711到371Q的输出可存储到移位寄存器375中,且累加器377可计算移位寄存器375中的结果的和。
当图3D的向量-向量单元361YZ在图3C的矩阵-向量单元341X中实施时,向量-向量单元361YZ可使用相应映射存储体351(例如,映射存储体351Z)作为向量缓冲器381,且使用矩阵-向量单元341X的相应内核缓冲器331(例如,内核缓冲器331Y)作为向量缓冲器383。
向量缓冲器381及383可具有相同的长度以存储相同数量/计数的数据元素。长度可等于向量-向量单元361YZ中的MAC单元3711到371Q的计数或其倍数。当向量缓冲器381及383的长度是MAC单元3711到371Q的计数的倍数时,多对输入(等于MAC单元3711到371Q的计数)可在每一迭代中从向量缓冲器381及383提供作为到MAC单元3711到371Q的输入;且向量缓冲器381及383可通过多次迭代将其元素馈送到MAC单元3711到371Q中。
图4描绘具有四个矩阵-向量单元341(例如,3411到3414)的矩阵-矩阵单元321,所述矩阵-向量单元341各自含有对应的四个向量-向量单元361(例如,分别为36111到36114、36121到36124、36131到36134或36141到36144)。可通过用于每一矩阵-向量单元341的交叉开关323及多路复用器325将被乘数矩阵的行(例如,向量)从映射存储体351(例如,3511到3514)提供给相应的向量-向量单元361。可将乘数矩阵的列(例如,向量)从内核缓冲器331(例如,3311到3314)提供给相应的向量-向量单元361。乘数矩阵的列(例如,向量)可表示图像的像素数据,而被乘数矩阵的行(例如,向量)可表示用于图像辨识(例如,用于辨识直线或水平线)的滤波器。
矩阵-矩阵单元321可经配置以计算被乘数矩阵及乘数矩阵的点积,所述被乘数矩阵及所述乘数矩阵可具有相等的维数。矩阵-矩阵单元321的向量-向量单元361可经配置以计算两个矩阵的两个向量(例如,被乘数矩阵的行及乘数矩阵的列)的点积,且因此表示结果矩阵的相应元素。每一矩阵-向量单元341的向量-向量单元361的集合结果可表示结果矩阵的相应行,而矩阵-矩阵单元321的所有矩阵-向量单元341的向量-向量单元361的集合结果可表示结果矩阵。
图5详述图4的矩阵-矩阵单元321的计算。考虑矩阵A作为被乘数及矩阵B作为乘数的实例。根据方程1,这两个矩阵A及B产生结果矩阵C的点积将包含矩阵A的第一行(例如,a11、a12、a13及a14)及矩阵B的第一列(例如,b11、b21、b31及b41)的点积以产生矩阵C的其第一行及第一列的元素(例如,c11):
c11=a11b11+a12b21+a13b31+a14b41 方程1
对于矩阵A的各种行及矩阵B的各种列,可类似地以类似的方式确定矩阵C的剩余元素。例如,对于图5中描绘的矩阵,首先每一值i从1到4,且每一值j从1到4,矩阵C的元素cij可由一般方程2确定:
被乘数矩阵A、乘数矩阵B及结果矩阵C的每一元素可表示一个数,所述数可为二进制的或其它的。因此,结果矩阵C的每一元素可表示来自被乘数矩阵A的行及乘数矩阵B的列的对应元素的乘积的总和或累加。每一矩阵-向量单元341通过其对应的向量-向量单元361可计算结果矩阵C的向量(例如,行),而矩阵-矩阵单元321通过其对应的矩阵-向量单元341可计算整个结果矩阵C。
由向量-向量单元361、矩阵-向量单元341及矩阵-矩阵单元321执行的这些计算可在NAND存储器内复制。具体来说,串联连接(例如,NAND)存储器单元的阵列可经配置以从两个矩阵(例如,被乘数矩阵及乘数矩阵)产生代表相应向量的点积的值。
举例来说,为了使NAND存储器内的两个数相乘,可将共同连接至同一存取线或集体连接至一组存取线的一组存储器单元编程为具有指示一个数(例如,被乘数)的阈值电压,而可将电压施加至选择性地连接至所述一组存储器单元的数据线,其指示另一个数(例如,乘数)的个别数字(例如,位)。注意,被乘数可利用二进制编码或测温编码来存储其数据,例如,10进制的值12可经二进制编码为1100,或者测温编码为111111111111。虽然测温编码可利用更多存储器单元用于存储,但其也可提供比二进制编码更高的精度。
存储器单元组的子组可经编程以表示被乘数的相应数字(二进制或测温),例如,通过响应于施加到其控制栅极的相同控制信号或控制信号组而在其相应数据线与共同源极之间集体呈现相应电阻值。存储器单元的每一子组可含有单串串联连接的存储器单元或多串串联连接的存储器单元中的一或多个存储器单元(其可包含所有存储器单元)。如将更详细描述,对应于被乘数的一个数字的存储器单元子组可含有与用于被乘数的每一剩余数字的存储器单元子组相同数量的存储器单元及/或相同布置的存储器单元。替代地,对应于被乘数的一个数字的存储器单元子组可含有与被乘数的一或多个剩余数字的相应存储器单元子组不同数量的存储器单元及/或不同布置的存储器单元。存储器单元组可以二进制方式编程,例如,每一存储器单元响应于其相应的控制信号被激活(例如,以表示第一逻辑电平)或取消激活(例如,以表示不同于第一逻辑电平的第二逻辑电平),或者以模拟方式编程,例如,不同的存储器单元响应于相同的控制信号展现不同电阻电平(例如,R、R/2、R/4、R/8等)。
当存储器单元组接收其控制信号或控制信号组时,乘数的相应数字可循序地施加到存储器单元组的相应数据线。这样,从存储器单元组的相应数据线流过存储器单元组到共同源极的集体电流可指示被乘数乘以乘数的一个数字的值。可使用模数转换器(ADC)以集成电路设计领域中公知的方式将此电流转换为数字(例如,二进制)值。对应于乘数的数字的电压电平可以二进制方式施加,例如,施加第一电压电平以在每一数据线与共同源极之间产生第一电压差(例如,以表示第一逻辑电平),且施加第二电压电平以在每一数据线与共同源极之间产生低于第一电压差的第二电压差(例如,微量的电压差)(例如,以表示不同于第一逻辑电平的第二逻辑电平)。
替代地,可以模拟方式施加对应于乘数的数字的电压电平。例如,为了表示最低有效数字(例如,最低有效位或LSB)的第一逻辑电平(例如,“1”),可将第一电压电平施加到其相应数据线以在相应数据线与共同源极之间产生第一电压差,为了表示下一个有效数字(例如,第二数字)的第一逻辑电平,可将比第一电压电平更高(例如,第一电压电平的两倍)的第二电压电平施加到其相应数据线以在相应数据线与共同源极之间产生第二电压差(例如,第一电压差的两倍),为了表示下一个有效数字(例如,第三数字)的第一逻辑电平,可将比第二电压电平更高(例如,第二电压电平的两倍)的第三电压电平施加到其相应数据线以在相应数据线与共同源极之间产生第三电压差(例如,第二电压差的两倍),依此类推。类似地,为了表示任何数字的第二逻辑电平(例如,“0”),可将电压电平施加到数据线以在每一数据线与共同源极之间产生比针对第一逻辑电平产生的任何电压差更低的电压差(例如微量电压差及/或具有相反极性的电压差)。
图6A及6B描绘经配置以分别以模拟方式及二进制方式存储被乘数的数字的存储器单元阵列的部分。图6A到6B中相同编号的元件对应于关于图2A所提供的描述。注意,为了清楚起见,图6A到6B中未描绘存取线202。
在图6A中,对应于被乘数的第一数字6200(例如,最低有效数字)的存储器单元子组可包含串联连接的存储器单元串2060的一或多个(例如,其可包含所有存储器单元)存储器单元,所述一或多个存储器单元经配置以响应于施加到串联连接的存储器单元串206的存取线202(图6A中未描绘)的一组控制信号而展现电阻值R/20或R以表示数字6200的第一逻辑电平(例如,“1”),或者展现高阻抗(High-Z)以表示数字6200的与第一逻辑电平不同的第二逻辑电平(例如,“0”)。对应于被乘数的下一数字6201的存储器单元子组可包含串联连接的存储器单元串2061的一或多个存储器单元(例如,其可包含所有存储器单元),所述一或多个存储器单元经配置以响应于施加到串联连接的存储器单元串206的存取线202(图6A中未描绘)的所述一组控制信号而展现电阻值R/21或R/2以表示数字6201的第一逻辑电平,或者展现高阻抗以表示数字6201的第二逻辑电平。对应于被乘数的下一数字6202的存储器单元子组可包含串联连接的存储器单元串2062的一或多个存储器单元(例如,其可包含所有存储器单元),所述一或多个存储器单元经配置以响应于施加到串联连接的存储器单元串206的存取线202(图6A中未描绘)的所述一组控制信号而展现电阻值R/22或R/4以表示数字6202的第一逻辑电平,或者展现高阻抗以表示数字6202的第二逻辑电平。对于被乘数的每一额外数字620,这可以类似的方式继续,直到被乘数的最后一个数字620M(例如最高有效数字),使得对应于被乘数的最后一个数字620M的存储器单元子组可包含串联连接的存储器单元串206M的一或多个存储器单元(例如,其可包含所有存储器单元),所述一或多个存储器单元经配置以响应于施加到串联连接的存储器单元串206的存取线202(图6A中未描绘)的所述一组控制信号而展现电阻值R/2M以表示数字620M的第一逻辑电平,或者展现高阻抗以表示数字620M的第二逻辑电平。这样,每一串联连接的存储器单元串206可对应于被乘数的相应数字(例如,单个相应数字),且被乘数的每一数字可对应于一或多个串联连接的存储器单元串206。
注意,尽管图6A将单个串联连接的存储器单元串206描绘为对应于被乘数的每一数字620,但是被乘数的每一数字620可对应于一或多个串联连接的存储器单元串206。例如,对应于被乘数的第一数字6200的存储器单元子组可包含两个串联连接的存储器单元串206的一或多个存储器单元,其各自经配置以展现电阻值R以表示数字6200的第一逻辑电平,或者展现高阻抗以表示数字6200的第二逻辑电平,对应于被乘数的第二数字6201的存储器单元子组可包含两个串联连接的存储器单元串206的一或多个存储器单元,其各自经配置以展现电阻值R/2以表示数字6201的第一逻辑电平,或者展现高阻抗以表示数字6201的第二逻辑电平,对应于被乘数的第三数字6202的存储器单元子组可包含两个串联连接的存储器单元串206的一或多个存储器单元,其各自经配置以展现电阻值R/4以表示数字6202的第一逻辑电平,或者展现高阻抗以表示数字6202的第二逻辑电平,依此类推。另外,虽然对应于被乘数的每一数字620的串联连接的存储器单元串206被描绘为彼此紧邻,但是对应于被乘数的数字620的串联连接的存储器单元串206可与不对应于被乘数的数字620的串联连接的存储器单元串206交错,例如,每隔一个串联连接的存储器单元串206或对应于被乘数的数字620的串联连接的存储器单元串206及不对应于被乘数的数字620的串联连接的存储器单元串206的某种其它混合。此外,虽然被描绘为以从最低有效数字6200到最高有效数字620M的顺序布置,但其顺序可更改甚至随机化,因为预期这不会以任何显著的方式更改其集体电导。
在图6B中,对应于被乘数的第一数字6200(例如,最低有效数字)的存储器单元子组可包含串联连接的存储器单元串2060的一或多个存储器单元(例如,其可包含所有存储器单元),所述一或多个存储器单元经配置以响应于施加到串联连接的存储器单元串206的存取线202(图6B中未描绘)的一组控制信号而展现电阻值R以表示数字6200的第一逻辑电平(例如,“1”)或者展现高阻抗以表示数字6200的与第一逻辑电平不同的第二逻辑电平(例如,“0”)。对应于被乘数的下一数字6201的存储器单元子组可包含串联连接的存储器单元串2061及2062的一或多个存储器单元(例如,其可包含所有存储器单元),所述一或多个存储器单元经配置以响应于施加到串联连接的存储器单元串206的存取线202(图6B中未描绘)的所述一组控制信号而展现每一串联连接的存储器单元串206的电阻值R以表示数字6201的第一逻辑电平,或者展现每一串联连接的存储器单元串206的高阻抗以表示数字6201的第二逻辑电平。对应于被乘数的下一数字6202的存储器单元子组可包含串联连接的存储器单元串2063到2066的一或多个存储器单元(例如,其可包含所有存储器单元),所述一或多个存储器单元经配置以响应于施加到串联连接的存储器单元串206的存取线202(图6B中未描绘)的所述一组控制信号而展现每一串联连接的存储器单元串206的电阻值R以表示数字6202的第一逻辑电平,或者展现每一串联连接的存储器单元串206的高阻抗以表示数字6202的第二逻辑电平。对于被乘数的每一额外数字620,这可以类似的方式继续,直到被乘数的最后一个数字(例如最高有效数字),使得对应于被乘数的每一数字的存储器单元子组可包含某一数量的串联连接的存储器单元串206的一或多个存储器单元(例如,其可包含所有存储器单元),所述数量可为对应于被乘数的前一数字的串联连接的存储器单元串206的数量的两倍,其中对应于被乘数的所述数字的每一串联连接的存储器单元串206经配置以响应于施加到串联连接的存储器单元串206的存取线202(图6B中未描绘)的所述一组控制信号而展现电阻值R以表示所述数字620的第一逻辑电平,或者展现高阻抗以表示所述数字620的第二逻辑电平。
与图6A的实例一样,被乘数的第一数字6200可对应于多于一个串联连接的存储器单元串206,对被乘数的每一剩余数字的串联连接的存储器单元串206的数量进行类似调整。另外,对应于被乘数的数字620的串联连接的存储器单元串206可与不对应于被乘数的数字620的串联连接的存储器单元串206交错,及/或可被重新布置。此外,图6B还可用于描述测温编码。例如,经编程以表示测温编码的数的存储器单元组可包含某一数量的串联连接的存储器单元串206的一或多个存储器单元(例如,其可包含所有存储器单元),所述数量是要表示的数的倍数(例如,1、2、3等),例如,用以表示10进制的3,存储器单元组可包含三个串联连接的存储器单元串206(例如,串联连接的存储器单元串2060到2062)中的每一者的一或多个存储器单元,其各自经配置以展现电阻值R,其中对应于被乘数的剩余串联连接的存储器单元串206可经配置以展现高阻抗。
图7描绘根据实施例的用于讨论算术运算的存储器单元阵列的一部分(例如,存储器单元块250)。图7描绘:七个串联连接的存储器单元串(例如,2060到2066),其包含响应于施加到选择线2150的控制信号通过选择门(在图7中未标记)选择性地连接到数据线2040到2046且响应于施加到选择线214的控制信号通过选择门(在图7中未标记)选择性地连接到共同源极216的存储器单元(在图7中未标记);七个串联连接的存储器单元串(在图7中未标记),其包含响应于施加到选择线2151的控制信号通过选择门(在图7中未标记)选择性地连接到数据线2040到2046且响应于施加到选择线214的控制信号通过选择门(在图7中未标记)选择性地连接到共同源极216的存储器单元(在图7中未标记);及七个串联连接的存储器单元串(在图7中未标记),其包含响应于施加到选择线2152的控制信号通过选择门(在图7中未标记)选择性地连接到数据线2040到2046且响应于施加到选择线214的控制信号通过选择门(在图7中未标记)选择性地连接到共同源极216的存储器单元(在图7中未标记)。
共同源极216可连接到模数转换器(ADC)730的输入732。ADC 730的输出734可包含多个信号线,每一信号线经配置以提供具有两个逻辑电平中的一者(例如,“1”或“0”逻辑电平)的相应数字信号。ADC 730可经配置以在其输入732处从共同源极216接收模拟信号(例如,电流),且在其输出734处产生代表在其输入732处接收的电流的量值的一组数字信号。考虑ADC 730经配置以接受从Alow到Ahigh的电流的实例,其中Alow可为零电流或某个正值,且Ahigh可为比要由ADC 730接收的任何预期电流电平更高的电流电平。ADC 730可进一步经配置以将输出数据的D个数字输出到其输出734。在此实例中,分辨率Q可等于(Ahigh–Alow)/2^D。继续此实例,如果D=8,那么在ADC 730的输入732处接收的大于或等于Alow且小于Alow+Q的电流电平可导致在输出734处产生的一组数字信号00000000,在ADC 730的输入732处接收的大于或等于Alow+Q且小于Alow+2*Q的电流电平可导致在输出734处产生的一组数字信号00000001,在ADC 730的输入732处接收的大于或等于Alow+2*Q且小于Alow+3*Q的电流电平可导致在输出734处产生的一组数字信号00000010,在ADC 730的输入732处接收的大于或等于Alow+3*Q且小于Alow+4*Q的电流电平可导致在输出734处产生的一组数字信号00000011,依此类推,直到在ADC 730的输入732处接收的大于或等于Alow+255*Q的电流电平可导致在输出734处产生的一组数字信号11111111。虽然此实例可表示接近线性函数的关系,但是为了产生代表接收到的电流电平的数字值,所述函数不需要是线性的。
图8A到8F描绘根据实施例的乘法累加运算期间的寄存器。将参考图7描述图8A到8F。图8A到8F的实例可以模拟方式(例如,如参考图6A所讨论)或二进制方式(例如,如参考图6B所讨论)存储被乘数。指示乘数的数字的电压可以二进制方式施加,例如,指示具有逻辑值1的数字的电压或指示具有逻辑值0的数字的电压。
执行乘法-累加运算的讨论假定将被乘数存储到对应于存取线2023(例如,使其控制栅极连接到存取线2023)及漏极选择线2150(例如,通过使其控制栅极连接到漏极选择线2150的漏极选择门212选择性地连接到相应的数据线204)的图7的串联连接的存储器单元串2060到2066的存储器单元208的实例。为了简化实例,ADC 730将被描述为三数字ADC,例如,具有八个可能的数字输出。实际上,ADC 730可预期具有更高阶的输出(例如,八数字、十六数字或更多),且因此具有更高的粒度。表1描绘来自共同源极216的电流的各种电平A1到A7的实例ADC 730的输出的数字值之间的一个可能关系,其中A1<A2<A3<A4<A5<A6<A7。注意,电流电平A1到A7的绝对值通常取决于所选择的设计参数,例如,来自ADC 730的输出的数字的数量、为驱动存取线202及数据线204而选择的电压、可传导的NAND串206的最大预期数量等。
表1三数字ADC中的数字值与电流
对于图8A到8F的实例,被乘数可为数字值101,而乘数可为数字值011。为使用二进制编码以模拟方式将被乘数101存储到串联连接的存储器单元串2060到2066,串联连接的存储器单元串2060到2066的存储器单元的阈值电压可经编程使得串联连接的存储器单元串2060到2066的第一分组串联连接的存储器单元串206(例如串联连接的存储器单元串2060)可响应于施加到存取线2020到2023的一组控制信号展现代表电阻值R(例如,R/20)的电阻,串联连接的存储器单元串2060到2066的第二分组串联连接的存储器单元串206(例如串联连接的存储器单元串2061)可响应于施加到存取线2020到2023的所述一组控制信号展现高阻抗,串联连接的存储器单元串2060到2066的第三分组串联连接的存储器单元串206(例如串联连接的存储器单元串2062)可响应于施加到存取线2020到2023的所述一组控制信号展现代表电阻值R/4(例如,R/22)的电阻,且串联连接的存储器单元串2060到2066的第四分组串联连接的存储器单元串206(例如串联连接的存储器单元串2063到2066)可响应于施加到存取线2020到2023的所述一组控制信号展现高阻抗。这样,响应于施加到存取线2020到2023的所述一组控制信号,串联连接的存储器单元串2060到2066可集体展现代表数字值101的接近R/5的电阻值。
替代地,考虑使用二进制编码以二进制方式存储被乘数的实例。在此实例中,串联连接的存储器单元串2060到2066的存储器单元的阈值电压可经编程使得串联连接的存储器单元串2060到2066的第一分组串联连接的存储器单元串206(例如串联连接的存储器单元串2060)可各自响应于施加到存取线2020到2023的一组控制信号展现代表电阻值R的电阻,串联连接的存储器单元串2060到2066的第二分组串联连接的存储器单元串206(例如串联连接的存储器单元串2061及2062)可响应于施加到存取线2020到2023的所述一组控制信号展现高阻抗,且串联连接的存储器单元串2060到2066的第三分组串联连接的存储器单元串206(例如串联连接的存储器单元串2063到2066)可各自响应于施加到存取线2020到2023的所述一组控制信号展现代表电阻值R的电阻。这样,响应于施加到存取线2020到2023的所述一组控制信号,串联连接的存储器单元串2060到2066可集体展现代表数字值101的接近R/5的电阻值。
作为进一步替代方案,考虑使用测温编码以二进制方式存储被乘数的实例。在此实例中,串联连接的存储器单元串2060到2066的存储器单元的阈值电压可经编程使得串联连接的存储器单元串2060到2066的第一分组串联连接的存储器单元串206(例如串联连接的存储器单元串2060到2064)可各自响应于施加到存取线2020到2023的一组控制信号展现代表电阻值R的电阻,且串联连接的存储器单元串2060到2066的第二分组串联连接的存储器单元串206(例如串联连接的存储器单元串2065到2066)可响应于施加到存取线2020到2023的所述一组控制信号展现高阻抗。这样,响应于施加到存取线2020到2023的所述一组控制信号,串联连接的存储器单元串2060到2066可集体展现代表数字值101(例如,测温值11111)的接近R/5的电阻值。
图8A到8F描绘三个部分乘积寄存器840(例如8400到8402)及一个累加寄存器842,其各自含有相应的六数字寄存器844,例如8440到8445。部分乘积寄存器840及累加寄存器842集体可对应于MAC寄存器136的一部分。虽然实例描绘三个部分乘积寄存器840,但是实施例可包含额外的部分乘积寄存器840,且通常可包含大于或等于要处理的乘数的数字的数量的多个部分乘积寄存器840。类似地,虽然实例描绘一个累加寄存器842,但是实施例可包含例如用于存储部分和的额外累加寄存器。且虽然实例描绘六个数字寄存器844,但是实施例可包含额外的数字寄存器844,且通常可包含大于或等于要处理的被乘数的数字的数量加上要处理的乘数的数字的数量的多个数字寄存器844。
为了获得图8A的结果,图7中的共同源极216可通过ADC 730连接到参考电势(例如,Vss、0V或接地)。因此,共同源极的电压电平(Vcs)可处于(或接近)参考电势。可将电压电平施加到源极选择线214以激活源极选择门210,可将电压电平施加到漏极选择线2150以激活其对应的漏极选择门212,且可将电压电平施加到漏极选择线2151及2152以取消激活其对应的漏极选择门212。可将指示乘数的第一数字(例如最高有效数字)的电压电平施加到每一数据线2040到2046。由于乘数的第一数字是0,因此可将电压电平V0施加到每一数据线2040到2046。电压电平V0可等于(或小于)电压电平Vcs。
可将电压电平施加到存取线202,所述电压电平经配置以激活对应于被乘数的具有第一逻辑电平的数字的NAND串2060到2066的相应存储器单元208,且取消激活对应于被乘数的具有第二逻辑电平的数字的NAND串2060到2066的相应存储器单元208。施加到存取线202的电压电平可进一步取消激活不对应于被乘数的任何数字的每一NAND串206的至少一个对应存储器单元208,例如,这些存储器单元208的阈值电压可高于施加到其对应存取线的电压电平,例如,其阈值电压可对应于被乘数的具有第二逻辑电平的数字。
在实例实施例中,无论被乘数是利用二进制编码以模拟或二进制方式存储,还是利用测温编码以二进制方式存储,存取线2023可接收电压电平,所述电压电平经配置以激活对应于被乘数的具有第一逻辑电平的数字的NAND串2060到2066的相应存储器单元208,且取消激活对应于被乘数的具有第二逻辑电平的数字或不对应于被乘数的任何数字的NAND串2060到2066的相应存储器单元208。并发地,施加到存取线2020到2022(例如,未存储被乘数的剩余存取线202)的电压电平可为具有经配置以激活其相应存储器单元208的电压电平的通过电压,而不管其对应的阈值电压如何。施加到存取线2023的电压电平可进一步取消激活不对应于被乘数的任何数字的每一NAND串206的至少一个存储器单元208,例如,这些存储器单元208的阈值电压可高于施加到其对应存取线的电压电平,例如,其阈值电压可对应于被乘数的具有第二逻辑电平的数字。
注意,对于将被乘数存储到每NAND串206的多于一个存储器单元的实施例,连接到对应于被乘数的数字的存储器单元208的每一存取线202可接收电压电平,所述电压电平经配置以激活对应于被乘数的具有第一逻辑电平的数字的NAND串2060到2066的相应存储器单元208,且取消激活对应于被乘数的具有第二逻辑电平的数字的NAND串2060到2066的相应存储器单元208,而剩余存取线202可接收通过电压。
由于数据线204与共同源极216之间的电压差(Vds)可能是0V或更低,因此可不期望电流流向ADC 730,这可能导致ADC 730的输出是数字值000,例如,具有小于表1的值A1的电流。然后可将数字值000存储在部分乘积寄存器8400的数字寄存器8440到8442中。未描绘任何值的数字寄存器844可被认为各自存储值0。在图8B中,第一乘法运算的结果可经移位到下一个部分乘积寄存器840(例如8401)且经移位一阶到数字寄存器8441到8443。
为了获得图8C的结果,图7中的共同源极216可通过ADC 730连接到参考电势。因此,共同源极的电压电平(Vcs)可处于(或接近)参考电势。可将电压电平施加到源极选择线214以激活源极选择门210,可将电压电平施加到漏极选择线2150以激活其对应的漏极选择门212,且可将电压电平施加到漏极选择线2151及2152以取消激活其对应的漏极选择门212。指示乘数的第二数字的电压电平可施加到每一数据线2040到2046。由于乘数的第二数字是1,因此可将电压电平V1施加到每一数据线2040到2046。替代地,对应于不与被乘数的任何数字对应的NAND串206的数据线204可接收电压电平V0或等于(或低于)共同源极216的电压电平的其它电压电平。电压电平V1可高于电压电平Vcs,使得数据线204与共同源极216之间的电压差可为正的。
可将电压电平施加到存取线202,所述电压电平经配置以激活对应于被乘数的具有第一逻辑电平的数字的NAND串2060到2066的相应存储器单元208,且取消激活对应于被乘数的具有第二逻辑电平的数字的NAND串2060到2066的相应存储器单元208。施加到存取线202的电压电平可进一步取消激活不对应于被乘数的任何数字的每一NAND串206的至少一个存储器单元208,例如,这些存储器单元208的阈值电压可高于施加到其对应存取线的电压电平,例如,其阈值电压可对应于被乘数的具有第二逻辑电平的数字。
在实例实施例中,无论被乘数是利用二进制编码以模拟或二进制方式存储,还是利用测温编码以二进制方式存储,存取线2023可接收电压电平,所述电压电平经配置以激活对应于被乘数的具有第一逻辑电平的数字的NAND串2060到2066的相应存储器单元208,且取消激活对应于被乘数的具有第二逻辑电平的数字或不对应于被乘数的任何数字的NAND串2060到2066的相应存储器单元208。并发地,施加到存取线2020到2022的电压电平可为经配置以激活其相应存储器单元208的通过电压,而不管其对应的阈值电压如何。
数据线204与共同源极216之间的电压差(Vds)可能是正的,且可期望流向ADC 730的电流大于或等于电流电平A5且小于电流电平A6,这可能导致ADC 730的输出是数字值101。然后可将数字值101存储在部分乘积寄存器8400的数字寄存器8440到8442中。在图8D中,第一乘法运算的结果可经移位到下一个部分乘积寄存器840(例如8402)且经移位一阶到数字寄存器8442到8444,且第二乘法运算的结果可经移位到下一个部分乘积寄存器840(例如8401),且经移位一阶到数字寄存器8441到8443。注意,乘法运算的结果的移位可用于在其累加之前向其数字值提供期望的量值。
为了获得图8E的结果,可重复参考图8C描述的过程。例如,图7中的共同源极216可通过ADC 730连接到参考电势。因此,共同源极的电压电平(Vcs)可处于(或接近)参考电势。可将电压电平施加到源极选择线214以激活源极选择门210,可将电压电平施加到漏极选择线2150以激活其对应的漏极选择门212,且可将电压电平施加到漏极选择线2151及2152以取消激活其对应的漏极选择门212。指示乘数的第三数字(例如最低有效数字)的电压电平可施加到每一数据线2040到2046。由于乘数的第三数字是1,因此可将电压电平V1施加到每一数据线2040到2046。
存取线2023可接收电压电平,所述电压电平经配置以激活对应于被乘数的具有第一逻辑电平的数字的NAND串2060到2066的相应存储器单元208,且取消激活对应于被乘数的具有第二逻辑电平的数字或不对应于被乘数的任何数字的NAND串2060到2066的相应存储器单元208。并发地,施加到存取线2020到2022的电压电平可为经配置以激活其相应存储器单元208的通过电压,而不管其对应的阈值电压如何。
数据线204与共同源极216之间的电压差(Vds)可能是正的,且可期望流向ADC 730的电流大于或等于电流电平A5且小于电流电平A6,这可能导致ADC 730的输出是数字值101。然后可将数字值101存储在部分乘积寄存器8400的数字寄存器8440到8442中。
作为当移位到后续部分乘积寄存器840时将数字值移位一阶的替代方案,ADC 730的输出的数字值可直接存储到指示其量值的数字寄存器。例如,在图8A中,数字值000可已经存储在部分乘积寄存器8400的数字寄存器8442到8444中,且仅仅向下移位到部分乘积寄存器8402,而不进一步移位其量值,且在图8C中,数字值101可已经存储在部分乘积寄存器8400的数字寄存器8441到8443中,且仅仅向下移位到部分乘积寄存器8401,而不进一步移位其量值。这样,可更改应用乘数的数字的顺序,因为将顺序移位到期望量值将与其应用的时序无关。
在图8F中,部分乘积寄存器8400到8402可例如以本领域公知的方式进行求和并存储到累加寄存器842,以产生代表被乘数101及乘数011的乘积的结果01111。存储到累加寄存器842的结果可例如表示图5中的矩阵A的a11与矩阵B的b11的乘积。继续此实例,可针对额外的被乘数/乘数对重复所述过程,例如矩阵A的a12与矩阵B的b21的乘积、矩阵A的a13与矩阵B的b31的乘积及矩阵A的a14与矩阵B的b41的乘积,且这些乘积可相加以产生如参考图5所描述的矩阵C的c11。这样,存储器的操作可用作向量-向量单元(例如,与前述实例一致的图4的向量-向量单元36111)以产生结果矩阵C的一个元素(例如,c11)的值。
图9A到9F描绘根据另一实施例的乘法累加运算期间的寄存器。将参考图7描述图9A到9F。图9A到9F的实例可以模拟方式(例如,如参考图6A所讨论)或二进制方式(例如,如参考图6B所讨论)存储被乘数。指示乘数的数字的电压可以模拟方式施加,例如,指示具有逻辑值0的数字的电压,或代表具有逻辑值1的数字的量值的相应电压电平。
执行乘法-累加运算的讨论假定将被乘数存储到对应于存取线2023(例如,使其控制栅极连接到存取线2023)及漏极选择线2150(例如,通过使其控制栅极连接到漏极选择线2150的漏极选择门212选择性地连接到相应的数据线204)的图7的串联连接的存储器单元串2060到2066的存储器单元208的实例。为了简化实例,ADC 730将被描述为五数字ADC,例如,具有32个可能的数字输出。实际上,ADC 730可预期具有更高阶的输出(例如,八数字、十六数字或更多),且因此具有更高的粒度。
表2描绘来自共同源极216的电流的各种电平A1到A31的实例ADC 730的输出的数字值之间的一个可能关系,其中A1<A2<A3<A4<A5<A6<A7<A8<A9<A10<A11<A12<A13<A14<A15<A16<A17<A18<A19<A20<A21<A22<A23<A24<A25<A26<A27<A28<A29<A30<A31。注意,电流电平A1到A31的绝对值通常取决于所选择的设计参数,例如,来自ADC 730的输出的数字的数量、为驱动存取线202及数据线204而选择的电压、可传导的NAND串206的最大预期数量等。
表2五数字ADC中的数字值与电流
对于图9A到9F的实例,被乘数可为数字值101,而乘数可为数字值011。被乘数101可使用二进制编码以模拟方式、使用二进制编码以二进制方式或使用测温编码以二进制方式存储到如参考图8A到8F所描述的串联连接的存储器单元串2060到2066。
图9A到9F描绘三个部分乘积寄存器840(例如8400到8402)及一个累加寄存器842,其各自含有相应的六数字寄存器844,例如8440到8445。部分乘积寄存器840及累加寄存器842集体可对应于MAC寄存器136的一部分。虽然实例描绘三个部分乘积寄存器840,但是实施例可包含额外的部分乘积寄存器840,且通常可包含大于或等于要处理的乘数的数字的数量的多个部分乘积寄存器840。类似地,虽然实例描绘一个累加寄存器842,但是实施例可包含例如用于存储部分和的额外累加寄存器。且虽然实例描绘六个数字寄存器844,但是实施例可包含额外的数字寄存器844,且通常可包含大于或等于要处理的被乘数的数字的数量加上要处理的乘数的数字的数量的多个数字寄存器844。
虽然图8A到8F的实例以乘数的最高有效数字开始,但是将以乘数的最低有效数字开始描述图9A到9F的实例。然而,如果需要,应用图9A到9F的实例的乘数的数字的顺序可以不同的顺序执行。
为了获得图9A的结果,图7中的共同源极216可通过ADC 730连接到参考电势(例如,Vss、0V或接地)。因此,共同源极的电压电平(Vcs)可处于(或接近)参考电势。可将电压电平施加到源极选择线214以激活源极选择门210,可将电压电平施加到漏极选择线2150以激活其对应的漏极选择门212,且可将电压电平施加到漏极选择线2151及2152以取消激活其对应的漏极选择门212。可将指示乘数的第一数字(例如最低有效数字)的电压电平施加到每一数据线2040到2046。由于乘数的第一数字是1,量值为2^0,因此可将电压电平V1施加到每一数据线2040到2046。替代地,对应于不与被乘数的任何数字对应的NAND串206的数据线204可接收电压电平V0或等于(或低于)共同源极216的电压电平的其它电压电平。电压电平V1可高于电压电平Vcs,使得数据线204与共同源极216之间的电压差可为正的。
可将电压电平施加到存取线202,所述电压电平经配置以激活对应于被乘数的具有第一逻辑电平的数字的NAND串2060到2066的相应存储器单元208,且取消激活对应于被乘数的具有第二逻辑电平的数字的NAND串2060到2066的相应存储器单元208。施加到存取线202的电压电平可进一步取消激活不对应于被乘数的任何数字的每一NAND串206的至少一个对应存储器单元208,例如,这些存储器单元208的阈值电压可高于施加到其对应存取线的电压电平,例如,其阈值电压可对应于被乘数的具有第二逻辑电平的数字。
在实例实施例中,无论被乘数是利用二进制编码以模拟或二进制方式存储,还是利用测温编码以二进制方式存储,存取线2023可接收电压电平,所述电压电平经配置以激活对应于被乘数的具有第一逻辑电平的数字的NAND串2060到2066的相应存储器单元208,且取消激活对应于被乘数的具有第二逻辑电平的数字或不对应于被乘数的任何数字的NAND串2060到2066的相应存储器单元208。并发地,施加到存取线2020到2022(例如,未存储被乘数的剩余存取线202)的电压电平可为具有经配置以激活其相应存储器单元208的电压电平的通过电压,而不管其对应的阈值电压如何。施加到存取线2023的电压电平可进一步取消激活不对应于被乘数的任何数字的每一NAND串206的至少一个存储器单元208,例如,这些存储器单元208的阈值电压可高于施加到其对应存取线的电压电平,例如,其阈值电压可对应于被乘数的具有第二逻辑电平的数字。
注意,对于将被乘数存储到每NAND串206的多于一个存储器单元的实施例,连接到对应于被乘数的数字的存储器单元208的每一存取线202可接收电压电平,所述电压电平经配置以激活对应于被乘数的具有第一逻辑电平的数字的NAND串2060到2066的相应存储器单元208,且取消激活对应于被乘数的具有第二逻辑电平的数字的NAND串2060到2066的相应存储器单元208,而剩余存取线202可接收通过电压。
数据线204与共同源极216之间的电压差(Vds)可能是正的,且可期望流向ADC 730的电流大于或等于表2的电流电平A5且小于电流电平A6,这可能导致ADC 730的输出是数字值00101。然后可将数字值00101存储在部分乘积寄存器8400的数字寄存器8440到8444中。不描绘任何值的数字寄存器844可被认为各自存储值0。在图9B中,第一乘法运算的结果可移位到下一个部分乘积寄存器840(例如8401)。注意,不需要将结果移位到更高阶,因为第一乘法运算的结果可代表其期望的量值。
为了获得图9C的结果,图7中的共同源极216可通过ADC 730连接到参考电势。因此,共同源极的电压电平(Vcs)可处于(或接近)参考电势。可将电压电平施加到源极选择线214以激活源极选择门210,可将电压电平施加到漏极选择线2150以激活其对应的漏极选择门212,且可将电压电平施加到漏极选择线2151及2152以取消激活其对应的漏极选择门212。可将指示乘数的第二数字的电压电平施加到每一数据线2040到2046。由于乘数的第二数字是1,量值为2^1,因此可将电压电平V2施加到每一数据线2040到2046。替代地,对应于不与被乘数的任何数字对应的NAND串206的数据线204可接收电压电平V0或等于(或低于)共同源极216的电压电平的其它电压电平。
电压电平V2可高于电压电平Vcs,使得数据线204与共同源极216之间的电压差可为正的。电压电平V2可高于电压电平V1。电压电平V2可经配置以产生电压差Vds,所述电压差Vds可为代表乘数的最低有效数字的电压差的两倍(例如,2^1)。这样,响应于电压差V2-Vcs的所得电流可具有响应于电压差V1–Vcs的电流电平两倍的电流电平,使得其所得电流将代表其值及量值。
可将电压电平施加到存取线202,所述电压电平经配置以激活对应于被乘数的具有第一逻辑电平的数字的NAND串2060到2066的相应存储器单元208,且取消激活对应于被乘数的具有第二逻辑电平的数字的NAND串2060到2066的相应存储器单元208。施加到存取线202的电压电平可进一步取消激活不对应于被乘数的任何数字的每一NAND串206的至少一个存储器单元208,例如,这些存储器单元208的阈值电压可高于施加到其对应存取线的电压电平,例如,其阈值电压可对应于被乘数的具有第二逻辑电平的数字。
在实例实施例中,无论被乘数是利用二进制编码以模拟或二进制方式存储,还是利用测温编码以二进制方式存储,存取线2023可接收电压电平,所述电压电平经配置以激活对应于被乘数的具有第一逻辑电平的数字的NAND串2060到2066的相应存储器单元208,且取消激活对应于被乘数的具有第二逻辑电平的数字或不对应于被乘数的任何数字的NAND串2060到2066的相应存储器单元208。并发地,施加到存取线2020到2022的电压电平可为经配置以激活其相应存储器单元208的通过电压,而不管其对应的阈值电压如何。
数据线204与共同源极216之间的电压差(Vds)可能是正的,且可期望流向ADC 730的电流大于或等于表2的电流电平A10且小于电流电平A11,这可能导致ADC 730的输出是数字值01010。然后可将数字值01010存储在部分乘积寄存器8400的数字寄存器8440到8444中。在图9D中,第一乘法运算的结果可移位到下一个部分乘积寄存器840(例如8402),且第二乘法运算的结果可移位到下一个部分乘积寄存器840(例如8401)。注意,不需要将结果移位到更高阶,因为第一及第二乘法运算的结果可代表其相应期望量值。
为了获得图9E的结果,图7中的共同源极216可通过ADC 730连接到参考电势。因此,共同源极的电压电平(Vcs)可处于(或接近)参考电势。可将电压电平施加到源极选择线214以激活源极选择门210,可将电压电平施加到漏极选择线2150以激活其对应的漏极选择门212,且可将电压电平施加到漏极选择线2151及2152以取消激活其对应的漏极选择门212。可将指示乘数的第三数字(例如最高有效数字)的电压电平施加到每一数据线2040到2046。由于乘数的第三数字是0,因此可将电压电平V0施加到每一数据线2040到2046。电压电平V0可等于(或小于)电压电平Vcs。
如果乘数的第三数字是1,那么可将电压电平V4施加到每一数据线2040到2046。电压电平V4可高于电压电平Vcs,使得数据线204与共同源极216之间的电压差可为正的。电压电平V4可经配置以产生电压差Vds,所述电压差Vds将是代表乘数的最低有效数字的电压差的四倍(例如,2^2)。这样,响应于电压差V4-Vcs的所得电流可具有响应于电压差V1–Vcs的电流电平四倍的电流电平,使得其所得电流将代表其值及量值。
可将电压电平施加到存取线202,所述电压电平经配置以激活对应于被乘数的具有第一逻辑电平的数字的NAND串2060到2066的相应存储器单元208,且取消激活对应于被乘数的具有第二逻辑电平的数字的NAND串2060到2066的相应存储器单元208。施加到存取线202的电压电平可进一步取消激活不对应于被乘数的任何数字的每一NAND串206的至少一个存储器单元208,例如,这些存储器单元208的阈值电压可高于施加到其对应存取线的电压电平,例如,其阈值电压可对应于被乘数的具有第二逻辑电平的数字。
在实例实施例中,无论被乘数是利用二进制编码以模拟或二进制方式存储,还是利用测温编码以二进制方式存储,存取线2023可接收电压电平,所述电压电平经配置以激活对应于被乘数的具有第一逻辑电平的数字的NAND串2060到2066的相应存储器单元208,且取消激活对应于被乘数的具有第二逻辑电平的数字或不对应于被乘数的任何数字的NAND串2060到2066的相应存储器单元208。并发地,施加到存取线2020到2022的电压电平可为经配置以激活其相应存储器单元208的通过电压,而不管其对应的阈值电压如何。
由于数据线204与共同源极216之间的电压差(Vds)可能是0V或更低,因此可不期望电流流向ADC 730,这可能导致ADC 730的输出是数字值00000,例如,具有小于表2的值A1的电流。然后可将数字值00000存储在部分乘积寄存器8400的数字寄存器8440到8444中。
在图9F中,部分乘积寄存器8400到8402可例如以本领域公知的方式进行求和,以产生代表被乘数101及乘数011的乘积的结果01111。存储到累加寄存器842的结果可例如表示图5中的矩阵A的a11与矩阵B的b11的乘积。继续此实例,可针对额外的被乘数/乘数对重复所述过程,例如矩阵A的a12与矩阵B的b21的乘积、矩阵A的a13与矩阵B的b31的乘积及矩阵A的a14与矩阵B的b41的乘积,且这些乘积可相加以产生如参考图5所描述的矩阵C的c11。这样,存储器的操作可用作向量-向量单元(例如,与前述实例一致的图4的向量-向量单元36111)以产生结果矩阵C的一个元素(例如,c11)的值。
存取线202及数据线204的期望电压电平可通过实验、凭经验或通过模拟来确定。例如,存储器单元208及NAND串206的电导(或电阻)的表征一般是给定性能的通常高水平可预测性的常规任务。图10到12可表示作为相关变量的函数的电流的表征。例如,图10可表示对于从数据线204到共同源极216的不同电压差(Vds),作为存取线202电压电平(Vgs)的函数的单元电流(Ids)的表征。图11可表示对于从数据线204到共同源极216的特定电压差,对于NAND串206内的数据模式的不同状态(例如,经擦除或经编程),作为存取线202电压电平(Vgs)的函数的单元电流(Ids)的表征。图12可表示对于不同存取线202电压电平(Vgs),作为从数据线204到共同源极216的电压差(Vds)的函数的单元电流(Ids)的表征。凭借此类或类似的表征、在乘法运算期间可传导电流的NAND串206的数量的知识以及可用模数转换器730的粒度及电流能力,可容易地选择存取线202及数据线204的期望电压电平以在所选择ADC 730的能力内提供电流。
各种实施例寻求执行DLA的矩阵-矩阵单元、矩阵-向量单元及/或向量-向量单元的功能性。图13是根据实施例的操作存储器的方法的流程图。所述方法可表示与矩阵-矩阵单元相关联的动作。所述方法可为例如存储到指令寄存器128的计算机可读指令的形式。此类计算机可读指令可由控制器(例如,控制逻辑116)执行,以使存储器的相关组件执行所述方法。
在1301,可将变量a的值设置为1。变量a的有效值可为从1到N的任何整数值,其中N可等于被乘数矩阵的行的数量,其可等于乘数矩阵的列的数量。在1303,可将变量b的值设置为1。变量b的有效值可为从1到N的任何整数值。
在1305,可确定被乘数矩阵的第a向量与乘数矩阵的第b向量的向量点积。将参考随后的图14到16B更详细地描述向量点积的确定。向量点积的确定可对应于向量-向量单元361的动作。例如,参考图4,N可等于4,且确定被乘数矩阵的第a向量与乘数矩阵的第b向量的向量点积可对应于变量a及b的任何有效值的向量-向量单元361ab的动作。继续此实例,矩阵-向量单元341a的动作可对应于向量-向量单元361ab对变量a的任何一个有效值以及变量b的所有有效值的动作,例如,矩阵-向量单元341a的动作可对应于向量-向量单元361a1、361a2、361a3及361a4对变量a的任何有效值的动作。数据寄存器120可对应于内核缓冲器331,例如存储乘数向量(其可从外部装置接收,类似于接收用于编程的数据,或者可从存储器单元阵列104读取)。存储器单元阵列104可对应于例如存储被乘数向量的映射存储体351。被乘数可利用二进制编码以模拟或二进制方式存储,或者利用测温编码以二进制方式存储。
在1307,变量b的值可递增1。在1309,可确定变量b的值是否大于N。如果否,那么过程可返回到1305以确定被乘数矩阵的第a向量与乘数矩阵的递增的第b向量的向量点积。如果变量b的值大于N,那么所述过程可进行到1311。
在1311,变量a的值可递增1。在1313,可确定变量a的值是否大于N。如果否,过程可返回到1303以将变量b的值返回到1。如果变量a的值大于N,那么所述过程可在1315结束。
图14是根据另一实施例的操作存储器的方法的流程图。所述方法可表示与在图13的1305处确定向量点积相关联的动作。所述方法可为例如存储到指令寄存器128的计算机可读指令的形式。此类计算机可读指令可由控制器(例如,控制逻辑116)执行,以使存储器的相关组件执行所述方法。
在1421,可将变量k的值设置为1。变量k的有效值可为从1到N的任何整数值。在1423,可确定被乘数矩阵的第a向量的第k元素与乘数矩阵的第b向量的第k元素的乘积。将参考随后的图15到16B更详细地描述乘积的确定。
在1425,变量k的值可递增1。在1427,可确定变量k的值是否大于N。如果否,那么过程可返回到1423以确定被乘数矩阵的第a向量的递增的第k元素与乘数矩阵的第b向量的递增的第k元素的乘积。如果变量k的值大于N,那么所述过程可进行到1429。在1429,可对变量k的每一值的乘积进行求和以确定被乘数矩阵的第a向量与乘数矩阵的第b向量的向量点积。然后,所述过程可进行到1307。
图15是根据另一实施例的操作存储器的方法的流程图。所述方法可表示与在图14的1423处确定乘积相关联的动作。所述方法可为例如存储到指令寄存器128的计算机可读指令的形式。此类计算机可读指令可由控制器(例如,控制逻辑116)执行,以使存储器的相关组件执行所述方法。
在1531,可将变量d的值设置为1。变量d的有效值可为从1到D的任何整数值,其中D可等于乘数矩阵的第b向量的第k元素的数字的数量。在1533,被乘数矩阵的第a向量的第k元素与乘数矩阵的第b向量的第k元素的第d数字的乘法部分乘积。将参考随后的图16A到16B更详细地描述乘法部分乘积的确定。
在1535,变量d的值可递增1。在1537,可确定变量d的值是否大于D。如果否,那么过程可返回到1533以确定被乘数矩阵的第a向量的第k元素与乘数矩阵的第b向量的第k元素的递增的第d数字的乘法部分乘积。如果变量d的值大于N,那么所述过程可进行到1539。在1539,可对变量d的每一值的乘法部分乘积进行求和以确定被乘数矩阵的第a向量的第k元素与乘数矩阵的第b向量的第k元素的乘积。然后,所述过程可进行到1425。
图16A是根据又一实施例的操作存储器的方法的流程图。所述方法可表示与在图15的1533处确定乘法部分乘积相关联的动作。所述方法可为例如存储到指令寄存器128的计算机可读指令的形式。此类计算机可读指令可由控制器(例如,控制逻辑116)执行,以使存储器的相关组件执行所述方法。
在1641处,可将一组控制信号施加到多个存取线,所述一组控制信号经配置以激活对应于被乘数矩阵的第a向量的第k元素的具有第一逻辑电平的相应数字的多个串联连接的存储器单元串的存储器单元,激活不对应于被乘数矩阵的第a向量的第k元素的具有第一逻辑电平的任何数字的多个串联连接的存储器单元串的存储器单元,且取消激活对应于被乘数矩阵的第a向量的第k元素的具有不同于第一逻辑电平的第二逻辑电平的相应数字的多个串联连接的存储器单元串的存储器单元。第一逻辑电平可对应于数字值1,而第二逻辑电平可对应于数字值0,但此类角色可颠倒。
被乘数矩阵的第a向量的第k元素可存储到如参考图6A到6B及7描述的多个串联连接的存储器单元串的存储器单元。所述一组控制信号可包含施加到与存储被乘数矩阵的第a向量的第k元素的存储器单元相关联的第一存取线子组的第一控制信号子组,且可进一步包含施加到不与存储被乘数矩阵的第a向量的第k元素的存储器单元相关联的第二存取线子组(例如,与第一存取线子组互斥)的第二控制信号子组(例如,与第一控制信号子组互斥)。控制信号的每一子组可包含一或多个控制信号,且存取线的每一子组可包含一或多个存取线。第二控制信号子组及第二存取线子组可为空集,例如,多个串联连接的存储器单元串中的一或多个串联连接的存储器单元串中的每一存储器单元可对应于被乘数矩阵的第a向量的第k元素的相应数字。
施加到第一存取线子组的第一控制信号子组可包含具有比存储第一逻辑电平的存储器单元的阈值电压更高且比存储第二逻辑电平的存储器单元的阈值电压更低的电压电平的控制信号,例如参考图8A到8F及/或9A到9F所描述。施加到第二存取线子组的第二控制信号子组可包含通过电压,例如,经配置以激活存储器单元而不管其存储值如何的电压电平,例如参考图8A到8F及/或9A到9F所描述。
在1643处,可将控制信号施加到连接到具有指示乘数矩阵的第b向量的第k元素的第d数字的值的电压电平的多个串联连接的存储器单元串的多个数据线,例如参考图8A到8F及/或9A到9F所描述。注意,控制信号的电压电平可进一步指示乘数矩阵的第b向量的第k元素的第d数字的量值,例如参考图9A到9F所描述。控制信号的电压电平可经配置以响应于乘数矩阵的第b向量的第k元素的第d数字具有第一逻辑电平而在多个数据线与连接到多个串联连接的存储器单元串的共同源极之间产生第一电压差(例如正电压差)。控制信号的电压电平可经配置以响应于乘数矩阵的第b向量的第k元素的第d数字具有第二逻辑电平而在多个数据线与共同源极之间产生第二电压差(例如不同于第一电压差,其可包含零或负电压差)。在1645处,通过多个串联连接的存储器单元串的所得电流电平可转换为对应于被乘数矩阵的第a向量的第k元素与乘数矩阵的第b向量的第k元素的第d数字的乘法部分乘积的数字值(例如,使用ADC)。然后,所述过程可进行到1535。
虽然可如参考图16A的实施例讨论般施加具有指示乘数矩阵的第b向量的第k元素的数字的值具有第二逻辑电平的电压电平的控制信号,但另一实施例可消除将此类控制信号施加到数据线,如参考图16B讨论。
图16B是根据替代实施例的操作存储器的方法的流程图。所述方法可表示与在图15的1533处确定乘法部分乘积相关联的动作。所述方法可为例如存储到指令寄存器128的计算机可读指令的形式。此类计算机可读指令可由控制器(例如,控制逻辑116)执行,以使存储器的相关组件执行所述方法。
在1647,可确定乘数矩阵的第b向量的第k元素的第d数字的值是否具有第二逻辑电平。如果否,那么可执行图16A的1641到1645的过程。如果乘数矩阵的第b向量的第k元素的第d数字的值被确定为具有第二逻辑电平,那么在1649处,可将对应于被乘数矩阵的第a向量的第k元素与乘数矩阵的第b向量的第k元素的第d数字的乘法部分乘积的数字值设置为零,例如,不施加控制信号到多个存取线及/或不施加控制信号到多个数据线。注意,对于一些实施例,施加到存取线的控制信号可在1533的过程期间通过乘数矩阵的给定向量的所有数字维持,且可在1305的过程期间通过乘数矩阵的所有向量进一步维持。然后,所述过程可进行到1535。
虽然图13到16B的流程图描绘一个处理顺序,但是可利用其它顺序。例如,代替变量a、b、k及d从值1开始并递增到其相应结束值N、N、N及D,这些变量中的一或多者可从其相应结束值开始并在决策点处继续之前递减到1。或者个别变量的处理可以非循序顺序执行。另外,可针对一或多个变量的多个值并发执行处理。例如,如果将被乘数矩阵的向量的第一元素存储到存储器单元的第一块的存储器单元(例如,选择性地连接到第一共同源极的存储器单元),将被乘数矩阵的向量的第二元素存储到存储器单元的第二块的存储器单元(例如,选择性地连接到与第一共同源极隔离的第二共同源极的存储器单元),将被乘数矩阵的向量的第三元素存储到存储器单元的第三块的存储器单元(例如,选择性地连接到与第一共同源极及第二共同源极隔离的第三共同源极的存储器单元),依此类推,那么这些元素与乘数矩阵的其相关联元素的乘积的确定可并发执行。
图17描绘根据实施例的存储器单元阵列的一部分(例如,两个存储器单元块2501及2502)。图17描绘第一存储器单元块2501,其具有:三个串联连接的存储器单元串(图17中未标记),其包含响应于施加到选择线21511的控制信号通过选择门(在图17中未标记)选择性地连接到数据线20410到20412且响应于施加到选择线2141的控制信号通过选择门(在图17中未标记)选择性地连接到共同源极2161的存储器单元(在图17中未标记);三个串联连接的存储器单元串(在图17中未标记),其包含响应于施加到选择线21512的控制信号通过选择门(在图17中未标记)选择性地连接到数据线20410到20412且响应于施加到选择线2141的控制信号通过选择门(在图17中未标记)选择性地连接到共同源极2161的存储器单元(在图17中未标记);及三个串联连接的存储器单元串(在图17中未标记),其包含响应于施加到选择线21513的控制信号通过选择门(在图17中未标记)选择性地连接到数据线20410到20412且响应于施加到选择线2141的控制信号通过选择门(在图17中未标记)选择性地连接到共同源极2161的存储器单元(在图17中未标记)。
图17进一步描绘第二存储器单元块2502,其具有:三个串联连接的存储器单元串(图17中未标记),其包含响应于施加到选择线21521的控制信号通过选择门(在图17中未标记)选择性地连接到数据线20420到20422且响应于施加到选择线2142的控制信号通过选择门(在图17中未标记)选择性地连接到共同源极2162的存储器单元(在图17中未标记);三个串联连接的存储器单元串(在图17中未标记),其包含响应于施加到选择线21522的控制信号通过选择门(在图17中未标记)选择性地连接到数据线20420到20422且响应于施加到选择线2142的控制信号通过选择门(在图17中未标记)选择性地连接到共同源极2162的存储器单元(在图17中未标记);及三个串联连接的存储器单元串(在图17中未标记),其包含响应于施加到选择线21523的控制信号通过选择门(在图17中未标记)选择性地连接到数据线20420到20422且响应于施加到选择线2142的控制信号通过选择门(在图17中未标记)选择性地连接到共同源极2162的存储器单元(在图17中未标记)。
共同源极2161可连接到模数转换器(ADC)7301的输入7321。ADC 7301的输出7341可包含多个信号线,每一信号线经配置以提供具有两个逻辑电平中的一者(例如,“1”或“0”逻辑电平)的相应数字信号。ADC 7301可如参考图7的ADC 730所描述般配置。共同源极2162可连接到模数转换器(ADC)7302的输入7322。ADC 7302的输出7342可包含多个信号线,每一信号线经配置以提供具有两个逻辑电平中的一者(例如,“1”或“0”逻辑电平)的相应数字信号。ADC 7302可如参考图7的ADC 730所描述般配置。ADC 7301及7302的输出7341及7342可分别连接到MAC寄存器136,例如,连接到MAC寄存器136的相应部分,以存储其乘法部分乘积。显然,额外存储器单元块250可具有连接到相应ADC 730的相应源极216,所述ADC 730连接到MAC寄存器136的相应部分,以便增加并发执行多个乘法运算的并行性。
另外,图17的实施例还可用于增加可用于存储被乘数矩阵的向量的元素的串联连接的存储器单元串的数量。例如,可将被乘数矩阵的向量的元素的第一数字子组(例如,较低有效数字)存储到存储器单元块2502的存储器单元,且可将被乘数矩阵的向量的元素的第二数字子组(例如,较高有效数字)存储到存储器单元块2501的存储器单元。可将相同的控制信号施加到两个存储器单元块250的数据线204,可由ADC 730转换相应的电流电平,且可将所得值存储到MAC寄存器136的相应部分以用于后续求和。
结论
尽管本文中已说明且描述了特定实施例,但所属领域的一般技术人员应了解,经计算以实现相同目的的任何布置可替代展示的特定实施例。所属领域的一般技术人员将明白实施例的许多调适。因此,本申请希望涵盖实施例的任何调适或变化。
Claims (20)
1.一种存储器,其包括:
多个数据线;
共同源极;
多个串联连接的存储器单元串,其中所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串选择性地连接到所述多个数据线中的相应数据线,且选择性地连接到所述共同源极,且其中所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串对应于被乘数的多个数字中的相应数字;
多个存取线,其中所述多个存取线中的每一存取线连接到所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串的相应存储器单元的控制栅极;及
控制器,其经配置以使所述存储器:
对于乘数的多个数字中的每一数字:
产生流过所述多个串联连接的存储器单元串的相应电流,所述相应电流具有指示所述乘数的所述多个数字中的所述数字的值乘以所述被乘数的相应电流电平;及
将所述乘数的所述多个数字中的所述数字的所述相应电流电平转换为指示所述乘数的所述多个数字中的所述数字的所述值及量值乘以所述被乘数的相应数字值;及
对所述乘数的所述多个数字中的每一数字的所述相应数字值求和。
2.根据权利要求1所述的存储器,其中对应于所述被乘数的所述多个数字中的最低有效数字的所述多个串联连接的存储器单元串中的串联连接的存储器单元串的数量等于对应于所述被乘数的所述多个数字中的每一剩余数字的所述多个串联连接的存储器单元串中的串联连接的存储器单元串的数量。
3.根据权利要求2所述的存储器,其中所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串具有对应于所述被乘数的所述多个数字中的其相应数字的相应存储器单元子组,且其中对应于所述被乘数的所述多个数字中的所述最低有效数字的所述多个串联连接的存储器单元串中的所述数量个串联连接存储器单元串中的所述相应存储器单元子组的阈值电压高于对应于所述被乘数的所述多个数字中的较高有效数字的所述多个串联连接的存储器单元串中的所述数量个串联连接存储器单元串中的所述相应存储器单元子组的阈值电压。
4.根据权利要求3所述的存储器,其中所述被乘数的所述多个数字中的所述较高有效数字的量值是所述被乘数的所述多个数字中的所述最低有效数字的量值的2^N倍,且其中对应于所述被乘数的所述多个数字中的所述最低有效数字的所述多个串联连接的存储器单元串的所述数量个串联连接的存储器单元的所述相应存储器单元子组的所述阈值电压经配置以响应于施加到所述多个存取线的一组控制信号产生电阻,所述电阻是响应于施加到所述多个存取线的所述一组控制信号由对应于所述被乘数的所述多个数字中的所述较高有效数字的所述多个串联连接的存储器单元串的所述数量个串联连接的存储器单元的所述相应存储器单元子组的所述阈值电压产生的电阻的2^N倍。
5.根据权利要求1所述的存储器,其中对应于所述被乘数的所述多个数字中的最低有效数字的所述多个串联连接的存储器单元串中的串联连接的存储器单元串的数量不同于对应于所述被乘数的所述多个数字中的较高有效数字的所述多个串联连接的存储器单元串中的串联连接的存储器单元串的数量。
6.根据权利要求1所述的存储器,其中所述被乘数的所述多个数字中的所述较高有效数字的量值是所述被乘数的所述多个数字中的所述最低有效数字的量值的2^N倍,且其中对应于所述被乘数的所述多个数字中的所述较高有效数字的所述多个串联连接的存储器单元串中的串联连接的存储器单元串的所述数量是对应于所述被乘数的所述多个数字中的所述最低有效数字的所述多个串联连接的存储器单元串中的串联连接的存储器单元串的所述数量的2^N倍。
7.根据权利要求1所述的存储器,其中所述控制器经配置以使所述存储器产生流过所述多个串联连接的存储器单元串的电流包括所述控制器经配置以使所述存储器:
对于所述多个串联连接的存储器单元串中所述被乘数的所述多个数字中的相应数字具有第一逻辑电平的每一串联连接的存储器单元串,激活所述串联连接的存储器单元串中的每一存储器单元;及
对于所述多个串联连接的存储器单元串中所述被乘数的所述多个数字中的相应数字具有不同于所述第一逻辑电平的第二逻辑电平的每一串联连接的存储器单元串,取消激活所述串联连接的存储器单元串的每一存储器单元。
8.一种存储器,其包括:
多个数据线;
共同源极;
乘法累加MAC寄存器,其包括多个部分乘积寄存器及累加寄存器;
模数转换器ADC,其具有连接到所述共同源极的输入,且具有连接到所述MAC寄存器的输出;
多个串联连接的存储器单元串,其中所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串选择性地连接到所述多个数据线中的相应数据线,且选择性地连接到所述共同源极,且其中所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串对应于具有N个向量的被乘数矩阵的对应向量的对应元素的相应数字,其中N为大于或等于1的整数值;
多个存取线,其中所述多个存取线中的每一存取线连接到所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串的相应存储器单元的控制栅极;及
控制器,其经配置以使所述存储器:
对于所述被乘数矩阵的第一向量的一或多个元素中的元素:
产生流过所述多个串联连接的存储器单元串的电流,所述电流具有指示所述第一向量的所述元素的值乘以具有一或多个数字的乘数的数字的电流电平;及
将所述第一向量的所述元素的所述电流电平转换为指示所述第一向量的所述元素的所述值及量值乘以所述乘数的所述数字的相应数字值。
9.根据权利要求8所述的存储器,其中所述乘数的所述数字是乘数矩阵的向量的元素的数字,其中所述乘数矩阵具有N个向量,且其中所述控制器经进一步配置以使所述存储器:
对于每一整数值a=1到N:
对于每一整数值b=1到N:
确定所述被乘数矩阵的第a向量与所述乘数矩阵的第b向量的向量点积;其中所述控制器经配置以使所述存储器确定所述被乘数矩阵的所述第a向量与所述乘数矩阵的所述第b向量的所述向量点积包括所述控制器经配置以使所述存储器确定被乘数矩阵的所述第a向量的一或多个元素中的每一元素与所述乘数矩阵的所述第b向量的一或多个元素的其对应元素的相应乘积,且对所述相应乘积求和;
其中所述控制器经配置以使所述存储器确定所述被乘数矩阵的所述第a向量的所选择元素与所述乘数矩阵的所述第b向量的所述一或多个元素中的其对应元素的所述相应乘积包括:所述控制器经配置以使所述存储器确定所述被乘数矩阵的所述第a向量的所述所选择元素与所述乘数矩阵的所述第b向量的其对应元素的每一数字的相应乘法部分乘积,且对所述相应乘法部分乘积求和;且
其中所述控制器经配置以使所述存储器确定所述被乘数矩阵的所述第a向量的所述所选择元素与所述乘数矩阵的所述第b向量的其对应元素的所选择数字的所述相应乘法部分乘积包括所述控制器经配置以使所述存储器:
产生流过所述多个串联连接的存储器单元串的电流,所述电流具有指示所述被乘数矩阵的所述第a向量的所述所选择元素的值乘以所述乘数矩阵的所述第b向量的其对应元素的所述所选择数字的相应电流电平;及
将所述被乘数矩阵的所述第a向量的所述所选择元素及所述乘数矩阵的所述第b向量的其对应元素的所述所选择数字的所述相应电流电平转换为指示所述被乘数矩阵的所述第a向量的所述所选择元素的所述值及量值乘以所述乘数矩阵的所述第b向量的其对应元素的所述所选择数字的相应数字值。
10.根据权利要求9所述的存储器,其中所述被乘数矩阵的每一向量具有N个元素,其中所述乘数矩阵的每一向量具有N个元素,且其中所述控制器经配置以使所述存储器确定所述被乘数矩阵的所述第a向量与所述乘数矩阵的所述第b向量的所述向量点积包括所述控制器经配置以使所述存储器:
对于每一整数值k=1到N:
确定所述被乘数矩阵的所述第a向量的第k元素与所述乘数矩阵的所述第b向量的对应第k元素的乘积;及
对所述被乘数矩阵的所述第a向量的所述N个元素与所述乘数矩阵的所述第b向量的其对应元素的所述乘积求和。
11.根据权利要求10所述的存储器,其中所述控制器经配置以使所述存储器确定所述被乘数矩阵的所述第a向量的所述第k元素与所述乘数矩阵的所述第b向量的所述第k元素的所述乘积包括所述控制器经配置以使所述存储器:
对于每一整数值d=1到D,其中D等于所述乘数矩阵的所述第b向量的所述对应第k元素的数字的数量:
确定所述被乘数矩阵的所述第a向量的所述第k元素与所述乘数矩阵的所述第b向量的所述第k元素的第d数字的乘法部分乘积;及
对所述乘数矩阵的所述第b向量的所述第k元素的所述D个数字与所述被乘数矩阵的所述第a向量的所述第k元素的所述乘法部分乘积求和。
12.根据权利要求11所述的存储器,其中所述被乘数矩阵的所述第a向量的所述第k元素对应于所述被乘数矩阵的所述第a向量的所述所选择元素,其中所述乘数矩阵的所述第b向量的所述第k元素的所述第d数字对应于与所述被乘数矩阵的所述第a向量的所述所选择元素对应的所述乘数矩阵的所述第b向量的所述元素的所述所选择数字,且其中所述控制器经配置以使所述存储器确定所述被乘数矩阵的所述第a向量的所述所选择元素与所述乘数矩阵的所述第b向量的其对应元素的所述所选择数字的所述乘法部分乘积包括所述控制器经配置以使所述存储器:
将一组控制信号施加到多个存取线,所述一组控制信号经配置以激活对应于所述被乘数矩阵的所述第a向量的所述所选择元素的具有第一逻辑电平的相应数字的所述多个串联连接的存储器单元串的存储器单元,激活不对应于所述被乘数矩阵的所述第a向量的所述所选择元素的任何数字的所述多个串联连接的存储器单元串的存储器单元,且取消激活对应于所述被乘数矩阵的所述第a向量的所述所选择元素的具有不同于所述第一逻辑电平的第二逻辑电平的相应数字的所述多个串联连接的存储器单元串的存储器单元;
将控制信号施加到连接到具有指示所述乘数矩阵的所述第b向量的所述对应元素的所述所选择数字的值的电压电平的所述多个串联连接的存储器单元串的所述多个数据线;及
将在所述ADC的所述输入接收的所得电流电平转换为对应于所述被乘数矩阵的所述第a向量的所述所选择元素与所述乘数矩阵的所述第b向量的所述对应元素的所述所选择数字的所述乘法部分乘积的数字值。
13.根据权利要求12所述的存储器,其中所述乘数矩阵的所述第b向量的所述对应元素的所述所选择数字具有所述第一逻辑电平。
14.根据权利要求12所述的存储器,其中施加到所述多个数据线的所述控制信号具有指示所述乘数矩阵的所述第b向量的所述对应元素的所述所选择数字的所述值及量值两者的电压电平。
15.一种存储器,其包括:
多个数据线;
共同源极;
乘法累加MAC寄存器,其包括多个部分乘积寄存器及累加寄存器;
模数转换器ADC,其具有连接到所述共同源极的输入,且具有连接到所述MAC寄存器的输出;
多个串联连接的存储器单元串,其中所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串选择性地连接到所述多个数据线中的相应数据线,且选择性地连接到所述共同源极,且其中所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串对应于被乘数的多个数字中的相应数字;
多个存取线,其中所述多个存取线中的每一存取线连接到所述多个串联连接的存储器单元串中的每一串联连接的存储器单元串的相应存储器单元的控制栅极;及
控制器,其经配置以使所述存储器:
将一组控制信号施加到多个存取线,所述一组控制信号经配置以激活对应于所述被乘数的具有第一逻辑电平的相应数字的所述多个串联连接的存储器单元串的存储器单元,激活不对应于所述被乘数的任何数字的所述多个串联连接的存储器单元串的存储器单元,且取消激活对应于所述被乘数的具有不同于所述第一逻辑电平的第二逻辑电平的相应数字的所述多个串联连接的存储器单元串的存储器单元;
当所述多个串联连接的存储器单元串连接到所述共同源极时,将控制信号施加到连接到具有指示乘数的数字的值的电压电平的所述多个串联连接的存储器单元串的所述多个数据线;及
将在所述多个串联连接的存储器单元串连接到所述共同源极及所述ADC的所述输入时在所述ADC的所述输入处由施加所述一组控制信号到所述多个存取线以及施加所述控制信号到所述多个数据线产生的电流电平转换为对应于所述被乘数乘以所述乘数的所述数字的值的相应数字值。
16.根据权利要求15所述的存储器,其中所述乘数具有D个数字,且其中所述控制器经进一步配置以使所述存储器:
对于每一整数值d=1到D:
响应于所述乘数的所述第d数字具有所述第一逻辑电平:
将一组控制信号施加到所述多个存取线,所述一组控制信号经配置以激活对应于所述被乘数具有所述第一逻辑电平的的相应数字的所述多个串联连接的存储器单元串的存储器单元,激活不对应于所述被乘数的任何数字的所述多个串联连接的存储器单元串的存储器单元,且取消激活对应于所述被乘数的具有不同于所述第一逻辑电平的第二逻辑电平的相应数字的所述多个串联连接的存储器单元串的存储器单元;
当所述多个串联连接的存储器单元串连接到所述共同源极时,将相应控制信号施加到连接到具有指示所述乘数的所述第d数字的值的电压电平的所述多个串联连接的存储器单元串的所述多个数据线;
将在所述多个串联连接的存储器单元串连接到所述共同源极及所述ADC的所述输入时在所述ADC的所述输入处由施加所述一组控制信号到所述多个存取线以及施加所述控制信号到所述多个数据线产生的相应电流电平转换为对应于所述被乘数与所述乘数的所述第d数字的相应乘法部分乘积的相应数字值;及
将所述被乘数与所述乘数的所述第d数字的所述相应乘法部分乘积存储到所述MAC寄存器的所述多个部分乘积寄存器的相应部分乘积寄存器;及
对所述MAC寄存器的所述多个部分乘积寄存器求和,并将所述和存储到所述MAC寄存器的所述累加寄存器。
17.根据权利要求16所述的存储器,其中所述控制器经配置以使所述存储器响应于所述乘数的所述第d数字具有所述第一逻辑电平而执行动作包括所述控制器经配置以使所述存储器响应于所述乘数的所述第d数字具有所述第一逻辑电平或具有所述第二逻辑电平而执行所述动作。
18.根据权利要求16所述的存储器,其中所述控制器经进一步配置以使所述存储器:响应于所述乘数的所述第d数字具有所述第二逻辑电平,将零存储到所述MAC寄存器的所述多个部分乘积寄存器中的相应部分乘积寄存器。
19.根据权利要求18所述的存储器,其中所述控制器经配置以使所述存储器将所述零存储到所述相应部分乘积寄存器包括所述控制器经配置以使所述存储器将所述零存储到所述相应部分乘积寄存器,而不将相应控制信号施加到连接到具有指示所述乘数的具有所述第二逻辑电平的所述第d数字的值的电压电平的所述多个串联连接的存储器单元串的所述多个数据线。
20.根据权利要求19所述的存储器,其中所述控制器经配置以使所述存储器将所述零存储到所述相应部分乘积寄存器而不将所述相应控制信号施加到连接到所述多个串联连接的存储器单元串的所述多个数据线进一步包括所述控制器经配置以使所述存储器将所述零存储到所述相应部分乘积寄存器而不将所述一组控制信号施加到所述多个存取线。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202363590860P | 2023-10-17 | 2023-10-17 | |
| US63/590,860 | 2023-10-17 | ||
| US18/757,909 | 2024-06-28 | ||
| US18/757,909 US20250124102A1 (en) | 2023-10-17 | 2024-06-28 | Vector element multiplication in nand memory |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN119851703A true CN119851703A (zh) | 2025-04-18 |
Family
ID=95340608
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202411026966.2A Pending CN119851703A (zh) | 2023-10-17 | 2024-07-30 | Nand存储器中的向量元素乘法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20250124102A1 (zh) |
| CN (1) | CN119851703A (zh) |
-
2024
- 2024-06-28 US US18/757,909 patent/US20250124102A1/en active Pending
- 2024-07-30 CN CN202411026966.2A patent/CN119851703A/zh active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| US20250124102A1 (en) | 2025-04-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12056599B2 (en) | Methods of performing processing-in-memory operations, and related devices and systems | |
| CN108734271B (zh) | 神经形态权重单元及其形成的方法以及人工神经网络 | |
| US10346347B2 (en) | Field-programmable crossbar array for reconfigurable computing | |
| US11328204B2 (en) | Realization of binary neural networks in NAND memory arrays | |
| US20200311512A1 (en) | Realization of binary neural networks in nand memory arrays | |
| Song et al. | Pipelayer: A pipelined reram-based accelerator for deep learning | |
| Wei et al. | Trends and challenges in the circuit and macro of RRAM-based computing-in-memory systems | |
| US11568200B2 (en) | Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference | |
| CN111985607A (zh) | 运用于类神经网络系统的乘积累加电路的相关控制电路 | |
| TWI858535B (zh) | 記憶體系統及記憶體陣列的操作方法 | |
| Luo et al. | AILC: Accelerate on-chip incremental learning with compute-in-memory technology | |
| Tsai et al. | RePIM: Joint exploitation of activation and weight repetitions for in-ReRAM DNN acceleration | |
| Kang et al. | S-FLASH: A NAND flash-based deep neural network accelerator exploiting bit-level sparsity | |
| CN115461758A (zh) | 训练神经网络的存储器装置 | |
| Liu et al. | An energy-efficient mixed-bit CNN accelerator with column parallel readout for ReRAM-based in-memory computing | |
| CN119339766A (zh) | 用于乘法累加运算的三维nor存储器装置 | |
| Liu et al. | Era-bs: Boosting the efficiency of reram-based pim accelerator with fine-grained bit-level sparsity | |
| Chen | PUFFIN: an efficient DNN training accelerator for direct feedback alignment in FeFET | |
| CN108154226B (zh) | 一种使用模拟计算的神经网络芯片 | |
| US20250362875A1 (en) | Compute-in-memory devices and methods of operating the same | |
| Ali et al. | MOL-based in-memory computing of binary neural networks | |
| CN119851703A (zh) | Nand存储器中的向量元素乘法 | |
| CN119252308A (zh) | 针对矩阵向量乘法使用多支柱存储器单元的存储器装置 | |
| Qu et al. | A coordinated model pruning and mapping framework for rram-based dnn accelerators | |
| US12032959B2 (en) | Non-volatile memory die with latch-based multiply-accumulate components |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication |