3DNacum!
3DNacum! este o extensie învechită de set de instrucțiuni x86 dezvoltată de Advanced Micro Devices . Acesta adaugă instrucțiuni SIMD suplimentare la setul de instrucțiuni de bază x86, permițând efectuarea procesării vectoriale în virgulă mobilă folosind registre vectoriale , îmbunătățind performanța multor aplicații cu grafică intensivă. Primul microprocesor care a implementat 3DNow a fost AMD K6-2 , care a fost introdus în 1998. La utilizarea instrucțiunilor în sarcini adecvate, viteza de procesare a crescut de 2-4 ori [1] .
3DNacum ! a introdus 21 de instrucțiuni noi de procesor și capacitatea de a opera pe tipuri reale de 32 de biți în registrele MMX standard. Au fost adăugate și instrucțiuni speciale pentru a optimiza trecerea la MMX/3DNow! (femms, care a înlocuit instrucțiunea standard emms) și lucrează cu memoria cache a procesorului . Astfel, 3DNow! a extins capacitățile tehnologiei MMX fără a necesita introducerea de noi moduri de procesor și noi registre.
Începând cu microarhitectura Bulldozer , extensia nu este acceptată (cu excepția comenzii prefetch). [2]
Se verifică 3DNow! procesor
Înainte de a începe să lucrați cu 3DNow! asigurați-vă că procesorul le acceptă. Acest lucru se face folosind instrucțiunea CPUID . Procedura generală de verificare este următoarea:
- Asigurați-vă că procesorul acceptă instrucțiunea CPUID . Dacă nu, atunci procesorul nu acceptă 3DNow! .
- Executați instrucțiunea cpuid cu EAX = 0 - acest lucru este necesar pentru următorul pas.
- Executați CPUID cu valoarea EAX = 80000000h. Dacă, după executarea instrucțiunii, EAX are o valoare mai mică de 1, atunci 3DNow! nu sunt acceptate.
- Executați CPUID cu EAX = 80000001h. Dacă bitul 31 al registrului EDX este setat la 1 după execuție, atunci 3DNow! sprijinit. Altfel, nu.
3DNacum!
- PAVGUSB - media valorilor întregi pe 8 biți
- PI2FD - convertirea numerelor întregi de 32 de biți în numere reale
- PF2ID - convertiți reale în numere întregi de 32 de biți
- PFCMPGE - compararea numerelor reale, mai mari sau egale
- PFCMPGT - compararea numerelor reale, mai mare decât
- PFCMPEQ - compararea numerelor reale, egal cu
- PFACC - acumularea sumei numerelor reale
- PFADD - adunarea numerelor reale
- PFSUB - scăderea numerelor reale
- PFSUBR - Scăderea inversă a numerelor reale
- PFMIN - găsirea minimului de numere reale
- PFMAX - găsirea maximului de numere reale
- PFMUL - înmulțirea numerelor reale
- PFRCP - găsirea valorii aproximative a reciprocei numerelor reale (1/x)
- PFRSQRT - găsirea valorii aproximative inversă a rădăcinii pătrate (1/sqrt(x)) a numerelor reale
- PFRCPIT1 - primul pas de calcul al valorii, inversul (1 / x) al numerelor reale
- PFRSQIT1 - primul pas de calcul al inversului rădăcinii pătrate (1/sqrt(x)) a numerelor reale
- PFRCPIT2 este a doua bilă pentru calcularea valorii inverse sau inverse a rădăcinii pătrate a numerelor reale
- PMULHRW - Înmulțirea numerelor întregi pe 16 biți cu rotunjire
- FEMMS - Comutare rapidă a stării FPU/MMX
- PREFETCH / PREFETCHW - preîncărcarea unei linii cache a procesorului din memorie
- FEMCA - găsirea vectorului integral
Procesoare care acceptă 3DNow!
Vezi și
Note
- ↑ Utilizarea eficientă a 3DNow în Linux . Linux Journal (1 decembrie 1999). Consultat la 3 octombrie 2010. Arhivat din original pe 7 iunie 2011.
- ↑ [1] Arhivat la 28 martie 2017 la pagina 207 de Wayback Machine : „Conducta 19 AMD Bulldozer, Piledriver, Steamroller și Excavator: instrucțiunile 3DNow nu mai sunt acceptate, cu excepția instrucțiunilor de preluare prealabilă”.
Link -uri