Pokročilé architektury počítačů

Předmět rozšiřuje znalosti studentů v oblasti architektury moderních počítačů. Pozornost věnujeme zejména problematice paralelismu, implementaci koncepce paralelismu v hardwaru, vytváření paralelního programu, architektuře soudobých počítačů využívajících paralelismu na úrovni instrukcí a vláken, pokročilému proudovému zpracování instrukce, paměťovému a perifernímu subsystému a jejich návrhu. Důraz je kladen na porozumění provázanosti hardware-software, pochopení obecných principů vykonávání instrukcí uvnitř superskalárního procesoru a návrhu software efektivně využívajícího dostupných hardwarových prostředků.

Kód
B4M35PAP
Semestr
zimní
Forma studia
prezenční
Rozsah
2+2L
Kapacita
10
Obsazeno
9
Počet kreditů
6
Zakončení
zápočet a zkouška
Jazyk výuky
čeština
Vyučující
Přednášející
Obsah přednášek

1. Úvod do moderní architektury počítačů; počítače řízené tokem instrukcí (control driven) a tokem údajů (data driven a demand driven). Klasifikace počítačových architektur podle Flynna; Vícejádrové, víceprocesorové a vícepočítačové systémy, pojem paralelního zpracování. Amdahlův a Gustafsonův zákon. Výkonové metriky.
2. Od skalárního procesoru k superskalárnímu ? Superskalární procesory se statickým, dynamickým a hybridním plánováním vykonávaní instrukcí.
3. Superskalární techniky I - Tok dat uvnitř procesoru (register data flow). Přejmenování registrů (Tomasulův algoritmus) a datové spekulace. Podpora přesného přerušení.
4. Superskalární techniky II - Spekulativní vykonávání (řídicí spekulace). Predikce, prediktory a předvýběr instrukcí. Statické a dynamické predikce; Smithův prediktor, dvou-úrovňové prediktory s lokální a globální historií, dvou-módový prediktor, a další. Zotavení po nesprávné predikci.
5. Superkalární techniky III - Memory data flow; a Procesory VLIW a EPIC. Tok dat z/do paměti. Load bypassing a Load forwarding. Spekulativní load. Některé další způsoby redukce latence paměti. Procesory VLIW a EPIC. Využití datového paralelismu, SIMD a vektorové instrukce v ISA. Loop unrolling a Software pipelining - vykonání na WLIV a superskalárním procesoru.
6. Pamětový subsystém. Neblokující cache, Victim cache, Virtuální pamět a cache
7. Multiprocesorové systémy a problém koherence paměti. Architektury multiprocesorových počítačů. Systémy s distribuovanou a sdílenou pamětí (DMS, SMS). Architektury symetrických multiprocesorových počítaču. Způsoby zajištění koherence v SMP.
8. Multiprocesorové systémy a problém konzistence paměti. Pravidla pro provádění paměťových operací, zajištění sekvenční konzistence, modely paměťové konzistence.
9. Programování paralelních systémů I. Způsoby programování paralelních systémů - použití Message Passing Interface (MPI) a Open Multi-Processing (OpenMP) pro tvorbu paralelních programů.
10. Programování paralelních systémů II. Synchronizace.
11. Programování paralelních systémů III. Optimalizace kódu ? práce s cache, důsledky koherenčních protokolů.
12. I/O podsystém. PCIe, HyperTransport, QuickPathInterconnect.
13. Časový a prostorový paralelizmus v praxi. Ukázka vybraných partií na procesoru Intel Nehalem, AMD Optreon, IBM Power4,?