FPGA(现场可编程门阵列)是基于PAL、GAL等可编程器件的发展产物,作为半定制电路在专用集成电路(ASIC)领域应运而生。它不仅解决了定制电路的不足,还克服了原有可编程器件门电路数有限的缺点。
由于FPGA具有可编程特性,可用于实现任意的逻辑功能,并且每个时钟周期可以并行处理多个指令。尽管FPGA支持的时钟频率低于CPU,但单个时钟周期能完成的运算量远大于一个CPU指令,甚至整个算法可能在几个时钟周期内完成。因此,FPGA所需的时钟周期数可以远低于CPU完成整个算法所需的时钟周期数。
在证券交易领域,行情数据变化迅速,利润机会转瞬即逝。拥有更低的时延和更快的响应意味着能准确把握买卖机会和点位。现场可编程门阵列(FPGA)技术与传统软件系统相比,能实现可预知的超低时延,在模型计算、高频交易等领域取得显著成就。
本文主要介绍了如何基于FPGA技术实现沪深行情硬件加速,包括系统设计及实现、系统的实测效果以及系统预留的强大扩展性,旨在促进国内证券行业对FPGA技术的研究和应用,为开发者提供相关技术参考。
一、概述
1.1 低交易时延的挑战
在证券交易领域,盈利机会转瞬即逝,“更低交易延迟”是金融交易追求的核心目标之一。目前国内金融行业的交易系统大多基于传统通用CPU架构,交易提速存在瓶颈,无法满足超低时延的交易需求。随着金融科技的发展,各种算法交易、量化交易兴起,金融行业对更低交易延迟的追求不断升级,成为核心挑战之一。近年来,程序化交易在资本市场的全面应用,传统的软件技术或以软件为核心的加速技术难以满足微秒级的实时处理和实时响应要求。业内正在寻求低时延交易系统的解决方案,基于GPU、FPGA硬件并行加速的技术逐渐进入证券交易领域,成为金融科技领域新的趋势之一。
降低交易延迟简单来说就是如何实现金融数据加速。FPGA具有硬件可编程、低功耗和低时延的特性。通过RTL(寄存器传输级)级的逻辑编程,可定制各类通讯协议(如TCP/IP协议栈卸载)、消息编解码(如上交所的FAST协议解码)以及数据的并行和流水的并行,实现极低的系统时延和极高的系统容量。
1.2 FPGA技术在沪深行情系统的应用
近年来,随着国内金融市场的快速发展,信息系统往高性能、高可靠、高容量和低时延的方向发展。众多金融技术公司相继推出基于FPGA的产品,尤其在期货行业,使用FPGA开展各类应用的开发,如行情、交易和风控等领域,已经取得了许多成果,为FPGA在证券行业的应用开发提供了参考。
二、FPGA技术在沪深行情加速的设计与实现
2.1 基于FPGA的异构架构设计
根据业务及扩展需求,对基础硬件选型指导如下: (1)10GE万兆以太网接口,行情源、TCP行情推送、组播行情推送采用独立的接口。 (2)可定制化的TOE IP,支持TCP、UDP、IGMP、ICMP、ARP、RARP全卸载,且TCP连接数支持至少32个。 (3)PCIe Gen3X8,且兼容Gen1/2/3。 (4)至少两个Bank DDR,内存容量不少于8GB。 (5)至少两个Bank QDR。
传统TCP/IP协议是基于CPU软件实现的,而使用CPU进行TCP/IP协议栈处理存在能力不强、效率不高的缺点,占用大量的CPU资源,浪费存储空间并产生大量功耗,使其性价比很低,影响性能。所选板卡使用万兆以太网口作为信息传输接口,支持TCP/IP协议栈的TOE IP。通过FPGA实现TCP/IP协议栈以及以太网MAC控制器,将原本属于主CPU的这部分工作由额外的硬件电路完成,减轻CPU负担,加速网络处理能力,提升系统性能。系统的可扩展性是设计的重点之一,分为五个逻辑层次,包括FPGA基础通信层、FPGA行情业务层、行情管理层、Host-FPGA接口层和Host管理服务层,层次之间设计开发边界明确,上层依赖下层模块,调用下层或同层模块的接口,上下层之间功能充分解耦。
2.2 Level-2行情解码引擎
上海证券交易所信息网络公司(上交所)于2016年建设新一代低时延行情发布系统LDDS,支持多种信源,具有低时延、大流量、易扩展、高可用等特点,系统在较优的网络环境中平均时延小于1ms。该Level-2行情系统是基于FAST技术标准、面向专业投资者的新一代实时行情发布系统。与传统的基本行情相比,Level-2行情更加实时,包含更多的价位深度、逐笔成交、订单等内容和其他有价值的信息。鉴于上交所FAST协议的复杂性,同时根据RTL的特性,设计出一套并行、全流水式的高效STEP-FAST解码引擎方案,不同行情类型解码并行处理,根据实际应用增加引擎数量,达到更高的数据解码吞吐率,同时做到FAST的XML模板可配,以应对交易所的变更。