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

文档序号:6540038阅读:213来源:国知局
一种多核嵌入式系统实时任务调度实现方法
【专利摘要】本发明公开了一种多核嵌入式系统实时任务调度实现方法,包括如下步骤:建立实时任务集合,计算任务依赖关系序列,建立以完成时限要求排序的任务序列,处理起始调度任务,建立调度序列。本发明的技术方案适用于多核嵌入式系统任务实时调度,充分利用了多核处理器的多个处理器核,既加快了多核嵌入式系统中任务的处理速度,又保证了实时任务的实时性。
【专利说明】一种多核嵌入式系统实时任务调度实现方法
【技术领域】
[0001]本发明属于多核嵌入式系统任务资源调度【技术领域】,特别是涉及一种多核嵌入式系统实时任务调度实现方法。
【背景技术】
[0002]随着半导体技术的不断进步,VLSI (Very Large-Scale Integrated,超大规模集成电路)的集成密度在大幅度增加。单一芯片上的集成度不断提高,使得SoC(System onChip,片上系统)技术得到了发展和应用。SoC技术是将一个系统的全部功能模块集成到单一的芯片上,从而实现在单个芯片上集成完备的系统功能,其处理器核也简称为核。
[0003]集成在SoC芯片上的通常是IP (Intellectual Property,知识产权)核。这些可重用的IP核包括嵌入式处理器,、存储模块、接口模块和面向应用定制的处理构件。在SoC上集成的IP核可以分为三类:软核(Soft IP),是指使用RTL(Register Transfer Level,寄存器传送级别)或者更高级别进行描述的IP核;硬核(Hard IP),是指具有固定的层结构,并且针对特定过程中的特定应用进行了定制的优化过的IP核;固化核(Firm IP)是指已经做了描述但是提供了参数供设计人员进行应用定制的IP核。
[0004]SoC不仅集成的晶体管数量多,而且由于集成了不同种类的功能和技术,并且由于软硬件的协同工作,使得SoC具有复杂的体系结构和逻辑接口。SoC的高集成度也使得SoC的功能极为丰富,提高了对片上面积的有效利用,缩短了片上连线的长度,从而提高了整个系统的性能。
[0005]多核嵌入式系统(MPSoC)是对SoC技术的进一步发展,是指具有多个嵌入式指令集处理器的SoC。MPSoC结合SoC技术与多核技术的特点。多核技术是指在一个芯片上集成多核处理器核,以提高处理器的处理能力;如果芯片上所集成的多个处理器核相同,核问地位相同,则称为同构多核处理器;如果芯片上所集成的处理器核不同,有主处理器和协处理器之分,则称为异构多核处理器。MPSoC片上既有多核处理器核,又集成了不同种类的软硬件,兼具了 SoC和多核的优点。在SoC与MPSoC芯片上,往往会集成存储器,为处理器核提供存储服务,从而提闻处理器的效率。
[0006]实时操作系统(RTOS)是指能对外部事件在限定的时间内作出并完成响应的多任务操作系统,它是嵌入式计算机中的重要的系统资源,与通用平台的操作系统不同,它往往嵌入到目标机硬件设备内部运行,一般用户无法看到它的运行界面,因而又被称为嵌入式操作系统。它往往采用微内核结构,具有实时性、可靠性和可裁减性的特点,非常适合于嵌入式系统和要求实时处理的应用场合。
[0007]实时的特征有两点,那就是系统不仅需要给出合乎逻辑的计算结果,而且其处理时间还需要满足一定的要求,比如说不能超过某个截止时间等等。因此可以把实时系统分为两类,一类是硬实时(Hard Real-Time);另外一类则是软实时(Soft Real-Time)。所谓硬实时是指如果系统对某个实时任务的处理未能在某个截止时间开始或者结束的话,最终的结果将是灾难性的,这就意味着即便是处理结果合乎逻辑但是仍然毫无意义;而在软实时系统中,处理任务启动或者结束的截止时间只是一个期望值,并不见得必须满足;即便是处理时间超过了截止时间,也是有意义的。
[0008]而随着对于计算机处理器的研究开始转向多处理核心的方向,多核嵌入式系统成为操作系统新的挑战,而任务调度则是其中的要点。如何对多核嵌入式系统中的任务在确保实时性的条件约束下能够进行高效的任务调度,是当前的一个重要问题。同时这也涉及到如何利用多个处理器核的问题。而目前现有的任务调度方法往往强调实时性,但对于多核上如何进行调度缺少深入的分析,因而不能实现高效的调度;同时,由于现有调度方法需要一个较为严格的假设条件,因此在实际使用时往往受到很大的限制。

【发明内容】

[0009]本发明旨在克服现有技术缺陷,提供一种多核嵌入式系统任务实时调度实现方法。
[0010]为实现上述目的,本发明采用的技术方案是:
[0011]一种多核嵌入式系统实时任务调度实现方法,包括以下步骤:
[0012]S10,建立包含多核嵌入式系统中全部任务的实时任务集合T ;
[0013]S20,从任务集合T中选择不依赖其他任务的s个任务建立集合B ;以这s个任务为起点,建立分别以任务BI,B2,…,Bs为起点的任务依赖关系序列的集合L ;
[0014]S30,对任务集合T中的所有任务按照完成时限要求从短到长进行排序,形成任务序列U ;
[0015]S40,处理起始调度任务:从U中选择m个排序在前的任务,作为起始调度任务;
[0016]S50,建立调度序列,包括:`
[0017]S501:如果U中的任务数量小于或等于m,则将序列U作为调度序列,调度工作完成,其中m为多核嵌入式系统的处理器核数,否则执行步骤S502 ;
[0018]S502:计算U中排序在前的m个任务的完成时间并按完成时间从短到长排序形成序列R,如果没有任何任务完成时间超过其完成时限要求,则以依赖关系为顺序,对于第i个处理器核Ci,从处理器核Ci上的任务Tcd对应的任务依赖关系序列集合选择任务Tcd的后继任务中第一个没有被分配且不受任务依赖关系影响的任务分配到处理器核Ci上;如果受到任务依赖关系影响,则依照R中的序列关系进行分配;
[0019]如果有q个任务的完成时间超过其完成时限要求则对于这q个任务,按照其完成时限要求进行从短到长进行排序,然后将q个任务依次分配到前q个处理器核上;
[0020]S503,将这m个任务从U中转移到调度序列K中;
[0021]S504,如果U中仍有任务,重复步骤S402~S403,直到U中不再有任务,调度序列K即为最终的调度序列。
[0022]进一步的,所述步骤SlO还包括:
[0023]为T中的每个任务分别建立属性集合,所述属性集合包括所述任务的执行时间长度和完成时限。
[0024]进一步的,所述步骤SlO还包括:
[0025]对于T中的N个不同任务,建立集合厂{(Ti,Tj)},其中任务Tj的执行依赖于任务Ti的执行结果。[0026]进一步的,步骤S40包括:
[0027]如果U中的任务数量小于或者等于m,按照U中的排序将U中的所有任务分配到处理器核上,调度工作完成;否则将选中的m个任务分配到m个处理器核上,并将这m个任务从U中转移到调度序列K中。
[0028]由于采用上述技术方案,本发明减少了复杂的理论化的实时调度假设,改进对于实时性调度过程中过多的约束条件所造成的实用性问题,为多核嵌入式系统任务的实时调度提供了更为简化的方法,从而提高了多核嵌入式系统任务实时调度的效率。本发明与现有技术相比,具有如下积极效果:
[0029](I)高效性。多核嵌入式系统上具有多个处理器核,可以同时处理多个任务。在本发明中,对任务集合中的多个任务进行依赖关系的分析,使得多个任务能够顺利的在多个处理器核上进行分配,完成多任务的同时调度,达到更高的调度效率;
[0030](2)实用性。在本发明中,简化了对多核嵌入式系统中任务的多重约束条件,在相对较少的约束条件下,对任务的分析从实际运行的角度出发,使得任务的分配能够更加灵活,并使得调度方法能够满足实际需要,从而使得本发明所提供的方法能够具有更强的实用性。
[0031]因此,本发明适用于多核嵌入式系统任务实时调度,充分利用了多核处理器的多个处理器核,既加快了多核嵌入式系统中任务的处理速度,又保证了实时任务的实时性。
【专利附图】

【附图说明】
[0032]图1是本发明实施例的方法示意图。`【具体实施方式】
[0033]下面结合附图和【具体实施方式】对本发明做进一步的描述,并非对其保护范围的限制。
[0034]一种多核嵌入式系统实时任务调度实现方法,该实现方法的步骤如图1所不:
[0035]S10,建立包含多核嵌入式系统中全部任务的实时任务集合T。
[0036]对于多核嵌入式系统中的全部任务,建立一个任务的集合T,T由系统中的η个任务构成,可以表示为:
[0037]T= {T0, T1,…,U ;
[0038]例如,对于具有15个任务的多核嵌入式系统,其集合T为:
[0039]T= {T0, T1, T2, T3, T4, Ts, T6, T7, T8, T9, T10, T11, T12, T13, T1J ;
[0040]对于T中的任务Ti (0_q<N),为其建立属性集合Ai,包括执行时间长度Ei和完成时限要求Di ;
[0041]对于上述具有15个任务的集合T,每个任务的属性集合Ai如下表所示:
【权利要求】
1.一种多核嵌入式系统实时任务调度实现方法,其特征在于,包括: S10,建立包含多核嵌入式系统中全部任务的实时任务集合T ; S20,从任务集合T中选择不依赖其他任务的s个任务建立集合B ;以这s个任务为起点,建立分别以任务BI,B2,…,Bs为起点的任务依赖关系序列的集合L ; S30,对任务集合T中的所有任务按照完成时限要求从短到长进行排序,形成任务序列U; S40,处理起始调度任务:从U中选择m个排序在前的任务,作为起始调度任务; S50,建立调度序列,包括: 5501:如果U中的任务数量小于或等于m,则将序列U作为调度序列,调度工作完成,其中m为多核嵌入式系统的处理器核数,否则执行步骤S502 ; 5502:计算U中排序在前的m个任务的完成时间并按完成时间从短到长排序形成序列R,如果没有任何任务完成时间超过其完成时限要求,则以依赖关系为顺序,对于第i个处理器核Ci,从处理器核Ci上的任务Tcd对应的任务依赖关系序列集合选择任务Tcd的后继任务中第一个没有被分配且不受任务依赖关系影响的任务分配到处理器核Ci上;如果受到任务依赖关系影响,则依照R中的序列关系进行分配; 如果有q个任务的完成时间超过其完成时限要求则对于这q个任务,按照其完成时限要求进行从短到长进行排序,然后将q个任务依次分配到前q个处理器核上; S503,将这m个任务从U中 转移到调度序列K中; S504,如果U中仍有任务,重复步骤S402~S403,直到U中不再有任务,调度序列K即为最终的调度序列。
2.根据权利要求1所述的多核嵌入式系统实时任务调度实现方法,其特征在于,所述步骤SlO还包括: 为T中的每个任务分别建立属性集合,所述属性集合包括所述任务的执行时间长度和完成时限。
3.根据权利要求1或2所述的多核嵌入式系统实时任务调度实现方法,其特征在于,所述步骤SlO还包括: 对于T中的N个不同任务,建立集合 {(Ti,Tj)},其中任务Tj的执行依赖于任务Ti的执行结果。
4.根据权利要求3所述的多核嵌入式系统实时任务调度实现方法,其特征在于,步骤S40包括: 如果U中的任务数量小于或者等于m,按照U中的排序将U中的所有任务分配到处理器核上,调度工作完成;否则将选中的m个任务分配到m个处理器核上,并将这m个任务从U中转移到调度序列K中。
【文档编号】G06F9/48GK103885826SQ201410086704
【公开日】2014年6月25日 申请日期:2014年3月11日 优先权日:2014年3月11日
【发明者】胡威, 黎文飞, 胡雷, 郭宏, 张凯, 张鸿, 薛智文, 占旭宽, 苏明扬, 黄波 申请人:武汉科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1