基于多层次异构结构的可重构架构的并行扩展方法技术

技术编号:11466754 阅读:130 留言:0更新日期:2015-05-17 02:26
本发明专利技术提供一种基于多层次异构结构的可重构架构的并行扩展方法,其中所述基于多层次异构结构的可重构架构包括用于可重构计算的处理单元阵列、用于控制所述处理单元阵列的协控制器,以及用于调度、启动与运行所述协控制器的主控制器,面向上述可重构架构,本发明专利技术的扩展方法在ANSI C基础上扩展并定义三类函数:普通函数、任务函数与子任务函数,相互之间能实现灵活调用,因此能充分实现复杂的并行模式,有效挖掘多层次异构结构可重构架构的并行计算能力。

【技术实现步骤摘要】
基于多层次异构结构的可重构架构的并行扩展方法
本专利技术涉及软件领域,尤其涉及一种基于多层次异构结构的可重构架构的并行扩展方法。
技术介绍
典型的可重构处理器架构中包含了一个通用处理器和一个或多个可重构处理单元(ReconfigurableProcessingUnit,RPU)。可重构处理器可以说填补了通用处理器与ASIC之间的空白,兼具了通用处理器的灵活性和ASIC(ApplicationSpecificIntegratedCircuit)的高效性。粗粒度可重构架构中可重构处理单元的数据通路宽度大于8位,相对于细粒度可重构架构而言,其有编程方便、编译速度快等特点。虽然粗粒度可重构处理器有如此好的特性,但由于其结构的特殊性,如果没有高级语言与编译器的支持,对其编程将会是一种挑战。因为编程者不仅要知道通用处理器的编程语言,也要掌握硬件编程语言(如Verilog,VHDL),同时还要对底层的硬件有很好的理解。因此,对粗粒度可重构处理器编程比较困难,这将极大地阻碍可重构计算的发展。为了解决对粗粒度可重构处理器编程困难的问题,现有技术中很多面向粗粒度可重构处理器的高级语言已经被研究者提出。这些高级语言的设计方法主要有两类:第一类方法是像SA-C全新地设计一套语言,这种方法的缺陷是对原有代码的兼容性差、对程序员的要求高(重新学习一门新的语言)、相应编译器的设计难度高。第二类方法是对原有高级语言进行并行性扩展。该类方法又存在两种并行性扩展方式。第一种方式是像OpenACC和OpenMP那样,通过编译器的预处理命令来进行高级语言的扩展。这种并行性扩展方式的缺点是需要程序员对预处理命令有深入理解,而且程序的可读性差,开发难度大,除此之外,该种扩展方式很难实现复杂的并行模式。第二种方式是像OpenCL和CUDA那样在原语言级基础上进行并行性扩展,该种扩展方式向下兼容性好,可读性强,对程序员要求低,编程灵活能实现更多的并行模式。然而,采用这种方式扩展的语言的缺点是只能适用于两层异构结构的计算架构,对于特殊的三层或多层次异构结构不再适用。
技术实现思路
本专利技术要解决的技术问题是提出一种基于多层次异构结构的可重构架构的并行扩展方法,能够在三层或多层次异构结构的原语言级基础上进行并行性扩展。基于此,本专利技术提供一种基于多层次异构结构的可重构架构的并行扩展方法,其中,所述基于多层次异构结构的可重构架构包括用于可重构计算的处理单元阵列、用于控制所述处理单元阵列的协控制器,以及用于调度、启动与运行所述协控制器的主控制器,并行扩展方法包括分别定义运行于所述主控制器上的普通函数、运行于所述协控制器上的任务函数以及运行于所述处理单元阵列上的子任务函数,其中所述任务函数由所述普通函数调用,所述子任务函数由所述协控制器调用。可选的,所述扩展方法是在ANSIC语言的基础上进行原语言级的扩展。可选的,所述函数的定义方法通过添加关键字的形式来实现。可选的,任务函数的调用在程序执行过程中包括资源申请、实参传递、可执行文件传递以及协控制器启动控制等步骤。可选的,子任务函数的调用在程序执行过程中包括资源申请、实参传递、配置信息传递以及处理单元启动控制等步骤。可选的,所述主控制器、协控制器以及处理单元阵列的内存互相独立。可选的,所述任务函数和子任务函数的实参传递为隐式传递。可选的,所述主存储器与所述共享存储器之间实际操作数据与计算结果的传递为显式传递。可选的,所述任务函数与所述子任务函数的调用为异步调用。可选的,所述普通函数与所述任务函数中均包含同步函数,分别用于同步所述协控制器与所述处理单元阵列进行的异步操作。本专利技术提供的基于多层次异构结构的可重构架构的并行扩展方法中,所述基于多层次异构结构的可重构架构包括用于可重构计算的处理单元阵列、用于控制所述处理单元阵列的协控制器,以及用于调度、启动与运行所述协控制器的主控制器,面向上述可重构架构,本专利技术的扩展方法将ANSIC基础上扩展并定义三类函数:普通函数、任务函数与子任务函数,相互之间能实现灵活调用,因此能充分实现复杂的并行模式,有效挖掘多层次异构结构可重构架构的并行计算能力。附图说明图1为本专利技术一实施例所述可重构架构的结构示意图;图2为本专利技术一实施例的主控制器、协控制器以及处理单元阵列中的程序示意图;图3为本专利技术一实施例所述的程序计算流程示意图。具体实施方式以下结合附图和具体实施例对本专利技术作进一步详细说明。根据下面说明和权利要求书,本专利技术的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用以方便、明晰地辅助说明本专利技术实施例的目的。本专利技术所述的可重构架构(处理器计算模型图)如图1所示,该可重构处理器架构主要包括了一个主控制器、多个可重构处理单元(ReconfigurableProcessUnit,RPU)、主存储器、直接存储访问单元(DirectMemoryAccess,DMA)和系统总线构成。其中主控制器主要用于执行程序中不适合RPU处理的串行代码并负责两个RPU的调度、启动与运行,RPU则负责计算程序中一些计算密集的可并行代码。RPU主要由1个负责可重构处理单元阵列(ProcessingElementArray,PEA)控制的协控制器、4个负责可重构计算的PEA和4个用于数据存储的共享存储器(SharedMemory,SM)所组成,如图1中的扩展图所示。协控制器主要是用来负责搬运4个PEA计算所需的数据与配置信息,控制PEA的启动、运行与终止。这种特殊的异构粗粒度可重构架构中包括了三部分计算模块,分别是主控制器、协控制器和PEA,三者的内存空间都是独立的,不能直接进行相互访问。其中,所述主存储器作为主控制器的内存,SM作为协控制器的内存。主控制器与协控制器之间、主控制器与PEA之间以及协控制器与PEA之间的数据传递都是通过DMA来完成的。这三部分计算模块共同组成了一个三层次的可重构异构架构。原有的可重构处理器并行计算语言不适用该种特定的三层次异构可重构架构。本专利技术面向这种粗粒度可重构器提出了一种并行标记方法。这种并行标记方法是在ANSIC语言的基础上进行的原语言级的扩展,其包括了函数标记、函数调用、内存操作扩展与同步扩展。其中所有并行标记扩展都会以“__gr_xxxx”的形式出现。1)函数标记:对应计算模型中包括了三部分的计算模块,本专利技术将ANSIC的函数分为三类。第一类函数为普通函数,其代码将会在主控制器上运行;第二类函数为任务函数,其代码将会在协控制器上运行;第三类函数为子任务函数,其代码将会映射到PEA上运行。本专利技术将会以关键字的形式来区分这三类函数。为了保持与原有ANSIC的兼容性,这些关键字嵌入到ANSIC文法中非终结符“function-specifier”的产生式内,如公式(1)所示。任务函数的定义由函数说明符“__gr_task”来标记,子任务函数的定义由函数说明符“__gr_subtask”来标记。同时对于任务函数与子任务函数定义时有一定约束,其函数不能有返回值,即函数返回类型为“void”。function-specifier:inline|__gr_task|__gr_subtask(1)2)函数调用:本专利技术所定义的三类函数将分别在三种计算模块中运本文档来自技高网
...

【技术保护点】
一种基于多层次异构结构的可重构架构的并行扩展方法,其中,所述基于多层次异构结构的可重构架构包括用于可重构计算的处理单元阵列、用于控制所述处理单元阵列的协控制器,以及用于调度、启动与运行所述协控制器的主控制器,其特征在于,包括分别定义运行于所述主控制器上的普通函数、运行于所述协控制器上的任务函数以及运行于所述处理单元阵列上的子任务函数,其中所述任务函数由所述普通函数调用,所述子任务函数由所述协控制器调用。

【技术特征摘要】
1.一种基于多层次异构结构的可重构架构的并行扩展方法,其中,所述基于多层次异构结构的可重构架构包括用于可重构计算的处理单元阵列、用于控制所述处理单元阵列的协控制器,以及用于调度、启动与运行所述协控制器的主控制器,其特征在于,包括分别定义运行于所述主控制器上的普通函数、运行于所述协控制器上的任务函数以及运行于所述处理单元阵列上的子任务函数,其中所述任务函数由所述普通函数调用,所述子任务函数由所述协控制器调用;其中,所述主控制器与所述协控制器之间、所述主控制器与所述处理单元阵列之间以及所述协控制器与所述处理单元阵列之间的数据传递通过一直接存储访问单元来完成;所述普通函数用于进行不适合映射到可重构处理单元的串行计算,同时还用于进行所述任务函数的调用与同步;所述任务函数用于进行所述处理单元阵列计算的输入输出数据搬运、配置信息搬运以及所述处理单元阵列的调度工作;所述子任务函数被编译成配置信息映射到所述处理单元阵列上进行可重构计算。2.如权利要求1所述的基于多层次异构结构的可重构架构的并行扩展方法,其特征在于,所述扩展方法是在ANSIC语言的基础上进行原语言级的扩展。3.如权利要求1所述的基于多层次异构结...

【专利技术属性】
技术研发人员:楼杰超绳伟光何卫锋景乃锋蒋剑飞毛志刚
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海;31

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

1