通过理论(并假设位时间、命令速率和周期时间都是规格的一部分,并且对于所有声称是 ddr4-xxx 的组件来说必须是正确的,而且始终相同——如果不是的话,我希望得到纠正),我们有:
类型 | 数据速率 | 位时间 | 指令速率 | 周期 | CAS 延迟 | 第一个单词 (ns) | 第四个字(ns) | 第八个字(ns) |
---|---|---|---|---|---|---|---|---|
DDR4-3200 | 3200 公吨/秒 | .313纳秒 | 1600兆赫 | .626纳秒 | 21 | 13.15 | 14.09 | 15.34 |
DDR4-2666 | 2666 兆吨/秒 | .375纳秒 | 1333 兆赫 | .750纳秒 | 11 | 8.25 | 9.38 | 10.88 |
它表明 2666 CAS 11 的速度几乎可以按原始 ns 计时提高两倍。
这是真的吗?我是否遗漏了部分理论?是否有人亲眼观察到过这种情况,或者知道可靠的来源在实际应用中测量了类似的东西?
答案1
您正在以不相关的方式比较延迟和整体模块速度。
当然,初始请求的 ns 时间可能更快,并且 CAS 延迟更低,但是如今内存通常以更大的块传输数据,这意味着初始延迟影响相比之下可以忽略不计。
这选择RAM 中地址的传输速度可能较慢,但速度更快的 RAM 的较高频率意味着实际的数据传输速度更快。
“第一个字(ns)”的时间可能会慢 5ns,但粗略计算,更快的模块只需要连续传输 80 位(使用位时间:5ns ÷(0.375 - 0.313)= 80.64)即可弥补初始延迟。
基本突发大小为 8 个 64 位字,通过每秒发送更多读/写命令来实现更高的带宽。
因此,基本传输单元可以远远超过 80 位,且具有多个请求和高效使用。
延迟会减慢初始请求的速度并影响内存地址选择速度,但在更高速的模块中,实际的批量传输速度要高得多。
为了实现更高的带宽和更快的信号传输,模块的内部复杂性不断增加,其缺点是复杂性增加了延迟,但这几乎总是可以得到补偿。
这样想吧:
系统中的内存在读取时会有初始延迟。一旦您知道它始终会传输特定块大小,并且无论地址线如何变化,它基本上都会继续传输,您就可以更改地址来设置所需的下一组字节。
根据内存库或带有缓冲区的内部设置,您基本上可以为下一次传输做好一切准备,而延迟成本几乎为零。理论上,数据可以随时传输。
你可以创建一个持续的“现在你正在做这个,接下来做这个”的链条,其中延迟大部分隐藏在之前的传输后面。更智能的电子设备可以在更高的频率下实现更高的传输速率和更高的延迟。
并非所有“较慢”的事物实际上都较慢。