本章的文本将探讨在更大的内存系统中多个DRAM设备的构建、组织和操作。本章涵盖了术语、拓扑结构以及各种类型的内存模块的组织。
10.1 Conventional Memory System
在图10.1中,多个DRAM设备被连接在一起,形成一个由单个内存控制器管理的内存系统。在现代计算机系统中,一个或多个DRAM内存控制器(DMC)可以包含在处理器封装中,或者集成到位于处理器封装之外的系统控制器中。无论DRAM内存控制器的位置如何,其功能是接受对内存中给定地址的读取和写入请求,将请求翻译为一个或多个命令发送到内存系统,按正确的顺序和正确的时序向DRAM设备发出这些命令,并代表处理器或系统中的I/O设备检索或存储数据。系统控制器的内部结构将在另一章中进行详细介绍。本章重点介绍了多设备内存系统中DRAM设备的组织结构。
图10.1:通过DRAM内存控制器连接到一个处理器的多个DRAM设备。
10.2 Basic Nomenclature 常用的名词
在本节中,定义了“通道”(channel)、“排”(rank)、“银行”(bank)、“行”(row)和“列”(column)的用法,并且在本章和随后的章节中的讨论将遵循本章中的用法。
10.2.1 Channel
理解:一个DMC就是一个channel
10.2.2 Rank
图10.5说明了在传统DRAM内存系统拓扑结构中2个内存组的配置。在传统DRAM内存系统拓扑结构中,地址和命令总线连接到内存系统中的每个DRAM 颗粒,但宽数据总线被分区并连接到不同的DRAM设备上。在这种传统系统拓扑中,内存控制器使用芯片选择信号来选择响应给定命令的适当的DRAM设备组。
在现代内存系统中,通常会将多个DRAM设备分组在一起,以提供给定内存系统所需的数据总线宽度和容量。例如,为了形成72位宽的数据总线,需要在一个内存组中使用18个每个带有4位宽数据总线的DRAM设备。相比之下,不需要太多容量或数据总线宽度的嵌入式系统通常在每个内存组中使用较少的设备,有时每个组中只使用一个设备。
理解:rank相当于把一个channel的一组数据和地址线可以不同时驱动多组设备,这样可以实现系统级的interleaving。
![](https://i-blog.csdnimg.cn/blog_migrate/5eb1301aa25551afd3331493ab91851c.png)
10.2.3 Bank
![](https://i-blog.csdnimg.cn/blog_migrate/28d680b25800933661339e30a33da2f5.png)
10.2.4 Row
在DRAM设备中,一行(row)只是一组存储单元,可以在响应行激活命令时并行激活。在使用传统系统拓扑结构的DRAM内存系统中,例如SDRAM、DDR SDRAM和DDR2 SDRAM内存系统,通常会并行连接多个DRAM设备在给定的内存rank中。
图10.7展示了如何并行连接DRAM设备以形成一个内存rank。DRAM设备连接为在同步操作的DRAM设备rank中的效果是,行激活命令将在给定rank内的所有DRAM设备中激活相同的地址行。这个安排意味着从内存控制器的角度来看,一行的大小只是给定rank中所有DRAM设备的大小,即一行在给定的DRAM设备中的大小乘以给定rank中的DRAM设备数量,并且DRAM行跨越给定rank中多个DRAM设备。
一行(row)也被称为DRAM页(page),因为行激活命令实质上会将一页的内存缓存在感知放大器(sense amplifiers)中,直到DRAM内存控制器发出后续的预充电命令。已经提出了各种方案来利用DRAM页级别的局部性。然而,利用DRAM页级别的局部性的问题之一是,DRAM页的大小取决于DRAM设备和内存模块的配置,而不是处理器的架构页大小。
![](https://i-blog.csdnimg.cn/blog_migrate/60459a5a66f144a6b3b9d2c0c2ee4a5c.png)
10.2.5 Column
在DRAM内存系统中,数据的一列(column)是内存的最小可寻址单元。图10.8说明,在像图10.5所示的内存系统中,例如SDRAM和DDRx3 SDRAM具有类似拓扑结构的内存系统,一列数据的大小与数据总线的宽度相同。在Direct RDRAM设备中,一列被定义为16字节的数据,每个读命令从Direct RDRAM设备的每个物理通道中提取长度为16字节的单个数据列。
节拍(beat)指的是数据总线上的数据变化。在SDRAM内存系统中,每个时钟周期有一个数据变换,因此每个时钟周期传输一拍的数据。在DDRx SDRAM内存系统中,每个时钟周期可以发生两次数据传输,因此在单个时钟周期内传输两拍的数据。使用"beat"这个术语避免了在DDRx SDRAM设备中过度使用"cycle"这个词。
![](https://i-blog.csdnimg.cn/blog_migrate/c3e357fa9f86441c55b57cad9cc77e38.png)