可配置编译工具的设计与实现

可配置编译工具的设计与实现

论文摘要

为了满足多变的应用需求,以可配置处理器为中心的新一代SoC设计成为集成电路设计的趋势之一。编译工具作为可配置处理器系统中非常重要的一环,不仅可以帮助处理器设计人员验证指令集架构的有效性,而且是联系新的处理器平台和大量应用软件的纽带。然而,面向应用的可配置处理器的指令集是多变的,无论是评估指令集变化的有效性还是衡量应用后的实际性能,都需要编译工具做出相应的修改。同时,由于提出指令集变化需求的往往是编译工具的使用者而不是开发者,编译工具的开发和修改占用了可配置处理器从设计到交付总时间的很大比重。如何降低编译工具的开发门槛并缩短修改编译工具的时间是可配置处理器领域的重要课题。为了解决上述问题,本文将为可配置处理器平台设计和实现一套可配置编译工具。考虑到编译工具的效率和通用性,在分析当前各种编译工具的优缺点之后,本文选择了GNU的Binutils和GCC作为可配置编译工具的原型。并在深入分析它们内部结构和工作原理的基础上,将其移植到了本课题研发的可配置处理器平台上,然后进行了编译工具的可配置性研究。在编译工具的可配置性研究中,本文首先从概念上定义了编译工具中的各种可配置部件与接口,通过实现各个部件的可配置达到整个编译系统可配置的目的。在汇编器的可配置设计中,本文创新性的提出了处理器架构无关的指令解析和编码方法,这包括指令集的静态定义方法,汇编语句的词法和语法分析方法,汇编语句的动态解析方法和机器指令的反向解析方法。在编译器的可配置设计中,本文提出了一种指令行为的描述方法,它能够结合汇编器的指令解析和编码方法,完成编译器后端代码的自动生成,从而完成编译器的可配置。此外,为了考察本研究开发的可配置编译器的有效性,本文通过模拟可配置处理器指令集中可能发生的各种变化类型,测试并验证了可配置编译工具的有效性。

论文目录

  • 摘要
  • ABSTRACT
  • 1 绪论
  • 1.1 研究背景
  • 1.2 可配置处理器简介
  • 1.2.1 可配置处理器发展现状
  • 1.2.2 处理器为什么需要可配置
  • 1.3 编译工具参考设计
  • 1.3.1 MIMOLA
  • 1.3.2 LCC: Little C Compiler
  • 1.3.3 CoSy
  • 1.3.4 GNU 编译工具
  • 1.4 研究内容和论文组织
  • 2 编译工具结构分析与研究
  • 2.1 GNU 编译工具概述
  • 2.2 GAS 汇编器分析
  • 2.2.1 Binutils 工具集参考框架分析
  • 2.2.2 GAS 工作流程
  • 2.2.3 GAS 中的重要数据结构
  • 2.2.4 BFD 库
  • 2.2.5 Binutils 处理器架构相关部分
  • 2.3 GCC 编译器参考框架分析
  • 2.3.1 GCC 编译系统结构
  • 2.3.2 GCC 的中间语言 RTL
  • 2.3.3 GCC 的机器描述 MD
  • 2.3.4 机器描述与编译之间的接口
  • 2.3.5 GCC 处理器相关部分
  • 2.4 GNU 编译工具的可配置性
  • 2.5 可配置目标平台简介
  • 2.5.1 TOP 指令集架构概述
  • 2.6 TOP-32 指令格式
  • 2.7 本章小结
  • 3 可配置汇编器的设计与实现
  • 3.1 汇编器的可配置框架设计
  • 3.1.1 可配置汇编器的结构
  • 3.1.2 可配置的需求和部件
  • 3.1.3 指令部件
  • 3.1.4 通用编码部件
  • 3.1.5 操作码部件
  • 3.1.6 操作数部件
  • 3.2 汇编器具体实现
  • 3.2.1 指令集的静态定义
  • 3.2.2 汇编语句的词法和语法分析
  • 3.2.3 汇编语句的动态解析编码
  • 3.2.4 机器指令的反向解析编码
  • 3.3 汇编器可配置接口概要
  • 3.4 本章小结
  • 4 可配置编译器设计与实现
  • 4.1 编译器可配置框架
  • 4.1.1 可配置编译器结构
  • 4.1.2 可配置编译器的需求分析
  • 4.1.3 约束条件和可配置部件
  • 4.1.4 指令部件
  • 4.1.5 寄存器部件
  • 4.1.6 立即数部件
  • 4.1.7 配置接口的解释器
  • 4.2 编译器的具体实现
  • 4.2.1 移动存贮类指令的支持
  • 4.2.2 逻辑算术类指令的支持
  • 4.2.3 比较和跳转类指令的支持
  • 4.2.4 应用程序二进接口(ABI)定义
  • 4.3 本章小节
  • 5 编译工具的可配置性验证
  • 5.1 编译工具测试概述
  • 5.2 正确性验证
  • 5.2.1 汇编器的正确性测试
  • 5.2.2 编译器的正确性测试
  • 5.3 可配置性验证
  • 5.3.1 汇编器的可配置性测试
  • 5.3.2 编译器的可配置性测试
  • 5.4 本章小结
  • 6 总结与展望
  • 6.1 本文总结
  • 6.2 未来研究与展望
  • 参考文献
  • 致谢
  • 攻读学位期间发表的学术论文
  • 相关论文文献

    标签:;  ;  ;  

    可配置编译工具的设计与实现
    下载Doc文档

    猜你喜欢