对命令调度队列的调度方法、装置、控制器和存储介质与流程

文档序号:30616879发布日期:2022-07-02 01:14阅读:53来源:国知局
对命令调度队列的调度方法、装置、控制器和存储介质与流程

1.本技术涉及计算机技术领域,特别是涉及一种对命令调度队列的调度方法、装置、控制器和存储介质。


背景技术:

2.随着大数据时代的到来,用户对存储系统的要求越来越高,在存储和调用数据的过程中对命令调度队列的调度设计影响了存储的性能。
3.现有技术中对命令调度队列的调度一般是从队头读取命令并执行,而在实际应用中可能会出现这样一种情况,例如当一条读大量数据的读命令a正在磁盘设备上执行,这时候上层应用又下发了一条管理命令b,管理命令b的内容是要取消掉读命令a,按照现有技术,在管理命令b之前的其它命令会先被调度执行,也就是说管理命令b要等一段时间才能被调度执行,在这段时间内,磁盘设备仍在执行读命令a,本来要取消的读命令a还要执行一段时间,就造成了资源浪费。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够避免因管理命令得不到及时执行而导致的不必要的执行开销和资源浪费的对命令调度队列的调度方法、装置、控制器和存储介质。
5.第一方面,本技术提供了一种对命令调度队列的调度方法,应用于串行小型计算机系统接口控制器中,串行小型计算机系统接口控制器维护有多个命令调度队列,该方法包括:
6.检测多个命令调度队列中是否存在待执行的候选命令调度队列;
7.若多个命令调度队列中存在待执行的候选命令调度队列,则从候选命令调度队列中按照优先级从高到低的顺序依次选择目标命令调度队列;
8.从目标命令调度队列的队头取出目标命令,并执行。
9.本技术实施例通过检测多个命令调度队列中是否存在待执行的候选命令调度队列;若多个命令调度队列中存在待执行的候选命令调度队列,则从候选命令调度队列中按照优先级从高到低的顺序依次选择目标命令调度队列;从目标命令调度队列的队头取出目标命令,并执行。该方法通过设置多个命令调度队列,根据命令类型和命令状态对命令调度队列配置优先级,这样可以保证了紧急的重要的管理命令可以比读写命令优先得到执行,可以避免因管理命令得不到及时执行而导致的不必要的执行开销和资源浪费。
10.在其中一个实施例中,该方法还包括:
11.接收串行小型计算机系统接口命令,获取串行小型计算机系统接口命令的命令类型和命令状态;
12.根据命令类型和命令状态确定串行小型计算机系统接口命令插入的标的命令调度队列;
13.将串行小型计算机系统接口命令插入到标的命令调度队列中。
14.本技术通过在存储sas命令的过程中基于sas命令的命令类型和命令状态来确定sas命令的插入的标的命令调度队列,以便于在后续执行sas命令时,基于命令调度队列的优先级来执行,确保了优先级高的命令优先执行,避免资源浪费。
15.在其中一个实施例中,检测多个命令调度队列中是否存在待执行的候选命令调度队列,包括:
16.对于各命令调度队列,根据命令调度队列中是否存在待执行的串行小型计算机系统接口命令来确定命令调度队列中是否存在待执行的候选命令调度队列。
17.本技术中根据是否存在sas命令来确定是否存在候选命令调度队列,通过较为简单的方法识别候选命令调度队列,简化运算复杂度,降低运算量。
18.在其中一个实施例中,该方法还包括:
19.对于各命令调度队列,根据命令调度队列中存储的串行小型计算机系统接口命令的命令类型和命令状态确定命令调度队列的优先级。
20.本技术通过命令类型和命令状态来识别命令调度队列的优先级,具体的可以自定义不同命令类型的优先级,也可以自定义不同命令状态的优先级,还可以自定义不同的命令类型与命令状态组合后优先级,通过确定各个命令调度队列的优先级为执行sas命令时提供有力依据,确保优先级高的sas命令优先执行,避免资源浪费。
21.在其中一个实施例中,命令类型可以包括管理类型和读写类型,命令状态可以包括待发命令帧的状态和待发数据帧的状态。
22.在其中一个实施例中,从目标命令调度队列的队头取出目标命令,并执行,包括:将目标命令发送给对应的串行小型计算机系统接口设备。
23.第二方面,本技术还提供了一种对命令调度队列的调度装置,应用于串行小型计算机系统接口控制器中,串行小型计算机系统接口控制器维护有多个命令调度队列,该装置包括:
24.检测模块,用于检测多个命令调度队列中是否存在待执行的候选命令调度队列;
25.选择模块,用于若多个命令调度队列中存在待执行的候选命令调度队列,则从候选命令调度队列中按照优先级从高到低的顺序依次选择目标命令调度队列;
26.执行模块,用于从目标命令调度队列的队头取出目标命令,并执行。
27.第三方面,本技术还提供了一种串行小型计算机系统接口控制器,串行小型计算机系统接口控制器维护有多个命令调度队列,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
28.检测多个命令调度队列中是否存在待执行的候选命令调度队列;
29.若多个命令调度队列中存在待执行的候选命令调度队列,则从候选命令调度队列中按照优先级从高到低的顺序依次选择目标命令调度队列;
30.从目标命令调度队列的队头取出目标命令,并执行。
31.第四方面,本技术还提供了一种计算机可读存储介质。计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
32.检测多个命令调度队列中是否存在待执行的候选命令调度队列;
33.若多个命令调度队列中存在待执行的候选命令调度队列,则从候选命令调度队列
中按照优先级从高到低的顺序依次选择目标命令调度队列;
34.从目标命令调度队列的队头取出目标命令,并执行。
35.第五方面,本技术还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
36.检测多个命令调度队列中是否存在待执行的候选命令调度队列;
37.若多个命令调度队列中存在待执行的候选命令调度队列,则从候选命令调度队列中按照优先级从高到低的顺序依次选择目标命令调度队列;
38.从目标命令调度队列的队头取出目标命令,并执行。
39.上述对命令调度队列的调度方法、装置、控制器和存储介质,应用于串行小型计算机系统接口控制器中,串行小型计算机系统接口控制器维护有多个命令调度队列,该方法通过设置多个命令调度队列,根据命令类型和命令状态对命令调度队列配置优先级,这样可以保证了紧急的重要的管理命令可以比读写命令优先得到执行,可以避免因管理命令得不到及时执行而导致的不必要的执行开销和资源浪费。
附图说明
40.图1为一个实施例中对命令调度队列的调度方法的流程示意图;
41.图2为另一个实施例中对命令调度队列的调度方法的流程示意图;
42.图3为一个实施例中命令存储方法的流程示意图;
43.图4为示例性地示出的命令调度队列的示意图;
44.图5为一个实施例中对命令调度队列的调度装置的结构框图;
45.图6为一个实施例中计算机设备的内部结构图。
具体实施方式
46.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
47.随着大数据时代的到来,用户对存储系统的要求越来越高,基于sas(英文:serial attached scsi,中文:串行小型计算机系统接口)控制器的raid(英文:redundant arrays of independent disks,中文:独立冗余磁盘阵列)/hba(英文:host bus adapter,中文:主机总线适配器)卡在服务器系统中得到了广泛应用。raid/hba均为磁盘装置,用于进行数据存储。
48.在实际应用中,设置raid/hba卡的计算机设备一般可以称为sas主机,sas主机通过sas通道(例如sas线缆)连接sas设备(例如sas磁盘或者sas扩展器),sas主机设置在raid/hba卡中的sas控制器的主要作用在于控制sas命令的执行,其中sas命令是指发送给sas设备的,让sas设备进行特定操作的命令。
49.sas控制器控制sas命令的执行的过程包括:sas控制器维护有命令调度队列,当sas通道空闲时,sas控制器可以根据优先级配置从命令调度队列中选择一个命令派发给sas设备。然而在实际应用中可能会出现这样一种情况,例如当一条读大量数据的读命令a正在sas设备上执行,这时候上层应用又下发了一条管理命令b,管理命令b的内容是要取消
掉读命令a,按照现有技术,在管理命令b之前的其它命令会先被调度执行,也就是说管理命令b要等一段时间才能被调度执行,在这段时间内,sas设备仍在执行读命令a,本来要取消的读命令a还要执行一段时间,就造成了资源浪费。
50.在一个实施例中,如图1所示,提供了一种对命令调度队列的调度方法,应用于串行小型计算机系统接口控制器中,所述串行小型计算机系统接口控制器维护有多个命令调度队列,包括以下步骤:
51.步骤101,检测多个命令调度队列中是否存在待执行的候选命令调度队列。
52.本技术实施例中,串行小型计算机系统接口控制器(以下简称为sas控制器)维护有多个命令调度队列,各个命令调度队列用于存储不同类型的不同状态的sas命令。
53.需要说明的是,各个命令调度队列具有不同的优先级,且各个命令调度队列的优先级可以是用户自定义的。例如,用户可以自定义命令调度队列a的优先级高于命令调度队列b,命令调度队列b的优先级高于命令调度队列c,以此类推。
54.可选的,本技术实施例中,可以先按照命令类型对各个命令调度队列进行优先级划分,然后在针对同一命令类型的命令调度队列按照不同命令状态进行优先级划分,该种优先级的划分方式更加符合sas设备的命令特征,获得的效果更好。
55.可选的,各个命令调度队列具有标志位,该标志位用于表示命令调度队列是否为候选命令调度队列,通过获取各个命令调度队列的标志位可以确定哪些命令调度队列为待执行的候选命令调度队列。
56.可选的,本技术实施例中,对于各命令调度队列,根据命令调度队列中是否存在待执行的串行小型计算机系统接口命令来确定命令调度队列中是否存在待执行的候选命令调度队列。
57.其中,命令调度队列中有sas命令即表示存在待执行的候选命令调度队列,没有sas命令即表示不存在待执行的候选命令调度队列。通过遍历各个命令调度队列可以确定是否存在待执行的候选命令调度队列。
58.步骤102,若多个命令调度队列中存在待执行的候选命令调度队列,则从候选命令调度队列中按照优先级从高到低的顺序依次选择目标命令调度队列。
59.步骤103,从目标命令调度队列的队头取出目标命令,并执行。
60.其中,待执行的候选命令调度队列是指候选命令调度队列中存在待执行的sas命令。
61.本技术实施例中,可以将待执行的候选命令调度队列从多个命令调度队列中提取出来。然后按照各个候选命令调度队列的优先级对各个候选命令调度队列进行排序,按照顺序从前到后,依次将每个候选命令调度队列确定为目标命令调度队列。在某候选命令调度队列为目标命令调度队列之后,可以从该目标命令调度队列中的队头取出目标命令,并执行目标命令。
62.可选的,目标命令可以例如是读写命令、或者管理命令,其中执行目标命令的方式有多种,例如是将目标命令发送给sas设备,或者是根据目标命令确定目标对象等等,本技术实施例在此不进行限定。
63.可选的,本技术实施例中,执行目标命令可以是指将目标命令发送给对应的sas设备。
64.本技术实施例提供的对命令调度队列的调度方法,通过检测多个命令调度队列中是否存在待执行的候选命令调度队列;若多个命令调度队列中存在待执行的候选命令调度队列,则从候选命令调度队列中按照优先级从高到低的顺序依次选择目标命令调度队列;从目标命令调度队列的队头取出目标命令,并执行。该方法通过设置多个命令调度队列,根据命令类型和命令状态对命令调度队列配置优先级,这样可以保证了紧急的重要的管理命令可以比读写命令优先得到执行,可以避免因管理命令得不到及时执行而导致的不必要的执行开销和资源浪费。
65.在一种可选的实现方式中,如图2所示,本技术实施例还提供另一种对命令调度队列的调度方法,该方法应用于sas控制器中,sas控制器维护有多个命令调度队列,该多个命令调度队列包括存储管理类型命令的命令调度队列和存储读写类型命令的命令调度队列,该方法包括以下步骤:
66.步骤201,检测存储管理类型的命令调度队列中是否存在待执行的候选命令调度队列。
67.检测存储管理类型的命令调度队列中是否存在sas命令,若存在sas命令,则表示存在该sas命令的命令调度队列为候选命令调度队列。若不存在sas命令,则该不存在sas命令的命令调度队列不为候选命令调度队列。
68.步骤202,若存在,则从候选命令调度队列中按照优先级从高到低的顺序依次选择目标命令调度队列。
69.本技术实施例中,存储管理类型的命令调度队列依然存在优先级高低的区别,本技术通过对候选命令调度队按照优先级从高到低的顺序进行排序,然后按照优先级从高到低的顺序依次将候选命令调度队列确定为目标命令调度队列。
70.步骤203,从目标命令调度队列的队头取出目标命令,并执行。
71.步骤204,在候选命令调度队列执行完成之后,对于从存储读写类型命令的命令调度队列中按照优先级从高到低的顺序依次确定目标命令调度队列,从目标命令调度队列的队头取出目标命令,并执行。
72.本技术实施例中,候选命令调度队列均为存储管理类型的命令的命令调度队列,在候选命令调度队中的命令执行完成之后,可以继续执行存储读写类型命令的命令调度队列中的sas命令。执行的过程包括:对存储读写类型命令的命令调度队列按照优先级从高到低的顺序依次确定目标命令调度队列,从目标命令调度队列的队头取出目标命令,并执行。
73.本技术实施例中,对于存储管理类型命令的命令调度队列进行优先处理,保证了管理类型的命令可以得到及时响应,从而避免资源浪费。
74.在上述实施例的基础上,如图3所示,本技术实施例还提供一种命令存储方法,该方法包括以下步骤:
75.步骤301,接收串行小型计算机系统接口命令,获取串行小型计算机系统接口命令的命令类型和命令状态。
76.本技术实施例中,在sas命令的执行过程中,需要sas控制器和sas设备进行多次交互,比如一条从磁盘上读数据的sas命令,需要sas控制器先把读命令封装成一个命令帧发给磁盘,磁盘再把数据封装成数据帧发给sas控制器,要读的数据可能需要磁盘发多个数据帧才能发完,等发完所有的数据后,磁盘会发一个应答结果帧给sas控制器,告知sas控制器
命令完成。其中,在该命令完成之前,该读数据的sas命令的状态将会保持为待发数据帧的状态。
77.而在执行该sas命令的过程中,sas控制器还可以接收到上层应用下发的其他命令,该其他命令的命令状态可以为待发命令帧的状态或者为待发数据帧的状态。
78.由此可见,sas控制器在接收到sas命令之后,可以基于sas命令的实际状态确定该sas命令的命令类型和命令状态。
79.可选的,命令类型例如是管理类型或者读写类型。可选的,管理类型的命令可以进一步细分为对sas设备(扩展器或者磁盘)的管理的命令,对sas主机的管理的命令,对读写命令管理的命令等等。读写类型命令可以分成读命令和写命令。命令状态可以包括待发命令帧的状态和待发数据帧的状态。
80.步骤302,根据命令类型和命令状态确定串行小型计算机系统接口命令插入的标的命令调度队列。
81.可选的,本技术实施例中,sas控制器可以根据命令类型和命令状态确定该sas命令的命令优先级,然后将该sas命令插入到同一优先级的命令调度队列中,该插入的命令调度队列即标的命令调度队列。
82.可选的,本技术实施例中,对于每个命令调度队列,各个命令调度队列中存储的命令的类型和状态并不相同,本技术中,根据各个命令调度队列中存储的命令的命令类型和命令状态计算各个命令调度队列的优先级,然后在得到sas命令的命令优先级的基础上,将sas命令插入到同一优先级的命令调度队列中。
83.可选的,本技术实施例中,可以根据命令类型和命令状态遍历多个命令调度队列,将查找到的同一命令类型和命令状态对应的命令调度队列确定为标的命令调度队列。
84.其中,根据各个命令调度队列中存储的命令的命令类型和命令状态计算各个命令调度队列的优先级的过程可以例如是:分别自定义命令类型的优先级和命令状态的优先级,对于各个命令调度队列,将其存储的命令的命令类型的优先级和命令状态的优先级组合起来,得到命令调度队列的优先级。
85.可选的,本技术实施例中,可以对不同的命令类型和命令状态赋予不同的系数值,对于各个命令调度队列,通过对命令调度队列存储的命令的命令类型的系数值和命令状态的系数值进行运算可以得到运算结果,根据运算结果的大小确定各个命令调度队列的优先级。其中,运算可以例如是加权运算,命令类型和命令状态的权值可以是固定的,也可以是自定义的。
86.可选的,本技术实施例中,可以通过自定义的方式确定各个命令调度队列的优先级,与此同时,也可以基于自定义的方式定义各个命令调度队列中存储的命令的命令类型和命令状态。
87.步骤303,将串行小型计算机系统接口命令插入到标的命令调度队列中。
88.可选的,本技术实施例中,可以将sas命令插入到标的命令调度队列的队尾。
89.可选的,本技术实施例中,可以根据sas命令的优先级确定其在标的命令调度队列中的位置,并插入。
90.可选的,本技术实施例中,在接收到sas命令之后,获取到sas命令的命令类型和命令状态,根据sas命令的命令类型和命令状态确定标的命令调度队列,并将sas命令插入到
标的命令调度队列中,这样通过命令类型和命令状态来对sas命令的优先级进行排序,保证了优先级较高的sas命令得到优先处理,避免资源浪费。
91.下面结合图4对本技术技术方案进行举例说明,如图4所示,sas控制器维护有4个命令调度队列,该4个命令调度队列按命令类型和命令所处阶段的状态设置的,首先,按命令类型可以划分为管理类命令和读写类命令,然后是把同一类型的命令按命令所处阶段的状态,分为待发命令帧的命令和待发数据帧的命令,其中,2种类型和2种状态组成4组命令调度队列,分别为:待发命令帧的管理命令队列,待发数据帧的管理命令队列,待发命令帧的读写命令队列,待发数据帧的读写命令队列。
92.其中,该4组命令调度队列的优先级可以如图4所示,基于命令类型的优先级排序是:管理类型的优先级高于读写类型的优先级。基于命令状态的优先级排序是:待发送命令帧的优先级高于待发送数据帧的优先级。
93.需要说明的是,本技术实施例中,命令分类、命令状态、队列优先级都是可自定义配置的。图4中示出了2个类型和2个状态,仅仅是本发明的一个具体实现方式。可选的,本技术实施例还可以把命令进一步分成更多的类型,比如管理类型的命令可以进一步分成对扩展器管理的命令、对磁盘管理的命令和对读写命令管理的命令,读写类型命令可以分成读命令和写命令。各命令的优先级设置可以例如把待发命令帧状态的命令的优先级设为低于待发数据帧状态的命令的优先级。
94.本技术实施例中,在调度sas命令时,首先选择管理类型的命令调度队列,然后从管理类型的命令调度队列中选择待发命令帧状态的命令调度队列,将选择的命令调度队列确定为目标命令调度队列,从队头获取命令,并依次派发。先根据命令类型再根据命令状态,对命令调度队列配置优先级,保证了紧急的重要的管理命令可以比读写命令优先得到调度执行,可以避免因管理命令得不到及时调度而导致的不必要的执行开销和资源浪费。
95.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
96.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的对命令调度队列的调度方法的对命令调度队列的调度装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个对命令调度队列的调度装置实施例中的具体限定可以参见上文中对于对命令调度队列的调度方法的限定,在此不再赘述。
97.在一个实施例中,如图5所示,提供了一种对命令调度队列的调度装置,应用于串行小型计算机系统接口控制器中,所述串行小型计算机系统接口控制器维护有多个命令调度队列,包括:检测模块501、选择模块502和执行模块503,其中:
98.检测模块501,用于检测多个命令调度队列中是否存在待执行的候选命令调度队列;
99.选择模块502,用于若多个命令调度队列中存在待执行的候选命令调度队列,则从候选命令调度队列中按照优先级从高到低的顺序依次选择目标命令调度队列;
100.执行模块503,用于从目标命令调度队列的队头取出目标命令,并执行。
101.在其中一个实施例中,执行模块503具体用于接收串行小型计算机系统接口命令,获取串行小型计算机系统接口命令的命令类型和命令状态;根据命令类型和命令状态确定串行小型计算机系统接口命令插入的标的命令调度队列;将串行小型计算机系统接口命令插入到标的命令调度队列中。
102.在其中一个实施例中,执行模块503具体用于对于各命令调度队列,根据命令调度队列中是否存在待执行的串行小型计算机系统接口命令来确定命令调度队列中是否存在待执行的候选命令调度队列。
103.在其中一个实施例中,选择模块502具体用于对于各命令调度队列,根据命令调度队列中存储的串行小型计算机系统接口命令的命令类型和命令状态确定命令调度队列的优先级。
104.在其中一个实施例中,执行模块503具体用于命令类型可以包括管理类型和读写类型,命令状态可以包括待发命令帧的状态和待发数据帧的状态。
105.在其中一个实施例中,执行模块503具体用于将目标命令发送给对应的串行小型计算机系统接口设备。
106.上述对命令调度队列的调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
107.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种对命令调度队列的调度方法。
108.本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
109.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
110.检测多个命令调度队列中是否存在待执行的候选命令调度队列;
111.若多个命令调度队列中存在待执行的候选命令调度队列,则从候选命令调度队列中按照优先级从高到低的顺序依次选择目标命令调度队列;
112.从目标命令调度队列的队头取出目标命令,并执行。
113.在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收串行小型计算机系统接口命令,获取串行小型计算机系统接口命令的命令类型和命令状态;根据命令类
型和命令状态确定串行小型计算机系统接口命令插入的标的命令调度队列;将串行小型计算机系统接口命令插入到标的命令调度队列中。
114.在一个实施例中,处理器执行计算机程序时还实现以下步骤:对于各命令调度队列,根据命令调度队列中是否存在待执行的串行小型计算机系统接口命令来确定命令调度队列中是否存在待执行的候选命令调度队列。
115.在一个实施例中,处理器执行计算机程序时还实现以下步骤:对于各命令调度队列,根据命令调度队列中存储的串行小型计算机系统接口命令的命令类型和命令状态确定命令调度队列的优先级。
116.在一个实施例中,处理器执行计算机程序时还实现以下步骤:命令类型可以包括管理类型和读写类型,命令状态可以包括待发命令帧的状态和待发数据帧的状态。
117.在一个实施例中,处理器执行计算机程序时还实现以下步骤:将目标命令发送给对应的串行小型计算机系统接口设备。
118.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
119.检测多个命令调度队列中是否存在待执行的候选命令调度队列;
120.若多个命令调度队列中存在待执行的候选命令调度队列,则从候选命令调度队列中按照优先级从高到低的顺序依次选择目标命令调度队列;
121.从目标命令调度队列的队头取出目标命令,并执行。
122.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收串行小型计算机系统接口命令,获取串行小型计算机系统接口命令的命令类型和命令状态;根据命令类型和命令状态确定串行小型计算机系统接口命令插入的标的命令调度队列;将串行小型计算机系统接口命令插入到标的命令调度队列中。
123.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对于各命令调度队列,根据命令调度队列中是否存在待执行的串行小型计算机系统接口命令来确定命令调度队列中是否存在待执行的候选命令调度队列。
124.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对于各命令调度队列,根据命令调度队列中存储的串行小型计算机系统接口命令的命令类型和命令状态确定命令调度队列的优先级。
125.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:命令类型可以包括管理类型和读写类型,命令状态可以包括待发命令帧的状态和待发数据帧的状态。
126.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将目标命令发送给对应的串行小型计算机系统接口设备。
127.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
128.检测多个命令调度队列中是否存在待执行的候选命令调度队列;
129.若多个命令调度队列中存在待执行的候选命令调度队列,则从候选命令调度队列中按照优先级从高到低的顺序依次选择目标命令调度队列;
130.从目标命令调度队列的队头取出目标命令,并执行。
131.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收串行小型计
算机系统接口命令,获取串行小型计算机系统接口命令的命令类型和命令状态;根据命令类型和命令状态确定串行小型计算机系统接口命令插入的标的命令调度队列;将串行小型计算机系统接口命令插入到标的命令调度队列中。
132.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对于各命令调度队列,根据命令调度队列中是否存在待执行的串行小型计算机系统接口命令来确定命令调度队列中是否存在待执行的候选命令调度队列。
133.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对于各命令调度队列,根据命令调度队列中存储的串行小型计算机系统接口命令的命令类型和命令状态确定命令调度队列的优先级。
134.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:命令类型可以包括管理类型和读写类型,命令状态可以包括待发命令帧的状态和待发数据帧的状态。
135.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将目标命令发送给对应的串行小型计算机系统接口设备。
136.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
137.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
138.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1