Petr Toufar
xtoufar1@fi.muni.cz
Historie RISC procesorů
Co je to RISC architektura?
RISC je architektura mikroprocesorů, která
používá "omezenou" sadu instrukcí. Vychází ze statistických výzkumů, kdy se
zjistilo, že 80% kódu programu využívá pouze 20% instrukcí CISC procesorů. Toto
vedlo k tvorbě procesorů s omezenou instrukční sadou. Tyto procesory mají tyto
společné rysy:
- Všechny instrukce mají jednu pevně danou délku
- Tato délka je většinou 4 byte
- Instrukce se většinou vykoná v 1 hodinovém cyklu
- Žádná instrukce neprovádí zaráz aritmetickou operaci a práci s pamětí
(přičti a ulož do paměti atd.)
- Nemají žádnou formu nepřímého adresování paměti
- Žádná instrukce neadresuje více než 1 paměťové místo
- Velký počet registrů
Tyto vlastnosti umožňují optimalizovat
architekturu mikroprocesoru a také překladače, takže pak dochází k větší
paralelizaci instrukcí než u CISC procesorů.
Výhody a nevýhody
Zde bych rád uvedl několik základních výhod a nevýhod
RISC architektury:
Výhody:
- RISC procesory jsou rychlejší (při srovnatelném kmitočtu)
- Jednodušší hardware
- Rychlejší návrh procesoru
- Nižší náklady na vývoj a výrobu
Nevýhody:
- Programy pro RISC jsou delší a komplexnější, než pro CISC
- Programátoři musejí dávat pozor, aby procesor často nečekal dlouho na
dokončení instrukce
- Vyžaduje velmi rychlé paměti pro rychlé načítání instrukcí
Počátek vývoje
Koncept RISC procesorů byl poprvé vyvinut Johnem Cockem z
IBM Research v roce 1974. Právě jeho práce poprvé poukázala na to, že programy
využívají v drtivé většině kódu jen omezenou sadu instrukcí. Procesor, který by
byl vyvinut na tomto základě, by mohl podporovat pouze několik instrukcí, čímž by
mohl mít méně tranzistorů a tedy tím by byl i levnější. Taktéž by vzhledem k
menšímu počtu tranzistorů a instrukcí mohl dokončit práci mnohem rychleji.
Termín RISC (zkratka pro Reduced Instruction Set Computer) byla vytvořena
Davidem Pattersonem, učitelem na Berkeley, University of California.
Aby
prokázál realizovatelnost své myšlenky, vytvořil v roce 1975 John Cocke prototyp
prvního RISCového procesoru nazvaného 801. Tento procesor se nikdy komerčně
neprodával. První "řádný" RISCový procesor byly procesory RISC 1 a RISC 2
vytvořené univerzitou v Berkeley v roce 1985. Z těchto procesorů se později
vyvinula architektura SPARC.
RISCové procesory se prosadily hlavně ve velmi
výkoných pracovních a grafických stanicích a serverech - hlavně procesory SPARC,
Digital Alpha a SGI MIPS. Vyjímku tvoří procesory Motorola 68000 (resp. dnes
IBM/Motorola PowerPC, G3 a G4), které jsou dnes díky počítačům Apple Macintosh
po Intelu 2. nejrozšířenější procesory na světě.
Nejdůležitější RISC procesory
SPARC
V roce 1981 začali pracovat profesoři Patterson a Sequin z
Berkeley univerzity na procesoru RISC I. Tento procesor vedl až k uvedení
procesoru SPARC v roce 1987. Tento čip se stal "korunní" platformou hlavně pro
Sun a jeho implementaci UNIXu - Solaris. SPARC není vyráběn jednou firmou (jako
třeba Motorola 6800), ale je pouze navrhován Sunem a zadáván různým výrobcům. Z
toho plyne rozdílné značení jednotlivých procesorů - SuperSPARC, HyperSPARC,
TurboSPARC atd. Procesory SPARC, jak již název napovídá (Scalable Processor
ARChitecture) je primárně určen do výkoných stanic a serverů s plnou podporou
multiprocessingu.
Procesory SPARC jsou odlišné od většiny ostatních procesorů
tím, že je netvoří jeden "všemocný" procesor, ale vzhledem k historickým důvodům
jsou tvořeny několika čipy, z nichž každý provádí určité operace (např.
UltraSPARC je tvořen z integer unit, coprocessor a floating point unit). Toto
uspořádání má několik výhod (jednotlivé čipy obsahují méně tranzistorů, takže
jsou levnější, spolehlivější a snazší pro návrh), ale i nevýhod (problémy s
rychlostí komunikace mezi jednotlivými čipy, zajištění konzistence paměti a
cache).
Dnešní procesory UltraSPARC jsou plně 64 bitové procesory, které
určené do velmi výkoných síťových stanic a serverů s velkým počtem (až několik
desítek) procesorů.
Řada Motorola 6800
Tento procesor z roku 1974 byl první z rodiny 6800,
která je v podstatě až dodnes základem počítačů Apple Macintosh. Obsahoval 4000
tranzistorů a některé zajímavé vlastnosti - zatímco u procesorů Intel byly
odlišné operace pro práci s pamětí (MOV) a I/O zařízeními (IN,OUT), tak Motorola
6800 mapovala I/O rozhraní do paměti a používala pro práci s nimi standardní
operaci MOV.
Tento procesor měl 8 bitovou datovou sběrnici a pouze dva 8
bitové registry (A a B) a 16 bitový indexový registr (X). Byl používán hlavně v
jednoúčelových aplikacích.
V roce 1979 představila Morotola 16-bitovou verzi
tohoto procesoru označenou 68000. Obsahovala 32 bitovou instrukční sadu, 16
bitovou datovou a 24 bitovou adresovou sběrnici. Tento procesor byl využíván v
prvních verzí UNIXu a byl použit Apple pro počítač Lisa a později Macintosh.
Jeho nová generace se jmenuje PowerPC a byl to první mikroprocesor, který
implementoval vykonávání instrukcí mimo pořadi (out of order execution).
Budoucnost
Dnes se rozdíl mezi RISC a CISC procesory začíná ztrácet.
První náznak RISCové technoloie se objevil u procesorů Intel v roce 1989 u
procesoru 80486, jehož FPU obsahovala hodně "natvrdo" vložené instrukční logiky
(hard-wired instruction logic) a pipelining. Další výrobci, jako např. Cyrix,
implementovali pipelining pro urychlení zpracování instrukcí. Procesor M1 také
obsahoval velký počet (32) registrů k volnému využití a za pomocí technologie
dynamického pojmenovávání registrů emulovat standardních 8 registrů.
V dnes
běžně používaných procesorech Intel Pentium IV a AMD Athlon je implementováno
ještě více know-how z oblasti RISC procesorů - např. vykonávaní instrukcí mimo
pořadí (out-of-order execution), předpověď větvení (branch prediction), on-chip
cache pracující na frekvenci procesoru, extrémně rychlé instrukce, zvětšená
hloubka pipeline atd.
V budoucnu můžeme očekávat, že architektury RISC a CISC
budou čím dál tím více splývat a nové procesory budou brát to nejlepší z obou
"světů", aby dosáhly většího výkonu - a o výkon zde jde především.
Odkazy do Internetu a použité materiály