MMX ( Multi m edia E x tensions - multimedia extensions) er det kommercielle navn for et ekstra SIMD- instruktionssæt udviklet af Intel og først introduceret i 1997 sammen med Pentium MMX -processorlinjen . Sættet af instruktioner er designet til at fremskynde processen med kodning / afkodning af streaming af lyd- og videodata. Det er en udvikling af de teknologier, der foreslås i i860- mikroprocessoren [1] . Udviklet på Intel -laboratoriet i Haifa , Israel , i første halvdel af 1990'erne[2] [3] .
Nu er MMX-instruktionssættet, der blev introduceret i 1997, ærlig talt forældet og er længe blevet afløst af forskellige versioner af SSE og AVX . Det er dog stadig formelt understøttet i udviklingsværktøjer; Men på grund af den sjældne brug lider implementeringen af adskillige defekter. Derfor er der forslag om at fjerne det fra det populære sæt af LLVM- kompilere [4] .
MMX-udvidelsen inkluderer otte 64 - bit offentlige registre MM0-MM7. For at være kompatibel med processorkontekstskiftemetoder i eksisterende operativsystemer blev Intel tvunget til at kombinere otte MMX - registre med mantisserne af otte FPU - registre i processorsoftwaremodellen . I hardware kan disse være forskellige enheder, men set fra en programmørs synspunkt er det de samme registre. Du kan således ikke bruge de matematiske coprocessor og MMX-kommandoer på samme tid.
MMX-teknologiinstruktioner behandler heltalsdata pakket i grupper ( vektorer ) med en samlet længde på 64 bit eller enkelte 64-bit ord. Sådanne data kan lagres i hukommelsen eller i otte MMX-registre.
MMX-teknologiens kommandoer fungerer med følgende datatyper:
MMX- kommandoer har følgende syntaks: instruction [dest, src] Her er instruktion navnet på kommandoen, dest er output-operand, src er input-operand.
Kommandosystemet er dannet af 57 instruktioner, der giver dig mulighed for at behandle flere dataelementer parallelt [5] . De fleste kommandoer har et suffiks , der angiver den anvendte datatype og aritmetik:
Der kan skelnes mellem følgende grupper af instruktioner [5] :
Udførelse af MMX-instruktioner ændrer ikke FPU-statusordets tilstandsflag, undtagen TOP-feltet. MMX-registre kan tilgås direkte ved navn, i modsætning til FPU-registre, som er organiseret på en stak med toppen defineret af TOP-feltet i FPU-statusordet. I dette tilfælde nulstilles TOP-feltet, efter at en MMX-instruktion er udført. Udførelse af MMX-instruktioner er mulig i enhver processortilstand [5] .
Intel XScale- processorfamilien , startende med PXA270-modellen, indeholder en tilføjelse til ARM -instruktionssættet kaldet iwMMXt, svarende til IA-32 MMX-udvidelsen.
x86 processor instruktionssæt | |
---|---|
Intel | |
AMD | |
Cyrix |