3DNow!
3DNow!(スリーディー・ナウ)は、アドバンスト・マイクロ・デバイセズ (AMD) がドルビーデジタルのデコードや3D処理の高速化を目的に開発した、CPUのSIMD拡張命令、およびその拡張版の総称である。
目次 |
概要 [編集]
MMXでは整数演算のみをサポートし、浮動小数点演算は未対応であった。3DNow!は、そうしたMMXの弱点を克服すべくMMXに21個の命令を追加することで浮動小数点演算の高速化を図ったものである。
具体的には64bit MMXレジスタに32bitの浮動小数点演算データを2個格納し、それぞれを独立して演算出来るようにしている。3DNow!ではさらに2個のMMXユニットが並列動作可能であるため、最大4個の浮動小数点演算が可能となる。
3DNow!は同社のCPU・K6-2、IDT社のWinChip 2から搭載され始めた。開発当初はAMD、サイリックス、IDT共に各社別々の仕様を発表していたが、AMDの働きかけにより、三社とも3DNow!を採用することとなった。
しかし競合製品であるインテル製CPUがサポートするSSE命令に対して普及で遅れを取ったため、Enhanced 3DNow!、3DNow! Professionalと世代が進むごとにSSEと互換性のある命令が追加されることとなった。
2011年8月、AMDはBobcat以降の世代のプロセッサーでは「3DNow」と「3DNow+」は2つの命令(PREFETCH/PREFETCHW)を除いてサポートされないと発表[1]。MMX+のみ残った3DNow!はSSEとほぼ同等のものとなり、実質的に3DNow!の展開は終了したと言える。
Enhanced 3DNow! [編集]
エンハンスド 3DNow! テクノロジ (Enhanced 3DNow! Technology) は、3DNow!に24個の命令を追加したものである。Athlon (K7) から搭載され始めた。一部のK6-2やK6-IIIにも搭載されている。
Enhanced 3DNow!は、「3DNow!+」 と「MMX+」の2つから構成される。
「3DNow!+」は、サウンド・モデム制御用DSP命令5個。
「MMX+」の実体は、インテルのSSEのサブセットであり、命令19個である。
3DNow! Professional [編集]
3DNow! プロフェッショナル・テクノロジ (3DNow! Professional Technology) は、エンハンスト3DNow!に52個の命令を追加し、インテルのストリーミング SIMD 拡張命令 (SSE) との互換性を持たせた物である。同社のAthlon XP、モバイルAthlon 4、Duron(Morganコア)から搭載され始めた。
SSEと同じく古いオペレーティングシステムでは使用することができず、オペレーティングシステムによって、CR4レジスタのOSFXSRビットを1にすることにより使用することができる。
脚注 [編集]
関連項目 [編集]
- SIMD
- Streaming SIMD Extensions (SSE)
- AltiVec (Velocity Engine)
- PowerNow!