LPDDR5/5X简介
功能描述
LPDDR5/LPDDR5X是高速、时钟同步的SRAM,内部有一个channel,数据位宽为16bit或8bit。
BANK结构
LPDDR5支持BANK结构
-
8B mode:支持所有速率
-
4BG * 4B:速率>3200Mbps时
-
16B:速率<=3200Mbps时
LPDDR5X不支持8B模式 -
寄存器配置:MR8_OP[1:0]
-- 0:LPDDR5
-- 1:LPDDR5X
| 条目 | 8-Bank 模式 (8B) | 16-Bank 模式 (16B) | Bank-Group 模式 (BG) |
|---|---|---|---|
| 适用标准 | 仅 LPDDR5 | LPDDR5 & LPDDR5X | LPDDR5 & LPDDR5X(5X 强制默认) |
| 配置寄存器 | MR3[1:0] = 2’b10 | MR3[1:0] = 2’b00 | MR3[1:0] = 2’b01 |
| 组织方式 | 4 Set × 8 Bank = 32 | 2 Set × 16 Bank = 32 | 2 Set × 4 BG × 4 Bank = 32 |
| 地址字段 | 无 BG;BA = 2 bit | 无 BG;BA = 4 bit | BG[1:0] + BA[1:0] |
| 并发激活粒度 | 4 Bank / 命令 | 2 Bank / 命令 | 2 Bank / 命令(不同 BG 可重叠) |
| 单命令数据量 (x16) | 512 bit (BL32) | 256 bit (BL16/32) | 256 bit (BL16/32) |
| 页大小 (x16) | 4 KB | 2 KB | 2 KB |
| 支持速率上限 | ≤ 6400 Mbps | ≤ 3200 Mbps | ≥ 3200 Mbps(最高 8533 Mbps+) |
| 原生 Burst | 仅 BL32 | BL16 或 BL32 | BL16 或 BL32 |
| tRRD/tFAW 约束 | 最宽松 | 最严格(≤ 3200 M) | 中(BG 间可重叠) |
| 刷新策略 | 全 Bank 一起刷 | 全 Bank 一起刷 | Per-BG 独立刷新,延迟更低 |
| 典型应用 | 高速、宽访问 ISP/GPU | 低功耗基带/穿戴 | 旗舰手机/AI/汽车高性能域 |
| 5X 是否支持 | × 已删除 | √ 速率≤3200 M | √ 强制唯一(>3200 M) |
Bank Group 优势:
- 在不分 Bank Group 的情况下,虽然多个 Bank 可以同时操作,但它们在整体调度和资源分配上相对复杂。而 Bank Group 的划分使得在更高层次上实现了并行。例如,假设有 4 个 Bank Group,每个 Bank Group 包含 4 个 Bank。在进行数据读写操作时,不同 Bank Group 之间的并行性更强。可以同时对多个 Bank Group 发起读写请求,每个 Bank Group 内部的 Bank 再进行各自的操作。这种分层的并行结构能够更有效地利用内存带宽。
- 从数据传输的角度来看,Bank Group 可以看作是独立的通道,每个通道(Bank Group)可以独立地传输数据。例如,在图形处理中,纹理数据和顶点数据可以分别通过不同的 Bank Group 进行传输,避免了在同一通道内数据的冲突和等待,从而提高了数据传输的效率,使总的带宽利用更加充分
- Bank Group 允许进行更精细的功耗控制。可以根据系统需求将 Bank Group 设置为不同的工作模式。例如,在低功耗模式下,只激活部分 Bank Group,而让其他 Bank Group 进入深度睡眠状态,从而显著降低功耗。相比之下,在没有 Bank Group 划分的情况下,要实现对单个 Bank 的低功耗控制相对复杂,因为 Bank 之间的操作相互关联,很难单独隔离某个 Bank 进行功耗管理。
- 当进行内存刷新操作时,Bank Group 的局部刷新功能能够减少不必要的功耗。在不分 Bank Group 的情况下,刷新操作通常是针对所有 Bank 进行的,而 Bank Group 可以只对部分需要刷新的 Group 进行操作,避免了对整个内存的刷新,降低了刷新功耗(all bank 模式)。
- Bank Group 的划分简化了内存访问调度。在系统请求内存访问时,首先可以根据任务类型和数据类型将请求分配到不同的 Bank Group。例如,操作系统可以将系统内核数据的访问分配到一个 Bank Group,将应用程序数据的访问分配到另一个 Bank Group。这种分层的调度方式比直接在多个 Bank 之间进行调度更加直观和高效,减少了调度的复杂性和延迟。
- 从硬件实现的角度来看,Bank Group 的控制逻辑相对独立,使得在进行内存访问调度时,不同 Bank Group 之间的干扰较小。这有助于更快地响应内存访问请求,提高系统的整体响应速度。在不分 Bank Group 的情况下,由于 Bank 之间的相互关联和复杂的调度逻辑,可能会导致内存访问请求的响应时间变长。



容量
容量支持2Gb~32Gb
时钟
两组时钟:
- CK:command clock;
-- 差分信号,CK_t、CK_c
-- 由数据时钟WCK分频得到;频率比为1:2或者1:4
-- 双沿工作;大部分命令一个CK时钟周期发送完成
-- 用来发送command、address、bank、configration、training信息;
-- 为了降低功耗,没有数据传输时,WCK时钟会被关闭,再次打开时,需要进行WCK到CK的同步 - WCK:data clocks
-- 差分信号:WCK[1:0]_t、WCK[1:0]_c
-- 用于读写DRAM
-- 双沿工作
信号

电压
高速IO工作在0.5v电压下,DDRC和DRAM间信号电压为250mv
prefetch
支持16n、32n预取,预取和BL是两个不同的概念;
| 项目 | 预取(Prefetch) | 突发(Burst) |
|---|---|---|
| 发生位置 | DRAM 阵列 → IO 锁存 | DQ 总线上 |
| 数据宽度 | 256 bit(BG/16B)或 512 bit(8B) | 128 bit(BL16)/ 256 bit(BL32) |
| 是否可见 | 用户不可见 | 用户可见,时序图上有 |
| 是否可配 | 固定,硅片决定 | 可配 BL16/BL32 |
| 目的 | 低阵列频率换高带宽 | 串行化输出,匹配总线节拍 |
Brust操作
BG & BL16 read
不同BG读取命令间隔时间为2CK,相同BG读取命令间隔时间为4CK,在WCK:CK等于4:1时,BL等于16时,2CK刚好对应16个数据周期。若连续两次读取在不同BG,则利用率理论为100%,若连续两次读取在相同BG,则会有两个CK的时钟周期没有数据,利用率偏低。
RL为固定时序参数

BG & BL32 read
当BURSTLEN=32时,一次BL读取,前2CK会先返回第0-15个数据,空闲2CK(即8个WCK时钟周期)后返回16-31个数据。空闲的这两个CK刚好可以用来插入其它BG读取出的数据。
若是连续两次BL32读操作都为同一个BG,利用率则只有50%,在BG模式下,需要谨慎选择BL长度
只有BL32支持数据交织,当频率比为4:1时;

BL16和BL32的read可以混合使用,但是发出BL32读之后,4个周期内不能再发送BL16/BL32的读,防止出现数据冲突;第4个CK周期后,可以再发送BL16/BL32。
8B & BL32 read
- 8B模式下,只支持BL32,不支持BL16

16B


BL16连续两次读命令间隔不区分同BANK还是跨BANK,时间间隔都是2CK,而BL32两次读命令间隔为4CK
SDRAM addressing

burst sequence

一般来说给DRAM的地址为{BG,BA,ROW,COL,B};由于BL最小为16,因此B2-B0恒为0,若B3为1,BL为16时,则表示BL-READ读地址边界为128bit,将会先返回DQ[15:8]的数据,再返回DQ[7:0]的数据。B3为0则按顺序返回该COL中的数据。当BL为32时,一次返回两个COL的数据,因此可以通过控制C0和B3返回不同COL中不同位置的数据

BL—write不支持128bit对齐,对于所有写操作,B3都需要设置为0,当BL为32时,C0也需要设置为0;

浙公网安备 33010602011771号