—————————————————————————————
版权声明:
本文作者:烓围玮未。主要从事ISP/MIPI/SOC/车规芯片设计/SOC架构设计
知乎专栏:芯片设计进阶之路
微信公众号:芯片设计进阶之路(x_chip)
转发必须授权,同时保留这段声明,盗版必究!
—————————————————————————————
在当今这个数据驱动的时代,内存子系统的性能对各种计算系统的表现起着至关重要的作用。DDR(Double Data Rate)内存技术自2000年推出以来,经历了多次迭代和优化,已成为高性能计算、数据中心、消费电子和嵌入式系统中不可或缺的一部分。
在这篇文章中,我将从基本结构来探讨DDR的关键技术,从而深入理解这一复杂而重要的技术。
一、DDR的核心技术
双沿采样和时钟频率
DDR(Double Data Rate)内存技术的核心优势之一是其双沿采样(Double-Edge Sampling)能力,即在时钟信号的上升沿和下降沿都进行数据传输。这种技术显著提高了数据传输速率,从而提升了内存带宽。
提高数据采用率,可以采用提高频率或者一个周期内多次采样(比如双沿采样)。提高频率是最简单也是最常用的,但是到达一定频率后就很难再提高了。双沿采样相当于在保持时钟不变的情况下,达到双倍频率的功效。
那么我们能不能在一个周期内进行4次,8次甚至16次采样呢?GDDR5X就是采用4次采样:
那么能不能8次采样呢?理论是可以的,但是这个实现起来是非常困难的,有很多技术挑战:
时钟信号的生成
数据对齐
功耗和复杂性
噪声和干扰
多相时钟生成:需要生成多个相位的时钟信号,以确保在每个采样点都能提供精确的时钟边沿。例如,八沿采样需要生成8个相位的时钟信号。
时钟抖动和偏移:多相时钟信号的生成和传输过程中容易引入抖动和偏移,这会影响数据采样的准确性。
精确的数据对齐:在多个采样点之间,数据必须精确对齐,以避免数据冲突和错误。
时序裕量:随着采样次数的增加,每个采样点的时间窗口变窄,时序裕量减少,增加了设计难度。
功耗增加:更多的采样点意味着更多的电路活动,导致功耗增加。
复杂性增加:多沿采样需要更复杂的电路设计和控制逻辑,增加了设计和验证的难度。
电磁干扰(EMI):高频信号和多相时钟信号容易产生电磁干扰,影响系统的稳定性和可靠性。
所以,综合考虑下来,现在技术条件下,还不如直接提高频率来的简单方便成本低。所以4次采样是有真正的采用,但是8次以上基本就没见过了。也许以后DDR反正困难了,也会采用4次采样,那么就要叫QDR了。
时钟频率
在DDR中频率是一个关键参数,直接影响内存的性能和数据传输速率。DDR内存涉及多个频率概念,包括核心频率、时钟频率(I/O频率)和数据传输频率。
核心频率(Core Frequency)
核心频率是指DDR内存芯片内部的主时钟频率。这个频率通常用于控制内存芯片内部的操作,如行激活、列访问和刷新等。核心频率通常较低,因为内部操作不需要像外部数据传输那样高速。
特点:
较低的频率:通常在几十MHz到几百MHz之间。
内部操作:主要用于控制内存芯片内部的操作,如行激活、列访问和刷新等。
时钟频率(I/O频率)
时钟频率(也称为I/O频率)是指DDR内存模块外部的时钟信号频率。这个频率用于同步数据的传输,确保数据在正确的时钟边沿被采样。时钟频率通常较高,因为它直接影响数据传输速率。
特点:
较高的频率:通常在几百MHz到几千MHz之间。
外部同步:用于同步数据的传输,确保数据在正确的时钟边沿被采样。
数据传输频率
数据传输频率是指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)位数 |
DDR1 | 100-200 | 100-200 | 200-400 | 2n |
DDR2 | 100-266 | 200-400 | 400-800 | 4n |
DDR3 | 100-266 | 400-1066 | 800-2133 | 8n |
DDR4 | 200-400 | 800-3200 | 1600-6400 | 8n |
DDR5 | 200-450 | 1600-4800 | 3200-9600 | 16n |
可以看到,虽然DDR的速率增加了很多倍,但是DDR的核心频率其实改变不大。这主要就是靠预取技术来实现的。
预取技术(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)
预取机制的工作流程:
激活命令(Activate Command):
内存控制器发送激活命令,打开指定的行。
这一步是为了准备好访问该行中的数据。
读命令(Read Command):
内存控制器发送读命令,指定要读取的列地址。
DRAM存储单元中的数据被读取到内部缓冲区中。
数据预取:
根据预取位数,从DRAM存储单元中读取多个数据位。
例如,在DDR4中,如果预取位数为8,那么一次读取会从DRAM存储单元中读取8个数据位。
数据传输:
缓冲区中的数据通过数据总线传输到内存控制器或处理器。
由于数据已经预取到缓冲区中,传输速度更快,延迟更低。
比如,下面是一个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存储单元的次数,从而减少了内部延迟。
提高数据传输效率:预取机制使得数据传输更加高效,尤其是在连续访问多个数据位的情况下。
提高并行处理能力:更多的预取位数意味着更多的数据可以在一次访问中被读取,从而提高并行处理能力。
突发长度(Burst Length)
Burst Length是指在一次突发传输中,内存控制器连续传输的数据量。突发传输是指在一个地址访问之后,连续传输多个数据块,无需再次发出新的命令或地址信号的过程。这种连续传输可以显著提高内存的带宽,因为减少了地址设置和启动传输的时间。
例如,假设突发长度为4,意味着在一条读命令发出后,内存可以连续传输4个数据单位(如字或字节),而不需要新的地址或控制信号。
假设我们有一个DDR4内存模块,突发长度为8,数据总线宽度为64位(8字节),时钟频率为2133 MHz,那么在一次突发传输中,内存可以连续传输8个64bit的数据,而不需要新的地址或控制信号。
内存可以传输的数据量为:
这和总线的Burst比较类似。DDR的这种特性对于现代基于Burst的总线传输也是比较友好的。
不同代的DDR的Burst Length是不同的:
DDR版本 | 突发长度 (Burst Length) | 典型值 |
DDR1 | 2 或 4 | 4 |
DDR2 | 4 或 8 | 8 |
DDR3 | 8 | 8 |
DDR4 | 8 | 8 |
DDR5 | 16 | 16 |
后纪
技术很重要,技术背后的思想更重要!
技术背后的某些思想就是你解决以后问题的钥匙。我的文章可能一篇中知识点不太多,但是力求让你能深入理解,为你进阶打下基础。如果有一点点收获,也算是我对中国芯片行业的一点点贡献吧。
赠人玫瑰,手有余香。如果你有所收获,麻烦花一秒时间帮我点个赞和在看吧,谢谢!
知乎专栏:芯片设计进阶之路
微信公众号:芯片设计进阶之路 x_chip
——————————————————————————————
参考文献
https://blog.csdn.net/weixin_43199439/article/details/142314709