[发明专利]一种通过静态分析测算代码指令最长运行时间的方法有效
申请号: | 201410601684.0 | 申请日: | 2014-10-30 |
公开(公告)号: | CN104407968A | 公开(公告)日: | 2015-03-11 |
发明(设计)人: | 党纪红;陈朝晖;尚葳蕤;杨彬;李经松;关小川 | 申请(专利权)人: | 北京控制工程研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 陈鹏 |
地址: | 100080 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种通过静态分析测算代码指令最长运行时间的方法,首先解析待分析源代码对应的机器码指令序列,识别指令序列中分支指令的源地址和目标地址,得到指令的执行周期数。然后建立指令序列对应的有向无环图,按照有向无环图计算最长路径的方法,计算最长执行周期数,进而得到最长运行时间。如果建立有向无环图遍历过程中有向后跳转指令,则建立的是有向有环图,而且环还是有次数的,次数就是源代码中对应的循环次数,通过确定循环对应的循环体和循环次数,能够消除循环把有向有环图变成有向无环图,进而得到代码指令的最长运行时间。 | ||
搜索关键词: | 一种 通过 静态 分析 测算 代码 指令 最长 运行 时间 方法 | ||
【主权项】:
一种通过静态分析测算代码指令最长运行时间的方法,其特征在于包括如下步骤:(1)设置SPARC体系结构中源代码对应的指令序列中每条指令的初始信息;所述指令的内容包括序号、执行周期数、源地址和目标地址,序号代表每条指令在指令序列中从0开始的整数编号,执行周期数代表指令执行需要的计算机处理器周期数、源地址代表跳转到本指令的指令的序号集合、目标地址代表本指令将要跳转执行的指令的序号,其中执行周期数初始值为0,源地址和目标地址初始值为‑1;(2)逐条解析指令序列中的每条指令,如果是分支指令,则将本条指令的目标地址记为本分支指令将要跳转执行的指令序号,同时本分支指令将要跳转执行的指令的源地址添加本分支指令序号;如果不是分支指令,则本条指令的目标地址和源地址不变;(3)从指令序列的第一条指令开始逐条判断指令的序号与本指令目标地址的大小,如果某条指令的目标地址不为‑1且序号大于目标地址,则判定该指令是向后跳转指令,将该指令作为起始指令,以该指令目标地址指令为终点截取的一段指令序列作为待分析指令序列,并转到步骤(4);如果某条指令的序号小于目标地址,则判定该指令是顺序或向前跳转指令,继续解析指令序列中的下一条指令;(4)分析待分析指令序列,提取其没有向后跳转指令的指令序列子集,查询SPARCV8指令集手册获得指令序列子集中各指令对应的执行周期数数值,将指令序列子集中的每条指令作为有向图中的一个点,在有顺序关系的前后指令之间,以及向前跳转指令的源地址和目标地址之间建立有向线,权值为有向线起始点指令的执行周期数,建立有向无环图,根据有向无环图计算最长执行周期数,最长执行周期数与每个指令执行周期对应的绝对时间相乘得到最长运行时间;所述每个指令执行周期对应的绝对时间由计算机处理器的频率确定;(5)以当前向后跳转指令为起点,以原指令序列第一条指令为终点,逆序分析原指令序列,解析第一个出现的产生SPARC体系结构条件码的指令,得到两个操作数,将在后续的逆序分析中有自加、自减运算的操作数作为循环变量,将在后续的逆序分析中只有赋值操作的操作数作为代表循环次数的操作数,当代表循环次数的操作数是常值时,该常值记为循环次数,当代表循环次数的操作数是操作地址或者从寄存器得到的值时,则分析当前向后跳转指令对应的调用函数,分析调用函数的循环变量,循环变量对应物理参数的取值范围的最大值作为循环次数;获得循环次数后,与步骤(4)得到的指令序列子集的最长运行时间相乘得到待分析指令序列的最长运行时间,并将待分析指令序列的最长运行时间赋值给当前向后跳转指令的执行周期数,将待分析指令序列与指令序列中其余指令的跳转关系赋予当前向后跳转指令据此更新当前向后跳转指令的源地址和目标地址;(6)用赋值后的当前向后跳转指令替代原指令序列中的待分析指令序列;(7)将替代后的指令序列作为新的原指令序列,重复步骤(3)~步骤(6)直至新的原指令序列没有向后跳转指令后转入步骤(8);(8)查询SPARCV8指令集手册获得新的原指令序列中各指令对应的执行周期数数值,并分别赋予各个指令,将指令序列中的每条指令作为有向图中的一个点,在有顺序关系的前后指令之间,以及向前跳转指令的源地址和目标地址之间建立有向线,权值为有向线起始点指令的执行周期数,建立有向无环图,根据有向无环图计算最长执行周期数,最长执行周期数与每个指令周期对应的绝对时间相乘得到代码指令最长运行时间;所述每个指令执行周期对应的绝对时间由计算机处理器的频率确定。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京控制工程研究所,未经北京控制工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410601684.0/,转载请声明来源钻瓜专利网。