CN116126756A - 一种基于fmql的srio实现装置及方法 - Google Patents

一种基于fmql的srio实现装置及方法 Download PDF

Info

Publication number
CN116126756A
CN116126756A CN202310102789.0A CN202310102789A CN116126756A CN 116126756 A CN116126756 A CN 116126756A CN 202310102789 A CN202310102789 A CN 202310102789A CN 116126756 A CN116126756 A CN 116126756A
Authority
CN
China
Prior art keywords
data
nwrite
srio
module
receiving
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
CN202310102789.0A
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.)
CETC 10 Research Institute
Original Assignee
CETC 10 Research Institute
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 CETC 10 Research Institute filed Critical CETC 10 Research Institute
Priority to CN202310102789.0A priority Critical patent/CN116126756A/zh
Publication of CN116126756A publication Critical patent/CN116126756A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明公开了一种基于FMQL的SRIO实现装置及方法,属于机载通用总线领域,包括FMQL可编程融合芯片,在FMQL可编程融合芯片的PL数据区包括四个DMA处理模块,所述四个DMA处理模块均采用单向设计;并且所述四个DMA处理模块,用于分别处理Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收。本发明无需在FPGA使用FIFO进行数据缓存,可以实现SRIO中多种协议的混合收发,支持与多个节点同时通信,并具有错误恢复机制,有着非常高的稳定性。

Description

一种基于FMQL的SRIO实现装置及方法
技术领域
本发明涉及机载通用总线领域,更为具体的,涉及一种基于FMQL的SRIO实现装置及方法。
背景技术
现有技术中,由复旦微电子推出的FMQL系列可编程融合芯片是全可编程PSOC芯片,其单芯片内集成了四个ARM Cortex A7的处理系统(Processing System,PS)和可编程逻辑(Programmable Logic,PL),在航空领域中得到了广泛的应用。
随着航空领域内部总线复杂度和可靠性的要求不断提升,SRIO总线在其中承担着越来越重要的角色,多种处理器诸如PowerPC、DSP等均具备实现SRIO节点的功能。但是,在稳定性、可靠性均有待提高,且存在资源消耗较高的问题。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于FMQL的SRIO实现装置及方法,提高了稳定性、可靠性,节省了资源等。
本发明的目的是通过以下方案实现的:
一种基于FMQL的SRIO实现装置,包括FMQL可编程融合芯片和存储模块,在FMQL可编程融合芯片的PL数据区包括四个DMA处理模块,所述四个DMA处理模块均采用单向设计,即同一时只能进行收数据或者发数据;并且所述四个DMA处理模块,用于分别处理Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收;
在FMQL可编程融合芯片的PL数据区包括SRIO IP核,所述SRIO IP核对外提供高速物理口,对内分别与Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收进行数据交互;
在FMQL可编程融合芯片的PS交互区包括中断管理、低速接口GP和高速接口HP;
在FMQL可编程融合芯片的PS处理区包括数据处理单元,所述数据处理单元分别与高速接口HP和存储模块进行数据交互,所述数据处理单元分别与低速接口GP和中断管理进行控制信号交互;
在FMQL可编程融合芯片的PL控制区包括时钟复位管理模块、公共事务处理模块,所述时钟复位管理模块与公共事务处理模块进行控制信号交互,所述时钟复位管理模块与Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收进行控制信号交互;所述公共事务处理模块分别与低速接口GP、中断管理进行控制信号交互;所述公共事务处理模块与Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收进行控制信号交互;
所述存储模块,用于存放SRIO的数据。
进一步地,所述存储模块包括DDR3存储模块。
进一步地,还包括Message/Nwrite/Nwrite_r/Swirte发送模块、Nread发送模块、Message/Nwrite/Nwrite_r/Swirte接收模块和Nread接收模块;
所述Message/Nwrite/Nwrite_r/Swirte发送模块,接收到公共事务处理模块发送的SRIO发送指令后,通过DMA处理模块取出存储模块中的待发送数据,根据协议类型进行组包,并将数据发送至SRIO IP核,等待发送完成后将发送完成标志返回给公共事务处理模块;
所述Nread发送模块,接收到公共事务处理模块发送的SRIO发送指令后,将Nread发送请求发送至SRIO IP核,并等待SRIO IP核的Nread应答数据,然后将Nread应答数据通过DMA处理模块发送至DDR3中,最后将发送完成标志返回给公共事务处理模块;
所述Message/Nwrite/Nwrite_r/Swirte接收模块,接收到SRIO IP核发送的SRIO数据包后,若为Nwrite/Nwrite_r/Swirte协议包,则将数据解包,并通过DMA处理模块将数据发送至存储模块中,并发送接收标志给公共事务处理模块;若为Message包,则根据该包的大包和小包序号通过DMA处理模块将数据发送至存储模块对应的Message小包空间中,当Message整包已完全接收,则发送接收标志给公共事务处理模块,否则不发送;
所述Nread接收模块,接收到SRIO IP核发送的SRIO数据包后,若为Nread协议包,则通过DMA处理模块将存储模块中对应区域数据取出送至SRIO IP核。
进一步地,所述中断管理,分为发送中断和接收中断,分别对应SRIO的发送和接收,为电平中断,PS接收到PL的中断后立即清中断,接收到发送中断后释放发送完成信号量,接收到接收中断后,根据协议类型释放对应的接收信号量。
进一步地,所述时钟复位管理模块用于实现对外部时钟信号的分频,满足同一个FMQL平台能够具备多路SRIO同时通信的功能,同时具备通过接收公共事务处理模块的指令对DMA处理模块、Message/Nwrite/Nwrite_r/Swirte发送模块、Nread发送模块、Message/Nwrite/Nwrite_r/Swirte接收模块和Nread接收模块进行复位的功能,以在SRIO接收到错误数据时,将数据包丢弃并恢复正常状态。
进一步地,所述公共事务处理模块,包含以下功能:
用于在发送SRIO时,通过低速接口GP接收PS的发送指令,根据发送协议类型转至对应的发送模块,若为Doorbell协议,则直接发送至SRIO IP核,当接收到各发送模块的发送完成标志后,上报发送中断至中断管理;
用于在接收SRIO时,接收来自SRIO IP核的Doorbell数据或接收来自接收模块的接收标志后,上报接收终端至终端管理,并更新接收指令,接收指令由PS通过低速接口GP主动获取;
用于上报状态信息至低速接口GP;
用于接收来自GP的复位指令后,对相应模块进行复位,用以错误恢复。
进一步地,所述数据处理单元,用于负责Doorbell、Message、Nwrite、Nwrite_r、Swirte、Nread协议的处理;在发送时,等待获取发送互斥信号量,然后将数据包拆成256字节的小包逐一放至存储模块中,并通过低速接口GP下发发送指令,等待发送信号量后,释放发送互斥信号量,发送完成;在接收时,等待获取对应的接收信号量,通过低速接口GP获取数接收指令,通过接收指令中的地址信息从存储模块中获取数据,完成接收;
和/或,
所述数据处理单元还用于对收发数据的状态进行监控,当发现异常时,会通过低速接口GP向公共事务处理模块下发复位操作,精准复位FPGA内的某个或部分收发模块。
一种基于FMQL的SRIO实现方法,基于如上所述的装置,所述DDR3空间划分,具体包括步骤:
Nwrite/Nwrite_r使用相同的地址空间,在与不同节点通信时,均使用该段空间;Nread在与不同节点通信时,均使用该段空间;Swrite根据通信的节点不同,一共分配了32段地址空间,最多可与32个节点同时进行通信;Message根据不同的Message大包,动态使用不同的Message地址空间,即当接收到第一个Message大包时,将数据放于序号1的Message大包中,当序号1中的Message小包收齐并被PS处理后,序号1的Message大包地址空间释放,能够存放新来的Message大包。
一种基于FMQL的SRIO实现方法,基于如上任一所述的装置,在发送流程上,包括步骤:
S1,开始,PS等待获取发送互斥信号量,PS设置发送参数,消息类型、长度和地址;
S2,判断是否为Nread,如是则PL发送Nread请求包,进入步骤S12;如否,PS将待发送数据搬移至指定DDR3空间;
S4,PS设置DMA参数,并开启发送;
S5,PL去除数据并开启SRIO发送流程;
S6,PL等待SRIO发送完成;
S7,PL上报中断给PS;
S8,PL等待Nread的应答包;
S9,PL将应答包数据通过DMA放入DDR3空间;
S10,PL上报中断给PS;
S11,PS从DDR3中取走数据;
S12,PS释放发送互斥信号量。
S13,结束。
一种基于FMQL的SRIO实现方法,基于如上任一所述的装置,在接收流程上,包括步骤:
SS1,开始,PL接收到请求包;
SS2,判断是否为Nread,如是,PL根据请求包信息,控制DMA读取DDR3数据,进入步骤SS8;如否,则进一步判断是否Msg,如是Msg,则PS索引Msg标志位,进入步骤SS3;如不是Msg,则PL将请求包数据通过DMA放入DDR3空间,进入步骤SS5;
SS3,判断是否为新的大包,如是则PL将数据存入新的地址空间,如否则PL将数据存入已有包的地址空间;
SS4,判断Msg整包是否收齐,如否则结束,如是则进入下一步;
SS5,PL上报中断给PS;
SS6,PS根据协议类型释放对应的接收信号量;
SS7,PS从DDR3取走数据;
SS8,PL发送Nread应答包;
SS9,PL上报中断给PS;
SS10,结束。
本发明的有益效果包括:
本发明无需在FPGA使用FIFO进行数据缓存,可以实现SRIO中doorbell、Message、Nwrite、Nwrite_r、Swrite、Nread协议的混合收发,支持与多个节点同时通信,并具有错误恢复机制,有着非常高的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例装置的整体实现框图;
图2为本发明实施例装置的DMA处理模块状态跳转图;
图3为本发明实施例方法的发送流程;
图4为本发明实施例方法的接收流程。
具体实施方式
本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
本发明装置的整体实现框图如1所示,该装置包括PS、PL和DDR3三部分,其中PL由控制区和数据区组成,数据区负责处理SRIO总线数据,根据协议对数据进行拆包和组包,控制区负责管理数据收发流程,复位和上报中断等;PS由交互区和处理区组成,交互区负责与PL进行数据通信,包括数据流通信、控制信号通信和中断处理,处理区负责处理各种协议的数据;DDR3用于存放SRIO的数据。
在进一步的发明构思中,为提高DMA数据传输效率,DMA处理模块采用单向设计,即同一时只能进行收数据或者发数据,由于Nread协议请求包很短,但是应答包很长,所以为方便处理,节省FPGA的RAM资源,将Nread协议的接收和发送进行单独处理,故使用了4个DMA处理模块,分别处理Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收。DMA处理模块内部以状态机实现,状态跳转图如图2所示。
DDR3空间划分,各协议DDR3中地址空间,以接收地址空间为例(接收地址空间和发送地址空间只有基地址不同,划分方式相同),规划如下表1:
表1
Figure BDA0004073737760000081
其中,Nwrite/Nwrite_r使用相同的地址空间,在与不同节点通信时,均使用该段空间;Nread在与不同节点通信时,均使用该段空间;Swrite根据通信的节点不同,一共分配了32段地址空间,最多可与32个节点同时进行通信;Message根据不同的Message大包,动态使用不同的Message地址空间,即当接收到第一个Message大包时,将数据放于序号1的Message大包中,当序号1中的Message小包收齐并被PS处理后,序号1的Message大包地址空间释放,可以存放新来的Message大包。
本发明装置的时钟复位管理模块可以实现对外部时钟信号的分频,这样可以满足同一个FMQL平台可以具备多路SRIO同时通信的功能,同时具备通过接收公共事务处理模块的指令对DMA处理模块、Message/Nwrite/Nwrite_r/Swirte发送模块、Nread发送模块、Message/Nwrite/Nwrite_r/Swirte接收模块和Nread接收模块进行复位的功能,以在SRIO接收到错误数据时,将数据包丢弃并恢复正常状态。
本发明装置的公共事务处理模块包含以下功能:1)发送SRIO时,通过GP接收PS的发送指令(包括发送协议类型、发送数据长度、发送目的ID,发送数据所在DDR3的地址空间等)根据发送协议类型转至对应的发送模块,若为Doorbell协议,则直接发送至SRIO IP核,当接收到各发送模块的发送完成标志后,上报发送中断至中断管理。2)接收SRIO时,接收来自SRIO IP核的Doorbell数据或接收来自接收模块的接收标志后,上报接收终端至终端管理,并更新接收指令(包括接收协议类型、接收数据长度、接收原的ID,接收数据所在DDR3的地址空间),接收指令由PS通过GP主动获取。3)上报本地ID、LINK状态、发送计数、应答计数等状态信息至GP。4)接收来自GP的复位指令(包括Message/Nwrite/Nwrite_r/Swirte发送模块复位、Nread发送模块复位、Message/Nwrite/Nwrite_r/Swirte接收模块复位、Nread接收模块复位、DMA处理模块1复位、DMA处理模块2复位、DMA处理模块3复位、DMA处理模块4复位)后,对相应模块进行复位,用以错误恢复。
本发明装置的Message/Nwrite/Nwrite_r/Swirte发送模块,接收到公共事务处理模块发送的SRIO发送指令后,通过DMA处理模块取出DDR3中的待发送数据,根据协议类型进行组包,并将数据发送至SRIO IP核,等待发送完成后将发送完成标志返回给公共事务处理模块。
本发明装置的Nread发送模块,接收到公共事务处理模块发送的SRIO发送指令后,将Nread发送请求发送至SRIO IP核,并等待SRIO IP核的Nread应答数据,然后将Nread应答数据通过DMA处理模块发送至DDR3中,最后将发送完成标志返回给公共事务处理模块。
本发明装置的Message/Nwrite/Nwrite_r/Swirte接收模块,接收到SRIO IP核发送的SRIO数据包后,若为Nwrite/Nwrite_r/Swirte协议包,则将数据解包,并通过DMA处理模块将数据发送至DDR3中,并发送接收标志给公共事务处理模块;若为Message包,则根据该包的大包和小包序号通过DMA处理模块将数据发送至DDR3对应的Message小包空间中,当Message整包已完全接收,则发送接收标志给公共事务处理模块,否则不发送。
本发明装置的Nread接收模块,接收到SRIO IP核发送的SRIO数据包后,若为Nread协议包,则通过DMA处理模块将DDR3中对应区域数据取出送至SRIO IP核。
本发明装置的SRIO IP核,采用Serial RapaidIO Gen2,是FPGA内开发SRIO总线所使用的IP核。
本发明装置的中断管理,中断分为发送中断和接收中断,分别对应SRIO的发送和接收,为电平中断,PS接收到PL的中断后立即清中断,接收到发送中断后释放发送完成信号量,接收到接收中断后,根据协议类型释放对应的接收信号量(如Message接收信号量、Nwrite接收信号量等)。
本发明装置的GP和HP,在FMQL平台中,GP为低速接口,HP为高速接口,均为AXI总线协议,负责PL和PS数据的交互。
本发明装置的数据处理单元,数据处理单元负责Doorbell、Message、Nwrite、Nwrite_r、Swirte、Nread协议的处理,发送时,等待获取发送互斥信号量,然后将数据包拆成256字节的小包逐一放至DDR3中,并通过GP下发发送指令,等待发送信号量后,释放发送互斥信号量,发送完成;接收时,等待获取对应的接收信号量,通过GP获取数接收指令,通过接收指令中的地址信息从DDR3中获取数据,完成接收。除此之外数据处理单元还会对收发数据的状态进行监控,发现异常时,会通过GP向公共事务处理模块下发复位操作,精准复位FPGA内的某个或部分收发模块,如:当进行发送操作后,若50ms内未收到PL的中断上报,则对相应协议的发送模块进行复位操作;当接收到某个Message大包时,1s内Message小包接收不完全,则释放掉该包对应的DDR3空间。
本发明还设计了一种基于FMQL的高可靠性低资源的SRIO实现方式,尤其适用于多协议混合、多节点混合收发的复杂SRIO组网环境,具体包括发送流程和接收流程,如图3和图4所示。在发送流程上,包括步骤:
S1,开始,PS等待获取发送互斥信号量,PS设置发送参数,消息类型、长度、地址等;
S2,判断是否为Nread,如是则PL发送Nread请求包,进入步骤S12;如否,PS将待发送数据搬移至指定DDR3空间;
S4,PS设置DMA参数,并开启发送;
S5,PL去除数据并开启SRIO发送流程;
S6,PL等待SRIO发送完成;
S7,PL上报中断给PS;
S8,PL等待Nread的应答包;
S9,PL将应答包数据通过DMA放入DDR3空间;
S10,PL上报中断给PS;
S11,PS从DDR3中取走数据;
S12,PS释放发送互斥信号量。
S13,结束。
在接收流程上,包括步骤:
SS1,开始,PL接收到请求包;
SS2,判断是否为Nread,如是,PL根据请求包信息,控制DMA读取DDR3数据,进入步骤SS8;如否,则进一步判断是否Msg,如是Msg,则PS索引Msg标志位,进入步骤SS3;如不是Msg,则PL将请求包数据通过DMA放入DDR3空间,进入步骤SS5;
SS3,判断是否为新的大包,如是则PL将数据存入新的地址空间,如否则PL将数据存入已有包的地址空间;
SS4,判断Msg整包是否收齐,如否则结束,如是则进入下一步;
SS5,PL上报中断给PS;
SS6,PS根据协议类型释放对应的接收信号量;
SS7,PS从DDR3取走数据;
SS8,PL发送Nread应答包;
SS9,PL上报中断给PS;
SS10,结束。
需要说明的是,在本发明权利要求书中所限定的保护范围内,以下实施例均可以从上述具体实施方式中,例如公开的技术原理,公开的技术特征或隐含公开的技术特征等,以合乎逻辑的任何方式进行组合和/或扩展、替换。
实施例1
一种基于FMQL的SRIO实现装置,包括FMQL可编程融合芯片和存储模块,在FMQL可编程融合芯片的PL数据区包括四个DMA处理模块,所述四个DMA处理模块均采用单向设计,即同一时只能进行收数据或者发数据;并且所述四个DMA处理模块,用于分别处理Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收;
在FMQL可编程融合芯片的PL数据区包括SRIO IP核,所述SRIO IP核对外提供高速物理口,对内分别与Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收进行数据交互;
在FMQL可编程融合芯片的PS交互区包括中断管理、低速接口GP和高速接口HP;
在FMQL可编程融合芯片的PS处理区包括数据处理单元,所述数据处理单元分别与高速接口HP和存储模块进行数据交互,所述数据处理单元分别与低速接口GP和中断管理进行控制信号交互;
在FMQL可编程融合芯片的PL控制区包括时钟复位管理模块、公共事务处理模块,所述时钟复位管理模块与公共事务处理模块进行控制信号交互,所述时钟复位管理模块与Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收进行控制信号交互;所述公共事务处理模块分别与低速接口GP、中断管理进行控制信号交互;所述公共事务处理模块与Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收进行控制信号交互;
所述存储模块,用于存放SRIO的数据。
实施例2
在实施例1的基础上,所述存储模块包括DDR3存储模块。
实施例3
在实施例1的基础上,还包括Message/Nwrite/Nwrite_r/Swirte发送模块、Nread发送模块、Message/Nwrite/Nwrite_r/Swirte接收模块和Nread接收模块;
所述Message/Nwrite/Nwrite_r/Swirte发送模块,接收到公共事务处理模块发送的SRIO发送指令后,通过DMA处理模块取出存储模块中的待发送数据,根据协议类型进行组包,并将数据发送至SRIO IP核,等待发送完成后将发送完成标志返回给公共事务处理模块;
所述Nread发送模块,接收到公共事务处理模块发送的SRIO发送指令后,将Nread发送请求发送至SRIO IP核,并等待SRIO IP核的Nread应答数据,然后将Nread应答数据通过DMA处理模块发送至DDR3中,最后将发送完成标志返回给公共事务处理模块;
所述Message/Nwrite/Nwrite_r/Swirte接收模块,接收到SRIO IP核发送的SRIO数据包后,若为Nwrite/Nwrite_r/Swirte协议包,则将数据解包,并通过DMA处理模块将数据发送至存储模块中,并发送接收标志给公共事务处理模块;若为Message包,则根据该包的大包和小包序号通过DMA处理模块将数据发送至存储模块对应的Message小包空间中,当Message整包已完全接收,则发送接收标志给公共事务处理模块,否则不发送;
所述Nread接收模块,接收到SRIO IP核发送的SRIO数据包后,若为Nread协议包,则通过DMA处理模块将存储模块中对应区域数据取出送至SRIO IP核。
实施例4
在实施例1的基础上,所述中断管理,分为发送中断和接收中断,分别对应SRIO的发送和接收,为电平中断,PS接收到PL的中断后立即清中断,接收到发送中断后释放发送完成信号量,接收到接收中断后,根据协议类型释放对应的接收信号量。
实施例5
在实施例1的基础上,所述时钟复位管理模块用于实现对外部时钟信号的分频,满足同一个FMQL平台能够具备多路SRIO同时通信的功能,同时具备通过接收公共事务处理模块的指令对DMA处理模块、Message/Nwrite/Nwrite_r/Swirte发送模块、Nread发送模块、Message/Nwrite/Nwrite_r/Swirte接收模块和Nread接收模块进行复位的功能,以在SRIO接收到错误数据时,将数据包丢弃并恢复正常状态。
实施例6
在实施例1的基础上,所述公共事务处理模块,包含以下功能:
用于在发送SRIO时,通过低速接口GP接收PS的发送指令,根据发送协议类型转至对应的发送模块,若为Doorbell协议,则直接发送至SRIO IP核,当接收到各发送模块的发送完成标志后,上报发送中断至中断管理;
用于在接收SRIO时,接收来自SRIO IP核的Doorbell数据或接收来自接收模块的接收标志后,上报接收终端至终端管理,并更新接收指令,接收指令由PS通过低速接口GP主动获取;
用于上报状态信息至低速接口GP;
用于接收来自GP的复位指令后,对相应模块进行复位,用以错误恢复。
实施例7
在实施例1的基础上,所述数据处理单元,用于负责Doorbell、Message、Nwrite、Nwrite_r、Swirte、Nread协议的处理;在发送时,等待获取发送互斥信号量,然后将数据包拆成256字节的小包逐一放至存储模块中,并通过低速接口GP下发发送指令,等待发送信号量后,释放发送互斥信号量,发送完成;在接收时,等待获取对应的接收信号量,通过低速接口GP获取数接收指令,通过接收指令中的地址信息从存储模块中获取数据,完成接收;
和/或,
所述数据处理单元还用于对收发数据的状态进行监控,当发现异常时,会通过低速接口GP向公共事务处理模块下发复位操作,精准复位FPGA内的某个或部分收发模块。
实施例8
一种基于FMQL的SRIO实现方法,基于实施例2所述的装置,所述DDR3空间划分,具体包括步骤:
Nwrite/Nwrite_r使用相同的地址空间,在与不同节点通信时,均使用该段空间;Nread在与不同节点通信时,均使用该段空间;Swrite根据通信的节点不同,一共分配了32段地址空间,最多可与32个节点同时进行通信;Message根据不同的Message大包,动态使用不同的Message地址空间,即当接收到第一个Message大包时,将数据放于序号1的Message大包中,当序号1中的Message小包收齐并被PS处理后,序号1的Message大包地址空间释放,能够存放新来的Message大包。
实施例9
一种基于FMQL的SRIO实现方法,基于实施例2~实施例7任一所述的装置,在发送流程上,包括步骤:
S1,开始,PS等待获取发送互斥信号量,PS设置发送参数,消息类型、长度和地址;
S2,判断是否为Nread,如是则PL发送Nread请求包,进入步骤S12;如否,PS将待发送数据搬移至指定DDR3空间;
S4,PS设置DMA参数,并开启发送;
S5,PL去除数据并开启SRIO发送流程;
S6,PL等待SRIO发送完成;
S7,PL上报中断给PS;
S8,PL等待Nread的应答包;
S9,PL将应答包数据通过DMA放入DDR3空间;
S10,PL上报中断给PS;
S11,PS从DDR3中取走数据;
S12,PS释放发送互斥信号量。
S13,结束。
实施例10
一种基于FMQL的SRIO实现方法,基于基于实施例2~实施例7任一所述的装置,在接收流程上,包括步骤:
SS1,开始,PL接收到请求包;
SS2,判断是否为Nread,如是,PL根据请求包信息,控制DMA读取DDR3数据,进入步骤SS8;如否,则进一步判断是否Msg,如是Msg,则PS索引Msg标志位,进入步骤SS3;如不是Msg,则PL将请求包数据通过DMA放入DDR3空间,进入步骤SS5;
SS3,判断是否为新的大包,如是则PL将数据存入新的地址空间,如否则PL将数据存入已有包的地址空间;
SS4,判断Msg整包是否收齐,如否则结束,如是则进入下一步;
SS5,PL上报中断给PS;
SS6,PS根据协议类型释放对应的接收信号量;
SS7,PS从DDR3取走数据;
SS8,PL发送Nread应答包;
SS9,PL上报中断给PS;
SS10,结束。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
根据本发明的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
除以上实例以外,本领域技术人员根据上述公开内容获得启示或利用相关领域的知识或技术进行改动获得其他实施例,各个实施例的特征可以互换或替换,本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (10)

1.一种基于FMQL的SRIO实现装置,包括FMQL可编程融合芯片和存储模块,其特征在于,在FMQL可编程融合芯片的PL数据区包括四个DMA处理模块,所述四个DMA处理模块均采用单向设计,即同一时只能进行收数据或者发数据;并且所述四个DMA处理模块,用于分别处理Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收;
在FMQL可编程融合芯片的PL数据区包括SRIO IP核,所述SRIO IP核对外提供高速物理口,对内分别与Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收进行数据交互;
在FMQL可编程融合芯片的PS交互区包括中断管理、低速接口GP和高速接口HP;
在FMQL可编程融合芯片的PS处理区包括数据处理单元,所述数据处理单元分别与高速接口HP和存储模块进行数据交互,所述数据处理单元分别与低速接口GP和中断管理进行控制信号交互;
在FMQL可编程融合芯片的PL控制区包括时钟复位管理模块、公共事务处理模块,所述时钟复位管理模块与公共事务处理模块进行控制信号交互,所述时钟复位管理模块与Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收进行控制信号交互;所述公共事务处理模块分别与低速接口GP、中断管理进行控制信号交互;所述公共事务处理模块与Message/Nwrite/Nwrite_r/Swirte发送、Nread发送、Message/Nwrite/Nwrite_r/Swirte接收和Nread接收进行控制信号交互;
所述存储模块,用于存放SRIO的数据
2.根据权利要求1所述的基于FMQL的SRIO实现装置,其特征在于,所述存储模块包括DDR3存储模块。
3.根据权利要求1所述的基于FMQL的SRIO实现装置,其特征在于,还包括Message/Nwrite/Nwrite_r/Swirte发送模块、Nread发送模块、Message/Nwrite/Nwrite_r/Swirte接收模块和Nread接收模块;
所述Message/Nwrite/Nwrite_r/Swirte发送模块,接收到公共事务处理模块发送的SRIO发送指令后,通过DMA处理模块取出存储模块中的待发送数据,根据协议类型进行组包,并将数据发送至SRIO IP核,等待发送完成后将发送完成标志返回给公共事务处理模块;
所述Nread发送模块,接收到公共事务处理模块发送的SRIO发送指令后,将Nread发送请求发送至SRIO IP核,并等待SRIO IP核的Nread应答数据,然后将Nread应答数据通过DMA处理模块发送至DDR3中,最后将发送完成标志返回给公共事务处理模块;
所述Message/Nwrite/Nwrite_r/Swirte接收模块,接收到SRIO IP核发送的SRIO数据包后,若为Nwrite/Nwrite_r/Swirte协议包,则将数据解包,并通过DMA处理模块将数据发送至存储模块中,并发送接收标志给公共事务处理模块;若为Message包,则根据该包的大包和小包序号通过DMA处理模块将数据发送至存储模块对应的Message小包空间中,当Message整包已完全接收,则发送接收标志给公共事务处理模块,否则不发送;
所述Nread接收模块,接收到SRIO IP核发送的SRIO数据包后,若为Nread协议包,则通过DMA处理模块将存储模块中对应区域数据取出送至SRIO IP核。
4.根据权利要求1所述的基于FMQL的SRIO实现装置,其特征在于,所述中断管理,分为发送中断和接收中断,分别对应SRIO的发送和接收,为电平中断,PS接收到PL的中断后立即清中断,接收到发送中断后释放发送完成信号量,接收到接收中断后,根据协议类型释放对应的接收信号量。
5.根据权利要求1所述的基于FMQL的SRIO实现装置,其特征在于,
所述时钟复位管理模块用于实现对外部时钟信号的分频,满足同一个FMQL平台能够具备多路SRIO同时通信的功能,同时具备通过接收公共事务处理模块的指令对DMA处理模块、Message/Nwrite/Nwrite_r/Swirte发送模块、Nread发送模块、Message/Nwrite/Nwrite_r/Swirte接收模块和Nread接收模块进行复位的功能,以在SRIO接收到错误数据时,将数据包丢弃并恢复正常状态。
6.根据权利要求1所述的基于FMQL的SRIO实现装置,其特征在于,所述公共事务处理模块,包含以下功能:
用于在发送SRIO时,通过低速接口GP接收PS的发送指令,根据发送协议类型转至对应的发送模块,若为Doorbell协议,则直接发送至SRIO IP核,当接收到各发送模块的发送完成标志后,上报发送中断至中断管理;
用于在接收SRIO时,接收来自SRIO IP核的Doorbell数据或接收来自接收模块的接收标志后,上报接收终端至终端管理,并更新接收指令,接收指令由PS通过低速接口GP主动获取;
用于上报状态信息至低速接口GP;
用于接收来自GP的复位指令后,对相应模块进行复位,用以错误恢复。
7.根据权利要求1所述的基于FMQL的SRIO实现装置,其特征在于,
所述数据处理单元,用于负责Doorbell、Message、Nwrite、Nwrite_r、Swirte、Nread协议的处理;在发送时,等待获取发送互斥信号量,然后将数据包拆成256字节的小包逐一放至存储模块中,并通过低速接口GP下发发送指令,等待发送信号量后,释放发送互斥信号量,发送完成;在接收时,等待获取对应的接收信号量,通过低速接口GP获取数接收指令,通过接收指令中的地址信息从存储模块中获取数据,完成接收;
和/或,
所述数据处理单元还用于对收发数据的状态进行监控,当发现异常时,会通过低速接口GP向公共事务处理模块下发复位操作,精准复位FPGA内的某个或部分收发模块。
8.一种基于FMQL的SRIO实现方法,其特征在于,基于权利要求2所述的装置,所述DDR3空间划分,具体包括步骤:
Nwrite/Nwrite_r使用相同的地址空间,在与不同节点通信时,均使用该段空间;Nread在与不同节点通信时,均使用该段空间;Swrite根据通信的节点不同,一共分配了32段地址空间,最多可与32个节点同时进行通信;Message根据不同的Message大包,动态使用不同的Message地址空间,即当接收到第一个Message大包时,将数据放于序号1的Message大包中,当序号1中的Message小包收齐并被PS处理后,序号1的Message大包地址空间释放,能够存放新来的Message大包。
9.一种基于FMQL的SRIO实现方法,其特征在于,基于权利要求2~7任一所述的装置,在发送流程上,包括步骤:
S1,开始,PS等待获取发送互斥信号量,PS设置发送参数,消息类型、长度和地址;
S2,判断是否为Nread,如是则PL发送Nread请求包,进入步骤S12;如否,PS将待发送数据搬移至指定DDR3空间;
S4,PS设置DMA参数,并开启发送;
S5,PL去除数据并开启SRIO发送流程;
S6,PL等待SRIO发送完成;
S7,PL上报中断给PS;
S8,PL等待Nread的应答包;
S9,PL将应答包数据通过DMA放入DDR3空间;
S10,PL上报中断给PS;
S11,PS从DDR3中取走数据;
S12,PS释放发送互斥信号量。
S13,结束。
10.一种基于FMQL的SRIO实现方法,其特征在于,基于权利要求2~7任一所述的装置,在接收流程上,包括步骤:
SS1,开始,PL接收到请求包;
SS2,判断是否为Nread,如是,PL根据请求包信息,控制DMA读取DDR3数据,进入步骤SS8;如否,则进一步判断是否Msg,如是Msg,则PS索引Msg标志位,进入步骤SS3;如不是Msg,则PL将请求包数据通过DMA放入DDR3空间,进入步骤SS5;
SS3,判断是否为新的大包,如是则PL将数据存入新的地址空间,如否则PL将数据存入已有包的地址空间;
SS4,判断Msg整包是否收齐,如否则结束,如是则进入下一步;
SS5,PL上报中断给PS;
SS6,PS根据协议类型释放对应的接收信号量;
SS7,PS从DDR3取走数据;
SS8,PL发送Nread应答包;
SS9,PL上报中断给PS;
SS10,结束。
CN202310102789.0A 2023-01-18 2023-01-18 一种基于fmql的srio实现装置及方法 Pending CN116126756A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310102789.0A CN116126756A (zh) 2023-01-18 2023-01-18 一种基于fmql的srio实现装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310102789.0A CN116126756A (zh) 2023-01-18 2023-01-18 一种基于fmql的srio实现装置及方法

Publications (1)

Publication Number Publication Date
CN116126756A true CN116126756A (zh) 2023-05-16

Family

ID=86297130

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310102789.0A Pending CN116126756A (zh) 2023-01-18 2023-01-18 一种基于fmql的srio实现装置及方法

Country Status (1)

Country Link
CN (1) CN116126756A (zh)

Similar Documents

Publication Publication Date Title
KR930010915B1 (ko) 다중 중앙 처리 유니트 인터록크 시스템
KR940000177B1 (ko) 멀티프로세서 인터럽트 선회 기구
EP0272834B1 (en) Inter-processor communication protocol
US5687314A (en) Method and apparatus for assisting data bus transfer protocol
EP2406723A1 (en) Scalable interface for connecting multiple computer systems which performs parallel mpi header matching
CN101957808B (zh) 多cpu间的通信方法、系统及cpu
CN105320632A (zh) 一种自主仲裁的高速差分总线实现方法
JPH03130863A (ja) 制御要素転送システム
CN114647602B (zh) 一种跨芯片访问控制的方法、装置、设备及介质
CN106953853A (zh) 一种片上网络千兆以太网资源节点及其工作方法
CN111800226B (zh) 一种基于硬件仲裁的边带管理电路及方法
CN115657553A (zh) Pcie拓扑和pcie设备模拟方法、装置、设备及介质
US6856619B1 (en) Computer network controller
CN105786734B (zh) 数据传输的方法、扩展装置、外围设备及系统
CN107360012A (zh) 一种链路状态处理方法及网络节点设备
CN116126756A (zh) 一种基于fmql的srio实现装置及方法
US5764998A (en) Method and system for implementing a distributed interrupt controller
KR20050080704A (ko) 프로세서간 데이터 전송 장치 및 방법
US5802377A (en) Method and apparatus for implementing multiple interrupt controllers in a multi-processor computer system
CN114928513A (zh) 基于srio协议的双总线通信系统及通信方法
CN108664443A (zh) 数据通讯同步方法及系统
CN107454021B (zh) 一种通信方法及装置
CN104850517A (zh) 一种dma传输报文数据的方法及装置
EP0255090A2 (en) LAN controller proprietary bus
EP0255096A2 (en) A controller for controlling multiple LAN types

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