首页> 中国专利> 一种基于WL多线程提高SSD使用寿命的方法

一种基于WL多线程提高SSD使用寿命的方法

摘要

本发明公开了一种基于WL多线程提高SSD使用寿命的方法,其特征在于在SSD固件中增加一寿命均衡有限状态机,用于响应host端的读写命令,根据host端的读写命令中包含的所操作的数据块的访问频率属性,将数据块分为:冷数据、热数据和常规数据;同时在SSD固件中设置了热数据处理线程、冷数据处理线程和常规数据处理线程,三个线程由寿命均衡有限状态机统一协调触发执行,并完成host端的最后读写操作,通过增加寿命均衡有限状态机和基于该状态机设计了多线程分别实现冷数据、热数据和常规数据的读写操作,有效降低NVMe?SSD的写放大,同时高效地均衡NAND?flash的擦除次数,以延长固态硬盘的使用寿命。

著录项

  • 公开/公告号CN105677245A

    专利类型发明专利

  • 公开/公告日2016-06-15

    原文格式PDF

  • 申请/专利权人 记忆科技(深圳)有限公司;

    申请/专利号CN201511031254.0

  • 发明设计人 叶红兵;韩道静;

    申请日2015-12-31

  • 分类号G06F3/06(20060101);

  • 代理机构44298 广东广和律师事务所;

  • 代理人叶新民

  • 地址 518057 广东省深圳市南山区蛇口后海大道东角头厂房D22/F、D13/F、D23/F、D14/F、D24/F、D15/F

  • 入库时间 2023-12-18 15:32:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-20

    授权

    授权

  • 2016-07-13

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20151231

    实质审查的生效

  • 2016-06-15

    公开

    公开

说明书

技术领域

本发明涉及信息存储领域,尤其涉及一种基于WL多线程提高SSD使用寿 命的方法。

背景技术

TLCNANDflash是一种每个存储单元(memorycell)中存储有3个bit的 flash类型,其较高的存储密度在固态硬盘及存储器领域有着愈来愈广泛的应 用。

在TLCNANDflash每个存储单元的3个bit信息中,分别属于不同的分组, 相对于MLC及SLC中page的概念,TLC中的三个数据分组称为sub-page,其中 存储低位bit的叫做lowpage,存储中间bit的叫做middlepage,存储高位 bit的叫做uppage。而三个sub-page所属的同一个WordLine(WL)即是相对 于MLC及SLC中page的存在。

消费级与企业级用户对SSD的使用寿命尤为关注,也是衡量SSD的一个重 要指标。TLCNANDFLASH的擦除次数仅为几百次,因此用户对SSD的使用寿命 就更加关注。

现有技术存在基于单线程的WL(WearLeveling,寿命均衡,下文均以WL简 称)功能模块调度设计,WL作为固态硬盘的一个功能模块,设计为被动调度机制。 由模块内部机制触发,被调度模块统筹调度使用。单线程的调度设计存在如下 缺点:冷热数据分布在相同数据块,不能有效分离冷热数据,导致相当大的写 放大,达不到寿命均衡的长期目标。

现有技术还存在基于双线程的WL功能模块调度设计,WL作为固态硬盘的一 个功能模块,设计为被动调度机制。由模块内部机制触发,被调度模块统筹调 度使用。将WL分布在独立的线程,只允许写冷数据,不允许包括host在内的 其它所有写操作;Host也设计为单独一个线程,由host线程来实现冷数据和热 数据的区分。这样可以有效分离长期沉淀下来的冷热数据,提高固态硬盘的使 用寿命。但也存在如下缺点:不能发挥NVMe的新特性,需要通过host线程主 动区分写数据的访问频率,造成额外的写放大问题。

发明内容

针对以上缺陷,本发明目的在于提出了如何有效利用NVMe协议中从系统层 面对用户数据访问频率进行了分级的特性,有效均衡SSD擦除次数,有效降低 写放大,整体上提高SSD的使用寿命。

为了实现上述目的,本发明提供了一种基于WL多线程提高SSD使用寿命的 方法,其特征在于在SSD固件中增加一寿命均衡有限状态机,用于响应host端 的读写命令,根据host端的读写命令中包含的所操作的数据块的访问频率属性, 将数据块分为:冷数据、热数据和常规数据;同时在SSD固件中设置了三个线 程分别为:热数据处理线程、冷数据处理线程和常规数据处理线程,所述三个 线程由寿命均衡有限状态机根据其状态转换流程和host端的读写命令中包含的 所操作的数据块的访问频率属性分别触发执行,并完成host端的最后读写操作。

所述的基于WL多线程提高SSD使用寿命的方法,其特征在于所述的寿命均 衡有限状态机定义了WL0、WL1、WL2和WL3四种状态:

状态WL0定义为WL初始化状态,其触发条件为上电、复位、WL3状态调用初 始化,其开启热数据处理线程、冷数据处理线程和常规数据处理线程;

状态WL1定义为WL触发状态,其由WL0状态触发调用,开启热数据处理线 程和冷数据处理线程;

状态WL2定义为WL处理中状态,其由WL1状态触发调用,开启热数据处理 线程和冷数据处理线程;

状态WL3定义为WL处理完状态,其由WL2状态触发调用或者是WL1执行中 出现异常情况触发直接进入WL处理完状态,开启热数据处理线程和常规数据处 理线程。

所述的基于WL多线程提高SSD使用寿命的方法,其特征在于所述的热数据 处理线程用于响应Host写的热数据;

所述的冷数据处理线程用于响应Host写以及固件task写的常规数据;固件 task模块指SSD内部数据搬移模块,但不包括WL模块;

所述的常规数据处理线程用于响应Host写以及寿命均衡写的冷数据。

本发明通过增加寿命均衡有限状态机和基于该状态机设计了多线程分别实 现冷数据、热数据和常规数据的读写操作,有效降低NVMeSSD的写放大,同时 高效地均衡NANDflash的擦除次数,以延长固态硬盘的使用寿命。

附图说明

图1是寿命均衡有限状态机状态转换示意图;

图2是三线程定义示意图;

图3是在WL0模式下的命令处理方式示意图;

图4是在WL1模式下的命令处理方式示意图;

图5是在WL2模式下的命令处理方式示意图;

图6是在WL3模式下的命令处理方式示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了快速推动支持PCIe接口的SSD,相应的NVMe(NVMExpress)协议诞生 了。NVMe协议从系统层面对用户数据的访问频率进行了分级,能有效地切入到 SSD内部固件设计相关模块,则可以更加高效地发挥数据均衡特性。

图1是寿命均衡有限状态机状态转换示意图,该有限状态机定义了WL0、WL1、 WL2和WL3四种状态,设计了寿命均衡有限状态机作为SSD固件设计的调度机制, 充分发挥寿命均衡特性。有限状态机在寿命均衡的四种不同工作状态下切换, 状态的切换严格如下表1寿命均衡有限状态机对照表定义的触发条件进行触发, 并调度开启对应的线程。

状态WL0定义为WL初始化状态,其触发条件为上电Poweron、复位Reset、 WL3状态调用初始化InitfromWL3,其开启如下线程Hot_Thread,MediumThread, Cold_Thread。

状态WL1定义为WL触发状态,其由WL0状态触发调用WListriggeredfrom WL0,开启如下线程Hot_Thread,Cold_Thread。

状态WL2定义为WL处理中状态,其由WL1状态触发调用WLisin processingfromWL1,开启如下线程Hot_Thread,Cold_Thread。

状态WL3定义为WL处理完状态,其由WL2状态触发调用或者是WL1执行中 出现异常情况触发直接进入WL处理完状态WLisdonefromWL2,orAbnormal handlefromWL1,开启如下线程Hot_Thread,Cold_Thread。

表1:寿命均衡有限状态机对照表

图2是三线程定义示意图,本实施例将SSD固件设计为自少包括以下三个线 程:

Hot_thread,用于响应Host写的热数据;

Medium_Thread,用于响应Host写以及固件task写的常规数据;固件task 模块指SSD内部数据搬移模块,但不包括WL模块。

Cold_Thread,用于响应Host写以及WL(wearleveling,寿命均衡)写的 冷数据。

每个数据块操作的起始与结束都加了一个时间戳Ts和Te,用于区分不同数 据块的数据新旧。

表2

表2是NVMExpressRevision1.2协议中关于当前写命令对应逻辑区块地 址LBA区间的访问频率定义,该协议标注了当前写命令对应LBA区间的访问频 率,可以对应到SSD固件设计的数据冷热等级:Hot,Medium,Cold。如可将数 值为0000b和0001b定义为Medium等级,0010b和0110b定义为Cold等级,其 它定义为Hot等级。

表1罗列出寿命均衡有限状态机对照表,从中可以查到不同状态间的切换 条件,以及开启的相关线程。下文基于表1与表2的定义,给出抽象出来的host 命令在不同状态机下的处理流程。

图3是在WL0模式下的命令处理方式示意图;在WL0模式下,host发送的 命令按冷热等级发送到对应的线程。对于长期在线业务而言,Medium_Thread还 会掺杂一笔固件task操作,例如垃圾回收。

图4是在WL1模式下的命令处理方式示意图;在WL1模式下,寿命均衡模 块被触发。由于Medium线程处于Hot与Cold之间,边缘数据的耦合性较强, 所以主动屏蔽Medium_Thread。Host数据块4与5写到Hot_Thread,数据块6 写到Cold_Thread。

图5是在WL2模式下的命令处理方式示意图;在WL2模式下,寿命均衡模 块正在运行,Medium_Thread依旧被屏蔽掉。Host数据块7与8写到Hot_Thread, 数据块9写到Cold_Thread。寿命均衡模块也会写入一笔长期沉淀下来的冷数据 (a)到Cold_Thread。

图6是在WL3模式下的命令处理方式示意图,在WL3模式下,寿命均衡模块 已经运行完成,Medium_Thread也被再次开启。Hot_Thread写满了host下发的 热数据与中间数据,Medium_Thread填充了host下发与固件task模块的中间数 据,Cold_Thread对应的数据块已经写满冷数据。

综上过程,按数据冷热等级写入不同线程的方式,可以有效降低NVMeSSD 的写放大。

host下发的冷数据块3,6,9与12一次性写到Cold_Thread上,不需寿命 均衡模块主动干预。这种写入方式,可以大大降低NVMeSSD的写放大。

host下发的中间数据块2与11也是一次性写到Medium_Thread上,不需要 固件task模块(此处,主要指垃圾回收)主动干预。这种写入方式,也可以有 效降低NVMeSSD的写放大。

以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利 范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依 本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号