指令Cache优化中代码重排技术的研究与实现

指令Cache优化中代码重排技术的研究与实现

论文摘要

随着计算机体系结构的发展,特别是现代多流出体系结构的出现,处理器对指令读取的要求越来越高。因此,如何提高指令Cache的性能,最大限度地发挥处理器性能成了人们所关心的一个焦点。 代码重排是一种通过软件实现的改变代码的排列次序的方法,它将彼此之间控制转移比较频繁的代码放置在一起,从而提高指令Cache的命中率,是指令Cache优化的一种常用的方法。本文主要研究了代码重排的相关技术,取得了以下一些成果: 1、探讨了代码重排技术中重排信息获取的两种方式,即基于程序profile的技术和基于程序分支预测的技术,并对每一种技术的基本思想与主要算法进行了分析和研究。 2、从过程重排和基本块重排以及过程分裂三个方面对当前的重排算法进行了剖析,比较了各种算法的特点。 3、分析了GCC中代码重排的实现方法,指出了其存在的不足。 4、根据GCC4.1的框架特点提出了在语法树级实现过程重排的方案。该方案使用静态分支预测的方法获取过程调用图的频率信息,并采用PH算法在文件内部对过程进行重排,试验结果表明该方案取得了一定的优化效果。

论文目录

  • 图目录
  • 表目录
  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 课题研究背景
  • 1.1.1 处理器与存储器的性能差异
  • 1.1.2 层次存储系统
  • 1.1.3 指令cache优化
  • 1.2 代码重排技术
  • 1.2.1 代码重排的概念
  • 1.2.2 代码重排对程序的影响
  • 1.2.3 代码重排技术的研究现状
  • 1.3 本文的主要工作
  • 1.3.1 代码重排技术的研究
  • 1.3.2 GCC编译器中代码重排的分析
  • 1.3.3 基于 GCC的过程重排的实现
  • 1.4 论文的结构
  • 第二章 基本概念与关键技术研究
  • 2.1 过程调用图和程序控制流程图
  • 2.1.1 过程调用图
  • 2.1.2 程序控制流图
  • 2.2 代码重排信息的获取
  • 2.2.1 基于静态分支预测的重排信息
  • 2.2.2 基于程序插桩的profile重排信息
  • 2.3 过程重排
  • 2.4 基本块重排
  • 2.5 过程分裂
  • 第三章 GCC中代码重排技术分析
  • 3.1 GCC编译器的简介
  • 3.2 GCC控制流程图相关的数据结构
  • 3.3 基于程序插桩的profile重排信息
  • 3.4 基于静态分支预测的重排信息
  • 3.5 GCC中的代码重排技术
  • 3.5.1 基本块重排
  • 3.5.2 过程分裂
  • 3.6 GCC中代码重排的评价
  • 第四章 基于 GCC的过程重排优化的实现
  • 4.1 过程重排框架
  • 4.1.1 过程重排的时机的选择
  • 4.1.2 过程重排的频率信息获取的方式
  • 4.1.3 过程重排算法的选择
  • 4.2 过程调用图的相关数据结构
  • 4.3 过程调用频率的静态预测
  • 4.3.1 调用图频率预测的算法
  • 4.3.2 调用图频率预测的实现
  • 4.4 过程重排的算法
  • 4.5 过程重排的实现
  • 4.5.1 相关数据结构
  • 4.5.2 算法实现
  • 4.6 试验结果与分析
  • 第五章 结束语
  • 5.1 工作总结
  • 5.2 研究展望
  • 致谢
  • 攻读硕士期间发表的论文
  • 攻读硕士期间参加的科研项目
  • 参考文献
  • 相关论文文献

    • [1].面向替换延迟隐藏的Cache空间预约技术[J]. 航空计算技术 2020(03)
    • [2].IO dependent SSD cache allocation for elastic Hadoop applications[J]. Science China(Information Sciences) 2018(05)
    • [3].基于预取的Cache替换策略[J]. 微电子学与计算机 2017(01)
    • [4].位置信息与替换概率相结合的多核共享Cache管理机制[J]. 国防科技大学学报 2016(05)
    • [5].多核中Cache一致性延迟分析[J]. 信息通信 2016(03)
    • [6].一种Cache一致性优化策略[J]. 信息系统工程 2016(04)
    • [7].一种自适应的cache驱逐策略[J]. 信息通信 2016(05)
    • [8].基于抽象解释技术的Cache分析方法[J]. 中小企业管理与科技(中旬刊) 2015(03)
    • [9].基于抽象解释技术的多层Cache分析的设计与实现[J]. 计算机光盘软件与应用 2014(24)
    • [10].Multi-bit soft error tolerable L1 data cache based on characteristic of data value[J]. Journal of Central South University 2015(05)
    • [11].一种嵌入式系统的滑动Cache机制设计[J]. 单片机与嵌入式系统应用 2015(03)
    • [12].处理器中非阻塞cache技术的研究[J]. 电子设计工程 2015(19)
    • [13].Kaminsky Bug:DNSSEC的机遇?[J]. 中国教育网络 2009(Z1)
    • [14].多核处理器Cache一致性的改进[J]. 西安邮电大学学报 2015(02)
    • [15].嵌入式系统中低功耗动态可重构Cache的研究[J]. 电子技术与软件工程 2015(09)
    • [16].Cache动态插入策略模型研究[J]. 计算机工程与科学 2013(10)
    • [17].多核处理器可重构Cache功耗计算方法的研究[J]. 计算机科学 2014(S1)
    • [18].嵌入式应用环境下Cache性能[J]. 信息与电脑(理论版) 2013(12)
    • [19].基于分布式合作cache的私有cache划分方法[J]. 计算机应用研究 2012(01)
    • [20].基于区间模型的一级指令Cache缺失损失分析[J]. 计算机工程 2012(07)
    • [21].多核系统中共享Cache的冒泡替换算法[J]. 微电子学与计算机 2011(04)
    • [22].浅析Cache命中率与块的大小之间的关系[J]. 价值工程 2011(32)
    • [23].嵌入式编程需注意的Cache机制[J]. 单片机与嵌入式系统应用 2010(04)
    • [24].多核处理器面向低功耗的共享Cache划分方案[J]. 计算机工程与科学 2010(10)
    • [25].面向多核的共享多通道Cache体系及原型构建[J]. 哈尔滨工业大学学报 2010(11)
    • [26].Cache结构的低功耗可重构技术研究[J]. 单片机与嵌入式系统应用 2009(01)
    • [27].一种低功耗动态可重构cache方案[J]. 计算机应用 2009(05)
    • [28].透过专利看微处理器的技术发展(六)——Cache专利技术的发展历程[J]. 中国集成电路 2009(06)
    • [29].混合Cache的低功耗设计方案[J]. 计算机工程与应用 2009(20)
    • [30].一种面向多核处理器粗粒度的应用级Cache划分方法[J]. 计算机工程与科学 2009(S1)

    标签:;  ;  ;  ;  

    指令Cache优化中代码重排技术的研究与实现
    下载Doc文档

    猜你喜欢