Přeskočit na hlavní obsah

CISC A RISC

Kdy a proč se začaly procesory dělit na RISC a CISC?

  • V 70. letech, kvůli narůstající složitosti procesorů...

Jaké byly zásadní důvody, proč se začaly procesory RISC vyvíjet?

  • Výzkumy ukázaly, že programátoři a compilátory používají instrukce velmi nerovnoměrně (v 50% případů se vyskytují pouze 3 instrukce)
  • Snahy o nalezení optimálního instrukčního souboru \Rarr vznik RISC

Jaké jsou základní konstrukční vlastnosti procesorů RISC?

  • Malý instrukční soubor
  • V každém strojovém cyklu by měla být dokončena jedna instrukce
  • Zřeťezené zpracování instrukcí
  • Data jsou z hlavní paměti vybírána a úkládána výhradně pomocí LOAD a STORE instrukcí
  • Instrukce mají pevnou délku a jednotný formát
  • Je použit vyšší počet registrů
  • Složitost se přesouvá na optimalizující kompilátory

Jak přispěly jednotlivé charakteristické vlastnosti procesorů RISC ke zvýšení výpočetního výkonu?

  • Jednotná délka instrukcí \Rarr rychlejší výběr instrukcí z paměti \Rarr lepší plnění fronty instrukcí
  • Jednotný formát \Rarr zjednodušuje dekódování
  • Zřetězené zpracování instrukcí

Jaký je princip zřetězeného zpracování instrukcí v RISC procesorech?

  • Provedení instrukce musí vždy projít stejnými fázemi (né nutně těma co jsou na obrázku)
  • Funguje jako "výrobní linka"

CISC:

T1T2T3T4T5T6T7T8T9T10T11T12
VII1I2
DEI1I2
VAI1I2
VOI1I2
PII1I2
UVI1I2

RISC:

T1T2T3T4T5T6T7T8T9T10T11T12
VII1I2I3I4I5I6I7
DEI1I2I3I4I5I6I7
VAI1I2I3I4I5I6I7
VOI1I2I3I4I5I6I7
PII1I2I3I4I5I6I7
UVI1I2I3I4I5I6I7

Legend:

short namefull name
VIVýběr Instrukce
DEDekodování
VAVýpočet Adresy
VOVýběr Operandu
PIProvedení Instrukce
UVUložení Výsledku

Jakého zrychlení lze zřetězeným zpracováním instrukcí dosáhnout?

  • V ideáním světě, při délce zřetězení 6-ti instrukcí, udělá během 12 cyklů
    • CISC: 2 instrukce
    • RISC: 7 instrukcí
  • viz. tabulky

Jaké problémy přináší zřetězené zpracování instrukcí v procesorech RISC?

  • Datové a strukturální hazardy
    • Datové: Když instrukce potřebuje mít k dispozici data předchozí instrukce ( a ta ještě nejsou k dispozici)
    • Strukturální: Problém omezených prostředků procesoru (a počítače jako celku) ... např. jen jedna sběrnice
  • Problémy plněním fronty instrukcí
    • Podmíněné skoky

    • Nepodmíněné skoky na adresu, která se musí vypočítat

Co to je predikce skoků, proč se používá a jaké způsoby predikce se využívají?

  • Statická
    • Do instrukce se vkládají příslušné bity již při kompilaci (nebo programátorem při psaní programu)
  • Dynamická
    • Během běhu programu se zaznamenává, jestli se skok provedl, nebo ne
  • Může být:
    • Jedno bitová
    • Dvou bitová

Co to jsou datové a strukturální hazardy v RISC procesorech? Co je způsobuje?

Jak funguje dvoubitová dynamická predikce skoků a proč se využívá?

  • Jako čtyř stavový automat

2bitpredikce

  • A predikuje provedení skoku, N říká, že se skok provádět nebude
  • a a n přechody označují, zda se skok naposledy prováděl