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 之间的相互关联和复杂的调度逻辑,可能会导致内存访问请求的响应时间变长。

image
image
image

容量

容量支持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
    -- 双沿工作

信号

image

电压

高速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为固定时序参数

image

BG & BL32 read

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

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

8B & BL32 read

  • 8B模式下,只支持BL32,不支持BL16
    image

16B

image
image

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

SDRAM addressing

image

burst sequence

image
一般来说给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中不同位置的数据

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

posted @ 2025-12-08 11:52  刘朝锋  阅读(656)  评论(0)    收藏  举报