多核DSP的编译器及其并行编程模型的开发和研究
发布时间:2017-03-21 16:13
本文关键词:多核DSP的编译器及其并行编程模型的开发和研究,由笔耕文化传播整理发布。
【摘要】:随着语音通信技术的发展,语音信号的处理变得越来越复杂,通用的数字信号处理器(DSP,Digital Signal Processor)已经无法满足应用的需求。因此,需要设计专门的多核DSP来实现对语音信号的处理。在DSP开发过程中,利用传统的编译器框架来构建编译器存在种种工程实现方面的不便,而广泛采用的并行编程模型也无法充分利用多核计算资源。因此,编译器开发和编程模型设计已经成为了当前多核处理器研究中的关键问题。针对上述问题,本文基于自主设计的MAD(Multi-Core Audio DSP)多核平台,展开了关于MAD的编译器和并行编程模型的研究。我们基于LLVM(Low Level Virtual Machine)开源编译器框架,通过移植面向MAD架构的编译器后端实现了编译器的设计。文中详细介绍了MAD多核DSP架构,LLVM编译器框架的结构组成,LLVM重定向特性,以及LLVM后端的移植原理和步骤。并且给出了MAD后端移植的具体细节,实现了LLVM编译器对MAD后端的支持。本文提出了一种混合型编程模型,其结合了共享内存编程模型和消息传递编程模型的双重优点。并且给出了其任务调度,核间通信,任务同步操作,锁操作等具体实现细节。最后,对编译器功能以及并行编程模型的性能进行了测试,并且实现了300bps语音编解码算法的实时通信。编译器测试主要是通过自动生成的测试文件进行功能性测试,实验结果表明所开发的编译器可以很好地支持MAD指令集;并行编程模型测试是通过Livermore loops程序测试集进行性能方面的测试,实验结果表明测试程序利用该编程模型可以获得较高的加速比;利用开发的编译器和并行编程模型,对300bps低码率语音编解码算法进行了多核并行优化,在MAD平台上实现了实时通信,并且与在TI C5535 DSP上的运行结果进行了对比。实验结果显示编译器和编程模型能有效地对实际应用实现并行加速,以满足性能需求。
【关键词】:多核 MAD DSP LLVM 编译器 后端移植 并行编程模型 混合型 Livermore loops 测试
【学位授予单位】:上海交通大学
【学位级别】:硕士
【学位授予年份】:2015
【分类号】:TP314
【目录】:
- 摘要3-5
- ABSTRACT5-12
- 第一章 绪论12-19
- 1.1 课题研究背景及其现状12-17
- 1.1.1 编译器开发研究背景及其现状12-14
- 1.1.2 多核并行编程模型研究背景以及其现状14-17
- 1.2 课题研究目标及其主要内容17
- 1.3 论文结构17-19
- 第二章 MAD体系架构介绍19-26
- 2.1 多核系统体系架构介绍19-20
- 2.1.1 内存组织19-20
- 2.1.2 核间通信20
- 2.2 单核系统体系架构介绍20-25
- 2.2.1 数据类型和对齐方式21
- 2.2.2 寄存器介绍21-23
- 2.2.3 指令集介绍23-25
- 2.3 本章小结25-26
- 第三章 LLVM编译器系统及后端移植机制介绍26-45
- 3.1 LLVM与GCC编译器系统比较26-27
- 3.2 LLVM编译器系统结构组成27-29
- 3.3 LLVM可重定向机制的支持29-32
- 3.3.1 代码生成器29-30
- 3.3.2 后端移植接口支持30-31
- 3.3.3 TableGen31-32
- 3.3.4 工具集32
- 3.4 LLVM后端移植原理32-36
- 3.4.1 后端代码生成流程32-34
- 3.4.2 数据结构及其相关操作接口34-36
- 3.5 LLVM后端移植主要功能模块的实现方法36-44
- 3.5.1 目标机器结构描述36-37
- 3.5.2 寄存器描述37-39
- 3.5.3 指令集描述39-41
- 3.5.4 指令选择41-43
- 3.5.5 帧栈描述43-44
- 3.5.6 汇编打印器44
- 3.6 本章小结44-45
- 第四章 多核DSP编译器后端实现45-59
- 4.1 MAD编译器后端的添加45-46
- 4.1.1 复制现有后端45
- 4.1.2 修改MAD后端文件内容45
- 4.1.3 修改配置文件45-46
- 4.2 MAD编译器后端全局描述46-47
- 4.3 MAD寄存器描述47-49
- 4.3.1 MAD寄存器td描述47-48
- 4.3.2 MAD寄存器C++描述48-49
- 4.4 MAD指令描述49-53
- 4.4.1 MAD指令集td描述49-52
- 4.4.2 MAD指令集C++描述52-53
- 4.5 MAD指令选择实现53-55
- 4.5.1 指令合法化53-55
- 4.5.2 指令匹配55
- 4.6 MAD帧栈描述55-56
- 4.7 VLIW功能实现56-57
- 4.8 MAD汇编打印实现57-58
- 4.9 本章小结58-59
- 第五章 并行编程模型的实现59-64
- 5.1 任务调度59
- 5.2 核间通信方法59-60
- 5.2.1 消息传递方式59-60
- 5.2.2 共享内存方式60
- 5.3 同步操作60-61
- 5.4 锁操作61-63
- 5.4.1 自旋锁62
- 5.4.2 排队自旋锁62-63
- 5.5 本章小结63-64
- 第六章 编译器及并行编程模型测试64-71
- 6.1 编译器功能测试64-65
- 6.2 并行编程模型性能测试65-66
- 6.3 基于DSP平台的 300bps语音编解码算法的实现66-69
- 6.4 本章小结69-71
- 第七章 工作总结及其展望71-73
- 7.1 工作总结71-72
- 7.2 工作展望72-73
- 参考文献73-75
- 致谢75-76
- 攻读硕士学位期间已发表或录用的论文76-78
【参考文献】
中国期刊全文数据库 前3条
1 余村;刘佩林;;一种低功耗音频DSP的多核编程模型[J];计算机与现代化;2013年04期
2 朱凯佳,尹宝林;基于GCC的VLIW编译系统研究[J];计算机工程与应用;2001年12期
3 郑飞,陆鑫达;VLIW微处理器特征与编译技术支持[J];微处理机;1996年03期
本文关键词:多核DSP的编译器及其并行编程模型的开发和研究,由笔耕文化传播整理发布。
,本文编号:259942
本文链接:https://www.wllwen.com/shoufeilunwen/xixikjs/259942.html