为了支持越发无邪
的用户逻辑定制,以及基于集中缓存的交流输入
调治,处置
如今
TSN交流开发历程中遇到的用户逻辑定制严重
等效果
,经讨论和征求现有用户见识
,FAST流水线模子
由3.0版本晋级
到3.1版本。
一、3.0版本存在的效果
FAST3.0流水线模子
如图1所示。其主要
特点是增添
了Pre-Ingress流水线段,阻止
GPP(通用分组剖析
)将IEEE1588v2的PTP协议帧定向到软件处置赏罚
或扬弃
,同时将GOE(通用输入
引擎)直接与UDO(用户界说输入
)毗邻
,作废
了UDO到GOE的反压流控信号,阻止
了分组输入
延时的踏实
定性,为基于FAST架构的TSN交流完成
奠基了基础
。

图1 FAST流水线3.0版本的结构
但是
,FAST用户在TSN交流成效
开发时也面临了两个效果
。一是基于FIFO结构
的PBuf(分组缓存)只支持先来先效劳
的输入
调治算法,限制了其他输入
调治算法的运用
;二是Pbuf的写入和读出逻辑划分与GPP和GAC(通用转刊举动
)模块绑定,强迫
用户必需
同时运用
PBuf缓存管理
和GPP/GAC的成效
,限制了用户自界说逻辑的无邪
性。
二、3.1版本简介
FAST流水线3.1版本模子
如图2所示,对比
3.0版本主要
有三个主要
转变
。
(1)基于BID的Pbuf管理
Pbuf凭证
RAM的方式组织,外部
存储被划分为多个分组缓冲区,每个缓冲区运用
体魄
BID(缓冲区ID)表现
。每个抵达
流水线的分组都市被分配一个BID,BID嵌入分组的元数据在流水线中转
达
。当流水线需求
从Pbuf读出分组时,凭证
分组的BID向Pbuf收回
读出请求。因为
BID机制可以支持非FIFO的分组读出顺序,是以
可以支持流水线接纳越发严重
的分组输入
调治战略。
(2)Pbuf管理
与GPP和GAC解耦
FAST流水线3.0版本及以前均将Pbuf和写入和读出逻辑划分嵌入GPP和GAC模块,是以
运用
Pbuf时默许
需求
流水线设置
GPP和GAC模块,这给用户逻辑定制带来未便。例这样
多用户交流场景(例如二层TSN交流)其实不
需求
对IP的剖析
,而GPP征求
了IPv4/IPv6以及传输层协议的剖析
,默许
运用
GPP使得用户的逻辑难以简化。

图2 FAST 3.1的流水线扩展模子
在FAST流水线3.1版本中,Ingress流水线的第一个模块牢靠
为IBM(Ingress缓存管理
),IBM从CBM(集中缓存管理
)获取一个闲暇
的BID,将分组写入该BID,并将BID嵌入分组元数据中。在Egress流水线中嵌入EBM(Egress缓存管理
)模块,仔细
凭证
从下游
吸收
到的分组元数据中德BID从CBM中读取分组,向下游模块收回
。
CBM仔细
Pbuf中闲暇
缓冲区BID的维护,IBM每吸收
一个分组就分配一个BID,EBM没读取一个分组就接纳一个BID。
因为
流水线元数据中需求
携带BID信息,是以
需求
将原有FAST架构中的元数据界说举行
修正
,主要
是作废
元数据中的SeqNum序列号字段和延长
分组长度字段,详细见《FAST元数据名堂
规范
》。
(3)模块的颜色标注
为了进一步区分模块的属性,支持用户运用
现有成熟模块举行
快速
原型完成
以及完全定制自己
的模块,FAST模块引入颜色标注机制。
表1列车数据类型与TSN数据类型照射
表
颜色 | 类型 | 知识产权属性 | 知识产权属性 |
绿色 | 要求基于FAST开发必需
运用
的基础
模块 | 恣意
运用
,无知识产权效果
| IBM、CBM、EBM |
黄色 | 引荐
基于FAST开发的用户运用
的通用模块 | 恣意
运用
,无知识产权效果
| GPP,GKE,GME,GAC,GOE |
白色 | 用户自界说的模块 | 开发者具有
知识产权 | 1588-GAC,1588-UDO等 |
FAST社区会严酷
实验
保险
绿色和黄色模块的质量,并提供文档和手艺
支持。白色模块质量有开发用户仔细
。经用户授权
和FAST社区实验
,白色模块也会酿成黄色模块。
附:FAST流水线版本历史
版本 | 时间
| 改动 |
1.0 | 2016.12 | 初始的FAST流水线版本,主要
特点征求
: (1)尺度的五级流水线(用户界说的剖析
、关键
字提取,查表,转发action,输入
引擎); (2)用户经过
扩大
尺度五级流水线模块成效
,完成
定制逻辑 |
2.0 | 2018.6 | (1)支持用户经过
拔出
自己
的模块扩展流水线的处置赏罚
成效
,而无需修正
已有的五级流水线逻辑 |
3.0 | 2019.1 | 在2.0版本基础
上: (1)增添
了Pre-Ingress流水线段,支持对GPP不支持的协议帧举行
剖析
和处置赏罚
(2)将GOE直接与UDO毗邻
,阻止
了分组输入
延时的踏实
定性,为支持TSN提供保险
|
3.1 | 2019.3 | 在3.0版本基础
上: (1)将分组缓冲区(PB)由单FIFO行列形式
改为基于RAM的随机存取的方式,支持有优先级区此外分组缓存和输入
调治算法; (2)将分组写入PB的逻辑从GPP模块中自力
出来,将从PB读出分组的逻辑从GAC模块疏散出来,有助于用户逻辑定制时,运用
流水线提供的分组缓存管理
机制,而定制自己
的分组剖析
和转刊举动
逻辑。 (3)修正
照应
的元数据名堂
界说; (4)FAST流水线模块的颜色标注机制; |