一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型的制作方法

文档序号:8498668阅读:1097来源:国知局
一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型的制作方法
【技术领域】
[0001]本发明涉及异构多核处理技术,具体是一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型。
【背景技术】
[0002]Xilinx公司推出的Zynq-7000 Soc系列产品是首款将双核ARM处理器与高性能FPGA结合到单芯片上的异构多核处理器产品,ARM双核处理器是业界广泛使用的嵌入式通用处理器,有完善的开发工具链和编译器,支持高级语言编程,并且能够得到丰富的操作系统与开源软件的支持。此外,FPGA作为专用处理器,具有强大的并行计算能力。ARM加上FPGA的结构十分适合作为高性能计算的硬件平台,具有良好的灵活性和可扩展性。
[0003]中国专利申请200710176830公开了一种异构多核体系中外设的访问方法,该系统中从核操作系统向外设发送代理请求,由主核操作系统代理执行实际的外设访问,主从核之间协商一块共享内存映射地址空间作为数据交换空间,主核操作系统将外设访问的结果反馈给从核操作系统,从核操作系统从映射地址空间中获取外设的数据。通过该技术方案增加了从核操作系统访问外设空间的手段,避免了从核直接操作外设速度慢的缺点,提高了访问效率。
[0004]中国专利申请200810062164.1公开了一种嵌入式异构多核体系片上通信互连组织层次的实现方法,该方法结合嵌入式异构多核体系结构的特点,设计了两条核间总线,分别为负责连接计算密集型核的计算总线与负责控制密集型核的控制总线。同时,内存控制器被看作处理核连接在计算总线上,从而统一了片内的处理核间、处理核与内存间的控制通信与数据存取通信。该技术方案实现了主辅核间以总线形式进行的通信,有效提高了核间协作以及数据传输性能;面向嵌入式多核领域的较常见的多媒体处理、数据比对、信号编解码、模式匹配等计算密集型处理,具有很强的实用性。
[0005]中国专利申请201110056991公开了一种基于星型互联架构的片上异构多核系统及其通信方法,该系统包括核心调度处理器、至少一个计算处理器和至少一个硬件IP核,核心调度处理器与计算处理器之间、核心调度处理器和硬件IP核之间均采用基于点对点总线的片上网络进行互联形成星型互联架构,核心调度处理器与计算处理器之间基于星型互联架构的通信模型进行消息传递,通信模型采用非阻塞接口实现。该系统提高了访问的吞吐率和可扩展性。

【发明内容】

[0006]本发明的目的在于提供一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型,实现了 FPGA利用AXI_HP高速接口与ARM通信、协同工作的功能。
[0007]为实现上述目的,本发明提供如下技术方案:
一种基于嵌入式异构多核处理器上的核间通信方法,所述嵌入式异构多核处理器包括两个ARM Cortex-A9处理器及所有FPGA上的IP核,所述核间通信为核间高速通信,在该通信方法中,通过AXI_HP高速通信接口,FPGA可以直接访问到嵌入式异构多核处理器的DDR内存以及片上存储器OCM(On Chip Memory),并且能够达到较高的数据通信速率。由于ARM也可以直接实现对DDR的随机访问,因此ARM和FPGA可以利用AXI_HP接口方便的使用共享内存的方式进行通信。
[0008]作为本发明进一步的方案:使用AXI_HP接口进行数据传输是通过DMA (直接内存存取)实现。
[0009]在实际操作中,首先需要配置DMA控制器,配置的内容有要读和写的DDR内存的起始地址,要读写的数据块长度,然后发送起始命令开始DMA传输。当数据传输完成时,DMA会给出中断通知处理器传输已经结束。整个数据通信过程中,ARM只需要发送控制命令,数据是通过DMA来搬运的,加上AXI_HP接口的高带宽,因此传输速度非常快。
[0010]海量数据的复杂处理过程,对嵌入式处理器的性能提出了很高的要求,普通的单核处理器通常难以满足性能需求,实现复杂数据处理的时间开销较大。而在本发明所涉及的异构多核处理器平台上,使用FPGA代替ARM进行复杂数据处理实现硬件加速成为解决性能瓶颈的一个重要方法。
[0011]本发明以ARM和FPGA之间的通信方法以及FPGA并行算法的调用为基础,将轻量级MapReduce系统中最为复杂耗时的Map任务扩展到FPGA中去执行,保持轻量级MapReduce运行时系统的其他阶段在ARM中执行,给出了一种可适用于嵌入式异构多核处理器的可扩展并行编程模型。
[0012]所述基于嵌入式异构多核处理器的并行编程模型包括ARM端和FPGA端,所述FPGA端包括AXI Interconnect、VDMA控制器和硬件加速器,所述VDMA控制器为硬件加速器提供快速读写内存的数据通道。
[0013]作为本发明进一步的方案:所述硬件加速器和ARM之间的通信采用AXI_GP和AXI_HP两种通信方式;所述ARM利用AXI_GP接口读写硬件加速器的端口寄存器,实现对FPGA的初始化和控制功能,所述硬件加速器通过VDMA和AXI_HP接口直接访问到ARM的内存,实现与ARM的高速数据交互。
[0014]作为本发明进一步的方案:所述ARM接收输入文件后,将文件分割为多个部分,再通过调用FPGA驱动,将对输入文件的每一个分割开辟一个Map线程并进行并行处理的任务扩展到FPGA平台中执行,FPGA执行完毕后将中间结果返回给ARM,实现硬件加速。
[0015]所述基于嵌入式并行编程模型是基于多FPGA的可扩展MapReduce架构;轻量级MapReduce系统的执行方式为:首先仍是按照基本的MapReduce流程,读取输入文件,并根据处理器的核心数目将输入分割为多个部分。然后系统开辟多个Map线程,每一个线程处理一个输入数据的分割。但是在map函数中,并不是直接进行数据处理,而是ARM调用FPGA加速器的Linux驱动程序,调用FPGA代替ARM完成最耗时的数据处理程序。ARM将所需要处理的数据分割,并应用AXI_HP高速通信方法传递给FPGA,FPGA处理完成之后同样采用AXI_HP接口将结果返回给ARM。ARM接下来执行后续的化简与合并任务,最终输出结果。此外,ARM通过驱动程序,还可以完成对FPGA加速模块的管理和控制功能。ARM通过调用ICAP/PCAP模块,还能够实现FPGA的动态重构的功能。
[0016]作为本发明进一步的方案:所述ARM调用FPGA进行硬件加速的流程,包括以下步骤:
(1)用户空间程序首先写入配置参数,初始化硬件加速器和VDMA控制器;
(2)用户空间程序在内存中准备好硬件加速器所需的数据结构,等待硬件加速器的处理;
(3)向VDMA控制器写入输入输出的内存地址;
(4)启动硬件加速器,开始DMA传输,将内存中准备好的数据结构传送到硬件加速器中进行处理,处理完成之后的数据再由DMA搬运到输出内存中;同时硬件加速器向ARM发送一个中断信号,告知ARM计算已经完成;
(5)用户空间程序从输出内存中取出处理完成后的数据,进行下一步处理。
[0017]与现有技术相比,本发明的有益效果是:本发明在ARM提供通用的基础计算环境,执行串行程序的基础上,利用FPGA强大的峰值计算能力对复杂算法进行加速,从而改善系统性能,既保持了 ARM编程的灵活性和易用性,又能够发挥FPGA高性能的计算能力。基于嵌入式异构多核处理器的并行编程模型充分利用了双核ARM处理器的能力以及FPGA的加速能力,同时该并行编程模型能和Google的MapReduce模型兼容,能够将该多核嵌入式处理器扩展到云计算节点中进行使用。本发明实现了 FPGA利用AXI_HP高速接口与ARM通信、协同工作的功能,提高了嵌入式异构多核处理器的处理效率和可扩展性。
【附图说明】
[0018]图1为本发明高速核间通信过程图;
图2为本发明嵌入式异构多核处理器上并行编程模型实现图;
图3为本发明核间通信测试过程图;
图4为本发明嵌入式异构多核处理器上单个、多个ARM及多个IP核测试结果一;
图5为本发明嵌入式异构多核处理器上单个、多个ARM及多个IP核测试结果二 ;
图6为本发明嵌入式异构多核处理器上单个、多个ARM及多个IP核测试结果三;
图?为本发明嵌入式异构多核处理器上单个、多个ARM及多个IP核测试结果四。
【具体实施方式】
[0019]下面将结合本发明实施例及附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020]请参阅图1,本发明实施例中,一种基于嵌入式异构多核处理器上的核间通信方法,基于AXI_HP接口的高速通信是利用DMA进行操作的,本发明通过设计一个基于AXI_Stream流式接口的图像处理算法IP核,当ARM启动FPGA硬件加速器IP核开始计算时,IP核通过AXI_HP接口从DDR中取出待处理的数据进行处理,处理之后的数据同样以DMA的方式通过AXI_HP接口返回到DDR内存中。当全部数据处理完成并写回之后,IP核会向ARM发送一个中断信号,表明处理已完成。
[0021]请参阅图2,异构多核系统的FPGA端主要包括AXI Interconnect, VDMA控制器和硬件加速器三部分。AXI Interconnect的作用是提供将一个或多个AXI主设备连接到一个或多个AXI从设备的交换机制。在传统总线中,外设之间共享总线上的地址空间,处理器和外设进行总线访问时都需要向仲裁器申请总线访问权,而AXI Interconnct的总线结构类似于网络中的二层交换机,提供了点对点的主从接口,保证总线上的每个节点独享总线带宽,完成数据传输。
[0022]VDMA控制器是软IP核,提供了 FPGA和DDR之间的高带的数据传输。VDMA控制器具有 MM2S (Memory Map to Stream)和 S2MM (Stream to Memory Map)两个端口,每个端口都是64位数据宽度,并具备最大深度为512FIF0缓冲。为了实现FPGA和ARM之间的高速数据交互,需要使用AXI_HP高速通信接口,因此,这里的VDMA控制器就是作为DMA控制器,提供了 FPGA硬件加速器快速读写内存的数据
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1