引言
在本文中,我们将从基础开始,逐步深入地详细介绍 LPDDR5 内存的物理结构。最后,您将清楚地了解与 LPDDR5 内存相关的关键术语,包括:
-
LPDDR5 IO:命令总线 (CA)、数据总线 (DQ/DQS)、芯片选择 (CS)、时钟 (CK)
-
存储体和存储体组架构
-
等级和页面大小
-
LPDDR5 内存通道
-
x16/x32/x64 宽度的解释
我们将从单个 DRAM 内存单元开始,逐步探索它如何形成焊接到 PCB 上的完整内存封装。
图 0:存储单元到存储器的封装
LPDDR5 内存芯片
单个内存单元
从最底层来讲,一个位本质上是一个储存电荷的电容器和一个充当开关的晶体管。由于电容器会随时间放电,因此除非定期刷新电容器,否则信息最终会消失。这就是 DRAM 中的 D 的由来 – 它指的是动态,而 SRAM 中的则是静态。
图1,存储单元
组、行和列
当您缩小一个级别时,您会注意到存储单元排列在行和列的网格中。
一个这样的存储单元网格称为 Bank。Bank 还具有称为 Sense Amps 的结构。在读取操作期间,首先激活行并将其加载到 Sense Amps 中。然后使用列地址读出相应的列位。
在 LPDDR5 中,
-
Bank 的每一行都包含 1KB(8192 位)的数据
-
每行中的 1KB 被排列成 64 列,每列 128b。[64 x 128b = 8192b]
-
因此,每次读取/写入访问时都会指定一个行地址和一个列地址,并且 Bank 返回 128b 的数据。这个数字很重要,我们将在下一节中再次讨论它。
图 2:内存阵列
LPDDR5 Bank 架构
再缩小一个层次,每个 LPDDR5 Die 都有 32 个这样的 Bank 块。这 32 个块可以排列成 3 种不同的配置。
1,Bank Group 模式
-
也称为BG 模式。在这里,32个 Bank 块被组织成 2 组,每组 4 个 Bank Group,每个组有 4 个 Bank。[2x4x4 = 32]。
-
在下面的图3 中,请注意 Y 轴上的 BG0、1、2、3 和 X 轴上的Bank0、1、2、3。
-
在READ/WRITE 操作期间,提供的Bank 地址激活 2 个 Bank,总共访问256b(请记住,每个Row 和 Col 地址访问Bank 内的 128b)。
2,16 Bank模式
-
在此模式下,32个 Bank 块被组织成 2 组,每组 16 个 Bank [2 x 16 = 32]。
-
此模式与Bank Group 模式的区别在于,两种模式访问Bank 的时序参数不同。稍后您将看到,16组存储模式只能在低于3200 Mbps 的速度下运行,而BG 模式可在高于3200 Mbps 的速度下运行。
3,8 Bank模式
-
在此,32个存储块被组织成4 组 8 个存储块 [4 x 8 = 32]。因此,在读/写操作期间,提供的存储块地址会激活4 个存储块,总共可访问512b。
图 3:LPDDR5 Bank 架构
为什么有 3 种存储体模式,而不只有一种?
LPDDR5 提供多种存储体模式,以适应不同的操作速度(例如3200Mbps、5400Mbps、6400 Mbps 等)和不同的数据访问宽度(256b和 512b)。通过在模式寄存器MR3 中设置参数,可以在初始化期间选择存储体模式(默认设置为16B 模式)。
因此,您在 3 种配置中选择哪一种取决于2 个因素
-
速度等级– 内存以什么速度运行?
-
本机突发长度– 每次操作您希望读取/写入多少位数据?
让我们详细看看这些。
速度等级
-
仅当内存运行速度> 3200Mb/s 时,才能使用存储组模式
-
仅当内存运行速度<= 3200Mb/s 时,才能使用16 存储组模式
-
8 存储组模式可在所有速度下访问
原生突发长度
这是指内存控制器在一次突发传输(Burst Transfer)中,从内存中读取或写入的连续数据的字数。
-
在16 存储组模式和存储组模式下,读取操作会并行激活2 个存储组并访问256b 数据(请记住,每个存储组返回128b)。在LPDDR5 中,数据总线宽度为16 位(DQ[15:0])。因此,256b数据随后以 16个块的突发形式流出,每个块为16b(16×16 = 256)。这也称为BL16 或突发长度 16。
-
在8 存储组模式下,如图3 所示,每个读/写操作都会激活4 个存储组,并总共获取512b 数据。然后,这些数据以32 个节拍的突发形式流出,每个节拍包含16b 数据(32×16 = 512)。这称为突发长度32。
示例:如果您的系统设计为以6400Mb/s 运行(LPDDR5支持的最高速度),并且您需要以256b 粒度访问数据,那么您将选择Bank Group 模式。
注意:您也可以在Bank Group 模式下执行BL32,但它有点复杂,并且会进行一些数据交错。如果您想要32 的突发长度,最好只使用8B 模式。
页面大小
页面大小是激活一行时加载到Sense Amps 中的位数。
-
在16bank 组模式和组组模式下,页面大小为2KB
-
在8B 模式下,页面大小为4KB
我们是如何得出这些数字的?
在图 2 中,我们看到一个组中的每一行都包含1KB 的数据(排列为64 列,每列128b);并且,从图3 中可以看出,在16 组和组组模式下,两个组同时激活,总共获取256b。因此,从内存芯片的角度来看,激活了2 个组,总页面大小为2x1KB = 2KB。
由此可见,在 8组模式下,一次访问会激活4 个组,因此页面大小为4KB。
密度
到目前为止,我们已经讨论了LPDDR5 内存芯片的物理结构,但内存芯片的容量是多少,它可以容纳多少位?
LPDDR5 内存芯片以特定容量制造,从2Gb 到 32Gb,如 JEDEC规范中所述。2Gb 容量的芯片和32Gb 容量的芯片之间的主要区别在于每个存储体中的行数。下表显示了在BG 模式下运行的内存的地址位数。
表 1:x16 DQ 模式寻址
得出 2Gb 芯片的总密度:4 (BG) x 4 (Banks) x 8192 (行) x 64 (列) x 256b (每列) = 2,147,483,648 = 2Gb
综合以上:
-
DRAM 芯片相当于一栋装满文件柜的建筑物
-
Bank Group 标识楼层号
-
Bank Address 标识所需文件所在的楼层的文件柜 Row Address 标识文件位于柜子中的哪个抽屉。将数据读入感测放大器相当于打开/拉出文件抽屉。
-
Col Address 标识此抽屉内的文件编号。当您想要读取另一行时,您必须将此文件放回抽屉中并将其关闭,然后再打开下一个抽屉。这相当于预充电。
x8 DQ 模式
LPDDR5 接口有 16 个 DQ(数据)引脚。因此,默认情况下,内存处于所谓的 x16 DQ 模式。但是,您可以禁用 8 个 DQ 引脚并将内存置于 x8 DQ 模式。在此模式下,读取或写入访问期间仅激活一个 Bank(而不是 2 个)。作为回报,您将获得更深的内存,即与 x16 模式相比,每个 Bank 的行数似乎增加了一倍。(我们将访问宽度减半,因此正如您所期望的那样,深度增加了一倍。)
图四:x8 Bank组模式
表 2:x8 DQ 模式寻址
请注意上表中与表 1 相比,阵列预取和页面大小减半,行数加倍。x16 与 x8 模式在模式寄存器 MR8 中设置。
LPDDR5 内存通道
在 LPDDR5 的背景下,您会听到的另一个常用术语是“通道数”。用最简单的术语来说,内存通道就是 LPDDR5 控制器与之交互的通道。内存控制器和内存通道之间的这个接口具有以下 IO。
表 3:LPDDR5 IOs
等级、宽度级联和深度级联
通道可以由一个或多个 LPDDR5 内存芯片组成。在下图中,我展示了如何配置多个 2Gb 内存芯片以增加通道中可用的总内存容量。
-
2Gb 通道容量:这很简单。只需一个 2Gb 内存芯片连接到 LPDDR5 IO。
-
4Gb 通道容量:这里,我们有 2 个“深度级联”的 2Gb 芯片,也称为 2 等级配置。通过设置 ChipSelect0(CS0 引脚)访问芯片 A,使用 CS1 引脚选择芯片 B。但是,两个芯片共享相同的地址和数据总线,因为一次只有一个 ChipSelect 引脚处于活动状态。
-
8Gb 通道容量:这里我们有 4 个 2Gb 芯片。与 4Gb 容量类似,有 2 等级。但在每个等级中,我们有 2 个“宽度级联”的芯片,即每个芯片都配置为 x8 宽度模式。
图五:LPDDR5 通道
LPDDR5 内存封装
图六:x64 4 通道 LPDDR5 封装
最后一次缩小,现在我们有了整个 LPDDR5 内存器件包。这是您可以从 Micron 或 Samsung 等供应商处购买的产品。
通常,内存包包含多个通道。这允许内存制造商创建具有不同宽度和容量的内存设备以适应各种应用。
供应商零件目录中的典型宽度和容量为:
-
容量:4GB、8GB、16GB 等
-
宽度:x16(1 通道)、x32(2 通道)、x64(4 通道)。每个通道都可以独立访问,并具有自己的一组 CA 和 DQ 引脚。
SoC-LPDDR5 接口
现在我们了解了 LPDDR5 内存是什么样子的,我将以讨论处理器或 SoC 如何读取/写入内存来结束本文。为了与 LPDDR5 内存通信,SoC、ASIC、FPGA 或处理器需要控制器和 PHY。这 3 个实体(控制器、PHY 和 LPDDR5 内存设备)共同构成了 LPDDR5 内存子系统。
图七:LPDDR5 内存子系统
LPDDR5 接口
如前所述,下表描述了 PHY 和一个 LPDDR5 内存通道之间的接口。这些 IO 是通过 PCB 的物理走线。
DFI 接口
您可以将控制器视为逻辑层。大型状态机可确保在执行读取、写入或刷新操作时严格遵循 LPDDR5 协议。另一方面,PHY 是物理层。它具有所有必要的模拟部件,可确保可靠地启动和捕获时钟、地址和数据信号到内存和从内存中发出信号。
参见上图 7,PHY 和控制器通过一个定义明确的标准接口(称为 DFI 接口)相互通信。PHY 可以通过此接口与控制器通信,无论是处于初始化阶段、校准阶段还是准备执行读/写。
控制器接口
访问 DDR 内存是一种微妙的舞蹈。例如,要将数据写入内存,需要向内存发出多个命令以激活正确的组、行和列,并且必须在精确的时间间隔后(称为写入延迟)启动数据。在这之间,需要以固定的周期刷新内存,以免丢失任何数据。
控制器抽象了上述所有复杂问题,并提供了一个简单的接口(如 AXI),您可以通过该接口发出写入或读取操作。
除了提供一个简单的接口来访问内存之外,控制器还具有几个智能功能(例如地址重新排序),可帮助 SoC/处理器最大化内存带宽。这很重要,因为内存几乎总是笔记本电脑、手机或 TPU 等复杂 ASIC 性能的瓶颈。
结论
简而言之,本文所讨论的内容:
-
LPDDR5 内存设备究竟是由什么组成的。
-
内存接口是什么样子的。
-
处理器或 SoC 如何与内存通信。
参考
-
JEDEC JESD-209 LPDDR5 协议规范
-
Micron 数据表
Source:<LPDDR5 Tutorial: Deep dive into its physical structure>