概述
什么是PSRAM?
PSRAM(伪静态随机存储器)是一种结合了SRAM的易用性和DRAM的高密度特性的存储器。它通过动态刷新机制实现类似SRAM的接口。
PSRAM特性
定期自动刷新以维护数据完整性,对软件层完全透明,无需显式管理刷新操作。
集成温度传感器,在高温(>85°C)环境下自动缩短刷新间隔,常温低温下延长间隔,优化功耗效率。
访问速度快,适合高速数据处理。
接口简单,易于集成。
密度中等,提供了比SRAM更高的存储容量。
PSRAM应用场景
嵌入式系统,如IoT设备、音频设备、Wi-Fi模块等。
图形显示缓存,用于LCD/OLED屏幕驱动。
低功耗场景(电池供电设备)。
PSRAM 架构
物理结构
存储单元:基于DRAM的电容结构,集成内部刷新控制器。
并行接口:数据线(DQ0~DQn),控制信号(CS, CK/CK#, DQS,RESET)。
双沿触发:支持 DDR(Double Data Rate)传输模式。
工作电压:1.7~2.0V,核心电压 1.8V。
控制结构
PHY:物理层,负责时序校准,可编程驱动强度,信号完整性增强。
SPIC:控制层,用于时序控制,协议转换,自刷新管理,仲裁,ECC等等。
Master:CPU、DMA、CRYPTO、WIFI等。
psram control architecture
PSRAM功能特性
随机访问:允许在任意地址读写数据。
Burst访问:支持连续读写多个数据,提高数据传输效率。
待机模式(Standby):关闭部分电路以降低功耗,保留存储数据。
休眠模式(Deep Sleep):关闭所有功能电路,所有刷新操作停止,存储单元中的数据将丢失。
PSRAM 使用方法
PSRAM 初始化流程
本流程描述SDK中自动初始化PSRAM的过程,涵盖硬件检测、参数配置、校准及内存布局规划等关键步骤。
硬件检测与型号识别
OTP 信息读取
操作步骤:
Boot 启动后,SDK 自动读取 OTP(One-Time Programmable)存储器的地址 0x7FF。
解析该地址中的 BD Number(Bonding Diagram 编号),判断芯片是否封装了 PSRAM 和 PSRAM型号。
PSRAM 上电与初始化
电源与时钟使能
操作步骤:
bootloader阶段开启 PSRAM 电源域(Power Domain),电压配置为 1.8V。
若芯片封装了PSRAM, 启动 PSRAM 专用时钟源,频率初始化为安全默认值。
关键 API:
1LDO_PSRAM(ENABLE); // 电源使能 2RCC_PeriphClockCmd(APBPeriph_PSRAM, APBPeriph_PSRAM_CLOCK, ENABLE); // 时钟使能
控制参数与寄存器初始化
操作步骤:
根据检测到的 PSRAM 型号,加载预定义的 时序参数表(如 Tcem, Tcsh等),并配置 PSRAM 控制器寄存器。
配置psram 设备寄存器,设置突发长度(Burst Length)、驱动强度(Drive Strength)等。
示例代码:
1// 设置 Burst Length, CS Latency 2PSRAM_WB_DEVIC_Init(); 3// 配置时序参数 4PSRAM_CLK_Update(); 5PSRAM_CTRL_Init();
PSRAM校准
主要进行DQS延迟校准,通过动态调整 DQS 与 DQ 信号的相位对齐,优化采样窗口。
校准 API:
1PSRAM_calibration(); // DQS 延迟校准
内存布局(LD)规划
Menuconfig 配置选项
通过 menuconfig 选择 PSRAM 的链接策略(Link Option):
PSRAM 使用注意事项—-ongoing
4.1 高温下使用psram
在高温(如>85℃)环境下使用PSRAM时,可能需要调整TCEM值以确保稳定性。
4.2 Row Hammer问题
Row Hammer 是一种由**高频次访问特定存储行(Row)**引发的硬件级漏洞,最早在DRAM中发现,但同样可能出现在基于DRAM架构的PSRAM中。其核心机制是:
电荷泄漏: 频繁激活某一行(Aggressor Row)会导致相邻行(Victim Row)的存储电容电荷被干扰,从而引发数据位翻转(Bit Flip)。
刷新不足: PSRAM虽然内部集成刷新逻辑,但在极端访问频率下,刷新周期可能无法及时补偿电荷损失。
如何避免
在带有Cache属性的PSRAM系统中,Cache通过减少对物理内存的直接访问频率,可显著降低Row Hammer的发生概率。其核心原理如下:
访问频率稀释:Cache作为CPU与PSRAM之间的缓冲层,会将多次逻辑访问合并为少量物理访问,减少了对同一存储行的高频激活。
突发访问优化:Cache的预取(Prefetch)和批量写回(Write-back)机制,将随机访问转化为连续块传输,避免频繁切换行地址。
“本产品采用的PSRAM内置 目标行刷新(TRR) 机制,实时监测高频访问行,并主动刷新相邻行电荷,从根本上抑制Row Hammer效应。在极端访问模式下(每秒 10^6 次行激活),数据错误率为0。”
数据安全(internal)
Scramble
支持的PSRAM型号
PSRAM TP
根据具体型号和应用场景,可能需要调整PSRAM的TP参数。