x64 x86有啥區別

來源:酷知科普網 1.14W

X86和X64都是兩款處理器,在電腦上也普遍採用,下面說說x64 x86有啥區別。

x64 x86有啥區別

操作方法

(01)X64Intel 64可使處理器直接訪問超過4GB的儲存器,容許執行更大的應用程式。而x86-64架構也加入了額外的暫存器及其他改良在指令集上。通過64位的儲存器地址上限,其理論儲存器大小上限達16,000,000TB(16EB),不過在初期的應用上並未能支援完整的64位地址。Intel在之前已在Itanium處理器上使用了自家的64位IA-64技術,雖然說Intel 64也是64位,但兩者並不相容,即IA-64的軟體不能直接在Intel 64上執行。Intel 64所用的x86-64是IA-32指令集的延伸,而IA-64則是另一款獨立的架構,沒有任何IA-32的影子。雖然IA-64可通過模擬來執行IA-32的指令,但指令在執行前需經轉換,才能在IA-64上執行,導致其速度變慢。由於x86-64是從IA-32派生而來,因此執行IA-32與64位程式的表現也顯得綽綽有餘。首顆使用Intel 64技術的處理器屬於Xeon型號,支援雙處理器,其核心名稱為Nocona。由於Xeon是直接建基於桌面型的Pentium 4上,因此Pentium 4也可使用Intel 64,如使用超執行緒(Hyper-Threading)般。不過Intel 64在初期的Prescott版本尚未啟用,其原因大概是當時其尚未完善。在使用Prescott核心E0更新版本的Pentium 4處理器已可使用Intel 64,被稱為Pentium 4 F。再者,E0更新版本加入了“禁止執行”位元,稱為XD bit(eXecute Disable),相當於AMD64的NX bit。

(02)AMD64位技術 AMD64的位技術是在原始32位X86指令集的基礎上加入了X86-64擴充套件64位X86指令集,使這款晶片在硬體上相容原來的32位X86軟體,並同時支援X86-64的擴充套件64位計算,使得這款晶片成為真正的64位X86晶片。這是一個真正的64位的標準,X86-64具有64位的定址能力。 EM64T技術 Intel官方是給EM64T這樣定義的:EM64T全稱Extended Memory 64 Technology,即擴充套件64bit記憶體技術。EM64T是Intel IA-32架構的擴充套件,即IA-32e(Intel Architectur-32 extension)。IA-32處理器通過附加EM64T技術,便可在相容IA-32軟體的情況下,允許軟體利用更多的記憶體地址空間,並且允許軟體進行32 bit線性地址寫入。EM64T特別強調的是對32 bit和64 bit的相容性。Intel為新核心增加了8個64 bit GPRs(R8-R15),並且把原有GRPs全部擴充套件為64 bit,如前文所述這樣可以提高整數運算能力。增加8個128bit SSE暫存器(XMM8-XMM15),是為了增強多媒體效能,包括對SSE、SSE2和SSE3的支援。

x64 x86有啥區別 第2張

(03)X86x86架構是重要地可變指令長度的CISC(複雜指令集計算機,Complex Instruction Set Computer)。字組(word, 4位元組)長度的儲存器訪問允許不對齊儲存器地址,字組是以低位位元組在前的順序儲存在儲存器中。向前相容性一直都是在x86架構的發展背後一股驅動力量(設計的需要決定了這項因素而常常導致批評,尤其是來自對手處理器的擁護者和理論界,他們對於一個被廣泛認為是是落後設計的架構的持續成功感到不解)。但在較新的微架構中,x86處理器會把x86指令轉換為更像RISC的微指令再予執行,從而獲得可與RISC比擬的超純量效能,而仍然保持向前相容。x86架構的處理器一共有四種執行模式,分別是真真實模式,保護模式,系統管理模式以及虛擬V86模式。

(04)Intel 8086和8088有14個16位暫存器。其中四個(AX, BX, CX, DX)是通用目的(儘管每個暫存器都有附加目的;舉個例子:只有CX可以被用來當作loop(迴圈)指令的計數器。)每個暫存器可以被當成兩個分開的位元組訪問(因此BX的高位可以被當成BH,低位則可以當成BL)。除了這些暫存器,還有四個區段暫存器(CS、DS、SS、ES)。他們用來產生儲存器的絕對地址。還有兩個指標暫存器(SP是指向堆疊的底部,BP可以用來指向堆疊或儲存器的其它地方)。兩個指標暫存器(SI和DI)可以用來指向陣列的內部。最後,有標誌暫存器(包含狀態標誌比如進位、溢位、零標誌,等等)。以及IP是用來指向目前執行指令的地址。

x64 x86有啥區別 第3張
熱門標籤