回答

5

32 B對64b的

當談到32B與64B架構,你都在談論它的register大小。這是一個地址的大小,爲pointer

主要問題是32b只能有2^32〜4x10^9個不同的值。字節被解決,所以我們有4 GB的可尋址內存。有些東西是爲kernel保留的,一個普通的程序不能全部使用,即使在理論上也是如此。

具有較大的地址使得地址空間大小不成問題。即使在將來,64b指針也足夠大以處理任何可用的內存。 IIRC 2^64比宇宙中估計的質子數多。我的意思是Eddington number,它要大得多。但是,2^64真的很大。

但還有另一個實際問題。地址現在是兩倍大,消耗兩倍的內存。當他們有很多人時,這是不好的。但它並不是一個表現障礙,只是一個需要記住的缺點。

的x86和x86_64

首先,我必須清楚地表明這兩種架構具有許多名稱。 x86 = x86_32 = i686 = IA32 = Intel32是來自英特爾的32位架構,這是臺式機系統最流行的架構,直到不久之前。通過擴展x86意味着整個系列的架構,包括x86_64。但x86_64不是來自英特爾,而是來自AMD。您也可以將其標記爲amd64或x64,但不要將其誤認爲來自Intel的IA64,並且是失敗的。

使用x86_64不僅寄存器大小增加了一倍(它是64b),而且程序的可用寄存器數量也大大增加。新的ABI充分利用寄存器中的空間。許多函數調用之間在堆棧之間傳遞的東西現在駐留在寄存器中,這減少了操作次數,從而加快了計算速度。

進入點

32b和64b是體系結構的特徵。 x86和x86_64是特定體系結構的名稱。 x86通常是指32b,x86_64是64b。

x86_64比x68_32更先進嗎?當然是。由於它是向後兼容的,它可以處理x86_32的所有內容,但也可以處理更多。然而,程序員可見的部件或CPU架構並不是唯一重要的部分。即使兩個x86_64 CPU也可能在性能方面存在錯誤差異。

但是這會變得太長,最好問一個更具體的問題或在某處查找它。我只是補充一點,大部分黑暗魔法都安全地遠離了程序員,他們的舒適度爲von Neumann architecture。在引擎蓋下,瘋狂的優化發生。現實不是連續的。編譯器和彙編程序員必須知道發生了什麼,並巧妙利用CPU隱藏的內部結構。

+0

你的回答很有幫助,你也可以解釋一下--->維基百科說x86-64bit是x86指令集的64位版本。這是什麼意思?這裏是[鏈接](http://en.wikipedia.org/wiki/X86-64) – Taimour

+0

@Taimour「x86-64(也稱爲x64,x86_64和amd64)是x86指令的64位版本集合「。正如我寫的,從更廣泛的角度來看,x86是整個架構家族。它們有許多共同之處,主要是在製作更大的寄存器時增加更多的寄存器和指令。 x86_64是x86家族的64b架構。 – Palec

+1

x86-64還提供了更多的功能,例如不執行位以提高安全性,而與32 vs 64體系結構不嚴格相關,x86-64 CPU更新,擴展指令集使計算需要x86上的許多指令,只需要一個在x86-64上。像crc32一樣可以增強網絡IO(用於以太網幀)或增強加密。 – yaccz

0

x86是32位而x86-64是64位。

+0

你是說x86-64和64bit沒有區別?維基百科說x86-64bit是x86指令集的64位版本。這是什麼意思? – Taimour

0

這真的取決於。 64位機器的最大優點是可以容納更多的地址空間較大的數據,支持更大的內存。這裏的地址是虛擬地址或物理地址範圍。