Qual è la differenza tra CISC e RISC?


Risposta 1:

Il RISC è generalmente "carico-archivio" nei / dai registri. Generalmente vengono utilizzati tre registri come ADD R1 = R2 + R3, il caricamento e l'archiviazione possono o meno essere un'eccezione con solo due registri utilizzati in un'istruzione.

Il CISC generalmente consente il calcolo con valori provenienti da indirizzi di memoria, senza la necessità di inserirli per primi nei registri. Potrebbe anche avere modalità di indirizzamento più (complesse), consentendo da uno a più registri per la generazione di indirizzi.

Il CISC è generalmente di due operandi, con ad esempio ADD che ha lo stesso registro (o indirizzo di memoria) usato per la destinazione, ma anche lo stesso usato per una delle sorgenti.

Questo era un grosso problema, RISC cablato e CISC che utilizzava microcodice.

Ora la microarchitettura per CISC, almeno x86 (se non tutto il CISC in uso, il che significa che mainframe IBM è l'unico altro CISC sopravvissuto; i microcontrollori possono essere un'eccezione) suddivide le istruzioni in microops (operazioni simili a micro / RISC) che possono programmare fuori -ordine diverso dal microcodice originale.

RISC potrebbe persino farlo, ad esempio ARM più recente (inizialmente no), quindi le differenze sono inferiori rispetto a prima.

ARM originale non aveva istruzioni per la divisione di numeri interi poiché era troppo complesso, figuriamoci per il virgola mobile. Ora la ridotta [complessità] per R in RISC si applica meno poiché il virgola mobile è intrinsecamente complesso e tutte le principali CPU RISC supportano anche fino alle istruzioni di radice quadrata e trigonometria.


Risposta 2:

CISC è ottimizzato per fare il maggior lavoro possibile da una data dimensione dell'istruzione. Questo perché allora le CPU non avevano cache e la lettura delle istruzioni dalla memoria avrebbe richiesto più cicli, quindi un'istruzione complessa con molte modifiche di stato non era un problema finché era compatta.

RISC è ottimizzato per CPU che * dispongono * di una cache di istruzioni e ciò modifica il collo di bottiglia: le cache possono facilmente fornire 64 e 128 bit di dati ogni ciclo, purché siano allineati. Improvvisamente, puoi eseguire 1 o anche 2 istruzioni per ciclo, purché non vi siano dipendenze, quindi le istruzioni pulite che causano solo un singolo cambio di stato diventano molto più veloci.


Risposta 3:

CISC è ottimizzato per fare il maggior lavoro possibile da una data dimensione dell'istruzione. Questo perché allora le CPU non avevano cache e la lettura delle istruzioni dalla memoria avrebbe richiesto più cicli, quindi un'istruzione complessa con molte modifiche di stato non era un problema finché era compatta.

RISC è ottimizzato per CPU che * dispongono * di una cache di istruzioni e ciò modifica il collo di bottiglia: le cache possono facilmente fornire 64 e 128 bit di dati ogni ciclo, purché siano allineati. Improvvisamente, puoi eseguire 1 o anche 2 istruzioni per ciclo, purché non vi siano dipendenze, quindi le istruzioni pulite che causano solo un singolo cambio di stato diventano molto più veloci.