介绍
DDR,DDR2,DDR3 内存是根据他们能够工作的最高速度以及他们的timing进行分类的。Timing是由一系列数字表示如3-4-4-8,5-5-5-15,7-7-7-21或者9-9-9-24,越低越好。在本文中,会解释这些数字的含义。
DDR,DDR2和DDR3的内存遵守DDRxxx/PCxxx的分类规范。
第一组数字,xxx,代表内存芯片支持的最高时钟频率。例如DDR400内存芯片工作在最高400MHz下,DDR2-800工作在最高800MHz下。但是要注意的是这不是内存的实际时钟速度,DDR,DDR2,DDR3内存的时钟速度是标签时钟频率的一半。所以DDR400的内存共走在200MHz下。
第二个数字代表内存达到的最大传输率,单位是MB/S。DDR400内存最高传输数据速度是3200MB/s.,因此它的标签上标注的是PC3200.
上面提到的第一个分类DDRxxx是用来分类内存芯片的标准,第二个分类PCyyyy是用来分类内存模块的标准。
在上图中,你可以看到pc3-10666内存模块,使用ddr3-1333内存芯片。注意到时序7-7-7-18以及电压1.5v
一个内存模块的最大数据传输率可以根据以下公式计算:
最高理论传输率 = 时钟频率 * 比特数/8
由于DIMM模块一次传输64比特。 比特数就是64
那么上面的公式就简化为:
最高理论传输率 = 时钟频率 * 8
如果内存模块安装到的系统的内存总线运行在一个更低的时钟频率,那么内存模块能够达到的最高数据传输速率会低于理论最高数据传输率。
举个例子,加入你买了一堆DDR3-2133/PC3-17000内存。尽管他们被脚趾尾DDR3-2133,它不会在系统总自动运行在2133MHz.。 这是它支持的最高时钟频率,而不是它运行在的时钟频率。如果你把它装在一个普通的支持DDR3的PC中。它可能会运行在1333MHz.这是最高的DDR3标准速度。获得最高传输镀铝为10664MB/S 【如果运行在双通道模式中时,可以达到21328MB/S】所以他们是不会自动运行在21333MHz,也不会自动达到17000MB/s的。
那为什么有人会购买这些模块呢?有得人买他们是为了超频。由于制造商保证了这些模块会运行在高达2133MHz下。你就知道了你可以把内存总线的时钟频率提升到1066MHz来达到更高的性能。
然而你的主板必须支持这样的超频,因此如果不超频,购买一个内存模块频率高于系统支持的内存是没用的。
时序
正如你在图1中可以看到的。图一中的内存模块的CL值为7.
内存时序是通过一系列数字给出的,例如,4-4-4-8,5-5-5-5-15,7-7-7-21或者9-9-9-24。数字代表内存执行某个操作所需要的时钟周期数。数字越小,内存的速度越快,图1中的内存模块的时序为7-7-7-18,,下图中的内存模块的时序是8-8-8-24、
这些操作的含义,按照顺序分别是 CL-tRCD-tRP-tRAS-CMD 为了理解他们,要记住内存是被组织成矩阵的,数据存储在旱行与列的交界处。
CL: CAS延迟,是从向内存发射一个命令到内存开始回答所花的时间。也就是从处理器向内存要数据开始到内存开始返回数据的时间。
tRCD: RAS到CAS的延迟,也就是从激活一个行命令RAS到列选择CAS的时间。
tRP:RAS Precharge的时间。是从关闭一个行到开始玲一行的访问的时间。
tRAS; Active 到precharge的时间。内存要发射下一个内存请求要等待的时间。
CMD:命令速率,从芯片被activated到可以向内存发射第一条命令所花费的时间。通常这要花费一个或者两个时钟周期。
通常,你有两种选择,配置PC来使用内存标准时序,通过在bios中设置内存配置为AUTO;或者人工设置PC来使用更低的内存时序,从而提高系统的性能,要注意的是不是所有的主板都支持改变内存时序,并且,有的主板可能不能够在非常低的内存时序下运行。
当你要对内存进行超频的时候,你可能需要增加你的内存时序,从而使得系统运行的更稳定,这时其实有一个很有意思的事情发生了,通过提高内存时序,内存其实性能是更差了,即使是运行在更高的时钟频率下,这时由于提高内存时序引入了延迟。
这里就是特别为超频设计的内存模块的另一个优点,制造商在保证内存模块可以达到标签上标注的时钟频率的同时,也保证你能够在标注的时钟频率下获得标注的时序。
例如,尽管你使用DDR3-1333/PC3-10600能够达到1600MHz【800MHz*2】,在这些模块下,你可能需要增加内存时序。而在DDR3-1600/PC3-12800内存模块中,制造商保证了你在达到1600MHz时能够不用调整内存时序。
下面详细解释每一个内存时序参数的含义。
CAL 延迟【CL】
正如之前提到的,CAS延迟是最著名的内存参数,它告诉我们内存需要延迟多少时钟周期才能够返回我们请求的数据。
值得注意的是这里提到的时钟频率是内存模块当前运行在的频率【real clock rate】。也就是rated clock rate的一半,由于DDR,DDR2,与DDR3内存能够每一个时钟周期传输两个数据,他们rate clock rate是他们real clock rate的两倍。
在上图中,你可以看到CL的工作过程,我们给出两个例子,例子中一个内存模块的CL=7,一个内存模块的CL=9。图中蓝色的命令是读命令。
CL=7的内存模块的延迟比CL=9的内存模块延迟性能高22.2%。两个模块运行在相同时钟频率下。
计算过程:首先DDR3-1333内存的每个时钟周期时间为1.5ns。注意这里要使用real clock rate,这个real的是标签标注的时钟频率的一半。
所以DDR3-1333内存对于CL=7需要延迟10.5ns,而对于CL=9需要延迟13.5ns。
SDRAM, DDR,DDR2,与DDR3内存实现了burst模式,这时存储在下一个地址的数据可以突发传输。