🏛️ Architektura počítače

Jako kuchyně

O čem to je

Notebook, mobil, chytrá pračka i server v datacentru vypadají úplně jinak. Uvnitř ale fungují podle stejného plánu, který popsal matematik John von Neumann v roce 1945.

Když ten plán znáš, rozumíš, proč má počítač procesor, paměť a disk, proč se zpomaluje a co vlastně dělá, když „počítá“.

Nové pojmy

Architektura počítačePlán, z jakých hlavních částí se počítač skládá a jak spolu spolupracují. Neříká, jak je která součástka vyrobená.Notebook i herní PC mají stejnou architekturu, jen jiné výkonné součástky.
InstrukceJeden jednoduchý příkaz pro procesor, například „sečti dvě čísla“ nebo „načti číslo z paměti“.Program je dlouhá řada instrukcí, třeba miliony.
ProgramPosloupnost instrukcí, která řeší nějaký úkol.Kalkulačka, prohlížeč, hra.
DataÚdaje, se kterými program pracuje: čísla, texty, obrázky.Čísla, která sčítá kalkulačka.

Počítač jako kuchyně

Představ si restaurační kuchyni. Kuchař vaří podle receptu. Recept i suroviny leží v jedné spíži. Objednávky přicházejí okénkem a hotová jídla odcházejí jiným okénkem. Mezi spíží a kuchařem chodí pomocník s podnosem.

Procesor (CPU)Část, která provádí instrukce. Skládá se z řadiče a ALU.V kuchyni je to kuchař.
ŘadičČást procesoru, která čte instrukce, rozumí jim a řídí ostatní části: kdy se má co načíst, spočítat a uložit.Kuchařova hlava, která čte recept a rozhoduje, co dělat.
ALU (aritmeticko-logická jednotka)Část procesoru, která opravdu počítá: sčítá, odčítá, porovnává a dělá logické operace.Kuchařovy ruce, které krájí a míchají.
Operační paměťPaměť, ve které jsou uložené zároveň program i data, se kterými se právě pracuje.Spíž, kde je recept i suroviny.
Vstupní a výstupní zařízeníČásti, kterými se data dostávají do počítače (vstup) a ven (výstup).Klávesnice a myš jsou vstup, monitor a tiskárna výstup. V kuchyni okénko pro objednávky a pro hotová jídla.
SběrniceSoustava vodičů, po kterých si části počítače posílají data, adresy a řídicí signály.Pomocník s podnosem mezi spíží a kuchařem.

Jak kuchař pracuje

Kuchař neudělá celý recept naráz. Přečte jeden řádek, pochopí ho, provede ho a jde na další. Procesor to dělá stejně, jen miliardkrát za sekundu. Tomuto koloběhu se říká cyklus instrukce. Klepej na šipky a projdi ho.

  1. Fetch: načti instrukci z paměti
  2. Decode: řadič ji dekóduje (pochopí)
  3. Execute: ALU ji provede
  4. Výsledek ulož a posuň se na další instrukci

Kde je slabé místo

Kuchař je velmi rychlý, ale pomocník s podnosem je jen jeden. Pro recept i pro suroviny musí chodit stejnou cestou. Kuchař pak často čeká. V počítači se tomu říká von Neumannovo úzké hrdlo: procesor je rychlejší, než stačí sběrnice a paměť dodávat instrukce a data.

Harvardská architekturaJiný plán: program a data jsou ve dvou oddělených pamětech s vlastními sběrnicemi, takže se dají číst současně.Kuchyně se dvěma pomocníky: jeden nosí recepty, druhý suroviny. Používá se hlavně v mikrokontrolérech, např. v pračce nebo v Arduinu.
Ve kterém kroku cyklu instrukce se sečtou dvě čísla?
Nejdřív se instrukce „sečti“ načte z paměti (fetch), pak ji řadič dekóduje (decode). Samotné sečtení udělá ALU až v kroku execute.
Mikrokontrolér v pračce má program v paměti flash a data v malé paměti RAM, každou na vlastní sběrnici. Jaká je to architektura a proč?
Program a data jsou v oddělených pamětech s oddělenými sběrnicemi. To je přesně definice harvardské architektury. Výhoda: procesor může zároveň číst instrukci i data.
✗Program je uložený jinde než data, data jsou v paměti a program v procesoru.
✓Ve von Neumannově architektuře jsou program i data ve stejné operační paměti.

Procesor si instrukce programu z paměti načítá jednu po druhé. Sám o sobě program „neobsahuje“.

Von Neumannův počítač má procesor (řadič + ALU), operační paměť pro program i data, vstup a výstup a vše spojují sběrnice. Procesor opakuje cyklus fetch–decode–execute. Sdílená cesta k paměti je úzké hrdlo; harvardská architektura má paměť programu a dat oddělenou.

Schéma a vrstvy

O čem to je

Technik, který počítač opravuje nebo navrhuje, potřebuje vědět, co je kde a jak to spolu mluví. Proto se počítač popisuje blokovým schématem a vrstvami od hardwaru po aplikace.

Nové pojmy

HardwareFyzické části počítače, které si můžeš osahat.Procesor, paměť, disk, základní deska.
SoftwareProgramy, které na hardwaru běží.Windows, prohlížeč, hra.
InstrukceNejmenší příkaz, kterému procesor rozumí, např. sečti, porovnej, skoč jinam v programu.Program je řada instrukcí.
Procesor (CPU)Jednotka, která provádí instrukce. Obsahuje řadič (řídí, čte a dekóduje instrukce) a ALU, aritmeticko-logickou jednotku (počítá a porovnává).Intel Core, AMD Ryzen, Apple M.
Operační paměťPaměť, ze které procesor čte instrukce i data a kam ukládá výsledky.Moduly RAM na základní desce.
SběrniceSpolečné propojení částí počítače. Rozlišuje se datová (přenáší data), adresová (říká, se kterým místem paměti se pracuje) a řídicí (signály typu čti/zapiš).Procesor pošle po adresové sběrnici adresu, po řídicí „čti“ a po datové přijde obsah.

Bloky von Neumannova počítače

BlokÚkol
řadiččte a dekóduje instrukce, řídí ostatní bloky
ALUprovádí výpočty a logické operace
operační paměťuchovává program i data
vstupní zařízenípřivádí data do počítače
výstupní zařízenípředává výsledky ven
sběrnicepropojuje bloky

Principy, které platí dodnes

  • Program i data jsou ve stejné paměti a mají stejnou podobu (dvojková čísla).
  • Paměť je rozdělená na buňky se stejnou velikostí a každá má svou adresu.
  • Instrukce se provádějí postupně jedna po druhé, pořadí lze změnit skokem.
  • Počítač se na úlohu nepředělává zapojením, ale změnou programu v paměti.

Cyklus instrukce krok za krokem

Fetch (načtení): řadič vezme z paměti instrukci na adrese, kterou drží čítač instrukcí (malá paměť v procesoru, která si pamatuje adresu další instrukce).
Decode (dekódování): řadič zjistí, co instrukce znamená a jaká data potřebuje.
Execute (provedení): ALU provede výpočet, případně se načtou nebo uloží data.
Čítač instrukcí se posune na další instrukci a cyklus začíná znovu.
Von Neumannovo úzké hrdloOmezení výkonu: instrukce i data jdou jednou cestou mezi procesorem a pamětí, takže procesor na ně často čeká.Dnešní procesory to zmírňují rychlými vyrovnávacími pamětmi (cache).
Harvardská architekturaProgram a data mají oddělené paměti i sběrnice. Instrukci a data lze číst současně.Mikrokontroléry (Arduino, řídicí jednotka pračky). V moderních procesorech je oddělená cache pro instrukce a pro data.
Porovnej von Neumannovu a harvardskou architekturu ve třech bodech.
1) Paměť: von Neumann jedna společná, harvard dvě oddělené. 2) Sběrnice: von Neumann jedna cesta, harvard dvě. 3) Důsledek: harvard může číst instrukci i data naráz, von Neumann je jednodušší a pružnější (paměť se dělí podle potřeby).

Vrstvy počítače

FirmwareSoftware uložený přímo v zařízení, který ho oživí a ovládá na nejnižší úrovni.UEFI (dříve BIOS) na základní desce, firmware v SSD nebo tiskárně.
Operační systémSoftware, který spravuje hardware a nabízí ho aplikacím: přiděluje paměť, procesor, soubory.Windows, Linux, macOS, Android.

Vrstvy zdola nahoru: hardware → firmware → operační systém → aplikace. Každá vrstva využívá tu pod sebou. Aplikace tedy na disk nesahá přímo, požádá o to operační systém.

Uživatel uloží dokument ve Wordu. Které vrstvy se toho účastní?
Aplikace (Word) požádá operační systém o zápis souboru. OS přes ovladač pošle příkaz řadiči disku, ve kterém běží firmware. Ten zapíše data na hardware – paměťové čipy nebo plotny.
✗BIOS/UEFI je součástí Windows.
✓UEFI je firmware základní desky, běží ještě před spuštěním operačního systému.

Firmware je vrstva pod OS. Proto jde nastavení UEFI otevřít i na počítači bez nainstalovaného systému.

Počítač = řadič + ALU (procesor), operační paměť, vstup, výstup a sběrnice. Program i data jsou v jedné paměti a instrukce běží cyklem fetch–decode–execute. Vrstvy: hardware, firmware, operační systém, aplikace.