PSRAM能成为DDR缺货的解决方案吗?

在当前DDR内存市场供应紧张,价格波动剧烈的情况下,部分IPC领域的SOC供应商开始推广内置PSRAM的Camera SOC平台,PSRAM相比我们常用的DDR有哪些差异,适用于什么应用,本文尝试解释清楚以上问题。

要弄清楚PSRAM究竟是什么,首先要搞明白SRAM与DDR(DRAM)的区别。

SRAM与DRAM

SRAM可谓是存储界的高富帅,目前最常用的就是CPU内部的L1/L2 Cache。它存储1个Bit的数据需要整整6个晶体管(6T架构)。这6个晶体管交叉耦合形成一个逻辑闭环(触发器)。

这种存储结构下,对于bit信息的存取非常简单可靠:

  • 写数据时: 在外部施加一个大的电压,强行把触发器的状态设置到某一边。
  • 读数据: 直接测量触发器两端的状态。这个读取动作不会破坏触发器原来的状态,而且速度极快(纳秒甚至皮秒级)。

其优点是,这个存储结构极度稳定,只要不断电,状态永远锁死,不需要刷新,且对这个内存bit的读取是非破坏性的,速度极快。

但缺点肯定就是占地面积太大,容量很难做大,成本极其高昂。

下图是SRAM一个存储bit的电路结构:

image.png

而DRAM最初的诞生和后续的持续演进发展,都是为了解决以上的大容量和低成本内存问题。

在DRAM单个bit存储单元的设计中,只用了1个晶体管+1个微型电容。对于这个存储结构的类比,可以认为是:晶体管是水龙头,电容是小水桶。水桶装满水代表1,空着代表0。

这种bit存储结构存在一个致命的物理缺陷:电容会漏电。 因此在几毫秒内,满水桶就会漏成半水桶,最终1就会变成0。因此,为了维持位状态的稳定性,必须周期性地把晶体管打开检查(判断是0还是1),如果是1的话就重新把水(电容里面的电荷)注满。这就是DRAM需要动态刷新(Refresh)的物理本质所在。

更糟糕的是,DRAM每个bit的读写过程非常复杂:

  • 写数据的时候:先打开晶体管(水龙头),往电容(水桶)里灌电荷(1),或者把电荷抽干(0)。
  • DRAM读数据的过程是一个破坏性读取的复杂过程: 首先要探测水桶里有没有水(电荷),要检测就只能把晶体管打开,让水桶里的水流到外面的总线(Bitline)上。通过外部的灵敏放大器(Sense Amplifier)感受到微弱的水流,判定这个bit里面之前的状态是0还是1。而因为在读取的时候水流出来了,因此读取完之后,原来的的数据状态就被破坏了。所以,DDR在每一次读取操作的最后,都必须强制加上一个写回的动作,把刚才读到的1重新灌回到水桶里。

image.png

以上就是SRAM和DRAM工作原理的简单总结。而后续要介绍的DDR、LPDDR、PSRAM都是基于DRAM的,其内部的bit存储阵列结构及其读写过程都是如上所述的DRAM的情况。

💡 注意, PSRAM不是SRAM,而是DRAM。它之所以带个“P(伪)”,正是因为它挂羊头卖狗肉。它的内部结构依然是会漏电的DRAM,只不过是在硅片内部集成了一个微型控制器来自动做刷新动作,对外部主控伪装成了不需要刷新的SRAM而已。

要理解PSRAM究竟是如何工作的,一个比较好的切入点是先理解最常用的DDR究竟是如何工作的,再来看它与DDR之间的差异是什么。

DDR的技术壁垒到底是什么?

需要注意,DDR的不同规范版本内置其更早的SDR等的内部结构与工作流程非常复杂,但本文的目的主要是为了解释清楚DDR/LPDDR与PSRAM之间在工作流程和结构上的差异,因此不会对更细节的内容进行总结和解读,只写出与PSRAM之间有明显差异的地方。

我们在产品设计中,在用到外置DDR的时候,经常会面对DDR功耗大以及电路设计复杂的问题,也正因为如此,目前主要Camera SOC厂商的方案普遍内包了DDR来降低系统的设计和调试难度。DDR的这个复杂性主要原因其对于高达几十GB/s的高吞吐量的追求。

下图是一个典型的SOC DDR控制器与DDR芯片之间的连接图:

image.png

为了追求SOC与DDR之间极高的吞吐率,目前的主流DDR5已经做到了5600MT/s (Mega Transfers per second,兆次传输每秒)甚至更高。

DDR(双倍数据速率)在通信过程中的基本原理是:利用时钟信号的上升沿传一次数据,下降沿再传一次数据。所以,当一个 DDR5 的数据吞吐率达到 5600 MT/s 时,它的实际物理时钟(也就是 SOC 端通过 CLK 引脚发送给 DDR 的那个真实的方波震荡频率)达到了 5600 / 2 = 2800 MHz (2.8 GHz)!

2.8 GHz 的基频,在 PCB 板上已经属于典型的微波频段。在这个频率下,主板上的铜箔走线已经不再是导线,而是变成了一根根微带天线,由这个天线所带来的信号反射、串扰、衰减等问题会非常严重,这才是高频DDR要解决的最核心的问题。解决这个问题所需要的高速模拟与混合信号设计能力,才是真正把中低端存储厂商和国际巨头(如三星、SK海力士、美光)隔开的分水岭。

为了解决以上的高频信号问题,高频DDR在信号设计中采用了DDL锁相环和ODT片内终端电阻的方案。

0029a77a-d62b-4ee1-9a87-887fd73841b0.png

DLL(Delay-Locked Loop,延迟锁相环)模块的作用主要是对抗DDR芯片内部的时钟延迟。

在外部SoC对DDR中的数据进行存取的通信过程中,其时钟信号经过PCB电路板的走线到达DDR引脚后,必须经过DDR内部复杂的布线树才能到达最终输出数据的寄存器,这段物理路径会产生约 0.1到0.2纳秒的内部传播延迟。

在没有DDL的情况下,等到DDR的数据到达SOC的引脚时,可能已经晚了半个甚至一个时钟周期。而外部SoC期望在时钟边缘准时收到数据,这样的存取结果读取到的就全是乱码。

而DLL模块的作用就像是一个极其精准的时序预判器。在工作过程中,它会不断测量外部时钟到达和内部数据吐出之间的那段固有物理延迟。然后通过内部的压控延迟线,故意把DDR内部用于触发数据的时钟提前,确保DDR返回的数据按照SOC的时钟准确的出现在其引脚上**。**

而ODT(On-Die Termination,片内终端电阻)的目的则主要是消灭信号回声。

如上所述,当传输线的信号频率达到GHz级别时,PCB上的铜线就不再是简单的导线了,而是传输线(Transmission Line)。当SoC全速向DDR发送数据(电磁波)时,如果信号冲到了DDR的引脚末端,发现阻抗不匹配,电磁波就会原路反弹回去产生回波信号。回波信号又会和 SoC 正在发送的下一个新波相撞,导致整个总线上的波形劣化(专业术语叫振铃、过冲、下冲),数据会瞬间全错。

为了应对以上射频信号的阻抗不匹配导致的回波问题,JEDEC规范决定:在DDR芯片内部(On-Die)的硅片上增加用来吸收反射波的终端电阻,这就是ODT。

PSRAM的结构与内部特性

相比于高速DDR在高频信号通信方面所面对的复杂性,PSRAM的结构就要简单很多。

绝大多数PSRAM的外部通信频率通常被限制在200MHz以内,这样就可以避开严重的电磁反射和纳秒级时钟偏移的问题,因此它的物理接口变成了常规的CMOS/LVCMOS收发器。

目前的主流PSRAM与主控SOC之间采用QSPI(四根数据线)和OSPI(八根数据线)的通信接口。SoC只需要发过来简单的SPI串行指令,PSRAM 会在其芯片内部把这些简单的指令,翻译成底层DRAM阵列需要的复杂指令组合(比如拆分成 Active激活行 -> Read/Write读写列 -> Precharge预充电)。所以SOC就不再需要内置复杂的DDR控制器。

d4462f95-87b1-468b-a598-eef64d55edb3.png

相比DDR,PSRAM有一个重大的革新就是其内置了自刷新计数器,PSRAM在其内部通过这个自刷新计数器来完整接管其内部DRAM阵列的自刷新行为。在这种情况下,需要休眠的时候,主控SOC甚至可以真正关机(只要维持住PSRAM本身的电源即可),而不会影响PSRAM里面的数据,这样在休眠模式下其功耗就得到了极大程度的降低。

  • 相比DDR,即使主机要休眠,SoC 的内存控制器不能断电,还要继续维持时钟引脚或者 CKE(时钟使能)引脚的特定电平状态。这就导致 SoC 内部始终有一部分电源域无法关闭,整机的底电流很难压下去。

所以,从总体上讲,PSRAM的设计哲学是牺牲极限的吞吐量和容量(因为通信的吞吐率太低,高容量就没有意义了,所以目前PSRAM的主流容量通常在 32Mb 到 256Mb之间),在芯片内部增加大量的逻辑电路解决掉DRAM阵列漏电的问题,给主控SoC呈现出来一个极度友好的接口,最终换取到的是极致的省电和极简的硬件设计。

总结

总的来讲,尽管DRAM内部的存储核心阵列(DRAM Cell)的制造仍然需要极高的工艺制程,但这并非是不可逾越的。DDR领域真正的技术壁垒,正是高速模拟与混合信号设计能力(也就是包含以上所简述的DLL、ODT、高速PHY接口在内的外围电路)。

对于很多做PSRAM或老旧规格DDR(如DDR2/低速DDR3)的厂商而言,他们的强项在于数字逻辑设计和低功耗控制。在100MHz到200MHz的频段里,数字信号还是比较理想的方波,因此不需要太复杂的模拟电路去修补信号。

但一旦想往高速DDR4甚至DDR5发展,厂商就必须组建顶级的模拟电路设计团队。他们要解决的不再是简单的0和1的逻辑问题,而是微波级别的电磁场问题。除了以上提到的DLL和ODT,现代高速DDR内部还必须集成 VREF(内部基准电压校准) 甚至 DFE(判决反馈均衡器) 等原本只在高端通信芯片(如PCIe、以太网PHY)里才会见到的高级模拟抗干扰技术。

这就是为什么市场上能做PSRAM的厂家多如牛毛,但能稳定供应高速LPDDR4X、DDR5的厂商屈指可数。因为后者的本质,是一个披着存储外衣的超高速射频/模拟芯片。

所以,结合以上DDR和PSRAM的内部架构组成和工作逻辑,就能清楚地看到,这两者根本面对的就不是同一个应用领域,根本就不具备可比性。

  • DDR系列(包括常用于移动端的LPDDR)的核心使命是提供极致的内存带宽。只要系统跑的是庞大的操作系统(如标准Linux、Android、Windows),或者需要处理密集的矩阵运算和高清多媒体流,就必须由DDR来进行处理。
  • 而PSRAM的目的则是在有限的PCB空间和极低的待机功耗下,为主控提供比片内SRAM大得多的缓存。只要设备是纯电池供电(低功耗),音频处理设备、低分辨率智能门铃、轻量级带屏IoT设备,使用PSRAM就非常合适,当然前提是软件架构从重型Linux转向RTOS,或者大幅优化应用层的内存占用和总线开销。

参考资料