CN115527585A - 用于存储器管理的超额配给组件 - Google Patents
用于存储器管理的超额配给组件 Download PDFInfo
- Publication number
- CN115527585A CN115527585A CN202210684084.XA CN202210684084A CN115527585A CN 115527585 A CN115527585 A CN 115527585A CN 202210684084 A CN202210684084 A CN 202210684084A CN 115527585 A CN115527585 A CN 115527585A
- Authority
- CN
- China
- Prior art keywords
- memory
- write burst
- memory cells
- write
- blocks
- 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
- 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/061—Improving I/O performance
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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
-
- 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
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7206—Reconfiguration of flash memory system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及用于存储器管理的超额配给组件。一种方法包含:由超额配给组件指定存储器阵列的第一组存储器单元用于写入突发模式操作;指定所述存储器阵列的第二组存储器单元用于非写入突发模式操作;识别执行特定非写入突发操作的请求超过可供所述第二组存储器单元用于所述非写入突发模式写入操作的存储器单元的数量;由所述超额配给组件响应于所述请求而将所述第一组存储器单元的一部分指定为静态单电平单元SLC块以用于所述非写入突发模式写入操作;及将与所述特定非写入突发写入操作相关联的数据写入到所述静态SLC块。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更特定来说,涉及用于存储器管理的超额配给组件。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。举例来说,所述存储器装置可为非易失性存储器装置及易失性存储器装置。一般来说,主机系统可利用存储器子系统来将数据存储于存储器装置处及从存储器装置检索数据。
发明内容
一方面,本公开提供一种用于超额配给存储器管理的方法,其包括:由超额配给组件指定存储器阵列的第一组存储器单元用于写入突发模式操作;指定所述存储器阵列的第二组存储器单元用于非写入突发模式操作;识别执行特定非写入突发操作的请求超过可供所述第二组存储器单元用于所述非写入突发模式写入操作的存储器单元的数量;由所述超额配给组件响应于所述请求而将所述第一组存储器单元的一部分指定为静态单电平单元(SLC)块以用于所述非写入突发模式写入操作;及将与所述特定非写入突发写入操作相关联的数据写入到所述静态SLC块。
另一方面,本公开提供一种用于超额配给存储器管理的设备,其包括:存储器阵列;及超额配给组件,其耦合到所述存储器阵列且经配置以:指定所述存储器阵列的一组存储器单元用于超额配给;将所述组存储器单元的第一部分指定为空闲写入突发块,其中所述第一部分包含动态单电平单元(SLC)块及静态SLC块;将所述组存储器单元的第二部分指定为空闲非写入突发块,其中所述第二部分包含动态SLC块;将静态SLC块从所述第一部分指定到将用作空闲非写入突发块的所述第二部分;使用所述经指定静态SLC块执行非写入突发操作;及当所述非写入突发写入操作超过所述静态SLC块时,开放所述存储器阵列的第三部分作为空闲非写入突发块。
又一方面,本公开提供一种用于超额配给存储器管理的系统,其包括:多个存储器组件,其经布置以形成交错NAND存储器单元的可堆叠交叉网格阵列;及处理装置,其耦合到所述多个存储器组件,所述处理装置用以执行包括以下各者的操作:指定所述NAND存储器单元的一组存储器单元用于超额配给;将所述组存储器单元的第一部分指定为空闲写入突发块,其中所述第一部分包含静态单电平单元(SLC)块;将所述组存储器单元的第二部分识别为具有从写入突发写入操作存储的数据的数据写入突发块;将所述组存储器单元的第三部分指定为空闲非写入突发块,其中所述第三部分包含动态SLC块;将所述组存储器单元的第四部分识别为具有从非写入突发写入操作存储的数据的数据非写入突发块;将静态SLC块从所述第一部分指定到将用作空闲非写入突发块的所述第三部分;使用所述经指定静态SLC块执行非写入突发写入操作以存储与所述非写入突发写入操作相关联的数据;当执行所述非写入突发写入操作时,将所述静态SLC块识别为所述第四部分的部分;及响应于涉及移除与所述非写入突发写入操作相关联的所述数据的媒体管理操作的执行而将所述静态SLC块指定为所述第一部分的部分。
附图说明
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2是根据本公开的一些实施例的对应于用于超额配给存储器管理的方法的流程图。
图3是根据本公开的一些实施例的对应于用于超额配给存储器管理的方法的流程图。
图4说明根据本公开的一些实施例的针对一组存储器单元的涉及超额配给存储器块的存储器管理的实例。
图5说明根据本公开的一些实施例的针对一组存储器单元的涉及超额配给存储器块的存储器管理的实例。
图6说明根据本公开的一些实施例的针对一组存储器单元的涉及超额配给存储器块的存储器管理的实例。
图7是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及存储器子系统中的超额配给存储器管理,特定来说涉及包含超额配给存储器管理组件的存储器子系统。存储器子系统可为存储系统、存储装置、存储器模块或其组合。存储器子系统的实例是存储系统,例如固态驱动器(SSD)。下面结合图1及别处来描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个组件的存储器子系统,所述组件例如存储数据的存储器装置。主机系统可提供待存储在存储器子系统处的数据,并且可请求待从存储器子系统检索的数据。
存储器装置可为非易失性存储器装置。非易失性存储器装置的一个实例是与非(NAND)存储器装置(也称作快闪技术)。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置是一或多个裸片的封装。每一裸片可由一或多个平面组成。平面可被分组成逻辑单元(LUN)。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面由一组物理块组成。每一块由一组页面组成。每一页面由一组存储器单元(“单元”)组成。单元是存储信息的电子电路。下文的块是指用于存储数据的存储装置的单位并且可包含一群组存储器单元、字线群组、字线或个别存储器单元。对于一些存储器装置,块(以下也称为“存储器块”)是可擦除的最小区域。页面不能够被个别地擦除,且仅能够擦除整个块。
存储器装置中的每一者可包含存储器单元的一或多个阵列。取决于单元类型,单元可存储一或多个二进制信息位,并具有与所存储的位的数目相关的各种逻辑状态。逻辑状态可由例如“0”及“1”的二进制值或此类值的组合表示。存在各种类型的单元,例如单电平单元(SLC)、多电平单元(MLC)、三电平单元(TLC)及四电平单元(QLC)。举例来说,SLC可存储一位信息并且具有两种逻辑状态。
一些NAND存储器装置采用浮动栅极架构,其中基于位线与字线之间的相对电压改变来控制存储器存取。NAND存储器装置的其它实例可采用可包含字线布局的使用的替换栅极架构,所述字线布局可允许基于用于构造字线的材料的性质来将对应于数据值的电荷俘获在存储器单元内。
在操作期间,存储器子系统可执行写入突发操作、读取突发操作及/或其它类型的突发操作。以类似方式,存储器子系统可执行非写入突发操作、非读取突发操作及/或其它类型的非突发操作。如本文所使用,“写入突发操作”通常是指通过少于写入数据的数量的一定数量的事务执行的写入操作。在一些实施例中,写入突发操作的特性可为大于平均写入命令数目的数量的写入命令被并行执行。举例来说,写入突发操作可能不会针对正被写入的每一条数据利用单独事务。在一些实例中,写入突发操作可包含写入仅指定高速缓存线的起始地址的高速缓存线。在写入突发操作的执行期间,存储器子系统可在持续时间相对于稳态性能状态(例如,正常操作模式)更短且特性是性能高于稳态性能状态的瞬时性能状态(例如,突发操作模式)下操作。相比之下,“非写入突发操作”可包含针对高速缓存线的每一数据执行事务的写入。举例来说,与可针对多个高速缓存线利用单个事务的写入突发操作相比,非写入突发操作可包含针对每一高速缓存线利用一事务。在一些实施例中,非写入突发操作包含当存储器子系统在稳态性能状态下操作时执行的操作。
在一些实施例中,主机可请求对单电平单元(SLC)块执行写入突发操作,直到写入突发缓冲器满为止。在这些实施例中,主机不可以请求对SLC块执行非写入突发操作。在一些实例中,可强制四电平单元(QLC)利用SLC或TLC来支持异步功率损失(APL)。如本文所使用,“异步功率损失”可指事先没有关机通知的功率损失。举例来说,异步功率损失可包含意外的功率损失及/或当存储器子系统无法响应于关机通知来执行最终操作时的功率损失。在一些实施例中,存储器子系统可包含指定用于用户数据的第一部分及指定用于超额配给的第二部分。
如本文所使用,“超额配给部分”及其变体通常是指存储器子系统的一部分可包含由存储器子系统控制器(例如,不是由主机)分配以用于在媒体管理操作期间使用的存储器单元,所述媒体管理操作例如废弃项目收集及/或损耗均衡操作。通过在存储器子系统的超额配给部分中保留特定数量的空闲存储器块,可执行涉及超额配给部分的写入操作,而无需等待未分配给超额配给部分的存储器块被擦除。与其中主机可存取存储器子系统的所有存储器块的方法相比,这可允许存储器子系统的改进效率。也就是说,超额配给部分可指用于超额配给操作的一定数量的存储器单元。在一些实例中,超额配给部分可包含指定为动态块的存储器单元及指定为静态块的存储器单元。如本文所使用,“静态存储器单元”或“静态块”通常是指一旦分配到大小就固定大小的存储器单元。如本文所使用,“动态存储器单元”或“动态块”通常是指可分配到多个不同大小并且一旦分配就重新分配到不同大小的存储器单元。在一些实施例中,静态存储器单元可比动态存储器单元具有相对更高的耐久性。举例来说,静态SLC可比动态SLC具有相对更高的耐久性。在此实例中,静态SLC的耐久性是动态SLC的10到50倍。然而,在一些实施例中,SLC块不可以用作QLC块且因此,使用静态SLC块可能会影响存储器子系统的超额配给及限制块的功能。
在一些实施例中,主机或主机装置可利用通用快闪存储(UFS)系统来增加存储器子系统的可靠性。如本文所使用,“通用快闪存储系统”通常是指可由存储器子系统利用的存储规范协议。在一些实例中,UFS系统可包含使用存储器子系统的SLC执行写入突发操作的指令。在一些实施例中,即使在100%逻辑饱和的情况下,存储器子系统也可将某个百分比(例如,0.25%等)的装置容量的分配或指定为写入突发。如本文所使用,术语“逻辑饱和”通常是指在特定时间正在使用或存储数据的一定数量或百分比的存储器资源。以此方式,静态SLC块及/或动态SLC块可能没有得到充分利用或被过度分配,这可降低总体系统性能。
本公开的方面通过在非写入突发空闲块池与写入突发空闲块池之间指定或分配静态及动态SLC块来解决以上及其它缺陷。如本文所使用,“空闲块池”可包含可被写入或当前未将数据写入到其的存储器单元。以此方式,空闲块池可由主机用于写入突发操作及/或非写入突发操作。在一些实施例中,可将存储器子系统的超额配给部分指定为多个部分。举例来说,存储器子系统的超额配给部分可包含写入突发空闲部分、非写入突发空闲部分、写入突发数据部分及/或非写入突发数据部分。通过在不同部分之间指定及重新指定存储器单元,静态及动态SLC可被更高效地利用并提高存储子系统的总体性能。
图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可包含处理器芯片组及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,SSD控制器)及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120例如使用存储器子系统110将数据写入存储器子系统110及从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、小型计算机系统接口(SCSI)、双倍数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据速率(DDR)的DIMM插槽接口)、开放式NAND快闪接口(ONFI)、双倍数据速率(DDR)、低功率双倍数据速率(LPDDR)或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。主机系统120可进一步利用NVM快速(NVMe)接口以在存储器子系统110通过PCIe接口与主机系统120耦合时存取组件(例如,存储器装置130)。所述物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由相同通信连接、多个单独通信连接及/或通信连接的组合来存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任一组合。易失性存储器装置(例如,存储器装置140)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器及就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格数据存取阵列基于体电阻的改变执行位存储。另外,与许多基于快闪的存储器相反,交叉点非易失性存储器可执行就地写入操作,其中可对非易失性存储器单元进行编程而无需事先擦除非易失性存储器单元。NAND型快闪存储器包含例如二维NAND(2D NAND)及三维NAND(3D NAND)。
存储器装置130、140中的每一者可包含存储器单元的一或多个阵列。一种类型的存储器单元(例如单电平单元(SLC))可每单元存储一个位。其它类型的存储器单元(例如多电平单元(MLC)、三电平单元(TLC)、四电平单元(QLC)及五电平单元(PLC))可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含存储器单元的一或多个阵列,所述存储器单元例如SLC、MLC、TLC、QLC或此任一组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可被分组为可指代用于存储数据的存储器装置的逻辑单元的页面。对于一些类型的存储器(例如,NAND),页面可经分组以形成块。
尽管描述例如非易失性存储器单元的三维交叉点阵列及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及/或存储器装置140的期望存取。存储器子系统控制器115可负责其它操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理块地址、物理媒体地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器装置130及/或存储器装置140,以及将与存储器装置130及/或存储器装置140相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含可从存储器子系统控制器115接收地址并解码所述地址以存取存储器装置130及/或存储器装置140的高速缓存或缓冲器(例如,DRAM)及地址电路系统(例如,行解码器及列解码器)。
在一些实施例中,存储器装置130包含本地媒体控制器135,其与存储器子系统控制器115结合操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管存储器装置,其是与同一存储器装置封装内的用于媒体管理的本地控制器(例如,本地控制器135)组合的原始存储器装置。被管理存储器装置的实例是被管理NAND(MNAND)装置。
存储器子系统110可包含超额配给存储器管理组件113。尽管在图1中未展示以避免混淆图式,但超额配给存储器管理组件113可包含各种电路系统以促进为写入突发操作及非写入突发操作指定存储器单元。在一些实施例中,超额配给存储器管理组件113可包含呈ASIC、FPGA、状态机及/或其它逻辑电路系统的形式的专用电路系统,其可允许超额配给存储器管理组件113编排及/或执行操作以选择性地执行存储器装置130及/或存储器装置140的媒体管理操作。
在一些实施例中,存储器子系统控制器115包含超额配给存储器管理组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的指令以用于执行本文描述的操作。在一些实施例中,超额配给存储器管理组件113是存储器子系统110、应用程序或操作系统的一部分。
在非限制性实例中,设备(例如,计算系统100)可包含超额配给存储器管理组件113。超额配给存储器管理组件113可驻留在存储器子系统110上。如本文所使用,术语“驻留在…上”是指物理上位于特定组件上的某物。举例来说,超额配给存储器管理组件113“驻留”在存储器子系统110上是指其中包括超额配给存储器管理组件113的硬件电路系统物理上位于存储器子系统110上的状况。术语“驻留在…上”可与本文的其它术语(例如“部署在…上”或“位于…上”)互换使用。
在一些实施例中,超额配给存储器管理组件113可经配置以指定存储器阵列的一部分用来存储用户数据,并且指定存储器阵列的不同部分用于超额配给。以此方式,可指定所述组存储器单元以对存储器阵列执行超额配给。在一些实施例中,超额配给存储器管理组件113可致使执行涉及所述组存储器单元的一或多个操作,所述操作可允许在不中断存储器阵列及/或存储器子系统的执行的情况下从存储器阵列的至少一个部分擦除数据。
在一些实施例中,超额配给存储器管理组件113可经配置以将所述组存储器单元的第一部分指定为空闲写入突发块。在这些实施例中,第一部分可包含动态单电平单元(SLC)块及静态SLC块。在一些实施例中,空闲写入突发块可为将由主机或主机系统用于写入突发操作的开放或未被占用的存储器单元。也就是说,驻留在存储器子系统上的电路系统可响应于从主机接收到的信令,从所述组存储器单元的第一部分选择存储器单元用于写入突发写入操作。在一些实例中,所述组存储器单元的第一部分可包含动态SLC块及静态SLC块两者。空闲动态SLC块及静态SLC块的数量可随着数据写入到所述组存储器单元的第一部分内的块及/或随着数据从指定为数据写入突发块的存储器单元擦除而改变。以此方式,可监测指定为所述组存储器单元的第一部分的空闲动态SLC块及空闲静态SLC块的数量。
在一些实施例中,超额配给存储器管理组件113可经配置以将所述组存储器单元的第二部分指定为空闲非写入突发块。在这些实施例中,第二部分可包含动态SLC块。空闲非写入突发块可为经指定为由主机用来执行非写入突发写入操作的存储器单元。也就是说,存储器子系统可响应于从主机接收到的信令,利用所述组存储器单元的第二部分来执行非写入突发写入操作。
在一些实施例中,所述组存储器单元的经指定第二部分可不包含任何空闲静态SLC块。如本文所描述,特定协议可能不要求将非写入突发块写入到静态SLC块且因此,用于空闲非写入突发块的所述组存储器单元的第二部分的原始指定可能不包含任何空闲静态SLC块。如本文所使用,所述组存储器单元的第二部分的原始指定通常可指初始指定或针对特定主机协议的指定。一些先前方法可针对所述组存储器单元的第二部分使用这些类型的原始指定,因为不要求静态SLC块用于非写入突发操作。
在一些实施例中,超额配给存储器管理组件113可经配置以将静态SLC块从第一部分指定到将用作空闲非写入突发块的第二部分。如本文所描述,第二部分可不包含任何静态SLC块,因为主机可不使用静态SLC块进行非写入突发操作,如上文描述。在一些实施例中,当涉及来自第二部分的非写入突发块的写入请求超过存储器单元的可用数量时,超额配给存储器管理组件113可将静态SLC块指定到第二部分。先前方法可能必须在超额配给部分内开放新块,在用户区域部分内开放新块,及/或减缓存储器子系统的执行以适应请求。相比之下,本公开将静态SLC块从第一部分指定到第二部分,以允许在不开放额外块或对存储器阵列的性能产生负面影响的情况下完成请求。
在一些实施例中,超额配给存储器管理组件113可经配置以使用经指定静态SLC块执行非写入突发操作。一旦静态SLC块在第二部分内指定,超额配给存储器管理组件113就可经配置以使用静态SLC块执行非写入突发操作。以此方式,静态SLC块内的数据可包含非写入突发操作数据。另外,一旦非写入突发操作数据被写入到静态SLC块,静态SLC块就可被指定为非写入突发数据块或被非写入突发操作数据占用的数据块。
在一些实施例中,超额配给存储器管理组件113可经配置以当非写入突发写入操作超过静态SLC块的存储器单元的数量时,开放存储器阵列的第三部分作为空闲非写入突发块。在一些实例中,经指定静态SLC块可被非写入突发写入操作超过或占用。如果此发生,那么超额配给存储器管理组件113可开放存储器阵列的第三部分并且将存储器阵列的第三部分指定为空闲非写入突发块。在一些实施例中,可将来自第一部分的额外静态SLC块指定到第二部分。在一些实施例中,超额配给存储器管理组件113可经配置以在开放存储器阵列的第三部分之前,确定何时不存在来自第一部分的将被指定到第二部分的额外静态SLC块。以此方式,可在一段时间内避免开放第三部分,开放第三部分可从用户数据区域移除存储器单元及/或降低性能。在一些实施例中,当来自第一部分的静态SLC块包含允许所有非写入突发请求的数量时,可能不需要开放第三部分。
在一些实施例中,超额配给存储器管理组件113可经配置以对存储器阵列执行媒体管理操作之后,将静态SLC块从第二部分指定回到第一部分。在一些实施例中,媒体管理操作可为可从静态SLC块擦除非写入突发操作数据的废弃项目收集操作。以此方式,当静态SLC块被指定回到第一部分时,可将其指定回到空闲写入突发块。在这些实施例中,超额配给存储器管理组件113可经配置以响应于将静态SLC块指定回到第一部分而将动态SLC块从第一部分指定到第二部分。
在一些实施例中,超额配给存储器管理组件113可将动态SLC块从第一部分指定到第二部分以允许第二部分包含存储特定非写入突发操作所需的特定数量的存储器单元。也就是说,一旦静态SLC块空闲或未被非写入突发操作数据占用,超额配给存储器管理组件113可确定由特定非写入突发操作利用的存储器单元的计数或数量,并在静态SLC块被指定回到第一部分时基于存储器单元的计数或数量而将动态SLC块从第一部分指定到第二部分。
在一些实施例中,超额配给存储器管理组件113可经配置以响应于写入突发刷新操作的执行而将空闲动态SLC块从写入突发数据池指定到第二部分。举例来说,写入突发数据池可包含被写入突发操作数据占用的存储器单元。在此实例中,可执行写入突发刷新操作以从指定到写入突发数据池的动态SLC块擦除写入突发操作数据。在此实例中,先前被指定为空闲写入突发块的动态SLC块可被指定为空闲非写入突发块以增加第二部分内的存储器单元的计数。
在一些实施例中,超额配给存储器管理组件113可经配置以确定第一部分何时不包含动态SLC块,并防止被指定到空闲非写入突发块的静态SLC块被指定为废弃项目收集源块。如本文所描述,一些协议可能要求静态SLC块用于写入突发操作。因此,在一些实施例中,可防止被指定到空闲非写入突发块的静态SLC块成为指定的废弃项目收集源块以允许将静态SLC块指定回到第一部分或空闲写入突发块。
图2是根据本公开的一些实施例的对应于用于超额配给存储器管理的方法220的流程图。方法220可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法220由图1的超额配给存储器管理组件113执行。尽管以特定序列或顺序展示,但除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可能的。
如本文所描述,存储器阵列可包含可用于存储数据的经指定用户区域部分及可用于通过不同存储器管理操作移除数据的经指定超额配给部分。在一些实例中,存储器阵列的超额配给部分可被分割成多个经指定部分。举例来说,超额配给部分可包括包含将用于写入突发操作的空闲存储器单元(例如,空闲存储器块)的第一部分,包含将用于非写入突发操作的空闲存储器单元(例如,空闲存储器块)的第二部分,包括包含来自写入突发操作的数据的经占用存储器单元的第三部分,及/或包括包含来自非写入突发操作的数据的经占用存储器单元的第四部分。方法220可用于指定及重新指定(及/或分配及重新分配)存储器阵列的超额配给部分内的不同存储器单元以提高超额配给部分内静态SLC及动态SLC两者的使用效率。
在操作221处,可指定存储器阵列的第一组存储器单元用于写入突发模式操作。在一些实施例中,第一组存储器单元包含用于写入与写入突发模式操作相关联的数据的空闲存储器单元。在一些实施例中,存储器阵列可包含驻留在移动装置上的QLC、MLC、TLC及/或SLC。举例来说,存储器阵列可包含驻留在手机、智能电话、可穿戴装置或平板计算机上的存储器单元。如本文所使用,术语“移动计算装置”通常指具有石板或平板形状因子的手持式计算装置。一般来说,石板形状因子可包含大约3英寸到5.2英寸(对角地测量)之间的显示屏,而平板形状因子可包含大约5.2英寸到7英寸(对角地测量)之间的显示屏。然而,“移动计算装置”的实例并不限于此,并且在一些实施例中,“移动计算装置”可指IoT装置以及其它类型的边缘计算装置。在一些实例中,可将第一组存储器单元指定到存储器阵列的超额配给部分。也就是说,第一组存储器单元可被指定用于存储器阵列的超额配给部分内的写入突发模式操作。以此方式,第一组存储器单元可响应于由存储器子系统从主机(例如,主机系统120等)接收的命令及/或信令而被写入,所述命令及/或信令由存储器子系统(例如,超额配给组件113及/或存储器子系统控制器115)处理并由驻留在存储器子系统上的电路系统根据本文描述的写入突发操作来断言。
在操作222处,可指定存储器阵列的第二组存储器单元用于非写入突发模式操作。在一些实例中,第二组存储器单元包含用于写入与非写入突发模式操作相关联的数据的空闲存储器单元。在一些实施例中,可将第二组存储器单元指定到存储器阵列的超额配给部分。在一些实施例中,第一组存储器单元及第二组存储器单元两者都可指定到存储器阵列的超额配给部分。以此方式,第一组存储器单元可由存储器子系统(例如,超额配给存储器管理组件113及/或存储器子系统控制器115)用来执行写入突发操作,并且第二组存储器单元可由存储器子系统用来执行非写入突发操作。
在操作223处,可识别执行特定非写入突发操作的请求(例如,一或多个命令、一或多个信号等),所述请求超过可供第二组存储器单元用于非写入突发模式写入操作的存储器单元的数量。在一些实施例中,响应于由存储器子系统处理的来自主机系统(例如,主机系统120)的写入请求,存储器存取可超过分配到第二组存储器单元的存储器单元的经指定数量。因此,方法220可包含用于识别何时存在对非写入突发操作的特定请求超过来自第二组存储器单元的存储器单元的经指定数量的指示的操作。在一些先前方法中,可开放新的存储器单元块或新数量的存储器单元,并将其指定为非写入突发模式单元或指定为第二组存储器单元的部分。在这些先前方法中,可远离存储器阵列的用户数据区域指定额外存储器单元,这可降低计算系统用户可用的资源。
在操作224处,可响应于请求而将第一组存储器单元的一部分指定为静态单电平单元(SLC)块以用于非写入突发模式写入操作。在一些实施例中,方法220可将第一组存储器单元的一部分指定到第二组存储器单元,而不是指定存储器阵列的用户数据区域的一部分。在这些实施例中,方法220可包含用于将第一组存储器单元的部分指定为用于在第二组存储器单元中使用的静态SLC块的操作。以此方式,在最初被指定用于第一组存储器单元内的写入突发操作的静态SLC块上执行来自主机(例如,主机系统120等)的由存储器子系统处理并由驻留在存储器子系统上的电路系统断言的非写入突发操作命令及/或信令。
在操作225处,可将与特定非写入突发写入操作相关联的数据写入静态SLC块。如本文所描述,方法220可包含用于在最初被指定到存储器单元的第一部分的静态SLC块上执行非写入突发写入操作的操作。以此方式,来自存储器阵列的用户数据区域或用户分配区域的额外存储器单元可保持特定数量的存储器单元(例如,可包含至少阈值数量的空闲或开放存储器块),这与利用来自用户数据区域的额外存储器单元相比可提供更好性能。
在一些实施例中,方法220可包含用于执行涉及写入到存储器阵列的数据的媒体管理操作的操作。在一些实施例中,媒体管理操作可包含废弃项目收集。如本文所使用,“废弃项目收集”通常指试图移除不再使用或不再能够使用的数据的媒体管理操作。在一些实施例中,废弃项目收集可包含前台废弃项目收集操作。如本文所使用,“前台废弃项目收集”通常指对用户或主机可见的数据的废弃项目收集操作。方法220可包含用于当在媒体管理操作的执行期间擦除与特定非突发写入操作相关联的数据时将静态SLC块指定回到第一组存储器单元用于写入突发模式操作的操作。以此方式,静态SLC块可被重新指定回到第一组存储器单元用于后续写入突发操作的执行。
在一些实施例中,方法220可包含用于在静态SLC块被指定到第一组存储器单元时将动态SLC块从第一组存储器单元指定到第二组存储器单元的操作。在一些实施例中,第一组存储器单元可不包含可被指定到第二组存储器单元的任何空闲静态SLC块。因此,可将动态SLC块从第一组存储器单元指定到第二组存储器单元。在这些实施例中,方法220可包含用于当无法从第一组存储器单元获得动态SLC块时记录计数的操作。计数可存储为与图1中所说明的存储器子系统110的超额配给存储器管理组件113、本地存储器119及/或任何其它组件相关联的硬件内的整数(例如,二进制数、浮点数或其它整数)。在一些实施例中,计数可存储在可由存储器子系统的硬件组件执行的固件中。此外,在这些实施例中,方法220可包含用于防止响应于记录计数而增加写入突发缓冲器大小的操作。
在一些实施例中,方法220可包含用于当无法从第一组存储器单元获得动态SLC块时减少计数的操作。在一些实施例中,减少计数通常可指减少能够存储在一组特定存储器单元中的数据的数量。在这些实施例中,方法220可包含用于将动态SLC块从写入突发数据块池释放到第二组存储器单元并且响应于将动态SLC块从写入突发数据块池释放而减少计数的操作。在一些实施例中,第一组存储器单元可包含第一组空闲存储器单元,且第二组存储器单元可包含第二组空闲存储器单元。
在这些实施例中,被指定到写入突发数据块池的第三组存储器单元可为具有写入数据的存储器单元(例如,被数据“占用”的存储器单元)。举例来说,写入突发数据块池可包含包括利用写入突发操作写入的数据的一组存储器单元。在这些实施例中,在媒体管理操作之后,可释放来自写入突发数据块池的动态SLC块(例如,被重新分配为不同类型的存储器块及/或经擦除使得所述块可被写入),所述媒体管理操作例如废弃项目收集操作或擦除及/或折叠存储在动态SLC块中的数据的类似操作。以此方式,可将先前存储来自写入突发操作的数据的存储器单元分配到一组空闲单元以存储来自非写入突发操作的非写入突发数据。在这些实施例中,可将存储器单元指定到包含被已利用非写入突发写入操作写入的数据占用的存储器单元的第四组存储器单元。举例来说,第四组存储器单元可称为非写入突发数据池。
图3是根据本公开的一些实施例的对应于用于超额配给存储器管理的方法330的流程图。方法330可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法330由图1的超额配给存储器管理组件113执行。尽管以特定序列或顺序展示,但除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可能的。
如本文所描述,超额配给存储器管理组件可用于指定及重新指定存储器阵列的超额配给部分内的不同存储器单元以提高超额配给部分内静态SLC及动态SLC两者的使用效率。在操作331处,可指定NAND存储器单元的一组存储器单元用于超额配给。如本文所描述,处理器可指定NAND存储器单元的一部分用于超额配给。
在操作332处,可将所述组存储器单元的第一部分指定为空闲写入突发块。在一些实施例中,第一部分包含静态单电平单元(SLC)块。如本文所描述,空闲写入突发块可包含可被指定用于写入突发操作的未被占用或开放的存储器单元。第一部分可包含静态SLC块,这是因为一些协议可能要求在静态SLC块上或使用静态SLC块执行写入突发操作。在一些实施例中,第一部分还可包含动态SLC块,使得第一部分包含静态SLC块与动态SLC块的组合。
在操作333处,可将所述组存储器单元的第二部分识别为具有从写入突发写入操作存储的数据的数据写入突发块。在一些实施例中,方法330可包含用于将所述组存储器单元的第二部分指定为数据写入突发块的操作。在一些实施例中,数据写入突发块或写入突发数据块可为被占用或具有从写入突发操作存储的数据的存储器单元。也就是说,当来自写入突发操作的数据被写入数据块时,可将数据写入突发块指定为数据写入突发块。举例来说,写入突发操作可将写入突发数据存储到来自第一部分的特定空闲写入突发块并且所述特定空闲写入突发块可被指定为数据写入突发块。
在操作334,可将所述组存储器单元的第三部分指定为空闲非写入突发块。在一些实施例中,第三部分可包含动态SLC块。如本文所描述,一些协议可能不要求使用静态SLC块或在静态SLC块上执行非写入突发操作。在这些实施例中,所述组存储器单元的第三部分可不包含任何静态SLC块。因此,所述组存储器单元的第三部分可仅包含动态SLC块。在一些实施例中,空闲非写入突发块可包含未被占用或没有数据的存储器单元。由于所述组存储器单元的第三部分被指定为空闲非写入突发块,因此所述组存储器单元的第三部分可由主机用以在所述组存储器单元的第三部分上执行非写入突发操作。
在操作335处,可将所述组存储器单元的第四部分识别为具有从非写入突发写入操作存储的数据的数据非写入突发块。在这些实施例中,数据非写入突发块可为已被用来存储来自非写入突发操作的数据的被占用存储器单元。因此,当来自第三部分的空闲非写入突发块被用于使用非写入突发操作写入数据时,空闲非写入突发块可被指定为所述组存储器单元的第四部分的部分。
在操作336处,可将来自第一部分的静态SLC块指定到将用作空闲非写入突发块的第三部分。在一些实施例中,来自第一部分的静态SLC块是空闲静态SLC块。以此方式,当来自第一部分的静态SLC块被指定到第三部分时,所述静态SLC块可不包含数据或被数据占用。在一些实例中,将静态SLC块从第一部分指定到第三部分可包含向主机提供静态SLC块将用于存储与非写入突发操作相关联的数据的指示。以此方式,主机可以与第三部分内的动态SLC块中的一者类似的方式存取静态SLC块以在静态SLC块上执行非写入突发操作。
在操作337处,可使用经指定静态SLC块存储与非写入突发写入操作相关联的数据来执行非写入突发写入操作。如本文所描述,存储器子系统可响应于从主机或主机系统接收到的信令,以类似于从第三部分存取动态SLC块的方式存取经指定静态SLC块,并且在经指定静态SLC块上执行非写入突发写入操作。以此方式,与非写入突发写入操作相关联的数据可存储在经指定静态SLC块上。
在操作338处,当执行非写入突发写入操作时,可将静态SLC块识别为第四部分的部分。如本文所描述,静态SLC块可被识别为存储来自非写入突发写入操作的非写入突发数据。以此方式,方法330可将静态SLC块指定为第四部分的部分。在一些实施例中,可监测第四部分内的动态SLC块及静态SLC块的数量,以确保将静态SLC块被重新指定到第一部分,使得被要求使用静态SLC的写入突发操作可存取空闲静态SLC块。在一些实例中,可监测或寄存第四部分内的计数,以确定是否将额外动态SLC块指定到第三部分作为用于非写入突发操作的空闲动态SLC块。
在操作339处,可响应于涉及移除与非写入突发写入操作相关联的数据的媒体管理操作的执行而将静态SLC块指定为第一部分的一部分。如本文所描述,当从静态SLC块移除或擦除与非写入突发写入操作相关联的数据时,可将静态SLC块指定到第一部分。通常,来自第四部分的块将被指定到第三部分以允许在所擦除块上执行非写入突发写入操作,但是第一部分内的写入突发写入操作可能需要静态SLC块。在一些实例中,当静态SLC块被指定回到第一部分时,来自第一部分的动态SLC块可被指定到第三部分。以此方式,更大数量的静态SLC块可保留在第一部分中,在第一部分中写入突发操作可能需要静态SLC块。
在一些实施例中,方法330可包含用于确定第一部分何时不包含动态SLC块以及防止将静态SLC块从第一部分指定到将用作空闲非写入突发块的第三部分的操作。在一些实例中,当第一部分内不存在额外动态SLC块时,第一部分可能需要包含静态SLC块。以此方式,可监测指定到第一部分的动态SLC块及静态SLC块的数量以确保当第一部分不包含额外动态SLC块时不将静态SLC块指定到第三部分。举例来说,在一些实施例中,方法330可包含用于记录当确定在第一部分中没有可用的动态SLC块时的情形的计数并将动态SLC块从第二部分释放到第三部分的操作。以此方式,可将来自第二部分的具有已擦除数据的动态SLC块指定到第三部分,而不是重新指定回到第一部分。这可允许第三部分继续为非写入突发写入操作提供空闲存储器单元,而不影响性能或为空闲非写入突发块开放额外块。
在一些实施例中,方法330可包含用于响应于从第二部分释放动态SLC块而降低数据计数的操作。在一些实例中,降低数据计数可包含执行存储器管理操作以擦除存储在特定SLC块中的数据。举例来说,可擦除存储在来自第二部分的动态SLC块中的数据以允许基于与第一部分相关联的计数及/或与第三部分相关联的计数而将来自第二部分的动态SLC块指定到第一部分或第三部分。以此方式,可动态地指定或分配SLC块以提供提高的性能并减少在存储器阵列的超额配给部分内指定的存储器单元的数量。
图4说明根据本公开的一些实施例的针对一组存储器单元440的超额配给存储器管理的实例。图4说明一组存储器单元440,其可被分割成用户数据区域部分441及超额配给部分,所述超额配给部分包含动态超额配给部分442及静态超额配给部分443。
如本文所描述,超额配给部分可被分割成写入突发操作部分444及非写入突发操作部分445。也就是说,可使用写入突发操作部分444内的存储器单元执行写入突发写入操作,并且可使用非写入突发操作部分445内的存储器单元执行非写入突发写入操作。举例来说,存储器子系统可响应于从主机接收到的信令,在写入突发操作部分445内的存储器单元上执行写入突发写入操作,并且主机可在非写入突发操作部分445内的存储器单元上执行非写入突发写入操作。
图4说明第一操作448。在一些实施例中,第一操作448可由如本文所描述的超额配给存储器管理组件113执行。在一些实施例中,第一操作448可包含将静态SLC块446-1从写入突发操作部分444指定到非写入突发操作部分445作为静态SLC块446-2,如由第一箭头447所说明。以此方式,先前被指定为写入突发操作部分444的部分的静态SLC块446-1现在被指定为SLC块446-2作为非写入突发操作部分445的部分。以此方式,SLC块446-2可用于存储与非写入突发写入操作相关联的数据。当非写入突发写入操作将数据写入SLC块446-2时,可将SLC块446-2指定为非写入突发数据。
图4说明第二操作449。在一些实施例中,第二操作449可由超额配给存储器管理组件113执行。在一些实施例中,第二操作449可包含将静态SLC块446-2从非写入突发操作部分445指定到写入突发操作部分444,如由第二箭头450说明。在第二操作449中,存储在静态SLC块446-2处的非写入突发数据可通过存储器管理操作(例如,废弃项目收集、折叠等)来擦除或移除。当静态SLC块446-2将从数据块指定为空闲块时,静态SLC块446-2可从非写入突发操作部分445指定到写入突发操作部分444,如由第二箭头450说明。
图5说明根据本公开的一些实施例的针对一组存储器单元551的超额配给存储器管理的实例。在一些实施例中,所述组存储器单元551可为被指定用于超额配给的存储器单元。图5说明如本文所描述的超额配给操作。在一些实施例中,超额配给操作可包含将所述组存储器单元551分割或指定为多个部分。举例来说,存储器单元551可被分割为写入突发数据池552、写入突发空闲池553、非写入突发数据池554及/或非写入突发空闲池555。
如本文所描述,写入突发数据池552可包括包含被占用存储器单元的存储器单元或包含与写入突发操作相关联的所存储数据的存储器单元。另外,写入突发空闲池553可包含未被占用或不包含数据的存储器单元。写入突发空闲池553可包含被指定用于存储与写入突发操作相关联的数据的存储器单元。另外,非写入突发数据池554可包括包含与非写入突发操作相关联的被占用或所存储数据的存储器单元。此外,非写入突发空闲池555可包含未被占用或不包含数据的存储器单元。非写入突发空闲池555可被指定用于存储与非写入突发操作相关联的数据。
图5说明超额配给操作,其包含如由箭头557说明那样将静态SLC 556-1从非写入突发数据池554指定到写入突发空闲池553以被指定为静态SLC 556-2。在此操作中,由非写入突发数据池554内的静态SLC 556-1存储的数据可通过例如废弃项目收集操作的存储器管理操作来擦除。当来自静态SLC 556-1的数据被擦除时,处理器可将SLC556-1指定为写入突发空闲池553内的SLC 556-2。
如本文所描述,将静态SLC 556-2指定到写入突发空闲池553可导致将动态SCL558-1从写入突发空闲池553指定到非写入突发数据池554以被指定为SLC 558-2,如由箭头559说明。以此方式,从非写入突发数据池554指定的存储器单元导致指定到非写入突发空闲池555的额外存储器单元。
图6说明根据本公开的一些实施例的针对一组存储器单元660的超额配给存储器管理的实例。在一些实施例中,所述组存储器单元660可为指定用于超额配给的存储器单元。图6说明如本文所描述的超额配给操作。在一些实施例中,超额配给操作可包含将所述组存储器单元660分割或指定为多个部分。举例来说,存储器单元660可被分割为写入突发数据池661、写入突发空闲池662、非写入突发数据池663-1及/或非写入突发空闲池664。
如本文所描述,写入突发数据池661可包括包含被占用存储器单元的存储器单元或包含与写入突发操作相关联的所存储数据的存储器单元。另外,写入突发空闲池662可包含未被占用或不包含数据的存储器单元。写入突发空闲池662可包含被指定用于存储与写入突发操作相关联的数据的存储器单元。另外,非写入突发数据池663-1可包括包含与非写入突发操作相关联的被占用或所存储数据的存储器单元。此外,非写入突发空闲池664可包含未被占用或不包含数据的存储器单元。非写入突发空闲池664可被指定用于存储与非写入突发操作相关联的数据。
图6说明超额配给操作,其包含确定非写入突发数据池663-1已下降到空闲非写入突发存储器单元的阈值以下。如本文所描述,可开放新的非写入突发数据池663-2以容纳来自主机或主机系统的额外非写入突发请求。在一些实例中,当通过存储器管理操作擦除或移除来自动态SLC的数据时,超额配给操作还可包含或替代地包含将动态SLC从写入突发数据池661指定到非写入突发空闲池664。举例来说,可擦除或移除来自动态SLC 665-1的数据。在此实例中,动态SLC 665-1可被指定为非写入突发空闲池664内的665-2,而不是将其指定回到写入突发空闲池662。以此方式,当非写入突发数据操作超过非写入突发数据池663-1时,可向非写入突发空闲池664提供额外的动态SLC。
图7是本公开的实施例可在其中操作的实例计算机系统700的框图。举例来说,图7说明计算机系统700的实例机器,在计算机系统700内可执行用于致使所述机器执行本文所论述的方法中的任一或多者的一组指令。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或者可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的超额配给存储器管理组件113的操作)。在替代实施例中,所述机器可连接(例如,联网)到LAN、内联网、外联网及/或因特网中的其它机器。所述计算机可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥或能够执行指定将由所述机器采取的动作的一组指令(循序或以其它方式)的任何机器。此外,虽然说明单个机器,但是术语“机器”也应被认为包含个别地或共同地执行一组(或多组)指令以执行本文所论述的方法中的任一者或多者的机器的任何集合。
实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(SRAM)等)及数据存储系统718,其经由总线730彼此通信。
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或者是实施其它指令集的处理器,或者是实施指令集的组合的处理器。处理装置702也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似者。处理装置702经配置以执行指令726以用于执行本文所论述的操作及步骤。计算机系统700可进一步包含用于通过网络720进行通信的网络接口装置708。
数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体),在其上存储体现本文所描述的方法或功能中的任一者或多者的一或多组指令726或软件。在由计算机系统700执行指令726期间,指令726也可全部或至少部分地驻留在主存储器704内及/或处理装置702内,主存储器704及处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718及/或主存储器704可对应于图1的存储器子系统110。
在一个实施例中,指令726包含用以实施对应于超额配给存储器管理组件(例如,图1的超额配给存储器管理组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体724展示为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被认为包含能够存储或编码供机器执行并且致使机器执行本公开的方法中的任一者或多者的一组指令的任何媒体。因此,术语“机器可读存储媒体”应被认为包含(但不限于)固态存储器、光学媒体及磁性媒体。
已经根据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的某些部分。这些算法描述及表示是数据处理领域的技术人员用来最有效地向所属领域的其它技术人员传达其工作实质的方式。算法在此处且通常被认为是导致所需结果的自洽操作序列。所述操作是需要对物理量的物理操纵的操作。通常但不是必须的,这些量采用能够被存储、组合、比较及以其它方式操纵的电或磁信号的形式。已经证明,有时主要出于通用的原因将这些信号称为位、值、元素、符号、字符、项、数字或类似者是方便的。
然而,应牢记,所有这些及类似术语均应与适当物理量相关联并且仅仅是应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,所述计算机系统或类似电子计算装置将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据操纵及变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量。
本公开还涉及用于执行本文的操作的设备。此设备可经特定构造用于预期目的,或者其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适用于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文提出的算法及显示并非固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文的教示的程序一起使用,或者可证明构造更专用设备来执行所述方法是方便的。各种这些系统的结构将如下文描述中所阐述那样出现。另外,未参考任何特定编程语言来描述本公开。将了解,可使用各种编程语言来实施如本文所描述的本公开的教示。
本公开可被提供为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以由机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。
在前述说明书中,已经参考本公开的特定实例实施例描述本公开的实施例。显而易见的是,在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神及范围的情况下,可对其进行各种修改。因此,说明书及图式应被认为是说明意义而不是限制意义的。
Claims (20)
1.一种用于超额配给存储器管理的方法(220),其包括:
由超额配给组件(113)指定存储器阵列的第一组存储器单元(440)用于写入突发模式操作(444);
指定所述存储器阵列的第二组存储器单元(440)用于非写入突发模式操作(445);
识别执行特定非写入突发操作的请求超过可供所述第二组存储器单元用于所述非写入突发模式写入操作(445)的存储器单元的数量;
由所述超额配给组件(113)响应于所述请求而将所述第一组存储器单元(440)的一部分指定为静态单电平单元SLC块(446-1、446-2)以用于所述非写入突发模式写入操作;及
将与所述特定非写入突发写入操作相关联的数据写入到所述静态SLC块(446-1、446-2)。
2.根据权利要求1所述的方法,其进一步包括:
执行涉及写入到所述存储器阵列的数据的媒体管理操作;及
当与所述特定非写入突发写入操作相关联的所述数据在所述媒体管理操作的执行期间被擦除时,将所述静态SLC块指定回到用于所述写入突发模式操作的所述第一组存储器单元。
3.根据权利要求1所述的方法,其进一步包括:
当所述静态SLC块被指定到所述第一组存储器单元时,将动态SLC块从所述第一组存储器单元指定到所述第二组存储器单元;
当无法从所述第一组存储器单元获得动态SLC块时记录计数;及
防止写入突发缓冲器大小响应于记录所述计数而增加。
4.根据权利要求3所述的方法,其进一步包括当无法从所述第一组存储器单元获得动态SLC块时减少所述计数。
5.根据权利要求3所述的方法,其进一步包括:
将动态SLC块从写入突发数据块池(552、661)释放到所述第二组存储器单元;及
响应于从所述写入突发数据块池释放所述动态SLC块而减少所述计数。
6.根据权利要求1所述的方法,其中所述第一组存储器单元包含用于写入与所述写入突发模式操作相关联的数据的空闲存储器单元,且所述第二组存储器单元包含用于写入与所述非写入突发模式操作相关联的数据的空闲存储器单元。
7.一种用于超额配给存储器管理的设备,其包括:
存储器阵列;及
超额配给组件(113),其耦合到所述存储器阵列且经配置以:
指定所述存储器阵列的一组存储器单元用于超额配给;
将所述组存储器单元的第一部分指定为空闲写入突发块(553、662),其中所述第一部分包含动态单电平单元SLC块(665-1)及静态SLC块(446-1、446-2);
将所述组存储器单元的第二部分指定为空闲非写入突发块(555、664),其中所述第二部分包含动态SLC块(665-1);
将静态SLC块从所述第一部分指定到将用作空闲非写入突发块(555、664)的所述第二部分;
使用所述经指定静态SLC块(446-1、446-2)执行非写入突发操作;及
当所述非写入突发写入操作超过所述静态SLC块(446-1、446-2)时,开放所述存储器阵列的第三部分作为空闲非写入突发块(555、664)。
8.根据权利要求7所述的设备,其中在将所述静态SLC块从所述第一部分指定到所述第二部分之前,所述第二部分仅包含动态SLC块。
9.根据权利要求7所述的设备,其中所述超额配给组件经配置以在对所述存储器阵列执行媒体管理操作之后将所述静态SLC块从所述第二部分指定回到所述第一部分。
10.根据权利要求9所述的设备,其中所述超额配给组件经配置以响应于将所述静态SLC块指定回到所述第一部分而将动态SLC块从所述第一部分指定到所述第二部分。
11.根据权利要求7所述的设备,其中所述设备为智能电话且所述存储器阵列包括经配置以使用所述存储器阵列内的SLC或三电平单元TLC来支持异步功率损失APL的一定数量的四电平单元QLC。
12.根据权利要求7所述的设备,其中所述超额配给组件经配置以响应于写入突发刷新操作的执行而将空闲动态SLC块从写入突发数据池(552)指定到所述第二部分。
13.根据权利要求7所述的设备,其中所述超额配给组件经配置以:
确定所述第一部分何时不包含动态SLC块;及
防止将指定到所述空闲非写入突发块的所述静态SLC块被指定为废弃项目收集源块。
14.一种用于超额配给存储器管理的系统(100、700),其包括:
多个存储器组件,其经布置以形成交错NAND存储器单元的可堆叠交叉网格阵列;及
处理装置(113、117、702),其耦合到所述多个存储器组件(704、718),所述处理装置(113、117、702)用以执行包括以下各者的操作:
指定所述NAND存储器单元的一组存储器单元用于超额配给;
将所述组存储器单元的第一部分指定为空闲写入突发块(553、662),其中所述第一部分包含静态单电平单元SLC块(446-1、446-2);
将所述组存储器单元的第二部分识别为具有从写入突发写入操作存储的数据的数据写入突发块(552、661);
将所述组存储器单元的第三部分指定为空闲非写入突发块(555、664),其中所述第三部分包含动态SLC块(665-1);
将所述组存储器单元的第四部分识别为具有从非从写入突发写入操作存储的数据的数据非写入突发块(554、663-1、663-2);
将静态SLC块(446-1、446-2)从所述第一部分指定到将用作空闲非写入突发块(555、664)的所述第三部分;
使用所述经指定静态SLC块(446-1、446-2)执行非写入突发写入操作以存储与所述非写入突发写入操作相关联的数据;
当执行所述非写入突发写入操作时,将所述静态SLC块(446-1、446-2)识别为所述第四部分的部分;及
响应于涉及移除与所述非写入突发写入操作相关联的所述数据的媒体管理操作的执行而将所述静态SLC块(446-1、446-2)指定为所述第一部分的部分。
15.根据权利要求14所述的系统,其中所述媒体管理操作是前台废弃项目收集操作。
16.根据权利要求15所述的系统,其中所述处理装置用以执行包括以下各者的操作:
确定所述第一部分何时不包含动态SLC块;及
防止将所述静态SLC块从所述第一部分指定到将用作空闲非写入突发块(555、664)的所述第三部分。
17.根据权利要求14所述的系统,其中所述处理装置用以执行包括记录当确定在所述第一部分中没有可用的动态SLC块时的情形的计数的操作。
18.根据权利要求14所述的系统,其中所述处理装置用以执行包括将动态SLC块从所述第二部分释放到所述第三部分的操作。
19.根据权利要求18所述的系统,其中所述处理装置用以执行包括响应于将所述动态SLC块从所述第二部分释放而降低数据计数的操作。
20.根据权利要求14所述的系统,其中所述NAND存储器单元的至少一部分包括驻留在手机或可穿戴装置上的四电平单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/357,496 US11693586B2 (en) | 2021-06-24 | 2021-06-24 | Over provisioning component for memory management |
US17/357,496 | 2021-06-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115527585A true CN115527585A (zh) | 2022-12-27 |
Family
ID=84543172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210684084.XA Pending CN115527585A (zh) | 2021-06-24 | 2022-06-16 | 用于存储器管理的超额配给组件 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11693586B2 (zh) |
CN (1) | CN115527585A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230050012A (ko) * | 2021-10-07 | 2023-04-14 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8853818B2 (en) | 2013-02-20 | 2014-10-07 | Macronix International Co., Ltd. | 3D NAND flash memory |
US9928169B2 (en) * | 2014-05-07 | 2018-03-27 | Sandisk Technologies Llc | Method and system for improving swap performance |
US10409526B2 (en) | 2014-12-17 | 2019-09-10 | Violin Systems Llc | Adaptive garbage collection |
US9858009B2 (en) | 2015-10-26 | 2018-01-02 | Sandisk Technologies Llc | Data folding in 3D nonvolatile memory |
US10877686B2 (en) * | 2018-04-13 | 2020-12-29 | Intel Corporation | Mass storage device with host initiated buffer flushing |
US11182240B2 (en) * | 2020-09-25 | 2021-11-23 | Intel Corporation | Techniques to improve error correction using an XOR rebuild scheme of multiple codewords and prevent miscorrection from read reference voltage shifts |
-
2021
- 2021-06-24 US US17/357,496 patent/US11693586B2/en active Active
-
2022
- 2022-06-16 CN CN202210684084.XA patent/CN115527585A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11693586B2 (en) | 2023-07-04 |
US20220413739A1 (en) | 2022-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112470113B (zh) | 存储器系统中的隔离性能域 | |
US11487666B2 (en) | Timed data transfer between a host system and a memory sub-system | |
US11573742B2 (en) | Dynamic data placement for collision avoidance among concurrent write streams | |
CN113539342B (zh) | 主动读取干扰缓解 | |
US11782841B2 (en) | Management of programming mode transitions to accommodate a constant size of data transfer between a host system and a memory sub-system | |
CN115699185A (zh) | 在存储装置上每单元实施可变数目的位 | |
CN113874826A (zh) | 具有多个裸片和平面的存储器子系统中的多遍数据编程 | |
CN115543866A (zh) | 部分超级块存储器管理 | |
CN113590023A (zh) | 在多平面存储器装置的单独平面上存储区名称空间中的区 | |
CN112835827A (zh) | 存储器子系统中的直接存储器存取引擎的服务质量水平 | |
CN115427926A (zh) | 维持存储器子系统的队列 | |
CN113093990B (zh) | 存储器子系统处的数据块切换 | |
US20240028239A1 (en) | Zone block staging component for a memory sub-system with zoned namespace | |
US11829650B2 (en) | Memory sub-system data migration | |
CN115527585A (zh) | 用于存储器管理的超额配给组件 | |
CN114981785A (zh) | 基于改变高速缓存中数据块的写入模式执行媒体管理操作 | |
CN113127385A (zh) | 对存储器子系统的性能控制 | |
CN111381776A (zh) | 用于存储器装置的方法、系统和计算机可读媒体 | |
US20230129363A1 (en) | Memory overlay using a host memory buffer | |
CN113590022A (zh) | 用于存储器装置的系统和方法 | |
CN113918479B (zh) | 用于并行独立线程的低位密度存储器高速缓存的方法及系统 | |
CN113094293B (zh) | 存储器系统及相关方法和计算机可读存储介质 | |
US20240160349A1 (en) | Virtual management unit scheme for two-pass programming in a memory sub-system | |
CN113253917A (zh) | 用于存储器子系统的媒体管理的多状态炼狱 | |
KR20240008590A (ko) | 저장 장치 및 그 동작 방법 |
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 |