ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
AMDが開発し1998(平成10)年に登場したAMD独自のSIMD命令セットで、MMX上位互換機能の名。
MMXは整数演算のみに対応しており、浮動小数点演算には未対応だった。3DNow!は、MMXの弱点を克服するためにMMX命令に21個の新命令を追加したもので、特に浮動小数点演算処理に重点の置かれた拡張がなされている。
具体的には、64ビットのMMXレジスターに32ビット単精度の浮動小数点数2個を格納し、この2個の数値に対して同時に演算を行なえるようにした。更に、3DNow!は2個のMMXユニットが完全に並列動作でき、実質で最大4個の新たな浮動小数点演算命令の実行が可能となる。
元々のMMXが同時に演算できるのは整数のみであり、浮動小数点演算を行なうには数値演算コプロセッサー(FPU)に切り替える必要があった。しかも切り替えるのには多くの時間がかかるという弱点もあった。3DNow!はその弱点を改善したものと言える。
機能の有無は、拡張CPUID対応のプロセッサーで、かつEAX=80000001HでCPUID命令を実行した結果EDXレジスターのビット31が1かどうかで確認できる。
浮動小数点演算性能では、ピーク時で
である。参考までに、IntelのMMX製品では、
なので、同クロック比で優に4倍の3D処理性能を実現させた。
この拡張により3Dグラフィックス処理の高速化が期待され、MPEG-2動画再生やDVDなどで使われているDolby Digital(AC-3)のデコードも可能になる。
Bulldozer/Bobcat世代のCPUコアから、3DNow!シリーズのサポートを終了した。
AMD64アーキテクチャーからSSE/SSE2を標準搭載しており、3DNow!の機能はSSEの機能で代替可能である。その上、現実に3DNow!は殆ど使われていなかった。このため、一つの時代にピリオドが打たれることになった。
当時のIntelのSIMDコマンドは整数演算のMMXのみで、浮動小数点演算の性能を改善する3DNow!は先進的な試みではあった。CyrixやIDTといった他社にも導入されるなどし、「午後のこ〜だ」などのソフトウェアが対応するなどしたが、やはり独自実装のコマンドは使いにくいものだったようで、普及することは無かった。
段階的な収束として、SSE登場後にAMDは「3DNow! Professional」としてSSE命令との互換性を取り始め、AMD64アーキテクチャーにSSE2までを統合し、そして3DNow!を廃止することになった。
3DNow!がなくてもSSEがあれば現実問題として開発者は困らない。但し、3DNow!の機能はprefetchとprefetchw命令として残るため、3DNow!が跡形もなく消えるという訳でも無いようである。
ちなみに、prefetchとprefetchwのオペコードである0F 0D xxは、Intelの仕様書では「NOP Ev」となっており、NOP命令として定義されている。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます