用于垃圾收集的有效数据标识的制作方法

文档序号:30497041发布日期:2022-06-22 05:43阅读:112来源:国知局
用于垃圾收集的有效数据标识的制作方法
用于垃圾收集的有效数据标识
1.交叉引用
2.本专利申请案要求帕尔默(palmer)于2020年12月21日提交的题为《用于垃圾收集的有效数据标识(valid data identification for garbage collection)》的美国专利申请案第17/129,373号的优先权,所述专利申请案被转让给本技术案的受让人,并且其全部内容通过引用明确地并入本文。
技术领域
3.本技术领域涉及用于垃圾收集的有效数据标识。


背景技术:

4.存储器装置广泛用于在各种电子装置(例如计算机、无线通信装置、相机、数字显示器等)中存储信息。通过将存储器装置内的存储器单元编程到各种状态来存储信息。例如,二进制存储器单元可被编程到两种支持状态中的一者,通常对应于逻辑1或逻辑0。在一些实例中,单个存储器单元可支持多于两种可能的状态,其中任一者可由存储器单元存储。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程到相应状态。
5.存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(ram)、只读存储器(rom)、动态ram(dram)、同步动态ram(sdram)、铁电ram(feram)、磁性ram(mram)、电阻性ram(rram)、闪速存储器、相变存储器(pcm)、三维交叉点存储器(3d交叉点)、非或(nor)和非与(nand)存储器装置等。存储器装置可以是易失性或非易失性的。除非由外部电源周期性更新,否则易失性存储器单元(例如,dram单元)可随时间推移而丢失其编程状态。非易失性存储器单元(例如,nand存储器单元)即使在不存在外部电源的情况下仍可在很长一段时间内维持其编程状态。


技术实现要素:

6.描述一种非暂时性计算机可读媒体。存储代码的非暂时性计算机可读媒体包含指令,这些指令在由电子装置的处理器执行时使电子装置:确定对存储器单元块执行垃圾收集操作,其中存储器单元块存储对应于逻辑地址空间内的多个逻辑地址的数据;读取存储器单元块的位图,其中位图的每一位对应于逻辑地址空间的相应部分且指示逻辑地址空间的相应部分是否包括多个逻辑地址内的对应于数据的一或多个逻辑地址;评估逻辑地址空间的逻辑到物理(l2p)表的子集,评估是至少部分地基于位图的指示多个逻辑地址内的至少一个逻辑地址在逻辑地址空间的对应于l2p表的子集的一部分内的位进行;至少部分地基于评估l2p表的子集而标识多个逻辑地址中的哪些对应于有效数据;以及至少部分地基于标识多个逻辑地址中的哪些对应于有效数据而对存储器单元块执行垃圾收集收集操作。
7.描述一种存储代码的非暂时性计算机可读媒体。存储包含指令的代码的非暂时性
计算机可读媒体,这些指令在由电子装置的处理器执行时使电子装置:将一组数据写入到存储器单元块的子集,所述一组数据对应于逻辑地址空间内的逻辑地址;至少部分地基于将所述一组数据写入到存储器单元块的子集而标识逻辑地址空间的包括逻辑地址的一部分;以及至少部分地基于标识而设置位图的位,其中位图的每一位对应于逻辑地址空间的相应部分,并且其中位图集的位指示对应于逻辑地址空间的对应于位的相应部分内的至少一个逻辑地址的数据存储在存储器单元块内。
8.描述了一种设备。所述设备包含:存储器阵列;控制器,其与存储器阵列耦合且经配置以使设备:确定对存储器阵列内的存储器单元块执行垃圾收集操作,存储器单元块存储对应于逻辑地址空间内的多个逻辑地址的数据;读取存储器单元块的位图,其中位图的每一位对应于逻辑地址空间的相应部分且指示逻辑地址空间的相应部分是否包括多个逻辑地址内的对应于数据的一或多个逻辑地址;评估逻辑地址空间的逻辑到物理(l2p)表的子集,评估是至少部分地基于位图的指示多个逻辑地址内的至少一个逻辑地址在逻辑地址空间的对应于l2p表的子集的一部分内的位进行;至少部分地基于评估l2p表的子集而标识多个逻辑地址中的哪些对应于有效数据;以及至少部分地基于标识多个逻辑地址中的哪些对应于有效数据而对存储器单元块执行垃圾收集操作。
9.描述了一种设备。所述设备包含:存储器阵列;控制器,其与存储器阵列耦合且经配置以使设备:将一组数据写入到存储器阵列内的存储器单元块的子集,所述一组数据对应于逻辑地址空间内的逻辑地址;至少部分地基于将所述一组数据写入到存储器单元块的子集而标识逻辑地址空间的包括逻辑地址的部分;以及至少部分地基于标识而设置位图的位,其中位图的每一位对应于逻辑地址空间的相应部分,并且其中位图集的位指示对应于逻辑地址空间的对应于位的相应部分内的至少一个逻辑地址的数据存储在存储器单元块内。
附图说明
10.图1图示了根据本文公开的实例的支持用于垃圾收集的有效数据标识的系统的实例。
11.图2图示了根据本文公开的实例的支持用于垃圾收集的有效数据标识的框图的实例。
12.图3图示了根据本文公开的实例的支持用于垃圾收集的有效数据标识的处理流程的实例。
13.图4图示了根据本文公开的实例的支持用于垃圾收集的有效数据标识的存储器系统的框图。
14.图5和6示出了图示根据本文公开的实例的支持用于垃圾收集的有效数据标识的一种或多种方法的流程图。
具体实施方式
15.存储器系统可经配置以在存储器单元内存储数据,其中不同的存储器单元组在存储器系统的物理地址空间内可以具有不同的物理地址。不同的数据集可与逻辑地址空间内的不同逻辑地址相关联,逻辑地址空间可替代地称为系统地址空间或虚拟地址空间,并且
可由主机装置参考以标识不同的数据集(例如,来自主机装置的读取或写入命令可基于对应数据集的逻辑地址指示对应数据集)。在一些情况下,存储器系统可经组织为存储器单元块,并且在一些情况下,存储器单元块可经配置以存储多组数据,每组数据对应于不同逻辑块地址(lba)且存储在具有对应物理块地址(pba)的不同存储器单元组(例如,块内的不同存储器单元组)内。
16.存储器系统可存储和维护指示物理地址空间与对应于逻辑地址的逻辑地址空间之间的映射的逻辑到物理(l2p)表。例如,l2p表可指示其中存储与每一逻辑地址相关联的数据的存储器单元组的物理地址。l2p表可另外由存储器系统使用以确定与给定物理地址相关联的数据是否有效。如本文所使用的,l2p表可以指单个表或共同跨越对应逻辑地址空间、对应物理地址空间或两者的多个表。
17.在一些情况下,存储器系统可执行一或多个管理(例如,维护)操作以促进存储器系统的性能。例如,存储器系统可确定对存储器单元块执行垃圾收集操作。结合存储器单元块的垃圾收集操作,存储器系统可评估l2p表以标识由存储器单元块存储的数据组中的哪一组有效。存储器系统然后可将有效数据存储在不同的存储器单元块中并擦除存储在存储器单元块中的数据(例如,有效数据和无效数据),这可使存储器单元块可用于存储例如新数据。
18.在一些情况下,评估整个l2p表以标识由存储器单元块存储的有效数据可能是低效的。例如,l2p表可能相对较大,并且评估整个l2p表可能花费相应的大量时间。然而,如本文所述,存储器系统可替代地评估l2p表的一或多个子集以标识由存储器单元存储的有效数据。例如,存储器系统可存储每个存储器单元块的位图,其中位图的每一位对应于l2p表的相应子集,并指示存储器单元块是否正存储与逻辑地址空间的对应于l2p表的相应子集的部分内的逻辑地址相关联的任何数据。因此,存储器单元块的位图可以将l2p表的一或多个子集指示为与所述存储器单元块相关。在此实例中,存储器系统可不评估整个l2p表以标识由存储器单元块存储的有效数据,而是评估由位图指示的l2p表的一或多个子集。在一些情况下,这可以提高与由存储器系统执行的垃圾收集操作相关联的效率(例如,通过减少一或多个相关延迟)。另外或替代地,此类技术可允许与由存储器系统执行的垃圾收集操作相关联的开销基于配置l2p表的各个子集的大小(例如,l2p表是否被划分为相对较多的小子集,或相对较少的大子集)而可调(例如,可调整、可配置),以及本领域普通技术人员可理解的其它益处。
19.本公开的特征首先在参考图1至3描述的系统、框图和流程图的上下文中进行描述。本公开的这些和其它特征通过与参考图4至6描述的用于垃圾收集的有效数据标识相关的设备图和流程图进一步图示和描述。
20.图1图示了根据本文公开的实例的支持用于垃圾收集的有效数据标识的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
21.存储器系统110可为或包含任何装置或装置的集合,其中装置或装置的集合包含至少一个存储器阵列。例如,存储器系统110可为或包含通用快闪存储(ufs)装置、嵌入式多媒体控制器(emmc)装置、快闪装置、通用串行总线(usb)快闪装置、安全数字(sd)卡、固态驱动器(ssd)、硬盘驱动器(hdd)、双列直插式存储器模块(dimm)、小型dimm(so-dimm),或非易失性dimm(nvdimm),以及其它可能性。
22.系统100可以包含在诸如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具物联网(iot)功能的装置、嵌入式计算机(例如,包含在交通工具、工业设备或联网商业装置中的嵌入式计算机),或包含存储器和处理装置的任何其它计算装置的计算装置中。
23.系统100可包含主机系统105,其可与存储器系统110耦合。在一些实例中,所述耦合可包含与主机系统控制器106的接口,主机系统控制器106可为经配置以使主机系统105根据本文所述的实例执行各种操作的控制组件的实例。主机系统105可包含一或多个装置,且在一些情况下可包含处理器芯片组和通过处理器芯片组执行的软件堆栈。例如,主机系统105可包含经配置成用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个核心、一或多个高速缓存(例如,主机系统105本地的或包含在其中的存储器)、存储器控制器(例如,nvdimm控制器),和存储协议控制器(例如,外围组件互连高速(pcie)控制器、串行高级技术附件(sata)控制器)。主机系统105可以使用例如存储器系统110来将数据写入到存储器系统110并从存储器系统110读取数据。尽管在图1中示出了一个存储器系统110,主机系统105可以与任何数量的存储器系统110耦合。
24.主机系统105可经由至少一个物理主机接口与存储器系统110耦合。在一些情况下,主机系统105和存储器系统110可经配置以使用相关联协议经由物理主机接口通信(例如,以在存储器系统110与主机系统105之间交换或以其它方式传达控制、地址、数据和其它信号)。物理主机接口的实例可以包含但不限于sata接口、ufs接口、emmc接口、pcie接口、usb接口、光纤通道接口、小型计算机系统接口(scsi)、串行连接的scsi(sas)、双数据速率(ddr)接口、dimm接口(例如,支持ddr的dimm套接接口)、开放nand快闪接口(onfi),和低功率双数据速率(lpddr)接口。在一些实例中,可以在主机系统105的主机系统控制器106与存储器系统110的存储器系统控制器115之间包含或以其它方式支持一或多个此类接口。在一些实例中,主机系统105可经由包含在存储器系统110中的每个存储器装置130的相应物理主机接口或经由包含在存储器系统110中的每种类型的存储器装置130的相应物理主机接口而与存储器系统110耦合(例如,主机系统控制器106可与存储器系统控制器115耦合)。
25.存储器系统110可包含存储器系统控制器115和一或多个存储器装置130。存储器装置130可包含任何类型的存储器单元(例如,非易失性存储器单元、易失性存储器单元或其任何组合)的一或多个存储器阵列。尽管在图1的实例中示出了两个存储器装置130-a和130-b,存储器系统110可包含任何数量的存储器装置130。此外,如果存储器系统110包含多于一个存储器装置130,则存储器系统110内的不同存储器装置130可包含相同或不同类型的存储器单元。
26.存储器系统控制器115可与主机系统105耦合并与之通信(例如,经由物理主机接口),且可为经配置以使存储器系统110根据本文所述的实例执行各种操作的控制组件的实例。存储器系统控制器115还可与存储器装置130耦合并与之通信以在存储器装置130处执行诸如读取数据、写入数据、擦除数据或刷新数据等操作——以及其它此类操作——这些操作可泛称为存取操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令且与一或多个存储器装置130通信以执行此些命令(例如,在一或多个存储器装置130内的存储器阵列处)。例如,存储器系统控制器115可从主机系统105接收命令或操作,并且可将命令或操作转换成指令或适当命令以实现存储器装置130的所需存取。在一些情况下,存储
器系统控制器115可与主机系统105和与一或多个存储器装置130交换数据(例如,响应于来自主机系统105的命令或以其它方式与来自主机系统105的命令相关联)。例如,存储器系统控制器115可将与存储器装置130相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的相应信号。
27.存储器系统控制器115可经配置成用于与存储器装置130相关联的其它操作。例如,存储器系统控制器115可执行或管理操作,诸如磨损均衡操作、垃圾收集操作、错误控制操作(诸如错误检测操作或错误校正操作)、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监视,以及与来自主机系统105的命令相关联的逻辑地址(例如,逻辑块地址(lba))和与存储器装置130内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。
28.存储器系统控制器115可包含硬件,诸如一或多个集成电路或离散组件、缓冲存储器或其组合。硬件可包含具有专用(例如,硬编码)逻辑的电路以执行本文中归属于存储器系统控制器115的操作。存储器系统控制器115可为或包含微控制器、专用逻辑电路(例如,现场可编程门阵列(fpga)、专用集成电路(asic)、数字信号处理器(dsp))或任何其它合适的处理器或处理电路。
29.存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(rom)或可存储可由存储器系统控制器115执行以执行本文中归属于存储器系统控制器115的功能的操作码(例如,可执行指令)的其它存储器。在一些情况下,本地存储器120可另外或替代地包含静态随机存取存储器(sram)或可由存储器系统控制器115用于内部存储或计算的其它存储器,例如,与本文归属于存储器系统控制器115的功能相关的存储器。另外或替代地,本地存储器120可以用作存储器系统控制器115的高速缓存。例如,如果从存储器装置130读取数据或将数据写入到存储器装置130,则数据可以存储在本地存储器120中,并且数据可以在本地存储器120内可用于随后由主机系统105(例如,以相对于存储器装置130的延迟减少)根据高速缓存策略进行检索或操纵(例如,更新)。
30.存储器装置130可包含非易失性存储器单元的一或多个阵列。例如,存储器装置130可包含nand(例如,nand快闪)存储器、rom、相变存储器(pcm)、自选择存储器、其它基于硫族化物的存储器、铁电随机存取存储器(ram)(feram)、磁性ram(mram)、nor(例如,nor快闪)存储器、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻式随机存取存储器(rram)、基于氧化物的rram(oxram)、电可擦除可编程rom(eeprom)或其任何组合。另外或替代地,存储器装置130可包含易失性存储器单元的一或多个阵列。例如,存储器装置130可包含ram存储器单元,诸如动态ram(dram)存储器单元和同步dram(sdram)存储器单元。
31.在一些实例中,存储器装置130可包含(例如,在相同裸片上或在相同封装内)本地控制器135,其可以对相应存储器装置130的一或多个存储器单元执行操作。本地控制器135可以与存储器系统控制器115一起操作,或可以执行本文中归属于存储器系统控制器115的一或多个功能。例如,如图1所示,存储器装置130a可以包含本地控制器135a,并且存储器装置130b可以包含本地控制器135b。
32.在一些情况下,存储器装置130可为或包含nand装置(例如,nand快闪装置)。存储器装置130可为或包含存储器裸片160。例如,在一些情况下,存储器装置130可为包含一或多个裸片160的封装。在一些实例中,裸片160可以是从晶片切割的一片电子级半导体(例
如,从硅晶片切割的硅裸片)。每个裸片160可以包含一或多个平面165,且每个平面165可以包含相应的一组块170,其中每一块170(例如,存储器单元块)可以包含相应的一组页175,且每一页175可以包含一组存储器单元。另外,每一页175可经配置以存储与一或多个逻辑地址相关联的相应数据集(例如,在由主机系统参考或以其它方式与主机系统相关联的逻辑地址空间内)。
33.在一些情况下,nand存储器装置130可包含经配置以各自存储一个信息位的存储器单元,其可被称为单层级单元(slc)。另外或替代地,nand存储器装置130可包含经配置以各自存储多个信息位的存储器单元,如果经配置以各自存储两个信息位,则其可称为多层级单元(mlc),如果经配置以各自存储三个信息位,则其可称为三层级单元(tlc),如果经配置以各自存储四个信息位,则其可称为四层级单元(qlc),或更一般地称为多层级存储器单元。多层级存储器单元可相对于slc存储器单元提供更大的存储密度,但在一些情况下,可能涉及用于支持电路系统的更窄读取或写入裕度或更大复杂度。
34.在一些情况下,平面165可指代块170的组,且在一些情况下,可在不同平面165内发生并发操作。例如,可以对不同块170内的存储器单元执行并发操作,只要不同块170在不同平面165中。在一些情况下,在不同平面165中执行并发操作可能受到一或多个限制,诸如对在其相应平面165内具有相同页地址的不同页175内的存储器单元执行相同操作(例如,与命令解码、页地址解码电路或其它电路在平面165之间共享相关)。
35.在一些情况下,块170可以包含组织成行(页175)和列(例如,串,未示出)的存储器单元。例如,同一页175中的存储器单元可共享共同字线(例如,与其耦合),并且同一串中的存储器单元可共享共同数字线(其可替代地被称为位线)(例如,与其耦合)。
36.对于一些nand架构,存储器单元可在第一粒度级别(例如,在页粒度级别)读取和编程(例如,写入),但可在第二粒度级别(例如,在块粒度级别)擦除。也就是说,页175可为可独立地编程或读取(例如,作为单个编程或读取操作的一部分同时编程或读取)的存储器(例如,存储器单元的集合)的最小单元,且块170可为可独立地擦除(例如,作为单个擦除操作的一部分同时擦除)的存储器(例如,存储器单元的集合)的最小单元。此外,在一些情况下,nand存储器单元可在其可用新数据重写之前进行擦除。因此,例如,在一些情况下,可直到包含页175的整个块170已被擦除才更新所使用的页175。
37.在一些情况下,为了更新块170内的一些数据同时保留块170内的其它数据,存储器装置130可以将待保留的数据复制到新块170且将更新后的数据写入到新块170的一或多个剩余页。存储器装置130(例如,本地控制器135)或存储器系统控制器115可将保留在旧块170中的数据标记或以其它方式指定为无效或过时的,并且可以更新l2p表(例如,l2p映射表)以将数据的逻辑地址(例如,lba)与新的有效块170而不是旧的无效块170相关联。在一些情况下,例如,由于延迟或磨损的考虑,这种复制和重新映射可能比擦除和重写整个旧块170更可取。在一些情况下,l2p映射表的一或多个副本可存储在存储器装置130的存储器单元内(例如,一或多个块170或平面165内),以供本地控制器135或存储器系统控制器115使用(例如,参考和更新)。
38.在一些情况下,可以维护l2p表并且可在页粒度级别将数据标记为有效或无效,并且页175可含有效数据、无效数据或不含数据。无效数据可以是由于存储在存储器装置130的不同页175中的数据的较新或更新版本而过时的数据。无效数据可能先前已编程到无效
页175,但可能不再与有效逻辑地址(诸如由主机系统105引用的逻辑地址)相关联。有效数据可以是存储在存储器装置130上的此类数据的最新版本。不包含数据的页175可为从未写入或已擦除的页175。
39.在一些情况下,存储器系统控制器115或本地控制器135可执行存储器装置130的操作(例如,作为一或多个媒体管理算法的一部分),例如磨损均衡、后台刷新、垃圾收集、清理、块扫描、健康监测,或其它操作,或其任何组合。例如,在存储器装置130内,块170可具有含有有效数据的一些页175和含有无效数据的一些页175。为了避免等待块170中的所有页175具有无效数据以便擦除和重复使用块170,可调用被称作“垃圾收集”的算法,以允许块170被擦除和释放为用于后续写入操作的空闲块。垃圾收集可以指一组媒体管理操作,其包含(例如)选择含有有效和无效数据的块170、选择含有有效数据的块中的页175、将有效数据从选定页175复制到新位置(例如,另一块170中的空闲页175)、将先前选定页175中的数据标记为无效,以及擦除选定块170。因此,可以增加已擦除的块170的数目,使得更多块170可用于存储后续数据(例如,随后从主机系统105接收的数据)。
40.在一些情况下,评估整个l2p表以标识由存储器单元块存储的有效数据(例如,在垃圾收集操作期间)可能是低效的。例如,l2p表可能相对较大,并且评估整个l2p表可能花费相应的大量时间。然而,如本文所述,存储器系统110可替代地评估l2p表的一或多个子集以标识由存储器单元存储的有效数据。例如,存储器系统110可以为每个块170(例如,在块170内、在本地存储器120内、在本地控制器135处)存储位图,其中位图的每一位对应于l2p表的相应子集,并且指示块170是否正存储与逻辑地址空间的对应于l2p表的相应子集的部分内的逻辑地址相关联的任何数据。因此,块170的位图可以将l2p表的一或多个子集指示为与所述块170相关。在此实例中,存储器系统110可不评估整个l2p表以标识由块170存储的有效数据,而是评估由位图指示的l2p表的一或多个子集。在一些情况下,这可以提高与由存储器系统110执行的垃圾收集操作相关联的效率(例如,通过减少一或多个相关延迟)。另外或替代地,此类技术可允许与由存储器系统110执行的垃圾收集操作相关联的开销基于配置l2p表的各个子集的大小(例如,l2p表是否被划分为相对较多的小子集,或相对较少的大子集)而可调(例如,可调整、可配置),以及本领域普通技术人员可理解的其它益处。
41.系统100可以包含支持用于垃圾收集的有效数据标识的任何数量的非暂时性计算机可读媒体。例如,主机系统105、存储器系统控制器115或存储器装置130可以包含或以其它方式可存取存储用于执行本文中归属于主机系统105、存储器系统控制器115或存储器装置130的功能的指令(例如,固件)的一或多个非暂时性计算机可读媒体。例如,此类指令在由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115或由存储器装置130(例如,由本地控制器135)执行时可使主机系统105、存储器系统控制器115或存储器装置130执行如本文描述的一或多个相关联功能。
42.图2图示了根据本文公开的实例的支持用于垃圾收集的有效数据标识的框图200的实例。框图200可以实现如参考图1描述的系统的各方面。例如,一种存储器系统,如参考图1描述的,可以包含存储器单元块270、l2p表210和位图220。另外,存储器单元块270可为如参考图1描述的块170的实例。框图200可图示存储在存储器单元块270、l2p表210和位图220处的数据205之间的实例关系。在一些情况下,存储器系统可以包含用于存储器系统的每个存储器单元块270的位图220。另外,存储器系统可以针对存储器系统的多个(例如,每
个)存储器单元块270参考同一l2p表210。
43.存储器单元块270可以存储多组数据205。在一些情况下,存储器单元块270可以包含存储器单元组(例如,页175),其各自具有相应的物理地址(例如,pba)且经配置以存储对应于一或多个逻辑地址(例如,lba)的相应数据集205。例如,在存储器单元块270内,第一组存储器单元可以存储对应于第一逻辑地址的数据205-a,第二组存储器单元可以存储对应于第二逻辑地址的数据205-b,第三组存储器单元可以存储对应于第三逻辑地址的数据205-c,且第四组存储器单元可以存储对应于第四逻辑地址的数据205-d。尽管框图200将存储器单元块270图示为存储与四个逻辑地址相关联的数据集205,但存储器单元块270可经配置以存储与任何数量的逻辑地址(例如,64个逻辑地址、6000个逻辑地址)相关联的任何数量的数据集205。
44.l2p表210可以指示逻辑地址(例如,与主机系统相关联)与物理地址(例如,与存储器单元块270的页相关联)之间的映射。也就是说,l2p表210可以针对每个逻辑地址指示存储有对应于逻辑地址的数据的存储器单元的物理地址。例如,在一些情况下,l2p表210可以是物理地址(例如,pba)的有序列表,其中l2p表210内的每个位置对应于相应的逻辑地址(例如,lba),并且因此在l2p表210内的特定位置中列出的物理地址指示与对应于所述位置的逻辑地址相关联的数据被存储在具有所列出的物理地址的存储器单元处。
45.l2p表210可以被分区为任意数量的子集215(例如,一或多个部分、一或多个区域)。l2p表210的每个子集215可以包含与l2p表210所覆盖的逻辑地址空间的相应部分(例如,区域)相关联的信息。例如,子集215-a可以包含与第一组逻辑地址相关联的信息,子集215-b可以包含与第二组逻辑地址相关联的信息,子集215-c可以包含与第三组逻辑地址相关联的信息,且子集215-d可以包含与第四组逻辑地址相关联的信息。在框图200的实例中,l2p表210的子集215-a可以包含与数据205-a、数据205-b和数据205-c相关联的逻辑地址。另外,l2p表210的子集215-c可以包含与数据205-d相关联的逻辑地址。在一些情况下,存储器单元块270可以不包含与l2p表210的一或多个子集215相关联的任何数据205(例如,在图2的实例中,没有与子集215-b和215-d相关联的数据存储在存储器单元块270内)。
46.对于每个存储器单元块270,存储器系统可以指示对应的位图220。对于l2p表210的每个子集215,位图220可以指示存储器单元块270是否包含与子集215所覆盖的逻辑地址相关联的任何数据205。例如,位图220可以包含与l2p表210的每个子集215相关联的相应位225。例如,位225-a可以与子集215-a相关联,位225-b可以与子集215-b相关联,位225-c可以与子集215-c相关联,且位225-d可以与子集215-d相关联。与子集215相关联的位225的值可以指示存储器单元块270是否包含具有由子集215覆盖(例如,在与其相关联的逻辑地址范围内)的逻辑地址的任何数据205。例如,位图220的位225-a可以存储指示l2p表210的子集215-a包含对应于存储在存储器单元块中的数据205的至少一个逻辑地址的值(例如,逻辑值“1”)。相反地,例如,位225-b可以存储不同的值(例如,逻辑值“0”),其指示l2p表210的子集215-b不包含对应于存储在存储器单元块270中的任何数据205的逻辑地址。在框图200的实例中,存储器单元块270存储对应于子集215-a和子集215-c内的逻辑地址的数据205。因此,位图220可以包含位225-a和225-c,其分别指示l2p表210的子集215-a和215-c具有对应于存储器单元块270所存储的数据205的逻辑地址。另外,位225-b和225-d可以分别指示子集215-b和215-d不包含对应于存储在存储器单元块270中的数据205的逻辑地址。
47.在一些情况下,存储器系统可以结合将数据205写入到存储器单元块270来更新l2p表210和位图220。例如,结合将数据205存储在存储器单元块270中,存储器系统可更新l2p表210以指示对应于某一逻辑地址的数据205存储在存储器单元块270内具有某一物理地址的存储器单元中。例如,结合将对应于某一逻辑地址的数据205-c写入到存储器单元块270,存储器系统可以更新l2p表210以指示对应于某一逻辑地址的数据205-c存储在存储器单元块270内的第三组存储器单元(例如,第三页175)内。这里,对应于数据205-c的逻辑地址可以在与l2p表210的子集215-a相关联(例如,由其映射、覆盖)的逻辑地址的范围或其它集合内。因此,存储器系统可以基于将数据205-c写入到存储器单元块270而更新l2p表210的子集215-a内的条目,其中更新后的条目可将数据205-c的逻辑地址(例如,lba)映射到存储器单元块270内的第三组存储器单元(例如,第三页175)的物理地址(例如,pba)。
48.另外或替代地,响应于将数据205存储在存储器单元块270中,存储器系统可以更新位图220。例如,基于将数据205-c写入到存储器单元块270,存储器系统可以将位225-a(例如,对应于l2p表210的子集215-a)设置为指示存储器单元块270正存储对应于由l2p表210的子集215-a覆盖的至少一个逻辑地址的数据205-c的值。
49.响应于确定在存储器单元块270处执行垃圾收集操作,存储器系统可参考位图220来标识l2p表210的一或多个子集215以进行评估(例如,以便标识由存储器单元块270存储的给定数据集205是有效的还是无效的,如本文别处更详细描述的,包含参考图3)。存储器系统可标识一或多个子集215以基于位图220的位225的值进行评估。在框图200的实例中,存储器系统可以基于位图220确定评估子集215-a和子集215-c。也就是说,位225-a和225-c可以分别指示子集215-a和215-c各自包含对应于由存储器单元块270存储的数据205的至少一个逻辑地址。另外,位225-b和225-d可以分别指示子集215-b和215-d不包含对应于由存储器单元块存储的数据205的任何逻辑地址。因此,存储器系统可以评估l2p表210的子集215-a和215-c,并且可以避免评估子集215-b和215-d。因此,存储器系统可以在对存储器单元块270执行垃圾收集时仅评估l2p表210的一部分(例如,一或多个子集215),这可以提供延迟效益、效率效益或两者,以及其它可能的效益。
50.子集215的大小可以是可配置的,或作为存储器系统的设计的一部分,或作为存储器系统的可配置参数,其可以在制造后(例如,基于一或多个熔丝设置)或动态地(例如,在运行时间期间或作为任何初始化过程的一部分,例如由存储器系统的主机系统)进行配置。因此,不同的存储器系统可以针对l2p表210的子集215利用不同的大小,或者相同的存储器系统可以在不同的时间针对l2p表210的子集215利用不同的大小。此外,在一些情况下,即使在同一存储器系统内,不同子集215也可以同时具有不同的大小。例如,对于第一存储器单元块270,l2p表210的每个子集215可以包含与第一数量的逻辑地址相关联的信息。另外,对于第二存储器单元块270,每个子集215包含与第二数量的逻辑地址(例如,具有第二大小)相关联的信息。随着用于l2p表210的子集215的大小增加,与l2p表210相关联的子集215的数量减少。另外,随着用于l2p表210的子集215的大小减少,子集215的数量增加。
51.不管用于存储器单元块270的子集215的大小如何,存储器系统可以使用包含用于每个子集215的相应位225的位图220。因此,每个位图220的大小可以基于用于l2p表210的对应存储器单元块270的子集215的数量。在一些情况下,存储器系统可以对具有slc的存储器单元块270(或与相对较高速度相关联的其它存储器单元块270)利用较小的子集大小,并
对具有mlc、tlc或qlc的存储器单元区块270(或与相对较低速度相关联的其它存储器单元块270)利用较大的子集大小。每个子集215的可配置大小可以允许与由存储器系统执行的垃圾收集操作相关联的开销基于配置l2p表210的各个子集215的大小(例如,l2p表210是否被划分为相对较多的小子集215,或相对较少的大子集215)而可调(例如,可调整、可配置),以及本领域普通技术人员可理解的其它益处。
52.在一些情况下,子集215的大小可以是固定的。也就是说,存储器系统内的每个l2p表210的子集215的大小可以是预定义的或预先配置的。在一些其它情况下,每个子集215的大小可以是动态的。例如,主机系统可以向存储器系统发信号通知l2p表210的子集215的更新大小。这里,存储器系统可以使与l2p表210相关联的数据205无效,以重新配置l2p表210的子集215的大小。在一些实例中,存储器系统可以在重新配置子集215的大小(且因此使数据205无效)之前对与l2p表210相关联的存储器单元块270执行垃圾收集操作。
53.图3图示了根据本文公开的实例的支持用于垃圾收集的有效数据标识的流程图300的实例。流程图300可以实现如参考图1和2描述的系统的各方面。例如,流程图300描述的操作可以由如参考图1和2描述的存储器系统执行。可以实施流程图300以在存储器系统处存储数据并在存储器系统处执行垃圾收集操作。在流程图300的以下描述中,可以以不同的顺序或在不同的时间执行操作。也可以从流程图300中省略一些操作,并且可以将其它操作添加到流程图300。
54.在305处,可以将数据写入(例如,由存储器系统)到存储器单元块的子集。例如,存储器系统可以从主机系统接收指示数据的写入命令。然后,存储器系统可以根据写入命令将数据写入到存储器单元块。数据可对应于逻辑地址(例如,在与主机系统相关联的逻辑地址空间内)且可存储在物理地址处(例如,与存储器单元块内的存储器单元组(例如,存储器单元页)相关联)。存储器系统可以更新指示逻辑地址与物理地址之间的映射的l2p表。
55.在310处,可以由存储器系统基于将数据写入到存储器单元块内的存储器单元组来标识逻辑地址空间的包含逻辑地址(例如,对应于写入到存储器单元块的子集的数据)的一部分。也就是说,逻辑地址空间可以被分区为一或多个部分,其各自包含一或多个逻辑地址。在310处,存储器系统可以标识逻辑地址空间的哪些部分包含对应于写入到存储器单元块的子集的数据的逻辑地址。
56.在315处,可以由存储器系统基于标识逻辑地址空间的部分而设置位图的位。也就是说,位图的每一位可对应于逻辑地址空间的相应部分(其又可对应于如本文所述的相应子集215),且存储器系统可将位图的位设置为指示逻辑地址空间的所标识部分包含对应于存储在存储器单元块内的数据的至少一个逻辑地址的值。在一些情况下,位可已设置为指示逻辑地址空间的所标识部分包含对应于存储在存储器单元块内的数据的至少一个逻辑地址的值。这里,存储器系统可以验证位图的位被设置为所述值,而不是设置位图的位。
57.在320处,位图可以任选地存储在存储器单元块处。例如,在一些情况下,与存储器单元块相关联的位图可以临时存储在存储器系统的控制器处(例如,在本地存储器120内),直到存储器单元块满为止。存储器系统可以基于存储数据的存储器单元的阈值数量(例如,基于已编程的块的页的阈值数量)确定存储器单元块已满。一旦存储器系统确定存储器单元块已满,则存储器系统可将与存储器单元块相关联的位图写入到块(例如,写入到块内的页或其它存储器单元组)。在另一实例中,存储器系统可将与存储器单元块相关联的位图写
入到存储器系统的不同部分(例如,写入到不同的存储器单元块)。
58.在325处,可以确定对存储器单元块执行(例如,由存储器系统)垃圾收集操作。例如,存储器系统可以响应于触发(例如,在阈值持续时间内闲置、可用于编程的存储器单元块的数量根据某一周期下降到某一阈值数量)而确定执行垃圾收集。在一些其它情况下,存储器系统可以接收命令(例如,从主机系统)以对存储器单元块执行垃圾收集操作。在确定执行垃圾收集时,存储器单元块可以存储多组数据,每一组对应于各自的逻辑地址。
59.在330处,可以读取(例如,由存储器系统)位图以确定(例如,标识)l2p表的一或多个子集以结合垃圾收集操作进行评估。例如,存储器系统可以基于位图的对应位被设置为一个逻辑值(例如,逻辑1)而确定存储器单元块包含来自逻辑地址空间的一或多个部分的数据,并且存储器系统可以基于位图的对应位被设置为另一逻辑值(例如,逻辑0)而确定存储器单元块不包含来自逻辑地址空间的一或多个其它部分的任何数据。
60.在335处,可以由存储器系统评估基于读取位图标识的l2p表的一或多个子集中的每一者。l2p表的一或多个评估子集可以是由位图指示为对应于由存储器单元块存储的至少一组数据的那些子集。在一些情况下,存储器系统可以另外避免评估l2p表的一或多个其它子集。这里,l2p表的一或多个其它子集可以是由位图指示为不对应于由存储器单元块存储的任何数据的那些子集。
61.对应于有效数据的逻辑地址(例如,来自对应于由存储器单元块存储的数据的逻辑地址集)可由存储器系统基于对l2p表的一或多个子集的评估来标识。例如,l2p表(以及其子集)可以将逻辑地址与存储数据的有效实例的存储器单元的对应物理地址相关联。每次更新(例如,重写)与给定逻辑地址相关联的数据时,可将数据的更新版本写入到一组新的存储器单元,且可更新l2p表以将逻辑地址与新存储器单元的物理地址相关联。先前写入到某一其它存储器单元组的数据的先前版本可能会变得无效(例如,过时),且l2p表可能不再将逻辑地址与其它存储器单元组的物理地址相关联。因此,如果块内的一组存储器单元的物理地址被列在l2p表的评估子集中,则所述一组存储器单元所存储的数据可被标识为有效。并且如果块内的一组存储器单元的物理地址未列在l2p表的任何评估子集中,则所述一组存储器单元所存储的数据可被标识为无效。这当然仅仅是一个实例,并且本领域的普通技术人员可以理解用于基于对l2p表的一或多个子集的评估来确定块内的存储器单元组存储有效数据还是无效数据的其它技术。
62.在340处,可以由存储器系统基于标识对应于有效数据的逻辑地址而执行垃圾收集操作。为了执行垃圾收集操作,存储器系统可将有效数据(例如,在340处标识的)写入(例如,复制)到一或多个其它存储器单元块内的存储器单元。存储器系统可以避免将无效数据写入到任何其它存储器单元块。然后,存储器系统可以从存储器单元块擦除数据。
63.在350处,与存储器单元块相关联的位图可以由存储器系统基于执行垃圾收集操作而重置。例如,存储器系统可以将位图的每一位设置为指示逻辑地址空间的任何部分均不包含对应于存储器单元块所存储的数据的逻辑地址的值。
64.图4示出了根据本文公开的实例的支持用于垃圾收集的有效数据标识的存储器系统420的框图400。存储器系统420可为如参考图1至3描述的存储器系统的各方面的实例。存储器系统420或其各种组件可为用于执行如本文描述的用于垃圾收集的有效数据标识的各个方面的装置的实例。例如,存储器系统420可以包含垃圾收集启动器425、位图管理器430、
l2p表组件435、有效数据管理器440、垃圾收集管理器445、数据存储管理器450或其任何组合。这些组件中的每一者可直接或间接地(例如经由一或多个总线)彼此通信。
65.垃圾收集启动器425可经配置为或以其它方式支持用于确定对存储器单元块执行垃圾收集操作的装置,其中存储器单元块存储对应于逻辑地址空间内的多个逻辑地址的数据。位图管理器430可经配置为或以其它方式支持用于读取存储器单元块的位图的装置,其中位图的每一位对应于逻辑地址空间的相应部分且指示逻辑地址空间的相应部分是否包含多个逻辑地址内的对应于数据的一或多个逻辑地址。l2p表组件435可经配置为或以其它方式支持用于评估逻辑地址空间的l2p表的子集的装置,评估是至少部分地基于位图的指示多个逻辑地址内的至少一个逻辑地址在逻辑地址空间的对应于l2p表的子集的一部分内的位进行。有效数据管理器440可经配置为或以其它方式支持用于至少部分地基于评估l2p表的子集而标识多个逻辑地址中的哪些对应于有效数据的装置。垃圾收集管理器445可经配置为或以其它方式支持用于至少部分地基于标识多个逻辑地址中的哪些对应于有效数据而对存储器单元块执行垃圾收集操作的装置。
66.在一些实例中,l2p表组件435可经配置为或以其它方式支持用于避免对l2p表的第二子集进行评估的装置,所述避免是至少部分地基于位图的指示多个逻辑地址各自在逻辑地址空间的对应于l2p表的第二子集的第二部分之外的第二位进行。
67.在一些实例中,l2p表组件435可经配置为或以其它方式支持用于至少部分地基于位图的附加位而标识多个逻辑地址包含逻辑地址空间的附加部分内的一或多个逻辑地址的装置。在一些实例中,l2p表组件435可经配置为或以其它方式支持用于评估l2p表的对应于逻辑地址空间的附加部分的第二子集的装置,其中标识多个逻辑地址中的哪些对应于有效数据且对存储器单元块执行垃圾收集操作进一步至少部分地基于评估l2p表的第二子集。
68.在一些实例中,逻辑地址空间的对应于l2p表的第二子集的附加部分与逻辑地址空间的对应于l2p表的子集的部分不接续。
69.在一些实例中,位图管理器430可经配置为或以其它方式支持用于至少部分地基于执行垃圾收集操作而重置位图的每一位的装置。
70.在一些实例中,数据存储管理器450可经配置为或以其它方式支持用于在确定执行垃圾收集操作之前将一组数据写入到存储器单元块的装置,所述一组数据对应于多个逻辑地址中的一个逻辑地址。在一些实例中,l2p表组件435可经配置为或以其它方式支持用于至少部分地基于将所述一组数据写入到存储器单元块而将逻辑地址空间的所述部分标识为包含所述一个逻辑地址的装置。在一些实例中,位图管理器430可经配置为或以其它方式支持用于至少部分地基于将逻辑地址空间的所述部分标识为包含所述一个逻辑地址而设置位图的位的装置,其中被设置的位图的位指示多个逻辑地址内的至少一个逻辑地址在逻辑地址空间的所述部分内,并且其中读取位图包含标识位图的位被设置。
71.在一些实例中,为了支持执行垃圾收集操作,垃圾收集管理器445可经配置为或以其它方式支持用于将对应于多个逻辑地址中的一或多个的有效数据存储在不同于存储器单元块的一或多个其它存储器单元块内的装置。在一些实例中,为了支持执行垃圾收集操作,垃圾收集管理器445可经配置为或以其它方式支持用于至少部分地基于将有效数据存储到一或多个其它存储器单元块而从存储器单元块擦除对应于多个逻辑地址的数据的装
置。
72.在一些实例中,位图被存储在存储器系统的控制器内。在一些情况下,位图被存储在存储器单元块内。
73.数据存储管理器450可经配置为或以其它方式支持用于将一组数据写入到存储器单元块的子集的装置,所述一组数据对应于逻辑地址空间内的逻辑地址。在一些实例中,l2p表组件435可经配置为或以其它方式支持用于至少部分地基于将所述一组数据写入到存储器单元块的子集而标识逻辑地址空间的包含逻辑地址的一部分的装置。在一些实例中,位图管理器430可经配置为或以其它方式支持用于至少部分地基于标识而设置位图的位的装置,其中位图的每一位对应于逻辑地址空间的相应部分,并且其中位图集的位指示对应于逻辑地址空间的对应于所述位的相应部分内的至少一个逻辑地址的数据存储在存储器单元块内。
74.在一些实例中,数据存储管理器450可经配置为或以其它方式支持用于将第二组数据写入到存储器单元块的第二子集的装置,第二组数据对应于逻辑地址空间内的第二逻辑地址。在一些实例中,l2p表组件435可经配置为或以其它方式支持用于至少部分地基于将第二组数据写入到存储器单元块的第二子集而标识逻辑地址空间的包含第二逻辑地址的第二部分的装置。在一些实例中,位图管理器430可经配置为或以其它方式支持用于至少部分地基于标识而设置位图的第二位的装置,其中被设置的第二位指示对应于逻辑地址空间的第二部分内的至少一个逻辑地址的数据存储在存储器单元块内。
75.在一些实例中,逻辑地址空间的第二部分与逻辑地址空间的相应部分不接续。
76.在一些实例中,数据存储管理器450可经配置为或以其它方式支持用于将第三组数据写入到存储器单元块的第三子集的装置,第三组数据对应于逻辑地址空间内的第三逻辑地址。在一些实例中,l2p表组件435可经配置为或以其它方式支持用于至少部分地基于将第三组数据写入到存储器单元块的第三子集而标识第三逻辑地址在逻辑地址空间的相应部分内的装置。在一些实例中,位图管理器430可经配置为或以其它方式支持用于至少部分地基于标识第三逻辑地址在逻辑地址空间的相应部分内而确保位被设置的装置。
77.在一些实例中,数据存储管理器450可经配置为或以其它方式支持用于至少部分地基于将所述一组数据写入到存储器单元块而确定存储器单元块的阈值数量的存储器单元正在存储数据的装置。在一些实例中,位图管理器430可经配置为或以其它方式支持用于至少部分地基于所述确定而将位图从存储器系统的控制器传送到存储器单元块的第二子集的装置。
78.在一些实例中,垃圾收集启动器425可经配置为或以其它方式支持用于在设置位图的位之后确定对存储器单元块执行垃圾收集操作的装置,其中存储器单元块存储对应于逻辑地址空间内的多个逻辑地址的数据。在一些实例中,位图管理器430可经配置为或以其它方式支持用于读取位图以确定多个逻辑地址内的一或多个逻辑地址是否在逻辑地址空间的相应部分内的装置。在一些实例中,l2p表组件435可经配置为或以其它方式支持用于评估逻辑地址空间的l2p表的子集的装置,l2p表的子集对应于逻辑地址空间的相应部分,并且评估是至少部分地基于位图的指示逻辑地址空间的相应部分内的至少一个逻辑地址被存储在存储器单元块内的位进行。在一些实例中,有效数据管理器440可经配置为或以其它方式支持用于至少部分地基于l2p表的子集而标识多个逻辑地址中的哪些对应于有效数
据的装置。在一些实例中,垃圾收集管理器445可经配置为或以其它方式支持用于至少部分地基于标识多个逻辑地址中的哪些对应于有效数据而对存储器单元块执行垃圾收集操作的装置。
79.在一些实例中,为了支持设置位图的位,位图管理器430可经配置为或以其它方式支持用于将位图的位设置为第一值的装置,其中具有第一值的位图的位指示逻辑地址空间的相应部分内的至少一个逻辑地址被存储在存储器单元块内,并且其中具有第二值的位图的位指示逻辑地址空间的相应部分内没有逻辑地址被存储在存储器单元块内。
80.图5示出了图示根据本文公开的实例的支持用于垃圾收集的有效数据标识的方法500的流程图。方法500的操作可由如本文描述的存储器系统或其组件来实施。例如,方法500的操作可由参考图1至4描述的存储器系统来执行。在一些实例中,存储器系统可以执行一组指令以控制装置的功能元件来执行所描述的功能。另外或替代地,存储器系统可以使用专用硬件来执行所描述的功能的各方面。
81.在505处,所述方法可以包含确定对存储器单元块执行垃圾收集操作,其中存储器单元块存储对应于逻辑地址空间内的多个逻辑地址的数据。可以根据如本文公开的实例执行505的操作。在一些实例中,505的操作的各方面可由参考图4描述的垃圾收集启动器425执行。
82.在510处,所述方法可以包含读取存储器单元块的位图,其中位图的每一位对应于逻辑地址空间的相应部分且指示逻辑地址空间的相应部分是否包含多个逻辑地址内的对应于数据的一或多个逻辑地址。可以根据如本文公开的实例执行510的操作。在一些实例中,510的操作的各方面可由参考图4描述的位图管理器430执行。
83.在515处,所述方法可以包含评估逻辑地址空间的l2p表的子集,评估是至少部分地基于位图的指示多个逻辑地址内的至少一个逻辑地址在逻辑地址空间的对应于l2p表的子集的一部分内的位进行。可以根据如本文公开的实例执行515的操作。在一些实例中,515的操作的各方面可由参考图4描述的l2p表组件435执行。
84.在520处,所述方法可以包含至少部分地基于评估l2p表的子集而标识多个逻辑地址中的哪些对应于有效数据。可以根据如本文公开的实例执行520的操作。在一些实例中,520的操作的各方面可由参考图4描述的有效数据管理器440执行。
85.在525处,所述方法可以包含至少部分地基于标识多个逻辑地址中的哪些对应于有效数据而对存储器单元块执行垃圾收集操作。可以根据如本文公开的实例执行525的操作。在一些实例中,525的操作的各方面可以由如参考图4所描述的垃圾收集管理器445执行。
86.在一些实例中,本文描述的设备可以执行一种或多种方法,诸如方法500。所述设备可以包含用于以下的特征、电路、逻辑、装置或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):确定对存储器单元块执行垃圾收集操作,其中存储器单元块存储对应于逻辑地址空间内的多个逻辑地址的数据;读取存储器单元块的位图,其中位图的每一位对应于逻辑地址空间的相应部分且指示逻辑地址空间的相应部分是否包含多个逻辑地址内的对应于数据的一或多个逻辑地址;评估逻辑地址空间的l2p表的子集,评估是至少部分地基于位图的指示多个逻辑地址内的至少一个逻辑地址在逻辑地址空间的对应于l2p表的子集的一部分内的位进行;至少部分地基于评估l2p表的子集而标识多个逻辑地址
中的哪些对应于有效数据;以及至少部分地基于标识多个逻辑地址中的哪些对应于有效数据而对存储器单元块执行垃圾收集操作。
87.本文描述的方法500和设备的一些实例可进一步包含用于避免对l2p表的第二子集进行评估的操作、特征、电路、逻辑、装置或指令,所述避免是至少部分地基于位图的指示多个逻辑地址各自可以在逻辑地址空间的对应于l2p表的第二子集的第二部分之外的第二位进行。
88.本文描述的方法500和设备的一些实例可进一步包含用于以下的操作、特征、电路、逻辑、装置或指令:至少部分地基于位图的附加位而标识多个逻辑地址包含逻辑地址空间的附加部分内的一或多个逻辑地址;以及评估对应于逻辑地址空间的附加部分的l2p表的第二子集,其中标识多个逻辑地址中的哪些对应于有效数据且对存储器单元块执行垃圾收集操作可进一步至少部分地基于评估l2p表的第二子集。
89.在本文描述的方法500和设备的一些实例中,逻辑地址空间的对应于l2p表的第二子集的附加部分可以与逻辑地址空间的对应于l2p表的子集的部分不接续。
90.本文描述的方法500和设备的一些实例可进一步包含用于至少部分地基于执行垃圾收集操作而重置位图的每一位的操作、特征、电路、逻辑、装置或指令。
91.本文描述的方法500和设备的一些实例可进一步包含用于以下的操作、特征、电路、逻辑、装置或指令:在确定执行垃圾收集操作之前将一组数据写入到存储器单元块,所述一组数据对应于多个逻辑地址中的一个逻辑地址;至少部分地基于将所述一组数据写入到存储器单元块而将逻辑地址空间的所述部分标识为包含所述一个逻辑地址;以及至少部分地基于将逻辑地址空间的所述部分标识为包含所述一个逻辑地址而设置位图的位,其中被设置的位图的位指示多个逻辑地址内的至少一个逻辑地址可以在逻辑地址空间的所述部分内,并且其中读取位图包含标识位图的位被设置。
92.在本文描述的方法500和设备的一些实例中,用于执行垃圾收集操作的操作、特征、电路、逻辑、装置或指令可以包含用于将对应于多个逻辑地址中的一或多个的有效数据存储在不同于存储器单元块的一或多个其它存储器单元块内且至少部分地基于将有效数据存储到一或多个其它存储器单元块而从存储器单元块擦除对应于多个逻辑地址的数据的操作、特征、电路、逻辑、装置或指令。
93.在本文描述的方法500和设备的一些实例中,位图可以存储在存储器系统的控制器内。
94.在本文描述的方法500和设备的一些实例中,位图可以存储在存储器单元块内。
95.图6示出了图示根据本文公开的实例的支持用于垃圾收集的有效数据标识的方法600的流程图。方法600的操作可由如本文描述的存储器系统或其组件来实施。例如,方法600的操作可由参考图1至4描述的存储器系统来执行。在一些实例中,存储器系统可以执行一组指令以控制装置的功能元件来执行所描述的功能。另外或替代地,存储器系统可以使用专用硬件来执行所描述的功能的各方面。
96.在605处,所述方法可以包含将一组数据写入到存储器单元块的子集,所述一组数据对应于逻辑地址空间内的逻辑地址。可以根据如本文公开的实例执行605的操作。在一些实例中,605的操作的各方面可由参考图4描述的数据存储管理器450执行。
97.在610处,所述方法可以包含至少部分地基于将所述一组数据写入到存储器单元
块的子集而标识逻辑地址空间的包含逻辑地址的一部分。可以根据如本文公开的实例执行610的操作。在一些实例中,610的操作的各方面可由参考图4描述的l2p表组件435执行。
98.在615处,所述方法可以包含至少部分地基于标识而设置位图的位,其中位图的每一位对应于逻辑地址空间的相应部分,并且其中位图集的位指示对应于逻辑地址空间的对应于所述位的相应部分内的至少一个逻辑地址的数据存储在存储器单元块内。可以根据如本文公开的实例执行615的操作。在一些实例中,615的操作的各方面可由参考图4描述的位图管理器430执行。
99.在一些实例中,本文描述的设备可执行一种或多种方法,诸如方法600。所述设备可以包含用于以下的特征、电路、逻辑、装置或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):将一组数据写入到存储器单元块的子集,所述一组数据对应于逻辑地址空间内的逻辑地址;至少部分地基于将所述一组数据写入到存储器单元块的子集而标识逻辑地址空间的包含逻辑地址的一部分;以及至少部分地基于标识而设置位图的位,其中位图的每一位对应于逻辑地址空间的相应部分,并且其中位图集的位指示对应于逻辑地址空间的对应于所述位的相应部分内的至少一个逻辑地址的数据存储在存储器单元块内。
100.本文描述的方法600和设备的一些实例可进一步包含用于以下的操作、特征、电路、逻辑、装置或指令:将第二组数据写入到存储器单元块的第二子集,第二组数据对应于逻辑地址空间内的第二逻辑地址;至少部分地基于将第二组数据写入到存储器单元块的第二子集而标识逻辑地址空间的包含第二逻辑地址的第二部分;以及至少部分地基于标识而设置位图的第二位,其中被设置的第二位指示对应于逻辑地址空间的第二部分内的至少一个逻辑地址的数据存储在存储器单元块内。
101.在本文描述的方法600和设备的一些实例中,逻辑地址空间的第二部分可以与逻辑地址空间的相应部分不接续。
102.本文描述的方法600和设备的一些实例可进一步包含用于以下的操作、特征、电路、逻辑、装置或指令:将第三组数据写入到存储器单元块的第三子集,第三组数据对应于逻辑地址空间内的第三逻辑地址;至少部分地基于将第三组数据写入到存储器单元块的第三子集而标识第三逻辑地址可以在逻辑地址空间的相应部分内;以及至少部分地基于标识第三逻辑地址可以在逻辑地址空间的相应部分内而确保位被设置。
103.本文描述的方法600和设备的一些实例可进一步包含用于以下的操作、特征、电路、逻辑、装置或指令:至少部分地基于将所述一组数据写入到存储器单元块而确定存储器单元块的阈值数量的存储器单元可以存储数据;以及至少部分地基于所述确定而将位图从存储器系统的控制器传送到存储器单元块的第二子集。
104.本文描述的方法600和设备的一些实例可进一步包含用于以下的操作、特征、电路、逻辑、装置或指令:在设置位图的位之后确定对存储器单元块执行垃圾收集操作,其中存储器单元块存储对应于逻辑地址空间内的多个逻辑地址的数据;读取位图以确定多个逻辑地址内的一或多个逻辑地址是否可在逻辑地址空间的相应部分内;评估逻辑地址空间的l2p表的子集,l2p表的子集对应于逻辑地址空间的相应部分,并且评估是至少部分地基于位图的指示逻辑地址空间的相应部分内的至少一个逻辑地址被存储在存储器单元块内的位进行;至少部分地基于l2p表的子集而标识多个逻辑地址中的哪些对应于有效数据;以及
至少部分地基于标识多个逻辑地址中的哪些对应于有效数据而对存储器单元块执行垃圾收集操作。
105.在本文描述的方法600和设备的一些实例中,用于设置位图的位的操作、特征、电路、逻辑、装置或指令可以包含用于将位图的位设置为第一值的操作、特征、电路、逻辑、装置或指令,其中具有第一值的位图的位指示逻辑地址空间的相应部分内的至少一个逻辑地址被存储在存储器单元块内,并且其中具有第二值的位图的位指示逻辑地址空间的相应部分内没有逻辑地址被存储在存储器单元块内。
106.应注意,上文所描述的方法描述了可能的实施方案,且操作和步骤可经重新布置或以其它方式修改,且其它实施方案是可能的。另外,可组合来自所述方法中的两种或更多种的部分。
107.可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。例如,在整个以上描述中可以引用的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或粒子、光场或粒子,或其任何组合来表示。一些附图可以将信号示为单个信号;然而,信号可表示信号总线,其中总线可具有各种位宽度。
108.如果用于描述条件性动作或过程,术语“如果
……
,则
……”
、“当
……
时”、“基于
……”
、“至少部分地基于
……”
和“响应于
……”
可互换。
109.术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持电子在组件之间流动的关系。如果在组件之间存在可以在任何时间支持信号在组件之间流动的任何导电路径,则组件被认为彼此电子通信(或导电接触或连接或耦合)。在任何给定时间,基于包含所连接的组件的装置的操作,彼此电子通信(或导电接触或连接或耦合)的组件之间的导电路径可以是开路或闭路。所连接的组件之间的导电路径可以是组件之间的直接导电路径,或者所连接的组件之间的导电路径可以是间接导电路径,其可包含中间组件,诸如开关、晶体管或其它组件。在一些实例中,所连接的组件之间的信号流可例如使用一或多个中间组件(诸如开关或晶体管)中断一段时间。
110.术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。如果如控制器的组件将其它组件耦合在一起,那么组件发起允许信号经由先前不准许信号流动的导电路径在其它组件之间流动的改变。
111.术语“隔离”是指信号当前不能在组件之间流动的组件之间的关系。如果它们之间存在开路,则组件彼此隔离。例如,由定位在两个组件之间的开关间隔开的所述组件在开关断开的情况下彼此隔离。如果控制器将两个组件隔离,那么控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
112.本文所论述的装置(包含存储器阵列)可形成于半导体衬底上,诸如硅、锗、硅-锗合金、砷化镓、氮化镓等。在一些实例中,衬底是半导体晶片。在一些其它实例中,衬底可以是绝缘体上硅(silicon-on-insulator,soi)衬底,例如玻璃上硅(silicon-on-glass,sog)或蓝宝石上硅(silicon-on-sapphire,sop),或另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法执行掺杂。
113.本文讨论的开关组件或晶体管可以表示场效应晶体管(fet),并且包括三端装置,
其包含源极、漏极和栅极。端子可以通过导电材料(例如,金属)连接到其它电子元件。源极和漏极可以是导电的,并且可以包括重掺杂的(例如,退化的)半导体区域。源极和漏极可以由轻掺杂半导体区或信道隔开。如果信道是n型(即,多数载流子是电子),则fet可以被称为n型fet。如果信道是p型的(即,大部分载体为电洞),则fet可被称为p型fet。信道可以由绝缘栅氧化物覆盖。可以通过向栅极施加电压来控制信道导电性。例如,分别向n型fet或p型fet施加正电压或负电压可导致信道变得导电。如果大于或等于晶体管的阈值电压的电压施加到晶体管栅极,那么晶体管可“接通”或“激活”。如果小于晶体管的阈值电压的电压施加到晶体管栅极,那么晶体管可“断开”或“去激活”。
114.本文结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利要求书的范围内的所有实例。本文中使用的术语“示例性”是指“用作实例、例子或说明”,而不是“优选的”或“优于其它实例”。详细描述包含具体细节,以提供对所描述技术的理解。然而,这些技术可以在没有这些具体细节的情况下实施。在一些情况下,以框图形式示出了公知的结构和装置,以避免模糊所描述的实例的概念。
115.在附图中,相似的组件或特征可以具有相同的附图标记。此外,可通过在参考标记之后跟着短横及在类似组件之间进行区分的第二标记来区分相同类型的各种组件。如果说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记的类似组件中的任一者,与第二参考标记无关。
116.本文描述的功能可以用硬件、由处理器执行的软件、固件或其任何组合来实现。如果以由处理器执行的软件实施,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或经由计算机可读媒体发射。其它实例和实施在本公开和所附权利要求书的范围内。例如,由于软件的性质,上述功能可以使用由处理器执行的软件、硬件、固件、硬布线或任何这些的组合来实现。实现功能的特征也可以物理地位于各种位置,包含被分布使得功能的部分在不同的物理位置实现。
117.例如,结合本文中的公开内容所描述的各种说明性块及组件可使用通用处理器、dsp、asic、fpga或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或经设计以执行本文中所描述的功能的其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器可实施为计算装置的组合(例如,dsp与微处理器的组合、多个微处理器的组合、一或多个微处理器与dsp核心的组合,或任何其它此类配置)。
118.如本文中所使用,包含在权利要求书中,如在项列表(例如,后加例如“中的至少一个”或“中的一或多个”的短语的项列表)中所使用的“或”指示包含端点的列表,使得例如a、b或c中的至少一个的列表意指a或b或c或ab或ac或bc或abc(即,a和b和c)。另外,如本文所用,短语“基于”不应理解为提及封闭条件集。例如,被描述为“基于条件a”的示范性步骤可以基于条件a和条件b两者而不脱离本公开的范围。换句话说,如本文所使用的,短语“基于”应当以与短语“至少部分地基于”相同的方式来解释。
119.计算机可读媒体包含非暂时性计算机存储媒体和通信媒体,其包含便于将计算机程序从一个地方传送到另一个地方的任何媒体。非暂时性存储媒体可以是可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可包括ram、只读存储器(rom)、电可擦除可编程rom(eeprom)、压缩光盘(cd)rom或其它光盘存储装置、
磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或者通用或专用处理器存取的任何其它非暂时性媒体。此外,任何连接被适当地称为计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,则同轴电缆、光纤电缆、双绞线、数字订户线(digital subscriber line,dsl)或例如红外线、无线电和微波的无线技术包含在媒体的定义中。本文使用的磁盘和光盘包含cd、激光盘、光盘、数字多功能盘(dvd)、软盘和蓝光盘,其中磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。以上各者的组合也包含在计算机可读媒体的范围内。
120.提供本文的描述以使本领域技术人员能够制作或使用本公开。本领域技术人员将明了对本公开的各种修改,且本文中所界定的一般原理可应用于其它变化形式而不脱离本公开的范围。因此,本公开不限于本文中所描述的实例和设计,而是被赋予与本文公开的原理和新颖特征一致的最宽范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1