首页 > 解决方案 > 在 RAM 内存中:CL 是访问内存的总 RAM 周期?

问题描述

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

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

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

标签: memoryx86ramprocessor

解决方案


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

不会。这个延迟只是核心请求一些内存并且线路返回核心时总延迟的一小部分。

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

John D McCalpin 有一篇关于 x86 系统上的内存延迟组件的优秀博客文章。在该系统上,约 11 ns 的 CAS 延迟仅占约 50 ns 总延迟的 20% 以上。

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

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


推荐阅读