x86是指intel的開發的一種32位指令集,從386開始時代開始的,一直沿用至今,是一種cisc指令集,所有intel早期的cpu,amd早期的cpu都支持這種指令集,ntel官方文檔裡面稱為“IA-32”
x84_64是x86 CPU開始邁向64位的時候,有2選擇:1、向下兼容x86。2、完全重新設計指令集,不兼容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。
x86、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動不動就有數百個寄存器,可以有效的緩存中間計算結果,不需要把中間結果寫入內存,從而減少內存訪問次數,顯著提升性能)
x86是一個intel通用計算機系列的標准編號縮寫,也標識一套通用的計算機指令集合,X與處理器沒有任何關系,它是一個對所有*86系統的簡單的通配符定義,例如:i386, 586,奔騰(pentium)。
X64是微軟公司為 AMD64 和 Intel EMT64 設備程序結構取的專有名稱.
也可以說X64是指寄存器為64位的CPU.X64是X86的發展,將寄存器擴展到了64位。
在計算機架構中,64位整數、內存地址或其他數據單元,是指它們最高達到64位(8字節)寬。此外,64位CPU和算術邏輯單元架構是以寄存器、內存總線或者數據總線的大小為基准。
64 位CPU在1960年代,便已存在於超級計算機,且早在1990年代,就有以 RISC 為基礎的工作站和服務器。2003年才以 x86-64 和 64 位 PowerPC 處理器架構的形式引入到(在此之前是 32 位)個人計算機領域的主流。
32 位計算機中的位數指的是CPU一次能處理的最大位數。32位計算機的CPU一次最多能處理32位數據,例如它的EAX寄存器就是32位的,當然32位計算機通常也可以處理16位和8位數據。在Intel由16位的286升級到386的時候,為了和16位系統兼容,它先推出的是386SX,這種CPU內部預算為32位,外部數據傳輸為16位。直到386DX以後,所有的CPU在內部和外部都是32位的了。有些人往往會弄不清在計算機中出現的“位”和 Byte,KB,MB等有何關系,而它們的關系是,8位等於一字節,即8bit=1B 。32位處理器每次處理 4Byte(32bit),同理,64位處理器每次處理 8Byte(64bit) 。
64位運算需要處理器和操作系統的支持,在個人電腦上的應用才剛剛開始,Windows vista 64bit 是比較完善的64位操作系統,64bit兼容絕大多數的32bit運算,所以32位程序絕大部分是可以在64bit的操作系統下運行的。隨著計算機硬件的發展,64bit操作系統和64bit運算將成為主流。由於更多大型程序的出現,32bit系統開始無法適應時代的要求了。
Intel曾用8086、80286、80386等作為其PC用CPU的型號表示法
x86指Intel制造的普通CPU(提出x86這個表示法時,個人電腦上以32位Intel的CPU為主)
x64是x86_64的縮寫,指x86基礎上的改進版(加入64位地址擴展等性能)
IA64表示純64位計算機架構
amd64表示32位兼容的64位架構用(AMD是這一架構的主要生產商)。
但是,由於Intel起步較早,影響較大,有時也把amd64架構的CPU稱為x86_64架構。
另外,全面超越486的新一代586處理器問世,為了擺脫486時代處理器名稱混亂的困擾,最大的CPU制造商Intel公司把自己的新一代產品命名為Pentium(奔騰)以示區別。而AMD和Cyrix也分別推出了K5和6x86處理器。因此,要明白x86的涵義,那個x可以是3,4,5等等。
總結:
x86指的是32位計算機的架構,也指32位的操作系統,比如i386,i686,i486等;x86_64和x64指的都是64位架構,也指64位操作系統
32位(X86)版本的操作系統(OS)可以在64位的處理器(CPU)下工作,而64位(X64)版本的操作系統(OS)則無法在32位的處理器(CPU)下正常運行,如果你的操作系統(OS)是X86,但不不代表CPU是32位的。
32位CPU只能裝32位操作系統,64位CPU即可裝64位操作系統,也可裝32位操作系統,因為你的CPU是64位的,所以它可以兼容32位、64位兩個系統的。
只是說:裝64位操作系統才可以發揮出64位處理器的最佳性能而已!