跳去內容

MMX

出自維基百科,自由嘅百科全書

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

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

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

MMX嘅字面意思

[編輯]

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

技術細節

[編輯]

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

SIMD技術嘅發展

[編輯]

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

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy