【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

相关推荐
路灯上の马陈13 小时前
Java 内部类 学习笔记
笔记·学习
前进的李工13 小时前
Agent 学习笔记 12:Agent 的工具应该怎么设计
人工智能·笔记·学习·agent·工具调用·skill·工具设计
li星野14 小时前
从 DICOM 到声学属性学习记录:HU 值怎么变成密度和声速
学习
自信1504130575914 小时前
重生之从0开始学习c++之——vector-中篇
c++·学习·算法
架构师伯子明14 小时前
ffmpeg学习4:opencv在音视频领域常用指令
opencv·学习·ffmpeg
wangqiaowq1 天前
Ontology 学习
学习
choumou_M1 天前
算法_1:由浅入深学习快速排序QuickSort
学习·算法·排序算法
蒸蒸yyyyzwd1 天前
后端学习笔记 day111
笔记·学习
叼烟扛炮1 天前
[LangChain] 学习笔记(08):工具调用底层闭环与第三方搜索(Tavily)实战
人工智能·笔记·学习·langchain
Century_Dragon1 天前
让新能源故障诊断实训“触手可及“——仿真教学软件(VR)介绍
学习