发展到DDR2,芯片内核每次Prefetch 4倍的数据至IO Buffer中,为了进一步提高外传速度,芯片的内核时钟与外部接口时钟(即DDR芯片的Clock管脚时钟)不再是同一时钟,外部Clock时钟频率变为内核时钟的2倍。同理,DDR3每次Prefetch?8倍的数据,其芯片Clock频率为内核频率的4倍,即JEDEC标准(JESD79-3)规定的400MHz至800MHz,再加上在Clock信号上、下跳变沿同时传输数据,DDR3的数据传输速率便达到了800MT/s到1600MT/s。具体到内存条速度,我们以PC3-12800为例,其采用的DDR3-1600(上一小节已经提到过,PC3-12800和DDR3-1600其实是同一意思,只不过PC3-12800指的是DDR的传输带宽为12800MB/s,而DDR3-1600指的是传输频率为1600MHz)芯片核心频率为200MHz,经过Prefetch后在800MHz Clock信号工作频率的双边沿(Double?Data?Rate)作用下,使芯片的数据传输速率为1600?MT/s,内存条每次传输64比特或者说8字节数据,1600x8便得到12800MB/s的峰值比特率。
下表列出了JEDEC标准(JESD79-3)规定的DDR3芯片以及内存条相关参数。需要说明的是,如前所述,并不是所有的内存产品都完全遵从JEDEC标准,有些厂家会生产速度更高速的DDR3芯片,一般情况下这些芯片是从芯片检测流程中筛选出来的频率动态范围更大的芯片,或者是可加压超频工作的芯片。
名称
核心频率
核心时钟周期
Clock管脚时钟频率
数据传输速率
对应内存条名称
内存条峰值比特率
DDR3-800
100MHz
10ns
400MHz
800MT/s
PC3-6400
6400MB/s
DDR3-1066
133MHz
7.5ns
533MHz
1066MT/s
PC3-8500
8533MB/s
DDR3-1333
166MHz
6ns
667MHz
1333MT/s
PC3-10600
10667MB/s
DDR3-1600
200MHz
5ns
800MHz
1600MT/s
PC3-12800
12800MB/s
注意:Clock管脚时钟频率就是上一小节提到的DDR的工作频率
,在了解了DDR的上面基础知识的前提下,下表列出了不同DDR芯片的相关特性:
SDRAM器件比较
条目
DDR3 SDRAM
DDR2 SDRAM
DDR SDRAM
Clock管脚时钟频率(工作频率)
400/533/667/800 MHz
200/266/333/400 MHz
100/133/166/200 MHz
数据传输速率
800/1066/1333/1600 MT/s
400/533/667/800 MT/s
200/266/333/400 MT/s
预取(Prefetch)位宽
8-bit
4-bit
2-bit
输入时钟类型
差分时钟
突发长度(Burst Length)
8, 4(突发突变)
4,8
2,4,8
数据选通信号类型
差分数据选通
单端数据选通
电源电压
1.5V
1.8V
2.5V
数据电平标准
SSTL_15
SSTL_18
SSTL_2
CAS Latency(CL)
5,6,7,8,9时钟
3,4,5时钟
2,2.5,3时钟
片内终端电阻(ODT)
支持
不支持
芯片封装
FBGA
TSOP(II)/FBGA/LQFP
三、 DDR3的工作原理
DDR3的内部是一个存储阵列,将数据“填”进去,你可以它想象成一张表格,如下图所示。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)就是逻辑 Bank(Logical Bank,下面简称Bank,与之对应的还有一种叫做物理BANK)。
BANK编号(B)
列地址(C)
0
1
2
3
4
5
6
7
行
地
址
(R)
0
1
2
3
4
5
6
7
DDR3内部的BANK可以看做是一个NxN的一个阵列,B代表Bank编号,C代表列地址编号,R代表行地址编号。如果寻址命令是B1、R2、C6,就能确定地址是图中红格的位置。
目前DDR3内存芯片基本上都是8个Bank设计,也就是说一共有8个这样的“表格”。寻址的流程也就是先指定Bank地址,再指定行地址,然后指定列地址终的确寻址单元。
对DDR3系统而言,还存在物理Bank的概念,这是对内存子系统的一个相关术语,并不针对内存芯片。内存为了保证CPU正常工作,必须一次传输完CPU 在一个传输周期内所需要的数据。而CPU在一个传输周期能接受的数据容量就是CPU数据总线的位宽,单位是bit(位)。控制内存与CPU之间数据交换的北桥芯片也因此将内存总线的数据位宽等同于CPU数据总线的位宽,这个位宽就称为物理Bank(Physical Bank,有的资料称之为Rank)的位宽。目前这个位宽基本为64bit。
在实际工作中,逻辑Bank地址与相应的行地址是同时发出的,此时这个命令称之为“行”(Row Active)。在此之后,将发送列地址寻址命令与具体的操作命令(是读还是写),这两个命令也是同时发出的,所以一般都会以“读/写命令”来表示列寻址。根据相关的标准,从行有效到读/写命令发出之间的间隔被定义为tRCD,即RAS to CAS Delay(RAS至CAS延迟,RAS就是行地址选通脉冲,CAS就是列地址选通脉冲),我们可以理解为行选通周期。tRCD是DDR的一个重要时序参数,广义的tRCD以核心时钟周期(tCK,Clock Time)数为单位,比如tRCD=3,就代表延迟周期为两个时钟周期,具体到确切的时间,则要根据时钟频率而定。以DDR3-800为例,通过上一节的学习可知,DDR3-800的数据传输频率(等效频率)为800MHz,由于DDR3的预取(Prefetch)位宽为8位,所以核心频率为100MHz(800MHz/8),核心时钟的周期为10ns,如果tRCD=3,则表示延时为30ns。