当电信运营商和有线电视业务提供商开始向客户推出决定性的举措和VoD服务时,原始设备制造商正全力开发基于IP(Internet协议)的系统,包括PON、CMTS、IP DSLAM以及其他的接入和最后一英里设备。普通的基础物理层对此使用的是无处不在的以太网技术,目前与高级的QoS覆盖结合在一起。工程师正投入更多的努力把交换以太网背板连接到系统线卡,特别是网络处理器。系统设计师常选择以太网交换机和有独立特性的网络处理器,而很少考虑把这两者互联所带来的挑战。工程师仅需要面临开发桥、整合解决方案和节约成本实现设计的挑战。由于接口以很高的速率运行,所以还必须关注功耗。
典型的基于以太网的系统结构由以太网交换机所组成,依次由几个连接到一连串的基于网络处理器的线卡的10Gbps链路组成。参见图1。
在交换10Gpbs系统,以太网交换机结构提供一系列XAUI端口。每个XAUI端口有4个3.125Gbps的SERDES。这些串行端口通过背板或者中间结构完美地连接到线卡。
有些以太网交换机包括端??换、流量控制或者用于服务质量要求的地址信息,在原来的以太网标准中没有服务质量要求的内容。为了保持10G线速,这些XAUI端口的运行速率要高于指定的每个通道3.125Gbps的速率。运行在3.75Gbps的BROADCOM HiGig+协议就是一个例子。运行这些所有权协议时,额外的开销允许客户开发自定义的应用交换,通过网络智能地传递通信量。此外,针对基于IP的应用,这些交换堆栈协议具有无约束的可量测性。
拥有网络处理器的线卡常用SPI4.2接口。SPI4.2是流行的运行速率可以超过10Gbps的高速并行接口,用于网络处理器、通信流量管理器、媒体接入控制(MAC)等。SPI4.2使用并行的16位宽的LVDS发送和接收源同步接口。为了处理流量控制,在状态通道有额外的电路。在SPI4.2链路上发送的数据作为一个包,或者猝发的多个包,并拥有控制头描述每个猝发。每个包控制头还识别与猝发数据相关的SPI4.2通道。这些位可用来把整个链路分割成各种通道。SPI4.2规范支持每个链路多达256个通道。很明显在SPI4.2和XAUI之间存在着很大的物理和协议差异。由于这个原因,SPI4.2接口必须桥接到XAUI链路。
为了将XAUI(或者更快时钟的XUAI)链路连接到SPI4.2接口,要构建一个能够引导数据通过4个主要单元的桥。针对XAUI至SPI4.2桥,主要单元为:(1)XAUI SERDES终端;(2)10G MAC;(3)协议转换逻辑;(4)SPI4.2接口。此外还要有微处理器接口,用来配置每个桥的单元。参见图2。
MAC的10Gbps数据。利用含有SERDES后紧跟PCS块的FPGA是理想的,采用这种结构可以直接格式化XAUI数据至XGMII。这样节省了逻辑并减少了功耗。
低功耗、工程预制的10GbE MAC10G MAC逻辑接收XGMII数据并提取以太网的帧。首先由10G MAC识别Packet SOP的起始和Packet EOP头的结束。由于以太网的数据以可变大小的包发送,MAC必须能够处理各种大小的包,包括8K长度的超长包。一旦恢复了数据,进行CRC校验保证数据的完整性。数据进入MAC时,在接收端做这项工作。如果CRC校验失败,丢弃坏的帧并建立错误标志。在发送端MAC必须产生CRC码。MAC还需要保持对数据的统计,支持管理信息数据库。此外,10G MAC还有对接收到的包进行地址过滤的功能。可以有几个过滤选择,取决于终端用户的应用。允许通过桥的数据包,从MAC流出,不经过滤,写入6?位宽的FIFO,再送至协议转换逻辑。
尽管在FPGA中可以实现10G MAC,它们要消耗4千多个LUT,因此消耗许多功率。作为选择的方法,相对基于FPGA的实现,用ASIC工艺的嵌入式10G MAC功率减少50%,这样就有充裕的FPGA门实现用户逻辑。
通过SPI4.2桥接到网络处理器 以太网包通过10G MAC的地址过滤标准,进入6?位FIFO之后,协议逻辑转换6?位宽的FIFO逻辑并在通过它到达SPI4.2接口前把它转换为128位字。在协议逻辑中的这些FIFO用来控制接收和发送方向的数据流。如果通信发生拥堵,10G MAC与协议逻辑一起保证数据帧停止。还有一个微处理器接口,可通过各种控制寄存器调整流量控制。经过标准的Ethernet X_ON和X_OFF流控制命令,协议逻辑控制至10G MAC的流量。于是协议逻辑间接地转换流量控制到基于SPI4.2的状态命令。
SPI4.2有两个方案在一个链路里实现流量控制。第一个是基于credit的流程。对每个通道,credit在链路的每一方进行交换。如果接收方信道很拥堵的话,它将不再给予发送方credit,直到拥堵被清除。第二个流量控制方案是基于状态。在此模式,报告排队的状态,比如starved或者satisfied,队列中充满数据时停止传送。基于状态的流量控制用得较多,因为它易于实现。例如莱迪思的SPI4.2至XAUI桥的IP使用基于状态的流量控制。
这里是一个流量控制的例子,进入方向是从网络处理器到以太网交换机。网络处理器完成它的包时,它询问其状态通道的状态。可能的状态是starved/hungry,或者satisfied,这是由桥内的入口FIFO的级和电路板上微处理器接口的流量控制寄存器来决定。倘若不要求流量控制,网络处理器初始化传输,并传送包到桥的SPI4.2接收接口。当包进入桥时,进行128到6?位数据宽度转换,数据写入入口FIFO,具有用户可编程阈值支持存储、发送和切入操作。一旦超过了用户可编程传送阈值,将会告知10G MAC一个包有效。于是10G MAC校验XAUI接口流量控制的状态,如果无效的话,传送这个包。在出口方向的流量控制有相似的数据流,但是需要将出口FIFO阈值设置到较高,以便提供SPI4.2通过XAUI的较高带宽。例如运行HiGig+产生12Gbps的带宽。然而SPI4.2接口经常运行400-500MHz DDR,提供12.8–16Gbps。因为流量控制逻辑是用FPGA门,以及内置存储器块来实现的,因此可以提供更加复杂的方案。
*多个以太网通道上面讨论了协议转换逻辑,其中假设10Gbps源于单个10G管道。这对于许多到以太网交换机的网络处理器来说是足够了。然而某些设计中,10Gbps或者12Gbps管道需要分成多个通道。例如如果一个以太网交换聚合12个1Gbps以太网线,也许要求协议转换逻辑将12Gbps管道分割成12个通道。另外一个例子是线速率超负荷。如果24个链路的总带宽小于12Gbps聚合带宽,那么或许要分割24个通道。这些额外的通道需要更多的FIFO和逻辑来管理它们。 桥的设计需要考虑配置的类型。无论用一个或者多个通道,数据必须通过协议逻辑先到SPI4.2接口,然后再到网络处理器。
SPI4.2功耗与动态对齐SPI4.2从FIFO读数据或者写数据至FIFO,于是经16位源同步SPI4.2线猝发数据。为了达到很高的可靠的SPI4.2速度,大多数高性能网络处理器进行动态对齐。动态对齐接口是数据位可以依据时钟进行移入。使用动态对齐时,16个LVDS I/O的每个可以运行达1Gbps,总的最大吞吐量为16Gbps(16x1Gbps)。因为这个接口以这么高的速度运行,它通常要消耗几瓦,更不用说FPGA中的上千个LUT了。由于有了10GbE MAC,把FPGA与ASIC门做的SPI4.2逻辑相混合是最佳的。嵌入式SPI4.2核节省了数千个LUT,并将功耗减少到接近1瓦。
本文小结
对于许多基于以太网交换机的系统,XAUI至SPI4.2桥是必须的。FPGA的价值是提供灵活选择任何数量的网络处理器和以太网交换器件,提供用户化的 桥接方案,完成聚合多个以太网流,以及在同一器件上实现多个桥。然而因为设计总要考虑成本,桥接解决方案的低成本,低功耗,消耗很少资源的特点是很关键的。LatticeSCM FPGA系列混合了实现10G MAC和SPI4.2接口的硬ASIC块。参见图3。其余的FPGA逻辑和存储器有足够的资源来实现桥接功能。要求单个通道SPI4.2至XAUI(或者相关的基于以太网协议)桥时,紧凑的17×17mm 256微距球栅BGA封装的LatticeSCM15 FPGA可以实现整个设计,功耗低,设计成本低且尺寸很小。