CN112805692A - 混合式双列直插式存储器模块中的高速缓存操作 - Google Patents
混合式双列直插式存储器模块中的高速缓存操作 Download PDFInfo
- Publication number
- CN112805692A CN112805692A CN201980064710.1A CN201980064710A CN112805692A CN 112805692 A CN112805692 A CN 112805692A CN 201980064710 A CN201980064710 A CN 201980064710A CN 112805692 A CN112805692 A CN 112805692A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- memory component
- page
- access
- 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.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 title claims abstract description 310
- 230000009977 dual effect Effects 0.000 title claims description 13
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000000034 method Methods 0.000 claims description 35
- 230000003068 static effect Effects 0.000 claims description 6
- 238000004220 aggregation Methods 0.000 claims 1
- 230000002776 aggregation Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 235000019580 granularity Nutrition 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012005 ligant binding assay Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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
- G06F3/0661—Format or protocol conversion arrangements
-
- 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/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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
- G06F12/0882—Page mode
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/221—Static RAM
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/225—Hybrid cache memory, e.g. having both volatile and non-volatile portions
-
- 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- 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/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种系统,其包含第一存储器类型的第一存储器组件;第二存储器类型的第二存储器组件,其与所述第一存储器组件相比具有较高存取时延;和第三存储器类型的第三存储器组件,其与所述第一和第二存储器组件相比具有较高存取时延。所述系统另外包含处理装置,所述处理装置识别存储于所述第一存储器组件中的数据页的区段,以及与所述数据页和所述数据页的所述区段相关联的存取模式。所述处理装置基于所述存取模式确定将所述数据页高速缓存于所述第二存储器组件处,将存储于所述第一存储器组件中的所述数据页的所述区段复制到所述第二存储器组件。所述处理装置接着将存储于所述第三存储器组件处的所述数据页的额外区段复制到所述第二存储器组件。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及混合式双列直插式存储器模块中的高速缓存操作。
背景技术
存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可以例如是非易失性存储器组件和易失性存储器组件。一般来说,主机系统可以利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,图式不应视为将本公开限制于具体实施例,而是仅用于解释和理解。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
图2是说明根据本公开的一些实施例的利用DRAM存储器组件作为交叉点阵列存储器组件的高速缓存器的实例混合式双列直插式存储器模块的框图。
图3是说明根据本公开的一些实施例的混合式双列直插式存储器模块控制器的框图。
图4是根据本公开的一些实施例的将数据高速缓存于双列直插式存储器模块的存储器组件中的实例方法的流程图。
图5是执行混合式双列直插式存储器模块中的存储器组件之间的高速缓存的实例方法的流程图。
图6是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的方面针对于混合式双列直插式存储器模块中的高速缓存操作。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
存储器子系统可包含可存储来自主机系统的数据的多个存储器装置。存储器装置可为非易失性存储器装置,例如非易失性存储器的交叉点阵列的三维交叉点(“3D交叉点”)存储器装置,其可与可堆叠交叉网格化数据存取阵列结合来基于体电阻的改变执行位存储。非易失性存储器装置的另一实例为与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。存储器子系统包含存储器子系统控制器,其可与存储器装置通信以执行例如在存储器装置处读取数据、写入数据或擦除数据等操作和其它此类操作。下文结合图1更详细地描述存储器子系统控制器。
主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,且从存储器子系统上的存储器装置读取数据。如由主机请求指定的待读取或写入的数据在下文中被称作“主机数据”。主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、名字空间),其是主机系统与主机数据相关联的位置。逻辑地址信息(例如,LBA、名字空间)可为主机数据的元数据的部分。元数据与主机数据一起在下文中被称作“有效负载”。用于错误校正的元数据、主机数据和奇偶校验数据可共同地形成错误校正码(ECC)码字。元数据还可包含数据版本(例如用以区分所写入的数据的老化程度)、有效位图(其LBA或逻辑传送单元含有有效数据)等。
动态随机存取存储器(DRAM)昂贵并且容量有限,例如DDR4双列直插式存储器模块(DIMM)。通过一些代价获得更大容量的存储器类型(例如,3D交叉点)。虽然3D交叉点可能比DRAM慢,但如果与具有高命中率的较快速存取高速缓存器结合使用的话就可获得足够快的速度,其可模拟只DRAM DIMM的较快速存取。那么一种类型的常规存储器子系统可结合其它类型的存储器子系统使用(例如,作为高速缓存器),前提是主机系统被设计成适应这两种存储器子系统类型。然而,不同类型的存储器可使用不同接口协议,且具有DDR4的一个DIMM与具有3D交叉点的一个DIMM之间的高速缓存器传送可沿着主机和之间的接口致使高流量,进而减小这两种DIMM的总体性能。
另外,可以不同数据粒度存取存储器类型。举例来说,与有用的大DRAM高速缓存器的页大小相比,可以高得多的粒度存取3D交叉点存储器(即,可在较小数据大小中发生数据事务)。存取大小与缓存页大小的此差异可在跟踪数据存取模式并选择哪些数据传送到充当高速缓存器(例如,DRAM)的存储器时带来困难。此外,归因于数据的高数目部分和每高速缓存条目的元数据的量,管理使用高粒度的高速缓存器所需的数据量可能非常大。
本公开的方面通过包含如下混合式DIMM的存储器子系统来解决以上和其它缺陷:所述混合式DIMM使用DIMM的存储器组件中的一个作为用于其它具有较高时延(即,较慢存取速度)和较高数据容量的其它存储器模块的较低时延高速缓存器(即,更好地执行具有较快速数据存取速度的媒体)。DIMM控制器(例如,存储器子系统控制器)可包含如下存储器组件:在被主机系统存取时,充当用于存储数据页的部分或“扇区”的低容量高速缓存器。每当扇区进入控制器中的高速缓存器时,可跟踪对所述扇区的存取以将存取数据提供给高速缓存组件,例如高速缓存管理器。另外,高速缓存管理器可聚合控制器内的高速缓存器中的页的每一扇区的存取数据。高速缓存管理器接着可选择哪些页应存储于DRAM高速缓存器中以供较快速的数据存取。
本公开的优点包含但不限于提供具有高数据容量和与只DRAM(DDR4)DIMM相当的数据存取时延的混合式DIMM。归因于与DRAM相比,3D交叉点存储器的成本相对较低,混合式DIMM也可能要便宜得多。因此,描述混合式DIMM,其更便宜,并且具有较高数据容量、相当的性能以及提供永久性存储器的能力。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类的组合。
存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储装置(UFS)驱动器以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)和非易失性双列直插式存储器模块(NVDIMM)。
计算环境100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用例如存储器子系统110将数据写入到存储器子系统110并从存储器子系统110读取数据。如本文中所使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。
主机系统120可以是计算装置,例如台式计算机、手提式计算机、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、物联网(IoT)装置、嵌入式计算机(例如,包含在载具、工业设备或联网商用装置中的嵌入式计算机),或包含存储器和处理装置的此类计算装置。主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。
存储器装置可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。3D交叉点存储器装置是可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变而执行位存储的非易失性存储器单元的交叉点阵列。另外,与许多基于闪存的存储器相反,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。
虽然描述了例如3D交叉点类型和NAND类型存储器的非易失性存储器组件,但存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电随机存取存储器(FeRAM)、磁性随机存取存储器(MRAM)、“或非”(NOR)快闪存储器,以及电可擦除可编程只读存储器(EEPROM)。
一种类型的存储器单元,例如,单层级单元(SLC)可存储一个位每单元。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC)可每单元存储多个位。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为可指代用于存储数据的存储器装置的单元的页或码字。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。一些类型的存储器(例如3D交叉点)可将跨裸片和通道的页分组以形成管理单元(MU)。
存储器子系统控制器115可以与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的处理器。
存储器子系统控制器115可包含处理器(处理装置)117,其经配置以执行存储在本地存储器119中的指令。在所示的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程的指令,包含处置存储器子系统110与主机系统120之间的通信。
在一些实施例中,本地存储器119可以包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110可能不包含存储器子系统控制器115,且可改为依靠(例如由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。
通常,存储器子系统控制器115可从主机系统120接收命令或操作,并且可以将命令或操作转换成指令或适当的命令以实现对存储器装置130的所需存取。存储器子系统控制器115可以负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑块地址和物理块地址之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。在一些实施例中,存储器装置130可以是受管理存储器装置,其为与用于在同一存储器装置封装内进行媒体管理的本地控制器(例如,本地控制器135)组合的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统110包含高速缓存组件113,其可执行混合式DIMM中的高速缓存操作。在一些实施例中,存储器子系统控制器115包含高速缓存组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其被配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,高速缓存组件113是主机系统120、应用程序或操作系统的部分。
高速缓存组件113可跟踪主机系统存取存储于具有较高容量和较高时延的存储器组件(例如3D交叉点)中的数据的多少个不同部分。高速缓存组件113可识别与暂时高速缓存于存储器子系统控制器115中的静态随机存取存储器(SRAM)(例如,本地存储器119)中的数据扇区(数据页的区段)相关联的主机存取模式。高速缓存组件113接着可基于识别的存取模式,确定数据扇区和其相关联页是否应存储(高速缓存)于较低时延存储器140(例如DRAM)中。另外,高速缓存组件113也可识别与高速缓存于高速缓存器140中的页相关联的主机存取模式,以允许在将现有页保持于高速缓存器140中之间做出决策或基于SRAM 119中存取的扇区为新页提供空间。下文描述关于高速缓存组件113的操作的另外细节。
图2是说明包括使用DRAM作为3D交叉点存储器的高速缓存器的混合式DIMM的系统的框图。主机系统210可包含中央处理单元(CPU)212、CPU高速缓存器214和非易失性双列直插式存储器模块(NVDIMM)主装置216。如图1中所描述,主机系统210可以是计算装置,例如台式计算机、手提式计算机、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、物联网(IoT)装置、嵌入式计算机(例如,包含在载具、工业设备或联网商用装置中的嵌入式计算机),或包含存储器和处理装置的此类计算装置。主机系统210可提供将存储于混合式DIMM 220处的数据并且可请求将从混合式DIMM 220检索的数据。CPU 212可为执行与主机系统210执行的应用程序相关联的指令的处理器或芯片上系统(SOC),其包括算术逻辑单元、管理单元等。CPU高速缓存器214可包含一或多个层级的高速缓存存储器以用于对高度存取的或最近存取的数据进行快速数据存取。在一些实施例中,CPU高速缓存器214或CPU 212可包含用以确定哪些数据高速缓存于不同层级的CPU高速缓存器214处的高速缓存控制器。NVDIMM主装置216可为主机系统210的接口,所述接口用以与耦合到主机系统210的存储器模块(例如混合式DIMM 220)通信。举例来说,NVDIMM主装置216接口可为支持可变时延数据传送的异步接口,例如NVDIMM-P。
混合式DIMM 220可为可耦合到主机系统(例如主机系统210)的存储器模块。混合式DIMM 220可包含存储器子系统控制器115、DRAM存储器组件230和3D交叉点存储器组件232。存储器子系统控制器115可将数据存储于3D交叉点存储器232处并且利用DRAM存储器230作为数据高速缓存器,以通过较高存取速率提供对数据的较低时延存取。较低时延存取可意味着较快存取速度,而较高时延存取可意味着较慢存取速度。存储器子系统控制器115可包含用于与主机系统210通信的NVDIMM从装置222接口。NVDIMM接口可为提供对可变时延存储器存取的支持的异步接口,例如NVDIMM-P。可变时延支持可提供主机系统210通过单个接口协议存取来自DRAM 230以及3D交叉点存储器232两者的数据的能力。存储器子系统控制器115可包含提供通到DRAM 230的接口的DRAM控制器226,以及为3D交叉点存储器232提供接口和媒体管理工具的媒体管理器228。
存储器子系统控制器115可另外包含SRAM数据高速缓存器224以充当用于混合式DIMM 220内的数据的最高层级高速缓存器。主机系统210在混合式DIMM 220处读取或写入的所有数据可高速缓存于SRAM数据高速缓存器224处,直到扇区被逐出,写回到3D交叉点232或高速缓存于DRAM 230处为止。存储器子系统控制器的高速缓存组件113可包含用于以下操作的一或多个组件:跟踪数据存取模式,以及将启发法应用于数据存取模式信息以确定暂时高速缓存于SRAM数据高速缓存器224处的数据是否应高速缓存来DRAM 230处。所述启发法可提供如下高速缓存方案:其提供非常高的命中率,使得混合式DIMM 220的主机存取紧密模仿只DRAM DIMM的存取速度。
因为可通过SRAM数据高速缓存器224转发存取的任何数据,所以高速缓存组件113可跟踪进入SRAM数据高速缓存器224的每一数据区段的存取,并且类似地可跟踪DRAM高速缓存器230中的每一数据页的存取。每一数据区段(还被称作扇区)可包含在存储于3D交叉点存储器232中的数据页中或与所述数据页相关联。通过跟踪每一扇区的存取模式,高速缓存组件113可另外聚合SRAM数据高速缓存器224中的页的所有扇区的存取数据。因此,高速缓存组件113可跟踪扇区粒度的数据存取以及页粒度的数据存取。一旦高速缓存组件113确定SRAM数据高速缓存器224中的扇区应高速缓存于DRAM 230中,便可将所述扇区和3D交叉点存储器232处的页内的剩余扇区复制到DRAM 230以进行更快存取。
图3是说明利用低时延存储器类型作为用于较高时延、较高容量存储器类型的高速缓存器的混合式DIMM 300的框图。混合式DIMM 300可包含存储器子系统控制器115、DRAM数据高速缓存器230和3D交叉点存储器240。与3D交叉点存储器240相比,DRAM数据高速缓存器230可管理更大粒度(更大数据大小)的数据。举例来说,DRAM页235A-F可包括约1KB的粒度的数据,而3D交叉点扇区245A-F可包括小得多的粒度(例如64字节(被称为扇区))的数据。另外,扇区245A-F也可包含在更大页(即,页242A-B)中。可在SRAM数据高速缓存器224和3D交叉点存储器240之间传送扇区粒度的数据。DRAM数据高速缓存器230可接收数据并且将数据存储于页层级(即,DRAM页245A-F)处。存储于SRAM数据高速缓存器224处的扇区可与来自3D交叉点存储器240的对应页的剩余扇区组合,之后将所述页存储于DRAM数据高速缓存器230中。
存储器子系统控制器115可包含用于高速缓存与最近写入和读存取相关联的数据的SRAM数据高速缓存器224,以及用于存储扇区标记310、页高速缓存标记314和主机存取数据316的额外存储器。另外,存储器子系统控制器115可包含用于确定哪些数据存储于3D交叉点存储器232处以高速缓存于DRAM数据高速缓存器230处的高速缓存组件113。高速缓存组件113可使用主机存取数据316确定哪些数据高速缓存于DRAM数据高速缓存器230处。主机存取数据316可包含扇区和页的存取速率(即,温度),以及最近什么时候存取了数据(就在最近存取了数据)以决定近期存取数据的可能性。SRAM数据高速缓存器224可存储和管理扇区粒度(例如,页的较小部分)的数据并且可跟踪存储于SRAM数据高速缓存器224中的扇区中的每一个的存取的数目、时序和速率。当存取暂时高速缓存于数据SRAM数据高速缓存器224处的数据扇区时,可收集主机存取数据316。当存取DRAM数据高速缓存器230中的页时,也可收集存取数据316。扇区标记310可包含与高速缓存于SRAM数据高速缓存器224中的个别数据扇区相关联的标记和元数据。页标记314可包含与高速缓存于DRAM数据高速缓存器230中的数据页相关联的标记和元数据。举例来说,扇区标记和页标记可包含识别扇区是否有效、脏或从存取扇区起过了多久的数据。此数据可使得高速缓存组件113能够识别在数据脏的情况下是否应将数据写回到3D交叉点存储器240等。
在一个实例中,当在存储器子系统控制器115处接收到读取请求时,主机地址包含在请求中。主机地址的至少一部分可用以确定数据是否高速缓存于SRAM数据高速缓存器224或DRAM数据高速缓存器230处。存储器子系统控制器115可使用高速缓存于SRAM数据高速缓存器224中的扇区的标记计算完整主机地址,以确定数据是否高速缓存于SRAM数据高速缓存器224中。如果数据高速缓存于SRAM数据高速缓存器224中,那么可相应地更新与匹配的扇区标记相关联的元数据(例如,主机存取数据316),并且可将数据返回到主机系统。如果DRAM数据高速缓存器230中存在未命中,那么高速缓存组件113可确定DRAM页235A-F是否应被逐出并且替换为与所请求的扇区相关联的页。如果高速缓存组件113基于主机存取数据316确定所请求的数据和/或与所请求的数据相关联的页具有高存取速率,那么SRAM数据高速缓存器224中的所存取的扇区可与页的剩余扇区一起传送到DRAM数据高速缓存器230。举例来说,如果扇区245A处于SRAM数据高速缓存器224中而非DRAM数据高速缓存器230中,那么可逐出页(例如,DRAM页235A)。所述逐出可基于最近最少使用的页或任何其它逐出算法。高速缓存组件113接着可确定页242A(其中存在扇区245A的页)应复制到DRAM页235A。已经处于SRAM中的扇区245A可与扇区245B和245C(例如,处于写入缓冲器)组合并且接着复制到DRAM数据高速缓存器230中。因此,使用SRAM数据高速缓存器224中的扇区的存取数据与DRAM数据高速缓存器230中的页的存取数据组合,高速缓存组件可确定哪些页高速缓存于DRAM数据高速缓存器230中。
虽然DRAM数据高速缓存器230和3D交叉点存储器240被描绘为具有特定数目的页和扇区,但应注意,DRAM数据高速缓存器230可包含任何数目个页且3D交叉点存储器240可包含任何数目个页和扇区。
图4是根据本公开的一些实施例,将存储于3D交叉点存储器中的数据高速缓存于低存取时延存储器中以减少混合式DIMM的存取时延的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,由图1的高速缓存组件113执行方法400。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在操作410处,处理装置确定存储于第一存储器组件处的数据页的区段集。第一存储器组件可为低时延、低容量类型的存储器,例如SRAM。SRAM可存储、传送和管理小粒度(小数据大小)的数据。最小粒度可称为数据页的区段、或扇区。
在操作420处,处理装置接收识别与存储于第一存储器组件处的数据页的区段集相关联的主机存取的信息。归因于要跟踪的大量区段和SRAM中的个别扇区的受限寿命,与每一数据区段相关联的元数据可相对较小。然而,与关联于区段的更大页相关联的元数据可包含跟踪页存取的额外元数据。与区段存取相关联的数据可聚合到页层级。因此,识别主机存取的信息可指示存取数据页和/或页区段的频率和时间(最近什么时候)。
在操作430处,处理装置基于识别主机存取的信息,识别将存储于第二存储器组件处的数据页的区段集中的一或多个,其中第二存储器对应于高速缓存存储器。处理装置可使用可确定不久以后最可能再次存取或频繁存取哪些数据的启发法集。指示为可能被存取的数据因此可被识别为应存储于第二存储器组件中的页。第二存储器组件可为低时延存取存储器类型,例如DRAM,其具有大到足以执行为用于更大容量3D交叉点存储器的高速缓存器的容量。DRAM可用以存储最可能被存取的数据页,使得DRAM作为高速缓存器的命中率非常高。
在操作440处,处理装置将数据页的一或多个区段从第一存储器组件复制到第二存储器组件。最后,在操作450处,处理装置将数据页的剩余区段从第三存储器组件复制到第二存储器组件。将包括SRAM的第一存储器组件处的数据的一或多个区段复制到包括DRAM的第二存储器组件可包含从包括3D交叉点存储器的第三存储器组件检索与SRAM处的数据的一或多个区段相关联的数据页的剩余区段,将一或多个区段与其对应的剩余区段(例如,处于写入缓冲器中)组合并且将完整数据页复制到DRAM中。举例来说,当数据页的区段高速缓存于DRAM中时,数据页的区段与从3D交叉点检索的将高速缓存为DRAM中的连续存储器页的数据页的额外区段组合。因此,基于数据页的个别区段的存取,可选择高速缓存于DRAM中的整个数据页。
图5是根据本公开的一些实施例,将存储于3D交叉点存储器组件中的数据高速缓存于混合式DIMM的DRAM存储器组件中的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,由图1的高速缓存组件113执行方法500。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在操作510处,处理装置识别存储于SRAM高速缓存器中的扇区。SRAM高速缓存器可具有低存储容量,但具有低存取时延和用于依序读取和写入的高带宽。SRAM高速缓存器可接收每一数据存取请求并且暂时高速缓存与所述请求相关联的数据。SRAM可存储和管理扇区粒度(页的较小部分)的数据并且可跟踪对存储于SRAM中的扇区中的每一个的存取的数目、时序和速率。接着,可针对可具有(与扇区标记相比)存储关于页的更多信息的相关联元数据标记的更大页来聚合存取数据。
在操作520处,处理装置识别与存储于SRAM中的扇区相关联的页(例如,位于3D交叉点中的数据页)(例如,所述扇区是其部分的页)。页可为存储于3D交叉点中的在需要时一起分组成可存储于DRAM数据高速缓存器处的更大页的扇区群组。
在操作530处,处理装置识别与页相关联的存取数据。存取数据可为包含在数据页中的扇区中的每一个的经聚合数据。存取数据可包含扇区和页的存取速率(即,温度)、最近什么时候存取了数据(就在最近存取了数据),以及近期存取数据的可能性大小。举例来说,算法可基于存取模式确定某些数据即将被存取的可能性为高且其它数据被存取的可能性为低。
在操作540处,处理装置基于在操作530处识别的存取数据,确定与扇区相关联的数据页是否应复制到DRAM数据高速缓存器。处理装置可使用识别存取可能性的启发式算法选择哪些数据应高速缓存于DRAM中。为使DRAM高速缓存器中的数据的命中率达到最大,未来最可能被存取的数据高速缓存于DRAM中。举例来说,非常热(高存取速率)的数据可有可能很快被再次被存取。因此,非常热的数据可高速缓存于DRAM数据高速缓存器中,使得未来操作可快速存取数据。
在操作550处,处理装置检索来自3D交叉点存储器组件的页的剩余页扇区和存储于SRAM中的扇区。处理装置可将所述剩余扇区和来自SRAM的扇区组合到写入缓冲器中,使得整个页可移动到DRAM数据高速缓存器中。在操作560处,处理装置将包括从3D交叉点和SRAM检索到的数据页扇区的数据页复制到DRAM中。因此,整个数据页可复制到DRAM,使得未来操作可快速存取来自低时延DRAM数据高速缓存器的数据。
图6说明计算机系统600的实例机器,可在其内执行用于使得机器进行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于进行控制器的操作(例如,以执行操作系统从而进行对应于图1的高速缓存组件113的操作)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂巢式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的一组指令的任何机器。另外,虽然说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、闪存存储器、动态随机存取存储器(DRAM)例如同步DRAM(SDRAM)或RDRAM等)、静态存储器606(例如,闪存存储器、静态随机存取存储器(SRAM)等),以及数据存储系统618,其经由总线630彼此通信。
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似物。处理装置602被配置成执行指令626以用于执行本文中所论述的操作和步骤。计算机系统600可另外包含网络接口装置608以在网络620上通信。
数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任一或多种的软件。指令626还可在由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
在一个实施例中,指令626包含用以实施对应于高速缓存组件(例如,图1的高速缓存组件113)的功能性的指令。虽然在实例实施例中机器可读存储媒体624展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”因此应被视为包含但不限于固态存储器、光学媒体和磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM以及磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自连接到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
Claims (20)
1.一种系统,其包括:
第一存储器组件,其包括第一存储器类型;
第二存储器组件,其包括第二存储器类型,耦合到所述第一存储器组件的,其中所述第二存储器类型与所述第一存储器组件相比具有较高存取时延;
第三存储器类型的第三存储器组件,其耦合到所述第一存储器组件和所述第二存储器组件,其中所述第三存储器组件与所述第一和第二存储器组件相比具有较高存取时延;和
处理装置,其以操作方式与所述第一存储器组件、所述第二存储器组件和所述第三存储器组件耦合以执行包括以下操作的操作:
识别存储于所述第一存储器组件中的数据页的区段;
识别与所述数据页和所述数据页的所述区段相关联的存取模式;
基于所述存取模式确定将所述数据页高速缓存于所述第二存储器组件处;
将存储于所述第一存储器组件中的所述数据页的所述区段复制到所述第二存储器组件;和
将存储于所述第三存储器组件处的所述数据页的一或多个额外区段复制到所述第二存储器组件。
2.根据权利要求1所述的系统,其中所述第三存储器类型对应于交叉点阵列存储器,所述第二存储器类型对应于动态随机存取存储器DRAM,且所述第一存储器类型对应于静态随机存取存储器SRAM。
3.根据权利要求1所述的系统,其中所述存取模式包括包含在所述数据页中的多个区段的聚合。
4.根据权利要求3所述的系统,其中所述第三存储器组件与所述第一存储器组件和所述第二存储器组件相比具有较高数据容量,且其中高速缓存于所述第二存储器组件处的所述数据还存储于所述第三存储器组件处。
5.根据权利要求3所述的系统,其中所述第一存储器组件、第二存储器组件、第三存储器组件和高速缓存管理器位于混合式双列直插式存储器模块内,且其中所述高速缓存管理器通过可变时延接口协议与主机系统通信。
6.根据权利要求1所述的系统,其中所述处理装置进一步基于与用以跟踪数据存取模式的页高速缓存标记和扇区高速缓存标记相关联的存取数据,确定是否将数据高速缓存于所述第二存储器组件处。
7.根据权利要求1所述的系统,其中与存储于所述第二存储器组件处的数据相比,以更高粒度存取存储于所述第三存储器组件处的数据。
8.一种方法,其包括:
确定存储于第一存储器组件处的数据页的多个区段;
接收识别与存储于所述第一存储器组件处的数据页的所述多个区段相关联的主机存取的信息;
通过处理装置,基于识别所述主机存取的所述信息识别将存储于第二存储器组件处的数据页的所述多个区段中的一或多个,其中所述第二存储器组件对应于高速缓存存储器;和
将所述一或多个数据页中的每一个的所述一或多个区段从所述第一存储器组件复制到所述第二存储器组件;和
将所述数据页中的每一个的一或多个剩余区段从存储所述数据页的第三存储器组件复制到所述第二存储器组件,其中所述一或多个区段是存储于所述第三存储器组件处的所述数据页的部分。
9.根据权利要求8所述的方法,其中所述第一存储器组件与所述第二和第三存储器组件相比具有较低存取时延,且其中所述第二存储器组件与所述第三存储器组件相比具有较低存取时延。
10.根据权利要求8所述的方法,其中识别主机存取的所述信息对应于主机系统基于发生所述主机存取的时间请求存取与数据页的所述一或多个区段相关联的特定数据页和额外数据的次数。
11.根据权利要求8所述的方法,其另外包括:
从与所述数据页相关联的主机系统接收推测性读取的指示;和
基于所述推测性读取的所述指示,识别将存储于所述第二存储器组件处的数据页的所述多个区段中的所述一或多个区段,其中在从所述主机系统接收到所述推测性读取的数据的读取操作之前,将所述推测性读取的所述数据存储于所述第二存储器组件处。
12.根据权利要求8所述的方法,其中以对应于数据页的区段的大小的粒度管理所述第一存储器组件,并且以对应于数据页的大小的粒度管理所述第二存储器组件,其中数据页的所述大小大于数据页的区段的所述大小。
13.根据权利要求8所述的方法,其中所述第一存储器组件对应于静态随机存取存储器SRAM,且所述第二存储器组件对应于动态随机存取存储器DRAM。
14.根据权利要求8所述的方法,其中所述第三存储器组件对应于三维交叉点3D交叉点存储器。
15.一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使所述处理装置进行以下操作:
确定存储于第一存储器组件处的数据页的多个区段;
接收识别与存储于所述第一存储器组件处的数据页的所述多个区段相关联的主机存取的信息;
通过处理装置,基于识别所述主机存取的所述信息识别将存储于第二存储器组件处的数据页的所述多个区段中的一或多个,其中所述第二存储器组件对应于高速缓存存储器;和
将所述一或多个数据页中的每一个的所述一或多个区段从所述第一存储器组件复制到所述第二存储器组件;和
将所述数据页中的每一个的一或多个剩余区段从存储所述数据页的第三存储器组件复制到所述第二存储器组件,其中所述一或多个区段是存储于所述第三存储器组件处的所述数据页的部分。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述第一存储器组件与所述第二和第三存储器组件相比具有较低存取时延,且其中所述第二存储器组件与所述第三存储器组件相比具有较低存取时延。
17.根据权利要求15所述的非暂时性计算机可读存储媒体,其中识别主机存取的所述信息对应于主机系统基于发生所述主机存取的时间请求存取与数据页的所述一或多个区段相关联的特定数据页和额外数据的次数。
18.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述处理装置进一步用于:
从与所述数据页相关联的主机系统接收推测性读取的指示;和
基于所述推测性读取的所述指示,识别将存储于所述第二存储器组件处的数据页的所述多个区段中的所述一或多个区段,其中在从所述主机系统接收到所述推测性读取的数据的读取操作之前,将所述推测性读取的所述数据存储于所述第二存储器组件处。
19.根据权利要求15所述的非暂时性计算机可读存储媒体,其中以对应于数据页的区段的大小的粒度管理所述第一存储器组件,并且以对应于数据页的大小的粒度管理所述第二存储器组件,其中数据页的所述大小大于数据页的区段的所述大小。
20.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述第一存储器组件对应于静态随机存取存储器SRAM,且所述第二存储器组件对应于动态随机存取存储器DRAM,且所述第三存储器组件对应于三维交叉点3D交叉点存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862732191P | 2018-09-17 | 2018-09-17 | |
US62/732,191 | 2018-09-17 | ||
PCT/US2019/051586 WO2020061098A1 (en) | 2018-09-17 | 2019-09-17 | Cache operations in a hybrid dual in-line memory module |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112805692A true CN112805692A (zh) | 2021-05-14 |
Family
ID=69774506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980064710.1A Withdrawn CN112805692A (zh) | 2018-09-17 | 2019-09-17 | 混合式双列直插式存储器模块中的高速缓存操作 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11169920B2 (zh) |
EP (1) | EP3853738A4 (zh) |
KR (1) | KR20210045506A (zh) |
CN (1) | CN112805692A (zh) |
WO (1) | WO2020061098A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11429528B2 (en) * | 2020-11-19 | 2022-08-30 | Micron Technology, Inc. | Split cache for address mapping data |
US12073873B2 (en) * | 2021-08-31 | 2024-08-27 | Micron Technology, Inc. | Dynamic buffer limit for at-risk data |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101611387A (zh) * | 2007-01-10 | 2009-12-23 | 移动半导体公司 | 用于增强外部计算设备的性能的自适应存储系统 |
WO2011112523A2 (en) * | 2010-03-08 | 2011-09-15 | Hewlett-Packard Development Company, L.P. | Data storage apparatus and methods |
US20130117513A1 (en) * | 2011-11-07 | 2013-05-09 | International Business Machines Corporation | Memory queue handling techniques for reducing impact of high latency memory operations |
US9268652B1 (en) * | 2012-10-31 | 2016-02-23 | Amazon Technologies, Inc. | Cached volumes at storage gateways |
US20170083443A1 (en) * | 2015-09-23 | 2017-03-23 | Zhe Wang | Method and apparatus for pre-fetching data in a system having a multi-level system memory |
CN107408405A (zh) * | 2015-02-06 | 2017-11-28 | 美光科技公司 | 用于并行写入到多个存储器装置位置的设备及方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5588129A (en) * | 1994-02-09 | 1996-12-24 | Ballard; Clinton L. | Cache for optical storage device and method for implementing same |
US6532521B1 (en) * | 1999-06-30 | 2003-03-11 | International Business Machines Corporation | Mechanism for high performance transfer of speculative request data between levels of cache hierarchy |
US7467280B2 (en) * | 2006-07-05 | 2008-12-16 | International Business Machines Corporation | Method for reconfiguring cache memory based on at least analysis of heat generated during runtime, at least by associating an access bit with a cache line and associating a granularity bit with a cache line in level-2 cache |
US7953954B2 (en) * | 2007-01-26 | 2011-05-31 | Micron Technology, Inc. | Flash storage partial page caching |
US8874831B2 (en) * | 2007-06-01 | 2014-10-28 | Netlist, Inc. | Flash-DRAM hybrid memory module |
KR20090024971A (ko) * | 2007-09-05 | 2009-03-10 | 삼성전자주식회사 | 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치 |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
US9547589B2 (en) * | 2008-06-18 | 2017-01-17 | Super Talent Technology, Corp. | Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive |
US8117390B2 (en) * | 2009-04-15 | 2012-02-14 | International Business Machines Corporation | Updating partial cache lines in a data processing system |
US10380022B2 (en) * | 2011-07-28 | 2019-08-13 | Netlist, Inc. | Hybrid memory module and system and method of operating the same |
CN104115136B (zh) | 2011-09-30 | 2017-12-08 | 英特尔公司 | 非易失性随机访问存储器中存储bios的装置、方法和系统 |
US9116812B2 (en) * | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
US20150039837A1 (en) * | 2013-03-06 | 2015-02-05 | Condusiv Technologies Corporation | System and method for tiered caching and storage allocation |
US9430386B2 (en) * | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9047226B2 (en) * | 2013-03-21 | 2015-06-02 | Sharp Laboratories Of America, Inc. | Computing device having optimized file system and methods for use therein |
US10268382B2 (en) * | 2015-06-18 | 2019-04-23 | Mediatek Inc. | Processor memory architecture |
US9916256B1 (en) | 2016-09-12 | 2018-03-13 | Toshiba Memory Corporation | DDR storage adapter |
US10452598B2 (en) | 2016-10-18 | 2019-10-22 | Micron Technology, Inc. | Apparatuses and methods for an operating system cache in a solid state device |
WO2018115920A1 (en) * | 2016-12-20 | 2018-06-28 | Intel Corporation | Methods and apparatus to perform memory copy operations |
US10282294B2 (en) * | 2017-02-15 | 2019-05-07 | Samsung Electronics Co., Ltd. | Mitigating DRAM cache metadata access overhead with SRAM metadata cache and bloom filter |
JP2018160155A (ja) * | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | 記憶装置 |
US10782908B2 (en) * | 2018-02-05 | 2020-09-22 | Micron Technology, Inc. | Predictive data orchestration in multi-tier memory systems |
US10839862B2 (en) * | 2018-04-25 | 2020-11-17 | Micron Technology, Inc. | Cross point array memory in a non-volatile dual in-line memory module |
-
2019
- 2019-09-17 CN CN201980064710.1A patent/CN112805692A/zh not_active Withdrawn
- 2019-09-17 EP EP19863795.1A patent/EP3853738A4/en not_active Withdrawn
- 2019-09-17 US US16/573,305 patent/US11169920B2/en active Active
- 2019-09-17 KR KR1020217011091A patent/KR20210045506A/ko not_active Application Discontinuation
- 2019-09-17 WO PCT/US2019/051586 patent/WO2020061098A1/en unknown
-
2021
- 2021-10-06 US US17/450,124 patent/US11561902B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101611387A (zh) * | 2007-01-10 | 2009-12-23 | 移动半导体公司 | 用于增强外部计算设备的性能的自适应存储系统 |
WO2011112523A2 (en) * | 2010-03-08 | 2011-09-15 | Hewlett-Packard Development Company, L.P. | Data storage apparatus and methods |
US20130117513A1 (en) * | 2011-11-07 | 2013-05-09 | International Business Machines Corporation | Memory queue handling techniques for reducing impact of high latency memory operations |
US9268652B1 (en) * | 2012-10-31 | 2016-02-23 | Amazon Technologies, Inc. | Cached volumes at storage gateways |
CN107408405A (zh) * | 2015-02-06 | 2017-11-28 | 美光科技公司 | 用于并行写入到多个存储器装置位置的设备及方法 |
US20170083443A1 (en) * | 2015-09-23 | 2017-03-23 | Zhe Wang | Method and apparatus for pre-fetching data in a system having a multi-level system memory |
Also Published As
Publication number | Publication date |
---|---|
US11561902B2 (en) | 2023-01-24 |
US20200089610A1 (en) | 2020-03-19 |
WO2020061098A1 (en) | 2020-03-26 |
KR20210045506A (ko) | 2021-04-26 |
US11169920B2 (en) | 2021-11-09 |
EP3853738A4 (en) | 2022-06-22 |
EP3853738A1 (en) | 2021-07-28 |
US20220027271A1 (en) | 2022-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11119940B2 (en) | Sequential-write-based partitions in a logical-to-physical table cache | |
JP2023514307A (ja) | 順次的にプログラムするメモリサブシステムにおける順次読み出し最適化 | |
US11675705B2 (en) | Eviction of a cache line based on a modification of a sector of the cache line | |
US20220300195A1 (en) | Supporting multiple active regions in memory devices | |
CN113010449A (zh) | 存储器子系统中命令的有效处理 | |
CN112835828A (zh) | 用于非连续源及目的地存储器地址的直接存储器存取(dma)命令 | |
US11561902B2 (en) | Cache operations in a hybrid dual in-line memory module | |
CN112948284A (zh) | 高速缓存媒体中的动态存取粒度 | |
CN113934666B (zh) | 数据接口桥的预取 | |
US11397683B2 (en) | Low latency cache for non-volatile memory in a hybrid DIMM | |
US11494306B2 (en) | Managing data dependencies in a transfer pipeline of a hybrid dimm | |
US20230350798A1 (en) | Namespace management for memory sub-systems | |
US11704247B2 (en) | Enhanced duplicate write data tracking for cache memory | |
US11698756B2 (en) | Cache-based memory read commands | |
US20230195350A1 (en) | Resequencing data programmed to multiple level memory cells at a memory sub-system | |
US11099987B2 (en) | Bit masking valid sectors for write-back coalescing | |
CN114003518A (zh) | 在具有高延迟后备存储的存储器子系统中管理存储器命令的处理 | |
CN113518977B (zh) | 基于高速缓存行的扇区的修改来逐出高速缓存行 | |
US20240345947A1 (en) | Virtual indexing in a memory device | |
US20240176527A1 (en) | Memory device region allocation using lifetime hints | |
US20240103752A1 (en) | Managing trim commands in a memory sub-system |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210514 |
|
WW01 | Invention patent application withdrawn after publication |