MMX

MMX是由英特爾開發嘅一種SIMD多媒體指令集，一共有57條指令。佢喺1996年集成喺英特爾奔騰MMX處理器上，以提高多媒體數據嘅處理能力。

佢嘅優點係增加咗處理器關於多媒體方面嘅處理能力，缺點係佔用浮點數暫存器進行運算以至於MMX指令同浮點數操作唔可以同時工作。為咗減少喺MMX同浮點數模式切換之間所用嘅時間，程序員儘可能咁減少模式切換嘅次數，亦即係話，呢兩種操作喺應用上係互斥的。AMD在呢個基礎上發展出3DNow!指令集。

3D Now!發佈咗一年之後，英特爾喺MMX基礎上發展出SSE指令集，用嚟取代MMX。依家，新開發嘅程式唔再用MMX嚟最佳化軟件執行效能，而係改用如SSE、3DNow!等更容易最佳化效能嘅新一代多媒體指令集，不過目前嘅處理器大多重可以執行針對MMX最佳化嘅早期軟件。

MMX嘅字面意思
1997年，英特爾公司起訴AMD公司同Cyrix公司非法使用咗商標MMX。随後呢個起訴訟庭外和解，AMD公司承認MMX係英特爾嘅商標，同意AMD公司使用MMX作為一項技術嘅名。喺呢場訴訟入面，AMD披露MMX係英特爾命名嘅矩陣數學擴展嘅字母縮寫。

技術細節
MMX暫存器，叫做MM0至MM7，實際上就係處理器内部80比特字長嘅浮點暫存器棧st到st嘅尾數部分嘅復用。由於浮點棧暫存器嘅高16位元未俾MMX技術使用，因此呢16位元都置為1，因此從棧暫存器嘅角度看，浮點值係NaN或者Infinities，呢個可以用喺區分暫存器係處於浮點數棧狀態定係MMX狀態。作為MMX寄存器都係直接訪問。利用咗裝配數據類型嘅概念，每個MMX寄存器嘅64位元可以睇做2個32位整數、或者4個16位整數、或者8個8位整數，從而可以執行整數SIMD運算。呢個對1990年代中期嘅2D、3D計算嘅加速都重係好有意義，因為當時嘅電腦嘅圖形處理器重係好唔發達。但而家喺MMX整數SIMD運算對於圖形運算嚟講已經係多餘嘅技術啦。不過MMX嘅飽和算術運算對於一啲數字信號處理應用都重係有用嘅。

SIMD技術嘅發展
繼MMX技術之後，Intel又喺1999年喺奔騰III處理器上推出SSE技術，引入咗新嘅128位元闊嘅暫存器集，叫做XMM0到XMM7。呢啲XMM暫存器用喺4個單精度浮點數運算嘅SIMD執行，並可以同MMX整數運算或者x87浮點運算混合執行。2001年喺奔騰4上引入咗SSE2技術，進一步擴充咗指令集，令到XMM暫存器上可以執行8/16/32位元闊嘅整數SIMD運算或者雙精度浮點數嘅SIMD運算，令到SIMD技術基本完善。

英特爾
並發計算
x86架構