3DNow! (3dnow!)
【スリー・ディー・ナウ】
3Dグラフィックス描画や音声/画像データ処理などのマルチメディア処理を高速化するために、米AMD社が開発した拡張命令セット。1998年5月に発表されたx86互換プロセッサのAMD-K6-2に初めて実装された。この3DNow!により、浮動小数点処理性能が向上し、たとえば高解像度グラフィックスによる動画をより高速なフレームレートで再生したり、3Dグラフィックス処理におけるモデリングをより精細にしたり、MPEGビデオの再生をよりスムーズに実行したりできるようになる。
3DNow!では、SIMD(Single Instruction Multiple Data)浮動小数点演算命令と、SIMD整数演算命令、データプリフェッチング、MMXユニット−x87ユニット間での高速スイッチングなどを可能にする21種類の命令が追加されている。レジスタセットとしては既存のMMX用の64ビット幅×8個のレジスタをそのまま使うので、整数型データなら1つ(64ビット長×1)か、2つ(32ビット×2)か、4つ(16ビット×4)か、8つ(8ビット×8)を同時に格納できる。浮動小数点型データなら、32ビット単精度浮動小数点数を2つ同時に格納できる。演算は、1クロックあたりに最大で2つの3DNow!命令を実行することが可能で、K6ファミリでは2つの実行パイプラインレジスタが用意されているため、トータルでは1クロック当たり最大で4つまでの浮動小数点命令を実行できることになる。
マルチメディア・アプリケーションでは、メインメモリとCPUとの間で大量のデータをやり取りする必要がある。この際、メインメモリからのデータ転送はCPUの速度に比較すると圧倒的に遅いので、CPUはメインメモリからデータが到着するまでウェイトしなければならない。この問題に対し3DNow!で追加されたPREFETCH命令を使用すれば、必要なデータをL1キャッシュに残しておくようにプログラムで制御できるようになる。
K6の後継のAthlonプロセッサでは、3DNow!の機能が拡張され、エンハンスト3DNow!となった。この拡張では、ソフトウェアモデムやMP3、Dolby Digitalの処理など、従来はDSPで処理されることが多かった機能に向けた命令5つと、データのキャッシュやストリーミング機能を強化する19の命令が追加されている。この拡張により、Intel社のStreaming SIMD Extensionなどとほぼ同等の機能を持つようになった。
Copyright (C) 2000-2007 Digital Advantage Corp.
関連用語
参考リンク
-
■日本AMDの3DNow!の情報ページ
3DNow!やエンハンスト3DNow!に関する情報が掲載されている
■米AMD(Advanced Micro Devices)のホームページ
■AMD-K6-2のホームページ(英語)