内存rank概念和区分

时间:2022-12-14 04:08:47

1:什么是RANK?

答:CPU与内存之间的接口位宽是64bit,也就意味着CPU在一个时钟周期内会向内存发送或从内存读取64bit的数据。可是,单个内存颗粒的位宽仅有4bit、8bit或16bit,个别也有32bit的。因此,必须把多个颗粒并联起来,组成一个位宽为64bit的数据集合,才可以和CPU互连。生产商把64bit集合称为一个物理BANK(Physical BANK),简写为P-BANK。为了和逻辑BANK相区分,也经常把P-BANK称为RANK或Physical RANK,把L-BANK则简称为BANK。

如果每个内存颗粒的位宽是8bit,应该由8个颗粒并联起来,组成一个RANK(64bit);同理,如果颗粒的位宽是16bit,应该由4个颗粒组成一个RANK。

由此可知:Rank其实就是一组内存颗粒位宽的集合。具体说,当颗粒位宽×颗粒数=64bits时,这个模组就是有一个RANK。

为了保证和CPU的沟通,一个模组至少要有一个RANK。但是,为了保证有一定的内存容量,目前,DDR2内存,经常是采用一个模组两个RANK的架构。(过去也有用几个模组组成一个RANK的情况)。

 

“模组构成”中的“R”是“RANK”的意思。“2R”是说组成模组的RANK数(Number of ranks of memory installed)是2个。有“1R”和“2R”两种;

“模组构成”中的“×8”是颗粒的位宽(bit width),有×4、×8和×16三种

2.如何根据模组的编号计算模组的RANK数?

答:根据模组组成原理可以知道:如果模组的深度等于颗粒的深度,就是一个RANK;如果模组的深度等于两倍颗粒深度,就是两个RANK。例如,编号为M378B5673DZ1的三星模组的模组深度是256M。又因为这种模组采用的是K4T1G084QD颗粒。这种颗粒的密度是1024Mb;位宽是8b,因此,颗粒深度是1024Mb÷8b=128M。即模组深度是颗粒深度的两倍,因此,是两个RANK。

此外,从模组编号或颗粒编号给出的颗粒位宽和实际颗理粒数也可以计算出RANK数。例如,当颗粒位宽是8b时,模组用了8个颗粒,8×8b=64b,就是一个RANK;如果用了16颗颗粒,16×8b=128b,就是两个RANK。

3.模组的RANK数跟模组的面数有什么关系?

答:模组的面(side)数跟RANK数是两个不同的概念。而且在内存的编号中也都没有反映面数。但是,模组的面,不是一个,就是两个;而目前的RANK数也是这样。因此,用符号表示它们时,很容易混淆。但是,可以很明确地说:内存标签中的“R”是表示RANK,不是表示面数,内存“面”的英文字是Side,如果表示两个面的话面,应该是“2S”才是呀!

4.内存标签上的2R×8就表明内存是双面8个颗粒吗?

答:不是的。“R”表示RANK,这在上面已经解释过了。“×8”就是颗粒位宽是8bit的意思。因为1个RANK是64bit,两个RANK就是128bit,因此,符号“2R×8”就表示这个模组有2个RANK,颗粒的位宽是8b。因此,这个模组用的颗粒是128b÷8b/颗=16颗,而不是8颗。同理,当内存条上的标签标明是“1R×16”时,就表明这个模组是1个RANK;颗粒位宽是16bit。其颗粒数是64b÷16b/颗=4颗。绝不是16颗。