(3)不同硬件测试平台上测试程序说明
不同的硬件平台和软件平台的搭配需在编译程序过程中指定特定选项(通过Makefile管理):
①-mmft-float选项。LEON平台上若未集成FPU,则进行浮点运算必须指定该选项,此时所有浮点运算转化为软件模拟实现,代价是运行时间大大增加,优势是能够节省硬件资源(加入FPU后LEON的LE的使用率是无FPU情况下的近2倍)。
②-mv8选项。LEON平台上配置硬件整数乘除法构件时需要指定该选项。
③sparc-Iinux-gcc和sparc-elf-gcc编译器。对于LEON平台,若在Linux系统上运行测试程序,则需用sparc-linux-gcc进行编译,程序使用动态链接库完成链接;若直接在LEON硬件上加载运行,则需用sparc-elf-gcc进行编译,程序使用静态链接库完成链接。
④arm-linux-gcc编译器。ARM9的S3C2410编译器为arm-linux-gcc。
⑤-O3优化选项。LEON和ARM的微处理器通过指定该选项进行程序算法优化。
2.2 测试项目及说明
测试项目1:整型数组与浮点数组的加法、乘法及乘加运算。每种类型的运算都循环50 D00
测试项目2:单次滤波算法,程序每一次运行包含12 791次浮点乘法和13 595次浮点加法,以验证在导航系统的滤波算法中LEON在多种配置下的性能。
测试程序采用clock()系统调用获取算法开始运行和结束运行的时间,并以算法的运行时间作为衡量系统效能的唯一标准。
2.3 测试总结
LEON平台灵活的软硬件配置在多项测试中表现优异,总结如下:
①与主流ARM9微处理器在数学运算上性能相当。
②嵌入式Linux操作系统平台相对于无系统平台有一定资源开销,根据具体应用合理选择软件平台是否需要嵌人式Linux系统。
③指定-mv8和-O3选项后程序性能提升显著,根据具体应用合理选择是否配置整数硬件乘除法器。
④LEON硬件配置FPU后浮点运算性能提高一个数量级,代价是综合需要的逻辑资源增长一倍,在权衡性能和可编程器件资源后合理选择配置方案。
结合导航系统SoC芯片高速数据处理的需求,设计方案定型为LEON+FPU,在测试中能够满足系统的运算吞吐量指标要求。
可配置FPU对LEON数学运算性能的提升极为有效,特别是在运算密集型的SoC设计中。LEON3的GRFPU相对于其他常见微处理器的FPU有较大优势。表2为若干处理器核FPU单元完成浮点运算指令需要的处理(延迟)时钟周期数对比情况。

时钟周期数说明:括号外数字是指令处理周期数,即硬件流水线中完成该指令的周期;括号内数字是指令延迟周期数,即该指令进入流水线至从流水线中输出结果所需要的时钟周期数。
3 结论
作为硬件VHDL代码开源的SPARC架构软核IP微处理器,LEONX(包括LEON2和LEON3)良好的可移植性和可配置性使其成为建立片上系统微处理器的一个优选方案。采用Snapgear Embedded Linux的方案能够提供一个从内核、库文件到常用应用程序的验证原型。然而,LEON硬件配置上的改变、升级需要驱动程序的支持,定制的软件也需要自主开发。另外,在LEON平台上移植并运行良好的实时操作系统有RTEMS和eCOS,根据实际的需求可以灵活选择这些软件开发平台。
通过详尽的对比测试,LEON软核的性能优异,在导航系统SoC芯片原型设计中得到验证。测试为基于LEON开源可配置软核的嵌入式系统开发的软硬件配置方式提供了有益的参考,特别是集成浮点处理单元FPU的方案。随着可编程器件规模的超大型化,实现高性能且配置灵活的开源SoC硬件系统及软件平台的优势日益明显。为制造ASIC提供前期原型论证提供极大方便。
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.

