论文部分内容阅读
粗粒度可重构处理器(Coarse-Grained Reconfigurable Architecture,CGRA)已被证明是处理计算密集型应用的理想平台,但现有的应用映射算法通常只能解决单层循环和最内层循环体的映射问题,含有动态循环边界的应用代码难以在CGRA上映射并高效执行,严重制约了CGRA的应用。本文重点解决了CGRA上单层动态循环边界应用的映射问题,以及静态循环边界和动态循环边界相混合应用的映射问题。CGRA一般由多个处理单元(Process Element,PE)组成规则的阵列结构。为了维持高能效特性,CGRA中的PE功能较为简单,缺乏PC(Program Counter)等处理分支、跳转操作的关键部件,因而难以解决动态边界循环等复杂控制流的映射问题。论文首先分析了CGRA的主要结构以及现有应用映射算法的特点,给出了低代价的可重构处理器架构扩展方案,使之可以支持具有动态边界循环的应用代码的映射。在上述扩展的CGRA基础上,针对动态边界循环,提出了动态边界循环静态调度的映射方法(Dynamic Boundary Static Schedule,DBSS)。与传统映射方法只映射循环体不同,DBSS同时映射循环体和循环控制相关的算子,利用循环条件判断语句的执行结果在运行时动态决定循环体指令的发射。DBSS有效解决了单层动态边界循环和嵌套分支应用的映射问题。对于部分应用中静态边界循环和动态边界循环混合的复杂应用的映射问题,提出了混合边界循环静态调度的映射方法(Mixed Boundary Static Schedule,MBSS)。DBSS在处理混合边界循环时,会引入过多循环控制相关的算子(静态边界循环、动态边界循环相关的控制算子需全部映射)。MBSS是DBSS映射方法的进一步优化,先使用传统循环展开技术移除静态边界循环所在的层,然后用DBSS方法处理剩下含有动态边界循环的代码。MBSS不需要对静态边界循环层的控制算子进行映射,提升了性能。最后以Verilog实现了支持动态边界循环映射的扩展CGRA硬件架构,开发了以LLVM为基础的可重构处理器编译器软件,将DBSS和MBSS算法集成于编译器软件中。相对于传统架构及其映射算法,本文的DBSS和MBSS映射方法测试15个kernel比目前最好的循环映射方法平均快2.2倍,性能平均各提升24%和38%,硬件扩展所需开销少于2%,同时具有更低的能效、更好的扩展性和灵活性。