SSE4.2簡介 SSE4.2
指令集 新增的部分主要包括STTNI(STring & Text New Instructions)和ATA(Application Targeted Accelerators)兩個部分。以往每一次的SSE指令集更新都主要體現於
多媒體指令集 方面,不過此次的SSE4.2指令集卻是加速對XML文本的字元串操作、存儲校驗等。
更具體地說,SSE4.2 加入七個新指令:
CRC32 、PCMPESTRI、PCMPESTRM、PCMPISTRI、PCMPISTRM、PCMPGTQ 與 POPCNT。
英特爾表示,採用SSE 4.2
指令集 後,XML的解析速度最高是原來的3.8倍,而
指令周期 節省可以達到2.7倍。此外,在ATA領域,SSE 4.2指令集對於大規模數據集中處理和提高通信效率都會發揮應有的作用,這些對於企業IT套用顯然是有幫助的。當然,SSE 4.2指令集只有在軟體對其支持後才會生產效果,相信Nehalem-EP上市,相關的最佳化與升級屆時就會出現。
SEE4指令集家族介紹 SSE4 的英文全稱是:Streaming SIMD Extensions 4,是
英特爾 自從
SSE2 之後對ISA
擴展指令集 最大的一次的升級擴展。新
指令集 增強了從多媒體套用到
高性能計算 套用領域的性能,同時還利用一些專用電路實現對於特定套用加速。
從指令數目上看,SSE4指令增加了的指令改進了整數和浮點操作,支持
DWORD 和
QWORD 操作,新的
單精度 FP操作、快速
暫存器 操作、面向性能最佳化的記憶體操作等等,包括了圖形、圖像、
數據裝載 各方面的革新,因此稱其為SSE2以來最大的指令集變動也是不為過的。利用支持
SSE4指令集 的
編譯器 編譯之後,包括圖形/圖像處理、
視頻處理 、2D/3D創作、多媒體、遊戲、記憶體敏感負載、
高性能計算 等套用都會受益。
SSE4指令集分為兩個版本:4.1和4.2,SSE4.1版本隨著45nm Penryn發布,而SSE4.2版本會隨著下一代架構
Nehalem 發布,4.1包括47條指令,4.2包括7條指令。
技術領先 強大的SSE4指令集解析 據
Intel 指出,在套用
SSE4指令集 後,
Penryn 增加了2個不同的32Bit向量整數乘法運算支持,引入了8位無符號 (
Unsigned )最小值及最大值運算,以及16Bit 及32Bit 有符號 (Signed) 及無符號運算,並有效地改善
編譯器 效率及提高向量化整數及
單精度 代碼的運算能力。同時,SSE4 改良插入、提取、尋找、離散、跨步負載及存儲等動作,令向量運算進一步專門化。
不僅如此,Intel SSE4指令集還進一步增強訊編碼效果,例如可同時處理8個4-byte寬度的SAD(Sums of Absolute Differences)運算,常用於新一代高清影像編碼如VC.1及
H.264 等規格中,令
視頻編碼 速度進一步提升。因此在播放高清視頻的時候,即使在
軟解 的情況下也同樣遊刃有餘。
有效地改善編譯器效率及提高向量化整數及單精度代碼的運算能力
SSE4 構建於
英特爾 64
指令集架構 (Intel 64 Instruction Set Architecture) (ISA),該架構是開發 32 位和 64 位套用最為廣泛套用的電腦架構。Intel SSE4 包含 54 條指令,主要分為兩類:
矢量化 編譯器 和媒體加速器,以及高效加速字元串和文本處理。矢量化編譯器和媒體加速器可提供高性能的編譯器函式館,如
封包 (同時使用多個
運算元 )整數運算和
浮點運算 ,可生成性能最佳化型代碼。此外,它還包括高度最佳化的媒體相關運算,如絕對差值求和、浮點
點積 和記憶體負載等。矢量化編譯器和媒體加速器指令可改進音頻、視頻和圖像編輯套用、
視頻編碼器 、3D 套用和遊戲的性能。高效加速字元串和文本處理包含多個壓縮字元串比較指令,允許同時運行多項比較和搜尋操作。由此受益的套用包括資料庫和數據採掘套用,以及那些利用病毒掃描和
編譯器 等分析、搜尋和
模式匹配 算法的套用。
SSE4加入了6條浮點型點積運算指令,支持
單精度 、雙精度浮點運算及浮點產生操作,且IEEE 754指令 (Nearest, -Inf, +Inf, and Truncate) 可立即轉換其路徑模式,大大減少延誤,這些改變會對遊戲及 3D 內容製作套用有重要意義。此外,SSE4加入串流式負載指令,可提高以圖形幀緩衝區的讀取數據頻寬,理論上可獲取完整的快取
快取 行,即每次讀取64Bit而非8Bit,並可保持在臨時緩衝區內,讓指令最多可帶來8倍的讀取頻寬效能提升,對於視訊處理、成像以及
圖形處理器 與
中央處理器 之間的共享數據套用,有著明顯的效能提升。
統一CPU和GPU,Nehalem時代來臨 Nehalem 微架構 最高支持4顆處理器的Quick Path多路伺服器環境,單一晶片最高可擁有2、4及8顆核心,支持經改良的Hyper-Theading技術,令單顆處理器最高可支持16 Threads,而且Nehalem架構中的Havendale亦會內建繪圖核心。新增SSE4.2
指令集 及ATA指令集令系統性能全面提升,令人期待。此外,新一代Nehalem會放棄FSB設計,採用全新的Quick Path Interconnect架構,已得知伺服器版本的Nehalem處理器最高可擁有4組Quick Path Interconnect,並至少可組成四顆處理器的數據可直接互換的4Ways伺服器架構。
英特爾每次在
快取 和指令集上的小小改進都會對處理器的性能產生質的變化。最新的45nm Nehalem產品中會出現第二代
SSE4 技術,這比45nm處理器更為強大,可以看成是一種流
SIMD 擴展:SSE 4.2。據了解,Nehalem包含一個全新的ATA中心和文字與字元串處理引擎,這意味著該處理器對於文本的處理性能有很大提升。此外,基於
XML檔案 作為病毒定義的反病毒軟體也可能因此而受益。
對於Nehalem的SSE4.2,
Intel 的Gelsinger介紹說,這7條
指令集 的用途各有不同,比如有面向CRC-32和POP Counts等特定套用的,有特別針對XML等的流式指令。Gelsinger稱,新指令集可以把256條指令合併在一起執行,從而讓XML類工作的性能提高3倍。
預計在2009年的第二季末,
Intel 會推出內建繪圖核心的處理器,
核心代號 為Havendale,這是一顆針對主流級市場的雙核心處理器,採用45nm製程,支持
SMT (Simultaneous Multi-Threading),L2 Cache容量最高為4M。雖然同樣內建
記憶體控制器 及PCI-Express繪圖接口,但它卻不是原生設計,Havandale把繪圖核心、PCI-Express繪圖接口及記憶體控制器製作成一顆晶片,與
處理器核心 採用MCP(Multi-Chip Package)封裝在一起,兩者採用Quick Path Interconnect連線。相信大家更關心的是Intel能否真的把CPU和
GPU 真正的同一!
新老對決 SSE4指令集絕對值得期待 Intel 最新45nm處理器還加入了0.5
倍頻 調節,增加了
SSE4指令集 ,
Wolfdale 增加了2個不同的32Bit向量整數乘法運算支持,引入了8 位無符號 (
Unsigned )最小值及最大值運算,以及16Bit 及32Bit 有符號 (Signed) 及無符號運算,並有效地改善編譯器效率及提高向量化整數及
單精度 代碼的運算能力。同時,SSE4 改良插入、提取、尋找、離散、跨步負載及存儲等動作,令向量運算進一步專門化。
此外,
SSE4 加入串流式負載指令,可提高以圖形幀緩衝區的讀取數據頻寬,理論上可獲取完整的快取快取行,即每次讀取64Bit而非8Bit,並可保持在臨時緩衝區內,讓指令最多可帶來8倍的讀取頻寬效能提升,對於視訊處理、成像以及
圖形處理器 與
中央處理器 之間的共享數據套用,有著明顯的效能提升。
在SSE4指令集中,共引入了47條新的多媒體運算指令。其中一條“streaming load instruction”流載入指令引起了廣泛的注意。該指令為16bit同步載入指令,但載入結果會存儲在高優先權的臨時流緩衝中,繞過普通的CPU Cache。這一指令有利於GPU從CPU中高速共享數據,加速圖像處理。
從Intel 45nm產品的性能以及規格來看都要比上一代的65nm產品有了長足的進步,同時在
超頻 潛力上又有了一個質的飛躍。這讓更多的I飯們看到衝擊極限的希望。而且由於45nm製程在成本上會更低,因此在中低端市場的競爭中Intel 45nm製程的新處理器更具有衝擊力。
Nehalem微架構SSE4.2全新指令集 SSE是
英特爾 提出的即
MMX 之後新一代CPU指令集,最早套用在PIII系列CPU上。已經得到了Intel PIII、P4、Celeon、Xeon、AMD Athlon、
duron 等系列CPU的支持。而更新的
SSE2指令集 僅得到了P4系列CPU的支持,這也是為什麼這篇文章是講SSE而不是
SSE2 的原因之一。另一個原因就是SSE和SSE2的
指令系統 是非常相似的,SSE2比SSE多的僅是少量的額外浮點處理功能、64位
浮點數 運算支持和64位整數運算支持。
SSE為什麼會比傳統的浮點運算更快 因為它使用了128位的
存儲單元 ,這對於32位的
浮點數 來講,是可以存下4個的,也就是說,SSE中的所有計算都是一次性針對4個浮點數來完成的,這種批處理當然就會帶來效率的提升。再來回顧一下SSE的全稱:Stream SIMD Extentions(流
SIMD 擴展)。SIMD就是single instruction multiple data,連起來就是“數據流單指令多數據擴展”,從名字人們就可以更好的理解SSE是如何工作的了。
提升的SSE4.2 SSE4
指令集 被認為是2001年以來
Intel 最重要的指令集擴展,包含54條指令。 Intel在
Penryn 處理器中加入了對SSE4.1的支持,共增加了47條新指令,提升了處理器在圖形、3D圖像與遊戲、
視頻編碼 與影音處理等方面的性能表現。本次在
Nehalem 處理器中,進一步支持了SSE4.2指令集。SSE4.2完整的實現了
SSE4指令集 ,相對於SSE4.1加入了7條新指令。
雖然SSE從理論上來講要比傳統的
浮點運算 會快,但是他所受的限制也很多,首先,雖然他執行一次相當於四次,會比傳統的浮點運算執行4次的速度要快,但是他執行一次的速度卻並沒有想像中的那么快,所以要體現SSE的速度,必須有Stream做前提,就是大量的
流數據 ,這樣才能發揮
SIMD 的強大作用。其次,SSE支持的數據類型是4個32位(總計128位)
浮點數 集合,就是C、
C++語言 中的float[4],並且必須是以16位位元組
邊界對齊 的(稍後會以代碼來進行闡釋,關於邊界對齊的概念,讀者可以參考論壇上的其它文章,都會有很詳細的解答,這裡就恕不贅述了)。因此這也給輸入和輸出帶來了不少的麻煩,實際上主要影響SSE發揮性能的就是不停的對數據進行複製以適用應它的數據格式。
SSE4.2指令集 大幅最佳化文本處理 英特爾
SSE4指令集 最早出現於
45納米 處理器上,首顆發布的Core 2 Extreme
QX9650 配備了SSE4指令集的第一版,即SSE4.1,憑藉著這一指令集,45納米
酷睿2 處理器的多媒體性能相對於65
納米產品 提升了70%,而在Nehalem Core i7上,預計會迎來SSE4
指令集 的第二版,即SSE4.2。
SSE4.2 人們知道,SSE 4.1版本的指令集增加了47條指令,主要針對向量繪圖運算、
3D遊戲 加速、
視頻編碼 加速及
協同處理 的加速。
英特爾 方面指出,在套用SSE4指令集後,45納米
Penryn 核心額外提供了2個不同的32位向量整數乘法運算支持,並且在此基礎上還引入了8位無符號最小值和最大值以及16位、32位有符號和無符號的運算,能夠有效地改善
編譯器 編譯效率,同時提高向量化整數和
單精度 運算地能力。另外,SSE4.1還改良了插入、提取、尋找、離散、跨步負載及存儲等動作,保證了向量運算地專一化。
經過測試,SSE4.1指令集的處理器比不具備此指令集的同檔次處理器的
視頻編碼 效能提高了70%,在遊戲中也有很明顯的性能提升。而SSE4.2
指令集 則把重點放在了文本處理上。據
英特爾 透露,
Nehalem 的SSE4.2指令集中的7條指令用途各不相同,有面向CRC-32和POP Counts的,也有特別針對XML的流式指令。
帕特·基辛格 表示,SSE4.2指令集可以把256條指令和並在一起執行讓類似XML的工作性能提升3倍!
Intel SSE 4.2 指令集 新一代 Nehalem 微架構基於 Core 微架構的 SSE 4.1
指令集 上,新增了 7 組 SSE 4.2 指令,有別於 SSE 4.1 主要針對加快處理器的多媒體處理,例如圖形顯示、
視頻編碼 及處理、 3D 圖像處理、計算機遊戲等, SSE 4.2 主要針對字元串和文本處理指令套用。SSE 4.2 指令集可再細分為 STTNI 及 ATA 2 個組別; STTNI 主要是加速字元串及文本處理,例如 XML 套用進行高速查找及對比,相較以軟體運算, SSE 4.2 提供約 3.8 倍的速度,提升及節省 2.7 倍
指令周期 ,對伺服器套用有顯著效能改善。
而 ATA 則是用作資料庫中加速搜尋和識別,其中 POPCNT 指令對於提高快速匹配和
數據挖掘 上有很大幫助,能套用於 DNA
基因配對 及語音辨識等,此外, ATA 亦提供硬體的 CRC32
硬體加速 可用於通訊套用上,支持 32Bit 及 64Bit ,相較軟體運算高出至少 6x 以上。
Intel C++
Compiler 10.x 及 Microsoft Visual Studio 2008 VC++ 均支持 SSE 4.2
指令集 , Intel 預期在明年上半年,主要的
伺服器軟體 會加入 SSE 4.2 支持。
Intel 從LGA 1366平台的Core i7-900系列處理器開始支持SSE4.2(Streaming SIMD Extensions 4.2)指令集,據
英特爾 透露,SSE4.2指令集中新增的7條指令用途各不相同,有面向CRC-32和POP Counts的,也有特別針對XML的流式指令。SSE4.2指令集可以將256條指令合併在一起執行,讓類似XML的工作性能得到數倍的性能提升。
實際上我們所說的
SSE4指令集 共包括54條指令,在之前的Core 2處理器上已經實現了47條,被稱為SSE4.1,而最後7條指令得以在Nelalem上實現,被稱為SSE4.2。
Intel 新發布的Lynnfield核心
i7 、i5處理器依然保留了完整的SSE4.2
指令集 ,使CPU在多媒體套用上和XML文本的字元串操作、存儲校驗
CRC32 等方面有明顯性能提升,並沒有因為市場定位而對指令集進行縮減。
SSE4.2指令集 大幅最佳化文本處理 在
45納米 Core架構時代,
Intel 首次為旗下產品加入了SSE4.1
指令集 ,他的出現令45nm工藝產品相比65nm產品的多媒體性能提升了將近70%。在
Nehalem 架構產品上,Intel再一次添加了新的指令集SSE4.2,換來的性能提升自然不言而喻。
SSE 4.1版本的指令集增加了47條指令,主要針對向量繪圖運算、
3D遊戲 加速、
視頻編碼 加速及協同處理的加速。英特爾方面指出,在套用
SSE4指令集 後,45納米
Penryn 核心額外提供了2個不同的32位向量整數乘法運算支持,並且在此基礎上還引入了8位無符號最小值和最大值以及16位、32位有符號和無符號的運算,能夠有效地改善編譯器編譯效率,同時提高向量化整數和
單精度 運算地能力。另外,SSE4.1還改良了插入、提取、尋找、離散、跨步負載及存儲等動作,保證了向量運算地專一化。
經過我們的測試,
SSE4.1指令集 的處理器比不具備此指令集的同檔次處理器的視頻編碼效能提高了70%,在遊戲中也有很明顯的性能提升。而SSE4.2
指令集 則將重點放在了文本處理上。據英特爾透露,
Nehalem 的SSE4.2指令集中的7條指令用途各不相同,有面向CRC-32和POP Counts的,也有特別針對XML的流式指令。
帕特·基辛格 表示,SSE4.2指令集可以將256條指令和並在一起執行讓類似XML的工作性能提升3倍!
總結:即將發布的
酷睿 i5處理器可以看做是Nehalem架構成熟後的產品,因為從這一代開始,北橋的作用真正的被CPU完全取代,並且延續著每瓦性能這一理念。雖然酷睿i5遺憾的取消了
超執行緒技術 ,但是對於普通消費者來講,超執行緒技術的缺失並不會給我們帶來某些不變,反而到為消費者帶來了更低的價格。綜上所述,酷睿i5處理器可以看做是
Nehalem 架構的普及先鋒。
Intel Core i7快取架構巨變 新增SSE4.2 Nehalem 處理器的快取架構相對於之前的
奔騰4 、
酷睿2 產品,也有了較大的變化。隨著
45納米 製程的引入,
酷睿 2處理器的最大
L2快取 已經達到12MB,類似於FSB,繼續無休止地提升L2快取並不一定能帶來明顯的效能改善,因此在Core i7(
酷睿i7 )上,我們看到了一個全新的快取架構。
從Core i7的
快取 架構示意圖可以看出,它選用了共享L3快取的方式來暫存數據。
桌面級 四核心處理器 的產品動用了8MB L3快取。4個核心除了共享8MB L3快取外,每顆核心內部還單獨具備256KB的L2快取,另外還為每顆核心配備了與Core架構極為類似的64KB
L1快取 。
這裡必須說一下快取延遲問題。
45納米 酷睿2 處理器的L2快取延遲周期為15,而
Intel 工程師表示
Nehalem 架構的L3快取可以達到30-40周期,不過每顆核心獨立擁有的通用
L2快取 周期只有12,因此L3帶來的高延遲問題一定程度上由L2進行了彌補。另一方面,4顆核心共享L3
快取 ,在數據命中失敗後可直接重新從記憶體尋找數據,而不是在快取中重新進行偵測。Intel稱Nehalem上的L3快取為Smart Cache,想必也是因為這些原因。
45納米加入了SSE4.1指令集,令處理器的多媒體處理能力得到最大70%的提升。在
Nehalem 架構的Core i7處理器中,SSE4.2指令集被引入,加入了STTNI(字元串文本新指令)和ATA(面向套用的加速器)兩大最佳化指令。
Nehalem架構加入SSE4.2指令集 STTNI主要針對XML進行文檔和數據處理進行最佳化,使這一方面的套用性能達到上一代產品的3.8倍。ATA則主要增加
CRC32 計算校驗碼,另一方面讓POPCNT用來計算一個16/32/64位整數裡面中多少個為1的位。
目前Intel C++ Compiler 10.x和Microsoft Visual Studio 2008 VC++均已經實現了對於SSE4.2的支持。具備SSE4.2指令集的Nehalem Core i7處理器在辦公套用中的性能將得到大幅度提。
SSE4.2提升辦公性能 自Intel 在P3時代加入了SSE(Streaming SIMD Extensions)
指令集 之後,Intel 處理器的多媒體處理能力顯著提升。這次相對於上一版本的SSE4.1,SSE4.2指令集加入了STTNI(字元串文本新指令)和ATA(面向套用的加速器)兩大最佳化指令。STTNI主要針對XML進行文檔和數據處理進行最佳化,使這一方面的套用性能達到上一代產品的3.8倍。ATA則主要增加
CRC32 計算校驗碼,另一方面讓POPCNT用來計算一個16/32/64位整數裡面中多少個為1的位。
目前Intel C++ Compiler 10.x和Microsoft Visual Studio 2008 VC++均已經實現了對於SSE4.2的支持。具備SSE4.2指令集的Nehalem Core i7處理器在辦公套用中的性能將得到大幅度提升。