2011-10-30 181 views
0

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

例如,一个64位操作数可以用一个64位宽的存储器总线单次读取。这是否需要64位操作系统的支持?对于32位操作系统,它是否会进行两次读取(每次32位)来读取64位操作数?

谢谢!

回答

0

您不应该担心这一点。 OS 32位与64位仅在内存寻址时发生变化。在64位中,您可能会添加更多内容。

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

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

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

0

为32位操作系统编译的应用程序甚至不知道总线是64位大的,它们总是只使用第一个32位。因为处理器没有在64位模式下运行,所以你的64位数据将被存储在两个不同的寄存器(比如EAX:EDX)中,使用总线的第一个32位读取同一数字的两个不同部分。

相关问题