當前位置:首頁 » 操作系統 » 演算法指令集

演算法指令集

發布時間: 2022-05-03 04:17:25

⑴ 指令集是什麼意思

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

1、精簡指令集的運用

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

RISC指令集有許多特徵,其中最重要的有:

指令種類少,指令格式規范:RISC指令集通常只使用一種或少數幾種格式。指令長度單一(一般4個位元組),並且在字邊界上對齊,欄位位置、特別是操作碼的位置是固定的。
定址方式簡化:幾乎所有指令都使用寄存器定址方式,定址方式總數一般不超過5個。其他更為復雜的定址方式,如間接定址等則由軟體利用簡單的定址方式來合成。
大量利用寄存器間操作:RISC指令集中大多數操作都是寄存器到寄存器操作,只以簡單的Load和Store操作訪問內存。因此,每條指令中訪問的內存地址不會超過1個,訪問內存的操作不會與算術操作混在一起。
簡化處理器結構:使用RISC指令集,可以大大簡化處理器的控制器和其他功能單元的設計,不必使用大量專用寄存器,特別是允許以硬體線路來實現指令操作,而不必像CISC處理器那樣使用微程序來實現指令操作。因此RISC處理器不必像CISC處理器那樣設置微程序控制存儲器,就能夠快速地直接執行指令。
便於使用VLSI技術:隨著LSI和VLSI技術的發展,整個處理器(甚至多個處理器)都可以放在一個晶元上。RISC體系結構可以給設計單晶元處理器帶來很多好處,有利於提高性能,簡化VLSI晶元的設計和實現。基於VLSI技術,製造RISC處理器要比CISC處理器工作量小得多,成本也低得多。
加強了處理器並行能力:RISC指令集能夠非常有效地適合於採用流水線、超流水線和超標量技術,從而實現指令級並行操作,提高處理器的性能。目前常用的處理器內部並行操作技術基本上是基於RISC體系結構發展和走向成熟的。
正由於RISC體系所具有的優勢,它在高端系統得到了廣泛的應用,而CISC體系則在桌面系統中占據統治地位。而在如今,在桌面領域,RISC也不斷滲透,預計未來,RISC將要一統江湖。

2、CPU的擴展指令集

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

MMX 指令集
MMX(Multi Media eXtension,多媒體擴展指令集)指令集是Intel公司於1996年推出的一項多媒體指令增強技術。MMX指令集中包括有57條多媒體指令,通過這些指令可以一次處理多個數據,在處理結果超過實際處理能力的時候也能進行正常處理,這樣在軟體的配合下,就可以得到更高的性能。MMX的益處在於,當時存在的操作系統不必為此而做出任何修改便可以輕松地執行MMX程序。但是,問題也比較明顯,那就是MMX指令集與x87浮點運算指令不能夠同時執行,必須做密集式的交錯切換才可以正常執行,這種情況就勢必造成整個系統運行質量的下降。

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和單時鍾周期並行處理多個浮點數據來有效地提高浮點運算速度。

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指令集的。

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

3D Now!(3D no waiting)指令集
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內核、指令↗集和架構之間的聯系和作用

指令集是一套編程的快捷演算法,說白了善用指令集就能大幅提高運算的效率。而架構就是一套運行指令集的理論系統,它決定了CPU的工作模式以及執行效率。基本上每過一段時間,CPU的設計廠商就會發布一套新的CPU運算架構,而核心就是通過按照運算架構所設計的電路來製造的硬體。所以每一代新架構就對應產生不同的CPU內核。

⑶ 指令集、編譯器、演算法、CPU

CPU就是用來計算的,CPU可以做不同的計算,每種計算是一個命令,你可以用命令通知CPU做這種計算,所有的命令構成了指令集。
你寫的代碼CPU是不懂的,需要翻譯成上面說的命令,這個翻譯者就是編譯器。
演算法跟他們的關系稍遠一些。如果把計算比作生產的話,那演算法就是配方和工藝,指導著從原材料到產品的生產過程。

希望能幫助到你。

⑷ 指令集AES,AVX 是什麼

AES是高級加密標准,是一種加密演算法。擁有AES-NI指令集的處理器在加解密方面會有非常大的性能飛躍。
AVX是Intel最新推出的高級矢量擴展指令集,將浮點數性能翻了一番——從128Bit,上升至256Bit,增強了浮點數性能。

⑸ 目前國產晶元使用的指令集主要有哪些

目前國產晶元使用的指令集主要有:3DNow、Professional、SSE5。

順序執行的優點是控制簡單,但計算機各部分的利用率不高,執行速度慢。其實它是英特爾生產的x86系列CPU及其兼容CPU,如AMD、VIA的。即使是現在新起的X86-64(也被成AMD64)都是屬於CISC的范疇。

嵌入式晶元星光系列:

「星光系列」數字影像晶元項目由北京中星微電子有限公司鄧中翰等完成。該成果全面地分析數字多媒體晶元技術的共性,提出了個完全的從多媒體數據結構、多媒體處理演算法、直到多媒體晶元架構、高速低功耗超大規模集成電路以及嵌入式系統軟體技術的整體多媒體晶元技術體系。

可重構CPU架構技術、深亞微米超大規模晶元設計技術、高品質圖像處理及動態無損壓縮演算法技術、CMOS模數混合電路技術、超低功耗低振幅電路技術、單晶成像嵌入系統技術。

⑹ 什麼叫指令集

指令集,也稱為復雜指令集,英文名是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系列、至強(不包括至強Nocona),但為了保證電腦能繼續運行以往開發的各類應用程序以保護和繼承豐富的軟體資源,所以Intel公司所生產的所有CPU仍然繼續使用X86指令集,所以它的CPU仍屬於X86系列。由於Intel X86系列及其兼容CPU(如AMD Athlon MP、)都使用X86指令集,所以就形成了今天龐大的X86系列及兼容CPU陣容。x86CPU目前主要有intel的伺服器CPU和AMD的伺服器CPU兩類。

(2)RISC指令集

RISC是英文「Reced 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在軟體和硬體上都不兼容。

目前,在中高檔伺服器中採用RISC指令的CPU主要有以下幾類:PowerPC處理器、SPARC處理器、PA-RISC處理器、MIPS處理器、Alpha處理器。

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

作者: 菜鴨 2006-2-5 15:04 回復此發言

--------------------------------------------------------------------------------

2 什麼叫指令集《新鳥老鳥一起來》

(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的處理器中將沒有提供。

⑺ AES-NI指令集是什麼技術哦

AES是高級加密標准,是一種加密演算法。擁有AES-NI指令百集的處理器在加解密方面會度有非常大的性能飛躍。

高級加密標准演算法從很多方面解決了令人擔憂的問題。實際上,攻擊數據加密標準的那些手段對於高級加密標准演算法本身並沒有效果。如果採用真正的128位加密技術甚至256位加密技術,蠻力攻擊要取得成功需要耗費相當長的時間。

雖然高級加密標准也有不足的一面,但是,它仍是一個相對新的協議。因此,安全研究人員還沒有那麼多的時間對這種加密方法進行破解試驗。我們可能會隨時發現一種全新的攻擊手段會攻破這種高級加密標准。至少在理論上存在這種可能性。

(7)演算法指令集擴展閱讀:

CTR 模式被廣泛用於 ATM 網路安全和 IPSec應用中,相對於其它模式而言,CTR模式具有如下特點:

硬體效率:允許同時處理多塊明文 / 密文。

軟體效率:允許並行計算,可以很好地利用 CPU 流水等並行技術。

預處理:演算法和加密盒的輸出不依靠明文和密文的輸入,因此如果有足夠的保證安全的存儲器,加密演算法將僅僅是一系列異或運算,這將極大地提高吞吐量。、 隨機訪問:第 i 塊密文的解密不依賴於第 i-1 塊密文,提供很高的隨機訪問能力

⑻ 指令集的相關問題!

SSE4指令集將給英特爾下一代平台帶來「相當大的視頻性能提升」。,其它視頻增強技術還包括CVT(明晰視頻技術)--英特爾對ATI Avivo的回應--和對UDI的支持。上述兩項技術基於英特爾965晶元組。其它英特爾官方文件把CVT技術定義為:支持高級解碼、擁有預處理和增強型3D處理能力。 SSE4指令集是Conroe架構所引入的新指令集。這項原本計劃應用於NetBurst微架構Tejas核心處理器之上的全新技術也隨著它的夭折最終沒能實現,這不能不說是個遺憾,但是SSE4指令集出現在了Conroe上又讓我們看到了希望。
SSE4指令集共包括16條指令,不過雖然扣肉處理器推出已經有一些時日,但目前英特爾仍沒有公布SSE4指令集的具體資料。這相當令人感到納悶。也許英特爾是基於特殊的考慮,僅讓少數合作軟體廠商取得數據,只是這種作法實在很沒有說服力就是了,天底下沒有哪家處理器廠商,希望自己新增的指令越少人用越好。
Intel的EM64T技術,EM64T技術官方全名是Extended Memory 64 Tenchnology 中文解釋就是擴展64bit內存技術。現在的32位奔騰 4 CPU都是採用IA-32指令集,EM64T其實就是在這個指令集的基礎上進行擴展,我們將它命名為IA32e。Inteln這種實現64位的方法其實和AMD的x86-64技術有異曲同工之妙,都是通過64位擴展指令來實現兼容32位和64位的運算。另外不同的是Intel的EM64T技術設定了IA-32和IA-32e兩種模式的激活程序,就是說EM64T需要滿足特定條件才會激活。

MMX 指令集
MMX(Multi Media eXtension,多媒體擴展指令集)指令集是Intel公司於1996年推出的一項多媒體指令增強技術。MMX指令集中包括有57條多媒體指令,通過這些指令可以一次處理多個數據,在處理結果超過實際處理能力的時候也能進行正常處理,這樣在軟體的配合下,就可以得到更高的性能。MMX的益處在於,當時存在的操作系統不必為此而做出任何修改便可以輕松地執行MMX程序。但是,問題也比較明顯,那就是MMX指令集與x87浮點運算指令不能夠同時執行,必須做密集式的交錯切換才可以正常執行,這種情況就勢必造成整個系統運行質量的下降。

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運算、視頻處理、音頻處理等諸多多媒體應用起到全面強化的作用。S SE指令與3DNow!指令彼此互不兼容,但SSE包含了3DNow!技術的絕大部分功能,只是實現的方法不同。SSE兼容MMX指令,它可以通過SIMD和單時鍾周期並行處理多個浮點數據來有效地提高浮點運算速度。

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指令集的。

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

3D Now !指令集
由AMD公司提出的3DNow!指令集應該說出現在SSE指令集之前,並被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做最佳化的軟體中能獲得更好的效能。

目前最新的Intel CPU可以支持SSE、SSE2、SSE3指令集。早期的AMD CPU僅支持3DNow!指令集,隨著Intel的逐步授權,從Venice核心的Athlon 64開始,AMD的CPU不僅進一步發展了3DNow!指令集,並且可以支持Inel的SSE、SSE2、SSE3指令集。不過目前業界接受比較廣泛的還是Intel的SSE系列指令集,AMD的3DNow!指令集應用比較少。

⑼ SSE4指令集的內容

SSE4:全名為Streaming SIMD Extension 4,被視為繼2001年以來最重要的媒體指令集架構的改進,除擴展Intel 64指令集架構外。據了解,SSE4將分為4.1版本及4.2版本,共新增47條指令,指令如右圖:
據Intel官方數據顯示,近期與多間軟體公司全力合作,2008 年第一季將有21款軟體支持SSE4指令集,包括影像編碼及播放軟體、數字影像內容處理軟體及3D游戲核心,性能提高20%至110%不等。
主要構成
IntelSSE4 由一套全新指令構成,旨在提升一系列應用程序的性能和能效。Intel SSE4 構建於英特爾64指令集架構(Intel64 ) (ISA)。Intel SSE4 是英特爾與其獨立軟體開發商 (ISV) 團體精誠合作的成果,它可以支持開發人員輕松改進產品,同時保持必要的應用級兼容性,以適應處理器不斷迭代的需求。
自1999年多媒體指令集問世以來,已經經過了九年的時間。
主要分類
Penryn 支持 47 條 IntelSSE4 指令,包括矢量化編譯器和媒體加速器指令。未來的英特爾處理器將支持其餘指令,而軟體也將能從程序的角度檢測出處理器支持哪些 Intel SSE4 指令。
從指令數目上看,SSE4指令增加了的指令改進了整數和浮點操作。SSE4指令集將分為兩個版本:4.1和4.2,SSE4.1版本隨著45nm Penryn發布,而SSE4.2版本將會隨著下一代架構Nehalem發布。
Penryn處理器SSE4指令集解析
Penryn處理器搭載了最新的SSE4指令集,SSE4(Streaming SIMD Extensions 4)是英特爾自從SSE2之後對ISA擴展指令集最大的一次的升級擴展,它將會隨著Penryn處理器陸續應用於台式機平台、移動平台和伺服器中……
它將會隨著Penryn處理器陸續應用於台式機平台、移動平台和伺服器中。據目前所致,SSE4包括大約50條新指令,Penryn通過這些新指令集,增強了從媒體應用到高性能計算應用領域的性能,同時還利用一些專用電路實現對於特定應用加速。
從指令數目上看,SSE4的47條指令增加了的指令改進了整數和浮點操作。支持DWORD和QWORD操作,新的單精度FP操作、快速寄存器操作、面向性能優化的內存操作等等,包括了圖形、圖像、數據裝載各方面的革新,因此稱其為SSE2以來最大的指令集變動也是不為過的。利用支持SSE4指令集的編譯器編譯之後,包括圖形/圖像處理、視頻處理、2D/3D創作、多媒體、游戲、內存敏感負載、高性能計算等應用都會受益。
SSE4指令集的具體指令如下圖所示,按照目前的資料,SSE4指令集還將分為兩個版本:4.1和4.2,SSE4.1版本將隨著45nm Penryn發布,而SSE4.2版本將會隨著Penryn的下一代Nehalem發布,4.1將包括47條指令,4.2將包括7條指令,因此下圖的指令數目實際上並不是47,未來的SSE4.2指令數目也可能會有變動。
對於Nehalem的SSE4.2,Intel的Gelsinger介紹說,這7條指令集的用途各有不同,比如有面向CRC-32和POP Counts等特定應用的,有特別針對XML等的流式指令。Gelsinger稱,新指令集可以將256條指令合並在一起執行,從而讓XML類工作的性能提高3倍。
SSE4——Penryn搭載的SSE4.1指令集主要分為三個部分,分別是SSE4視頻編碼加速部分、SSE4圖形加速部分和SSE4流載入部分,其中SSE4視頻編碼加速部分包括了14條指令,用於加速4x4絕對差和、子像素過濾一擊數據查找方面的性能。
在進行視頻編碼時,需要進行大量的Motion Estimation(動態預測),動態預測是視頻編碼過程中極其重要的一個環節,它的演算法效率對整個編碼效率有很大的影響,而這個動態預測需要進行大量的SAD(Sums of Absolute Difference,差分絕對值和)的運算,該運算是大部分視頻編碼演算法中運動估計一步常採用的方法。SAD演算法將會在相鄰兩個連續視頻幀中找出一個大塊的運動情況,以紀錄其運動數據代替紀錄像素數據而節約存儲容量、壓縮視頻。為此,SAD需要計算兩個大塊中每一組對應的像素值之間絕對差值的累加和。這本身就是一個非常復雜的大數據量運算動作,即使依靠SIMD指令的一條指令就處理大量數據的優勢,要組合成SAD操作代碼也需要大量的指令。
現在,SSE4指令集內特別加入了SAD加速運算指令,只需要一條指令就可以快速高效地完成這些工作。例如,在SSE4之前,一個SAD工作代碼如下:
非常的冗長繁瑣,而在有了SSE4之後,這些指令就可以簡化為一條指令:
MPSADBW xmm0,xmm1,0

⑽ SSE、SSE2、SSE3指令集的區別

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運算、視頻處理、音頻處理等諸多多媒體應用起到全面強化的作用。S SE指令與3DNow!指令彼此互不兼容,但SSE包含了3DNow!技術的絕大部分功能,只是實現的方法不同。SSE兼容MMX指令,它可以通過SIMD和單時鍾周期並行處理多個浮點數據來有效地提高浮點運算速度。
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指令集的。
SSE3指令集 SSE3(Streaming SIMD Extensions 3,Intel官方稱為SIMD 流技術擴展 3或數據流單指令多數據擴展指令集 3)指令集是Intel公司在SSE2指令集的基礎上發展起來的。相比於SSE2,SSE3在SSE2的基礎上又增加了13個額外的SIMD指令。SSE3 中13個新指令的主要目的是改進線程同步和特定應用程序領域,例如媒體和游戲。這些新增指令強化了處理器在浮點轉換至整數、復雜演算法、視頻編碼、SIMD浮點寄存器操作以及線程同步等五個方面的表現,最終達到提升多媒體和游戲性能的目的。Intel是從Prescott核心的Pentium 4開始支持SSE3指令集的,而AMD則是從2005年下半年Troy核心的Opteron開始才支持SSE3的。但是需要注意的是,AMD所支持的SSE3與Intel的SSE3並不完全相同,主要是刪除了針對Intel超線程技術優化的部分指令。 3D Now !指令集 由AMD公司提出的3DNo。

熱點內容
fpga編程語言 發布:2024-10-06 10:29:24 瀏覽:341
python按時間排序 發布:2024-10-06 10:02:50 瀏覽:214
安卓收款機下載什麼應用能收款 發布:2024-10-06 09:38:29 瀏覽:1000
java初級工程師面試題 發布:2024-10-06 09:37:49 瀏覽:217
知鳥在哪裡修改密碼 發布:2024-10-06 09:37:10 瀏覽:303
怎麼更改微信錢包密碼 發布:2024-10-06 09:28:08 瀏覽:549
控制中心不支持配置怎麼辦 發布:2024-10-06 09:16:39 瀏覽:811
地暖存儲罐 發布:2024-10-06 09:10:19 瀏覽:580
搭建模型伺服器 發布:2024-10-06 09:05:23 瀏覽:845
java使用類 發布:2024-10-06 09:05:22 瀏覽:931