智能處理器
2010年英特爾推出的技術
智能處理器是英特爾(Intel)公司在2010年推出的使用新一代處理器架構Nehalem的酷睿i7/i5/i3系列最新加入到處理器中的技術。名為Turbo.mode(即“睿頻加速”技術)和Hyper-Threading(HT)(即“超線程”技術),並在2011年1月推出了第二代智能酷睿處理器,被稱作Sandy Bridge平台,簡稱SNB。第二代處理器同樣以酷睿I3/I5/I7來命名。不過在型號前面均有加一個數字2,以便區分一代一二代的產品。
智能處理
CPU會確定其當前工作功率、電流和溫度是否已達到最高極限,如仍有多餘空間,CPU會逐漸提高活動內核的頻率,以進一步提高當前任務的處理速度,當程序只用到其中的某些核心時,CPU會自動關閉其它未使用的核心,睿頻加速技術無需用戶干預,自動實現。
超線程技術是在一顆CPU同時執行多個程序而共同分享一顆CPU內的資源,理論上要像兩顆CPU一樣在同一時間執行兩個線程,P4處理器需要多加入一個Logical CPU Pointer(邏輯處理單元)。因此新一代的P4 HT的die的面積比以往的P4增大了5%。而其餘部分如ALU(整數運算單元)、FPU(浮點運算單元)、L2 Cache(二級緩存)則保持不變,這些部分是被分享的。
雖然採用超線程技術能同時執行兩個線程,但它並不象兩個真正的CPU那樣,每個CPU都具有獨立的資源。當兩個線程都同時需要某一個資源時,其中一個要暫時停止,並讓出資源,直到這些資源閑置后才能繼續。因此超線程的性能並不等於兩顆CPU的性能。
一般很多人都會認為,採用超線程技術,就能使得系統效能大幅提升,但是事實真是如此么?不要忘了我們前面說到的超線程技術實現的必要條件,這可是超線程技術發揮應有效能的前提條件。除了操作系統支持之外,還必須要軟體的支持。從這點我們就可以看出,就目前的軟體現狀來說,支持雙處理器技術的軟體畢竟還在少數。對於大多數軟體來說,目前由於設計的原理不同,還並不能從超線程技術上得到直接的好處,因為超線程技術是在線程級別上并行處理命令,按線程動態分配處理器等資源。該技術的核心理念是“并行度(Parallelism)”,也就是提高命令執行的并行度、提高每個時鐘的效率。這就需要軟體在設計上線程化,提高并行處理的能力。而目前PC上的應用程序幾乎沒有為此作出相應的優化,採用超線程技術並沒不能獲得效能的大幅提升。上面說的只是目前軟體支持的現狀,操作系統在這個方面則沒有太大的問題,畢竟Windows的某些版本、Linux都是支持多處理器的操作系統。並且隨著Intel支持超線程技術的處理器面世之後,憑藉Intel處理器的號召力,必然會引起目前應用程序設計上的改變,必然會有更多的支持并行線程處理的軟體面世,屆時,當然是支持超線程處理器大顯身手的時候了。那時候普通用戶才能夠從超線程技術中得到最直接的好處。
儘管提高CPU的時鐘頻率和增加緩存容量后的確可以改善性能,但這樣的CPU性能提高在技術上存在較大的難度。實際上在應用中基於很多原因,CPU的執行單元都沒有被充分使用。如果CPU不能正常讀取數據(匯流排/內存的瓶頸),其執行單元利用率會明顯下降。
目前大多數執行線程缺乏ILP(Instruction-Level Parallelism,多種指令同時執行)支持。這些都造成了目前CPU的性能沒有得到全部的發揮。因此,Intel則採用另一個思路去提高CPU的性能,讓CPU可以同時執行多重線程,就能夠讓CPU發揮更大效率,即所謂“超線程(Hyper-Threading,簡稱“HT”)”技術。
英特爾P4 超線程有兩個運行模式,Single Task Mode(單任務模式)及Multi Task Mode(多任務模式),當程序不支持Multi-Processing(多處理器作業)時,系統會停止其中一個邏輯CPU的運行,把資源集中於單個邏輯CPU中,讓單線程程序不會因其中一個邏輯CPU閑置而減低性能,但由於被停止運行的邏輯CPU還是會等待工作,佔用一定的資源,因此Hyper-Threading CPU運行Single Task Mode程序模式時,有可能達不到不帶超線程功能的CPU性能,但性能差距不會太大。也就是說,當運行單線程運用軟體時,超線程技術甚至會降低系統性能,尤其在多線程操作系統運行單線程軟體時容易出現此問題。
需要注意的是,含有超線程技術的CPU需要晶元組、軟體支持,才能比較理想的發揮該項技術的優勢。操作系統如:Microsoft Windows XP、Microsoft Windows 2003,Linuxkernel 2.4.x以後的版本也支持超線程技術。
1、超線程技術的優勢在於同時進行多任務批處理工作,儘管現在支持超線程技術的軟體不多,也只有少數的軟體可以享受到由超線程技術帶來的性能提升,但是這符合今後軟體等技術的發展方向,今後更多的軟體將受益於超線程技術。
2、從目前來看,部分客戶發可以發覺在運行某些特定軟體時,超線程技術讓系統有了30%的性能提升,為超線程技術優化的軟體都能夠享受到超線程技術的好處。
3、客戶同時運行兩個以上的軟體軟體時候,將可以明顯的感受到這兩個軟體的性能都得到提升相比關閉超線程技術的情況下都有很大的提升,超線程技術的效率優勢只有在多任務操作時候才能得到發揮。
4、另外目前支持超線程技術的Windows XP操作系統,其中的很多系統軟體都已經針對超線程技術優化過,因此在使用Windows操作系統的時候可以很好的享受到超線程技術帶來好處。
1、因為超線程技術是對多任務處理有優勢,因此當運行單線程運用軟體時,超線程技術將會降低系統性能,尤其在多線程操作系統運行單線程軟體時將容易出現此問題(這也是在WindowsXP中運行顯卡的測試軟體時候,得分下降了一點)。
2、在打開超線程支持后,如果處理器以雙處理器模式工作,那麼處理器內部緩存就會被劃分成幾區域,互相共享內部資源。對於不支持多處理器工作的軟體在雙處理器上運行時出錯的概率要比單處理器上高很多。
3、目前因為很多工作站軟體為Windows 2000操作系統進行過優化,但是採用Windows2000這樣的操作系統的工作戰無法完全利用超線程技術的優勢,也帶來不了高的工作效率。
通過上面的解答,我們應該知道了超線程技術的確實對系統性能提升有好處,但是這僅對多任務處理的時候有優勢,在進行單各任務處理的時候,優勢表現不出來,而且因為打開超線程,處理器內部緩存就會被劃分成幾區域,互相共享內部資源,造成單個的子系統性能下降。個人認為,用戶在進行單任務操作時候,沒有必要打開超線程,只有多任務操作時候可以適時打開超線程,享受超線程技術帶來的好處。
超線程技術就是利用特殊的硬體指令,把兩個邏輯內核模擬成兩個物理晶元,讓單個處理器都能使用線程級并行計算,從而兼容多線程操作系統和軟體,提高處理器的性能。操作系統或者應用軟體的多線程可以同時運行於一個HTT處理器上,兩個邏輯處理器共享一組處理器執行單元,并行完成加、乘、負載等操作。這樣就可以使得運行性能提高30%,這是因為在同一時間裡,應用程序可以使用晶元的不同部分。雖然單線程晶元每秒鐘能夠處理成千上萬條指令,但是在任一時刻只能夠對一條指令進行操作。而“超線程”技術可以使晶元同時進行多線程處理,使晶元性能得到提升。
天氣的逐漸變冷,提醒著我們年末的到來,同時也意味著寒促高峰的來臨。辛苦勞作一年的大夥兒難免要“腐敗”一把,不少朋友將買本的事兒提上日程。那麼購買筆記本有哪些事項是需要格外注意的呢?雖說針對不同的應用有不同的筆記本機型供大家選擇,但也有一些標準是放之四海而皆準的,比如性能、散熱、續航這些選本的要點是值得用戶去注意的,而這一切都與筆記本處理器的選擇密不可分,可以說選對了處理器,就是選對了筆記本。
睿頻加速技術示意圖
當用戶啟動一個運行程序后,比如運行一款對系統資源要求較高的大型3D遊戲,處理器會自動加速到合適的頻率,將原來的運行速度提升10%~20% 以保證程序流暢運行;應對複雜應用時,處理器可自動提高運行主頻以提速,輕鬆進行對性能要求更高的多任務處理;當進行工作任務切換時,如果只有內存和硬碟在進行主要的工作,處理器會立刻處於節電狀態。這樣既保證了能源的有效利用,又使程序運行速度大幅提升。
除了性能之外,筆記本的散熱和續航能力是另外兩大要素,由於採用睿頻技術,筆記本在閑置時將運行在更低的頻率,同時新酷睿處理器本身採用32nm的製程工藝,與目前市場上還在流通的45nm處理器相比,本身就擁有更好的功耗控制,先天的優勢加上後天的技術,使得Intel新酷睿智能處理器擁有更低的功耗、更低的發熱量以及更長的續航時間。
採用Intel智能處理器的筆記本往往更輕更薄
採用Intel新酷睿智能處理器的筆記本由於擁有更為出色的功耗控制,使得其在產品模具設計上能夠做到更輕更薄,外觀也更加的時尚,同時筆記本的重量也降低了,便攜性提高了,可謂一舉多得。
記得早些時候筆記本的發熱量控制還不是很好,不少朋友調侃說:冬天到了,買個本本暖暖手。如果你買了一款採用新酷睿智能處理器的筆記本,那“暖手”這個附加優惠基本上是不可能實現了。在價位上,您完全不需要擔心,新酷睿智能處理器分為i3 i5 i7三大品類,價位從3000元到萬元以上不等,相信可以滿足不用戶的需求。
第一階段,提取,從程式記憶體中檢索指令(為數值或一系列數值)。由程式計數器(Program Counter)指定程式記憶體的位置,程式計數器保存供識別目前程式位置的數值。換言之,程式計數器記錄了CPU在目前程式里的蹤跡。
提取指令之後,程式計數器根據指令長度增加記憶體單元。指令的提取必須常常從相對較慢的記憶體尋找,因此導致CPU等候指令的送入。這個問題主要被論及在現代處理器的快取和管線化架構。
一部分的指令數值為運算碼(Opcode),其指示要進行哪些運算。其它的數值通常供給指令必要的資訊,諸如一個加法(Addition)運算的運算目標。這樣的運算目標也許提供一個常數值(即立即值),或是一個空間的定址值:暫存器或記憶體位址,以定址模式決定。
在舊的設計中,CPU里的指令解碼部分是無法改變的硬體裝置。不過在眾多抽象且複雜的CPU和指令集架構中,一個微程式時常用來幫助轉換指令為各種形態的訊號。這些微程式在已成品的CPU中往往可以重寫,方便變更解碼指令。
在提取和解碼階段之後,接著進入執行階段。該階段中,連接到各種能夠進行所需運算的CPU部件。
例如,要求一個加法運算,算數邏輯單元(ALU,Arithmetic Logic Unit)將會連接到一組輸入和一組輸出。輸入提供了要相加的數值,而輸出將含有總和的結果。ALU內含電路系統,易於輸出端完成簡單的普通運算和邏輯運算(比如加法和位元運算)。如果加法運算產生一個對該CPU處理而言過大的結果,在標誌暫存器里,運算溢出(Arithmetic Overflow)標誌可能會被設置。
最終階段,寫回,以一定格式將執行階段的結果簡單的寫回。運算結果經常被寫進CPU內部的暫存器,以供隨後指令快速存取。在其它案例中,運算結果可能寫進速度較慢,但容量較大且較便宜的主記憶體中。某些類型的指令會操作程式計數器,而不直接產生結果。這些一般稱作“跳轉”(Jumps),並在程式中帶來循環行為、條件性執行(透過條件跳轉)和函式。
許多指令也會改變標誌暫存器的狀態位元。這些標誌可用來影響程式行為,緣由於它們時常顯出各種運算結果。
例如,以一個“比較”指令判斷兩個值的大小,根據比較結果在標誌暫存器上設置一個數值。這個標誌可藉由隨後的跳轉指令來決定程式動向。
在執行指令並寫回結果之後,程式計數器的值會遞增,反覆整個過程,下一個指令周期正常的提取下一個順序指令。如果完成的是跳轉指令,程式計數器將會修改成跳轉到的指令位址,且程式繼續正常執行。許多複雜的CPU可以一次提取多個指令、解碼,並且同時執行。這個部分一般涉及“經典RISC管線”,那些實際上是在眾多使用簡單CPU的電子裝置中快速普及(常稱為微控制(Microcontrollers))。
CPU包括運算邏輯部件、寄存器部件和控制部件。CPU從存儲器或高速緩衝存儲器中取出指令,放入指令寄存器,並對指令解碼。它把指令分解成一系列的微操作,然後發出各種控制命令,執行微操作系列,從而完成一條指令的執行。
指令是計算機規定執行操作的類型和操作數的基本命令。指令是由一個位元組或者多個位元組組成,其中包括操作碼欄位、一個或多個有關操作數地址的欄位以及一些表徵機器狀態的狀態字和特徵碼。有的指令中也直接包含操作數本身。
運算邏輯部件,可以執行定點或浮點的算術運算操作、移位操作以及邏輯操作,也可執行地址的運算和轉換。
寄存器部件,包括通用寄存器、專用寄存器和控制寄存器。
專用寄存器是為了執行一些特殊操作所需用的寄存器。
有的時候,中央處理器中還有一些緩存,用來暫時存放一些數據指令,緩存越大,說明CPU的運算速度越快,目前市場上的中高端中央處理器都有2M左右的二級緩存,高端中央處理器有4M左右的二級緩存。
控制部件,主要負責對指令解碼,並且發出為完成每條指令所要執行的各個操作的控制信號。
其結構有兩種:一種是以微存儲為核心的微程序控制方式;一種是以邏輯硬布線結構為主的控制方式。
微存儲中保持微碼,每一個微碼對應於一個最基本的微操作,又稱微指令;各條指令是由不同序列的微碼組成,這種微碼序列構成微程序。中央處理器在對指令解碼以後,即發出一定時序的控制信號,按給定序列的順序以微周期為節拍執行由這些微碼確定的若干個微操作,即可完成某條指令的執行。
簡單指令是由(3~5)個微操作組成,複雜指令則要由幾十個微操作甚至幾百個微操作組成。
但從20世紀70年代開始,由於集成電路的大規模使用,把本來需要由數個獨立單元構成的CPU集成為一塊微小但功能空前強大的微處理器時。這個名稱及其縮寫才真正在電子計算機產業中得到廣泛應用。儘管與早期相比,CPU在物理形態、設計製造和具體任務的執行上都有了戲劇性的發展,但是其基本的操作原理一直沒有改變。
4004含有2300個晶體管,功能相當有限,而且速度還很慢,被當時的藍色巨人IBM以及大部分商業用戶不屑一顧,但是它畢竟是劃時代的產品,從此以後,Intel公司便與微處理器結下了不解之緣。可以這麼說,CPU的歷史發展歷程其實也就是Intel公司X86系列CPU的發展歷程,就通過它來展開的“CPU歷史之旅”。
1978年,Intel公司再次領導潮流,首次生產出16位的微處理器,並命名為i8086,同時還生產出與之相配合的數學協處理器i8087,這兩種晶元使用相互兼容的指令集,但在i8087指令集中增加了一些專門用於對數、指數和三角函數等數學計算的指令。由於這些指令集應用於i8086和i8087,所以人們也把這些指令集中統一稱之為X86指令集。
雖然以後Intel公司又陸續生產出第二代、第三代等更先進和更快的新型CPU,但都仍然兼容原來的X86指令,而且Intel公司在後續CPU的命名上沿用了原先的X86序列,直到後來因商標註冊問題,才放棄了繼續用阿拉伯數字命名。至於在後來發展壯大的其他公司,例如AMD和Cyrix等,在486以前(包括486)的CPU都是按Intel的命名方式為自己的X86系列CPU命名,但到了586時代,市場競爭越來越厲害了,由於商標註冊問題,它們已經無法繼續使用與Intel的X86系列相同或相似的命名,只好另外為自己的586、686兼容CPU命名了。
1979年,Intel公司推出了8088晶元,它仍舊是屬於16位微處理器,內含29000個晶體管,時鐘頻率為4.77MHz,地址匯流排為20位,可使用1MB內存。8088內部數據匯流排都是16位,外部數據匯流排是8位,而它的兄弟8086是16位。
1981年,8088晶元首次用於IBM的PC(個人電腦Personal Computer)機中,開創了全新的微機時代。也正是從8088開始,PC的概念開始在全世界範圍內發展起來。
早期的CPU通常是為大型及特定應用的計算機而訂製。但是,這種昂貴為特定應用定製CPU的方法很大程度上已經讓位於開發便宜、標準化、適用於一個或多個目的的處理器類。
這個標準化趨勢始於由單個晶體管組成的大型機和微機年代,隨著集成電路的出現而加速。集成電路使得更為複雜的CPU可以在很小的空間中設計和製造出來(在微米的量級)。
1982年,許多年輕的讀者尚在襁褓之中的時候,Intel公司已經推出了劃時代的最新產品棗80286晶元,該晶元比8086和8088都有了飛躍的發展,雖然它仍舊是16位結構,但是在CPU的內部含有13.4萬個晶體管,時鐘頻率由最初的6MHz逐步提高到20MHz。其內部和外部數據匯流排皆為16位,地址匯流排24位,可定址16MB內存。從80286開始,CPU的工作方式也演變出兩種來:實模式和保護模式。
1985年,Intel公司推出了80386晶元,它是80X86系列中的第一種32位微處理器,而且製造工藝也有了很大的進步,與80286相比,80386內部內含27.5萬個晶體管,時鐘頻率為12.5MHz,后提高到20MHz、25MHz、33MHz。80386的內部和外部數據匯流排都是32位,地址匯流排也是32位,可定址高達4GB內存。它除具有實模式和保護模式外,還增加了一種叫虛擬86的工作方式,可以通過同時模擬多個8086處理器來提供多任務能力。
除了標準的80386晶元,也就是經常說的80386DX外,出於不同的市場和應用考慮,Intel又陸續推出了一些其它類型的80386晶元:80386SX、80386SL、80386DL等。
1988年,Intel推出的80386SX是市場定位在80286和80386DX之間的一種晶元,其與80386DX的不同在於外部數據匯流排和地址匯流排皆與80286相同,分別是16位和24位(即定址能力為16MB)。
1990年,Intel公司推出的80386 SL和80386 DL都是低功耗、節能型晶元,主要用於便攜機和節能型台式機。80386 SL與80386 DL的不同在於前者是基於80386SX的,後者是基於80386DX的,但兩者皆增加了一種新的工作方式:系統管理方式。當進入系統管理方式后,CPU 就自動降低運行速度、控制顯示屏和硬碟等其它部件暫停工作,甚至停止運行,進入“休眠”狀態,以達到節能目的。
1989年,大家耳熟能詳的80486 晶元由Intel公司推出,這種晶元的偉大之處就在於它實破了100萬個晶體管的界限,集成了120萬個晶體管。80486的時鐘頻率從25MHz逐步提高到了33MHz、50MHz。80486是將80386和數學協處理器80387以及一個8KB的高速緩存集成在一個晶元內,並且在80X86系列中首次採用 了RISC(精簡指令集)技術,可以在一個時鐘周期內執行一條指令。它還採用了突發匯流排方式,大大提高了與內存的數據交換速度。
由於這些改進,80486 的性能比帶有80387數學協處理器的80386DX提高了4倍。80486和80386一樣,也陸續出現了幾種類型。上面介紹的最初類型是80486DX。
1990年,Intel公司推出了80486 SX,它是486類型中的一種低價格機型,其與80486DX的區別在於它沒有數學協處理器。80486 DX2由於用了時鐘倍頻技術,也就是說晶元內部的運行速度是外部匯流排運行速度的兩倍,即晶元內部以2倍於系統時鐘的速度運行,但仍以原有時鐘速度與外界通訊。80486 DX2的內部時鐘頻率主要有40MHz、50MHz、66MHz等。80486 DX4也是採用了時鐘倍頻技術的晶元,它允許其內部單元以2倍或3倍於外部匯流排的速度運行。為了支持這種提高了的內部工作頻率,它的片內高速緩存擴大到 16KB。80486 DX4的時鐘頻率為100MHz,其運行速度比66MHz的80486 DX2快40%。80486也有SL增強類型,其具有系統管理方式,用於便攜機或節能型台式機。
CPU的標準化和小型化都使得這一類數字設備(香港譯為“電子零件”)在現代生活中
的出現頻率遠遠超過有限應用專用的計算機。現代微處理器出現在包括從汽車到手機到兒童玩具在內的各種物品中。
製造工藝的微米是指IC內電路與電路之間的距離。製造工藝的趨勢是向密集度愈高的方向發展。密度愈高的IC電路設計,意味著在同樣大小面積的IC中,可以擁有密度更高、功能更複雜的電路設計。現在主要的180nm、130nm、90nm、65nm、45納米。最近inter已經有32納米的製造工藝的酷睿i3/i5系列了。
而AMD則表示、自己的產品將會直接跳過32nm工藝(2010年第三季度生產少許32nm產品、如Orochi、Llano)於2011年中期初發布28nm的產品(名稱未定)
(1)CISC指令集
CISC指令集,也稱為複雜指令集,英文名是CISC,(Complex Instruction Set Computer的縮寫)。在CISC微處理器中,程序的各條指令是按順序串列執行的,每條指令中的各個操作也是按順序串列執行的。順序執行的優點是控制簡單,但計算機各部分的利用率不高,執行速度慢。其實它是英特爾生產的x86系列(也就是IA-32架構)CPU及其兼容CPU,如AMD、VIA的。即使是現在新起的X86-64(也被成AMD64)都是屬於CISC的範疇。
要知道什麼是指令集還要從當今的X86架構的CPU說起。X86指令集是Intel為其第一塊16位CPU(i8086)專門開發的,IBM1981年推出的世界第一台PC機中的CPU-i8088(i8086簡化版)使用的也是X86指令,同時電腦中為提高浮點數據處理能力而增加了X87晶元,以後就將X86指令集和X87指令集統稱為X86指令集。
雖然隨著CPU技術的不斷發展,Intel陸續研製出更新型的i80386、i80486直到過去的PII至強、PIII至強、Pentium 3,Pentium 4系列,最後到今天的酷睿2系列、至強(不包括至強Nocona),但為了保證電腦能繼續運行以往開發的各類應用程序以保護和繼承豐富的軟體資源,所以Intel公司所生產的所有CPU仍然繼續使用X86指令集,所以它的CPU仍屬於X86系列。由於Intel X86系列及其兼容CPU(如AMD Athlon MP、)都使用X86指令集,所以就形成了今天龐大的X86系列及兼容CPU陣容。x86CPU目前主要有intel的伺服器CPU和AMD的伺服器CPU兩類。
(2)RISC指令集
RISC是英文“Reduced Instruction Set Computing ”的縮寫,中文意思是“精簡指令集”。它是在CISC指令系統基礎上發展起來的,有人對CISC機進行測試表明,各種指令的使用頻度相當懸殊,最常使用的是一些比較簡單的指令,它們僅占指令總數的20%,但在程序中出現的頻度卻佔80%。複雜的指令系統必然增加微處理器的複雜性,使處理器的研製時間長,成本高。並且複雜指令需要複雜的操作,必然會降低計算機的速度。基於上述原因,20世紀80年代RISC型CPU誕生了,相對於CISC型CPU ,RISC型CPU不僅精簡了指令系統,還採用了一種叫做“超標量和超流水線結構”,大大增加了并行處理能力。RISC指令集是高性能CPU的發展方向。它與傳統的CISC(複雜指令集)相對。相比而言,RISC的指令格式統一,種類比較少,定址方式也比複雜指令集少。當然處理速度就提高很多了。目前在中高檔伺服器中普遍採用這一指令系統的CPU,特別是高檔伺服器全都採用RISC指令系統的CPU。RISC指令系統更加適合高檔伺服器的操作系統UNIX,現在Linux也屬於類似UNIX的操作系統。RISC型CPU與Intel和AMD的CPU在軟體和硬體上都不兼容。
(3)IA-64
EPIC(Explicitly Parallel Instruction Computers,精確并行指令計算機)是否是RISC和CISC體系的繼承者的爭論已經有很多,單以EPIC體系來說,它更像Intel的處理器邁向RISC體系的重要步驟。從理論上說,EPIC體系設計的CPU,在相同的主機配置下,處理Windows的應用軟體比基於Unix下的應用軟體要好得多。
Intel採用EPIC技術的伺服器CPU是安騰Itanium(開發代號即Merced)。它是64位處理器,也是IA-64系列中的第一款。微軟也已開發了代號為Win64的操作系統,在軟體上加以支持。在Intel採用了X86指令集之後,它又轉而尋求更先進的64-bit微處理器,Intel這樣做的原因是,它們想擺脫容量巨大的x86架構,從而引入精力充沛而又功能強大的指令集,於是採用EPIC指令集的IA-64架構便誕生了。IA-64 在很多方面來說,都比x86有了長足的進步。突破了傳統IA32架構的許多限制,在數據的處理能力,系統的穩定性、安全性、可用性、可觀理性等方面獲得了突破性的提高。
IA-64微處理器最大的缺陷是它們缺乏與x86的兼容,而Intel為了IA-64處理器能夠更好地運行兩個朝代的軟體,它在IA-64處理器上(Itanium、Itanium2 ……)引入了x86-to-IA-64的解碼器,這樣就能夠把x86指令翻譯為IA-64指令。這個解碼器並不是最有效率的解碼器,也不是運行x86代碼的最好途徑(最好的途徑是直接在x86處理器上運行x86代碼),因此Itanium 和Itanium2在運行x86應用程序時候的性能非常糟糕。這也成為X86-64產生的根本原因。
(4)X86-64 (AMD64 / EM64T)
AMD公司設計,可以在同一時間內處理64位的整數運算,併兼容於X86-32架構。其中支持64位邏輯定址,同時提供轉換為32位定址選項;但數據操作指令默認為32位和8位,提供轉換成64位和16位的選項;支持常規用途寄存器,如果是32位運算操作,就要將結果擴展成完整的64位。這樣,指令中有“直接執行”和“轉換執行”的區別,其指令欄位是8位或32位,可以避免欄位過長。
x86-64(也叫AMD64)的產生也並非空穴來風,x86處理器的32bit定址空間限制在4GB內存,而IA-64的處理器又不能兼容x86。AMD充分考慮顧客的需求,加強x86指令集的功能,使這套指令集可同時支持64位的運算模式,因此AMD把它們的結構稱之為x86-64。在技術上AMD在x86-64架構中為了進行64位運算,AMD為其引入了新增了R8-R15通用寄存器作為原有X86處理器寄存器的擴充,但在而在32位環境下並不完全使用到這些寄存器。原來的寄存器諸如EAX、EBX也由32位擴張至64位。在SSE單元中新加入了8個新寄存器以提供對SSE2的支持。寄存器數量的增加將帶來性能的提升。與此同時,為了同時支持32和64位代碼及寄存器,x86-64架構允許處理器工作在以下兩種模式:Long Mode(長模式)和Legacy Mode(遺傳模式),Long模式又分為兩種子模式(64bit模式和Compatibility mode兼容模式)。該標準已經被引進在AMD伺服器處理器中的Opteron處理器.
而今年也推出了支持64位的EM64T技術,再還沒被正式命為EM64T之前是IA32E,這是英特爾64位擴展技術的名字,用來區別X86指令集。Intel的EM64T支持64位sub-mode,和AMD的X86-64技術類似,採用64位的線性平面定址,加入8個新的通用寄存器(GPRs),還增加8個寄存器支持SSE指令。與AMD相類似,Intel的64位技術將兼容IA32和IA32E,只有在運行64位操作系統下的時候,才將會採用IA32E。IA32E將由2個sub-mode組成:64位sub-mode和32位sub-mode,同AMD64一樣是向下兼容的。Intel的EM64T將完全兼容AMD的X86-64技術。現在Nocona處理器已經加入了一些64位技術,Intel的Pentium 4E處理器也支持64位技術。
應該說,這兩者都是兼容x86指令集的64位微處理器架構,但EM64T與AMD64還是有一些不一樣的地方,AMD64處理器中的NX位在Intel的處理器中將沒有提供。