CN115834725B - 一种基于fpga的网络巨型帧处理的数据解析方法 - Google Patents
一种基于fpga的网络巨型帧处理的数据解析方法 Download PDFInfo
- Publication number
- CN115834725B CN115834725B CN202310125552.4A CN202310125552A CN115834725B CN 115834725 B CN115834725 B CN 115834725B CN 202310125552 A CN202310125552 A CN 202310125552A CN 115834725 B CN115834725 B CN 115834725B
- Authority
- CN
- China
- Prior art keywords
- frame
- module
- giant
- data stream
- 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.)
- Active
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于FPGA的网络巨型帧处理的数据解析方法,包括:S1、行情数据流通过FPGA的网口传输至GTY模块的链路层,GTY模块接收行情数据流,GTY将行情数据流进行网络数据流进行AXI协议的转换,并传输至MAC+PCS模块;S3、巨型帧多路选择器模块对来自网口的行情数据流进行大小帧的区分;S4、巨型帧仲裁模块根据巨型帧的偏移数值的关键字段判断是否合法,若是错误帧,则将原有的缓存模块重置,进行线路切换并存入当前巨型帧;S5、巨型帧管理模块对合法帧进行类型判别,通过不同帧位置,结合FSM模块控制缓存拼接模块的信号发送。本发明设计了针对行情数据流的数据帧仲裁模块、管理模块和仲裁模块,降低CPU负载,提高对FAST巨型帧协议流数据的硬件解码的整体稳定性。
Description
技术领域
本发明针对证券行业行情数据巨型帧的解析加速问题,具体涉及一种基于FPGA的网络巨型帧处理的数据解析方法。
背景技术
FPGA,是Field Programmable Gate Array的简称,中文名称为现场可编程门阵列,是一种可编程器件,是在PAL(可编程逻辑阵列)、GAL(通用阵列逻辑)、CPLD(复杂可编程逻辑器件)等传统逻辑电路和门阵列的基础上发展起来的一种半定制电路,既解决了半定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,其计算存储、算法加速和低延时传输等方面的独特优势在金融领域有着深入的技术应用价值。
目前,在金融证券行业,行情的解析开始采用基于FPGA进行硬件上的解码。但是由于FAST行情数据的高速数据传输,其传输的数据远远大于普通帧的大小,传统的FPGA网络处理模块没有针对巨型帧的数据处理,这导致巨型帧数据的到来会一直堵塞在网络处理模块,影响系统的运行可行性。同时,CPU相对固定的处理模式,倘若处理巨型帧的逻辑问题,会导致传输时延进一步提高,而且该方法对CPU的负载占用较大,是现有行情解析系统的痛点所在。
发明内容
本发明要解决的技术问题是提供一种基于FPGA的网络巨型帧处理的数据解析方法,实现了对来自网络的巨型帧的数据仲裁、管理和拼接,并将拼接完整后的高速数据发送至网络解析模块,降低数据巨型帧对于用户系统的稳定性威胁。
为解决上述技术问题,本发明的实施例提供一种基于FPGA的网络巨型帧处理的数据解析方法,包括如下步骤:
S1、行情数据流通过FPGA的网口传输至GTY模块的链路层,GTY模块接收行情数据流,GTY将行情数据流进行网络数据流进行AXI协议的转换,并传输至MAC+PCS模块;
S2、MAC+PCS模块接收步骤S1传输的行情数据流处理MAC模块上的逻辑问题,并将数据到来的时钟域与内部的时钟域进行频率匹配,实现跨时钟域的数据传输,并将行情数据流一同传入帧管理层;
S3、巨型帧多路选择器模块对来自网口的行情数据流进行大小帧的区分,针对行情数据流的关键字段将普通帧直接传入UDP解析模块,将巨型帧的各个帧按顺序传入巨型帧仲裁模块;
S4、巨型帧仲裁模块根据巨型帧的偏移数值的关键字段判断是否合法,若是错误帧,则将原有的缓存拼接模块重置,进行线路切换并存入当前巨型帧;
S5、巨型帧管理模块对合法帧进行类型判别,通过不同帧位置,结合FSM模块控制缓存拼接模块的信号发送;
S6、缓存拼接模块通过FSM的控制,告知UDP解析模块发送巨型帧的具体位置,用于用户模块进行正确的数据解析。
其中,步骤S1中,行情数据流依靠10G网口的IP核心和MAC+PCS模块的IP核实现行情数据流的链路层和MAC层逻辑数据处理。
其中,步骤2中,MAC+PCS模块的MAC模块用于将行情数据流协议转换为硬件逻辑层中可以接受的AXIS协议;PCS模块用于对数据进行跨时钟域。
其中,步骤S3中,巨型帧通过到来的数据帧的字段进行大小帧的区分,结合标志位、偏移度和标识位分辨到来的数据帧的类型,若巨型帧中间隔了普通帧,则将普通帧的数据直接传输至UDP解析模块。
其中,步骤S4中:Asd巨型帧仲裁模块持续保留上一个帧的偏移长度,并与新到来的巨型帧的偏移长度进行比较;若两巨型帧的偏移度不相匹配,认为巨型帧与缓存的数据帧是不相符合的,通过FSM控制缓存拼接模块进行重置,并选择备用的线路存入当前巨型帧。
其中,步骤S5包括如下步骤:
S5.1、巨型帧根据巨型帧的头部信息,结合ID、分包情况和偏移量将行情数据流分为头帧,中间帧和尾帧;
S5.2、巨型帧的不同帧部分,在发往缓存拼接模块前告知FSM数据帧的具体类型;
S5.3、FSM模块根据不同帧的部分处于不同的状态,控制缓存拼接模块的Tuser信号和Tlast信号,两个信号分别告知巨型帧的到来与结束;
S5.4、整个帧管理层由多个状态机并行处理行情数据流,并在行情数据流错误时使用备用缓存模块以应对高速的巨型帧。
本发明的上述技术方案的有益效果如下:
1、本发明提供一种基于FPGA的网络巨型帧处理的数据解析方法,采用XILINXAlveo U系列的FPGA硬件加速卡,结合Verilog硬件描述语言与HLS硬件描述语言实现,在FPGA加速卡上开发网络巨型帧处理的设计与方案,对网络巨型帧进行合理的仲裁和优化。
2、本发明设计了针对行情数据流的数据帧仲裁模块,管理模块和仲裁模块,降低CPU负载,从而提高了对FAST巨型帧协议流数据的硬件解码的整体稳定性。
附图说明
图1为本发明的流程图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
如图1所示,本发明提供一种基于FPGA的网络巨型帧处理的数据解析方法,包括如下步骤:
S1、行情数据流通过FPGA(可编程门阵列)的网口传输至GTY(吉比特收发器)模块的链路层,GTY模块接收行情数据流,GTY将行情数据流进行网络数据流进行AXI协议的转换,并传输至MAC(媒体访问控制器)+PCS(物理编码子层)模块;本步骤中,行情数据流依靠10G网口的IP核心和MAC+PCS模块的IP核实现行情数据流的链路层和MAC层逻辑数据处理。
S2、MAC+PCS模块接收步骤S1传输的行情数据流处理MAC模块上的逻辑问题,并将数据到来的时钟域与内部的时钟域进行频率匹配,实现跨时钟域的数据传输,并将行情数据流一同传入帧管理层;本步骤中,MAC模块主要解决七层网络层中的MAC层,主要是实现将数据流协议转换为硬件逻辑层中可以接受的AXIS(高级可扩展流式接口)协议。
另外,PCS层主要处理外部时钟和内部时钟的协同问题,由于外界的时钟域低于内部的时钟域,因此需要采用PCS模块对数据进行跨时钟域。
S3、巨型帧多路选择器模块对来自网口的行情数据流进行大小帧的区分,针对行情数据流的关键字段将普通帧直接传入UDP解析模块,将巨型帧的各个帧按顺序传入巨型帧仲裁模块;本步骤中,巨型帧通过到来的数据帧的字段进行大小帧的区分,结合标志位、偏移度和标识位分辨到来的数据帧的类型,若巨型帧中间隔了普通帧,则将普通帧的数据直接传输至UDP解析模块。
S4、巨型帧仲裁模块根据巨型帧的偏移数值的关键字段判断是否合法,若是错误帧,则将原有的缓存拼接模块重置,进行线路切换并存入当前巨型帧;本步骤中,Asd巨型帧仲裁模块持续保留上一个帧的偏移长度,并与新到来的巨型帧的偏移长度进行比较;若两巨型帧的偏移度不相匹配,认为巨型帧与缓存的数据帧是不相符合的,通过FSM(有限状态机)控制缓存拼接模块进行重置,并选择备用的线路存入当前巨型帧。
S5、巨型帧管理模块对合法帧进行类型判别,通过不同帧位置,结合FSM模块控制缓存拼接模块的信号发送;具体包括如下步骤:
S5.1、巨型帧根据巨型帧的头部信息,结合ID、分包情况和偏移量将行情数据流分为头帧,中间帧和尾帧;
S5.2、巨型帧的不同帧部分,在发往缓存拼接模块前告知FSM数据帧的具体类型;
S5.3、FSM模块根据不同帧的部分处于不同的状态,控制缓存拼接模块的Tuser信号和Tlast信号,两个信号分别告知巨型帧的到来与结束;
S5.4、整个帧管理层由多个状态机并行处理行情数据流,并在行情数据流错误时使用备用缓存模块以应对高速的巨型帧。
S6、缓存拼接模块通过FSM的控制,告知UDP解析模块发送巨型帧的具体位置,用于用户模块进行正确的数据解析。
本发明中,对于整个设计方案,网络协议上的数据链路层和MAC层解析需要调用专用的IP核,这些IP核负责将网络的数据转换为基于axi的流式信息。也负责将到来时钟域进行管理。
将本发明将可以处理巨型帧的数据处理系统和不具备巨型帧数据处理的硬件解码系统分别部署在两台相同配置的物理服务器上,且两台服务器上均部署有交易所的行情网关,发送同一天的FAST(FIX Adapted forStreaming,一种面向消息流的压缩、编码和传输方法)流数据行情。
对比数据如下:
一般行情数据硬件系统 | 支持巨型帧的行情数据硬件系统 |
3pkt | 1283045pkt |
通过测试发现,本发明的基于FPGA巨型帧接收处理硬件系统可以有效处理数量级差别巨大的数据帧,相比只能处理3个数据帧的一般硬件系统,该巨型帧数据处理硬件系统可以处理百万以上的数据帧,解决在网络FAST协议流数据对系统稳定性的影响,可以持续承担一天的行情数据解码。
本发明采用XILINX Alveo U系列的FPGA硬件加速卡,结合Verilog硬件描述语言与HLS硬件描述语言实现,在FPGA加速卡上开发网络巨型帧处理的设计与方案,对网络巨型帧进行合理的仲裁和优化。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种基于FPGA的网络巨型帧处理的数据解析方法,其特征在于,包括如下步骤:
S1、行情数据流通过FPGA的网口传输至GTY模块的链路层,GTY模块接收行情数据流,GTY将行情数据流进行网络数据流进行AXI协议的转换,并传输至MAC+PCS模块;
S2、MAC+PCS模块接收步骤S1传输的行情数据流处理MAC模块上的逻辑问题,并将数据到来的时钟域与内部的时钟域进行频率匹配,实现跨时钟域的数据传输,并将行情数据流一同传入帧管理层;
S3、巨型帧多路选择器模块对来自网口的行情数据流进行大小帧的区分,针对行情数据流的关键字段将普通帧直接传入UDP解析模块,将巨型帧的各个帧按顺序传入巨型帧仲裁模块;
S4、巨型帧仲裁模块根据巨型帧的偏移数值的关键字段判断是否合法,若是错误帧,则将原有的缓存拼接模块重置,进行线路切换并存入当前巨型帧;
S5、巨型帧管理模块对合法帧进行类型判别,通过不同帧位置,结合FSM模块控制缓存拼接模块的信号发送;
S6、缓存拼接模块通过FSM的控制,告知UDP解析模块发送巨型帧的具体位置,用于用户模块进行正确的数据解析。
2.根据权利要求1所述的基于FPGA的网络巨型帧处理的数据解析方法,其特征在于,步骤S1中,行情数据流依靠10G网口的IP核心和MAC+PCS模块的IP核实现行情数据流的链路层和MAC层逻辑数据处理。
3.根据权利要求1所述的基于FPGA的网络巨型帧处理的数据解析方法,其特征在于,步骤2中,MAC+PCS模块的MAC模块用于将行情数据流协议转换为硬件逻辑层中可以接受的AXIS协议;PCS模块用于对数据进行跨时钟域。
4.根据权利要求1所述的基于FPGA的网络巨型帧处理的数据解析方法,其特征在于,步骤S3中,巨型帧通过到来的数据帧的字段进行大小帧的区分,结合标志位、偏移度和标识位分辨到来的数据帧的类型,若巨型帧中间隔了普通帧,则将普通帧的数据直接传输至UDP解析模块。
5.根据权利要求1所述的基于FPGA的网络巨型帧处理的数据解析方法,其特征在于,步骤S4中:巨型帧仲裁模块持续保留上一个帧的偏移长度,并与新到来的巨型帧的偏移长度进行比较;若两巨型帧的偏移度不相匹配,认为巨型帧与缓存的数据帧是不相符合的,通过FSM控制缓存拼接模块进行重置,并选择备用的线路存入当前巨型帧。
6.根据权利要求1所述的基于FPGA的网络巨型帧处理的数据解析方法,其特征在于,步骤S5包括如下步骤:
S5.1、巨型帧根据巨型帧的头部信息,结合ID、分包情况和偏移量将行情数据流分为头帧,中间帧和尾帧;
S5.2、巨型帧的不同帧部分,在发往缓存拼接模块前告知FSM数据帧的具体类型;
S5.3、FSM模块根据不同帧的部分处于不同的状态,控制缓存拼接模块的Tuser信号和Tlast信号,两个信号分别告知巨型帧的到来与结束;
S5.4、整个帧管理层由多个状态机并行处理行情数据流,并在行情数据流错误时使用备用缓存模块以应对高速的巨型帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310125552.4A CN115834725B (zh) | 2023-02-17 | 2023-02-17 | 一种基于fpga的网络巨型帧处理的数据解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310125552.4A CN115834725B (zh) | 2023-02-17 | 2023-02-17 | 一种基于fpga的网络巨型帧处理的数据解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115834725A CN115834725A (zh) | 2023-03-21 |
CN115834725B true CN115834725B (zh) | 2023-04-14 |
Family
ID=85521651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310125552.4A Active CN115834725B (zh) | 2023-02-17 | 2023-02-17 | 一种基于fpga的网络巨型帧处理的数据解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834725B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7684440B1 (en) * | 2003-12-18 | 2010-03-23 | Nvidia Corporation | Method and apparatus for maximizing peer-to-peer frame sizes within a network supporting a plurality of frame sizes |
JP2012120079A (ja) * | 2010-12-03 | 2012-06-21 | Hitachi Ltd | フレーム転送装置及び帯域制御方法 |
CN112100119A (zh) * | 2020-08-18 | 2020-12-18 | 中国科学院声学研究所 | 一种基于fpga的高速以太网帧重构系统 |
CN115344527A (zh) * | 2022-10-18 | 2022-11-15 | 上海特高信息技术有限公司 | 一种基于fpga的高速行情数据缓存方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100631786B1 (ko) * | 2005-02-18 | 2006-10-12 | 삼성전자주식회사 | 프레임의 신뢰도를 측정하여 음성을 인식하는 방법 및 장치 |
US9894008B2 (en) * | 2014-08-20 | 2018-02-13 | Citrix Systems, Inc. | Systems and methods for implementation of jumbo frame over existing network stack |
-
2023
- 2023-02-17 CN CN202310125552.4A patent/CN115834725B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7684440B1 (en) * | 2003-12-18 | 2010-03-23 | Nvidia Corporation | Method and apparatus for maximizing peer-to-peer frame sizes within a network supporting a plurality of frame sizes |
JP2012120079A (ja) * | 2010-12-03 | 2012-06-21 | Hitachi Ltd | フレーム転送装置及び帯域制御方法 |
CN112100119A (zh) * | 2020-08-18 | 2020-12-18 | 中国科学院声学研究所 | 一种基于fpga的高速以太网帧重构系统 |
CN115344527A (zh) * | 2022-10-18 | 2022-11-15 | 上海特高信息技术有限公司 | 一种基于fpga的高速行情数据缓存方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115834725A (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9485200B2 (en) | Network switch with external buffering via looparound path | |
EP1196856B1 (en) | Method and apparatus for monitoring traffic in a network | |
US8270434B2 (en) | Method and system for reducing transceiver power via a variable number of channels | |
US9313140B2 (en) | Packet preemption for low latency | |
US20060242313A1 (en) | Network content processor including packet engine | |
US20090327506A1 (en) | System and method for controlling a phy attached to a mac interface for energy efficient ethernet | |
US20050128949A1 (en) | Network system having a plurality of switches capable of improving transmission efficiency and method thereof | |
US7606151B2 (en) | Power reduction in switch architectures | |
US20020138675A1 (en) | Processor for determining physical lane skew order | |
CN115344527B (zh) | 一种基于fpga的高速行情数据缓存方法 | |
US8589776B2 (en) | Translation between a first communication protocol and a second communication protocol | |
US20240064216A1 (en) | Device-to-device link training | |
CN113746749A (zh) | 网络连接设备 | |
CN113472697A (zh) | 网络信息传输系统 | |
KR20150077288A (ko) | 멀티코어 프로세서들에 대한 내부 및 외부 액세스를 갖는 룩-어사이드 프로세서 유닛 | |
CN115834725B (zh) | 一种基于fpga的网络巨型帧处理的数据解析方法 | |
US6195334B1 (en) | Apparatus and method for terminating a data transfer in a network switch in response to a detected collision | |
US6005863A (en) | Frame switch with serial data processing | |
CN108614792B (zh) | 1394事务层数据包存储管理方法及电路 | |
CN107332794A (zh) | 一种面向时间触发通信的动态锁定时槽方法 | |
US9391791B2 (en) | Preprocessing unit for network data | |
US20030218990A1 (en) | Repeater for performing auto-negotiation between two node devices in a network | |
US20040120254A1 (en) | Input port routing circuit that performs output port filtering | |
CN110661731B (zh) | 一种报文处理方法及其装置 | |
US20040174890A1 (en) | Network switch chip and method for cascading the same |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |