2022年针对DSP指令生成与二进制翻译的汇编器实现 .pdf





《2022年针对DSP指令生成与二进制翻译的汇编器实现 .pdf》由会员分享,可在线阅读,更多相关《2022年针对DSP指令生成与二进制翻译的汇编器实现 .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、中图分类号 : TP314文献标识码 : A文章编号 : 1009 2552( 2011) 03 0047 04针对 DSP指令 生成与二 进制翻译 的汇编 器实现肖贺,刘佩林( 上海交通大学电子信息 与电气工程学 院,上海 200240)摘要:DSP指令生成与优化和二进制翻译 是现 代编译 工具 值得关注的热点问题 。针对 DSP 指令 的特点 提出一种通用的DSP 指令生成 ( 支持 VLIW 指令)与二进制翻译 技术 ,并应用于GNU汇编 器 ( GAS) 。包含 该技术 的汇编 器 PCA ( PostCompilation Assembler)先将输入 的汇编 指令转化 成类似 LI
2、SP 的中 间语言。PCA 通过对此中间语言分析以及 窥孔 优化 ,最终生成高 质量的 目标平台 DSP代码 。关键词 :DSP指令 生成 ; VLIW 指令 ; 二进制翻译 ;编译后优化;窥孔优化Implementationof assembler for DSP code generationand binary translationXIAO He,LIU Pei-lin( School of Electronic Informationand Electrical Engineering ,Shanghai Jiaotong University ,Shanghai 200240 ,C
3、hina )Abstract : DSP code generation and optimization,along with binary translation,has become a well-concerning focus of the modern tool chain This paper,on account of the specialties of DSPinstruction,proposed a general method of DSP code generating ( include VLIW )and binary translation,whichappl
4、ied in GNU assembler ( GAS) GAS with this technology ( called PCA)first translates sourceassemblyinstructions into LISP-like intermediate representation ( IR) ; by analyzing the behaviors of theIR statements and employing post-compilation techniques such as peephole optimization,PCA willproduce DSP
5、codesof high quality suitable for the target platformKey words : DSP code generation ; VLIW ; binary translation; post-compilation optimization; peepholeoptimization0引言在现 代编译工 具的研究中 , 为了尽可能地让编译器 编 译出适应于 特定 DSP架构的 代码, 设计者提出一种 编译后优化的方 法来控制编译器 进行机器相关的优 化。编译后 优化 的方法有 很多,窥孔 优化便是其中 很重 要 的一 种1 。窥孔 优化的基 本 思
6、想是考察窥孔 窗中的 一 组 指令 ( 一般是 3 5 个 ) , 对这组指令 进行 局部优化, 然后滑 动窗的位置, 对下一组指令 执 行优化操作直到 所有指令扫描结 束。目前成熟的 DSP编译器 通 常会 采用 窥孔 优化技术 来生成与机 器 架构相关 的特殊 指令和优化代码2 3。此 外, 现代 工具 链有一个很 有前景的应用 称之为二进制翻译 , 也就是说 , 某一架构的汇编二进制程序通过特定的工具能够被翻译 为能在另一种架构上执行的 可执行代码, 同时保证二进制程序不会有太明显的性能降 低。据研究4 5表明, 窥孔 优化十分适用于 二进制翻译 。为了满足 上述两 方面的要求, 提出一
7、种采用编译后优化技术 生成 特定 DSP 指令 和 完成二进制翻译的汇编器 PCA, 它将 窥孔 优化技术 从编译阶段 推迟到汇编链接阶段 。这样的编 译结构有 三方面的好处: 首先 , 该 汇 编器 结构 为 二 进 制翻 译 创造 了 可收稿日 期:2010 10 27作者简介 :肖贺 ( 1986 ) , 男, 硕士研究 生, 主要 研究 方 向为 DSP处理器 体系架构及其编译器汇 编器实现 。74名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - -
8、 - - - - - - 能。其 次, 该结 构提 出优化技术 可以用于 不同 高级编程语 言下 的程序 优化 , 也能适用于 高级语言与汇编语 言 混合 编程的情况 。最后, 在编译阶段得 不到的许多 程序相关 信息 例 如符 号信息 , 变量存储形式( 内存 或是寄存 器) 可 以在汇编阶段 获得, 能够更加有效地 进行 优化。1整体设计提出的汇编器 PCA 首先将 汇编代码( 编译器 生成或者 手写汇编代码) 翻译 转化成一 种通用的中 间语言。PCA 接 着采用基于 窥孔 优化的指令翻译 生成算法 对中间语言 进行 分析 与优化, 最终生成 所需要的目 标代码。从流程 框架和中间语言匹
9、配 两方面对 PCA 展开具体讨论 。1 1PCA 流程框架PCA 是 基 于 GNU 汇 编器 GAS 而 开 发的, 而GAS 是 以行为 单 位 进行 扫描并生成 最终二 进制代码。这 种传统的汇编器 结构不适合进行 二进制翻译和构造 DSP 指令 , PCA 对此结构进行 了相 应的 调整。PCA的工作原理如 图1所示。图 1PCA 工作流程图源汇 编代码 首先 通过 PCA 的解析单元转换成中间语 言 IR( Intermediate Representation ) , 同时重建程序控制 流信息 , 并生成 符号 表。被转换过的中 间语言通 过窥孔 优化 算法 与预先定 义的DSP
10、架构指令库中的 模式 进行 匹配 与选择 变换 , 同时更新优化后 IR 序列 的 符 号表。最后, PCA 将最终的中 间语言序列 和符号表生成 可 执行文件。1 2中间语言 IR 描述 与匹配PCA 采用 类 似 于 GCC 中 RTL 语言6的 IR 结构作为 其中 间语言, 如图 2 所示。可以 看出, IR 结构包含 两 个 部 分,操 作 部分opcode和操作 数部 分operands 。图 2IR 结构图其中 , opcode中的 CODE 域指定当前 中间语言语句完成的行为 , PCA 定义了一组标准名来指定一些通用的 操作, 例如 PLUS表示加法, MINUS 表示减法,
11、 SHIFT表示移位操作等等。CODE集合亦可以根据特定 的 DSP 指令 架 构而进行 扩展。IR_TYPE域标识指令模板 的分类, 该分类使 用于 VLIW 模板中。operands部分指 定特定 操作下 操作数的 特征,其中第一个操作数为目标操作数,其他为源操作数。它包 含 TYPE, operandx 和 WIDTH 三个 域。TYPE域指定操作数的 类型, 例如 REG 表示普通 寄存器,SPR表示特殊寄存器, MEM 内存, 以及 IMM 表示立即数。operandx域标识操作数的 名称,例如REG: r7表示某条语 句的一个 操作数是寄 存 器型, 名称 是r7。不同 的 IR
12、语句中相同的操作数名称 表明了他们对同一个操 作数进行 了操作。WIDTH 域指定了操作数的位宽。2具体实现给出了 PCA 的工作流程以及介绍了中间语言。结合 DSP指令 特点来详细 说明 PCA 生成 DSP指令代码的过程。2 1控制 流重建重建输入程序的控制流对于汇编器来说是一个比较大的挑战。为了有效地优 化和 解析源汇 编代码的功能, PCA 首先 需要将直接转 换过来的 IR 语句分割成不同 的基 本块。具体做法是 PCA 找出跳转语句, 将它们作为基本块最后一条语句, 并将它们 的跳转目标作为基 本块的第一条语句, 以此来分割 IR程序。接着通过分析 基本块 中各语句的 OPERAN
13、D域标识得它们 的依赖关系后, PCA 以这些被分割的基本块为基本单元解析并生成 DSP指令。2 2指令翻译 生成算法指令翻译 生成 算法的基 本原理是 IR 中间语句匹配, 所谓的中 间语句匹配 , 是指当汇编指令经过解释器转 换 成 中 间 语 句后, 该 语 句 的 OPCODE 域,TYPE 域和 WIDTH 域和某个预先定 义的 IR 模板相一致。IR 支持嵌套结构以进行 复杂的窥孔 优化, 即一个 IR 语句的操作数可以是一条 IR 语句结构。由于 IR 语 句的作用是改变目标操 作数的值 , 那么 IR语句本身可以等价于一个与目 标操作数相同的一个操作数。一般来说, DSP指令
14、可以大致分为两类, 一类称为增强指令 , 能够完成很强大的运算操作 , 另一类是VLIW 指令 , 包含多个发 射槽。PCA 预先定 义复杂的 IR 模板, 通过 IR 语句合并算法 可以实现 第一类84名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 指令 ; 通过指 定 指令 封包的格式可以实现 第二类指令。对 于第一类增强指令 , IR 语言模板可以是一系列简 单 模板的嵌套。第 二类指令的模板为一系列格式的指令 包。而对于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年针对DSP指令生成与二进制翻译的汇编器实现 2022 针对 DSP 指令 生成 二进制 翻译 汇编 实现

限制150内