Dopo aver analizzato il modello di Von Neumann, il ciclo macchina e le ottimizzazioni come pipeline e cache, è il momento di allargare la prospettiva. L’evoluzione dei calcolatori non si è limitata a migliorare il modello originale — ha prodotto varianti architetturali basate su scelte progettuali fondamentalmente diverse.
Il collo di bottiglia di Von Neumann
Nel modello classico, dati e istruzioni condividono la stessa memoria e lo stesso bus. Questo comporta una conseguenza strutturale precisa:
L’architettura di Harvard
L’architettura di Harvard supera il collo di bottiglia separando fisicamente la memoria delle istruzioni da quella dei dati e utilizzando bus distinti per ciascuna. Il risultato è che la CPU può prelevare un’istruzione e leggere/scrivere un dato nello stesso istante.
Dove si utilizza Harvard?
CISC vs RISC — la filosofia dell’insieme di istruzioni
Se Von Neumann e Harvard riguardano l’organizzazione della memoria, CISC e RISC riguardano invece la filosofia dell’ISA — l’Instruction Set Architecture, ovvero l’insieme delle istruzioni che il processore è in grado di eseguire.
Architettura CISC — Complex Instruction Set Computing
Le architetture CISC nascono con l’obiettivo di rendere il linguaggio macchina più vicino ai linguaggi di alto livello: un’unica istruzione complessa può compiere più operazioni in un solo comando.
IMUL EAX, [EBX+ECX*4+8] ; moltiplica EAX per il dato in memoria
; calcolando l'indirizzo: EBX + ECX×4 + 8
; tutto in una sola istruzioneArchitettura RISC — Reduced Instruction Set Computing
Le architetture RISC nascono come risposta ai limiti delle CISC. L’idea è opposta: ridurre il numero di istruzioni, rendendole semplici e uniformi per favorire l’esecuzione in un singolo ciclo di clock e ottimizzare la pipeline.
LDR R1, [R2, #8] ; carica il dato da memoria in R1
MUL R0, R0, R1 ; moltiplica R0 × R1 → R0
; stessa operazione dell'esempio CISC
; ma separata in due istruzioni sempliciConfronto diretto — CISC vs RISC
| Caratteristica | CISC | RISC |
|---|---|---|
| Dimensione ISA | Ampia — centinaia di istruzioni | Ridotta — poche decine di istruzioni |
| Lunghezza istruzioni | Variabile | Fissa |
| Cicli per istruzione | Variabile (1–20+) | Tendenzialmente 1 |
| Complessità hardware | Elevata | Ridotta |
| Pipelining | Difficile da ottimizzare | Ottimizzato nativamente |
| Accesso alla memoria | Integrato nelle istruzioni ALU | Solo con LOAD / STORE dedicati |
| Esempi reali | Intel x86, AMD64 | ARM, RISC-V, MIPS, Apple Silicon |
I due livelli di progettazione — schema di sintesi
È fondamentale tenere distinti i due livelli: Harvard/Von Neumann e CISC/RISC riguardano aspetti diversi dell’architettura — e possono essere combinati liberamente.
Combinazioni nei processori moderni
Riepilogo
- Nel modello di Von Neumann, dati e istruzioni condividono memoria e bus — questo crea il collo di bottiglia
- L’architettura Harvard separa fisicamente le due memorie con bus distinti, consentendo accessi simultanei
- La Harvard modificata è il compromesso usato nei processori moderni: cache I/D separate, RAM condivisa
- Harvard e Von Neumann riguardano l’organizzazione della memoria — CISC e RISC riguardano l’insieme di istruzioni
- Le architetture CISC (x86) usano istruzioni complesse e variabili — programmi compatti, decode complessa, pipelining difficile
- Le architetture RISC (ARM, RISC-V) usano istruzioni semplici e fisse — ogni istruzione in un ciclo, pipelining ottimale
- I processori moderni combinano i due livelli: Intel/AMD traducono CISC in micro-op RISC internamente
- La scelta architetturale non riguarda solo la velocità, ma l’efficienza complessiva del sistema