CN110932922B - 基于fpga的金融数据二层网络采集系统及其测试方法 - Google Patents
基于fpga的金融数据二层网络采集系统及其测试方法 Download PDFInfo
- Publication number
- CN110932922B CN110932922B CN201811096651.XA CN201811096651A CN110932922B CN 110932922 B CN110932922 B CN 110932922B CN 201811096651 A CN201811096651 A CN 201811096651A CN 110932922 B CN110932922 B CN 110932922B
- Authority
- CN
- China
- Prior art keywords
- data
- state
- fpga
- entering
- valid
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于FPGA的金融数据二层网络采集系统及其测试方法,所述系统包括依次连接的数据源、交换机和接收主机,还包括FPGA板卡,该FPGA板卡分别连接交换机和接收主机,以旁路侦听方式从交换机接收金融数据,处理后转发给接收主机,所述FPGA板卡包括:10G超低延迟IP核,以旁路侦听方式接收金融数据,通过二层MAC网络解析四层TCP数据;数据处理单元,对接收到的金融数据进行处理;DMA转发单元,将处理后的金融数据转发给接收主机。与现有技术相比,本发明具有实现高频交易、低延迟等优点。
Description
技术领域
本发明涉及金融科技技术领域,尤其是涉及一种基于FPGA的金融数据二层网络采集系统及其测试方法。
背景技术
近年来,随着国内外资本市场的快速发展,资本流动性增强,金融交易方式日益多样化。作为一种新兴的交易方式,低延迟交易正日益受到金融证券行业从业人员的高度关注。低延迟交易是一种应用在金融上的主要算法交易模式,准确来说,低延迟交易使用了复杂的技术工具和计算机算法实现快速的交易。
根据金融证券行业低延迟交易系统处理的环节,交易延迟一般可以分为:网络传输延迟、网卡处理与中断延迟、进程切换和CPU 处理延迟。交易延迟的影响因素涵盖了网络、CPU、存储器、网络接口性能等计算机硬件相关的因素,以及操作系统、中间件(主要为消息中间件)、应用软件等软件相关的因素。这些因素在不同层次上对高频证券交易延迟造成影响。
针对上述影响高频交易的系统延迟,通常采用的降低延迟的方法包括:使用更快的网络、提高CPU主频、Bypass Kernal、使用FPGA加速、使用低延迟接口等。由于半导体技术的飞速发展,摩尔定律达到极限,计算机性能的提升单一依靠主频的提高来实现变得越来越困难,采用通用CPU处理器来构建低延迟交易系统的局限性日益显现。
高频交易的高速发展主要得益于完善的电子交易平台和先进的信息技术,计算机自动交易理念和技术的发展以及交易品种的多样性和完善的市场结构等诸多因素。当前香港证券交易所、新加坡证券交易所均计划全面提升交易系统的容量、速度和功能,以应对未来高频交易量大幅度增长带来的技术挑战。受股票市场T+1 交易制度的限制,大部分投资者最为关心的是以日为单位的短线、中长线投资机会,对日内交易机会关注较少。随着证券市场的深化改革,金融投资者对具有高性能、低延迟的高频交易系统的需求日趋强烈。
现有技术使用纯软件的方式更新数据,带来大量的延迟,难以满足实时更新的市场需求,对突发大量金融数据情况,有连续丢包现象,容易错失重要数据。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于FPGA的金融数据二层网络采集系统及其测试方法。
本发明的目的可以通过以下技术方案来实现:
一种基于FPGA的金融数据二层网络采集系统,包括依次连接的数据源、交换机和接收主机,还包括FPGA板卡,该FPGA板卡分别连接交换机和接收主机,以旁路侦听方式从交换机接收金融数据,处理后转发给接收主机,所述FPGA板卡包括:
10G超低延迟IP核,以旁路侦听方式接收金融数据,通过二层MAC网络解析四层TCP数据;
数据处理单元,对接收到的金融数据进行处理;
DMA转发单元,将处理后的金融数据转发给接收主机。
进一步地,所述对接收到的金融数据进行处理包括对实际接收数据包的IP和端口的过滤和分类,实现TCP报文头部解析。
进一步地,所述FPGA板卡通过AXI4总线实现旁路侦听方式的数据传输。
进一步地,所述FPGA板卡在接收金融数据过程中,对IP和端口的过滤准则进行实时配置。
本发明还提供一种针对所述的基于FPGA的金融数据二层网络采集系统的延迟测试方法,包括以下步骤:
1)进入延迟测试模式;
2)测试主机发送带有发送时间的测试包到测试对端机,同时带有发送时间的测试包通过端口镜像方式回FPGA板卡监听获得,所述测试对端机中设置有高速网卡;
3)测试主机记录所述测试对端机和FPGA板卡返回数据的接收时间;
4)根据测试对端机和FPGA板卡返回数据的接收时间与测试包中的发送时间的差值,实现对FPGA板卡延迟时间的测试。
进一步地,所述端口镜像方式通过JUNIP低延迟交换机实现。
与现有技术相比,本发明具有以如下有益效果:
1)本发明在FPGA板卡上设置10G超低延迟IP核,从二层MAC层解析四层TCP数据包,提取关键金融数据,极大地降低TCP数据解析所需延迟;
2)FPGA使用旁路侦听方式接收金融数据,无需在FPGA上实现完整的TCP协议栈,大大降低系统的成本和复杂度;
3)本发明FPGA在接收金融数据过程中,对IP和端口的过滤准则进行实时配置,可在线配置寄存器,提高FPGA应用灵活性,可用于除金融以外其他相关场景;
4)本发明利用FPGA板卡代替软件接收解析金融数据方案,同时将数据接收延迟降低到亚微秒级,超越全球最高速网卡性能;
5)本发明提供一种FPGA延迟测试方法,使用回环对比方式进行硬件延迟测试,测试方法简单、成本低、操作简单、效果明显。
附图说明
图1为本发明金融数据二层网络采集系统的结构示意图;
图2为本发明10G超低延迟IP核的结构示意图;
图3为本发明数据处理过程的报头过滤状态转化示意图;
图4为本发明FPGA在线配置过程示意图;
图5为本发明测试过程原理图;
图6为本发明测试方法流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1所示,本实施例提供一种基于FPGA的金融数据二层网络采集系统,包括依次连接的数据源1、交换机2和接收主机3,还包括FPGA板卡4,该FPGA板卡4分别连接交换机2和接收主机3,接入PCI-E插槽,以旁路侦听方式从交换机2接收金融数据,处理后转发给接收主机3,所述FPGA板卡包括10G超低延迟IP核41、数据处理单元42和DMA转发单元43,并通过PCI-E控制器44实现与接收主机3的连接,其中,10G超低延迟IP核41以旁路侦听方式接收金融数据,通过二层MAC网络解析四层TCP数据;数据处理单元42对接收到的金融数据进行处理;DMA转发单元43将处理后的金融数据转发给接收主机。
FPGA板卡使用接收侦听方式接收金融数据,以纯硬件接收方式代替以往的软件TCP解析协议栈,实现10G超低延迟PCS、MAC IP核、接近线速的数据处理以及快速DMA转发,将金融数据接收从微秒级降低到亚微秒级。10G超低延迟IP核41的结构如图2所示,支持64位总线运行250 MHz,支持32位AXI-4 lite slave控制接口配置MAC核。
由于网络环境复杂,本发明采集系统实现了FPGA对实际接收数据包对IP和端口过滤和分类,在FPGA内部实现TCP报文头部解析状态机,如图3所示:
(1)FPGA内部使用AXI4总线支持突发式数据传输,系统复位后即进入S0状态,并突发数据有效信号;当有效数据到来时,接收到valid信号后进入S1状态,同时记录此时目的MAC地址和源MAC部分地址;
(2)valid信号有效时进入S2状态,同时获取到源MAC另一部分地址以及IP报头类型;如果接收到last信号表示数据结束,进入LAST状态;
(3)valid信号有效时进入S3状态,同时得到包长度;如果接收到last信号表示数据结束,进入LAST状态;
(4)valid信号有效时进入S4状态,同时得到源IP地址和部分目标IP地址;如果接收到last信号表示数据结束,进入LAST状态;
(5)valid信号有效时进入S5状态,同时得到目标IP地址、源端口和目标端口;如果接收到last信号表示数据结束,进入LAST状态;
(6)valid信号有效时进入S6状态,根据得到的IP的端口信息设置输出使能信号开关valid;等待收到last信号,进入LAST状态;
(7)LAST状态下等待valid信号失效,本次数据接收完毕,进入状态S0继续接收下一个数据。
为了使系统应用更加灵活,方便系统调试和测试,本发明采集系统实现了在线参数可配置,对FPGA内IP、端口过滤准则实时配置,状态机框图如图4所示:
(1)系统复位后进入状态IDLE,当有读或写请求触发时,由系统判决器判断优先级进入READ或WRITE0状态;
(2)READ状态下获取读地址,将数据赋值给读数据总线,然后回到IDLE状态;
(3)WRITE0状态下回去写地址,进入WRITE1状态;
(4)在WRITE1状态机中置高bvlaid反馈信号,同时对寄存器写赋值,然后回到IDLE状态。
本实施例还提供一种针对上述基于FPGA的金融数据二层网络采集系统的延迟测试方法,该方法通过旁路侦听回环对比方式 建立FPGA传输时延测试系统,如图5所示,从高精度的时间戳差值对比评估FPGA数据传输系统的性能。测试主机与测试对端机完成握手建立TCP连接,中间数据经过JUNIP低延迟交换机做端口镜像发送给FPGA,FPGA在回路中使用旁路侦听方式。
如图6所示,该延迟测试方法包括以下步骤:
1)进入延迟测试模式;
2)测试主机发送带有发送时间的测试包到测试对端机,同时带有发送时间的测试包通过端口镜像方式回FPGA板卡监听获得,所述测试对端机中设置有高速网卡;
3)测试主机记录所述测试对端机和FPGA板卡返回数据的接收时间,测试主机会收到两条回路的数据,第一条是来自SolarFlare高速网卡,在高速网卡中完成数据接收、TCP包解析、数据转储;第二条来自FPGA加速板卡,FPGA中完成数据接收、数据处理、PCIE转发;
4)根据测试对端机和FPGA板卡返回数据的接收时间与测试包中的发送时间的差值,实现对FPGA板卡延迟时间的测试。测试主机计算接收数据时间与数据包中时间戳的差值,为本次传输时间,对比两条通路传输时间差值,可进行量化对比FPGA加速板卡相对高速网卡的性能对比,从而在传输时延和传输稳定性等多方面进行评估。
通过上述测试方法可对基于FPGA的金融数据二层网络采集系统的稳定性进行观察。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (3)
1.一种基于FPGA的金融数据二层网络采集系统,包括依次连接的数据源、交换机和接收主机,其特征在于,还包括FPGA板卡,该FPGA板卡分别连接交换机和接收主机,以旁路侦听方式从交换机接收金融数据,处理后转发给接收主机,所述FPGA板卡包括:
10G超低延迟IP核,以旁路侦听方式接收金融数据,通过二层MAC网络解析四层TCP数据;
数据处理单元,对接收到的金融数据进行处理;
DMA转发单元,将处理后的金融数据转发给接收主机;
所述对接收到的金融数据进行处理包括对实际接收数据包的IP和端口的过滤和分类,在FPGA内部实现TCP报文头部解析状态机,具体地:
(1)FPGA内部使用AXI4总线支持突发式数据传输,系统复位后即进入S0状态,并突发数据有效信号;当有效数据到来时,接收到valid信号后进入S1状态,同时记录此时目的MAC地址和源MAC部分地址;
(2)valid信号有效时进入S2状态,同时获取到源MAC另一部分地址以及IP报头类型;如果接收到last信号表示数据结束,进入LAST状态;
(3)valid信号有效时进入S3状态,同时得到包长度;如果接收到last信号表示数据结束,进入LAST状态;
(4)valid信号有效时进入S4状态,同时得到源IP地址和部分目标IP地址;如果接收到last信号表示数据结束,进入LAST状态;
(5)valid信号有效时进入S5状态,同时得到目标IP地址、源端口和目标端口;如果接收到last信号表示数据结束,进入LAST状态;
(6)valid信号有效时进入S6状态,根据得到的IP的端口信息设置输出使能信号开关valid;等待收到last信号,进入LAST状态;
(7)LAST状态下等待valid信号失效,本次数据接收完毕,进入状态S0继续接收下一个数据;
所述FPGA板卡通过AXI4总线实现旁路侦听方式的数据传输,所述FPGA板卡在接收金融数据过程中,对IP和端口的过滤准则进行实时配置,具体地:
(1)系统复位后进入状态IDLE,当有读或写请求触发时,由系统判决器判断优先级进入READ或WRITE0状态;
(2)READ状态下获取读地址,将数据赋值给读数据总线,然后回到IDLE状态;
(3)WRITE0状态下回去写地址,进入WRITE1状态;
(4)在WRITE1状态机中置高bvlaid反馈信号,同时对寄存器写赋值,然后回到IDLE状态。
2.一种针对如权利要求1所述的基于FPGA的金融数据二层网络采集系统的延迟测试方法,其特征在于,包括以下步骤:
1)进入延迟测试模式;
2)测试主机发送带有发送时间的测试包到测试对端机,同时带有发送时间的测试包通过端口镜像方式回FPGA板卡监听获得,所述测试对端机中设置有高速网卡;
3)测试主机记录所述测试对端机和FPGA板卡返回数据的接收时间;
4)根据测试对端机和FPGA板卡返回数据的接收时间与测试包中的发送时间的差值,实现对FPGA板卡延迟时间的测试。
3.根据如权利要求2所述的延迟测试方法,其特征在于,所述端口镜像方式通过JUNIP低延迟交换机实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811096651.XA CN110932922B (zh) | 2018-09-19 | 2018-09-19 | 基于fpga的金融数据二层网络采集系统及其测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811096651.XA CN110932922B (zh) | 2018-09-19 | 2018-09-19 | 基于fpga的金融数据二层网络采集系统及其测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110932922A CN110932922A (zh) | 2020-03-27 |
CN110932922B true CN110932922B (zh) | 2022-11-08 |
Family
ID=69855259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811096651.XA Active CN110932922B (zh) | 2018-09-19 | 2018-09-19 | 基于fpga的金融数据二层网络采集系统及其测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110932922B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111679969A (zh) * | 2020-05-07 | 2020-09-18 | 上海正网信息技术有限公司 | 一种高频交易过程中的延迟测试方法及系统 |
CN112198424B (zh) * | 2020-09-25 | 2023-04-25 | 杭州加速科技有限公司 | Fpga芯片内的测试逻辑分析单元 |
CN114285747B (zh) * | 2021-12-24 | 2024-05-03 | 盛立安元科技(杭州)股份有限公司 | 一种tcp数据接收方法、装置、设备及存储介质 |
CN115277499B (zh) * | 2022-07-20 | 2023-07-11 | 科东(广州)软件科技有限公司 | Mac设备的延迟参数确定方法、装置、硬件平台及介质 |
CN115766520A (zh) * | 2022-11-18 | 2023-03-07 | 许昌许继软件技术有限公司 | 一种端到端网络的数据传输性能测试系统及测试方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164058A (zh) * | 2011-05-13 | 2011-08-24 | 北京航空航天大学 | 基于iec61850标准变电站通信网络与系统测试方法 |
US9495308B2 (en) * | 2012-05-22 | 2016-11-15 | Xockets, Inc. | Offloading of computation for rack level servers and corresponding methods and systems |
EP3298740B1 (en) * | 2015-05-22 | 2023-04-12 | Gray Research LLC | Directional two-dimensional router and interconnection network for field programmable gate arrays |
CN105023185B (zh) * | 2015-08-04 | 2019-03-08 | 武汉旷腾信息技术有限公司 | 一种基于fpga的期货交易盘口数据实时解析系统 |
CN105989539B (zh) * | 2015-09-22 | 2019-10-25 | 盛立金融软件开发(杭州)有限公司 | 一种金融交易行情获取系统以及获取方法 |
CN107689931B (zh) * | 2017-09-27 | 2021-05-14 | 广州海格通信集团股份有限公司 | 一种基于国产fpga的实现以太网交换功能系统及方法 |
-
2018
- 2018-09-19 CN CN201811096651.XA patent/CN110932922B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110932922A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110932922B (zh) | 基于fpga的金融数据二层网络采集系统及其测试方法 | |
US9996491B2 (en) | Network interface controller with direct connection to host memory | |
CN103916252B (zh) | 一种基于fpga的高带宽以太网ip核 | |
US9952963B2 (en) | System on chip and corresponding monitoring method | |
EP2126710B1 (en) | Content-terminated dma | |
CN102495920B (zh) | 一种FPGA用基于PCIe的集成化逻辑分析模块 | |
US6484225B2 (en) | Method and system for managing communications among computer devices | |
US20140250202A1 (en) | Peer-to-peer interrupt signaling between devices coupled via interconnects | |
CN110471872A (zh) | 一种基于zynq芯片实现m-lvds总线数据交互系统和方法 | |
CN109800193B (zh) | 一种ahb总线访问片上sram的桥接装置 | |
CN110297797B (zh) | 异构协议转换装置和方法 | |
CN114297124B (zh) | 一种基于fpga的srio高速总线的通讯系统 | |
CN107562672A (zh) | 一种提高矢量网络分析仪数据传输速率的系统及方法 | |
US12038866B2 (en) | Broadcast adapters in a network-on-chip | |
CN115967589A (zh) | 基于arm和fpga的高速缓冲型can总线通信系统及方法 | |
CN109783933B (zh) | 一种ahb总线访问片上sram的桥接方法 | |
CN214586880U (zh) | 一种信息处理设备 | |
CN111782579B (zh) | 一种基于fpga的以太网协议硬件逻辑处理结构 | |
CN110297785B (zh) | 一种基于fpga的金融数据流控装置和流控方法 | |
CN116166581A (zh) | 用于pcie总线的队列式dma控制器电路及数据传输方法 | |
CN107870885A (zh) | 通信系统、装置及方法 | |
CN111190840A (zh) | 基于现场可编程门阵列控制的多方中央处理器通信架构 | |
US6298409B1 (en) | System for data and interrupt posting for computer devices | |
CN113037604A (zh) | 一种基于两级描述符表征的以太网控制系统 | |
CN219268891U (zh) | 基于Zynq的光谱仪数据千兆以太网DMA传输装置 |
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 |