コンテンツにスキップ
Wikipedia

MMX

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。CeraBot (会話 | 投稿記録) による 2012年6月20日 (水) 19:22 (個人設定で未設定ならUTC)時点の版 (r2.7.1) (ロボットによる 変更: ca:MMX)であり、現在の版 とは大きく異なる場合があります。

CeraBot (会話 | 投稿記録)による2012年6月20日 (水) 19:22時点の版 (r2.7.1) (ロボットによる 変更: ca:MMX)
曖昧さ回避 ローマ数字については「2010」をご覧ください。
MMX Pentium プロセッサ
(166MHz)

MMXは、インテル (Intel) が同社のIA-32プロセッサ向けに開発したSIMD拡張命令セットのひとつ。56個の命令を含む。MMXは、MultiMedia eXtensionsの略であるとの説があったが、Intelは、略語ではない一つの語であるとしている。

概要

MMXは、x87 浮動小数点演算用のレジスタを転用し、1つの命令で同時に複数の整数演算を扱うSIMD技術である。このためMMXはFPUレジスタにマップされ、浮動小数点演算とは排他制御となる。DSPの得意分野である音声画像動画などのマルチメディア関係の処理を、CPUで扱う際の性能向上が期待されたが、アプリケーションソフトウェア側がMMXを用いるようにプログラムされていなければ、MMXによる性能向上の恩恵は受けられない。

後に、専用のレジスタを使うSSE命令セットが拡張され、より複雑なデータデータ処理や浮動小数点の演算にも対応。実質的にMMXは不要となったため、現在インテルでは、アプリケーション開発の最適化にあたってMMXの使用を避ける事を推奨している。命令の種類や処理能力で劣るMMX命令は、現在は主に過去の資産との互換性のみを目的に実装・提供されている。

インテルはまず、すでにリリースしていたPentiumの新バージョン (開発コードネーム P55C ) にMMXを搭載、Pentium Processor with MMX Technologyと称して発売。一般にはMMX Pentiumという呼称で浸透した。インテルは、これ以降に発売したIA-32アーキテクチャのプロセッサの多くに、MMXを搭載している。また、他のメーカーのIA-32互換プロセッサのいくつかにも搭載されている。例えば、AMDK6などである。インテルは他社がMMXという名称を使用していることに対し、これを停止するよう求め訴訟に発展したが、最終的には各社間で和解した。

性能と限界

MMXは元々、一般的なアプリケーションにおいて常用される事の少ない浮動小数点演算のレジスタの有効利用の観点から発想された。x87命令とMMX命令とを混在させる場合、最初のMMX命令の実行時に必要な初期化が自動で行われるが、x87命令の実行前には専用の命令を実行して状態をクリアする必要がある。いずれの切り替え時にも、大きな実行時間のペナルティが発生する可能性が大きい上、レジスタの状態も維持や保存はされない。他方、新たに専用レジスタを増やさず既存のx87命令を流用したため、コンテキストスイッチ毎の新設レジスタのセーブなどのオペレーティングシステムのサポートを待つ必要はなかった。

また、MMXによって高速化できるのは整数演算処理に限られ、浮動小数点演算処理を多用する3Dグラフィックス関連の処理能力の向上は期待できない。インテルと競合するAMDは、先んじて浮動小数点演算も扱えるSIMD拡張命令セット3DNow!を発表し、同社のK6-2プロセッサに搭載。インテルはAMDより浮動小数点用のSIMD命令セットの提供に遅れをとった。インテルの浮動小数点SIMD演算による高速化はPentium III以降に搭載されるSSEを待つこととなる。

歴史

関連項目

ウィキメディア・コモンズには、マイクロプロセッサ に関連するメディアがあります。

AltStyle によって変換されたページ (->オリジナル) /