3DNow!

3DNow!とは



3DNow!(スリーディーナウ)は、アドバンスト・マイクロ・デバイセズ (AMD) が開発したCPUSIMD(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!

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。