论文摘要
为了满足多变的应用需求,以可配置处理器为中心的新一代SoC设计成为集成电路设计的趋势之一。编译工具作为可配置处理器系统中非常重要的一环,不仅可以帮助处理器设计人员验证指令集架构的有效性,而且是联系新的处理器平台和大量应用软件的纽带。然而,面向应用的可配置处理器的指令集是多变的,无论是评估指令集变化的有效性还是衡量应用后的实际性能,都需要编译工具做出相应的修改。同时,由于提出指令集变化需求的往往是编译工具的使用者而不是开发者,编译工具的开发和修改占用了可配置处理器从设计到交付总时间的很大比重。如何降低编译工具的开发门槛并缩短修改编译工具的时间是可配置处理器领域的重要课题。为了解决上述问题,本文将为可配置处理器平台设计和实现一套可配置编译工具。考虑到编译工具的效率和通用性,在分析当前各种编译工具的优缺点之后,本文选择了GNU的Binutils和GCC作为可配置编译工具的原型。并在深入分析它们内部结构和工作原理的基础上,将其移植到了本课题研发的可配置处理器平台上,然后进行了编译工具的可配置性研究。在编译工具的可配置性研究中,本文首先从概念上定义了编译工具中的各种可配置部件与接口,通过实现各个部件的可配置达到整个编译系统可配置的目的。在汇编器的可配置设计中,本文创新性的提出了处理器架构无关的指令解析和编码方法,这包括指令集的静态定义方法,汇编语句的词法和语法分析方法,汇编语句的动态解析方法和机器指令的反向解析方法。在编译器的可配置设计中,本文提出了一种指令行为的描述方法,它能够结合汇编器的指令解析和编码方法,完成编译器后端代码的自动生成,从而完成编译器的可配置。此外,为了考察本研究开发的可配置编译器的有效性,本文通过模拟可配置处理器指令集中可能发生的各种变化类型,测试并验证了可配置编译工具的有效性。
论文目录
摘要ABSTRACT1 绪论1.1 研究背景1.2 可配置处理器简介1.2.1 可配置处理器发展现状1.2.2 处理器为什么需要可配置1.3 编译工具参考设计1.3.1 MIMOLA1.3.2 LCC: Little C Compiler1.3.3 CoSy1.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 的中间语言 RTL2.3.3 GCC 的机器描述 MD2.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 未来研究与展望参考文献致谢攻读学位期间发表的学术论文
相关论文文献
标签:可配置处理器论文; 编译器论文; 汇编器论文;