一种基于约束规划的自定义指令自动识别方法技术

技术编号:22307956 阅读:42 留言:0更新日期:2019-10-16 08:05
本发明专利技术提供一种基于约束规划的自定义指令自动识别方法,涉及电子设计自动化技术领域。该方法包括自定义指令的枚举和自定义指令的选择两部分;自定义指令的枚举通过建立自定义指令的枚举约束编程模型,从数据流图中枚举所有满足约束条件的子图实现;该过程分别对约束条件建模,并针对枚举问题,采用约束编程方法求所有满足约束条件的自定义指令,完成对自定义指令的枚举;自定义指令的选择通过建立自定义指令的选择约束编程模型,实现多目标优化;该过程通过建立自定义指令带来的处理器性能提升和能耗减少的最大化目标函数,采用基于权重的方法,将多目标优化问题转换为单目标优化问题实现。

An automatic recognition method of user defined instruction based on Constraint Programming

【技术实现步骤摘要】
一种基于约束规划的自定义指令自动识别方法
本专利技术涉及电子设计自动化
,尤其涉及一种基于约束规划的自定义指令自动识别方法。
技术介绍
近年来,为了满足嵌入式应用对高性能和低功耗不断增长的需求,扩展指令集广泛应用于嵌入式系统当中.例如,专用指令集处理器(ApplicationSpecificInstructionProcessor,ASIP)结合了通用处理器和ASIC的优点,在设计周期、灵活性、性能、以及功耗等方面提供良好的折中。扩展指令集中的自定义指令是通过封装一系列基本指令,实现基本指令之间的链化和并行化,进而提高性能。面向特定应用的扩展指令集是专用指令集处理器设计的核心环节。扩展指令集通常在多媒体应用处理和信号处理等领域中使用。为了使异构多处理器能够更好地运行不同的多媒体应用程序,Dammak等人将扩展指令集应用到异构多核处理器片上系统之中,使系统在性能和功耗之间进行了良好的权衡。Momcilovic等人将专用指令集处理器用来执行数据自适应运动估计算法,大大节省了数据计算成本,很好的提高了视频处理的速度。Sisto等人提出了一种专用于汽车应用领域传感器信号调理专用处理器设计。当前,图像处理领域发展迅速,图像处理的效果也正不断的提升。神经网络、支持向量机等学习型的机制虽然在图像处理方面有着较好的优势,但是针对于目前图像数据量庞大的特点,一些效果较好的优化算法却需要大量的时间去处理图像数据或者训练样本。此外,针对实时图像处理需要严格的时间限制。国内外最新研究发现,将扩展指令集应用于图像处理领域当中,能够显著地提升性能。Mori等人提出了用于加速实时IP/CV算法的专用处理器设计.Edwards等人通过应用扩展指令集到实时目标检测系统之中,处理速度提高了1.5至6.8倍。早期的研究中,是通过设计专用芯片来高效地实现应用程序,但是专用芯片的设计周期长、硬件开发难以调试,其成本也非常高。所以越来越多的研究人员也开始将研究重心转移到扩展指令上,针对特定应用自动地识别扩展指令集。自动识别扩展指令集的流程如图1所示,首先,图像处理算法源代码作为开源编译器GeCoS的输入,GeCoS将源代码转换为控制数据流图(ControlDataFlowGraph,CDFG),控制数据流图是表示多个基本块之间的数据依赖关系的图。然后,子图枚举算法从数据流图中枚举出所有满足约束条件的子图(子图是自定义指令的图形化表示)。接着,子图选择算法从枚举出的子图当中选择部分最佳子图作为最终的自定义指令。最后,将源代码转换为包含所选自定义指令的新代码。约束编程是一种结合逻辑推理的通用搜索技术,起源于计算机科学和人工智能领域的约束满足问题(ConstraintSatisfactionProblem,CSP)。约束满足问题是由给定的一组变量、这组变量的值域以及一组约束条件(方程、不等式以及程序等都可以作为约束条件)组合而成,对于约束满足问题的求解是在所有的组合中找出一种或几种满足约束条件的组合。通常,组合优化、调度优化问题都属于约束满足问题。应用约束编程解决问题时,其表述更加接近于实际问题,无需将约束转换为线性等式或者不等式,使公式表达简单并且易于理解。
技术实现思路
本专利技术要解决的技术问题是针对上述现有技术的不足,提供一种基于约束规划的自定义指令自动识别方法,基于约束编程方法对自定义指令进行自动识别。为解决上述技术问题,本专利技术所采取的技术方案是:一种基于约束规划的自定义指令自动识别方法,包括自定义指令的枚举和自定义指令的选择两部分;所述自定义指令的枚举通过建立自定义指令的枚举约束编程模型,从数据流图中枚举所有满足约束条件的子图实现,具体方法为:为了从数据流图G(V,E)中枚举出所有满足给定约束的自定义指令,设子图S=(Vs,Es)是自定义指令实例的图形化表示,I1,I2分别表示图G中的有效结点的集合和非法结点的集合,所述数据流图G=(V,E)是一个有向无环图(DirectedAcyclicGraph,即DAG),结点集V={v1,v2,...,vM}表示基本指令,M为数据流图结点的个数,边集表示指令之间数据依赖关系,m表示数据流图边的个数;所述给定的约束条件包括:自定义指令不包含非法结点的约束条件,自定义指令的连通性约束条件,自定义指令是凸的约束条件及自定义指令的输入输出约束条件;分别对约束条件建模,并针对枚举问题,采用约束编程方法求所有满足约束条件的自定义指令,完成对自定义指令的枚举;所述对自定义指令不包含非法结点的约束条件建模,如下公式所示:其中,vsel=0表示非法结点v不包含在自定义指令中;所述非法结点为:由于可扩展处理器体系结构的限制,内存操作和分支操作这两种基本指令不能包含在自定义指令中,代表这些基本指令的结点被视为非法结点;所述对自定义指令的连通性的约束条件建模,如下公式所示:其中,表示结点v和结点vk之间存在一条无向路径,当枚举分离子图时此约束可去除;所述自定义指令是凸的的约束条件为当且仅当子图s中的任意两个结点u,v之间的任何路径只经过子图s中的结点,对该约束条件建模,如下公式所示:其中,usel,vsel分别表示结点u和v是否被选择,0表示没有被选择,1表示被选择;所述自定义指令的输入输出约束条件如下公式所示:其中,INmax,OUTmax分别表示自定义指令的输入输出上限,INv,OUTv分别表示结点v的入度和出度,Pred(u)={v|v∈V,(v,u)∈E},Succ(u)={v|v∈V,(u,v)∈E}分别表示结点v的前驱结点集合和后续结点集合,vin、vout分别表示结点v的输入、输出数目,msel表示结点m是否被选择;所述自定义指令的选择通过建立自定义指令的选择约束编程模型,实现多目标优化,具体方法为:在自定义指令枚举阶段所枚举出的子图基础上,首先对所有子图进行图同构匹配处理:给定两个子图a和b,如果a与b同构,则创建模式Ci,并且将子图a和b作为实例被记录在模式Ci中;所述模式是候选自定义指令的图形化表示;为了建立自定义指令选择问题的约束编程模型,先定义一些变量:N为自定义指令枚举阶段枚举出的候选自定义指令的数目,Ci表示第i个候选自定义指令,i=1,…,N;自定义指令Ci在代码中有ni个实例,分别为每个自定义指令的实例的执行频率为fi,j;自定义指令带来的处理器性能提升和自定义指令在自定义功能单元中实现所需的硬件面积分别用Pi和Ai表示;则自定义指令带来的处理器性能提升的最大化目标函数如下公式所示:其中,si,j为二元变量,当自定义指令实例ci,j被选择的时候其值为1,否则为0;由于自定义指令是通过封装多个基本指令,减少最终取指令和数据在寄存器和处理器之间传输的次数,从而减少处理器的能耗;则自定义指令带来的处理器能耗减少的最大化目标函数如下公式所示:其中,E(ci,j)表示自定义指令实例ci,j内部边的数目,表示取指令数目的减少量,表示数据传输次数的减少量,α,β为权重参数,α+β=1;在以上建立的基于目标函数的自定义指令选择模型基础上,为了简化问题,采用基于权重的方法,将多目标优化问题转换为单目标优化问题,得到如下公式所示的自定义指令选择模型:其中,γ,ε为权重参数,γ+ε=1;针对用户给定的面本文档来自技高网
...

【技术保护点】
1.一种基于约束规划的自定义指令自动识别方法,其特征在于:包括自定义指令的枚举和自定义指令的选择两部分;所述自定义指令的枚举通过建立自定义指令的枚举约束编程模型,从数据流图中枚举所有满足约束条件的子图实现,具体方法为:为了从数据流图G(V,E)中枚举出所有满足给定约束的自定义指令,设子图S=(Vs,Es)是自定义指令实例的图形化表示,

【技术特征摘要】
1.一种基于约束规划的自定义指令自动识别方法,其特征在于:包括自定义指令的枚举和自定义指令的选择两部分;所述自定义指令的枚举通过建立自定义指令的枚举约束编程模型,从数据流图中枚举所有满足约束条件的子图实现,具体方法为:为了从数据流图G(V,E)中枚举出所有满足给定约束的自定义指令,设子图S=(Vs,Es)是自定义指令实例的图形化表示,I1,I2分别表示图G中的有效结点的集合和非法结点的集合,所述数据流图G=(V,E)是一个有向无环图,结点集V={v1,v2,...,vM}表示基本指令,M为数据流图结点的个数,边集表示指令之间数据依赖关系,m表示数据流图边的个数;所述给定的约束条件包括:自定义指令不包含非法结点的约束条件,自定义指令的连通性约束条件,自定义指令是凸的约束条件及自定义指令的输入输出约束条件;分别对约束条件建模,并针对枚举问题,采用约束编程方法求所有满足约束条件的自定义指令,完成对自定义指令的枚举;所述自定义指令的选择通过建立自定义指令的选择约束编程模型,实现多目标优化,具体方法为:在自定义指令枚举阶段所枚举出的子图基础上,首先对所有子图进行图同构匹配处理;为了建立自定义指令选择问题的约束编程模型,先定义一些变量:N为自定义指令枚举阶段枚举出的候选自定义指令的数目,Ci表示第i个候选自定义指令,i=1,…,N;自定义指令Ci在代码中有ni个实例,分别为每个自定义指令的实例的执行频率为fi,j;自定义指令带来的处理器性能提升和自定义指令在自定义功能单元中实现所需的硬件面积分别用Pi和Ai表示;则自定义指令带来的处理器性能提升的最大化目标函数如下公式所示:其中,si,j为二元变量,当自定义指令实例ci,j被选择的时候其值为1,否则为0;由于自定义指令是通过封装多个基本指令,减少最终取指令和数据在寄存器和处理器之间传输的次数,从而减少处理器的能耗;则自定义指令带来的处理器能耗减少的最大化目标函数如下公式所示:其中,E(ci,j)表示自定义指令实例ci,j内部边的数目,表示取指令数目的减少量,表示数据传输次数的减少量,α,β为权重参数,α+β=1;在以上建立的基于目标函数的自定义指令选择模型基础上,为了简化...

【专利技术属性】
技术研发人员:肖成龙王珊珊王心霖
申请(专利权)人:辽宁工程技术大学
类型:发明
国别省市:辽宁,21

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

1