[发明专利]一种针对低队列深度的预读方法在审
申请号: | 202110881016.8 | 申请日: | 2021-08-02 |
公开(公告)号: | CN113655957A | 公开(公告)日: | 2021-11-16 |
发明(设计)人: | 詹利森;袁国华 | 申请(专利权)人: | 固存芯控半导体科技(苏州)有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 上海邦德专利代理事务所(普通合伙) 31312 | 代理人: | 梁剑 |
地址: | 215222 江苏省苏州市吴江区东太湖生态旅游度假区(*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 针对 队列 深度 方法 | ||
本发明提出一种针对低队列深度的预读方法,包括S1:根据SSD fl ash读取的反应时间和SSD循序读取的期望效能,计算出使低队列深度的循序读取效能不降低时所需的预读命令数量为n;S2:计算host写入读取命令中循序的数量;S3:判断是否应该启动预读流程:S4:启动预读流程,绘制预读表格,预读表格用于记录各预计读取命令对应的状态标记,S6:接收传输的数据;S7:host继续写入读取命令,判断是否继续预读流程。在本申请中,通过预读流程增加低队列深度的循序读取效能,增快处理速度,利用预读表格的内容及管理办法,有效降低预读流程的复杂度。同时,针对预读的时间点,预读的数据量,终止预读的时机以及后续清除缓存数据的做法,做完善的处理,使预读效率大幅提升。
技术领域
本发明涉及SSD读写效能领域,尤其涉及一种针对低队列深度的预读方法。
背景技术
为了增加SSD读写的效能,NVMe的协议中规范了每个命令队列都可同时发送65536个命令,这使SSD主控可以提早对NAND flash送出指令,大幅增加随机读取的效能,同时也对循序读取(Sequence Read)有很大的帮助。但现实世界有许多应用的队列深度(QueueDepth)非常低,甚至一次只传送一个命令给SSD,此时若没做特殊处理,将造成循序读取的效能降低许多。
发明内容
本发明的目的是为了提供一种针对低队列深度的预读方法,可以大幅提升低队列深度的循序读取效能。
为了实现上述目的,本发明提出一种针对低队列深度的预读方法,具体步骤如下:
S1:根据SSD flash读取的反应时间和SSD循序读取的期望效能,计算得出使低队列深度的循序读取效能不降低时所需的预读命令数量为n;
S2:host写入读取命令,并计算A读取命令中循序的读取命令的数量;
S3:判断是否应该启动预读流程:
若A读取命令中循序的读取命令的数量大于m,则进入S4;
若A读取命令中循序的读取命令的数量小于m,则进入S2;
S4:启动所述预读流程,并在SSD的FTL内绘制预读表格,所述预读表格用于记录各预计读取命令对应的状态标记,所述状态标记包括预读命令、确认命令、终止命令和缓存命令;
S5:是否接收到从FTL传输的数据:
若是,则进入S6;
若否,则进入S7;
S6:接收从FTL传输的数据,查询所述数据在所述预读表格内对应的状态标记:
若标记状态为确认命令时,所述数据发送至host;
若标记状态为终止命令时,所述数据被丢弃删除;
若标记状态为预读命令时,所述数据暂存在缓存空间中,并将所述预读表格内与所述数据对应的预计读取命令的标记状态改为缓存命令;
S7:host继续写入读取命令,判断C读取命令与Z读取命令是否属于循序读取的关系:
若是,则继续进行所述预读流程,并进入S8;
若否,则终止进行所述预读流程,并进入S2;
S8:根据所述预读表格内的与所述C读取命令对应的预计读取命令的状态标记,相应的清除所述预计读取命令或更改所述预计读取命令的状态标记,并进入S5;
其中:A读取命令为已写入的读取命令;C读取命令为正在写入的读取命令;Z读取命令为已写入的读取命令中最后一位的读取命令;预计读取命令为预计的未写入的读取命令。
进一步地,在S4中,所述预读表格的绘制步骤如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于固存芯控半导体科技(苏州)有限公司,未经固存芯控半导体科技(苏州)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110881016.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:通道密封装置及可密封锁紧的注液阀
- 下一篇:依据销售录音管理门店的方法及装置