CN113168289B - 使用逐出和恢复管理存储装置中的冗余上下文 - Google Patents
使用逐出和恢复管理存储装置中的冗余上下文 Download PDFInfo
- Publication number
- CN113168289B CN113168289B CN201980076888.8A CN201980076888A CN113168289B CN 113168289 B CN113168289 B CN 113168289B CN 201980076888 A CN201980076888 A CN 201980076888A CN 113168289 B CN113168289 B CN 113168289B
- Authority
- CN
- China
- Prior art keywords
- context
- redundancy
- memory
- evicted
- request
- 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.)
- Active
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
-
- 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
- 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/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the 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/10—Providing a specific technical effect
- G06F2212/1008—Correctness of operation, e.g. memory ordering
-
- 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/214—Solid state disk
-
- 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/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
- G06F2212/262—Storage comprising a plurality of storage devices configured as RAID
-
- 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/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/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/7207—Details relating to flash memory management management of metadata or 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
Abstract
控制器响应于对冗余上下文的请求选择用于逐出的冗余上下文。所述冗余上下文包含缓冲器数据和标识符。通过指示冗余组件将所述缓冲器数据和标识符发送到存储器组件以存储在缓冲器中作为逐出的上下文,来逐出所述冗余上下文。所述控制器指示所述存储器组件提供所述逐出的上下文以存储在控制器缓冲器中。在所述逐出之后,将新的冗余上下文分配给请求者。
Description
技术领域
本公开大体上涉及管理冗余上下文,且更具体地,涉及逐出和恢复冗余上下文。
背景技术
存储器子系统可以是存储系统,例如固态驱动器(SSD),并且可以包含存储数据的一或多个存储器组件。存储器组件可以例如是非易失性存储器组件和易失性存储器组件。一般来说,主机系统可以利用存储器子系统以在存储器组件中存储数据以及从存储器组件中检索数据。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,图式不应视为将本公开限制于具体实施例,而是仅用于解释和理解。
图1示出根据本公开的一些实施例的包含存储器子系统的实例计算环境。
图2示出根据本公开的一些实施例的存储器子系统的组件的更详细实例。
图3示出根据本公开的一些实施例的冗余上下文缓冲器。
图4是根据本公开的一些实施例的管理冗余上下文的逐出的实例方法的流程图。
图5是根据本公开的一些实施例的管理冗余上下文的恢复的实例方法的流程图。
图6是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及管理存储器子系统中的冗余上下文。冗余上下文是专用于临时存储数据以用于计算冗余值(例如针对容错性计算的奇偶校验数据)的存储器的一部分。例如,冗余值可以是对写入到非易失性存储器的数据集执行的异或运算的结果。如果在数据集中的一者中检测到错误,则可使用另一数据集和异或运算的结果来重新获得数据。
存储器子系统在下文也称为“存储器装置”。存储器子系统的实例是存储系统,例如,固态驱动器(SSD)。在一些实施例中,存储器子系统是混合式存储器/存储子系统。一般来说,主机系统可以利用包含一或多个存储器组件的存储器子系统。主机系统可以提供将存储在存储器子系统处的数据且可以请求将从存储器子系统中检索的数据。
传统存储系统在存储数据时使用冗余组件,以提高存储系统从数据丢失中重新获得数据的能力。冗余组件计算数据集的冗余值。当冗余组件计算冗余值时,冗余组件包含用于临时存储数据部分的有限量的内存。这种有限的内存被划分为冗余上下文,其为冗余组件提供工作空间来积累要写入的数据并计算冗余值。
在一个实施例中,冗余上下文包含存储在表条目中的元数据。元数据包含用于标识特定冗余上下文的上下文标识符和指向用于计算冗余值的工作缓冲器的指针。表条目可以存储在冗余组件中的冗余上下文缓冲器中。在计算冗余值之后,将要写入的数据和相关联的冗余值传输到存储器组件以进行存储。冗余组件可以是并入存储系统中的硬件的单独部分或组件,存储系统可以使用有限数目的冗余上下文以在写入到存储器时生成冗余数据。尝试写入到存储系统的多个进程可能会使冗余组件无法为对冗余上下文的请求提供服务,从而导致死锁或其它错误状态。例如,新的写入操作需要分配新的冗余上下文。如果两个进程以不同的数据速率写入到存储装置,则较快进程可能需要在较慢进程完成其当前写入操作之前分配新的冗余上下文。如果冗余组件的限制阻止在较慢进程完成其当前操作之前向较快进程分配新的冗余上下文,则其它依赖项(例如,等待较快进程完成的较慢进程)可能会导致死锁。传统的冗余组件缺乏允许外部管理其可用冗余上下文的能力。
本公开的方面通过从冗余组件临时逐出冗余上下文并根据需要恢复冗余上下文来解决上述和其它缺陷,从而有效地增加可以同时被服务而无需更改冗余组件硬件或固件的进程的数目。
图1示出根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可以包含媒体,例如存储器组件112A到112N。存储器组件112A到112N可以是易失性存储器组件、非易失性存储器组件或此类组件的组合。在一些实施例中,存储器子系统是存储系统。存储系统的实例是SSD。在一些实施例中,存储器子系统110是混合式存储器/存储子系统。通常,计算环境100可以包含使用存储器子系统110的主机系统120。例如,主机系统120可以将数据写入到存储器子系统110以及从存储器子系统110读取数据。
主机系统120可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置或包含存储器和处理装置的此类计算装置。主机系统120可以包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入到所述存储器子系统。主机系统120可以经由物理主机接口耦合到存储器子系统110。如本文所使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等的连接。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)等。物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可以进一步利用NVM高速(NVMe)接口存取存储器组件112A到112N。物理主机接口可以提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。在一个实施例中,主机系统120上执行的主机进程(未示出)将读取和写入指令发送到存储器子系统110。
存储器组件112A到112N可以包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(NAND)类型快闪存储器。存储器组件112A到112N中的每一者可以包含一或多个存储器单元阵列,例如单级单元(SLC)或多级单元(MLC)(例如,三级单元(TLC)或四级单元(QLC))。在一些实施例中,特定存储器组件可以包含存储器单元的SLC部分和MLC部分两者。存储器单元中的每一者可以存储由主机系统120使用的一或多个数据位(例如,数据块)。尽管描述了例如NAND类型快闪存储器的非易失性存储器组件,但存储器组件112A到112N可以基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112A到112N可以是但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM),以及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器组件112A到112N的存储器单元可分组为存储器页或数据块,其可指代用于存储数据的存储器组件的单元。
存储器系统控制器115(下文称为“控制器”)可以与存储器组件112A到112N通信以执行操作,例如在存储器组件112A到112N处读取数据、写入数据或擦除数据,以及其它此类操作。控制器115可包含硬件,如一或多个集成电路和/或离散组件、缓冲存储器或其组合。控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的处理器。控制器115可以包含被配置成执行存储在本地存储器119中的指令的处理器(处理装置)117。在所示实例中,控制器115的本地存储器119包含被配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种进程、操作、逻辑流和例程。在一些实施例中,本地存储器119可以包含存储存储器指针、获取的数据等的存储器寄存器。本地存储器119还可以包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已示为包含控制器115,但在本公开的另一实施例中,存储器子系统110可不包含控制器115,而是可以依赖于外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供的外部控制)。
通常,控制器115可以从主机系统120接收命令或操作,并且可以将命令或操作转换成指令或适当的命令,以实现对存储器组件112A到112N的期望的存取。控制器115可以负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和纠错码(ECC)操作、加密操作、高速缓存操作,以及与存储器组件112A到112N相关联的逻辑块地址与物理块地址之间的地址转译。控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成命令指令以存取存储器组件112A到112N,以及将与存储器组件112A到112N相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可以包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如DRAM)和地址电路系统(例如行解码器和列解码器),其可从控制器115接收地址且对地址进行解码以存取存储器组件112A到112N。
存储器子系统110包含上下文管理器113,其可分别管理从冗余组件123逐出冗余上下文和将冗余上下文恢复到所述冗余组件。在一些实施例中,控制器115包含上下文管理器113的至少一部分。例如,控制器115可以包含处理器117(处理装置),其被配置成执行存储在本地存储器119中的用于执行本文描述的操作的指令。在一些实施例中,上下文管理器113是主机系统110、应用程序或操作系统的一部分。
上下文管理器113可以使冗余组件123将冗余上下文的上下文标识符和缓冲器内容发送到存储器组件112A-112N,并使存储器组件112A-112N将上下文标识符和缓冲器内容存储在缓冲器中,直到上下文管理器113将上下文标识符移动到本地存储器119。下文描述关于上下文管理器113的操作的进一步细节。在一个实施例中,存储器组件112A-112N包含非易失性存储器和易失性存储器工作缓冲器。处理装置可以检索写入到易失性存储器工作缓冲器的数据。
图2示出根据本公开的一些实施例的更详细的存储器子系统。冗余组件123包含冗余计算器225和冗余上下文缓冲器227。冗余计算器225使用在被写入到存储器组件112A-112N之前存储在冗余上下文中的其它数据值来计算冗余值。在一个实施例中,从控制器115接收其它数据值作为要写入的数据,并且冗余组件123使用冗余计算器225来计算冗余值,冗余组件123将所述冗余值与其它数据值一起发送到存储器组件112A-112N以供存储。在一个实施例中,冗余计算器225使用逻辑运算(例如,逐位异或运算)。在一个实施例中,将存储器组件112A-112N中的每一存储器裸片上的相同页(或存储器的其它分区)一起进行异或运算以生成冗余值。在此实施例中,存储器组件112A-112N将异或值存储在另一裸片上的相同页中。冗余上下文缓冲器227包含有限数目的冗余上下文229A-229M。上下文管理器113可以使冗余组件123将冗余上下文229A-229M的元数据和工作缓冲器内容作为逐出的上下文235传输到存储器组件112A-112N。在一个实施例中,将不到全部的元数据作为逐出的上下文235发送。存储器组件112A-112N包含可临时存储逐出的冗余上下文235的易失性工作缓冲器231。上下文管理器113可使存储器组件将逐出的上下文235发送到控制器115以存储在本地存储器119中(例如,不将逐出的上下文235的内容提交到媒体)。在一个实施例中,逐出的上下文235包含要在没有冗余值的情况下写入的数据。在一个实施例中,上下文管理器113使用冗余组件123与存储器组件112A-112N之间的现有通信信道将逐出的上下文235临时存储在缓冲器231中。在一个实施例中,当控制器115请求逐出的上下文235继续处理写入操作时,上下文管理器113可以指示冗余组件123在缓冲器227中分配新的冗余上下文,并将逐出的上下文235写入到所分配的上下文中。在一个实施例中,上下文管理器113向冗余组件123和/或存储器组件112A-112N发送指令以使这些事件发生。
图3示出根据本公开的一些实施例的冗余上下文缓冲器。在一个实施例中,滑动窗口333用于存取缓冲器227中的冗余上下文229A-229M。在一个实施例中,冗余组件223将缓冲器227实施为循环列表。也就是说,229M后面的条目是229A。滑动窗口333可以是冗余组件123中的性能优化,用于提高可以存取冗余上下文229A-229M的速率。在一个实施例中,优化阻止滑动窗口333前进超过分配的冗余上下文。冗余上下文229A是分配的冗余上下文的实例,换句话说,是当前由控制器115用于将数据(包含来自冗余组件123的错误恢复数据)写入到存储器组件112A-112N的冗余上下文。在一个实施例中,要写入的数据和错误恢复数据存储在链接到冗余上下文229A的缓冲器中。因此,图3示出了因为滑动窗口333由于分配的冗余上下文229A被分配而不能前进超过229A所以导致可用冗余上下文229B不能被分配且空闲的情况。这将导致死锁情况,并阻止存储系统执行进一步的写入操作。在一个实施例中,上下文229A以较慢的数据速率分配给主机进程写入,而冗余组件223尝试将上下文229B以较快的数据速率分配给主机进程写入。冗余组件123直到其在释放分配的上下文229A之后能使窗口333前进到上下文229B时才能分配上下文229B。在此实施例中,较慢进程对较快进程的外部依赖性造成死锁情况,其中较慢进程等待较快进程完成,而较快进程在较慢进程完成之前无法完成。
在一个实施例中,处理装置通过将上下文229A逐出到缓冲器231且接着将其读取回至本地存储器119而避免死锁。当向其分配了上下文229A的进程在逐出上下文229A之前再次请求上下文时,处理装置将逐出的上下文235恢复到下一个可用冗余上下文(例如,冗余上下文229D),并向所述进程提供对恢复的上下文229D的存取。
图4是根据本公开的一些实施例的将冗余上下文从冗余组件逐出到控制器存储器的实例方法400的流程图。可以通过处理逻辑来执行方法400,所述处理逻辑可以包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的上下文管理器113执行。虽然以特定顺序或次序来示出,但是除非另有指定,否则可修改过程的次序。因此,应理解,所示实施例仅为实例,且所示过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在框405,处理装置接收分配冗余上下文的请求。处理装置可以作为对存储器组件112A-112N的写入操作的一部分接收请求。在一个实施例中,请求是针对开始写入操作的清除的冗余上下文,但是在其它实施例中,请求可以指定现有冗余上下文。
在框410,处理装置响应于请求而选择用于逐出的空闲冗余上下文。空闲冗余上下文可以是已分配但其已分配的进程当前未使用的冗余上下文。在一个实例中,处理装置选择用于逐出的冗余上下文229A,因为上下文229A阻止分配冗余上下文229B。在一个实施例中,上下文229A具有对包含生成冗余数据所需的一些数据的缓冲器的引用。如果有未分配的上下文可用(例如,当装置通电时),则可以避免这种情况。
在框415,处理装置通过指示冗余组件(例如,冗余组件123)将包含来自冗余上下文缓冲器中的冗余上下文表条目的元数据和要写入链接到冗余上下文的缓冲器中的数据的指令发送到存储器组件(例如,存储器组件112A)来逐出冗余上下文,并且使存储器组件将元数据和链接的缓冲器作为逐出的上下文存储在存储器组件中的缓冲器中。存储器组件112A将逐出的上下文235存储在缓冲器231中。在一个实施例中,上下文管理器113使用通过冗余组件123路由到存储器组件112A-112N的写入指令,并使冗余组件将逐出的上下文写出到存储器组件112A-112N,而不使存储器组件112A-112N将逐出的上下文提交到非易失性存储器。
在框420,处理装置向存储器组件发送指令,所述指令使存储器组件将从存储器组件缓冲器(例如,缓冲器231)逐出的上下文返回到处理装置。在一个实施例中,所述指令使存储器组件将存储器组件缓冲器中的数据传输到处理装置。在存储器组件将数据传输到处理装置之后,存储器组件可以释放存储器组件缓冲器中存储数据的部分。
在框425,处理装置将在框420从存储器组件接收的逐出的上下文存储在控制器存储器(例如,本地存储器119)中的缓冲器中。在一个实施例中,逐出的上下文保留在控制器存储器中,直到被分配上下文的进程请求为止。
在框430,处理装置响应于请求而分配新的冗余上下文。例如,在框410处选择用于逐出的上下文可以是图3中的上下文229A。现在逐出的上下文229A,窗口333可以前进到229B,并且处理装置可以在框430将上下文229B分配给请求冗余上下文的进程。在一个实施例中,处理装置响应于请求提供上下文标识符。在此实施例中,控制器115使用上下文标识符来存取新分配的冗余上下文。
图5是根据本公开的一些实施例的用于管理冗余上下文的恢复的实例方法的流程图。可以通过处理逻辑来执行方法500,所述处理逻辑可以包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法500由图1的上下文管理器113执行。虽然以特定顺序或次序来示出,但是除非另有指定,否则可修改过程的次序。因此,应理解,所示实施例仅为实例,且所示过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在框505,处理装置接收对冗余上下文的请求(例如,来自主机进程的将文件保存到存储装置的请求)。在一个实施例中,请求包含上下文标识符,所述上下文标识符标识滑动窗口内将被返回使用的分配的冗余上下文。在另一实施例中,请求是对新的冗余上下文而非数据的请求。在另一实施例中,请求包含标识逐出的冗余上下文的上下文标识符。方法500可以处理对逐出的冗余上下文的请求。在一个实施例中,上下文管理器113要求进程在每次使用上下文时请求已经分配的冗余上下文,以确保在使用之前恢复逐出的冗余上下文。
继续上文描述的实例,在框505接收的请求标识本地存储器119中逐出的上下文235。在一个实施例中,上下文管理器113跟踪已从冗余组件中逐出的冗余上下文。上下文管理器113可以将逐出的冗余上下文和对应的上下文标识符存储在本地存储器119中。
在框510,处理装置恢复冗余上下文。恢复上下文可以包含分配可用冗余上下文、从控制器存储器中检索逐出的上下文,以及将来自逐出的上下文的元数据和链接的缓冲器数据存储在分配的冗余上下文中。例如,可以作为恢复逐出的上下文235的部分将冗余上下文229E分配到上下文229E中。
在一个实施例中,处理装置通过向冗余组件发送包含逐出的上下文的指令来恢复分配的冗余上下文,并使冗余组件将逐出的上下文恢复到冗余组件中的冗余上下文。例如,冗余上下文缓冲器227中的冗余上下文229E。在一个实施例中,对冗余组件的指令是包含来自逐出的上下文的数据的写入指令。在清除链接到分配的冗余上下文的缓冲器之后,写入指令使冗余组件在链接到分配的冗余上下文的清除的缓冲器与来自逐出的上下文的缓冲器数据之间执行冗余运算(例如,逐位异或运算),其结果是逐出的上下文的缓冲器数据,从而恢复逐出的冗余上下文。
在框515,处理装置响应于请求而提供包含恢复的缓冲器数据的冗余上下文。在一个实施例中,请求者可以使用恢复的冗余上下文继续请求者停止的写入操作。
图6示出计算机系统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或体现本文描述的方法或功能中的任何一或多者的软件。指令626还可以在由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可以对应于图1的存储器子系统110。
在一个实施例中,指令626包含实施对应于上下文管理器(例如,图1的上下文管理器113)的功能性的指令。尽管在实例实施例中机器可读存储媒体624示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集且使机器执行本公开的方法中的任何一或多种的任何媒体。术语“计算机可读存储媒体”因此应被认为包含但不限于固态存储器、光学媒体和磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理数量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。举例来说,计算机系统或其它数据处理系统(例如,控制器115)可响应于其处理器执行存储器或其它非暂时性机器可读存储媒体中所含的计算机程序(例如,指令序列)而实行计算机实施的方法400和500。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM以及磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可根据本文中的教示与程序一起使用,或其可以证明构造更专用的设备来执行方法是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
Claims (20)
1.一种用于管理冗余上下文的计算机实施的方法,其包括:
接收将第一存储器的一部分分配为冗余上下文的第一请求,其中所述第一存储器包含临时存储数据的多个冗余上下文,用于计算所述数据的冗余值;
响应于所述第一请求而选择用于逐出的空闲冗余上下文,其中所述空闲冗余上下文包含第一数据缓冲器和上下文标识符;
通过将所述第一数据缓冲器和所述上下文标识符发送到第二存储器的存储器组件来逐出所述空闲冗余上下文的内容;
从所述第二存储器的所述存储器组件检索所述逐出的上下文的所述内容;
将所述逐出的上下文的所述检索的内容存储在第二缓冲器中;以及
响应于所述第一请求和所述逐出,将所述第一存储器的所述部分分配为新的冗余上下文。
2.根据权利要求1所述的方法,其进一步包括:
接收第二请求,所述第二请求指向所述逐出的上下文的所述内容;
将存储在所述第二缓冲器中的所述逐出的上下文的所述内容恢复到可用冗余上下文;以及
响应于所述第二请求而提供所述恢复的冗余上下文。
3.根据权利要求2所述的方法,其中所述第一请求来自以第一速率写入数据的第一进程,并且其中所述第二请求来自以第二速率写入数据的第二进程,并且其中所述第一速率大于所述第二速率。
4.根据权利要求2所述的方法,其中恢复所述逐出的上下文的所述内容包括:
清除第三缓冲器的内容;
在所述第三缓冲器中存储对所述第三缓冲器的清除内容和来自所述逐出的上下文的所述内容的所述数据执行逻辑运算的结果;以及
将来自所述逐出的上下文的所述内容的所述上下文标识符存储在所述可用冗余上下文中。
5.根据权利要求4所述的方法,其中所述逻辑运算是逐位异或XOR运算。
6.根据权利要求1所述的方法,其中所述多个冗余上下文存储在循环列表中,并且其中每个冗余上下文通过所述循环列表内的滑动窗口存取。
7.根据权利要求6所述的方法,其中选择用于逐出的所述空闲冗余上下文包含确定所述冗余上下文正在阻止所述滑动窗口前进到下一可用冗余上下文。
8.一种包括用于管理冗余上下文的指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使所述处理装置进行以下操作:
接收将第一存储器的一部分分配为冗余上下文的第一请求,其中所述第一存储器包含临时存储数据的多个冗余上下文,用于计算所述数据的冗余值;
响应于所述第一请求而选择用于逐出的空闲冗余上下文,其中所述空闲冗余上下文包含第一数据缓冲器和上下文标识符;
通过将所述第一数据缓冲器和所述上下文标识符发送到第二存储器的存储器组件来逐出所述空闲冗余上下文的内容;
从所述第二存储器的所述存储器组件检索所述逐出的上下文的所述内容;
将所述逐出的上下文的所述检索的内容存储在第二缓冲器中;以及
响应于所述第一请求和所述逐出,将所述第一存储器的所述部分分配为新的冗余上下文。
9.根据权利要求8所述的存储媒体,所述指令进一步使所述处理装置进行以下操作:
接收第二请求,所述第二请求指向所述逐出的上下文的所述内容;
将存储在所述第二缓冲器中的所述逐出的上下文的所述内容恢复到可用冗余上下文;以及
响应于所述第二请求而提供所述恢复的冗余上下文。
10.根据权利要求9所述的存储媒体,其中所述第一请求来自以第一速率写入数据的第一进程,并且其中所述第二请求来自以第二速率写入数据的第二进程,并且其中所述第一速率大于所述第二速率。
11.根据权利要求9所述的存储媒体,其中使所述处理装置恢复所述可用冗余上下文的指令进一步包含使所述处理装置进行以下操作的指令:
清除第三缓冲器的内容;
在所述第三缓冲器中存储对所述第三缓冲器的清除内容和来自所述逐出的上下文的所述内容的所述数据执行逻辑运算的结果;以及
将来自所述逐出的上下文的所述内容的所述上下文标识符存储在所述可用冗余上下文中。
12.根据权利要求11所述的存储媒体,其中所述逻辑运算是逐位异或XOR运算。
13.根据权利要求12所述的存储媒体,其中所述多个冗余上下文存储在循环列表中,并且其中每个冗余上下文通过所述循环列表内的滑动窗口存取。
14.根据权利要求13所述的存储媒体,其中选择用于逐出的所述冗余上下文包含确定所述冗余上下文正在阻止所述滑动窗口前进到下一可用冗余上下文。
15.一种用于管理冗余上下文的系统,其包括:
存储器组件;以及
处理装置,其耦合到所述存储器组件,被配置成:
接收将第一存储器的一部分分配为冗余上下文的第一请求,其中所述第一存储器包含临时存储数据的多个冗余上下文,用于计算所述数据的冗余值;
响应于所述第一请求而选择用于逐出的空闲冗余上下文,其中所述空闲冗余上下文包含第一数据缓冲器和上下文标识符;
通过将所述第一数据缓冲器和所述上下文标识符发送到第二存储器的存储器组件来逐出所述空闲冗余上下文的内容;
从所述第二存储器的所述存储器组件检索所述逐出的上下文的所述内容;
将所述逐出的上下文的所述检索的内容存储在第二缓冲器中;以及
响应于所述第一请求和所述逐出,将所述第一存储器的所述部分分配为新的冗余上下文;
接收第二请求,所述第二请求指向所述逐出的上下文的所述内容;
将存储在所述第二缓冲器中的所述逐出的上下文的所述内容恢复到可用冗余上下文;以及
响应于所述第二请求而提供所述恢复的冗余上下文。
16.根据权利要求15所述的系统,其中所述第一请求来自以第一速率写入数据的第一进程,并且其中所述第二请求来自以第二速率写入数据的第二进程,并且其中所述第一速率大于所述第二速率。
17.根据权利要求15所述的系统,其中恢复所述可用冗余上下文进一步将所述处理装置配置成:
清除第三缓冲器的内容;
在所述第三缓冲器中存储对所述第三缓冲器的清除内容和来自所述逐出的上下文的所述内容的所述数据执行逻辑运算的结果;以及
将来自所述逐出的上下文的所述内容的所述上下文标识符存储在所述可用冗余上下文中。
18.根据权利要求17所述的系统,其中所述逻辑运算是逐位异或XOR运算。
19.根据权利要求18所述的系统,其中所述多个冗余上下文存储在循环列表中,并且其中每个冗余上下文通过所述循环列表内的滑动窗口存取。
20.根据权利要求19所述的系统,其中选择用于逐出的所述冗余上下文包含确定所述冗余上下文正在阻止所述滑动窗口前进到下一可用冗余上下文。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/208,499 | 2018-12-03 | ||
US16/208,499 US10872039B2 (en) | 2018-12-03 | 2018-12-03 | Managing redundancy contexts in storage devices using eviction and restoration |
PCT/US2019/061005 WO2020117434A1 (en) | 2018-12-03 | 2019-11-12 | Managing redundancy contexts in storage devices using eviction and restoration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113168289A CN113168289A (zh) | 2021-07-23 |
CN113168289B true CN113168289B (zh) | 2022-04-19 |
Family
ID=70850200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980076888.8A Active CN113168289B (zh) | 2018-12-03 | 2019-11-12 | 使用逐出和恢复管理存储装置中的冗余上下文 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10872039B2 (zh) |
CN (1) | CN113168289B (zh) |
WO (1) | WO2020117434A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12073873B2 (en) * | 2021-08-31 | 2024-08-27 | Micron Technology, Inc. | Dynamic buffer limit for at-risk data |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241457A (zh) * | 2007-02-09 | 2008-08-13 | 国际商业机器公司 | 用于冗余数据拷贝的降级管理的方法和系统 |
CN102426415A (zh) * | 2003-01-02 | 2012-04-25 | 费舍-柔斯芒特系统股份有限公司 | 冗余管理器 |
CN102479160A (zh) * | 2010-11-23 | 2012-05-30 | 国际商业机器公司 | 用于使用滑动写入窗口机制写入数据的方法和系统 |
CN103348330A (zh) * | 2010-12-01 | 2013-10-09 | Lsi公司 | 采用独立硅元件的动态较高级冗余模式管理 |
CN108052655A (zh) * | 2017-12-28 | 2018-05-18 | 新华三技术有限公司 | 数据写入及读取方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6021463A (en) | 1997-09-02 | 2000-02-01 | International Business Machines Corporation | Method and means for efficiently managing update writes and fault tolerance in redundancy groups of addressable ECC-coded sectors in a DASD storage subsystem |
US8042023B2 (en) | 2008-01-14 | 2011-10-18 | Qimonda Ag | Memory system with cyclic redundancy check |
US8402203B2 (en) * | 2009-12-31 | 2013-03-19 | Seagate Technology Llc | Systems and methods for storing data in a multi-level cell solid state storage device |
US8677203B1 (en) | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
US9569320B2 (en) | 2010-12-01 | 2017-02-14 | Seagate Technology Llc | Non-volatile memory program failure recovery via redundant arrays |
-
2018
- 2018-12-03 US US16/208,499 patent/US10872039B2/en active Active
-
2019
- 2019-11-12 CN CN201980076888.8A patent/CN113168289B/zh active Active
- 2019-11-12 WO PCT/US2019/061005 patent/WO2020117434A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426415A (zh) * | 2003-01-02 | 2012-04-25 | 费舍-柔斯芒特系统股份有限公司 | 冗余管理器 |
CN101241457A (zh) * | 2007-02-09 | 2008-08-13 | 国际商业机器公司 | 用于冗余数据拷贝的降级管理的方法和系统 |
CN102479160A (zh) * | 2010-11-23 | 2012-05-30 | 国际商业机器公司 | 用于使用滑动写入窗口机制写入数据的方法和系统 |
CN103348330A (zh) * | 2010-12-01 | 2013-10-09 | Lsi公司 | 采用独立硅元件的动态较高级冗余模式管理 |
CN108052655A (zh) * | 2017-12-28 | 2018-05-18 | 新华三技术有限公司 | 数据写入及读取方法 |
Also Published As
Publication number | Publication date |
---|---|
US10872039B2 (en) | 2020-12-22 |
WO2020117434A1 (en) | 2020-06-11 |
US20200174935A1 (en) | 2020-06-04 |
CN113168289A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113126907B (zh) | 用于存储器装置的异步电力损失恢复 | |
US11360868B2 (en) | Redundant cloud memory storage for a memory subsystem | |
US11269778B1 (en) | Mapping supporting non-sequential writes at sequentially-written memory devices | |
US11042481B1 (en) | Efficient processing of commands in a memory sub-system | |
US11100005B2 (en) | Logical-to-physical (L2P) table sharping strategy | |
CN112912857B (zh) | 对存储器子系统的写入原子性管理 | |
US11487609B2 (en) | Separating parity data from host data in a memory sub-system | |
US11940912B2 (en) | Managing power loss recovery using a dirty section write policy for an address mapping table in a memory sub-system | |
US11561902B2 (en) | Cache operations in a hybrid dual in-line memory module | |
US20210089449A1 (en) | Managing data dependencies in a transfer pipeline of a hybrid dimm | |
CN113168289B (zh) | 使用逐出和恢复管理存储装置中的冗余上下文 | |
US20230195350A1 (en) | Resequencing data programmed to multiple level memory cells at a memory sub-system | |
US11301383B2 (en) | Managing processing of memory commands in a memory subsystem with a high latency backing store | |
CN112860182B (zh) | 用于写回合并的位屏蔽有效扇区 | |
US11314643B2 (en) | Enhanced duplicate write data tracking for cache memory | |
US10817435B1 (en) | Queue-based wear leveling of memory components | |
US11709601B2 (en) | Redundancy metadata for multi-plane memory access failure | |
US11392505B2 (en) | Rebuilding logical-to-physical address mapping with limited memory | |
US20240118971A1 (en) | Temporary parity buffer allocation for zones in a parity group | |
US20210191652A1 (en) | Linking access commands for a memory sub-system | |
CN115048042A (zh) | 启用针对持久性存储器的存储器存取事务 | |
CN113518977A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |