0731-84728105
15116127200
FAST流水(shuǐ)線推出3.1版本
發布時間:2019-03-27
     為(wèi)了支持更加靈活的用戶邏輯定制,以及基于集中緩存的交換輸出調度,解決目前TSN交換開(kāi)發過程中遇到(dào)的用戶邏輯定制複雜(zá)等問題,經讨論和征求現有用戶意見(jiàn),FAST流水(shuǐ)線模型由3.0版本升級到(dào)3.1版本。
一(yī)、3.0版本存在的問題
      FAST3.0流水(shuǐ)線模型如圖1所示。其主要特點是增加了Pre-Ingress流水(shuǐ)線段,避免GPP(通(tōng)用分組解析)将IEEE1588v2的PTP協議幀定向到(dào)軟件(jiàn)處理或丢棄,同時将GOE(通(tōng)用輸出引擎)直接與UDO(用戶定義輸出)連接,取消了UDO到(dào)GOE的反壓流控信号,避免了分組輸出延時的不确定性,為(wèi)基于FAST架構的TSN交換實現奠定了基礎。

圖1 FAST流水(shuǐ)線3.0版本的結構
     然而,FAST用戶在TSN交換功能(néng)開(kāi)發時也面臨了兩個(gè)問題。一(yī)是基于FIFO結構的PBuf(分組緩存)隻支持先來先服務的輸出調度算(suàn)法,限制了其他輸出調度算(suàn)法的應用;二是Pbuf的寫入和讀(dú)出邏輯分别與GPP和GAC(通(tōng)用轉發動作)模塊綁定,強制用戶必須同時使用PBuf緩存管理和GPP/GAC的功能(néng),限制了用戶自(zì)定義邏輯的靈活性。
二、3.1版本簡介
     FAST流水(shuǐ)線3.1版本模型如圖2所示,對比3.0版本主要有三個(gè)主要變化。
  (1)基于BID的Pbuf管理
     Pbuf按照(zhào)RAM的方式組織,内部存儲被劃分為(wèi)多(duō)個(gè)分組緩沖區,每個(gè)緩沖區使用體格BID(緩沖區ID)表示。每個(gè)到(dào)達流水(shuǐ)線的分組都會(huì)被分配一(yī)個(gè)BID,BID嵌入分組的元數據在流水(shuǐ)線中傳遞。當流水(shuǐ)線需要從(cóng)Pbuf讀(dú)出分組時,根據分組的BID向Pbuf發出讀(dú)出請求。由于BID機(jī)制可以支持非FIFO的分組讀(dú)出順序,因此可以支持流水(shuǐ)線采用更加複雜(zá)的分組輸出調度策略。
  (2)Pbuf管理與GPP和GAC解耦
      FAST流水(shuǐ)線3.0版本及以前均将Pbuf和寫入和讀(dú)出邏輯分别嵌入GPP和GAC模塊,因此使用Pbuf時默認需要流水(shuǐ)線配置GPP和GAC模塊,這給用戶邏輯定制帶來不便。例如很多(duō)用戶交換場景(例如二層TSN交換)并不需要對IP的解析,而GPP包含了IPv4/IPv6以及傳輸層協議的解析,默認使用GPP使得用戶的邏輯難以簡化。

圖2 FAST 3.1的流水(shuǐ)線擴展模型
      在FAST流水(shuǐ)線3.1版本中,Ingress流水(shuǐ)線的第一(yī)個(gè)模塊固定為(wèi)IBM(Ingress緩存管理),IBM從(cóng)CBM(集中緩存管理)獲取一(yī)個(gè)空閑的BID,将分組寫入該BID,并将BID嵌入分組元數據中。在Egress流水(shuǐ)線中嵌入EBM(Egress緩存管理)模塊,負責根據從(cóng)上(shàng)遊接收到(dào)的分組元數據中德BID從(cóng)CBM中讀(dú)取分組,向下(xià)遊模塊發出。
      CBM負責Pbuf中空閑緩沖區BID的維護,IBM每接收一(yī)個(gè)分組就(jiù)分配一(yī)個(gè)BID,EBM沒讀(dú)取一(yī)個(gè)分組就(jiù)回收一(yī)個(gè)BID。
      由于流水(shuǐ)線元數據中需要攜帶BID信息,因此需要将原有FAST架構中的元數據定義進行修改,主要是取消元數據中的SeqNum序列号字段和縮短分組長(cháng)度字段,詳細見(jiàn)《FAST元數據格式規範》。
  (3)模塊的顔色标注
      為(wèi)了進一(yī)步區分模塊的屬性,支持用戶利用現有成熟模塊進行快速原型實現以及完全定制自(zì)己的模塊,FAST模塊引入顔色标注機(jī)制。
表1列車數據類型與TSN數據類型映射表
顔色 類型 知識産權屬性 知識産權屬性
綠色 要求基于FAST開(kāi)發必須使用的基礎模塊 任意使用,無知識産權問題 IBM、CBM、EBM
黃色 推薦基于FAST開(kāi)發的用戶使用的通(tōng)用模塊 任意使用,無知識産權問題 GPP,GKE,GME,GAC,GOE
白(bái)色 用戶自(zì)定義的模塊 開(kāi)發者擁有知識産權 1588-GAC,1588-UDO等
FAST社區會(huì)嚴格測試保證綠色和黃色模塊的質量,并提供文檔和技(jì)術(shù)支持。白(bái)色模塊質量有開(kāi)發用戶負責。經用戶授權和FAST社區測試,白(bái)色模塊也會(huì)變成黃色模塊。
附:FAST流水(shuǐ)線版本曆史
版本 時間 改動
1.0 2016.12 初始的FAST流水(shuǐ)線版本,主要特點包括:
(1)标準的五級流水(shuǐ)線(用戶定義的解析、關鍵字提取,查表,轉發action,輸出引擎);
(2)用戶通(tōng)過擴充标準五級流水(shuǐ)線模塊功能(néng),實現定制邏輯
2.0 2018.6 (1)支持用戶通(tōng)過插入自(zì)己的模塊擴展流水(shuǐ)線的處理功能(néng),而無需修改已有的五級流水(shuǐ)線邏輯
3.0 2019.1 在2.0版本基礎上(shàng):
(1)增加了Pre-Ingress流水(shuǐ)線段,支持對GPP不支持的協議幀進行解析和處理
(2)将GOE直接與UDO連接,避免了分組輸出延時的不确定性,為(wèi)支持TSN提供保證
3.1 2019.3 在3.0版本基礎上(shàng):
(1)将分組緩沖區(PB)由單FIFO隊列模式改為(wèi)基于RAM的随機(jī)存取的方式,支持有優先級區别的分組緩存和輸出調度算(suàn)法;
(2)将分組寫入PB的邏輯從(cóng)GPP模塊中獨立出來,将從(cóng)PB讀(dú)出分組的邏輯從(cóng)GAC模塊分離出來,有助于用戶邏輯定制時,使用流水(shuǐ)線提供的分組緩存管理機(jī)制,而定制自(zì)己的分組解析和轉發動作邏輯。
(3)修改相(xiàng)應的元數據格式定義;
(4)FAST流水(shuǐ)線模塊的顔色标注機(jī)制;