首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 23-09-19 22:01
  • 2318
  • 9834
blog.csdn.net

文章目录

    • 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 介绍

注:本文转载自blog.csdn.net的CodingCos的文章"https://blog.csdn.net/sinat_32960911/article/details/131797536"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top