CN111045803A - 一种动态部分可重构片上系统软硬件划分与调度的最优化方法 - Google Patents
一种动态部分可重构片上系统软硬件划分与调度的最优化方法 Download PDFInfo
- Publication number
- CN111045803A CN111045803A CN201911164141.6A CN201911164141A CN111045803A CN 111045803 A CN111045803 A CN 111045803A CN 201911164141 A CN201911164141 A CN 201911164141A CN 111045803 A CN111045803 A CN 111045803A
- Authority
- CN
- China
- Prior art keywords
- task
- reconfigurable
- executed
- tasks
- execution
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5044—Allocation 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 hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5055—Allocation 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 software capabilities, i.e. software resources associated or available to the machine
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提出一种动态部分可重构片上系统软硬件划分与调度的最优化方法。首先对应用和系统进行建模并将软硬件划分问题归结为混合线性规划模型。利用运筹学求解工具对模型进行求解,并输出应用的部署方案包括任务开始执行时间、结束时间以及映射到重构区域上任务的重构时间和任务到处理器的映射。与现有的软硬件划分算法相比,本发明提出的MILP规避了随机优化算法容易陷入局部最优的风险,算法的求解结果与实际应用更加贴切。
Description
技术领域
本发明涉及动态部分可重构片上系统软硬件划分与调度问题,特别是针对应用在集成了现场可编程门阵列(FPGA)和微处理器的异构系统上执行的软硬件划分与调度问题。
背景技术
FPGA是一种可编程的逻辑门阵列,具有强大的并行计算能力。而动态部分可重构片上系统集成了CPU和具有动态部分可重构特性的现场可编程门阵列(FPGA)。动态部分可重构是指系统可以在运行时动态地改变某个区域的功能,而不中断其他区域上正在运行的任务。它可以实现任务的并行执行,实现了资源的空间复用;同时同一个区域在不同时间执行不同的应用,实现了资源的时分复用。因此,动态部分可重构在很多领域都得到了广泛的应用。如在多媒体、卫星通信、航空、控制等领域,硬件资源有限且往往需要在保证现有任务不中断的前提下切换或者增加系统的功能。另一方面当下炙手可热的云计算,云端的数据量巨大需要依托计算力强的处理器来支撑;同时云中心需要做资源共享,并根据客户端的需求对资源进行动态分配。
而目前,基于FPGA的应用大多数都是基于传统的硬件编程,每个应用的执行都需要占用整块FPGA的资源。而FPGA实际的硬件资源往往是有限的,如何基于有限的资源实现复杂的应用,是很多领域需要关注的问题。另一方面,随着技术的发展人们对系统功能的需求越来越多样化。这些都对处理器的计算能力和架构提出了严峻的挑战。然而,ASIC专用芯片它虽然具有很高的运算能力,但是它存在灵活性差、研发周期长且成本高等缺陷。近年来备受青睐的GPU也存在着功耗高等瓶颈。传统的硬件编程也存在着开发周期长、资源占用量大的困境。
另一方面,动态部分可重构可分为一维(1-D)可重构和二维(2-D)可重构。一维重构是指重构区域矩形框的高度是不变的,即只能在横向对区域进行分割;如Xilinx的Virtex和Virtex-2(pro)都具有一维可重构特性的。而二维可重构是指重构区域矩形框的高度和宽度都可以根据实际需求任意划分,如Xilinx Virtex-4/5/6/7系列以及Zynq-7000、Ultrascale(+)SoCs等。我们主要考虑具有二维可重构特性的异构系统。
动态部分可重构片上系统兼具了CPU的灵活性和硬件的高效性,如何在高效性和系统功耗之间折中是人们一直在探索的问题。
发明内容
为了解决应用在动态部分可重构异构系统上的软硬件划分与调度问题,同时最大程度地降低系统的功耗,本发明提供了一种软硬件划分与调度方法。该方法基于混合整数线性规划(MILP)对应用的划分问题进行精确高效的建模,在满足系统多个约束的前提下,求解出问题的最优解。
应用在动态部分可重构片上系统执行需要应用本身任务间数据依赖关系和系统带来的约束。本发明使用混合整数线性规划来建模这一系列的约束和问题的目标,并采用线性求解器对问题进行求解。
为了更完整地描述应用的软硬件划分问题,本发明提出了一种简洁的MILP模型,考虑了任务的硬件资源占用量等指标,从而使模型更贴切于实际应用。本发明首先将实际应用建模为有向无环图(DAG),并对动态部分可重构异构系统的特性进行建模,明确了任务在此类系统中部署时所需要满足的约束,并针对现有文献中所提算法的不足之处,发明了一种基于混合整数线性规划的软硬件划分方法,所发明的方法能够快速地得到问题的最优解,同时调度的结果对实际工程应用有巨大的指导意义。
本发明的技术方案是:将实际应用例子建模为DAG图,同时考虑动态部分可重构异构系统对应用执行的约束,将软硬件划分问题建模为一种组合优化问题并使用MILP进行求解,具体包括下述步骤:
1.系统与应用建模
本发明的目标平台是集成了微处理器和具有动态部分可重构特性的FPGA。FPGA可编程门阵列可以划分成一个静态的区域和一系列动态部分可重构区域,本发明将动态部分可重构区域表示为集合PR={PR1,PR2,...PR|PR|}。每个可重构区域由多种硬件资源构成如CLB、DSP、BRAM等,不同类型的资源可以表示为H={h1,h2,...h|H|}。对于每一种资源h∈H,为区域PRk∈PR的该类资源数;而TNh为整块FPGA上h资源的总数。每个可重构区域PRi∈PR的重构时延为RTi,且其中为定义区域PRi所需要的配置文件大小,Bcfg为可重构配置端口的带宽。通过共享内存技术,各重构区域间的通信延时视为0;
我们将应用建模为有向无环图(DAG),DAG可表示为G=(V,E),其中V是一个有限的集合表示应用的任务节点;E为边的集合,描述应用中任务间的数据依赖关系。每个任务节点v∈V,有两个整数型属性值cs(v)、ch(v),分别表示任务在CPU和FPGA上执行需要消耗的时间。为了建模任务的硬件资源消耗,我们引入变量描述任务v在FPGA上执行所需要消耗h资源的数目。当区域的资源类型和数目满足任务v的要求时任务才能映射到该区域。对于每条边e∈E,使用src(e)表示边e上的源任务,dst(e)表示目的任务,每条边有一个属性we表示源任务到目的任务的通信开销。每个应用都有一个终止节点(没有子节点),在本发明中我们使用Vexit来表示。
2.软硬件划分与调度问题描述
基于上述应用和系统的模型,软硬件划分可以简化为应用在不同处理单元上的映射和调度问题。具体的是在满足系统约束和应用本身约束的前提下,问题的目标是得到调度长度最短的调度方案,该方案包括每个任务开始执行时间、结束执行时间、重构时间以及任务最终映射到哪个处理单元。
3.固有约束
应用在可重构系统上执行需要满足以下约束:
1)映射到CPU上或同一个可重构区域上的任务需要串行执行;
2)映射到可重构区域上的任务需要先重配置可重构区域的功能后执行;
3)一次只能对一个可重构区域进行配置;
4)处理器单元所提供的资源可以满足任务执行对资源的需求。
4.MILP模型
本发明基于上述的定义、问题描述以及固有约束等,将软硬件划分问题建模为MILP模型;
4.1变量
PRi∈PR我们引入二进制变量mvi来表示任务v是否映射到可重构区域i上。当mvi=1表明任务v映射到可重构区域i上,反之任务映射到CPU或者其他可重构区域上。∑mvi=0时任务v映射到CPU上执行,为了书写方便我们使用hv来代替∑mvi;
使用辅助变量zab来约束任务映射到CPU上的执行顺序。对于a,b∈V,a≠b,当任务a和任务b均调度到CPU上执行时,zab=0表示任务a在任务b之前执行,反之表示任务b在任务a之前执行;
同样地引入辅助变量xab来约束任务在重构区域上的执行顺序。如果任务a、b最终均被分配到同一个重构区域上执行,时xab=0表示在同一个可重构区域内的任务b在任务a执行结束后开始重构。反之,表示任务a在任务b执行结束之后开始重构;
整型变量sl表示应用的总执行时间(调度长度);
4.2约束方程
本发明所述问题的目标是保证应用在可重构系统上执行的实时性,所以目标函数可以表示为min s l。对应的约束方程可以表示为:
即应用的调度长度为最后一个任务的执行结束时间;
每个任务最多只能映射到一个可重构区域单元上执行,该约束可以建模为:
对于映射到CPU上执行的多个任务,由于目标系统只集成了一个CPU所以任务要串行执行。为遵循该约束任务需要满足以下不等式:
当任务a、b均在CPU上执行时,有ha=0,hb=0;此时,若zab=0,方程(3)可写为sa+csa≤sb;(4)可写为sb+csb≤sa+M。当M取足够大的值时,在本专利中M取值为应用在软件上执行的总长度,方程(3)保证任务a在任务b之前执行,方程(4)亦能成立。当zab=1时,同样可以对任务的执行进行约束;
当同一条边上的源任务和目的任务在不同的处理单元上执行时,辅助变量de=1。同时目的任务要在依赖数据到达之后开始执行。上述约束可以表示为:
方程(5)和(6)共同保证了当ha≠hb时de=1。方程(7)表示边上任务的数据依赖关系,当de=1时方程(7)可改写为enda+W(e)≤sb,表示源任务和目的任务在不同的处理单元上时,目的任务在依赖数据到达后开始执行。当de=0时,(7)可表示为enda≤sb。源任务和目的任务在同一种运算单元上,任务间通信可通过本地共享内存完成,通信时间可以忽略不计;
任何映射到FPGA硬件可重构区域上执行的任务,需要根据需求对特定的区域对硬件单元进行功能配置后才可以开始执行。上述约束可以表示如下:
分配到FPGA同一个可重构区域上执行的任务,任务之间需要串行执行。为实现上述约束,映射到FPGA上执行的任务需要满足以下关系式:
当ha=hb=1,xab=0时,方程(9)可写为sa+cha≤rb;方程(10)可写为sb+chb≤ra+M。M取足够大的值时,在本专利中M取值为应用在软件上执行的总长度,(9)确保了任务b在任务a执行结束后开始重构,约束方程(10)亦能成立;
本发明涉及的目标系统一次只能使用一个可重构配置接口,因此FPGA每一次只能下载一个可重构配置文件,任务的重构不能并行执行。具体的约束可以表示如下:
当mai=mbj=1,xab=0时,方程(11)可改写为ra+RTi≤rb,(12)可表示为rb+RTj≤ra+M。
方程(11)保证了任务b在任务a重构完成之后开始重构。当yab=1时,同样能避免不同动态部分可重构区域上任务间的重构冲突;
应用的硬件资源消耗量不能大于系统所能提供的资源量,因此任务的执行需要满足以下约束:
本发明的有益效果:
本发明提出了一种动态部分可重构系统的软硬件划分与调度的方法,首先对应用和系统进行建模并将软硬件划分问题归结为混合线性规划模型。利用运筹学求解工具对模型进行求解,并输出应用的部署方案包括任务开始执行时间、结束时间以及映射到重构区域上任务的重构时间和任务到处理器的映射。与现有的软硬件划分算法相比,本发明所提出的MILP规避了随机优化算法容易陷入局部最优的风险,此外考虑了资源的约束使得算法的求解结果与实际应用更加贴切。
附图说明
图1为目标系统框图,
图2为应用的DAG图,
图3为调度结果图。
具体实施方式
一种动态部分可重构片上系统软硬件划分与调度的最优化方法方法,对动态部分可重构片上系统中的平台和应用模型进行建模,描述了应用在该类平台上执行的约束,
所述对动态部分可重构片上系统中的软硬件划分与调度问题进行建模,具体包括下述步骤:
步骤1.系统与应用模型
本发明的目标平台是集成了微处理器和具有动态部分可重构特性的FPGA。FPGA可编程门阵列可以划分成一个静态的区域和一系列动态部分可重构区域,本发明将动态部分可重构区域表示为集合PR={PR1,PR2,...PR|PR|}。每个可重构区域由多种硬件资源构成如CLB、DSP、BRAM等,不同类型的资源可以表示为H={h1,h2,...h|H|}。对于每一种资源h∈H,为区域PRk∈PR的该类资源数;而TNh为整块FPGA上h资源的总数。每个可重构区域PRi∈PR的重构时延为RTi,且其中为定义区域PRi所需要的配置文件大小,Bcfg为可重构配置端口的带宽。通过共享内存技术,各重构区域间的通信延时视为0。
我们将应用建模为有向无环图(DAG),DAG可表示为G=(V,E),其中V是一个有限的集合表示应用的任务节点;E为边的集合,描述应用中任务间的数据依赖关系。每个任务节点v∈V,有两个整数型属性值cs(v)、ch(v),分别表示任务在CPU和FPGA上执行需要消耗的时间。为了建模任务的硬件资源消耗,我们引入变量描述任务v在FPGA上执行所需要消耗h资源的数目。当区域的资源类型和数目满足任务v的要求时任务才能映射到该区域。对于每条边e∈E,使用src(e)表示边e上的源任务,dst(e)表示目的任务,每条边有一个属性we表示源任务到目的任务的通信开销。每个应用都有一个终止节点(没有子节点),在本发明中我们使用Vexit来表示;
步骤2.软硬件划分与调度问题描述
基于上述应用和系统的模型,软硬件划分可以简化为应用在不同处理单元上的映射和调度问题。具体的是在满足系统约束和应用本身约束的前提下,问题的目标是得到调度长度最短的调度方案,该方案包括每个任务开始执行时间、结束执行时间、重构时间以及任务最终映射到哪个处理单元;
步骤3.问题建模
本发明基于上述的定义、问题描述以及固有约束等,将软硬件划分问题建模为MILP模型;
3.1变量
PRi∈PR我们引入二进制变量mvi来表示任务v是否映射到可重构区域i上。当mvi=1表明任务v映射到可重构区域i上,反之任务映射到CPU或者其他可重构区域上。∑mvi=0时任务v映射到CPU上执行,为了书写方便我们使用hv来代替∑mvi;
使用辅助变量zab来约束任务映射到CPU上的执行顺序。对于a,b∈V,a≠b,当任务a和任务b均调度到CPU上执行时,zab=0表示任务a在任务b之前执行,反之表示任务b在任务a之前执行;
同样地引入辅助变量xab来约束任务在重构区域上的执行顺序。如果任务a、b最终均被分配到同一个重构区域上执行,时xab=0表示在同一个可重构区域内的任务b在任务a执行结束后开始重构。反之,表示任务a在任务b执行结束之后开始重构;
整型变量sl表示应用的总执行时间(调度长度);
3.2约束方程
本发明所述问题的目标是保证应用在可重构系统上执行的实时性,所以目标函数可以表示为min sl。对应的约束方程可以表示为:
即应用的调度长度为最后一个任务的执行结束时间。
每个任务最多只能映射到一个可重构区域单元上执行,该约束可以建模为:
对于映射到CPU上执行的多个任务,由于目标系统只集成了一个CPU所以任务要串行执行。为遵循该约束任务需要满足以下不等式:
当任务a、b均在CPU上执行时,有ha=0,hb=0;此时,若zab=0,方程(3)可写为sa+csa≤sb;(4)可写为sb+csb≤sa+M。当M取足够大的值时,方程(3)保证任务a在任务b之前执行,方程(4)亦能成立。当zab=1时,同样可以对任务的执行进行约束;
当同一条边上的源任务和目的任务在不同的处理单元上执行时,辅助变量de=1。同时目的任务要在依赖数据到达之后开始执行。上述约束可以表示为:
方程(5)和(6)共同保证了当ha≠hb时de=1。方程(7)表示边上任务的数据依赖关系,当de=1时方程(7)可改写为enda+W(e)≤sb,表示源任务和目的任务在不同的处理单元上时,目的任务在依赖数据到达后开始执行。当de=0时,(7)可表示为enda≤sb。源任务和目的任务在同一种运算单元上,任务间通信可通过本地共享内存完成,通信时间可以忽略不计;
任何映射到FPGA硬件可重构区域上执行的任务,都需要根据需求对特定的区域对硬件单元进行功能配置后才可以开始执行。上述约束可以表示如下:
分配到FPGA同一个可重构区域上执行的任务,任务之间需要串行执行。为实现上述约束,映射到FPGA上执行的任务需要满足以下关系式:
当ha=hb=1,xab=0时,方程(9)可写为sa+cha≤rb;方程(10)可写为sb+chb≤ra+M。M取足够大的值时,(9)确保了任务b在任务a执行结束后开始重构,约束方程(10)亦能成立。
本发明涉及的目标系统一次只能使用一个可重构配置接口,因此FPGA每一次只能下载一个可重构配置文件,任务的重构不能并行执行。具体的约束可以表示如下:
当mai=mbj=1,xab=0时,方程(11)可改写为ra+RTi≤rb,(12)可表示为rb+RTj≤ra+M。M取足够大的值时,方程(11)保证了任务b在任务a重构完成之后开始重构。当yab=1时,同样能避免不同动态部分可重构区域上任务间的重构冲突。
应用的硬件资源消耗量不能大于系统所能提供的资源量,因此任务的执行需要满足以下约束:
所述步骤3中应用在可重构系统上执行需要满足以下约束:
1)映射到CPU上或同一个可重构区域上的任务需要串行执行;
2)映射到可重构区域上的任务需要先重配置可重构区域的功能后执行;
3)一次只能对一个可重构区域进行配置;
4)处理器单元所提供的资源可以满足任务执行对资源的需求。
所述步骤3中,方法所得的求解方案不仅包括应用的调度方案即:任务在处理器单元上的映射、开始执行时间、结束执行时间以及重构时间,还包括硬件可重构区域的划分策略。
Claims (3)
1.一种动态部分可重构片上系统软硬件划分与调度的最优化方法,对动态部分可重构片上系统中的平台和应用模型进行建模,描述应用在该类平台上执行的约束,其特征在于,所述建模具体步骤如下:
(1)系统与应用建模
将动态部分可重构区域表示为集合PR={PR1,PR2,...PR|PR|},每个可重构区域由多种硬件资源构成,不同类型的资源表示为H={h1,h2,...h|H|},对于每一种资源h∈H,为区域PRk∈PR的该类资源数;而TNh为整块FPGA上h资源的总数,每个可重构区域PRi∈PR的重构时延为RTi,且其中为定义区域PRi所需要的配置文件大小,Bcfg为可重构配置端口的带宽,通过共享内存,各重构区域间的通信延时视为0;
将应用建模为有向无环图DAG,DAG表示为G=(V,E),其中V是一个有限的集合表示应用的任务节点;E为边的集合,描述应用中任务间的数据依赖关系,每个任务节点v∈V,有两个整数型属性值cs(v)、ch(v),分别表示任务在CPU和FPGA上执行需要消耗的时间,变量描述任务v在FPGA上执行所需要消耗h资源的数目,当区域的资源类型和数目满足任务v的要求时任务才能映射到该区域,对于每条边e∈E,使用src(e)表示边e上的源任务,dst(e)表示目的任务,每条边有一个属性we表示源任务到目的任务的通信开销,每个应用都有一个终止节点,用Vexit来表示;
(2)软硬件划分与调度问题描述
在满足系统约束和应用本身约束的前提下,问题的目标是得到调度长度最短的调度方案,该方案包括每个任务开始执行时间、结束执行时间、重构时间以及任务最终映射到哪个处理单元;
(3)MILP模型
将软硬件划分问题建立基于混合整数线性规划MILP模型。
2.根据权利要求1所述的一种动态部分可重构片上系统软硬件划分与调度的最优化方法,其特征在于,所述基于混合整数线性规划MILP模型具体包括:
(3.1)变量
PRi∈PR,引入二进制变量mvi来表示任务v是否映射到可重构区域i上,当mvi=1表明任务v映射到可重构区域i上,反之任务映射到CPU或者其他可重构区域上,∑mvi=0时任务v映射到CPU上执行,用hv来代替∑mvi;
使用辅助变量zab来约束任务映射到CPU上的执行顺序,对于a,b∈V,a≠b,当任务a和任务b均调度到CPU上执行时,zab=0表示任务a在任务b之前执行,反之表示任务b在任务a之前执行;
引入辅助变量xab来约束任务在重构区域上的执行顺序,如果任务a、b最终均被分配到同一个重构区域上执行,xab=0表示在同一个可重构区域内的任务b在任务a执行结束后开始重构,反之,表示任务a在任务b执行结束之后开始重构;
整型变量sl表示应用的总执行时间即调度长度;
(3.2)约束方程
目标函数表示为minsl,对应的约束方程表示为:
即应用的调度长度为最后一个任务的执行结束时间,
每个任务最多只能映射到一个可重构区域单元上执行,该约束建模为:
对于映射到CPU上执行的多个任务,由于目标系统只集成了一个CPU,因此任务要串行执行,为遵循该约束任务需要满足以下不等式:
当任务a、b均在CPU上执行时,有ha=0,hb=0;此时,若zab=0,方程(3)写为sa+csa≤sb;方程(4)写为sb+csb≤sa+M1;当M1取足够大的值时,方程(3)保证任务a在任务b之前执行,方程(4)亦能成立;当zab=1时,对任务的执行进行约束;
当同一条边上的源任务和目的任务在不同的处理单元上执行时,辅助变量de=1,同时目的任务要在依赖数据到达之后开始执行,上述约束表示为:
方程(5)和(6)保证了当ha≠hb时de=1,方程(7)表示边上任务的数据依赖关系,当de=1时方程(7)改写为enda+W(e)≤sb,表示源任务和目的任务在不同的处理单元上时,目的任务在依赖数据到达后开始执行,当de=0时,方程(7)表示为enda≤sb,源任务和目的任务在同一种运算单元上,任务间通信通过本地共享内存完成,通信时间忽略不计;
任何映射到FPGA硬件可重构区域上执行的任务,需要根据需求对特定的区域对硬件单元进行功能配置后才开始执行,上述约束表示如下:
分配到FPGA同一个可重构区域上执行的任务,任务之间需要串行执行,为实现上述约束,映射到FPGA上执行的任务需要满足以下关系式:
当ha=hb=1,xab=0时,方程(9)写为sa+cha≤rb;方程(10)写为sb+chb≤ra+M;M3取足够大的值时,(9)确保了任务b在任务a执行结束后开始重构,约束方程(10)亦能成立。
3.根据权利要求1所述的一种动态部分可重构片上系统软硬件划分与调度的最优化方法,其特征在于,应用在可重构系统上执行需要满足以下约束:
1)映射到CPU上或同一个可重构区域上的任务需要串行执行;
2)映射到可重构区域上的任务需要先重配置可重构区域的功能后执行;
3)一次只能对一个可重构区域进行配置;
4)处理器单元所提供的资源满足任务执行对资源的需求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911164141.6A CN111045803A (zh) | 2019-11-25 | 2019-11-25 | 一种动态部分可重构片上系统软硬件划分与调度的最优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911164141.6A CN111045803A (zh) | 2019-11-25 | 2019-11-25 | 一种动态部分可重构片上系统软硬件划分与调度的最优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111045803A true CN111045803A (zh) | 2020-04-21 |
Family
ID=70233877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911164141.6A Pending CN111045803A (zh) | 2019-11-25 | 2019-11-25 | 一种动态部分可重构片上系统软硬件划分与调度的最优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111045803A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930680A (zh) * | 2020-09-17 | 2020-11-13 | 北京清微智能科技有限公司 | 一种可重构阵列映射方法和装置 |
CN114647504A (zh) * | 2020-12-21 | 2022-06-21 | 南京航空航天大学 | 一种面向动态部分可重构系统任务布局的快速搜索方法 |
CN116670649A (zh) * | 2021-01-28 | 2023-08-29 | 埃尔构人工智能有限责任公司 | 用于设计具有优化的系统延时的机器人系统架构的方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656872A (zh) * | 2018-12-24 | 2019-04-19 | 中国人民解放军国防科技大学 | 一种动态部分可重构片上系统软硬件划分方法 |
-
2019
- 2019-11-25 CN CN201911164141.6A patent/CN111045803A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656872A (zh) * | 2018-12-24 | 2019-04-19 | 中国人民解放军国防科技大学 | 一种动态部分可重构片上系统软硬件划分方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930680A (zh) * | 2020-09-17 | 2020-11-13 | 北京清微智能科技有限公司 | 一种可重构阵列映射方法和装置 |
CN111930680B (zh) * | 2020-09-17 | 2021-02-23 | 北京清微智能科技有限公司 | 一种可重构阵列映射方法和装置 |
CN114647504A (zh) * | 2020-12-21 | 2022-06-21 | 南京航空航天大学 | 一种面向动态部分可重构系统任务布局的快速搜索方法 |
CN114647504B (zh) * | 2020-12-21 | 2024-05-17 | 南京航空航天大学 | 一种面向动态部分可重构系统任务布局的快速搜索方法 |
CN116670649A (zh) * | 2021-01-28 | 2023-08-29 | 埃尔构人工智能有限责任公司 | 用于设计具有优化的系统延时的机器人系统架构的方法和系统 |
CN116670649B (zh) * | 2021-01-28 | 2024-05-31 | 埃尔构人工智能有限责任公司 | 用于设计具有优化的系统延时的机器人系统架构的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Karloff et al. | A model of computation for MapReduce | |
Hannig et al. | Invasive tightly-coupled processor arrays: A domain-specific architecture/compiler co-design approach | |
CN109656872B (zh) | 一种动态部分可重构片上系统软硬件划分方法 | |
CN104536937B (zh) | 基于cpu‑gpu异构集群的大数据一体机实现方法 | |
CN111045803A (zh) | 一种动态部分可重构片上系统软硬件划分与调度的最优化方法 | |
CN111274016B (zh) | 基于模块融合的动态部分可重构系统应用划分与调度方法 | |
Amiri et al. | FPGA-based soft-core processors for image processing applications | |
Ouyang et al. | Hardware/software partitioning for heterogenous mpsoc considering communication overhead | |
Kao | Performance-oriented partitioning for task scheduling of parallel reconfigurable architectures | |
Fell et al. | Force-directed scheduling for data flow graph mapping on coarse-grained reconfigurable architectures | |
Ma et al. | HW/SW partitioning for region-based dynamic partial reconfigurable FPGAs | |
CN111090613B (zh) | 一种基于图分割的低复杂度软硬件划分与调度方法 | |
Pei et al. | Evaluation of programming models to address load imbalance on distributed multi-core CPUs: A case study with block low-rank factorization | |
Yuan et al. | Hardware/software partitioning and pipelined scheduling on runtime reconfigurable FPGAs | |
Qu et al. | A parallel configuration model for reducing the run-time reconfiguration overhead | |
Tariq et al. | Energy-efficient scheduling of streaming applications in VFI-NoC-HMPSoC based edge devices | |
Moustafa et al. | 3D cartesian transport sweep for massively parallel architectures with PARSEC | |
Dhar et al. | Leveraging dynamic partial reconfiguration with scalable ILP based task scheduling | |
Szymanek et al. | Design space exploration in system level synthesis under memory constraints | |
Calore et al. | Optimizing communications in multi-GPU Lattice Boltzmann simulations | |
Bouakaz et al. | Symbolic buffer sizing for throughput-optimal scheduling of dataflow graphs | |
Soldavini et al. | Platform-Aware FPGA System Architecture Generation based on MLIR | |
US20190042941A1 (en) | Reconfigurable fabric operation linkage | |
Middendorf et al. | Dynamic task mapping onto multi-core architectures through stream rewriting | |
Renaud et al. | SCAPE: HW-Aware Clustering of Dataflow Actors for Tunable Scheduling Complexity |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200421 |
|
WD01 | Invention patent application deemed withdrawn after publication |