【问题标题】:32 bit OS on 64bit architecture64 位架构上的 32 位操作系统
【发布时间】:2011-12-18 08:09:56
【问题描述】:

我在 64 位 x86 处理器(英特尔)上运行 32 位 ubuntu。我知道在这种情况下字长是 64 位,但我对 32 位操作系统有点困惑。 所以当我计算内存带宽时,我是否应该假设将使用 64 线的数据总线宽度,它会表现出与 64 位操作系统相同的性能? IOW,我想更好地了解操作系统宽度与架构宽度之间的关系。

例如,可以使用 64 位宽的内存总线一次性读取 64 位操作数。这需要64位操作系统的支持吗?使用 32 位操作系统,读取 64 位操作数会进行两次读取(每次 32 位)吗?

谢谢!

【问题讨论】:

    标签: 32bit-64bit


    【解决方案1】:

    你不应该担心这个。 OS 32 位与 64 位仅在内存寻址上有所不同。在 64 位中,您可以添加更多内容。

    从内存加载数据独立于操作系统 - 它取决于处理器架构。 更好的处理器可能会在一次内存负载时加载 128、256 位。

    这是最短的解释,在这个操作系统上运行的 99.9% 的程序中应该是正确的。 如果为程序保留 0.1%,则在访问数据时不关心内存对齐。但是这个问题可能会在接下来的 99.9% 中通过处理器缓存得到解决。

    总结 - 如果您的操作系统有足够的内存来运行所有程序,您不必担心。

    【讨论】:

      【解决方案2】:

      为 32 位操作系统编译的应用程序甚至不知道总线是 64 位,它们总是只使用前 32 位。

      由于处理器未在 64 位模式下运行,因此您的 64 位数据将存储在两个不同的寄存器中(例如 EAX:EDX),使用总线的前 32 位读取相同数字的两个不同部分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-03
        • 2013-08-29
        • 2015-09-26
        • 2011-07-07
        • 2012-07-26
        • 1970-01-01
        • 1970-01-01
        • 2011-02-20
        相关资源
        最近更新 更多