x86與x64
x86和x64最重要的區別在於前者是32位體系結構,後者是64位指令集體系結構。指令集體系結構(ISA)是一個非常重要的術語,適用於任何CPU。指令、內存尋址、寄存器和CPU的許多其他體系結構部分都是由ISA指定的。x86是英特爾1978年推出的世界著名的ISA,採用8086處理器。然後各種擴展發生了,在2000年,AMD創建了一個規範,以AMD64的名稱將x86指令集擴展到64位。後來,其他公司,如Intel,也實現了該規範,而AMD64就是用名稱x64標識的AMD64。
什麼是x86個(x86)?
x86是英特爾公司推出的一種指令集體系結構,採用著名的8086處理器。1978年,英特爾推出了一款16位處理器8086。後來他們又引進了各種處理器,如80186、80286、80386和80486,它們都與8086處理器中使用的原始指令集向後兼容。由於所有這些處理器都以86結尾,因此指令集體系結構被命名為x86。隨著80386的引入,x86指令被擴展到32位系統。這裡,32位意味著所有寄存器、內存總線和數據總線都是32位的。然後奔騰處理器出現了奔騰I、奔騰II、奔騰III、奔騰IV,所有這些都遵循32位體系結構。但是x86體系結構中還出現了其他各種擴展,比如添加了MMX、SSE和SSE2等指令。除此之外,還進行了許多其他改進。然後,x86指令集被擴展到64位指令集,從這一點開始,它被稱為x64,我們將在下一節中討論。總之,一般來說,x86指的是32位體系結構,它是從8086處理器出現的16位體系結構演變而來的。
什麼是x64個(x64)?
一個32位系統只能代表232個不同的值,因此,內存尋址被限制在這個數量的地址。232字節等於4GB,因此x86的最大可尋址內存限制為4GB。為了克服這個問題,對x86體系結構做了進一步的擴展。AMD在2000年左右推出了這樣的規範,將x86體系結構擴展到64位。這是以AMD64的名義引入的。x64是這個AMD64體系結構的另一個名稱。這種AMD64或x64體系結構也稱為x86_64。在64位體系結構中,所有寄存器變為64位,內存總線和數據總線也變為64位。現在可以尋址264個不同的值,這對可能的最大內存有一個很大的上限。AMDK8是第一個實現這種64位體系結構的處理器。後來英特爾也採用了這種架構。從Intel Core 2開始的Intel Core處理器,Intel開始在其處理器中使用此架構。目前,所有英特爾處理器,如酷睿i3、酷睿i5和酷睿i7都使用這種x64架構。需要強調的是,這種x64體系結構仍然與舊的x86指令集向後兼容。
x86個(x86)和x64個(x64)的區別
•x86大約在1978年推出,而x64則在2000年出現。
•x86源於著名的Intel 8086處理器,因此,x86由Intel推出。但作為x86的擴展而來的x64是由AMD推出的。
•x86體系結構為32位。(最初的x86處理器是16位的,但是在後來的處理器中,擴展到了32位)。x64體系結構為64位。
•因此,採用x86指令集架構的處理器有32位寄存器、32位內存總線和32位數據總線。但x64有64位寄存器、64位內存總線和64位數據總線。
•x86對最大可尋址內存的限制是4 GB(232字節)。但是,在x64系統上,這個限制非常大,即264字節。
•x64是x86的擴展;因此,它比舊的x86有了很大的改進和強大。
•在x64系統中,可以存儲在寄存器中的值大於可以存儲在基於x86的寄存器中的值。因此,x64可以更快地處理更大整數的計算,因為在這種情況下沒有必要使用多個寄存器來分割值並像x86那樣存儲。
•x64可沿數據總線並行傳輸較大尺寸的數據。也就是說,64位的數據總線可以並行傳輸64位,而具有32位總線的x86體系結構只能並行傳輸32位。
小結:
x86與x64
x86指令集體系結構為32位,x64指令集體系結構為64位。x64是現有x86體系結構的擴展。x86體系結構上的寄存器、內存總線、數據總線是32位的,而在x64上是64位。因此,x64系統中可尋址的最大內存量遠遠高於x86系統。x86是由Intel推出的,8086處理器是一個16位處理器,隨著時間的推移,x86擴展到了32位。後來,AMD通過擴展現有的x86體系結構引入了x64體系結構,這種x64完全向後兼容x86指令集。
- Appalosa提供的Intel 8086(CC by-SA 3.0)
- Appalosa的64位處理器(CC比3.0)