CN107957971A - 一种基于fpga的多处理器之间的通信系统及通信方法 - Google Patents

一种基于fpga的多处理器之间的通信系统及通信方法 Download PDF

Info

Publication number
CN107957971A
CN107957971A CN201711060878.4A CN201711060878A CN107957971A CN 107957971 A CN107957971 A CN 107957971A CN 201711060878 A CN201711060878 A CN 201711060878A CN 107957971 A CN107957971 A CN 107957971A
Authority
CN
China
Prior art keywords
communication
processor
instruction
interface
unit
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.)
Pending
Application number
CN201711060878.4A
Other languages
English (en)
Inventor
段筱雨
周萍
杜洋
陈宏斌
杨海燕
展领
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guilin University of Electronic Technology
Original Assignee
Guilin University of Electronic Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201711060878.4A priority Critical patent/CN107957971A/zh
Publication of CN107957971A publication Critical patent/CN107957971A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于FPGA的多处理器之间的通信系统及通信方法,包括处理器和与处理器连接的FPGA模块,所述FPGA模块包括顺序连接的接口单元、缓存单元和控制单元;所述接口单元和缓存单元为数个,其数量根据需要通信的处理器数量而定,每个接口单元一端分别与一个处理器的通信接口连接,用于处理器发送和接收通信指令;接口单元另一端通过缓存单元与控制单元连接,控制单元为一个,用于将源端处理器的缓存单元接收到的通信指令转移到目的端处理器的缓存单元。本发明通信系统能够支持不同处理器采用不同的通信接口类型实现相互通信;处理器没有主从限制,都可以发起通信请求;对于本来就设计有FPGA器件的系统,能够减少系统电路的复杂性,提高系统稳定性。

Description

一种基于FPGA的多处理器之间的通信系统及通信方法
技术领域
本发明涉及通信和数字信号处理领域,特别是一种基于FPGA的多处理器之间的通信系统及通信方法。
背景技术
随着通信技术的发展,处理器需要处理的数据量急剧增加,单一的处理器已经无法满足设备对功能和性能要求,在一个设备或系统中需要集成多个处理器,每个处理器完成部分功能,多处理器之间协同工作,共同实现目标功能,因此,各处理器之间相互通信的需求也随之增加。
目前处理器支持的通信接口主要有并行总线接口、以太网接口、异步RS232接口以及SPI接口等。
为了实现多处理器之间的通信,往往需要根据处理器使用的通信接口另外设计通信功能电路。例如,如果多处理器之间使用以太网通信,则一般采用以太网交换芯片实现多处理器之间的通信;如果多处理器之间采用并行总线接口,则一般采用双口RAM方式实现两个处理器之间的通信;如果多处理器之间采用SPI接口进行通信,则一般采用主从互连方式实现多个处理器之间的通信。
对于以太网接口通信方式,需要额外增加以太网交换芯片及外围电路,而且部分功能简单的处理器不支持以太网接口;对于双口RAM或RS232通信方式,同时只能支持两个处理器之间通信;对于采用SPI通信方式,只能1个处理器为主机,其余处理器作为从机,从机只能接收通信请求,无法发起通信请求,因此通信能力受到限制。
另外,上述所有通信方式要求每个处理器使用的通信接口类型必须相同,但实际使用过程中,由于每个处理器对通信带宽的需求不同,为了适应其中对通信带宽需求最大的处理器,其余全部处理器必须采用与其相同的通信接口,造成处理器性能和成本的浪费。
发明内容
本发明的目的是为克服现有技术的不足,而提供一种基于FPGA的多处理器之间的通信系统及通信方法。
实现本发明目的的技术方案是:
一种基于FPGA的多处理器之间的通信系统,包括处理器和与处理器连接的FPGA模块,与现有技术不同的是:
所述FPGA模块包括顺序连接的接口单元、缓存单元和控制单元;
所述接口单元和缓存单元为数个,其数量根据需要通信的处理器数量而定,每个接口单元一端分别与一个处理器的通信接口连接,用于处理器发送和接收通信指令;接口单元另一端通过缓存单元与控制单元连接,控制单元为一个,用于将源端处理器的缓存单元接收到的通信指令转移到目的端处理器的缓存单元。
所述接口单元和缓存单元的数量与处理器数量相等。
所述缓存单元由写指令缓存单元和读指令缓存单元组成。
本发明涉及一种基于FPGA的多处理器之间的通信方法,包括如下步骤:
(1)通信指令写入:通信源端处理器通过处理器的通信接口发送通信指令,接口单元接收通信指令,并将指令内容写入缓存单元的写指令缓存;
(2)通信指令转移:控制单元检测到源端处理器的写指令缓存非空后,从写指令缓存中读出通信指令,然后将通信指令写入通信目的端处理器缓存单元的读指令缓存,完成通信指令的转移;
(3)通信指令读出:通信目的端处理器通过接口单元从缓存单元的读指令缓存中读取指令;或接口单元将缓存单元的读指令缓存中的通信指令发送至通信目的端处理器;通信目的端处理器接收到源端处理器的通信指令,通信过程结束。
所述控制单元检测缓存单元中写指令缓存是否为空时,检测顺序控制可以采用轮询方式或优先级方式。
本发明的有益效果是:
(1)理论上能支持的处理器数量不受限制,实际上,与FPGA可编程逻辑资源及有关。
(2)能够支持不同类型处理器之间的通信,例如各类嵌入式处理器、单片机、DSP之间的通信。
(3)能够支持不同处理器采用不同的通信接口类型实现相互通信,原理是由接口单元实现处理器接口与缓存单元接口的转换,使控制单元的处理过程与处理器通信接口类型无关。常用的处理器接口包括并行总线接口、以太网接口、RS232异步串口以及SPI接口等。
(4)处理器没有主从限制,都可以发起通信请求。
(5)控制单元对每个处理器对应的缓存单元中写指令缓存的检测方法可分为轮询方式或优先级方式。轮询方式中,每个缓存单元的关系是平等的,控制单元依次查询每个写指令缓存是否为空;优先级方式中,可设定每个缓存单元的优先级高低,只有高优先级缓存单元的写指令缓存非空时,才进行对低优先级缓存单元的检查,保证高优先级处理器的通信指令得到优先处理。
(6)对于本来就设计有FPGA器件的系统,能够减少系统电路的复杂性,提高系统稳定性。
附图说明
图1是本发明的通信系统组成框图。
图2是本发明的通信方法流程图。
图3是本发明实施例的通信系统组成框图。
图4是本发明实施例的通信指令格式。
图5是本发明实施例1的以太网接口通信指令帧格式。
图6是本发明实施例2的异步RS232接口通信指令帧格式。
图7是本发明实施例1的通信指令转移过程。
图8是本发明实施例1的处理器2作为目的端,通信指令读出过程。
图9是本发明实施例1的处理器2作为源端,通信指令写入过程。
图10是本发明实施例2的通信指令转移过程。
具体实施方式
为了使本发明技术方案更加清晰,下面结合附图,对本发明做进一步的详细说明。
参照图1,是本发明的通信系统组成框图。它依次由接口单元、缓存单元和控制单元组成,缓存单元由写指令缓存和读指令缓存组成,其中,接口单元和缓存单元数量根据需要通信的处理器数量而定,每个处理器需要一个接口单元和一个缓存单元,而控制单元只需要一个。
本发明中将一次通信过程定义为通信源端处理器发出通信指令,通信目的端处理器接收到通信指令。
本发明提供两个实施例,每个实施例以两个处理器之间通信为例,分别对并行总线接口与以太网接口、异步RS232接口与SPI接口的处理器之间通信进行说明。附图3是两个实施例的系统组成框图。
两个实施例采用相同的通信指令格式,附图4为处理器通信指令格式,每条通信指令长度为8个字节,其中第1个字节为目的端处理器标识,其余7个字节为指令内容,并且定义处理器1标识为0x01,处理器2标识为0x02。
实施例1
本实施例以两个处理器通信为例,其中处理器1通信接口为并行总线接口,处理器2通信接口为以太网接口。
首先说明处理器1为源端处理器,处理器2为目的端处理器的通信过程。
步骤1:通信指令写入
处理器1通过并行总线接口与接口单元互连,假设处理器1的并行总线接口中数据总线宽度为16bit,即一次写操作可以写入2个字节,那么处理器1将1条通信指令分4次写操作写入缓存单元,接口单元检测到处理器1的写操作后,根据并行总线接口地址区分当前写操作是通信指令的哪两个字节,并将其存储到写指令缓存中。接口单元通过4次存储操作,完成1条通信指令的写入。由于通信目的端为处理器2,因此,该通信指令的第1个字节为0x02。
步骤2:通信指令转移
参考图7是通信指令转移过程,控制单元采用轮询方式依次检测每个缓存单元中写指令缓存是否为空,当控制单元检测到处理器1的写指令缓存后,发现该写指令缓存非空,便从该缓存读出通信指令,根据通信指令中目的端处理器标识字节为0x02,判断本次通信目的端为处理器2,于是控制单元将通信指令写入处理器2缓存单元的读指令缓存,完成通信指令转移。
步骤3:通信指令读出
处理器2通过以太网接口与接口单元互连,附图5是以太网接口通信指令帧格式定义,帧长度固定为64字节,其中净荷为48个字节,净荷的前8个字节为通信指令内容,其余净荷字节填充0。附图8是处理器2通信指令读出过程图,当处理器2对应的接口单元检测到读指令缓存非空后,从缓存中将通信指令读出,并将通信指令封装成附图5定义的以太网数据包格式,通过以太网接口发送至处理器2。
处理器2接收到以太网包后,从净荷中提取出通信指令,完成本次通信过程。
其次,说明处理器2为源端处理器,处理器1为目的端处理器的通信过程。
步骤1:通信指令写入。
处理器2通过以太网接口发送通信指令以太网帧,帧格式如附图5所示,其中源MAC地址和目的MAC地址可以是任意约定值,帧长度为64字节,净荷内容的前8个字节为通信指令,本次通信目的端为处理器1,因此,通信指令第1个字节内容为0x01,第2~7个字节为通信指令内容,净荷第9~28个字节固定填充0,最后4个字节为以太网的CRC32校验。
参考图9是通信指令写入过程,处理器2对应的接口单元接收到以太网帧后,按照附图5格式对以太网帧进行校验,校验正确后,从净荷中获取通信指令内容,即净荷的第1~8个字节,并将其写入写指令缓存中,完成通信指令写入。
步骤2:通信指令转移
参考图7是通信指令转移过程。控制单元采用轮询方式依次检测每个缓存单元中写指令缓存是否为空,当检测到处理器2的写指令缓存后,发现该缓存非空,便从写指令缓存中读出通信指令,根据通信指令中目的端处理器标识内容为0x01,确定本条通信指令的目的端为处理器1,因此,将通信指令写入处理器1的读指令缓存中,完成通信指令转移。
步骤3:通信指令读出
处理器1通过并行总线周期性检测读指令缓存是否为空,当处理器1检测到读指令缓存非空后,通过并行总线将通信指令读出,由于并行总线中数据总线宽度为16bit,因此,每次读操作只能读取2个字节,处理器1通过4次读操作,将完整的通信指令读出。
处理器1获取到完整的通信指令后,完成本次通信过程。
实施例2
本实施例以两个处理器通信为例,其中处理器1通信接口为异步RS232接口,处理器2通信接口为SPI接口。
首先,说明处理器1为源端处理器,处理器2为目的端处理器的通信过程。
步骤1:通信指令写入。
处理器1通过异步RS232接口与接口单元互连,参考图6是异步RS232接口通信指令的帧格式,该帧以0x55字节为起始标识,起始标识之后为8字节的通信指令,以0xAA字节为结束标识。
处理器1按照上述帧格式,通过异步RS232接口将通信指令发送至接口单元。接口单元根据起始标识和结束标识判断完整一帧,并将一帧中的8个字节的通信指令内容写入写指令缓存,完成通信指令写入。
本次通信的目的端为处理器2,因此通信指令的第1个字节内容为0x02。
步骤2:通信指令转移。
控制单元采用优先级方式检测每个缓存单元中写指令缓存是否为空,通信指令转移过程如参考图10所示。假设处理器1优先级高,处理器2优先级低,如果处理器1的写指令缓存非空,则优先转移处理器1的写指令缓存中的通信指令,只有处理器1的写指令缓存为空时,才转移处理器2的写指令缓存中的通信指令。
控制单元检测到处理器1的写指令缓存非空后,从缓存中读取通信指令,并根据目的端处理器标识内容为0x02,判断本次通信的目的端是处理器2,然后将通信指令写入处理器2的读指令缓存,完成通信指令转移。
步骤3:通信指令读出
处理器2通过SPI接口与接口单元互连,其中处理器2是SPI接口的主机,接口单元是SPI接口的从机。处理器2发送SPI读操作时序,每个读操作可以读8个字节,因此,处理器2可以通过一次读操作,将一条通信指令的8个字节读出,处理器2获取到完整的通信指令后,完成本次通信过程。
其次,对处理器2作为源端处理器,处理器1作为目的端处理器的通信过程进行说明。
步骤1:通信指令写入。
处理器2通过SPI接口与接口单元互连,其中处理器2作为SPI接口主机,接口单元作为SPI接口从机。处理器2以SPI接口时序发送写操作,SPI写操作地址需事先定义好,由于该地址的定义与本发明内容无关,在此不另说明,SPI写操作数据即为通信指令内容。接口单元根据SPI写操作地址区分数据字节,完成通信指令接收,并将其写入写指令缓存,完成通信指令写入。
步骤2:通信指令转移。
通信指令转移过程如参考图10所示,控制单元优先检测处理器1的写指令缓存,在处理器1的写指令缓存为空的前提下,检测到处理器2的写指令缓存非空,则将处理器2写指令缓存中的通信指令读出,根据通信指令中的目的端标识字节0x01确定本条通信指令的目的端为处理器1,因此,将通信指令内容写入处理器1的读指令缓存,完成通信指令转移。
步骤3:通信指令读出。
处理器1的接口单元检测到处理器1读指令缓存非空后,从读指令缓存中读出通信指令,并将通信指令按照参考图6所示异步RS232接口通信指令帧格式发送至处理器1的异步RS232接口。处理器1从RS232接口中接收到完整一帧,并根据帧起始标识和结束标识,提取出通信指令内容,完成本次通信过程。
通过上述两个实施例可以知道,接口单元的主要功能是完成处理器接口与通信指令内容的转换,对于源端处理器,接口单元按照接口协议接收通信指令,对于目的端处理器,接口单元将通信指令封装成接口协议格式后发送至处理器。至于实施例中定义的通信指令格式、接口协议相关内容(如并行总线中数据总线宽度、以太网接口通信指令帧格式、异步RS232接口通信指令帧格式、SPI接口的访问地址等)是为了更好地说明本发明内容,而非对本发明内容的限制。

Claims (4)

1.一种基于FPGA的多处理器之间的通信系统,包括处理器和与处理器连接的FPGA模块,其特征是:
所述FPGA模块包括顺序连接的接口单元、缓存单元和控制单元;
所述接口单元和缓存单元为数个,其数量根据需要通信的处理器数量而定,每个接口单元一端分别与一个处理器的通信接口连接,用于处理器发送和接收通信指令;接口单元另一端通过缓存单元与控制单元连接,控制单元为一个,用于将源端处理器的缓存单元接收到的通信指令转移到目的端处理器的缓存单元。
2.根据权利要求1所述的通信系统,其特征是:所述缓存单元由写指令缓存单元和读指令缓存单元组成。
3.一种基于FPGA的多处理器之间的通信方法,其特征是:包括如下步骤:
(1)通信指令写入:通信源端处理器通过处理器的通信接口发送通信指令,接口单元接收通信指令,并将指令内容写入缓存单元的写指令缓存;
(2)通信指令转移:控制单元检测到源端处理器的写指令缓存非空后,从写指令缓存中读出通信指令,然后将通信指令写入通信目的端处理器缓存单元的读指令缓存,完成通信指令的转移;
(3)通信指令读出:通信目的端处理器通过接口单元从缓存单元的读指令缓存中读取指令;或接口单元将缓存单元的读指令缓存中的通信指令发送至通信目的端处理器;通信目的端处理器接收到源端处理器的通信指令,通信过程结束。
4.根据权利要求3所述的通信方法,其特征是:所述控制单元检测缓存单元中写指令缓存是否为空时,检测顺序控制可以采用轮询方式或优先级方式。
CN201711060878.4A 2017-11-02 2017-11-02 一种基于fpga的多处理器之间的通信系统及通信方法 Pending CN107957971A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711060878.4A CN107957971A (zh) 2017-11-02 2017-11-02 一种基于fpga的多处理器之间的通信系统及通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711060878.4A CN107957971A (zh) 2017-11-02 2017-11-02 一种基于fpga的多处理器之间的通信系统及通信方法

Publications (1)

Publication Number Publication Date
CN107957971A true CN107957971A (zh) 2018-04-24

Family

ID=61964301

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711060878.4A Pending CN107957971A (zh) 2017-11-02 2017-11-02 一种基于fpga的多处理器之间的通信系统及通信方法

Country Status (1)

Country Link
CN (1) CN107957971A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109302470A (zh) * 2018-09-26 2019-02-01 郑州云海信息技术有限公司 一种n路服务器互联系统
CN109408426A (zh) * 2018-10-23 2019-03-01 四川九洲电器集团有限责任公司 一种灵活通用的串行通信方法及系统
CN111061674A (zh) * 2019-11-30 2020-04-24 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 多处理器交叉通信装置及方法
WO2021068978A1 (zh) * 2019-10-09 2021-04-15 盛科网络(苏州)有限公司 多处理器通信方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110074A (zh) * 2011-01-21 2011-06-29 杭州华三通信技术有限公司 多核处理器及流分类控制装置和方法
CN102271191A (zh) * 2011-08-31 2011-12-07 宇龙计算机通信科技(深圳)有限公司 移动终端和数据访问方法
CN102508808A (zh) * 2011-11-14 2012-06-20 北京北大众志微系统科技有限责任公司 一种实现主芯片与扩展芯片通信的系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110074A (zh) * 2011-01-21 2011-06-29 杭州华三通信技术有限公司 多核处理器及流分类控制装置和方法
CN102271191A (zh) * 2011-08-31 2011-12-07 宇龙计算机通信科技(深圳)有限公司 移动终端和数据访问方法
CN102508808A (zh) * 2011-11-14 2012-06-20 北京北大众志微系统科技有限责任公司 一种实现主芯片与扩展芯片通信的系统及方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109302470A (zh) * 2018-09-26 2019-02-01 郑州云海信息技术有限公司 一种n路服务器互联系统
CN109408426A (zh) * 2018-10-23 2019-03-01 四川九洲电器集团有限责任公司 一种灵活通用的串行通信方法及系统
CN109408426B (zh) * 2018-10-23 2020-06-26 四川九洲电器集团有限责任公司 一种灵活通用的串行通信方法及系统
WO2021068978A1 (zh) * 2019-10-09 2021-04-15 盛科网络(苏州)有限公司 多处理器通信方法及装置
CN111061674A (zh) * 2019-11-30 2020-04-24 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 多处理器交叉通信装置及方法
CN111061674B (zh) * 2019-11-30 2023-05-16 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 多处理器交叉通信装置及方法

Similar Documents

Publication Publication Date Title
CN103916252B (zh) 一种基于fpga的高带宽以太网ip核
CN107957971A (zh) 一种基于fpga的多处理器之间的通信系统及通信方法
CA2119152C (en) Network interface with host independent buffer management
CN108809854B (zh) 一种用于大流量网络处理的可重构芯片架构
US20040151170A1 (en) Management of received data within host device using linked lists
CN106951388A (zh) 一种基于PCIe的DMA数据传输方法及系统
US8972630B1 (en) Transactional memory that supports a put with low priority ring command
US9678866B1 (en) Transactional memory that supports put and get ring commands
CN108595353A (zh) 一种基于PCIe总线的控制数据传输的方法及装置
CN109800193B (zh) 一种ahb总线访问片上sram的桥接装置
JP4903801B2 (ja) FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法
CN1983223A (zh) 一种异步桥及数据传输方法
KR20120040535A (ko) 버스 시스템 및 그것의 동작 방법
CN112948295B (zh) 一种基于axi4总线的fpga与ddr高速数据包传输系统及方法
CN110188059B (zh) 数据有效位统一配置的流控式fifo缓存装置及方法
CN110297797A (zh) 异构协议转换装置和方法
CN114647602B (zh) 一种跨芯片访问控制的方法、装置、设备及介质
CN108337286A (zh) 一种切包方法及装置
CN103377170B (zh) 异构处理器间spi高速双向对等数据通信系统
CN110995507B (zh) 一种网络加速控制器及方法
CN113961494A (zh) 一种pcie总线与axi总线的桥接系统
CN108011792A (zh) 一种1394总线事务层-链路层数据包接收电路及方法
CN110311814B (zh) 可编程NoC万兆以太网资源网络接口系统
US9342313B2 (en) Transactional memory that supports a get from one of a set of rings command
CN108614792A (zh) 1394事务层数据包存储管理方法及电路

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180424