《用于存储设备的用低预留空间实现低写入放大的方法.pdf》由会员分享,可在线阅读,更多相关《用于存储设备的用低预留空间实现低写入放大的方法.pdf(15页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103562842 A (43)申请公布日 2014.02.05 CN 103562842 A (21)申请号 201280024279.6 (22)申请日 2012.05.02 61/489,628 2011.05.24 US 13/461,899 2012.05.02 US G06F 3/06(2006.01) G06F 12/02(2006.01) (71)申请人 马维尔国际贸易有限公司 地址 巴巴多斯圣米加勒 (72)发明人 L阮 P尼奥斯 L汤 - 萨特 (74)专利代理机构 北京市金杜律师事务所 11256 代理人 酆迅 (54) 发明名称 用于存储设备的。
2、用低预留空间实现低写入放 大的方法 (57) 摘要 一种固态硬盘(SSD)包括SSD控制模块, 被配 置为确定与关联于所述 SSD 的相应的逻辑地址中 所存储的数据多长时间被更新一次所对应的频率 并且根据所述频率形成所述逻辑地址的群组 ; 以 及存储器控制模块, 被配置为基于所述群组将所 述数据重新写入至 SSD 存储区的区块中的物理地 址。 (30)优先权数据 (85)PCT国际申请进入国家阶段日 2013.11.21 (86)PCT国际申请的申请数据 PCT/US2012/036070 2012.05.02 (87)PCT国际申请的公布数据 WO2012/161933 EN 2012.11。
3、.29 (51)Int.Cl. 权利要求书 2 页 说明书 6 页 附图 4 页 按照条约第 19 条修改的权利要求书 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书6页 附图4页 按照条约第19条修改的权利要求书2页 (10)申请公布号 CN 103562842 A CN 103562842 A 1/2 页 2 1. 一种固态硬盘 (SSD), 包括 : SSD 控制模块, 被配置为确定与关联于所述 SSD 的相应的逻辑地址中所存储的数据多 长时间被更新一次所对应的频率并且根据所述频率形成所述逻辑地址的群组 ; 以及 存储器控制模块, 被配置为基于。
4、所述群组将所述数据重新写入至 SSD 存储区的区块中 的物理地址。 2. 根据权利要求 1 所述的 SSD, 其中形成群组包括生成所述逻辑地址的最近最少使用 (LRU) 列表, 其中所述 LRU 列表指示所述逻辑地址中的每个逻辑地址中所存储的所述数据 多长时间被更新一次, 以及基于所述 LRU 列表生成包括多个区域的区域列表, 其中所述多 个区域中的每个区域对应于所述 LRU 列表中的所述逻辑地址的不同的范围, 并且所述多个 区域中的每个区域包括至少一个所述逻辑地址。 3. 根据权利要求 2 所述的 SSD, 其中所述 SSD 控制模块包括 : LRU 模块, 被配置为生成所述 LRU 列表 。
5、; 以及 区域控制模块, 被配置为生成所述区域列表。 4. 根据权利要求 1 所述的 SSD, 其中所述逻辑地址包括逻辑区块地址 (LBA)。 5. 根据权利要求 2 所述的 SSD, 其中所述存储器控制模块被配置为在所述 SSD 存储区 的第一区块中重写与所述多个区域中的第一区域相关联的第一逻辑地址中的第一数据, 并 且在所述 SSD 存储区的第二区块中重写与所述多个区域中的第二区域相关联的第二逻辑 地址中的第二数据。 6. 根据权利要求 1 所述的 SSD, 其中所述 SSD 存储区包括闪存阵列。 7. 根据权利要求 1 所述的 SSD, 其中所述 SSD 控制模块包括被配置为执行固件的处。
6、理 器。 8. 根据权利要求 2 所述的 SSD, 其中所述 LRU 列表和所述区域列表在易失性存储器和 非易失性存储器中的至少一个之中存储。 9. 根据权利要求 1 所述的 SSD, 其中 : 与所述 SSD 相关联的物理地址的第一数目大于所述逻辑地址的第二数目 ; 以及 所述第一数目和所述第二数目之差与所述第二数目之比小于 5。 10. 根据权利要求 9 所述的 SSD, 其中与所述 SSD 相关联的写入放大大约是 1.1。 11. 一种操作固态硬盘 (SSD) 的方法, 所述方法包括 : 确定与关联于所述 SSD 的相应的逻辑地址中所存储的数据多长时间被更新一次所对 应的频率 ; 根据所。
7、述频率形成所述逻辑地址的群组 ; 以及 基于所述群组将所述数据重新写入至 SSD 存储区的区块中的物理地址。 12. 根据权利要求 11 所述的方法, 其中所述形成所述群组包括 : 生成与所述 SSD 相关联的逻辑地址的最近最少使用 (LRU) 列表, 其中所述 LRU 列表指 示所述逻辑地址中的每个逻辑地址中所存储的所述数据多长时间被更新一次 ; 基于所述 LRU 列表生成包括多个区域的区域列表, 其中所述多个区域中的每个区域对 应于所述 LRU 列表中的所述逻辑地址的不同的范围, 并且所述多个区域中的每个区域包括 至少一个所述逻辑地址。 13. 根据权利要求 12 所述的方法, 其中所述 。
8、SSD 控制模块包括 : 权 利 要 求 书 CN 103562842 A 2 2/2 页 3 LRU 模块, 被配置为生成所述 LRU 列表 ; 以及 区域控制模块, 被配置为生成所述区域列表。 14. 根据权利要求 11 所述的方法, 其中所述逻辑地址包括逻辑区块地址 (LBA)。 15. 根据权利要求 12 所述的方法, 其中所述存储器控制模块被配置为在所述 SSD 存储 区的第一区块中重写与所述多个区域中的第一区域相关联的第一逻辑地址中的第一数据, 并且在所述 SSD 存储区的第二区块中重写与所述多个区域中的第二区域相关联的第二逻 辑地址中的第二数据。 16. 根据权利要求 11 所述。
9、的方法, 其中所述 SSD 存储区包括闪存阵列。 17. 根据权利要求 11 所述的方法, 其中所述 SSD 控制模块包括被配置为执行固件的处 理器。 18. 根据权利要求 12 所述的方法, 其中所述 LRU 列表和所述区域列表在易失性存储器 和非易失性存储器中的至少一个之中存储。 19. 根据权利要求 11 所述的方法, 其中 : 与所述 SSD 相关联的物理地址的第一数目大于所述逻辑地址的第二数目 ; 以及 所述第一数目和所述第二数目之差与所述第二数目之比小于 5。 20. 根据权利要求 19 所述的方法, 其中与所述 SSD 相关联的写入放大大约是 1.1。 权 利 要 求 书 CN 。
10、103562842 A 3 1/6 页 4 用于存储设备的用低预留空间实现低写入放大的方法 0001 相关申请的交叉引用 0002 本申请要求于 2012 年 5 月 2 日提交的美国专利申请第 13/461,899 号的优先权以 及于 2011 年 5 月 24 日提交的美国临时申请第 61/489,628 号的权益。通过引用上述申请 的全文而将上述申请的公开并入于此。 技术领域 0003 本公开涉及使得存储设备中的写入放大最小化。 背景技术 0004 这里所提供的背景技术的描述是出于总体上呈现本公开的背景的目的。 当前署名 的发明人的工作(到该背景技术中所描述的工作的程度)以及在提交时可能。
11、无法以其它方 式作为现有技术的衡量的说明书的各方面, 既非明确地也非隐含地承认是本公开的现有技 术。 0005 诸如固态硬盘 (SSD) 之类的存储设备可以包括一个或多个闪存设备。仅作为示 例, 闪存设备可以包括基于 NAND 的闪存。通常, 闪存的存储区按区块进行布置, 其中每个区 块被划分为可寻址的页面。在区块内数据以逐个页面为基础而写入并存储在闪存之中。相 反地, 为了重写或擦除数据, 整个相对应的区块都被擦除。 0006 当在特定页面中存储的数据被更新时, 区块中所有的有效数据 ( 即, 对没有改变 或更新的数据进行存储的任何页面)都需要被擦除并重写。 无效数据(即, 对已经被改变或 。
12、更新的数据进行存储并因此已经在其它地方被重写的页面 ) 可以简单地被擦除。例如, 向 存储设备进行写入的主机将数据写入到诸如逻辑块地址 (LBA) 之类的逻辑地址。相反地, 存储设备将该数据映射并写入到对应于该逻辑地址的物理地址。 当存储设备需要在特定物 理地址中(即, 区块中的一个或多个页面中)对数据进行更新时, 整个区块都被擦除并且被 写入到相同或不同的区块, 但是相对应的逻辑地址仍然保持相同。 因此, 包括该存储设备的 系统执行比主机更大数目的写入操作。 0007 换句话说, 物理写入的数目大于逻辑写入的数目。物理写入的数目与逻辑写入的 数目之比可以被称之为写入放大 (write amp。
13、lification, WA)。相对高的写入放大 ( 例如, 5 或更大的 WA) 在存储设备上导致更多的磨损, 并且因此缩短存储设备的寿命。相反地, 相 对低的写入放大 ( 例如, 接近 1 的 WA) 对存储设备的性能和寿命有所改善。 0008 存储设备可以实施磨损均衡 (wear-leveling) 和预留空间 (overprovisioning) 以使得写入放大最小化。例如, 预留空间是指在存储设备中提供比与主机相关联的逻辑地 址 ( 即, 主机的逻辑容量 ) 相对应的数目更大数目的物理位置。换句话说, 存储设备包括比 主机所包括的逻辑位置更多的物理位置。 剩余的物理位置为存储设备提供。
14、了额外的物理容 量。存储设备的额外物理容量与存储设备的总体物理容量 ( 和主机的逻辑容量 ) 之比被称 作预留空间比 (OPR)。例如, 如果存储设备具有 100 吉字节 (GB) 的总体物理容量和 75GB 的 逻辑容量, 则 OPR 为 25 : 100 或 25。 说 明 书 CN 103562842 A 4 2/6 页 5 0009 存储设备的 OPR 可以与存储设备的写入放大直接相关。例如, 当闪存数据的单个 页面中所存储的数据被更新时, 该数据能够被写入该闪存的不同区块中的额外物理位置中 的空页面而不是擦除当前存储数据的整个区块。 存储数据的原始页面可以简单地被标记为 陈旧或无效,。
15、 而避免整个区块被完全重写。这能够针对附加的写入进行重复直至整个区块 充满无效数据或者无效数据与有效数据之比大于阈值, 和/或根据清理和融合操作(例如, 垃圾回收 ) 进行重复。因此, 由于能够避免附加的重写的数目, 所以随着存储设备的 OPR 增 大, 存储设备的写入放大减小。 仅作为示例, 10的OPR可以对应于大约5的写入放大, 25 的 OPR 可以对应于大约 2 的写入放大, 以及 50的 OPR 可以对应于大约 1 的写入放大。 发明内容 0010 一种固态硬盘 (SSD) 包括 SSD 控制模块, 被配置为确定与关联于所述 SSD 的相应 的逻辑地址中所存储的数据多长时间被更新一。
16、次所对应的频率并且根据所述频率形成所 述逻辑地址的群组 ; 以及存储器控制模块, 被配置为基于所述群组将所述数据重新写入至 SSD 存储区的区块中的物理地址。 0011 一种操作固态硬盘 (SSD) 的方法, 所述方法包括确定与关联于所述 SSD 的相应的 逻辑地址中所存储的数据多长时间被更新一次所对应的频率, 根据所述频率形成所述逻辑 地址的群组, 以及基于所述群组将所述数据重新写入至 SSD 存储区的区块中的物理地址。 0012 本公开另外的可应用领域将从详细的说明书、 权利要求和附图变得显而易见。详 细的说明书和具体示例仅旨在出于说明性的目的而并非旨在对本公开的范围进行限制。 附图说明 。
17、0013 本发明将从详细的说明书和附图变得更为全面地理解, 其中 : 0014 图 1 是根据本公开的原理的存储驱动系统的功能框图 ; 0015 图 2 是根据本公开的原理的固态硬盘控制模块的功能框图 ; 0016 图 3A 和图 3B 图示了根据本公开的原理的逻辑地址区域列表的示例 ; 0017 图4A和图4B图示了在并未根据区域列表重新安排数据的情况下存储数据的闪存 区块 ; 0018 图 5A 和图 5B 图示了根据区域列表存储数据的闪存区块 ; 以及 0019 图 6 图示了根据本公开的原理的固态硬盘控制方法。 具体实施方式 0020 根据本公开的系统减小了存储设备 ( 例如, 固态硬。
18、盘或 SSD, 包括基于 NAND 的闪 存 ) 的写入放大 (WA) 同时也减小了预留空间。仅作为示例, 在实现相对低的 1.1 的写入放 大时, 该存储设备可以向主机提供一太字节 (TB) 的逻辑容量同时仅包括 16 吉字节 (GB) 的 额外物理容量, 这对应于的预留空间比 (OPR)。 0021 该系统向存储设备中更为动态的 ( 即, 被频繁写入和重写的 ) 逻辑区分配更多的 额外物理空间。相反地, 该系统向存储设备中更为静态的 ( 即, 不频繁重写的 ) 的逻辑区分 配较少的额外物理空间。结果, OPR 可能对于更为动态的逻辑区而言相对高, 并且对于相对 静态的逻辑区而言相对低, 这。
19、可以不需要明显的预留空间并且因此对于写入放大并无明显 说 明 书 CN 103562842 A 5 3/6 页 6 贡献。 该系统可以基于主机的使用模式对每个逻辑区动态地调节OPR。 例如, 该使用模式可 以基于主机操作系统、 主机应用以及与特定逻辑区的使用相关联的其它因素而变化。 0022 虽然本公开关于 SSD 对系统进行了描述, 但是该系统的原理也可以利用其它存储 设备诸如硬盘 (HHD) 来实施, 以改善写入性能, 减少清理 / 融合开销, 并且降低与预留空间 相关联的成本。 0023 现在参考图 1, 存储驱动系统 100 包括固态硬盘 (SSD)104, 其经由主机接口 112 与。
20、 主机 108 进行通信。主机接口 112( 例如, 经由写入操作 ) 从主机 108 接收要在 SSD104 上 存储的数据, 并且将在 SSD 104 上存储的数据 ( 例如, 经由读取操作 ) 传送至主机 108。 0024 SSD 104包括存储器控制模块120、 SSD控制模块124以及诸如闪存阵列128的SSD 存储区。在写入操作期间, 存储器控制模块 120 将数据从主机 108 写入闪存阵列 128。例 如, 写入操作可以将数据写入诸如逻辑块地址(LBA)之类的逻辑地址。 存储器控制模块120 将每个 LBA 映射到闪存阵列中的物理地址, 并且将数据写入到相对应的物理地址。仅作。
21、为 示例, 易失性存储器 132、 非易失性存储器 136 或 ( 例如存储器控制模块 120 内的存储器 ) 的其它存储器可以对将每个 LBA 与物理地址相关联的映射信息进行存储。相反地, 在读取 操作期间, 主机 108 从 LBA 请求数据并且存储器控制模块 120 从闪存阵列 128 中相对应的 物理地址读取数据。SSD104 中诸如主机接口 112、 存储器控制模块 120、 SSD 控制模块 124、 易失性存储器 132 和非易失性存储器 136 的一个或多个组件可以位于片上系统 (SOC) 上。 0025 闪存阵列 128 可以包括一个或多个闪存设备 140-1、 140-2、。
22、 . 和 140-n, 它们共 同称之为闪存设备140。 每个闪存设备140在多个区块中存储数据, 并且每个区块包括多个 可寻址页面。 每个可寻址页面是对应于物理地址的物理存储器位置, 该物理地址进而与LBA 相关联。因此, 被写入主机 108 的或被主机 108 读取的每个 LBA 对应于闪存设备之一中根 据可寻址页面之一进行访问的物理位置。仅作为示例, 闪存设备 140 可以实施基于 NAND 的 闪存单元。 0026 SSD 控制模块 124 根据本公开的原理实施预留空间分配。SSD 控制模块 124 确定 哪些 LBA 是相对静态的而哪些 LBA 是相对动态的。换句话说, 相对静态的 。
23、LBA 更新 ( 例如, 被写入和重写 ) 得更不频繁, 而相对动态的 LBA 则更新得更为频繁。仅作为示例, 相对静态 的 LBA 可以对应于诸如程序或应用文件以及照片、 音乐或其它多媒体文件之类的数据。相 反地, 相对动态的 LBA 可以对应于被用户频繁更新的数据。 0027 SSD 控制模块 124 可以维护根据更新频率而排列的所有 LBA 的列表。该列表可以 在正常操作期间在易失性存储器132中存储并且周期性地在非易失性存储器136中存储以 避免数据丢失。该列表可以将 LBA 安排到不同区域之中, 其中每个区域对应于不同的更新 频率。每个区域包括多个 LBA。仅作为示例, 该列表可以包。
24、括 10 个区域, 其中每个区域包括 10的 LBA。或者, 该列表可以包括 100 个区域, 其中每个区域包括 1的 LBA。SSD 控制模 块 124 基于相对应区域对 LBA 进行重新排列。仅作为示例, SSD 控制模块 124 可以包括执 行非易失性存储器 136 上所存储的固件的一个或多个处理器。 0028 现在参考图 2, SSD 控制模块 200 的示例包括 LBA 区域控制模块 204 和最近最少使 用 (LRU) 模块 208。LBA 区域控制模块 204 基于每个 LBA 多长时间被主机 108 更新一次而 确定哪些 LBA 处于每个区域之中。当 SSD 控制模块 200 。
25、将 LBA 重新映射到闪存阵列 128 中 的相对应物理地址时, SSD 控制模块 200 根据区域对闪存阵列 128 的区块内的 LBA 进行排 说 明 书 CN 103562842 A 6 4/6 页 7 列。 0029 例如, SSD 控制模块 200 可以在垃圾回收或其它维护过程期间定期指示存储器控 制模块 212 基于 LBA 到物理区域的映射来重新排列闪存阵列 128 中所存储的任意有效数 据。重新排列数据可以包括将数据的一个或多个第一区块中的部分 ( 即, 对应于有效数据 的部分 ) 重新写入到第二区块并且擦除第一区块的数据。因此, 在闪存阵列 128 中的特定 物理位置中存储的。
26、有效数据保持相同的 LBA, 但是该 LBA 可以被映射到新的物理位置。 0030 LBA 区域控制模块 204 例如基于从 LRU 模块 208 所接收的信息来确定哪个 LBA 被 分配至哪个区域。LRU 模块 208 可以实施 LRU 引擎或算法以基于每个 LBA 最近如何被最后 使用而在有序 LRU 列表中对 LBA 进行排列。例如, 处于 LRU 列表顶端的 LBA 可以对应于最 近最少被写入的 LBA, 而处于 LRU 列表底部的 LBA 可以对应于最近经常被写入的 LBA。仅作 为示例, 当 LBA 被写入时, 该 LBA 可以下降至 LRU 列表的底部。以这种方式, 最近最多写入。
27、 的LBA将趋向于LRU列表的底部, 并且对应于相对动态的LBA。 相反地, 最近最少写入的LBA 将趋向于 LRU 列表的顶端, 并且对应于相对静态的 LBA。LRU 模块 208 可以将 LRU 列表存储 在存储器 216 中和 / 或将 LRU 列表传输至 LBA 区域控制模块 204。仅作为示例, 存储器 216 可以对应于图 1 所示的易失性存储器 132 和 / 或非易失性存储器 136。 0031 LBA 区域控制模块 204 可以基于从 LRU 模块 208 所接收的 LRU 列表来维护区域列 表。例如, 区域列表可以包括 10 个区域, 每个区域包括 10的 LBA。仅作为示。
28、例, LBA 中的 对应于前 10的最近最少写入的 LBA( 即, 处于 LRU 列表顶端的 10的 LBA) 可以被分配至 区域 1。接下来 10的最近最少写入的 LBA 可以被分配至区域 2。相反地, 最后 10 ( 即 处于 LRU 列表底部的 10的 LBA) 可以被分配至区域 10。 0032 图 3A 中示出了包括 10 个区域的区域列表 300 的示例。图 3B 示出了包括 100 个 区域的区域列表 320 的示例。能够认识到, 可以使用任意数目的区域。例如, 区域列表可以 仅包括两个区域, 其中一个区域表示静态区域而另一个区域则表示动态区域。另外, LBA 可 以以任意比例被。
29、分配至区域。换句话说, 每个区域并非必然要包括相同数目的 LBA。例如, 如果区域列表仅包括两个区域, 则表示静态区域的第一区域可以包括 75的 LBA。相反地, 表示动态区域的第二区域可以包括 25的 LBA。 0033 现在参考图 4A 和 4B, 示出了在并未根据区域列表对数据进行重新排列的情况下 存储数据的闪存区块 400、 404、 408 和 412。为了简单, 仅使用了两个区域 ( 区域 1 和区域 2), 但是可以使用任意数目的区域。 类似地, 虽然仅示出了均具有九个可寻址页面的四个区 块, 但是可以使用具有任意数目的可寻址页面的任意数目的区块。 0034 如图 4A 所示, 。
30、区块 400 可以存储包括 1A、 1B 和 1C 的区域 1 数据, 以及最初包括 2A 和 2B 的区域 2 数据。区域 2 数据随后可以被更新并且因此被重写为 2A 和 2B 。相应地, 对应于 2A 和 2B 的页面存储无效数据。如果区域 2 数据被更新并再次重写为 2A” 和 2B” , 则对应于 2A 和 2B 的页面也存储无效数据。因此, 在区域 2 数据的若干次重写之后, 区块 400 就会满但是却包括四个页面的无效数据。 0035 类似地, 区块 404 可以存储包括 1D、 1E 和 1F 的区域 1 数据, 以及最初包括 2C、 2D 和 2E 的区域 2 数据。区域 2。
31、 数据随后可以被更新并重写为 2C 、 2D 和 2E , 它们分别对应 于与 2C、 2D 和 2E 相同的逻辑地址。因此, 对应于 2C、 2D 和 2E 的页面存储无效数据。相应 地, 在区域 2 数据的一次或多次重写之后, 区块 404 会满但是包括三个页面的无效数据。区 说 明 书 CN 103562842 A 7 5/6 页 8 块 408 和 412 是空的, 并且可以被用作针对区块 400 和 404 的预留空间。换句话说, 如果在 清理 / 融合操作之前对区块 400 和 404 中的任何区域 2 数据执行额外的重写, 则区域 2 数 据会被重写至区块 408 和 412 同。
32、时仍然存储区块 400 和 404 中有效的区域 1 数据和无效的 区域 2 数据。 0036 现在参考图 4B, 区块 400 和 404 中所存储的有效数据可以被重写至区块 408 和 412, 并且区块 400 和 404 被完全擦除。因此, 即使是区域 1 数据和有效的区域 2 数据也被 擦除和重写。然而, 针对区域 2 数据的后续更新将利用新的区域 2 数据和无效的区域 2 数 据相对快速地填充区块 408 和 412。这样, 将需要额外的预留空间来容纳该重写, 并且将可 能需要多个区块来容纳预留空间。另外, 尽管区域 1 数据是静态且有效的, 但是区域 1 数据 的每个页面也在经更。
33、新的区域 2 数据每次填充区块之一时被擦除和重写。 0037 虽然如所示出的, 来自两个区块的数据被重写至两个不同的区块, 但是来自两个 或更多区块的数据能够被组合在单个区块中或者为了进行最优存储而以其它方式进行重 写排列。 0038 现在参考图 5A 和 5B, 示出了根据区域列表存储数据的闪存区块 500、 504、 508 和 512。如图 5A 所示, 区块 500 可以存储包括 1A、 1B 和 1C 的区域 1 数据, 以及最初包括 2A 和 2B 的区域 2 数据。区域 2 数据随后可以被更新并且因此被重写为 2A 和 2B 。相应地, 对 应于 2A 和 2B 的页面存储无效数。
34、据。如果区域 2 数据被更新并再次重写为 2A” 和 2B” , 则对 应于 2A 和 2B 的页面也存储无效数据。因此, 在区域 2 数据的若干次重写之后, 区块 500 就会满但是却包括四个页面的无效数据。 0039 类似地, 区块 504 可以存储包括 1D、 1E 和 1F 的区域 1 数据, 以及最初包括 2C、 2D 和 2E 的区域 2 数据。区域 2 数据随后可以被更新并重写为 2C 、 2D 和 2E 。因此, 对应于 2C、 2D 和 2E 的页面存储无效数据。相应地, 在区域 2 数据的一次或多次重写之后, 区块 504 就会满但是包括三个页面的无效数据。区块 508 和。
35、 512 是空的, 并且可以被用作针对区块 500 和 504 的预留空间。换句话说, 如果在清理 / 融合操作之前对区块 500 和 504 中的任何 区域 2 数据执行额外的重写, 则区域 2 数据会被重写至区块 508 和 512 同时仍然存储区块 500 和 504 中有效的区域 1 数据和无效的区域 2 数据。 0040 现在参考图 5B, 区块 500 和 504 中所存储的有效数据可以被重写至区块 508 和 512, 并且区块 500 被 504 被完全擦除。然而, 与图 4A 和 4B 中所示的示例相比, 该数据根据 区域列表而被重新排列。例如, 区域 1 数据基于如图 2 。
36、和 3 所示的 LRU 列表和区域列表在 区块 508 中被存储在一起。相反地, 区域 2 数据基于 LRU 列表和区域列表在区块 512 中被 存储在一起。 0041 因此, 区块508中存储的静态区域1数据与对区域1数据和区域2数据二者进行存 储的区块相比可以持续避免重写和预留空间更大部分的时间。例如, 某些类型的区域 1 数 据可能永不会更新。在其它区块的后续写入操作或重写期间, 额外的区域 1 数据可以被写 入区块 508 中的空页面。然而, 能够理解, 针对区块 508 的预留空间有所减少。更具体地, 由于在区块 508 中存储的数据仅是静态的区域 1 数据, 更新是不频繁的。因此,。
37、 区块 508 明 显不太可能被无效数据所填充并且需要预留的存储空间。 0042 相反地, 在区块 512 中存储的动态区域 2 数据可能被更为频繁地更新。因此, 区块 512更可能被无效数据所填充并且需要预留的存储空间。 然而, 由于区块508不可能需要预 说 明 书 CN 103562842 A 8 6/6 页 9 留空间, 所以可以仅需要空的区块 500 和 504 之一来为区块 512 提供预留空间和 / 或存储 动态区域 2 数据的额外区块。因此, 可以提供较少的额外容量并且使得 OPR 最小化, 以及将 预留的存储空间更多地分配给动态区域中的 LBA。例如, OPR 可能小于 5。。
38、仅作为示例, OPR 可以大约为 1.5并且实现大约 1.1 的写入放大。 0043 现在参考图 6, 在 604 开始 SSD 控制方法 600。在 608, 方法 600 确定多频繁地使用 每个逻辑地址。例如, 方法 600 针对逻辑地址生成并维护 LRU 列表。在 612, 方法 600 基于 LRU列表在不同区域中安排逻辑地址。 每个区域对应于相应逻辑地址更新(即, 被写入)得 有多频繁。例如, 方法 600 针对逻辑地址生成并维护区域列表。在 616, 方法 600 对闪存的 多个区块执行清理/融合或其它维护操作。 在620, 该方法600基于该区域列表对多个区块 中所存储的数据进行。
39、重写。例如, 方法 600 将对应于相同区域中的逻辑地址的数据存储到 相同的区块。该方法 600 在 624 结束。 0044 以上描述在本质仅是说明性的并且不旨在对本公开、 其应用或使用进行限制。本 公开的宽泛教导能够以各种形式来实施。 因此, 虽然本公开包括特定示例, 但是因为其它修 改形式通过研习附图、 说明书和随后的权利要求而将是显而易见, 所以本公开的实际范围 并不应当被如此限制。 出于清楚的原因, 将在附图中使用相同的附图标记来标示相似要素。 如这里所使用的, 短语 A、 B 和 C 中的至少一个应当被理解为表示使用非排他性逻辑或的逻 辑 (A 或 B 或 C)。应当理解的是, 方。
40、法内的一个或多个步骤可以以不同顺序 ( 或同时 ) 执行 而并不改变本公开的原理。 0045 如这里所使用的, 术语模块可以是指 : 作为应用特定集成电路 (ASIC) 的一部分或 包括应用特定集成电路 (ASIC)、 电子电路、 组合逻辑电路、 现场可编程门阵列 (FPGA)、 执行 代码的处理器 ( 共享、 专用或分组 )、 提供所描述功能的其它适当硬件组件 ; 或者是诸如片 上系统中的以上一些或所有的组合。 术语模块可以包括存储由处理器所执行的代码的存储 器 ( 共享、 专用或分组 )。 0046 如以上所使用的, 术语代码可以包括软件、 固件和 / 或微代码, 并且可以是指程 序、 例。
41、程、 函数、 类和 / 或对象。如以上所使用的, 术语共享意味着来自多个模块的一些或所 有代码可以使用单个 ( 共享 ) 处理器来执行。此外, 来自多个模块的一些或所有代码可以 由单个 ( 共享 ) 存储器进行存储。如以上所使用的, 术语群组意味着来自单个模块的一些 或所有代码可以使用处理器的群组来执行。此外, 来自单个模块的一些或所有代码可以使 用存储器的群组进行存储。 0047 这里所描述的装置和方法可以由一个或多个处理器所执行的一个或多个计算机 程序来实施。计算机程序包括在非瞬时的有形计算机可读介质上存储的处理器可执行指 令。计算机程序还可以包括所存储的数据。非瞬时的有形计算机可读介质的。
42、非限制性示例 是非易失性存储器、 磁性存储和光学存储。 说 明 书 CN 103562842 A 9 1/4 页 10 图 1 说 明 书 附 图 CN 103562842 A 10 2/4 页 11 图 2 图 3A 图 3B 说 明 书 附 图 CN 103562842 A 11 3/4 页 12 图 4A 图 4B 说 明 书 附 图 CN 103562842 A 12 4/4 页 13 图 5A 图 5B 图 6 说 明 书 附 图 CN 103562842 A 13 1/2 页 14 1. 一种固态硬盘 (SSD), 包括 : SSD 控制模块, 被配置为确定与关联于所述 SSD 的。
43、相应的逻辑地址中所存储的数据多 长时间被更新一次所对应的频率并且根据所述频率形成所述逻辑地址的群组, 其中形成群 组包括 : 生成所述逻辑地址的最近最少使用 (LRU) 列表, 其中所述 LRU 列表指示所述逻辑地址 中的每个逻辑地址中所存储的所述数据多长时间被更新一次, 以及 基于所述 LRU 列表生成包括多个区域的区域列表, 其中所述多个区域中的每个区域对 应于所述 LRU 列表中的所述逻辑地址的不同的范围, 并且所述多个区域中的每个区域包括 至少一个所述逻辑地址 ; 以及 存储器控制模块, 被配置为基于所述群组将所述数据重新写入至 SSD 存储区的区块中 的物理地址。 2. 根据权利要求。
44、 1 所述的 SSD, 其中所述 SSD 控制模块包括 : LRU 模块, 被配置为生成所述 LRU 列表 ; 以及 区域控制模块, 被配置为生成所述区域列表。 3. 根据权利要求 1 所述的 SSD, 其中所述逻辑地址包括逻辑区块地址 (LBA)。 4. 根据权利要求 1 所述的 SSD, 其中所述存储器控制模块被配置为在所述 SSD 存储区 的第一区块中重写与所述多个区域中的第一区域相关联的第一逻辑地址中的第一数据, 并 且在所述 SSD 存储区的第二区块中重写与所述多个区域中的第二区域相关联的第二逻辑 地址中的第二数据。 5. 根据权利要求 1 所述的 SSD, 其中所述 SSD 存储区。
45、包括闪存阵列。 6. 根据权利要求 1 所述的 SSD, 其中所述 SSD 控制模块包括被配置为执行固件的处理 器。 7. 根据权利要求 1 所述的 SSD, 其中所述 LRU 列表和所述区域列表在易失性存储器和 非易失性存储器中的至少一个之中存储。 8. 根据权利要求 1 所述的 SSD, 其中 : 与所述 SSD 相关联的物理地址的第一数目大于所述逻辑地址的第二数目 ; 以及 所述第一数目和所述第二数目之差与所述第二数目之比小于 5。 9. 根据权利要求 8 所述的 SSD, 其中与所述 SSD 相关联的写入放大大约是 1.1。 10. 一种操作固态硬盘 (SSD) 的方法, 所述方法包括。
46、 : 确定与关联于所述 SSD 的相应的逻辑地址中所存储的数据多长时间被更新一次所对 应的频率 ; 根据所述频率形成所述逻辑地址的群组, 其中所述形成所述群组包括 : 生成与所述 SSD 相关联的逻辑地址的最近最少使用 (LRU) 列表, 其中所述 LRU 列表指 示所述逻辑地址中的每个逻辑地址中所存储的所述数据多长时间被更新一次 ; 基于所述 LRU 列表生成包括多个区域的区域列表, 其中所述多个区域中的每个区域对 应于所述 LRU 列表中的所述逻辑地址的不同的范围, 并且所述多个区域中的每个区域包括 至少一个所述逻辑地址 ; 以及 基于所述群组将所述数据重新写入至 SSD 存储区的区块中的。
47、物理地址。 11. 根据权利要求 10 所述的方法, 其中所述逻辑地址包括逻辑区块地址 (LBA)。 按照条约第19条修改的权利要求书 CN 103562842 A 14 2/2 页 15 12. 根据权利要求 10 所述的方法, 还包括在所述 SSD 存储区的第一区块中重写与所述 多个区域中的第一区域相关联的第一逻辑地址中的第一数据, 并且在所述 SSD 存储区的第 二区块中重写与所述多个区域中的第二区域相关联的第二逻辑地址中的第二数据。 13. 根据权利要求 10 所述的方法, 其中所述 SSD 存储区包括闪存阵列。 14. 根据权利要求 10 所述的方法, 其中所述 LRU 列表和所述区域列表在易失性存储器 和非易失性存储器中的至少一个之中存储。 15. 根据权利要求 10 所述的方法, 其中 : 与所述 SSD 相关联的物理地址的第一数目大于所述逻辑地址的第二数目 ; 以及 所述第一数目和所述第二数目之差与所述第二数目之比小于 5。 16. 根据权利要求 15 所述的方法, 其中与所述 SSD 相关联的写入放大大约是 1.1。 按照条约第19条修改的权利要求书 CN 103562842 A 15 。