CN115048039A - 用于基于有效转换单元计数的存储器管理的方法、设备和系统 - Google Patents
用于基于有效转换单元计数的存储器管理的方法、设备和系统 Download PDFInfo
- Publication number
- CN115048039A CN115048039A CN202210203666.1A CN202210203666A CN115048039A CN 115048039 A CN115048039 A CN 115048039A CN 202210203666 A CN202210203666 A CN 202210203666A CN 115048039 A CN115048039 A CN 115048039A
- Authority
- CN
- China
- Prior art keywords
- vtc
- memory management
- memory
- management operation
- block
- 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.)
- Granted
Links
Images
Classifications
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/344—Arrangements for verifying correct erasure or for detecting overerased cells
- G11C16/3445—Circuits or methods to verify correct erasure of nonvolatile memory cells
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced 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/0608—Saving storage space on storage 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- 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/26—Sensing or reading circuits; Data output circuits
-
- 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/32—Timing circuits
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/7202—Allocation control and policies
-
- 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/7211—Wear leveling
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请的实施例涉及用于基于有效转换单元计数的存储器管理的方法、设备和系统。一种方法包含:确定第一存储器单元块的第一有效转换单元计数VTC;当所述第一VTC低于对应于存储器管理操作的执行的VTC阈值时,确定第二存储器单元块的第二VTC;当合并的第一VTC和所述第二VTC等于或超出对应于所述存储器管理操作的所述执行的所述VTC阈值时,合并所述第一VTC和所述第二VTC;以及利用所述合并的第一VTC和所述第二VTC来执行所述存储器管理操作。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及基于有效转换单元计数的存储器管理。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据以及从存储器装置检索数据。
发明内容
描述了一种验证基于转换单元计数的存储器管理的方法。在一些实例中,所述方法可包括:确定第一存储器单元块的第一有效转换单元计数(VTC);当所述第一VTC低于对应于存储器管理操作的执行的VTC阈值时,确定第二存储器单元块的第二VTC;当合并的第一VTC和所述第二VTC等于或超出对应于所述存储器管理操作的所述执行的所述VTC阈值时,合并所述第一VTC和所述第二VTC;以及利用所述合并的第一VTC和所述第二VTC来执行所述存储器管理操作。
描述了一种用于验证基于转换单元计数的存储器管理的设备。在一些实例中,所述设备可包括:基于有效转换单元计数(VTC)的存储器管理组件,其经配置以:确定由事件触发的第一存储器管理操作的存储器管理操作类型;基于第一存储器管理操作类型而确定所述第一存储器管理操作的目的地块;确定与所述第一存储器管理操作的第一候选块相关联的第一有效转换单元计数(VTC);当所述第一VTC低于VTC阈值时,确定与第二存储器管理操作的第二候选块相关联的第二VTC;且利用所述第一VTC和第二VTC来执行所述第一存储器管理操作。
描述了一种用于基于有效转换单元计数的存储器管理的系统。在一些实例中,所述系统可包括:多个存储器组件,其经布置以形成包括多个交错NAND存储器单元的多个超级块的可堆叠交叉网格化阵列;以及处理装置,其耦合到所述多个存储器组件,所述处理装置用以执行包括以下各项的操作:识别多个存储器管理操作的目的地块的类型,其中目的地块的所述类型包括擦除计数速率,其对应于随时间校正错误位数量的擦除计数操作;识别所述多个存储器管理操作中的第一存储器管理操作的触发;当所述第一存储器管理操作利用第一类型的目的地块时执行所述第一存储器管理操作;识别所述多个存储器管理操作中的第二存储器管理操作的触发;确定所述第二存储器管理操作的第一候选块的第一VTC低于VTC阈值;将所述第一候选块的所述第一VTC与第三存储器管理操作的第二候选块的第二VTC组合;以及当所述候选块的所述第一VTC和所述第二VTC的组合超出所述VTC阈值时执行所述第二存储器管理操作,其中所述第二存储器管理操作利用第二类型的目的地块。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2说明根据本公开的一些实施例的包含基于VTC的存储器管理组件的实例设备。
图3说明根据本公开的一些实施例的包含处理器的实例计算系统。
图4A到4D说明根据本公开的一些实施例的用以合并来自块的有效数据的实例一系列操作。
图5为根据本公开的一些实施例的对应于基于有效转换单元计数的存储器管理的流程图。
图6为根据本公开的一些实施例的对应于用于基于VTC的存储器管理的方法的流程图。
图7为本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及基于有效转换单元计数(VTC)的存储器管理,特定来说涉及包含基于VTC的存储器管理组件的存储器子系统。存储器子系统可以是存储系统、存储装置、存储器模块或这些的组合。存储器子系统的实例是例如固态驱动器(SSD)的存储系统。下文结合图1和其它地方描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可提供要存储在存储器子系统处的数据且可请求要从存储器子系统检索的数据。
存储器装置可以是非易失性存储器装置。非易失性存储器装置的一个实例是与非(NAND)存储器装置(也称为快闪技术)。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置为一或多个裸片的封装。每一裸片可由一或多个平面组成。平面可分组成逻辑单元(LUN)。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面由一组物理块组成。每一块由一组页组成。每一页由一组存储器单元(“单元”)组成。单元为存储信息的电子电路。下文中,块是指用以存储数据的存储器装置的单元,且可包含存储器单元群组、字线群组、字线或单独存储器单元。对于一些存储器装置,块(在下文中也称为“存储器块”)是可擦除的最小区域。无法单独地擦除页,且只能擦除整个块。
存储器装置中的每一个可包含一或多个存储器单元阵列。取决于单元类型,单元可存储一或多个二进制信息位,且具有与所存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(例如“0”和“1”)或此类值的组合表示。存在各种类型的单元,例如单电平单元(SLC)、多电平单元(MLC)、三电平单元(TLC)和四电平单元(QLC)。举例来说,SLC可存储一个信息位且具有两个逻辑状态。
一些NAND存储器装置采用浮动栅极架构,其中基于位线与字线之间的相对电压变化来控制存储器存取。NAND存储器装置的其它实例可采用替换栅极架构,所述替换栅极架构可包含使用字线布局,所述字线布局可允许基于用于建构字线的材料的属性而在存储器单元内捕获对应于数据值的电荷。在一个实施例中,多个存储器组件可经布置以形成包括多个交错NAND存储器单元的多个超级块的可堆叠交叉网格化阵列。
存储器单元(例如,非易失性存储器单元)可分组为页,所述页可指用以存储数据的存储器装置的逻辑单元。在一些类型的存储器(例如,快闪存储器,例如NAND存储器装置等)的情况下,可将页分组以形成存储器块。可对存储器块执行媒体管理操作。媒体管理操作的非限制性实例可包含错误校正操作、耗损均衡操作、写入干扰缓解操作和/或垃圾收集操作。媒体管理操作可在“前台”(例如,在主机利用与存储器子系统相关联的接口期间)和/或在“后台”(例如,当主机未与存储器子系统相关联的接口时)执行。
“垃圾收集操作”通常是指将数据从受害者块条带折叠到新的目的地块条带中的过程,其预期目的是数据合并以释放存储器资源以用于后续编程/擦除循环。如本文中所使用,“块条带”通常是指共享相同上块编号且可并行存取的存储器块的逻辑分组。然而,垃圾收集操作可利用引起写入放大的读取和写入操作,这可能会增加存储器子系统(例如,SSD)功耗且可能会降低存储器子系统的寿命,例如,由于存储器单元在经历某一数目个编程/擦除循环之后可能会变得不可用。“折叠”是独立于任何直接主机交互将数据从一个存储器装置位置(例如,NAND位置)迁移到另一存储器装置(例如,NAND位置)位置。可以执行折叠以将有效数据打包在一起,例如,作为垃圾收集操作的一部分,这可随后释放更多存储器装置存储空间以用于操作(例如,新写入、错误避免操作、耗损均衡操作、在错误的情况下恢复RAIN奇偶校验保护)。
另外,媒体管理操作的效率可基于要对源存储器块执行的媒体管理操作的类型(例如,前台或后台媒体管理操作,例如垃圾收集操作)而变化。因此,由于未考虑要利用的有效数据的量和/或所调用的媒体管理操作的类型,存储器子系统可能会在使用VTC作为源块选择的唯一准则的方法中经历降级的性能。这种性能降级可能是不希望的,尤其是在关键应用和/或要求非常高的存储器子系统性能的应用中。此外,在此类方法中可能展现的这种降级的性能可能会在移动(例如,智能手机、物联网等)存储器部署中进一步加剧,在所述部署中,相比于传统计算架构,可用于容纳存储器子系统的空间量是有限的。
用于媒体管理的一些方法可包含利用“块组”和“分组索引”,其设法基于存储在存储器子系统内的数据的年龄对数据进行分类,以便尝试最小化存储器装置中的电荷损失。应理解,与存储器单元相关联的电荷损失(例如,电压漂移)可能会影响存储在存储器单元中的数据,这一问题可能会随时间推移变得更加复杂。此类方法可采用识别具有最高块组索引的存储器块(例如,具有超过某一阈值年龄的年龄的存储器块,或存储超过某一阈值年龄的数据的存储器块)的存储器模块,且执行强制折叠操作,其中基于对具有最高块组索引的块(或具有最高块组索引的那些块)的识别而折叠给定块中的所有数据,而无论有效性如何。利用此类技术的一些方法可进一步基于数据的年龄(例如,基于对应于块和/或存储在块中的数据的块组索引)将数据的部分(例如,有效数据的部分)分类为“热”、“伪冷”或“冷”数据,且基于此类分类而执行强制折叠操作。然而,由于未能考虑块中含有的数据的有效性以及其它媒体管理准则,此类方法可能会导致效率低下。
本公开的各方面通过确定第一存储器单元块的第一有效转换单元计数(VTC)来解决以上和其它缺陷。举例来说,可针对第一候选块确定有效数据的量。在一些实例中,当第一VTC低于对应于存储器管理操作的执行的VTC阈值时,基于VTC的存储器管理组件可确定第二存储器单元块的第二VTC。在这些实例中,当合并的第一VTC和第二VTC等于或超出对应于存储器管理操作的执行的VTC阈值时,合并第一VTC和第二VTC。一旦第一VTC与第二VTC合并,就可利用合并的第一VTC和第二VTC来执行存储器管理操作。
图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之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1将存储器子系统110说明为实例。一般来说,主机系统120可经由同一通信连接、多个单独的通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的变化而执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2DNAND)和三维NAND(3DNAND)。
存储器装置130、140中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单电平单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多电平单元(MLC)、三电平单元(TLC)、四电平单元(QLC)和五电平单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或其任何组合。在一些实施例中,特定存储器装置可以包含存储器单元的SLC部分,以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。在一些类型的存储器(例如,NAND)的情况下,页可分组以形成块。
尽管描述了例如非易失性存储器单元和NAND型存储器(例如,2D NAND、3DNAND)的三维交叉点阵列的非易失性存储器组件,但存储器装置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可包含高速缓存器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址,且解码所述地址以存取存储器装置130和/或存储器装置140。
在一些实施例中,存储器装置130包含结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作的本地媒体控制器135。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其为与用于在同一存储器装置封装内进行媒体管理的本地控制器(例如,本地控制器135)组合的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统110可包含基于VTC的存储器管理组件113。尽管图1中未展示以免混淆图式,但基于VTC的存储器管理组件113可包含各种电路系统以促进确定块内的有效数据部分的相应分散、至少基于所述相应分散而选择存储器块以及对选定的存储器块执行媒体管理操作。在一些实施例中,基于VTC的存储器管理组件113可包含呈ASIC、FPGA、状态机和/或其它逻辑电路系统形式的专用电路系统,其可允许基于VTC的存储器管理组件113协调和/或执行操作以至少基于媒体管理操作要利用的有效数据部分的量而选择性地执行存储器装置130和/或存储器装置140的媒体管理操作。
在一些实施例中,存储器子系统控制器115包含基于VTC的存储器管理组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,基于VTC的存储器管理组件113是存储器子系统110、应用程序或操作系统的一部分。
在非限制性实例中,设备(例如,计算系统100)可包含基于存储器子系统VTC的存储器管理组件113。基于存储器子系统VTC的存储器管理组件113可驻留在存储器子系统110上。如本文中所使用,术语“驻留在……上”是指某物在物理上位于特定组件上。举例来说,基于存储器子系统VTC的存储器管理组件113“驻留在存储器子系统110上”是指包括基于存储器子系统VTC的存储器管理组件113的硬件电路系统在物理上位于存储器子系统110上的状况。术语“驻留在……上”可在本文中与例如“部署于……上”或“位于……上”等其它术语互换使用。
基于存储器子系统VTC的存储器管理组件113可经配置以确定第一存储器单元块的第一有效转换单元计数(VTC)。如本文中所描述,第一存储器单元块的第一VTC包含候选块(例如,第一存储器单元块等)的有效数据的量。如本文中所使用,术语“候选块”通常是指要用于存储器管理操作的存储器块。第一存储器单元块对应于与第一类型的存储器管理操作相对应的存储器单元的候选块。举例来说,第一存储器单元块可对应于编程后时间(TAP)折叠操作(或简称为“TAP折叠”)的候选块。在另一实例中,第一存储器单元块可对应于静态耗损均衡(SWL)折叠操作(或简称为“SWL折叠”)的候选块。在另一实例中,第一存储器单元块可对应于可靠性(REL)折叠操作(或简称为“REL折叠”)的候选块。尽管提供了折叠的特定实例,但本公开不限于此。举例来说,其它类型的存储器管理操作可以类似方式利用候选块。
TAP折叠操作可包含由于与在块被编程之后经过的时间量相关联的电荷损失引起块中数据的媒体完整性降级而触发的折叠操作。举例来说,可基于数据存储在媒体中(例如,在存储器单元块中)的时间量而发生相对于一或多个存储器单元的电压漂移。相比之下,REL折叠可包含在块中数据的媒体完整性由于块使用和存取应力而降级时触发的折叠操作。块使用可包含但不限于存储器读取、存储器循环、存储器读取干扰(例如,对一行单元执行的读取操作影响未读取单元的阈值电压)。
基于存储器子系统VTC的存储器管理组件113可经配置以在第一VTC低于对应于存储器管理操作的执行的VTC阈值时确定第二存储器单元块的第二VTC。如本文中所描述,可基于第二块的块大小而确定第二存储器单元块的第二VTC。在至少一个实施例中,可通过将块大小(SB)乘以可调值(Y)来计算VTC阈值,以确定何时有足够的有效数据被折叠到目的地块中。如本文中所使用,术语“可调值”通常是指可基于块大小的特性而更改的数值参数(例如,值),如本文中所描述。在一些实施例中,可调值可以是介于1与2之间的值。也就是说,VTC阈值可基于块大小和可基于第二存储器单元块的类型而调节的可调值。在一些实施例中,可针对不同于第一存储器单元块的第二存储器单元块确定第二VTC。举例来说,第一存储器单元块可对应于TAP折叠的候选块,且第二存储器单元块可对应于SWL折叠的候选块。也就是说,第二存储器单元块是在合并第一VTC之前作为不同类型的存储器管理操作的候选者的存储器单元块。
如本文中所使用,“阈值”,例如VTC阈值,通常是指用以提供高效存储器管理操作的有效转换单元的指定数量。在一些实施例中,VTC阈值是基于与对其执行存储器管理操作的目的地块相关联的特性。举例来说,与目的地块相关联的特性可包含目的地块内的空闲或开放存储器单元的数量。也就是说,VTC阈值可基于与目的地块相关联的存储器单元的数量。举例来说,VTC阈值可基于存储器管理操作的目的地块的存储器单元的数量。在此实例中,相比于不考虑本文中所描述的VTC阈值的方法,VTC阈值可用于更高效地执行存储器管理操作。也就是说,VTC阈值可用于确保目的地块被来自一或多个候选块的有效数据基本上填充或完全填充。
基于存储器子系统VTC的存储器管理组件113可经配置以在合并的第一VTC和第二VTC等于或超出对应于存储器管理操作的执行的VTC阈值时合并第一VTC和第二VTC。如本文中所使用,术语“合并”或“组合”通常是指对特定存储器管理操作的不同存储器管理操作候选块的VTC进行分组。合并第一VTC和第二VTC包含将第一VTC和第二VTC两者组合为或用作VTC的单个集合以用于执行存储器管理操作。如本文中所描述,第一VTC可对应于第一存储器管理操作的第一候选块,且第二VTC可对应于第二存储器管理操作的第二候选块。通过将第一VTC和第二VTC组合到单个目的地块中,组合的VTC可用于存储器管理操作,且第一VTC和第二VTC的单个目的地块可用有效数据填充或基本上填充单个目的地块。以此方式,可将相对冷的候选块合并成较少的目的地块,这可减少一些方法中固有的垃圾收集效率低下。如本文中所使用,术语“冷”通常是指相对于从存储器子系统或存储器装置存取的其它数据在长持续时间内未存取的数据或含有所述数据的块。相反,如本文中所使用,术语“热”通常是指对于从存储器子系统或存储器装置存取的其它数据已频繁存取的数据或包含所述数据的块。例如“伪冷”的术语通常是指存取频率低于“热”数据但高于“冷”数据的数据或含有所述数据的块。
基于存储器子系统VTC的存储器管理组件113可经配置以利用合并的第一VTC和第二VTC来执行存储器管理操作。利用合并的第一VTC和第二VTC来执行存储器管理操作可包含对作为单个有效数据源的第一VTC和第二VTC执行存储器管理操作,例如折叠操作。以此方式,存储器管理操作的目的地块将被有效数据填充或基本上填充,这可减少冷数据重新循环到具有热数据的块中,从而可增加所执行的存储器管理操作的数量。
图2说明根据本公开的一些实施例的包含基于VTC的存储器管理组件113的实例设备220。设备220表示可用于执行如本文中所描述的基于VTC的存储器管理的装置或装置的部分。在一些实施例中,设备220可为系统的组件,例如图1中提及的计算系统100。举例来说,图2中说明的设备220包含基于VTC的存储器管理组件113,其以与图1中所说明的方式类似的方式被利用。
在操作221处,基于VTC的存储器管理组件113可经配置以确定由事件触发的第一存储器管理操作的存储器管理操作类型。如本文中所使用,“存储器管理操作类型”通常是指存储器管理操作的分类。在一些实施例中,存储器管理操作可基于所执行的功能、候选块、目的地块和/或对应存储器管理操作的目的而分类。在一些实施例中,识别存储器管理操作的类型至少部分地基于触发存储器管理操作的事件已发生的确定。如本文中所描述,存储器管理操作可由事件或由计算系统的特定模块触发。举例来说,折叠存储器管理操作可由垃圾收集事件触发。由于不同存储器管理操作可由计算系统的不同模块触发,因此存储器管理操作的效率可能由于对相同数据或相同块执行重复存储器管理操作或多个存储器管理操作而受到影响。
在一些实施例中,确定存储器管理操作类型包含识别存储器管理操作已响应于事件而被发起。在此类实施例中,可基于存储器管理操作的属性而识别存储器管理操作的类型。举例来说,可尤其基于事件、候选块和/或目的地块而识别存储器管理操作的类型。在其它实施例中,识别存储器管理操作的类型包含确定存储器管理操作是可靠性折叠、TAP折叠还是SWL折叠。在这些实例中,基于VTC的存储器管理组件113确定存储器管理操作的折叠类型、候选块类型和/或目的地块类型。
在操作222处,基于VTC的存储器管理组件113可经配置以基于第一存储器管理操作类型而确定第一存储器管理操作的目的地块。如本文中所使用,“目的地块”通常是指在存储器管理操作期间用于将有效数据传送到的块。在一些实施例中,确定对其执行存储器管理操作的目的地块至少部分地基于存储器管理操作的所确定类型。在一些实施例中,存储器管理操作的类型可对应于目的地块的特定类型。举例来说,当存储器管理操作的类型是可靠性折叠时,目的地块可具有相对低的擦除循环(EC)速率。在此实例中,当存储器管理操作的类型为TAP折叠和/或SWL折叠时,目的地块可具有相对高的EC速率。以此方式,可靠性折叠可对应于具有相对低的EC的目的地块的类型,且TAP折叠和SWL折叠可对应于具有相对高的EC的目的地块的类型。如本文中所使用,“擦除循环速率”或“编程循环速率”通常是指在一段时间内对存储器单元或存储器单元的部分执行的擦除循环的数量。举例来说,第一存储器单元块的高EC速率可指示第一存储器单元块在一段时间内执行了相对大量的擦除循环。在类似实例中,第二存储器单元块的低EC速率可指示第二存储器单元块在所述时间段内执行了相对少量的擦除循环。
在操作223处,基于VTC的存储器管理组件113可经配置以确定与第一存储器管理操作的第一候选块相关联的第一有效转换单元计数(VTC)。如本文中所描述,与第一候选块相关联的第一VTC包含与第一候选块相关联的有效数据的量。如本文中所描述,第一候选块可对应于要用于第一存储器管理操作的存储器单元块。
在操作224处,基于VTC的存储器管理组件113可经配置以在第一VTC低于VTC阈值时确定与第二存储器管理操作的第二候选块相关联的第二VTC。如本文中所描述,第二存储器管理操作可不同于第一存储器管理操作,且第二VTC可对应于与第二存储器管理操作相对应的候选块的有效数据的量。如本文中所描述,可将第一VTC与VTC阈值相比较以确定执行存储器管理操作是否将是高效的存储器管理操作。如本文中所使用,“有效存储器管理操作”通常是指用有效数据填充或基本上填充目的地块的存储器管理操作。举例来说,高效存储器管理操作包含不会引起后续存储器管理操作以更改未被第一存储器管理操作更改的数据或块的状态的存储器管理操作。因此,当第一VTC低于VTC阈值时合并第一VTC和第二VTC可确保存储器管理操作在相对高水平的效率下执行且目的地块被有效数据填充或基本上填充。在一些实施例中,基于VTC的存储器管理组件113可经配置以在第一VTC超出阈值VTC时仅利用第一VTC来执行第一存储器管理操作。
在操作225处,基于VTC的存储器管理组件113可经配置以利用第一VTC和第二VTC来执行第一存储器管理操作。如本文中所描述,可利用第一VTC和第二VTC作为单个数据量来执行第一存储器管理操作。因此,可将第一VTC和第二VTC折叠到特定目的地块中。在这些实施例中,可基于第一存储器管理操作的类型而利用特定目的地块。
图3说明根据本公开的一些实施例的包含处理器117的实例计算系统330。在一些实施例中,计算系统330可包含与如图1中所提及的计算系统100相同或类似的元件。举例来说,系统330包含处理器117以执行指令。块331、332、333、334、335、336、337说明可由处理器117执行以允许处理器117执行对应功能的指令。
在操作331处,处理器117可经配置以识别一或多个存储器管理操作的目的地块的类型。如本文中所使用,“目的地块的类型”通常是指具有特定属性的目的地块。举例来说,目的地块的类型可指例如但不限于特定擦除计数速率的性质。在一些实施例中,目的地块的类型包括擦除计数速率,其对应于随时间校正错误位数量的错误校正操作的数量。
在一些实施例中,处理器117可经配置以识别一或多个不同存储器管理操作的目的地块的类型,使得可识别特定类型的存储器管理操作,且可在执行特定类型的存储器管理操作时利用对应类型的目的地块。举例来说,第一类型的折叠操作可利用特征为具有相对低的擦除计数速率的目的地块,且第二类型的折叠操作可利用特征为具有相对高的擦除计数速率的目的地块。如本文中所描述,擦除计数速率可包含在一段时间内执行的擦除循环的数量。在一些实例中,低擦除计数速率对应于一段时间内低于擦除计数阈值的擦除循环数量,且高擦除计数速率对应于在一段时间内执行的高于擦除计数阈值的擦除循环数量。
在操作332处,处理器117可经配置以识别第一存储器管理操作的触发。如本文所使用,触发通常是指已发起存储器管理操作的事件或对所述事件的确定。举例来说,触发可为由例如垃圾收集模块的计算模块产生的事件或信号。在特定实例中,第一存储器管理操作包含由垃圾收集操作发起的可靠性折叠。
在操作333处,处理器117可经配置以在第一存储器管理操作利用第一类型的目的地块时执行第一存储器管理操作。在一些实施例中,第一存储器管理操作利用第一类型的目的地块,其可对应于具有相对低的擦除计数速率的目的地块。在这些实施例中,当确定目的地块包含相对低的错误率时,可执行第一存储器管理操作。在特定实例中,第一存储器管理操作是可靠性折叠,且第一类型的目的地块包含相对低的擦除计数速率。因此,在一些实施例中,处理器117可经配置以在确定第一存储器管理操作是可靠性折叠时执行第一存储器管理操作。
在操作334处,处理器117可经配置以识别第二存储器管理操作的触发。在一些实施例中,可利用第二存储器管理操作的触发来识别第二存储器管理操作的类型。在一些实施例中,第二存储器管理操作可不同于第一存储器管理操作。举例来说,第一存储器管理操作可为可靠性折叠操作,且第二存储器管理操作可为TAP折叠。因此,第一存储器管理操作可利用第一类型的目的地块,且第二存储器管理操作可利用不同于第一类型的目的地块的第二类型的目的地块。在特定实例中,第一类型的目的地块的特征在于相对低的擦除计数速率,且第二类型的目的地块的特征在于相对高的擦除计数速率。
在操作335处,处理器117可经配置以确定第二存储器管理操作的第一候选块的第一VTC低于VTC阈值。如本文中所描述,处理器117可经配置以确定第二存储器管理操作的候选块的第一VTC。举例来说,第二存储器管理操作可为TAP折叠操作,且第一VTC可包含关于TAP折叠的候选块的有效数据的量。在这些实例中,处理器117可确定第一VTC低于VTC阈值,VTC阈值可基于要用于TAP折叠的目的地块。
在操作336处,处理器117可经配置以组合第一候选块的第一VTC与第三存储器管理操作的第二候选块的第二VTC。如本文中所描述,第一候选块的第一VTC可与不同存储器管理操作的第二候选块的第二VTC组合。举例来说,第三存储器管理操作可为SWL折叠操作。在此实例中,SWL折叠操作可利用与TAP折叠相同的目的地块类型。以此方式,TAP折叠的候选块的VTC可与SWL折叠的候选块的VTC组合。因此,第一候选块的第一VTC可与第二候选块的第二VTC组合以增加存储器管理操作要利用的VTC的量。在一些实施例中,处理器117可经配置以在执行第二存储器管理操作时将对应于第一VTC和第二VTC的数据标记为冷数据。以此方式,第一VTC和第二VTC可组合为要用于执行存储器管理操作的单一类型的数据。
在操作337处,处理器117可经配置以在候选块的第一VTC和第二VTC的组合超出VTC阈值时执行第二存储器管理操作。在一些实施例中,第二存储器管理操作利用第二类型的目的地块。如本文中所描述,可利用第一VTC与第二VTC的组合来执行第二存储器管理操作,以增加用于第二管理操作的VTC的量。在一些实施例中,处理器117可经配置以在第一VTC与第二VTC的组合低于VTC阈值时用第一VTC与第二VTC的组合执行第一存储器管理操作。也就是说,处理器117可经配置以在第一VTC和第二VTC低于VTC阈值时合并可与不同目的地块一起利用的剩余有效数据。
图4A到4D说明根据本公开的一些实施例的用以合并来自块的有效数据的实例一系列操作。参考图4A,块410、412和414各自存储一定量的有效数据和无效数据,其中有效数据由“v”表示且无效数据由“x”表示。块420和422可最初为空的,不存储任何数据。举例来说,块420和422可能最近已收集和/或擦除垃圾。块410、412、414、420和422的每一子块可为存储单元(例如,字线、页等)。图4A描绘在对块410、412和414执行垃圾收集操作之前的块。
参考图4B,块410已进行垃圾收集,且存储在图4A中的块410处的有效数据现在存储在块420处。如本文中所描述,当有效数据的量超出阈值时,存储器管理操作可将有效数据从块410传送到块420。因此,将来自块410的有效数据复制到块420,在此之后擦除块410处的数据。从块410复制到块420的有效数据很可能主要为冷数据,因为垃圾收集操作是基于VTC超出阈值VTC而完成的。块420和422可各自指定为用以存储经过垃圾收集的冷数据的块,使得冷数据在块420和422中合并。参考图4C,存储在图4B中的块412处的有效数据已复制到块420和块422中。类似于图4B,对块412执行的垃圾收集操作可将块412的有效数据复制到指定的冷块420和422,且擦除块412处的数据。可将有效数据部分地复制到块420且部分地复制到块422。如本文中所描述,当块412的VTC超出阈值VTC时,可将有效数据复制到块420且部分地复制到块422。在一些实施例中,当块410、412和414的VTC超出VTC阈值时,可执行存储器管理操作。
参考图4D,来自块414的有效数据已复制到块422中。最初存储在图4A中的块410、412和414中的所有有效数据现在驻留在块420和422中。因此,来自冷块的冷有效数据合并到尽可能少的块中。因此,可存储后续数据的可用块的数量已从2个完整块增加到3个完整块,增加了50%。块410、412和414中的每一个已进行垃圾收集且有效数据合并到块420和422中。应注意,图4A到4D是说明性的,且不应被理解为限于所描绘的操作。其它操作可在所描绘的操作(例如,读取和写入操作)中的每一个中发生。另外,所描绘的块中的每一个可位于存储器子系统中的任何地方,且不需要彼此接近。
图5为根据本公开的一些实施例的对应于基于VTC的存储器管理的流程540图。在一些实施例中,流程540可表示可由计算系统的处理器执行的指令。举例来说,流程540可说明如图1中所说明的基于VTC的存储器管理组件113的执行。
在操作541处,流程540可接收应执行存储器管理操作的指令。举例来说,指令可指示应执行折叠操作。在一些实施例中,流程540可识别特定存储器管理操作已由事件发起且发起流程540,以确定已发起的存储器管理操作的类型且利用选定目的地块来执行特定存储器管理操作。
在操作542处,流程540可确定存储器管理操作是否为可靠性折叠。当存储器管理操作是可靠性折叠时,流程540可移动到块545。在操作545处,流程540可识别具有低擦除计数速率(例如,编程擦除计数速率)的目的地块。如本文中所描述,流程540可基于存储器管理操作的类型(例如,可靠性折叠等)而识别具有低擦除计数速率的目的地块。
当存储器管理操作不是可靠性折叠时,流程540可移动到块543。在操作543处,流程540可确定存储器管理操作是否为编程后时间(TAP)折叠。当存储器管理操作是TAP折叠时,流程540可移动到块546。在操作546处,流程540可确定TAP折叠候选块的有效转换单元计数。在操作548处,流程540可确定VTC是否等于或超出阈值(例如,VTC阈值等)。当TAP折叠候选块的VTC等于或超出阈值时,流程540可移动到块552。如本文中所描述,阈值可基于与TAP折叠相关联的目的地块内可用的空间。当TAP折叠候选块的VTC小于阈值时,流程540可移动到块544。
当存储器管理操作不是操作543处的TAP折叠时,流程540可移动到块544。在操作544处,流程540可确定存储器管理操作是否为静态耗损均衡(SWL)折叠。当存储器管理操作是SWL折叠时,流程540可移动到块547。在操作547处,流程540可确定SWL折叠候选块的VTC。在操作550处,流程540可合并TAP VTC和SWL VTC。如本文中所描述,合并TAP VTC和SWL VTC包含组合来自TAP候选块的有效数据和来自SWL候选块的有效数据以用作要执行的存储器管理操作的单个有效数据源。
在操作553处,流程540可确定合并的TAP VTC和SWL VTC是否等于或超出阈值。当合并的TAP VTC和SWL VTC等于或超出阈值时,流程540可移动到块552。当合并的TAP VTC和SWL VTC小于阈值时,流程540可移动到块551。在操作551处,流程540可合并剩余TAP VTC且移动到块545。以此方式,流程540可包含在合并的第一VTC和第二VTC低于VTC阈值时更改对其执行存储器管理操作的目的地块。在一些实施例中,由于TAP VTC可能需要折叠或可能需要执行特定存储器管理操作,所以流程540可合并剩余TAP VTC。以此方式,在操作545处,可利用合并的剩余TAP VTC以利用具有相对低的擦除计数速率的目的地块来执行存储器管理操作。在一些实施例中,块545可利用具有相对低的擦除计数速率的目的地块来执行可靠性折叠,且块552可利用具有相对高的擦除计数速率的目的地块来执行TAP折叠。一旦执行存储器管理操作,流程540就可移动到块554以结束流程540。
图6为根据本公开的一些实施例的对应于用于基于VTC的存储器管理的方法650的流程图。方法650可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法650由图1的基于VTC的存储器管理组件113执行。虽然以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,且一些过程可并行执行。另外,可以在各种实施例中省略一个或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流程是可能的。
在操作652处,可针对第一存储器单元块确定第一有效转换单元计数(VTC)。如本文中所描述,第一存储器单元块可包含特定存储器管理操作要利用的存储器单元的候选块。在块654处,方法650可包含当第一VTC低于对应于存储器管理操作的执行的VTC阈值时,确定第二存储器单元块的第二VTC。如本文中所描述,第二存储器单元块可不同于第一存储器单元块。举例来说,第一存储器单元块可为第一存储器管理操作的候选块,且第二存储器单元块可为第二存储器管理操作的候选块。在一些实施例中,第二存储器单元块是在合并第一VTC之前作为不同类型的存储器管理操作的候选者的存储器单元块。
在操作656处,当合并的第一VTC和第二VTC等于或超出对应于存储器管理操作的执行的VTC阈值时,可合并第一VTC和第二VTC。也就是说,第一VTC可与第二VTC组合以用于存储器管理操作。在一些实施例中,VTC阈值可基于与对其执行存储器管理操作的目的地块相关联的特性。举例来说,VTC阈值可基于对其执行存储器管理操作的目的地块的开放存储器单元的数量。
在操作658处,可利用合并的第一VTC和第二VTC来执行存储器管理操作。方法650可进一步包含在合并的第一VTC和第二VTC低于VTC阈值时更改对其执行存储器管理操作的目的地块。举例来说,可合并第一VTC和第二VTC以供利用第一目的地块的第一存储器管理操作利用。在此实例中,当合并的第一VTC和第二VTC低于VTC阈值时,利用第二目的地块的第二存储器管理操作可利用合并的第一VTC和第二VTC。
在一些实施例中,方法650可包含至少部分地基于触发存储器管理操作的事件已发生的确定而识别存储器管理操作的类型,和/或至少部分地基于存储器管理操作的所确定类型而确定对其执行存储器管理操作的目的地块。如本文中所描述,事件可包含来自计算模块的用以发起或执行存储器管理操作的信号。在一些实施例中,可利用所述信号来确定要执行的存储器管理操作的类型。
图7为本公开的实施例可在其中操作的实例计算机系统700的框图。举例来说,图7说明计算机系统700的实例机器,在所述计算机系统内可执行用于使所述机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的基于VTC的存储器管理组件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可进一步包含网络接口装置708以经由网络720通信。
数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体),其上存储有一或多组指令726或体现本文中所描述的方法或功能中的任何一或多种的软件。指令726还可在其由计算机系统700执行期间完全或至少部分地驻留在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718和/或主存储器704可对应于图1的存储器子系统110。
在一个实施例中,指令726包含用于实施对应于基于VTC的存储器管理组件(例如,图1的基于VTC的存储器管理组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体724展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行的一组指令且使机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域其它技术人员的方式。算法在这里且通常认为是引起所要结果的操作的自洽序列。操作为要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。已证明,有时,主要出于普遍使用的原因,将这些信号称为位、值、要素、符号、字符、术语、数字等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标签。本公开可涉及将计算机系统的寄存器及存储器内的表示为物理(电子)量的数据操纵和变换为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作及过程。
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,所述计算机可读存储媒体例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文中呈现的算法和显示在本质上与任何特定的计算机或其它设备无关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明建构用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,所述计算机程序产品或软件可包含上面存储有可用以对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。
在前述说明书中,本公开的实施例已经参考其特定实例实施例进行描述。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应在说明性意义上而非限制性意义上看待。
Claims (20)
1.一种验证基于转换单元计数的存储器管理的方法(650),其包括:
确定第一存储器单元块(410、412、414、420、422)的第一有效转换单元计数VTC;
当所述第一VTC低于对应于存储器管理操作的执行的VTC阈值时,确定第二存储器单元块(410、412、414、420、422)的第二VTC;
当合并的第一VTC和所述第二VTC等于或超出对应于所述存储器管理操作的所述执行的所述VTC阈值时,合并所述第一VTC和所述第二VTC;以及
利用所述合并的第一VTC和所述第二VTC来执行所述存储器管理操作。
2.根据权利要求1所述的方法,其中所述第二存储器单元块是在合并所述第一VTC之前作为不同类型的存储器管理操作的候选者的存储器单元块。
3.根据权利要求1至2中任一权利要求所述的方法,其进一步包括在所述合并的第一VTC和所述第二VTC低于所述VTC阈值时更改对其执行所述存储器管理操作的目的地块。
4.根据权利要求1至2中任一权利要求所述的方法,其进一步包括:
至少部分地基于触发所述存储器管理操作的事件已发生的确定而识别所述存储器管理操作的类型;以及
至少部分地基于所述存储器管理操作的所确定类型而确定对其执行所述存储器管理操作的目的地块。
5.根据权利要求4所述的方法,其中所述VTC阈值是基于与对其执行所述存储器管理操作的所述目的地块相关联的特性。
6.一种用于验证基于转换单元计数的存储器管理的设备(100、110),其包括:
基于有效转换单元计数VTC的存储器管理组件(113),其经配置以:
确定由事件触发的第一存储器管理操作的存储器管理操作类型;
基于第一存储器管理操作类型而确定所述第一存储器管理操作的目的地块(410、412、414、420、422);
确定与所述第一存储器管理操作的第一候选块(410、412、414、420、422)相关联的第一有效转换单元计数VTC;
当所述第一VTC低于VTC阈值时,确定与第二存储器管理操作的第二候选块(410、412、414、420、422)相关联的第二VTC;且
利用所述第一VTC和第二VTC来执行所述第一存储器管理操作。
7.根据权利要求6所述的设备,其中所述第二存储器管理操作是与所述第一存储器管理操作相同的存储器管理操作类型。
8.根据权利要求6所述的设备,其中所述第一存储器管理操作是编程后时间TAP折叠,且所述第二管理操作是静态耗损均衡SWL折叠。
9.根据权利要求8所述的设备,其中所述第一VTC包括TAP折叠候选块的VTC,且所述第二VTC包括SWL折叠候选块的VTC。
10.根据权利要求6至8中任一权利要求所述的设备,其中当所述存储器管理操作类型是可靠性折叠时,所述目的地块被确定为低擦除计数速率目的地块,且当所述存储器管理操作类型是TAP折叠或SWL折叠时,所述目的地块被确定为高擦除计数速率目的地块。
11.根据权利要求10所述的设备,其中所述低擦除计数速率对应于在一段时间内执行的低于擦除循环阈值数量的擦除循环数量,且所述高擦除计数速率对应于在一段时间内执行的高于所述擦除循环阈值数量的擦除循环数量。
12.根据权利要求6至8中任一权利要求所述的设备,其中所述基于VTC的存储器管理组件经配置以在所述第一VTC超出所述阈值VTC时仅利用所述第一VTC来执行所述第一存储器管理操作。
13.根据权利要求6至8中任一权利要求所述的设备,其中所述基于VTC的存储器管理组件经配置以:
基于第三存储器管理操作类型而确定第三存储器管理操作的不同目的地块;且
当组合的第一VTC和第二VTC低于所述VTC阈值时,仅利用所述第一VTC来执行所述第三存储器管理操作。
14.一种用于基于有效转换单元计数的存储器管理的系统(100、110、330),其包括:
多个存储器组件,其经布置以形成包括多个交错NAND存储器单元的多个超级块的可堆叠交叉网格化阵列;以及
处理装置(117),其耦合到所述多个存储器组件,所述处理装置用以执行包括以下各项的操作:
识别多个存储器管理操作的目的地块(410、412、414、420、422)的类型,其中目的地块(410、412、414、420、422)的所述类型包括擦除计数速率,其对应于随时间校正错误位数量的擦除计数操作;
识别所述多个存储器管理操作中的第一存储器管理操作的触发;
当所述第一存储器管理操作利用第一类型的目的地块时执行所述第一存储器管理操作;
识别所述多个存储器管理操作中的第二存储器管理操作的触发;
确定所述第二存储器管理操作的第一候选块(410、412、414、420、422)的第一VTC低于VTC阈值;
将所述第一候选块(410、412、414、420、422)的所述第一VTC与第三存储器管理操作的第二候选块的第二VTC组合;以及
当所述候选块的所述第一VTC和所述第二VTC的组合超出所述VTC阈值时执行所述第二存储器管理操作,其中所述第二存储器管理操作利用第二类型的目的地块(410、412、414、420、422)。
15.根据权利要求14所述的系统,其中所述第三存储器管理操作利用所述第二类型的目的地块。
16.根据权利要求14所述的系统,其中所述第一类型的目的地块包括具有低于阈值擦除计数速率的擦除计数速率的目的地块,且所述第二类型的目的地块包括具有高于所述阈值擦除计数速率的擦除计数速率的目的地块。
17.根据权利要求14至16中任一权利要求所述的系统,其中所述处理装置用以执行包括以下操作的操作:当所述第一VTC和所述第二VTC的所述组合低于所述VTC阈值时,用所述第一VTC和所述第二VTC的所述组合执行所述第一存储器管理操作。
18.根据权利要求17所述的系统,其中所述处理装置用以执行包括以下操作的操作:利用所述第一类型的目的地块用所述第一VTC和所述第二VTC的所述组合执行所述第一存储器管理操作。
19.根据权利要求14至16中任一权利要求所述的系统,其中所述第一存储器管理操作是可靠性折叠操作,所述第二存储器管理操作是编程后时间折叠操作,且所述第三存储器管理操作是基于耗损均衡的折叠操作。
20.根据权利要求14至16中任一权利要求所述的系统,其中所述处理装置用以执行包括以下操作的操作:当执行所述第二存储器管理操作时,将对应于所述第一VTC和所述第二VTC的数据标记为冷数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/196,629 | 2021-03-09 | ||
US17/196,629 US11404133B1 (en) | 2021-03-09 | 2021-03-09 | Valid translation unit count-based memory management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115048039A true CN115048039A (zh) | 2022-09-13 |
CN115048039B CN115048039B (zh) | 2023-09-05 |
Family
ID=82652500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210203666.1A Active CN115048039B (zh) | 2021-03-09 | 2022-03-03 | 用于基于有效转换单元计数的存储器管理的方法、设备和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11404133B1 (zh) |
CN (1) | CN115048039B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110035472A1 (en) * | 2009-08-10 | 2011-02-10 | Freeport Technologies, Inc. | Desktop secure video teleconferencing |
CN102467961A (zh) * | 2010-11-09 | 2012-05-23 | 香港科技大学 | 静态随机访问存储器及其控制方法 |
US20160139812A1 (en) * | 2014-11-14 | 2016-05-19 | Sk Hynix Memory Solutions Inc. | Hot-cold data separation method in flash translation layer |
KR20160068108A (ko) * | 2014-12-04 | 2016-06-15 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 관리 방법 |
CN111142784A (zh) * | 2018-11-06 | 2020-05-12 | 美光科技公司 | 存储器元件配置处理和操作调整 |
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 |
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 |
KR20200027858A (ko) * | 2018-09-05 | 2020-03-13 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR20200064499A (ko) * | 2018-11-29 | 2020-06-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20210092988A (ko) * | 2020-01-17 | 2021-07-27 | 에스케이하이닉스 주식회사 | 가비지 콜렉션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법 |
-
2021
- 2021-03-09 US US17/196,629 patent/US11404133B1/en active Active
-
2022
- 2022-03-03 CN CN202210203666.1A patent/CN115048039B/zh active Active
- 2022-07-07 US US17/859,926 patent/US11791000B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110035472A1 (en) * | 2009-08-10 | 2011-02-10 | Freeport Technologies, Inc. | Desktop secure video teleconferencing |
CN102467961A (zh) * | 2010-11-09 | 2012-05-23 | 香港科技大学 | 静态随机访问存储器及其控制方法 |
US20160139812A1 (en) * | 2014-11-14 | 2016-05-19 | Sk Hynix Memory Solutions Inc. | Hot-cold data separation method in flash translation layer |
KR20160068108A (ko) * | 2014-12-04 | 2016-06-15 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 관리 방법 |
CN111142784A (zh) * | 2018-11-06 | 2020-05-12 | 美光科技公司 | 存储器元件配置处理和操作调整 |
Also Published As
Publication number | Publication date |
---|---|
CN115048039B (zh) | 2023-09-05 |
US11791000B2 (en) | 2023-10-17 |
US20220343984A1 (en) | 2022-10-27 |
US11404133B1 (en) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11682446B2 (en) | Selective wordline scans based on a data state metric | |
CN113035262B (zh) | 存储器子系统中奇偶校验数据的管理 | |
US11762767B2 (en) | Storing highly read data at low impact read disturb pages of a memory device | |
US11733892B2 (en) | Partial superblock memory management | |
US11934268B2 (en) | Memory sub-system using partial superblocks | |
US20220050772A1 (en) | Data block switching at a memory sub-system | |
US11907536B2 (en) | Data dispersion-based memory management | |
US11720259B2 (en) | Selective dummy writes for asynchronous power loss handling in memory devices | |
US20230069382A1 (en) | Managing host input/output in a memory system executing a table flush | |
CN115048040A (zh) | 基于有效数据的比率的媒体管理操作 | |
CN115048039B (zh) | 用于基于有效转换单元计数的存储器管理的方法、设备和系统 | |
US11670376B2 (en) | Erasing partially-programmed memory unit | |
US11599286B2 (en) | Data age and validity-based memory management | |
US11967386B2 (en) | Memory sub-system for memory cell touch-up | |
US20240192878A1 (en) | Media management | |
US20230015066A1 (en) | Memory sub-system for monitoring mixed mode blocks | |
US20240028259A1 (en) | Buffer allocation for reducing block transit penalty | |
CN115273925A (zh) | 存储器子系统刷新 | |
CN115223637A (zh) | 基于电压阈值预测的存储器管理 | |
CN113126899A (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 |