基于取数据时间和有效性的存储器管理的制作方法

文档序号:32438908发布日期:2022-12-06 20:35阅读:42来源:国知局
基于取数据时间和有效性的存储器管理的制作方法

1.本公开的实施例总体上涉及存储器子系统,并且更具体地,涉及基于取数据时间和有效性的存储器管理。


背景技术:

2.存储器子系统可以包含存储数据的一或多个存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。通常,主机系统可以利用存储器子系统来将数据存储在存储器装置处并且从存储器装置中检索数据。


技术实现要素:

3.一方面,本技术涉及一种用于基于取数据时间和有效性的存储器管理的方法,所述方法包括:确定一段时间内非易失性存储器胞元块的相应有效翻译单元计数;确定所述一段时间内所述非易失性存储器胞元块的所述相应有效翻译单元计数的变化率;将所述有效翻译单元计数的所述变化率与仓转变率进行比较;以及基于将所述有效翻译单元计数的所述变化率与所述仓转变率进行比较,对所述非易失性存储器胞元块执行媒体管理操作。
4.另一方面,本技术涉及一种用于基于取数据时间和有效性的存储器管理的设备,所述设备包括:基于取数据时间和有效性的存储器管理组件,所述基于取数据时间和有效性的存储器管理组件被配置成:确定一段时间内存储器组件的多个非易失性存储器块中的有效数据量的相应变化率;确定所述一段时间内所述多个非易失性存储器块的相应仓转变率;基于所述一段时间内所述多个非易失性存储器块的所述相应仓转变率,确定所述一段时间内的平均仓转变率;将所述有效数据量的所述相应变化率与所述平均仓转变率进行比较;并且基于所述有效数据量的所述相应变化率与所述平均仓转变率的比较,对所述多个非易失性存储器块中的非易失性存储器块执行媒体管理操作。
5.另一方面,本技术涉及一种用于基于取数据时间和有效性的存储器管理的系统,所述系统包括:存储器子系统,所述存储器子系统包括多个存储器组件,所述多个存储器组件被布置以形成多个存储器胞元块的可堆叠交叉网格化阵列;以及处理装置,所述处理装置耦接到所述多个存储器组件,所述处理装置执行包括以下的操作:确定所述多个存储器胞元块的相应有效翻译单元计数;确定多个存储器胞元块的子集的所述相应有效翻译单元计数小于有效性阈值;基于确定所述多个存储器胞元块的所述子集的所述相应有效翻译单元计数小于所述有效性阈值,将所述子集指定为候选块;确定所述候选块中的候选块的相应有效翻译单元计数的变化率;将所述有效翻译单元计数的所述变化率与平均仓转变率进行比较;以及基于将所述相应有效翻译单元计数的所述变化率与所述平均仓转变率进行比较,对所述候选块执行媒体管理操作。
附图说明
6.根据下文给出的详细描述和本公开的各个实施例的附图,将更充分地理解本公
开。
7.图1展示了根据本公开的一些实施例的包含存储器子系统的示例计算系统。
8.图2是展示根据本公开的一些实施例的各种比率的图。
9.图3是根据本公开的一些实施例的对应于用于基于取数据时间和有效性的存储器管理的方法的流程图。
10.图4是根据本公开的一些实施例的对应于用于基于取数据时间和有效性的存储器管理的方法的流程图。
11.图5是本公开的实施例可以在其中操作的示例计算机系统的框图。
具体实施方式
12.本公开的各方面涉及基于取数据时间和有效性的存储器管理,具体地涉及包含基于取数据时间和有效性的存储器管理组件的存储器子系统。存储器子系统可为存储系统、存储装置、存储器模块或这些的组合。存储器子系统的实例是如固态驱动器(ssd)等存储系统。下文结合图1以及其它地方描述存储装置和存储器模块的实例。通常,主机系统可以利用包含如存储数据的存储器装置等一或多个组件的存储器子系统。主机系统可以提供要存储在存储器子系统处的数据,并且可以请求要从存储器子系统中检索的数据。
13.存储器装置可以是非易失性存储器装置。非易失性存储器装置的一个实例为“与非”(nand)存储器装置(也被称为闪存技术)。以下结合图1描述了非易失性存储器装置的其它实例。非易失性存储器装置是一或多个管芯的封装。每个管芯可以由一或多个平面组成。平面可以分组成逻辑单元(lun)。对于一些类型的非易失性存储器装置(例如,nand装置),每个平面由一组物理块组成。每个块由一组页组成。每个页由一组存储器胞元(“胞元”)组成。胞元是存储信息的电子电路。在下文中,块是指用于存储数据的存储器装置的单元,并且可以包含存储器胞元群组、字线群组、字线或单独存储器胞元。对于一些存储器装置,块(在下文中也被称为“存储器块”)为可擦除的最小区域。无法单独地擦除页,且只能擦除整个块。
14.存储器装置中的每一个可以包含一或多个存储器胞元阵列。取决于胞元类型,可以对胞元进行写入以存储二进制信息的一或多个位,并且所述胞元具有与正存储的位数相关的各种逻辑状态。逻辑状态可以由二进制值,如“0”和“1”或此类值的组合表示。存在各种类型的胞元,例如单级胞元(slc)、多级胞元(mlc)、三级胞元(tlc)和四级胞元(qlc)。例如,slc可以存储一位信息并且具有两种逻辑状态。
15.一些nand存储器装置采用浮置栅极架构,其中基于位线与字线之间的相对电压变化来控制存储器存取。nand存储器装置的其它实例可以采用可以包含使用字线布局的替换栅极架构,所述字线布局可以允许基于用于构造字线的材料的特性而在存储器胞元内捕获对应于数据值的电荷。
16.可以对存储器块执行媒体管理操作。媒体管理操作的非限制性实例可以包含错误校正操作、磨损均衡操作、写入干扰缓解操作和/或垃圾收集操作。媒体管理操作在本文中可以可替代地被称为“存储器管理操作”。
[0017]“磨损均衡操作”通常是指对一或多个存储器块执行以控制此类存储器块的磨损率的操作。磨损均衡操作可以通过在整个存储器阵列和/或存储器装置上更均匀地分布对
特定组存储器块执行的处理循环(例如,编程和/或擦除循环)来减少此类循环的数量。磨损均衡操作的实例包含静态磨损均衡操作和动态磨损均衡操作。
[0018]“动态磨损均衡操作”通常是指通过编程-擦除循环(pec)计数为擦除和新写入选择块条带的过程。如本文所使用的,“块条带”通常是指共享相同上块编号并且可以并行存取的存储器块的逻辑分组。如本文所使用的,“pec计数”通常是指nand块已经被存取(例如,编程和/或擦除)的次数,其是块磨损的指标。
[0019]“静态磨损均衡操作”通常是指将长期驻留驱动数据(冷数据)收集并折叠成比系统中的其它块条带具有更高磨损的块条带的过程。理想情况下,磨损的块条带完全充满了“冷”数据。如果没有足够的“冷”数据来完全填充块条带,则块条带的剩余部分将填充有可用的“最冷”数据。通过将“冷”数据放入到“热”块条带中,最小块条带pec计数与最大块条带pec计数之间的差异应该能够保持在合理范围内,因为数据的高寿命减少了块条带被折叠和随后被擦除的需要。这种将“冷”数据分离成“热”块条带的做法在驱动器耐久性、减少写入放大和性能优势方面提供了好处(如在同时维持多组nand微调电压水平时减少了开销)。
[0020]“垃圾收集操作”通常是指将数据从牺牲块条带折叠到新的目的地块条带中的过程,其预期目的是数据合并以释放存储器资源以用于后续编程/擦除循环。垃圾收集操作可以包含回收(例如,擦除并使其可用于编程)在存储器装置中的块中具有最多无效页的存储器块。在一些实施例中,垃圾收集可以包含回收具有超过阈值量(例如,数量)的无效页的存储器块。然而,如果存在足够的空闲存储器块用于编程操作,则可能不会发生垃圾收集操作。垃圾收集通常可以在后台执行(例如,在存储器的空闲期间);然而,在一些实施例中,垃圾收集可以在前台执行,例如响应于确定空闲存储器块的数量已经减少到阈值空闲块计数以下。然而,垃圾收集操作可以利用引起写入放大的读取和写入操作,这可能会增加存储器子系统(例如,ssd)功耗并且可能会降低存储器子系统的寿命,例如,因为存储器胞元在经历某一数量的编程/擦除循环之后可能会变得不可用。
[0021]
可以对选定的源块执行磨损均衡操作和垃圾收集操作。一些先前的垃圾收集方法可以跟踪(例如,通过如表等数据结构)每个块的有效物理翻译单元(ptu)的数量(例如,有效翻译计数(vtc)),并且然后选择具有最低vtc的块作为源块。一些先前的磨损均衡操作可以包含跟踪(例如,通过如表格等数据结构)与存储器块相关联的仓。与存储器块相关联的仓可以指示存储器块中的数据的取数据时间。此类方法可以选择具有最高仓索引(例如,最旧的数据)的存储器块作为源块。
[0022]
与媒体管理操作相关联的效率(例如,总线通信量、计算开销量等)可以变化。例如,存储器块可以填充有效数据部分和无效数据部分两者。如本文所使用的,“有效数据部分”通常是指与具有当前(例如,最新)逻辑到物理映射条目的页相对应的数据,而“无效数据部分”通常是指与映射条目为过期的页相对应的数据(例如,对应逻辑页已经重新映射到新物理页)。换句话说,有效数据部分通常可以包含“热数据”,而无效数据部分通常可以包含“冷数据”。由于写入操作存储器子系统的行为,与无效数据部分的量相比,有效数据部分可以相对较小或小于有效数据的特定阈值量。与媒体管理操作相关联的效率可以根据给定的有效数据部分的量、有效数据部分的量的变化率和/或数据的取数据时间而变化。
[0023]
因此,通过不考虑有效数据部分的量、有效数据部分的量的变化率和数据的取数据时间,存储器子系统可以在使用vtc或数据的取数据时间作为源块选择的唯一标准的方
法中经历性能降级。这种性能降级可能是不期望的,尤其是在关键应用中和/或在期望非常高的存储器子系统性能的高要求应用中。此外,可以在此类方法中展示出的此性能降级可能在移动(例如,智能手机、物联网等)存储器部署中进一步恶化,其中与传统的计算架构相比,可用于容纳存储器子系统的空间量是有限的。
[0024]
本公开的各方面通过将块的有效翻译单元计数的变化率与仓转变率进行比较,并且基于将块的有效翻译单元计数的变化率与仓转变率进行比较来对块执行媒体管理操作。例如,如本文详细描述的,可以基于将有效翻译单元计数的变化率与仓转变率进行比较来对存储器块执行垃圾收集操作和/或磨损均衡操作。因此,通过基于将有效翻译单元计数的变化率与仓转变率进行比较来对存储器块执行媒体管理操作,与源块选择(并且因此,一种所得媒体管理操作)仅基于具有最低vtc或最高仓索引的方法相比,可以提高存储器子系统的性能。本文中的实施例可应用于移动存储器部署中以进一步改进在移动计算架构中部署的存储器子系统的可靠性。
[0025]
图1展示了根据本公开的一些实施例的包含存储器子系统110的示例计算系统100。存储器子系统110可以包含媒体,如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类存储器装置的组合。
[0026]
存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、闪存驱动器、通用串行总线(usb)闪存驱动器、嵌入式多媒体控制器(emmc)驱动器、通用闪速存储(ufs)驱动器、安全数字(sd)卡和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm)、和各种类型的非易失性双列直插式存储器模块(nvdimm)。
[0027]
计算系统100可以是计算装置,如台式计算机、膝上型计算机、服务器、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它交通工具)、物联网(iot)启用装置、嵌入式计算机(例如,包含在运载工具、工业设备或联网商用装置中的计算机)或包含存储器和处理装置的此类计算装置。
[0028]
计算系统100可以包含耦接到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦接到不同类型的存储器子系统110。图1展示了耦接到一个存储器子系统110的主机系统120的一个实例。如本文所使用的,“耦接到(coupled to)”或“与

耦接(coupled with)”通常指组件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如,无中间组件),无论是有线的或无线的,包含如电、光、磁性等连接。
[0029]
主机系统120可以包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可以包含一或多个核、一或多个高速缓存、存储器控制器(例如,ssd控制器)以及存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用存储器子系统110例如以将数据写入存储器子系统110并且从存储器子系统110读取数据。
[0030]
主机系统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通常可以通过同一通信连接、多个单独的通信连接和/或通信连接的组合来对多个存储器子系统进行存取。
[0031]
存储器装置130、140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(ram),如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
[0032]
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(nand)型闪速存储器和原地写入(write-in-place)存储器,如三维交叉点(“3d交叉点”)存储器装置,所述三维交叉点存储器装置是非易失性存储器胞元的交叉点阵列。非易失性存储器的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于闪速的存储器相比,交叉点非易失性存储器可以执行原地写入操作,其中可以在先前未擦除非易失性存储器胞元的情况下对非易失性存储器胞元进行编程。nand型闪速存储器包含例如二维nand(2d nand)和三维nand(3d nand)。
[0033]
存储器装置130、140中的每一个可以包含一或多个存储器胞元阵列。一种类型的存储器胞元,例如,单级胞元(slc)可以每胞元存储一位。其它类型的存储器胞元,如多级胞元(mlc)、三级胞元(tlc)和四级胞元(qlc)和五级胞元(plc)可以每胞元存储多个位。在一些实施例中,存储器装置130中的每一个可以包含一或多个存储器胞元阵列,如slc、mlc、tlc、qlc或此类存储器胞元的任何组合。在一些实施例中,特定存储器装置可以包含存储器胞元的slc部分、和mlc部分、tlc部分、qlc部分或plc部分。存储器装置130的存储器胞元可以被分组为页,所述页可以指用于存储数据的存储器装置的逻辑单元。利用一些类型的存储器(例如,nand),可以将页分组以形成块。
[0034]
尽管描述了非易失性存储器组件,如非易失性存储器胞元的三维交叉点阵列和nand型存储器(例如,2d nand、3d nand),但是存储器装置130可以基于任何其它类型的非易失性存储器或存储装置,如只读存储器(rom)、相变存储器(pcm)、自选择存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移矩(stt)-mram、导电桥接式ram(cbram)、电阻式随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)闪速存储器和电可擦除可编程只读存储器(eeprom)。
[0035]
存储器子系统控制器115(或简称为控制器115)可以与存储器装置130通信以执行操作,如在存储器装置130处读取数据、写入数据或擦除数据,及其它此类操作。存储器子系统控制器115可以包含硬件,如一或多个集成电路和/或分立组件、缓冲存储器或其组合。硬件可以包含具有专用(即,硬编码)逻辑以执行本文所述的操作的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。
[0036]
存储器子系统控制器115可以是被配置成执行存储在本地存储器119中的指令的处理器117(例如,处理装置)。在所展示的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器被配置成存储用于执行控制存储器子系统110的
操作的各种过程、操作、逻辑流程和例程(包含处理存储器子系统110与主机系统120之间的通信)的指令。
[0037]
在一些实施例中,本地存储器119可以包含存储存储器指针、所获取数据等的存储器寄存器。本地存储器119还可以包含用于存储微代码的只读存储器(rom)。尽管图1中的示例存储器子系统110已经被展示为包含存储器子系统控制器115,但是在本公开的另一个实施例中,存储器子系统110不包含存储器子系统控制器115,而是可以依赖于(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供的)外部控制。
[0038]
存储器子系统控制器115通常可以从主机系统120接收命令或操作并且可以将命令或操作转换成指令或适当的命令以实现对存储器装置130和/或存储器装置140的期望存取。存储器子系统控制器115可以负责其它操作,如磨损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作以及逻辑地址(例如,逻辑块地址(lba)、命名空间)与物理地址(例如,物理块地址、物理媒体位置等)之间的与存储器装置130相关联的地址翻译。存储器子系统控制器115可以进一步包含主机接口电路系统,以通过物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换为命令指令,以对存储器装置130和/或存储器装置140进行存取以及将与存储器装置130和/或存储器装置140相关联的响应转换为用于主机系统120的信息。
[0039]
存储器子系统110还可以包含未展示的另外的电路系统或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可以接收来自存储器子系统控制器115的地址,并且解码所述地址以对存储器装置130和/或存储器装置140进行存取。
[0040]
在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器胞元执行操作。外部控制器(例如,存储器子系统控制器115)可以从外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,所述受管理存储器装置是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理nand(mnand)装置。
[0041]
存储器子系统110可以包含基于取数据时间和有效性的存储器管理组件113。尽管未在图1中示出,但是为了不混淆附图,基于取数据时间和有效性的存储器管理组件113可以包含各种电路系统以便于确定存储器块的相应有效翻译单元计数的变化率,将有效翻译单元计数的变化率与仓转变率进行比较,并且基于将有效翻译单元计数的变化率与仓转变率进行比较来对存储器块执行媒体管理操作。在一些实施例中,基于取数据时间和有效性的存储器管理组件113可以包含asic、fpga、状态机和/或其它逻辑电路系统形式的专用电路,所述其它逻辑电路系统可以允许基于取数据时间和有效性的存储器管理组件113至少基于将有效翻译单元计数的变化率与仓转变率进行比较来协调和/或执行操作以选择性地执行存储器装置130和/或存储器装置140的媒体管理操作。
[0042]
在一些实施例中,存储器子系统控制器115包含基于取数据时间和有效性的存储器管理组件113的至少一部分。例如,存储器子系统控制器115可以包含被配置成执行存储在本地存储器119中的用于执行本文所描述的操作的指令的处理器117(处理装置)。在一些实施例中,基于取数据时间和有效性的存储器管理组件113是存储器子系统110、应用或操
作系统的一部分。
[0043]
在非限制性实例中,设备(例如,计算系统100)可以包含基于存储器子系统取数据时间和有效性的存储器管理组件113。基于存储器子系统取数据时间和有效性的存储器管理组件113可以驻留在存储器子系统110上。如本文所使用的,术语“驻留在

上”是指物理地位于特定组件上的某物。例如,基于存储器子系统取数据时间和有效性的存储器管理组件113“驻留在”存储器子系统110上是指包括基于存储器子系统取数据时间和有效性的存储器管理组件113的硬件电路系统物理地位于存储器子系统110上的情况。术语“驻留在

上”可以在本文中与如“部署在

上”或“位于

上”等其它术语互换使用。
[0044]
基于存储器子系统取数据时间和有效性的存储器管理组件113可以被配置成确定在一段时间内有效数据(例如,vtc)量的相应变化率和/或nand存储器块(例如,nand存储器胞元块)的相应仓转变率。如上文所描述的,存储器组件可以是形成存储器装置130的至少一部分的存储器管芯或存储器封装。在一些实施例中,存储器胞元块可以形成一或多个“超级块”。如本文所使用的,“超级块”通常是指跨越多个存储器管芯并且以交错方式写入的一组数据块。例如,在一些实施例中,多个交错的nand存储器块中的每一个可以跨越具有与其相关联的多个平面和/或页的多个存储器管芯而部署。鉴于本公开的上下文,术语“块”、“存储器胞元块”和/或“交错的nand存储器块”及其变体可以互换地使用。
[0045]
在一些实施例中,基于存储器子系统取数据时间和有效性的存储器管理组件113可以进一步被配置成确定存储器胞元块的vtc(例如,有效数据量)。可以基于存储器胞元块中的有效翻译单元的相应量来确定相应的vtc。vtc可以表示为整个存储器块或部分存储器块中翻译单元总量中有效翻译单元的百分比。例如,可以为存储器胞元的整个存储器块,如存储器胞元块的所有页、平面和管芯确定相应的vtc。然而,在一些实施例中,可以为存储器胞元块的一部分而非全部确定vtc。鉴于本公开的上下文,术语“有效翻译单元计数”、“vtc”和/或“有效数据量”及其变体可以互换地使用。
[0046]
基于存储器子系统取数据时间和有效性的存储器管理组件113可以进一步被配置成确定一段时间内存储器块的相应有效翻译单元计数的变化率。相应有效翻译单元的变化率可以表示存储器块中的有效数据量在一段时间内减少的水平。例如,nand存储器块的相应有效翻译单元的变化率可以表示nand存储器块中的有效数据量在一段时间内减少的水平。
[0047]
基于存储器子系统取数据时间和有效性的存储器管理组件113可以对存储器胞元块执行如垃圾收集操作或磨损均衡操作(例如,静态磨损均衡操作)等媒体管理操作。例如,如本文所描述的,基于存储器子系统取数据时间和有效性的存储器管理组件113可以基于vtc的变化率与仓转变率的比较来执行媒体管理操作。
[0048]
图2是展示根据本公开的一些实施例的各种比率的图。如在图2中所展示的,在一个实施例中,基于取数据时间和有效性的存储器管理组件113可以在一段时间(例如,从to到t3的时间段)的多个不同时间点(例如,t0、t
l
、t2、t3等)确定存储器块和与存储器块相关联的仓上的有效数据量。
[0049]
与存储器块相关联的仓可以表示存储器块中一定量的有效数据的取数据时间。所述量的有效数据的取数据时间可以指自存储器块的先前读取和/或写入以来经过的时间量和/或存储器块中的电荷损失量。电荷损失可以通过存储器块中的瞬时电压偏移来证明。如
本文所使用的,瞬时电压偏移(tvs)通常是指胞元的测量电压随时间的变化。
[0050]
随着有效数据的取数据时间增加,与存储器块相关联的仓可以递增到具有响应于存储器块的老化而逐渐升高的仓索引(例如,较旧的仓)的仓。例如,与存储器块相关联的仓可以响应于满足仓阈值的所述量的有效数据的取数据时间而改变。如本文所使用的,满足仓阈值通常是指达到或超过某个值。例如,与第一仓(例如,仓221-1)相关联的有效数据的取数据时间可以增加,直到满足第二仓(例如,仓221-2)的仓阈值为止。响应于有效数据满足第二仓的仓阈值,存储器块可以与第二仓(例如,222-2)相关联。一定量的有效数据与另一个仓相关联的仓阈值可以被预定义(例如,对应于读取/写入时间之后的预定时间)或者例如根据系统参数而改变。
[0051]
因此,与存储器块相关联的给定仓可以表示存储器块中的所述量的有效数据的取数据时间在一段时间内增加的水平。例如,如在图2中所展示的,有效数据的取数据时间可以从与具有最低仓索引(在t0处)的第一仓221-1相关联的取数据时间逐渐增加到与具有更高仓索引(在t1处)的第二仓221-2相关联的取数据时间,然后增加到与具有更高仓索引(在t2处)的第三仓221-3相关联的取数据时间,并且最后增加到与具有最高仓索引并且因此表示具有最旧的数据(在t3处)的第四仓221-l相关联的取数据时间。虽然图2展示了总共四个仓和四个时间增量,但是应当理解,仓的总数和/或时间增量的总数可以改变。
[0052]
在一些实施例中,可以响应于仓转变来确定有效数据的量。如本文所使用的,仓转变通常是指有效数据达到变得与同存储器块相关联的不同仓相关联的取数据时间(例如,当有效数据达到要从与仓221-1相关联变成与另一个仓221-2相关联的取数据时间时等)的情况。可以响应于多个仓转变中的每个仓转变来确定有效数据的量。
[0053]
根据存储器块上的这些有效数据量以及在多个不同时间点与存储器块相关联的仓,基于取数据时间和有效性的存储器管理组件113可以确定与存储器块相关联的有效数据和/或仓的变化率。在一个实施例中,基于取数据时间和有效性的存储器管理组件113可以计算表示变化率的斜率和/或可以基于过去的值来预测存储器块中所述量的有效数据的未来变化率。例如,基于取数据时间和有效性的存储器管理组件113可以应用曲线拟合算法(例如,插值、平滑、回归分析、外推、代数、几何等)来计算斜率和/或应用机器学习(例如,基于实例、回归分析、正则化、分类器等)来进行预测。类似地,在一个实施例中,基于取数据时间和有效性的存储器管理组件113可以计算表示变化率的斜率和/或可以基于过去的值预测与存储器块相关联的仓的未来变化率(即,仓转变率)。
[0054]
在此类实施例中,基于取数据时间和有效性的存储器管理组件113可以将仓转变率确定为存储器块的相应仓转变率的平均值。例如,如在图2中所展示的,仓转变率224可以是存储器块的相应仓转变率的平均仓转变率。虽然在图2中展示为线性,但仓转变率224可以是非线性的,或者可以包含至少一个非线性段。
[0055]
在一些实施例中,基于取数据时间和有效性的存储器管理组件113可以确定存储器块的相应翻译单元计数的变化率并且确定存储器块在相同时间段内的相应仓转变率。例如,如在图2中所展示的,可以在从t0到t3的时间段内确定存储器块的相应翻译单元计数的变化率和相应仓转变率。然而,在一些实施例中,可以在不同的时间段内确定存储器块的相应翻译单元计数的变化率和/或相应仓转变率。
[0056]
如上所述,在一些实施例中,基于取数据时间和有效性的存储器管理组件113可以
对存储器块执行媒体管理操作。例如,在一些实施例中,基于取数据时间和有效性的存储器管理组件113可以至少部分地通过对存储器块执行折叠操作来对存储器块执行媒体管理操作。如本文所使用的,“折叠”是独立于任何直接主机交互的数据从一个存储器装置位置(例如,nand位置)到另一个存储器装置(例如,nand位置)位置的迁移。可以执行折叠以将有效数据打包在一起,例如,作为垃圾收集操作的一部分,然后可以释放更多存储器装置存储空间以用于操作(例如,新写入、错误避免操作、磨损均衡操作、在发生错误时恢复rain奇偶校验保护)。
[0057]
媒体管理操作可以在“前台”(例如,在主机利用与存储器子系统相关联的接口期间)和/或在“后台”(例如,当主机未利用与存储器子系统相关联的接口时)执行。例如,在一些实施例中,基于取数据时间和有效性的存储器管理组件113可以执行前台折叠操作或后台折叠操作。例如,基于取数据时间和有效性的存储器管理组件113可以对存储器候选块中的相应有效翻译单元中的有效数据执行前台折叠操作或后台折叠操作。
[0058]
如上所述,有效翻译单元计数的变化率(表示为线222-1)可以与仓转变率(表示为线224)进行比较。如在图2中所展示的,有效翻译单元计数的变化率222-1大于(例如,具有更大的幅度)仓转变率224。例如,对于至少第一段223-1(从t0到约t1),有效翻译单元计数的变化率222-1大于仓转变率224。结果,第一段223-1和第二段223-2各自位于图2中的仓转变率224之下,并且因此各自表示大于仓转变率224的变化率。注意,有效翻译单元计数的变化率222-1在第一段223-1与第二段223-2之间变化,如在图2中所展示的。也就是说,有效翻译单元计数的变化率可以在一段时间内变化。然而,在一些情况下,有效翻译单元计数的变化率可以在一段时间内保持不变。例如,另一个存储器块的有效翻译单元计数的变化率(表示为线222-v)在从t0到t3的时间段内保持不变(例如,沿着从t0到t3的整个长度具有相同的斜率)。
[0059]
在一些实施例中,可以对具有大于或等于仓转变率(例如,224)的有效翻译单元计数的变化率(例如,222-1)的存储器块执行垃圾收集操作。垃圾收集操作类型的实例可以包含前台垃圾收集操作(即,在发生妨碍主机如图1中所展示的主机系统120的i/o事务时执行的垃圾收集操作)和后台垃圾收集操作(即,在不存在妨碍主机的i/o事务的情况下执行的垃圾收集操作)。
[0060]
然而,在一些实施例中,有效翻译单元计数的变化率可以小于仓转变率。例如,如在图2中所展示的,另一个存储器块的有效翻译单元计数的变化率(例如,通过线222-v的斜率表示)小于仓转变率224。换句话说,在给定时间,有效翻译单元的变化率222-v可以小于(例如,具有较小的幅度)仓转变率224。因此,如在图2中所展示的,有效翻译单元计数的变化率222-v可以位于仓转变率224之上。
[0061]
在一些实施例中,可以对有效翻译单元的变化率(例如,222-v)小于仓转变率(例如,224)的存储器块执行磨损均衡操作。例如,可以对有效翻译单元的变化率小于仓转变率的存储器块执行静态磨损均衡操作或动态磨损均衡操作。
[0062]
图3是根据本公开的一些实施例的对应于基于取数据时间和有效性的存储器管理的流程331的图。在操作332处,可以确定存储器胞元块的有效的vtc。在一些实施例中,可以通过基于存储器子系统取数据时间和有效性的分散存储器管理组件,如在图1中所展示的基于取数据时间和有效性的存储器管理组件113来确定块的vtc。
[0063]
在操作333处,可以确定vtc是否小于有效性阈值。如本文所使用的,如有效性阈值等“阈值”通常是指用于提供高效的存储器管理操作的指定的有效翻译单元数量。例如,“有效性阈值”通常是指给定的有效翻译单元量和/或给定的vtc量(例如,给定百分比),在所述有效性阈值下,具有较低有效翻译单元总量和/或较低vtc的块可以被指定为候选块。在一些实施例中,有效性阈值可以等于20%、15%、10%或5%,以及其它可能的值。如果块具有大于或等于有效性阈值的vtc,则流程331可以返回到操作332,并且可以继续确定块的vtc。然而,如果在操作334处确定块的vtc小于有效性阈值,则可以将所述块指定为候选块。
[0064]
在一些实施例中,可以维护候选块池。如本文所使用的,“候选块池”通常是指一组块,其中每个块均具有各自小于有效性阈值的相应vtc,而“候选块”通常是指具有小于有效性阈值的vtc的块。例如,在一些实例中,在存储器块的子集中的每个存储器块上的有效数据量小于有效性阈值和/或小于不在所述存储器块的子集中的每个存储器块上的相应有效数据量的情况下,可以识别存储器块的子集(例如,nand存储器块)。在此类实例中,可以将存储器块的子集中的每个存储器块指定为候选块。候选块的指定可以包含数据结构中信息的改变,如与所述块相关联的表,以及其它可能性。例如,在一些实施例中,流程331可以包含识别每个存储器块中的有效数据量,以及基于每个存储器块中的有效数据量对存储器块进行分类。此类分类可以促进每个存储器块中的有效数据量与有效性阈值、候选块的指定和/或与基于取数据时间和有效性的存储器管理相关的其它方面的比较。
[0065]
在操作335处,可以确定候选块的vtc的变化率。在一些实施例中,可以为每个候选块(例如,为候选块池中的每个候选块)确定vtc的变化率。如上所述,在一些情况下,可以响应于与存储器块相关联的仓的变化(例如,响应于与候选块相关联的仓中的变化)来确定vtc的变化率。
[0066]
在一些实施例中,可以至少基于候选块的vtc来选择候选块。在一些实施例中,可以选择具有(候选块的所有相应vtc中的)最低vtc的候选块。然而,在一些实例中,可以选择除具有最低vtc的候选块之外的候选块。值得注意的是,与不考虑候选块的vtc的变化率的其它方法相比,本文中的方法考虑了候选块的vtc的变化率并且,因此可以对候选块执行特定类型的媒体管理操作。在执行管理操作时考虑vtc的变化率可以提高效率(与如不考虑存储器块的vtc的变化率的方法相比),例如,通过执行除垃圾收集操作之外的媒体管理操作(例如,磨损均衡操作如静态磨损均衡操作),并且因此在此类情况下不会产生与垃圾收集操作相关联的写入放大。
[0067]
在操作336处,可以将vtc的变化率与仓转变率进行比较。例如,如本文所描述的和如在操作337处所指示的,可以将vtc的变化率与平均仓转变率进行比较。在操作338处,可以对候选块执行媒体管理操作。在一些实施例中,媒体管理操作可以是垃圾收集操作或磨损均衡操作。在执行媒体管理操作之后,流程331可以返回到操作332并且可以继续确定块的vtc。
[0068]
图4是根据本公开的一些实施例的对应于用于存储器管芯布置的方法440的流程图。方法440可以由处理逻辑执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法440由图1的基于取数据时间和有效性的存储器管理组件113执行。尽管以特定序列或顺序示出,但除非另有指定,否则可以修改过程
的顺序。因此,所展示的实施例应被理解为只是实例,并且所展示的过程可以以不同的顺序执行,并且一些过程可以并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流程是可能的。
[0069]
在操作441处,可以在一段时间内确定nand存储器胞元块的相应有效翻译单元计数。可以跨越存储器块的每个页、每个平面和/或每个管芯确定相应的有效翻译单元计数。在一些实施例中,方法440可以包含确定存储器子系统中的存储器胞元块(例如,一或多个nand存储器胞元块)的相应有效翻译单元计数量。在一些实施例中,存储器子系统可以类似于图1中所展示的存储器子系统110。如上文所描述的,存储器组件可以是存储器管芯或存储器封装,所述存储器管芯或存储器封装彼此耦接以创建存储器胞元阵列,如由存储器子系统用于存储数据的存储器胞元的三维可堆叠交叉网格化阵列。例如,在一些实施例中,可堆叠交叉网格化阵列可以是nand存储器胞元组的可堆叠交叉网格化阵列。
[0070]
在一些实施例中,方法440可以包含通过执行媒体扫描操作来确定存储器块的相应有效翻译单元计数。执行所述媒体扫描操作可以包含执行物理到逻辑(p2l)扫描和/或逻辑到物理(l2p)扫描,以及其它可能类型的扫描。存储器块的相应有效翻译单元计数(即,有效数据量)可以被确定为原始数或存储器块上总数据(即,有效数据量加上无效数据量)的分数或百分比。
[0071]
在操作443处,nand存储器胞元块的相应有效翻译单元计数的变化率可以在所述一段时间内确定,如本文所描述的。
[0072]
在一些实施例中,方法440可以包含确定仓转变率。例如,方法440可以包含确定一段时间内nand存储器胞元的存储器块的相应仓转变率,并且将仓转变率确定为nand存储器胞元块的相应仓转变率的平均值。
[0073]
在一些实施例中,方法440可以包含检测与nand存储器胞元块相关联的仓的至少一个变化,并且至少部分地通过响应于与nand存储器胞元块相关联的仓的至少一个变化而确定nand存储器胞元块的至少一个有效翻译单元计数来确定nand存储器胞元块的相应有效翻译单元计数。例如,在一些实施例中,方法440可以包含检测所述一段时间内与nand存储器胞元块相关联的仓的两个或更多个变化,并且至少部分地通过响应于与nand存储器胞元块相关联的仓的两个或更多个变化中的每个变化而确定nand存储器胞元块的有效翻译单元计数来确定nand存储器胞元块的相应有效翻译单元计数。
[0074]
在一些实施例中,方法440可以包含确定nand存储器胞元块的相应有效翻译单元计数的变化率,并且确定在相同时间段内nand存储器胞元块的相应仓转变率。然而,在一些实例中,用于确定nand存储器胞元块的相应有效翻译单元计数的变化率和/或确定nand存储器胞元块的相应仓转变率的时间段可以不同。
[0075]
在操作445处,可以将有效翻译单元计数的变化率与仓转变率进行比较。例如,有效翻译单元计数的变化率可以小于、等于或大于仓转变率。
[0076]
在操作447处,可以基于操作445处的比较对nand存储器胞元块执行媒体管理操作。例如,在一些实施例中,在操作445处进行比较可以导致确定有效翻译单元计数的变化率大于仓转变率。在此类实施例中,方法440可以包含通过对nand存储器胞元块执行垃圾收集操作来对nand存储器胞元块执行媒体管理操作。相反地,在一些实施例中,在操作445处进行比较可以导致确定有效翻译单元计数的变化率小于仓转变率。在此类实施例中,方法
440可以包含通过对非易失性存储器胞元块执行磨损均衡操作(例如,静态磨损均衡操作)来对非易失性(例如,nand存储器胞元)块执行媒体管理操作。
[0077]
在一些实施例中,方法440可以包含至少通过对存储器块(例如,候选块)执行折叠操作来对存储器块(例如,nand存储器胞元块)执行媒体管理操作。如本文所使用的,术语“候选块”通常是指要用于存储器管理操作的存储器块(例如,具有小于有效性阈值的vtc的块)。第一存储器胞元块对应于与第一类型的存储器管理操作相对应的存储器胞元的候选块。例如,第一存储器胞元块可以对应于编程后时间(tap)折叠操作(或简称为“tap折叠”)的候选块。在另一个实例中,第一存储器胞元块可以对应于静态磨损均衡(swl)折叠操作(或简称为“swl折叠”)的候选块。在另一个实例中,第一存储器胞元块可以对应于可靠性(rel)折叠操作(或简称为“rel折叠”)的候选块。尽管提供了折叠的具体实例,但本公开不限于此。例如,其它类型的存储器管理操作可以以类似的方式利用候选块。
[0078]
tap折叠操作可以包含由于与在块被编程之后经过的时间量相关联的电荷损失引起块中数据的媒体完整性降级而触发的折叠操作。例如,相对于一或多个存储器胞元的电压漂移可以基于数据存储在媒体中(例如,在存储器胞元块中)的时间量而发生。相比之下,rel折叠可以包含在块中数据的媒体完整性由于块使用和存取应力而降级时所触发的折叠操作。块使用可以包含但不限于:存储器读取、存储器循环、存储器读取干扰(例如,对一行胞元执行的读取操作会影响未读取胞元的阈值电压)。
[0079]
在一些实施例中,可以确定媒体管理操作的目的地块。如本文所使用的,“目的地块”通常是指在媒体管理操作期间用于将有效数据传递到的块。在一些实例中,可以至少部分地基于媒体管理操作的确定类型来执行确定目的地块。在一些实例中,媒体管理操作的类型可以对应于特定类型的目的地块。例如,当媒体管理操作的类型采用可靠性折叠时,目的地块可以具有相对较低的擦除计数(ec)率。当媒体管理操作的类型是tap折叠和/或swl折叠时,目的地块可以具有相对较高的擦除计数率。这样,可靠性折叠可以对应于具有相对较低ec的目的地块的类型,并且tap折叠和swl折叠可以对应于具有相对较高ec的目的地块的类型。如本文所使用的,“擦除计数率”、“擦除循环率”或“编程擦除循环率”通常是指在一段时间内对存储器胞元或存储器胞元的一部分执行的擦除循环的数量。例如,第一存储器胞元块的高ec率可以指示第一存储器胞元块在一段时间内执行了相对大量的擦除循环。在类似实例中,第二存储器胞元块的低ec率可以指示第二存储器胞元块在所述时间段内执行了相对少量的擦除循环。折叠操作可以包含前台折叠操作或后台折叠操作。在一些实施例中,可以对存储器块中的相应有效翻译单元中的有效数据执行折叠操作。
[0080]
图5是本公开的实施例可以在其中操作的示例计算机系统500的框图。例如,图5展示了计算机系统500的示例机器,在所述计算机系统内,可以执行用于使机器执行本文所讨论的方法中的任何一或多种方法的指令集。在一些实施例中,计算机系统500可以对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦接到或利用存储器子系统(例如,图1的存储器子系统110)或可以用于执行控制器的操作(例如,以执行操作系统,从而执行对应于图1的基于取数据时间和有效性的存储器管理组件113的操作)。在替代性实施例中,机器可以连接(例如,联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可以在客户端-服务器网络环境中以服务器或客户端机器的身份进行操作,在对等(或分布式)网络环境中作为对等机器进行操作,或在云计算基础设施或环境中作为服务器或客户端机器
进行操作。
[0081]
机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、web电器、服务器、网络路由器、交换机或桥接器、或能够(顺序地或以其它方式)执行指定所述机器要采取的动作的指令集的任何机器。进一步地,尽管展示了单个机器,但是术语“机器”还应被视为包含单独地或联合地执行一个指令集(或多个指令集)以执行本文所讨论的方法中的任何一或多种方法的机器的任何集合。
[0082]
示例计算机系统500包含通过总线530彼此通信的处理装置502、主存储器504(例如,只读存储器(rom);闪速存储器;动态随机存取存储器(dram),如同步dram(sdram)或兰巴斯dram(rambus dram,rdram)等)、静态存储器506(例如,闪速存储器、静态随机存取存储器(sram)等)和数据存储系统518。
[0083]
处理装置502表示一或多个通用处理装置,如微处理器、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实施其它指令集的处理器、或实施指令集组合的处理器。处理装置502也可以是一或多个专用处理装置,如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置502被配置成执行用于执行本文所讨论的操作和步骤的指令526。计算机系统500可以进一步包含用于通过网络520进行通信的网络接口装置508。
[0084]
数据存储系统518可以包含其上存储有使本文所描述的方法或功能中的任何一或多种方法或功能具体化的一或多个指令集526或软件的机器可读存储媒体524(也被称为计算机可读媒体)。在计算机系统500执行指令526期间,所述指令还可以完全地或至少部分地驻留在主存储器504内和/或处理装置502内,主存储器504和处理装置502还构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可以对应于图1的存储器子系统110。
[0085]
在一个实施例中,指令526包含用于实施对应于基于取数据时间和有效性的管理组件(例如,图1的基于取数据时间和有效性的存储器管理组件113)的功能的指令。尽管在示例实施例中示出的机器可读存储媒体524是单个媒体,但是术语“机器可读存储媒体”应被视为包含存储所述一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被视为包含能够存储或编码用于由机器执行并使机器执行本公开的方法中的任何一或多种方法的指令集的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体和磁性媒体。
[0086]
已经在对计算机存储器内的数据位的操作的算法和符号表示方面呈现了前面详细描述的说明的一些部分。这些算法描述和表示是由数据处理领域的技术人员用来向本领域的其它技术人员最有效地传送其工作实质的方式。算法在此处并且通常被认为是产生期望的结果的操作的自相一致序列。操作是需要对物理量进行物理操纵的操作。通常,尽管不一定,这些量采取能够被存储、组合、比较和以其它方式操纵的电信号或磁信号的形式。已经证明,主要出于通用的原因,有时将这些信号称为位、值、元素、符号、字符、术语、数字等是便利的。
[0087]
然而,应当记住,这些术语和类似术语的全部应与适当的物理量相关联,并且仅仅是应用于这些量的方便标记。本公开可以是指计算机系统或类似电子计算装置的动作和过
程,所述计算机系统或类似电子计算装置对在计算机系统的寄存器和存储器内表示为物理(电子)量的数据进行操纵,并将其变换为在计算机系统的存储器或寄存器或其它此类信息存储系统内以类似方式表示为物理量的其它数据。
[0088]
本公开还涉及一种用于执行本文的操作的设备。此设备可以被专门构造用于预期目的,或者所述设备可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可以存储在计算机可读存储媒体中,如但不限于任何类型的磁盘,包含各自耦接到计算机系统总线的软盘、光盘、cd-rom和磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡或者适于存储电子指令的任何类型的媒体。
[0089]
本文所呈现的算法和显示并非固有地与任何特定的计算机或其它设备相关。各种通用系统可以与根据本文的教导的程序一起使用,或者可以证明,构造用于执行所述方法的更具专用性的设备是方便的。用于各种这些系统的结构将如下文的描述中阐述那样呈现。另外,本公开不参考任何特定编程语言进行描述。应理解,可以使用各种编程语言来实施如本文所描述的本公开的教导。
[0090]
本公开可以以计算机程序产品或软件的形式提供,所述计算机程序产品或软件可以包含其上存储有指令的机器可读媒体,所述指令可以用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、闪速存储器装置等。
[0091]
在前述说明书中,已经参考其具体示例实施例对本公开的实施例进行描述。将显而易见的是,在不脱离如以下权利要求中阐述的本公开的实施例的更广泛的精神和范围的情况下,可以对所述实施例进行各种修改。因此,说明书和附图被认为是说明性意义的,而不是限制性意义的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1