PSRAM和LPDDR是如何降低功耗的?

因为DRAM特有的自刷新特性与高频通信信号的处理,DDR始终是电子系统设计中功耗大户,本文重点总结LPDDR以及PSRAM在降低功耗方面所做的针对性设计对策。

image.png

DDR的功耗问题

随着频率的飙升,现代DDR(特别是DDR5)早已成了主板上的耗电大户。这也是为什么现在我们PC上的高端内存条都必须穿上厚重的金属散热马甲,甚至还要单独配置电源管理芯片(PMIC)。

image.png

那么DDR的高功耗问题从何而来呢?大体上,DDR高功耗的原因可以归结为以下三大核心部分。

动态功耗

对于这个数字电路动态功耗的计算有一个非常经典的功耗计算公式:

$$ P = C \cdot V^2 \cdot f $$

总结起来就是:数字电路的动态功耗,与工作频率 $f$ ,电压 $V$ 的平方以及寄生电容 $C$ 成正比。

现在的DDR4动辄3200MT/s,DDR5更是飙到了5600MT/s甚至更高,也就是说其内部基频高达2.8GHz以上。在这样的高频率下,芯片内部数以亿计的晶体管和外围的几十根数据线、时钟线,每秒钟要进行几十亿次的电平翻转(从0到1/从1到0)。这种高频开关动作会产生巨大的瞬间电流,也是DDR在工作状态下最大的发热源。

同样,电路板上的PCB走线和接插件会带来了一定的的寄生电容(对应于上面动态功耗计算公式中的 $C$),以及为了保证信号在PCB走线并经过分叉后依然精准,DDR4必须要维持 $1.2V$(DDR5为 $1.1V$)的较高I/O驱动电压,按照以上的动态功耗计算公式,其功耗会被指数级放大。

静态模拟损耗

当频率进入微波级别(如以上提到的DDR5600的基频达到了),DDR必须在外围接口模块(也就是DDR的PHY模块)挂载非常耗电的高级模拟电路来保证高频通信信号不畸变:

  • DLL(延迟锁相环): 为了确保在纳秒级甚至皮秒级的窗口内精准对齐外部时钟和内部数据,DLL模块必须保持在后台高速运转,不断侦测并强行补偿微小的物理延迟。只要时钟不停,DLL的耗电就不会停,这是产生静态底电流的来源之一。
  • ODT(片内终端电阻): 高频信号在长的PCB走线上会产生严重的电磁反射。为了吸收这些反射波,DDR会在接收数据时瞬间开启内部的ODT电阻。这就相当于在电路上铺设了一条直流通路,信号会直接化为热量消散,变成实打实的热损耗。

与DLL和ODT的相关工作原理,可以参考PSRAM能成为DDR缺货的解决方案吗? 一文。

DRAM的自刷新功耗

本质上,DDR的底层是DRAM存储阵列,每一个bit的数据都要靠微型电容里的电荷来维持。

而现实中的电容会不可避免地漏电。为了不让数据丢失,即使系统完全闲置(没有任何读写操作),SoC主控也必须每隔几毫秒就向DDR发送一次自刷新命令,强制对芯片内部把几亿个电容频繁充放电荷。

这种大规模充放电的工作机制,导致DDR即使在待机休眠时,也无法像静态逻辑电路那样做到真正的零功耗。

具体DRAM的工作原理,同样可以参考PSRAM能成为DDR缺货的解决方案吗?一文。

LPDDR是如何缓解功耗问题的?

针对以上DDR存在的高功耗问题,LPDDR在设计时,以低功耗设计优先的原则,对标准DDR的底层物理架构进行了针对性的革新设计,在继续维持高数据吞吐率的情况下,极大降低功耗,使之更适合笔记本、手机这类移动高性能计算设备。

image.png

针对动态功耗

依然是数字电路动态功耗的计算公式: $P \propto C \cdot V^2 \cdot f$。

要在保持高频率($f$)的情况下降低功耗,首先在I/O接口电压($V$)的角度做文章。

如上所述,标准 DDR4 的核心和 I/O 电压通常都是 1.2V。而 LPDDR4X 则把负责外部通信的 I/O 电压(VDDQ)直接降低到了 0.6V,$0.6^2$ 只有 $1.2^2$ 的四分之一。这就意味着,单纯在数据总线的高低电平翻转上,LPDDR4X 就比 DDR4 节省了 75% 的动态功耗。

此外。为了在这么低的电压下保证信号不失真,LPDDR 采用了专用的低压摆幅终端逻辑(LVSTL),并要求主控与内存的物理距离必须极短(通常采用 PoP 叠层封装或紧凑的 SIP),这样也有助于降低PCB走线的寄生电容 $C$。

针对静态功耗

如上所述,为了对齐高频通信中的时钟信号,DDR 增加了一个专门的 DLL 模块,这个模块即便是系统处于空载状态下也要持续运行,且极度耗电。

因此,LPDDR 在芯片设计中彻底抛弃了其内部的 DLL 模块。取而代之的是,针对时钟信号对齐问题,它要求主控 SoC 的内存控制器在系统开机时,执行极其复杂的**Training(链路训练)**算法,由 SoC 的 LPDDR 控制器去测算每根数据线的延迟,然后在 SoC 内部进行主动相位补偿。

这样就把信号同步的压力转移给SOC主控,LPDDR 也因此甩掉了最大的静态功耗包袱。

引入 TCSR 与 PASR 机制

对于其内部DRAM阵列所执行的自刷新动作,标准 DDR 不做任何区分,无论当前温度高低和数据有没有用到,对整个阵列中的所有 Bit 都按最高频率通刷,这样实际上就造成了极大的功耗浪费。

因此,LPDDR 内部集成了两个智能控制刷新的机制来优化功耗:

  • TCSR(温度补偿自刷新): 芯片内部有温度传感器,当感知到设备是冷机状态时(这种状态下电容漏电相对较慢),就会自动把自刷新频率降低。
  • PASR(部分阵列自刷新): 针对休眠的情况,在主控休眠前,由操作系统通过专门的指令告诉 LPDDR 哪几个 Bank 是空的,这样在休眠的过程中,LPDDR 在自刷新时就可以直接对空 Bank 断电,只维持有数据的 Bank 自动刷新即可。

通过以上三个维度对于功耗的针对性优化设计,LPDDR 的功耗相比 DDR 有了大幅度的降低:

6cf5a78f-b0c9-4fac-a6d5-c712ac8c7627.png

PSRAM的功耗问题解决之道

尽管如PSRAM能成为DDR缺货的解决方案吗? 一文所总结的,PSRAM 与 DDR/LPDDR 实际上是针对完全不同的领域和应用的产品,但 PSRAM 的低功耗表现确实比较突出,所以这里同样总结一下PSRAM 在降低功耗方面所做出的努力。

如果说 LPDDR 是通过极其昂贵的先进制程和极其复杂的精细化管理,在保证性能的前提下实现了相对低功耗,那么 PSRAM 解决功耗问题的逻辑,实际上就是“断舍离”——也就是用简单粗暴的物理阉割和架构降维的处理思路,来换取极端的省电(当然性能也完全与 DDR/LPDDR 不在一个层次)。

下图是华邦一款PSRAM的功耗状况:

31a6bf33-c8c4-4a5f-8c66-813b1113aabe.png

针对动态功耗

仍然是基于数字电路的动态功耗公式来进行分析:$P = C \cdot V^2 \cdot f$。

对于动态功耗的优化,LPDDR 的做法是尽可能降低电压($V$),但是这样也要求SOC主控与LPDDR之间的距离尽可能短,而 PSRAM 的做法则是把频率($f$)和引脚电容($C$)降到最低。

  • 串行总线: DDR 动辄 60 到 100 根I/O引脚,在主板上的庞大走线网络会导致寄生电容($C$)很大。而主流的 OSPI PSRAM 只有 8 根数据线,整体引脚不到 12 个。
  • 低频频段: DDR 的物理时钟普遍在 1200MHz 以上的微波频段, PSRAM 主动避免解决微波通信带来的复杂性问题,将最高时钟卡死在 200MHz 以内。

其结果就是,因为引脚少、频率低,主控 SoC 和 PSRAM 在进行数据通信时,需要克服的物理电容和翻转次数成数量级减少。因此,即便 PSRAM 的 I/O 电压依然采用常规的 1.8V(没有像 LPDDR 那样降到 0.6V,这样就对PCB的布局走线要求不高),其总体动态功耗依然远远低于 DDR。

针对静态模拟功耗

因为时钟频率低于200MHz,不需要面对高频通信信号问题,不需要 DLL 来强行对齐纳秒级的相位,也不需要 ODT 去吸收高频信号的电磁反射,这样就可以去掉 DDR 中静态功耗很高的 DLL 和 ODT 模块。

在没有数据读写时,PSRAM 的接口端可以进入绝对静默,静态功耗可以直接降低到零。

针对休眠底电流

无论是 DDR 还是 LPDDR ,即使在系统进入休眠状态的情况下,主控 SOC 的 DDR 控制器仍然要保持工作,对 DDR/LPDDR(LPDDR只是可以关闭掉部分空闲Bank的刷新) 内部的存储阵列保持刷新。这样也就导致DDR/LPDDR即便在休眠状态下,其休眠低电流也居高不下。

针对以上 DDR 必须由 SoC 外部管理的痛点,PSRAM 使用完全不同的自刷新和休眠控制逻辑,彻底解决了休眠状态下的底电流问题。而这一点,也是PSRAM很适合用于一些极端关注休眠功耗的应用的原因所在。

**PSRAM内置了自刷新模块。**这样在设备进入休眠状态时,主控 SoC 可以直接切断外部时钟并彻底断电。PSRAM 内部极其省电的微型 RC 振荡器苏醒,并以很慢的节奏给电容阵列补电,以维持数据不丢。

经过以上针对性的功耗优化,DDR 与 PSRAM 之间在功耗上也就存在着巨大的量级差异:

在满载工作状态下

  • 标准 DDR4: 动辄消耗 2瓦 到 3瓦 的功率,电流在 数以百计的毫安 (mA) 级别,芯片表面会明显发热。
  • OSPI PSRAM: 以 200MHz 吞吐数据时,电流通常只有 20mA 到 35mA 左右。

在深度休眠状态下

  • 标准 DDR4: 即使进入进入休眠状态,其底电流通常依然高达 10mA 到 20mA,这一点也是 AOV Camera功耗居高不下的主要原因。
  • OSPI PSRAM: 待机电流直接断崖式下跌,通常在 20µA 到 50µA 之间。

7721f3d0-8063-4c86-abb5-0616b342f437.png