3DNow!とは
3DNow!(スリーディーナウ)は、
アドバンスト・マイクロ・デバイセズ (AMD) が開発した
CPUの
SIMD(Single Instruction, Multiple Data)拡張命令セット、およびその拡張版の総称です。
ドルビーデジタルのデコードや3D処理の高速化を主な目的としていました。
概要
インテルの
MMXは
整数演算のみをサポートし、浮動小数点演算には対応していませんでした。これに対し、3DNow!は
MMXに21個の命令を追加することで浮動小数点演算の高速化を図りました。具体的には、
64ビットの
MMXレジスタに
32ビットの浮動小数点演算データを2つ格納し、それぞれを独立して演算できるようにしています。さらに、3DNow!では2つの
MMXユニットが並列動作可能であるため、最大4つの浮動小数点演算を同時に実行することができました。
3DNow!は、AMDの
CPUであるK6-2や、IDTのWinChip 2から搭載が開始されました。当初、AMD、
サイリックス、IDTの各社がそれぞれ異なる仕様を発表していましたが、AMDの働きかけにより、最終的には3社とも3DNow!を採用することになりました。
しかし、競合製品である
インテル製
CPUがサポートするSSE命令に対して、登場こそ約1年早かったものの、普及では後れを取りました。そのため、Enhanced 3DNow!、3DNow! Professionalと世代が進むにつれて、SSEと
互換性のある命令が追加されていくこととなりました。
2010年8月、AMDはBobcat以降の世代のプロセッサーでは、3DNow!と3DNow!+は2つの命令(PREFETCH、PREFETCHW)を除いてサポートされないと発表し、3DNow!の展開は終了しました。
Enhanced 3DNow!
エンハンスト3DNow!テクノロジー(Enhanced 3DNow! Technology)は、3DNow!に24個の命令を追加したものです。AMDの
Athlon (K7) から搭載が開始され、一部のK6-2やK6-IIIにも搭載されました。
Enhanced 3DNow!は、「3DNow!+」と「
MMX+」の2つから構成されています。「3DNow!+」は、サウンドや
モデム制御用のDSP命令5個から成り、「
MMX+」は、SSE(初代)で追加された
MMX命令19個を指します。
3DNow! Professional
3DNow!プロフェッショナルテクノロジー(3DNow! Professional Technology)は、Enhanced 3DNow!に52個の命令を追加し、
インテルのSSEとの
互換性を持たせたものです。AMDの
Athlon XP、モバイル
Athlon 4、Duron(Morganコア)から搭載され始めました。
SSEと同様に、古い
オペレーティングシステムでは使用することができません。
オペレーティングシステムによって、CR4レジスタのOSFXSRビットを1にすることで使用可能になります。
まとめ
3DNow!は、初期の
CPUにおける浮動小数点演算の高速化に貢献しましたが、SSEとの競争に敗れ、その展開を終えることとなりました。しかし、その技術は後の
CPU技術に影響を与え、
SIMD命令の重要性を示すものとなりました。
関連項目
SIMD
ストリーミング
SIMD拡張命令 (SSE)
AltiVec (Velocity Engine)
PowerNow!