一种提高固态硬盘中顺序读取流性能的方法及固态硬盘与流程

文档序号:11776329阅读:238来源:国知局
一种提高固态硬盘中顺序读取流性能的方法及固态硬盘与流程

本发明涉及固态硬盘控制技术,特别涉及一种提高固态硬盘中顺序读取流性能的方法及固态硬盘。



背景技术:

固态硬盘的顺序读性能是固态硬盘的重要性能指标,对于器件固有响应时间很难进行改进,一般只能通过硬件设计更改进行优化,因此较为困难。固态硬盘内设有内部控制器,实现与主机host通讯,接受主机的控制指令,完成对固态硬盘存储介质的访问。一般情况下内部还设有dram缓存,用于缓存主机host下发的写入数据的缓存和用于缓存主机从固态硬盘存储介质中读取的用户数据。一般都是根据主机host要求的地址进行操作,属于串行操作。图1是常规数据读取的流程示意图,主机下发读命令后,ssd才能启动nandflash到dram,dram到host的数据传输。其中数据从nandflash到dram与数据从dram到host理论上是并行的,但是他们传输启动点是不一致的,因为数据从nandflash到dram之后,才能启动dram到host的传输,所以dram到host的启动点会稍晚一点。为方便描述,假设nandflash到dram数据传输速度等于dram到host的数据传输速度。假设主机下发多个顺序读命令1,2,3,4,5,6,7,……,每个命令的大小一样,顺读命令实际执行时从dram反馈给主机的数据都具有一定的延时,因此整体的顺序读取的性能不佳。



技术实现要素:

针对以上缺陷,本发明目的如何提高固态硬盘读操作的速度,提速固态硬盘性能。

为了解决以上问题本发明提出了一种提高固态硬盘中顺序读取流性能的方法,其特征在于固态硬盘控制器接收到主机读数据指令后,先在硬盘缓存中查找是否存在所需读取的数据,如果有直接从硬盘缓存中将数据返回给主机;如果固态缓存中不存在则触发从固态硬盘读取数据的操作;同时将读数据指令访问的逻辑地址相邻特别是后续的数据预先读取到硬盘缓存中,实现数据预缓存。

所述的提高固态硬盘中顺序读取流性能的方法,其特征在于所述固态硬盘的缓存中至少设置有一个缓存数据信息列表,固态硬盘接收到主机读数据指令后通过检索缓存数据信息列表快速判断硬盘缓存中是否存在所需读取的数据;所有从固态硬盘中读取到硬盘缓存的操作都包括将读缓存数据信息更新到缓存数据信息列表中。

所述的提高固态硬盘中顺序读取流性能的方法,其特征在于将硬盘缓存的数据返回给主机后,立即将该数据所对应的硬盘缓存空间进行回收,并更新缓存数据信息列表。

所述的提高固态硬盘中顺序读取流性能的方法,其特征在于所述缓存数据信息列表中包括各个缓存数据的存入时间。

所述的提高固态硬盘中顺序读取流性能的方法,其特征在于所述固态硬盘控制器上还包括缓存回收程序,所述缓存回收程序根据缓存数据的存入时间,将缓存时间超过预先设定的时间的硬盘缓存空间进行回收。

一种固态硬盘,其特征在于采用了权利要求1至5任意一项所述的提高固态硬盘中顺序读取流性能的方法提高固态硬盘的顺序读性能。

本发明通过分析主机应用程序访问数据的特点,其存在大量的顺序读操作,将当前读指令顺序相邻的数据预缓存到固态缓存中,大概率减少后续指令数据读取响应时间,提升固态硬盘读取的性能,尤其是在顺序读取中。

附图说明

图1是常规数据读取的流程示意图;

图2是改进后数据读取的流程示意图。

具体实施方式

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

经过分析大比例的app应用也就是主机对固态硬盘的数据访问,大多存在顺序逻辑地址lba数据的数据读取,因此如果可以提升顺序数据读取的速度,将可以对固态硬盘的读性能有较大提升。

因此提出了一种提高固态硬盘中顺序读取流性能的方法,在于所述固态硬盘的缓存中至少设置有一个缓存数据信息列表,固态硬盘接收到主机读数据指令后通过检索缓存数据信息列表快速判断硬盘缓存中是否存在所需读取的数据;如果有直接从硬盘缓存中将数据返回给主机;如果固态缓存中不存在则触发从存储介质读取数据的操作;同时将读数据指令访问的逻辑地址相邻的逻辑地址上的多块数据预先读取到固态硬盘的硬盘缓存中,实现数据预缓存。所有从固态硬盘中读取到硬盘缓存的操作都包括将读缓存数据信息更新到缓存数据信息列表中。将硬盘缓存的数据返回给主机后,立即将该数据所对应的硬盘缓存空间进行回收,并更新缓存数据信息列表。

为了进一步优化固态硬盘缓存,如果预缓存的数据在一段时间内都无访问,则其近期被访问的概率将降低,因此缓存数据信息列表中还包括了各个缓存数据的存入时间。缓存回收程序根据缓存数据的存入时间,将缓存时间超过预先设定的时间的硬盘缓存空间进行回收。

图2是改进后数据读取的流程示意图;固态硬盘ssd预先把后面的数据从nandflash上读到dram,待后续的顺序读命令下发到ssd后,直接进行dram到host的数据传输。

依然假设主机下发多个顺序读命令1,2,3,4,5,6,7,8,9……,每个命令的大小一样。ssd在接收到命令2时发现它和之前的命令1的lba区间是顺序的,那么猜测之后的命令也是顺序的,则ssd后台启动nandflash到dram的数据传输,把后续的数据预先读到dram中,待后续的顺序读命令下发到ssd后,发现数据已在dram中准备好了,则直接从dram中拿数据,大大提升了顺序读性能。这些命令的执行情况见图2。从图中可以看出这些命令的总体执行时间具有较大的缩短。

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



技术特征:

技术总结
本发明一种提高固态硬盘中顺序读取流性能的方法及固态硬盘,其特征在于固态硬盘控制器接收到主机读数据指令后,先在硬盘缓存中查找是否存在所需读取的数据,如果有直接从硬盘缓存中将数据返回给主机;如果固态缓存中不存在则触发从存储介质读取数据的操作;同时将读数据指令访问的逻辑地址相邻特别是后续的数据预先读取到硬盘缓存中,实现数据预缓存。通过分析主机应用程序访问数据的特点,其存在大量的顺序读操作,将当前读指令顺序相邻的数据预缓存到固态缓存种,大概率减少后续指令数据读取响应时间,提升固态硬盘读取的性能,尤其是在顺序读取中。

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