標籤:寄存器 案頭 提升 office 編譯器 緩衝 x86 win window
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和X86_64和X64有什麼區別?