首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 187 毫秒
1.
对多分支结构编译后的各种实现模式进行研究分析,对复杂条件下典型的多分支语句实现模式进行形式化描述,在多分支结构的识别过程中,分析索引表和跳转表调用指令的格式,提出双特征指令匹配算法。通过程序切片,建立索引表和跳转表调用的表达式标准型,消除多分支语句恢复过程中编译器类型和版本差异的影响,提高了算法通用性。  相似文献   

2.
对IA32反编译后多分支结构的各种实现模式进行了系统的研究分析,并对复杂条件下典型的多分支结构实现模式进行了形式化的描述。在多分支结构的识别过程中,通过对索引表和跳转表调用指令的格式分析,提出了双特征指令匹配算法。通过程序切片建立了索引表和跳转表调用的表达式标准型,消除了多分支语句恢复过程中编译器类型和版本差异带来的影响,提高了算法通用性,对于进行程序反解及软件逆向工程具有重要的参考价值。  相似文献   

3.
二进制翻译中解析多目标分支语句的图匹配方法   总被引:1,自引:0,他引:1  
二进制翻译技术现已成为实现软件移植的重要手段.在二进制翻译系统中,如何有效地挖掘程序的代码并对其进行高效翻译是影响系统性能的关键,而二进制代码中间接跳转语句的存在,使得静态时难以得到它的跳转目标,影响了代码的发掘率和最终的翻译效果.在通常的应用程序中,间接跳转指令经常用来实现多目标分支语义,分支目标存放在跳转表中.提出了一种解析多目标分支语句及其跳转表的方法,能够挖掘出间接跳转的目标,进而对其进行有效翻译并提高二进制翻译系统的性能.该方法提出使用语义图来对预期语义进行刻画和表达.语义图能够对考察的指令序列进行语义提取,识别出与预期语义相匹配的指令流,还可以应对编译器在不同优化选项下生成的指令,并能有效滤除不相关指令带来的干扰.实验结果表明,对于SPEC CINT2000中的部分测试用例,代码翻译的覆盖率可以提高9.85%~22.13%,相应带来的性能提升可达到8.30%~17.71%,而使用的算法时间复杂度仅为O(1).  相似文献   

4.
熊振亚  林正浩  任浩琪 《计算机科学》2017,44(3):195-201, 214
现代计算机体系结构受两个方面的困扰:性能和能耗。为降低嵌入式处理器日益增长的功耗,提出基于跳转轨迹的分支目标缓冲结构(TG-BTB)。与传统分支目标缓冲每次提取指令时需要查询分支目标缓冲不同,TG-BTB只在执行轨迹预测为跳转时才查询分支目标缓冲。该结构通过在程序执行过程中动态分析跳转轨迹行为,可以实现只在轨迹跳转时查询分支目标缓冲,从而降低功耗。在动态分析过程中首先提取记录两条跳转分支指令之间的指令间隔,然后将提取的指令间隔存储在TG-BTB中,最后根据存储在TG-BTB中的指令间隔决定是否需要查询BTB。基于基准测试向量进行模型验证和性能测试,实验结果表明TG-BTB降低了81%的BTB查询能耗。  相似文献   

5.
在二进制翻译中引入TCG中间表示技术可以实现多目标平台之间的程序移植,同时可以更加方便地引入新型平台,解决新平台对主流平台的兼容性问题。然而由于原有的中间表示在翻译过程中影响了代码的关联度,生成的后端代码中存在较多冗余指令,影响翻译程序的执行效率。分析了指令优化可行性,针对条件跳转指令进行优化,通过指令预处理对中间表示进行改进,实现中间表示到后端代码生成由一对多翻译模式到多对多翻译模式的转变,采用指令归约技术,针对条件跳转指令的2种模式CMP-JX型与TEST-JX型,分别设计相应的优化翻译算法,并在开源二进制平台QEMU上实现。基于NPB-3.3和SPEC CPU 2006测试集进行了测试,与以前的翻译模式进行对比,优化后的代码膨胀率平均减少了14.62%,翻译程序运行速度提升了17.23%,验证了该优化方法的有效性。  相似文献   

6.
本文提出了一种结合PAs和Gshare两者优点,同时尽可能消除两者缺点的两级自适应分支预测算法及其实现——Pshare分支预测方法。通过使用单独的BHSR来跟踪不同分支指令的历史轨迹,克服了GAs和Gshare机制中统一历史模式带来的缺点;同时,通过使用分支指令部分地址和历史模式位的杂凑运算来索引共享的一维PHT小表,减少了PAs机制中二维PHT大表的面积开销和索引延时开销。Pshare两级自适应分支预测器用接近Gshare的实现代价,达到了近似PAs的预测精度。该分支预测技术适用于强调单核性能的超标量超流水结构的高性能处理器中,有助于减少垂直浪费,提高单核心的性能和效率。  相似文献   

7.
反静态反汇编技术研究   总被引:2,自引:0,他引:2  
通过对软件可执行二进制码的静态反汇编结果进行分析,可以对其进行非法的修改或窃取其知识产权。为了防范这种情况,在描述静态反汇编基本算法的基础上,提出了分支函数和跳转表欺骗两种隐藏程序控制流的反静态反汇编技术。这两种技术能够隐藏程序中跳转指令的真实目标地址,并能够伪造出导致静态反汇编器出错的假目标地址,从而提高程序的反静态反汇编性能,增加软件分析的难度。  相似文献   

8.
传统的分支目标缓冲器(BTB)每个取指周期都要进行访问,由于程序中的分支指令只占总指令数的20%左右,使得大约80%的BTB访问都是无效的.为此,利用程序控制流中分支指令间距固定的特性,提出一种对性能影响极小的BTB跳跃访问算法.在BTB中存储分支指令到运行路径中下一条分支指令的距离,BTB命中后,根据相应的分支距离来关闭当前分支指令与下一条分支指令之间的BTB访问,以有效地提高访问效率并降低动态功耗.该算法在嵌入式处理器中实现时只控制预测跳转分支指令的BTB跳跃访问,减少了硬件资源的开销.在硬件模型上进行模拟和综合后的结果表明,在128分支项的BTB中,采用文中算法可以降低72%的动态功耗,而性能损失仅为0.013%.  相似文献   

9.
条件跳转指令是VLIW DSP中频繁使用的一种指令,循环是条件跳转指令应用的主要领域之一。条件跳转指令高效的设计是VLIW DSP高效运行的关键。针对这类指令实现的复杂性,讨论了一种新的结构Hyperblock,并用这种结构设计实现了BWDSP100处理器中的条件跳转指令,实验证明该方法对于DSP核心算法程序以及实际应用程序都可以获得较好的优化效果,提高了指令并行性。  相似文献   

10.
基于IA-64体系结构下二进制翻译系统,本文提出了应用过程内静态切片技术恢复索引跳转中跳转表以及目标地址的解决方案.并通过在IA-64体系结构上对C和C++编译器产生的代码进行测试,表明通过该技术可以很好的解决二进制翻译中跳转表的恢复问题,提高二进制解码的覆盖率.  相似文献   

11.
IA-64二进制代码switch语句恢复技术研究   总被引:1,自引:1,他引:0  
在对IA-64二进制代码进行分析的过程中,一个基本的问题就是识别通过跳转表实现的switch语句中n-条件分支的目标地址,该问题的解决使得对指定过程的机器指令的解码更加完整。文章基于切片和表达式置换技术,结合IA-64中为switch语句生成的汇编代码特点,给出了恢复跳转表及目标地址的方法,从而可以将包含跳转表的IA-64二进制代码恢复为高级switch语句。  相似文献   

12.
陈敏  陈榕  王云帆 《计算机工程》2011,37(12):33-35
恶意事务攻击成功后的数据恢复机制要求日志文件必须同时记录写操作信息和读操作信息。为此,提出一种数据库恶意事务恢复日志策略,并基于该策略设计日志系统。在日志系统中,结构化查询语言(SQL)语句过滤可保护日志文件的安全,拒绝终端客户对日志文件的非法操作;敏感信息设置从行级和列级2个方面设置日志记录必须满足的约束条件,可有效控制日志文件的规模;写日志产生器通过使用触发器的临时表完成对写操作的记录;读日志产生器通过重构SQL语句产生临时表,再访问临时表完成对读操作的记录。实验结果表明,该系统可有效记录数据库读写操作,但同时会降低整体系统的效率。  相似文献   

13.
传统的向量化方法和超字并行方法依靠数据依赖关系分析确定程序中的并行性,而依赖关系分析无法处理非结构化控制流语句,现有的编译器对该类语句的向量化能力有限。为此,给出一种面向SIMD扩展体系结构的出口分支语句向量化方法,该方法针对一个向量因子内的出口分支语句,能够有效地进行自动向量化处理。测试结果表明,该方法既充分发掘了程序数据流中的并行性,又保证了控制流语义的正确性。  相似文献   

14.
齐宁  赵荣彩 《计算机工程》2006,32(23):49-51
在对IA-64二进制代码进行翻译的过程中,一个重要的问题就是识别和恢复通过跳转表实现的switch语句。分析了编译器生成跳转表时采用的策略,提出了前向预取同反向切片及表达式置换相结合以识别和恢复switch语句的技术,归纳了用于获取跳转表地址的规格化形式,给出了跳转表分支目标地址恢复方法,从而可将包含跳转表的IA-64二进制代码恢复为高级switch语句。该技术已经在二进制翻译框架I2A上进行了测试,可以处理编译器gcc 2.96及gcc 3.2.3在多种优化级别下生成的IA-64代码。  相似文献   

15.
Pascal case statements can be compiled using a variety of methods, including comparison trees and branch tables. The scheme discussed here combines the two techniques to allow comparison trees with entries that are branch tables. The use of a combination of the two techniques is shown to adapt well to certain instances of case statements. Extensions to the standard case statement also require such a scheme to obtain an efficient implementation.  相似文献   

16.
基于实例化视图的MDX语句执行性能优化   总被引:1,自引:1,他引:0       下载免费PDF全文
多维表达式(MDX)语句多用于实现对海量数据的多维分析,如何对MDX语句的执行过程进行优化,进而提高查询速度是构建在线分析处理系统的一个难点。该文采用预建实例化视图的方法,使得原先基于事实表和维表的多表连接查询在经过查询重写后,可直接利用单一的候选实例化视图完成,从而大大加快了MDX语句的执行速度。阐述了选取候选实例化视图的基本思路,并给出实验结果。实验证实,数据量越大、MDX语句越复杂,性能提升的效果越明显。  相似文献   

17.
适应度函数的设计在基于搜索的测试用例生成技术中占据重要的位置,然而在某些特殊的程序中,如存在嵌套、非结构性跳转或因return,break等语句跳出循环的程序,已有的适应度函数无法评价到所有的分支.目前的方法是修改程序的源代码,以使每个分支得到评价.但修改源代码不但可能影响程序的原有结构、引入错误,而且很难实现自动化.针对这一问题,提出一种基于模式组合的粒子群优化测试用例生成方法.首先,将分支条件定义为"模式",即,一类具有相同特征且能提高适应度值的个体集合,并改变其分支函数的插桩方式,可解决分支条件不完全评价的问题;然后,设计一种新的交叉算子,寻找到所有使模式的分支函数值最小的个体,将这些个体中含有模式的部分通过交叉算子组合到一个个体上,既可防止模式在进化过程中被破坏,又可因多种模式的组合而提高个体的适应度值;最后,使用局部搜索策略对种群中的最优个体进行搜索,提高粒子群优化算法的局部搜索精度,进一步提高测试用例生成效率.为了评价该方法的有效性,基于一组基准程序和开源程序进行实验.实验结果表明:对于含有模式的程序,该测试用例生成方法与已有方法相比,在覆盖率和平均进化代数上均有明显优势.  相似文献   

18.
针对传统处理器分支预测器存在分支预测信息混乱、分支指令别名冲突和容量冲突率高的缺点,提出基于同时多线程处理器的分支预测器TBHBP。该分支预测器采取线程历史信息与基于地址索引的局部历史信息相结合的综合历史信息作为模式匹配表PHT的索引,并采取线程独立拥有线程历史寄存器和分支历史寄存器的方式,通过新增分支结果输出表来提高指令的分支预测执行速度。研究结果表明,TBHBP分支预测器有效解决了分支信息过时、分支指令别名和容量冲突的问题。与Gshare分支预测器相比,其指令吞吐率提升了12.5%,分支误预测率和误预测路径取指率分别下降了0.5%和2.1%。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号