首页> 中国专利> 任务数目和性能感知的可重构多核处理器的资源分配方法

任务数目和性能感知的可重构多核处理器的资源分配方法

摘要

一种任务数目和性能感知的可重构多核处理器的资源分配方法,动态可重构多核处理器具有运行时动态重构片上资源的能力,为降低任务平均周转时间,提高系统吞吐率和芯片资源利用率提供了巨大的优化空间。本发明中,在每个操作系统调度间隔内,资源分配器先根据任务的数目平均分配逻辑核,运行一定时钟周期后,根据任务的性能(反映任务对资源的需求)对其进行排序,找出对资源需求小的任务,减小所占用的逻辑核的粒度,并将从资源需求小的任务那里获得的空闲物理核分配给对资源需求高的任务,以增加该对资源需求高的任务占用的逻辑核的粒度。当系统当前的负载发生变化或者任务本身进入新的运行阶段时资源分配器将在下一次操作系统调度中及时做出调整以充分利用芯片资源。

著录项

  • 公开/公告号CN104331331A

    专利类型发明专利

  • 公开/公告日2015-02-04

    原文格式PDF

  • 申请/专利权人 中国科学技术大学;

    申请/专利号CN201410610548.8

  • 申请日2014-11-02

  • 分类号G06F9/50(20060101);

  • 代理机构11251 北京科迪生专利代理有限责任公司;

  • 代理人杨学明;孟卜娟

  • 地址 230026 安徽省合肥市包河区金寨路96号

  • 入库时间 2023-12-17 03:18:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-07-28

    授权

    授权

  • 2015-03-11

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20141102

    实质审查的生效

  • 2015-02-04

    公开

    公开

说明书

技术领域

本发明涉及计算机系统结构领域中操作系统设计和运行时支持,特别涉及一种任务数目 和性能感知的可重构多核处理器的资源分配方法

背景技术

动态可重构多核处理器技术及基于动态可重构多核处理器的资源分配算法简介

动态可重构多核处理器(Dynamic Reconfigurable Chip Multiprocessor,DRCMP)是近年 来学术界提出的一类新兴的多核处理器结构。DRCMP芯片由一组结构简单的同构的物理处 理单元构成,我们称这种处理单元为物理核。DRCMP可以在运行时动态地重构由一个或者 多个物理核构成的一个逻辑上的逻辑核。任务运行在逻辑核上。构成逻辑核的物理核越多, 这个逻辑核粒度越大。可以通过增加物理核的数目来增大逻辑核的粒度或者减少物理核数目 来减小逻辑核的粒度。不同粒度的逻辑核其计算能力不同,为了满足不同任务不同执行阶段 的需求,可以配置不同粒度的逻辑核(示意图见图1)。

因此,在DRCMP中资源分配器(可以用硬件或软件实现)根据系统中任务的数目和性 能动态地调整逻辑核中的物理核的数量,也即是改变逻辑核的粒度,为降低任务平均周转时 间,提高系统吞吐率和芯片资源利用率提供了巨大的优化空间。

但是,据我们调研,截止本发明申请时,尚无研究成果在DRCMP上同时支持任务数目 和性能快速感知的动态资源分配方案。目前,在编译时静态决定逻辑核的分配算法不能运行 时根据运行情况动态调整资源配置。而动态分配算法可以做到这一点,其中最为典型的动态 资源分配算法有EQUI和PDPA。下面对EQUI和PDPA作简要介绍。

EQUI资源分配算法不考虑单个任务的特性,只是考虑系统中任务的数目,即平均分配 给每个任务资源。每个任务都获得粒度相等的逻辑核。每当有任务执行完毕或者新的任务到 达时,系统中任务的数目就会发生改变,EQUI算法就会根据任务数目重新计算每个任务获 得的逻辑核的粒度,从而重新平均分配逻辑核。比如,假如系统中物理核的数目为16,且运 行的任务数为2,那么配置两个粒度为8的逻辑核分别分配给这两个任务。但是,不同的任 务获得的性能不同,且相同的任务在不同的执行阶段的性能也有差异,而任务的性能反映了 其对计算资源的需求。EQUI的实现过于简单,只是从全局性的任务数出发,而没有考虑到 单个任务性能的差异性,不能很好地满足任务的需求,没有充分利用资源。

PDPA资源分配算法考虑到了系统中每个任务的阶段性行为特征。能够根据任务的行为 特征动态地适时地调整逻辑核的大小。PDPA资源分配算法中有两个阈值:目标效率和最高 效率,其中,最高效率大于目标效率。系统实时的检测任务的效率,确保效率在目标效率和 最高效率之间。如果任务的效率小于目标效率,说明任务占用的逻辑核过大而浪费资源,则 适当减小逻辑核,使得效率增大。如果任务的效率大于最高效率,说明任务占用的逻辑核过 小严重不能满足需求,则适当地增大逻辑核,使得效率减小。PDPA过于关注单个任务对资 源的需求,而忽视了对全局的把握。在PDPA中,只有当系统的任务数目有明显变化时,才 适当重新设置目标效率和最高效率的值。

DRCMP系统面临的问题

使用DRCMP构建计算机系统、在DRCMP上提供任务数目和性能感知的动态资源分配, 目前主要面临的困难在于DRCMP结构芯片上资源的可重构特性引入了资源分配问题,包括:

①决定系统中逻辑核的数目

②决定每个逻辑核的粒度

③决定任务向逻辑核的映射策略

④决定何种条件下调整资源配置

其中,如何高效地利用DRCMP芯片结构片上资源的可重构特性,是在DRCMP上有效 进行任务数目和性能感知的动态资源分配的关键技术问题。

本发明充分地发挥动态可重构多核处理器(DRCMP)芯片结构片上资源的可重构能力, 提出了一种简单有效的资源分配方法,能根据当前系统中任务的数目和性能动态地调整处理 器核的数目和粒度,降低任务平均周转时间,提高系统吞吐率和芯片资源利用率,解决 DRCMP结构上高效的片上资源分配问题。

发明内容

本发明提出一种任务数目和性能感知的可重构多核处理器的资源分配方法,面向动态可 重构多核处理器芯片结构,如背景技术中所述,DRCMP可以在运行时动态地配置不同粒度 的逻辑核。任务运行在逻辑核上,不同粒度的逻辑核其计算能力不同,这能够满足不同任务 不同执行阶段的需求。构成逻辑核的物理核越多,逻辑核粒度越大。可以通过调整逻辑核的 数目和粒度来满足不同任务不同执行阶段的需求。而在多任务环境下在何种情况下以及如何 调整逻辑核的数目和粒度就是本发明的主要任务。为了实现高效的任务数目和性能感知的动 态资源分配,本发明中,在每个操作系统调度间隔内,资源分配器先根据任务的数目平均分 配逻辑核,运行一定时钟周期后,根据任务的性能即对资源的需求对其进行排序,找出对资 源需求小的任务,减小所占用的逻辑核的粒度,并将从资源需求小的任务那里获得的空闲物 理核分配给对资源需求高的任务,以增加该对资源需求高的任务占用的逻辑核的粒度。当系 统当前的任务数目发生变化或者任务本身进入新的运行阶段时资源分配器将在下一次操作 系统调度中及时做出调整以保持芯片资源的高效利用率。

每个操作系统调度间隔之内系统阶段的推进过程及条件如图2所示。本发明中系统共有 四个执行阶段:

1)任务抖动阶段:在新的操作系统调度开始时,系统的任务数目发生改变或者任务的 性能发生改变,任务的运行行为状态不正常的现象,我们称之为“抖动”。“抖动”现象带来的 不准确信息会影响资源分配器对任务性能的评估,从而对资源的调整做出错误的决策。因此, 系统会在该阶段停留一小段时间,而不采集性能信息,以此来屏蔽任务的“抖动”。在任务抖 动阶段开始时,资源分配器根据任务的数目平均分配计算资源,每个任务获得粒度相等的逻 辑核。

2)性能信息采集阶段:在该阶段,每个任务获得的逻辑核粒度依然相等。系统分别统 计该阶段每个任务获得的平均性能(如该阶段任务的IPC、缓存缺失率等)。资源分配器用 平均性能来当作下一阶段的指导依据。

3)性能评估与资源配置调整阶段:用上一阶段采集的信息评估每个任务的性能,以此 衡量任务对资源的需求。资源分配器根据任务的性能即对资源的需求对任务进行排序,从对 资源需求最小的任务开始找出部分对资源需求小的任务,并从对资源需求最大的任务开始找 出部分对资源需求大的任务,降低资源需求小的任务的逻辑核的粒度,空闲下来的物理核用 来增大资源需求大的那些任务所占用的逻辑核。调整资源配置后系统进入高效运行阶段。

4)高效运行阶段:系统进入该阶段说明现在的资源配置最适合当前的运行情况,即是 综合考虑任务数目和性能的最好的资源配置。系统在该资源配置下高效地运行,直到下一次 操作系统调度的到来,任务运行情况发生改变,系统进入任务抖动阶段。

系统不同阶段推进过程中主要参数说明:

1)逻辑核类型(CoreType)。具体有:

a)评估型(evaluation type):系统在性能信息采集阶段中,所有任务获得的逻辑核粒度 相等,在这些逻辑核上采集的性能信息为性能评估作准备,我们称此时的逻辑核为评估型。 因为任务抖动阶段和性能信息采集阶段任务的逻辑核粒度相同,我们也认为任务抖动阶段的 逻辑核为评估型。

b)稳定型(stable type):在系统的高效运行阶段,逻辑核的粒度处于一个稳定的状态, 不会再发生改变。

2)任务数目(task number):系统中运行的任务数目,在任务抖动阶段和性能信息采集 阶段决定评估型逻辑核粒度,也为了保证整个运行过程中的系统吞吐率。

3)性能(performance characteristic):任务执行情况的一些信息反映,比如IPC、缓存 缺失率等。用来衡量任务对资源的需求,从而为资源分配作指导。

4)性能比较因子(performance characteristic factor):用来衡量调整逻辑核粒度的必要性。 如任务A对资源的需求小于性能比较因子与任务B对资源需求的乘积,则我们认为有必要 调整任务A和任务B所占逻辑核的粒度。

5)时间间隔(intervals):由操作系统预先定义的一个阈值,用来限定系统相应阶段的 执行时间。每隔一定的时间间隔系统就会向前推进一个阶段。本发明中主要关注的时间间隔 有三个:

a)抖动时间间隔(jittered_intervals):该时间间隔用来限定抖动时间,力图既能够有效 屏蔽任务抖动又不会浪费太多时间。

b)性能信息采集时间间隔(sampled_intervals):该时间间隔用来限定性能信息采集时间, 力图既能够采集充分的表征性能的信息又不会浪费太多时间。

c)高效运行时间间隔(efficient_intervals):该阈值用来限定高效运行时间间隔,这三种 时间间隔之和略微小于操作系统调度间隔,小于的那部分被资源分配器调整资源时所消耗。

下面以一个具体的例子来说明系统四个阶段的推进过程。

假如系统中总共有16个物理核,逻辑核的粒度分为1、2、4、8四种。当前有8个任务 A、B、C、D、E、F、G、H,性能比较因子为0.5。操作系统新的调度开始,系统进入任务 抖动阶段,资源分配器分配给每个任务粒度为2的逻辑核,为评估型逻辑核。抖动时间初始 值为0,每过一个时间单元,抖动时间就加1,当抖动时间等于抖动时间间隔(jittered_intervals) 后系统进入性能信息采集阶段。

系统进入性能信息采集阶段后,从评估型逻辑核上采集该阶段中表征任务性能的信息。 当性能信息采集时间等于性能信息采集时间间隔(sampled_intervals)时,计算每个任务在这 段时间的性能(假如通过综合考虑IPC和缓存缺失率后获得的8个任务的量化性能分别为 0.6、0.4、1.5、1.0、1.2、1.2、1.1、1.1)。系统进入性能评估与资源配置调整阶段。

进入性能评估与资源配置调整阶段后,资源分配器依据性能对任务进行排序,排序后的 任务为:B(0.4)、A(0.6)、D(1.0)、G(1.1)、H(1.1)、E(1.2)、F(1.2)、C(1.5)。 任务B的性能小于性能比较因子0.5与任务C的性能乘积,由于逻辑核的粒度只有1、2、4、 8四种,资源分配器从任务B中获取1个物理核不能满足任务C的需求,恰巧任务A的性 能也小于性能比较因子0.5与任务C的性能乘积,资源分配器又从任务A中获取1个物理核, 此时调整任务A、B、C所占逻辑核的粒度为1、1、4。任务D、E、F、G、H不满足逻辑核 调整的条件,不改变其逻辑核的粒度。系统进入高效运行阶段。

进入高效运行阶段后,任务A、B、C、D、E、F、G、H所占的逻辑核的粒度一直不变, 分别为1、1、4、2、2、2、2、2。直到高效运行时间到达高效运行间隔(efficient_intervals) 为止。

与现有技术中存在的问题相比较,本发明所具有的优点和积极效果主要体现在:

1)本发明相比较于在编译阶段静态决定逻辑核的分配算法能运行时根据运行情况动态 调整资源配置。

2)本发明相比较于EQUI分配算法能充分考虑到不同任务的差异性以及相同任务不同 执行阶段的差异性。

3)本发明相比较于PDPA分配算法,对全局有了充分的把握,对系统中任务总数的改 变更加敏感,而且没有PDPA复杂的状态转换。

本发明提出的方法相较于以上提到的算法运行时的实际表现更好,既能快速感知系统中 任务总数的变化以及任务的阶段性性能,依此来动态地重构资源,显著降低了任务的平均周 转时间,提高了任务的系统吞吐率和芯片资源利用率。

附图说明

图1、动态可重构多核处理器重构配置示意图,该处理器芯片上有16个物理核。左图所 示的配置中有16个逻辑核,每个逻辑核的粒度都为1;重构后变为中图的配置,有5个逻辑 核,逻辑核的粒度分别为8、4、2、1、1;继续重构后变为右图的配置,有六个逻辑核,逻 辑核的粒度分别为4、2、2、2、2、4。

图2是本发明的主要技术方法中系统不同阶段的推进过程

具体实施方式

本发明的目的、优点和关键技术,将通过下面具体实施方式进行解释。这个实施只是该 方案的一个典型范例,凡采取替换或者等效变换而形成的技术方案,均落在本发明要求保护 的范围之内。本节将本发明应用于支持一个典型的DRCMP结构(TFlex)上的动态资源分 配。

在TFlex结构中,芯片上总共有32个物理核,能同时运行的任务数目最多为16。总共 有1、2、4、8、16五种粒度的逻辑核,即分别为由1、2、4、8、16个物理核构成的逻辑核。 系统在任务抖动阶段或者性能信息采集阶段,逻辑核为评估型,其数目和粒度取决于当前同 时运行的任务的数目。若同时运行的任务数在1到2之间,则评估型逻辑核粒度为16;若同 时运行的任务数在3到4之间,则评估型逻辑核粒度为8;若同时运行的任务数在5到8之 间,则评估型逻辑核粒度为4;若同时运行的任务数在9到16之间,则评估型逻辑核粒度为 2。

在经过性能评估与资源配置调整阶段后,逻辑核由评估型变为稳定型。当评估型逻辑核 粒度为2时,稳定型逻辑核粒度可能为1、2、4;当评估型逻辑核粒度为4时,稳定型逻辑 核粒度可能为2、4、8;当评估型逻辑核粒度为8时,稳定型逻辑核粒度可能为4、8、16; 当评估型逻辑核粒度为16时,稳定型逻辑核粒度为16。

在TFlex结构上,我们用IPC和缓存缺失率的一个函数值表示任务的性能,并用该量化 后的性能衡量任务对资源的需求。在比较对资源的需求时我们设置性能比较因子为0.5。

在TFlex结构上,时间间隔选择如下:

1)抖动时间间隔(jittered_intervals)=50000cycles;

2)性能信息采集时间间隔(sampled__intervals)=50000cycles;

3)高效运行时间间隔(efficient_intervals)=900000cycles;

对运行在芯片上的资源分配器的工作过程将按照图2中所描述的过程进行。以下用举例 方式阐述图2所描述的过程。

假如当前有4个任务A、B、C、D。操作系统新的调度开始,系统进入任务抖动阶段, 资源分配器分配给每个任务粒度为8的逻辑核,为评估型逻辑核。抖动时间初始值为0,每 过一个cycle,抖动时间就加1,当抖动时间等于抖动时间间隔50000cycles后系统进入性能 信息采集阶段。

系统进入性信息采集阶段后,从评估型逻辑核上采集该阶段中表征任务性能的信息。当 性能信息采集时间等于性能信息采集时间间隔50000cycles时,计算每个任务在这段时间的 性能(假如IPC和缓存缺失率两个因素构成的函数值分别为0.2、0.4、1、1.3)。系统进入性 能评估与资源配置调整阶段。

进入性能评估与资源配置调整阶段后,资源分配器依据性能对任务进行排序,排序后的 任务为:A、B、C、D。任务A的性能小于性能比较因子0.5与任务D的性能乘积,由于逻 辑核的粒度只有1、2、4、8、16五种,资源分配器从任务A中获取4个物理核不能满足任 务D的需求,恰巧任务B的性能也小于性能比较因子0.5与任务D的性能乘积,资源分配 器又从任务B中获取4个物理核,此时调整任务A、B、C、D所占逻辑核的粒度为4、4、8、 16。系统进入高效运行阶段。

进入高效运行阶段后,任务A、B、C、D所占的逻辑核的粒度一直不变。直到高效运行 时间到达高效运行间隔900000cycles为止。在有任务的情况下系统的四个阶段不停地推进。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号