APP下载

光纤通道速率自适应设计∗

2019-06-06吴楚雄施海锋

舰船电子工程 2019年5期
关键词:状态机端口链路

吴楚雄 施海锋

(南京电子技术研究所 南京 210039)

1 引言

随着“万物互联”时代的到来,网络中的设备量和数据量爆炸式地增长,这对数据的传输与存储提出了更高的要求。光纤通道(Fibre Channel,FC)技术兼具通道传输和网络传输的优点,传输带宽高、延时低、扩展性好和可靠性高,已广泛应用于存储区域网络(Storage Area Network,SAN)、航空航天等领域[1]。光纤通道协议的快速更迭和蓬勃发展,不仅保证了通信系统能始终使用最先进的数据传输技术,满足性能需求;也使得数据传输速率需求不同的系统能够采用相应的光纤通道技术,用以节约成本[2]。然而,市面上光纤通道设备接口传输速率的不统一,也带来了不同设备之间无法互连通信的问题。

为此,本文针对市面上不同速率接口光纤通道设备大量共存的现状,在研究光纤通道协议的基础上,对速率自适应功能进行分析与总结,设计了一种光纤通道速率自适应状态机,实现光纤通道模块的兼容设计,使其能与不同传输速率的光纤通道设备互连通信。该设计方案具有一定的通用性,可应用于其他光纤通道设备接口设计中,提高设备的可扩展性和兼容性,方便不同设备之间的互连和组网,降低研发以及生产成本。

2 速率自适应原理

光纤通道协议分层模型较为简单,一共分为5层,即FC-0层,FC-1层,FC-2层,FC-3层和FC-4层。其中FC-0层、FC-1层和FC-2层组成了物理和信号层,而FC-3层和FC-4层组成上层协议[3]。数据在网络传输过程中,底层协议为上层协议提供数据接口与设备抽象,上层协议为用户提供编程接口,并调用底层协议完成数据传输。

速率自适应功能作为FC-FS-4协议规定的可选功能,由FC-2层定义,是FC端口状态机的子状态机。FC端口状态机一共由三个子状态机组成,分别是速率协商状态机、发射器训练状态机和正常运行状态机[4]。其中,速率协商状态机、发射器训练状态机是可选功能,而正常运行状态机是必要功能。本文针对速率自适应状态机进行研究与设计。

速率协商状态机中,FC端口通过循环切换其支持的速率,直到它确定链路支持的最高速率[5]。本文所述“速率自适应”功能中的“速率”指的是比特传输速率。速率自适应功能能够使链路实现以端口和连接端口的基础结构共有的最高速率进行通信[6]。在速率自适应功能中,每个端口最多可支持4个不同速率,且每个端口支持的4个速率可不相同,但需保证相连的端口至少支持一个相同的速率,从而使链路能够正常进行通信。

2.1 速率自适应物理模型

图1 速率自适应链路物理架构

如图1所示,速率自适应算法只针对点对点的物理连接[7]。虽然速率自适应算法能够同时被两个端口执行,但是算法本身针对的是同一个物理端口。例如,当端口A开始速率自适应过程的时候,算法中所提到的发送器和接收器都是针对A端口的发送器和接收器,跟B端口无关。

速率自适应过程应当在链路物理状态相对稳定的情况下进行,否则,速率自适应算法可能不会将链路传输速率设置为两端口支持的最大公共速率,而是根据当前链路连接质量将速率设定在一个相对欠优的值。一旦链路以特定速率建立起连接,速率自适应过程将不会再次启动,除非监测到信号故障。

2.2 速率自适应算法

速率自适应算法一共由三个必要独立的子协商过程构成,依次是信号等待状态、主协商状态和从协商状态。以上三个子协商状态分别对应于速率自适应过程中的一段时间,在这段时间中,进行速率自适应的光纤通道N端口将会通过一些重复性的活动来确定链路连接的状态以及对方相连端口的状态,从而调整改变自己的状态,达到速率自适应的目的。在每一个子协商状态中,FC端口满足特定条件后就会进入下一子协商状态,最后,从协商状态结束,标志着FC端口成功完成速率协商,链路将以特定的传输速率进行通信,FC端口退出速率协商状态,进入端口状态机进行下一步操作[8]。

2.2.1 信号等待状态

在信号等待状态下,Tx端口以一个较低的速度循环切换Tx端口所支持的速率,以使对方的Rx端口能够进行同步。同时,Rx循环切换Rx端口所支持的速率,以寻求对方的Tx端口发送来的信号。此状态用来在端口连接后启动设备,使得Tx端口处于所支持的最高速率。

图2 信号等待状态流程图

2.2.2 主协商状态

在主协商状态下,Tx端口一开始处于所支持的最高速率,然后向下循环切换速率。Tx端口每改变一次速率都会维持在该速率一段时间,以使得其他设备能够与之进行通信。如果通过了同步测试并且Rx端口速率大于等于Tx端口速率,则将结束主协商状态,进入速率自适应从协商状态。

图3 主协商状态流程图

图4 看门狗计时器流程图

看门狗程序实际上是一个计时器,用来记录主协商过程同步测试持续的时间,当tneg大于或等于t_fail的时候,看门狗程序将引导整个系统回到信号等待状态。

2.2.3 从协商状态

在从协商状态下,Tx端口速率等于Rx端口速率。从协商状态用来测试Rx速率的稳定性以确认速率协商成功。如果由于不稳定或者丢失信号等发生了超时的现象,那么系统将会返回到等待信号状态。如果信号稳定,那么系统将进入正常运行状态。

速率从协商状态使用的看门狗程序与速率主协商状态中使用的看门狗程序是相同的。如果系统没有通过同步测试,那么系统将改变Rx端口的速率来寻求同步,同步后,Tx端口的速率值将被设置为Rx端口的速率值,然后启动对t_stbl的计时器tsync。同步时间超过t_stbl后,则认为系统成功完成速率自适应过程,进而可以进入FC端口状态机进行端口状态的调整。

图5 从协商状态流程图

3 速率自适应模块设计

对于速率自适应模块的设计,本文采用“自顶向下”的设计方法,按照FC-FS-4协议标准中相关章节的规定,对速率自适应算法步骤进行研究,逐步分解细化形成有限状态机,配以若干计时器实现速率自适应功能。设计出的速率自适应控制模块如图6所示。速率自适应控制模块由速率自适应控制状态机与外部接口组成,通过速率自适应控制状态机实现光纤通道速率自适应算法,通过外部接口与端口进行通信了解链路及端口的运行状态,并控制链路及端口的传输速率[9]。

该模块中,输入信号是FC原语序列和原语信号,用来指示链路的速率状况以及相连端口的状态。输出信号一部分由速率自适应控制模块输出的关于当前端口发送端和接收端的速率信息组成,另一部分与链路层配置管理模块、时钟复位同步模块和端口状态机模块相连,从而使速率自适应控制模块具有切换和控制链路层速率的功能。同时,模块内的速率自适应控制状态机模块用于依据当前端口和链路连接状态,使用速率自适应算法,完成算法对链路连接速率的调整。链路层配置管理模块使用Xilinx FPGA芯片的动态重配置端口(Dynamic Reconfiguration Port,DRP)对GTH高速收发器的速率进行动态改变,使得链路的物理状态与FPGA芯片内部信号一致,正确完成速率的协商与适配。DRP端口为用户提供了较为便捷的同步接口和控制信号,通过配置相应的DRP地址对应的参数值,可以对实现光纤通道链路层的管理[10]。

图6 速率自适应控制模块接口

图7 速率自适应算法状态转换

对于速率自适应控制状态机,由前文对速率自适应算法的研究与分析,可以总结出相应的速率自适应算法状态转换图,如图7所示。速率自适应过程可分为信号等待、速率自适应主协商、速率自适应从协商、正常工作4种模式。信号等待、主协商和从协商状态参照光纤通道协议的要求,对速率自适应算法的实现步骤需要再次进行细分,继续设计出相应的有限状态机[11]。正常工作模式是速率自适应过程完成后进入的工作状态,用以维持速率自适应的结果,并对链路信号进行监测,在信号故障或者链路重启时再次进行速率自适应过程。

在信号等待模式中,初始收发速率均工作于最大支持速率,并逐级下调收发速率,直至接收同步测试通过或信号未丢失才进入速率自适应主协商模式;在速率自适应主协商模式中,收发速率按照以切换接收速率为内循环、切换发送速率为外循环的方式进行同步测试,若接收同步测试通过时接收速率不小于发送速率,则进入速率自适应从协商模式,否则继续在速率自适应主协商模式中循环测试;在速率自适应从模式中,发送速率等于接收速率,通过切换收发速率直至通过同步稳定性测试后进入正常工作模式。在正常工作模式中,若遇到信号丢失或同步丢失超时或速率自适应请求来临,则重新进入等待启动模式。

4 仿真与验证

基于FC-FS-4协议对FC端口状态机的规定,本文针对Xilinx公司Kintex Ultrascale架构的XCKU115芯片,在Vivado集成开发环境下,采用Verilog编程语言,实现FC端口速率自适应功能[12]。由于光纤通道协议标准规定,支持速率自适应功能的光纤通道端口至多可支持四种不同的线速率,因而设计的16G模块向下与8G、4G和2G光纤通道模块兼容。仿真实验中,将待测16G光纤通道N端口与不同速率的其他N端口相连,通过观察两个端口协商所得链路通信速率,进行速率自适应功能的评估。

由仿真结果可看出,当speedneg_result_valid_o为1时,速率协商过程结束,此时,各连接条件下的仿真结果表明speedneg_transmit_speed_o和speedneg_receive_speed_o均相等,且为两相连端口支持的最大公共速率,表明端口收发端速率相同且工作在最优速率下,能够完成速率自适应功能。可以看到,待测模块与16G FC模块相连时,两个端口从16Gbps开始进行速率协商,由于两个端口均支持16G标准,因而速率协商过程中不需要频繁切换端口速率,经过若干个状态转换后,较快完成速率协商。而随着相连端口之间速率差距的增加,速率自适应过程所需时间也在增加,这是因为每次切换速率,端口都会保持该速率一段时间以期链路同步,而相连端口速率差距越大,端口需要切换速率的次数就越多,消耗的时间也越长。

5 结语

本文根据ANSI制定的FC-FS-4协议标准中对速率自适应功能的有关规定,对速率自适应算法进行研究与细分,设计出有限状态机和状态转换图,并提出了一种基于FPGA的光纤通道速率自适应功能的设计方法。实验与仿真结果表明:使用FPGA实现的端口速率自适应能够完成协议中规定的各项功能,能够根据相连端口所支持的传输速率以及链路连接质量,自适应地调节本模块收发端口的传输速率,与链路远端端口速率匹配,实现产品的向下兼容,有较强的可扩展性。该设计具有一定的通用性,可推广到不同应用场景下光纤通道设备的研发中,降低研发以及生产成本。

猜你喜欢

状态机端口链路
一种移动感知的混合FSO/RF 下行链路方案*
华为交换机端口Hybrid 模式的应用
天空地一体化网络多中继链路自适应调度技术
一种有源二端口网络参数计算方法
基于Verilog 的有限状态机编程方式及研究
一种端口故障的解决方案
FPGA状态机综合可靠性探究 ①
隔离型三端口变换器的H∞鲁棒控制
基于有限状态机的交会对接飞行任务规划方法
一种IS?IS网络中的链路异常检测方法、系统、装置、芯片