Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
X86 - Wikipedia

X86

维基百科,自由的百科全书

-{T|x86}- x8680x86是英代爾Intel首先开发制造的一种微处理器体系结构的泛称。

該系列較早期的處理器名稱是以數字來表示,並以“86”作為結尾,包括Intel 8086801868028680386以及80486,因此其架構被稱為“x86”。由於數字並不能作為註冊商標,因此Intel及其競爭者均在新一代處理器使用可註冊的名稱,如Pentium。現時Intel把x86-32稱為IA-32,全名為Intel Architecture, 32-bit。不過由於x86包括16位的處理器,這樣的命名也出現麻煩。

目录

[编辑] 歷史

x86架構於1978年推出的Intel 8086中央處理器中首度出現,它是從Intel 8008處理器中發展而來的,而8008則是發展自Intel 4004的。8086在三年後為IBM PC所選用,之後x86便成為了個人電腦的標準平台,成為了歷來最成功的CPU架構。

其他公司也有製造x86架構的處理器,計有Cyrix(現為VIA所收購)、NEC集團、IBM、IDT以及Transmeta。Intel以外最成功的製造商為AMD,其Athlon系列處理器的市場僅次於Pentium

8086是16位元處理器;直到1985年32位元的80386的開發,這個架構都維持是16位元。接著一系列的處理器表示了32位元架構的細微改進,推出了數種的擴充,直到2003年AMD對於這個架構發展了64位元的擴充,并命名为AMD64(有时也被称作x86-64x64EM64T),推出了Opteron處理器家族,开创了x86的64位时代。

值得注意的是Intel早在1990年代就与惠普合作提出了一种用在安腾系列处理器中的独立的64位架构,这种架构被称为IA-64。IA-64是一种崭新的系统,和x86架構完全没有相似性;不應該把它与AMD64x86-64弄混。

[编辑] 設計

x86架構是重要地可變指令長度的CISC(複雜指令集電腦,Complex Instruction Set Computer)。字組(word, 4位元組)長度的記憶體存取允許不對齊記憶體位址,字組是以低位字节在前的順序儲存在記憶體中。向前相容性一直都是在x86架構的發展背後一股驅動力量(設計的需要決定了這項因素而常常導致批評,尤其是來自對手處理器的擁護者和理论界,他們對於一個被廣泛认为是是落后设计的架構的持續成功感到不解)。但在较新的微架构中,x86處理器會把x86指令轉換為更像RISC的微指令再予执行,从而获得可与RISC比拟的超标量性能,而仍然保持向前兼容。

在這篇簡短的文章中出現的指令和暫存器助憶符號的名稱,都在Intel文件種有所指定以及使用在 Intel組譯器中(和相容的,比如微軟的MASM、Borland的TASM、CAD-UL的as386 等等)。一個以Intel語法指定的指令"mov al, 30h"與AT&T語法的"movb $0x30, %al"相當,都是會被轉譯微兩個位元的機器碼"B0 30"(十六進制)。你可以發現在這段程式中的"mov"或 "al",都是原來的Intel助憶符號。如果我們想要的話,我們可以寫一個組譯器由程式碼'move immediate byte hexadecimally encoded 30 into low half of the first register'(移動立即值位元十六進制編碼30到第一個暫存器的低半部位),來產生相同的機器碼。然而,传统上汇编器一直使用Intel的助憶符號。

x86組合語言會在x86 組合語言文章中有更詳細的討論。

[编辑] 真實模式

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

在真實模式下,記憶體的存取是被區段開來。為了得到最後20位元的記憶體位址,要將區段的位址往左移動4位元,並且加上偏移的位址。因此,真實模式下總共可以定址的空間是220位元組, 或者是1MB,於1979年是相當讓人印象深刻的象徵。在真實模式下有兩種定址模式:near和far。在 far模式,區段跟偏移都需要被指定;在near模式,只需要偏移模式被指定,而記憶體區段是由適當的區段暫存器獲得。以資料而言是使用DS暫存器,程式碼是CS暫存器,堆疊是SS暫存器。舉個例子,如果DS是A000h且SI是5677h,DS:SI會指向計憶體的絕對位址DS × 16 + SI = A5677h

在這種架構下,兩對不同的區段/篇移可以指向一個相同的絕對位址。因此如果DS是A111h且SI是4567h,DS:SI會指向跟上一段相同的A5677h。除了duplicity之外,這種架構無法同時一次擁有4個以上的區段。此外,CS、DS和SS是為了程式正確功能而必須的,因此僅僅只有ES可以被用來指向其它的地方。這種模式原本是為了與Intel 8085相容,導致程式設計師永無止盡的痛苦。

除了以上所說的,8086也擁有8-bit的64K(另一種說法是16-bit的32K)輸出輸入(en:I/O)空間,以及一個由硬體支援的64K(一個區段)記憶體堆疊。只有words(2位元組)可以被推入到堆疊中。堆疊是由記憶體的上端往下成長,他的底端是由SS:SP指向。有256個中斷(interrupts),可以由硬體或是軟體同時組成。中斷是可以串連在一起,使用堆疊來儲存返回被中斷的程式位址。

[编辑] 16位元保護模式

Intel 80286可以在不改變任何東西下支援8086的真實模式16位元軟體,然而它也支援額外的工作模式稱為保護模式,可以將可定址的實體記憶體擴充到16MB,可定址的虛擬記憶體最大到 1GB。這是使用節區暫存器來儲存在節區表格中的索引值。處理器中有兩個這樣的表格,分別為GDT和LDT,每一個可以儲存最多8192個節區的描述子,每一個節區可以給予最大到64KB的記憶體存取。節區表格提供一個24位元的基底位址(base address),可以用此基底位址增加想要的偏移量來創造出一個絕對位址。此外,每一個節區可以被賦予四種權限等級中的一種(稱為 "rings")。

儘管這個推出的功能是一項進步,但是他們並沒有被廣泛地使用,因為保護模式的作業系統無法執行現有的真實模式軟體。這樣的能力只有在隨後80386處理器的虛擬86模式中出現。

在同時,作業系統比如OS/2嘗試使用類似乒乓的方法,讓處理器在保護和真實模式間切換。這樣都會讓電腦變慢且不安全,像是在真實模式下的程式可以輕易地使電腦當機。OS/2也定義了限制性的程式設計規則允許"Family API"或"bound"程式可以在真實模式或保護模式下執行。然而這是給原本為保護模式下設計的程式有關,反之則不然。保護模式程式並不支援節區選擇子和實體記憶體之間的關係。有時候會錯誤地相信在16位元保護模式下執行真實模式的程式,導致IBM必須選擇使用Intel保留給BIOS的中斷呼叫。事實上這類的程式使用任意的選擇子數值和使用在上面提到的“節區運算”的方式有關。

這個問題也在Windows 3.x上出現。這個推出版本想要在16位元保護模式下執行程式,而先前的版本只能在真實模式下執行。理論上,如果Windows 1.x或2.x程式是寫得“適當”且避免使用節區運算的方式,它就有可能在真實和保護模式兩者下執行。Windows程式一般來說都會避免節區運算,這是因為Windows實作出軟體的虛擬記憶體方式,及當程式不執行時候,搬移記憶體中的程式碼和資料,所以操作絕對位址的方式是很危險的;當程式不執行時,被認為要保持記憶體區塊的“handles”,這樣的handles已經非常相當於保護模式的選擇子。在保護模式下的Windows 3.0執行一個舊的程式,會觸發一個警告對話盒,建議在真實模式下執行Windows(推測還是仍然可以使用擴充記憶體,可能是在80386機器用EMM386模擬,因此它並不被局限於640KB)或是從廠商那更新到新的版本。好的行為之程式可能可以使用特別的工具來避免這樣的對話盒。不可能有些GUI程式在16位元保護模式下執行,且其它GUI程式在真實模式執行,可能是因為這會需要兩個分開的環境且會依於前面所提到的處理器在兩個模式間的乒乓效應。從Windows 3.1版開始,真實模式就消失了。

[编辑] 32位元保護模式

Intel 80386推出後,也許是到目前為止x86架構的最大躍進。除了需要值得注意的Intel 80386SX是32位元架構但僅只有24位元定址(和16位元資料匯流排)。除此之外其他架構都是32位元 - 所有的暫存器指令集、輸出輸入空間和記憶體定址。為了能夠在後者所說的功能工作,要使用32位元擴充的保護模式。然而不像286、386所有的區段可以使用32位元的偏移量,即使記憶體空間有使用區段,但也允許應用程式存取超過4GB空間而不需要區段的分隔。此外,32位元保護模式提供分頁的支援,是一種讓虛擬記憶體得以實現的機制。

沒有新的通用暫存器被加入。所有16位元暫存器除了區段暫存器外都擴充為32位元。Intel在暫存器的助記符號上加入“E”來表示(因此擴充的AX變成EAX,SI變成ESI,依此類推)。因為有更多的暫存器數量、指令、和運算單元,因此機器碼的格式也被擴充。為了提供與先前的架構相容,包含執行碼的區段可以被標示為16或是32位元的指令集。此外,特殊的前置符號也可以用來在16位元的區段包含32位元的指令碼,反之亦然。

分頁跟區段的記憶體存取是為了支援現在多工作業系統所必須要的。Linux、386BSD、Windows NTWindows 95都是一開始為386所發展,因為它是第一顆提供可靠地程式分離記憶體空間的支援(每個程式擁有自己的定址空間)以及可以在必要的情況下打斷他們程式的執行(使用ring,一種x86保護模式下權力分級的名稱)。這種386的基本架構變成未來所有x86系列發展的基礎。

Intel 80386數學輔助運算處理器也在整合到這個CPU之後的x86系列中,也就是Intel 80486。新的FPU可以幫助浮點數運算,對於科學計算和圖形設計是非常重要。

[编辑] MMX和之後

1996年Intel的MMX(AMD认为这是矩陣數學擴充Matrix Math Extensions的缩写,但大多数時候都被當成Multi-Media Extension,而Intel从来没有官方宣布过词源)技術出現。儘管這項新的科技得到广泛宣传,但它的精髓是非常簡單的:MMX定義了八個64位元SIMD暫存器,與Intel Pentium處理器的FPU堆疊有相重疊。不幸的是,這些指令無法非常簡單地對應到由原來C編譯器所產生的指令碼中。MMX也只局限於整數的運算。這項技術的缺點導致MMX在它早期的存在有輕微的影響。現今,MMX通常是用在某些2D影片應用程式中。

[编辑] 3DNow!

1997年AMD推出3DNow!,是對於MMX的SIMD的浮點指令增強(針對相同的 MMX 暫存器)。儘管這些也沒有解決編譯器的難題,但這項技術的推出符合了PC上的3D休閒娛樂應用程式之崛起。3D遊戲開發者和3D繪圖硬體製造商在AMDAMD K6Athlon系列處理器上,使用3DNow!來幫助增加他們的效能。

[编辑] SSE

1999年Intel推出SSE指令集,增加了八個新的128-bit暫存器(不跟其他的暫存器重疊使用)。這些指令類似於AMD的3DNow!,主要是增加浮點數運算的SIMD指令。

[编辑] SSE2

2001年Intel推出SSE2指令集,增加了:1)完整地補充了整數指令(與MMX相似)到原來的SSE暫存器,和2)64位元的SIMD浮點運算指令到原來的SSE暫存器。第一個的增加導致MMX幾乎是過時可以捨棄的),第二個則允許這些指令可以讓傳統的編譯器現實地產生。

[编辑] SSE3

2004年隨著Pentium 4處理器的改版Prescott推出。SSE3增加特定的記憶體和thread-handling指令來提升Intel超執行緒的效能,在科学计算方面也有增强。

[编辑] 64位元

2002年,由於32位元特性的長度,x86的架構開始到達某些設計的極限。這個導致要處理大量的資訊儲存大於4GB會有困難,像是在資料庫或是影片編輯上可以發現。

Intel原本已經決定在64位元的世代完全地捨棄x86相容性,推出新的架構稱為IA-64技術作為他的Itanium處理器產品線的基礎。IA-64與x86的軟體天生不相容;它使用各種模擬形式來執行x86的軟體,不过,以模拟方式来运行的效率十分低下,并且会影响其他程序的运行。

AMD主動把32位元x86,或稱為IA-32擴充為64位元。它與一個稱為AMD64的架構出現(在重新命名前也稱為x86-64),且以這個技術為基礎的第一個產品是OpteronAthlon 64處理器家族。由於AMD64處理器產品線的成功,Intel採取AMD64指令集且增加某些新的擴充到他們自己的產品,命名為EM64T架構(顯然地他們不想承認這些指令集是來自它的主要對手)。

這是由非Intel的製造商所發起和設計的第一次重大的x86架構升級。也許更重要的,它也是第一次Intel實際上從外部來源接受這項本質的技術。


[编辑] 虛擬

虛擬x86是很困難的,因為它的架構並無達到Popek and Goldberg virtualization requirements。然而,有好幾個商業的虛擬x86產品,比如VMware微軟Virtual PC。Intel和AMD兩者都有公開宣佈未來的x86處理器將會有新的增強來容易達到更有效率的虛擬。Intel針對這項虛擬特性的代號稱為"Vanderpool"和"Silvervale";AMD則使用"Pacifica"這個代號。

[编辑] 生產商

有多間公司設計、生產並售賣x86處理器及其兼容產品,其中包括:


 
英特爾
-{英特爾}-
人物 高登·摩爾 | 安迪·葛洛夫 | 羅伯特·諾宜斯 | 克雷格·貝瑞特 | 保羅·歐德寧
品牌 迅馳(Centrino) | 歡躍(Viiv)| 博锐 (VPro) | 奔腾(Pentium) | 酷睿(Core Duo) | 安騰(Itanium)
微處理器 Pentium | Pentium Pro | Pentium II | Celeron | Pentium II Xeon | Pentium III | Pentium III Xeon | Pentium 4 | Pentium 4 Extreme Edition | Xeon | Pentium M | Celeron D | Pentium D | Pentium Extreme Edition | Core Duo/Core Solo | Core 2 Duo/Core 2 Extreme
技術 MMX | SSE | IA-64 | Hyper-Threading(超執行緒)



Intel 微處理器列表 | Intel CPU 插槽/插座列表

Intel 微處理器

4004 | 4040 | 8008 | 8080 | 8085 | 8086 | 8088 | iAPX 432 | 80186 | 80188 | 80286 | 80386 | 80486 | i860 | i960 | Pentium | Pentium Pro | Pentium II | Celeron | Pentium III | XScale | Pentium 4 | Pentium M | Pentium D | Pentium Extreme Edition | Xeon | Core | Core 2 | Itanium | Itanium 2   (斜體 表示非 x86 處理器)

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com