x86是指intel的開發(fā)的一種32位指令集,從386開始時(shí)代開始的,一直沿用至今,是一種cisc指令集,所有intel早期的cpu,amd早期的cpu都支持這種指令集,ntel官方文檔里面稱為“IA-32”
x84_64是x86 CPU開始邁向64位的時(shí)候,有2選擇:1、向下兼容x86。2、完全重新設(shè)計(jì)指令集,不兼容x86。AMD搶跑了,比Intel率先制造出了商用的兼容x86的CPU,AMD稱之為AMD64,搶了64位PC的第一桶金,得到了用戶的認(rèn)同。而Intel選擇了設(shè)計(jì)一種不兼容x86的全新64為指令集,稱之為IA-64(這玩意似乎就是安騰),但是比amd晚了一步,而且IA-64也挺慘淡的,因?yàn)槭侨略O(shè)計(jì)的CPU,沒有編譯器,也不支持windows(微軟把intel給忽悠了,承諾了會(huì)出安騰版windows server版,但是遲遲拿不出東西)。。。后來不得不在時(shí)機(jī)落后的情況下也開始支持AMD64的指令集,但是換了個(gè)名字,叫x86_64,表示是x86指令集的64擴(kuò)展,大概是不愿意承認(rèn)這玩意是AMD設(shè)計(jì)出來的。
也就是說實(shí)際上,x86_64,x64,AMD64基本上是同一個(gè)東西,我們現(xiàn)在用的intel/amd的桌面級(jí)CPU基本上都是x86_64,與之相對(duì)的arm,ppc等都不是x86_64。
x86、x86_64主要的區(qū)別就是32位和64位的問題,x86中只有8個(gè)32位通用寄存器,eax,ebx,ecx,edx, ebp, esp, esi, edi。x86_64把這8個(gè)通用寄存器擴(kuò)展成了64位的,并且比x86增加了若干個(gè)寄存器(好像增加了8個(gè),變成了總共16個(gè)通用寄存器)。同樣的MMX的寄存器的位數(shù)和數(shù)量也進(jìn)行了擴(kuò)展。此外cpu擴(kuò)展到64位后也能支持更多的內(nèi)存了,等等許多好處。
對(duì)于普通程序來說,CPU位數(shù)的擴(kuò)展、寄存器數(shù)量的增加不會(huì)帶來明顯的性能提升,比如IE瀏覽器、Office辦公這類的軟件。特定的程序很能夠充分利用64位CPU、更多的寄存器帶來的優(yōu)勢(shì),比如MMX除了能提升多媒體程序的性能,對(duì)矩陣、多項(xiàng)式、向量計(jì)算都能帶來提升,更多的MMX寄存器、更大的寄存器字長(zhǎng)都有利于SIMD指令的執(zhí)行,能夠提升CPU對(duì)數(shù)據(jù)的吞吐量(RISC指令集的CPU動(dòng)不動(dòng)就有數(shù)百個(gè)寄存器,可以有效的緩存中間計(jì)算結(jié)果,不需要把中間結(jié)果寫入內(nèi)存,從而減少內(nèi)存訪問次數(shù),顯著提升性能)
x86是一個(gè)intel通用計(jì)算機(jī)系列的標(biāo)準(zhǔn)編號(hào)縮寫,也標(biāo)識(shí)一套通用的計(jì)算機(jī)指令集合,X與處理器沒有任何關(guān)系,它是一個(gè)對(duì)所有*86系統(tǒng)的簡(jiǎn)單的通配符定義,例如:i386, 586,奔騰(pentium)。
X64是微軟公司為 AMD64 和 Intel EMT64 設(shè)備程序結(jié)構(gòu)取的專有名稱.
也可以說X64是指寄存器為64位的CPU.X64是X86的發(fā)展,將寄存器擴(kuò)展到了64位。
在計(jì)算機(jī)架構(gòu)中,64位整數(shù)、內(nèi)存地址或其他數(shù)據(jù)單元,是指它們最高達(dá)到64位(8字節(jié))寬。此外,64位CPU和算術(shù)邏輯單元架構(gòu)是以寄存器、內(nèi)存總線或者數(shù)據(jù)總線的大小為基準(zhǔn)。
64 位CPU在1960年代,便已存在于超級(jí)計(jì)算機(jī),且早在1990年代,就有以 RISC 為基礎(chǔ)的工作站和服務(wù)器。2003年才以 x86-64 和 64 位 PowerPC 處理器架構(gòu)的形式引入到(在此之前是 32 位)個(gè)人計(jì)算機(jī)領(lǐng)域的主流。
32 位計(jì)算機(jī)中的位數(shù)指的是CPU一次能處理的最大位數(shù)。32位計(jì)算機(jī)的CPU一次最多能處理32位數(shù)據(jù),例如它的EAX寄存器就是32位的,當(dāng)然32位計(jì)算機(jī)通常也可以處理16位和8位數(shù)據(jù)。在Intel由16位的286升級(jí)到386的時(shí)候,為了和16位系統(tǒng)兼容,它先推出的是386SX,這種CPU內(nèi)部預(yù)算為32位,外部數(shù)據(jù)傳輸為16位。直到386DX以后,所有的CPU在內(nèi)部和外部都是32位的了。有些人往往會(huì)弄不清在計(jì)算機(jī)中出現(xiàn)的“位”和 Byte,KB,MB等有何關(guān)系,而它們的關(guān)系是,8位等于一字節(jié),即8bit=1B 。32位處理器每次處理 4Byte(32bit),同理,64位處理器每次處理 8Byte(64bit) 。
64位運(yùn)算需要處理器和操作系統(tǒng)的支持,在個(gè)人電腦上的應(yīng)用才剛剛開始,Windows vista 64bit 是比較完善的64位操作系統(tǒng),64bit兼容絕大多數(shù)的32bit運(yùn)算,所以32位程序絕大部分是可以在64bit的操作系統(tǒng)下運(yùn)行的。隨著計(jì)算機(jī)硬件的發(fā)展,64bit操作系統(tǒng)和64bit運(yùn)算將成為主流。由于更多大型程序的出現(xiàn),32bit系統(tǒng)開始無法適應(yīng)時(shí)代的要求了。
Intel曾用8086、80286、80386等作為其PC用CPU的型號(hào)表示法
x86指Intel制造的普通CPU(提出x86這個(gè)表示法時(shí),個(gè)人電腦上以32位Intel的CPU為主)
x64是x86_64的縮寫,指x86基礎(chǔ)上的改進(jìn)版(加入64位地址擴(kuò)展等性能)
IA64表示純64位計(jì)算機(jī)架構(gòu)
amd64表示32位兼容的64位架構(gòu)用(AMD是這一架構(gòu)的主要生產(chǎn)商)。
但是,由于Intel起步較早,影響較大,有時(shí)也把a(bǔ)md64架構(gòu)的CPU稱為x86_64架構(gòu)。
另外,全面超越486的新一代586處理器問世,為了擺脫486時(shí)代處理器名稱混亂的困擾,最大的CPU制造商Intel公司把自己的新一代產(chǎn)品命名為Pentium(奔騰)以示區(qū)別。而AMD和Cyrix也分別推出了K5和6x86處理器。因此,要明白x86的涵義,那個(gè)x可以是3,4,5等等。
總結(jié):
x86指的是32位計(jì)算機(jī)的架構(gòu),也指32位的操作系統(tǒng),比如i386,i686,i486等;x86_64和x64指的都是64位架構(gòu),也指64位操作系統(tǒng)
32位(X86)版本的操作系統(tǒng)(OS)可以在64位的處理器(CPU)下工作,而64位(X64)版本的操作系統(tǒng)(OS)則無法在32位的處理器(CPU)下正常運(yùn)行,如果你的操作系統(tǒng)(OS)是X86,但不不代表CPU是32位的。
32位CPU只能裝32位操作系統(tǒng),64位CPU即可裝64位操作系統(tǒng),也可裝32位操作系統(tǒng),因?yàn)槟愕腃PU是64位的,所以它可以兼容32位、64位兩個(gè)系統(tǒng)的。
只是說:裝64位操作系統(tǒng)才可以發(fā)揮出64位處理器的最佳性能而已!
|