Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Kontakty Webpage přednášky: –http://ulita.ms.mff.cuni.cz/mff/sylaby/PRG017.HTML Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.

Podobné prezentace


Prezentace na téma: "Kontakty Webpage přednášky: –http://ulita.ms.mff.cuni.cz/mff/sylaby/PRG017.HTML Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické."— Transkript prezentace:

1 Kontakty Webpage přednášky: –http://ulita.ms.mff.cuni.cz/mff/sylaby/PRG017.HTML Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické informace (manuály ap.): –ftp://ulita.ms.mff.cuni.cz/techdoc/index.html Mail: –Jakub.Yaghob@mff.cuni.cz

2 Trocha historie a faktů Zvláštní obvod mimo hlavní procesor = koprocesor 8087, 80287, 80387 80486+ má koprocesor integrovaný (výjímka 80486SX) MMX rozšíření od Pentia MMX/Pentia II – 64-bitové SIMD s celými čísly AMD odpovědělo 3DNow! – 64-bitové SIMD s floaty Pentium III přineslo SSE – 128-bitové SIMD s floaty Pentium IV má SSE2 – 128-bitové SIMD s doubly Datové typy a režim práce odpovídá normám IEEE 754 a IEEE 854

3 Prostředí x87

4 Datové typy x87

5 Stavový registr x87

6 Řídící a tag registry x87 PřesnostPC Single (24-bitů)00 Rezervováno01 Double (53-bitů)10 Extended double (64-bitů)11 ZaokrouhleníRC K nejbližšímu sudému00 Dolů k - ∞ 01 Nahoru k + ∞ 10 Směrem k 011

7 Rozhodování podle výsledku porovnání

8 Instrukční soubor x87 – přesuny dat, konstanty Floating point fld, fst, fstp, fxch, fcmovcc Celá čísla fild, fist, fistp BCD fbld, fbstp Konstanty fldz, fld1, fldpi, fldl2t (log 2 10), fldl2e (log 2 e), fldlg2 (log 10 2), fldln2 (log e 2)

9 Instrukční soubor x87 – aritmetika Floating point fadd, faddp, fsub, fsubp, fsubr, fsubrp fmul, fmulp, fdiv, fdivp, fdivr, fdivrp Celá čísla fiadd, fisub, fisubr fimul, fidiv, fidivr Jiné aritmetické operace fabs, fchs, fsqrt, fprem, fprem1, frndint, fxtract

10 Instrukční soubor x87 – porovnání Floating point fcom, fcomp, fcompp fucom, fucomp, fucompp Celá čísla ficom, ficomp Porovnání a nastavení EFLAGS fcomi, fcomip fucomi, fucomip Testy ftst, fxam

11 Instrukční soubor x87 – ostatní Trigonometrické fsin, fcos, fsincos, fptan, fpatan Logaritmické a exponenciální fyl2x (y*log 2 x) // log b x = (1/log 2 b)  log 2 x fyl2xp1 (y*log 2 (x+1))// blízko 0 f2xm1 (2 x -1)// (-1, 1) fscale Řízení finit, fninit fldcw, fstcw, fnstcw, fstsw, fnstsw fclex, fnclex fldenv, fstenv, fnstenv, frstor, fsave, fnsave fincstp, fdecstp, ffree, fnop wait, fwait

12 Prostředí a datové typy MMX  jenže tohle je v x87 registrech! datové typy 

13 SIMD model Model výpočtu Saturation/Wraparound Datový typDolní mezHorní mez Signed Byte80h7Fh Signed Word8000h7FFFh Unsigned Byte00hFFh Unsigned Word0000hFFFFh

14 Instrukční soubor MMX - aritmetika Aritmetika paddb, paddw, paddd, paddsb, paddsw, paddusb, paddusw psubb, psubw, psubd, psubsb, psubsw, psubusb, psubusw pmull, pmulh, pmadd Porovnání pcmpeqb, pcmpeqw, pcmpeqd pcmpgtpb, pcmpgtpw, pcmpgtpd Pack packsswb, packssdw, packuswb Unpack punpckhbw, punpckhwd, punpckhdq punpcklbw, punpcklwd, punpckldq

15 Instrukční soubor MMX - logika, přesuny Logika (na celých 64 bitech) pand, pandn, por, pxor Posuny psllw, pslld, psllq psrlw, psrld, psrlq psraw, psrad Přesuny (reg-reg, reg-mem, mem-reg) movd, movq Vyčištění (nastaví všechny tagy na EMPTY) emms

16 Prostředí SSE a SSE2

17 MXCSR registr SSE a SSE2

18 Datové typy SSE a SSE2 SSE SSE2

19 Typy operací SSE a SSE2 Paralelní (packed) Skalární

20 Instrukční soubor SSE Pakované a skalární float instrukce –Přesuny dat –Aritmetika –Logika –Porovnání –Přehazování –Konverze 64-bitové SIMD celočíselné instrukce Práce s MXCSR, ukládání/načítání stavu ldmxcsr, stmxcsr fxsave, fxrstor Řízení cacheování, prefetch, určení paměťového pořadí –temporální/netemporální data –prefetch prefetchn –určení paměťového pořadí sfence

21 Instrukční soubor SSE2 Pakované a skalární double instrukce –Přesuny dat –Aritmetika –Logika –Porovnání –Přehazování –Konverze 64-bitové a 128-bitové SIMD celočíselné instrukce 128-bitové rozšíření SIMD celočíselných instrukcí z MMX a SSE Řízení cacheování a určení paměťového pořadí –temporální/netemporální data –vyhození a zneplatnění cache-line clflush –určení paměťového pořadí lfence, mfence –zlepšení spin-locků na Pentiu IV pause –nápověda pro skoky - prefixy 2Eh (not taken), 3Eh (taken), pouze před Jcc

22 Konverze SSE a SSE2


Stáhnout ppt "Kontakty Webpage přednášky: –http://ulita.ms.mff.cuni.cz/mff/sylaby/PRG017.HTML Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické."

Podobné prezentace


Reklamy Google