Concetti Chiave
- La velocità della CPU è influenzata dal tipo di set di istruzioni, con due principali approcci: CISC e RISC.
- Le macchine CISC, utilizzate negli anni '70 e '80, hanno un set di istruzioni complesso, mentre le moderne tendono verso architetture RISC più efficienti.
- Il pipelining e il parallelismo sono tecniche utilizzate per ottimizzare la velocità di esecuzione delle istruzioni, misurata in MIPS.
- Le istruzioni devono essere facilmente decodificabili, e una struttura regolare con lunghezza fissa aiuta a velocizzare l'identificazione delle risorse necessarie.
- Un numero elevato di registri è fondamentale per ridurre i tempi di accesso alla memoria e migliorare la performance del sistema.
La velocità di esecuzione di un’istruzione determina più o meno la velocità della CPU, oggetto di discussioni di due correnti di pensiero:
- CISC (Complex Instruction Set): il set di un calcolatore deve contenere più istruzioni possibili, anche se ognuna può richiedere diversi cicli di data path, poiché permette di avere macchine più potenti
- RISC (Reduced Instruction Set): ogni istruzione dell’Instruction Set deve essere eseguita in un solo ciclo o pochi di data path, anche se servono più istruzioni per ottenere lo stesso risultato CISC, ma il sistema sarà più veloce poiché non serve interpretare le istruzioni
Evoluzione delle macchine CISC e RISC
Le macchine CISC venivano usate negli anni 70 e 80, ora si è indirizzati verso macchine RISC, ma la superiorità di una o l’altra soluzione può cambiare nel tempo.
- tutte le istruzioni di livello ISA sono eseguita da hardware: l’unità di controllo nella CPU è cablata (circuito sequenziale) e non micro programmata (istruzioni composte da più micro-istruzioni), la velocità poiché non c’è il livello di interpretazione
- ottimizzare velocità con cui le istruzioni sono mandate al primo stadio di esecuzione, determinato dal numero di istruzioni iniziate per secondo (MIPS: Milions of Instruction Per Second), oggi si usa il pipelining e il parallelismo
- le istruzioni devono essere decodificabili facilmente, la velocità dipende anche dal tempo impiegato per identificare le risorse necessarie, questo processo può velocizzarsi se si usa struttura regolare e lunghezza fissa
- le istruzioni Load e Store dovrebbero contenere indirizzi di memoria, così le altre istruzioni usano operandi contenuti nei registri, evitando tempi morti a causa di ritardi nella lettura dei dati nella memoria
- avere molti registri, per ridurre i tempi di accesso alla memoria
Domande da interrogazione
- Qual è la differenza principale tra le architetture CISC e RISC?
- Come influisce il pipelining sulla velocità di esecuzione delle istruzioni?
- Perché è importante avere molti registri in un'architettura RISC?
La differenza principale risiede nel numero di istruzioni e nella loro esecuzione: le architetture CISC hanno un set di istruzioni complesso che può richiedere più cicli di data path, mentre le architetture RISC puntano a eseguire ogni istruzione in un solo ciclo, aumentando così la velocità complessiva del sistema.
Il pipelining ottimizza la velocità con cui le istruzioni vengono inviate al primo stadio di esecuzione, aumentando il numero di istruzioni iniziate per secondo (MIPS) e migliorando l'efficienza del processore, come indicato nel testo.
Avere molti registri è fondamentale per ridurre i tempi di accesso alla memoria, poiché consente di utilizzare operandi contenuti nei registri e minimizza i ritardi dovuti alla lettura dei dati dalla memoria, come evidenziato nel testo.