VLIW DSP汇编器与代码生成器的设计与实现

VLIW DSP汇编器与代码生成器的设计与实现

论文摘要

与传统DSPs相比,现代DSPs采用更多的ILP技术以提高机器性能。另一方面,它们呈现出规整的、可编译的体系结构,使得能够为它们构造高效的优化编译器。本文讨论这样一款DSP,它采用分簇的VLIW体系结构,能够在单个时钟周期同时执行多个操作。我们叙述这款VLIW DSP的汇编器和代码生成器的构造。 为了便于对向前引用的处理,VLIW DSP汇编器组织成两遍结构。第一遍仅记录源文件中的符号(标号)信息,第二遍重新扫描源文件,利用先前收集的信息产生目标文件。VLIW DSP汇编器的特点包括:借助lex和yacc生成词法和语法分析器;汇编语句在汇编器中以内部表示的形式存在;指令的编码信息存于数据表格,编码指令时使用通用的过程查询这些表格以决定指令的编码格式和opcode,然后调用相应的编码函数产生机器代码。 VLIW DSP代码生成器在IMPACT C编译器框架基础上实现。我们为VLIW DSP定制它的机器规格说明和机器描述,并利用IMPACT的模板构造它的代码生成器。VLIW DSP体系结构的一个显著特点是分簇,即大而集中的寄存器文件被分成多个块,每个块与几个功能单元相关联组成簇。与这一特点相对应,代码生成的一个重要步骤是簇分配,即为每个操作及其操作数映射合适的簇。簇分配应使得各簇的功能单元得到充分利用,并设法减少簇之间的数据传递。我们给出统一的簇分配与调度算法(UAS)针对VLIW DSP的实现,算法的特点是簇分配与调度一同进行,当调度一个操作时,同时为这个操作和它的操作数分配合适的簇。

论文目录

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

    • [1].面向VLIW DSP结构的编译器的设计与实现[J]. 微计算机应用 2009(07)
    • [2].魂芯分簇VLIW DSP上指令调度的优化[J]. 微型机与应用 2017(11)
    • [3].基于VLIW DSP的可重定向编译器设计与实现[J]. 中国集成电路 2009(12)
    • [4].VLIW DSP指令级精度模拟器的快速实现方法[J]. 计算机工程与设计 2013(01)
    • [5].分簇VLIW DSP的SIMD编译优化[J]. 中国科学技术大学学报 2011(08)
    • [6].VLIW DSP处理器下累加计算优化方法[J]. 小型微型计算机系统 2015(08)
    • [7].分簇VLIW DSP上支持单双字模式选择的SIMD编译优化[J]. 计算机应用 2015(08)
    • [8].一种基于寄存器压力的VLIW DSP分簇算法[J]. 计算机应用 2010(01)
    • [9].面向VLIW DSP处理器的智能汇编过程语法处理方案[J]. 邵阳学院学报(自然科学版) 2016(01)
    • [10].支持SIMD与簇间双字传输体系下的VLIW DSP分簇算法[J]. 计算机系统应用 2012(10)
    • [11].基于数据流图的异构VLIW DSP分簇方法[J]. 计算机应用 2011(04)
    • [12].基于VLIW DSP加密与认证算法的实现[J]. 计算机应用 2012(06)
    • [13].一种支持同时多线程的VLIW DSP架构[J]. 电子学报 2010(02)
    • [14].一种基于VLIW DSP架构的高性能取指流水线[J]. 国防科技大学学报 2011(04)
    • [15].用于分组加密和认证的VLIW DSP[J]. 计算机应用与软件 2012(10)
    • [16].一种支持VLIW DSP条件跳转指令的技术研究[J]. 工业控制计算机 2009(02)

    标签:;  ;  ;  ;  

    VLIW DSP汇编器与代码生成器的设计与实现
    下载Doc文档

    猜你喜欢