一种安卓应用典型特征片段提取方法.docVIP

一种安卓应用典型特征片段提取方法.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文档。上传文档
查看更多
一种安卓应用典型特征片段提取方法

一种安卓应用典型特征片段的提取方法   摘要:面向移动终端的处理器性能评估需要具有代表性的测试程序,本文通过分析安卓应用阶段性的微架构无关特征,选取能够代表整个应用的程序片段,为最终生成代表性测试程序提供可靠依据。本文所提出的微架构无关特征包括指令混合比、关键路径长度、寄存器传输、指令/数据的空间局部性/时间局部性、分支行为、串行指令分布7大类,总计227个微架构无关特征维度。同时在Gem5中加入了特征参数的统计代码,通过基于固定Cycle数的切割方法,对安卓应用进行切片,并提取了所有特征片段中的微架构无关参数以及相应的微架构相关参数。随后通过降维、聚类的方法从众多的特征片段中挑选出典型特征片段来代表整个安卓应用执行时的负载特征。   关键词:安卓应用;微架构无关特征;降维;聚类;典型特征片段   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)14-0214-03   当前,对移动智能设备硬件性能的评估已成为业界以及用户所关注的重点。为了得到有意义、可量化比较的性能评估结果,首先必须确定量化的标准,即需要选择合适的测试程序对硬件性能进行评估。当前学界对传统桌面应用程序的研究已经较为完善,但针对移动智能终端交互式应用的研究较为不足。传统的面向通用处理性能的测试集,如针对计算机系统的SPEC测试集以及针对嵌入式系统的MiBench[1]、MediaBench[2]测试集等,在程序的功能以及规模等方面都与移动智能设备应用存在着较大的不同[3]。面向安卓应用还没有像SPEC一样权威的测试集。因此,所在课题组提出了如图1所示的构造测试集的过程:   即首先通过对安卓应用进行负载特征分析,提取典型特征片段,然后进行合成,最终构造面向安卓应用的测试集。本文的主要工作在于负载特征分析以及典型特征片段提取。   安卓应用的执行行为主要由2方面的特征可以描述,其一是与具体运行的处理器微架构相关的特征,比如cache缺失率、分支预测错误率、TLB缺失率等;其二是与处理器微架构无关的特征,比如指令混合比、寄存器传输、指令/数据局部性、分支行为以及程序内在的指令级并行度等。使用微架构相关负载特性来比较程序极有可能产生误导,因为在特定微架构上得到的负载特性并不一定等同于在其他微架构上得到的负载特性。微架构无关特征是程序的内在特征,与具体的处理器实现之间没有必然联系。因此,本文基于微架构无关负载特征对安卓应用进行典型特征片段的提取。   1 微架构无关负载特征   当前所提出的微架构无关负载特征几乎覆盖了安卓应用的所有程序行为特征,主要包括指令混合比、关键路径长度、寄存器传输、指令的空间局部性/时间局部性、数据的空间局部性/时间局部性、分支行为、串行指令分布7大类,总计227个微架构无关特征维度。各特征维度的具体含义如下:   1.1指令混合比   指令混合比表示特定类型的动态执行指令占全部动态执行指令的比例,基于ARM指令集架构特点,本文考虑了六类指令包括寄存器载入指令、寄存器存储指令、分支指令、整数指令、浮点指令以及串行指令。   1.2关键路径长度   关键路径是指指令窗口中最长的依赖关系链,也就是指令窗口中动态指令流的源寄存器和目的寄存器之间的依赖关系。   1.3寄存器传输   本文使用三类参数反映寄存器传输相关特性,包括平均寄存器读取数、平均寄存器赋值数、寄存器依赖距离分布,其中依赖距离定义为寄存器赋值操作与读取该寄存器操作之间的指令数。   1.4指令的空间局部性及时间局部性   指令的空间局部性定义为上一条指令地址与当前指令地址的差值,指令的时间局部性定义为两次获取相同指令地址之间的指令数。   1.5数据的空间局部性及时间局部性   数据的空间局部性分为全局数据跨度和局部数据跨度。全局数据跨度是指相邻的两次访存操作中,访存地址的距离;局部数据跨度是指由同一条指令发起的两次访存操作中访存地址的距离。由于ARM指令中的访存指令分为Load、Store两大类,因此空间局部性又分为Load指令、Store指令这两类来进行统计。   数据的时间局部性定义为两次访问相同存储地址之间的访存指令数。类似与数据的空间局部性,数据的时间局部性同样分为全局数据跨度和局部数据跨度。同时,存储器操作分为存储器读操作和存储器写操作,因此同样需要分为Load指令和Store指令来统计数据的时间局部性。   1.6 分支行为   本文使用基本块大小、分支跳转方向、分支跳转比例、分支跳转地址跨度、以及分支跳转变化率来描述分支行为的负载特征。基本块大小指的是动态指令流中连续两次条件分支指令之间的指令数。分支跳转方向有两种,分为前向分支跳转和后向分支跳转。分支跳转比例指的是程序动态指令流中分支发生跳

文档评论(0)

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

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

1亿VIP精品文档

相关文档