Architektura počítačů
| Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
|---|---|---|---|---|
| B4B35APO | Z,ZK | 6 | 2P+2L | česky |
- Vztahy:
- Předmět B4B35APO může při kontrole studijních plánů nahradit předmět B0B35APO
- Předmět B4B35APO nesmí být zapsán, je-li v témže semestru zapsán anebo již dříve absolvován předmět B0B35APO (vztah je symetrický)
- Předmět B4B35APO nesmí být zapsán, je-li v témže semestru zapsán anebo již dříve absolvován předmět B0B35APO (vztah je symetrický)
- Garant předmětu:
- Pavel Píša
- Přednášející:
- Pavel Píša, Petr Štěpán
- Cvičící:
- Pavel Píša, Petr Štěpán
- Předmět zajišťuje:
- katedra řídicí techniky
- Anotace:
-
Předmět seznamuje studující se stavebními prvky počítačových systémů. Předmět přistupuje k výkladu od popisu hardware a tím navazuje na předmět Počítačové a systémy, ve kterém se studující seznámili s kombinačními, sekvenčními obvody a základy stavby procesorů. Po úvodním přehledu funkčních bloků počítače je podrobněji popsána stavba procesoru propojením bloků, paměťový a vstupně výstupní subsystém. Ten je dále přiblížený na příkladech od paralelních sběrnic pro propojení zásuvných karet i subsystémů na čipu. Vysvětlený je i důvod přechodu na rychlé sériové linky. Během výkladu je brán důrazný zřetel na ozřejmění provázanosti hardwarových komponent s podporou SW, především nejnižších vrstev operačních systémů, ovladačů zařízení a virtualizačních technik. Obecné principy jsou v další části přednášek rozvedeny na příkladech několika standardních procesorových architektur. Cvičení jsou v první části zaměřena na detailní seznámení s činností procesoru. Od programování na úrovni procesoru pak postupují k přímé obsluze portů a hardware s využitím programovacího jazyka C.
- Požadavky:
-
Během druhé půle semestru je potřebná přiměřená znalost jazyka C. Programování v jazyce C lze studovat paralelně s tímto předmětem. Základní znalost práce s příkazovou řádkou a kompilátorem v prostředí splňujícího standard POSIX (např. Linux) je vítaná.
- Osnova přednášek:
-
1. Architektura počítače, struktura, organizace a podsystémy. Opakování logických hradel, sčítačky a násobení.
2. Procesor - ALU, von Neumannova architektura, formát instrukcí, jednocyklový procesor, řadič a řízení.
3. Paměť - hierarchický koncept, technologie pamětí, správa paměti, vyrovnávací paměti cache, konzistence dat.
4. Virtualizace paměti, MMU. Zřetězené vykonávání instrukcí, hazardy, vyvažování stupňů zřetězení a časování.
5. Superskalární architektura, statické (in-order) a dynamické (out-of-order) vykonávání instrukcí v superskalárních procesorech, Tomasulův algoritmus a přechod k přístupu s přejmenováním registrů.
6. Zpracování paměťových instrukcí, spekulativní načítání dat z paměti. Paměťová koherence a konzistence na vícejádrovém CPU.
7. Dynamický instrukční paralelismus. Predikce skoků. Statická predikce, dynamická predikce, Smithovy prediktory, perceptrony.
8. Vstupně-výstupní podsystém počítače, sběrnice, dvoubodové spoje, sítě, PCI a PCI express sběrnice.
9. Vstupně-výstupní podsystém z pohledu software, vestavných systémů a systémů na čipu.
10. Technické a organizační prostředky - vnější události, výjimky, reálný čas, přímý přístup do paměti, autonomní kanál.
11. Základy překladačů, předzpracování, syntaktická, sémantická analýza, mezikód.
12. Předávání parametrů funkcím. Zásobníkové rámce, registrová okna, přepínání režimů a realizace systémových volání. Mnohaúrovňová organizace počítače.
13. Procesorová rodina INTEL x86, Od 8086 k EMT64. Hlavní zaměření na 32-bit a 64-bit režimy s krátkým vysvětlením komplikací způsobených nutností zachování kompatability s 16-bit 8086 a 80286 segmentového přístupu a proč ho současné OS používají v co nejvíce minimalizované formě. Příklad SIMD instrukcí (MMX, SSE).
14. Přehled vývoje architektury a koncepcí CPU (RISC/CISC) - procesory RISC-V, ARM, ColdFire, SPARC a PowerPC a procesory pro vestavné aplikace
- Osnova cvičení:
-
1. Seznámení s učebnou.
2. Reprezentace dat v paměti a plovoucí řádová čárka.
3. Instrukční sada procesoru a přepis algoritmu.
4. Hierarchický koncept pamětí, cache - 1. část.
5. Hierarchický koncept pamětí, cache - 2. část.
6. Pipeline a hazardy.
7. Predikce skoků, optimalizace kódu.
8. I/O prostor mapovaný do paměti a PCI sběrnice.
9. Přístup k HW z jazyka C s ohledem i na HW pro semestrální práci.
10. Práce na projektu.
11. Práce na projektu.
12. Práce na projektu.
13. Práce na projektu.
14. Odevzdání projektu.
- Cíle studia:
-
Předmět seznamuje s architekturou počítačů od základních principů a subsystémů až po jejich propojení s vnějším světem, programovým vybavením a nižšími vrstvami operačních systémů.
- Studijní materiály:
-
[1] Patterson, D. A. and Hennessy, J. L.. Computer organization and design RISC-V edition: the hardware/software interface. Second Edition. Cambridge: Elsevier, 2021. ISBN 978-0-12-820331-6
[2] Hennessy, J. L., and Patterson, D. A. Computer Architecture, A Quantitative Approach, 6th Edition, Morgan Kaufman, 2017. ISBN: 978-0-12-811905-1.
- Poznámka:
-
Stránky předmětu: https://cw.felk.cvut.cz/wiki/courses/b35apo/ .
- Další informace:
- https://cw.felk.cvut.cz/wiki/courses/b35apo/
- Rozvrh na zimní semestr 2025/2026:
- Rozvrh není připraven
- Rozvrh na letní semestr 2025/2026:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Otevřená informatika - před rozřazením do specializací (povinný předmět programu)
- Otevřená informatika - Základy umělé inteligence a počítačových věd 2025 (povinný předmět programu)
- Otevřená informatika - Internet věcí 2025 (povinný předmět programu)
- Otevřená informatika - Software 2025 (povinný předmět programu)
- Otevřená informatika - Počítačové hry a grafika 2025 (povinný předmět programu)