1 / 10

Chapter Eleven The MMX Instruction Set

Chapter Eleven The MMX Instruction Set. さだ. 11.1 Chapter Overview. MMX マルチメディアアプリケーション用に追加された 57 命令 今ではほとんどの CPU が対応している 現在アセンブラプログラマが活躍できる数少ない分野. 11.2 Determining if a CPU Supports the MMX Instruction Set. CPU MMX 対応のと、 MMX 非対応のアプリケーションを両方用意する ソフトウェア工学的には楽 アプリケーション実行中に、アルゴリズムを切り替える

mabyn
Download Presentation

Chapter Eleven The MMX Instruction Set

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter Eleven The MMX Instruction Set さだ

  2. 11.1 Chapter Overview • MMX • マルチメディアアプリケーション用に追加された57命令 • 今ではほとんどのCPUが対応している • 現在アセンブラプログラマが活躍できる数少ない分野

  3. 11.2 Determining if a CPU Supports the MMX Instruction Set • CPU • MMX対応のと、MMX非対応のアプリケーションを両方用意する • ソフトウェア工学的には楽 • アプリケーション実行中に、アルゴリズムを切り替える • CPUがMMX対応かどうかを、CPUIDを取得して判断する • もし23ビット目がONであればMMXに対応している

  4. 11.3 The MMX Programming Environment • MMX対応になって追加されたもの • Eight MMX registers (MM0..MM7). • Four MMX data types (packed bytes, packed words, packed double words, and quad word). • 57 MMX Instructions.

  5. 11.3.1 The MMX Registers • レジスタ • MM0 ~ MM7、64ビットで8つ、データ専用 • FPUレジスタにオーバレイしている • FPU命令と同時に使用できない • FPUレジスタを退避するのはコストが大きい • EMMS (Exit MMX Machine State) 命令を実行するのは50クロックもかかる • FPUとMMXを頻繁に切り替えるのはよくない!

  6. なぜ、こんな仕様に? • 従来のOSを変更する必要がないため • コンテキストスイッチ時に、OSはMMXレジスタをFPUレジスタだと思って保存してくれる • Intelとしてはナイスアイディアだったらしい • とはいえ、OSもすぐに進化してMMXをサポート • 結局、上記のメリットは短期間しかなかった • 今となっては、FPUとMMXを同時に利用できないデメリットのほうが大きい

  7. 11.3.2 The MMX Data Types • 64ビットのレジスタを2,4,8のPacked Bytesに分けて利用 • 一応、そのまま分けずに利用できるが、general ではない • Packed Bytes に並列に命令を実行可能 • SIMD (Single Instruction Multiple Data)

  8. 11.4 The Purpose of the MMX Instruction Set • SIMD • 音楽や映像など、大きなデータに対して計算するような用途に向いている • MMXは何でも計算速度を向上させるわけではない

  9. 11.5 Saturation Arithmetic and Wraparound Mode • Wraparound Mode • 桁溢れが切り捨て • 音の増幅などで効果的 • 例:FF + 02 = 101 ⇒ 01 • Saturation Mode • 値が丸められる • 画像の光度増などで効果的 • 例:FF + 02 ⇒ FF

  10. 11.6 MMX Instruction Operands • MMX命令の基本形 • mmxInstr( source, dest ); • Destはほぼ全てMMXレジスタ • mmxInstr( mmi, mmi ); // i=0..7 • mmxInstr( mem, mmi ); // i=0..7

More Related