Kakšna je razlika med CISC in RISC?


Odgovor 1:

RISC je na splošno "shranjevanje" v registre / iz njih. Na splošno se uporabljajo trije registri, kot je ADD R1 = R2 + R3, nalaganje in shranjevanje pa je lahko ali ne sme biti izjema samo z dvema registroma, ki se uporabljata v navodilih.

CISC na splošno omogoča izračun z vrednostmi iz pomnilniških naslovov, ne da bi jih bilo treba najprej spraviti v registre. Lahko bi imel tudi več (zapletenih) načinov naslavljanja, kar bi omogočilo od enega do več registrov za ustvarjanje naslovov.

CISC je na splošno dvooperanden, npr. ADD ima isti register (ali pomnilniški naslov), ki se uporablja za namembni kraj, vendar se isto uporablja tudi za enega od virov.

To je bila včasih velika težava, RISC pa je bil napeljan in CISC z uporabo mikrokode.

Zdaj mikroarhitektura za CISC, vsaj x86 (če ne celoten CISC v uporabi, kar pomeni, da je IBM mainframes edini drugi preživeli CISC; mikrokontrolerji so lahko izjema) razdeli navodila na mikroops (mikro / RISC podobne operacije), ki lahko načrtujejo odhod -red, za razliko od originalne mikro kode.

RISC lahko to celo stori, npr. Novejši ARM (prej ni bil), zato so razlike manjše kot nekoč.

Original ARM ni imel navodil za celotno delitev, saj je bil preveč zapleten, kaj šele kateri koli za plavajočo točko. Zdaj zmanjšana [kompleksnost] za R v RISC velja manj, saj je plavajoča točka že sama po sebi zapletena in vsi glavni CPU-ji RISC podpirajo celo do kvadratnih navodil za korenike in trigonometrijo.


Odgovor 2:

CISC je optimiziran za opravljanje čim več dela od določene velikosti navodil. To je zato, ker procesorji takrat niso imeli predpomnilnika in branje navodil iz pomnilnika bi trajalo več ciklov, zato zapleteno navodilo z mnogimi spremembami stanja ni predstavljalo težav, če je bilo kompaktno.

RISC je optimiziran za procesorje, ki imajo * do * predpomnilnik navodil, in to spremeni ozko grlo: predpomnilniki vam lahko zlahka dajo 64 in 128 bitov podatkov v vsakem ciklu - če so poravnani. Nenadoma lahko zaženete 1 ali celo 2 navodila na cikel, dokler ni odvisnosti, zato čista navodila, ki povzročajo samo eno spremembo stanja, postanejo hitrejša.


Odgovor 3:

CISC je optimiziran za opravljanje čim več dela od določene velikosti navodil. To je zato, ker procesorji takrat niso imeli predpomnilnika in branje navodil iz pomnilnika bi trajalo več ciklov, zato zapleteno navodilo z mnogimi spremembami stanja ni predstavljalo težav, če je bilo kompaktno.

RISC je optimiziran za procesorje, ki imajo * do * predpomnilnik navodil, in to spremeni ozko grlo: predpomnilniki vam lahko zlahka dajo 64 in 128 bitov podatkov v vsakem ciklu - če so poravnani. Nenadoma lahko zaženete 1 ali celo 2 navodila na cikel, dokler ni odvisnosti, zato čista navodila, ki povzročajo samo eno spremembo stanja, postanejo hitrejša.