【问题标题】:How many bytes does memory arbiter protect?内存仲裁器保护多少字节?
【发布时间】:2011-04-18 02:27:03
【问题描述】:

内存仲裁器保护多少字节?

在阅读“了解 linux 内核,第 3 版”第 2 章,第 2.1 节时,我遇到以下语句:
在多处理器系统中,所有 CPU 通常共享相同的内存;这意味着独立的 CPU 可以同时访问 RAM 芯片。因为 RAM 芯片上的读或写操作必须串行执行,所以在总线和每个 RAM 芯片之间插入了一个称为内存仲裁器的硬件电路。它的作用是在芯片空闲时授予对 CPU 的访问权,并在芯片忙于服务另一个处理器的请求时延迟它。

这里我有一些问题:
. ram芯片有多少字节? (似乎这个问题等于“内存仲裁器保护多少字节?”)
.正如我所说,“我的电脑有 1G 内存”。这是否意味着“1 G 内存”由许多 ram 芯片组成。

【问题讨论】:

    标签: architecture memory-management hardware linux-kernel linux-device-driver


    【解决方案1】:

    这实际上取决于您的计算机具有什么 RAM。 大多数较新的计算机至少配备 1GB 内存,通常是 1GB 内存条,您可以通过购买更多内存条进行升级。仲裁器只是保护两个 cpu 不尝试同时从 RAM 写入/读取。因此,从本质上讲,它保护您计算机中的全部 RAM。

    【讨论】:

    • 起初,我认为它可以保护全部 RAM。但是好像被保护的粒度太大了。
    【解决方案2】:

    当您获得一个 2 GB 的 RAM 时,它由较小的 RAM 芯片组成。如果你把棍子拿出来看看,你就能看到这一点。

    保护级别可能比完整的芯片小得多。您要问的并不是一个 Linux 问题。这完全取决于机器的架构。我的猜测是访问以 cache line 粒度进行仲裁。对于大多数现代 x86 CPU,这是 64 字节对齐的。您必须检查确切的数字。

    如果有人知道的更好,请纠正我。

    【讨论】:

      【解决方案3】:

      “仲裁者”不在 RAM 芯片内;它是内存一致性的一部分,现在可能在 CPU 芯片内部。

      至于粒度 - 我猜它是 L3 缓存线,所以通常是 64 字节。

      【讨论】:

        猜你喜欢
        • 2021-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-29
        • 1970-01-01
        • 2017-08-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多