CPU擴展指令集

CPU擴展指令集

CPU擴展指令集指的是CPU增加的多媒體或者是3D處理指令,這些擴展指令可以提高CPU處理多媒體和3D圖形的能力。著名的有MMX(多媒體擴展指令)、SSE(網際網路數據流單指令擴展)和3DNow!指令集。CPU依靠指令來計算和控制系統,每款CPU在設計時就規定了一系列與其硬體電路相配合的指令系統。指令的強弱也是CPU的重要指標,指令集是提高微處理器效率的最有效工具之一。

基本介紹

  • 中文名:CPU擴展指令集
  • 內容:CPU增加的多媒體
  • 指令分類:CISC、RISC、X86-64
  • 作用 :提高微處理器效率
基本概況,運用,基本分類,指令分類,CISC,RISC,IA-64,X86-64,擴展,綜述,MMX,SSE,SSE2,SSE3,3D Now,SSE4,SSSE3,SSE4.2,AMD64,EM64T,指令展望,最新指令,

基本概況

CPU依靠指令來計算和控制系統,每款CPU在設計時就規定了一系列與其硬體電路相配合的指令系統。指令的強弱也是CPU的重要指標,指令集是提高微處理器效率的最有效工具之一。從主流體系結構講,指令集可分為複雜指令集精簡指令集兩部分,而從具體運用看,如IntelMMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)、SEE3和AMD的3DNow!等都是CPU的擴展指令集,分別增強了CPU的多媒體、圖形圖象和Internet等的處理能力。通常會把CPU的擴展指令集稱為"CPU的指令集"。SSE3指令集也是規模最小的指令集,此前MMX包含有57條命令,SSE包含有50條命令,SSE2包含有144條命令,SSE3包含有13條命令。

運用

在最初發明計算機的數十年里,隨著計算機功能日趨增大,性能日趨變強,內部元器件也越來越多,指令集日趨複雜,過於冗雜的指令嚴重的影響了計算機的工作效率。後來經過研究發現,在計算機中,80%程式只用到了20%的指令集,基於這一發現,RISC精簡指令集被提了出來,這是計算機系統架構的一次深刻革命。RISC體系結構的基本思路是:抓住CISC指令系統指令種類太多、指令格式不規範、定址方式太多的缺點,通過減少指令種類、規範指令格式和簡化定址方式,方便處理器內部的並行處理,提高VLSI器件的使用效率,從而大幅度地提高處理器的性能。

基本分類

從現階段的主流體系結構講,指令集可分為複雜指令集和精簡指令集兩部分,而從具體運用看,如IntelMMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)和AMD的3DNow通常會把CPU的擴展指令集稱為"CPU的指令集"。

指令分類

CISC

CISC指令集,也稱為複雜指令集,英文名是CISC,(Complex Instruction Set Computer的縮寫)。在CISC微處理器中,程式的各條指令是按順序串列執行的,每條指令中的各個操作也是按順序串列執行的。順序執行的優點是控制簡單,但計算機各部分的利用率不高,執行速度慢。其實它是英特爾生產的x86系列(也就是IA-32架構)CPU及其兼容CPU,如AMD、VIA的。即使是新起的X86-64(也被成AMD64)都是屬於CISC的範疇。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系列、至強(不包括至強Nocona),但為了保證電腦能繼續運行以往開發的各類應用程式以保護和繼承豐富的軟體資源,所以Intel公司所生產的所有CPU仍然繼續使用X86指令集,所以它的CPU仍屬於X86系列。由於Intel X86系列及其兼容CPU(如AMD Athlon MP、)都使用X86指令集,所以就形成了龐大的X86系列及兼容CPU陣容。x86CPU主要有intel的伺服器CPU和AMD的伺服器CPU兩類。

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指令系統更加適合高檔伺服器的作業系統UNIXLinux也屬於類似UNIX的作業系統。RISC型CPU與Intel和AMD的CPU在軟體和硬體上都不兼容。在中高檔伺服器中採用RISC指令的CPU主要有以下幾類:PowerPC處理器SPARC處理器PA-RISC處理器MIPS處理器Alpha處理器

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產生的根本原因。

X86-64

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一樣是向下兼容的。IntelEM64T將完全兼容AMD的X86-64技術。Nocona處理器已經加入了一些64位技術,Intel的Pentium 4E處理器也支持64位技術。
應該說,這兩者都是兼容x86指令集的64位微處理器架構,但EM64T與AMD64還是有一些不一樣的地方,AMD64處理器中的NX位在Intel的處理器中將沒有提供。

擴展

綜述

對於CPU來說,在基本功能方面,它們的差別並不太大,基本的指令集也都差不多,但是許多廠家為了提升某一方面性能,又開發了擴展指令集,擴展指令集定義了新的數據和指令,能夠大大提高某方面數據處理能力,但必需要有軟體支持。

MMX

MMX發布於1997年,一共57條指令,除了emms、movd和movq這3個指令,其他所有的MMX指令都以字母p開頭。MMX指令與FPU(浮點運算器)使用同樣的8個通用暫存器,準確說是借用了FPU每個暫存器的前64位,這樣MMX指令一次最多可以處理8個位元組或者4個位元組或者2個雙位元組或者1個4位元組的數據,理論上可以將運算速度最高提高8倍。 MMX與FPU共用暫存器證明了Intel的短視,因為如果FPU要使用暫存器,MMX這時必須暫時退出,等FPU用完之後才能恢復原狀。加上早期Intel處理器具有很強的浮點運算能力,遊戲開發者都喜歡採用浮點運算,衝突的結果就是MMX的作用大打折扣,甚至有時還會造成性能的瞬間劇降。 Intel沒有沿用MMX的稱呼,1999年的Pentium Ⅲ處理器上指令集改稱SSE。SSE採用了單獨的暫存器,解決了與FPU衝突的問題。8個128位單獨的SSE暫存器,支持同時處理 4 個單精度浮點數,能夠同時處理的數據比64位的MMX翻了一番。SSE一共有70條指令,進一步提升了CPU多媒體處理能力。也從這時開始,SSE的名稱固定了下來。MMX指令集Intel代表處理器:Pentium MMX

SSE

SSE(Streaming SIMD Extensions,單指令多數據流擴展)指令集是Intel在Pentium III處理器中率先推出的。其實,早在PIII正式推出之前,Intel公司就曾經通過各種渠道公布過所謂的KNI(Katmai New Instruction)指令集,這個指令集也就是SSE指令集的前身,並一度被很多傳媒稱之為MMX指令集的下一個版本,即MMX2指令集。究其背景,原來"KNI"指令集是Intel公司最早為其下一代晶片命名的指令集名稱,而所謂的"MMX2"則完全是硬體評論家們和媒體憑感覺和印象對"KNI"的 評價,Intel公司從未正式發布過關於MMX2的訊息。
而最終推出的SSE指令集也就是所謂勝出的"網際網路SSE"指令集。SSE指令集包括了70條指令,其中包含提高3D圖形運算效率的50條SIMD(單指令多數據技術)浮點運算指令、12條MMX 整數運算增強指令、8條最佳化記憶體中連續數據塊傳輸指令。理論上這些指令對流行的圖像處理、浮點運算、3D運算、視頻處理、音頻處理等諸多多媒體套用起到全面強化的作用。SSE指令3DNow!指令彼此互不兼容,但SSE包含了3DNow!技術的絕大部分功能,只是實現的方法不同。SSE兼容MMX指令,它可以通過SIMD和單時鐘周期並行處理多個浮點數據來有效地提高浮點運算速度。
SSE指令集Intel代表處理器:Pentium III

SSE2

SSE2(Streaming SIMD Extensions 2,Intel官方稱為SIMD 流技術擴展 2或數據流單指令多數據擴展指令集 2)指令集是Intel公司在SSE指令集的基礎上發展起來的。相比於SSE,SSE2使用了144個新增指令,擴展了MMX技術和SSE技術,這些指令提高了廣大應用程式的運行性能。隨MMX技術引進的SIMD整數指令從64位擴展到了128 位,使SIMD整數類型操作的有效執行率成倍提高。雙倍精度浮點SIMD指令允許以 SIMD格式同時執行兩個浮點操作,提供雙倍精度操作支持有助於加速內容創建、財務、工程和科學套用。除SSE2指令之外,最初的SSE指令也得到增強,通過支持多種數據類型(例如,雙字和四字)的算術運算,支持靈活並且動態範圍更廣的計算功能。SSE2指令可讓軟體開發員極其靈活的實施算法,並在運行諸如MPEG-2、MP3、3D圖形等之類的軟體時增強性能。Intel是從Willamette核心的Pentium 4開始支持SSE2指令集的,而AMD則是從K8架構的SledgeHammer核心的Opteron開始才支持SSE2指令集的。
SSE2指令集Intel代表處理器:老Pentium 4

SSE3

SSE3(Streaming SIMD Extensions 3,Intel官方稱為SIMD 流技術擴展 3或數據流單指令多數據擴展指令集 3)指令集是Intel公司在SSE2指令集的基礎上發展起來的。相比於SSE2SSE3在SSE2的基礎上又增加了13個額外的SIMD指令。SSE3 中13個新指令的主要目的是改進執行緒同步和特定應用程式領域,例如媒體和遊戲。這些新增指令強化了處理器在浮點轉換至整數、複雜算法、視頻編碼、SIMD浮點暫存器操作以及執行緒同步等五個方面的表現,最終達到提升多媒體和遊戲性能的目的。Intel是從Prescott核心的Pentium 4開始支持SSE3指令集的,而AMD則是從2005年下半年Troy核心Opteron開始才支持SSE3的。但是需要注意的是,AMD所支持的SSE3與Intel的SSE3並不完全相同,主要是刪除了針對Intel超執行緒技術最佳化的部分指令。
SSE3指令集Intel代表處理器:基於Prescott核心新Pentium 4

3D Now

3DNow!是AMD公司開發的SIMD指令集,可以增強浮點和多媒體運算的速度,並被AMD廣泛套用於其K6-2 、K6-3以及Athlon(K7)處理器上。3DNow!指令集技術其實就是21條機器碼擴展指令集
與Intel公司的MMX技術側重於整數運算有所不同,3DNow!指令集主要針對三維建模坐標變換 和效果渲染等三維套用場合,在軟體的配合下,可以大幅度提高3D處理性能。後來在Athlon上開發了Enhanced 3DNow!。這些AMD標準的SIMD指令和Intel的SSE具有相同效能。因為受到Intel在商業上以及Pentium III成功的影響,軟體在支持SSE上比起3DNow!更為普遍。Enhanced 3DNow!AMD公司繼續增加至52個指令,包含了一些SSE碼,因而在針對SSE做最佳化的軟體中能獲得更好的效能。
一個指令,同時處理多個數據的好創意,其他CPU當然也不會放過。AMD看到Intel MMX,眼紅之下在K6 CPU里搞出了一個類似的3DNow!因為MMX浮點數混用時性能會有下降的情況,支持浮點數並行處理的3DNow!找著了機會。其實是AMD占了Intel的便宜,因為很多程式設計師把3DNow!作為MMX的一個補充,處理整數的時候用MMX,處理浮點數的時候用3DNow!。
1999年的時候,AMD在Athlon處理器上又添加了幾個指令,這就是3DNow!+,又被稱為3DNow!2。不過看到大勢已去,AMD終於放棄了在多媒體指令集上的抵抗,轉而支持Intel SSE,這樣雙方一直到SSE3都相安無事。統一的標準其實是一件好事,要是一個軟體分別有SSE版本和3DNow!+版本,開發者和用戶很快都會不堪其擾。
但是AMD和Intel在多媒體指令集上又開始大打出手,大有分道揚鑣的勢頭。與Intel SSE4.1針鋒相對,AMD Phenom只支持SSE4A指令集,並且AMD在搶先放出了SSE5的風聲,而Intel則斷然拒絕支持AMD的SSE5,直到現在雙方還相持不下。

SSE4

SSE4指令集是Conroe架構所引入的新指令集。這項原本計畫套用於NetBurst微架構Tejas核心處理器之上的全新技術也隨著它的夭折最終沒能實現,這不能不說是個遺憾,但是SSE4指令集出現在了Conroe上又讓我們看到了希望。
SSE4指令集共包括16條指令,不過雖然扣肉處理器推出已經有一些時日,但英特爾仍沒有公布SSE4指令集的具體資料。這相當令人感到納悶。也許英特爾是基於特殊的考慮,僅讓少數合作軟體廠商取得數據,只是這種作法實在很沒有說服力就是了,天底下沒有哪家處理器廠商,希望自己新增的指令越少人用越好。
不過,從Intel Core微架構針對SSE指令所作出的修改被稱之為“Intel Advanced Digital Media Boost”技術來看,未來SSE4將更注重針對視頻方面的最佳化,我們認為SSE4主要改進之處可能將針對英特爾的Clear Video高清視頻技術及UDI接口規範提供強有力的支持。這兩項技術基於965晶片組Intel的官方把Clear Video技術定義為:支持高級解碼、擁有預處理和增強型3D處理能力。
值得一提的是,在SSE4中另一個重要的改進就是提供完整128位寬的SSE執行單元,一個頻率周期內可執行一個128位SSE指令。Conroe中SSE的ADDPS(4D 32bit共128bit,單精度加法)、MULPS(4D 32bit共128bit,單精度乘法)和SSE2的ADDPD(2D 64bit共128bit,雙精度加法)、MULPD(2D 64bit共128bit,雙精度乘法),這四條重要SSE算術指令的吞吐周期都降低到1個周期,真正做到了英特爾宣稱的每個周期執行一條128位向量加法指令和一條128位向量乘法指令的能力。
Intel指出,在套用SSE4指令集後,Penryn增加了2個不同的32Bit向量整數乘法運算支持,引入了8 位無符號 (Unsigned)最小值及最大值運算,以及16Bit 及32Bit 有符號 (Signed) 及無符號運算,並有效地改善編譯器效率及提高向量化整數及單精度代碼的運算能力。同時,SSE4 改良插入、提取、尋找、離散、跨步負載及存儲等動作,令向量運算進一步專門化。
SSE4加入了6條浮點型點積運算指令,支持單精度、雙精度浮點運算及浮點產生操作,且IEEE 754指令 (Nearest, -Inf, +Inf, and Truncate) 可立即轉換其路徑模式,大大減少延誤,這些改變將對遊戲及 3D 內容製作套用有重要意義。
此外,SSE4加入串流式負載指令,可提高以圖形幀緩衝區的讀取數據頻寬,理論上可獲取完整的快取快取行,即每次讀取64Bit而非8Bit,並可保持在臨時緩衝區內,讓指令最多可帶來8倍的讀取頻寬效能提升,對於視訊處理、成像以及圖形處理器中央處理器之間的共享數據套用,有著明顯的效能提升。
Intel資深工程師兼 Penryn 微架構主管 Stephen Fischer 表示,全新 DivX Alaph 內部測試版本已完全支持SSE4指令集, 1顆 3.33G Hz 的Yorkfield的運算效能,相比上代Intel Core 2 Duo QX6800快約105% ,其中約7成的增益來自SSE4指令集,效果令人滿意。

SSSE3

(Supplemental Streaming SIMD Extensions 3)內置於Intel公司微處理器中的多媒體關聯的擴張指令集。是擴張了SSE3的產品,於2006年7月首次裝載在Core 2 Duo處理器中。
SSE3裝載了用一個命令一口氣處理複數個數據的「SIMD」的處理方式,特別在處理語音和動畫關聯上能夠高速地發揮力量。SSSE3是在 SSE3命令的基礎上又添加了32個新命令的產品,其原名為TNI,是SSE4指令集的子集,包含有13條命令。目前SSSE3也是最先進的指令集,增強了CPU的多媒體、圖形圖象和Internet等的處理能力。
SSSE3指令集Intel代表處理器:65nm 酷睿2

SSE4.2

Nehalem架構的Core i7處理器中,SSE4.2指令集被引入,加入了STTNI(字元串文本新指令)和ATA(面向套用的加速器)兩大最佳化指令。SSE4.2新加入的幾條新指令有兩類。第一類是字元串與文本新指令STTNI,STTNI包含了四條具體的指令。STTNI指令可以對兩個16位的數據進行匹配操作,以加速在XML分析方面的性能。據Intel表示,新指令可以在XML分析方面取得3.8倍的性能提升。
第二類指令是面向套用的加速指令ATA。ATA包括冗餘校驗CRC32指令、計算源運算元中非0位個數的POPCNT指令,以及對於打包的64位算術運算SIMD指令。CRC32指令可以取代上層數據協定中經常用到的循環冗餘校驗,據Intel表示其加速比可以達到6.5~18.6倍;POPCNT用於提高在DNA基因配對、聲音識別等包含大數據集中進行模式識別和搜尋等操作的應用程式性能。 Intel也公布了支持新指令集的開發工具。這些工具涵蓋了主流的編譯開發環境。已明確支持SSE4.2的開發環境包括:Intel C++ Compiler 10.X、微軟的Visual Studio 2008 VC++、GCC 4.3.1、Sun Studio Express等。程式設計師可以直接使用高級程式語言編程,編譯器會自動生成最佳化結果。當然程式設計師也可以用內嵌彙編的方式來達到目的。

AMD64

AMD的athlon 64系列處理器的64位技術是在X86指令集的基礎上加入了X86-64的64位擴展X86指令集,這就使得athlon 64系列處理器可兼容原來的32位的X86軟體,並同時支持X86-64的擴展64位計算,並且具有64位的定址能力,使得它成為真正的64位X86構架處理器。在採用X86-64架構的Athlon 64處理器中,X86-64指令集中新增了幾組處理器暫存器,它能夠提供更加快速的執行效率。暫存器是處理器用來創建和儲存CPU運算結果和其他運算結果的地方,標準的X86構架中包括8組通用暫存器,而在AMD的X86-64架構中又增加了8組,將通過暫存器的數目提高到了16組。在這基礎之上,X86-64指令集還另外增加了8組128位的XMM暫存器,也叫做SSE暫存器。它能夠給單指令多數據流技術(SIMD)運算提供更多的存儲空間,這些128位的暫存器能夠提供在矢量和標量計算模式下進行128位雙精度處理,這也為3D數據處理、矢量分析和虛擬技術提供了良好的硬體基礎。由於提供了更多的暫存器,按照X86-64標準生產的處理器可以更有效率的處理數據,在一個時鐘周期內能夠傳輸更多的信息。

EM64T

EM64T(Extended Memory 64 Technology)也就是Intel公司開發的64位記憶體擴展技術。它實際上就是Intel IA-32構架體系的擴展,既IA-32E(Intel Architectur-32 Extension)。Intel的IA-32處理器通過加入EM64T技術便可在兼容IA-32軟體的情況下,允許軟體程式利用更多的記憶體地址空間,並且允許程式進行32 位線性地址寫入。Intel的EM64T所強調的是32位技術與64位技術的兼容性,為採用EM64T的處理器增加了8個64位通用暫存器,並將原有的32位通用暫存器全部擴展為64位,這樣也提高了處理器的整數運算能力。另外增加的8個SEE暫存器也提供了對SSE、SSE2SSE3指令的支持。

指令展望

AMD表示,SSE5指令集的使命之一是增強高性能計算套用,並充分發揮多核心、多媒體的並行優勢。SSE5將把以往只存在於高性能特殊架構里的功能引入到x86平台中,以此最大化每條指令的輸出能力,並增強代碼庫。
SSE5是128-bit指令集,一共有170條指令,其中基礎指令64條,新增的最重要的有兩條:
首先是“三運算元指令”(3-Operand InstrUCtions)。x86指令以往只能處理雙運算元,而SSE5會提高到三運算元,達到RISC架構的水平,從而把多個簡單的指令集整合到更高效的一個單獨指令中,提高執行效率。
然後是“熔合乘法累積”(Fused Multiply Accumulate,FMACxx)。該技術可以把乘法和其他算法結合起來,保證之用一條指令就能完成疊代運算,從而簡化代碼、提高效率,適用於真實圖形著色、快速照相渲染、空間化音頻、復向量(矢量)數學等場合。
除此之外還有整數乘法累積指令(IMAC,IMADC)、置換與條件移動指令、向量比較與測試指令、精度控制捨入與變換指令等等。

最新指令

市面上Intel和AMD的桌面級處理器在X86指令集的基礎上,為了提升處理器各方面的性能,所以又各自開發新的指令集。指令集中包含了處理器對多媒體、3D處理等方面的支持,這些指令集能夠提高處理器對這某些方面處理器能力,但是需要有必要的軟體支持。Intel的主流桌面處理器共有兩個模式,傳統的IA-32模式和IA-32E模式。在可支持EM64T指令的處理器內有一個擴展功能激活暫存器(Extended Feature Enable Register),稱為IA-32_EFER的部件,它控制處理器的EM64T是否被激活。在普通情況下,處理器會作為一顆標準的IA-32處理器,如果在運行64位的軟體或程式時,EM64T就會被激活,那么處理器便會在IA-32E擴展模式下運行。

相關詞條

熱門詞條

聯絡我們