用于多层次异构结构的可重构处理器的并行处理方法

文档序号:9546910阅读:424来源:国知局
用于多层次异构结构的可重构处理器的并行处理方法
【技术领域】
[0001] 本发明涉及可重构计算领域,特别是涉及一种用于多层次异构结构的可重构处理 器的并行处理方法。
【背景技术】
[0002] 可重构处理器是为了满足信息时代人们对计算速度和计算通用性需求的重要产 物,它兼备了通用处理器和专用集成电路的优势。典型的粗粒度可重构处理器由主控制器、 主存DDR和可重构处理单元(RPU)构成,各个部分之间的数据传输通过总线实现。主控制 器用来运行操作系统,负责整个系统资源的调度。当一个计算任务在可重构处理器上运行 时,编译器会将任务代码进行软硬件划分。软硬件划分是指将程序代码划分成在通用处理 器上运行的串行代码(软件部分)与在RPU上运行的代码(硬件部分)。划分出来的串行 代码通过普通的编译器便可以将其编译成可执行代码。而另一部分则要经过另外的特殊的 编译流程之后生成RPU上相应的配置信息。RPU通常包含若干个可重构阵列(PEA),每个阵 列包含方阵形式排列的基本处理单元(PE),每一个PE可执行字级的算术或者逻辑操作,PE 之间可经由route互相通信。PEA中配置信息的生成方法则是可重构计算编译器研究的重 点。
[0003] 针对如何高效快速的完成软硬件划分及生成配置信息,使得计算密集型任务在可 重构处理器上运行的时间大大缩短,国内外编译器领域已经有较为成熟的流程。然而这些 编译流程面向的可重构处理器都是两层异构结构,并行语言的扩展也相对复杂

【发明内容】

[0004] 为克服上述现有技术存在的不足,本发明之目的在于提供一种用于多层次异构结 构的可重构处理器的并行处理方法,开发了一套用于多层次异构结构的可重构架构编译器 后端处理方案,以生成并行任务在此种架构下运行的配置信息。
[0005] 为达上述及其它目的,本发明提出一种用于多层次异构结构的可重构处理器的并 行处理方法,包括如下步骤:
[0006] 步骤一,获取类汇编的代码中间表示IR,并进行指令提取
[0007] 步骤二,对提取出的指令进行分析,根据数据流构建指令依赖图;
[0008] 步骤三,计算迭代间隔,该迭代间隔指单个PE重复执行两条相同指令之间所间隔 的时钟周期;
[0009] 步骤四,构建C0NFIGIR配置信息,该C0NFIGIR配置信息包含执行配置包的可重构 运算阵列编号、配置包长度及各条配置信息中的操作指令;
[0010] 步骤五,获取访存信息;
[0011] 步骤六,对C0NFIGIR配置信息二进制映射。
[0012] 进一步地,于步骤一中,指令提取为分析该IR并提取出真正需要映射的指令,包 括访存的L0AD/ST0RE,以及在高级语言源代码中的各类算术运算、逻辑运算。
[0013] 进一步地,于步骤三中,所述迭代间隔指单个PE重复执行两条相同指令之间所间 隔的时钟周期,所述迭代间隔越小表征着代码的并行度越高。
[0014] 进一步地,该迭代间隔的计算不仅要考虑代码间的数据依赖,还要考虑硬件架构 中基本运算单元的数量。
[0015] 进一步地,于步骤四中,每条配置信息包含至少8个数据域,其中INPUT1、INPUT2 和OUTPUT分别储存两个输入操作数和输出操作数;OPCODE表征运算种类,为加减乘等算术 运算或逻辑运算和访存运算;ITERATION域储存迭代次数,剩下的三个ITERATION域储存操 作数在每次迭代时在共享存储器中的地址增量。
[0016] 进一步地,如果涉及到选择、移位操作,数据域进行相应扩展。
[0017] 进一步地,所述C0NFIGIR配置信息中每条配置信息在构建时,不会填入所有的信 息,其中每个操作数的初始地址信息为缺省值。
[0018] 进一步地,于步骤五中,引入空函数的方法,将地址从IR外部获取后,于IR中添加 一个空函数,以函数参数传递的方式将地址信息读入到IR中。
[0019] 进一步地,访存信息的获取还包括迭代增量的计算。
[0020] 进一步地,于步骤六中,在所述C0NFIGIR配置信息构建完毕后,调用相关的规则 将其翻译成二进制机器代码。
[0021] 与现有技术相比,本发明一种用于多层次异构结构的可重构处理器的并行处理方 法实现了面向一种面向的三层异构可重构处理器架构,并开发了一套用于多层次异构结构 的可重构架构编译器后端处理方案,以生成并行任务在此种架构下运行的配置信息。
【附图说明】
[0022] 图1为本发明所应用之用于多层次异构结构的可重构处理器的架构示意图;
[0023] 图2为本发明一种用于多层次异构结构的可重构处理器的并行处理方法的步骤 流程图;
[0024] 图3为本发明较佳实施例中C0NFIGIR中每条指令的基本字段结构图;
[0025] 图4为本发明较佳实施例中原始的C程序经过前端处理后所加的并行标记示例以 及生成的中间代码表示示例图。
【具体实施方式】
[0026] 以下通过特定的具体实例并结合【附图说明】本发明的实施方式,本领域技术人员可 由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同 的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离 本发明的精神下进行各种修饰与变更。
[0027] 图1为本发明所应用之多层次异构结构的可重构处理器的架构示意图。如图1 所示,本发明所应用之用于多层次异构结构的可重构处理器,包括:一个ARMll核10 (主控 制器)、主存DDR20及多个RPU处理单元30,各个模块之间通过AHB总线进行通信,一个独 立的RPU处理单元30包含1个负责搬运配置包的ARM7核301 (协控制器),4个共享内存 (shared memory,SM) SM1-SM4 和 4 个可重构运算阵列(Processing Element Array, PEA) PEA1-PEA4,每个PEA以方阵形式排列若干基本运算单元(PE),在本发明较佳实施例中为16 个,各个PE之间可以按照一定的路由关系进行通信。需要注意的是,主控制器ARMll核10、 协控制器ARM7核301和可重构运算阵列PEA三者的内存空间都是独立的,不能直接进行相 互访问。主控制器与协控制器之间、主控制器与PEA之间以及协控制器与PEA之间的数据 传递都是通过DMA (直接内存存取)来完成的,这三部分模块共同组成了一个三层次的可重 构异构架构,每当处理器接到一个运算任务,会首先进行软硬件任务划分,划分后的串行部 分在ARMll上执行,可并行的部分由编译器生成配置包,由ARM7负责搬运到各个PEA上,配 置在PEA上流水执行,三层结构分工合作,并行完成一套可并行任务。
[0028] 针对运行在这种多层异构可重构处理器上的并行任务,已有相关嵌入到编译器前 端的并行处理方案。这种方案基于ANSI C语言实现,在ANSI C语言描述的任务中,对可并 行运算部分(以函数为单元)加入了若干并行、同步标记,指明了待运算的数据矩阵以及这 些数据拷贝到SM中的地址等信息,同时指明执行运算的运算阵列编号及SM序号,以便编译 器后端识别。
[0029] 基于上述的硬件架构以及编译器前端基础,本发明提出了一种相对应的编译器后 端的并行处理方案。
[0030] 图2为本发明一种用于多层次异构结构的可重构处理器的并行处理方法的步骤 流程图。如图2所示,本发明一种用于多层次异构结构的可重构处理器的并行处理方法,应 用于编译器后端,包括如下步骤:
[0031] 步骤201,获取类汇编的代码中间表示(Intermediate Representation, IR),并进 行指令提取。具体地说,分析IR并提取出真正需要映射的指令,包括访存的L0AD/ST0RE,以 及在高级语言源代码中的各类算术运算、逻辑运算。
[0032] 步骤202,构建依赖图。对提取出的指令进行分析,根据数据流构建指令依赖图,这 是决定配置信息执行顺序的关键步骤。
[0033] 步骤203,计算迭代间隔。迭代间隔指的是单个PE重复执行两条相同指令之间所 间隔的时钟周期,迭代间隔越小表征着代码的并行度越高。迭代间隔的计算不仅要考虑代 码间的数据依赖,还要考虑硬件架构中的PE数量。
[0034] 步骤204,构建C0NFIGIR(配置信息)。C0NFIGIR是本发明提出的一种存储配置信 息的全新数据结构,也可以看作是配置信息的打包方式。它包含执行配置包的PEA编号、配 置包长度(配置信息数量)及各条配置信息中的操作指令等信息,可以看作是最终配置信 息的可读性表示形式。C0NFIGIR中每条配置信息的基本结构请参考图3,包含至少8个数 据域,INPUTl、INPUT2和OUTPUT分别储存两个输入操作数和输出操作数;OPCODE表征运算 种类,可以是加减乘等算术运算,也可以是逻辑运算和访存运算;ITERATION域储存迭代次 数;剩下的三个ITERATION域储存操作数在每次迭代时在共享存储器
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1