贸泽电子:Mark Patrick
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 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内核在不断出现的新领域得到广泛运用。