Architettura di un computer


Architettura organizzata secondo il modello della
macchina di von Neumann definita nei tardi anni
‘40 all’Institute for Advanced Study di Princeton.
È costituita da quattro elementi funzionali
fondamentali:




Unità centrale di elaborazione (Central Processing Unit o
CPU);
Memoria Centrale;
Periferiche (I/O);
Bus di sistema.
Bus di sistema
CPU
Architettura computer
MEMORIA
CENTRALE
PERIFERICHE
Prof. Paolo Michelini
La macchina di Von Neumann

A fianco di Von Neumann l'elaboratore IAS di Princeton o macchina di
Von Neumann, ultimata nel 1952. Nella parte bassa dell'elaboratore si
può vedere una fila di tubi catodici (CRT) utilizzati come memoria. Nel
1955 tali memorie vengono sostituite da quelle a nuclei di ferrite.
Architettura computer
Prof. Paolo Michelini
Elementi base

La CPU (Central Processing Unit) contiene i dispositivi elettronici
in grado di interpretare ed eseguire le istruzioni di ogni programma
presente nella memoria centrale e di trasformare i dati in essa
contenuti. Le istruzioni vengono comunemente eseguite in
sequenza.

La memoria centrale contiene sia le istruzioni che i dati
(informazioni necessarie per eseguire un programma). Ha
dimensioni limitate ed è volatile (cioè le informazioni memorizzate
vengono perse allo spegnimento del computer).

Le periferiche consentono uno scambio di informazioni fra
l’elaboratore e l’esterno (ingresso/uscita, memoria secondaria). In
particolare, la memoria secondaria (o memoria di massa) viene
utilizzata per memorizzare grandi quantità di informazioni in modo
persistente. Ha dimensioni elevate, ma l’accesso è meno rapido,
rispetto alla memoria centrale.

Il bus di sistema è un canale che collega i vari elementi funzionali.
Fornisce la connessione elettrica per la trasmissione dei dati tra i
vari elementi.
Architettura computer
Prof. Paolo Michelini
Central Processing Unit (CPU)
SR
PC
A
B
INTR
IR
DR
Architettura computer
ALU
CU
AR
Clock
Prof. Paolo Michelini
Elementi della CPU

l’unità aritmetico-logica (Arithmetic Logic Unit o ALU) esegue le
operazioni aritmetiche e logiche richieste per l’esecuzione delle
istruzioni;

l’unità di controllo (Control Unit o CU), controlla e coordina l’attività
della CPU. In particolare, è responsabile del prelievo, della decodifica
delle istruzioni e dell’invio dei segnali di controllo per effettuare i
passi per l’esecuzione di un’istruzione;

il clock (orologio) “cadenza” le operazioni elementari, permettendo il
sincronismo delle operazioni;

vari registri (ad esempio, A, B, PC, SR, etc.). Un registro è una
locazione di memoria utilizzata per contenere dati, istruzioni, o
indirizzi all’interno della CPU. L’accesso ai registri è molto veloce.
Nei moderni sistemi di elaborazione la CPU è realizzata da un unico
circuito integrato (chip): il microprocessore.
Architettura computer
Prof. Paolo Michelini
Registri principali







DR (Data register o registro dati): viene utilizzato per
trasferire dati da e verso la memoria centrale.
AR (Address Register o registro indirizzi): viene utilizzato
per memorizzare l’indirizzo della cella corrente nella
memoria
centrale
(la
sorgente/destinazione
del
trasferimento di dati).
PC (Program Counter), registro “contatore” del programma.
Contiene l’indirizzo della prossima istruzione da eseguire.
IR (Instruction Register), registro istruzione corrente.
Contiene, istante per istante, l’istruzione che è attualmente
in esecuzione.
A, B: Registri accumulatori o di lavoro. Contengono
operandi e risultati delle operazioni svolte dalle ALU.
INTR (Interrupt Register o registro interruzioni): legato alla
richiesta di operazioni dalle periferiche di I/O.
SR (Status Register o registro di stato), i cui bit forniscono
informazioni sul risultato dell’ultima operazione eseguita
dalla ALU (overflow, zero, riporti, segno).
Architettura computer
Prof. Paolo Michelini
ALU (Arithmetic Logic Unit)




Esegue le operazioni aritmetiche, logiche
ed altre manipolazioni (es: scorrimento) sui
dati.
Opera su alcuni registri specifici chiamati
accumulatori (es: A, B) e modifica i bit del
registro Status Register (SR).
Gli accumulatori contengono il valore degli
operandi
ed
il
risultato
finale
dell’operazione.
I bit dello SR o flag permettono di capire
l’esito
dell’operazione
(es:
overflow,
risultato positivo o negativo, ecc.)
Architettura computer
Prof. Paolo Michelini
CU (Control Unit)

Sovraintende a tutte le attività della CPU,
imponendo la corretta sequenzializzazione
delle operazioni da svolgere. In particolare:



Fetch
L’unità di controllo ha il compito di reperire dalla
memoria centrale le istruzioni di un programma (fetch)
da eseguire (il cui indirizzo è nel registro PC). Le
istruzioni sono organizzate in memoria in sequenza.
Decodifica
La CU interpreta l’istruzione che è stata caricata con il
fetch.
Execute
La CU manda in esecuzione (execute) l’istruzione
trovata (che è stata caricata nel registro IR) finché non
c'è un “halt” del microprocessore.
Architettura computer
Prof. Paolo Michelini
Operatività della CU
Architettura computer
Prof. Paolo Michelini
Le memorie cache

La cache è una memoria speciale della CPU e, a
differenza della memoria centrale, è più piccola e
più veloce. Funziona come un buffer e contiene la
copia delle istruzioni e dei dati che vengono
maggiormente utilizzati. La sua funzione è di
velocizzare eventuali accessi successivi sugli
stessi dati appena ricercati.

Tipicamente si dividono in


Cache di primo livello o L1 interna alla CPU (es: 32 kB).
Cache di secondo livello o L2, (es: 256, 512KB,.., 8 MB) è
esterna al processore.
Architettura computer
Prof. Paolo Michelini
Parametri caratteristici della CPU







Socket: lo zoccolo della scheda madre in cui viene
inserito il processore. In questo caso il numero
rappresenta oltre al nome anche il numero dei pin di
contatto.
N°Core: si intende il numero nuclei, cioè di
processori, montati sul package: 1 se "single core", 2
se "dual core" o 4 se "quad core".
Clock: la frequenza di funzionamento del processore.
Pr. Prod.: sta per "Processo produttivo" ed indica la
dimensione costruttiva (es: 130 nm, 90 nm, 65 nm) ed
il numero di transistor integrati nel processore
espresso in milioni.
Voltag.: sta per "Voltaggio" ed indica la tensione di
alimentazione del processore.
Bus: frequenza del bus di sistema.
Cache: dimensione delle cache di 1° e 2° livello.
Architettura computer
Prof. Paolo Michelini
Esempio di CPU
Nome Commerciale
Socket
N°Core
Core 2 Quad Q6600
4
Core 2 Quad Q6700
Architettura computer
Pr.Prod.
Voltag.
Bus
Cache
65 nm
582 mil.
1,35 V
1066
MHz
L1=4x64KB
L2=2x4MB
32 nm
731 mil.
0.8–1.375
V
1333
MHz
L2 =6×256 KB
L3 = 12 MB
(condivisa fra i
core)
2,4 GHz
775
Core i7 990X Extreme
Edition
Clock
2,66 GHz
1366
6
3.47 GHz
Prof. Paolo Michelini
La memoria centrale




È chiamata anche RAM (Random Access Memory) ed è
volatile (tutte le informazioni vengono perse allo
spegnimento).
Contiene i dati e le istruzioni relative al programma in
esecuzione. La CPU scambia informazioni solo con la
memoria centrale
È strutturata come una sequenza di celle (dette parole o
word) di dimensione prefissata (es: 8, 16, 32, 64 bit)
Ogni parola è univocamente identificata dal suo indirizzo
byte
Es: parola a 8 bit
0
1
2
n
Architettura computer
Prof. Paolo Michelini
Indirizzamento della memoria


L’indirizzamento di una cella di memoria è fatta attraverso il
registro di indirizzi (AR)
Se AR dispone di k bit, saranno indirizzabili 2k celle



Es: k= 32 > celle indirizzabili = 232 = 4 Gbyte
Il valore della cella indirizzato da AR viene

copiato nel registro dati (fase di lettura indicato con R)

scaricato dal registro dati (fase di scrittura indicato con W)
Le operazioni (R/W) vengono coordinate dalla Control Unit
Es: k = 20, word =16 bit
AR
0
2
4
00006
byte 0 byte 1
byte 2 byte 3
01101000|10101101
W
01101000|10101101
R
Notazione esadecimale
DR
FFFFE
Architettura computer
Prof. Paolo Michelini
Caratteristiche delle memorie




La memoria è realizzata con dispositivi a semiconduttore
(materiali che hanno una conducibilità intermedia tra i
conduttori e gli isolanti. Le proprietà dei semiconduttori
diventano interessanti se vengono opportunamente drogati
con impurità)
Il tempo di accesso ad una memoria è dell’ordine della
decina di nanosecondi.
Capacità: valori tipici 128, 256, 512 MB, 1 GB, 2 GB
Possono essere




Dinamiche (DRAM): hanno bisogno di un segnale di refreh, per
mantenere le informazioni in esse contenute.
Statiche (SRAM): più veloci delle precedenti, ma più costose.
Normalmente utilizzate per le memorie cache.
SDRAM (Synchronous DRAM): Permettono un accesso
multiplo su locazioni differenti in memoria. Un segnale di
clock temporizza e sincronizza le operazioni di scambio di dati
con il processore, raggiungendo velocità molto più veloci.
DDR SDRAM (Double Data Rate SDRAM): evoluzione della
SDRAM con velocità doppia alla stessa per il fatto che
consente il trasferimento dei dati sia sul fronte di salita del
clock sia su quello di discesa
Architettura computer
Prof. Paolo Michelini
Moduli di memoria

SIMM (Single Inline Memory module)



Moduli fino a 64 MB, 30 o 72 piedini (pin) con bus dati
a 32 bit
Normalmente montate in coppia per aumentare la
capacità di trasferimento nei processori a 64 bit di bus
dati
DIMM (Dual Inline Memory Module)


Moduli fino a 240 pin (la metà per ogni faccia del
circuito stampato)
Attualmente i più utilizzati con velocità e capacità
maggiore delle precedenti (fino a 8 GB)
DIMM
Architettura computer
Prof. Paolo Michelini
Altre memorie (non volatili)

ROM (Read Only Memory)


Non volatili: mantengono le informazioni anche senza
alimentazione (es: programma di inizializzazione dei
computer o boot)
PROM (Programmable ROM)

Permettono di essere programmate dall’utente tramite dei
dispositivi particolari (programmatori di ROM)

EPROM (Erasable PROM)

Possono essere riscritte più volte, cancellando il loro
contenuto con raggi ultravioletti.
Il software contenuto in queste memorie è normalmente
chiamato firmware (es: Basic Input-Output System o BIOS
dei computer)

Flash Memory


Memorie non volatili a transistor in lettura/scrittura usate
tipicamente nelle fotocamere digitali, smartphone, ecc.
Architettura computer
Prof. Paolo Michelini
Bus di sistema
CPU
MEMORIA
CENTRALE
PERIFERICHE
Data bus
Address bus
Command bus
Architettura computer
Prof. Paolo Michelini
Bus di sistema

È composto da connessioni elettriche (sul circuito
stampato o su un cavo) lungo le quali viene trasferita
l’informazione. Collega due unità funzionali alla volta: una
trasmette e l’altra riceve (master-slave). Il trasferimento
avviene sotto il controllo della CPU (Control Unit).





Architettura computer
Bus dati (Data bus): bidirezionale. Utilizzato dalla CPU per
trasmettere dati dalla memoria al registro dati e viceversa o
verso le interfacce di I/O.
Bus indirizzi (Address bus): unidirezionale. Viene utilizzato
dalla CPU per trasmettere il contenuto del registro indirizzi alla
memoria o alle interfacce di I/O per selezionare il dispositivo
da usare.
Bus comandi (Command bus): unidirezionale. Permette alla
CPU di inviare alla memoria o all’I/O i segnali di
comando/consenso fra le varie unità (es: lettura o scrittura).
Le uniche istruzioni che possono accedere direttamente alla
memoria centrale, sono quelle che trasferiscono i dati da e
verso i registri. Tutte le altre operano solo su registri.
Se la dimensione (numero di bit) del bus dati è uguale alla
dimensione della parola, si può trasferire in parallelo un intero
dato. Altrimenti occorrono più trasferimenti.
Prof. Paolo Michelini
Esempi di bus

I più comuni sono:



Architettura computer
PCI = Peripheral Component Interconnect (max 64 bit a
66 MHz = 528 MB/s di trasferimento dati)
AGP
=
Accelerated
Graphics
sviluppato
per
interfacciare le schede grafiche di nuova generazione.
PCI Express = È basato su un trasferimento dei dati
seriale, a differenza di quello parallelo del PCI, che
semplifica il layout delle schede madri ed è costituito da
una serie di canali (es: PCIx16, costituito da 16 canali,
potendo offrire così il doppio della velocità rispetto allo
standard AGP 8x, quindi teoricamente in grado di
trasferire 4 Gb/s)
Prof. Paolo Michelini
Esempio di operazione della CPU
Z (8 bit) W (8bit)
Circuiti di
controllo
Bus controllo
Registro istruzioni (8 bit)
Registro A
Registro B
Sommatore
Architettura computer
Memoria (a 8 bit)
Bus controllo
registro indirizzi
PC (16 bit)
CU
registro dati
+1
Bus indirizzi
16 bit
3E
0
20
1
27
2
03
3
C6
3A
4
10
20
76
5
6
7
8
Bus dati
8 bit
ALU
Prof. Paolo Michelini
Esempio di operazione della CPU

Le istruzioni contenute in memoria
normalmente consistono di


Codice operativo (operation code): serve
ad attivare un’azione opportuna (es:
somma, input/output, ecc.)
Operandi (operands): contiene gli
indirizzi degli operandi o gli operandi
stessi coinvolti nell’operazione (talvolta
sottintesi)
Architettura computer
Prof. Paolo Michelini
Esempio di operazione della CPU

I fetch






Architettura computer
Il contenuto del PC viene spostato nel registro
indirizzi e viene comandata una lettura in
memoria (lettura della cella 0 = 3EH)
Il dato viene spostato nel registro istruzione
Il PC viene incrementato e diventa = 1
Il codice del registro istruzione viene
decodificato come: muovi nel registro A il dato
che segue il codice operativo.
Il PC viene spostato nel registro indirizzi e
viene
ordinata
la
lettura
della
cella
corrispondente. Il valore 20H viene spostato nel
registro dati.
Il PC viene incrementato e diviene = 2
Prof. Paolo Michelini
Esempio di operazione della CPU

I esecuzione


II fetch



Il dato nel registro dati viene spostato nel
registro A della ALU.
Viene eseguita l’istruzione all’indirizzo 2 (27H )
che richiede di muovere nel registro B il dato
03H che segue il codice operativo (PC =3). PC
diventa 4.
Istruzione alla 4 (C6H) richiede di sommare il
contenuto di A e B e mettere il risultato in A.
II esecuzione

Architettura computer
La CU da indicazione alla ALU di eseguire la
somma.
Prof. Paolo Michelini
Esempio di operazione della CPU

III fase

L’istruzione all’indirizzo 5 (3AH) richiede di
acquisire l’indirizzo dell’operando. Il fetch
dell’indirizzo è fatta in 2 passi.





Architettura computer
Viene letto il valore all’indirizzo 6 (10H) e messo in W
e quello 7 (20H) in Z
Il contenuto di W e Z viene interpretato come un
unico indirizzo a 16 bit (1020H)
Il contenuto di A viene messo nel registro dati.
Viene ordinata una scrittura del dato in A (23H
= 20H + 03H ) nell’indirizzo (1020H)
L’istruzione all’indirizzo 8 (76H) ordina l’halt
della macchina
Prof. Paolo Michelini
Linguaggio assembly


Programmare in formato binario o
esadecimale è molto difficoltoso. Sono
stati così creati i linguaggi assembly, che
utilizzano una codifica simbolica per le
operazioni appena descritte. Questi
linguaggi sono dipendenti dal tipo di
processore usato, non sono quindi
portabili fra macchine con CPU diverse.
Assemblatore: traduce il programma
assembly
in
liguaggio
macchina
(sequenza di 0 e 1).
Architettura computer
Prof. Paolo Michelini
Linguaggio assembly

La traduzione del precedente programma
in pseudo-linguaggio assembly potrebbe
essere:
LD A,20H
load A con il valore 20
H
LD B,03H
ADD A,B
LD (1020H),A
load B con il valore 03H
somma A e B e metti il risultato in A
sposta il contenuto di A all’indirizzo
1020H
HALT
Architettura computer
Prof. Paolo Michelini