同样是 RAM,为什么汽车 MCU 需要这么多种?深度解析 RRAM、LRAM、GRAM 和 CRAM

发布时间:2026/11/6 3:44:13
同样是 RAM,为什么汽车 MCU 需要这么多种?深度解析 RRAM、LRAM、GRAM 和 CRAM

前言:RAM绝不仅是一个简单的‘易失性随机存取存储器, 在芯片内部,它被赋予了多种多样的形态,各大厂商(比如瑞萨)对它的划分和叫法更是各有千秋。为了帮大家厘清这些概念,本文特别以瑞萨车规级MCU为参考对象,从底层架构出发,拆解不同功能RAM在系统里的定位与作用,干货满满,建议收藏。


目录

1,概述

2,为什么 MCU 需要多种 RAM?

3,RAM 的基本原理

4,RH850/U2A 的整体 RAM 架构

5,四种 RAM 分别是什么

5.1 RRAM:Retention RAM

5.2 LRAM:Local RAM

5.3 GRAM:Global RAM

5.4 CRAM:Cluster RAM

6,四种 RAM 如何协同工作

7,四种 RAM 的最终对比总结

8,结语


1,概述

大家都知道一个芯片的存储是由RAM与FLASH组成的,并且两种空间的都有很多细分种类,讲到这里可以思考一个问题:为什么一颗高性能车规 MCU,不能只设计一块容量足够大的 SRAM,而要把 RAM 拆分成不同的存储区域?

比如就拿瑞萨的车规级MCU RH850U2A系列来举例,其中RAM又分为RRAM、LRAM、GRAM 和 CRAM。最高支持 4 组主 CPU(配合 Checker Core),具备多 Cluster 架构、硬件虚拟化以及 ASIL-D 功能安全能力

这边先埋下一个伏笔,先思考一下,也许读到文章尾部的时候答案只会浮出水面的

2,为什么 MCU 需要多种 RAM?

一颗传统的 RH850 MCU,只有一个 CPU 核心。

程序运行过程中需要使用:程序运行时的全局变量;函数调用时的局部变量;中断处理时的临时数据;ADC 采样数据;CAN 通信缓冲区;DMA 搬运的数据;系统任务的堆栈。这些数据都可以放在一块 SRAM 中。

随着 MCU 性能提升,情况就发生了变化。

以 RH850/U2A 为例:多个 CPU 核心同时执行任务;不同 CPU 需要共享数据;DMA 等硬件模块需要访问 RAM;某些数据要求极低的访问延迟;某些数据要求在多个 Cluster 之间共享;不同安全等级的软件需要进行访问隔离。

如果把所有 RAM 都设计成一个统一的大存储器,就可能出现以下问题:多个 CPU 同时访问,产生总线竞争。远端 RAM 访问延迟较高,影响实时任务。不同 CPU 共享数据时,可能出现访问冲突。无法方便地按照安全等级进行资源隔离。大容量 RAM 的 ECC、诊断和故障管理更加复杂。

MCU 的 RAM 理解成汽车工厂中的不同仓库:

RAM 类型

工厂中的角色

核心特点

LRAM

每个生产工位旁边的小型仓库

离 CPU 近,访问快

CRAM

集群级公共仓库

为 Cluster 提供数据存储

GRAM

多个生产区域可以访问的全局仓库

强调全局可访问

RRAM

需要在特定低功耗状态下保留的仓库

强调数据保持

3,RAM 的基本原理

介绍 U2A 的 RAM 之前,需要先建立一个基础概念:RAM 并不是只有一种实现方式。

常见的 RAM 类型:

类型

全称

特点

常见用途

SRAM

Static RAM

不需要周期性刷新,速度快

MCU 内部 RAM、Cache

DRAM

Dynamic RAM

需要周期性刷新,密度高

外部大容量内存

SDRAM

Synchronous DRAM

同步时钟接口的 DRAM

外部高速内存

DDR

Double Data Rate SDRAM

双边沿传输数据

高性能处理器外部内存

RH850/U2A 的内部工作 RAM 主要采用 SRAM 类存储结构。

SRAM 通常使用多个晶体管组成一个存储单元,通过电路状态保持 0 或 1。

两者的核心区别:

  • SRAM:只要供电正常,存储状态就可以持续保持,不需要周期性刷新。

  • DRAM:电容电荷会逐渐泄漏,需要周期性刷新。

因此 SRAM 通常具有更低的访问延迟,但单位容量占用的芯片面积更大、成本更高。

4,RH850/U2A 的整体 RAM 架构

U2A 其内部采用多 Cluster 架构,U2A 的架构可以简化理解为:

  • Cluster 0:包含 PE0、PE1 及对应的 Checker Core。

  • Cluster 2:配置 CRAM 控制器和 CRAM。

  • Cluster 3:配置 CRAM 控制器和 CRAM。

  • 系统内部通过 Inter-cluster Bus、System Bus 和 CRAM Bus 等连接不同资源。

至于为什么要设计 Cluster。

Cluster 可以理解为一个 CPU 计算集群。

假设 PE0 和 PE1 负责底盘控制:PE0 负责转向控制;PE1 负责制动控制;两个 CPU 需要独立运行各自的控制算法;同时需要交换部分车辆状态信息。

如果两个 CPU 的所有数据都放在同一个存储区域,访问时就可能产生竞争。

通过 Cluster、Local RAM 和共享 RAM 的组合,可以让不同 CPU 既有自己的高速工作区域,也能共享需要交换的数据。

这就是 U2A 存储架构设计的基本思想。

5,四种 RAM 分别是什么

类型英文名称主要设计目的
RRAMRetention RAM特定低功耗状态下的数据保持
LRAMLocal RAMCPU 本地高速数据存储
GRAMGlobal RAM从系统全局访问角度组织的数据存储
CRAMCluster RAMCluster 级数据存储和共享

5.1 RRAM:Retention RAM

RRAM 在这里指 Retention RAM,即保持型 RAM。

它的主要作用是:在芯片进入特定低功耗模式时,保留指定区域的数据,避免 CPU 再次启动后丢失重要运行信息。

为什么需要 RRAM?

假设汽车控制器需要进入低功耗状态。普通 RAM 在掉电后无法保留数据,而部分低功耗场景又不希望每次唤醒都重新初始化全部运行状态。

RRAM 并不等于 EEPROM 或 Flash。如果整个芯片完全断电,不能默认 RRAM 中的数据仍然存在。

5.2 LRAM:Local RAM

LRAM 的英文是 Local RAM,即本地 RAM。它的设计目标是让 CPU 能够快速访问自己的本地数据。

为什么需要 LRAM?

假设 PE0 正在执行一个 1 ms 的底盘控制任务。

它需要频繁读取:传感器采样值;电机控制参数;PID 控制变量;中间计算结果;函数局部变量;中断处理数据。

如果这些数据每次都需要经过复杂的共享总线访问,那么可能产生额外的访问延迟和总线竞争。

LRAM 可以作为 CPU 的本地工作存储区域。

LRAM 的典型特点

  • 与对应 CPU/处理单元具有紧密的本地连接关系。

  • 适合存放实时任务数据。

  • 可以减少对共享存储器和公共互连的依赖。

  • 适合对访问延迟比较敏感的数据

LRAM 适合存放什么?

数据类型

推荐程度

CPU 实时任务堆栈

高

高频访问的局部变量

高

中断处理数据

高

控制算法中间变量

高

多核共享数据

需要额外考虑访问权限和映射

大容量 DMA 缓冲区

视访问路径和 DMA 支持情况

LRAM 并不意味着所有其他 CPU 都绝对无法访问。是否可以跨核访问,取决于具体存储区域的总线映射、MPU 和访问控制配置,不能只凭 Local 这个名称判断。很明显,上面贴出的瑞萨U2A的架构图中,每一个核的LRAM是相互独立的。

5.3 GRAM:Global RAM

GRAM 通常用来表示 Global RAM,即全局 RAM。

它强调的是 RAM 在系统中的访问范围,而不是简单地表示某一种特定的 SRAM 电路结构。

为什么需要 GRAM?

在多核 MCU 中,不同 CPU 可能需要访问同一份数据。

例如一个汽车底盘控制器:车辆速度、方向盘转角、制动状态等数据,可能需要在多个 CPU 之间共享。

如果每个 CPU 都保存一份独立的数据副本,就会出现:数据副本占用更多 RAM。多个 CPU 的数据可能不同步。数据更新时需要额外的数据复制。增加软件维护复杂度。

全局 RAM 的设计思路,就是让系统中的多个处理单元能够按照访问权限共享数据。

瑞萨的整个U2A系列中只有EVA版本的有GRAM,其他都没有,核间数据共享主要应从 CRAM(Cluster RAM)、系统总线访问路径,以及核间同步机制 这几个方面理解。并且对于EVA版本的而言,其独有的并不是普通应用运行所需的 GRAM,而是 Global Emulation RAM(全局仿真 RAM),EVA 版本只是面向芯片评估、软件开发和硬件仿真调试,需要额外的片上资源支持开发工具。

5.4 CRAM:Cluster RAM

CRAM 可以理解为 Cluster RAM,即集群 RAM。它是 RH850/U2A 多 Cluster 架构中非常值得关注的存储器。

为什么需要 CRAM?

假设 U2A 中多个 CPU 需要执行不同的控制任务。这些 CPU 除了需要各自的本地数据,还可能需要访问一部分集群级或系统级数据。

例如:多核之间的控制状态;共享控制参数;数据交换缓冲区;算法中间结果;多核任务协作数据。

如果所有数据都放在各自的 LRAM 中,那么共享数据就需要通过额外的复制和同步操作实现。

CRAM 则提供了另一种组织方式。

CRAM 的典型特点:

  1. 由对应的 CRAM Controller 管理。

  2. 面向 Cluster 或系统互连提供存储资源。

  3. 可以作为多个处理单元访问的数据区域。

  4. 适合存放共享数据和较大容量的运行数据。

  5. 需要关注访问权限、ECC 和多核并发问题

6,四种 RAM 如何协同工作

一个具体的多核数据分配例子:

假设 PE0 负责转向控制,PE1 负责制动控制。

数据

建议考虑的存储区域

原因

PE0 控制算法临时变量

PE0 LRAM

本地高频访问

PE1 控制算法临时变量

PE1 LRAM

本地高频访问

转向和制动共享状态

CRAM 或适当的共享区域

多核数据交换

车辆运行模式

共享 RAM 或 RRAM

视访问需求及保持要求

需要低功耗保持的运行状态

RRAM

特定模式下保持

全局诊断数据

根据访问范围选择 RAM

需要考虑多个处理单元的访问

7,四种 RAM 的最终对比总结

比较项目

RRAM

LRAM

GRAM

CRAM

关键词

保持

本地

全局

集群

主要目的

低功耗数据保持

CPU 本地访问

全局数据访问

Cluster 数据存储

典型应用

唤醒恢复

实时控制

多核共享

集群数据

关注重点

保持条件

访问延迟

访问权限

总线与共享

典型风险

数据丢失

访问冲突

数据不一致

并发竞争

安全关注

数据保持验证

ECC、MPU

权限及一致性

ECC、访问保护

8,结语

到这里,对于四种RAM介绍就已经结束了,那么相信大家对于前文提出的问题都已经有了答案。额。。。可能还有人说,似乎明白了但还是说不上来,这里就书面总结一下吧:

不同 RAM 的设计,本质上是为了在容量、访问延迟、带宽、数据共享和安全隔离之间取得平衡。