文章目录

    • ARM 架构
      • CISC 与 RISC 差异
      • ARM 架构版本
      • ARMv6 与 ARMv7 差异
      • ARMv8 与 ARMv7 差异
      • ARMv8 与 ARMv9 差异

上篇文章:ARM Cortex-M 系列 2.1 – RT-Thread Cortex-M7 异常处理及 hardfault 处理分析

ARM 架构

ARM架构是一种处理器架构,全称为高级精简指令集计算机(Advanced RISC Machine)。它是英国ARM公司设计的一种精简指令集(RISC)处理器架构,和复杂指令集(CISC)处理器架构相对。

CISC 与 RISC 差异

CISC(Complex Instruction Set Computer,复杂指令集计算机)和RISC(Reduced Instruction Set Computer,精简指令集计算机)是两种不同的CPU设计理念。它们的主要差异在于指令集的复杂性、执行效率和硬件设计。

  • 指令集:CISC的指令集更复杂,包含大量的复杂和专门的指令,例如,一条指令可能就能完成数据的加载、运算和存储等多个操作。而RISC的指令集则更精简,每条指令只做一件事,如加载数据、运算或存储数据。

  • 执行效率:CISC的每条指令执行时间不同,有的指令可能需要多个时钟周期来执行。而RISC的每条指令设计为在一个时钟周期内完成,这样可以简化硬件设计,提高指令的执行效率。

  • 硬件设计:CISC的硬件设计相对复杂,因为需要硬件来处理复杂的指令。而RISC的硬件设计更简单,因为它的指令集更精简。这使得RISC的处理器更容易设计,也更容易实现并行处理,以提高性能。

  • 应用场景:CISC在桌面电脑和服务器等需要执行复杂计算任务的场景中常见,例如Intel的x86架构。而RISC更多应用在移动设备和嵌入式系统中,这些场景下对功耗和体积有更高的要求,例如ARM架构。

Intel和ARM处理器的第一个区别是,前者使用复杂指令集(CISC),而后者使用精简指令集(RISC)。属于这两种类中的各种架构之间最大的区别,在于它们的设计者考虑问题方式的不同。ARM从来只是设计低功耗处理器,Intel的强项是设计超高性能的台式机和服务器处理器。

ARM 架构版本

ARM架构的主要特点是高性能、低功耗和小体积,特别适用于移动通信、嵌入式系统和其他功耗敏感的应用。
ARM架构主要有以下几个版本:

  • ARMv1至ARMv3:这是最初的ARM架构,采用32位设计。
  • ARMv4和ARMv5:在这两个版本中,ARM开始支持DSP指令和嵌入式实时操作系统。
  • ARMv6:在这个版本中,ARM增加了SIMD指令。
  • ARMv7:这是目前最广泛应用的ARM架构,它被分为三个系列:A系列用于高性能产品,R系列用于实时系统,M系列用于微控制器。
  • ARMv8:这是ARM首次引入64位架构,它同时支持64位和32位应用。

ARM架构由于其高性能和低功耗的优点,广泛应用于各种电子设备中,包括智能手机、平板电脑、电视、路由器,以及汽车电子、工业自动化等领域。

ARMv6 与 ARMv7 差异

以下是它们的主要区别:

  • 性能:ARMv7的性能一般比ARMv6更强。这是因为ARMv7引入了新的指令集,以及更强的浮点运算支持,可以提高处理器的计算性能。
  • 浮点运算:ARMv7引入了硬件浮点运算支持(VFPv3),而ARMv6则使用较旧的VFPv2浮点运算。硬件浮点运算可以极大提高处理器处理浮点数的能力。
  • 指令集:ARMv7引入了Thumb-2指令集,这是一种混合了32位和16位指令的新指令集,它既能像32位ARM指令那样提供高性能,又能像16位Thumb指令那样节省存储空间。而ARMv6则只支持原始的Thumb指令集。
  • 应用:ARMv7早期被广泛应用在高性能的嵌入式系统中,例如智能手机和平板电脑(现在以ARMv8为主,部分是ARMv9)。而ARMv6则多用于低端的嵌入式设备。

ARMv8 与 ARMv7 差异

以下是它们的主要区别:

  • 位数:ARMv8 是 ARM 公司首次引入的 64 位架构,它同时支持 64 位和 32 位应用。而 ARMv7 主要是 32 位架构

  • 指令集:ARMv8 引入了新的指令集 AArch64,用于执行 64 位操作。而 ARMv7 使用的是 ARM 和 Thumb 指令集。

  • 浮点和 SIMD 支持:ARMv8 改进了浮点和 SIMD 的支持,它包括新的浮点运算指令和为多媒体和数据处理优化的新 SIMD 指令。

  • 虚拟化支持:ARMv8 引入了硬件虚拟化支持,提高了在虚拟环境中运行应用的性能。

  • 安全性:ARMv8 还提供了更加强大的安全性,例如,它支持更多的物理地址和更大的虚拟地址空间。

总的来说,ARMv8 在 64 位支持、性能、安全性和虚拟化等方面都比 ARMv7 有显著的改进。

ARMv8 与 ARMv9 差异

ARMv9是最新的版本。以下是它们的一些主要区别:

  • 性能:ARMv9对ARMv8进行了一些优化和改进,以提高处理器的性能和效率。
  • 机器学习和人工智能:ARMv9引入了新的SVE2(Scalable Vector Extension 2)技术,这是一种向量运算技术,可以大大提高处理器处理机器学习和人工智能任务的能力。
  • 安全性:ARMv9增强了安全功能,引入了新的Realm管理架构,可以更有效地防止各种网络攻击和数据泄露。
  • 虚拟化:ARMv9对虚拟化支持进行了改进,使得在云计算和其他高性能计算应用中的虚拟化更加高效。

总的来说,ARMv9在性能、机器学习和人工智能支持、安全性和虚拟化等方面都比ARMv8有所提升。

上篇文章:ARM Cortex-M 系列 2 – CPU 之 Cortex-M7 介绍