MMX
出典: フリー百科事典『ウィキペディア(Wikipedia)』
MMXは、インテルが開発したCPUのSIMD拡張命令セットのひとつで、56個の命令によって成り立っている。MMXはMultiMedia eXtensions、または Multiple Math eXtensionの略であるとされているが、IntelはMMXは略語ではなく一つの語であると主張している。
[編集] 概要
MMXは浮動小数点演算用のレジスタを整数演算用のSIMDレジスタとして転用することで、同時に複数のデータを扱うことで処理能力を向上させる技術である。元々は普段はあまり使用される事のないx87レジスタの有効利用的な観点から発想された。よって、浮動小数点演算とMMX命令を同時に使用する事は不可能である。浮動小数点演算とMMX命令を切り替えるときにはあらかじめレジスタや例外フラグなどを初期化する必要がある場合が多く、切り替え前のレジスタ内の情報は維持されない。これまで別途デジタルシグナルプロセッサ (DSP) に頼らなければ処理できなかった音声、画像、動画などのマルチメディア関係の処理をCPUのみで扱うことができるようになった。なお、アプリケーションソフトウェア側がMMXに対応していなければ性能の向上を望むことはできない。
インテルはまず、すでにリリースしていたPentiumにMMXを付加した。この製品はMMX Pentium(開発コードネーム P55C )と呼ばれるものであり、これを契機に以後のインテルやその他のメーカーのIA-32に対応するCPUに搭載されることになった。また、AMDのK6などMMXを搭載する他社製品も存在する。インテルは他社がMMXという名称を使用していることに対し、これを停止するよう求め訴訟問題に発展したが、最終的には各社間で和解している。
MMXによって高速化できるのは整数演算処理に限られ、浮動小数点演算処理を多用する3Dグラフィックス関連の処理能力の向上には期待できない。浮動小数点演算処理の高速化はPentium III以降に搭載されるStreaming SIMD Extensions(SSE)を待つこととなる。競合関係にあるAMDはいち早く浮動小数点演算も高速化されたSIMD拡張命令セット3DNow!を発表していたことがあり、インテルはAMDより浮動小数点演算に関わる命令セットの開発に遅れをとることとなった。
現在はSSE命令が拡張され整数演算にも対応するなど、x86アーキテクチャにも本格的なSIMD処理機構が導入された事により、x87レジスタを間借りする形で実装されたMMX命令は既にその役割を終えている。現在では、新規ソフトウェア開発においてMMX命令が使用される事はなく、過去に開発されたソフトウェアの互換性のみを目的に実装されている。
[編集] 歴史
- 1997年 1月: インテルがMMX Pentiumを発表。
- 1997年 4月: AMDがMMXに対応したK6プロセッサを発表。
- 1997年 5月: インテルがPentium ProにMMXを付加し高速化したPentium IIプロセッサを発表。
- 1998年 5月: AMDが浮動小数点演算処理を高速化する3DNow!搭載のK6-2プロセッサを発表。
- 1999年 2月: インテルが浮動小数点演算処理を高速化するStreaming SIMD Extensions搭載のPentium IIIプロセッサを発表。
[編集] 関連項目
- SIMD
- Streaming SIMD Extensions (SSE)
- 3DNow!
- AltiVec (Velocity Engine)

