一种面向向量DSP指令级别代码的循环展开处理方法

    公开(公告)号:CN117539542A

    公开(公告)日:2024-02-09

    申请号:CN202311411423.8

    申请日:2023-10-27

    Abstract: 本发明涉及一种面向向量DSP指令级别代码的循环展开处理方法,包括以下步骤:识别标量向量混合指令序列代码(指令的操作数为符号寄存器)的最内层循环;识别最内层循环的符号寄存器中的归纳变量(包括基本归纳变量和依赖归纳变量);分析循环控制基本块,确保循环合法;计算标量向量混合指令循环的展开因子;根据展开因子对循环的代码进行变换。本发明旨在面向向量DSP通过代码变换进行指令级别循环的展开处理,提供一种充分利用向量DSP寄存器资源的标量向量混合指令循环展开方法,提升向量DSP代码的指令级并行性。

    一种基于函数抽象指令序列的最内层循环全展开方法

    公开(公告)号:CN117234589A

    公开(公告)日:2023-12-15

    申请号:CN202310813074.6

    申请日:2023-07-04

    Abstract: 本发明涉及一种基于函数抽象指令序列的最内层循环全展开方法,包括以下步骤:分析函数中各基本块内指令间的依赖关系;通过变量的活跃性分析来构造DU链和UD链;识别最内层循环的归纳变量;通过UD链找出循环边界常量;根据各寄存器类型对应的归纳变量来计算循环展开因子;进行循环全展开。本发明基于具有多类寄存器资源的体系结构,在最内层循环展开基础上进行循环全展开,并将循环完全线性化。该方法提高了指令执行的并行度,消除原循环中各次循环之间的跳转以及循环判断指令片段,另外还省去了条件判断中的归纳变量在循环展开中的迭代,因此,它在一定程度上减少了指令数目,提升了后续指令调度的自由度。

    一种融合寄存器对需求的寄存器选择方法

    公开(公告)号:CN111324354B

    公开(公告)日:2023-04-18

    申请号:CN201911378867.X

    申请日:2019-12-27

    Abstract: 本发明公开了一种融合寄存器对需求的寄存器选择方法,其包括:步骤S1:分析各寄存器分配候选者在符号寄存器对中出现的情况;步骤S2:计算各寄存器分配候选者的奇偶号收益P;所述奇偶号收益P是指一个寄存器分配候选者在其涉及的那些符号寄存器对操作数中如果该候选者被指派奇数或偶数编号寄存器时将获得的收益;步骤S3:为各寄存器分配候选者进行寄存器指派。本发明具有能够提高寄存器对分配候选者的指派成功率、减少冗余的溢出、增加代码优化机会等优点。

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

    公开(公告)号:CN109240701B

    公开(公告)日:2022-06-28

    申请号:CN201810919349.3

    申请日:2018-08-13

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

    一种面向指令源操作数的寄存器对分配方法及存储介质

    公开(公告)号:CN110187882A

    公开(公告)日:2019-08-30

    申请号:CN201910411696.X

    申请日:2019-05-17

    Abstract: 本发明公开一种面向指令源操作数的寄存器对分配方法及存储介质,该方法步骤包括:S1.分别将待处理指令中所有源操作数寄存器对所包含的两个寄存器均进行独立的寄存器分配;S2.依次获取各条指令进行寄存器修正分配,将寄存器对中错误使用寄存器使用替换寄存器进行替换,替换寄存器根据各寄存器的使用状态以及在指令入口处的空闲状态进行选取,优先使用同一指令中前面的源操作数寄存器对的替换寄存器替换后面相同的错误使用寄存器,被替换出来的寄存器若在指令入口处变为空闲则作为后续其他源操作数中寄存器对的替换寄存器。本发明面向指令源操作数实现寄存器对分配,具有实现方法简单、分配成功率及资源利用率高、灵活性强等优点。

    一种面向指令目标操作数的寄存器对分配方法及存储介质

    公开(公告)号:CN110187883B

    公开(公告)日:2022-12-06

    申请号:CN201910411700.2

    申请日:2019-05-17

    Abstract: 本发明公开一种面向指令目标操作数的寄存器对分配方法及存储介质,该方法步骤包括:S1.分别将待处理指令中所有目标操作数寄存器对所包含的两个符号寄存器均进行独立的寄存器分配;S2.依次获取各条指令进行寄存器修正分配,将寄存器对中错误使用寄存器使用替换寄存器进行替换,替换寄存器根据各寄存器、寄存器对在指令操作数字段出口处的空闲状态进行选取,并使得每个替换寄存器使用后不再作为相同指令中其他目标操作数的替换寄存器候选者,以及被替换出来的寄存器不作为其他被替换寄存器的替换寄存器候选者。本发明面向指令目标操作数实现寄存器对分配,具有实现方法简单、分配成功率及资源利用率高、灵活性强等优点。

    用于VLIW基本块调度的组合启发式指令选择优化方法

    公开(公告)号:CN109918134A

    公开(公告)日:2019-06-21

    申请号:CN201910168208.7

    申请日:2019-03-06

    Abstract: 本发明公开一种用于VLIW基本块调度的组合启发式指令选择优化方法,步骤包括:S1.在每个指令周期进行指令选择发射时,若至少存在一个功能单元的剩余有效指令级数为2,转入执行步骤S2;S2.获取各就绪指令所对应的关联功能单元,查找剩余有效指令级数大于2的第一类关联单元,以及查找剩余指令级数为2的第二类关联单元并获取剩余指令完成所需时间,确定得到第一启发量以及第二启发量;S3.根据确定得到的第一启发量、第二启发量挑选出就绪指令作为最终输出就绪指令。本发明能够提高功能单元剩余指令级数较小时的指令调度优化效果,且有实现方法简单、调度优化效果好、执行效率高等优点。

    一种提升指令级并行性的寄存器选择优化方法

    公开(公告)号:CN114035800B

    公开(公告)日:2025-02-07

    申请号:CN202111354015.4

    申请日:2021-11-16

    Abstract: 本发明公开了一种提升指令级并行性的寄存器选择优化方法,其步骤包括:1)描述指令与指令子集之间的映射关系;2)分析与候选者所在指令相关的其他指令中已经使用的寄存器,如果除这些寄存器外还有未被分配的寄存器,则跳转到第4)步;否则,执行下一步;3)找到同时包含分配候选者及其候选寄存器的指令子集,以单个候选寄存器为单位分别计算指令子集数量和包含候选寄存器的指令数量;4)为各寄存器分配候选者选择对依赖关系影响最少的寄存器。本发明充分考虑了指令间的逻辑并行关系,能在尽量少的指令子集和尽量少的指令范围内引起额外的指令间数据依赖关系,从而有利于提升指令调度的自由度,得到指令级并行度更高的目标代码。

    一种符合取指包字节数要求的基本块执行包序列生成方法

    公开(公告)号:CN117472442A

    公开(公告)日:2024-01-30

    申请号:CN202310813831.X

    申请日:2023-07-04

    Abstract: 本发明涉及一种符合取指包字节数要求的基本块执行包序列生成方法,包括以下步骤:遍历每个基本块,循环以下所有步骤;判断当前基本块是否以跳转指令结尾;若以跳转指令结尾,优先针对跳转指令构建取指包;从后往前构建当前基本块的所有取指包,依次向取指包中填入执行包,将每个取指包填满;将最后一个取指包填满,此步骤按需插入特殊指令。本发明采用拆分跨相邻两个取指包边界执行包的方法,并在必要部分插入特殊指令来填满取指包。具有可靠性高、准确性强等优点。能适用于取指包字节数不小于执行包字节数的情况。

Patent Agency Ranking