一种提高固态硬盘混合读写性能的方法与流程

文档序号:11773928阅读:562来源:国知局
一种提高固态硬盘混合读写性能的方法与流程

本发明涉及固态硬盘控制技术,特别涉及一种提高固态硬盘混合读写性能的方法。



背景技术:

固态硬盘ssd一般都严格按照主机下发的读写命令顺序执行,单个命令的执行总时间有两部分组成,ssd固件准备buffer的时间t_sw,ssd硬件传输数据的时间t_hw。图1是常规混合读写命令处理时间消耗示意图;ssd中读命令需要从nandflash读出数据,所以buffer准备的时间t_sw_read较长,写命令由于cache的存在,buffer准备的时间t_sw_write较短。t_hw由命令的数据量决定,本专利中假设所有命令的数据量相等且数据间没有相关性。三个时间的大小关系为t_sw_read>t_hw>t_sw_write。而且固件与硬件是并行工作的,即硬件在传输数据的时候,固件可以准备其他命令的buffer。现假定主机下发四个命令read0,write1,read2,write3,数字表示时间顺序,这四个读写命令的总耗时由ssd固件的策略决定,现有技术为严格按照主机下发的命令顺序执行,总时间=2*t_sw_read+t_sw_write+2*t_hw。对于大多数的应用并不关心具体某一次的读或写的时间,而更关心一个组群读写操作总的执行时间。因此如果机械的按照主机下发的读写命令顺序执行,则存在一个组群读写操作总时间耗时较大的问题。



技术实现要素:

针对以上缺陷,本发明目的在于如何降低存在大量混合读写操作时总的响应时间。

为了解决以上问题本发明提出了一种提高固态硬盘混合读写性能的方法,其特征在于固态硬盘中增加命令重排序模块,命令重排序模块将时间间隔低于预先设定值的多个读命令和写命令进行缓存,并设置为同一命令组群,将同一命令组群的命令重新排序,先执行命令组群的写命令,再执行命令组群的读命令。

所述的提高固态硬盘混合读写性能的方法,其特征在于混合读写触发模块,所述混合读写触发模块接收主机下发的命令,当单位时间内接收到的命令数超过预先设定的阀值且同时包含读命令和写命令,则触发命令重排序模块,否则按照主机下发命令的顺序执行。

本发明通过简单的在固态硬盘中增加命令重排序模块,重新调整命令执行的顺序,即可实现整体上减少同一命令组群的的执行时间,达到提升混合读写命令性能的效果。

附图说明

图1是常规混合读写命令处理时间消耗示意图;

图2是改进后混合读写命令处理时间消耗示意图。

具体实施方式

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

图2是改进后混合读写命令处理时间消耗示意图,同样假定现假定主机下发四个命令read0,write1,read2,write3,命令重排序模块将这4个命令进行缓存,同时这4个命令的时间间隔小于预先设置的时间,因此将这4个命令设置为同一个命令组群,将同一命令组群的命令重新排序,先执行命令组群的写命令,再执行命令组群的读命令。重排序后的命令执行序列为write1,write3,read0,read2,按新排序的四个命令顺序执行,4个命令最后执行的总耗时=2*t_sw_read+2*t_sw_write+t_hw;严格按照主机下发的命令顺序执行,总时间=2*t_sw_read+t_sw_write+2*t_hw。因此相比现有技术总时间减少了(t_hw-t_sw_write)。因此通过对主机下发的混合读写命令进行重排序,可有效的提升混合读写命令的性能。

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



技术特征:

技术总结
本发明公开了一种提高固态硬盘混合读写性能的方法,其特征在于固态硬盘中增加命令重排序模块,命令重排序模块将时间间隔低于预先设定值的多个读命令和写命令进行缓存,并设置为同一命令组群,将同一命令组群的命令重新排序,先执行命令组群的写命令,再执行命令组群的读命令。通过简单的在固态硬盘中增加命令重排序模块,重新调整命令执行的顺序,即可实现整体上减少同一命令组群的执行时间,达到提升混合读写命令性能的效果。

技术研发人员:许毅;姚兰;郑春阳
受保护的技术使用者:记忆科技(深圳)有限公司
技术研发日:2017.05.24
技术公布日:2017.10.20
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1