大多数嵌入式产品都需要某种形式的网络或通信接口。以太网(Ethernet)成本低、几乎无处不在,且可以利用TCP/IP等因特网协议连接因特网,因而成为目前嵌入式产品中应用最广泛的网络接口之一。
根据目标应用的不同,网络子系统的要求变化相当大。简单的远程控制和监控应用只需要每秒数千比特的传输能力,而高端存储可视频应用则需要持续的每秒千兆比特的吞吐能力。
任何应用都有包括价格、性能和功能在内的一组基本要求。而设计产品的过程中要在这些基本要求之间进行适当折衷。此外,在产品设计以及其生命周期中,为了适应市场情况,这些基本要求也会发生变化。因此,利用灵活可扩展的平台实现产品设计非常重要,因为灵活可扩展的平台允许在不改变平台或供应商的情况下进行设计折衷和设计修改。
在本文中,我们将讨论与网络性能相关的一些应用要求,相应的设计折衷,并给出满足要求的一些设计实例。
应用要求
根据OSI标准,以太网属于物理层接口。在用于传输和网络层的多种协议标准中,TCP/IP协议组是最常用的标准,特别是在嵌入式系统中,已经成为网络传输的事实标准。
为简单起见,在本文的其它部分,我们将使用TCP载荷作为性能比较的主要指标。表1列出了一些典型应用以及相应的TCP/IP载荷吞吐能力要求。
表1:不同应用的网络吞吐量要求(略)
赛灵思嵌入式网络解决方案
赛灵思嵌入式解决方案可提供构建范围广泛的嵌入式网络子系统所需要的所有组件和资源。赛灵思嵌入式解决方案的一个主要优点是其处理器、IP内核以及软件组件的灵活性和可扩展能力。其强大的灵活性允许根据需要开启或禁止处理器、IP内核以及软件平台的高级功能,并且可以对许多独立参数进行精细调整,直到在软件级满足应用的要求。
此外,利用建模工具可以识别任何关键性能的软件功能,并将其分流至适当的硬件加速器来完成。
分别看一下三种不同以太网子系统的例子。设计人员可以利用Xilinx Platform Studio(XPS)完成设计,并满足此类典型应用的性能要求。每种设计具有不同的系统架构,包括处理器配置、Ethernet MAC IP配置以及存储器接口。此外,这些例子中还突出了在这些硬件子系统中可以使用的不同TCP/IP软件栈。由于硬件构建模块和软件层都是可定制的,因此设计人员可以根据应用的需要对这些示例系统进行增减。
简化以太网子系统
对于远程监视或控制应用中所需要的简单网络接口来说,如图1所示的最小化网络子系统就足够了。在此类应用中,TCP/IP性能要求较低(< 1兆比特/秒),因此可以使用LwIP(简化版因特网协议栈),而不需要RTOS实时操作系统。
图 1 简化以太
网子系统(略)
利用不带中断的Ethernet Lite IP在简单的查询模式下实现设计就可以了。同时还可以将全部软件,包括简单的应用层,都存储在Xilinx FPGA中的本地存储器中。对于这一基本网络子系统,还可以增加其它需要的I/O接口,如RS-232 UART和GPIO。如图1所示。
典型的快速Ethernet (10/100) 子系统
通 过 对前面的最小系统做一定的修改,可以实现如图2所示的更为典型的10/100以太网解决方案,从而获得更高的TCP/IP吞吐能力(10~50兆比特/秒)。主要的变化有:
为Ethernet MAC增加直接存储器访问(DMA)引擎,实现中断驱动方式。
为系统增加外部存储器,为处理器增加缓存。
利用更复杂的TCP/IP栈,如Linux (μClinux)系统TCP/IP协议栈。
利用XPS中的基本系统构建向导(Base System Builder wizard)可以容易地创建这样的MicroBlaze TM 设计。
图 2 10/100
以太网(略)
高性能千兆位以太网子系统
对于需要100 兆比特/秒以及TCP/IP吞吐能力的应用,可以利用专用Xilinx FPGA系列器件中内建的三模式以太网MAC硬IP,如图3所示。为获得高端应用所需要的500+ 兆比特/秒吞吐能力,需要同时配合使用环形缓冲(scatter/gather)DMA(SGDMA)等高级DMA技术,以及数据对齐引擎(DRE)和校验和分流(CSO)等FPGA硬加速器。
图 3 千兆比特
以太网(略)
几款Xilinx FPGA器件上实现的高性能PowerPC 405内建了运行在450 MHz 的16Kb指令和数据缓存,可以支持Linux、VxWorks、Integrity和QNX等软件平台,因此可设计出带有高性能网络接口的系统。
图4中的表对于前面所给出的三种网络子系统的TCP/IP载荷吞吐能力进行了比较。需要指出的是,由于三种子系统性能差异巨大,因此Y轴采用的是对数坐标。
图 4 不同赛灵思网络解决方
案性能比较(略)
影响TCP性能的因素
许 多因素都会影响到TCP性能,包括硬件和软件。下面列出了这些会影响系统TCP吞吐能力的相关因素:
1. 处理器
a.频率:TCP/IP协议通常需要将载荷从用户缓存拷贝到协议栈控制的缓存,然后再将其拷贝到以太网MAC的FIFO中去。这些存储器拷贝操作有些是以软件方式完成的,因此需要处理器的处理周期。同时处理器还参与TCP校验和的计算,计算过程中需要将整个数据包从存储器读出。更快的处理器配合更快的存储器能在更短的时间内完成这些操作,从而可以保持较高的数据速率。
b.功能:TCP/IP协议栈需要对数据包的头和载荷进行访问处理。做为头处理的一部分,典型的访问包括读取头信息的特定位。因此每个数据包的处理过程都需要一些移位、相加和简洁操作。在可配置的MicroBlaze这样的软处理器中,必须开户完成移位或乘法的指令才能获得更高的性能。
c.缓存:数据包从以太网MAC被拷贝到存储器中之后,将会通过TCP/IP协议栈的不同层。然后TCP/IP栈中的数据包处理代码会被执行。将所有代码和数据包读到缓存中会大大提高处理器效率并提高以太网带宽。
2. 存储器:存储器访问时间和延迟对于系统性能有巨大的影响。典型应用中,TCP/IP协议栈系统并不存储在本地存储器中,程序和数据存储在外部存储器中。存取数据和指令所花费的时间对于性能有很大影响。存储器因素通常与缓存大小有关。提高指令和数据缓存大小有助于减轻外部存储器延迟和存取时间所带来的影响。
3 . 以太网MAC:在FPGA中实现的以及网MAC外设提供了很大的灵活性,特别是在工作模式(无DMA与SGDMA)、数据包FIFO深度、DRE支持、CSO支持以及巨型帧(jumbo frame)支持方面。这些功能中的每一项都会影响到MAC所需要的资源,以及其能够从处理器分流的功能多少,从而对整体性能造成影响。
4 . TCP/IP协议栈:灵活的优化TCP/IP协议栈是影响系统性能的重要因素。对硬件CSO和零拷贝API(数据不需要从应用拷贝到协议栈缓存)以及可配置栈选项等TCP/IP栈功能的支持都需要系统性能支持。
5. 消息大小:消息(应用数据)的大小是影响性能的另一个因素。随着消息变小,TCP/IP协议头(如TCP、IP和以太网头)的开销增加,从而会减小总体的数据载荷吞吐能力。
结论
嵌 入式性能对网络性能的要求差异很大,这些要求在产品生命周期中也在不断演变。为了让设计满足范围如此宽且在不断变化的要求,需要灵活可扩展的解决方案。
赛灵思公司的PowerPC 和 MicroBlaze处理器、全面的设计工具和可定制IP在内的嵌入式解决方案可帮助设计人员构建可扩展的网络子系统,其性能可以满足范围广泛的不同应用的需要。 |