x86是指intel的開發的一種32位指令集,從386開始時代開始的,一直沿用至今,是一種cisc指令集,全部intel早期的cpu,amd早期的cpu都支持這種指令集,ntel官方文檔裏面稱爲「IA-32」
x84_64是x86 CPU開始邁向64位的時候,有2選擇:一、向下兼容x86。二、徹底從新設計指令集,不兼容x86。AMD搶跑了,比Intel率先製造出了商用的兼容 x86的CPU,AMD稱之爲AMD64,搶了64位PC的第一桶金,獲得了用戶的認同。而Intel選擇了設計一種不兼容x86的全新64爲指令集,稱 之爲IA-64(這玩意彷佛就是安騰),可是比amd晚了一步,並且IA-64也挺慘淡的,由於是全新設計的CPU,沒有編譯器,也不支持 windows(微軟把intel給忽悠了,承諾了會出安騰版windows server版,可是遲遲拿不出東西)。。。後來不得不在時機落後的狀況下也開始支持AMD64的指令集,可是換了個名字,叫x86_64,表示是x86 指令集的64擴展,大概是不肯意認可這玩意是AMD設計出來的。
也就是說實際上,x86_64,x64,AMD64基本上是同一個東西,咱們如今用的intel/amd的桌面級CPU基本上都是x86_64,與之相對的arm,ppc等都不是x86_64。
x8六、x86_64主要的區別就是32位和64位的問題,x86中只有8個32位通用寄存器,eax,ebx,ecx,edx, ebp, esp, esi, edi。x86_64把這8個通用寄存器擴展成了64位的,而且比x86增長了若干個寄存器(好像增長了8個,變成了總共16個通用寄存器)。一樣的 MMX的寄存器的位數和數量也進行了擴展。此外cpu擴展到64位後也能支持更多的內存了,等等許多好處。
對於普通程序來講,CPU位數的擴展、寄存器數量的增長不會帶來明顯的性能提高,好比IE瀏覽器、Office辦公這類的軟件。特定的程序很可以充 分利用64位CPU、更多的寄存器帶來的優點,好比MMX除了能提高多媒體程序的性能,對矩陣、多項式、向量計算都能帶來提高,更多的MMX寄存器、更大 的寄存器字長都有利於SIMD指令的執行,可以提高CPU對數據的吞吐量(RISC指令集的CPU動不動就有數百個寄存器,能夠有效的緩存中間計算結果, 不須要把中間結果寫入內存,從而減小內存訪問次數,顯著提高性能) windows