基于fpga多核系统的核间通信方法

文档序号:6426555阅读:176来源:国知局
专利名称:基于fpga多核系统的核间通信方法
技术领域
本发明涉及基于FPGA的多核处理技术,尤其涉及一种基于FPGA多核系统的核间通信方法。
背景技术
为了能够继续满足摩尔定律的计算加速需求,硬件界引入了多核技术。基于多核的计算机系统是目前最具活力和发展前途的一项技术研究,尤其是基于多核架构的嵌入式系统,它将在音、视频信号处理领域、图像压缩和通信领域得到广泛的应用。相对于单核处理器,多核处理器突破了单核处理器在性能方面的瓶颈,为提高处理器的性能提供了一种新的途径,通过增加处理器的个数来提升处理器的运算速度。虽然多核能利用集成度提高带来的优势以使得芯片的性能成倍增加,但同时将原来单处理器系统中的一些问题引入到了多核处理器内部。多核处理器的各CPU核心执行的程序之间有时需要进行数据共享与同步,因此其硬件结构必须支持核间通信。高效的通信机制是多核处理器高性能的重要保障。中国专利申请200910071475. 9公开了一种基于FPGA的多核星载计算机,该计算机包括基于SRAM的FPGA、n个PR0M、n个SRAM、反熔丝FPGA和配置NOR型闪存。该星载计算机可以根据卫星任务,通过FPGA硬件编程实现自动切换系统功能。该系统每个处理器相互独立,分别完成不同的功能。如果其中一个处理器的计算量较大,而后续的计算需要依赖于该处理器的计算结果,则很容易出现性能瓶颈以及资源浪费。中国专利申请200910067489. 3公开了一种基于多核技术的前馈神经网络硬件实现方法,涉及一种基于特定计算模型的计算机系统,采用多个NIOS II软核处理器构建一种多核系统,实现神经网络高速、分布、并行计算的目的。该系统中各处理器之间的通信由多端口存储器实现,每个处理器都在存储器空间中对应一段固定连续地址的空间,其缺点是必须要有一个核作为主控核,负责管理存储器空间,而且由于每个处理器分配的地址是固定且连续的,灵活性较差。中国专利申请201010189839. 6公开了一种基于多核的运动模糊图像复原系统, 该系统中的多核处理模块由多个DSP构建,多核处理模块从DDR SDRAM中读取视频帧并进行图像补偿,双DSP核心的高效性能能够更有效的完成图像补偿和复原的功能。该系统每个DSP负责自身的图像处理任务,将结果输出。这种结构必须依赖于一个预处理模块,将待处理的图像预先分为η等份,然后将分割好的图像存储到每个DSP对应的DDR SDRAM中。由于预处理模块将会承担全部的预处理任务,在高数据量的情况下将会成为性能瓶颈。并且, 这种多核处理的实现方式并不一定适用于图像处理之外的其他领域。

发明内容
本发明提供了一种基于FPGA多核系统的核间通信方法,解决了现有多核系统由于通信逻辑缺陷导致系统效率不高的问题。—种基于FPGA多核系统的核间通信方法,所述多核系统包括至少两个软核,所有软核挂载在FPGA的共享缓冲上,共享所有外设资源,所述核间通信包括核间的数据交互和命令交互,当交互数据时,相邻软核之间采用快速点对点连接总线方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱及互斥量方式进行核间交互;当交互命令时,相邻软核之间采用快速点对点连接总线结合中断方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱、互斥量或它们结合中断方式进行核间交互。邮箱比较适用于小于100字节数据的交互,因为发送方需要从自己的内存中拷贝数据,然后写到邮箱的FIFO中去,而相似的接收处理器则需要从FIFO中将数据拷贝出来。 当然邮箱的功能可以通过DMA来扩展,以省去数据的复制,从而可传递更大的数据量;互斥量是多核间共享资源时的一种同步机制,属于硬件同步。中断是异步的,可以收集众多外围设备产生的终端输入,并最终为系统的处理器产生唯一的中断输出,中断寄存器均通过总线上的从接口连接在一起。FSL是相邻核间的大数据量交互的通信方式,FSL提供了输出FIFO和输入FIFO之间一种点对点的传输通道。它分为M(Master)FSL和S(Slave)FSL两类接口,FSL的写操作存在两种模式阻塞模式和非阻塞模式。如果FIFO已满,在阻塞模式下处理器会等待,直到 FIFO因为输出变得不满为止;而在非阻塞模式下,写操作被禁止,同时在MSR中设置进位信号,这时指令仍将被执行。同样地,读操作也存在两种模式。从输入FIFO到寄存器内容转移过程需要两个时钟周期(只要FIFO中有数据),如果FIFO中没有数据,那么在阻塞模式下,处理器会等待,直到FIFO因为输入而获得数据为止;而在非阻塞模式下,数据的传输没有发生,同时在状态寄存器中设置进位信号,但是传输仍将被完成。所述软核包括本地数据RAM和指令RAM。所述软核采用XILINX的Spartan系列或Virtex系列的MicroBlaze。共享缓冲为所有软核共有,具有唯一的标识,各个软核具有各自的邮箱标识、互斥量标识、中断标识、FSL标识。本发明依据软核间物理位置的不同对核间通信进行了严格分类,相邻软核通过快速点对点连接总线结合中断方式进行核间通信,非相邻软核通过共享缓冲内存结合中断方式进行核间通信,该通信模型的设计在最大程度上节省了 FPGA的片上资源,整体提高了系统的运行效率。同时,对于非相邻软核间的通信,用户可依据交互数据量的大小来选择共享缓冲内存采用何种内存空间。一般,对于小数据量的交互,共享缓冲内存使用片上RAM即可满足存储空间的性能需求,降低了外围空间资源的浪费和损耗;而对于较大数据量的交互, 共享缓冲内存又可以使用外部内存DDR来扩展,通信模型具有更高的实用性和更方便的可扩展性。本发明中的多核通信模型由于结合了中断处理方式,可对外围设备产生的突发事件做出中断响应,系统稳定性和实时性更高。另外,由于每个软核具有专属的中断控制器, 软核处理器的中断处理功能相对独立,任一个中断请求将只被当前所有软核接受及处理, 不中断、不影响其他软核正在执行的系统分配的任务。本发明中的多核通信方法具有并行处理的特性,当主核上进行单一数据的处理时,从核处于阻塞状态,需要等待主核发送处理数据的中间结果作为其输入源;而当主核上进行分批数据的处理时,从核对接收到的数据流做暂时存储和及时处理,此时的主核不受从核任务执行的状态影响,整个多核通信系统中的软核均处于工作状态,从而实现了并行处理的需求。对于越复杂功能和越高数据量的算法处理,该系统的并行执行能力越见成效, 使得在诸多航天航空的图像处理领域中,系统的执行性能和工作效率不再成为瓶颈。


图1为本发明基于FPGA多核系统的结构示意图;图2为图1中MicroBlaze的实现示意图;图3为本发明核间通信过程流程图;图4为三核利用共享缓冲的通信方式进行图像处理的实例模型。
具体实施例方式如图1所示,一种基于FPGA的多核系统,包括四个软核,软核依次通过FSL总线连接形成环状结构,该四个软核挂载在FPGA的共享缓冲区,共用所有的外设资源。FPGA是指 XILINX的Spartan系列和Virtex系列的FPGA,上述软核采用FPGA中的MicroBlaze。如图2所示,Microblaze的实现示意图,任一个Microblaze由块RAM、数据LMB控制器、指令LMB控制器、数据LMB总线以及指令LMB总线构成。Microblaze通过其内部接口数据(指令)LMB端口作为起始点,利用数据(指令)LMB总线作为桥梁,从LMB总线接口作为终点,完成与数据(指令)LMB控制器的连接。数据(指令)LMB控制器通过其内部块 RAM端口与上层块RAM模块中端口 A(B)的连接实现互连。Microblaze处理器本身挂接在 0PB/PLB总线上,以保证整个多核通信系统中的所有软核共享总线处理能力,并受控于总线冲裁。在Microblaze的实现结构中,数据(指令)控制器用于对交互数据(操作命令)进行处理,块RAM则用于为交互数据(操作命令)提供临时的存储空间。如图3所示,本发明核间通信过程流程图,多核通信系统首先处于开始待命状态并实时检查有无通信命令。当检测到通信命令时首先判断通信命令的具体要求和形式当交互数据时,相邻软核之间采用快速点对点连接总线方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱及互斥量方式进行核间交互;当交互命令时,相邻软核之间采用快速点对点连接总线结合中断方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱、互斥量或它们结合中断方式进行核间交互。如果没有数据和命令交互,则判断是否访问外设资源,如果是则通过互斥量进行数据保护,不是则返回初始状态。如图4所示,以共享缓冲通信方式实现的三核图像处理系统为例,包括3个软核 (MB),编号O 1,首先软核O担当主核角色,时刻监测CF卡中是否有待处理的图片,一旦检测到就立即读取该图片的信息。读取信息成功则将图片的数据信息写入到软核O与软核1 之间的共享缓冲ShmOl之中,否则继续读取信息。要说明的一点是,此时软核O写入数据的这一过程中将会使用到mailboxOl (挂接在软核O与软核1之间)做数据的同步和保护工作,以避免软核1在错误时间对数据的读取带来对数据的破坏或是读取数据本身的不完整性。图片数据信息写入成功后软核O则继续监控CF卡中是否有新的待处理图片,若有则重复上述操作,同时,软核1立即读取软核O写入到共享缓冲ShmOl中的数据。软核1读取操作成功则对数据进行RGB2YCrCb颜色变换处理,否则继续读取。软核1上的变换操作若是完成了则立即将其处理得到的中间结果写入到软核1与软核2之间的共享缓冲shml2 中。与上述软核0进行写入操作的情况类似,此时软核1写入数据的这一过程中将会使用到mailboX12 (挂接在软核1与软核2之间)做数据的同步和保护工作,以避免软核2在错误时间对数据的读取带来系统的异常错误。 软核1写完数据后会返回到读取共享缓冲ShmOl数据的状态中,监控软核0是否有新的数据交付其处理。软核2则立即读取共享缓冲shml2中的中间处理结果,读取成功则对其做DCT变换处理,否则继续读取。当软核2做完DCT变换之后会存储这一结果,存储成功后软核2会监控共享缓冲shml2中是否有新数据待处理,而对于第一幅图片的处理而言,整个处理流程已经结束。
权利要求
1.一种基于FPGA多核系统的核间通信方法,所述多核系统包括至少两个软核,所有软核挂载在FPGA的共享缓冲上,共享所有外设资源,所述核间通信包括核间的数据交互和命令交互,其特征在于当交互数据时,相邻软核之间采用快速点对点连接总线方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱及互斥量方式进行核间交互;当交互命令时,相邻软核之间采用快速点对点连接总线结合中断方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱、互斥量或它们结合中断方式进行核间交互。
2.根据权利要求1所述的核间通信方法,其特征在于,所述软核包括本地数据RAM和指令 RAM。
全文摘要
本发明公开了一种基于FPGA多核系统的核间通信方法,所述多核系统包括至少两个软核,所有软核挂载在FPGA的共享缓冲上,共享所有外设资源,所述核间通信包括核间的数据交互和命令交互,当交互数据时,相邻软核之间采用快速点对点连接总线方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱及互斥量方式进行核间交互;当交互命令时,相邻软核之间采用快速点对点连接总线结合中断方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱、互斥量结合中断方式进行核间交互。本发明依据软核间物理位置的不同对核间通信进行了严格分类,最大程度上节省了FPGA的片上资源,整体提高了系统的运行效率。
文档编号G06F15/167GK102270189SQ20111016442
公开日2011年12月7日 申请日期2011年6月17日 优先权日2011年6月17日
发明者刘春红, 张亮, 沈沛意 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1