任务处理系统及自适应任务调度的方法技术方案

技术编号:35918494 阅读:31 留言:0更新日期:2022-12-10 11:01
本申请涉及存储设备领域,尤其涉及一种任务处理系统及自适应任务调度的方法,包括:获取各CPU核的工作负载;依据各CPU核的工作负载调整各CPU核的消耗权重;依据各CPU核的消耗权重对运行于各CPU核上作为生产者的任务处理单元提供的操作请求进行调度。本申请可以使得不同CPU核有不同的使用频率,从而平衡多CPU核多任务在不同场景下的工作量。任务在不同场景下的工作量。任务在不同场景下的工作量。

【技术实现步骤摘要】
任务处理系统及自适应任务调度的方法


[0001]本申请涉及存储设备领域,尤其涉及一种任务处理系统及自适应任务调度的方法。

技术介绍

[0002]在一些应用中,处理器需要处理大规模并发任务。例如:用于网络设备、存储设备的嵌入式处理器,需要处理并发的多个网络包或并发的多个IO命令。
[0003]请参阅图1A,图1A展示了现有技术中处理大规模并发任务的示意图。
[0004]从左向右的方向是时间流逝的方向。图1A还展示了被处理的多个任务(任务1

1、任务2

1、任务3

1、任务1

2、任务2

2与任务3

2),其中在结构为“a

b”的附图标记中,在前的符号a指示任务,而在后的符号b指示任务中包括的子任务。图1A展示了按时间顺序处理了3个任务,每个任务包括2个子任务。
[0005]实线箭头指示了处理多个任务的时间顺序,虚线箭头指示了任务处理的逻辑顺序。例如,以任务1为例,要先处理其任务1

1,再处理其任务1

2。依然作为举例,参看图1A,在处理完任务1

1后,任务1

2(因所需资源尚未就绪等原因)不能立刻处理,因而通过调度先执行任务2

1与任务3

1,随后响应于任务1

2(所需的资源就绪等原因)能够被处理,在处理完任务3
>‑
1后,调度执行任务1

2。
[0006]在处理器上,通过执行代码段来处理任务。单一CPU(或CPU核),任一时刻仅处理单一任务。示例性地,如图1A所示,对于待处理的多个任务,先执行处理任务1

1的代码段,接下来执行处理任务2

1的代码段,接下来执行处理任务3

1的代码段,接下来执行处理任务1

2的代码段,接下来执行处理任务2

2的代码段以及接下来执行处理任务3

2的代码段。在各个处理任务的代码段中指示了任务处理的逻辑顺序。例如,该逻辑顺序包括任务1

2要在任务1

1之后处理。作为又一个例子,在处理任务1

1的代码段中指示其逻辑顺序在后处理的代码段应为处理任务1

2的代码段。
[0007]请参阅图1B,图1B展示了现有技术中任务处理系统的示意图。
[0008]任务处理系统包括软件与硬件两部分。硬件包括例如运行软件的一个或多个CPU,与处理相关任务的其他硬件资源(例如,存储器、编解码器、接口、加速器、中断控制器等)。
[0009]将在CPU上运行的软件的代码段称为任务处理单元。任务处理系统包括多个任务处理单元,每个任务处理单元处理相同或不同的任务。例如,任务处理单元0处理任务的第一子任务(例如:任务1

1、任务2

1与任务3

1),而任务处理单元1、任务处理单元2与任务处理单元3处理任务的第二子任务(例如任务1

2、任务2

2与任务3

2)。
[0010]任务处理单元所需的资源包括例如CPU核、存储空间、待读取的数据、就数据写入操作完成的指示等。在存储设备的例子中,任务处理单元包括例如DM(Data Manger,数据管理)单元、SM(Schedule Manager,调度管理)单元、GC(Garbage Collection,垃圾回收)单元等,DM单元用于接收主机发送的IO命令,解析IO命令的关键信息,在主机与存储设备之间搬移数据等。对于写命令,还将写命令对应的操作请求发送给SM单元以做进一步处理。GC单元
用于实施垃圾回收,包括回收数据的选取和根据所回收数据生成写请求向SM单元的发送等。SM单元用于将DM单元和GC单元的操作请求所对应的数据进行组装,将组装好的数据发送给闪存控制器,接收闪存控制器提供的处理完成消息,并负责后续的一些处理,例如闪存转换层映射表的更新,日志请求生成,相关资源的释放等。
[0011]请参阅图2A,图2A展示了现有技术中不同任务处理单元在CPU核上的分布情况的示意图。
[0012]以存储设备处理写命令的任务处理系统为例:为处理写命令,任务处理系统提供了DM单元、SM单元与GC单元。为了提供处理写命令的并发能力,DM单元有4个,而GC单元与SM单元各有2个。这些任务处理单元在例如4个CPU核上被调度并处理。例如:一个DM单元和一个SM单元在CPU0上被调度并处理,一个DM单元和一个SM单元在CPU1上被调度并处理,一个DM单元和一个GC单元在CPU2上被调用并处理,一个DM单元和一个GC单元在CPU3上被调用并处理。
[0013]请参阅图2B,图2B展示了现有技术中DM单元与SM单元的交互情况的示意图。
[0014]图2B展示了4个DM单元与2个SM单元。在纯写情况下任务间的交互情况如下,4个DM单元的每个都向任何一个SM单元提供操作请求。在这样的任务交互结构中,DM单元产生操作请求并提供给SM单元,而SM单元处理DM单元产生的操作请求,从而构成了生产者与消费者模型,DM单元作为生产者生产操作请求,而SM单元作为消费者处理操作请求。
[0015]在图2B中,还提供了4个CPU核(CPU0~CPU3),4个DM单元分别位于CPU0、CPU1、CPU2、CPU3之一,而两个SM单元分别位于CPU0与CPU1。
[0016]从图2B中可以看出,明显CPU0和CPU1的工作负载会更重(因为要运行DM单元与SM单元),而CPU2与CPU3的工作负载较轻(因为仅分别运行DM单元,而不运行SM单元),如果SM单元采用无差别对待每一个DM单元来处理写请求,会导致CPU2与CPU3处于闲置的状态,造成CPU算力的浪费,不能发挥系统的最大算力。
[0017]在实践中,任务处理系统还包括诸如GC单元等其他任务处理单元,CPU核的数量、各任务处理单元的数量以及主机提供的IO命令的速率/类型等也存在不同,这进一步加剧了任务处理系统的复杂性,加剧了各CPU核的负载不均衡。

技术实现思路

[0018]本申请提供了任务处理系统及自适应任务调度的方法,以使得不同CPU核有不同的使用频率,从而平衡多CPU核多任务在不同场景下的工作量。
[0019]为解决上述技术问题,本申请提供如下技术方案:
[0020]一种自适应任务调度的方法,包括如下步骤:获取各CPU核的工作负载;依据各CPU核的工作负载调整各CPU核的消耗权重;依据各CPU核的消耗权重对运行于各CPU核上作为生产者的任务处理单元提供的操作请求进行调度。
[0021]如上所述的自适应任务调度的方法,其中一示本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种自适应任务调度的方法,其特征在于,包括如下步骤:获取各CPU核的工作负载;依据各CPU核的工作负载调整各CPU核的消耗权重;依据各CPU核的消耗权重对运行于各CPU核上作为生产者的任务处理单元提供的操作请求进行调度。2.根据权利要求1所述的自适应任务调度的方法,其特征在于,依据各CPU核的工作负载调整各CPU核的消耗权重,包括:当CPU核的工作负载升高或过高,则提高该CPU核上运行的作为生产者的任务处理单元的消耗权重;当CPU核的工作负载降低或过低,则降低该CPU核上运行的作为生产者的任务处理单元的消耗权重。3.根据权利要求1或2所述的自适应任务调度的方法,其特征在于,依据各CPU核的消耗权重对运行于各CPU核上作为生产者的任务处理单元提供的操作请求进行调度,包括:CPU核的消耗权重提高时,降低该CPU核上运行的作为生产者的任务处理单元提供的操作请求被调度的几率;CPU核的消耗权重降低时,提高该CPU核上运行的作为生产者的任务处理单元提供的操作请求被调度的几率。4.根据权利要求1或2所述的自适应任务调度的方法,其特征在于,对运行于各CPU核上作为生产者的任务处理单元提供的操作请求进行调度时,根据调整后CPU核的消耗权重来消耗CPU核的可用权重;根据调整后CPU核的消耗权重来消耗CPU核的可用权重时,对CPU核的可用权重与消耗权重进行判断;若CPU核的可用权重小于其消耗权重,则拒绝调用该CPU核上运行的作为生产者的任务处理单元提供的操作请求;若CPU核的可用权重不小于其消耗权重,则调用该CPU核上运行的作为生产者的任务处理单元提供的操作请求。5.根据权利要求1或2所述的自适应任务调度的方法,其特征在于,若两个CPU核上运行...

【专利技术属性】
技术研发人员:徐凯张志青秦汉张
申请(专利权)人:苏州启恒融智信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1