去评论
推扬网

刘国峰:内存ranks和banks是什么意思

admin
2020/08/11 14:57:05

童果的回答:

用everest查看内存配置时,SPD中选中一根内存,出现的详细情况中内存模块>>模块容量的数字背后有括号,里面有xrank(s),ybanks的字样,在网上查了一下,居然没有比较确切的回答。有些人甚至瞎说。 本人有充分的理由来说:rank代表了内存条子上是否两面都在存储芯片(行语叫存储颗粒吧),两面都有的就是2ranks,也就是dualranks,只有正面有的则是1rank,也是常见的singlerank。而bank则是存储颗粒的bank。 一般内存颗粒都是有将内存容量分成几个阵列来制造,也就是说存在内存芯片中存在多个BANK,一般每个颗粒都为4个。随着芯片容量的不断增加,逻辑BANK数量也在不断增加,目前从32MB到1GB的芯片基本都是4个,只有早期的16Mbit和32Mbit的芯片采用的还是2个逻辑BANK的设计,譬如三星的两种16MB芯片:K4S161622D(512Kx16Bitx2BANK)和K4S160822DT(1Mx8Bitx2BANK)。芯片组本身设计时在一个时钟周期内只允许对一个逻辑BANK进行操作,而芯片的位宽就是逻辑BANK的位宽决定了一次操作的并行位宽。现在的内存颗粒的位宽多为16bit,这样的位宽对于要求高速的内存来说,显然太小。一般内存的位宽是64bit,也就是一次能并行传送8Byte数据。这样,在制造内存的时候,就把同类型的内存颗粒进行组合,现在ddr内存中,一组多为4个颗粒,一般一面是8个芯片,分两组,两面一共就是4组。而在一个组中,内存颗粒是并行进行访问的,就像并联电路可以分流一样,并行的内存颗粒分流了位宽。多个小位宽的颗粒bank并联组成了大位宽的内存bank。前面已经说过,现在内存颗粒的位宽多为16bit,4个一组,16X4=64,位宽为64的内存bank就这样产生了。 而内存的总容量还是不变的,计算方法还是: 内存容量=单个内存颗粒的容量X颗粒数量 而颗粒的容量一般由颗粒的型号决定的,计算方法为: 内存颗粒的容量=bank数Xbank位宽Xbank深度/8,单位byte 如上而提到的K4S161622D,因为其组成就是2个位宽为16位的512K深度的bank组成,所以其容量为2X16X512K/8=2M。对于威刚的VDD8608A8A,其组织为4MX16X4bank,所以其容量为4MX16X4/8=32M。 曾记得第一次在深圳的华强北C座4楼问内存价格: 老板第一句问:一代二代? 我说:一代 老板:多大 我:XXX 老板:单面双面? 我:???? 不知什么意思,最后在老板的指点下,我看到了一种单面有芯片的内存,一种则两面都有,以前还不怎么注意过。一般来说,单面的价格可能会高一点,可能是单个存储颗粒容量比较大,线路要少,要稳定可靠吧。不过我相信,成本价应该双面还要高一点。至于为啥这个卖法,那就很难说了。因为在华强北这种卧虎藏龙之地,那些内存的来源都很那个啊!!!

于璐璐的回答:

用everest查看内存配置时,SPD中选中一根内存,出现的详细情况中内存模块>>模块容量的数字背后有括号,里面有xrank(s),ybanks的字样,在网上查了一下,居然没有比较确切的回答。有些人甚至瞎说。 本人有充分的理由来说:rank代表了内存条子上是否两面都在存储芯片(行语叫存储颗粒吧),两面都有的就是2ranks,也就是dualranks,只有正面有的则是1rank,也是常见的singlerank。而bank则是存储颗粒的bank。 一般内存颗粒都是有将内存容量分成几个阵列来制造,也就是说存在内存芯片中存在多个BANK,一般每个颗粒都为4个。随着芯片容量的不断增加,逻辑BANK数量也在不断增加,目前从32MB到1GB的芯片基本都是4个,只有早期的16Mbit和32Mbit的芯片采用的还是2个逻辑BANK的设计,譬如三星的两种16MB芯片:K4S161622D(512Kx16Bitx2BANK)和K4S160822DT(1Mx8Bitx2BANK)。芯片组本身设计时在一个时钟周期内只允许对一个逻辑BANK进行操作,而芯片的位宽就是逻辑BANK的位宽决定了一次操作的并行位宽。现在的内存颗粒的位宽多为16bit,这样的位宽对于要求高速的内存来说,显然太小。一般内存的位宽是64bit,也就是一次能并行传送8Byte数据。这样,在制造内存的时候,就把同类型的内存颗粒进行组合,现在ddr内存中,一组多为4个颗粒,一般一面是8个芯片,分两组,两面一共就是4组。而在一个组中,内存颗粒是并行进行访问的,就像并联电路可以分流一样,并行的内存颗粒分流了位宽。多个小位宽的颗粒bank并联组成了大位宽的内存bank。前面已经说过,现在内存颗粒的位宽多为16bit,4个一组,16X4=64,位宽为64的内存bank就这样产生了。 而内存的总容量还是不变的,计算方法还是: 内存容量=单个内存颗粒的容量X颗粒数量 而颗粒的容量一般由颗粒的型号决定的,计算方法为: 内存颗粒的容量=bank数Xbank位宽Xbank深度/8,单位byte 如上而提到的K4S161622D,因为其组成就是2个位宽为16位的512K深度的bank组成,所以其容量为2X16X512K/8=2M。对于威刚的VDD8608A8A,其组织为4MX16X4bank,所以其容量为4MX16X4/8=32M。 曾记得第一次在深圳的华强北C座4楼问内存价格: 老板第一句问:一代二代? 我说:一代 老板:多大 我:XXX 老板:单面双面? 我:???? 不知什么意思,最后在老板的指点下,我看到了一种单面有芯片的内存,一种则两面都有,以前还不怎么注意过。一般来说,单面的价格可能会高一点,可能是单个存储颗粒容量比较大,线路要少,要稳定可靠吧。不过我相信,成本价应该双面还要高一点。至于为啥这个卖法,那就很难说了。因为在华强北这种卧虎藏龙之地,那些内存的来源都很那个啊!!!