DDR 内存中的数据选通

电器工程 FPGA 记忆 DDR
2022-01-18 07:23:42

在 DDR3 内存中有一个称为 DQS 的信号,我对此有几个疑问。

  1. DQS 是什么的缩写?特别是Q
  2. DRAM中数据选通的目的是什么,为什么不使用简单的时钟。
  3. DRAM芯片上的DQS是来自内存控制器的输出还是输入?
  4. DQS 与 CLK、地址和控制信号有什么关系?在DDR信号的长度匹配中,我发现“CLK+Address+Ctrl信号”的飞行时间与Data Lane的飞行时间无关。这怎么可能。这是否意味着它们完全不相关?

解释

美光 TN4605 解释了对 Data Strobe 的需求:

在纯同步系统中,数据输出和捕获以通用、自由运行的系统时钟为参考。然而,当输出访问时间和飞行时间之和接近比特时间(数据率的倒数)时,达到了这种系统的最大数据率。尽管为早期数据启动和/或延迟数据捕获生成延迟时钟将允许提高数据速率,但这些技术并未考虑数据有效窗口(或数据眼)由于变化而相对于任何固定时钟信号移动的事实在温度,电压或负载。因此,为了允许更高的数据速率,数据选通信号被添加到 DDR 设备中。

但我不明白纯同步系统的最大数据速率的解释

2个回答
  1. Q 只是一些古老的符号。数据信号称为 DQ,数据选通称为 DQS

  2. 数据选通是数据线的时钟信号。每个数据字节都有自己的选通

  3. 是双向信号。它由与数据信号相同的组件传输。由写时的内存控制器和读时的内存命令。

  4. 控制和地址信号是单向的,由 CLK 信号计时。DQS 的运行速度与 CLK 相同,但它们不同步。

让我们假设所有信号的飞行时间都是 1ns。

控制器仅发送一个 clk 的情况:

- 在写入过程中没有问题。数据信号可以同步到 CLK 信号,一切都很好。如果走线长度匹配,您可以使用比飞行时间更严格的时序容差。

- 在读取过程中出现问题。控制器必须首先将时钟传输到内存,它会在 1 ns 后到达。然后内存将数据位发送到控制器,这需要另一个纳秒。有 2 ns 的偏移,这限制了您可以传输的速度。

当发送数据的同一个组件发送时钟时,它都是同步的。数据传输速度甚至比飞行时间还快

您需要数据选通的原因是时钟偏差。如果时钟信号为高电平 20 秒,则发送方和接收方同时为高电平的时间将少于 20 秒。它不会完全重叠。发送者的 20 秒比接收者早 20 秒开始。信号的持续时间越短或发送方和接收方距离越远,共享窗口(重叠区域)就越小,直到最终窗口不再重叠(因为偏斜变得大于信号高的时间长度for at the sender – 当发送方的信号变低时,接收方的 20 秒开始)。显然,在这个宏观时间尺度上的差异是不明显的。但在纳秒时间尺度上,

DDR4-4000 的时钟周期为 0.4ns。这意味着内存控制器的信号为高电平 0.2ns。光在 0.2ns 内传播 6cm。如果 DDR 总线长 2 厘米,那么当高电平信号到达 DIMM 并使其立即在时钟上断言数据并返回内存控制器时,它已经是时钟时间的 2/3是高的。这意味着内存控制器只有通常 1/3 的时间来锁存数据。如果总线长 3 厘米,那么它期望锁存数据的时钟电平(在 TCL(CAS 延迟)过去之后)将锁存所有零,而无法知道内存地址是否包含 8 个字节的零,或者它是否是硬件问题。

这就是时钟偏差如何限制高时钟速度(时钟间隔越小,组件必须越接近,并且 DIMM 引脚在几何上不能距离内存控制器小于 2 厘米)或“传输速度有多快”,可以使用 DQS 对消除。

内存控制器总是会在时序中考虑时钟偏差和总线速度/距离,但这很脏,需要额外的逻辑。通过允许 DIMM 列在需要时发送数据 + 时钟信号来消除对 TCL 的任何严格依赖是有意义的,并且数据将在伴随的时钟上自动锁存。内存控制器的操作不受 DRAM 时序的严格限制——如果需要,它可以运行得更慢(显然不是更快)。它充当传入数据的标记,因此内存控制器不必跟踪它。