基于编译的寄存器分配性能与功耗优化策略

基于编译的寄存器分配性能与功耗优化策略

论文摘要

近年来,处理器的功耗不但严重阻碍微处理器性能的提高和处理器设计的发展,而且限制了移动处理设备的使用时间。同时,随着计算机的普及,计算机消耗的电能也越来越巨大。因此,低功耗研究已成为近来受到热切关注的领域。人们在硬件和软件设计中的不同层次致力于在影响性能很小的前提下降低功耗。从软件方面降低系统的功耗可以很好地弥补仅从硬件方面降低功耗的不足,使用编译器动态调整硬件的执行可以很好地达到降低功耗的目的,例如编译指导的动态电压缩放(Dynamic Voltage Scaling)和功能部件关闭(Turning Off unused System Unit)。同时,现代体系结构一些原有的编译优化技术如寄存器分配优化等,在优化性能时减少执行的指令数,从而间接达到降低功耗的目的。例如在Itanium中,对栈寄存器分配的优化,可以减少RSE(Register Stack Engine)的溢出和填入操作,从而减少了处理器的等待时间,同时,降低了指令执行带来的功耗。从编译器的角度实现低功耗优化需要在性能改进、功耗降低和编译代价之间进行折衷,采用合理的方案实现低功耗优化的目的。本文首先概述了现代编译器中的编译优化技术以及低功耗编译的方向,具体分析了面向指令级优化的编译器IMPACT和TRIMARAN,分析了其中的组成模块,并深入了解其中的寄存器分配机制。然后,详细阐明了寄存器分配策略的演化历程,通过分析和比较基于图着色法的各种改进方案,从实现最优分配的角度,在Chow和Hennessy的寄存器分配方案的基础上提出一种基于直接优先级的寄存器分配策略,更直接、更具体地根据溢出活跃范围段的优先级决定切分。通过在IMPACT上的实现和模拟,在一部分程序上实现了性能的改进,在其它程序上性能的下降,暴露了选择切分范围算法的复杂性,有待改进。本文最后概述了Itanium中的栈寄存器和RSE机制,并详细分析和比较现存的栈寄存器分配优化方案。本文提出一种基于延迟分配的栈寄存器分配策略,为了减少额外代价,采用粗粒度的栈帧调整策略,在调用点处使用alloc指令调整调用者的栈帧大小,并为被调用过程分配部分栈帧,在调用点处从调用者和被调用者两个角度尽量缩减各自的栈帧,从而减少栈帧的溢出。在这种分配架构中,可以同时加入辅助性的寄存器分配优化机制,为活跃范围长的数据尽量分配小索引号的栈寄存器,从而尽量得到紧凑的栈帧架构,以利于栈帧的调整。

论文目录

  • 图目录
  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 课题背景
  • 1.1.1 引发功耗问题
  • 1.1.2 低功耗设计的层次
  • 1.2 课题主要内容
  • 1.3 本文结构
  • 第二章 编译层次的低功耗优化技术
  • 2.1 编译的基本思想和流程
  • 2.1.1 编译器的基本思想和核心技术
  • 2.1.2 编译的基本流程
  • 2.2 现代编译器中代码优化的先进技术
  • 2.3 低功耗编译技术概述
  • 2.4 小结
  • 第三章 面向现代体系结构的编译框架
  • 3.1 IMPACT 编译架构
  • 3.1.1 IMPACT 编译框架概述
  • 3.1.2 IMPACT 编译框架的中间表示语言
  • 3.1.3 IMPACT 的模拟环境
  • 3.2 TRIMARAN 编译架构
  • 3.2.1 TRIMARAN 编译架构概述
  • 3.2.2 TRIMARAN 组成模块
  • 3.3 小结
  • 第四章 寄存器分配策略及其改进方案
  • 4.1 寄存器分配策略
  • 4.1.1 线性扫描寄存器分配策略
  • 4.1.2 图着色法寄存器分配策略
  • 4.2 基于区域的编译技术
  • 4.2.1 基于区域编译思想的引入
  • 4.2.2 区域构造
  • 4.2.3 基于区域的寄存器分配方案
  • 4.3 基于直接优先级的寄存器分配策略
  • 4.4 实现与验证
  • 4.5 小结
  • 第五章 Itanium 中栈寄存器分配策略的研究和改进
  • 5.1 Itanium 中的栈寄存器分配机制
  • 5.2 栈寄存器分配机制的相关研究
  • 5.3 基于延迟分配的寄存器栈优化策略
  • 5.4 小结
  • 第六章 结束语
  • 6.1 全文工作总结
  • 6.2 工作展望
  • 致谢
  • 攻读硕士期间发表的论文
  • 参考文献
  • 相关论文文献

    • [1].二进制翻译中动静结合的寄存器分配优化方法[J]. 计算机研究与发展 2019(04)
    • [2].一种局部寄存器分配的优化策略[J]. 计算机应用与软件 2013(12)
    • [3].基于寄存器簇恢复的追踪信号选择方法[J]. 计算机学报 2018(10)
    • [4].基于优先级动态二进制翻译寄存器分配算法[J]. 浙江大学学报(工学版) 2016(07)
    • [5].降低寄存器软错误的静态寄存器重分配方法[J]. 计算机应用 2014(09)
    • [6].一种基于动态迁移技术的寄存器保护方法[J]. 计算机工程 2010(17)
    • [7].基于脉冲寄存器的高性能低功耗电路设计实现[J]. 微电子学与计算机 2009(06)
    • [8].结合的指令调度与寄存器分配技术[J]. 计算机应用研究 2008(04)
    • [9].用于安全集成电路的三相单轨脉冲寄存器[J]. 华中科技大学学报(自然科学版) 2020(04)
    • [10].数字信号处理器分布式寄存器的写回设计[J]. 微电子学与计算机 2013(07)
    • [11].适用于多核处理器的扩展寄存器文件设计[J]. 计算机工程 2012(15)
    • [12].基于寄存器窗口互相重叠的多核间数据交换方法[J]. 中国集成电路 2012(08)
    • [13].基于数据流分析的寄存器参数恢复方法[J]. 计算机工程 2009(22)
    • [14].C程序映射到FPGA的寄存器快速评估技术[J]. 小型微型计算机系统 2015(02)
    • [15].一种低功耗的多端口寄存器文件结构设计[J]. 中南大学学报(自然科学版) 2015(08)
    • [16].基于冗余寄存器分类的时序网络面积优化算法[J]. 微电子学与计算机 2012(07)
    • [17].一种应用加权相容图的可测性寄存器分配算法[J]. 小型微型计算机系统 2008(05)
    • [18].一种抗能量分析攻击的复合寄存器系统[J]. 密码学报 2014(05)
    • [19].基于映射表的寄存器文件设计以及编译器优化[J]. 电子学报 2008(02)
    • [20].基于网的寄存器分配冲突图研究[J]. 计算机工程 2010(11)
    • [21].寄存器插入环带宽性能及公平策略分析[J]. 计算机应用与软件 2010(10)
    • [22].一种寄存器压力敏感的指令投机调度技术[J]. 计算机研究与发展 2009(03)
    • [23].轻量级现场纠正的错误消除寄存器设计[J]. 浙江大学学报(工学版) 2017(03)
    • [24].一种基于分区域优先级的寄存器分配算法[J]. 电子与信息学报 2013(12)
    • [25].一种可重构线性反馈移位寄存器设计[J]. 通信技术 2010(08)
    • [26].元数据展开的动态二进制翻译寄存器化优化[J]. 小型微型计算机系统 2008(10)
    • [27].PLC保存型寄存器数量不足问题的探讨[J]. 电子测试 2018(07)
    • [28].增强型虚拟寄存器轮转算法[J]. 网络与信息安全学报 2018(05)
    • [29].高速5端口寄存器文件的设计与实现[J]. 微电子学与计算机 2009(01)
    • [30].基于三层防护的CAN寄存器翻转恢复方法[J]. 国外电子测量技术 2016(12)

    标签:;  ;  ;  ;  ;  

    基于编译的寄存器分配性能与功耗优化策略
    下载Doc文档

    猜你喜欢