首页 > 专利 > 杭州电子科技大学 > 一种固态硬盘读写请求并行处理方法专利详情

一种固态硬盘读写请求并行处理方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2019-07-09
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2019-12-24
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2021-07-20
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2039-07-09
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201910614795.8 申请日 2019-07-09
公开/公告号 CN110515859B 公开/公告日 2021-07-20
授权日 2021-07-20 预估到期日 2039-07-09
申请年 2019年 公开/公告年 2021年
缴费截止日
分类号 G06F12/02G06F12/0882G06F12/0895 主分类号 G06F12/02
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 0
权利要求数量 1 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2018.01.25罗勇.基于混合缓存机制的垃圾回收策略研究《.中国优秀硕士学位论文全文数据库 信息科技辑》.2018,(第1期),杜晨杰.缓冲区管理层对固态盘的有效性研究《.浙江万里学院学报》.2017,第30卷(第2期),;
引用专利 US2018024779A 被引证专利
专利权维持 3 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 姚英彪、孔小冲、范金龙、冯维、许晓荣、刘兆霆、徐欣 第一发明人 姚英彪
地址 浙江省杭州市下沙高教园区2号大街 邮编 310018
申请人数量 1 发明人数量 7
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州君度专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
朱月芬
摘要
本发明公开了一种固态硬盘读写请求并行处理方法。本发明由地址映射模块、通道分配模块、通道队列模块、待处理队列模块、数据缓冲区和垃圾回收模块六部分组成。在预处理过程中,对于读写请求,计算对应的读写通道,然后发送到通道对应的读写队列;在闪存访问过程中,根据请求到达顺序从各个通道的读写队列中并行调度;对于垃圾回收,采用主动与被动相结合的方式,以减少垃圾回收对固态硬盘读写性能的影响。本发明利用固态硬盘内部的通道级并行结构,以页为单位,通过合理调度以实现数据写入和读出最大化并行,从而极大程度减少请求的平均响应时间,提升系统整体性能。
  • 摘要附图
    一种固态硬盘读写请求并行处理方法
  • 说明书附图:图1
    一种固态硬盘读写请求并行处理方法
  • 说明书附图:图2
    一种固态硬盘读写请求并行处理方法
  • 说明书附图:图3
    一种固态硬盘读写请求并行处理方法
  • 说明书附图:图4
    一种固态硬盘读写请求并行处理方法
  • 说明书附图:图5
    一种固态硬盘读写请求并行处理方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-07-20 授权
2 2019-12-24 实质审查的生效 IPC(主分类): G06F 12/02 专利申请号: 201910614795.8 申请日: 2019.07.09
3 2019-11-29 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种固态硬盘读写请求并行处理方法,其特征在于
包括预处理、闪存访问和垃圾回收三个过程,且三个过程可并行执行,其具体步骤如下:
当有新的读写请求到达,且待处理队列不满时,触发预处理流程;
当待处理队列不为空时,触发闪存访问流程;
垃圾回收过程由垃圾回收模块完成,采用主动垃圾回收和被动垃圾回收相结合的方式;当待处理对列为空且某个通道内空闲块的数量小于阈值TH1时,触发主动垃圾回收操作;当在执行闪存访问操作时,某个通道内空闲块的数量小于阈值TH2时,暂停闪存访问操作,触发被动垃圾回收操作;进一步的,所述的垃圾回收操作的具体方式是选择该通道下包含最多无效页的数据块作为无效块,将无效块中的有效页迁移至同一个通道内的空闲块中,然后将无效块擦除;此外,为尽量少触发被动垃圾回收操作,TH1应该大于TH2;
预处理流程实现步骤如下:
P
1.判断到达请求类型:若是读请求,执行P2;否则为写请求,执行P4;
P
2.调用地址映射模块,访问地址映射表,获取读请求每个逻辑页对应的物理页号PPN;
P
3.调用通道分配模块,根据每个页的PPN得到其所在的闪存通道,然后将每个页插入对应闪存通道的读队列的队尾,执行P6;
P
4.调用地址映射模块的页分配模块,采用异地更新策略,为写请求的每个页分配新的物理页号PPN,并更新地址映射表,执行P5;
P
5.调用通道分配模块,根据每个页的PPN得到其所在的闪存通道,然后将每个页插入对应闪存通道的写队列的队尾,最后执行P6;
P
6.将该请求插入到待处理队列的队尾,结束本次预处理;
闪存访问流程实现步骤如下:
A
1.判断待处理队列队首请求类型:若是读请求,执行A2;否则,执行A5;
A
2.判断请求队列队首读请求是否执行完成:若是,执行A4,否则执行A3;
A
3.将所有通道读队列队首的页从闪存中读出到数据缓冲区中,然后剔除所有通道读队列的队首,执行A2;
A
4.合并数据缓冲区中来自同一请求的读数据,并响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作;
A
5.判断请求队列队首写请求是否执行完成:若是,执行A7,否则执行A6;
A
6.将所有通道写队列队首的请求写入对应通道下的物理页,同时剔除所有通道写队列的队首,执行A5;
A
7.响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作;
预处理流程P4步骤中的写请求的页分配方法的具体流程如下:
P
41.计算每个通道闪存块的擦除次数,按擦除次数从小到大进行排序;
P
42.将写请求需要的物理页数N表示成N=n*C+q的形式,C为通道数,n为N/C的商,q为N/C的余数;
P
43.按照擦除次数最小的通道优先分配写和最大化通道并行写的策略,先给每个通道分配n个页写,以实现最大化并行写;然后将q个页写分配给擦除次数最小的前q个通道,以均衡每个通道的磨损程度;
该方法涉及地址映射模块、通道分配模块、通道队列模块、待处理队列模块、数据缓冲区和垃圾回收模块;地址映射模块负责实现请求的逻辑地址到物理地址的映射,采用页级映射方式,由地址映射表和页分配模块组成;通道分配模块负责计算请求中每个页实际需要访问的通道;通道队列模块由每个通道的队列组成,每个通道的队列分为读请求队列和写请求队列,读写访问请求以页为单位插入到通道的读写队列;待处理队列保存通道分配完成、但实际闪存读写未全部完成的请求,按先进先出的方式完成待处理队列的调度;数据缓冲区用来暂存从闪存中读出的数据;垃圾回收模块负责固态硬盘无效块的回收,完成垃圾回收操作。
说明书

技术领域

[0001] 本发明属于固态硬盘固件优化设计领域,具体涉及了一种固态硬盘读写请求并行处理方法。

背景技术

[0002] 随着云计算、移动互联网等新一代信息技术的快速发展,数据量呈现指数增长的趋势,因此对数据的存储速度和带宽提出了更高的要求。基于NAND闪存的固态硬盘由于其高性能、低功耗、无噪声等诸多优点称为目前主流的存储设备之一。
[0003] 固态硬盘采用的NAND闪存具有以下特点:1)以页(page)、块(block)、平面(plane)、晶圆(die)从小到大嵌套组成。2)基本操作分为:读、写、擦除,读与写以页为单位,擦除以块为单位。3)读、写、擦除三种操作的响应时间不同,读最快,写次之,擦除最慢。4)写入数据前必须进行擦除,不支持原地更新。5)擦除次数有限,超过一定的擦除次数,NAND闪存的整体性能就会大幅下降,使用寿命有限。
[0004] 由于闪存芯片独特的操作特点,固态硬盘需要在固件中增加闪存转换层(Flash Translation Layer,FTL)来管理数量众多的闪存芯片。闪存转换层将固态硬盘模拟成只具有读写操作的传统硬盘,将上层文件系统的读写请求转换为闪存的操作命令。具体来说,闪存转换层需要完成逻辑地址与物理地址之间的映射,控制各个闪存芯片的磨损均衡,对无效的数据进行垃圾回收。
[0005] 固态硬盘内部拥有丰富的内部并行机制。一般的固态硬盘由多个独立通道组成,每个独立通道连接多个独立的闪存芯片;每个芯片包含多个晶圆;每个晶圆包含多个平面;每个平面包含多个块,每个块包含多个页。因此固态硬盘内部包括通道级并行、芯片级并行、晶圆级并行和平面级并行。在闪存转换层对请求处理的过程中,利用闪存内部并行机制,让读写请求并行地访问闪存,将大幅度减少请求响应时间。

发明内容

[0006] 针对上述现有技术的不足之处,本发明公布一种固态硬盘读写请求并行处理方法。本发明利用固态硬盘内部的通道级并行结构,以页为单位,通过合理调度以实现数据写入和读出最大化并行,从而极大程度减少请求的平均响应时间,提升系统整体性能。
[0007] 为实现本发明的目的,本发明采用以下技术方案:
[0008] 一种固态硬盘读写请求并行处理方法,它由地址映射模块、通道分配模块、通道队列模块、待处理队列模块、数据缓冲区和垃圾回收模块六部分组成。地址映射模块负责实现请求的逻辑地址到物理地址的映射,采用页级映射方式,由地址映射表和页分配模块组成;通道分配模块负责计算请求中每个页实际需要访问的通道;通道队列模块由每个通道的队列组成,每个通道的队列分为读请求队列和写请求队列,读写访问请求以页为单位插入到通道的读写队列;待处理队列保存通道分配完成、但实际闪存读写未全部完成的请求,按先进先出的方式完成待处理队列的调度;数据缓冲区用来暂存从闪存中读出的数据;垃圾回收模块负责固态硬盘无效块的回收,完成垃圾回收操作。
[0009] 一种固态硬盘读写请求并行处理方法,其处理流程包括预处理,闪存访问和垃圾回收三个过程,且三个过程可并行执行,其具体步骤如下。
[0010] 当有新的读写请求到达,且待处理队列不满时,触发预处理流程,其具体工作过程如下:
[0011] P1,判断到达请求类型:若是读请求,执行P2;否则为写请求,执行P4。
[0012] P2,调用地址映射模块,访问地址映射表,获取读请求每个逻辑页对应的物理页号PPN。
[0013] P3,调用通道分配模块,根据每个页的PPN得到其所在的闪存通道,然后将每个页插入对应闪存通道的读队列的队尾,执行P6。
[0014] P4,调用地址映射模块的页分配模块,采用异地更新策略,为写请求的每个页分配新的物理页号PPN,并更新地址映射表,执行P5。
[0015] P5,调用通道分配模块,根据每个页的PPN得到其所在的闪存通道,然后将每个页插入对应闪存通道的写队列的队尾,最后执行P6。
[0016] P6,将该请求插入到待处理队列的队尾,结束本次预处理。
[0017] 当待处理队列不为空时,触发闪存访问流程,其具体工作过程如下:
[0018] A1,判断待处理队列队首请求类型:若是读请求,执行A2;否则,执行A5。
[0019] A2,判断请求队列队首读请求是否执行完成:若是,执行A4,否则执行A3。
[0020] A3,将所有通道读队列队首的页从闪存中读出到数据缓冲区中,然后剔除所有通道读队列的队首,执行A2。
[0021] A4,合并数据缓冲区中来自同一请求的读数据,并响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作。
[0022] A5,判断请求队列队首写请求是否执行完成:若是,执行A7,否则执行A6。
[0023] A6,将所有通道写队列队首的请求写入对应通道下的物理页,同时剔除所有通道写队列的队首,执行A5。
[0024] A7,响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作。
[0025] 垃圾回收过程由垃圾回收模块完成,采用主动垃圾回收和被动垃圾回收相结合的方式。当待处理对列为空且某个通道内空闲块的数量小于阈值TH1时,触发主动垃圾回收操作。当在执行闪存访问操作时,某个通道内空闲块的数量小于阈值TH2时,暂停闪存访问操作,触发被动垃圾回收操作。进一步的,所述的垃圾回收操作的具体方式是选择该通道下包含最多无效页的数据块作为无效块,将无效块中的有效页迁移至同一个通道内的空闲块中,然后将无效块擦除。此外,为尽量少触发被动垃圾回收操作,TH1应该大于TH2。
[0026] 进一步的,所述的预处理流程P4步骤中的写请求的页分配方法的具体流程如下:
[0027] P41,计算每个通道闪存块的擦除次数,按擦除次数从小到大进行排序;
[0028] P42,将写请求需要的物理页数N表示成N=n*C+q的形式(C为通道数,n为N/C的商,q为N/C的余数);
[0029] P43,按照擦除次数最小的通道优先分配写和最大化通道并行写的策略,先给每个通道分配n个页写,以实现最大化并行写;然后将q个页写分配给擦除次数最小的前q个通道,以均衡每个通道的磨损程度。
[0030] 本发明与现有技术相比有益效果是:
[0031] 本发明提出的固态硬盘读写请求并行处理方法利用固态硬盘通道级并行结构,最大化读写请求的并行度。在预处理过程中,对于读写请求,计算对应的读写通道,然后发送到通道对应的读写队列;在闪存访问过程中,根据请求到达顺序从各个通道的读写队列中并行调度;对于垃圾回收,采用主动与被动相结合的方式,以减少垃圾回收对固态硬盘读写性能的影响。此外,在写请求的通道分配过程中,兼顾通道并行和磨损均衡。与已有的闪存转换层技术相比,本发明公布的方法能够大幅度减少请求执行时间,提升固态硬盘的读写性能。

实施方案

[0037] 为了使本领域技术人员能更好地理解本发明的技术方案,下面将结合附图以及具体实施方式,对本发明进行详细的介绍说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0038] 此外,本发发明假设了上层文件系统对固态硬盘进行读写的最小单位为1个闪存页,即整页进行读或写。实际系统中,文件系统对固态硬盘进行读写的最小单位为1个扇区。通过对齐操作,可以很方便的将扇区访问转换为页访问,此发明中对此不再累述。
[0039] 本发明提出的固态硬盘读写请求并行处理方法,由地址映射模块、通道分配模块、通道队列模块、待处理队列模块,数据缓冲区和垃圾回收模块六部分组成,如图1所示。
[0040] 地址映射模块负责实现请求的逻辑地址到物理地址的映射,采用页级映射方式,由地址映射表和页分配模块组成。其中地址映射表记录逻辑页和物理页之间的映射关系,页分配模块给写请求分配新的物理页。读请求到来时,通过地址映射模块的地址映射表获取逻辑页对应的物理页;写请求到来时,通过地址映射模块的页分配模块对写请求中每个逻辑页分配新的物理页,并更新地址映射表。
[0041] 通道分配模块负责计算请求中每个页实际需要访问的通道。通道分配模块根据地址映射模块得到的物理页号计算每个页对应的通道,并将其插入对应通道的读写队列。
[0042] 通道队列模块由每个通道的队列组成,每个通道的队列又分为读请求队列和写请求队列,通道分配模块将读写访问请求以页为单位插入到通道的读写队列。
[0043] 待处理队列保存通道分配完成、但实际闪存读写未全部完成的请求,按先进先出的方式完成待处理队列的调度。
[0044] 数据缓冲区用来暂存从闪存中读出的数据。
[0045] 垃圾回收模块用来完成垃圾回收过程,采用主动垃圾回收和被动垃圾回收相结合的方式。
[0046] 本发明提出的固态硬盘读写请求并行处理方法,在实际处理访问请求时,涉及到预处理,访问闪存和垃圾回收三个过程。这三个过程的触发条件和处理流程如下:
[0047] 当有新的读写请求到达,且待处理队列不满时,触发预处理流程,其流程如图2所示,具体工作过程如下:
[0048] 步骤1,判断到达请求类型:若是读请求,执行步骤2;否则为写请求,执行步骤4。
[0049] 步骤2,调用地址映射模块,访问地址映射表,获取读请求每个逻辑页对应的物理页号PPN。
[0050] 步骤3,调用通道分配模块,根据每个页的PPN得到对应的闪存通道,然后将每个页插入到对应的闪存通道的读队列的队尾,最后执行步骤6。
[0051] 步骤4,调用地址映射模块的页分配模块,采用异地更新策略,为写请求的每个页分配新的物理页号PPN,并更新地址映射表,执行步骤5。
[0052] 步骤5,调用通道分配模块,根据每个页的PPN得到对应的闪存通道,然后将每个页插入对应闪存通道的写队列的队尾,最后执行步骤6。
[0053] 步骤6,将该请求插入到待处理队列的队尾,结束本次预处理。
[0054] 进一步,所述的步骤4中的写请求的页分配方法的具体流程如下:
[0055] P41,计算每个通道闪存块的擦除次数,按擦除次数从小到大进行排序;
[0056] P42,将写请求需要的物理页数N表示成N=n*C+q的形式(C为通道数,n为N/C的商,q为N/C的余数);
[0057] P43,按照擦除次数最小的通道优先分配写和最大化通道并行写的策略,先给每个通道分配n个页写,以实现最大化并行写;然后将q个页写分配给擦除次数最小的前q个通道,以均衡每个通道的磨损程度。
[0058] 当待处理队列不为空时,触发闪存访问流程,其实现流程如图3所示,具体工作过程如下:
[0059] 步骤1,判断待处理队列队首请求类型:若是读请求,执行步骤2;否则,执行步骤5。
[0060] 步骤2,判断请求队列队首读请求是否执行完成:若是,执行步骤4,否则执行步骤3。
[0061] 步骤3,将所有通道读队列队首的页从闪存中读出到数据缓冲区中,然后剔除所有通道读队列的队首,执行步骤2。
[0062] 步骤4,合并数据缓冲区中来自同一请求的读数据,并响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作。
[0063] 步骤5,判断请求队列队首写请求是否执行完成:若是,执行步骤7,否则执行步骤6。
[0064] 步骤6,将所有通道写队列队首的请求写入到对应通道下的物理页中,同时剔除所有通道写队列的队首,执行步骤5。
[0065] 步骤7,响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作。
[0066] 当待处理对列为空,且某个通道内空闲块的数量小于阈值TH1时,触发主动垃圾回收操作。当在进行闪存访问操作,且某个通道内空闲块的数量小于阈值TH2时,暂停闪存访问操作,触发被动垃圾回收操作。实际垃圾回收操作是选择该通道下包含最多无效页的数据块作为无效块,将无效块中的有效页迁移至同一个通道内的空闲块中,然后将无效块擦除。此外,为尽量少触发被动垃圾回收操作,TH1应该大于TH2。
[0067] 为了对本发明的并行处理流程进行进一步解释,结合具体的实际请求进行说明。为了方便描述,假设闪存通道数C=4,每个通道的闪存阵列包含128个物理页,即1‑128号物理页对应通道1,129‑256号物理页对应通道2,257‑384号物理页对应通道3,385‑512号物理页对应通道4。请求队列和通道读写队列都为空,通道按照闪存块擦除次数由小到大排列为
4,3,2,1。
[0068] 实施例1:预处理操作。
[0069] 队列中的预处理操作如图4所示。请求R1,W1,R2按照时间顺序到达,此处R代表读请求,W代表写请求,数字代表到达顺序。其处理过程如下所示:
[0070] C1,待处理队列未满,开始执行请求预处理操作,读请求R1(78,2)。此处78代表访问操作的开始逻辑页号,2代表访问两个页(下同)。根据图4所示的地址映射表,可得到实际需要访问的物理页号是66和301,执行C2。
[0071] C2,物理页66,301分别在通道1,3。通道分配模块将其分别插入通道1和通道3的读队列,执行C3。
[0072] C3,待处理队列未满,继续执行请求预处理操作,写请求W1(236,5)。地址映射模块将W1中前4个页分配到4个通道中,第5个页分配到通道4中。假设分配信息为236‑103,237‑247,238‑331,239‑500,240‑501。将映射信息更新至地址映射模块,执行C4。
[0073] C4,物理页103,247,331,500,501分别在通道1,2,3,4,4。通道分配模块将其分别插入通道1,通道2,通道3,通道4的写队列,执行C5。
[0074] C5,待处理队列未满,继续执行请求预处理操作,读请求R2(126,3)。访问地址映射模块得到地址映射信息为126‑79,127‑210,128‑407,执行C6。
[0075] C6,物理页79,210,407分别在在通道1,2,4。通道分配模块将其分别将其插入通道1,通道2和通道4的读队列,执行C7。
[0076] C7,待处理队列未满,但无后续请求,预处理操作执行结束。
[0077] 实施例2:闪存访问操作。
[0078] 队列中的读请求处理情况如图5所示,其处理过程如下所示:
[0079] C1,待处理队列不为空,队首为读请求R1,且R1未执行完成,因此读出4个通道读队列的队首页号,即分别从4个通道读出物理页66,210,301,407至数据缓冲区。将4个通道读队列队首请求剔除,此时R1执行完成,将R1从待处理队列剔除,合并缓冲区中R1的物理页66和301并上传,执行C2。
[0080] C2,待处理队列不为空,队首为读请求W1,且W1未执行完成,因此写入4个通道写队列队首,分别将数据写入4个通道下的103,247,331,500物理页。将4个通道写队列队首请求剔除,执行C3。
[0081] C3,待处理队列不为空,队首为读请求W1,且W1未执行完成,因此写入4个通道写队列队首,只有通道4的写队列不为空,将数据写入通道4下的501物理页。将通道4写队列队首剔除,此时W1执行完成,将W1从待处理队列剔除,执行C4。
[0082] C4,待处理队列不为空,队首为读请求R2,且R2未执行完成,因此读出4个通道读队列队首,只有通道1的读队列不为空,从通道1读出物理页79。将通道1读队列队首剔除,此时R2执行结束,将R2从待处理队列剔除,合并缓冲区中的物理页79,210,407并上传,执行C5。
[0083] C5,待处理队列为空,执行结束。
[0084] 以上所述仅为本发明的优先实施例而已,并不用于限制本发明,对本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同的替换、改进等,均应包含在本发明的保护范围之内。

附图说明

[0032] 图1:本发明的总体框架图
[0033] 图2:本发明的预处理过程流程图
[0034] 图3:本发明的闪存访问过程流程图
[0035] 图4:本发明的预处理过程的具体案例
[0036] 图5:本发明访问闪存过程的具体案例
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号