ARM Thumb Thumb-2指令集
Thumb-2指令集(T32)
THUMB-2指令集是介绍ARM CPU中的THUMB的扩展,新指令对性能和代码密度的改进,从而提供低功耗,高性能的最优设计,更好的平衡代码性能和系统成本,Thumb-2是混合的16-bit和32-bit指令格式,其16位指令在运行时被转换为32-bit指令执行。Thumb-2指令集在Thumb指令的基础上做了如下的扩充:增加了一些新的16位Thumb指令来改进程序的执行流程,增加了一些新的32位Thumb指令以实现一些ARM指令的专有功能32位的ARM 指令也得到了扩充,增加了一些新的指令来改善代码性能和数据处理的效率给Thumb指令集增加32位指令就解决了之前Thumb指令集不能访问协处理器、特权指令和特殊功能指令的局限。新的Thumb指令集现在可以实现所有的功能,这样就不需要在ARM/Thumb状态之间反复切换了,代码密度和性能得到显著的提高。Thumb-2的出现使开发者只使用一套指令集就享有高性能、高代码密度,不再需要在不同指令之间反复切换了。开发者只需要关注对整体性能影响最大的那部分代码,其他的部分可以使用缺省的编译配置就可以了。
新的Thumb-2技术可以带来很多好处:
可以实现ARM指令的所有功能
增加了12条新指令,可以改进代码性能和代码密度之间的平衡
代码性能达到了纯ARM代码性能的98%
相对ARM代码,Thumb-2代码的大小仅有其74%
代码密度比现有的Thumb指令集更高:代码大小平均降低5%;代码速度平均提高2-3%
为了提高处理压缩数据结构的效率,新的ARM架构为Thumb-2指令集和ARM指令集增加了一些新的指令来实现比特位的插入和抽龋为了增加处理常数的灵活性,新架构中为Thumb-2指令集和ARM指令集增加了两条新的指令。MOVW可以把一个16-bit常数加载到寄存器中,并用0填充高比特位;另一条指令MOVT可以把一个16-bit常数加载到寄存器高16比特中。这两条指令组合使用就可以把一个32-bit常数加载到寄存器中。通常在访问外设寄存器之前会把外设的基址加载到寄存器中,这时就会需要把32-bit常数加载到寄存器中。在之前的架构中需要通过literal pools来完成这样的操作,对32位常量的访问一般通过PC相对寻址来实现。Lite
ARMThumbThumb-2指令 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)