CN108269188A - 一种基于fpga的交易所行情信息处理方法和系统 - Google Patents
一种基于fpga的交易所行情信息处理方法和系统 Download PDFInfo
- Publication number
- CN108269188A CN108269188A CN201611262320.XA CN201611262320A CN108269188A CN 108269188 A CN108269188 A CN 108269188A CN 201611262320 A CN201611262320 A CN 201611262320A CN 108269188 A CN108269188 A CN 108269188A
- Authority
- CN
- China
- Prior art keywords
- fpga
- data packet
- quotation information
- data
- exchange
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Technology Law (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于FPGA的交易所行情信息处理方法和系统,提升交易系统行情信息处理能力,提升系统延时性能,降低系统耦合度,满足行情计算实时性、低延时和高吞吐率的特点。其技术方案为:采用基于FPGA面向以太网络协议栈的多层次跨越式解析封装,减少基于主机存储转发网络协议栈的处理延时;采用状态机拆解数据包解决字段对齐和协议域匹配问题,以利于后续模块流水化处理;采用数据包分发方法将行情信息处理过程使用不同硬件模块并行化处理,加速行情信息生成;采用FPGA为主CPU为辅的软硬件设计划分方法,以及片上高速缓存的分配,缓解FPGA性能与资源的冲突;采用组播的方式推送行情,解决轮询带来的不公平接入问题以及广播时带来的用户身份认证问题。
Description
技术领域
本发明涉及一种交易所行情信息的处理方法和系统,尤其涉及有关金融期货领域,面向期货交易所实时、高效、高吞吐率的行情信息进行处理的方法和系统。
背景技术
行情信息是指交易所根据有关规定和市场需要发布的不同层次的即时交易信息,内容包括合约名称、合约月份、最新价、涨跌、成交量、持仓量、申买价、申卖价、申买量、申卖量、结算价、开盘价、收盘价、最高价、最低价前结算价等交易信息。
行情信息计算具有如下特点:第一,实时性要求高,在最短时间内计算出各合约不同层次的即时交易信息;第二,合约计算独立,每个交易合约单独计算各自合约的成交信息和报单信息,各合约行情信息的更新独立并行。第三,高吞吐率,在行情爆发式增长情况下,要能够处理全部合约的报单和交易信息,即时更新并发布行情信息。
传统以CPU为核心的软件计算技术难以兼顾低延时、高吞吐率的计算要求;为了促进期货市场的发展,更好更公平地服务于期货投资者,交易所迫切需要利用硬件加速针对行情信息的解决方案。
发明内容
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
本发明的目的在于解决上述问题,提供了一种基于FPGA的交易所行情信息处理方法和系统,提升了交易系统的期货行情信息的处理能力,提升了系统的延时性能,降低了交易系统的耦合程度,能够满足金融期货行情计算实时性、低延时和吞吐率要求高的特点。
本发明的技术方案为:本发明揭示了一种基于FPGA的交易所行情信息处理方法,包括:
基于FPGA双10G高速网卡面向以太网络的多层次协议解析,FPGA直接从链路层开始解析数据包中的内容,将传输层、网络层、应用层数据包的层层封装信息剥离,得到业务数据;
对数据包进行拆解和分发,利用数据包拆分状态机将一个含有多个域的数据包分解成多个只含有一个域的数据包,使得硬件逻辑能够直接处理最小业务数据,实现数据包类型的识别,将不同类型的数据包分流到不同的硬件逻辑处理单元,过滤掉不需要的数据包;
采用FPGA为主CPU为辅的软硬件设计划分,FPGA根据订单回报和成交回报重构订单簿,CPU启停FPGA和负责初始化FPGA;
将买方买价和卖方卖价组织成行情信息,基于FPGA面向以太网络的多层次协议进行封装和行情的组播推送。
根据本发明的基于FPGA的交易所行情信息处理方法的一实施例,在基于FPGA面向以太网络的多层次协议解析的步骤中,先进行UDP/IP网络协议解析,再进行期货应用协议XTP协议解析,以获取应用层数据。
根据本发明的基于FPGA的交易所行情信息处理方法的一实施例,不同类型的数据包包括初始化包、订单回报包、成交回报包和其他数据包,其中初始化包是初始化FPGA参数和配置信息,更新查找表;订单回报包是匹配合约,确定合约买卖方向,订单状态维持,解析订单交易数量,更新分价表;成交回报包是判断买卖方向,计算被动方原始价位,计算成交量,更新最优买卖价格。
根据本发明的基于FPGA的交易所行情信息处理方法的一实施例,采用FPGA为主CPU为辅的软硬件划分方法,在重构订单簿的步骤中,将最优档价位在FPGA高速缓存中有序更新,其余在FPGA高速缓存外有序更新,FPGA负责行情处理逻辑,CPU仅负责启停FPGA和FPGA的初始化。
根据本发明的基于FPGA的交易所行情信息处理方法的一实施例,在对行情信息进行封装的步骤中,先将行情信息封装成XTP格式数据包,再按照UDP/IP协议封装成以太网数据包,最后向外组播发送。
本发明还揭示了一种基于FPGA的交易所行情信息处理系统,包括主机CPU、多个接口和FPGA板卡,其中:
主机CPU通过PCIe3.0接口和FPGA板卡相连,用于控制和监控FPGA板卡的运行;
FPGA板卡通过自身双10G高速网口和外部网络进行通讯,其中FGPA板卡进一步包括:
协议栈处理模块,在接收数据时基于FPGA面向以太网络的多层次协议解析对接收到的输入数据流进行解析,将传输层、网络层、应用层数据包的封装信息剥离,得到业务数据,在发送数据时基于FPGA面向以太网络的多层次协议对行情信息进行封装后推送;
订单簿操作模块,其中包括:
数据包拆解和分发单元,利用数据包拆分状态机将一个含有多个域的数据包分解成多个只含有一个域的数据包,使得硬件逻辑能够直接处理最小业务数据,实现数据包类型的识别,将不同类型的数据包分流到不同的硬件逻辑处理单元,过滤掉不需要的数据包;
订单簿重构单元,采用FPGA为主CPU为辅的软硬件划分,FPGA根据订单回报和成交回报重构订单簿,负责处理行情业务逻辑,CPU启停FPGA并负责FPGA初始化;
行情生成推送模块,将买方买价和卖方卖价组织成行情信息,并经协议栈处理模块封装后向外组播推送。
根据本发明的基于FPGA的交易所行情信息处理系统的一实施例,协议栈处理模块在解析数据包时先进行UDP/IP协议解析,再进行期货应用协议XTP协议解析。
根据本发明的基于FPGA的交易所行情信息处理系统的一实施例,数据包拆解和分发单元中处理的不同类型的数据包包括初始化包、订单回报包、成交回报包和时钟包,其中初始化包是初始化FPGA参数和配置信息,更新查找表;订单回报包是匹配合约,确定订单类型,订单薄状态维持,解析订单交易数量,更新分价表;成交回报包是判断买卖方向,计算被动方原始价位,计算成交量,更新最优买卖价格。
根据本发明的基于FPGA的交易所行情信息处理系统的一实施例,订单簿重构采用FPGA为主CPU为辅的软硬件划分,将最优档价位在FPGA高速缓存中有序更新,其余在FPGA高速缓存外有序更新,实现FPGA和CPU协同工作。
根据本发明的基于FPGA的交易所行情信息处理系统的一实施例,协议栈处理模块在封装数据包时先将行情信息封装成期货应用协议XTP数据包,再按照UDP/IP协议封装成以太网数据包进行组播。
本发明对比现有技术有如下的有益效果:本发明将期货信息总线协议解析、订单簿重构、行情计算和更新等功能从高性能计算机迁移到FPGA上进行加速。本发明的主要技术特点是:(1)硬件协议解析,从传输层IP协议、网络层UDP协议和应用层期货信息总线协议中剥离出业务数据,利用状态机设计解决字段对齐和协议域匹配问题,将业务数据直接交给上层逻辑处理;(2)根据订单回报和成交回报重构订单簿,采用FPGA为主CPU为辅的划分方法,FPGA负责行情处理逻辑,实现业务数据从FPGA进经由FPGA出,不受与主机交互PCIe瓶颈限制;(3)行情实时更新和推送,根据时钟信号触发对外组播行情信息。相较于现有技术,本发明的优点在于:(1)通过专有FPGA硬件平台成功移植期货行情信息生成和推送方法,使用异构计算架构改善了交易系统的强耦合方式,增强了系统的健壮性;(2)在FPGA硬件板卡上实现业务数据由万兆网络进从万兆网络出,极大降低了网络数据包的处理延时,降低了行情生成的延时,提升了行情处理的吞吐能力;(3)采用UDP组播的方式对外发送五档行情结果,保证终端在接收行情时公平接入,同时解决广播带来的身份认证问题。
附图说明
图1示出了本发明的FPGA系统的平台架构图。
图2示出了FPGA行情服务器的总体流程图。
图3示出了FPGA系统内部数据流向图。
图4示出了状态机拆包核心逻辑示意图。
图5示出了数据包分发核心逻辑示意图。
图6示出了订单簿操作核心逻辑示意图。
具体实施方式
在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。
基于FPGA的交易所行情信息处理系统的实施例
图1示出了本发明的基于FPGA的交易所行情信息处理系统的实施例。请参见图1,本实施例的系统主要包括:主机CPU1、多个接口和FPGA板卡2。主机CPU2通过接口(PCIE3.0接口)对FPGA板卡2进行控制,负责板卡启动、监控和结束功能等操作。
FPGA板卡2直接通过网络接口3、4(板上双10G网口)从万兆网络接收XTP撮合结果数据流。
FPGA板卡2进一步由协议栈处理模块21、订单簿操作模块22和行情生成推送模块23所组成。协议栈处理模块21在FPGA板卡2接收到XTP撮合结果数据流后,基于FGAP面向以太网络的多层次协议对数据流进行解析,多层次协议包括IP协议、UDP协议和期货信息总线协议,将传输层、网络层、应用层数据包的封装信息剥离,得到业务数据。业务数据再进入FPGA内部处理逻辑,这种方式减少了传统方法中从主机网卡驱动程序到CPU中断处理,再到基于队列缓冲处理带来的耗时。
本发明将传输层IP协议、网络层UDP协议和应用层XTP协议,通过硬件跨层解析直接获取有效业务数据进行处理,同时在行情信息处理最后阶段将行情结果封装成有效传输数据通过FGPA高速网卡发送,减少了网络处理延时。
订单簿操作模块22主要由数据包拆解和分发单元221和订单簿重构单元222所组成。数据包拆解和分发单元221是利用数据包拆分状态机将一个含有多个域的数据包分解成多个只含有一个域的数据包,使得硬件逻辑能够直接处理业务数据,实现数据包类型的识别,将不同类型的数据包分流到不同的硬件逻辑处理单元,有利于数据流的流水化处理,并过滤掉不需要的数据包。
图4示出了数据包拆解和分发单元221拆包的工作原理,在经过跨层数据协议解析之后,将会获得一连串不同长度的数据包,每个数据包包含不同的TID域,使用传统方法处理会耗费大量资源。数据包拆分状态机将长度不同的数据包拆分为等长的TID,将资源开销降为线性复杂度。
进一步参考图5,是分发数据包的工作原理,由于对前述拆解对其后的数据包数量众多且关系复杂,需要对不同类型的数据包进行分类处理,以利于不同类型的数据包发往不同的硬件逻辑进行处理,不同的合约在硬件模块之间并行处理。具体为:①初始化包,初始化FPGA参数和配置信息,更新查找表,形成第一笔行情;②订单回报包,匹配合约,确定订单类型,订单状态稳持,解析订单交易数量,更新订单簿;③成交回报包,判断买卖方向,计算被动方原始价位,计算成交量,更新订单簿;④其他数据包,视为错误数据,直接丢弃。
订单簿重构单元222使用FPGA为主CPU为辅的软硬件划分设计,FPGA根据订单回报和成交回报重构订单簿,CPU负责启停FPGA和初始化FPGA。针对FPGA硬件高速处理但缓存有限的特点,订单簿重构单元222将最优档价位在FPGA高速缓存中有序更新,其余在FPGA高速缓存外有序更新,最大可能地发挥FPGA高速处理的优势。
图6示出了订单簿重构单元的工作原理。由于期货合约数量众多,单个合约存储订单薄档位过多会造成FPGA高速缓存资源紧张,难以容纳更多的合约。因此,综合平衡FPGA性能和资源,将合约将最优的10~20档价位在FPGA高速缓存BRAM中有序更新,其余在FPGA高速缓存外有序更新,以容纳更多的合约并保持FPGA高速处理的特性。
最后由行情生成推送模块23将买方买价(例如买方最高5档买价)和卖方卖价(例如卖方最低5档卖价)组织成行情信息(例如5档行情信息),并经协议栈处理模块21封装后向外推送。在协议栈处理模块21封装数据包时先将生成的行情信息封装成期货应用协议XTP数据包,再按照UDP/IP协议封装成以太网数据包后向外推送,利用UDP组播保证行情信息推送过程中的公平接入与身份认证机制。
图3示出了FPGA内部数据流的示意,结合前述的系统原理的描述,在图3中,首先,数据经由10G网络适配器,进入到FPGA内部。FPGA硬件协议解析模块负责解析进入的以太网数据。解析后的数据通过包拆解状态机,拆分成只含有一个域的数据。在包分发内核中,初始化信息将直接广播形成第一笔行情;报单回报和成交回报进入行情信息处理模块。行情信息处理模块负责将相关信息组织成订单簿,每隔500ms,由行情信息广播内核组织五档行情。五档行情经过硬件协议封装模块,形成以太网数据包。以太网数据包通过网络适配器,面向指定网段进行UDP组播,加入认证组播组的客户主机可以在同一时间接收到行情信息。
基于FPGA的交易所行情信息处理方法的实施例
图2示出了本发明的基于FPGA的交易所行情信息处理方法的实施例的流程,请参见图2,下面是对本实施例的方法的实施步骤的详细描述。
步骤S1:先对接收到的撮合结果流数据进行UDP协议解析。
步骤S2:再对经UDP协议解析后的数据进行期货应用协议XTP协议解析。
步骤S1和S2都属于基于以太网多层次协议解析,通过这两个步骤,FPGA在链路层解析数据包中的内容,将传输层、网络层、应用层数据包的封装信息剥离后,加速得到业务数据,业务数据后续再进入FPGA的内部处理逻辑。这种方式减少了传统方法中从主机网卡驱动程序到中断处理,再到基于队列缓冲处理带来的耗时。
步骤S3:数据包拆解,将含有多个域的应用层数据拆分成只含有一个域的数据,便于后续处理。
具体而言,图4示出了数据包拆解的工作原理,在经过跨层数据协议解析之后,将会获得一连串不同长度的数据包,每个数据包包含不同的TID域,使用传统方法处理会耗费大量资源。数据包拆分状态机将长度不同的数据包拆分为等长的TID,将资源开销降为线性复杂度。
步骤S4:数据包分发,将不同类型的数据包分发到不同的硬件模块中,这样有利于业务数据的流水化处理。
进一步参考图5,是分发数据包的工作原理,由于在前述拆解后产生的数据包数量众多且关系复杂,需要对不同类型的数据包进行分类,以利于不同类型的数据包发往不同的硬件逻辑进行处理,不同的合约在硬件模块之间并行处理。具体为:①初始化包,初始化FPGA参数和配置信息,更新查找表,形成第一笔行情;②订单回报包,匹配合约,确定合约买卖方向,订单状态稳持,解析订单交易数量,更新订单簿;③成交回报包,判断买卖方向,计算被动方原始价位,计算成交量,更新订单簿;④其他数据包,视为错误数据,直接丢弃。
步骤S5:根据订单回报和成交回报重构订单簿,管理CPU和FPGA的交互,解决两者交互中出现的性能和资源平衡问题。
针对FPGA硬件需要与CPU主程序软硬件协同工作的特点,采用FGPA为主CPU为辅的划分方法,FPGA负责订单簿重构逻辑,将最优档价位在FPGA高速缓存中有序更新,其余在FPGA高速缓存外有序更新,实现FPGA资源与性能平衡;CPU负责启停FPGA和初始化FPGA。
图6示出了订单簿重构操作工作原理。由于期货合约数量众多,单个合约存储订单薄档位过多会造成FPGA高速缓存资源紧张,无法容纳更多的合约。因此,需要将一部分订单簿放在高速缓存外存储以平衡FPGA性能和资源。
步骤S6:将买方买价和卖方卖价组织成行情信息,先经过XTP协议封装成XTP格式的数据包。
在本实施例中,买方买价例如是买方最高5档买价,卖方卖价例如是卖方最低5档卖价,行情信息例如是5档行情信息。
步骤S7:再经过UDP协议封装成以太网数据包后进行广播。
在本实施例中,利用UDP组播保证行情信息推送过程中的公平接入。
综上,本发明基于FPGA的交易所行情信息处理方法和系统,其实质是行情生成和发布,是市场端行情的源头,采用硬件万兆以太网络协议栈的多层次跨越式解析和封装,减少了传统方法基于主机存储转发网络协议栈处理的延时;采用状态机拆解数据包,有效解决了字段对齐和协议域匹配问题,以利于后续模块处理;采用数据包分发方法,将行情信息的处理过程使用不同硬件模块并行流水化处理,加速了行情信息的生成;采用FPGA为主CPU为辅的设计方法,有效缓解FPGA上的系统性能提升和资源有限的竞争关系;采用组播的方式推送行情,以解决传统方式下轮询带来的不公平接入问题和广播带来的认证问题。
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。
结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。
Claims (10)
1.一种基于FPGA的交易所行情信息处理方法,包括:
基于FPGA面向以太网络的多层次协议解析,通过FPGA网卡在链路层解析以太网数据包中的内容,将传输层、网络层、应用层数据包的封装信息层层剥离,获取业务数据;
对业务数据进行拆解和分发,利用数据包拆分状态机将一个含有多个域的数据包分解成多个只含有一个域的数据包,使得硬件逻辑能够直接处理最小业务数据,实现数据包类型的识别,将不同类型的数据包分流到不同的硬件逻辑处理单元,过滤掉不需要的数据包;
采用FPGA为主CPU为辅的功能划分,根据订单回报和成交回报重构订单簿,其中CPU只负责启停和初始化FPGA状态,FPGA负责订单簿构造逻辑;
将买方买价和卖方卖价组织成行情信息,基于以太网的多层次协议进行信息封装和行情的组播推送。
2.根据权利要求1所述的基于FPGA的交易所行情信息处理方法,其特征在于,在基于FPGA面向以太网络的多层次协议解析的步骤中,先进行UDP/IP网络协议解析,再进行期货应用协议XTP协议解析,以获取应用层数据。
3.根据权利要求1所述的基于FPGA的交易所行情信息处理方法,其特征在于,不同类型的数据包包括初始化包、订单回报包、成交回报包,其中初始化包是初始化FPGA参数和配置信息,更新查找表;订单回报包是匹配合约,确定合约买卖方向,订单状态维持,解析订单交易数量,更新分价表;成交回报包是判断买卖方向,计算被动方原始价位,计算成交量,更新最优买卖价格。
4.根据权利要求1所述的基于FPGA的交易所行情信息处理方法,其特征在于,在重构订单簿的步骤中,采用FPGA为主CPU为辅的软硬件划分方法:将最优档价位在FPGA高速缓存中有序更新,其余在FPGA高速缓存外有序更新;CPU只提供启停信号和初始化信息,FPGA负责业务逻辑,业务数据流从FPGA进入再经由FPGA流出,实现行情信息高速处理并转发。
5.根据权利要求1所述的基于FPGA的交易所行情信息处理方法,其特征在于,在对行情信息进行封装的步骤中,先将行情信息封装成XTP格式数据包,再按照UDP协议封装成以太网数据包,再向外组播发送。
6.一种基于FPGA的交易所行情信息处理系统,其特征在于,包括主机CPU、多个接口和FPGA板卡,其中:
主机CPU通过接口和FPGA板卡相连,用于控制和监控FPGA板卡的运行;
FPGA板卡通过自身板上的网口和外部进行通讯,其中FGPA板卡进一步包括:
协议栈处理模块,在接收数据时基于FPGA面向以太网络的多层次协议输入数据流进行解析,将传输层、网络层、应用层数据包的封装信息剥离,得到业务数据,在发送数据时基于FGPA面向以太网络的多层次协议对行情信息进行封装后推送;
订单簿操作模块,其中包括:
数据包拆解和分发单元,利用数据包拆分状态机将一个含有多个域的数据包分解成多个只含有一个域的数据包,使得硬件逻辑能够直接处理最小业务数据,识别数据包类型,将不同类型的数据包分流到不同的硬件逻辑处理单元,过滤掉不需要的数据包;
订单簿重构单元,划分CPU和FPGA分工,在FPGA上根据订单回报和成交回报重构订单簿,CPU启停FPGA并负责初始化;
行情生成推送模块,将买方买价和卖方卖价组织成行情信息,并经协议栈处理模块封装后向外推送给多播组。
7.根据权利要求6所述的基于FPGA的交易所行情信息处理系统,其特征在于,协议栈处理模块在解析数据包时先进行UDP/IP协议解析,再进行期货应用协议XTP协议解析。
8.根据权利要求6所述的基于FPGA的交易所行情信息处理系统,其特征在于,数据包拆解和分发单元处理的不同类型的数据包包括初始化包、订单回报包、成交回报包,其中初始化包是初始化FPGA参数和配置信息,更新查找表;订单回报包是匹配合约,确定订单类型,订单状态维持,解析订单交易数量,更新分价表;成交回报包是根据三价取中原则判断买卖方向,计算被动方原始价位,计算成交量,更新最优买卖价格。
9.根据权利要求6所述的基于FPGA的交易所行情信息处理系统,其特征在于,订单簿重构单元采用FPGA为主CPU为辅的软硬件划分,将最优档价位在FPGA高速缓存中有序更新,其余在FPGA高速缓存外有序更新,业务逻辑全部交给FPGA处理,CPU仅负责启停和控制FPGA板卡初始化,实现业务数据从FPGA进经由FPGA出,高速处理和转发。
10.根据权利要求6所述的基于FPGA的交易所行情信息处理系统,其特征在于,协议栈处理模块在封装数据包时先将行情信息封装成期货应用协议XTP数据包,再按照UDP/IP协议封装成以太网数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611262320.XA CN108269188A (zh) | 2016-12-30 | 2016-12-30 | 一种基于fpga的交易所行情信息处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611262320.XA CN108269188A (zh) | 2016-12-30 | 2016-12-30 | 一种基于fpga的交易所行情信息处理方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108269188A true CN108269188A (zh) | 2018-07-10 |
Family
ID=62755114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611262320.XA Pending CN108269188A (zh) | 2016-12-30 | 2016-12-30 | 一种基于fpga的交易所行情信息处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108269188A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108230149A (zh) * | 2017-12-13 | 2018-06-29 | 武汉旷腾信息技术有限公司 | 基于soc fpga的加速金融交易系统及方法 |
CN110415027A (zh) * | 2019-07-16 | 2019-11-05 | 上海金融期货信息技术有限公司 | 一种大数据行情平台系统 |
CN110460540A (zh) * | 2019-06-28 | 2019-11-15 | 杨涛 | 一种低延迟高频交易系统及方法 |
CN110517136A (zh) * | 2019-07-30 | 2019-11-29 | 上海兮通信息科技有限公司 | 一种证券行情加速处理方法及系统 |
CN111563060A (zh) * | 2020-07-13 | 2020-08-21 | 南京艾科朗克信息科技有限公司 | 一种基于fpga报单管理的共享缓存方法 |
CN111815445A (zh) * | 2020-06-29 | 2020-10-23 | 浪潮电子信息产业股份有限公司 | 一种行情数据的重构方法及相关装置 |
CN111861742A (zh) * | 2020-06-24 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | 一种fpga平台及一种数据处理系统 |
CN112200683A (zh) * | 2020-10-20 | 2021-01-08 | 南京艾科朗克信息科技有限公司 | 一种金融市场会员端全息行情获取方法 |
CN112202769A (zh) * | 2020-09-29 | 2021-01-08 | 南京艾科朗克信息科技有限公司 | 一种实现证券柜台tcp快速报单的协议处理系统和方法 |
CN112291041A (zh) * | 2020-10-22 | 2021-01-29 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于fpga的数据解码装置、方法 |
CN112333119A (zh) * | 2020-11-27 | 2021-02-05 | 深圳华云信息系统有限公司 | 一种数据传输系统及方法 |
CN112541822A (zh) * | 2020-12-04 | 2021-03-23 | 深圳市瑞尚信息科技有限公司 | 一种基于fpga加速卡的金融风控系统 |
CN113138795A (zh) * | 2021-05-11 | 2021-07-20 | 四川创智联恒科技有限公司 | 一种基于sdr的可配置协议通信系统 |
CN113989011A (zh) * | 2021-12-28 | 2022-01-28 | 深圳华锐金融技术股份有限公司 | 行情数据处理方法、装置、计算机设备及可读存储介质 |
CN114143119A (zh) * | 2021-11-25 | 2022-03-04 | 上海金融期货信息技术有限公司 | 一种基于fpga的行情低延时接口装置 |
CN115344527A (zh) * | 2022-10-18 | 2022-11-15 | 上海特高信息技术有限公司 | 一种基于fpga的高速行情数据缓存方法 |
CN117135231A (zh) * | 2023-10-26 | 2023-11-28 | 上海特高信息技术有限公司 | 一种基于fpga低延时金融大数据流的解压方法 |
CN117827740A (zh) * | 2024-03-05 | 2024-04-05 | 上海特高信息技术有限公司 | 一种基于fpga的模块化行情数据回放方法及回放系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103262114A (zh) * | 2011-01-25 | 2013-08-21 | 株式会社东芝 | 证券买卖模拟系统 |
CN103425746A (zh) * | 2013-07-18 | 2013-12-04 | 大连理工大学 | 基于fpga的实时金融指数行情并行计算方法 |
CN105791252A (zh) * | 2014-12-26 | 2016-07-20 | 航天信息股份有限公司 | 基于fpga的udp协议ip核 |
-
2016
- 2016-12-30 CN CN201611262320.XA patent/CN108269188A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103262114A (zh) * | 2011-01-25 | 2013-08-21 | 株式会社东芝 | 证券买卖模拟系统 |
CN103425746A (zh) * | 2013-07-18 | 2013-12-04 | 大连理工大学 | 基于fpga的实时金融指数行情并行计算方法 |
CN105791252A (zh) * | 2014-12-26 | 2016-07-20 | 航天信息股份有限公司 | 基于fpga的udp协议ip核 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108230149A (zh) * | 2017-12-13 | 2018-06-29 | 武汉旷腾信息技术有限公司 | 基于soc fpga的加速金融交易系统及方法 |
CN110460540B (zh) * | 2019-06-28 | 2023-03-14 | 杨涛 | 一种低延迟高频交易系统及方法 |
CN110460540A (zh) * | 2019-06-28 | 2019-11-15 | 杨涛 | 一种低延迟高频交易系统及方法 |
CN110415027A (zh) * | 2019-07-16 | 2019-11-05 | 上海金融期货信息技术有限公司 | 一种大数据行情平台系统 |
CN110415027B (zh) * | 2019-07-16 | 2023-05-26 | 上海金融期货信息技术有限公司 | 一种大数据行情平台系统 |
CN110517136A (zh) * | 2019-07-30 | 2019-11-29 | 上海兮通信息科技有限公司 | 一种证券行情加速处理方法及系统 |
CN111861742A (zh) * | 2020-06-24 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | 一种fpga平台及一种数据处理系统 |
CN111815445A (zh) * | 2020-06-29 | 2020-10-23 | 浪潮电子信息产业股份有限公司 | 一种行情数据的重构方法及相关装置 |
CN111563060A (zh) * | 2020-07-13 | 2020-08-21 | 南京艾科朗克信息科技有限公司 | 一种基于fpga报单管理的共享缓存方法 |
CN112202769A (zh) * | 2020-09-29 | 2021-01-08 | 南京艾科朗克信息科技有限公司 | 一种实现证券柜台tcp快速报单的协议处理系统和方法 |
CN112200683A (zh) * | 2020-10-20 | 2021-01-08 | 南京艾科朗克信息科技有限公司 | 一种金融市场会员端全息行情获取方法 |
CN112291041A (zh) * | 2020-10-22 | 2021-01-29 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于fpga的数据解码装置、方法 |
CN112333119A (zh) * | 2020-11-27 | 2021-02-05 | 深圳华云信息系统有限公司 | 一种数据传输系统及方法 |
CN112541822A (zh) * | 2020-12-04 | 2021-03-23 | 深圳市瑞尚信息科技有限公司 | 一种基于fpga加速卡的金融风控系统 |
CN113138795A (zh) * | 2021-05-11 | 2021-07-20 | 四川创智联恒科技有限公司 | 一种基于sdr的可配置协议通信系统 |
CN113138795B (zh) * | 2021-05-11 | 2023-04-07 | 四川创智联恒科技有限公司 | 一种基于sdr的可配置协议通信系统 |
CN114143119A (zh) * | 2021-11-25 | 2022-03-04 | 上海金融期货信息技术有限公司 | 一种基于fpga的行情低延时接口装置 |
CN114143119B (zh) * | 2021-11-25 | 2024-05-07 | 上海金融期货信息技术有限公司 | 一种基于fpga的行情低延时接口装置 |
CN113989011A (zh) * | 2021-12-28 | 2022-01-28 | 深圳华锐金融技术股份有限公司 | 行情数据处理方法、装置、计算机设备及可读存储介质 |
CN115344527A (zh) * | 2022-10-18 | 2022-11-15 | 上海特高信息技术有限公司 | 一种基于fpga的高速行情数据缓存方法 |
CN115344527B (zh) * | 2022-10-18 | 2023-01-13 | 上海特高信息技术有限公司 | 一种基于fpga的高速行情数据缓存方法 |
CN117135231A (zh) * | 2023-10-26 | 2023-11-28 | 上海特高信息技术有限公司 | 一种基于fpga低延时金融大数据流的解压方法 |
CN117135231B (zh) * | 2023-10-26 | 2023-12-29 | 上海特高信息技术有限公司 | 一种基于fpga低延时金融大数据流的解压方法 |
CN117827740A (zh) * | 2024-03-05 | 2024-04-05 | 上海特高信息技术有限公司 | 一种基于fpga的模块化行情数据回放方法及回放系统 |
CN117827740B (zh) * | 2024-03-05 | 2024-05-14 | 上海特高信息技术有限公司 | 一种基于fpga的模块化行情数据回放方法及回放系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108269188A (zh) | 一种基于fpga的交易所行情信息处理方法和系统 | |
US20210217088A1 (en) | Offload Processing of Data Packets Containing Financial Market Data | |
US10872078B2 (en) | Intelligent feed switch | |
US20220414778A1 (en) | Intelligent Packet Switch | |
US11295383B2 (en) | Methods, apparatus, and systems for processing data transactions | |
Lockwood et al. | A low-latency library in FPGA hardware for high-frequency trading (HFT) | |
CN108809854A (zh) | 一种用于大流量网络处理的可重构芯片架构 | |
US9047243B2 (en) | Method and apparatus for low latency data distribution | |
Boutros et al. | Build fast, trade fast: FPGA-based high-frequency trading using high-level synthesis | |
CN105023185B (zh) | 一种基于fpga的期货交易盘口数据实时解析系统 | |
CN101848203A (zh) | 在网络协议处理的卸载中支持连接建立的设备和方法 | |
CN108681569A (zh) | 一种数据自动分析系统及其方法 | |
CN110517136A (zh) | 一种证券行情加速处理方法及系统 | |
CN101840328B (zh) | 一种数据处理方法及系统以及相关设备 | |
US9535702B2 (en) | Asset management device and method in a hardware platform | |
CN105207794B (zh) | 统计计数设备及其实现方法、具有统计计数设备的系统 | |
US20220156831A1 (en) | Electronic match engine with external generation of market data using a minimum data set | |
CN105989538A (zh) | 一种金融产品自动交易系统及自动交易方法 | |
EP2832045A1 (en) | Offload processing of data packets | |
CN108198071A (zh) | 一种期货柜台风险控制方法及系统 | |
CN109151025A (zh) | 基于url的负载均衡方法、装置、计算机存储介质及设备 | |
CN103577469B (zh) | 数据库连接复用方法和装置 | |
AU2011200733B2 (en) | A market access system and method | |
CN108289117A (zh) | 一种基于fpga的多方接入系统及处理方法 | |
CN109375998A (zh) | 一种高并发请求环境中的处理方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180710 |
|
RJ01 | Rejection of invention patent application after publication |