Cortex-R52+是 Cortex-R52 的增强版本,旨在满足功能安全应用的集成和虚拟化需求,同时保持软件兼容性。它基于 Armv8-R 架构,提供硬件级的任务隔离和虚拟化支持,允许在单一处理器上安全地运行多个操作系统和应用程序。Cortex-R52+特别适用于汽车电子中的高级驾驶辅助系统(ADAS)和座舱控制器等时间关键型应用,提供增强的安全性、灵活性和实时性能。
01.背景介绍
Cortex-R52+的推出进一步强化了 Arm 在高可靠性嵌入式系统市场的地位,为需要高安全性和实时性能的应用提供了强有力的支持。
Arm Cortex-R52+ 处理器具备多项核心特点,满足高性能和高可靠性嵌入式系统的需求。
1.1 架构特点
- 基于 Armv8-R 架构:Cortex-R52+ 采用 Armv8-R 架构,融合高性能与高可靠性,适用于实时控制和安全关键型应用。
- 实时性优化:该处理器针对实时操作进行了优化,确保确定性行为和低延迟响应,满足严格的实时应用需求。
1.2 安全性设计
- 符合功能安全标准:Cortex-R52+ 的设计符合 ISO 26262 ASIL D 和 IEC 61508 SIL 3 等功能安全标准,适用于汽车和工业等安全关键型应用。
- 硬件隔离域支持:处理器提供硬件强制的软件分离功能,允许在单一处理器上安全地运行多个操作系统和应用程序,确保安全与非安全任务的隔离。
1.3 多核支持与资源隔离
- 多核设计:Cortex-R52+ 支持多核配置,可实现对称多处理 (SMP) 或非对称多处理 (AMP),提高系统的并行处理能力。
- 内存保护单元 (MPU):处理器集成 MPU,提供任务级别的内存隔离,防止不同任务之间的干扰,提升系统安全性和可靠性。
1.4 功耗优化
- 低功耗设计:Cortex-R52+ 采用先进的电源管理技术,降低系统功耗,适用于对能源效率要求严格的嵌入式系统。
- 动态功耗管理:处理器支持动态电压和频率调整,能够根据工作负载实时调节功耗,实现高效的能源管理。
通过上述技术优势,Cortex-R52+ 在竞争中展现了卓越的功能安全性和实时性能,成为高可靠性嵌入式系统的理想选择。
在应用领域方面,Cortex-R52+ 展现出广泛适应性:
- 汽车电子:满足高级驾驶辅助系统(ADAS)、电池管理和传感器融合的功能安全和实时性需求。
- 工业自动化:支持机器人控制、实时通信协议和 PLC 系统,助力工业 4.0 发展。
- 医疗设备:提供高可靠性和低功耗解决方案,保障患者数据安全和设备功能独立性。
- 航空航天与国防:适用于飞行控制、导航等高可靠性任务。
1.5 配置介绍
Cortex-R52/Cortex-R52+ 配置参数表如下:
这张配置参数表展现了 Cortex-R52/Cortex-R52+ 在性能、安全性、实时性和可扩展性方面的技术优势。这些特性使其成为高可靠性嵌入式系统的理想选择。
1.6 Cortex-R52+的增强特性
Cortex-R52+ 在保持 Cortex-R52 高性能与高可靠性基础上,进一步强化了实时性、安全性和可配置性,特别是在实时虚拟化、故障诊断、数据完整性保护、内存管理优化等方面表现出色。
1.7 Cortex-R52+ 硬件概览
ARM Cortex-R52+ 是一款针对高可靠性和实时需求的处理器,具备强大的计算能力和高度灵活的外部接口。以下是其主要硬件模块和特性详细解析:
02.异常级别和两阶段内存保护单元(MPU)介绍
随着车辆中软件的数量不断增加,越来越多的应用程序被集成到单个微控制器上,尤其是在域/区域控制器中,这些控制器为中央车辆计算机和机电边缘的 ECU(电子控制单元)之间提供了一个更简化的桥梁。这种集成机制在现代汽车中尤为显著,尤其是域控制器和中央计算机之间的交互,涉及不同的硬件架构和操作系统。
- 中央车辆计算机:通常使用基于 Arm Cortex-A 核心 的处理器,运行基于 POSIX 的操作系统和自适应 AUTOSAR,处理复杂的计算任务和高级应用。
- 机电边缘的 ECU:通常采用 Arm Cortex-R 或 Cortex-M 核心,这些控制器主要负责实时性强、计算要求相对较低的任务,如传感器控制、执行器控制等。
在需要分离不同应用程序的系统中,使用 Cortex-R52+等微控制器可以支持将应用程序分配到不同的虚拟机(VM)中运行。每个虚拟机都提供独立的运行环境,这些虚拟机通常会具有以下几个组成部分:
1. 物理或虚拟处理器核心:每个虚拟机可以运行在独立的处理器核心上,或者多个虚拟核心共享物理核心。
2. 内存:虚拟机会为每个应用程序分配独立的内存空间。
3. 外设:虚拟机可以拥有自己的虚拟外设,或者与其他虚拟机共享物理外设。
4. 配置寄存器:每个虚拟机具有独立的配置寄存器,确保系统的隔离性。
这些虚拟机由虚拟机监控程序(Hypervisor)管理,通常在 Cortex-R 处理器的 EL2(异常级别 2)特权级别运行。虚拟机监控程序的功能类似于操作系统,它为虚拟机中的软件创造出一种错觉,使其认为自己正在独立的微控制器上运行,而不是与其他虚拟机共享同一个物理硬件资源。
这些改进强化了 Cortex-R 处理器的资源管理和安全能力。通过引入 EL2 异常级别和两阶段 MPU,处理器不仅能支持多任务和多操作系统的隔离,还能在高安全性场景下保持实时性能。
2.1 总体介绍
作为 Armv8-R 架构的一部分,这些处理器新增了异常级别和两阶段内存保护单元(MPU),为嵌入式系统的资源管理和任务隔离提供了强有力的支持,具体内容如下:
*Armv8-R Cortex-R 处理器不提供内存管理单元(MMU)。在 Cortex-A 设备上运行的虚拟机监控程序可以使用其 MMU 为每个虚拟机提供一个完全独立的虚拟地址空间。例如,在每个虚拟机内运行的客户软件可以链接到相同的地址运行,并使用相同的内存地址范围进行数据存储。Cortex-R52+ 提供的内存保护单元(MPU)允许虚拟机监控程序保护一个虚拟机的内存不受另一个虚拟机的干扰,但不允许每个虚拟机拥有一个独立的虚拟地址空间。
2.2 异常级别和两阶段 MPU 介绍
新的异常级别和两阶段 MPU 为系统引入了多层安全保护,满足了高安全性的需求。同时,系统提供了可配置的任务隔离能力,能够适应从单任务到复杂多任务、多操作系统的嵌入式场景。通过避免 MMU 带来的延迟问题,该架构确保了实时系统的高效运行,提升了系统整体性能。如图展示了 Armv8-R 架构的异常级别(Exception Levels) 及其相关模块,主要反映了不同任务、操作系统和硬件之间的分层结构及资源管理机制。以下是详细解析:
图示特性解析
- 分层架构:图中展示的层级从底部到顶部,依次为:
- 硬件层(Processor)
- EL2(Hypervisor 和 EL2 MPU):负责集中管理和隔离。
- EL1(RTOS 和 EL1 MPU):提供操作系统的资源分配与任务调度。
- Task 层:具体任务的执行。
- 双重内存保护:
- EL1 MPU 提供第一阶段保护。
- EL2 MPU 提供更高优先级的第二阶段保护,实现更细粒度的内存管理。
- 多操作系统支持:允许多个实时操作系统共存(RTOS 1 和 RTOS 2),并分别管理其下的任务。
- 任务隔离:在同一个 RTOS 内的任务,以及不同 RTOS 间的任务均通过 EL2 和 MPU 实现隔离,提升系统安全性。
通过这张图,展示了 Armv8-R 架构如何通过多层次的异常级别、内存保护单元和任务管理机制,为多操作系统和多任务环境提供安全、高效的解决方案。
2.2 使用系统级内存保护单元(SMPU)和外设保护机制的设计与作用
通过 SMPU 和外设保护机制,微控制器能够实现系统级的内存和外设隔离,不仅提升系统安全性,还支持更复杂的虚拟化需求。
2.2.1 SMPU 相较于核心 MPU 的优势
- 全局性保护:核心 MPU 的作用仅限于本地内存,而 SMPU 提供跨组件的保护能力,覆盖整个系统。
- 支持多组件的虚拟化:SMPU 可创建包含多个 Cortex-R52+ 核心及其他 DMA 组件(如 Cortex-M 核心)的虚拟机。通过内存总线连接,使不同组件能够高效共享资源,同时维持严格的访问控制。
- 隔离增强:将内存、外设和中断进行划分,提供更强的虚拟机隔离性,尤其适用于实时性和安全性要求较高的场景。
2.2.2 SMPU(system-level memory protection unit 系统级内存保护单元)的功能与作用
- 主要功能:SMPU 的作用是控制系统中的硬件组件,像 DMA 控制器、处理器核心(如 Cortex-R、Cortex-M)和其他外设,能否访问特定的内存区域。它确保只有经过授权的硬件可以访问指定的内存空间,从而防止未经授权的访问,提升系统的安全性。提供了一种全局内存保护机制,超越了单个核心 MPU 的保护范围。
- 区域配置:
- SMPU 通常划分为多个区域,每个区域具有以下属性:
- 起始地址和大小
- 访问权限,指定哪些总线管理器(或虚拟机,VM)可以访问该区域。
- 更高级设计中,SMPU 可以结合 Cortex-R52+ 的 VSCTLR.VMID 寄存器,通过 VM 标识符(VMID)分配内存区域,增强虚拟机隔离能力。
优势:
- 跨组件的保护:允许多个总线管理器共享一个内存保护机制,而不仅限于单一核心。
- 虚拟化支持:使微控制器能够创建包含多个核心(如 Cortex-R 和 Cortex-M)及 DMA 控制器的虚拟机(VM)。
- 安全性增强:防止未经授权的组件访问敏感内存区域,从而提高系统安全性。
如图展示了通过系统级内存保护单元(SMPU)实现内存分区的概念,用于隔离多个虚拟机(VM)之间的内存访问,具体解析如下:
图中结构与各部分含义
图中访问权限的具体逻辑
1.VM0 访问地址区域 X: 允许访问
- 在图中,VM0 发起对内存地址区域 X 的访问请求。
- SMPU 检查后发现 VM0 拥有访问 X 的权限,因此请求被允许。
- VM0 可以正常读写地址区域 X。
2.VM1 访问地址区域 X: 阻止访问
- 当 VM1 发起对内存地址区域 X 的访问请求时,SMPU 进行权限检查。
- 由于地址区域 X 未分配给 VM1,SMPU 阻止了该访问请求。
- 这确保了 VM1 无法读取或修改地址区域 X 的内容。
内存分区机制的关键设计点
1. 地址范围划分:每个地址范围(如 X)可以分配给特定的虚拟机。地址范围的划分是基于系统设计的需求进行配置的,通常包括:
- 代码段:存储程序的指令。
- 数据段:存储程序运行时的数据。
- 设备寄存器:用于控制硬件外设。
2. 访问权限控制:SMPU 能够对每个内存区域的访问权限进行精确配置,包括:
- 哪些虚拟机可以读取、写入或执行该区域的内容。
- 未授权访问时采取的处理方式(例如,产生异常)。
3. 增强隔离性:通过 SMPU 的内存分区机制,可以确保每个虚拟机只能访问其授权的内存区域,从而实现内存隔离。这种隔离能够防止:
- 虚拟机之间的恶意攻击或无意干扰。
- 敏感数据被非授权的虚拟机读取。
通过 SMPU 对内存地址范围进行分区,可以实现虚拟机之间的内存隔离,增强系统的安全性与稳定性。该机制在需要多任务并行的嵌入式系统中尤为重要。
2.2.3 外设保护机制的功能与作用
- 主要功能:外设保护机制通过分配权限,限制外设寄存器的访问范围,确保外设仅允许指定总线管理器(或 VM)操作。
- 机制特点:每个外设可分配给一个或多个总线管理器(或 VM)。禁止未授权的总线管理器或 VM 访问受保护外设的寄存器。
- 实现的分离:外设保护机制和 SMPU 结合,可实现集群级别的隔离:
- 内存和外设均可划分给不同的虚拟机。
- 每个虚拟机可以包含 Cortex-R 核心集群中的所有核心,确保资源隔离和独立操作。
03.结 论
Cortex-R52+ 的推出代表了 Arm 在嵌入式处理器领域的技术创新,进一步巩固其在高安全性和实时性市场中的领先地位。通过支持多任务隔离和复杂系统分区,它为嵌入式系统开发者提供了更灵活、更安全的解决方案。
同时,Cortex-R52+ 的成功应用加速了自动驾驶、工业自动化等前沿领域的技术发展,为这些行业的功能安全和实时性标准树立了新标杆。
凭借卓越的性能和功能安全特性,Cortex-R52+ 成为高安全性和实时性嵌入式系统的理想选择。在不断发展的物联网和智能制造背景下,它将为未来高可靠性嵌入式应用提供坚实的技术支撑,为各行业的智能化转型注入新动力。
参考:
1.面向无人驾驶,ARM 推出最先进的安全处理器 Cortex-R52 – 芯智讯
2.Cortex-R52+ | 強化安全並支援虛擬化 – Arm®
3.https://developer.arm.com/documentation/
END
来源:汽车电子与软件
推荐阅读:
- CP AUTOSAR 下的 PDU Router 是如何工作的?
- 智能座舱演进的思考
- ECU 的车规级试验:DV 试验(三:电气负荷标准及测试)
- AP AUTOSAR 硬核技术(10):身份和访问管理(IAM)
更多汽车电子干货请关注汽车电子与软件专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。)