以DDR5 UDIMM 16GB 1RX8为例
1R=64bit:CPU内部集成IMC内存控制器,内存通道一次访问的数据位宽为64bit,即一个时间周期内CPU会从内存读取或者写入64bit数据。
1RX8:代表内存条上有8个内存颗粒,即单个chip容量为16/8=2GB
单个内存颗粒由banks集成,bank即存储矩阵,由行x列组成,内存控制器集成CA0-CA17,共18条地址线复用行/列地址,访问数据时先读取行地址,再读取列地址,最后进行读写操作。
DDR4开始引入Bank group,即将4个bank集成在一个bank group中,提高存储单元。
其中单bank最大容量计算:
2^row*2^column*bit(位宽)/8(转换为byte字节)
即假设这根DDR5内存row=16,column一般固定是10,bit位宽可以是4/8/16,一般是8bit
单bank=2^16*2^10*8/8=64MB
由下表得知DDR5单个内存颗粒最大包含32个bank存储矩阵,
即单个内存颗粒容量:64x32=2048=2GB,一个内存条上8个内存颗粒刚好是16GB
同理,假设DDR5内存row=18时,1RX8,即内存条最大总容量是64GB
行地址的位数跟随内存颗粒容量的增大而增加.
行地址位数row | 列地址位数column | Bank Group | Bank总数 | 单bank最大容量 | |
DDR3 | 14~16 | 10 | NA | 8 | 16~64MB |
DDR4 | 16~18 | 10 | 4 | 16 | 64~128MB |
DDR5 | 16~18 | 10 | 8 | 32 | 64~128MB |
结论:内存条的容量=行x列x位宽(8bit)/8 x banks(存储矩阵) x chips(内存颗粒数)
注意:上述计算都建立在单个chip传输8bit位宽的基础上
若DDR4 X16(带宽翻倍),bank group=2,bank总数=8,单bank最大容量32~64MB
若DDR4X4(带宽减半),bank group=4,bank总数=8,制程价格贵
DDR内存条最大容量计算
1R-64bit:代表单个内存条只集成一个通道
2R-128bit:代表单个内存条集成CHA,CHB两个通道,cs片选配置rank交替工作,在rank0预充电时,访问rank1,降低访问延迟,提高带宽利用率
4R-256bit:一般用于服务器,RDIMM,LRDIMM
DDR4一般以正反面均挂载内存颗粒代表2R
DDR5单面集成CHA,CHB,每个通道40bit(32bit+8位ecc纠错)
DDR4单根内存最大容量=2GB(bank max)x16(chip max-2R)=32GB-消费类
DDR5单根内存最大容量=x4GB(bank max)x16(chip max-2R)=64GB-消费类