CN102270189A - 基于fpga多核系统的核间通信方法 - Google Patents
基于fpga多核系统的核间通信方法 Download PDFInfo
- Publication number
- CN102270189A CN102270189A CN2011101644214A CN201110164421A CN102270189A CN 102270189 A CN102270189 A CN 102270189A CN 2011101644214 A CN2011101644214 A CN 2011101644214A CN 201110164421 A CN201110164421 A CN 201110164421A CN 102270189 A CN102270189 A CN 102270189A
- Authority
- CN
- China
- Prior art keywords
- core
- inter
- fpga
- interaction
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Image Processing (AREA)
Abstract
本发明公开了一种基于FPGA多核系统的核间通信方法,所述多核系统包括至少两个软核,所有软核挂载在FPGA的共享缓冲上,共享所有外设资源,所述核间通信包括核间的数据交互和命令交互,当交互数据时,相邻软核之间采用快速点对点连接总线方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱及互斥量方式进行核间交互;当交互命令时,相邻软核之间采用快速点对点连接总线结合中断方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱、互斥量结合中断方式进行核间交互。本发明依据软核间物理位置的不同对核间通信进行了严格分类,最大程度上节省了FPGA的片上资源,整体提高了系统的运行效率。
Description
技术领域
本发明涉及基于FPGA的多核处理技术,尤其涉及一种基于FPGA多核系统的核间通信方法。
背景技术
为了能够继续满足摩尔定律的计算加速需求,硬件界引入了多核技术。基于多核的计算机系统是目前最具活力和发展前途的一项技术研究,尤其是基于多核架构的嵌入式系统,它将在音、视频信号处理领域、图像压缩和通信领域得到广泛的应用。相对于单核处理器,多核处理器突破了单核处理器在性能方面的瓶颈,为提高处理器的性能提供了一种新的途径,通过增加处理器的个数来提升处理器的运算速度。虽然多核能利用集成度提高带来的优势以使得芯片的性能成倍增加,但同时将原来单处理器系统中的一些问题引入到了多核处理器内部。多核处理器的各CPU核心执行的程序之间有时需要进行数据共享与同步,因此其硬件结构必须支持核间通信。高效的通信机制是多核处理器高性能的重要保障。
中国专利申请200910071475.9公开了一种基于FPGA的多核星载计算机,该计算机包括基于SRAM的FPGA、n个PROM、n个SRAM、反熔丝FPGA和配置NOR型闪存。该星载计算机可以根据卫星任务,通过FPGA硬件编程实现自动切换系统功能。该系统每个处理器相互独立,分别完成不同的功能。如果其中一个处理器的计算量较大,而后续的计算需要依赖于该处理器的计算结果,则很容易出现性能瓶颈以及资源浪费。
中国专利申请200910067489.3公开了一种基于多核技术的前馈神经网络硬件实现方法,涉及一种基于特定计算模型的计算机系统,采用多个NIOS II软核处理器构建一种多核系统,实现神经网络高速、分布、并行计算的目的。该系统中各处理器之间的通信由多端口存储器实现,每个处理器都在存储器空间中对应一段固定连续地址的空间,其缺点是必须要有一个核作为主控核,负责管理存储器空间,而且由于每个处理器分配的地址是固定且连续的,灵活性较差。
中国专利申请201010189839.6公开了一种基于多核的运动模糊图像复原系统,该系统中的多核处理模块由多个DSP构建,多核处理模块从DDR SDRAM中读取视频帧并进行图像补偿,双DSP核心的高效性能能够更有效的完成图像补偿和复原的功能。该系统每个DSP负责自身的图像处理任务,将结果输出。这种结构必须依赖于一个预处理模块,将待处理的图像预先分为n等份,然后将分割好的图像存储到每个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处理器本身挂接在OPB/PLB总线上,以保证整个多核通信系统中的所有软核共享总线处理能力,并受控于总线冲裁。在Microblaze的实现结构中,数据(指令)控制器用于对交互数据(操作命令)进行处理,块RAM则用于为交互数据(操作命令)提供临时的存储空间。
如图3所示,本发明核间通信过程流程图,多核通信系统首先处于开始待命状态并实时检查有无通信命令。当检测到通信命令时首先判断通信命令的具体要求和形式:
当交互数据时,相邻软核之间采用快速点对点连接总线方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱及互斥量方式进行核间交互;当交互命令时,相邻软核之间采用快速点对点连接总线结合中断方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱、互斥量或它们结合中断方式进行核间交互。
如果没有数据和命令交互,则判断是否访问外设资源,如果是则通过互斥量进行数据保护,不是则返回初始状态。
如图4所示,以共享缓冲通信方式实现的三核图像处理系统为例,包括3个软核(MB),编号0~1,首先软核0担当主核角色,时刻监测CF卡中是否有待处理的图片,一旦检测到就立即读取该图片的信息。读取信息成功则将图片的数据信息写入到软核0与软核1之间的共享缓冲shm01之中,否则继续读取信息。要说明的一点是,此时软核0写入数据的这一过程中将会使用到mailbox01(挂接在软核0与软核1之间)做数据的同步和保护工作,以避免软核1在错误时间对数据的读取带来对数据的破坏或是读取数据本身的不完整性。
图片数据信息写入成功后软核0则继续监控CF卡中是否有新的待处理图片,若有则重复上述操作,同时,软核1立即读取软核0写入到共享缓冲shm01中的数据。软核1读取操作成功则对数据进行RGB2YCrCb颜色变换处理,否则继续读取。软核1上的变换操作若是完成了则立即将其处理得到的中间结果写入到软核1与软核2之间的共享缓冲shm12中。与上述软核0进行写入操作的情况类似,此时软核1写入数据的这一过程中将会使用到mailbox12(挂接在软核1与软核2之间)做数据的同步和保护工作,以避免软核2在错误时间对数据的读取带来系统的异常错误。
软核1写完数据后会返回到读取共享缓冲shm01数据的状态中,监控软核0是否有新的数据交付其处理。软核2则立即读取共享缓冲shm12中的中间处理结果,读取成功则对其做DCT变换处理,否则继续读取。当软核2做完DCT变换之后会存储这一结果,存储成功后软核2会监控共享缓冲shm12中是否有新数据待处理,而对于第一幅图片的处理而言,整个处理流程已经结束。
Claims (2)
1.一种基于FPGA多核系统的核间通信方法,所述多核系统包括至少两个软核,所有软核挂载在FPGA的共享缓冲上,共享所有外设资源,所述核间通信包括核间的数据交互和命令交互,其特征在于:
当交互数据时,相邻软核之间采用快速点对点连接总线方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱及互斥量方式进行核间交互;当交互命令时,相邻软核之间采用快速点对点连接总线结合中断方式进行核间交互,非相邻软核之间采用共享缓冲、邮箱、互斥量或它们结合中断方式进行核间交互。
2.根据权利要求1所述的核间通信方法,其特征在于,所述软核包括本地数据RAM和指令RAM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110164421 CN102270189B (zh) | 2011-06-17 | 2011-06-17 | 基于fpga多核系统的核间通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110164421 CN102270189B (zh) | 2011-06-17 | 2011-06-17 | 基于fpga多核系统的核间通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102270189A true CN102270189A (zh) | 2011-12-07 |
CN102270189B CN102270189B (zh) | 2013-02-13 |
Family
ID=45052496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110164421 Active CN102270189B (zh) | 2011-06-17 | 2011-06-17 | 基于fpga多核系统的核间通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102270189B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559095A (zh) * | 2013-10-30 | 2014-02-05 | 武汉烽火富华电气有限责任公司 | 用于继电保护领域的双核多处理器架构的数据同步方法 |
CN103825697A (zh) * | 2014-03-11 | 2014-05-28 | 武汉迈信电气技术有限公司 | 基于PowerLink的多主站同步方法及系统 |
CN105260164A (zh) * | 2015-09-25 | 2016-01-20 | 北京航空航天大学 | 一种支持多任务并行的多核SoC架构设计方法 |
CN106648896A (zh) * | 2016-12-26 | 2017-05-10 | 北京四方继保自动化股份有限公司 | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 |
CN106686458A (zh) * | 2017-01-05 | 2017-05-17 | 北京星云互连科技有限公司 | 网络视频直播处理系统及方法 |
CN107590100A (zh) * | 2017-09-06 | 2018-01-16 | 北京航天发射技术研究所 | 一种多核处理器的核间数据交互方法 |
CN107977922A (zh) * | 2016-10-25 | 2018-05-01 | 杭州海康威视数字技术股份有限公司 | 一种图像分析方法、装置及系统 |
CN108228524A (zh) * | 2016-12-14 | 2018-06-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多核系统的核间交互方法 |
CN108288247A (zh) * | 2017-12-07 | 2018-07-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多核dsp平台上的实时图像细节增强方法 |
CN109960589A (zh) * | 2019-03-25 | 2019-07-02 | 上海富士施乐有限公司 | 嵌入式系统的系统软件层的实现方法、装置及可读介质 |
CN111190854A (zh) * | 2019-12-31 | 2020-05-22 | 京信通信系统(中国)有限公司 | 通信数据处理方法、装置、设备、系统和存储介质 |
CN111913822A (zh) * | 2020-08-28 | 2020-11-10 | 电子科技大学 | 一种基于amp架构的核间通信方式 |
CN112699062A (zh) * | 2020-12-28 | 2021-04-23 | 湖南博匠信息科技有限公司 | 数据高速存储系统 |
CN113422665A (zh) * | 2021-08-23 | 2021-09-21 | 奥特酷智能科技(南京)有限公司 | 一种基于ipc机制实现车载系统时间同步的方法及系统 |
CN113434087A (zh) * | 2021-06-28 | 2021-09-24 | 山东航天电子技术研究所 | 基于共享空间的多核启动方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732628A (zh) | 2019-10-29 | 2021-04-30 | Oppo广东移动通信有限公司 | 核间数据处理方法、系统、片上系统以及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060230207A1 (en) * | 2005-04-11 | 2006-10-12 | Finkler Ulrich A | Asynchronous symmetric multiprocessing |
CN101303687A (zh) * | 2008-06-03 | 2008-11-12 | 浙江大学 | 一种嵌入式异构多核体系片上通信的实现方法 |
CN201444298U (zh) * | 2009-07-29 | 2010-04-28 | 浪潮电子信息产业股份有限公司 | 一种多核处理器与二级缓存之间的通讯模块 |
CN102073481A (zh) * | 2011-01-14 | 2011-05-25 | 上海交通大学 | 多核dsp可重构专用集成电路系统 |
-
2011
- 2011-06-17 CN CN 201110164421 patent/CN102270189B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060230207A1 (en) * | 2005-04-11 | 2006-10-12 | Finkler Ulrich A | Asynchronous symmetric multiprocessing |
CN101303687A (zh) * | 2008-06-03 | 2008-11-12 | 浙江大学 | 一种嵌入式异构多核体系片上通信的实现方法 |
CN201444298U (zh) * | 2009-07-29 | 2010-04-28 | 浪潮电子信息产业股份有限公司 | 一种多核处理器与二级缓存之间的通讯模块 |
CN102073481A (zh) * | 2011-01-14 | 2011-05-25 | 上海交通大学 | 多核dsp可重构专用集成电路系统 |
Non-Patent Citations (1)
Title |
---|
MED AYMEN SIALA ET AL.: "A Survey on Existing MPSOCs Architectures", 《INTERNATIONAL JOURNAL OF COMPUTER APPLICATIONS》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559095B (zh) * | 2013-10-30 | 2016-08-31 | 武汉烽火富华电气有限责任公司 | 用于继电保护领域的双核多处理器架构的数据同步方法 |
CN103559095A (zh) * | 2013-10-30 | 2014-02-05 | 武汉烽火富华电气有限责任公司 | 用于继电保护领域的双核多处理器架构的数据同步方法 |
CN103825697A (zh) * | 2014-03-11 | 2014-05-28 | 武汉迈信电气技术有限公司 | 基于PowerLink的多主站同步方法及系统 |
CN105260164A (zh) * | 2015-09-25 | 2016-01-20 | 北京航空航天大学 | 一种支持多任务并行的多核SoC架构设计方法 |
CN107977922A (zh) * | 2016-10-25 | 2018-05-01 | 杭州海康威视数字技术股份有限公司 | 一种图像分析方法、装置及系统 |
CN107977922B (zh) * | 2016-10-25 | 2020-12-25 | 杭州海康威视数字技术股份有限公司 | 一种图像分析方法、装置及系统 |
CN108228524A (zh) * | 2016-12-14 | 2018-06-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多核系统的核间交互方法 |
CN108228524B (zh) * | 2016-12-14 | 2021-07-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多核系统的核间交互方法 |
CN106648896A (zh) * | 2016-12-26 | 2017-05-10 | 北京四方继保自动化股份有限公司 | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 |
CN106686458A (zh) * | 2017-01-05 | 2017-05-17 | 北京星云互连科技有限公司 | 网络视频直播处理系统及方法 |
CN107590100B (zh) * | 2017-09-06 | 2020-06-19 | 北京航天发射技术研究所 | 一种多核处理器的核间数据交互方法 |
CN107590100A (zh) * | 2017-09-06 | 2018-01-16 | 北京航天发射技术研究所 | 一种多核处理器的核间数据交互方法 |
CN108288247B (zh) * | 2017-12-07 | 2021-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多核dsp平台上的实时图像细节增强方法 |
CN108288247A (zh) * | 2017-12-07 | 2018-07-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多核dsp平台上的实时图像细节增强方法 |
CN109960589A (zh) * | 2019-03-25 | 2019-07-02 | 上海富士施乐有限公司 | 嵌入式系统的系统软件层的实现方法、装置及可读介质 |
CN111190854A (zh) * | 2019-12-31 | 2020-05-22 | 京信通信系统(中国)有限公司 | 通信数据处理方法、装置、设备、系统和存储介质 |
CN111190854B (zh) * | 2019-12-31 | 2024-03-26 | 京信网络系统股份有限公司 | 通信数据处理方法、装置、设备、系统和存储介质 |
CN111913822A (zh) * | 2020-08-28 | 2020-11-10 | 电子科技大学 | 一种基于amp架构的核间通信方式 |
CN111913822B (zh) * | 2020-08-28 | 2023-03-28 | 电子科技大学 | 一种基于amp架构的核间通信方式 |
CN112699062A (zh) * | 2020-12-28 | 2021-04-23 | 湖南博匠信息科技有限公司 | 数据高速存储系统 |
CN113434087A (zh) * | 2021-06-28 | 2021-09-24 | 山东航天电子技术研究所 | 基于共享空间的多核启动方法 |
CN113422665A (zh) * | 2021-08-23 | 2021-09-21 | 奥特酷智能科技(南京)有限公司 | 一种基于ipc机制实现车载系统时间同步的方法及系统 |
CN113422665B (zh) * | 2021-08-23 | 2021-11-12 | 奥特酷智能科技(南京)有限公司 | 一种基于ipc机制实现车载系统时间同步的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102270189B (zh) | 2013-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102270189B (zh) | 基于fpga多核系统的核间通信方法 | |
US11567780B2 (en) | Apparatus, systems, and methods for providing computational imaging pipeline | |
EP3400688B1 (en) | Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications | |
US9459874B2 (en) | Instruction set architecture-based inter-sequencer communications with a heterogeneous resource | |
US6363453B1 (en) | Parallel processor with redundancy of processor pairs | |
US7802025B2 (en) | DMA engine for repeating communication patterns | |
US7805638B2 (en) | Multi-frequency debug network for a multiprocessor array | |
CN107273093B (zh) | 可伸缩计算结构 | |
JPS62208158A (ja) | マルチプロセツサシステム | |
US9560117B2 (en) | Low latency cluster computing | |
US10659396B2 (en) | Joining data within a reconfigurable fabric | |
CN101295241A (zh) | 传送数据 | |
CN101876964A (zh) | 一种芯片的片上多处理器结构 | |
JP4935730B2 (ja) | 画像処理装置 | |
US20130080746A1 (en) | Providing A Dedicated Communication Path Separate From A Second Path To Enable Communication Between Complaint Sequencers Of A Processor Using An Assertion Signal | |
CN112416856A (zh) | 一种面向多核技术的分布式可重构机载容错系统 | |
JP2010134698A (ja) | 情報処理システム | |
JPS58201166A (ja) | マルチプロセツサ方式 | |
JP7073403B2 (ja) | 高スループット内部通信プロトコルを用いる画像処理プロセッサ | |
US20160034291A1 (en) | System on a chip and method for a controller supported virtual machine monitor | |
CN101539849B (zh) | 一种处理器以及一种寄存器选通方法 | |
CN102043755A (zh) | 可重组态处理装置及其系统 | |
CN115698995A (zh) | 硬件自动加载器 | |
Khan et al. | RSM—a restricted shared memory architecture for high speed interprocessor communication | |
JPH04281583A (ja) | データ駆動型プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |