[发明专利]一种动态部分可重构片上系统软硬件划分方法有效
申请号: | 201811584060.7 | 申请日: | 2018-12-24 |
公开(公告)号: | CN109656872B | 公开(公告)日: | 2022-11-15 |
发明(设计)人: | 唐麒;魏急波;朱丽花;周力;辜方林;王杉;熊俊 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F15/78 | 分类号: | G06F15/78 |
代理公司: | 湖南省国防科技工业局专利中心 43102 | 代理人: | 冯青 |
地址: | 410073 *** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种针对动态部分可重构片上系统的高效软硬件划分方法,能够解决软硬件划分问题中的任务映射、任务排序、任务调度、任务重构排序、任务间通信等问题。所采用的方法将软硬件划分问题描述为精炼的数学模型,从而可以采用求解器以更少的时间复杂度获得最优解。同时,本申请所公开的方法将FPGA动态部分可重构区域所分配的所有任务的重构时间纳入考虑之中,提高了结果与实际应用的符合度,具有更高的应用价值。 | ||
搜索关键词: | 一种 动态 部分 可重构片上 系统 软硬件 划分 方法 | ||
【主权项】:
1.一种动态部分可重构片上系统软硬件划分方法,对动态部分可重构片上系统中的硬件模型、应用模型进行建模,明确了这类系统中部署应用时所存在的各类约束,其特征在于,对所述动态部分可重构片上系统中的硬件模型、应用模型进行建模,具体包括下述步骤:步骤1.平台与应用模型定义1:FPGA由一组动态部分可重构区域组成,表示为R={PR0,PR2,...PRm‑1},PRi表示第i个可重构区域,PRi具有重构开销属性RTi,重构开销与区域的面积大小成正比;定义2:将应用建模为有向无环图DAG,一个DAG表示为G=(V,E),其中V表示任务节点的集合,E表示边的集合,同一条边上的两个任务具有数据依赖关系,假定应用有|V|个任务,|E|条边,FPGA上划分m个动态部分可重构区域.每个任务节点v∈V,有两个属性值cs(v)、ch(v),分别表示任务在CPU和FPGA上执行需要消耗的时间,对于每条边e∈E,使用src(e)表示边e上的源任务,dst(e)表示目的任务,每条边有一个属性W表示源任务到目的任务的通信开销;定义3:应用预先分成任务簇,表示为C={TC0,TC2...TCm‑1},TCi为第i个簇,每个簇内包含若干个任务,
定义4:应用任务簇被预分配到各个FPGA动态部分可重构区域上,TCi中的任务被预分配到PRi,任务簇预分配表示TCi中的各任务可以被分配到CPU或者PRi中运行,但不能分配到其它可重构区域中运行;定义5:任务开始执行时间表示为sv,任务结束时间endv=sv+exv,exv表示任务执行消耗的时间,
k∈PRi,任务开始重构时间表示为rk,任务重构结束时间endrv=rv+RTi,P表示任务最终分配到CPU上的集合;步骤2.系统约束本发明的场景是一个集成了单核CPU和一块FPGA的异构SoC系统,系统中的FPGA具有动态部分可重构特性,FPGA可编程逻辑门阵列划分为若干个部分可重构区域,各可重构区域可根据实际需要下载不同的配置文件实现功能重构,FPGA可重构区域的大小及位置根据实际需要设定;步骤3.问题建模将问题建模为混合整数线性规划模型,模型中所使用的变量及约束方程如下;3.1变量定义(1)整数型变量:sa:a∈V,任务a开始执行时间;sb:b∈V,任务b开始执行时间;ra:a∈V,任务a重构开始时间;SL:应用的总执行时间即调度长度;(2)二进制变量:zab:a,b∈V,a≠b,当任务a和任务b均调度到CPU上执行时,zab=0表示任务a在任务b之前执行,反之表示任务b在任务a之前执行;ha:a∈V,ha=1表示任务a被调度到FPGA上执行,ha=0表示任务a被分配到CPU上执行;hb:b∈V,hb=1表示任务b被调度到FPGA上执行,hb=0表示任务b被分配到CPU上执行;de:e∈E,de=1表示边e上的源任务和目的任务分别在CPU和FPGA上执行,de=0表示两个任务在同一种处理单元上执行;xab:如果任务a、b均被分配到同一个重构区域上执行时,xab=0表示最终分配到同一个可重构区域内的任务b在任务a执行结束后开始重构,反之,表示任务a在任务b执行结束之后开始重构;yab:如果任务a和任务b被分配到FPGA不同的可重构区域上执行时,yab=0表示任务a在任务b之前重构,反之表示任务b在任务a之前重构;3.2目标和约束方程目标是获取保证应用调度长度最短的调度方案,所以目标函数表示为minSL,对应的约束方程表示为:
任务的调度长度不小于最后一个任务的完成时间;对于映射到CPU上执行的多个任务,由于只有一个CPU所以任务要串行执行,具体的软件资源冲突约束方程表示如下:
其中M1为常量正整数,确保方程E21、E22总成立,当任务a、b均在CPU上执行时,有ha=0,hb=0;此时,若zab=0,方程E21写为sa+csa≤sb;E22写为sb+csb≤sa+M1;当M1取足够大的值时,方程E21保证任务a在任务b之前执行,方程E22亦能成立;当zab=1时,同理推导;当边上的源任务和目的任务在不同的处理单元上执行时,辅助变量de=1,同时目的任务要在依赖数据到达之后开始执行,上述约束表示为:
方程E31和E32共同保证了当hsrc(e)≠hdst(e)时de=1;方程E33表示边上任务的数据依赖关系;当de=1时方程E33改写为enda+W(e)≤sb,表示源任务和目的任务在不同的处理单元上时,目的任务在依赖数据到达后开始执行;当de=0时,E33表示为enda≤sb,源任务和目的任务在同一种运算单元上,任务间通信通过本地共享内存完成,通信时间忽略不计;任何映射到FPGA硬件可重构区域上执行的任务,都需要下载配置文件到特定的区域对硬件单元进行功能配置后才开始执行,上述约束表示如下:
其中M2为常量正整数,确保方程E4总成立,分配到FPGA同一个可重构区域上执行的任务,任务之间需要串行执行,对FPGA上执行的任务约束表示如下:
其中M3为常量正整数,确保方程E51、E52总成立,当ha=hb=1,xab=0时,方程E51演变为sa+cha≤rb;方程E52演变为sb+chb≤ra+M3,M3取足够大的值时,E51确保了任务b在任务a执行结束后开始重构,E52亦能成立;目标系统一次只能使用一个可重构配置接口,因此FPGA每一次只能下载一个可重构配置文件,任务的重构不能并行执行,具体的约束表示如下:
其中M4为常量正整数,确保方程E61、E62总成立,当ha=hb=1,yab=0时,方程E61改写为ra+RTi≤rb,E62写为rb+RTj≤ra+M4;M4取足够大的值时,E61保证了任务b在任务a重构完成之后开始重构;当yab=1时,同样能避免不同动态部分可重构区域上任务间的重构冲突。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201811584060.7/,转载请声明来源钻瓜专利网。