[原创] ARMv6和ARMv7架构主要不同

由于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

你可能感兴趣的:([原创] ARMv6和ARMv7架构主要不同)