DDR 全称Double Data Rate Synchronous Dynamic Random-Access Memory,中文可以翻译为双倍数据速率同步动态随机存取存储器。双倍速率从哪来,时钟信号的上升沿和下降沿都进行数据传输,RAM是半导体存储器,掉电就丢失,DRAM是动态RAM,每隔一段时间就要刷新一次数据,SDRAM比DRAM多了一个与CPU时钟同步的功能。所以总结一下,本质上DDR是采样速率翻倍的带时钟同步功能的动态刷新RAM。
DDR存储颗粒在实际硬件上的样子,这里不得不提到DIMM,DIMM(Dual Inline Memory Module,双列直插式内存模块)是一种用于计算机和服务器中的内存组件。它是一块长方形的电路板,上面安装了多个DRAM(动态随机存取存储器)芯片,通过金手指连接到主板上的插座中。DIMM是现代计算机中最常见的内存形式,相比早期的SIMM(单列直插式内存模块),DIMM提供了更高的数据传输速率和更大的容量。DIMM在不同类型的计算机上,尺寸长度不一样,这很好理解,比如个人PC 和服务器用的会有一些差异。
内存通道(channel)
内存通道(Memory Channel)是指计算机主板上用于连接CPU和内存模块(如DIMM)的数据传输路径。通过多个内存通道,可以显著提高内存带宽,即单位时间内能够传输的数据量。一个内存控制器对应一个通道,这个通道是可以插很多块DIMM的,所以要去扩展多通道,跟内存没关系,是看内存控制器。下面这个图还是蛮清楚的,单个通道逻辑上就这么连接。
Data/ECC是双向信号,并且连接内存通道内所有的DIMM。时钟/控制信号/地址信号是单方向的,由内存控制器发出,内存颗粒接收。其中地址信号将连接所有的DIMM。时钟和控制信号将不会连接所有的DIMM。
内存颗粒(chip /die)
构成DIMM的基本存储单元就是内存颗粒。内存颗粒(Memory Chip 或 Memory Die)内部由Row、Column和 Bank组成。内存颗粒的数据位宽一般是4bit 、8bit 和 16bit。一般cpu数据通道位宽32bit 64bit 的,要用多个内存颗粒去并行组合,才能符合通道位宽的需求,组合方式是灵活的,跟你内存颗粒的位宽也有关系。
Rank(DIMM 下面划分Rank)
在DIMM内部,可以划分出若干个独立寻址的逻辑单元,每个这样的单元称为一个Rank。通常,DIMM可以包含1个、2个或4个Rank,具体取决于其设计和容量需求。
每个Rank由一组并行连接的内存颗粒组成,这些颗粒共享同一套控制信号(如地址线、命令线),但拥有独立的数据总线。多个颗粒组成当前内存通道的位宽,这个位宽集合,称之为一个Rank。
Bank(Rank 下面划分 Bank)
每个Rank进一步细分为多个Bank Group,而每个Bank Group又包含若干个Bank。
Bank是实际存储数据的基本单位,它们按照行列矩阵的方式排列。通过指定的行地址和列地址,可以在特定的Bank中读取或写入数据。
几个概念间的层次关系
channel>DIMM>rank>chip>bank>row/column
内存颗粒容量怎么去计算
首先看bank数量:bank地址位宽为3,8个bank ;bank地址位宽为2,4个bank ;
行地址位宽 :m ,共 2^m 行
列地址位宽: n ,共2^n 列
颗粒数据位宽:4 8 16bit 三种
容量 = Bank数量 x 行数 x 列数 x 颗粒数据位宽。