由于ARM 架构模块化做的比较好,ARMv7架构的很多组件在ARMv6对应的扩展补充版本中都已经有了(可选的,并非必须实现),所以可以把ARMv7看做是对ARMv6及其扩展版本的收集,整理及部分增强。
从ARMv7的参考手册DDI0406C中介绍的来看,主要差别不大(这里仅介绍ARMv6和ARMv7体系架构部分的不同,即不包括debug部分)
ARMv7整合并扩展了在ARMv6版本设计生命周期中作为架构扩展引入的功能特性,其中包括:
- 在ARMv6T2中,引入了使用Thumb-2技术的扩展Thumb指令集。
- 可选的安全扩展,首次由ARMv6K支持。
另外,ARMv7引入的关键变化是:
- 分层高速缓存支持。
- 供选择的存储器系统架构被正式化为不同的架构profiles 文件:
— ARMv7-A profiles 文件提供了虚拟内存系统架构(VMSA)
— ARMv7-R profiles 文件提供受保护的内存系统架构(PMSA)- 可选的高级SIMD扩展。
- 支持ThumbEE指令集的Thumb执行环境(ThumbEE)。
不过ARM已不赞成使用任何ThumbEE指令。
ARMv7架构一个新的变化根据不同的应用场景设计了三个profiles : ARMv7-A,ARMv7-R,ARMv7-M。其中A针对应用程序场景。R针对实时场景。M针对微控制器场景。
参考资料
[1] DDI0406C_C_arm_architecture_reference_manual
[2] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka16827.html