MMX

MMX ( M ulti m edia E x tensiuni - extensii multimedia ) este numele comercial pentru un set de instrucțiuni SIMD suplimentar dezvoltat de Intel și introdus pentru prima dată în 1997 împreună cu linia de procesoare Pentium MMX . Setul de instrucțiuni a fost conceput pentru a accelera procesul de codificare/decodare a datelor audio și video în flux. Este o dezvoltare a tehnologiilor propuse în microprocesorul i860 [1] . Dezvoltat în laboratorul Intel din Haifa , Israel , în prima jumătate a anilor 1990 [2] [3] .

Acum, setul de instrucțiuni MMX, introdus în 1997, este sincer învechit și a fost de mult înlocuit de diferite versiuni de SSE și AVX . Cu toate acestea, este încă susținut oficial în instrumentele de dezvoltare; cu toate acestea, din cauza rarității utilizării, implementarea suferă de numeroase defecte. Prin urmare, există propuneri pentru a-l elimina din setul popular de compilatoare LLVM [4] .

Registre MMX

Extensia MMX include opt registre publice pe 64 de biți MM0-MM7. Pentru a fi compatibil cu metodele de comutare a contextului procesorului din sistemele de operare existente , Intel a fost forțat să combine opt registre MMX cu mantisele a opt registre FPU în modelul software al procesorului . În hardware, acestea pot fi dispozitive diferite, dar din punctul de vedere al unui programator, acestea sunt aceleași registre. Astfel, nu puteți utiliza coprocesorul matematic și comenzile MMX în același timp.

Tipuri de date MMX

Instrucțiunile tehnologiei MMX procesează date întregi împachetate în grupuri ( vectori ) cu o lungime totală de 64 de biți sau cuvinte unice de 64 de biți . Astfel de date pot fi stocate în memorie sau în opt registre MMX.

Comenzile tehnologiei MMX funcționează cu următoarele tipuri de date:

Sintaxă

Comenzile MMX au următoarea sintaxă: instruction [dest, src] Aici instrucțiunea  este numele comenzii, dest este operandul de ieșire, src  este operandul de intrare.

Sistemul de comandă este format din 57 de instrucțiuni care vă permit să procesați mai multe elemente de date în paralel [5] . Majoritatea comenzilor au un sufix care specifică tipul de date și aritmetica utilizată:

Se pot distinge următoarele grupuri de instrucțiuni [5] :

Executarea instrucțiunilor MMX nu modifică indicatoarele de stare a cuvântului de stare FPU, cu excepția câmpului TOP. Registrele MMX pot fi accesate direct după nume, spre deosebire de registrele FPU, care sunt organizate pe o stivă cu partea superioară definită de câmpul TOP al cuvântului de stare FPU. În acest caz, câmpul TOP este resetat după ce este executată orice instrucțiune MMX. Executarea instrucțiunilor MMX este posibilă în orice mod de procesor [5] .

MMX în procesoarele încorporate

Familia de procesoare Intel XScale , începând cu modelul PXA270, conține o completare la setul de instrucțiuni ARM numit iwMMXt, similar cu extensia IA-32 MMX.

Note

  1. Millind Mittal, Alex Peleg, Uri Weiser. Prezentare generală asupra arhitecturii tehnologiei MMX  // Intel Technology Journal. - 1997. - T. 1 , nr 3 .
  2. Intel în Haifa, Israel Arhivat 19 iulie 2013 la Wayback Machine // intel.com
  3. Intel Israel Fab Tour - primul eveniment de presă internațional oficial al Intel în Israel Arhivat 11 noiembrie 2013 la Wayback Machine // ixbt.com
  4. Compilatorii pot rămâne fără suport Intel MMX Arhivat 3 septembrie 2020 la Wayback Machine // 2.09.2020
  5. 1 2 3 Mihail Guk. Procesoare Intel: de la 8086 la Pentium II. - Sankt Petersburg. : Peter, 1997. - S. 96. - 224 p. — ISBN 5-88782-398-4 .

Literatură

Link -uri