当前位置: 首页 > 专利查询>天津大学专利>正文

基于TCore可配置处理器的编译器系统技术方案

技术编号:3836268 阅读:207 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于TCore可配置处理器的编译器,通过中间语言格式进行编译器的组织,使用线性扫描及遗传算法完成寄存器分配与指令调度,该编译器包括SUIF2、第一级中间机器语言SUIF?IR、可扩展编译框架MACHSUIF、第二级中间机器语言SUIFVM、统一的扩展接口Machine?Library?Interface、串行Tcore处理器代码Sequential?Code、体系结构解析器Architecture?parser、代码生成器code?generator、Tcore体系结构描述文件ADT、并行Tcore处理器代码。本发明专利技术使编译器能够高效地完成代码生成,通过基于中间格式的编译器前端与基于线性扫描和遗传算法这两种启发式算法的编译器后端结合,解决了长期困扰基于TTA架构处理器的编译器效率低下的问题。

【技术实现步骤摘要】

本专利技术计算机
的嵌入式系统中的可配置微处理器,特别是涉及可配置微处理器中的编译器的开发技术。
技术介绍
当前,嵌入式系统在诸多领域得到广泛应用。而嵌入式微处理器在很大程度上决 定了嵌入式系统的性能。主流微处理器如ARM、MIPS、PowerPC等均是基于通用目的设计的, 其功能强大、支持多种运算及数据类型。这种通用性的设计反而限制了其在特定领域开发 并行性的可能。 可配置微处理器克服了上述缺点,其针对特定任务定制指令集及处理器架构,既 保持了处理器的灵活性也使性能接近特定应用设计专用集成电路(ASIC)。这种可配置处理 器需要一个自动化的软硬件协同设计环境,包括协同设计环境、编译器,指令集仿真器、设 计空间探测器等等。我国在此领域研究起步较晚,缺乏可产业化的可配置处理器,因此需要 支付昂贵IP核及相关软件授权费用。 Tcore微处理器是天津大学VLSI设计与应用研究所设计的具有自主知识产权的 基于传输触发体系结构(Transport Triggered Architecture,TTA)的可配置微处理器,并 已完成0. 13iim GSMC工艺下的流片,工作主频可达到200MHZ,拥有良好的产业化前景。 Tcore可配置微处理器的最大特点是相比其他微处理器可以在更细的粒度上进行 控制,数据传输细节在体系结构级可见,因而拥有理想的性能/成本比。但它也存在用户手 工编写代码难度大,编译器效率低等问题,如何设计高效率的编译器产生高效代码一直是 基于TTA架构微处理器设计的关键。编译器分为前端与后端两部分,传统的基于TTA架构 处理器的编译器前端主要是通过GNU GCC技术组织实现,如Delft大学的MoveFramework。 采用这种方式,串行的TTA指令被表示成二进制文件格式这种格式灵活性很低,缺少程序 剖析信息,即使存在程序剖析信息,也是被独立组织,缺乏和程序本身的联系,势必造成在 后端编译过程中无法生成高质量的指令级并行代码。编译器前端、后端主要完成两个任务 寄存器分配和指令调度。目前寄存器分配方法多采用Chaitin提出的图着色方法,但此方 法经常会产生一个不可着色的冲突图,从而导致有大量的临时变量被注入内存,增加了存 取变量的时间。而在指令调度方面,Moveframework采用表调度方法,其核心思想是基于 数据依赖图拓扑结构进行调度,调度的过程中没有考虑到全局最优,该算法所生成的代码 质量较差。此外,其缺少对于资源死锁和流水线冲突问题的处理。整数线性规划(Integer Linear Programming)算法对指令调度、寄存器的分配和软件旁路提供了一个统一的方法, 把多个问题整合在一个优化模型中。这种方法虽然在理论上能生成优质代码,在某种程度 上成功解决了寄存器分配优化和指令并行调度优化两个相互矛盾目标的多目标优化问题。 但是由于建立的约束关系复杂,往往很难在实际的编译技术中得到使用。实验表明该方法 只适用于小规模的基本块内代码优化。 本专利技术旨在为克服上述现有技术问题,而提出一种基于Tcore处理器的编译器系 统,通过中间语言格式进行编译器的组织,使用线性扫描及遗传算法完成寄存器分配与指 令调度。 本专利技术提出一种基于TCore可配置处理器的编译器,该编译器包括SUIF2、第一级 中间机器语言SUIF IR、可扩展编译框架MACHSUIF、第二级中间机器语言SUIFVM、统一的扩 展接口 Machine Library Interface、串行Tcore处理器代码Sequential Code、体系结构 解析器Architecture parser、代码生成器code ge證ator、Tcore体系结构描述文件ADT、 并行Tcore处理器代码,其中 SUIF2将应用的高级语言描述转化为第一级中间机器语言SUIF IR,并将其输出给 可扩展编译框架MACHSUIF进行后续处理;可扩展编译框架MACHSUIF将第一级中间机器语 言SUIF IR转化为面向其内部定义的虚拟机的机器语言级中间表示,即第二级中间机器语 言SUIFVM ;可扩展编译框架MACHSUIF包括统一的扩展接口 MachineLibrary Interface, 通过该接口为用户提供了统一标准的接口以扩展用户所需机器架构,并将第二级中间机 器语言SUIFVM转化为串行Tcore处理器代码Sequential Code ;串行Tcore处理器代码 Sequential Code被输入到编译器后端的代码生成器codegenerator ;通过体系结构解析 器Architecture parser解析Tcore体系结构描述文件ADT得到的体系结构参数;各体系 结构参数使用XML描述语言进行组织;利用体系结构参数编译器后端完成寄存器分配、资 源分配、指令调度,将串行Tcore代码转换为并行Tcore代码Parallel Code。 所述体系结构参数包括总线条数、总线宽度,寄存器个数、功能单元function unit的延迟。 所述寄存器分配采用线性扫描算法,该算法包括以下步骤 逐行扫描寄存器中源代码向量lives的每个变量,当遇到一个变量Va,判断该变量 Va是否第一次出现; 如果变量Va是第一次出现,将向量active列表中生命周期在变量Va第一次出现之前已经结束的变量去掉; 判断编译器中是否有剩余寄存器;如有剩余寄存器,给变量Va分配一个寄存器Rj,并添加相应变j信息; 寄存器映射表l,进行源程序如果没有剩余寄存器,则将该被扫描的变量设定为溢出; 如果变量Va不是第一次出现,则对于已经分配了寄存器&的变〗改写,即将源程序中变量标志Va,替换为相应的寄存器标志Ri ; 对于已经送到了内存的变量Va,判断当前为读操作或写操作;如果是读操作,则重 新载入该寄存器Ri ; 如果是写操作,则寄存器Ri设定为溢出。 所述指令调度采用遗传算法,该算法包括以下步骤 首先,对每一个串行传输操作进行编码,编码为传输操作在映射S下的值;映射S : V— {1,,!!} ,V是串行传输操作的线性集合,n是指令调度时间点的集合,所获得的串行 传输操作的编码用一个lXn向量表示,通过这个调度编码得到调度后的优化代码;5 在上述指令编码步骤中,传输操作间的最小延时用最小延时矩阵A = (aij)NXN 来表示;其中ai j表示串行操作编号为i与串行操作编号为j之间的最小延时(i < j)。下 文中用Mindelay(i, j)表示编号为i, j串行操作间的延时; 对整个并行编码序列进行扫描,每扫描到 一 条操作的并行编号 ScheduledNumber(i),从i开始向后扫描,每扫描到 一 条操作j的并行编号 ScheduledNumber(j),判断二者是否满足最小延时要求,将任意的到并行编码向量调整到 满足延时约束; 当发生死锁和资源冲突时,强制规定串行代码中相邻的两个功能单元操作之间的 延时; 对经过以上步骤得到的理想模型进行遗传算法, 随机生成初始种群,随机数在区间内的整数,n为串行操作长度,s为总 线条数; 从前20%的个体中随机选择父代个体进行遗传操作,用遗传操作的结果代替后 20%中随机挑选的个体;本文档来自技高网...

【技术保护点】
一种基于TCore可配置处理器的编译器,该编译器包括SUIF2、第一级中间机器语言SUIF  IR、可扩展编译框架MACHSUIF、第二级中间机器语言SUIFVM、统一的扩展接口Machine  Library  Interface、串行Tcore处理器代码Sequential  Code、体系结构解析器Architecture  parser、代码生成器code  generator、Tcore体系结构描述文件ADT、并行Tcore处理器代码,其中:    SUIF2将应用的高级语言描述转化为第一级中间机器语言SUIF  IR,并将其输出给可扩展编译框架MACHSUIF进行后续处理;可扩展编译框架MACHSUIF将第一级中间机器语言SUIF  IR转化为面向其内部定义的虚拟机的机器语言级中间表示,即第二级中间机器语言SUIFVM;可扩展编译框架MACHSUIF包括统一的扩展接口MachineLibrary  Interface,通过该接口为用户提供了统一标准的接口以扩展用户所需机器架构,并将第二级中间机器语言SUIFVM转化为串行Tcore处理器代码Sequential  Code;串行Tcore处理器代码Sequential  Code被输入到编译器后端的代码生成器codegenerator;通过体系结构解析器Architecture  parser解析Tcore体系结构描述文件ADT得到的体系结构参数;各体系结构参数使用XML描述语言进行组织;利用体系结构参数编译器后端完成寄存器分配、资源分配、指令调度,将串行Tcore代码转换为并行Tcore代码Parallel  Code。...

【技术特征摘要】

【专利技术属性】
技术研发人员:魏继增郭炜史再峰王正华刘壮丽
申请(专利权)人:天津大学
类型:发明
国别省市:12[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利