RISC vs CISC
Klíčová slova: Procesorové architektury (RISC vs CISC)
Klíčové pojmy: ISA určuje typ instrukcí a práci s pamětí, CISC má mnoho složitých instrukcí a proměnnou délku, CISC umožňuje přímou práci s pamětí, RISC používá LOAD/STORE pro přístup k paměti, RISC má pevnou délku instrukcí a jednoduchý řadič, RISC nabízí lepší výkon na takt a nižší spotřebu, Moderní CPU kombinují CISC a RISC přístupy, ARM, RISC-V, MIPS jsou příklady RISC, Intel x86 a AMD x86-64 jsou příklady CISC, RISC má delší kód, CISC kratší binárku, Pipeline je u RISC efektivnější než u CISC, Pochopení mikro-ops pomáhá sledovat chování moderních CPU
## Úvod
Procesorové architektury RISC a CISC představují dva odlišné přístupy k návrhu instrukční sady procesoru (ISA – Instruction Set Architecture). Volba mezi nimi ovlivňuje výkon, spotřebu energie, složitost návrhu a nároky na překladač. Tento materiál rozloží klíčové rozdíly, vlastnosti a příklady a nabídne praktické aplikace a přehled moderních trendů.
> **Definice:** Instrukční sada (ISA) je množina instrukcí, které procesor rozumí a vykonává; určuje typy instrukcí, jejich formát a způsoby práce s pamětí.
## Základní koncepty
### Co je CISC?
- **CISC (Complex Instruction Set Computer)** klade důraz na bohatou, často složitou sadu instrukcí.
- Cíl: aby jedna instrukce vykonala co nejvíce práce (snížení počtu instrukcí v programu).
> **Definice:** CISC je architektura s mnoha, často variabilně dlouhými a složitými instrukcemi, které mohou přímo pracovat s pamětí.
### Co je RISC?
- **RISC (Reduced Instruction Set Computer)** minimalizuje počet a složitost instrukcí.
- Cíl: provádět jednoduché instrukce rychle, ideálně jednu instrukci za jeden takt.
> **Definice:** RISC je architektura s omezenou sadou jednoduchých, pevně dlouhých instrukcí a oddělenou manipulací s pamětí pomocí LOAD/STORE instrukcí.
## Vlastnosti CISC
- Velký počet instrukcí
- Složité instrukce s více operacemi
- Proměnná délka instrukcí
- Instrukce často mohou přímo pracovat s pamětí
- Složitější (často mikroprogramový) řadič
- Delší doba vykonání některých instrukcí
### Výhody CISC
- Kratší programový kód (menší velikost binárky)
- Jednodušší překladače (mohou mapovat vyšší-level konstrukce přímo na instrukce)
- Efektivní práce s pamětí v prostředích, kde je paměť kritická
### Nevýhody CISC
- Složitý návrh procesoru
- Pomalejší vykonávání některých instrukcí
- Horší optimalizace pipeline kvůli variabilní délce instrukcí a složitosti
### Příklady CISC
- Intel x86
- AMD x86-64
## Vlastnosti RISC
- Malý počet jednoduchých instrukcí
- Pevná délka instrukcí
- Práce s pamětí pouze přes LOAD a STORE instrukce
- Velký počet registrů
- Jednoduchý hardwarový řadič (hardwired)
- Velmi efektivní pipeline
### Výhody RISC
- Vysoký výkon při dobře navržené pipeline
- Jednodušší architektura
- Nižší spotřeba energie
- Lepší podmínky pro paralelní zpracování
### Nevýhody RISC
- Delší výsledný programový kód
- Vyšší nároky na kapacitu paměti
- Komplikovanější překladač, který musí generovat více instrukcí
### Příklady RISC
- ARM
- RISC-V
- MIPS
## Hlavní rozdíly v přehledné tabulce
| Vlastnost | RISC | CISC |
|---|---:|---:|
| Počet instrukcí | Malý | Velký |
| Složitost instrukcí | Jednoduché | Složité |
| Délka instrukcí | Pevná | Proměnná |
| Práce s pamětí | LOAD/STORE | Přímá práce s pamětí |
| Pipeline | Velmi efektivní | Méně efektivní |
| Řadič | Hardwired | Mikroprogramový |
| Spotřeba | Nízká | Vyšší |
## Praktické příklady a aplikace
1. Mobilní zařízení (smartphony, tablety)
- Často používají RISC (např. ARM) kvůli nízké spotřebě a dobrému výkonu na watt.
2. Desktop a servery
- Tradičně x86 (CISC) kvůli kompatibilitě a optimalizacím, dnes však často interně používají RISC-like mikrooperace.
3. Vestavěné systémy
- Volba závisí na požadavcích: RISC pro nízkou spotřebu, CISC pokud je prioritou kompaktní kód a speciální instrukce.
Did you know that many modern x86 procesory interně převádějí CISC instrukce na sadu jednoduchých RISC-podobných mikrooperací pro efektivní pipeline a paralelizaci?
Zajímavost: ARM architektura, původně navržená pro jednoduché a efektivní instrukce, dnes obsahuje i některé složitější instrukce a rozšíření pro vyšší výkon — hranice mezi RISC a CISC se tak stírá.
## Praktická ukázka: LOAD/STORE princip
- U RISC: data se načtou do registru instrukcí typu LOAD a výsledky se uloží instrukcí STORE; aritmetické instrukce pracují jen s registry.
- U CISC: aritmetická instrukce může přímo operovat s paměťovou adresou bez explicitního LOAD/STORE.
> **Definice:** LOAD je instrukce, která z paměti načte hodnotu do registru