摘要 | 第1-12页 |
ABSTRACT | 第12-13页 |
第一章 引言 | 第13-15页 |
1.1 课题背景及研究内容 | 第13-14页 |
1.2 本文贡献 | 第14页 |
1.3 论文结构 | 第14-15页 |
第二章 VLIW DSP的体系结构 | 第15-19页 |
2.1 CPU的数据通路 | 第15-16页 |
2.1.1 通用寄存器文件 | 第15-16页 |
2.1.2 功能单元 | 第16页 |
2.1.3 交叉通路 | 第16页 |
2.1.4 存储访问通路 | 第16页 |
2.1.5 资源约束小结 | 第16页 |
2.2 流水线和指令延迟 | 第16-18页 |
2.2.1 中断带来的影响 | 第18页 |
2.3 取指包和执行包 | 第18页 |
2.4 条件执行 | 第18-19页 |
第三章 VLIW DSP汇编器 | 第19-38页 |
3.1 COFF目标文件 | 第19-20页 |
3.1.1 段 | 第19页 |
3.1.2 段的处理 | 第19-20页 |
3.1.3 重定位 | 第20页 |
3.1.4 外部符号 | 第20页 |
3.2 汇编语言介绍 | 第20-21页 |
3.2.1 汇编命令 | 第20-21页 |
3.3 汇编器结构设计 | 第21-22页 |
3.3.1 VLIWDSP汇编器的结构 | 第21-22页 |
3.4 语句的内部表示 | 第22-25页 |
3.4.1 语句 | 第23页 |
3.4.2 汇编命令 | 第23页 |
3.4.3 执行包和指令 | 第23-24页 |
3.4.4 操作数和表达式 | 第24-25页 |
3.5 词法和语法分析器 | 第25-27页 |
3.5.1 词法分析器 | 第25-26页 |
3.5.2 语法分析器 | 第26-27页 |
3.6 段表和符号表 | 第27-28页 |
3.7 指令汇编 | 第28-36页 |
3.7.1 机器指令格式 | 第28-30页 |
3.7.2 寄存器和功能单元的表示 | 第30-31页 |
3.7.3 操作数类型的表示 | 第31-32页 |
3.7.4 指令格式的表示 | 第32-35页 |
3.7.5 编码函数的实现 | 第35-36页 |
3.8 取指包的合成 | 第36页 |
3.9 重定位的表示 | 第36页 |
3.10 COFF目标文件 | 第36-38页 |
第四章 IMPACTC编译器 | 第38-45页 |
4.1 前端 | 第38-40页 |
4.1.1 Pcode生成 | 第38-40页 |
4.1.2 Pcode剖析(profiling) | 第40页 |
4.1.3 内嵌扩展(inline expansion) | 第40页 |
4.1.4 过程间分析(interprocedural analysis) | 第40页 |
4.1.5 Pcode至 Lcode的转换 | 第40页 |
4.2 后端 | 第40-42页 |
4.2.1 Lcode的结构 | 第41页 |
4.2.2 Lcede的传统优化 | 第41-42页 |
4.2.3 Hyperblock和superblock形成 | 第42页 |
4.2.4 Superscalar优化 | 第42页 |
4.2.5 代码生成 | 第42页 |
4.3 IMPACT的定制 | 第42-45页 |
4.3.1 机器规格说明 | 第42-43页 |
4.3.2 机器描述 | 第43-45页 |
第五章 VLIW DSP的机器规格说明和机器描述 | 第45-50页 |
5.1 机器规格说明 | 第45-47页 |
1.1 函数参数传递 | 第45-46页 |
1.2 运行栈的组织 | 第46-47页 |
5.2 机器描述 | 第47-50页 |
5.2.1 格式信息 | 第47-48页 |
5.2.2 资源使用信息 | 第48页 |
5.2.3 延迟信息 | 第48页 |
5.2.4 操作信息 | 第48-50页 |
第六章 VLIW DSP代码生成器 | 第50-55页 |
6.1 概述 | 第50-51页 |
6.2 代码注释 | 第51-53页 |
6.2.1 注释策略 | 第51-52页 |
6.2.2 JSR的注释 | 第52-53页 |
6.3 调度的几个问题 | 第53-55页 |
6.3.1 依赖边延迟的计算 | 第53-54页 |
6.3.2 Nops操作的加入 | 第54-55页 |
第七章 簇分配与调度 | 第55-81页 |
7.1 概述 | 第55-56页 |
7.2 相关研究 | 第56-62页 |
7.2.1 基于 DAG的簇分配算法 | 第56-60页 |
7.2.2 基于RCG的簇分配算法 | 第60-62页 |
7.3 UAS算法 | 第62-63页 |
7.4 IMPACT调度器 | 第63-66页 |
7.4.1 寄存器活动表 | 第64页 |
7.4.2 List调度算法 | 第64-66页 |
7.4.3 分簇机器的考虑 | 第66页 |
7.5 VLIW DSP簇分配与调度的实现 | 第66-73页 |
7.5.1 UAS算法与 VLIW DSP代码生成器 | 第66-67页 |
7.5.2 簇分配与调度算法的实现 | 第67-72页 |
7.5.3 load、store操作的特殊处理 | 第72页 |
7.5.4 跳转操作延迟的隐藏 | 第72-73页 |
7.6 实验分析 | 第73-81页 |
7.6.1 实验方法 | 第73-76页 |
7.6.2 实验结果 | 第76-81页 |
第八章 结束语 | 第81-82页 |
致谢 | 第82-83页 |
附录 攻读硕士期间发表的论文 | 第83-84页 |
参考文献 | 第84-87页 |