基于Agilex的DDR4控制器与HPS数据交互实战 - 第2节
2.1 DDR4 SDRAM 工作原理
DDR4 SDRAM(Double Data Rate 4 Synchronous Dynamic Random Access Memory)是一种同步动态随机存取存储器,其核心工作原理是在每个时钟周期的上升沿和下降沿各传输一次数据,从而实现双倍数据速率。与DDR3相比,DDR4在内部架构、工作电压、数据传输速率和功耗管理方面均有显著改进。
2.1.1 核心架构与操作流程
DDR4 存储阵列采用 Bank Group 架构,每个 Bank Group 内部包含多个 Bank,这种设计允许更高的并行度和数据吞吐量。一次完整的读写操作通常包含以下步骤:
- 激活(ACTIVATE):通过行地址选通(RAS)打开指定 Bank 中的一行,将数据从存储单元传输到 Sense Amplifier(感测放大器)。
- 列访问(READ/WRITE):通过列地址选通(CAS)选择该行中的特定列,进行数据读取或写入。
- 预充电(PRECHARGE):关闭已激活的行,为下一次行激活做准备。
- 刷新(REFRESH):由于 DRAM 电容会漏电,需要定期刷新以保持数据完整性。
2.1.2 DDR4 内部操作时序图
下图展示了 DDR4 从激活到读操作再到预充电的典型时序流程,重点标注了三个关键时序参数:tRCD、tCL 和 tRP。
2.2 关键时序参数详解
DDR4 的时序参数直接决定了内存的访问延迟和带宽性能。以下是最核心的四个时序参数,它们通常以时钟周期数表示,例如 16-18-18-36。
| 参数 | 全称 | 描述 | 对性能的影响 |
|---|---|---|---|
| tCL | CAS Latency | 列地址选通延迟,从发出读命令到第一个数据输出的时钟周期数。 | 直接影响读延迟,tCL 越小越好。 |
| tRCD | RAS to CAS Delay | 行激活到列选通的延迟,打开一行后需要等待的时间。 | 影响随机访问速度,tRCD 越小越好。 |
| tRP | Row Precharge Time | 预充电时间,关闭当前行到下一次行激活的最小间隔。 | 影响行切换速度,tRP 越小越好。 |
| tRAS | Active to Precharge Delay | 行激活到预充电的最小时间,即行必须保持打开的最短时间。 | 影响刷新和行管理效率,通常与 tCL + tRCD 相关。 |
2.3 DDR4 与 DDR3 对比
DDR4 作为 DDR3 的继任者,在多个维度上进行了重大升级。下表从关键指标出发,对比两代内存技术:
| 对比项 | DDR3 | DDR4 | 优势说明 |
|---|---|---|---|
| 工作电压 | 1.5V(标准)/ 1.35V(低电压) | 1.2V(标准)/ 1.05V(低电压) | DDR4 功耗更低,适合高密度和移动应用。 |
| 数据传输速率 | 800 ~ 2133 MT/s | 1600 ~ 3200 MT/s(标准),最高可达 5100 MT/s | DDR4 带宽更高,满足高性能计算需求。 |
| Bank 架构 | 8 Bank(单 Bank Group) | 4 ~ 16 Bank,引入 Bank Group(每组 4 Bank) | Bank Group 支持并发操作,减少行冲突。 |
| 预取宽度 | 8n 预取 | 8n 预取(核心频率更低) | DDR4 核心频率更低,但通过 Bank Group 提升吞吐量。 |
| 片内终结(ODT) | 静态 ODT | 动态 ODT(DQ 和 DQS 独立控制) | 动态 ODT 改善信号完整性,减少反射。 |
| 数据总线 | DQ 和 DQS 采用 SSTL-15 标准 | DQ 和 DQS 采用 POD12 标准 | POD12 降低 I/O 功耗,提升信号质量。 |
| 封装 | 78-ball FBGA(x8)/ 96-ball FBGA(x16) | 78-ball FBGA(x8)/ 96-ball FBGA(x16),更薄 | DDR4 封装更薄,适合高密度 PCB 布局。 |
| 刷新机制 | 8K / 4K 刷新周期 | 8K / 4K 刷新周期,支持温度补偿刷新(TCR) | TCR 根据温度调整刷新频率,进一步降低功耗。 |
2.3.1 架构对比图:DDR3 vs DDR4 Bank 组织
下图直观展示了 DDR3 与 DDR4 在 Bank 组织方式上的核心差异。DDR4 的 Bank Group 架构是其性能提升的关键。
2.4 关键时序参数在 Agilex 控制器中的意义
在 Agilex FPGA 的 DDR4 控制器硬核(Hard Memory Controller)中,上述时序参数被映射为寄存器配置值。控制器会根据这些参数自动生成符合 JEDEC 标准的命令序列。以下是几个关键配置点:
- tCL 配置:决定读延迟(RL = tCL + AL),影响读数据返回的等待周期。
- tRCD 配置:影响激活命令到读/写命令的间隔,过短会导致数据未稳定。
- tRP 配置:影响预充电命令到下一次激活的间隔,过短会导致行关闭不彻底。
- tFAW (Four Activation Window):DDR4 特有参数,限制在特定窗口内最多激活的 Bank 数量,防止电流过冲。
tCK(时钟周期)为单位。例如,若 DDR4 运行在 2400 MT/s,则 tCK = 0.833 ns。如果 tCL = 17,则实际延迟为 17 × 0.833 ≈ 14.16 ns。务必根据颗粒数据手册的 ns 值反算时钟周期数,避免配置错误。
2.5 本章小结
DDR4 SDRAM 通过 Bank Group 架构、更低的电压和更高的数据速率,在性能与功耗之间取得了更好的平衡。理解 tRCD、tCL、tRP 等关键时序参数,是正确配置 Agilex DDR4 控制器的基础。与 DDR3 相比,DDR4 在架构、信号标准和功耗管理上的改进,使其成为现代高性能嵌入式系统的首选内存技术。