学位论文 > 优秀研究生学位论文题录展示
基于GCC的YHFT-Matrix编译器关键技术研究与实现
作 者: 罗杰
导 师: 陈跃跃
学 校: 国防科学技术大学
专 业: 软件工程
关键词: YHFT-Matrix 编译器 指令调度 寄存器分配 地址折叠
分类号: TP314
类 型: 硕士论文
年 份: 2012年
下 载: 7次
引 用: 0次
阅 读: 论文下载
内容摘要
YHFT-Matrix是国家核高基重大专项支持的,由国防科学技术大学计算机学院微电子所开发的具有自主知识产权的高性能DSP处理器,该芯片主要应用于软基站无线通信领域。为了更好地推广YHFT-Matrix芯片,必须为其提供一套功能正确、性能优异的编译系统。由于YHFT-Matrix DSP具有创新的体系结构和独特的指令集,目前已有的编译系统无法满足其应用需求。因此必须为其研发专用的编译器。YHFT-Matrix DSP采用VLIW体系结构,而VLIW性能的发挥完全依赖于编译器对指令的静态调度,因此编译器的性能直接影响着YHFT-Matrix DSP的应用执行性能。本文基于Matrix体系结构和指令集,基于开源代码GCC,开发了YHFT-Matrix编译器;并在指令调度和寄存器分配方面基于YHFT-Matrix体系结构特点提出了改进算法,在很大程度上提高了Matrix编译器的优化性能。本文的主要工作包括:1.设计和实现了YHFT-Matrix指令调度器。YHFT-Matrix DSP采用VLIW体系结构,发射宽度动态可变,没有固定的指令槽。GCC编译系统中的指令调度器调度后的指令序列无法满足YHFT-Matrix DSP硬件流水线要求。本文根据硬件特点,在GCC表调度算法的基础上,增加了指令字分割模块和功能单元指派模块,设计实现了YHFT-Matrix指令调度器。实验结果表明,经过YHFT-Matrix指令调度器调度后的指令序列满足硬件流水线要求,解决了指令间的相关性,实现了指令的并行发射,充分利用了硬件资源。2.设计和实现了YHFT-Matrix寄存器分配算法。首先分析了GCC编译器寄存器分配算法的具体实现过程,在此基础上针对YHFT-Matrix的硬件特点设计和实现了YHFT-Matrix寄存器分配算法,主要包括寄存器对匹配算法和16位指令寄存器优先分配算法。YHFT-Matrix要求地址表达式中的基址寄存器和索引寄存器相互匹配,GCC编译系统中现有的寄存器分配算法无法满足硬件要求,论文设计实现了寄存器对匹配算法,实验结果表明,使用该算法对寄存器分配的效果满足硬件要求。YHFT-Matrix具有16位指令和32位指令,为了能够在满足条件的情况下,优先匹配16位指令,论文设计实现了16位指令寄存器优先分配的算法,实验结果表明,使用该算法能够优先生成16位指令,有利于提高代码密度,节省存储空间。3.设计和实现了YHFT-Matrix地址折叠算法。YHFT-Matrix DSP计算地址表达式的方式与GCC编译器计算地址表达式的方式存在差异。本文深入分析了GCC编译系统中地址形成的过程,在GCC编译系统运行的多个阶段,通过改写地址表达式的方法,设计实现了YHFT-Matrix编译器的地址折叠算法。实验结果表明,采用YHFT-Matrix地址折叠算法的编译器能够生成正确的指令序列,其地址表达式符合硬件要求。
|
全文目录
目录 4-7 表目录 7-8 图目录 8-10 摘要 10-12 Abstract 12-14 第一章 绪论 14-18 1.1 课题研究背景与意义 14 1.2 国内外研究现状 14-16 1.3 本文主要工作 16-17 1.4 论文的组织结构 17-18 第二章 Matrix 编译器开发的关键技术分析 18-33 2.1 引言 18-19 2.2 GCC 编译系统分析 19-26 2.2.1 GCC 概述 19 2.2.2 GCC 框架分析 19-22 2.2.3 GCC 中间表达式 22-23 2.2.4 GCC 移植相关接口 23-26 2.3 Matrix 内核结构分析 26-30 2.3.1 流水线构成 27 2.3.2 寄存器资源 27-29 2.3.3 寻址模式 29-30 2.3.4 指令集特点 30 2.4 基于 GCC 开发 Matrix 编译器所面临的困难 30-33 第三章 Matrix 编译器指令调度算法的设计与实现 33-47 3.1 GCC 指令调度算法分析 33-38 3.1.1 依赖分析 34-36 3.1.2 调度区域 36 3.1.3 调度策略 36-38 3.2 表调度算法面向 Matrix 平台所存在的缺陷 38 3.3 Matrix 指令调度算法的设计与实现 38-44 3.3.1 流水线描述 39-40 3.3.2 if 转化 40-42 3.3.3 指令字分割 42-43 3.3.4 功能单元指派 43-44 3.4 实验及其结果分析 44-47 第四章 Matrix 编译器寄存器分配算法的设计与实现 47-61 4.1 GCC 寄存器分配算法分析 47-53 4.1.1 GCC 寄存器分配算法实现的各个阶段分析 47-50 4.1.2 reload 过程分析 50-53 4.2 寄存器分配算法面向 Matrix 平台所存在的缺陷 53-54 4.3 Matrix 寄存器分配算法的设计与实现 54-58 4.3.1 寄存器对匹配算法的设计与实现 54-56 4.3.2 部分寄存器优先分配策略 56-58 4.4 实验及其结果分析 58-61 第五章 基于 GCC 的 Matrix 编译器的实现 61-82 5.1 指令匹配 61-68 5.1.1 通用指令实现方式 61 5.1.2 SIMD 指令实现方式 61-65 5.1.3 复合指令的识别 65-68 5.2 栈布局设计 68-75 5.2.1 栈的作用 68 5.2.2 几种典型堆栈的布局 68-69 5.2.3 Matrix 编译器栈的布局 69-70 5.2.4 Matrix 编译器栈的具体实现 70-75 5.3 地址折叠 75-82 5.3.1 Matrix DSP 的地址计算方式 76-77 5.3.2 GCC 编译系统中地址的产生过程 77 5.3.3 Matrix 地址折叠算法的设计与实现 77-82 第六章 结束语 82-84 6.1 工作总结 82-83 6.2 工作展望 83-84 致谢 84-85 参考文献 85-88 作者在学期间取得的学术成果 88
|
相似论文
- 基于PC+运动控制卡的雕铣系统开发及铣削仿真研究,TG54
- 面向方面软件开发与编译器技术分析研究,TP311.52
- 嵌入式通信管理装置的设计与研究,TP368.1
- 基于编译技术的Petri网模型工作流系统研究,TP311.52
- 一种面向构件的编程语言原型,TP311.52
- 基于VHDL的可编程逻辑器件虚拟实验平台的设计与实现,TP311.52
- 群组密钥协商协议编译器研究,TN918.2
- 面向高性能DSP Matrix向量化编译器的设计与实现,TP314
- 粗颗粒度可重构处理器REmusII的任务编译器设计与实现,TN492
- 基于NIOSⅡ的PLC系统,TP273
- 机器人图形化编程系统的设计与实现,TP242
- 面向空间目标轨道预测的定制处理器及其编译器的关键技术研究,V556
- 可配置TTA处理器编译器的指令调度技术研究与实现,TP314
- 基于LLVM的NiosⅡ处理器后端快速移植及优化,TP368.1
- 基于案例特征库的串行程序并行化研究,TP332
- Glibc库在龙芯2F上的优化,TP316.81
- 分片式处理器上指令调度器的设计及优化,TP332.3
- YHFT-DSP编译关键技术分析及实现,TP314
- 一种监控探针描述语言及其编译器的设计与实现,TP311.52
- 动态二进制翻译中基于中间代码的优化研究,TP391.2
- LLVM编译系统结构分析及ARCA3后端移植,TP332
中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 编译程序、解释程序
© 2012 www.xueweilunwen.com
|