MicroBlaze v5.0软处理器内核:针对性能而优化

技术分类: 嵌入式系统  | 2008-04-09
来源:Xilinx公司MicroBlaze内核产品线营销经理 Rey Archidé

        表1给出了三级和五级流水线MicroBlaze 内核的性能和功能差异。

表1:MicroBlaze内核比较

MicroBlaze内核比较

  这意味着什么?

  对于嵌入式系统设计人员来说,拥有一个五级流水线的处理器真正意味着什么呢?这依赖于所执行的代码或指令组合类型。请注意,嵌入式代码是装载、存储以及许多其它汇编指令的组合。如果目标是减少(优化)程序的执行时间,则可以减少指令数量、缩短时钟周期(提高Fmax)或CPI。

  简单来说,就是必须让T尽可能地小:

T= IE x CPI x CP

  其中:T = 程序执行时间;IE = 执行程序中的指令数量;CPI = 每条指令所需要的平均时钟周期数量;CP = 时钟周期

  以210 MHz的速度运行在Virtex-5 LX 器件上,MicroBlaze 5.0 的CP当然更短。新架构的CPI值更低,因此在执行Dhrystone基准测试时,处理器可以获得1.15 DMIPS/MHz的性能。这一配置要求启用桶式移位器和硬件乘法器选项,在使用Virtex-5 XC5VLX30-3 FPGA时需要占用960个LUT。

  Dhrystone是一个综合基准指标,并不一定能够准确地表征当今的许多嵌入式应用。前面我们提到过处理器总体性能改进与依赖于指令混合的五级流水线相关。因此我们尝试以一系列内部“近实时(near-real)嵌入式应用”基准来看一下结果。

  当使用诸如ADPCM编码/解码等电信基准时,五级流水线MicroBlaze内核的性能比三级流水线MicroBlaze 内核提升1.6% 至 5.2%。当采用包含AES编码/解码等运算的面向安全的应用时,五级流水线MicroBlaze内核的性能比三级流水线MicroBlaze 内核提升约30%。

  AES编码/解码基准中的指令序列中有许多装载或存储等操作,这些指令对其它大运算量指令的依赖不怎么强,因此在五级流水线处理器中运行效率比较高。每个应用的具体性能提升都有所不同,要根据代码所生成的指令混合比例才能理解这一点。

  除了MicroBlaze微架构中的改进,赛灵思还改进了许多存储控制器和外围模块。例如,特殊的缓存接口链路绕过了总线互连,直接从存储控制器馈送到MicroBlaze指令和数据缓存。在另一例子中,以太网相关的外设有多种选择。如图3所示,诸如检验和分流、数据重组或FIFO逻辑等优化都减轻了处理器内核的负担。再一次,设计人员可根据应用需要灵活选择合适的选项。利用面向赛灵思FPGA构造的软处理器内核和嵌入式开发套件(EDK)IP就可以做到这一点。

  其它新特性?

  设计人员可以选择每个缓存线四或八个字宽来帮助提高缓存性能和命中率(hit/miss ratio)。从外部存储器猝发传送较长的字序列特别有效,如果指令代码或数据“构造良好”和线性的话。尽量从本地缓存执行最好。我们在EDK中提供了剖析工具帮助您精细调整存储器缓存子系统。

  赛灵思还增加了处理器版本寄存器(PVR)存储标记或处理器ID。在多内核或多处理器系统中,这非常有用。你可以选择在设计中不使用PVR、只使用一个PVR、或者全面的PVR配置。如果选择一个PVR,内核将有一个8位ID标记。你可以为其指定一个地址,以及处理器配置的基本信息。如果选用全面的PVR配置,在MicroBlaze多内核系统设计中,当系统询问每个内核时,每个结点可以提供更多的配置信息。

  MicroBlaze 5.0 和 MicroBlaze v4.0内核都有完全集成的IEEE754兼容单精度FPU。配置了FPU的MicroBlaze 5.0内核在Virtex-5器件中200 MHz时可达到50 MFLOP,使用的资源为1,650 LUT(包括FPU和MicroBlaze内核)。在我们运行的一些实际应用测试中,MicroBlaze内核加FPU与MicroBlaze运行软件仿真浮点代码相比,FIR代码性能提升约40%,FFT代码提升约16%。

  最后,我们做了一些易用性方面的改进。为方便编程,我们在MicroBlaze 5.0 ISA中实现了模式比较代码。我们还提供了处理器状态寄存器,包括一系列状态和使能位,在系统复位时可以自动配置。

1】【2】【3
加载中

对文章的评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销