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等等。開發

擴展信息:it

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

相關文章
相關標籤/搜索