深入理解DDR:DDR的关键技术

乐活   2024-11-05 12:00   北京  

—————————————————————————————

版权声明:

本文作者:烓围玮未。主要从事ISP/MIPI/SOC/车规芯片设计/SOC架构设计

知乎专栏:芯片设计进阶之路

微信公众号:芯片设计进阶之路(x_chip)

转发必须授权,同时保留这段声明,盗版必究!

—————————————————————————————

在当今这个数据驱动的时代,内存子系统的性能对各种计算系统的表现起着至关重要的作用。DDR(Double Data Rate)内存技术自2000年推出以来,经历了多次迭代和优化,已成为高性能计算、数据中心、消费电子和嵌入式系统中不可或缺的一部分。

在这篇文章中,我将从基本结构来探讨DDR的关键技术,从而深入理解这一复杂而重要的技术。

一、DDR的核心技术

  1. 双沿采样和时钟频率

DDR(Double Data Rate)内存技术的核心优势之一是其双沿采样(Double-Edge Sampling)能力,即在时钟信号的上升沿和下降沿都进行数据传输。这种技术显著提高了数据传输速率,从而提升了内存带宽。

提高数据采用率,可以采用提高频率或者一个周期内多次采样(比如双沿采样)。提高频率是最简单也是最常用的,但是到达一定频率后就很难再提高了。双沿采样相当于在保持时钟不变的情况下,达到双倍频率的功效。

那么我们能不能在一个周期内进行4次,8次甚至16次采样呢?GDDR5X就是采用4次采样:

那么能不能8次采样呢?理论是可以的,但是这个实现起来是非常困难的,有很多技术挑战:

  • 时钟信号的生成

    •   多相时钟生成:需要生成多个相位的时钟信号,以确保在每个采样点都能提供精确的时钟边沿。例如,八沿采样需要生成8个相位的时钟信号。

        时钟抖动和偏移:多相时钟信号的生成和传输过程中容易引入抖动和偏移,这会影响数据采样的准确性。

  • 数据对齐

    •   精确的数据对齐:在多个采样点之间,数据必须精确对齐,以避免数据冲突和错误。

        时序裕量:随着采样次数的增加,每个采样点的时间窗口变窄,时序裕量减少,增加了设计难度。

  • 功耗和复杂性

    •   功耗增加:更多的采样点意味着更多的电路活动,导致功耗增加。

        复杂性增加:多沿采样需要更复杂的电路设计和控制逻辑,增加了设计和验证的难度。

  • 噪声和干扰

    •   电磁干扰(EMI):高频信号和多相时钟信号容易产生电磁干扰,影响系统的稳定性和可靠性。

所以,综合考虑下来,现在技术条件下,还不如直接提高频率来的简单方便成本低。所以4次采样是有真正的采用,但是8次以上基本就没见过了。也许以后DDR反正困难了,也会采用4次采样,那么就要叫QDR了。

时钟频率

在DDR中频率是一个关键参数,直接影响内存的性能和数据传输速率。DDR内存涉及多个频率概念,包括核心频率、时钟频率(I/O频率)和数据传输频率。

  1. 核心频率(Core Frequency

核心频率是指DDR内存芯片内部的主时钟频率。这个频率通常用于控制内存芯片内部的操作,如行激活、列访问和刷新等。核心频率通常较低,因为内部操作不需要像外部数据传输那样高速。

特点:

较低的频率:通常在几十MHz到几百MHz之间。

内部操作:主要用于控制内存芯片内部的操作,如行激活、列访问和刷新等。

  1. 时钟频率(I/O频率)

时钟频率(也称为I/O频率)是指DDR内存模块外部的时钟信号频率。这个频率用于同步数据的传输,确保数据在正确的时钟边沿被采样。时钟频率通常较高,因为它直接影响数据传输速率。

特点:

较高的频率:通常在几百MHz到几千MHz之间。

外部同步:用于同步数据的传输,确保数据在正确的时钟边沿被采样。

  1. 数据传输频率

数据传输频率是指DDR内存模块在每个时钟周期内实际传输的数据速率。由于DDR内存采用双沿采样技术,数据传输频率通常是时钟频率的两倍。

计算公式:

特点:

最高的频率:通常在几百MHz到几千MHz之间,具体取决于DDR版本和规格。

双沿采样:在时钟的上升沿和下降沿各传输一次数据,因此数据传输频率是时钟频率的两倍。

示例

假设我们有一个DDR4内存模块,其时钟频率为1600 MHz。

核心频率:

核心频率通常较低,假设为200 MHz(这个值因具体设计而异)。

时钟频率(I/O频率):

时钟频率为1600 MHz。

数据传输频率:

数据传输频率 = 2 × 1600 MHz = 3200 MT/s(Million Transfers per second)

不同版本频率对比表格如下:

DDR版本核心频率范围 (MHz)时钟频率(I/O频率)范围 (MHz)数据传输频率范围 (MT/s)预取(Prefetch)位数
DDR1100-200100-200200-4002n
DDR2100-266200-400400-8004n
DDR3100-266400-1066800-21338n
DDR4200-400800-32001600-64008n
DDR5200-4501600-48003200-960016n

可以看到,虽然DDR的速率增加了很多倍,但是DDR的核心频率其实改变不大。这主要就是靠预取技术来实现的。


  1. 预取技术(Prefetch

DDR(Double Data Rate)内存技术中的预取(Prefetch)机制是提高数据传输效率和减少内存访问延迟的关键技术之一。预取机制通过在一次内存访问中读取多个数据位,并将这些数据暂存到缓冲区中,以便后续的快速访问。 预取位数随着DDR技术的演进而不断增加,从DDR1的2位预取到DDR5的16位预取。以下是各个DDR版本的预取位数:

DDR1:2位预取(2n Prefetch)

DDR2:4位预取(4n Prefetch)

DDR3:8位预取(8n Prefetch)

DDR4:8位预取(8n Prefetch)

DDR5:16位预取(16n Prefetch)

预取机制的工作流程:

  1. 激活命令(Activate Command):

    1. 内存控制器发送激活命令,打开指定的行。

    2. 这一步是为了准备好访问该行中的数据。

  2. 读命令(Read Command):

    1. 内存控制器发送读命令,指定要读取的列地址。

    2. DRAM存储单元中的数据被读取到内部缓冲区中。

  3. 数据预取:

    1. 根据预取位数,从DRAM存储单元中读取多个数据位。

    2. 例如,在DDR4中,如果预取位数为8,那么一次读取会从DRAM存储单元中读取8个数据位。

  4. 数据传输:

    1. 缓冲区中的数据通过数据总线传输到内存控制器或处理器。

    2. 由于数据已经预取到缓冲区中,传输速度更快,延迟更低。

比如,下面是一个2n的预取:

比如读数据,这里的MUX就相当于一个类似FIFO的缓冲,MUX两边的采样速率是不一样的:

每个周期,读取了32bit的数据,然后MUX左边是同时有32bit数据,而数据右边由于是双沿采样,每个周期可以读取2个16bit数据。刚好同样的时钟可以让两边的数据速率平衡起来。这就是2n的预取。写也是类似的过程。

那么如果是4n,8n那么两边的时钟就不一样了。注意,MUX内部存储数据的单位是锁存器,所以MUX就相当于一个缓冲+选择器,比如下面8n的预取:

MUX左边:每个周期读8个数据送给MUX,假设时钟是100MHz;

MUX右边:每个周期必须读8个数据才能达到数据传输的平衡,所以采样频率是800MHz,结合双沿采样,最终频率是400MHz。

所以,所谓预取,简单来说,就是利用MUX前后数据采样的速率不同,达到了只提高外部IO速度,不改变DDR内部cell频率,就能提高数据传输。

预取机制的优点

  • 减少内部延迟:通过预取多个数据位,减少了每次访问DRAM存储单元的次数,从而减少了内部延迟。

  • 提高数据传输效率:预取机制使得数据传输更加高效,尤其是在连续访问多个数据位的情况下。

  • 提高并行处理能力:更多的预取位数意味着更多的数据可以在一次访问中被读取,从而提高并行处理能力。


  1. 突发长度(Burst Length)

Burst Length是指在一次突发传输中,内存控制器连续传输的数据量。突发传输是指在一个地址访问之后,连续传输多个数据块,无需再次发出新的命令或地址信号的过程。这种连续传输可以显著提高内存的带宽,因为减少了地址设置和启动传输的时间。

例如,假设突发长度为4,意味着在一条读命令发出后,内存可以连续传输4个数据单位(如字或字节),而不需要新的地址或控制信号。

假设我们有一个DDR4内存模块,突发长度为8,数据总线宽度为64位(8字节),时钟频率为2133 MHz,那么在一次突发传输中,内存可以连续传输8个64bit的数据,而不需要新的地址或控制信号。

内存可以传输的数据量为:

这和总线的Burst比较类似。DDR的这种特性对于现代基于Burst的总线传输也是比较友好的。

不同代的DDR的Burst Length是不同的:

DDR版本突发长度 (Burst Length)典型值
DDR12 或 44
DDR24 或 88
DDR388
DDR488
DDR51616



后纪

技术很重要,技术背后的思想更重要!

技术背后的某些思想就是你解决以后问题的钥匙。我的文章可能一篇中知识点不太多,但是力求让你能深入理解,为你进阶打下基础。如果有一点点收获,也算是我对中国芯片行业的一点点贡献吧。

赠人玫瑰,手有余香。如果你有所收获,麻烦花一秒时间帮我点个赞和在看吧,谢谢!

知乎专栏:芯片设计进阶之路

微信公众号:芯片设计进阶之路 x_chip

——————————————————————————————

参考文献

https://blog.csdn.net/weixin_43199439/article/details/142314709

芯时代青年
专心数字前端全流程,芯时代有为青年的自我修养
 最新文章