首页> 中文学位 >VLIW体系的多簇DSP分簇算法的研究和复数运算的优化
【6h】

VLIW体系的多簇DSP分簇算法的研究和复数运算的优化

代理获取

目录

声明

摘要

第1章 绪论

1.1 研究背景

1.1.1 多簇VLIW DSP介绍

1.1.2 多簇VLIW DSP对编译器的要求

1.2 研究意义

1.3 本文研究内容

1.4 论文组织

第2章 BWDSP编译器的设计与结构

2.1 引言

2.2 BWDSP与open64概述

2.2.1 BWDSP介绍

2.2.2 Open64编译器

2.3 BWDSP编译器机器描述

2.3.1 BWDSP机器描述介绍

2.3.2 BWDSP编译器机器描述的实现

2.4 与机器无关优化

2.4.1 过程间分析优化

2.4.2 全局标量优化

2.4.3 嵌套循环优化

2.5 与机器相关优化

2.5.1 代码生成器结构

2.5.2 指令注释

2.5.3 控制流优化和if转换

2.5.4 软件流水

2.5.5 指令分簇

2.5.6 指令调度

2.5.7 寄存嚣分配

2.6 本章小结

第3章 基于SSA数据流图的分簇算法

3.1 引言

3.2 已有的工作

3.2.1 BUG算法

3.2.2 基于寄存器压力的分簇算法

3.3 基于SSA数据流图的分簇算法

3.3.1 静态单赋值

3.3.2 算法思想概述

3.3.3 构建SSA数据流图

3.3.4 簇上资源得分

3.3.5 簇间传输得分

3.3.6 分簇策略

3.3.7 实验结果和性能分析

3.4 本章小结

第4章 多簇超长指令字复数运算的优化

4.1 引言

4.2 复数指令机器描述

4.2.1 指令信息

4.2.2 调度信息

4.2.3 格式信息

4.3 复数指令的识别与生成

4.3.1 概述

4.3.2 复数指令编译指示

4.3.3 LD/ST指令的调度

4.3.4 复数运算操作的识别

4.3.5 指令合成

4.4 复数操作的分簇与寄存器分配

4.4.1 分簇

4.2.2 寄存器分配

4.5 实验分析与性能测试

4.6 本章小结

第5章 总结

5.1 本文工作

5.2 本文贡献与创新之处

5.3 进一步工作

参考文献

附录1 插图索引

附录2 表格索引

致谢

在读期间发表的学术论文

攻读学位期间参加的科研项目

展开▼

摘要

现代数字信号处理器(DSP)一般采取超长指令字或是超标量来实现指令级并行。超长指令字(VLIW)数字信号处理器将并行任务的识别和调度交给了编译器,因此在利用VLIW DSP的时候需要有一个功能更为强大的编译器。编译器代替硬件去进行指令调度的工作。
  BWDSP是中国电子集团某研究所自主研发的一款高性能数字信号处理器,它采用的是多簇结构的超长指令字架构。为了能利用C语言为BWDSP开发应用,我们将Open64编译基础设施移植到BWDSP上。并针对特定的架构和指令集,为BWDSP编译器做了优化。
  由于BWDSP采用的是多簇的结构,因此为了使得BWDSP编译器能充分利用处理器自身提供的资源,需要设计一个分簇算法。这个分簇算法能合理的将各个指令分配到相应的簇上面执行。由于多簇架构中,各个簇上的执行单元只能访问自身簇上的寄存器,因此如果一条指令需要利用到其他簇上指令的结果就必须利用簇间传输指令。分簇算法就需要解决并行度和簇间传输的平衡。本文提出基于SSA(静态单赋值,Static Single Assignment)数据流图的分簇算法。算法首先为基本块构建静态单赋值形式的数据流图,并自底向上遍历数据流图来计算各条指令分到某个簇上的资源得分和簇间传输的得分,通过比较这两者的得分并选择得分较高的簇作为该指令执行的簇。本文还通过多组实验验证了该算法编译器的编译性能确有提升。
  数字信号处理器上一类最常见的计算就是复数运算,例如FFT等都包含了大量的复数运算。而BWDSP在设计的时候就已经考虑到这一点,因此它的指令集中就包含了复数运算指令。然而Open64并没有对这类指令做进一步优化处理,因此我们需要对复数运算做进一步优化来获取更高的性能。添加复数运算的机器描述并通过编译制导来将识别复数运算之后合成复数指令。除此之外,我们还在分簇和寄存器分配模块为复数运算做了相应的修改。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号