stdlf
分类:
2011-07-12 01:14:41
关于DDR的rank,bank和大小计算的问题,网上有不少。但是看了半天相当一部分都是互抄的,而且还都
不正确。无奈之下,我只好从jedec上down一些原始资料来研究,并在这里写一下自己的理解。
要搞清楚DDR,首先要搞清楚SDRAM(内存颗粒),DDR就是将这些颗粒集成在一起,再加一个控制器而已
。对于SDRAM,我想大家都应该知道行、列、bank的概念(不知道搜一下,一大把),三个概念可以形象
地比喻成立体空间的三维空间坐标,这样我们就不难理解SDRAM容量计算以及访问方式了。了解了SDRAM之
后,就可以研究DDR了,DDR比SDRAM多了rank这个概念,在讲rank之前,我们先了解一下DDR数据存取,以
64bits数据线为例,CPU每次从内存里面存读数据都是一次61bits,而我们知道内存颗粒(SDRAM)一般没
有64bits数据线的,大多为8bits或4bits。那么为了凑够CPU访问所需的64bits该怎么办呢?当然是大伙
一起凑了,即数据位扩展了。如果每个颗粒是8bits位宽,那么就需要8个颗粒凑在一起,这八个颗粒组成
一个新的家庭,它的名字就叫rank。一条内存条上有多少个rank,就表示有多少个这样的家庭,而在这个
家庭内部,其实就是8片并在一起的SDRAM,这些SDRAM就是前面提到的三维立体空间的载体,也就是说
bank这个概念对于DDR来说就是指的颗粒(SDRAM)上的bank,这也就不难理解计算内存的公式应该为
内存大小=2^(row bits+column bits)*bank*bus width of memory chip in bytes*rank
而对于大家熟悉的side,指的是内存条颗粒分布在几面,这点与rank之间没有必然的联系,只是结构上的
布局问题