Von Neumann architektura
Základní model moderního počítače.
- CPU, paměť, sběrnice – jak spolu komunikují
- Harvardská architektura jako alternativa
- Registry, ALU, řadič
Instrukce a instrukční sada (ISA)
Co procesor umí a jak mu říkáme co má dělat.
- Co je instrukce – opcode, operandy
- RISC vs CISC – filozofie návrhu, příklady (ARM vs x86)
- Základní typy instrukcí – aritmetika, přesuny, skoky
Fetch-Decode-Execute cyklus
Jak procesor provádí jednu instrukci krok za krokem.
- Fetch – načtení instrukce z paměti
- Decode – dekódování, co instrukce znamená
- Execute – provedení, zápis výsledku
- Příklad průchodu konkrétní instrukce
Pipelining
Překrývání fází pro vyšší výkon.
- Analogie: výrobní linka
- 5-stupňová pipeline (IF, ID, EX, MEM, WB)
- Hazardy – datové, řídící, strukturální
- Řešení hazardů – stall, forwarding, flush
Cache
Proč přístup do RAM je příliš pomalý.
- Princip lokality – časová a prostorová
- L1, L2, L3 – hierarchie a velikosti
- Cache hit vs miss – dopad na výkon
- Cache line, asociativita
Branch Prediction
Jak procesor řeší podmíněné skoky v pipeline.
- Proč větvení pipeline zpomaluje (flush)
- Statická vs dynamická predikce
- Moderní prediktory – saturating counter, BTB
- Spectre/Meltdown jako důsledek agresivní predikce
Out-of-Order Execution
Přeuspořádání instrukcí pro maximální využití CPU.
- Proč pořadí instrukcí v kódu nemusí = pořadí provedení
- Reorder Buffer (ROB)
- Tomasulo algoritmus – dynamické plánování
- Commit a retire – zachování správného výsledku
Superscalar architektura
Více instrukcí najednou.
- Více execution units
- Issue width – kolik instrukcí za cyklus
- Limity – závislosti, hazardy, paměť
Von Neumann architektura
Základní model moderního počítače.
Instrukce a instrukční sada (ISA)
Co procesor umí a jak mu říkáme co má dělat.
Fetch-Decode-Execute cyklus
Jak procesor provádí jednu instrukci krok za krokem.
Pipelining
Překrývání fází pro vyšší výkon.
Cache
Proč přístup do RAM je příliš pomalý.
Branch Prediction
Jak procesor řeší podmíněné skoky v pipeline.
Out-of-Order Execution
Přeuspořádání instrukcí pro maximální využití CPU.
Superscalar architektura
Více instrukcí najednou.