一种基于FPGA的数据交互方法及装置制造方法及图纸

技术编号:20448620 阅读:23 留言:0更新日期:2019-02-27 02:50
本申请提供一种基于FPGA的数据交互方法及装置,所述方法包括:FPGA模块内的虚拟P2P桥接收第一终端发送的TLP类型的数据包,并将数据包存储于缓存单元中;FPGA模块内的业务单元对数据包进行解析,获取数据包对应的目的终端地址和地址路由,以及根据目的终端地址确定第二终端;判断第二终端与FPGA模块连接的总线的状态;当确定总线的状态处于空闲状态时,从缓存单元中读取数据包,并将数据包通过虚拟P2P桥发送给第二终端。

A Data Interaction Method and Device Based on FPGA

This application provides a data interaction method and device based on FPGA. The method includes: the virtual P2P bridge in the FPGA module receives TLP-type data packets sent by the first terminal and stores them in the buffer unit; the service unit in the FPGA module parses the data packets, obtains the destination terminal address and address routing corresponding to the data packets, and according to the destination terminal location. Address determines the second terminal; determines the state of the bus connected by the second terminal and the FPGA module; when the bus state is determined to be idle, reads the data packet from the buffer unit and sends the data packet to the second terminal through the virtual P2P bridge.

【技术实现步骤摘要】
一种基于FPGA的数据交互方法及装置
本申请涉及数据交互
,尤其涉及一种基于FPGA的数据交互方法及装置。
技术介绍
PCIe总线技术是取代PCI的第三代I/O技术,也称为3GIO。PCIe总线是为将来的计算机和通讯平台定义的一种高性能、通用I/O互连总线。PCIe总线是串行总线,采用点对点传输,每个传输通道独享带宽,传输速率高。点到点传输降低了系统硬件平台设计的复杂性和难度,从而降低了系统成本、提高了系统的性价比和鲁棒性。但是随着系统性能、功能和带宽的日益增长,需要更多的外部设备与CPU连接。但是CPU本身PCIe接口数量有限,可以使用PCIeSwitch对CPU的PCIe接口进行扩展,通过PCIeSwitch连接更多的终端设备。PCIe总线采用基于交换的技术和基于包的协议来实现数据的传输。PCIe终端可以发送一个TLP,该TLP可以是一个存储器或者I/O请求TLP,由一个终端发出,并通过一个PCIeSwitch后发送到另外一个终端。现有技术方案中,PCIe终端之间交互数据的过程由DMA控制器控制,但是DMA的启动仍然需要CPU发送DMA启动指令,DMA的终止也需要通知CPU,CPU接收到终止信号后,重新获得PCIe总线的控制权。使用现有技术,在数据传输过程不需要CPU的参与,降低了CPU的负荷,但是在启动和终止DMA阶段,仍然需要CPU运行相关任务。因此,现有技术方案部分降低了CPU负荷。如果系统中终端数量多,终端之间交互数据量大,现有方案仍然需要CPU频繁的进入DMA启动和终止进程,这将造成CPU的负荷的增加,从而导致系统效率降低。
技术实现思路
有鉴于此,本申请提供一种基于FPGA的数据交互方法及装置。具体地,本申请是通过如下技术方案实现的:第一方面,本申请实施例提供一种基于FPGA的数据交互方法,所述方法包括:现场可编程门阵列FPGA内的虚拟P2P桥接收第一终端发送的TLP类型的数据包,并将所述数据包存储于所述缓存单元中;所述FPGA内的业务单元对所述数据包进行解析,获取所述数据包对应的目的终端地址和地址路由,以及根据所述目的终端地址确定第二终端;判断所述第二终端与所述FPGA连接的总线的状态;当确定所述总线的状态处于空闲状态时,从所述缓存单元中读取所述数据包,并将所述数据包通过所述虚拟P2P桥发送给第二终端。在一可选实施方式中,所述数据包还包括:优先级信息。在一可选实施方式中,所述方法还包括:根据所述优先级信息确定通过所述虚拟P2P桥发送所述数据包的顺序。在一可选实施方式中,所述FPGA的上游端口与中央处理器CPU连接,所述FPGA的多个下游端口分别于终端连接;所述连接均通过PCIe总线连接。在一可选实施方式中,所述方法还包括:配置所述FPGA的SerDes接口,实现所述FPGA通过所述SerDes接口与所述CPU连接。在一可选实施方式中一种基于FPGA的数据交互装置,所述装置包括:接收模块,用于接收第一终端发送的TLP类型的数据包,并将所述数据包存储于所述缓存单元中;解析模块,用于对所述数据包进行解析,获取所述数据包对应的目的终端地址和地址路由,以及根据所述目的终端地址确定第二终端;判断模块,用于判断所述第二终端与所述FPGA连接的总线的状态;发送模块,用于当确定所述总线的状态处于空闲状态时,从所述缓存单元中读取所述数据包,并将所述数据包通过所述虚拟P2P桥发送给第二终端。在一可选实施方式中,所述数据包还包括:优先级信息。在一可选实施方式中,所述发送模块,还用于根据所述优先级信息确定通过所述虚拟P2P桥发送所述数据包的顺序。在一可选实施方式中,所述装置的上游端口与中央处理器CPU连接,所述装置的多个下游端口分别于终端连接;所述连接均通过PCIe总线连接。在一可选实施方式中,所述装置还包括:配置模块,用于配置所述装置的SerDes接口,实现所述装置通过所述SerDes接口与所述CPU连接。本实施例提供的基于FPGA的数据交互方案,通过FPGA内的虚拟P2P桥接收第一终端发送的TLP类型的数据包,并将所述数据包存储于所述缓存单元中;所述FPGA内的业务单元对所述数据包进行解析,获取所述数据包对应的目的终端地址和地址路由,以及根据所述目的终端地址确定第二终端;判断所述第二终端与所述FPGA连接的总线的状态;当确定所述总线的状态处于空闲状态时,从所述缓存单元中读取所述数据包,并将所述数据包通过所述虚拟P2P桥发送给第二终端。能够在不影响CPU与终端交互的前提下,使用FPGA控制PCIe体系结构中终端之间的交互,使CPU能够将更多的资源用于处理其他系统任务,对于多终端、终端交互数据量大的系统,本专利技术的技术方案将显著降低CPU的负荷,提高系统的效率。附图说明图1是本申请一示例性实施例示出的一种基于FPGA的数据交互方法的流程示意图;图2是本申请一示例性实施例示出的一种基于FPGA的数据交互系统的结构示意图;图3是本申请一示例性实施例示出的一种基于FPGA的数据交互装置的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。图1是本申请一示例性实施例示出的一种基于FPGA的数据交互方法的流程示意图,如图1所示,该方法具体包括:S101、FPGA内的虚拟P2P桥接收第一终端发送的TLP类型的数据包,并将数据包存储于缓存单元中。在本实施例中,具体请参照图2示出的一种基于FPGA的数据交互系统的结构示意图,所述FPGA的上游端口与CPU连接,所述FPGA的多个下游端口分别于终端连接;所述连接均通过PCIe总线连接。在实施S101之前,还可以通过CPU配置所述FPGA的SerDes接口,实现所述FPGA通过所述SerDes接口与所述CPU连接。具体地,使用FPGA的SerDes接口作为硬件接口,通过编程实现事务层、数据链路层和物理层的功能,如果使用外部专用芯片作为PCIe接口,则需要配置FPGA的接口,实现FPGA与外部芯片的连接。通过编程,在FPGA内部实现虚拟P2P桥、业务单元功能,虚拟P2P桥主要负责CPU与终端之间的各种类型的数据包的转法,业务单元块对CPU与终端、终端之间的交互的仲裁,从而判断哪个交互过程可以使用PC本文档来自技高网...

【技术保护点】
1.一种基于FPGA的数据交互方法,其特征在于,所述方法包括:现场可编程门阵列FPGA内的虚拟P2P桥接收第一终端发送的TLP类型的数据包,并将所述数据包存储于所述缓存单元中;所述FPGA内的业务单元对所述数据包进行解析,获取所述数据包对应的目的终端地址和地址路由,以及根据所述目的终端地址确定第二终端;判断所述第二终端与所述FPGA连接的总线的状态;当确定所述总线的状态处于空闲状态时,从所述缓存单元中读取所述数据包,并将所述数据包通过所述虚拟P2P桥发送给第二终端。

【技术特征摘要】
1.一种基于FPGA的数据交互方法,其特征在于,所述方法包括:现场可编程门阵列FPGA内的虚拟P2P桥接收第一终端发送的TLP类型的数据包,并将所述数据包存储于所述缓存单元中;所述FPGA内的业务单元对所述数据包进行解析,获取所述数据包对应的目的终端地址和地址路由,以及根据所述目的终端地址确定第二终端;判断所述第二终端与所述FPGA连接的总线的状态;当确定所述总线的状态处于空闲状态时,从所述缓存单元中读取所述数据包,并将所述数据包通过所述虚拟P2P桥发送给第二终端。2.根据权利要求1所述的方法,其特征在于,所述数据包还包括:优先级信息。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:根据所述优先级信息确定通过所述虚拟P2P桥发送所述数据包的顺序。4.根据权利要求1所述的方法,其特征在于,所述FPGA的上游端口与中央处理器CPU连接,所述FPGA的多个下游端口分别于终端连接;所述连接均通过PCIe总线连接。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:配置所述FPGA的SerDes接口,实现所述FPGA通过所述SerDes接口与所述CPU连接...

【专利技术属性】
技术研发人员:张代生吴刚刘彦静
申请(专利权)人:杭州迪普科技股份有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1