Archite ura di un calcolatore La macchina di Von Neumann L`unità

La
macchina
di
Von
Neumann
Archite(ura
di
un
calcolatore
Collegamento
Bus di sistema
Unità di
Elaborazione
(CPU)
Memoria
Centrale
(MM)
Interfaccia
Periferica P1
Interfaccia
Periferica P2
Memoria di massa,
stampante, terminale…
Esecuzione istruzioni Memoria di lavoro
Stato CPU
Operazioni
Flag: C, Z, S, V
aritmetiche
e logiche
L’unità
di
elaborazione
(CPU)
Indirizzo prox istruzione
Registro di stato (SR)
Registro contatore
di programma (PC)
La
macchina
di
von
Neumann
Unità
aritmetico
Registri operandi
logica
(ALU)
A
Registro
interruzioni (INTR)
B
Registri generali
Registro istruzione
corrente (CIR)
Unità di controllo
(CU)
Istruzione in elaborazione
Clock
Sincronizzazione
Controllo:
-Prelievo
-Decodifica
Indirizzo cella MM-Esecuzione
Registro indirizzi
(AR)
Registro dati (DR)
Parola letta/da scrivere in MM
Il
bus
di
sistema
Registro contatore
di programma (PC)
Registro di stato (SR)
A
Registro
interruzioni (INTR)
B
Sequenza
di
le(ura
CPU
Unità
aritmetico
logica
(ALU)
Passo 3
INTR
A
ALU
B
123
123
CIR
Ck
Registro istruzione
corrente (CIR)
Clock
Registro dati (DR)
0
Unità di controllo
(CU)
Passo 1
Passo 4
2
SR
PC
42
DR
42
CU
123
AR
1023
READ
OK
Registro indirizzi
(AR)
Bus di sistema
Master/slave
Bus dati, Bus indirizzi, Bus controlli
1
Sequenza
di
scri(ura
Passo 2
PC
INTR
0
SR
Passo 1
A
Passo 5
3
ALU
B
123
123
CIR
Ck
70
DR
CU
70
42
Passo 4
123
AR
Estensioni all’architettura di von
Neumann
1023
WRITE
OK
Problemi con l’architettura
di von Neumann
•  L’esecuzione dei programmi avviene in
sequenza, senza sfruttare le potenzialità di
esecuzione in parallelo dei programmi stessi
•  L’unità di elaborazione attende una risposta
da parte di componenti più lenti
•  La velocità di accesso alla memoria centrale
(RAM) è bassa rispetto alla velocità
elaborazione della CPU (legge di Moore)
Legge di Moore
la legge di Moore mostra il crescente divario tra la
velocità dei processori e quella delle memorie
Possibili estensioni
•  Eseguire in parallelo le fasi di una istruzione
–  Architetture Pipeline
–  Architetture con parallelismo a livello istruzione
•  Usare gerarchie di memorie con costi e prestazioni diversi
–  memoria di massa
–  memoria centrale
–  memoria cache
Architetture pipeline e
superscalari
•  Usare più processori in un unico elaboratore
–  co-processori
–  processori grafici
–  architetture multi-processore dotate di CPU indipendenti
2
Architettura Harvard
Architetture pipeline e con ILP
•  Pipeline: ciascuna fase nell’esecuzione di
un’istruzione è affidata a un dispositivo specifico
•  Memorie per i dati e per le istruzioni sono diverse
–  mentre il processore sta eseguendo un’istruzione, può
contemporaneamente acquisire e interpretare le
istruzioni successive
–  superpipeline: pipeline più lunga
•  Architetture con ILP: replicano i componenti
interni del calcolatore in modo che sia possibile
lanciare l’esecuzione di più istruzioni in ogni
stadio della pipeline
•  Tipologia di ILP:
–  Dinamico: Architetture superscalari
–  Statico: Architetture VLIW
Stadi della pipeline
Stadi della pipeline
•  Fasi necessarie per interpretare ed eseguire
un’istruzione
•  Esempio
1. Caricamento istruzione
2. Decodifica e preparazione operandi
3. Eventuale lettura di valori dalla memoria o
Esecuzione operazione Aritmetico Logica
4. Scrittura risultato
1
2
3
4
1
ISTR. 1 ISTR. 2 ISTR. 3
…
2
3
4
1
2
3
4
Architetture CISC
Architetture RISC
•  CISC (Complex Instruction Set Computers)
•  RISC (Reduced Instruction Set Computers).
–  il linguaggio macchina contiene un grande
numero di istruzioni
–  ogni istruzione è complessa
–  l’esecuzione di ogni istruzione richiede più
tempo per la CPU
–  poche istruzioni semplici
–  è possibile creare pipeline più lunghe e più
efficienti
–  i programmi richiedono l’esecuzione di molte
istruzioni
3
La memoria cache
Limitazioni della memoria
tradizionale
•  Legge di Moore
–  il tempo di accesso alla memoria è più lento rispetto
alla velocità del processore
•  Quando il processore accede alla memoria deve
aspettare che i dati di cui ha bisogno vengano
caricati dalla memoria
–  il processore spreca cicli di clock in attesa dei dati
senza poter fare del lavoro utile
–  si dice che il processore va in stallo
Memoria cache
•  Memoria ad alta velocità e
di capacità ridotta situata
tra la memoria principale e
il processore
•  Contiene i dati utilizzati
con maggior frequenza dal
processore
–  questi dati non devono
essere richiamati ogni volta
dalla memoria più lenta
–  Possono esistere più livelli
di cache
Classificazione di Flynn
Architetture di calcolo parallele
Un solo flusso di istruzioni
Più flussi di istruzioni
Un solo flusso di dati
SISD
MISD
Più flussi di dati
SIMD
MIMD
4
Classificazione di Flynn
Memoria distribuita vs. condivisa
Architettura di un sistema SMP
SMP e CMP
Architetture CMP “dual core”
Multi-core vs. hyper threading
•  Multi-core:
–  due o più processori (chiamati core) sono
presenti sullo stesso chip
•  Hyper-threading:
–  il processore in certi casi è in grado, di eseguire
due serie (thread) di istruzioni allo stesso tempo
•  funziona duplicando alcune parti del processore ma
non quelle responsabili dell’esecuzione delle
istruzioni.
5
Superscalar
Fine-grained
Multithreading
Simultaneous
Multithreading
Comparison of pipeline issue slots in
three different architectures
6