← |
2024年11月 |
→ |
日 |
月 |
火 |
水 |
木 |
金 |
土 |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
|
26 |
27 |
28 |
29 |
30 |
|
・MultiMedia eXtensionのこと。
IntelのMMXPentium以降のIA32プロセッサに搭載されているマルチメディア拡張命令のこと。SIMD技術(Single Instruction/Multiple Data:1つの命令で複数データを取り扱う)の一つ。
通常、CPUはレジスタと呼ばれる小さなメモリ上で演算などを行う。一般的なIA32なら32bitの整数レジスタと、80bitの浮動小数点レジスタをそれぞれ数個ずつ持っている。
しかし、0〜65535しか取り扱わない演算なら16bit、0〜255しか取り扱わないなら8bitもあれば事が足りる。
実際、ゲームなどでは、計算速度を上げるために、人間の目には分からない程度に計算の精度を落とすことはよく行われる。
また、画像の描画・動画の再生・音声の再生など、いわゆるマルチメディア系の演算は、大量のデータに対して同じ計算を行うことがほとんどである。
したらば、8bit演算で事足りる計算なら、80bitの浮動小数点レジスタのうち64bitを利用して、8つの計算を同時にしちゃえ!というのがMMX。
しかし、せっかくのMMX技術も、普通のコンパイラでは、どこをMMXにすれば効率が上がるか等は判断してくれることはない。つまり、プログラマはMMXを使うときには、明示的にアセンブラなどで書いて利用する必要がある。よほど新しいことをしなければ、何処かにライブラリがあるからそれを使うのも一つの手ではある。
もっとも、Intel謹製のコンパイラ等はある程度MMXコードを自動的に生成してくれたり、専用の書式でプログラマの書いたMMXのコードを最適化してくれたり、大変便利なコンパイラも存在したりするが、結構良い値段がするのも事実。 --- 某フリーの開発環境のC開発プラグインに、Intelコンパイラが付いてくる様になるなんて、時代は変わった・・・orz |
00:40, Thursday, Jun 15, 2006 ¦ 固定リンク
¦ 携帯
■コメント
■コメントを書く
※コメントの受け付けは終了しました
|
|