RISC: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
Jtyml (diskuse | příspěvky)
Bez shrnutí editace
Jtyml (diskuse | příspěvky)
Bez shrnutí editace
Řádek 16: Řádek 16:


==Filozofie designu neRISCových mikroprocesorů==
==Filozofie designu neRISCových mikroprocesorů==
Na začátku počítačového průmyslu se programovalo vyhradně v [[assembleru|assembler]] nebo [[strojovém kódu]], který se vyznačoval jednoduchými instrukcemi. Proto se CPU návrháři snažili, aby instrukce dělali stené množství práce jako FEASIBLE. S příchodem programovacích jazyků vyšší úrovně přicházejí také specializované instrukce, které jsou prímo implementovány do centrálních mechanismů těchto jazyků. Dalším obecným cílem bylo zajistit všechny možné adresovací módy pro každou instrukci tzv. ortogonita. Ta usnadňuje implementaci kompilátoru. Proto mají často aritmetické operace stejné výsledky jako operandy přímo v paměti (s vyjímkou registrů).
Na začátku počítačového průmyslu se programovalo vyhradně v [[assembleru|assembler]] nebo [[strojovém kódu]], který se vyznačoval jednoduchými instrukcemi. Proto se CPU návrháři snažili, aby instrukce dělaly stejné množství práce jako FEASIBLE. S příchodem programovacích jazyků vyšší úrovně přicházejí také specializované instrukce, které jsou prímo implementovány do centrálních mechanismů těchto jazyků. Dalším obecným cílem bylo zajistit všechny možné adresovací módy pro každou instrukci tzv. ortogonita. Ta usnadňuje implementaci kompilátoru. Proto mají často aritmetické operace stejné výsledky jako operandy přímo v paměti (s vyjímkou registrů).
V této době byl postoj takový, že design hardwaru byl vyspělejší než desing kompilátoru. Což bylo důvodem k vykonávání jednotlivých částí hardwaru nebo mikrokódu samostatně nikoli v omezené paměti kompilátoru (nebo jeho vygenerovaného kódu). Filozofie tohoto designu byla zpětně pojmenována jako komplexní instrukční výpočetní sada (complex instruction set computing - CISC), poté prisla RISCová filozofie mikroprocesorů.
V této době byl postoj takový, že design hardwaru byl vyspělejší než desing kompilátoru. Což bylo důvodem k vykonávání jednotlivých částí hardwaru nebo mikrokódu samostatně nikoli v omezené paměti kompilátoru (nebo jeho vygenerovaného kódu). Filozofie tohoto designu byla zpětně pojmenována jako komplexní instrukční výpočetní sada (complex instruction set computing - CISC), poté prisla RISCová filozofie mikroprocesorů.
CPU měli relativně málo registrů a to zejména z těchto důvodů:
CPU měli relativně málo registrů a to zejména z těchto důvodů:
Řádek 22: Řádek 22:
*Velký počet bitů vyžaduje velký počet instrukčních bitů jako registr specifikací, což zpřehldňije kód (viz níže).
*Velký počet bitů vyžaduje velký počet instrukčních bitů jako registr specifikací, což zpřehldňije kód (viz níže).
*CPU registry jsou dražší než externí paměťová místa, velké registrové sady byly značně těžkopádné s omezenými obvody na desce nebo čipovou inteligencí.
*CPU registry jsou dražší než externí paměťová místa, velké registrové sady byly značně těžkopádné s omezenými obvody na desce nebo čipovou inteligencí.
Významnou silou podporovanou složitost byla velmi omezená hlavní paměť (několik kilobytů). Proto bylo výhodnější pro mnoho informací uchovávaných ve složitějších počitačových programech, což vede funkcím, které jsou složitěji zakódované, promenná délka instrukce, data načítá stejně jako je počítá. Tyto problémy byly s vyšší prioritou než nsadné dekódování těchto instrukcí.
Významnou silou podporovanou složitost byla velmi omezená hlavní paměť (několik kilobytů). Proto bylo výhodnější pro mnoho informací uchovávaných ve složitějších počitačových programech, což vede k funkcím, které jsou složitěji zakódované, proměnná délka instrukce, data načítá stejně jako je počítá. Tyto problémy byly s vyšší prioritou než snadné dekódování těchto instrukcí.

Steně důležité bylo, že hlavní paměti byly docela pomalé (běžný typ paměti byla paměť s feritovým jádrem); díky velkému množství informací, jedna mohla snížit frekvenci CPU, který má přistup k těmto prostředkům. Moderní počítače se setkávají s podobnými limitujícími faktory: hlavní paměti jsou ve sovnání s CPU pomalé, rychlé vyrovnávací paměti (cache paměti) jsou omezené svojí velikostí. To může částečně vysvětlit, proč dokažou vysoce zakódované instrukční sady být stejně užitečné jako RISC procesory v moderních počítačích.

==Filozofie designu RISCových mikroprocesorů==
V polovině 70. let 19. století prokázali výzkumní pracovníci IBM (zejména John Cocke), že většina kombinací z těchto ortogonálních adresních módů a instrukcí nebyla použita ve většině programů generovaných kompilátory používaných v této době. Tím se ukázalo, že je v mnoha případech obtížné napsat kompilátor s omezenou schopností využívat funkce, které poskytuje klasické CPU.






Verze z 24. 4. 2011, 11:47

RISC (anglicky Reduced Instruction Set Computer, výslovnost risk) označuje v informatice jednu z architektur mikroprocesorů. RISC označuje procesory s redukovanou instrukční sadou, jejichž návrh je zaměřen jednoduchou, vysoce optimalizovanou sadu strojových instrukcí, která je v protikladu se specializovanými sadami instrukcí ostatních architektur.[1] Přesná definice termínu není jasná, avšak často se používá popisnější název architektura load-store. Mezi zástupce RISC procesorů patří DEC Alpha, AMD Am29000, ARC, ARM, Atmel AVR, MIPS, PA-RISC, Power (včetně PowerPC), SuperH a SPARC.

Alternativní architekturou jsou CISC procesory (anglicky Complex Instruction Set Computers, s komplexní instrukční sadou).

Důvody pro vznik architektury RISC

Během 70. let 20. století vědci (např. Seymour Cray) ukázali, že většina programů prováděných na tehdejších počítačích využívala pouze malou část (jen asi 30 %) ze všech dostupných strojových instrukcí procesoru. Bylo tomu tak proto, že tehdejší překladače nedokázaly efektivněji využít všech instrukcí.

Také složitý přístup do paměti zpomaloval provádění operací. Z toho vyplynulo, že složitější operace (mikrokód) efektivněji vykoná posloupnost jednodušších instrukcí, které lze provádět s vyšší frekvencí.

Ke konci 90. let, kdy se produkce procesorů CISC eskalovala k technickým parametrům, které se přiblížily svým výrobním limitům, bylo velmi obtížné dále zvyšovat jejich výkon při současném dodržení implementace kompletní instrukční sady. Implementace komplexnějších (a méně využívaných) CISCových instrukcí měla negativní vliv na technologii výroby a potažmo koncovou cenu procesoru, ale též spotřebu a spolehlivostí (uplatňovaly se různé přechodové jevy, rostl ztrátový výkon a další vlivy, které při menších frekvencích šlo zanedbat) nebo delikátností a náročností na provozní podmínky. Nejsložitější CISCové instrukce pracující s porty či pamětí přitom (stejně jako jejich RISCový ekvivalent) trvaly více taktů. RISCové procesory s tím nejlepším návrhem oproti tomu mohly s výhodou využívat orthogonalitu, čímž dokázaly komplexní instrukční sady částečně kompenzovat. Oproti těm CISCovým však stály zlomek jejich ceny, byly spolehlivější a přitom použitelnější do drsnějších podmínek a měly menší spotřebu.

Historie

Jedním z prvních RISCových strojů byl Superpočítač CDC 6600 navržený v roce 1964. Jeho CPU měla 74 operačních kódů (tj. částí instrukcí), v porovnání se 400 u 8086.

V dnešní době je prakticky každý moderní procesor založen na architektuře RISC, přestože pro ně mnohdy neplatí její základní charakteristiky – instrukční sady jsou rozšířeny o speciální povely pro práci s multimédii (MMX, SSE, 3DNow!), a instrukce trvají různě dlouhou dobu. Na druhou stranu ale masivně využívají pipelining – instrukce jsou načítány až 31 kroků dopředu a průběžně distribuovány mezi výkonné jednotky. Výstupy jsou poté řazeny tak, aby byl zachován sled jejich postupného zpracování.

Filozofie designu neRISCových mikroprocesorů

Na začátku počítačového průmyslu se programovalo vyhradně v assembler nebo strojovém kódu, který se vyznačoval jednoduchými instrukcemi. Proto se CPU návrháři snažili, aby instrukce dělaly stejné množství práce jako FEASIBLE. S příchodem programovacích jazyků vyšší úrovně přicházejí také specializované instrukce, které jsou prímo implementovány do centrálních mechanismů těchto jazyků. Dalším obecným cílem bylo zajistit všechny možné adresovací módy pro každou instrukci tzv. ortogonita. Ta usnadňuje implementaci kompilátoru. Proto mají často aritmetické operace stejné výsledky jako operandy přímo v paměti (s vyjímkou registrů). V této době byl postoj takový, že design hardwaru byl vyspělejší než desing kompilátoru. Což bylo důvodem k vykonávání jednotlivých částí hardwaru nebo mikrokódu samostatně nikoli v omezené paměti kompilátoru (nebo jeho vygenerovaného kódu). Filozofie tohoto designu byla zpětně pojmenována jako komplexní instrukční výpočetní sada (complex instruction set computing - CISC), poté prisla RISCová filozofie mikroprocesorů. CPU měli relativně málo registrů a to zejména z těchto důvodů:

  • Více registrů znamená také časově náročnější ukládání a obnovení jejich obsahu ze zásobníku.
  • Velký počet bitů vyžaduje velký počet instrukčních bitů jako registr specifikací, což zpřehldňije kód (viz níže).
  • CPU registry jsou dražší než externí paměťová místa, velké registrové sady byly značně těžkopádné s omezenými obvody na desce nebo čipovou inteligencí.

Významnou silou podporovanou složitost byla velmi omezená hlavní paměť (několik kilobytů). Proto bylo výhodnější pro mnoho informací uchovávaných ve složitějších počitačových programech, což vede k funkcím, které jsou složitěji zakódované, proměnná délka instrukce, data načítá stejně jako je počítá. Tyto problémy byly s vyšší prioritou než snadné dekódování těchto instrukcí.

Steně důležité bylo, že hlavní paměti byly docela pomalé (běžný typ paměti byla paměť s feritovým jádrem); díky velkému množství informací, jedna mohla snížit frekvenci CPU, který má přistup k těmto prostředkům. Moderní počítače se setkávají s podobnými limitujícími faktory: hlavní paměti jsou ve sovnání s CPU pomalé, rychlé vyrovnávací paměti (cache paměti) jsou omezené svojí velikostí. To může částečně vysvětlit, proč dokažou vysoce zakódované instrukční sady být stejně užitečné jako RISC procesory v moderních počítačích.

Filozofie designu RISCových mikroprocesorů

V polovině 70. let 19. století prokázali výzkumní pracovníci IBM (zejména John Cocke), že většina kombinací z těchto ortogonálních adresních módů a instrukcí nebyla použita ve většině programů generovaných kompilátory používaných v této době. Tím se ukázalo, že je v mnoha případech obtížné napsat kompilátor s omezenou schopností využívat funkce, které poskytuje klasické CPU.



Shrnutí typických rysů procesorů architektury RISC

  • procesor komunikuje s pamětí po sběrnici,
  • redukovaná sada strojových instrukcí obsahuje hlavně jednoduché instrukce,
  • délka provádění jedné instrukce je vždy jeden cyklus (tj. délka v bitech všech instrukcí je stejná),
  • mikroinstrukce jsou hardwarově implementovány na procesoru, čímž je velmi výrazně zvýšena rychlost jejich provádění,
  • registry jsou pouze víceúčelové (nezáleží, který z nich instrukce využije, což zjednodušuje návrh překladačů),
  • využívají řetězení instrukcí (pipelining).

Zastoupení RISC procesorů

Mezi nejznámější výrobce procesorů RISC patří IBM (např. řada PowerPC), Intel (většina jeho procesorů je ale řazena mezi CISC, nebo označována jako tzv. „post-RISC“) a Sun Microsystems (např. řada Sparc). V 32bitových RISC procesorech zabírají 75% podíl procesory ARM.[2]

Reference

  1. Studenti Stanfordské univerzity definovali RISC jako „a type of microprocessor architecture that utilizes a small, highly-optimized set of instructions, rather than a more specialized set of instructions often found in other types of architectures“.
  2. http://www.arm.com/miscPDFs/3823.pdf

Související články

Šablona:Pahýl - počítače