一种固态硬盘中读写调度方法及装置与流程

文档序号:11917359阅读:249来源:国知局
一种固态硬盘中读写调度方法及装置与流程

本发明涉及固态硬盘读写处理技术领域,尤其涉及一种固态硬盘中读写调度方法及装置。



背景技术:

随着互联网、云计算、物联网等技术的发展,固态硬盘作为新的一代存储,被广泛应用。相比传统机械硬盘,固态硬盘(SSD)有明显的读写性能优势。目前,固态硬盘(SSD)在后端处理读和写操作是使用一条先入先出(FIFO)的消息队列(Message Queue)。在消息队列中,读和写是按照规定比例排列的,在闪存通道控制器(Flash Channel Controller,简称FCC)中依次获取并完成消息处理。由于写操作的时间明显大于读操作的时间,而且读写顺序固定,这导致读取潜伏期(read latency)很大,较严重影响固态硬盘(SSD)的整体性能。



技术实现要素:

针对以上技术问题,本发明的目的是提供一种固态硬盘中读写调度方法及装置,大大缩短了读取潜伏期,提高了固态硬盘(SSD)的整体性能。

为达到上述目的,本发明通过以下技术方案实现:

本发明提供一种固态硬盘中读写调度方法,包括:

读消息和写消息分别存入读消息队列和写消息队列;

调整读消息队列和写消息队列的优先级;

处理读消息和写消息。

优选地,在处理读消息和写消息之后,还包括:判断本批次处理的读消息和写消息是否完成,若完成,则进行下一批次读消息队列和写消息队列的优先级的调整;若未完成,则继续。

优选地,调整读消息队列和写消息队列的优先级,包括:依据当前读消息队列中读消息数量和写消息队列中写消息数量,得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级。

优选地,所述处理读消息和写消息是按规定数量处理,包括:依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量。

本发明还提供了一种固态硬盘中读写调度装置,包括:

存储模块,用于创建消息队列,并将读消息和写消息分别存入读消息队列和写消息队列;

调整模块,用于调整读消息队列和写消息队列的优先级,依据当前读消息队列中读消息数量和写消息队列中写消息数量,得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级;

消息处理模块,用于处理读消息和写消息。

优选地,还包括:判断模块,用于判断本批次处理的读消息和写消息是否完成,若完成,则进行下一批次读消息队列和写消息队列的优先级的调整;若未完成,则继续。

优选地,上述消息处理模块,用于按规定数量处理读消息和写消息,依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量。

与现有技术相比,本发明的有益效果如下:

1.现有技术中用于存储读和写消息的只有一条消息队列,本发明将一条消息队列改为不同种类的消息队列,并将读消息和写消息分别存入读消息队列和写消息队列,这样在不同时间段,闪存通道控制器处理的读消息和写消息就不会只来自同一条消息队列,不同种类的消息队列内的读消息和写消息都会得到处理,方便了闪存通道控制器处理读消息和写消息,同时也缩短了读取潜伏期。

2.本发明将现有技术中先入先出的消息队列改为具有优先级别的消息队列,通过调整读消息队列和写消息队列的优先级,根据消息队列的优先级处理读消息和写消息,实现了在不同时间段,通过消息队列优先级的动态调整,缩短了读取潜伏期,避免了在一条消息队列中因读写顺序固定,而写操作的时间明显大于读操作的时间,长时间内闪存通道控制器不能对后写入消息进行处理的问题,提高了固态硬盘的整体性能。

3.本发明依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量,通过对处理读消息和写消息的数量的控制,实现了处理读消息数量和写消息数量的实时、动态管理,提高了固态硬盘的整体性能。

4.本发明通过判断本批次处理的读消息和写消息是否完成,作为本批次处理动作的结束和下一批次读消息队列和写消息队列的优先级的调整的开始,实现了整个消息队列处理过程的动态调整。

附图说明

图1为本发明一种固态硬盘中读写调度方法的流程示意图之一;

图2为本发明一种固态硬盘中读写调度方法的流程示意图之二;

图3为本发明一种固态硬盘中读写调度装置的结构示意图之一;

图4为本发明一种固态硬盘中读写调度装置的结构示意图之二。

具体实施方式

下面对本发明中出现的名词作以下解释:

固态硬盘:英文全称Solid State Drives,简称SSD,用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片或DRAM芯片)组成,控制单元主要包括特定型号固态硬盘中的固件程序,闪存转换层和闪存控制器等控制模块,存储单元主要是由半导体公司生产的闪存存储颗粒。

闪存通道控制器:英文全称Flash Channel Controller,简称FCC,每个通道对应一个闪存通道控制器,其基于闪存独特的结构特性,设计固态硬盘时采用多个FCC并行技术来实现多通道数据的并发读写操作,因此有效地提高了固体盘整体的读写性能。

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

下面结合附图和具体实施方式对本发明一种固态硬盘中读写调度方法及装置作进一步地说明:

实施例1

如图1所示,一种固态硬盘中读写调度方法,包括以下步骤:

步骤S101,创建消息队列,将读消息和写消息分别存入读消息队列和写消息队列;

步骤S102,调整读消息队列和写消息队列的优先级;

步骤S103,处理读消息和写消息。

上述步骤S102中的调整读消息队列和写消息队列的优先级,是指闪存通道控制器(FCC)根据用户或主机下发的读、写请求,得到当前读消息队列中读消息数量和写消息队列中写消息数量,进而得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级,比值的大数值即确定为调度的高优先级,比值的小数值即确定为调度的低优先级。

上述步骤S103中的处理读消息和写消息是按规定数量处理,包括:依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量,比值的大数值即为调度的高优先级消息队列处理读消息的数量,比值的小数值即为调度的低优先级消息队列处理读消息的数量。

作为一种可实施方式,创建两个消息队列,将读消息和写消息分别存入读消息队列和写消息队列;闪存通道控制器(FCC)根据用户或主机下发的读、写请求,得到当前读消息队列中读消息数量和写消息队列中写消息数量,进而得到上述两个消息队列中读消息数量和写消息数量之比,如10:1,则比值数为10的消息队列作为调度的高优先级消息队列,则比值数为1的消息队列作为调度的低优先级消息队列;依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,也即为10:1,比值数10作为调度高优先级消息队列时处理读消息的数量,比值数1作为调度低优先级消息队列时处理写消息的数量。

实施例2

如图2所示,一种固态硬盘中读写调度方法,包括以下步骤:

步骤S101,创建消息队列,将读消息和写消息分别存入读消息队列和写消息队列;

步骤S102,调整读消息队列和写消息队列的优先级;

步骤S103,处理读消息和写消息;

步骤S104,判断本批次处理的读消息和写消息是否完成,若完成,则返回步骤S102进行下一批次读消息队列和写消息队列的优先级的调整;若未完成,则继续步骤S103。

上述步骤S102中的调整读消息队列和写消息队列的优先级,是指闪存通道控制器(FCC)根据用户或主机下发的读、写请求,得到当前读消息队列中读消息数量和写消息队列中写消息数量,进而得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级,比值的大数值即确定为调度的高优先级,比值的小数值即确定为调度的低优先级。

上述步骤S103中的处理读消息和写消息是按规定数量处理,包括:依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量,比值的大数值即为调度的高优先级消息队列处理读消息的数量,比值的小数值即为调度的低优先级消息队列处理读消息的数量。

作为一种可实施方式,创建两个消息队列,将读消息和写消息分别存入读消息队列和写消息队列;闪存通道控制器(FCC)根据用户或主机下发的读、写请求,得到当前读消息队列中读消息数量和写消息队列中写消息数量,进而得到上述两个消息队列中读消息数量和写消息数量之比,如9:2,则比值数为9的消息队列作为调度的高优先级消息队列,则比值数为2的消息队列作为调度的低优先级消息队列;依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,也即为9:2,比值数9作为调度高优先级消息队列时处理读消息的数量,比值数2作为调度低优先级消息队列时处理写消息的数量;判断高优先级消息队列的读消息数量和低优先级消息队列的写消息数量是否处理完成,若完成,则进行下一批次读消息队列和写消息队列的优先级的调整;若未完成,则继续处理。

实施例3

如图3所示,一种固态硬盘中读写调度装置,包括:

存储模块301,用于创建消息队列,并将读消息和写消息分别存入读消息队列和写消息队列;

调整模块302,用于调整读消息队列和写消息队列的优先级,依据当前读消息队列中读消息数量和写消息队列中写消息数量,得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级;

消息处理模块303,用于按规定数量处理读消息和写消息,依据当前读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量。

其中存储模块301依次顺序与调整模块302、消息处理模块303相连。

实施例4

如图4所示,一种固态硬盘中读写调度装置,包括:

存储模块301,用于创建消息队列,并将读消息和写消息分别存入读消息队列和写消息队列;

调整模块302,用于调整读消息队列和写消息队列的优先级,依据当前读消息队列中读消息数量和写消息队列中写消息数量,得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级;

消息处理模块303,用于按规定数量处理读消息和写消息,依据当前读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量。

判断模块304,用于判断本批次处理的读消息和写消息是否完成,若完成,则进行下一批次读消息队列和写消息队列的优先级的调整;若未完成,则继续。

其中存储模块301依次顺序与调整模块302、消息处理模块303、判断模块304相连。

以上所述仅为本发明示意性的具体实施方式,并非用以限定本发明的范围,任何本领域的技术人员在不脱离本发明构思和原则的前提下所做出的等同变化与修改,均应属于本发明保护的范围。

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