Architettura di un Computer
Architettura dei computer
• In un computer possiamo distinguere quattro
unità funzionali:
– il processore
– la memoria principale
– la memoria secondaria
– i dispositivi di input/output
• Il processore e la memoria principale
costituiscono l’unità centrale
Componenti principali di un computer
Unità centrale
Processore
Memoria
principale
(centrale)
Bus
Controller
Stampante
Terminale
Periferiche di input/output
Memorie di massa
(secondarie)
Organizzazione fisica attuale
Periferiche
per l’input
Unità di
controllo ed
elaborazione
e memoria
Tastiera e mouse
Scanner
CPU + HD,
CD, Floppy
Periferiche
per l’output
Hard Disk
Lettore CD
Floppy Disk
RAM
CPU
La scheda madre
Le idee ed i pionieri
• Babbage
• Turing
• von Neuman
Il computer è un
calcolatore digitale
programmabile
dotato di memoria
dati e programmi
risiedono in
memoria
La memoria principale
• Fornisce la capacità di “memorizzare” le
informazioni (i dati e i programmi)
• Può essere vista come una lunga sequenza
di componenti elementari, ognuna delle quali
può contenere un’unità di informazione (un
bit)
• Le componenti elementari della memoria
sono aggregate tra di loro e formano strutture
complesse dette celle che possono
contenere otto bit (un byte)
• La memoria può essere vista come una
sequenza di celle
La memoria principale
0
1
2
3
4
• Ciascuna cella è caratterizzata da un
indirizzo
• Gli indirizzi corrispondono
all’ordinamento delle celle nella
sequenza
• Gli indirizzi sono numeri interi
(partono da 0)
• Gli indirizzi sono determinati
dall’ordinamento consecutivo
N
• Un altro nome con cui viene indicata la
memoria principale è memoria RAM
(Random Access Memory)
• Questa definizione indica che il tempo di
accesso ad una cella è lo stesso
indipendentemente dalla posizione della cella
• Le operazioni che un Processore può
effettuare sulla memoria sono le operazioni di
lettura e scrittura di informazioni nelle celle
• L’ indirizzo di una cella è un numero intero e
quindi lo si può codificare in binario
• Il numero di celle di memoria determina il
numero di bit necessari a rappresentare
l’indirizzo
• Viceversa il numero di bit destinati all’indirizzo
determina il numero di celle indirizzabili
• questo numero viene chiamato
Spazio di indirizzamento
Dimensioni della Memoria
• Le dimensioni della memoria principale variano
a seconda del tipo di computer
• Nei computer attuali le dimensioni tipiche della
memoria principale vanno da 32MB a 1GB
(1MB = 220 byte ~ 1.000.000 byte, 1GB = 230
byte ~ 1.000.000.000 byte)
Spazio di indirizzamento
• Nei computer attuali lo spazio di
indirizzamento è di almeno 32 bit, con cui si
possono indirizzare
232 byte = 4GB
Parola di memoria
• Una parola di memoria è, a seconda del tipo di
computer, un aggregato di (due) quattro o otto
byte, sul quale si può operare (leggere e scrivere)
come su un blocco unico
• Per eseguire le operazioni di lettura e scrittura sulla
memoria, si deve specificare l’indirizzo della parola
su cui si vuole operare
• Gli indirizzi delle parole devono essere multipli del
numero di celle (byte) che le compongono
Indirizzamento
• La cella è l’unità minima di memoria
indirizzabile, non sono indirizzabili i singoli
bit
• La parola è l’unità massima di memoria che
è possibile leggere e scrivere in un colpo
solo (mediante un’unica istruzione)
• La memoria è caratterizzata dal tempo di accesso
(tempo necessario per leggere o scrivere
un’informazione in una parola)
• Le memorie principali dei computer attuali sono
molto veloci e i loro tempi di accesso sono di pochi
nanosecondi (= 10-9 sec, un miliardesimo di secondo)
• Le memorie principali sono relativamente costose
• La memoria principale perde ogni suo
contenuto quando si interrompe
l’alimentazione elettrica. Questa caratteristica
viene chiamata volatilità
• È quindi necessario per conservare le
informazioni (programmi e dati) avere altri tipi
di memoria che conservano il contenuto
anche senza alimentazione elettrica
Il Processore
• Il processore è la componente dell’unità centrale che
elabora le informazioni contenute nella memoria
principale
• L’elaborazione avviene eseguedo sequenze di
istruzioni (istruzioni macchina)
• Il linguaggio in cui si scrivono queste istruzioni viene
chiamato linguaggio macchina
• Il ruolo del processore è quindi quello di eseguire
programmi in linguaggio macchina
Componenti di un processore
Bus
Interno
REGISTRI
Program Counter (PC)
Registro di Stato (PS)
Unità di
Controllo
Registro Istruzioni (RI)
Registri Generali (16 o 64)
Unità
AritmeticoLogica
Registro Indirizzi Memoria (RIM)
Registro Dati Memoria (RDM)
Registro di Controllo (RC)
L’unità di controllo
• L’Unità di Controllo (UC) si occupa di coordinare le
diverse attività che vengono svolte all’interno del
processore
• Il processore svolge la sua attività in modo ciclico: ad
ogni ciclo corrisponde l’esecuzione di una istruzione
macchina
• Ad ogni ciclo vengono svolte diverse attività
controllate e coordinate dalla UC
 si legge dalla memoria principale la
prossima istruzione da eseguire
 si decodifica l’istruzione letta
 si esegue l’istruzione
• La frequenza con cui vengono eseguiti i cicli
di esecuzione è scandita da una
componente detta clock
• Ad ogni impulso di clock la UC esegue una
(o poche) istruzioni macchina
• La velocità di elaborazione di un processore
dipende dalla frequenza del suo clock
• I processori attuali hanno valori di frequenza
di clock che variano tra i 1000 MHz e 3000
MHz (tra 1000 milioni e 3 miliardi di impulsi
al secondo)
Il Processore: i registri
• Il processore contiene al suo interno un certo
numero di registri (unità di memoria
estremamente veloci)
• Le dimensioni di un registro sono tipicamente
quelle di una parola di memoria (ad esempio
4 o 8 byte)
Esistono due tipi di registri:
– i registri speciali utilizzati dalla UC per
scopi particolari:
• controllo dell’esecuzione del programma
• scambio di dati con la memoria centrale
– i registri generali (registri aritmetici)
I registri speciali
• PC: program counter, contiene l’indirizzo
della prossima istruzione da eseguire
• RI: registro istruzioni, contiene l’istruzione in
esecuzione
• PS: process state, informazione sullo stato
dell’esecuzione e possibili errori
• RIM: registro indirizzi di memoria, contiene
l’indirizzo di memoria della cella (parola) in
esame
• RDM: registro dati memoria, contiene il dato
da trasferire in o dalla cella di memoria in
esame
• RC: registro di controllo, contiene il codice
dell’istruzione da eseguire
100
Codice op.
Argomento1
Argomento2
Formato istruzione (esempio)
Gli argomenti possono essere indirizzi
La memoria principale (RAM)
0
1
2
cod. op.mem. Ind1/Reg1 Ind2/Reg2
...
istr. lettura (load)/scrittura (store) in
memoria-registri
cod. op. reg. Reg1
Reg2
istr. per operazione tra due registri
...
+ -2 00003752
k
numero rappr.con segno, esponente e
mantissa
Il ciclo di esecuzione
inizio
PS:= start
PC:= ind. 1a istr.
no
PS = stop?
si
fine
RI:= istr ind. in PC
PC:=PC+1
RC:= cod. istr. in RI
esegui istruzione
Esecuzione istruzione
RC
load
store
RIM:= ind. oper. in RI
RDM:= cont. ind. in RIM
...
add
ROP1:= ROP1+ROP2
jump
...
stop
PC:= ind. oper. In RI
PS:= stop
1000
Load
3568
R1
1001
Add
R1
R2
1002
Store
R1
3568
1003
Jump
3568
1000
44
Esempio di esecuzione
•
•
•
•
•
•
•
•
•
•
PC = 1000
RC = Load
RIM = 1000
RDM = (Load, 3568, R1)
RI = (Load, 3568, R1)
PC = 1001
RC = Load
RIM = 3568
RDM = 44
R1 = 44
Lettura
dell’istruzione
all’indirizzo 1000
L’Unità Aritmetico-Logica
• L'Unità Aritmetico-Logica (ALU) è costituita da un insieme di
circuiti in grado di svolgere le operazioni di tipo aritmetico e
logico
• La ALU legge i dati contenuti all'interno dei registri generali,
esegue le operazioni e memorizza il risultato in uno dei
registri generali
• Ad esempio, vi sono circuiti in grado di eseguire la somma di
due numeri binari contenuti in due registri e di depositare il
risultato in un registro, circuiti in grado di eseguire il confronto
tra due numeri
• In alcuni elaboratori oltre alla ALU si può avere un processore
specializzato per effettuare operazioni matematiche
particolari, il coprocessore matematico
Scarica

LEZ03architettura - ICAR-CNR