您当前的位置:首页 > 文章摘抄 > 正文

arm的内核_Arm架构之Arm内核解析

arm的内核_Arm架构之Arm内核解析

贸易电子:马克帕特里克

Arm架构主导了当今的嵌入式处理和计算市场,但在过去的几十年里,Arm架构已经走过了漫长的道路。从80年代开始,它最初是作为家用电脑的处理器,然后在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:1:硅实验室的EFM小壁虎。

自推出以来,Cortex-M3已被许多MCU厂商采用。Cortex-M3内核帮助这些MCU厂商定义他们的32位产品。目前市场上可用的MCU包括相对简单但性价比较高的产品,如Silicon Labs的用于低功耗系统的EFM Tiny Gecko,以及Cypress semiconductor的PSoC5片上系统,该系统将传统的MCU外设与高度灵活的可编程模拟功能相结合。

随着单片机应用对数字信号处理(DSP)性能的要求越来越高,Arm推出了Cortex-M4来满足市场需求。这个内核可以支持浮点运算,已经被很多厂商采用。一种常见的配置是将强大的Cortex-M4F内核与更简单的Cortex-M0或Cortex-M0内核相集成,为用户提供高效的电源管理和资源分配。

在Cypress PSoC6或恩智浦LPC5411x等器件中,M0内核可以处理中断,因此M4或M4F可以自由处理DSP任务,而不会产生中断,从而最大限度地提高数据吞吐量。这种责任划分也使功能更强大的M4内核能够在活动突发之间长时间休眠。低功率M0可以在相对有限的操作期间处理相对简单的系统管理任务。

图2:赛普拉斯半导体公司的PSoC6。

2014年,Arm推出了M7内核,将Cortex-M的性能提升到了一个新的水平。该内核采用六级超标量流水线架构,支持乱序运算,并通过完整的浮点运算单元进一步增强。意法半导体的STM32F730x8集成了M7内核、各种外设以及公司专有的ART加速器技术(可以实现闪存的零等待执行)。

皮质-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 framework,于2011年推出。这主要体现了针对应用处理器市场推出M4后,不同Cortex-M内核的耦合,并增强了其他功能以支持应用处理器的要求。

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

皮质-R

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

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

为了支持高可靠的操作,Cortex-R内核上的缓存、TCM和系统总线可以使用错误修改编码来透明地纠正单比特错误和检测双比特错误。由于模块化冗余是安全关键系统的核心部分,Cortex-R系列内核设计用于锁定副本。如果片内监控器检测到输出差异,它可以警告存在的问题,以便软件采取纠正措施。使用Cortex-R系列生产的芯片的一个例子是Cypress Semiconductor的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),它允许更灵活地管理分区。另一个是完全支持只执行内存,以帮助防止逆向工程和黑客攻击。然而,安全性方面最大的变化是支持针对深度嵌入式处理器优化的TrustZone机制。

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

微芯片的SAML11 MCU采用Cortex-M23增强型片上加密控制器,可以为传感器节点和类似设计提供硬件安全保障。Nordic Semiconductor的nRF9160使用Cortex-M33来提供需要安全RF通信的设备处理功能。

图3: SAML11单片机示例3:微芯片公司。

结论

毫无疑问,Arm是全球电子行业最成功的故事之一。为了满足许多不同市场的需求,Arm提供的广泛产品组合继续向多个方向扩展。Cortex-A、Cortex-M和Cortex-R等产品线的进一步分化被证明是这种快速增长的基础,并将继续推动Arm内核在新兴新领域的广泛应用。


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 戴尔500 电源充满能用几个小时?戴尔500型号是多少寸

下一篇: 森罗万象的意思造句 森罗万象的意思和造句



推荐阅读