Arm架构已经主导了当今嵌入式处理和计算市场,但在过去的几十年里,Arm 架构却走过了漫长的道路。从20世纪80年代开始,它起初是作为家用电脑处理器,然后在20世纪90年代成为手机芯片的基础。如今,在几乎所有技术细分市场,Arm都是一个强有力的竞争者。许多人认为,Arm 架构已成为 32 位或 64 位处理器的首选。由于这种广泛应用,现在已经有成千上万种基于Arm架构的变体。了解这些内核彼此之间的不同是做出选择决策的重要一环。

早在 2004 年,最初的 Cortex 家族就使 Arm架构分化为三个内核产品组,每个产品组都针对不同类型的应用。最早集成到芯片的是Cortex-M,它已成为基于Arm微控制器(MCU )生态系统的支柱。尽管Cortex-M系列首次推出的是基于版本7架构的内核,但后来针对超低成本设备(即M0、M0+和M1)的新产品则是基于早期版本6架构。所有Cortex-M处理器仅执行Thumb指令集。另外两个系列被设计为支持Thumb和完整的A32指令集。

图1:Silicon Labs 的EFM Ti ny Gecko(小壁虎)。

自推出以来,Cortex-M3已经得到许多MCU供应商的采用,Cortex-M3内核帮助这些MCU厂商定义其32位产品。现在市场可用的MCU包括相对简单但又具备高性价比的产品,例如针对低功耗系统的Silicon Labs 的 EFM TI ny Gecko,以及赛普拉斯 (Cypress )半导体的 PSoC 5片上系统,它使传统的MCU外设与高度灵活的可编程模拟功能结合在一起。

随着MCU应用开始要求提供更高的数字信号处理(DSP )性能,Arm推出Cortex-M4以满足市场的需求。该内核可为浮点运算提供支持,得到许多厂商的采用。一种常见的配置是将强大的Cortex-M4F内核与较为简单的Cortex-M0或Cortex-M0+整合在一起,为用户提供高效的电源管理 和资源分配。

在赛普拉斯 PSoC6 或恩智浦(NXP )LPC 5411x等器件中,M0+内核可以处理中断(interrupts),使M4或M4F可自由处理 DSP 任务,而不会产生中断,从而能够最大限度地提高数据吞吐量。这种责任划分也使更强大的M4内核能够在活动突发之间进行较长时间睡眠。低功耗M0+ 可在相对有限的运行期间处理比较简单的系统管理任务。

图 2:来自赛普勒斯半导体的 PSoC6。

2014 年,Arm推出了M7内核,将 Cortex-M 的性能提高到新的层级。此内核采用六级超标量(supers calar)流水线架构,支持乱序操作,并通过完整的浮点运算单元来进一步增强。意法半导体 的STM32 F730x8集成了M7内核、各种外设和公司专有的ART加速器技术(能够实现闪存的零等待状态执行)。

Cortex-A

2005 年,出于满足手机业务向智能手机和平板电脑方向发展的需求变化,Arm推出了Cortex-A家族的首个成员。Cortex-A 旨在提供一系列针对应用处理器定制的功能,也为在服务器和其他高端计算系统中部署 Arm内核铺平了道路。

Cortex-A 处理器与其他系列处理器之间的一个主要区别是支持分页内存管理单元(MMU)。Linux 和类似的操作系统都需要MMU,因为它能够将程序及其数据在现实内存中映射到不同虚拟地址空间,这提供了一定程度的安全保护功能,可防止不同任务使用的数据被破坏,此外还能够将物理内存视为大型缓存。尽管程序是动态加载和卸载,它还能够避免内存碎片化引起的问题。

使用分页虚拟地址的一个潜在缺点是它们可能干扰实时操作,因此在Cortex-A处理器中增加了MMU,但在具有更强嵌入式系统功能的产品系列中却没有。Cortex-A架构从诞生之初的一个关键创新是TrustZone,由此可实现一个基于硬件的安全层,如果没有所需的安全证书,虚拟设备管理器(hypervisor)能够拒绝任何任务对处理器和内存某些部分的访问。TrustZone可将加密操作和其他敏感操作纳入受硬件防火墙保护的虚拟处理器。

在内核方面,范围从相对简单的Cortex-A5到高性能超标量处理器,如Cortex-A72整合了同时发出三个指令的能力和执行无序操作,简化了调度以实现最高效率。

Cortex-A家族的第二个重大创新是LITTLE框架,它是在2011年推出,这主要反映了针对应用处理器市场的M4引入后不同Cortex-M内核的耦合 ,增强了支持应用处理器需求的其他功能。

对于较大LITTLE,Arm采用了将低端内核(如A5或A7)与高性能,且通常是超标量实施相结合的方法。在可能的情况下,操作系统会保持低功耗处理器的活动时间尽可能长,然后在工作负载超过特定阈值时才激活高功率内核。与传统的双核架构不同,任务可以根据系统条件从一个处理器迁移到另一个处理器。随着对性能需求的增加,越来越多的Cortex-A实施都是围绕处理器复合体采用四个高端内核。通过在性能要求比较平静的期间关闭一个或多个内核,这种安排可以节省功率。

Cortex-R

Cortex-R是Arm公司第三大系列内核,通过采用实时且高度可靠的功能,能够支持新一代复杂的汽车和网络系统。在一些目标应用中需要一些确定性性能,意味着通常用于加快其他 Arm 处理器的缓存并不总是最佳方案。由于缓存会动态地将指令和数据值替换为最近使用的条目,因此,当中断服务例程或实时任务需要时,关键信息可能不在缓存中。Cortex-R家族通过支持紧密耦合存储器 (TCM)库克服了这一问题。因此,关键信息可以在操作过程中存储 在其中,并且通过软件管理,避免了指令和数据被缓存管理子系统替换的风险。

自从最初的Cortex-R4诞生以来,这个家族已经发生了很多进化,其中Cortex-R5和R7内核具有低延迟外围端口。大多数内核都设计为与Arm 硬件总线 (AHB)等片上总线配合使用,或者在最近的内核中,结合使用高级可扩展接口 (AXI)基础架构。低延迟端口将内核直接连接到重要的外围设备,无需对总线进行仲裁,或等待其他总线访问活动完成,即可进行访问。

为了支持高度可靠的操作,Cortex-R内核上的缓存、TCM 和系统总线可以使用错误修改编码来透明地更正单位(single-bit)错误并检测双位错误。由于模块化 冗余是安全关键型系统的核心部分,Cortex-R 系列内核设计为可使用副本在锁 定步骤中工作。如果片上监视器检测到输出差异,它可以警告存在的问题,以便软件能够采取纠正措施。采用Cortex-R 系列而生产的一个芯片例证是赛普拉斯半导体的Traveo S6J33xx系列 MCU,它集成有Cortex-R5F内核,运行在高达240MHz的频率,并集成有针对汽车仪表板中驱动仪表群集而优化的外围设备。

Arm v8

在2011 年,随着版本8体系架构的创建,迎来了Arm内核产品的第二波更改,包括增强了具体应用在64位模式下运行的能力,极大地扩展了应用处理器的最大可寻址内存空间。具有64位能力的Arm v8 处理器可以在 32位或 64位模式下运行。32位运行与为版本7处理器编写的应用提供向后兼容性。由于Cortex-M 系列中的版本8处理器专注于MCU应用,因而不支持64位寻址。但是,它们确实增加了许多额外的指令和功能,以提高性能并增强安全操作。

其中一个重要的进步是重新设计的内存保护单元(MPU),它允许更灵活地管理分区。另一个是完全支持仅执行内存(execute-only-memory),以帮助防止反向工程和黑客攻击。但是,安全性方面最大的变化是支持专门针对深度嵌入式处理器 而优化的TrustZone机制。

对于Cortex-M 版本中TrustZone,无需软件虚拟设备管理器来管理安全状态和非安全状态之间的转换。相反,可使用专用指令从不安全的任务传递数据到安全的功能,以保护允许在特权模式下运行。如果没有正确的权限,即使高优先级中断也无法读取到寄存器 中的安全数据。安全功能允许创建保护良好的 IoT 设备,这些都可以通过基于Cortex-M23和Cortex-M33等内核的MCU实现。

Microchip 的 SAML11 MCU采用了Cortex-M23增强型片上加密控制器,可为传感器 节点和类似设计提供硬件安全保证。Nordic Semi conductor的nRF 9160采用Cortex-M33来提供需要安全射频 通信的器件处理功能。

图 3:Microchip公司的 SAML11 MCU 示例。

结论

毫无疑问,Arm是全球电子行业中最伟大的成功案例之一。为了满足许多不同市场的需求,Arm提供的广泛产品组合继续向多个方向扩展。Cortex-A、Cortex-M和Cortex-R等细分产品系列的进一步区分,已证明是这种快速增长的基础,并且将继续推动Arm内核在不断出现的新领域得到广泛应用。

arm 架构_Arm架构之Arm内核解析相关推荐

  1. arm 架构_ARM架构基础知识小结

    前 言 ARM全国巡回技术讲座 - 第二场:ARM引领智能物联新时代 - 创客学院直播室​www.makeru.com.cn 从单片机转到ARM,主要需要学习ARM的架构,ARM相比单片机多了一些外设 ...

  2. Cortex、ARMv8、arm架构、ARM指令集、soc?Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(内核)后者是指令集的架构(架构)

    架构组成元素的指令集状态或者语法thumb指令集与arm指令集的区别例如thumb指令集是什么_thumb指令集与arm指令集的区别以及thumb-2的关系在下一文中介绍,本文暂时不讨论 有粉丝问我到 ...

  3. ARM版本Cortex-M/R/A 芯片内核架构

    ARM是一个架构.它是安谋国际科技股份公司(Advanced RISC Machines Ltd.),即ARM公司提供.ARM是32位的RISC(reduced instruction set com ...

  4. TI基于DSP+ARM的双核架构如何相互通信

    1 通信结构简介 针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法 ...

  5. Linux——Linux驱动之基本理论常识总结(什么是Linux驱动?Linux驱动需要掌握哪些?ARM处理体系架构及前世今生)

     [系列专栏]:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! <QT开发实战> <嵌入式通用开发实战> <从0到1学习嵌入式Linux开发> 目录 0 ...

  6. 查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 查看Linux系统架构的命令,查看linux系统是哪种架构:AMD.ARM.x86.x86_64.pcc 文章目录: 1 ...

  7. 面经——嵌入式软件工程师ARM体系与架构相关

    参考:嵌入式软件工程师笔试面试指南-ARM体系与架构 作者:嵌入式与Linux那些事 发布时间: 2021-04-28 15:22:06 网址:https://blog.csdn.net/qq_169 ...

  8. ARM处理器与架构对应关系

    在使用ARM内核单片机的时候,经常搞不清楚处理器与内核架构之间的对应关系,于是自己画了一个思维导图,方便观看. 其中相关的命名规则如下 指令集命名规则 ARM 指令集架构命名规则: | ARMv | ...

  9. ARM与RISC-V架构有哪些区别?

    从2019年开始,RISC-V得到了越来越多的重视,原因有很多,ARM授权费高是关键的因素,下面就来说说关于ARM和RISC-V架构,以及相关的内容. 嵌入式专栏 1 关于ARM 1991 年ARM ...

最新文章

  1. SpringCloud 2020版本教程4:使用spring cloud sleuth+zipkin实现链路追踪
  2. linux内核页高速缓存,《Linux内核设计与实现》读书笔记(十六)- 页高速缓存和页回写(示例代码)...
  3. 北京工业大学计算机科学与技术研究生,北京工业大学研究生专业介绍:计算机科学与技术...
  4. 10如何成为卓越领导者摘录——卓越的领导者
  5. jdbc连接mysql的语法_JDBC连接MySQL
  6. 前端共享桌面_2020 前端学习路线总结,哎呦,不错哦!
  7. Hadoop Hive概念学习系列之hive的数据压缩(七)
  8. 程序图片运行效果存在偏差问题
  9. 程序员之痛:六次创业五回失败了
  10. 安装TFS2010实际体验
  11. ES6与ES2015、ES2016以及ECMAScript的区别
  12. ASP.NET Core 源码阅读笔记(3) ---Microsoft.AspNetCore.Hosting
  13. 神州计算机u盘启动,神舟台式机bios怎么设置从u盘启动
  14. 阿里云服务器租用费用清单表(CPU内存带宽磁盘)
  15. 大尺度功能脑组织结构:6个主要原则
  16. Ubuntu 20.10 引导修复(boot repair)
  17. mysqldump 使用总结
  18. java 将 object转成Integer
  19. 在python中使用ggplot2
  20. java里部分文件全选怎么整_选定全部文件的快捷键-怎么全选文件夹的文件-文件...

热门文章

  1. how CRM One Order search by contact name work in the past
  2. 将SAP Cloud for Customer Customer视图的Account ID配置出来
  3. Scala enumeration
  4. Hybris的extension和ABAP的package
  5. CRM_DOC_FLOW_READ_DB debug
  6. SAP UI5 Dialog wrong location
  7. How is syntax error in Vue detected
  8. 如何在ABAP workbench里创建新的repository对象
  9. Step by Step to download a material from ERP via request download
  10. 将github pages搭建的网页添加到百度搜索资源平台