FlexTSN一种灵活的TSN交换实现模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DOI : 10.7544/issnl000-1239.2021.20190784
58(1) : 153 163, 2021
计算机研究与发展
Journal of Computer Research and Development
FlexTSN : 一种灵活的TSN 交换实现模型
杨翔瑞严锦立陈波彭锦涛李军帅全巍孙志刚
(国防科技大学计算机学院 长沙410072)
(yangxiangrui11 @ nud 匚 edu. cn)
FlexTSN : A Flexible TSN Switch Implementation Model
Yang Xiangrui , Yan Jinli, Chen Bo , Peng Jintao , Li Junshuai, Quan Wei , and Sun Zhigang
{College of Computer Science and Technology , National University of Defense Technology , Changsha 410072)
Abstract TSN (time-sensitive networking) has gained increasing attention from both industry and
academia because of its ability to enable deterministic switching and best effort switching in the same network. Compared with traditional Ethernet , TSN provides quite different mechanisms ranging from
time synchronization , gate control mechanism , to time-aware scheduling. This enables the Ethernet to provide the packet forwarding service with deterministic delay. Currently, IEEE 802.1 TSN Group is
working on over 17 standards and drafts about TSN. And academic researchers also put much effort into proposing novel mechanisms from frame preemption to flow scheduling. However, there are rare,
if exist , general models that enable rapid prototyping of TSN system. And we find this is quite important for rapid design and validation of key technologies in TSN. In this paper , FlexTSN , a
flexible TSN switch model with loose-coupling modular design for TSN evaluation, is proposed. The TSN switch pipeline is decoupled into general processing modules and time-aware modules for
supporting the rapid building of TSN switches. Moreover, FlexTSN provides a light -weight high- reliable network management mechanism by extending the PTP synchronization protocol for fine
grained centralized network monitoring and configuration. Furthermore , a simplified CQF (cyclical queuing and forwarding) model is adapted based on the FlexTSN prototype. The evaluation result
shows that FlexTSN can provide clear abstractions for re-design and rapid evaluation of novel
mechanisms in TSN.
Key words FPGA ; time-sensitive networking (TSN ) ; model and implementation ; deterministic
forwarding ; synchronization
摘 要 时间敏感网络(time-sensitive networking , TSN)的核心是为标准以太网赋予关键流量的确定
性转发服务,同时能够实现混合优先级业务流量的一体化传输,从而成为业界和学术界备受关注的新兴
技术.相比于标准以太网交换,TSN 交换通过引入高精度的时间同步特性提供门控机制和时间感知的 分组调度等服务,使得以太网有能力提供确定性延迟的转发服务.目前IEEE 802.1 TSN 工作组从时间
同步、流管理、流控制以及可靠性等方面对TSN 的设计实现提供较为完善的标准.而现有的工作难以加 快TSN 技术的实现和应用,其难点在于目前缺少一种面向TSN 的通用交换实现模型进行快速的原型
收稿日期:2019-11-08;修回日期=2020-06-15
基金项目:国家自然科学基金项目(61802417);之江实验室开放课题资助(2020LE0AB01)
This work was supported by the National Natural Science Foundation of China (61802417) and the Open Project Funding of
Zhejiang Lab (2020LE0AB01).
通信作者:孙志刚(sunzhigang@ nudt. edu. cn)
154计算机研究与发展2021,58(1)
系统搭建和关键技术的验证.为此提出一种灵活的TSN交换的实现模型FlexTSN.FlexTSN基于模块
化与功能松耦合的思想,将TSN交换节点解耦为通用处理模块和时间感知模块,支持TSN交换机的快速重构.此外,FlexTSN通过扩展PTP同步协议提供一种轻量级高可靠的网络管理机制用于进行细粒
度集中式的状态收集和配置.然后基于该模型在可编程的FPGA平台上实现了一种支持简化的循环队列转发模型(cyclical queuing and forwarding,CQF)的TSN原型系统.通过从资源开销和服务质量等
方面进行测试评估,实验结果证明FlexTSN能够实现敏捷的原型系统组网及TSN关键技术的快速验证.
关键词现场可编程逻辑门阵列;时间敏感网络;模型与实现;确定性转发;同步
中图法分类号TP391
随着工业物联网(industrial Internet of things, IIoT)⑴需求与技术快速发展,通过一套标准化网络在工控网络中同时实现实时消息确定性转发和非实时消息尽力转发十分重要.2012年,IEEE802.1的音视频桥接技术工作组(audio/video bridging systems group,AVB)正式被时间敏感网络(time-sensitive networking,TSN)任务组所代替②,用于满足工业互联网的上述需要.TSN闪定义了确定性以太网中2层网桥(bridge)的调度与转发等策略.与传统以太网相比,TSN的最大特点是能保证数据交换确定性,在预知时间敏感数据流传输周期与数据量等特征后,进行端到端基于时间的调度控制.TSN能够保证在确定性延迟范围内(极小的数据抖动)将数据传输到接收方.这有助于将传统由现场总线通信(如IEEE1394⑷,PROFINET皈等)或专用工业以太网协议(女口Ethernet for Control Automation Technology®)分割的工控网络体系进行整合,打破不同技术路线形成的壁垒,利于工业互联网技术路线的推进.
目前,IEEE TSN工作组制定了一系列草案对TSN中相关技术进行标准化.其中IEEE802.1AS⑺对TSN中精确的时钟同步方式进行了规范, 802.1Qcc ra定义了用于网桥状态周期性上报与CNC(central network controller)节点对网桥的配置方式,802.1Qav囚,802.1Qbv[],802.1Qbu[]等对TSN中的流控(整形、调度等)进行了规范等.同时, IEEE关于TSN的多数草案仍在快速迭代更新中.例如,TSN工作组的主页显示,目前已经发布的TSN 标准共有13个,有17个标准仍在讨论与设计中[0],涉及本地注册管理、服务质量(quality of service, QoS)配置、服务提供商网络的TSN配置说明等方面.上述标准的形成都需要新提出的技术方案在基于硬件的TSN原型系统中进行全面的功能与性能验证.
然而,由于TSN技术刚起步,在时间同步、输入调度、输出调度、状态与资源管理等方面与传统以太网技术区别较大,目前还没有一种通用的模型用于TSN交换原型系统的快速实现.因此,一种便于研究人员进行敏捷、灵活开发的TSN交换模型对于推动TSN技术的实现和应用极为重要.这有利于为研究人员提供灵活的TSN关键技术敏捷验证. NetFPGA[11]与FAST[2]等网络交换原型的开源框架为基于可编程硬件的网络原型系统构建提供了平台,但是缺少对TSN在时间同步、资源与状态管理等方面的抽象支持,难以针对TSN领域特定关键技术进行敏捷验证.
因此,我们提出一种灵活的TSN交换模型FlexTSN,用于为研究人员提供一种敏捷的TSN交换原型系统构建方式.FlexTSN基于FAST[2]开源框架进行设计开发,其实现了一种功能模块松耦合的TSN交换节点.FlexTSN具有的特点为:首先,将TSN转发节点的逻辑功能解耦为时间同步、输入调度、分组交换、输出调度、状态与资源管理5大功能模块(如图1所示),每个模块均支持用户基于新的机制进行重构,从而便于对TSN中新型关键技术进行快速验证;其次,我们为FlexTSN设计了一种基于扩展精确时钟同步协议(precision time protocol, PTP)的轻量级高可靠网络管理机制Beacon,用于对节点的状态信息进行周期性上报,便于用户进行
Fig.1The functionalities of TSN switching node
图1TSN
交换节点功能示意图
杨翔瑞等:FIcxTSN;一种灵活的TSN交换实现模型155
远程遥测与调试;最后,FlexTSN借助FAST中metadata等数据结构进一步抽象出TSN相关核心数据结构,通过中间结果共享简化自定义模块开发.
本文的贡献有3方面:
1)提出了一种灵活的TSN交换模型FlexTSN 及其原型系统[13],便于研究人员对TSN关键技术进行快速验证;
2)在基于FlexTSN构建的转发节点中,将时间同步、输入调度、输出调度、分组交换与状态、资源 管理进行解耦,便于研究人员对特定逻辑功能进行自定义的模块替换或重构;
3)提出一种基于PTP协议5〕的Beacon机制,通过周期性上报本地状态与配置信息,为用户基于FlexTSN的开发过程提供一种高效的故障诊断与调试机制.
1动机与方法
本节对灵活的TSN交换模型的研究动机进行介绍,并且对FlexTSN设计中的核心方法进行介绍.
1.1研究动机
目前关于TSN的相关研究日益丰富,来自业界与学术界的研究人员针对TSN中时间同步、调度机制与资源管理机制等进行了越来越深入的探索.为了对提出的相关算法与机制进行验证,研究人员迫切需要对TSN交换系统进行快速原型设计与搭建.而目前还缺少一种能够灵活支持TSN交换的实现模型.
FPGA为网络交换原型系统提供了良好的可编程性以及与软件相比更高的处理速度.作为主流的基于FPGA的网络实验平台如NetFPGA,FAST 等提供了针对以太网数据帧的抽象和易于使用的硬件元数据结构,适用于传统以太网实验环境搭建.然而针对TSN而言,仍然需要用户实现TSN交换节点中输入输出调度、交换、资源管理与时钟同步等功能.而多数研究人员仅针对TSN交换节点中的某一功能进行研究,为了对某一方面的机制或算法进行验证而搭建整个TSN交换原型系统无疑带来大量时间和工程开销.
以时钟同步为例,IEEE802.1AS[7]规定了TSN 使用gPTP[13]协议进行全LAN的时钟同步.gPTP (generic PTP)协议包含基于最优主时钟(best master clock,BMC)算法的主时钟选取和时钟同步算法2部分,而基于FPGA的时钟同步协议的一种简化的典型实现[1,1]大约包含2100行verilog代码.而如图1所示,TSN交换节点(在IEEE802.中定义为bridge)至少包含时间同步、输入调度、分组交换、输出调度、状态与资源管理5种核心功能,这将为用户带来较多的额外开发和调试负担.
1.2需求与方法
通过1.1节的动机分析,目前迫切需要一种灵活的TSN交换实现模型对TSN中关键技术进行敏捷测试与验证,为此我们提出了FlexTSN,—种灵活的TSN交换实现模型,使研究人员能够基于所提出算法快速搭建TSN交换的原型系统,从而敏捷地进行算法和机制验证.
为了使得FlexTSN满足该需求,我们对FlexTSN作出3条需求约束:
1)FlexTSN首先应当实现一种典型的TSN交换原型系统,支持包含时间同步、输入调度、分组交换、输出调度、状态与资源管理5部分核心TSN交换功能,便于用户对多数功能模块进行重用;
2)FlexTSN中各逻辑功能应当采用松耦合的设计模式,保证约束1中任何一种功能模块能够方便地被用户自定义逻辑替换;
3)FlexTSN应当为用户提供一种灵活的状态信息上报机制,从而便于用户对基于FlexTSN的原型系统进行集中式的状态信息采集与调试.
FlexTSN应当作为一种开源与可敏捷重构的TSN测试平台.为了能够满足上述目标,FlexTSN 包含了3种关键技术:
1)基于模块化、松耦合的设计模式.FlexTSN 基于FAST的模块化框架设计实现,并对FAST架构进行扩展.通过定义各模块间交互的通用数据结构,保证不同模块间的功能解耦.
2)基于扩展PTP报文的Beacon机制.FlexTSN 对PTP协议数据字段进行扩展,从而将本地状态和资源信息以及透明时钟封装在扩展的PTP报文中,并根据配置进行时钟同步场景下的状态信息周期性上报.
3)定义了TSN metadata字段,根据时间敏感的调度机制需求将调度关键信息(时钟、流优先级等)圭寸装在TSN metadata中,方便用户对输入、输出等调度算法进行敏捷部署.
2FlexTSN架构设计
2.1整体架构
FlexTSN整体流水线架构如图2所示.其中深色
156计算机研究与发展2021,58(1)
为FlexTSN开发模块,白色为通用模块.FlexTSN 为了保证全网时间同步的精度与TSN输出调度的精确性,主要有2点关键设计:
1)将时间同步逻辑(如时钟同步与时间戳标记)部署在数据接口逻辑中,避免跨时钟域,从而保证透明时钟计算的准确性(详见2.2节);
2)为了支持“确定性转发”的TSN调度机制,输出通道设计为n路(n为端口数量),保证分组在FlexTSN中完成调度后避免block-of-head拥塞,从而进行确定性转发.
Fig.2The model of FlexTSN's pipeline 图2FlexTSN流水线模型
总的来看,FlexTSN流水线包含FAST基本模块与TSN功能模块2类模块.在可重构的TSN功能模块中,PTP(时间同步模块)靠近接口逻辑,主要负责在网络中与各节点进行全网的时间同步,从而向交换、调度等模块提供同步的精确时间信息•其余模块依次部署在流水线中,便于用户根据自定义需求进行重构.其中,LCM为本地管理模块,负责本地节点的资源与状态管理,并负责周期性向CNC (central network controller)上报本地状态信息; ESW为解析与交换模块,主要负责解析分组并提取metadataC包含优先级、输入端口、流标识等信息),同时根据本地转发表对action字段进行标识;EOS 模块为FlexTSN的输出调度模块,是实现TSN调度的核心模块之一,可根据ESW模块提取的metadata 信息对分组进行输出调度.
而FAST[2]基本模块中,Pkt Extract模块提取报文体,并将其暂存在Data Cache模块中,并保留metadata与报文头向量用于在EOS模块进行调度. Data Cache模块用于暂存报文体,并将报文暂存地址、报文长度等提供给Pkt Extract模块,用于填充metadata信息.Pkt Restore模块用于根据EOS模块输出进行报文拼装.GOE模块为FlexTSN的输出引擎,它根据报文metadata中action字段值对报文进行向特定端口转发、丢弃、计数等处理.
2.2核心模块设计
2.2.1时间同步模块
TSN采用IEEE802.1AS(g PTP协议)进行TSN中全域的时间同步.因此,在FlexTSN中的PTP模块中也采用gPTP协议用于各节点的时间同步,实现全网各节点亚微秒级的同步,从而为TSN中实时调度提供精确的全局时间.
2.2.2本地状态与资源管理模块
本地状态与资源管理模块(LCM)负责接收CNC的配置命令并对各功能模块进行配置,另外还收集各功能模块的状态信息,周期性向CNC节点进行上报.该模块的架构如图3所示:
Fig.3Architecture of local state and resource
managementmodule
图3本地状态与资源管理模块(LCM)架构
LCM模块分为LReport与LUpdate这2个子功能模块,以及一个本地控制模块LCM_Ctrl.其中LReport模块负责周期性构造包含本地计数器等状态信息的分组,并以组播方式将该分组发送至CNC 节点.LUpdate模块负责接收并解析来自CNC节点
杨翔瑞等:FlexTSN:—种灵活的TSN交换实现模型157
的控制分组,并根据控制分组中的字段对各模块中的控制寄存器进行配置•而LCM_Ctrl模块是LCM 的控制子模块,用于对上报分组的上报周期.Beacon 分组的目的MAC(media access control)地址等参数进行配置.
为了能够提供高可扩展的状态信息上报与管理信息配置,我们通过对IEEE1588同步协议进行扩展设计了Beacon网络管理协议,将在3.1节中进行详细介绍•
2.2.3解析与交换模块
解析与交换模块(ESW)是FlexTSN的核心交换模块,主要用于对接收的分组类型进行解析、查找转发表、构造TSN输出调度所需的metadata(为了简化设计,也可将输入调度机制部署在ESW中).
ESW的模块架构如图4所示,其主要包含3个子模块:PKE模块用于分组类型解析与转发表的key提取;PFW模块用于根据PKE生成的key字段进行转发表匹配,并根据查表结果生成对应的action 字段;PAC模块用于根据action字段生成TSN调度输出所需的metadata,并且根据流水线的数据缓存模块(IBM,即为模型图2中的Pkt Extract模块)的剩余存储空间大小决定对不同优先级的分组进行的操作(丢弃或继续处理).
Fig.4Architecture of the parsing and switching
module
图4解析与交换模块(ESW)架构
根据文献[15],TSN使用IEEE802.3中VLAN (virtual local area network)头中的PCP字段(0〜7)标记特定流的优先级•在FlexTSN中,默认将所有数据流的优先级分为3类,如表1所示.PKE接收到输入分组后,提取查表所需的key(包含源、目的MAC地址等信息)并根据表1解析TSN的分组类型,之后将这2个字段以及分组送至PFW模块进行处理.
PFW为FlexTSN中用于查找转发表的模块,其查表逻辑与传统以太网查表逻辑相同,因此该模块也可复用用于传统以太网的查表模块.然而,由于需要支持基于优先级的输出调度策略,在PFW模块查表生成的action字段中需要包含一个3b的分组协议类型域,用于对该分组属于TSN分组、预约带宽分组或者尽力转发分组进行标识•
Table1Relation Between PCP Field and TSN Frame Type 表1PCP字段与TSN分组类型对应关系表
PCP TSN帧类型
02尽力转发帧
35带宽保留帧
67时间敏感帧
None尽力转发帧
PAC模块接收到来自PFW的分组及其携带的action字段后,将根据相关信息生成TSN metadata TSN metadata在FlexTSN中被用于进行输出调度的关键数据结构,其字段定义如图5所示:
7
2321
pkttype length outport buf^ID
000:尽力转发帧
O帧类型
]001:带宽葆雷帧
」010:时间敏感帧Fig.5TSN metadata data structure
图5TSN metadata数据结构
需要注意的是,TSN metadata字段的7〜0位为Buf_ID,代表该metadata所对应的分组在Data Cache中存储的位置.该字段与length字段相结合用于调度完成后从Data Cache读取对应的一个完整分组.
另外,由于Data Cache中的存储空间有限, PAC也需要根据Data Cache中空闲ID的数量决定是否要丢弃当前分组,并且保证高优先级流(TSN 流)的无损处理.
2.2.4输出调度模块
TSN的另一个核心功能是根据分组优先级或类别进行时间敏感的输出调度,该功能在EOS模块中进行实现.EOS模块的设计充分考虑了TSN网络特点,并将门控、流量整形和输出调度的逻辑进行了解耦,分别由不同的子模块实现,便于用户对其中某一部分逻辑进行重构.EOS的整体架构如图6所示.
图6中,队列选择模块(queue select)用于根据metadata中的分组类型字段以及输出端口号将不同类型分组的metadata(TSN分组、带宽预留分组以及尽力转发分组)送至MB模块中的不同队列中. MB中针对每个输出端口维护3个长度为N(N值与Data Cache中ID数相同)的FIFO(firs—in-firs--
out
158计算机研究与发展2021,58(1)
Fig.6The architecture of the output scheduling module
图6EOS模块整体架构
buffer),用于接收并缓存来自Queue Select模块的metadata.EOS中用于门控的模块是Gate Ctrl模块,该模块接收来自PTP模块的精确时钟信息,并根据全局时间、MB中FIFO剩余空间等信息对发送队列进行门控•而Traffic Schedule模块接收来自Gate Ctrl模块的当前可调度队列选项,并依据内部的调度算法对metadata进行调度输出•
在TSN的相关研究中,针对输出调度的研究相对丰富•我们将门控与调度的子功能分别解耦为Gate Ctrl模块与Traffic Schedule模块,并提供便于用户对新的门控与调度算法进行系统验证•在FlexTSN中,我们在EOS中实现了TSN规范中的—种典型调度算法CQF口6](cyclical queuing and forwarding)调度.
3关键技术
3.1基于扩展PTP协议的Beacon机制
为了便于用户对FlexTSN进行调试或配置,同时支持远端CNC节点实时获取TSN交换节点的本地状态信息,我们为FlexTSN平台设计了一种基于扩展的PTP协议的遥测机制,也称为Beacon机制.该机制支持2种关键功能:
1)TSN交换节点当前状态信息周期性上报. TSN节点周期性将本地状态信息填写到Beacon帧(扩展的PTP帧)中,并发送至CNC节点.其本地状态信息包括各队列当前利用率、各端口接收与发送的总分组数等.另外,通过周期性上报也可对各节点的同步精度进行验证.
2)CNC节点对TSN交换节点进行远程配置. CNC节点可将TSN节点的配置信息(MAC地址表、CQF调度时间片大小等)写入Beacon帧中并通过数据通路(通过MAC地址与正常数据帧进行区分)发送到目的TSN节点.TSN节点收到该报文后对本地相关寄存器进行修改•
算法1.全网当前时间同步精度time_precision().
输入:int N,int ime_stamp[N];
输出:int errrr_range.
①while(V N)begin
②cur_frame=Beacon_recv();
③if(cu^rr_frame.seq==curr_sq)then
④sent_time[门=ime_stamp[门——
curr_frame.recover_ime;
⑤else
⑥continue;
⑦endif
⑧endwhile
⑨sort_desc(sent_time[i]);
⑩tmeprecision=sent_tme]0]——
sent_time[N——1];
⑪return time_precision.
因此,Beacon在FlexTSN中支持2种CNC bridge的通信场景:周期性上报场景与写寄存器场景•周期性上报场景如图7(a)所示,Beacon协议支持TSN节点对本地参数(如规则表项、计数器等)向CNC集中控制节点以固定时间周期T进行上报.而写寄存器场景如图7(b)所示,支持CNC对TSN交换节点的流表规则、本地MAC地址进行写入或配置,并在下一个周期收到一个特定的响应帧,表明写入完成.需要注意的是?Beacon的写报文米用“完全覆盖”的方式对寄存器进行写操作,即当TSN节点收到CNC写报文时,使用报文中对应的寄存器值全部替换寄存器的当前值•该方式极大简化了控制协议的设计.
由于Beacon帧基于PTP帧进行扩展,因此PTP 帧中的时间信息可便于在CNC
节点根据上报的
杨翔瑞等:FlexTSN:—种灵活的TSN交换实现模型159
OpenTSN CNC OpenTSN CNC
上报
T
(a)周期性上报场景(b)远程更新场景
Fig.7Communication scenario of CNC-bridge
using NMAC protocol
图7CNC-bridge通过NMAC协议的通信场景
Beacon帧计算当前PTP的同步精度.一种可行的方法是对CNC节点接收到的同一序列号的Beacon帧记录时间戳,并将每个Beacon帧的时间戳减去Beacon帧中的修复时间域中的值,获取实际发送时间.由于全网中的交换节点已通过PTP协议与CNC 节点进行对时,因此,取所有发送时间,得到最大的差值即为当前全网的时间同步精度.其伪代码如算法1所示•其中N为当前网络中交换节点数量, tme_stmp为接收Beacon报文时CNC的本地时间戳.
Beacon帧基于PTP协议帧进行扩展,并利用PTP帧头中的MsgType字段为0xE与0xF作为Beacon协议的上报帧与更新帧.另外,为了支持对尽可能多的本地状态进行上报,Beacon帧将PTP 帧从64B扩展为144B,并可根据用户需求进行进一步扩展.
3.2基于CQF的TSN输出调度机制
基于CQF的输出调度模型是目前TSN标准定义的可实现确定性交换延迟的一种转发模型.在FlexTSN中,我们在EOS模块中实现基于CQF模型的时间控制机制,提供一种基于FlexTSN的输出调度模型示例,满足用户使用FlexTSN进行非输出调度算法验证的需求.
为了简化CQF调度机制,从而便于用户对调度机制进行重构,FlexTSN中对CQF机制进行2点简化:
1)简化Queue Select模块的入队流控机制,使用令牌桶代替802.1Q-2014中的基于信用整形机制(credit based shaper,CBS),从而减少用户使用时需要配置的参数个数;
2)使用4个输出队列(时间敏感乒乓队列、带宽预留队列以及尽力转发队列)代替VLAN的PCP 中定义的8种优先级队列,从而在满足不同优先级调度需求基础上减小FPGA片上存储资源的开销•为了保证针对高优先级流(PCP值为6或7)的确定性转发,FlexTSN中采用时间片轮转(时间片大小可由CNC节点进行实时配置)的方式在Gate Ctrl模块中对2个高优先级乒乓队列进行门控选择.如图8所示.即在奇(偶)数时间片调度Q3队列输出Q队列不输出;在偶(奇)数时间片调度Q2队列输出,Q3队列不输出•则可知,在一个N跳的网络中,一个TSN分组的转发延迟为((N-1)T, (N+1)T).该机制可以保证FlexTSN为用户提供确定性时延的转发需求.
T n^<t<T n T n<t<T n+i
H a l I M|I H
叫丨丨丨f
i iiii
□奇队列内数据□偶队列内数据□队列中空位
Fig.8The schematic diagram of ping-pong
outputscheduling
图8乒乓队列调度输出示意图
4原型验证
为了对FlexTSN的相关性能与功能正确性进行验证,我们基于OpenBox S4平台[2]对FlexTSN 进行了原型系统验证,并对FAST架构下UM内部源码进行了开源[4]•本节分别对FlexTSN原型系统的硬件资源开销、Beacon机制有效性以及简化的CQF转发模型的确定性交换效果进行FPGA系统验证.
4.1资源开销分析与验证
为了保证能够运行在资源受限的FPGA上,并为用户预留足够资源用于自定义的算法验证, FlexTSN在同一时钟域中采取寄存器暂存而非FIFO的方式保证同步逻辑的时序控制,从而尽可能减小片上存储资源的开销.在FAST UM中,仅EOS模块包含了4个宽度为24b、深度为16b的FIFO用于支持TSN交换的门控与输出调度机制.基于OpenBox S4(采用Zynq7020SoC)的一种FlexTSN的原型系统资源开销如图9与表2所示.
在基于OpenBox S4的FlexTSN原型系统中,LUT(look up table)与FF(flip flop)占比均不超过50%,资源开销最高的BRAM也不超过59%.该数
160计算机研究与发展2021,58(1)
据证明FlexTSN在设计与实现上尽可能节省了资源开销,有利于用户基于FlexTSN对更加复杂的算法进行系统验证•
Fig.9Resource consumption of FlexTSN
based on Zynq7020
图9基于Zynq7020的FlexTSN原型资源开销
Based on Zynq7020
表2基于Zynq7020的FlexTSN资源开销Table2Detailed Resource Consumption of FlexTSN
类型用量用量在总量中的占比/%
LUT2553648.00
FF3736835.2
URAM00.00
BRAM82.5058.93
4.2PTP时间同步精度验证
本节对基于PTP的时间同步精度进行验证,其 验证平台如图10所示.在该验证平台采用环形拓扑,共包含2〜6个TSN交换节点,并外接1个CNC控制节点与摄像头用于产生背景数据流量.主时钟为6个交换节点中任意1台,所有时间同步节点的FPGA时钟频率约束为125MHz,时间同步的同步周期为200ys.所有节点从同步后的零时刻开始,每间隔1s向CNC节点上报1个Beacon帧, CNC节点根据第3节时间同步精度验证算法得到当前全网的同步精度.
为了得到时间同步精度与接入节点数量的关系,我们在环形拓扑中接入共6个FlexTSN节点,并在0号节点的2号端口接入管理节点借助Beacon 机制对时间同步精度进行检查.实验中通过摄像头实时提供随机的背景流量.实验中,当主时钟接收到各节点上报的Beacon帧时,对各节点与主时钟(CNC节点)当前的同步精度进行检查,Beacon帧的上报频率设置为5s.
各节点与主时钟的时钟同步偏移如图11所示.总体上,各节点与主时钟间的同步误差不超过32ns,并且绝大多数结果都处于(0ns,16ns)之间.这验证了基于FlexTSN的时钟同步机制的良好精度,以及通过FlexTSN中的Beacon机制验证对时钟同步精度进行验证的可行性.
Fig.11The synchronized time precision of FlexTSN 图11FlexTSN时间同步精度结果散点图
Fig.10ThetopologyofFlexTSNtestbed 图10FlexTSN验证平台拓扑4.3简化的CQF转发模型验证
在FlexTSN中,我们默认使用CQF模型支持的TSN的确定性转发的需求,本节对该模型的确定性转发效果进行验证•
根据第3节相关部分,CQF模型可以保证时间敏感流的确定性的转发.为了对基于FlexTSN的CQF调度转发模型进行验证,我们将时间槽设置为不同宽度,并使用开源网络测试仪ant[7]用于产生不同分组长度的TSN流,并对经过不同转发设备数量的转发延迟进行测量,从而验证TSN流的端到端延迟能否达到((N—1)T,(N+1)T)的约束要求
.。