一种面向谓词执行高性能DSP的指令依赖关系分析方法技术

技术编号:20160072 阅读:29 留言:0更新日期:2019-01-19 00:12
一种面向谓词执行高性能DSP的指令依赖关系分析方法,对于基本块内的某条指令,从指令I的前一条指令开始,逆序遍历基本块内的指令去尝试解除依赖分析需求,同时确认指令I与哪些指令有依赖关系;每遍历到一条指令X,进行如下处理:S1:分析指令I和指令X之间是否可能有依赖关系;S2:获得指令X的谓词域信息,并根据指令I和指令X的条件执行关系,决定是否结束对指令X的后续处理;S3:如果还没有结束对指令X的处理,针对指令I的依赖分析需求,结合指令X的条件执行特性开展相应的依赖分析,确定指令I是否确实依赖于指令X,并尝试解除相应的依赖分析需求。本发明专利技术具有原理简单、操作简便、能够充分发挥硬件性能等优点。

【技术实现步骤摘要】
一种面向谓词执行高性能DSP的指令依赖关系分析方法
本专利技术主要涉及到代码的编译优化方法,特指一种面向谓词执行高性能DSP的指令依赖关系分析方法。
技术介绍
在编译过程中,要完成基本块内指令的调度,提高代码的并行度,必须要先对基本块内指令依赖关系进行全面有效的分析。正确有效的依赖关系是指令调度过程所需的关键信息。依赖关系分析指的是确定一个基本块内指令间的顺序关系,这种关系是代码正确执行所必须遵循的。基本块内指令间的依赖关系一般是通过有向无环图(DAG)来描述的。该图描述了各指令与其他指令的执行顺序依赖关系。一条指令与其他指令之间的依赖关系决定了该指令必须在哪些指令执行完毕之后才能够执行。现有技术中,在构造基本块的依赖DAG的过程中,确定某条指令所依赖的其他指令的基本方法如下:依次处理基本块的所有指令,对于每条指令Ia,分析它与它之前的每一条的指令Ib的冲突关系,如果两者之间冲突则在两指令之间添加一条边来表示它们之间的依赖关系。通过这种方法得到的依赖关系可以保证代码正确执行。但是,在谓词执行情况下,任意指令都可能是条件执行的,因此它也存在如下问题:1)不能充分识别指令间的并行性。对于条件执行指令,它不能将谓词域的执行条件互补的两条指令的实际可并行执行关系分析出来。对于硬件资源可配置的嵌入式处理器,特别是VLIW体系结构的高性能DSP,它不能充分发现条件执行的硬件配置指令与其他指令的可并行执行关系。2)会导致产生一些不必要的边。如果指令Ic依赖于Ib,Ib又依赖于Ia,那么它将认为Ic同时依赖于Ia和Ib,即使这种依赖仅仅是数据上的依赖。这些冗余的依赖关系会对相关的代码优化造成干扰。正是由于上述问题,使得它不能得到指令与其之前的条件执行指令之间的准确依赖关系,最终得到的基本块依赖DAG不能较好地描述指令间的并行关系,进而将导致指令调度结果不能充分发挥硬件的性能。
技术实现思路
本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种原理简单、操作简便、能够充分发挥硬件性能的面向谓词执行高性能DSP的指令依赖关系分析方法。为解决上述技术问题,本专利技术采用以下技术方案:一种面向谓词执行高性能DSP的指令依赖关系分析方法,对于基本块内的指令I,从指令I的前一条指令开始,逆序遍历基本块内的指令去尝试解除依赖分析需求,同时确认指令I与哪些指令有依赖关系,直到依赖分析需求都被解除或逆序到达基本块入口;每遍历到一条指令X,进行如下处理:S1:不考虑指令I和指令X的谓词域,分析指令I和指令X之间是否有依赖关系;如果没有,结束对指令X的处理;否则进行下面步骤的处理;S2:获得指令X的谓词域信息,并根据指令I和指令X的条件执行关系,决定是否结束对指令X的后续处理;S3:如果还没有结束对指令X的处理,针对指令I的依赖分析需求,结合指令X的条件执行特性开展相应的依赖分析,确定指令I是否确实依赖于指令X,并尝试解除相应的依赖分析需求。作为本专利技术的进一步改进:将硬件资源配置、访问存储器、使用变量这三种导致DSP的指令间存在依赖关系的主要原因对应成指令进行依赖关系分析的处理需求,分别称为配置依赖分析需求、访存依赖分析需求、变量依赖分析需求。作为本专利技术的进一步改进:在步骤S5中,是针对指令I的配置依赖分析需求、访存依赖分析需求、变量依赖分析需求,结合指令X的条件执行特性开展相应的配置依赖分析、访存依赖分析、变量依赖分析,确定指令I是否确实依赖于指令X,并尝试解除相应的依赖分析需求。作为本专利技术的进一步改进:在为基本块内的指令1分析依赖关系之前,先对指令I进行预处理,为后续分析过程确定初始信息。作为本专利技术的进一步改进:所述预处理的过程包括:a、根据指令I所使用的源变量和目标变量,创建依赖变量集合;b、分析出指令I的谓词域的执行条件变量和条件模式;c、假定指令I对应的三种依赖分析需求都未解除,将相应的标志位置为FALSE。作为本专利技术的进一步改进:所述步骤S3为对指令I进行各种依赖分析需求,包括:如果指令I的配置依赖分析需求尚未解除,则考虑谓词执行特性,分析指令I对指令X是否确实存在配置依赖,分析指令I的硬件配置依赖分析需求是否可以因指令X而解除;如果指令X是无条件执行指令,或者指令X是条件执行指令并且其执行条件与之前已经发现的另一条配置依赖指令的执行条件互补,则可以解除。作为本专利技术的进一步改进:所述步骤S3为对指令I进行各种依赖分析需求,包括:如果指令I和指令X都是访存指令且指令I的访存依赖分析需求尚未解除,则考虑谓词执行特性,分析指令I对指令X是否确实存在访存依赖,分析I的访存依赖分析需求是否可以因指令X而解除;如果指令X是无条件执行指令,或者指令X是条件执行指令并且其执行条件与之前已经发现的另一条访存依赖指令的执行条件互补,则可以解除。作为本专利技术的进一步改进:所述步骤S3为对指令I进行各种依赖分析需求,包括:如果指令I的所有变量依赖分析需求尚未全部解除,则考虑谓词执行特性,分析指令I对指令X是否确实因某些变量而存在依赖,分析指令I的这些变量对应的变量依赖分析需求是否可以因指令X而解除;如果指令X是无条件执行指令,或者指令X是条件执行指令并且其执行条件与之前已经发现的另一条变量依赖指令的执行条件互补,则可以解除;在此基础上,进一步分析指令I的所有变量对应的变量依赖分析需求是否都已经解除;如果是,则指令I的变量依赖分析需求完整解除。与现有技术相比,本专利技术的优点在于:本专利技术使用的基本块内指令间依赖关系分析方法,在分析过程中综合考虑了硬件的谓词执行特性,能够在指令序列中包含条件执行和无条件执行两类指令的情况下,分析指令间的配置依赖关系、访存依赖关系、变量依赖关系。分析过程中特别考虑了互补条件执行指令对的情况,能为支持谓词执行的DSP或嵌入式处理器准确分析出指令所依赖的其他指令,并有效避免指令间因依赖关系传递形成的冗余依赖边。这能给基本块调度提供更多改善指令并行度的机会。附图说明图1是本专利技术在具体实施例中基本块内指令间依赖关系分析的顶层控制过程的操作状态转换图。图2是本专利技术在具体实施例中基本块内的指令I与其前面的某条指令X的配置依赖关系分析的操作状态转换图。图3是本专利技术在具体实施例中基本块内的指令I与其前面的某条指令X的访存依赖关系分析的操作状态转换图。图4是本专利技术在具体实施例中基本块内的指令I与其前面的某条指令X的变量依赖关系分析的操作状态转换图。具体实施方式以下将结合说明书附图和具体实施例对本专利技术做进一步详细说明。本专利技术的面向谓词执行高性能DSP的指令依赖关系分析方法,对于基本块内的指令I,从指令I的前一条指令开始,逆序遍历基本块内的指令去尝试解除依赖分析需求,同时确认指令I与哪些指令有依赖关系,直到依赖分析需求都被解除或逆序到达基本块入口;每遍历到一条指令X,进行如下处理:S1:不考虑指令I和指令X的谓词域(条件域),分析指令I和指令X之间是否有依赖关系。如果没有,结束对指令X的处理;否则进行下面步骤的处理;S2:获得指令X的谓词域信息,并根据指令I和指令X的条件执行关系,决定是否结束对指令X的后续处理;S3:如果还没有结束对指令X的处理,针对指令I的依赖分析需求,结合指令X的条件执行特性开展相应的依赖分析,确定指令I是本文档来自技高网
...

【技术保护点】
1.一种面向谓词执行高性能DSP的指令依赖关系分析方法,其特征在于,对于基本块内的指令I,从指令I的前一条指令开始,逆序遍历基本块内的指令去尝试解除依赖分析需求,同时确认指令I与哪些指令有依赖关系,直到依赖分析需求都被解除或逆序到达基本块入口;每遍历到一条指令X,进行如下处理:S1:不考虑指令I和指令X的谓词域,分析指令I和指令X之间是否有依赖关系;如果没有,结束对指令X的处理;否则进行下面步骤的处理;S2:获得指令X的谓词域信息,并根据指令I和指令X的条件执行关系,决定是否结束对指令X的后续处理;S3:如果还没有结束对指令X的处理,针对指令I的依赖分析需求,结合指令X的条件执行特性开展相应的依赖分析,确定指令I是否确实依赖于指令X,并尝试解除相应的依赖分析需求。

【技术特征摘要】
1.一种面向谓词执行高性能DSP的指令依赖关系分析方法,其特征在于,对于基本块内的指令I,从指令I的前一条指令开始,逆序遍历基本块内的指令去尝试解除依赖分析需求,同时确认指令I与哪些指令有依赖关系,直到依赖分析需求都被解除或逆序到达基本块入口;每遍历到一条指令X,进行如下处理:S1:不考虑指令I和指令X的谓词域,分析指令I和指令X之间是否有依赖关系;如果没有,结束对指令X的处理;否则进行下面步骤的处理;S2:获得指令X的谓词域信息,并根据指令I和指令X的条件执行关系,决定是否结束对指令X的后续处理;S3:如果还没有结束对指令X的处理,针对指令I的依赖分析需求,结合指令X的条件执行特性开展相应的依赖分析,确定指令I是否确实依赖于指令X,并尝试解除相应的依赖分析需求。2.根据权利要求1所述的面向谓词执行高性能DSP的指令依赖关系分析方法,其特征在于,将硬件资源配置、访问存储器、使用变量这三种导致DSP的指令间存在依赖关系的主要原因对应成指令进行依赖关系分析的处理需求,分别称为配置依赖分析需求、访存依赖分析需求、变量依赖分析需求。3.根据权利要求2所述的面向谓词执行高性能DSP的指令依赖关系分析方法,其特征在于,在步骤S3中,是针对指令I的配置依赖分析需求、访存依赖分析需求、变量依赖分析需求,结合指令X的条件执行特性开展相应的配置依赖分析、访存依赖分析、变量依赖分析,确定指令I是否确实依赖于指令X,并尝试解除相应的依赖分析需求。4.根据权利要求1或2或3所述的面向谓词执行高性能DSP的指令依赖关系分析方法,其特征在于,在为基本块内的指令I分析依赖关系之前,先对指令I进行预处理,为后续分析过程确定初始信息。5.根据权利要求4所述的面向谓词执行高性能DSP的指令依赖关系分析方法,其特征在于,所述预处理的过程包括:a、根据指令I所使用的源变量和目标变量,...

【专利技术属性】
技术研发人员:胡勇华李阳余建勇唐镇石林陆浩松
申请(专利权)人:湖南科技大学
类型:发明
国别省市:湖南,43

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

1