CN115362436A - 准易失性系统级存储器 - Google Patents
准易失性系统级存储器 Download PDFInfo
- Publication number
- CN115362436A CN115362436A CN202180025127.7A CN202180025127A CN115362436A CN 115362436 A CN115362436 A CN 115362436A CN 202180025127 A CN202180025127 A CN 202180025127A CN 115362436 A CN115362436 A CN 115362436A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- memory device
- circuit
- controller
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L24/00—Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
- H01L24/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L24/10—Bump connectors ; Manufacturing methods related thereto
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L25/00—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
- H01L25/03—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
- H01L25/04—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
- H01L25/065—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
- H01L25/0652—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00 the devices being arranged next and on each other, i.e. mixed assemblies
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L25/00—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
- H01L25/03—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
- H01L25/04—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
- H01L25/065—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
- H01L25/0657—Stacked arrangements of devices
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L25/00—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
- H01L25/18—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof the devices being of types provided for in two or more different subgroups of the same main group of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/304—In main memory subsystem
- G06F2212/3042—In main memory subsystem being part of a memory device, e.g. cache DRAM
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2224/00—Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
- H01L2224/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L2224/02—Bonding areas; Manufacturing methods related thereto
- H01L2224/07—Structure, shape, material or disposition of the bonding areas after the connecting process
- H01L2224/08—Structure, shape, material or disposition of the bonding areas after the connecting process of an individual bonding area
- H01L2224/081—Disposition
- H01L2224/0812—Disposition the bonding area connecting directly to another bonding area, i.e. connectorless bonding, e.g. bumpless bonding
- H01L2224/08135—Disposition the bonding area connecting directly to another bonding area, i.e. connectorless bonding, e.g. bumpless bonding the bonding area connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip
- H01L2224/08145—Disposition the bonding area connecting directly to another bonding area, i.e. connectorless bonding, e.g. bumpless bonding the bonding area connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip the bodies being stacked
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2224/00—Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
- H01L2224/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L2224/10—Bump connectors; Manufacturing methods related thereto
- H01L2224/15—Structure, shape, material or disposition of the bump connectors after the connecting process
- H01L2224/16—Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
- H01L2224/161—Disposition
- H01L2224/16135—Disposition the bump connector connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip
- H01L2224/16145—Disposition the bump connector connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip the bodies being stacked
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2224/00—Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
- H01L2224/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L2224/10—Bump connectors; Manufacturing methods related thereto
- H01L2224/15—Structure, shape, material or disposition of the bump connectors after the connecting process
- H01L2224/16—Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
- H01L2224/161—Disposition
- H01L2224/16135—Disposition the bump connector connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip
- H01L2224/16145—Disposition the bump connector connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip the bodies being stacked
- H01L2224/16146—Disposition the bump connector connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip the bodies being stacked the bump connector connecting to a via connection in the semiconductor or solid-state body
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2225/00—Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
- H01L2225/03—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
- H01L2225/04—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
- H01L2225/065—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
- H01L2225/06503—Stacked arrangements of devices
- H01L2225/06513—Bump or bump-like direct electrical connections between devices, e.g. flip-chip connection, solder bumps
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2225/00—Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
- H01L2225/03—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
- H01L2225/04—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
- H01L2225/065—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
- H01L2225/06503—Stacked arrangements of devices
- H01L2225/06541—Conductive via connections through the device, e.g. vertical interconnects, through silicon via [TSV]
Abstract
一种高容量的系统存储器,可以从准易失性(QV)存储器电路、逻辑电路和静态随机存取存储器(SRAM)电路构成。使用SRAM电路作为QV存储器电路的缓冲器或高速缓存,系统存储器可以达到SRAM电路的访问延迟性能,并可以作为代码存储器使用。系统存储器还能够进行直接存储器访问(DMA)操作,并包括用于执行计算存储器任务的算术逻辑单元。系统存储器可以包括一个或多个嵌入式处理器。此外,系统存储器可以被配置为由多个主机处理器通过多个主机端口进行多通道存储器访问。系统存储器可以以双列直插存储器模块(DIMM)的形式提供。
Description
技术领域
本发明涉及半导体存储器及其使用和技术。更具体地说,本发明涉及与半导体存储器集成电路、结合半导体存储器集成电路的模块、示例性结构及其使用相关联的系统能力。
背景技术
不同技术和架构类型的传统存储器系统是已知的。例如,存储器系统可以利用基于主机计算机、电信设备或另一硬件和软件的要求和存储器访问模式而选择的组件构成(以下,这样的存储器访问设备称为“主机”、“主机处理器”或“主机系统”)。在传统的主机系统中,存储器系统可以包括不同的存储器类型,诸如随机存取存储器(RAM)、闪存、只读存储器(ROM)和其他合适类型的存储器设备。
在现有技术中,RAM通常是存储主机最频繁访问的数据的易失性存储器设备。当电源中断时,易失性存储器丢失其数据。RAM的示例包括静态RAM(“SRAM”)和动态RAM(“DRAM”)。典型的SRAM电路是由交叉耦合晶体管形成的单比特触发器。典型的DRAM电路包括存取晶体管和存储电容器。为了补偿来自电容器的电荷泄漏,DRAM电路需要频繁的刷新来保持存储的数据。由于典型的DRAM电路比典型的SRAM电路具有更少的组件,因此DRAM电路可以获得比SRAM电路更高的数据密度;然而,典型的SRAM电路速度更快,而且不需要刷新。
由于其成本和密度的优势,DRAM已经成为服务主机系统的主导技术,其中许多主机系统通常被称为“中央处理单元”(“CPU”)。如本文所使用的,术语“CPU”是指管理和访问存储器系统的任何逻辑电路,并因此包括如图形处理单元(“GPU”)这样的设备。最近,由于电路密度的提高(例如,通过减小存储电容器的物理尺寸)变得越来越困难,DRAM被认为正在达到它们的极限。随着DRAM电容尺寸的减小,需要更高的刷新率,这增加了功耗。改变刷新率的一个障碍是符合标准的主机系统必须遵循的行业标准(例如,JEDEC颁布的DDR标准)。此外,较高的刷新率会减少主机可用于存储器访问的时间部分,从而对性能产生不利影响。保持传统刷新率的一种方法是以功率和散热为代价,在每个刷新周期中刷新更多的存储器单元。这些条件限制了当前DRAM密度的增长率。
因此,对于没有传统功率和密度限制的不同存储器类型存在长期需求。一种新型的存储器——被称为“准易失性存储器”(“QV存储器”)——被认为具有与DRAM相媲美的有效性能,同时具有更高的密度。例如,在2018年11月16日发布的题为“Capacitive-coupledNon-volatile Thin-film Transistor NOR Strings in Three-Dimensional Arrays”的美国专利10,121,553(“Harari专利”)中公开了QV存储器。Harari专利通过引用其全文并入本文。与非易失性存储器(NVM)的存储器单元类似,QV存储器的存储器单元各自将数据位作为电荷存储在电荷存储材料(例如,ONO)中。在一个实例中,通过在半导体衬底上形成的NOR型存储器串的三维阵列来实现高容量QV存储器。由于其电荷存储层的性质,典型的QV存储器单元比DRAM单元具有更长的数据保持时间,因此需要比DRAM单元更低的刷新率。例如,典型的DRAM系统被设计成每78微秒刷新一次;然而,具有类似有效访问性能的QV存储器可以每10分钟刷新一次。降低的刷新率为QV存储器提供了更低的功率需求、更低的散热和更高的存储器可用性方面的巨大优势。存储器可用性提供了更好的主机性能。
虽然在NVM和QV存储器中的写操作都需要在前面的擦除步骤,但QV存储器在更短的时间内(例如,在十分之一微秒的数量级)完成该任务。此外,由于NVM通常在大块存储器单元上同时执行擦除操作,擦除操作通常需要由复杂控制器进行管理。此外,由于其通常较低的电压操作导致的低损耗,典型的QV存储器单元具有比典型的NVM单元(例如,104个擦除-编程周期)高得多的耐久性(例如,1012个擦除-编程周期)。
发明内容
根据本发明的一个实施例,一种存储器设备包括:(a)多个准易失性(QV)存储器电路,每个QV存储器电路形成在独立的半导体衬底上,并且通过形成在半导体衬底中的硅通孔(TSV)彼此互连;以及(b)还形成在与QV存储器电路的半导体衬底独立的半导体衬底上的存储器控制器电路,其中存储器控制器电路通过混合键与QV存储器电路中的一个互连,并且其中存储器控制器电路操作QV存储器电路作为一个或多个QV存储器。存储器设备可以用于形成较大的存储器设备,诸如PCB存储器模块、双列直插存储器模块(DIMM)、或通过晶圆级堆叠技术实现的任何存储器模块。
在一个实施例中,每个QV准易失性存储器电路可以由模块化存储器电路(“电路块”)形成,模块化存储器电路(“电路块”(tile))布置为在其上形成QV存储器电路的半导体衬底上的二维阵列(例如,在行和列中)。每个QV存储器电路可以在逻辑上或物理上被组织为存储器存储体(memory bank)和存储器存储体组。存储器控制器电路也可以被模块化,以允许模块化控制电路混合键合到它们相关联的电路块上,以实现模块化控制和存储器功能。
QV存储器电路可以将一个堆叠在另一个顶上以实现统一的占用面积(footprint),但不要求相同。例如,一些QV存储器电路可能比其他的具有更多层的存储器单元。QV存储器电路也可以具有不同的操作能力。
根据本发明的一个实施例,在QV存储器电路中实现的QV存储器可以被组织在一个或多个非重叠分区中。存储器控制器电路可以提供多个存储器控制器,每个存储器控制器的任务是对分配的分区组进行控制操作。每个分区组可以由主机处理器通过通过存储器接口的存储器通道访问。
本发明的QV存储器电路可以执行存储器内的计算命令,因为存储器控制器电路可以包括计算元件,诸如一个或多个算术逻辑单元或处理器(例如,RISC处理器)。此外,存储器内复制操作、直接存储器访问(DMA)操作和搜索操作可以由计算元件执行而无需主机干预。
SRAM电路可以用于数据缓冲的各种应用,作为计算元件的程序存储器,以及作为QV存储器电路的高速缓存存储器。与主机处理器适当地裁剪QV存储器事务中使用的数据单元和高速缓存行事务的数据单元,加上适当的数据预取策略,本发明的QV存储器实现了接近SRAM电路的有效性能。可以实现各种存储器读和写回策略以匹配QV存储器的预期应用的要求。
根据本发明的一个实施例,可以使用双列直插存储器模块(DIMM)格式来构建QV存储器系统(“QV DIMM”)。QV DIMM可以由上述QV存储器设备、存储器接口和控制存储器设备和存储器接口电路中的操作的DIMM处理器电路构成。QV DIMM可以支持多个存储器通道。此外,存储器内计算和操作能力(例如,存储器内复制和搜索操作)可以在DIMM级执行。此外,通过使DIMM处理器电路能够跨QV DIMM执行这些操作,这些能力可以扩展到甚至更高的层级。
结合附图考虑下面的详细描述,可以更好地理解本发明。
附图说明
图1(a)、1(b)、1(c)(i)和1(c)(ii)示出包括存储器管芯(die)101和控制器管芯102的多管芯QV存储器模块100;在存储器管芯101上形成组织为电路块的若干存储器阵列,以及在存储器管芯102上形成用于存储器管芯100的存储器阵列的存储器控制器。
图2示出了根据本发明的一个实施例的QV存储器模块200,其在一个封装中包括多个QV存储器模块201a、201b和201c,以及插入器管芯203。
图3示出了根据本发明的一个实施例的QV存储器模块300,其包括被组织为信号组303a-303c的存储器管芯301a-301c和控制器管芯302。
图4示出了根据本发明的一个实施例的QV模块400,包括存储器管芯401a-401d和控制器管芯402,被分区为信号组403a和403b。
图5示出了根据本发明的一个实施例的选择电路500,其将标识码Asgn0、Asgn1和Asgn2中的一个分配给存储器管芯501a-501c,并允许每个存储器管芯由选择信号CS0、CS1和CS2中的相应一个选择。
图6示出了根据本发明的一个实施例的QV存储器模块中的存储器控制电路600;存储器控制电路600处理信号组的存储器阵列中的读和写操作,该信号组包括每个提供在QV存储器模块的存储器管芯中的分区单元601a-601d。
图7示出了根据本发明的一个实施例的具有存储器内文件复制能力的算术逻辑电路608的一个实现。
图8(a)是根据本发明的一个实施例的QV存储器模块中的控制器管芯800的框图,该控制器管芯800包括RISC处理器804和SRAM 805。
图8(b)是根据本发明的一个实施例的QV存储器模块中的控制器管芯850的框图,该控制器管芯850包括分别由SRAM 805a和805b服务的RISC处理器804a和804b。
图9是根据本发明的一个实施例的QV存储器模块900的功能框图。
图10示出了根据本发明的一个实施例的使用命令状态交换协议的QV存储器模块1000。
图11示出了根据本发明的一个实施例的命令部分1001a和状态部分1001b,每个被组织为队列。
图12是根据本发明的一个实施例的包括高速缓存控制器1201的QV存储器模块1200的功能框图。
图13是根据本发明的一个实施例的计算机系统1300的功能框图,计算机系统1300包括CPU 1301、GPU 1302、由QV模块1303a和1303b实现的存储器、磁盘高速缓存(或RAM盘)1305和外围控制器1304,它们都通过Gen-Z接口1306通信。
图14(a)示出了根据本发明的一个实施例的包括存储器分区1404a-1404d的QVDIMM 1400,每个存储器分区提供相关联的SRAM 1403a-1403d。
图14(b)示出了根据本发明的一个实施例的计算机系统1450,包括分别耦合到QVDIMM 1400的存储器通道1405a-1405d的处理器1410a-140d。
图15(a)、图15(b)、图15(c)和图15(d)示出了根据本发明的一个实施例的QV DIMM1510a-1510d,每个包括处理器1501,其分别以(a)单秩(rank)配置,具有8位存储器接口,(b)双秩配置,具有32位存储器接口,(c)四秩配置,具有16位接口,以及(d)单秩配置,具有64位接口来访问八个QV存储器模块(即,QV存储器模块1502a-1502h)。
图16是示出根据本发明的一个实施例的QV DIMM 1600的功能框图,QV DIMM 1600包括RISC处理器1601,该处理器管理用QV DIMM 1600实现的QV存储器中的存储器内计算。
图17(a)和17(b)提供了根据本发明一个实施例的在QV存储器模块1700中从存储器管芯1701中的电路块1711到控制器管芯1702的存储器接口1712的读取路径的功能视图。
图18示出了根据本发明的一个实施例的根据规定的高速缓存策略的高速缓存控制器(例如,高速缓存控制器1715)的简化流程图1800。
图19是示出根据本发明的一个实施例的高速缓存控制器1900在QV存储器1901上的操作的框图。
图20(a)示出了根据本发明的一个实施例的高速缓存控制器1900的实现1950的详细操作。
图20(b)示出了根据本发明的一个实施例的系统1970,其中数据缓冲器1905被分区为SRAM块1905(i)、…、1905(n),每个SRAM块为QV存储器1901的存储器块的大小,使得数据缓冲器1905中的每个SRAM块在QV存储器1901的对应的存储体中高速缓存存储器块。
图20(c)示出了根据本发明的一个实施例的系统1990,其中SRAM数据缓冲器1905与QV存储器1901分开寻址。
图21示出了根据本发明的一个实施例的DIMM控制器2100,包括启用存储器内计算命令的RISC处理器2016、命令缓冲器2101和状态缓冲器2102。
图22示出了根据本发明的一个实施例的QV DIMM 2200中的插入器设备2201(例如,硅衬底),其容纳QV存储器模块和一个或多个处理器(例如,设置在一个或多个管芯或模块上)之间所需的布线。
图23(a)和图23(b)分别是根据本发明的一个实施例的包括插入器设备2301的基于球栅阵列插座(ball-grid array socket)的系统2300的实现的示例性侧视图和顶视图。
图24示出封装2400,其包括通过与系统板上的板连接器接合的塔形连接器2402a和2402b互连的多个系统板(例如,系统板2401a和2401d)。
尽管前面的附图描述了本发明的各种示例,但本发明不受所描述的示例的限制。在这些附图中,相似的参考数字表示相似的结构元件。此外,附图中的描绘不一定是按比例的。
具体实施方式
在该详细描述中,本发明的各种实施例或示例可以以多种方式实现,包括作为系统、过程、装置或计算机可读介质(例如,计算机可读存储介质或计算机网络,其中程序指令通过光学、电子或无线通信链路发送)上的一系列程序指令。
例如,本发明可应用于将QV存储器管芯与逻辑管芯集成(例如,使用混合键合)的系统中,这使得能够通过在系统架构中结合系统级特征而带来的新能力。这些能力中的一些例如在于2020年1月29日提交的题为“Device with Embedded High-Bandwidth,High-Capacity Memory using Wafer Bonding”的共同未决的专利申请(“Khandker申请”)序列第16/776,279号中公开。特别地,QV存储器可以用于在当前基于DRAM的系统架构中不可用的以存储器为中心的计算应用中。Khandker申请通过引用将其整体合并于此。
如Khandker申请中所公开的,QV存储器电路可以以多管芯方式构建,其中至少一个管芯具有存储器阵列(“存储器管芯”)和一个管芯具有存储器控制器(“控制器管芯”),诸如图1(a)-图1(c)所示。如图1(a)所示,多管芯QV存储器模块100包括通过铜互连导体(“混合键”(hybrid bond)或“螺柱”(stud))106互连的存储器管芯101和控制器管芯102。大量的混合键提供了高带宽的数据接口。在存储器管芯101上,如图1(b)所示,许多存储器阵列被组织为“电路块”103-1到103-n的二维阵列(即,电路块被布置为行和列)。如图1(c)(i)所示,每个电路块还可以包括激活字线的行解码器和驱动器104,每个字线访问电路块内的存储器单元的行。在一个实施例中,如图1(c)(i)所示,在每个电路块内是多个平面中的多列存储器单元。列解码器激活位线,每一位线选择一列存储器单元以及一平面,使得与激活的字线一起选择存储器单元。在一个实施例中,存储器单元的每列中的平面内的存储器单元共享感测放大器105内的同组感测放大器。在一个实施例中,所选行中的存储器单元形成存储器单元的“页”(page),这些存储器单元被同时感测并通过以适当的组大小(例如,一次8比特(“字节”))连续地选择位线而输出。图1(c)(ii)示出激活页的比特通过螺柱106输出到控制器管芯102。可以使用任何合适的页大小(例如,1,024比特或2,048比特)。
在控制器管芯102上,形成用于访问存储器管芯101的存储器阵列的存储器控制器。除了传统的存储器控制器功能之外,存储器控制器管芯102还可以包括一个或多个外部接口,诸如用于主机访问和其他系统功能的存储器接口。或者,存储器控制功能可以在存储器管芯101和控制器管芯102之间划分(例如,一些控制器电路可以在存储器管芯101上实现)。在这方面,Khandker申请公开了使用针对存储器电路优化的工艺来构建存储器管芯,以及使用针对形成低电压和更快逻辑电路优化的先进制造工艺来构建控制器管芯——在Khandker申请中称为“伴随芯片”(companion chip)。与支持访问存储器阵列的传统电路相比,该伴随管芯提供了显著的改进。
在一个实施例中,8层(即,8平面)存储器阵列每个激活行提供8页数据。如果层数增加到16,则为每个激活行提供16页数据,而不会影响电路块的占用面积。利用4平面和1024位的页,电路块中的每一行都有4096位。当然,根据期望的应用,可以为较大或较小的能力来调整电路块中的行数,以权衡较长或较短的访问时间。
如图1(b)所示,存储器管芯102中的块以二维阵列(即,电路块的行和列)组织。在该配置中,电路块的每一行(“电路块行”)形成一操作单元,该操作单元被称为“存储体”(bank)。一组存储体,反过来,形成“存储体组”。例如,图1(b)示出了构成存储体组108的存储体107-1和107-2。在该配置中,存储体组内的存储体可以以多路复用的方式共享数据输入和输出总线。电路块是构建块,其允许灵活配置系统以适应应用的需求。基于电路块的设计自然导致到控制器管芯102的混合键的模块化组织,这也导致控制器电路的模块化。例如,控制器可以采用基于存储体和存储体组的设计,以允许同时访问大量数据。这种控制方案的许多变化可以通过在控制器逻辑电路中配置数据路由和控制来实现。
另外,多个存储器管芯可以一个堆叠在另一个顶部,并且通过例如硅通孔(“TSV”)互连以用于存储器管芯之间的数据路由。堆叠存储器管芯要求保持内部规律的拓扑和控制结构。例如,堆栈中每个存储器管芯中的存储器阵列可以根据下面讨论的分配和选择方法来控制。这样的组织容易地有助于允许堆栈中的每个存储器管芯具有到控制器管芯的高带宽混合键接口的完全访问的设计。此外,可定制的设计允许许多变化,以适应各种应用需求;这种变化可以通过适当地配置控制器管芯中的控制器逻辑电路来实现。所得到的存储器系统具有由高带宽存储器接口可访问的高存储器容量。
集成了至少一个存储器管芯和至少一个控制器管芯的QV存储器模块导致更快的存储器控制器操作,从而更快的存储器性能。此外,由于一个或多个存储器管芯和一个或多个控制器管芯可以在它们各自的专用制造工艺下分开制造,因此QV存储器模块使得存储器管芯的高容量存储器阵列从控制器管芯中的高密度逻辑电路以高带宽可访问,导致在传统存储器电路中先前无法实现的新能力。通过集成每个为特定存储器操作配置和优化的存储器和控制器管芯,QV存储器模块可以在每个存储器或控制器管芯中实现减小的管芯尺寸。可以使用一种或多种集成技术集成管芯,包括例如混合键、TSV、暴露接触和用于非常高互连密度的其他合适技术。当堆叠多个存储器管芯以提供高存储器容量时,由此产生的优点尤其显著,同时在多个存储器管芯之间共享存储器控制器实现了降低的单位成本。
图2示出了根据本发明的一个实施例的QV存储器模块200,其在一个封装中集成多个QV存储器模块201a、201b和201c,以及插入器管芯203。如图2所示,QV存储器模块201a和201b各自包括两个堆叠的存储器管芯,QV存储器模块201c包括三个堆叠的存储器管芯;例如,QV存储器模块201a-201c中的存储器管芯可以在存储器管芯的一侧通过微凸点或混合键从另一堆叠存储器管芯接收信号。这些接收的信号可以由形成在存储器管芯表面上的导体路由到TSV,该TSV将这些信号路由到存储器管芯相对表面上的导体上。QV存储器模块201a-201c由它们相应的控制器管芯202a-202c控制。信号在QV存储器模块201a-201c之间的路由是通过形成在插入器衬底203(例如,硅管芯)上的导体来完成的。QV存储器模块200可以封装在传统封装中。在图2中,用于QV存储器模块200到外部电路和来自外部电路的数据和控制信号可以例如通过连接到封装衬底204(例如,印刷电路板(PCB))的焊球(solderball)连接205以及通过与QV存储器模块201a-201c中的每一个的焊料凸点路由。QV存储器模块201a-201c中的每一个中的存储器管芯可以堆叠在单个存储器控制器的顶部,每个存储器管芯向存储器控制器提供基本相同的信号集。如果需要,来自每个存储器管芯的信号可以通过插入存储器管芯中的TSV路由到控制器管芯。以这种方式,存储管芯形成集成的存储系统,接收到每个存储管芯的信号由选择线选通。可以通过去激活任何存储器管芯来实现功率节省。
除了堆叠存储器管芯之外,QV存储器模块还可以包括具有其他功能的管芯,其信号以类似的方式路由。因此,QV存储器模块中的存储器阵列可以用于支持这些非存储器管芯中的添加功能。因此,小型设备(例如,移动电话和其他便携式设备)可以作为非常密集的封装并入QV存储器模块中。此外,该方法允许这些小型设备中的功能电路通过高带宽连接(例如,混合键)直接连接到存储器管芯,从而获得高性能和低功耗,而没有瓶颈(例如,传统存储器总线和片外输入和输出驱动器)。
如果使用先进的制造工艺制造控制器管芯,则相对于其相关的高容量存储器管芯的占用面积,存储器控制器可能只需要很小的硅面积。优选地,存储器管芯和控制器具有基本相同的硅区域,从而可以通过短导体来实现信号传递,这避免了互连延迟。因此,控制器管芯具有硅区,如果需要,该硅区可以被其他逻辑电路占用。
存储器接口提供外部设备(例如,主机处理器)对QV存储器模块的访问。在传统的存储器系统中,访问由典型的工业标准存储器接口(例如双倍数据速率(DDR)或高带宽存储器(HBM)接口)提供。传统的存储器接口由存储器控制器控制,无论存储器容量如何,因为存储器控制器管理存储器系统内部组织所需的所有适当信号。QV存储器模块的存储器接口也可以使用该传统方法来实现。例如,QV存储器模块可以用符合工业标准双列直插存储器模块(DIMM)的存储器接口封装。在一个实施例中,外部接口基本上相同地连接到每个存储器管芯的存储器阵列。在该配置中,用于每个存储器管芯的输入和输出数据的缓冲器可以提供在控制器管芯中,诸如在外部接口的逻辑电路中。这样的方法保持与现有系统设计的兼容性并提供QV存储器模块内的路由效率,因为存储器控制器和每个存储器管芯之间的信号路由和协议可以被制成模块化并且从存储器管芯到存储器管芯基本上相同。或者,当存储器控制器独立地连接到每个存储器管芯时,由于具有不同信号延迟的不同路由路径,从存储器管芯到存储器管芯的时序变化是可能的,导致降级的窗口采样,更高的错误率,额外的线路驱动器、板空间和功耗。
图3示出了根据本发明的一个实施例的QV存储器模块300,其包括被组织为存储器通道或信号组303a-303c的存储器管芯301a-301c和控制器管芯302。如图3所示,每个信号组由其在存储器管芯301a-301c中的电路支持,由控制器管芯302中的对应电路控制。例如,对于信号组303a和303b中的每一个,每个存储器管芯上的信号组的电路共享控制器管芯302中的对应电路。混合键和TSV的组合路由控制器302和每个存储器管芯之间交换的信号。在这种布置下,例如,每个信号组可以独立地提供其刷新信号以服务于其存储器阵列,而不需要信号组之间的同步。在每个信号组中,到每个存储器管芯和来自每个存储器管芯的信号被直接路由到形成在控制器管芯302上的外部接口。通过外部接口的信号通过封装衬底(例如,PCB)路由,其中信号通过焊球305提供给外部连接。(可选地,可提供插入器衬底(未示出)用于连接到附加QV存储器模块或其他集成电路)。如图3所示,外部连接通常包括电源和接地引脚、接口控制和数据信号以及任何其他合适的信号。
在一个实施例中,高容量存储器系统可以具有两个或多个外部接口,每个外部接口独立地服务于至少一个存储器信道或内部信号组。在高容量存储器系统中,存储器电路可以被分区为两个独立的(separate)存储器通道,使得由一个存储器管芯堆栈实现的QV存储器模块可以在逻辑上被视为例如具有两个存储器管芯堆栈的QV存储器模块。这种双访问能力有助于通过独立控制的端口更有效地访问两个存储器通道。对于具有128-Gb或256-Gb存储器管芯的QV存储器模块——这可能与32Gb DRAM同时代——具有双接口是有利的。(Gb是230比特的数据;GB是233比特的数据)。更大数量的通道可能适合具有更大容量的存储器管芯。
图4示出根据本发明的一个实施例的QV模块400,包括存储器管芯401a-401d和控制器管芯402,被分区为存储器通道403a和403b。在图4中,用于存储器通道403a和403d的存储器管芯401a-401d中的电路分别由存储器控制器404a和404b控制。由于QV存储器阵列的高容量,在许多预期的应用中,将单个堆叠的管芯分区为甚至更多的存储器通道,提供两个以上的存储器接口是合适的。例如,单个QV存储器模块可以支持多处理器系统,其中每个处理器在QV存储器模块中被分配独立的存储器通道用于它们各自的独立操作。多通道方法在存储器级确保足够小的粒度,以获得更高的系统级性能。
图5示出了根据本发明的一个实施例的选择电路500,其将分配信号Asgn0、Asgn1和Asgn2中的一个分配给存储器管芯501a-501c,并允许每个存储器管芯由选择信号CS0、CS1和CS2中的相应一个选择。控制器管芯502可以被分区以例如由独立操作的控制器管芯502中的两个独立的存储器控制器支持两个独立的存储器通道。在这种情况下,从控制器管芯502中的每个存储器通道的存储器控制器生成的分配和选择信号可以通过TSV在专用路径上路由并在每个存储器管芯处解码。对于要堆叠的附加存储器管芯,这种分配和选择方法可以容易地扩展。当所选存储器管芯中的对应电路作为存储器系统的秩操作时,选择信号CS0-CS1可用作“秩”指示符。或者,选择信号CS0-CS1可以选择存储体组、存储体或任何合适的存储器组织。当然,还有许多其他的赋值和选择方法存在并可以实现,使得图5中的赋值和选择方法只是众多方法中的一种。所述分配和选择信号可以促进功率节约方案,以允任何存储器管芯中的电路的许选择性的去激活(deactivation)或激活。
QV存储器模块中的存储器通道的配置方式(即,存储器管芯的存储器阵列的分区方式)影响存储器使用的灵活性。例如,存储器通道可以包括存储器管芯中的一组垂直对准的电路块。在该组织中,由于电路块内的位线适当地短,即使位线不是铜导体(例如,多晶硅),也可以执行快速的读和写操作。如上面关于图1(c)(i)和(ii)所讨论的,每个电路块可以包括行和列解码器和驱动器(即,字线和位线)以及感测放大器。在三维存储器阵列中,每个电路块包括彼此堆叠的二维存储器单元阵列的多个平面。
图6示出QV存储器模块中的存储器控制电路600;根据本发明的一个实施例,存储器控制电路600处理存储器通道中的读和写操作,该存储器通道包括每个提供在QV存储器模块的存储器管芯中的分区单元601a-601d。如图6所示,分区单元601a-601d每个可以包括存储器管芯中的一个或多个电路块(例如,单个电路块、电路块行、存储体或存储体组)。当然,仅仅出于说明的目的,图6示出了四个分区单元;任何适当数量的分区单元都是可能的。在读操作期间,使用读总线606a在存储器接口电路605上传送数据和控制信号。类似地,在写操作期间,使用写总线606b在存储器接口电路605上通信传送数据和控制信号。存储器电路600还处理DMA操作,其中主机处理器请求将一个存储器地址范围内的位置之间的数据复制到另一个存储器地址范围内的位置。如本领域普通技术人员所知,存储器地址范围中的一个中的位置可以对应于存储器映射的外围设备。算术逻辑电路608执行存储器控制电路600的所请求的存储器操作,接收来自总线606D上的分区单元601a-601d的输入数据信号,并提供总线606d上的输出数据信号以被写回分区单元601a-601d。在算术逻辑电路608的控制下,地址解码器603解码每个存储器地址,以提供(i)解码的地址(例如,行和列地址)给驱动器电路604,以激活用于存储器访问的所需字线和位线,以及(ii)控制信号给多路复用器602a-602m,以连接分区单元601a-601d和总线606-606c中选定的一个之间的数据信号。
图6的存储器通道可以提供例如来自分区单元601a-601d的32-GB存储器。每个分区单元是存储器管芯上的电路块。如果每个电路块包括两倍的平面数,每个分区单元包括两倍的电路块数,或者信号组包括两倍的分区单元数,则存储器容量可以加倍。在一个实施例中,可以开始形成在同一衬底(例如,硅晶圆)上的存储器管芯的制造,并且(a)在已经形成预定数目的平面(例如,4)之后储存起来,或者,替代地,(b)完成。存储起来的衬底可以稍后完成,其中附加平面(例如,4个附加平面)被添加到每个存储器管芯以获得更大的容量。该方法还允许在已建立预定数量的平面之后对存储器管芯进行某些测试。或者,可以通过包括附加的行或平面来调整每个电路块的大小。由于负载和驱动要求预计不会在调整中显著改变,新的存储器设计可以在短时间内实现。因此,基本存储器设计可以在几代容量中使用,而没有缩放问题。
本发明人期望未来的存储器系统(例如,每存储器管芯128-Gbit或更高)通过包括计算系统的能力(例如,向控制器引入更多的智能和卸载更多的计算任务)而变得更加复杂。例如,除了提供定序器(sequencer)或专用硬件功能(例如,直接存储器访问(DMA)控制)之外,RISC处理器还可以并入控制器管芯中以执行存储器的高级操作任务。术语“RISC”代表“精简指令集计算机”,包括任何定制的处理器电路和那些从ARM、MIPS和IBM的PowerChip、图形处理单元(GPU)可获得的处理器核心,以及使用“片上系统”(SOC)方法集成到逻辑电路中的任何其他适当处理器或电路。随着时间的推移,广泛的功能和硬件增强可能被合并到外围设备中。例如,许多传统的主机功能可能被卸载。
从主机处理器卸载存储器操作是有利的,因为随着CPU达到其技术极限,性能增强已经变得困难。增加并行性的好处(诸如通过增加CPU核的数量和核的超线程)也在减少,而更高功耗的成本随着操作核的数量而增加。由此产生的散热变得如此显著,以至于花费CPU周期来监控温度和执行节能操作(例如,当满足某些条件时关闭核心)。
远离存储器,专用设备被合并到外围设备中,以减轻CPU的负载。例如,文件的磁盘到磁盘复制通常是通过将文件从源位置带入存储器,然后将其写入目的地来实现的,即使是在同一磁盘内复制也是如此。这样的操作涉及网络通道和存储器两者。通过允许驱动器在内部或在驱动器之间执行复制操作,而不将数据移动到存储器中,可以避免涉及存储器。这样的操作更快、更高效、耗电更少,并减少了CPU开销。通过将传入文件直接路由到磁盘而不是首先将其接收到存储器,可以将类似的能力合并到网络控制器(NIC)中。相反,文件可以直接通过局域网或广域网从磁盘发送。用于执行特定任务(例如,存储系统中的文件加密)的加速器电路从CPU接管,其中这些任务通常由存储器中的CPU执行。在没有CPU和存储器参与的情况下,不仅在CPU中而且在减少的存储器和存储器通道活动中实现了功率节省。
关于将CPU能力卸载到存储器系统,将新功能添加到传统存储器(例如,基于DRAM的存储器)是昂贵的,因为新功能是以牺牲存储器密度为代价在存储器管芯本身上实现的。然而,对于QV存储器模块,该功能可以在控制器管芯上的上述可用管芯区域中实现。当控制器管芯上的单个存储器控制器可以在多个管芯上的多个存储器阵列之间共享时,可以实现省电。QV存储器单元中更长的数据保持时间也提供了相对于DRAM的降低刷新率的优势,从而显著节省了功率。
例如,图6的存储器控制电路600实现将文件从存储器的一个区域(“源区域”)复制到存储器的另一区域(“目的地区域”)的能力。在一个实施例中,定序器或状态机跟踪源区域中的地址和目的地中的地址。在读取源区中的每个地址的位置(“源位置”)之后,可以使用三态驱动器将该位置处的数据驱动到读总线606b上,该数据被传送到写总线606a或DMA/ALU总线606c。基本上同时,对应的目的地地址被接收到地址解码器中,使得写总线606a或DMA/ALU总线606c上的数据被写入目的地区域中的对应目的地位置。当将所有源位置中的数据复制到对应的目的地位置时,复制操作完成。
图7说明了执行复制操作的另一种方法。图7示出了根据本发明的一个实施例的具有存储器内文件复制能力的算术逻辑电路608的一个实现。定序器或状态机705控制算术逻辑电路608的操作。开始时,算术逻辑电路608将初始源地址和初始目的地区域保存在寄存器文件702中的指定寄存器中。从初始源地址开始,依次访问与初始源地址之后的地址相对应的存储器位置,从每个位置读取的数据被加载到总线606d,然后由多路复用器701路由该总线606d以锁存到寄存器文件702中。然后从寄存器文件702中检索数据,以便由ALU 704输出到总线606c,然后将其写回对应的目的地址处的存储器中。定序器或状态机705维护源和目的地区域中的下一个地址,在每个总线事务之后更新它们的值。定序器或状态机705继续复制操作,直到将所有数据从源区域复制到目的区域。
在准易失性存储器中,与通常以8比特或16比特增量执行的常规存储器通道不同,对存储器的读和写可以在每个总线事务中以页(例如,4096比特)执行。回想一下,QV存储器模块中的数据传输是通过高带宽混合键或铜柱进行的,数据传输不需要片外驱动器;因此,复制操作不是功率密集型的。此外,页大小表示比在常规存储器信道中可能的带宽高得多的带宽。
通过在QV存储器模块中包括算术逻辑电路608,可以实现许多其他存储器和非存储器功能。如图7所示,算术逻辑电路608可以启用DMA操作。此外,在算术逻辑电路608中包括ALU 704的情况下,诸如DMA操作的存储器操作不限于涉及连续存储器地址的那些操作,其他变化也是可能的。如图7所示,算术逻辑电路608接收从接口总线606a和606b以及DMA总线606c和606d输入的数据,并且还从其ALU 704反馈其输出数据。
因此,最好使用ALU来制作DMA硬件。对ALU的输入从源、目的地址寄存器以及来自ALU的反馈被多路复用。
主机处理器可以执行基于键的搜索(例如,基于文件名搜索文件,或者基于字段的值搜索数据记录)。这样的操作可以使用算术逻辑单元608来执行。对于该操作,可以为定序器或状态机705定义搜索命令,其导致(i)将搜索键锁存到寄存器文件702中;(ii)定序器或状态机705访问目标可能驻留的存储器位置(例如,目录或一组数据记录);(iii)ALU 704将搜索键与从读取的每个存储器位置检索的数据进行比较;以及(iv)将命中或未命中以及任何相关数据(例如,在文件中识别目标的位置)返回到调用例程。ALU 704有助于生成非连续地址。例如,在结构化数据(例如,由行和列组成的表)中,使用ALU 704容易地生成仅访问特定字段(例如,列)的地址。这种能力可以在搜索操作中提供极大的效率。以这种方式,存储器中的任何数据集或文件都可以被格式化、操作或检查特定模式。
除了地址操作之外,算术逻辑电路608的ALU 704还可以对读或将写入存储器的数据执行操作。实际上,可以对从存储器中的任何位置检索或存储在寄存器堆702中的任何数据执行任何算术或逻辑操作,其中来自算术或逻辑操作的结果写回寄存器堆702或存储器中的任何目的位置。在主机处理器中对通过存储器接口从存储器检索的数据执行的许多任务可以卸载到QV存储器模块中提供的算术逻辑电路,其中在硅区域中成本相对较低。无需通过存储器接口在片外将数据输入和输出存储器,QV存储器实现了显着的省电和高处理速度。可以容易地并入算术逻辑电路608的其他电路包括例如用于数据对准目的的桶形移位器。桶形移位器预处理要提供给ALU 704的数据可以允许ALU 704在算术逻辑操作中具有较小的数据宽度和较大的灵活性。在QV存储器模块中,保持控制器管芯具有与存储器管芯基本相同的硅占用面积以很少或没有额外成本为存储器提供改进的和新的功能。
可以在不同的复杂程度上实现ALU 704。例如,ALU 704可以是相对简单的逻辑电路,与一组数据寄存器一起用于执行简单的算术或逻辑操作(例如,加、减、与、或、非或乘)。或者,ALU 704可以实现为通用微处理器(例如,RISC处理器)。例如,可以设置定序器或状态机705以通过由主机处理器加载的特殊直接地址空间映射寄存器对存储器数据执行命令。或者,定序器或状态机705可以执行加载到准易失性存储器中的保留区域中的微代码。例如,定序器或状态机705也可以是RISC处理器。通常,在QV存储器模块中提供计算单元(例如,处理器)为存储器内计算提供了最大的灵活性。
在一个实施例中,除了寄存器文件702之外,还可以包括快速存储器(例如SRAM)以供ALU 704在算术或逻辑操作中使用。图8(a)是根据本发明的一个实施例的QV存储器模块中的控制器管芯800的框图,该控制器管芯800包括RISC处理器804和SRAM 805。如图8(a)所示,控制器管芯800包括存储器接口801a和801b、存储器阵列支持电路802a和802b、RISC处理器804、SRAM 805和串行端口803。存储器接口801a和801b包括允许主机处理器访问存储器的工业标准存储器接口总线(例如,任一DDR接口)。存储器阵列支持电路802a和802b提供支持电路,诸如感测放大器、缓冲器、以及列解码器和驱动器,以支持QV存储器模块的存储器管芯中的存储器阵列。串行端口803允许主机处理器将代码下载到SRAM 805中,以供RISC处理器804执行。SRAM 805也可以从存储器加载,或者通过存储器接口801a和801b加载。一旦加载,RISC处理器804负责在控制器管芯800中进行的所有高级计算。在该实施例中,QV存储器在从RISC处理器804管理的两个存储器分区中管理。控制器管芯800上的一个或多个内部存储器总线(未示出)可以提供在存储器支持电路802a和802b中,用于QV存储器的两个部分内和之间的数据传输。图8(b)是根据本发明的一个实施例的QV存储器模块中的控制器管芯850的框图,该控制器管芯850包括分别由SRAM 805a和805b服务的RISC处理器804a和804b。
在图8(b)中,RISC处理器804a和804b分别通过存储器支持电路802a和802b以及存储器接口801a和801b负责一半QV存储器中的操作。可以使用RISC处理器804a和804b之间的处理器间通信来实现QV存储器的两个部分之间的数据传输。RISC处理器804a和804b中的一个可以充当主机处理器,以在QV存储器的两个分区之间进行数据传输。或者,RISC处理器804a和804b与它们相关联的SRAM 805a和805b一起可以在整个存储器上并行操作,通过仲裁协议解决访问冲突。
利用在嵌入式处理器或多个处理器中实现的存储器内计算命令,QV存储器模块提供了非常大的QV存储器,用于收集和操作数据,而无需数据跨越瓶颈传输,诸如工业标准存储器接口(例如DDR)总线。存储器接口总线801a或801b中的一个可以被转换为高速处理器总线,用于主机处理器发送用于存储器内计算、存储器内复制或DMA类型操作的命令,从而使得能够在大数据块上移动或操作的低成本机制。QV存储器模块成为嵌入式处理器,可以访问具有巨大容量的低功耗存储系统。
图9是根据本发明的一个实施例的QV存储器模块900的功能框图。例如,QV存储器模块900可以是具有由图8(a)的控制器管芯800表示的控制器管芯的QV存储器模块的实现。如图9所示,DMA存储器接口总线911和相关联的DMA控制逻辑电路902提供一个接口,用于在设置DMA命令之后在QV存储器802和外部设备之间快速数据传输,而无需主机处理器干预。此外,处理器总线912和处理器总线电路914允许RISC处理器总线904与主机处理器通信或执行其他数据事务。此外,DMA接口总线911和处理器总线912,QV存储器模块还可以实现存储器接口,诸如工业标准DDR型接口。串行端口803允许RISC处理器804通过I2C接口从下载到SRAM 805中的代码可引导。或者,QV存储器模块的一部分可以配置为通过处理器总线912可访问的只读非易失性存储器(NVM;例如,可擦除可编程只读存储器(EPROM)),其可以被提供存储启动可执行代码(boot-up executable code)。
在QV存储器模块900中执行操作的一种方法是通过命令状态交换协议。在一个实现中,主机计算机和RISC处理器804在由主机处理器和RISC处理器804以信号量(semaphore)方式访问的存储器空间的一部分中维护任务文件。图10示出了根据本发明的一个实施例的使用命令状态交换协议的QV存储器模块1000——图9的QV存储器模块900的变体。如图10所示,主机处理器可以在SRAM的命令部分1001a(或者,替代地,寄存器文件)中向RISC处理器804发出存储器命令。在每个命令完成时,或者在命令执行的预定点处,RISC处理器804在SRAM存储器的状态部分1001b(或者,相应的寄存器文件)中报告命令执行的状态。在这种方法下,QV存储器模块1000可以同时支持由RISC处理器804处理的许多命令。在一个实施例中,命令部分1001a和状态部分1001b可以分别被组织为例如循环队列。命令部分1001a或状态部分1001b中的每个条目可以是预定数目的字节(例如,64或128字节)长,该字节可以在适当的协议下由主机处理器在处理器总线912上写或读。对于在一个或多个外围设备和QV存储器模块1000之间执行的DMA型命令,可以通过存储器总线911(由存储器接口902控制)类似地实现类似的命令状态交换协议。
图11示出了根据本发明的一个实施例的组织为队列(即,先入先出缓冲器)的命令部分1001a和状态部分1001b。在一个实现中,队列被实现为循环队列,即,当其他条目处于活动状态时,最早的条目被覆盖。如图11所示,主机处理器将连续的命令加载到命令部分1001a,由RISC处理器804按照它们到达的顺序读取这些命令以执行。在完成时或在命令执行的每个预定点处,RISC处理器804将条目写入状态部分1001b,该条目由主机处理器输入检索以监视命令执行。当命令完成时,RISC处理器804加载状态部分1001b中的对应状态条目,并向主机处理器发出中断(或任何合适的唤醒信号)。当在命令的执行上交换最小交互时,主机处理器委托给RISC处理器804的任务表示主机任务的有效卸载。在许多应用中,RISC处理器804可以在SRAM 805中的预定位置执行从主机处理器下载的代码,而不是使用命令状态交换协议。
由于QV存储器模块具有比传统的基于DRAM的存储器更长的访问延迟,SRAM 805允许QV存储器模块使用各种高速缓存控制和缓冲技术以具有更高的有效速度和更好的耐久性操作。一个示例是对命令和状态消息使用缓冲,如图10和图11所示。缓冲的另一用途是速度匹配以在存储器接口处实现更高的吞吐量,因为存储器接口上的高速数据流(例如,DMA操作)以每个总线事务的字节或字的形式到达,而QV存储器模块内的存储器访问以每个读或写操作的大得多的数据单元(例如,一个或多个页)的形式执行。SRAM 805可以提供缓冲器,用于积累来自数据流的数据以用于页写操作。从QV存储器提取的数据页可以通过存储器接口从SRAM 805输出。可以通过交错存储器操作(即,填充SRAM 805中的缓冲器中的数据页,同时将先前填充的数据页从SRAM 805中的另一缓冲器写回QV存储器)来实现效率。无论是读取数据还是将数据写入QV存储器,速度匹配都能在存储器接口上维持高吞吐量。
SRAM 805还可以用于高速缓存从QV存储器检索的数据。图12是根据本发明的一个实施例的包括高速缓存控制器1201的QV存储器模块1200的功能框图。如图12所示,高速缓存控制器1201管理用于QV存储器1203的SRAM高速缓存805。在高速缓存操作中,高速缓存控制器1201拦截通过主机接口1202接收的对QV存储器1203的任何读或写访问。在写操作中,高速缓存控制器1201根据高速缓存写回策略,将高速缓存的页写入SRAM 805中的高速缓存的页,并同时或在随后的时间将高速缓存的页写回QV存储器1203。高速缓存控制器1201可以服务于来自SRAM 805中的高速缓存的页的读命令(即,“命中”);否则(即,“未命中”),即,如果页尚未被高速缓存,则高速缓存控制器1201从QV存储器1203取出包含要读入SRAM 805的数据的页。在未命中期间,新的高速缓存的页可能会退出另一高速缓存的页。根据写回策略,退役的高速缓存页可能需要写回。在一个实施例中,每个高速缓存的页包括4Kbit的数据。例如,可以基于预期应用的要求或便利性来确定页大小。例如,许多存储器管理器以该块大小存储程序代码,因为它是典型磁盘集群的大小。在一些实现中,基于预期的参考模式,可以预取和缓存连续页,以用于对这些连续页的即将到来的访问。最近访问的高速缓存的页同样被保存在SRAM 805中,并且不立即退役(例如,如果访问用于写操作,则写回)。还可以使用存储在DRAM或QV存储器模块中的逻辑或物理页表来促进预取。检测页分配中的碎片避免不必要的预取。有了高速缓存,在一些应用中,QV存储器的有效性能可以接近SRAM。在性能级上,QV存储器具有显著的成本优势,因为QV存储器具有比SRAM高得多的密度。
主机接口1202可以根据预期应用的要求(例如,高速、低功耗、高容量或任何合适的组合)由任何工业标准接口(例如,DDR、SRAM、Gen-Z、PCIe、CXL和CCIX)来实现。对于有效的SRAM高速缓存,可以将SRAM接口用作用于预期应用的主机接口1202,预期应用偏好将QV存储器视为具有高速操作的密集SRAM(例如,RAM盘类型应用)。或者,CXL、CCIX和Gen-z接口也可以用于允许更大的主机处理器控制。为了用作媒体服务器、Web主机服务器或各种图形应用中的任何一个(例如,向网络提供高数据吞吐量的任何应用),QV存储器模块可以具有PCIe接口(例如,PCIe控制器)主机接口1202。
图13是根据本发明的一个实施例的计算机系统1300的功能框图,计算机系统1300包括CPU 1301、GPU 1302、由QV模块1303a和1303b实现的QV存储器、磁盘高速缓存(或RAM盘)1305和外围控制器1304,它们都通过Gen-Z接口1306通信。如图13所示,RAM盘1305可以由QV存储器模块实现。QV存储器模块1302a和1302b以及RAM盘1305中的每一个可以以图12的QV存储器模块1200的方式在功能上配置。Gen-z接口1306提供高速总线以支持外围设备(例如,通过USB端口、本地有线或无线网络或PCIe总线连接的磁盘和其他设备)对QV存储器或RAM盘1305的访问。在该配置中,RAM盘1305例如以上面关于图10的QV存储器模块1000描述的方式向外围设备提供前端。因此,RAM盘1305允许使用SRAM型接口来执行对任何外围设备的高速、高吞吐量访问。利用SRAM高速缓存来并发地为CPU 1301或GPU 1302服务,RAM盘1305可以使用DMA从每个外围设备将顺序数据预取到准易失性存储器阵列中,以维持持续的数据传输,从而减少等待状态或偶尔的暂停。
由结合存储器内计算能力的QV存储器模块形成的DIMM(“QV DIMM”)不仅是高容量存储器设备,而且是可以卸载传统CPU任务的独立计算设备。如果集成电路封装(即“芯片”)中的每个QV存储器模块提供256Gb的容量(具有单个存储器管芯),则8芯片QV DIMM在单侧DIMM上提供2Tb或256GB的存储器。(一Tb是240比特数据;一TB是243比特数据)。相比之下,DIMM形成的8个当代DRAM芯片的输出只能提供32Gb或4GB的数据。换句话说,QV DIMM比由当代DRAM芯片形成的DIMM具有64倍的密度优势。此外,QV DIMM可以具有多达16个RISC处理器的计算能力,考虑到根据例如图8(b)的QV存储器模块850所示的架构可以在每个QV存储器模块中实现两个RISC处理器。
利用上面结合图2和图3所示的方式的管芯堆叠,QV存储器模块中的4管芯堆叠提供1TB的容量。存储器内计算能力打破了传统存储器接口的瓶颈。存储器内计算使QV存储器模块能够使用数据操作、高速缓存和各种缓冲方法成为具有计算能力的主机级设备。临时申请IV公开了通过允许多个主机通道访问同一存储器块的交换矩阵跨CPU共享存储器的许多方法。图14(a)示出了根据本发明的一个实施例的包括存储器分区1404a-1404d的QVDIMM 1400,每个存储器分区与SRAM 1403a-1403d相关联。QV DIMM 1400可以包括一个或多个QV存储器模块。如图14(a)所示,QV DIMM 1400包括分别控制存储器通道1405a-1405d的存储器接口1401a-1401d。开关矩阵1402可以被配置为使得存储器分区1404a-1404d中的任何一个可以通过存储器通道1405a-1405d中的任何一个被访问。SRAM 1403a-1403d中的存储器缓存确保每个存储器分区作为高容量和低有效延迟存储器执行。
如上所述,QV DIMM 1400还可以提供存储器计算能力。例如,可以通过由QV DIMM1400内的存储器分区1404a-1404d构成的存储器来实现存储器通道1405a-1405d之间的数据共享。QV DIMM 1400内的QV存储器模块中的RISC处理器可以充当主机,用于访问、传输或操作QV存储器的其指定部分中的数据。在一个实施例中,每个存储器通道可以被分配给映射到存储器分区的特定部分的地址空间的一部分,从而允许QV存储器的通道共享和统一存储器访问(UMA)。当QV存储器被分区时,每个分区由多个端口可访问,可以期望更高的性能,因为多个端口的可用性减少了由于资源冲突引起的访问延迟。
图14(b)示出了根据本发明的一个实施例的计算机系统1450,包括分别耦合到QVDIMM 1400的存储器通道1405a-1405d的处理器1410a-140d。处理器1410a-1410d每个可以是需要访问存储器的任何合适的计算设备,例如CPU、GPU或可重构处理器(例如,由现场可编程门阵列(FPGA)构成的处理器)。如图14(b)所示,存储器通道1405a-1405d中的每一个可以独立配置为支持任何合适的工业标准存储器接口(例如,DDR4、DDR5或HBM接口)。在图14(b)的配置中,QV DIMM 1400可以被分区为使得每个信道专用于QV存储器的一部分,或者,可选地,一个或多个存储器信道可以共享QV存储器的全部或一部分。在共享配置中,从共享通道中的一个对存储器块的访问可以由信号量(例如,由配置寄存器中设置的位实现)保护,信号量阻止由另一存储器通道对该存储器块的访问。被阻塞的存储器通道可以在队列中等待。在完成对存储器块的访问时,释放信号量。在其他实施例中,可以允许上游控制器仲裁接入冲突,以根据一些排序方案给出静态或动态设置的优先权。如14(a)所示,每个存储器分区可以包括SRAM电路。上面通过引用结合的临时申请III,公开了可以使用这种SRAM电路的各种方式。例如,SRAM电路可以通过充当相关联的存储器分区的缓冲存储器、高速缓存存储器或另一适当方式,或充当相关联的存储器分区的高速缓存存储器来加速存储器操作。
图14(a)和14(b)的QV DIMM方法使得能够在存储器接口的存储器侧执行重要计算任务的系统(“以存储器为中心的计算”)。以存储器为中心的计算避免了等待数据从存储器中读出所产生的延迟。该方法与逻辑电路使用多级高速缓存访问数据的方法相比具有显著的优点,多级高速缓存使用在短距离上执行的寄存器到寄存器传输来访问数据(因此,减少了阻性电容延迟)。本发明通过提供高容量存储器(例如,在每个存储器管芯中有数十到数百千兆字节的存储器,可在逻辑块中访问,这些逻辑块分别比由JEDEC固态技术协会规定的DRAM和HBM中的8位或128位字宽大得多)来实现以存储器为中心的计算。在QV DIMM内,每个QV存储器模块具有一个或多个存储器管芯,存储器电路被组织为电路块,每个电路块允许每个存储器事务读出1024或更多比特。QV存储器可以被组织为多端口存储器。在多端口存储器中,存储器被分区为每个可从一个或多个专用端口访问的存储器块。通过适当调整分区大小和适当数量的端口,这样的组织允许并行访问大存储器中的许多存储器块,具有减少的冲突的可能性。
图15(a)-图15(d)示出了根据本发明的一个实施例的QV DIMM 1510a-1510d,每个包括处理器1501,其分别以(a)单秩配置,具有8位存储器接口,(b)双秩配置,具有32位存储器接口,(c)四秩配置,具有16位接口,以及(d)单秩配置,具有64位接口来访问八个QV存储器模块(即,QV存储器模块1502a-1502h)。在图15(a)中,处理器1501针对每个读或写操作同时访问所有八个QV存储器模块,访问每个QV存储器模块的寻址存储器管芯中的电路块行。当QV DIMM每次写或读操作接收或提供64比特数据时,处理器1501从所访问的每个QV存储器模块中选择8比特数据。
在图15(b)中,QV存储器模块1502a-1502h可以被分成两组,每个组包括4个QV存储器模块,并且处理器1501在每个读或写操作中访问两组中的一个。在该配置中,可以通过一个或两个存储器通道访问QV存储器。当QV DIMM每次写或读操作接收或提供64比特数据时,处理器1501从所访问的每个QV存储器模块中选择16比特数据。
在图15(C)中,QV存储器模块1502a-1502h可以被分成四组,每个组包括2个QV存储器模块,并且处理器1501在每个读或写操作中访问四组中的一个。在该配置中,可以通过一个、两个或四个存储器通道访问QV存储器。当QV DIMM每次写或读操作接收或提供64比特数据时,处理器1501从所访问的每个QV存储器模块中选择32比特数据。
在图15(d)中,QV存储器模块1502a-1502h可被以划分为八个组,每个组包括QV存储器模块,并且处理器1501在每个读或写操作中访问八个QV存储器模块中的一个。在这种配置中,可以通过一个、两个、四个或八个存储器通道访问QV存储器。当QV DIMM每次写或读操作接收或提供64比特数据时,处理器1501从所访问的QV存储器模块中选择64比特数据。在该配置中,用于在每个QV存储器模块管芯到QV DIMM 1510d的公共存储器接口总线之间路由的数据的导体可能非常多,以至于可能需要插入器(例如,独立的印刷电路板层或硅衬底)。
在图15(a)-图15(d)中的每一个中,由于处理器1501处理QV DIMM 1510a-1510d内的所有读和写操作,所以数据和控制信号缓冲进出QV DIMM接口的复杂方案——通常是通过多个存储器通道支持多个存储器模块的DIMM所需要的——不是必需的。因此,这种QVDIMM在成本和板空间上都是有效的。如上所述,处理器1501的复杂性取决于预期在QV DIMN内执行的存储器内计算。在最简单的情况下,处理器1501可以通过用于QV存储器模块的DMA和ALU电路来实现,如上面结合图7所讨论的,其中单个DIMN范围的处理器充当控制器。
图16是示出根据本发明的一个实施例的QV DIMM 1600的功能框图,QV DIMM 1600包括RISC处理器1601,该处理器管理用QV DIMM 1600实现的QV存储器中的存储器内计算。在各种DIMM配置中。利用包括处理器1601和SRAM 1602的QV DIMM控制器,QV DIMM 1600实现QV存储器,该QV存储器处理从主机处理器发出的要在QV DIMM 1600的QV存储器中执行的高级命令。QV DIMM 1600优选地具有两个或多个存储器通道——例如通过共享存储器接口数据总线1606提供——通过该通道可以访问在QV DIMM1600中实现的QV存储器。例如,如图16所示,QV存储器在QV存储器模块1604a-1604c和1605中实现,其中QV存储器模块1604a-1604c提供对其存储器阵列的多端口访问。在处理器1601管理通过共享控制总线1607的所有存储器访问的情况下,可以使用整个存储器来完成许多存储器内计算任务。例如,数据可以从任何QV存储器模块复制或移动到QV DIMM 1600内的任何其他QV存储器模块。每个QV存储器模块的控制器管芯中的组合计算能力与处理器1601组合,例如适用于许多人工智能应用。
接口数据总线1606可以由多个QV DIMM共享,以创建更大的存储器内计算存储器设备。可以提供“投标”(bidding)协议以允许QV DIMM中的处理器获得对接口数据总线1606的访问以获得访问。互连多个QV DIMM的能力使得在存储器中对大量数据进行计算和在QVDIMM之间以最少的主机干预进行数据传输都成为可能。传统的DIMM可以为每个总线事务提供8、16或32位存储器访问。由于QV DIMM具有较宽的内部总线,较宽的存储器接口总线可能适用于许多应用。允许程序员利用存储器中的计算命令(例如,复制、移动或搜索)的应用编程接口(API)。
为了利用其计算能力,可以使用QV DIMM作为系统设备。例如,利用当满足特定编程条件时可以将QV存储器配置为非易失性存储器(例如,闪存)的优点,可以向QV DIMM提供闪存接口。为了支持NVM读、写和擦除操作,处理器1601可以用作闪存控制器。由于其预期的快速“保存到闪存”和“从闪存加载”操作,QV DIMM提供了一种系统设备,其允许系统快速启动或在系统电源中断之前保存关键数据(例如,通过定期日志记录)和检查点的能力;可以从QV DIMM内的计算资源管理这样的操作。在现有技术中,这些任务是与传统存储系统(例如,固态盘)结合执行的,传统存储系统是比QV存储器显著慢的设备。这类任务所需的时间和开销限制了可以节省的关键数据或检查点的频率和数量。此外,通过允许从多个存储器通道访问QV DIMM,可以在多个设备之间共享QV存储器的任何部分。这种数据共享能力特别适合于基于事务的应用,并且允许并行处理的短任务可能占主导地位(例如,搜索应用)。
根据一个实施例,当向QV DIMM发出读命令时,通过感测放大器读取与页内指定地址相对应的数据页,并将其锁存到保持寄存器或SRAM的相关联部分中。方便的页大小是1Kbit或2Kbit。初始页访问会导致整个读取访问延迟。在这方面,初始访问延迟是从行地址解码开始到数据在存储器接口准备好之间的时间。优选地,QV存储器模块中的初始页访问需要小于100纳秒。对于同一页内的数据的后续读命令,由于数据已经从最初访问到保持寄存器或SRAM中被锁存,读取延迟具有显著更短的持续时间:在访问保持寄存器或SRAM和数据在存储器接口上可用之间产生的时间,其约为20-40纳秒或更短。在大多数应用中,存储器访问是针对64位缓存行或64字节缓存块的。因为1Kbit页是256字节或32个8字节缓存行。当需要整个页时,QV存储器模块只进行一次100纳秒的初始访问以及31次每次35纳秒的后续访问来满足。在QV存储器模块中,控制器管芯中的存储器控制器跟踪每个页访问,以利用后续访问的较短持续时间。
QV DIMM还可以支持传统的就绪/忙碌协议(例如,NVMDIMM-P标准)。在这样的协议下,来自主机处理器的存储器访问可以停滞,直到数据准备就绪,此时存储器接口发送就绪信号以通知主机处理器从存储器访问请求的数据在存储器接口准备就绪。QV DIMM的处理器监视保持寄存器或SRAM中页的可用性。如果页尚未被取出到保持寄存器或SRAM中,则处理器否定就绪信号,直到页被取出到保持寄存器或SRAM中并在存储器接口处使所请求的数据可用为止。然而,如果在读访问中请求的数据已经在保持寄存器或SRAM中,则请求的数据被路由到存储器接口,并且就绪信号被断言。为了确定所请求的数据是否已经被提取到保持寄存器或SRAM,QV DIMM的处理器将已经提取的页的存储体、行和页地址与所请求的访问的地址进行比较。使用就绪/忙碌协议,QV DIMM的有效读取延迟可以与传统的基于DRAM的存储器性能相比较。
推测性地预取附加的连续页到SRAM中可以进一步摊销初始存储器访问的延迟,因为许多程序顺序地访问数据的连续页。通过推测预取,意味着基于在不久的将来需要这些页的推测,将附加的连续页提取到SRAM中。以下,可互换地使用“预取”和推测预取。
在QV存储器模块的一个实现中,在电路块内的三维存储器阵列具有一个在另一个之上堆叠的多个存储器串平面,每个存储器串存储一个或多个数据页。同样,在该实施例中,在每个电路块中,每个行地址由存储在垂直对准的存储器串的多个平面中的一组连续数据页共享。例如,在一个实施例中,每个电路块在八个平面中包括4K(212)行存储器单元。在每个电路块中,每个行地址包含数据的8个连续的1Kb页或2Kb页,或8K比特或16K比特的8个平面。在一些实施例中,通过在每个平面中具有更大数量的数据页,或者通过在每个电路块中具有附加平面,可以实现甚至更高的存储器密度。每次读或写访问导致共享该行地址的所有数据页(“活动页”)转移到SRAM。另外,对应于一个或多个相邻行地址的页也可以预取到SRAM中。例如,驻留在由于具有相同行地址而被激活的相邻电路块中的页也被提取。如果需要,这些页被映射到为读或写操作指定的地址的连续页地址,也可以预取到SRAM中。由于预取可能与服务对已经高速缓存的页的读访问重叠,所以预取减少了有效访问延迟。
一个变体基于通过跨通过独立的驱动器或感测放大器组写入或输出的存储器块分散数据来减少访问延迟的策略来缓存预定数量的存储器块。例如,每个存储器块可以包含QV存储器中的所有页,这些页由电路块行的所有电路块中的相同行地址激活(“活动页”)。当电路块行中的每个电路块被写入或输出到不同组的驱动器或感测放大器时,活动页可以独立地(例如,并行地,或以任何适当的重叠、流水线方式)加载到SRAM存储器中。对活动页的重叠访问显著降低了它们的有效独立访问延迟。在SRAM中预取和缓存预定数量的活动存储器块不仅减少了延迟(例如,实现接近SRAM的有效读取延迟(例如,20-25纳秒)),而且增加了吞吐量。当编程器和编译器意识到并利用重叠访问时,可以很大概率地实现减少的延迟,从而导致高效的程序执行。
图17(a)-图17(b)提供了根据本发明一个实施例的在QV存储器模块1700中从存储器管芯1701中的电路块1711到控制器管芯1702的存储器接口1712的读取路径的功能视图。如图17(a)所示,电路块1711包括4K(222)行,其中每行具有多个2K比特存储器单元页(例如,每个平面一个或多个2K比特页)。图17(b)示出,在每行内,页解码器1719a-1719n独立激活2K比特页,以便由感测放大器1713感测。每个感测到的页从感测放大器1713锁存到SRAM1714a中。图17(a)示出了存储器管芯1701(2K-bit)的SRAM 1714a和控制器管芯1702(128K-bit)的SRAM 1714b中的缓存。当使用先进制造工艺制造控制器管芯1702用于逻辑电路时,SRAM 1714b具有比SRAM 1714b更大的密度,因此对于给定的硅面积可以实现更大的容量。在一些实例中,SRAM 1714b的容量可能受到在提供诸如RISC处理器和用于存储器通道的多个接口的逻辑电路之后可用空间的限制。在任何实现中,控制器芯片中可用SRAM容量和逻辑电路之间的容量权衡取决于其具体应用。在一些实施例中,一些应用所需的非易失性存储器可以在QV存储器模块1700中在存储器管芯1701或控制器管芯1702上提供。在QV存储器模块1700中提供非易失性存储器使得能够存储关键数据、检查点数据或其他关键系统数据。
在QV存储器的编程操作中,数据被写入被擦除的存储器单元。因此,擦除操作通常先于编程操作。擦除操作和随后的编程操作的组合统称为“写序列”。在一个实施例中,对于256-KB页的每个擦除或编程操作需要大约500纳秒,使得写序列的延迟大约为一微秒。如果对8字节高速缓存行的写请求总是触发对QV存储器的写操作,则在SRAM中高速缓存的每个2K比特页中有32个写序列是可能的。如此频繁地向QV存储器中写操作可能会损害QV存储器中的耐久性。为了减少这种危害,可以将来自主机处理器的写命令排队,尽管写命令中的数据与重新计算的纠错码(ECC)一起立即合并到SRAM中的高速缓存的页中。在稍后的时间,高速缓存控制器1715通过将SRAM中的数据写入QV存储器来执行写命令。在队列写命令在QV存储器中完成之前,对页的任何读访问都可以从SRAM中的高速缓存的页被服务。将高速缓存的页写入QV存储器可以被推迟,直到在随后的读或写命令中需要映射到相同SRAM位置的不同页(“活动页的切换”)。对于上面讨论的存储器块缓存可以采用基本上相同的方法。这种延迟写回策略显著增强了QV存储器的耐久性。因此,依据本发明,页、存储器块甚至文件的写操作可以在延长的时间段内组合来自主机处理器的多个写命令,从而导致功率节省和更好的耐久性。
执行上述高速缓存策略的高速缓存控制器1715可以在软件、固件或两者中实现。当对页的读或写访问导致活动页的切换,并且要被驱逐的页包含至少一个排队写操作指定的数据时,可以产生等待状态以停止读或写访问。如上所述,写序列可能需要多达一微秒。预取连续页,允许重叠被驱逐页的写序列,以便在从主机处理器接收到用于访问替换页的实际命令之前可以完成活动页的切换。因此,预取隐藏了被驱逐页的写入延迟。在对该页的写访问正在完成的同时,对活动页中的一个的读访问可以到达,是可能的。处理这种读访问的一种方法是暂停正在进行的不完全写操作,并在恢复写操作之前为来自SRAM的读访问提供服务。只有当写序列中的擦除操作明显长于写序列中的编程操作时,这种方法才是合理的。当写序列需要足够短的持续时间时,停止正在进行的写序列以服务于读访问是不必要的。
当对没有排队写命令的页中的数据接收到写请求时,该写请求通过“读-修改-写”序列完成。在读-修改-写序列期间,页首先被高速缓存在SRAM中,这可能需要活动页的切换。然后,根据当前写请求在SRAM中修改高速缓存的页,同时,将高速缓存的页写回QV存储器的操作排队。如果在写请求时已经完成了对活动页的所有先前的写请求,则通过(i)修改SRAM中的高速缓存的页,和(ii)将写操作排队以便写回QV存储器来满足写请求。当接收到针对具有未完成排队写操作的活动页的写请求时,该写请求可以通过以下方式完成:(i)如果已经发起,等待直到先前写操作完成,(ii)根据当前写请求修改SRAM中的高速缓存的页,以及(iii)排队写操作以将高速缓存的页写回QV存储器。如果先前对QV存储器的写操作尚未发起,则可通过以下方式满足写请求:(i)在SRAM中的高速缓存的页中合并用于当前和先前写请求的数据,(ii)取消先前排队的写操作,以及(iii)将具有合并数据的新写操作排队回QV存储器。同时,任何读访问都可以从SRAM中高速缓存的、更新的页进行服务。QV存储器中有写操作排队的页不需要刷新。可以允许在QV存储器中的页上的任何排队写操作在该页指定的刷新时间进行。
图18示出根据本发明的一个实施例的根据上述高速缓存策略的高速缓存控制器(例如,高速缓存控制器1715)的简化流程图1800。为了清晰起见,图18省略了一些非必要的细节,如ECC的计算或重新计算。下面是本发明的高速缓存控制器的功能任务的列表:
1.接收读或写命令;
2(a)对于读命令:(i)如果所请求的数据在SRAM中的活动页中的一个中(即,已经高速缓存),则从SRAM服务读命令;(ii)否则,从QV存储器中检索具有请求数据的页并高速缓存到SRAM中,并从SRAM服务读命令;
2(b)对于写命令:(i)从QV存储器中检索与写命令中指定的地址相对应的页并高速缓存到SRAM中;(ii)将写命令中指定的数据合并到高速缓存的页中;以及(iii)对高速缓存的页的写序列进行排队;
3.在将页从QV存储器高速缓存到SRAM之后预取连续页(如果需要的话);
4.当对活动页执行排队写操作到QV存储器中时,等待直到与该活动页相关的页的所有预取完成。如果是,则可以继续写操作。否则,将排队的写操作推迟直到此类预取操作完成。
5.如果读命令导致活动页的切换,则使用就绪/忙碌协议激活等待状态。如果不支持等待状态,则返回错误信号,通知主机处理器根据适当的重试策略在以后的时间重试。
关于活动页的切换(即,所请求的页当前没有缓存在SRAM中),如果不使用就绪/忙碌协议,则作为主机处理器报告错误比让主机处理器等待加载替换页更好。在适当的时间安排下,主机处理器的重试将发现SRAM中已加载的替换页。在一个实施例中,QV存储器可能需要100纳秒来将所请求的页带入SRAM中,并且需要25纳秒来执行对高速缓存的页的后续读取。因此,可以实现每个高速缓存未命中125纳秒的访问时间,不包括高速缓存控制器中的任何开销延迟。在大多数应用中,高速缓存未命中应该是相对罕见的事件,因此过多的高速缓存未命中指示高速缓存策略不适合该应用。合适的错误日志记录——可能就像错误计数器一样简单——为优化高速缓存策略提供了指示符。在一个实现中,当累积的错误数目超过预定阈值时,可以设置配置寄存器中的位,从而警告主机处理器。如果需要,在高速缓存控制器中调整或改变高速缓存策略之后,主机处理器可以清除所设置的位。
在大多数应用中,虚拟地址转换为传统DRAM中的物理地址,该地址指向4-kbyte(4-KB)存储器块,这也是磁盘集群的惯用大小。由于用户任务(“作业”)的存储器映像可以有利地分区成许多4-KB块,这些块可能由虚拟存储器系统在不同时间从磁盘加载到存储器中的不同位置。为了访问加载的存储器块,主机处理器通常使用逻辑到物理地址转换表,通常在一组转换寄存器中提供。这种布置表明,合适的多个4-KB块中的页数可以是要预取到存储器中的适当的数据单位(“填充大小”)。填充大小可以是在系统启动时可以初始化的参数。
图19是示出根据本发明的一个实施例的高速缓存控制器1900在QV存储器1901上的操作的框图。如图19所示,高速缓存控制器1900包括(i)高速缓存状态机1902,其是控制高速缓存控制器1900的操作的电路,(ii)SRAM高速缓存缓冲器1915,其包括数据高速缓存1905和地址缓冲器1903,以及(ii)主机接口电路1904(例如,工业标准DDR存储器接口),其控制存储器接口总线1913。数据高速缓存1905和地址缓冲器1903——其包括地址寄存器部分1903(i)和标签部分1903(ii)——以传统方式(例如,将至少标签部分1904(ii)实现为内容可寻址存储器电路)为QV存储器1901提供数据高速缓存。QV存储器1901与SRAM高速缓存缓冲器1915结合,提供由主机处理器通过主机接口电路1904可访问的高速存储器。
在图19中,QV存储器1901包括(i)存储器阵列1910,(ii)读写状态机1906,其控制QV存储器1901中的读写操作,(III)地址解码器和输入输出驱动器电路1909,(iv)页缓冲器1908,(v)ECC电路1907,和(vi)数据总线1911。高速缓存状态机1902对照地址缓冲器1903检查由主机处理器提供的用于通过主机接口1904进行读或写访问的地址,以确定读或写请求中的数据是否已经缓存在数据高速缓存1905中。如果是,对于读操作,从数据高速缓存1905中的高速缓存的页读取所请求的数据,并返回到主机处理器。对于写操作,由主机处理器在存储器接口总线1913上呈现的数据被合并到高速缓存的数据中,并且写操作被排队以使合并的数据在随后的时间被写回QV存储器1901,如上所述。否则,即,读或写操作中的数据尚未驻留在SRAM高速缓存缓冲器1905中,高速缓存状态机1902使读写状态机1905将读或写请求的地址锁存到电路1909中的地址缓冲器中,并发起所请求的读或写操作。对于读操作,所请求的数据被输出到数据缓冲器1908,并由电路1909驱动到数据总线1911上,用于高速缓存在SRAM高速缓存缓冲器1905中,并用于主机接口1904以将所请求的数据输出到主机处理器。对于写操作,高速缓存状态机1902与读-写状态机1906一起执行如上所述的读-修改-写操作。
根据系统操作特性而变化的良好预取策略特别有利。在一个实施例中,高速缓存状态机1902包括监视电路,以允许系统分析员设计和改进预取策略以获得最佳操作。图20(a)示出了根据本发明的一个实施例的高速缓存控制器1900的实现1950的更详细的操作。如上所述,在写操作中,在存储器接口总线1913上从主机处理器接收的数据被合并到SRAM高速缓存1905中的高速缓存的页中,并在高速缓存状态机1902的控制下排队用于随后写入QV存储器1901中的操作。
图20(a)示出将存储器接口总线1913上的写数据提供到主机写数据总线1953上的主机接口电路1904,从主机写数据总线1953上由多路复用器1951驱动写数据到写数据总线1954上以锁存到数据缓冲器1905中。对于读操作,从QV存储器1901中的页缓冲器1908检索的数据被提供在数据总线1911上,从数据总线1911上由主机接口电路1904将数据驱动到存储器接口总线1913,同时由多路复用器1951在写数据总线1954上同时提供。主机接口电路1904将主机处理器为每个读或写操作指定的地址从存储器接口总线1913路由到地址总线1955,地址从地址总线1955被锁存到地址缓冲器1903(即,地址部分1903(i)和标记部分1903(ii))中。当数据在作为高速缓存状态机1902的一部分的定序器1952的控制下被写回QV存储器1901时,地址和高速缓存的数据分别被提供在地址总线1814和数据总线1911上。
在读操作中,数据通常从数据缓冲器1905读取并通过存储器接口总线1913提供给主机处理器;同时,基于地址缓冲器1903的标签部分1903(ii),定序器1952将附加页从QV存储器1901预取到数据缓冲器1905中。标签部分1903(ii)可以是内容地址存储器,其不仅通过“命中/未命中”位指示与读请求中指定的地址相关联的数据是否被高速缓存(即,高速缓存命中),而且当存在一个或多个未决写请求时,还通过“脏位”(dirty bit)发出信号将高速缓存的数据写回QV存储器1901。这些信号位指导定序器1952是否预取附加页或将高速缓存的页写回QV存储器。定序器1952可以包括用于监视存储器操作和根据所监视的存储器操作中的任何检测到的访问模式匹配预取和写回策略的电路。
当QV存储器1901是多端口(即,通过两个或更多数据总线可访问)时,可在控制器管芯上为每个端口提供独立的高速缓存控制器。每个端口可以独立地操作其相关联的存储器分区,其中数据缓冲器1905被分区,使得每个分区对应于QV存储器1901的特定非重叠部分。或者,数据缓冲器1905可以在端口之间共享,其中在标签部分1903(ii)中分配端口控制位以指示哪个端口可以访问QV存储器1901的对应部分。在该配置中,可以提供单个高速缓存控制器来服务所有端口。高速缓存控制器组织的选择例如取决于如何共享QV存储器1901以及是否存在一个或多个RISC处理器。
高命中率对高系统性能至关重要。例如,当从缓存数据中检索请求的数据需要25ns和100ns,否则,98%的命中率导致有效访问时间为.98x 25+.02x 100=27ns。这样的性能优于大多数DRAM。此外,高速缓存使用和延迟写操作改善了QV存储器1901中的耐久性、干扰和功率性能。
在一些实施例中,当QV存储器1901被组织在存储器块的存储体中时,在QV存储器1901中完成块级高速缓存。在该配置中,如图20(b)的系统1970所示,数据缓冲器1905被分区为SRAM块1905(i)、…、1905(n),每个为QV存储器1901的存储器块的大小。数据缓冲器1905中的每个SRAM块将存储器块高速缓存在QV存储器1901的对应的存储体中。尽管每个SRAM块需要独立的、独立的高速缓存存储器控制器(即高速缓存存储器控制器1952(i)、…、1952(n)),但每个高速缓存存储器控制器在实现中可以相对简单,具有有限的能力。系统1970特别适合于具有频繁写操作的应用。由于大多数访问由SRAM块提供服务,因此隐藏了较长的写延迟,并可以期望提高耐久性。
图20(c)示出了根据本发明的一个实施例的系统1990,其中SRAM数据缓冲器1905与QV存储器1901分开寻址。如图20(c)所示,QV存储器1901的存储器块1901(i)、…、1901(n)被分配连续地址,数据缓冲器1905的SRAM块1905(i)、…、1905(n)可以在分配给存储器块1901(i)、…、1901(n)的地址空间之上或之下的地址空间中分配连续地址。或者,存储器块1901(i)、…、1901(n)可以各自分配一地址范围,在相邻存储器块之间具有预定的地址间隙。这些地址间隙分别分配给SRAM块1905(i)、…、1905(n)。该组织在某些应用中是有利的,其中主机处理器可以分配用于存储频繁访问的关键数据(例如,文件元数据、关键表或目录)的SRAM块,以确保可以以短的访问延迟访问这些数据。有利地,在存储器内计算应用中,SRAM块也可以从一个或多个板载处理器访问。
在一些实施例中,高速缓存功能可以由QV DIMM中的控制器来处理或增强。控制器(“QV DIMM控制器”)可以例如由QV DIMM中的RISC处理器实现。这样的RISC处理器可以充当许多从存储器内计算单元的主机,控制将存储器内计算任务分配给对存储在QV存储器中的数据进行操作的从处理器。在一个实施例中,QV DIMM控制器解析高级计算命令,并呈现由多个从存储器内计算单元执行的多个低级存储器内计算命令。在这种布置下,每个QV存储器的控制器管芯中的大逻辑区域可以被分配用于要包括的附加数据处理功能(例如,存储器通道或由RISC处理器控制或实现的任何系统功能)。
图21示出了根据本发明的一个实施例的QV DIMM控制器2100,包括启用存储器内计算命令的RISC处理器2016、命令缓冲器2101和状态缓冲器2102。如图21所示,RISC处理器2106监视主机接口总线2140用于存储器内计算命令。这样的命令可以通过对特殊地址的写操作(即,地址映射命令)来表示。通过控制逻辑电路2103a,将存储器内计算命令加载到命令缓冲器2101中。RISC处理器2106可以将存储器内计算命令解码为一个或多个操作及其相关操作数(如果有的话),这些操作分别加载到缓冲器2104和2105中,以便在QV存储器的适当部分中执行。操作及其相关联数据分别经由处理器总线2130和存储器总线2131被传送到QV存储器的指定部分。RISC处理器2106可以监视操作的状态。状态信息可以存储在状态缓冲器2102中,并且可以允许主机处理器通过一个或多个状态命令进行查询。QV DIMM控制器2100提供一组可缩放的、系统化的存储器内计算命令和状态查询,而不是分布在QV存储器的分区之间的临时寄存器组(hoc set of register)。
根据本发明的一个实施例,可以在QV DIMM控制器(例如,QV DIMM控制器2100)中包括闪存端口(未示出),其允许QV存储器的一部分作为NVM操作。在该配置中,QV存储器中的基本性质的数据可以存档在NVM部分中。可以在功率损失之后恢复NVM部分中的数据。NVM部分还可用于存储用于RISC处理器2106的固件,从而促进QV DIMM控制器2100的引导。NVM部分避免了用于持久写操作的持久存储器软件和API。NVM部分可以镜像在QV存储器中以用于更快的读操作。
在QV DIMM中实现的QV存储器中包括附加端口会影响信号在QV存储器中的路由方式。QV存储器或QV DIMM高速缓存控制器中的复杂性可能需要封装技术中的适应。例如,QV存储器可以由多个QV存储器模块提供,每个QV存储器模块包括多层存储器管芯,以获得非常高的存储器容量。图22示出QV DIMM 2200中的插入器设备2201(例如,硅衬底)。插入器设备2201容纳QV存储器模块和一个或多个处理器(例如,设置在每个QV存储器模块中的一个或多个控制器管芯上)之间的所需布线。如图22所示,NVM模块2202、QV存储器模块2204(i)-(viii)和QV DIMM高速缓存控制器2205通过导体组2206(i)和2206(ii)互连,并被组织为插入器设备2201上的各自存储器通道。插入器设备2201允许在单个硅衬底的平面上路由多个存储器通道。此外,TSV可以提供在插入器设备2201的硅衬底中,以允许设置在相对平面上的微型球通过工业标准存储器接口(例如,DDR)与主机处理器或另一外部电路连接。可以通过附加的印刷电路板(PCB)上的边缘连接器提供对工业标准存储器接口的访问。可选地,如图22所示,PCB边缘连接器2207(i)和2207(ii)通过导体组2206(i)和2206(ii)附接并互连到插入器设备2201,以允许通过一个或多个存储器接口(未示出)对存储器通道的外部访问。
对于更高容量的QV存储器,可以使用球栅阵列插座来代替边缘连接器。图23(a)和图23(b)分别是根据本发明的一个实施例的包括插入器设备2301的基于球栅阵列插座的系统2300的实现的示例性侧视图和顶视图。如图23(a)所示,基于球栅阵列插座的系统2300包括QV存储器模块2304、GPU2303、CPU 2305、存储器接口电路2308(i)和2308(ii)以及FPGA电路2310,它们提供在插入器设备2301的第一平面上的并由该平面上的导体互连。如上所述,插入器设备2301可以是具有被提供在相对平面上的微型球连接器的硅衬底,该微型球连接器通过插入器设备2301中的TSV连接到第一平面上的导体。插座2309包括用于外部访问的高密度引脚或其他连接器;插座2309的高密度连接器使用合适的技术(例如,可以使用杠杆施加的力将插入器设备2301保持在插座2309上以进行实心连接的零力插座)连接到插入器设备2301上的微型球。因此,系统2300提供了非常密集和低功耗的解决方案,该解决方案以减小到高容量QV存储器的路由连接距离结合各种处理器或计算设备(例如,CPU 2303、GPU2305或FPGA电路2310)。QV存储器模块2304可以具有并入其中的任何数量的存储器和控制器管芯,以实现任何适当的存储器容量。QV存储器模块2304是低功率设备,这是由于相对不频繁的刷新要求和存储器管芯之间的短互连距离造成的。
甚至更高的密度可以通过堆叠例如每个由边缘连接器或插座连接的多个系统板来实现,每个系统板具有诸如图22(例如,基于边缘连接器的)或图23(a)和图23(b)(基于插座的)所示的结构。图24示出封装2400,其包括多个系统板(例如,系统板2401(i)和2401(ii)),这些系统板通过塔形连接器2402(i)和2402(ii)互连,塔形连接器2402(i)和2402(ii)接合系统板上的板连接器。额外的互连可以由塔式插入器设备2403提供,例如,塔式插入器设备2403可以具有诸如上述用于插入器设备2201的结构。包括塔式插入器设备2403的堆叠结构可以封装在使用任何合适的封装技术实现的外壳2404中。封装2400提供了一种密集的解决方案,该解决方案可以使用例如常规DIMM接口或PCIe接口结合到系统中,类似于常规RAM-磁盘附件的PCIe接口。封装2400提供了灵活的高密度的存储器附件。
提供上述详细描述及其附图是为了说明本发明的特定实施例,而不是旨在限制。许多修改和变化是可能的,并且包括在本发明的范围内。在下面的权利要求中阐述了本发明的各个方面。
Claims (88)
1.一种存储器设备,包括:
多个准易失性存储器电路,每个准易失性存储器电路形成在独立的半导体衬底上,并且通过形成在半导体衬底中的硅通孔彼此互联;以及
存储器控制器电路,所述存储器控制器电路还形成在与所述准易失性存储器电路的半导体衬底独立的半导体衬底上,其中,所述存储器控制器电路通过混合键与所述准易失性存储器电路中的一个互连,并且其中,所述存储器控制器电路操作所述准易失性存储器电路作为一个或多个准易失性存储器。
2.根据权利要求1所述的存储器设备,其中,所述存储器设备是互连在印刷电路板(PCB)上以形成PCB存储器模块的多个存储器设备中的一个。
3.根据权利要求1所述的存储器设备,其中,所述存储器设备是被提供并互连以形成双列直插存储器模块(DIMM)的多个存储器设备中的一个。
4.根据权利要求1所述的存储器设备,其中,所述准易失性存储器电路使用晶圆规模堆叠技术堆叠。
5.根据权利要求1所述的存储器设备,其中,每个准易失性存储器电路包括多个模块化存储器电路(“电路块”),所述模块化存储器电路被布置为所述准易失性存储器电路形成其上的半导体衬底上的二维阵列。
6.根据权利要求5所述的存储器设备,其中,所述二维阵列被组织为行和列,并且其中,所述二维阵列的每个行中的所述电路块形成一个或多个存储器存储体。
7.根据权利要求6所述的存储器设备,其中,所述多个存储器存储体中的所述电路块形成存储器存储体组。
8.根据权利要求6所述的存储器设备,其中,所述存储器控制器电路包括模块化逻辑电路,所述模块化逻辑电路被布置为使得每个模块化逻辑电路被定位为通过混合键与所述电路块中相关联的一者互连。
9.根据权利要求8所述的存储器设备,其中,每个准易失性存储器电路的所述电路块包括存储器单元的多层阵列,并且其中,所述准易失性存储器电路中的第一准易失性存储器电路的所述电路块和所述准易失性存储器电路中的第二准易失性存储器电路的所述电路块在其各自的存储器单元阵列中具有不同数量的层。
10.根据权利要求9所述的存储器设备,其中,每个模块化逻辑电路被配置为与第一准易失性存储器电路和第二准易失性存储器电路的所述电路块互连,而不管它们各自的存储器单元阵列中的不同数量的层。
11.根据权利要求5所述的存储器设备,其中,所述电路块包括第一类型和第二类型,所述电路块的第一类型和第二类型具有不同的操作能力。
12.根据权利要求5所述的存储器设备,其中,每个准易失性存储器电路中的所述二维阵列被组织为行和列,并且其中,所述准易失性存储器电路中的第一准易失性存储器电路的所述二维阵列和所述准易失性存储器电路中的第二准易失性存储器电路的所述二维阵列具有不同数量的行。
13.根据权利要求5所述的存储器设备,其中,(i)所述准易失性存储器电路的所述电路块具有一个或多个分区;(ii)所述存储器控制器电路包括控制所述分区的一个或多个存储器控制器,以及(iii)当所述存储器控制器的数量大于一时,所述分区的数目也大于一并且被创建为不重叠,其中,每个存储器控制器被分配一个或多个分区,并且其中,每个存储器控制器被配置为独立地控制其分配的分区的操作。
14.根据权利要求13所述的存储器设备,其中,每个分区包括从所述准易失性存储器电路中的多于一个所述准易失性存储器电路中所选择的电路块。
15.根据权利要求13所述的存储器设备,其中,每个分区被组织为多个存储器存储体。
16.根据权利要求13所述的存储器设备,其中,每个存储器控制器通过混合键连接到它控制的一个或多个分区。
17.根据权利要求13所述的存储器设备,其中,每个存储器控制器及其控制的准易失性存储器电路的分区形成存储器通道。
18.根据权利要求13所述的存储器设备,还包括存储器接口,其允许由主机处理器访问所述存储器设备。
19.根据权利要求18所述的存储器设备,还包括复用电路,其将所述存储器接口连接到所述存储器控制器中的任何一个。
20.根据权利要求19所述的存储器设备,还包括一个或多个附加存储器接口,其中,所述复用电路将所述附加存储器接口中的任何一个连接到共享分区中的任何一个。
21.根据权利要求20所述的存储器设备,其中,投标协议调节从所述存储器接口中的任何一个对每个存储器控制器的访问,使得所述存储器控制器在任何给定时间从所述存储器接口中的恰好一个被访问。
22.根据权利要求21所述的存储器设备,其中,每个存储器接口被配置为访问多个分区。
23.根据权利要求13所述的存储器设备,其中,每个控制器还包括算术逻辑单元。
24.根据权利要求23所述的存储器设备,其中,所述控制器包括用于处理存储器地址的第一逻辑电路和用于处理存储在或将要存储在所述分区中的数据的第二逻辑电路。
25.根据权利要求24所述的存储器设备,其中,所述算术单元在所述第一逻辑电路和第二逻辑电路之间共享。
26.根据权利要求24所述的存储器设备,其中,所述算术逻辑单元是所述第一逻辑电路的一部分。
27.根据权利要求26所述的存储器设备,其中,所述算术逻辑单元生成用于所述分区内的直接存储器访问操作的地址。
28.根据权利要求26所述的存储器设备,所述算术逻辑单元执行所述地址按指定值的递增和递减。
29.根据权利要求28所述的存储器设备,其中,所述控制器进行将数据从所述分区的一个部分移动到所述分区的另一个部分的复制操作。
30.根据权利要求29所述的存储器设备,其中,所述复制操作以页为单位移动数据,其中,每个页包括至少512比特。
31.根据权利要求23所述的存储器设备,其中,所述算术逻辑单元对存储在所述分区中的数据进行搜索操作。
32.根据权利要求23所述的存储器设备,其中,所述算术逻辑单元对所述分区中的选定数据执行算术或逻辑操作。
33.根据权利要求32所述的存储器设备,其中,所述算术或逻辑操作以页为单位对数据进行操作,其中,每个页包括至少512比特。
34.根据权利要求23所述的存储器设备,其中,所述算术逻辑单元是所述存储器控制器中的处理器的一部分。
35.根据权利要求34所述的存储器设备,其中,所述处理器包括RISC处理器。
36.根据权利要求34所述的存储器设备,其中,每个存储器控制器还包括由所述处理器可访问的静态随机存取存储器(SRAM)电路。
37.根据权利要求36所述的存储器设备,其中,所述处理器对存储在所述准易失性存储器电路中的数据执行算术或逻辑操作。
38.根据权利要求37所述的存储器设备,还包括存储器接口,其允许由主机处理器访问所述存储器设备。
39.根据权利要求38所述的存储器设备,其中,所述存储器接口包括串行存储器接口。
40.根据权利要求39所述的存储器设备,还包括非易失性存储器(NVM)模块,其中,所述串行存储器接口在上电时将用于所述存储器控制器电路的引导代码从所述NVM模块加载到所述SRAM电路。
41.根据权利要求38所述的存储器设备,其中,所述处理器通过所述存储器接口执行由所述主机处理器提供的存储器内计算命令。
42.根据权利要求41所述的存储器设备,其中,所述主机处理器通过将每个包含所述存储器内计算命令中的一个的数据分组写入所述SRAM电路来提供所述存储器内计算命令。
43.根据权利要求42所述的存储器设备,其中,所述SRAM电路包括能够保存多个所述数据分组的循环命令缓冲器。
44.根据权利要求41所述的存储器设备,其中,所述处理器向所述主机处理器提供一个或多个状态分组,所述状态分组与关于由所述主机处理器提供的每个命令的状态信息相对应。
45.根据权利要求44所述的存储器设备,其中,所述SRAM电路包括循环状态缓冲器,所述处理器将所述状态分组写入所述循环状态缓冲器,并且其中,所述状态缓冲器由所述主机处理器通过所述存储器接口可访问。
46.根据权利要求38所述的存储器设备,还包括配置在所述SRAM电路中的高速缓存存储器,所述高速缓存存储器高速缓存从所述分区检索的数据页,每个页具有至少512比特,其中,所述主机处理器通过指定存储器地址请求要从所述分区读取或要向所述分区写入的数据,所述数据以高速缓存线为单位被请求,所述高速缓存线不大于512比特。
47.根据权利要求46所述的存储器设备,其中,所述存储器接口还包括数据缓冲器,通过所述数据缓冲器在所述主机处理器和所述存储器控制器电路之间传输数据。
48.根据权利要求46所述的存储器设备,还包括高速缓存控制器,其管理所述高速缓存存储器中数据的高速缓存,其中,当所述主机处理器请求要读取的数据时,所述高速缓存控制器使:(i)当与所指定的存储器地址相关联的数据页尚未高速缓存在所述高速缓存存储器中时,所述数据页被检索并高速缓存在所述高速缓存存储器中,以及(ii)所请求的数据通过所述存储器接口被发送到所述主机处理器。
49.根据权利要求48所述的存储器设备,其中,当所述主机处理器请求要写入的数据时,所述高速缓存控制器使:(i)当与所指定的存储器地址相关联的数据页尚未存在于所述高速缓存存储器中时,所述数据页被检索并高速缓存在所述高速缓存存储器中,以及(ii)要写入的数据被合并到高速缓存的页中。
50.根据权利要求49所述的存储器设备,其中,所述高速缓存控制器使得结合合并要写入到高速缓存的页中的所述数据来生成校验比特。
51.根据权利要求49所述的存储器设备,其中,所述高速缓存控制器还使得在写回操作期间合并的数据在所指定的存储器地址处被写入所述分区。
52.根据权利要求51所述的存储器设备,其中,所述高速缓存控制器维护与每一数据页相关联的标记比特,所述标记比特指示所述数据页已被更新并等待对所述分区的写回操作。
53.根据权利要求51所述的存储器设备,其中,所述存储器控制器在预定时间对所述分区内的存储器单元执行刷新操作,并且其中,所述写回操作代替所述刷新操作中的一个发生。
54.根据权利要求48所述的存储器设备,其中,除了与所指定的存储器地址相关联的数据页之外,所述高速缓存控制器预取多个数据页。
55.根据权利要求54所述的存储器设备,其中,所述分区被组织为数据块,每个数据块由独立的、非重叠的驱动器或感测放大器的集合提供服务,并且其中,预取的数据页是从多于一个数据块中检索的。
56.根据权利要求55所述的存储器设备,其中,每个数据块具有4096行。
57.根据权利要求56所述的存储器设备,其中,每一行被组织为一个或多个页。
58.根据权利要求56所述的存储器设备,其中,所述高速缓存控制器在检测到所述主机处理器访问存储器块中的数据时,基于与所访问的存储器块相关联的地址预取存储器块数据。
59.根据权利要求48所述的存储器设备,其中,所述控制器还包括存储与存储在所述高速缓存存储器中的数据页相关联的地址的内容可寻址存储器。
60.根据权利要求48所述的存储器设备,其中,所述控制器还包括用于访问存储在所述高速缓存存储器中的数据页的查找表。
61.根据权利要求60所述的存储器设备,其中,所述高速缓存控制器通过将由所述主机处理器指定的地址与所述内容可寻址存储器相匹配来确定数据页是否被高速缓存在所述高速缓存存储器中。
62.根据权利要求61所述的存储器设备,其中,当确定与由所述主机处理器指定的地址相关联的数据页未被高速缓存在所述高速缓存存储器中时,所述高速缓存控制器使得在所述存储器接口处生成等待状态。
63.根据权利要求62所述的存储器设备,其中,所述等待状态阻止通过所述存储器接口来自所述主机处理器的存储器访问请求。
64.根据权利要求48所述的存储器设备,其中,所述高速缓存控制器基于将所请求的地址转换为地址替换来访问存储器。
65.根据权利要求48所述的存储器设备,其中,所述高速缓存控制器结合数据预取策略从操作系统接收关于操作活动的数据。
66.根据权利要求48所述的存储器设备,其中,每个分区被组织为多个存储器存储体,并且其中,每个高速缓存控制器在分配的存储器存储体集合的高速缓存存储器中操作数据高速缓存。
67.根据权利要求66所述的存储器设备,还包括在所述SRAM电路中与每个分配的存储器存储体集合相关联的元数据缓冲器,其中,所述主机处理器在所述元数据缓冲器中维护与所述分配的存储器存储体集合相关联的元数据。
68.根据权利要求34所述的存储器设备,其中,所述处理器对所述存储器设备执行自测。
69.根据权利要求34所述的存储器设备,其中,所述处理器对所述准易失性存储器电路执行干扰测试。
70.一种双列直插存储器模块(DIMM),包括:
多个存储器设备,每个存储器设备实质为权利要求13的存储器设备;
存储器接口电路,允许由外部处理器访问所述存储器设备;以及
DIMM处理器电路,控制所述存储器设备和所述存储器接口电路中的操作。
71.根据权利要求70所述的DIMM,其中,所述存储器设备被组织为通过所述存储器接口电路独立可访问的存储器通道。
72.根据权利要求71所述的DIMM,其中,所述DIMM处理器电路包括多个存储器通道控制器,每个存储器通道控制器与所述存储器通道中的一个相关联,并控制其中的存储器访问操作。
73.根据权利要求71所述的DIMM,其中,所述DIMM处理器电路控制存储器通道之间的数据移动。
74.根据权利要求71所述的DIMM,其中,所述外部处理器提供由所述存储器控制器对存储在其各自分区中的数据要执行的存储器内计算命令。
75.根据权利要求74所述的DIMM,其中,所述处理器电路协调所述存储器控制器对所述存储器内计算命令的执行。
76.根据权利要求74所述的DIMM,其中,所述DIMM是共享从每个DIMM的存储器接口可访问的公共存储器总线的多个DIMM的一部分。
77.根据权利要求76所述的DIMM,其中,通过所述公共存储器总线在任何一对DIMM之间的数据移动由所述一对DIMM的所述DIMM处理器协调。
78.根据权利要求77所述的DIMM,其中,所述数据移动来自由所述外部处理器提供给所述一对DIMM中的一个或两个的复制命令。
79.根据权利要求76所述的DIMM,其中,所述外部处理器还向所述DIMM中的两个或更多个中的存储器控制器提供操作命令。
80.根据权利要求79所述的DIMM,其中,所述操作命令中的一个包括搜索操作。
81.根据权利要求79所述的DIMM,其中,所述操作命令中的一个包括复制操作。
82.根据权利要求71所述的DIMM,其中,所述处理器电路通过处理器总线访问非易失性存储器(NVM)。
83.根据权利要求82所述的DIMM,其中,所述处理器电路用作所述NVM的持久或闪存控制器。
84.根据权利要求83所述的DIMM,其中,所述NVM存储以下中的一个或多个:用于所述处理器电路的引导数据,以及用于所述DIMM的元数据、检查点数据和日志数据。
85.根据权利要求83所述的DIMM,其中,所述NVM存储所述存储器内计算命令的应用接口(API)。
86.根据权利要求85所述的DIMM,其中,所述外部处理器通过所述存储器接口下载所述存储器内计算命令的可执行代码,以执行所述存储器控制器。
87.一种存储器系统,包括:
多个存储器设备,每个存储器设备实质上为权利要求1所述的存储器设备,被提供并互连以形成双列直插存储器模块(DIMM);以及
处理器,控制所述存储器设备中的操作。
88.根据权利要求87所述的系统,其中,所述处理器包括RISC处理器。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062971859P | 2020-02-07 | 2020-02-07 | |
US62/971,859 | 2020-02-07 | ||
US202062980596P | 2020-02-24 | 2020-02-24 | |
US62/980,596 | 2020-02-24 | ||
US202063027850P | 2020-05-20 | 2020-05-20 | |
US63/027,850 | 2020-05-20 | ||
PCT/US2021/016923 WO2021158994A1 (en) | 2020-02-07 | 2021-02-05 | Quasi-volatile system-level memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115362436A true CN115362436A (zh) | 2022-11-18 |
Family
ID=77178694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180025127.7A Pending CN115362436A (zh) | 2020-02-07 | 2021-02-05 | 准易失性系统级存储器 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11580038B2 (zh) |
EP (1) | EP4100839A4 (zh) |
CN (1) | CN115362436A (zh) |
TW (1) | TWI783369B (zh) |
WO (1) | WO2021158994A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11120884B2 (en) | 2015-09-30 | 2021-09-14 | Sunrise Memory Corporation | Implementing logic function and generating analog signals using NOR memory strings |
JP7203054B2 (ja) * | 2017-06-20 | 2023-01-12 | サンライズ メモリー コーポレイション | 3次元nor型メモリアレイアーキテクチャ及びその製造方法 |
US11670620B2 (en) | 2019-01-30 | 2023-06-06 | Sunrise Memory Corporation | Device with embedded high-bandwidth, high-capacity memory using wafer bonding |
CN113424319A (zh) | 2019-02-11 | 2021-09-21 | 日升存储公司 | 垂直薄膜晶体管以及作为用于三维存储器阵列的位线连接器的应用 |
US11515309B2 (en) | 2019-12-19 | 2022-11-29 | Sunrise Memory Corporation | Process for preparing a channel region of a thin-film transistor in a 3-dimensional thin-film transistor array |
US11610911B2 (en) * | 2020-01-07 | 2023-03-21 | Micron Technology, Inc. | Semiconductor assemblies including combination memory and methods of manufacturing the same |
US11621257B2 (en) * | 2020-02-03 | 2023-04-04 | Micron Technology, Inc. | Wafer-scale memory techniques |
CN115362436A (zh) * | 2020-02-07 | 2022-11-18 | 日升存储公司 | 准易失性系统级存储器 |
US11675500B2 (en) | 2020-02-07 | 2023-06-13 | Sunrise Memory Corporation | High capacity memory circuit with low effective latency |
WO2021173209A1 (en) | 2020-02-24 | 2021-09-02 | Sunrise Memory Corporation | High capacity memory module including wafer-section memory circuit |
US11507301B2 (en) | 2020-02-24 | 2022-11-22 | Sunrise Memory Corporation | Memory module implementing memory centric architecture |
US11467834B2 (en) * | 2020-04-01 | 2022-10-11 | Samsung Electronics Co., Ltd. | In-memory computing with cache coherent protocol |
US20210407966A1 (en) * | 2020-06-29 | 2021-12-30 | Taiwan Semiconductor Manufacturing Company, Ltd. | Semiconductor package |
US11842777B2 (en) | 2020-11-17 | 2023-12-12 | Sunrise Memory Corporation | Methods for reducing disturb errors by refreshing data alongside programming or erase operations |
US11360890B1 (en) * | 2021-02-03 | 2022-06-14 | Ambarella International Lp | Request buffering scheme |
US11810640B2 (en) * | 2021-02-10 | 2023-11-07 | Sunrise Memory Corporation | Memory interface with configurable high-speed serial data lanes for high bandwidth memory |
TW202310429A (zh) | 2021-07-16 | 2023-03-01 | 美商日升存儲公司 | 薄膜鐵電電晶體的三維記憶體串陣列 |
US20230043502A1 (en) * | 2021-08-05 | 2023-02-09 | Micron Technology, Inc. | Read latency and suspend modes |
TWI828052B (zh) * | 2022-01-27 | 2024-01-01 | 鯨鏈科技股份有限公司 | 基於晶體堆疊架構的計算機系統和記憶體管理方法 |
TWI808694B (zh) * | 2022-03-23 | 2023-07-11 | 英業達股份有限公司 | 以電路板之電路傳送指令測試連接介面之裝置、系統及方法 |
US11755465B1 (en) * | 2022-07-29 | 2023-09-12 | Lemon Inc. | Method of superposition of multiple commands execution |
Family Cites Families (140)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4213139A (en) | 1978-05-18 | 1980-07-15 | Texas Instruments Incorporated | Double level polysilicon series transistor cell |
US4984153A (en) | 1988-04-27 | 1991-01-08 | Unisys Corporation | Storage locking control for a plurality of processors which share a common storage unit |
JP2531802B2 (ja) | 1989-09-28 | 1996-09-04 | 甲府日本電気株式会社 | リクエストバッファ制御システム |
US5583808A (en) | 1994-09-16 | 1996-12-10 | National Semiconductor Corporation | EPROM array segmented for high performance and method for controlling same |
US5646886A (en) | 1995-05-24 | 1997-07-08 | National Semiconductor Corporation | Flash memory having segmented array for improved operation |
US5789776A (en) | 1995-09-22 | 1998-08-04 | Nvx Corporation | Single poly memory cell and array |
US5768192A (en) | 1996-07-23 | 1998-06-16 | Saifun Semiconductors, Ltd. | Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping |
US5915167A (en) | 1997-04-04 | 1999-06-22 | Elm Technology Corporation | Three dimensional structure memory |
US6551857B2 (en) | 1997-04-04 | 2003-04-22 | Elm Technology Corporation | Three dimensional structure integrated circuits |
US6057862A (en) | 1997-07-01 | 2000-05-02 | Memtrax Llc | Computer system having a common display memory and main memory |
KR100242723B1 (ko) | 1997-08-12 | 2000-02-01 | 윤종용 | 불휘발성 반도체 메모리 장치의 셀 어레이 구조 및 그 제조방법 |
US6040605A (en) | 1998-01-28 | 2000-03-21 | Hitachi, Ltd. | Semiconductor memory device |
JP2000200842A (ja) | 1998-11-04 | 2000-07-18 | Sony Corp | 不揮発性半導体記憶装置、製造方法および書き込み方法 |
JP4899241B2 (ja) | 1999-12-06 | 2012-03-21 | ソニー株式会社 | 不揮発性半導体記憶装置およびその動作方法 |
JP2001357682A (ja) | 2000-06-12 | 2001-12-26 | Sony Corp | メモリシステムおよびそのプログラム方法 |
US6580124B1 (en) | 2000-08-14 | 2003-06-17 | Matrix Semiconductor Inc. | Multigate semiconductor device with vertical channel current and method of fabrication |
US6621725B2 (en) | 2000-08-17 | 2003-09-16 | Kabushiki Kaisha Toshiba | Semiconductor memory device with floating storage bulk region and method of manufacturing the same |
US20020193484A1 (en) | 2001-02-02 | 2002-12-19 | The 54 Group, Ltd. | Polymeric resins impregnated with insect repellants |
US6744094B2 (en) | 2001-08-24 | 2004-06-01 | Micron Technology Inc. | Floating gate transistor with horizontal gate layers stacked next to vertical body |
US6873004B1 (en) | 2002-02-04 | 2005-03-29 | Nexflash Technologies, Inc. | Virtual ground single transistor memory cell, memory array incorporating same, and method of operation thereof |
US7064018B2 (en) | 2002-07-08 | 2006-06-20 | Viciciv Technology | Methods for fabricating three dimensional integrated circuits |
US6774458B2 (en) | 2002-07-23 | 2004-08-10 | Hewlett Packard Development Company, L.P. | Vertical interconnection structure and methods |
JP4206707B2 (ja) | 2002-08-27 | 2009-01-14 | 株式会社日立製作所 | 通信品質設定装置、方法及びプログラム |
US7005350B2 (en) | 2002-12-31 | 2006-02-28 | Matrix Semiconductor, Inc. | Method for fabricating programmable memory array structures incorporating series-connected transistor strings |
KR100881201B1 (ko) | 2003-01-09 | 2009-02-05 | 삼성전자주식회사 | 사이드 게이트를 구비하는 소노스 메모리 소자 및 그제조방법 |
US7307308B2 (en) | 2003-04-07 | 2007-12-11 | Silicon Storage Technology, Inc. | Buried bit line non-volatile floating gate memory cell with independent controllable control gate in a trench, and array thereof, and method of formation |
KR100546331B1 (ko) | 2003-06-03 | 2006-01-26 | 삼성전자주식회사 | 스택 뱅크들 마다 독립적으로 동작하는 멀티 포트 메모리장치 |
US20040262772A1 (en) | 2003-06-30 | 2004-12-30 | Shriram Ramanathan | Methods for bonding wafers using a metal interlayer |
JP4545423B2 (ja) | 2003-12-09 | 2010-09-15 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP4407431B2 (ja) | 2004-08-30 | 2010-02-03 | 株式会社日立製作所 | 計算機システム及び計算機システムの帯域制御方法 |
US7284226B1 (en) | 2004-10-01 | 2007-10-16 | Xilinx, Inc. | Methods and structures of providing modular integrated circuits |
US7366826B2 (en) | 2004-12-16 | 2008-04-29 | Sandisk Corporation | Non-volatile memory and method with multi-stream update tracking |
US7493441B2 (en) | 2005-03-15 | 2009-02-17 | Dot Hill Systems Corporation | Mass storage controller with apparatus and method for extending battery backup time by selectively providing battery power to volatile memory banks not storing critical data |
US8314024B2 (en) | 2008-12-19 | 2012-11-20 | Unity Semiconductor Corporation | Device fabrication |
US7612411B2 (en) | 2005-08-03 | 2009-11-03 | Walker Andrew J | Dual-gate device and method |
US20070192518A1 (en) | 2006-02-14 | 2007-08-16 | Aarohi Communications, Inc., A California Corporation | Apparatus for performing I/O sharing & virtualization |
JP4745108B2 (ja) | 2006-04-06 | 2011-08-10 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US7457902B2 (en) | 2006-07-21 | 2008-11-25 | Emulex Design & Manufacturing Corporation | Lock and release mechanism for out-of-order frame prevention and support of native command queueing in FC-SATA |
JP2008251138A (ja) | 2007-03-30 | 2008-10-16 | Toshiba Corp | 不揮発性半導体メモリ、不揮発性半導体メモリの制御方法、不揮発性半導体メモリシステム、及びメモリカード |
US8706914B2 (en) | 2007-04-23 | 2014-04-22 | David D. Duchesneau | Computing infrastructure |
US8059443B2 (en) * | 2007-10-23 | 2011-11-15 | Hewlett-Packard Development Company, L.P. | Three-dimensional memory module architectures |
US20090157946A1 (en) | 2007-12-12 | 2009-06-18 | Siamak Arya | Memory having improved read capability |
US7898857B2 (en) | 2008-03-20 | 2011-03-01 | Micron Technology, Inc. | Memory structure having volatile and non-volatile memory portions |
US8072811B2 (en) | 2008-05-07 | 2011-12-06 | Aplus Flash Technology, Inc, | NAND based NMOS NOR flash memory cell, a NAND based NMOS NOR flash memory array, and a method of forming a NAND based NMOS NOR flash memory array |
KR101660430B1 (ko) * | 2009-08-14 | 2016-09-27 | 삼성전자 주식회사 | 반도체 패키지 |
WO2009154799A1 (en) | 2008-06-20 | 2009-12-23 | Aplus Flash Technology, Inc. | An apparatus and method for inhibiting excess leakage current in unselected nonvolatile memory cells in an array |
JP5331427B2 (ja) * | 2008-09-29 | 2013-10-30 | 株式会社日立製作所 | 半導体装置 |
JP2010118580A (ja) | 2008-11-14 | 2010-05-27 | Toshiba Corp | 不揮発性半導体記憶装置 |
EP2377129A4 (en) | 2008-12-09 | 2013-05-22 | Rambus Inc | NON-VOLATILE MEMORY DEVICE FOR SIMULTANEOUS AND OVERLAP MEMORY OPERATIONS |
US8178396B2 (en) | 2009-03-11 | 2012-05-15 | Micron Technology, Inc. | Methods for forming three-dimensional memory devices, and related structures |
KR101635504B1 (ko) | 2009-06-19 | 2016-07-04 | 삼성전자주식회사 | 3차원 수직 채널 구조를 갖는 불 휘발성 메모리 장치의 프로그램 방법 |
US8417917B2 (en) * | 2009-09-30 | 2013-04-09 | International Business Machines Corporation | Processor core stacking for efficient collaboration |
EP2333830B1 (en) | 2009-12-07 | 2014-09-03 | STMicroelectronics (Research & Development) Limited | a package comprising a first and a second die coupled by a multiplexed bus |
US8026521B1 (en) | 2010-10-11 | 2011-09-27 | Monolithic 3D Inc. | Semiconductor device and structure |
US8966208B2 (en) * | 2010-02-25 | 2015-02-24 | Conversant Ip Management Inc. | Semiconductor memory device with plural memory die and controller die |
KR101660432B1 (ko) | 2010-06-07 | 2016-09-27 | 삼성전자 주식회사 | 수직 구조의 반도체 메모리 소자 |
US8630114B2 (en) | 2011-01-19 | 2014-01-14 | Macronix International Co., Ltd. | Memory architecture of 3D NOR array |
KR20120085591A (ko) | 2011-01-24 | 2012-08-01 | 김진선 | 3차원 비휘발성 메모리 소자, 그 동작 방법 및 그 제조 방법 |
WO2012125719A2 (en) * | 2011-03-14 | 2012-09-20 | Rambus Inc. | Methods and apparatus for testing inaccessible interface circuits in a semiconductor device |
JP2012204684A (ja) | 2011-03-25 | 2012-10-22 | Toshiba Corp | 不揮発性半導体記憶装置 |
US9177609B2 (en) | 2011-06-30 | 2015-11-03 | Sandisk Technologies Inc. | Smart bridge for memory core |
US8878278B2 (en) | 2012-03-21 | 2014-11-04 | Sandisk Technologies Inc. | Compact three dimensional vertical NAND and method of making thereof |
JP2013214552A (ja) | 2012-03-30 | 2013-10-17 | Toshiba Corp | 半導体装置とその製造方法 |
US8922243B2 (en) | 2012-12-23 | 2014-12-30 | Advanced Micro Devices, Inc. | Die-stacked memory device with reconfigurable logic |
KR101975534B1 (ko) | 2012-09-11 | 2019-05-07 | 삼성전자주식회사 | 연산기능을 갖는 반도체 메모리 장치 |
US8984368B2 (en) * | 2012-10-11 | 2015-03-17 | Advanced Micro Devices, Inc. | High reliability memory controller |
JP2014093319A (ja) | 2012-10-31 | 2014-05-19 | Toshiba Corp | 半導体装置およびその製造方法 |
WO2014081719A1 (en) * | 2012-11-20 | 2014-05-30 | Peddle Charles I | Solid state drive architectures |
US9055044B2 (en) | 2012-12-03 | 2015-06-09 | Hitachi, Ltd. | Computer system and method of controlling computer system |
US10403766B2 (en) | 2012-12-04 | 2019-09-03 | Conversant Intellectual Property Management Inc. | NAND flash memory with vertical cell stack structure and method for manufacturing same |
US8902663B1 (en) | 2013-03-11 | 2014-12-02 | Monolithic 3D Inc. | Method of maintaining a memory state |
US9297971B2 (en) * | 2013-04-26 | 2016-03-29 | Oracle International Corporation | Hybrid-integrated photonic chip package with an interposer |
US9368625B2 (en) | 2013-05-01 | 2016-06-14 | Zeno Semiconductor, Inc. | NAND string utilizing floating body memory cell |
US9281044B2 (en) | 2013-05-17 | 2016-03-08 | Micron Technology, Inc. | Apparatuses having a ferroelectric field-effect transistor memory array and related method |
US9934043B2 (en) | 2013-08-08 | 2018-04-03 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for providing computational imaging pipeline |
US9837132B2 (en) * | 2013-09-24 | 2017-12-05 | Rambus, Inc. | High capacity memory system |
US8971676B1 (en) * | 2013-10-07 | 2015-03-03 | Oracle International Corporation | Hybrid-integrated photonic chip package |
KR102128469B1 (ko) | 2013-11-08 | 2020-06-30 | 삼성전자주식회사 | 반도체 장치 |
US9190293B2 (en) | 2013-12-18 | 2015-11-17 | Applied Materials, Inc. | Even tungsten etch for high aspect ratio trenches |
WO2015095612A1 (en) * | 2013-12-18 | 2015-06-25 | Rambus Inc. | High capacity memory system with improved command-address and chip-select signaling mode |
KR102066743B1 (ko) | 2014-01-09 | 2020-01-15 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그 형성방법 |
US10169948B2 (en) | 2014-01-31 | 2019-01-01 | International Business Machines Corporation | Prioritizing storage operation requests utilizing data attributes |
US20150279431A1 (en) * | 2014-04-01 | 2015-10-01 | Micron Technology, Inc. | Stacked semiconductor die assemblies with partitioned logic and associated systems and methods |
KR102251809B1 (ko) | 2014-05-28 | 2021-05-13 | 삼성전자주식회사 | 메모리 시스템, 메모리 인터페이스 장치 및 메모리 시스템에서의 인터페이싱 방법 |
US20160013156A1 (en) | 2014-07-14 | 2016-01-14 | Apple Inc. | Package-on-package options with multiple layer 3-d stacking |
US10014317B2 (en) | 2014-09-23 | 2018-07-03 | Haibing Peng | Three-dimensional non-volatile NOR-type flash memory |
US9595566B2 (en) | 2015-02-25 | 2017-03-14 | Sandisk Technologies Llc | Floating staircase word lines and process in a 3D non-volatile memory having vertical bit lines |
US10007573B2 (en) | 2015-04-27 | 2018-06-26 | Invensas Corporation | Preferred state encoding in non-volatile memories |
KR102298661B1 (ko) | 2015-04-30 | 2021-09-07 | 삼성전자주식회사 | 저장 장치 및 그것의 초기화 방법 |
US10116557B2 (en) | 2015-05-22 | 2018-10-30 | Gray Research LLC | Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network |
US10254968B1 (en) | 2015-06-10 | 2019-04-09 | Firquest Llc | Hybrid memory device for lookup operations |
US11978731B2 (en) | 2015-09-21 | 2024-05-07 | Monolithic 3D Inc. | Method to produce a multi-level semiconductor memory device and structure |
US20190148286A1 (en) | 2015-09-21 | 2019-05-16 | Monolithic 3D Inc. | Multi-level semiconductor device and structure with memory |
WO2017053329A1 (en) | 2015-09-21 | 2017-03-30 | Monolithic 3D Inc | 3d semiconductor device and structure |
US9412752B1 (en) | 2015-09-22 | 2016-08-09 | Macronix International Co., Ltd. | Reference line and bit line structure for 3D memory |
US9892800B2 (en) | 2015-09-30 | 2018-02-13 | Sunrise Memory Corporation | Multi-gate NOR flash thin-film transistor strings arranged in stacked horizontal active strips with vertical control gates |
US10121553B2 (en) * | 2015-09-30 | 2018-11-06 | Sunrise Memory Corporation | Capacitive-coupled non-volatile thin-film transistor NOR strings in three-dimensional arrays |
US9842651B2 (en) | 2015-11-25 | 2017-12-12 | Sunrise Memory Corporation | Three-dimensional vertical NOR flash thin film transistor strings |
US9831266B2 (en) | 2015-11-20 | 2017-11-28 | Sandisk Technologies Llc | Three-dimensional NAND device containing support pedestal structures for a buried source line and method of making the same |
US10886228B2 (en) | 2015-12-23 | 2021-01-05 | Intel Corporation | Improving size and efficiency of dies |
US9997232B2 (en) * | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
US10083722B2 (en) * | 2016-06-08 | 2018-09-25 | Samsung Electronics Co., Ltd. | Memory device for performing internal process and operating method thereof |
US9985046B2 (en) | 2016-06-13 | 2018-05-29 | Sandisk Technologies Llc | Method of forming a staircase in a semiconductor device using a linear alignment control feature |
US10417098B2 (en) | 2016-06-28 | 2019-09-17 | International Business Machines Corporation | File level access to block level incremental backups of a virtual disk |
CN109643742A (zh) * | 2016-08-26 | 2019-04-16 | 英特尔公司 | 集成电路器件结构和双侧制造技术 |
JP7089505B2 (ja) * | 2016-08-26 | 2022-06-22 | サンライズ メモリー コーポレイション | 3次元アレイにおける容量結合型不揮発性薄膜トランジスタストリング |
US9995785B2 (en) | 2016-09-30 | 2018-06-12 | Intel Corporation | Stacked semiconductor package and method for performing bare die testing on a functional die in a stacked semiconductor package |
JP2018152419A (ja) | 2017-03-10 | 2018-09-27 | 東芝メモリ株式会社 | 半導体記憶装置 |
US20180285252A1 (en) * | 2017-04-01 | 2018-10-04 | Intel Corporation | Optimized memory access bandwidth devices, systems, and methods for processing low spatial locality data |
US10217719B2 (en) * | 2017-04-06 | 2019-02-26 | Micron Technology, Inc. | Semiconductor device assemblies with molded support substrates |
US10521343B2 (en) | 2017-06-12 | 2019-12-31 | Western Digital Technologies, Inc. | Storage system with a controller having a persistent memory interface to local memory |
JP7203054B2 (ja) * | 2017-06-20 | 2023-01-12 | サンライズ メモリー コーポレイション | 3次元nor型メモリアレイアーキテクチャ及びその製造方法 |
US10692874B2 (en) | 2017-06-20 | 2020-06-23 | Sunrise Memory Corporation | 3-dimensional NOR string arrays in segmented stacks |
US10431596B2 (en) | 2017-08-28 | 2019-10-01 | Sunrise Memory Corporation | Staggered word line architecture for reduced disturb in 3-dimensional NOR memory arrays |
US10445181B2 (en) | 2017-10-23 | 2019-10-15 | Western Digital Technologies, Inc. | Lossless synchronization software reset |
US10290332B1 (en) | 2017-10-31 | 2019-05-14 | Sandisk Technologies Llc | Signal path optimization for read operations in storage devices |
US10606513B2 (en) | 2017-12-06 | 2020-03-31 | Western Digital Technologies, Inc. | Volatility management for non-volatile memory device |
JP7072658B2 (ja) | 2017-12-28 | 2022-05-20 | サンライズ メモリー コーポレイション | 超微細ピッチを有する3次元nor型メモリアレイ:デバイスと方法 |
US10283493B1 (en) | 2018-01-17 | 2019-05-07 | Sandisk Technologies Llc | Three-dimensional memory device containing bonded memory die and peripheral logic die and method of making thereof |
US10475812B2 (en) | 2018-02-02 | 2019-11-12 | Sunrise Memory Corporation | Three-dimensional vertical NOR flash thin-film transistor strings |
US10381378B1 (en) | 2018-02-02 | 2019-08-13 | Sunrise Memory Corporation | Three-dimensional vertical NOR flash thin-film transistor strings |
KR20190097930A (ko) * | 2018-02-13 | 2019-08-21 | 삼성전자주식회사 | 채널 별 메모리 용량을 조절하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
US10644826B2 (en) * | 2018-02-23 | 2020-05-05 | Advanced Micro Devices, Inc. | Flexibile interfaces using through-silicon via technology |
KR102512754B1 (ko) | 2018-03-30 | 2023-03-23 | 삼성전자주식회사 | 관통 전극을 통해 전송되는 제어 신호를 이용하여 데이터를 샘플링하는 메모리 장치 |
US10742217B2 (en) * | 2018-04-12 | 2020-08-11 | Apple Inc. | Systems and methods for implementing a scalable system |
US10509752B2 (en) * | 2018-04-27 | 2019-12-17 | Advanced Micro Devices, Inc. | Configuration of multi-die modules with through-silicon vias |
US10319696B1 (en) | 2018-05-10 | 2019-06-11 | Micron Technology, Inc. | Methods for fabricating 3D semiconductor device packages, resulting packages and systems incorporating such packages |
US11069696B2 (en) | 2018-07-12 | 2021-07-20 | Sunrise Memory Corporation | Device structure for a 3-dimensional NOR memory array and methods for improved erase operations applied thereto |
US10692837B1 (en) | 2018-07-20 | 2020-06-23 | Xilinx, Inc. | Chip package assembly with modular core dice |
TWI757635B (zh) | 2018-09-20 | 2022-03-11 | 美商森恩萊斯記憶體公司 | 記憶體結構及其用於電性連接三維記憶裝置之多水平導電層之階梯結構的製作方法 |
EP3891801A4 (en) * | 2018-12-04 | 2022-08-24 | Sunrise Memory Corporation | PROCESS FOR FABRICATION OF MULTILAYERY HORIZONTAL NOR THIN FILM MEMORY STRINGS |
US11086733B2 (en) | 2018-12-19 | 2021-08-10 | Micron Technology, Inc. | Reporting control information errors |
US11670620B2 (en) * | 2019-01-30 | 2023-06-06 | Sunrise Memory Corporation | Device with embedded high-bandwidth, high-capacity memory using wafer bonding |
WO2020210390A1 (en) | 2019-04-09 | 2020-10-15 | Sunrise Memory Corporation | Quasi-volatile memory device with a back-channel usage |
KR102601225B1 (ko) * | 2019-04-15 | 2023-11-10 | 양쯔 메모리 테크놀로지스 씨오., 엘티디. | 복수의 기능 칩이 있는 3차원 nand 메모리 디바이스의 집적화 |
US11043472B1 (en) * | 2019-05-31 | 2021-06-22 | Kepler Compute Inc. | 3D integrated ultra high-bandwidth memory |
US11675500B2 (en) | 2020-02-07 | 2023-06-13 | Sunrise Memory Corporation | High capacity memory circuit with low effective latency |
CN115362436A (zh) | 2020-02-07 | 2022-11-18 | 日升存储公司 | 准易失性系统级存储器 |
WO2021173209A1 (en) | 2020-02-24 | 2021-09-02 | Sunrise Memory Corporation | High capacity memory module including wafer-section memory circuit |
US11693582B2 (en) | 2020-08-07 | 2023-07-04 | Intel Corporation | Automatic read calibration operations |
-
2021
- 2021-02-05 CN CN202180025127.7A patent/CN115362436A/zh active Pending
- 2021-02-05 EP EP21750602.1A patent/EP4100839A4/en active Pending
- 2021-02-05 WO PCT/US2021/016923 patent/WO2021158994A1/en unknown
- 2021-02-05 US US17/169,212 patent/US11580038B2/en active Active
- 2021-02-05 TW TW110104437A patent/TWI783369B/zh active
-
2022
- 2022-12-22 US US18/087,661 patent/US20230131169A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
TW202143048A (zh) | 2021-11-16 |
TWI783369B (zh) | 2022-11-11 |
EP4100839A1 (en) | 2022-12-14 |
US11580038B2 (en) | 2023-02-14 |
WO2021158994A1 (en) | 2021-08-12 |
US20210248094A1 (en) | 2021-08-12 |
US20230131169A1 (en) | 2023-04-27 |
EP4100839A4 (en) | 2024-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11580038B2 (en) | Quasi-volatile system-level memory | |
US10817201B2 (en) | Multi-level memory with direct access | |
US9921751B2 (en) | Methods and systems for mapping a peripheral function onto a legacy memory interface | |
EP2737383B1 (en) | Flash-dram hybrid memory module | |
US20230259283A1 (en) | High capacity memory circuit with low effective latency | |
US10866921B2 (en) | Apparatuses and methods for an operating system cache in a solid state device | |
US9990143B2 (en) | Memory system | |
CN110447075B (zh) | 多内核管芯上存储器微控制器 | |
US11789644B2 (en) | Memory centric system incorporating computational memory | |
US10191664B2 (en) | Memory system | |
US20170109277A1 (en) | Memory system | |
US20170109066A1 (en) | Memory system | |
US20170109072A1 (en) | Memory system | |
US20240045615A1 (en) | Memory controller for a high capacity memory circuit with large number of independently accessible memory banks |
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 |