X86和X86_64和X64有什麼區別?

來源:互聯網
上載者:User

標籤:寄存器   案頭   提升   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有什麼區別?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.