在ARM技术发展的历程中,尤其在ARM7体系结构被广泛接受和使用后,嵌入式控制器的市场仍然大都由8位、16位的处理器占领。但这些产品却不能满足高端应用,如移动电话、磁盘驱动器、调制解调器等设备对处理器性能的要求。这些高端消费类产品需要32位RISC处理器的性能和优于16位的CISC处理器的代码密度。这就需要以更低的成本取得更好的性能和更优于16位的CISC处理器的代码密度。
为了满足嵌入式技术不断发展的要求,ARM的RISC体系结构提供了低功耗、小体积、高性能的方案,而为了解决代码长度的问题,ARM体系结构又增加了T变种,开发了一种新的指令体系,这就是Thumb指令集。Thumb指令集是ARM体系结构的扩展,它从标准32位ARM指令集抽出来36条指令,重新编成16位的操作指令。这能带来很高的代码密度,因为Thumb指令的宽度只有ARM指令宽度的一半。在运行时,这些16位的Thumb指令又由ARM处理器解压成32位的ARM指令。
所有Thumb指令都有对应的ARM指令,而且Thumb的编程模型也对应于ARM的编程模型。当ARM处理器在执行ARM指令时,称ARM处理器处于ARM工作状态,当处理器在执行Thumb指令时,称ARM处理器处于Thumb工作状态。支持Thumb指令的ARM体系结构的处理器状态可以方便地切换到Thumb状态。在应用程序的编写过程中,只要遵循一定的调用规则,Thumb子程序和ARM子程序就可以互相调用。(www.xing528.com)
ARM7TDMI是第一个支持Thumb指令的内核,支持Thumb指令的内核仅是ARM体系结构的一种扩展,所以编译器既可以编译Thumb代码,又可以编译ARM代码。从ARM7TDMI之后,更高性能的ARM处理器内核,也大多能够支持Thumb指令。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。