您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术设计灵活、高性能的嵌入式系统 正文
设计灵活、高性能的嵌入式系统

设计灵活、高性能的嵌入式系统

点击数:7729 次   录入时间:03-04 12:03:21   整理:http://www.55dianzi.com   嵌入式系统-技术

  您的下一个 嵌入式 系统设计项目需要的是什么:是可以让您轻松地定制设计的灵活的系统元件,还是额外的性能空间,以便您在设计周期中加入更多的功能?为什么要让自己承受过度的开发压力,并且只能舍此取彼呢?软处理和IP定制能够为同时确保灵活性和高性能提供了最佳的解决方案,将定制设计的概念和协处理带来的性能加速结合起来。

  分立处理器只能提供固定的外设选择,并且一些性能受到时钟频率的限制。在嵌入式 FPGA所提供的平台上,您可以创建一个具有大量定制处理器核、灵活的外设、甚至协处理减负引擎的系统。现在,您能设计出一个不折不扣的定制处理系统——不仅满足最具挑战性的项目要求,而且能够冲破性能极限,与此同时,通过使用FPGA硬件实现加速的软件指令最大限度地提高系统的性能。随着FPGA架构的加速,从前的限制便不复存在。

  灵活性

  除了在Xilinx® VirtexTM平台的FPGA中所提供的高性能PowerPCTM硬件处理核和使用汇编语言编程的占位空间更小的PiCOBlazeTM微控制器外,Xilinx公司还提供一种可定制的通用32位 RISC处理器。由于可以使用Virtex或 SpartanTM系列产品中的任意一款在逻辑门外对其进行构建,因此MICroBlazeTM软件处理器的使用十分灵活,并且您能够通过定制处理IP外设来满足您的特定要求。

  使用可定制核和IP,您只需创建所需的系统元件而不浪费任何芯片资源。当您使用像FPGA这样的可编程器件构建一个处理系统时,就不会在分立器件中浪费任何未使用的资源,也不会出现当需要的外设数量超过所提供的数量时(例如您的设计需要3个UART,而分立器件只能提供1个或2个),设计无法继续进行的情况。此外,您不会受限于初始的架构设想;相反,您能不停地进行大的修改并且能够调整系统架构来适应新的需求特性或不断变化的标准。 


简化的MicroBlaze
                         图1 - 简化的MicroBlaze框图

        在“2006年嵌入式系统大会”的论文汇编中有一个FIR滤波器的设计示例,其中,MicroBlaze系统包含一个可选的符合IEEE 754标准的内部浮点单元(FPU),从而大大提高了该处理器核上仅可由软件执行的操作的性能。通过加入可选的MicroBlaze元件,可以迅速地提高应用程序的性能。

  这些可选内部元件的另外一个优势就是它们得到MicroBlaze C编译器的全面支持,因此不必改变源代码。在这个FIR滤波器设计示例中,由于调用外部C代码库的浮点函数的操作被使用新的FPU的指令自动取代,因此加入FPU和对设计的重复编译意味着直接的性能提升。

  与软件重新编码方法相比,使用专用硬件处理单元,能够将完成特定任务所需的时钟周期数减少几个数量级,从而提高处理器的性能。图1的简化图显示了一个带有内部FPU IP核、本地存储器核和像UART或JTAG调试端口这样的可选外设的MicroBlaze处理系统。由于系统是可定制的,我们可以方便地实现Xilinx处理器IP产品目录中所包含的多个UART或其他的IP外设核,其中包括DMA控制器、IIC、CAN或DDR存储器接口等。

  该IP产品目录提供了门类齐全的其他处理IP(桥、仲裁器、中断控制器、GPIO、定时器和存储器控制器等),以及适用于每个IP核的可定制选项(例如波特率和奇偶校验位),以对元件的特性、性能和尺寸/成本进行优化。此外,您还能设置与处理核相关的时钟频率、调试模式、本地存储器容量、高速缓存和其它选项。仅仅增加一个FPU核,我们就能创建一个可将前文所提到的FIR的实现从8,500,000个CPU周期优化至177,000个CPU周期的MicroBlaze系统,这样,在不改变C代码源文件的情况下即可将性能提高48倍。

  在第二个示例中,我们将构建另外一个设计模块,实现一个面向MP3解码器的IDCT引擎,这一设计可使应用模块的速度加快一个数量级。

  您可以使用图2中所示的开发工具,方便地创建上文提到的两个处理器平台。这个集成式软件/硬件开发工具包括一块直接支持PowerPC和MicroBlaze处理器设计的 Virtex-4 参考板。开发工具还包括所有的编译器和所需的FPGA设计工具,以及IP目录和用作预校准的参考设计。

  再加上JTAG探测器和系统电缆,此开发工具能够让您在开始编辑和调试自己的设计变更之前,轻松构建和运行一个工作系统。不同器件和板卡的开发工具,可从Xilinx公司及其分销商以及第三方嵌入式系统合作伙伴那里得到。 
 

集成式硬件/软件开发工具
图2 - 集成式硬件/软件开发工具 
 



www.55dianzi.com        查明瓶颈和实现协处理

  MICroBlaze处理器是EDN公司2005年的百件热门产品之一,使用获得IEC(国际工程协会)大奖的Xilinx Platform Studio(XPS) 嵌入式 工具套件实现硬件/IP的设置和软件的开发。XPS包含在我们预先配置的嵌入式开发系统中,是用来创建系统的集成式开发环境(IDE)。如果您拥有一块标准的参考板或已经创建了自己的电路板描述文档,那么XPS就可以驱动一个设计向导来快速地配置您的初始系统。

  通过使用智能化工具来减少错误和学习压力,您就可以集中精力提高最终产品的价值。完成基本的配置后,您可以花一些时间来调整IP,从而定制自己的系统,然后进行软件应用的开发。

  XPS为程序员提供了一个功能强大的基于Eclipse框架的软件开发IDE。这一环境对于开发、调试和管理代码以查明隐藏于其它不可见的代码执行中的性能瓶颈是十分理想的。这些代码中的不足之处经常会使设计达不到所要求的性能目标,但它们又很难被发现而且通常更难被优化。

  使用像“内联代码”这样的技术来减少多余的函数调用开销,就能够将应用程序的性能提高1%~5%。但如 果使用可编程平台,利用现有更强大的设计技术,可使性能提高一到两个数量级。

  图3显示了XPS性能分析截屏图。XPS可以用不同的形式显示分析信息(profiling information),这样您就可以一目了然地看清突出显示在性能图上的趋势或个别相冲突的程序。柱状图、饼状图和测量指标表格,让定位和判断函数与程序的不足之处变得简单,这样您就能够采取行动来改进这些极大影响整体系统性能的程序。 
 

XPS嵌入式工具套件 
       图3 - XPS嵌入式工具套件 


MicroBlaze MP3解码器


                         图4 - MicroBlaze MP3解码器示例
 
        自带IP模块的软处理器核

  在我前面所介绍的MP3解码器示例中,我们从多个MicroBlaze处理器的示例化开始,构建了一个定制系统(图4)。由于MicroBlaze处理器是一个软核处理器,因此我们能方便地构建一个具有多个处理器的系统并能平衡性能负载,从而得到一个优化的系统。

  从图4我们可以清楚地看到,顶部自带总线和外设的MicroBlaze块与底部的MicroBlaze块和它自带的外设是彼此分开的。此设计的顶部区域运行支持整个文档系统的嵌入式Linux操作系统,这样就能通过网络接入MP3比特流。我们将这些比特流的解码和播放操作留给第二个MicroBlaze处理器。在此设计中我们加入了紧密耦合的DCT/IMDCT(正向和反向改进的离散余弦变换)函数处理器减负引擎和两个高精度MAC单元。

  IMDCT块负责数据的压缩和解压缩,以缩短传输线的执行时间。DCT/IMDCT是压缩应用中计算量最大的两种函数,因此将整个函数放到它自己的协处理模块中执行,极大地提高了整个系统的性能。与前面提到的在FIR滤波器中加入一个内部FPU的设计示例不同的是,这个MP3设计示例已经实现了MicroBlaze的定制,并且在FPGA中加入了外部专用硬件。 
 

协处理加速的结果 
         图5 - 协处理加速的结果
 
       协处理+可定制IP = 高性能

  通过将软件函数的大量计算负担转移给协处理的“硬件指令”,您就能找到一个最佳的平衡点,使系统性能达到最佳。图4还显示了Linux文件系统模块的一系列IP外设,其中包括UART、以太网MAC和其他各种存储器控制器选项。与此不同的是,编码/解码应用模块采用了针对不同系统功能定制的不同IP。

[1] [2]  下一页


本文关键字:嵌入式  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术