请选择 进入手机版 | 继续访问电脑版

集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1237|回复: 5

实战丨基于FPGA的证券行情加速实践

[复制链接]
月影星痕 发表于 2020-8-21 17:29:17 | 显示全部楼层 |阅读模式
招商证券自2017年启动FPGA证券交易加速项目,在2018年底成功将金融业务规则固化为FPGA芯片电路逻辑,充分利用FPGA技术高吞吐,低时延等技术特点,推出硬件行情系统,实现纳秒级处理时延,得到客户的高度认可,牵起内业对FPGA探讨的热潮。本文主要介绍如何基于FPGA技术实现沪深行情加速,涵盖系统架构设计等内容,希望有助于国内证券行业对FPGA技术的研究和应用,为开发者提供相关技术参考。
超低交易时延的挑战
传统证券交易系统基于x86架构,通过CPU实现各种网络数据传输、行情处理、策略运行等功能。由于传统基础架构局限,其性能提升存在技术瓶颈,无法满足超低时延的交易需求。随着国内外各种算法交易、量化交易兴起,金融行业追求更低交易延迟时间的“竞赛”不断升级,如何实现亚微秒级交易系统成为各大金融机构的核心挑战之一。尤其是近年来程序化交易在资本市场的全面应用,业内不断寻求更先进的超低时延交易系统的解决方案,基于FPGA开发的硬件证券行情和交易系统逐渐进入证券交易领域,成为金融科技领域的顶尖科技之一。
FPGA在金融领域的应用
降低交易延迟简单来说就是如何实现金融数据加速。FPGA具有硬件可编程、低功耗、低时延的特性。基于RTL(Register Transfer Level:寄存器传输级)级的逻辑编程,可定制化各类通讯协议(如TCP/IP协议栈卸载)、各种消息编解码(如上交所的FAST协议解码)及系统各种颗粒度的操作,实现数据的并行处理和流水操作,达到极低的系统时延和极高的系统容量。
近年来,随着国内金融市场的快速发展和规模不断扩大,业内信息系统往高性能、高可靠、高容量、低时延的方向发展。国内外金融技术公司,在期货行业相继推出基于FPGA的产品,使用FPGA技术开展各类应用的开发,在期货行情、交易和风控等领域成效显著,为FPGA在证券行业的应用开发提供参考。
行业现有证券行情系统,基于x86体系使用通用软件指令开发,存在较大性能瓶颈,处理时延大多超过10毫秒,且行情数据处理能力有限。当出现牛市行情压力,会产生大量积压,实时性无法保证。2017年初,招商证券FPGA团队正式启动沪深Level2行情加速项目,反复调研和验证基于FPGA技术实现沪深Level2解码的高性能解决方案,同时使用Matlab构建沪深行情解码同步模型,为RTL代码的编写和优化提供参考,最终实现低至纳秒级的沪市STEP-FAST解码引擎,系统处理时延低至0.5微秒。
设计FPGA-CPU异构模式
传统TCP /IP 协议是基于CPU( Central Processing Unit,中央处理器) 软件实现的,而使用CPU进行TCP /IP 协议栈处理,存在能力不强、效率不高等缺点,占用大量的CPU资源,浪费存储空间及产生大量功耗,性能不佳,万兆以太网的带宽资源得不到充分的利用,而FPGA板卡使用万兆以太网口作为其信息传输接口,支持TCP /IP协议栈的TOE IP是关键之一。通过FPGA来实现TCP /IP 协议栈以及以太网MAC控制器,将原本属于主CPU的这部分工作卸载到额外的硬件电路完成,减轻CPU的负担,减少I/O交互环节,加速网络处理的能力,能极大提升系统的性能。
系统的可扩展性是系统设计的重点之一。由下往上分为五个逻辑层次,包括FPGA基础通信层、FPGA行情业务层、行情管理层、Host-FPGA接口层和Host管理服务层,层次之间设计开发边界明确,上层依赖下层模块,调用下层或同层模块的接口,上下层之间功能充分解耦,如图1所示。

图1 系统架构图
其中FPGA基础通信实现独立的通信功能,提供清晰的功能边界和明确的开发接口。在Host侧与FPGA侧可通过C++方式的API进行直接调用。
实现行情解码引擎
FPGA硬件行情系统提供上交所LDDS系统level-2行情解码和深交所Binary行情解码推送功能。下面以上交所的Level-2行情为例,阐述行情解码引擎的实现。
上交所的LDDS以国际标准的金融信息交换协议(FIX/FAST)为基础,结合中国标准的证券交易数据交换协议(STEP)的特点确定数据传输协议,根据我国证券市场数据的特点以及Level-2行情内容的特性设计在证券市场数据领域具有独创性的算法。FAST协议在保持FIX协议灵活性的基础上,将市场数据大幅度压缩,大大提高处理速度。FAST系统大幅减少Level2行情所需的传输带宽(不到原来的25%)和发布系统的负荷(减少到原来的10%)。
鉴于上交所FAST协议的复杂性,同时根据RTL的特性,FPGA硬件行情系统设计出一套并行、全流水式的高效STEP-FAST解码引擎方案,不同行情类型解码并行处理,根据实际应用增加例化引擎数量,达到更高的数据解码吞吐率。同时做到FAST的XML模板可配,以应对交易所的变更。
支持可靠组播方式
业内行情系统普遍采用TCP的方式,FPGA硬件行情系统除提供TCP接入的方式之外还提供可靠UDP组播的方式的获得实时行情,可以通过客户端API选择采用TCP或者组播接收行情。针对组播丢包的现象,设计了一套可靠组播传输方案以保证行情数据丢失后请求重传。
采用UDP组播的优点:采用组播的方式接入无接入客户数量的限制;所有客户端将在同一时刻收到实时行情,多个客户端无时间差;行情延时更低、抖动更小;降低网络带宽的占用。
提供基于FPGA的全息行情
当前业内全息行情基于深市最新Level2行情计算所得的盘口功能,它能突破原先的十档行情的限制,深度揭示个股从跌停到涨停所有价位的委托量和委托明细,非常适合于观察远距离的挂单和垫单的情况,了解个股市场状态。如果使用程序自动化分析跟踪个股千档行情的变动,千档行情将成为程序化交易的利器。
自研行情数据压缩技术
本系统分别在上证通机房和深证通机房各部署一套节点,由于沪深交易所之间不共享行情数据,故需要将两个交易所的行情数据进行相互同步,以实现在任意节点均可覆盖沪深实时行情。
沪深行情同步服务是指沪深两节点分别接收FPGA硬件行情系统的实时数据,然后将数据进行压缩后通过沪深专线传输,实现沪深实时行情全覆盖。其中行情压缩算法为招商证券自研的算法,是根据行情数据的特性实现高压缩率,大大降低沪深之间的数据传输带宽。
行情压缩算法是在结合位图、LDPE压缩算法、zigzag数值压缩等方法,在保证沪深行情快照数据推送实时性的基础之上,最大化提高小报文行情快照数据的压缩比率。
基于FPGA的证券行情加速效果
1.超过1000倍的提速效果。通过SignalTap工具分析FPGA内部处理时延小于0.5微秒,对于动辄N个毫秒的软件系统而言,时延完全忽略不计。
系统经过不断持续优化,通过各项严苛的性能压力测试将系统性能优化到极致,全链路时延少于10微秒,相比现有系统,减少约13毫秒,性能提升超过1000倍。尤其是面对复杂的沪市FAST编码,更体现了FPGA解码的强大处理能力。如图2所示。

图2 FPGA提速效果(毫秒)
2.实现超高吞吐率。FPGA芯片级设计可实现超高吞吐率。实测百倍于当前市场全天的行情流量峰值,每秒可处理300万数据包,轻松应对证券市场瞬时峰值的流量冲击。在达到FPGA系统容量上限之前,整个系统不会出现反压,系统时延相当平稳,这也是FPGA系统的优点之一,因此FPGA硬件行情系统不存在传统CPU的系统调度问题,在上限容量之内的任意流量,其时延固定不变。
zhangyukun 发表于 2020-8-22 09:20:57 | 显示全部楼层
实战丨基于FPGA的证券行情加速实践
雷磊 发表于 2020-8-22 17:02:50 | 显示全部楼层
基于FPGA的证券行情加速实践
dameihuaxia 发表于 2020-9-16 14:23:59 | 显示全部楼层
实战丨基于FPGA的证券行情加速实践
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-4-19 09:18 , Processed in 0.068756 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表