高性能運算對於許多應用至關重要。在其中一些最競爭的應用領域,開發人員經常能為其嵌入式系統問題找到解決方案。例如,高頻交易(HFT)是一種演算交易的形式,其交易量佔美國證券交易量的絕大部份。高頻交易使用機器學習演算法處理市場資料、擬定策略,以及在幾微秒的時間內執行訂單。

為了獲得每次交易中哪怕只有幾分之一美分的利潤,高頻交易員以很高的交易量短期進出交易所。使用HFT演算法的系統持續監測價格波動情況,以利於調整短線交易策略。由於這是非常短期的交易策略,HFT企業無需耗費大量資本、累積頭寸或隔夜持有其投資組合。目前,高頻交易量佔美國證券交易量的75%。

在21世紀初,HFT交易側重於優質的演算法和交易策略。現在,由於最普及的幾種系統僅存在幾秒的延遲,決勝的關鍵不再是速度,而是策略。到了2010年,由於演算法的進展已不足以獲得交易優勢,為了戰勝彼此,參與者開始縮短tick-to-trade的交易延遲,從而使交易時間縮短至數微秒。

在次毫秒級買賣交易訂單的刺激下,HFT平台開始了一場競爭激烈的速度競賽,以便將市場資料的往返延遲縮短至微秒級。由於僅僅幾奈秒的差別往往帶來巨大的‘潛伏套利’競爭優勢(或稱為‘搶先交易’),交易企業一直在尋找更快的交易伺服器。

採用軟體途徑處理訂單

傳統上,HFT交易一向使用軟體工具。這些工具利用了高性能運算系統,能夠高效地執行複雜的交易策略(圖1)。這些系統中的作業系統核心控制對其CPU和記憶體資源的存取,而應用堆疊則負責處理所有的交易策略,由網路介面卡(NIC)連接系統至證券交易所。

2160719 Cypress TA31P1 圖1:採用軟體途徑處理訂單的配置(來源:Cypress)

然而,這種配置存在交易延遲的缺點:

  • 標準NIC並未專為處理TCP/IP和專用交易協定進行最佳化,而且無法板載處理市場資料饋送
  • 主系統和乙太網路(Ethernet)卡之間的PCI Express匯流排會增加數微秒的延遲
  • 核心OS原生的基於中斷途徑就會導致較長的延遲
  • 這些解決方案基於共享記憶體資源的多核心處理器。在處理來自證券交易所的資料饋送時時,確定性延遲至關重要,存取共用記憶體絕不是一個最佳方式

在演算法交易領域的最新進展是導入了一些更低延遲的解決方案,其中最佳的方式是使用現場可程式邏輯閘陣列(FPGA)搭建的客製硬體。這些設備可說是硬編碼ASIC的極致性能和CPU靈活度之間的橋樑。透過FPGA提供大量的資源且可加以配置,使其得以較軟體解決方案更大幅縮短往返交易延遲。

採用FPGA途徑處理訂單

除了靈活之外,FPGA還可以進行編程設計,以便自行處理資料擷取、風險評估與訂單處理等關鍵任務。這種自給自足的特性使其較軟體演算法更快、更可靠。讓基於FPGA的解決方案能夠大幅提升電子交易性能的關鍵因素是:它們能讓過去由軟體處理的過程直接在FPGA上進行。

2160719 Cypress TA31P2 圖2:採用FPGA途徑處理訂單的配置

相較於軟體演算法,FGPA的配置具有這些優勢,原因就在於以下的功能被分流到FPGA:

  1. 處理TCP/IP訊息
  2. 解碼FAST或類似的交易專用協定,以及擷取相關資料
  3. 進行交易決策,而不至於導致任何基於核心的中斷延遲
  4. 透過管理FPGA中的訂單簿(order book)和交易記錄以降低風險

憑藉著這些優勢,基於FPGA的解決方案能夠提供超低延遲的資料饋送處理功能,以及更快的訂單執行和風險評估速度。它們還能實現最高的每瓦功耗性能,盡可能地降低能耗和熱量要求。FPGA解決方案的另一個優勢是透過擴展部署‘FPGA現場’配置的能力。

組成基於FPGA途徑關鍵之一在於巧妙地整合4倍資料率(QDR)記憶體,實現確定性記憶體存取速率以及經過最佳化的VHDL程式碼。在FPGA的記憶體中需要維護的兩個最重要資料集是用於維護訂單簿的證券資訊和用於分析風險的資料與時間戳記。二者均對快取記憶體提出了不同的要求。資料封包的資料與時間戳記對於保存交易決策的準確記錄、重現過去的事件非常重要。這些記錄所需的精密度達數十奈秒,這使得記憶體延遲(即為記憶體提供位址以及從資料匯流排取得資料之間的時間延遲)更加至關重要。

另一個資料集-訂單簿-是所有訂單的資料庫,包含交易系統需要維護的符號和價格。這個資料庫通常根據交易客戶感興趣的證券而包含所有金融工具的一部份。訂單簿必須根據從客戶而來的資訊同步進行更新與存取。訂單簿中的相關資料與從交易所收到的資料進行比較,然後再根據交易演算法做出買、賣或保留金融工具的決策。

由於來自證券交易所的輸入資料串流並不是以確定順序方式接收的,因此,執行交易策略的記憶體存取也是隨機的,以小量資料的叢發進行,並以最低延遲獲取資料。以記憶體術語來說,執行這種隨機存取的能力是由一種名為隨機交易率(RTR)的指標衡量的。RTR表示記憶體在一定時間內可支援的隨機讀取或寫入作業次數,其衡量指標是:交易次數/秒的倍數(例如MT/s或GT/s)。在大多數記憶體中,隨機存取時間是由週期延遲(tRC)定義。最大的RTR約為tRC的倒數(1/tRC)。

快取記憶體的選擇經常限制基於FPGA的硬體能力。大多數的FPGA只採用傳統基於DRAM的記憶體,因為它們具備成本優勢,而且密度較高。但是,這些記憶體極其緩慢,而且容易發生軟錯誤。考慮到這些系統每秒的交易量,我們不能犧牲速度和可靠性。

從純技術的角度探討兩種運用最廣泛的DRAM:同步DRAM(SDRAM)和低延遲DRAM(RLDRAM)。過去10年來,SDRAM的tRC並沒有很大變化(將來可能也不會),一直維持在48ns左右,對應21 MT/s RTR,其它基於DRAM的記憶體設計則以犧牲密度改進了tRC。例如,RLDRAM 3的tRC為8ns,對應於125MT/s RTR。基本上,DRAM是為那些依序存取確定性運算演算法而最佳化的,但高頻交易並非採用這樣的方式。

一個更好的選擇是同步SRAM。雖然基於DRAM的記憶體具備較高的記憶體容量,但它們無法滿足交易平台使用快取記憶體的延遲和性能要求。數十年來,SRAM一直是大多數高性能應用的首選記憶體。基於SRAM的解決方案可能比一般基於DRAM的解決方案更快高達24倍。

在SRAM中,QDR系列SRAM的性能比任何類型的記憶體都要高。QDR SRAM是專為突發和隨機存取而設計的。藉由一個讀寫專用埠,QDR記憶體是訂單簿管理等讀寫均衡作業的理想選擇。例如賽普拉斯半導體(Cypress Semiconductor)最新推出的QDR SRAM——QDR-IV,更進一步提供了兩個雙向埠。當讀寫作業不均衡時,例如當查詢TCP/IP處理和資料串流處理等操作時,採用QDR-IV將會非常高效。

下表比較各種核心記憶體技術採用的解決方案:

Cypress  表1:各種核心記憶體技術方案的特性比較

QDR-IV記憶體的RTR為2132MT/s,延遲為7.5ns。考慮到隨機存取性能對於FPGA解決方案的重要性,這些記憶體有助於大幅縮短交易的總延遲。該款SRAM較高的作業頻率和雙埠作業特性,可為那些要求嚴苛的網路環境搭建超低延遲的資料封包緩衝區。此外,QDR-IV無與倫比的RTR可加快需要即時查詢或其它資料結構的客製應用。而DRAM則更適合儲存資料大量的資料記錄資訊,而高性能的SRAM可與其配合作業,儲存延遲關鍵型路徑的運算查詢或緩存資料。

各種記憶體的RTR性能比較

2160719 Cypress TA31P3 圖3:各種記憶體技術的RTR比較 (來源:Cypress)

除了RTR和延遲優勢之外,很多SRAM還包含一系列新的特性,例如可實現高可靠性的錯誤糾正碼(ECC)、晶片上終端(ODT)以及可提高訊號完整性的偏斜校正(De-skew)訓練。

有鑒於幾奈秒所能帶來的競爭優勢,在打造一個基於FPGA的客製化解決方案時,所採用的記憶體類型也是一項關鍵因素。由於QDR記憶體所具備的固有優勢,很多FPGA廠商正為其最新一代基於FPGA的高性能交易解決方案導入QDR記憶體。相較於那些使用傳統記憶體解決方案的交易員,採用這些FPGA的交易員擁有先發制人的優勢。QDR記憶體還獲得了Altera、Xilinx等業界主要FPGA供應商的支持。Altera最新發佈的Arria 10 FPGA即可支援QDR-IV。預計Xilinx等者很快也會宣佈在其產品中提供類似的支援。