Set instruksi 3DNow! adalah sebuah set instruksi yang dikembangkan oleh AMD sebagai alternatif bagi set instruksi Intel SSE. Set instruksi ini dimasukkan ke dalam seri prosesor AMD K6 sebelum Intel merilis Pentium III yang dilengkapi dengan set instruksi SSE. Selanjutnya, saat AMD merilis keluarga Athlon serta Duron, AMD memperbarui set instruksi ini dengan mengubah namanya menjadi Enhanced 3DNow!, lalu menjadi 3DNow! Professional saat merilis Athlon XP (Palomino).
Informasi umum
Pada awalnya, AMD membeli lisensi set instruksi MMX dari Intel dan menanamkannya ke dalam semua prosesor K6 dan K7 buatannya. Karena beberapa sebab, AMD tidak mau membeli lisensi set instruksi SSE yang dikembangkan oleh Intel, dan akhirnya AMD pun mengembangkan sebuah set instruksinya sendiri yang dinamakan dengan 3DNow!. 3DNow! diperkenalkan pada bulan Mei1998 pada prosesor K6-2, lalu diperbaiki pada saat merilis Athlon (Juni 1999) menjadi Enhanced 3DNow!. Set instruksi 3DNow!, Enhanced 3DNow! serta 3DNow! Professional merupakan set instruksi yang memperluas dukungan multimedia yang terdapat dalam chip-chip buatan AMD yang melebihi MMX. Hal ini mengizinkan kinerja yang lebih baik dalam memproses grafik tiga dimensi, multimedia, dan aplikasi yang bersifat intensif terhadap floating-point.
Teknologi 3DNow! terdiri atas 21 instruksi yang menggunakan teknik-teknik SIMD untuk beroperasi terhadap sebuah larik data. Enhanced 3DNow! yang ditanamkan dalam AMD Athlon menambahkan 24 instruksi lagi (19 instruksi di antaranya mirip dengan instruksi SSE dan 5 instruksi lainnya berfungsi sebagai pengolah DSP dan komunikasi), sehingga Enhanced 3DNow! memiliki total 45 instruksi.
Menurut AMD, 3DNow! menyediakan peningkatan kinerja terhadap MMX seperti yang dilakukan pada Intel SSE, tetapi instruksi-instruksi dalam 3DNow! lebih sederhana dan juga lebih sedikit. Meskipun kemampuannya mirip, ternyata 3DNow! dan SSE tidak kompatibel satu sama lainnya, sehingga perangkat lunak yang didesain secara spesifik untuk SSE tidak akan mendukung 3DNow! dan harus didesan ulang dan begitu pula sebaliknya.
3DNow! Professional bahkan menambahkan lebih banyak lagi instruksi, yakni 51 instruksi yang mirip dengan instruksi SSE, sehingga prosesor yang menggunakan 3DNow! Professional juga mendukung penuh instruksi SSE. 3DNow! tidak dikembangkan lagi pada saat prosesor AMD64 (AMD Opteron, AMD Athlon 64, AMD Athlon FX) dirilis ke pasaran, karena AMD kembali membeli lisensi SSE2 dari Intel.
Seperti halnya SSE, set instruksi 3DNow! juga mendukung operasi SIMD terhadap bilangan floating-point dengan presisi tunggal dan memungkinkan melakukan operasi hingga empat operasi tiap siklus detaknya. Instruksi floating-point 3DNow! dapat digabungkan dengan instruksi MMX tanpa mengorbankan performa. Selain itu, 3DNow! juga mendukung data prefetching.
Dukungan perangkat lunak terhadap 3DNow! juga lumayan banyak. Microsoft telah mendukung 3DNow! semenjak Windows 95 OSR 2.1, serta Windows NT 4.0. DirectX 6.0 juga didesain agar mendukung 3DNOw! secara penuh. Selain itu, karena prosesor AMD Athlon XP, dan prosesor AMD64 mendukung penuh SSE dan SSE2, dukungan terhadap prosesor AMD pun menjadi semakin banyak.
Instruksi
Instruksi 3DNow!
Instruksi
Jenis
Keterangan
PAVGUSB
Integer
Packed 8-bit Unsigned Integer Averaging
PFADD
Aritmetika
Packed Single-FP Addition
PFSUB
Aritmetika
Packed Single-FP Substraction
PFSUBR
Aritmetika
Packed Single-FP Reverse Substraction
PFACC
Aritmetika
Packed Single-FP Accumulate
PFCMPGE
Perbandingan
Packed Single-FP Comparison, greater or equal
PFCMPGT
Perbandingan
Packed Single-FP Comparison, greater
PFCMPEQ
Perbandingan
Packed Single-FP Comparison, equal
PFMIN
Aritmetika
Packed Single-FP Minimum
PFMAX
Aritmetika
Packed Single-FP Maximum
PI2FW
Konversi
Packed INT16 integer to Packed Single-FP conversion
PI2FD
Konversi
Packed INT32 integer to Packed Single-FP conversion
PF2IW
Konversi
Packed Single-FP to Packed INT16 integer conversion
PF2ID
Konversi
Packed Single-FP to Packed INT32 integer conversion
PFRCP
Aritmetika
Single-FP Reciprocal Approximation
PFRSQRT
Aritmetika
Single-FP Reciprocal Square Root Approximation
PFMUL
Aritmetika
Packed Single-FP Multiplication
PFRCPIT1
Aritmetika
Packed Single-FP Reciprocal First Iteration Step
PFRSQIT1
Aritmetika
Packed Single-FP Reciprocal Square Root First Iteration Step
PFRCPIT2
Aritmetika
Packed Single-FP Reciprocal / Reciprocal Square Root Second Iteration Step
PMULHRW
Integer
Packed INT16 integer Multiply With Rounding
PSWAPW
Integer
Packed INT16 integer Swap
FEMMS
Keadaan (state)
Faster Entry / Exit of the MMX or FP state
PREFETCH
Kemampuan cache
Prefetch 32-byte line into L1 data cache
Instruksi Enhanced 3DNow!
Instruksi
Jenis
Keterangan
PF2IW
Konversi
Packed Single-FP to INT16 integer Conversion with Sign Extend