<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" %> 汉华科技

 

工业级品质的ARM平台

稳定源于品质,品质源于理解,理解源于学习,我们致力于打造氛围良好的ARM学习平

台,让每一个使用我们产品的工程师能做出高品质、高稳定的作品。

2007年10月16日 4:52

  首页 关于我们 ARM资讯 ARM学园 联系方式 购买指南
ARM9系列
ARM9263开发平台
ARM9263学习板
ARM9263工业板
ATARM9263试验板
 
ARM7系列
ARM7202开发平台
ARM7202学习板
ARM7202工业板
ARM7202试验板
 
微型打印机系列
针打系列
 
 
 
 
热敏系列
 
 
 
 
液晶系列
 
 
 
 

公告

这是一个学习的园地,所列文章仅用于学术目的,未经许可,不得用于商业目的。

Thumb 指令及应用


为兼容数据总线宽度为 16 位的应用系统, ARM 体系结构除了支持执行效率很高的 32 位 ARM指令集以外,同时支持 16 位的 Thumb 指令集。 Thumb 指令集是 ARM 指令集的一个子集,允许指令编码为 16 位的长度。与等价的 32 位代码相比较, Thumb 指令集在保留 32 代码优势的同时,大大的节省了系统的存储空间。

所有的 Thumb 指令都有对应的 ARM 指令,而且 Thumb 的编程模型也对应于 ARM 的编程模型, 在应用程序的编写过程中,只要遵循一定调用的规则, Thumb 子程序和 ARM 子程序就可以互相调用。当处理器在执行 ARM 程序段时,称 ARM 处理器处于 ARM 工作状态,当处理器在执行 Thumb程序段时,称 ARM 处理器处于 Thumb 工作状态。

与 ARM 指令集相比较, Thumb 指令集中的数据处理指令的操作数仍然是 32 位,指令地址也为32 位,但 Thumb 指令集为实现 16 位的指令长度,舍弃了 ARM 指令集的一些特性,如大多数的 Thumb指令是无条件执行的,而几乎所有的 ARM 指令都是有条件执行的;大多数的 Thumb 数据处理指令的目的寄存器与其中一个源寄存器相同。

由于 Thumb 指令的长度为 16 位,即只用 ARM 指令一半的位数来实现同样的功能,所以,要实现特定的程序功能,所需的 Thumb 指令的条数较 ARM 指令多。在一般的情况下, Thumb 指令与ARM 指令的时间效率和空间效率关系为:

— Thumb 代码所需的存储空间约为ARM 代码的60%~70%

— Thumb 代码使用的指令数比ARM 代码多约30%~40%

— 若使用32 位的存储器,ARM 代码比Thumb 代码快约40%

— 若使用16 位的存储器,Thumb 代码比ARM 代码快约40%~50%

— 与ARM 代码相比较,使用Thumb 代码,存储器的功耗会降低约30%

显然, ARM 指令集和 Thumb 指令集各有其优点,若对系统的性能有较高要求,应使用 32 位的存储系统和 ARM 指令集,若对系统的成本及功耗有较高要求,则应使用 16 位的存储系统和 Thumb指令集。当然,若两者结合使用,充分发挥其各自的优点,会取得更好的效果。

 
 
  返回