[发明专利]提高NVMe SSD顺序数据读取性能的预读方法及系统有效

专利信息
申请号: 201810523295.9 申请日: 2018-05-28
公开(公告)号: CN108733583B 公开(公告)日: 2021-03-26
发明(设计)人: 束南山 申请(专利权)人: 至誉科技(武汉)有限公司
主分类号: G06F12/0862 分类号: G06F12/0862;G06F12/0853;G06F12/0875
代理公司: 武汉智权专利代理事务所(特殊普通合伙) 42225 代理人: 胡娟
地址: 430074 湖北省武汉市东湖新技术*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 提高 nvme ssd 顺序 数据 读取 性能 方法 系统
【说明书】:

发明公开了一种提高NVMe SSD顺序数据读取性能的预读方法及系统,涉及NVMe SSD顺序数据读取的技术领域。该方法包括如下步骤:将不同类型的顺序数据读取命令序列SQ中的命令,经仲裁后形成命令处理序列,并按照所述不同类型将命令分类;当同一类命令的前n个命令被读取时,从该类命令中第n+1个命令起,将其余命令对应的数据按顺序形成一个预读命令队列,存储在数据缓存中,以供后续读取。该系统包括:命令预取模块、命令处理模块和数据预读模块。本发明能够对命令处理队列内的命令进行分类处理,使预读方法生效,保证将数据提前加载到高速缓存中,提高顺序数据的读取性能,延长SSD的使用寿命。

技术领域

本发明涉及NVMe SSD顺序数据读取的技术领域,具体是涉及一种提高NVMe SSD顺序数据读取性能的预读方法及系统。

背景技术

硬盘,包括HDD(Hard Disk Drive,机械硬盘)和SSD(Solid State Drive,固态硬盘),其中,SSD由若干个NAND FLASH阵列组成的数据存储设备。为了提高顺序数据读取的性能,通常会在其固件中设计预读方法,通过对计算机主机HOST发来的命令序列进行分析,当监测到顺序数据读取操作时,固件会提前将HOST即将要读取的数据从访问速度相对较慢的非易失性存储介质中加载到硬盘内部高速缓存中。当HOST后续发来的数据读取命令命中高速缓存时,固件会直接从缓存中将数据传送给HOST,减少由于访问低速非易失性存储介质而导致的命令延迟增加和带宽下降。

在现有的预读方法设计中,固件在判定一个HOST命令序列是不是顺序数据读取操作时,主要是看是不是都是HOST读命令,以及前后命令的起始LBA和Data Block数量,当后一笔命令的起始LBA和前一笔命令的结束LBA连续时,即可判定为顺序数据读取命令序列,此时预读方法生效,启动数据预读操作。为了维护数据预读的上下文,通常会设计一条数据预读队列来管理数据预读操作的状态,固件在处理后续HOST数据读命令时,通过查询这条数据预读队列来判定该命令是否命中高速缓存。

以图1的NVMe SSD为例,NVMe(NVM(Non-Volatile Memory)Express),一种基于PCIe(PCI Express)数据传输的SSD接口协议。图中,Single Function是具有单一功能单元的PCIe设备,HOST为该NVMe SSD创建了N条SQ(Submission Queue,命令序列)负责向SSD发送命令。其中,SQ 0为Admin Submission Queue,负责向SSD发送Admin命令,其他SQ为I/OSubmission Queue,负责向SSD发送I/O命令。NVMe控制器会根据预先设定的仲裁规则从命令队列SQ 0~SQ N中获取命令并通过命令处理队列(Command ProcessQueue)发送给命令处理模块(Command Processor)进行处理。

图1中,HOST端应用程序或系统服务进程通过SQ 1给SSD发送数据读取命令,其他SQ为空闲状态,没有命令需要处理。NVMe控制器将SQ 1中的命令取出来并通过命令处理队列送给命令处理模块进行处理,当命令处理模块发现命令A0的结束LBA(Logical BlockAddress,数据逻辑区块地址)和命令A1的起始LBA连续时,预读方法生效,并在处理完命令A1之后,通知数据预读模块(Read Ahead)将HOST命令A2、A3、…相关的数据从NAND FLASH中提前加载到高速缓存中。当命令处理模块开始处理HOST命令A2时,发现其数据命中高速缓存,直接从相应的缓存位置将HOST命令A2所对应的数据传给HOST。同时,预读模块继续从NAND FLASH加载新的数据以保证后续HOST命令能够继续命中缓存。

上述预读方法是目前SSD(包括SATA SSD和NVMe SSD)固件中最为常见的设计,该策略对提升SSD顺序数据读取性能有极大的帮助。该设计对只有一条HOST命令队列的SATASSD来说,已经完全满足要求,但是对于拥有多条HOST命令队列的NVMe SSD来说,这种预读方法在某些情况下,尤其是在HOST端应用程序或系统服务进程对SSD并发访问较为频繁的情况下,预读方法不能生效,导致顺序数据读取性能下降。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于至誉科技(武汉)有限公司,未经至誉科技(武汉)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201810523295.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top