CN115943462A - 存储器阵列下的边缘计算组件 - Google Patents
存储器阵列下的边缘计算组件 Download PDFInfo
- Publication number
- CN115943462A CN115943462A CN202180049889.0A CN202180049889A CN115943462A CN 115943462 A CN115943462 A CN 115943462A CN 202180049889 A CN202180049889 A CN 202180049889A CN 115943462 A CN115943462 A CN 115943462A
- Authority
- CN
- China
- Prior art keywords
- operations
- results
- memory array
- compute components
- compute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/002—Specific input/output arrangements not covered by G06F3/01 - G06F3/16
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Dram (AREA)
Abstract
设备和方法可以涉及在存储器阵列中实施边缘计算组件。计算组件可以在存储器阵列下实施。由于计算组件使用的管芯空间,在存储器阵列下实施所述计算组件可以限制对所述计算组件的控制访问。所述计算组件的一部分(例如,所述边缘上的计算组件)可以具有对所述计算组件的其余部分不可用的控制访问。
Description
技术领域
本公开总体上涉及存储器,并且更具体地涉及与在阵列下实施边缘计算组件相关联的设备和方法。
背景技术
存储器装置通常作为内部半导体集成电路设置于计算机或其它电子装置中。存在许多不同类型的存储器,包含易失性存储器和非易失性存储器。易失性存储器可能需要电力来维护其数据,并且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)等。非易失性存储器可以通过在断电时保留所存储的数据来提供持久数据,并且可以包含NAND闪速存储器、NOR闪速存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)和电阻可变存储器(如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)和磁阻式随机存取存储器(MRAM)等)。
存储器还用作各种电子应用的易失性数据存储区和非易失性数据存储区,所述各种电子应用包含但不限于个人计算机、便携式记忆棒、数码相机、蜂窝电话、便携式音乐播放器(如MP3播放器)、电影播放器以及其它电子装置。可以将存储器胞元布置成阵列,其中所述阵列用于存储器装置中。
存储器阵列可以包含耦接到读出线和选择线的多个存储器胞元。可以通过在包含读出放大器的读出电路系统中锁存存储在存储器胞元中的数据值来读取存储器胞元。
附图说明
图1是根据本公开的多个实施例的呈包含存储器装置的计算系统的形式的设备的框图。
图2是根据本公开的多个实施例的呈包含计算组件的存储器装置的形式的设备的框图。
图3是根据本公开的多个实施例的呈包含计算组件的存储器装置的形式的设备的框图。
图4展示了根据本公开的多个实施例的用于在存储器中执行操作的方法的示例流程图。
图5展示了其中可以执行用于使机器执行本文所讨论的各种方法的指令集的计算机系统的示例机器。
具体实施方式
本公开包含涉及在存储器阵列下实施边缘计算组件的设备和方法。存储器装置可以将数据存储在存储器胞元中。存储器胞元可以组织成存储器阵列。计算组件可以在存储器阵列下实施。
基于计算组件可用的大小和/或计算组件的控制电路系统,在存储器阵列下实施的计算组件可能具有限制。根据本公开的至少一个实施例,计算组件可以直接地在存储器阵列下和存储器阵列边缘附近,或者间接地在存储器阵列下和存储器阵列外围中(存储器阵列边缘附近,但不直接地在其下)实施。此类实施例可以提供比直接地在存储器阵列下和存储器阵列内部(远离存储器阵列的边缘)实施的计算组件提供的更大的访问。在存储器阵列下和存储器阵列边缘附近或在存储器阵列外围上实施的计算组件可能没有在存储器阵列下和内部实施的计算组件经历的大小限制。
如本文所使用的,提供对计算组件的访问可以包含提供控制访问。直接地在存储器阵列下和存储器阵列边缘附近或间接地在存储器阵列下和存储器阵列外围中实施的计算组件可以比在存储器阵列下和内部实施的计算组件具有更大的控制访问。可以控制直接地在存储器阵列下和存储器阵列边缘附近或间接地在存储器阵列下和存储器阵列外围中实施的计算组件以执行比在存储器阵列下和内部实施的计算组件更大量的操作。控制访问比其它计算组件少的计算组件可以描述为具有控制限制。
实施具有不同控制限制和/或大小限制的不同计算组件提供了不同地利用不同计算组件的能力。与不同计算组件相比,此类实施例可以允许与具有控制限制的计算组件相比具有更大控制访问的不同计算组件执行的更多种类的操作。实施具有不同控制限制和/或大小限制的计算组件提供了减少由第一数量的计算组件在第二数量的计算组件处处理的数据的能力。减少数据可以包含由第二数量的计算组件输出比由第一数量的计算组件输出的位数量少的位数量。
图1是根据本公开的多个实施例的呈包含存储器装置103的计算系统100的形式的设备的框图。如本文所使用的,例如,存储器装置103、存储器阵列110和/或主机102也可以分别被认为是“设备。
在此实例中,计算系统100包含主机102,所述主机通过接口104耦接到存储器装置103。在各种其它类型的系统中,计算系统100可以是个人膝上型计算机、台式计算机、数码相机、移动电话、存储卡读取器或物联网(IoT)启用的装置。主机102可以包含能够访问存储器102的多个处理资源(例如,一或多个处理器、微处理器或某种其它类型的控制电路系统)。计算系统100可以包含单独的集成电路,或者主机102和存储器装置103两者均可以位于同一集成电路上。例如,主机102可以是包括多个存储器装置103的存储器系统的系统控制器,其中系统控制器通过如中央处理单元(CPU)等另一个处理资源来提供对相应存储器装置103的访问。
在图1所示出的实例中,主机102负责执行操作系统(OS)和/或可以(例如,通过控制电路系统105从存储器装置103)加载到所述操作系统的各种应用。可以通过从主机102向存储器装置103提供访问命令以访问包括OS和/或各种应用的数据来从存储器装置103加载OS和/或各种应用。主机102还可以通过向存储器装置103提供访问命令以检索在OS和/或各种应用的执行中所利用的所述数据来访问由OS和/或各种应用所利用的数据。
为了清楚起见,已经将计算系统100简化为集中于与本公开特别相关的特征。存储器阵列110可以是例如DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND闪存阵列和/或NOR闪存阵列。阵列110可以包括以通过存取线(其在本文中可以被称为字线或选择线)耦接的行和通过读出线(其在本文中可以被称为数位线或数据线)耦接的列布置的存储器胞元。尽管存储器阵列110被示出为单个存储器阵列,但是存储器阵列110可以表示被布置成组的存储器装置103的多个存储器阵列。
存储器装置103包含用于锁存在接口104上提供的地址信号的地址电路系统106。接口可以包含例如采用合适的协议的物理接口(例如,数据总线、地址总线和命令总线或组合的数据/地址/命令总线)。此类协议可以是定制的或专有的,或接口104可以采用如外围组件互连快速(PCIe)、Gen-Z互连、加速器高速缓存相干互连(CCIX)等标准化协议。通过行解码器108和列解码器112接收并解码地址信号以访问存储器阵列110。可以通过使用读出电路系统111读出读出线上的电压和/或电流变化来从存储器阵列110读取数据。读出电路系统111可以耦接到存储器阵列110。每个存储器阵列和对应的读出电路系统可以构成一组存储器装置103。读出电路系统111可以包括例如读出放大器,所述读出放大器可以读取并锁存来自存储器阵列110的一页(例如,一行)数据。I/O电路系统107可以用于通过接口104与主机102进行双向数据通信。读取/写入电路系统113用于将数据写入存储器阵列110或从存储器阵列110读取数据。作为实例,电路系统113可以包括各种驱动器、锁存器电路系统等。
控制电路系统105对由主机102提供的信号进行解码。信号可以是由主机102提供的命令。这些信号可以包含芯片启用信号、写入启用信号和地址锁存信号,所述信号用于控制在存储器阵列110上执行的操作,包含数据读取操作、数据写入操作和数据擦除操作,以及如逻辑操作等对存储器阵列110执行的其它逻辑操作。在各个实施例中,控制电路系统105负责执行来自主机102的指令。控制电路系统105可以包括状态机、定序器和/或某种其它类型的控制电路系统,所述控制电路系统可以以硬件、固件或软件或这三种的任何组合的形式实施。在一些实例中,主机102可以是存储器装置103外部的控制器。例如,主机102可以是耦接到计算装置的处理资源的存储器控制器。可以通过数据线116向存储器阵列110和/或从存储器阵列提供数据。
计算组件109和计算组件115可以在存储器阵列110“下”实施。尽管被展示为单个块,计算组件109和计算组件115中的每个计算组件表示多个计算组件。为了便于在图1中说明,计算组件115被展示为位于读出电路系统111之下,然而实施例不限于此。计算组件115可以直接地在存储器阵列110下和存储器阵列110的附近和边缘或计算组件115可以间接地在存储器阵列110下和存储器阵列110的外围上,如直接地在读出电路系统111下或存储器阵列110的外围中的另一位置中。如本文所使用的,间接地在存储器阵列110下描述了存储器阵列110外围下的区域。存储器阵列110外围下的区域也可以称为外围,如计算组件109和/或115的外围。计算组件109和计算组件115关于图2被更详细地展示和描述。计算组件109和计算组件115可以实施为互补金属-氧化物-半导体(CMOS)。存储器阵列110可以形成在计算组件109和/或计算组件115(例如,CMOS)上。例如,存储器阵列110的底表面可以接触和/或耦接到计算组件109和/或计算组件115的顶表面。尽管使用了术语“下”、“底”和“顶”,但此类术语是说明性的,并且不旨在限制存储器阵列110和计算组件109和/或计算组件115的朝向。
计算组件109和/或计算组件115可以包括逻辑。所述逻辑可以被配置成执行操作。在各种实例中,计算组件109中的每个计算组件的逻辑大小可以小于计算组件115中的每个计算组件的大小。由计算组件109和计算组件115执行的操作也可以基于用于实施计算组件109和计算组件115的逻辑的大小而不同。例如,计算组件115可以实施需要状态数据的操作,而计算组件109可以实施不利用状态数据的操作。在没有状态数据的情况下执行的操作也可以称为线性操作或线性执行的操作。更通常地,由于其较大的大小,较大的计算组件115可以被配置成执行比计算组件109更复杂的操作。相反地,尽管计算组件109中的每个计算组件可能小于计算组件115中的每个计算组件,计算组件109的数量可能比计算组件115的数量更多,因为计算组件109位于存储器阵列110的大部分下方,这提供了比存储器阵列110的边缘或存储器阵列110的外围更大的面积。
计算组件115可以例如包含可以保持状态的锁存器。计算组件109可能缺乏可以保持状态的如锁存器等逻辑。此外,假定计算组件115可以在存储器阵列110的边缘下,与计算组件109相比,可以为计算组件115提供更大的控制访问。如本文所使用的,控制访问描述了提供给计算组件的控制线和/或控制信号,所述控制线和/或控制信号可以用于控制计算组件。计算组件115可以通过比计算组件109更多的控制线接收控制信号。因此,可以说计算组件115比计算组件109具有更大的控制访问。
同样,计算组件115可以被称为在存储器阵列110的边缘下。假设存储器阵列110在计算组件109和/或计算组件115之上实施,计算组件115可以在存储器阵列110的边缘下实施,因为计算组件109和存储器阵列110和/或读出电路系统111共享相同的管芯空间。计算组件115在由存储器阵列110、读出电路系统111和/或计算组件共享的管芯空间的边缘上实施。尽管计算组件115被示出为在存储器阵列110下实施,但是计算组件115也可以在存储器阵列110、读出电路系统109和/或读出电路系统111所使用的管芯空间外部实施。
计算组件109可以耦接到存储器阵列110的读出线、存储器阵列110的选择线和/或存储器阵列110的存储器胞元。读取存储器阵列110的存储器胞元可以将存储器胞元存储的电荷读取到存储器阵列的读出线上。存储器阵列的读出线可以向读出电路系统111和/或计算组件109和/或115提供包括指示由存储器胞元存储的电荷(或电荷本身)的信号的输出。例如,读出线可以向计算组件109提供输出而不向读出电路系统111提供输出。读出线可以可替代地向读出电路系统111提供输出而不向计算组件109和/或115提供输出。读出线还可以向读出电路系统111和计算组件109和/或115提供输出。
假定计算组件109耦接到存储器阵列110的读出线、选择线和/或存储器胞元,计算组件109可以被称为与存储器阵列110的选择线、读出线和/或存储器胞元成一定间距。在各种实例中,计算组件109中的每个计算组件可以耦接到多条读出线、选择线和/或存储器胞元。耦接到多条读出线、选择线和/或存储器胞元为计算组件提供了在计算组件处接收多个输出以执行线性操作的能力。如本文所使用的,线性操作包含可以在不保持状态的情况下执行的操作。
计算组件115可以接收来自计算组件109的输出。计算组件115可以通过执行一或多个操作来减少由计算组件109提供的输出。例如,来自计算组件115的每个计算组件可以接收来自两列或两列以上计算组件109的输出。计算组件115可以从例如两个输入生成单个输出,使得计算组件115提供2∶1的减少。计算组件115可以提供不同的减少因子,如4∶1或8∶1等。计算组件115可以与存储器阵列103的输入/输出线116成一定间距。
图2是根据本公开的多个实施例的呈包含阵列计算组件209-11至209-LM和边缘计算组件215-1至215-R的存储器装置203的形式的设备的框图。图2包含存储器装置203、状态机(SM)220和数字控制信号221。存储器装置203包含阵列计算组件209-11至209-LM,称为阵列计算组件209。存储器装置203还包含边缘计算组件215-1至215-R,称为边缘计算组件215。边缘计算组件215-1至215-R被示出为在管芯区域223外部实施,阵列计算组件209-11至209-LM和对应的存储器阵列在所述管芯区域上实施。
边缘计算组件215可以减少阵列计算组件209的输出。例如,边缘计算组件215-1可以从阵列计算组件209-11和209-12或阵列计算组件209-L1和209-L2接收两个输入。边缘计算组件215-1可以对两个输入执行操作以生成可以通过输入/输出线提供的单个输出。在各种实例中,操作可以包含逻辑操作。
使用边缘计算组件215-1对两个输入执行操作以生成单个输出可以包含累加两个输入,其中两个输入是由阵列计算组件209执行的多个不同操作的结果。累加两个输入可以包含组合两个输入,使得用于表示两个输入的位数量大于用于表示由边缘计算组件215-1执行的操作的输出的位数量。在各种实例中,用于表示到边缘计算组件215的输入的位数量可以等于存储器装置203的存储器阵列的读出线数量。
阵列计算组件209可以沿列和行对齐。例如,阵列计算组件209-11至209-1M、...、以及209-L1至209-LM沿行对齐,并且阵列计算组件209-11至209-L1、...、以及209-1M至209-LM沿列对齐。阵列计算组件209的列中的每一列可以耦接到边缘计算组件215。例如,阵列计算组件209-11至209-L1以及209-12至209-L1可以沿公共线耦接到边缘计算组件215-1。
阵列计算组件209可以在向边缘计算组件215-1提供数据之前执行一或多个操作。例如,阵列计算组件209-11至209-L1可以执行多个操作,如每个计算组件在向边缘计算组件215-1提供输出之前执行操作。
在不同的实例中,单个阵列计算组件209可以在向不同的边缘计算组件215提供输出之前执行一或多个操作。例如,可以读取对应的存储器阵列(例如,图1中的存储器阵列110)的存储器胞元以向阵列计算组件209-11提供数据。阵列计算组件209-11可以执行如确定数据是否大于阈值等操作。阵列计算组件209-11可以将操作的结果提供给边缘计算组件215-1,而不需要沿对应列的其余计算组件执行另外的操作。
阵列计算组件209-11和209-L1可以各自接收响应于被读取的对应的存储器胞元的数据值。阵列计算组件209-11和209-L1可以执行多个操作以生成可以提供给边缘计算组件215-1的单个输出。例如,阵列计算组件209-11可以执行多个操作并且阵列计算组件209-L1可以执行不同数量的操作。所述多个操作和不同数量的操作的结果可以是单个输出。
在至少一个实施例中,假定阵列计算组件209执行的操作是线性操作,则阵列计算组件209是线性的。例如,可以在不保留用于执行操作的状态数据的情况下执行由阵列计算组件209执行的操作。阵列计算组件209可以不保留由对应的存储器胞元提供的数据、由阵列计算组件209执行的操作生成的中间值、和/或由计算组件执行的操作的结果。
在各种实例中,假设每个操作阵列计算组件209的部分(例如,电路系统)不被使用超过一次,则阵列计算组件209可以线性地执行操作。例如,一旦阵列计算组件209-11执行了操作,阵列计算组件209-11不会执行另外的操作,直到边缘计算组件215-1执行一或多个操作。即,阵列计算组件209-11在边缘计算组件215-1执行一或多个操作之前执行第一操作。阵列计算组件209-1在边缘计算组件215-1执行所述一或多个操作之后执行第二操作。在边缘计算组件215不执行一或多个操作的情况下,阵列计算组件209-1不会连续执行两个操作。
边缘计算组件215可以从阵列计算组件209、不同的边缘计算组件215和/或它们自身接收输入。例如,边缘计算组件215可以以多种配置相互耦接。图2将边缘计算组件215展示为耦接到相邻的边缘计算组件215。例如,边缘计算组件215-1耦接到边缘计算组件215-2。边缘计算组件215-2耦接到边缘计算组件215-1和215-3(未示出)。边缘计算组件215-R耦接到边缘计算组件215-R-1。边缘计算组件215可以在它们自身之间共享数据和/或可以提供输出作为对它们自身的输入。例如,边缘计算组件215-1可以提供输出作为对其自身的输入。在至少一个实施例中,边缘计算组件215是非线性的,因为边缘计算组件215可以在它们自身之间提供反馈。
在各种实例中,阵列计算组件209被实施为模拟计算组件并且边缘计算组件215被实施为数字边缘计算组件215。图1的控制电路系统105可以向状态机220提供数字控制信号221。状态机220可以将数字控制信号221转换为模拟控制信号222-1至222-N,称为模拟控制信号222。状态机220可以是任何数量的状态机,如算法状态机(ASM)以及其它类型的状态机。
模拟控制信号222可以用于控制阵列计算组件209的操作。可以将模拟控制信号222提供给多个阵列计算组件209。例如,可以将模拟控制信号222提供给单独的计算组件、计算组件的行或计算组件的列。例如,可以将模拟控制信号222提供给阵列计算组件209-11至209-1M。
模拟控制信号222可以控制由阵列计算组件209实施的操作(例如,函数f(x))。可以利用与提供给状态机并转换为用于控制阵列计算组件209的模拟控制信号222的数字控制信号221不同数量的数字控制信号224来控制边缘计算组件215。尽管数字控制信号224被示出为提供给边缘计算组件215-1,但是数字控制信号224可以提供给边缘计算组件215中的任何边缘计算组件。
图3是根据本公开的多个实施例的呈包含计算组件315-1至315-R的存储器装置303的形式的设备的框图。称为组331的组331-11至331-ST中的每个组可以表示图1的单独存储器阵列110或可以共同表示图1的存储器阵列110。
组331中的每个组可以包括可以用于从组331的存储器胞元读取数据值的读出电路系统(例如,读出电路系统311-11至311-ST)。称为计算组件309的对应的计算组件309-11至309-ST可以在存储器胞元的组331下实施。称为计算组件315的计算组件315-1至315-R可以在组331和计算组件309的边缘下实施。
计算组件315可以耦接到组331和/或计算组件309。例如,计算组件315-11可以耦接到组331-11、331-21、...、和331-S1和/或计算组件309-11、309-21、...、309-S1。
计算组件315可以利用由组331和/或计算组件309提供的位来执行多个操作。例如,计算组件315-1可以减少由组331-11提供的位、由组331-21提供的位、...、和由组331-S1提供的位。位的减少可以类似于由图2中描述的边缘计算组件组合由阵列计算组件提供的位。计算组件315-1可以对来自组331-11、组331-21、...、和组331-S1的减少的位进行分组,并且提供分组和/或减少的位作为输出。
由计算组件315(例如,图1中的计算组件115)执行的操作可以包含逻辑操作,如合取操作(例如,“与”操作)、析取操作(例如,“或”操作)和/或双条件操作(例如,“或非”操作)以及其它逻辑操作。计算组件315还可以执行比较操作和算术操作,如加法操作、减法操作和/或乘法操作以及其它可能的操作。
在各种情况下,可以利用计算组件315来实施人工神经网络。例如,组331的存储器胞元可以存储权重和输入值。权重和输入值可以由计算组件309和/或计算组件315处理以生成前馈信号作为人工尖峰神经网络的一部分。在此类实例中,计算组件315可以确定所提供的输入是否大于阈值。基于确定输入大于阈值,计算组件315可以生成并且提供信号给它们自身、与计算组件315不同的计算组件、和/或存储器装置303内部或存储器装置303外部的不同计算组件。
在各种情况下,存储器装置303可以执行并行计算。例如,称为读出电路系统311的读出电路系统311-11至311-ST可以包含读出放大器和计算组件。读出电路系统311的计算组件可以不同于计算组件309和计算组件315。可以利用不同于用于控制计算组件309和/或计算组件315的控制信号和/或控制线的控制信号和/或控制线来控制读出电路系统311的计算组件。
除了由计算组件309和/或计算组件315执行的操作之外,读出放大器和/或读出电路系统311的计算组件可用于执行操作。在各种实例中,读出放大器和/或读出电路系统311的计算组件可以与计算组件309和/或计算组件315执行操作同时执行操作。例如,可以读取组331的存储器胞元以基本上同时将由存储器胞元存储的数据提供给读出电路系统311和计算组件309。读出电路系统311和计算组件309可以执行多个操作。读出电路系统311和计算组件309可以执行相同的操作和/或不同的操作。例如,读出电路系统311可以在计算组件309执行与操作的同时基本上执行或操作。读出电路系统311和计算组件309可以执行并行计算,因为读出电路系统311和计算组件309对相同的输入数据执行操作。读出电路系统311和计算组件309的结果可以提供给计算组件315。计算组件315可以将读出电路系统311的结果与计算组件309的结果进行比较。计算组件315可以组合读出电路系统311和计算组件309的结果和/或可以利用读出电路系统311和计算组件309的结果执行另外的计算。
图4展示了根据本公开的多个实施例的用于在存储器中执行操作的方法的示例流程图。在460处,可以利用在存储器装置的存储器阵列下实施的第一多个计算组件执行第一多个操作,其中所述第一多个计算组件在模拟域中操作。在462处,可以将所述第一多个操作的第一多个结果传输到在所述存储器阵列下实施的第二多个计算组件。在462处,可以利用所述第二多个计算组件和所述第一多个结果执行第二多个操作,其中所述第二多个计算组件在数字域中操作。
所述方法还可以包含累积所述第一多个操作的所述第一多个结果以执行所述第二多个操作。累加所述第一多个操作的所述第一多个结果还可以包含组合所述第一多个操作的所述第一多个结果,使得用于表示所述第一多个结果的位数量大于用于表示第二多个结果的位数量。用于表示所述第一多个结果的所述位数量可以等于所述存储器阵列的读出线数量。在各种情况下,用于表示所述第二多个操作的所述第二多个结果的位数量可以等于所述存储器装置的输入/输出线的数量。
所述方法还可以包含读取耦接到所述存储器阵列的至少两条选择线和多条读出线的存储器胞元。所述方法可以进一步包含将从耦接到所述至少两条选择线和所述多条读出线的存储器胞元读取的数据传输到耦接到所述多条读出线的所述第一多个计算组件,其中所述第一多个计算组件被配置成利用从所述存储器胞元传输的所述数据来执行所述第一多个操作。
可以执行所述第一多个操作以生成作为模拟值的所述第一多个结果。可以执行所述第二多个操作以从模拟值生成作为数字值的所述第二多个结果。
在各种实例中,设备可以包含存储器阵列,所述存储器阵列被配置成存储数据和第一多个计算组件,所述第一多个计算组件在所述存储器阵列下实施并且被配置成利用所述数据执行第一多个操作而不保留所述数据或所述第一多个操作的结果。所述设备还可以包含第二多个计算组件,所述第二多个计算组件在所述存储器阵列下实施并且被配置成利用所述第一多个操作的所述结果执行第二多个操作,其中所述第二多个计算组件包括状态逻辑。
所述第二多个计算组件可以间接地在所述存储器阵列下和所述存储器阵列的外围中实施。所述第二多个计算组件还可以直接地在所述存储器阵列下、所述存储器阵列边缘附近实施。
所述第一多个计算组件的电路系统可以被进一步配置成线性地执行所述第一多个操作,其中每个操作所述电路系统的部分被使用不超过一次。例如,阵列计算组件可以执行第一操作,但可能不会使用操作的结果来执行第二操作。所述第二多个计算组件可以被进一步配置成利用所述第二多个操作的部分的结果和所述第一多个操作的所述结果来执行所述第二多个操作。
所述设备还可以包含状态机以控制第一多个计算组件。状态机可以与存储器阵列位于同一管芯上。
所述第二多个计算组件可以从不同的存储器阵列接收不同的结果。所述第二多个计算组件还可以利用所述第一多个操作的所述结果和来自所述不同存储器阵列的所述不同结果执行所述第二多个操作。
在各种实例中,设备可以包含被配置成存储数据的存储器阵列和多个读出放大器。所述多个读出放大器可以锁存数据并且利用数据执行第一多个操作。所述设备还可以包含第一多个计算组件,所述第一多个计算组件在所述存储器阵列下实施并且被配置成利用所述数据执行第二多个操作;以及第二多个计算组件,所述第二多个计算组件在所述存储器阵列下实施并且被配置成利用所述第二多个操作的结果执行第三多个操作,其中所述第一多个操作与所述第二多个操作和所述第三多个操作同时执行。
所述多个读出放大器可以将所述第一多个操作的结果提供给第三多个计算组件。所述第二多个计算组件还可以将所述第三多个操作的结果提供给所述第三多个计算组件。
所述设备还可以包括所述第三多个计算组件。所述第三多个计算组件可以利用所述第一多个操作的所述结果和所述第三多个操作的所述结果来执行第四多个操作。所述第三多个计算组件可以在设备外部实施并且可以是主机的缓存系统的一部分。
图5展示了计算机系统590的示例机器,在所述计算机系统中可以执行用于引起所述机器执行本文所讨论的各种方法的一组指令。在各个实施例中,计算机系统590可以与包含、耦接到、或利用存储器子系统(例如,图1的存储器装置103)或可以用于执行控制器(例如,图1的控制器电路系统105)的操作的系统(例如,图1的计算系统100)相对应。在替代性实施例中,机器可以连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可以在客户端-服务器网络环境中以服务器或客户端机器的身份进行操作,在对等(或分布式)网络环境中作为对等机器进行操作,或在云计算基础设施或环境中作为服务器或客户端机器进行操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web电器、服务器、网络路由器、交换机或桥接器、或能够(顺序地或以其它方式)执行指定所述机器要采取的动作的指令集的任何机器。进一步地,尽管展示了单个机器,但是术语“机器”还应被视为包含单独地或联合地执行一个指令集(或多个指令集)以执行本文所讨论的方法中的任何一或多种方法的机器的任何集合。
示例计算机系统590包含通过总线597彼此通信的处理装置592、主存储器594(例如,只读存储器(ROM);闪速存储器;动态随机存取存储器(DRAM),如同步DRAM(SDRAM)或兰巴斯DRAM(Rambus DRAM,RDRAM)等)、静态存储器598(例如,闪速存储器、静态随机存取存储器(SRAM)等)和数据存储系统599。
处理装置592表示一或多个通用处理装置,如微处理器、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器、或实施指令集组合的处理器。处理装置592还可以是一或多个专用处理装置,如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置592被配置成执行用于执行本文所讨论的操作和步骤的指令593。计算机系统590可以进一步包含用于通过网络596进行通信的网络接口装置595。
数据存储系统599可以包含其上存储有使本文所描述的方法或功能中的任何一或多种方法或功能具体化的一或多个指令集593或软件的机器可读存储媒体591(也被称为计算机可读媒体)。指令593还可以在由计算机系统590执行所述指令期间完全或至少部分地驻留在主存储器594和/或处理装置592内,主存储器594和处理装置592也构成机器可读存储媒体。
在一个实施例中,指令593包含用于实施与图1的主机102和/或存储器装置103相对应的功能的指令。尽管在示例实施例中示出的机器可读存储媒体591是单个媒体,但是术语“机器可读存储媒体”应被视为包含存储所述一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码由机器执行且使机器执行本公开的方法中的任何一或多种方法的指令集的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不局限于固态存储器、光学媒体和磁性媒体。
如本文所使用的,“若干个”事物可以指一或多个此类事物。例如,多个存储器装置可以指一或多个存储器装置。“多个”某物意指两个或两个以上。另外地,本文中使用的如“N”等指定符,具体地是关于附图中的附图标记所使用的指定符,指示多个如此指定的特定特征可以包含在本公开的多个实施例中。
本文的图遵循编号惯例,其中一或多个第一数字与附图编号相对应,并且剩余数字标识附图中的元件或组件。可以通过使用类似的数字来标识不同图之间类似的元件或组件。如将理解的,可以添加、交换和/或消除在本文的各个实施例中示出的元件,以提供本公开的多个另外的实施例。另外,附图中提供的元件的比例和相对尺度旨在展示本公开的各个实施例,而不旨在以限制性的意义使用。
尽管本文已经展示并描述了具体实施例,但是本领域的普通技术人员应理解,旨在实现相同结果的布置可以替换所示出的具体实施例。本公开旨在覆盖本公开的各个实施例的改编或变化。应理解的是,以上描述是以说明性方式而非限制性方式进行的。在阅读以上描述后,上述实施例的组合以及本文未具体描述的其它实施例对于本领域的技术人员而言将是显而易见的。本公开的各个实施例的范围包含以上结构和方法被使用的其它应用。因此,本公开的各个实施例的范围应当参考所附权利要求连同与此类权利要求被赋予的等同物的全部范围来确定。
在前述的具体实施方式中,出于精简本公开的目的,将各种特征聚集在单个实施例中。本公开的此方法不应被解释为反映本公开的所公开实施例必须使用比每项权利要求中明确引用的特征更多的特征的意图。相反,如以下权利要求所反映的,本发明主题在于少于单个所公开实施例的全部特征。因此,下面的权利要求据此并入到具体实施方式中,其中每项权利要求作为单独的实施例而独立存在。
Claims (20)
1.一种方法,其包括:
利用在存储器装置的存储器阵列下实施的第一多个计算组件执行第一多个操作,其中所述第一多个计算组件在模拟域中操作;
将所述第一多个操作的第一多个结果传输到在所述存储器阵列下实施的第二多个计算组件;以及
利用所述第二多个计算组件和所述第一多个结果执行第二多个操作,其中所述第二多个计算组件在数字域中操作。
2.根据权利要求1所述的方法,其中执行所述第二多个操作进一步包括累加所述第一多个操作的所述第一多个结果。
3.根据权利要求2所述的方法,其中累加所述第一多个操作的所述第一多个结果进一步包括组合所述第一多个操作的所述第一多个结果,使得用于表示所述第一多个结果的位数量大于用于表示第二多个结果的位数量。
4.根据权利要求3所述的方法,其中用于表示所述第一多个结果的所述位数量等于所述存储器阵列的读出线数量。
5.根据权利要求3所述的方法,其中用于表示所述第二多个操作的所述第二多个结果的位数量等于所述存储器装置的输入/输出线的数量。
6.根据权利要求1至5中任一权利要求所述的方法,其进一步包括:
读取耦接到所述存储器阵列的至少两条选择线和多条读出线的存储器胞元;以及
将从耦接到所述至少两条选择线和所述多条读出线的存储器胞元读取的数据传输到耦接到所述多条读出线的所述第一多个计算组件,其中所述第一多个计算组件被配置成利用从所述存储器胞元传输的所述数据来执行所述第一多个操作。
7.根据权利要求1至5中任一权利要求所述的方法,其进一步包括执行所述第一多个操作以生成作为模拟值的所述第一多个结果。
8.根据权利要求7所述的方法,其进一步包括执行所述第二多个操作以从所述模拟值生成作为数字值的所述第二多个结果。
9.一种设备,其包括:
存储器阵列,所述存储器阵列被配置成存储数据;
第一多个计算组件,所述第一多个计算组件在所述存储器阵列下实施并且被配置成利用所述数据执行第一多个操作而不保留所述数据或所述第一多个操作的结果;以及
第二多个计算组件,所述第二多个计算组件在所述存储器阵列下实施并且被配置成利用所述第一多个操作的所述结果执行第二多个操作,其中所述第二多个计算组件包括状态逻辑。
10.根据权利要求9所述的设备,其中所述第二多个计算组件间接地在所述存储器阵列下和所述存储器阵列的外围中实施。
11.根据权利要求9所述的设备,其中所述第二多个计算组件直接地在所述存储器阵列下、所述存储器阵列边缘附近实施。
12.根据权利要求9所述的设备,其中所述第一多个计算组件的电路系统被进一步配置成线性地执行所述第一多个操作,其中每个操作所述电路系统的部分被使用不超过一次。
13.根据权利要求9所述的设备,其中所述第二多个计算组件被进一步配置成利用所述第二多个操作的部分的结果和所述第一多个操作的所述结果来执行所述第二多个操作。
14.根据权利要求9所述的设备,其中所述第二多个计算组件被进一步配置成:
从不同的存储器阵列接收不同的结果;并且
利用所述第一多个操作的所述结果和来自所述不同存储器阵列的所述不同结果执行所述第二多个操作。
15.根据权利要求9至14中任一权利要求所述的设备,其进一步包括用于控制所述第一多个计算组件的状态机。
16.根据权利要求15所述的设备,其中所述状态机与所述存储器阵列位于同一管芯上。
17.一种设备,其包括:
存储器阵列,所述存储器阵列被配置成存储数据;
多个读出放大器,所述多个读出放大器被配置成:
锁存所述数据;并且
利用所述数据执行第一多个操作;以及
第一多个计算组件,所述第一多个计算组件在所述存储器阵列下实施并且被配置成利用所述数据执行第二多个操作;以及
第二多个计算组件,所述第二多个计算组件在所述存储器阵列下实施并且被配置成利用所述第二多个操作的结果执行第三多个操作,其中所述第一多个操作与所述第二多个操作和所述第三多个操作同时执行。
18.根据权利要求17所述的设备,其中:
所述多个读出放大器被进一步配置成将所述第一多个操作的结果提供给第三多个计算组件;并且
所述第二多个计算组件被进一步配置成将所述第三多个操作的结果提供给所述第三多个计算组件。
19.根据权利要求18所述的设备,其进一步包括所述第三多个计算组件并且被进一步配置成利用所述第一多个操作的所述结果和所述第三多个操作的所述结果来执行第四多个操作。
20.根据权利要求18所述的设备,其中所述第三多个计算组件在所述设备外部并且是主机的缓存系统的一部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/936,079 US11449269B2 (en) | 2020-07-22 | 2020-07-22 | Edge compute components under a memory array |
US16/936,079 | 2020-07-22 | ||
PCT/US2021/041457 WO2022020140A1 (en) | 2020-07-22 | 2021-07-13 | Edge compute components under a memory array |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115943462A true CN115943462A (zh) | 2023-04-07 |
Family
ID=79688218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180049889.0A Pending CN115943462A (zh) | 2020-07-22 | 2021-07-13 | 存储器阵列下的边缘计算组件 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11449269B2 (zh) |
CN (1) | CN115943462A (zh) |
WO (1) | WO2022020140A1 (zh) |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5050095A (en) | 1988-05-31 | 1991-09-17 | Honeywell Inc. | Neural network auto-associative memory with two rules for varying the weights |
JP3260357B2 (ja) | 1990-01-24 | 2002-02-25 | 株式会社日立製作所 | 情報処理装置 |
US7174354B2 (en) | 2002-07-31 | 2007-02-06 | Bea Systems, Inc. | System and method for garbage collection in a computer system, which uses reinforcement learning to adjust the allocation of memory space, calculate a reward, and use the reward to determine further actions to be taken on the memory space |
US8996951B2 (en) | 2012-11-15 | 2015-03-31 | Elwha, Llc | Error correction with non-volatile memory on an integrated circuit |
US10153042B2 (en) | 2013-11-28 | 2018-12-11 | Gsi Technology Inc. | In-memory computational device with bit line processors |
US9904515B2 (en) | 2014-09-03 | 2018-02-27 | Micron Technology, Inc. | Multiplication operations in memory |
US9747960B2 (en) * | 2014-12-01 | 2017-08-29 | Micron Technology, Inc. | Apparatuses and methods for converting a mask to an index |
US9583163B2 (en) | 2015-02-03 | 2017-02-28 | Micron Technology, Inc. | Loop structure for operations in memory |
US9741399B2 (en) | 2015-03-11 | 2017-08-22 | Micron Technology, Inc. | Data shift by elements of a vector in memory |
KR102449571B1 (ko) * | 2015-08-07 | 2022-10-04 | 삼성전자주식회사 | 반도체 장치 |
US11120884B2 (en) * | 2015-09-30 | 2021-09-14 | Sunrise Memory Corporation | Implementing logic function and generating analog signals using NOR memory strings |
US10387299B2 (en) * | 2016-07-20 | 2019-08-20 | Micron Technology, Inc. | Apparatuses and methods for transferring data |
KR102479212B1 (ko) | 2016-08-17 | 2022-12-20 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
KR102400100B1 (ko) * | 2017-11-17 | 2022-05-19 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 제조 방법 |
KR102514772B1 (ko) * | 2017-12-28 | 2023-03-28 | 삼성전자주식회사 | 비동기적 동작 수행이 가능한 비휘발성 메모리 장치와 이를 포함하는 메모리 시스템, 그리고 이의 동작 수행 방법 |
US11061646B2 (en) | 2018-09-28 | 2021-07-13 | Intel Corporation | Compute in memory circuits with multi-Vdd arrays and/or analog multipliers |
-
2020
- 2020-07-22 US US16/936,079 patent/US11449269B2/en active Active
-
2021
- 2021-07-13 CN CN202180049889.0A patent/CN115943462A/zh active Pending
- 2021-07-13 WO PCT/US2021/041457 patent/WO2022020140A1/en active Application Filing
-
2022
- 2022-09-16 US US17/946,769 patent/US11762577B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2022020140A1 (en) | 2022-01-27 |
US11449269B2 (en) | 2022-09-20 |
US20220027079A1 (en) | 2022-01-27 |
US11762577B2 (en) | 2023-09-19 |
US20230020912A1 (en) | 2023-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11783872B2 (en) | Apparatuses and methods for performing operations using sense amplifiers and intermediary circuitry | |
US11152054B2 (en) | Apparatuses and methods for performing background operations in memory using sensing circuitry | |
US20220284932A1 (en) | Conditional write back scheme for memory | |
US11749318B2 (en) | Interface protocol configuration for memory | |
US11762577B2 (en) | Edge compute components under a memory array | |
US11341038B2 (en) | Data movement operations in non-volatile memory | |
US10573372B2 (en) | Sensing operations in memory by comparing inputs in a sense amplifier | |
US10943624B1 (en) | Countering digit line coupling in memory arrays | |
US11893283B2 (en) | Asynchronous process topology in a memory device | |
US11169737B2 (en) | Speculation in memory |
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 |