【DDR 内存学习专栏 1.3.1 -- DDR 的 Bank 及 burst 访问】
文章目录
- DDR Rank
- Rank 读写
- 访问加速
- Burst 模式
DDR Rank
电脑内存条,也被称为DIMM条,是由多个电路板和芯片组成,这些组件被设计成可以通过内存通道与内存控制器进行连接。在一组可以被一个内存通道同时访问的芯片中,我们称之为一个 rank。如下图所示,北桥芯片(总线互联) 上接了两个 DDRC(Channel),每个 DDRC 控制两个内存插槽 DIMM,每个内存插槽上 可插入一个带两个 Rank 的 DDR(DDR 正面和背面都有DDR 颗粒)。
在 Rank 中,每个芯片(内存颗粒) 都共享内存通道的地址线、控制线和数据线,同时每个芯片(内存颗粒)还提供一组输出线,这些输出线汇聚成内存条的总输出线。
以一个包含8个 DDR 颗粒 的 DIMM 条为例,这8 个 DDR颗粒 被一个内存通道同时访问,因此它们共同构成一个rank。
值得注意的是,有些DIMM条的设计是双面的,即每面都布有内存芯片,这样的DIMM条就拥有两个rank。
假设每个DDR 颗粒 都包含 8个bank,每个 bank 又包含 8个阵列,那么这条内存条就可以在一次操作中读写多达 64 bits 的数据。这是因为在这种设计中,每个DDR颗粒可以输出 8bit 数据,而这个Rank总共有8颗这样的芯片,所以它们被同时访问的bank以及bank内的行地址和列地址都是完全一致的。这种高效的设计使得内存条能够在一次操作中处理大量数据。
Rank 读写
随着电脑内存容量的提升,我们有时会插入多条内存条。然而,这并不总是意味着电脑速度的提升。电脑的速度受到 “内存通道” 数量的限制。例如,如果电脑仅有四个插槽却只有一个内存通道,那么CPU仍只能逐个访问rank。但倘若电脑拥有四个插槽和四个内存通道,CPU便能同时访问四个rank,显著提高效率。假设每个rank能输出64比特,那么四通道一次便能处理 4×64=256比特的数据,远超单通道的64比特。
访问加速
Burst 模式
现代处理器与DDR之间通常配备cache。当CPU访问内存中的单个字时,它不仅需要该字,还需要将包含该字的整个缓存行搬入cache。因此,内存必须一次性提供整个缓存行的数据。缓存行通常较大,例如包含8个64比特,这意味着内存需提供8×64=512比特的数据。然而,常规访问方式每次仅能提取64比特,即一个字,这显然不足以满足缓存行的需求。为此,我们引入了“burst模式”来优化内存访问。
由于缓存行内的字在内存中是连续紧邻的,我们可以充分利用cell阵列中的行缓存。在burst模式下,当读取cell阵列中的某个比特时,不仅该比特会被送到输出缓存,而且其所在缓存行的其他比特也会被连续读出并送至输出缓存。这样,我们便能高效地完成一次burst操作,即连续读出目标比特周围的多个比特。
推荐阅读:
https://baijiahao.baidu.com/s?id=1821754560739771827&wfr=spider&for=pc