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

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

Info

Publication number
CN107861894B
CN107861894B CN201711070914.5A CN201711070914A CN107861894B CN 107861894 B CN107861894 B CN 107861894B CN 201711070914 A CN201711070914 A CN 201711070914A CN 107861894 B CN107861894 B CN 107861894B
Authority
CN
China
Prior art keywords
queue
target
iosq
command
executing
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.)
Active
Application number
CN201711070914.5A
Other languages
English (en)
Other versions
CN107861894A (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

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

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 (6)

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

Families Citing this family (1)

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

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536701A (zh) * 2014-12-23 2015-04-22 记忆科技(深圳)有限公司 一种nvme协议多命令队列的实现方法及***
CN105589661A (zh) * 2014-11-12 2016-05-18 三星电子株式会社 数据存储装置、数据处理***和操作方法
CN106293623A (zh) * 2015-05-18 2017-01-04 北京忆芯科技有限公司 微指令序列执行方法及其装置
CN106371888A (zh) * 2015-07-22 2017-02-01 三星电子株式会社 支持虚拟机的存储设备,包括其的存储***和其操作方法
CN106874223A (zh) * 2017-01-24 2017-06-20 合肥兆芯电子有限公司 数据传输方法、存储器存储装置及存储器控制电路单元
CN107168885A (zh) * 2016-03-08 2017-09-15 东芝存储器株式会社 存储***、信息处理***及非易失性存储器的控制方法
CN107193761A (zh) * 2016-03-15 2017-09-22 北京忆芯科技有限公司 队列优先级仲裁的方法与装置
CN107305534A (zh) * 2016-04-22 2017-10-31 三星电子株式会社 对使用NVMe接口的装置同时进行的内核模式和用户模式访问

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8756369B2 (en) * 2008-09-26 2014-06-17 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
US9317204B2 (en) * 2013-11-14 2016-04-19 Sandisk Technologies Inc. System and method for I/O optimization in a multi-queued environment
KR101730991B1 (ko) * 2014-10-28 2017-04-28 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9658966B2 (en) * 2014-11-24 2017-05-23 Sandisk Technologies Llc 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
US9927983B2 (en) * 2015-09-28 2018-03-27 Sandisk Technologies Llc Methods, systems and computer readable media for intelligent fetching of data storage device commands from submission queues
US10025522B2 (en) * 2016-04-15 2018-07-17 Sandisk Technologies Llc Memory interface command queue throttling

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589661A (zh) * 2014-11-12 2016-05-18 三星电子株式会社 数据存储装置、数据处理***和操作方法
CN104536701A (zh) * 2014-12-23 2015-04-22 记忆科技(深圳)有限公司 一种nvme协议多命令队列的实现方法及***
CN106293623A (zh) * 2015-05-18 2017-01-04 北京忆芯科技有限公司 微指令序列执行方法及其装置
CN106371888A (zh) * 2015-07-22 2017-02-01 三星电子株式会社 支持虚拟机的存储设备,包括其的存储***和其操作方法
CN107168885A (zh) * 2016-03-08 2017-09-15 东芝存储器株式会社 存储***、信息处理***及非易失性存储器的控制方法
CN107193761A (zh) * 2016-03-15 2017-09-22 北京忆芯科技有限公司 队列优先级仲裁的方法与装置
CN107305534A (zh) * 2016-04-22 2017-10-31 三星电子株式会社 对使用NVMe接口的装置同时进行的内核模式和用户模式访问
CN106874223A (zh) * 2017-01-24 2017-06-20 合肥兆芯电子有限公司 数据传输方法、存储器存储装置及存储器控制电路单元

Also Published As

Publication number Publication date
CN107861894A (zh) 2018-03-30

Similar Documents

Publication Publication Date Title
US10628216B2 (en) I/O request scheduling method and apparatus by adjusting queue depth associated with storage device based on hige or low priority status
US11467769B2 (en) Managed fetching and execution of commands from submission queues
EP3091434B1 (en) Chip starting method, multi-core processor chip and storage medium
US9990229B2 (en) Scheduling method and apparatus for applying laxity correction based on task completion proportion and preset time
JP5984824B2 (ja) アプリケーション・ライフタイム管理
US8239869B2 (en) Method, system and apparatus for scheduling computer micro-jobs to execute at non-disruptive times and modifying a minimum wait time between the utilization windows for monitoring the resources
US20140115603A1 (en) Method, apparatus, and system for scheduling processor core in multiprocessor core system
CN106569891B (zh) 一种存储***中任务调度执行的方法和装置
US20110202924A1 (en) Asynchronous Task Execution
EP3255553A1 (en) Transmission control method and device for direct memory access
US8868855B2 (en) Request management system and method for dynamically managing prioritized requests
JP4747307B2 (ja) ネットワーク処理制御装置,プログラムおよび方法
CN108874324B (zh) 一种访问请求处理方法、装置、设备及可读存储介质
JP2017530453A5 (zh)
JP2016503205A5 (zh)
WO2015117536A1 (en) Wireless energy transmission method and wireless energy receiving device
US20190369919A1 (en) Task management method and host for electronic storage device
US20160306657A1 (en) Dynamic priority queue
US9135064B2 (en) Fine grained adaptive throttling of background processes
CN107861894B (zh) NVMe协议的队列命令的执行方法、装置及存储介质
CN110209548B (zh) 服务控制方法、***、电子设备及计算机可读存储介质
Tang et al. Toward balanced and sustainable job scheduling for production supercomputers
US20180217875A1 (en) Data processing system and data processing method
JP6193189B2 (ja) Nandバックグラウンド処理制御装置
US20130014119A1 (en) Resource Allocation Prioritization Based on Knowledge of User Intent and Process Independence

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