【ARM Cortex-M 系列 3 番外篇 -- ARMv6, ARMv7, ARMv8, ARMv9 架构差异及精简指令集 与 复杂指令集 介绍】

这篇具有很好参考价值的文章主要介绍了【ARM Cortex-M 系列 3 番外篇 -- ARMv6, 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 介绍文章来源地址https://www.toymoban.com/news/detail-720828.html

到了这里,关于【ARM Cortex-M 系列 3 番外篇 -- ARMv6, ARMv7, ARMv8, ARMv9 架构差异及精简指令集 与 复杂指令集 介绍】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ARMv8M Cortex-M33 系列 7.2 -- HardFault 问题定位 1】

    请阅读 【嵌入式开发学习必备专栏 之 ARM Cortex-Mx专栏】 rt-thread 在 PendSV_Handler 退出的时候发生了 HardFault_Handler 是什么原因?且 LR 的值为 0xfffffffd 在 ARM Cortex-M 架构中,堆栈指针 (SP) 必须始终保持 8 字节对齐。这是因为从 ARMv7-M 开始,堆栈帧可能包含额外的浮点寄存器,而要

    2024年01月21日
    浏览(68)
  • 【ARM Cortex-M 系列 2 -- CPU 之 Cortex-M7 介绍】

    请阅读 【ARM Coresight | AMBA BUS| Armv8/v9 | GCC 专栏导读】 上篇文章:ARM Cortex-M 系列 1 番外篇-- Cortex-M0, M3, M4, M7, M33 , M35P 差异 下篇文章:ARM Cortex-M 系列 2.1 – RT-Thread Cortex-M7 异常处理及 hardfault 处理分析 Cortex-M7是基于ARMv7架构,ARMv7 架构主要分为以下三类: 其中 Cortex-M 系列应用

    2024年02月17日
    浏览(38)
  • 【ARM Cortex-M 系列 1.1 -- Cortex-M33 与 M4 差异 详细介绍】

    请阅读 【嵌入式开发学习必备专栏 之 Cortex-Mx 专栏】 在移植 RT-Thread 到 瑞萨RA4M2(Cortex-M33)上时,遇到了hardfault 问题,最后使用了Cortex-M4中的调度相关的函数后,OS 可以正常调度了。所以这里做下 M33与 M4的关系梳理。 ARM Cortex-M33 和 Cortex-M4 都是 ARM 公司设计的32位RISC微处理

    2024年01月21日
    浏览(46)
  • 【ARM Cortex-M 系列 1 -- Cortex-M0, M3, M4, M7, M33 差异】

    请阅读 【ARM Coresight | AMBA BUS| Armv8/v9 | GCC 专栏导读】 下篇文章:ARM Cortex-M 系列 2 – CPU 之 Cortex-M7 介绍 Cortex-M0/M0+ 介绍 Cortex-M0 是 ARM 公司推出的一款微控制器(MCU)核心。这个核心是基于 ARMv6-M 架构设计的, 只支持 56 条指 令的小指令集,大部分指令是 16 位指令, 是 ARM Cor

    2024年02月17日
    浏览(46)
  • 【ARMv8M Cortex-M33 系列 7.1 -- xPSR | CFSR | HFSR | BFAR | MMFAR 寄存器】

    请阅读 【嵌入式开发学习必备专栏 之 ARM Cortex-Mx专栏】 由于在RA4M2(Cortex-M33)移植RT-Thread OS的时候遇到了 Hardfault,不知道如何分析错误原因,后参考以前写的文章【ARM Cortex-M 系列 2.1 – RT-Thread Cortex-M7 异常处理及 hardfault 处理分析】 来查找原因。 在 ARM Cortex-M33 微控制器上

    2024年01月20日
    浏览(52)
  • 【ARMv8M Cortex-M33 系列 5 -- RT-Thread .rti_fn 段简介】

    在 RT-Thread 实时操作系统中, .rti_fn 代码段通常用于存放初始化函数。RT-Thread 的启动过程中包括了一系列的初始化步骤,这些初始化函数被分配到特定的代码段中,以便操作系统在启动时按照预定的顺序执行它们。 RT-Thread 链接脚本中的 keep(*(sort(.rti_fn*))) 是一个 GNU 链接器指

    2024年01月23日
    浏览(44)
  • 【ARMv8M Cortex-M33 系列 1.1 -- SAU Non-secure Callable(NSC) 介绍 】

    请阅读 【嵌入式开发学习必备专栏 之Cortex-M33 专栏】 ARMv8-M 架构引入了 TrustZone 技术,它提供了一种机制来实现在单个处理器内部的安全隔离。这项技术定义了两种状态: 安全状态 (Secure state)和 非安全状态 (Non-secure state)。在此架构下,可以同时运行安全和非安全代码

    2024年02月04日
    浏览(44)
  • 【ARMv8M Cortex-M33 系列 7.4 -- 如何使能 usagefault | memmange fault | bus fault 中断】

    请阅读 【嵌入式开发学习必备专栏 之 ARM Cortex-Mx专栏】 由于文章【ARMv8M Cortex-M33 系列 7.2 – HardFault 问题定位 1】 中提到了HardFault 的发生是由于其它异常所升级导致的,所以就需要调查下如何是能其它异常中断。 在 ARM Cortex-M33 核心上启用 UsageFault 、 MemManageFault 和 BusFault 异

    2024年01月20日
    浏览(51)
  • 【ARM Cortex-M 系列 1 -- Cortex-M0, M3, M4, M7, M33, M35P 差异】

    请阅读 【ARM Coresight | AMBA BUS| Armv8/v9 | GCC 专栏导读】 下篇文章:ARM Cortex-M 系列 2 – CPU 之 Cortex-M7 介绍 Cortex-M0/M0+ 介绍 Cortex-M0 是 ARM 公司推出的一款微控制器(MCU)核心。这个核心是基于 ARMv6-M 架构设计的, 只支持 56 条指 令的小指令集,大部分指令是 16 位指令, 是 ARM Cor

    2024年02月05日
    浏览(44)
  • 【ARMv8M Cortex-M33 系列 7.3 -- EXC_RETURN 与 LR 及 PC 的关系详细介绍】

    请阅读 【嵌入式开发学习必备专栏 之 ARM Cortex-Mx专栏】 接着上篇文章:【ARMv8M Cortex-M33 系列 7.2 – HardFault 问题定位 1】,后面定位到是在 cortex-m33/context_gcc.S 执行完 BX Lr 之后就发生了 HardFault,通过JLink 发现 LR 的值为 0xfffffffd 所以又继续调查了 EXC_RETURN 的具体含义。 在 ARM

    2024年01月25日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包