複製鏈接
請複製以下鏈接發送給好友

MMX

(多媒體擴展的縮寫)

鎖定
MMX 是MultiMedia eXtensions(多媒體擴展)的縮寫,是第六代CPU芯片的重要特點。MMX技術是在CPU中加入了特地為視頻信號(Video Signal),音頻信號(Audio Signal)以及圖像處理(Graphical Manipulation)而設計的57條指令,因此,MMX CPU極大地提高了電腦的多媒體(如立體聲、視頻、三維動畫等)處理功能。
中文名
MMX
外文名
MultiMedia eXtensions
缺    點
浪費大量的時間在數據的配對上
優    點
極大提高了電腦的多媒體處理功能
廠    商
Intel(英特爾)
系    統
x86
含    義
Intel第六代微處理器

MMX簡介

MMX技術是繼Intel386(TM)處理器(將體系結構擴展至32位)之後對Intel體系結構的最重要的加強。這些指令集能夠加速處理有關圖形、影像、聲音等的應用,MMX 加強了在多媒體處理功能的不足,它可以利用其內建的多媒體指令來模擬3D繪圖的處理、 MPEG的壓縮/解壓縮。立體聲的音效等,只要是軟件支持MMX CPU,即可以取代這些硬件的接口而達到多媒體的功效。 [1] 

MMX特性

MMX技術的基礎是一項稱為單指令、多數據(SIMD)的技術。它使得許多條信息可由一條單一指令來處理,這種平行操作使性能得以大幅度地提高。MMX技術被集成到Intel體系結構的處理器中,同時保持了與現有操作系統(如MS DOS,Windows3.1,Windows95,OS/2UNIX)的充分兼容。除此之外,所有Intel體系結構的軟件將能夠在採用MMX技術的系統中運行。
MMX的另一個特徵是在計算結果超過實際處理能力的時候也能進行正常處理。若用傳統的X86指令,計算結果一旦超出了CPU處理數據的限度,數據就要被截掉,而變成較小的數。MMX利用所謂的“飽和(Saturation)”功能,圓滿的解決了這一問題。 [1] 
除了指令集中增加MMX指令(多媒體增強指令集)外,還將CPU芯片內的L1緩存由原來的16KB增加到32KB(16K指令+16K數據),因此MMX CPU比普通CPU在運行含有MMX指令的程序時,處理多媒體的能力上提高了60%左右。目前CPU基本都具備MMX技術,除P55C和Pentium ⅡCPU還有K6、K6 3D、MII等。 [1] 

MMX缺點

由於MMX的運算指令必須在數據配對整齊的時候才能使用,所以使用MMX指令要比普通的彙編指令多餘許多分組配對的指令,如果運算不是特別的整齊的話,就要浪費大量的時間在數據的配對上,所以説MMX指令也不是萬能的,也有其很大的缺陷。同時MMX指令在處理16位數據的時候才能發揮最大的作用,處理8位數據要有一點技巧。而處理32位數據,MMX指令幾乎沒有什麼加速能力。(考慮分組耗時) [2] 

MMX基本指令集

拷貝指令
movq:64位數據拷貝,如果內存8位對齊的話,是一個64位寫,否則2個32位寫。
movd:32位數據拷貝,注意:如果從內存向MMX寄存器拷貝,MMX高32位清零!
分組指令
分組指令是MMX特有的,所以對於它我們要特別的關注。分組指令基本上可以分為2類,一類是不帶符號緊縮的,一類是帶符號緊縮的。現在我們分別予以介紹:
①punpcklbw / punpcklwd / punpckldq (l表示低位分組,bw8位,wd16位,dq32位):它是簡單的將兩個MMX寄存器的低32位交錯組合為一個64位數據。所以它是不能將長數據轉換為短數據的。
②packuswb 將16位數據轉換為無符號的8位數據。所以可以將兩個MMX寄存器不交錯的合為一個64位數據。
③packsswb/packssdw 將32位-》16位,16位-》8位,都是有符號的數據。
運算指令
加法運算指令:paddb(w)(d):沒有越界保護的加法,當越界的時候僅僅丟棄超出範圍的高位比特,(b)(w)(d)分別為8,16,32位加法;paddsb(w):具有越界保護的有符號加法,當上溢的時候為0x7fff,下溢的時候為0x8000;paddusb(w):具有越界保護的無符號加法,當上溢的時候為0x7fff,下溢的時候為0x0。
減法運算指令同上;add改為sub。
乘法指令:pmullw / pmulhw 是4個16位數據的乘法,pmullw中是結果的低16位,pmulhw是結果的高16位。pmaddwd 乘加指令。 [2] 

MMX其他信息

還有一個MMX的含意:(Matrix Math eXtensions)矩陣數學擴展。
羅馬數字中“MMX”表示“2010”。
在紅色警戒的遊戲中“MMX”擴展名的文件表示能被紅色警戒2和尤里的復仇都能識別的地圖文件。
參考資料