CN111459648B - 面向应用程序的异构多核平台资源优化方法和装置 - Google Patents

面向应用程序的异构多核平台资源优化方法和装置 Download PDF

Info

Publication number
CN111459648B
CN111459648B CN202010551162.XA CN202010551162A CN111459648B CN 111459648 B CN111459648 B CN 111459648B CN 202010551162 A CN202010551162 A CN 202010551162A CN 111459648 B CN111459648 B CN 111459648B
Authority
CN
China
Prior art keywords
memory
application program
resources
application programs
application
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
CN202010551162.XA
Other languages
English (en)
Other versions
CN111459648A (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 Research Institute of Mechanical and Electrical Technology
Original Assignee
Beijing Research Institute of Mechanical and Electrical Technology
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 Research Institute of Mechanical and Electrical Technology filed Critical Beijing Research Institute of Mechanical and Electrical Technology
Priority to CN202010551162.XA priority Critical patent/CN111459648B/zh
Publication of CN111459648A publication Critical patent/CN111459648A/zh
Application granted granted Critical
Publication of CN111459648B publication Critical patent/CN111459648B/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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种面向应用程序的异构多核平台资源优化方法和装置,属于嵌入式操作系统领域,解决资源需求问题,方法包括:对异构多核平台上运行的应用程序进行属性设定,包括重新对应用程序的优先级进行设定,并对应用程序重要度以及类型设定;根据属性设定的结果,按照输入顺序分别对各应用程序进行计算资源和内存资源优化分配、管理并执行;当应用程序执行完毕,回收释放的计算资源和内存资源;当新的应用程序再次申请资源时,优先对回收的资源进行二次分配。本发明可有效降低计算资源的设计需求,可实现重要度高的应用程序对高效的内存资源充分利用,通过内存回收和重分配实现内存的无碎片化管理。

Description

面向应用程序的异构多核平台资源优化方法和装置
技术领域
本发明涉及嵌入式操作系统领域,尤其是一种面向应用程序的异构多核平台资源优化方法和装置。
背景技术
为适应嵌入式系统高可靠、高效能、低费效比、智能化等发展需求,各类嵌入式应用程序日益复杂多变,使得资源紧张。在有限的空间资源上,如何充分利用嵌入式系统的计算资源和内存资源,节约空间资源降低功耗的同时提供高可靠、强实时的复杂应用服务,满足领域的应用需求是嵌入式系统设计和应用开发人员所面临的挑战。
在嵌入式平台上,应用程序是与计算资源和内存资源绑定,不同阶段的任务分布于不同的计算节点和内存资源节点,这样一来,不同时刻各资源节点分配不均衡,造成一些资源过渡紧张一些资源处于空闲造成浪费。特别是对于多板多片级联的异构多核嵌入式系统,需解决如何实现对各计算和内存资源节点的动态管理、分配和回收,使各个节点资源利用率平衡,以实现降低资源需求,节省了空间资源的目的。
发明内容
鉴于上述的分析,本发明旨在提供一种面向应用程序的异构多核平台资源优化方法和装置,实现降低资源需求,节省空间资源。
本发明公开了一种面向应用程序的异构多核平台资源优化方法,包括以下步骤:
对异构多核平台上运行的应用程序进行属性设定,包括重新对应用程序的优先级进行设定,并对应用程序重要度以及类型设定;
根据属性设定的结果,按照输入顺序分别对各应用程序进行计算资源和内存资源优化分配、管理并执行;
当应用程序执行完毕,回收释放的计算资源和内存资源;
当新的应用程序再次申请资源时,优先对回收的资源进行二次分配。
进一步地,所述重新对应用程序的优先级进行设定,以各应用程序原有的优先级为基准,对原有优先级等级相同的应用程序采用RMS算法来重新划分优先级。
进一步地,所述应用程序重要度设定包括,按照重新设定的应用程序优先级顺序,结合处理器的存储资源,将应用程序进行重要性等级划分;
所述应用程序的重要度等级与异构多核平台的内存资源空间的重要度等级相对应,重要度等级高的运行程序分配重要度等级高的内存资源空间;当应用程序的运行空间大于分配的重要度等级的内存资源空间时,则下降将该应用程序的重要性等级,将其分配至大小能满足其运行空间的内存资源空间。
进一步地,所述应用程序类型设定包括,根据实际应用程序处理内容结合计算资源,将应用程序划分为控制类应用程序和计算类应用程序;其中,控制类应用程序包括事物处理程序、逻辑处理程序和关键控制程序,计算类应用程序包括解算类应用程序。
进一步地,所述计算资源的分配和管理包括:
将所述异构多核平台的处理器计算资源分为计算类资源和控制类资源;
根据属性设定的结果中应用程序类型进行计算资源的配置;
以应用程序的输入顺序,依次为应用程序分配计算资源,计算类、控制类应用程序分别与计算类、控制类计算资源进行对应分配。
进一步地,所述内存资源的分配和管理包括:
构建内存池,根据应用程序个数和各应用程序内存需求对内存池中内存规格的个数和各内存规格的大小进行规划;
将系统的内存资源进行重要度划分;
根据属性设定结果中的应用程序类型进行内存资源的配置;
按照应用程序的输入顺序,依次为提出内存申请的应用程序分配内存资源,相应重要度等级的应用程序在相应重要度等级内存空间中运行。
本发明还公开了一种面向应用程序的异构多核平台资源优化装置,包括:
应用程序管理模块,用于对异构多核平台上运行的应用程序进行属性设定,包括重新对应用程序的优先级进行设定,并对应用程序重要度以及类型设定;
资源优化管理模块,用于根据属性设定的结果,按照执行顺序分别对各应用程序进行计算资源和内存资源优化分配和管理;当应用程序执行完毕,释放的计算资源和内存资源将被回收;当新的应用程序再次申请资源时,优先对回收的资源进行二次分配;
终端资源,用于为资源优化管理模块提供对应的计算资源和内存资源。
进一步地,资源优化管理模块包括计算资源优化管理模块和内存资源优化管理模块;
所述计算资源优化管理模块,用于结合应用程序,对异构多核平台的计算资源进行分配、监管和回收;
内存资源优化管理模块,用于按照应用程序内存需求,进行内存资源的分配、监管和回收,实现内存的无碎片化管理。
进一步地,所述计算资源优化管理模块,首先对异构计算资源进行分类,按照计算处理能力和控制处理能力将处理器计算资源分为计算类和控制类;统计计算类应用程序总数和控制类应用程序总数,根据各类应用程序数量所占应用程序总数的比例对计算资源进行划分;按照输入的应用程序顺序,依次为应用程序分配计算资源,计算类、控制类应用程序与计算类、控制类计算资源实现对应分配;当应用程序执行完毕,对该应用程序占用的计算资源回收,并对该资源进行二次分配。
进一步地,所述内存资源优化管理模块,首先根据应用程序的内存需求,在内存分配之前构建内存池,并根据应用程序内存需求情况设置内存池内存规格;当应用程序申请内存时,对在内存池中为应用程序分配内存规格大小与申请内存大小相近的内存块;当应用程序执行结束,回收该内存区域,回收的内存区域可再次分配给其他应用程序使用。
本发明的有益效果如下:
本发明面向应用程序,将系统的计算资源和内存资源进行统一管理,均衡了系统各个计算节点的利用率同时,可有效降低计算资源的设计需求;同时,将根据应用程序需求将内存资源进行动态管理,可实现重要度高的应用程序对高效的内存资源充分利用;
面向领域应用,通过计算资源排序、分配、监控、回收的方式对计算资源进行统一管理,在任意阶段可以实现各计算节点负载均匀,在一定程度上较低了计算资源需求;
针对应用程序的运行空间,根据运行效率进行排序划分,采用优先级竞争的方式动态分配各应用程序的运行空间,使得运行资源得到充分利用,同时增加了应用程序的运行效率;
采用预先建立内存池设定指定规格内存块的方式实现内存管理,通过内存回收和重分配实现内存的无碎片化管理。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明实施例一中的异构多核平台资源优化方法流程图;
图2为本发明实施例一中的计算资源的分配和管理示意图;
图3为本发明实施例一中的内存池的建立方法示意图;
图4为本发明实施例二中的异构多核平台资源优化装置组成连接原理示意图;
图5为本发明实施例二中的计算资源优化管理模块原理示意图;
图6为本发明实施例二中的内存资源优化管理模块原理示意图;
图7为本发明实施例三中TMS320C6678多核DSP资源示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。
实施例一
本实施例公开了一种面向应用程序的异构多核平台资源优化方法,如图1所示,包括以下步骤:
步骤S1、对异构多核平台上运行的应用程序进行全生命周期的统一管理,对异构多核平台上运行的应用程序进行属性设定,包括重新对应用程序的优先级进行设定,并对应用程序重要度以及类型设定;
具体包括:
1)重新对应用程序的优先级进行设定;
根据各应用程序原有的优先级和执行周期为各个应用程序重新设定优先级。
具体的,应用程序优先级的重新设定以原有优先级为基准配合RMS(单调速率调度)算法:
所述原有的优先级是以应用程序的重要程度为基准建立每个应用程序的优先级;
例如,将应用程序划分为0-32个等级,数字越小越重要,即优先级更高,优先执行。但同等等级的应用程序中包括多个程序,这些程序运行时会引起资源的竞争问题。
因此,本实施例对于同等优先级的应用程序再进行优先级划分,采用RMS(单调速率调度)算法来确定执行顺序,
即同等优先级的应用程序,计算运行频率,运行频率高则在同等优先级的应用程序中优先被执行。
通过对程序优先级的重新设定避免了现有方法中只以优先级为准,优先级越高,越先执行,但会引起同等优先级的应用程序之间对资源的竞争问题;又避免了单独采用RMS算法的静态调度属性,只以运行频率为依据判断优先级带来的执行频率最高的任务并非最重要任务的问题。
2)根据重新设定的优先级对应用程序的重要度进行重新设定;
考虑到异构多核平台内存资源运行应用程序的速度不同,确保优先级高的应用程序占用高速的内存资源运行,按照重新划分的应用程序优先级顺序,结合处理器的内存资源的重要性等级,将应用程序划分为对应的重要性等级。
例如,将应用程序分为重要、一般两个等级;将重新划分优先级的前1/3划分为重要等级,其余的2/3划分为一般等级。
根据重要度划分完之后,重要度高的运行程序一般运行到重要度高的内存资源空间运行。
特别的,若划分为重要等级的应用程序其运行空间大于重要等级对应内存资源,则将该应用程序重新划分为一般等级;并且,当某一时刻,重要的应用程序准备在重要度高的内存资源空间运行时,当前内存资源已经不足,则该应用程序则被分配到一般优先级内存空间运行。
3)对应用程序的类型进行设定;
针对领域实际应用场景和应用需求,应用程序一般包含事物处理程序、逻辑处理程序、关键控制程序和解算程序,结合异构多核平台计算资源的搭载情况,一般分为控制型的CPU资源和以计算为主的DSP等专用处理器资源。
因此,根据实际应用程序处理内容结合计算资源,将应用程序统一划分为控制类应用程序和计算类应用程序,其中控制类应用程序主要包含事物处理程序、逻辑处理程序和关键控制程序,计算类应用程序主要指解算类应用程序。
根据上述属性设定方法,将每个应用程序的属性设定结果写入应用程序结构体_process_config中;
具体的_应用程序结构体process_config如下所示:
typedef struct _process_config
{
int prio; //优先级
bool import; //重要度,分为重要、一般
bool type; //应用程序类型,分为控制类、计算类
int fd; //应用程序句柄
} process_config。
步骤S2、根据属性设定的结果,按照输入顺序分别对各应用程序进行计算资源和内存资源优化分配、管理并执行;
具体的,如图2所示,计算资源的分配和管理包括:
1)将所述异构多核平台的处理器计算资源分为计算类资源和控制类资源;
本实施例的异构多核平台采用的是异构处理器架构,包含控制型CPU资源和计算型DSP等处理器资源,首先对异构计算资源进行分类,按照计算处理能力和控制处理能力将处理器计算资源分为计算类和控制类。
2)根据属性设定的结果中应用程序类型process_config.type,进行计算资源的配置。
特别的,针对处理模块计算资源单一,则按照属性设定的结果中应用程序类型的比例对同类计算资源进行划分,将计算类和控制类应用程序分别处理。在该情况下统计计算类应用程序总数和控制类应用程序总数,根据各类应用程序数量所占应用程序总数的比例对计算资源进行划分配置。
3)以应用程序的输入顺序,依次为应用程序分配计算资源,计算类、控制类应用程序分别与计算类、控制类计算资源进行对应分配。
当应用程序执行完毕,进入步骤S3对该应用程序占用的计算资源回收,并对该资源进行二次分配。
内存资源优化分配和管理是根据应用程序的内存需求,在内存分配之前构建内存池,并根据应用程序内存需求情况设置内存池内存规格,当应用程序申请内存时,在内存池中为其分配内存规格大小与其相近的内存块(该内存块大于等于应用程序实际需求内存),当应用程序执行结束,进入步骤S3回收该内存区域,回收的内存区域可再次分配给其他应用程序使用。面向应用程序的异构多核平台资源优化管理则对内存资源进行统一管理和分配,可实现应用程序的动态切换和内存资源的充分利用,实现内存的无碎片管理。
具体的,内存资源优化分配和管理包括:
1)构建内存池,根据应用程序个数和各应用程序内存需求对内存池中内存规格的个数和各内存规格的大小进行规划;
内存规格的建立是根据应用程序所需内存大小定制化建立的,分配内存资源时候以固定内存块划分,速度块,不会产生内存碎片。
如图3所示,内存池的建立包括:
a.内存池中的内存规格的个数n可根据实际应用程序的需求进行设置。
内存池中内存规格的个数n可按应用程序的总数N确定,例如n=N/2,内存规格为x1、x2、…、xn
b.内存池中的规格大小根据应用程序内存需求进行设置。
首先对各应用程序内存需求y1、y2、y3、…、yN进行从小到大排序,并将其分为与内存规格相同的n组,分别为Y1、Y2、…、Yn
然后在每组内存需求中确认一个内存规格,该内存规格xi=MAX{Yi}。
采用该方式的内存资源管理,可以实现内存的无碎片化管理,当应用程序申请内存时,按照预定的内存规则对其进行分配,例如Yi组的应用程序内存申请则应对应内存规格为xi。当应用程序运行结束,对该快内存区域进行回收,当本组内其他的应用程序申请内存时,首先利用被回收的内存资源,如果不存在适合规格大小的内存资源则向后依次扩展。
2)将平台的内存资源进行重要度划分;
针对应用程序运行空间可选的嵌入式系统,其内存空间一般可分为:片内资源和片外资源,片内资源一般为L2和核间共享内存,片外资源为DDR。目前对于内存资源的分配是与应用程序绑定的,无论是否正在运行都将会占用该段内存空间。而针对运行速度高的内存空间往往容量较小,往往重要度高的应用程序得不到及时的处理。面向应用程序的资源优化管理则对内存资源进行统一管理和分配,可实现应用程序的动态切换和内存资源的充分利用。
具体的,本实施例的重要度划分将片内应用程序运行资源设定为重要级,将片外资源设置为一般级。
3)以应用程序管理模块设定的应用程序属性作为输入,通过应用程序类型process_config.import的重要度进行判断,import=1的应用程序的在重要级的内存资源中执行,import=0在一般级内存资源中执行。当重要级的片内内存资源不足以满足需求时,采用竞争的方式,在重要度为重要的应用程序中优先级高的占用片内资源,其他应用程序占用片外资源。
步骤S3、当应用程序执行完毕,应用程序占用资源将被释放,释放的计算资源和内存资源将被回收,当新的应用程序再次申请资源时,优先对回收的资源进行二次分配。
综上所述,本实施例面向应用程序,将系统的计算资源和内存资源进行统一管理,均衡了系统各个计算节点的利用率同时,可有效降低计算资源的设计需求;同时,将根据应用程序需求将内存资源进行动态管理,可实现重要度高的应用程序对高效的内存资源充分利用;
面向领域应用,通过计算资源排序、分配、监控、回收的方式对计算资源进行统一管理,在任意阶段可以实现各计算节点负载均匀,在一定程度上较低了计算资源需求;
针对应用程序的运行空间,根据运行效率进行排序划分,采用优先级竞争的方式动态分配各应用程序的运行空间,使得运行资源得到充分利用,同时增加了应用程序的运行效率;
采用预先建立内存池设定指定规格内存块的方式实现内存管理,通过内存回收和重分配实现内存的无碎片化管理。
实施例二
本发明公开了一种面向应用程序的异构多核平台资源优化装置,如图4所示,包括应用程序管理模块、资源优化管理模块和终端资源。
所述应用程序管理模块,是针对全生命周期的应用程序进行统一管理,对异构多核平台上运行的应用程序进行属性设定,包括重新对应用程序的优先级进行设定,并对应用程序重要度以及类型设定。
具体的,实施例的应用程序管理模块根据各应用程序的优先级设定和执行周期为各个程序建立优先级。应用程序优先级的设定以优先级为基准配合RMS(单调速率调度)算法:每个应用程序包含优先级(0-32,数字越小优先级越高)和应用程序运行频率(频率高的优先级高),同等优先级条件下执行周期越短的应用程序优先被执行。
针对领域实际应用场景和应用需求,应用程序一般包含事物处理程序、逻辑处理程序、关键控制程序和解算程序,结合异构多核平台计算资源的搭载情况,一般分为控制型的CPU资源和以计算为主的DSP等专用处理器资源。因此根据实际应用程序处理内容结合计算资源,将应用程序统一划分为控制类应用程序和计算类应用程序,其中控制类应用程序主要包含事物处理程序、逻辑处理程序和关键控制程序,计算类应用程序主要指解算类应用程序。
考虑到异构多核平台内存资源运行应用程序的速度不同,确保优先级高的应用程序占用高速的内存资源运行,根据应用程序的优先级,将应用程序分为重要、一般两个等级。具体划分方法如下:应用程序优先级在[0,n/3]内的成为重要等级,([2n/3,n])为一般等级(其中n为可分配优先级的个数)。特别的,若重要等级的应用程序运行空间大于重要等级的内存资源,则该应用程序被评为一般等级;如重要等级的内存空间不足以支撑重要等级的应用程序运行,按优先级先后运行,低优先级的应用程序分配到一般内存资源空间运行。
资源优化管理模块,对平台的计算资源和内存资源进行统一管理;用于根据属性设定的结果,按照执行顺序分别对各应用程序进行计算资源和内存资源优化分配和管理;当应用程序执行完毕,释放的计算资源和内存资源将被回收;当新的应用程序再次申请资源时,优先对回收的资源进行二次分配;
具体包括计算资源优化管理模块和内存资源优化管理模块。
所述计算资源优化管理模块,用于结合应用程序,对异构多核平台的计算资源进行统一、监管和回收;
内存资源优化管理模块,用于按照应用程序内存需求,分配内存资源,进行内存的无碎片化管理。
更具体的,计算资源优化管理模块将平台计算资源进行统一管理,主要是根据计算资源差别将处理器资源划分为控制类资源和计算类资源,结合应用程序对计算资源进行统一分配、监管和回收。
如图5所示,所述计算资源优化管理模块,首先对异构计算资源进行分类,按照计算处理能力和控制处理能力将处理器计算资源分为计算类和控制类;统计计算类应用程序总数和控制类应用程序总数,根据各类应用程序数量所占应用程序总数的比例对计算资源进行划分;按照输入的应用程序顺序,依次为应用程序分配计算资源,计算类、控制类应用程序与计算类、控制类计算资源实现对应分配;当应用程序执行完毕,对该应用程序占用的计算资源回收,并对该资源进行二次分配。
更具体的,内存资源优化管理模块是面向应用程序的运行空间的分配与管理,对重要、一般的应用程序进行分配运行资源,按照应用程序内存需求设定内存块,实现无碎片化管理。
如图6所示,所述内存资源优化管理模块,首先根据应用程序的内存需求,在内存分配之前构建内存池,并根据应用程序内存需求情况设置内存池内存规格;当应用程序申请内存时,对在内存池中为应用程序分配内存规格大小与申请内存大小相近的内存块;当应用程序执行结束,回收该内存区域,回收的内存区域可再次分配给其他应用程序使用。
终端资源,为在包含计算资源管理模块和内存资源管理模块所对应的计算资源和内存资源。
在本实施例中一些技术细节以及能取得的技术效果与实施例一相同,请参见实施例一,在这里就不一一赘述了。
实施例三
本实施例以TMS320C6678多核DSP为例,实现面向应用程序的异构多核平台资源优化方法。
具体的,如图7所示,以0核、1核作为控制类资源其余核作为计算资源对本发明进行举例说明:
TMS320C6678板卡具有八核处理器,八核共用的内存资源包括4MB SRAM 和512MBDDR,每个核的私有运行空间为512KB SRAM(该空间可配置为L2 cache 或 SRAM),在嵌入式系统中主要用于复杂应用程序的计算。
面向应用程序的异构多核平台资源优化方法以光电处理模块为例可以包括以下步骤:
步骤S1、对TMS320C6678板卡上运行的应用程序进行属性设定,包括重新对应用程序的优先级进行设定,并对应用程序重要度以及类型设定,得到结构体process_config
具体的,根据应用程序自身属性对_process_config应用程序属性结构体进行重新设定为:
typedef struct _process_config
{
int prio; //优先级
bool import; //重要度,import=1为重要,import=0一般
bool type; //应用程序类型,type=1为控制类,type=0为计算类
int fd; //应用程序句柄
} process_config;
步骤S2、根据属性设定的结果,按照执行顺序分别对各应用程序进行计算资源和内存资源优化分配和管理;
具体的,计算资源优化分配管理,八核处理器均为计算类DSP处理器,故将核0、核1作为控制类计算资源,将其余核作为计算类计算资源,以应用程序管理模块设定的应用程序属性作为输入,通过应用程序类型process_config.type进行判断,type=1的应用程序在0、1核执行,type=0应用程序在2-7核执行。
具体的,内存资源优化管理包括:
1)、根据应用程序个数和各应用程序内存需求对内存池中内存规格个数和各内存规定大小进行计算;
2)、将L2、4M作为重要内存资源,将DDR作为一般内存资源,以应用程序管理模块设定的应用程序属性作为输入,通过应用程序类型process_config.import的重要度进行判断,import=1的应用程序的在重要内存资源中执行,import=0在一般内存资源中执行。
步骤S3、资源回收与重分配,当应用程序执行完毕,应用程序占用资源将被释放,释放的计算资源和内存资源将被回收,当新的应用程序再次申请资源时,优先对回收的资源进行二次分配。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (7)

1.一种面向应用程序的异构多核平台资源优化方法,其特征在于,包括以下步骤:
对异构多核平台上运行的应用程序进行属性设定,包括重新对应用程序的优先级进行设定,并对应用程序重要度以及类型设定;
根据属性设定的结果,按照输入顺序分别对各应用程序进行计算资源和内存资源优化分配、管理并执行;
当应用程序执行完毕,回收释放的计算资源和内存资源;
当新的应用程序再次申请资源时,优先对回收的资源进行二次分配;
所述应用程序重要度设定包括,按照重新设定的应用程序优先级顺序,结合处理器的存储资源,将应用程序进行重要性等级划分;
所述应用程序的重要度等级与异构多核平台的内存资源空间的重要度等级相对应,重要度等级高的运行程序分配重要度等级高的内存资源空间;当应用程序的运行空间大于分配的重要度等级的内存资源空间时,则下降将该应用程序的重要性等级,将其分配至大小能满足其运行空间的内存资源空间。
2.根据权利要求1所述的异构多核平台资源优化方法,其特征在于,所述重新对应用程序的优先级进行设定,以各应用程序原有的优先级为基准,对原有优先级等级相同的应用程序采用RMS算法来重新划分优先级。
3.根据权利要求1所述的异构多核平台资源优化方法,其特征在于,所述应用程序类型设定包括,根据实际应用程序处理内容结合计算资源,将应用程序划分为控制类应用程序和计算类应用程序;其中,控制类应用程序包括事物处理程序、逻辑处理程序和关键控制程序,计算类应用程序包括解算类应用程序。
4.根据权利要求1所述的异构多核平台资源优化方法,其特征在于,所述计算资源的分配和管理包括:
将所述异构多核平台的处理器计算资源分为计算类资源和控制类资源;
根据属性设定的结果中应用程序类型进行计算资源的配置;
以应用程序的输入顺序,依次为应用程序分配计算资源,计算类、控制类应用程序分别与计算类、控制类计算资源进行对应分配。
5.根据权利要求1所述的异构多核平台资源优化方法,其特征在于,所述内存资源的分配和管理包括:
构建内存池,根据应用程序个数和各应用程序内存需求对内存池中内存规格的个数和各内存规格的大小进行规划;
将系统的内存资源进行重要度划分;
根据属性设定结果中的应用程序类型进行内存资源的配置;
按照应用程序的输入顺序,依次为提出内存申请的应用程序分配内存资源,相应重要度等级的应用程序在相应重要度等级内存空间中运行。
6.一种面向应用程序的异构多核平台资源优化装置,其特征在于,包括:
应用程序管理模块,用于对异构多核平台上运行的应用程序进行属性设定,包括重新对应用程序的优先级进行设定,并对应用程序重要度以及类型设定;
资源优化管理模块,用于根据属性设定的结果,按照执行顺序分别对各应用程序进行计算资源和内存资源优化分配和管理;当应用程序执行完毕,释放的计算资源和内存资源将被回收;当新的应用程序再次申请资源时,优先对回收的资源进行二次分配;
终端资源,用于为资源优化管理模块提供对应的计算资源和内存资源;
资源优化管理模块包括计算资源优化管理模块和内存资源优化管理模块;
所述计算资源优化管理模块,用于结合应用程序,对异构多核平台的计算资源进行分配、监管和回收;
内存资源优化管理模块,用于按照应用程序内存需求,进行内存资源的分配、监管和回收,实现内存的无碎片化管理;
所述内存资源优化管理模块,首先根据应用程序的内存需求,在内存分配之前构建内存池,并根据应用程序内存需求情况设置内存池内存规格;当应用程序申请内存时,对在内存池中为应用程序分配内存规格大小与申请内存大小相近的内存块;当应用程序执行结束,回收该内存块,回收的内存块可再次分配给其他应用程序使用。
7.根据权利要求6所述的异构多核平台资源优化装置,其特征在于,所述计算资源优化管理模块,首先对异构计算资源进行分类,按照计算处理能力和控制处理能力将处理器计算资源分为计算类和控制类;统计计算类应用程序总数和控制类应用程序总数,根据各类应用程序数量所占应用程序总数的比例对计算资源进行划分;按照输入的应用程序顺序,依次为应用程序分配计算资源,计算类、控制类应用程序与计算类、控制类计算资源实现对应分配;当应用程序执行完毕,对该应用程序占用的计算资源回收,并对该资源进行二次分配。
CN202010551162.XA 2020-06-17 2020-06-17 面向应用程序的异构多核平台资源优化方法和装置 Active CN111459648B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010551162.XA CN111459648B (zh) 2020-06-17 2020-06-17 面向应用程序的异构多核平台资源优化方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010551162.XA CN111459648B (zh) 2020-06-17 2020-06-17 面向应用程序的异构多核平台资源优化方法和装置

Publications (2)

Publication Number Publication Date
CN111459648A CN111459648A (zh) 2020-07-28
CN111459648B true CN111459648B (zh) 2020-09-11

Family

ID=71679718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010551162.XA Active CN111459648B (zh) 2020-06-17 2020-06-17 面向应用程序的异构多核平台资源优化方法和装置

Country Status (1)

Country Link
CN (1) CN111459648B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527506B (zh) * 2020-12-18 2022-09-23 北京百度网讯科技有限公司 设备资源的处理方法、装置、电子设备及存储介质
CN116643892B (zh) * 2023-07-25 2023-10-27 北京芯驰半导体科技有限公司 内存管理方法、装置、芯片及交通设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100499556C (zh) * 2007-10-17 2009-06-10 中国人民解放军国防科学技术大学 异构多核处理器高速异步互连通信网络
CN110879750A (zh) * 2017-10-13 2020-03-13 华为技术有限公司 资源管理的方法及终端设备
CN109213555B (zh) * 2018-08-16 2020-04-10 北京交通大学 一种面向虚拟桌面云的资源动态调度方法
CN110727508A (zh) * 2019-10-24 2020-01-24 无锡京和信息技术有限公司 一种任务调度系统和调度方法
CN111045799B (zh) * 2019-11-11 2023-03-14 西北工业大学 基于回收再分配的低安全关键任务调度方法

Also Published As

Publication number Publication date
CN111459648A (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
CN112465129B (zh) 片内异构人工智能处理器
US7689996B2 (en) Method to distribute programs using remote Java objects
CN102043675B (zh) 一种基于任务处理请求任务量大小的线程池管理方法
WO2023082560A1 (zh) 一种任务处理方法、装置、设备及介质
Xu et al. Adaptive task scheduling strategy based on dynamic workload adjustment for heterogeneous Hadoop clusters
WO2023103122A1 (zh) 深度学习框架与ai加速卡片内分布式训练适配方法和装置
CN104102543A (zh) 一种云计算环境中负载调整的方法和装置
CN112068957B (zh) 资源分配方法、装置、计算机设备及存储介质
CN111459648B (zh) 面向应用程序的异构多核平台资源优化方法和装置
CN114741207A (zh) 一种基于多维度组合并行的gpu资源调度方法和系统
CN114996018A (zh) 面向异构计算的资源调度方法、节点、系统、设备及介质
TW202101211A (zh) 中斷處理系統與中斷處理方法
CN112860396A (zh) 一种基于分布式深度学习的gpu调度方法及系统
CN117349026B (zh) 一种用于aigc模型训练的分布式算力调度系统
CN114661460A (zh) 面向异构众核处理器的ai框架两级并行加速方法
Liu et al. Task offloading with execution cost minimization in heterogeneous mobile cloud computing
CN117909061A (zh) 基于gpu混合集群的模型任务处理系统和资源调度方法
CN101290592A (zh) 一种mpsoc上多道程序共享spm的实现方法
US10157066B2 (en) Method for optimizing performance of computationally intensive applications
CN112148546A (zh) 电力系统静态安全分析并行计算系统及方法
CN1851651A (zh) 嵌入式sram操作系统进程优先权调度的实现方法
WO2022111466A1 (zh) 任务调度方法、控制方法、电子设备、计算机可读介质
CN117632457A (zh) 一种加速器调度方法及相关装置
KR102204032B1 (ko) 비대칭 멀티코어 기반 스마트 모바일 단말의 에너지 소모를 줄이기 위한 실시간 태스크의 코어 할당 방법 및 그 장치
CN110333899B (zh) 数据处理方法、装置和存储介质

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