认识DDR SDRAM

DDR SDRAM是double data rate synchronic dynamic random access memroy的英文缩写, 中文解释为双端速率的同步动态随机存储器。DDR,表示DDR架构,就是在一个时钟周期里,在I/O pin上传输两份数据words,提高了传输效率。 dynamic意为动态,表示掉电,数据丢失。ram表示,可以随机的对内存单元cell进行读写访问,而不必类似一些芯片需要顺序的读和写。 DDR由于其出色的性能被普遍当做主存,应用于计算机系统上。 以下对于DDR SDRAM的解读主要来源于阅读DDR spec 和 DDR2 spec.  (https://www.jedec.org) 。需声明当我使用 DDR SDRAM时,是对于使用DDR技术的memory的一种统称。

 

DDR协议标准历史发展历程

认识DDR SDRAM

 

引脚分布差异

DDR 的pin分布,重点需要关注下面:

CK (clock) : 时钟信号,决定频率。

BA (bank address) : bank的选择。像DDR,它有(BA0-BA1),内部最多有4个bank,而DDR2有(BA0-BA2),内部可以有8个bank。BA pin上的引脚值,可以决定当前选择了哪个bank,该bank可能会被执行**,read,write或者预充电的操作。

A0-A15: 这是DDR2的address引脚配置,提供行和列地址,定位在(BA0-BA2)选定的bank array(阵列)中的具体位置。

DQ:数据引脚。用于数据的输入和输出,这个和每个cell存储的数据量有关。如果每个cell是4bit,那么就是X4,有4个 data pin。如果每个cell是8bit,那么就是X8,有8个data pin。

 

内部组织架构

DDR内部分为若干个bank, 如示意图所示。

认识DDR SDRAM

bank是一个array阵列,由一个个cell组成。

cell cell cell
cell cell cell
cell cell cell

上图是一个bank,其内部的组织架构简易图,以DDR2为例,实际上它的行数可以达到2^16行(A0-A15),列数也可以达到2^11(A0-A9,A11).  每个cell都有大小,一般是4bit,8bit和16bit. 也就是数据接口的大小,x4,x8,x16. 

DDR读写流程

以DDR2为例,

1.通过配置BA0-BA2的pin管脚,选择需要进行读写的bank。

2.通过配置A0-A15的pin管脚,选择要进行读写的cell的行号。

3.通过配置A0-A15的pin管脚,选择要进行读写的cell的列号。

4.配置DQ数据管脚,进行数据的读/写操作。

 

内存表达方式

以下是DDR2 spec上截取的不同存储容量的bank address,row address 行,column address 列,的配置表。我们以256Mb的为例进行讲解。

256Mb 的容量,可以通过 64Mb X4 , 32Mb X8, 16Mb X 16来表示。

以64Mb X4 为例, 64Mb 表示cell的个数, X4表示4bit,表示一个cell的大小。

cell个数: 它的行地址是A0-A12来表示,则就是2^13, 列地址是A0-A9,A11,那就是2^11. 因此一个bank中cell的个数就是

2^24,即2^10*2^10*2^4 = 1K*1K*16= 16M。 

bank个数: 4个

所以,总体cell的个数就是 16M * 4 = 64M, 且cell大小是4bit,所以 64M * 4bit 是256Mb.

 

Table 3 — 256 Mb addressing

Configuration 64 Mb x 4 32 Mb x 8 16 Mb x 16
# of Banks 4 4 4
Bank Address BA0, BA1 BA0, BA1 BA0, BA1
Auto precharge A10/AP A10/AP A10/AP
Row Address A0 - A12 A0 - A12 A0 - A12
Column Address A0 - A9, A11 A0 - A9 A0 - A8
Page size 1 KB 1 KB 1 KB


Table 4 — 512 Mb addressing

Configuration 128 Mb x 4 64 Mb x 8 32 Mb x 16
# of Banks 4 4 4
Bank Address BA0, BA1 BA0, BA1 BA0, BA1
Auto precharge A10/AP A10/AP A10/AP
Row Address A0 - A13 A0 - A13 A0 - A12
Column Address A0 - A9, A11 A0 - A9 A0 - A9
Page size 1 KB 1 KB 2 KB

Table 5 — 1 Gb addressing

Configuration 256 Mb x 4 128 Mb x 8 64 Mb x 16
# of Banks 8 8 8
Bank Address BA0 - BA2 BA0 - BA2 BA0 - BA2
Auto precharge A10/AP A10/AP A10/AP
Row Address A0 - A13 A0 - A13 A0 - A12
Column Address A0 - A9, A11 A0 - A9 A0 - A9
Page size 1 KB 1 KB 2 KB


Table 6 — 2 Gb addressing

Configuration 512 Mb x 4 256 Mb x 8 128 Mb x 16
# of Banks 8 8 8
Bank Address BA0 - BA2 BA0 - BA2 BA0 - BA2
Auto precharge A10/AP A10/AP A10/AP
Row Address A0 - A14 A0 - A14 A0 - A13
Column Address A0 - A9, A11 A0 - A9 A0 - A9
Page size 1 KB 1 KB 2 KB


Table 7 — 4 Gb addressing

Configuration 1 Gb x 4 512 Mb x 8 256 Mb x 16
# of Banks 8 8 8
Bank Address BA0 - BA2 BA0 -BA2 BA0 - BA2
Auto precharge A10/AP A10/AP A10/AP
Row Address A0 - A15 A0 - A15 A0 - A14
Column Address A0 - A9, A11 A0 - A9 A0 - A9
Page size 1 KB 1 KB 2 KB