【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

相关推荐
通信小呆呆12 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick12 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee12 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn8612 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e12 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨12 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
cqbzcsq12 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
YangYang9YangYan12 天前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
guslegend12 天前
理论学习:什么是 Coding Agent?
学习
自传.12 天前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding