一种多处理器片上系统的性能良品率优化方法和装置与流程

文档序号:11515520阅读:190来源:国知局
一种多处理器片上系统的性能良品率优化方法和装置与流程

本申请涉及半导体领域,更具体地说,涉及一种多处理器片上系统的性能良品率优化方法和装置。



背景技术:

随着晶体管特征尺寸的不断减小,芯片制造过程中引入的工艺偏差也日益严重,给多处理器片上系统(multi-processorsystem-on-chip,mpsoc,mpsoc)设计带来严峻挑战。在工艺偏差影响下,制造后mpsoc芯片上处理芯核的性能参数(如频率、功耗)常常偏离设计阶段所指定的额定值且应被看作是随机变量。因而,对于量产mpsoc芯片而言,处理芯核的性能参数表现为统计分布。相应的,mpsoc所执行任务的执行时间等参数同样具有了概率特征。这种执行时间的不确定性无法保证程序的执行在各种工艺拐点处都能满足系统的实时性约束。从统计观点来看,这将大大降低批量生产的mpsoc芯片中能够满足系统实时性约束的芯片所占的比例,即降低了多处理器片上系统的性能良品率。



技术实现要素:

有鉴于此,本申请提供一种多处理器片上系统的性能良品率优化方法和装置,以实现多处理器片上系统性能良品率的最优化。

为了实现上述目的,现提出的方案如下:

一种多处理器片上系统的性能良品率优化方法,包括:

步骤a:获取当前调度时间节点;

步骤b:识别在所述当前调度时间节点下的多个就绪任务和多个就绪处理芯核;

步骤c:确定所有就绪任务的任务优先级;

步骤d:按照任务优先级从到高到低的顺序,确定每个就绪任务对应的最优处理芯核,所述就绪任务与所述最优处理芯核为一一对应关系。

优选的,所述按照任务优先级从到高到低的顺序,确定每个就绪任务对应的最优处理芯核,之后还包括:

步骤e:判断所有任务是否均已调度,若否则更新调度时间节点,循环执行步骤a、步骤b、步骤c和步骤d;

若是,则输出任务调度方案。

优选的,所述确定所有就绪任务的任务优先级,包括:

识别所述就绪任务中的关键任务;

基于预设公式计算所有就绪任务的任务优先级;

其中,k为大于1的常量;ctask为一个二进制变量,表示任务是否是关键任务,对于关键任务,ctask取值为1,反之,取值为0;vlatency表示任务在所有处理芯核上执行延迟的方差;alatency表示任务在所有处理芯核上执行延迟的均值。

优选的,所述按照任务优先级从到高到低的顺序,确定每个就绪任务对应的最优处理芯核,包括:

步骤d1:确定所有就绪任务中的最高优先级任务;

步骤d2:计算所述最高优先级任务调度到所有处理芯核上的性能良品率;

步骤d3:将性能良品率最大的处理芯核作为所述最高优先级任务对应的最优处理芯核;

步骤d4:从就绪任务和就绪处理芯核中剔除所述最高优先级任务以及最优处理芯核,以更新所述就绪任务和所述处理芯核;

步骤d5:循环执行步骤d1至步骤d4,直至完成所有就绪任务的调度。

一种多处理器器片上系统的性能良品率优化装置,包括:

时间节点获取单元,用于获取当前调度时间节点;

识别单元,用于识别在所述当前调度时间节点下的多个就绪任务和多个就绪处理芯核;

优先级确定单元,用于确定所有就绪任务的任务优先级;

调度单元,用于按照任务优先级从到高到低的顺序,确定每个就绪任务对应的最优处理芯核,所述就绪任务与所述最优处理芯核为一一对应关系。

优选的,还包括:

判断单元,用于判断所有任务是否均已调度,若否则更新调度时间节点,以对剩余的任务进行调度,若是,则输出任务调度方案。

优选的,所述优先级确定单元包括:

关键任务识别模块,用于识别所述就绪任务中的关键任务;

第一计算模块,用于基于预设公式ptask=(1+k·ctask)·vlatency·alatency计算所有就绪任务的任务优先级;

其中,k为大于1的常量;ctask为一个二进制变量,表示任务是否是关键任务,对于关键任务,ctask取值为1,反之,取值为0;vlatency表示任务在所有处理芯核上执行延迟的方差;alatency表示任务在所有处理芯核上执行延迟的均值。

优选的,所述调度单元包括:

最高优先级任务确定模块,用于确定所有就绪任务中的最高优先级任务;

第二计算模块,用于计算所述最高优先级任务调度到所有处理芯核上的性能良品率;

处理芯核选取模块,用于将性能良品率最大的处理芯核作为所述最高优先级任务对应的最优处理芯核;

数据更新模块,用于从就绪任务和就绪处理芯核中剔除所述最高优先级任务以及最优处理芯核,以更新所述就绪任务和所述处理芯核。

经由上述技术方案可知,本申请公开了一种多处理器片上系统的性能良品率优化方法和装置。该方法首先识别当前调度时间节点下的就绪任务和就绪处理芯核,进而确定所有就绪任务的任务优先级,并按照优先级从高到低的顺序,基于性能良品率确定每个就绪任务对应的最优芯核。与现有技术相比,本发明按照任务优先级的高低对就绪任务进行调度,从而确定每个任务对应的最优芯核,提高了多处理器片上系统性能良品率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1示出了本发明一个实施例公开的一种多处理器片上系统的性能良品率优化方法的流程示意图;

图2示出了本发明公开的一种就绪任务调度方法的流程示意图;

图3示出了本发明另一个实施例公开的一种多处理器片上系统的性能良品率优化装置的结构。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1示出了本发明一个实施例公开的一种多处理器片上系统的性能良品率优化方法的流程示意图。

在本实施例中,该方法包括:

步骤a:获取当前调度时间节点。

步骤b:识别在所述当前调度时间节点下的多个就绪任务和多个就绪处理芯核。

所述就绪任务指的是当前调度时间节点该任务的所有前继任务已经完成调度且执行完成。就绪处理芯核指当前调度时间节点该处理芯核处于空闲状态,没有待执行的任务。

步骤c:确定所有就绪任务的任务优先级。

为了实现上述目的,首先识别任务图中的关键任务。所谓关键任务是指将这些任务调度到不同的处理芯核上将会对性能良品率产生较大的影响。由于电路拓扑结构与通信任务图本质上都可以抽象成有向非循环图,因此可应用电路统计时序分析理论进行任务图分析,识别关键任务。对任务图进行统计时序分析以识别统计关键通路,而位于统计关键通路上的任务则可以看成是关键任务。

在此基础上,采用如下公式表示任务优先级:

ptask=(1+k·ctask)·vlatency·alatency

公式中,k为大于1的常量。ctask为一个二进制变量,表示任务是否是关键任务。对于关键任务,ctask取值为1;反之,取值为0。vlatency表示任务在所有处理芯核上执行延迟的方差。该参数取值越大,表示任务在不同处理芯核上的执行延迟差异越大,应该优先调度。alatency表示任务在所有处理芯核上执行延迟的均值。该参数取值越大,表示任务的执行时间余量(slack)越小,则对于性能良品率的影响越大,应优先调度。

步骤d:按照任务优先级从到高到低的顺序,基于性能良品率确定每个就绪任务对应的最优处理芯核系。

具体的,参见图2示出了本发明公开的一种就绪任务调度方法的流程示意图。该方法包括:

步骤d1:确定所有就绪任务中的最高优先级任务。

步骤d2:计算所述最高优先级任务调度到所有处理芯核上的性能良品率。

步骤d3:将性能良品率最大的处理芯核作为所述最高优先级任务对应的最优处理芯核。

步骤d4:从就绪任务和就绪处理芯核中剔除所述最高优先级任务以及最优处理芯核,以更新所述就绪任务和所述处理芯核。

步骤d5:循环执行步骤d1至步骤d4,直至完成所有就绪任务的调度。

步骤e:判断所有任务是否均已调度,若否则更新调度时间节点,循环执行步骤a、步骤b、步骤c和步骤d,直至所有任务均已被调度,并输出调度方案。

由以上实施例可知,本实施例公开了本申请公开了本申请公开了一种多处理器片上系统的性能良品率优化方法。该方法首先识别当前调度时间节点下的就绪任务和就绪处理芯核,进而确定所有就绪任务的任务优先级,并按照优先级从高到低的顺序,基于性能良品率确定每个就绪任务对应的最优芯核。与现有技术相比,本发明按照任务优先级的高低对就绪任务进行调度,从而确定每个任务对应的最优芯核,提高了多处理器片上系统性能良品率。需要说明的是,在实际应用中驾驶员需要基于跟航车辆的运行对领航车辆的运行进行调整,以保证物流运输中的安全性。因而在本发明公开的其他实施例中,领航车辆还需要接收跟航车辆的跟航报文(跟航报文包括所述跟航车辆的位置信息、行进状态信息以及车辆轮廓信息),以辅助驾驶员对领航车辆进行控制。

参见图3示出了本发明另一个实施例公开的一种多处理器片上系统的性能良品率优化装置的结构。

在本实施例中,该装置包括:时间节点获取单元1、识别单元2、优先级确定单元3、调度单元4以及判断单元5。

其中,时间节点获取单元1用于获取当前调度时间节点。

识别单元2基于时间节点获取单元获得的调度时间节点,识别在当前调度时间节点下的多个就绪任务和多个就绪处理芯核。

需要说明的是,所述就绪任务指的是当前调度时间节点该任务的所有前继任务已经完成调度且执行完成。就绪处理芯核指当前调度时间节点该处理芯核处于空闲状态,没有待执行的任务。

优先级确定单元3用于确定所有就绪任务的任务优先级。

具体的,该优先级确定单元3包括:关键任务识别模块31和第一计算模块32。

关键任务识别模块31用于识别所述就绪任务中的关键任务。

所谓关键任务是指将这些任务调度到不同的处理芯核上将会对性能良品率产生较大的影响。由于电路拓扑结构与通信任务图本质上都可以抽象成有向非循环图,因此可应用电路统计时序分析理论进行任务图分析,识别关键任务。对任务图进行统计时序分析以识别统计关键通路,而位于统计关键通路上的任务则可以看成是关键任务。

第一计算模块32,用于基于预设公式ptask=(1+k·ctask)·vlatency·alatency计算所有就绪任务的任务优先级。

其中,k为大于1的常量;ctask为一个二进制变量,表示任务是否是关键任务,对于关键任务,ctask取值为1,反之,取值为0;vlatency表示任务在所有处理芯核上执行延迟的方差;alatency表示任务在所有处理芯核上执行延迟的均值。

调度单元4,用于按照任务优先级从到高到低的顺序,基于性能良品率确定每个就绪任务对应的最优处理芯核。

具体的,该调度单元4包括:最高优先级任务确定模块41、第二计算模块42、处理芯核选取模块43以及数据更新模块44。

其中,最高优先级任务确定模块41用于确定所有就绪任务中的最高优先级任务。

第二计算模块42用于计算所述最高优先级任务调度到所有处理芯核上的性能良品率。

处理芯核选取模块43用于将性能良品率最大的处理芯核作为所述最高优先级任务对应的最优处理芯核;

数据更新模块43用于从就绪任务和就绪处理芯核中剔除所述最高优先级任务以及最优处理芯核,以更新所述就绪任务和所述处理芯核。进而,最高优先级任务确定模块41从剩余的就绪任务中从新选择任务优先级最高的任务,直至所有就绪任务均已实现调度。

判断单元5用于判断所有任务是否均已调度,若否则更新调度时间节点,以对剩余的任务进行调度,若是,则输出任务调度方案。

需要说明的是该系统实施例与方法实施例相对应,其执行过程和执行原理相同,在此不作赘述。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1