MMX

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 registre

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-datatyper

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:

Syntaks

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] .

MMX i indlejrede processorer

Intel XScale- processorfamilien , startende med PXA270-modellen, indeholder en tilføjelse til ARM -instruktionssættet kaldet iwMMXt, svarende til IA-32 MMX-udvidelsen.

Noter

  1. Millind Mittal, Alex Peleg, Uri Weiser. MMX Technology Architecture Oversigt  // Intel Technology Journal. - 1997. - T. 1 , nr. 3 .
  2. Intel i Haifa, Israel Arkiveret 19. juli 2013 på Wayback Machine // intel.com
  3. Intel Israel Fab Tour - Intels første officielle internationale pressebegivenhed i Israel Arkiveret 11. november 2013 på Wayback Machine // ixbt.com
  4. Kompilere kan efterlades uden Intel MMX-understøttelse Arkiveret 3. september 2020 på Wayback Machine // 2.09.2020
  5. 1 2 3 Mikhail Guk. Intel-processorer: fra 8086 til Pentium II. - Sankt Petersborg. : Peter, 1997. - S. 96. - 224 s. — ISBN 5-88782-398-4 .

Litteratur

Links