基于抽象解释技术多层Cache分析设计与实现.docVIP

基于抽象解释技术多层Cache分析设计与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于抽象解释技术多层Cache分析设计与实现

基于抽象解释技术多层Cache分析设计与实现   摘 要:在WCET分析中,最重要的一类工作就是Cache分析。目前,大多数的基于抽象解释技术的Cache分析中,分析算法是作用于整个程序的,如果能够根据程序的层次结构,挖掘程序执行在Cache中的局部特性,那么就可以有效的提高WCET的分析精度。基于这一需求,本文主要研究基于抽象解释技术的多层Cache分析,研究的主要内容包括:程序层次结构的分析,基于抽象解释技术的多层Cache分析和整数线性规划问题的建模与WCET求解,采用多层Cache分析能有效的提高WCET的分析精度。   关键词:WCET;抽象解释;多层Cache分析   中图分类号:TP311.1   本文设计并实现了“基于抽象解释技术的多层Cache分析”。该分析方法按照程序中循环的嵌套关系,首先将程序划分成若干个层次。之后,按照传统基于抽象解释技术的分析手段,针对每个层次对应的循环体,分别进行分析,探索程序的局部Cache访问特性。最终,根据各个层次的分析得到的结果,进行整数线性规划的编码,并计算出更加精确的WCET估计值。   1 系统总体设计   图1为WCET分析工具总体分析框架,展示了WCET分析工具完整的工作流程。其中绿色的模块表示的是本文研究的主体工作在整个工具中所处的位置。   在本工具中,待分析的程序为C代码编写,通过面向SimpleScalar平台的gcc交叉编译器,可以将源程序编译为PISA指令集的可执行程序,这个可执行程序就是WCET分析工具的直接输入。程序读入工具之后,分析工具将可执行程序进行反编译,提取详细的指令信息,并生成程序的CFG。程序的CFG表示了程序的流程结构,这一信息将成为处理器行为分析的输入。处理器行为分析目前主要包括Cache分析。Cache分析的结果主要是判断程序的指令或数据在Cache中的命中情况。循环变量、不可行路径等信息可以由用户手工输入,这些输入为“功能性约束条件”,根据下一步计算的需要,这些约束条件将被映射为不同模型中所需要的形式。   在程序流程、处理器行为分析、以及功能性约束等信息都齐备以后,需要采用某种手段计算求解程序的WCET。蓝色线条部分表示的是基于隐式路径枚举的计算方法。根据计算需要,程序流程信息、处理器行为信息、功能性约束等分别被转化为线性约束描述的“控制流程约束”、“处理器行为约束”以及“映射后的功能约束”等,这些约束与目标函数结合起来,就形成了一个整数线性规划的问题,这一问题可以交付商业的求解软件(如CPLEX)或开源的数学规划求解软件(如lp_solve)进行求解,最终得到程序的WCET值。在另外一条分支上,可执行程序可以交给SimpleScalar模拟器进行模拟执行,用以获得程序的WCET观测值,它通常用来和WCET估计值进行比较,以粗略的分析后者的精确程度。   本文主体工作主要体现为以下三个方面:第一,在原来的分析流程完成了“路径分析”并得到了程序的控制流程图(CFG)之后,本文的工作增加了一个功能,就是对程序的整体CFG进行分析,获得依照嵌套循环来划分的程序的层次结构。第二,在已经存在的基于抽象解释的Cache分析模块的基础上,对其进行了改进,使之能够有效的分析局部程序对应的局部CFG。第三,扩充原有的“处理器行为约束”功能,使得分层次Cache分析得到的结果能够被建模到ILP描述中,并参与WCET计算,最终获得更加精确的分析结果。   2 基于抽象解释的Cache分析功能的设计与实现   2.1 基于抽象解释的Cache分析基本思想   通过对程序执行过程的静态模拟,分析出由于程序的执行而造成的Cache中内容的变化情况,并从中提取出在此程序执行过程中的每一个访存操作在Cache中的命中情况。在抽象解释技术中,用一个抽象的Cache状态(Abstract Cache State)来表示一系列具体的Cache状态(Concrete Cache State)。同时,他们还为抽象的Cache状态定义了一些抽象的Cache动作函数,这些动作函数是Update函数和Join函数,其中Update函数是用来对抽象Cache状态中的内容进行更新的,而Join函数则是用来合并两个抽象Cache状态中的内容的。这些抽象的Cache动作函数在一定程度上能够反映出由于程序的执行而对Cache中的内容所造成的影响。因此,抽象的Cache状态以及这些抽象的Cache动作函数能够在抽象空间内对Cache的具体行为进行完整的描述。在对程序执行过程的静态模拟过程中,抽象Cache状态中的内容将会按照所规定的动作函数而发生变化。   基于抽象解释技术的Cache分析方法针对抽象的指令Cache状态主要采用三种分析,它们分别是Must分析

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档