Architektura počítače

BI-SPOL.21-29
  • Architektura
    • ? Harvardská
    • ? Von Neumman
  • Instrukční cyklus počítače
  • Instrukční sady (ISA)
    • Třídy instrukčních souborů
  • Paměťový subsystém
    • Hierarchie
    • Cache paměť

Architektury číslicových systémů

Procesor se skládá z několika částí

  • Řadič

    • Ovládá všechny části procesoru
    • Generuje řídící signály
    • Přijímá stavové signály
  • Výkonná část (ALU,FPU,...)

  • Paměť

    • Nějaké registry
  • Harvardská

    • Odděluje paměť pro instrukce a pro data
    • Umožňuje číst data a instrukce najednou
  • Von Neumannova

    • Propojuje paměť pro data i instrukce
    • Jednodušší
    • Nelze číst instrukci a zároveň data (pomalejší)

Instrukční cyklus počítače

  • Popisuje jak dochází k vykonávání jednotlivých instrukcí
  • Běží pořád dokola
  • Dnešní procesory používají Pipeline, tedy najednou je dekódováno víc instrukcí, každý krok vždy dělá jednu instrukci ale dohromady se dekóduje třeba 5 instrukcí v jeden čas.
    • ../../Attachments/Pasted image 20260530152210.png
  • Obecně má tyto kroky (podle implementace se můžou lehce lišit)
    • Instruction Fetch
      • Dochází ke čtení instrukce
    • Instruction Decode
      • Dekódování řadič nastaví cestu pro data v procesoru
    • Fetch Operand
      • Nahrání operandů do zvolené execution unit
    • Execute (ALU,FPU)
      • Provedení samotné operace
    • Memory Access /Write Back
      • Zápis výsledků (do registru/paměti)
    • Kontrola jestli nenastalo přerušení

Instrukční sada

  • (ISA) Instruction Set Architekture
  • Určuje jaké operace umí procesor vykonávat
  • Je to rozhraní mezi SW a HW
    • Instrukce říká s čím co udělat, kam to uložit, a kde pokračovat
    • Instrukce nemusí data obsahovat přímo, umožňujeme deviace, různý počet operandů, operandy v paměti.
    • Instrukce jsou ve strojovém kódu
      • Pro lepší čitelnost se píší v asembleru, a pak se překládají
  • Některé instrukce může provádět jen kernel
    • přístup k filesystému
    • Bezpečnostní důvody
    • Implementují ringy
      • Ring 0 je kernel
      • Ring 3 je běžně aplikace
  • Aplikace přistupují k CPU přes
    • Knihovní API
    • Systémové volání
    • Běžné instrukce

Třídy instrukční sady

  • Akumulátorové
    • Obsahuje jeden registr nad kterým se provádí operace
    • Přičti 1 k akumulátoru...
    • x86 využívá víc akumulačních registrů od 386 GPR
    • Naráží na práci s pamětí (pomalé)
    • Jednoduchý HW
  • Zásobníkové
    • Registry jsou uložené jako zásobník
    • Nelze náhodný přistup
    • Je sekvenční
  • Registrové
    • GPR mnoho registrů, které obsahují operandy
    • Dnes nejpoužívanější
    • Rychlé registry s náhodným přístupem
    • Omezený počet registrů
    • těžší překladač

Typy instrukčních sad

  • RISC
    • Redukovaná instrukční sada
    • Instrukce se stejnou délkou
    • Kratší a jednodušší instrukce
    • Rychlé provádění
    • Je malá(fyzicky menší dekodér)
    • ARM, RISC-V
  • CISC
    • kompletní instrukční sada
    • má instrukce na všechno
    • Memory to memory instrukce
    • Různě dlouhé instrukce (délka i čas)
    • I složité instrukce
    • Je velká (velký dekodér)
    • x86, spíš legacy support

Pořadí zpracování instrukcí

  • In order
    • tak jak jdou za sebou
  • Out of order
    • Zrychluje vykonávání, ale na venek to není poznat

Přerušení

  • Jedná se mechanismus, který upozorní CPU na nějaký spouštěč
    • Dokončení výpočtu GPU, stisk klávesy, příchozí packet
    • Něco co vyžaduje pozornost CPU
    • Provádí se takzvaná obsluha přerušení
      • Procesor přeruší prováděný sled instrukcí
      • Uloží aktuální stav registrů na zásobník
      • Procesor načte příslušný vektor přerušení
      • Provede obsluhu
      • Načte zpět uložená data a pokračuje ve vykonávání instrukcí
  • Známe vnější a vnitřní přerušení
    • Vnitřní jsou od procesoru, třeba dělení nulou
    • Vnější jsou od periferií.

Paměťový subsystém

  • Procesor přistupuje k paměti po větších celcích, kvůli vyšší efektivitě (Bajt, 32, 64 bitů)
  • Každé takové místo v paměti má vlastní adresu
  • Paměťový prostor počítače dělíme na
    • RAM (blízko procesoru, rychlé, drahé)
    • Vnější úložiště (SSD,HDD, DVD,...) Levné velké

Endianita

  • Definuje, jak je hodnota uložená v paměti int i = 1000 (0x03E8)
  • Little endian
    • Intel, od nejmenší po největší
    • E8 03 00 00
  • Big endian
    • Od největších po nejmenší
    • 00 00 03 E8

Hierarchie pamětí

  • jedná se o řazení dle rychlosti i blízkosti k CPU, zároveň čím blíže k cpu tím dražší
  • Paměť je pro snížení ceny odstupňovaná
  • Platí cenový trojúhelník (cena, rychlost, kapacita)
  • Z programátorského hlediska se jedná o ucelený prostor
    • Využívá se princip stránkování
      • Bloky, které se dle potřeby přesouvají mezi RAM a diskem
      • Programátor pracuje s virtuálním paměťovým prostorem
  • Registry
    • Frekvence CPU, nulová latence
    • 1kB
  • Cache
    • Bývá rozdělená na datovou a instrukční
    • uvnitř procesoru
    • může držet často používaná data, nemusí se na ně čekat z RAM
    • Z programátorského hlediska neexistuje
    • SRAM
    • KB - MB
  • RAM
    • Operační paměť, jsou v ní všechna právě zpracovávaná data
    • DRAM
    • GB
  • Trvalá úložiště
    • Při vypnutí neztrácí obsah
    • jsou pomalá ale vzhledem k kapacitě levná

Fyzické paměti

  • DRAM, SRAM
    • SRAM rychlejší
    • DRAM levnější
  • (E*)ROM
    • Typy permanentních pamětí
  • Flash
    • Umožňuje přepisování, elektronická paměť
  • HDD
    • Magnetický záznam
  • Rozšíření čipové paměti
    • Čipy paralelně -> širší slovo
    • Pomocí MUX a práce s CS, OE, WE signály paměť "sériově"

Cache paměť

  • Stojí mezi CPU a RAM
  • Využívá asociativní přistup ()
  • Obsahuje nejčastěji používaná data
  • SRAM
  • Při hledání dat se spouští proces z cache i z RAM
    • při Cache HIT se RAM nedokončí
    • při Cache MISS se data načtou z RAM a uloží do cache
  • Při zápisu se zapíše do cache pokud tam je
    • Write Through -> zápis i do RAM
    • Write Back -> jen do cache, do RAM až při uvolnění (příznak)
  • Stupně asociativity
    • Plně asociativní paměť má stupeň asociativity roven její kapacitě (je na hovno)
    • n-stupňová asociativita -> každá položka se může nacházet na n místech, určuje část adresy položky
    • n = 1 nemůžu ukládat položky co se liší pouze v TAGu

Realizace cache

  • Fyzická adresa se rozdělí na části
    • Adresa řádku v adresáři RAM
    • Adresa v bloku
    • T-tag, část, která se asociativně srovná s obsahem adresáře
  • Data jsou uložena po blocích, část adresy je adresa bloku
  • Jeden stupeň asociativity (víc to jen dává paralelně)
    • Víc stupňů asociativity přidává HW, který říká jakou položku přepsat (naposledy použitou)
  • ../../Attachments/Pasted image 20260530162241.png
  • ../../Attachments/Pasted image 20260530164905.png
  • n =4
  • Parametry
    • velikost slova (téměř vždy 4 nebo 8 B)
    • velikost bloku (počet slov, sloupečky tabulky)
    • počet bloků (počet řádků v jedné tabulce)
    • stupeň asociativity (počet tabulek)
  • Rozdělení adresy
    • počet bitů na slovo (2 nebo 3 poslední bity)
    • identifikace slova v bloku
    • identifikace bloku (indexování v tabulce)
    • zbytek adresy... zapsaný tag (komparátor)

Vytvořeno: 27. 5. 2026, 12:02
Poslední aktualizace: 9. 6. 2026, 12:19