Jaký je rozdíl mezi CISC a RISC?


Odpověď 1:

RISC je obvykle „load-store“ do / z registrů. Obecně se používají tři registry, jako je ADD R1 = R2 + R3, načtení a uložení může nebo nemusí být výjimkou pouze se dvěma registry použitými v instrukci.

CISC obecně umožňuje výpočet s hodnotami z adres paměti, aniž by je bylo nutné nejprve získat do registrů. Mohl by mít také více (složitějších) režimů adresování, které umožňují generování adresy z jednoho do více registrů.

CISC je obecně dvou-operand, s např. ADD majícím stejný registr (nebo paměťovou adresu) použitou pro cíl, ale také stejný pro jeden ze zdroje.

To bývalo hodně a RISC s pevným připojením a CISC s použitím mikrokódu.

Nyní microarchiteture pro CISC, nejméně x86 (pokud ne všechny CISC v použití, což znamená, IBM mainframes jediný další přežívající CISC; mikrokontroléry mohou být výjimkou), rozděluje pokyny na microops (micro / RISC-like operace), které mohou naplánovat mimo - na rozdíl od původního mikrokódu.

RISC to může dokonce udělat, např. Novější ARM (nejprve zpočátku), takže rozdíly jsou menší než dříve.

Původní ARM nemělo žádnou celočíselnou instrukci pro dělení divize, protože to bylo příliš složité, natož žádné pro plovoucí desetinnou čárku. Nyní je snížená [složitost] pro R v RISC aplikována méně, protože plovoucí desetinná čárka je ze své podstaty složitá a všechny hlavní RISC CPU podporují i ​​instrukce druhé odmocniny a trigonometrie.


Odpověď 2:

CISC je optimalizován pro co nejvíce práce z dané velikosti instrukce. Důvodem je, že CPU tehdy neměly mezipaměť a čtení instrukcí z paměti by trvalo několik cyklů, takže složitá instrukce s mnoha změnami stavu nebyla problémem, dokud byla kompaktní.

RISC je optimalizován pro procesory, které * mají instrukční mezipaměť a mění úzký profil: mezipaměti vám mohou snadno poskytnout 64 a 128 bitů dat v každém cyklu - pokud jsou vyrovnány. Najednou můžete spustit 1 nebo dokonce 2 instrukce za cyklus, pokud není závislost, takže čisté pokyny, které způsobují pouze změnu stavu, se zrychlují.


Odpověď 3:

CISC je optimalizován pro co nejvíce práce z dané velikosti instrukce. Důvodem je, že CPU tehdy neměly mezipaměť a čtení instrukcí z paměti by trvalo několik cyklů, takže složitá instrukce s mnoha změnami stavu nebyla problémem, dokud byla kompaktní.

RISC je optimalizován pro procesory, které * mají instrukční mezipaměť a mění úzký profil: mezipaměti vám mohou snadno poskytnout 64 a 128 bitů dat v každém cyklu - pokud jsou vyrovnány. Najednou můžete spustit 1 nebo dokonce 2 instrukce za cyklus, pokud není závislost, takže čisté pokyny, které způsobují pouze změnu stavu, se zrychlují.