静止画/動画再生のニーズが生んだ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よりも穏当な)拡張命令の形でインプリメントしたもの、と考えればいいだろう。
この連載の記事
-
第775回
PC
安定した転送速度を確保できたSCSI 消え去ったI/F史 -
第774回
PC
日本の半導体メーカーが開発協力に名乗りを上げた次世代Esperanto ET-SoC AIプロセッサーの昨今 -
第773回
PC
Sound Blasterが普及に大きく貢献したGame Port 消え去ったI/F史 -
第772回
PC
スーパーコンピューターの系譜 本格稼働で大きく性能を伸ばしたAuroraだが世界一には届かなかった -
第771回
PC
277もの特許を使用して標準化した高速シリアルバスIEEE 1394 消え去ったI/F史 -
第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ロードマップ - この連載の一覧へ