Zpět na článek

Diskuze: IBM začalo s 65nm výrobou procesoru Cell

Nejsi přihlášený(á)

Pro psaní a hodnocení komentářů se prosím přihlas ke svému účtu nebo si jej vytvoř.

Milan Šurkala
Milan Šurkala
SHW SHW
Operační systém: PC
Procesor: AMD
Grafická karta: NVIDIA
13. 3. 2007 16:59

Komentáře tohoto uživatele máš zablokované.

SSE jsou 128-bitove, maji sirku 128 bitu, vlozite do nich 2 64-bitove promenne, nebo 4 32-bitove, az 16 8-bitovych. Core 2 Duo pokud je mi znamo, dokaze v kazdem taktu dokoncit jednu SSE operaci, kdezto jine procesory na to potrebuji minimalne takty dva. Jak je to v Cellu netusim, o to jsem se prilis nezajimal.

Vypocty SIMD zkusim vysvetlit treba na vypoctu ja nevim, ceny s DPH pro vsechny polozky v databazi. Mate 1000 vyrobku, ktere maji cenu bez DPH a vy potrebujete spocitat pro vsechny cenu s DPH. Normalne byste udelali takto: vezmete prvni polozku, vynasobite to 1,19 a mate vysledek, vezmete druhou polozku, vynasobite 1,19 a mate dalsi vysledek. Pro kazde spocitani (dejme tomu ze databazi zde mame ve forme klasickeho pole[]) potrebujeme nacist jednu hodnotu, vynasobit a ulozit vysledek, tedy 3×1000 operaci = 3000 operaci.
SIMD instrukce umozni nahrat do SSE registru treba 8 hodnot, vsechny na jeden zatah vynasobit cislem 1,19 a opet na jeden zatah ulozit. Dostanete tedy 3×1000/8 operaci, tedy 375 operaci, samozrejme musite pocitat s tim, ze treba nacteni osmi hodnot do SSE registru trva trochu dele nez nacteni hodnoty jedne do standardniho registru, nicmene je to stale casove uspornejsi nez nacteni osmi hodnot zvlast.

Proc je instrukci tolik? Je to pomerne jednoduche, vezmete si jednoduche scitani. Jen to muzete u SSE pouzit v sesti pripadech, na scitani celociselnych 8-bitovch, 16-bitovych, 32-bitovych, 64-bitovych promennych a desetinnych 32-bitovych a 64-bitovych. To mate hned sest instrukci vzhledem k datovym typum, ktere do nich vstupuji. Dale existuji tri typy scitani, s kontrolou preteceni, nez kontroly a este jedno (ted presne nevim, myslim, ze je to neco s bezeznamenkovym scitanim). Muze-li byt v registru cislo 0-255, pak mame-li tam cislo 250 a pricteme cislo 10, tak s kotrolou preteceni dostaneme 255, bez kontrly dostaneme cislo 5. Takze to mate hned dalsi 3 moznosti, celkem uz 6×3 = 18 moznosti jen pro jednoduche scitani. Ted si vezmete odcitani, nasobeni a deleni, mate 54 instrukci.
Dale zde mate pakovaci instrukce, ktere rozhodi data opet po bytech (8b), slovech (16b), dvojslovech (32b) nebo ctyrslovech (64b) do registru ci je naopak slozi zpatky, mnoho porovnavacich instrukci (opet pro nejruznejsi datove typy), instrukce pro presun mezi registry, registry a pameti (ty mohou byt klasicke MOVQ, MOVD u MMX nebo zarovnane MOVDGA nebo nezarovnane MOVDQU u SSE. Nesmim zapomenou na logicke funkce OR? XOR, samozrjme v jejich SSE verzi POR PXOR, PAND,... a funkce bitoveho posunu. A to jsem zminil jen zakladni typy instrukci u MMX, SSE pridava dalsi silenosti, ktere snad ani nejdou vyuzit. SSE3 konecne prinas nekolik horizontalnich operaci, nektere jsou i v SSE2, napriklad secteni dvou cisel a vynasobeni, ci tak nejak. Proste je toho hodne pro vsechny mozne moznosti datovych typu a stale mi nektere instrukce chybi.

Milan Šurkala
Milan Šurkala
SHW SHW
Operační systém: PC
Procesor: AMD
Grafická karta: NVIDIA
13. 3. 2007 15:10

Komentáře tohoto uživatele máš zablokované.

MMX jednotky jsou 64-bitové jednotky, kde můžete dát 1x 64-bitovou, 2x32-bitove, 4x16-bitove ci 8x8-bitovych promennych. SSE umoznuje totez, akorat ma 128-bitu, takze se jich tam vejde dvakrat tolik. SSE navic podporuje i desetinna cisla, zatimco MMX pouze celociselna. Celkem je v procesoru 8 registru MMX (namapovany na registry ST, ktere se pouzivaji pro desetinne vypocty, proto nelze kombinovat MMX kod a x87 kod s desetinnymi cisly) a 8 vlastnich 128-bitovych registru SSE (XMM0-XMM7). Procesory AMD Athlon 64 v 64-bitovem rezimu maji aktivnich 16 SSE registru XMM0-XMM15, jak je tomu u Pentii a Core 2 Duo, netusim.

Vektorove jednotky v PowerPC jsou znamy napriklad pod nazvem Altivec, Velocity Engine nebo VMX. To plati pro prvni generaci techto jednotek, novejsi procesory jako IBM Cell maji VMX128, tedy druhou generaci, ktera castecne z puvodniho Altivecu vychazi. Prvni generace mela 32 techto 128-bitovych registru, VMX128 jich ma dokonce 128. Zatim mi neni jasne, proc jich je tolik, ja osobne jsem si jakz takz vystacil s osmi XMM registry a pokud mi nekdy chybely, tak takovych 12 registru celkem by to spravilo. VMX podporuje specialni RGB pixel datovy typ a oproti SSE podporuje podstatne vice horizontalnich operaci, ktere Intel ve vetsim pridal az do SSE3, AMD uz je melo v prvnim 3DNow!

Reklama
Reklama