2011-10-30 221 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位讀取同一數字的兩個不同部分。

相關問題