CN117149057A - 用于控制垃圾收集源块中的有效数据计数变化的方法和装置 - Google Patents
用于控制垃圾收集源块中的有效数据计数变化的方法和装置 Download PDFInfo
- Publication number
- CN117149057A CN117149057A CN202310630588.8A CN202310630588A CN117149057A CN 117149057 A CN117149057 A CN 117149057A CN 202310630588 A CN202310630588 A CN 202310630588A CN 117149057 A CN117149057 A CN 117149057A
- Authority
- CN
- China
- Prior art keywords
- block
- garbage collection
- valid data
- blocks
- collection source
- 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
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000015654 memory Effects 0.000 claims description 146
- 238000012545 processing Methods 0.000 claims description 78
- 238000003860 storage Methods 0.000 claims description 25
- 238000004378 air conditioning Methods 0.000 claims 11
- 238000007726 management method Methods 0.000 description 41
- 230000008569 process Effects 0.000 description 24
- 238000004891 communication Methods 0.000 description 7
- 238000003491 array Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 230000003321 amplification Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/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
- 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/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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
-
- 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]
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)
- Memory System (AREA)
Abstract
本公开涉及用于控制垃圾收集源块中的有效数据计数变化的方法和装置。基于有效数据计数约束而识别来自存储器装置的块集合的块子集。基于第一块的有效数据计数而从所述块子集中选择所述第一块。基于第二块的数据温度而从所述块子集中选择所述第二块。根据一或多个比较准则执行所述第一块与所述第二块的比较。基于所述比较将所述第一块或所述第二块选择为垃圾收集源块。在所述垃圾收集源块处执行垃圾收集。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及控制存储器子系统的垃圾收集源块中的有效数据计数变化。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统在存储器装置处存储数据且从存储器装置检索数据。
发明内容
根据本公开的一方面,提供一种存储器子系统。所述存储器子系统包括:存储器装置,其包括块集合;及处理装置,其以操作方式与存储器装置耦合以执行包括以下各者的操作:基于有效数据计数约束而识别来自块集合的块子集;使用第一垃圾收集源块选择方案基于第一块的有效数据计数而从块子集中选择第一块,所述第一块的有效数据计数包括所述块中存储有效数据的页的数目;使用第二垃圾收集源块选择方案基于第二块的数据温度而从块子集中选择第二块,所述第二块的数据温度对应于更新由第二块存储的数据的频率;根据一或多个比较准则执行第一块与第二块的比较;基于所述比较将第一块或第二块选择为垃圾收集源块;及在垃圾收集源块处执行垃圾收集。
根据本公开的另一方面,提供一种方法。所述方法包括:由处理装置基于有效数据计数约束而识别来自存储器装置的块集合的块子集;使用第一垃圾收集源块选择方案基于第一块的有效数据计数而从块子集中选择第一块,所述第一块的有效数据计数包括所述块中存储有效数据的页的数目;使用第二垃圾收集源块选择方案基于第二块的数据温度而从块子集中选择第二块,所述第二块的数据温度对应于更新由第二块存储的数据的频率;由处理装置根据一或多个比较准则执行第一块与第二块的比较;由处理装置基于所述比较将第一块或第二块选择为垃圾收集源块;及在垃圾收集源块处执行垃圾收集。
根据本公开的又另一方面,提供一种非暂时性计算机可读存储媒体。所述非暂时性计算机可读存储媒体包括指令,所述指令在由处理装置执行时配置处理装置以执行包括以下各者的操作:基于有效数据计数约束而识别来自存储器装置的块集合的块子集;使用第一垃圾收集源块选择方案基于第一块的有效数据计数而从块子集中选择第一块,所述第一块的有效数据计数包括所述块中存储有效数据的页的数目;使用第二垃圾收集源块选择方案基于第二块的数据温度而从块子集中选择第二块,所述第二块的数据温度对应于更新由第二块存储的数据的频率;根据一或多个比较准则执行第一块与第二块的比较;基于所述比较将第一块或第二块选择为垃圾收集源块;及在垃圾收集源块处执行垃圾收集。
附图说明
根据下文给出的详细描述且根据本公开的各种实施例的随附图式将更加充分地理解本公开。
图1为绘示根据本公开的一些实施例的包含存储器子系统的实例计算系统的框图。
图2A和2B为绘示根据本公开的一些实施例的在执行用于选择垃圾收集源块以控制有效数据计数变化的方法时存储器子系统的组件之间的实例交互的概念图。
图3和4为绘示根据本公开的一些实施例的用于选择控制有效数据计数变化的垃圾收集源块的方法的流程图。
图5为绘示根据本公开的一些实施例的用于选择控制有效数据计数变化的垃圾收集源块的方法的流程图。
图6为可在其中操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的各方面涉及控制存储器子系统中的垃圾收集源块中的有效数据计数(VDC)的变化。存储器子系统可为存储装置(例如,固态硬盘(SSD))、存储器模块或存储装置与存储器模块的组合。下文结合图1描述其它存储装置和存储器模块的实例。一般来说,主机系统可利用存储器子系统,所述存储器子系统包含一或多个组件,例如存储数据的存储器装置。主机系统可提供待存储在存储器子系统处的数据,且可请求待从存储器子系统检索的数据。
存储器装置可为非易失性存储器装置。非易失性存储器装置的一个实例为“与非”(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置中的每一个可包含一或多个存储器单元阵列。存储器单元(“单元”)为存储信息的电子电路。取决于单元类型,单元可存储二进制信息的一或多个位,且具有与正存储的位的数目相关的各种逻辑状态。逻辑状态可由二进制值(例如,“0”和“1”)或这类值的组合表示。
可在存储器单元上执行各种存储器存取操作。数据可写入到存储器单元、从存储器单元读取且从存储器单元擦除。存储器单元可分组到写入单元(例如,页)中。对于一些类型的存储器装置,页为最小写入单元。页大小表示页的单元的特定数目。对于一些类型的存储器装置(例如,NAND),存储器单元可分组到擦除单元(例如,作为页群组的物理块)中。物理块为页(单元行)和串(单元列)的2维存储器阵列。可将数据逐页写入到块。数据可在块层级处被擦除。然而,块的部分无法被擦除。
垃圾收集为在存储器装置处执行以提高写入性能的过程。一般来说,垃圾收集的目标是通过保持尽可能多的空块来优化空间且提高存储器装置的效率,使得存储器装置在执行写入操作之前不必等待块被擦除。作为实例,当主机系统将新数据写入到存储器装置的所使用块时,块中具有过期数据的页无法被使用,直到它们被擦除,但如上文所提及,数据在块层级处而非在页层级处被擦除。作为对存储器装置管理的额外挑战,具有含有过期数据的页的块可包含含有有效数据的若干页,其被称为块的VDC。为了能够使用具有过期数据的页,执行垃圾收集。在垃圾收集的情况下,含有有效数据的页必须复制到空块,且前一块在能够被使用之前被完全擦除。更具体地说,垃圾收集包含将具有有效数据的所有页复制到空块,用新位置更新逻辑块地址(LBA),用过期数据擦除包含所述页的块,且将所述块添加到空闲块池。数据的这一持续移位可产生比主机系统所请求的多得多的编程/擦除(P/E)循环,这一情形被称为写入放大。
在将有效数据移动到新块之后要擦除的块被称为“垃圾收集源块”。在第一垃圾收集方案中,垃圾收集源块为具有最低VDC的块。这一方案通常被称为“贪婪VDC方案”或“最小VDC方案”。第二垃圾收集方案通过识别潜在垃圾收集源块的“数据温度”且基于VDC和块的数据温度选择最佳块而尝试减小写入放大。如本文中所使用,块的“数据温度”是指更新由块存储的数据的频率。这些方案的选择准则尝试将“热”数据(频繁更新的数据)、“冷”数据(不频繁更新的数据)和具有各种其它频率的数据隔离到不同目的地块中以优化不同温度的块的GC收集速率,使得减小总体写入放大。这一第二方案亦称为“2D贪婪方案”。
一致的性能对于存储器装置至关重要,以至于制造标准经常规定性能变化的最低要求。在执行垃圾收集时,垃圾收集源块中的VDC的量可能存在波动。现有机制存在于存储器装置中以识别和跟踪垃圾收集与主机写入的稳定比率,用于维持存储器装置中的性能一致性和空闲空间的可用性的双重目的。
与贪婪VDC方案不同,2D贪婪方案经常压缩具有较高VDC的冷数据块以隔离冷数据。这导致VDC的较高波动。尽管存储器装置具有容许VDC波动的能力,如上文所论述,但VDC偏差的幅度和频率可能压倒这些能力。
本公开的各方面用限制垃圾收集源块中的VDC偏差的幅度和频率的垃圾收集源块选择的方法来解决传统垃圾收集方案的缺陷。与一些实施例一致,存储器子系统的垃圾收集管理组件确定存储器装置中的每一块的VDC且识别具有满足VDC约束的VDC的块(例如,通过具有低于VDC阈值的VDC)。从所识别块中,垃圾收集管理组件使用第一垃圾收集方案(例如,上文所描述的贪婪VDC方案)将第一块选择为潜在垃圾收集源块。垃圾收集管理组件使用第二垃圾收集方案(例如,上文所描述的2D贪婪VDC方案)从所识别块中将第二块选择为另一潜在垃圾收集源块。垃圾收集管理组件将第一块与第二块进行比较,且基于一或多个比较准则将块中的一个选择为垃圾收集源块。接着由垃圾收集管理组件根据垃圾收集源块选择执行垃圾收集。
对于一些实施例,垃圾收集管理组件跟踪多个垃圾收集源块选择(例如,存储器装置中具有在最小VDC的预定范围内的VDC的块的选择),且基于其产生历史日志数据。垃圾收集管理组件可使用历史日志数据选择垃圾收集源块。举例来说,垃圾收集管理组件可基于第二块的连续选择的数目而将第一块选择为垃圾收集源块。如同上文所描述的选择过程,由垃圾收集管理组件根据垃圾收集源块选择执行垃圾收集。
对于一些实施例,垃圾收集管理组件跟踪存储器装置在一段时间内的性能。在一个窗口周期内以一定间隔对性能进行采样,且将样本的日志存储在存储器中。性能的变化可用作选择第一垃圾收集源块或第二垃圾收集源块的准则。
当进行热/冷数据分离时,利用上文提及的垃圾收集方法通过减少垃圾收集源块的VDC的变化来提高存储器装置性能一致性。如上文所指出,当隔离热数据和冷数据时,经常压缩具有高有效数据计数的冷块,这导致主机写入与垃圾收集写入比率的波动,从而可能导致主机性能的不一致。本文中所描述的方法通过选择性地使用热/冷数据隔离方案来最小化这些波动而提高性能一致性。
图1绘示根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
存储器子系统110可为存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态硬盘(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、启用物联网(IoT)的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的这类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1绘示耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与……耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,不具有中间组件),无论有线还是无线,包含例如电连接、光学连接、磁性连接等连接。
主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110来例如将数据写入到存储器子系统110和从存储器子系统110读取数据。
主机系统120可经由主机接口耦合到存储器子系统110。主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、USB接口、光纤通道、串行附接SCSI(SAS)、小型计算机系统接口(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中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC)每单元,可存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC),可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分、MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为可指代用于存储数据的存储器装置的逻辑单元的页。对于一些类型的存储器(例如,NAND),页可被分组以形成块。举例来说,存储器装置可包含块集合。设计规格可定义对存储器装置130的有效块的最小数目的约束,所述最小数目可不同于装置上的所述块集合中的块的数目。
尽管描述了非易失性存储器组件,例如NAND型快闪存储器(例如,2D NAND、3DNAND)和3D交叉点非易失性存储器单元阵列,但存储器装置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通信。主机接口电路系统可将从主机系统120接收到的命令转换成命令指令以存取存储器装置130和/或存储器装置140,且将与存储器装置130和/或存储器装置140相关联的响应转换成用于主机系统120的信息。
在一些实施例中,存储器装置130包含结合存储器子系统控制器115操作以对存储器装置130和140的一或多个存储器单元执行操作的本地媒体控制器135。
存储器子系统110还包含负责管理存储器子系统110内的垃圾收集过程的垃圾收集管理组件113。作为管理存储器子系统110内的垃圾收集的部分,垃圾收集管理组件113针对每一垃圾收集循环从存储器装置130和140的块当中选择垃圾收集源块。在每一垃圾收集循环处,垃圾收集管理组件113利用多个垃圾收集方案为垃圾收集源块选择多个候选者,且基于根据一或多个比较准则的候选者的比较而将块中的一个选择为垃圾收集源块。下文论述关于由垃圾收集管理组件113进行的垃圾收集源块选择的其它细节。
在一些实施例中,存储器子系统控制器115包含垃圾收集管理组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),所述处理器配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,垃圾收集管理组件113为主机系统120、应用程序或操作系统的部分。在一些实施例中,本地媒体控制器135包含垃圾收集管理组件113的至少一部分。
图2A和2B为绘示根据本公开的一些实施例的在执行用于选择垃圾收集源块以控制有效数据计数变化的方法时存储器子系统的组件之间的实例交互的概念图。
在所说明实例中,存储器装置202为呈包含多个存储器块(例如,存储器块204)的NAND存储器装置的实例形式的实例存储器装置130。NAND存储器块204包含二维(2D)阵列,其包含页(行)和串(列)。三维(3D)NAND型快闪存储器装置包含多个平面,所述多个平面中的每一个包含存储器块集合204。串包含串联连接的多个存储器单元。每一存储器单元用于表示一或多个位值。单个NAND快闪单元包含在存储器层上存储电荷的晶体管,所述存储器层通过在上方和下方的氧化物绝缘层隔离。
如图2A中所展示,在操作206处,垃圾收集管理组件113确定存储器装置202中的每一块204的VDC。块的VDC指代块中存储有效数据的页的数目。基于块204的所确定VDC,垃圾收集管理组件113识别满足指定VDC阈值的VDC约束的块子集204(操作208)。具有低于VDC阈值的VDC的块204满足VDC约束。因此,垃圾收集管理组件113识别具有低于VDC阈值的VDC的块子集204。
从块子集204中,垃圾收集管理组件113使用第一垃圾收集方案将第一块选择为第一候选垃圾收集源块(操作210),且使用第二垃圾收集方案将第二块选择为第二候选垃圾收集源块(操作212)。对于一些实施例,第一垃圾收集方案导致选择块子集204当中的具有最低VDC(也称为存储器装置202的“最小VDC”)的块204,且第二垃圾收集方案导致基于数据温度和VDC的组合选择块204。块的数据温度是指更新由块存储的数据的频率。作为第二垃圾收集方案的实例,垃圾收集管理组件113可基于以下各者中的任何一或多者而计算子集中的每一块204的得分:数据温度、VDC、由主机系统给出的一或多个识别符、含有特定温度的数据的块的总数目、具有特定温度的数据的主机业务的量,和在块处执行的编程/擦除循环的数目,且选择具有最低得分的块。
垃圾收集管理组件113在操作214处将第一块与第二块进行比较,且在操作216处将第一块或第二块选择为垃圾收集源块。垃圾收集管理组件113可利用一或多个比较准则来将第一块与第二块进行比较且选择垃圾收集源块。在实例中,垃圾收集管理组件113将基于一或多个比较准则的加权因子应用于第一块的VDC,且将第一块的经加权VDC与第二块的VDC进行比较。如果第二块的VDC大于经加权VDC值,那么垃圾收集管理组件113将第一块(例如,具有最低VDC的块)选择为垃圾收集源块。如果第二块的VDC等于或小于经加权VDC,那么垃圾收集管理组件113将第二块选择为垃圾收集源块。随后根据垃圾收集源块选择执行垃圾收集。
垃圾收集管理组件113可在每一垃圾收集循环处重复上文所描述的垃圾收集源块选择过程,且如图2B中所展示,垃圾收集管理组件113在操作250处跟踪每一垃圾收集源块选择。也就是说,垃圾收集管理组件113跟踪在每一垃圾收集循环处将哪一块选择为垃圾收集源块,以及用于选择被选择为垃圾收集源块的所述块的垃圾收集方案。在操作252处,垃圾收集管理组件113基于所述跟踪生成且存储历史日志数据。历史日志数据包含在每一垃圾收集源块选择处选择哪一块的指示。对于一些实施例,垃圾收集管理组件113仅跟踪垃圾收集源块选择的子集。举例来说,垃圾收集管理组件113可仅跟踪选择存储器装置202中具有在最小VDC的预定义范围内的VDC的块。
垃圾收集管理组件113可使用历史日志数据作为垃圾收集源块选择的基础用于垃圾收集的后续迭代(在操作254处)。举例来说,垃圾收集管理组件113可基于同一块的连续垃圾源块选择的数目而选择垃圾收集源块。也就是说,通过返回参考上文参考图2A所论述的第一块和第二块,如果作为垃圾收集源块的第一块的连续选择的数目超过连续选择的预定义阈值数目,那么处理装置可将第二块选择为垃圾收集源块。反之亦然,如果作为垃圾收集源块的第二块的连续选择的数目超过连续选择的预定义阈值数目,那么处理装置可将第一块选择为垃圾收集源块。如同上文所描述的过程,根据由垃圾收集管理组件113选择的垃圾收集源块执行垃圾收集。
图3和4为绘示根据本公开的一些实施例的用于选择控制有效数据计数变化的垃圾收集源块的方法的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的垃圾收集管理组件113执行。尽管以特定序列或次序展示过程,但除非另外指定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程是可能的。
方法300在操作305处开始,其中处理装置确定存储器装置(例如,存储器装置130)的每一块的VDC。如先前所指出,块的VDC指示块中存储有效数据的页的数目。
在操作310处,处理装置基于针对存储器装置中的每一块确定的VDC而识别存储器装置中的满足VDC约束的块子集。VDC约束包括阈值VDC。在确定给定块是否满足VDC约束时,处理装置确定所述块的VDC是否低于阈值VDC。
在操作315处,处理装置将所识别子集中的每一块的识别符存储在表中或存储器(例如,本地存储器119)中的其它数据结构中。对于每一块,处理装置可进一步存储块的VDC。
在操作320处,处理装置使用第一垃圾收集方案基于第一块的VDC而从子集中选择第一块。在第一垃圾收集方案中,选择具有最低VDC的块。因此,由处理装置使用第一垃圾收集方案选择的第一块是由处理装置识别为具有子集中的块的最低VDC的子集中的块。
在操作325处,处理装置使用第二垃圾收集方案部分地基于第二块的数据温度而从子集中选择第二块。如先前所指出,块的数据温度是指更新由块存储的数据的频率。对于一些实施例,使用第二垃圾收集方案的垃圾源块选择包含基于给定块的数据温度、VDC和在块处执行的编程/擦除循环的数目的组合而计算每一块的得分。举例来说,假设V表示块的VDC,P表示在块处执行的编程/擦除循环的数目,且T表示块的数据温度。在这一实例中,块的得分S为:
S=f(V,P,T,…)
对于这些实施例,基于第二垃圾收集方案选择子集中的具有最低得分S的块。
在操作330处,处理装置根据一或多个比较准则执行使用第一垃圾收集方案选择的第一块与使用第二垃圾收集方案选择的第二块的比较。在操作335处,处理装置基于所述比较选择垃圾收集源块。也就是说,处理装置基于所述比较将第一块或第二块选择为垃圾收集源块。在操作340处,处理装置在垃圾收集源块处执行垃圾收集。
如图4中所展示,在一些实施例中,方法300可包含操作405、410和415。与这些实施例一致,操作405和410可作为操作330的部分执行,其中处理装置执行使用第一垃圾收集方案选择的第一块与使用第二垃圾收集方案选择的第二块的比较。在操作405处,处理装置基于一或多个比较准则将加权因子应用于第一块的VDC(具有低于VDC阈值的VDC的块子集中的最低VDC)。将加权因子应用于第一块的VDC产生经加权VDC。作为V表示第一块的VDC的实例,处理装置可应用加权因子γ,从而产生经加权VDCγV。在操作410处,处理装置将经加权VDC值与使用第二垃圾收集方案选择的第二块的VDC进行比较。
与这些实施例一致,操作415可作为操作335的部分执行,其中处理装置选择垃圾收集源块。在操作415处,处理装置基于经加权VDC值与第二块的VDC的比较而将第一块或第二块选择为垃圾收集源块。如果第二块的VDC大于经加权VDC值(例如,>γV),那么处理装置将第一块(例如,具有最低VDC的块)选择为垃圾收集源块。如果第二块的VDC等于或小于经加权VDC(例如,≤γV),那么处理装置将第二块选择为垃圾收集源块。可根据垃圾收集源块VDC的历史日志或存储器装置性能的历史日志动态地调整权重γ。
对于一些实施例,可基于呈升序(从最低得分到最高得分)的得分S对存储器装置中的块进行分类。与这些实施例一致,如果第二块的VDC大于经加权VDC值(例如,>γV),那么处理装置选择具有第二高得分S的块,且再次将经加权VDC与第一块进行比较。这一过程继续一些有限迭代,直到找到具有小于第一块的经加权VDC值的VDC的块。如果没有找到这一块,那么处理装置将第一块选择为垃圾收集源块。
图5为绘示根据本公开的一些实施例的用于选择控制有效数据计数变化的垃圾收集源块的方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的垃圾收集管理组件113执行。尽管以特定序列或次序展示过程,但除非另外指定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程是可能的。
在操作505处,处理装置跟踪存储器装置(例如,存储器装置130)的多个垃圾收集源块选择。垃圾收集源块选择是指将存储器装置中的块选择为垃圾收集源块的过程。对于一些实施例,垃圾收集源块选择对应于上文参考方法300所描述的操作335。与这些实施例一致,可重复地执行方法300,且处理装置在每一迭代处监视在操作335处选择哪一块。
在操作510处,处理装置跟踪存储器装置的历史性能。在跟踪存储器装置的历史性能时,处理装置可获得与以下各者中的任何一或多者相关的常规测量:在预定时间周期测量的存储器装置的吞吐量(或带宽);吞吐量的一致性(或带宽变化);和服务质量(每一主机命令请求的等待时间的分布)。
在操作515处,处理装置基于垃圾收集源块选择的跟踪和存储器装置的历史性能而生成历史日志数据。因此,历史日志数据包含垃圾收集源块选择日志数据和存储器装置性能日志数据。垃圾收集源块选择日志数据包含在每一垃圾收集源块选择处选择哪一块的指示。对于一些实施例,处理装置跟踪垃圾收集源块选择的子集。在这些实施例中,垃圾收集源块选择的子集对应于存储器装置中具有在最小VDC的预定义范围内的VDC的块。举例来说,处理装置可跟踪且生成具有在由第一垃圾收集方案选择的块的预定义范围内的VDC的块(例如,在方法300的描述中参考的第一块)的日志数据。存储器装置性能日志数据可例如包括以下各者中的一或多者:在每一时间周期测量的存储器装置的吞吐量(或带宽)的度量;在时间周期当中吞吐量的一致性(或带宽变化)的度量;和在每一时间周期服务质量的度量。
在操作520处,处理装置基于历史日志数据选择垃圾收集源块。举例来说,根据上文参考方法300的描述,处理装置可使用第一垃圾收集方案选择第一块,使用第二垃圾收集方案选择第二块,且基于历史日志数据将第一块或第二块选择为垃圾收集源块。对于一些实例,处理装置基于同一块的连续垃圾源块选择的数目而选择垃圾收集源块。也就是说,如果作为垃圾收集源块的第一块的连续选择的数目超过连续选择的预定义阈值数目,那么处理装置可将第二块选择为垃圾收集源块(在操作520处)。反之亦然,如果作为垃圾收集源块的第二块的连续选择的数目超过连续选择的预定义阈值数目,那么处理装置可将第一块选择为垃圾收集源块(在操作520处)。在操作525处,处理装置根据垃圾收集源块选择执行垃圾收集。
对于一些实施例,处理装置可基于历史日志数据调整权重γ(上文参考图4所论述)。可对由第二垃圾收集方案产生的垃圾收集源块得分进行分类,且可选择满足经加权VDC比较的第一块(在块的最大范围内)。如果不存在这一块,那么处理装置将由第一垃圾收集方案识别的块选择为垃圾收集源块。
主题的所描述实施方案可包含如下文借助于实例所说明的单独或组合的一或多个特征。
实例1为一种存储器子系统,其包括:存储器装置,其包括块集合;及处理装置,其以操作方式与存储器装置耦合以执行包括以下各者的操作:基于有效数据计数约束而识别来自块集合的块子集;使用第一垃圾收集源块选择方案基于第一块的有效数据计数而从块子集中选择第一块,所述第一块的有效数据计数包括所述块中存储有效数据的页的数目;使用第二垃圾收集源块选择方案基于第二块的数据温度而从块子集中选择第二块,所述第二块的数据温度对应于更新由第二块存储的数据的频率;根据一或多个比较准则执行第一块与第二块的比较;基于所述比较将第一块或第二块选择为垃圾收集源块;及在垃圾收集源块处执行垃圾收集。
实例2包含根据实例1所述的系统,其中:有效数据计数约束包括有效数据计数阈值;且识别块子集包括识别具有低于有效数据计数阈值的有效数据计数的一或多个块。
实例3包含根据实例1或2中的任何一或多者所述的系统,其中所述操作进一步包括:确定块集合中的每一块的有效数据计数。
实例4包含根据实例1至3中的任何一或多者所述的系统,其中所述操作进一步包括在存储器中存储对应于块子集的识别符集合,其中选择第一块和第二块包括存取识别符集合。
实例5包含根据实例1至4中的任何一或多者所述的系统,其中选择第一块包括选择块子集当中的具有最低有效数据计数的块。
实例6包含根据实例1至5中的任何一或多者所述的系统,其中从子集中选择第二块包括:基于第二块的数据温度、在第二块处执行的编程/擦除循环的数目和第二块的有效数据计数的组合而确定第二块的得分;及基于第二块的得分在对应于块子集的得分集合当中最低而从块子集中选择第二块。
实例7包含根据实例1至6中的任何一或多者所述的系统,其中根据一或多个比较准则执行第一块与第二块的比较包括:基于一或多个比较准则将权重应用于第一块的有效数据计数,所述将权重应用于有效数据计数产生经加权有效数据计数;将对应于第一块的经加权有效数据计数与第二块的有效数据计数进行比较;及基于将对应于第一块的经加权有效数据计数与第二块的有效数据计数进行比较而选择垃圾收集源块。
实例8包含根据实例1至7中的任何一或多者所述的系统,其中:垃圾收集源块为第一垃圾收集源块;其进一步包括:跟踪多个垃圾收集源块选择;基于所述跟踪生成日志数据,所述日志数据指示在每一垃圾收集源块选择处选择哪一块;及基于日志数据选择第二垃圾收集源块,所述第二垃圾收集源块不同于第一垃圾收集源块。
实例9包含根据实例1至8中的任何一或多者所述的系统,其中多个垃圾收集选择对应于具有在第一块的有效数据计数的预定义范围内的有效数据计数的块。
实例10包含根据实例1至9中的任何一或多者所述的系统,其中选择第二垃圾收集源块是基于对应于第一垃圾收集源块的连续垃圾收集源块选择的数目。
实例11为一种方法,其包括:由处理装置基于有效数据计数约束而识别来自存储器装置的块集合的块子集;使用第一垃圾收集源块选择方案基于第一块的有效数据计数而从块子集中选择第一块,所述第一块的有效数据计数包括所述块中存储有效数据的页的数目;使用第二垃圾收集源块选择方案基于第二块的数据温度而从块子集中选择第二块,所述第二块的数据温度对应于更新由第二块存储的数据的频率;由处理装置根据一或多个比较准则执行第一块与第二块的比较;由处理装置基于所述比较将第一块或第二块选择为垃圾收集源块;及在垃圾收集源块处执行垃圾收集。
实例12包含根据实例11所述的方法,其中:有效数据计数约束包括有效数据计数阈值;且识别块子集包括识别具有低于有效数据计数阈值的有效数据计数的一或多个块。
实例13包含根据实例11或12中的任何一或多者所述的方法,其进一步包括确定块集合中的每一块的有效数据计数。
实例14包含根据实例11至13中的任何一或多者所述的方法,其进一步包括在存储器中存储对应于块子集的识别符集合,其中选择第一块和第二块包括存取识别符集合。
实例15包含根据实例11至14中的任何一或多者所述的方法,其中选择第一块包括选择块子集当中的具有最低有效数据计数的块。
实例16包含根据实例11至15中的任何一或多者所述的方法,其中从子集中选择第二块包括:基于第二块的数据温度、在第二块处执行的编程/擦除循环的数目和第二块的有效数据计数的组合而确定第二块的得分;及基于第二块的得分在对应于块子集的得分集合当中最低而从块子集中选择第二块。
实例17包含根据实例11至16中的任何一或多者所述的方法,其中根据一或多个比较准则执行第一块与第二块的比较包括:基于一或多个比较准则将权重应用于第一块的有效数据计数,所述将权重应用于有效数据计数产生经加权有效数据计数;将对应于第一块的经加权有效数据计数与第二块的有效数据计数进行比较;及基于将对应于第一块的经加权有效数据计数与第二块的有效数据计数进行比较而选择垃圾收集源块。
实例18包含根据实例11至17中的任何一或多者所述的方法,其中:垃圾收集源块为第一垃圾收集源块;其进一步包括:跟踪多个垃圾收集源块选择;基于所述跟踪生成历史日志数据,所述历史日志数据指示在每一垃圾收集源块选择处选择哪一块;及基于历史日志数据选择第二垃圾收集源块,所述第二垃圾收集源块不同于第一垃圾收集源块。
实例19包含根据实例11至18中的任何一或多者所述的方法,其中垃圾收集源块为第一垃圾收集源块;且其进一步包括:跟踪存储器装置的性能;基于所述跟踪存储器装置的性能而生成日志数据,所述日志数据包括以下各者中的一或多者:在一或多个时间周期存储器装置的吞吐量的度量;存储器装置的带宽的度量;在一或多个时间周期当中吞吐量的一致性的度量;在一或多个时间周期当中带宽变化的度量;和在一或多个时间周期服务质量的度量;及基于日志数据选择第二垃圾收集源块。
实例20为一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时配置处理装置以执行包括以下各者的操作:基于有效数据计数约束而识别来自存储器装置的块集合的块子集;使用第一垃圾收集源块选择方案基于第一块的有效数据计数而从块子集中选择第一块,所述第一块的有效数据计数包括所述块中存储有效数据的页的数目;使用第二垃圾收集源块选择方案基于第二块的数据温度而从块子集中选择第二块,所述第二块的数据温度对应于更新由第二块存储的数据的频率;根据一或多个比较准则执行第一块与第二块的比较;基于所述比较将第一块或第二块选择为垃圾收集源块;及在垃圾收集源块处执行垃圾收集。
图6绘示呈计算机系统600的形式的实例机器,在其内可执行指令集以使得所述机器执行本文中所论述的方法中的任何一或多者。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的垃圾收集管理组件113的操作)。在替代性实施例中,机器可连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由所述机器采取的动作的指令集的任何机器。此外,虽然说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述机器单独地或共同地执行一(或多个)指令集以执行本文中所论述的方法中的任何一或多者。
实例计算机系统600包含经由总线630彼此通信的处理装置602、主存储器604(例如,ROM、快闪存储器、例如SDRAM或RDRAM的DRAM等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等)和数据存储系统618。
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更确切地说,处理装置602可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可以是一或多个专用处理装置,例如ASIC、FPGA、数字信号处理器(DSP)、网络处理器等。处理装置602配置成执行用于执行本文中所论述的操作和步骤的指令626。计算机系统600可进一步包含通过网络620通信的网络接口装置608。
数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),在其上存储一或多个指令集626或体现本文中所描述的方法或功能中的任何一或多者的软件。指令626也可在其由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
在一个实施例中,指令626包含实施对应于数据毁坏组件(例如,图1的垃圾收集管理组件113)的功能性的指令。虽然在实例实施例中将机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的任何一或多者的任何媒体。因此应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
已依据对计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里且通常被认为是引起所要结果的操作的自洽序列。所述操作是需要对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电信号或磁信号的形式。有时,已证明主要出于通用的原因将这些信号称为位、值、要素、符号、字符、项、数字等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可指将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。这一设备可出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这一计算机程序可存储在计算机可读存储媒体中,所述计算机可读存储媒体例如但不限于各自耦合到计算机系统总线的包含软盘、光盘、CD-ROM和磁性光盘、ROM、RAM、EPROM、EEPROM、磁性卡或光学卡的任何类型的磁盘或适合于存储电子指令的任何类型的媒体。
本文中所呈现的算法和显示器本质上不与任何特定计算机或其它设备相关。各种通用系统可根据本文中的教示与程序一起使用,或其可证明构造更专用的设备来执行方法是方便的。将如下文描述中所阐述的那样呈现用于多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如ROM、RAM、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,本公开的实施例已参考其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中所阐述的本公开的实施例的更广范围的情况下对本公开进行各种修改。因此,说明书和图式应以说明性意义而非限制性意义看待。
Claims (20)
1.一种存储器子系统,其包括:
存储器装置,其包括块集合;及
处理装置,其以操作方式与所述存储器装置耦合以执行包括以下各者的操作:
基于有效数据计数约束而识别来自所述块集合的块子集;
使用第一垃圾收集源块选择方案基于第一块的有效数据计数而从所述块子集中选择所述第一块,所述第一块的所述有效数据计数包括所述块中存储有效数据的页的数目;
使用第二垃圾收集源块选择方案基于第二块的数据温度而从所述块子集中选择所述第二块,所述第二块的所述数据温度对应于更新由所述第二块存储的数据的频率;
根据一或多个比较准则执行所述第一块与所述第二块的比较;
基于所述比较将所述第一块或所述第二块选择为垃圾收集源块;及
在所述垃圾收集源块处执行垃圾收集。
2.根据权利要求1所述的存储器子系统,其中:
所述有效数据计数约束包括有效数据计数阈值;且
所述识别所述块子集包括识别具有低于所述有效数据计数阈值的有效数据计数的一或多个块。
3.根据权利要求2所述的存储器子系统,其中所述操作进一步包括:
确定所述块集合中的每一块的有效数据计数。
4.根据权利要求1所述的存储器子系统,其中所述操作进一步包括在存储器中存储对应于所述块子集的识别符集合,其中所述选择所述第一块和所述第二块包括存取所述识别符集合。
5.根据权利要求1所述的存储器子系统,其中所述选择所述第一块包括选择所述块子集当中的具有最低有效数据计数的块。
6.根据权利要求1所述的存储器子系统,其中所述从所述子集中选择所述第二块包括:
基于所述第二块的所述数据温度、在所述第二块处执行的编程/擦除循环的数目和所述第二块的有效数据计数的组合而确定所述第二块的得分;及
基于所述第二块的所述得分在对应于所述块子集的得分集合当中最低而从所述块子集中选择所述第二块。
7.根据权利要求1所述的存储器子系统,其中根据所述一或多个比较准则执行所述第一块与所述第二块的所述比较包括:
基于所述一或多个比较准则将权重应用于所述第一块的所述有效数据计数,所述将所述权重应用于所述有效数据计数产生经加权有效数据计数;
将对应于所述第一块的所述经加权有效数据计数与所述第二块的有效数据计数进行比较;及
基于将对应于所述第一块的所述经加权有效数据计数与所述第二块的所述有效数据计数进行比较而选择所述垃圾收集源块。
8.根据权利要求1所述的存储器子系统,其中:
所述垃圾收集源块为第一垃圾收集源块;
其进一步包括:
跟踪多个垃圾收集源块选择;
基于所述跟踪生成历史日志数据,所述历史日志数据指示在每一垃圾收集源块选择处选择哪一块;及
基于所述历史日志数据选择第二垃圾收集源块,所述第二垃圾收集源块不同于所述第一垃圾收集源块。
9.根据权利要求8所述的存储器子系统,其中所述多个垃圾收集选择对应于具有在所述第一块的所述有效数据计数的预定义范围内的有效数据计数的块。
10.根据权利要求8所述的存储器子系统,其中所述选择所述第二垃圾收集源块是基于对应于所述第一垃圾收集源块的连续垃圾收集源块选择的数目。
11.一种方法,其包括:
由处理装置基于有效数据计数约束而识别来自存储器装置的块集合的块子集;
使用第一垃圾收集源块选择方案基于第一块的有效数据计数而从所述块子集中选择所述第一块,所述第一块的所述有效数据计数包括所述块中存储有效数据的页的数目;
使用第二垃圾收集源块选择方案基于第二块的数据温度而从所述块子集中选择所述第二块,所述第二块的所述数据温度对应于更新由所述第二块存储的数据的频率;
由所述处理装置根据一或多个比较准则执行所述第一块与所述第二块的比较;
由所述处理装置基于所述比较将所述第一块或所述第二块选择为垃圾收集源块;及
在所述垃圾收集源块处执行垃圾收集。
12.根据权利要求11所述的方法,其中:
所述有效数据计数约束包括有效数据计数阈值;且
所述识别所述块子集包括识别具有低于所述有效数据计数阈值的有效数据计数的一或多个块。
13.根据权利要求12所述的方法,其进一步包括确定所述块集合中的每一块的有效数据计数。
14.根据权利要求11所述的方法,其进一步包括在存储器中存储对应于所述块子集的识别符集合,其中所述选择所述第一块和所述第二块包括存取所述识别符集合。
15.根据权利要求11所述的方法,其中所述选择所述第一块包括选择所述块子集当中的具有最低有效数据计数的块。
16.根据权利要求11所述的方法,其中所述从所述子集中选择所述第二块包括:
基于所述第二块的所述数据温度、在所述第二块处执行的编程/擦除循环的数目和所述第二块的有效数据计数的组合而确定所述第二块的得分;及
基于所述第二块的所述得分在对应于所述块子集的得分集合当中最低而从所述块子集中选择所述第二块。
17.根据权利要求11所述的方法,其中根据所述一或多个比较准则执行所述第一块与所述第二块的所述比较包括:
基于所述一或多个比较准则将权重应用于所述第一块的所述有效数据计数,所述将所述权重应用于所述有效数据计数产生经加权有效数据计数;
将对应于所述第一块的所述经加权有效数据计数与所述第二块的有效数据计数进行比较;及
基于将对应于所述第一块的所述经加权有效数据计数与所述第二块的所述有效数据计数进行比较而选择所述垃圾收集源块。
18.根据权利要求11所述的方法,其中:
所述垃圾收集源块为第一垃圾收集源块;
其进一步包括:
跟踪多个垃圾收集源块选择;
基于所述跟踪生成历史日志数据,所述历史日志数据指示在每一垃圾收集源块选择处选择哪一块;及
基于所述历史日志数据选择第二垃圾收集源块,所述第二垃圾收集源块不同于所述第一垃圾收集源块。
19.根据权利要求11所述的方法,其中:
所述垃圾收集源块为第一垃圾收集源块;
其进一步包括:
跟踪所述存储器装置的性能;
基于所述跟踪所述存储器装置的所述性能而生成历史日志数据,所述历史日志数据包括以下各者中的一或多者:在一或多个时间周期所述存储器装置的吞吐量的度量;所述存储器装置的带宽的度量;在所述一或多个时间周期当中所述吞吐量的一致性的度量;在所述一或多个时间周期当中带宽变化的度量;和在所述一或多个时间周期服务质量的度量;及
基于所述历史日志数据选择第二垃圾收集源块。
20.一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时配置所述处理装置以执行包括以下各者的操作:
基于有效数据计数约束而识别来自存储器装置的块集合的块子集;
使用第一垃圾收集源块选择方案基于第一块的有效数据计数而从所述块子集中选择所述第一块,所述第一块的所述有效数据计数包括所述块中存储有效数据的页的数目;
使用第二垃圾收集源块选择方案基于第二块的数据温度而从所述块子集中选择所述第二块,所述第二块的所述数据温度对应于更新由所述第二块存储的数据的频率;
根据一或多个比较准则执行所述第一块与所述第二块的比较;
基于所述比较将所述第一块或所述第二块选择为垃圾收集源块;及
在所述垃圾收集源块处执行垃圾收集。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/830,047 US11947452B2 (en) | 2022-06-01 | 2022-06-01 | Controlling variation of valid data counts in garbage collection source blocks |
US17/830,047 | 2022-06-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117149057A true CN117149057A (zh) | 2023-12-01 |
Family
ID=88885017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310630588.8A Pending CN117149057A (zh) | 2022-06-01 | 2023-05-31 | 用于控制垃圾收集源块中的有效数据计数变化的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11947452B2 (zh) |
CN (1) | CN117149057A (zh) |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321238B1 (en) * | 1998-12-28 | 2001-11-20 | Oracle Corporation | Hybrid shared nothing/shared disk database system |
US6341340B1 (en) * | 1998-12-28 | 2002-01-22 | Oracle Corporation | Transitioning ownership of data items between ownership groups |
AU2003272358A1 (en) * | 2002-09-16 | 2004-04-30 | Tigi Corporation | Storage system architectures and multiple caching arrangements |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
US7464216B2 (en) * | 2006-09-29 | 2008-12-09 | Sandisk Corporation | Method for phased garbage collection with state indicators |
JP4912174B2 (ja) * | 2007-02-07 | 2012-04-11 | 株式会社日立製作所 | ストレージシステム及び記憶管理方法 |
US20090043831A1 (en) * | 2007-08-11 | 2009-02-12 | Mcm Portfolio Llc | Smart Solid State Drive And Method For Handling Critical Files |
US8051243B2 (en) * | 2008-04-30 | 2011-11-01 | Hitachi, Ltd. | Free space utilization in tiered storage systems |
US9191437B2 (en) * | 2009-12-09 | 2015-11-17 | International Business Machines Corporation | Optimizing data storage among a plurality of data storage repositories |
US8285918B2 (en) * | 2009-12-11 | 2012-10-09 | Nimble Storage, Inc. | Flash memory cache for data storage device |
US8443263B2 (en) * | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
JP5066209B2 (ja) * | 2010-03-18 | 2012-11-07 | 株式会社東芝 | コントローラ、データ記憶装置、及びプログラム |
US9183134B2 (en) * | 2010-04-22 | 2015-11-10 | Seagate Technology Llc | Data segregation in a storage device |
US9223693B2 (en) * | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
US9734050B2 (en) * | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
US9465731B2 (en) * | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
US9336133B2 (en) * | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
US9348746B2 (en) * | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
US9734911B2 (en) * | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
US8873284B2 (en) * | 2012-12-31 | 2014-10-28 | Sandisk Technologies Inc. | Method and system for program scheduling in a multi-layer memory |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
KR102053865B1 (ko) * | 2013-03-15 | 2019-12-09 | 삼성전자주식회사 | 호스트-주도 가비지 컬렉션 방법과 상기 방법을 수행할 수 있는 시스템 |
US20140325148A1 (en) * | 2013-04-29 | 2014-10-30 | Sang Hoon Choi | Data storage devices which supply host with data processing latency information, and related data processing methods |
WO2015123537A1 (en) * | 2014-02-13 | 2015-08-20 | Ashok Ramu | Virtual data backup |
US10552058B1 (en) * | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
US10120613B2 (en) * | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
US10133490B2 (en) * | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling in a non-volatile memory |
US9778855B2 (en) * | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
US10185658B2 (en) * | 2016-02-23 | 2019-01-22 | Sandisk Technologies Llc | Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes |
US9898203B2 (en) * | 2016-05-20 | 2018-02-20 | Oracle International Corporation | Replacing data structures for process control |
US10739996B1 (en) * | 2016-07-18 | 2020-08-11 | Seagate Technology Llc | Enhanced garbage collection |
US10108544B1 (en) * | 2016-09-26 | 2018-10-23 | EMC IP Holding Company LLC | Dynamic duplication estimation for garbage collection |
KR20180058894A (ko) * | 2016-11-24 | 2018-06-04 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10032488B1 (en) * | 2016-12-29 | 2018-07-24 | Sandisk Technologies Llc | System and method of managing data in a non-volatile memory having a staging sub-drive |
US10255179B2 (en) * | 2016-12-30 | 2019-04-09 | Western Digital Technologies, Inc. | Garbage collection read throttling |
US10430279B1 (en) * | 2017-02-27 | 2019-10-01 | Tintri By Ddn, Inc. | Dynamic raid expansion |
US10346086B2 (en) * | 2017-06-08 | 2019-07-09 | Oracle International Corporation | Determining an age category for an object stored in a heap |
US10795812B1 (en) * | 2017-06-30 | 2020-10-06 | EMC IP Holding Company LLC | Virtual copy forward method and system for garbage collection in cloud computing networks |
EP3789883A4 (en) * | 2018-06-30 | 2021-05-12 | Huawei Technologies Co., Ltd. | MEMORY FRAGMENT MANAGEMENT PROCEDURE AND TERMINAL |
US10949341B2 (en) * | 2018-08-27 | 2021-03-16 | Samsung Electronics Co., Ltd. | Implementing snapshot and other functionality in KVSSD through garbage collection and FTL |
US10983715B2 (en) * | 2018-09-19 | 2021-04-20 | Western Digital Technologies, Inc. | Expandable memory for use with solid state systems and devices |
KR20200064499A (ko) * | 2018-11-29 | 2020-06-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20200073017A (ko) * | 2018-12-13 | 2020-06-23 | 에스케이하이닉스 주식회사 | 데이터 저장 장치와, 그것의 동작 방법 |
KR20200086472A (ko) * | 2019-01-09 | 2020-07-17 | 에스케이하이닉스 주식회사 | 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법 |
US11507305B2 (en) * | 2019-03-29 | 2022-11-22 | EMC IP Holding Company LLC | Concurrently performing normal system operations and garbage collection |
US10824339B1 (en) * | 2019-06-25 | 2020-11-03 | Amazon Technologies, Inc. | Snapshot-based garbage collection in an on-demand code execution system |
CN110489354B (zh) * | 2019-08-15 | 2023-05-09 | 山东华芯半导体有限公司 | 支持两种位宽的磨损均衡垃圾回收加速装置 |
US11669246B2 (en) * | 2019-08-19 | 2023-06-06 | International Business Machines Corporation | Storage allocation enhancement of microservices |
CN112948279A (zh) * | 2019-11-26 | 2021-06-11 | 伊姆西Ip控股有限责任公司 | 管理存储系统中的访问请求的方法、设备和程序产品 |
KR20210099870A (ko) * | 2020-02-05 | 2021-08-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20210108208A (ko) * | 2020-02-25 | 2021-09-02 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11514075B2 (en) * | 2020-04-29 | 2022-11-29 | EMC IP Holding Company, LLC | System and method for prioritizing replication copy activity |
US11550712B2 (en) * | 2020-06-11 | 2023-01-10 | Google Llc | Optimizing garbage collection based on survivor lifetime prediction |
TWI722938B (zh) * | 2020-07-06 | 2021-03-21 | 慧榮科技股份有限公司 | 記憶裝置、快閃記憶體控制器及其存取方法 |
CN113971137A (zh) * | 2020-07-22 | 2022-01-25 | 华为技术有限公司 | 一种垃圾回收方法及装置 |
TWI733568B (zh) * | 2020-08-27 | 2021-07-11 | 慧榮科技股份有限公司 | 記憶裝置、快閃記憶體控制器及其存取方法 |
US20220100652A1 (en) * | 2020-09-28 | 2022-03-31 | Alibaba Group Holding Limited | Method and apparatus for simplifying garbage collection operations in host-managed drives |
-
2022
- 2022-06-01 US US17/830,047 patent/US11947452B2/en active Active
-
2023
- 2023-05-31 CN CN202310630588.8A patent/CN117149057A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11947452B2 (en) | 2024-04-02 |
US20230393976A1 (en) | 2023-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11640354B2 (en) | Logical-to-physical mapping of data groups with data locality | |
US11609848B2 (en) | Media management based on data access metrics | |
US11676664B2 (en) | Voltage bin selection for blocks of a memory device after power up of the memory device | |
CN115699185A (zh) | 在存储装置上每单元实施可变数目的位 | |
CN112835828B (zh) | 用于非连续源及目的地存储器地址的直接存储器存取(dma)命令 | |
US11928347B2 (en) | Managing voltage bin selection for blocks of a memory device | |
CN115240745A (zh) | 将高读取数据存储在存储器装置的低影响读取干扰页面处 | |
CN117916719A (zh) | 存储器中的存取跟踪 | |
CN115220951A (zh) | 用于基于存储器存取阈值的存储器管理的方法、设备及系统 | |
CN113093990B (zh) | 存储器子系统处的数据块切换 | |
US20220180955A1 (en) | Managing probabilistic data integrity scan intervals | |
CN113539335A (zh) | 针对存储器装置的块族跟踪 | |
US11816345B2 (en) | Zone block staging component for a memory subsystem with zoned namespace | |
US11675509B2 (en) | Multiple open block families supporting multiple cursors of a memory device | |
US11947452B2 (en) | Controlling variation of valid data counts in garbage collection source blocks | |
CN115048039B (zh) | 用于基于有效转换单元计数的存储器管理的方法、设备和系统 | |
CN115273925B (zh) | 存储器子系统刷新 | |
US11934676B2 (en) | Memory command aggregation to improve sequential memory command performance | |
US11941290B2 (en) | Managing distribution of page addresses and partition numbers in a memory sub-system | |
US11886712B2 (en) | Die family management on a memory device using block family error avoidance | |
US20240118971A1 (en) | Temporary parity buffer allocation for zones in a parity group | |
US11720273B2 (en) | Codeword error leveling for 3DXP memory devices | |
CN115437555A (zh) | 基于取数据时间和有效性的存储器管理 | |
CN117631986A (zh) | 区域存储器系统中的延迟区域调整 | |
CN117999547A (zh) | 用于存储器子系统中的两遍次编程的虚拟管理单元方案 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |