3DNow!(スリーディー・ナウ)は、アドバンスト・マイクロ・デバイセズ (AMD) がドルビーデジタルのデコードや3D処理の高速化を目的に開発した、CPUのSIMD拡張命令、およびその拡張版の総称である。

概要 インテルのMMXでは整数演算のみをサポートし、浮動小数点演算には未対応であった。3DNow!は、MMXに21個の命令を追加することで浮動小数点演算の高速化を図ったものである。

具体的には64ビットMMXレジスタに32ビットの浮動小数点演算データを2個格納し、それぞれを独立して演算出来るようにしている。3DNow!ではさらに2個のMMXユニットが並列動作可能であるため、最大4個の浮動小数点演算が可能となる。

3DNow!は同社のCPU・K6-2、IDTのWinChip 2から搭載され始めた。開発当初はAMD、サイリックス、IDT共に各社別々の仕様を発表していたが、AMDの働きかけにより、三社とも3DNow!を採用することとなった。

しかし競合製品であるインテル製CPUがサポートするSSE命令に対して、登場は約1年早かったものの普及で後れを取ったため、Enhanced 3DNow!、3DNow! Professionalと世代が進むごとにSSEと互換性のある命令が追加されることとなった。

2010年8月、AMDはBobcat以降の世代のプロセッサーでは「3DNow!」と「3DNow!+」は2つの命令 (PREFETCH, PREFETCHW) を除いてサポートされないと発表。3DNow!の展開は終了した。

Enhanced 3DNow! エンハンスト3DNow! テクノロジ () は、3DNow!に24個の命令を追加したものである。Athlon (K7) から搭載され始めた。一部のK6-2やK6-IIIにも搭載されている。

Enhanced 3DNow!は、「3DNow!+」 と「MMX+」の2つから構成される。 「3DNow!+」は、サウンド・モデム制御用DSP命令5個である。 「MMX+」の実体は、SSE(初代)で追加されたMMX命令19個であるSSEでは、XMMレジスタを操作する命令に加えて、MMXレジスタを操作する整数演算命令も追加している。。

3DNow! Professional 3DNow! プロフェッショナル・テクノロジ () は、エンハンスト3DNow!に52個の命令を追加し、インテルのSSEとの互換性を持たせた物である。同社のAthlon XP、モバイルAthlon 4、Duron(Morganコア)から搭載され始めた。

SSEと同じく古いオペレーティングシステムでは使用することができず、オペレーティングシステムによって、CR4レジスタのOSFXSRビットを1にすることにより使用することができる。

脚注

関連項目 SIMD ストリーミングSIMD拡張命令 (SSE) AltiVec (Velocity Engine) PowerNow!