CN113806042B - 一种多核实时嵌入式系统的任务调度方法 - Google Patents

一种多核实时嵌入式系统的任务调度方法 Download PDF

Info

Publication number
CN113806042B
CN113806042B CN202110982484.4A CN202110982484A CN113806042B CN 113806042 B CN113806042 B CN 113806042B CN 202110982484 A CN202110982484 A CN 202110982484A CN 113806042 B CN113806042 B CN 113806042B
Authority
CN
China
Prior art keywords
task
core
tasks
scheduled
urgent
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
CN202110982484.4A
Other languages
English (en)
Other versions
CN113806042A (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.)
Beijing Institute of Remote Sensing Information
Original Assignee
Beijing Institute of Remote Sensing Information
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 Beijing Institute of Remote Sensing Information filed Critical Beijing Institute of Remote Sensing Information
Priority to CN202110982484.4A priority Critical patent/CN113806042B/zh
Publication of CN113806042A publication Critical patent/CN113806042A/zh
Application granted granted Critical
Publication of CN113806042B publication Critical patent/CN113806042B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及一种多核实时嵌入式系统的任务调度方法,应用于可互相抢占缓存的任务组成的任务集,任务集中各个任务,被基于任务的截止时间按指定顺序进行调度,其中方法包括:针对待调度的紧急任务,当紧急任务无法在各个处理器核心中以非抢占方式调度时,遍历各个处理器核心,针对当前处理器核心重新制定调度计划并重新分配紧急任务的锁定内容和历史任务的锁定内容占用的缓存空间;在重新分配缓存空间后,根据各个处理器核心中紧急任务的WCET,调度紧急任务至其中一个处理器核心,解决了通过协调任务调度和缓存分配的关系,提升嵌入式系统执行效率的问题。

Description

一种多核实时嵌入式系统的任务调度方法
技术领域
本发明涉及嵌入式处理器领域,具体涉及一种多核实时嵌入式系统的任务调度方法。
背景技术
高速缓存被广泛应用于现代处理器中,用以弥补处理器和片外存储器之间的速度差距。然而,由于不可预测的内存访问延迟,高速缓存也使得计算任务的WCET(Worst-caseExecution Time,最坏执行时间)变得非常困难。现代嵌入式处理器中使用高速缓存锁定机制来缓解缓存的不可预测性问题。具有两级缓存的多核处理器在现代高性能嵌入式系统中得到了越来越多的应用。一个典型的嵌入式系统由一系列任务集合组成。这些任务可能受到时间限制,例如任务的发布时间和截止时间。对于硬实时嵌入式系统,设计者需要在设计阶段构造一个满足所有约束条件(包括时间约束)的可行调度。然而,高速缓存锁定机制的使用使得在具有高速缓存锁定机制的处理器体系结构上为一组任务构造可行的调度变得更加复杂。一方面,为了构造一个可行的调度,任务调度器需要知道每个任务的WCET。另一方面,每个任务的WCET的计算取决于多种因素,包括分配给每个相关任务的每个缓存的大小、为每个任务选定作为缓存锁定内容的数据集和指令集、每个任务选定的数据集和指令集的锁定点,以及两个任务是否可以共享缓存的一部分,因此,如何构造一种任务调度方法,尤其是在紧急任务出现时,在满足所有约束的条件下,从而妥善协调任务调度次序和缓存锁定交织在一起的依赖关系,提高嵌入式系统的执行效率,是亟待我们综合考虑,综合解决的问题。
发明内容
本发明的目的在于,针对实时嵌入式系统领域最常见的具有时间约束的多任务模型,提供了一种多核实时嵌入式系统的任务调度方法,解决了在满足多个任务时间约束的前提下,最大程度地降低系统最差响应时间的技术问题,提高了嵌入式系统执行效率。
本发明技术方案:
根据第一方面,一种多核实时嵌入式系统的任务调度方法,应用于可互相抢占缓存的任务组成的任务集,所述任务集中的各个任务,按基于任务的截止时间按指定顺序进行调度,所述方法包括:
针对待调度的紧急任务,当所述紧急任务无法在各个处理器核心中以非抢占方式调度时,遍历所述各个处理器核心,针对当前处理器核心重新制定调度计划并重新分配所述紧急任务的锁定内容和历史任务的锁定内容占用的缓存空间;
在重新分配缓存空间后,根据所述各个处理器核心中所述紧急任务的WCET,调度所述紧急任务至其中一个处理器核心。
可选地,任务集中的各个任务,按基于任务的截止时间按指定顺序进行调度,包括:
将任务集中的各个任务的截止时间按最早截至时间优先(EDF)顺序排序;
根据最早截至时间优先(EDF)递增的顺序,对应调用所述任务集中的任务。
可选地,所述紧急任务无法在各个处理器核心中以非抢占方式调度时,遍历所述各个处理器核心,针对当前处理器核心重新制定调度计划并重新分配所述紧急任务的锁定内容和历史任务的锁定内容占用的缓存空间,包括:
将缓存空间的分配为一级缓存空间和二级缓存空间;
一级缓存空间只有对应的单个处理器核心能够使用,针对嵌入式系统的单个处理器核心,根据所述紧急任务与在该处理器核心上运行的历史任务的紧急程度绘制本地有向无环图,反应该一级缓存空间所对应的单个处理器核心上的任务使用一级缓存空间的情况;
二级缓存空间能够被嵌入式系统所有的处理器核心所使用,根据所述紧急任务与所有处理器核心上的全部历史任务的紧急情况绘制全局有向无环图,反应所有任务使用二级缓存空间的情况;
所述有向无环图中源点到终点的顺序对应了任务等级的递增顺序,其中,针对任务等级相同的各个目标节点,从源点出发到所述目标节点所经历的最大中转次数相同。
可选地,所述紧急任务无法在各个处理器核心中以非抢占方式调度时,遍历所述各个处理器核心,针对当前处理器核心重新制定调度计划并重新分配所述紧急任务的锁定内容和历史任务的锁定内容占用的缓存空间,还包括:
根据所述本地有向无环图重新分配所述一级缓存空间,所述一级缓存空间以预设大小划分为缓存单元;
根据所述全局有向无环图重新分配所述二级缓存空间。
可选地,所述根据所述本地有向无环图重新分配所述一级缓存空间,所述一级缓存空间以预设大小划分为缓存单元,包括:
在由所述紧急任务和所述历史任务组成的核心任务能够按时完成的条件下,以所述核心任务等级递减的次序分配最少数量的缓存单元;
依次分配剩余所述缓存单元给WCET减少量最多的所述核心任务;
将不重叠的所述核心任务对应的所述缓存单元做共享处理;
为所述核心任务分配起始地址。
可选地,所述根据所述全局有向无环图重新分配所述二级缓存空间,包括:
根据离散函数法确定所述核心任务在所述二级缓存空间中应分配的缓存空间的大小;
根据图着色算法(Graph Coloring)对所述全局有向无环图中的所有点进行颜色的标记,使所述全局有向无环图中有邻边关系的点被标记成不同的颜色,根据所述全局有向无环图中邻边的方向和点标记的颜色,确定所述核心任务在所述二级缓存空间中的布局。
可选地,所述在重新分配缓存空间后,根据所述各个处理器核心中所述紧急任务的WCET,调度所述紧急任务至其中一个处理器核心,包括:
在缓存分配完成后,计算所述紧急任务在所述各个处理器核心中的紧急WCET;
将所述各个处理器核心中的所述紧急WCET以从大到小的顺序排序;
删除在最小紧急WCET对应的核心以外的其它核心上的所述紧急任务,并恢复所述其它核心在调度之前的方案。
可选地,一种多核实时嵌入式系统的任务调度方法,所述方法还包括:
判断当前待调度任务的调度方式;
当存在紧急任务的条件下,针对待调度的紧急任务,当所述紧急任务可以在至少一个处理器核心中以非抢占方式调度时,调度至满足条件的任一处理器核心,并重新分配所述紧急任务和全局任务的第二级缓存空间;
针对待调度的普通任务,遍历所述各个处理器核心,根据所述各个处理器核心中所述普通任务的WCET,以非抢占方式调度所述普通任务至其中一个处理器核心。
可选地,所述针对待调度的普通任务,遍历所述各个处理器核心,根据所述各个处理器核心中所述普通任务的WCET,以非抢占方式调度所述普通任务至其中一个处理器核心,包括:
将所述普通任务以非抢占方式排在任务序列之后;
计算所述待调度的普通任务在所述各个处理器核心中的普通WCET;
将所述各个处理器核心中的所述普通WCET以从大到小的顺序排序;
删除在最小普通WCET对应的核心以外的其它核心上的所述普通任务,并恢复所述其它核心在调度之前的方案。
根据第二方面,一种嵌入式设备,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行上述的方法。
发明的有益效果:
本发明的一种多核实时嵌入式系统的任务调度方法和调度系统,该方法具体包括:在存在紧急任务的条件下,根据任务的截止时间,按指定顺序调度任务的任务;针对待调度的紧急任务,当紧急任务无法在各个处理器核心中以非抢占方式调度时,紧急任务根据发布时间以抢占方式调度,并遍历各个处理器核心,针对当前处理器核心重新分配紧急任务和历史任务的缓存空间;在重新分配缓存空间后,根据各个处理器核心中紧急任务的WCET,调度紧急任务至其中一个处理器核心。在正常情况下本发明通过将任务按照最早截止时间的顺序以非抢占方式调度,根据WCET将任务的任务送入合适的处理器核心,保证了最大执行时间最小化,从而实现了处理器执行时间最短。在紧急任务出现时,当紧急任务无法在任何一个核心上以非抢占的方式进行调度时,本发明通过根据任务的紧急程度,以紧急任务抢占不紧急任务的方式,重新分配各个处理器核心中的缓存空间,从而减少处理器的执行时间。通过协调任务调度次序和缓存锁定交织在一起的依赖关系,大大提高了多核实时嵌入式系统的执行效率。
附图说明
图1为本发明的一种多核实时嵌入式系统的任务调度方法步骤示意图;
图2为本发明的一种选择锁定内容的精英选择策略的遗传算法流程示意图;
图3为本发明的一种多核实时嵌入式系统的任务调度方法的全局任务干扰图;
图4为本发明的一种多核实时嵌入式系统的任务调度方法的本地任务干扰图;
图5为本发明的一种多核实时嵌入式系统的任务调度方法的本地任务有向无环图;
图6为本发明的一种多核实时嵌入式系统的任务调度方法的全局任务有向无环图;
图7为本发明的一种多核实时嵌入式系统的任务调度方法的某核心本地有向无环图;
图8为本发明的一种多核实时嵌入式系统的任务调度方法的某核心包含任务的任务级别图;
图9为本发明的缓存分布结构示意图;
图10为本发明的缓存单元共享机制结构示意图;
图11为本发明的WCET减少量与L1缓存单元的关系示意图;
图12为本发明的WCET减少量与L2缓存空间的关系示意图;
图13为本发明的一种嵌入式设备结构示意图。
具体实施方式
下面结合附图和实施例对本发明的连接结构进行详细说明。
请参阅图1,本发明实施例提供的一种多核实时嵌入式系统的任务调度方法,应用于可互相抢占缓存的任务组成的任务集,任务集中各个任务,被基于任务的截止时间按指定顺序进行调度,具体包括如下步骤:
步骤S101:在存在紧急任务的条件下,根据任务的截止时间,按指定顺序调度任务。具体地,在任务调度过程当中,高速缓存锁定是一种用于促进任务的WCET计算的机制,在任务调用过程中,为了高效的从内存中调度任务的相关指令或数据,需要将每个任务一部分内容锁定到高速缓存中,锁定的这部分内容就叫做锁定内容。本发明实施例采用但不限于动态缓存锁定方法来选择任务代码的缓存锁定内容,具体选择过程如图2所示。由于每个任务在使用一个处理器核心的全部缓存时,它的处理效率是最高的,处理时间是最短的,在获取到任务集中所有任务之后,按照EDF(Early Deadline First,最早截至时间优先)的顺序来调度任务。以保证所有任务如果在不出意外的情况下,按照顺序首尾相接,从截止时间最小到最大的顺序调度,处理器执行时间是最少的。例如:对于一个任务集有3个任务A、B、C,这3个任务的截止时间分别是300秒,200秒和100秒,那么我们以C-B-A的顺序调度任务的方案,执行时间是最少的。
步骤S102:针对待调度的紧急任务,当紧急任务无法在各个处理器核心中以非抢占方式调度时,遍历各个处理器核心,针对当前处理器核心重新制定调度计划并重新分配紧急任务和历史任务的缓存空间。具体地,在任务调度的过程中,以步骤S101的调度顺序执行时间最少,但是当某个任务需要紧急先执行时,按照原先顺序不能在其截止时间内完成,那么就将该任务的执行顺序提前,或者将其换为其他处理器核心执行,这样不影响处理器执行时间。但是如果某个紧急任务无论如何调整顺序和核心都不能以非抢占的方式在截止时间内完成时,那么待调度的紧急任务就会以抢占正在进行任务的方式来进行调度。如果所有被抢占的任务的截止时间也都很早,并且均早于紧急任务的截止时间,则我们的方法无法构造出一个可行的调度计划,但是本发明不考虑这种特殊情况。由于抢占次数越多就会越降低系统运行的效率,从而在分配缓存之前,会为紧急任务和当前核心上的已经存在的任务重新制定一个调度顺序,达到抢占次数最少的目的,之后为了判断紧急任务在哪一个核心上处理最快,就需要先把该任务放入全部核心中分别计算该任务的在各个核心当中核心的执行时间是多少。在紧急任务抢占正在进行任务的过程当中,缓存的空间无法被紧急任务单独使用,需要被抢占的任务和紧急任务同时使用,那么为了核心执行时间最短,就需要对每个核心上的缓存空间进行重新分配,而分配的标准就是根据各核心上现有任务的紧急程度。
步骤S103:在重新分配缓存空间后,根据各个处理器核心中紧急任务的WCET,调度紧急任务至其中一个处理器核心。具体地,当各个核心上缓存空间分配方案确定之后,需要计算紧急任务在各个核心上的WCET,通过比较计算所得WCET的大小,从而确定紧急任务在哪一个核心上的WCET最短,也就是该紧急任务在该核心上运行最快,选定好核心时候,将紧急任务调度到选定的核心上,并且将落选核心上紧急任务删除即可,落选核心的调度方案包括任务运行的次序和缓存空间的分配都恢复到紧急任务调来之前的方案。例如:处理器只有两个核心c1和c2,在各个核分配好缓存空间之后,紧急任务t在核心c1上的WCET为2秒,在c2上的WCET为3秒,那么t就被分配到c1上,从而在c2上把t的数据删除。通过本发明上述步骤的调度顺序的调整和缓存空间的分配方案,合理的协调了任务调度次序和缓存锁定交织在一起的依赖关系,对于每次调度来的新任务均可以为其分配一个处理时间最快的核心,从而保证了处理器执行时间,提高了实时嵌入式系统执行效率。
具体地,在一实施例中,上述步骤S101,具体包括如下步骤:
步骤S201:将任务集中的任务的截止时间以EDF顺序排序。具体地,在任务调度开始之前,将任务集中所有任务按照截止时间从小到大排序。
步骤S202:根据EDF递增的顺序对应调用任务集中的任务。具体地,所有任务如果在不出意外的情况下,按照顺序首尾相接,按顺序执行任务可以使每个任务使用所在核心的全部缓存空间,运行最快。从截止时间最小到最大的顺序调度,可以保证在最早的截止时间内完成全部任务,整体的执行时间是最少的,详细描述参照步骤S101,在此不再赘述。
具体地,在一实施例中,上述步骤S102,具体包括如下步骤:
步骤S203:根据紧急任务与历史任务的紧急程度绘制本地有向无环图。具体地,在紧急任务需要抢占正在运行其他任务时,缓存分配的方案是根据任务等级制定的,而任务等级是有向无环图来得到。任务间的有向无环图是根据任务之间的抢占关系,也就是步骤S102中重新制定的调度顺序绘制的。本发明实施例中的两级缓存分别为各个处理器核心上的私有第一级缓存L1和所有核心共同使用的第二级缓存L2。为了确定两级缓存上的有向无环图,我们需要先得到两级缓存上的任务干扰图。为了确定某两个任务是否可以共享L1缓存和L2缓存,我们构造了两种类型的任务干扰图:所有任务的全局任务干扰图和每个核心的本地任务干扰图。如图3所示,是以两个核心为例的全局干扰图,而本地干扰图如图4是全局干扰图分别在两个核心内的子图,图上的圆圈代表每个核心上有预先分配好的任务,任务之间的边代表任务的生存期发生了重叠,也就是发生了抢占。而不发生重叠的任务之间是可以共享缓存空间的。而根据步骤S102重新制定的调度顺序可以判断干扰图中生存期重叠的两个任务分别是抢占任务还是被抢占任务,在本地干扰图中,绘制从被抢占任务到抢占任务的箭头方向从而得到本地有向无环图,如图5所示。本地有向无环图任务之间的边不仅代表某两个任务的缓存是否可以共享,还代表了任务之间的优先级,在接下来的L1缓存分配中有着很重要的作用。
步骤S204:根据紧急任务与全局历史任务的紧急情况绘制全局有向无环图。具体地,L2中每个任务的任务分配是在单个高速缓存组上执行的。对于每个高速缓存组我们需要考虑映射到该组中的任务之间的相互干扰。因此,我们为L2的每个组构造了任务干扰图的映射图。之后使用图着色(graph coloring)方法为全局有向无环图的每一个节点进行颜色的标记。图着色算法选择入度为0的点作为起始点,如图6中t2、t4,开始进行颜色标记,每一个未标记颜色的点,选择相邻已标记颜色点未使用过的颜色进行标记。最终所有的点标记完成,如图6所示,在全局有向无环图中,任意两个有邻边关系的节点使用不同的颜色进行标记。反之,拥有相同颜色的点表示没有之间必定没有邻边,也就是对象的任务没有干扰关系。因此,对于颜色相同的点,意味着其执行时间不冲突,可以共享缓存空间。在空间布局上,将颜色相同的点重叠布局,提升缓存空间的利用率。本发明实施例中通过全局有向无环图和图着色算法来确定L2缓存的缓存组中所有任务的布局。
步骤S205:有向无环图中源点到终点的顺序对应了任务等级的递增顺序,其中,针对任务等级相同的各个目标节点,从源点出发到目标节点所经历的最大中转次数相同。具体地,举例说明:如图7所示是一个三级的有向无环图,其中该图的终点任务t4、t5抢占t2、t1,t2、t3抢占起点t1,并且t1到t2、t3的最大中转次数为1次,t1到t4、t5的最大中转次数为2次,那么图7中任务等级关系为t5=t4>t3=t2>t1,如图8所示。
具体地,在一实施例中,上述步骤S205之后,还包括如下步骤:
步骤S206:缓存空间包括第一级缓存空间和第二级缓存空间。具体地,如图9所示,本发明实施例中使用的多核实时嵌入式系统用中,每个处理器核心中包含一个本地缓存,我们称之为第一级缓存L1,所有核心共享一个缓存,我们称之为第二级缓存L2。L1中包含一个指令缓存和一个数据缓存,L2用来存储指令和数据。
步骤S207:根据本地有向无环图重新分配第一级缓存,第一级缓存以预设大小划分为缓存单元。具体地,先将L1预先划分为固定个数的单元,L1缓存的一个单元由m组缓存行组成,每组一条缓存行。
步骤S208:根据全局有向无环图重新分配第二级缓存。具体地,根据有向无环图得到L2中各个任务的分配布局,并根据离散函数法得到各个任务分配L2的大小。
具体地,在一实施例中,上述步骤S207,具体包括如下步骤:
步骤S209:在由紧急任务和历史任务组成的核心任务能够按时完成的条件下,以核心任务等级递减的次序分配最少数量的缓存单元。具体地,在任务调度顺序确定之后,根据步骤S203得到地本地有向无环图,按照等级从高到低的顺序给每个任务分配缓存单元,分配个数按照在该任务能够按时完成的条件下,分配给最少个数的缓存单元,当当前核心的所有任务均分配一轮后,结束。例如:任务t5需要至少2个单元才能按时完成,任务t1需要至少1个才能按时完成,那么为其分配对应的数量。其中为某个任务分配的最少单元的标准,可以按照执行时间函数计算。对于某个任务ti分配了特定的x个单元,
Figure BDA0003229442270000101
Figure BDA0003229442270000102
其中Wi是不使用任何缓存时任务的WCET,/>
Figure BDA0003229442270000103
是使用L1的x个单元来存储ti的缓存锁定内容时ti的WCET。
步骤S210:依次分配剩余缓存单元给WCET减少量最多的核心任务。具体地,如果某个级别的任务在收到额外的一个L1缓存单元后使得整个处理器的最坏执行时间减少量最大,那么它会为该级别分配额外的一个L1缓存单元,例如,进行了步骤S209之后,有两个任务t1和t2,如果给任务t1分配一个缓存单元使得WCET的减少量比分给t2的多,那么就分配给t1;在t1得到一个缓存单元后,继续分配缓存单元,如果这时给任务t2分配一个缓存单元使得WCET的减少量比分给t1的多,那么分配给t2。按照此标准将剩余的所有缓存单元分配结束为止。根据WCET最少原则分配L1缓存,提高了缓存利用率,从而提高嵌入式系统的工作效率。
步骤S211:将不重叠的核心任务对应的缓存单元做共享处理。具体地,当任务之间不存在抢占关系时,他们可以共享L1中的缓存单元。例如:现在存在任务问的关系如图7所示,那么图中任务t4、t5、t3可以共享相同的缓存单元,t2、t3可以共享相同的缓存单元,如图10所示。这样做的好处是当t4、t5执行完毕时,t3的执行不仅可以用t2所使用的缓存单元,还可以同时用t4、t5的所使用的缓存单元,避免了缓存单元的浪费,大大提高了缓存利用率,从而加快了整体任务调度方案的速度。
S212:为核心任务分配起始地址。具体地,将分配好缓存单元大小的任务对应分配缓存的起始地址,结束L1的分配。
具体地,在一实施例中,上述步骤S208,具体包括如下步骤:
步骤S213:根据离散函数法确定核心任务在第二级缓存中的空间。具体地,为某个任务ti构造函数
Figure BDA0003229442270000111
其中x是分配给tj的L1缓存单元数量,y是分配给tj的L2缓存的适当大小,离散函数/>
Figure BDA0003229442270000112
来表示WCET缩减量。由于L2缓存仅在L1缓存中没有足够多的缓存空间来存储ti的缓存锁定内容时使用,因此在计算/>
Figure BDA0003229442270000113
时x是一个固定值。需要注意的是,使用基于单元的策略来计算/>
Figure BDA0003229442270000114
是无效的,因为通常L2缓存的一个单元的大小比整个L1缓存都要大得多,因此,某些对降低任务的WCET效益不大的高速缓存内容可以通过使用基于单元的策略被锁定到L2缓存中。为了提高L2缓存的利用率,我们对不同的y=sp0,sp1,...,sps,提出了不同的/>
Figure BDA0003229442270000115
计算方法,具体如下所示:
(1)sp0=0。此时
Figure BDA0003229442270000116
(2)spj+1=spj+sj,其中,sj代表针对任务ti的每个循环嵌套在一次迭代中存储所有选定内存块时所需的L2缓存的大小。在这种情况下,
Figure BDA0003229442270000121
其中/>
Figure BDA0003229442270000122
表示使用x个L1缓存单元和spj+1大小的L2缓存来存储ti需要被锁定内容时任务ti的WCET。
对于每个任务,我们定义两个关键坐标点,具体如下所示:
1.pi:使用i个二级缓存行的WCET减少量。
2.pmax:最大WCET减少量。
定义α为缓存分配阈值;
其中
Figure BDA0003229442270000123
选择使用满量阈值α的最小缓存行进行分配。
定义spb表示分配给任务ti的L2缓存空间的大小。需要注意的是,spb的大小小于L2缓存空间的大小,我们不给任务ti分配超过spb大小的L2缓存空间。因为将ti的其余内容锁定到L2缓存中对减少任务的WCET的效果不明显。因此,对于任务ti,我们只分配给它spb大小的L2缓存空间,而L2缓存的空闲空间可以作为一个没有用于缓存锁定的待使用缓存。
我们用一个例子来说明如何生成离散函数
Figure BDA0003229442270000124
和/>
Figure BDA0003229442270000125
给定一个任务ti,x表示L1缓存空间的分配量,y表示L2缓存空间的分配量。根据不同的缓存空间分配量,分别计算相应的WCET减少值。当没有缓存分配给ti时,ti的WCET减少值为0。关于任务ti的函数
Figure BDA0003229442270000126
和/>
Figure BDA0003229442270000127
的形式分别如图11和图12所示。显然,/>
Figure BDA0003229442270000128
和/>
Figure BDA0003229442270000129
的值都单调递增,且值为非负数的函数。
步骤S214:根据全局有向无环图确定核心任务在第二级缓存中的布局。具体地,在确定了L2分配的大小之后,将待调度任务和已调度到二级缓存的所有任务根据基于K最长路径的方法得到的全局有向无环图中的任务的锁定内容分配到L2缓存中,得到L2缓存分配的具体布局,也就是调度顺序、地址。本发明通过任务之间的抢占关系和WCET最小原则,合理分配L2的使用情况,提高了L2的使用效率,加快了处理器执行速度,从而减少处理器执行时间。
具体地,在一实施例中,上述步骤S103,具体包括如下步骤:
步骤S215:在缓存分配完成后,计算紧急任务在各个处理器核心中的紧急WCET。具体地,针对于各个核心,在全部缓存分配工作完成之后,计算该紧急任务使用在各个核心中确定好的调用方案的WCET,以用于后续步骤的处理。
步骤S216:将各个处理器核心中的紧急WCET以从大到小的顺序排序。
步骤S217:删除在最小紧急WCET对应的核心以外的其它核心上的紧急任务,并恢复其它核心在调度之前的方案。具体地,紧急任务的WCET最小时,代表紧急任务的处理速度最快,因为保留紧急任务WCET最小对应的处理器核心,也就是将紧急任务调用到该核心上。对于其他核心,删除其中的紧急任务,并恢复到未调用前的状态即可,从而完成了当出现紧急任务时,非抢占方式不可用,用抢占方式调度任务的过程。综合考虑到了各个环节的最快速度,从而大大提高了多核实时嵌入式系统的效率。
具体地,本发明实施例提供的一种多核实时嵌入式系统的任务调度方法,应用于可互相抢占缓存的任务组成的任务集,还包括如下步骤:
步骤S000:判断当前待调度任务的调度方式。具体地,判断当前待调度任务的方式是抢占的还是非抢占的。
步骤S218:当存在紧急任务的条件下,针对待调度的紧急任务,当紧急任务可以在至少一个处理器核心中以非抢占方式调度时,调度至满足条件的任一处理器核心,并重新分配紧急任务和全局任务的第二级缓存空间。具体地,当紧急任务可以在所有核心的至少一个核心上,实现非抢占方式的调度。那么该任务占用该核心的全部L1,运行效率是最高的。但是,由于紧急任务也需要被纳入全局任务干扰图,因此我们需要对紧急任务和其他相关任务进行L2缓存的重新分配,分配方法参照步骤S213和S214,不再赘述。在分配完成之后,紧急任务可以调度到任意一个满足要求的核心当中,由于L2的空间是足够大的,因此紧急任务调度到哪个核心上所分配的L2的空间变化不大,并且紧急任务使用了全量的L1空间,因此,影响可以忽略不计。
步骤S220:针对待调度的普通任务,遍历各个处理器核心,根据各个处理器核心中普通任务的WCET,以非抢占方式调度普通任务至其中一个处理器核心。
具体地,在不需要抢占任务的条件下,直接将普通任务调度到所有处理器核心上,根据WCET最小原则,得到普通任务在哪一个核心上运行最快,那么保留该核心上普通任务的任务,将其他核心上普通内容删除即可。
具体地,在一实施例中,上述步骤S220,具体包括如下步骤:
步骤S221:将普通任务以非抢占方式排在任务序列之后。
步骤S222:计算待调度的普通任务在各个处理器核心中的普通WCET;
步骤S223:将各个处理器核心中的普通WCET以从大到小的顺序排序;
步骤S224:删除在最小普通WCET对应的核心以外的其它核心上的普通任务,并恢复其它核心在调度之前的方案。
具体地,步骤S222~S224的具体原理可参照步骤S215~S217,不再赘述。
通过执行上述步骤,本发明实施例提供的一种多核实时嵌入式系统的任务调度方法,该方法具体包括:在存在紧急任务的条件下,根据任务的截止时间,按指定顺序调度任务的任务;针对待调度的紧急任务,当紧急任务无法在各个处理器核心中以非抢占方式调度时,紧急任务根据发布时间以抢占方式调度,并遍历各个处理器核心,针对当前处理器核心重新分配紧急任务和历史任务的缓存空间;在重新分配缓存空间后,根据各个处理器核心中紧急任务的WCET,调度紧急任务至其中一个处理器核心。在正常情况下本发明通过将任务按照最早截止时间的顺序以非抢占方式调度,根据WCET将任务的任务送入合适的处理器核心,保证了最大执行时间最小化,从而实现了处理器执行时间最短。在紧急任务出现时,当紧急任务无法在任何一个核心上以非抢占的方式进行调度时,本发明通过根据任务的紧急程度,以紧急任务抢占不紧急任务的方式,重新分配各个处理器核心中的缓存空间,保证处理器执行时间最短。通过协调任务调度次序和缓存锁定交织在一起的依赖关系,大大提高了多核实时嵌入式系统的执行效率。
图13示出了本发明实施例的一种嵌入式设备,该设备包括:处理器901和存储器902,可以通过总线或者其他方式连接,图13中以通过总线连接为例。
处理器901可以为中央处理器(Central Processing Unit,CPU)。处理器901还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如上述方法实施例中的方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
上述嵌入式设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,实现的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。

Claims (6)

1.一种多核实时嵌入式系统的任务调度方法,应用于可互相抢占缓存的任务组成的任务集,所述任务集中的各个任务,按基于任务的截止时间按指定顺序进行调度,所述方法包括:
针对待调度的紧急任务,当所述紧急任务无法在各个处理器核心中以非抢占方式调度时,遍历所述各个处理器核心,针对当前处理器核心重新制定调度计划并重新分配所述紧急任务的锁定内容和历史任务的锁定内容占用的缓存空间,具体包括:
将缓存空间的分配为一级缓存空间和二级缓存空间;
一级缓存空间只有对应的单个处理器核心能够使用,针对嵌入式系统的单个处理器核心,根据所述紧急任务与在该处理器核心上运行的历史任务的紧急程度绘制本地有向无环图,反应该一级缓存空间所对应的单个处理器核心上的任务使用一级缓存空间的情况;
二级缓存空间能够被嵌入式系统所有的处理器核心所使用,根据所述紧急任务与所有处理器核心上的全部历史任务的紧急情况绘制全局有向无环图,反应所有任务使用二级缓存空间的情况;
所述有向无环图中源点到终点的顺序对应了任务等级的递增顺序,其中,针对任务等级相同的各个目标节点,从源点出发到所述目标节点所经历的最大中转次数相同;
根据所述本地有向无环图重新分配所述一级缓存空间,所述一级缓存空间以预设大小划分为缓存单元,具体包括:在由所述紧急任务和所述历史任务组成的核心任务能够按时完成的条件下,以所述核心任务等级递减的次序分配最少数量的缓存单元;依次分配剩余所述缓存单元给WCET减少量最多的所述核心任务;将不重叠的所述核心任务对应的所述缓存单元做共享处理;为所述核心任务分配起始地址;
根据所述全局有向无环图重新分配所述二级缓存空间,具体包括:根据离散函数法确定所述核心任务在所述二级缓存空间中应分配的缓存空间的大小;
根据图着色算法(Graph Coloring)对所述全局有向无环图中的所有点进行颜色的标记,使所述全局有向无环图中有邻边关系的点被标记成不同的颜色,根据所述全局有向无环图中邻边的方向和点标记的颜色,确定所述核心任务在所述二级缓存空间中的布局;
在重新分配缓存空间后,根据所述各个处理器核心中所述紧急任务的WCET,调度所述紧急任务至其中一个处理器核心。
2.如权利要求1所述的方法,其特征在于,所述任务集中的各个任务,按基于任务的截止时间按指定顺序进行调度,包括:
将任务集中的各个任务的截止时间按最早截至时间优先(EDF)顺序排序;
根据最早截至时间优先(EDF)递增的顺序,对应调用所述任务集中的任务。
3.如权利要求2所述的方法,其特征在于,所述在重新分配缓存空间后,根据所述各个处理器核心中所述紧急任务的WCET,调度所述紧急任务至其中一个处理器核心,包括:
在缓存分配完成后,计算所述紧急任务在所述各个处理器核心中的紧急WCET;
将所述各个处理器核心中的所述紧急WCET以从大到小的顺序排序;
删除在最小紧急WCET对应的核心以外的其它核心上的所述紧急任务,并恢复所述其它核心在调度之前的方案。
4.如权利要求3所述的方法,所述方法还包括:
判断当前待调度任务的调度方式;
当存在紧急任务的条件下,针对待调度的紧急任务,当所述紧急任务可以在至少一个处理器核心中以非抢占方式调度时,调度至满足条件的任一处理器核心,并重新分配所述紧急任务和全局任务的第二级缓存空间;
针对待调度的普通任务,遍历所述各个处理器核心,根据所述各个处理器核心中所述普通任务的WCET,以非抢占方式调度所述普通任务至其中一个处理器核心。
5.如权利要求4所述的方法,其特征在于,所述针对待调度的普通任务,遍历所述各个处理器核心,根据所述各个处理器核心中所述普通任务的WCET,以非抢占方式调度所述普通任务至其中一个处理器核心,包括:
将所述普通任务以非抢占方式排在任务序列之后;
计算所述待调度的普通任务在所述各个处理器核心中的普通WCET;
将所述各个处理器核心中的所述普通WCET以从大到小的顺序排序;
删除在最小普通WCET对应的核心以外的其它核心上的所述普通任务,并恢复所述其它核心在调度之前的方案。
6.一种嵌入式设备,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行上述权利要求1-5中任一项所述的方法。
CN202110982484.4A 2021-08-25 2021-08-25 一种多核实时嵌入式系统的任务调度方法 Active CN113806042B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110982484.4A CN113806042B (zh) 2021-08-25 2021-08-25 一种多核实时嵌入式系统的任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110982484.4A CN113806042B (zh) 2021-08-25 2021-08-25 一种多核实时嵌入式系统的任务调度方法

Publications (2)

Publication Number Publication Date
CN113806042A CN113806042A (zh) 2021-12-17
CN113806042B true CN113806042B (zh) 2023-06-16

Family

ID=78894082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110982484.4A Active CN113806042B (zh) 2021-08-25 2021-08-25 一种多核实时嵌入式系统的任务调度方法

Country Status (1)

Country Link
CN (1) CN113806042B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101561767A (zh) * 2008-04-16 2009-10-21 上海聚力传媒技术有限公司 一种基于操作系统的任务执行方法和装置
KR20170023280A (ko) * 2015-08-19 2017-03-03 한국전자통신연구원 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법
CN110705775A (zh) * 2019-09-27 2020-01-17 中国电子科技集团公司第五十四研究所 一种面向应急任务的星地资源快速配置方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063796B2 (en) * 2012-08-02 2015-06-23 GM Global Technology Operations LLC Method and apparatus for improving processing performance of a multi-core processor
US10296382B2 (en) * 2017-05-17 2019-05-21 Imam Abdulrahman Bin Faisal University Method for determining earliest deadline first schedulability of non-preemptive uni-processor system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101561767A (zh) * 2008-04-16 2009-10-21 上海聚力传媒技术有限公司 一种基于操作系统的任务执行方法和装置
KR20170023280A (ko) * 2015-08-19 2017-03-03 한국전자통신연구원 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법
CN110705775A (zh) * 2019-09-27 2020-01-17 中国电子科技集团公司第五十四研究所 一种面向应急任务的星地资源快速配置方法

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
Thomas Huybrechts等.Hybrid Approach on Cache Aware Real-Time Scheduling for Multi-Core Systems.《Lecture Notes on Data Engineering and Communications Technologies 》.2016,第1卷第759–768页. *
Wenguang Zheng等.Integrating Task Scheduling and Cache Locking for Multicore Real-Time Embedded Systems.《ACM SIGPLAN Notices》.2017,第52卷(第5期),第71-80页. *
冯华 ; 卢凯 ; 王小平 ; .面向多核处理器的实时优化技术:基于独立实时域的实时优化方法.计算机科学.2013,第40卷(第09期),第159-162+189页. *
王颖洁等.实时嵌入式系统的WCET分析与预测研究综述.《计算机科学》.2018,第46卷(第S1期),第16-22页. *
裴颂文 ; 吕春龙 ; 宁钟 ; 顾春华 ; .异构多核计算系统的Codelet任务调度策略.计算机应用研究.2018,第36卷(第05期),第1433-1436+1440页. *
钟虓 ; 齐勇 ; 侯迪 ; 苗蕾 ; 郑晓梅 ; .基于DVS的多核实时系统节能调度.电子学报.2006,(第S1期),第2481-2484页. *
雷振阳 ; 雷向东 ; 龙军 ; .多核系统中并行实时任务调度策略.信息技术.2020,第44卷(第09期),第15-20页. *

Also Published As

Publication number Publication date
CN113806042A (zh) 2021-12-17

Similar Documents

Publication Publication Date Title
US8185908B2 (en) Dynamic scheduling in a distributed environment
JP4781089B2 (ja) タスク割り当て方法およびタスク割り当て装置
US8332862B2 (en) Scheduling ready tasks by generating network flow graph using information receive from root task having affinities between ready task and computers for execution
CN109582448B (zh) 一种面向关键度和时效性的边缘计算任务调度方法
US20040098718A1 (en) Task allocation method in multiprocessor system, task allocation program product, and multiprocessor system
US10467722B2 (en) Combined rendering and computing resource allocation management system
CN114580653A (zh) 机器学习计算优化方法和编译器
JP2012215933A (ja) ジョブ管理システム及びジョブ管理方法
WO2024021489A1 (zh) 一种任务调度方法、装置及Kubernetes调度器
US20190272201A1 (en) Distributed database system and resource management method for distributed database system
JP2008226023A (ja) ジョブ割当装置、及びジョブ割当方法
JP2007188523A (ja) タスク実行方法およびマルチプロセッサシステム
WO2019086765A1 (en) Combined rendering and compute resource allocation management system
George et al. Job vs. portioned partitioning for the earliest deadline first semi-partitioned scheduling
KR20170023280A (ko) 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법
US20170344266A1 (en) Methods for dynamic resource reservation based on classified i/o requests and devices thereof
CN108108242B (zh) 基于大数据的存储层智能分发控制方法
CN113806042B (zh) 一种多核实时嵌入式系统的任务调度方法
JP5419134B2 (ja) ベクトルプロセッサ及びベクトル命令発行方法
CN116244073A (zh) 混合关键分区实时操作系统的资源感知型任务分配方法
CN113296957B (zh) 一种用于动态分配片上网络带宽的方法及装置
Chen et al. A real-time scheduling strategy based on processing framework of Hadoop
CN112598112B (zh) 一种基于图神经网络的资源调度方法
KR101558807B1 (ko) 호스트 프로세서와 협업 프로세서 간에 협업 처리를 위한 프로세서 스케줄링 방법 및 그 방법을 수행하는 호스트 프로세서
WO2013058396A1 (ja) タスク配置装置及びタスク配置方法

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
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 100011 courtyard 6, waiguanxie street, Chaoyang District, Beijing

Patentee after: BEIJING REMOTE SENSING INFORMATION INSTITUTE

Address before: 100192 courtyard 2, Xiaoying East Road, Haidian District, Beijing

Patentee before: BEIJING REMOTE SENSING INFORMATION INSTITUTE