210 likes | 318 Views
Pokročilé architektury počítačů (PAP_03.ppt). Karel Vlček , karel.vlcek@vsb.cz 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ů
E N D
Pokročilé architektury počítačů (PAP_03.ppt) Karel Vlček, karel.vlcek@vsb.cz 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ů • 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 Pokročilé architektury procesorů
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 Pokročilé architektury procesorů
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 Pokročilé architektury procesorů
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 Pokročilé architektury procesorů
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 Pokročilé architektury procesorů
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 Pokročilé architektury procesorů
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í Pokročilé architektury procesorů
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 Pokročilé architektury procesorů
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ů Pokročilé architektury procesorů
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 Pokročilé architektury procesorů
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ů Pokročilé architektury procesorů
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 Pokročilé architektury procesorů
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) Pokročilé architektury procesorů
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) Pokročilé architektury procesorů
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 Pokročilé architektury procesorů
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 Pokročilé architektury procesorů
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 Pokročilé architektury procesorů
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) Pokročilé architektury procesorů
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 Pokročilé architektury procesorů
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 Pokročilé architektury procesorů