1 / 9

面向 UniCore 体系结构的 C 语言子集编译器

面向 UniCore 体系结构的 C 语言子集编译器. 设计并实现一个编译器,可以将使用 给定的 C 语言子集 (Mini C) 编写的源程序 编译成 面向 UniCore 指令系统的汇编程序 给定的前端语言支持为 MiniC ,同学们在构建词法分析和语法分析等模块时,不需要考虑过于复杂的 C 和 C++ 语言特性。 提供一个 UniCore 指令系统的子集,同学们在构建代码生成部分时只需要考虑较少的指令形式。虽然是经裁剪的子集,但编译出来的程序经汇编和链接后仍可以在 UniCore 体系结构下运行。. 实习流程. 了解 Mini C 语言 词法分析 语法分析

kura
Télécharger la présentation

面向 UniCore 体系结构的 C 语言子集编译器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 面向UniCore体系结构的C语言子集编译器 • 设计并实现一个编译器,可以将使用给定的C语言子集(Mini C)编写的源程序编译成面向UniCore指令系统的汇编程序 • 给定的前端语言支持为MiniC,同学们在构建词法分析和语法分析等模块时,不需要考虑过于复杂的C和C++语言特性。 • 提供一个UniCore指令系统的子集,同学们在构建代码生成部分时只需要考虑较少的指令形式。虽然是经裁剪的子集,但编译出来的程序经汇编和链接后仍可以在UniCore体系结构下运行。

  2. 实习流程 • 了解Mini C语言 • 词法分析 • 语法分析 • 分析方法不限,实现语法检查和结构分析 • 语义分析和汇编代码生成 • 生成UniCore汇编程序 • 最终生成UniCore CPU上可运行的程序 • 汇编器、链接器和库函数由我们提供 • 可在模拟器上进行调试,SimpleSim/UniCore模拟器

  3. MiniC(一个C语言的子集) • 数据类型:整型、数组、指针; • 变量声明应在函数最前; • 包含赋值、返回、if、for、while等语句,不需包含switch; • 支持运算:加、减、乘,逻辑与、逻辑或、按位与、按位或,比较操作等; • 届时会给出具体文法

  4. UniCore32指令系统此外还有UniCore16、 UniCore64、多媒体加速扩展指令等632页的文档,so…

  5. 裁剪的UniCore指令系统 • 32个通用寄存器 • r0 - r31(PC) • 运算类指令 • add, sub, mul • and, or • shift • 比较指令 • 跳转指令 • 访存指令

  6. 采用UniCore-2处理器的计算机(测试环境)

  7. UniCore体系结构应用程序二进制接口 • 数据描述 • Little Endian • 数据类型参考ANSI C规范 • 不考虑浮点支持 • 关于地址空间的使用、堆栈分布和传参规范,届时可参阅《北大众志UniCore处理器应用程序二进制接口规范》 • 只需生成汇编程序,不需考虑可执行文件格式 • 不需考虑嵌入式汇编的支持

  8. Why choose or why not choose?

  9. 北京大学微处理器研发中心编译组 • LCC->GCC->GCC+LLVM • 对北大自主CPU的编译环境支持 • 编译优化 • 面向特定体系结构的编译优化,例如基本块重排、条件执行指令优化、混合代码生成、面向存储的优化等。 • 高层次综合 • ESL Synthesis,将特定约束下的C语言或其他语言描述的算法或系统转化为对硬件的描述。

More Related