GFP内核加速LAN/SAN协议在SONET中的传输

文章出处:Linux 宝库 作者:未知 发布时间:2006-09-21
  在电信行业中,SONET网络无处不在,被广泛应用于语音和数据传输。目前的标准协议主要针对传输层,如针对语音和数据的ATM协议以及针对数据传输的HDLC或PPP协议。然而,因为这些协议都不是专门针对通过SONET/SDH网络进行数据传输而开发的,所以都会引起带宽效率的降低。
  
  此外,电信运营商希望通过增加自己网络上所传输的客户业务类型以及优化带宽利用情况来增加营收。这包括捕捉新市场机会,如存储区域网络(SAN-采用光纤通道(Fibre Channel))以及新兴的视频点播(利用DVB-SAI)应用。Fibre Channel和DVB代表了这些数据网络协议所定义的两类特殊客户业务或客户数据类型。
  
  通用成帧规程(GFP)能够支持多种客户网络协议,是能够满足广泛的数据传输应用需求的第一种封装机制。GFP被国际电信联盟(ITU)接受并作为G.7041/Y.1303标准,该标准提供了不同协议映射到传输网络的灵活及有效的机制。
  
  本文将讨论一种灵活的网络解决方案,能够满足系统供应商部署城域设备时提供前述服务的需要。赛灵思(Xilinx)公司所提供的解决方案包括利用Virtex-II Pro 器件提供全面集成的客户适配解决方案,直到利用Spartan-3 FPGA支持低成本的协议封装。Virtex-II Pro和Virtex-II Pro X中集成的高速RocketIO收发器支持多种客户协议,从而可以利用工作在高达1~11 Gbps速率的协议实现无缝通信,再结合嵌入式PowerPC处理器,不仅可在单片FPGA器件中支持客户适配能力,还可提供实时控制和处理能力。
  
  基于这些平台和赛灵思公司丰富的IP内核产品,新的GFP内核提供了一种完全可配置的解决方案,支持在快速变化的电信环境中实现具有动态适应能力的定制解决方案。
  
  GFP标准
  GFP采用的是将基于八字节的数据流直接映射到八字节同步流中,如同步光学网络/同步数字体系(SONET/SDH)。GFP帧进行了不规则扰码编码(scramble)处理以保证直流平衡(即使线路上传输的"0"和"1"的数量保持平衡),GFP帧的定界是通过内核头部的长度域来完成的。
  
  由于帧起始嵌入在GFP流中,因此为保证数据传输,两个GFP端点首先必须实现同步。单个端点的同步过程是这样的:先检测内核头部是否存在正确的CRC域,如果存在的话,就利用长度域指向下一个帧的起点,然后重复这一过程。如果在预先编程设定的重复次数内这一过程都是成功的,那么就实现了GFP流同步过程。
  
  GFP协议有些方面对于所有实现方式都是共同的。这包括诸如帧定界和同步;CRC插入/检测/校正以及扰码编码处理等选项。
  
  除了这些共同的方面以外,为了处理不同的协议映射方式,还需要一些特殊的客户功能。这包括针对两类客户数据映射方式的一些选项:帧映射(GFP-F)和透明映射(GFP-T)。表1列出了G.7041标准支持的所有GFP-F和GFP-T协议。
  
  GFP-F支持可变长度的帧数据(即包含可变长度的数据包)。此时一个客户帧(如一个以太网帧)被直接映射到一个GFP-F帧中。这时,在系统中需要有一个媒体访问控制器(MAC)来端接第2层协议。例如在以太网中,一个以太网MAC负责去除前导位和帧分界符,校验CRC,并将以太网帧交给GFP端点进行封装。
  
  GFP-T支持固定数据包长度和传输块编码(block-coded)固定速度流(如Fibre Channel,Ethernet,或ESCON/SBCON)。这种模式下生成的是封装了块编码数据的GFP帧,其中包括映射为64B65B块编码的客户协议8B10B数据和控制(符号)。
  
  透明映射协议不需要在传输前缓冲整个客户帧。相反,数据和控制符号都是按顺序处理的。八个8B/10B符号(加上一个标志位)组合为一个64B/65B块编码。这一块编码同时包括数据字符和控制字符。
  
  然后,八个64B/65B块代码被组合为一个超级块(65字节数据+CRC16)。多个超级块被组合为GFP净荷,其中每个帧中的超级块数量依赖于具体的协议(对于千兆以太网为95,对于光纤通道为13)。GFP-T不需要MAC功能,因为它对于所传输的协议实际上是透明的。
  
  到底是选择GFP-F还是选择GFP-T依赖于具体的应用和系统要求。GFP-F保证只传输实际数据,因此提供了更高的带宽效率;同时GFP-T则传输包括数据、帧代码、前导位以及闲置位在内的所有信息。
  
  GFP-F在系统中引入更大的延迟,因为在传输前必须先接收完整的帧。同时根据系统具体情况,这也意味着可能需要使用外部存储器。GFP-T不需要传输完整的帧,因此可达到更小的系统延迟。实际应用中,长距离传输会引入时延(由于传输介质的延迟),因此需要在客户适配层增加额外的功能来保证满足协议的时延要求。被称为“spoofing”(电子欺骗)的这一功能对于有些客户协议来说非常关键,例如光纤通道协议。因为这些协议对于传输时延有非常严格的要求。
  
  Xilinx GFP内核
  赛灵思提供的一种GFP IP内核解决方案支持所有这些协议并完全实现了ITU-T所定义的G.7041/Y.1303标准,包括端到端帧定界的系统级功能,客户管理和数据帧支持,以及基于通道的帧映射或透明映射配置。除了支持G.7041所规定的所有特性以外,Xilinx解决方案还提供了许多选项,可方便进行系统级集成和调试。
  
  利用Xilinx CORE Generator工具,设计人员可方便地配置GFP内核来满足自己的系统要求,可供选择的工作模式有三种:帧映射(frame-mapped),透明映射(transparent-mapped),或混合模式(mixed mode)。混合模式允许针对每个通道指定该通道是采用帧映射方式还是透明映射方式。还可以通过GFP主机接口方便地修改工作模式。
  
  赛灵思提供的GFP内核还提供了对线性扩展头(linear extension header)的可选支持,可以配置为多达10个独立通道。通过选择可选的通用主机接口,还可以实时修改控制和状态寄存器。
  
  利用CORE Generator系统,设计人员可对GFP内核的行为进行全面定制。特定的配置可决定GFP内核如何处理帧以及物理实现时所需要的资源。
  
  GFP内核分为一个MAP(映射)内核和一个UNMAP(解映射)内核。MAP内核在系统接口端接收客户网络协议数据(如以太网),进行数据封装并将生成的帧通过线路接口(如SONET)进行传输。
  
  UNMAP内核的工作过程正好相反,通过线路接口接收封装后的数据,对帧进行解映射来提取客户网络协议数据,然后再通过系统接口传输。GFP内核在线路接口和客户接口采用Xilinx LocalLink接口标准来直接连接至其它内核和参考设计。
  
  在帧映射模式中,客户为MAP内核系统接口提供一个完整的数据帧,这个完整的数据帧会在无停顿的情况下发送出去。在透明映射模式中,MAP内核自动处理下溢(underflow),在帧中插入填充字(PAD WORDS),这样客户就不必提供无中断的数据帧了。
  
  每一内核都有一个主机接口(一个PowerPC设备控制寄存器[DCR]总线),通过这个接口可以访问一组控制和状态寄存器。如果只需要缺省控制信号,可以将内核配置为不使用状态寄存器,这样可以减少所需要的资源数量。
  
  完整解决方案
  GFP的应用非常多,不同的系统架构和要求会带来不同的应用要求组合。
  
  例如,如果使用支持GFP(GFP-aware)的成帧器,那么就可以配置GFP内核来提供成帧器所不支持的功能选项,从而增强成帧器功能。此类应用的例子包括利用线性扩展头或透明映射模式实现通道化(channelization )。
  
  如果应用使用的成帧器不支持GFP,那么可配置GFP内核,以完成所有GFP功能,包括帧定界和同步、CRC以及扰码。
  
  利用CORE Generator软件,您可轻松创建满足您要求的内核,从而最小化所需要的FPGA资源。
  
  除了GFP内核以外,配合赛灵思提供的其它解决方案可以实现通过SONET进行Ethernet或Fibre Channel传输的完整系统。
  
  可配置PCS(CPCS):赛灵思应用指南XAPP739展示了如何利用Virtex-II Pro MGT,为一系列协议(FC [1G, 2G], ESCON/SBCON, 和GE)提供了一个可配置的PCS。利用PowerPC,它动态控制每个端口的PCS模式,在透明映射和帧映射模式下都可支持多达8个通道。
  
  SPI-4.2(System Packet Interface level 4 phase 2)IP解决方案提供了一个完全兼容的内核,可在网络和通信系统中实现POS(Packet Over SONET)物理层器件和链路层器件间的数据路径连接。这一SPI-4.2内核支持利用一个资源优化的OC-48(2.5 Gbps)接口和一个高性能(高于 14Gbps)接口通过OC-192成帧器和映射器,以及千兆和10G以太网数据链路MAC来连接网络处理器。
  
  1GE MAC IP内核解决方案提供支持IEEE 802.3-2002的一个半双工和全双工1 Gbps MAC控制器。这一MAC内核完成千兆以太网标准的链路层功能。利用该内核的千兆位介质独立接口(GMII),这一内核可接口到一个片外物理层(PHY)器件。做为其它选择,它还可利用通过Virtex-II Pro器件中集成的RocketIO收发器实现的一个带有 10位接口(TBI)的集成1000BASE-X PCS,或者一个1000BASE-X PCS和PMA。
  
  缓冲器管理器参考设计展示了如何利用外部DDR-RAM来按通道缓冲数据。
  
  Fibre Channel(光纤通道)参考设计突出了通过SONET/SDH网络传输Fiber Channel业务时除了GFP标准以外的一些特殊要求。包括解决Fibre Channel时延敏感问题的一个流控制例子。
  
  Fibre Channel(光纤通道)参考设计展示了通过SONET/SDH网络传输Fiber Channel业务如何实现Fibre
  
  Channel的一些特殊要求。当配置为透明模式时,GFP内核本身并意识不到所传输的具体协议格式。然而,Fibre Channel标准采用了一种时延敏感的流控制机制。为成功地实现这一机制并满足苛刻的时延要求,流控制部分必须进行本地端接,而不能跨越SONET/SDH网络。这就需要越出GFP内核范围之外的一些专门针对Fibre Channel协议的预处理功能,本