Architektura počítačových systémů

Podobné dokumenty
Katedra informatiky a výpočetní techniky. 10. prosince Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.

Představení a vývoj architektur vektorových procesorů

Architektury VLIW M. Skrbek a I. Šimeček

Architektura procesorů PC shrnutí pojmů

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Pohled do nitra mikroprocesoru Josef Horálek

Strojový kód. Instrukce počítače

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Architektura Pentia úvod

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Přednáška. Strojový kód a data. 4. Přednáška ISA J. Buček, R. Lórencz

Kvantitativní principy návrhu počítačů

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Kvantitativní principy návrhu počítačů. doc. Ing. Róbert Lórencz, CSc.

OPS Paralelní systémy, seznam pojmů, klasifikace

Řetězené zpracování. INP 2008 FIT VUT v Brně

Jan Nekvapil ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

Pokročilé Architektury Procesorů

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Úvod. Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace POT POT

Paralelní a distribuované výpočty (B4B36PDV)

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

Proudové zpracování instrukcí II. Hazardy v proudovém zpracování Proudové zpracování FP instrukcí

Proudové zpracování instrukcí I. Celočíselná pipeline RISC

Pamět ová hierarchie, virtuální pamět. doc. Ing. Róbert Lórencz, CSc.

Intel (2) Intel (1) Intel (3) Intel (4) Intel (6) Intel (5) Nezřetězené zpracování instrukcí:

Architektura procesoru ARM

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Provádění instrukcí. procesorem. Základní model

Pokročilé architektury počítačů

Výkonnost počítačů, empirické zákony o výkonnosti. INP 2008 FIT VUT v Brně

CHARAKTERISTIKA MODERNÍCH PENTIÍ. Flynnova klasifikace paralelních systémů

C2115 Praktický úvod do superpočítání

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ

Techniky zvýšení výkonnosti procesoru, RISC a CISC procesory

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Základní uspořádání pamětí MCU

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Architektura Intel Atom

Ivan Šimeček, Pavel Tvrdík

a operačních systémů

Co je grafický akcelerátor

Princip funkce počítače

Vstupně - výstupní moduly

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Principy počítačů I - Procesory

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Principy počítačů a operačních systémů

8. Laboratoř: Aritmetika a řídicí struktury programu

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

Sběrnicová architektura POT POT. Jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenáší data oběma směry.

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

ARCHITEKTURA PROCESORŮ

Cache paměť - mezipaměť

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Pokročilé architektury počítačů

Architektura počítače

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Datové struktury 2: Rozptylovací tabulky

Vstupně výstupní moduly. 13.přednáška

Architektury počítačů a procesorů

Charakteristika dalších verzí procesorů v PC

Technické prostředky počítačové techniky

Procesor z pohledu programátora

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Architektury CISC a RISC, uplatnění v personálních počítačích

MSP 430F1611. Jiří Kašpar. Charakteristika

Principy komunikace s adaptéry periferních zařízení (PZ)

Výukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití.

Pamět ová hierarchie, návrh skryté paměti 2. doc. Ing. Róbert Lórencz, CSc.

Úvod do GPGPU J. Sloup, I. Šimeček

Procesor. Procesor FPU ALU. Řadič mikrokód

Procesor. Hardware - komponenty počítačů Procesory

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Pamět ová hierarchie, návrh skryté paměti cache 2

Kvantitativní principy návrhu počítačů

Metody připojování periferií BI-MPP Přednáška 2

Ro R dina procesor pr ů Int In e t l Nehalem Šmída Mojmír, SMI108 PAP PA 2009

PROCESOR. Typy procesorů

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

Paměťový podsystém počítače

RISC a CISC architektura

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 TECHNICKÉ VYBAVENÍ POČÍTAČŮ

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Operační systémy. Přednáška 8: Správa paměti II

Přerušovací systém s prioritním řetězem

Vyuºití GPGPU pro zpracování dat z magnetické rezonance

Systém adresace paměti

Disková pole (RAID) 1

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Adresní mody procesoru

Transkript:

1-1 10. Přednáška 10. přednáška Vektorové procesory Róbert Lórencz

1-2 10. Přednáška Obsah Úvod DLXV Instrukční typy Adresace Proudové zpracování Časová náročnost vektorových instrukcí Výkonnostní rovnice

1-3 10. Přednáška Problémy konvenčního přístupu Hranice využití ILP 1. Hodinová frekvence pipeline: od určité úrovně každé zvyšování hodinové frekvence způsobuje zvýšení CPI (skoky a jiné hazardy) 2. Načtení a dekódování instrukcí: od určité hranice je obtížné načítat a dekódovat více instrukcí za jeden takt 3. Cache hit rate: pro dlouhodobě běžící (vědecké) aplikace s rozsáhlými datovými soubory je malý cache hit rate způsobený slabou prostorovou lokalitou dat; souvislé datové řetězce (multimédia) mají slabou časovou lokalitu dat

1-4 10. Přednáška Vektorový procesor (VP) základy 1 Koprocesor, který je speciálně navržen pro provádění vektorových výpočtů Často používaný ve vektorových superpočítačích, také může být připojen knějakému skalárnímu CPU Vykonává operace na vektorech, např. jeden průchod smyčkou ( 64-prvků FP vektor), počet načtených instrukcí rapidně klesá Vektorové instrukce: výpočet jednoho prvku výsledního vektoru je nezávislý na výpočtu jiných prvků vektoru hluboká pipeline je bez datových hazardů Vektorové prvky mají známy formát přístupu do paměti M prokládaná paměť M pracuje efektivně (nahrazuje cache) M latence je jen jednou pro první prvek vektoru Překládaná paměť M je dražší než paměti cache Řídící hazardy přítomné u skalárního zpracování se zde nevyskytují

1-5 10. Přednáška Vektorový procesor základy 2 Vektorové proudové zpracování Aritmetických operací Paměťových operací Efektivní výpočet adres pro jednotlivé elementy vektoru Současné vykonávání několika vektorových operací Základní architektura vektorových počítačů VP = obyčejná proudově pracující jednotka + vektorová jednotka Paměť paměť VP: neúspěšná architektura Procesor s vektorovými registry (L/S architektura)

1-6 10. Přednáška Vektorový procesor architektura DLXV Hlavní paměť Vektorová L/S jednotka FP add/subtract 1slovo/ takt + ini. latence Vektorové registry 8 registrů 16 R portů 8 W portů Každý registr 64 elementů 64 b / element (DP) Skalární registry 32 GP registrů 32 FP registrů Vícenásobné R/W porty FP multiply FP divide Integer Logical Cross-bar

1-7 10. Přednáška Vektorový procesor komponenty Vektorové registry: pevná délka, uchovává jeden vektor minimálně: 2 čtecí a 1 zapisovací port typicky: 8-32 vektorových registrů, každý z nich uchovává 64-128 64-bitových prvků Vektorové funkční jednotky - Vector Functional Units (FUs): plně proudově pracující, každý takt je startována nová operace Typicky: 4 až 8 FUs: FP add, FP mult, FP reciprocal (1/X), integer add, logical, shift; může být i více stejných jednotek Vektorové Load-Store Units (LSUs): plně proudově pracující jednotka, provádí load, nebo store nějakého vektoru; může být i více stejných jednotek LSUs Skalární registry: jeden element pro FP skalár nebo adresu Cross-bar propojuje FUs, LSUs, registry

1-8 10. Přednáška Vektorový procesor vektor-registr architektura Charakteristika vektorových procesorů Procesor rok Clock [MHz] Regs # prvků #FUs #LSUs Cray 1 1976 80 8 64 6 1 Cray C-90 1991 240 8 128 8 4 Convex C-4 1994 135 16 128 3 1 Fuj. VP300 1996 100 8-256 32-1024 3 2 NEC SX/4 1995 400 8+8K 256 var. 16 8 Cray J-90 1995 100 8 64 4 Cray T-90 1996 500 8 128 8 4 FP add, FP multiply, FP reciprocal, integer add, 2 logical shift, population count/parity

1-9 10. Přednáška Vektorový procesor typy instrukcí 1 Typy instrukcí pro architekturu procesoru: vektor - registr 1. vektor - vektor, 1 nebo 2 operandy f 1 : V i V j V 2 = sin(v 1 ) f 2 : V i x V j V k V 3 = V 1 + V 2 2. vektor - skalár f 3 : s x V i V j V 2 = s.v 1 3. vektor paměť f 4 : V M f 5 : M V 4. vektorová redukce f 6 : V i s Max, min, sum, střední hodnota f 7 : V i x V k s Skalární součin s = V 1. V 2 5. gather (sběr) f 8 : M x V 0 V 1 nenulové prvky řídkého vektoru V 1 jsou načtené s M s použitím předpisu ve vektoru V 0

1-10 10. Přednáška Vektorový procesor typy instrukcí 2 6. scatter (rozložení) f 9 : V 1 x V 0 M 7. maskování f 10 : V 0 x V m V 1 prvky hustého vektoru V 1 jsou uložené do řídkého vektoru v M s použitím předpisu ve V 0 komprese/expanze vektoru vektor vektor - vektor vektor - skalar Reg. V i V j V k Reg. V i V j Skalar reg. 1 2 n s 1 2 n Výkonní jednotka Výkonní jednotka

1-11 10. Přednáška Vektorový procesor typy instrukcí 3 gather (sběr) VL reg. V 0 V 1 M data/ adr. vektor paměť Load Reg. V 4 4 2 600 400 200 100 300 101 6 250 400 102 Paměť M Store A 0 0 200 500 103 600 104 100 100 105 Proudově pracující L/S jednotky Bázová adresa 250 106

1-12 10. Přednáška Vektorový procesor typy instrukcí 4 scatter (rozložení) maskování VL reg. V 0 V 1 M data/ adr. V 0 (testován) V 1 (výsledek) A 0 4 100 Bázová adresa 4 2 6 0 600 400 250 200 200 100 x 101 400 102 x 103 600 104 x 105 250 106 VL reg 8 0 20 0 5 0 11001010 0 24 VM reg. 13 01 03 06 07

1-13 10. Přednáška Vektorový procesor typy instrukcí DLXV 1 Aritmetické instrukce Instr. Operandy Operace Činnost ADDV V1,V2,V3 V1=V2 + V3 vektor + vektor ADDSV V1,F0,V2 V1=F0 + V2 skalar + vektor MULTV V1,V2,V3 V1=V2 x V3 vektor x vektor MULSV V1,F0,V2 V1=F0 x V2 skalar x vektor SUBV V1,V2,V3 V1=V2 V3 vektor vektor SUBVS V1, V2, F0 V1=V2 F0 vektor skalar SUBSV V1,F0,V2 V1=F0 V2 skalar vektor DIVV V1,V2,V3 V1=V2 / V3 vektor vektor DIVVS V1, V2, F0 V1=V2 / F0 vektor skalar DIVSV V1,F0,V2 V1=F0 / V2 skalar vektor

1-14 10. Přednáška Vektorový procesor typy instrukcí DLXV 2 Load / store instrukce Instr. Operandy Operace Činnost LV V1,R1 V1=M[R1..R1+63] load, stride=1 LVWS V1,(R1,R2) V1=M[R1..R1+63xR2] load, stride=r2 LVI V1,(R1,V0) V1=M[R1+V0(i),i=0..63] nepř.("gather") SVWS (R1,R2), V1 M[R1..R1+63xR2] = V1 store, stride=r2 SVI V1,(R1,V0) M[R1+V0(i),i=0..63] = V1 nepř.( scatter") CVI V1,R1 V1 =compr((i*r1) & VM) vytváří index vektor MOVI2S VLR,R1 Vec. Len. Reg. = R1 urči délku vektoru MOVS2I R1,VLR R1 = Vec. Len. Reg. R1 = délka vektoru MOV VM,R1 Vec. Mask = R1 vytváří mask. vektor

1-15 10. Přednáška Operace s pamětí - adresace Load/store operace přesouvají skupiny dat mezi registry a pamětí 3 typy adresace: Unit stride (jednotkový krok) = nejrychlejší Non-unit stride (konstatní krok) Indexed (indexový)=(gather-scatter) Vhodný pro řídké rozložení dat vektor stride Sousedící prvky vektoru v paměti nejdoucí po sobě do 10 i = 1,100 do 10 j = 1,100 A(i,j) = 0.0 do 10 k = 1,100 10 A(i,j) = A(i,j)+B(i,k)*C(k,j)

1-16 10. Přednáška Operace s pamětí vektor stride 1 Přístup k prvkům B nebo C v paměti není sekvenční Stride: vzdálenost sousedících elementů jednoho vektoru zapsaných v paměti vektor (cache - unit stride) LVWS (load vector with stride) instrukce Stride mohou způsobit konflikty bank (např.: stride = 32 a 16 bank) v[0] = M[x] Unit stride v[1] = M[x+1] v[n-1] = M[x+n-1] x v[0] v[4] v[1] v[5] v[2] v[6] v[3] v[7] Paměťové banky

1-17 10. Přednáška Operace s pamětí vektor stride 2 Konstantní stride v[0] = M[x] v[1] = M[x+s] x v[n-1] = M[x+(n-1)*s] v[0] v[2] v[4] v[6] S=2 v[1] v[3] v[5] v[7] Paměťové banky Příklad: 16 pam. modulů, čtecí latence = 12 taktů načíst 64-elementů vektoru se a) stride = 1 a b) stride = 32 Řešení: a) doba trvání: 12 + 63 = 75 taktů b) doba trvání: 12 x 64 = 768 taktů každý přístup koliduje s předchozím

1-18 10. Přednáška DAXPY loop Y = a X + Y - skalár vs. vektor Mějme vektory X, Y délky 64 elementů a skalár a DLX kód 600 vykonaných instrukcí MULD musí čekat na LD ADDD musí čekat na MULD SD musí čekat na ADDD LD F0,a ADDI R4,Rx,#512 ;last address to ld lp: LD F2, 0(Rx) ;load X(i) MULTD F2,F0,F2 ;a*x(i) LD F4, 0(Ry) ;load Y(i) ADDD F4,F2, F4 ;a*x(i) + Y(i) SD F4,0(Ry) ;store into Y(i) ADDI Rx,Rx,#8 ;inc. index to X ADDI Ry,Ry,#8 ;inc. index to Y SUB R20,R4,Rx ;compute bound BNZ R20,lp ;check if done DAXPY: malá část Linpack benchmarku, double precision

1-19 10. Přednáška DAXPY loop Y = a X + Y - skalár vs. vektor 64 vektorových operací + Bez režie cyklu a také 64x méně pipeline hazardů DLXV kód LD F0,a ;load scalar a LV V1,Rx ;load vector X MULTS V2,F0,V1 ;vector-scalar mult. LV V3,Ry ;load vector Y ADDV V4,V2,V3 ;add SV Ry,V4 ;store the result DLX vs. DLXV 578 (2+9*64) vs. 321 (1+5*64) operací 1.8x 578 (2+9*64) vs. 6 instrukcí 96x

1-20 10. Přednáška Vektorové proudové zpracování (pipeline) 1 Bez datových hazardů - stalls Není potřeba speciální HW na řešení stalls

1-21 10. Přednáška Vektorové proudové zpracování (pipeline) 2 Paralelní výpočet Bez datových hazardů -stalls Všechno nebo část je možné vykonávat paralelně

1-22 10. Přednáška Vektorové proudové zpracování (pipeline) 3 Paralelní & proudové zpracování

1-23 10. Přednáška Vektorové proudové zpracování (pipeline) 4 Chaining (řetězení) Způsob forwardingu rozšířeného na vektorové registry MULV V1, V2, V3 ; ADDV může začít hned když je V1(1) dostupné ADDV V4, V1, V5 MULV ADDV Bez řetězení Chaining Zkráceně MULV ADDV MULV

1-24 10. Přednáška Doba vektorových výpočtů 1 Time (čas) = f(vektorová délka, datové závislosti, strukt. hazardy) Initiation rate (četnost spouštění): míra schopnosti FU zpracovat více vektorových elementů současně (= # lanes; obyčejně 1, nebo 2 na Cray T-90) Convoy (konvoj): množina vektorových instrukcí, které mohou začít vykonávat v tom samém čase (žádné strukt. nebo datové hazardy), konvoje se nepřekrývají Chime: přibližný čas pro vektorovou operaci m convoys take m chimes; když délka vektorů je n, potom potřebuje přibližně m x n taktů na provedení výpočtu (ignoruje se overhead; dobra aproximace pro dlouhé vektory) 1: LV V1,Rx ;load vector X DLXV kód 2: MULV V2,F0,V1 ;vector-scalar mult. LV V3,Ry ;load vektor Y 3: ADDV V4,V2,V3 ;add Konvoje bez řetězení 4: SV Ry,V4 ;store the result

1-25 10. Přednáška Doba vektorových výpočtů 2 Předpokládejme: Frekvence, se kterou vektorová jednotka zpracuje operandy a vypočítá výsledky = 1/clock cycle Kombinovaná vektorová funkce (convoy) je provedena přibližně za n taktů Řetězení dat závislé instrukce Startovací čas (úměrný pipeline latence) konvoj 1 Jednotka takty konvoj 2 L/S 12 (1 x L/S access pipes) konvoj 3 12 7 n-1= 63 ADD 6 12 6 n-1= 63 MULT 7 12 n-1= 63 DIV 20 Konvoje s řetězením Jen 1 paměťová pipe 1: LV V1,Rx MULV V2,F0, V1 2: LV V3,Ry ADDV V4,V2,V3 3: SV Ry,V4 36 + 13 + 3 x n = 238 taktů 238/n = 3.72 taktů / element

1-26 10. Přednáška Doba vektorových výpočtů 3 1: LV V1,Rx MULV V2,F0, V1 LV V3,Ry ADDV V4,V2,V3 SV Ry,V4 2 load pipes & 1 store pipe Konvoj s řetězením konvoj 1 12 7 n-1 = 63 T(n) = 12 + 7 + 6 +12 + n = 37 + n 100/n = 1.56 taktů / element lim T ( n) / n = 1 n 12 6 n-1 = 63 12 n-1 = 63

1-27 10. Přednáška Délka vektoru Co dělat v případě, že vektorová délka není přesně 64 (DLXV)? vektor-length register (VLR) řídí vektorové operace podle délky vektorů jako: vektor load/store. (délka vektoru kapacita vektorového registrů ) do 10 i = 1, n 10 Y(i) = a * X(i) + Y(i) Neznáme n dokud program běží! Může se měnit v průběhu provádění programu n > max. vektor length (MVL)? vektor je delší než MVL strip mining technika strip vektorový segment, takový, že každý vektorová operace je vykonávána pro velikost MVL

1-28 10. Přednáška Délka vektoru strip mining Strip mining: generování takového kódu, že každá vektorová operace je prováděna pro velikost MVL 1. smyčka provádí n mod MVL část vektoru, pro zbytek výpočtu je VL = MVL low = 1 VL = (n mod MVL) /*nelezení zbývající části*/ do 1 j = 0, (n / MVL) /*vnější smyčka*/ do 10 i = low, low+vl-1 /*výpočet pro VL*/ Y(i) = a*x(i) + Y(i) /*výpočet*/ 10 continue low = low+vl /*start dalšího vektoru*/ VL = MVL /*délka pro zbytek výpočtu*/ 1 continue Vektorové části: 1. Segment má (n mod MVL) prvků n/mvl segmentů má každý MVL prvků

1-29 10. Přednáška Výkonnosní rovnice f = taktovací frekvence, n = vektorová délka, c = # konvojů T START = doba potřebná pro start, T LOOP = čas potřebný pro strip mining # taktů pro délku vektoru n T(n) = n /MVL x (T START + T LOOP ) + n x c Příklad: DAXPY na DLXV 200 MHz, n = 200, T START = 37, T LOOP = 15, c = 3 Řešení: T(n) = n /64 x (37 + 15) + n x 3 = 808 taktů 808*5 ns = 4.04 µs 808/n = 4.04 taktů / element

1-30 10. Přednáška Vektorová metrika R : MFLOPS odhadnuta na nekonečně dlouhém vektoru reálné problémy nemají nekonečně dlouhé vektory a navíc čas potřebný pro nastartování mají větší N 1/2 : vektorová délka potřebná pro dosažení poloviny R hodná pro měření vlivu času potřebného pro nastartování N V : vektorová délka potřebná pro učinění vektorového zpracování rychlejším než zpracování sekvenční skalární mód zahrnuje čas potřebný pro start, a také kvalitu propojení; vyjadřuje zrychlení skalárního zpracování oproti vektorovému

1-31 10. Přednáška Podmíněné vykonávání instrukcí Předpokládejme: do 100 i = 1, 64 if (A(i).ne. 0) then A(i) = A(i) B(i) endif 100 continue vector-mask control -- řízení pomocí maskování se provádí pomocí nějakého Booleovského vektoru: kde vector-mask register je načten z vektorového testu, vektorová instrukce se provádí pouze na těch vektorových elementech, pro které je na stejné pozici vector-mask registru logická 1.

1-32 10. Přednáška Výhody vektorového zpracování Lehce získat velký výkon; n operací: nezávislé používají stejnou funkční jednotku přístup k odděleným registrům přístup k sousledným paměťovým slovům nebo ke slovům se známým vzorem možnost využívat velké propustnosti při přístupu do paměti skrytá paměťová latence (a další typy latencí) Scalability (škálovatelnost): možnost zvýšit výkonnost když máme k dispozici více HW! Compact: zápis n operací s 1 krátkou instrukcí (v. VLIW) Predictable: reálný výkon vs. Statistická pravděpodobnost (cache) Multimedia: možnost výběru: N * 64b, 2N * 32b, 4N * 16b, 8N * 8b Vyspělost: vývoj překladačů Nevýhody: není in?!

1-33 10. Přednáška Aplikace Jsou ohraničené vědeckými výpočty? Multimedia processing ((de)compress, graphics, audio synth, image proc.) Standardní benchmarková jádra (násobení matic, FFT, konvoluce, řazení) Ztrátová komprese (JPEG, MPEG video a audio) Bezeztrátová komprese (Zero removal, RLE, Differencing, LZW) Kryptografie (RSA, DES/IDEA, SHA/MD5) Rozeznávání řeči a písma OS/Networking (memcpy, memset, parity, checksum) Databáze (hash/join, data mining, image/video serving) Language run-time support (stdlib, garbage collection) SPECint95

1-34 10. Přednáška Záludnosti Soustředění se na získání co největší výkonnosti a opomenutí času na startovací N V (délka rychlejší než skalár) > 100! Zvětšování výkonnosti bez znalosti Amdahlova zákona Slušná výkonnost, ale problém se šířkou paměťového přenášeného pásma s pamětí MMX?

1-35 10. Přednáška Vektorové počítače - shrnutí Alternativní model zahrnující velkou latenci paměti, nespoléhá na cache jako Out-of-Order, superskalární a VLIW architektury Mnohem jednodušší na hardware: výkonnější instrukce, předvídatelnější přístupy do paměti, méně hazardů, méně skoků, méně špatně předpovězených skoků, Kolik % výpočtu je vektorizovatelných? Hodí se vektorová architektura na nové aplikace, jako multimédia, DSP?