CN110297785A - 一种基于fpga的金融数据流控装置和流控方法 - Google Patents
一种基于fpga的金融数据流控装置和流控方法 Download PDFInfo
- Publication number
- CN110297785A CN110297785A CN201910646171.4A CN201910646171A CN110297785A CN 110297785 A CN110297785 A CN 110297785A CN 201910646171 A CN201910646171 A CN 201910646171A CN 110297785 A CN110297785 A CN 110297785A
- Authority
- CN
- China
- Prior art keywords
- data
- fpga
- flow control
- module
- path
- 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.)
- Granted
Links
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/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于FPGA的金融数据流控装置及流控方法,所述流控装置包括FPGA加速板卡,该FPGA加速板卡包括:物理层接口模块,用于获取网络包数据,并在物理层解析所述网络包数据;数据包识别模块,用于根据解析结果识别数据包类型;路径判决模块,用于根据数据包类型选择传输路径,所述传输路径包括缓存路径和上传路径;缓存模块,用于对属于缓存路径的数据包进行缓存;DMA模块,用于将属于上传路径的数据包上传至服务器。与现有技术相比,本发明卸载服务器CPU负荷同时大大降低额外的网络延迟,具有灵活、适用范围广泛等优点。
Description
技术领域
本发明涉及金融数据流控技术领域,尤其是涉及一种基于FPGA的金融数据流控装置和流控方法。
背景技术
随着网络技术的快速发展,基于网络的应用越来越多、越来越复杂。网络技术的发展不光提高了生产力,带来了股市的上涨,也为金融行业建立了完善的IT系统。金融工具的不断创新,期货、期权等金融衍生品的相继出现带来了市场上套利和趋势操作等盈利机会的出现。面对大量的、复杂的金融信息,量化投资和程序化交易数据,所以下一代计算机必须具备PB/s(PetaByte)级的数据处理能力,确保存储和网络的高吞吐量,并支持高并发访问、资源有效配置和快速部署,以应对大数据处理带来的一系列挑战。对于金融数据的流量控制的迫切的需求,既能保证金融数据的高吞吐量又可以保证实时性,同时可大大降低对后端计算机高吞吐量处理的要求。
金融数据承载的流量并不是连续、一成不变的。数据中心全年都在运转,随时处理来自世界各地的买卖需求,不同时间流量是不一样的。对于实际网络流量突发性增长和跌落都是不可预测的,在任何时间和空间尺度上,都没有必然的规律性。为了保证系统运行的稳定性,必然需要对突发性增长的流量进行疏通限流,本发明就针对金融数据流控做进一步研究。
数据流控提供了一种手段来控制指定时间内,被发送到服务器的数据量,这种控制可以实现的途径有很多,但是通常情况下,流量控制总是利用拖延发包来实现的,一般应用在网络边缘,以控制进入网络的流量,但也可直接应用于数据源(例如,计算机或网卡),或是网络中的一个元素。
现有数据流控方法为纯软件的方式,软件流控方式分两种。第一种是当发送或接收缓冲区开始溢出时通过将阻塞信号发送回源地址实现的。流量控制可以有效的防止由于网络中瞬间的大量数据对网络带来的冲击,保证用户网络高效而稳定的运行,然而对于多数海量数据单向接收场合并不适用。第二种将大量的网络数据阻拦在本地缓存或分布式缓存之中,在后端程序或主机可接受之后进行数据逐一释放。然而本地缓存的代价是预备和消耗大量的本地存储空间,并额外的增加CPU处理的负担,降低服务器的压力上限;分布式缓存则会引入巨大的网络延迟,对一些延迟敏感场合并不合适。
发明内容
本发明的目的在于克服上述现有技术存在的缺陷而提供一种基于FPGA的金融数据流控装置和流控方法。
本发明的目的可以通过以下技术方案来实现:
一种基于FPGA的金融数据流控装置,包括FPGA加速板卡,该FPGA加速板卡包括:
物理层接口模块,用于获取网络包数据,并在物理层解析所述网络包数据;
数据包识别模块,用于根据解析结果识别数据包类型;
路径判决模块,用于根据数据包类型选择传输路径,所述传输路径包括缓存路径和上传路径;
缓存模块,用于对属于缓存路径的数据包进行缓存;
DMA模块,用于将属于上传路径的数据包上传至服务器。
进一步地,所述物理层接口模块与以太网络连接。
进一步地,所述数据包识别模块设有多个,不同的配置地址和端口的数据包进入不同的数据包识别模块。
进一步地,所述识别数据包类型具体为:提取特征值数据段,对该数据段进行判定,判断对应数据包是否为待缓存数据。
进一步地,所述选择传输路径具体为:
若接收到的数据包括为待缓存数据且此时服务器是否处于繁忙状态,则将对应数据包设置于缓存路径,否则对应数据包设置于上传路径。
进一步地,该流控装置还包括:
定时模块,基于漏桶算法,定时对服务器状态进行检查,当服务器状态为空闲时,将缓存模块中属于缓存路径的数据包转为属于上传路径的数据包。
进一步地,该流控装置还包括:
缓存空间检查模块,用于实时检查缓存模块的剩余缓存空间,当剩余缓存空间小于设定值时,启动缓存模块的释放动作。
进一步地,
所述DMA模块还包括:
动态调节单元,用于读取FPGA加速板卡内阻塞状态和缓存数据大小,动态调节缓存模块的释放速率;
配置单元,用于通过PCIe接口获取针对FPGA加速板卡的动态配置信息。
本发明还提供一种采用所述的金融数据流控装置的基于FPGA的金融数据流控方法。
与现有技术相比,本发明具有如下有益效果:
1)本发明使用FPGA代替软件处理方案的部分功能,构造一个低延迟的硬件流控装置,系统架构简单明了,可有效代替软件流控方式,降低附加延迟,有效卸载服务器负荷;
2)本装置使用FPGA及其外围设备实现金融数据流控功能,卸载服务器处理负荷,大大降低额外网络延迟,可用于多种高并发、低延迟大数据场合;
3)在FPGA上从物理层解析网络数据包的地址、端口和类型特征,可实现多种来源不同速率的流控;
4)本发明通过提取特定数据段数据特征,如包头特征码,对数据包类型进行判断,从而判定是否对此包进行流控,不需流控的数据可以以接近线速发送到服务器上,提高效率;
5)本发明可以通过PCIe接口读取FPGA内阻塞状态和缓冲数据大小,根据实际服务器处理能力动态调节数据释放速率,动态调节性强;
6)本发明基于实际应用制定的改良漏桶算法,有效避免缓冲区数据满引起的数据丢失,同时在在缓冲空间将满之时,启动缓冲区的释放动作,将突发性的压力均摊到其他设备上;
7)可通过PCIe动态配置所需识别的地址、端口和类型值,配置特定数段特征值,功能灵活,可用于多种应用场合;
8)对于未经过外部缓存器的数据从光纤采集到服务器系统中延迟低至亚微秒。
附图说明
图1为本发明的结构示意图;
图2为本发明多流控并行示意图;
图3为本发明数据流控执行步骤示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
为了降低附加延迟,卸载服务器负荷本发明提供一种基于FPGA的金融数据流控装置,使用FPGA代替软件处理方案的部分功能,在物理层解析网络包数据,将特定的数据包存入DDR RAM中,并以适当的释放速度从DDR RAM中读取通过PCIe发送到服务器。
如图1所示,该流控装置包括FPGA加速板卡,该FPGA加速板卡包括物理层接口模块、数据包识别模块、路径判决模块、缓存模块(DDR RAM)和DMA模块,其中,物理层接口模块用于获取网络包数据,并在物理层解析所述网络包数据;数据包识别模块用于根据解析结果识别数据包类型,具体是提取特征值数据段(如包头特征码),对该数据段进行判定,判断对应数据包是否为待缓存数据;路径判决模块用于根据数据包类型选择传输路径,所述传输路径包括缓存路径和上传路径;缓存模块用于对属于缓存路径的数据包进行缓存;DMA模块用于将属于上传路径的数据包上传至服务器。物理层接口模块与以太网络连接。数据包识别模块设有多个,不同的配置地址和端口的数据包进入不同的数据包识别模块,如图2所示。
FPGA加速板卡为带有万兆光纤、FPGA、DDR3存储器和PCIe接口的板卡。
FPGA加速板卡采集万兆以太网络数据,经过低延迟MAC核得到物理层数据流,从IP、端口得到数据来源,通过判决器1分发到不同的数据包识别模块(即流控子模块)中,如图2所示,从数据流中提取有效的特征数据经过路径判决模块决定是将数据进行缓存还是直接经过DMA发送到服务器。基于FPGA的金融数据流控装置既满足了高并发状态下数据缓冲,也满足低流量数据的低延迟性。
在某些实施例中,该流控装置还包括定时模块,基于漏桶算法,定时对服务器状态进行检查,当服务器状态为空闲时,将缓存模块中属于缓存路径的数据包转为属于上传路径的数据包。
在某些实施例中,该流控装置还包括缓存空间检查模块,用于实时检查缓存模块的剩余缓存空间,当剩余缓存空间小于设定值时,启动缓存模块的释放动作,将突发性的压力均摊到其他设备上。
在某些实施例中,所述DMA模块还包括:动态调节单元,用于读取FPGA加速板卡内阻塞状态和缓存数据大小,动态调节缓存模块的释放速率;配置单元,用于通过PCIe接口获取针对FPGA加速板卡的动态配置信息。该装置可实现在线参数可配置,使系统应用更加灵活,方便系统调试和测试。配置信息包括FPGA内IP、端口、报文类型以及特征数据字段。
上述基于FPGA的金融数据流控装置应用时,在FPGA加速板卡烧录流控程序;将FPGA加速板卡插入接收主机PCIE插槽上,将网络数据源光纤插入光纤槽中;打开主机,运行PCIe接收驱动程序可接收到经过硬件流控后的数据,使用软件配置FPGA寄存器。
采用上述金融数据流控装置实现的流控方法如图3所示,包括以下步骤:
(1)读取网络数据,通过低延迟MAC核得到物理层数据;
(2)根据配置的地址、端口将接收的数据转入对应的数据包识别模块中;
(3)对数据进行报文解析和过滤,提取特征值数据段,对该报文进行判定;
(4)判定如果是待缓存数据并且服务器处于繁忙状态,则将转入DDR RAM中缓存,否则经过DMA直接发出;
(5)基于漏桶算法,使用定时器定时检查服务器状态,若服务器空闲时,缓存器中有数据积累,则释放数据通过DMA发出;
(6)实际上考虑缓冲空间存满可能后导致数据丢失,对漏桶算法做了改良,在缓冲空间将满之时,启动缓冲区的释放动作,将突发性的压力均摊到其他设备上。
为了使系统应用更加灵活,方便系统调试和测试,本发明实现了在线参数可配置,对FPGA内IP、端口、报文类型以及特征数据字段实时配置。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (9)
1.一种基于FPGA的金融数据流控装置,其特征在于,包括FPGA加速板卡,该FPGA加速板卡包括:
物理层接口模块,用于获取网络包数据,并在物理层解析所述网络包数据;
数据包识别模块,用于根据解析结果识别数据包类型;
路径判决模块,用于根据数据包类型选择传输路径,所述传输路径包括缓存路径和上传路径;
缓存模块,用于对属于缓存路径的数据包进行缓存;
DMA模块,用于将属于上传路径的数据包上传至服务器。
2.根据权利要求1所述的基于FPGA的金融数据流控装置,其特征在于,所述物理层接口模块与以太网络连接。
3.根据权利要求1所述的基于FPGA的金融数据流控装置,其特征在于,所述数据包识别模块设有多个,不同的配置地址和端口的数据包进入不同的数据包识别模块。
4.根据权利要求1所述的基于FPGA的金融数据流控装置,其特征在于,所述识别数据包类型具体为:提取特征值数据段,对该数据段进行判定,判断对应数据包是否为待缓存数据。
5.根据权利要求4所述的基于FPGA的金融数据流控装置,其特征在于,所述选择传输路径具体为:
若接收到的数据包括为待缓存数据且此时服务器是否处于繁忙状态,则将对应数据包设置于缓存路径,否则对应数据包设置于上传路径。
6.根据权利要求1所述的基于FPGA的金融数据流控装置,其特征在于,还包括:
定时模块,基于漏桶算法,定时对服务器状态进行检查,当服务器状态为空闲时,将缓存模块中属于缓存路径的数据包转为属于上传路径的数据包。
7.根据权利要求1所述的基于FPGA的金融数据流控装置,其特征在于,还包括:
缓存空间检查模块,用于实时检查缓存模块的剩余缓存空间,当剩余缓存空间小于设定值时,启动缓存模块的释放动作。
8.根据权利要求1所述的基于FPGA的金融数据流控装置,其特征在于,所述DMA模块还包括:
动态调节单元,用于读取FPGA加速板卡内阻塞状态和缓存数据大小,动态调节缓存模块的释放速率;
配置单元,用于通过PCIe接口获取针对FPGA加速板卡的动态配置信息。
9.一种采用如权利要求1-8任一所述的金融数据流控装置的基于FPGA的金融数据流控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910646171.4A CN110297785B (zh) | 2019-07-17 | 2019-07-17 | 一种基于fpga的金融数据流控装置和流控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910646171.4A CN110297785B (zh) | 2019-07-17 | 2019-07-17 | 一种基于fpga的金融数据流控装置和流控方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110297785A true CN110297785A (zh) | 2019-10-01 |
CN110297785B CN110297785B (zh) | 2023-04-11 |
Family
ID=68031477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910646171.4A Active CN110297785B (zh) | 2019-07-17 | 2019-07-17 | 一种基于fpga的金融数据流控装置和流控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110297785B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112134809A (zh) * | 2020-09-16 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
CN112637080A (zh) * | 2020-12-14 | 2021-04-09 | 中国科学院声学研究所 | 一种基于fpga的负载均衡处理系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701776A (zh) * | 2013-12-09 | 2014-04-02 | 无锡市同威科技有限公司 | 基于fpga的网络数据卡及数据传输方法 |
WO2016202092A1 (zh) * | 2015-06-19 | 2016-12-22 | 中兴通讯股份有限公司 | 基于多层队列流控反压的传送方法及装置 |
CN107943717A (zh) * | 2017-12-13 | 2018-04-20 | 杭州安恒信息技术有限公司 | 基于默认配置的缓存管理方法、装置、系统及计算机可读介质 |
-
2019
- 2019-07-17 CN CN201910646171.4A patent/CN110297785B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701776A (zh) * | 2013-12-09 | 2014-04-02 | 无锡市同威科技有限公司 | 基于fpga的网络数据卡及数据传输方法 |
WO2016202092A1 (zh) * | 2015-06-19 | 2016-12-22 | 中兴通讯股份有限公司 | 基于多层队列流控反压的传送方法及装置 |
CN107943717A (zh) * | 2017-12-13 | 2018-04-20 | 杭州安恒信息技术有限公司 | 基于默认配置的缓存管理方法、装置、系统及计算机可读介质 |
Non-Patent Citations (2)
Title |
---|
何波等: "分组交换网络流媒体数据转换方法及实现研究", 《无线互联科技》 * |
贺孟: "基于FPGA的多通道流量控制研究与实现", 《电子设计工程》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112134809A (zh) * | 2020-09-16 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
CN112134809B (zh) * | 2020-09-16 | 2024-04-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
CN112637080A (zh) * | 2020-12-14 | 2021-04-09 | 中国科学院声学研究所 | 一种基于fpga的负载均衡处理系统 |
CN112637080B (zh) * | 2020-12-14 | 2022-11-01 | 中国科学院声学研究所 | 一种基于fpga的负载均衡处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110297785B (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108809854B (zh) | 一种用于大流量网络处理的可重构芯片架构 | |
JP5863076B2 (ja) | パケットを再構築し再順序付けするための方法、装置、およびシステム | |
US9900090B1 (en) | Inter-packet interval prediction learning algorithm | |
US20140153575A1 (en) | Packet data processor in a communications processor architecture | |
US20220303217A1 (en) | Data Forwarding Method, Data Buffering Method, Apparatus, and Related Device | |
CN112084136B (zh) | 队列缓存管理方法、系统、存储介质、计算机设备及应用 | |
CN100405786C (zh) | 支持多队列的共享缓存动态门限早期丢弃装置 | |
CN109800558B (zh) | 密码服务板卡以及密码服务装置 | |
CN111949568A (zh) | 一种报文处理方法、装置及网络芯片 | |
CN106921665A (zh) | 一种报文处理方法及网络设备 | |
CN110297785A (zh) | 一种基于fpga的金融数据流控装置和流控方法 | |
CN100486224C (zh) | 一种基于fpga实现atm网络流量控制的装置及方法 | |
CN113590512A (zh) | 可直连外设设备的自启动dma装置及应用 | |
CN110417609A (zh) | 一种网络流量的统计方法、装置、电子设备及存储介质 | |
US9344384B2 (en) | Inter-packet interval prediction operating algorithm | |
CN101064697B (zh) | 一种实现异步传输模式网络服务质量控制的装置和方法 | |
US7079539B2 (en) | Method and apparatus for classification of packet data prior to storage in processor buffer memory | |
WO2023030195A1 (zh) | 缓存管理方法和装置、控制程序及控制器 | |
JP2020088517A (ja) | 通信装置、通信装置の制御方法およびプログラム | |
CN102420749A (zh) | 一种网卡发包功能的实现装置和方法 | |
CN110908798B (zh) | 多进程协同式网络流量解析方法及装置 | |
CN113645156A (zh) | 交换机sai层消息队列调节方法、系统、终端及存储介质 | |
CN104243395B (zh) | 一种高频次写操作方法、接口机及系统 | |
Zhao et al. | High-performance implementation of dynamically configurable load balancing engine on FPGA | |
US6728861B1 (en) | Queuing fibre channel receive frames |
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 |