用于固态驱动器中的物理到逻辑映射的方法、设备和系统的制作方法_4

文档序号:9308573阅读:来源:国知局
(这在没有硬件的情况下可能是不可行的,因为这本质上是根据命令历史记录来生成逻辑到物理地址转换映射)。根据一个实施例,S日志映射还在上电时被构建以使其指向系统带中存储的有效的S日志。
[0066]用户数据S块的垃圾收集
[0067]图18-21是示出了根据一个实施例的垃圾收集的方面的框图。如其中所示,可以扫描用户S块信息906中的数据以选择“最好的” S块用于垃圾收集。存在若干标准,可以对所述若干标准进行评估以选择哪个S块用于垃圾收集。例如,用于垃圾收集的最好的S块可以是具有最大量的空闲空间和最低程序擦除(PE)量的S块。可替换地,可以对这些和/或其他标准进行加权以选择要进行垃圾收集的S块。为了示例的目的,在图18-21中被选择用于进行垃圾收集的S块是S块15,S块15由用户S块信息906内的信息条目15所引用,示出了一些量+3012字节的空闲空间(额外的3012字节用于记录最近废弃的L页100)。应当注意的是,用户S块信息906可以包括每一个所跟踪的S块所经历的PE周期数量的运行计数,可以对所述运行计数进行评估以决定哪个S块用于垃圾收集,连同其他项的信息一起。如1006处所示,S块15具有有效数据(混编的块)和无效数据(非混编的块)的混合。
[0068]既然已经选择S块15用于GC,那么可以查阅(例如,由S块号索引到)S日志映射(参看图9B中912)以找到该S块的对应的S日志在非易失性存储器中的位置(例如,E页地址)。为了示出示例,使用S日志号(E页地址的27个MSb)来定位由S日志映射912所指向的一个S日志的位置,并且将所述S日志读入到缓冲器1004,如图18所示。S卩,访问由S日志映射912所指向的系统S块1804中的I个或更多个E页,并且可以将在该位置开始存储的S日志读入到缓冲器1004。在一个实施例中,S日志映射页还包含S日志的长度,这是因为S日志可以跨越一个或多个E页。S日志可以非常大,并且S日志因此可以按片来读取并被处理为可用。
[0069]其后,缓冲器1004中的S日志中的每一个P2L条目然后可以与逻辑到物理地址转换映射1802中对应的条目进行比较。对于缓冲器1004中的S日志中的每一个条目,可以确定该条目的L页的物理地址是否与逻辑到物理地址转换映射1802中对应的条目中的相同L页的物理地址相匹配。如果二者匹配,那么S日志中的该条目有效。相反地,如果S日志中的L页的地址与逻辑到物理地址转换映射中该L页的条目不匹配,那么S日志中的该条目无效。
[0070]根据一个实施例,由于在对其条目进行分析和比较的S日志中找到了有效条目,所以其所引用的L页可以从S块15中被读出并且写到缓冲器1004,如图19所示。可以使用相同的处理以用于覆盖S块15的其他S日志直到整个S块被处理为止。同样如图19中附图标记1006处所示,S块15现在仅包含无效数据。这是因为由针对S块15的S日志中的条目指示为有效的数据已经被保留,并且不久将被移动到新的Si夬。在所示示例中,由于系统S块1804中的S块15的示例S日志中的条目指向这样的无效数据,所以该S日志被示出为被混编以指示其现在是陈旧的。然后可以更新逻辑到物理地址转换映射1802,生成被读取到缓冲器1004的有效数据的新的E页起始地址。应当注意的是,在对逻辑到物理地址转换映射的更新期间,可以针对有效条目来重新核对该映射并且可以在映射更新过程期间锁定该映射以保证原子性。有效数据还将迫使新的S日志条目在S日志1005中生成,这在一个实施例中是针对冷S块1801的。
[0071]在一个实施例中,然后可以将有效数据写出到冷S块1801 (热S块用于最近写入的主机数据,不用于垃圾收集数据),如图20所示。在某个稍后的时刻(例如,在增加了充足数量的条目之后),S日志1005可以被写出到系统带中的系统S块1804。S块15现已进行了垃圾收集,并且用户S块信息906现在指示整个S块15是空闲空间。其后S块15可以被擦除,其PE计数被更新并且成为对新的写入可用。应当注意的是,无效的S日志仍存在于系统S块1804中。在某个稍后的时刻可以对由该无效S日志所占用的系统带中的闪速存储器中的空间进行垃圾收集。
[0072]系统S块上的垃圾收集
[0073]图22-26是示出了根据一个实施例的对系统块进行垃圾收集的方面的框图。在图22-26发展的示例中,假设图22中的附图标记2208处所示的系统S块3已经被挑选用于垃圾收集。一旦系统S块被挑选,则在所挑选的系统S块中的所有E页(并且通过扩展,包含在其中的所有S日志)可以被读取(顺序地或非顺序地)到缓冲器1004。
[0074]如图23所建议的,被读取到缓冲器1004的一个或多个S日志的S日志号然后可以从该S日志的头部提取。然后每一个这样的系统S日志号可以用于在S日志映射2202中进行查找,以确定对应的S日志是否仍然有效。根据一个实施例,无效的S日志是其S日志号不能与S日志映射2202中的对应的条目相匹配的那些S日志,其中S日志映射2202中对应的条目具有关于S日志物理地存储于何处的最近更新的信息。例如,如果在S日志映射2202中S日志号“12345”的条目指向系统S块120内的E页,那么S块3 (该S块正在进行垃圾收集)中的S日志“12345”的拷贝是废弃的。同样地,如果相反S日志映射条目指向来自S日志“12345”当前所驻留的S块3的E页,那么S日志“ 12345”仍然有效。
[0075]在一个实施例中,进行垃圾收集的有效S日志可以包括有效和无效条目的混合,因此需要对条目进行单独检查。如图24所示,然后可以将每一个有效的S日志2402中的每一个条目与存储器中的逻辑到物理地址转换映射1802中的对应条目进行匹配。即,可以将每一个S日志条目所引用的L页的E页地址与逻辑到物理地址转换映射1802中指定的L页的E页地址进行比较。如果二者匹配,那么该S日志条目是有效的。根据一个实施例,将S日志中的E页地址和在E页内的偏移与逻辑到物理地址转换映射1802中指定的L页的E页地址和在E页内的偏移进行比较,是必要的。相反地,如果S日志中的L页的E页地址(或E页地址和偏移)与地址转换映射1802中的该L页的条目中的E页地址(或E页地址和偏移)不匹配,那么所述S日志中的该条目是无效的。
[0076]根据一个实施例,由于有效条目在S日志2402(对其条目进行分析和比较)中被识别,则可以将有效条目拷贝到S日志2402的新版本2502,如图25所示。根据一个实施例,S日志2502可以具有与S日志2402相同的S日志号。以这种方式,从被挑选用于GC的S块中加载到缓冲器1004中的每一个S日志可以首先在日志级被确定为有效或无效,并且然后,如果被确定为有效,则被压缩到只包含有效条目。根据一个实施例,无效的S日志条目简单地不被拷贝到S日志2502的新版本。因此,假定S日志2402具有一个或多个废弃的条目,可以预期的是,S日志的新版本2502将小于其旧版本2402(包括更少的条目)。应当注意的是,如果S日志具有所有有效的条目,则其新版本的尺寸将保持相同。
[0077]如图26所示,然后可以将S日志2502 (现在是无效或废弃的S日志2402的新版本)写到当前开放的系统S块,在图26中其为开放系统S块1,附图标记2206。其后,可以利用S日志2502在开放的系统S块I中的新位置来对S日志映射2202进行更新。在该过程的结尾,系统S块3(2208)中的S日志已经进行了垃圾收集,并且系统S块3然后可以被擦除并成为对于未来的编程可用。
[0078]尽管已经描述了本公开的特定实施例,但这些实施例只是以示例的方式进行呈现,而并不是要限制本公开的范围。实际上,可以以多种其他形式来体现本文所描述的新颖的方法、设备和系统。另外,可以对本文所描述的方法和系统的形式做出各种省略、替换和改变,而不偏离本公开的精神。所附的权利要求及其等价物是要涵盖这样的形式或修改,其将落入本公开的范围和精神。例如,本领域中的技术人员将意识到,在各种实施例中,实际的物理和逻辑结构可以与附图中所示的物理和逻辑结构不同。取决于实施例,可以移除在以上示例中所描述的特定步骤,可以添加其他步骤。同样,上文所公开的特定实施例的特征和属性可以以不同的方式组合以形成另外的实施例,其全部落入本公开的范围内。尽管本公开提供了特定优选的实施例和应用,但对本领域的普通技术人员而言显而易见的是,包括没有提供本文所阐述的全部特征和优点的实施例在内的其他实施例,也在本公开的范围内。因此,本公开的范围是要仅通过参考所附的权利要求来进行限定。
【主权项】
1.一种数据存储设备,包括: 多个非易失性存储器设备,所述多个非易失性存储器设备的每一个被配置为存储多个物理页,所述多个物理页中的每一个存储在多个非易失性设备内预定的物理位置; 控制器,其耦合到多个存储器设备,并且被配置为将数据编程到所述多个存储器设备以及从所述多个存储器设备中读取数据,所述数据存储在多个逻辑页(L页)中,所述多个L页中的每一个与L页号相关联,所述L页号被配置为使得所述控制器能够逻辑地引用存储在所述物理页的一个或多个中的数据;以及 易失性存储器,其包括逻辑到物理地址转换映射,所述逻辑到物理地址转换映射被配置为使得所述控制器能够确定存储在每一个L页中的数据在一个或多个物理页内的物理位置; 其中,所述控制器被配置为在所述多个非易失性存储器设备中保持限定了物理到逻辑对应关系的多个日志,所述多个日志中的每一个与日志号相关联,每一个日志覆盖预定范围的物理页并且包括多个日志条目,每一个条目被配置为将一个或多个物理页与每一个L页相关联,其中,所述控制器被配置为在启动时读取所述多个日志,并且根据所读取的多个日志对存储在所述易失性存储器中的地址转换映射进行重建。2.根据权利要求1所述的数据存储设备,其中,所述控制器进一步被配置为,在对所述多个L页中的一个进行更新时,在所述多个日志中的一个中创建新的条目。3.根据权利要求2所述的数据存储设备,其中,用于保持转换数据的电力安全拷贝的对所述非易失性存储器设备的写操作被配置为由新创建的日志条目而不是通过保存所述转换映射的至少一部分来触发,使得写放大被减少。4.根据权利要求2所述的数据存储设备,其中,所述新的条目指示所更新的L页的起始在物理页内的物理位置。5.根据权利要求2所述的数据存储设备,其中,所述控制器进一步被配置为将空闲空间更新为占有与所述L页被更新之前的长度相对应的量。6.根据权利要求1所述的数据存储设备,其中,所述多个L页中的至少一个没有与物理页边界对齐。7.根据权利要求1所述的数据存储设备,其中,所述物理页被实现为纠错码(ECC)页(E页),并且其中,所述多个设备包括多个闪速存储器块,每一个闪速存储器块包括多个闪速存储器页(F页),所述F页中的每一个包括多个E页,所述多个E页中的每一个存储在所述多个设备内的预定的物理位置处。8.根据权利要求2所述的数据存储设备,其中,所述控制器进一步被配置为利用由所更新的L页的L页号所引用的数据在一个或多个物理页内的物理位置来更新所述转换映射。9.根据权利要求1所述的数据存储设备,进一步包括多个超块(S块),所述多个S块的每一个包括每设备的一个或多个闪速存储器块,并且其中,所述多个日志条目中的每一个被配置为将所述S
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1