一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

任务队列的仲裁管理方法、存储介质及固态硬盘与流程

2022-04-02 03:42:39 来源:中国专利 TAG:


1.本发明涉及数据存储技术领域,尤其涉及一种任务队列的仲裁管理方法、存储介质及固态硬盘。


背景技术:

2.nvme ssd使用多队列技术完成高效的io请求,ssd控制器中多队列调度仲裁的方法一般有rr(round robin,循环调度)及weighted round robin(wrr,加权循环调度)两种。随着上层业务对特定io业务有越来越多优先级的要求,rr仲裁机制已经不能满足带有优先级要求业务的需求,因此带有权重的wrr及urgent class紧急队列仲裁机制越来越会被广泛地使用。但nvme协议中提到的wrr及urgent技术本身存在一定缺陷,无法完全满足市场的需求。
3.现有技术方案使用wrr队列和urgent class队列进行仲裁的具体技术方案如下:1. 优先级队列可分urgent、high、medium及low几种优先级。wrr可以配置不同的权重,上层业务可以使用nvme set feature命令来调整wrr各优先级队列的权重值,如图1所示。
4.2. urgent class 队列的优先级最高,但由于使用过程中会存在将其他队列饿死的问题,所以目前在实际业务中很少使用。
5.3. 根据nvme spec描述,现有技术方案中,队列优先级创建后不能改变,如需改变只能删除队列再重新创建队列。
6.综上可见,现有wrr队列和urgent class队列仲裁的技术方案主要存在以下几个方面的问题:1. 传统调度策略中urgent class 队列的优先级为最高,只要urgent 队列中有命令存在就会被仲裁调度。所以如果当队列中提交的命令较长时间处于非空状态时,其他低优先级队列将会因得不到调度而出现饿死的情况,此时业务io命令就会出现超时。nvme协议中也明确指出,wrr及urgent队列的调度需要使用者要非常小心,因为urgent很可能会将其他队列饿死,这使得传统的urgent 队列调度策略目前比较难以在实际中使用。
7.2. 在实际工程应用中,业务可以通过调整wrr队列间的权重比例获取不同的服务效果。现有技术方案无法对urgent 队列调整权重比例以获取不同的服务效果,并且当请求服务数量过多时还可能就会导致饿死的问题。
8.3.优先级队列是在创建sq(submission queue)时指定,如果要重新调整优先级,则必须删除原有sq后再创建,即上层业务必须停止。对于需要在运行时调整优先级的上层业务而言,删除队列再创建的方式并不灵活,也会大大降低可用性。


技术实现要素:

9.鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的任务队列的仲裁管理方法、存储介质及固态硬盘。
10.本发明的一个方面,提供了一种任务队列的仲裁管理方法,所述方法包括:判断队列优先级为紧急的第一任务队列是否为空;若队列优先级为紧急的任务队列非空,则优先对所述第一任务队列进行调度;在对所述第一任务队列进行调度过程中,监测任务队列的调度状态是否满足预设的优先调度权释放条件;当任务队列的调度状态满足预设的优先调度权释放条件时,则根据加权循环调度策略对队列优先级为其他等级的任务队列进行调度。
11.进一步地,所述监测任务队列的调度状态是否满足预设的优先调度权释放条件,包括:监测队列优先级为其他等级的各个任务队列中的待调度的任务数量;根据各个任务队列中的待调度的任务数量对队列优先级为其他等级的任务队列进行流量预测;若流量预测结果为调度超时,则判定任务队列的调度状态满足预设的优先调度权释放条件。
12.进一步地,所述根据各个任务队列中的待调度的任务数量对队列优先级为其他等级的任务队列进行流量预测包括:当队列优先级为其他等级的任务队列为非空时,开始对每一任务队列进行流量统计,直到当前队列再次为空或达到预设时间阈值t,统计该段时间内待调度的任务数量n;根据预设时间阈值t、队列优先级为其他等级的每一任务队列的队列深度阈值d以及各个队列对应的待调度的任务数量n判断对应的各个队列的流量是否调度超时;当队列优先级为其他等级的任务队列中存在调度超时的任务队列时,判定流量预测结果为调度超时。
13.进一步地,所述判断对应的各个队列的流量是否调度超时的方式如下:判断公式(t/n)
´ꢀ
d 》 w的输出结果是否为真,其中w为预设的超时阈值;若输出结果为真,则对应的队列的流量调度超时。
14.进一步地,所述监测任务队列的调度状态是否满足预设的优先调度权释放条件,包括:监测队列优先级为紧急的第一任务队列是否为空,当所述第一任务队列为空时,判定任务队列的调度状态满足预设的优先调度权释放条件。
15.进一步地,所述监测任务队列的调度状态是否满足预设的优先调度权释放条件,包括:监测队列优先级为紧急的第一任务队列的累计任务调度数量,当累计任务调度数量达到预设权重数值时,判定任务队列的调度状态满足预设的优先调度权释放条件。
16.进一步地,所述方法还包括:预先设置第一上层配置接口;通过所述第一上层配置接口接收上层业务配置的调度控制参数,所述调度控制参数包括是否开启权重机制以执行监测队列优先级为紧急的第一任务队列的累计任务调度数量,以及所述累计任务调度数量的取值。
17.进一步地,所述方法还包括:
在任务队列和仲裁器之间预先设置优先级队列调度层,并建立优先级队列调度层与任务队列之间的映射关系,所述优先级队列调度层用于配置与其具有映射关系的任务队列的优先级,以使仲裁器根据经过优先级队列调度层配置后的队列优先级进行队列调度,包括紧急优先级和其他等级的优先级。
18.进一步地,所述方法还包括:预先设置第二上层配置接口;根据所述第二上层配置接口接收上层业务对所述优先级队列调度层与任务队列之间的映射关系的配置,以动态改变物理队列的优先级。
19.第二方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上任务队列的仲裁管理方法的步骤。
20.第三方面,本发明还提供了一种固态硬盘,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上任务队列的仲裁管理方法的步骤。
21.本发明实施例提供的任务队列的仲裁管理方法、存储介质及固态硬盘,解决了传统wrr及urgent队列的调度时urgent队列容易将其他队列饿死的问题,通过优先调度权释放条件的设置,在执行紧急队列仲裁时,能够避免除优先级为紧急优先级的队列以外的wrr 队列在调度时被饿死,同时可以给上层业务提供紧急优先级的优先调度,从而使紧急优先级队列可以在实际业务中广泛地使用,大幅提高了业务调整优先级的灵活性。
22.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
23.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为现有技术中任务队列的优先级仲裁管理示意图;图2为本发明实施例提供的任务队列的仲裁管理方法的流程图;图3为本发明实施例提供的任务队列的优先级仲裁管理示意图。
具体实施方式
24.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
25.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
26.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
27.图2示意性示出了本发明一个实施例的任务队列的仲裁管理方法的流程图。照图2,本发明实施例的任务队列的仲裁管理方法具体包括以下步骤:s11、判断队列优先级为紧急的第一任务队列是否为空;本发明实施例中,优先级队列可分urgent、high、medium及low几种优先级。任务队列包括优先级为紧急urgent的第一任务队列即urgent class队列和队列优先级为其他等级的任务队列即wrr队列,其中wrr队列的优先级包括但不限于high、medium及low几种,wrr队列可以配置不同的权重以实现high、medium及low几种优先级队列的循环调度,上层业务可以使用nvme set feature命令来调整wrr各优先级队列的权重值。
28.s12、若队列优先级为紧急的任务队列非空,则优先对所述第一任务队列进行调度;s13、在对所述第一任务队列进行调度过程中,监测任务队列的调度状态是否满足预设的优先调度权释放条件;具体的,控制器在进行队列仲裁时,首先确认urgent class队列是否非空,若是则优先对urgent class队列进行调度,并在实现对urgent class队列的调度过程中,监测任务队列的调度状态是否满足预设的优先调度权释放条件,直到满足条件会才释放优先调度权。
29.s14、当任务队列的调度状态满足预设的优先调度权释放条件时,则根据加权循环调度策略对队列优先级为其他等级的任务队列进行调度。
30.本发明实施例提供的任务队列的仲裁管理方法,解决了传统wrr及urgent队列的调度时urgent队列容易将其他队列饿死的问题,通过优先调度权释放条件的设置,在执行紧急队列仲裁时,能够避免除优先级为紧急优先级的队列以外的wrr 队列在调度时被饿死,同时可以给上层业务提供紧急优先级的优先调度,从而使紧急优先级队列可以在实际业务中广泛地使用,大幅提高了业务调整优先级的灵活性。
31.在本发明实施例在,步骤s13中的监测任务队列的调度状态是否满足预设的优先调度权释放条件,进一步地包括如下步骤s131~s13,其中:s131、监测队列优先级为其他等级的各个任务队列中的待调度的任务数量。
32.s132、根据各个任务队列中的待调度的任务数量对队列优先级为其他等级的任务队列进行流量预测。其中根据各个任务队列中的待调度的任务数量对队列优先级为其他等级的任务队列进行流量预测具体实现如下:当队列优先级为其他等级的任务队列为非空时,开对每一任务队列进行流量统计,直到当前队列再次为空或达到预设时间阈值t,统计该段时间内待调度的任务数量n;根据预设时间阈值t、队列优先级为其他等级的每一任务队列的队列深度阈值d以及各个队列对应的待调度的任务数量n判断对应的各个队列的流量是否调度超时;当队列优先级为其他等级的任务队列中存在调度超时的任务队列时,判定流量预测结果为调度超时。
33.s133、若流量预测结果为调度超时,则判定任务队列的调度状态满足预设的优先
调度权释放条件。
34.本发明实施例中,控制器为wrr 队列增加流量预测机制,预测的结果将作为urgent 紧急队列仲裁策略条件之一,具体描述如下:a) 控制器提供wrr 队列io超时阈值w的配置,该值作为超时判断依据,当预测超时时间大于该值时,会预判该wrr队列可能将来会超时,该值由固件设置,可设置为10~30秒。
35.b) 控制器提供wrr 队列流量预测的时间阈值t的配置,该值为单次流量预测的最大单位时间,该值由固件设置,可以设置为50~200毫秒。
36.c) 控制器对各wrr 队列进行流量预测后,输出综合预测结果,结果为真表示可能会超时,结果为假表示不会超时,具体方法描述如下:i.wrr 队列为非空时,开始该队列的流量统计,直到队列为空或达到t时间的阈值,控制器会记录下该段时间内命令待处理的任务个数n。
37.ii. 根据t、n 及队列的最大深度输出预测结果。进一步地,所述判断对应的各个队列的流量是否调度超时的方式如下:判断公式(t/n)
´ꢀ
d 》 w的输出结果是否为真,其中w为预设的超时阈值;若输出结果为真,则对应的队列的流量调度超时。
38.iii.对所有队列的结果做或运算,输出综合预测结果。
39.在本发明一个实施例在,步骤s13中的监测任务队列的调度状态是否满足预设的优先调度权释放条件,具体还包括:监测队列优先级为紧急的第一任务队列是否为空,当所述第一任务队列为空时,判定任务队列的调度状态满足预设的优先调度权释放条件。
40.在本发明另一实施例在,步骤s13中的监测任务队列的调度状态是否满足预设的优先调度权释放条件,具体还包括:监测队列优先级为紧急的第一任务队列的累计任务调度数量,当累计任务调度数量达到预设权重数值时,判定任务队列的调度状态满足预设的优先调度权释放条件。
41.进一步地,控制器预先设置第一上层配置接口vendor set feature;通过所述第一上层配置接口接收上层业务配置的调度控制参数,所述调度控制参数包括是否开启权重机制以执行监测队列优先级为紧急的第一任务队列的累计任务调度数量,以及所述累计任务调度数量的取值。
42.本发明通过第一上层配置接口vendor set feature的设置,解决了urgent队列不能设置权重比例的问题,可以给上层业务提供urgent class队列相应的权重设置,从而使得urgent class 队列可以在实际业务中广泛地使用。
43.本发明实施例中,控制器提供urgent class 队列增加可配的权重机制,该权重值可以由上层业务通过vendor set feature通路来开启和设置。调度器进行队列仲裁时,优先对urgent 队列进行调度,直到满足以下条件之一会才释放优先调度权:其中,优先调度权释放条件包括:a) urgent class队列里任务为空;b) 队列优先级为紧急的第一任务队列的累计任务调度数量达到预设权重数值;c) 队列优先级为其他等级的任务队列的流量预测结果为真。
44.以上权重机制只有在开启时(默认不开启)上面条件b)才会作为有效条件,该权重机制开启时,可以让业务实现比wrr更高优先级但比传统urgent 队列调度更为宽松的可以
配置的调度方式。该权重机制关闭时,上面条件b)不生效,由于有c)防饿死机制,业务可以最大限度的使用urgent 队列带来的优先权。
45.本发明解决了传统wrr及urgent队列的调度时urgent队列容易将其他队列饿死的问题,通过优先调度权释放条件可以避免其他wrr 队列在调度时被饿死,从而使得urgent class 队列可以在实际业务中广泛使用。
46.本发明实施例中,在任务队列和仲裁器之间预先设置优先级队列调度层,并建立优先级队列调度层与任务队列之间的映射关系,所述优先级队列调度层用于配置与其具有映射关系的任务队列的优先级,以使仲裁器根据经过优先级队列调度层配置后的队列优先级进行队列调度,包括紧急优先级和其他等级的优先级。
47.进一步地,控制器预先设置第二上层配置接口;根据所述第二上层配置接口接收上层业务对所述优先级队列调度层与任务队列之间的映射关系的配置,以动态改变物理队列的优先级。
48.本实施例中,控制器能够提供队列优先级属性设置机制,固件可将配置接口提供给上层业务。如图3所示,具体描述如下:a) 控制器在物理队列和仲裁器之间增加一级优先级队列调度层。
49.b) 优先级队列调度层与物理队列之前使用mapping方式管理,具体mapping关系由固件维护。
50.c) 固件提供一组vendor set/get feature配置接口,由上层驱动或业务来修改mapping关系,从而动态改变队列的优先级。如图3示例所示,urgent和high队列在运行时被修改了mapping关系,从而改变了队列的优先级。
51.通过本发明实施例提供的优先级属性配置方法及调整优先级的上层配置接口的设置,可以在线配置队列的优先级,实现了可以在不删除队列的情况下灵活调整优先级,大幅提高了业务调整优先级的灵活性以及wrr及urgent在工程实际中的可用性。
52.对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
53.此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述任务队列的仲裁管理方法的步骤。
54.本实施例中,所述任务队列的仲裁管理方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的
要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
55.此外,本发明实施例还提供了一种固态硬盘,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任务队列的仲裁管理方法的步骤。例如图2所示的步骤s11~s14。
56.本发明实施例提供的任务队列的仲裁管理方法,解决了传统wrr及urgent队列的调度时urgent队列容易将其他队列饿死的问题,通过优先调度权释放条件的设置,在执行紧急队列仲裁时,能够避免除优先级为紧急优先级的队列以外的wrr 队列在调度时被饿死,同时可以给上层业务提供紧急优先级的优先调度,从而使紧急优先级队列可以在实际业务中广泛地使用,大幅提高了业务调整优先级的灵活性。
57.此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
58.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献