3DNu!
3DNu! er en forældet x86- instruktionssætudvidelse udviklet af Advanced Micro Devices . Det føjer yderligere SIMD -instruktioner til basis x86-instruktionssættet, hvilket gør det muligt at udføre vektor-floating point-behandling ved hjælp af vektorregistre , hvilket forbedrer ydeevnen af mange grafikintensive applikationer. Den første mikroprocessor til at implementere 3DNow var AMD K6-2 , som blev introduceret i 1998. Ved brug af instruktioner i passende opgaver steg behandlingshastigheden med 2-4 gange [1] .
3DNu ! introduceret 21 nye processorinstruktioner og muligheden for at operere på 32-bit reelle typer i standard MMX registre. Der er også tilføjet særlige instruktioner for at optimere skiftet til MMX/3DNow! (femms, som erstattede standard emms-instruktionen) og arbejde med processorcachen . Således 3DNow! udvidet MMX-teknologiens muligheder uden at kræve introduktion af nye processortilstande og nye registre.
Fra og med Bulldozer-mikroarkitekturen understøttes udvidelsen ikke (undtagen prefetch-kommandoen). [2]
Tjek 3DNow! processor
Før du begynder at arbejde med 3DNow! sørg for, at CPU'en understøtter dem. Dette gøres ved hjælp af CPUID- instruktionen . Den generelle procedure for verifikation er som følger:
- Sørg for, at processoren understøtter CPUID- instruktionen . Hvis ikke, understøtter CPU'en ikke 3DNow! .
- Udfør cpuid-instruktionen med EAX = 0 - dette er påkrævet til næste trin.
- Udfør CPUID med værdi EAX = 80000000h. Hvis EAX efter at have udført instruktionen har en værdi mindre end 1, så 3DNow! ikke understøttet.
- Udfør CPUID med EAX = 80000001h. Hvis bit 31 i EDX-registret er sat til 1 efter udførelse, så 3DNow! understøttes. Ellers nej.
3DNu!
- PAVGUSB - gennemsnit af 8-bit heltalsværdier
- PI2FD - konvertering af 32-bit heltal til reelle tal
- PF2ID - konverter reelle til 32-bit heltal
- PFCMPGE - sammenligning af reelle tal, større end eller lig
- PFCMPGT - sammenligning af reelle tal, større end
- PFCMPEQ - sammenligning af reelle tal, lig med
- PFACC - akkumulering af summen af reelle tal
- PFADD - addition af reelle tal
- PFSUB - subtraktion af reelle tal
- PFSUBR - Invers subtraktion af reelle tal
- PFMIN - finde minimum af reelle tal
- PFMAX - finde maksimum af reelle tal
- PFMUL - multiplikation af reelle tal
- PFRCP - at finde den omtrentlige værdi af det reciproke af reelle tal (1/x)
- PFRSQRT - finde den omtrentlige værdi inverse af kvadratroden (1/sqrt(x)) af reelle tal
- PFRCPIT1 - det første trin til at beregne værdien, den inverse (1 / x) af reelle tal
- PFRSQIT1 - det første trin til at beregne den inverse af kvadratroden (1/sqrt(x)) af reelle tal
- PFRCPIT2 er den anden kugle til at beregne værdien inverse eller inverse af kvadratroden af reelle tal
- PMULHRW - Multiplicer 16-bit heltal med afrunding
- FEMMS - Hurtig FPU/MMX-tilstandsskift
- PREFETCH / PREFETCHW - forhåndshentning af en processorcachelinje fra hukommelsen
- FEMCA - at finde integralvektoren
Processorer, der understøtter 3DNow!
Se også
Noter
- ↑ Effektiv udnyttelse af 3DNow i Linux . Linux Journal (1. december 1999). Hentet 3. oktober 2010. Arkiveret fra originalen 7. juni 2011.
- ↑ [1] Arkiveret 28. marts 2017 på Wayback Machine side 207: "19 AMD Bulldozer, Piledriver, Steamroller and Excavator pipeline: 3DNow-instruktionerne understøttes ikke længere, med undtagelse af prefetch-instruktionerne."
Links