CN111190840A - 基于现场可编程门阵列控制的多方中央处理器通信架构 - Google Patents
基于现场可编程门阵列控制的多方中央处理器通信架构 Download PDFInfo
- Publication number
- CN111190840A CN111190840A CN201811356477.8A CN201811356477A CN111190840A CN 111190840 A CN111190840 A CN 111190840A CN 201811356477 A CN201811356477 A CN 201811356477A CN 111190840 A CN111190840 A CN 111190840A
- Authority
- CN
- China
- Prior art keywords
- cpu
- fpga
- data
- chip
- communication
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明提供了一种基于现场可编程门阵列控制的多方中央处理器通信架构,在多CPU芯片之间通过FPGA芯片的控制进行数据转发通信,由FPGA芯片对各方数据流进行调度。当CPU_A需要向CPU_B发出数据时,数据包以专有格式先发送到FPGA芯片中,FPGA对数据包进行解析和缓存,并以中断方式通知CPU_B准备接收数据,CPU_B从FPGA的缓冲区中读出数据后,完成了一次CPU之间的通信。FPGA芯片通过高速数据收发口随时接收CPU芯片下发的指令,当FPGA芯片主动需要同CPU芯片进行通信时,通过中断信号IO管脚向CPU芯片发出中断申请。
Description
技术领域
本发明涉及中央处理器(Central Processing Unit,CPU)与现场可编程门阵列(Field- Programmable Gate Array,FPGA)之间利用高速收发口进行通信的应用技术领域,具体地说,涉及一种在多CPU芯片之间通过FPGA芯片的控制进行数据转发通信,由FPGA芯片对各方数据流进行调度的方法。
背景技术
为了满足通信、多媒体和数字处理等高端应用,片上系统己不仅仅集成一个处理器,而更多的是将多个处理器集成到系统中,甚至还需要结合片外的处理器共同工作。由于系统集成了多个处理器,每个处理器相当于系统的一个主机,各个处理器在与共享资源间通信时,存在一定的逻辑冲突,造成了系统内部通信的一系列问题。目前主流的多处理器通信方式有以下四类:
1)共享存储器通信机制
共享存储器方式比较适合多处理器对于共享存储的处理,其实现方式是设立共享存储状态查询位来进行通信和识别。实现时在一个存储器中放有共享存储器的状态标志,该状态标志类似于信号灯。每次需要访问共享存储的主机设备需先访问该状态标志,如果此时存储器被其他处理器占用则等待其他设备访问结束后再进行访问。这种方法实现简单,需要配置的控制信息也较少。由于对状态标志需要进行识别,因此会增加一定的软件复杂度。
2)Mailbox硬件通信机制
Mailbox作为多处理器系统中处理器间进程同步和数据交换的硬件机制,其优点是应用相对的广,速度快。采用Mailbox的方式,主要是通过传输控制信息的方式进行多处理器通信。根据系统要求,可以定义不同的Mail来实现系统行为。例如:可以定义固定流量的数据传输,也可以定义固定区块的数据传输。通信双方的数据传输,属于片内并行数据传输,因此实时性好,速度快。同时还可以兼容中断和查询模式,减小控制CP U的处理时间压力。如果单纯用于固定的数据传输则Mail设计简单。但如果Mail定义的类型较多,会增加一定的Mail识别难度及识别时间。
3)DMA数据搬运通信机制
DMA(direct memory access)方式能够有效地缩减数据通信对处理器的时间占用,在传送大量数据时能发挥一定的作用。主要使用在程序更新及成片数据搬运方面。DMA可以作为辅助解决多处理器通信的部件。
4)串口主从模式通信机制
串口主从模式主要使用串口通信设备完成,将多个处理器分为主设备与从设备。当主处理器需要数据时就通过DART(Universal asynchronous receiver/transmitter)向从处理器发送请求数据命令,从处理器通过串口将数据发送去主处理器。由于串口通信延时较大,主处理器必须等待所有的数据从DART传入主处理器区域的SRAM进行组合,或者主处理器自身进行组合后,再处理方可使用,导致通信效率较低。同样从处理器在通信期间也不能向对应的存储区进行数据更新操作。所以传输和处理时间需要重点考虑。
使用串口主从模式进行通信优点在于对软件程序方面的依赖较少,缺点在于对内部电路结构有一定依赖性,传输模式单一,时间久.若设计复杂的通信协议,则对软件编程压力大。
发明内容
本发明的目的是提出一种通信协议简单、高速、对于不同类型CPU兼容性好,并具有可扩展可升级的CPU之间通信架构,以此解决目前的CPU通信方法存在的不足。
本发明所解决的技术问题可以采用以下技术方案实现:
多CPU芯片之间通过FPGA芯片的控制进行数据转发通信,由FPGA芯片对各方数据流进行调度。当CPU_A需要向CPU_B发出数据时,数据包以专有格式先发送到FPGA芯片中,FPGA对数据包进行解析和缓存,并以中断方式通知CPU_B准备接收数据,CPU_B从FPGA 的缓冲区中读出数据后,完成了一次CPU之间的通信。CPU芯片与FPGA芯片之间通过一个高速数据收发口和一个中断信号IO口进行连接,FPGA芯片通过高速数据收发口随时接收 CPU芯片下发的指令,当FPGA芯片主动需要同CPU芯片进行通信时,通过中断信号IO管脚向CPU芯片发出中断申请。FPGA芯片对接入通信系统的CPU芯片的状态实时进行检测,并将系统中各CPU设备状态对各CPU进行告知。FPGA芯片内部对接入系统的每个CPU设备就分配有专门的数据缓存区,CPU可从数据缓存区的任意位置读取任意长度的数据。
附图说明
图1:FPGA控制的多方CPU通信架构拓扑图
图2:FPGA内部逻辑模块图
图3:中断申请信号与应答信号波形图
图4:FPGA主动发起数据包通信流程图
图5:三方CPU通信时,FPGA内部架构图
具体实施方式
通信架构:图1
FPGA内部逻辑模块:图2
通信方法:
1、CPU之间通过FPGA控制进行通信。
2、CPU与FPGA之间通过一个高速收发口和一个中断信号IO进行通信。
3、CPU随时可以通过高速收发口向FPGA发各类型包,FPGA端即时对收到的包进行处理。
4、除了应CPU要求的返回包外,当FPGA主动要向CPU发包时,应先利用中断口向CPU端提出申请。中断申请信号与应答信号波形如图3所示。FPGA再按照CPU回应的包中所带的要求信息将包发给CPU。
5、FPGA向CPU主动发包只有两种情况:1)CPU状态查询包。2)向CPU申请发送数据包。工作原理及流程:
1、FPGA端具有多个高速收发口,可同时与多个CPU进行通信。FPGA定时(1秒)对各个高速收发口进行监测,发送状态查询包,此查询包中也包括现有与FPGA相连的所有CPU设备信息。
CPU信息中,最基本的包括有:a)设备属性(器件标识,FPGA通过CPU的返回信息获得)
b)设备地址(由接入FPGA时的接口决定);
c)设备状态(设备是否正常在线,输入缓存区是否可写,接收数据缓存区已用容量等,还可根据软件开发人员要求,增加所需信息。)
当某CPU设备在FPGA的中断申请等待时间(等待时间待定,根据软件对CPU的应用情况而定)内未响应,FPGA将撤销本次中断申请,若连续3次撤销对某CPU设备的中断申请,则认为此CPU设备已从系统移除或失效。
2、由FPGA主动发起通信(CPU响应中断后)
FPGA主动发起数据包通信流程:图4
FPGA--->CPU的状态查询包格式:
CPU--->FPGA的状态返回包格式:
FPGA--->CPU发出申请接收数据包格式:
CPU--->FPGA发出接收数据包格式:
FPGA--->CPU发送数据包格式:
3、由CPU主动发起通信
CPU--->FPGA发出状态查询包格式:
FPGA--->CPU的状态返回包格式:
CPU--->FPGA--->CPU发送CPU之间通信包格式:
4、FPGA内部结构
以ABC三方CPU通信为例:图5
a)为了提高效率,每个CPU发向不同CPU的数据包都设有不同的写入缓存区域。
b)对于某一CPU的读出缓存来说,FPGA控制在每个写入缓存区域之间轮询,将数据包写入读出缓存中。
c)CPU接入FPGA的物理接口决定了其逻辑地址。
d)FPGA通过内部控制逻辑随时接收并响应CPU发出的各类包。
通信约束:
1、在某一CPU与FPGA之间通信的高速收发口上,同时同方向只能有一个数据包在传输,一个数据包完整传输完毕后才能开始传输下一个数据包。
2、CPU可向FPGA主动发出状态查询包,通知FPGA更新系统状态信息,FPGA会立即回应一个状态返回包,告知CPU现在系统内已有设备的信息。
3、由于FPGA只完成通信功能,当某CPU能正常响应中断和收发包,对于FPGA来说设备就是正常的,FPGA不关心CPU的其他功能。
4、FPGA向CPU发出的中断信号是一个1bit位宽信号,高电平有效,接收到中断应答信号后翻转为低电平。CPU向FPGA发出的中断应答信号也是一个1bit位宽信号,高电平有效,当FPGA的中断申请撤销后,中断应答信号翻转为低电平。
5、只要在某CPU的数据缓存区中有未发送完毕的数据包存在,并且FPGA->CPU方向处于非传输状态,FPGA就会对CPU发出读数据包的中断申请。
6、各种包和包头长度应为32bit或64bit对界,包内部各分段信息最好应以8bit为最小单位,以便于FPGA快速处理。
7、CPU可选择接收数据包中任意位置起始的任意长度的数据,当发出标识此次是最后一次接收后,FPGA认为缓存区中此编号的数据包已接收完毕,缓存区被收回待下次数据写入。并且这次中断通信完毕。
8、每次中断通信传输数据包应只对同一数据包进行传输,若CPU需要结束一数据包的读取,发出此编号包最后一次接收的标识即可。(某一CPU可以在传输过程中读取本CPU全部缓存区中任意地址任意长度的数据)
以上显示和描述了本发明的基本原理和主要特征和本发明的优点,本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在波脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内,本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (5)
1.基于现场可编程门阵列(FPGA)控制的多方中央处理器(CPU)通信架构,多CPU芯片之间通过FPGA芯片的控制进行数据转发通信,由FPGA芯片对各方数据流进行调度。当CPU_A需要向CPU_B发出数据时,数据包以专有格式先发送到FPGA芯片中,FPGA对数据包进行解析和缓存,并以中断方式通知CPU_B准备接收数据,CPU_B从FPGA的缓冲区中读出数据后,完成了一次CPU之间的通信。CPU芯片与FPGA芯片之间通过一个高速数据收发口和一个中断信号输入输出(IO)口进行连接,FPGA芯片通过高速数据收发口随时接收CPU芯片下发的指令,当FPGA芯片主动需要同CPU芯片进行通信时,通过中断信号IO管脚向CPU芯片发出中断申请。FPGA芯片对接入通信系统的CPU芯片的状态实时进行检测,并将系统中各CPU设备状态对各CPU进行告知。FPGA芯片内部对接入系统的每个CPU设备就分配有专门的数据缓存区,CPU可从数据缓存区的任意位置读取任意长度的数据。
2.如权利要求1所述的基于FPGA控制的多方CPU通信架构,其特征在于:CPU芯片与FPGA芯片之间通过一个高速数据收发口和一个中断信号IO口进行连接。高速数据收发口用于承载CPU之间通信的数据包以及CPU与FPGA之间的指令数据包,中断信号IO口用于FPGA芯片需要与CPU进行通信时,向CPU芯片发出中断申请信号。
3.如权利要求1所述的基于FPGA控制的多方CPU通信架构,其特征在于:FPGA芯片对接入通信系统的CPU芯片的状态实时进行检测,动态监控,定时实时将系统内CPU设备的状态情况进行广播,使系统内的所有CPU设备实时了解系统设备情况。实现了CPU设备接入通信系统和从通信系统移除时的即插即用功能。
4.如权利要求1所述的基于FPGA控制的多方CPU通信架构,其特征在于:CPU在接收数据时可自由选择从FPGA的数据缓存区的任意位置开始读取任意长度的数据,从而减少通信数据量,提高通信效率。
5.如权利要求1所述的基于FPGA控制的多方CPU通信架构,其特征在于:不同类型的CPU,只要具有可与FPGA相连接的高速收发口和中断管脚就可以加入到多CPU通信系统中,实现了同一系统下不同CPU的兼容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811356477.8A CN111190840A (zh) | 2018-11-15 | 2018-11-15 | 基于现场可编程门阵列控制的多方中央处理器通信架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811356477.8A CN111190840A (zh) | 2018-11-15 | 2018-11-15 | 基于现场可编程门阵列控制的多方中央处理器通信架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111190840A true CN111190840A (zh) | 2020-05-22 |
Family
ID=70705700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811356477.8A Pending CN111190840A (zh) | 2018-11-15 | 2018-11-15 | 基于现场可编程门阵列控制的多方中央处理器通信架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111190840A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138342A (zh) * | 2022-01-25 | 2022-03-04 | 北京大学 | Rocc协处理器接口模型及其自动生成工具和实现方法 |
CN116073890A (zh) * | 2023-03-06 | 2023-05-05 | 成都星联芯通科技有限公司 | 业务数据处理方法、装置、接收设备、地球站及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512373A (zh) * | 2002-12-26 | 2004-07-14 | 华为技术有限公司 | 一种多cpu通信的方法 |
US7382940B1 (en) * | 2004-10-18 | 2008-06-03 | Kla-Tencor Corporation | Fast bus image coprocessing |
CN202093427U (zh) * | 2011-05-16 | 2011-12-28 | 曙光信息产业股份有限公司 | 一种多颗龙芯3号系列cpu互联的装置 |
CN107666449A (zh) * | 2016-07-28 | 2018-02-06 | 全球能源互联网研究院 | 一种基于fpga的多dsp数据交换装置及交换方法 |
-
2018
- 2018-11-15 CN CN201811356477.8A patent/CN111190840A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512373A (zh) * | 2002-12-26 | 2004-07-14 | 华为技术有限公司 | 一种多cpu通信的方法 |
US7382940B1 (en) * | 2004-10-18 | 2008-06-03 | Kla-Tencor Corporation | Fast bus image coprocessing |
CN202093427U (zh) * | 2011-05-16 | 2011-12-28 | 曙光信息产业股份有限公司 | 一种多颗龙芯3号系列cpu互联的装置 |
CN107666449A (zh) * | 2016-07-28 | 2018-02-06 | 全球能源互联网研究院 | 一种基于fpga的多dsp数据交换装置及交换方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138342A (zh) * | 2022-01-25 | 2022-03-04 | 北京大学 | Rocc协处理器接口模型及其自动生成工具和实现方法 |
CN114138342B (zh) * | 2022-01-25 | 2022-04-26 | 北京大学 | Rocc协处理器接口模型及其自动生成工具和实现方法 |
CN116073890A (zh) * | 2023-03-06 | 2023-05-05 | 成都星联芯通科技有限公司 | 业务数据处理方法、装置、接收设备、地球站及存储介质 |
CN116073890B (zh) * | 2023-03-06 | 2023-06-02 | 成都星联芯通科技有限公司 | 业务数据处理方法、装置、接收设备、地球站及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6757768B1 (en) | Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node | |
US6876561B2 (en) | Scratchpad memory | |
KR100962769B1 (ko) | 수퍼차지 메시지 교환기 | |
US9996491B2 (en) | Network interface controller with direct connection to host memory | |
WO2020247042A1 (en) | Network interface for data transport in heterogeneous computing environments | |
JP4768386B2 (ja) | 外部デバイスとデータ通信可能なインターフェイスデバイスを有するシステム及び装置 | |
US8725919B1 (en) | Device configuration for multiprocessor systems | |
CN106648896B (zh) | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 | |
US20020174165A1 (en) | Cluster system, computer and program | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
CN112347015B (zh) | 芯片片上系统异构多处理器间的通信装置及方法 | |
WO2022001417A1 (zh) | 一种数据传输方法、处理器系统及内存访问系统 | |
CN113742269B (zh) | 用于epa设备的数据传输方法、处理设备和介质 | |
CN106844263B (zh) | 一种基于可配置的多处理器计算机系统及实现方法 | |
CN114546913A (zh) | 一种基于pcie接口的多主机之间数据高速交互的方法和装置 | |
CN111190840A (zh) | 基于现场可编程门阵列控制的多方中央处理器通信架构 | |
US8943238B2 (en) | Operations using direct memory access | |
WO2022199357A1 (zh) | 数据处理方法及装置、电子设备、计算机可读存储介质 | |
CN112817774A (zh) | 用于片上网络中的事务广播的系统和方法 | |
CN110765046A (zh) | 一种动态可重构高速串行总线的dma传输装置与方法 | |
KR20050080704A (ko) | 프로세서간 데이터 전송 장치 및 방법 | |
CN111694777B (zh) | 基于PCIe接口的DMA传输方法 | |
CN111045974A (zh) | 一种基于交换结构的多处理器数据交互方法 | |
CN111427813A (zh) | 一种基于串口的核间通讯方法、终端及存储介质 | |
CN111427815A (zh) | 一种基于spi接口的核间通讯方法、终端及存储介质 |
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: 20200522 |