《基于FPGA的智能高速交易平台的实现.doc》由会员分享,可在线阅读,更多相关《基于FPGA的智能高速交易平台的实现.doc(4页珍藏版)》请在三一文库上搜索。
1、基于FPGA的智能高速交易平台的实现自电子交易问世以来,对速度的追逐无止境,时刻要求搭建速度最快、最智能的交易平台。智能和高速就意味着金钱。能够率先发现交易机会并在其上完成交易的交易平台将占上风。响应时间已经从秒一路降低到毫秒、微秒。要实现微秒和亚微秒响应时间,凭借传统的软件架构或简单的硬件架构几无可能,正是这一事实促使在超低时延系统中引入 FPGA 技术。但是,FPGA 编程要求使用 HDL机器语言开发交易策略并将现有交易策略(主要用 C 语言和 C+ 语言编写)移植到 HDL 机器语言中。这与使用标准的 C 和 C+ 编程在技能上有根本的不同,同时需要增加人员、工具和时间。有现成的 C-t
2、o-HDL 编辑器工具可用,可将现有的 C 代码移植到硬件描述语言 (HDL),比用 HDL 从头开发代码速度快。但是,负责移植代码工作的人员必须熟悉硬件编程,或者必须遵循具体指南,才能生成可接受的代码。即便这样,生成的代码仍然可能会比用 HDL 直接开发的代码晦涩低效。为了降低在 FPGA 以太网卡上直接开发 HDL 代码所带来的风险,同时节省开发时间,AdvancedIO 公司率先尝试将 FPGA 框架用于 10G 以太网 (10GE) 通信。我们的expressXG 开发框架工具套件为保证金融业务的快速部署提供了必要的基础设施, 可无缝移植到最新一代FPGA 卡上。该工具套件可集成并优化
3、应用开发所需的所有必要的核心功能,能够最大程度地降低第三方许可成本,让开发周期缩短数月。开发团队可随后将 C-to-HDL 编译器工具集成在框架中,从而为开发应用的不同部分提供多重选择。实际上两种方法都在项目中有一席之地。在优先考虑效率和代码紧凑度,或组件在多个项目中使用的情况下,最好使用 expressXG 框架直接开发 HDL 组件。如果着重考虑产品上市时间和定制化,或者要求以 C 语言编写代码的情况下,最好使用 C-to-HDL编译器。这种方法可以克服众多金融从业人员对 FPGA 的畏惧,同时不会影响性能。算法交易概览说到证券、衍生品、期货及其它金融工具的交易,总会让人联想起塞满几百人,
4、叫嚷声此起彼伏的交易大厅。人们或漫无目的地转悠,或紧盯计算机屏幕。现实是,当今美国有 70% 以上的交易是由运行在计算机服务器上的算法完成的。在金融业,速度就是一切。哪家公司能够率先发现机遇并把握机遇,就能够赢得丰厚的利润。对某些交易策略而言,率先进入队列就能赢得交易。这也就毫不奇怪众多公司竭尽所能地确保自身相对竞争对手的优势,哪怕是仅仅 1 微秒。在算法交易系统 (ATS) 中,由运行在高性能计算机上的算法处理交易,制定决策。这种系统运用多种技术来最大程度的降低时延,赢得竞争优势。具体包括与各个交易所共址、使用最短路径网络,以及使用 10G E 来降低时延这一日益风靡的做法。为在竞争中赢得优
5、势,主要的交易公司同时采用上述所有技术。证券市场上的交易仅限于经纪人-交易员和属于交易所成员的市场庄家机构之间。部分这类机构为其他交易公司提供服务,使他们能够通过他们的帐户使用电子式专属线路下单(DMA)给交易所下订单。提供电子式专属线路下单的机构必须建立交易前风险控制制度,以限制财务风险,满足合规性要求。因此,他们必须采用配备有软件的服务器,检查所有经手他们的账户的交易。这种检查必须以线速进行,因为任何延迟都会让他们及其客户处于不利境地。现有的基于软件的交易前风险管理平台需要数十微秒才能完成金融交易上要求的策略检查。很明显这对当今的交易员来说速度不能满足要求。图 1 显示了简化交易系统的各个
6、组件。实际上,ATS 可以更多的组件,比如用于执行更复杂算法的服务器或计算云,这里我们不作讨论。交易系统可以直接连接到交易所,也可以通过一个或多个交易所接口服务器、电子通信网络或其它方式连接到交易所。另外,对稳健可靠的交易基础设施而言,防火墙和入侵检测系统也是关键的组件。基于软件的解决方案的局限性ATS 必须能够接收多种市场馈入,解码使用的不同协议(如 FIXFAST、ITCH 和 OUCH 等多种名字各异的协议),过滤需要的交易代码并将其发送到预定义的篮子中,供交易算法 (TA) 分析。一旦交易算法判定必须执行某项交易, 就向订单管理系统(OMS) 发出交易请求,由订单管理系统与交易所接口服
7、务器或交易所本身通信,下订单、接收交易确认。ATS服务器还能用极其精确的时戳给输入的数据加戳,然后将数据送去存档。加盖时戳和市场数据采集既可在同一服务器(让数据经内部网络进入数据服务器)完成,也可两个独立的服务器上执行。ATS 能够以超过 6Gbps 的总突发数据速率从多个交易所接收数据。近期纳斯达克 (Nasdaq) 宣称已准备为自己的数据中心客户提供 40Gbps 的连接,正等待监管部门的批准。数据速率的快速攀升给系统处理器带来了巨大压力,同时也从重要的交易数据分析和决策任务上分散了处理能力。根据使用商用 10GE 网络接口卡对文件服务器测试的结果可以看出,在通过服务器自身的本地堆栈进行
8、TCP 传输时,仅处理 IP 协议就几乎完全占用了2.2GHz 的处理器,且实现的数据速率不足 5Gbps。为应对这种困局,出现了一种使用一个称为 TCP 卸载引擎(TOE) 的硬件为网络协议栈提速的方法。该方法能在一定程度上改善响应时间。即便在网卡上采用了 TOE,到达主处理器的数据量仍然相当庞大,足以导致不可接受的延迟。为降低时延,有必要先在网卡上过滤相关数据,然后再传输给主系统处理器。虽然所有的工作负荷都在 FPGA 层面完成,但响应时间明显加快。另外 FPGA 可提供与负荷水平无关的相同响应时间。这对常规的处理器是无法实现的。在处理器轻载时,响应时间可以预测,但在重载时,响应时间会延长
9、,直至无法预测。目前处理器和以太网卡之间通过PCI Express 总线来通信。理论上 8信道的 PCI Express Gen 2 总线能提供4Gbps 的峰值吞吐量。但 PCI Express受器件驱动程序和操作系统中断处理内在的时延的牵制。避免通过 PCI Express 总线与主机处理器相连,在网卡上执行金融计算,有着明显优势。FPGA 技术是金融应用的理想选择,因为它能够实时处理海量数据,且时延低、一致性好。简言之,FPGA 能够提供并行处理能力,这是通用处理器无法匹敌的。由于 FPGA 能够给交易系统带来更强劲的性能和极快的速度,设计人员都在努力将尽可能多的功能(比如与交易所通信的
10、 OMS 和部分算法)集成到 FPGA 中,以降低响应时间。图 2 对基于 FPGA 和 CPU 的系统的响应时间进行了比较。FPGA 不仅速度明显提高,而且性能随负荷的增加保持稳定,相比之下基于 CPU 的解决方案响应时间随负荷增大明显延长。FPGA 技术的优势FPGA 技术能够提供最佳解决方案,轻松应对高带宽、实时、高计算强度金融交易应用所面临的各种难题,这是其他技术无法匹敌的。由 FPGA 在以太网卡上执行交易的解决方案具有多重优势:n 在贴近网络物理接口的 FPGA 上执行交易可避免主机总线、主机处理器和操作系统带来的时延。这样可以显著改善交易的响应时间。n FPGA 提供线速性能,能
11、够瞬时执行算法中用于发现并把握交易机会的部分,不给他人察觉机遇的机会。n FPGA 在运行过程中可重新编程,便于修改参数、更新算法,保持领先于竞争对手。n FPGA 特别擅长并行处理,能够同时执行多个交易。超低时延金融应用难以实现的原因在于它们必须在极高带宽下以线速运行,必须执行复杂的算法。要实现卓越的高性能,必须针对应用设计专门的架构。这就必须考虑如何在高计算强度的算法和满足交易的极快响应速度要求之间进行取舍,实现最佳平衡。设计人员必须想尽一切办法消除瓶颈,最大限度地降低通信时延和处理时延。为避免与主机系统总线有关的时延,应选用功能强大的 FPGA 来实现交易算法的关键部分,同时匹配大量的 SRAM 和 SDRAM 存储器端口和低时延通信端口。与为单核或多核处理器开发软件相比, 使用线程的硬件模块编程FPGA 一般情况下工作量更大,而且要求具备专业技能。另外,还需要投入大量精力和资金学习实现 FPGA 解决方案的有案可循和无案可循的微妙之处,尤其对极高速解决方案而言更是如此。这些特点可能会增大 FPGA的认知风险,延长设计时间,导致部分项目经理和开发团队趋利避害,转而寻求次优的软件实现方案。另外现有的交易算法几乎都是清一色用 C 和C+ 编写,将它们移植到 HDL 代码中不是一件能一蹴而就的小事。