x86和x64的區別


整理了下網上的資料,歸類了下,大似表述是這樣的:
IBM/PC兼容機,也就是Intel的i80x86指令架構,就簡稱了x86。
x86並不是指32位環境,而是指80x86架構,這個架構目前有32位,64位兩種。
曾經聽說還包括了過8位和16位,不過我沒機會看過。

習慣上來說,x86架構就是32位的,但AMD擴展出了64位環境,而且64位硬件支持32位,稱為amd64
intel叫EM64T,EM64T本質上和amd64一樣都是IA-32的增強版本,Xeon借助於EM64T可實現高達1TB(40bit)的物理內存尋址和256TB(48bit)的虛擬內存尋址,並且良好地支持現有32位x86代碼的執行,這一點跟AMD64無異,同時也是Intel開發EM64T的出發點—讓現有的x86指令集能夠執行64位代碼,而繼續保持對32位代碼的良好兼容。但由於多方面的限制,無論是EM64T還是AMD64均只能實現比32位指令集更大內存空間的尋址,而無法真正做到純64位指令集的1PB(50bit)和16EB(64bit)的物理內存和虛擬內存尋址(IA-64就能做到這一點),其關鍵在於EM64T和AMD64本質上仍是基於32位的x86指令集,只是Intel和AMD分別采用不同的技術手段對x86指令集進行擴展,從而實現對64位的支持。

大多數情況下,amd64不叫amd64也不叫em64t,而是x86_64,從而表明他和x86這個32位的關系。
其實x86其實也不全叫x86,Linux下還分成 i386 i486 i586 i686。如當年intel推出的新一代586處理器,叫Pentium(奔騰)。
后面的64就成了這個架構的一個分支指令集的描述。x86就成了一個統稱,而不是專指32位環境。
因此,要明白x86的涵義,那個x可以是3,4,5,6等等。

擴展信息:

x86:指Intel制造的普通CPU(提出x86這個表示法時,個人電腦上以32位Intel的CPU為主)
x64:x86_64的縮寫(同時也相當於amd64,em64t),指x86的基礎上加入64位地址擴展
IA32:表示純32位架構
IA64:表示純64位架構
表示32位兼容的64位架構用(AMD是這一架構的主要生產商)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM