CN107861894A - NVMe协议的队列命令的执行方法、装置及存储介质 - Google Patents

NVMe协议的队列命令的执行方法、装置及存储介质 Download PDF

Info

Publication number
CN107861894A
CN107861894A CN201711070914.5A CN201711070914A CN107861894A CN 107861894 A CN107861894 A CN 107861894A CN 201711070914 A CN201711070914 A CN 201711070914A CN 107861894 A CN107861894 A CN 107861894A
Authority
CN
China
Prior art keywords
queue
iosq
queues
command
weight
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711070914.5A
Other languages
English (en)
Other versions
CN107861894B (zh
Inventor
王超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201711070914.5A priority Critical patent/CN107861894B/zh
Publication of CN107861894A publication Critical patent/CN107861894A/zh
Application granted granted Critical
Publication of CN107861894B publication Critical patent/CN107861894B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control

Abstract

本发明公开了一种NVMe协议的队列命令的执行方法,在接收到队列命令的执行指令时,先根据该执行指令以优先级规则从多个队列中选取目标队列,再以预定义规则执行目标队列中的目标队列指令。因此,在执行多个队列中的队列命令时,根据优先级规则选取优先级高的队列作为目标队列,并对满足优先级规则的目标队列以预定义规则进行执行,避免了将所有队列均等选择导致优先级较高的队列命令无法执行的问题。本发明还公开了一种NVMe协议的队列命令的执行装置及可读存储介质,同样能解决上述技术问题。

Description

NVMe协议的队列命令的执行方法、装置及存储介质
技术领域
本发明涉及存储领域,特别涉及一种NVMe协议的队列命令的执行方法、装置及存储介质。
背景技术
NVMe(Non-Volatile Memory)是一种专门为闪存类存储设计的协议。是使用PCI-E通道的SSD(固态硬盘)的一种规范,SSD的并行性可以充分被主机的硬件与软件充分利用,相比与现在的AHCI标准,NVMe标准可以带来多方面的性能提升。
NVMe协议设计了多种队列,包括Admin Submission Queue(ASQ)队列、AdminCompletion Queue(ACQ)队列、IO Submission Queue(IOSQ)队列以及IO CompletionQueue(IOCQ)队列。
当主机需要向NVMe SSD发送管理命令时,会将命令提交到ASQ,然后向NVMe控制器发送中断,NVMe控制器将命令从ASQ中取出,拿到控制器内部,并将该命令标记为“候选命令”,择机处理后,将命令处理结果填充到ACQ中,通过中断通知主机端,然后主机端在ACQ中提取命令处理结果。当主机需要向NVMe SSD发送IO命令时,会将命令提交到IOSQ,后续过程与管理命令处理类似,只是NVMe控制器会将处理结果返回到IOCQ中,供主机提取命令完成状态。
其中,“候选命令”是已经被控制器从ACQ或IOCQ中取出并传输到控制器内部的准备执行的命令。控制器会按照自己的算法在候选命令池中选择下一步将要执行的命令。而这些候选命令如何选取,就涉及到一个队列优先级的问题。传统的候选命令的选取方法是对依次轮询所有的队列,不会考虑队列的优先级,导致许多高优先级的队列中的命令无法被优先执行,例如存放在ASQ中的管理命令一般是优先级比较高的命令,采用传统的方法导致ASQ中的管理命令与IOCQ中的IO命令均摊带宽,无法被优先执行。
因此,如何避免NVMe队列中的优先级较高的命令无法优先执行的问题是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种NVMe协议的队列命令的执行方法、装置及存储介质,避免了NVMe队列中的优先级较高的命令无法优先执行的问题。
为实现上述目的,本发明实施例提供了如下技术方案:
一方面,本发明实施例提供了一种NVMe协议的队列命令的执行方法,包括:
接收队列命令的执行指令;
根据所述执行指令以优先级规则从多个队列中选取目标队列;
以预定义规则执行所述目标队列中的目标队列命令。
优选的,所述根据所述执行指令以优先级规则从多个队列中选取目标队列包括:
判断与各队列对应的队列权重是否大于目标优先级阈值;
若是,则选取所述队列权重大于所述目标优先级阈值的队列作为所述目标队列。
优选的,所述判断各队列对应的队列权重是否大于目标优先级阈值包括:
判断与各队列对应的所述队列权重是否大于ASQ优先级阈值;
若是,则将所述队列权重大于所述ASQ优先级阈值的队列作为所述目标队列;
若否,则判断与各队列对应的所述队列权重是否大于IOSQ优先级阈值;
若是,则将所述队列权重大于所述IOSQ优先级阈值的队列作为所述目标队列。
优选的,所述以预定义规则执行所述目标队列中的目标队列命令包括:
判断执行所述目标队列命令的时间是否超过设定时间阈值;
若是,则从多个队列中选取下一个待执行目标队列并执行所述待执行目标队列中的待执行队列指令。
优选的,所述判断执行所述目标队列命令的时间是否超过设定时间阈值包括:
若所述目标队列为队列权重大于所述ASQ优先级阈值的ASQ目标队列,则判断执行所述ASQ目标队列的ASQ时间是否大于ASQ设定时间阈值;
若是,则停止执行所述ASQ目标队列并选取队列权重大于所述IOSQ优先级阈值的IOSQ目标队列作为待执行目标队列。
优选的,所述判断执行所述目标队列命令的时间是否超过设定时间阈值包括:
若所述目标队列为队列权重大于所述IOSQ优先级阈值的所述IOSQ目标队列;
则从各IOSQ目标队列中选取队列权重大于第一IOSQ队列权重阈值的IOSQ目标队列作为第一IOSQ目标队列;
判断执行所述第一IOSQ目标队列的时间是否大于第一IOSQ设定时间阈值;
若是,则从各IOSQ目标队列中选取队列权重大于第二IOSQ队列权重阈值的IOSQ目标队列作为第二IOSQ目标队列;
判断执行所述第二IOSQ目标队列的时间是否大于第二IOSQ设定时间阈值;
若是,则从各IOSQ目标队列中选取队列权重大于第三IOSQ队列权重阈值的IOSQ目标队列作为第三IOSQ目标队列并执行所述第三IOSQ目标队列。
另一方面,本发明实施例提供了一种NVMe协议的队列命令的执行装置,包括:
执行指令接收模块,用于接收队列命令的执行指令;
目标队列选取模块,用于根据所述执行指令以优先级规则从多个队列中选取目标队列;
目标队列命令执行模块,用于以预定义规则执行所述目标队列中的目标队列命令。
优选的,所述目标队列选取模块包括:
目标优先级阈值判断单元,用于判断与各队列对应的队列权重是否大于目标优先级阈值;
目标队列选取单元,用于所述目标优先级阈值判断单元判定与各队列对应的队列权重大于目标优先级阈值时,选取所述队列权重大于所述目标优先级阈值的队列作为所述目标队列。
另一方面,本发明实施例提供了另一种NVMe协议的队列命令的执行装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序以实现如上任一项所述NVMe协议的队列命令的执行方法的步骤。
另一方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的NVMe协议的队列命令的执行方法的步骤。
本发明实施例提供了一种NVMe协议的队列命令的执行方法,在接收到队列命令的执行指令时,先根据该执行指令以优先级规则从多个队列中选取目标队列,再以预定义规则执行目标队列中的目标队列指令。因此,在执行多个队列中的队列命令时,根据优先级规则选取优先级高的队列作为目标队列,并对满足优先级规则的目标队列以预定义规则进行执行,避免了将所有队列均等选择导致优先级较高的队列命令无法执行的问题。本发明还提供了一种NVMe协议的队列命令的执行装置及可读存储介质,同样能解决上述技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种NVMe协议的队列命令的执行方法流程示意图;
图2为本发明实施例提供的一种NVMe协议的队列命令的执行装置结构示意图;
图3为本发明实施例提供的另一种NVMe协议的队列命令的执行装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种NVMe协议的队列命令的执行方法、装置及存储介质,避免了NVMe队列中的优先级较高的命令无法优先执行的问题。
请参见图1,图1为本发明实施例提供的一种NVMe协议的队列命令的执行方法流程示意图,包括:
S101、接收队列命令的执行指令。
具体的,本实施例中的队列命令为控制器内部准备执行的命令,例如,ASQ队列中的管理命令,IOSQ中的IO命令,当然,根据实际环境,该队列命令也可以为其他命令,在此并不作限定。
S102、根据执行指令以优先级规则从多个队列中选取目标队列。
具体的,本实施例中的优先级规则为各队列对应的优先级,其中,优先级可以根据设定的队列的等级确定,也可以根据队列的类型确定;目标队列为根据优先级规则选取的符合标准的队列;例如,队列类型为ASQ队列或IOSQ队列时,ASQ队列的优先级比IOSQ队列的优先级高,则根据该执行请求选取优先级高的ASQ队列作为目标队列,其次,可以将队列对应的队列权重根据设定的阈值进行队列等级划分,从而根据阈值的大小确定队列的优先级,选取队列权重高于最大阈值的队列作为目标队列。当然,根据实际的应用环境,该优先级规则也可以为其他规则,在此并不作限定。
进一步,本实施例中的目标队列至少为一个,根据优先级规则,选取满足条件的队列作为目标队列,例如,从多个队列中选取ASQ类型的队列作为目标队列,因此,目标队列为所有满足ASQ类型队列要求的队列,其数量不限定于一个。
S103、以预定义规则执行目标队列中的目标队列命令。
具体的,本实施例中,预定义规则包括以下几个方面,其一,预定义规则为依次执行目标队列中的目标队列命令,例如,当目标队列为10个IOSQ类型的队列时,预定义规则为依次执行10个IOSQ类型中的队列命令;其二,预定义规则为对目标队列进行等级划分,从而由高等级的目标队列至低等级的目标队列执行,例如,当目标队列为10个IOSQ类型的队列时,将IOSQ类型的队列划分为高等级IOSQ队列、中等级IOSQ队列以及低等级IOSQ队列,预定义规则为由高等级IOSQ队列向低等级IOSQ队列执行。当然,根据实际的操作环境,该预定义规则也可以为其他规则,在此并不作限定。
进一步,目标队列命令为该目标队列中包含的待执行的命令,例如,ASQ队列中的管理命令,IOSQ队列中的IO命令。
可见,本实施例中,在接收到队列命令的执行指令时,先根据该执行指令以优先级规则从多个队列中选取目标队列,再以预定义规则执行目标队列中的目标队列指令。因此,在执行多个队列中的队列命令时,根据优先级规则选取优先级高的队列作为目标队列,并对满足优先级规则的目标队列以预定义规则进行执行,避免了将所有队列均等选择导致优先级较高的队列命令无法执行的问题。
基于上述实施例,在本实施例中,根据执行指令以优先级规则从多个队列中选取目标队列包括:
判断与各队列对应的队列权重是否大于目标优先级阈值;
若是,则选取队列权重大于目标优先级阈值的队列作为目标队列。
具体的,本实施例中的队列权重为与每个队列唯一对应的值,目标优先级阈值为满足选择的队列要求的队列权重阈值;例如,两个ASQ队列与两个IOSQ队列,其中两个ASQ队列的队列权重分别为5和6,两个IOSQ队列对应的队列权重分别为2和3,目标优先级阈值为4,则两个ASQ队列的队列权重值大于目标优先级阈值,所以将2个ASQ队列作为目标队列。
可见,本实施例中,通过选取队列权重大于目标优先级阈值的队列作为目标队列以优先执行目标队列中的队列命令,避免了高优先级的队列命令无法优先执行。
基于上述实施例,在本实施例中,判断各队列对应的队列权重是否大于目标优先级阈值包括:
判断与各队列对应的队列权重是否大于ASQ优先级阈值;
若是,则将队列权重大于ASQ优先级阈值的队列作为目标队列;
若否,则判断与各队列对应的队列权重是否大于IOSQ优先级阈值;
若是,则将队列权重大于IOSQ优先级阈值的队列作为目标队列。
具体的,本实施例中的ASQ优先级阈值为满足ASQ类型队列的队列权重值,IOSQ优先级阈值为满足ASQ类型队列的队列权重值,当控制器选择下一个执行的队列命令时,先判断各队列对应的队列权重是否满足ASQ优先级阈值,若满足,则队列权重大于ASQ优先级阈值的队列为ASQ类型队列并将其作为目标队列以优先执行;若队列权重没有大于ASQ优先级阈值的队列,则判断队列的队列权重是否大于IOSQ优先级阈值,当队列的队列权重大于IOSQ优先级阈值时,则该队列为IOSQ类型队列并将其作为目标队列。
基于上述实施例,在本实施例中,以预定义规则执行目标队列中的目标队列命令包括:
判断执行目标队列命令的时间是否超过设定时间阈值;
若是,则从多个队列中选取下一个待执行目标队列并执行待执行目标队列中的待执行队列指令。
具体的,本实施例中,设定时间阈值为执行目标队列命令的最长时间设定参数,例如,当目标队列命令为执行ASQ类型队列中的队列命令时,设定执行ASQ类型队列中的队列命令最长时间为T,则当执行ASQ类型队列中的队列命令的时间超过时间T时,则进入下一个步骤。当然,设定时间阈值得大小根据目标队列命令的类型不同而设定,例如,设置ASQ类型队列的设定时间阈值大于IOSQ类型队列的设定时间阈值,在此并不作限定。
可见,本实施例中,通过为目标队列命令设定执行时间,从而在执行目标队列命令超过设定时间时,停止执行该目标队列命令并选取下一个待执行目标队列,避免了长时间执行目标队列命令而导致的队列命令执行效率过低的问题。
基于上述实施例,在本实施例中,判断执行目标队列命令的时间是否超过设定时间阈值包括:
若目标队列为队列权重大于ASQ优先级阈值的ASQ目标队列,则判断执行ASQ目标队列的ASQ时间是否大于ASQ设定时间阈值;
若是,则停止执行ASQ目标队列并选取队列权重大于IOSQ优先级阈值的IOSQ目标队列作为待执行目标队列。
具体的,本实施例中,ASQ设定时间阈值为允许执行ASQ类型队列中的队列命令时的最长时间,当执行ASQ类型队列中的队列命令的时间超过ASQ设定时间阈值时,则停止执行ASQ类型队列,选取IOSQ类型队列中的队列命令进行执行。ASQ设定时间阈值的大小可以根据实际的操作环境设定,在此并不作限定。
基于上述实施例,在本实施例中,判断执行目标队列命令的时间是否超过设定时间阈值包括:
若目标队列为队列权重大于IOSQ优先级阈值的IOSQ目标队列;则从各IOSQ目标队列中选取队列权重大于第一IOSQ队列权重阈值的IOSQ目标队列作为第一IOSQ目标队列;
判断执行第一IOSQ目标队列的时间是否大于第一IOSQ设定时间阈值;
若是,则从各IOSQ目标队列中选取队列权重大于第二IOSQ队列权重阈值的IOSQ目标队列作为第二IOSQ目标队列;
判断执行第二IOSQ目标队列的时间是否超过第二IOSQ设定时间阈值;
若是,则从各IOSQ目标队列中选取队列权重大于第三IOSQ队列权重阈值的IOSQ目标队列作为第三IOSQ目标队列并执行第三IOSQ目标队列。
具体的,本实施例中的第一IOSQ队列权重阈值大于第二IOSQ队列权重阈值,相应的,第一IOSQ目标队列优先级大于第二IOSQ目标队列的优先级,第二IOSQ目标队列优先级大于第三IOSQ目标队列优先级。当然,根据实际操作环境,IOSQ目标队列的等级也可以分为其他数量的等级,在此并不作限定。
下面对本发明实施例提供的一种NVMe协议的队列命令的执行装置进行介绍,请参见图2,图2为本发明实施例提供的一种NVMe协议的队列命令的执行装置结构示意图,包括:
执行指令接收模块100,用于接收队列命令的执行指令;
目标队列选取模块200,用于根据执行指令以优先级规则从多个队列中选取目标队列;
目标队列命令执行模块300,用于以预定义规则执行目标队列中的目标队列命令。
可见,本发明实施例提供的一种NVMe协议的队列命令的执行装置,在执行指令接收模块接收到队列命令的执行指令时,目标队列选取模块先根据该执行指令以优先级规则从多个队列中选取目标队列,目标队列命令执行模块再以预定义规则执行目标队列中的目标队列指令。因此,在执行多个队列中的队列命令时,根据优先级规则选取优先级高的队列作为目标队列,并对满足优先级规则的目标队列以预定义规则进行执行,避免了将所有队列均等选择导致优先级较高的队列命令无法执行的问题。
基于上述实施例,在本实施例中,目标队列选取模块200包括:
目标优先级阈值判断单元,用于判断与各队列对应的队列权重是否大于目标优先级阈值;
目标队列选取单元,用于目标优先级阈值判断单元判定与各队列对应的队列权重大于目标优先级阈值时,选取队列权重大于所述目标优先级阈值的队列作为目标队列。
基于上述实施例,在本实施例中,目标优先级阈值判断单元包括:
ASQ优先级阈值判断子单元,用于判断与各队列对应的所述队列权重是否大于ASQ优先级阈值;
第一目标队列选定子单元,用于ASQ优先级阈值判断子单元判定队列权重大于ASQ优先级阈值时,则将队列权重大于ASQ优先级阈值的队列作为所述目标队列;
IOSQ优先级阈值判断子单元,用于ASQ优先级阈值判断子单元判定队列权重不大于ASQ优先级阈值时,则判断与各队列对应的队列权重是否大于IOSQ优先级阈值;
第二目标队列选定子单元,用于将队列权重大于IOSQ优先级阈值的队列作为目标队列。
基于上述实施例,在本实施例中,目标队列命令执行模块300包括:
设定时间阈值判断单元,用于判断执行目标队列命令的时间是否超过设定时间阈值;
待执行目标队列选取单元,用于设定时间阈值判断单元判定执行目标队列命令的时间超过设定时间阈值时,从多个队列中选取下一个待执行目标队列并执行待执行目标队列中的待执行队列指令。
基于上述实施例,在本实施例中,设定时间阈值判断单元包括:
ASQ设定时间阈值判断子单元,用于若目标队列为队列权重大于ASQ优先级阈值的ASQ目标队列,则判断执行ASQ目标队列的ASQ时间是否大于ASQ设定时间阈值;
待执行目标队列选取子单元,用于ASQ设定时间阈值判断子单元判定执行ASQ目标队列的ASQ时间大于ASQ设定时间阈值时,则停止执行ASQ目标队列并选取队列权重大于IOSQ优先级阈值的IOSQ目标队列作为待执行目标队列。
基于上述实施例,在本实施例中,设定时间阈值判断单元包括:
第一IOSQ目标队列选取子单元,用于若所述目标队列为队列权重大于IOSQ优先级阈值的所述IOSQ目标队列;则从各IOSQ目标队列中选取队列权重大于第一IOSQ队列权重阈值的IOSQ目标队列作为第一IOSQ目标队列。
第一IOSQ设定时间阈值判断子单元,用于判断执行第一IOSQ目标队列的时间是否大于第一IOSQ设定时间阈值;
第二IOSQ目标队列选取子单元,用于第一IOSQ设定时间阈值判断子单元判定第一IOSQ目标队列的时间大于第一IOSQ设定时间阈值时,则从各IOSQ目标队列中选取队列权重大于第二IOSQ队列权重阈值的IOSQ目标队列作为第二IOSQ目标队列。
第二IOSQ设定时间阈值判断子单元,用于判断执行第二IOSQ目标队列的时间是否大于第二IOSQ设定时间阈值;
第三IOSQ目标队列选取子单元,用于第二IOSQ设定时间阈值判断子单元判定执行第二IOSQ目标队列的时间大于第二IOSQ设定时间阈值时,则从各IOSQ目标队列中选取队列权重大于第三IOSQ队列权重阈值的IOSQ目标队列作为第三IOSQ目标队列并执行所述第三IOSQ目标队列。
请参见图3,图3为本发明实施例提供的另一种NVMe协议的队列命令的执行装置结构示意图,包括:
存储器10,用于存储计算机程序;
处理器20,用于执行所述存储器中存储的计算机程序以实现以上所述的任一项NVMe协议的队列命令的执行方法的步骤。
为了更好地理解本方案,本发明实施例提供的一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上任一项所述的NVMe协议的队列命令的执行方法的步骤。
以上对本申请所提供的NVMe协议的队列命令的执行方法、装置及存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种NVMe协议的队列命令的执行方法,其特征在于,包括:
接收队列命令的执行指令;
根据所述执行指令以优先级规则从多个队列中选取目标队列;
以预定义规则执行所述目标队列中的目标队列命令。
2.根据权利要求1所述的NVMe协议的队列命令的执行方法,其特征在于,所述根据所述执行指令以优先级规则从多个队列中选取目标队列包括:
判断与各队列对应的队列权重是否大于目标优先级阈值;
若是,则选取所述队列权重大于所述目标优先级阈值的队列作为所述目标队列。
3.根据权利要求2所述的NVMe协议的队列命令的执行方法,其特征在于,所述判断各队列对应的队列权重是否大于目标优先级阈值包括:
判断与各队列对应的所述队列权重是否大于ASQ优先级阈值;
若是,则将所述队列权重大于所述ASQ优先级阈值的队列作为所述目标队列;
若否,则判断与各队列对应的所述队列权重是否大于IOSQ优先级阈值;
若是,则将所述队列权重大于所述IOSQ优先级阈值的队列作为所述目标队列。
4.根据权利要求1所述的NVMe协议的队列命令的执行方法,其特征在于,所述以预定义规则执行所述目标队列中的目标队列命令包括:
判断执行所述目标队列命令的时间是否超过设定时间阈值;
若是,则从多个队列中选取下一个待执行目标队列并执行所述待执行目标队列中的待执行队列指令。
5.根据权利要求4所述的NVMe协议的队列命令的执行方法,其特征在于,所述判断执行所述目标队列命令的时间是否超过设定时间阈值包括:
若所述目标队列为队列权重大于所述ASQ优先级阈值的ASQ目标队列,则判断执行所述ASQ目标队列的ASQ时间是否大于ASQ设定时间阈值;
若是,则停止执行所述ASQ目标队列并选取队列权重大于所述IOSQ优先级阈值的IOSQ目标队列作为待执行目标队列。
6.根据权利要求4所述的NVMe协议的队列命令的执行方法,其特征在于,所述判断执行所述目标队列命令的时间是否超过设定时间阈值包括:
若所述目标队列为队列权重大于所述IOSQ优先级阈值的所述IOSQ目标队列;
则从各IOSQ目标队列中选取队列权重大于第一IOSQ队列权重阈值的IOSQ目标队列作为第一IOSQ目标队列;
判断执行所述第一IOSQ目标队列的时间是否大于第一IOSQ设定时间阈值;
若是,则从各IOSQ目标队列中选取队列权重大于第二IOSQ队列权重阈值的IOSQ目标队列作为第二IOSQ目标队列;
判断执行所述第二IOSQ目标队列的时间是否大于第二IOSQ设定时间阈值;
若是,则从各IOSQ目标队列中选取队列权重大于第三IOSQ队列权重阈值的IOSQ目标队列作为第三IOSQ目标队列并执行所述第三IOSQ目标队列。
7.一种NVMe协议的队列命令的执行装置,其特征在于,包括:
执行指令接收模块,用于接收队列命令的执行指令;
目标队列选取模块,用于根据所述执行指令以优先级规则从多个队列中选取目标队列;
目标队列命令执行模块,用于以预定义规则执行所述目标队列中的目标队列命令。
8.根据权利要求7所述的NVMe协议的队列命令的执行装置,其特征在于,所述目标队列选取模块包括:
目标优先级阈值判断单元,用于判断与各队列对应的队列权重是否大于目标优先级阈值;
目标队列选取单元,用于所述目标优先级阈值判断单元判定与各队列对应的队列权重大于目标优先级阈值时,选取所述队列权重大于所述目标优先级阈值的队列作为所述目标队列。
9.一种NVMe协议的队列命令的执行装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序以实现如权利要求1至6任一项所述NVMe协议的队列命令的执行方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的NVMe协议的队列命令的执行方法的步骤。
CN201711070914.5A 2017-11-03 2017-11-03 NVMe协议的队列命令的执行方法、装置及存储介质 Active CN107861894B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711070914.5A CN107861894B (zh) 2017-11-03 2017-11-03 NVMe协议的队列命令的执行方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711070914.5A CN107861894B (zh) 2017-11-03 2017-11-03 NVMe协议的队列命令的执行方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN107861894A true CN107861894A (zh) 2018-03-30
CN107861894B CN107861894B (zh) 2021-08-31

Family

ID=61700642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711070914.5A Active CN107861894B (zh) 2017-11-03 2017-11-03 NVMe协议的队列命令的执行方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN107861894B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114048156A (zh) * 2021-10-28 2022-02-15 山东云海国创云计算装备产业创新中心有限公司 一种多通道多映射中断控制器

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281329A1 (en) * 2008-09-26 2014-09-18 Netapp, Inc. Priority Command Queues for Low Latency Solid State Drives
US20140331001A1 (en) * 2013-05-02 2014-11-06 Lsi Corporation Command Barrier for a Solid State Drive Controller
US20150067291A1 (en) * 2013-08-30 2015-03-05 Kabushiki Kaisha Toshiba Controller, memory system, and method
CN104536701A (zh) * 2014-12-23 2015-04-22 记忆科技(深圳)有限公司 一种nvme协议多命令队列的实现方法及系统
US20150134857A1 (en) * 2013-11-14 2015-05-14 Sandisk Technologies Inc. System and Method for I/O Optimization in a Multi-Queued Environment
US20160117119A1 (en) * 2014-10-28 2016-04-28 Samsung Electronics Co., Ltd. Storage device and operating method of the same
CN105589661A (zh) * 2014-11-12 2016-05-18 三星电子株式会社 数据存储装置、数据处理系统和操作方法
US20160147671A1 (en) * 2014-11-24 2016-05-26 Sandisk Technologies Inc. Systems and methods of write cache flushing
US20160188510A1 (en) * 2014-12-26 2016-06-30 Samsung Electronics Co., Ltd. METHOD FETCHING/PROCESSING NVMe COMMANDS IN MULTI-PORT, SR-IOV OR MR-IOV SUPPORTED PCIe BASED STORAGE DEVICES
CN106293623A (zh) * 2015-05-18 2017-01-04 北京忆芯科技有限公司 微指令序列执行方法及其装置
CN106371888A (zh) * 2015-07-22 2017-02-01 三星电子株式会社 支持虚拟机的存储设备,包括其的存储系统和其操作方法
US20170090753A1 (en) * 2015-09-28 2017-03-30 Sandisk Technologies Llc Methods, systems and computer readable media for intelligent fetching of data storage device commands from submission queues
CN106874223A (zh) * 2017-01-24 2017-06-20 合肥兆芯电子有限公司 数据传输方法、存储器存储装置及存储器控制电路单元
CN107168885A (zh) * 2016-03-08 2017-09-15 东芝存储器株式会社 存储系统、信息处理系统及非易失性存储器的控制方法
CN107193761A (zh) * 2016-03-15 2017-09-22 北京忆芯科技有限公司 队列优先级仲裁的方法与装置
US20170300263A1 (en) * 2016-04-15 2017-10-19 Sandisk Technologies Inc. Memory interface command queue throttling
CN107305534A (zh) * 2016-04-22 2017-10-31 三星电子株式会社 对使用NVMe接口的装置同时进行的内核模式和用户模式访问

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281329A1 (en) * 2008-09-26 2014-09-18 Netapp, Inc. Priority Command Queues for Low Latency Solid State Drives
US20140331001A1 (en) * 2013-05-02 2014-11-06 Lsi Corporation Command Barrier for a Solid State Drive Controller
US20150067291A1 (en) * 2013-08-30 2015-03-05 Kabushiki Kaisha Toshiba Controller, memory system, and method
US20150134857A1 (en) * 2013-11-14 2015-05-14 Sandisk Technologies Inc. System and Method for I/O Optimization in a Multi-Queued Environment
US20160117119A1 (en) * 2014-10-28 2016-04-28 Samsung Electronics Co., Ltd. Storage device and operating method of the same
CN105589661A (zh) * 2014-11-12 2016-05-18 三星电子株式会社 数据存储装置、数据处理系统和操作方法
US20160147671A1 (en) * 2014-11-24 2016-05-26 Sandisk Technologies Inc. Systems and methods of write cache flushing
CN104536701A (zh) * 2014-12-23 2015-04-22 记忆科技(深圳)有限公司 一种nvme协议多命令队列的实现方法及系统
US20160188510A1 (en) * 2014-12-26 2016-06-30 Samsung Electronics Co., Ltd. METHOD FETCHING/PROCESSING NVMe COMMANDS IN MULTI-PORT, SR-IOV OR MR-IOV SUPPORTED PCIe BASED STORAGE DEVICES
CN106293623A (zh) * 2015-05-18 2017-01-04 北京忆芯科技有限公司 微指令序列执行方法及其装置
CN106371888A (zh) * 2015-07-22 2017-02-01 三星电子株式会社 支持虚拟机的存储设备,包括其的存储系统和其操作方法
US20170090753A1 (en) * 2015-09-28 2017-03-30 Sandisk Technologies Llc Methods, systems and computer readable media for intelligent fetching of data storage device commands from submission queues
CN107168885A (zh) * 2016-03-08 2017-09-15 东芝存储器株式会社 存储系统、信息处理系统及非易失性存储器的控制方法
CN107193761A (zh) * 2016-03-15 2017-09-22 北京忆芯科技有限公司 队列优先级仲裁的方法与装置
US20170300263A1 (en) * 2016-04-15 2017-10-19 Sandisk Technologies Inc. Memory interface command queue throttling
CN107305534A (zh) * 2016-04-22 2017-10-31 三星电子株式会社 对使用NVMe接口的装置同时进行的内核模式和用户模式访问
CN106874223A (zh) * 2017-01-24 2017-06-20 合肥兆芯电子有限公司 数据传输方法、存储器存储装置及存储器控制电路单元

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NVM EXPRESS WORKGROUP: "《NVM Express Revision 1.3》", 1 May 2017 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114048156A (zh) * 2021-10-28 2022-02-15 山东云海国创云计算装备产业创新中心有限公司 一种多通道多映射中断控制器
CN114048156B (zh) * 2021-10-28 2024-05-03 山东云海国创云计算装备产业创新中心有限公司 一种多通道多映射中断控制器

Also Published As

Publication number Publication date
CN107861894B (zh) 2021-08-31

Similar Documents

Publication Publication Date Title
US8893146B2 (en) Method and system of an I/O stack for controlling flows of workload specific I/O requests
CN104268018B (zh) 一种Hadoop集群中的作业调度方法和作业调度器
JP3936924B2 (ja) ジョブスケジューリング方法及びシステム
TWI665598B (zh) 物件列表的瀏覽控制方法及裝置
CN110209597A (zh) 处理访问请求的方法、装置、设备和存储介质
CN107861894A (zh) NVMe协议的队列命令的执行方法、装置及存储介质
CN108804016A (zh) 基于触摸屏的物体识别方法,装置及电子设备
CN106227595A (zh) 处理反复快速操作的方法和系统
CN105393234B (zh) 用于管理usb数据传送的系统和方法
CN106855825A (zh) 一种任务处理方法及其装置
Saroj et al. A novel CPU scheduling with variable time quantum based on mean difference of burst time
CN106487889B (zh) 一种面向云数据中心的任务与数据联合部署方法
CN105740065A (zh) 一种控制异步任务执行的方法及装置
CN105988725B (zh) 磁盘i/o调度方法和装置
CN107797870A (zh) 一种云计算数据资源调度方法
CN106155793A (zh) 一种资源调度方法及装置
CN107885589A (zh) 一种作业调度方法及装置
CN111035919A (zh) 一种操作模式确定方法、装置、设备及存储介质
CN105159620B (zh) 存储QoS控制策略的实现方法及装置
CN105242878B (zh) 一种QoS控制的方法及装置
Bharathi et al. Comprehensive Analysis OF CPU Scheduling Algorithms
CN107704328A (zh) 客户端访问文件系统的方法、系统、装置及存储介质
CN107547429A (zh) 一种负载确定方法、装置及电子设备
CN106502813A (zh) 一种服务器硬盘监控方法及装置
CN111930485A (zh) 一种基于性能表现的作业调度方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant