Click here to load reader

Jan Nekvapil [email protected] - noel.feld.cvut. · PDF fileAMD architektura K8 (Athlon 64, Sempron, Turion 64, atd.) Intel architektura NetBurst (Pentium 4, Xeon, Celeron, atd.)

  • View
    214

  • Download
    0

Embed Size (px)

Text of Jan Nekvapil [email protected] - noel.feld.cvut. · PDF fileAMD architektura K8 (Athlon 64,...

Jan Nekvapil

[email protected]

ESK VYSOK UEN TECHNICK V PRAZE

Fakulta elektrotechnick

Motivace

MMX, EMMX, MMX+

3DNow!, 3DNow!+

SSE

SSE2

SSE3

SSSE3

SSE4.2

Zvr

2

Efektivn prce s vektory a maticemi

Vektorov grafika (Hry), DSP, vdeck aplikace

SIMD

Single Instruction Multiple Data

Datov typ Packed

Vektor promnnch jednoho typu v jedinm registru

3

MMX = MultiMedia eXtension, (Matrix Math eXtension, atd)

Pedstaveno Intelem v roce 1997

8 registr

Oznaen MMx (MM0 - MM7)

Velikost 64bit

Datov typy

1 x 64bit quad word

2 x 32bit signed/unsigned integer

4 x 16bit signed/unsigned short

8 x 8bit byte

Mapovan na datov registry FPU

Pouv stavov registr FPU

Pracuje pouze s celoselnmi typy

4

57 novch instrukc Rozlien od instrukc x86 prefixem p a postfixem q, d, w

nebo b podle typu operandu

Aritmetick instrukce Znamnkov/neznamnkov aritmetika, saturovan aritmetika

Logick instrukce XOR, OR, AND, NAND

Posuny, rotace Doprava/doleva, Logick/aritmetick

Porovnn =, >

Data packing Pesuny a konverze dat

Pesun dat Mezi registry, mezi pamt a registry

Sprva stavovho registru Instrukce EMMS - vyist stavy FPU registr

5

EMMX = Extended MMX

Rozen MMX od Cyrixu, rok 1997

12 novch instrukc

Instrukce s implicitnm clovm registrem

Pesun dat

Podmnn pesuny dat

Aritmetick operace

Prmr

Nsoben se zaokrouhlenm

6

Rozen MMX od AMD, rok 1999

18 novch instrukc

Sprva cache

Vynucen/obejit zpisu do L1 a L2 cache mikroprocesoru

Pesun dat

Podmnn pesuny dat, PSHUFW

zen vloen/vyjmut dat

Aritmetick operace

Minimum, maximum, prmr, suma absolutnch diferenc

7

Vhody

Zrychlen programu

Nevhody

Pouze celoseln aritmetika => omezen pouit

Chyb horizontln aritmetick instrukce

Chyb vznamn aritmetick instrukce (min, max, )

Chyb podpora prce s cache (originln MMX)

Nepodporuje konstanty

Sdl datov registry a stavov registr s FPU

Pouze 8 datovch registr

Zastaral

Hardwarov podpora

Tm ve od Pentium MMX dle (Intel, AMD, Cyrix)

8

Rozen sady MMX od AMD

Pedstaveno v roce 1998

Pouv registry MMX

Nov datov typ

2 x 32bit float

Obsahuje horizontln i vertikln aritmetick instrukce

9

21 novch instrukc

Prefixem p se vtina instrukc li od FPU instrukc

Aritmetick instrukce v plovouc dov rce

PFADD, PFACC, PFSUB, PFSUBR, PFMUL, PFMIN, PFMAX

PFRCP, PFRSQRT zkladn pesnost (14 15 bit)

PFRCPIT1, PFRCPIT2, PFRSQRTIT1 rozen pesnost (dal kroky Newton-Raphstonovy iterace)

Porovnn

=, >=, > pro typ 2 x 32bit float

Sprva cache

Celoseln aritmetika

Nsoben se zaokrouhlenm, zaokrouhlen prmr

Konverze dat

Pevod mezi 32bit integer a 32bit float

Sprva stavovho registru

Instrukce FEMMS, rychl varianta EMMS

10

Znm tak jako:

3DNow!2

3DNow! Professional

3DNow!ext

Rozen 3DNow! od AMD z roku 1999

5 novch instrukc

Konverze dat

Pevod mezi 16bit integer a 32bit float

Uloen s vmnou float

Horizontln aritmetick instrukce

PFNACC, PFPNACC

11

Vhody

Zrychlen hlavn v oblasti vektorov grafiky

Nevhody

Sdl datov registry a stavov registr s FPU

Nzk pesnost (nevhodn pro vdeck aplikace)

Nepodporuje konstanty

Pouze 8 datovch registr

Zastaral

Hardwarov podpora

K6-2 a novj (3DNow!)

K6-2+ a novj (3DNow!+)

12

SSE = Streaming SIMD Extension

Pedstaveno Intelem v roce 1999

8 novch registr XMMx (XMM0 XMM7)

Velikost 128bit

Datov typy

1 x 128bit

4 x 32bit float

Nov 32bit stavov registr MXCSR

Vyuv se jen spodnch 16 bit

70 novch instrukc

Nov operace v plovouc dov rce (pouze s XMMx registry)

Rozen MMX (celoseln operace)

Pouit SSE mus podporovat operan systm

Prce v Extended modu

Podpora instrukc FXSAVE a FXRSTOR

13

Postfix ss - Scalar Single Floating Point

Postfix ps - Packed Single Floating Point

Aritmetick v plovouc dov rce

+, -, *, /, min, max

sqrt, 1/sqrt, rcp pln pesnost

Aritmetick celoseln

min, max, prmr

Porovnn

=, !=, >, =,

Vhody

Zrychlen hlavn v oblasti vektorov grafiky

Me pracovat paraleln s FPU (krom Pentium III)

Nevhody

Efektivn nat/ukld jen data na adresch zarovnanch na 16 byt

Nepodporuje celoseln typy, nepodporuje konstanty

Pouze 8 registr

Chyb horizontln aritmetick instrukce

(patn implementace na Intel Pentium III)

Hardwarov podpora

Pentium III

Athlon XP

15

Rozen sady SSE

Intel, rok 2001

144 novch instrukc

Nov datov typy

2 x 64bit double

2 x 64bit signed/unsigned long long

4 x 32bit signed/unsigned int

8 x 16bit signed/unsigned

16 x 8bit byte

Je standardn implementovna na vech AMD a Intel x86-64 procesorech

Rozen potu XMMx registr na 16

16

Implementuje MMX instrukce pro celoseln SSE2 packedtypy

Implementuje SSE float instrukce pro SSE2 typ packed double

Postfix sd - Scalar Double Floating Point

Postfix pd - Packed Double Floating Point

Formtovn dat, konverze, penosy dat

Instrukce pro prci s cache

CLFLUSH nemus bt podporovna

17

Vhody

Podporuje vechny standardn pouvan datov typy

Nevhody

Chyb horizontln aritmetick instrukce

Dal viz. SSE

Hardwarov podpora

AMD architektura K8 (Athlon 64, Sempron, Turion 64, atd.)

Intel architektura NetBurst (Pentium 4, Xeon, Celeron, atd.)

Intel Pentium M, Celeron M

Intel architektura Core (Core Duo, Core Solo, atd.)

Intel architektura Core 2 (Core 2 Duo, Core 2 Quad, atd.)

Transmeta Efficeon

Via C7

18

Rozen SSE, SSE2

Intel, rok 2004

13 novch instrukc

Horizontln aritmetick instrukce pro typ packed float a packeddouble

Instrukce pro komplexn aritmetiku

FISTTP

Rychl pevod 32bit float na 32bit int

LDDQU

Efektivn naten dat z adresy nezarovnan na 16byt

Komprese videa

Zrychlen na NetBurst architektue

MONITOR, NWAIT

Podpora Hyper-Threading

Neimplementovno na AMD procesorech

19

SSSE3 = Supplemental Streaming SIMD Extension 3

Rozen MMX a SSE2

2 x 16 novch instrukc

Horizontln aritmetick instrukce pro celoseln packed typy

Hardwarov podpora

Intel Xeon 5100

Intel Core Duo 2

20

Intel, ( rok 2008, Intel Core 2 Duo ? )

54 instrukc

Podmnn pesuny a vkldn

Rozen znamnka

Pevod 32bit float na 32bit integer se zaokrouhlenm

Podle standardu jazyka C, Java nebo Fortran

Porovnvn textovch etzc

Vpoet CRC32

Zjitn potu 1 bit v registru

Pokroil TEST instrukce

Vpoet sumy absolutnch diferenc dvou 8 x byte vektor

HDTV kdovn

Pokroil ten z pamti a periferi

Skalrn souin

21

V souasn dob jsou perspektivn pouze instrukn sady SSE.

Vhody

Zrychlen programu 2-16x nebo i vce

Nevhody

Neefektivn natnm dat z adresy nezarovnan na 16byt

Neefektivn natn a zpracovn jinho potu prvk ne je nsobek prvk v danm packed typu

Nedokonal podpora ze strany kompiltor

Nepodporovan starmi mikroprocesory

22

Dotazy?

[email protected]z

Pouit literatura

softpixel.com

www.wikipedia.org

www.cpuid.com

www.hayestechnologies.com

23

Search related