3DNow!

3DNow! Advanced Micro Devices (AMD) tomonidan ishlab chiqilgan x86 koʻrsatmalar toʻplamining eskirgan kengaytmasi. U asosiy x86 koʻrsatmalar toʻplamiga bitta buyruqli bir nechta maʼlumotlar (SIMD) koʻrsatmalarini qoʻshib, Vektor registrlari yordamida suzuvchi nuqtali vektor operatsiyalarini vektorli qayta ishlashni amalga oshirish imkonini beradi, bu koʻplab grafik talab qilinadigan ilovalarning ishlashini yaxshilaydi. 3DNow-ni amalga oshiradigan birinchi mikroprotsessor 1998–yilda taqdim etilgan AMD K6–2 edi. Ilova mos boʻlganda, bu tezlikni taxminan 2–4 baravar oshirdi.

Biroq, koʻrsatmalar toʻplami hech qachon mashhur boʻlmagan va AMD 2010–yil avgustida ikkita koʻrsatmalardan tashqari (PREFETCH va PREFETCHW koʻrsatmalari) 3DNow-ni qoʻllab-quvvatlash kelajakdagi AMD  protsessorlarida toʻxtatilishini eʼlon qildi. Yuqorida aytib oʻtilgan ikkita koʻrsatmalar Bay-Trail Intel protsessorlarida ham mavjud.

Tarix 
3DNow 3D grafika kompyuter multimedia va oʻyinlarida asosiy oqimga aylangan bir paytda ishlab chiqilgan. 3D grafikalarning real vaqtda namoyishi suzuvchi nuqtali hisob-kitoblarni amalga oshirish uchun asosiy protsessorning suzuvchi nuqta blokiga (FPU) bogʻliq edi, bu vazifada AMD ning K6 protsessorini raqobatchisi Intel Pentium II dan osonlik bilan ortda qoldirdi.

MMX koʻrsatmalar toʻplamini yaxshilash sifatida 3DNow koʻrsatmalar toʻplami bitta aniqlikdagi (32 bitli) suzuvchi nuqtali maʼlumotlarda umumiy arifmetik operatsiyalarni (qoʻshish/ayirish/koʻpaytirish) qoʻllab-quvvatlash uchun MMX SIMD registrlarini kengaytirdi. Sekinroq x87 FPU oʻrniga AMD-ning 3DNow-dan foydalanish uchun yozilgan dasturiy taʼminot koʻrsatmalar aralashmasiga qarab 4 baravar tezroq ishlashi mumkin.

Versiyalar

3DNow 
3DNow texnologiyasining birinchi ilovasi SIMD suzuvchi nuqta operatsiyalarini qoʻllab-quvvatlaydigan 21 ta yangi koʻrsatmalarni oʻz ichiga oladi. 3DNow koʻrsatmalar toʻplami, shuningdek, SIMD butun son operatsiyalari, maʼlumotlarni oldindan olish va MMX-dan suzuvchi nuqtaga tezroq almashtirish operatsiyalarini oʻz ichiga oladi. Keyinchalik Intel SSE (Streaming SIMD Extensions) deb nomlanuvchi Pentium III ga oʻxshash (lekin mos kelmaydigan) koʻrsatmalar qoʻshadi.

3DNow suzuvchi-nuqta koʻrsatmalari quyidagilar:

 PI2FD  – 32 bitli butun sonni suzuvchi-nuqtaga aylantirish
 PF2ID – Suzuvchi-nuqtadan 32 bitli butun songa oʻzgartirish
 PFCMPGE – toʻplangan suzuvchi nuqtali taqqoslash, katta yoki teng
 PFCMPGT – toʻplangan suzuvchi-nuqtali taqqoslash, kattaroq
 PFCMPEQ – Toʻplangan suzuvchi-nuqtali taqqoslash, teng
 PFACC – oʻralgan suzuvchi-nuqta toʻplanadi
 PFADD – Paketli suzuvchi -nuqta qoʻshilishi
 PFSUB – toʻplangan suzuvchi nuqtali ayirish
 PFSUBR – oʻrnatilgan suzuvchi nuqtali teskari ayirish
 PFMIN – Paketli suzuvchi nuqta minimal
 PFMAX – Paketlangan suzuvchi nuqta maksimal
 PFMUL – Paketli suzuvchi nuqtali koʻpaytirish
 PFRCP – Paketli suzuvchi nuqta oʻzaro yaqinlashuvi
 PFRSQRT – Toʻplangan suzuvchi nuqta oʻzaro kvadrat ildizga yaqinlik
 PFRCPIT1 – Paketli suzuvchi nuqta oʻzaro, birinchi iteratsiya bosqichi
 PFRSQIT1 – Oʼrnatilgan suzuvchi nuqta oʻzaro kvadrat ildiz, birinchi iteratsiya bosqichi
 PFRCPIT2 – oʻrnatilgan suzuvchi nuqta oʻzaro/oʻzaro kvadrat ildiz, ikkinchi iteratsiya bosqichi

3DNow integer koʻrsatmalari quyidagilar:

 PAVGUSB – Paketlangan 8 bitli belgisiz butun son oʻrtacha
 PMULHRW – Qadoqlangan 16 bitli butun sonni yaxlitlash bilan koʻpaytirish

3DNow unumdorligini oshirish boʻyicha koʻrsatmalar quyidagilar:

 FEMMS – MMX yoki suzuvchi-nuqta holatiga tezroq kirish/chiqish
 PREFETCH/PREFETCHW – L1 maʼlumotlar keshiga kamida 32 baytlik qatorni oldindan yuklash (bu eskirmagan koʻrsatma)

3DNow kengaytmalari 
3DNow-ning ikkinchi versiyasiga rasman oʻz savdo nomi berilganligi haqida hech qanday dalil yoʻq. Bu ushbu yangi koʻrsatmalar toʻplamiga tegishli hujjatlarda baʼzi chalkashliklarga olib keldi. Eng keng tarqalgan atamalar Kengaytirilgan 3DNow, Enhanced 3DNow va 3DNow+ dir. "Enhanced 3DNow" iborasini AMD veb-saytining bir nechta joylarida topish mumkin, ammo "Enhanced" bosh harfi sof grammatik yoki ushbu kengaytmalarga ega boʻlishi yoki boʻlmasligi mumkin boʻlgan protsessorlarga urgʻu berish uchun ishlatilgan koʻrinadi (eng diqqatga sazovorlari bu kengaytmalarga ega boʻlmagan K6–III-P uchun benchmark sahifasiga havola qiladi).

3DNow koʻrsatmalar toʻplamiga ushbu kengaytma birinchi avlod Athlon protsessorlari bilan kiritilgan. Athlon 5 ta yangi 3DNow koʻrsatmalari va 19 ta yangi MMX koʻrsatmalarini qoʻshdi. Keyinchalik, K6–2+ va K6–III+ (ikkalasi ham mobil bozorga moʻljallangan) 19 ta yangi MMX koʻrsatmalarini qoldirib, 5 ta yangi 3DNow koʻrsatmalarini oʻz ichiga oldi. DSP ni kuchaytirish uchun yangi 3DNow koʻrsatmalari qoʻshildi. Oqimli mediani kuchaytirish uchun yangi MMX koʻrsatmalari qoʻshildi.

19 ta yangi MMX koʻrsatmalari Intelning SSE1 koʻrsatmalar toʻplamining kichik toʻplamidir. AMD texnik qoʻllanmalarida AMD ushbu koʻrsatmalarni 3DNow kengaytmalaridan tashqari ajratadi. Biroq, AMD mijozlari mahsuloti adabiyotida bu ajralish barcha 24 ta yangi koʻrsatmalarning afzalliklari takomillashtirilgan 3DNow texnologiyasiga berilganligi unchalik aniq emas. Bu dasturchilarni 19 ta yangi MMX koʻrsatmalari uchun oʻz nomlarini ishlab chiqishga olib keldi. Eng keng tarqalgani Integer SSE (ISSE) boʻlib koʻrinadi. SSEMMX va MMX2 ham jamoat mulki sektoridagi video filtri hujjatlarida mavjud. ISSE shuningdek, SSE ning dastlabki nomi boʻlgan Internet SSE ga ham murojaat qilishi mumkin.

3DNow kengaytmasi DSP koʻrsatmalari quyidagilar:

 PF2IW – Belgilangan kengaytmali suzuvchi-nuqtadan butun songa soʻz konvertatsiyasi
 PI2FW – Toʻplangan butun sonli soʻzni suzuvchi-nuqtaga aylantirish
 PFNACC – Qadoqlangan suzuvchi-nuqta salbiy toʻplanadi
 PFPNACC – Qadoqlangan suzuvchi-nuqta aralash ijobiy-salbiy toʻplanadi
 PSWAPD – Ikki soʻzli almashish

MMX kengaytmasi koʻrsatmalari (Integer SSE) quyidagilar:

  MASKMOVQ – Bayt maskasi yordamida oqim (keshni aylanib oʻtish) saqlash
 MOVNTQ - Streaming (keshni chetlab oʻtish) doʻkoni
 PAVGB - imzolanmagan baytning oʻrtacha toʻplami
 PAVGW - Imzosiz soʻzning oʻrtacha toʻplami
 PMAXSW - Toʻplangan maksimal imzolangan soʻz
 PMAXUB - toʻplangan maksimal imzosiz bayt
 PMINSW - Paketlangan minimal imzolangan soʻz
 PMINUB - toʻplangan minimal imzosiz bayt
 PMULHUW - Paketli koʻpaytiruvchi yuqori belgisiz soʻz
 PSADBW - mutlaq bayt farqlarining yigʻindisi
 PSHUFW - toʻplangan aralash soʻz
 PEXTRW - butun son registriga soʻzni chiqarib oling
 PINSRW - Butun sonlar registridan soʻz kiritish
 PMOVMSKB - Bayt niqobini butun son registriga oʻtkazish
 PREFETCHNTA - NTA maʼlumotnomasi yordamida oldindan yuklash
 PREFETCHT0 - T0 maʼlumotnomasi yordamida oldindan yuklash
 PREFETCHT1 - T1 maʼlumotnomasi yordamida oldindan yuklash
 PREFETCHT2 - T2 maʼlumotnomasi yordamida oldindan yuklash
 SFENCE - doʻkon panjarasi

3DNow Professional 
3DNow Professional - bu 3DNow texnologiyasini toʻliq SSE koʻrsatmalar toʻplami (masalan, SSE1, SSE2 yoki SSE3) bilan birlashtirgan protsessorlarni koʻrsatish uchun ishlatiladigan savdo nomi. Athlon XP 3DNow Professional savdo nomiga ega boʻlgan birinchi protsessor boʻldi va toʻliq SSE1 koʻrsatmalar toʻplamini qoʻllab-quvvatlovchi Athlon oilasidagi birinchi mahsulot boʻldi (jami: 21 ta original 3DNow yoʻriqnomasi; beshta 3DNow kengaytmasi DSP yoʻriqnomasi; 19 MMX kengaytirish koʻrsatmalari va toʻliq SSE1 muvofiqligi uchun 52 qoʻshimcha SSE koʻrsatmalari).

3DNow va Geode GX/LX 
Geode GX va Geode LX ikkita yangi 3DNow koʻrsatmalarini qoʻshdilar, ular hozirda barcha boshqa protsessorlarda mavjud emas.

3DNow Geode GX/LX uchun xos "professional" koʻrsatmalar quyidagilardir:

 PFRSQRTV – 32–bitli float juftligi uchun oʻzaro kvadrat ildizga yaqinlik
 PFRCPV – 32–bitli float juftligi uchun oʻzaro yaqinlashish

Afzalliklari va kamchiliklari 
3DNow ning afzalliklaridan biri shundaki, bitta registrda saqlangan ikkita raqamni qoʻshish yoki koʻpaytirish mumkin. SSE bilan har bir raqam faqat boshqa registrdagi bir xil pozitsiyadagi raqam bilan birlashtirilishi mumkin. Intel terminologiyasida gorizontal deb nomlanuvchi ushbu qobiliyat SSE3 koʻrsatmalar toʻplamiga asosiy qoʻshimcha boʻldi.

3DNow-ning kamchiliklari shundaki, 3DNow koʻrsatmalari va MMX koʻrsatmalari bir xil registr faylini baham koʻradi, SSE esa 8 ta yangi mustaqil registrlarni (XMM0 – XMM7) qoʻshadi.

MMX/3DNow registrlari standart x87 FPU tomonidan taqsimlanganligi sababli, 3DNow koʻrsatmalari va x87 koʻrsatmalarini bir vaqtning oʻzida bajarib boʻlmaydi. Biroq, u x87 FPU-ga taqlid qilganligi sababli, 3DNow va MMX registr holatlari anʼanaviy x87 F(N)SAVE va F(N)RSTOR koʻrsatmalari orqali saqlanishi va tiklanishi mumkin. Ushbu tartibga solish operatsion tizimlarga 3DNow-ni aniq oʻzgartirishlarsiz qoʻllab-quvvatlashga imkon berdi, SSE registrlari esa yangi XMM registrlarini toʻgʻri saqlash va tiklash uchun (qoʻshilgan FXSAVE va FXRSTOR koʻrsatmalari orqali) aniq operatsion tizimni qoʻllab-quvvatlashni talab qildi.

FX* koʻrsatmalari eski x87 saqlash va tiklash koʻrsatmalariga yangilanishdir, chunki ular nafaqat SSE registr holatini, balki x87 registr holatini ham saqlashi mumkin (shuning uchun u MMX va 3DNow registrlarini ham saqlashi mumkin edi).

AMD Athlon XP va K8–ga asoslangan yadrolarda (yaʼni Athlon 64), yigʻish dasturchilari registr bosimini kamaytirish uchun 3DNow va SSE koʻrsatmalarini birlashtirish mumkinligini taʼkidladilar, ammo amalda umumiy funktsional birliklarda bajariladigan koʻrsatmalar tufayli ishlashni yaxshilash qiyin.

3DNow-ni qoʻllab-quvvatlaydigan protsessorlar 

 K6–2 dan keyingi barcha AMD protsessorlari K6, Athlon, Athlon 64 va Phenom arxitektura oilalariga asoslangan. Buldozer, Bobcat va Zen arxitektura protsessorlari va ularning hosilalarida qoʻllab-quvvatlanmaydi.
 3DNow-ni qoʻllab-quvvatlaydigan soʻnggi AMD APU protsessori A8–3870K.
 Milliy yarimoʻtkazgich geode, keyinchalik AMD Geode.
 VIA C3 (shuningdek, Cyrix III nomi bilan tanilgan) "Samuel", "Samuel 2" "Ezra" va "Eden ESP" yadrolari.
 IDT Winchip 2

Manbalar

Qoʻshimcha oʻqish 

 Case, Brayan (1998-yil 1-iyun). "3DNow Inteldan tashqari 3D ish faoliyatini oshiradi". Mikroprotsessor hisoboti.
 Oberman, S.; Favor, G.; Weber, F. (1999-yil mart). "AMD 3DNow texnologiyasi: arxitektura va amalga oshirish". IEEE Micro.

Havolalar 

 3DNow Technology Partners, asl nusxadan arxivlangan (2001—yil boshida AMD veb-saytidan olib tashlangan)
 Asl nusxadan arxivlangan AMD 3DNow Instruction Porting Guide (PDF) (2014—yilda AMD veb-saytidan olib tashlangan)
 3DNow texnologiyasi qoʻllanma
 3DNow va MMX koʻrsatmalar toʻplamiga AMD kengaytmalari
 AMD Geode LX protsessorlari maʼlumotlar kitobi
 Yangi 3DNow Professional texnologiyasini tushuntirish (arxivlangan)
X86 arxitekturasi
SIMD hisoblash
Advanced Micro Devices texnologiyalari