CN112053712A - 具有集成偏差元件的存储器内计算阵列 - Google Patents

具有集成偏差元件的存储器内计算阵列 Download PDF

Info

Publication number
CN112053712A
CN112053712A CN202010504032.0A CN202010504032A CN112053712A CN 112053712 A CN112053712 A CN 112053712A CN 202010504032 A CN202010504032 A CN 202010504032A CN 112053712 A CN112053712 A CN 112053712A
Authority
CN
China
Prior art keywords
memory
cells
bias
values
imc
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.)
Granted
Application number
CN202010504032.0A
Other languages
English (en)
Other versions
CN112053712B (zh
Inventor
A·格罗弗
T·罗伊
N·乔拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics International NV Switzerland
Original Assignee
STMicroelectronics International NV Switzerland
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/882,024 external-priority patent/US11094376B2/en
Application filed by STMicroelectronics International NV Switzerland filed Critical STMicroelectronics International NV Switzerland
Publication of CN112053712A publication Critical patent/CN112053712A/zh
Application granted granted Critical
Publication of CN112053712B publication Critical patent/CN112053712B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/418Address circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B10/00Static random access memory [SRAM] devices
    • H10B10/12Static random access memory [SRAM] devices comprising a MOSFET load element
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • Memory System (AREA)

Abstract

本公开的实施例涉及具有集成偏差元件的存储器内计算阵列。一种存储器内计算(IMC)设备包括具有第一多个单元的计算阵列。计算阵列被布置为与多列单元相交的多行单元。第一多个单元中的每个单元通过其对应的行和列可标识。IMC设备还包括多个计算引擎和多个偏差引擎。每个计算引擎分别形成在第二多个单元中的不同单元中,其中第二多个单元由第一多个单元中的单元形成。每个计算引擎形成在相应的行和列交叉点处。多个偏差引擎中的每个偏差引擎被布置为将来自多个计算引擎中的至少一个计算引擎的输出与相应的偏差值进行计算组合。

Description

具有集成偏差元件的存储器内计算阵列
技术领域
本公开总体上涉及具有存储器内计算能力的存储器阵列。更具体地但非排他性地,本公开涉及具有集成偏差元件的存储器内计算阵列。
背景技术
众所周知,各种计算机视觉、语音识别和信号处理应用都受益于学习机器的使用。如本公开中讨论的,学习机器可以属于机器学习、人工智能、神经网络、概率推理引擎、加速器等的技术名称。这样的机器被布置为快速执行成百上千个并发操作。常规的学习机器可以提供每秒数百万亿次浮点运算(即,百万百万(1012)次浮点运算)的计算能力。
在一些情况下,学习机器被组织为具有能够执行“存储器内计算”功能的一个或多个易失性存储器单元阵列。存储器内计算功能通过以下方式来解决一个数据吞吐量瓶颈:执行至少一些计算(例如,选通操作(例如,AND、NAND、OR、NOR等)、加法器功能、移位运算等)作为在存储器内发生的单个操作,而不是从存储器阵列中检索数据、使用常规处理电路相同执行期望动作并且将结果保存回存储器的常规操作。
在以下出版物中描述了有助于理解本发明的技术和相关技术的某些方面:
Jain等人的美国专利号10,073,733,它描述了一种用于存储器内计算的系统和方法。
Akerib等人的美国专利号9,418,719,它描述了一种存储器内计算设备。
Akerib等人的美国专利号8,238,173,它描述了使用存储单元来执行计算;以及
Mikamonu Group Ltd.等人的美国专利公开号2015/0131383A1,它描述了非易失性存储器内计算设备。
图1是常规的静态随机存取存储器(SRAM)单元10(即,存储器位单元)。存储器单元10被形成为六晶体管(6T)存储器单元。在其他存储器单元中使用具有不同数目的晶体管(例如,1T、4T、8T、10T等)的其他存储器单元架构。另外,存储器单元10中的晶体管被形成为金属氧化物半导体场效应晶体管(MOSFET),但是在其他类型的存储器单元中使用其他架构。为了简洁起见,这些其他架构在本公开中没有描述。
存储器单元10将单个数据位存储在位单元12中。位单元12包括四个晶体管T3、T4、T5、T6。四个晶体管电布置为两个交叉耦合的反相器。由于如此布置,单元10将可靠地存储逻辑零(即,“0”)位或逻辑一(即,“1”)位。
首先经由字线14信号授予对位单元12的访问。当字线14被断言时,存取晶体管T1、T2经由相应的数据访问线18A、18B将位单元12耦合在差分位线16A、16B之间。
为了读取存储在位单元12中的位,将差分位线16A、16B预充电到高(即,“1”)逻辑状态,并且经由在字线14上断言的信号启用(即,导通)存取晶体管T1、T2。取决于位单元12是存储逻辑一(即,“1”)还是逻辑零(即,“0”),一个位线16A、16B或另一位线上的电压会略有下降。该电压差从位单元12经由数据访问线18A、18B传递到相应位线16A、16B,并且由耦合在位线16A、16B之间的感测元件(例如,感测放大器、模数转换器等)(未示出)来检测。
为了将位写入位单元12,期望的逻辑一(即,“1”)或逻辑零(即,“0”)被施加到位线16B(例如,图1中的BL),而相反的逻辑值被施加到位线16A(例如,不是图1中的BL)。在位线16A、16B上断言信号之后,字线14被断言,这将启用存取晶体管T1、T2并且从而将跨越数据存取线18A、18B的差分电压施加到位单元12。新的或相同的值将被驱动到交叉耦合的反相器中并且被锁存到位单元12中。
为了将数据位保持在位单元12中,字线信号14被去除,这将位单元12与位线16A、16B解耦。被保持在位单元电压源20与接地平面22之间的电压将使交叉耦合的反相器保持在稳定状态,这将保持数据位。
常规地,图1的存储器单元10将是在SRAM存储器设备中以一种或多种阵列结构布置的数百、数千或数百万个相同单元之一。这些类型的SRAM存储器设备在一些情况下被修改并且在诸如计算机视觉设备、语音识别系统、信号处理应用和任何其他这样的学习机器等学习机器中使用。为了增加处理,图1的SRAM存储器单元可以在还包括计算能力的设备中被组织。
图2是常规的存储器内计算系统30。存储器内计算系统30被布置为在存储器阵列32内执行特定的计算操作。这些操作可以例如包括选通操作(例如,AND、NAND、OR、NOR等)、加法器功能、移位运算等。
为了利用常规的存储器内计算系统30,将地址34以编程方式应用于地址译码器36。沿着图1的位单元12的线,地址译码器36生成适当的字线(WL)和位线(BL)信号以及施加到存储器阵列32的读取和写入信号(未示出)。如多个字线WL和多个位线BL_A、BL_B、BL_N所示的存储器阵列32可以具有任何期望尺寸。
与到达地址译码器36的地址信息34相对应,将一个或多个存储器内计算指令38以编程方式应用于存储器内计算译码器40。存储器内计算指令38可以从学习机器的处理器或其他类型的处理器传递。在一些情况下,存储器内计算指令38被形成为期望的存储器内计算的编码选择。
存储器内计算译码器40将解释存储器内计算指令38,并且生成适当的存储器内控制信令42,该存储器内控制信令42被传递给存储器内计算代码生成器44。在一种情况下,例如,存储器内控制信令42被布置为三线信号,并且这三个线由存储器内计算代码生成器44译码为八个不同的存储器内计算指令,这些存储器内计算指令被传递到相应的感测元件电路46_A、46_B、46_N。从位线差分地读取信息的感测元件电路46_A、46_B、46_N是本领域已知的并且不再进一步描述。
如图2所示,存储器内计算译码器40和存储器内计算代码生成器44分别将存储器内计算选择信号50和存储器内计算指令信号52传递给感测元件电路46_A、46_B、46_N。存储器内计算选择信号50被布置为将感测元件电路46_A、46_B、46_N引导到将执行选定的计算的适当电路系统,并且存储器内计算指令信号52控制计算并且进一步引导感测元件电路46_A、46_B、46_N将信令施加到位线以将计算结果存储回存储器阵列32中。
一组偏差电路48_A、48_B、48_N也耦合到存储器阵列32的位线。众所周知,特别是在学习机器中,合适的偏置电压的施加可以提高学习机器结果的准确性。在常规的存储器内计算系统30中,在已经执行一对位线中的所有单元上的整个存储器内计算之后,偏置电压被施加到相应位线。
图3是更详细的图2的常规存储器内计算系统30A的一部分。在部分30A中,位单元12A-12N的整个列被表示在存储器阵列32A中的一对差分位线之间。每个位单元12A-12N可以沿着图1中的位单元12的线。整行可以包括8个位单元、128个位单元、1024个位单元、8192个位单元或某个其他数目的位单元。图2的存储器内计算功能为简洁起见而不再重复。为了避免混淆附图,在图3中表示了存取晶体管,但是没有单独标记,只有字线参考指示符。
由感测元件电路系统46收集的数据还可以由模数控制(ADC)电路系统数字化并且提供给加法器电路56。另外,偏差控制电路48引导来自偏差值存储库54的一个或多个数字比特值(例如,数据的数字比特流),其也被提供给加法器电路56。来自偏差值存储库54的选定的偏差数据和来自感测元件电路系统46的所确定的计算数据被组合并且传递到合并电路系统58。合并电路系统58可以包括累加器、感测元件、模数转换器、时钟电路、串并转换器、锁存器等中的任何一个或多个。输出值数据(其可以是单个数据位、数据位流或某种其他形式的数据)通过感测元件电路系统46被传回以返回到分别选择的一个或多个位单元。输出值数据可以可选地从存储器内计算系统30A返回到经由输出管道60耦合到存储器的处理器。
在背景技术部分中讨论的所有主题不一定是现有技术,并且不应当仅仅由于其在背景技术部分中的讨论而被认为是现有技术。按照这些思路,除非明确指出是现有技术,否则在背景技术部分中讨论的与该主题相关的现有技术中的任何问题都不应当被视为现有技术。取而代之,背景技术部分中对任何主题的讨论都应当被视为发明人解决特定问题的方法的一部分,该方法本身也可能具有创造性。
发明内容
常规的存储器内计算结构和方法的使用带来了益处,特别是对学习机器系统而言,但是却缺乏常规系统。常规系统仅在执行了整个计算之后才施加偏差值。发明人已经认识到,为了在不损失准确性的情况下增加偏差,至少在一些情况下,可以部分地执行计算,并且应当对部分结果施加偏差。如果使用常规的存储器内计算结构来保持这种类型的准确性,则常规的存储器内计算结构将被强制执行完整计算作为一系列部分事务,这会花费更多的时间并且消耗更多的精力。因此,本文中公开的发明主题的一种实际应用包括将偏差数据值存储在存储器阵列的多行和多列中以与存储器内计算功能同时应用。与常规系统相比,这种组织可以得到提高的准确性,降低的功耗以及更高的准确性。
一种存储器内计算(IMC)设备可以概括为包括:具有第一多个单元的计算阵列,该计算阵列被布置为与多个列单元相交的多个行单元,第一多个单元中的每个单元通过其对应的行和列可标识;多个计算引擎,每个计算引擎分别形成在第二多个单元中的不同单元中,第二多个单元从第一多个单元中的单元形成,每个计算引擎形成在相应的行和列交叉点处;以及多个偏差引擎,多个偏差引擎中的每个偏差引擎被布置为将来自多个计算引擎中的至少一个计算引擎的输出与相应的偏差值进行计算组合。
第一多个单元的一部分可以被布置为存储器位单元的阵列。存储器位单元的阵列可以被形成为静态随机存取存储器(SRAM)存储器阵列。多个计算引擎中的至少一些计算引擎可以被布置为执行至少一个选通操作。多个计算引擎中的至少一些计算引擎可以被布置为执行至少一个数学运算。多个偏差引擎可以被布置为阵列。被布置为阵列的多个偏差引擎可以形成在第一多个单元中的相邻单元中。多个偏差引擎中的每个偏差引擎可以被布置为存储器位单元。
IMC设备还可以包括耦合到多个列单元中的每个列单元的合并电路系统,该合并电路系统被布置为形成从计算引擎和偏差引擎中的一项或多项中的数据生成的至少一个输出值。
合并电路系统可以包括至少一个感测元件。
一种存储器内计算(IMC)方法可以概括为包括:将多个神经网络内核值或特征值存储在存储器内计算存储器设备的相应的多个存储器位单元中,其中存储器内计算存储器设备被组织为具有被布置为与多个列单元相交的多个行单元的第一多个单元,第一多个单元中的每个单元通过其对应的行和列可标识;执行多个存储器内函数,其中多个存储器内函数中的至少一些存储器内函数采用多个神经网络内核值或特征值中的神经网络内核值或特征值作为操作数;将多个存储器内函数的结果存储在相应的第二多个单元中,第二多个单元由第一多个单元中的单元形成;以及将多个存储器内函数的结果与相应的多个偏差值进行计算组合。
存储器内计算存储器设备的一部分可以是静态随机存取存储器(SRAM)存储器设备。多个存储器内函数可以包括至少一个选通函数或至少一个数学函数。将多个存储器内函数的结果与相应的多个偏差值进行计算组合可以包括将一行结果信息与一行偏差值组合。将多个存储器内函数的结果与相应的多个偏差值进行计算组合可以包括:产生一组计算组合值;以及将该组计算组合值存储在第一多个单元的存储器位单元中,而无需将该组计算组合值传递出存储器内计算存储器设备。将多个存储器内函数的结果与相应的多个偏差值进行计算组合可以包括:产生一组计算组合值;将该组计算组合值存储在第一多个单元的存储器位单元中;以及将该组计算组合值中的至少一些计算组合值传递出存储器内计算存储器设备。
一种系统可以概括为包括:存储器内计算存储器设备;功能逻辑;以及耦合到存储器内计算存储器设备和功能逻辑的处理器。该存储器内计算存储器设备中布置有:单元阵列,该单元阵列经由与多个列单元相交的多个行单元中的选定行单元可寻址,其中单元阵列中的每个单元通过其对应的行和列可标识;形成在选定的行和列交叉点处的多个计算引擎;以及多个偏差引擎,被布置为将来自多个计算引擎中的至少一个计算引擎的输出与相应的偏差值进行计算组合。该处理器被布置为执行学习机器的功能,该学习机器的功能包括:将多个神经网络内核值或特征值存储在存储器内计算存储器设备的相应的第一多个存储器位单元中;从功能逻辑接收流数据;使用多个计算引擎中的至少一些计算引擎执行多个存储器内函数,其中多个存储器内函数中的至少一些存储器内函数采用多个神经网络内核值或特征值中的神经网络内核值或特征值作为第一操作数数据并且采用至少一些流数据作为第二操作数数据;将多个存储器内函数的结果存储在存储器内计算存储器设备的相应的第二多个存储器位单元中;以及将多个存储器内函数的结果与相应的多个偏差值进行计算组合。
存储器内计算存储器设备、功能逻辑和处理器可以被布置为物联网(IoT)设备、工业设备或基于车辆的设备。学习机器的功能可以包括:产生第一结果的第一级学习机器功能;以及产生第二结果的第二级学习机器功能,其中首先执行第一级学习机器功能,并且其中第二级学习机器功能基于第一结果选择性地执行。第一级学习机器功能可以以第一功率水平来操作,并且第二级学习机器功能可以以与第一功率水平不同的第二功率水平来操作。
这些特征以及随后将变得很清楚的其他目的和优点存在于下文中更全面地描述和要求保护的构造和操作的细节中,参考构成其一部分的附图。
提供本“发明内容”是为了以简化的形式介绍某些概念,这些概念将在下面的“具体实施方式”中进一步详细描述。除非另有明确说明,否则本“发明内容”既不标识所要求保护的主题的关键或必要特征,也不旨在限制所要求保护的主题的范围。
附图说明
参考以下附图描述了非限制性和非穷举性的实施例,其中除非另外指明,否则贯穿各个视图,相同的标号表示相同的部分。附图中元件的尺寸和相对位置不必按比例绘制。例如,选择、放大和定位各种元素的形状以提高图形的可读性。为了便于在附图中识别,已经选择了所绘制的元素的特定形状。以下参考附图描述一个或多个实施例,在附图中:
图1是常规的静态随机存取存储器(SRAM)单元;
图2是常规的存储器内计算系统;
图3是更详细的图2的常规存储器内计算系统的一部分;
图4是具有集成偏差元件的改进的存储器内计算系统实施例;
图5是更详细的具有图4的集成偏差元件的改进的存储器内计算系统实施例的一部分;
图6是示出存储器内计算功能和多个偏差元件的存储器阵列实施例;以及
图7是包括具有存储器内计算设备的装置的系统实施例。
具体实施方式
通过参考本发明的详细描述,可以更容易地理解本发明。本文中使用的术语仅出于描述特定实施例的目的,并且不限于权利要求,除非法院或具有管辖权的公认机构确定该术语为限制性的。除非本文中特别定义,否则本文中使用的术语应当具有相关领域已知的常规含义。
在以下描述中,阐述了某些特定细节以便提供对所公开的各种实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有这些具体细节中的一个或多个的情况下或利用其他方法、组件、材料等来实践实施例。在其他情况下,与电子电路系统、计算系统相(包括客户端和服务器计算系统、网络和其他相关技术)关联的公知结构没有详细示出或描述,以避免不必要地混淆本文中呈现的实施例的描述。
存储器内计算结构和方法可以改善常规的计算系统,并且提供一些益处。这些结构和方法尤其可以为学习机器系统提供益处,但是本公开的系统、设备和方法(即,教导)不限于学习机器。如本公开中讨论的,学习机器可以属于机器学习、人工智能、神经网络、概率推理引擎、加速器等的技术名称。未明确标识为学习机器的计算系统可能属于冯·诺依曼架构计算机、哈佛架构计算机、计算机器、处理器、微控制器、微处理器、可编程计算机、传统计算机等的技术名称。本公开的教导可以与学习机器和非学习机器两者集成或以其他方式应用于学习机器和非学习机器两者。为了简洁而非限制,本公开总体上描述了涉及学习机器的实施例。
如本文中论述的,当将偏差架构从存储器阵列外部移动到存储器阵列内部时,改进了存储器内计算系统。当偏差架构位于存储器阵列外部时,只能在执行整个计算之后施加偏差值。尽管在常规的存储器内计算系统中可以执行完整计算作为一组部分计算并且可以在每次部分计算之后施加偏差,但是这种类型的系统比所需要的速度慢并且效率低。
发明人应当认识到,向存储器单元架构内的部分计算添加偏差将能够提高系统的吞吐量,保持准确性并且降低功耗。
在至少一个实施例中,软件从业者正在设计用于学习机器的实际应用。学习机器可以是或以其他方式包括卷积神经网络、机器视觉系统或某种其他类型的人工智能计算设备。软件从业者可以认识到,学习机器将执行成千上万、数百万或更多个并发计算功能,并且该机器将从使用存储器内计算架构执行这些并发计算功能中的很多并发计算功能中受益。软件从业者还可以认识到,为了提高或以其他方式保持准确性,在执行存储器内计算功能期间应当施加特定偏差。为了实现这些特征,软件从业者将格式化他的学习机器系统以包括利用集成偏差元件实现存储器内计算功能的本公开(即,本公开的教导)中描述的设备、方法和系统实施例中的一个或多个。
在至少一种情况下,软件从业者正在实现边缘计算系统以控制安全相机。这样的实现可以远程部署,并且期望设备消耗非常低的功率。远程安全相机可以由电池或容量有限的其他电力存储设备供电,并且该电源可以由太阳能电池、风力发电设备或某种其他生态可接受源来充电。在这种情况下,安全相机可以耦合到运动检测系统,该运动检测系统在检测到运动时将启用第一级学习机器操作。用安全相机的图像传感器捕获的图像可能具有非常低的分辨率或允许降低功率操作的其他特性,并且第一级学习机器操作将产生“人”或“非人”的二元决策。在这些情况下,如果第一级学习机器操作确定检测到的移动对象是人类,则第二级学习机器操作将被发起。第二级学习机器操作(预计将消耗更多功率)将提供更复杂的学习机器分析,诸如面部识别、威胁评估和其他这样的特征。替代地,如果第一级学习机器操作确定检测到的移动对象不是人类,则安全相机系统可以保持在较低功率操作模式。检测到的移动对象可以是动物、风中吹来的垃圾、由移动到安全相机视场之外的对象引起的光反射、或某种其他非人类对象,但是,第一级学习机器操作不会进行该特定的标识或确定。取而代之,第一级学习机器操作将仅确定该对象不是人类。具有单级机器学习的常规安全系统实施例可能已经检测到相同的动作,标识出非人类对象,并且确定不指示任何特定动作,但是该常规安全系统将消耗更多功率。使用本文中的教导,改进的安全系统将消耗更少功率,同时达到不指示任何特定动作的相同确定。通过该示例性实施例,示出了本公开的教导可以布置在非常低功率的系统中。一个非限制性的非常低功率的系统是常开人工神经网络前端,该人工神经网络前端在某些触发条件下被布置为调用功能更强大的学习机器的操作。可以考虑其他这样的系统。
仍然考虑改进的安全相机应用,第一级低功率学习机器通过本公开的教导来实现。也就是说,采用集成偏差元件的存储器内计算系统的实施例为学习机器系统提供提高的准确性、更高的吞吐量和更低的功率。
在至少一个实施例中,存储器内计算阵列具有第一多个单元,该第一多个单元被布置为与多个列单元相交的多个行单元。第一多个单元中的每个单元通过其对应的行和列可标识。存储器阵列还包括多个计算引擎和多个偏差引擎。在一些实施例中,计算引擎和偏差引擎中的一者或两者可以在物理上或操作上与存储器阵列集成。在其他实施例中,计算引擎和偏差引擎中的一者或两者可以在物理上与存储器阵列分离并且不同,但是通信地耦合到存储器阵列以使得组件协同工作。
每个计算引擎可以与第二多个单元中的不同单元集成或相关联,其中第二多个单元是第一多个单元中的一些或全部单元。每个计算引擎可以形成在相应的行和列交叉点处。
多个偏差引擎中的每个偏差引擎被布置为将来自多个计算引擎之一的输出与相应的偏差值进行计算组合。在一些情况下,多个偏差引擎可以被布置为阵列。在一些情况下,每个相应的偏差值将被存储在也执行相应计算组合的偏差引擎中。一个或多个偏差值可以存储在存储库中,该存储库可以是位单元、存储器的公共区域或某个其他存储库。在至少一些情况下,多个偏差引擎被布置在相邻的位单元中。
在一些情况下,本公开的存储器内计算系统还包括合并电路。合并电路可以被称为感测元件电路。在至少一些情况下,与任何数目的位单元(例如,位单元的整个位线(例如,列))相关联的感测元件电路系统形成在一个或多个计算引擎附近,或者以其他方式与一个或多个计算引擎相关联。
具有本文中讨论的多层学习机器技术的安全相机系统实施例不是限制性的。也就是说,本教导不限于首先检测移动对象是人类还是非人类并且然后基于该确定来采取行动的安全系统。还考虑了存储器内计算系统、设备和方法的很多其他实际应用。
在本文中的教导的一种实际应用中,烤箱已经被自动设置为在选定的时间量(例如,30分钟、55分钟、240分钟或其他任何选定时间)内烹饪特定食物(例如,比萨饼、蛋糕、烤肉、鱼、蔬菜或任何其他食物)。部署本公开中讨论的发明构思,图像传感器可以在选定烹饪时间段的结束时或附近捕获图像。如果第一级学习机器确定食物未充分变褐,上升不足或未达到其他视觉特性,则可以将烤箱计时器协作地重置为新的选定值。在另一实际应用中,智能家庭收听设备可以部署低功率的第一级学习机器,该第一级学习机器仅检测人是否说出短语“HEY ALEXA”。如果第一级学习机器确定感兴趣的短语已经被说出,则部署复杂自然语言处理的第二级学习机器可以被启用。在第三非限制性的实际应用中,车辆中的粗略学习机器传感器可以确定检测到的水分是雪还是雨;车辆中的粗略学习机器传感器可以确定天气是晴天还是多云;车辆中的粗略学习机器传感器可以确定路面是混凝土还是沥青;或者车辆中的粗略学习机器传感器可以确定很多其他这样的参数。基于粗略学习机器传感器的确定,车辆中更复杂的处理可以被启用。
本文中提出的几种实际应用是说明性的而不是限制性的。应当认识到,本公开的教导可以应用于工业机器、消费产品以及所有类型的其他设备和系统。
图4是具有集成偏差元件的改进的存储器内计算系统130。具有集成的偏差元件的改进的存储器内计算系统130的实施例被布置为在存储器阵列132内执行特定的计算操作。这些操作可以例如包括选通操作(例如,AND、NAND、OR、NOR、XOR、XNOR等)、加法器和其他数学函数、移位运算等。这些操作将使用存储在存储器内阵列中的数据作为操作数。在至少一些情况下,存储在一个或多个偏差电路148中的信息在计算操作中被用作操作数数据。
为了利用具有集成偏差元件的改进的存储器内计算系统130,将地址134以编程方式应用于地址译码器136。地址134可以由应用处理器、任何数目的并行处理器之一、学习机器功能、或计算设备的某种其他控制机制来应用。
地址译码器136将生成适当的字线(WL)和位线(BL)信号以及读取和写入信号(未示出),这些信号被施加到存储器阵列132。如多个字线WL和多个位线BL_A、BL_B、BL_N所示的存储器阵列132可以具有任何期望尺寸。在一些实施例中,存储器阵列132可以可选地包括合并电路系统(例如,感测元件电路系统146)、存储器内计算译码器140A(即,译码器电路系统)、存储器内计算代码生成器140B(即,译码器电路系统)和被布置为执行存储器内计算任务的其他电路系统。存储器内计算译码器140A、存储器内计算代码生成器140B和其他存储器内计算电路(未示出)可以统称为存储器内计算逻辑140。在一些情况下,存储器内计算逻辑140在一些或所有行和列的交叉处与存储器阵列132集成在一起。在其他情况下,存储器内计算逻辑140布置在靠近存储器阵列132的单独且不同的结构132B中。
与应用于地址译码器136的地址信息134相对应,一个或多个存储器内计算指令138以编程方式应用于存储器内计算译码器140A。存储器内计算指令138可以从处理器、任何数目的并行处理器之一、学习机器功能、或计算设备的某种其他控制机制传递。在一些情况下,存储器内计算指令138被形成为期望的存储器内计算的编码选择。
存储器内计算译码器140A将解释存储器内计算指令138,并且生成适当的存储器内控制信令142,该存储器内控制信令142被传递给存储器内计算代码生成器140B。在一个示例性情况下,存储器内控制信令142被布置为多线信号,并且存储器内计算代码生成器140B将多个线译码为任何数目的不同的存储器内计算指令,这些存储器内计算指令被传递到相应合并电路系统。
为了简洁起见,图4中的合并电路系统被示出为一组感测元件电路146_A、146_B、146_N。然而,应当认识到,合并电路系统可以另外单独地或以任何合适的合作布置一起包括累加器、模数转换器、时钟电路、串并转换器、锁存器、缓冲器等中的任何一种或多种。在一些情况下,合并电路系统被布置为从由软件从业者指示的程序化操作中形成结果值。结果值可以是从存储器位单元中检索的数据;结果值可以是存储器内计算功能的结果;结果值可以是偏差数据与来自存储器位单元的数据之间的计算组合的结果,或者是存储器内计算功能的结果;或者结果值可以以某种其他方式来形成。在一些情况下,合并电路系统的输出被反馈回到存储器内阵列中,而不会将任何计算组合值传递出存储器内计算存储器设备。在一些情况下,合并电路系统的输出被传递出存储器内计算存储器设备。在其他情况下,合并电路系统的输出既被反馈到存储器阵列中,又被传递出存储器内计算存储器设备(即,具有集成偏差元件的改进的存储器内计算系统130)。
图4的感测元件电路146_A、146_B、146_N在本文中可以统称为感测元件电路146。感测元件电路146以未进一步描述的已知方式从位线读取信息(例如,以差分、非差分或某种其他方式)。由感测元件电路146_A、146_B、146_N生成的信息可以分别经由管道160_A、160_B、160_N从存储器阵列132输出。另外地或替代地,由感测元件电路146_A、146_B、146_N生成的信息可以存储在存储器阵列132的始发单元中,或者存储在存储器阵列132的一个或多个不同的单元中。
图4的存储器内计算译码器140A和存储器内计算代码生成器140B分别将存储器内计算选择信号150和存储器内计算指令信号152传递到感测元件电路146。存储器内计算选择信号150可以被布置为将感测元件电路146引导到将执行选定计算的适当电路系统。在至少一些情况下,存储器内计算指令信号152可以控制存储器内计算,并且还指示感测元件电路146向位线施加信令以将计算结果存储回存储器阵列132中。在一些情况下,感测元件电路146在每一列位线的末端处与存储器阵列132集成在一起。在其他情况下,感测元件电路146布置在靠近存储器阵列132的单独且不同的结构132A中。
一组偏差电路148_A、148_B、148_N在本文中可以统称为偏差电路148、位单元148、偏差控制电路系统148、偏差引擎148或另一类似的术语。偏差电路148被集成在存储器阵列132内。在一些情况下,偏差电路148包括存储偏差值的位单元。偏差电路148还耦合到存储器阵列132的位线。在至少一些情况下,偏差电路148被布置为在任何数目的存储器内计算之前、期间或之后施加合适的偏置电压。这样的电压或其他合适的值的施加可以提高学习机器结果的准确性。与仅可以在执行列中的所有单元上的整个存储器内计算之后才施加偏置电压的常规的存储器内计算系统30(图2)不同,在各种实施例中,本文中描述的偏差值可以在计算之前、期间和之后应用。
在至少一个实际应用中,具有集成偏差元件的改进的存储器内计算系统130被部署在执行图像处理(例如,图像分类、图像定位和分类、像素级语义分割或其他图像处理)的卷积神经网络(CNN)中。在CNN的一个层或多个层中使用存储器阵列132中的多个存储器位单元来存储内核数据、特征数据或其他类型的数据。在一个或多个层中,软件从业者已经确定在做出层的最终决定之前应用偏差值将提供益处。例如,如果图像是“暗淡的”,则可以添加偏差值以使图像变亮。如果图像非常亮,则可以应用偏差值以增加对比度。考虑到这种情况的一种实现,图像数据跨多个字线被流送到存储器阵列132中,并且执行特定操作。也就是说,在至少一个实施例中,执行一个或多个存储器内函数中的任何数目的存储器内函数,其中多个存储器内函数中的至少一些存储器内函数采用多个神经网络值(例如,内核值、特征值或其他值)中的多个作为操作数。多个存储器内函数的结果存储在相应的第二多个单元中,其中第二多个单元由存储器阵列132的单元形成。在该阶段,本教导允许对偏差进行计算组合或以其他方式非常灵活地应用。例如,可以将偏差施加到多个字线中的每个字线、多个字线的一部分、一个或多个列、一个或多个字线的一个或多个部分、或任何其他合适的布置。在至少一个实施例中,将多个存储器内函数的结果与相应的多个偏差值进行计算组合包括将一行结果信息与一行偏差值进行组合。
在图4的实施例中,偏差信息可以经由偏差电路148存储和分布在与完整计算相关联的多个行和列中。例如,偏差存储行可以具有测温或数字编码以实现广泛的偏差值应用。偏差数据经由偏差电路148与模拟计算一起应用,从而产生提高的准确性、降低的功耗和更高的吞吐量。
图5是更详细的具有图4的集成偏差元件的改进的存储器内计算系统130的一部分130A。在部分130A中,位单元112A-112N的整个列被表示在存储器阵列132中的一对差分位线之间。每个位单元112A-112N可以沿着图1中的位单元12的线(例如,每个位单元可以是存储器位单元)。整个线(例如,列)可以包括8个位单元、128个位单元、1024个位单元、8192个位单元或某个其他数目的位单元。为简洁起见,图5的存储器内计算功能不再重复。为了避免混淆附图,存取晶体管在图5中示出,但是未单独标记。图5的位单元可以被布置为具有第一多个单元的阵列(例如,计算阵列)。计算阵列可以被布置为与多个列单元相交的多个行单元,其中第一多个单元中的每个单元通过其对应的行和列可标识。在一些情况下,位单元的计算阵列被形成为静态随机存取存储器(SRAM)存储器阵列。
与存储器阵列132一起集成的是多个额外行的偏差位单元148_4W、148_2W、148_W,该多个行的偏差位单元可选地形成为具有一组偏差电路148或者形成在一组偏差电路148内,该组偏差电路148在存储器阵列132中或以其他方式与存储器阵列132协作。在图5的实施例中,偏差位单元148_4W、148_2W、148_W专用于存储偏差信息,该偏差信息将被计算组合(例如,在数学上,在逻辑上,在组合上,在电气上,或者以某种其他类似的方式进行组合),或者以其他方式应用于由存储器内计算功能生成的部分和完整值。在一些情况下,每个偏差位单元148_4W、148_2W、148_W沿着图1的位单元12的线形成。在这些情况下,偏差位单元148_4W、148_2W、148_W中的任何一个被布置为存储单独的位值(例如,逻辑一(即,“1”)或逻辑零(即,“0”)),并且任何数目的偏差位单元148_4W、148_2W、148_W的值可以被分组在一起以选择合适的偏差值。
替代地或另外地,在其他情况下,偏差位单元148_4W、148_2W、148_W被布置为具有以不同结构特性形成的MOSFET(例如,图1的T3、T4、T5、T6)。例如,偏差电路148中的任何数目的偏差位单元或其他电路的MOSFET可以被布置为具有选定的沟道长度和宽度,并且这样的不同特性可以表示不同的电阻值、电流极限、电压降等。因此,在至少一些情况下,一个或多个位单元被布置为沿着图1的存储器位单元的线的存储器位单元。
在图5中,第一偏差位单元148_4W用粗线表示以指示为其他偏差位单元148的MOSFET的宽度的四倍的沟道宽度4W。沿着这些线,第二偏差位单元148_2W指示为偏差电路148中的其他偏差位单元的MOSFET的宽度的两倍的沟道宽度2W。第三偏差位单元148_W指示与偏差电路148的其他偏差位单元的MOSFET相同尺寸的沟道宽度。通过改变各种偏差位单元的物理特性,可以精细地控制施加到任何部分或完整计算的偏差水平。
在一些情况下,偏差电路148可以包括单独且不同的存储器内偏差控制逻辑148L。存储器内偏差控制逻辑148L可以被布置为选择要应用于存储器位单元数据、计算位单元数据、或者存储位单元数据和计算位单元数据的偏差位单元信息。例如,软件从业者可以从第一多个偏差位单元148_4W、148_2W、148_W中以编程方式选择要应用于存储器内计算逻辑140的一个或多个计算逻辑功能的偏差信息。以这种方式,对于使用选定位单元处的数据执行的每个存储器内功能计算,还将应用期望的偏差值。
可选地,如图5所示,至少在一些情况下,存储器内计算逻辑140可以完全或部分地集成在存储器阵列132内。该存储器内计算逻辑140可以将计算功能逻辑布置在一些或所有行和列的交点处。存储器内计算逻辑在本文中可以被称为一个或多个计算引擎。
在操作中,由感测元件电路系统146收集来自一列位单元112A-112N的数据和来自偏差电路148中的偏差位单元的数据。感测元件电路系统没有进一步描述,但是本领域技术人员将认识到如何诸如通过数字化所收集和确定的数据来进一步处理这样的数据。所确定的数据可以经由输出管道160_A、160_B、160_N(图4)从存储器阵列132传送、存储在存储器阵列132中、或者以其他方式进行处理。
图6是示出存储器内计算功能和多个偏差元件的存储器阵列132(即,计算存储器阵列)实施例。为了避免使图6中公开的发明构思模糊,在图6的存储器阵列132中未示出各个位单元。然而,本领域技术人员应当理解,将包括任何特定架构的这样的存储器存储库。
图6的存储器阵列132被组织为多个单元,该多个单元被布置为与多个列单元相交的多个行单元。一个或多个单元可以形成在行和列的每个交叉点处。尽管未标记以简化图示,但是存储器阵列132中的每个单元通过其对应的行和列可标识。如在存储器阵列中很清楚的,第一多个单元中的每个单元具有相关联的存储器内函数(即,计算引擎),而第二多个单元中的每个单元具有相关联的偏差元件(即,偏差引擎)。计算引擎和偏差引擎中的一者或两者可以被布置为阵列,并且在至少一些情况下,这样的阵列可以经由选定的行和列地址来寻址。例如,在列170和行180处,表示了第一存储器内计算功能F1[a1]。如果调用了与该功能相对应的位单元,并且如果软件从业者已经对存储器内计算逻辑140进行了编码,则将执行存储器内计算功能F1[a1]。沿着这些线,第二功能F1[b1]在列172和行180处被编码,并且任何数目的其他功能在行180上被编码并且在列174处以函数F1[..1]结尾。第二组存储器内计算功能F2在列176到列178和行180处进一步集成在存储器内阵列132中,并且存储器内计算功能还可以集成在列170和行182与列178和行182之间的每个单元中,以最终存储器内计算功能Fx[..n]结尾。可以认识到,图6所示的功能可以覆盖单个比特、一系列比特、一组比特、或任何合适的多个比特。在至少一些实施例中,至少一个存储器内计算功能(即,计算引擎)形成在多个行和列相交的每个处。在这些或替代实施例中,任何数目的存储器内计算功能(即,计算引擎)形成在选定的行和列相交附近,或者形成在一些但不是全部的行和列交叉点处。以这种方式,在一些实施例中,存储器位单元可以形成在存储器内计算设备的第一多个单元处,并且存储器内计算功能形成在存储器内计算设备的第二多个单元处。
每个单元处可以布置有一个或多个存储器内计算功能。也就是说,在一些情况下,经由行和列可标识的一些可寻址存储器单元将被布置有第一类型的存储器内计算功能,而其他可寻址存储器单元将被布置有第二不同类型的存储器内计算功能。任何其他数目的存储器单元将通过任何数目的其他不同的存储器内计算功能来被启用。另外地或替代地,多个存储器单元中的每个可以通过一组可配置的存储器内计算功能电路来被启用,使得所提供的每个存储器单元将具有以编程方式可选择的存储器内计算功能。在一些情况下,可以指示一个或多个存储器单元执行多个存储器内计算功能。
沿着存储器内计算功能的灵活组织,可以在每个单元处,在相邻单元处、在交替单元处、或者以任何其他合适的布置布置有一个或多个偏差元件。也就是说,在一些情况下,经由行和列可标识的一些可寻址存储器单元将被布置有第一类型的偏差元件,而其他可寻址存储器单元将被布置有第二不同类型的偏差元件。在图6中,标识第一行偏差元件184和最后一行偏差元件186。可以形成任何合适数目的行。任何其他数目的存储器单元将通过任何数目的其他不同的偏差元件来被启用。另外地或替代地,多个存储器单元中的每个可以通过一组可配置的偏差元件来被启用,使得所提供的每个存储器单元将具有以编程方式可选择的偏差元件。在一些情况下,一个或多个存储器单元可以被指示为包括多个偏差元件值。例如,在一些情况下,部分或全部行的存储器单元可以被指示为包括来自选定偏差元件的偏差信息。在其他情况下,部分或全部列的存储器单元可以被指示为包括来自选定偏差元件的偏差信息。当在操作中时,软件从业者将指示引起任何数目的选定偏差元件值与存储器位单元中的数据、存储器内计算的结果或某种其他数据进行计算组合(例如,在数学上,在逻辑上,在组合上,在电气上,或者以某种其他类似的方式)的操作。
在图6中标识的并且在本文中描述的整数、函数标识符以及行和列指示符不是限制性的,而是适当地选择以匹配存储器阵列132的期望组织。可以想到很多其他期望组织。在一些情况下,视情况而定,在每一行和每一列的交叉点处的每个单元可以具有存储器内计算功能和偏差元件中的一者或两者。在其他实施例中,少于全部的单元被布置有存储器内计算功能或偏差元件。
图7是包括具有存储器内计算设备204的装置202的系统实施例200。存储器内计算设备204可以沿着具有图4的集成偏差元件的改进的存储器内计算系统130的线。存储器内计算设备204在本文中也可以被称为存储器内计算存储器设备、IMC存储器设备、IMC设备或某种其他类似的术语。装置202可以是任何合适的装置。例如,装置202可以是工业机器、消费产品、或具有任何合适形状因数和功能的某种其他设备或系统。例如,装置202可以是安全系统、烤箱传感器、汽车或某种其他形式的运输工具、移动计算设备(例如,智能电话、可穿戴设备、平板电脑等)、诸如远程部署的传感器等物联网(IoT)设备(例如,生态传感器、耕种条件传感器、天气传感器、电网基础设施传感器、智能家居设备等)等。应当认识到,该装置列表不是限制性的,并且发明人已经想到了为简洁起见而未列出的其他类型的装置。
装置202包括处理器206、功能逻辑208和一个或多个存储器设备210。存储器内计算设备204是一个或多个存储器设备210中包括的存储器设备之一,并且一个或多个存储器设备210可以包括零个或多个其他存储器设备。当一个或多个存储器设备210包括至少两个存储器设备时,存储器设备可以共享或可以不共享功率控制电路系统、通信总线电路系统、控制参数电路系统和其他电路系统。
在图7的实施例中,一个或多个存储器设备210被布置为存储程序代码和数据。一些或全部程序代码或数据可以存储在存储器内计算设备204中。一些或全部程序代码或数据可以存储在某个其他存储器设备中。处理器206在操作时可以检索和执行存储在一个或多个存储器设备210中的程序代码的任何数目的指令。
存储在图7的非限制性实施例的一个或多个存储器设备210中的程序代码包括若干级学习机器代码,诸如第一级学习机器代码212、第二级学习机器代码214、以及被标识为第N级学习机器代码216的一个或多个附加级学习机器代码。一个或多个存储器设备210还可以存储非学习机器代码218、参数数据220、以及由一个或多个软件从业者选择的任何其他信息。在至少一些情况下,参数数据包括用于卷积神经网络的内核或特征数据、用于指示存储器内计算功能的执行的控制数据、用于指示偏差值信息的应用的控制数据、以及本公开中教导的其他这样的数据。
图7的系统实施例可以包括输入/输出(I/O)逻辑222。I/O逻辑222可以与功能逻辑208协作。在一些实施例中,功能逻辑包括任何数目和类型的传感器(例如,加速度计、运动检测器、图像传感器、音频传感器、视觉输出设备、音频输出设备、触觉输出设备等)。在一些情况下,I/O逻辑222包括一个或多个收发器、一个或多个人机接口设备(例如,显示器或其他呈现设备、键盘、触摸屏设备、鼠标等)。在至少一些情况下,I/O逻辑222包括经由通信网络224与某个其他远程计算设备通信的收发器。远程计算设备可以提供例如由装置202处理的图像数据。在这些和其他情况下,通信网络224可以是广域网(例如,互联网)、局域网(LAN)、个域网(PAN)或某种其他网络。应当认识到,功能逻辑208和I/O逻辑222可以单独地或协作地生成或以其他方式向存储器内计算设备204提供流数据。
现在已经阐述了某些实施例,本文中使用的某些术语的进一步澄清可以有助于提供对本公开中被认为是发明性的术语的更完整的理解。
在本公开的实施例中,实施例的各种组件、电路、模块、设备和其他这样的结构在本文中可互换地描述为“耦合”、“连接”、“附接”等。应当认识到,这样的术语可以包括中间结构。
本公开中的附图示出了一个或多个非限制性计算设备实施例的部分。计算设备可以包括在常规计算设备装置中找到的可操作硬件,诸如一个或多个处理器、易失性和非易失性存储器、符合各种标准和协议的串行和并行输入/输出(I/O)电路系统、有线和/或无线联网电路系统(例如,通信收发器)、一个或多个用户界面(UI)模块、逻辑和其他电子电路系统。
如本文所述,处理设备或“处理器”包括中央处理单元(CPU)、微控制器(MCU)、数字信号处理器(DSP)、专用集成电路(ASIC)、外围接口控制器(PIC)、状态机等。因此,本文中描述的处理器包括控制至少一个操作的任何设备、系统或其部分,并且这样的设备可以用硬件、固件或软件或其中至少两个的某种组合来实现。与任何特定处理器相关联的功能可以本地或远程地集中式或分布式定位。处理器可以可互换地是指被配置为执行所编程的软件指令的任何类型的电子控制电路系统。编程指令可以是高级软件指令、编译的软件指令、汇编语言软件指令、目标代码、二进制代码、微代码等。编程指令可以驻留在内部或外部存储器中,或者可以被硬编码为状态机或一组控制信号。根据本文中引用的方法和设备,一个或多个实施例描述了由处理器可执行的软件,该软件在被执行时执行一种或多种方法动作。
如本领域技术人员公知的,一种计算设备具有一个或多个存储器,并且每个存储器包括用于读取和写入的易失性和非易失性计算机可读介质的任何组合。易失性计算机可读介质包括例如随机存取存储器(RAM)。非易失性计算机可读介质包括例如只读存储器(ROM)、诸如硬盘等磁性介质、光盘、闪存设备、CD-ROM等。在一些情况下,特定的存储器在虚拟上或物理上被划分为单独的区域,诸如第一存储器、第二存储器、第三存储器等。在这些情况下,可以理解,存储器的不同划分可以在不同的设备中进行,或者体现在单个存储器中。在一些情况下,存储器是被配置为存储被布置为由处理器执行的软件指令的非暂态计算机介质。存储器的一些或全部存储内容可以包括由处理设备可执行以执行一个或多个特定动作的软件指令。
本文所示的计算设备还可以包括在常规计算设备中发现的可操作软件,诸如操作系统或任务循环、用于通过I/O电路系统、联网电路系统和其他外围组件电路系统来指示操作的软件驱动器。另外,计算设备可以包括可操作应用软件,诸如用于与其他计算设备通信的网络软件、用于构建和维护数据库的数据库软件、以及在适当的情况下用于在各种处理器之间分配通信和/或操作工作负荷的任务管理软件。在一些情况下,计算设备是具有至少一些本文中列出的硬件和软件的单个硬件机器,而在其他情况下,计算设备是在服务器场中共同工作以执行本文中描述的一个或多个实施例的功能的硬件和软件机器的网络集合。为了简单起见,图中未示出计算设备的常规硬件和软件的一些方面。
包括本文中教导的存储器内计算设备的本公开的示例性计算设备尤其可以被配置在任何类型的移动或固定计算设备中,诸如远程云计算机、计算服务器、智能电话、平板电脑、笔记本电脑、可穿戴设备(例如,眼镜、夹克、衬衫、裤子、袜子、鞋子、其他衣服、帽子、头盔、其他头饰、手表、手镯、吊坠、其他珠宝)、车载设备(例如,火车、飞机、直升机、无人驾驶飞机、无人驾驶水下航行器、无人驾驶陆地车辆、汽车、摩托车、自行车、踏板车、悬停板、其他个人或商业运输设备)、工业设备(例如,工厂机器人设备、家用机器人设备、零售机器人设备、办公环境机器人设备)等。因此,计算设备包括未示出的其他组件和电路系统,例如,显示器、网络接口、存储器、一个或多个中央处理器、相机接口、音频接口、以及其他输入/输出接口。在一些情况下,示例性计算设备还可以被配置在不同类型的低功率设备中,诸如安装的相机、物联网(IoT)设备、多媒体设备、运动检测设备、入侵者检测设备、安全设备、人群监测设备或某种其他设备。这些设备通常包括计算功能和网络功能,其中网络功能被布置为允许感兴趣的计算设备经由诸如互联网等广域通信网络与其他计算设备通信。
当如本文所述布置时,每个计算设备可以从通用和非特定计算设备转换为组合设备,该组合设备被布置为包括被配置用于具体和特定目的的硬件和软件,以便提供所确定的技术解决方案。当如本文所述布置时,在一定程度上,如果有胜任的裁决机构认为本文中描述的任何发明概念都包含在抽象概念中,则应当明确提出要素和限制的有序组合,以通过将抽象构思转换为该抽象构思的切实可行的实际应用来提供必要的发明概念。
本文中描述的实施例使用计算机化技术来改进学习机器的技术,但是其他技术和工具仍然可用于在这样的学习机器中实现偏差。因此,所要求保护的主题不排除整个乃至实质的学习机器技术领域。本文中描述的创新使用以新的和有用的方式组合的新的和已知的构造块以及其他结构和限制,以产生比迄今为止已知的更多的东西。实施例对计算系统进行了改进,该计算系统在未编程或不同地编程时不能执行或提供特定的学习机器、本文中要求保护的存储器内计算系统特征。本公开中描述的实施例对已知的偏差管理过程和技术进行了改进。在本文中的实施例中描述的计算机化动作不是纯常规的并且没有被很好地理解。相反,这些动作对行业来说是新的。此外,如结合本实施例描述的动作的组合提供了当分别考虑这些动作时尚不存在的新的信息、动机和商业结果。对于构成抽象构思的内容,没有普遍接受的定义。在本公开内容中讨论的概念可以被认为是抽象的范围内,权利要求书提出了上述所谓抽象概念的明显更切实、实际和具体的应用。上述权利要求还对执行偏差管理操作的先前已知的基于计算机的系统进行了改进。
软件可以包括完全可执行的软件程序、简单的配置数据文件、与其他说明的链接、或已知软件类型的任何组合。当计算设备更新软件时,更新可能很小也可能很大。例如,在一些情况下,计算设备将小的配置数据文件下载为软件的一部分,而在其他情况下,计算设备将其自身或另一计算设备上的大多数或全部当前软件完全替换为新版本。在一些情况下,出于包括安全性、隐私、数据传输速度、数据成本等原因,对软件、数据或软件和数据进行加密、编码和/或以其他方式压缩。
输入/输出(I/O)电路系统和用户界面(UI)模块包括串行端口、并行端口、通用串行总线(USB)端口、IEEE 802.11收发器和符合由一个或多个标准制定机构管理的协议的其他收发器、显示器、投影仪、打印机、键盘、计算机鼠标、麦克风、诸如加速度计等微电子机械(MEMS)设备等。
在至少一个实施例中,诸如本文中描述的学习机器等设备可以经由网络上的通信与其他设备通信。网络可以涉及互联网连接或某种其他类型的局域网(LAN)或广域网(WAN)。启用或形成网络的部分的结构的非限制性示例包括但不限于以太网、双绞线以太网、数字用户环路(DSL)设备、无线LAN、Wi-Fi、全球微波接入互操作性(WiMax)等。
在本公开中,存储器可以以一种配置或另一种配置来使用。存储器可以被配置为存储数据。替代地或另外地,存储器可以被布置为非暂态计算机可读介质(CRM)。CRM被配置为存储由本文中描述的学习机器的处理器可执行的计算指令。计算指令可以单独地或作为指令组存储在文件中。文件可以包括功能、服务、库等。文件可以包括一个或多个计算机程序,也可以是较大计算机程序的一部分。替代地或另外地,每个文件可以包括用于执行学习机器的计算功能的数据或其他计算支持材料。
如本文所述,为简单起见,在一些情况下,可以在男性的上下文中描述软件从业者。应当理解,软件从业者可以是任何性别,并且本文中使用的术语“他”、“他的”等应当被广义地解释为包括所有已知的性别定义。如上下文可以在本公开中要求的,除非上下文另有规定,否则单数应当表示复数,反之亦然;所有代词应当表示并且包括与其有关的个人、实体、商号或公司;并且男性应当表示女性,反之亦然。
除非另有定义,否则本文中使用的技术和科学术语具有与本发明所属领域的普通技术人员通常所理解的含义相同的含义。尽管本文中描述了有限数目的示例性方法和材料,但是与本文中描述的类似或等同的任何方法和材料也可以用于本发明的实践或测试中。
在其所有句法上下文中,术语“包括(include)”和“包括(comprise)”及其派生词和变体应当以开放、包括性的意义进行解释而不受限制(例如,“包括但不限于”)。术语“或”是包括性的,表示“和/或”。短语“与……相关联”和“与其相关联”及其派生词应当理解为表示包括,被包括在其中,与之互连,包含、被包含在其中、连接到或与之连接、耦合到或与之耦合、与……可通信、合作、交织、并置、接近、受其约束、具有、具有……的特性等。
在整个说明书中,对“一个实施例”或“实施例”及其变体的引用表示结合该实施例描述的特定特征、结构或特性被包括在至少一个实施例中。因此,在整个说明书中各处出现的短语“在一个实施例中”或“在实施例中”不一定都是指同一实施例。此外,在一个或多个实施例中,特定的特征、结构或特性可以以任何合适的方式组合。
如本说明书和所附权利要求书中使用的,除非内容和上下文另外明确指出,否则单数形式“一个(a)”、“一个(an)”和“该(the)”包括复数对象。还应当注意,除非在内容和上下文中视情况明确指出包括性或排他性,否则连词“和”和“或”通常在最广义上使用以包括“和/或”。另外,“和”和“或”的组成当在本文中被称为“和/或”时旨在涵盖包括所有相关项目或构思的实施例以及包括少于全部相关项目或构思的一个或多个其他替代实施例。
在本公开中,连接列表使用逗号,其可以被称为牛津逗号、哈佛逗号、串行逗号或另一类似的术语。这样的列表旨在连接单词、从句或句子,以使得逗号后面的内容也被包括在列表中。
本文中提供的本公开的标题和摘要仅是为了方便,而非解释实施例的范围或含义。
可以将上述各种实施例组合以提供其他实施例。实施例的各种特征是可选的,并且一个实施例的特征可以适当地与其他实施例组合。如果需要采用各种专利、申请和出版物的概念以提供其他实施例,则可以修改实施例的各方面。
可以根据以上详细描述对实施例进行这些和其他改变。通常,在以下权利要求书中,所使用的术语不应当被解释为将权利要求书限制为说明书和权利要求书中公开的特定实施例,而是应当解释为包括所有可能的实施例以及权利要求有权享有的等同物的全部范围。因此,权利要求不受公开内容的限制。

Claims (21)

1.一种存储器内计算IMC设备,包括:
具有第一多个单元的计算阵列,所述计算阵列被布置为与多个列单元相交的多个行单元,所述第一多个单元中的每个单元通过所述单元的对应的行和列可标识;
多个计算引擎,每个计算引擎分别形成在第二多个单元中的不同单元中,所述第二多个单元从所述第一多个单元中的单元形成,每个计算引擎形成在相应的行和列交叉点处;以及
多个偏差引擎,所述多个偏差引擎中的每个偏差引擎被布置为将来自所述多个计算引擎中的至少一个计算引擎的输出与相应的偏差值进行计算组合。
2.根据权利要求1所述的IMC设备,其中所述第一多个单元的一部分被布置为存储器位单元的阵列。
3.根据权利要求2所述的IMC设备,其中所述存储器位单元的阵列被形成为静态随机存取存储器SRAM存储器阵列。
4.根据权利要求1所述的IMC设备,其中所述多个计算引擎中的至少一些计算引擎被布置为执行至少一个选通操作。
5.根据权利要求1所述的IMC设备,其中所述多个计算引擎中的至少一些计算引擎被布置为执行至少一个数学运算。
6.根据权利要求1所述的IMC设备,其中所述多个偏差引擎被布置为阵列。
7.根据权利要求6所述的IMC设备,其中被布置为所述阵列的所述多个偏差引擎形成在所述第一多个单元中的相邻单元中。
8.根据权利要求1所述的IMC设备,其中所述多个偏差引擎中的每个偏差引擎被布置为存储器位单元。
9.根据权利要求1所述的IMC设备,包括:
耦合到所述多个列单元中的每个列单元的合并电路系统,所述合并电路系统被布置为形成从计算引擎和偏差引擎中的一项或多项中的数据生成的至少一个输出值。
10.根据权利要求9所述的IMC设备,其中所述合并电路系统包括至少一个感测元件。
11.一种存储器内计算IMC方法,包括:
将多个神经网络内核值或特征值存储在存储器内计算存储器设备的相应的多个存储器位单元中,其中所述存储器内计算存储器设备被组织为具有被布置为与多个列单元相交的多个行单元的第一多个单元,所述第一多个单元中的每个单元通过所述单元的对应的行和列可标识;
执行多个存储器内函数,其中所述多个存储器内函数中的至少一些存储器内函数采用所述多个神经网络内核值或特征值中的神经网络内核值或特征值作为操作数;
将所述多个存储器内函数的结果存储在相应的第二多个单元中,所述第二多个单元由所述第一多个单元中的单元形成;以及
将所述多个存储器内函数的所述结果与相应的多个偏差值进行计算组合。
12.根据权利要求11所述的IMC方法,其中所述存储器内计算存储器设备的一部分是静态随机存取存储器SRAM存储器设备。
13.根据权利要求11所述的IMC方法,其中所述多个存储器内函数包括至少一个选通函数或至少一个数学函数。
14.根据权利要求11所述的IMC方法,其中将所述多个存储器内函数的所述结果与所述相应的多个偏差值进行计算组合包括:
将一行结果信息与一行偏差值组合。
15.根据权利要求11所述的IMC方法,其中将所述多个存储器内函数的所述结果与所述相应的多个偏差值进行计算组合包括:
产生一组计算组合值;以及
将所述一组计算组合值存储在所述第一多个单元的存储器位单元中,而无需将所述一组计算组合值传递出所述存储器内计算存储器设备。
16.根据权利要求11所述的IMC方法,其中将所述多个存储器内函数的所述结果与所述相应的多个偏差值进行计算组合包括:
产生一组计算组合值;
将所述一组计算组合值存储在所述第一多个单元的存储器位单元中;以及
将所述一组计算组合值中的至少一些计算组合值传递出所述存储器内计算存储器设备。
17.一种系统,包括:
存储器内计算存储器设备,所述存储器内计算存储器设备中布置有:
单元阵列,所述单元阵列经由与多个列单元相交的多个行单元中的选定行单元可寻址,其中所述单元阵列中的每个单元通过所述单元的对应的行和列可标识;
形成在选定的行和列交叉点处的多个计算引擎;以及
多个偏差引擎,被布置为将来自所述多个计算引擎中的至少一个计算引擎的输出与相应的偏差值进行计算组合;
功能逻辑;以及
耦合到所述存储器内计算存储器设备和所述功能逻辑的处理器,其中所述处理器被布置为执行学习机器的功能,所述学习机器的所述功能包括:
将多个神经网络内核值或特征值存储在所述存储器内计算存储器设备的相应的第一多个存储器位单元中;
从所述功能逻辑接收输入数据;
使用所述多个计算引擎中的至少一些计算引擎执行多个存储器内函数,其中所述多个存储器内函数中的至少一些存储器内函数采用所述多个神经网络内核值或特征值中的神经网络内核值或特征值作为第一操作数数据并且采用所述输入数据中的至少一些输入数据作为第二操作数数据;
将所述多个存储器内函数的结果存储在所述存储器内计算存储器设备的相应的第二多个存储器位单元中;以及
将所述多个存储器内函数的所述结果与相应的多个偏差值进行计算组合。
18.根据权利要求17所述的系统,其中所述存储器内计算存储器设备、所述功能逻辑和所述处理器被布置为物联网IoT设备、工业设备或基于车辆的设备。
19.根据权利要求17所述的系统,其中所述学习机器的所述功能包括:
产生第一结果的第一级学习机器功能;以及
产生第二结果的第二级学习机器功能,其中首先执行所述第一级学习机器功能,并且其中所述第二级学习机器功能基于所述第一结果选择性地执行。
20.根据权利要求19所述的系统,其中所述第一级学习机器功能以第一功率水平操作,并且所述第二级学习机器功能以与所述第一功率水平不同的第二功率水平操作。
21.根据权利要求17所述的系统,其中来自所述功能逻辑的所述输入数据被接收作为来自所述功能逻辑的流数据。
CN202010504032.0A 2019-06-06 2020-06-05 具有集成偏差元件的存储器内计算阵列 Active CN112053712B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962858265P 2019-06-06 2019-06-06
US62/858,265 2019-06-06
US16/882,024 2020-05-22
US16/882,024 US11094376B2 (en) 2019-06-06 2020-05-22 In-memory compute array with integrated bias elements

Publications (2)

Publication Number Publication Date
CN112053712A true CN112053712A (zh) 2020-12-08
CN112053712B CN112053712B (zh) 2024-05-10

Family

ID=73609665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010504032.0A Active CN112053712B (zh) 2019-06-06 2020-06-05 具有集成偏差元件的存储器内计算阵列

Country Status (2)

Country Link
US (1) US20230186983A1 (zh)
CN (1) CN112053712B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672860A (zh) * 2021-08-25 2021-11-19 恒烁半导体(合肥)股份有限公司 一种正负数兼容的存内运算方法、乘加运算装置及其应用

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09274349A (ja) * 1996-04-05 1997-10-21 Tec Corp 多色画像形成装置
CN1760835A (zh) * 2004-09-30 2006-04-19 英特尔公司 计算引擎代码空间的扩展
CN101217057A (zh) * 2007-01-07 2008-07-09 国际商业机器公司 存储器控制器、存储器芯片和用于操作存储单元集合的方法
US20100312999A1 (en) * 2009-06-04 2010-12-09 Micron Technology, Inc. Internal processor buffer
US20100324850A1 (en) * 2009-06-17 2010-12-23 Qualcomm Incorporated Static Noise Margin Estimation
TW201333961A (zh) * 2011-12-21 2013-08-16 Intel Corp 用於運用位址移位技術之部分位址選擇信號產生器的方法及裝置
US20140347923A1 (en) * 2013-05-23 2014-11-27 Seagate Technology Llc Threshold voltage calibration using reference pattern detection
CN105048974A (zh) * 2014-04-17 2015-11-11 意法半导体公司 用于电子电路的自动增益和偏移补偿
US20160092234A1 (en) * 2014-09-26 2016-03-31 Nalini Vasudevan Method and apparatus for speculative vectorization
CN108885585A (zh) * 2016-03-31 2018-11-23 高通股份有限公司 在基于中央处理单元(cpu)的系统中使用多个末级高速缓冲存储器(llc)线提供存储器带宽压缩
US20190102198A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Systems, apparatuses, and methods for multiplication and accumulation of vector packed signed values

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09274349A (ja) * 1996-04-05 1997-10-21 Tec Corp 多色画像形成装置
CN1760835A (zh) * 2004-09-30 2006-04-19 英特尔公司 计算引擎代码空间的扩展
CN101217057A (zh) * 2007-01-07 2008-07-09 国际商业机器公司 存储器控制器、存储器芯片和用于操作存储单元集合的方法
US20100312999A1 (en) * 2009-06-04 2010-12-09 Micron Technology, Inc. Internal processor buffer
US20100324850A1 (en) * 2009-06-17 2010-12-23 Qualcomm Incorporated Static Noise Margin Estimation
TW201333961A (zh) * 2011-12-21 2013-08-16 Intel Corp 用於運用位址移位技術之部分位址選擇信號產生器的方法及裝置
US20140347923A1 (en) * 2013-05-23 2014-11-27 Seagate Technology Llc Threshold voltage calibration using reference pattern detection
CN105048974A (zh) * 2014-04-17 2015-11-11 意法半导体公司 用于电子电路的自动增益和偏移补偿
US20160092234A1 (en) * 2014-09-26 2016-03-31 Nalini Vasudevan Method and apparatus for speculative vectorization
CN108885585A (zh) * 2016-03-31 2018-11-23 高通股份有限公司 在基于中央处理单元(cpu)的系统中使用多个末级高速缓冲存储器(llc)线提供存储器带宽压缩
US20190102198A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Systems, apparatuses, and methods for multiplication and accumulation of vector packed signed values

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672860A (zh) * 2021-08-25 2021-11-19 恒烁半导体(合肥)股份有限公司 一种正负数兼容的存内运算方法、乘加运算装置及其应用
CN113672860B (zh) * 2021-08-25 2023-05-12 恒烁半导体(合肥)股份有限公司 一种正负数兼容的存内运算方法、乘加运算装置及其应用

Also Published As

Publication number Publication date
CN112053712B (zh) 2024-05-10
US20230186983A1 (en) 2023-06-15

Similar Documents

Publication Publication Date Title
US11605424B2 (en) In-memory compute array with integrated bias elements
CN210006057U (zh) 用于深度学习引擎的设备和系统
Cui et al. Continuous online sequence learning with an unsupervised neural network model
US20200394458A1 (en) Weakly-supervised object detection using one or more neural networks
Ko et al. Controlled dropout: A different approach to using dropout on deep neural network
Soares et al. Neural network programming with Java
Irsoy et al. Unsupervised feature extraction with autoencoder trees
Dang et al. An end-to-end learning solution for assessing the quality of Wikipedia articles
Portmess et al. Data barns, ambient intelligence and cloud computing: The tacit epistemology and linguistic representation of Big Data
Smith et al. Astronomia ex machina: a history, primer and outlook on neural networks in astronomy
DE112020003165T5 (de) Videointerpolation unter Verwendung eines oder mehrerer neuronaler Netze
US20230186983A1 (en) In-memory compute array with integrated bias elements
WO2019116291A1 (en) Fusing sparse kernels to approximate a full kernel of a convolutional neural network
US20240028898A1 (en) Interpreting convolutional sequence model by learning local and resolution-controllable prototypes
Deng et al. Probabilistic models for classification
Ghosh et al. Role of proliferation COVID-19 media chatter in predicting Indian stock market: Integrated framework of nonlinear feature transformation and advanced AI
Šojat From dew over cloud towards the rainbow: Ecosystem of the future: Nature—Human—Machine
Roy et al. A short review on applications of big data analytics
Tissera et al. Modular expansion of the hidden layer in single layer feedforward neural networks
Vinoda et al. Dimensionality reduction-based approach to classify the cotton leaf images using transfer learning on VGG16
Airoldi et al. A Poisson convolution model for characterizing topical content with word frequency and exclusivity
Stonebraker Big data means at least three different things
Agarwal et al. Self-supervised representation learning across sequential and tabular features using transformers
LAI et al. Prediction average stock price market using LSTM
Biehl et al. Machine learning and data analysis in astroinformatics

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant