在FPGA中集成以太网ASSP功能以提高第二层交换机的灵活性
发布时间:2008/5/29 0:00:00 访问次数:527
不同的供应商提供各种各样的用于多端口以太网交换机的特殊应用标准产品(assp),以满足多种应用需求。但是,这些assp针对典型的联网应用而设计,并不能为具有奇数端口配置或者各种速率端口配置等特殊特性的应用提供最佳解决方案。本文将讨论如何利用低成本的可编程逻辑架构实现以太网第二层交换机,以满足这些需求,并提供比assp架构更高的集成度和更强的可定制性。
以太网交换机assp通常只能实现物理以太网接口,如用于快速以太网端口的介质无关接口(mii)、用于千兆以太网端口的千兆mii(gmii)。在有些情况下,这些接口需要fpga等桥接器件。例如,在基于sonet的数据包或者sonet以太网应用中,一个或多个端口需要连接到pci总线或者sonet/同步数字系列(sdh)成帧器的情况下;或者在voip应用中,一个或多个端口需要连接到语音处理器的情况下。图1给出了这种实现的例子。
此外,以太网交换机assp可实现固定数量的端口(如12、16、24个等)以及端口的固定分配形式,例如8个10/100以太网端口加上一个千兆以太网端口。标准以太网交换器很难满足不同数量端口或者端口速率不同的各种应用需求,而且也不可能用assp实现具有2gbps等非标准以太网端口。
基于可编程逻辑的以太网交换器
为克服以太网交换机assp的局限性,altera的合作伙伴morethanip公司开发了一种基于altera fpga的灵活的以太网交换引擎。设计工程师利用这种自适应引擎能开发出适用于以下定制化设计的单芯片解决方案:实现pci、pos-phy/系统数据包接口(spi)等附加功能,以完善以太网交换的功能;提供与sonet/sdh成帧器或voip处理器等多种标准器件的连接;通过pci/pci-x提供与专用背板或者主计算机的连接。图2给出了这种集成应用的例子。
以太网交换引擎包括硬件交换引擎和32位软核嵌入式处理器,以执行学习(learning)、老化(aging)和移植(migration)等表格管理任务。利用嵌入式处理器,设计工程师还可以实现其它高级功能,例如生成树算法、以太网终止或其它特殊用户任务。交换器支持可编程的端口数量,这利用简单的基于主/从fifo的接口就能实现。这些接口能够与任何第一层应用或者标准板级接口相连接。
交换引擎可在altera的stratix ii和cyclone ii器件中得以实现,它利用nios ii嵌入式处理器进行表格管理。当在最新的高密度fpga中得以实现时,以太网交换引擎能够提供高达8gbps的交换能力。可灵活地将该带宽分配给任意数量的端口,以满足定制应用的特殊需求。例如,可以配置交换器以实现4gbps以太网端口和12个快速以太网端口,或者利用多个200mbps端口实现2gbps端口等非标准配置。为提高特定业务级别的服务质量(qos),交换器还支持定制配置。
帧交换基于与线性搜索相关的两级哈希代码查找表。这种解决方案能提供高性能和足够的灵活性,以增加交换器标准实现(2048个地址)所支持的mac地址的最大个数。为了实现最大性能和非阻塞运行,帧交换以线速运行,不需任何软件或者固件开销。
32位nios ii处理器管理交换查找表(lut)。为控制交换器,需开发固件执行以下任务:mac地址学习、lut输入老化、端口移植以及哈希代码和表格管理。
交换器还可以在每个输入端口实现分级引擎,在每个输出端口实现两个优先级排队,以便为关键业务级别提供qos。交换器的硬件和软件部分针对性能进行了设计,并紧密结合在一起。另外,交换器架构很容易扩展到支持更大吞吐量,比如10gb交换器内核。
当输入端口接收到一个帧后,帧头中的几个信息段被提取出来,包括以太网mac地址、vlan标签(ieee 802.3q)、帧pdu以及因特网协议(ipv4和ipv6)报头等。这些信息被用于确定帧的类型,以便用8个优先级对帧进行分级,并将帧存储在高和低优先级的输出队列中。利用一组可编程表格进行分级,由嵌入式nios ii处理器和可编程优先级判定树进行控制。
队列仲裁执行严格的优先级和权重循环(round-robin)算法来控制输出队列。另外,基于fpga的实现所具有的灵活性使开发人员能够使用任何定制的专有仲裁机制。
基于可编程逻辑的以太网交换器
为克服以太网交换机assp的局限性,altera的合作伙伴morethanip公司开发了一种基于altera fpga的灵活的以太网交换引擎。设计工程师利用这种自适应引擎能开发出适用于以下定制化设计的单芯片解决方案:实现pci、pos-phy/系统数据包接口(spi)等附加功能,以完善以太网交换的功能;提供与sonet/sdh成帧器或voip处理器等多种标准器件的连接;通过pci/pci-x提供与专用背板或者主计算机的连接。图2给出了这种集成应用的例子。
以太网交换引擎包括硬件交换引擎和32位软核嵌入式处理器,以执行学习(learning)、老化(aging)和移植(migration)等表格管理任务。利用嵌入式处理器,设计工程师还可以实现其它高级功能,例如生成树算法、以太网终止或其它特殊用户任务。交换器支持可编程的端口数量,这利用简单的基于主/从fifo的接口就能实现。这些接口能够与任何第一层应用或者标准板级接口相连接。
交换引擎可在altera的stratix ii和cyclone ii器件中得以实现,它利用nios ii嵌入式处理器进行表格管理。当在最新的高密度fpga中得以实现时,以太网交换引擎能够提供高达8gbps的交换能力。可灵活地将该带宽分配给任意数量的端口,以满足定制应用的特殊需求。例如,可以配置交换器以实现4gbps以太网端口和12个快速以太网端口,或者利用多个200mbps端口实现2gbps端口等非标准配置。为提高特定业务级别的服务质量(qos),交换器还支持定制配置。
帧交换基于与线性搜索相关的两级哈希代码查找表。这种解决方案能提供高性能和足够的灵活性,以增加交换器标准实现(2048个地址)所支持的mac地址的最大个数。为了实现最大性能和非阻塞运行,帧交换以线速运行,不需任何软件或者固件开销。
32位nios ii处理器管理交换查找表(lut)。为控制交换器,需开发固件执行以下任务:mac地址学习、lut输入老化、端口移植以及哈希代码和表格管理。
交换器还可以在每个输入端口实现分级引擎,在每个输出端口实现两个优先级排队,以便为关键业务级别提供qos。交换器的硬件和软件部分针对性能进行了设计,并紧密结合在一起。另外,交换器架构很容易扩展到支持更大吞吐量,比如10gb交换器内核。
当输入端口接收到一个帧后,帧头中的几个信息段被提取出来,包括以太网mac地址、vlan标签(ieee 802.3q)、帧pdu以及因特网协议(ipv4和ipv6)报头等。这些信息被用于确定帧的类型,以便用8个优先级对帧进行分级,并将帧存储在高和低优先级的输出队列中。利用一组可编程表格进行分级,由嵌入式nios ii处理器和可编程优先级判定树进行控制。
队列仲裁执行严格的优先级和权重循环(round-robin)算法来控制输出队列。另外,基于fpga的实现所具有的灵活性使开发人员能够使用任何定制的专有仲裁机制。