このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第22回

x86 CPUの進化を拡張命令のロードマップでひもとく

2009年10月12日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/)

  • この記事をはてなブックマークに追加
  • 本文印刷

静止画/動画再生のニーズが生んだMMX
発想の元はソフトウェアDSP技術の「NSP」

 というわけで、拡張命令全般の流れを簡単に俯瞰したところで、今回は初期の拡張命令を簡単に紹介したい。

拡張命令の変遷で見たCPUロードマップ

拡張命令の変遷で見たCPUロードマップ

 1997年にインテルは「MMX Pentium」をリリースして、初めて世の中にMMXという拡張命令を公開した。MMXとは「MultiMedia eXtention」の略である。当時この命令が登場した背景には、高品位音声や大サイズの静止画/動画などを、もっとスムーズに取り扱いたいというニーズが登場したことにある。

MMX Pentium

MMX Pentium

 例えば動画。当時では「DVDは無理にしても、せめてVideo CD※2をソフトウェアで再生できる程度の演算能力が欲しい」というニーズがあった。こうしたニーズの場合、データ量が多い反面、処理は一定な事が多い(例えば、MPEGやJPEGの復号の際には逆量子化という作業があるが、これは全部のピクセル値に一定の係数を掛けるだけである)。

※2 CDに記録した映像規格。圧縮方式にはMPEG-1を使い、352×240ピクセル/30fpsで、CD1枚で74分の映像が記録できた。

 こうした目的に適するのが、SIMD(Single Instruction Multiple Data)命令である。MMXの場合、FPU(浮動小数点演算ユニット)用の80bitのレジスターのうち64bit分を使い、以下の3種のいずれかを処理できた。

  • 32bitデータ×2の同時処理
  • 16bitデータ×4の同時処理
  • 8bitデータ×8の同時処理

 先ほどの逆量子化の場合、ピクセルの値は大体8bitで収まるので、うまくするとMMXを使わない場合の8倍に高速化できることになる。こうした形で、「CPU内部の構造を大きく変化させずにSIMD演算性能を付加する」のがMMXの狙いだった。

 実はもっとさかのぼると、このMMXは1995年にインテルが発表した「NSP」(Native Signal Processing)という構想に行き着く。モデムや音声出力、ソフトウェアMIDIといったオーディオ関係のデータ処理のために、CPUにDSP的な機能を付け加えるという構想だった。

 この当時NSPはマイクロソフトのAPIを使わずに独自ドライバーで実現しようとしていた。しかし、マイクロソフトの反発もあって、NSPはお蔵入りとなってしまった。MMXはこのNSPの技術や発想を受け継ぎつつ、これを(NSPよりも穏当な)拡張命令の形でインプリメントしたもの、と考えればいいだろう。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン