N-AP 16
Zadání
Jednoprocesorové počítače, počítače s menším počtem procesorů, masivně paralelní počítače; distribuované systémy. Sdílená, distribuovaná a distribuovaná sdílená paměť; další alternativy.
Modulární sestava počítače s jedním procesorem
Jednotlivé komponenty komunikují po sběrnici, což je standardizovaný způsob přenosu informace mezi dvěma nebo více zařízeními.
Postup činnosti počítače
procesor vyšle adresu paměťové buňky
paměť vyšle její obsah
procesor jej přečte a považuje za kód instrukce
procesor dekóduje instrukci a hledá, co potřebuje k provedení
pokud je nutno, požádá stejným způsobem o další hodnoty z paměti
provede instrukci
uloží výsledek
Fyzická struktura - žlutě chipset
Pipelining (proudové zpracování)
Překrývání instrukcí v různých fázích rozpracovanosti.
Pokud lze zpracování proudu hodnot rozdělit do několika fází, které jsou pro všechny hodnoty podobné a zvolíme sekce tak, aby zpracování v nich trvalo stejně dlouho:
Běžný rozklad instrukcí (pětiúrovňový pipelining):
Instruction Fetch instrukce je načtena z paměti
Instruction Decode instrukce je rozeznána (dekódována)
Operand Fetch jsou připraveny operandy (načteny z registrů a/nebo paměti)
Execute instrukce je provedena
Writeback výsledky jsou zapsány zpět (do registrů a/nebo paměti)
Jednotlivé instukce jsou zpracovány paralelně, s posunem o jednu fázi pipeline.
Architektury mikroprocesorů
Dva základní přístupy, CISC a RISC (dále např. MISC, VLIW).
Complex Instruction Set Computer
IBM 1962
Snaha o univerzální architekturu
vyplnění sémantické mezery mezi assemblerem a vyššími programovacími jazyky
obsáhlá instrukční sada, dlouho trvající instrukce (desítky, stovky taktů)
Příklady:
PDP 11, VAX, IBM 370, Intel 80×86, Motorola 680×0,…
Princip:
Nedělej programem to, co může udělat hardware
Důvody existence
složité instrukce (mikroprogramy), dekomponovány na jednodušší – mikroinstrukce
instrukce jsou emulovány, jednodušší návrh HW, lze snadno změnit instrukční sadu
Všechny strojové instrukce, které jsou postupně načítané z operační paměti, jsou rozkládány na různě dlouhou sekvenci takzvaných mikroinstrukcí a činnost celého procesoru je řízena mikrořadičem doplněným většinou mikroprogramovou pamětí.
Reduced Instruction Set Computer
První RISC: CDC 6600 (Seymour Cray) – první pol. 60. let.
Podmínky vzniku
Zavedení vyrovnávacích pamětí (cache)
Dramatický pokles ceny a vzrůst velikostí hlavních pamětí (rychlost přístupu k paměti a velikost programu už nejsou kritické)
Lepší pipelining
Kvalitně optimalizující překladače
Charakteristika
Jednotná délka instrukcí
Pečlivý výběr skutečně používaných instrukcí
Jednoduché adresní módy
Architektura Load/Store (jediné operace, které interagují s pamětí, počet instrukcí tedy vlastně může být vyšší)
Dostatek registrů
„Odložené“ skoky (delayed branches) (provede se až po následující instrukci)
Ideál první generace – jedna instrukce každý tik hodin, dnes více instrukcí za tik.
Superskalární procesory
vícenásobné procesní jednotky (aritmetické - ALU, floating point - FPU,…)
snaha o zvyšování výpočetního výkonu
čipy, které dokázaly v každém strojovém cyklu začít zpracovávat větší množství instrukcí
mikroprocesory většinou vybaveny dvěma či větším množstvím relativně samostatně pracujících instrukčních pipeline a někdy i větším množstvím aritmeticko-logických jednotek
jednotky pro bitové posuny a rotace (barrel shifter) nezávislé na ALU
jednotky pro komunikaci s operační pamětí atd.
Very Long Instruction Word (VLIW)
obdoba superskalárních (mnoho jednotek)
paralelizace pod kontrolou překladače
instrukce pevné délky, podobně jako u RISC
délka těchto instrukcí řádově několik desítek i stovek bitů
každé instrukční slovo je rozděleno do většího množství polí (fields), přičemž v každém poli je umístěn kód jedné operace
jednotky pro bitové posuny a rotace (barrel shifter) nezávislé na ALU
jednotky pro komunikaci s operační pamětí atd.
Architecture with Non-sequential Dynamic Execution Scheduling (ANDES)
vychází z předpokladu, že zpomalení je způsobeno čekáním na data
vícenásobné fronty instrukcí (celočíselná, adresní, floating point)
nezávislá pipeline pro každou frontu
instrukce vybírány podle připravenosti
není dodrženo pořadí instrukcí v programu
dokončení instrukcí zajišťuje správné uspořádání
spekulativní skoky: výpočet pokračuje předpovězenou větví, nečeká na výsledek instrukce
Porovnání architektur RISC, CISC a VLIW
Paralelní počítače
Small-scale multiprocessing
Large-scale multiprocessing
Architektura
Single Instruction Multiple Data, SIMD
Multiple Instruction Multiple Data, MIMD
Architektura SIMD
procesory synchronizovány (všechny vykonávají vždy stejnou instrukci, analogie vektorových procesorů)
jednoduché procesory
jednodušší programovací model
Architektura MIMD
plně asynchronní systém
procesory zcela samostatné (není třeba speciální výroba (off-the-shelf))
výhody - vyšší flexibilita a teoreticky i efektivita
nevýhody - explicitní synchronizace a složitější programování
Programovací modely
Single Program Multiple Data, SMPD
Multiple Programs Multiple Data, MPMD
Komunikační modely
Sdílená paměť
paměť oddělená od procesorů
uniformní přístup k paměti
nejsnazší propojení - sběrnice
„levná“ komunikace
složité prokládání výpočtu a komunikace (aktivní čekání)
Předávání zpráv
každý procesor „viditelný“
vlastní paměť u každého procesoru
explicitní komunikace - předávání zpráv
vysoká cena komunikace (výměny dat)
možnost prokládání výpočtů a komunikace
Distribuované systémy
v distribuovaném systému probíhá distribuované zpracování. Na distribuovaném výpočtu spolupracuje nějaká podmnožina spojených procesorů.
každý procesor provádí svůj vlastní instrukční tok a zpracovává svá vlastní lokální data. Pokud se musí data vyměnit, děje se to mechanismem zasílání zpráv.
výpočet realizovaný propojenou skupinou procesorů s přímým přístupem ke sdílené paměti nazýváme paralelní zpracování a takový systém se nazývá paralelní systém nebo těsně vázaný systém.
Paralelní / distribuované zpracování
Konkurentní výpočty (srovnání rychlosti a spolehlivosti meziprocesorové komunikace):
při velmi vysokých komunikačních rychlostech, řádově srovnatelných s rychlostí přístupu do paměti, se jedná o paralelní zpracování.
je-li rychlost komunikace nižší, potom se jedná o distribuované zpracování.
paralelním systémem je z tohoto hlediska multiprocesor a multipočítač.
počítačová síť je systém distribuovaný.
Distribuovaný systém je sestava nezávislých počítačů, které jsou z pohledu uživatele jednotným systémem.
Dva základní aspekty:
Paměť
Obecně
Organizace paměti:
Vlastnosti paměti:
přístupová doba (memory access time) - vystav řádek plus vystav sloupec plus vystav data
cyklus paměti (memory cycle time) - určuje, jak často lze data číst
obojí závisí na typu paměti (dynamická vs. statická)
Vyrovnávací paměť
hit poměr - udává efektivitu paměti, poměr čtení z cache vůči všem operacím
velikosti 4 KB–16MB
Organizace: řáadky pevné délky, 16–128 bytů
Typy:
Sdílená paměť
Distribuovaná paměť
procesory mají vlastní paměť, operují zvlášť
přístup k datům jiného procesoru a synchronizace je ošetřena programově
Distribuovaná sdílená paměť
distribuovaný systém - cluster (lokální paměť každého uzlu, vzdálená od ostatnícb)
fikce jedné rozsáhlé paměti
HW řešení - principy virt. paměti, transparentní
SW řešení - knihovna, programátor musí přízpůsobit (netransparentní)
přístup k různým fyzickým adresám trvá různou dobu
umožňuje vyšší škálovatelnost
potenciálně nižší propustnost
koherence vyrovnávacích pamětí - ccNUMA
Cache-only memory access architecture (COMA)
NUMA s charakterem vyrovnávací paměti - postrádá „domovskou“ paměť, každý procesor má část sdílené p.
pouze zdánlivá hierarchie (?)
systém musí hlídat, že má jedinou kopii
experimentální
Použitá literatura a weby