嵌入式芯片 SRAM / PSRAM 与手机 DDR / eMMC 全面对比分析

嵌入式芯片 SRAM / PSRAM 与手机 DDR / eMMC 全面对比分析

本文以 BK7258(Cortex-M33 三核 AIoT 芯片)和 ATS308X(Cortex-M55 穿戴芯片)为嵌入式代表,以骁龙 / 天玑 / A 系列为手机平台代表,从技术原理、性能参数、软件可见性和测试影响四个维度,系统对比两类存储方案。


一、总体架构对比

对比维度 嵌入式芯片(BK7258 / ATS308X) 手机平台
运行内存 SRAM(片内静态 RAM)+ PSRAM(外挂伪静态 RAM) DDR LPDDR(动态 RAM)
非易失存储 Flash(NOR Flash)+ SD NAND eMMC / UFS
运行内存容量 SRAM: 640KB ~ 992KB;PSRAM: 8~64MB 4GB ~ 16GB LPDDR
非易失存储容量 Flash: 16~20MB;SD NAND: 512MB 64GB ~ 1TB
CPU 架构 Cortex-M33 / M55(MCU 级,240~480MHz) Cortex-A 系列(AP 级,1~3GHz)
操作系统 RTOS / 裸机 Android / iOS(Linux 内核)
功耗 极低(可 μA 级休眠) 高(需主动散热)

架构示意图

复制代码
【嵌入式 BK7258 架构】
┌─────────────────────────────┐
│     BK7258 SoC              │
│  ┌─────────────┐            │
│  │ SRAM 640KB  │ ← 中断栈/主栈/驱动 (最快, 裸机可独立运行)
│  │ Cortex-M33  │            │
│  └─────────────┘            │
│  Flash 16MB (XIP执行固件)    │
└──────┬──────────┬───────────┘
       │          │
  PSRAM 16MB   SD NAND 512MB
  (代码/堆/缓冲) (音频/资源文件)

【手机平台架构】
┌──────────────────────────────┐
│      Snapdragon SoC          │
│   Cortex-A (1~3GHz)          │
│   GPU / DSP / NPU            │
└──────┬──────────┬────────────┘
       │          │
  LPDDR 8GB    eMMC/UFS 256GB
  (OS+多任务)  (系统+App+媒体)

二、SRAM vs DDR --- 运行内存对比

2.1 SRAM(静态随机存储器)

SRAM 是直接集成在芯片内部的高速存储,不需要刷新,访问延迟极低。

  • BK7258:内置 640KB SRAM
  • ATS308X:内置 992KB SRAM,分为多个 64KB 的 bank(ram0~ram16),用于中断栈、主栈、空闲栈、DE 驱动、JPEG 临时缓冲、UI 栈、日志缓冲等
  • 特点
    • ✅ 延迟最低(CPU 直接访问,1~2 个时钟周期)
    • ✅ 不需要刷新,功耗极低
    • ✅ 裸机状态下可独立运行算法(关闭 PSRAM 和 CorePLL,仅用 RC64M 时钟,功耗最优)
    • ❌ 容量极小(KB 级),无法运行大代码
    • ❌ 成本高,芯片面积大

2.2 PSRAM(伪静态随机存储器)

PSRAM 是外挂在芯片外面的大容量 RAM,内部本质是 DRAM 但集成了刷新控制器,对外接口像 SRAM。

  • BK7258:外挂 16MB PSRAM
  • ATS308X:支持 8MB / 16MB / 32MB / 64MB PSRAM(不同型号配置不同)
  • 用途:存放函数代码(ER_RAMFUNC)、data 段、BSS 段、system_heap、音频/视频缓冲、UI 显示缓冲等
  • 特点
    • ✅ 容量比 SRAM 大很多(MB 级),可运行 OS + UI + 音视频
    • ✅ 接口简单(无需复杂 DDR 控制器)
    • ❌ 速度比 SRAM 慢,需要通过 cache 访问(cache line 32 bytes)
    • ❌ 功耗比 SRAM 高(PSRAM 时钟依赖 CorePLL,两者功耗较大)
    • ❌ 裸机低功耗模式下无法访问 PSRAM(OS 下变量默认在 PSRAM 中)

2.3 手机 DDR / LPDDR

  • 容量:4~16GB,是嵌入式 PSRAM 的 250~1000 倍
  • 带宽:LPDDR5 可达 6.4GB/s+,PSRAM 通常仅几百 MB/s
  • 特点
    • ✅ 超大容量,支持多任务、大型应用、GPU 渲染
    • ✅ 高带宽,支持 1080p/2K 屏幕渲染、AI 推理
    • ❌ 需要复杂 DDR 控制器 + PMIC 配合
    • ❌ 功耗高(即使 LPDDR 也远超 PSRAM)
    • ❌ 无法做 μA 级休眠

2.4 关键差异一览

复制代码
容量:  SRAM (640KB) < PSRAM (16MB) < LPDDR (8GB)
         ≈ 0.00008GB    ≈ 0.016GB     ≈ 8GB

速度:  SRAM > PSRAM (via cache) > LPDDR (via DDR controller)
延迟:  SRAM (1-2 cycle) < PSRAM (cache hit ~10 cycle) < LPDDR (~50-100 cycle)

功耗:  SRAM (最低) < PSRAM (中) < LPDDR (最高)

三、Flash + SD NAND vs eMMC --- 非易失存储对比

3.1 NOR Flash(嵌入式)

  • BK7258:16MB Flash
  • ATS308X:SiP 封装 20MB Flash
  • 用途:存储固件代码、配置文件、OTA 镜像
  • 特点:支持 XIP(片上执行),读取速度快,但容量小(MB 级),写入慢

3.2 SD NAND(嵌入式)

  • BK7258:512MB SD NAND(CSNP4GCR01-BPW)
  • 用途:存储音频文件、表情包资源、日志等大文件
  • 特点:容量比 Flash 大,比 eMMC 小,接口简单(SD 协议)

3.3 手机 eMMC / UFS

  • 容量:64GB ~ 1TB,是 SD NAND 的 128~2000 倍
  • 特点
    • ✅ 超大容量,存储整个 OS + Apps + 媒体文件
    • ✅ UFS 支持全双工串行读写,速度远超 SD NAND
    • ❌ 封装面积大,功耗高
    • ❌ 不支持 XIP

四、SRAM 和 PSRAM 能等视为手机 DDR 吗?

4.1 功能角色:可以类比为 DDR

嵌入式芯片 手机平台 角色对应
SRAM(片内) DDR 的一部分(内核紧密耦合内存 TCM) 最快访问的运行内存
PSRAM(外挂) DDR 的主体(应用代码/堆/缓冲) OS 代码、堆、显示缓冲等
Flash + SD NAND eMMC / UFS 非易失存储(固件/资源文件)

从"芯片运行时把代码和数据放在哪里"这个角度看,PSRAM 确实相当于手机 DDR 的角色------OS 镜像加载到 PSRAM 执行,堆分配在 PSRAM,音视频/显示缓冲也在 PSRAM。

4.2 技术原理:本质不同

维度 SRAM PSRAM DDR / LPDDR
底层原理 静态 RAM(触发器存储,无需刷新) 伪静态 RAM(内部是 DRAM,集成了刷新控制器,对外接口像 SRAM) 动态 RAM(需外部 DDR 控制器持续刷新)
是否需要刷新 内部自动刷新(对外透明) 需 DDR 控制器主动刷新
接口复杂度 最简单(直接总线访问) 简单(类似 SRAM 接口) 复杂(需 DDR PHY + 控制器 + 训练)
集成方式 片内集成 芯片外挂 芯片外挂(PoP 或板级)

关键区别 :PSRAM 虽然内部本质是 DRAM,但它把刷新逻辑封装在芯片内部,CPU 像访问 SRAM 一样直接读写,不需要复杂的 DDR 控制器。这是 PSRAM 与 DDR 最本质的技术差异

4.3 性能与容量:不在同一量级

维度 SRAM(BK7258) PSRAM(BK7258) 手机 LPDDR
容量 640 KB 16 MB 4~16 GB
与 DDR 倍数 ≈ DDR 8GB 的万分之一 ≈ DDR 8GB 的 1/500 ---
带宽 最高(CPU 直连) 中等(需 cache 中转) 最高(LPDDR5 可达 6.4GB/s+)
访问延迟 最低(1~2 cycle) 中等(cache miss 时显著增加) 较高(但带宽大,整体吞吐高)

4.4 软件可见性:最大差异

维度 SRAM PSRAM DDR
软件分配控制 需链接脚本精确指定哪个变量/栈放 SRAM OS 下变量默认在 PSRAM 操作系统统一管理,应用无感知
裸机可用性 ✅ 裸机可直接运行 ❌ 裸机无法访问(依赖 CorePLL 时钟) --- 手机无裸机概念
Cache 管理 不需要(CPU 直连) 需要(DMA2D 与 CPU 共享时需手动 cache clean/invalidate) 硬件一致性协议自动处理
低功耗控制 可独立关闭 PSRAM + CorePLL,仅用 SRAM 跑算法(功耗最优) 关闭后不可访问 无法完全关闭

4.5 结论

问题 答案
SRAM 可以等视为 DDR 吗? ❌ 不可以。SRAM 是片内高速存储,角色更像 CPU 的 L1 Cache / TCM,容量太小(KB 级),不承担"主存"角色
PSRAM 可以等视为 DDR 吗? ⚠️ 功能上可以类比(都是主运行内存),但技术原理不同(PSRAM 内置刷新,无需 DDR 控制器),且容量差 500 倍,软件需手动管理 cache
两者合在一起等视为 DDR 吗? ⚠️ 接近,但仍不能等视。SRAM+PSRAM 一起承担了 DDR 的角色,但 SRAM 更像 cache/TCM,PSRAM 才是真正对应 DDR 主存的部分,且两者在功耗管理、裸机可用性、cache 管理上与 DDR 有本质差异

一句话总结:PSRAM 在功能上最接近手机 DDR,但两者在技术原理、容量量级和软件管理复杂度上完全不在同一层面,不能简单等视。


五、手机中有类似 SRAM 的片内存储吗?

5.1 手机 SoC 中对应 SRAM 的片内存储

手机 SoC(如骁龙、天玑、A 系列)内部有多层片内存储,它们在功能角色上与 BK7258 的 SRAM 高度对应:

嵌入式芯片(BK7258) 手机 SoC 对应物 功能角色对应
SRAM(640KB):中断栈、主栈、idle 栈、DE 驱动、JPEG 临时缓冲、UI 栈、日志缓冲等 L1 I-Cache / D-Cache(每核 32~128KB) 最快访问的片内存储,存放中断栈、热点代码/数据
SRAM 中专用区域(如 share ram 给 BT 使用) SoC 内部 SRAM / TCM(几百 KB~几 MB) SoC 集成的专用 SRAM,给特定硬件模块(modem、DSP、安全子系统)独占使用
SRAM 中 lvgl_heap、vglite_heap L2 Cache(256KB~1MB+,多核共享) 第二层高速缓存,GPU/DMA 等硬件模块共享
PSRAM(16MB):OS 代码、堆、UI 缓冲、显示缓冲 LPDDR(4~16GB) 主运行内存

5.2 为什么说功能对应但不可等视

SRAM 在嵌入式芯片中是"主存"的一部分

在 BK7258 / ATS308X 这类 MCU 上,SRAM 是软件直接可见、可分配的主存

  • 链接脚本精确指定每个变量放在哪个 SRAM bank(如 ram3 放中断栈 2K、ram4 放主栈 1.5K、ram5 放 idle 栈 4K、ram6 放 DE 驱动 6K 等)
  • 裸机低功耗模式下,关闭 CorePLL 和 PSRAM 后,仅靠 SRAM 就能独立运行算法
  • 裸机使用的变量需加 __act_s2_sleep_data 修饰符链接到 SRAM,调用的函数需加 sleepfunc 链接到 SRAM
手机 SoC 的 L1 Cache / TCM 对软件不可见

手机 SoC 的 L1/L2 Cache 由硬件自动管理 ,应用软件无法直接分配变量到 L1 Cache

  • Cache 行的内容由硬件预取和替换算法自动决定
  • 操作系统和应用看到的内存地址空间是统一的 DDR 空间
  • 只有内核驱动(如安全子系统、modem 固件)才能使用 SoC 内部 SRAM / TCM,且通常由厂商预分配
SoC 内部专用 SRAM 确实存在

手机 SoC 内部确实集成有专用 SRAM,但用途完全不同:

手机 SoC 内部 SRAM 用途 软件可见性
Modem SRAM 蜂窝 modem 固件运行 仅 modem 子系统可见
DSP SRAM 音频 DSP / HiFi DSP 代码和数据 仅 DSP 可见
安全子系统 SRAM TrustZone / Secure Boot 仅安全世界可见
GPU 注册表 SRAM GPU 内部寄存器和 tile buffer 仅 GPU 可见

这些 SRAM 的角色与 BK7258 中 SRAM 的 share ram(BT 8K + media 24K)或 DSP 占用区域完全对应------都是特定硬件模块独占的片内存储

5.3 总结对比

维度 嵌入式 SRAM(BK7258) 手机 SoC 片内存储
是否存在 ✅ 是(640KB) ✅ 是(L1 Cache + SoC 内部 SRAM)
功能对应 中断栈、主栈、驱动、缓冲 L1 Cache 承担热数据,SoC SRAM 给特定模块
软件可分配 ✅ 链接脚本直接指定变量到 SRAM ❌ 应用不可直接分配(L1 自动管理)
裸机可用 ✅ 关闭 PSRAM 后仅 SRAM 可用 无裸机概念
容量 640KB ~ 992KB L1: 32~128KB/核;SoC SRAM: 几百 KB~几 MB
低功耗独立运行 ✅ 关 CorePLL + PSRAM,仅 SRAM 跑算法 ❌ 无法关闭 DDR 独立运行

一句话总结 :手机 SoC 内部确实有类似 SRAM 的片内存储(L1 Cache、SoC 专用 SRAM),功能角色对应。但关键差异在于------嵌入式芯片的 SRAM 是软件可直接分配、可在裸机低功耗模式下独立运行的主存;而手机 SoC 的片内存储对应用软件基本不可见,由硬件自动管理或仅特定子系统使用。


六、对测试的影响

测试场景 嵌入式(SRAM/PSRAM) 手机(DDR/eMMC)
内存泄漏 PSRAM 仅 16MB,泄漏几十 KB 就可能 OOM;需长运 7×24h 监控内存增幅 ≤10% DDR 8GB,容忍度高得多
Cache 一致性 PSRAM 通过 cache 访问,DMA2D 和 CPU 同时访问需手动 cache clean/invalidate DDR 有硬件一致性协议(CCI/DSU),软件无需手动管理
功耗测试 SRAM 可独立低功耗运行(关 PSRAM 省 CorePLL 功耗) DDR 无法完全关闭,功耗基线高
存储读写 Flash 写入慢且有寿命限制,OTA 需断电保护 eMMC 有 F2FS 磨损均衡,断电恢复更完善
裸机 vs OS 裸机模式不能访问 PSRAM,算法只能用 SRAM 手机无裸机概念
Coredump 需 dump SRAM + PSRAM 区域(地址范围 imageram_start ~ imageram_end) 完整 DDR dump,容量大

对测试工程师而言 :嵌入式平台最大的挑战在于内存资源极度受限下的稳定性和 cache 一致性,这是手机测试中几乎不会遇到的问题。PSRAM 仅 16MB 的容量意味着内存泄漏的容忍度极低,长运测试中的内存监控是必测项;而 cache 一致性问题(CPU 与 DMA2D 共享 PSRAM 区域时)是真实存在的 bug 来源,需要专项覆盖。


本文基于 BK7258(Beken)和 ATS308X(Actions Semiconductor)嵌入式芯片平台资料整理,与手机平台(骁龙 / 天玑 / Apple A 系列)公开规格进行对比分析。

相关推荐
poiu12346574 小时前
如何一键清理手机空间且不删除用户数据|工具客观实测对比
智能手机
byte轻骑兵9 小时前
2026手机远程办公:向日葵、TeamViewer、ToDesk鸿蒙适配+传文件+AI审计功能对比
智能手机·harmonyos·todesk·teamviewer·手机远程办公
Anhty1 天前
2026 实测 4 款 AI 变声器|QQ 聊天伪装声线,告别僵硬假声
人工智能·功能测试·ios·智能手机·安卓
IT小白杨1 天前
从Chromium重构到真实ARM云手机:多账号隔离方案的技术演进
大数据·经验分享·智能手机·重构·安全架构·指纹浏览器
xiongmosy1 天前
当手机长出身体:荣耀Robot Phone的“敢想敢不同”之路
智能手机
zhangfeng11332 天前
Open-AutoGLM 手机端 AI Agent 框架 用自然语言操控手机
人工智能·智能手机
zyplayer-doc3 天前
VuePress类静态文档站和动态知识库怎么选:两种技术路线的适用场景
javascript·人工智能·后端·安全·智能手机
guyiICtestsocket3 天前
国内支持定制的手机LPDDR芯片测试座工厂多种结构
人工智能·python·智能手机
野生yumeko3 天前
QtScrcpy电脑无线控制手机屏幕
经验分享·笔记·智能手机