DDR3 SDRAM 与 DDR2 SDRAM 区别

DDR3 SDRAM 与 DDR2 SDRAM 区别

前言

本文通过对比两款镁光 DDR3 SDRAM 和 DDR2 SDRAM 芯片(型号分别为:MT41J128M16HA、MT47H128M16RT)手册来对比 DDR3 SDRAM 与 DDR2 SDRAM 的区别。

注:后文 DDR2 SDRAM 简称为 DDR2,DDR3 SDRAM 简称为 DDR3。

概述

  • DDR3 外部接口时钟频率变为内核时钟频率 4 倍,实现 8 倍预取
  • 新增复位和 ZQ 校准引脚
  • CL、AL 时钟个数增加,并新增写入延迟参数 CWL
  • 增加 Write leveling 功能,用来解决 fly-by 架构导致的 skew 问题
  • 增加 MPR 模式寄存器用于读出预设数据,用于系统校准,默认输出 b‘01010101
  • RDQS 引脚变为 TDQS 引脚,功能上有所区别
    • RDQS(Redundant Data Strobe):用于 x8 的 DDR2 芯片,RQDS 除了提供负载,还能输出 strobe,估计设计 DDR3 时发现这个功能多余,所以简化为 TDQS,只剩下负载功能
  • 增加动态 ODT 功能

引脚及定义

名称类型(对于 SDRAM)定义
CLK,CK#Input差分时钟
CKEInputCLK 时钟使能,高有效
CS#Input片选信号,低有效
CAS#,RAS#,WE#Input命令信号,同 CS# 组成不同操作命令
RESET#Input异步复位信号
DMInput写数据掩码,高有效
ODTInputOn-die temination,高有效,但可以通过模式寄存器禁用 ODT 功能
BA[2:0]Inputbank 地址
A[14:0]Input① 激活命令时,A[14:0] 作为行地址;② 读/写命令时,A[9:0] 和 A[11] 作为列地址;A[10] 用来指示是否使能自动预充电(高电平有效);当 MR0[1:0] = 01时,A[12] 用作 BL8 和 BC4 突发长度选择;③ 预充电命令时,A[10] 高电平表示对所有 bank 进行预充电,低电平表示只对 BA[2:0] 指示的 bank 进行预充电; ④ 加载模式寄存器命令时,A[14:0] 用来表示操作码
x16: DQ[15:0]; x8: DQ[7:0]; x4: DQ[3:0]Inout数据
DQS, DQS#Inout数据选通信号,与读数据边沿对齐,与写数据中心对齐
TDQS, TDQS#OutputTermination data strobe,提供额外终端电阻输出;TDQS 和 DM 引脚共用,TDQS# 引脚是独立的,所以使能了 TDQS后就不能用 DM
VDDSupply芯片电源
VDDQSupplyDQ 电源
VREFCASupply控制、命令、地址信号参考电压
VREFDQSupply数据信号参考电压
VSSSupply芯片地
VSSQSupplyDQ 地
ZQReference通过 240Ω 高精度电阻 RZQ (±1%)连接 VSSQ,用作 output drive calibration

命令真值表

在这里插入图片描述

模式寄存器

MR0

在这里插入图片描述

Burst Length

支持 BL8、BC4 两种突发长度

  • 当 M1-0 = 00,固定为 BL8
  • 当 M1-0 = 10,固定为 BC4
  • 当 M1-0 = 01,可在发送读/写命令时根据 A12 动态选择 BL8(A12 = 1) 或者 BC4(A12 = 0)

在这里插入图片描述

Burst Type

在这里插入图片描述

DLL RESET

在这里插入图片描述

Write Recovery
  • 用于设置自动预充电的写操作写完最后一个数据到自动执行预充电命令间的延时
  • WR(cycles)= ROUNDUP { tWR (ns) / tCK (ns)},向上取整

在这里插入图片描述

Precharge Power-Down

设置 DRAM 进入节电模式下 DLL的状态以及退出节电模式的快慢

在这里插入图片描述

CAS Latency(CL)

支持配置 5-14 个 CK 时钟周期延迟

在这里插入图片描述

MR1

在这里插入图片描述

DLL Enable/Disable
  • 若要进行 DDR3 正常操作,必须在上电初始化时使能 DLL,并进行 DLL 复位,具体时序见 “初始化时序” 章节

  • 若 DLL 已使能,则进入自刷新模式(self refresh mode)时,会自动禁用 DLL,退出自刷新模式后自动使能 DLL

  • 禁用 DLL 时,CL 和 CWL 只支持设置为 6

  • 禁用 DLL 会影响 RL 和 tDQSCK,DLL-off 的 tDQSCK 会远大于 DLL-on 的 tDQSCK

    • DLL-on:RL = AL + CL
    • DLL-off:RL = AL + CL -1

在这里插入图片描述

在这里插入图片描述

Output Drive Strength
  • 支持 RZQ/6(40Ω [NOM])和 RZQ/7(34Ω [NOM]),主要设置为 RZQ/7(34Ω [NOM])
  • RZQ 阻值由 ZQ 和 VSSQ 引脚间的高精度电阻决定,固定为 240Ω ± 1%
Output Enable/Disable
  • 禁用输出时,所有 DDR3 的输出(DQ, DQS, DQS#)均为高阻态
TDQS Enable
  • 当一个 DDR 控制器连接不同型号 DDR(例如 x4 和 x8 DDR) 时,如果没有 TDQS 这功能,DQSa 和 DQSb 的负载将会不一样,这样会造成系统工程师在 SI 设计上的一大挑战。

在这里插入图片描述

  • Termination data strobe(TDQS)只支持在 x8 DDR3 SDRAM 下使能,x4 or x8 DDR3 必须禁用 TDQS

  • DQS 和 DM 引脚共用,所以使能了 TDQS后就不能用 DM

On-Die Termination(ODT)

在这里插入图片描述

  • RTT 终端电阻作用于 DQ,DM,DQS,DQS#,TDQS,TDQS# 引脚

  • RTT 支持 RZQ / n(n = 2/4/6/8/12,RZQ = 240 Ω)

  • 与 DDR2 不同,DDR3 ODT 必须在读操作前禁用,直到读突发结束

  • DRAM 初始化且校准完成后,RTT,nom 除了读操作和自刷新模式下,其余都允许。但是写操作使用动态 ODT(RTT(WR)

  • DLL 禁用模式下,ODT 无法使用

  • ODT 引脚控制 ODT 功能开关,模式寄存器控制 RTT 电阻状态
    在这里插入图片描述

  • ODT 又分为同步 ODT 模式和异步 ODT 模式。只要DLL处于开启且是锁定状态,就处于同步ODT模式。

同步 ODT 模式时序

在这里插入图片描述

在这里插入图片描述

Write Leveling(写入均衡)

在 DDR2 的架构下,信号 CLK/CMD/ADD 从 MC 用 balance tree(T 型拓扑)的方式,送到每颗 DRAM,所以每颗 DRAM 接收到的 CLK/ADD/CMD 信号可由 PCB layout 走线的技巧来得到相同的延迟,再控制 DQ/DQS PCB 走线长度,这样就能符合 tDQSS、tDSS、tDSH 的要求。

在这里插入图片描述

由于 balance tree 拓扑结构的 SI (Signal integrity) 较差,不利于高速应用。 因此从 DDR3 开始,CLK/CMD/ADD 信号改用 fly-by 拓扑结构,而 DQS/DQ 信号依然是点对点的架构。如下图所示,共有四颗 DRAM 使用 fly-by 架构,CLK/CMD/ADD 信号从 MC 送出后,将先抵达第一颗 DRAM,再到第二颗、第三颗,最后才抵达第四颗 DRAM。fly-by 架构除了 SI 表现较好、较适合高速应用外,也可节省 PCB layout 的走线难度和面积。但 fly-by 架构会导致 CLK/CMD/ADD 信号到达每颗 DRAM 的时间都不同,这会造成不是每颗 DRAM 都符合 tDQSS、tDSS、tDSH 要求。

在这里插入图片描述

Write leveling 就是用来解决 fly-by 架构导致的 skew 问题。系统 MC 在系统初始化时,先让 DRAM 进入 Write leveling 模式,DRAM 根据将接收到 DQS 上升沿时对应的 CK 时钟的状态反馈到 DQ 上并输出给 MC,MC 不断调整 DQS 输出延时直至 MC 接收到 DQ 由 0 跳变为1 时,表示 CK 和 DQS上升沿对齐。
在这里插入图片描述
在这里插入图片描述

如果 DRAM 颗粒的类型、信号线的长度、DRAM 颗粒间的拓扑关系都是固定的,那么控制器使用提前设定的参数,即可以保持 tDQSS,tDSS,tDSH 等时序参数,则无需 write leveling。

Posted CAS Additive Latency(AL)
  • 支持 0,CL-1,CL-2 三个配置

在这里插入图片描述

MR2

在这里插入图片描述

CAS Write Latency(CWL)
  • DDR3 应该是为了更加精确控制读、写延时,所以将读数据延时 CL 与写入延时 CWL 分开设置了

  • 支持 5/6/7/8/9/10 CK 六种配置

在这里插入图片描述

Auto Self Refresh(ASR)
  • 使能 ASR 后,DDR3 自动根据实际温度切换 DDR 自刷新速率
Self Refresh Temperature(SRT)
  • SRT 使能后,不管实际温度多少,直接强制使用 x2 自刷新速率
  • SRT 和 ASR 不能同时使能
Dynamic On-Die Termination(ODT)
  • 只有写操作时使用动态 ODT(RTT(WR)
  • Write leveling 时动态 ODT 无法使用

MR3

在这里插入图片描述

Multipurpose Register(MPR)
  • MPR 模式寄存器用于读出预设数据,用于系统校准,默认输出 b‘01010101
  • 在发送读指令时,通过 A12 的值选择突发长度为 BL8(A12 = 1) 或者 BC4(A12 = 0)

在这里插入图片描述

MPR 时序

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

时序

初始化时序

  1. 电源稳定前,RESET# 要维持低电平,保证所有输出为高阻态;电源稳定后正式初始化之前,RESET# 必须至少维持 200us 的低电平
  2. CKE 至少先于 RESET# 置位前 10ns 拉低
  3. RESET# 置位后,等待 CKE 维持低电平 500us
  4. 输入信号要满足建立保持时间 tIS、tIH
  5. 采集到 CKE 为高电平后,等待 tXPR 时间后开始进行模式寄存器配置
  6. 配置 MR2 模式寄存器
  7. 配置 MR3 模式寄存器
  8. 配置 MR1 模式寄存器,包括使能 DLL 和 ODT 配置
  9. 配置 MR0 模式寄存器,包括复位 DLL(DLL 复位后需要等待 tDLLK 才能 lock)
  10. 发出 ZQCL 命令以校准过程电压温度 (PVT) 的 RTT 和 RON 值。在正常操作之前,必须满足 tZQinit
  11. 满足 tDLLK 和 tZQinit 时间后即可正常操作了

在这里插入图片描述

读时序

连续读

在这里插入图片描述

非连续读

在这里插入图片描述

读后写

在这里插入图片描述

读后自动预充电

在这里插入图片描述

写时序

连续写

在这里插入图片描述

非连续写

在这里插入图片描述

写后读

在这里插入图片描述

写后预充电

tWR 写恢复时间

在这里插入图片描述

输入时钟频率切换

在 Self Refresh 和 Precharge power-down 这两种模式下可以进行输入时钟频率切换

在这里插入图片描述

ZQ 校准

ZQ 是 DDR3 新增的引脚,该引脚通过 240Ω 高精度电阻 RZQ (±1%)连接 VSSQ,用作 output drive calibration。这个引脚利用内置的片上校准引擎(On-Die Calibration Engine,ODCE)执行一系列指令,以自动检测并调整数据输出驱动器的导通电阻和ODT(On-Die Termination)的终端电阻值,确保数据传输的准确性。

DDR3 定义了 ZQCL 和 ZQCS 两个 ZQ 校准命令,ZQ 校准时序如下所示。当系统发出这一指令后,将用相应的时钟周期(在加电与初始化之后用 512 个时钟周期,在退出自刷新操作后用 256个 时钟周期、在其他情况下用 64 个时钟周期)对导通电阻和 ODT 电阻进行重新校准。

在这里插入图片描述

附件一:DDR3 SDRAM 状态跳转图

在这里插入图片描述

附件二:DDRx SDRAM 参数对比

在这里插入图片描述

  • 22
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA的花路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值