基于嵌入式CPU内核 IAR Systems 32位编译器执行周期减半
发布时间:2008/5/27 0:00:00 访问次数:526
iarsystems日前发布了支持atmel全新avr32嵌入式cpu内核的iarembeddedworkbench。同日发布的avr32架构,结合iarembeddedworkbenchforavr32,可用于开发要求苛刻的各种应用,例如消费者娱教、销售终端节点、生物特征扫描、语音识别以及运动探测。
据介绍,在与atmel公司合作研发avr硬件设计的同时,iar公司经过数年的迭代开发以及针对目标应用的软硬件整体分析,iarembeddedworkbenchforavr32的c/c++编译器实现了先进的应用代码结构识别技术,并且能够充分利用avr32指令架构中的single-cycleload/store、simd以及dsp指令。因此,iarsystems的c/c++编译器既能优化顺序执行的指令,也能优化并行算法的操作,从而获得良好的每周期处理能力;而对设计者而言这一切完全透明。
根据eembc基准测试的结果,iarembeddedworkbenchforavr32编译生成的代码与其它主流的32位嵌入式微处理器的编译器编译的代码相比,编译之后的avr32代码只需要1/3到1/2的执行周期和1/2左右的存储空间。如果运行由iarsystems最新的c/c++编译器生成的代码,avr32在每一项eembc基准测试中,其性能和代码密集度都始终优于其它主流的32位内核。
据估计,risc处理器平均有30%的时钟周期被用于执行load/store指令,而不是进行运算。通过实现与大多数常用指针操作密切相关的字节(8位)、半字(16位)、字(32位)和双字(64位)load/store指令,avr32指令集架构将load/store指令所需的时钟周期数减至最少。通过使用几种成熟而完善的技术,iarembeddedworkbenchforavr32能够有效地利用这些指令以取得良好的效果:既减少了所生成代码的大小,又降低了运行所需的时钟周期数。
此外,iarembeddedworkbenchforavr32的高性能指令调度器能够透明地调度并行和顺序的运算操作(无相关数据),从而使得avr32的三条次级算术流水线(multiplication/mac、load/store和alu)达到最大处理能力,且应用程序中总的流水线延迟周期数降到最少。这将显著地提高任何一种应用的性能。
该指令调度机制中的一些高端优化操作能够识别和优化simd指令循环中的数据通道。对于需要在单数据流上执行同样操作的特定多媒体运算而言(例如mpeg解码程序中的运动预测),该优化可以使处理能力提高四倍。
iarembeddedworkbenchforatmelavr32还支持所有已发布的指令集扩展。这些扩展主要是针对使用饱和算法的信号处理应用,以及重视高效率位操作的控制应用。
除了成熟的c/c++编译器,还包含了调试功能,使得在avr32上的开发和调试最有效率。c-spy调试器支持先进的基于jtag的trace功能,例如functiontrace;c-spysimulator能为整个avr32mmu提供精准的仿真。iarsystems的调试器技术在atmel公司设计avr32内核的过程中同样得到了运用。
iarembeddedworkbenchforavr32将于atmel首次发布avr32芯片的同时在全球开始发售。全功能版本的iarembeddedworkbenchforavr32的最终用户许可单价将大约为4,995美元。
iarsystems日前发布了支持atmel全新avr32嵌入式cpu内核的iarembeddedworkbench。同日发布的avr32架构,结合iarembeddedworkbenchforavr32,可用于开发要求苛刻的各种应用,例如消费者娱教、销售终端节点、生物特征扫描、语音识别以及运动探测。
据介绍,在与atmel公司合作研发avr硬件设计的同时,iar公司经过数年的迭代开发以及针对目标应用的软硬件整体分析,iarembeddedworkbenchforavr32的c/c++编译器实现了先进的应用代码结构识别技术,并且能够充分利用avr32指令架构中的single-cycleload/store、simd以及dsp指令。因此,iarsystems的c/c++编译器既能优化顺序执行的指令,也能优化并行算法的操作,从而获得良好的每周期处理能力;而对设计者而言这一切完全透明。
根据eembc基准测试的结果,iarembeddedworkbenchforavr32编译生成的代码与其它主流的32位嵌入式微处理器的编译器编译的代码相比,编译之后的avr32代码只需要1/3到1/2的执行周期和1/2左右的存储空间。如果运行由iarsystems最新的c/c++编译器生成的代码,avr32在每一项eembc基准测试中,其性能和代码密集度都始终优于其它主流的32位内核。
据估计,risc处理器平均有30%的时钟周期被用于执行load/store指令,而不是进行运算。通过实现与大多数常用指针操作密切相关的字节(8位)、半字(16位)、字(32位)和双字(64位)load/store指令,avr32指令集架构将load/store指令所需的时钟周期数减至最少。通过使用几种成熟而完善的技术,iarembeddedworkbenchforavr32能够有效地利用这些指令以取得良好的效果:既减少了所生成代码的大小,又降低了运行所需的时钟周期数。
此外,iarembeddedworkbenchforavr32的高性能指令调度器能够透明地调度并行和顺序的运算操作(无相关数据),从而使得avr32的三条次级算术流水线(multiplication/mac、load/store和alu)达到最大处理能力,且应用程序中总的流水线延迟周期数降到最少。这将显著地提高任何一种应用的性能。
该指令调度机制中的一些高端优化操作能够识别和优化simd指令循环中的数据通道。对于需要在单数据流上执行同样操作的特定多媒体运算而言(例如mpeg解码程序中的运动预测),该优化可以使处理能力提高四倍。
iarembeddedworkbenchforatmelavr32还支持所有已发布的指令集扩展。这些扩展主要是针对使用饱和算法的信号处理应用,以及重视高效率位操作的控制应用。
除了成熟的c/c++编译器,还包含了调试功能,使得在avr32上的开发和调试最有效率。c-spy调试器支持先进的基于jtag的trace功能,例如functiontrace;c-spysimulator能为整个avr32mmu提供精准的仿真。iarsystems的调试器技术在atmel公司设计avr32内核的过程中同样得到了运用。
iarembeddedworkbenchforavr32将于atmel首次发布avr32芯片的同时在全球开始发售。全功能版本的iarembeddedworkbenchforavr32的最终用户许可单价将大约为4,995美元。