Architettura del Calcolatore
Appunti per la cl. IV sez. D a cura
del prof. Ing. Mario Catalano
1
Modello di Von Neumann


L’architettura del moderno microcomputer
ha radici che risalgono agli anni ‘40.
Il Matematico ungherese John Von
Neumann (1903-1957) ha sviluppato un
modello di computer che ancor oggi è
utilizzato per la descrizione degli
elaboratori
2
Il Von
modello
Neumann divise
l’hardware del computer
nelle seguenti parti:






CPU
Input
Output
Working Storage
(archiviazione
temporanea)
Permanent Storage
Applicando il modello di
Von Neumann al
personal computer
odierno otterremo uno
schema come in figura:
3
Il modello di Von Neumann
CPU
MEMORIA
CENTRALE
INTERFACCIA
I/O
PERIFERICHE
4
Architettura Studiata
Bus di controllo
DMA
Bus di indirizzi
ROM
RAM
Clock
CPU
Interrupt
BIOS
Bus di dati
Controller
dischi,
CD-ROM,etc.
Connettori
Periferiche
I/O
Bus di I/O
5
Cosa è un BUS?






È un mezzo di trasmissione pubblico dei dati
Fisicamente è composto da più connettori che collegano
fra loro più circuiti e permettono loro lo scambio di dati.
I dati possono essere trasmessi in modo seriale
(bastano pochi conduttori) o parallelo (serve un
conduttore per ciascun bit della parola)
Nei bus paralleli, spesso, i conduttori che trasmettono i
dati (linee dati) sono separati da quelli che trasmettono
gli indirizzi (linee indirizzi).
Sempre i segnali di controllo sono trasmessi su
connettori dedicati.
Il protocollo di trasmissione è definito da un circuito
detto Bus Controller
6
I componenti di un elaboratore: BUS


I bus all’interno del computer sono linee di trasmissione che
collegano le varie unità funzionali del computer
Si dividono in


Bus Interni (per es. Interni alla CPU)
Bus Esterni (solitamente standardizzati)
7
Circuiti di Temporizzazione (Clock)
T
tempo
 Il megahertz (MHz) è l'unità di misura della frequenza alla quale
il processore funziona;
 indica quanti milioni di oscillazioni al secondo (1 oscillazione al
secondo = 1 hertz [Hz]) sono generate dal clock.
 f=1/T Hz.
8
Circuiti di Temporizzazione (Clock)
 In generale il clock é prodotto da un
apposito circuito integrato, la cui
oscillazione é controllata da un cristallo di
quarzo.
 Il cristallo di quarzo garantisce una elevata
stabilita nel tempo e con il variare della
temperatura ed una grande precisione nel
valore della frequenza prodotta, quanto
meno
possibile
influenzato
dalla
temperatura e dall' invecchiamento.
9
Circuiti di Temporizzazione (Clock)
 Ogni area
processore
necessita di
generato in
principale.
del PC che contiene un
o
un
microcontrollore,
un clock, che puó essere
loco o dipendere dal clock
 Giá a partire dalle CPU 80486, é diventato
comune avere per il processore un clock
piú elevato di quello generale del sistema.
10
CPU-Principi di Base





STRUTTURA DELLA ISTRUZIONE MACCHINA: Si tratta di
una stringa binaria che identifica il codice della operazione
da eseguire e le modalità per indirizzare gli operandi
FASI CPU: Ricerca (Fetch) e Esecuzione (Execute)
ESECUZIONE DI UNA ISTRUZIONE MACCHINA:
l’esecuzione di un’istruzione avviene con una sequenza di
microistruzioni a livello circuitale associate all'istruzione
(ciascuna determina il posizionamento dei segnali elettrici
in un ciclo di clock)
RISC: il set istruzioni è composto da poche istruzioni di
base, della stessa dimensione e con lo stesso tempo di
esecuzione
CISC: il set di istruzioni è composto da molte istruzioni di
dimensioni diverse e con tempi di esecuzione diversi 11
CPU-Memoria Cache
 La memoria, a rigore, non dovrebbe far parte
dell'unità centrale ma attualmente una
tendenza che si va consolidando e quella di
fornire CPU che presentino al loro interno
banchi di memoria allo scopo di reperire
velocemente informazioni, senza dover
accedere alla memoria centrale.
 Cache di Primo Livello L1 (alcune volte
anche la L2 e L3)
12
CPU-Registri Interni
 Di numero e di caratteristica molto differenziate, i registri
interni di lavoro permettono all'unità centrale lo spostamento,
la manipolazione ed il deposito temporaneo dei dati senza
dover ricorrere alla memoria esterna.
 I tipi di registri, le modalità di interconnessione e di
comunicazione fra i vari registi sono una caratteristica del
processore
 Possiamo tuttavia individuare un set di registri essenziali per il
funzionamento di un qualunque processore, e che, dunque,
possono essere ritrovati in una qualunque architettura.
13
CPU-Registri Interni

Memory Address Register (MAR). E' il registro specializzato per
indirizzare la memoria. Durante l'esecuzione di un programma il MAR
contiene l'indirizzo della locazione di memoria centrale (esterna alla CPU)
alla quale si vuole accedere in quell'istante.

Program Counter (PC). E' il registro specializzato per contenere l'indirizzo
dell'istruzione che deve essere eseguita.

Memory Data Register (MDR). E' il registro da cui transitano tutti i dati
scambiati con la memoria esterna prima di venire smistati, in base al loro
significato, presso gli altri registri interni.

Instruction Register (IR). E' il registro che contiene la parte codice
operativo di un'istruzione, vale a dire quella sequenza di bit che
opportunamente decodificati determineranno le azioni che la CPU deve
14
eseguire.
CPU-Registri Interni
 Accumulatore. E' il principale registro di calcolo dell'unità
centrale: contiene sempre uno degli operandi e il risultato
dell'operazione 
Pointer Registers (PRs). Sono registi specializzati per contenere
indirizzi, solitamente di quei sotto programmi ricorrenti con particolare
frequenza. Alcuni di essi possono venire specializzati a funzioni
particolari.
 Uno di essi è lo stack pointer, che indirizza la zona di RAM in cui è
stato costruito lo stack. Lo stack e' definita come una porzione di
memoria gestita secondo una politica LIFO (Last In First Out).

Risulta estremamente comodo per il salvataggio del program
15
counter in caso di interruzione (interrupt) o subroutine; CPU-Registri Interni

Status Register. Con registro di stato si intende un registro il cui
contenuto è costituito da un insieme di flag aventi un significato
individuale, anche se può essere manovrato ed elaborato in parallelo.
Il significato dei vari flags costituenti il registro può differire a seconda
del microprocessore, ma avremo sempre alcuni flags fondamentali:
 CARRY. Viene manipolato dalle operazioni aritmetiche; viene
settato o resettato nel corso di un'istruzione di somma se si è
avuto o no un riporto.
 OVERFLOW. Risente anch'esso dell'esito delle operazioni
aritmetiche; viene settato a uno se nel corso di una somma o
sottrazione si è avuto un trabocco della capacità dei registi.
16
CPU-Unità Aritmetico Logica ALU




Operazioni Aritmetiche: Somma in Complemento a 2
Operazioni Logiche: AND, OR e NOT
Operazioni sui Bit: Shift e Rotazione
Dati in Ingresso: il Contenuto dell'Accumulatore (sempre) e
dei registri interni della CPU (operandi residenti in memoria
centrale vengono appoggiati su registri temporanei)
 Risultato dell'Operazione: Accumulatore
 Uscite Collaterali: è fondamentale registrare alcune
condizioni di fine esecuzione delle operazioni di ALU al
fine di determinare se procedere con la successiva
istruzione in memoria o con un’altra opportunamente
specificata.
 risultato zero, negativo, riporto, overflow ……
 registro di stato 17
CPU-Instruction Decoder and Control

E' il cuore del processore

Riceve come dato in ingresso il codice operativo dell'istruzione
presente nell'instruction register (IR).

Questo codice può essere pensato come l'indirizzo di partenza
di un microprogramma interno che agisce a livello circuitale
minimo componendo insieme, in modo opportuno, gruppi di
microistruzioni.

Queste ultime consistono in definitiva nell'emissione di una
serie di segnali e stati logici di controllo che servono:



a predisporre la ALU a compiere una particolare funzione
aritmetico logica
a smistare attraverso i bus interni i contenuti dei registri
interessati
a svolgere i necessari test e gli eventuali scambi di dati con
18
l'esterno.
CPU-Instruction Decoder and Control

Esempio di Microprogramma associato all'istruzione di Somma del
contenuto dell'accumulatore con il contenuto del MDR.

Questa operazione può essere scomposta in sette passi elementari:
1. Trasferimento del contenuto dell'accumulatore sul bus dati interno
alla CPU.
2. Trasferimento del contenuto del bus dati nella ALU.
3. Trasferimento del contenuto del MDR sul bus dati interno alla CPU.
4. Trasferimento del contenuto del bus dati nella ALU.
5. Attivazione della logica di somma.
6. Trasferimento del contenuto della ALU (risultato della somma) sul
bus dati.
7. Trasferimento del contenuto della data bus nell'accumulatore (che
conterrà il risultato della somma).
19
CPU - Fasi di Fetch e Execute

In qualunque processore l'esecuzione di una generica
istruzione avviene in due fasi differenti:
 la fase di ricerca (FETCH): consiste nel prelievo dalla
memoria centrale dell'istruzione
 la fase di esecuzione (EXECUTE), caratterizzata dalla
decodifica
dell'istruzione
e
dall'attivazione
del
microprogramma ad essa associato.
20
CPU - Fasi di Fetch e Execute

Esempio: Supponiamo che l'istruzione sia di somma fra il
contenuto dell'accumulatore e il contenuto di una cella di
memoria il cui indirizzo sia dato direttamente dalla parte
operando dall'istruzione stessa.

Supponiamo cioè che la cella di memoria contenente
l'istruzione da eseguire sia strutturata come segue:
codice istruzione
indirizzo RAM del secondo operando
21
CPU - Fasi di Fetch e Execute

Fase di ricerca (FETCH):
1. Il contenuto del Program Counter (PC) è relativo
all’indirizzo di memoria che contiene l’istruzione.
2. Il contenuto del Program Counter è inviato al MAR
(Memory Address Register) per operare il prelevamento
dell'istruzione all'indirizzo di memoria contenuto nel MAR.
3. Il dato prelevato dalla memoria è riposto nel MDR (Memory
Data Register).
4. Il contenuto del MDR, ossia l’istruzione, è messa nel
Instruction Register per essere decodificata.
5. Il Program Counter viene incrementato per puntare
all'istruzione successiva. 22
CPU - Fasi di Fetch e Execute

Ha inizio a questo punto la fase di esecuzione (EXECUTE):
1. viene compreso che il secondo operando risiede in memoria
2. la parte dell’istruzione relativa all’indirizzo del secondo operando
viene trasferita nel MAR
3. L'effettivo operando, prelevato dalla memoria è posto nel MDR.
4. L’operando viene presentato ad un ingresso della ALU.
5. All'altro ingresso
dell'accumulatore.
dell’ALU
viene
presentato
il
contenuto
6. L'ALU, predisposta dall'Instruction Register ad eseguire la somma,
pone il suo risultato nell'accumulatore.

La fase di esecuzione è terminata ed il processore prosegue con la
fase di ricerca dell'istruzione successiva.
23
Esecuzione delle istruzioni

Ciclo Fetch–Decode–Execute
(leggi–decodifica–esegui)
1. Prendi l’istruzione corrente dalla memoria e mettila nel
registro istruzioni (IR).
2. Incrementa il program counter (PC) in modo che
contenga l’indirizzo dell’istruzione successiva.
3. Determina il tipo dell’istruzione corrente (decodifica).
4. Se l’istruzione usa una parola in memoria, determina dove
si trova.
5. Carica la parola, se necessario, in un registro della CPU.
6. Esegui l’istruzione.
7. Torna al punto 1 e inizia a eseguire l’istruzione successiva.
24
Ciclo Fetch–Decode–Execute
Fetch
Decode
Execute
25
Fetch dell’istruzione
0000
PO
CU
R0
R1
R2
R3
SR
0001
RAM
PC
IR
ALU
…..
0001
0001
ADD R3 R0 R1
0002
…
…
0005
…
0009
…
…
…
Address Bus
Data Bus
Control Bus
PC (Program Counter): indirizzo IR (Instruction Register):
di memoria della cella contenente
l’istruzione da eseguire
istruzione da eseguire dopo il fetch
26
Fetch dell’istruzione : IR ← M [PC]
RAM
CU
R0
R1
R2
R3
SR
0001
0000
PO
PC
IR
ALU
…..
0001
read!
0001
ADD R3 R0 R1
0002
…
…
0005
…
0009
…
…
…
Address Bus
Data Bus
Control Bus
PC (Program Counter): indirizzo IR (Instruction Register):
di memoria della cella contenente
l’istruzione da eseguire
istruzione da eseguire dopo il fetch
27
Fetch dell’istruzione
0001
R0
R1
R2
R3
SR
0002
ADD R3 R0 R1
0000
PO
CU
PC
IR
RAM
ALU
0002
0002
…
…..
…
0009
…
…
…
Address Bus
ADD R3 R0 R1
La CU incrementa automaticamente
il PC (PC ← PC +1)
…
0005
0001
read
ADD R3 R0 R1
Data Bus
Control Bus
IR (Instruction Register):
contiene l’istruzione da eseguire
dopo il fetch
28
Decodifica dell’istruzione
PO
CU
R0
R1
R2
R3
SR
0002
ADD R3 R0 R1
PC
IR
ALU
…..

L’istruzione dell’esempio non richiede altri accessi in memoria

La CU decodifica l’istruzione attraverso il codice operativo e
trasmette alla PO gli ordini per eseguire
l’operazione(microordini).

In assenza di interrupt o di salti sarà prelevato il contenuto
29
Esecuzione dell’istruzione
PO
CU
SR
0003
ADD R3 R0 R1
3
4
R0
R1
R2
R3
PC
IR
7
…..
ALU

La PO esegue l’operazione.

Le informazioni sullo stato dell’elaborazione
sono memorizzate in SR (Status Register):
flag Z (zero), V (overflow), N (negative), CY
(carry).
30
Un esempio : ADD 2, R1 (fetch 1)
Indirizzo della istruzione
memoria
Bus
controllo
000..01
40
Bus
indirizzo
Bus dati
40
M
A
R
M
D
R
IC
PC
PSW
Esegui
Parte controllo
Registro/i coinvolti
R0
R1
R2
...
R16
codifica
Operazione
ALU
Registri
generali
Esito
Processore
31
Un esempio : ADD 2, R1 (fetch 2)
Indirizzo della istruzione
memoria
Leggi!
41
40 000..01
IC
40
Bus
indirizzo
Bus dati
PC
PSW
Esegui
Parte controllo
Registro/i coinvolti
MAR
M
D
R
R0
R1
R2
...
R16
codifica
Operazione
ALU
Registri
generali
Esito
Processore
32
Un esempio : ADD 2, R1 (fetch 3)
memoria
41
40 000..01
Operazione
PC
PSW
Esegui
000110000100100001
IC
Parte controllo
Bus
indirizzo
Registro/i coinvolti
MAR
Bus dati
MDR
R0
R1
R2
...
R16
ALU
Registri
generali
Esito
Processore
33
Un esempio : ADD 2, R1 (dec)
memoria
41
40 000..01
PC
add
PSW
Esegui
000110000100100001
IC
Parte controllo
Bus
indirizzo
Registro/i coinvolti
MAR
Bus dati
MDR
R0
R1
R2
...
R16
ALU
Registri
generali
Esito
Processore
34
Un esempio : ADD 2, R1 (exe 1)
memoria
41
40 000..01
PC
add
PSW
Esegui
000110000100100001
IC
Parte controllo
Bus
indirizzo
Registro/i coinvolti
MAR
Bus dati
MDR
00010
R1
R2
...
R16
ALU
Registri
generali
Esito
Processore
35
Un esempio : ADD 2, R1 (exe 2)
memoria
41
40 000..01
PC
add
PSW
Esegui
000110000100100001
IC
Parte controllo
Bus
indirizzo
Registro/i coinvolti
MAR
Bus dati
MDR
00010
34
R2
...
R16
ALU
Registri
generali
Esito
Processore
36
Un esempio : ADD 2, R1 (exe 3)
memoria
41
40 000..01
PC
PSW
000110000100100001
IC
Parte controllo
Bus
indirizzo
Registro/i coinvolti
MAR
Bus dati
MDR
00010
36
R2
...
R16
ALU
Registri
generali
Esito
Processore
37
Processori
CISC

CISC (Complex Instruction Set Computer)
•
micro-programmazione: istruzioni ‘interpretate’ dal
micro-programma
•
istruzioni complesse che richiedono piu’ cicli di
clock per essere eseguite
•
formato variabile, molteplici tipi di istruzioni
•
molteplici modalita’ di indirizzamento della memoria
•
pochi registri
•
es.: Intel: per IBM, 8086, 286, 386, 486, Pentium e
Pentium PRO
38
Processori
RISC

RISC (Reduced Instruction Set Computer)
•
nessuna micro-programmazione: istruzioni
‘interpretate’ direttamente dall’HardWare
•
istruzioni semplici che richiedono un solo ciclo di
clock per essere eseguite
•
formato fisso, pochi tipi di istruzioni
•
pochi modalita’ di indirizzamento della memoria:
solo le istruzioni LOAD e STORE possono
accedere alla memoria
•
molti registri
39
Tecnologie di fabbricazione dei microprocessori.


Il Packaging: il contenitore in cui è
incapsulato il chip della CPU deve avere
ottime caratteristiche meccaniche e
termiche; si usano ceramiche
particolari.
La Piedinatura: l’aumento della
memoria indirizzabile, del parallelismo di
trasferimento con la memoria centrale,
delle funzionalità avanzate hanno
determinato un crescente numero di
punti esterni di connessione (pin).
40
Tecnologie di fabbricazione dei
microprocessori.
Il Raffreddamento: le sempre maggiori
potenze impegnate richiedono ventole
montate su CPU e su chassis più potenti e
controlli automatici di temperatura
 Il Socket: il socket è l’elemento
meccanico di interconnessione tra il chip e
la scheda madre.

41
BIOS



Il nome BIOS significa Basic Input Output System,
ossia sistema di base per ingressi e uscite.
Il BIOS è essenzialmente un "software", ossia un
programma. Esso é contenuto in un chip di memoria non
volatile
 EEPROM o le Flash Memory.
Le funzioni svolte dal BIOS sono essenzialmente tre:
1. Funzione di Avvio del Computer, all'interno della
quale viene eseguito il POST (Power-On Self Test).
2. Funzione di Memorizzazione di Configurazione
Hardware e di Parametri del ChipSet.
3. Interfaccia del Sistema Operativo.
42
BIOS
Avvio del Computer

Quando si accende il PC, si inizializza l'alimentatore
interno. Non appena la tensione si stabilizza il chipset
invia un comando di reset del processore.

Il comando reset richiede alla CPU di eseguire
l'istruzione posta sempre in una locazione fissa
prestabilita nella ROM del BIOS e denominata
indirizzo di jump.

La CPU esegue l'istruzione, che copia in memoria i
programmi del BIOS e inizia l'esecuzione del BIOS.
43
BIOS
Avvio del Computer


La prima azione eseguita dal programma di BIOS è il
POST (Power-On Self-Test):
 Il
processo POST verifica e controlla la
configurazione
hardware
memorizzata
nelle
informazioni di configurazione del BIOS.
 Nel caso in cui dovesse rilevare un problema invia
indicazioni acustiche per mezzo di uno o più beep o
beep code, attraverso l'altoparlante del sistema, per
indicare la natura del problema o visualizzare un
messaggio d'errore e il processo di boot si arresta.
Se il POST non incontra problemi, il processo di boot
continua.
44
BIOS
Avvio del Computer

Il BIOS cerca il BIOS dell'adattatore video e lo attiva.
Quasi tutti i dispositivi periferici di un PC dispongono di un
proprio BIOS. Le informazioni sulla scheda video sono
visualizzate sullo schermo del monitor.
 informazioni della scheda video, BIOS della scheda
video, produttore e versione.
 Vengono
inizializzate la routine del BIOS delle
periferiche presenti, oltre la scheda video.
 Il BIOS effettua poi una serie di test nel sistema,
inclusa la dimensione della memoria rilevata.
 Un
contatore progressivo visualizza nello
45
schermo la memoria rilevata e verificata.
BIOS
Avvio del Computer


Il BIOS verifica che i dispositivi elencati nei dati di
configurazione siano presenti e funzionanti.
 viene visualizzato un messaggio che comunica
che il dispositivo è stato trovato, configurato e
verificato.
Se il BIOS supporta la tecnologia PnP (Plug and
Play), qualsiasi dispositivo PnP rilevato sarà
configurato.
 vengono visualizzate sullo schermo tutte le
informazioni dei dispositivi, tuttavia scorrono in
modo troppo veloce per poter essere lette.
46
BIOS
Avvio del Computer


Alla fine della sequenza di test e configurazione, il
BIOS visualizzerà una schermata che riassume i
dettagli del PC verificati dal BIOS, per indicare che il
sistema è pronto per l'uso.
Il BIOS dovrà trovare il sistema operativo ed essere
in grado di accedervi, per poterlo attivare.
 I dati di configurazione memorizzati nel BIOS
contengono un parametro che indica le unità
disco (floppy, hard disk o CD-ROM) e l'ordine di
accesso per il caricamento del sistema operativo.
47
BIOS
Avvio del Computer


Se il programma di boot non viene trovato nel primo dispositivo
elencato, verrà ricercato nel dispositivo successivo e così via;
se non si trova alcun dispositivo di boot la relativa sequenza si
arresta e viene visualizzato un messaggio di errore: "Non è
disponibile alcun dispositivo di boot".
Il BIOS memorizza la configurazione hardware del
computer (periferiche non plug&play) e i parametri del
chipset e ne permette all’utente la modifica.
 Programma di Configurazione: tasto DEL all'avvio
 In genere ogni versione di BIOS permette di
intervenire su taluni parametri del chipset ma non su
altri.
48

BIOS
Memorizzazione Configurazione


Esempio: alla voce Chipset Features Setup (o Advanced
Chipset Setup) e possibile intervenire sui tempi di accesso
alla memoria e su altri parametri del chipset, così da
migliorare anche sensibilmente le prestazioni del computer;
C'è il rischio di impostare alcuni parametri troppo
performanti per l'hardware installato e il sistema si
bloccherà durante il funzionamento:

basterà rientrare nel Setup del BIOS (premendo, in genere,
il tasto DEL all'avvio) e reimpostare i valori
precedentemente usati.
49
BIOS
Interfaccia Sistema Operativo





L'hardware, cioè la parte elettronica del PC, può presentare
notevoli differenza da costruttore a costruttore o da modello
a modello.
Se il S.O. deve ad esempio recuperare un file dal disco
rigido, esegue tale lettura "chiedendo" al BIOS di leggere il
file, senza occuparsene direttamente.
Il BIOS contiene programmi usati dal sistema operativo e
software applicativo per interagire con l'hardware.
Visto che il BIOS è strettamente legato all’hardware, è facile
comprendere è che ogni diverso computer possiede un
diverso BIOS.
Non è possibile cioè utilizzare il BIOS del computer modello
50
x nel computer modello y.
Produttori di BIOS
Award,
AMI (America Megatrends, Inc.) e Phoenix producono i
BIOS più noti.
Come la maggior parte dei produttori, forniscono le ROM del
BIOS in licenza d'uso alle case costruttrici di schede madri,
mentre il servizio di supporto del BIOS compete generalmente
a produttori delle schede.
In passato AMI era l'unico BIOS per Intel, il principale
produttore di processori e schede madri.
Attualmente, oltre l'60% delle schede madri sono Intel e
adottano il BIOS Phoenix.
51