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


图1:Silicon Labs的EFM Tiny Gecko(小壁虎)。
自推出以来,Cortex-M3已经得到许多MCU供应商的采取,Cortex-M3内核帮助这些MCU厂商定义其32位产品。现在市场可用的MCU包括相对大略但又具备高性价比的产品,例如针对低功耗系统的Silicon Labs 的 EFM Tiny Gecko,以及赛普拉斯(Cypress)半导体的 PSoC5片上系统,它使传统的MCU外设与高度灵巧的可编程仿照功能结合在一起。
随着MCU运用开始哀求供应更高的数字旗子暗记处理(DSP)性能,Arm推出Cortex-M4以知足市场的需求。该内核可为浮点运算供应支持,得到许多厂商的采取。一种常见的配置是将强大的Cortex-M4F内核与较为大略的Cortex-M0或Cortex-M0+整合在一起,为用户供应高效的电源管理和资源分配。
在赛普拉斯 PSoC6 或恩智浦(NXP)LPC5411x等器件中,M0+内核可以处理中断(interrupts),使M4或M4F可自由处理 DSP 任务,而不会产生中断,从而能够最大限度地提高数据吞吐量。这种任务划分也使更强大的M4内核能够在活动突发之间进行较永劫光就寝。低功耗M0+ 可在相对有限的运行期间处理比较大略的系统管理任务。
图 2:来自赛普勒斯半导体的 PSoC6。
2014 年,Arm推出了M7内核,将 Cortex-M 的性能提高到新的层级。此内核采取六级超标量(superscalar)流水线架构,支持乱序操作,并通过完全的浮点运算单元来进一步增强。意法半导体的STM32F730x8集成了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 Semiconductor的nRF9160采取Cortex-M33来供应须要安全射频通信的器件处理功能。
图 3:Microchip公司的 SAML11 MCU 示例。
结论
毫无疑问,Arm是环球电子行业中最伟大的成功案例之一。为了知足许多不同市场的需求,Arm供应的广泛产品组合连续向多个方向扩展。Cortex-A、Cortex-M和Cortex-R等细分产品系列的进一步区分,已证明是这种快速增长的根本,并且将连续推动Arm内核在不断涌现的新领域得到广泛运用。





