x86是指intel的開(kāi)發(fā)的一種32位指令集,從386開(kāi)始時(shí)代開(kāi)始的,一直沿用至今,是一種cisc指令集,所有intel早期的cpu,amd早期的cpu都支持這種指令集,ntel官方文檔里面稱(chēng)為“IA-32”
x84_64是x86 CPU開(kāi)始邁向64位的時(shí)候,有2選擇:1、向下兼容x86。2、完全重新設(shè)計(jì)指令集,不兼容x86。AMD搶跑了,比Intel率先制造出了商用的兼容x86的CPU,AMD稱(chēng)之為AMD64,搶了64位PC的第一桶金,得到了用戶(hù)的認(rèn)同。而Intel選擇了設(shè)計(jì)一種不兼容x86的全新64為指令集,稱(chēng)之為IA-64(這玩意似乎就是安騰),但是比amd晚了一步,而且IA-64也挺慘淡的,因?yàn)槭侨略O(shè)計(jì)的CPU,沒(méi)有編譯器,也不支持windows(微軟把intel給忽悠了,承諾了會(huì)出安騰版windows server版,但是遲遲拿不出東西)。。。后來(lái)不得不在時(shí)機(jī)落后的情況下也開(kāi)始支持AMD64的指令集,但是換了個(gè)名字,叫x86_64,表示是x86指令集的64擴(kuò)展,大概是不愿意承認(rèn)這玩意是AMD設(shè)計(jì)出來(lái)的。
也就是說(shuō)實(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位的問(wèn)題,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ì)于普通程序來(lái)說(shuō),CPU位數(shù)的擴(kuò)展、寄存器數(shù)量的增加不會(huì)帶來(lái)明顯的性能提升,比如IE瀏覽器、Office辦公這類(lèi)的軟件。特定的程序很能夠充分利用64位CPU、更多的寄存器帶來(lái)的優(yōu)勢(shì),比如MMX除了能提升多媒體程序的性能,對(duì)矩陣、多項(xiàng)式、向量計(jì)算都能帶來(lái)提升,更多的MMX寄存器、更大的寄存器字長(zhǎng)都有利于SIMD指令的執(zhí)行,能夠提升CPU對(duì)數(shù)據(jù)的吞吐量(RISC指令集的CPU動(dòng)不動(dòng)就有數(shù)百個(gè)寄存器,可以有效的緩存中間計(jì)算結(jié)果,不需要把中間結(jié)果寫(xiě)入內(nèi)存,從而減少內(nèi)存訪問(wèn)次數(shù),顯著提升性能)
聯(lián)系客服