您的位置:首页 > 其它

DRAM BRANK

2013-10-21 16:11 417 查看
DDR内部组成

DDR内部是由多个存储阵列组成的,我们称这些存储阵列为bank,早期的SDRAM内部分割成两个bank,后来是4个,这是SDRAM规范中规定的最大bank数,在DDR2标准中,BANK的数目提高到8个。

每一个存储阵列就像表格一样,表格的每一个单元格是最小存储单元,大小可以为4, 8, 16,也就是位宽,位宽决定了数据线位数。如果想使用32bit的数据总线宽度,那么可以使用单片32bit内存芯片,或者使用两片16bit位宽的芯片拼接出 32bit。

整个芯片的总容量用如下公式计算:

单元格数目 = 行数 * 列数

总容量(单位bit) = bank数 * 单元格数目 * 单元格大小 = bank数 * 行数 * 列数 * 单元格大小

以K4B4G1646B 4Gbit为例,从它的datasheet可以看出存储配置为256MB x 16bit,bank数是8,row地址线A0~A14, column地址线A0~A9

总容量 4Gbit= 256MB * 16bit = 8 * 32MB * 16bit = 8 * 32K * 1K * 16bit

共有8个bank,每个bank是32K x 1K的单元格阵列,每单元格存储16bit数据。

芯片位宽

在K4B4G1646B芯片手册上,4Gbit容量的芯片,有下面三种规格1GB x 4, 512GB x 8, 256GB x 16。在相同的容量下,位宽出现了多种设计。1GB x 4的位宽需要8个芯片才能组成32bit数据线,但是总容量可高达32Gbit;如果使用1GB x 16则只需2个芯片即可组成32bit数据线,总容量为8Gbit。从上面可以看出,在设计中需要权衡芯片数,总容量。

SDRAM/DDR是怎么寻址的?

为了读取特定单元格的数据,在寻址时要首先确定是哪一个bank,然后在这个选定的bank中进行行列的寻址。在实际工作中,bank的地址与相应的行地址是同时发出的,此时这个命令称之为"行有效"或者“行激活”。在此之后,发送列地址寻址命令和具体的操作命令(读或写),这两个命令也是同时发送的。行列地址是可以复用的,一般来说DDR芯片的地址线为A0~A15,低地址线会被行列复用。以K4B4G1646B 4Gbit 256MB x 16bit内存芯片为例,A0~A14用做行地址,A0~A9用做列地址,这款芯片同时含有B0~B2用来选择bank。

关于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之间没有必然的联系,只是结构上的
布局问题。

内存时序的调节

所谓内存时序,它是一种参数,一般存储在内存条的SPD上。

大家经常会看到DDR3内存时序为7-7-7-20,8-8-8-22,9-9-9-24,下面先介绍下各部分小参分别代表的含义。

先给出一个完整的内存时序(例):7-7-7-20-4-89-10-7-20-0 1T,接下来按顺序对应一一介绍。

1.DRAM CAS Latency(tCL):内存CAS

Latency是指“内存读写操作前列地址控制器的潜伏时间”,该参数设置对内存带宽影响较大,数值越小内存性能越高,反之越低,内存运行频率越高该参数通常需要设置越大,根据DDR3内存体质不同,保守设置通常是7-9,也可根据自己内存体质设置不同的Cl值。

2.DRAM RAS to CAS

Delay(tRCD):行寻址到列寻址延迟时间,该参数设置也对内存带宽影响较大,数值越小性能越好,保守设置通常是7-9。

3.DRAM RAS PRE

Time(tRP):内存行地址控制器预充电时间,该参数设置对内存带宽影响较大,数值数值越小性能越好,保守设置通常是7-9,该数值通常可设置为比DRAM

RAS to CAS Delay少1个数值。

4.DRAM RAS ACT Time(tRAS):内存行有效至预充电的最短周期,该数值对内存带宽有微弱的影响,保守设置通常为20-24。

5.DRAM RAS to RAS Delay(tRRD):行单元到行单元的延时,该数值越小越好,建议设置为5-7。

6.DRAM REF Cycle

Time(tRFC):SDRAM行刷新周期时间,该数值对内存带宽影响较大,通常设置为60,放宽该参数可适当提升内存超频频率,如当DDR3内存超频到2000MHz以上频率是,建议该数值放宽到88或以上。

7.DRAM WRITE Recovery Time(tWR):写恢复延时,该数值轻微影响内存带宽,通常该参数设置8-12左右即可。

8.DRAM READ to PRE Time(tRTP):内存预充电时间,通常设置8-12之间。

9.DRAM FOUR ACT WIN Time(tFAW):该选项通常设置为Auto即可,对性能以及稳定性影响不大。

10.DRAM Back-To-Back CAS Delay:该数值越小内存性能越好,通常设置为Auto即可,手动设置建议4-6之间。

11.DRAM Timing

Mode:内存首命令延迟设定用选项,对内存性能影响较大,放宽到2N(2T)可适当提升内存超频频率,通常设置为1N(1T)。

-1T拥有较少的延迟,较佳的系统内存效能。却较差的兼容性。

-2T拥有较久的延迟、差很多的系统内存较能。较高的兼容性、稳定性。推荐将内存设定为1T能让内存达到最佳效能。

12.对于BIOS中内存时序部分未提及的几项参数,一般设为AUTO即可。

2.内存小参理论是越小越好,但是最终还是要以系统稳定为目标。

3.超频可以简单理解为寻找在目标频率下的最低稳定电压,那时序的调整一样可以简单理解为寻找稳定的各项参数的最小值

DDR内存时序指南

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: