太阳城集团

  • / 35
  • 下载费用:30 金币  

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

摘要
申请专利号:

CN201380063439.2

申请日:

2013.09.30

公开号:

CN105027090A

公开日:

2015.11.04

当前法律状态:

授权

有效性:

有权

法律详情: 专利权的转移IPC(主分类):G06F 12/00登记生效日:20180611变更事项:专利权人变更前权利人:西部数据技术公司变更后权利人:西部数据技术公司变更事项:地址变更前权利人:美国加利福尼亚变更后权利人:美国加利福尼亚变更事项:共同专利权人变更前权利人:天空时代有限责任公司|||授权|||实质审查的生效IPC(主分类):G06F 12/00申请日:20130930|||公开
IPC分类号: G06F12/00 主分类号: G06F12/00
申请人: 西部数据技术公司; 天空时代有限责任公司
发明人: A·J·汤姆林; J·琼斯; R·丹尼尔克; R·N·马伦多尔
地址: 美国加利福尼亚
优先权: 13/645,822 2012.10.05 US
专利代理机构: 永新专利商标代理有限公司72002 代理人: 刘瑜; 王英
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201380063439.2

授权太阳城集团号:

|||||||||

法律状态太阳城集团日:

太阳城集团2018.06.29|||2018.03.09|||2015.12.02|||2015.11.04

法律状态类型:

太阳城集团专利申请权、专利权的转移|||授权|||实质审查的生效|||公开

摘要

太阳城集团一种数据存储设备,其包括存储物理页的多个非易失性存储器设备,所述物理页的每一个存储在预定的物理位置。控制器可以耦合到所述存储器设备,并且可以被配置为访问存储在多个逻辑页(L页)的数据,所述逻辑页的每一个与L页号相关联,使得所述控制器能够逻辑地引用存储在所述物理页中的数据。易失性存储器可以包括逻辑到物理地址转换映射,所述逻辑到物理地址转换映射使得所述控制器能够确定存储在每一个L页中的数据在所述物理页内的物理位置。所述控制器可以被配置为在所述存储器设备中保持限定了物理到逻辑对应关系的日志,每一个日志覆盖预定范围的物理页并且包括多个条目,所述多个条目将一个或多个物理页与每一个L页相关联。所述控制器可以在启动时读取所述日志,并且根据所读取的日志来重建所述地址转换映射。

权利要求书

权利要求书
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块的物理页中的一个或多个与每一个L页相关联。

10.  根据权利要求9所述的数据存储设备,其中,所述控制器进一步被配置为通过至少以下操作来进行垃圾收集:
选择所述多个S块中的一个用于垃圾收集;
将针对所选择的S块的日志中的每一个条目与所述转换映射中的条目进行比较,并且将匹配的条目指定为有效的而将不匹配的条目指定为无效的;
读取与有效条目相对应的L页;
将所读取的L页写到所述多个非易失性存储器设备内的相应的物理地址;
对针对所述有效条目的转换映射进行更新,以使其指向所述相应的物理地址;以及
针对对其更新了转换映射的条目来生成新的日志条目。

11.  根据权利要求9所述的数据存储设备,其中,所述控制器进一步被配置为通过至少以下操作来进行垃圾收集:
选择所述多个S块中的一个来进行垃圾收集;
读取所选择的S块的物理页;
将所读取的所选择的S块的物理页中的L页号与所述转换映射中的条目进行比较,并且将匹配的条目指定为有效的而将不匹配的条目指定为无效的;
将与有效条目相对应的L页写到所述多个非易失性存储器设备内的相应的物理地址;
对针对所述有效条目的转换映射进行更新,以使其指向所述相应的物理地址;以及
针对对其更新了转换映射的条目来生成新的日志条目。

12.  根据权利要求10所述的数据存储设备,其中,选择包括在确定选择哪个S块中,对空闲空间和编程擦除(PE)计数进行加权。

13.  根据权利要求1所述的数据存储设备,其中,每一个日志号包括由所述日志覆盖的第一物理页的地址的预定数量的最高有效位。

14.  根据权利要求1所述的数据存储设备,其中,所述多个日志条目中的每一个包括:
L页号,以及
物理地址位置。

15.  根据权利要求1所述的数据存储设备,其中,所述多个日志条目中的每一个包括:
L页号;
物理页的物理地址位置,以及
L页尺寸。

16.  根据权利要求1所述的数据存储设备,其中,所述多个日志条目中的每一个包括:
包括L页的起始的物理页的地址的预定数量的最低有效位;
地址;
L页尺寸;以及
所述物理页内的偏移。

17.  根据权利要求1所述的数据存储设备,其中,所述多个L页被配置为被压缩并且在尺寸上不同,并且其中,所述多个日志号被配置为引用较大数量的较小尺寸的L页或者引用较少数量的较大尺寸的L页。

18.  根据权利要求1所述的数据存储设备,其中,所述控制器进一步被配置为在启动时以预定的序列顺序读取所述多个日志,并且基于顺序地读取的多个日志来对存储在易失性存储器中的所述转换映射进行重建。

19.  根据权利要求1所述的数据存储设备,其中,所述控制器进一步被配置为基于所述多个日志来建立日志映射。

20.  根据权利要求1所述的数据存储设备,其中,所述控制器进一步被配置为:
在启动时以预定的序列顺序读取所述多个日志;
基于顺序地读取的多个日志来建立存储在所述非易失性存储器设备中的日志的映射,以及
将所建立的日志的映射存储在所述易失性存储器中。

21.  根据权利要求1所述的数据存储设备,其中,在与给定的L页相关联的日志条目当中,仅与所述给定的L页相关联的最近更新的日志条目是有效的。

22.  根据权利要求1所述的数据存储设备,其中,所述控制器进一步被配置为在所述易失性存储器中保持所述多个日志的系统日志映射,所述系统日志映射中的每一个条目指向所述多个日志中的一个存储在所述非易失性存储器设备中的位置。

23.  一种控制包括易失性存储器和多个非易失性存储器设备在内的数据存储设备的方法,多个非易失性设备中的每一个被配置为存储多个物理页,所述多个物理页中的每一个存储在所述多个非易失性设备内预定的物理位置处,所述方法包括:
在多个逻辑页(L页)中存储数据,所述多个L页中的每一个与L页号相关联,所述L页号被配置为使得控制器能够逻辑地引用存储在所述物理页的一个或多个中的数据;
在所述易失性存储器中保持逻辑到物理地址转换映射,所述转换映射被配置为使得能够确定存储在每一个L页中的数据在所述物理页的一个或多个内的物理位置;
在所述多个非易失性存储器设备中保持限定了物理到逻辑对应关系的多个日志,所述多个日志中的每一个与日志号相关联,每一个日志覆盖预定范围的物理页,并且每一个日志包括多个日志条目,每一个条目被配置为将一个或多个物理页与每一个L页相关联;以及
在启动时读取所述多个日志,并且基于所读取的所述多个日志中的条目来对存储在易失性存储器中的所述转换映射进行重建。

24.  根据权利要求23所述的方法,进一步包括在对所述多个L页中的一个进行更新时,在所述多个日志中的一个中创建新的条目。

25.  根据权利要求24所述的方法,进一步包括基于新创建的日志条目而不是保存所述转换映射的至少部分来触发用于保持转换数据的电力安全拷贝的对所述非易失性存储器设备的写操作,以使得写放大被减少。

26.  根据权利要求24所述的方法,其中,所述新的条目指示所更新的L页的起始在物理页内的物理位置。

27.  根据权利要求24所述的方法,进一步包括将空闲空间更新为占用与所述L页被更新之前的长度相对应的量。

28.  根据权利要求23所述的方法,其中,存储包括将所述多个L页的至少一个存储在不与物理页边界对齐的位置。

29.  根据权利要求23所述的方法,其中,所述物理页被实现为纠错码(ECC)页(E页),并且其中,所述多个设备包括多个闪速存储器块,每一个闪速存储器块包括多个闪速存储器页(F页),F页中的每一个包括多个E页,所述多个E页中的每一个存储在所述多个设备内的预定的物理位置处。

30.  根据权利要求23所述的方法,进一步包括利用由所更新的L页的L页号所引用的数据在一个或多个物理页内的物理位置来更新所述转换映射。

31.  根据权利要求23所述的方法,其中,所述多个设备包括多个超块(S块),所述多个S块的每一个包括每设备的一个或多个闪速存储器块,并且其中,所述多个日志条目中的每一个被配置为将所述S块的物理页中的一个或多个与每一个L页相关联。

32.  根据权利要求31所述的方法,进一步包括:
选择S块用于垃圾收集;
将针对所选择的S块的日志中的每一个条目与所述转换映射中的条目进行比较,并且将匹配的条目指定为有效的而将不匹配的条目指定为无效的;
读取与有效条目相对应的L页;
将所读取的L页写到所述多个非易失性存储器设备内的相应的物理地址;
对针对所述有效条目的转换映射进行更新,以使其指向所述相应的物理地址;以及
针对对其更新了转换映射的条目来生成新的日志条目。

33.  根据权利要求31所述的方法,进一步包括:
选择所述多个S块中的一个用于垃圾收集;
读取所选择的S块的物理页;
将所读取的所选择的S块的物理页中的L页号与所述转换映射中的条目进行比较,并且将匹配的条目指定为有效的而将不匹配的条目指定为无效的;
将与有效条目相对应的L页写到所述多个非易失性存储器设备内的相应的物理地址;
对针对所述有效条目的转换映射进行更新,以使其指向所述相应的物理地址;以及
针对对其更新了转换映射的条目来生成新的日志条目。

34.  根据权利要求32所述的方法,其中,选择包括在确定选择哪个S块中,对空闲空间和编程擦除(PE)计数进行加权。

35.  根据权利要求34所述的方法,其中,所述日志号包括由所述日志覆盖的第一物理页的地址的预定数量的最高有效位。

36.  根据权利要求23所述的方法,其中,所述多个日志条目中的每一 个包括:
L页号,以及
物理地址位置。

37.  根据权利要求23所述的方法,其中,所述多个日志条目中的每一个包括:
L页号;
物理页的物理地址位置,以及
L页尺寸。

38.  根据权利要求23所述的方法,其中,所述多个日志条目中的每一个包括:
包括L页的起始的物理页的地址的预定数量的最低有效位;
地址;
L页尺寸;以及
所述物理页内的偏移。

39.  根据权利要求23所述的方法,进一步包括选择性地对所述多个L页进行压缩,以使得所述多个L页在尺寸上不同,并且其中,所述多个日志被配置为引用较大数量的较小尺寸的L页或者引用较少数量的较大尺寸的L页。

40.  根据权利要求23所述的方法,其中,在启动时读取所述多个日志和重建所述转换映射包括:在启动时以预定的序列顺序来读取所述多个日志,并且基于所读取的多个日志来对存储在易失性存储器中的所述转换映射进行重建。

41.  根据权利要求23所述的方法,其中,所述控制器进一步被配置为基于所述多个日志来建立日志映射。

42.  根据权利要求23所述的方法,进一步包括:
在启动时以预定的序列顺序读取所述多个日志;
基于所顺序读取的多个日志来建立存储在所述非易失性存储器设备中的日志的映射,以及
将所建立的日志的映射存储在所述易失性存储器中。

43.  根据权利要求23所述的方法,其中,在与给定的L页相关联的日志条目当中,仅与所述给定的L页相关联的最新更新的日志条目是有效的。

44.  根据权利要求23所述的方法,进一步包括在所述易失性存储器中保持所述多个日志的系统日志映射,所述系统日志映射中的每一个条目指向所述多个日志中的一个存储在所述非易失性存储器设备中的位置。

45.  一种数据存储设备控制器,包括:
处理器,其被配置为耦合到易失性存储器和多个存储器设备,所述多个存储器设备中的每一个被配置为将多个物理页存储在多个非易失性设备内预定的物理位置处,所述处理器进一步被配置为将数据编程到所述多个存储器设备以及从所述多个存储器设备中读取数据,所述数据存储在多个逻辑页(L页)中,所述多个L页中的每一个与L页号相关联,所述L页号被配置为使得所述处理器能够逻辑地引用存储在所述物理页的一个或多个中的数据,所述易失性存储器被配置为存储逻辑到物理地址转换映射,所述逻辑到物理地址转换映射被配置为使得所述处理器能够确定存储在每一个L页中的数据在一个或多个物理页内的物理位置,
其中,所述处理器被配置为在所述多个非易失性存储器设备中,保持限定了物理到逻辑对应关系的多个日志,所述多个日志中的每一个与日志号相关联,每一个日志覆盖预定范围的物理页并且包括多个日志条目,每一个条目被配置为将一个或多个物理页与每一个L页相关联,其中,所述处理器进一步被配置为在启动时读取所述多个日志,并且根据所读取的多个日志来对存储在所述易失性存储器中的地址转换映射进行重建。

说明书

说明书用于固态驱动器中的物理到逻辑映射的方法、设备和系统
背景技术
由于固态驱动器(SSD)中的闪速存储器的特性,数据通常是按页编程并且按块擦除的。SSD中页的尺寸通常为8-16千字节(KB)并且块由很多的页(例如,256或512)组成。因此,SSD中的特定物理位置(例如,页)不能在没有对同一块内的页中的数据进行重写的情况下直接进行重写,而这在磁性硬盘驱动器中是可能的。因此,需要间接地址。常规的数据存储设备控制器管理诸如SSD等的数据存储设备上的闪速存储器以及与主机系统进行连接,所述常规的数据存储设备控制器使用是闪存转换层(FTL)的一部分的、被称为逻辑块寻址(LBA)的逻辑到物理(L2P)映射系统。当新数据到达以替换已经写入的旧数据时,数据存储设备控制器使得新数据被写入在新的位置,并且更新逻辑映射以使其指向新的物理位置。由于旧的物理位置不再保存有效数据,所以在能够对旧的物理位置再次写之前最终需要将其擦除。
常规地,大的L2P映射表将逻辑条目映射到SSD上的物理地址位置。大的L2P映射表可以驻留在诸如动态随机存取存储器(DRAM)等的易失性存储器中,所述大的L2P映射表通常随着写入被更新、到达、并且保存到小区域中的非易失性存储器。例如,如果随机写发生,尽管系统可能仅需要更新一个条目,但是系统可能不得不将包括没有更新的条目的整个表或其一部分保存到非易失性存储器,这在本质上是低效的。
图1示出了用于SSD的常规的逻辑块寻址(LBA)方案的方面。如其中所示,映射表104包含针对数据存储设备的闪速存储器106限定的针对每个逻辑块102的一个条目。例如,支持512字节逻辑块的64 GB SSD,自身可以向主机呈现为如同具有125000000个逻辑块。在映射表104中的一个条目包含在闪速存储器106中的125000000个逻辑块的每一个逻辑块的当前位置。在常规SSD中,闪速页容纳整数个逻辑块(即,逻辑块不跨越闪速页)。在该常规示例中,8KB的闪速页将容纳16个(尺寸为512字 节的)逻辑块。因此,在逻辑到物理映射表104中的每一个条目包含:字段108,其用于标识在其上存储逻辑块的闪速管芯,字段110,其用于标识在其上存储逻辑块的闪速块,另一字段112,其用于标识闪速块内的闪速页,以及字段114,其用于标识闪速页内的偏移,该偏移标识逻辑块数据在所标识的闪速页中的何处开始。大尺寸的映射表104使得表不能保存在SSD控制器的内部。常规地,将该大的映射表104保存在连接到SSD控制器的外部DRAM中。因为将映射表104存储在易失性DRAM中,所以当SSD上电时必须恢复映射表104,这由于表的大尺寸可能耗费很长的太阳城集团。
当读取逻辑块时,读取映射表104中对应的条目以确定要被读取的闪速存储器中的位置。然后向映射表104中对应的条目中所指定的闪存页执行读取。当读取的数据对于该闪存页可用时,在由映射条目所指定的偏移处的数据从SSD传送到主机。当写逻辑块时,对映射表104中对应的条目进行更新以反映该逻辑块的新位置。应当注意的是,当写逻辑块时,闪速存储器初始地将包含至少两个版本的逻辑块;即,有效的、最近写入的版本(由映射表104所指向的)和其至少一个另外的、较旧的版本,该较旧版本是陈旧的并且不再由映射表104中的任意条目所指向。这些“陈旧的”数据被称为垃圾,这些垃圾占用的空间必须被记录、收集、擦除并使其以供未来使用。
附图说明
图1示出了用于SSD的常规的逻辑块寻址(LBA)方案的方面。
图2是示出了根据一个实施例的数据存储设备的物理数据组织结构和逻辑数据组织结构的方面的图。
图3示出了根据一个实施例的逻辑到物理地址转换映射以及其示例性条目。
图4示出了根据一个实施例的用于更新逻辑到物理地址转换映射以及用于创建S日志条目的方法的方面。
图5是根据一个实施例的S日志的框图。
图6示出了根据一个实施例的S日志的一个条目的示例性组织结构。
图7是根据一个实施例的超块(S块)的框图。
图8示出了根据一个实施例的超页(S页)的另一视图。
图9A示出了根据一个实施例的逻辑到物理地址转换映射、S日志和S块之间的关系。
图9B是根据一个实施例的S日志映射的框图。
图10是示出了根据一个实施例的对逻辑到物理地址转换映射进行更新的方法的方面的框图。
图11是示出了根据一个实施例的对逻辑到物理地址转换映射进行更新的方法的另一方面的框图。
图12是示出了根据一个实施例的对逻辑到物理地址转换映射进行更新的方法的又一方面的框图。
图13是示出了根据一个实施例的对逻辑到物理地址转换映射进行更新的方法的还一方面的框图。
图14是示出了根据一个实施例的对S日志和S日志映射进行更新的方法的方面的框图。
图15是示出了根据一个实施例的对S日志和S日志映射进行更新的方法的另一方面的框图。
图16是示出了根据一个实施例的对S日志和S日志映射进行更新的方法的又一方面的框图。
图17是示出了根据一个实施例的对S日志和S日志映射进行更新的方法的还一方面的框图。
图18是示出了根据一个实施例的垃圾收集的方面的框图。
图19是示出了根据一个实施例的垃圾收集的另一方面的框图。
图20是示出了根据一个实施例的垃圾收集的又一方面的框图。
图21是示出了根据一个实施例的垃圾收集的还一方面的框图。
图22是示出了根据一个实施例的对系统块进行垃圾收集的方面的框图。
图23是示出了根据一个实施例的对系统块进行垃圾收集的另一方面的框图。
图24是示出了根据一个实施例的对系统块进行垃圾收集的又一方面的框图。
图25是示出了根据一个实施例的对系统块进行垃圾收集的其他方面的框图。
图26是示出了根据一个实施例的对系统块进行垃圾收集的又其他方面的框图。
具体实施方式
系统概述
图2是示出了根据一个实施例的数据存储设备的物理数据组织结构和逻辑数据组织结构的方面的图。在一个实施例中,数据存储设备是SSD。在另一实施例中,数据存储设备是包括闪速存储器和旋转磁存储介质在内的混合驱动器。本公开能够应用于SSD和混合实现二者,但是出于简单的缘故,参考基于SSD的实现来对各种实施例进行描述。根据一个实施例,数据存储设备控制器202可以被配置为耦合到如附图标记218处所示的主机。主机218可以采用逻辑块寻址(LBA)方案。尽管LBA的尺寸通常是固定的,但是主机能够动态地改变LBA的尺寸。例如,LBA的尺寸可以随着接口和接口模式而不同。实际上,尽管512字节是最常见的,但4KB也变得更加常见,512+(520、528等)和4KB+(4KB+8、4KB+16等)格式同样常见。如其中所示,数据存储设备控制器202可以包括页寄存器204或耦合到页寄存器204。页寄存器204可以被配置为使控制器202能够从数据存储设备读取数据以及将数据存储到数据存储设备。控制器202可以被配置为响应于来自主机218的数据访问命令而进行编程并且从闪速存储器设备的阵列读取数据。尽管本文的描述通常涉及闪速存储器,但是应当理解的是,存储器设备的阵列可以包括各种类型的非易失性存储器设备中的一个或多个,所述非易失性存储器设备例如是,闪速集成电路、硫系RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC-RAM或PMCm)、标准化存储器(OUM)、阻变式RAM(RRAM)、NAND存储器(例如,单层单元(SLC)存储器、多层单元(MLC)存储器或其任意组合)、NOR存储器、EEPROM、铁电体存储器(FeRAM)、磁阻RAM(MRAM)、其他分立的NVM(非易失性存储器)芯片、或其任意组合。
页寄存器204可以被配置为使控制器202能够从阵列中读取数据以及将数据存储到阵列。根据一个实施例,闪速存储器设备的阵列可以包括管芯(例如,128个管芯)中的多个非易失性存储器设备,其中的每一个包括多个块,如图2中的206处所示。其他页寄存器204(未示出)可以耦合到其他管芯上的块。集合在一起的闪速块的组合可以被称为超块或S块。在一些实施例中,形成S块的单独的块可以从一个或多个管芯、平面或其他粒度级别中选择。因此,S块可以包括组合在一起的、分布跨过一个或多个管芯的多个闪速块。以这种方式,S块可以形成闪速管理系统(FMS)在其上操作的单元。在一些实施例中,可以根据与在管芯级不同的粒度来选择形成S块的单独的块,例如以下情况:当存储器设备包括被细分为诸如平面等的结构的管芯(即,块可以从单独的平面中取得)时。根据一个实施例,分配、擦除和垃圾收集可以在S块级实施。在其他实施例中,FMS可以根据诸如页、块、平面、管芯等的其他逻辑分组来执行数据操作。
继而,每一个闪速块206包括多个闪速页(F页)208。每一个F页可以是固定尺寸的,例如,16KB。根据一个实施例,F页是用于给定的闪速设备的编程的最小单元的尺寸。同样如图2所示,每一个F页208可以被配置为容纳多个物理页,在下文中被称为E页210。术语“E页”指的是存储在其上应用了纠错码(ECC)的闪速存储器中的数据结构。根据一个实施例,E页210可以形成数据存储设备中的物理寻址的基础,并且可以构成闪速读取数据传送的最小单元。因此,E页210可以具有(但不是必须具有)预定的固定尺寸(例如,2KB),并且确定ECC系统的有效载荷(例如,主机数据)的尺寸。根据一个实施例,每一个F页208可以被配置为使预定的多个E页210适合在其边界内。例如,给定16KB尺寸的F页208以及每E页210固定尺寸为2KB,八个E页210适合在单个F页208内,如图2所示。根据一个实施例,无论如何,2的幂次乘以包括ECC的E页210可以被配置为适合于F页208。每一个E页210可以包括数据部分214,并且取决于E页210位于何处也可以包括ECC部分216。数据部分214和ECC部分216在尺寸上都不需要是固定的。E页的地址唯一地标识在闪速存储器内E页的位置。例如,E页的地址可以指定闪速通道、在所标识的闪速通道内的特定管芯、在管芯内的特定块、特定F页以及最后在所标识 的F页中的E页。
为了在数据存储设备上的物理寻址与由主机进行的逻辑块寻址之间建立桥梁,引入了逻辑页(L页)结构。图2中附图标记212处所指示的L页可以包括由FMS所使用的地址转换的最小单元。根据一个实施例,每一个L页可以与L页号相关联。因此,L页212的L页号可以被配置为使控制器202能够对存储在诸如E页210等的物理页的一个或多个中的主机数据进行逻辑地引用。也可以利用L页212作为压缩的基本单元。根据一个实施例,与F页208和E页210不同,L页212的尺寸是不固定的,并且由于对要存储的数据进行压缩中的可变性,L页212在尺寸上可以不同。由于数据的可压缩性不同,所以例如4KB量的一种类型的数据可以被压缩成2KB的L页,而4KB量的另一种类型的数据可以被压缩成1KB的L页。因此,由于这样的压缩,L页的尺寸可以在一个范围内变化,所述范围由例如24字节的最小压缩尺寸到例如4KB或4KB+的最大解压缩尺寸进行限定。可以实现其他尺寸和范围。如图2所示,L页212不需要与E页210的边界对齐。实际上,L页212可以被配置为具有与F页208和/或E页210边界对齐的起始地址,但也可以被配置为不与F页208或E页210的边界对齐。即,L页起始地址所处的位置可以与F页208的起始地址或终止地址相距非零偏移或者与E页210的起始地址或终止地址相距非零偏移,如图2所示。由于L页212在尺寸上是不固定的并且可能小于固定尺寸的E页210,所以多于一个的L页212可以适合在单个E页210中。同样地,由于L页212在尺寸上可能大于E页210,所以L页212可能跨越多于一个E页并且甚至可能跨过F页210的边界,如图2中附图标记217处所示。
例如,在LBA尺寸是512或512+字节的情况,假定解压缩的L页212可以是4KB到4KB+,则例如最大八个连续的LBA可以被紧缩为4KB的L页212。根据一个实施例,应当注意的是,L页212的确切逻辑尺寸不重要,这是因为在压缩之后物理尺寸的范围可以从最小尺寸若干字节跨越到完整尺寸上千字节。例如,对于4TB的SSD设备,可以使用30位地址来对每一个L页212进行编址以覆盖可能潜在地呈现在这样的SSD中的大量的L页。
图3示出了根据一个实施例的逻辑到物理地址转换映射以及其示例性 条目。由于主机数据在L页212中由主机引用,并且由于数据存储设备将L页212存储在一个或多个邻接的E页210中,所以需要逻辑到物理地址转换映射以使控制器202能够将L页212的L页号与一个或多个E页210相关联。这样的逻辑到物理地址转换映射在图3中302处示出,并且在一个实施例中,逻辑到物理地址转换映射是每L页212具有一个条目的线性阵列。这样的逻辑到物理地址转换映射302可以存储在诸如DRAM或SRAM等的易失性存储器中。图3还示出了用于四个不同的L页212的逻辑到物理地址转换映射中的条目,其中,图3中的L页212与被指示为L页1、L页2、L页3和L页4的L页号相关联。根据一个实施例,存储在数据存储设备中的每一个L页可以由逻辑到物理地址转换映射302中的单个并且唯一的条目所指向。因此,在以此产生的示例中,示出了四个条目。如302处所示,映射302中的每一个条目可以包括L页号,所述L页号可以包括物理页(例如,E页)的标识,所述L页号包含被引用的L页的起始地址、在物理页(例如,E页)内对起始地址的偏移和L页的长。另外,多个ECC位可以针对映射条目来提供错误纠正功能。例如,以及如图3所示,并且假设E页尺寸为2KB,L页1可以在逻辑到物理地址转换映射302中被引用如下:E页1003、偏移800、长1624,紧接着是预定数量的ECC位(未示出)。即,在物理地址项中,L页1的起始是在E页1003内(不与E页1003对齐),并且所处的位置与E页1003的起始物理位置相距等于800字节的偏移。而且,压缩的L页1扩展1624字节,从而跨过E页边界到达E页1004。因此,E页1003和E页1004每一个都存储了由L页号L页1所指示的L页212的一部分。类似地,由L页号L页2所引用的压缩的L页全部存储在E页1004内,并且在其中的偏移为400字节处起始,并仅在E页1004内扩展696字节。与L页号L页3相关联的压缩的L页起始于E页1004内偏移1120字节处(距离L页2的边界正好24字节),并且扩展4096字节越过E页1005并到达E页1006内。因此,与L页号L页3相关联的L页跨越E页1004的一部分、E页1005的全部以及E页1006的一部分。最后,与L页号L页4相关联的L页开始于E页1006内的偏移1144字节处,并且扩展3128字节以完全跨越E页1007、跨过F页边界到达E页1008的下一个F页中。
共同地,组成了逻辑到物理地址转换映射302的每个条目的这些构成标识字段(E页、偏移、长度和ECC)中的每一个在尺寸上可以是诸如8字节。即,对于示例性4TB的驱动器,E页的地址在尺寸上可以是32位,偏移在尺寸上可以是12位(对于E页数据部分多达4KB),长度在尺寸上可以是10位,并且可以提供ECC字段。其他组织结构和位宽是可能的。每当写入或改变L页时,可以创建这样的8字节条目,使得控制器202能够跟踪在闪速存储装置内写入到L页的主机数据。在逻辑到物理地址转换映射中的所述8字节条目可以由L页号LPN来进行索引。换言之,根据一个实施例,L页号充当逻辑到物理地址转换映射302的索引。应当注意的是,在4KB扇区尺寸的情况下,LBA与LPN相同。因此,LPN可以构成易失性存储器内的条目的地址。当控制器202从主机218接收到读取命令时,LPN可以从所供应的LBA中得到并且用于对逻辑到物理地址转换映射302进行索引以提取闪速存储器中要被读取的数据的位置。当控制器202从主机接收到写命令时,LPN可以利用LBA进行构建并且可以对逻辑到物理地址转换映射302进行修改。例如,可以在其中创建新的条目。取决于存储逻辑到物理地址转换映射302的易失性存储器的尺寸,LPN可以存储在单个条目中或被拆分为:例如,第一条目,其标识包含正讨论的L页的起始地址的E页(加ECC位);以及第二条目,其标识偏移和长度(加ECC位)。因此,根据一个实施例,这两个条目可以一起与闪速存储器内的单个L页相对应并且指向闪速存储器内的单个L页。在其他实施例中,逻辑到物理地址转换映射条目的特定格式可以与以上所示示例不同。
S日志与S日志映射
由于逻辑到物理地址转换映射302可以存储在易失性存储器中,所以可能需要在启动或在对易失性存储器的任何其他电力损失时对逻辑到物理地址转换映射302进行重建。因此,这需要将一些机制和太阳城集团存储在非易失性存储器中,所述机制和太阳城集团将使得控制器202能够在启动之后或断电事件之后“知道”L页存储在非易失性存储器的何处之前重构逻辑到物理地址转换映射302。根据一个实施例,将这样的机制和太阳城集团体现在可以称为系统日志或S日志的结构中。根据一个实施例,控制器202可以被配置为在多个非易失性存储器设备(例如,在一个或多个管芯、通道或平面的块206 的一个或多个中)中,保持限定了物理到逻辑地址对应性的多个S日志。根据一个实施例,每一个S日志覆盖预定范围的物理页(例如,E页)。根据一个实施例,每一个S日志可以包括多个日志条目,其中每一个条目被配置为将一个或多个物理页(例如,E页)关联到每一个L页的L页号。根据一个实施例,每当控制器202重启时或无论何时逻辑到物理地址转换映射302被部分地或全部地重建时,控制器202读取S日志,并且根据从S日志条目读取的太阳城集团来重建逻辑到物理地址转换映射302。
图4示出了根据一个实施例的用于更新逻辑到物理地址转换映射以及用于创建S日志条目的方法的方面。如其中所示,为了保证使逻辑到物理地址转换映射302被保持为最新,无论何时L页被写入或另外被更新,如框B41所示,逻辑到物理地址转换映射302可以被更新,如B42所示。如B43所示,还可以创建S日志条目,所述S日志条目在其中存储指向更新的L页的位置的太阳城集团。以这种方式,当新的写发生时(例如,当主机向非易失性存储器发出写时、当垃圾收集/耗损均衡发生时等),逻辑到物理地址转换映射302和S日志二者都被更新。因此,用于保持地址转换数据的电力安全拷贝的向非易失性存储器设备的写操作可以被配置为由新创建的日志条目(其在尺寸上可能只有若干字节)所触发,而不是重新保存逻辑到物理地址转换映射的全部或一部分,这使得写放大(WA)被减小。对S日志的更新保证了控制器202能够访问新更新的L页,并且保证了逻辑到物理地址转换映射302可以在重启或影响逻辑到物理地址转换映射存储于其上的易失性存储器的其他擦除太阳城集团的电力事件之后被重建。此外,除了其在重建逻辑到物理地址转换映射302中的应用之外,S日志在使垃圾收集(GC)能够高效中是有用的。实际上,S日志可以包含对所有L页号的最新更新,并且还可以包含陈旧条目、不指向有效L页的条目。
根据一个实施例,S日志可以是写到非易失性存储器的主要的闪速管理数据。S日志可以包含给定S块的映射太阳城集团,并且可以包含给定S块的物理到逻辑(P2L)太阳城集团。图5是示出了根据一个实施例的S日志的方面的框图。如其中所示,每一个S日志502覆盖非易失性存储器的预定的物理区域,例如,如506处所示的使用5位可编址的32个E页。每一个S日志502可以由S日志号进行标识,S日志号可以是标头504的部分,标头504 可以包括与S日志有关的其他太阳城集团。S日志号可以包括由S日志所覆盖的第一物理页的地址的一部分。例如,S日志502的S日志号可以包括:例如,由所述S日志502所覆盖的第一E页地址的27个最高有效位(MSb)。
图6示出了根据一个实施例的S日志502的一个条目602的示例性组织结构。S日志502的每一个条目602可以指向一个L页的起始地址,该L页的起始地址在物理上定址在E页中。每一个条目602可以包括例如包含起始L页的E页的地址的多个(例如,5)最低有效位(LSb)。通过将所述5个LSb与标头504中的S日志号的27个MSb连接来获得全E页地址。另外,条目602可以包括L页号、其在所标识的E页内的偏移和其尺寸。例如,S日志的每一个条目602可以包括由该S日志条目所覆盖的第一E页的地址的5个LSb、30位的L页号、9位的E页偏移和10位的L页尺寸,合计达总尺寸约7字节。在其他实施例中,可以使用各种其他内部日志条目格式。
根据一个实施例,由于压缩中的可变性或存储在L页中的数据的主机配置,可以将可变数量的L页存储在物理区域(例如,等于32个E页的物理区域)中,如506处所示。由于压缩的使用和随之产生的L页的尺寸上的可变性,S日志可以包括可变数量的条目。例如,根据一个实施例,在最大压缩的情况下,L页在尺寸上可以是24字节,并且S日志可以包括超过2500个条目,其引用相等数量的L页,每S日志条目602一个L页。
如上所述,S日志可以被配置为包含给定S块的映射太阳城集团。更精确地,根据一个实施例,S日志包含针对给定S块内的预定范围的E页的映射太阳城集团。图7是根据一个实施例的S块的框图。如其中所示,S块702可以包括每管芯一个闪速块(F块)704(也如图2中的206处所示)。因此,可以把S块看作F块的集合,每管芯一个F块,所述F块被组合在一起以形成闪速管理系统的单元。根据一个实施例,分配、擦除和GC可以在S块级管理。如图7所示,每一个F块704可以包括多个闪速页(F页),例如,256或512个F页。根据一个实施例,F页可以是用于给定的非易失性存储器设备的编程的最小单元的尺寸。图8示出了根据一个实施例的超页(S页)。如其中所示,S页802可以包括每S块中的F块中的一个F页,这意味着S页跨越整个S块。
各种数据结构之间的关系
图9A示出了根据一个实施例的逻辑到物理地址转换映射、S日志映射和S块之间的关系。附图标记902指示逻辑到物理地址转换映射中的条目(在一个实施例中存储在DRAM中)。根据一个实施例,逻辑到物理地址转换映射可以由L页号来进行索引,这是因为在逻辑到物理地址转换映射中每L页可以有一个条目902。闪速存储器中的L页的起始的物理地址以及其尺寸可以在映射条目902中给出;即以E页地址,E页内的偏移和L页的尺寸的方式。如早先所述,取决于L页的尺寸,L页可以跨越一个或多个E页并且也可以跨越F页和F块。
如904处所示,易失性存储器(例如,DRAM)也可以存储系统日志(S日志)映射。在S日志映射中的条目904存储太阳城集团S日志物理地位于非易失性存储器中何处的太阳城集团。例如,存储L页的起始位置的E页的物理地址的27个MSb可以构成S日志号(如先前图5中所示)。易失性存储器中的S日志映射条目904也可以包括在系统E页中引用的、在非易失性存储器中的S日志的地址。可以从易失性存储器中的S日志映射条目904中提取系统S块太阳城集团908。系统S块太阳城集团908可以由系统S块(在系统带中的S块)进行索引,并且可以包括系统S块中任何空闲或被使用的空间的尺寸,连同太阳城集团S块的其他太阳城集团一起。同样从S日志映射条目904中,可以提取在非易失性存储器910中所引用的S日志的物理位置(按照系统带中的E页来表示)。
根据一个实施例,系统带不包含L页数据,而可以包含文件管理系统(FMS)元数据和太阳城集团。系统带可以被配置为仅用于可靠性和断电简化的较低页。在正常操作期间,系统带不需要被读取,除非在垃圾收集期间。系统带可以被提供有比数据带显著较高的过剩供应以用于整体的WA优化。其他带包括:可以包含L页数据并且被频繁更新的热带,以及可以较少频繁更新并且可以包括较多静态数据的冷带,所述静态数据例如可以被收集作为GC的结果的数据。根据一个实施例,系统带、热带和冷带可以由S块基来进行分配。
如上所述,在非易失性存储器中的这些S日志中的每一个可以包括S日志条目的集合,并且覆盖例如价值32个E页的数据。非易失性存储器 910中的这些S日志使得控制器202不仅能够重建易失性存储器中的逻辑到物理地址转换映射,而且能够重建易失性存储器中的S日志映射、用户S块太阳城集团906和系统S块太阳城集团908。
图9B是根据一个实施例的S日志映射912的框图。S日志映射912可以由S块号来进行索引,并且其每一个条目可以指向该S块的第一S日志的起始位置,其继而可以覆盖该S块的预定数量的E页(例如,32个)。控制器202可以进一步被配置为建立或重建S日志的映射,以及将结果的S日志映射存储在易失性存储器中。即,在重启时或者在另一个断电事件发生时或者错误修复随后的重启之后,控制器202可以以预定的序列顺序来读取多个S日志,基于顺序读取的多个S日志来建立存储在非易失性存储器设备中的S日志的映射,并且将所建立的S日志映射912存储在易失性存储器中。
更新逻辑到物理地址转换映射
图10-13是示出了根据一个实施例的对逻辑到物理地址转换映射进行更新的方法的方面的框图。如图10所示,逻辑到物理地址转换映射1002包含L页100的条目(例如,L页的位置),所述条目具有3012字节的长度。在该示例中,L页100存储在S块15中,如1006处所示。在控制器202中的或耦合到控制器202的缓冲器1004(例如,静态随机存取存储器(SRAM))可以存储包含L页100驻留于其中的S块15的P2L太阳城集团的S日志。在一些实施例中,缓冲器1004中所示内容实际上可以驻留于DRAM内。其条目由S块进行索引的用户S块太阳城集团906对于每个S块而言,可以包括该S块中的空闲或使用的空间(例如,精确的或近似的)尺寸,连同太阳城集团S块的其他太阳城集团一起。如图10所示,示出了针对S块15的用户S块太阳城集团906中的条目。图10示出了在控制器202处理对L页100的更新之前,这些组成的功能块的示例性状态。
如图11的1102处所示,接收到更新的L页100,新长度为1534字节。响应于接收到更新的L页100,L页100的太阳城集团可以从逻辑到物理地址转换映射1002中取得,并且(现在已废弃的)L页100的长度(3012字节)可以从逻辑到物理地址转换映射1002中提取,并用于相应地和确切地增加所跟踪的S块15的空闲空间值。特别地,用户S块太阳城集团906可以利用以下数 据进行更新,所述数据指示:S块15现在具有3012额外字节的空闲空间,现在L页100的原始数据已经陈旧(例如,废弃)。
如图12所示,可以对逻辑到物理地址转换映射1002进行更新以容纳所更新的L页。例如,长度太阳城集团现在是1534字节。其后,现在可以利用包括长度太阳城集团的新L页太阳城集团来对针对更新发生的S块15的特定部分的缓冲器1004中的S日志进行更新,并且新接收的来自例如压缩器的L页可以被读到缓冲器1004中。当新L页在缓冲器中时,逻辑到物理地址转换映射1002中的L页100的条目可以暂时反映其在缓冲器中的位置,如箭头标注“1”所示。随后,在由仍在缓冲器1004中的现在被更新的S日志中的新创建的条目指定的E页地址处,所更新的L页100可以被刷新到热S块1008。对逻辑到物理地址转换映射1002中的映射表条目进行更新以反映物理E页地址以及L页最终目的地址的偏移,如箭头“2”所建议的。
如图13所示,在稍后的太阳城集团点,例如,在积累了充足数量的新条目之后,易失性存储器缓冲器1004中的S日志可以被写出到非易失性存储器,例如,到系统S块1010。系统S块1010可以是由控制器固件分配以用于存储S日志的闪速存储器的一部分。在非易失性存储器中保存S日志使逻辑到物理地址转换映射的稍后的重建能够进行,正如所需要的。
更新S日志和S日志映射
图14-17是示出了根据一个实施例的对系统带中的S日志和S日志映射进行更新的方法的方面的框图。附图示出了与由对L页100的相同的示例性更新所触发的S日志更新机制相关的额外细节。如其中所示,在易失性存储器(例如,同步动态随机存取存储器(SDRAM))中的S日志映射1402可以包含指向S日志在非易失性存储器中的物理位置的条目,其中所述S日志包含与L页100相关联的P2L映射数据。在该说明性示例中,相关的S日志(即,针对存储L页100的S块15的特定部分的S日志)位于系统S块3(1408处)的E页42的起始位置处。
其后,如图15所示,L页100被更新,其长度为1534字节。然后可以从逻辑到物理地址转换映射1002中提取与当前L页100相关的太阳城集团(例如,E页地址、偏移和长度)。其后,存储L页100的E页地址可以用于提取S日志号,所述S日志号用于定位在S日志映射1402内的S日志条目位置。 例如,在其中如图5和图6处所示的情况下,S日志号可以包括第一32位E页地址的27个MSb。所述S日志号然后可以用于索引到S日志映射1402以获得位置,该位置然后可以用于识别包含感兴趣的S日志的系统S块。其后,如图15所示,系统S块太阳城集团908可以被更新以反映以下事实:S块3处的S日志中的针对L页100的日志条目现在是失效的,这是因为考虑到对L页100的最近更新,之前由该条目占用的空间现已被解除分配。所解除分配的空间现在是空闲空间,并且必须被记录。可选地,所使用的空间可以被记录,而空闲空间从使用的空间得出。因此,针对S块3的系统S块太阳城集团908中的条目在空间上增加了一个S日志条目;即,这里在该示例性实现中开发了7字节。该空的空间其后可以在系统带的GC期间被考虑。
如图16所示,L页100然后可以被写到缓冲器1004,如1005处所示,因此,逻辑到物理地址转换映射1002可以被更新,以用于指向缓冲器1004(指示L页100被存储的物理位置)并且用于存储更新的L页100的长度(在这里所开发的示例中为1534)。应当注意的是,在此处,系统S块3仍包括指向包含L页100的附图标记1006处的S块15的S日志条目。然而,S块3的系统S块太阳城集团已经被更新以指示:附图标记1408处的系统S块3内的现已过时的S日志条目目前所占用的空间实际上是空闲空间。
图16也示出了缓冲器中不同的S日志。在一个实施例中,缓冲器1004中的S日志是用于记录写到开放的热S块7的新L页。在该示例中,利用更新的L页100(现在也在缓冲器中)的L页号以及其长度太阳城集团来更新缓冲器1004中的S日志(其还没有被刷新到非易失性存储器),如图16的1007处的箭头所指示的。L页100现在可以从缓冲器1004被刷新到当前开放的热S块7,如图16的1404处所引用的。在此处,缓冲器中的S日志被更新以反映:更新的L页100已经被写到非易失性存储器。可替换地,可以在更新的L页100被写到非易失性存储器之前,利用更新的L页100的地址来更新逻辑到物理地址转换映射1002和S日志。在一个实施例中,该S日志中更新的条目将包含由逻辑到物理地址转换映射1002中的新L页100的条目所指向的E页和太阳城集团L页100的额外太阳城集团,如图6先前所示。
如图17所示,在积累了充足的数据之后,缓冲器1004中的S日志可以被写出到开放的系统S块1(在1406处所引用的)。在该示例中,该S 日志被写出到开放的系统S块1的E页19。S日志映射1402现在包括指示S块15的部分存储在系统S块3,E页42的一个条目。然而,指向在S块15内L页100的旧位置的在该S日志内的条目不再是有效的。S日志映射1402还包括指示S块7的S日志存储在系统S块1,E页19的一个条目。该S日志包括指向1404处的开放的热S块7作为更新的L页100在非易失性存储器中的位置的有效条目。以这种方式,包含P2L太阳城集团的S日志在缓冲器1004中被更新,并且最后被写出到非易失性存储器。另外,可以适当地更新S日志映射1402以使其指向这样的新更新的S日志。此外,可以适当地更新逻辑到物理地址转换映射1002,以使其指向正确的开放的热S块。
有利地,在新写入时,本文描述和示出的S日志结构使写开销最小化。根据一个实施例,新的写操作迫使将新的S日志条目写到非易失性存储器中。因为只生成了每L页很少量的S日志条目数据(例如,在本文中所描述的7字节),所以由于系统数据写所导致的WA与常规系统相比有所减少。S日志数据是有效地大量的命令历史记录。更新的S日志数据被汇集起来并且顺序地写出到系统带。本文所描述和示出的S日志系统是高效的,这是由于所产生的映射太阳城集团与要被写入的数据是相同的,而没有额外的未改变的条目,只有被改变的条目被写到非易失性(例如,闪速)存储器,这与逻辑到物理映射的全部或部分被写到非易失性(例如,闪速)存储器不同。
上电时,系统带中的所有S日志数据可以被读取并且处理到DRAM中,以在易失性存储器中重建逻辑到物理地址转换映射。根据一个实施例,这按照S块被分配到系统带的顺序被完成。在一个实施例中,硬件支持用于使该大数据的装载能够快速发生以满足上电的太阳城集团要求(这在没有硬件的情况下可能是不可行的,因为这本质上是根据命令历史记录来生成逻辑到物理地址转换映射)。根据一个实施例,S日志映射还在上电时被构建以使其指向系统带中存储的有效的S日志。
用户数据S块的垃圾收集
图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具有有效数据(混编的块)和无效数据(非混编的块)的混合。
既然已经选择S块15用于GC,那么可以查阅(例如,由S块号索引到)S日志映射(参看图9B中912)以找到该S块的对应的S日志在非易失性存储器中的位置(例如,E页地址)。为了示出示例,使用S日志号(E页地址的27个MSb)来定位由S日志映射912所指向的一个S日志的位置,并且将所述S日志读入到缓冲器1004,如图18所示。即,访问由S日志映射912所指向的系统S块1804中的1个或更多个E页,并且可以将在该位置开始存储的S日志读入到缓冲器1004。在一个实施例中,S日志映射页还包含S日志的长度,这是因为S日志可以跨越一个或多个E页。S日志可以非常大,并且S日志因此可以按片来读取并被处理为可用。
其后,缓冲器1004中的S日志中的每一个P2L条目然后可以与逻辑到物理地址转换映射1802中对应的条目进行比较。对于缓冲器1004中的S日志中的每一个条目,可以确定该条目的L页的物理地址是否与逻辑到物理地址转换映射1802中对应的条目中的相同L页的物理地址相匹配。如果二者匹配,那么S日志中的该条目有效。相反地,如果S日志中的L页的地址与逻辑到物理地址转换映射中该L页的条目不匹配,那么S日志中的该条目无效。
根据一个实施例,由于在对其条目进行分析和比较的S日志中找到了有效条目,所以其所引用的L页可以从S块15中被读出并且写到缓冲器1004,如图19所示。可以使用相同的处理以用于覆盖S块15的其他S日志直到整个S块被处理为止。同样如图19中附图标记1006处所示,S块15现在仅包含无效数据。这是因为由针对S块15的S日志中的条目指示为 有效的数据已经被保留,并且不久将被移动到新的S块。在所示示例中,由于系统S块1804中的S块15的示例S日志中的条目指向这样的无效数据,所以该S日志被示出为被混编以指示其现在是陈旧的。然后可以更新逻辑到物理地址转换映射1802,生成被读取到缓冲器1004的有效数据的新的E页起始地址。应当注意的是,在对逻辑到物理地址转换映射的更新期间,可以针对有效条目来重新核对该映射并且可以在映射更新过程期间锁定该映射以保证原子性。有效数据还将迫使新的S日志条目在S日志1005中生成,这在一个实施例中是针对冷S块1801的。
在一个实施例中,然后可以将有效数据写出到冷S块1801(热S块用于最近写入的主机数据,不用于垃圾收集数据),如图20所示。在某个稍后的时刻(例如,在增加了充足数量的条目之后),S日志1005可以被写出到系统带中的系统S块1804。S块15现已进行了垃圾收集,并且用户S块太阳城集团906现在指示整个S块15是空闲空间。其后S块15可以被擦除,其PE计数被更新并且成为对新的写入可用。应当注意的是,无效的S日志仍存在于系统S块1804中。在某个稍后的时刻可以对由该无效S日志所占用的系统带中的闪速存储器中的空间进行垃圾收集。
系统S块上的垃圾收集
图22-26是示出了根据一个实施例的对系统块进行垃圾收集的方面的框图。在图22-26发展的示例中,假设图22中的附图标记2208处所示的系统S块3已经被挑选用于垃圾收集。一旦系统S块被挑选,则在所挑选的系统S块中的所有E页(并且通过扩展,包含在其中的所有S日志)可以被读取(顺序地或非顺序地)到缓冲器1004。
如图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”仍然有效。
在一个实施例中,进行垃圾收集的有效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日志中的该条目是无效的。
根据一个实施例,由于有效条目在S日志2402(对其条目进行分析和比较)中被识别,则可以将有效条目拷贝到S日志2402的新版本2502,如图25所示。根据一个实施例,S日志2502可以具有与S日志2402相同的S日志号。以这种方式,从被挑选用于GC的S块中加载到缓冲器1004中的每一个S日志可以首先在日志级被确定为有效或无效,并且然后,如果被确定为有效,则被压缩到只包含有效条目。根据一个实施例,无效的S日志条目简单地不被拷贝到S日志2502的新版本。因此,假定S日志2402具有一个或多个废弃的条目,可以预期的是,S日志的新版本2502将小于其旧版本2402(包括更少的条目)。应当注意的是,如果S日志具有所有有效的条目,则其新版本的尺寸将保持相同。
如图26所示,然后可以将S日志2502(现在是无效或废弃的S日志2402的新版本)写到当前开放的系统S块,在图26中其为开放系统S块1,附图标记2206。其后,可以利用S日志2502在开放的系统S块1中的新位置来对S日志映射2202进行更新。在该过程的结尾,系统S块3(2208)中的S日志已经进行了垃圾收集,并且系统S块3然后可以被擦除并成为对于未来的编程可用。
太阳城集团尽管已经描述了本公开的特定实施例,但这些实施例只是以示例的方 式进行呈现,而并不是要限制本公开的范围。实际上,可以以多种其他形式来体现本文所描述的新颖的方法、设备和系统。另外,可以对本文所描述的方法和系统的形式做出各种省略、替换和改变,而不偏离本公开的精神。所附的权利要求及其等价物是要涵盖这样的形式或修改,其将落入本公开的范围和精神。例如,本领域中的技术人员将意识到,在各种实施例中,实际的物理和逻辑结构可以与附图中所示的物理和逻辑结构不同。取决于实施例,可以移除在以上示例中所描述的特定步骤,可以添加其他步骤。同样,上文所公开的特定实施例的特征和属性可以以不同的方式组合以形成另外的实施例,其全部落入本公开的范围内。尽管本公开提供了特定优选的实施例和应用,但对本领域的普通技术人员而言显而易见的是,包括没有提供本文所阐述的全部特征和优点的实施例在内的其他实施例,也在本公开的范围内。因此,本公开的范围是要仅通过参考所附的权利要求来进行限定。

关 键 词:
用于 固态 驱动器 中的 物理 逻辑 映射 方法 设备 系统
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:用于固态驱动器中的物理到逻辑映射的方法、设备和系统.pdf
链接地址:http://zh228.com/p-6401606.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');