学位论文 > 优秀研究生学位论文题录展示
基于EPIC体系结构的软件流水技术研究
作 者: 林海波
导 师: 汤志忠
学 校: 清华大学
专 业: 计算机系统结构
关键词: EPIC IA-64 指令级并行 软件流水 循环展开 寄存器分配
分类号: TP311.52
类 型: 博士论文
年 份: 2003年
下 载: 223次
引 用: 1次
阅 读: 论文下载
内容摘要
EPIC是一种显性并行指令计算体系结构,主要思想是利用编译器和处理器的协同能力来提高指令级并行度。软件流水是开发循环程序指令级并行性的重要编译优化技术。虽然已经在软件流水方面进行了很多的研究工作,但是对于新的体系结构还有许多问题没有得到圆满的解决。本文结合EPIC体系结构特性,对软件流水技术中的循环展开、寄存器分配、开销模型和决策框架等领域进行了研究,并将其中一些成果应于一个开放源码的编译器,取得了比较好的效果。本文的主要贡献包括以下几个方面:(1) 提出了一种寄存器敏感的循环展开因子(RSU)算法。该方法通过寄存器压力的分析,重新计算循环展开因子,避免了过度展开而导致的寄存器压力过大问题,从而尽可能地保证软件流水的顺利进行;(2) 提出了一种堆栈寄存器分配(SRA)算法。该方法将空闲的堆栈寄存器分配给需要静态寄存器的变量,用软件的方法实现了寄存器功能的动态划分,提高了寄存器的利用率,解决了静态通用寄存器不足引起的软件流水失败问题;(3) 提出了面向程序特性的软件流水开销模型。软件流水的性能会受到计算机体系结构、编译算法和程序特性的限制,该模型提出了软件流水是一种有损策略的新观点,并在确定体系结构和编译算法的条件下对软件流水的开销进行了量化分析;(4) 提出了一种基于相关性分析的软件流水开销测试(DBCT)算法以及软件流水的决策框架。该方法根据循环的相关关系特性对软件流水带来的性能潜力进行估计,从而为编译器进行软件流水决策提供支持;(5) 在开放源码的编译器原型ORC上实现了上述算法并对其软件流水部分进行了改进,这些改进已经发布在最新的版本ORC 2.0中。
|
全文目录
中文摘要 4-5 ABSTRACT(英文摘要) 5-6 目录 6-10 第一章 引言 10-27 1.1 关于EPIC 10-16 1.1.1 EPIC的历史 11-12 1.1.2 IA-64:一种EPIC体系结构 12-16 1.1.3 其他的64位微处理器 16 1.2 关于软件流水 16-23 1.2.1 指令调度算法 17-21 1.2.2 寄存器分配 21-23 1.3 关于本文 23-27 1.3.1 研究与不研究什么 23-24 1.3.2 全文组织 24-25 1.3.3 本文的创新及主要贡献 25-27 第二章 循环展开与软件流水 27-47 2.1 概述 27-29 2.2 原理及比较 29-34 2.2.1 循环展开的原理 29-30 2.2.2 循环展开的优缺点 30-31 2.2.3 软件流水的原理 31-32 2.2.4 软件流水的优缺点 32-33 2.2.5 循环展开与软件流水的区别与联系 33-34 2.3 软件流水中的循环展开 34-36 2.3.1 资源利用率 34-35 2.3.2 相关性限制 35 2.3.3 代码量 35-36 2.3.4 算法描述 36 2.4 寄存器敏感的循环展开因子算法RSU 36-41 2.4.1 寄存器需求分析 36-38 2.4.2 算法描述 38-41 2.5 实验结果与分析 41-45 2.5.1 实验环境 41-43 2.5.2 软件流水失败 43-44 2.5.3 RSU算法的性能评价 44-45 2.6 本章小结 45-47 第三章 软件流水的寄存器分配 47-73 3.1 概述 47-49 3.2 IA-64体系结构的寄存器组织 49-52 3.2.1 通用寄存器 50-51 3.2.2 浮点寄存器 51 3.2.3 条件位寄存器 51 3.2.4 应用寄存器和其他 51-52 3.3 循环变量的寄存器分配 52-60 3.3.1 变量生存期 52-55 3.3.2 寄存器需求的上下界 55-56 3.3.3 寄存器分配算法 56-60 3.4 软件流水的寄存器需求分析 60-64 3.4.1 通用寄存器 60-62 3.4.2 浮点寄存器 62 3.4.3 条件位寄存器 62-64 3.5 堆栈寄存器分配算法SRA 64-68 3.5.1 alloc指令 65-66 3.5.2 通用寄存器分配模型 66-67 3.5.3 算法描述 67-68 3.6 实验结果与分析 68-72 3.6.1 实验环境 68-69 3.6.2 SRA算法的性能评价 69-72 3.7 本章小结 72-73 第四章 软件流水的开销模型和决策框架 73-95 4.1 概述 73-74 4.2 软件流水的开销模型 74-83 4.2.1 软件流水的性能评价 75-77 4.2.2 面向程序特性的软件流水开销模型 77-78 4.2.3 软件流水的开销分析 78-83 4.3 基于相关性分析的软件流水开销测试算法DBCT 83-85 4.3.1 基本思想 83-84 4.3.2 算法描述 84-85 4.4 软件流水的决策框架 85-87 4.5 实验结果与分析 87-93 4.5.1 实验环境 88-89 4.5.2 软件流水的开销 89-91 4.5.3 DBCT算法的性能 91-93 4.6 本章小结 93-95 第五章 编译器原型ORC 95-115 5.1 概述 95-96 5.2 ORC简介 96-102 5.2.1 ORC的历史回顾和版本演进 97-99 5.2.2 ORC的软件体系结构 99-100 5.2.3 ORC应用的编译优化技术 100-102 5.3 ORC的软件流水实现 102-104 5.4 ORC的性能评价 104-111 5.4.1 测试环境 104-106 5.4.2 目标程序的执行时间 106-107 5.4.3 编译时间 107-108 5.4.4 代码量 108-110 5.4.5 采样分析 110-111 5.5 对ORC的几点改进 111-114 5.5.1 增强的数据相关性分析 111-112 5.5.2 基于统计的软件流水决策 112-113 5.5.3 最小启动间距MII的维护 113-114 5.6 本章小结 114-115 结论 115-117 参考文献 117-127 致谢及声明 127-128 附录术语对照表 128-131 个人简历、在学期间的研究成果及发表的学术论文 131-132
|
相似论文
- 基于可重构平台的软硬件代码划分技术研究,TP332
- IA-64 Linux平台上的ELF文件加壳技术研究,TP311.52
- 基于小波变换微弱信号检测技术研究及DSP实现,TN911.23
- 黄土高原半湿润偏旱区旱作苹果园地水分生产力与土壤干燥化效应模拟研究,S714
- 黄土高原半湿润区旱作苹果园地水分生产力模拟研究,S661.1
- Glibc库在龙芯2F上的优化,TP316.81
- H.264帧间编码算法研究与DSP移植,TN919.81
- 基于IEEE802.11a的调制系统的实现及DSP程序优化,TN925.93
- YHFT-DSP编译关键技术分析及实现,TP314
- 动态二进制翻译中基于中间代码的优化研究,TP391.2
- YHFT DX+DSP中分支和循环处理优化技术的研究与设计,TP368.12
- 并行计算的常用模型特征及其程序设计方法研究,TP338.6
- 面向TTA架构处理器的编译器技术的研究与实现,TP332
- 基于ASIP的参数可选RISC结构汇编器以及VLIW结构汇编器设计,TP332
- 嵌入式车牌定位与分割系统的设计与实现,TP391.41
- 软件协同组装流水线研究与实现,TP311.52
- 传输触发体系结构处理器的软件流水,TP332
- 基于SPM的寄存器抛出能耗优化研究,TN402
- ATLAS在龙芯2F上的访存优化,TP332
- 分组密码ASIP关键技术研究及实现,TN918.2
- 基于SAGE的分布式高性能优化设计平台,TP311.52
中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 软件工程 > 软件开发
© 2012 www.xueweilunwen.com
|