马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
Thumb技术介绍 CISC复杂指令系统的核已到达了其性能极限,它需要大量的晶体管,体积大,功耗高,又比较难以集成,导致整个系统要付出高昂的代价。RISC精简指令系统的核虽然为这些问题提供了很有潜力的解决方案,但由于RISC代码密度低的问题,在RISC处理器的发展初期,RISC处理器的性能还是要逊色于CISC处理器,成本、价格上也不占优势。 在ARM技术发展的历程中,尤其是ARM7体系结构被广泛接受和使用时,嵌入式控制器的市场仍然大都由8位、16位的处理器占领。然而,这些产品却不能满足告高端应用如移动电话、磁盘驱动器、调制解调器等设备对处理器性能的要求。这些高端消费类产品需要32位的RISC处理器的性能和更优于16位的CISC处理器的代码密度。这就要求以更低的成本取得更好的性能,以及更优于16位的CISC处理器的代码密度。 为了满足嵌入式技术不断发展的要求,ARM的RISC体系结构的发展中已提供了低功耗、小体积、高性能的方案、而为了解决代码长度的问题,ARM体系结构又增加了T变种,开发了一种新的指令体系,这就是Thumb指令集。Thumb技术是ARM技术的一大特色。 Thumb的技术概述 Thumb是ARM体系结构的扩展。它有从标准32位ARM指令集抽出来的36条指令格式,可重新编成16位的操作码。这能带来很高的代码密度,因为Thumb指令的宽度只有ARM指令宽度的一半。在运行时,这些16位的Thumb指令又由处理器解压成32位的ARM指令。 ARM7TDMI是第一个支持Thumb的核,支持Thumb的核仅仅是ARM体系结构的一种拓展,所以编译器既可编译Thumb代码,又可编译ARM代码。更优越性能的未来的ARM核,也能够支持Thumb。 支持Thumb的ARM体系结构的处理器状态可方便地切换、运行到Thumb状态,在该状态下指令集是16位的Thumb指令集。Thumb可满足它们的要求,它在当时要求的16位和未来需要的32位系统之间搭起了一座桥梁。具有更优越的性能,而不需要付出额外的代价,这一点对那些目前正在使用8位或16位处理器,却一直寻找着更优越的性能的用户来说,正好提供了解决方案。 Thumb的技术实现 在早期的ARM7TDMI的3级流水线的体系结构中,为了支持Thumb指令集,ARM指令体系需要增加Thumb解压缩器。ARM7TDMI是第一个应用此技术的核。ARM7和ARM7T核完成单周期的执行都是需要3个阶段:取指令、译码、执行。指令经过各个阶段是由时钟相位的高低来控制的。ARM7TDMI正是利用了这个特点,考虑流水线各级间的平衡,利用译码器的一个未用的时钟相位,将Thumb指令解压还原为32位相应的ARM指令来完成对Thumb指令的解压缩。这些16位的Thumb指令可由处理器在译码级解压成32位的ARM指令,在ARM核里运行。这样,无须再附加时间费用和单独的解码周期,就可维持指令的执行。 Thumb的技术特点 支持Thumb即可执行这些标准的ARM指令,又可执行Thumb指令。Thumb不仅仅是另一个混合指令集的概念,因为支持Thumb的核有2套独立的指令集,它使设计者得到ARM32位指令的性能,又能享有Thumb指令集产生的代码方面的优势,可在性能和代码大小之间取得平衡。在需要较低的存储代码时,采用Thumb指令系统,但有比纯粹的16位系统有较高的实现性能,因为实际执行的32位指令,用Thumb指令编写最小代码量的程序,却取得以ARM代码执行的最好性能。 与ARM指令集相比,Thumb指令集具有以下局限: 完成相同的操作,Thumb指令通常需要更多的指令,因此在对系统运行时间要求苛刻的应用场合,ARM指令集更为合适; Thumb指令集没有包含进行异常处理时需要的一些指令,因此在异常中断时,还是需要使用ARM指令,这种限制决定了Thumb指令需要与ARM指令配合使用。‘ 一般统计发现,同样的程序运行在16位Thumb状态下运行比在ARM下代码的60%-70%,也就是说,同样的程序在Thumb状态下运行比在ARM状态下运行少了30%-40%的代码。与使用32位ARM代码比较,使用16位Thumb代码,系统存储器功耗约降低30%。
独立的2套指令集也使得解码逻辑及其简单,从而维持了较小的硅片面积,保证了领先的“低功耗、高性能、小体积”的技术要求,满足了对嵌入式系统的设计需求。 更多关于嵌入式学习资料的下载,请点击www.sunplusedu.com访问凌阳教育的官网。 |