技术领域
[0003] 本文中公开的至少一些实施例大体上涉及存储器装置且更特定来说(但不限于),涉及基于位有效性使用具有不同偏压电平的存储器胞元执行乘法的存储器装置。
相关背景技术
[0004] 图像及其它传感器可产生大量数据。将某些类型的数据从传感器传输到通用微处理器(例如中央处理单元(CPU))以在一些应用程序中进行处理是低效的。举例来说,将图像数据从图像传感器传输到微处理器来进行图像分割、物体辨识、特征提取等是低效的。
[0005] 一些图像处理可包含涉及使元素列或矩阵乘法累加的密集计算。已开发一些专用电路来加速乘法及累加运算。举例来说,乘法器‑累加器(MAC单元)可使用一组并联计算逻辑电路来实施以实现高于通用微处理器的计算性能。
具体实施方式
[0042] 以下公开内容描述使用存储器胞元的逻辑状态执行乘法的存储器装置的各种实施例。存储器装置可例如存储由主机装置(例如自主车辆的计算装置或存取存储于存储器装置中的数据的另一计算装置)使用的数据。在一个实例中,存储器装置是安装于电动车中的固态驱动器。
[0043] 人工智能(AI)加速应用正快速增长。深度学习技术已在此兴起中扮演关键角色且在例如图像分类、物体检测、语音辨识、自然语言处理、推荐系统、自动生成及机器人等的各种应用中取得成功。许多领域特定深度学习加速器(DLA)(例如GPU、TPU及嵌入式NPU)已被引入用于提供从云到边缘的深度神经网络(DNN)所需的高效实施方案。然而,由于数据来回频繁移动于深度学习中的计算单元与存储器之间,有限存储器带宽仍是一个关键挑战,特别是对于能量受限系统及应用(例如边缘AI)。
[0044] 常规冯·诺依曼(Von‑Neumann)计算机架构已用专门用于串行处理的处理器芯片及为了高密度存储器而优化的DRAM开发。这两个装置之间的接口是一主要瓶颈,其带来延时及带宽限制且增加相当大功耗开销。随着AI应用对更高准确度及更高速度的需求不断增长,开发及实施具有巨量权值及激活的更大DNN模型。关于芯片间数据移动的存储器带宽及功耗的所得瓶颈是重要技术问题。
[0045] 为了解决这些及其它技术问题,存储器装置集成存储器及处理。在一个实例中,存储器及推理计算处理集成于相同集成电路装置中。在一些实施例中,存储器装置是具有图像感测像素阵列、存储器胞元阵列及使用存储器胞元阵列对来自图像传感器的图像数据执行推理计算的一或多个电路的集成电路装置。在一些实施例中,存储器装置包含其它类型的传感器(例如LIDAR、雷达、声音)或与所述其它类型的传感器一起使用。
[0046] 矩阵向量乘法的现存方法使用数字逻辑门。与下文描述的各种实施例相比,数字逻辑实施方案更复杂、消耗更多硅面积且耗散更多功率。这些实施例有效地将乘法简化为可在阵列中并行化的存储器存取功能。累加功能由连接这些存储器元件的导线实施,这也可在阵列中并行化。通过将这两个特征组合于阵列中,可比使用数字逻辑门的方法更高效地执行矩阵向量乘法。
[0047] 在一个实施例中,图像传感器经配置有模拟能力以通过使用矩阵向量乘法来支持推理计算,例如人工神经网络的计算。图像传感器可实施为具有图像传感器芯片及存储器芯片的集成电路装置。存储器芯片可具有经配置以支持乘法及累加运算的3D存储器阵列。集成电路装置包含经配置以处理来自图像传感器芯片的图像及操作存储器芯片中的存储器胞元执行乘法及累加运算的一或多个逻辑电路。
[0048] 存储器芯片可具有多层存储器胞元。每一存储器胞元可经编程以存储整数权值的二进制表示的位。每一输入线可根据整数的位而被施加电压。存储器胞元列可用于存储权值矩阵的位;且一组输入线可用于控制电压驱动器根据输入向量的位将读取电压施加于存储器胞元行上。
[0049] 用于乘法及累加运算的存储器胞元的阈值电压或状态可经编程使得通过经受预定读取电压的存储器胞元的电流是表示存储于存储器胞元中的1值的预定量或可忽略不计以表示存储于存储器胞元中的0值。当预定读取电压未被施加时,通过存储器胞元的电流可忽略不计,无论存储于存储器胞元中的值为何。由于配置,通过存储器胞元的电流对应于1位权值(存储于存储器胞元中)乘以1位输入(对应于由1位输入控制的电压驱动器驱动的预定读取电压的存在或不存在)的结果。
[0050] 存储器胞元的输出电流(表示存储于存储器胞元中的一列1位权值分别乘以一列1位输入的结果)连接到共同线用于加总。共同线中的加总电流是预定量的倍数;且倍数可使用模/数转换器或其它数字转换器来数字化及确定。可对权值的不同有效位及输入的不同有效位执行1位与1位乘法及累加的此类结果。不同有效位的结果可经移位以应用相应有效位的权值进行加总以获得多位权值与多位输入乘法及累加的结果,如下文进一步论述。
[0051] 使用执行经由存储器胞元阵列实施的乘法及累加运算的能力,逻辑电路可经配置以执行推理计算,例如人工神经网络的计算。
[0052] 存储器装置使用存储器胞元的逻辑状态执行乘法的各种实施例在下文描述。存储器装置通常具有配置成阵列的存储器胞元,其中每一存储器胞元经编程以例如允许在施加预定电压区中的电压时通过的一定量的电流表示第一逻辑状态(例如存储于存储器胞元中的第一值)或允许可忽略不计电流量表示第二逻辑状态(例如存储于存储器胞元中的第二值)。
[0053] 存储器装置基于以数字方式施加电压来执行计算,呈是否施加输入电压来产生电流用于在线(例如存储器阵列的位线)上加总的形式。线上的总电流将是以第一值编程的胞元允许的电流量的倍数。在一个实例中,模/数转换器用于将电流转换成逐位乘法的总和的数字结果。执行逐位乘法及将这些延伸到涉及多个位的乘法的各种实施方案在下文描述。
[0054] 阵列中的存储器胞元通常可为各种类型。实例包含NAND或NOR快闪存储器胞元及相变存储器(PCM)胞元。在一个实例中,PCM胞元是硫属化物存储器胞元。在一个实例中,使用呈NAND及NOR存储器配置的浮动门或电荷阱存储器装置。
[0055] NAND快闪存储器胞元及硫属化物存储器胞元在其阈值电压附近具有不同电流特性。硫属化物存储器胞元具有骤回行为,且胞元的电压‑电流(V‑I)曲线跨阈值电压不连续。相比之下,NAND快闪存储器胞元展现连续行为,但胞元的电流通常在其阈值电压区附近快速增大。
[0056] 在使用硫属化物存储器胞元的各种实施例中,通过在亚阈值区中操作硫属化物存储器胞元来执行乘法及其它处理。这将避免任何存储器胞元超过阈值或急变,这通常会妨碍正确乘法(例如,由于与急变相关联的非期望大输出电流)。
[0057] 在一个实施例中,存储器装置(例如集成电路装置)包含具有存储器胞元的存储器胞元阵列。每一存储器胞元可编程以存储用于执行乘法的相应权值。集成电路装置还包含经配置以将输入电压施加于存储器胞元用于执行乘法的电压驱动器。输入电压表示乘以每一存储器胞元的相应权值的输入,且电压经施加使得存储器胞元的操作在乘法期间保持于亚阈值模式中。
[0058] 集成电路装置具有耦合到存储器胞元的位线(或其它共同线)。位线经配置以加总来自存储器胞元中的每一者的由施加输入电压导致的输出电流。集成电路装置具有经配置以基于加总输出电流产生乘法的结果的数字转换器。
[0059] 在一个实施例中,存储器装置使用硫属化物或其它类型的存储器胞元(例如NAND胞元)实施无符号1位与1位乘法。每一存储器胞元可经编程到“1状态”,使得当跨存储器胞元(例如,跨电阻存储器胞元的两个端子)施加电压V时,预定电流量可通过存储器胞元。替代地,存储器胞元可经编程到“0状态”,使得当施加相同电压V时,仅可忽略不计电流量可通过存储器胞元。
[0060] 为了避免骤回行为的可操作性问题,当使用硫属化物存储器胞元时,期望仅在存储器胞元的亚阈值区中施加电压V。在一个实例中,外加电压低于但接近编程到“1状态”的每一存储器胞元的阈值/急变电压。一般来说,存储器胞元可根据需要在任何类型的胞元(例如其它相变存储器胞元或NAND胞元)的亚阈值模式中操作。然而,并非所有实施例都需要亚阈值模式操作。
[0061] 因此,存储器胞元可经编程到“1状态”或“0状态”以分别表示“1”或“0”的存储权值。
[0062] V的输入电压可用于表示“1”的输入;且0的输入电压可用于表示“0”的输入。替代地,当另一电压低于V但仅引起可忽略不计电流量通过存储器胞元(无论存储器胞元的编程状态为何)时,电压可用于表示“0”的输入。
[0063] 当经配置以表示上述1或0的输入的电压施加于编程到“1状态”或“0状态”以表示上文论述的权值1或0的存储器胞元上时,通过存储器胞元的电流量是预定量(表示“1”的输出)或可忽略不计量(表示“0”的输出)。此外,输入、权值及输出关系满足1位输入与1位权值的乘法以在输入及权值的所有可能变化中产生1位输出。
[0064] 因此,存储器胞元用于经由经编程以存储1位权值(例如,以上文论述的方式)、施加输入电压以表示1位输入(例如,以上文论述的方式)来执行无符号1位与多位乘法及根据感测通过存储器胞元的电流(来自存储器胞元的输出电流)是否为预定量来确定1位输出。
[0065] 由来自存储器胞元的输出电流表示的结果的加总可经由将电流连接到共同线(例如位线)来实施。结果的加总可经数字化以提供数字输出。在一个实例中,模/数转换器用于测量作为预定电流量的倍数的总和及提供数字输出。
[0066] 在一个实施例中,存储器装置实施无符号1位与多位乘法。多位权值可经由多个存储器胞元实施。存储器胞元中的每一者经配置以存储多位权值的位中的一者,正如上文描述。
[0067] 由1位输入表示的电压可单独施加于多个存储器胞元以获得无符号1位与1位乘法的结果,如上文描述。
[0068] 每一存储器胞元具有在多位权值的二进制表示中对应于其存储位的位置。其数字化输出(例如,来自来自共同位线上的存储器胞元的输出电流的加总)可根据其在二进制表示中的位置来左移以获得移位结果。举例来说,存储多位权值的最低有效位的存储器胞元的数字化输出移位0个位;存储多位权值的第二最低有效位的存储器胞元的数字化输出移位1个位;存储多位权值的第三最低有效位的存储器胞元的数字化输出移位2个位;等等。移位结果可经加总以获得1位输入乘以存储于多个存储器胞元中的多位权值的结果。
[0069] 由来自存储器胞元组(每一组表示单独多位权值)的输出电流表示的结果的加总可针对多位权值中的不同位位置经由连接于共同线中的电流来逐位加总。举例来说,来自存储最低有效位的存储器胞元的电流连接到第一共同线以形成从最低有效位导出的结果的加总输出;来自存储第二最低有效位的存储器胞元的电流连接到第二共同线以形成从第二最低有效位导出的结果的加总输出;来自存储第三最低有效位的存储器胞元的电流连接到第三共同线以形成从第三最低有效位导出的结果的加总输出;等等。加总输出可转换成数字形式且接着经移位用于以数字形式加总。替代地,相应电流可在数字化之前按比例缩放。
[0070] 如上文提及,存储器胞元可根据需要在任何类型的胞元(例如硫属化物或其它相变存储器胞元或NAND胞元)的亚阈值模式中操作。并非所有实施例都需要亚阈值模式操作。
[0071] 在一个实施例中,存储器装置实施时间片无符号多位与多位乘法。由具有预定数目个位(例如4个位)的二进制数表示的输入可通过相同预定数目个时钟循环来一次一位地施加(例如,在时刻T、T1、T2等施加,如在图4中)。每一循环产生输出,如上文针对无符号1位与多位乘法所描述。
[0072] 在每一时钟循环内获得的无符号1位与多位乘法(例如,如上文论述)的结果可根据应用于时钟循环中的输入的位的位置来左移。举例来说,应用输入的最低有效位的时钟循环的结果未移位;第二最低有效位的结果左移1个位;第三最低有效位的结果左移2个位;等等。来自时钟循环的移位结果以数字形式加总。
[0073] 如上文提及,存储器胞元可根据需要在任何类型的胞元(例如硫属化物或其它相变存储器胞元或NAND胞元)的亚阈值模式中操作。并非所有实施例都需要亚阈值模式操作。
[0074] 在一个实施例中,存储器装置使用脉宽调制(PWM)来执行无符号多位与多位乘法。输入电压脉冲经施加于多个存储器胞元以产生电流输出,如上文描述。电压脉冲的宽度(例如,例如5纳秒、10纳秒或15纳秒的时长)与多位输入成比例。在一个实施例中,输入电压脉冲是恒定电压。
[0075] 来自每一存储器胞元的输出电流随时间积分以获得乘以存储于相应存储器胞元中的1位权值的输入。来自每一存储器胞元的结果可经数字化为在对应于“1”的输入的电压脉冲的宽度的时间单位内积分的电流预定量的倍数。数字化输出根据其在多位权值中的位置来移位以用于加总。随时间电流积分可经由对电容器充电或通过其它方法来实施。在一个实施例中,电流积分使用各种类型的积分器中的任何者执行。
[0076] 如上文提及,存储器胞元可根据需要在任何类型的胞元(例如硫属化物或其它相变存储器胞元或NAND胞元)的亚阈值模式中操作。并非所有实施例都需要亚阈值模式操作。
[0077] 图1展示根据一个实施例的具有图像感测像素阵列111、存储器胞元阵列113及用于执行推理计算的电路的集成电路装置101。在图1中,集成电路装置101具有含逻辑电路121及123的集成电路裸片109、含图像感测像素阵列111的集成电路裸片103及含存储器胞元阵列113的集成电路裸片105。
[0078] 在一个实例中,具有逻辑电路121及123的集成电路裸片109是逻辑芯片;具有图像感测像素阵列111的集成电路裸片103是图像传感器芯片;且具有存储器胞元阵列113的集成电路裸片105是存储器芯片。
[0079] 在图1中,具有存储器胞元阵列113的集成电路裸片105进一步包含电压驱动器115及电流数字转换器117。存储器胞元阵列113经连接使得由存储器胞元响应于由电压驱动器115施加的电压而产生的电流在存储器胞元列的阵列113中加总(例如,如图2及图3中说明);且加总电流经数字化以产生逐位乘法的总和。推理逻辑电路123可经配置以指示电压驱动器115根据一列输入施加读取电压及执行移位及加总以产生一列或矩阵权值乘以输入列及累加的结果。
[0080] 推理逻辑电路123可进一步经配置以根据存储于存储器胞元阵列113中的权值(例如人工神经网络的计算)及从由图像感测像素阵列111产生的图像数据导出的输入来执行推理计算。任选地,推理逻辑电路123可包含可执行一组指令以控制推理计算的可编程处理器。替代地,推理计算经配置用于特定人工神经网络,其中某些方面可经由存储于存储器胞元阵列113中的权值来调整。任选地,推理逻辑电路123经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)或可编程微处理器的核心来实施。
[0081] 在一个实施例中,推理逻辑电路123包含控制器124。在一个实例中,控制器124经由接口125管理与主机系统的通信。在一个实例中,控制器124使用存储器胞元阵列113来执行带符号或无符号乘法。在一个实施例中,控制器124基于用作乘法的输入的数据的类型来选择要执行的带符号或无符号乘法中的任一者。在一个实例中,控制器124响应于确定用于乘法的输入带符号而选择带符号乘法。
[0082] 在图1中,具有存储器胞元阵列113的集成电路裸片105具有底面133;且具有推理逻辑电路123的集成电路裸片109具有顶面134的一部分。两个表面133及134可经由接合来连接以提供表面133及134上的金属部分之间的互连件107的一部分。
[0083] 类似地,具有图像感测像素阵列111的集成电路裸片103具有底面131;且具有推理逻辑电路123的集成电路裸片109具有其顶面132的另一部分。两个表面131及132可经由接合来连接以提供表面131及132上的金属部分之间的互连件107的一部分。
[0084] 阵列111中的图像感测像素可包含经配置以响应于接收于元件中的光的强度而产生信号的光敏元件。举例来说,可使用使用互补金属氧化物半导体(CMOS)技术或电荷耦合装置(CCD)技术实施的图像感测像素。
[0085] 在一些实施方案中,图像处理逻辑电路121经配置以预处理来自图像感测像素阵列111的图像以将经处理图像作为输入提供到由推理逻辑电路123控制的推理计算。
[0086] 任选地,图像处理逻辑电路121还可使用经由存储器胞元阵列113提供的乘法及累加函数。
[0087] 在一些实施方案中,互连件107包含用于将来自图像感测像素阵列111的图像数据写入到存储器胞元阵列113的一部分用于由图像处理逻辑电路121或推理逻辑电路123进一步处理或用于经由接口125进行检索的导线。
[0088] 推理逻辑电路123可将推理计算的结果缓冲于存储器胞元阵列113的一部分中。
[0089] 集成电路装置101的接口125可经配置以支持存储器存取协议或存储存取协议或其任何组合。因此,外部装置(例如处理器、中央处理单元)可将命令发送到接口125以存取由存储器胞元阵列113提供的存储容量。
[0090] 举例来说,接口125可经配置以支持计算机总线上的连接及通信协议,例如外围组件互连快速(PCIe)总线、串行高级技术附接(SATA)总线、通用串行总线(USB)总线、计算快速链路等。在一些实施例中,接口125可经配置以包含例如球栅阵列(BGA)SSD的固态驱动器(SSD)的接口。在一些实施例中,接口125经配置以包含例如双倍数据速率(DDR)存储器模块、双列直插式存储器模块等的存储器模块的接口。接口125可经配置以支持通信协议,例如根据非易失性存储器快速(NVMe)、非易失性存储器主机控制器接口规范(NVMHCIS)等的协议。
[0091] 从与接口125通信的装置的视角看,集成电路装置101可呈现为存储器子系统。通过接口125,外部装置(例如处理器、中央处理单元)可存取存储器胞元阵列113的存储容量。举例来说,外部装置可存储及更新推理逻辑电路123的权值矩阵及指令、检索由图像感测像素阵列111产生且由图像处理逻辑电路121处理的图像及检索由推理逻辑电路123控制的推理计算的结果。
[0092] 在图1中,例如,接口125定位于集成电路装置101的底侧处,而图像传感器芯片定位于集成电路101的顶侧处以接收入射光用于产生图像。
[0093] 图1中的电压驱动器115可经控制以施加电压来对阵列113中的存储器胞元的阈值电压编程。存储于存储器胞元中的数据可由存储器胞元的编程阈值电压的电平表示。
[0094] 阵列113中的典型存储器胞元具有非线性电流与电压曲线。当存储器胞元的阈值电压经编程到第一电平以表示存储值1时,存储器胞元允许预定电流量在高于第一电平的预定读取电压施加于存储器胞元时通过。当预定读取电压未被施加(例如,外加电压是0)时,存储器胞元允许与预定电流量相比可忽略不计的电流量通过。
[0095] 另一方面,当存储器胞元的阈值电压经编程到高于预定读取电压的第二电平以表示存储值0时,存储器胞元允许可忽略不计电流量通过,无论预定读取电压是否被施加。因此,当权值位如上文所论述般存储于存储器中且输入位用于控制是否施加预定读取电压时,通过存储器胞元的作为预定电流量的倍数的电流量对应于存储权值位乘以输入位的数字结果。表示1位乘1位乘法的结果的电流可在经数字化用于移位及加总以执行多位权值与多位输入的乘法及累加之前以模拟形式加总,如下文进一步论述。
[0096] 图2展示根据一个实施例的一列权值位乘以一列输入位以提供累加结果的的计算。在图2中,一列存储器胞元207、217、…、227(例如,在集成电路装置101的存储器胞元阵列113中)可经编程以在表示每存储器胞元存储一个位的权值的电平处具有阈值电压。
[0097] 电压驱动器203、213、…、223(例如,在集成电路装置101的电压驱动器115中)经配置以根据其接收到的输入位201、211、…、221分别将电压205、215、…、225施加于存储器胞元207、217、…、227。
[0098] 举例来说,当输入位201具有1值时,电压驱动器203施加预定读取电压作为电压205,从而引起存储器胞元207在存储器胞元207具有在较低电平下编程的低于预定读取电压的阈值电压时输出预定电流量作为其输出电流209以表示存储权值1或在存储器胞元207具有在较高电平下编程的高于预定读取电压的阈值电压时输出可忽略不计电流量作为其输出电流209以表示存储权值0。
[0099] 然而,当输入位201具有0值时,电压驱动器203施加低于阈值电压的较低电平的电压(例如0)作为电压205(例如,不施加预定读取电压),从而引起存储器胞元207在其输出电流209处输出可忽略不计电流量,无论存储于存储器胞元207中的权值为何。因此,作为预定电流量的倍数的输出电流209表示存储于存储器胞元207中的权值位乘以输入位201的结果。
[0100] 类似地,通过存储器胞元217的作为预定电流量的倍数的电流219表示存储于存储器胞元217中的权值位乘以输入位211的结果;且通过存储器胞元227的作为预定电流量的倍数的电流229表示存储于存储器胞元227中的权值位乘以输入位221的结果。
[0101] 存储器胞元207、217、…、227的输出电流209、219、…、229连接到共同线241用于加总。在一个实例中,共同线241是位线。当加总输出电流时,恒定电压(例如接地或‑1V)维持于位线上。
[0102] 模/数转换器245的数字转换器233比较加总电流231与等于预定电流量的单位电流232以确定分别存储于存储器胞元207、217、…、227中的权值位的列分别乘以输入位201、211、…、221的列及乘法结果的加总的数字结果237。
[0103] 来自连接到线241的存储器胞元的可忽略不计电流量的总和小于单位电流232(例如预定电流量)。因此,来自存储器胞元的可忽略不计电流量的存在不更改结果237且在模/数转换器245的操作中可忽略不计。
[0104] 在图2中,施加于存储器胞元207、217、…、227的电压205、215、…、225表示数字化输入位201、211、…、221;存储器胞元207、217、…、227经编程以存储数字化权值位;且电流209、219、…、229表示数字化结果。
[0105] 结果237是不大于连接到线241的存储器胞元207、217、…、227的计数的整数。输出电流209、219、…、229的数字化形式可提高使用存储器胞元207、217、…、227实施的计算的准确度及可靠性。
[0106] 一般来说,涉及乘法及累加运算的权值可多于1个位。多列存储器胞元可用于存储权值的有效位(如图3中说明)以执行乘法及累加运算。
[0107] 图2中说明的电路可被视为经配置以对一列1位权值及一列1位输入进行操作的乘法器‑累加器单元。多个此类电路可并联连接以实施乘法器‑累加器单元以对一列多位权值及一列1位输入进行操作,如图3中说明。
[0108] 图2中说明的电路还可用于读取存储于存储器胞元207、217、…、227中的数据。举例来说,为了读取存储于存储器胞元207中的数据或权值,可将输入位211、…、221设置为0以引起存储器胞元217、…、227将可忽略不计电流量输出到线241(例如,作为位线)中。将输入位201设置为1以引起电压驱动器203施加预定读取电压。因此,来自数字转换器233的结果237提供存储于存储器胞元207中的数据或权值。类似地,存储于存储器胞元217中的数据或权值可经由施加1作为输入位211及施加0作为列中的剩余输入位来读取;且存储于存储器胞元227中的数据或权值可经由施加1作为输入位221及施加0作为列中的其它输入位来读取。
[0109] 一般来说,图2中说明的电路可用于选择存储器胞元207、217、…、227中的任何者用于读取或写入。电压驱动器(例如203)可施加编程电压脉冲(例如适合于一存储器胞元类型的一或多个脉冲或其它波形)来调整相应存储器胞元(例如207)的阈值电压以擦除数据、存储数据或权值等。
[0110] 图3展示根据一个实施例的一列多位权值乘以一列输入位以提供累加结果的计算。在图3中,呈二进制形式的权值250具有最高有效位257、第二最高有效位258、…、最低有效位259。有效位257、258、…、259可分别存储于阵列273中的数个列中的存储器胞元207、206、…、208中。权值250的有效位257、258、…、259将乘以由电压驱动器203(例如,如在图2中)施加于线281(例如字线)上的电压205表示的输入位201。
[0111] 类似地,存储器胞元217、216、…、218可用于存储与由电压驱动器213(例如,如在图2中)施加于线282(例如字线)上的电压215表示的下一输入位211相乘的下一权值的对应有效位;且存储器胞元227、226、…、228可用于存储与由电压驱动器223(例如,如在图2中)施加于线283(例如字线)上的电压225表示的输入位221相乘的权值的对应者。
[0112] 存储于阵列273中的相应行的存储器胞元中的权值(例如250)的最高有效位(例如257)乘以由电压205、215、…、225表示的输入位201、211、…、221且接着加总为线241中的电流231且使用数字转换器233数字化(如在图2中)以产生对应于权值的最高有效位的结果
237。
[0113] 类似地,存储于阵列273中的相应行的存储器胞元中的权值(例如250)的第二最高有效位(例如258)乘以由电压205、215、…、225表示的输入位201、211、…、221且接着加总为线242中的电流且经数字化以产生对应于第二最高有效位的结果236。
[0114] 类似地,存储于阵列273中的相应行的存储器胞元中的权值(例如250)的最低有效位(例如259)乘以由电压205、215、…、225表示的输入位201、211、…、221且接着加总为线243中的电流且经数字化以产生对应于最低有效位的结果238。
[0115] 最高有效位可左移1个位以具有与第二有效位相同的权值,第二有效位可进一步左移1个位以具有与下一有效位相同的权值。因此,可对根据权值(例如250)的最高有效位(例如257)的乘法及加总产生的结果237施加左移247一个位的运算;且加法运算246可施加于左移247的运算结果及根据权值(例如250)的第二最高有效位(例如258)的乘法及加总产生的结果236。左移(例如247、249)的运算可用于应用位(例如257、258、…)的权值以使用加法(例如246、…、248)运算进行加总以产生结果251。因此,结果251等于存储器胞元阵列273中的权值列乘以输入位201、211、…、221的列及累加乘法结果。
[0116] 一般来说,涉及乘法及累加运算的输入可多于1个位。举例来说,输入位列可一次一列地应用于存储于存储器胞元阵列273中的权值以获得一列权值乘以一列输入的结果及累加结果,如图4中说明。
[0117] 图3中说明的电路可用于读取存储于存储器胞元阵列273中的数据。举例来说,为了读取存储于存储器胞元207、206、…、208中的数据或权值250,输入位211、…、221可设置为0以引起存储器胞元217、216、…、218、…、227、226、…、228将可忽略不计电流量输出到线241、242、…、243(例如,作为位线)中。输入位201设置为1以引起电压驱动器203施加预定读取电压作为电压205。因此,来自连接到线241、242、…、243的数字转换器(例如233)的结果
237、236、…、238提供存储于存储器胞元207、206、…、208的行中的数据或权值250的位257、
258、…、259。此外,根据移位运算247、249、…及加法运算246、…、248计算的结果251提供呈二进制形式的权值250。
[0118] 一般来说,图3中说明的电路可用于选择存储器胞元阵列273的任何行用于读取。任选地,存储器胞元阵列273的不同列可由不同电压驱动器驱动。因此,行中的存储器胞元(例如207、206、…、208)可经编程以并行写入权值250的数据(例如,存储位257、258、…、
259)。
[0119] 图4展示根据一个实施例的使用多个时刻处的输入进行一列多位权值乘以一列多位输入以提供累加结果的计算。在图4中,输入(例如280)的有效位在多个时刻T、T1、…、T2应用于乘法器‑累加器单元270。
[0120] 举例来说,多位输入280可具有最高有效位201、第二最高有效位202、…、最低有效位204。在时间T,输入(例如280)的最高有效位201、211、…、221应用于乘法器‑累加器单元270以获得存储于存储器胞元阵列273中的权值(例如250)乘以位201、211、…、221的列及乘法结果的加总的结果251。
[0121] 举例来说,乘法器‑累加器单元270可以图3中说明的方式实施。乘法器‑累加器单元270具有经连接以施加表示输入位201、211、…、221的电压205、215、…、225的电压驱动器271。乘法器‑累加器单元270具有存储权值位的存储器胞元阵列273,如在图3中。乘法器‑累加器单元270具有用于转换加总于阵列273中的存储器胞元列的线241、242、…、243上的电流以输出结果237、236、…、238的数字转换器275。乘法器‑累加器单元270具有经连接以组合列结果237、236、…、238以提供结果251的移位器277及加法器279,如在图3中。
[0122] 类似地,在时间T1,输入(例如280)的第二最高有效位202、212、…、222应用于乘法器‑累加器单元270以获得存储于存储器胞元阵列273中的权值(例如250)乘以位202、212、…、222的向量及乘法结果的加总的结果253。
[0123] 类似地,在时间T2,输入(例如280)的最低有效位204、214、…、224应用于乘法器‑累加器单元270以获得存储于存储器胞元阵列273中的权值(例如250)乘以位202、212、…、222的向量及乘法结果的加总的结果255。
[0124] 可对根据输入(例如280)的最高有效位201、211、…、221的乘法及加总产生的结果251施加左移261一个位的运算;且加法运算262可经施加于左移261的运算的结果及根据输入(例如280)的第二最高有效位202、212、…、222的乘法及加总产生的结果253。左移(例如
261、263)运算可用于应用位(例如201、202、…)的权值以使用加法(例如262、…、264)运算进行加总以产生结果267。因此,结果267等于存储器胞元阵列273中的权值(例如250)分别乘以输入(例如280)列且接着加总。
[0125] 多个乘法器‑累加器单元270可并联连接以在一系列时刻T、T1、…、T2对与一列多位输入相乘的权值矩阵进行操作。
[0126] 图5展示根据一个实施例的使用一列多位输入的脉宽调制(PWM)进行一列多位权值250乘以所述输入以提供累加结果的计算。
[0127] 存储器胞元阵列273包含布置成列的各种存储器胞元,如所说明。每一存储器胞元可编程以存储多位权值250中的一者的相应位。每一存储器胞元具有在阵列中对应于其存储相应位的有效性(例如MSB、LSB)的位置。举例来说,存储器胞元207在对应于最高有效位257的阵列的列中,且存储器胞元208在对应于最低有效位259的列中,类似于如上文论述。
[0128] 电压驱动器经配置以将电压脉冲施加于存储器胞元。每一脉冲的宽度表示多位输入中的一者(例如,脉冲具有等于每一输入的二进制值的时长)。每一脉冲以恒定电压施加达对应于脉冲宽度的时间。
[0129] 举例来说,一列电压驱动器203、213、…、223(例如,如在图2中)可根据多位输入的列将电压205、215、…、225分别施加于存储器胞元207、217、…、227的列。电压呈各自具有表示多位输入中的相应者的宽度的电压脉冲的形式。电压还施加于存储器胞元的其它列,如所说明。
[0130] 线241耦合到各自存储第一有效性(例如MSB 257)的位的第一列存储器胞元。线241经配置以收集来自这些存储器胞元中的每一者的输出电流用于累加第一电荷。举例来说,来自存储器胞元207、217、…、227的列的输出电流由耦合到线241的积分器507以模拟形式累加。
[0131] 线242类似地收集来自各自存储小于第一有效性的第二有效性(例如第二MSB 258)的位的第二列存储器胞元中的每一者的输出电流。线242收集来自这些胞元的输出电流用于累加第二电荷。积分器506累加这些输出电流。
[0132] 线243耦合到各自存储小于第二有效性的第三有效性(例如LSB 259)的位的第三列存储器胞元。线243收集来自这些存储器胞元中的每一者的输出电流用于累加第三电荷。积分器508累加这些输出电流。
[0133] 逻辑电路(未展示)经配置以输出基于上述累加第一、第二及第三电荷确定的最终累加结果。逻辑电路包含例如上述移位器及加法器(未展示)以执行中间结果的移位及相加以提供最终累加结果。
[0134] 在一个实例中,积分器507、506、508包含将累加第一、第二及第三电荷转换成数字输出(例如结果537、536、538)的数字转换器。数字输出与上文描述类似地基于对应于每一数字输出的位有效性进行移位及相加。前述移位及相加的结果是来自多位权值列乘以多位输入列的最终累加结果。
[0135] 在一个实施例中,存储器胞元在亚阈值模式中操作。在一个实例中,存储器胞元是硫属化物或NAND或NOR快闪存储器胞元。外加电压经控制使得存储器胞元在乘法期间保持于亚阈值模式中。应注意,NAND或NOR存储器胞元在亚阈值模式中的操作与硫属化物存储器胞元不同地特性化。
[0136] 在一个实施例中,线241、242、243中的每一者耦合到相应电容器以累加来自线的电荷。
[0137] 在一个实施例中,具有NAND存储器胞元的存储器装置使用脉宽调制(PWM)来执行无符号多位与多位乘法。输入电压脉冲(例如电压205、215、225)经施加于多个存储器胞元(例如207、217、227、206、216、226等)以从每一存储器胞元产生输出电流。电压脉冲的宽度(例如5到100纳秒之间的时长)与相应多位输入成比例。输入电压脉冲是恒定电压(例如跨每一存储器胞元2到4V)。
[0138] 来自每一存储器胞元的输出电流随时间积分(例如,通过积分器507、506、508)以获得输入乘以存储于相应存储器胞元中的1位权值。来自每一存储器胞元的结果可经数字化为在对应于输入“1”的电压脉冲的宽度的时间单位内积分的预定电流量的倍数。数字化输出(例如结果537、536、538)根据其在多位权值250中的位置(例如MSB 257、…、LSB 259)进行移位以进行加总。
[0139] 随时间电流积分可经由使用输出电流对电容器(未展示)充电或使用除电容器之外的方法来实施。在一个实施例中,电流积分使用各种类型的积分器中的任何者执行。在一个实例中,每一积分器包含用于收集来自共同线(例如线241)的电荷的电容器,同时相应电压脉冲205、215、225经施加于具有连接到共同线的输出的存储器胞元(例如207、217、227)。
[0140] 图2到5中说明的乘法器‑累加器单元(例如270)可实施于图1中的集成电路装置101中。
[0141] 在一个实施方案中,存储器芯片(例如集成电路裸片105)包含用于执行乘法及累加运算的电压驱动器、数字转换器、移位器及加法器的电路。存储器芯片可进一步包含经配置以控制驱动器、数字转换器、移位器及加法器的操作执行图2到5中的操作的控制逻辑。
[0142] 推理逻辑电路123可经配置以使用存储器芯片(例如集成电路裸片105)的计算能力执行应用的推理计算,例如人工神经网络的推理计算。推理结果可存储于存储器胞元阵列113的一部分中以供外部装置经由集成电路装置101的接口125检索。
[0143] 任选地,电压驱动器、数字转换器、移位器、加法器及控制逻辑的至少一部分可配置于逻辑芯片的集成电路裸片109中。
[0144] 存储器胞元(例如阵列113的存储器胞元)可包含易失性存储器或非易失性存储器或两者。非易失性存储器的实例包含快闪存储器、基于与非(NAND)逻辑门、或非(NOR)逻辑门形成的存储器单元、相变存储器(PCM)、磁性存储器(MRAM)、电阻随机存取存储器、交叉点存储及存储器装置。交叉点存储器装置可使用无晶体管存储器元件,其中的每一者具有一起堆叠为一列的存储器胞元及选择器。存储器元件列经由在垂直方向上运行的两个导线层连接,其中一层的导线在一个方向上运行、在定位于存储器元件列上方的层中,且另一层的导线在另一方向上及在定位于存储器元件列下方的层中。可在两个层中的每一者上的一个导线的交叉点处个别选择每一存储器元件。交叉点存储器装置是快速及非易失性的且可用作用于处理及存储的统一内存池。非易失性存储器的另外实例包含只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)及电子可擦除可编程只读存储器(EEPROM)存储器等。易失性存储器的实例包含动态随机存取存储器(DRAM)及静态随机存取存储器(SRAM)。
[0145] 集成电路裸片105及集成电路裸片109可包含用于寻址存储器胞元阵列113中的存储器胞元的电路,例如用于将物理地址转换成控制信号以选择存储器胞元的一部分用于读取及写入的行解码器及列解码器。因此,外部装置可将命令发送到接口125以将权值(例如250)写入到存储器胞元阵列113中及从存储器胞元阵列113读取结果。
[0146] 在一些实施方案中,图像处理逻辑电路121也可将命令发送到接口125以将图像写入到存储器胞元阵列113中用于处理。
[0147] 图6展示根据一个实施例的集成电路装置中的计算方法。举例来说,图6的方法可使用图2到4的乘法及累加技术在图1的集成电路装置101中执行。
[0148] 图6的方法可由处理逻辑执行,处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如运行或执行于处理装置上的指令)或其组合。在一些实施例中,图6的方法至少部分由一或多个处理装置(例如图1的推理逻辑电路123的控制器124)执行。
[0149] 尽管以特定序列或顺序展示,但除非另外指定,否则过程的顺序可修改。因此,所说明实施例应被理解为仅作为实例,且所说明过程可以不同顺序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,不是每个实施例都需要所有过程。其它过程流程是可能的。
[0150] 在框601处,存储器胞元各自经编程以存储权值位用于执行乘法。在一个实例中,对存储器胞元阵列113的存储器胞元编程。在一个实例中,存储器胞元207、206、208经编程以存储不同位有效性的权值位。权值位对应于多位权值250。
[0151] 在框603处,将电压施加于存储器胞元。电压表示与由存储器胞元存储的权值位相乘的输入位。在一个实例中,电压驱动器施加输入电压205、215、225。
[0152] 在框605处,加总由施加电压引起的来自存储器胞元的输出电流。在一个实例中,输出电流使用线241收集及加总,如在图3中。
[0153] 在框607处,提供基于加总输出电流的数字结果。在一个实例中,加总输出电流用于产生图3的结果X 237。
[0154] 在一个实施例中,一种装置包括:存储器胞元阵列(例如113),其具有存储器胞元,其中每一存储器胞元可编程以存储相应权值用于执行乘法;电压驱动器(例如115),其经配置以将电压施加于存储器胞元用于执行乘法,电压表示与每一存储器胞元的相应权值相乘的输入,其中电压经施加使得存储器胞元的操作在乘法期间保持于亚阈值模式中;线,其耦合到存储器胞元,其中线经配置以加总来自存储器胞元中的每一者的输出电流;及数字转换器(例如电流数字转换器117),其经配置以基于加总输出电流产生乘法的结果。
[0155] 在一个实施例中,线是位线。
[0156] 在一个实施例中,存储器胞元在亚阈值模式中操作时不超过阈值(例如不急变)。
[0157] 在一个实施例中,每一存储器胞元经配置以:在存储器胞元具有经编程以表示1值的阈值电压时响应于外加电压而输出预定电流量;或在存储器胞元具有经编程以表示0值的阈值电压时响应于外加电压而输出可忽略不计电流量。
[0158] 在一个实施例中,可忽略不计电流量小于预定电流量的5%。
[0159] 在一个实施例中,存储器胞元中的一些具有经编程以表示1值的第一阈值电压,且外加电压小于第一阈值电压。
[0160] 在一个实施例中,外加电压比第一阈值电压小至少0.5伏。
[0161] 在一个实施例中,装置进一步包括接口(例如125),其可操作以使主机系统将数据写入到存储器胞元阵列中及从存储器胞元阵列读取数据。
[0162] 在一个实施例中,存储器胞元包含第一及第二存储器胞元;由第一存储器胞元存储的相应权值是多位权值的最高有效位(MSB);且由第二存储器胞元存储的相应权值是多位权值的最低有效位(LSB)。
[0163] 在一个实施例中,数字转换器经配置于模/数转换器中。
[0164] 在一个实施例中,存储器胞元中的每一者是硫属化物存储器胞元。
[0165] 在一个实施例中,一种方法包括:对存储器胞元阵列中的存储器胞元编程,其中每一存储器胞元经编程以存储相应权值位用于执行乘法;将电压施加于存储器胞元用于执行乘法,每一相应电压表示与每一存储器胞元的相应权值位相乘的相应输入位,其中电压经限制使得存储器胞元的操作保持于亚阈值模式中;加总由将电压施加于存储器胞元引起的输出电流;及基于加总输出电流提供数字结果。
[0166] 在一个实施例中,相应输入位是一列输入位;相应权值位是一列权值位,其在执行乘法时乘以输入位列;来自存储器胞元的输出电流在位线中加总;且数字结果通过将加总输出电流数字化为预定电流量的倍数来提供。
[0167] 在一个实施例中,每一相应存储器胞元经编程以具有:处于第一电平以表示第一值1的阈值电压;及处于高于第一电平的第二电平以表示第二值0的阈值电压;其中相应存储器胞元经配置以在将第一电平与第二电平之间的预定读取电压施加于存储器胞元时在存储第一值1时输出预定电流量或在存储第二值0时输出可忽略不计电流量。
[0168] 在一个实施例中,当相应输入位是0时,将低于第一电平的电压施加于对应存储器胞元;及当相应输入位是1时,将预定读取电压施加于对应存储器胞元。
[0169] 在一个实施例中,一种设备包括:存储器胞元阵列,其包括存储器胞元,其中每一存储器胞元可编程以存储多位权值的相应位,且每一存储器胞元具有在阵列中对应于其存储相应位的有效性(例如MSB、LSB)的位置;电压驱动器,其经配置以将相应电压施加于存储器胞元,其中每一相应电压表示1位输入,且其中电压经施加使得存储器胞元不超过阈值;第一线,其耦合到存储第一有效性(例如MSB)的相应位的第一存储器胞元,其中第一线经配置以加总来自第一存储器胞元中的每一者的第一输出电流;第二线,其耦合到存储第二有效性(例如LSB)的相应位的第二存储器胞元,其中第二有效性小于第一有效性,且第二线经配置以加总来自第二存储器胞元中的每一者的第二输出电流;及逻辑电路,其经配置以基于加总第一输出电流及加总第二输出电流提供累加结果(例如图3的结果Y 251)。
[0170] 在一个实施例中,设备进一步包括:至少一个数字转换器,其经配置以基于加总第一输出电流提供第一结果(例如结果X 237)及基于加总第二输出电流提供第二结果(例如结果X2 238);至少一个移位器,其经配置以至少使所述第一结果移位(例如,使所述MSB结果左移);及至少一个加法器,其经配置以通过至少使移位第一结果与第二结果相加来提供累加结果。
[0171] 在一个实施例中,第一结果左移1个位。
[0172] 在一个实施例中,累加结果是来自一列多位权值乘以一列输入位。
[0173] 在一个实施例中,存储器胞元是相变存储器胞元。
[0174] 在一个实施例中,一种设备包括:存储器胞元阵列,其包括存储器胞元,其中每一存储器胞元可编程以存储多位权值的相应位,且每一存储器胞元具有在阵列中对应于其存储相应位的有效性(例如MSB、LSB)的位置;及乘法器‑累加器单元,其经配置以执行多位权值乘以多位输入及提供累加结果,其中:存储器胞元在乘法期间保持于亚阈值模式中(例如,胞元不超过阈值);多位输入的每一位在相应时刻(例如图4中的T、T1、T2)应用于乘法器‑累加器单元以获得相应结果(例如结果Y 251),其中相应结果是基于加总来自存储器胞元的输出电流;且累加结果(例如结果267)是基于从应用多位输入的位获得的相应结果。
[0175] 在一个实施例中,加总输出电流包括加总存储器胞元阵列中的存储器胞元列的线上的电流以提供应用位的列结果。
[0176] 在一个实施例中,乘法器‑累加器单元(例如270)包括经配置以组合列结果以提供每一应用位的相应结果的移位器及加法器。
[0177] 在一个实施例中,每一相应结果根据多位输入的应用位的位置来左移以提供移位结果;且移位结果经相加以提供累加结果。
[0178] 在一个实施例中,一种设备包括:存储器胞元阵列(例如273),其包括存储器胞元,其中每一存储器胞元可编程以存储多位权值(例如250)的相应位,且每一存储器胞元具有在阵列中对应于其存储相应位的有效性(例如MSB、LSB)的位置;电压驱动器,其经配置以将电压脉冲施加于存储器胞元,其中每一脉冲的相应宽度(例如20或40纳秒)表示多位输入;第一线(例如241),其耦合到存储第一有效性(例如MSB)的位的第一存储器胞元,其中第一线经配置以收集来自第一存储器胞元中的每一者的第一输出电流用于累加第一电荷;第二线(例如243),其耦合到存储第二有效性(例如LSB)的位的第二存储器胞元,其中第二有效性小于第一有效性,且第二线经配置以收集来自第二存储器胞元中的每一者的第二输出电流用于累加第二电荷;及逻辑电路,其经配置以基于累加第一电荷及累加第二电荷输出结果。
[0179] 在一个实施例中,存储器胞元在电压脉冲被施加时保持于亚阈值模式中。
[0180] 在一个实施例中,设备进一步包括:第一电容器,其耦合到第一线以累加第一电荷;及第二电容器,其耦合到第二线以累加第二电荷。
[0181] 在一个实施例中,设备进一步包括至少一个数字转换器,其用于基于累加第一电荷提供第一结果及基于累加第二电荷提供第二结果,其中来自逻辑电路的结果至少基于使第一结果移位及使移位第一结果与第二结果相加来确定。
[0182] 在一个实施例中,每一电压脉冲具有相同恒定电压。
[0183] 在一个实施例中,设备进一步包括至少一个积分器(例如积分器507、506、508),其用于基于累加第一电荷提供第一结果及基于累加第二电荷提供第二结果,其中来自逻辑电路的结果是基于第一及第二结果。
[0184] 在一个实例中,存储器胞元207、217、…、227的列中的每一相应存储器胞元(例如207、217、…或227)可经编程以具有:处于第一电平以表示第一值1的阈值电压;及处于高于第一电平的第二电平以表示第二值0的阈值电压。当施加第一电平与第二电平之间的预定读取电压时,相应存储器胞元(例如207、217、…或227)经配置以在存储第一值1时输出预定电流量232或在存储第二值0时输出可忽略不计电流量。存储器胞元(例如207、217、…或
227)的电阻在包含其阈值电压的电压范围内是非线性的。
[0185] 当对应于相应存储器胞元(例如207、217、…或227)的相应输入位(例如201、211、…或221)是0时,连接到相应存储器胞元(例如207、217、…或227)的电压驱动器203将低于第一电平的电压施加于相应存储器胞元(例如207、217、…或227),从而导致来自相应存储器胞元(例如207、217、…或227)的可忽略不计电流量(例如209、219、…或229)。当对应于相应存储器胞元(例如207、217、…或227)的相应输入位(例如201、211、…或221)是1时,将第一电平与第二电平之间的预定读取电压施加于相应存储器胞元(例如207、217、…或
227),从而在相应存储器胞元(例如207、217、…或227)存储第一值1时导致来自相应存储器胞元(例如207、217、…或227)的预定电流量232或在相应存储器胞元(例如207、217、…或
227)存储第二值0时导致可忽略不计电流量。
[0186] 在一个实例中,接口125可操作以使主机系统将数据写入到存储器胞元阵列113中及从存储器胞元阵列113读取数据。举例来说,主机系统可将命令发送到接口125以将人工神经网络的权值矩阵写入到存储器胞元阵列113中及读取人工神经网络的输出、来自图像感测像素阵列111的原始图像数据或来自图像处理逻辑电路121的经处理图像数据或其任何组合。
[0187] 推理逻辑电路123可为可编程的且包含可编程处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)或其任何组合。用于实施人工神经网络的计算的指令也可经由接口125写入到存储器胞元阵列113中以供推理逻辑电路123执行。
[0188] 图7展示根据一个实施例的电阻存储器胞元的示范性电流‑电压(IV)曲线702。存储器胞元是例如使用硫属化物存储器元件的电阻随机存取存储器(RRAM)胞元。在一个实例中,存储器胞元经配置于图1的存储器胞元阵列113中。
[0189] 存储器胞元是具有跨其端子施加的电压Vcell的两端子元件。当执行上述乘法时,存储器胞元在低于存储器胞元的阈值点705的亚阈值范围704中操作。亚阈值范围704对应于针对存储器胞元的操作的电阻状态。
[0190] 在阈值点705处,存储器胞元从低电导状态转变到显著高电导,如IV曲线的部分706中说明。此转变有时称为胞元的急变或骤回。
[0191] 当执行乘法时,存储器胞元保持于低于其阈值电压的亚阈值范围704内。否则,与IV曲线的部分706相关联的显著更高电流将干扰乘法的正确运算。
[0192] IV曲线708、710说明可通过对存储器胞元编程来引入的IV曲线的变化。应注意,并非所有RRAM存储器胞元将展现上述骤回行为。
[0193] 图8展示根据一个实施例的浮动门或电荷阱存储器胞元的示范性电流‑电压(IV)曲线802。在一个实例中,存储器胞元是NAND或NOR快闪存储器胞元。在一个实例中,存储器胞元经配置于存储器胞元阵列113中。
[0194] 存储器胞元是三端子元件。IV曲线802对应于当跨存储器胞元的当前端子施加恒定漏极源极电压Vds时胞元的特性。栅极电压Vgs施加于存储器胞元的栅极。存储器胞元通常在包含亚阈值范围804的操作范围806内操作。IV曲线的部分814对应于范围804内的操作。
[0195] 存储器胞元展现阈值电压812。当执行上述乘法时,栅极电压可低于及/或高于阈值电压812。
[0196] IV曲线808、810说明可如何通过编程以使曲线左移或右移来改变IV曲线802的位置。通过对存储器胞元编程,阈值电压812可移动到较低或较高电压以表示不同逻辑状态。
[0197] 在一个实例中,字线电压施加于存储器胞元的栅极。在一个实例中,存储器胞元的漏极耦合到数字线,且存储器胞元的源极耦合到源极线(例如NAND快闪存储器装置的SRC线)。
[0198] 图9展示根据一个实施例的具有电阻随机存取存储器(RRAM)胞元的三维存储器胞元阵列。存储器胞元阵列也可被视为具有其中存储器胞元并联连接的NOR配置。图9中说明的存储器胞元阵列是图1的存储器胞元阵列113的实例。
[0199] 阵列包含布置于各种竖直柱中的存储器胞元,其中柱中的每一胞元连接到竖直位线902、904。阵列定位于半导体衬底(未展示)上方。存储器胞元也布置为水平层级。举例来说,层级中的一者包含存储器胞元906、907、908、909。层级被竖直堆叠。作为实例,存储器胞元的7个层级或层阶在图9中说明。
[0200] 胞元中的每一者连接到水平延伸的字线。每一存储器胞元通过将电压施加于与胞元连接的字线中的一者及位线中的一者来偏压。
[0201] 当执行乘法时,选择层级中的一者中的存储器胞元。举例来说,存储器胞元906、907、908、909通过将电压施加于字线910、911、912、913来选择。
[0202] 在一个实施例中,字线部分910、912经连接为单个字线。类似地,字线部分911、913经连接为单个字线。
[0203] 柱的每一位线902、904使用选择晶体管918、920连接到数字线914、916。当执行乘法时,来自层级的选定存储器胞元的输出电流累加于数字线914、916上。在一些实施例中,可在每一存储器胞元位置处期望额外相异选择晶体管(选择器)。选择器与对应存储器胞元串联连接。在电阻阵列的一些实施例中,可同时选择多个层级用于计算。
[0204] 在一个实施例中,存储器胞元中的每一者经编程以存储权值位用于执行乘法。针对将用于乘法的存储器胞元的选定层级,电压经施加于每一胞元的字线上,使得每一存储器胞元可贡献一定程度的输出电流,其取决于存储器胞元的编程状态。
[0205] 当执行乘法时,将电压施加于存储器胞元,例如上文论述。外加电压表示与由存储器胞元存储的权值位相乘的输入位。电压使用选择线(SL‑、SL+)施加于选择晶体管918、920的栅极。来自存储器胞元的输出电流接着加总于数字线914、916上且提供数字结果,例如上文论述。
[0206] 图10展示根据一个实施例的具有呈NAND配置的浮动门或电荷阱存储器胞元的三维存储器胞元阵列。图10中说明的存储器胞元阵列是存储器胞元阵列113的实例。
[0207] 存储器胞元竖直布置于柱中,其中每一柱中的存储器胞元串联连接为串1002、1004。存储器胞元还布置于水平层级或层阶(例如64个层级)中。举例来说,存储器胞元
1006、1007、1008、1009布置于这些层级中的一者中。每一串1002、1004连接到共同源极(SRC)线(未展示)及数字线1016、1018。
[0208] 当执行乘法时,选择层级中的一者中的存储器胞元(例如,选择存储器胞元1006、1007、1008、1009)。胞元通过将读取电压施加于每一胞元的栅极来选择。与选定存储器胞元在相同串中的其它非选定胞元通过将旁通电压施加于非选定胞元的栅极来偏压。
[0209] 存储器胞元中的每一者连接到用于施加上述读取或旁通电压的字线(未展示)。在一个实例中,共同字线(未展示)连接到存储器胞元1006、1007、1008、1009的栅极。共同字线通过施加读取电压来偏压。
[0210] 每一串1002、1004的存储器胞元通过选择晶体管1012、1014电耦合到数字线1016、1018。当配置于NAND快闪存储器装置中时,数字线1016、1018有时称为位线。
[0211] 在一个实例中,选择存储器胞元阵列的层级中的一者。停用其它层级中的非选定存储器胞元。使字线电压足够高使得每一非选定存储器胞元导通,无论其编程状态为何(因此,忽略旁通胞元的状态,因为无论逻辑状态为何,胞元都将传导电流)。每一串中的总电阻由提供用于累加的输出电流的一个选定存储器胞元主导。
[0212] 在一个实施例中,存储器胞元中的每一者经编程以存储权值位用于执行乘法。针对将用于乘法的存储器胞元的选定层级,电压经施加于字线上,使得每一存储器胞元能够贡献一定程度的输出电流,其取决于存储器胞元的编程状态。
[0213] 当执行乘法时,将电压施加于存储器胞元,例如上文论述。外加电压表示与由存储器胞元存储的权值位相乘的输入位。电压使用选择线(SL)施加于选择晶体管1012、1014的栅极。来自存储器胞元的输出电流接着加总于数字线1016、1018上且提供数字结果,例如上文论述。
[0214] 在一个实施例中,每一存储器胞元1006、1007、1008、1009的栅极连接到单独分段字线。在一个实施例中,每一存储器胞元的栅极连接到充当所有选定胞元的字线的单个导电层或薄片。
[0215] 图11展示根据一个实施例的具有呈NOR配置的浮动门存储器胞元的三维存储器胞元阵列。存储器胞元并联连接。图11中说明的存储器胞元阵列是存储器胞元阵列113的实例。
[0216] 类似于上文论述,存储器胞元布置于水平层级中。层级中的一者经选择用于执行乘法。举例来说,存储器胞元1106、1107、1108、1109通过将栅极电压施加于每一胞元来选择。电压使用字线1112、1113、1114、1115来施加。
[0217] 在一个实施例中,字线1112及1114经连接为单个线。字线1113及1115也连接为单个线。
[0218] 阵列的存储器胞元布置于各自具有竖直导电线1102、1104的柱中。每一竖直导电线通过选择晶体管1120、1122耦合到数字线1116、1118。
[0219] 在一个实施例中,存储器胞元中的每一者经编程以存储权值位用于执行乘法。针对将用于乘法的存储器胞元的选定层级,电压经施加于字线上,使得每一存储器胞元可贡献一定程度的输出电流,其取决于存储器胞元的编程状态。
[0220] 当执行乘法时,将电压施加于存储器胞元,例如上文论述。外加电压表示与由存储器胞元存储的权值位相乘的输入位。电压使用选择线(SL)施加于选择晶体管1120、1122的栅极。来自存储器胞元的输出电流接着加总于数字线1116、1118上且提供数字结果,例如上文论述。
[0221] 图37展示根据一个实施例的具有与个别选择器依并联配置布置的存储器胞元的三维存储器胞元阵列。每一存储器胞元使其自身选择器串联连接使得每一存储器胞元可根据特定乘法或其它运算的期望而个别选择。举例来说,存储器胞元并联连接,如图37中说明。图37中说明的存储器胞元阵列是存储器胞元阵列113的实例。
[0222] 类似于上文论述,存储器胞元布置于水平层级中。例如,层级中的一者经选择用于执行乘法。举例来说,选择存储器胞元3730、3731、3732、3733且将电压施加于每一胞元。在一个实施例中,通过接通或断开每一胞元的个别选择晶体管3706、3707、3708、3709来使用字线3712、3713、3714、3715跨存储器胞元施加电压。
[0223] 在一个实施例中,字线3712及3714经连接为单个线。字线3713及3715也经连接为单个线。
[0224] 阵列的存储器胞元布置于各自具有连接到柱的存储器胞元的竖直导电线3702、3703、3704、3705的柱(例如硫属化物存储器胞元的列或串)中。每一竖直导电线通过选择晶体管3720、3722耦合到数字线3716、3718。
[0225] 在一个实施例中,存储器胞元中的每一者经编程以存储权值位用于执行乘法。针对将用于乘法的存储器胞元的选定层级,电压经施加于字线上,使得每一存储器胞元可贡献一定程度的输出电流,其取决于存储器胞元的编程状态。
[0226] 在一个实施例中,可选择多个层级上的存储器胞元。举例来说,连接到共同竖直导电线3702的存储器胞元中的两者或更多者可经选择用于执行乘法。
[0227] 当执行乘法时,电压施加于存储器胞元,例如(举例来说)上文论述。外加电压表示与由存储器胞元存储的权值位相乘的输入位。在一个实施例中,电压施加于个别选择晶体管的栅极且每一栅极对应于对应存储器胞元的输入。来自存储器胞元的输出电流接着加总于数字线3716、3718上且提供数字结果,例如(举例来说)上文论述。
[0228] 未连接到其对应个别选择器的每一存储器胞元(例如3740)的端子连接到偏压源。在一个实例中,偏压源在乘法期间施加固定电压。
[0229] 在一个实施例中,图37的阵列中的每一存储器胞元是电阻随机存取存储器(RRAM)胞元(例如,在亚阈值范围内操作,如上文描述)。在一个实例中,存储器胞元阵列可被视为具有其中存储器胞元并联连接的NOR配置。
[0230] 在一个实例中,阵列包含布置于各种竖直枝柱中的存储器胞元,其中柱中的每一胞元连接到竖直位线(例如3702、3704)。阵列定位于半导体衬底(未展示)上方。
[0231] 胞元中的每一者连接到水平延伸的字线。每一存储器胞元通过将电压施加于字线中的一者以接通与胞元连接的个别选择器及位线中的一者来偏压。
[0232] 当执行乘法时,电压施加于存储器胞元,例如上文论述。在一个实施例中,外加电压表示与由存储器胞元存储的权值位相乘的输入位。
[0233] 在一个实施例中,乘法运算由控制器以与针对存储器胞元的NOR配置(例如,使用图11的阵列)所进行的类似的方式使用图37的阵列执行。
[0234] 在一个实施例中,一种装置包括:存储器胞元阵列,其具有存储器胞元,其中每一存储器胞元可编程以存储相应权值用于执行乘法;电压驱动器,其经配置以将电压施加于存储器胞元用于执行乘法,电压表示与每一存储器胞元的相应权值相乘的输入;至少一个线,其耦合到存储器胞元,其中线经配置以加总来自存储器胞元中的每一者的输出电流;及数字转换器,其经配置以基于加总输出电流产生乘法的结果。
[0235] 在一个实施例中,每一存储器胞元可编程以改变存储器胞元的电导或电阻,且来自存储器胞元的输出电流的大小对应于电导或电阻。
[0236] 在一个实施例中,至少一个线包含位线。
[0237] 在一个实施例中,存储器胞元组织于胞元的水平层级中,层级竖直堆叠于半导体衬底上方,且第一层级中的第一存储器胞元被选择且耦合到线用于执行乘法。
[0238] 在一个实施例中,存储器胞元是具有本地选择器的电阻随机存取存储器(RRAM)胞元、不具有本地选择器的RRAM胞元、NAND快闪存储器胞元或NOR快闪存储器胞元。
[0239] 在一个实施例中,存储器胞元可通过改变存储于每一存储器胞元的浮动门或电荷阱中的电荷来编程。
[0240] 在一个实施例中,存储器胞元可通过改变每一存储器胞元的电阻来编程。
[0241] 在一个实施例中,存储器胞元进一步组织于存储器胞元柱中,且每一柱中的相应存储器胞元由相应竖直位线连接。
[0242] 在一个实施例中,相应竖直位线通过选择晶体管耦合到数字线。
[0243] 在一个实施例中,每一柱中的相应存储器胞元串联连接为胞元串。
[0244] 在一个实施例中,每一柱中的相应存储器胞元并联连接。
[0245] 在一个实施例中,每一存储器胞元具有浮动门,且存储器胞元布置成NOR配置。
[0246] 在一个实施例中,每一存储器胞元具有浮动门或电荷阱,且存储器胞元布置成NAND配置。
[0247] 在一个实施例中,至少一个线包括水平延伸的数字线;数字线定位于半导体衬底上方;且第一存储器胞元通过选择晶体管耦合到数字线。
[0248] 在一个实施例中,每一存储器胞元连接到水平延伸的字线,且存储器胞元经选择用于通过将电压施加于字线来执行乘法。
[0249] 在一个实施例中,存储器胞元阵列是三维交叉点阵列;存储器胞元布置于竖直柱中;至少一个线水平延伸;且至少一个线连接到柱的至少一部分。
[0250] 在一个实施例中,存储器胞元不会骤回。
[0251] 在一个实施例中,存储器胞元在亚阈值模式中的操作包括在电阻状态中操作存储器胞元。
[0252] 在一个实施例中,每一存储器胞元经配置以:在存储器胞元具有经编程以表示值1的阈值电压时响应于外加电压而输出预定电流量;或在存储器胞元具有经编程以表示值0的阈值电压时响应于外加电压而输出可忽略不计电流量。
[0253] 在一个实施例中,可忽略不计电流量小于预定电流量的5%。
[0254] 在一个实施例中,存储器胞元中的一些具有经编程以表示值1的第一阈值电压,且外加电压小于第一阈值电压。
[0255] 在一个实施例中,外加电压比第一阈值电压小至少0.5伏。
[0256] 在一个实施例中,装置进一步包括接口,其可操作以使主机系统将数据写入到存储器胞元阵列中及从存储器胞元阵列读取数据。
[0257] 在一个实施例中,存储器胞元包含第一及第二存储器胞元;由第一存储器胞元存储的相应权值是多位权值的最高有效位(MSB);且由第二存储器胞元存储的相应权值是多位权值的最低有效位(LSB)。
[0258] 在一个实施例中,数字转换器经配置于模/数转换器中。
[0259] 在一个实施例中,存储器胞元中的每一者是硫属化物存储器胞元;且电压经施加以在乘法期间保持存储器胞元在亚阈值模式中操作。
[0260] 在一个实施例中,一种方法包括:对存储器胞元阵列中的存储器胞元编程,其中每一存储器胞元经编程以存储相应权值位用于执行乘法;将电压施加于存储器胞元用于执行乘法,每一相应电压表示与每一存储器胞元的相应权值位相乘的相应输入位,其中电压经限制以保持存储器胞元在亚阈值模式中操作;加总由将电压施加于存储器胞元引起的输出电流;及基于加总输出电流提供数字结果。
[0261] 在一个实施例中,相应输入位是一列输入位;相应权值位是一列权值位,其在执行乘法时乘以输入位列;来自存储器胞元的输出电流在位线中加总;且数字结果通过将加总输出电流数字化为预定电流量的倍数来提供。
[0262] 在一个实施例中,每一相应存储器胞元经编程以具有:处于第一电平以表示第一值1的阈值电压;及处于高于第一电平的第二电平以表示第二值0的阈值电压;其中相应存储器胞元经配置以在将第一电平与第二电平之间的预定读取电压施加于存储器胞元时在存储第一值1时输出预定电流量或在存储第二值0时输出可忽略不计电流量。
[0263] 在一个实施例中,当相应输入位是0时,将低于第一电平的电压施加于对应存储器胞元;及当相应输入位是1时,将预定读取电压施加于对应存储器胞元。
[0264] 与用于使用存储器胞元的逻辑状态来执行带符号乘法的存储器装置相关的各种实施例现在下文描述。下文描述的通用性不受上述各种实施例限制。
[0265] 各种存储器胞元实施方案可用于执行带符号乘法。在一个实施例中,带符号乘法在所谓的四象限系统中执行,其中待相乘的输入及权值中的每一者可具有正号或负号。举例来说,一些神经网络模型利用其中模型的权值带符号的矩阵向量乘法。在一个实例中,使用电阻随机存取存储器(RRAM)胞元。在一个实例中,使用NAND或NOR快闪存储器胞元。
[0266] 在一个实施例中,矩阵向量乘法使用存储权值执行。输入信号乘以权值以提供结果。在一个实例中,权值通过训练神经网络模型来确定。模型使用权值的正值及负值两者。在一个实例中,权值存储于图1的存储器胞元阵列113的存储器胞元中。在一个实例中,模型使用图像数据训练,且经训练模型基于来自图像传感器的输入来提供推理结果。
[0267] 在一个实施例中,乘法器累加器单元使用带符号乘法。权值可由多位值(例如8到64个位)表示。额外位用于表示权值的符号。举例来说,系统可使用8位带符号权值,其中权值的值由7个位表示,且第八位用于表示符号。额外位可以带符号输入的类似方式使用。
[0268] 在一个实施例中,带符号1位数(例如输入及/或权值)具有三种可能值中的一者:‑1、0、1。举例来说,带符号权值可由2位数表示,其中2位值01表示带符号1位值‑1;2位值00表示带符号1位值0;且2位值10表示带符号1位值+1。2位值11未使用。在其它实例中,根据给定实施方案的期望,2个位的各种组合可表示不同带符号值。
[0269] 在一个实例中,控制乘法的控制器通过追踪由每一位表示的意义(例如符号或量值)来管理2位值。在一个实例中,控制器是图1的推理逻辑电路123的部分。
[0270] 表示带符号1位输入及带符号1位权值的2位数的1位乘1位乘法可经配置以产生带符号1位与1位乘法的结果。在一个实例中,结果已响应于经由图1的接口125来自主机系统的请求而确定。在一个实例中,用于产生结果的带符号输入是基于由图1的图像感测像素阵列111收集的数据。
[0271] 图12展示根据一个实施例的存储用于乘法的带符号权值的存储器胞元组。在一个实例中,存储器胞元经配置于存储器胞元阵列113中。
[0272] 在一个实施例中,组1202包含存储器胞元1207、1217,其一起存储表示1位带符号权值的两个数据位。举例来说,存储器胞元1207存储1且存储器胞元1217存储0,其一起表示1位带符号权值+1。在一个实例中,存储器胞元1207、1217可经编程以存储适当位值,如上文论述。
[0273] 1位带符号权值乘以1位带符号输入,其由两个输入位1201、1211表示。举例来说,输入位1201是0且输入位1211是1,其一起表示1位带符号输入‑1。
[0274] 为了执行乘法,电压驱动器1203、1213以对应于输入位1201、1211的值的方式将电压1205、1215施加于存储器胞元1207、1217。在一个实例中,电压驱动器1203、1213与上文针对电压驱动器203、213论述类似地施加电压。
[0275] 电流1209、1219基于外加电压1205、1215从存储器胞元1207、1217输出。电流加总于线1241上以提供加总电流1231。在一个实例中,电流与上文针对线241论述类似地加总。
[0276] 来自带符号乘法的结果将是由两个位表示的带符号结果。位中的每一者基于加总线1241上的电流来确定。针对提供到其它胞元组(未展示)的其它带符号输入的乘法可与针对组1202类似地进行。线1241可用于加总用于这些其它乘法的输出电流。
[0277] 在一个实施例中,带符号结果的两个位基于在两个时刻加总电流来确定。在第一时刻,来自输入位1201、1211乘以组1202的存储权值的加总电流1231由模/数转换器1245的数字转换器1233数字化。这提供结果的第一位。在一个实例中,模/数转换器1245及数字转换器1233类似于模/数转换器245及数字转换器233。
[0278] 在第二时刻,输入位1201、1211反转成负版本。举例来说,输入位1、0反转成负版本0、1。对应于负版本的电压由电压驱动器1203、1213施加于存储器胞元1207、1217。在第二时刻,电流1209、1219经加总及数字化以提供结果的第二位。
[0279] 从上述第一及第二时刻的加总确定的第一及第二位提供结果1237。这两个位对应于乘法的1位带符号结果1237。
[0280] 一般来说,众多存储器胞元组1227可配置于存储器胞元阵列中。上述组1202具有两个存储器胞元。在其它实施例中,每一组可包含四个存储器胞元。电压驱动器1223用于将电压施加于组1227中的存储器胞元。电流1229、1247从这些存储器胞元输出且可加总。在一个实施例中,电流在各个时刻加总于单个线1241上,类似于上文论述。在一个实例中,相同集成电路装置可包含各自具有两个存储器胞元的两组及各自具有四个存储器胞元的其它组。不同类型的胞元组的其它组合是可能的。
[0281] 在一个实施例中,电流加总于多于一个线上,且每一线用于确定带符号结果1237的不同位。举例来说,线1241用于确定第一位,且线1243用于确定第二位。在一个实例中,每一组含有四个存储器胞元,且线1241、1243用于同时加总电流1229、1247。换句话说,无需多个时刻来确定结果1237的两个位。
[0282] 在一个实施例中,电压1205、1215以可控方式施加以使存储器胞元保持在亚阈值模式中。在一个实例中,存储器胞元是展现骤回行为的硫属化物胞元。硫属化物胞元保持于亚阈值模式中以避免存储器胞元的任何急变。急变是不受欢迎的,因为所得大胞元电流干扰正确乘法。
[0283] 在一个实施例中,存储器胞元1207是NAND或NOR快闪存储器胞元且可在乘法期间高于及/或低于其阈值电压操作。
[0284] 图13展示根据一个实施例的形成于半导体衬底1302上方的存储器阵列1304的示范性存储器胞元1306。在一个实例中,半导体衬底1302是图1的集成电路裸片109。在一个实例中,存储器阵列1304是图1的存储器胞元阵列113。在一个实例中,存储器胞元1306是存储器胞元1207、1217。
[0285] 存储器胞元1306是形成于三维存储器阵列中的许多存储器胞元中的一者。各种位线1310在竖直方向上延伸于半导体衬底1302上方。各种字线1308在水平方向上延伸于半导体衬底1302上方。各种数字线1312在水平方向上延伸于半导体衬底1302上方。位线1310通过选择晶体管1315耦合到数字线1312,选择晶体管1315通过使用选择线1314将电压施加于选择晶体管1315的栅极来控制。
[0286] 在一个实施例中,阵列1304中的存储器胞元组织于胞元的水平层级中。层级竖直堆叠于半导体衬底1302上方。在一个实例中,存储器胞元布置于水平层级中,如图9中说明。举例来说,层级中的一者包含用作存储带符号权值的组的四个存储器胞元1306(例如906、
907、908、909),如上文论述。
[0287] 电压驱动器1320用于将电压施加于存储器胞元阵列1304的存储器胞元以执行乘法。举例来说,电压驱动器1320加偏压于字线1308及位线1310以跨存储器胞元1306施加电压。例如,位线1310通过驱动数字线1312上的电压及接通选择晶体管1315以将位线1310连接到数字线1312来偏压。电压驱动器1320的实例包含电压驱动器1203、1213、1223。
[0288] 数字转换器1340基于来自存储器阵列1304的加总电流来产生数字输出(例如,呈图12的结果1237的位的形式)。数字转换器1340的实例包含数字转换器1233。在一个实例中,电流从各种存储器胞元(除胞元1306之外,都未展示)加总于共同数字线1312上。在替代实施例中,电流可由共同字线1308加总。
[0289] 图14展示根据一个实施例的用于使用存储于存储器胞元组中的权值执行带符号乘法的方法。举例来说,图14的方法可使用图12及/或图13中说明的乘法及累加在图1的集成电路装置101中执行。
[0290] 图14的方法可由处理逻辑执行,处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如运行或执行于处理装置上的指令)或其组合。在一些实施例中,图14的方法至少部分由一或多个处理装置(例如图1的推理逻辑电路123的控制器)执行。
[0291] 尽管以特定序列或顺序展示,但除非另外指定,否则过程的顺序可修改。因此,所说明实施例应被理解为仅作为实例,且所说明过程可以不同顺序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,不是每个实施例都需要所有过程。其它过程流程是可能的。
[0292] 在框1401处,从主机系统接收命令。在一个实例中,命令由图1的接口125接收。在一个实例中,命令是将数据存储于存储器胞元阵列113中的写入命令。在一个实例中,存储数据是从训练神经网络模型获得的带符号权值。
[0293] 在框1403处,对存储器胞元组编程使得每一组存储带符号权值。在一个实例中,存储器胞元1207、1217经编程以存储1位带符号权值。
[0294] 在框1405处,将电压施加于存储器胞元组。电压表示每一组的不同带符号输入。在一个实例中,电压驱动器1203、1213将电压施加于若干组中的第一组中的存储器胞元1207、1217。
[0295] 在框1407处,加总来自存储器胞元的输出电流。在一个实例中,来自存储器胞元1207、1217的输出电流加总于三维存储器胞元阵列的位线或数字线上。
[0296] 在框1409处,基于加总输出电流产生至少一个乘法结果。在一个实例中,数字转换器1233产生结果1237。
[0297] 在框1411处,从主机系统接收读取结果的命令。在一个实例中,命令是经由接口125接收的读取命令。
[0298] 在框1413处,将结果发送到主机系统。在一个实例中,结果1237发送到主机系统。
[0299] 在一个实施例中,一种装置包括:半导体衬底(例如1302);多组(例如1202、1227)存储器胞元,其中每一组存储器胞元可编程以存储带符号权值用于执行乘法,其中存储器胞元组织于胞元的水平层级中,且其中层级竖直堆叠于半导体衬底上方;电压驱动器(1223、1320),其经配置以将电压施加于存储器胞元组用于执行乘法,电压表示与每一组的存储权值相乘的带符号输入;至少一个线(例如1241、1243、1312),其耦合到每一组中的存储器胞元,其中线经配置以加总来自存储器胞元的输出电流;及每一组的至少一个数字转换器(例如1233、1340),数字转换器经配置以基于来自组中的存储器胞元的加总输出电流来产生结果。
[0300] 在一个实施例中,电压经施加使得存储器胞元在乘法期间保持于亚阈值模式中(例如,存储器胞元在亚阈值范围704中操作)。
[0301] 在一个实施例中,每一组的存储器胞元经配置使得存储权值具有值‑1、0或+1。
[0302] 在一个实施例中,电压经施加使得带符号输入具有值‑1、0或+1。
[0303] 在一个实施例中,带符号权值及带符号输入(例如输入位1201、1211的有序组合)各自由具有可能值01、00或10的相应2位数表示。
[0304] 在一个实施例中,每一组表示1位带符号权值;施加于每一组的电压表示1位带符号输入;且组的结果表示1位带符号权值乘1位带符号输入的带符号乘法。
[0305] 在一个实施例中,结果是具有值01、00或10的2位数。
[0306] 在一个实施例中,第一组的第一存储器胞元具有经编程以表示值1的第一阈值电压,且施加于第一存储器胞元的电压小于第一阈值电压。
[0307] 在一个实施例中,数字转换器经配置于模/数转换器(例如1245)中。
[0308] 在一个实施例中,存储器胞元是电阻随机存取存储器(RRAM)胞元、NAND快闪存储器胞元或NOR快闪存储器胞元。
[0309] 在一个实施例中,一种设备包括:存储器胞元阵列(例如113),其具有存储器胞元组;接口(例如125),其可操作以使主机系统将数据写入到存储器胞元阵列中及从存储器胞元阵列读取数据;及控制器,其经配置以:对存储器胞元组编程以将带符号权值存储于每一组中;将电压(例如1205、1215)施加于存储器胞元组,电压表示与带符号权值相乘的带符号输入;基于加总来自一或多组中的存储器胞元的输出电流来确定至少一个数字结果(例如1237);及经由接口将数字结果发送到主机系统。
[0310] 在一个实施例中,每一存储器胞元经配置以:在存储器胞元具有经编程以表示1值的阈值电压时响应于外加电压而输出预定电流量;或在存储器胞元具有经编程以表示0值的阈值电压时响应于外加电压而输出可忽略不计电流量。
[0311] 在一个实施例中,可忽略不计电流量小于预定电流量的5%。
[0312] 在一个实施例中,电压经限制使得存储器胞元保持于亚阈值模式中。
[0313] 在一个实施例中,存储器胞元阵列中的每一存储器胞元可编程以具有:处于第一电平以表示第一值1的阈值电压;或处于高于第一电平的第二电平以表示第二值0的阈值电压;其中存储器胞元经配置以在将第一电平与第二电平之间的预定读取电压施加于存储器胞元时在存储第一值1时输出预定电流量或在存储第二值0时输出可忽略不计电流量。
[0314] 在一个实施例中,当带符号输入是0时,将低于第一电平的电压施加于对应存储器胞元组;及当带符号输入是+1或‑1时,将预定读取电压施加于对应存储器胞元组中的至少一个第一存储器胞元且将低于第一电平的电压施加于对应组的至少一个第二存储器胞元。
[0315] 在一个实施例中,一种方法包括:从主机系统接收写入数据的命令;响应于接收到写入数据的命令,对存储器胞元阵列中的存储器胞元组(例如1227)编程,其中每一组存储器胞元可编程以存储带符号权值用于矩阵向量乘法;将电压施加于存储器胞元组用于执行乘法,电压表示与带符号权值相乘的带符号输入;使用耦合到每一组中的存储器胞元的至少一个共同线来加总来自存储器胞元的输出电流;基于来自存储器胞元的加总输出电流来使用至少一个数字转换器产生乘法的至少一个结果;从主机系统接收读取结果的命令;及响应于接收到读取结果的命令,将结果发送到主机系统。
[0316] 在一个实施例中,至少一个共同线是至少一个数字线,且系统进一步包括:位线,其耦合到每一组中的存储器胞元;及选择晶体管,其经配置以将每一组的位线电连接到至少一个数字线。
[0317] 在一个实施例中,数字转换器包含累加每一组的至少一个共同线上的电流的至少一个积分器,且数字转换器将结果提供为二进制数。
[0318] 在一个实施例中,至少一个共同线是至少一个位线。
[0319] 在一个实施例中,一种装置包括:存储器胞元阵列,其具有存储器胞元组,其中每一组存储器胞元可编程以存储带符号权值用于执行乘法;电压驱动器,其经配置以将电压施加于存储器胞元组用于执行乘法,电压表示与每一组的存储权值相乘的带符号输入;至少一个线,其耦合到每一组中的存储器胞元,其中线经配置以加总来自存储器胞元的输出电流;及每一组的至少一个数字转换器,数字转换器经配置以基于来自组中的存储器胞元的加总输出电流来产生结果。
[0320] 在一个实施例中,电压经施加使得存储器胞元在乘法期间保持于亚阈值模式中。
[0321] 在一个实施例中,存储器胞元在亚阈值模式中操作时不会骤回。
[0322] 在一个实施例中,每一组包括两个存储器胞元。
[0323] 在一个实施例中,每一组包括四个存储器胞元;组中的第一对存储器胞元存储带符号权值的正版本(例如01);且组中的第二对存储器胞元存储带符号权值的负版本(例如10,其是位0及1的逐位反转)。
[0324] 在一个实施例中,每一组的存储器胞元经配置使得存储权值具有值‑1、0或+1。
[0325] 在一个实施例中,电压经施加使得带符号输入具有值‑1、0或+1。
[0326] 在一个实施例中,带符号权值及带符号输入各自由具有可能值01、00或10的相应2位数表示。
[0327] 在一个实施例中,每一组表示1位带符号权值;施加于每一组的电压表示1位带符号输入;且组的结果表示1位带符号权值乘1位带符号输入的带符号乘法。
[0328] 在一个实施例中,结果是具有值01、00或10的2位数。
[0329] 在一个实施例中,至少一个线是至少一个数字线,且系统进一步包括:位线,其耦合到每一组中的存储器胞元;及选择晶体管,其经配置以将每一组的位线电连接到至少一个数字线。
[0330] 在一个实施例中,将电压施加于存储器胞元组包括将电压施加于选择晶体管的栅极以在位线上引起电压变化。
[0331] 在一个实施例中,每一组的数字转换器包含累加组的至少一个线上的电流的积分器,且数字转换器将结果提供为二进制数。
[0332] 在一个实施例中,至少一个线是至少一个位线。
[0333] 在一个实施例中,存储器胞元阵列的每一存储器胞元经配置以:在存储器胞元具有经编程以表示值1的阈值电压时响应于外加电压而输出预定电流量;或在存储器胞元具有经编程以表示值0的阈值电压时响应于外加电压而输出可忽略不计电流量。
[0334] 在一个实施例中,可忽略不计电流量小于预定电流量的5%。
[0335] 在一个实施例中,第一组的第一存储器胞元具有经编程以表示值1的第一阈值电压,且施加于第一存储器胞元的电压小于第一阈值电压。
[0336] 在一个实施例中,装置进一步包括接口,其可操作以使主机系统将数据写入到存储器胞元阵列中及从存储器胞元阵列读取数据。
[0337] 在一个实施例中,数字转换器经配置于模/数转换器中。
[0338] 在一个实施例中,存储器胞元是相变存储器胞元、NAND快闪存储器胞元或NOR快闪存储器胞元。
[0339] 在一个实施例中,一种设备包括:存储器胞元阵列,其具有存储器胞元组;及控制器,其经配置以:对存储器胞元组编程以将带符号权值存储于每一组中;将电压施加于存储器胞元组,电压表示与带符号权值相乘的带符号输入;及基于加总来自一或多组中的存储器胞元的输出电流来确定至少一个数字结果。
[0340] 在一个实施例中,电压经限制使得存储器胞元的操作保持于亚阈值模式中。
[0341] 在一个实施例中,存储器胞元阵列中的每一存储器胞元可编程以具有:处于第一电平以表示第一值1的阈值电压;或处于高于第一电平的第二电平以表示第二值0的阈值电压;其中存储器胞元经配置以在将第一电平与第二电平之间的预定读取电压施加于存储器胞元时在存储第一值1时输出预定电流量或在存储第二值0时输出可忽略不计电流量。
[0342] 在一个实施例中,当带符号输入是0时,将低于第一电平的电压施加于对应存储器胞元组;及当带符号输入是+1或‑1时,将预定读取电压施加于对应存储器胞元组的至少一个第一存储器胞元且将低于第一电平的电压施加于对应组的至少一个第二存储器胞元。
[0343] 在一个实施例中,一种方法包括:对存储器胞元阵列中的存储器胞元组编程,其中每一组存储器胞元可编程以存储带符号权值用于矩阵向量乘法;将电压施加于存储器胞元组用于执行乘法,电压表示与带符号权值相乘的带符号输入(例如基于由图1的图像感测像素阵列111收集的数据的输入);使用耦合到每一组中的存储器胞元的至少一个共同线来加总来自存储器胞元的输出电流;及基于来自存储器胞元的加总输出电流来使用至少一个数字转换器(例如电流数字转换器117)产生乘法的至少一个结果。
[0344] 在一个实施例中,电压经施加使得存储器胞元在乘法期间保持于亚阈值模式中。
[0345] 与用于使用各自含有两个存储器胞元的组来执行带符号乘法的存储器装置相关的各种实施例现在下文描述。下文描述的通用性不受上述各种实施例限制。
[0346] 在一个存储器胞元实施方案中,对其中每一组具有两个存储器胞元(组织为存储器胞元对的组)的存储器胞元阵列执行带符号乘法。在一个实例中,使用电阻随机存取存储器(RRAM)胞元。在一个实例中,使用NAND或NOR快闪存储器胞元。
[0347] 在一个实施例中,带符号1位数(例如输入及/或权值)具有三种可能值中的一者:‑1、0、1。举例来说,带符号权值可由2位数表示,如上文描述。带符号权值可由存储于存储器胞元对中的值表示。一位值可存储于对的第一胞元中,且第二位值存储于对的第二胞元中。
两个位值表示1位带符号权值。
[0348] 在一个实施例中,两胞元实施方案用于带符号1位与1位乘法。组的两个存储器胞元用于以两位表示来存储带符号1位权值的两个位。
[0349] 两个输入线用于在第一时刻(例如第一时钟循环T0)应用带符号1位输入的两个位(两位表示)(本文中有时也称为“正版本”)及接着在第二时刻(例如第二时钟循环T1)应用输入的负版本。
[0350] 在一个实例中,输入线提供图12的电压1205、1215。在一个实例中,输入线可为字线、位线或选择栅极线(SL),取决于存储器胞元的类型及特定组配置(例如,关于NAND快闪串联布置的存储器胞元对关于RRAM或NOR并联布置的存储器胞元)。
[0351] 第一存储器胞元经由1位与1位乘法乘以第一输入线(例如,类似于针对图2所描述)。第二存储器胞元经由1位与1位乘法乘以第二输入线(例如,类似于针对图2所描述)。输出电流加总于线上。在一个实例中,线是1241。
[0352] 线上第一时刻(例如第一时钟循环)的结果(例如0或1)与带符号1位与1位乘法(两位表示)的第一位相同。线上第二时刻(例如第二时钟循环)的结果(例如0或1)与带符号1位与1位乘法(两位表示)的第二位相同。在一个实例中,这第一及第二位结果提供图12的1位带符号结果1237。
[0353] 在一个实施例中,存储于第一及第二存储器胞元中的带符号权值的2个位(见下表中的“2位存储”)如在下表中陈述。带符号输入的正及负版本如在下表中陈述。举例来说,针对带符号输入‑1,值01在第一时钟循环上输入,且值10在第二时钟循环上输入(在表中表示为01、10)。乘法的结果在带符号输入与带符号权值的相交点处给出。举例来说,带符号输入‑1乘以带符号权值‑1提供2位结果1、0。
[0354]
[0355] 在一个实例中,控制器(例如图1的124)引起电压驱动器在第一时间施加对应于带符号输入+1的两个输入电压(例如,其表示2个位10)以得到第一位结果,接着在第二时间针对输入的负版本施加两个输入电压(例如,其表示2个位01)以得到第二位结果。举例来说,针对存储权值+1,第一位结果是1且第二位结果是0(例如,见上表中的右下角的结果)。
[0356] 在其它实施例中,可使用上表的逻辑配置的等效变化。举例来说,可改变应用输入的正及负版本的顺序。控制器管理位结果极性的适当对应逻辑解译及/或组合以提供正确最终带符号结果来产生作为输出(例如,发送到请求结果的主机)。
[0357] 图15展示根据一个实施例的用于存储用于乘法的带符号权值的一组两个存储器胞元1502、1504。带符号权值由两个位表示。第一位存储于存储器胞元1502中且第二位存储于存储器胞元1504中。在一个实例中,位的值对应于上文论述的带符号输入的表。在一个实例中,存储器胞元1502、1504是图12的存储器胞元1207、1217的实例。
[0358] 电压使用字线1506及位线1508施加于存储器胞元1502。电压使用字线1506及位线1509施加于存储器胞元1504。
[0359] 位线1508通过选择晶体管1512连接到数字线1510。位线1509通过选择晶体管1514连接到数字线1510。选择晶体管1512、1514通过使用选择线1516、1518施加栅极电压来控制。
[0360] 当执行乘法时,带符号输入由施加于选择线1516、1518的电压表示。来自存储器胞元1502、1504的输出电流加总于数字线1510上,例如类似于上文论述。
[0361] 数字转换器1520基于加总输出电流来产生数字位结果1522,例如类似于上文论述。在一个实例中,数字转换器1520是数字转换器1233。
[0362] 第一位结果由数字转换器1520在第一时刻(例如T0)产生,且第二位结果由数字转换器1520在第二时刻(例如T1)产生。第一及第二位表示乘法的带符号结果。
[0363] 在一个实例中,存储器胞元1502、1504经配置为布置于三维存储器胞元阵列中的许多存储器胞元组中的一组。在一个实例中,存储器胞元阵列是图9中说明的阵列。
[0364] 在替代实施例中,存储器胞元1502、1504经配置为布置于平面阵列中的许多存储器胞元组中的一组。平面阵列不使用选择晶体管。来自两个存储器胞元的输出电流加总于位线上。两个不同字线用于选择每一存储器胞元。带符号输入应用于两个字线。
[0365] 图16展示根据一个实施例的用于图15的存储器胞元配置的电压波形。说明位线BL电压及字线WL电压的波形。时间在水平轴上表示。在水平轴上方及下方的竖直方向上表示正及负电压。
[0366] 波形的示范性电压图形在时刻T0及T1应用。电压图形对应于乘法的带符号输入的值。字线与位线电压之间的差是施加于每一存储器胞元的电压,如所说明。
[0367] 图形1620、1622的电压对应于带符号输入负一(‑1)。图形1620的电压施加于第一存储器胞元1502。图形1622的电压施加于第二存储器胞元1504。
[0368] 举例来说,字线波形1602在两个时刻固定于恒定电压处。位线电压1604对应于位值1。位线电压1606对应于位值1。因此,在时间T0,应用输入位1、0,且在时间T1,应用输入位0、1。
[0369] 图底部处的字母“P”及“N”表示带符号输入的正及负版本。然而,所说明正/负极性是任意的且可在其它实施方案中改变。
[0370] 图形1624、1626的电压对应于带符号输入0。在此情况中,字线电压是固定的且位线电压是0。
[0371] 图形1628、1630的电压对应于带符号输入正一(+1)。位线电压1610对应于位值1。位线电压1608对应于位值1。
[0372] 在一个实例中,为这些波形选择的电压图形由控制器124管理。在一个实例中,电压图形由电压驱动器1203、1213施加。
[0373] 在一个实施例中,图15中的输入+及输入‑的名称指代输入极性表示。在四象限胞元中,正及负输入可通过将输入值的量值应用于输入+或输入‑线上来并行表示。输入的符号由这些输入线中的哪一者是有效的而另一线是无效的(例如,没有电压脉冲施加于存储器胞元)表示。其它表示是可能的。
[0374] 在一个实例中,应用于正或负表示的时刻T0及T1是任意的。极性由数字转换器、模/数转换器及/或控制器如何组合两个位结果确定。
[0375] 在一个实例中,数字线的正及负极性(例如图10的DL+及DL‑)是任意的且由控制器124处置。在一个实例中,数字线可被视为第一及第二数字线DL。一个数字线或另一数字线捕获最终经组合以产生带符号输出的负或正比重。
[0376] 图17展示根据一个实施例的用于使用存储于各自含有两个存储器胞元的组中的权值来执行带符号乘法的方法。举例来说,图17的方法可使用图12到16中说明的乘法及累加在图1的集成电路装置101中执行。
[0377] 图17的方法可由处理逻辑执行,处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如运行或执行于处理装置上的指令)或其组合。在一些实施例中,图17的方法至少部分由一或多个处理装置(例如图1的控制器124)执行。
[0378] 尽管以特定序列或顺序展示,但除非另外指定,否则过程的顺序可修改。因此,所说明实施例应被理解为仅作为实例,且所说明过程可以不同顺序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,不是每个实施例中都需要所有过程。其它过程流程是可能的。
[0379] 在框1701处,对存储器胞元组编程以存储带符号权值。在一个实例中,组包含存储器胞元1502、1504。
[0380] 在框1703处,在第一及第二时刻将电压施加于每一组中的第一及第二胞元。在一个实例中,电压在时刻T0及T1施加于选择线1516、1518上。
[0381] 在框1705处,在第一及第二时刻中的每一者期间将来自第一及第二胞元的输出电流加总于每一组的共同线上。在一个实例中,输出电流加总于数字线1510上。
[0382] 在框1707处,基于在第一时刻期间加总输出电流来产生第一数字结果。在一个实例中,数字转换器1520在时间T0产生第一位。
[0383] 在框1709处,基于在第二时刻期间加总输出电流来产生第二数字结果。在一个实例中,数字转换器1520在时间T1产生第二位。
[0384] 在框1711处,组合第一与第二数字结果以提供带符号结果。在一个实例中,组合由数字转换器1520产生的第一与第二位以提供带符号结果。
[0385] 在一个实施例中,一种系统包括:第一集成电路(IC)裸片(例如图1的103),其具有传感器(例如图1的图像感测像素阵列111);第二集成电路(IC)裸片(例如105),其包含具有存储器胞元组的存储器胞元阵列(例如113),其中每一组经配置以存储带符号权值;互连件(例如107),其连接第一及第二IC裸片;电压驱动器(例如115),其经配置以在第一及第二时刻将电压施加于每一组中的第一及第二胞元,其中电压是基于来自传感器的数据且对应于与每一组中的存储权值相乘的带符号输入;接口(例如125),其经配置以与主机通信;及控制器,其经配置以:对每一组编程以存储带符号权值;在第一及第二时刻中的每一者期间将来自第一及第二胞元的输出电流加总于每一组的共同线上;基于在第一时刻期间加总输出电流来产生第一数字结果;基于在第二时刻期间加总输出电流来产生第二数字结果;组合第一与第二数字结果以提供带符号结果(例如结果1237);及经由接口将带符号结果发送到主机。
[0386] 在一个实施例中,存储器胞元阵列中的存储器胞元中的每一者是NOR快闪存储器胞元。
[0387] 在一个实施例中,存储器胞元阵列中的存储器胞元中的每一者是硫属化物存储器胞元。
[0388] 在一个实施例中,带符号权值及带符号输入各自由具有可能值01、00或10的相应2位数表示。
[0389] 在一个实施例中,施加于每一组的电压(例如1205、1215)表示1位带符号输入;且施加电压包括在第一时刻(例如图16的时间T0)应用带符号输入的第一及第二位及在第二时刻(例如图16的时间T1)应用带符号输入的第一及第二位的负版本。
[0390] 在一个实施例中,系统进一步包括耦合到电压驱动器且用于施加电压的第一及第二输入线(例如选择线1516、1518),其中:第一输入线耦合到第一胞元(例如1502)且用于施加对应于第一位的电压;且第二输入线耦合到第二胞元(例如1504)且用于施加对应于第二位的电压。
[0391] 在一个实施例中,第一及第二输入线是字线,且耦合到第一及第二胞元的线是位线。
[0392] 在一个实施例中,一种装置包括:存储器胞元阵列,其具有存储器胞元组,其中每一组包含第一胞元(例如1207)及第二胞元(例如1217),且每一组可编程以存储带符号权值用于执行乘法;电压驱动器,其经配置以在第一及第二时刻将电压施加于每一组中的第一及第二胞元,电压对应于与每一组中的存储权值相乘的带符号输入,其中在第一时刻(例如图16的时间T0)施加的电压表示带符号输入的正版本,且在第二时刻(例如图16的时间T1)施加的电压表示带符号输入的负版本;线,其耦合到每一组中的第一及第二胞元,其中线经配置以在第一及第二时刻中的每一者加总来自第一及第二胞元的输出电流;及每一组的数字转换器(例如1520),数字转换器经配置以基于在第一时刻加总输出电流来提供第一结果且基于在第二时刻加总输出电流来提供第二结果,其中第一与第二结果的组合是带符号结果。
[0393] 在一个实施例中,电压经施加使得每一组中的第一及第二胞元的操作在乘法期间保持于亚阈值模式中。
[0394] 在一个实施例中,带符号结果具有第一及第二位;第一结果是带符号结果的第一位;且第二结果是带符号结果的第二位。
[0395] 在一个实施例中,线是数字线(例如1510),且装置进一步包括:位线(例如1508、1509),其耦合到每一组中的第一及第二胞元;及选择晶体管(例如1512、1514),其经配置以将每一组的位线电连接到数字线。
[0396] 在一个实施例中,将电压施加于第一及第二胞元包括将电压施加于选择晶体管的栅极以在位线上引起电压变化。
[0397] 在一个实施例中,每一组中的第一及第二胞元使用共同字线来存取。
[0398] 在一个实施例中,字线在第一及第二时刻中的每一者期间保持于恒定电压处;且电压驱动器进一步经配置以通过改变连接到每一组中的第一及第二胞元的至少一个位线的电压来施加电压。
[0399] 在一个实施例中,一种设备包括:多组NAND快闪存储器胞元,其中每一组包含第一胞元及第二胞元;及控制器(例如124),其经配置以:对每一组的第一及第二胞元编程以存储相应带符号权值,其中编程包括加偏压于第一及第二胞元的栅极;在第一及第二时刻将电压施加于存储器胞元组,其中针对每一组,电压表示与存储于组中的带符号权值相乘的相应带符号输入;及基于在第一及第二时刻加总来自第一及第二胞元的输出电流来确定每一组的相应带符号结果。
[0400] 在一个实施例中,当执行乘法时,第一及第二胞元通过将相应读取电压施加于第一及第二胞元的栅极来选择。
[0401] 在一个实施例中,具有第一及第二胞元的相应相同串中的非选定胞元通过将旁通电压施加于非选定胞元的栅极来偏压。
[0402] 在一个实施例中,NAND快闪存储器胞元中的每一者连接到用于在执行乘法时施加读取或旁通电压的相应字线。
[0403] 在一个实施例中,控制器进一步经配置以通过接口从主机系统接收与人工神经网络相关联的第一数据;且存储于存储器胞元组中的带符号权值是基于第一数据。
[0404] 在一个实施例中,设备进一步包括耦合到存储器胞元组的位线或字线,其中电压施加于位线或字线。
[0405] 在一个实施例中,一种装置包括:存储器胞元阵列,其具有存储器胞元组,其中每一组包含第一胞元及第二胞元,且每一组可编程以存储带符号权值用于执行乘法;电压驱动器,其经配置以在第一及第二时刻将电压施加于每一组中的第一及第二胞元,电压对应于与每一组中的存储权值相乘的带符号输入;线,其耦合到每一组中的第一及第二胞元,其中线经配置以在第一及第二时刻中的每一者加总来自第一及第二胞元的输出电流;及每一组的数字转换器,数字转换器经配置以基于在第一时刻加总输出电流来提供第一结果且基于在第二时刻加总输出电流来提供第二结果,其中第一与第二结果的组合是带符号结果。
[0406] 在一个实施例中,电压经施加使得每一组中的第一及第二胞元的操作在乘法期间保持于亚阈值模式中。
[0407] 在一个实施例中,在第一时刻施加的电压表示带符号输入的正版本;且在第二时刻施加的电压表示带符号输入的负版本。
[0408] 在一个实施例中,带符号结果具有第一及第二位;第一结果是带符号结果的第一位;且第二结果是带符号结果的第二位。
[0409] 在一个实施例中,线是数字线,且装置进一步包括:位线,其耦合到每一组中的第一及第二胞元;及选择晶体管,其经配置以将每一组的位线电连接到数字线。
[0410] 在一个实施例中,将电压施加于第一及第二胞元包括将电压施加于选择晶体管的栅极以在位线上引起电压变化。
[0411] 在一个实施例中,每一组中的第一及第二胞元使用共同字线来存取。
[0412] 在一个实施例中,字线在第一及第二时刻中的每一者期间保持于恒定电压处(例如图16中的字线波形1602);且电压驱动器进一步经配置以通过改变连接到每一组中的第一及第二胞元的至少一个位线的电压来施加电压(例如图16中的位线波形1604、1606)。
[0413] 在一个实施例中,线是位线。
[0414] 在一个实施例中,施加于每一组的电压表示1位带符号输入;且施加电压包括在第一时刻应用带符号输入的第一及第二位及在第二时刻应用带符号输入的第一及第二位的负版本。
[0415] 在一个实施例中,装置进一步包括耦合到电压驱动器且用于施加电压的第一及第二输入线,其中:第一输入线耦合到第一胞元且用于施加对应于第一位的电压;且第二输入线耦合到第二胞元且用于施加对应于第二位的电压。
[0416] 在一个实施例中,第一及第二输入线是字线,且耦合到第一及第二胞元的线是位线。
[0417] 在一个实施例中,存储器胞元阵列中的存储器胞元中的每一者是NAND或NOR快闪存储器胞元。
[0418] 在一个实施例中,存储器胞元阵列中的存储器胞元中的每一者是硫属化物存储器胞元。
[0419] 在一个实施例中,带符号权值及带符号输入各自由具有可能值01、00或10的相应2位数表示。
[0420] 在一个实施例中,一种设备包括:存储器胞元阵列,其具有存储器胞元组,其中每一组包含第一胞元及第二胞元;及控制器,其经配置以:对每一组的第一及第二胞元编程以存储相应带符号权值;在第一及第二时刻将电压施加于存储器胞元组,其中针对每一组,电压表示与存储于组中的带符号权值相乘的相应带符号输入;及基于在第一及第二时刻加总来自第一及第二胞元的输出电流来确定每一组的相应带符号结果。
[0421] 在一个实施例中,设备进一步包括耦合到每一组的数字转换器,其中数字转换器经配置以产生带符号结果。
[0422] 在一个实施例中,输出电流加总于每一组的耦合到组的第一及第二胞元的相应共同线(例如1510、1241、1243)上。
[0423] 在一个实施例中,共同线是位线或数字线。
[0424] 在一个实施例中,设备进一步包括接口,其可操作以使主机系统将数据写入到存储器胞元阵列中及从存储器胞元阵列读取数据。
[0425] 在一个实施例中,控制器进一步经配置以通过接口从主机系统接收与人工神经网络相关联的第一数据;且存储于存储器胞元组中的带符号权值是基于第一数据。
[0426] 在一个实施例中,设备进一步包括耦合到存储器胞元组的位线或字线,其中电压施加于位线或字线。
[0427] 在一个实施例中,一种方法包括:对存储器胞元组编程以存储带符号权值;在第一及第二时刻将电压施加于每一组中的第一及第二胞元,电压对应于与每一组中的存储权值相乘的带符号输入;在第一及第二时刻中的每一者期间将来自第一及第二胞元的输出电流加总于每一组的共同线上;基于在第一时刻期间加总输出电流来产生第一数字结果;基于在第二时刻期间加总输出电流来产生第二数字结果;及组合第一与第二数字结果以提供带符号结果。
[0428] 与用于使用各自含有四个存储器胞元的组来执行带符号乘法的存储器装置相关的各种实施例现在下文描述。下文描述的通用性不受上述各种实施例限制。
[0429] 在一个存储器胞元实施方案中,对其中每一组具有四个存储器胞元(组织为四个存储器胞元的单元的组)的存储器胞元阵列执行带符号乘法。在一个实例中,使用电阻随机存取存储器(RRAM)胞元。在一个实例中,使用NAND或NOR快闪存储器胞元。
[0430] 在一个实施例中,带符号1位数(例如输入及/或权值)具有三种可能值中的一者:‑1、0、1。举例来说,带符号权值可由2位数表示,如上文描述。带符号权值可由存储于四个胞元的存储器胞元组中的值表示。第一对胞元存储表示1位带符号权值的2个位。第二对胞元存储2个位的负版本。
[0431] 在一个实施例中,四胞元实施方案用于带符号1位与1位乘法。一组的四个存储器胞元用于以两位表示(本文中有时称为“正版本”)同时以两位表示的负版本来存储带符号1位权值的两个位。两个输入线用于应用带符号1输入的两个位(两位表示)。
[0432] 在一个实例中,输入线将电压提供到图12的存储器胞元组1227。组1227具有四个存储器胞元,如上文描述。在一个实例中,输入线可为字线、位线或选择栅极线(SL),取决于存储器胞元的类型及特定组配置(例如,关于NAND快闪串联布置的存储器胞元对关于RRAM或NOR并联布置的存储器胞元)。
[0433] 第一对存储器胞元乘以带符号输入。输出电流加总于第一线上。在一个实例中,第一线是1241。第二对存储器胞元也乘以带符号输入。输出电流加总于第二线上。在一个实例中,线是1243。
[0434] 第一线的位结果(例如0或1)提供带符号1位与1位乘法(两位表示)的第一位。第二线的位结果(例如0或1)提供带符号1位与1位乘法(两位表示)的第二位。在一个实例中,这第一及第二位结果提供图12的1位带符号结果1237。
[0435] 在一个实施例中,存储于一组的四个存储器胞元中的带符号权值的2个位(见下表中的“2位存储”)如在下表中陈述。带符号权值的正及负版本如在下表中陈述。举例来说,针对带符号权值‑1,值01存储于第一对胞元中且值10存储于第二对胞元中(在表中表示为标题的第二行中的01、10)。乘法的结果在带符号输入与带符号权值的相交点处给出。举例来说,带符号输入‑1乘以带符号权值‑1提供2位结果1、0。
[0436]
[0437] 在一个实例中,控制器(例如图1的124)引起电压驱动器施加对应于带符号输入+1的两个输入电压(例如,其表示2个位10)。电压施加于第一及第二对存储器胞元,如上文描述。通过加总输出电流,第一线提供第一位结果且第二线提供第二位结果,如上文描述。举例来说,针对存储权值+1,来自第一线1241的第一位结果是1且来自第二线1243的第二位结果是0(例如,见上表中的右下角的结果)。
[0438] 在一个实例中,一组存储器胞元经配置于NAND快闪存储器阵列中,例如图10中说明。组包含第一对存储器胞元1008、1009及第二对存储器胞元1006、1007。两个选择线SL用于施加对应于带符号输入的2个位的两个电压。电压施加于选择晶体管(例如1012、1014)的栅极。第一及第二数字线1016、1018用于加总电流以提供带符号结果的2个位,如上文描述。
[0439] 在一个实例中,存储器阵列包含一组四个RRAM胞元906、907、908、909,如图9中说明。RRAM胞元的第一对以两位表示来存储带符号1位权值的两个位。RRAM胞元的第二对存储带符号1位权值的负版本的两个位(两位表示)。两个输入线(例如选择线SL)用于应用带符号1输入的两个位(两位表示)。电流加总于数字线914、916上。
[0440] 在一个实施例中,输入线与前两个存储器胞元之间的1位乘1位乘法及加总如针对图12的存储器胞元1207、1217描述般进行,其中输出电流加总于线1241上。此同样适用于输入线与后两个存储器胞元之间的乘法及加总,其中输出电流加总于线1243上。
[0441] 输入线与前两个存储器胞元之间的乘法的位结果由线1241的数字转换器1233确定。输入线与后两个存储器胞元之间的乘法的位结果由线1243的数字转换器1233确定。因此,位结果提供带符号1位与1位乘法的带符号结果1237的两个位(两位表示)。
[0442] 在其它实施例中,可使用上表的逻辑配置的等效变化。举例来说,可改变应用输入的正及负版本的顺序。控制器管理位结果极性的适当对应逻辑解译及/或组合以提供正确最终带符号结果来产生作为输出(例如,发送到请求结果的主机)。
[0443] 图18展示根据一个实施例的具有两个数字转换器1840、1842且使用一组四个存储器胞元来存储带符号权值的乘法架构。第一对存储器胞元1802、1806存储带符号权值的正版本。第二对存储器胞元1804、1808存储带符号权值的负版本,如上文论述。
[0444] 电压使用字线1810及位线1828、1829、1832、1833施加于存储器胞元。位线使用选择晶体管1816、1820、1818、1822耦合到选择线1812、1814,例如上文描述。
[0445] 带符号输入的两个位由使用选择线1812、1814施加于选择晶体管的栅极的电压表示。输入的第一位使用选择线1812应用。第二位使用选择线1814应用。
[0446] 为了执行乘法,输出电流加总于数字线1830、1834上。数字转换器1824基于数字线1830上的加总输出电流来产生第一位1840。数字转换器1826基于数字线1834上的加总输出电流来产生第二位1842。位1840、1842提供带符号结果。
[0447] 图19展示根据一个实施例的具有用于组合来自两个共同线的输出电流的模拟电路系统1902且使用一组四个存储器胞元来存储带符号权值的乘法架构。图19的架构类似于图18的架构,下文描述除外。
[0448] 模拟电路系统1902组合来自数字线1830、1834的加总输出电流。模拟电路系统1902提供由数字转换器1924使用的输出信号来产生带符号结果1940。在一个实例中,带符号结果1940提供为两个位(例如01或11)。
[0449] 图20展示根据一个实施例的用作图18或图19的存储器胞元配置的带符号输入的电压波形。说明位线BL电压及字线WL电压的波形。时间在水平轴上表示。在水平轴上方及下方的竖直方向上表示正及负电压。关于上图16,如果位线电压是0,那么波形与水平轴重合(且未单独展示)。
[0450] 波形的示范性电压图形在时间T(例如,在相同时钟循环中)应用。电压图形对应于乘法的带符号输入的值。字线与位线电压之间的差是施加于每一存储器胞元的电压,如所说明。
[0451] 图形2020、2022的电压对应于带符号输入负一(‑1)。图形2020的电压(例如,对应于第一位输入+)施加于存储器胞元1802、1804。图形2022的电压(例如,对应于第二位输入‑)施加于存储器胞元1806、1808。
[0452] 举例来说,字线波形2002固定于恒定电压处。位线电压2004对应于位值1。因此,例如,在时间T,应用输入位0、1。应注意,图20的示范性正/负极性是任意的且可在其它实施方案中改变。
[0453] 图形2024、2026的电压对应于带符号输入0。在此情况中,针对两个位,字线电压是固定的且位线电压是0。
[0454] 图形2028、2030的电压对应于带符号输入正一(+1)。位线电压2006对应于位值1。因此,应用输入位1、0。
[0455] 在一个实例中,为这些波形选择的电压图形由控制器124管理。在一个实例中,电压图形由电压驱动器1223施加。
[0456] 在一个实例中,正或负表示是任意的。极性由数字转换器、模/数转换器及/或控制器如何组合带符号结果的两个位结果确定。
[0457] 在一个实例中,数字线的正及负极性(例如图10的DL+及DL‑)是任意的且由控制器124处置。在一个实例中,数字线可被视为第一及第二数字线DL。一个数字线或另一数字线捕获最终经组合以产生带符号输出的负或正比重。
[0458] 图21展示根据一个实施例的用于使用存储于各自含有四个存储器胞元的组中的权值来执行带符号乘法的方法。举例来说,图21的方法可使用图12、18到20中说明的乘法及累加在图1的集成电路装置101中执行。
[0459] 图21的方法可由处理逻辑执行,处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如运行或执行于处理装置上的指令)或其组合。在一些实施例中,图21的方法至少部分由一或多个处理装置(例如图1的控制器124)执行。
[0460] 尽管以特定序列或顺序展示,但除非另外指定,否则过程的顺序可修改。因此,所说明实施例应被理解为仅作为实例,且所说明过程可以不同顺序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,不是每个实施例中都需要所有过程。其它过程流程是可能的。
[0461] 在框2101处,对每一组中具有四个存储器胞元的组编程以将带符号权值存储于每一组中。在一个实例中,存储器胞元1802、1804、1806、1808经编程以存储带符号权值。
[0462] 在框2103处,将电压施加于每一组中的四个存储器胞元。电压对应于带符号输入。在一个实例中,电压使用选择线1812、1814施加于存储器胞元。选择线接通选择晶体管
1816、1818、1820、1822中的一些或全部,取决于相应输入的位值。
[0463] 在框2105处,将来自第一及第二胞元的输出电流加总于第一线上。在一个实例中,第一线是数字线1830。
[0464] 在框2107处,将来自第三及第四胞元的输出电流加总于第二线上。在一个实例中,第二线是数字线1834。
[0465] 在框2109处,为每一组提供带符号结果。带符号结果是基于第一及第二线的加总输出电流。在一个实例中,数字转换器1824、1826提供带符号结果。在一个实例中,数字转换器1924提供带符号结果。
[0466] 在一个实施例中,一种装置包括:存储器胞元阵列,其具有存储器胞元组,其中每一组包含可编程以存储带符号权值的第一及第二胞元(例如1802、1806)及可编程以存储带符号权值的负版本的第三及第四胞元(例如1804、1808);电压驱动器(例如1223),其经配置以将电压施加于每一组中的第一、第二、第三及第四胞元,电压对应于与每一组中的带符号权值相乘的带符号输入;第一线(例如1241),其耦合到每一组中的第一及第二胞元,其中第一线经配置以加总来自第一及第二胞元的输出电流;第二线(例如1243),其耦合到每一组中的第三及第四胞元,其中第二线经配置以加总来自第三及第四胞元的输出电流;每一组的第一数字转换器(例如1233),第一数字转换器经配置以基于加总来自第一及第二胞元的输出电流来提供第一结果;及每一组的第二数字转换器(例如1233),第二数字转换器经配置以基于加总来自第三及第四胞元的输出电流来提供第二结果;其中第一与第二结果的组合是来自带符号输入乘以带符号权值的带符号结果(例如1237)。
[0467] 在一个实施例中,带符号权值是带符号1位权值;第一及第二胞元用于存储带符号1位权值的两个位;且第三及第四胞元用于存储带符号1位权值的负版本的两个位。
[0468] 在一个实施例中,装置进一步包括经配置以将带符号输入的两个位应用于每一组存储器胞元的两个输入线(例如选择线1812、1814)。
[0469] 在一个实施例中,电压经施加使得每一组中的第一、第二、第三及第四胞元的操作在执行乘法时保持于亚阈值模式中。
[0470] 在一个实施例中,带符号结果具有第一及第二位;第一结果是带符号结果的第一位;且第二结果是带符号结果的第二位。
[0471] 在一个实施例中,施加于每一组的电压表示1位带符号输入。施加电压包括将带符号输入的第一位应用于第一及第三胞元及将带符号输入的第二位应用于第二及第四胞元。
[0472] 在一个实施例中,装置进一步包括耦合到电压驱动器且用于施加电压的第一及第二输入线,其中:第一输入线(例如选择线1812)耦合到第一及第三胞元且用于施加对应于第一位的至少一个电压;且第二输入线(例如选择线1814)耦合到第二及第四胞元且用于施加对应于第二位的至少一个电压。
[0473] 在一个实施例中,装置进一步包括:位线(例如1828、1829、1832、1833),其耦合到每一组中的第一、第二、第三及第四胞元;及选择晶体管(例如1816、1818、1820、1822),其经配置以将每一组的位线电连接到第一及第二线;其中电压施加于选择晶体管的栅极以在位线上引起电压变化。
[0474] 在一个实施例中,每一组中的第一、第二、第三及第四胞元使用共同字线(例如1810)来存取。
[0475] 在一个实施例中,施加电压包括:使每一组中的共同字线保持于恒定电压处;及改变连接到每一组中的第一、第二、第三及第四胞元的位线上的电压,其中位线上的电压基于组的带符号输入的值来改变。
[0476] 在一个实施例中,第一数字转换器(例如1824)耦合到第一数字线(例如1830),且第二数字转换器(例如1826)耦合到第二数字线(例如1834)。
[0477] 在一个实施例中,一种设备包括:半导体衬底(例如1302);存储器胞元阵列(例如1304),其布置为每组至少四个存储器胞元的组,其中每一组存储器胞元可编程以存储带符号权值用于执行乘法,其中存储器胞元组织于胞元的水平层级中,且其中层级竖直堆叠于半导体衬底上方;及控制器(例如124),其经配置以:对每一组的第一及第二胞元编程以存储带符号权值且对每一组的第三及第四胞元编程以存储带符号权值的负版本;将电压施加于存储器胞元组,其中针对每一组,电压表示与存储于组中的带符号权值相乘的相应带符号输入;及基于将来自第一及第二胞元的输出电流加总于第一线上及将来自第三及第四胞元的输出电流加总于第二线上来确定每一组的相应带符号结果。
[0478] 在一个实施例中,设备进一步包括每一组存储器胞元的第一及第二数字转换器(例如1340),其中:第一数字转换器经配置以基于将输出电流加总于第一线上来提供第一结果;第二数字转换器经配置以基于将输出电流加总于第二线上来提供第二结果;且相应带符号结果是第一与第二结果的组合。
[0479] 在一个实施例中,设备进一步包括接口(例如125),其可操作以使主机将数据写入到存储器胞元阵列中及从存储器胞元阵列读取数据。
[0480] 在一个实施例中,控制器进一步经配置以通过接口从主机接收与人工神经网络相关联的第一数据;存储于存储器胞元组中的带符号权值是基于第一数据;且带符号权值用于矩阵向量乘法以提供每一组的带符号结果。
[0481] 在一个实施例中,一种系统包括:多个存储器胞元,其组织为组(例如1227),其中每一组包含可编程以存储带符号权值的第一及第二胞元及可编程以存储带符号权值的负版本的第三及第四胞元;电压驱动器,其经配置以将电压施加于每一组中的第一、第二、第三及第四胞元,电压对应于与每一组中的带符号权值相乘的带符号输入;第一线,其耦合到每一组中的第一及第二胞元,其中第一线经配置以加总来自第一及第二胞元的输出电流;第二线,其耦合到每一组中的第三及第四胞元,其中第二线经配置以加总来自第三及第四胞元的输出电流;模拟电路系统(例如1902),其经配置以组合每一组的第一及第二线的加总输出电流;及每一组的数字转换器(例如1924),数字转换器耦合到模拟电路系统且经配置以提供来自带符号输入乘以带符号权值的带符号结果(例如1940),其中带符号结果是基于由模拟电路系统组合加总输出电流来确定。
[0482] 在一个实施例中,第一线是第一数字线且第二线是第二数字线。系统进一步包括:位线,其耦合到每一组中的第一、第二、第三及第四胞元;及选择晶体管,其经配置以将每一组的位线电连接到第一及第二数字线。
[0483] 在一个实施例中,多个存储器胞元中的每一者是NAND或NOR快闪存储器胞元。
[0484] 在一个实施例中,多个存储器胞元中的每一者是硫属化物存储器胞元。
[0485] 在一个实施例中,带符号权值及带符号输入各自由具有可能值01、00或10的相应2位数表示。
[0486] 在一个实施例中,一种装置包括:存储器胞元阵列,其具有存储器胞元组,其中每一组包含可编程以存储带符号权值的第一及第二胞元及可编程以存储带符号权值的负版本的第三及第四胞元;电压驱动器(例如1320),其经配置以将电压(例如见图20)施加于每一组中的第一、第二、第三及第四胞元,电压对应于与每一组中的带符号权值相乘的带符号输入;第一线,其耦合到每一组中的第一及第二胞元,其中第一线经配置以加总来自第一及第二胞元的输出电流;第二线,其耦合到每一组中的第三及第四胞元,其中第二线经配置以加总来自第三及第四胞元的输出电流;每一组的第一数字转换器,第一数字转换器经配置以基于加总来自第一及第二胞元的输出电流来提供第一结果;及每一组的第二数字转换器,第二数字转换器经配置以基于加总来自第三及第四胞元的输出电流来提供第二结果;其中第一与第二结果的组合是来自带符号输入乘以带符号权值的带符号结果。
[0487] 在一个实施例中,带符号权值是带符号1位权值;第一及第二胞元用于存储带符号1位权值的两个位;且第三及第四胞元用于存储带符号1位权值的负版本的两个位。
[0488] 在一个实施例中,装置进一步包括经配置以将带符号输入的两个位应用于每一组存储器胞元的两个输入线(例如两个选择线1314)。
[0489] 在一个实施例中,两个输入线是字线或栅极线(例如选择线1812、1814)。
[0490] 在一个实施例中,电压经施加使得每一组中的第一、第二、第三及第四胞元的操作在执行乘法时保持于亚阈值模式中。
[0491] 在一个实施例中,带符号结果具有第一及第二位;第一结果是带符号结果的第一位;且第二结果是带符号结果的第二位。
[0492] 在一个实施例中,施加于每一组的电压表示1位带符号输入。施加电压包括将带符号输入的第一位应用于第一及第三胞元及将带符号输入的第二位应用于第二及第四胞元。
[0493] 在一个实施例中,装置进一步包括耦合到电压驱动器且用于施加电压的第一及第二输入线,其中:第一输入线耦合到第一及第三胞元且用于施加对应于第一位的至少一个电压;且第二输入线耦合到第二及第四胞元且用于施加对应于第二位的至少一个电压。
[0494] 在一个实施例中,第一及第二输入线是字线且第一及第二线是位线。
[0495] 在一个实施例中,第一线是第一数字线且第二线是第二数字线。装置进一步包括:位线,其耦合到每一组中的第一、第二、第三及第四胞元;及选择晶体管,其经配置以将每一组的位线电连接到第一及第二数字线。
[0496] 在一个实施例中,电压施加于选择晶体管的栅极以在位线上引起电压变化。
[0497] 在一个实施例中,每一组中的第一、第二、第三及第四胞元使用共同字线来存取。
[0498] 在一个实施例中,施加电压包括:使每一组中的共同字线保持于恒定电压处;及改变连接到每一组中的第一、第二、第三及第四胞元的位线上的电压,其中位线上的电压基于组的带符号输入的值来改变。
[0499] 在一个实施例中,第一数字转换器耦合到第一数字线且第二数字转换器耦合到第二数字线。
[0500] 在一个实施例中,存储器胞元阵列中的存储器胞元中的每一者是NAND或NOR快闪存储器胞元。
[0501] 在一个实施例中,存储器胞元阵列中的存储器胞元中的每一者是硫属化物存储器胞元。
[0502] 在一个实施例中,带符号权值及带符号输入各自由具有可能值01、00或10的相应2位数表示。
[0503] 在一个实施例中,一种装置包括:存储器胞元阵列,其具有存储器胞元组,其中每一组包含可编程以存储带符号权值的第一及第二胞元及可编程以存储带符号权值的负版本的第三及第四胞元;电压驱动器,其经配置以将电压施加于每一组中的第一、第二、第三及第四胞元,电压对应于与每一组中的带符号权值相乘的带符号输入;第一线,其耦合到每一组中的第一及第二胞元,其中第一线经配置以加总来自第一及第二胞元的输出电流;第二线,其耦合到每一组中的第三及第四胞元,其中第二线经配置以加总来自第三及第四胞元的输出电流;模拟电路系统,其经配置以组合第一及第二线的加总输出电流;及每一组的数字转换器,数字转换器耦合到模拟电路系统且经配置以提供来自带符号输入乘以带符号权值的带符号结果,其中带符号结果是基于由模拟电路系统组合加总输出电流来确定。
[0504] 在一个实施例中,一种设备包括:存储器胞元阵列,其布置为每组至少四个存储器胞元的组;及控制器,其经配置以:对每一组的第一及第二胞元编程以存储带符号权值且对每一组的第三及第四胞元编程以存储带符号权值的负版本;将电压施加于存储器胞元组,其中针对每一组,电压表示与存储于组中的带符号权值相乘的相应带符号输入;及基于将来自第一及第二胞元的输出电流加总于第一线上及将来自第三及第四胞元的输出电流加总于第二线上来确定每一组的相应带符号结果。
[0505] 在一个实施例中,设备进一步包括每一组存储器胞元的第一及第二数字转换器,其中:第一数字转换器经配置以基于将输出电流加总于第一线上来提供第一结果;且第二数字转换器经配置以基于将输出电流加总于第二线上来提供第二结果;且相应带符号结果是第一与第二结果的组合。
[0506] 在一个实施例中,设备进一步包括接口,其可操作以使主机将数据写入到存储器胞元阵列中及从存储器胞元阵列读取数据。
[0507] 在一个实施例中,控制器进一步经配置以通过接口从主机接收与人工神经网络相关联的第一数据;存储于存储器胞元组中的带符号权值是基于第一数据;且带符号权值用于矩阵向量乘法以提供每一组的带符号结果。
[0508] 在一个实施例中,一种方法包括:对四个存储器胞元的组编程(例如,使用控制器124的固件)以将带符号权值存储于每一组中;将电压施加于每一组中的四个存储器胞元,电压对应于与组中的存储权值相乘的带符号输入;将来自第一及第二胞元的输出电流加总于第一线(例如1830)上;将来自第三及第四胞元的输出电流加总于第二线(例如1834)上;
基于将来自第一及第二胞元的输出电流加总于第一线上来产生第一结果;基于将来自第三及第四胞元的输出电流加总于第二线上来产生第二结果;及组合第一与第二结果以提供每一组的带符号结果。
[0509] 与加总来自由存储器胞元组执行的带符号乘法的输出的存储器装置相关的各种实施例现在下文描述。下文描述的通用性不受上述各种实施例限制。
[0510] 在一个实施方案中,存储器胞元阵列具有组织为固定数目个存储器胞元(例如每组两个或四个胞元,例如上述)的单元的组。每一组执行带符号乘法(例如,组的带符号输入乘以由组存储的带符号权值)以提供带符号结果作为输出。这些输出加总于一或多个共同线(例如位线)上以提供加总的带符号结果。
[0511] 在一个实施例中,存储器装置使用组织为存储器胞元组的存储器胞元阵列。在一个实例中,使用电阻随机存取存储器(RRAM)胞元。在一个实例中,使用NAND或NOR快闪存储器胞元。
[0512] 每一组可编程以存储带符号权值。在编程之后,电压驱动器将电压施加于每一组中的存储器胞元。电压表示与每一组的带符号权值相乘的带符号输入。
[0513] 一或多个共同线耦合到每一组。线从每一组中的存储器胞元接收一或多个输出电流(例如,如上文针对两个或四个胞元的组论述)。每一共同线累加电流以加总来自组的输出电流。
[0514] 在一个实例中,线是竖直延伸于半导体衬底上方的位线,如上文针对图13论述。作为实例,512个存储器胞元组耦合到线。来自512组中的每一者的输出电流收集于线上,且接着一或多个总电流量值经数字化以提供一或多个数字值(例如来自乘法输出的加总的带符号结果的第一及第二位)。
[0515] 在一个实例中,存储器装置包含一或多个数字转换器。数字转换器基于加总来自512组中的每一者的输出电流来提供带符号结果。
[0516] 在一个实施例中,存储器装置实施带符号1位与1位乘法的输出的加总。一列带符号1位与1位乘法的结果的每一位经由将输出电流连接到相应第一及第二线来加总。在一个实例中,每一位是下表中的结果的2个位中的一者(例如+1×‑1乘法的0、1),表是针对上述四胞元组实施方案描述。
[0517]
[0518] 第一线上的电流的第一数字计数(例如整数)针对第一位加总为表示1的预定电流(例如,如上文描述)的倍数。第二线上的电流的第二数字计数针对第二位加总为预定电流的倍数。例如,第一及第二数字计数是来自数字转换器的输出。
[0519] 第一及第二计数的量值可减小两个计数中的较小者以抵消被合计的项中的相等数目个1及‑1表示。在此量值减小之后,加总的符号由0的位置表示(例如,如果在第一位中,那么为负,如果在第二位中,那么为正)。结果的量值由非零计数表示(例如,在第一位中或在第二位中)。
[0520] 图22展示根据一个实施例的用于在两个不同时刻使用单个线来加总来自乘法的输出的乘法架构。电压驱动器2223、2224、2225将电压施加于存储器胞元组2227、2228、2229中的每一者中的两个或更多个存储器胞元。施加于每一组的电压对应于所述组的相应带符号输入。
[0521] 每一组存储带符号权值。在一个实例中,每一组具有两个胞元。在一个实例中,每一组具有与图15或图18中说明的架构类似的架构。带符号输入乘以每一组的存储权值以提供来自所述组的输出,其是乘法的结果。举例来说,如上文描述,输出由来自每一组的一或多个胞元的一或多个输出电流表示。输出电流累加于线2280上。
[0522] 来自组的乘法结果的输出的加总由加总电流2251表示。举例来说,如上文描述,电流的总和是预定量的单位电流的倍数。加总电流2251由一或多个数字转换器2263转换成一或多个数字值(例如,类似于上文描述)。
[0523] 在一个实施例中,数字转换器2263是逻辑电路系统2290的部分,逻辑电路系统2290使用来自数字转换器2263的数字值来确定带符号结果2277。在一个实例中,带符号结果2277由数字转换器2263确定的两个值(例如图24的总和2406)表示。两个值中的第一值基于在第一时刻T0累加线2280上的电流来确定。两个值中的第二值基于在第二时刻T1累加线
2280上的电流来确定。在一个实例中,电压施加于存储器胞元组,类似于图16中说明。
[0524] 存储器胞元组2227在时间T0产生电流2231且在时间T1产生电流2247。在一个实例中,电流2231、2247对应于累加于图15的数字线1510上的输出电流。组2228类似地在时间T0、T1提供电流2232、2248。组2229类似地在时间T0、T1提供电流2233、2249。
[0525] 时间T0处的输出电流经加总以提供加总电流2251,其对应于带符号结果2277的第一值。时间T1处的输出电流经加总以提供加总电流2251,其对应于带符号结果2277的第二值。数字转换器2263提供呈数字形式的第一及第二值。两个值一起表示带符号结果的量值及符号。
[0526] 在一个实施例中,逻辑电路系统2290确定来自数字转换器2263的两个值的量值差。从两个值中的最大者减去差。减法之后的最大值的量值(减小总和)是带符号结果2277的量值。带符号结果2277的符号由通过减法减小到值0的两个值中的一者确定。举例来说,如果第一值(减小总和)在减法之后是0,那么带符号结果2277是负。如果第二值在减法之后是0,那么带符号结果2277是正。
[0527] 图23展示根据一个实施例的用于在同一时间使用两个线来加总来自乘法的输出的乘法架构。在一个实例中,来自乘法的输出在相同时钟循环中加总。
[0528] 电压驱动器2323、2324、2325将电压施加于组2327、2328、2329中的每一者中的四个或更多个存储器胞元。来自组的输出电流累加于线2380、2381上。累加于线2380上的电流的总和对应于带符号结果2377的第一值(第一位的总和)。累加于线2381上的电流的总和对应于带符号结果2377的第二值(第二位的总和)。
[0529] 举例来说,来自组2327的输出电流2331、2347如说明般累加。电流2331对应于由组2327产生的乘法结果的第一位。电流2347对应于乘法结果的第二位。
[0530] 来自组2328的电流2332、2348对应于由组2328产生的乘法结果的第一及第二位。来自组2329的电流2333、2349对应于由组2329产生的乘法结果的第一及第二位。
[0531] 在一个实例中,电流2331是累加于图18的数字线1830上的输出电流中的一者。电流2347是累加于图18的数字线1834上的输出电流中的一者。
[0532] 来自线2380的加总电流2351由数字转换器2363数字化以提供对应于带符号结果2377的第一值的数字数。来自线2381的加总电流2351由数字转换器2363数字化以提供对应于带符号结果2377的第二值的数字数。
[0533] 如上文提及,例如,逻辑电路系统2390使用由数字转换器2363提供的这第一及第二数字值来确定带符号结果2377的量值及符号。带符号结果2377的量值是基于第一与第二值的量值之间的差。带符号结果2377的符号对应于具有最小量值的第一及第二值中的一者。
[0534] 在一个实例中,电压驱动器2323、2324、2325施加对应于与存储于组2327、2328、2329中的一列带符号权值相乘的一列带符号输入的电压。这些乘法的总和是带符号结果
2377。
[0535] 在一个实施例中,组2327、2328、2329使用存储器胞元阵列113的存储器胞元来配置。数据由图像感测像素阵列111收集。数据由控制器124用于确定带符号输入及控制由电压驱动器2323、2324、2325施加的电压。
[0536] 在一个实施例中,组2327、2328、2329中的存储器胞元响应于通过接口125从主机接收的写入命令而编程。在一个实施例中,带符号结果2377发送到主机。在一个实施例中,带符号结果2377响应于通过接口125从主机接收到读取命令而发送到主机。
[0537] 图24到26展示根据一个实施例的加总计数的示范性减小。计数指代对应于输出电流的加总的数字值,如上文论述。在一个实例中,两个数字值由数字转换器2263、2363提供。
[0538] 作为实例,图24的表中说明的每一行2402是从由多组中的每一者执行的乘法输出的结果的数字表示。每一结果具有两个位。第一位对应于线1,且第二位对应于线2,每一线用于加总输出。
[0539] 在一个实例中,组是2327、2328、2329。线1是线2380的实例。线2是线2381的实例。
[0540] 计数经加总以提供线1、2中的每一者的总和2406。带符号结果的量值2408由总和2406的量值差确定。带符号结果的符号2409由具有最低量值的线1或2的线位置确定。
[0541] 量值2408也可被视为在从总和2406中的较大者减去总和2406中的较小者之后剩余的量值(例如2‑1=1)。符号2409也可被视为在从每一总和减去总和中的最小者(有时称为减小所述最小者)之后具有0值的总和1、2中的一者(例如1‑1=0)。
[0542] 如所说明,在上述减法/减小之后,带符号结果具有1的量值2408及正号2409。
[0543] 作为另一实例,图25的表中说明的每一行2502是从由多组中的每一者执行的乘法输出的结果的数字表示。每一结果具有两个位。第一位对应于线1,且第二位对应于线2,类似于上文。
[0544] 在一个实例中,组是2327、2328、2329。线1是线2380的实例。线2是线2381的实例。
[0545] 计数针对线1、2中的每一者加总,类似于上文描述。带符号结果的量值2506由总和的量值差确定。带符号结果的符号2504由具有最低量值的线1或2的位置确定。
[0546] 量值2506也可被视为在从较大总和2减去较小总和1之后剩余的量值(例如2‑1=1)。符号2504也可被视为在从每一总和减去总和中的最小者之后具有0值的总和1、2中的一者(例如1‑1=0)。
[0547] 如所说明,带符号结果具有1的量值2506及负号2504。
[0548] 作为另一实例,图26的表中说明的每一行2602是从由多组中的每一者执行的乘法输出的结果的数字表示。每一结果具有两个位。第一位对应于线1且第二位对应于线2。
[0549] 在一个实例中,组是2327、2328、2329。线1是线2380的实例。线2是线2381的实例。
[0550] 计数针对线1、2中的每一者加总,类似于上文描述。带符号结果的量值2606由总和的量值差确定。带符号结果的符号2604由具有最低量值的线1或2的位置确定。
[0551] 量值2606也可被视为在从较大总和1减去较小总和2之后剩余的量值(例如5‑1=4)。符号2604也可被视为在从每一总和减去总和中的最小者之后具有0值的总和1、2中的一者(例如1‑1=0)。
[0552] 如所说明,带符号结果具有4的量值2606及正号2604。
[0553] 在一个实例中,带符号结果的量值及符号由逻辑电路系统2290、2390确定。在一个实例中,带符号结果的量值及符号由控制器124确定。
[0554] 图27展示根据一个实施例的用于执行来自由存储器胞元组执行的带符号乘法的输出的加总的方法。举例来说,图27的方法可使用图22及23中说明的乘法及累加在图1的集成电路装置101中执行。
[0555] 图27的方法可由处理逻辑执行,处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如运行或执行于处理装置上的指令)或其组合。在一些实施例中,图27的方法至少部分由一或多个处理装置(例如图1的控制器124)执行。
[0556] 尽管以特定序列或顺序展示,但除非另外指定,否则过程的顺序可修改。因此,所说明实施例应被理解为仅作为实例,且所说明过程可以不同顺序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,不是每个实施例中都需要所有过程。其它过程流程是可能的。
[0557] 在框2701处,对存储器胞元组编程以将带符号权值存储于每一组中。在一个实例中,对组2227、2228、2229编程。在一个实例中,对组2327、2328、2329编程。
[0558] 在框2703处,将电压施加于每一组中的存储器胞元。电压对应于带符号输入。电压可在给定时刻或时钟循环施加于每一组中的存储器胞元的仅一部分。在一个实例中,电压由电压驱动器2223、2224、2225施加。在一个实例中,电压由电压驱动器2323、2324、2325施加。
[0559] 在框2705处,将来自每一组的输出电流加总于第一线上。替代地,来自每一组的输出电流在第一时刻加总于共同线上。在一个实例中,第一线是线2380。在一个实例中,共同线是线2280。
[0560] 在框2707处,将来自每一组的输出电流加总于第二线上。替代地,来自每一组的输出电流在第二时刻加总于共同线上。在一个实例中,第二线是线2381。在一个实例中,第一及第二时刻是图16的时间T0、T1。
[0561] 在框2709处,基于加总输出电流提供带符号结果。在一个实例中,带符号结果是结果2277、2377。
[0562] 在一个实施例中,一种存储器装置包括:存储器胞元阵列(例如113),其具有存储器胞元组(例如2227、2327),其中每一组可编程以存储带符号权值;电压驱动器(例如2223、2323),其经配置以将电压施加于每一组中的存储器胞元,电压对应于与每一组的带符号权值相乘的带符号输入;至少一个线(例如2280、2380、2381),其耦合到每一组,其中线经配置以加总来自组的输出电流;及至少一个数字转换器(例如2263、2363),数字转换器经配置以基于加总来自组的输出电流来提供带符号结果(例如2277、2377)。
[0563] 在一个实施例中,每一组包含可编程以存储带符号权值的正版本的第一及第二胞元及可编程以存储带符号权值的负版本的第三及第四胞元。
[0564] 在一个实施例中,至少一个线包括:第一线,其耦合到每一组中的第一及第二胞元;及第二线,其耦合到每一组中的第三及第四胞元。
[0565] 在一个实施例中,第一位结果及第二位结果是基于加总来自组的输出电流;且带符号结果的量值(例如2408)基于第一及第二位结果的总和(例如图24的总和1、总和2)的量值之间的差来确定。
[0566] 在一个实施例中,第一位结果及第二位结果是基于加总来自组的输出电流;且带符号结果的符号(例如2409)对应于具有较小量值的第一或第二位结果中的一者。
[0567] 在一个实施例中,电压在第一及第二时刻施加于每一组中的第一及第二胞元;且在第一时刻施加的电压表示带符号输入,且在第二时刻施加的电压表示带符号输入的负版本。
[0568] 在一个实施例中,电压在第一及第二时刻施加于每一组;且至少一个线经配置以在第一及第二时刻中的每一者加总来自组的输出电流。
[0569] 在一个实施例中,存储器胞元是电阻随机存取存储器(RRAM)胞元、NAND快闪存储器胞元或NOR快闪存储器胞元。
[0570] 在一个实施例中,一种设备包括:图像感测像素阵列(例如111);多个组,其各自具有两个或更多个存储器胞元,其中每一组的存储器胞元可编程以存储相应带符号权值;接口,其经配置以与主机通信;及控制器(例如124),其经配置以:从图像感测像素阵列接收数据;对每一组的存储器胞元编程以存储相应带符号权值;将电压施加于组,其中电压是基于从图像感测像素阵列接收的数据,且其中针对每一组,电压表示与存储于组中的相应带符号权值相乘的相应带符号输入;基于将来自组的输出电流加总于至少一个线上来确定带符号结果;及经由接口(例如125)将带符号结果发送到主机。
[0571] 在一个实施例中,至少一个线包括第一及第二线。加总输出电流包括确定第一线上的输出电流的第一总和及确定第二线上的输出电流的第二总和。
[0572] 在一个实施例中,带符号结果的量值是基于第一与第二总和的量值差。
[0573] 在一个实施例中,带符号结果的符号通过比较第一与第二总和的量值来确定。
[0574] 在一个实施例中,线是数字线,且设备进一步包括:位线,其耦合到每一组;及选择晶体管,其经配置以将每一组的位线电连接到数字线。
[0575] 在一个实施例中,电压施加于选择晶体管的栅极。
[0576] 在一个实施例中,加总输出电流包括在第一时钟循环中确定线上的输出电流的第一总和及在第二时钟循环中确定线上的输出电流的第二总和。
[0577] 在一个实施例中,每一组的存储器胞元是NAND快闪存储器胞元。
[0578] 在一个实施例中,当执行乘法时,每一组中的一或多个存储器胞元通过将相应读取电压施加于存储器胞元的栅极来选择。
[0579] 在一个实施例中,具有选定存储器胞元的相应相同串中的非选定存储器胞元的栅极通过在乘法期间将旁通电压施加于栅极来偏压。
[0580] 在一个实施例中,一种方法包括:从主机系统接收写入数据的命令;响应于接收到写入数据的命令,对存储器胞元阵列中的存储器胞元组编程,其中每一组存储器胞元经编程以存储带符号权值;将电压施加于组,其中针对每一组,电压表示与存储于组中的带符号权值相乘的相应带符号输入;基于将来自组的输出电流加总于至少一个线上来确定带符号结果;从主机系统接收读取数据的命令;及响应于接收到读取数据的命令,将带符号结果发送到主机系统。
[0581] 在一个实施例中,加总输出电流包括使用至少一个积分器(例如图5的507)来累加线上的电流。
[0582] 与使用存储器胞元阵列中的存储器胞元组来执行带符号多位与多位乘法的存储器装置相关的各种实施例现在下文描述。下文描述的通用性不受上述各种实施例限制。
[0583] 在一个实施例中,存储器胞元阵列具有组织为固定数目个存储器胞元(例如每组两个或四个胞元,例如上述)的单元的组。每一组执行带符号乘法(例如组的多位带符号输入乘以由组存储的多位带符号权值)以提供输出电流。这些输出电流加总于一或多个共同线(例如位线)上以提供一或多个带符号结果。每一带符号结果对应于用于产生相应带符号结果的权值的位有效性及输入的位有效性。
[0584] 在简化实例中,在一系列时间片中的第一时间片中,一列2位输入乘以一列2位权值。使用每一输入的LSB的一列1位输入乘以使用每一权值的MSB的一列1位带符号权值。获得对应于输入的LSB及权值的MSB的第一带符号结果。输入的相同LSB接着乘以权值的LSB以获得对应于输入的LSB及权值的LSB的第二带符号结果。
[0585] 接着,在第二时间片中,每一2位输入的MSB乘以每一权值的MSB。获得对应于输入的MSB及权值的MSB的第三带符号结果。2位输入的相同MSB接着乘以权值的LSB以获得对应于输入的MSB及权值的LSB的第四带符号结果。
[0586] 第一、第二、第三及第四带符号结果鉴于每一带符号结果的位有效性来加在一起。在一个实施例中,这是通过基于输入及权值两者的对应位的有效性使每一带符号结果按2的幂以指数方式适当调整来完成。每一带符号结果是作为两个单独总和相加的一对数字值。在替代实施例中,输出电流的量值经调整以解释位有效性,如下文描述(例如见图29)。
[0587] 举例来说,当与第一、第二及第四带符号结果相加时,对应于输入的MSB及权值的MSB的第三带符号结果调整2x(针对输入MSB有效性)及2x(针对权值MSB有效性)以实现第三带符号结果的4x调整。在一个实例中,2次幂调整使用左移及相加来完成,类似于上文描述。
[0588] 第一、第二、第三及第四带符号结果的总和提供由第一及第二数字值(例如,来自第一及第二数字线)表示的带符号累加结果。带符号累加结果的符号及量值可使用第一及第二数字值确定(例如,类似于针对上述量值的抵消/减小描述)。
[0589] 在一个实施例中,存储器装置使用组织为存储器胞元组的存储器胞元阵列。在一个实例中,使用电阻随机存取存储器(RRAM)胞元。在一个实例中,使用NAND或NOR快闪存储器胞元。
[0590] 每一组可编程以存储多位带符号权值。在编程之后,电压驱动器将电压施加于每一组中的存储器胞元。电压表示与多位带符号权值相乘的多位带符号输入。
[0591] 一或多个共同线耦合到每一组。线从每一组中的存储器胞元接收一或多个输出电流(例如,类似于上文针对两个或四个胞元的组论述)。每一共同线累加电流以加总来自组的输出电流。
[0592] 在一个实例中,线是竖直延伸于半导体衬底上方的位线,如上文针对图13论述。作为实例,512个存储器胞元组耦合到线。输入使用512对选择线(例如SL+、SL‑)提供,其中每组使用一对(例如见图29)。来自512组中的每一者的输出电流收集于线上,且接着一或多个总电流量值经数字化以提供第一及第二数字值。
[0593] 在一个实例中,存储器装置包含一或多个数字转换器。数字转换器基于将来自512组中的每一者的输出电流加总于第一及第二数字线上来提供带符号结果(例如,如上文描述)。
[0594] 表示第一数字线上的电流的第一数字值(例如整数)被确定为表示1的预定电流(例如,如上文描述)的倍数。表示第二数字线上的电流的第二数字值被确定为预定电流的倍数。例如,第一及第二数字值是来自数字转换器的输出。
[0595] 在一个实施例中,第一及第二数字值的量值可减小两个值中的较小者以抵消被合计的项中的相等数目个1及‑1表示。在此量值减小之后,加总的符号由0的位置表示(例如,如果是来自第一数字线的第一减小值,那么为负,如果是来自第二数字线的第二减小值,那么为正)。结果的量值由第一或第二减小值中的非零者表示。
[0596] 在一个实施例中,执行带符号多位与多位乘法。输入的符号可被带入到带符号输入的每一位以使每一位以两位表示呈现为带符号1位。类似地,权值的符号可被带入到带符号权值的每一位以使每一位以两位表示呈现为带符号1位。可加总带符号1位与1位乘法的结果,其中考虑输入中的位的相应有效性及权值中的位的相应有效性。
[0597] 在一个实施例中,存储器装置包含具有NAND快闪存储器胞元组的存储器胞元阵列。每一组可编程以存储多位带符号权值。电压驱动器将电压施加于每一组。电压对应于与每一组的多位带符号权值相乘的多位带符号输入。两个共同线耦合到每一组。每一共同线加总来自每一组的相应输出电流。每一共同线上的数字转换器基于加总来自组的输出电流来提供带符号结果。每一带符号结果对应于输入的位有效性及权值的位有效性,例如上文描述。带符号结果鉴于相应位有效性来加在一起以提供表示来自多位与多位乘法的带符号累加结果的第一及第二数字值。
[0598] 在一个实施例中,带符号输入应用于两个导线(例如两个选择线)上的一组存储器胞元,每一导线载送一信号。输入是正还是负取决于提供信号的量值的位置。换句话说,符号取决于哪一导线载送信号。另一导线载送恒定值信号(例如对应于0的恒定电压)。
[0599] 应用于组的每个带符号输入被视为具有正量值。两个导线中的一者总是偏压为0(更一般来说,偏压为恒定信号)。另一导线载送输入模式的量值。
[0600] 在一个实施例中,多位输入表示为提供于两个导线上的串行或时间片输入。举例来说,输入模式是其对应电压串行施加于导线的数个位(例如1101011),每时间片一个位(例如见图29的输入2970、2971)。
[0601] 在一个实例中,一次一个地串行应用输入位,如上文针对图4描述。
[0602] 在一个实施例中,存储器胞元组具有四个群组的胞元,其中每一群组具有三个存储器胞元(例如见图29的群组2922)。每一群组存储表示多位权值的三个位的值。一个位是针对MSB,一个位是针对中间有效位(本文中有时指示为“MID”),且一个位是针对LSB。这提供存储权值的多位表示。
[0603] 群组中的两者存储全0(例如图29的群组2920、2924)。存储全0的群组的定位对应于权值的符号。一般来说,存储全0的胞元群组的一致模式在存储器胞元阵列中用于指示存储权值的符号。另两个群组存储指示权值中的三个位的量值的位。
[0604] 在一个实施例中,来自存储器胞元中的每一者的输出电流在共同线中的比重对应于由存储器胞元存储(例如,针对上述一群组3个存储器胞元中的3个位存储)的位的MSB、MID或LSB有效性而改变。MSB有效性(例如100nA)的比重是MID有效性(例如50nA)的两倍。MID有效性的比重是LSB有效性(例如25nA)的两倍。
[0605] 当输出电流比重考虑位有效性时,当使带符号结果(例如上述第一、第二、第三及第四带符号结果)相加以获得带符号累加结果时,无需上述左移。代替地,带符号结果可直接相加,无需左移。
[0606] 图28展示根据一个实施例的用于使用存储器胞元组(例如2827、2828、2829)来执行带符号多位与多位乘法以提供带符号结果2877的架构。每一存储器胞元组存储多位带符号权值。
[0607] 电压驱动器2828、2824、2825将电压施加于每一存储器胞元组2827、2828、2829中的存储器胞元。外加电压表示与由组存储的权值相乘的多位输入。
[0608] 每一存储器胞元组2827、2828、2829提供表示权值与输入相乘的结果的输出电流。两个输出电流从每一存储器胞元组提供,使得第一及第二数字值可通过使累加电流的第一及第二总和数字化来确定。输出电流加总于共同线2880、2881上。
[0609] 线2880累加输出电流2831、2832、2833。线2881累加输出电流2847、2848、2849。
[0610] 电流的第一总和累加于线2880上。电流的第二总和累加于线2881上。来自线2880、2881的加总电流2851提供到一或多个数字转换器2863且转换成表示带符号结果2877的两个数字值。
[0611] 在一个实施例中,逻辑电路系统2890包含数字转换器2863。逻辑电路系统2890使用由数字转换器2863提供的数字值来确定带符号结果2877的符号及量值。带符号结果2877提供到控制器2804用于进一步处理,例如发送到主机装置及/或配置一或多个传感器2802的操作。
[0612] 在一个实施例中,传感器2802收集传感器数据。在一个实例中,传感器2802包含相机、加速度计、GPS位置传感器及/或温度传感器。控制器2804从传感器2802接收传感器数据。
[0613] 控制器2804至少部分基于传感器数据来确定应用于存储器胞元组2827、2828、2829的输入信号模式。控制器2804引起电压驱动器2828、2824、2825将表示输入信号模式的电压施加于存储器胞元组。
[0614] 在一个实施例中,存储器胞元组2827、2828、2829中的每一者包含四个NAND快闪存储器胞元,类似于图18中说明,只是每一存储器胞元存储多于一个位(例如,使用MLC、TLC或QLC)。存储器胞元中的两者提供输出电流2831。存储器胞元中的另两者提供输出电流2847。
[0615] 在一个实施例中,存储器胞元组2827、2828、2829中的每一者包含存储存储权值的最高有效位的一些存储器胞元、存储存储权值的中间有效位的一些存储器胞元及存储存储权值的最低有效位的一些存储器胞元(例如图29的组2902)。
[0616] 在一个实施例中,电压由电压驱动器使用导线对施加于存储器胞元组。导线中的一者保持于恒定电压处且导线的位置(例如第一或第二位置)指示组的输入的符号。导线中的另一者电压改变且指示组的输入的位的量值。
[0617] 如上文提及,存储器胞元组可用于产生多个带符号结果2877。每一带符号结果2877对应于用于产生带符号结果2877的输入位及权值位的位有效性。
[0618] 带符号结果2877加在一起以提供带符号累加结果。在相加时,对每一带符号结果进行2的指数幂调整(例如,类似于针对图3描述,为了获得结果251),例如上文描述。
[0619] 图29展示根据一个实施例的用于使用串行多位输入2970、2971来执行带符号多位与多位乘法的架构。存储器胞元组2902、2904、2906、2908各自存储多位带符号权值。对应于输入2970、2971的电压使用选择线2910、2911、2912、2913施加于存储器胞元组。存储器胞元组2902、2904、2906、2908是图28的存储器胞元组2827的实例。
[0620] 输入2970、2971在时间片2960、2962中串行应用,如所说明。举例来说,输入2970的MSB在时间片2960中应用。输入2970的LSB在时间片2962中应用。输入2971的位以类似方式串行应用。在每一时间片获得带符号结果(例如,由第一及第二数字值2950、2951表示)。
[0621] 输入2970具有负号。为了指示负号,表示全0的电压施加于选择线2910。对应于输入2970的位的量值(例如1或0)的电压施加于选择线2911。
[0622] 输入2970具有正号。为了指示正号,表示全0的电压施加于选择线2913。对应于输入2971的位的量值的电压施加于选择线2912。用于应用全0的第一或第二选择线的选择一致地用于定义输入的符号。输入的符号通过使用此方法来与输入的所有位相关联(例如,带入到所有位)。
[0623] 每一存储器胞元组具有四个群组2920、2922、2924、2926的胞元。每一群组含有由字线2928存取的三个存储器胞元。每一字线对应于不同位有效性(例如MSB、MID、LSB)。尽管为了简单目的而未说明,但所有组中的所有群组类似地连接到字线2928。
[0624] 存储器胞元组中的群组(例如群组的存储模式)的位置用于指示存储权值的符号。举例来说,两个群组2920、2924在一个模式中存储全0,如所说明。此对应于正号。相比之下,两个群组2930、2932在另一权值的相反模式中存储全0。此对应于负号。
[0625] 每一存储器胞元组中的另两个群组2922、2926指示存储权值的量值。
[0626] 每一组中的胞元群组将输出电流提供到数字线(例如2918、2919)。每一组中的胞元将输出电流提供到位线2914,位线2914通过选择晶体管(例如2916)耦合到数字线。选择线2910、2911、2912、2913连接到选择晶体管的栅极以控制将输出电流从存储器胞元提供到数字线。
[0627] 累加于数字线上的输出电流提供到数字转换器2940、2942、2944、2946。每一对数字转换器提供表示带符号结果的第一及第二数字值(例如2950、2951或2952、2953)。在一个实例中,带符号结果是图28的带符号结果2877。
[0628] 在一个实施例中,每一群组2920、2922、2924、2926含有电阻随机存取存储器(RRAM)胞元或NOR快闪存储器胞元。电压施加于字线2928以选择每一群组中的所有胞元,使得来自胞元的输出电流同时累加于数字线上。这可由于存储器胞元阵列的并联胞元布置而完成。
[0629] 在一个实施例中,从字线2928(LSB、MID、MSB)中的每一者通过存储器胞元到数字线的输出电流的比重各有不同。来自MID字线的比重大于来自LSB字线。来自MSB字线的比重大于来自MID字线。
[0630] 在一个实施例中,每一群组2920、2922、2924、2926含有单个NAND快闪存储器胞元。胞元存储表示存储权值的三个位。由于存储器胞元阵列的串联胞元布置,多个位存储于单个胞元中。
[0631] 图30展示根据一个实施例的用于在存储器胞元阵列中执行带符号多位与多位乘法的方法。举例来说,图30的方法可使用图28及29中说明的乘法及累加在图1的集成电路装置101中执行。
[0632] 图30的方法可由处理逻辑执行,处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如运行或执行于处理装置上的指令)或其组合。在一些实施例中,图30的方法至少部分由一或多个处理装置(例如图1的控制器124、图28的控制器2804)执行。
[0633] 尽管以特定序列或顺序展示,但除非另外指定,否则过程的顺序可修改。因此,所说明实施例应被理解为仅作为实例,且所说明过程可以不同顺序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,不是每个实施例都需要所有过程。其它过程流程是可能的。
[0634] 在框3001处,对存储器胞元组编程以各自存储多位带符号权值。在一个实例中,对存储器胞元组2827、2828、2829编程。
[0635] 在框3003处,将电压施加于每一组中的存储器胞元。电压对应于与组中的存储权值相乘的带符号多位输入。在一个实例中,输入2970、2971应用于存储器胞元组2902、2904、2906、2908。
[0636] 在框3005处,加总来自组的输出电流。在一个实例中,电流2831、2832、2833加总于线2880上。电流2847、2848、2849加总于线2881上。
[0637] 在框3007处,从加总输出电流确定带符号结果。在一个实例中,带符号结果2877基于加总电流2851来确定。
[0638] 在框3009处,基于带符号结果来确定带符号累加结果。在一个实例中,带符号结果在针对在乘法期间使用的相应输入位及/或权值位的位有效性进行调整之后加在一起以获得相应带符号结果。
[0639] 在一个实施例中,一种装置包括:存储器胞元阵列(例如113),其具有存储器胞元组(例如2827、2828、2829),其中每一组可编程以存储多位带符号权值;电压驱动器(例如2828、2824、2825),其经配置以将电压施加于每一组,其中电压对应于与每一组的多位带符号权值相乘的多位带符号输入;至少一个共同线(例如2880、2881),其耦合到每一组,其中共同线经配置以加总来自组的输出电流;及至少一个数字转换器(例如2863),数字转换器经配置以基于加总来自组的输出电流来提供至少一个带符号结果。
[0640] 在一个实施例中,装置进一步包括经配置以将电压施加于每一组的相应第一及第二输入线(例如选择线2910、2911、2912、2913),其中:多位带符号输入包括多个位;针对每一组,恒定电压施加于第一或第二输入线中的一者(例如2910、2913)以表示相应带符号输入的位的符号;且针对每一组,变化电压量值施加于第一或第二输入线中的另一者(例如2911、2912)以表示带符号输入的位的相应量值。
[0641] 在一个实施例中,对应于带符号输入的每一位的电压串行施加于相应组。
[0642] 在一个实施例中,对应于带符号输入的每一位的电压在一系列时间片(例如2960、2962)中施加于相应组,其中每一时间片对应于带符号输入的一个位。
[0643] 在一个实施例中,加总来自组的输出电流提供第一电流总和及第二电流总和。
[0644] 在一个实施例中,数字转换器进一步经配置以基于第一电流总和来产生第一数字值及基于第二电流总和来产生第二数字值;且带符号结果的符号及量值基于第一及第二数字值来确定。
[0645] 在一个实施例中,每一组中的第一存储器胞元(例如前两个胞元)经配置以为带符号权值的每一位存储0(例如,针对3位权值,在前两个胞元中的每一者中存储000);组中的第二存储器胞元(例如后两个胞元)经配置以为带符号权值的每一位存储表示相应量值的值(例如,针对3位权值,在后两个胞元中的每一者中存储110);且第一存储器胞元的组中的位置对应于带符号权值的符号。
[0646] 在一个实施例中,至少一个共同线包括第一数字线及第二数字线(例如数字线2918、2919);且第一存储器胞元中的至少一者耦合到第一数字线,且第一存储器胞元中的至少另一者耦合到第二数字线。
[0647] 在一个实施例中,一种设备包括:至少一个传感器(例如2802);多个组,其各自具有两个或更多个存储器胞元,其中每一组的存储器胞元可编程以存储相应多位带符号权值;接口,其经配置以与主机通信;及控制器(例如124、2804)。
[0648] 控制器经配置以:对每一组的存储器胞元编程以存储相应多位带符号权值;从传感器接收数据;将电压施加于组,其中电压是基于从传感器接收的数据,且其中电压表示与存储于组中的多位带符号权值相乘的多位带符号输入;基于将来自组的输出电流加总于至少一个共同线上来确定多个带符号结果(例如2877),其中带符号结果中的每一者对应于带符号权值中的相应位有效性(例如MSB、MID、LSB);基于多个带符号结果来确定至少一个累加结果;及经由接口将累加结果发送到主机。
[0649] 在一个实施例中,每一带符号权值包括第一有效性(例如MSB)的第一位及第二有效性(例如LSB)的第二位;多个带符号结果包括第一带符号结果及第二带符号结果;第一带符号结果使用每一带符号权值的第一位确定;第二带符号结果使用每一带符号权值的第二位确定;且确定累加结果包括使第一与第二带符号结果相加。
[0650] 在一个实施例中,设备进一步包括经配置以将电压施加于每一组的相应第一及第二输入线,其中:每一多位带符号输入包括多个位;针对每一组,恒定电压施加于第一或第二输入线中的一者以表示相应带符号输入的位的符号;且针对每一组,变化电压量值施加于第一或第二输入线中的另一者以表示带符号输入的位的相应量值。
[0651] 在一个实施例中,对应于带符号输入的每一位的电压在一系列时间片中施加于组,其中每一时间片对应于带符号输入的一个位。
[0652] 在一个实施例中,至少一个累加结果包括在时间片中的第一者确定的第一累加结果及在时间片中的第二者确定的第二累加结果。
[0653] 在一个实施例中,来自在表示1的状态下编程的所述存储器胞元的每一输出电流的量值对应于带符号权值中的相应位有效性(例如MSB、MID、LSB)。
[0654] 在一个实施例中,输出电流的量值基于对应于相应输出电流的位有效性来按2的幂改变(例如,MSB位的输出电流是MID位的输出电流的两倍且是LSB位的输出电流的四倍)。
[0655] 在一个实施例中,设备进一步包括耦合到每一组中的存储器胞元的多个字线(例如2928),其中字线中的每一者对应于带符号权值中的位有效性。
[0656] 在一个实施例中,至少一个共同线是至少一个数字线,设备进一步包括:位线,其耦合到每一组中的存储器胞元;选择晶体管,其将位线耦合到数字线;及选择线(例如2910、2911、2912、2913),其经配置以控制选择晶体管,其中施加电压包括将电压施加于选择线上以加偏压于选择晶体管的栅极。
[0657] 在一个实施例中,存储器胞元是NAND快闪存储器胞元;每一组具有四个存储器胞元;且组的每一存储器胞元存储表示由组存储的带符号权值的多个位。
[0658] 在一个实施例中,一种方法包括:从主机系统接收写入数据的命令;响应于接收到写入数据的命令,对存储器胞元阵列中的存储器胞元组编程,其中每一组存储器胞元经编程以存储多位带符号权值;将电压施加于组,其中针对每一组,电压表示与存储于组中的多位带符号权值相乘的相应多位带符号输入;基于加总来自组的输出电流来确定多个带符号结果,其中带符号结果中的每一者对应于带符号权值中的相应位有效性(例如MSB、MID、LSB);基于多个带符号结果来确定至少一个带符号累加结果;从主机系统接收读取数据的命令;及响应于接收到读取数据的命令,将带符号累加结果发送到主机系统。
[0659] 在一个实施例中,输出电流加总于第一及第二线上。方法进一步包括:基于分别在第一及第二线上的输出电流的总和的第一与第二量值差来确定累加结果的量值;及基于具有较小量值的第一或第二量值中的一者来确定累加结果的符号。
[0660] 与基于位有效性来使用具有不同阈值的存储器胞元执行乘法的存储器装置相关的各种实施例现在下文描述。下文描述的通用性不受上述各种实施例限制。
[0661] 在一个实施例中,存储器装置执行具有经由不同阈值实施的不同位有效性的1位结果电流的模拟加总。存储器胞元(例如RRAM胞元或NAND快闪存储器胞元)可经编程以针对不同阈值具有以指数方式增大(例如,按2的幂增大)的电流。举例来说,存储器胞元可经编程以具有第一阈值来允许预定电流量通过以表示最低有效位的位值1。
[0662] 为了表示第二最低有效位的位值1,存储器胞元可经编程到第二阈值以允许两倍的预定电流量通过,其等于预定电流量乘以第二最低有效位的位有效性。
[0663] 存储器胞元可类似地经编程以在位在1状态中时具有等于预定电流量乘以位的位有效性的更高电流量。
[0664] 在一个实例中,具有二进制数111的3位权值可使用三个存储器胞元来存储,三个存储器胞元各自经编程到不同阈值以在乘法期间偏压以具有基本电流单位(例如10nA)的四倍(MSB:等于40nA的4X基本单位)、两倍(MID:等于20nA的2X基本单位)及一倍(LSB:1X基本单位)的量值时产生输出电流。
[0665] 当各自表示数中的一个位的存储器胞元的阈值经编程以具有构建到电流中的位有效性时,涉及存储器胞元的乘法结果可经由将存储器胞元连接到共同线来加总,不必单独转换位的电流用于在数字电路中加总。
[0666] 在一个实施例中,存储器阵列中的每一存储器胞元存储多位权值。每一存储器胞元可经编程以在多个区中的一者中具有一阈值以表示分别由多个区表示的多个数(例如二进制10、11、101或0110)中的一者。如果存储器胞元将存储非零值(例如,存储器胞元经编程到1状态),那么通过存储器胞元的电流经配置为基本电流单位(例如针对LSB位的1状态的预定电流量,如上文提及)乘以由存储器胞元表示的数。因此,存储器胞元的输出电流可与其它存储器胞元的输出电流加总(例如,无需左移及相加结果,如上文针对图3描述)。
[0667] 在一个实施例中,固态驱动器(SSD)或其它存储装置使用具有存储器胞元的存储器胞元阵列。在一个实例中,使用电阻随机存取存储器(RRAM)胞元。在一个实例中,使用NAND或NOR快闪存储器胞元。
[0668] 在一个实施例中,每一存储器胞元可编程以存储多位权值的一个位。在编程之后,电压驱动器将电压施加于存储器胞元。电压表示与多位权值相乘的输入。
[0669] 一或多个共同线耦合到存储器胞元。线从存储器胞元接收一或多个输出电流。每一共同线(例如数字线)累加电流以加总输出电流。
[0670] 在一个实例中,线是竖直延伸于半导体衬底上方的位线,如上文针对图13论述。作为实例,512个存储器胞元耦合到线。输入使用选择线提供。来自512个存储器胞元中的每一者的输出电流收集于线上,且接着一或多个总电流量值经数字化以提供数字值。
[0671] 在一个实例中,存储器装置包含一或多个数字转换器。数字转换器基于加总来自512个存储器胞元中的每一者的输出电流来提供数字结果(例如,如上文描述)。
[0672] 在一个实施例中,表示数字线上的电流的数字值(例如整数)被确定为表示1的预定电流(例如,如上文描述)的倍数。例如,数字值是来自数字转换器的输出。
[0673] 在一个实施例中,三个存储器胞元存储表示多位权值的三个位的值。一个位是针对MSB,一个位是针对中间有效位(本文中有时指示为“MID”),且一个位是针对LSB。这提供存储权值的多位表示。
[0674] 在一个实施例中,来自三个存储器胞元中的每一者的输出电流在共同线中的比重对应于由存储器胞元存储的位的MSB、MID或LSB有效性而改变。MSB有效性(例如100nA电流)的比重是MID有效性(例如50nA电流)的两倍。MID有效性的比重是LSB有效性(例如25nA电流)的两倍。
[0675] 当每一存储器胞元的输出电流比重考虑位有效性时,当使结果相加以获得累加结果时,无需上述左移。代替地,结果可直接相加,无需左移。
[0676] 图31展示根据一个实施例的用于基于位有效性来使用具有不同阈值的存储器胞元来执行乘法的架构。控制器3104控制电压驱动器3122、3124、3125将电压施加于存储器胞元3127、3130、3129。由于施加这些电压,存储器胞元提供输出电流3131、3132、3133。控制器3104是图1的控制器124的实例。
[0677] 在一个实施例中,由电压驱动器3122、3124、3125施加的电压表示与由存储器胞元3127、3130、3129存储的一或多个权值相乘的输入。在一个实例中,存储单个多位权值。权值的最高有效位存储于存储器胞元3127中。权值的最低有效位存储于存储器胞元3129中。中间有效位存储于存储器胞元3130中。
[0678] 在一个实施例中,输出电流3131、3132、3133由存储器胞元3127、3130、3129提供,例如(举例来说)上文描述。每一输出电流的量值对应于由相应存储器胞元存储的位的有效性。
[0679] 在一个实施例中,输出电流3131、3132、3133的量值基于位有效性差来彼此相差2的幂。举例来说,电流3131(MSB)具有的量值是电流3133(LSB)的量值的4倍。电流3132(MID有效位)具有的量值是电流3133的量值的2倍。
[0680] 在一个实施例中,输出电流累加于共同线3180上。在一个实例中,线3180是位线、数字线或字线,取决于所使用的存储器胞元及存储器阵列的特定配置。线3180是图2的线241的实例。
[0681] 输出电流3131、3132、3133由累加电路系统3190累加于线3180上作为加总电流3151。加总电流3151作为输入提供到一或多个数字转换器3163。
[0682] 每一数字转换器3163可用于提供结果3177。在一个实例中,结果3177是对应于加总电流3151的量值(例如,相对于LSB的基本单位电流)的数字值(例如整数)。
[0683] 当执行乘法以获得一或多个结果3177时,上述电压由电压驱动器3122、3124、3125施加。在一个实施例中,存储于存储器胞元3127、3130、3129中的一或多个权值在通过使用感测电路系统3142来执行此乘法之前编程。
[0684] 举例来说,一或多个电压脉冲可经施加以对存储器胞元编程。感测电路系统3142(例如感测放大器)用于测量来自经编程存储器胞元的输出电流。此测量可用于校准存储器胞元的编程,使得在相应存储器胞元表示1状态时产生的输出电流是预定电流量或基本电流单位的倍数。在一个实例中,基本电流单位是由存储存储权值的最低有效位的存储器胞元3129提供的电流3133的量值。
[0685] 基于由感测电路系统3142测量电流,控制器3104根据对存储器胞元编程的需要确定要施加的一或多个额外编程脉冲。感测电路系统3142可在施加额外脉冲之后再次测量来自存储器胞元的输出电流。当测量电流与目标输出电流之间的差在目标阈值内时,控制器3104确定结束编程。
[0686] 当对存储器胞元编程时,每一存储器胞元可经编程以具有不同阈值电压。每一相应阈值电压经选择以在胞元经偏压用于乘法运算时引起输出电流的量值对应于由存储器胞元存储的位的有效性。
[0687] 在一些实施例中,每一电压驱动器3122、3124、3125将不同电压施加于其对应存储器胞元。在其它实施例中,单个电压驱动器可用于将共同电压施加于所有存储器胞元3127、3130、3129(例如,使用共同字线或其它共同线)。
[0688] 在一些实施例中,电压驱动器施加表示多位输入的一系列输入位的电压。每一输入位具有不同有效性(例如MSB、MID、LSB)。在一个实例中,每一输入位应用于存储器胞元以在一系列时间片中的每一者获得结果3177,例如上文所描述。
[0689] 图32展示根据一个实施例的用于使用具有不同阈值的存储器胞元来执行乘法的NAND快闪存储器装置。
[0690] 在一个实施例中,如所说明,三维存储器胞元阵列具有布置成NAND配置的NAND快闪存储器胞元(例如浮动门或电荷阱)。串3202、3204、3206中的每一者中的存储器胞元串联连接。每一串3202、3204、3206连接到数字线3208。图32中说明的存储器胞元阵列是存储器胞元阵列113的实例。在一个实施例中,存储器胞元竖直布置于柱中,其中每一柱中的存储器胞元对应于串3202、3204、3206中的一者。
[0691] 在一个实施例中,存储器胞元布置于水平层级(例如64个层级)中。举例来说,用于乘法的选定存储器胞元3220、3231、3224布置于这些层级中的一者中。每一串连接到共同源极线(未展示)。
[0692] 在一个实施例中,当执行乘法时,选择层级中的一者中的存储器胞元。胞元通过将读取电压施加于每一胞元的控制栅极来选择。具有选定存储器胞元的相同串中的其它非选定胞元通过将旁通电压施加于非选定胞元的控制栅极来偏压。非选定存储器胞元的实例包含存储器胞元3232、3230、3234、3222、3236。
[0693] 非选定存储器胞元中的每一者连接到用于施加上述读取或旁通电压的不同字线(未展示)。在一个实例中,共同字线(未展示)连接到选定存储器胞元3220、3231、3224的栅极。共同字线通过施加读取电压来偏压。
[0694] 每一串3202、3204、3206的存储器胞元通过选择晶体管3210、3212、3214电耦合到数字线3208。当配置于NAND快闪存储器装置中时,数字线3208有时称为位线。
[0695] 在一个实例中,选择存储器胞元的层级中的一者。停用其它层级中的非选定存储器胞元。使字线电压足够高使得每一非选定存储器胞元导通,无论其编程状态为何。忽略经旁通胞元的状态,因为胞元将传导电流,无论逻辑状态为何。每一串中的总电阻由将用于电流累加(例如,使用累加电路系统3190)的输出电流提供到数字线3208的一个选定存储器胞元主导。
[0696] 在一个实施例中,存储器胞元中的每一者经编程以存储多位权值的单个位用于执行乘法。针对将用于乘法的存储器胞元的选定层级,电压施加于字线上,使得每一存储器胞元能够贡献一定程度的输出电流,其取决于存储器胞元的编程状态及位有效性。
[0697] 举例来说,存储器胞元3224经编程到阈值电压,使得来自存储器胞元的输出电流(当存储器胞元经编程以表示状态1时)具有是基本单位电流的四倍的量值。存储器胞元3231经编程以具有不同阈值,使得来自存储器胞元的输出电流具有是基本电流单位的两倍的量值。存储器胞元3220经编程以具有不同阈值,使得来自存储器胞元的输出电流具有等于基本电流单位的量值。
[0698] 在一个实例中,存储器胞元3220、3231、3224用于存储多位权值的位。权值的最低有效位存储于存储器胞元3220中。权值的中间有效位存储于存储器胞元3231中。权值的最高有效位存储于存储器胞元3224中。
[0699] 当执行乘法时,电压施加于存储器胞元,例如(举例来说)上文针对图31论述。外加电压表示与由存储器胞元存储的权值相乘的输入位。电压使用耦合到栅极(由SG指示)的选择线(未展示)施加于选择晶体管3210、3212、3214的栅极。来自存储器胞元的输出电流接着加总于数字线3208上且提供数字结果。在一个实例中,数字结果是结果3177。
[0700] 在一个实施例中,每一存储器胞元3220、3231、3224的栅极连接到单独分段字线。在一个实施例中,每一存储器胞元的栅极连接到充当所有选定胞元的字线的单个导电层或薄片。
[0701] 在一些实施例中,选择线用作输入。电压驱动器将信号施加于表示输入的选择晶体管的栅极上。举例来说,信号可为1、0或变化模式。信号还可因输入中的每一者而不同。
[0702] 在一个实施例中,耦合到选定存储器胞元的控制栅极的若干不同字线中的每一者用作相应输入。施加于每一字线的信号可因输入中的每一者而不同。
[0703] 图33展示根据一个实施例的用于使用具有基于存储位的有效性来改变的输出电流的存储器胞元来执行乘法的方法。举例来说,图33的方法可使用图31及32中说明的乘法及累加在图1的集成电路装置101中执行。
[0704] 图33的方法可由处理逻辑执行,处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如运行或执行于处理装置上的指令)或其组合。在一些实施例中,图33的方法至少部分由一或多个处理装置(例如图1的控制器124、图31的控制器3104)执行。
[0705] 尽管以特定序列或顺序展示,但除非另外指定,否则过程的顺序可修改。因此,所说明实施例应被理解为仅作为实例,且所说明过程可以不同顺序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,不是每个实施例中都需要所有过程。其它过程流程是可能的。
[0706] 在框3301处,对存储器胞元编程以存储多位权值。在一个实例中,存储器胞元3127、3130、3129经编程以存储多位权值。
[0707] 在框3303处,将电压施加于存储器胞元。电压对应于与存储于存储器胞元中的多位权值相乘的输入。在一个实例中,电压由电压驱动器3122、3124、3125施加。
[0708] 在框3305处,将来自存储器胞元的输出电流加总于一或多个共同线上。每一输出电流具有对应于存储于相应存储器胞元中的位的有效性的量值。在一个实例中,输出电流是电流3131、3132、3133。
[0709] 在框3307处,从加总输出电流确定至少一个结果。在一个实例中,结果是提供为来自数字转换器的输出的数字值。累加电路将累加输出电流作为输入提供到数字转换器。在一个实例中,数字转换器3163提供结果3177。
[0710] 上文论述的图31说明在每一胞元中存储单个位的存储器胞元。在其它实施例中,存储器胞元阵列可具有每胞元各自存储多于一个位的一些或所有存储器胞元(未展示)。举例来说,存储器胞元阵列的每一NAND快闪存储器胞元可每胞元存储两个、三个或四个位(例如,使用MLC、TLC或QLC配置)。
[0711] 在一个实施例中,NAND快闪存储器装置包含具有存储器胞元的存储器胞元阵列。每一存储器胞元可编程以存储表示对应于相应权值的数(例如101)的多个位。
[0712] 感测电路系统(例如3142)在编程期间测量来自每一存储器胞元的相应输出电流。每一存储器胞元经编程使得相应输出电流对应于由相应存储器胞元存储的多个位表示的数。
[0713] 电压驱动器经配置以将电压施加于存储器胞元。外加电压表示与存储于存储器胞元中的权值相乘的输入。
[0714] 至少一个线(例如位线或数字线3180)耦合到存储器胞元中的每一者。线经配置以加总来自存储器胞元中的每一者的输出电流以提供累加结果。
[0715] 在一个实施例中,经编程以存储非零值的存储器胞元中的每一者的相应输出电流的量值是基本电流单位(例如针对1状态的预定电流量)(例如数字10纳安(nA))乘以由存储于相应存储器胞元中的位表示的数(例如,二进制10x数字10nA=20nA输出电流)(例如,二进制11x数字10nA=30nA输出电流)。
[0716] 在一个实施例中,每一存储器胞元经配置以具有多个阈值中的一者,每一阈值对应于可存储于存储器胞元中的多个二进制数(例如双电平NAND快闪存储器胞元的01、10、11)中的一者。
[0717] 在一个实施例中,一种装置包括:存储器胞元阵列,其具有存储器胞元,其中每一存储器胞元可编程以存储具有多个有效性(例如LSB、MID、MSB)中的一者的位,且其中第一存储器胞元经配置以存储第一多位权值;电压驱动器,其经配置以将电压施加于存储器胞元,其中电压包含表示与第一多位权值相乘的第一输入的第一电压;共同线,其耦合到第一存储器胞元中的每一者,其中共同线经配置以加总来自第一存储器胞元的输出电流,且其中来自每一第一存储器胞元的相应输出电流对应于由第一存储器胞元存储的相应位的有效性(例如,MSB位的输出电流是次低有效位的输出电流的两倍);及至少一个数字转换器,其经配置以基于加总输出电流来提供至少一个结果。
[0718] 在一个实施例中,来自第一存储器胞元的输出电流的量值经配置以基于相应位的有效性来彼此相差2的幂。
[0719] 在一个实施例中,第一存储器胞元中的每一者是NAND快闪存储器胞元(例如图32的存储器胞元3220、3231、3224)。装置进一步包括耦合到每一第一存储器胞元的栅极的共同字线。
[0720] 在一个实施例中,当使用第一存储器胞元来执行乘法时,固定偏压施加于共同字线。
[0721] 在一个实施例中,装置进一步包括将第一存储器胞元耦合到共同线的选择晶体管(例如3210、3212、3214),其中第一电压施加于选择晶体管的栅极。
[0722] 在一个实施例中,第一电压在多个时间片中作为一系列输入位施加,且每一输入位具有不同位有效性。
[0723] 在一个实施例中,共同线(例如3180)是数字线(例如3208)。装置进一步包括:位线,其耦合到第一存储器胞元;选择晶体管,其将位线耦合到数字线;及选择线,其经配置以控制选择晶体管。
[0724] 在一个实施例中,阵列的存储器胞元是电阻随机存取存储器胞元。
[0725] 在一个实施例中,一种设备包括:半导体衬底(例如图13的1302);存储器胞元阵列,其具有可编程以存储权值用于执行乘法的存储器胞元,其中存储器胞元组织于存储器胞元的水平层级中,且其中层级堆叠于半导体衬底上方;及控制器(例如3104),其经配置以:对第一存储器胞元编程以存储多位权值,其中每一第一存储器胞元存储具有多个有效性(例如MSB、MID、LSB)中的一者的位;将至少一个输入信号提供到第一存储器胞元,其中输入信号将与多位权值相乘,第一存储器胞元基于输入信号来提供输出电流,且来自每一第一存储器胞元的相应输出电流对应于由相应第一存储器胞元存储的位的有效性;及基于加总来自第一存储器胞元的输出电流来确定结果(例如3177)。
[0726] 在一个实施例中,设备进一步包括共同线及累加电路系统(例如3190)。共同线经耦合以从第一存储器胞元接收输出电流。累加电路系统耦合到共同线且经配置以累加输出电流。
[0727] 在一个实施例中,结果是数字值。设备进一步包括经配置以基于加总输出电流来提供结果的至少一个数字转换器(例如3163)。
[0728] 在一个实施例中,设备进一步包括接口(例如125),其可操作以使主机将数据写入到第一存储器胞元中及从第一存储器胞元读取数据。
[0729] 在一个实施例中,控制器进一步经配置以从主机接收与人工神经网络相关联的第一数据;且存储于第一存储器胞元中的多位权值是对应于第一数据。
[0730] 在一个实施例中,第一存储器胞元定位于水平层级中的一者中。
[0731] 在一个实施例中,线(例如字线)耦合到每一第一存储器胞元的控制栅极,且输入信号使用线提供。
[0732] 在一个实施例中,设备进一步包括将每一第一存储器胞元耦合到累加输出电流的共同线的选择晶体管。输入信号提供到选择晶体管的栅极。
[0733] 在一个实施例中,设备进一步包括感测电路系统(例如3142)。第一存储器胞元的编程包括:将至少一个电压脉冲施加于每一第一存储器胞元;由感测电路系统测量来自每一第一存储器胞元的相应第一输出电流;及基于对应测量第一输出电流来将至少一个额外电压脉冲施加于每一第一存储器胞元,使得来自每一第一存储器胞元的第一输出电流对应于由相应第一存储器胞元存储的位的有效性。
[0734] 与基于位有效性来使用具有不同偏压电平的存储器胞元执行乘法的存储器装置相关的各种实施例现在下文描述。下文描述的通用性不受上述各种实施例限制。
[0735] 在一个实施例中,存储器装置执行具有经由不同偏压电平实施的不同位有效性的1位结果电流的模拟加总。存储器胞元(例如RRAM胞元或NAND快闪存储器胞元)可经编程以针对不同偏压电平具有以指数方式增大(例如,按2的幂增大)的电流。
[0736] 在一个实施例中,存储器胞元可经编程以针对较高偏压/外加电压具有阈值及以指数方式增大的电流。第一电压可施加于存储器胞元以允许预定电流量(指示为1X)通过以表示最低有效位的位值1。
[0737] 为了表示第二最低有效位的位值1,第二电压可施加于存储器胞元以允许两倍(指示为2X)的预定电流量通过,其等于预定电流量乘以第二最低有效位的位有效性。
[0738] 存储器胞元可类似地经偏压以在位值是1时具有等于预定电流量乘以位的位有效性的更高电流量。
[0739] 当不同电压施加于各自表示数中的一个位的存储器胞元使得每一胞元的相应位有效性如上文描述般构建到输出电流中时,涉及存储器胞元的乘法结果可经由将存储器胞元连接到线来加总,不必单独转换位的电流用于加总。
[0740] 举例来说,3位分辨率权值可使用三个存储器胞元来实施。每一存储器胞元存储3位权值的1位。每一存储器胞元在单独电压电平下偏压,使得如果其在表示1的状态下编程,那么通过胞元的电流是基本单位乘以胞元的位有效性。举例来说,通过存储最低有效位(LSB)的胞元的电流是基本单位25nA,存储中间位(MID)的胞元是基本单位的2倍(2x)(50nA),且最高有效位(MSB)是基本单位的4倍(4X)(100nA)。
[0741] 在一个实施例中,固态驱动器(SSD)或其它存储装置使用具有存储器胞元的存储器胞元阵列。在一个实例中,使用电阻随机存取存储器(RRAM)胞元。在一个实例中,使用NAND或NOR快闪存储器胞元。
[0742] 在一个实施例中,每一存储器胞元可编程以存储多位权值的一个位。在编程之后,电压驱动器施加不同电压以加偏压于存储器胞元以用于执行乘法。与多位权值相乘的输入可由应用于耦合到存储器胞元的选择晶体管的选择栅极的相应输入模式(例如,如上文描述)表示或通过改变表示输入位1的固定电压状态与表示输入位0的零状态之间的不同电压来表示。
[0743] 一或多个共同线耦合到存储器胞元。线从存储器胞元接收一或多个输出电流(例如,如上文描述)。每一共同线(例如数字或位线)用于累加电流以加总输出电流。
[0744] 在一个实例中,共同线是竖直延伸于半导体衬底上方的位线,如上文针对图13论述。作为实例,512个存储器胞元耦合到线。输入使用选择线提供。来自512个存储器胞元中的每一者的输出电流收集于线上,且接着一或多个总电流量值经数字化以提供数字值。
[0745] 在一个实例中,存储器装置包含一或多个数字转换器。数字转换器基于加总来自512个存储器胞元中的每一者的输出电流来提供数字结果(例如,如上文描述)。
[0746] 在一个实施例中,表示数字线上的电流的数字值(例如整数)被确定为表示1的预定电流(例如,如上文描述)的倍数。例如,数字值是来自数字转换器的输出。
[0747] 在一个实施例中,三个存储器胞元存储表示存储权值的三个位的值。一个位是针对MSB,一个位是针对中间有效位(本文中有时指示为“MID”),且一个位是针对LSB。这提供存储权值的多位表示。
[0748] 在一个实施例中,来自上述三个存储器胞元中的每一者的输出电流在共同线中的比重对应于由存储器胞元存储的位的MSB、MID或LSB有效性而改变。MSB有效性(例如100nA电流)的比重是MID有效性(例如50nA电流)的两倍。MID有效性的比重是LSB有效性(例如25nA电流)的两倍。输出电流的比重通过选择在乘法期间施加的不同电压的适当量值来确定。
[0749] 当每一存储器胞元的输出电流比重考虑位有效性时,当使结果相加以获得累加结果时,无需上述左移。代替地,结果可直接相加,无需左移。
[0750] 图34展示根据一个实施例的用于基于位有效性使用具有不同偏压电平的存储器胞元来执行乘法的NAND快闪存储器装置。图34的存储器胞元阵列3402的架构类似于上文针对图32描述的架构。然而,不同偏压电平施加于图34的存储器胞元以从存储器胞元产生对应于由相应存储器胞元存储的位的位有效性的输出电流。
[0751] 存储器胞元阵列3402包含NAND快闪存储器胞元的串3202、3204、3206。作为实例,存储器胞元3220、3231、3224存储多位权值的位。在一个实施例中,存储器胞元使用统一编程算法来编程。举例来说,相同编程电压在编程时施加于存储器胞元中的每一者。此方法的一个优点是存储器胞元的编程可更一致且可靠性地执行。此可导致在乘法期间存储器胞元读取错误(例如由不正确或不一致输出电流引起的错误)减少。
[0752] 在编程之后且在执行乘法时,不同电压V1、V2、V3施加于相应存储器胞元,如所说明。不同电压的量值经选择使得来自存储器胞元的输出电流基于由相应存储器胞元存储的位的相对位有效性来彼此相差2的幂。在一个实施例中,不同电压由控制器3403选择。在一个实例中,施加于存储器胞元3224(存储最高有效位)的电压V3具有大于施加于存储器胞元3220(存储最低有效位)的电压V1的量值,使得存储器胞元3224的输出电流是来自存储器胞元3220的输出电流的基本单位的四倍。
[0753] 在一个实施例中,与存储于存储器胞元3220、3231、3224中的多位权值相乘的输入使用选择晶体管3210、3212、3214的选择栅极应用于存储器胞元。在一个实例中,不同输入电压I1、I2、I3用于加偏压于选择栅极。输入电压各自具有表示1状态的第一电压电平及表示0状态的第二电压电平。
[0754] 在一个实施例中,输入是多位输入。在一个实例中,输入作为一系列位被应用,一系列位各自在一系列时间片中的一者中应用(例如,如上文描述)。
[0755] 在一个实施例中,输入通过改变表示输入1的固定电压电平与表示输入0的零电压电平之间的不同电压V1、V2、V3来供应。在此实施例中,所有选择晶体管接通导通,因为输入信号施加于存储器胞元的栅极而非选择晶体管的栅极。
[0756] 在一个实施例中,来自选定存储器胞元中的每一者的输出电流累加于数字线3208上,例如类似于上文针对图32论述。累加电流作为输入提供到数字转换器3406。数字转换器3406产生作为表示乘法的结果的数字值的输出。
[0757] 在一个实施例中,电压驱动器3404提供电压V1、V2、V3。在一个实施例中,控制器3403控制电压驱动器3404。在一个实例中,控制器3403基于从使用感测电路系统(未展示)(例如图32的感测电路系统3142)读取存储器胞元提供的反馈来选择要施加的不同电压的量值。
[0758] 在一个实施例中,偏压电路系统3405用于将电压施加于选择晶体管的选择栅极。外加电压表示输入I1、I2、I3(例如输入信号或模式)。控制器3403选择通过控制偏压电路系统3405来施加的电压。
[0759] 图35展示根据一个实施例的具有以并联配置布置于存储器胞元阵列3502中以执行乘法的电阻随机存取存储器(RRAM)或NOR存储器胞元的架构。举例来说,存储器胞元3530、3531、3532存储多位权值(指示为Weight1)的相应有效位。说明简单3位权值,但针对每一权值可存储更多位。当执行乘法时,存储器胞元3530、3531、3532中的每一者可并行存取。在一个实例中,存储器胞元阵列3502包含如图9或11中说明般布置的存储器胞元。
[0760] 每一存储器胞元提供对应于由存储器胞元存储的位的有效性的输出电流(例如,例如上文针对图34描述)。存储器胞元3530、3531、3532连接到共同线3510以累加输出电流。在一个实例中,线3510是位线。
[0761] 不同电压V1、V2、V3使用字线3520、3521、3522施加于存储器胞元3530、3531、3532。电压经选择使得输出电流基于位有效性来按2的幂改变,例如上文描述。
[0762] 在一个实施例中,输入信号I1施加于选择晶体管3540的栅极。选择晶体管3540耦合到共同线3510。选择晶体管3540的输出提供输出电流的总和。在一个实施例中,当输入信号施加于选择晶体管3540的栅极时,不同电压V1、V2、V3保持于恒定电压电平处。
[0763] 在替代实施例中,与Weight1相乘的输入模式可通过改变固定电压与零电压之间的不同电压V1、V2、V3(类似于上文描述)以分别表示输入位1或0来应用于字线3520、3521、3522。
[0764] 存储器胞元阵列3502形成于半导体衬底3504上方。在一个实施例中,存储器胞元阵列3502及半导体衬底3504在组装(例如,通过接合来结合)之前定位于不同芯片或晶片上。
[0765] 类似地,如上文针对Weight1描述,多位权值Weight2及Weight3可存储于存储器胞元阵列3502的其它存储器胞元中,且输出电流累加于共同线3511、3512上,如所说明。这些其它存储器胞元可使用字线3520、3521、3522来存取。共同线3511、3512耦合到各自提供输出电流的总和作为输出的选择晶体管3541、3542。输入模式I2、I3可应用于选择晶体管的栅极。额外权值可存储于存储器胞元阵列3502中。
[0766] 来自共同线3510、3511、3512的输出电流由累加电路系统3550累加。在一个实施例中,累加电路系统3550形成于半导体衬底3504中(例如,形成于顶面处)。
[0767] 在一个实施例中,电压驱动器3506及偏压电路系统3505形成于半导体衬底3504中。形成于半导体衬底3504中的逻辑电路系统(未展示)用于实施控制器3503。控制器3503控制电压驱动器3506及偏压电路系统3505。
[0768] 在一个实施例中,电压驱动器3506提供不同电压V1、V2、V3。偏压电路系统3505应用输入I1、I2、I3。
[0769] 图36展示根据一个实施例的用于基于位有效性使用具有不同偏压电平的存储器胞元来执行乘法的方法。举例来说,图36的方法可使用图34及35中说明的乘法及累加在图1的集成电路装置101中执行。
[0770] 图36的方法可由处理逻辑执行,处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如运行或执行于处理装置上的指令)或其组合。在一些实施例中,图36的方法至少部分由一或多个处理装置(例如图1的控制器124或控制器3403、3503)执行。
[0771] 尽管以特定序列或顺序展示,但除非另外指定,否则过程的顺序可修改。因此,所说明实施例应被理解为仅作为实例,且所说明过程可以不同顺序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,不是每个实施例中都需要所有过程。其它过程流程是可能的。
[0772] 在框3601处,对存储器胞元编程以存储多位权值。在一个实例中,存储器胞元3220、3231、3224经编程以存储多位权值。在一个实例中,存储器胞元3530、3531、3532经编程以存储多位权值。
[0773] 在框3603处,将不同偏压电压施加于存储器胞元。电压对应于存储于相应存储器胞元中的位的有效性。在一个实例中,在执行乘法时,图34的电压V1、V2、V3施加于存储器胞元。
[0774] 在框3605处,将输入模式应用于存储器胞元。在一个实例中,输入模式是图34的输入I1、I2、I3。
[0775] 在框3607处,将来自存储器胞元的输出电流加总于至少一个共同线上。在一个实例中,共同线是线3208。在一个实例中,共同线是线3510。
[0776] 在框3609处,从加总输出电流确定至少一个结果。在一个实例中,数字转换器3406提供结果。在一个实例中,累加电路系统3550提供用于确定结果的电流的总和。
[0777] 在一个实施例中,一种装置包括:存储器胞元阵列(例如3402),其具有NAND快闪存储器胞元,其中每一存储器胞元可编程以存储具有多个有效性中的一者的位,且其中第一存储器胞元(例如3220、3231、3224)经配置以存储第一多位权值;电压驱动器(例如3404),其经配置以在乘法期间将不同电压施加于第一存储器胞元中的每一者的控制栅极,其中每一电压的量值对应于由相应第一存储器胞元存储的位的有效性;偏压电路系统(例如3405),其用于提供与第一多位权值相乘的输入;共同线(例如3208),其耦合到第一存储器胞元中的每一者,其中共同线经配置以加总来自第一存储器胞元的输出电流;及至少一个数字转换器(例如3406),其经配置以基于加总输出电流来提供至少一个结果。
[0778] 在一个实施例中,当存储器胞元经编程以表示位值1时,来自每一第一存储器胞元的相应输出电流对应于由第一存储器胞元存储的相应位的有效性。
[0779] 在一个实施例中,不同电压包含施加于存储第一多位权值的最高有效位的第一存储器胞元中的一者的第一电压(例如V3)及施加于存储第一多位权值的下一最低有效位的第一存储器胞元中的另一者的第二电压;且来自存储最高有效位的存储器胞元的输出电流的量值是来自存储下一最低有效位的存储器胞元的输出电流的量值的两倍。
[0780] 在一个实施例中,在乘法期间,第一存储器胞元中的每一者是串联连接的相应存储器胞元串中的选定胞元,且每一相应串中的其它胞元在乘法期间作为非选定胞元被偏压。
[0781] 在一个实施例中,第一存储器胞元中的每一者通过相应选择晶体管(例如3210、3212、3214)耦合到共同线。
[0782] 在一个实施例中,提供输入包括使用偏压电路系统来施加相应电压以加偏压于每一选择晶体管的栅极。
[0783] 在一个实施例中,提供输入包括在一系列时间片中提供多位输入(例如1010010),每一时间片对应于输入的相应位。
[0784] 在一个实施例中,第一存储器胞元中的每一者经编程以表示位值1或0,且用于对第一存储器胞元中的每一者编程的编程算法将统一编程电压施加于(例如,将相同系列的固定编程脉冲施加于)每一存储器胞元。
[0785] 在一个实施例中,不同电压的量值经选择使得来自第一存储器胞元的输出电流基于存储于第一存储器胞元中的位的相对位有效性来彼此相差2的幂。
[0786] 在一个实施例中,一种设备包括:半导体衬底(例如3504);存储器胞元阵列(例如3502),其具有可编程以存储权值用于执行乘法的存储器胞元,其中存储器胞元经布置使得每一存储器胞元(例如RRAM或NOR快闪存储器胞元)可在存储器胞元阵列中与阵列的其它存储器胞元并行存取,且其中存储器胞元阵列定位于半导体衬底上方;及电压驱动器,其定位于半导体衬底中,电压驱动器经配置以将电压施加于存储器胞元。
[0787] 控制器(例如3503)经配置以:对第一存储器胞元编程以存储多位权值,其中每一第一存储器胞元存储具有多个有效性中的一者的位;使用电压驱动器将不同电压施加于第一存储器胞元中的每一者,其中施加不同电压引起来自每一第一存储器胞元的相应输出电流对应于由第一存储器胞元存储的位的有效性;将输入模式(例如作为输入I1应用的一系列位)应用于第一存储器胞元,其中输入模式将与多位权值相乘;及基于加总来自第一存储器胞元的输出电流来确定来自应用输入模式的结果。
[0788] 在一个实施例中,施加不同电压包括加偏压于第一存储器胞元(例如NOR快闪存储器胞元)的控制栅极。
[0789] 在一个实施例中,第一存储器胞元是电阻随机存取存储器胞元,且施加不同电压包括跨每一第一存储器胞元施加不同电压。
[0790] 在一个实施例中,应用输入模式包括将至少一个电压施加于选择晶体管的栅极,选择晶体管将第一存储器胞元耦合到用于加总输出电流的共同线。
[0791] 在一个实施例中,应用输入模式包括施加不同电压使得每一不同电压是表示输入位1的不同偏压或表示输入位0的偏压。
[0792] 在一个实施例中,表示输入位0的偏压导致来自对应存储器单元的低于阈值量值(例如可忽略不计电流)且对应于来自存储器胞元的0输出的输出电流。
[0793] 在一个实施例中,第一存储器胞元是NOR快闪存储器胞元且通过将第一电压施加于第一存储器胞元的控制栅极来编程。第一电压具有大于针对表示值1的存储最高有效位施加的不同电压中的一者的量值。
[0794] 在一个实施例中,设备进一步包括耦合到第一存储器胞元的字线(例如3520、3521、3522),其中不同电压施加于字线上。
[0795] 在一个实施例中,设备进一步包括耦合到第一存储器胞元中的每一者的位线(例如3510),其中输出电流使用位线来累加。
[0796] 在一个实施例中,设备进一步包括使用结果作为输入来产生输出的至少一个数字转换器,其中输出是输入模式乘以多位权值的乘积。
[0797] 在一个实施例中,一种方法包括:从主机接收第一命令;响应于接收到第一命令,对存储器胞元编程以各自存储具有多个有效性中的一者的位;将不同电压施加于每一存储器胞元(例如施加于每一NAND快闪存储器胞元的控制栅极的电压或跨每一RRAM胞元的电压,如上文描述),其中每一电压的量值对应于由相应存储器胞元存储的位的有效性;将输入应用于存储器胞元(例如,通过改变固定电压状态或0状态之间的不同电压或通过使用选择晶体管,如上文描述);累加来自存储器胞元的输出电流;基于累加输出电流来提供至少一个结果;从主机接收第二命令;及响应于接收到第二命令,将结果发送到主机。
[0798] 集成电路装置101(例如,如在图1中)可经配置为存储装置、存储器模块或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO‑DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
[0799] 集成电路装置101(例如,如在图1中)可安装于计算系统中作为具有嵌入式图像传感器及推理计算能力的存储器子系统。此计算系统可为计算装置,例如桌面计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如飞机、无人机、火车、汽车或其它运输工具)的一部分、物联网(IoT)启用装置、嵌入式计算机(例如包含于运载工具、工业装备或联网商用装置中的嵌入式计算机)或包含存储器及处理装置的此计算装置。
[0800] 一般来说,计算系统可包含耦合到一或多个存储器子系统(例如图1的集成电路装置101)的主机系统。在一个实例中,主机系统耦合到一个存储器子系统。
[0801] 如本文中使用,“耦合到”或“与…耦合”一般指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中介组件),无论有线还是无线,包含例如电、光学、磁性等的连接。
[0802] 举例来说,主机系统可包含处理器芯片组(例如处理装置)及由处理器芯片组执行的软件栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如NVDIMM控制器)及存储协议控制器(例如PCIe控制器、SATA控制器)。主机系统使用存储器子系统例如将数据写入到存储器子系统及从存储器子系统读取数据。
[0803] 主机系统可经由物理主机接口耦合到存储器子系统。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)接口、双倍数据速率(DDR)存储器总线接口、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如支持双倍数据速率(DDR)的DIMM套接字接口)、开放NAND快闪接口(ONFI)、双倍数据速率(DDR)接口、低功耗双倍数据速率(LPDDR)接口、计算快速链路(CXL)接口或任何其它接口。物理主机接口可用于在主机系统与存储器子系统之间传输数据。当存储器子系统通过PCIe接口与主机系统耦合时,主机系统可进一步利用NVM快速(NVMe)接口存取组件(例如存储器装置)。物理主机接口可提供用于在存储器子系统与主机系统之间传递控制、地址、数据及其它信号的接口。一般来说,主机系统可经由相同通信连接、多个单独通信连接或通信连接的组合来存取多个存储器子系统。
[0804] 主机系统的处理装置可为(例如)微处理器、中央处理单元(CPU)、处理器的处理核心、执行单元等。在一些例子中,控制器可称为存储器控制器、存储器管理单元或启动器。在一个实例中,控制器经由耦合于主机系统与存储器子系统之间的总线控制通信。一般来说,控制器可发送命令或请求到存储器子系统以对存储器装置进行期望存取。控制器可进一步包含与存储器子系统通信的接口电路系统。接口电路系统可将从存储器子系统接收的响应转换成用于主机系统的信息。
[0805] 主机系统的控制器可与存储器子系统的控制器通信以执行例如在存储器装置处读取数据、写入数据或擦除数据的操作及其它此类操作。在一些例子中,控制器集成于处理装置的相同封装内。在其它例子中,控制器与处理装置的封装分离。控制器或处理装置可包含硬件,例如一或多个集成电路(IC)、离散组件、缓冲存储器或高速缓冲存储器或其组合。控制器或处理装置可为微控制器、专用逻辑电路系统(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适处理器。
[0806] 存储器装置可包含不同类型的非易失性存储器组件及易失性存储器组件的任何组合。易失性存储器装置可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
[0807] 非易失性存储器组件的一些实例包含与非(或NOT AND)(NAND)型快闪存储器及原位写入存储器,例如三维交叉点(“3D交叉点”)存储器。交叉点非易失性存储器阵列可基于体电阻变化连同可堆叠交叉网格式数据存取阵列执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行原位写入操作,其中非易失性存储器胞元可在不事先擦除非易失性存储器胞元的情况下编程。NAND型快闪存储器包含例如二维NAND(2D NAND)及三维NAND(3D NAND)。
[0808] 存储器装置中的每一者可包含一或多个存储器胞元阵列。一种类型的存储器胞元(例如单电平胞元(SLC))可每胞元存储一个位。其它类型的存储器胞元(例如多电平胞元(MLC)、三电平胞元(TLC)、四电平胞元(QLC)及五电平胞元(PLC))可每胞元存储多个位。在一些实施例中,存储器装置中的每一者可包含一或多个存储器胞元阵列,例如SLC、MLC、TLC、QLC、PLC或此类的任何组合。在一些实施例中,特定存储器装置可包含存储器胞元的SLC部分、MLC部分、TLC部分、QLC部分或PLC部分或其任何组合。存储器装置的存储器胞元可经分组为页,页可指代用于存储数据的存储器装置的逻辑单元。关于一些类型的存储器(例如NAND),页可经分组以形成块。
[0809] 尽管描述了例如3D交叉点型及NAND型存储器(例如2D NAND、3D NAND)的非易失性存储器装置,但存储器装置可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它硫属化物基存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)‑MRAM、导电桥接RAM(CBRAM)、电阻随机存取存储器(RRAM)、氧化物基RRAM(OxRAM)、或非(NOR)快闪存储器及电可擦除可编程只读存储器(EEPROM)。
[0810] 存储器子系统控制器(或简称为控制器)可与存储器装置通信以执行例如在存储器装置处读取数据、写入数据或擦除数据的操作及其它此类操作(例如,响应于由控制器调度于命令总线上的命令)。控制器可包含例如一或多个集成电路(IC)、离散组件或缓冲存储器或其组合的硬件。硬件可包含具有专用(即,硬编码)逻辑以执行本文中描述的操作的数字电路系统。控制器可为微控制器、专用逻辑电路系统(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适处理器。
[0811] 控制器可包含经配置以执行存储于本地存储器中的指令的处理装置(处理器)。在所说明实例中,控制器的本地存储器包含经配置以存储用于执行控制存储器子系统的操作(包含处置存储器子系统与主机系统之间的通信)的各种过程、操作、逻辑流程及例程的指令的嵌入式存储器。
[0812] 在一些实施例中,本地存储器可包含存储存储器指针、提取数据等的存储器寄存器。本地存储器还可包含用于存储微代码的只读存储器(ROM)。虽然实例存储器子系统包含控制器,但在本公开的另一实施例中,存储器子系统不包含控制器,而是可代以依赖外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
[0813] 一般来说,控制器可从主机系统接收命令或操作且可将命令或操作转换成指令或适当命令以实现对存储器装置的期望存取。控制器可负责其它操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓冲操作及与存储器装置相关联的逻辑地址(例如逻辑块地址(LBA)、命名空间)与物理地址(例如物理块地址)之间的地址转译。控制器可进一步包含经由物理主机接口与主机系统通信的主机接口电路系统。主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置且还将与存储器装置相关联的响应转换成用于主机系统的信息。
[0814] 存储器子系统还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统可包含高速缓存或缓冲器(例如DRAM)及地址电路系统(例如行解码器及列解码器),其可从控制器接收地址且解码地址以存取存储器装置。
[0815] 在一些实施例中,存储器装置包含本地媒体控制器,其结合存储器子系统控制器操作以对存储器装置的一或多个存储器胞元执行操作。外部控制器(例如存储器子系统控制器)可外部管理存储器装置(例如,对存储器装置执行媒体管理操作)。在一些实施例中,存储器装置是受管理存储器装置,其是与用于同一存储器装置封装内的媒体管理的本地媒体控制器组合的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
[0816] 控制器或存储器装置可包含经配置以实施上文论述的存储功能的存储管理器。在一些实施例中,存储器子系统中的控制器包含存储管理器的至少一部分。在其它实施例中或组合地,主机系统中的控制器或处理装置包含存储管理器的至少一部分。举例来说,控制器或处理装置可包含实施存储管理器的逻辑电路系统。举例来说,主机系统的控制器或处理装置(处理器)可经配置以执行存储于存储器中的用于执行本文中描述的存储管理器的操作的指令。在一些实施例中,存储管理器经实施于安置于存储器子系统中的集成电路芯片中。在其它实施例中,存储管理器可为存储器子系统的固件的部分、主机系统的操作系统、装置驱动器或应用程序或其任何组合。
[0817] 在一个实施例中,用于引起机器执行本文中论述的方法中的任一或多者的一组指令可在其内执行的计算机系统的实例机器。在一些实施例中,计算机系统可对应于主机系统,其包含、耦合到或利用存储器子系统或可用于执行上述操作。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网或因特网或其任何组合中的其它机器。机器可在客户端‑服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。
[0818] 机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥、网络附接存储设施或能够(循序或以其它方式)执行指定由机器采取的动作的一组指令的任何机器。此外,虽然说明了单个机器,但术语“机器”还应被视为包含个别或联合执行一组(或多组)指令以执行本文中论述的方法论中的任一或多者的机器的任何集合。
[0819] 实例计算机系统包含处理装置、主存储器(例如只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM))、静态随机存取存储器(SRAM)等)及数据存储系统,其经由总线(其可包含多个总线)彼此通信。
[0820] 处理装置可为一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的一处理器或实施指令集组合的若干处理器。处理装置还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似物。处理装置经配置以执行用于执行本文中论述的操作及步骤的指令。计算机系统可进一步包含网络接口装置以经由网络进行通信。
[0821] 数据存储系统可包含其上存储体现本文中描述的任何一或多种方法或功能的一或多组指令或软件的机器可读媒体(也称为计算机可读媒体)。指令还可在其由计算机系统执行期间完全或至少部分驻存于主存储器内及/或处理装置内,主存储器及处理装置也构成机器可读存储媒体。机器可读媒体、数据存储系统或主存储器可对应于存储器子系统。
[0822] 在一个实施例中,指令包含用于实施对应于上述操作的功能性的指令。虽然机器可读媒体在实例实施例中展示为单个媒体,但术语“机器可读存储媒体”应被视为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被视为包含能够存储或编码由机器执行的一组指令且引起机器执行本公开的方法论中的任一或多者的任何媒体。术语“机器可读存储媒体”应相应地被视为包含(但不限于)固态存储器、光学媒体及磁性媒体。
[0823] 已依据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的一些部分。这些算法描述及表示是由数据处理领域的技术人员用于向所属领域的其他技术人员最有效传达其工作实质的方式。算法在此通常被设想为导致期望结果的自相一致操作序列。操作是需要物理操纵物理量的操作。通常但不一定,这些量采取能够被存储、组合、比较及以其它方式操纵的电或磁信号的形式。主要由于常用原因,将这些信号称为位、值、元素、符号、字符、项、数字或类似物已被证明有时是方便的。
[0824] 然而,应记住,所有这些及类似术语应与适当物理量相关联且仅为应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,其将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据操纵及变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
[0825] 本公开还涉及用于执行本文中的操作的设备。此设备可为了预期目的而专门构造,或其可包含由存储于计算机中的计算机程序选择性激活或重新配置的通用计算机。此计算机程序可存储于计算机可读存储媒体中,例如(但不限于)任何类型的磁盘(包含软盘、光盘、CD‑ROM及磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
[0826] 本文中呈现的算法及显示不固有地与任何特定计算机或其它设备相关。各种通用系统可根据本文中的教示与程序一起使用,或可证明构造更专门设备来执行方法是方便的。各种这些系统的结构将如下文描述中陈述那样出现。另外,本公开不参考任何特定编程语言描述。应了解,各种编程语言可用于实施本文中描述的本公开的教示。
[0827] 在一个实施例中,存储器装置包含控制存储器装置的电压驱动器(例如图3的205、215、225)及/或其它组件的控制器。控制器由固件或其它软件指示。软件可存储于机器可读媒体上作为指令,指令可用于对控制器编程。机器可读媒体包含用于存储呈可由机器(例如计算机)读取的形式的信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
[0828] 在本描述中,各种功能及操作可被描述为由计算机指令执行或引起以简化描述。然而,所属领域的技术人员将认识到,此类表述意味着功能由一或多个控制器或处理器(例如微处理器)执行计算机指令产生。替代地或组合地,功能及操作可在使用或不使用软件指令的情况下使用专用电路系统实施,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。实施例可在不使用软件指令的情况下或结合软件指令使用硬接线电路系统实施。
因此,技术既不限于硬件电路系统与软件的任何特定组合,也不限于由数据处理系统执行的任何特定指令源。
[0829] 除非另有明确说明,否则例如短语“X、Y或Z中的至少一者”的析取语言应根据上下文理解为一般用于表示项目、项等可为X、Y或Z或其任何组合(例如X、Y及/或Z)。因此,此析取语言一般不希望且不应隐含某些实施例需要各自存在至少一个X、至少一个Y或至少一个Z。
[0830] 在以上说明中,已参考本公开的特定实例实施例描述本公开的实施例。应明白,可在不背离所附权利要求书中陈述的本公开的实施例的更广精神及范围的情况下对本公开做出各种修改。说明书及图式应相应地被视作意在说明而非限制。