论文部分内容阅读
与细粒度可重构处理器相比,粗粒度可重构处理器具有编译时间短、可重构配置快等特点。粗粒度可重构处理器一般由主控核和可重构单元耦合而成,而这些可重构单元都由同构的可重构阵列组成。我们的异构粗粒度可重构处理器(GReP)也由主控制器与可重构单元组成,但与典型的粗粒度可重构处理器不同的是,GReP的可重构单元由协控制器与四个可重构阵列异构而成。因此为了充分发挥 GReP的并行计算性能,新的编程语言与编译器研究变得十分必要。 本文面向GReP可重构处理器提出了一套ANSI C的语言扩展方案(GR-C),设计了全自动的任务编译器框架并对其前端进行了实现。该语言扩展方案能在兼顾对原有代码的兼容性与对程序员的友好性的同时充分发挥 GReP的并行计算能力,其通过语言级的扩展来帮助任务编译器进行软硬件划分、并行优化与映射。任务编译器前端以GR-C作为输入,经过解析器解析后生成具有静态单赋值特性的中间表示,后端以中间表示作为输入,经过软硬件划分、代码优化、任务调度和映射等步骤生成可执行文件与配置信息。 本文用GR-C实现了IDCT、FIR等四种典型计算密集型算法,用所开发的编译器前端成功生成了中间表示,并最终为这些典型应用生成了配置信息。所生成的配置信息在当前版本的GReP ESL模型上运行正确,加速比约为2.0~4.7。实验结果表明GR-C与任务编译器较好地发掘了异构粗粒度可重构处理器的并行可重构计算能力,证明了该语言扩展方案及任务编译器框架的合理性与可行性,同时验证了任务编译器前端的功能正确性,可以为未来并行可重构计算研究与应用提供较好的支持。