21
Pokročilé architektury počítačů (PAP_03.ppt) Karel Vlček, karel .vlcek@ vsb . cz katedra Informatiky, FEI VŠB Technická Univerzita Ostrava

Pokročilé architektury počítačů (PAP_03)

  • Upload
    gretel

  • View
    48

  • Download
    0

Embed Size (px)

DESCRIPTION

Pokročilé architektury počítačů (PAP_03.ppt). Karel Vlček , [email protected] katedra Informatiky, FEI VŠB Technická Univerzita Ostrava. Procesory s velmi dlouhým instrukčním slovem (VLIW). VLIW ( Very Long Instruction Word ) jsou podtřídou superskalárních procesorů - PowerPoint PPT Presentation

Citation preview

Page 1: Pokročilé architektury počítačů (PAP_03)

Pokročilé architektury počítačů (PAP_03.ppt)

Karel Vlček, [email protected] katedra Informatiky, FEIVŠB Technická Univerzita Ostrava

Page 2: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 2

Procesory s velmi dlouhým instrukčním slovem (VLIW)

VLIW (Very Long Instruction Word) jsou podtřídou superskalárních procesorů

Motivací pro toto řešení architektury je zvýšení výkonnosti na úrovni instrukcí ILP (Instruction Level Parallelism)

Odpovědnost za výběr instrukcí, které mají být provedeny současně je pouze na kompilátoru

Page 3: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 3

Plánování instrukcí

Superskalární procesory plánují a vydávají instrukce z malé množiny instrukcí za běhu, je plánování a vydávání instrukcí u VLIW procesorů zkoumáno při kompilaci mnohem více instrukcí, někdy i celý program

Poprvé byla použita VLIW architektura v roce 1975 u numerických koprocesorů FPS-120B

Page 4: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 4

Generický procesor VLIW

Proti superskalárním procesorům je dekódování u VLIW procesorů velmi jednoduché, proto u nich chybí jednotka dekódování a vydávání instrukcí

Potřebné nejsou ani rezervační paměti a jednotky plánování, protože jsou důsledně plněny podmínky datové závislosti

Je to posun od složitého hardwarového řešení k použití inteligentního překladače

Page 5: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 5

Datová závislost u VLIW procesorů

Architektura VLIW řeší problém datové závislosti použitím velkého počtu registrů, do nichž jsou ukládány mezikódy vytvářené kompilátorem

Kompilátor na základě analýzy latencí a počtu funkčních jednotek plánuje tok dat přes registry tak, aby byly dodrženy všechny pravé datové závislosti

Page 6: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 6

Spekulativní zpracování instrukcí

Zohledňuje se tzv. programové řetězení (software pipelining)

Spekulativní zpracování instrukcí existuje i u superskalárních procesorů i u procesorů VLIW

Procesory VLIW přitom používají informace z analýzy profilace a plánování kompilátorem

Pro skokové instrukce je používána predikce

Page 7: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 7

Plánování instrukcí kompilátorem

Není možné připravovat program ručně Program je připravován kompilací do

mezijazyka, po jeho optimalizaci je generován kód pro cílovou architekturu VLIW

Metodou vytváření tzv. základních bloků (basic blocks) se program vytváří jako pospojování částí programu, které nemají skoky

Page 8: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 8

Acyklické plánování a predikce

Program v mezijazyce používá operace s registry a operace L/S (Load/Store)

Acyklické plánování pracuje se seznamem základních bloků a s tzv. acyklickým grafem

Plánování se zarážkami (sentinel scheduling) je technika, která usnadňuje acyklické plánování při spekulativním provádění instrukcí

Page 9: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 9

Predikační provádění instrukcí

Technika tzv. predikačního provádění (predicated execution) instrukcí velmi usnadňuje plánování operací

Predikáty (predicates) jsou jednobitové registry, které určují zda budou výsledky propuštěny nebo zahozeny

Tato technika vyžaduje odporu v hardware

Page 10: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 10

Predikace a podmíněné skoky

Predikace napomáhá snaze programátora, aby navržený program byl co nejvíce lineární

Při použití techniky predikace se výsledný program formátuje do tzv. hyperbloků (hyper-block formation)

Instrukce pak mohou být jednoduše přesouvány v rámci hyperbloků

Page 11: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 11

Cyklické plánování (1)

Vysokého paralelismu zpracování se dosahuje u implementace programů smyček pomocí tzv. cyklického plánování

Takové seřazení instrukcí se označuje jako programové zřetězení (software pipelining)

Naplánování smyčky je možné při předem známém počtu iterací a absencí dalších skoků v těle smyčky

Page 12: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 12

Cyklické plánování (2)

Závislost mezi iteracemi smyčky (loop-carried dependency) se dá odstranit použitím dalších registrů nebo podporou v hardware

Podpora v hardware se děje pomocí tzv. rotujících registrů (rotating registers)

Programové řetězení není omezeno jen na architekturu VLIW, je možné i pomocí tzv. přejmenování registrů

Page 13: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 13

Zhodnocení architektury VLIW

Důležitý je přínos optimalizujícího kompilátoru, který při analýze vyhodnotí instrukční paralelismus

Plánovací algoritmus bere v úvahu latence menší nebo rovné určité hodnotě času

Největším přínosem je zvýšení využití ILP (Instruction Level Parallelism)

Využívají paralelismu i v nepravidelně strukturovaném programu

Page 14: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 14

Nové architektury VLIW

INTEL IA-64: 128 registrů, 64 predikátů, 8 branch registers, architektura EPIC (Explicitly Parallel Instruction Computing)

DSP TMS 320C67x: signálový procesor s pohyblivou řádovou čárkou, adresová aritmetická jednotka, násobička FX i FP, dvě jednotky pro aritmetické a logické operace

Multimediální procesory (viz speciální část)

Page 15: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 15

Vektorové procesory

Cílem je zrychlit práci s vektory a maticemi Využití u vědeckotechnických výpočtů

zpracovávané smyčkou přes všechny prvky vektorů

Jsou obdobou architektury L/S (Load/Store) Typické je zřetězení přístupů do tzv.

prokládané paměti (inteleaved memory)

Page 16: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 16

Základní rysy architektury vektorového procesoru (1)

Vektorové instrukce jsou ekvivalentní plně rozvinuté skalární smyčce

Prokládaná paměť místo paměti D-cache Soubor registrů u nichž je délka

přizpůsobována délce zpracovávaných vektorů

Počet načítaných instrukcí je výrazně menší Latence hlavní paměti je pouze na začátku

Page 17: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 17

Základní rysy architektury vektorového procesoru (2)

Výpočet každého prvku je nezávislý na jiných prvcích (nezpůsobuje datové konflikty)

Řídicí konflikty nevznikají Vektorové funkční jednotky provádějí

aritmetické a logické operace (+, -, x, posuv) Několik vektorových operací může probíhat

současně Spolupracují zpravidla se skalárními

procesory

Page 18: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 18

Zpracování vektorových instrukcí

Operace mezi dvěma vektory Operace mezi vektorem a skalárem Přesuny mezi registry a pamětí (L/S) Shrnutí nenulových prvků Rozptýlení nenulových prvků Instrukce maskování Redukce jednoho nebo dvou vektorů na

skalár

Page 19: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 19

Doba provádění instrukcí vektorových procesorů

Operace zpracovávají jeden operand v každém taktu

Konvoje zpracování se nepřekrývají Při datové závislosti se data předávají Počáteční latence: L/S 12 taktů, sčítačka 6

taktů, násobička 7 taktů, dělička 20 taktů Zpracování probíhá postupně „po

proužcích“ (strip-mining technique)

Page 20: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 20

Výkonnost vektorových procesorů

Výkonnost procesorů u vektorových výpočtů FP je dána počtem taktů potřebných na výpočet výsledného vektoru délky n:

R = lim((FPP*n)/(T(a)*doba_taktu)

Skutečná výkonnost je vždy menší než limitní hodnota R

Page 21: Pokročilé architektury počítačů (PAP_03)

Karel Vlček Pokročilé architektury procesorů 21

Literatura:

Dvořák, V.: Architektura a programování paralelních systémů, VUTIUM Brno, (2004), ISBN 80-214-2608-X

Dvořák, V., Drábek, V.: Architektura procesorů, VUTIUM Brno, (1999), ISBN 80-214-1458-8

Drábek, V.: Výstavba počítačů, PC-DIR, s.r.o. Brno, (1995), ISBN 80-214-0691-7

Mueller, S.: Osobní počítač, Computer Press, Praha, (2001), ISBN 80-7226-470-2

Pluháček, A.: Projektování logiky počítačů, Vydavatelství ČVUT Praha, (2003), ISBN 80-01-02145-9