360 likes | 521 Views
MMX Tehnologija - Chapter 2 -. Definicija MMX tehnologije. MMX tehnologija predstavlja proširenje (ekstenzija) Intel-ove arhitekture, IA, namenjena da ubrza multimedija komunikacione algoritme.
E N D
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
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-dependent izračunavanja Kod nekih multimedia algoritama postoji visok stepen data-parallelism-a, dok je control-flow (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.
Manipulisanje podacima Transponovanje matrice
Aritmetika u fiksnom zarezu FxP aritmetika sa regularnim integer instrukcijama
Operacija množenja kod FxP aritmetike Operacija množenja kod FxP aritmetike Operacija množenja kod FxP aritmetike Aritmetika u fiksnom zarezu Operacija množenja kod FxP aritmetike