2013 m. sausio 11 d., penktadienis

3.2. SIMD tipo MMX komandų rinkinys



 Pentium MMX (MultiMedia eXtentions) pasirodymą rinkoje vis dėl to dagiausiai paskatino gausybės daugialypės terpės (Multimedia) programų pasirodymas apie 1995-1996 metus. Tai programos, gebančios apdoroti vaizdus, garsus ir kt. Deja, Pentium procesoriaus sparta neleido efektyviai tų programų darbo išnaudoti.
Analizuojant minėtų programų algoritmus, buvo pastebėta, kad jose labai dažnai tenka vykdyti vieno ir to paties tipo komandas su daugeliu duomenų porų. Kilo idėja, sukurti specialų komandų rinkinį, pritaikytą minėto tipo programoms. Buvo sukurtas specialus SIMD (Single Instruction Many Data) komandų formatas. Tokiose komandose yra vienas operacijos kodas ir nurodytos keturios duomenų poros, su kuriomis ta operacija turi būti atlikta. Aišku, galima nurodyti ir mažiau duomenų porų.
Pentium MMX komandų sistema papildyta 57 komandomis, orientuotomis į efektyvų tipinių multimedija algoritmų vykdymą. Joms priklauso ir daugybė algoritmų, būdingų skaitmeniniam signalų apdorojimui (operacijos su vektoriais, skleistinė, Furje eilutės ir kt.).
Tai pirmasis reikšmingas komandų sistemos pakeitimas x86 šeimos mikroprocesoriuose nuo Intel80386 išleidimo į pasaulį 1985 m., turėjusio 220 pagrindinių komandų.
  Kartu su kitais patobulinimais  pagrindiniu Pentium MMX procesoriaus  privalumu yra jo sugebėjimas palaikyti papildomą multimedija komandų rinkinį, kurio vykdymui naudojamas MMX-įtaisas ir slankaus kablelio registrų blokas.
MMX technologija atnešė šiuos pakitimus į Intel mikroprocesorių architektūrą:
Ø  Pridėti 8 MMX registrai (MM0-MM7). MMX registrai fiziškai susieti su 64 bitų slankaus kablelio registrais ir gali būti panaudoti tik veiksmams su MMX-duomenimis.
Ø  Pridėtos 57 naujos komandos. Komandos skirstomos į grupes: duomenų mainų, aritmetines, sulyginimo, logines, postūmio, pertvarkymo ir MMX režimo išjungimo komandą.
Ø  Papildomai pridėti 4 nauji duomenų tipai – pakuoti baitai (8 baitai 64 bitų pakete), pakuoti žodžiai  (keturi 16 bitų žodžiai 64 bitų pakete), pakuoti dvigubi žodžiai (du 32 bitų žodžiai 64 bitų pakete) ir keturgubas žodis (64 bitai). Aritmetinės arba loginės operacijos vykdomos paraleliai su kiekvienu žodžio arba dvigubo žodžio baitu, esančiu 64 bitų MMX registre (SIMD apdorojimo modelis).
SIMD apdorojimas žymiai paspartina multimedia algoritmų, kuriems būdingas identiškų operacijų vykdymas su dideliais vienodo tipo duomenų masyvais (pavyzdžiui, 16 bitų skaičiavimai skaitmeniniam garsui ir t.t.) vykdymą.
MMX komandų panaudojimas leidžia paspartinti multimedia komandų vykdymą lyginant su įprastais Pentium procesoriais 60% esant vienodam taktiniam dažniui (Intel multimedinio testo Media Benchmark duomenys).
Fizinis MMX registrų ir slankaus kablelio registrų suderinimas garantuoja suderinamumą su ankstesniąją architektūra ir, atitinkamai, leidžia naudoti ankstesniąją programinę įrangą. Tam kad persijungti iš MMX režimo į slankaus kablelio apskaičiavimų režimą, procesoriui reikia 50 taktų.
MMX komandų vykdymas vykdomajame U arba V konvejeryje gali būti atliekamas tuo pačiu metu kaip ir kita MMX komanda arba fiksuoto kablelio operacija (bet ne slankaus). Prie 6 įprastų slankaus kablelio komandos vykdymo stadijų pridedamos dar 6 MMX įtaise.
Praplėstas konvejerizavimas žymiai padidina procesoriaus našumą ir dirbant su multimedija programomis.

Komentarų nėra:

Rašyti komentarą

Tinklaraščio archyvas

Etiketės