SIMD是Single-instruction multiple-data的縮寫。意思是通過一條指令就能夠對若干筆數據進行處理運算。這種指令對于整數型數組運算,或者是圖象像素點運算都極為有利。為了支持這種處理模式,Intel推出了一系列的技術和指令集,這其中包括:
MMX技術
SSE擴展指令集
SSE2擴展指令集
SSE3擴展指令集
SSE3補充指令集
SSE4擴展指令集
所有的技術或是指令集都提供了若干指令用來支持SIMD運算。其運算對象可以是整數型數據或者是浮點數據。
對于SIMD的整數數據運算,可以使用64位MMX寄存器,或者是128位XMM寄存器。而對于SIMD的浮點數據運算,則只能是喲很難過128位的XMM寄存器。
在奔騰II時期,Intel就推出了MMX技術,該技術包括了MMX指令集以及MMX寄存器。MMX寄存器為64位寬度,可以一次性處理8個獨立字節的整數型運算,或者是4個獨立16位的整數型運算,或者兩個獨立的32位整數型運算,或者一個64位整數型運算。
當到了奔騰III時期,Intel又推出了SSE擴展指令集。這些指令可以在XMM寄存器中處理單精度浮點數據,或者在MMX寄存器中處理整數型數據。部分SSE指令提供了對狀態,緩存(Cache)和內存訪問順序等方面的控制。SSE指令集對于圖象處理方面進行了補強。例如3D建模,渲染和視頻解碼等方面。
Intel的奔騰4和至強(Xeon)系列處理器推出后,又增加了SSE2擴展指令集。這些指令可以使用相同的XMM寄存器處理雙精度浮點數據和整數型數據。這樣一來,原本只能處理64位整數型數據的能力得到了提升。除此之外,在對緩存以及內存訪問順序方面,SSE2也提供新的支持。
SSE3擴展指令集伴隨著奔騰4處理器超線程(Hyper-Threading)技術一起發布。SSE3擴展指令集增加了13個新指令用來提高SIMD相關運算的性能。
SSSE3擴展指令集增加了32個指令用來提升SIMD對于整數型數據運算的性能,最早在Intel的Xeon 5100系列和Intel Core 2處理器上使用。
SSE4擴展指令集又增加了54條指令。其中47條指令被稱為SSE4.1,剩下7條指令被稱為SSE4.2。
進入到Intel 64架構后,128位的XMM寄存器由原來的8個,增加到了16個。
再往后,Intel推出了AVX(Advacned Vector Extensions)技術。相比傳統的SIMD相關運算,AVX提供了更為強大的架構支持。主要特點如下:
提供了256位的YMM寄存器,用來擴展原本的XMM寄存器。
相比128為XMM寄存器來說,兩倍效能提升(如果執行時間一致的話)
相比傳統SIMD指令,AVX指令能夠支持3操作數運算,這對于編程來說,提供更好的靈活性。如果只有兩個操作數,勢必有一個操作數中的內容將會被運算結果替換掉。
-
寄存器
+關注
關注
31文章
5359瀏覽量
120792 -
cpu
+關注
關注
68文章
10889瀏覽量
212386 -
SIMD
+關注
關注
0文章
35瀏覽量
10311
原文標題:SIMD:為什么Intel CPU選擇了它?
文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論