DSP编译器关键技术研究
发布时间:2020-07-24 13:09
【摘要】: 为了提高特定应用环境下的运行速度,DSP增加了许多特殊的指令和功能单元,体系结构越来越不规则。传统的代码生成算法是一种分治算法,没有考虑指令和寄存器之间的约束关系,难以应用在DSP编译器中。必须为DSP编译器发展出新的代码生成算法,以适应新的需求和挑战。本文主要研究了DSP编译器的若干关键技术,DSP编译器的目标机器平台是浙江大学自主研发的媒体DSP——SPOCK。 编译器前端包括词法分析器、语法分析器和中间代码生成器等。针对DSP的体系结构特点,重新改造了LCC编译器中记号、符号表、数据类型支持等数据结构,并使LCC前端能够正确的处理计算溢出和数据类型转换等。 DSP的体系结构复杂多变,拥有高级语言难以表述的诸多特性,代码生成技术是编译器最难、最复杂的技术之一,它从根本上决定了一个编译器的效率和性能。代码生成技术共分三个子问题:指令选择、寄存器分配以及指令调度,传统的分步优化算法生成的目标代码往往是次优代码。本文研究了包括时间约束、资源约束和DSP体系约束等特性,指出必须发展出同时考虑指令选择、寄存器分配和指令调度的新算法,才有可能为DSP生成优化的目标代码。 根据最优化原理,提出调度DAG的概念,给出了同时考虑指令选择和寄存器分配的代码综合生成算法。该代码生成算法在指令生成过程中,充分考虑的指令和寄存器之间的约束,将代码优化生成的问题转化为在调度DAG中寻找一条优化路径的问题。 在传统的图染色算法中,仅仅用物理寄存器个数——n表示寄存器堆的模型,这种简单的方式不足以描述DSP寄存器的约束关系。提出了一个能够描述这些约束关系的DSP寄存器模型,该模型将DSP的寄存器分成若干类,并定义了它们之间的相互约束量和优先级别。传统图染色算法只能有效地为通用处理器分配寄存器,改进了图染色算法,将算法的应用范围延伸到DSP领域。提出了有向冲突图的概念,有向边的权值代表寄存器类之间的约束值,寄存器分配的过程就是对有向图进行简化、归约的过程。给出判断有向冲突图节点染色性的精确判据,当冲突图中所有节点都不可染色,算法就选择一个优化的节点溢出到存储器中。 中间语言反映源语言的结构,又和目标体系相关,具有目标语言的特性。中间语言对编译器的结构和功能影响很大,其形式是多方面考虑的折中。本文基于XML语言,扩展了IBURG的树文法。这种中间语言的好处就是简单明确,描述能力强,能方便地描述DSP体系结构的特征。为DSP编译器的重定位提供了一个良好的机制,简化了DSP编译器充定位的难度。 LCC是一个重定位的通用处理器编译器系统。采用LCC的前端,应用综合代码生成算法和改进图染色寄存器分配算法,重写了编译器后端,构成了一个DSP编译器。试验证明,该DSP编译器能较好的利用DSP特性,提高了代码生成质量,降低了寄存器溢出的概率。
【学位授予单位】:浙江大学
【学位级别】:博士
【学位授予年份】:2007
【分类号】:TP368.12
【图文】:
DsP(digi回sin即 alprocessor, nsP)是一种独特的微处理器,有自己的完整指令系统,DSP主要用在计算密集型的领域,加密解密、调制解调、音视频编解码等。具有强大的数据处理能力和较高的运行速度。一个典型的DSP系统如图1一1所示。rrrl卜」 」 lll‘,J一」」l]]]L日 日DSPDAC图1一 1DSP系统模型DSP通常采用哈佛结构,将数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠,在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,增加了器件的灵活性I’,2]。 CCCPUUUUU指令控制器器器数据存储器器图l一2哈佛结构DSP不仅具有可编程性,而且实时运行速度可达每秒数以千万条复杂指令程序
(GeneralPronoseProeessor, Gpp)相比,DSP的结构特殊,运算能力强;和专用指令处理器 (ApplieationspeeifieIniegatedCireuit,AsIP)相比,Dsp具有可编程性。如图1一23所示,从GPP、DSP到ASIP,针对特定应用的性能越来越强,但是灵活度越来越小。随着制造工艺的进步和自动设计工具的发展,DSP的功能越来越强大,应用也日趋复杂起来。DSP应用程序的开发方式也从手工编写汇编语言逐渐过度到使用高级语言编译器。本文在以下几个方面展开了有价值的探索研究:通用处理器CPP应用DSP应用ASIP应用图1一 23GPP、DSP、ASIP的应用特点1.DSP代码生成算法和GPP编译器相比,DSP编译器必须能够充分为硬件优化,生成更紧凑、高效的代码,本文针对DSP编译器的若干关键技术展开研究。处理器的寄存器模型是编译器目标优化的基础
浙江大学博士学位论文_图3一8从节点N,和节点Nj的路径3.5.2资源约束在处理器中,存在着大量的功能单元,例如功能单元ALU能应用于加法(ADD)、减法(SuB)等指令,功能单元MAc应用于乘加指令等等,当功能单元被某条指令所占用,其他指令就必须存储在延时槽等待,这种具有独占性的功能单元是处理器中的稀缺资源,称为功能资源 (FunctionalResouree)。处理器的每一条指令都对一个功能单元,设函数p:S分F表示指令S与功能资源F的对应关系
本文编号:2768889
【学位授予单位】:浙江大学
【学位级别】:博士
【学位授予年份】:2007
【分类号】:TP368.12
【图文】:
DsP(digi回sin即 alprocessor, nsP)是一种独特的微处理器,有自己的完整指令系统,DSP主要用在计算密集型的领域,加密解密、调制解调、音视频编解码等。具有强大的数据处理能力和较高的运行速度。一个典型的DSP系统如图1一1所示。rrrl卜」 」 lll‘,J一」」l]]]L日 日DSPDAC图1一 1DSP系统模型DSP通常采用哈佛结构,将数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠,在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,增加了器件的灵活性I’,2]。 CCCPUUUUU指令控制器器器数据存储器器图l一2哈佛结构DSP不仅具有可编程性,而且实时运行速度可达每秒数以千万条复杂指令程序
(GeneralPronoseProeessor, Gpp)相比,DSP的结构特殊,运算能力强;和专用指令处理器 (ApplieationspeeifieIniegatedCireuit,AsIP)相比,Dsp具有可编程性。如图1一23所示,从GPP、DSP到ASIP,针对特定应用的性能越来越强,但是灵活度越来越小。随着制造工艺的进步和自动设计工具的发展,DSP的功能越来越强大,应用也日趋复杂起来。DSP应用程序的开发方式也从手工编写汇编语言逐渐过度到使用高级语言编译器。本文在以下几个方面展开了有价值的探索研究:通用处理器CPP应用DSP应用ASIP应用图1一 23GPP、DSP、ASIP的应用特点1.DSP代码生成算法和GPP编译器相比,DSP编译器必须能够充分为硬件优化,生成更紧凑、高效的代码,本文针对DSP编译器的若干关键技术展开研究。处理器的寄存器模型是编译器目标优化的基础
浙江大学博士学位论文_图3一8从节点N,和节点Nj的路径3.5.2资源约束在处理器中,存在着大量的功能单元,例如功能单元ALU能应用于加法(ADD)、减法(SuB)等指令,功能单元MAc应用于乘加指令等等,当功能单元被某条指令所占用,其他指令就必须存储在延时槽等待,这种具有独占性的功能单元是处理器中的稀缺资源,称为功能资源 (FunctionalResouree)。处理器的每一条指令都对一个功能单元,设函数p:S分F表示指令S与功能资源F的对应关系
【引证文献】
相关硕士学位论文 前3条
1 张晓东;基于IEC61131-3标准的控制工程多语言编译器[D];浙江大学;2011年
2 谭宇;基于DSP的电磁激励式疲劳寿命测试系统的研究[D];吉林大学;2010年
3 张健;汽车电子控制器快速开发系统研究[D];重庆交通大学;2010年
本文编号:2768889
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2768889.html