在 RAM 内存中:CL 是访问内存的总 RAM 周期?

In RAM Memory: CL are the total RAM cycles to access memory?

嗯,我的疑问是:当您为计算机购买新的 RAM 内存时,您可以在其规格上看到类似 CL17 的内容。我知道 CL 与 CAS 相同,但我在这里有一个问题:我在一些帖子中读到 CAS 是 RAM 输出 CPU 调用的数据所需的 RAM 时钟周期数,但我也读到我们必须将 RAS-to-CAS 添加到该 CAS 以计算 RAM 输出从 CPU.

请求的数据所需的总 RAM 时钟周期

所以,在我的示例中,CPU 将等待 17 个 RAM 时钟周期,因为它请求数据直到第一个数据字节到达?或者我们必须添加 RAS 到 CAS 延迟? 而且,如果我们必须添加 RAS-to-CAS 延迟,如果 RAM 提供者只告诉我那是 "CL17",我怎么知道 RAS-to-CAS 有多少个周期?

编辑:假设当我谈论 17 个周期时,我指的是“L3 未命中和接收到所请求数据的第一个字节之间的 17 个 RAM 周期”

So, is it correct to say that, in my example, CPU will wait 17 RAM clock cycles since it requests the DATA until the first data bytes arrive? Or we have to add the RAS-to-CAS delay? And, if we have to add RAS-to-CAS delay, how can I know how many cycles is RAS-to-CAS if the RAM provider only tells me that is "CL17"?

没有。这个延迟只是从核心请求一些内存和到核心的线路 returns 总延迟的一小部分。

特别是,请求必须从核心开始,检查 L1、L2 和 L3 缓存,然后到达内存控制器,甚至在涉及 DRAM(和 CAS 等时序)之前。读取发生后,它必须一直返回。与 RAM 访问本身相比,此行程通常占 RAM 访问总延迟的更多部分。

John D McCalpin excellent blog post 关于 x86 系统上的内存延迟组件。在该系统上,~11 ns 的 CAS 延迟仅占~50 ns 总延迟的 20% 多一点。

John 还指出 在某些多插槽系统上,内存延迟甚至可能无关紧要,因为抢占系统中的其他内核所花的时间比内存的响应时间更长。

关于 RAS-to-CAS 与单独的 CAS,这取决于访问模式。仅当该行尚未打开时才需要 RAS 到 CAS 延迟,在这种情况下,该行必须打开,并且会产生 RAS 到 CAS 延迟。否则,如果该行已经打开,则只需要 CAS 延迟。哪种情况适用取决于您的访问物理地址访问模式、RAM 配置以及内存控制器如何将物理地址映射到 RAM 地址。