CN114341981A - 具有人工智能模式的存储器 - Google Patents
具有人工智能模式的存储器 Download PDFInfo
- Publication number
- CN114341981A CN114341981A CN202080060349.8A CN202080060349A CN114341981A CN 114341981 A CN114341981 A CN 114341981A CN 202080060349 A CN202080060349 A CN 202080060349A CN 114341981 A CN114341981 A CN 114341981A
- Authority
- CN
- China
- Prior art keywords
- registers
- artificial intelligence
- memory
- register
- bit
- 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
Links
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 274
- 238000003491 array Methods 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 13
- 230000006870 function Effects 0.000 claims description 59
- 230000004913 activation Effects 0.000 claims description 41
- 238000013528 artificial neural network Methods 0.000 claims description 27
- 210000002569 neuron Anatomy 0.000 claims description 23
- 239000011159 matrix material Substances 0.000 claims description 6
- 210000004027 cell Anatomy 0.000 description 67
- 230000000295 complement effect Effects 0.000 description 30
- 239000011295 pitch Substances 0.000 description 29
- 238000010586 diagram Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 16
- 230000003213 activating effect Effects 0.000 description 9
- 239000003990 capacitor Substances 0.000 description 8
- 239000013598 vector Substances 0.000 description 7
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4074—Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1045—Read-write mode select circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Neurology (AREA)
- Memory System (AREA)
Abstract
本公开包含与存储器中的人工智能加速器相关的设备及方法。实例设备可包含:多个寄存器,其经配置以使所述设备能够在人工智能模式下操作以执行人工智能操作;及人工智能(AI)加速器,其经配置以使用存储于多个存储器阵列中的数据执行所述人工智能操作。所述AI加速器可包含经配置以执行与AI操作相关联的操作的硬件、软件及或固件。所述硬件可包含配置为加法器及/或乘法器以执行与AI操作相关联的操作(例如,逻辑操作)的电路系统。
Description
技术领域
本公开大体上涉及存储器装置,且更确切地说,涉及用于具有人工智能(AI)模式的存储器的设备及方法。
背景技术
存储器装置通常提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可需要电力来维持其数据,且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)等。非易失性存储器可通过当未被供电时保持所存储的数据而提供持久的数据,且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)及磁阻随机存取存储器(MRAM)等等。
存储器还用作用于各种电子应用的易失性及非易失性数据存储装置。非易失性存储器可用于例如个人计算机、便携式记忆棒、数码相机、蜂窝电话、便携式音乐播放器例如MP3播放器、影片播放器及其它电子装置。存储器单元可布置成阵列,其中阵列在存储器装置中使用。
附图说明
图1是根据本公开的多个实施例的呈包含具有人工智能(AI)加速器的存储器装置的计算系统形式的设备的框图。
图2是根据本公开的多个实施例的具有人工智能(AI)加速器的存储器装置上的多个寄存器的框图。
图3A及3B是根据本公开的多个实施例的具有人工智能(AI)加速器的存储器装置上的多个寄存器中的多个位的框图。
图4是根据本公开的多个实施例的具有人工智能(AI)加速器的存储器装置的多个块的框图。
图5A是根据本公开的多个实施例的呈包含具有人工智能(AI)加速器的存储器装置的计算系统形式的设备的框图。
图5B是根据本公开的多个实施例的呈包含存储器装置的计算系统形式的设备的框图,所述存储器装置在具有人工智能(AI)加速器的阵列的存储体区段本地的数据路径中具有共享输入/输出(I/O)线。
图6是说明根据本公开的多个实施例的存储器装置的感测电路系统的示意图,所述感测电路系统包含计算组件。
图7是说明根据本公开的多个实施例的用于阵列的数据路径中的多个共享I/O线的电路系统的示意图。
图8A是说明通过阵列本地的数据路径中的多个共享I/O线耦合到具有多个逻辑条的计算单元的阵列的多个区段的框图实例。
图8B是说明通过阵列本地的数据路径中的多个共享I/O线耦合到计算单元中的多个计算组件的多个阵列的框图实例,其中计算组件的间距等于共享I/O线的数据路径的间距且为数字线到阵列的间距的倍数。
具体实施方式
本公开包含与具有人工智能(AI)模式的存储器相关的设备及方法。实例设备可包含:多个寄存器,其经配置以使设备能够在人工智能模式下操作以执行人工智能操作;及人工智能(AI)加速器,其经配置以使用存储于多个存储器阵列中的数据执行人工智能操作。AI加速器可包含经配置以执行与AI操作相关联的操作的硬件、软件及或固件。所述硬件可包含配置为加法器及/或乘法器以执行与AI操作相关联的操作(例如,逻辑操作)的电路系统。
设备可经配置以在正常模式下操作,其中设备执行读取及写入操作,类似于存储器装置将传统地操作一样。所述设备可经配置以在AI加速器模式下操作,其中设备可经配置以执行AI操作。所述设备可包含可将设备置于正常模式及/或AI模式的多个寄存器。寄存器的数目还可定义神经网络的输入、输出、偏置信息、表示神经网络的权重矩阵及/或AI加速器用于执行AI操作的激活函数的位置及状态。
当与对主机进行的AI操作相比时,AI加速器可减少与AI操作相关联的等待时间及电力消耗。对主机进行的AI操作使用在存储器装置与主机之间进行交换的数据,这为AI操作增加等待时间及电力消耗。虽然可使用AI加速器及存储器阵列对存储器装置执行根据本公开的实施例执行的AI操作,其中在执行AI操作时不从存储器装置传送数据。
在本公开的以下详细描述中,参考形成本公开的一部分的附图,并且附图中通过说明的方式示出可如何实践本公开的多个实施例。足够详细地描述这些实施例以使得本领域的一般技术人员能够实践本公开的实施例,且应理解,可利用其它实施例且可在不脱离本公开的范围的情况下进行工艺、电气及/或结构改变。如本文中所使用,指定符“N”指示如此指定的若干特定特征可与本公开的多个实施例包含在一起。
如本文中所使用,“多个”某物可指此类事物中的一或多个。举例来说,多个存储器装置可指一或多个存储器装置。另外,如本文中所使用的尤其关于图式中的附图标记的例如“N”的指定符指示如此指定的多个特定特征可与本公开的多个实施例包含在一起。
本文中的图遵循编号定则,其中第一一或多个数字对应于图号,且剩余的数字标识图式中的元件或组件。可通过使用类似数字来识别不同图之间的类似元件或组件。如应了解,可添加、交换及/或去除本文中的各种实施例中展示的元件,从而提供本公开的多个额外实施例。另外,图中所提供的元件的比例及相对比例意图说明本公开的各种实施例,并且不会以限制性意义来使用。
图1是根据本公开的多个实施例的呈包含存储器装置120的计算系统100的形式的设备的框图。如本文中所使用,存储器装置120、存储器阵列125-1、…125-N、存储器控制器122及/或AI加速器124还可单独地视为“设备”。
如图1中所说明,主机102可耦合到存储器装置120。主机102可为膝上型计算机、个人计算机、数码相机、数字记录及回放装置、移动电话、PDA、存储卡读取器、接口集线器以及其它主机系统,并且可包含存储器存取装置,例如处理器。本领域的一般技术人员将理解,“处理器”可为一或多个处理器,例如平行处理系统、多个协处理器等。
主机102包含主机控制器108以与存储器装置120通信。主机控制器108可将命令发送到存储器装置120。主机控制器108可与存储器装置120、存储器装置120上的存储器控制器122及/或存储器装置120上的AI加速器124通信以执行AI操作、读取数据、写入数据及/或擦除数据以及其它操作。AI加速器124还可包含结合图5A至8A所描述的经配置以执行AI操作的组件。AI操作可包含机器学习或神经网络操作,所述神经网络操作可包含训练操作或推断操作或这两者。在某一实例中,每个存储器装置120可表示神经网络或深度神经网络(例如,具有三个或更多个隐蔽层的网络)内的层。或者,每个存储器装置120可为或包含神经网络的节点,且神经网络的层可由多个存储器装置或若干存储器装置120的部分组成。存储器装置120可将用于AI操作的权重(或模型)存储于存储器阵列125中。
物理主机接口可提供用于在存储器装置120与具有用于物理主机接口的兼容接收器的主机102之间传递控制、地址、数据及其它信号的接口。举例来说,信号可在多个总线(例如,数据总线及/或地址总线)上在主机102与存储器装置120之间传送。
存储器装置120可包含控制器120、AI加速器124及存储器阵列125-1、…、125-N。存储器装置120可为低功率双倍数据速率动态随机存取存储器,例如LPDDR5装置,及/或图形双倍数据速率动态随机存取存储器,例如GDDR6装置,以及其它类型的装置。存储器阵列125-1、…、125-N可包含多个存储器单元,例如易失性存储器单元(例如,DRAM存储器单元,以及其它类型的易失性存储器单元)及/或非易失性存储器单元(例如,RRAM存储器单元,以及其它类型的非易失性存储器单元)。存储器装置120可读取数据及/或将数据写入到存储器阵列125-1、…、125-N。存储器阵列125-1、…、125-N可存储在对存储器装置120进行的AI操作期间使用的数据。存储器阵列125-1、…、125-N可存储神经网络的输入、输出、权重矩阵及偏置信息,及/或由AI加速器用于对存储器装置120执行AI操作的激活函数信息。
存储器装置120上的主机控制器108、存储器控制器122及/或AI加速器124可包含控制电路系统,例如硬件、固件及/或软件。在一或多个实施例中,主机控制器108、存储器控制器122及/或AI加速器124可为耦合到包含物理接口的印刷电路板的专用集成电路(ASIC)。此外,存储器装置120上的存储器控制器122可包含寄存器130。可编程寄存器130以提供用于AI加速器执行AI操作的信息。寄存器130可包含任何数目的寄存器。寄存器130可由主机102、存储器控制器122及/或AI加速器124写入及/或读取。寄存器130可提供AI加速器124的输入、输出、神经网络及/或激活函数信息。寄存器130可包含模式寄存器131以选择存储器装置120的操作模式。举例来说,可通过将字0xAA及/或0x2AA写入到寄存器131来选择AI操作模式,其禁止对与存储器装置120的正常操作相关联的寄存器的存取且允许对与AI操作相关联的寄存器的存取。寄存器130还可位于存储器阵列125-1、…、125-N中且可由控制器122存取。
AI加速器124可包含硬件126及/或软件/固件128以执行AI操作。而且,AI加速器124还可包含结合图5A至8B所描述的经配置以执行AI操作的组件。硬件126可包含加法器/乘法器126以执行与AI操作相关联的逻辑操作。存储器控制器122及/或AI加速器124可从主机102接收命令以执行AI操作。存储器装置120可使用AI加速器124、存储器阵列125-1、…、125-N中的数据及寄存器130中的信息来执行在来自主机102的命令中所请求的AI操作。存储器装置可将AI操作的例如结果及/或错误信息的信息报告回主机120。由AI加速器124执行的AI操作可在不使用外部处理资源的情况下执行。
存储器阵列125-1、…、125-N可提供用于存储器系统的主存储器,或可在整个存储器系统中用作额外存储器或存储装置。每个存储器阵列125-1、…、125-N可包含多个存储器单元块。存储器单元块可用于存储在由存储器装置120执行的AI操作期间使用的数据。存储器阵列125-1、…、125-N可包含例如DRAM存储器单元。实施例不限于特定类型的存储器装置。举例来说,存储器装置可包含RAM、ROM、DRAM、SDRAM、PCRAM、RRAM、3D XPoint及快闪存储器等等。
借助于实例,存储器装置120可执行作为或包含一或多个推理步骤的AI操作。存储器阵列125可为神经网络的层或可各自为个别节点,且存储器装置120可为层;或存储器装置120可为较大网络内的节点。另外或替代地,存储器阵列125可存储待在节点内使用(例如求和)的数据或权重或这两者。每一节点(例如,存储器阵列125)可将来自从相同或不同存储器阵列125的单元读取的数据的输入与从存储器阵列125的单元读取的权重组合。举例来说,可使用加法器/乘法器127在存储器阵列125的外围内或在硬件126内求和权重及数据的组合。在此类情况下,可将求和的结果传递到在存储器阵列125的外围中或在硬件126内表示或实例化的激活函数。结果可传递到另一存储器装置120,或可在AI加速器124内(例如,由软件/固件128)使用以作出决定或训练包含存储器装置120的网络。
采用存储器装置120的网络可能够或用于监督或无监督学习。这可与其它学习或训练方案组合。在一些情况下,经训练的网络或模型被导入或与存储器装置120一起使用,且存储器装置120的操作主要或专门与推理有关。
图1的实施例可包含为避免模糊本公开的实施例而未说明的另外的电路系统。举例来说,存储器装置120可包含地址电路系统,以锁存通过I/O电路系统在I/O连接上提供的地址信号。可通过行解码器及列解码器接收及解码地址信号以存取存储器阵列125-1、…、125-N。本领域的技术人员应了解,地址输入连接的数目可取决于存储器阵列125-1、…、125-N的密度及架构。
图2是根据本公开的多个实施例的具有人工智能(AI)加速器的存储器装置上的多个寄存器的框图。寄存器230可为AI寄存器且包含输入信息、输出信息、神经网络信息及/或激活函数信息以及其它类型的信息,以供AI加速器、控制器及/或存储器装置的存储器阵列(例如,图1中的AI加速器124、存储器控制器122及/或存储器阵列125-1、…、125-N)使用。寄存器可基于来自主机、AI加速器及/或控制器(例如,图1中的主机102、AI加速器124、存储器控制器122)的命令而进行读取及/或写入。
寄存器232-0可定义与存储器装置的AI模式相关联的参数。寄存器232-0中的位可开始AI操作、重新开始AI操作、指示寄存器中的内容为有效的、从寄存器清除内容及/或从AI模式退出。
寄存器232-1、232-2、232-3、232-4及232-5可定义用于AI操作的输入的大小、用于AI操作的输入的数目及用于AI操作的输入的开始地址及结束地址。寄存器232-7、232-8、232-9、232-10及232-11可定义AI操作的输出的大小、AI操作中的输出的数目及AI操作的输出的开始地址及结束地址。
寄存器232-12可用于实现在AI操作期间使用的输入存储体、神经元存储体、输出存储体、偏置存储体、激活函数及临时存储体的使用。
寄存器232-13、232-14、232-15、232-16、232-17、232-18、232-19、232-20、232-21、232-22、232-23、232-24及232-25可用于定义在AI操作期间使用的神经网络。寄存器232-13、232-14、232-15、232-16、232-17、232-18、232-19、232-20、232-21、232-22、232-23、232-24及232-25可定义在AI操作期间使用的神经网络的神经元及/或层的大小、数目及位置。
寄存器232-26可启用AI加速器的调试/保持模式和待在AI操作的层处观察到的输出。寄存器232-26可指示应在AI操作期间应用激活,且所述AI操作可在AI操作中逐步向前(例如,在AI操作中执行下一步骤)。寄存器232-26可指示层的输出所在的临时块为有效的。临时块中的数据可由主机及/或存储器装置上的控制器改变,使得当AI操作逐步向前时,可在AI操作中使用改变的数据。寄存器232-27、232-28及232-29可定义所述层,其中调试/保持模式将停止AI操作、改变神经网络的内容及/或观察所述层的输出。
寄存器232-30、232-31、232-32及232-33可定义用于AI操作的临时存储体的大小及用于AI操作的临时存储体的开始地址及结束地址。寄存器232-30可定义用于AI操作的第一临时存储体的开始地址及结束地址,且寄存器232-33可定义用于AI操作的第一临时存储体的开始地址及结束地址。寄存器232-31及232-32可定义用于AI操作的临时存储体的大小。
寄存器232-34、232-35、232-36、232-37、232-38及232-39可与用于AI操作的激活函数相关联。寄存器232-34可启用激活函数块的使用,启用每一神经元的激活函数、每一层的激活函数的使用,且启用外部激活函数的使用。寄存器232-35可定义激活函数的位置的开始地址及结束地址。寄存器232-36、232-37、232-38及232-39可定义激活函数及/或自定义激活函数的输入(例如x轴)及输出(例如y轴)的分辨率。
寄存器232-40、232-41、232-42、232-43及232-44可定义用于AI操作的偏置值的大小、用于AI操作的偏置值的数目及用于AI操作的偏置值的开始地址及结束地址。
寄存器232-45可提供用于AI计算的状态信息,且提供用于调试/保持模式的信息。寄存器232-45可启用调试/保持模式,指示AI加速器正执行AI操作,指示应使用AI加速器的全部能力,指示应仅进行AI操作的矩阵计算,及/或指示AI操作可继续进行到下一神经元及/或层。
寄存器232-46可提供关于AI操作的错误信息。寄存器232-46可指示AI操作的序列中存在误差,AI操作的算法中存在误差,ECC不能够校正的数据页中存在误差,及/或ECC能够校正的数据页中存在误差。
寄存器232-47可指示在AI操作中使用的激活函数。寄存器232-47可指示多个预定义激活函数中的一个可用于AI操作,及/或位于块中的自定义激活函数可用于AI操作。
寄存器232-48、232-49及232-50可指示正执行AI操作的神经元及/或层。在AI操作期间发生错误的情况下,寄存器232-48、232-49及232-50发生错误的神经元及/或层。
图3A及3B是根据本公开的多个实施例的具有人工智能(AI)加速器的存储器装置上的多个寄存器中的多个位的框图。每个寄存器332-0、…、332-50可包含多个位,即位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7,以指示与执行AI操作相关联的信息。
寄存器332-0可定义与存储器装置的AI模式相关联的参数。寄存器332-0的位334-5可为读取/写入位,且可指示在编程到1b时,AI操作的细化可在开始时重新开始360。一旦AI操作已重新开始,寄存器332-0的位334-5就可复位到0b。寄存器332-0的位334-4可为读取/写入位,且可指示在编程到1b时,AI操作的细化可开始361。一旦AI操作已开始,寄存器332-0的位334-4就可复位到0b。
寄存器332-0的位334-3可为读取/写入位,且可指示在编程到1b时,AI寄存器的内容为有效的362,且在编程到0b时为无效的。寄存器332-0的位334-2可为读取/写入位,且可指示AI寄存器的内容在编程到1b时将被清除363。寄存器332-0的位334-1可为只读位,且可指示在编程到1b时,AI加速器正在使用中363且执行AI操作。寄存器332-0的位334-0可为只写位,且可指示存储器装置在编程到1b时将退出365AI模式。
寄存器332-1、332-2、332-3、332-4及332-5可定义用于AI操作的输入的大小、用于AI操作的输入的数目及用于AI操作的输入的开始地址及结束地址。寄存器332-1及332-2的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可定义用于AI操作的输入的大小366。输入的大小可根据位的数目及/或输入的类型指示输入的宽度,例如浮点、整数及/或双倍以及其它类型。寄存器332-3及332-4的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可指示用于AI操作的输入的数目367。寄存器332-5的位334-4、334-5、334-6及334-7可指示用于AI操作的输入的存储器阵列中的块的开始地址368。寄存器332-5的位334-0、334-1、334-2及334-3可指示用于AI操作的输入的存储器阵列中的块的结束地址369。如果开始地址368及结束地址369为相同地址,那么输入的仅一个块被指示用于AI操作。
寄存器332-7、332-8、332-9、332-10及332-11可定义AI操作的输出的大小、AI操作中的输出的数目及AI操作的输出的开始地址及结束地址。寄存器332-7及332-8的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可定义用于AI操作的输出的大小370。输出的大小可根据位数目及/或输出的类型(例如浮点、整数及/或双倍以及其它类型)指示输出的宽度。寄存器332-9及332-10的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可指示用于AI操作的输出的数目371。寄存器332-11的位334-4、334-5、334-6及334-7可指示用于AI操作的输出的存储器阵列中的块的开始地址372。寄存器332-11的位334-0、334-1、334-2及334-3可指示用于AI操作的输出的存储器阵列中的块的结束地址373。如果开始地址372及结束地址373为相同地址,那么输出的仅一个块被指示用于AI操作。
寄存器332-12可用于实现在AI操作期间使用的输入存储体、神经元存储体、输出存储体、偏置存储体、激活函数及临时存储体的使用。寄存器332-12的位334-0可启用输入存储体380,寄存器332-12的位334-1可启用神经网络存储体379,寄存器332-12的位334-2可启用输出存储体378,寄存器332-12的位334-3可启用偏置存储体377,寄存器332-12的位334-4可启用激活函数存储体376,及寄存器332-12的位334-5及334-6可启用第一临时375存储体和第二临时存储体374。
寄存器332-13、332-14、332-15、332-16、332-17、332-18、332-19、332-20、332-21、332-22、332-23、332-24及332-25可用于定义在AI操作期间使用的神经网络。寄存器332-13及332-14的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可定义用于AI操作的矩阵中的行的数目381。寄存器332-15及332-16的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可定义用于AI操作的矩阵中的列的数目382。
寄存器332-17及332-18的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可定义用于AI操作的神经元的大小383。神经元的大小可根据位数目及/或输入的类型(例如浮点、整数及/或双倍以及其它类型)指示神经元的宽度。寄存器332-19、332-20及322-21的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可指示用于AI操作的神经网络的神经元的数目384。寄存器332-22的位334-4、334-5、334-6及334-7可指示用于AI操作的神经元的存储器阵列中的块的开始地址385。寄存器332-5的位334-0、334-1、334-2及334-3可指示用于AI操作的神经元的存储器阵列中的块的结束地址386。如果开始地址385及结束地址386为相同地址,那么输入的仅一个块指示用于AI操作。寄存器332-23、332-24及322-25的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可指示用于AI操作的神经网络的层的数目387。
寄存器332-26可启用AI加速器的调试/保持模式及待在AI操作的层处观察到的输出。寄存器332-26的位334-0可指示AI加速器处于调试/保持模式,且激活函数应在AI操作期间应用391。寄存器332-26的位334-1可指示AI操作可在AI操作中逐步向前390(例如,在AI操作中执行下一步骤)。寄存器232-26的位334-2及位334-3可指示层的输出所在的临时块为有效的388和389。临时块中的数据可由主机及/或存储器装置上的控制器改变,使得当AI操作逐步向前时,可在AI操作中使用改变的数据。
寄存器332-27、332-28及332-29的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可定义调试/保持模式将停止392AI操作的层且观察所述层的输出。
寄存器332-30、332-31、332-32及332-33可定义用于AI操作的临时存储体的大小及用于AI操作的临时存储体的开始地址及结束地址。寄存器332-30的位334-4、334-5、334-6及334-7可定义用于AI操作的第一临时存储体的开始地址393。寄存器332-30的位334-0、334-1、334-2及334-3可定义用于AI操作的第一临时存储体的结束地址394。寄存器332-31及332-32的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可定义用于AI操作的临时存储体的大小395。临时存储体的大小可根据位数目及/或输入的类型指示临时存储体的宽度,例如浮点、整数及/或双倍以及其它类型。寄存器332-33的位334-4、334-5、334-6及334-7可定义用于AI操作的第二临时存储体的开始地址396。寄存器332-34的位334-0、334-1、334-2及334-3可定义用于AI操作的第二临时存储体的结束地址397。
寄存器332-34、332-35、332-36、332-37、332-38及332-39可与用于AI操作的激活函数相关联。寄存器332-34的位334-0可启用激活函数块的使用3101。寄存器332-34的位334-1可启用将所述AI保持在神经元处3100及每一神经元的激活函数的使用。寄存器332-34的位334-2可启用将AI保持在层处399及每一层的激活函数的使用。寄存器332-34的位334-3可启用外部激活函数的使用398。
寄存器332-35的位334-4、334-5、334-6及334-7可定义用于AI操作的激活函数存储体的开始地址3102。寄存器332-35的位334-0、334-1、334-2及334-3可定义用于AI操作的激活函数存储体的结束地址3103。寄存器332-36及332-37的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可定义激活函数的输入(例如x轴)的分辨率3104。寄存器332-38及332-39的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可定义针对自定义激活函数的给定x轴值的激活函数的分辨率及/或输出(例如y轴)3105。
寄存器332-40、332-41、332-42、332-43及332-44可定义用于AI操作的偏置值的大小、用于AI操作的偏置值的数目及用于AI操作的偏置值的开始地址及结束地址。寄存器332-40及332-41的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可定义用于AI操作的偏置值的大小3106。偏置值的大小可根据位数目及/或偏置值的类型(例如浮点、整数及/或双倍以及其它类型)指示偏置值的宽度。寄存器332-42及332-43的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可指示用于AI操作的偏置值的数目3107。寄存器332-44的位334-4、334-5、334-6及334-7可指示用于AI操作的偏置值的存储器阵列中的块的开始地址3108。寄存器332-44的位334-0、334-1、334-2及334-3可指示用于AI操作的偏置值的存储器阵列中的块的结束地址3109。如果开始地址3108及结束地址3109为相同地址,那么输入的仅一个块指示用于AI操作。
寄存器332-45可提供用于AI计算的状态信息,且提供用于调试/保持模式的信息。寄存器332-45的位334-0可激活调试/保持模式3114。寄存器的位334-1可指示AI加速器忙碌3113且执行AI操作。寄存器332-45的位334-2可指示AI加速器处于打开状态3112及/或应使用AI加速器的全部能力。寄存器332-45的位334-3可仅指示应进行AI操作的矩阵计算3111。寄存器332-45的位334-4可指示AI操作可逐步向前3110且继续进行到下一神经元及/或层。
寄存器332-46可提供关于AI操作的错误信息。寄存器332-46的位334-3可指示AI操作的序列中存在错误3115。寄存器332-46的位334-2可指示AI操作的算法中存在错误3116。寄存器332-46的位334-1可指示ECC不能够校正的数据页中存在错误3117。寄存器332-46的位334-0可指示ECC能够校正的数据页中存在错误3118。
寄存器332-47可指示在AI操作中使用的激活函数。寄存器332-47的位334-0、334-1、334-2、334-3、334-4、334-5及334-6可指示多个预定义激活函数中的一个3120可用于AI操作。寄存器332-47的位334-7可指示位于块中的自定义激活函数3119可用于AI操作。
寄存器332-48、332-49及332-50可指示正执行AI操作的神经元及/或层。寄存器332-48、332-49及332-50的位334-0、334-1、334-2、334-3、334-4、334-5、334-6及334-7可指示正执行AI操作的神经元及/或层的地址。在AI操作期间发生错误的情况下,寄存器332-48、332-49及332-50可指示发生错误的神经元及/或层。
图4是根据本公开的多个实施例的具有人工智能(AI)加速器的存储器装置的多个块的框图。输入块440为存储器阵列中存储输入数据的块。输入块440中的数据可用作AI操作的输入。输入块440的地址可在寄存器5中指示(例如,图2中的寄存器232-5和图3A中的寄存器332-5)。由于可存在多个输入块,因此实施例不限于一个输入块。可将数据输入块440从主机发送到存储器装置。数据可伴随指示应使用所述数据对存储器装置进行AI操作的命令。
输出块420为存储器阵列中存储来自AI操作的输出数据的块。输出块442中的数据可用于存储来自AI操作的输出且发送到主机。输出块442的地址可在寄存器11(例如,图2中的寄存器232-11及图3A中的寄存器332-11)中指示。由于可存在多个输出块,因此实施例不限于一个输出块。
在完成及/或保持AI操作之后,可将输出块442中的数据发送到主机。临时块444-1及444-2可为存储器阵列中在正执行AI操作的同时临时存储数据的块。数据可存储于临时块444-1及444-2中,同时AI操作通过用于AI操作的神经网络的神经元及层迭代。临时块448的地址可在寄存器30及33(例如,图2中的寄存器232-30及232-33及图3B中的332-30及332-33)中指示。由于可存在多个临时块,因此实施例不限于两个临时块。
激活函数块446为存储器阵列中存储AI操作的激活函数的块。激活函数块446可存储由主机及/或AI加速器产生的预定义激活函数及/或自定义激活函数。激活函数块448的地址可在寄存器35(例如,图2中的寄存器232-35及图3B中的寄存器332-35)中指示。由于可存在多个激活函数块,因此实施例不限于一个激活函数块。
偏置值块448为存储器阵列中存储AI操作的偏置值的块。偏置值块448的地址可在寄存器44(例如,图2中的寄存器232-44及图3B中的寄存器332-44)中指示。由于可存在多个偏置值块,因此实施例不限于一个偏置值块。
神经网络块450-1、450-2、450-3、450-4、450-5、450-6、450-7、450-8、450-9及450-10为存储器阵列中存储AI操作的神经网络的块。神经网络块450-1、450-2、450-3、450-4、450-5、450-6、450-7、450-8、450-9及450-10可存储用于AI操作的神经元及层的信息。神经网络块450-1、450-2、450-3、450-4、450-5、450-6、450-7、450-8、450-9及450-10的地址可在寄存器22(例如,图2中的寄存器232-22及图3A中的寄存器332-22)中指示。
图5A是根据本公开的多个实施例的呈包含具有人工智能(AI)加速器的存储器装置520的计算系统500形式的设备的框图,所述存储器装置包含存储器阵列525。如本文中所使用,存储器装置520、控制器540、存储器阵列525、感测电路系统5138及/或多个额外锁存器5140还可单独地视为“设备”。
在图5A中,AI加速器(例如,图1中的AI加速器124)可包含感测电路系统5138及额外锁存器5140,以及结合图5A至8B描述的其它组件,其经配置以执行与AI操作相关联的操作,例如逻辑操作。如下文结合图5A至8B描述,存储器装置(例如,存储器装置520)可经配置以执行与AI操作相关联的操作作为AI加速器的一部分。
如本文中所使用,额外锁存器意指感测、耦合及/或移动(例如,读取、存储、高速缓存)阵列中的存储器单元的数据值且不同于在图5B、7、8A及8B中的多个共享I/O线5144的数据路径中的计算单元中的多个计算组件5148-1、…、5148-M及/或逻辑条5152-1、…、5152-N的额外功能性(例如,放大器、选择逻辑)。如图5A及5B中所展示,在阵列本地的多个共享输入/输出(I/O)线5144的数据路径中的逻辑条5152-1、…、5152-N可与存储体5146-1中的存储器单元的各种存储体区段5150-1、…、5150-N相关联。存储体5146-1可为存储器装置520上的多个存储体中的一个。
图5A中的系统500包含耦合(例如,连接)到存储器装置520的主机502。主机502可为例如个人膝上型计算机、台式计算机、数码相机、智能手机或存储卡读取器的主机系统,以及各种其它类型的主机。主机502可包含系统母板及/或底板,且可包含多个处理资源(例如一或多个处理器、微处理器或一些其它类型的控制电路系统)。系统500可包含单独的集成电路,或主机502与存储器装置520两者可在同一集成电路上。举例来说,系统500可为服务器系统及/或高性能计算(HPC)系统及/或其一部分。虽然图5A中所示的实例说明具有冯诺依曼(Von Neumann)架构的系统,但本公开的实施例可实施于非冯诺依曼架构中,所述非冯诺依曼架构可不包含通常与冯诺依曼架构相关联的一或多个组件(例如,CPU、ALU等)。
为了清晰起见,已简化系统500以聚焦于与本公开特别相关的特征。存储器阵列525可为DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND快闪阵列及/或NOR快闪阵列,以及其它类型的阵列。阵列525可包含以由存取线(其可在本文中称为字线或选择线)耦合的行及由感测线(其可在本文中称为数据线或数字线)耦合的列布置的存储器单元。虽然在图5A中展示单个阵列525,但是实施例不限于此。举例来说,存储器装置520可包含多个阵列525(例如,DRAM单元、NAND闪存单元等的多个存储体)。
存储器装置520可包含地址电路系统5525以通过I/O电路系统5134(例如,经由本地I/O线及全局I/O线提供到外部ALU电路系统及/或DRAM DQ)锁存在数据总线556(例如,连接到主机502的I/O总线)上提供的地址信号。如本文中所使用,DRAM DQ可实现经由总线(例如,数据总线556)将数据输入到存储体及/或从存储体输出数据(例如,从控制器540及/或主机502输出数据及/或将数据输入到控制器540及/或主机502)。在写入操作期间,可将电压(高=1,低=0)施加到DQ(例如,引脚)。此电压可转换成适当信号且存储于所选存储器单元中。在读取操作期间,一旦存取完成且启用输出(例如通过输出启用信号变低),则从所选存储器单元读取的数据值可在DQ处出现。在其它时间,DQs可处于高阻抗状态,使得DQ并不供应或吸收电流,且并不将信号呈现给系统。当两个或更多个装置(例如,存储体)共享组合的数据总线时,这还可减少DQ竞争,如本文中所描述。这种DQ与在阵列525本地的数据路径中的多个共享I/O线5144(在图5B中)分离且不同。
举例来说,可通过带外(OOB)总线557,例如高速接口(HSI)将状态及异常信息从存储器装置520的控制器540提供到信道控制器504,所述状态及异常信息又可从信道控制器504提供到主机502。信道控制器504可包含逻辑组件以分配每一相应存储体的阵列中的多个位置(例如,用于子阵列的控制器)以存储存储体命令、应用程序指令(例如,用于操作序列)及用于与多个存储器装置520中的每一个的操作相关联的各个存储体的自变数(PIM命令)。信道控制器504可将命令(例如PIM命令)调度到多个存储器装置520,以将那些程序指令存储在存储器装置520的给定存储体5146(图5B)内。
地址信号通过地址电路系统5525接收,并且通过行解码器5132及列解码器5142解码以存取存储器阵列525。可通过使用感测电路系统5138的如本文中所描述的多个感测放大器来感测感测线(数字线)上的电压及/或电流变化而从存储器阵列525感测(读取)数据。感测放大器可从存储器阵列525读取及锁存数据页(例如,行)。如本文所描述,额外计算电路系统可耦合到感测电路系统5138且可与感测放大器组合使用以感测、存储(例如,缓存及/或缓冲)、执行计算功能(例如,操作)及/或移动数据。I/O电路系统5134可用于通过数据总线556(例如,64位宽数据总线)与主机502进行双向数据通信。写入电路系统5136可用于将数据写入到存储器阵列525。
控制器540(例如,图5A中所示的存储体控制逻辑、定序器及定时电路系统)可对由控制总线554从主机502提供的信号(例如,命令)进行解码。这些信号可包含芯片启用信号、写入启用信号及/或地址锁存信号,其可用于控制在存储器阵列525上执行的操作,包含数据感测、数据存储、数据移动(例如,复制、传送及/或输送数据值)、数据写入及/或数据擦除操作,以及其它操作。在各种实施例中,控制器540可负责执行来自主机502的指令并存取存储器阵列525。控制器540可为状态机、定序器或某一其它类型的控制器。控制器540可控制在阵列(例如,存储器阵列525)的行中移位数据(例如,向右或向左)并执行微代码指令以执行例如计算操作的操作,例如AND、OR、NOR、XOR、加法、减法、乘法、除法等。
在下文(例如在图6至8B中)进一步描述感测电路系统5138的实例。举例来说,在一些实施例中,感测电路系统5138可包含多个感测放大器及多个计算组件,其可充当累加器且可用于执行每一子阵列中的操作(例如,对与互补感测线相关联的数据)。
在一些实施例中,感测电路系统5138可用于使用存储在存储器阵列525中的数据作为输入来执行操作,且参与用于复制、传送、输送、写入、逻辑及/或存储操作的数据到存储器阵列525中不同位置的移动,而不经由感测线地址存取传送数据(例如,不启动列解码信号)。因此,各种计算功能可使用感测电路系统5138及在感测电路系统5138内执行,而不是(或与其结合)通过感测电路系统5138外部的处理资源(例如,通过与主机502及/或位于装置520上,例如控制器540上或其它地方的其它处理电路系统(例如,ALU电路系统)相关联的处理器)执行。然而,另外,根据本公开的实施例对从阵列的行移动到计算单元中的多个计算组件5148-1、…、5148-M及和/或逻辑条5152-1、…、5152-N的数据值执行计算功能。并且作为实例,根据实施例,与启动阵列中的行所需的实例时间例如60纳秒(ns)相比,可在计算单元中以2纳秒(ns)的速度控制计算操作,而无需将数据值移动回行中。
在各种先前方法中,举例来说,将经由感测电路系统从存储器读取与操作数相关联的数据,并经由I/O线(例如经由本地I/O线及/或全局I/O线)将所述数据提供给外部ALU电路系统。外部ALU电路系统可包含多个寄存器并将使用操作数执行计算功能,并且结果将经由I/O电路系统5134传送回阵列。
相反,根据本公开的实施例对从阵列的行经由多个共享I/O线5144移动到在阵列本地的数据路径中的计算单元中的多个计算组件5148-1、…、5148-M及/或逻辑条5152-1、…、5152-N的数据值执行计算功能。另外,感测电路系统5138可经配置以对存储在存储器阵列525中的数据执行操作,且将结果存储回到存储器阵列525,而不启用耦合到感测电路系统5138的I/O线(例如,本地I/O线)。然而,与启动阵列中的行所需的实例时间,例如60纳秒(ns)相比,一旦加载,可在计算单元中快得多地(例如,以2纳秒(ns)的速度)控制计算操作,而无需将数据值移动回行中。感测电路系统5138可与阵列的存储器单元成间距形成。与多个共享I/O线5144的数据路径相关联的多个计算组件5148-1、…、5148-M及/或逻辑条5152-1、…、5152-N的间距等于数据路径的间距并且为数字线到存储器单元阵列的间距的函数。举例来说,计算组件的间距为数字线到存储器单元阵列的间距的整数倍。
举例来说,本文中所描述的感测电路系统5138可与一对互补感测线(例如,数字线)按相同间距形成。作为实例,一对互补存储器单元可具有间距为6F2(例如,3F x 2F)的单元大小,其中F是特征大小。如果用于互补存储器单元的一对互补感测线的间距是3F,则感测电路系统成间距指示感测电路系统(例如,每个相应对的互补感测线的感测放大器及对应计算组件)形成为适配于互补感测线的3F间距内。同样,与多个共享I/O线5144的数据路径相关联的计算组件5148-1、…、5148-M及/或逻辑条5152-1、…、5152-N的间距为互补感测线的3F间距的函数。举例来说,计算组件5148-1、…、5148-M及/或逻辑条5152-1、…、5152-N的间距为数字线到存储器单元阵列的3F间距的整数倍。
相反,各种先前系统的处理资源(例如,计算引擎,例如ALU)的电路系统可不符合与存储器阵列相关联的间距规则。举例来说,存储器阵列的存储器单元可具有4F2或6F2单元大小。因此,与先前系统的ALU电路系统相关联的装置(例如,逻辑门)可能不能够与存储器单元成间距形成(例如,成与感测线相同的间距),这会例如影响芯片大小及/或存储器密度。在一些计算系统及子系统(例如中央处理单元(CPU))的背景下,可在不与存储器(例如,阵列中的存储器单元)成间距及/或不与所述存储器一起处于芯片上的位置中处理数据,如本文所描述。举例来说,可通过与主机相关联而非与存储器成间距的处理资源处理数据。
因此,在多个实施例中,不需要阵列525外部的电路系统及感测电路系统5138执行计算功能,因为感测电路系统5138可执行适当操作来执行此计算功能,或可在阵列本地的多个共享I/O线的数据路径中执行此类操作,而不使用外部处理资源。因此,感测电路系统5138及/或多个共享I/O线5144的数据路径中的计算单元中的多个计算组件5148-1、…、5148-M及/或逻辑条5152-1、…、5152-N可用于至少在某一程度上补充或替代此种外部处理资源(或至少此种外部处理资源的带宽消耗)。在一些实施例中,感测电路系统5138及/或多个共享I/O线5144的数据路径中的计算单元中的多个计算组件5148-1、…、5148-M及/或逻辑条5152-1、…、5152-N可用于执行除由外部处理资源(例如,主机502)执行的操作以外的操作(例如,执行指令)。举例来说,主机502及/或感测电路系统5138可限于仅执行某些操作及/或某一数目的操作。
本文中所描述的操作可包含与具存储器中处理(PIM)能力的装置相关联的操作。具PIM能力的装置操作可使用基于位向量的操作。如本文所用,术语“位向量”意指物理上连续地存储于存储器单元阵列的行中的位向量存储器装置(例如,PIM装置)上的物理上连续的多个位。因此,如本文中所使用,“位向量操作”意指对作为虚拟地址空间的连续部分(例如,由PIM装置使用)的位向量执行的操作。举例来说,PIM装置中的一行虚拟地址空间可具有16K位的位长度(例如,对应于DRAM配置中的16K互补对的存储器单元)。如本文中所描述,用于这种16K位行的感测电路系统5138可包含对应16K处理元件(例如,如本文中所描述的计算组件),所述16K处理元件与可选择地耦合到16位行中的对应存储器单元的感测线成间距形成。PIM装置中的计算组件可在由感测电路系统5138感测(例如,如本文所描述,由与计算组件配对的感测放大器感测及/或存储于所述感测放大器中)的存储器单元行的位向量的单个位上作为一位处理元件(PE)操作。类似地,多个计算组件5148-1、…、5148-M及/或多个共享I/O线5144的数据路径中的计算单元中的逻辑条5152-1、…、5152-N可在阵列中感测的存储器单元行的位向量的单个位上作为一位处理元件(PE)操作。
启用I/O线可包含启用(例如接通、激活)具有耦合到解码信号(例如列解码信号)的栅极及耦合到I/O线的源极/漏极的晶体管。然而,实施例不限于不启用I/O线。举例来说,在多个实施例中,感测电路系统(例如,5138)可用于执行操作而不启用阵列的列解码线。
然而,可启用多个共享I/O线5144,以便将数据值加载到多个共享I/O线5144的数据路径中的计算单元中的多个计算组件5148-1、…、5148-M及/或逻辑条5152-1、…、5152-N,其中可快得多地控制计算操作。举例来说,在计算单元中的多个计算组件5148-1、…、5148-M及/或逻辑条5152-1、…、5152-N中,计算操作可在2纳秒(ns)的速度下执行。这种速度的增强可归因于不必以用于启动阵列中的行的相关联的时间(例如,60纳秒(ns))将数据值移动回到行中。
图5B是根据本公开的多个实施例的呈包含存储器装置的计算系统形式的设备的框图,所述存储器装置在具有人工智能(AI)加速器的阵列的存储体区段本地的数据路径中具有共享输入/输出(I/O)线。举例来说,存储体5146-1可表示存储器装置520的实例存储体。如图5B中所示,存储体5146-1可包含多个主存储器列(水平地展示为X)(例如,实例DRAM存储体中的16,384个列)。另外,存储体5146-1可划分成存储体区段(例如,32个子阵列的象限)5150-1、5150-2、…、5150-N。每一存储体区段可与多个共享I/O线5144的数据路径中的计算单元中的逻辑条5152-1、…、5152-N中的多个计算组件5148-1、…、5148-M相关联。存储体区段5150-1、…、5150-N中的每一个可包含多个行(竖直地展示为Y)(例如,每一区段可为包含32个子阵列的象限,所述子阵列各自可包含实例DRAM存储体中的512个行)。实例实施例不限于本文所描述的列及行的实例水平及/或竖直定向或其实例编号。
如图5B中所示,存储体5146-1可划分成多个存储体区段5150-1、…、5150-N。每一存储体区段可具有与其相关联的多个共享I/O线5144的数据路径中的计算单元中的多个计算组件5148-1、…、5148-M及逻辑条5152-1、…、5152-N。存储体5146-1可包含控制器540以引导对加载到多个共享I/O线5144的数据路径中的计算单元中的逻辑条5152-1、…、5152-N中的多个计算组件5148-1、…、5148-M的数据值的操作。
图6是说明根据本公开的多个实施例的感测电路系统6138的示意图。感测电路系统6138可对应于图5A中所示的感测电路系统5138。
如图6的实例实施例中所示,存储器单元可包含存储元件(例如,电容器)及存取装置(例如,晶体管)。举例来说,第一存储器单元可包含晶体管6160-1及电容器6162-1,且第二存储器单元可包含晶体管6160-2及电容器6162-2等。在此实施例中,存储器阵列625为一晶体管一电容器(1T1B)存储器单元的DRAM阵列,但可使用配置的其它实施例(例如,每存储器单元具有两个晶体管及两个电容器的2T2C)。在多个实施例中,存储器单元可为破坏性读取存储器单元(例如,读取存储于单元中的数据会破坏数据,使得最初存储于单元中的数据在被读取之后刷新)。
存储器阵列625的单元可布置成通过存取(字)线6164-X(行X)、6164-Y(行Y)等耦合的行及通过互补感测线对(例如,图6中所示的数字线DIGIT(D)及DIGIT(D)_)耦合的列。对应于每一对互补感测线的个别感测线还可分别称为用于DIGIT(D)的数字线6168-1及用于DIGIT(D)_的6168-2,或图7及8A到8B中的对应附图标记。虽然在图6中仅展示一对互补数字线,但本公开的实施例不限于此,且存储器单元的阵列可包含存储器单元及数字线的额外列(例如4,096、8,192、16,384等)。
虽然行及列说明为在平面中垂直定向,但是实施例不受如此限制。举例来说,行及列可在任何可行的三维配置中相对于彼此定向。举例来说,行与列可相对于彼此按任何角度定向,可定向于基本上水平的平面中或基本上竖直的平面中,及/或可定向于折叠式拓扑以及其它可能的三维配置中。
存储器单元可耦合到不同数字线及字线。举例来说,晶体管6160-1的第一源极/漏极区可耦合到数字线6168-1(D),晶体管6160-1的第二源极/漏极区可耦合到电容器6162-1,且晶体管6160-1的栅极可耦合到字线6164-Y。晶体管6160-2的第一源极/漏极区可耦合到数字线6168-2(D)_,晶体管6160-2的第二源极/漏极区可耦合到电容器6162-2,且晶体管6160-2的栅极可耦合到字线6164-X。如图6中所示的单元板可耦合到电容器6162-1及6162-2中的每一者。单元板可为可在各种存储器阵列配置中对其施加参考电压(例如,接地)的共同节点。
根据本公开的多个实施例,存储器阵列625经配置以耦合到感测电路系统6138。在此实施例中,感测电路系统6138包括对应于存储器单元的相应列(例如,耦合到相应对的互补数字线)的感测放大器6170及计算组件6148。感测放大器6170可耦合到互补数字线6168-1及6168-2对。计算组件6148可经由直通门6172-1及6172-2耦合到感测放大器6170。直通门6172-1及6172-2的栅极可耦合到操作选择逻辑6178。
操作选择逻辑6178可经配置以包含直通门逻辑,用于控制耦合在感测放大器6170与计算组件6148之间未换位的互补数字线对的直通门,及交换门逻辑,用于控制耦合在感测放大器6170与计算组件6148之间换位的互补数字线对的交换门。操作选择逻辑6178还可耦合到互补数字线6168-1及6168-2对。操作选择逻辑6178可经配置以基于所选操作而控制直通门6172-1及6172-2的连续性。
可操作感测放大器6170以确定存储于所选择存储器单元中的数据值(例如,逻辑状态)。感测放大器6170可包括交叉耦合式锁存器,所述锁存器可在本文中称为主锁存器。在图2中所说明的实例中,对应于感测放大器6170的电路系统包括锁存器6175,所述锁存器包含耦合到一对互补数字线D 6168-1及(D)_6168-2的四个晶体管。然而,实施例不限于此实例。锁存器6175可为交叉耦合的锁存器(例如,一对晶体管的栅极),例如n沟道晶体管(例如,NMOS晶体管)6182-1及6182-2与例如p沟道晶体管(例如,PMOS晶体管)6184-1和6184-2)的另一对晶体管的栅极交叉耦合。包括晶体管6182-1、6182-2、6184-1及6184-2的交叉耦合的锁存器6175可称为主锁存器。
在操作中,当正感测(例如读取)存储器单元时,数字线6168-1(D)或6168-2(D)_中的一个上的电压将略微大于数字线6168-1(D)或6168-2(D)_中的另一个上的电压。ACT信号及RNL*信号可驱动为低以启用(例如,启动)感测放大器6170。与PMOS晶体管6184-1或6184-2中的另一个相比,具有较低电压的数据线6168-1(D)或6168-2(D)_将在更大程度上打开PMOS晶体管6184-1或6184-2中的一个,由此与将另一数字线6168-1(D)或6168-2(D)_驱动为高相比,在更大程度上将具有较高电压的数字线6168-1(D)或6168-2(D)_驱动为高。
类似地,与NMOS晶体管6182-1或6182-2中的另一个相比,具有较高电压的数字线6168-1(D)或6168-2(D)_将在更大程度上打开NMOS晶体管6182-1或6182-2中的一个,由此与将另一数字线6168-1(D)或6168-2(D)_驱动为低相比,在更大程度上将具有较低电压的数字线6168-1(D)或6168-2(D)_驱动为低。因此,在短延迟之后,具有略微更大的电压的数字线6168-1(D)或6168-2(D)_被驱动成穿过源晶体管的供应电压VCC的电压,且另一数字线6168-1(D)或6168-2(D)_被驱动成穿过吸收晶体管的参考电压(例如接地)的电压。因此,交叉耦合的NMOS晶体管6182-1及6182-2及PMOS晶体管6184-1及6184-2充当感测放大器对,所述感测放大器对放大数字线6168-1(D)及6168-2(D)_上的差分电压且操作以锁存从节点6177-1及/或6177-2上的所选择存储器单元感测到的数据值。
实施例不限于图6中所说明的感测放大器6170配置。作为实例,感测放大器6170可为电流模式感测放大器及单端感测放大器(例如,耦合到一个数字线的感测放大器)。而且,本公开的实施例不限于折叠式数字线架构,例如图6中所展示的折叠式数字线架构。
感测放大器6170可结合计算组件6148操作以执行将来自阵列的数据用作输入的各种操作。在多个实施例中,可将操作的结果存储回到阵列,而不通过数字线地址存取传送数据(例如,不启动列编码信号,使得通过本地I/O线将数据传送到阵列外部的电路系统及感测电路系统)。因此,本公开的多个实施例可比各种先前方法使用更少功率来实现执行操作及与其相关联的计算功能。另外,因为多个实施例不需要跨越本地及全局I/O线传送数据以便执行计算功能(例如在存储器与离散处理器之间),所以多个实施例可相比于先前方法实现增加(例如更快)的处理能力。
感测放大器6170可进一步包含平衡电路系统6174,所述平衡电路系统可经配置以平衡数字线6168-1(D)及6168-2(D)_。在此实例中,平衡电路系统6174包括耦合于数字线6168-1(D)与6168-2(D)_之间的晶体管6188。平衡电路系统6174还包括各自具有耦合到平衡电压(例如VDD/2)第一源极/漏极区的晶体管6180-1及6180-2,其中VDD是与阵列相关联的电源电压。晶体管6180-1的第二源极/漏极区可耦合到数字线6168-1(D),且晶体管6180-2的第二源极/漏极区可耦合到数字线6168-2(D)_。晶体管6188、6180-1及6180-2的栅极可耦合在一起,且耦合到平衡(EQ)控制信号线6186。因此,激活EQ会启用晶体管6188、6180-1及6180-2,这会有效地将数字线6168-1(D)与6168-2(D)_短接到一起及短接到平衡电压(例如VCC/2)。
虽然图6展示包括平衡电路系统6174的感测放大器6170,但是实施例不限于此,且平衡电路系统6174可与感测放大器6170离散地实施、实施于与图6中所展示的配置不同的配置中或完全不实施。
如下文进一步描述,在多个实施例中,可操作感测电路系统6138(例如感测放大器6170及计算组件6148)以执行所选择操作,并最初将结果存储在感测放大器6170或计算组件6148中的一个中,而不通过本地或全局I/O线传送来自感测电路系统的数据(例如不通过激活例如列解码信号执行感测线地址存取)。
然而,进一步到本文所描述的实施例,具有感测放大器且在一些实施例中还可包含图6中所示的计算组件的感测电路系统6138还可将来自阵列中的存储器单元的多路复用列的存储器单元耦合到在阵列本地的多个共享I/O线8144的数据路径中的计算单元8198中的计算组件8148-1、…、8148-M及/或逻辑条8152-1、…、8152-N,如结合图8A及8B所论述。以此方式,计算组件8148-1、…、8148-M及/或逻辑条8152-1、…、8152-N可经由选择逻辑(结合图8A及8B所论述)通过多个共享I/O线8144间接耦合到列的存储器单元。
对操作(例如,涉及数据值的布尔型逻辑操作)的执行是基本且常用的。在许多较高层级操作中使用布尔型逻辑操作。因此,可通过改进的操作实现的速度及/或功率效率可变换成更高阶功能性的速度及/或功率效率。
如图6中所示,计算组件6148还可包括锁存器,所述锁存器可在本文中称为次锁存器6190。次锁存器6190可以类似于上文关于主锁存器6175所描述的方式配置及操作,不同之处在于包含于次锁存器中的所述一对交叉耦合的p沟道晶体管(例如PMOS晶体管)可使其相应源极耦合到电源电压6176-2(例如VDD),且次锁存器的所述一对交叉耦合的n沟道晶体管(例如NMOS晶体管)可使其相应源极选择性地耦合到参考电压6176-1(例如接地),使得持续启用次锁存器。计算组件6148的配置不限于图6中所展示的配置,且各种其它实施例是可行的。
如本文所描述,存储器装置(例如图5A中的520)可经配置以通过数据总线(例如556)及控制总线(例如554)耦合到主机(例如502)。存储器装置520中的存储体5146可包含存储器单元的多个存储体区段(图5B中的5150-1、…、5150-N)。存储体5146可包含经由存储器单元的多个列(图5B)耦合到多个阵列的感测电路系统(例如,图5A中的5138及图6及7中的对应附图标记)。感测电路系统可包含耦合到所述列中的每一个的感测放大器及计算组件(例如分别是图6中的6170及6148)。
每个存储体区段5150可与阵列625本地的多个共享I/O线(图5B中的5144)的数据路径中的计算单元中的多个逻辑条(例如,图5B中的5152-0、5152-1、…、5152-N-1)相关联。耦合到存储体的控制器(例如,图5A至5B中的540)可经配置以如本文中所描述将数据值的移动引导到在阵列8A至8B本地的共享I/O线7144/8144(图7及4)的数据路径中的计算单元7198/8198(图7及8A至8B)中的逻辑条8152(图8A)中的计算组件8148(图A)。
存储器装置可包含逻辑条(例如,图5B中的5152及图8A中的8152),所述逻辑条具有可对应于存储器单元的多个列(图1AB)的数目的多个计算组件(例如,分别在图8A中的8148-1、…、8148-Z)。如结合图6进一步论述,感测电路系统6138中的多个感测放大器6170及/或计算组件6148可以可选择地耦合(例如,经由图7中的列选择电路系统7194-1及7194-2)到多个共享I/O线7144(图7)。列选择电路系统可经配置以通过可选择地耦合到多个(例如,四个、八个及十六个,以及其它可能性)感测放大器及/或计算组件而可选择地感测阵列的存储器单元的特定列中的数据。
在一些实施例中,存储体中的多个逻辑条(例如,图5B中的5152-1、…、5152-N)的数目可对应于存储体中的图5B中的存储体区段5150-1、…、5150-N(例如,具有多个子阵列的象限)的数目。逻辑条可包含类似于图6中所示的计算组件6148的在阵列625本地的共享I/O线8144(图8A)的数据路径中的多个计算组件8148-1、…、8148-Z(图8A)。如将在图7中所示,从阵列行感测到的数据值可由列选择逻辑经由多个共享I/O线7144(图7)并行地移动到多个共享I/O线7144(图7)的数据路径中的计算单元7198(图7)中的多个计算组件8148(图8A)。在一些实施例中,数据量可对应于多个共享I/O线的至少一千位宽度。
如本文中所描述,存储器单元阵列可包含DRAM存储器单元的实施方案,其中控制器经配置以响应于命令而经由共享I/O线将数据从源位置移动(例如,复制、传送及/或输送)到目的地位置。在各种实施例中,源位置可在第一存储体中且目的地位置可在阵列625本地的共享I/O线7144(图7)的数据路径中的计算单元7198(图7)中。
如图7中所描述,设备可经配置以将数据从源位置移动(例如,复制、传送及/或输送)到共享I/O线(例如,图7中的7144),所述源位置包含与感测放大器及计算组件的第一数目相关联的特定行(例如,图7中的719)及列地址。另外,设备可经配置以将数据移动到目的地位置,包含与共享I/0线8144(图8A)的数据路径中的计算单元8198(图8A)相关联的特定逻辑条8152(图8A)。如读者将了解,每个共享I/O线7144(图7)可实际上包含共享I/O线的互补对(例如,图7中的共享I/O线及共享I/O线*)。在本文中所描述的一些实施例中,2048个共享I/O线(例如,共享I/O线的互补对)可配置为2048位宽的共享I/O线。在本文中所描述的一些实施例中,1024个共享I/O线(例如,共享I/O线的互补对)可配置为1024位宽的共享I/O线。
图7是说明根据本公开的多个实施例的用于存储器装置中的数据移动的电路系统的示意图。图7展示各自耦合到相应的一对互补共享I/O线7144(例如,共享I/O线及共享I/O线*)的八个感测放大器(例如,分别在7170-0、7170-1、…、7170-7处展示的感测放大器0、1、…、7)。图7还展示各自经由相应直通门7172-1及7172-2及数字线7168-1及7168-2耦合到相应感测放大器(例如,如针对7170-0处的感测放大器0所展示)的八个计算组件(例如,在7148-0、7148-1、…、7148-7处展示的计算组件0、1、…、7)。举例来说,直通门可如图2中所展示连接,并且可由操作选择信号Pass控制。举例来说,选择逻辑的输出可耦合到直通门7172-1及7172-2的栅极及数字线7168-1及7168-2。感测放大器及计算组件的对应对可促成形成在7138-0、7138-1、…、7138-7处指示的感测电路系统。
所述对互补数字线7168-1及7168-2上存在的数据值可加载到计算组件7148-0,如结合图6所描述。举例来说,当启用直通门7172-1及7172-2时,所述对互补数字线7168-1及7168-2上的数据值可从感测放大器传递到计算组件(例如7170-0到7148-0)。当启动感测放大器时,所述对互补数字线7168-1及7168-2上的数据值可为存储在感测放大器7170-0中的数据值。
图3中的感测放大器7170-0、7170-1、…、7170-7可各自对应于图6中所展示的感测放大器6170。图3中展示的计算组件7148-0、7148-1、…、7148-7可各自对应于图6中所展示的计算组件6148。一个感测放大器与一个计算组件的组合可促成耦合到共享I/O线7144的DRAM存储器子阵列7145的部分的感测电路系统(例如,7138-0、7138-1、…、7138-7),所述共享I/O线由共享I/O线7144的数据路径中的多个逻辑条共享。
为了清楚起见而展示图7中所说明的实施例的配置且所述配置不限于这些配置。举例来说,图7中所说明的用于感测放大器7170-0、7170-1、…、7170-7结合计算组件7148-0、7148-1、…、7148-7及共享I/O线7144的配置不限于感测放大器7170-0、7170-1、…、7170-7与感测电路系统的计算组件7148-0、7148-1、…、7148-7的组合的一半形成于存储器单元(未展示)的列7192上方且一半形成于存储器单元的列7192下方。形成经配置以耦合到共享I/O线的感测电路系统的感测放大器与计算组件的此类组合的数目也不限于八个。另外,共享I/O线7144的配置不限于分成两个以用于单独地耦合两组互补数字线7168-1及7168-2中的每一个,共享I/O线7144的定位也不限于处于形成感测电路系统的感测放大器与计算组件的组合中间(例如而非在感测放大器与计算组件的组合的任一端处)。
图3中所说明的电路系统还展示列选择电路系统7194-1及7194-2,所述列选择电路系统经配置以相对于子阵列7145的特定列7192、与其相关联的互补数字线7168-1及7168-2,及共享I/O线7144(例如,如由图5A到6B中所展示的控制器540引导)实施数据移动操作。举例来说,列选择电路系统7194-1具有经配置以与例如列0(332-0)、列2、列4及列6的对应列耦合的选择线0、2、4及6。列选择电路系统7194-2具有经配置以与例如列1、列3、列5及列7的对应列耦合的选择线1、3、5及7。在各种实施例中,结合图7描述的列选择电路系统7194可表示由多路复用器体现且包含在所述多路复用器中的功能性的至少部分,所述多路复用器例如,八(8)路多路复用器、十六(16)路多路复用器等。
控制器740可耦合到列选择电路系统7194以控制选择线(例如,选择线0)来存取存储在感测放大器、计算组件中及/或存在于所述对互补数字线(例如,当经由来自选择线0的信号激活选择晶体管7196-1及7196-2时的7168-1及7168-2)上的数据值。激活选择晶体管7196-1及7196-2(例如,如由控制器540引导)使得能够耦合感测放大器7170-0、计算组件7148-0及/或列0(7192-0)的互补数字线7168-1及7168-2,以将数字线0及数字线0*上的数据值移动到共享I/O线7144。举例来说,移动的数据值可为来自存储(高速缓存)于感测放大器7170-0及/或计算组件7148-0中的特定行319的数据值。来自列0到7中的每一个的数据值可类似地由激活适当选择晶体管的控制器540选择。
此外,启用(例如,激活)选择晶体管(例如,选择晶体管7196-1及7196-2)可使得特定感测放大器及/或计算组件(例如,分别为7170-0及/或7148-0)能够与共享I/O线7144耦合,使得可将由放大器及/或计算组件存储的数据值移动到共享I/O线7144(例如,放置于所述共享I/O线上及/或传送到所述共享I/O线)。在一些实施例中,一次选择一个列(例如,列7192-0)以耦合到特定共享I/O线7144来移动(例如,复制、传送及/或输送)所存储的数据值。在图7的实例配置中,共享I/O线7144被说明为共享、差分I/O线对(例如共享I/O线及共享I/O线*)。因此,选择列0(7192-0)可得到来自行(例如,行719)的及/或如存储于与互补数字线7168-1及7168-2相关联的感测放大器及/或计算组件中的两个数据值(例如,具有0及/或1的值的两个位)。可与共享差分I/O线7144的每个共享差分I/O对(例如共享I/O及共享I/O*)并行地输入这些数据值。
图8A是说明通过在阵列525本地的数据路径中的多个共享I/O线8144耦合到具有多个逻辑条8152-1、…、8152-N的计算单元8198的阵列525(图5A)的多个区段8150中的一个的框图。在图8A的实例实施例中,展示具有多个子阵列8145-1、…、8145-32的存储体区段8150(例如,存储体象限)。在图8A中,在存储体象限8150中说明三十二(32)个子阵列。然而,实施例不限于此实例。此实例展示具有16K列的存储体区段,所述列由十六(16)多路复用到共享I/O线8144。因此,将16K列多路复用到1K共享I/O线8144,使得每16个列可提供可作为1024(1K)个位的群组并行地移动到计算单元8198的数据值。此处,共享I/0线8144将1K位宽数据路径提供到计算单元8198。
在图8A的实例中,每个逻辑条8152-1、…、8152-N具有多个计算组件8148-1、…、8148-Z,如本文已结合图6的感测电路系统6138所描述相同。在一些实施例中,多个逻辑条8152-1、…、8152-N中的每一个经配置以使用多个计算组件8148-1、…、8148-Z执行计算功能。在一些实施例中,多个逻辑条8152-1、…、8152-Z中的每一个可使用多个计算组件8148-1、…、8148-Z执行不同逻辑操作。举例来说,在一些实施例中,多个逻辑条8152-1、…、8152-Z中的至少一个可经配置以执行长移位加速器操作,例如,八(8)六十四(64)位桶形移位器操作。此实例还可在八(8)位信息块中提供部分重新排序,并且可在具有8位交叉条的256位信息块中支持聚集/分散操作。在另一实例中,在一些实施例中,多个逻辑条8152-1、…、8152-Z中的至少一个可经配置以执行Kogge-Stone加速以生成部分超前进位以加速水平加法。在另一实例中,在一些实施例中,多个逻辑条8152-1、…、8152-Z中的至少一个可经配置以执行“信息块”数学加速。此实例可在小的位群组(例如,4或8位信息块)中提供竖直模式加速。在另一实例中,在一些实施例中,多个逻辑条8152-1、…、8152-Z可经配置以充当显式掩码寄存器,以实施如将由编译器使用的布尔型操作。如本文中所使用,“信息块”预期参考比寻址的数据行更小的位长度,例如256位信息块(在128字节可寻址行内)可寻址以使位宽度与特定接口匹配。这可能需要匹配16K+列存储器阵列的256位接口。
根据实施例,与存储体区段相关联的控制器540(图5A)可执行微码指令以结合多个子阵列8145-1、…、8145-32当中的特定存取行从每一多路复用列并行地引导1K位数据值移动到计算单元8198中的特定逻辑条8152-1、…、8152-N的特定计算组件8148-1、…、8148-Z。
根据一些实施例,蝶形网络8202可用于将1K位数据值连接到多个逻辑条8152-1、…、8152-N中的相应一个逻辑条中的多个计算组件8148-1、…、8148-Z中的相应一个计算组件。作为实例但不作为限制,1K位数据值可并行于与4个象限中的每一个中的32个子阵列8145-1、…、8145-32中的每一个相关联的逻辑条而移动到存储体区段8150。在此实例中,具有1K计算组件8148-1、…、8148-Z的128个逻辑条8152-1、…、8152-N各自可包含在计算单元8198中。加载到计算单元8198的逻辑条8152-1、…、8152-N中的多个计算组件8148-1、…、8148-Z的数据值可根据来自控制器540(图1A)的微码指令操作,以对数据值执行操作,例如,AND、OR、NOR、XOR、加法、减法、乘法、除法等,如与本文中结合图6的感测电路系统6138所描述相同。如上所述,一旦将数据值加载到计算单元8198,就可根据由控制器540(图5A)执行的微码指令快得多地(例如,以大致2纳秒(ns)的速度)在计算单元中控制计算操作,而不必将数据值移动回阵列525(图5A)的行中。举例来说,与启动及存取阵列525(图5A)中的行可能需要的实例时间(例如,大致60纳秒(ns))相比,可使用计算单元8198以快得多的速度执行计算操作。
在图8A的实例实施例中,多个共享I/O线8144的数据路径中的计算单元8198中的多个计算组件8148-1、…、8148-Z及/或逻辑条8152-1、…、8152-N的间距等于共享I/O线的数据路径的间距。根据实施例,数据路径的间距为例如数字线到存储器单元的阵列525(图5A)的间距的函数,倍数(2×、4×等)。举例来说,多个计算组件8148-1、…、8148-Z及/或逻辑条8152-1、…、8152-N的间距为数字线到存储器单元阵列的间距的整数倍。
图8B是说明通过阵列本地的数据路径中的多个共享I/O线耦合到计算单元中的多个计算组件的多个阵列的框图实例,其中计算组件的间距等于共享I/O线的数据路径的间距且为数字线到阵列的间距的倍数。图8B的实例说明多个阵列,例如,阵列的存储体象限8150-1、8150-2区段等,其可具有由数字线8168存取的存储器单元。
在图8B的实例中,展示根据数字线制造过程的给定特征尺寸(设计规则)的间距为大约十六千(16K)数字线8168宽的存储体象限8150-1及8150-2。还展示多个共享I/O线8144-1、8144-2、…、8144-Z,其可具有作为数字线制造过程的给定特征尺寸(设计规则)的函数,例如倍数的不同间距。在图8B的实例中,多个共享I/O线8144-1、8144-Z的数据路径的间距比数字线8168的间距大大致十六(16)倍。因此,在此实例中,展示分别通过16:1多路复用器(例如,8204-1、…、8204-Z及8206-1、…、8206-Z)多路复用到16K数字线8168的大约一千(1K)共享I/O线8144-1、…、8144-Z。然而,实施例不限于此处提供的数字实例,并且可将更多或更少数字线8168多路复用到多个共享I/O线8144-1、…、8144-Z。举例来说,共享I/O线8144-1、…、8144-Z的间距可为除如由数字线制造过程的给定特征尺寸(设计规则)设定的数字线8168的间距的16倍(例如,16×)以外的倍数。
如图8B的实例中所示,计算组件(例如,多个计算组件8148-1、…、8148-Z及8149-1、…、8149-Z之中)可分别与每一共享I/O线8144-1、…、8144-Z相关联。多个计算组件8148-1、…、8148-Z及8149-1、…、8149-Z可在分别展示为8198-1及8198-2的计算单元的多个逻辑条(例如,图8A中所示的8152-1、8152-2、…、8152-N)内。如图8B的实例中所示,例如与每个共享I/O线8144-1、…、8144-Z相关联的多个计算组件8148-1、…、8148-Z及8149-1、…、8149-Z当中的计算组件的间距可等于共享I/O线8144-1、…、8144-Z的数据路径且因此为数字线8168到阵列(例如,8150-1及8150-2)的间距的十六倍(16×)。根据各种实施例,由于共享I/O线8144-1、…、8144-Z的数据路径中的计算组件8148-1、…、8148-Z及8149-1、…、8149-Z不限于与数字线8168的间距的一对一(例如,1倍)关系,所以计算组件8148-1、…、8148-Z及8149-1、…、8149-Z不限于阵列8150-1及8150-2的“竖直”对准,且在此实例中,可为大十六倍(16×)。因此,在共享I/O线8144-1、…、8144-Z的数据路径中的计算组件8148-1、…、8148-Z及8149-1、…、8149-Z可用于对存储于其中的数据值执行更稳固的一组逻辑操作(例如,通过具有较大占用面积及空间),例如上述长移位加速度,同时仍靠近阵列8150-1及8150-1并且没有在阵列或存储器裸片的外围区域之外。
虽然已在本文中示出并描述了具体实施例,但本领域的一般技术人员将了解,经计算以实现相同结果的布置可取代所示出的具体实施例。本公开意图覆盖本公开的各种实施例的修改或变化。应理解,以说明方式而非限制方式进行了以上描述。在查阅以上描述后,以上实施例及本文未具体描述的其它实施例的组合对于本领域的技术人员来说将显而易见。本公开的各种实施例的范围包含其中使用以上结构及方法的其它应用。因此,本公开的各种实施例的范围应该参考所附权利要求书以及此权利要求书所授予的等效物的完整范围来确定。
在前述具体实施方式中,出于精简本公开的目的而将各种特征一起分组在单个实施例中。本公开的此方法不应被理解为反映本公开的所公开实施例必须比在每项权利要求中明确叙述那样使用更多特征的意图。实际上,如所附权利要求书所反映,本发明的主题在于单个所公开实施例的不到全部的特征。因此,以下权利要求书特此并入到具体实施方式中,其中每一项权利要求独自作为单独实施例。
Claims (28)
1.一种存储器装置,其包括:
多个存储器阵列;
多个寄存器,其经配置以使设备能够在人工智能模式下操作以执行人工智能操作;及
人工智能(AI)加速器,其经配置以使用存储于所述多个存储器阵列中的数据执行所述人工智能操作。
2.根据权利要求1所述的设备,其中所述多个寄存器包含写入到特定状态以使所述设备执行人工智能操作的寄存器。
3.根据权利要求1至2中任一权利要求所述的设备,其中所述多个寄存器包含识别神经元在所述人工智能操作期间使用的所述多个存储器阵列中的位置的寄存器。
4.根据权利要求1至2中任一权利要求所述的设备,其中所述多个寄存器包含识别所述人工智能操作的输入在所述多个存储器阵列中的位置的寄存器。
5.根据权利要求1至2中任一权利要求所述的设备,其中所述多个寄存器包含识别所述人工智能操作的输出在所述多个存储器阵列中的位置的寄存器。
6.根据权利要求1至2中任一权利要求所述的设备,其中所述多个寄存器包含识别存储于在所述人工智能操作期间使用的所述多个存储器阵列中的多个激活函数的寄存器。
7.根据权利要求1至2中任一权利要求所述的设备,其中所述多个寄存器包含识别在所述人工智能操作期间使用的临时数据在所述多个存储器阵列中的位置的寄存器。
8.根据权利要求1至2中任一权利要求所述的设备,其中所述多个寄存器包含识别在所述人工智能操作期间使用的偏置数据在所述多个存储器阵列中的位置的寄存器。
9.根据权利要求1至2中任一权利要求所述的设备,其中所述多个寄存器包含识别所述人工智能操作的状态的寄存器。
10.一种系统,其包括:
主机;及
存储器装置,其耦合到所述主机,其中所述存储器装置包含多个存储器阵列及控制器,所述控制器经配置以:
从所述主机接收命令以使所述存储器装置能够使用存储于所述多个存储器阵列中的数据执行人工智能(AI)操作;
使所述存储器装置能够通过在寄存器中写入指示符来执行所述人工智能操作。
11.根据权利要求10所述的系统,其中所述指示符是0xAA以阻止存取所述寄存器,并且其中多个AI寄存器用于执行所述人工智能操作。
12.根据权利要求10所述的系统,其中将AI寄存器的第一位编程到第一状态以开始所述人工智能操作。
13.根据权利要求11所述的系统,其中将AI寄存器的第二位编程到第一状态,以指示所述多个AI寄存器有效。
14.根据权利要求10所述的系统,其中AI寄存器的第三位到第一状态以指示所述人工智能操作已开始。
15.根据权利要求10所述的系统,其中将AI寄存器的第四位编程到第一状态以重新开始所述AI操作。
16.根据权利要求10所述的系统,其中将AI的第五位编程到第一状态以退出所述AI操作。
17.一种设备,其包括:
多个存储器阵列;
控制器;及
多个人工智能(AI)寄存器,其中所述多个人工智能寄存器定义用于由所述设备执行的人工智能操作的输入、输出、第一临时块、第二临时块、神经网络、多个激活函数、多个偏置值。
18.根据权利要求17所述的设备,其中所述多个人工智能寄存器包含定义所述输入的大小、所述输入的数目,及所述输入的初始及最后一个地址的第一数目个寄存器。
19.根据权利要求17所述的设备,其中所述多个人工智能寄存器包含定义所述输出的大小、所述输入的数目,及所述输入的初始及最后一个地址的第二数目个寄存器。
20.根据权利要求17所述的设备,其中所述多个人工智能寄存器包含启用所述多个存储器阵列中的存储体以在所述人工智能操作期间使用的第三数目个寄存器。
21.根据权利要求17所述的设备,其中所述多个人工智能寄存器包含定义所述神经网络中的矩阵的大小、所述神经网络中的神经元的初始及最后一个地址、所述神经网络中的多个层的第四数目个寄存器。
22.根据权利要求17所述的设备,其中所述多个人工智能寄存器包含定义所述第一临时块的大小,及所述第一临时块的初始及最后一个地址的第五数目个寄存器。
23.根据权利要求17所述的设备,其中所述多个人工智能寄存器包含定义所述第二临时块的大小,及所述第二临时块的初始及最后一个地址的第六数目个寄存器。
24.根据权利要求17所述的设备,其中所述多个人工智能寄存器包含定义激活函数的开始及结束地址,及所述激活函数的分辨率的第七数目个寄存器。
25.根据权利要求17所述的设备,其中所述多个人工智能寄存器包含定义所述多个偏置值的大小、所述多个偏置值的开始及结束最后一个地址,及偏置值的数目的第八数目个寄存器。
26.一种方法,其包括:
将第一人工智能(AI)寄存器的第一位编程到特定状态,其中在所述特定状态下的所述第一位使设备能够在AI模式下操作并且执行人工智能操作;及
将所述第一AI寄存器的第二位编程到特定状态,其中在所述特定状态下的所述第二位开始AI操作。
27.根据权利要求26所述的方法,其进一步包含将所述第一AI寄存器的第三位编程到特定状态,其中在所述特定状态下的所述第三位重新开始所述AI操作。
28.根据权利要求26所述的方法,其进一步包含将所述第一AI寄存器的第四位编程到特定状态,其中在所述特定状态下的所述第四位退出所述AI模式。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/553,452 US11004500B2 (en) | 2019-08-28 | 2019-08-28 | Memory with artificial intelligence mode |
US16/553,452 | 2019-08-28 | ||
PCT/US2020/048067 WO2021041586A1 (en) | 2019-08-28 | 2020-08-27 | Memory with artificial intelligence mode |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114341981A true CN114341981A (zh) | 2022-04-12 |
CN114341981B CN114341981B (zh) | 2023-05-26 |
Family
ID=74681875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080060349.8A Active CN114341981B (zh) | 2019-08-28 | 2020-08-27 | 具有人工智能模式的存储器 |
Country Status (4)
Country | Link |
---|---|
US (3) | US11004500B2 (zh) |
EP (1) | EP4022522A4 (zh) |
CN (1) | CN114341981B (zh) |
WO (1) | WO2021041586A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11004500B2 (en) * | 2019-08-28 | 2021-05-11 | Micron Technology, Inc. | Memory with artificial intelligence mode |
US11436071B2 (en) * | 2019-08-28 | 2022-09-06 | Micron Technology, Inc. | Error control for content-addressable memory |
US11455232B2 (en) * | 2019-08-28 | 2022-09-27 | Micron Technology, Inc. | Debug operations on artificial intelligence operations |
US20220075659A1 (en) * | 2021-11-18 | 2022-03-10 | Intel Corporation | Runtime configurable register files for artificial intelligence workloads |
US11782683B1 (en) * | 2022-03-24 | 2023-10-10 | International Business Machines Corporation | Variable replacement by an artificial intelligence accelerator |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180075344A1 (en) * | 2016-09-09 | 2018-03-15 | SK Hynix Inc. | Neural network hardware accelerator architectures and operating method thereof |
CN108133269A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 具有可作为高速缓存存储器或神经网络单元存储器操作的存储器阵列的处理器 |
US20190114538A1 (en) * | 2017-10-17 | 2019-04-18 | Xilinx, Inc. | Host-directed multi-layer neural network processing via per-layer work requests |
US20190171941A1 (en) * | 2017-12-01 | 2019-06-06 | Abee Technology Co., Ltd. | Electronic device, accelerator, and accelerating method applicable to convolutional neural network computation |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5313586A (en) * | 1992-03-06 | 1994-05-17 | Intel Corporation | Co-processor de-coupling bus structure |
US6504780B2 (en) * | 1998-10-01 | 2003-01-07 | Monolithic System Technology, Inc. | Method and apparatus for completely hiding refresh operations in a dram device using clock division |
US6928590B2 (en) * | 2001-12-14 | 2005-08-09 | Matrix Semiconductor, Inc. | Memory device and method for storing bits in non-adjacent storage locations in a memory array |
US8395950B2 (en) * | 2010-10-15 | 2013-03-12 | Taiwan Semiconductor Manufacturing Co., Ltd. | Memory device having a clock skew generator |
US9965208B1 (en) | 2012-02-23 | 2018-05-08 | Micron Technology, Inc. | Memory device having a controller to enable and disable mode control circuitry of the controller |
US11157800B2 (en) | 2015-07-24 | 2021-10-26 | Brainchip, Inc. | Neural processor based accelerator system and method |
US11216722B2 (en) | 2016-12-31 | 2022-01-04 | Intel Corporation | Hardware accelerator template and design framework for implementing recurrent neural networks |
US10810492B2 (en) | 2017-01-27 | 2020-10-20 | Hewlett Packard Enterprise Development Lp | Memory side acceleration for deep learning parameter updates |
KR102534917B1 (ko) | 2017-08-16 | 2023-05-19 | 에스케이하이닉스 주식회사 | 신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
US11157064B2 (en) | 2017-09-28 | 2021-10-26 | Intel Corporation | Techniques to dynamically enable and disable accelerator devices in compute environments |
US10347317B2 (en) * | 2017-10-05 | 2019-07-09 | Gyrfalcon Technology Inc. | Method of self-testing and reusing of reference cells in a memory architecture |
KR20190043411A (ko) | 2017-10-18 | 2019-04-26 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치를 포함하는 컴퓨팅 시스템, 그리고 스토리지 장치의 동작 방법 |
US10509846B2 (en) | 2017-12-13 | 2019-12-17 | Intel Corporation | Accelerator for processing data |
US11373088B2 (en) | 2017-12-30 | 2022-06-28 | Intel Corporation | Machine learning accelerator mechanism |
CN112470139B (zh) | 2018-01-08 | 2022-04-08 | 阿特拉佐有限公司 | 用于数据处理装置、系统和方法的紧凑算术加速器 |
US10990524B2 (en) * | 2018-10-11 | 2021-04-27 | Powerchip Semiconductor Manufacturing Corporation | Memory with processing in memory architecture and operating method thereof |
US11626148B2 (en) * | 2019-08-28 | 2023-04-11 | Micron Technology, Inc. | Activation functions for artificial intelligence operations |
US11004500B2 (en) * | 2019-08-28 | 2021-05-11 | Micron Technology, Inc. | Memory with artificial intelligence mode |
US11017842B2 (en) * | 2019-08-29 | 2021-05-25 | Micron Technology, Inc. | Copy data in a memory system with artificial intelligence mode |
US20230058282A1 (en) * | 2021-08-19 | 2023-02-23 | Micron Technology, Inc. | Memory device overhead reduction using artificial intelligence |
US20230133690A1 (en) * | 2021-11-01 | 2023-05-04 | Salesforce.Com, Inc. | Processing forms using artificial intelligence models |
-
2019
- 2019-08-28 US US16/553,452 patent/US11004500B2/en active Active
-
2020
- 2020-08-27 CN CN202080060349.8A patent/CN114341981B/zh active Active
- 2020-08-27 EP EP20858129.8A patent/EP4022522A4/en active Pending
- 2020-08-27 WO PCT/US2020/048067 patent/WO2021041586A1/en unknown
-
2021
- 2021-05-07 US US17/314,511 patent/US11605420B2/en active Active
-
2023
- 2023-03-09 US US18/119,559 patent/US11922995B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180075344A1 (en) * | 2016-09-09 | 2018-03-15 | SK Hynix Inc. | Neural network hardware accelerator architectures and operating method thereof |
CN108133269A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 具有可作为高速缓存存储器或神经网络单元存储器操作的存储器阵列的处理器 |
US20190114538A1 (en) * | 2017-10-17 | 2019-04-18 | Xilinx, Inc. | Host-directed multi-layer neural network processing via per-layer work requests |
US20190171941A1 (en) * | 2017-12-01 | 2019-06-06 | Abee Technology Co., Ltd. | Electronic device, accelerator, and accelerating method applicable to convolutional neural network computation |
Non-Patent Citations (1)
Title |
---|
MOHSEN IMANI ETC.: "RAPIDNN:In-Memory Deep Neural Network Acceleration Framework", 《百度学术》 * |
Also Published As
Publication number | Publication date |
---|---|
EP4022522A4 (en) | 2023-08-09 |
WO2021041586A1 (en) | 2021-03-04 |
EP4022522A1 (en) | 2022-07-06 |
US11922995B2 (en) | 2024-03-05 |
US20230215490A1 (en) | 2023-07-06 |
US20210065767A1 (en) | 2021-03-04 |
CN114341981B (zh) | 2023-05-26 |
US20210264963A1 (en) | 2021-08-26 |
US11004500B2 (en) | 2021-05-11 |
US11605420B2 (en) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11614878B2 (en) | Apparatuses and methods for data movement | |
CN108885887B (zh) | 用于数据移动的设备及方法 | |
US10929283B2 (en) | Apparatuses and methods for transferring data | |
US20200364138A1 (en) | Apparatuses and methods for write address tracking | |
CN114341981B (zh) | 具有人工智能模式的存储器 | |
US10878856B2 (en) | Data transfer between subarrays in memory | |
US20230176739A1 (en) | Artificial intelligence accelerator | |
US20230253020A1 (en) | Activation functions for artificial intelligence operations | |
US20230015438A1 (en) | Debug operations on artificial intelligence operations |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231018 Address after: Illinois, America Patentee after: North Star Franchise Group Co.,Ltd. Address before: Idaho Patentee before: MICRON TECHNOLOGY, Inc. |
|
TR01 | Transfer of patent right |