CN111338566A - 存储器子系统中的功率损耗保护 - Google Patents
存储器子系统中的功率损耗保护 Download PDFInfo
- Publication number
- CN111338566A CN111338566A CN201911319242.6A CN201911319242A CN111338566A CN 111338566 A CN111338566 A CN 111338566A CN 201911319242 A CN201911319242 A CN 201911319242A CN 111338566 A CN111338566 A CN 111338566A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- memory blocks
- memory
- volatile
- components
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50012—Marginal testing, e.g. race, voltage or current testing of timing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/702—Masking faults in memories by using spares or by reconfiguring by replacing auxiliary circuits, e.g. spare voltage generators, decoders or sense amplifiers, to be used instead of defective ones
-
- 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/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
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash 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/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Abstract
本发明的各方面提供用于在装置的存储器子系统中经改进功率损耗保护的系统和方法。特定来说,功率损耗保护组件将所述存储器子系统的一部分分配到非易失性存储器。响应于在所述装置处检测到触发事件,其中所述触发事件可以包含所述装置的异步功率损耗,所述功率损耗保护组件检测写入到所述存储器子系统的易失性高速缓冲存储器的数据,从所述易失性高速缓冲存储器检索所述数据,及将所述数据写入到经分配到所述非易失性存储器的所述存储器子系统的所述部分。
Description
技术领域
本发明的实施例大体上涉及存储器子系统,且更具体地,涉及用于固态驱动器(SSD)中的经改进功率损耗保护的系统和方法。
背景技术
存储器子系统可以为存储系统,例如SSD,且可包含一或多个存储数据的存储器组件。存储器组件可为例如非易失性存储器组件和易失性存储器组件。通常,装置或主机系统可利用存储器子系统来将数据存储在存储器组件处且从存储器组件检索数据。
发明内容
在本发明的一个方面中,提供一种系统。所述系统包括:多个存储器组件,其包括多个非易失性存储器组件和易失性高速缓冲存储器;及处理装置,其与所述多个存储器组件以操作方式耦合,以执行包括以下的操作:对所述多个存储器组件执行性能测试;基于所述性能测试识别所述多个存储器组件的一部分;将所述多个存储器组件的所述部分分配到所述多个非易失性存储器组件中的一或多个;对所述易失性高速缓冲存储器执行数据的写入命令;在与所述多个存储器组件相关联的装置处检测触发事件,所述触发事件包含所述系统的异步功率损耗;响应于所述在所述装置处检测到所述触发事件而从所述易失性高速缓冲存储器检索所述数据;及将所述数据写入到经分配到所述多个非易失性存储器组件中的所述一或多个的所述多个存储器组件的所述部分。
在本发明的另一方面中,提供一种方法。所述方法包括:对所述多个存储器组件执行性能测试;基于所述性能测试识别所述多个存储器组件的一部分;将所述多个存储器组件的所述部分分配到所述多个非易失性存储器组件中的一或多个;对所述易失性高速缓冲存储器执行数据的写入命令;在与所述多个存储器组件相关联的装置处检测触发事件,所述触发事件包含所述系统的异步功率损耗;响应于所述在所述装置处检测到所述触发事件而从所述易失性高速缓冲存储器检索所述数据;及将所述数据写入到经分配到所述多个非易失性存储器组件中的所述一或多个的所述多个存储器组件的所述部分。
在本发明的又一方面中,提供一种非暂时性计算机可读存储媒体。所述非暂时性计算机可读存储媒体包括指令,所述指令在由处理装置执行时致使所述处理装置:对所述多个存储器组件执行性能测试;基于所述性能测试识别所述多个存储器组件的一部分;将所述多个存储器组件的所述部分分配到所述多个非易失性存储器组件中的一或多个;对所述易失性高速缓冲存储器执行数据的写入命令;在与所述多个存储器组件相关联的装置处检测触发事件,所述触发事件包含所述系统的异步功率损耗;响应于所述在所述装置处检测到所述触发事件而从所述易失性高速缓冲存储器检索所述数据;及将所述数据写入到经分配到所述多个非易失性存储器组件中的所述一或多个的所述多个存储器组件的所述部分。
附图说明
从下文给出的详细描述和从本发明的各种实施例的附图将更全面理解本发明。
图1根据本发明的一些实施例说明包含存储器子系统的实例计算环境。
图2为根据本发明的一些实施例的用以分配存储器子系统的部分用于异步功率损耗保护的实例方法的流程图。
图3为根据本发明的一些实施例的用以分配存储器子系统的部分用于异步功率损耗保护的实例方法的流程图。
图4为根据本发明的一些实施例的用以分配存储器子系统的部分用于异步功率损耗保护的实例方法的流程图。
图5为其中可操作本发明的实施例的实例性计算机系统的框图。
具体实施方式
本发明的各方面针对用于存储器子系统中的经改进功率损耗保护的系统和方法。存储器子系统在下文中也被称作为“存储器装置”。存储器子系统的实例为存储系统,例如SSD。在一些实施例中,存储器子系统为混合存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供待存储在存储器子系统处的数据,且可请求从存储器子系统检索数据。
存储器子系统已成为计算机系统中的常见组件,其范围从音乐播放器到大型分布式云系统,再到金融和政府机构的关键任务本地服务器系统。随着对这些存储子系统的需求和依赖性增加,数据可靠性成为关键问题。数据可靠性通常会因存储器系统操作期间异步功率损耗期间发生的错误类型而受到损害。此类电源故障较常见,且可能导致几种非直觉的行为。异步功率损耗可以包含装置处功率损耗之前没有任何关机操作或通知的情况。在此类情况下,装置的存储器子系统将面临挑战,需要在很短的时间范围内执行或完成最终操作。这些最终操作的失败可能导致实施中(inflight)数据和/或内部系统元数据信息(例如数据的位置或状态)丢失。其中“实施中的数据”包含临时缓冲或高速缓冲在易失性存储器中的数据,所述数据被认为经写回到主机,但尚未提交到非易失性存储器(例如TLC/QLC/MLC/SLC NAND快闪存储器、NOR快闪存储器),以及已传递到NAND裸片的数据。
例如,存储器子系统(例如装置中的基于Flash的存储器)通常以32KiB组块写入数据。如果将40KiB文件写入到快闪存储器装置,那么快闪存储器控制器必须将40KiB文件(8KiB)的一部分保存在易失性缓冲器中,直到出现适当的条件才能将其余部分写入到非易失性存储器。如果在将剩余部分从易失性RAM保存到非易失性存储器之前发生突然的功率损耗,那么文件的剩余部分(例如,8KB)将丢失,从而可能损坏整个文件。
用于管理装置的存储器子系统中的异步功率损耗的传统解决方案包含通过添加备用电源电路(例如,呈电容器形式)来修改存储器子系统。在此类系统中,当装置经接通电源时,电容器经充电,以使得在异步功率损耗的情况下,从电容器中存储的能量释放电流,从而为存储器子系统提供额外功率,因此允许存储器子系统系统(控制器、DRAM、NV媒体)以执行最终停机操作,以避免数据丢失或损坏。
由于以备用电源电路的形式将越来越大的电容器集成到装置的存储器子系统中的高成本和设计限制,此类解决方案并非始终可行的。此外,由于电容器可以实际存储和放电的备用能量的限制以及较慢的存储器电路和较少的并行性,例如上文所描述的备用电源系统并非始终为异步功率损耗事件的可靠解决方案。因此,此类解决方案通常仅为梗概而不存在于客户、消费者和有价值的企业市场中发现的装置的存储子系统中。
用于在装置的存储器子系统处的异步数据丢失的情况下防止数据损坏或丢失的另一常规的但不太常见的解决方案是将非易失性双列直插式内存器模块或“NVDIMM”集成到存储器子系统中。NVDIMM通常包含其自己专用的备用电源(电池),且需要对装置的母板和电路进行重大修改,以便集成由NVDIMM所呈现的离散存储器类型。因此,将NVDIMM集成到存储器子系统中会带来许多技术挑战,同时还会大大增加成本。因此,对于成本受限的操作配置文件(细分市场),NVDIMM可能不是恰当的解决方案。
本发明的各方面通过借助加速在此类状况下保护装置所需要的程序提供用于装置的存储子系统中的经改进功率损耗保护的系统和方法,从而减轻了上述和其它基本折衷。特定来说,功率损耗保护组件将存储器子系统的一部分分配到非易失性存储器,例如NAND快闪存储器,或更具体来说,单级单元(SLC)NAND快闪存储器。响应于在装置处检测到触发事件,其中触发事件可以包含装置的异步功率损耗,功率损耗保护组件检测写入到存储器子系统的易失性高速缓冲存储器的数据,从易失性高速缓冲存储器检索数据,以及将数据写入到经分配到NAND快闪存储器的存储子系统的部分。如本文中所论述,“数据”是指主机数据以及元数据两者,其中主机数据包含横跨存储系统的接口在系统处接收的数据,而元数据包含由存储系统本身生成的存储系统内部元数据,其可指示关于存储系统的状态(status或state)的信息。
根据某些实例实施例,将存储器子系统的部分分配到非易失性存储器包含对构成存储器子系统的一组快闪存储器块执行等待时间测试(例如,性能测试),例如程序时间测试,基于程序时间测试的结果对所述组快闪存储器块进行排名,基于所述排名确定所述组快闪存储器块的部分,以及将基于所述排名所识别的部分分配到非易失性存储器。在此类实施例中,“等待时间”是指等待特定操作完成所花费的时间量,且因此可以被描述为程序时间测试。例如,当将块擦除命令发送到装置的存储器子系统时,装置必须在发送下一命令之前等待存储器子系统完成操作。此时间被称为“块擦除等待时间”或tBERS,且通常约为数毫秒。“读取等待时间”或tREAD是指装置在存储器子系统处接收针对特定页地址的读取命令后,准备待读出的数据页所需的时间(25到50微秒)。最后,“编程等待时间”或tPROG是指装置在存储器子系统用数据对页面进行编程时必须遵守的时间段(~2ms到~20ms)。
通过对存储器子系统的快闪存储器块执行程序时间测试,功率损耗保护组件可以基于其对应读取或写入速度性能对所述组快闪存储器块进行排名,从而从构成存储器子系统的所述组快闪存储器块中提供“最快”编程块的指示。功率损耗保护组件然后选择那些最快块,且将最快块分配到非易失性高速缓冲存储器。因此,通过为非易失性高速缓冲存储器选择最快块,可以使将数据从存储器子系统的易失性高速缓冲存储器移动到非易失性高速缓冲存储器所需的时间量最小化,因此减少了对用以完成操作的备用电源的需求。
图1根据本发明的一些实施例说明包含存储器子系统的实例计算环境。存储器子系统110可以包含例如存储器组件112-1到112-N的媒体。存储器组件112-1到112-N可以为易失性存储器组件、非易失性存储器组件或其组合。在一些实施例中,存储器子系统为存储系统。存储系统的实例为SSD。在一些实施例中,存储器子系统110为混合存储器/存储子系统。通常,计算环境100可以包含使用存储器子系统110的主机系统120。例如,主机系统120可以将数据写入到存储器子系统110,且从存储器子系统110读取数据。
主机系统120可为计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置,或包含存储器和处理装置的此类计算装置。主机系统120可以包含或耦合到存储器子系统110,以使得主机系统120可以从存储器子系统110读取数据或向存储器子系统110写入数据。主机系统120可以经由物理主机接口耦合到存储器子系统110。如本文中所使用,“耦合到”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,无需中间组件),无论是有线的还是无线的,包含例如电、光、磁等连接。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时主机系统120可进一步利用NVM高速(NVMe)接口来存取存储器组件112-1到112-N。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。
存储器组件112-1到112-N可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(NAND)型快闪存储器。存储器组件112-1到112-N中的每一者可以包含一或多个存储器单元阵列,例如单级单元(SLC)或多级单元(MLC)(例如,三级单元(TLC)或四级单元(QLC))。在一些实施例中,特定的存储器组件可以包含存储器单元的SLC部分和MLC部分两者,其中每一NAND擦除块可以被置于任何模式中,包含SLC、MLC、TLC和QLC。存储器单元中的每一个可以存储由主机系统120使用的一或多个位的数据(例如,数据块)。尽管描述例如NAND型快闪存储器的非易失性存储器组件,但存储器组件112-1到112-N可以基于例如易失性存储器的任何其它类型的存储器。在一些实施例中,存储器组件112-1到112-N可为但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、电阻式随机存取存储器(RRAM)、磁性随机存取存储器(MRAM—切换类型和自旋转移力矩类型两者)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)和非易失性存储器单元的交叉点或3d交叉点阵列(3DXP)。非易失性存储器的交叉点阵列可结合可堆叠的交叉网格化数据存取阵列基于体电阻的改变执行位存储。此外,与许多基于快闪存储器的存储器相比,交叉点非易失性存储器(以及RRAM、MRAM)可执行写入就地操作,其中可编程非易失性存储器单元而不会先前擦除非易失性存储器单元。此外,如上文所述,存储器组件112-1到112-N的存储器单元可经分组为数据块,其可指代用于存储数据的存储器组件的单位。
存储器子系统控制器115(下文中被称作为“控制器”)可与存储器组件112-1到112-N通信以执行例如在存储器组件112-1到112-N处读取数据、写入数据或擦除数据的操作以及其它此类操作。控制器115可包含例如一或多个集成电路和/或离散组件的硬件、缓冲存储器或其组合。控制器115可为微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适处理器。控制器115可以包含经配置以执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明实例中,控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器经配置以存储用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流以及例程的指令。在一些实施例中,本地存储器119可以包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已经说明为包含控制器115,但在本发明的另一实施例中,存储器子系统110可不包含控制器115,且替代地依赖于外部控制(例如,由外部主机,或由与存储器子系统分开的处理器或控制器提供)。
通常,控制器115可从主机系统120接收命令或操作,且可将命令或操作转换为指令或适当的命令,以实现对存储器组件112-1到112-N的期望存取。控制器115可负责与存储器组件112-1到112-N相关联的其它操作,例如磨损均衡操作、垃圾收集操作、错误检测和纠错码(ECC)操作、加密操作、高速缓冲操作以及逻辑块地址与物理块地址之间的地址转换。控制器115可进一步包含主机接口电路,以经由物理主机接口与主机系统120通信。主机接口电路可将从主机系统接收的命令转换为命令指令以存取存储器组件112-1到112-N,以及将与存储器组件112-1到112-N相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)和地址电路(例如,行解码器和列解码器),其可从控制器115接收地址并将地址解码以存取存储器组件112-1到112-N。
存储器子系统110包含功率损耗保护子系统113,所述功率损耗子系统将存储器组件112-1到112-N的部分分配到非易失性存储器(例如,NAND存储器),或更具体地说,作为单级单元(SLC)写入高速缓冲存储器。在一些实施例中,控制器115包含功率损耗保护子系统113的至少一部分。例如,控制器115可以包含处理器117(处理装置),所述处理器经配置以执行存储在本地存储器119中的指令以执行本文中所描述的操作。在一些实施例中,功率损耗保护子系统113为主机系统110、应用程序或操作系统的一部分。
功率损耗保护子系统113基于对存储器组件112-1到112-N执行的一或多个等待时间测试,处置将存储器组件的部分分配到易失性和非易失性存储器。功率损耗保护子系统113包含一或多个辅助组件(或与其通信),以对存储器组件112-1到112-N执行等待时间测试,以便确定存储器组件的性能(例如,tPROG速度),并基于其对应性能对存储器组件112-1到112-N进行排名。基于所述排名,功率损耗保护子系统113识别存储器组件112-1到112-N的一部分(例如,存储器组件112-1到112-N中最快的存储器组件),并将最快部分分配到非易失性存储器。下面描述关于功率损耗保护子系统113的操作的更多细节。
图2为根据本发明的一些实施例的用以分配存储器子系统的部分用于异步功率损耗保护的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑,微码,设备的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的功率损耗保护子系统113执行。尽管以特定的顺序或次序显示,但除非另有说明,否则可以修改过程的次序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同次序执行,且某些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程也是可能的。
在操作205处,功率损耗保护子系统113将存储器组件112-1到112-N的部分分配到非易失性存储器,而存储器组件112-1到112-N的另一部分仍分配到易失性高速缓冲存储器。关于图3论述关于存储器组件112-1到112-N的部分的分配的更多细节。
例如,在一些实施例中,可以将由功率损耗保护子系统113分配到非易失性存储器的存储器组件112-1到112-N的部分分配到NAND快闪存储器,或更具体来说,分配到SLCNAND快闪存储器。虽然SLC NAND快闪存储器与其它选项(例如,多级单元)相比可能会有一些折衷,但SLC NAND快闪存储器具有准确性、可靠性以及最重要的是速度方面的优势。
在操作210处,控制器115接收命令(例如,从主机系统120),且将命令转换为操作或指令。所述操作或指令致使存储器子系统110将存储器组件112-1到112-N的部分内的数据存储到易失性高速缓冲存储器。
在操作215处,功率损耗保护子系统113检测到触发事件。例如,触发事件可以包括到存储器子系统110或到与存储器子系统110通信的装置的异步功率损耗。
响应于功率损耗保护子系统113检测到触发事件,在操作220处,功率损耗保护子系统113致使存储器子系统110存取写入到分配到易失性高速缓冲存储器的存储器组件112-1到112-N的部分的数据,且在操作225处,致使存储器子系统110将数据写入到分配到非易失性存储器,且更具体来说SLC NAND存储器的存储器组件112-1到112-N的部分。
因此,通过将存储器组件的部分分配到“最高性能”SLC NAND存储器,可以减少将数据从易失性存储器移动到非易失性存储器所需要的时间量(以及同样地电流)。
图3为根据本发明的一些实施例的用以分配存储器子系统的部分用于异步功率损耗保护的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑,微码,设备的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的功率损耗保护子系统113执行。尽管以特定的顺序或次序显示,但除非另有说明,否则可以修改过程的次序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同次序执行,且某些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程也是可能的。
在操作305处,功率损耗保护子系统113对存储器组件112-1到112-N执行等待时间测试。在一些实施例中,存储器组件112-1到112-N包括一组快闪存储器块,且由功率损耗保护子系统113执行的程序时间测试包含确定编程等待时间(tPROG)、块擦除等待时间(tBERS)或一组快闪存储器块中每一快闪存储器块的读取等待时间(tR)。通过对存储器组件112-1到112-N执行程序时间测试,功率损耗保护子系统113确定每一存储器组件的对应性能,以便从存储器组件112-1到112-N识别“最高性能”存储器组件。
在操作310处,功率损耗保护子系统113基于其关于程序时间测试的对应性能对存储器组件112-1到112-N进行排名,使得排名最高存储器组件具有最低的读取或写入速度(即,tPROG、tBERS或tR),因此为最快的。通过如此做,在操作315处,功率损耗保护组件从存储器组件112-1到112-N中识别最高性能的部分。例如,功率损耗保护组件可以从存储器组件112-1到112-N中识别最快10%或最快吉字节存储器组件。
在操作320处,功率损耗保护子系统113将基于排名所识别的存储器组件112-1到112-N的部分分配到非易失性存储器。在一些实施例中,非易失性存储器可以包含NAND快闪存储器或SLC NAND快闪存储器。
图4为根据本发明的一些实施例的用以分配存储器子系统的部分用于异步功率损耗保护的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑,微码,设备的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的功率损耗保护子系统113执行。尽管以特定的顺序或次序显示,但除非另有说明,否则可以修改过程的次序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同次序执行,且某些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程也是可能的。
如在图3的方法300中,在操作405处,功率损耗保护子系统113基于对应排名识别存储器组件112-1到112-N子组。例如,功率损耗保护子系统113可以从存储器组件112-1到112-N中识别排名前列10%或其它数量的存储器组件。
在操作410处,将排名前列的存储器组件的第一部分分配到非易失性存储器。例如,在选择排名前列吉字节的存储器组件112-1到112-N的实施例中,功率损耗保护组件将所述吉字节的第一部分分配到非易失性存储器(例如,400兆字节)。
在操作415处,保留存储器组件112-1到112-N子组的其余部分。例如,在参考操作410所论述的实例实施例中,剩余的600兆字节由功率损耗保护子系统113放置为备用。
在操作420处,功率损耗保护子系统113对存储器组件112-1到112-N的第一部分执行等待时间测试。在一些实施例中,可以响应于触发事件(例如,给装置加电)或响应于从主机系统120接收的显式或隐式命令以预定间隔(例如,每2周)对存储器组件112-1到112-N执行程序时间测试。
在操作425处,基于程序时间测试,功率损耗保护子系统113确定存储器组件112-1到112-N的第一部分的性能超出最小阈值。例如,在一些实施例中,最小阈值定义存储器组件112-1到112-N中分配到非易失性存储器的存储器组件所需要的最小性能。
响应于确定存储器组件112-1到112-N的第一部分的性能下降低于最小阈值,功率损耗保护子系统113将第二部分从备用存储器分配或映射到非易失性存储器,以进行异步功率损耗保护。然后将下降低于性能的最小阈值的第一部分取消映射,然后将其停用或重新分配到不同功能。通过如此做,功率损耗保护子系统113确保在系统的整个使用寿命中,将最快和最可靠的存储器组件用于异步功率损耗保护。
图5说明计算机系统500的实例性机器,在所述计算机系统内可执行用于致使机器执行本文中所论述的方法中的任何一或多个的指令集。在一些实施例中,计算机系统500可对应于主机系统(例如,图1的主机系统120),其包含耦合到,或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的功率损耗子系统113的操作)。在替代实施例中,所述机器可连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份运行,作为对等(或分布式)网络环境中的对等机器运行,或作为云计算基础设施或环境中的服务器或客户端机器运行。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、服务器、网络路由器、交换机或网桥,或能够执行规定由所述机器进行的动作的指令集(按顺序或其它方式)的任何机器。此外,虽然说明单个机器,但术语“机器”还应被视为包含单独或联合执行一(或多个)指令集以执行本文所论述的方法中的任何一或多种的任何机器集合。
实例计算机系统500包含经由总线530彼此通信的处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)例如同步DRAM(SDRAM)或Rambus公司DRAM(RDRAM)等,静态存储器506(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统518。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元,等等。更具体地,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集组合的处理器。处理装置502还可为一或多个专用处理装置,例如ASIC、FPGA、数字信号处理器(DSP)、网络处理器,等等。处理装置502经配置以执行用于执行本文中所论述的操作和步骤的指令526。计算机系统500可进一步包含网络接口装置508以经由网络520进行通信。
数据存储系统518可包含机器可读存储媒体524(也被称作为计算机可读媒体),其上存储体现本文中所描述的方法或功能中的任何一或多者的一或多个指令526或软件。指令526还可在计算机系统500执行所述指令期间完全或至少部分地驻留在主存储器504内和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可对应于图1的存储器子系统110。
在一个实施例中,指令526包含用以实施与存储器分配系统(例如,图1的功率损耗保护子系统113)相对应的功能性的指令。虽然机器可读存储媒体524在实例实施例中被展示为单个媒体,但是术语“机器可读存储媒体”应被视为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被视为包含能够存储或编码指令集以供机器执行且使机器执行本发明的方法的任何一或多者的任何媒体。因此,术语“机器可读存储媒体”应被视为包含但不限于固态存储器、光学媒体和磁媒体。
前面的详细描述的一些部分已在计算机存储器内的算法和数据位的操作的符号表示的形式来呈现。这些算法描述和表示为由所属数据处理领域的技术人员用于以向所属领域的其它技术人员传达其工作的本质的方式。算法此处且通常被认为导致所要结果的自洽操作序列。操作为需要物理操纵物理量的操作。通常,但非必需地,这些数量可采取能够存储,组合,比较或以其它方式操纵的电或磁信号的形式。将这些信号称作位、值、元素、符号、字符、项、数字等有时已证明是便利的(主要出于共用的原因)。
然而,应牢记,所有这些和相似术语应与适当物理量相关联且仅为应用于这些量的便利标签。本发明可是指计算机系统或类似电子计算装置的动作和过程,其将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
本发明还涉及用于执行本文中操作的设备。此设备可为特定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘,包含软盘、光盘、CD-ROM和磁光盘,只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡,或适用于存储电子指令的任何类型的媒体,每一者都耦合到计算机系统总线。
本文中所呈现的算法和显示并不固有地涉及任何特定的计算机或其它设备。根据本文中的教示,各种通用系统可与程序一起使用,或可证明构造更专用的装置以执行所述方法为方便的。各种这些系统的结构将如下面描述中所示。另外,不参考任何特定编程语言描述本发明。应理解,可使用各种编程语言来实施如本文所描述的本发明的教示。
本发明可经提供作为计算机程序产品或软件,其可包含机器可读媒体,具有存储于其上的指令,所述指令可用于对计算机系统(或其它电子装置)进行编程以根据本发明执行处理。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如ROM、RAM、磁性磁盘存储媒体、光存储媒体、快闪存储器组件,等等。
在上述说明书中,本发明的实施例已经参考其特定实例性实施例描述。显而易见的是,在不脱离所附权利要求书中所阐明的本发明的实施例的更广泛的范围的情况下,可对其进行各种修改。因此,说明书和图式应视为说明性而非限制性。
实例
实例1为一种系统,其包括:多个存储器组件;及处理装置,其以操作方式耦合到所述多个存储器组件,以:将所述多个存储器组件的一部分分配到非易失性存储器,所述存储器组件包含易失性高速缓冲存储器;对所述易失性高速缓冲存储器执行数据的写入命令;在与所述多个存储器组件相关联的装置处检测触发事件;响应于所述在所述装置处检测到所述触发事件,检索写入到所述易失性高速缓冲存储器的所述数据;及将所述数据写入到分配到所述非易失性高速缓冲存储器的所述多个存储器组件的所述部分。
在实例2中,实例1的标的物,其中所述触发事件包含对所述多个存储器组件中的一或多个的异步功率损耗。
在实例3中,实例1和2中任何一或多个的标的物,其中所述多个存储器组件任选地包括一组快闪存储器块,所述多个存储器组件中的所述部分包括所述组快闪存储器块的一部分,且所述将所述多个存储器组件的所述部分分配到所述非易失性存储器包含对所述组快闪存储器块执行等待时间测试;基于所述等待时间测试对所述组快闪存储器块进行排名;基于所述排名识别所述组快闪存储器块的所述部分;及响应于所述基于所述排名识别所述组快闪存储器块的所述部分而将所述组快闪存储器块的所述部分分配到所述非易失性存储器。
在实例4中,实例1到3中任何一或多个的标的物,其中所述基于所述等待时间测试对所述组快闪存储器块进行排名包含:从所述组快闪存储器块中确定每一快闪存储器块的tPROG速度;及基于每一快闪存储器块的所述tPROG速度对所述组快闪存储器块进行排名。
在实例5中,实例1到3中任何一或多个的标的物,其中所述组快闪存储器块的所述部分至少包含第一块和第二块,且所述将所述组快闪存储器块的所述部分分配到所述非易失性存储器包含:将所述第一块在逻辑上映射到所述第二块。
在实例6中,实例1到3中任何一或多个的标的物,其中所述对所述组快闪存储器块执行所述等待时间测试任选地包含:致使所述装置对所述组快闪存储器块执行所述等待时间测试。
在实例7中,实例1到3中任何一或多个的标的物,其中所述组快闪存储器块的所述部分为第一部分,且所述基于所述排名识别所述组快闪存储器块的所述部分包含:基于所述排名识别所述组快闪存储器块的子集,所述组快闪存储器块的所述子集至少包括所述第一部分和第二部分;将所述组快闪存储器块的所述第一部分分配到所述非易失性存储器;保留所述组快闪存储器块的所述第二部分;对所述组快闪存储器块的所述第一部分执行等待时间测试;基于所述等待时间测试确定所述组快闪存储器块的所述第一部分的性能超出最小值;及响应于所述组快闪存储器块的所述第一部分的所述性能超出所述最小值,将所述组快闪存储器块的所述第二部分分配到所述非易失性存储器。
在实例8中,在实例1的标的物中,其中所述非易失性存储器包括NAND快闪存储器,所述NAND快闪存储器包含单级单元NAND快闪存储器。
实例9为一种方法,其包括将装置的存储器组件的一部分分配到非易失性存储器,所述存储器组件包含易失性高速缓冲存储器;对所述易失性高速缓冲存储器执行数据的写入命令;在所述装置处检测触发事件;响应于所述在所述装置处检测到所述触发事件,检索写入到所述易失性高速缓冲存储器的所述数据;及将所述数据写入到经分配到所述非易失性存储器的所述装置的所述存储器组件的所述部分。
在实例10中,实例9的标的物,其中所述触发事件包含所述装置处的异步功率损耗。
在实例11中,实例9的标的物,其中所述存储器组件包括一组快闪存储器块,所述存储器组件的所述部分包括所述组快闪存储器块的一部分,且所述将所述存储器组件的所述部分分配到所述非易失性存储器包含:对所述存储器组件的所述快闪存储器块执行等待时间测试;基于所述等待时间测试对所述组快闪存储器块进行排名;基于所述排名识别所述组快闪存储器块的所述部分;及响应于所述基于所述排名识别所述组快闪存储器块的所述部分而将所述存储器组件的所述组快闪存储器块的所述部分分配到所述非易失性存储器。
在实例12中,实例11的标的物,其中所述基于所述等待时间测试对所述组快闪存储器块进行排名包含:从所述组快闪存储器块中确定每一快闪存储器块的tPROG速度;及基于每一快闪存储器块的所述tPROG速度对所述组快闪存储器块进行排名。
在实例13中,实例11的标的物,其中所述组快闪存储器块的所述部分至少包含第一块和第二块,且所述将所述组快闪存储器块的所述部分分配到所述非易失性存储器包含:将所述第一块在逻辑上映射到所述第二块。
在实例14中,实例11的标的物,其中所述对所述存储器组件的所述组快闪存储器块执行所述等待时间测试包含:致使所述装置对所述存储器组件的所述组快闪存储器块执行所述等待时间测试。
在实例15中,实例11的标的物,其中所述组快闪存储器块的所述部分为第一部分,且所述基于所述排名识别所述组快闪存储器块的所述部分包含:基于所述排名识别所述组快闪存储器块的子集,所述组快闪存储器块的所述子集至少包括所述第一部分和第二部分;将所述组快闪存储器块的所述第一部分分配到所述非易失性存储器;保留所述组快闪存储器块的所述第二部分;对所述组快闪存储器块的所述第一部分执行等待时间测试;基于所述等待时间测试确定所述组快闪存储器块的所述第一部分的性能超出最小值;及响应于所述组快闪存储器块的所述第一部分的所述性能超出所述最小值,将所述组快闪存储器块的所述第二部分分配到所述非易失性存储器。
在实例16中,在实例9的标的物中,其中所述非易失性存储器包括NAND快闪存储器,所述NAND快闪存储器包含单级单元NAND快闪存储器。
实例17,一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时致使所述处理装置执行包括以下的操作:将装置的存储器组件的一部分分配到非易失性存储器,所述存储器组件包含易失性高速缓冲存储器;对所述易失性高速缓冲存储器执行数据的写入命令;在所述装置处检测触发事件;响应于所述在所述装置处检测到所述触发事件,检索写入到所述易失性高速缓冲存储器的所述数据;及将所述数据写入到经分配到所述非易失性存储器的所述装置的所述存储器组件的所述部分。
在实例18中,实例17的标的物,其中所述触发事件包含所述装置处的异步功率损耗。
在实例19中,实例17的标的物,其中所述存储器组件包括一组快闪存储器块,所述存储器组件的所述部分包括所述组快闪存储器块的一部分,且所述将所述存储器组件的所述部分分配到所述非易失性存储器包含:对所述存储器组件的所述快闪存储器块执行等待时间测试;基于所述等待时间测试对所述组快闪存储器块进行排名;基于所述排名识别所述组快闪存储器块的所述部分;及响应于所述基于所述排名识别所述组快闪存储器块的所述部分而将所述存储器组件的所述组快闪存储器块的所述部分分配到所述非易失性存储器。
在实例20中,实例19的标的物,其中所述基于所述等待时间测试对所述组快闪存储器块进行排名包含:从所述组快闪存储器块中确定每一快闪存储器块的tPROG速度;及基于每一快闪存储器块的所述tPROG速度对所述组快闪存储器块进行排名。
Claims (20)
1.一种系统,其包括:
多个存储器组件,其包括多个非易失性存储器组件和易失性高速缓冲存储器;及
处理装置,其与所述多个存储器组件以操作方式耦合,以执行包括以下的操作:
对所述多个存储器组件执行性能测试;
基于所述性能测试识别所述多个存储器组件的一部分;
将所述多个存储器组件的所述部分分配到所述多个非易失性存储器组件中的一或多个;
对所述易失性高速缓冲存储器执行数据的写入命令;
在与所述多个存储器组件相关联的装置处检测触发事件,所述触发事件包含所述系统的异步功率损耗;
响应于所述在所述装置处检测到所述触发事件而从所述易失性高速缓冲存储器检索所述数据;及
将所述数据写入到经分配到所述多个非易失性存储器组件中的所述一或多个的所述多个存储器组件的所述部分。
2.根据权利要求1所述的系统,其中所述多个存储器组件包括一组快闪存储器块,所述多个存储器组件的所述部分包括所述组快闪存储器块的一部分,且将所述多个存储器组件的所述部分分配到所述非易失性存储器进一步包括:
基于所述性能测试对所述组快闪存储器块进行排名;
基于所述排名识别所述组快闪存储器块的所述部分;及
响应于所述基于所述排名识别所述组快闪存储器块的所述部分,将所述组快闪存储器块的所述部分分配到包括所述多个非易失性存储器组件的子集的功率损耗保护组件。
3.根据权利要求2所述的系统,其中所述基于所述性能测试对所述组快闪存储器块进行排名包括:
确定所述组快闪存储器块中的每一快闪存储器块的写入时间;及
基于所述组快闪存储器块中每一快闪存储器块的所述写入时间对所述组快闪存储器块进行排名。
4.根据权利要求2所述的系统,其中所述组快闪存储器块的所述部分至少包含第一块和第二块,且所述将所述组快闪存储器块的所述部分分配到所述多个非易失性存储器组件的所述子集包括:
将所述第一块在逻辑上映射到所述第二块。
5.根据权利要求2所述的系统,其中对所述组快闪存储器块执行所述性能测试包括:
致使所述装置对所述组快闪存储器块执行所述性能测试。
6.根据权利要求2所述的系统,其中所述性能测试为第一性能测试,所述组快闪存储器块的所述部分为第一部分,且基于所述排名识别所述组快闪存储器块的所述部分包括:
基于所述排名识别所述组快闪存储器块的子集,所述组快闪存储器块的所述子集至少包括所述第一部分及第二部分;
将所述组快闪存储器块的所述第一部分分配到所述多个非易失性存储组件;
保留所述组快闪存储器块的所述第二部分;
对所述组快闪存储器块的所述第一部分执行第二性能测试;
基于所述第二性能测试,确定所述组快闪存储器块的所述第一部分的性能超出最小值;及
响应于所述组快闪存储器块的所述第一部分的所述性能超出所述最小值,将所述组快闪存储器块的所述第二部分分配到所述非易失性存储器。
7.根据权利要求1所述的系统,其中所述多个非易失性存储器组件包括NAND快闪存储器,所述NAND快闪存储器存包含单级单元NAND快闪存储器。
8.一种方法,其包括:
对所述多个存储器组件执行性能测试;
基于所述性能测试识别所述多个存储器组件的一部分;
将所述多个存储器组件的所述部分分配到所述多个非易失性存储器组件中的一或多个;
对所述易失性高速缓冲存储器执行数据的写入命令;
在与所述多个存储器组件相关联的装置处检测触发事件,所述触发事件包含所述系统的异步功率损耗;
响应于所述在所述装置处检测到所述触发事件而从所述易失性高速缓冲存储器检索所述数据;及
将所述数据写入到经分配到所述多个非易失性存储器组件中的所述一或多个的所述多个存储器组件的所述部分。
9.根据权利要求8所述的方法,其中所述存储器组件包括一组快闪存储器块,所述存储器组件的所述部分包括所述组快闪存储器块的一部分,且所述将所述存储器组件的所述部分分配到所述非易失性存储器包括:
基于所述性能测试对所述组快闪存储器块进行排名;
基于所述排名识别所述组快闪存储器块的所述部分;及
响应于所述基于所述排名识别所述组快闪存储器块的所述部分而将所述存储组件的所述组快闪存储器块的所述部分分配到所述非易失性存储器。
10.根据权利要求9所述的方法,其中所述基于所述性能测试对所述组快闪存储器块进行排名包括:
确定来自所述组快闪存储器块中的每一快闪存储器块的写入时间;及
根据每一快闪存储器块的所述写入时间对所述组快闪存储器块进行排名。
11.根据权利要求9所述的方法,其中所述组快闪存储器块的所述部分至少包含第一块和第二块,且所述将所述组快闪存储器块的所述部分分配到所述非易失性存储器包括:
将所述第一块在逻辑上映射到所述第二块。
12.根据权利要求9所述的方法,其中所述对所述存储器组件的所述组快闪存储器块执行所述性能测试包括:
致使所述装置对所述存储器组件的所述组快闪存储器块执行所述性能测试。
13.根据权利要求9所述的方法,其中所述性能测试为第一性能测试,所述组快闪存储器块的所述部分为第一部分,且基于所述排名识别所述组快闪存储器块的所述部分包括:
基于所述排名识别所述组快闪存储器块的子集,所述组快闪存储器块的所述子集至少包括所述第一部分及第二部分;
将所述组快闪存储器块的所述第一部分分配到所述非易失性存储器;
保留所述组快闪存储器块的所述第二部分;
对所述组快闪存储器块的所述第一部分执行第二性能测试;
基于所述第二程序时间测试,确定所述组快闪存储器块的所述第一部分的性能超出最小值;及
响应于所述组快闪存储器块的所述第一部分的所述性能超出所述最小值,将所述组快闪存储器块的所述第二部分分配到所述非易失性存储器。
14.根据权利要求8所述的方法,其中所述非易失性存储器包括NAND快闪存储器,所述NAND快闪存储器存包含单级单元NAND快闪存储器。
15.一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时致使所述处理装置:
对所述多个存储器组件执行性能测试;
基于所述性能测试识别所述多个存储器组件的一部分;
将所述多个存储器组件的所述部分分配到所述多个非易失性存储器组件中的一或多个;
对所述易失性高速缓冲存储器执行数据的写入命令;
在与所述多个存储器组件相关联的装置处检测触发事件,所述触发事件包含所述系统的异步功率损耗;
响应于所述在所述装置处检测到所述触发事件而从所述易失性高速缓冲存储器检索所述数据;及
将所述数据写入到经分配到所述多个非易失性存储器组件中的所述一或多个的所述多个存储器组件的所述部分。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述存储器组件包括一组快闪存储器块,所述存储器组件的所述部分包括所述组快闪存储器块的一部分,且所述将所述存储器组件的所述部分分配到所述非易失性存储器包括:
基于所述性能测试对所述组快闪存储器块进行排名;
基于所述排名识别所述组快闪存储器块的所述部分;及
响应于所述基于所述排名识别所述组快闪存储器块的所述部分而将所述存储组件的所述组快闪存储器块的所述部分分配到所述非易失性存储器。
17.根据权利要求16所述的非暂时性计算机可读存储媒体,其中所述基于等待时间测试对所述组快闪存储器块进行排名包括:
确定来自所述组快闪存储器块中的每一快闪存储器块的写入时间;及
根据每一快闪存储器块的所述写入时间对所述组快闪存储器块进行排名。
18.根据权利要求16所述的非暂时性计算机可读存储媒体,其中所述组快闪存储器块的所述部分至少包含第一块和第二块,且所述将所述组快闪存储器块的所述部分分配到所述非易失性存储器包括:
将所述第一块在逻辑上映射到所述第二块。
19.根据权利要求16所述的非暂时性计算机可读存储媒体,其中所述对所述存储器组件的所述组快闪存储器块执行所述性能测试包括:
致使所述装置对所述存储器组件的所述组快闪存储器块执行所述性能测试。
20.根据权利要求16所述的非暂时性计算机可读存储媒体,其中所述性能测试为第一程序时间测试,所述组快闪存储器块的所述部分为第一部分,且基于所述排名识别所述组快闪存储器块的所述部分包括:
基于所述排名识别所述组快闪存储器块的子集,所述组快闪存储器块的所述子集至少包括所述第一部分及第二部分;
将所述组快闪存储器块的所述第一部分分配到所述非易失性存储器;
保留所述组快闪存储器块的所述第二部分;
对所述组快闪存储器块的所述第一部分执行第二性能测试;
基于所述第二性能测试,确定所述组快闪存储器块的所述第一部分的性能超出最小值;及
响应于所述组快闪存储器块的所述第一部分的所述性能超出所述最小值,将所述组快闪存储器块的所述第二部分分配到所述非易失性存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/226,282 US10725912B2 (en) | 2018-12-19 | 2018-12-19 | Power loss protection in memory sub-systems |
US16/226,282 | 2018-12-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111338566A true CN111338566A (zh) | 2020-06-26 |
Family
ID=71098503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911319242.6A Withdrawn CN111338566A (zh) | 2018-12-19 | 2019-12-19 | 存储器子系统中的功率损耗保护 |
Country Status (2)
Country | Link |
---|---|
US (3) | US10725912B2 (zh) |
CN (1) | CN111338566A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11301381B2 (en) | 2018-12-19 | 2022-04-12 | Micron Technology, Inc. | Power loss protection in memory sub-systems |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11500555B2 (en) * | 2020-09-04 | 2022-11-15 | Micron Technology, Inc. | Volatile memory to non-volatile memory interface for power management |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102597910A (zh) * | 2009-09-09 | 2012-07-18 | 弗森-艾奥公司 | 存储设备中用于功率减小管理的装置、系统及方法 |
CN105022587A (zh) * | 2014-04-24 | 2015-11-04 | 中国移动通信集团设计院有限公司 | 一种设计磁盘阵列的方法和存储装置 |
US20180032390A1 (en) * | 2016-07-28 | 2018-02-01 | Dell Products L.P. | Triggering power loss protection on solid-state storage devices |
CN108376120A (zh) * | 2017-01-31 | 2018-08-07 | 桑迪士克科技有限责任公司 | 用于管理在非易失性存储器系统中写入块的系统和方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8041895B2 (en) * | 2008-01-28 | 2011-10-18 | Spansion Llc | Translation table coherency mecahanism using cache way and set index write buffers |
US8169839B2 (en) * | 2009-02-11 | 2012-05-01 | Stec, Inc. | Flash backed DRAM module including logic for isolating the DRAM |
US8312258B2 (en) * | 2010-07-22 | 2012-11-13 | Intel Corporation | Providing platform independent memory logic |
US20140129759A1 (en) * | 2012-11-06 | 2014-05-08 | Dell Products L.P. | Low power write journaling storage system |
WO2014110360A1 (en) * | 2013-01-10 | 2014-07-17 | Pegmap, LLC. | Methods, systems, and computer program products for compiling experience ratings for service providers |
US9583794B2 (en) * | 2013-08-26 | 2017-02-28 | Dell International L.L.C. | Scalable highly available modular battery system |
US20150317248A1 (en) * | 2014-05-01 | 2015-11-05 | International Business Machines Corporation | Sizing a write cache buffer based on emergency data save parameters |
US10331517B2 (en) * | 2016-08-26 | 2019-06-25 | Qualcomm Incorporated | Link error correction in memory system |
US11836358B2 (en) * | 2018-04-16 | 2023-12-05 | Hewlett-Packard Development Company, L.P. | Data storage device power provisions |
US10885004B2 (en) * | 2018-06-19 | 2021-01-05 | Intel Corporation | Method and apparatus to manage flush of an atomic group of writes to persistent memory in response to an unexpected power loss |
US10564872B2 (en) * | 2018-06-29 | 2020-02-18 | Western Digital Technologies, Inc. | System and method for dynamic allocation to a host of memory device controller memory resources |
US20200042066A1 (en) * | 2018-08-02 | 2020-02-06 | Alibaba Group Holding Limited | System and method for facilitating dram data cache dumping and rack-scale battery backup |
US10725930B2 (en) * | 2018-08-27 | 2020-07-28 | Micron Technology, Inc. | Logical to physical memory address mapping tree |
US10725912B2 (en) | 2018-12-19 | 2020-07-28 | Micron Technology, Inc. | Power loss protection in memory sub-systems |
US10938730B2 (en) * | 2019-01-29 | 2021-03-02 | EMC IP Holding Company LLC | Data transmission techniques between systems having different communication speeds |
-
2018
- 2018-12-19 US US16/226,282 patent/US10725912B2/en active Active
-
2019
- 2019-12-19 CN CN201911319242.6A patent/CN111338566A/zh not_active Withdrawn
-
2020
- 2020-06-25 US US16/912,318 patent/US11301381B2/en active Active
-
2022
- 2022-03-23 US US17/702,305 patent/US20220214970A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102597910A (zh) * | 2009-09-09 | 2012-07-18 | 弗森-艾奥公司 | 存储设备中用于功率减小管理的装置、系统及方法 |
CN105022587A (zh) * | 2014-04-24 | 2015-11-04 | 中国移动通信集团设计院有限公司 | 一种设计磁盘阵列的方法和存储装置 |
US20180032390A1 (en) * | 2016-07-28 | 2018-02-01 | Dell Products L.P. | Triggering power loss protection on solid-state storage devices |
CN108376120A (zh) * | 2017-01-31 | 2018-08-07 | 桑迪士克科技有限责任公司 | 用于管理在非易失性存储器系统中写入块的系统和方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11301381B2 (en) | 2018-12-19 | 2022-04-12 | Micron Technology, Inc. | Power loss protection in memory sub-systems |
Also Published As
Publication number | Publication date |
---|---|
US10725912B2 (en) | 2020-07-28 |
US20200327056A1 (en) | 2020-10-15 |
US20200201761A1 (en) | 2020-06-25 |
US20220214970A1 (en) | 2022-07-07 |
US11301381B2 (en) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11677259B2 (en) | Power backup architecture using capacitor | |
US11762567B2 (en) | Runtime memory allocation to avoid and delay defect effects in memory sub-systems | |
US11914474B2 (en) | Efficient management of failed memory blocks in memory sub-systems | |
US11762767B2 (en) | Storing highly read data at low impact read disturb pages of a memory device | |
US20220214970A1 (en) | Power loss protection in memory sub-systems | |
US11733892B2 (en) | Partial superblock memory management | |
US11836392B2 (en) | Relocating data to low latency memory | |
CN112136178A (zh) | 非易失性双列直插式存储器模块中的交叉点阵列存储器 | |
US20210055990A1 (en) | Performing error control operation on memory component for garbage collection | |
US11625298B2 (en) | Memory block defect detection and management | |
US20210042236A1 (en) | Wear leveling across block pools | |
US11586379B2 (en) | Memory system and method of operating the same | |
US10817435B1 (en) | Queue-based wear leveling of memory components | |
CN114981894A (zh) | 电容器健康检查 | |
US11853201B2 (en) | Selective single-level memory cell operation | |
US11635900B2 (en) | Memory sub-system signature generation | |
US20240134788A1 (en) | Selective single-level memory cell operation | |
US20220319610A1 (en) | Memory system and method of operating the same | |
WO2022027578A1 (en) | Memory overlay using host memory buffer | |
CN113253917A (zh) | 用于存储器子系统的媒体管理的多状态炼狱 | |
CN111143255A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200626 |