Pokročilé architektury počítačů (PAP_04.ppt) Karel Vlček, katedra Informatiky, FEI VŠB Technická Univerzita Ostrava
Karel VlčekPokročilé architektury procesorů 2 Procesory s podporou paralelismu vláken Procesy a vlákna jsou entity operačního systému, které lze ovládat voláním systémových funkcí Vlákno je stejně (jako proces) posloupnost instrukcí viděná z hlediska jejich vykonání Vlákno vyžaduje určitý adresový prostor a čas CPU
Karel VlčekPokročilé architektury procesorů 3 Popis procesu V operačních systémech je proces popsán tabulkou (např. PCB - Process Control Block) Tabulka obsahuje údaje o identifikaci a vlastníkovi také údaje o stavu (např.: běží, příprava k běhu, čeká) Dále je dán kód procesu, ukazatel instrukcí IP, sadu logických registrů, hromada (heap), tabulky pro správu paměti, popisovače souborů, popis obsluhy přerušení aj.
Karel VlčekPokročilé architektury procesorů 4 Životní cyklus procesu Životní cyklus procesu probíhá pode diagramu stavových přechodů U několika soupeřících procesů je zařazení k běhu řízeno pravidly: časová kvanta, priorita, či bez možnosti přerušení Přepínání procesů je značně časově náročné a může vyhovovat jen pro toleranci událostí s dlouhou latencí (např.: přístup na disk)
Karel VlčekPokročilé architektury procesorů 5 Vlastnosti vlákna Vlákna (threads) jsou tvořena v rámci procesu, k němuž patří a jehož prostředky sdílí Vlákna sdílí zejména adresový prostor procesu K vláknu patří jen sada registrů a zásobník Kód vlákna, hromada a další parametry jsou k dispozici pouze v popisu procesu
Karel VlčekPokročilé architektury procesorů 6 Synchronizace a přepínání vlákna Operace s vlákny a synchronizace činnosti jejich přepínání jsou vzhledem k rozdělení parametrů mnohem rychlejší než u procesů Přepínání kontextu má podporu v moderních programovacích jazycích (Occam-2, Ada, Java), které obsahují příkazy pro spouštění vláken i jejich komunikaci a synchronizaci
Karel VlčekPokročilé architektury procesorů 7 Multivláknový provoz V multivláknovém provozu MT (Multithreading) jsou instrukce jednoho vlákna prováděny do doby, než se vyskytne nějaká instrukce s dlouhou latencí Přepnutí kontextu provází uložení ukazovátka instrukcí IP, uložení ukazovátka zásobníku a jisté části stavového slova Tak to může fungovat při zasílání zpráv v paralelních systémech
Karel VlčekPokročilé architektury procesorů 8 Systémy se sdílenou pamětí Latence je u systémů se sdílenou pamětí malá, to vyžaduje podporu více kontextů technickými prostředky procesorů Podporou mnoha vláken s krátkou latencí je technické řešení, které nevyžaduje analýzu při kompilaci Tuto techniku lze použít pro nepředvídatelné události i konflikty
Karel VlčekPokročilé architektury procesorů 9 Architektura pro multivláknový (multikontextový) provoz Procesory obsahují technické komunikační prostředky (tzv. transputery) Transputery jsou účinné a výhodné při výstavbě paralelních systémů typu Nejčastější systémová architektura je nazývána MIMD s distribuovanou pamětí a zasíláním zpráv
Karel VlčekPokročilé architektury procesorů 10 Principy multivláknového provozu Nejčastější použití multivláknového provozu je dnes u využíváno při vydávání instrukcí pouze u jednoho vlákna Přepnutí se děje v okamžiku, kdy je vlákno zastaveno nebo zablokováno operací s dlouhou latencí (blocked MT) Druhý efektivní režim je přepínání kontextu pokud možno v každém taktu procesoru (interleaved MT)
Karel VlčekPokročilé architektury procesorů 11 Provoz s blokováním Počet aktivních vláken je dán množstvím technických prostředků, které jsou k dispozici pro jeden kontext vlákna Předpokládá se, že v kontextu jednoho procesu (PSW Process Status Word) běží jedno vlákno Cílem je naplnit dobu zpracování vlákna co nejvíce užitečnou prací CPU
Karel VlčekPokročilé architektury procesorů 12 Účinnost pro více vláken (1) Pro jednokontextový procesor je účinnost podpory provozu více vláken dána relací: E 1 = R/(R+L) = 1/(1+L/R) R … je průměrný počet taktů vykonávaných instrukcí L … je počet taktů latence
Karel VlčekPokročilé architektury procesorů 13 Účinnost pro více vláken (2) Využití (účinnost) procesoru s počtem aktivních vláken poroste lineárně až do hodnoty, která má oporu pro více kontextů v hardware Pokud není opora pro více kontextů, účinnost neroste Hodnota činnosti se ještě snižuje s režií, kterou představuje přepínání kontextu
Karel VlčekPokročilé architektury procesorů 14 Účinnost pro více vláken (3) Další limitování účinnosti vzniká ztrátou rozpracovaných instrukcí při přepnutí kontextu (možnosti řešení): Nedokončení instrukcí starého vlákna a zahájení instrukcí nového vlákna (nejčastější) Dokončení instrukcí starého vlákna v překryvu s novou instrukcí (vyžaduje podporu) Zahájení instrukcí nového vlákna po dokončení starého vlákna
Karel VlčekPokročilé architektury procesorů 15 VLIW architektura a MT Vydávání více instrukcí VLIW architekturou v jednom taktu spolu multivláknovým zpracováním přináší výhodu tak zvaného TLP (Thread-level Parallelism) Využívá se více „časových slotů“, název techniky je simultánní (horizontální) MT = SMT (Simultaneous Multi-Thread)
Karel VlčekPokročilé architektury procesorů 16 Optimalizace pro SMT Při změně počtu vláken od jednoho do osmi bylo v jednom taktu provedeno u testovacích úloh až 6,2 instrukce proti 2 instrukcím u prostých superskalárních procesorů Technikou SMT se omezuje i počet spekulativně prováděných instrukcí Obtížně se řeší paměť a tabulky skoků, ale technika SMT má schopnost tyto přídavné konflikty skrýt
Karel VlčekPokročilé architektury procesorů 17 Transputery Architektura transputerů obsahuje komunikační hardware a tím se stává samostatným prvkem pro výstavbu paralelních systémů Byl vyvinut jazyk Ocaam, ve kterém jsou procesy konstruovány jako vlákna (1985), protože procesy mají podporu v technických prostředcích Typická je dvojbránová paměť a komunikační hardware
Karel VlčekPokročilé architektury procesorů 18 Procesory P-RISC a *T (StarT) (1) P-RISC (Paralel RISC) byl vyvinut na MIT (1989) StarT je jeho zdokonalenou verzí a byl vyvinut spojeným úsilím MIT a firmy MOTOROLA (1992) Kontext vlákna je definován tzv. žetonem (token) Na konci instrukční linky je vytvořen vždy nový žeton, který je umístěn na konec jiného vlákna
Karel VlčekPokročilé architektury procesorů 19 Procesory P-RISC a *T (StarT) (2) Překladač podporuje vzdálený přístup do paměti, což má tu výhodu, že odpovědi mohou přicházet v libovolném pořadí Uplatňuje se zde princip zpracování „data-flow“, tím se uvolní zpracování jako autonomní proces s podporou hardware Principy jsou dnes uplatňovány u čipů NEURON, které se uplatnily v systémech pro distribuované řízení
Karel VlčekPokročilé architektury procesorů 20 Procesory Tera MTA Jsou to zatím jediné procesory s prokládaným MT, které nejsou založeny na použití paměti cache Název MTA je Multi-Threaded Architecture Procesor vydává v jednom taktu až tři operace v jedné instrukci Procesor Tera MTA podporuje až 128 aktivních váken
Karel VlčekPokročilé architektury procesorů 21 Literatura: Dvořák, V.: Architektura a programování paralelních systémů, VUTIUM Brno, (2004), ISBN X Dvořák, V., Drábek, V.: Architektura procesorů, VUTIUM Brno, (1999), ISBN Drábek, V.: Výstavba počítačů, PC-DIR, s.r.o. Brno, (1995), ISBN Mueller, S.: Osobní počítač, Computer Press, Praha, (2001), ISBN Pluháček, A.: Projektování logiky počítačů, Vydavatelství ČVUT Praha, (2003), ISBN