这段时间对优化比较感兴趣,又看了一些书,谈到优化自然不能少了汇编优化。刚好因为工作的原因,需要编写操纵IINTEL的PXA27X处理器上面的WMMX协处理器的汇编代码,所以又重新拿起ARM的书来看——呵呵,好久都没有看ARM的书了。PXA27X采用的是XSCALE的架构,是ARM系列处理器中比较有代表的一个系列(另外一个代表系列就是TI的OMAP),除了支持标准的ARM指令集之外,还针对多媒体优化增加了专门的WMMX指令集,主要用于嵌入式设备上的多媒体编解码等用途。平时用的ARM编译器一般编的都是通用的ARM代码,所以,要达到优化的目的,要么手动操作WMMX寄存器,要么调用INTEL的IPP函数库(已经封装好了对WMMX的操作)。呵呵,我需要实现的是对WMMX的一些寄存器的保存和恢复,包括一些优化策略,只有用汇编来实现。把相应的程序完成之后,我发现汇编不是那么令人讨厌了,只要理解深入,汇编写的代码一样很具有可读性,一样会很优美。
WMMX类似与x86上的MMX,只是专门针对无线手持设备进行了优化的,从它的名字Wireless MMX就可以看得出来。WMMX指令集是SIMD指令集,也就是单指令多数据指令集,一条指令可以处理多个数据,当然会大大加快处理速度了:)有了WMMX,不需要其他硬件加速,就可以实现流程的视频音频回放以及编码。类似的功能,在别的平台上面,比如TI的OMAP,是通过DSP来实现的。因为WMMX成了CPU内核中一个紧密的部分,所以我感觉应该会比DSP操作起来更得心应手一些。不过我也没有用过DSP,这些都是我的猜测罢了。如果自己不愿意写那么多汇编,直接调用INTEL提供的IPP函数库,在嵌入式上面做多媒体应用,真的是非常的方便:)它们的性能都很强,应该是经过很多优化和测试了的。
初窥WMMX
最新推荐文章于 2025-06-24 23:26:32 发布