V počítačovej technike mikroarchitektúra (niekedy skrátene – µarch alebo uarch) opisuje konkrétne usporiadanie a zapojenie elektrických obvodov v rámci počítača, centrálnej procesorovej jednotky alebo digitálneho signálového procesora. Mikroarchitektúra popisuje interné jednotky, cesty dát, registre, riadiace logiky a všetky ďalšie hardvérové prvky potrebné na vykonávanie inštrukcií tak, aby bol úplne pochopený a opísateľný spôsob činnosti hardvéru.

Vedci často používajú termín organizácia počítača, zatiaľ čo v priemysle sa bežnejšie hovorí o mikroarchitektúre. Mikroarchitektúra a architektúra inštrukčnej sady (ISA) spolu tvoria oblasť počítačovej architektúry — ISA definuje zmluvu medzi softvérom a hardvérom (čo inštrukcie robia), zatiaľ čo mikroarchitektúra určuje, ako sú tieto inštrukcie fyzicky a logicky realizované.

Čo mikroarchitektúra zahŕňa

  • Datová cesta (data path): aritmeticko-logická jednotka (ALU), násobiče, jednotky pre plávajúcu desatinnú čiarku a ďalšie výpočtové bloky.
  • Registre a registratúra: súbor registrov, špeciálne registre stavu a riadiace registre.
  • Riadiaca logika: generovanie signálov, ktoré koordinujú vykonávanie inštrukcií.
  • Cache a pamäťová hierarchia: L1/L2/L3 cache, TLB (translation lookaside buffer) a mechanizmy pre konzistenciu pamäte.
  • Jednotky pre prístup k pamäti a I/O: arbitrácia, riadenie prenosov a DMA.
  • Predikcia vetvenia a jednotky pre paralelizmus: branch predictors, pipeline, superskalárne vydávanie, out-of-order execution a reorder buffer.
  • Mikrokód alebo dekompozícia inštrukcií: u niektorých dizajnov (napríklad klasické CISC implementácie) sú zložité inštrukcie rozložené na jednoduchšie mikrooperácie.

Hlavné princípy a techniky

  • Pipelining – rozdelenie vykonávania inštrukcie do viacerých etáp (fetch, decode, execute, memory, write-back), čím sa zvyšuje priepustnosť procesora.
  • Superskalárnosť – súčasné vydávanie viacerých inštrukcií za cyklus pomocou viacerých výkonných jednotiek.
  • Out-of-order execution – vykonávanie inštrukcií v poradí, ktoré maximalizuje využitie jednotiek, pričom výsledky sú zoraďované tak, aby sa zachovala semantika programu.
  • Predikcia vetvenia – mechanizmy na predpovedanie výsledku rozvetvení za účelom zníženia strát spôsobených prerušovaním pipeline.
  • Spekulatívne vykonávanie – vykonávanie potenciálnych ciest programu pred potvrdením, čo zvyšuje výkon, ale vyžaduje ochranné mechanizmy (napr. po zistení zraniteľností typu Spectre/Meltdown boli zavedené opravy).

Mikroarchitektúra vs. ISA

ISA (architektúra inštrukčnej sady) definuje, aké inštrukcie sú k dispozícii pre programátora, formát inštrukcií, veľkosť registrov, režimy adresovania a pravidlá volaní funkcií. Je to zmluva medzi softvérom (kompilátormi, operačnými systémami) a hardvérom. Mikroarchitektúra potom túto zmluvu implementuje — rôzne mikroarchitektúry môžu realizovať tú istú ISA, pričom sa líšia v rýchlosti, spotrebe energie, ploche čipu a ďalších vlastnostiach.

Príklad: ISA x86 je implementovaná v rôznych mikroarchitektúrach (Intel Skylake, AMD Zen), pričom každá z nich používa odlišné techniky pre pipeline, cache a paralelizmus, aby dosiahla rôzne výkony a energetickú efektívnosť.

Druhy implementácií

  • Hardvérová (hardwired) riadiaca logika – rýchle, nízke latencie, často používané v jednoduchších alebo rýchlostne kritických dizajnoch.
  • Mikrokód – zložité inštrukcie sú preložené do sekvencií mikroinštrukcií; umožňuje flexibilitu a jednoduchšie zmeny v správaní inštrukcií, ale môže byť pomalší.
  • RISC vs. CISC – RISC (napr. ARM, RISC-V) preferuje jednoduché, rýchle inštrukcie, ktoré sa dobre mapujú na pipeline; CISC (napr. tradičné x86) má bohatšiu množinu inštrukcií, často implementovanú cez mikrooperácie.

Dizajnérske kompromisy a obmedzenia

  • Výkon vs. spotreba energie – vysoký výkon zvyčajne znamená vyššiu spotrebu a väčšiu tepelnú záťaž; v mobilných zariadeniach je často priorita energetická efektívnosť.
  • Komplexnosť vs. spoľahlivosť – zložité mechanizmy (OOO, špeculatívne vykonávanie) zvyšujú riziko chýb a zraniteľností, vyžadujú robustné overovacie a bezpečnostné mechanizmy.
  • Veľkosť čipu a cena – viac jednotiek a väčšie cache zvyšujú plochu čipu a náklady na výrobu.

Praktické aspekty a príklady

V praxi sa mikroarchitektúra navrhuje podľa cieľa produktu: serverové procesory kladú dôraz na viacjadrový výkon a vysoko paralelné vykonávanie, mobilné jadra prioritizujú spotrebu energie a tepelnú efektívnosť. Známe mikroarchitektúry zahŕňajú napríklad Intel Skylake, AMD Zen, ARM Cortex‑A línie alebo rôzne implementácie RISC‑V.

Zhrnutie

Mikroarchitektúra je vnútorný dizajn procesora — súbor rozhodnutí o tom, ako bude hardware fyzicky realizovať inštrukcie definované ISA. Rôzne mikroarchitektúry môžu dosahovať odlišné výsledky (výkon, spotrebu, cenu) pri zachovaní rovnakého programového rozhrania. Pochopenie mikroarchitektúry je kľúčové pre návrh efektívnych procesorov, ladenie softvéru a optimalizáciu systémov.