CN114600092A - 用于混合dimm中的非易失性存储器的低延时高速缓存 - Google Patents
用于混合dimm中的非易失性存储器的低延时高速缓存 Download PDFInfo
- Publication number
- CN114600092A CN114600092A CN202080072537.2A CN202080072537A CN114600092A CN 114600092 A CN114600092 A CN 114600092A CN 202080072537 A CN202080072537 A CN 202080072537A CN 114600092 A CN114600092 A CN 114600092A
- Authority
- CN
- China
- Prior art keywords
- memory device
- data
- memory
- cache
- sector
- 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
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0824—Distributed directories, e.g. linked lists of caches
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开包含第一存储器装置、耦合到所述第一存储器装置的第二存储器装置的系统及方法,其中所述第二存储器装置具有比所述第一存储器装置更低的存取延时,并且充当针对所述第一存储器装置的高速缓存。操作地耦合到所述第一及第二存储器装置的处理装置可跟踪存储在所述第二存储器装置处的数据区段的存取统计信息,所述区段具有第一粒度,并且基于所述存取统计信息,确定将存储在所述第二存储器装置处的数据区段从所述第一粒度更新为第二粒度。所述处理装置可进一步从所述第一存储器装置检索与所述数据区段相关联的额外数据并将所述额外数据存储在所述第二存储器装置处以形成具有所述第二粒度的新区段。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及一种用于混合双列直插式存储器模块(DIMM)中的非易失性存储器的低延时高速缓存。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。举例来说,所述存储器装置可为非易失性存储器装置及易失性存储器装置。一般来说,主机系统可利用存储器子系统将数据存储于存储器装置处及从存储器装置检索数据。
附图说明
将从下文给出的详细描述及本公开的各个实施例的附图更充分理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2是根据本公开的一些实施例的用于跟踪及管理数据高速缓存的实例方法的流程图。
图3是根据本公开的一些实施例的用于响应于页面高速缓存未命中及扇区高速缓存未命中而执行操作的实例方法的流程图。
图4是根据本公开的一些实施例的用于执行清洁操作的实例方法的流程图。
图5是根据本公开的一些实施例的用于跟踪及管理数据高速缓存的另一实例方法的流程图。
图6是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及一种用于混合双列直插式存储器模块中的非易失性存储器的低延时高速缓存。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合体。下面结合图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个组件的存储器子系统,所述组件例如存储数据的存储器装置。主机系统可提供将存储在存储器子系统处的数据,并且可请求将从存储器子系统检索的数据。
存储器子系统可包含非易失性及易失性存储器装置。非易失性存储器装置的一个实例是“与非”(NAND)存储器装置。另一实例是三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储单元的交叉点阵列。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置是一或多个裸片的封装。封装中的裸片可被指派到用于与存储器子系统控制器通信的一或多个通道。每一裸片可包含一组存储单元(“单元”)。单元是存储信息的电子电路。取决于单元类型,单元可存储一或多个二进制信息位,并具有与所存储的位的数目相关的各种逻辑状态。逻辑状态可由二进制值表示,例如“0”及“1”,或此类值的组合。
非易失性存储器装置可包含三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列并且可结合可堆叠交叉网格数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相反,3D交叉点存储器装置可执行就地写入操作,其中可对非易失性存储器单元进行编程而无需事先擦除非易失性存储器单元。此非易失性存储器装置可跨越裸片及通道对页面进行分组以形成管理单位(MU)。
存储器子系统可为混合DIMM,其包含单个DIMM封装中的第一类型的存储器装置(例如,3D交叉点媒体)及第二类型的存储器装置(例如,动态随机存取存储器(DRAM))。第一类型的存储器装置(即,第一存储器类型)可具有大的存储容量但具有高存取延时,而第二类型的存储器装置(即,第二存储器类型)具有较小存储容量但具有较低存取延时。高速缓存管理器可管理数据到及从第一类型的存储器装置及第二类型的存储器装置的检索、存储及递送。在常规存储器系统中,高速缓存管理器驻留在主机系统中,并且操作地耦合到与第一类型的存储器装置通信的第一控制器及与第二类型的存储器装置通信的第二控制器。然而,在主机系统中实施高速缓存管理器可导致效率低下。举例来说,第一存储器类型与第二存储器类型之间的数据业务可由通道协议限制,从而导致降低的高速缓存命中率及不良性能。
本公开的方面通过实施在DIMM封装上包含高速缓存管理器的混合DIMM来解决上述及其它缺陷。高速缓存管理器允许第二类型的存储器充当针对第一存储器类型的高速缓存。因此,如果高速缓存命中率高,那么第一存储器类型的高延时可由第二存储器类型的低延时掩盖。举例来说,DRAM存储器装置或其它易失性存储器可用作针对3D交叉点存储器装置或其它非易失性存储器装置(例如存储类存储器(SCM))的高速缓冲存储器。主机系统可利用混合DIMM以在3D交叉点存储器处检索及存储数据。混合DIMM可通过总线接口(例如,DIMM连接器)与主机系统耦合。DIMM连接器可为混合DIMM与主机系统之间的同步或异步接口。当主机系统提供存储器存取操作(例如读取操作)时,对应数据可从3D交叉点存储器或从作为针对3D交叉点存储器的高速缓冲存储器的混合DIMM的另一存储器装置返回到主机系统。
在说明性实例中,DRAM可经构造为存储最近存取的及/或高度存取的数据的高速缓存,使得此类数据可由主机系统快速存取。DRAM数据高速缓存可被分割成以不同数据大小管理的两个不同高速缓存。分区中的一者可包含利用较大粒度(即,较大大小)的页面高速缓存,且第二分区可包含利用较小粒度(即,较小大小)的扇区高速缓存。因为页面高速缓存利用较大数据大小,所以较少元数据用于管理数据(例如,针对整个页面仅具有单个有效位)。扇区高速缓存的较小数据大小可使用较大量的元数据(例如,较大数目个有效位及脏位以及标记等),但可允许更详细地跟踪主机存取数据,因此增加DRAM数据高速缓存中的整体高速缓存命中率。增加DRAM数据高速缓存中的命中率可提供与仅具有DRAM存储器装置的DIMM相当的性能,但可额外地提供更大容量的存储器、更低的成本,并支持持久性存储器。另外,当在扇区高速缓存中填充丢失数据或将脏数据从DRAM存储器装置写入到3D交叉点存储器时,以扇区粒度跟踪数据可降低DRAM存储器装置与3D交叉点存储器之间的带宽利用率。在一些实施例中,控制器可跟踪存储在DRAM存储器装置处的具有较小粒度的数据区段的存取统计信息。基于存取统计信息,控制器可通过检索与数据区段相关联的额外数据,并且以较大粒度形成新区段(其包含数据区段及额外数据),将数据区段更新为较大粒度。粒度越大,用于表示数据区段的元数据就越少。因此,在管理经常更新其元数据的频繁存取的区段时,会产生较少处理开销。
本公开的优点包含(但不限于)混合DIMM的改进性能导致针对主机系统的更高服务质量。举例来说,第一存储器装置与第二存储器装置之间的高速缓存操作可在混合DIMM内部。因此,当从3D交叉点存储器传输数据以存储在DRAM数据高速缓存处时,数据的传输将不利用主机系统在接收及传输写入操作及读取操作时也使用的外部总线或接口。因此,DRAM与3D交叉点存储器之间的业务不受NVDIMM-P协议的限制,从而改进命中率及性能。另外,扇区高速缓存与页面高速缓存位于同一存储器装置中,而不是用额外高速缓存组件来存储扇区。扇区高速缓存与页面高速缓存之间的转移可仅为元数据的交换,从而进一步减少到及从DRAM的带宽的使用。因为DRAM支持大高速缓存线及小高速缓存线,所以其提供较低成本(大高速缓存线)的优势,同时提高性能(小高速缓存线)。另外,混合DIMM上的高速缓存管理器可与支持NVDIMM-P协议的任何主机CPU一起工作。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此组合。
存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的混合体。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、启用物联网(IoT)的装置、嵌入式计算机(例如,包含在交通工具、工业装备或联网商业装置中的计算机),或包含存储器及处理装置的此计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文使用,“耦合到”或“与……耦合”一般是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中介组件),无论是有线的还是无线的,包含例如电连接、光学连接、磁连接等。
主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器)及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120例如使用存储器子系统110将数据写入到存储器子系统110并从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、双倍数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据速率(DDR)的DIMM插槽接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。主机系统120可进一步利用NVM快速(NVMe)接口以在存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时存取组件(例如,存储器装置130)。所述物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由相同通信连接、多个单独通信连接及/或通信连接的组合来存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任一组合。易失性存储器装置(例如,存储器装置140)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(NAND)型快闪存储器及就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格数据存取阵列基于体电阻的改变执行位存储。另外,与许多基于快闪的存储器相反,交叉点非易失性存储器可执行就地写入操作,其中可对非易失性存储器单元进行编程而无需事先擦除非易失性存储器单元。NAND型快闪存储器包含例如二维NAND(2D NAND)及三维NAND(3D NAND)。
存储器装置130中的每一者可包含存储器单元的一或多个阵列。一种类型的存储器单元(例如单电平单元(SLC))可每单元存储一个位。其它类型的存储器单元(例如多电平单元(MLC)、三电平单元(TLC)、四电平单元(QLC)及五电平单元(PLC))可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含存储器单元的一或多个阵列,例如SLC、MLC、TLC、QLC或PLC或此类的任一组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可被分组为可参考用于存储数据的存储器装置的逻辑单元的页面。针对一些类型的存储器(例如,NAND),页面可经分组以形成块。
尽管描述例如非易失性存储器单元及NAND型快闪存储器(例如,2D NAND、3DNAND)的3D交叉点阵列的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它硫属化物基存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、氧化物基RRAM(OxRAM)、“或非”(NOR)快闪存储器以及电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据的操作以及其它此类操作。存储器子系统控制器115可包含例如一或多个集成电路及/或离散组件、缓冲器存储器或其组合的硬件。硬件可包含具有专用(即,硬编码)逻辑的数字电路系统以执行本文所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA),专用集成电路(ASIC)等)或其它合适处理器。
存储器子系统控制器115可为处理装置,其包含经配置以执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明实例中,存储器子系统控制器115的本地存储器119包含经配置以存储用于执行各种过程、操作、逻辑流程以及控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的嵌入式存储器。
在所说明实例中,存储器子系统控制器115的本地存储器119包含经配置以存储用于执行各种过程、操作、逻辑流程以及控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的嵌入式存储器。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(ROM)。尽管图1中的实例存储器子系统110已经说明为包含存储器子系统控制器115,但在本公开的另一实施方案中,存储器子系统110不包含存储器子系统控制器115,而是可依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,并且可将命令或操作转换为指令或适当命令以实现对存储器装置130的期望存取。存储器子系统控制器115可负责其它操作,例如损耗均衡操作、垃圾收集操作、错误检测及错误纠正代码(ECC)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理MU地址、物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器装置130以及将与存储器装置130相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含可从存储器子系统控制器115接收地址并解码所述地址以存取存储器装置130的高速缓存或缓冲器(例如,DRAM)及地址电路系统(例如,行解码器及列解码器)。
在一些实施例中,存储器装置130包含本地媒体控制器135,其与存储器子系统控制器115结合操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可外部地管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110是被管理存储器装置,其包含在裸片上具有控制逻辑(例如,本地控制器132)的原始存储器装置130及用于在同一存储器装置封装内进行媒体管理的控制器(例如,存储器子系统控制器115)。被管理存储器装置的实例是被管理NAND(MNAND)装置。
在一个实施例中,存储器子系统110包含高速缓存管理器113,其可用于跟踪及管理存储器装置130及存储器装置140中的数据。在一些实施例中,存储器子系统控制器115包含高速缓存管理器113的至少一部分。在一些实施例中,高速缓存管理器113是主机系统120、应用程序或操作系统的部分。在其它实施例中,本地媒体控制器135包含高速缓存管理器113的至少一部分并且经配置以执行本文描述的功能性。高速缓存管理器113可经由同步接口直接与存储器装置130及140通信。此外,存储器装置130与存储器装置140之间的数据转移可在存储器子系统110内完成而无需存取主机系统120。
存储器装置140可包含存储来自存储器装置130的数据的数据高速缓存,使得可更快地服务对数据的未来请求。高速缓存线是高速缓存存储的基本单元并且可含有多个字节及/或数据字。较小高速缓存线大小具有较高命中率,但需要比大高速缓存大小线更多的标记存储器。标记是针对一群组数据的唯一标识符,其可用于区分经映射存储器的不同区。
在一些实施例中,由存储器子系统110存储的所有数据可存储在存储器装置130处。存储在存储器装置130处的某些数据也可存储在存储器装置140的数据高速缓存处。举例来说,被确定由主机系统120更频繁地或更最近地存取的数据可存储在数据高速缓存处以实现更快主机存取。当主机系统120提供对存储在数据高速缓存处的数据的读取请求(即,高速缓存命中)时,可从数据高速缓存检索数据,而不是从存储器装置130检索数据。在数据高速缓存处检索数据的带宽或能力可快于在存储器装置130处检索数据的带宽或能力。
存储器装置140的数据高速缓存可被分割,并且包含用于存储小高速缓存线(以下称为“扇区”)的扇区高速缓存142及用于存储大高速缓存线(以下称为“页面”)的页面高速缓存144。扇区高速缓存142及页面高速缓存144可以不同的数据大小进行管理。扇区高速缓存142可利用较小粒度(较小大小),且页面高速缓存144可利用较大粒度(较大大小)。在实例中,页面的大小可为2千字节,且扇区的大小可为64字节。页面可包含一或多个扇区。页面高速缓存144可需要较少元数据来管理数据(例如,针对整个页面仅具有单个有效位)利用较大数据大小。扇区高速缓存142的较小数据大小可能需要更大量的元数据(例如,更大数目个有效位及/或脏位、标记等)。页面高速缓存144中的页面可被组织成一或多个组。在实例中,页面组包含24个页面。类似地,扇区高速缓存142中的扇区可被组织成一或多个组。在实例中,扇区组包含16个扇区。
存储器装置130可以类似于扇区高速缓存的小粒度存储及管理数据。举例来说,数据可以数据有效负载大小存储在存储器装置130处,所述数据有效负载大小可包含扇区高速缓存142中的一或多个扇区。因此,可以数据有效负载大小(例如,一次一或多个扇区)在存储器装置130与扇区高速缓存142之间转移数据。
在扇区高速缓存142中,与扇区高速缓存142(本文中称为“扇区群组”)中的“页面”相关联的元数据可包含针对扇区中的每一者的有效位,以指示扇区是否包含有效数据(例如,与扇区相关联的高速缓存线是经分配用于转移(无效)还是接收转移(有效))。此外,元数据可包含针对扇区群组中每一数据有效负载的脏位,使得可确定数据有效负载是否已在扇区高速缓存142中被修改,且因此需要写回到存储器装置130。因此,可使用与扇区群组相关联的元数据来跟踪及管理扇区高速缓存142中的每一扇区。扇区群组元数据还可含有有助于通知高速缓存留存及预取策略的启发式字段。
类似于扇区高速缓存142,元数据可与页面高速缓存144中的每一页面相关联以管理对应页面。举例来说,与页面高速缓存144中的页面相关联的元数据可包含单个有效位及单个脏位,因为页面高速缓存144是以页面级管理的。额外元数据可与每一页面相关联以确定其它管理任务当中的逐出程序。当高速缓存管理器113确定扇区高速缓存142中的扇区群组将被转移到页面高速缓存144时(例如,因为其被频繁存取),高速缓存管理器113可用来自存储器装置130的对应扇区/数据有效负载填充扇区高速缓存142中的页面的剩余部分。一旦页面填充有扇区群组中的剩余扇区,而不是在高速缓存之间转移数据,则可将与扇区驻留在其中的页面相关联的元数据复制到页面高速缓存元数据中。举例来说,高速缓存管理器113可根据逐出策略识别页面高速缓存144中的页面,且接着将页面高速缓存中的页面的元数据(即,地址)与扇区高速缓存142中页面的元数据互换。因此,不转移数据,但页面可在数据高速缓存内在以页面级管理(例如,在页面高速缓存144中)与以扇区级管理(例如,在扇区高速缓存142中)之间更替。
特定来说,当高速缓存线从存储器装置130复制到存储器装置140(例如,扇区高速缓存142或页面高速缓存144)中时,可创建高速缓存条目。高速缓存条目可包含复制数据及复制数据的存储器位置(例如,标记存储器条目)。标记存储器条目可用于跟踪扇区、一群组扇区(例如,扇区群组)及/或页面。扇区群组中的扇区可使用单个标记存储器条目来跟踪,以减少扇区高速缓存142所需的标记存储器的量。
每一页面标记存储器条目可包含标记(例如,一或多个主机地址位)及相关联页面元数据。相关联页面元数据可包含脏位、有效位、LRU(最近最少存取的)数据等。脏位可用于指示页面是否具有与非易失性存储器(例如,存储器装置130)不一致的数据。有效位可用于指示页面是否有效(例如,与页面相关联的高速缓存线是经分配用于转移(无效)还是接收转移(有效))。LRU数据可包含LRU值,并且可用于指示页面是否最近由主机系统120最少存取。举例来说,当存取页面时,可将针对所述页面的LRU值设置为预定值(例如,24)。针对页面高速缓存144中的每隔一个页面或针对一组页面中的每隔一个页面的LRU值可减少一定量(例如,减少1)。LRU数据可用于逐出程序。高速缓存管理器113可使用页面标记存储器条目及/或页面元数据来跟踪及管理页面高速缓存144中的每一页面。
每一扇区标记存储器条目可包含标记(例如,主机地址位)及针对扇区或扇区群组的相关联扇区元数据。与扇区群组中的扇区相关联的扇区元数据可包含针对扇区中的每一者的有效位,以指示所述扇区是否为有效数据片。扇区群组元数据可进一步包含针对扇区群组中的每一数据有效负载的脏位,使得可确定数据有效负载是否已在扇区高速缓存中被修改。扇区群组元数据可进一步包含用于逐出过程的LRU数据,指其示扇区最近由主机最少存取。扇区群组元数据还可包含有助于通知高速缓存留存及预取策略的启发式字段。高速缓存管理器113可使用扇区标记存储器条目及/或扇区元数据来跟踪及管理扇区高速缓存142中的每一扇区及扇区群组。
在实例中,扇区高速缓存142可使用32个有效位来指示扇区群组中的哪些扇区是有效的。在另一实例中,扇区高速缓存142可使用16个脏位来指示针对每2个扇区或每扇区对的脏情形。当扇区将被逐出(即,脏)时,可检查所述扇区对的另一扇区的有效位。如果其被设置,那么另一扇区也可被逐出。可从存储器装置130读取两个扇区。如果没有设置同一扇区对的另一扇区的有效位,那么两个扇区都可写入存储器装置140中。否则,仅正在被填充的扇区可被写入。在一些实施例中,高速缓存管理器113可使用启发法来说明对扇区的存取的数目。
在一些实施例中,页面元数据可与页面高速缓存144中的每一页面相关联以管理每一页面。举例来说,与页面高速缓存中的页面相关联的页面元数据可包含单个有效位及单个脏位。额外元数据可与每一页面相关联以确定其它管理任务当中的逐出程序。
在一些实施例中,当在存储器子系统处发生主机存取(例如,读取或写入操作)时,高速缓存管理器113可使用与存取相关联的主机地址来查询与页面高速缓存144中的每一页面及扇区高速缓存142中的每一扇区相关联的标记。如果高速缓存管理器113在页面高速缓存144中找到匹配(使用页面标记存储器条目),那么由主机系统请求的数据在页面高速缓存144中。高速缓存管理器113接着可提供主机系统120请求的存取(例如,读取或写入)。如果高速缓存管理器113(使用扇区标记存储器条目)在扇区高速缓存142中找到匹配,那么可从扇区高速缓存142检索或存取数据。否则,任何高速缓存未命中可由扇区高速缓存142处置。举例来说,如果读取操作被接收并且高速缓存未命中发生(即,数据不在页面高速缓存144或扇区高速缓存142中),那么高速缓存管理器113可基于高速缓存管理器113的逐出策略逐出扇区群组。举例来说,将被逐出的扇区群组可为最近最少使用的。具有脏位的任何数据可被写回到存储器装置130。高速缓存管理器113接着可从存储器装置130检索请求的数据有效负载,并用包含所检索数据有效负载的扇区群组替换扇区高速缓存142中的被逐出扇区群组。
在一些实施例中,当数据在扇区高速缓存142中时,可跟踪扇区的数据存取模式及数据存取历史,以确定数据是否应在一段更长的时间内高速缓存在页面高速缓存144中。数据高速缓存(页面高速缓存144及扇区高速缓存142两者)的命中率可通过识别存取的一般模式及通过聚合关于扇区高速缓存142中每一扇区群组的主机存取的足够量的数据来增加。高速缓存管理器113可使用所收集存取数据来确定扇区群组的温度(例如,存取速率)、扇区及其对应页面的存取模式等,且接着选择适当策略以最大化数据高速缓存的命中率。举例来说,高速缓存管理器113可包含一组高速缓存管理策略,以基于为扇区高速缓存收集的存取数据进行选取。
如上文论述,高速缓存管理器113可在数据可存储到扇区高速缓存142之前,使用逐出模式执行逐出程序(以下称为“逐出”)。逐出模式可为基于扇区的、基于页面的或其任一组合。在基于扇区的逐出模式中,高速缓存管理器113可选择扇区高速缓存142中的扇区。在一个实例中,高速缓存管理器113使用LRU数据选择扇区。如果选定扇区包含脏位,那么高速缓存管理器113可将所述扇区发送到非易失性存储器(例如,存储器装置130)。在基于页面的逐出模式中,可将一或多个经逐出扇区发送到页面高速缓存144。
在一些实施例中,可使用启发法来确定逐出模式。启发法是经设计用于使用非标准方法解决问题的技术或算法。在一个实例中,如果启发法超过阈值,那么逐出模式可为基于页面的。否则,逐出模式可为基于扇区的。在其它实施例中,算法可检查有效位组的数目以及脏位组的数目。当启发法、有效位组的数目及/或脏位组的数目超过一或多个阈值时,逐出模式可为基于页面的。否则,逐出模式可为基于扇区的。在一些实施例中,高速缓存管理器113可使用利用扇区逐出地址的第二页面高速缓存查找来寻找待逐出的LRU页面。如果选定页面是脏的,那么高速缓存管理器113可首先将整个页面发送到非易失性存储器(例如,存储器装置130)。如果页标记存储器被划分成两个单独段(例如,第一段用于第一页面组,且第二段用于第二页面组),那么可避免第二页面高速缓存查找。在一些实施例中,当使用一组的所有扇区或页面(例如,有效)并且需要将新页面插入到完整组中时,高速缓存管理器113可逐出LRU页面。然而,当扇区群组需要被逐出但其启发法指示将其保持在高速缓存中可能有益时,高速缓存管理器113可移动扇区群组页面高速缓存144,而不是逐出扇区群组页面高速缓存144。如果页面页面高速缓存144已满,那么高速缓存管理器113可逐出LRU页面。
扇区可唯一地与单独段的页面相关联。取决于主机地址位的值,可选择来自两个对应页面组的两个查找结果中的一者作为最终页面查找结果。待逐出的扇区可与通过使用主机地址选择的扇区具有相同的索引。高速缓存管理器113可通过使用其标记值的LSB(最低有效字节)来选择其对应页面。由于在第一查找的两个查找结果在第一查找之后可能已经可用,因此通过使用扇区标记(待被逐出)的LSB来选择两个第一页面查找结果中的一者,使用扇区逐出地址的第二查找结果可随时可用。
在一些实施例中,高速缓存管理器113可执行填充操作。在实例中,高速缓存管理器113可确定扇区高速缓存中的扇区群组应被转移到页面高速缓存。高速缓存管理器113可用来自非易失性存储器(例如,存储器装置130)的对应扇区来填充扇区高速缓存142中的页面的剩余部分。一旦高速缓存管理器113用扇区群组中的剩余扇区填充页面,高速缓存管理器113就将与扇区驻留在其中的页面相关联的元数据复制到页面元数据中。举例来说,高速缓存管理器113可根据逐出模式识别页面高速缓存144中的页面,且接着将页面高速缓存中页面的元数据(即,地址)与扇区高速缓存142中的页面的元数据互换。因此,不转移数据,但页面可在存储器装置140内在以页面级管理(例如,页面高速缓存144)与以扇区级管理(例如,扇区高速缓存142)之间更替。
在一些实施例中,为最小化读取非易失性存储器的带宽,不从非易失性存储器读取数据以填充页面高速缓存144用于页面高速缓存查找未命中。而是,高速缓存管理器113将数据从扇区高速缓存142读取到页面高速缓存144。在实例中,高速缓存管理器113基于启发式算法将数据从扇区高速缓存142读取到页面高速缓存144用于高速缓存命中。举例来说,当扇区群组的扇区的存取的总数目超过阈值时,高速缓存管理器可将有效扇区移动到页面高速缓存144,并从非易失性存储器读取无效扇区以填充新形成的页面。一旦页面被填充,高速缓存管理器113就可将页面的有效位设置为1,并且如果原始扇区群组的任何扇区是脏的,那么将页面的脏位设置为1。
在页面逐出模式下,可将有效扇区移动到页面高速缓存144。高速缓存管理器113可从非易失性存储器读取无效扇区,以完全填充新形成的页面(例如,填充操作)。除存取的总数目之外,高速缓存管理器113可确定有效位组的数目以及脏位组的数目。在一些实施例中,如果存取的数目超过预定阈值,及/或有效位组的数目超过另一预定阈值,及/脏位组的数目超过又一预定阈值,那么高速缓存管理器113可执行页面填充操作。
在一些实施例中,高速缓存管理器113可执行清洁操作。在实例中,为在选择扇区及页面(例如,LRU扇区及页面)以进行逐出之前前摄地将其逐出,高速缓存管理器113可执行清洁操作以在其LRU值低于阈值时,将任何脏扇区或页面发送到非易失性存储器。高速缓存管理器113可在LRU被更新之后触发清洁操作。在一些实施例中,高速缓存管理器113可使用LRU更新算法,所述算法可导致LRU值以固定模式改变。举例来说,对于扇区高速缓存142,在复位之后,可将所有LRU值设置为零。在对扇区高速缓存142中的第一扇区进行第一存取之后,可设置针对第一扇区的LRU值(例如,到15)。在对扇区高速缓存142中的第二扇区进行后续存取之后,可设置针对第二扇区的第二LRU值(例如,到15),同时可减小第一LRU值(例如,设置为14)。此过程可针对每一后续存取继续。当清洁操作由高速缓存管理器113启用时,可设置阈值(例如,4)。当扇区的LRU值达到阈值时,高速缓存管理器113可将所述扇区发送到非易失性存储器。需要注意的是,清洁操作可使高速缓存线(例如,扇区、页面)干净(例如,将脏位从1设置为0),但将不逐出高速缓存线或改变其LRU值。
在一些实施例中,高速缓存管理器113可使用映射方案来保存将数据从扇区高速缓存142移动到页面高速缓存144所需的带宽。当数据从扇区高速缓存142移动到页面高速缓存144时,可首先选择页面。对于扇区行,取决于扇区标记的LSB(最低有效位),可存在两个可能对应页面行。举例来说,如果第一扇区行的扇区标记的LSB为0,那么第一扇区行可对应于第一页面行,且如果第一扇区行的标记的LSB为1,那么第一扇区行可对应于第二页面行;如果第二扇区行的标记的LSB为0,那么第二扇区行可对应于邻近于第一页面行的第三页面行,且如果第二扇区行的标记的LSB为1,那么第二扇区行可对应于邻近于第二页面行的第四个页面行,依此类推。扇区高速缓存线及页面高速缓存线一起可形成页面映射集,其中数据不需要移动,但用于每一高速缓存线的物理存储器装置140页面可互换。为实现页面互换,每一标记存储器条目可添加有额外字段(例如,页面索引)。
图2是根据本公开的一些实施例的用于跟踪及管理数据高速缓存的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的高速缓存管理器113执行。尽管以特定序列或顺序展示,但除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可行的。
方法200可涉及第一存储器装置(例如,存储器装置130)及第二存储器装置(例如,存储器装置140)。存储器装置130可耦合到存储器装置140。存储器装置140可充当到存储器装置130的高速缓存。存储器装置130、存储器装置140及处理逻辑可包含在混合双列直插式存储器模块内。第一存储器装置可为交叉点阵列存储器装置。第二存储器装置可为DRAM、SDRAM或任何其它易失性存储器或其任一组合。
在操作210,处理逻辑跟踪存储在存储器装置140处的数据区段的存取统计信息,其中所述区段具有第一粒度。第一粒度可由扇区高速缓存142利用。数据区段可包含一或多个扇区,或扇区群组。统计数据可包含对数据的数次存取、对数据的存取速率(例如,命中率或存取数据的频率)等。在一些实施例中,数据可与元数据相关联,例如(举例来说)针对每一扇区或扇区群组的有效位组的数目,以及针对每一扇区或扇区群组的脏位组的数目。
在操作220处,处理逻辑确定基于存取统计信息将存储在存储器装置140处的数据区段从第一粒度更新为第二粒度。第二粒度可由页面高速缓存144利用,并且可大于第一粒度。当存取统计信息满足阈值准则时,处理逻辑可确定将数据区段从第一粒度更新为第二粒度。在实例中,当查找的总数目满足或超过存取数目阈值时,处理逻辑可确定满足阈值准则。在另一实例中,当存取速率满足或超过存取速率阈值时,处理逻辑可确定满足阈值准则。在一些实施例中,处理逻辑可基于逐出策略从页面高速缓存144及/或扇区高速缓存142首先逐出最近最少使用的数据。
在框230处,处理逻辑从存储器装置130检索与数据区段相关联的额外数据。额外数据可包含页的不存在于扇区高速缓存142中的对应扇区。
在框240处,处理逻辑将额外数据存储在第二存储器装置处,以形成包括额外数据及数据区段的新区段。新区段可具有第二粒度。在实例中,更新包含识别经逐出页面的物理地址,识别新区段的物理地址,及将新区段的物理地址与最近最少使用的页面的物理地址交换。
图3是根据本公开的一些实施例的响应于页面高速缓存未命中及扇区高速缓存未命中而执行操作的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的高速缓存管理器113执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可行的。
在操作310处,响应于页面高速缓存144查找未命中及扇区高速缓存142查找未命中,处理逻辑可选择扇区高速缓存142中的扇区进行逐出。逐出可基于逐出策略(例如,基于扇区的逐出或基于页面的逐出)。处理逻辑可基于满足阈值准则的LRU数据来选择扇区。举例来说,处理逻辑可选择具有最低LRU值的扇区,或具有低于阈值的LRU值的扇区。
在操作320处,处理逻辑确定选定扇区是否包含脏位。脏位可指示扇区是否已在扇区高速缓存142中被修改,且因此需要写回到存储器装置130。响应于确定选定扇区包含脏位,处理逻辑在操作330处确定逐出模式类型,其可为基于扇区的逐出或基于页面的逐出。可通过确定与扇区相关联的扇区群组的启发法是否满足阈值准则、扇区群组的有效位组的数目是否满足阈值准则、扇区群组的脏位的数目是否满足阈值准则或其任何组合来选择逐出模式。举例来说,处理逻辑可确定启发法、有效位组的数目及/或脏位组的数目是否超过相应阈值。如果选定扇区不包含脏位,那么处理逻辑继续进行到操作360。
响应于确定逐出模式类型是基于页面的,处理逻辑在操作340处将选定扇区处的数据发送(例如,复制)到页面高速缓存144。响应于确定逐出模式类型是基于扇区的,处理逻辑在操作350处将选定扇区处的数据发送到非易失性存储器装置(例如,存储器装置130)。
在操作360处,处理逻辑从扇区高速缓存142逐出选定扇区。在操作370处,处理逻辑将与页面高速缓存查找未命中及扇区高速缓存查找未命中相关联的新扇区读取到扇区高速缓存142中。新扇区可与用于进一步逐出程序的LRU值相关联。
图4是根据本公开的一些实施例的执行清洁操作的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的高速缓存管理器113执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可行的。通过实例的方式,图4将论述扇区高速缓存142中的扇区。然而,方法400可类似地在页面高速缓存144中的页面上执行。
在操作410处,响应于对扇区高速缓存142的存储器存取,处理逻辑可更新扇区高速缓存中每一扇区的每一LRU值。LRU值可用于指示主机系统120是否最近最少存取页面。举例来说,当存取扇区时,可将针对所述扇区的LRU值设置为预定值(例如,15)。针对扇区高速缓存144中的每隔一个扇区的LRU值或可减少一定量(例如,1)。
在操作420处,处理逻辑可确定与扇区高速缓存142中的扇区相关联的LRU值满足阈值准则。举例来说,处理逻辑可确定LRU值是处于阈值还是低于阈值。
在操作430处,响应于确定扇区包含脏位,处理逻辑可将数据从扇区复制到非易失性存储器装置(例如,存储器装置130)。脏位可指示扇区是否已在扇区高速缓存142中被修改。
在操作440处,处理逻辑可清除脏位。在实例中,通过将脏位从1设置为0来清除脏位。应注意,扇区的LRU值没有复位为预定值。
图5是根据本公开的一些实施例的用于跟踪及管理数据高速缓存的另一实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的高速缓存管理器113执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可行的。
在操作510处,处理逻辑在存储器装置130处维护一组主机数据。在操作520处,处理逻辑在存储器装置140处维护主机数据的子集。存储器装置140可具有比存储器装置130更低的存取延时,并且可用作针对存储器装置130的高速缓存。存储器装置140维护针对主机数据的子集的第一区段的元数据,第一区段具有第一大小。在实例中,第一区段包含扇区。
在操作530处,处理逻辑确定主机数据的子集的至少一个第一区段的一或多个存取统计信息满足阈值准则。在实例中,当查找的总数目超过存取数目阈值时,处理逻辑可确定满足阈值准则。在另一实例中,当存取速率超过存取速率阈值时,处理逻辑可确定满足阈值准则。在一些实施例中,处理逻辑可基于逐出策略从页面高速缓存144及/或扇区高速缓存142首先逐出最近最少使用的数据。
在操作540处,处理逻辑可将主机数据的子集的一或多个第一区段关联在一起作为第二区段。一或多个第一区段可包含至少一个第一区段。存储器装置140可维护针对主机数据的第二区段的元数据。第二区段可有第二大小。举例来说,第二区段可为页面。
图6说明计算机系统600的实例机器,在计算机系统600内可执行用于致使所述机器执行本文所论述的方法中的任一或多者的一组指令。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),其包含或利用存储器子系统(例如,图1的存储器子系统110),或者可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的高速缓存管理器113的操作)。在替代实施例中,所述机器可连接(例如,联网)到LAN、内联网、外联网及/或因特网中的其它机器。所述计算机可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器械、服务器、网络路由器、交换机或网桥或能够执行指定待由所述机器采取的动作的一组指令(循序或以其它方式)的任何机器。此外,虽然说明单个机器,但是术语“机器”也应被认为包含个别地或共同地执行一组(或多组)指令以执行本文所论述的方法中的任一者或多者的机器的任何集合。
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等)及数据存储器装置618,其经由总线630彼此通信。处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或者是实施其它指令集的处理器,或者是实施指令集的组合的处理器。处理装置602也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似者。处理装置602经配置以执行用于执行本文所论述的操作及步骤的指令626。计算机系统600可进一步包含用于通过网络620进行通信的网络接口装置608。
数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),在其上存储体现本文所描述的方法或功能中的任一者或多者的一或多组指令626或软件。在由计算机系统600执行指令626期间,指令626也可全部或至少部分地驻留在主存储器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所述的系统,其中所述第一存储器装置、第二存储器装置及所述处理装置包含在混合双列直插式存储模块中,且其中所述第一存储器装置是交叉点阵列存储器装置。
3.根据权利要求1所述的系统,其中所述处理装置用以执行包括以下的进一步操作:
从所述第二存储器装置逐出具有第二粒度的旧区段。
4.根据权利要求3所述的系统,其中所述处理装置用以执行包括以下的进一步操作:
识别所述旧区段的物理地址;
识别所述新区段的物理地址;及
将所述新区段的所述物理地址与所述旧区段的所述物理地址交换。
5.根据权利要求3所述的系统,其中所述逐出是基于LRU数据。
6.根据权利要求1所述的系统,其中确定将存储在所述第二存储器装置处的所述数据从所述第一粒度更新为所述第二粒度包括:
确定来自所述存取统计信息的查找的总数目满足阈值准则。
7.根据权利要求1所述的系统,其中所述数据区段与有效位或脏位中的至少一者相关联。
8.一种方法,其包括:
在存储器子系统的第一存储器装置处维护一组主机数据;
在所述存储器子系统的第二存储器装置处维护所述主机数据的子集,其中所述第二存储器装置具有比所述第一存储器装置更低的存取延时,并且用作针对所述第一存储器装置的高速缓存,且其中所述第二存储器装置维护针对所述主机数据的所述子集的第一区段的元数据,所述第一区段具有第一大小;
确定所述主机数据的所述子集的至少一个第一区段的一或多个存取统计信息满足阈值准则;及
将所述主机数据的所述子集的多个所述第一区段关联在一起作为第二区段,所述多个所述第一区段包括所述至少一个第一区段,其中所述第二存储器装置维护针对所述主机数据的所述第二区段的元数据,所述第二区段具有第二大小。
9.根据权利要求8所述的方法,其中所述第一存储器装置、第二存储器装置及所述处理装置包含在混合双列直插式存储模块内,且其中所述第二存储器装置是交叉点阵列存储器装置。
10.根据权利要求8所述的方法,其进一步包括:
从所述第二存储器装置逐出具有第二粒度的旧区段。
11.根据权利要求10所述的方法,其进一步包括:
识别所述旧区段的物理地址;
识别所述新区段的物理地址;及
将所述新区段的所述物理地址与所述旧区段的所述物理地址交换。
12.根据权利要求10所述的方法,其中所述逐出是基于LRU数据。
13.根据权利要求8所述的方法,其中所述数据区段与有效位或脏位中的至少一者相关联。
14.一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由操作地耦合到第一存储器装置及第二存储器装置的处理装置执行时执行包括以下的操作:
跟踪存储在所述第二存储器装置处的数据区段的存取统计信息,其中所述区段具有第一粒度;
基于所述存取统计信息,确定将存储在所述第二存储器装置处的数据区段从所述第一粒度更新为第二粒度;
从所述第一存储器装置检索与所述数据区段相关联的额外数据;及
将所述额外数据存储在所述第二存储器装置处以形成包括所述额外数据及所述数据区段的新区段,其中所述新区段具有所述第二粒度。
15.根据权利要求14所述的非暂时性计算机可读存储媒体,其中所述第一存储器装置、第二存储器装置及所述处理装置包含在混合双列直插式存储模块内,且其中所述第一存储器装置是交叉点阵列存储器装置。
16.根据权利要求14所述的非暂时性计算机可读存储媒体,其中所述处理装置用以执行包括以下的进一步操作:
从所述第二存储器装置逐出具有第二粒度的旧区段。
17.根据权利要求16所述的非暂时性计算机可读存储媒体,其中所述处理装置用以执行包括以下的进一步操作:
识别所述旧区段的物理地址;
识别所述新区段的物理地址;及
将所述新区段的所述物理地址与所述旧区段的所述物理地址交换。
18.根据权利要求16所述的非暂时性计算机可读存储媒体,其中所述逐出是基于LRU数据。
19.根据权利要求14所述的非暂时性计算机可读存储媒体,其中所述区段数据与有效位或脏位中的至少一者相关联。
20.根据权利要求14所述的非暂时性计算机可读存储媒体,其中确定将存储在所述第二存储器装置处的所述数据从所述第一粒度更新为所述第二粒度包括:
确定来自所述存取统计信息的查找的总数目满足阈值准则。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962903198P | 2019-09-20 | 2019-09-20 | |
US62/903,198 | 2019-09-20 | ||
US17/003,331 US11397683B2 (en) | 2019-09-20 | 2020-08-26 | Low latency cache for non-volatile memory in a hybrid DIMM |
US17/003,331 | 2020-08-26 | ||
PCT/US2020/051299 WO2021055624A1 (en) | 2019-09-20 | 2020-09-17 | Low latency cache for non-volatile memory in a hybrid dimm |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114600092A true CN114600092A (zh) | 2022-06-07 |
Family
ID=74881850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080072537.2A Pending CN114600092A (zh) | 2019-09-20 | 2020-09-17 | 用于混合dimm中的非易失性存储器的低延时高速缓存 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11397683B2 (zh) |
KR (1) | KR20220062629A (zh) |
CN (1) | CN114600092A (zh) |
DE (1) | DE112020004442T5 (zh) |
WO (1) | WO2021055624A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200125495A1 (en) * | 2019-12-19 | 2020-04-23 | Intel Corporation | Multi-level memory with improved memory side cache implementation |
CN113312275A (zh) * | 2020-02-27 | 2021-08-27 | 华为技术有限公司 | 内存设备的数据处理方法、装置和系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6925526B2 (en) * | 2002-10-31 | 2005-08-02 | International Business Machines Corporation | Method and apparatus for servicing mixed block size data access operations in a disk drive data storage device |
US7117309B2 (en) * | 2003-04-14 | 2006-10-03 | Hewlett-Packard Development Company, L.P. | Method of detecting sequential workloads to increase host read throughput |
JP4819369B2 (ja) * | 2005-02-15 | 2011-11-24 | 株式会社日立製作所 | ストレージシステム |
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 |
US7596643B2 (en) | 2007-02-07 | 2009-09-29 | Siliconsystems, Inc. | Storage subsystem with configurable buffer |
US8161240B2 (en) | 2007-10-10 | 2012-04-17 | Apple Inc. | Cache management |
TWI470431B (zh) * | 2013-06-14 | 2015-01-21 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US20150081981A1 (en) | 2013-09-19 | 2015-03-19 | Netapp, Inc. | Generating predictive cache statistics for various cache sizes |
US9292444B2 (en) * | 2013-09-26 | 2016-03-22 | International Business Machines Corporation | Multi-granular cache management in multi-processor computing environments |
US10048883B2 (en) * | 2014-09-29 | 2018-08-14 | Dell Products, Lp | Integrated page-sharing cache storing a single copy of data where the data is stored in two volumes and propagating changes to the data in the cache back to the two volumes via volume identifiers |
WO2017052595A1 (en) | 2015-09-25 | 2017-03-30 | Hewlett Packard Enterprise Development Lp | Variable cache for non-volatile memory |
KR20180044635A (ko) | 2016-10-24 | 2018-05-03 | 삼성전자주식회사 | 저장 시스템 및 그것의 동작 방법 |
US10990534B2 (en) * | 2019-01-31 | 2021-04-27 | Intel Corporation | Device, system and method to facilitate disaster recovery for a multi-processor platform |
-
2020
- 2020-08-26 US US17/003,331 patent/US11397683B2/en active Active
- 2020-09-17 KR KR1020227012661A patent/KR20220062629A/ko unknown
- 2020-09-17 WO PCT/US2020/051299 patent/WO2021055624A1/en active Application Filing
- 2020-09-17 CN CN202080072537.2A patent/CN114600092A/zh active Pending
- 2020-09-17 DE DE112020004442.4T patent/DE112020004442T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210089454A1 (en) | 2021-03-25 |
KR20220062629A (ko) | 2022-05-17 |
DE112020004442T5 (de) | 2022-06-23 |
US11397683B2 (en) | 2022-07-26 |
WO2021055624A1 (en) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11119940B2 (en) | Sequential-write-based partitions in a logical-to-physical table cache | |
US11656983B2 (en) | Host-resident translation layer write command | |
JP2023514307A (ja) | 順次的にプログラムするメモリサブシステムにおける順次読み出し最適化 | |
CN111352866A (zh) | 用于管理存储器突发存取的方法和系统 | |
US20220300195A1 (en) | Supporting multiple active regions in memory devices | |
CN113010449A (zh) | 存储器子系统中命令的有效处理 | |
US11693781B2 (en) | Caching or evicting host-resident translation layer based on counter | |
US11836076B2 (en) | Implementing mapping data structures to minimize sequentially written data accesses | |
CN115145838A (zh) | 在与非存储器中存储逻辑到物理映射 | |
CN115080458A (zh) | 在存储器子系统中高速缓存逻辑到物理映射信息 | |
CN112948284A (zh) | 高速缓存媒体中的动态存取粒度 | |
US11397683B2 (en) | Low latency cache for non-volatile memory in a hybrid DIMM | |
US11561902B2 (en) | Cache operations in a hybrid dual in-line memory module | |
US20240143511A1 (en) | Dynamically sized redundant write buffer with sector-based tracking | |
US11494306B2 (en) | Managing data dependencies in a transfer pipeline of a hybrid dimm | |
US11599466B2 (en) | Sector-based tracking for a page cache | |
US11314643B2 (en) | Enhanced duplicate write data tracking for cache memory | |
CN114003518A (zh) | 在具有高延迟后备存储的存储器子系统中管理存储器命令的处理 | |
CN112860182A (zh) | 用于写回合并的位屏蔽有效扇区 |
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 |