静止画/動画再生のニーズが生んだMMX
発想の元はソフトウェアDSP技術の「NSP」
というわけで、拡張命令全般の流れを簡単に俯瞰したところで、今回は初期の拡張命令を簡単に紹介したい。
1997年にインテルは「MMX Pentium」をリリースして、初めて世の中にMMXという拡張命令を公開した。MMXとは「MultiMedia eXtention」の略である。当時この命令が登場した背景には、高品位音声や大サイズの静止画/動画などを、もっとスムーズに取り扱いたいというニーズが登場したことにある。
例えば動画。当時では「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よりも穏当な)拡張命令の形でインプリメントしたもの、と考えればいいだろう。
この連載の記事
-
第770回
PC
キーボードとマウスをつなぐDINおよびPS/2コネクター 消え去ったI/F史 -
第769回
PC
HDDのコントローラーとI/Fを一体化して爆発的に普及したIDE 消え去ったI/F史 -
第768回
PC
AIアクセラレーター「Gaudi 3」の性能は前世代の2~4倍 インテル CPUロードマップ -
第767回
PC
Lunar LakeはWindows 12の要件である40TOPSを超えるNPU性能 インテル CPUロードマップ -
第766回
デジタル
Instinct MI300のI/OダイはXCDとCCDのどちらにも搭載できる驚きの構造 AMD GPUロードマップ -
第765回
PC
GB200 Grace Blackwell SuperchipのTDPは1200W NVIDIA GPUロードマップ -
第764回
PC
B100は1ダイあたりの性能がH100を下回るがAI性能はH100の5倍 NVIDIA GPUロードマップ -
第763回
PC
FDD/HDDをつなぐため急速に普及したSASI 消え去ったI/F史 -
第762回
PC
測定器やFDDなどどんな機器も接続できたGPIB 消え去ったI/F史 -
第761回
PC
Intel 14Aの量産は2年遅れの2028年? 半導体生産2位を目指すインテル インテル CPUロードマップ -
第760回
PC
14nmを再構築したIntel 12が2027年に登場すればおもしろいことになりそう インテル CPUロードマップ - この連載の一覧へ