【DDR 内存学习专栏 1.4 -- DDR 的 Bank Group】

文章目录

Bankgroup

Bankgroup是DDR4及后续标准(DDR5)中引入的一个更高层次的组织结构。它将多个Bank组合在一起形成一个Bankgroup,目的是为了进一步提高内存访问的并行性和带宽。

我们每次发送的读写命令都是操作的各个颗粒里面同一个位置的bank。比如chip0的bank3,chip1的bank3,chip2的bank3...

DDR的bankgroup可以理解为是将颗粒分成了group进行操作,也可以抽象成是把黑色颗粒chip内又独立成了各个单独的小颗粒,即各个bankgroup。

Bankgroup 与 Bank 的关系

层级关系:Bankgroup包含多个Bank,可以理解为Bank的上一级组织结构

  • 内存芯片 → Bankgroups → Banks → 行/列

访问特性

  • 同一Bankgroup内的Bank共享某些资源
  • 不同Bankgroup之间的操作可以更高程度地并行
  • 访问不同Bankgroup的延迟小于访问同一Bankgroup内不同Bank的延迟

设目的

  • 减少Bank冲突
  • 提高命令总线利用率
  • 增加并行数据访问能力

DDR4 中的 Bankgroup

典型配置: 4个Bankgroup,每个Bankgroup 包含 4个Bank (标记为BG0-BG3)

不同 Bankgroup 可以同时激活不同的行

同一Bankgroup内的Bank共享行激活资源

DDR4-3200 8Gb芯片为例

组织结构

如上图所示:

  • 4个Bankgroup(BG0-BG3)
  • 每个Bankgroup包含4个Bank
  • 共16个Bank(4BG×4B)
访问场景

场景1:连续访问BG0-Bank0和BG1-Bank0

  • 可以快速连续执行,因为属于不同Bankgroup
  • 几乎无额外延迟

场景2:连续访问BG0-Bank0和BG0-Bank1

  • 需要额外延迟(tCCD_L)
  • 因为属于同一Bankgroup,共享资源

性能影响

优化内存访问模式应尽量跨Bankgroup访问

操作系统和内存控制器会尽量将数据分布在不同的Bankgroup

实际应用示例

当CPU需要读取大量连续数据时,内存控制器会将数据分布到不同的Bankgroup中。例如:

  • 地址A: BG0-Bank2
  • 地址A+64B: BG1-Bank3
  • 地址A+128B: BG2-Bank1
  • 地址A+192B: BG3-Bank0

这样安排可以实现几乎并行的数据读取,大大提高内存带宽利用率。

推荐阅读

https://www.elecfans.com/consume/1958193.html

相关推荐
d111111111d10 分钟前
STM32得中断服务函数,为什么不能有返回值
笔记·stm32·单片机·嵌入式硬件·学习
阿蒙Amon20 分钟前
JavaScript学习笔记:12.类
javascript·笔记·学习
光影少年23 分钟前
PostgreSQL数据库学习路线
数据库·学习·postgresql
wjykp32 分钟前
part 3神经网络的学习
人工智能·神经网络·学习
阿蒙Amon41 分钟前
JavaScript学习笔记:10.集合
javascript·笔记·学习
快撑死的鱼1 小时前
Llama-factory 详细学习笔记:第六章:DPO (直接偏好优化) 实战 (难点)
笔记·学习·llama
d111111111d1 小时前
连续形式PID和离散PID-详情学习-江科大(学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习
四维碎片1 小时前
【Qt】生产者-消费者模式学习笔记
笔记·qt·学习
立志成为大牛的小牛1 小时前
数据结构——五十九、冒泡排序(王道408)
数据结构·学习·程序人生·考研·算法