[发明专利]一种提高固态硬盘中多流读出时性能的方法在审
申请号: | 201710371733.X | 申请日: | 2017-05-24 |
公开(公告)号: | CN107291631A | 公开(公告)日: | 2017-10-24 |
发明(设计)人: | 许毅;姚兰;郑春阳 | 申请(专利权)人: | 记忆科技(深圳)有限公司 |
主分类号: | G06F12/0877 | 分类号: | G06F12/0877 |
代理公司: | 广东广和律师事务所44298 | 代理人: | 叶新民 |
地址: | 518057 广东省深圳市南山区蛇口后海大道东角头厂房D*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 提高 固态 硬盘 中多流 读出 性能 方法 | ||
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种提高固态硬盘中多流读出时性能的方法。
背景技术
所谓预读机制指的是SSD检测到主机发起顺序读取流(顺序读取流由多个顺序读命令构成)时,在空闲期或前一读指令执行后自发先将后续的数据从Nand Flash预读到DRAM,待主机命令下发后直接从DRAM传输数据至主机,性能会大大提升。
主机一般都支持多任务系统,多任务存在同时访问固态硬盘的情况,当然也存在同一任务中交叉着多个对固态硬盘的访问。可能从单个应用或任务单独访问时为顺序读取指令,但混合在一起下发到固态硬盘。使得原本是多条顺序读取指令的混合在一起发往SSD后,SSD端接受到的将是一条乱序的读取流,图1是主机乱序下发命令示意图,假设主机准备下发两条顺序读取流,顺序流1为cmd0~5,这些命令的逻辑块地址LBA(Logical Block Address)是连续的;顺序流2为cmd6~11,这些命令的LBA也是连续的,主机将这两条流混合下发至SSD,SSD接收到将是一条乱序流:cmd0,cmd6,cmd1,cmd7,cmd2,cmd8,cmd3,cmd9,cmd4,cmd10,cmd5,cmd11。SSD现有技术中乱序的读取流,无法启用预读机制,所以每个读命令的数据都将从Nand Flash上读取,性能不高。
发明内容
针对以上缺陷,本发明目的是如何针对主机乱序下发指令的情况,提高固态硬盘预读机制触发频率。
为了解决以上问题本发明提出了一种提高固态硬盘中多流读出时性能的方法,其特征在于在固态硬盘的固件中增加了命令分离模块,命令分离模块初始时缓存一段时间内接收到的多条读流命令,将逻辑地址相邻的读流命令分离为同一顺序命令流,并记录顺序命令流的地址信息;命令分离模块后续新接收到读命令时,先根据读地址信息判定是属于已有的顺序命令流,如果是则加入对应的顺序命令流,如果否则重新建立一个新的顺序命令流。
所述的提高固态硬盘中多流读出时性能的方法,其特征在于命令分离模块中还包括回收模块,所述回收模块通过定期或者外部触发扫描已存在的顺序命令流,当顺序命令流超过预先设定的时间不存在更新时,则将删除对应的顺序命令流。
所述的提高固态硬盘中多流读出时性能的方法,其特征在于命令分离模块分离出的任意一个顺序命令流的命令数超过20~40个,优选30个时,则触发该顺序命令流的预读操作。
本发明通过对混合命令流进行分离,将临近一段时间内的读指令按照逻辑地址关系恢复为多个顺序流,尽可能利用固态硬盘的预读机制,实现提升主机混合下发顺序流的性能。
附图说明
图1是主机乱序下发命令示意图;
图2是分离后的主机乱序下发命令示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对主机乱序下发命令的情况,在固态硬盘的固件中增加了命令分离模块,命令分离模块初始时缓存一段时间内接收到的多条读流命令,将逻辑地址相邻的读流命令分离为同一顺序命令流,并记录顺序命令流的地址信息;命令分离模块后续新接收到读命令时,先根据读地址信息判定是属于已有的顺序命令流,如果是则加入对应的顺序命令流,如果否则重新建立一个新的顺序命令流。
图2是分离后的主机乱序下发命令示意图。同样以图1中的混合流为例,新增了由命令分离模块。
cmd0穿过命令分离模块时,命令分离模块为该命令形成顺序流1,该顺序流的最新LBA信息为cmd0的LBA信息。
cmd6穿过命令分离模块时,发现cmd6与存在的顺序流1不存在顺序关系,那么命令分离模块为cmd6形成顺序流2,该流的最新LBA信息为cmd6的LBA信息。
cmd1穿过命令分离模块时发现cmd1的LBA信息与流1的LBA信息形成顺序关系,那么则认为cmd1属于顺序流1,并用cmd1的LBA更新顺序流1的LBA信息。
以此类推,当cmd11穿过命令分离模块后,就分离(识别)出了主机的两条顺序流,SSD将对两条流分别启用预读机制,总体提升主机混合下发顺序流的性能。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于记忆科技(深圳)有限公司,未经记忆科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710371733.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于访问内存的方法和装置
- 下一篇:清理缓存数据的方法、装置以及终端设备