MMX Tehnologija Chapter 2 Definicija MMX tehnologije MMX




































- Slides: 36
MMX Tehnologija - Chapter 2 -
Definicija MMX tehnologije MMX tehnologija predstavlja proširenje (ekstenzija) Intel-ove arhitekture, IA, namenjena da ubrza multimedija komunikacione algoritme. MMX uključuje nove instrukcije i nove tipove podataka pomoću kojih se kontroliše paralelizam koji je prirodan za sve multimedija aplikacije, a sve je to izvedeno sa ciljem da se poveća nivo performansi host-CPU-a.
Pakovani podaci i pakovane instrukcije U odnosu na standardnu IA-32, uvedena su još četiri nova tipa podataka, a to su : a) pakovani bajtovi, b) pakovane reči, c) pakovane duple reči, i d) četvorostruka reč.
Novo-uvedeni tipovi operacija Kod MMX tehnologije novo-uvedeni tipovi operacija su: a) pakovane aritmetičke instrukcije, b) instrukcije za manipulisanje podacima, c) logičke instrukcije, i d) instrukcije saturacione artmetike. Pakovano sabiranje
Primer Data Parallelism
Tipični primeri kod obrade slika Primeri image-compositing
Primeri organizacije memorije kod slika Postoji veći broj načina memorisanja podataka o slici, a mi ćemo razmotriti samo dva: a) color plane, b) consecutive pixel
Color plane Kod color-plane memorijske organizacije R, G, B i alpha komponente slike su smeštene u uzastopne memorijske lokacije u različitim memorijskim blokovima. Data-parallelism kod izračunavanja A*alpha(A) + B*(1 – alpha(A))
Consecutive pixel Kod concecutive pixel memorijske organizacije informacija o svakoj slici memoriše se tako što se tri kolor komponente R, G i B o svakom pixel-u upisuju u sukcesivne memorijske adrese u okviru istog memorijskog bloka.
Data-layout i poravnjanje memorije
Data-dependent izračunavanja Kod nekih multimedia algoritama postoji visok stepen data-parallelism-a, dok je controlflow (tok upravljanja) zavisan-po-podacima (data dependent). Tipičan jedan ovakav primer predstavlja izračunavanje apsolutne vrednosti /* izračunavanje apsolutne vrednosti for i = 1 to 100 if a[i] <0 then b[i]= -a[i] else b[i] = a[i]; /* izračunavanje maksimalne vrednosti for i = 1 to 100 if a[i] < c[i] then b[i]= c[i] else b[i] = a[i]; Pitanje koje se sada postavlja je sledeće: Na koji način izvršiti ova data-dependent izračunavanja paralelno nad nekoliko elemenata bez prekidanja (breaking) toka-izvršenja sa uslovnim instrukcijama.
Instrukcija packed compare i generisanje bit maske
Koriščenje bit maske da bi se izvršila uslovna selekcija
Manipulisanje podacima Transponovanje matrice
Instrukcija unpack kojom se vrši preplitanje podataka
Korišćenje unpack instrukcije kod transponovanja matrice
Instrukcija pack
Wraparound i Saturaciona aritmetika
Sabiranje kod označene saturacije
Sabiranje kod ne-označene saturacije
Aritmetika u fiksnom zarezu Fx. P aritmetika sa regularnim integer instrukcijama
Operacija množenja kod Fx. P aritmetike Aritmetika u fiksnom zarezu Operacija množenja kod Fx. P aritmetike
Dalji razvoj tehnologije ekstenzije
Dalji razvoj tehnologije ekstenzije
Dalji razvoj tehnologije ekstenzije
Dalji razvoj tehnologije ekstenzije
Dalji razvoj tehnologije ekstenzije
Dalji razvoj tehnologije ekstenzije
Dalji razvoj tehnologije ekstenzije
Dalji razvoj tehnologije ekstenzije
Dalji razvoj tehnologije ekstenzije
Dalji razvoj tehnologije ekstenzije
Dalji razvoj tehnologije ekstenzije
Dalji razvoj tehnologije ekstenzije
Dalji razvoj tehnologije ekstenzije
Dalji razvoj tehnologije ekstenzije