Reducing Instruction Set Architecture (RISC) –
L’idea principale è quella di rendere l’hardware più semplice usando un set di istruzioni composto da pochi passi base per caricare, valutare e memorizzare le operazioni proprio come un comando load caricherà i dati, un comando store memorizzerà i dati.
Complex Instruction Set Architecture (CISC) –
L’idea principale è che una singola istruzione farà tutte le operazioni di caricamento, valutazione e memorizzazione proprio come un comando di moltiplicazione farà cose come caricare dati, valutarli e memorizzarli, quindi è complesso.
Entrambi gli approcci cercano di aumentare le prestazioni della CPU
- RISC: Ridurre i cicli per istruzione al costo del numero di istruzioni per programma.
- CISC: L’approccio CISC cerca di minimizzare il numero di istruzioni per programma ma a costo di aumentare il numero di cicli per istruzione.
Prima, quando la programmazione veniva fatta usando il linguaggio assembly, si sentiva il bisogno di far fare alle istruzioni più compiti perché la programmazione in assembly era noiosa e soggetta a errori, per cui l’architettura CISC si è evoluta, ma con l’avvento del linguaggio di alto livello la dipendenza dall’assembly ha ridotto l’architettura RISC.
Caratteristica del RISC –
- Istruzione più semplice, quindi decodifica dell’istruzione semplice.
- L’istruzione è sottodimensionata di una parola.
- L’istruzione richiede un solo ciclo di clock per essere eseguita.
- Maggiore numero di registri general-purpose.
- Modalità di indirizzamento semplici.
- Meno tipi di dati.
- Si può realizzare una pipeline.
Caratteristica del CISC –
- Istruzione complessa, quindi decodifica dell’istruzione complessa.
- Le istruzioni sono più grandi della dimensione di una parola.
- L’istruzione può richiedere più di un ciclo di clock per essere eseguita.
- Meno numero di registri general-purpose poiché le operazioni vengono eseguite nella memoria stessa.
- Modalità di indirizzamento complesse.
- Più tipi di dati.
Esempio – Supponiamo di dover aggiungere due numeri a 8 bit:
- Approccio CISC: Ci sarà un singolo comando o istruzione per questo come ADD che eseguirà il compito.
- Approccio RISC: Qui il programmatore scriverà il primo comando load per caricare i dati nei registri poi userà un operatore adatto e poi memorizzerà il risultato nella posizione desiderata.
Così, l’operazione di aggiunta è divisa in parti cioè carico, operazione, memorizzazione a causa della quale i programmi RISC sono più lunghi e richiedono più memoria per essere memorizzati ma richiedono meno transistor a causa del comando meno complesso.
Differenza –
RISC | CISC |
---|---|
Focus sul software | Focus sull’hardware |
Usa solo unità di controllo cablate unità di controllo | Usa sia l’unità di controllo cablata che micro programmata |
I transistor sono utilizzati per più registri | I transistor sono utilizzati per memorizzare istruzioni complesse |
Istruzioni di dimensioni fisse | Istruzioni di dimensioni variabili |
Può eseguire solo operazioni aritmetiche da registro a registro | Può eseguire REG a REG o REG a MEM o MEM a MEM |
Richiede più numero di registri | Richiede meno numero di registri |
La dimensione del codice è grande | La dimensione del codice è piccola |
Un istruzione viene eseguita in un singolo ciclo di clock | L’istruzione richiede più di un ciclo di clock |
Un’istruzione sta in una parola | Le istruzioni sono più grandi della dimensione di una parola |