地址映射.pdf

上传人:Y94****206 文档编号:1665009 上传时间:2018-07-03 格式:PDF 页数:30 大小:2MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380048147.1

申请日:

2013.09.13

公开号:

CN104641356A

公开日:

2015.05.20

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 12/02申请日:20130913|||公开

IPC分类号:

G06F12/02

主分类号:

G06F12/02

申请人:

美光科技公司

发明人:

李铁牛

地址:

美国爱达荷州

优先权:

13/616,175 2012.09.14 US

专利代理机构:

北京律盟知识产权代理有限责任公司11287

代理人:

路勇

PDF下载: PDF下载
内容摘要

本发明包含用于地址映射的方法、存储器单位及设备。一种方法包含提供具有对应于一定数目个逻辑地址的逻辑到物理映射数据的映射单位。所述映射单位具有与其相关联的可变数据单位类型,且包括:第一部分,其包括指示具有由所述可变数据单位类型界定的大小的一定数目个物理数据单位在存储器上的位置的映射数据;及第二部分,其包括指示所述映射单位所属的映射单位群组的一定数目个其它映射单位在所述存储器上的位置的映射数据。

权利要求书

权利要求书
1.  一种用于地址映射的方法,其包括:
提供具有对应于一定数目个逻辑地址的逻辑到物理映射数据的映射单位,所述映射 单位具有与其相关联的可变数据单位类型,且包括:
第一部分,其包括指示具有由所述可变数据单位类型界定的大小的一定数目个 物理数据单位在存储器上的位置的映射数据;及
第二部分,其包括指示所述映射单位所属的映射单位群组的一定数目个其它映 射单位在所述存储器上的位置的映射数据。

2.  根据权利要求1所述的方法,其中所述方法包含响应于对应于所述数目个逻辑 地址中的一或多者的所述逻辑到物理映射数据的改变而更新所述映射单位。

3.  根据权利要求1所述的方法,其中所述方法包含监视主机输入/输出I/O工作负 载并至少部分地基于所述主机I/O工作负载而调整与所述映射单位相关联的所述可变数 据单位大小。

4.  根据权利要求3所述的方法,其中调整与所述映射单位相关联的所述可变数据 单位大小包含调整由所述第一部分映射的所述数目个物理数据单位的数量。

5.  根据权利要求1所述的方法,其中所述方法包含提供一定数目个映射单位群组, 其中所述数目个映射单位群组中的每一者包括相同数目个映射单位。

6.  根据权利要求5所述的方法,其包含提供所述数目个映射单位群组使得每一相 应映射单位对应于相同数目个非重叠逻辑地址。

7.  根据权利要求1到6中任一权利要求所述的方法,其包含通过以下操作而维持 指示所述映射单位群组的所述数目个其它映射单位在所述存储器上的位置的最新映射 数据:
确定所述映射单位群组的所述映射单位中的当前最新一者,所述映射单位中的所述 当前最新一者包含指向所述数目个映射单位在所述存储器上的物理位置的最新指示符;
确定所述映射单位群组的接下来将写入到所述存储器的映射单位,接下来将写入到 所述存储器的所述映射单位包含指向所述数目个映射单位在所述存储器上的物理位置 的无效指示符;及
在向存储器写入接下来将写入到所述存储器的所述映射单位之前,用对应于所述映 射单位群组的所述映射单位中的所述当前最新一者的所述最新指示符来替换对应于接 下来将写入到所述存储器的所述映射单位的所述无效指示符。

8.  根据权利要求7所述的方法,其中确定所述映射单位群组的所述映射单位中的 所述当前最新一者包含确定所述映射单位群组的所述映射单位中的哪一者是最近写入 到所述存储器的。

9.  根据权利要求1到6中任一权利要求所述的方法,其中所述方法进一步包括给 所述第二部分提供指示与所述映射单位群组的所述映射单位相关联的所述可变数据单 位类型的属性数据。

10.  根据权利要求1到6中任一权利要求所述的方法,其中所述方法包含:
如果所述可变数据单位类型使得用于对应于所述第一部分的所述映射数据的空间 量小于固定空间量,那么使用所述固定空间量的至少一部分来提供指向具有除由所述可 变数据单位类型界定的所述大小之外的大小的物理数据单位的指示符。

11.  一种用于地址映射的方法,其包括:
在存储器上存储一定数目个映射单位,其中所述数目个映射单位各自包含对应于一 定数目个逻辑地址的逻辑到物理映射数据及与其相关联的可变数据单位类型,且其中所 述数目个映射单位中的每一相应者包括:
第一部分,其包括指示具有由所述可变数据单位类型界定的大小的物理数据单 位的位置的映射数据;及
第二部分,其包括指示所述数目个映射单位中的所述相应一者所属的映射单位 群组的一定数目个其它映射单位在所述存储器上的位置的映射数据;及
基于与写入命令相关联且对应于存储于所述存储器上的所述数目个映射单位中的 特定一者的逻辑地址而存取所述数目个映射单位中的所述特定一者。

12.  根据权利要求11所述的方法,其中所述方法包含确定对应于所述数目个映射 单位中的所述特定一者的当前可变数据单位类型,其中所述当前可变数据单位类型指示 由所述数目个映射单位中的所述特定一者映射的一定数目个物理数据单位的数据单位 大小。

13.  根据权利要求12所述的方法,其中所述方法包含在以下操作之前更新所述数 目个映射单位中的所述所存取特定一者:将所述经更新特定映射单位写入到所述存储 器。

14.  根据权利要求13所述的方法,其中更新所述数目个映射单位中的所述所存取 特定一者包括:
确定所述映射单位中的所述所存取特定一者所属的映射单位群组的最近经更新映 射单位;及
用对应于所述最近经更新映射单位的所述第二部分的所述映射数据来替换对应于 所述映射单位中的所述所存取特定一者的所述第二部分的所述映射数据,使得所述经更 新特定映射单位变为所述映射单位群组的所述最近经更新映射单位。

15.  根据权利要求11到13中任一权利要求所述的方法,其中所述方法包含基于主 机的输入/输出I/O工作负载而调整所述数目个映射单位中的至少一者的当前可变数据单 位类型。

16.  根据权利要求11到13中任一权利要求所述的方法,其中所述方法包含从主机 接收所述写入命令。

17.  根据权利要求11到13中任一权利要求所述的方法,其中每一映射单位的所述 第一部分包括固定空间量,且其中所述方法包含分配所述固定空间量的至少一部分来用 于指示具有除由所述可变数据单位类型界定的所述大小之外的大小的物理数据单位的 位置。

18.  根据权利要求11到13中任一权利要求所述的方法,其进一步包括基于所述可 变数据单位类型而分配所述固定空间量的所述至少一部分来用于指示具有除由所述可 变数据单位类型界定的所述大小之外的大小的物理数据单位的位置。

19.  根据权利要求11到13中任一权利要求所述的方法,其中所述第二部分包括具 有各自对应于所述映射单位群组的所述数目个映射单位中的相应一者的一定数目个条 目的映射表,且其中所述数目个条目中的至少一者提供直接指向所述存储器上的物理数 据单位而非指示映射单位在所述存储器上的位置的指示符。

20.  一种设备,其包括:
存储器,其存储一定数目个映射单位,每一映射单位具有一定数目个可变数据单位 类型中与其相关联的可变数据单位类型,所述可变数据单位类型界定由所述相应映射单 位映射的数据单位大小;及
控制器,其耦合到所述存储器且经配置以:
基于与从主机接收的写入命令相关联的逻辑地址而存取特定映射单位;及
更新所述特定映射单位的一部分,所述部分包括指示具有由所述特定映射单位 的所述可变数据单位类型界定的大小的物理数据单位的位置的映射数据。

21.  根据权利要求20所述的设备,其中所述特定映射单位包括另一部分,所述另 一部分包括指示所述特定映射单位所属的映射单位群组的一定数目个映射单位中的每 一者在所述存储器上的位置的映射数据。

22.  根据权利要求21所述的设备,其中所述另一部分的所述映射数据包括映射单 位表,且其中所述控制器经配置以通过用所述映射单位群组的另一映射单位的当前最新 映射单位表替换所述映射单位表来更新所述映射单位表。

23.  根据权利要求22所述的设备,其中所述控制器经配置以:
在用所述另一映射单位的所述当前最新映射单位表替换所述映射单位表之后,将所 述特定映射单位写入到存储器;及
随后通过存取所述特定映射单位的所述经替换映射单位表来确定所述映射单位群 组的不同映射单位在所述存储器上的位置。

24.  根据权利要求20到23中任一权利要求所述的设备,其中:
所述数目个映射单位被组织成一定数目个映射单位群组;
所述数目个映射单位群组中的每一者映射相同数据量;
特定映射单位群组内的所述映射单位中的每一者映射相同数据量;且
所述数目个映射单位中的每一者具有固定可用数据空间量,其中所述固定可用数据 空间量包含包括映射单位表的一部分,所述映射单位表指示相应映射单位所属的所述映 射单位群组的所述映射单位中的每一者的物理位置。

25.  根据权利要求20到23中任一权利要求所述的设备,其中所述数目个映射单位 中的至少一者为直接数据单位DDU映射单位。

26.  根据权利要求20到23中任一权利要求所述的设备,其中:
所述数目个映射单位被组织成一定数目个映射单位群组;
所述映射单位群组中的至少一者包括所有直接数据单位DDU映射单位;且
所述映射单位群组中的所述至少一者的映射单位的至少一部分用于维持与对由所 述映射单位群组中的所述至少一者映射的逻辑空间的改写相关联的映射更新。

27.  根据权利要求20到23中任一权利要求所述的设备,其中所述数目个映射单位 中的至少一者为包括管理信息的包直接数据单位,所述管理信息包含指示对应于所述包 直接数据单位的物理数据单位所映射到的特定媒体类型的媒体类型信息。

28.  根据权利要求20到23中任一权利要求所述的设备,其中所述控制器经配置以 存取存储于具有不同于所述存储器的媒体类型的类型的媒体上的至少一个映射单位。

29.  一种设备,其包括:
存储器,其存储各自具有相关联可变数据单位类型的一定数目个映射单位;及
存储器单位管理组件,其经配置以:
监视主机的输入/输出I/O工作负载;及
基于所述主机的所述I/O工作负载而确定是否将调整所述数目个映射单位中的 至少一者的所述可变数据单位类型。

30.  根据权利要求29所述的设备,其中所述数目个映射单位中的每一者包括:
第一部分,其包括指示具有由所述可变数据单位类型界定的大小的物理数据单位的 位置的映射数据;及
第二部分,其包括指示所述数目个映射单位中的所述相应一者所属的映射单位群组 的一定数目个其它映射单位在所述存储器上的位置的映射数据。

31.  根据权利要求29所述的设备,其中存储器单位管理组件经配置以监视主机的 输入/输出I/O工作负载包括存储器单位管理组件经配置以追踪对应于由所述数目个映射 单位中的每一者映射的逻辑地址的写入命令的大小。

32.  根据权利要求29所述的设备,其中存储器单位管理组件经配置以基于所述主 机的所述I/O工作负载而确定是否将调整所述数目个映射单位中的至少一者的所述可变 数据单位类型包括存储器单位管理组件经配置以确定是否将调整所述可变数据单位类 型使得由所述可变数据单位类型界定的数据单位大小被减小。

33.  根据权利要求29所述的设备,其中存储器单位管理组件经配置以基于所述主 机的所述I/O工作负载而确定是否将调整所述数目个映射单位中的至少一者的所述可变 数据单位类型包括存储器单位管理组件经配置以确定是否将调整所述可变数据单位类 型使得由所述可变数据单位类型界定的数据单位大小被增加。

34.  根据权利要求29所述的设备,其中所述控制器经配置以:
从所述存储器检索所述数目个存储器单位中的特定一者;
更新所述特定存储器单位的数据单位映射表;及
在将所述特定存储器单位写回到所述存储器之前,更新所述特定存储器单位的存储 器单位映射表。

35.  根据权利要求34所述的设备,其中所述数据单位映射表包含到具有由所述可 变数据单位类型界定的大小的物理数据单位在所述存储器上的位置的指示符,且其中所 述存储器单位映射表指示所述特定存储器单位所属的存储器单位群组的所述存储器单 位中的每一者的所述可变数据单位类型。

36.  根据权利要求29到35中任一权利要求所述的设备,其中所述存储器单位管理 组件位于包含所述存储器的存储器系统上。

37.  根据权利要求29到35中任一权利要求所述的设备,其中所述存储器单位管理 组件位于耦合到所述存储器的控制器上。

38.  一种映射单位,其具有与其相关联的可变数据单位类型且包括固定可用存储空 间量,其中所述固定可用存储空间量包括:
第一部分,其包括对应于与一定数目个逻辑地址相关联的一定数目个物理数据单位 的映射数据,其中所述映射数据所对应的物理数据单位的所述数目取决于由所述可变数 据单位类型界定的数据单位大小;及
第二部分,其包括对应于所述映射单位且对应于所述映射单位所属的映射单位群组 的一定数目个其它映射单位中的每一者的映射数据,所述映射数据包括:
对应于所述映射单位及所述映射单位群组的所述数目个其它映射单位中的每 一者在所述存储器上的位置的地址;及
指示所述映射单位及所述映射单位群组的所述其它映射单位中的每一者的所 述可变数据单位类型的属性数据。

39.  根据权利要求38所述的映射单位,其中所述可变数据单位类型是可调整的且 经配置以基于主机输入/输出I/O工作负载而加以调整。

40.  根据权利要求38到39中任一权利要求所述的映射单位,其中用于所述第一部 分及用于所述第二部分的所述固定可用存储空间量的量是可调整的且经配置以基于以 下各项而加以调整:
与所述映射单位相关联的基本数据单位大小;
与所述数目个逻辑地址相关联的物理数据单位的所述数目;及
由所述映射单位映射的总数据量。

说明书

说明书地址映射
技术领域
本发明大体来说涉及半导体存储器及方法,且更特定来说,涉及地址映射。
背景技术
存储器装置通常经提供作为计算机或其它电子装置中的内部半导体集成电路。存在 包含易失性及非易失性存储器的许多不同类型存储器。易失性存储器可需要电力来维持 其数据(例如,信息)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步 动态随机存取存储器(SDRAM)以及其它存储器。非易失性存储器可通过在未被供电时存 留所存储数据而提供持久数据且可包含NAND快闪存储器、NOR快闪存储器、静态随 机存取存储器(SRAM)、电阻可变存储器(例如相变随机存取存储器(PCRAM)及电阻性随 机存取存储器(RRAM))及磁性随机存取存储器(MRAM)(例如自旋扭矩转移随机存取存 储器(STT RAM))以及其它存储器。
可将存储器装置组合在一起以形成固态驱动器(SSD)。固态驱动器可包含非易失性 存储器,例如NAND快闪存储器及/或NOR快闪存储器,及/或可包含易失性存储器, 例如DRAM以及各种其它类型的非易失性及易失性存储器。快闪存储器装置(包含浮动 栅极快闪装置及电荷陷阱快闪(CTF)装置)可包括具有用于存储电荷的存储结构(例如,浮 动栅极或电荷陷获结构)的存储器单元且可用作用于广泛电子应用的非易失性存储器。
各种设备(例如,计算系统)可包括耦合到主机(例如,个人膝上型计算机、桌上型计 算机、数码相机、移动电话或存储卡读取器以及各种其它类型的主机)的SSD。举例来 说,与SSD操作相关联的存储器管理过程可由于子页写入、未对准写入及/或不可预测 的时间及空间局部性而遭受低效性的缺点。此类低效性可归因于若干因素,例如与从主 机接收的命令(例如,写入、读取、擦除等)相关联的输入/输出(I/O)工作负载模式不规则 性,这可增加写入放大及/或降低无用单元收集效率以及其它缺点。存储器管理过程通常 采用逻辑到物理(L2P)映射数据结构(例如,表)来在逻辑地址空间与物理地址空间之间进 行映射(例如,以确定存储于存储器上的物理数据的位置)。然而,许多当前的L2P映射 方法不能够有效地考虑到主机I/O工作负载模式不规则性。
附图说明
图1是根据本发明的一定数目个实施例呈包含至少一个存储器系统的计算系统的形 式的设备的框图。
图2是根据先前地址映射方法的逻辑到物理地址映射。
图3是根据本发明的一定数目个实施例的逻辑到物理地址映射。
图4图解说明根据本发明的一定数目个实施例的一定数目个映射单位群组。
图5图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射 单位。
图6图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射 单位。
图7图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射 单位。
图8图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射 单位。
图9图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射 单位。
图10图解说明根据本发明的一定数目个实施例与更新映射单位相关联的功能流程 图。
具体实施方式
本发明包含用于地址映射的方法、存储器单位及设备。一种方法包含提供具有对应 于一定数目个逻辑地址的逻辑到物理映射数据的映射单位。所述映射单位具有与其相关 联的可变数据单位类型,且包括:第一部分,其包括指示具有由所述可变数据单位类型 界定的大小的一定数目个物理数据单位在存储器上的位置的映射数据;及第二部分,其 包括指示所述映射单位所属的映射单位群组的一定数目个其它映射单位在所述存储器 上的位置的映射数据。
举例来说,本发明的一定数目个实施例可提供一种可基于主机的I/O工作负载而加 以调整的逻辑到物理地址映射方法。如此,一定数目个实施例可提供若干益处,例如与 先前地址映射技术相比,无用单元收集效率得以改进及/或写入放大得以减小。
在本发明的以下详细描述中,参考形成本发明的一部分且其中以图解说明方式展示 可如何实践本发明的一定数目个实施例的附图。充分详细地描述这些实施例旨在使所属 领域的技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可做出过程、 电及/或结构改变,而不背离本发明的范围。如本文中所使用,标示符“D”及“m”(尤 其是关于图式中的参考编号)指示如此标示的一定数目个特定特征可与本发明的一定数 目个实施例包含在一起。如本文中所使用,“一定数目个”某物可指代一或多个此种事 物。
本文中的图遵循其中第一个数字或前几个数字对应于图式的图编号且剩余数字识 别图式中的元件或组件的编号惯例。不同图之间的类似元件或组件可通过使用类似数字 来识别。举例来说,在图3中301可指代元件“01”,且在图4中类似元件可指代为401。 如将了解,可添加、交换及/或消除本文中各种实施例中所展示的元件以便提供本发明的 一定数目个额外实施例。另外,将了解,各图中所提供的元件的比例及相对标度打算图 解说明本发明的实施例且不应视为具限制意义。
图1是根据本发明的一定数目个实施例呈包含至少一个存储器系统104的计算系统 100的形式的设备的框图。如本文中所使用,还可将存储器系统104、控制器108或存 储器装置110单独地视为“设备”。存储器系统104可以是例如固态驱动器(SSD)且可 包含主机接口106、控制器108(例如,处理器及/或其它控制电路)及可为存储器系统104 提供存储卷的一定数目个存储器装置110-1、...、110-D(例如,固态存储器装置,例如 NAND快闪装置)。在一定数目个实施例中,控制器108、存储器装置110-1到110-D及 /或主机接口106可在物理上位于单个裸片上或位于单个封装内(例如,受管理NAND应 用)。此外,在一定数目个实施例中,存储器(例如,存储器装置110-1到110-D)可包含 单个存储器装置。在此实例中,存储器装置110-1到110-D中的每一者对应于相应存储 器通道,所述存储器通道可包括存储器装置(例如,裸片或芯片)群组;然而,实施例并 不受此限制。另外,在一定数目个实施例中,存储器装置110可包括不同类型的存储器。 例如,存储器装置110-1到110-D可包括相变存储器装置、DRAM装置、多电平(MLC) NAND快闪装置、单电平(SLC)NAND快闪装置及/或其组合。
主机接口106可用于在存储器系统104与主机102之间传送数据。接口106可呈标 准化接口的形式。举例来说,当存储器系统104在计算系统101中用于数据存储时,接 口106可为串行高级技术附件(SATA)、串行附接SCSI(SAS)、高速外围组件互连(PCIe) 或通用串行总线(USB)以及其它连接器及接口。然而,一股来说,接口106可提供用于 在存储器系统104与主机102之间传递控制、地址、数据及其它信号的接口,主机102 具有用于接口106的兼容接受器。主机102可为主机系统,例如个人膝上型计算机、桌 上型计算机、数码相机、移动电话或存储卡读取器以及各种其它类型的主机。主机102 可包含系统主板及/或底板且可包含一定数目个存储器存取装置(例如,一定数目个处理 器)。
控制器108可与存储器(例如,存储器装置110-1到110-D)进行通信以控制数据读取、 写入及擦除操作以及其它操作。举例来说,控制器108可包含呈硬件及/或固件(例如, 一或多个集成电路)及/或软件的形式的一定数目个组件,其用于控制对存储器的存取及/ 或用于促进主机102与存储器之间的数据传送。
在图1中所图解说明的实例中,控制器108包含主机I/O管理组件112、快闪转换 层(FTL)114及存储器单位管理组件116。然而,控制器108可包含为不使本发明的实施 例模糊而未图解说明的各种其它组件。此外,虽然将组件112、114及116图解说明为 驻存于控制器108上,但在一些实施例中,组件112、114及/或116可驻存于系统100 中的别处(例如,作为独立组件或驻存于系统的不同组件上)。
举例来说,在其中存储器(例如,存储器装置110-1到110-D)包含一定数目个存储器 单元阵列的实施例中,所述阵列可为具有NAND架构的快闪阵列。然而,实施例并不限 于特定类型的存储器阵列或阵列架构。例如,所述存储器单元可被分组成一定数目个块, 其被作为一群组一起擦除且可每块存储一定数目个数据页。一定数目个块可包含于存储 器单元平面中且一阵列可包含一定数目个平面。如本文中所使用,“数据页”指代控制 器108经配置以作为单个写入/读取操作的一部分而向存储器110写入/从存储器110读 取的数据量且可称为“快闪页”。作为一实例,存储器装置可具有8KB(千字节)的页大 小且可经配置以存储每块128个数据页、每平面2048个块及每装置16个平面。
不同于传统的硬盘驱动器,存储于快闪存储器中的数据无法被直接改写。也就是说, 在向快闪单元块重写数据之间必须将其擦除(例如,一次一页)。在其中存储器装置110-1 到110-D中的至少一者包括快闪存储器单元的实施例中,控制器108可经由逻辑到物理 映射方案来管理在主机102与存储器110之间传送的数据。例如,快闪转换层114可采 用逻辑寻址方案(例如,逻辑块寻址(LBA))。作为一实例,当从主机102接收的新数据将 替换已写入到存储器110的较旧数据时,控制器108可将所述新数据写入在存储器110 上的新位置中,且FTL 114的逻辑到物理映射可经更新使得与正写入的新数据相关联的 对应逻辑地址指示(例如,指向)新物理位置。不再存储有效数据的旧位置在被再次写入 之前将被擦除。
快闪存储器单元在被循环(例如,编程/擦除)有限次数之后,其即可变得不可靠。控 制器108可实施磨损均衡来控制对存储器110的磨损速率,这可通过使对特定群组(例如, 块)执行的编程/擦除循环较均匀地散布在整个阵列上而减少所述循环的数目。磨损均衡 可包含一种称为无用单元收集的技术,其可包含对具有最无效页的块进行回收(例如,擦 除并使得可用于写入)。无效页可指代含有无效数据的页(例如,不再具有与其相关联的 最新映射的页)。或者,无用单元收集可包含回收具有多于阈值量的无效页的块。如果针 对写入操作存在足够自由块,那么可不发生无用单元收集操作。
写入放大可在向快闪存储器装置110写入数据时发生。当随机地向存储器阵列写入 数据时,控制器108扫描所述阵列中的可用空间。存储器阵列中的可用空间可为未存储 数据及/或已被擦除的个别单元、存储器单元页及/或存储器单元块。如果在选定位置中 存在足够可用空间来写入数据,那么将数据写入到存储器阵列的所述选定位置。如果在 选定位置中不存在足够可用空间,那么通过将已存在于所述选定位置中的数据读取、拷 贝、移动或以其它方式重写及擦除到新位置来重新布置存储器阵列中的数据,从而为待 写入于所述选定位置中的新数据留出可用空间。有效数据在存储器阵列中的重新定位称 为写入放大,因为写入到存储器的数据量大于在于选定位置中存在充足可用空间的情况 下将出现的数据量(例如,物理数据量大于既定被写入的逻辑量)。写入放大是不合意的, 因为其可消耗带宽(这会降低性能)且可减少SSD的有用寿命。写入放大量可受各种因素 影响,例如无用单元收集效率、磨损均衡效率、随机写入量(例如,对非循序逻辑地址的 写入)及/或过度布建(例如,快闪存储器的物理容量与通过操作系统呈现的如可用于用户 的逻辑容量之间的差异)以及其它因素。
根据本文中所描述的一定数目个实施例,快闪转换层114可与主机I/O管理组件112 及映射单位管理组件116协作地执行地址映射。在一定数目个实施例中,主机I/O管理 组件112管理结合来自主机102的写入命令接收的数据(例如,在经由FTL 114进行映射 之前)。主机102的I/O工作负载可为不规则的及/或可变的。例如,通常可将大文件写 入(例如,对应于大数据量的写入)与小写入(例如,对应于小数据量的写入)混合。在此上 下文中,“大”及“小”仅指代相对大小差异。作为一实例,小写入可指代对应于较大 文件的4KB元数据的写入。例如,大文件写入可包含128K数据的写入。大文件写入可 包括一定数目个连续大文件写入。例如,2GB视频文件的写入可包括来自主机102的一 定数目个连续128KB写入命令。
主机I/O管理112可经配置以依特定大小为单位来管理所接收数据。由主机I/O管 理组件112管理的数据单位的特定大小可对应于可用缓冲器的大小且例如可为4KB。如 此,主机I/O管理112可将从主机102接收的数据组织为4KB单位以经由FTL 114进行 映射。如本文中所使用,由主机I/O管理112管理的数据单位大小可称为“系统页大小”。
如本文中所进一步描述,在一定数目个实施例中,映射单位(MU)管理116可监视主 机102的I/O工作负载。例如,MU管理116可针对多个存储器单位及/或存储器单位群 组(MUG)追踪与来自主机102的传入写入命令相关联的逻辑地址及与所述传入写入命令 相关联的对应大小(例如,数据量),例如,所述大小可用于确定相应MU及/或MUG的 数据单位大小。
图2是根据先前地址映射方法的逻辑到物理(L2P)地址映射201。例如,L2P映射201 可呈例如表等数据结构的形式。L2P映射201包含一定数目个MU 203-0、203-1、 203-2、...、203-i等,其将统称为MU 203。MU 203中的每一者可存储用于在逻辑地址 与物理地址之间进行映射的固定映射数据量。所述固定数据量可等于与数据将被写入到 的存储器相关联的页大小。例如,如果存储器(例如,图1中所展示的存储器装置110) 具有8KB的相关联页大小,那么每一MU 203可存储8KB的映射数据。每一MU 203 包括物理地址(PA)数据结构(例如,表),所述数据结构包括各自将逻辑页映射到物理页 的固定数目个条目。例如,如图2中所展示,PA表205包括一定数目个条目(例如,PA[0]、 PA[1]、PA[2]、...、PA[PA_PER_MU-1]),其中举例来说,“PA_PER_MU”可为2,048。 如此,如果每一MU 203包括2,048个条目且每一条目映射到8KB页,那么每一MU 203 可映射16MB的存储器(例如,每条目8KB乘以2,048个条目)。
由于地址映射201的大小相对较大,因此MU 203可存储于存储器(例如,存储器 110)上且可在适当时基于将结合来自主机(例如,主机102)的写入操作而写入的逻辑地址 加以存取。例如,可将MU 203中的一或多者从存储器110传送到(例如)控制器的存储 器(例如,DRAM、SRAM等)。可接着更新所存取MU 203的映射数据使得其映射到存 储器上的适当物理位置且可将经更新MU 203写回到存储器210。
然而,现有技术的地址映射方法(例如图2中所描述的地址映射方法)可具有各种缺 点,例如,其可导致增加的写入放大。举例来说,PA表205的条目中与相应MU 203 中的每一者对应的每一条目映射到相同的物理数据量(例如,在此实例中为8KB页大小)。 例如,由于主机I/O工作负载可为不规则的及/或可变的,因此关于由MU 203映射的物 理数据单位的大小缺乏灵活性可导致MU管理额外开销量的增加,例如由于较长连续数 据写入所致的大量更新(例如,对映射表条目)、子页写入(例如,小于页大小的数据量的 写入)及/或由于对随机存储器位置的小数据写入所致的未对准写入(例如,与物理页边界 不对准的数据单位写入)。可变及/或不规则的主机I/O工作负载还可导致不可预测的时 间及/或空间局部性,这也可由于关于由地址映射201的MU 203映射的物理数据单位的 大小缺乏灵活性(例如,适应性)而导致增加的写入放大。如下文结合图3到10所进一步 描述,本发明的一定数目个实施例提供与结合图2所描述的方法等方法相比更灵活的地 址映射方法,其可提供改进的写入放大以及其它益处。
图3是根据本发明的一定数目个实施例的L2P映射301。例如,L2P映射301可呈 例如表等数据结构的形式。L2P映射301包含一定数目个MU 303-0、303-1、303-2、...、 303-i等,其统称为MU 303。在一定数目个实施例中,且与图2中所描述的MU 203类 似,MU 303中的每一者可存储用于在逻辑地址与物理地址之间进行映射的固定映射数 据量。所述固定数据量可等于与数据将被写入到的存储器(例如,图1中所展示的存储器 110)相关联的页大小。例如,如果存储器具有8KB的相关联页大小,那么每一MU 303 可包括8KB的可用映射数据空间。
每一MU 303对应于一定数目个逻辑地址。在一定数目个实施例中,每一MU 303 对应于固定的非重叠逻辑地址范围。例如,MU 303-0可对应于逻辑地址0-1,024,MU 303-1可对应于逻辑地址1,025-2,048,等等。此外,如本文中所进一步描述,每一MU 303 可具有可界定由特定MU 303映射的物理数据单位的大小的相关联可变数据单位类型。
如图3的MU 303-i所图解说明,每一MU 303可包括第一映射数据部分305及第二 映射数据部分307。第一部分305可包括指示具有由可变数据单位类型界定的大小的一 定数目个物理数据单位在存储器(例如,存储器110)上的位置的映射数据。作为一实例, 第一部分305可包括物理地址(PA)表(例如,数据单位映射表)。然而,不同于使用具有 各自映射到物理页的条目的PA表(例如图2中所展示的PA表205)的先前方法,PA表 305的条目各自映射到具有特定大小(其可等于或可不等于页大小)的物理数据单位。例 如,在一定数目个实施例中,L2P映射301具有与其相关联的基本数据单位大小。如本 文中所使用,基本数据单位大小可指代经由L2P映射301映射的最小数据单位大小。例 如,基本数据单位大小可小于、等于或大于存储器的页大小。作为一实例,如果存储器 的页大小为8KB,那么基本数据单位大小可为4KB、8KB、16KB等。在一定数目个实 施例中,基本数据单位大小可等于系统页大小(例如,由图1中所展示的主机I/O管理 112管理的数据大小)。
在各种实例中,系统页大小可不与存储器的页大小(例如,快闪页大小)相同。举例 来说,系统页大小可为4KB且存储器的页大小可为8KB,这可导致与I/O请求相关联的 数据分裂及/或未对准(例如,在逻辑到物理映射仅映射到8KB页大小的情况下,例如在 先前方法中)。如此,在本发明的一定数目个实施例中,基本数据单位大小与系统页大小 相同;然而,实施例并不受此限制。
在图3中所展示的实例中,MU 303-i的PA表305包括条目PA[0]到PA[PA_PER_MU -1],其中例如,“PA_PER_MU”可为1,024。如下文所进一步描述,映射表305中的 条目的数目可取决于若干因素,例如用于表305的可用映射数据空间及由条目PA[0]到 PA[PA_PER_MU-1]映射的数据单位的大小以及其它因素。作为一实例,映射表305的 条目中的每一者可指示具有基本数据单位大小的物理数据单位在存储器上的位置。然 而,如下文所进一步描述,在一定数目个实施例中,映射表的条目可指示具有除基本数 据单位大小之外的大小(举例来说,其可为基本数据单位大小的倍数)的物理数据单位在 存储器上的位置。
映射单位303的第二部分307可包括指示映射单位303所属的映射单位群组的一定 数目个其它映射单位在存储器上的位置的映射数据。作为一实例,第二部分307可为包 括指向MU 303-i所属的特定映射单位群组的映射单位中的每一者(例如,在例如存储器 110等的存储器上)的位置的条目的映射表(例如,MU映射表)。如此,MU映射表307 条目包括物理映射单位地址PMUA[0]、PMUA[1]、PMUA[2]、...、PMUA[m-1],其中 “m”可为128、256、512、2,048等。如下文所进一步描述,L2P映射301可包括各自 为固定非重叠MU 303范围的一定数目个映射单位群组(MUG)。例如,如果每一MUG 包括512个MU 303,那么第一MUG可包括MU[0]-MU[511]且下一MUG可包括MU[512] -MU[1023],等等。
如本文中所进一步描述,在一定数目个实施例中,第二部分307可包含指示对应于 MUG的相应MU的可变数据单位类型的数据。例如,表307的每一条目(例如,PMUA[0]、 PMUA[1]、PMUA[2]、...、PMUA[m-1])可包含指示对应于相应条目所映射到的特定MU 的可变数据单位类型的数据。
在一定数目个实施例中,可在维持由MUG映射的特定总空间量的同时以各种方式 (例如,在第一部分305与第二部分307之间)分配对应于MU(例如,303)的总可用映射 数据空间量。也就是说,可调整所述表大小使得表大小在MUG之间为不同的。作为一 个实例,MU 303-i可为映射2GB空间的特定MUG中的“m”个MU中的一者。对于此 实例,假设表305的每一条目映射到等于基本数据单位大小4KB的物理数据单位。因此, 如果表305中的条目的数目(例如,PA_PER_MU)为1024,那么MU 303-i映射4MB的 空间(1024x 4KB)。如此,为了使MU 303-i所属的MUG映射2GB的空间,表307中的 条目的数目(例如,“m”)必须为512(4MB x 512=2GB)。或者,PA_PER_MU可为128 使得MU 303-i映射512KB(128x 4KB)且“m”可为4096(512KB x 4096=2GB)。然而, 实施例并不限于此实例。
图4图解说明根据本发明的一定数目个实施例的一定数目个映射单位群组。在一定 数目个实施例中,可将L2P映射的MU组织成一定数目个MUG。图4图解说明包括一 定数目个MUG 409-0(MUG[0])及409-1(MUG[1])的L2P映射401;然而,一定数目个 实施例可包含两个以上MUG。图4的MU可类似于图3中所描述的MU 303。MUG 409 中的每一者包括一定数目个MU(例如,MU[0]、MU[1]、MU[2]、...、MU[i]...)。在一 定数目个实施例中,所述MU中的每一者映射相同存储器空间量(例如,4MB、16MB、 128MB等)。然而,特定MUG(例如,409-0)的MU可映射与不同MUG(例如,409-1) 的MU不同的存储器空间量。在一定数目个实施例中,MUG 409中的每一者映射相同存 储器空间量(例如,256MB、2GB、4GB等);然而,实施例并不受此限制。在一定数目 个实施例中,每一MUG 409对应于特定逻辑地址范围,且对应于相应MUG 409的逻辑 地址不重叠。如此,由MUG 409-0映射的逻辑地址空间不同于由MUG 409-1映射的逻 辑地址空间。
如上文结合图3所描述,每一MUG 409的MU可在包括第一部分405及第二部分 407的映射数据空间中存储固定映射数据量。如图4中所展示,MUG 409-0的MU[2]包 括第一部分405-0及第二部分407-0。类似地,MUG 409-1的MU[i]包括第一部分405-1 及第二部分407-1。第二部分407可为包括指向MUG 409的MU中的每一者在存储器上 的位置的条目的MU映射表。表407还可指示对应于MUG 409的MU的可变数据单位 类型。
在操作中,主机(例如,102)可发布与一定数目个逻辑地址相关联的写入命令。控制 器(例如,108)可接收写入命令且可存取(例如,经由例如FTL 114等的FTL)对应于所述 数目个逻辑地址的特定MU(其可存储于例如存储器110等的存储器上)。可将对应于写 入命令的数据写入到存储器,且可更新MU的部分405的映射数据使得逻辑地址映射到 新写入的数据在存储器上的位置。在一定数目个实施例中,还可更新MU的第二部分407 的映射数据(例如,在将MU写回到存储器之前)。如结合图10所进一步描述,维持第二 部分407的最新映射数据可包含:确定MUG 409的MU中的当前最新一者(例如,最近 写入到存储器的MU),及用对应于MUG的当前最新MU的第二部分407的最新指示符 替换对应于正更新的MU的第二部分407的无效指示符。
图5图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射 单位(503-0、503-1、503-2、...、503-i、...)。如上文所描述,可在L2P映射501中将 MU 503组织为一定数目个MUG,例如MUG 509。例如,图5的MU 503及MUG 509 可类似于结合先前各图所描述的MU及MUG。在此实例中,MUG 509包括MU 503-i (MU[i])以及一定数目个其它“相邻”MU 503。如图5中所展示,MU[i]包括:第一部分 505,其包括指示一定数目个物理数据单位在存储器510上的位置的映射数据;及第二 部分507,其包括指示MU[i]所属的MUG 509的一定数目个其它MU在存储器510上的 位置的映射数据。在一定数目个实施例中,部分507的映射数据可指示在除存储器510 之外的存储器上(例如,在不同存储器装置及/或不同类型的存储器上)的位置。
例如,存储器510可包括一定数目个存储器装置,例如图1中所展示的存储器装置 110-1到110-D。在图5中所展示的实例中,存储器510包括第一裸片(裸片0)及第二裸 片(裸片1),每一裸片包括第一存储器单元平面(平面0)及第二存储器单元平面(平面1); 然而,实施例并不限于与存储器510相关联的特定数目个裸片及/或平面。
例如,MU[i]的部分505可包括数据单位映射表。在图5中所展示的实例中,部分 505包括具有条目PA[0]到[PA_PER_MU-1]的表,其中每一条目指示物理数据单位在存 储器510上的位置(例如,指向所述物理数据单位)。例如,在此实例中,对应于相应表 条目PA[0]、PA[1]及PA[2]的箭头511-0、511-1及511-2指向存储器510上的4KB物理 数据单位。也就是说,部分505的每一表条目可指示数据单位在存储器510上的物理地 址(PA)。如本文中所描述,部分505的表条目所指向的数据单位的大小由对应于MU[i] 的可变数据单位类型界定。
例如,MU[i]的部分507还可包括MU映射表。在图5中所展示的实例中,部分507 包括包含对应于MUG 509的每一相应MU的条目的表。在此实例中,对应于MUG 509 的MU的数目由索引“m”指示。如此,部分507的每一表条目指示MUG 509的“m” 个MU中的特定一者在存储器510上的位置(例如,如由物理映射单位地址PMUA[0]到 PMUA[m-1]所指示)。
部分507的每一表条目还包含对应于其的属性数据,其指示所述条目所对应的MU 的可变单位数据类型(TP)。例如,可变数据单位类型可界定对应MU的数据单位大小。 作为一实例,TP=0可指示对应MU的数据单位大小等于基本数据单位大小(例如,一定 数目个可变数据单位大小中的最小数据单位大小)。TP=1可指示对应MU的数据单位大 小等于基本单位大小的两倍,且TP=2可指示对应MU的数据单位大小等于基本单位大 小的四倍。在此实例中,基本数据单位大小为4KB。如上文所描述,在一定数目个实施 例中,基本数据单位大小可小于对应于存储器(例如,510)的页大小(例如,其可为8KB)。 如由表条目513-i所指示,MU[i]具有为0的对应可变数据单位类型(例如,TP=0),这由 如下事实反映:部分505的表条目指向存储器510上的4KB数据单位(例如,如箭头 511-0、511-1及511-2所指示)。实施例并不限于此实例。
图6图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射 单位(603-0、603-1、603-2、...、603-i、...)。如上文所描述,可在L2P映射601中将 MU 603组织为一定数目个MUG,例如MUG 609。例如,图6的MU 603及MUG 609 可类似于结合先前各图所描述的MU及MUG。在此实例中,MUG 609包括MU 603-i (MU[i])以及一定数目个其它“相邻”MU 603(例如,MU 603-i所属的MUG 609的其它 MU 603)。如图6中所展示,MU[i]包括:第一部分605-i,其包括指示一定数目个物理 数据单位在存储器610上的位置的映射数据;及第二部分607-i,其包括指示MU[i]所属 的MUG 609的一定数目个其它MU在存储器610上的位置的映射数据。在一定数目个 实施例中,部分607-i的映射数据可指示在除存储器610之外的存储器上(例如,在不同 存储器装置及/或不同类型的存储器上)的位置。
例如,存储器610可包括一定数目个存储器装置,例如图1中所展示的存储器装置 610-1到610-D。在图6中所展示的实例中,存储器610包括第一裸片(裸片0)及第二裸 片(裸片1),每一裸片包括第一存储器单元平面(平面0)及第二存储器单元平面(平面1); 然而,实施例并不限于与存储器610相关联的特定数目个裸片及/或平面。
MU[i]的部分605-i可包括固定空间量。在一定数目个实施例中,用于指示对应于 MU的数据单位的位置(例如,物理地址)的空间605-i的量(例如,数据单位映射表的大 小)可小于对应于部分605-i的可用空间量。在图6中所展示的实例中,可用空间605-i 的一部分包括指示对应于MU[i]的具有由对应于MU[i]的可变数据单位类型界定的大小 的数据单位的物理位置的数据单位映射表615-i。空间615-i的量可取决于对应于MU[i] 的可变数据单位类型。如下文所进一步描述,在此实例中,对应于MU[i]的可变数据单 位类型为TP=1,其可指示对应于MU[i]的数据单位大小(例如,8KB)是基本数据单位大 小(例如,4KB)的两倍。如此,表615-i中存在多达在对应于MU[i]的可变数据单位类型 为TP=0的情况下的一半的条目。也就是说,由于对应于MU[i]的数据单位的大小是基 本数据单位大小的两倍大,因此使用多达一半的对应于部分615-i的表条目便能映射相 同逻辑空间量。因此,如果PA_PER_MU指示在假定基本数据单位大小的情况下表615-i 中的条目的数目,那么PA_PER_MU/2则是在假定对应于MU[i]的数据单位大小为基本 数据单位大小两倍的情况下表615-i中的表条目的数目。如此,图6中所展示的表615-i 包含条目PA[0]到PA[PA_PER_MU/2],且所述条目中的每一者指向存储器610上的8KB 数据单位(例如,如箭头611-i所指示)。
如图6中所展示,在一定数目个实施例中,对应于MU(例如,MU[i])的可变数据单 位类型可使得用于对应于具有由可变数据单位类型界定的大小的数据单位的映射数据 的空间(例如,615-i)量小于可用空间(例如,605-i)量。在此类实施例中,可用空间(605-i) 的至少一部分(例如,625-i)可提供指向对应于MU的具有除由可变数据单位类型界定的 大小之外的大小的数据单位的指示符。例如,部分625-i可包括例如树(例如,散列树、 b树等)的数据结构,举例来说,所述数据结构维持与对由MU[i]映射的逻辑空间的改写 相关联的映射更新(例如,由于可变/不规则的主机I/O工作负载)。例如,可给由主机起 始且与对应于MU[i]的逻辑地址范围相关联的一或多个4KB写入操作穿插对对应于 MU[i]的相同逻辑地址范围的数个8KB写入操作。并非由于4KB写入而调整对应于MU[i] 的当前8KB数据单位大小,而是可使用部分625-i来指示较小4KB数据单位在存储器 610上的位置(例如,如图6中的箭头619-i所指示)。由于与部分625-i相关联的有限空 间量,在一定数目个实施例中,可响应于主机I/O工作负载而调整可变数据单位类型。 例如,如果与对对应于MU[i]的逻辑地址范围的改写相关联的更新的数目使得可用更新 空间625-i变得被填满,那么可调整可变数据单位类型(例如,从TP=1改变为TP=0)。
MU[i]的部分607-i可包括例如具有指示对应于MUG 609的相应MU 603的位置的 条目的MU映射表。MU映射表607-i的条目还可指示对应于相应MU的可变数据单位 类型(TP)。在此实例中,对应于MUG 609的MU的数目由索引“m”指示。如此,部分 607-i的每一表条目指示MUG 609的“m”个MU中的特定一者在存储器610上的位置(例 如,如物理映射单位地址PMUA[0]到PMUA[m-1]所指示)。
如图6中所展示,对应于MU[i]的条目613-i指示可变数据单位类型TP=1,在此实 例中,其指示由部分615-i映射的数据单位大小是基本数据单位大小4KB的两倍。如此, 在此实例中,可变数据单位类型TP=1还指示使用空间605-i的一半(例如,615-i)来映射 8KB数据单位,且使用空间605-i的一半(例如,625-i)来映射与对对应MU[i]的逻辑地址 的改写相关联的数据单位(例如,4KB数据单位)。
图6中所展示的MU[j]603-j与MU[i]603-i在同一MUG 609内。如此,MU[i]的部 分607-i包括条目613-j,其指示(经由箭头617-j所表示的PMUA[j])MU[j]在存储器610 上的物理位置以及对应于MU[j]的可变数据单位类型(例如,TP=3)。在此实例中,TP=3 指示对应于MU[j]的数据单位大小为32KB(例如,是基本数据单位大小4KB的八倍)。 由于对应于MU[j]的数据单位大是基本数据单位大小的八倍,因此映射由MU[j]映射的 逻辑空间量所需的MU映射表615-j中的条目少至在对应于MU[j]的数据大小为基本数 据单位大小的情况下的八分之一。如此,部分615-j包括条目PA[0]到 PA[PA_PER_MU/8],其提供指向32KB数据单位在存储器610上的位置的指示符(例如, 如箭头611-j所指示)。因此,可用于映射到具有由对应于MU[j]的可变数据单位类型界 定的大小的数据单位的空间605-j的7/8是未用的。
如上文所描述,部分625-j可包括例如散列树及/或b树的数据结构,例如,其可提 供指向对应于MU[j]的具有除由可变数据单位类型界定的大小之外的大小(例如,小于 32KB的大小,例如等于基本数据单位大小的大小)的数据单位的指示符。在此实例中, 部分625-j提供到存储器610上的4KB数据单位的指示符(例如,如箭头619-j所表示)。 部分625-j的映射数据(例如,树条目)可对应于对由MU[j]映射的逻辑地址空间的改写(例 如,在此实例中,为对应于小于数据单位大小32KB的逻辑空间量的主机起始的改写)。
出于一定数目个原因,调整MUG的一或多个MU(例如,603)的特定可变数据单位 类型(例如,以降低经分裂及/或未对准写入的可能性、维持准确映射数据等)是有用的。 例如,如果主机发布一定数目个相对小的写入命令(例如对特定MU的逻辑地址空间的 一定数目个4KB元数据写入),且由MU的特定可变数据单位类型界定的数据单位大小 大于4KB写入大小,那么可用于维持更新的空间(例如,625-i)可达到及/或超过容量。 如此,可将MU的特定可变数据单位类型调整到不同数据单位类型(例如,界定较小数 据单位大小的数据单位类型)。在一定数目个实施例中,特定可变数据单位类型可经调整 使得特定MU的经界定数据单位大小被增加。例如,如果主机发布对具有经界定数据单 位大小4KB(例如,TP=0)的特定MU的逻辑地址空间的一定数目个32KB写入,那么将 MU的经界定数据单位大小增加到例如32KB(例如,TP=3)可为有益的。增加MU的数 据单位大小可提供若干益处,例如减少数据单位映射表(例如,615-i)的映射数据空间(例 如,605-i)量,这会增加可用于对MU的逻辑地址空间的映射改写的空间(例如,625-i)。
在一定数目个实施例中,映射单位管理组件(例如,图1中所展示的MU管理116) 可监视(例如,追踪)主机(例如,主机102)的I/O工作负载。例如,MU管理组件可追踪 传入写入命令以及其所对应的MU及/或MUG的大小(例如,基于对应于写入命令的逻 辑地址)。举例来说,MU管理组件可使用所监视信息来确定各种MU的可变数据单位类 型及/或是否将调整对应于其的可变数据单位类型。
如此,本发明的一定数目个实施例提供调整MU的可变数据单位类型的能力。调整 可变数据单位类型可通过提供可由例如FTL(例如,图1中所展示的FTL 114)实施且可 适于考虑到主机I/O工作负载可变性及/或不规则性的灵活地址映射方案而提供各种益 处,以及其它益处。
图7图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射 单位(703-0、703-1、703-2、...、703-i、...)。如上文所描述,可在L2P映射701中将 MU 703组织为一定数目个MUG,例如MUG 709。例如,图7的MU 703及MUG 709 可类似于结合先前各图所描述的MU及MUG。在此实例中,MUG 709包括MU 703-i (MU[i])以及一定数目个其它“相邻”MU 703(例如,MU 703-i所属的MUG 709的其它 MU 703)。如图7中所展示,MU[i]包括:第一部分705-i,其包括指示一定数目个物理 数据单位在存储器710上的位置的数据单位映射表715-i;及第二部分707,其包括指示 MU[i]所属的MUG 709的一定数目个其它MU在存储器710上的位置的MU映射表。
如上文所描述,MU[i]的部分705-i可包括固定空间量。在一定数目个实施例中,用 于指示具有由对应于MU[i]的可变数据单位类型界定的大小的数据单位的位置(例如,物 理地址)的映射表705-i的量。空间715-i的量可取决于对应于MU[i]的可变数据单位类 型。
在此实例中,如MU表707的条目713-i所指示,对应于MU[i]的可变数据单位类 型为TP=1,这可指示对应于MU[i]的数据单位大小是基本数据单位大小(例如,4KB)的 两倍。也就是说,由TP=1界定的数据单位大小是8KB。如此,数据单位映射表715-i 中存在多达在对应于MU[i]的可变数据单位类型为TP=0(其中TP=0对应于等于基本数 据单位大小(例如,在此实例中,为4KB)的经界定可变数据单位大小)的情况下的一半的 条目。也就是说,由于对应于MU[i]的数据单位的大小是基本数据单位大小的两倍多, 因此使用多达一半的对应于部分715-i的表条目便能映射由MU[i](在此实例中,为4MB) 映射的相同逻辑空间量。因此,如果PA_PER_MU指示在假定基本数据单位大小的情况 下表715-i中的条目的数目,那么PA_PER_MU/2则是在假定对应于MU[i]的数据单位大 小为基本数据单位大小的两倍的情况下表715-i中的表条目的数目。如此,图7中所展 示的表715-i包含条目PA[0]到PA[PA_PER_MU/2]且虽然图7中未展示,但条目中的每 一者指向存储器(例如,存储器710)上的8KB数据单位。
由于对应于MU[i]的可变数据单位类型(例如,TP=1)使得数据单位映射表715-i的大 小小于可用空间705-i的量,因此可用空间705-i的一部分725-i可包括例如树(例如,散 列树、b树等)的数据结构,举例来说,所述数据结构维持与对由MU[i]映射的逻辑空间 的改写相关联的映射更新(例如,由于主机I/O工作负载可变性/不规则性)。
MU[i]的部分707可包括例如具有指示对应于MUG 709的相应MU 703的位置的条 目的MU映射表。MU映射表707的条目还可指示对应于相应MU的可变数据单位类型 (TP)。在此实例中,对应于MUG 709的MU 703的数目由索引“m”指示。在一定数目 个实施例中,对应于MUG 709的一定数目个MU 703可为直接数据单位(DDU)MU。如 本文中所使用,DDU MU可指代其对应数据单位大小等于由特定MU(例如,703-j)所属 的MUG(例如,709)的相应MU(例如,703)中的每一者映射的数据量的MU(例如,703-j)。
例如,如果MU 703中的每一者映射4MB的数据,那么DDU MU(例如,703-j)映 射到存储器上的单个4MB物理数据单位,其称为DDU。在图7中,对应于MU[j]的映 射条目713-j提供直接指向由MU[j]映射的4MB数据单位在存储器710上的位置的指示 符(由箭头721-j表示)。也就是说,PMUA[j]直接指向对应于DDU MU[j]的DDU。在一 定数目个实施例中,对应于DDU MU的可变数据单位类型为TP=A(其中“A”可为十 六进制数)。如此,条目713-j包含包括TP=A的属性数据,如图7中所展示。由于PMUA[j] 直接指向对应于MU[j]的DDU而非指向MU[j]703-j在存储器710上的位置,因此为了 确定对应于MU[j]的数据单位的位置并不需要将MU[j]存储于存储器710上及进行存取。 如此,例如,一或多个DDU MU的存在可减少所存储MU的总数目。
图8图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射 单位(803-0、803-1、803-2、...、803-i、...)。在L2P映射801中将MU 803组织为包含 MUG 809的一定数目个MUG。例如,图8的MU 803及MUG 809可类似于结合先前各 图所描述的MU及MUG。在此实例中,MUG 809包括MU 803-i(MU[i])以及MU 803-i 所属的MUG 809的其它MU 803(包含MU[j])。
在一定数目个实施例中,且如8图中所展示,MUG(例如,MUG 809)可包括所有 DDU MU,例如结合图7所描述的DDU MU[j]。例如,MUG 809的MU 803中的每一者 为DDU MU。在本文中所描述的实例中,对应于DDU MU的可变数据单位类型为TP=A。 在此类实例中,TP=A将数据单位大小界定为等于由MUG的MU映射的数据量,在此 实例中,其为4MB。由于MUG 809的MU 803中的每一者均为DDU MU,因此MU映 射表807中的条目(例如,813-i、813-j等)中的每一者包含指示对应于相应MU 803的4MB 数据单位在存储器810上的位置的物理映射单位地址(例如,PMUA[0]到PMUA[m-1])。 例如,如箭头821-i所指示,PMUA[i]指向对应于MU[i]的4MB数据单位,且如箭头821-j 所指示,PMUA[j]指向对应于MU[j]的4MB数据单位。
在其中MUG仅包含DDU MU的实施例中,可省略为数据单位映射表(例如,图7 中所展示的映射表715-i)分配的空间量。如此,原本将为数据单位映射表分配的空间可 用于其它目的。例如,在图8中所图解说明的实施例中,MU[i]的部分805-i用于维持与 对由MUG 809映射的逻辑空间的改写相关联的映射更新。举例来说,部分805-i可包括 例如树(例如,散列树、b树等)的数据结构以维持对应于MUG 809的映射更新。如图8 中所展示,部分805-i的数据结构的条目提供到存储器810上的数据单位的指示符(例如, 如箭头819所指示)。在此实例中,箭头819指向具有等于基本数据单位大小(例如,4KB) 的大小的数据单位;然而,实施例并不受此限制。
例如,与部分805-i相关联的数据结构可类似于与图7中所描述的部分725-i及图6 中所描述的625-i相关联的数据结构。然而,部分805-i的数据结构可用于维持对应于跨 越由MUG映射的整个逻辑地址空间的逻辑地址的更新(例如,而非维持对应于跨越由 MUG内的特定MU映射的地址空间的逻辑地址的更新)。
图9图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射 单位(903-0、903-1、903-2、...、903-i、...)。在L2P映射901中将MU 903组织为包含 MUG 909的一定数目个MUG。例如,图9的MU 903及MUG 909可类似于结合先前各 图所描述的MU及MUG。在此实例中,MUG 909包括MU 903-i(MU[i])以及MU 903-i 所属的MUG 909的其它MU 903。
MU 903-i为DDU MU,例如结合图8所描述的DDU MU 803-i。例如,由MU 903-i 的可变数据单位类型界定的数据单位大小等于由MU 903-i映射的总数据量(例如, 4MB)。然而,MU 903-i具有不同于MU 803-i的可变数据单位类型。在图9中所展示的 实例中,对应于MU 903-i的可变数据单位类型为TP=F(而非TP=A)。如本文中所使用, 具有可变数据单位类型TP=F的MU将称为“包DDU”MU。
包DDU MU 903-i包含包括第一部分905-i及第二部分907的映射数据。第二部分 907可类似于MU 803-i的第二部分807。也就是说,部分907可包括对应于MUG 909 的MU 903的MU映射表。然而,第一部分905-i包括与包DDU MU 903-i相关联的管 理信息(例如,而非如上文所描述用于维持更新的数据单位映射表及/或树状数据结构)。 所述管理信息可包含各种信息,在此实例中,其包含媒体类型信息及位置信息(例如,如 图9中所展示的PA[n][m])。例如,所述媒体类型信息可指示对应于MU 903-i的物理数 据单位所映射到的特定类型的媒体,且所述位置信息可指示物理数据单位在所述特定类 型的媒体上的物理地址。
作为一实例,可向各种类型的媒体写入及/或从其检索例如MU 903-i等的包DDU  MU,所述媒体例如为快闪存储器(例如,MLC、SLC等)、DRAM、电阻可变存储器(例 如,相变存储器、RRAM等)、存储区域网络(SAN)及/或网络附接存储(NAS)以及其它媒 体类型。如此,虽然本文中所提供的各种实例是根据基于快闪页的框架,但在各种实施 例中,可在基于快闪页的框架之外管理L2P映射(例如,901)的MU。作为一实例,可使 用与一或多个不同媒体类型933、935、937、939及/或931相关联的代理组件931(例如, 代理处理器)来管理MU。
图10图解说明根据本发明的一定数目个实施例与更新映射单位相关联的功能流程 图。在一定数目个实施例中,可将例如本文中所描述的MU等的MU存储于存储器中且 视情况对其进行无用单元收集。例如,可将MU存储于存储器的专用区中。如本文中所 描述,MU可包括可指示特定MUG的MU在存储器上的位置的映射单位表(例如,307、 407、507、607、707、807、907)。在一定数目个实施例中,MUG的MU中的最近经写 入的一者包含群组的当前最新MU表。如此,最近经写入的MU(例如,最后一个接收 到对其L2P映射的更新的MU)是当前最新MU且包含指向MUG的MU的物理位置的最 新指示符。例如,MUG的当前最新MU的指示可由控制器维持。
在图10中,MU[i]1003-i表示当前最新MU。如此,MU 1003-i包含当前最新映射 表1007-i。MU[j]1003-j表示将要更新且随后写入到存储器的MU。例如,可需要响应 于主机起始的写入操作而更新与MU 1003-j的数据单位表1005-j相关联的条目。由于 MU 1003-j并非当前最新MU,因此其MU表1007-j含有无效指示符(例如,MU表1007-j 为过时的)。在更新MU 1003-j的数据单位表1005-j之后,其将被写回到存储器且将变 为新的当前最新MU(例如,具有当前最新MU映射表的MU)。
如此,在将MU 1003-j写回到存储器之前,用当前最新MU映射表1007-i替换其 MU映射表1007-j。如在图10的右侧上所展示,新MU[j]1003-j包含经更新数据单位映 射表(例如,PA[])及当前最新存储器单位映射表(例如,PMUA[])。新MU[j]1003-j现在 含有当前最新MU映射表1007-j,其可用于替换将更新及重写到存储器的下一MU的过 时MU表。
结论
本发明包含用于地址映射的方法、存储器单位及设备。一种方法包含提供具有对应 于一定数目个逻辑地址的逻辑到物理映射数据的映射单位。所述映射单位具有与其相关 联的可变数据单位类型,且包括:第一部分,其包括指示具有由所述可变数据单位类型 界定的大小的一定数目个物理数据单位在存储器上的位置的映射数据;及第二部分,其 包括至少所述映射单位所属的映射单位群组的一定数目个其它映射单位在所述存储器 上的位置的映射数据。
如本文中所使用,术语“及/或”包含相关联所列举物项中的一定数目个物项的任何 及所有组合。如本文中所使用,除非另有说明,否则术语“或(or)”意指在逻辑上包含 或。也就是说,“A或B”可包含(仅A)、(仅B)或(A及B两者)。换句话说,“A或B” 可意指“A及/或B”或“一定数目个A及B”。
虽然本文中已图解说明及描述了特定实施例,但所属领域的技术人员将了解,旨在 实现相同结果的布置可替代所展示的特定实施例。本发明打算涵盖本发明的一定数目个 实施例的改动或变化形式。应理解,以上描述是以说明性方式而非限定性方式做出的。 在审阅以上描述后,所属领域的技术人员将明了以上实施例的组合及本文中未具体描述 的其它实施例。本发明的一定数目个实施例的范围包含其中使用上文结构及方法的其它 应用。因此,应参考所附权利要求书连同授权此权利要求书的等效内容的全部范围来确 定本发明的一定数目个实施例的范围。
在前述具体实施方式中,出于简化本发明的目的,将一些特征一起集合于单个实施 例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比明确陈述于每 一权利要求中更多的特征的意图。而是,如随附权利要求书反映:发明性标的物在于少 于单个所揭示实施例的所有特征。因此,特此将所附权利要求书并入到具体实施方式中, 其中每一权利要求独立地作为单独实施例。

地址映射.pdf_第1页
第1页 / 共30页
地址映射.pdf_第2页
第2页 / 共30页
地址映射.pdf_第3页
第3页 / 共30页
点击查看更多>>
资源描述

《地址映射.pdf》由会员分享,可在线阅读,更多相关《地址映射.pdf(30页珍藏版)》请在专利查询网上搜索。

本发明包含用于地址映射的方法、存储器单位及设备。一种方法包含提供具有对应于一定数目个逻辑地址的逻辑到物理映射数据的映射单位。所述映射单位具有与其相关联的可变数据单位类型,且包括:第一部分,其包括指示具有由所述可变数据单位类型界定的大小的一定数目个物理数据单位在存储器上的位置的映射数据;及第二部分,其包括指示所述映射单位所属的映射单位群组的一定数目个其它映射单位在所述存储器上的位置的映射数据。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


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