名詞解釋,什麼是:x86、x86-64、i386、i686

卷首語:

安裝Linux髮型版本等軟件的時候,經常會遇到x86, x86_64, i386, i686之類的名詞,它們到底是什麼意思呢?本文來個簡單的名詞解釋。

名詞解釋,什麼是:x86、x86-64、i386、i686

不同的CPU架構,其軟件不能通用

x86

又稱為x86架構,或者x86指令集,是美國Intel公司為其第一塊16位CPU(i8086)專門開發的。英特爾Intel早期CPU的名稱都是用數字代號表示,並以“86”作為結尾,包括Intel 8086、80186、80286、80386以及80486,因此其架構被稱為“x86”。

AMD/VIA等CPU也採用了x86的架構(指令集)。

其他芯片架構,例如手機芯片的ARM、龍芯的MIPS、神威太湖之光超級計算機CPU所採用的Alpha架構。

CPU指令集,我們可以理解為和CPU溝通的語言,通過與CPU約定好(所設計)的語言(指令集),和CPU進行溝通,讓其工作。

例如,因特爾和AMD的CPU能識別名叫x86和x86_64的語言。龍芯則只能聽懂MIPS指令。所以,CPU架構不同、指令集不同者其軟件就不能通用。


x86_64

即x86架構的64位版本。

其可以兼容x86(32位)版本的軟件(指令集),但是x86不能運行x86_64版本的軟件。

即所謂的向下兼容。

因為x86_64是在x86之後發明的,為了保持之前的軟件能使用,所以對其架構和指令的設計是向下兼容的,讓其能兼容32位版本。


686是pentiumpro及以後的通用arch,而i386是所有x86的通用arch,i386包括而i686沒有包括的就是386、486、586(pentium)、pentium-mmx

現在應該沒有人還在用586及以前的cpu,甚至是pentiumpro。而rpm都是為i386打的包,運行效率會低很多。

i386

Intel 80386,是英特爾(Intel)公司的一款x86系列CPU,最初發佈於1985年10月17日。而目前i386通常被用來作為對Intel(英特爾)32位微處理器的統稱。其採用的是x86架構的32位版本指令集。

i686

在i386之後,由因特爾發佈的,Pentium Pro以及此後的Intel 32位架構 CPU。其指令集是對i386指令集的一個優化,使其速度更快。

i386與i686的向下兼容性關係大概如下:

i386:

i386:

i486:

winchip-c6: MMX 3dNOW!

winchip2: MMX 3dNOW!

i586(pentium):

pentium-mmx: MMX

i686:

pentiumpro:

pentium2: MMX

pentium3(m): MMX SSE

pentium-m: MMX SSE SSE2

pentium4(m): MMX SSE SSE2

prescott: MMX SSE SSE2 SSE3

nocona: MMX SSE SSE2 SSE3 (64bit)

c3: MMX 3dNOW!

c3-2: MMX SSE

k6: MMX

k6-2,k6-3: MMX 3dNow!

althon,althon-tbird: MMX 3dNow! SSE(prefetch only)

athlon-4, athlon-xp, athlon-mp: MMX 3dNOW! 3dNOW(enhanced) SSE(full)

k8, opteron, athlon64, athlon-fx: MMX 3dNOW! 3dNOW(enhanced) SSE SSE2 (64bit)


可以看出,i686囊括了現在正在使用的所有x86,所以若看到安裝包,讓你選擇CPU的ARCH(架構)的時候,所有選i386的地方,都可以改為i686,這是沒有問題的,反而能在指令調度上優化,填滿流水線,使程序運行的更快。

但i686和i386一樣,都是32位架構CPU。而我們如今的電腦,基本上都是x86_64架構的CPU。


分享到:


相關文章: