一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于SSD的映射表的刷新方法与流程

2021-10-24 04:49:00 来源:中国专利 TAG:映射 刷新 方法 用于 申请

用于ssd的映射表的刷新方法
1.本技术是申请日为2020年5月22日、申请号为202080001153.1、名称为“用于ssd的映射表的刷新方法”的发明专利申请的分案申请。
技术领域
2.本发明涉及用于固态驱动器(ssd)的映射表的刷新(flush)方法,更具体而言,涉及能够减少针对ssd的映射表的不必要的段(segment)刷新操作和恢复时间(restoring time)的刷新方法。


背景技术:

3.在固态驱动器(ssd)中,需要精确地维护映射表,所述映射表用于将主机(host)的多个逻辑块地址(lba)分别映射到nand闪存的多个物理地址。该映射表通常是一级的映射表,并且需要相当大的dram缓冲区来存储每个逻辑索引的映射条目。在ssd的ssd固件被加电时,应当将大的映射表从nand闪存恢复到dram缓冲区,用于下一个到来的地址映射。为了减少恢复时间,ssd的管理模块会将映射表切割成多个段,并生成对应于多个段的多个计数值。在由主机更新lba中的一个lba时,会将与lba中的一个lba相对应的多个计数值中的一个计数值增加1。然后,如果多个计数值中的一个计数值达到阈值,则ssd固件会触发刷新操作,以向nand闪存中写入与lba中的一个lba相对应的多个段中的一个段。因此,ssd固件可以通过从nand闪存读取这些更新的段并且然后将新的更新打补丁(patch)来恢复整个映射表。
4.不过,在企业ssd固件中,存在热(hot)数据和冷(cold)数据。根据jedec jesd219,企业耐力工作负载(workload)定义:50%的主机访问在5%的用户lba范围之内。传统企业ssd固件可能不考虑由于热数据和冷数据导致的影响。只要计数值达到阈值,ssd固件就会触发刷新操作。热数据的段会比冷数据的段更频繁地被刷新到nand闪存中。请参考图1,图1为现有技术中ssd的映射表的示意图。假设总共有20000个lba,前5%的lba为最热的数据,并且整个映射表被分成20个段,表示为seg0~seg19。在jedec jesd219工作负载下,在nand闪存中的一种可能刷新段分布可以类似于图1。如图1所示,写入nand闪存中的大部分段是热段,例如seg0和seg1。其他冷段很少被ssd固件写入。通过这种方式,有两个主要问题:浪费nand闪存的写入带宽,以及导致nand闪存的不必要的写入放大因数(waf)。因为热段被频繁写入,所以写入带宽被热段占用。尽管热段被写入很多次,但仅最后写入的段被ssd固件用于恢复映射表。因此,先前热段的刷新操作会相应导致不必要的waf。
5.因此,需要改进现有技术。


技术实现要素:

6.因此本发明的目的是提供一种刷新方法,其能够减少不必要的段刷新操作并且减轻写入带宽和waf问题。
7.本发明的实施例公开了一种固态驱动器(ssd)的刷新方法。该刷新方法包括:将一
组数据映射到映射表的多个段;生成记录表,用于记录总值和与多个段相对应的多个计数值;在写入数据中的一个数据时,将多个计数值中的、与数据中的一个数据的多个段中的一个段相对应的一个计数值增加一数量,并且将总值增加另一数量;确定多个计数值中的一个计数值是否大于多个优化的阈值中的、与多个计数值中的一个计数值相对应的一个优化的阈值;以及如果多个计数值中的一个计数值大于多个优化的阈值中的一个优化的阈值,则执行刷新操作以将多个段中的一个段写入存储器中,并且恢复映射表。
8.本发明的另一实施例公开了一种固态驱动器(ssd),包括:包括映射表的存储器,以及被配置为执行刷新过程的控制电路,其中,刷新过程包括:将一组数据映射到映射表的多个段;生成记录表,用于记录总值和与多个段相对应的多个计数值;在写入数据中的一个数据时,将多个计数值中的、与数据中的一个数据的多个段中的一个段相对应的一个计数值增加一数量,并且将总值增加另一数量;确定多个计数值中的一个计数值是否大于多个优化的阈值中的、与多个计数值中的一个计数值相对应的一个优化的阈值;以及如果多个计数值中的一个计数值大于多个优化的阈值中的一个优化的阈值,则执行刷新操作以将多个段中的一个段写入存储器中,并且恢复映射表。
9.本领域的普通技术人员在阅读各附图和图示中例示的优选实施例的以下详细描述之后,本发明的这些和其他目的无疑将变得显而易见。
附图说明
10.图1是现有技术中ssd的映射表的示意图。
11.图2是根据本发明实施例的ssd的示意图。
12.图3是根据本发明实施例的刷新过程的流程图。
13.图4是根据本发明实施例的ssd的映射表的示意图。
具体实施方式
14.请参考图2,图2是根据本发明的实施例的ssd 1的示意图。ssd 1耦合到主机4,并且包括nand闪存11和控制电路12。nand闪存11存储映射表2和记录表3。映射表2包括多个段seg0到seg19;换言之,映射表2被分成多个段seg0到seg19。ssd 1将主机4的一组数据,例如,多个逻辑块地址(lba)映射到多个段seg0到seg19。记录表3记录总值和与多个段seg0到seg19相对应的多个计数值。控制电路12耦合到nand闪存11并在ssd 1加电之后从nand闪存11获取记录表3。
15.为了刷新映射表2,控制电路12被配置为执行刷新操作,所述刷新操作可以被总结为刷新过程5,如图3所示。刷新过程5包括以下步骤。
16.步骤50:开始。
17.步骤51:在主机4写入数据(lba)中的一个数据时,将多个计数值中的、与数据中的一个数据的多个段中的一个段相对应的一个计数值增加1,将总值增加1,并且计算多个优化的阈值中的、与多个计数值中的一个计数值相对应的一个优化的阈值。
18.步骤52:确定总值是否大于临界值。如果是,进行到步骤53;否则,进行到步骤55。
19.步骤53:清空记录表3并且允许多个计数值、总值和多个优化的阈值变为零。
20.步骤54:重新计算多个优化的阈值中的、与多个计数值中的一个计数值相对应的
一个优化的阈值。
21.步骤55:确定多个计数值中的一个计数值是否大于多个优化的阈值中的、与多个计数值中的一个计数值相对应的一个优化的阈值。如果是,进行到步骤56;否则,进行到步骤51。
22.步骤56:执行刷新操作,以向nand闪存11中写入多个段中的一个段并且恢复映射表2。
23.步骤57:结束。
24.在步骤51中,通过如下等式确定多个优化的阈值的任何一个优化的阈值:
[0025][0026]
其中o被定义为多个优化的阈值中的一个优化的阈值,b被定义为与多个段相对应的多个基础阈值中的一个基础阈值,c被定义为多个计数值中的一个计数值,t被定义为总值。
[0027]
因此,如从步骤55和步骤56所知,如果优化的阈值o更大,则写入nand闪存11中的段的刷新频率更小。从该等式可以看出,在计数值c更大时,优化的阈值o也更大,因此段的刷新频率会更小。亦即,多个段seg0到seg19的刷新频率与计数值c成反比。
[0028]
通过这种方式,ssd 1可以令热段(例如seg0和seg1)以较不频繁地刷新,但令冷段更频繁地刷新。例如,请参考图4,图4是针对根据本发明的实施例的ssd的映射表的示意图。映射表2仅包括作为热段的4个段seg0和3个段seg1。与图1相比,在图1中,传统ssd的映射表包括作为热段的25个段seg0和9个段seg1,该实施例的ssd1能够减少不必要的段刷新操作和恢复时间。
[0029]
值得指出的是,因为冷段被刷新得更频繁,所以ssd 1可以降低由于长时间不更新冷段而导致数据丢失的可能性。
[0030]
在步骤52和步骤53中,ssd 1可以由于不同的生命周期、不同的工作负载和不同的写入情景而改变固有应用模式,因此之前记录和累积的段seg0到seg19的刷新频率可能不能反映当前的利用情形和习惯。因此,在总值达到临界值,例如,nand闪存11的容量的范围时,控制电路12清空记录表3,这样允许多个计数值、总值和多个优化的阈值变为零。
[0031]
总之,本发明提供了一种ssd和一种刷新方法,其能够减少不必要的段刷新操作和恢复时间,并且减轻写入带宽和waf问题。
[0032]
本领域的技术人员将容易发现,可以对装置和方法作出众多修改和更改,同时保持本发明的教导。因此,以上公开应当被解释为仅受所附权利要求的边界限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜