基于网络处理器IXP1200的以太网上联卡设计
据建立的MAC地址与ATM PVC的对应关系,将其转换成ATM信元流,再通过LVDS接口送往核心卡。
在上联卡中,ATM信元和以太网帧之间的转发是由网络处理器中的微引擎完成的。要使以太网上联卡不成为网络的瓶颈,微引擎必须能以线速来处理数据包(以太网帧或ATM信元),即在下一个数据包到来以前,完成对当前数据包的处理。因此,每个数据包的最大允许处理时间应小于数据包之间的间隔时间。
在进行设计时,应根据以太网上联卡具体功能的实现,并结合网络处理器IXP1200所拥有的硬件资源来进行合理的分配使用。这样可以最大限度地发挥系统性能,本设计中,以太网上联卡需要实现以太网接收处理、CRC计算产生、ATM发送处理、ATM接收处理、CRC校验、以太网发送等六个主要任务,而由于IXP1200刚好拥有六个微引擎,因此,将这六个单独的任务分配在每个微引擎上,并在处理上将其搭建成多流水线结构的程序架构,可以取得很好的处理效果。图2给出了网络处理器IXP1200的六个微引擎的任务分配方案,该分配方案的整个处理流程可以分为两个方向,一是上行方向,即ATM到以太网的数据映射,二是下行方向,即以太网到ATM的数据转换。
在上行方向,ATM接收引擎把收到的ATM信元组装成AAL5 PDUs,并根据封装协议转换成以太网帧,同时建立相应的MAC地址与ATM PVC的对应关系,然后送到CRC-32校验队列。接下来由CRC-32校验引擎对队列中的PDUs执行CRC校验并把PDUs送到以太网的发送队列。而以太网发送引擎的任务则主要是把发送队列中的以太网帧从以太网上联口发送出去。
在下行方向,以太网接收引擎接收来自以太网上联口的以太网帧,并将其封装成AAL5 PDUs后送到CRC-32产生队列,同时根据建立的MAC地址与ATM PVC的对应关系进行查找以得到ATM信元头部。接着由CRC-32产生引擎为队列中的PDUs生成CRC校验值,并把PDUs送到UBR队列。最后由ATM发送引擎把PDUs分割(segment)成ATM信元后,从ATM端口发送出去。
3 以太网上联卡的硬件设计
图3所示是以太网上联卡的硬件电路,该硬件电路主要包括四个部分:以太网处理单元、IXP1200网络处理单元、FPGA控制逻辑单元、ATM及LVDS背板总线处理单元。
3.1 以太网处理单元
以太网处理单元是上联卡的上联处理部分,用于连接路由器或者三层交换机等数据网络设备。该单元主要包括RJ45接口、变压器隔离电路、LXT9763以太网物理层芯片和IXF440 MAC层芯片。其中RJ45接口以及变压器隔离电路是以太网处理接口的标准单元电路,LXT9763主要完成802.3协议中描述的物理层功能,它主要通过MⅡ总线和IXF440芯片相连接。IXF440芯片主要完成802.3协议中描述的MAC层功能,同时提供与网络处理器的IX总线接口,实际上,该芯片是网络处理器中IX总线的SLAVE设备。
3.2 IXP1200网络处理单元
IXP1200网络处理单元是整个以太网上联卡的核心,它主要通过IX总线与外部芯片进行相连,是IX总线的MASTER设备,所有的处理软件均运行在网络处理器中。
IXP1200网络处理单元由网络处理器IXP1200及外部芯片(如SDRAM?SRAM?Flash等)构成。SDRAM和SRAM单元是可共享的智能单元。其中SDRAM单元可以被IXP1200的StrongARM内核以及微引擎和PCI总线上的设备直接访问,这样可以支持SDRAM与微引擎或IX总线以及PCI总线之间的快速移动数据,而SRAM单元则具有比SDRAM单元更快的访问时间,通常可以用来存储需要快速查找的表格,以提高性能。
3.3 FPGA控制逻辑单元
由于在英特尔公司所提供的网络处理器解决方案中,外部的数据接口是IX总线,该总线是英特尔提供的专有数据总线,而以太网上联卡中所采用的ATM芯片的外部接口为标准的UTOPIA总线。所以,为了实现芯片间的互联,应采用FPGA来完成IX总线和UTOPIA总线间的变换,即在IX总线端实现IX总线的SLAVE接口,在ATM端实现UTOPIA 总线的SLAVE接口。通过该FPGA逻辑控制单元可为ATM到以太帧的转换提供物理层的控制功能。FPGA逻辑控制单元的实现对于完成以太网上联卡的设计非常关键。
3
- 用ARM和FPGA搭建神经网络处理器通信方案(07-19)
- 用于以太网物理层时钟同步PLL的VCO设计(04-01)
- 可靠和易用的 LTPoE++ 标准将 PoE 功率扩展至 90W(11-08)
- 高效的以太网供电解决方案降低了总体成本(06-07)
- 以太网供电应用中可用设备功率的估算(10-19)
- Xilinx Virtex UltraScale 开发平台(06-12)