一种用于降低固态存储读延迟的操作方法与流程

文档序号:12063289阅读:205来源:国知局

本发明涉及固态存储技术领域,尤其涉及一种用于降低固态存储读延迟的操作方法。



背景技术:

在这个大数据迅速膨胀的时代,企业级存储系统或者数据库使用范畴中,对存储设备的需求和各种要求也迅速提高。而其中主机对于存储系统数据响应的要求尤为重要,这会直接影响到用户数据的效率和整体设备的性能。因此,专门定义了最大响应时间和平均响应时间以及响应时间内读写操作分布百分比来对此做描述。NAND flash由于其大容量,低价格,可靠性强,使用环境要求很低而广泛应用于存储领域,特别是其低功耗,高性能,高稳定性而越来越被存储系统广泛接受和应用。然而,由于NAND介质的物理特征,自身又存在一些操作特点,例如基于物理块的擦除,按照物理页写入数据,按照物理页读出数据,以及在这些特点之上带来了物理块擦除,物理写入以及物理页读取的延迟等问题。

NAND flash操作中带来的延迟问题特别是page写入和page擦除,时间延迟动辄几百个微秒甚至几个毫秒的量级,这对于很多企业级存储系统是不可容忍的,因此如何解决数据响应时间问题变得尤为重要。当主机向固态存储设备发送写操作时,一般设备会采用内置缓存的方式,将主机的写数据写入缓存中即向主机返回写操作完成,然后再采用缓存管理和淘汰机制,将缓存中的有效写数据写入NAND flash介质中,这种机制可以有效地降低固态存储设备返回给主机的写延迟,解决了写数据响应时间的问题。但是,对于读操作的数据响应时间一直都没有非常高效的解决方法。这是因为固态存储设备读操作面临的读延迟环境比较复杂,NAND flash的自身读操作延迟为几十微秒到上百微秒,仅仅只是介质的读操作延迟,存储系统主机还可以接受,但是,除此之外还会遇到固态存储设备的控制器CPU繁忙需等待,或者遇到NAND介质正在进行page写操作或者page擦除操作,或者前面有命令队列需要等待等复杂环境。特别是如果是在某些极端情况下,有可能是复杂情况的叠加状况也非常有可能的。因此,对于这些极端情况下,读操作的延迟可能是几十甚至上百毫秒的级别,这对于存储系统将是致命的不可接受的结果。



技术实现要素:

本发明的目的在于克服上述现有技术的不足之处,而提供一种用于降低固态存储读延迟的操作方法。它通过固件和硬件结合的方式,用于解决NAND固态存储设备读操作数据响应的延迟过长的问题。

为了实现上述目的,本发明提供了一种用于降低固态存储读延迟的操作方法,其特征在于:固件通过CPU向NAND控制器发送常规操作命令队列,NAND控制器经过仲裁机制从命令队列中取出命令,然后向NAND flash发送命令,并通过数据通路向NAND flash发送或者读取数据,同时将固件此前向命令队列发送的page写操作或者page擦除操作的NAND介质的状态和NAND控制器的状态反馈给CPU,再通过Bypass命令队列向NAND控制器发送读操作。

在上述方案的基础上,在page写操作或者page擦除操作正好完成时,固件通过Bypass命令队列将读命令发送至NAND控制器,NAND控制器经过仲裁机制优先执行Bypass命令队列中的读命令,从而加速读操作的执行。

在上述方案的基础上,所述固件通过计时器来判断page写或page擦除操作执行的时间,根据执行状态的不同预设节点,在执行状态未超过预设节点时,暂停或取消page写操作或者page擦除操作的执行,在执行状态超过预设节点时,等待page写操作或者page擦除操作的执行。

在上述方案的基础上,所述固件通过计时器判断page写或page擦除操作执行未超过预设节点时,固件把当前page写操作或者page擦除操作记录下来,并通过Bypass命令队列向NAND控制器发送暂停写page写操作或者page擦除操作的指令,然后固件通过Bypass命令队列向NAND控制器发送读操作,执行需要加速的读操作,当执行完之后,固件再根据执行记录,通过Bypass命令队列发送恢复之前正在执行的page写操作或者page擦除操作;对于不支持暂停page写操作或者page擦除操作的NAND介质,NAND介质发送取消page写操作或者page擦除操作,通过Bypass命令队列重新发送之前取消的写操作或者擦除操作,然后固件通过Bypass命令队列向NAND控制器发送读操作,执行需要加速的读操作,当执行完之后,固件再根据执行记录,通过Bypass命令队列重新发送之前取消的page写或page擦除操作。

在上述方案的基础上,固件通过计时器判断到page写操作或者page擦除操作执行超过预设节点时,不足以通过Bypass命令队列的方式中断操作,固件在等待page写操作或者page擦除操作执行完之后,再通过Bypass命令队列或者常规命令队列发送读操作。

在上述方案的基础上,所述预设节点为page写或page擦除操作执行一半。

本发明具有的优点如下:本发明是通过固件和硬件结合的方式,解决了NAND固态存储设备读操作数据响应的延迟过长的问题。当固件此前向命令队列发送了page写操作或者page擦除操作之后,又接收到主机的读操作,需要向命中的NAND通路发送读操作,根据执行状态的不同,固件通过暂停、取消或等待page写操作或者page擦除操作,从而加速读操作的执行。

附图说明

图1为本发明的流程示意图。

具体实施方式

下面结合附图详细说明本发明的实施情况,但它并不构成对本发明的限定,仅做举例而已。同时通过说明,本发明的优点将变得更加清楚和容易理解。

如图1所示:一种用于降低固态存储读延迟的操作方法,其特征在于:固件通过CPU向NAND控制器发送常规操作命令队列,NAND控制器经过仲裁机制从命令队列中取出命令,然后向NAND flash发送命令,并通过数据通路向NAND flash发送或者读取数据,同时将固件此前向命令队列发送的page写操作或者page擦除操作的NAND介质的状态和NAND控制器的状态反馈给CPU,再通过Bypass命令队列向NAND控制器发送读操作。

在有读命令需要加速的情况下,当固件此前向命令队列发送了page写操作或者page擦除操作之后,又接收到主机的读操作,需要向命中的NAND通路发送读操作,会出现如下三种实施例:

实施例一:在page写操作或者page擦除操作正好完成时,固件通过Bypass命令队列将读命令发送至NAND控制器,NAND控制器经过仲裁机制优先执行Bypass命令队列中的读命令,从而加速读操作的执行。

在实施例二和实施例三中,固件通过计时器来判断page写或page擦除操作执行的时间,根据执行状态的不同预设节点,在执行状态未超过预设节点时,暂停或取消page写操作或者page擦除操作的执行,在执行状态超过预设节点时,等待page写操作或者page擦除操作的执行。所述预设节点为page写或page擦除操作执行一半。

实施例二:固件通过计时器判断page写或page擦除操作执行未超过预设节点时,固件把当前page写操作或者page擦除操作记录下来,并通过Bypass命令队列向NAND控制器发送暂停写page写操作或者page擦除操作的指令,然后固件通过Bypass命令队列向NAND控制器发送读操作,执行需要加速的读操作,当执行完之后,固件再根据执行记录,通过Bypass命令队列发送恢复之前正在执行的page写操作或者page擦除操作;对于不支持暂停page写操作或者page擦除操作的NAND介质,NAND介质发送取消page写操作或者page擦除操作,通过Bypass命令队列重新发送之前取消的写操作或者擦除操作,然后固件通过Bypass命令队列向NAND控制器发送读操作,执行需要加速的读操作,当执行完之后,固件再根据执行记录,通过Bypass命令队列重新发送之前取消的page写或page擦除操作。

实施例三:固件通过计时器判断到page写操作或者page擦除操作执行超过预设节点时,不足以通过Bypass命令队列的方式中断操作,固件在等待page写操作或者page擦除操作执行完之后,再通过Bypass命令队列或者常规命令队列发送读操作。

以上所述,仅为本发明的具体实施方式,应当指出,任何熟悉本领域的技术人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1