《多层单元固态硬盘的存储管理方法.pdf》由会员分享,可在线阅读,更多相关《多层单元固态硬盘的存储管理方法.pdf(10页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104216665 A (43)申请公布日 2014.12.17 CN 104216665 A (21)申请号 201410440438.1 (22)申请日 2014.09.01 G06F 3/06(2006.01) G11C 16/16(2006.01) G11C 29/42(2006.01) (71)申请人 上海新储集成电路有限公司 地址 201506 上海市金山区亭卫公路 6505 号 2 幢 8 号 (72)发明人 景蔚亮 陈邦明 (74)专利代理机构 上海申新律师事务所 31272 代理人 吴俊 (54) 发明名称 多层单元固态硬盘的存储管理方法 (57) 。
2、摘要 本发明涉及信息存储技术领域, 尤其涉及一 种多层单元固态硬盘的存储管理方法, 包括如下 步骤 : 对多层单元固态硬盘中预先选定的数据块 进行 ECC 扫描检测以获取数据块中错误数据的位 数 ; 判断错误位数是否达到预警值, 若是, 则继续 进行下一步, 若否, 则不对数据块做任何处理 ; 继 续判断错误位数是否达到临界值, 若是, 则继续进 行下一步, 若否, 则将数据块配置为单层单元存储 模式 ; 继续判断错误位数是否大于 ECC 最大纠错 位数, 若是, 则将数据块中包含有错误数据的页均 标记为失效页, 若否, 则将数据块由多次可编程模 式调整为一次可编程模式。这样有效保证了多层 单。
3、元固态硬盘正常使用, 并提高了多层单元固态 硬盘寿命。 (51)Int.Cl. 权利要求书 1 页 说明书 6 页 附图 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书6页 附图2页 (10)申请公布号 CN 104216665 A CN 104216665 A 1/1 页 2 1. 一种多层单元固态硬盘的存储管理方法, 其特征在于, 包括如下步骤 : 步骤 S1 : 对所述多层单元固态硬盘中的数据块进行 ECC 检测以获取所述数据块中数据 的错误位数 ; 步骤 S2 : 判断所述错误位数是否达到预警值, 若是, 则继续进行步骤 S3, 若否, 则不。
4、对 所述数据块做任何处理 ; 步骤 S3 : 继续判断所述错误位数是否达到临界值, 若是, 则继续进行步骤 S4, 若否, 则 将所述数据块配置为单层单元存储模式 ; 步骤 S4 : 继续判断所述错误位数是否大于 ECC 最大纠错位数, 若是, 则将所述数据块中 包含有错误数据的页均标记为失效页, 若否, 则将所述数据块由多次可编程模式调整为一 次可编程模式。 2. 如权利要求 1 所述的多层单元固态硬盘的存储管理方法, 其特征在于, 所述多层单 元固态硬盘为非易失性固态硬盘。 3. 如权利要求 2 所述的多层单元固态硬盘的存储管理方法, 其特征在于, 所述非易失 性固态硬盘为 NAND 固态。
5、硬盘。 4. 如权利要求 1 所述的多层单元固态硬盘的存储管理方法, 其特征在于, 所述步骤 S1 具体为, 在所述多层单元固态硬盘的存储控制器空闲时, 对所述多层单元固态硬盘中的数 据块进行 ECC 检测以获取所述数据块中数据的错误位数。 5. 如权利要求 1 所述的多层单元固态硬盘的存储管理方法, 其特征在于, 在所述步骤 S1 中, 对所述数据块中的部分页或全部页进行所述 ECC 检测。 6. 如权利要求 4 所述的多层单元固态硬盘的存储管理方法, 其特征在于, 所述步骤 S1 具体为, 对所述多层单元固态硬盘中存在错误数据的数据块进行 ECC 扫描检测以获取所述 数据块中数据的错误位数。
6、。 7. 如权利要求 1 所述的多层单元固态硬盘的存储管理方法, 其特征在于, 在所述步骤 S1 中, 所述 ECC 检测为主动式检测。 8. 如权利要求 1 所述的多层单元固态硬盘的存储管理方法, 其特征在于, 在所述多层 单元固态硬盘的存储控制器空闲时, 将所述多层单元固态硬盘中的冷数据存储至一备用存 储介质上。 9. 如权利要求 8 所述的多层单元固态硬盘的存储管理方法, 其特征在于, 所述备用存 储介质为硬盘、 磁带、 光盘、 或网络云盘。 10. 如权利要求 1 所述的多层单元固态硬盘的存储管理方法, 其特征在于, 所述临界值 小于或等于所述 ECC 最大纠错位数。 权 利 要 求 。
7、书 CN 104216665 A 2 1/6 页 3 多层单元固态硬盘的存储管理方法 技术领域 0001 本发明涉及信息存储技术领域, 尤其涉及一种多层单元固态硬盘的存储管理方 法。 背景技术 0002 Flash 存储器由于具有存储容量大, 体积小, 掉电时数据不易丢失, 以及可多次擦 写等优点, 己逐步取代其他半导体存储器件, 广泛应用于手机、 PDA 及数码相机等移动电子 产品中。NAND Flash 内部分为多个块 (block), 每块由多个页 (page) 组成。页是写入数据 的最小单元, 块是擦除的最小单元。 页内数据不能被反复写入, 只有当包含该页的块被擦除 后才能重新写入。F。
8、lash 存储器的寿命是有限的, 不能无限次擦写, 块的最大擦写次数一般 为105-106次, 所以, 在采用NAND Flash的应用中必须采用一定的机制, 保证各个物理块近 似均衡使用, 避免某些块提前损耗达到使用寿命, 从而影响整个存储器的使用, 这个问题称 为损耗均衡(wear leveling)。 均衡损耗就是让闪存中所有的块都参与到擦写的过程中去, 尽量的让各块都有相近的擦除次数, 延长闪存的寿命。物理块被选中执行擦除操作的先决 条件是其上有脏页出现, 即其上存放的数据需要被执行更新操作, 如果该块上存放的数据 长期得不到更新, 则该块就不会因变脏而被擦除, 其擦除次数就会明显少于。
9、存放着经常被 更新的数据块。形象的说, 存放更新频率低的冷数据的块的擦除次数会少于存放更新频率 高的热数据的块的擦除次数。如何实现冷热数据存放位置的交换, 使得各个物理块都有机 会出现脏页从而被擦除, 是损耗均衡处理中需要考虑的问题。 0003 目前均衡损耗算法可以分为动态算法和静态算法两大类。 动态算法侧重于更新数 据时对目标物理页的选择上, 因为闪存上的数据更新不像磁盘那样原地更新, 而是将新数 据写到别的页上去, 原来的数据标识为无效, 那么存放无效数据的页在垃圾回收时就得到 擦除的机会。动态损耗均衡算法强调将新数据写入到擦除次数较小的块上, 因为计算机有 局部性原理, 刚被访问或更新的。
10、数据很有可能马上又被访问或更新, 新数据很可能很快变 成无效数据, 因而增加了擦除次数少的块上出现脏页的可能, 使得这些块就能得到更多的 擦除机会。如果某块上存放的都是更新频率很低的静态数据或称为冷数据, 甚至是上层应 用程序的只读数据区域, 则此块上的数据被选中更新的频率就会非常低, 因而其上出现脏 页很少, 在垃圾回收时就很少被选中擦除, 结果这个块的擦除次数明显小于别的块, 导致损 耗不均衡。为解决这一问题出现了另一类均衡算法, 即静态算法。此类算法通过一定的方 法观察是否有扎堆冷数据存在, 如果存在与某块上, 则将冷数据转移到擦除次数已经很高 的块上, 而原先存放冷数据的块存放经常更新。
11、的数据, 这样这些块就能够得到更多的擦除 机会。如图 1 所示的是一种称为 “区域均衡” (Regioned Leveling) 的均衡损耗算法统计图 表。X 轴代表不同的 NAND 闪存区域, Y 轴代表擦写次数 (P/E cycle)。可以看出, 即使在同 一个区域内, 不同块的擦除次数也是有很大差异的。另一种均衡损耗算法统计图如图 2 所 示, 根据 Intel 的报告指出, 在该算法下, NAND 固态硬盘经历很多擦写次数之后, 损耗最高 的块损耗最高的块擦写次数仅是平均擦写次数的 3 倍, 损耗最高的块与损耗最低的块之间 说 明 书 CN 104216665 A 3 2/6 页 4 。
12、擦写次数仅有 4的差异。 0004 从上面分析可以看出, 不论是静态还是动态均衡损耗算法都可能会产生不必要的 擦除操作, 损失了 NAND 固态硬盘的可擦写次数。 0005 中国专利 (CN 101533337A) 公开了一种固态硬盘数据管理方法, 该方法包括 : 获 取所述固态硬盘的逻辑地址与存储于所述固态硬盘中的数据的物理地址的动态映射关系 ; 通过修改所述动态映射关系, 进行逻辑地址间的所述数据的移动。该发明同时公开一种固 态硬盘数据管理设备。该发明可以实现固态硬盘数据在不同逻辑地址间的快速移动, 降低 I/O 资源占用、 加快命令执行速度, 且能够有效降低固态硬盘的读 / 写损耗, 延。
13、长固态硬盘 的使用寿命。 0006 该专利主要用过减少对固态硬盘的擦写次数来延长固态硬盘的使用寿命, 但并未 解决固态硬盘的损耗均衡问题, 优化器数据算法。 0007 中国专利 (CN 101740132A) 公开了一种固态硬盘的寿命预警的方法、 报警装置、 固态硬盘和预警系统 ; 寿命预警的方法包括 : 监测固态硬盘的寿命状态 ; 判断所述寿命状 态是否达到设置的预警值 ; 当所述寿命状态达到设置的预警值时发出预警信号。 0008 该专利主要解决了固态硬盘的受用寿命的预警问题, 但并未能有效延长固态硬盘 的使用寿命。 发明内容 0009 鉴于上述问题, 本发明提供一种多层单元固态硬盘的存储管。
14、理方法。 0010 本发明解决技术问题所采用的技术方案为 : 0011 一种多层单元固态硬盘的存储管理方法, 其中, 所述方法包括 : 0012 步骤 S1 : 对所述多层单元固态硬盘中的数据块进行 ECC 检测以获取所述数据块中 数据的错误位数 ; 0013 步骤 S2 : 判断所述错误位数是否达到预警值, 若是, 则继续进行步骤 S3, 若否, 则 不对所述数据块做任何处理 ; 0014 步骤 S3 : 继续判断所述错误位数是否达到临界值, 若是, 则继续进行步骤 S4, 若 否, 则将所述数据块配置为单层单元存储模式 ; 0015 步骤 S4 : 继续判断所述错误位数是否大于 ECC 最。
15、大纠错位数, 若是, 则将所述数据 块中包含有错误数据的页均标记为失效页, 若否, 则将所述数据块由多次可编程模式调整 为一次可编程模式。 0016 上述的多层单元固态硬盘的存储管理方法, 其中, 所述多层单元固态硬盘为非易 失性固态硬盘。 0017 上述的多层单元固态硬盘的存储管理方法, 其中, 所述非易失性固态硬盘为 NAND 固态硬盘等。 0018 上述的多层单元固态硬盘的存储管理方法, 其中, 所述步骤 S1 具体为, 在所述多 层单元固态硬盘的存储控制器空闲时, 对所述多层单元固态硬盘中的数据块进行 ECC 检测 以获取所述数据块中数据的错误位数。 0019 上述的多层单元固态硬盘的。
16、存储管理方法, 其中, 在所述步骤 S1 中, 对所述数据 块中的部分页或全部页进行所述 ECC 检测。 说 明 书 CN 104216665 A 4 3/6 页 5 0020 上述的多层单元固态硬盘的存储管理方法, 其中, 所述步骤 S1 具体为, 对所述多 层单元固态硬盘中存在错误数据的数据块进行 ECC 扫描检测以获取所述数据块中数据的 错误位数。 0021 上述的多层单元固态硬盘的存储管理方法, 其中, 在所述步骤S1中, 所述ECC检测 为主动式检测。 0022 上述的多层单元固态硬盘的存储管理方法, 其中, 在所述多层单元固态硬盘的存 储控制器空闲时, 将所述多层单元固态硬盘中的冷。
17、数据存储至一备用存储介质上。 0023 上述的多层单元固态硬盘的存储管理方法, 其中, 所述备用存储介质为硬盘、 磁 带、 光盘、 或网络云盘。 0024 上述的多层单元固态硬盘的存储管理方法, 其中, 所述临界值小于或等于所述 ECC 最大纠错位数。 0025 上述技术方案具有如下优点或有益效果 : 0026 通过本发明的方法能够利用多层单元固态硬盘中存储控制器空闲的时间对多层 单元固态硬盘中的数据块进行主动的检测, 从而有效降低了多层单元固态硬盘中某些数据 块因为提前达到擦写使用周期, 而导致的整块固态硬盘使用寿命缩短, 进而导致多层单元 固态硬盘内部数据丢失的问题。 附图说明 0027 。
18、参考所附附图, 以更加充分的描述本发明的实施例。 然而, 所附附图仅用于说明和 阐述, 并不构成对本发明范围的限制。 0028 图 1 是本发明背景技术中第一种均衡损耗算法统计示意图 ; 0029 图 2 是本发明背景技术中第二种均衡损耗算法统计示意图 ; 0030 图 3 是单层单元 NAND 固态硬盘存储数据原理示意图 ; 0031 图 4 是多层单元 NAND 固态硬盘存储数据原理示意图 ; 0032 图 5 是本发明实施例中的多层单元固态硬盘的存储管理方法具体实施方式的流 程示意图。 具体实施方式 0033 本发明提供一种多层单元固态硬盘的存储管理方法。通过 ECC 检测失效位, 进而。
19、 采取不同的处理策略, 从而更进一步延长固态硬盘的使用寿命。 0034 多层单元 NAND 固态硬盘是与单层单元 (SLC, Single level cell)NAND 固态硬盘 相对的, 单层单元 NAND 固态硬盘一个存储单元存储 1bit 数据, 状态 “0” 和状态 “1” 取决于 由浮栅管中的电荷量引起的阈值电压的大小, 如图 3 所示的是由阈值电压决定存储数据的 状态。由于单层单元 NAND 固态硬盘每单元只存储 1bit 数据, 因而其稳定性好, 读取速度也 非常快, 可擦写次数 (Endurance) 高达 10 万次, 数据保持能力 (Retention) 可长达 10 年。
20、, 但缺点是成本高, 容量不易做大。多层单元 NAND 固态硬盘由 Intel 率先发明, 其原理是将 2bit 或更多位数据写入到一个浮栅管中, 利用不同电位的电荷, 透过电压控制精准读写, 如 图 4 所示。显然多层单元 NAND 固态硬盘成本低, 容量更大, 但缺点也相当明显, 因为浮栅管 中的电荷控制需要更加精确, 数据稳定性较差, 读写速度也明显比 SLC 慢, 更差的是多层单 说 明 书 CN 104216665 A 5 4/6 页 6 元 NAND 固态硬盘的可擦写次数仅为 1 万次, 每单元存储位数越多, 可擦写次数也会越来越 少, 因此 MLC 曾一度被误解为劣质芯片。但由于。
21、多层单元 NAND 固态硬盘在容量上的优势, MLC 技术也在不断发展。由于每个 MLC 存储单元中存放 bit 较多, 出错的几率会增加, 必须 进行更多的错误修正 (ECC, Error Correction Code), 一些数据保持能力较差的多层单元 NAND 固态硬盘甚至需要进行周期刷新从而保证数据可靠性, 这些动作都会导致其性能大幅 落后于结构简单的 SLC NAND 固态硬盘。表 1 列出了在不同工艺下多层单元 NAND 固态硬盘 和单层单元NAND固态硬盘在性能上的对比, 表中可以看出SLC在性能上明显要优于MLC, 但 在成本和大容量方面 MLC 又明显优于 SLC, 因此用。
22、户在选择时需要折中考虑。 0035 0036 表 1 0037 根据上述多层单元 NAND 固态硬盘与单层单元 NAND 固态硬盘的优缺点, 本发明提 供了一种多层单元固态硬盘的存储管理方法, 旨在通过检测多层单元固态硬盘中数据块中 数据的错误位数, 并与预先设置的错误数据位数预警值、 临界值与该固态硬盘所能进行的 ECC 最大纠错位数进行比较, 并以所获得的不同的比较结果为基础进行不同的算法策略修 正, 从而延长了该数据块的使用寿命。 0038 下面结合附图对本发明方法进行详细说明。 0039 首先, 提供一待测多层单元固态硬盘, 该多层单元固态硬盘优选为非易失性固态 硬盘, 如 NAND 。
23、固态硬盘等, 但并不限于 NAND 固态硬盘 ; 为了能够更清楚阐述本发明的技术 方案, 本实施例以多层单元 NAND 固态硬盘为例对本发明的方法进行详细说明。 0040 然后, 对该多层单元NAND固态硬盘进行ECC检测(既可对多层单元NAND固态硬盘 中的数据块的部分页或全部页进行 ECC 检测 ), 得出该多层单元 NAND 固态硬盘每个具有错 误数据的数据块, 并且计算该数据块中所有数据的错误位数 n。该步骤优选采用主动式 ECC 检测对该多层单元 NAND 固态硬盘进行检测扫描, 并且, 在该固态硬盘中的存储控制器空闲 时对该多层单元 NAND 固态硬盘进行 ECC 检测。 0041。
24、 之后, 设定一个错误数据位数预警值 Na, 和一个错误数据临界值 Nb, 所述错误数 据临界值 Nb 大于错误数据位数预警值 Na, 且小于或等于该多层单元 NAND 固态硬盘的 ECC 最大纠错位数 M。其中, 错误数据位数预警值 Na, 可由用户或者系统自行设置, 优选设置为 所述固态硬盘上 ECC 能够检测到的最大错误位数 N 的二分之一或三分之一, 错误数据位数 的临界值 Nb, 同样可由用户或者系统自行设置, 优选设置为该固态硬盘可使用 ECC 最大纠 说 明 书 CN 104216665 A 6 5/6 页 7 错位数 M 的相同值或 M-1。 0042 然后, 将检测所得的数据。
25、的错误位数 n 与错误数据位数预警值 Na, 错误数据临界 值 Nb 和错误数据块中的 ECC 最大纠错位数 M 进行比较。 0043 如果数据的错误位数n小于错误数据位数预警值Na时, 表明该被扫描的数据块仍 具有较长的使用寿命, 则不对所述多层单元 NAND 固态硬盘中被扫描的数据块做任何处理。 0044 如果错误数据位数 n 大于错误数据位数预警值 Na, 且小于错误数据临界值 Nb 时, 表明该数据块已近经历了大量的擦写周期, 若固态硬盘为多层单元 NAND 固态硬盘, 为保证 该数据块能有更长的使用周期, 则将所被扫描的数据块配置为单层 NAND 固态硬盘的擦写 模式, 降低该数据块。
26、的使用擦写强度, 以延长该数据块的使用寿命。 0045 如果数据的错误位数n大于等于错误数据临界值Nb时, 且小于等于该固态硬盘的 ECC 最大纠错位数 M, 表明该数据块经历了相当多的擦写周期, 内部的错误数据位数已接近 ECC 的最大可修正上限, 则将所扫描的数据块由多次可编程模式调整为一次可编程模式, 即 将禁止对该数据块的擦除, 仅保留一次写入的机会, 使存储的数据保持稳定, 进而提高该多 层单元 NAND 固态硬盘的使用寿命。 0046 如果数据的错误位数 n 大于该固态硬盘可使用 ECC 纠正的错误数据块中的 ECC 最 大纠错位数M时, 表明该数据块内的错误数据位数已近超出了EC。
27、C的修正能力范围, 则将所 述固态硬盘中被扫描的数据块中包含有错误数据的页均标记为失效页, 即不再向该数据块 中进行数据写入, 屏蔽该已无用的数据块。 0047 同时, 可将该多层单元 NAND 固态硬盘中预定时间内不被擦写修改的冷数据上传 至其它存储介质, 只保留一个链接地址于该固态硬盘中, 减少了该固态硬盘中实际所需写 入的数据量, 又同时保证了所需保存的数据不会丢失, 故而有效地避免了该固态硬盘在损 耗均衡算法的数据管理下, 因转移冷数据的存储位置而导致的无谓地对固态硬盘擦写周期 的浪费。进一步延长了固态硬盘的使用寿命。 0048 优选的, 其它存储介质可以是硬盘, 磁带, 光盘, 网络。
28、云盘, 或者是其它网络资源。 0049 下面通过一具体实例对本发明作进一步详细阐述。 0050 例如, 假设多层单元 NAND 固态硬盘中每一个块内包含 64 个页, 每页 ECC 能够检 测出 8bit 错误, 并能够修正 7bit 错误数据, 故可将预警值 Na 设为 4bit, 将临界值 Nb 设为 6bit。如果对某块中的页数据有 50 个页最多检测到 2bit 数据错误位数, 即低于预警值, 那 么说明该块经历的擦写次数较少, 使用寿命仍较长, 此时不作处理。如果对某块中有 50 个 页数据能检测到最多的 4bit 错误位数, 已经达到了预警值, 那么将该块配置成单层单元存 储模式中。
29、, 虽然存储容量有所下降, 但是可擦写次数的上限得到改善, 从而延长整个多层单 云 NAND 固态硬盘的寿命。如果对某块中有 50 个页数据检测到最多的 6bit 失效位, 达到了 临界值, 显然该块已经经历大量的擦写周期, 虽然还在 ECC 纠错能力的范围内, 但即将超出 ECC 纠错能力范围, 此时将该块调整为一次可编程模式, 进而不对其再次进行擦写, 虽然损 失了可擦写功能, 但仍然能够正常使用, 进而延长该块的使用寿命。如果对某块中有 5 个页 数据检测到最多的 8bit 错误位, 那么这 5 个页已经超过了 ECC 所能纠错上限, 因而存储的 数据不具可靠性, 应当将这些页标记为无效。
30、页, 系统应当不再向这些页存储数据。 0051 另外, 由于存放更新频率低的冷数据的块的擦除次数会少于存放更新频率高的热 数据的块的擦除次数。 为了实现均衡损耗, 会将冷数据与热数据互换位置, 但这种方法会额 说 明 书 CN 104216665 A 7 6/6 页 8 外增加了NAND存储器的擦写周期。 因此, 本发明针对NAND固态硬盘(可以是单层单元NAND 固态硬盘, 也可以是多层单元 NAND 固态硬盘 ) 提出了一种策略, 当系统非繁忙或者网络非 繁忙的时候, 将擦除频率较低的冷数据上传至本地存储介质, 比如硬盘, 磁带或者光盘或者 网络云盘中, 或者保存到其他网络资源中, 只保留。
31、一个链接地址, 从而腾出 NAND 固态硬盘 的存储空间给那些需要经常擦写的数据, 更有利于实现损耗均衡。例如用户存储的视频文 件、 音乐文件、 电子书籍等, 这些数据存储在固态硬盘中几乎不会被擦写, 为了损耗均衡, 这 些文件数据会定期在NAND固态硬盘中移动, 浪费了NAND固态硬盘的擦写周期, 采用本发明 这种策略, 可在系统或网络非繁忙的时候, 将这些数据上传至本地磁盘中, 或者在网络非繁 忙的时候将这些数据上传至网络云盘中, 不仅节省了 NAND 固态硬盘的存储空间, 而且避免 了不必要的 NAND 固态硬盘擦写次数。这些数据对 NAND 固态硬盘来说是冷数据, 但对用户 而言, 这。
32、些数据可能会经常被访问, 而现在这些数据存放于网络云盘或者本地磁盘中, 也不 会影响用户的正常使用, 但却提高了 NAND 固态硬盘的寿命。 0052 综上所述, 本发明的多层单元固态硬盘的存储管理方法通过优化对多层单元固态 硬盘内部数据块的管理算法, 延长每个数据块的使用寿命, 并且将预定时间内不被擦写修 改的冷数据上传至其它存储介质的方法, 使整个多层单元固态硬盘的寿命被有效延长。 0053 对于本领域的技术人员而言, 阅读上述说明后, 各种变化和修正无疑将显而易见。 因此, 所附的权利要求书应看作是涵盖本发明的真实意图和范围的全部变化和修正。在权 利要求书范围内任何和所有等价的范围与内容, 都应认为仍属本发明的意图和范围内。 说 明 书 CN 104216665 A 8 1/2 页 9 图 1 图 2 说 明 书 附 图 CN 104216665 A 9 2/2 页 10 图 3 图 4 图 5 说 明 书 附 图 CN 104216665 A 10 。