CN113961482A - 高速缓存存储器的增强型重复写入数据跟踪 - Google Patents
高速缓存存储器的增强型重复写入数据跟踪 Download PDFInfo
- Publication number
- CN113961482A CN113961482A CN202110817807.4A CN202110817807A CN113961482A CN 113961482 A CN113961482 A CN 113961482A CN 202110817807 A CN202110817807 A CN 202110817807A CN 113961482 A CN113961482 A CN 113961482A
- Authority
- CN
- China
- Prior art keywords
- cache
- memory
- data
- write buffer
- cache line
- 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/0806—Multiuser, multiprocessor or multiprocessing cache 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/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/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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
- 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
-
- 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/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
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- 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/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
-
- 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
- G06F2212/284—Plural cache memories being distributed
-
- 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/285—Redundant cache memory
- G06F2212/286—Mirrored cache memory
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
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
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及存储器子系统中的高速缓存存储器的重复数据跟踪。
背景技术
一种存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。大体来说,主机系统可以利用存储器子系统将数据存储在存储器装置处且从存储器装置检索数据。
发明内容
在一个方面中,本公开提供一种方法,其包括:接收执行写入操作以在存储器子系统处写入数据的请求;响应于执行写入操作的请求,将数据存储在存储器子系统的高速缓存存储器的高速缓存部分处;将数据的重复副本存储在高速缓存存储器的写入缓冲器部分处;在写入缓冲器记录中记录条目,所述条目将存储在写入缓冲器部分处的数据的重复副本的位置映射到存储在高速缓存存储器的高速缓存部分处的数据的位置;以及至少部分地基于写入缓冲器记录在存储器子系统处执行存储器操作。
在另一方面中,本公开还提供一种包括指令的非暂时性计算机可读媒体,所述指令响应于处理装置的执行而使得处理装置执行包括以下各项的操作:接收执行写入操作以在存储器子系统处写入数据的请求;响应于执行写入操作的请求,将数据存储在存储器子系统的高速缓存存储器的高速缓存部分的第一高速缓存行处,其中高速缓存部分的第一高速缓存行能够由第一信道存取;将高速缓存存储器的所高速缓存部分的第二高速缓存行分配到高速缓存存储器的写入缓冲器部分,其中写入缓冲器部分的第二高速缓存行能够由第二信道存取;将数据的重复副本存储在高速缓存存储器的写入缓冲器部分的第二高速缓存行处;以及在写入缓冲器记录中记录条目,所述条目将存储在写入缓冲器部分处的数据的重复副本的位置映射到存储在高速缓存存储器的高速缓存部分处的数据的位置。
在再一方面中,本公开还提供一种系统,其包括:高速缓存存储器;以及处理装置,其以操作方式耦合到高速缓存存储器,以执行包括以下各项的操作:接收执行写入操作以在存储器子系统处写入数据的请求;响应于执行写入操作的请求,将数据存储在存储器子系统的高速缓存存储器的高速缓存部分处;将数据的重复副本存储在高速缓存存储器的写入缓冲器部分处;在写入缓冲器记录中记录条目,所述条目将存储在写入缓冲器部分处的数据的重复副本的位置映射到存储在高速缓存存储器的高速缓存部分处的数据的位置;以及至少部分地基于写入缓冲器记录在存储器子系统处执行存储器操作。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2描绘根据本公开的实施例的包含主机系统和存储器子系统的实例计算环境。
图3说明根据本公开的实施例的高速缓存存储器、写入缓冲器记录和标记元数据。
图4是根据本公开的一些实施例的跟踪存储器子系统的高速缓存存储器存储的数据的重复副本的实例方法的流程图。
图5是根据本公开的一些实施例的跟踪存储器子系统的高速缓存存储器存储的数据的重复副本的实例方法的流程图。
图6是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及存储器子系统中的高速缓存存储器的重复数据跟踪。存储器子系统可以是存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。大体来说,主机系统可利用包含一或多个组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可以提供将存储在存储器子系统处的数据,且可以请求将从存储器子系统检索的数据。
存储器子系统可包含高密度非易失性存储器装置,其中在没有电力被供应到存储器装置时需要数据的保持。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。存储器子系统可进一步包含可用作高速缓存存储器的易失性存储器装置。高速缓存存储器通常比存储器子系统中的非易失性存储器装置更快速地被存取。通常,频繁或最近存取的数据可从后端存储器(例如,非易失性存储器)检索且存储在高速缓存存储器处,以利用高速缓存存储器的低延迟。在数据(重新)写入到后端存储器之前,存储在高速缓存存储器处的数据可经历许多状态改变。因此,存储在高速缓存存储器处的数据可能变成被称作“脏”数据的数据,这是因为其与存储在后端存储器处的对应数据不匹配。
一些存储器子系统配置有具有恢复从高速缓存存储器装置发生故障丢失的数据的能力的高可靠性高速缓存存储器。一些常规存储器子系统实施常规技术以实现高可靠性高速缓存存储器。举例来说,常规存储器系统可具有包含大量离散高速缓存存储器装置的高速缓存存储器。大大小的数据段可划分为较小的数据段(例如,64字节)且在大量离散高速缓存存储器装置上写入。写入到特定高速缓存存储器装置的较小数据段中的每一个可包含错误校正码(ECC)。如果离散高速缓存存储器装置发生故障,那么存储在故障高速缓存存储器装置处的数据段可使用存储在剩余高速缓存存储器装置处的ECC重构。然而,具有特定架构的一些存储器子系统,例如具有较小数目个高速缓存存储器装置的存储器子系统,可能无法支持常规的高可靠性高速缓存存储器技术。举例来说,具有较小数目个高速缓存存储器装置的一些存储器子系统可能不会具有足够的高速缓存存储器装置以在高速缓存存储器装置上有效地分配较小的数据段,使得故障高速缓存存储器装置上的数据可使用存储在剩余高速缓存存储器装置处的ECC重构。
本公开的各方面通过将高速缓存存储器分割为高速缓存部分和写入缓冲器部分来解决以上和其它缺陷。响应于接收执行写入操作以在存储器子系统处写入数据的请求,写入数据存储在高速缓存存储器的高速缓存部分处。数据的重复副本可存储在高速缓存存储器的写入缓冲器部分处。写入缓冲器记录的条目可用于将数据的重复副本的位置映射到对应写入数据的位置。在一些实施例中,写入数据存储在可使用信道存取的高速缓存行处,而数据的重复副本存储在可使用不同信道存取的高速缓存行处。通过将写入数据和数据的对应重复副本存储在可由不同信道存取的高速缓存行上,存储器子系统可在信道发生故障的情形下恢复存储在高速缓存存储器处的数据。
信道可以指用于传输数据的物理耦合。在一些实施例中,信道可用于对高速缓存存储器执行并行操作。在一些实施例中,两个或更多个信道可耦合到例如不同双列直插式存储器模块(DIMM)、不同离散存储器装置或离散存储器装置的不同管芯(例如,封装在其自身的装置封装中)。
在一些实施例中,写入缓冲器记录可用于在故障(例如,高速缓存行的存储器单元、离散高速缓存存储器装置的整个高速缓存行、离散存储器装置的管芯、离散存储器装置、双列直插式存储器模块等的故障)之后恢复存储在高速缓存存储器的高速缓存部分处的另外不可恢复的数据。响应于接收执行读取操作以读取数据的请求,所述数据存储在高速缓存存储器的高速缓存部分处,存储器子系统可试图从高速缓存存储器的高速缓存部分的高速缓存行读取数据。存储器子系统可在高速缓存部分的高速缓存行处检测不可恢复的错误。存储器子系统可存取写入缓冲器记录以确定存储在高速缓存存储器的写入缓冲器部分处的数据的对应重复副本的位置。可使用与用于存取存储在高速缓存部分的高速缓存行处的写入数据的信道不同的信道存取数据的重复副本。响应于读取请求,存储器子系统可将数据的重复副本发送到主机系统。在一些实施例中,在高速缓存部分处检测到不可恢复的错误之后,可将存储在写入缓冲器处的数据的重复副本写入到后端存储器,使得后端存储器具有数据的最新副本,且确保数据已重复。在一些实施例中,写入缓冲器记录也可存储在与数据的重复副本相同的信道处。通过将写入数据和对应写入缓冲器记录存储在不同信道上,存储器子系统也可在特定信道发生故障的情形下恢复写入缓冲器记录。
通过将写入数据存储在高速缓存存储器的高速缓存部分的高速缓存行(使用信道存取)处,且将数据的重复副本存储在高速缓存存储器的缓冲器部分的高速缓存行(使用不同信道存取)处,且使用写入缓冲器记录将写入数据的位置映射到数据的重复副本的位置,存储器子系统可高效地实施高可靠性高速缓存存储器。这降低了在存储器故障的情况下数据将丢失的可能性,且允许高可靠性而不需要大量精密的存储器装置。
图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之间传输数据。在存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。作为实例,图1说明存储器子系统110。大体来说,主机系统120可经由同一通信连接、多个单独的通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2DNAND)和三维NAND(3DNAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可以包含存储器单元的SLC部分和MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为可指代用于存储数据的存储器装置的逻辑单元的页。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。
尽管描述了例如3D交叉点非易失性存储器单元阵列及NAND型快闪存储器(例如,2D NAND、3D NAND)等非易失性存储器组件,但存储器装置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之间的通信)的各种过程、操作、逻辑流程以及例程。
在一些实施例中,本地存储器119可包含存储器寄存器,其存储存储器指针、所提取数据等。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可替代地依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
通常,存储器子系统控制器115可以从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路可将从主机系统接收的命令转换成命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址且解码所述地址以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器135结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
在一些实施例中,存储器子系统110包含执行本公开的各方面的高速缓存重复管理器113。在一些实施例中,高速缓存重复管理器113接收执行写入操作以在存储器子系统处写入数据的请求。响应于执行写入操作的请求,高速缓存重复管理器113将数据存储在存储器子系统的高速缓存存储器的高速缓存部分处。高速缓存重复管理器113将数据的重复副本存储在高速缓存存储器的写入缓冲器部分处。高速缓存重复管理器113在写入缓冲器记录中记录条目,所述条目将存储在写入缓冲器部分处的数据的重复副本的位置映射到存储在高速缓存存储器的高速缓存部分处的数据的位置。高速缓存重复管理器113至少部分地基于写入缓冲器记录而在存储器子系统处执行存储器操作。
在一些实施例中,高速缓存重复管理器113接收执行写入操作以在存储器子系统处写入数据的请求。响应于执行写入操作的请求,高速缓存重复管理器113将数据存储在高速缓存存储器的高速缓存部分的第一高速缓存行处。高速缓存部分的第一高速缓存行可由第一信道存取。高速缓存重复管理器113将高速缓存存储器的高速缓存部分的第二高速缓存行分配到高速缓存存储器的写入缓冲器部分。写入缓冲器部分的第二高速缓存行可由第二信道存取。高速缓存重复管理器113将数据的重复副本存储在高速缓存存储器的写入缓冲器部分的第二高速缓存行处。高速缓存重复管理器113在写入缓冲器记录中记录条目,所述条目将存储在写入缓冲器部分处的数据的重复副本的位置映射到存储在高速缓存存储器的高速缓存部分处的数据的位置。
图2描绘根据本公开的实施例的包含主机系统120和存储器子系统110的实例计算环境。除非另外描述,否则关于图1的元件和描述可应用于图2。系统200展示主机系统120和存储器子系统110。
在一些实施例中,主机系统120包含一或多个处理装置,例如中央处理单元(CPU)212或图形处理单元(GPU)。主机系统120的存储器控制器220可将包含执行读取操作或写入操作的请求的存储器操作发送到存储器子系统110。在一些实施例中,来自CPU212的存储器操作可请求特定大小(例如,64字节)的数据。
存储器子系统110的存储器子系统控制器115可包含高速缓存控制器232和本地存储器119。本地存储器119可包含高速缓存存储器238。高速缓存存储器238可与高速缓存控制器232或离散装置集成。在一些实施例中,高速缓存存储器238包含SRAM。在一些实施例中,高速缓存存储器238相对于存储器子系统控制器115且特定来说相对于高速缓存控制器115可以是比高速缓存存储器234更高级别的高速缓存存储器。举例来说,高速缓存存储器238可以是1级高速缓存存储器,而高速缓存存储器234可以是2级高速缓存存储器。举例来说,与较低级别的高速缓存存储器相比,较高级别的高速缓存存储器允许对频繁存取或最近存取的数据的更快速数据存取。
存储器子系统控制器115的高速缓存存储器238可用于存储标记元数据记录244。例如标记元数据记录244的记录可以指用于存储一或多条数据作为条目的特定数据结构。记录可包含一或多个条目。在一些实施例中,标记元数据记录244的每一条目可对应于特定标记元数据(本文中也称为“标记”)。标记可与特定高速缓存行相关联(下文描述),且可识别关于相关联高速缓存行的信息。举例来说,每一标记可包含特定数个位(例如,79个位)和关于在高速缓存行的扇区(以下描述)上是否包含干净或脏数据的所存储信息。脏数据可以指储存在高速缓存存储器234中但与存储在后端存储器236处的对应数据不匹配的数据。干净数据可以指储存在高速缓存存储器234中且与存储在后端存储器236处的对应数据匹配的数据。在其它实施例中,标记元数据记录244或存储在其中的数据(例如,数据自身或数据指示的内容)中的一或多个可存储在存储器子系统110或主机系统120的不同组件处。在一些实施例中,存储在标记元数据记录244处的数据可指示存储器子系统110的其它方面,且特定来说指示写入到高速缓存存储器234的高速缓存行的数据的不同方面(如下文进一步描述)。
在一些实施例中,高速缓存控制器232,且特定来说高速缓存重复管理器113可执行本文中所描述的操作。高速缓存控制器232可执行逐出操作以从高速缓存存储器234的高速缓存部分240的一或多个高速缓存行逐出数据。高速缓存控制器232可执行清除操作以清除高速缓存存储器234的写入缓冲器部分242的一或多个高速缓存行。高速缓存控制器232可管理高速缓存存储器234的高速缓存部分240处的写入数据和高速缓存存储器234的写入缓冲器部分242处的写入数据的重复副本。高速缓存控制器232可管理标记元数据记录244和写入缓冲器记录246。响应于检测存储在高速缓存存储器234处的数据中的不可恢复的错误,高速缓存控制器232也可管理高速缓存存储器234的数据。高速缓存控制器232可包含高速缓存策略,以确定来自后端存储器236A-N的数据将高速缓存于高速缓存存储器234处,从而由主机系统120快速存取数据。高速缓存控制器232可将高速缓存存储器234的脏高速缓存行写入回后端存储器236A-N,以确保维持在后端存储器236A-N处的数据是有效数据。
存储器子系统控制器115,且特定来说高速缓存控制器232可使用由信道0(CH0)和信道1(CH1)所说明的一或多个信道耦合到高速缓存存储器234。信道可以指用于传输数据的物理耦合。在一些实施例中,信道可用于对高速缓存存储器234执行并行操作。在一些实施例中,例如,两个信道可耦合到不同DIMM、不同离散存储器装置(例如,存储器装置140)或离散存储器装置的不同管芯(例如,封装于其自身的装置封装中)。
存储器子系统110可包含高速缓存存储器234。在一些实施例中,高速缓存存储器234可包含易失性存储器,例如图1的存储器装置140。在一些实施例中,高速缓存存储器234可包含DRAM。在一些实施例中,高速缓存存储器234可包含一或多个离散存储器装置。
在一些实施例中,高速缓存存储器234可分割成不同部分,例如高速缓存部分240和写入缓冲器部分240。高速缓存部分240可存储用于读取操作或来自写入操作的数据。高速缓存部分240中的数据可在(重新)写入到后端存储器236A-N(通常称为“后端存储器236”)之前保持相对较长时间周期。写入缓冲器部分242可用于存储存储在高速缓存部分240处的数据的重复复本,且特定来说写入数据的重复复本(例如,由于写入操作或从后端存储器236检索且在高速缓存存储器234处重新写入的数据而写入到高速缓存部分240的数据)。
在一些实施例中,写入缓冲器部分242可动态地分割,且从高速缓存部分240的高速缓存行的池分割。举例来说,当写入数据的重复副本将存储在写入缓冲器部分处时,高速缓存控制器232可确定写入缓冲器部分242是否具有足够的存储空间来存储数据的重复副本。如果高速缓存控制器232确定在高速缓存存储器234的写入缓冲器部分242处没有足够的存储空间,那么高速缓存控制器232可将高速缓存存储器的单元(例如,高速缓存行)从高速缓存存储器234的高速缓存部分240分配到写入缓冲器部分242。在一些实施例中,高速缓存控制器232可确定不再使用(例如,清除)写入缓冲器部分242的高速缓存存储器的一或多个单元,且响应于确定可将高速缓存存储器的未使用单元分配回高速缓存存储器234的高速缓存部分240。
在一些实施例中,写入到高速缓存部分240的数据可使用第一信道(例如,CH0)写入。写入到写入缓冲器部分242的数据的重复副本可写入在不同于第一信道的第二信道(CH1)上。如果信道与不同离散装置或甚至同一离散装置的不同管芯相关联,那么可使用可经由第二信道访问的数据的重复副本来恢复在第一信道上受损(例如,不可校正)的数据。
在一些实施例中,高速缓存存储器234可划分为不同单元。在一些情况下,所述单元可对应于高速缓存存储器234的操作规范或主机系统120的处理装置的操作规范。高速缓存行可以指高速缓存存储器的单元,且含有多个字节和/或数据字。在示范性实施例中,高速缓存行可包含4,096字节的数据,或可对应于高速缓存存储器的页大小、DRAM行或DRAM中由虚拟存储器管理器分配的字节逻辑单元。在一些实施例中,高速缓存行可细分成更小的存储器单元,例如扇区。举例来说,扇区可包含64字节。高速缓存行可包含一组扇区。
在一些实施例中,写入缓冲器记录246可存储在高速缓存存储器234处,且特定来说,存储在高速缓存存储器234的写入缓冲器部分242处。在一些实施例中,写入缓冲器记录246可包含一或多个条目。写入缓冲器记录246的条目可将数据的重复副本的位置(例如,存储数据的重复副本的写入缓冲器部分242的扇区和/或高速缓存行)映射到写入数据的位置(例如,存储写入数据的高速缓存部分240的扇区和/或高速缓存行)。举例来说,条目可存储写入缓冲器部分242的扇区的识别符和存储数据的重复副本的写入缓冲器部分242的高速缓存行的识别符,以及高速缓存行的识别符(例如,高速缓存行地址)和存储对应写入数据的高速缓存部分240的扇区的识别符(例如,扇区地址)。
在一些实施例中,一或多个写入缓冲器记录246可存储在高速缓存存储器234处。举例来说,一或多个写入缓冲器记录可与高速缓存存储器234的每一信道相关联。在一些实施例中,单个写入缓冲器记录246可跟踪存储在高速缓存存储器234的高速缓存部分240处的数据的一或多个高速缓存行。在一些实施例中,写入缓冲器记录246可存储在高速缓存存储器234的写入缓冲器部分242处的高速缓存行的扇区处。在其它实施例中,写入缓冲器记录246或存储在其中的数据(例如,数据自身或数据指示的内容)中的一或多个可存储在存储器子系统110或主机系统120的不同组件处。举例来说,存储在写入缓冲器记录246处的数据也可(替代地或附加地)存储在标记元数据记录244处,且反之亦然。
在一些实施例中,一或多个写入缓冲器记录可用于写入到特定信道的写入数据。举例来说,写入缓冲器记录A可用于映射(例如,映射数据或位置数据)写入数据(写入到信道0)。写入缓冲器记录B可用于映射写入到信道1的写入数据。数据的重复副本可存储在对应写入数据的不同信道处,使得如果一个信道发生故障,那么可在另一信道处检索数据的重复副本。在一些实施例中,写入缓冲器记录可存储在高速缓存存储器234的写入缓冲器部分242处。在一些实施例中,写入缓冲器记录可存储在与用于存储由写入缓冲器记录映射的写入数据的信道不同的信道处。举例来说,写入数据存储在信道1处。数据的重复副本存储在信道0处。将存储在信道1处的写入数据映射到存储在信道0处的数据的重复副本的写入缓冲器记录也可存储在信道0处。如果信道1发生故障,那么写入缓冲器记录仍可在信道1处存取,使得可使用也存储在信道0处的写入缓冲器记录将信道1上丢失的所有数据映射到存储在信道0处的数据的相应重复副本。
在一些实施例中,存储器子系统110可包含后端存储器236A到236N。在一些实施例中,后端存储器236A到236可包含如相对于图1所描述的存储器装置130。在一些实施例中,后端存储器236可包含非易失性存储器,例如但不限于3D交叉点或NAND存储器。在一些实施例中,后端存储器236A-N可以是具有比高速缓存存储器234更大的容量和更高的存取延迟的存储器的类型。
图3说明根据本公开的实施例的高速缓存存储器、写入缓冲器记录和标记元数据。下文可描述图1和图2的元件以帮助说明式300的各方面。可理解,出于说明的目的而非限制,提供数个元件(例如,高速缓存行、扇区、信道、标签等)和元件的位置(例如,写入缓冲器部分242或高速缓存部分240的高速缓存行的位置)。本公开的各方面可应用于存储器子系统,且特定来说,应用于具有任何数目个元件(例如,任何数目个高速缓存行、信道、扇区等)的存储器子系统的高速缓存存储器。可理解,描述为由高速缓存控制器232执行的操作中的一或多个可由高速缓存控制器232的高速缓存重复管理器113执行。
图式300说明根据一些实施例的高速缓存存储器234。说明具有说明为高速缓存行0到7的高速缓存行312的高速缓存存储器234。高速缓存行312中的一或多个可划分为由扇区310表示的扇区。图式300说明用于高速缓存行312中的每一个的扇区0到15。高速缓存行312中的每一个与信道314中的特定一个相关联。图式300说明信道0和信道1。高速缓存行312中的一或多个可与标记元数据316相关联。图式300说明与高速缓存行312中的每一个相关联的标记元数据。高速缓存存储器234说明为分割成写入缓冲器部分242和高速缓存部分240。写入缓冲器部分242包含高速缓存行6和7。高速缓存部分240包含高速缓存行0到5。
在一些实施例中,主机系统可将请求发送到存储器子系统110以执行写入操作,从而在存储器子系统110处写入数据。在一些实施例中,高速缓存控制器232可将数据(WD1)存储在存储器子系统110的高速缓存存储器234的高速缓存部分240的高速缓存行(例如,高速缓存行1)的扇区(例如,扇区12)处。写入数据表示为高速缓存行1的扇区12中的WD1。在一些实施例中,高速缓存行1与说明为信道1的特定信道相关联。
在一些实施例中,高速缓存控制器232可确定存储在高速缓存行1的扇区12处的数据的重复副本将存储在写入缓冲器部分242处,且特定来说,存储在写入缓冲器部分242的高速缓存行,所述高速缓存行与和存储写入数据(WD1)的高速缓存行(例如,信道1)不同的信道(例如,信道0)相关联。如果写入缓冲器部分242的适当信道(例如,信道0)处的高速缓存行尚未被分配或已满,那么高速缓存控制器232将适当信道处的高速缓存行分配到高速缓存存储器234的写入缓冲器部分242。举例来说,高速缓存控制器232将与信道0相关联的高速缓存行6分配到高速缓存存储器234的写入缓冲器部分242。响应于确定高速缓存存储器234的写入缓冲器部分242处的适当高速缓存行已经被分配,高速缓存控制器232将数据的重复副本(DWD1)存储在高速缓存存储器234的写入缓冲器部分242的高速缓存行(高速缓存行6)的扇区(扇区0)处。如所说明,数据的重复副本(由DWD1表示)存储在高速缓存存储器234的写入缓冲器部分242的高速缓存行6的扇区0处。
在一些实施例中,响应于将数据的重复副本(DWD1)存储在高速缓存存储器234的写入缓冲器部分242处,高速缓存控制器232在写入缓冲器记录322中记录条目,所述条目将存储数据的重复副本(DWD1)的扇区(例如,扇区1)和高速缓存行(高速缓存行6)映射到高速缓存行1和高速缓存行1的存储写入数据(WD1)的扇区12。
在一些实施例中,写入缓冲器记录可用于存储一或多个高速缓存行值得的数据。举例来说,写入缓冲器记录320可用于存储与信道0相关联的高速缓存存储器234的高速缓存部分240的所有高速缓存行(例如,高速缓存行0、2和4)的信息。写入缓冲器记录322可用于存储与信道1相关联的高速缓存存储器234的高速缓存部分240的所有高速缓存行(例如,高速缓存行1、3和5)的数据。在另一实例中,多个写入缓冲器记录可用于存储与特定信道相关联的高速缓存部分240的所有高速缓存行的信息。在一些实施例中,写入缓冲器记录可与存储器子系统的特定信道相关联。
在一些实施例中,响应于将数据WD1写入到高速缓存行1的扇区12,高速缓存控制器232可更新与高速缓存行1相关联的标记元数据,以指示存储在高速缓存行1的扇区12处的数据包含脏数据。响应于将写入数据DWD1的重复副本写入到高速缓存行6的扇区0,高速缓存控制器232可将与写入缓冲器部分242的高速缓存行(例如,高速缓存行6)相关联的标记元数据改变用途。并非记录高速缓存行的数据是否是干净的或脏的,与写入缓冲器部分242的高速缓存行相关联的标记元数据可用于指示存储在高速缓存行处的数据的重复副本是有效的还是无效的。举例来说,标记元数据相关联的高速缓存行6可指示存储在高速缓存行6的扇区0处的数据的重复副本(DWD1)是有效数据,这是因为其刚刚写入且是数据的最近版本。
图式300还说明存储在高速缓存存储器234的高速缓存部分240处的额外写入数据。举例来说,主机系统可请求存储器子系统执行写入操作以将数据(WD2)存储在存储器子系统110处。高速缓存控制器232可将数据存储在信道0上的高速缓存行2扇区3处。高速缓存控制器232可确定高速缓存行是否已分配到不同信道(例如,信道1)上的高速缓存存储器234的写入缓冲器部分242。如果高速缓存控制器232确定信道1上的高速缓存行尚未分配到写入缓冲器部分242,那么高速缓存控制器232将例如高速缓存行7的高速缓存行分配到写入缓冲器部分242。高速缓存控制器232将数据的重复副本(DWD2)存储在信道1上的高速缓存行7的扇区0处。与高速缓存存储器234的信道1相关联的写入缓冲器记录320通过映射数据最新,更新与高速缓存行2相关联的标记元数据以指示存储在高速缓存行2的扇区3处的写入数据是脏数据,且将与高速缓存行7相关联的标记元数据改变用途以指示数据的重复副本(存储在高速缓存行7的扇区0处)是有效数据。
图式300还说明存储在高速缓存行3的区3处的又一额外写入数据(WD3)。高速缓存控制器232可执行如上文相对于存储数据的重复副本(DWD3)以及更新写入缓冲器记录322、与高速缓存行3相关联的标记元数据和与高速缓存行6相关联的标记元数据所描述的类似操作。出于简洁起见,在本文中将不重复类似操作。可注意到,由于写入数据(WD3)写入到信道1,且写入缓冲器部分242具有与信道0相关联的自由空间,因此所述高速缓存控制器232无需将新高速缓存行分配到高速缓存存储器234的写入缓冲器部分242,且可使用高速缓存行6来存储数据的新重复副本。
与信道0相关联的写入缓冲器记录322和与信道1相关联的写入缓冲器记录320可用于帮助执行一或多个存储器操作,所述存储器操作包含但不限于数据恢复操作、逐出操作或清除操作。在一些实施例中,写入缓冲器记录322或写入缓冲器记录320可单独或与标记元数据记录结合使用以执行存储器操作。
在一些实施例中,存储器子系统110(例如,高速缓存控制器232)接收执行读取操作以读取数据的请求,所述数据存储在高速缓存存储器234的高速缓存部分240处(例如,在高速缓存部分240的高速缓存行的扇区处)。举例来说,主机系统120请求执行读取操作以读取存储在高速缓存行2处的数据WD2。高速缓存部分240的高速缓存行2可与特定信道(例如,信道0)相关联。高速缓存控制器232可检测来自高速缓存部分240的高速缓存行2的数据是不可恢复的(例如,检测高速缓存部分240的高速缓存行2处的不可恢复的错误)。举例来说,高速缓存行2的特定扇区3、整个高速缓存行2或整个信道0可能发生故障,使得请求的数据不可恢复。响应于检测不可恢复的错误,高速缓存控制器232识别存储在高速缓存存储器234的写入缓冲器部分242的高速缓存行7的扇区0处的数据的重复副本(DWD2)。数据的重复副本(DWD2)存储在与原始写入数据不同的信道处。可使用也存储在信道1处的写入缓冲器记录320的对应条目识别数据的重复副本(DWD2)。高速缓存控制器232可在写入缓冲器记录320搜索由主机系统120请求的写入数据(WD2)的扇区识别符和高速缓存行识别符。写入缓冲器记录320将写入数据(WD2)的扇区识别符和高速缓存行识别符映射到数据的对应重复副本的高速缓存行识别符和扇区识别符(例如,高速缓存行7、扇区0)。高速缓存控制器232可使用数据的重复副本以响应于执行读取操作的请求。在一些实施例中,高速缓存控制器232可将数据的重复副本写入到后端存储器236。在一些实施例中,如果整个信道(例如,信道0)发生故障,那么高速缓存控制器232可读取与信道1相关联的写入缓冲器记录320的所有条目,定位数据的重复副本(存储在信道0处的写入数据的重复),且将数据的重复副本写入到后端存储器236。
在一些实施例中,高速缓存控制器232可执行逐出操作以从高速缓存存储器234的高速缓存部分240的一或多个高速缓存行去除数据。响应于执行逐出操作,高速缓存控制器232在写入缓冲器记录中擦除映射到所逐出的高速缓存部分240的高速缓存行的对应条目。举例来说,可逐出来自高速缓存部分240的高速缓存行1的数据。高速缓存控制器232可识别写入缓冲器记录322,且识别指向WD1的条目,并从写入缓冲器记录322擦除所述条目。
在一些实施例中,高速缓存控制器232可执行从高速缓存存储器234的写入缓冲器部分242的一或多个高速缓存行擦除数据的清除操作。举例来说,为了执行清除操作,高速缓存控制器232擦除高速缓存行7,且从高速缓存行7的扇区0去除数据的重复副本(DWD2)。当写入缓冲器部分242达到数据容量阈值或写入缓冲器部分242的高速缓存行的数据满足数据年龄阈值时,可执行清除操作。高速缓存控制器232可识别对应写入缓冲器记录,例如写入缓冲器记录320,且使用写入缓冲器记录320的映射数据识别储存在高速缓存存储器234的高速缓存部分240中的对应写入数据(例如,WD2)的位置。高速缓存控制器232可将对应写入数据存储在后端存储器236处,使得写入数据的重复副本存储在存储器子系统110处。高速缓存控制器232可擦除写入缓冲器记录320的对应条目。
在一些实施例中,与写入缓冲器部分242的高速缓存行相关联的元数据标记可用于存储额外数据。举例来说,元数据标记的位可用作映射数据,以将数据的重复副本的位置(至少部分)映射到存储在高速缓存存储器234的高速缓存部分240处的写入数据的位置。可编码元数据标记以识别数据的重复副本的扇区、对应写入数据的高速缓存行或对应写入数据的扇区中的一或多个。由于元数据标记与写入缓冲器部分242的特定高速缓存行相关联,因此数据的重复副本的高速缓存行无需编码到元数据标记(但可通过关联来推断)。
在说明性实例中,元数据标记可具有79个位。元数据标记与高速缓存行6相关联。与信道0相关联的高速缓存行可由数字0到3识别,且与信道1相关联的高速缓存行可由数字0到3识别。举例来说,信道0的高速缓存行0、2、4和6可分别与数目0到3相关联,且信道1的高速缓存行1、3、5和7可分别与数目字0到3相关联。因此,与特定信道相关联的任何高速缓存行可由2个位表示。可使用32个位的元数据标记来表示映射数据,所述映射数据识别存储在写入缓冲器部分242的高速缓存行6处的数据的重复副本的所有16个扇区的高速缓存行,在所述高速缓存行处存储写入数据。举例来说,信道1的高速缓存行6的标记元数据对应于存储在信道0的高速缓存行上的写入数据。2个位(例如,最高有效位)的标记元数据可基于编码位置对应于数据的重复副本DWD1。2个位可识别高速缓存行1(其已重新编号为高速缓存行0以减少编码位的数目)。标记元数据的下两个位可基于编码位置对应于数据的重复副本DWD3。所述位可识别高速缓存行3(其已重新编号为高速缓存行1)等。在一些实施例中,高速缓存控制器232可将标记元数据存储在比写入缓冲器记录更高级别的高速缓存存储器(例如,高速缓存存储器238)处,以允许快速存取这类信息。举例来说,高速缓存控制器232可快速读取标记元数据记录244,且确定高速缓存存储器234的高速缓存部分240的哪些高速缓存行具有存储在写入缓冲器部分242处的数据的重复副本。高速缓存控制器232可接着使用写入缓冲器记录322,以确定存储写入数据的高速缓存部分240的高速缓存行的特定扇区。在其它实施例中,元数据标记可用于表示映射数据,所述映射数据识别存储在写入缓冲器部分242的高速缓存行6处的数据的重复副本的所有16个扇区的高速缓存行和扇区,在所述高速缓存行和扇区存储写入数据。高速缓存控制器232可使用标记元数据以执行本文中所描述的操作。
在一些实施例中,存储在元数据标记处的映射数据的类型可取决于信道的数目、扇区的数目、高速缓存存储器234中的高速缓存行的数目和标记元数据的可用位。举例来说,对于具有2个信道、16个高速缓存行和每高速缓存行16个扇区的高速缓存存储器,3个位用于编码每一高速缓存行,且4个位用于编码每一扇区。112个位的标记元数据(如果可用)将用于映射扇区(64个位)和高速缓存部分240的高速缓存行(48个位)。对于具有4个信道、16个高速缓存行和每高速缓存行16个扇区的高速缓存存储器,2个位用于编码每一高速缓存行,且4个位用于编码每一扇区。96个位的标记元数据将用于映射扇区(64个位)和高速缓存行(32个位)。对于具有8个信道、16个高速缓存行和每高速缓存行16个扇区的高速缓存存储器,1个位用于编码每一高速缓存行,且4个位用于编码每一扇区。80个位的标记元数据将用于映射扇区(64个位)和高速缓存行(16个位)。
以下可描述图1到3的元件以帮助分别说明图4的方法400和图5和的方法500。方法400和500可执行为一或多个操作。可注意到,方法400或500可以按任何次序执行,且可包含相同、不同、更多或更少操作。
方法400或500可由可包含硬件(电路系统、专用逻辑等)、软件(例如,在处理装置上运行的指令)或其组合的处理逻辑执行。在一些实施例中,方法400或方法500的一些或所有操作可由图1的系统100或图2的系统200的一或多个组件执行。在其它实施例中,方法400或500的一或多个操作可由如相对于图1到3所描述的高速缓存重复管理器113执行。
图4是根据本公开的一些实施例的跟踪存储器子系统的高速缓存存储器存储的数据的重复副本的实例方法的流程图。
在操作405处,处理逻辑接收执行写入操作以在存储器子系统处写入数据的请求。
在操作410处,处理逻辑将数据存储在存储器子系统的高速缓存存储器的高速缓存部分处。在一些实施例中,响应于执行写入操作的请求,处理逻辑将数据存储在存储器子系统的高速缓存存储器的高速缓存部分的第一高速缓存行的第一扇区处。
在操作415处,处理逻辑将数据的重复副本存储在高速缓存存储器的写入缓冲器部分处。在一些实施例中,处理逻辑将数据的重复副本存储在高速缓存存储器的写入缓冲器部分的第二高速缓存行的第二扇区处。
在一些实施例中,数据存储在高速缓存部分的第一高速缓存行处,所述第一高速缓存行可使用与高速缓存存储器的第一存储器装置相关联的第一信道存取。数据的重复副本存储在写入缓冲器部分的第二高速缓存行处,所述第二高速缓存行可使用与高速缓存存储器的第二存储器装置相关联的第二信道存取。
在操作420处,处理逻辑在写入缓冲器记录中记录条目,所述条目将存储在写入缓冲器部分处的数据的重复副本的位置映射到存储在高速缓存存储器部分处的数据的位置。
在操作425处,处理逻辑将写入缓冲器记录存储在高速缓存存储器的写入缓冲器部分处。在一些实施例中,处理逻辑将写入缓冲器记录存储在高速缓存存储器的写入缓冲器部分的第三高速缓存行的第三扇区处。可使用与第二存储器装置相关联的第二信道来存取第三高速缓存行。
在一些实施例中,处理逻辑在与高速缓存部分的第一高速缓存行相关联的第一标记元数据处记录存储在高速缓存存储器的高速缓存部分的第一高速缓存行的第一扇区处的数据是脏数据的指示。处理逻辑在与写入缓冲器部分的第二高速缓存行相关联的第二标记元数据处记录存储在高速缓存存储器的写入缓冲器部分的第二高速缓存行的第二扇区处的数据的重复副本是有效数据的指示。
在一些实施例中,高速缓存存储器是第一高速缓存存储器。处理逻辑在与写入缓冲器部分的第二高速缓存行相关联的第三标记元数据处记录第一高速缓存存储已重复且存储在写入缓冲器部分的第二高速缓存行处的数据的指示。处理逻辑将第二标记元数据存储在第二高速缓存存储器处。第二高速缓存存储器的级别是比第一高速缓存存储器的级别高的级别。
在操作430处,处理逻辑至少部分地基于写入缓冲器记录而在存储器子系统处执行存储器操作。
在一些实施例中,为了执行存储器操作,处理逻辑接收执行读取操作的请求以读取存储在高速缓存存储器的高速缓存部分的第一高速缓存行的第一扇区处的数据。处理逻辑在第一高速缓存行处检测不可恢复的错误。基于写入缓冲器记录的条目,处理逻辑识别存储在高速缓存存储器的写入缓冲器部分的第二高速缓存行的第二扇区处的数据的重复副本。响应于执行读取操作的请求,处理逻辑发送存储在第二高速缓存行的第二扇区处的数据的重复副本。
在一些实施例中,为了执行存储器操作,处理逻辑执行逐出操作以从高速缓存存储器的高速缓存部分的第一高速缓存行去除数据。响应于执行逐出操作,处理逻辑擦除写入缓冲器记录中的条目。
在一些实施例中,为了执行存储器操作,处理逻辑执行清除操作,以从高速缓存存储器的写入缓冲器部分的第二高速缓存行去除数据的重复副本。处理逻辑在写入缓冲器记录中识别条目,所述条目将存储在写入缓冲器部分处的数据的重复副本的位置映射到存储在高速缓存部分处的数据的位置。基于写入缓冲器记录的条目,处理逻辑定位存储在高速缓存存储器的高速缓存部分的第一高速缓存行的第一扇区处的数据。处理逻辑将数据存储在非易失性存储器装置处的第一高速缓存行的第一扇区处。
图5是根据本公开的一些实施例的跟踪存储器子系统的高速缓存存储器存储的数据的重复副本的实例方法的流程图。可注意到,图4的方法400的操作(和实施例)中的任一个可应用于方法500,且出于简洁起见将不重复。
在操作505处,处理逻辑接收执行写入操作以在存储器子系统处写入数据的请求。
在操作510处,处理逻辑将数据存储在存储器子系统的高速缓存存储器的高速缓存部分的第一高速缓存行处。在一些实施例中,响应于执行写入操作的请求,处理逻辑将数据存储在存储器子系统的高速缓存存储器的高速缓存部分的第一高速缓存行的第一扇区处。高速缓存部分的第一高速缓存行可由第一信道存取。
在操作515处,处理逻辑将高速缓存部分的第二高速缓存行分配到高速缓存存储器的写入缓冲器部分。在一些实施例中,写入缓冲器部分的第二高速缓存行可由第二信道存取。
在操作520处,处理逻辑将数据的重复副本存储在高速缓存存储器的写入缓冲器部分的第二高速缓存行处。在一些实施例中,数据的重复副本存储在第二高速缓存行的第二扇区处。
在操作525处,处理逻辑在写入缓冲器记录中记录条目,所述条目将存储在写入缓冲器部分处的数据的重复副本的位置映射到存储在高速缓存存储器部分处的数据的位置。
在操作530处,处理逻辑将写入缓冲器记录存储在高速缓存存储器的写入缓冲器部分处。
在操作535处,处理逻辑至少部分地基于写入缓冲器记录而在存储器子系统处执行存储器操作。
图6说明计算机系统600的实例机器,其中可执行指令集以用于使机器执行本文中所论述的方法中的任何一或多个。在一些实施例中,计算机系统600可与包含、耦合到或利用存储器子系统(例如,图1或图2的存储器子系统110)的主机系统(例如,图1或图2的主机系统120)对应或可用于执行控制器的操作(例如,执行操作系统以执行与图1或图2的高速缓存重复管理器113对应的操作)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多个)指令集以执行本文中所论述的方法中的任何一或多种。
实例计算机系统600包含经由总线630彼此通信的处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等)和数据存储系统618。
处理装置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或图2的存储器子系统110。
在一个实施例中,指令626包含用于实施对应于图1或图2的高速缓存重复管理器113的功能性的指令。尽管在实例实施例中将机器可读存储媒体624展示为单个媒体,但应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在这里并且通常被认为是引起所需结果的操作的自洽序列。操作是要求对物理量进行物理操控的操作。通常(但未必),这些量采用能够存储、组合、比较和以其它方式操控的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标签。本公开可涉及将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可以存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘,其包含软盘、光盘、CD-ROM和磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁磁性卡或光学卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文中呈现的算法和显示器本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可以提供为计算机程序产品或软件,其可包含在其上存储有指令的机器可读媒体,所述指令可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
词语“实例”或“示范性”在本文中用以意味着充当实例、例子或说明。本文中描述为“实例”或“示范性”的任何方面或设计未必应解释为优于或胜于其它方面或设计。实际上,词语“实例”或“示范性”的使用旨在以具体方式呈现概念。如本申请案中所使用,术语“或”旨在意味着包含性的“或”而非排它性的“或”。也就是说,除非另外规定或从上下文清楚可见,否则“X包含A或B”旨在意味着任何自然的包含性排列。也就是说,如果X包含A;X包含B;或X包含A和B,那么在任何前述例子下满足“X包含A或B”。另外,如在本申请及所附权利要求书中使用的冠词“一(a/an)”大体上可以解释为意味着“一或多个”,除非另外规定或从上下文清楚可见表示单数形式。此外,在整篇中使用术语“一实施例”或“一个实施例”或“实施方案”或“一个实施方案”等可能不意味着相同实施例或实施方案。本文中所描述的一或多个实施例或实施方案可在特定实施例或实施方案中组合。如本文所使用的术语“第一”、“第二”、“第三”、“第四”等意味着作为标记来区分开不同元件,且可能未必具有根据其数字名称的序数含义。
在前述说明书中,已参考其具体实例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应在说明性意义上而非限制性意义上看待。
Claims (20)
1.一种方法,其包括:
接收执行写入操作以在存储器子系统处写入数据的请求;
响应于执行所述写入操作的所述请求,将所述数据存储在所述存储器子系统的高速缓存存储器的高速缓存部分处;
将所述数据的重复副本存储在高速缓存存储器的写入缓冲器部分处;
在写入缓冲器记录中记录条目,所述条目将存储在所述写入缓冲器部分处的所述数据的所述重复副本的位置映射到存储在所述高速缓存存储器的所述高速缓存部分处的所述数据的位置;以及
至少部分地基于所述写入缓冲器记录在所述存储器子系统处执行存储器操作。
2.根据权利要求1所述的方法,其中至少部分地基于所述写入缓冲器记录在所述存储器子系统处执行所述存储器操作包括:
接收执行读取操作以读取所述数据的请求,所述数据存储在所述高速缓存存储器的所述高速缓存部分的第一高速缓存行的第一扇区处;
在所述第一高速缓存行处检测不可恢复的错误;
基于所述写入缓冲器记录的所述条目,识别存储在所述高速缓存存储器的所述写入缓冲器部分的第二高速缓存行的第二扇区处的所述数据的所述重复副本;以及
响应于执行所述读取操作的所述请求,发送存储在所述第二高速缓存行的所述第二扇区处的所述数据的所述重复副本。
3.根据权利要求1所述的方法,其中至少部分地基于所述写入缓冲器记录在所述存储器子系统处执行所述存储器操作包括:
执行逐出操作以从所述高速缓存存储器的所述高速缓存部分去除所述数据;以及
响应于执行所述逐出操作,擦除所述写入缓冲器记录中的所述条目。
4.根据权利要求1所述的方法,其中至少部分地基于所述写入缓冲器记录在所述存储器子系统处执行所述存储器操作包括:
执行清除操作以从所述高速缓存存储器的所述写入缓冲器部分去除所述数据的所述重复副本;
在所述写入缓冲器记录中识别所述条目,所述条目将存储在所述写入缓冲器部分处的所述数据的所述重复副本的所述位置映射到存储在所述高速缓存部分处的所述数据的所述位置;
基于所述写入缓冲器记录的所述条目,定位存储在所述高速缓存存储器的所述高速缓存部分处的所述数据;以及
将所述数据存储在非易失性存储器装置处。
5.根据权利要求1所述的方法,其中所述数据存储在所述高速缓存部分的第一高速缓存行处,所述第一高速缓存行能够使用与所述高速缓存存储器的第一存储器装置相关联的第一信道存取,且其中所述数据的所述重复副本存储在所述写入缓冲器部分的第二高速缓存行处,所述第二高速缓存行能够使用与所述高速缓存存储器的第二存储器装置相关联的第二信道存取。
6.根据权利要求5所述的方法,其进一步包括:
将所述写入缓冲器记录存储在所述高速缓存存储器的所述写入缓冲器部分的第三高速缓存行的第三扇区处,其中所述第三高速缓存行能够使用与所述第二存储器装置相关联的所述第二信道存取。
7.根据权利要求1所述的方法,其进一步包括:
在与所述高速缓存部分的第一高速缓存行相关联的第一标记元数据处,记录存储在所述高速缓存存储器的所述高速缓存部分的所述第一高速缓存行处的所述数据是脏数据的指示;以及
在与所述写入缓冲器部分的第二高速缓存行相关联的第二标记元数据处,记录存储在所述高速缓存存储器的所述写入缓冲器部分的所述第二高速缓存行处的所述数据的所述重复副本是有效数据的指示。
8.根据权利要求1所述的方法,其中所述高速缓存存储器是第一高速缓存存储器,所述方法进一步包括:
在与所述写入缓冲器部分的第二高速缓存行相关联的第三标记元数据处,记录所述第一高速缓存行存储已重复且存储在所述写入缓冲器部分的所述第二高速缓存行处的数据的指示;以及
将所述第二标记元数据存储在第二高速缓存存储器处,其中所述第二高速缓存存储器的级别高于所述第一高速缓存存储器的级别。
9.一种包括指令的非暂时性计算机可读媒体,所述指令响应于处理装置的执行而使得所述处理装置执行包括以下各项的操作:
接收执行写入操作以在存储器子系统处写入数据的请求;
响应于执行所述写入操作的所述请求,将所述数据存储在所述存储器子系统的高速缓存存储器的高速缓存部分的第一高速缓存行处,其中所述高速缓存部分的所述第一高速缓存行能够由第一信道存取;
将所述高速缓存存储器的所述高速缓存部分的第二高速缓存行分配到所述高速缓存存储器的写入缓冲器部分,其中所述写入缓冲器部分的所述第二高速缓存行能够由第二信道存取;
将所述数据的重复副本存储在高速缓存存储器的所述写入缓冲器部分的第二高速缓存行处;以及
在写入缓冲器记录中记录条目,所述条目将存储在所述写入缓冲器部分处的所述数据的所述重复副本的位置映射到存储在所述高速缓存存储器的所述高速缓存部分处的所述数据的位置。
10.根据权利要求9所述的非暂时性计算机可读媒体,其中所述第一信道与所述高速缓存存储器的第一存储器装置相关联,且其中所述第二信道与所述高速缓存存储器的第二存储器装置相关联。
11.根据权利要求10所述的非暂时性计算机可读媒体,所述操作进一步包括:
将所述写入缓冲器记录存储在所述高速缓存存储器的所述写入缓冲器部分的第三高速缓存行的第三扇区处,其中所述第三高速缓存行能够使用与所述第二存储器装置相关联的所述第二信道存取。
12.根据权利要求9所述的非暂时性计算机可读媒体,所述操作进一步包括:
至少部分地基于所述写入缓冲器记录在所述存储器子系统处执行存储器操作。
13.根据权利要求12所述的非暂时性计算机可读媒体,其中至少部分地基于所述写入缓冲器记录在所述存储器子系统处执行所述存储器操作,所述操作进一步包括:
接收执行读取操作以读取所述数据的请求,所述数据存储在所述高速缓存存储器的所述高速缓存部分的所述第一高速缓存行处;
在所述第一高速缓存行处检测不可恢复的错误;
基于所述写入缓冲器记录的所述条目,识别存储在所述高速缓存存储器的所述写入缓冲器部分的所述第二高速缓存行处的所述数据的所述重复副本;以及
响应于执行所述读取操作的所述请求,发送存储在所述第二高速缓存行处的所述数据的所述重复副本。
14.根据权利要求12所述的非暂时性计算机可读媒体,其中至少部分地基于所述写入缓冲器记录在所述存储器子系统处执行所述存储器操作,所述操作进一步包括:执行逐出操作以从所述高速缓存存储器的所述高速缓存部分的所述第一高速缓存行去除所述数据;以及
响应于执行所述逐出操作,擦除所述写入缓冲器记录中的所述条目。
15.根据权利要求12所述的非暂时性计算机可读媒体,其中至少部分地基于所述写入缓冲器记录在所述存储器子系统处执行所述存储器操作,所述操作进一步包括:
执行清除操作以从所述高速缓存存储器的所述写入缓冲器部分的所述第二高速缓存行去除所述数据的所述重复副本;
在所述写入缓冲器记录中识别所述条目,所述条目将存储在所述写入缓冲器部分处的所述数据的所述重复副本的所述位置映射到存储在所述高速缓存部分处的所述数据的所述位置;
基于所述写入缓冲器记录的所述条目,定位存储在所述高速缓存存储器的所述高速缓存部分的所述第一高速缓存行处的所述数据;以及
将所述第一高速缓存行的所述数据存储在非易失性存储器装置处。
16.一种系统,其包括:
高速缓存存储器;以及
处理装置,其以操作方式耦合到所述高速缓存存储器,以执行包括以下各项的操作:
接收执行写入操作以在存储器子系统处写入数据的请求;
响应于执行所述写入操作的所述请求,将所述数据存储在所述存储器子系统的高速缓存存储器的高速缓存部分处;
将所述数据的重复副本存储在高速缓存存储器的写入缓冲器部分处;
在写入缓冲器记录中记录条目,所述条目将存储在所述写入缓冲器部分处的所述数据的所述重复副本的位置映射到存储在所述高速缓存存储器的所述高速缓存部分处的所述数据的位置;以及
至少部分地基于所述写入缓冲器记录在所述存储器子系统处执行存储器操作。
17.根据权利要求16所述的系统,其中至少部分地基于所述写入缓冲器记录在所述存储器子系统处执行所述存储器操作,所述操作包括:
接收执行读取操作以读取所述数据的请求,所述数据存储在所述高速缓存存储器的所述高速缓存部分的第一高速缓存行的第一扇区处;
在所述第一高速缓存行处检测不可恢复的错误;
基于所述写入缓冲器记录的所述条目,识别存储在所述高速缓存存储器的所述写入缓冲器部分的第二高速缓存行的第二扇区处的所述数据的所述重复副本;以及
响应于执行所述读取操作的所述请求,发送存储在所述第二高速缓存行的所述第二扇区处的所述数据的所述重复副本。
18.根据权利要求16所述的系统,其中至少部分地基于所述写入缓冲器记录在所述存储器子系统处执行所述存储器操作,所述操作包括:
执行逐出操作以从所述高速缓存存储器的所述高速缓存部分去除所述数据;以及
响应于执行所述逐出操作,擦除所述写入缓冲器记录中的所述条目。
19.根据权利要求16所述的系统,其中至少部分地基于所述写入缓冲器记录在所述存储器子系统处执行所述存储器操作,所述操作包括:
执行清除操作以从所述高速缓存存储器的所述写入缓冲器部分去除所述数据的所述重复副本;
在所述写入缓冲器记录中识别所述条目,所述条目将存储在所述写入缓冲器部分处的所述数据的所述重复副本的所述位置映射到存储在所述高速缓存部分处的所述数据的所述位置;
基于所述写入缓冲器记录的所述条目,定位存储在所述高速缓存存储器的所述高速缓存部分处的所述数据;以及
将所述数据存储在非易失性存储器装置处。
20.根据权利要求16所述的系统,其中所述数据存储在所述高速缓存部分的第一高速缓存行处,所述第一高速缓存行能够使用与所述高速缓存存储器的第一存储器装置相关联的第一信道存取,且其中所述数据的所述重复副本存储在所述写入缓冲器部分的第二高速缓存行处,所述第二高速缓存行能够使用与所述高速缓存存储器的第二存储器装置相关联的第二信道存取。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/934,837 US11314643B2 (en) | 2020-07-21 | 2020-07-21 | Enhanced duplicate write data tracking for cache memory |
US16/934,837 | 2020-07-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113961482A true CN113961482A (zh) | 2022-01-21 |
Family
ID=79460427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110817807.4A Pending CN113961482A (zh) | 2020-07-21 | 2021-07-20 | 高速缓存存储器的增强型重复写入数据跟踪 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11314643B2 (zh) |
CN (1) | CN113961482A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11847333B2 (en) * | 2019-07-31 | 2023-12-19 | EMC IP Holding Company, LLC | System and method for sub-block deduplication with search for identical sectors inside a candidate block |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6820180B2 (en) * | 2002-04-04 | 2004-11-16 | International Business Machines Corporation | Apparatus and method of cascading backup logical volume mirrors |
JP4090400B2 (ja) * | 2003-07-24 | 2008-05-28 | 株式会社日立製作所 | ストレージシステム |
-
2020
- 2020-07-21 US US16/934,837 patent/US11314643B2/en active Active
-
2021
- 2021-07-20 CN CN202110817807.4A patent/CN113961482A/zh active Pending
-
2022
- 2022-04-12 US US17/719,248 patent/US11704247B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11704247B2 (en) | 2023-07-18 |
US11314643B2 (en) | 2022-04-26 |
US20220308996A1 (en) | 2022-09-29 |
US20220027270A1 (en) | 2022-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11119940B2 (en) | Sequential-write-based partitions in a logical-to-physical table cache | |
CN114730300B (zh) | 对区命名空间存储器的增强型文件系统支持 | |
CN113010449B (zh) | 用于存储器子系统中命令的有效处理的方法、系统和非暂时性计算机可读存储媒体 | |
CN112948284A (zh) | 高速缓存媒体中的动态存取粒度 | |
CN115934582A (zh) | 冷数据识别 | |
US20240143511A1 (en) | Dynamically sized redundant write buffer with sector-based tracking | |
US20240134554A1 (en) | Smart swapping and effective encoding of a double word in a memory sub-system | |
CN113934666A (zh) | 数据接口桥的预取 | |
US11704247B2 (en) | Enhanced duplicate write data tracking for cache memory | |
US11599466B2 (en) | Sector-based tracking for a page cache | |
CN112805692A (zh) | 混合式双列直插式存储器模块中的高速缓存操作 | |
US11971816B2 (en) | Host system notification based on entry miss | |
CN112860182B (zh) | 用于写回合并的位屏蔽有效扇区 | |
US20230129363A1 (en) | Memory overlay using a host memory buffer | |
CN115048042A (zh) | 启用针对持久性存储器的存储器存取事务 | |
CN113918479B (zh) | 用于并行独立线程的低位密度存储器高速缓存的方法及系统 | |
US11392505B2 (en) | Rebuilding logical-to-physical address mapping with limited memory | |
CN114077404A (zh) | 使存储器单元与主机系统解除关联 | |
CN115757205A (zh) | 在高速缓存存储器中合并写入请求 | |
CN117999547A (zh) | 用于存储器子系统中的两遍次编程的虚拟管理单元方案 | |
CN113126899A (zh) | 完全多平面操作启用 | |
CN113064548A (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 |