一种可重构任务的流水优化方法技术

技术编号:17541382 阅读:46 留言:0更新日期:2018-03-24 18:09
本发明专利技术公开了一种可重构任务的流水优化方法,包括如下步骤:第一步,切分应用程序;第二步,建立FPGA配置文件:第三步,流水配置和执行应用程序。本发明专利技术将应用程序按照数据流的方向进行切分,构建出FPGA配置文件,根据每个程序块的运行执行和配置时间动态流水化进行配置。本方法实现了应用程序在FPGA平台上进行重构和配置时的流水化,从而提供了应用程序执行的效率和重构的灵活性。

A pipelining optimization method for reconfigurable tasks

The invention discloses a pipelining optimization method for reconfigurable tasks, including the following steps: the first step is to cut the application program; the second step is to set up the FPGA configuration file: the third step is to configure and execute the application flow. The invention cuts the application program according to the direction of the data flow, and constructs the FPGA configuration file, which is configured according to the execution execution of each block and the dynamic pipelining of configuration time. This method realizes the pipelining of the application on the FPGA platform for reconfiguration and configuration, thus providing the efficiency of the application execution and the flexibility of the reconfiguration.

【技术实现步骤摘要】
一种可重构任务的流水优化方法
本专利技术涉及可重构
,特别是涉及一种可重构任务的流水优化方法。
技术介绍
可重构计算被视为能够将传统处理器的高度灵活性与ASIC(ApplicationSpecificIntegratedCircuit)所具有的高处理效率进行结合的有效解决方案。由于可重构体系结构具有较好的适应性,针对不同应用能够通过不同粒度的并行来加快处理速度。在可重构设备中,FPGA(Field-ProgrammableGateArray)是最广泛使用的可重构器件。动态可重配置的FPGA是实现硬件级别多任务的重要基础。此类FPGA的处理区域通常划分成不同的子块。这些子块分属于不同的硬件任务。当新的硬件任务达到时,需要为该硬件任务分配一个空闲的子块,同时其他的既存硬件任务不能受到影响。如果一个硬件任务执行完成,那么该任务所占据的子块应当被释放,并作为候选子块以备其他硬件任务的使用。在重分配期间,没有任何的其他硬件任务会受到影响,多个硬件任务可以共享整个处理区域。可重构系统中由重配置引起的GPC或RPU停止工作而造成的延时称为配置延时,配置延时是纯粹的性能开销。为了确保重配置的开销不会抵消硬件加速所获得的性能收益,之前的研究提出了很多种从设备层到应用层的不同方法来减少或者隐藏重配置延时,包括:配置缓存、配置预取、重定位和碎片整理以及配置压缩。因为大量的配置延时都是由于主处理器和可重构硬件的距离、以及从主存甚至文件读取配置数据所引起的,所以配置缓存可能降低配置开销。通过在靠近可重构硬件的快速存储器上保存配置数据,能够加快重配置数据的传输,从而减少重配置开销。现有技术中的一些研究中对片上缓存进行划分,将其中的一部分用作配置数据的缓存。专用的配置缓存还可以进一步就近布置,配置数据通过高带宽的并行下载直接输出到可重构硬件,能够进一步减少配置延时。MC-FPGA中的多上下文存储也可以视为配置缓存,MC-FPGA的配置缓存更是直接输出到可编程逻辑。其它一些研究关注于配置缓存策略与算法,包括针对单上下文FPGA、MC-FPGA和PRTRFPGA分别提出的几种配置缓存算法。对于单上下文FPGA,采用了模拟退火算法和基于硬件核关联性的分组算法,尽可能将相邻执行的硬件核聚集在同一个组内,减少重构次数;MC-FPGA可视作多个单上下文FPGA,因此可采用与单上下文FPGA相同的分组算法以减少上下文切换,但是对于MC-FPGA还存在上下文替换的问题,分别采用Belady算法和LRU算法作为静态和动态的替换算法;对于PRTRFPGA,仍采用模拟退火算法和一种改进的模拟退火算法来减少重构次数,另外,还提出了离线的LowerBound最小部分替换和全局最小重构代价替换算法,以及运行时的LRU、考虑大小和频率的处罚导向的替换算法。还有研究提出了基于历史和基于处罚的替换算法,基于历史的算法根据过去的硬件核调用情况,预测选择未来最远的硬件核进行替换;而基于处罚的算法则赋予被调用的硬件核一个大常量作为代价值,而其他的硬件核代价则减去总体器件大小和硬件核大小的差,需要时选择最小代价的硬件核进行替换。另外,基于分页的局部动态重构FPGA模型,利用先验算法(PriorAlgorithm)发掘硬件核间的关联规则,按页大小对硬件核进行分组,减少页替换次数;还有同样通过分析不同应用间的相似性,在映射时将应用的硬件核分为与重构区域相同大小的分组,并将需要重配置的硬件核映射到相同的组中,来减少不同应用间切换时所需要重配置的面积,从而最小化重配置延时。为了避免替换策略错误替换而增加额外的重构开销,一些研究还提出了配置锁定(ConfigurationLocking)方法,确保关键硬件核的配置不被替换。一些粗粒度的可重构结构也采用了配置缓存技术来降低配置代价。当重构是必需的时候,可以进行配置预取,使重配置过程与GPC的有效计算重叠,避免或减少GPC停顿,从而隐藏或减少重配置开销。针对单上下文FPGA提出的一种编译时的静态方法,在每个可重构功能单元的“所有区域”前插入预取指令,“所有区域”指程序控制流图中向后(Backward)距离可重构功能单元操作最近的软件指令区域。将方法扩展到支持重定位和碎片整理的PRTRFPGA上,根据控制流图中其他节点到可重构功能节点的跳转概率,插入执行概率最高的几个可重构功能单元的预取指令,并增加了终止指令以消除未完成的错误预取;还有基于加权跳转概率的马尔科夫动态预取算法,突出新近执行历史的权重,以及一种混合预取方法,综合动态和静态预取,当动态预取和静态预取的结果冲突时,如果静态预取的可重构功能单元的标识位为1则采纳静态预取结果,并将标志位置0,直到该功能单元被执行,否则采纳动态预取结果,这种混合方法能够结合动态预取在循环内、静态预取在循环间的预测准确性。另一种启发式的混合预取方法,在设计阶段完成关键路径上子任务的识别,计算生成所有子任务的启发式预取调度序列;而在运行时只需要根据可用资源和当前配置情况,发起或取消配置的预取。最近一些研究采用数学规划方法,在调度中考虑任务配置的预取,如采用约束规划(ConstraintProgramming)静态生成最优的预取调度,或采用整数线性规划生成预取调度。
技术实现思路
本专利技术的目的在于提供一种可重构任务的流水优化方法。本专利技术解决其技术问题采用的技术方案如下:一种可重构任务的流水优化方法,包括如下步骤:第一步,切分应用程序:按照应用程序的指令执行方向来进行应用程序的切分,并将切分好的应用程序从软件转换为应用程序的流文件;第二步,建立FPGA配置文件:建立FPGA配置文件,所述FPGA配置文件包括了:1)程序块的执行顺序;2)每个程序块的最大配置时间;3)每个程序块的最大执行时间;根据实际情况,还可在FPGA配置文件中设置其他配置信息;第三步,流水配置和执行应用程序:将所述FPGA配置文件和应用程序的流文件下载到FPGA板上,由FPGA板上的配置器根据所述FPGA配置文件流水配置和执行应用程序。进一步地,所述第一步中,应用程序切分后的程序块分为基本块和组合块;其中,将指令执行过程中出现的数据依赖点作为应用程序切分点,所述数据依赖点是指应用程序中产生了程序依赖的位置,则相邻两个所述应用程序切分点之间构成所述基本块,两个或者两个以上所述基本块进行组合构成所述组合块;进行组合时,一个基本块出现且仅出现在一个组合块中,并且组合块中的基本块必须按照顺序组合为组合块。进一步地,所述第二步中,程序块的执行顺序的确定方式如下:1)如果只有基本块,执行顺序就是基本块的执行顺序;2)如果只有组合块,执行顺序就是组合块的执行顺序;组合块的执行顺序由构成组合块的基本块的执行顺序确定;3)如果既有基本块也有组合块,则程序块的执行顺序是根据基本块的执行顺序所确认的基本块执行顺序和组合块执行顺序构成。进一步地,所述第三步中,执行方式为:1)读取所述FPGA配置文件中的程序块执行顺序,确定应用程序中程序块的配置顺序;2)读取所述FPGA配置文件中所述每个程序块的最大配置时间和最大执行时间,计算每个程序块的配置时间点,其中第i个程序块BBi的最大配置时间用WCCT(BBi)表示,最大执行时间用WCET(BBi)表示,则:本文档来自技高网
...
一种可重构任务的流水优化方法

【技术保护点】
一种可重构任务的流水优化方法,其特征在于:包括如下步骤:第一步,切分应用程序:按照应用程序的指令执行方向来进行应用程序的切分,并将切分好的应用程序从软件转换为应用程序的流文件;第二步,建立FPGA配置文件:建立FPGA配置文件,所述FPGA配置文件包括了:1)程序块的执行顺序;2)每个程序块的最大配置时间;3)每个程序块的最大执行时间;第三步,流水配置和执行应用程序:将所述FPGA配置文件和应用程序的流文件下载到FPGA板上,由FPGA板上的配置器根据所述FPGA配置文件流水配置和执行应用程序。

【技术特征摘要】
1.一种可重构任务的流水优化方法,其特征在于:包括如下步骤:第一步,切分应用程序:按照应用程序的指令执行方向来进行应用程序的切分,并将切分好的应用程序从软件转换为应用程序的流文件;第二步,建立FPGA配置文件:建立FPGA配置文件,所述FPGA配置文件包括了:1)程序块的执行顺序;2)每个程序块的最大配置时间;3)每个程序块的最大执行时间;第三步,流水配置和执行应用程序:将所述FPGA配置文件和应用程序的流文件下载到FPGA板上,由FPGA板上的配置器根据所述FPGA配置文件流水配置和执行应用程序。2.根据权利要求1所述的一种可重构任务的流水优化方法,其特征在于:所述第一步中,应用程序切分后的程序块分为基本块和组合块;其中,将指令执行过程中出现的数据依赖点作为应用程序切分点,所述数据依赖点是指应用程序中产生了程序依赖的位置,则相邻两个所述应用程序切分点之间构成所述基本块,两个或者两个以上所述基本块进行组合构成所述组合块;进行组合时,一个基本块出现且仅出现在一个组合块中,并且组合块中的基本块必须按照顺序组合为组合块。3.根据权利要求1所述的一种可重构任务的流水优化方法,其特征在于:所述第二步中,程序块的执行顺序的确定方式如下:1)如果只有基...

【专利技术属性】
技术研发人员:胡威郭宏蒋旻吕向宇蔡熙隆张进涂文丽陈双李震号郭易
申请(专利权)人:武汉科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1