1.简述
DDR(Double Data Rate SDRAM)双倍速率的SDRAM
DDR在SDARAM的基础上改进而来,SDRAM在一个CLK周期传输一次数据,而DDR在一个CLK周期传输两次数据,分别在上升沿和下降沿各传输一次数据。该概念称为预取,在描述DDR速度的时候一般使用MT/S单位,也就是每秒多少兆次数据传输。
2.DDR
SDRAM发展了四代:第一代SDR SDRAM,第二代DDR SDRAM,第三代DDR2 SDRAM,第四代DDR3 SDRAM,现在已经发展到DDR5S DRAM。
⚪ DDR SDRAM是Double Data Rate Synchronous Dynamic Random Access Memory(双数据速率同步动态随机存储器)的简称,是由VIA等公司为了与RDRAM相抗衡而提出的内存标准,为第二代SDRAM标准。其常见标准有DDR 266、DDR 333、DDR 400。其对于SDRAM,主要它允许在时钟脉冲的上升沿和下降沿传输数据,这样不需要提高时钟的频率就能实现双倍的SDRAM速度,例如DDR266内存与PC133 SDRAM内存相比,工作频率同样是133MHZ,但在内存带宽上前者比后者高一倍。这种做法相当于把单车道更换为双车道,内存的数据传输性能自然可以翻倍。
⚪DDR2(Double Data Rate2)SDRAM是由JEDEC(电子设备工程联合委员会)开发的第三代SDRAM内存技术标准,1.8V工作电压,240线接口,提供了相较于DDR SDRAM更高的运行效能与更低的电压,同样采用在时钟的上升/下降沿同时进行数据传输的基本方式,但拥有两倍于上一代DDR内存预读取能力(即4bit数据预取能力),其常见的频率规范有DDR2 400\533\667\800\1066\1333等,总线频率553MHZ的DDR2内存只需133MHZ的工作频率。
⚪DDR3 SDRAM相比于DDR2具备更低的工作电压(1.5V),240线接口,支持8bit预读,只需133MHZ的工作频率便可实现1066MHZ的总线频率。
⚪DDR4相比DDR3最大的区别有三点:16bit预取机制,同样内核频率下理论速度是DDR3的两倍;更可靠的传输规范,数据可靠性进一步提升;工作电压降为1.2V,更节能。
主要区别是在于传输速率的不同,随着时钟周期的不断降低,传输率也不断提高。电压也越来越低。
3.DDR区别
DDR到DDR5的主要变化,可以看到,为了配合整体行业对于性能,容量和省电的不断追求,规范的工作电压越来越低,芯片容量越来越大,IO的速率也越来越高。
靠着prefetch来实现用比较低的核心传输频率来满足日益高涨的高速IO传输速率的需求。
从DDR开始到DDR3,Prefetch相当于DRAM core同时修了多条高速公路连到外面的IO口,来解决IO速率比内部核心速率快的问题,IO数据速率跟核心频率的倍数关系就是prefetch。
Burst length的长度跟CPU的cache line大小有关。Burst length的长度有可能大于或者等于prefetch。但是如果prefetch的长度大于burst length的长度,就有可能造成数据浪费,因为CPU一次用不了那么多。所以从DDR3到DDR4,如果在保持DDR4内存data lane还是64的前提下,继续采用增加prefetch的方式来提高IO速率的话,一次prefetch取到的数据就会大于一个cache line的大小(512bits),对于目前的CPU系统,反而会带来性能问题。
从DDR4出现了Bank Group,这就是DDR4在不断改变prefetch的情况下,能继续提升IO速率的秘密武器。DDR4利用Bank group的interleave,实现IO速率在DDR3基础上进一步提升。
4.内存原理
从内存控制器到内存颗粒内部逻辑,笼统上从大到小:
Channel>DIMM>rank>chip>bank>row/column
实际上每个格子的存储宽度是内存颗粒(Chip)的位宽,在这里由8个Chip组成一个Rank,而CPU寻址宽度是64bit,所以64/8=8bit,即每个格子是一个字节。选择每个格子也不是简单的两组信号,是由一系列信号组成,以2GB DDR3为例:
其引脚按照功能可以分为7类:前三类为电源、地址、配置
PIN分类 | 名称 | 方向 | 功能描述 |
电源 | VDD | PI | 芯片主电源输入(1.2V) |
电源 | VDDQ | PI | DQ信号线电源供电(1.2V) |
电源 | VPP | PI | DRAM激活电压(2.5V) |
电源 | VREFCA | PI | 控制/命令/地址信号参考电平 |
电源 | VSS | - | 主地 |
电源 | VSSQ | - | DQ信号参考地 |
电源 | ZQ | - | 阻抗匹配(ODT)标准参考,接240欧电阻到地 |
后4类为:控制信号、时钟信号、地址信号、数据信号
PIN分类 | 名称 | 方向 | 功能描述 |
控制信号 | ALERT_N | OUT | 报警信号,若命令/地址出现奇偶校验错误或者CRC错误,该PIN脚拉低,告知DDR Controller |
控制信号 | TEN | IN | 测试模式使能信号,高电平使能测试模式。正常操作过程中,必须拉低 |
控制信号 | RESET_N | IN | DDR复位信号,低电平有效。正常操作过程中,保持高电平 |
控制信号 | PAR | IN | 命令/地址信号的奇偶校验使能,可以通过寄存器禁用或者使能 |
控制信号 | CS_N | IN | DDR芯片使能,用于多个RANK时的RANK组选择 |
控制信号 | ODT | IN | 阻抗匹配使能 |
控制信号 | CKE | IN | 时钟信号使能。通过此电平,可以控制芯片是否进入低功耗模式 |
控制信号 | ACT_N | IN | 命令激活信号,这个信号为低电平时,可以通过A[14:16]地址信号线选择激活命令的行地址。为高电平时,Address信号线正常使用 |
PIN分类 | 名称 | 方向 | 功能描述 |
时钟信号 | CK_N/CK_P | IN | 差分时钟信号,由DDR Controller输出 |
地址信号 | BG0 | IN | Bank Group地址选择 |
地址信号 | BA[0:1] | IN | Bank地址选择 |
地址信号 | A[0:16] | IN | 地址选择信号,其中A16还有RAS_N功能,A15有CAS_N功能,A14有WE_N功能,A12有BC_N功能,A10有AP功能 |
数据信号 | DQ[0:15] | IN/OUT | 低8位数据和高8位数据信号线,共16位数据信号线 |
数据信号 | LDM/LDBI | IN/OUT | 低8位数据掩码 |
数据信号 | UDM/UDBI | IN/OUT | 高8位数据掩码 |
数据信号 | LDQS_N/LDQS_P | IN/OUT | 低8位数据选通信号 |
数据信号 | UDQS_N/UDQS_P | IN/OUT | 高8位数据选通信号 |
电源、地、配置信号的功能很简单,在此不再赘述。控制信号主要是用来完成DDR4和DDR4 Controller之间的状态切换。DDR4中最重要的信号就是地址信号和数据信号。