嵌入式系统与桌面PC结构非常不同,但其底层技术发展却是一样的,而且遵循着类似发展趋势。当桌面PC转向64位架构来满足不断增长的存储器要求时,嵌入式系统也由于同样的原因快速转向32位处理器。
桌面/服务器计算市场主要是围绕x86架构,大多数创新和差异都在系统级,如双核、四核或多核中央处理架构、集成图像处理器单元和存储器控制器等等。同样,嵌入式系统则主要围绕简单的32位RISC处理器,多核架构、集成外设以及可配置处理等系统级发展,使得设计人员能够快速适应不断变化的应用要求。
根据iSuppli的研究报告,2007年32位微控制器(MCU)市场将超过8位MCU市场。如图1所示,32位MCU市场的增长速度超过了半导体市场其它部分的增长速度,而8位MCU市场的份额过去几年时间里则有所下降。
这一趋势的主要推动力是嵌入式系统中软件内容和复杂性的不断增加,因此直接产生的后果是需要更宽的存储器总线(32位)来满足软件程序所使用的代码和数据要求。与传统微处理器不同,32位处理器不需要分段等存储器管理技巧就可以处理更大的存储器空间,因此使编程更容易。8位MCU必须采用难学难用的汇编语言来满足小存储器空间限制(少于32K字节),而许多32位嵌入式应用则可以利用C/C++来编程,从而提高了嵌入式软件开发人员生产力。更为重要的是,越来越多的操作系统(实时和非实时)都提供现成的驱动程序和软件库,从而使软件开发人员能够集中于应用本身的开发。
集成降低成本
在摩尔定律的指引下,越来越细的硅工艺线宽使得32位嵌入式解决方案的成本不断降低,从而可以满足更多的应用对价格的要求。此外,集成外设和片上存储器进一步降低了元器件和总体材料清单成本。通过集成针对手机和游戏机等垂直应用而优化的外设,许多器件的价格大大降低,直接推动了市场增长。
价格压力还导致只能在这些系统中集成一组固定的外设,因此通常的外设组合是面向大批量应用的。然而,不可能有适用于所有应用的万能器件,因此许多小批量、中等规模甚至大批量应用都无法直接利用成品集成解决方案。其结果是设计人员必须采用额外的芯片来扩展外设、分流处理器的负担,或增加胶合逻辑。这也是可配置处理解决方案产生的原因。
可配置32位处理
根据GartnerDataquest的报告,如图2所示,基于FPGA嵌入式处理方案的应用正在增长,到2010年,约40%的FPGA设计将包括嵌入式处理器。因为能够定制满足特定应用或产品的要求,嵌入系统设计人员正在越来越多地采用基于FPGA的可配置处理解决方案。这一方法的主要优点是可通过集成降低成本,同时还可实现产品在市场上的差异化。
通过选择同一FPGA系列中的不同器件,或者将设计重新适配到新的FPGA器件中,能够针对更高性能、更低成本、或者不同的I/O标准进行个性设计。这样可以降低设计过时的风险,从而保证设计是未来可用的。对于必须有长使用寿命的产品(如汽车或工业应用),这是特别关键的一个因素。
图1:32位MCU市场的增长速度超过了其它类型的MCU的增长速度
图2:基于FPGA嵌入式处理方案的应用正在增长
可配置处理系统的配置(或定制)的层面包括:
处理器配置
1.乘法器、除法器、浮点单元以及其它。
2.指令或数据缓冲配置。
3.协处理器或硬件加速器。
系统配置
1.I/O外设选择、定制、DMA选择。
2.存储器外设选择、定制。
应用配置
1.RTOS选择、定制。
2.应用库/中间件定制。
许多产品都包括需要某种形式网络或通信接口的嵌入式系统。由于以太网成本低、几乎无处不在,并且可以利用TCP/IP等互联网协议连接互联网,因此以太网是目前在嵌入式产品中应用最广泛的网络接口之一。根据目标应用的不同,网络子系统的要求变化也相当大。简单的远程控制和监控应用只需要每秒数千比特的传输能力,而高端存储或视频应用则需要持续的千兆比特级的吞吐能力。
为简单起见,我们将使用TCP载荷吞吐能力做为性能比较的主要指标。表1列出了一些典型应用以及相应的TCP/IP载荷吞吐能力要求。
表一:不同应用的网络吞吐量要求
可配置的嵌入式网络
基于FPGA的处理解决方案提供的强大灵活性允许您根据需要开启或禁止处理器、IP内核以及软件平台的高级功能,并且可以对许多独立参数进行精细调整,直到在软件一级满足应用的要求。此外,利用建模工具可以识别任何性能关键的软件功能并将其分流至适当的硬件加速器或协处理器来完成。
让我们来分别看一下可利用IP内核满足典型应用性能要求的三种以太网子系统的例子。每种设计具有不同的系统架构:包括处理器配置、以太网MACIP配置以及存储器接口。此外,这些例子还突出了可与这些硬件子系统配合使用的不同TCP/IP软件协议栈。由于硬件构建模块和软件层都是可定制的,因此您可以根据应用的需要对这些系统进行增减。
简化以太网子系统
对于远程监视或控制应用中所需要的简单网络接口来说,如图3所示的最小化网络子系统就足够了。在此类应用中,TCP/IP性能要求较低(<1Mbps),因此LwIP(简化版互联网协议栈)这样的小TCP/IP协议栈(不需要RTOS实时操作系统)就足够了。
图3:规模最小的以太网系统
这可以使用不间断的以太网LiteIP在简单的查询模式下实现。全部软件,包括简单的应用层,可全部存储在FPGA中的本地存储器中。如图3中所示,其它需要的I/O接口,RS-232UART和GPIO,可以增加到基本子系统中。
图4:典型的10/100以太网系统架构
通过对图3中的最小系统做一定的修改,可以实现更高TCP/IP吞吐能力(10-50Mbps),并转向如图4所示的更为典型的10/100以太网解决方案。主要的变化有:
1.为以太网MAC增加直接存储器访问(DMA)引擎,实现中断驱动;
2.为系统增加外部存储器,为处理器增加缓存;
3.更复杂的TCP/IP栈,如Linux(Clinux)系统TCP/IP协议栈。
对于需要100Mbps以上TCP/IP吞吐能力的应用,可以考虑硬IP或软IP内核方式提供的三模式以太网MAC(图5)。为获得高端应用所需要的500Mbps以上的吞吐能力,需要像分散/汇聚DMA(SGDMA)等高级DMA技术,以及包括数据重排引擎(DRE)和校验和卸载(CSO)等FPGA硬件加速器技术。
图5:千兆级以太网系统架构
为满足千兆以太网对更高数据吞吐率的需求,可能需要更高性能的嵌入式(硬)处理器或FPGA上实现的可定制软处理器,以及更大的缓冲容量、如16Kbit指令和数据缓存。就软件平台来说,Linux、VxWorks、Integrity和QNX等软件平台中的高级TCP/IP栈支持诸如零拷贝和校验和旁路等功能。
包括硬件和软件在内的许多因素都会影响到TCP性能,并进而影响系统TCP吞吐能力。这些因素包括:
1.处理器,包括频率、功能和缓存
a.频率:TCP/IP协议通常需要将载荷从用户缓存拷贝到协议栈控制的缓存,然后再将其拷贝到以太网MAC的FIFO中去。这些存储器拷贝操作有些是以软件方式完成的,因此需要处理器的处理周期。同时处理器还参与TCP校验和的计算,计算过程中需要将整个数据包从存储器读出。更快的处理器配合更快的存储器能在更短的时间内完成这些操作,从而可以保持较高的数据速率;
b.功能:TCP/IP协议栈需要对数据包的包头和载荷进行访问处理。做为包头处理的一部分,典型的访问包括读取包头信息的特定位。因此每个数据包的处理过程都需要相当多的移位操作。此外在处理每个数据包时都需要进行乘法操作。在可配置的处理器中,必须开启完成移位或乘法的指令才能获得更高的性能;
c.缓存:数据包从以太网MAC被拷贝到存储器中之后,将会通过TCP/IP协议栈的不同层。然后TCP/IP栈中的数据包处理代码会被执行。将所有代码和数据包读到缓存中会大大提高处理器效率并提高以太网带宽。
2.存储器
存储器访问时间和延迟对于系统性能有巨大的影响。典型应用中,TCP/IP应用并不存储在本地存储器中,程序和数据存储在外部存储器中。存取数据和指令所花费的时间对于性能有很大影响。存储器因素通常与缓存大小有关。提高指令和数据缓存大小有助于减轻外部存储器延迟和存取时间所带来的影响。
3.以太网MAC
在FPGA中实现的以太网MAC外设提供了很大的灵活性,特别是在工作模式(无DMA与SGDMA)、数据包FIFO深度、DRE支持、CSO支持以及超大帧支持方面。每一项都会影响到MAC所需要的资源,以及其能够从处理器分流的功能多少,从而对整体性能造成影响。
4.TCP/IP协议栈
灵活的优化TCP/IP协议栈是影响系统性能的重要因素。对硬件CSO和零拷贝API(数据不需要从应用拷贝到协议栈缓存)以及可配置栈选项等TCP/IP栈功能的支持可帮助提高系统性能。
5.信息多少
信息(应用数据)的大小是影响性能的另一个因素。随着信息减少,TCP/IP协议头(如TCP、IP和以太网头)的开销增加,从而会减小总体的数据载荷吞吐能力。
大多数应用对于成本、性能和功能都有一组基本的需求。当为特定应用设计产品时,设计人员必须在这些需求之间进行正确的折衷,然而,为了适应市场条件,这些要求在产品生命周期内可能会发生变化。采用灵活可配置的平台能够在不改变设计平台或供应商的情况下根据需要对这些要求进行重新平衡。 |