Sei sulla pagina 1di 730

'I : ,

~
\
1.,
-
!
i
.
,I'
~ I
."
'I"
j ,
11'
iI
Indice generale
--
; ..~
-
Prefazione
Elementi architetturali di base ...
Struttura dei calcolatori
2.L1 D sistema CPUmemoria
La CPU
Primo esame del funzionamento della CPU
2.3.1 Esecuzione di un'istruzione
2..3...2 Due approcci per la progettazione dell1unita di cantralla
~ Cablata 0 microprogrammata?
.-.
-
-
.-

...
" ..-
..
--
--
,... ...
~
..
VlI
1
1
3
6
8
8
10
11
11
12
13
22
22

23
24
25
27
28
29
32
34
35
36
37
37
39
41
41
44
45
47
48
51
55
~
,
,
Introduzione
Qualche cenoo storieo
1.1.1 I microprocessori
1.1.2 Le architettilre RlSC
Rappresentazione dell'informazione
1.2.1 Sistemi di numerazione.
1.2.2 C.onversione di base
1.2.3 Ar:itmetica binaria
1.2.4 Numeri negativi
1.2.5 Numeri frazionari
1.2.6 Numeri in virgola mobile
1.2.7 lnformazioni di carattere alfanumerico
Logica dei sistemi digitali
1.3.1 L'algebra delle reti
Reti combinatorie e reti sequenziali
1.4.1 Reti sequenziali sincrone
Registri
Trasferimento dell'informazione
Unita aritmetiche e logiche
1.7.1 Esempio di costruzione di un'unita. aritmetica e logica
Sistemi digitali
1.8.1 Un modello eli rete.a stadi
1.8.2 Alcuni blocchi componenti i sistemi digitali
Questioni di notazione
L 9.1 Notazione per i segnali
Esercizi 1.10
1.8
1.9
1.3
1.5
1.6
1.7
.L
2.1
1.4
1.2
1
1.1
II
2.3
,
,jl
,
~ I
"
;1,

~
::
;1
I
,
J
."
"
."
'.i
l
'
"
"
,I:
"

"

\
c,
,
.,
~ I
.:
,'I'
"

II
, ..,
.' ' ,

!
! I;'
,

I
,
,
,
I
!
!

I
"
,

l
I
1
\
I
J
I
I
!
\
I
1
A-PDF Page Cut DEMO: Purchase from www.A-PDF.com to remove the watermark
'I : ,
~
\
1.,
-
!
i
.
,I'
~ I
."
'I"
j ,
11'
iI
Indice generale
--
; ..~
-
Prefazione
Elementi architetturali di base ...
Struttura dei calcolatori
2.L1 D sistema CPUmemoria
La CPU
Primo esame del funzionamento della CPU
2.3.1 Esecuzione di un'istruzione
2..3...2 Due approcci per la progettazione dell1unita di cantralla
~ Cablata 0 microprogrammata?
.-.
-
-
.-

...
" ..-
..
--
--
,... ...
~
..
VlI
1
1
3
6
8
8
10
11
11
12
13
22
22

23
24
25
27
28
29
32
34
35
36
37
37
39
41
41
44
45
47
48
51
55
~
,
,
Introduzione
Qualche cenoo storieo
1.1.1 I microprocessori
1.1.2 Le architettilre RlSC
Rappresentazione dell'informazione
1.2.1 Sistemi di numerazione.
1.2.2 C.onversione di base
1.2.3 Ar:itmetica binaria
1.2.4 Numeri negativi
1.2.5 Numeri frazionari
1.2.6 Numeri in virgola mobile
1.2.7 lnformazioni di carattere alfanumerico
Logica dei sistemi digitali
1.3.1 L'algebra delle reti
Reti combinatorie e reti sequenziali
1.4.1 Reti sequenziali sincrone
Registri
Trasferimento dell'informazione
Unita aritmetiche e logiche
1.7.1 Esempio di costruzione di un'unita. aritmetica e logica
Sistemi digitali
1.8.1 Un modello eli rete.a stadi
1.8.2 Alcuni blocchi componenti i sistemi digitali
Questioni di notazione
L 9.1 Notazione per i segnali
Esercizi 1.10
1.8
1.9
1.3
1.5
1.6
1.7
.L
2.1
1.4
1.2
1
1.1
II
2.3
,
,jl
,
~ I
"
;1,

~
::
;1
I
,
J
."
"
."
'.i
l
'
"
"
,I:
"

"

\
c,
,
.,
~ I
.:
,'I'
"

II
, ..,
.' ' ,

!
! I;'
,

I
,
,
,
I
!
!

I
"
,

l
I
1
\
I
J
I
I
!
\
I
1
,
, xii
Indice generate
'. ..
lndice genera.le XlII
3.8.4
3.8.5
Esercizi
La CPU 159
Notazione 159
Architettura di riferimento della CPU 160
Blocchi componenti 163
5.3.1 I registri di usa generale 163
53.2 ALU 163
5.3.3 Memoria 164
Sviluppo di CPUI 164
5.4.1 Sezione di prelievo delle istruzioni 166
5.4.2 Sezione di decodifica delPistruzione ...
5.4.3 Sezione ALU 169
5.4.4 La sezione di memoria dati e scrittura nel registro di destinazione170
5.4.5 Ricomposizione (provvisori.) 173
Considerazioni suUa realizzazione a singol0
periodo di clock . 173
5.5.1 Ricomposizione finale di CPUI 175
CPU1 con memoria unificata 175
Sviluppo di CPU2 179
5.7.1 Fase di prelievo delle istruzioni, IF ( 180
108
108
109
113
114
114
116
116
118
122
123
123
127
J
Gestione sotto cantrollo di interruzione
Esempia semplificata di sistema di interruzione
4.4.1 Esempio di routine servizia
4.4.2 Le interruzioni non mascherabili
lnterruzione da parte di pili periferiche
4.5.1 Discriminazione da programma
Interruzioni vettorizzate
4.6.1 Linee di richiesta indipendenti
4.6.2 Vettorizzazione esterna
Interruzioni' annidate
Interruzioni vettorizzate con daisy chain
4.8.1 Daisy chain asincrona
4.8.2 Daisy chain sincrona
Esempio di controllore di interruzioni:
il dispositivo 8259A 130
4.9.1 Vettorizzazione delle interruzioni' 132
4.9.2 Mascheramento 132
4.9.3 Priorit. 132
4.9.4 Riconoscimento di livelli 0 dei fronti 133
4.9.5 Schema di esecuzione della routine di servizio 134
4.9.6 Esempio di trattamento eli una sequenza di .interruzioni nidificate135
L1accesso diretto alIa memoria 137
4.10.1 Struttur. e funzion.mento del controllore DMA 138
4.10.2 Modalit. di trasferimento singolo 139
4.1O.:r Modalit. di trasferimento a blocchi 140
Un esempio di DMAC: il dispositivo Intel 8237 141
4.11.1 Funzionamento .. 142
Esercizi 144
5.6
5.7
4.11
\
5
5.1
5.2
5.3
4.12
5.5
5.4
4.10
4.9
4.7
4.8
4.6
4.5
4.3
.--
4.4
-
':'
,
,
'.
'"I
i.
')1
I',
i
J
I."
i.I
,
\1
I
,1
,>
..I
!;
.'.'
,.
.r,
o
it
..
!I
1,"
';1
"
'I.
,
"I'
.)
" :
".
.'
.,
, .

,
..,
,1
'
, '
.
,,'
..

1
't
:.; .
..
I
,..
.
:11'
" '
,
96
96
97
77
77
78
78
79
81
83
84
89
92
93
93
95
85
86
88
89
58
59 ..
61
62
62
64
65
@
C8ID
70
74
74
97
98
99
100
101
106
106
101
Prestazioni della CPU
2.4.1 La valutazione delle prestazioni
2.i..2 Papolari indici di prestazioni
n repertorio delle istruzioni
:l4J.- R.epertorio stile RISC
:h>.:! Repertorio stile CISC
Criteri di classificazione delle architetture
Indirizzamento
2.7.1 Ordinamento
2.7.2 AJlineamento
2 7 3 Indirizzamento dei dati
2.7.4 lndirizzamento nei trasferimenti del contrallo
Esercizi
La memoria principale
Le memorie RAM
3.1.1 Parametri di valutazione
Le memorie statiche
3.2.1 Un esempio di memoria statica
Le memorie dinamiche
Un esempio di memoria DRAM
3.3.2 L'interfacciamento COD il processore
ndimensionamento delle alimentazioni
di un sistema di memoria
Organizzazione'
3.5.1 Interlacciamento
Relazione tra 1a velocita della CPU e 1a velocita della memoria
3.6.1 Case di studio: evoluzione della velocit' dell. famiglia 8086 in
rapporto a quell. delle DRAM
Localita, arganizzazione gerarchica
3.7.1 Localitil.
3.7.2
3.7.3 di gerarchia
R.a.ssegna sui principali tipi di DRAM
commerciali
3.8.1 DRAM con accesso a pagina
3.8.2 Cached DRAM
3.8.3 SDRAM (Synchronous Dinamic Random Access
Memory) DRAM sincrone
Moduli commerciali
Cantralla di errore
11 sottosistema di ingresso/ uscita
Elementi di base del sattosistema di
ingresso/uscita
Gestione a centralla di programma
4.2.1 nsattoprogramma eli gestione
I
\8
I
\.9
.L
D.

2.4
- ,
\
I .25
I 26
'2.4
I
\
2.8
\
111
-
).3
2
lJ.
1
3
.
4
3.5_
)3.6
If
,
, xii Indice generate
'. ..
lndice genera.le XlII
3.8.4
3.8.5
Esercizi
La CPU 159
Notazione 159
Architettura di riferimento della CPU 160
Blocchi componenti 163
5.3.1 I registri di usa generale 163
53.2 ALU 163
5.3.3 Memoria 164
Sviluppo di CPUI 164
5.4.1 Sezione di prelievo delle istruzioni 166
5.4.2 Sezione di decodifica delPistruzione ...
5.4.3 Sezione ALU 169
5.4.4 La sezione di memoria dati e scrittura nel registro di destinazione170
5.4.5 Ricomposizione (provvisori.) 173
Considerazioni suUa realizzazione a singol0
periodo di clock . 173
5.5.1 Ricomposizione finale di CPUI 175
CPU1 con memoria unificata 175
Sviluppo di CPU2 179
5.7.1 Fase di prelievo delle istruzioni, IF ( 180
108
108
109
113
114
114
116
116
118
122
123
123
127
J
Gestione sotto cantrollo di interruzione
Esempia semplificata di sistema di interruzione
4.4.1 Esempio di routine servizia
4.4.2 Le interruzioni non mascherabili
lnterruzione da parte di pili periferiche
4.5.1 Discriminazione da programma
Interruzioni vettorizzate
4.6.1 Linee di richiesta indipendenti
4.6.2 Vettorizzazione esterna
Interruzioni' annidate
Interruzioni vettorizzate con daisy chain
4.8.1 Daisy chain asincrona
4.8.2 Daisy chain sincrona
Esempio di controllore di interruzioni:
il dispositivo 8259A 130
4.9.1 Vettorizzazione delle interruzioni' 132
4.9.2 Mascheramento 132
4.9.3 Priorit. 132
4.9.4 Riconoscimento di livelli 0 dei fronti 133
4.9.5 Schema di esecuzione della routine di servizio 134
4.9.6 Esempio di trattamento eli una sequenza di .interruzioni nidificate135
L1accesso diretto alIa memoria 137
4.10.1 Struttur. e funzion.mento del controllore DMA 138
4.10.2 Modalit. di trasferimento singolo 139
4.1O.:r Modalit. di trasferimento a blocchi 140
Un esempio di DMAC: il dispositivo Intel 8237 141
4.11.1 Funzionamento .. 142
Esercizi 144
5.6
5.7
4.11
\
5
5.1
5.2
5.3
4.12
5.5
5.4
4.10
4.9
4.7
4.8
4.6
4.5
4.3
.--
4.4
-
':'
,
,
'.
'"I
i.
')1
I',
i
J
I."
i.I
,
\1
I
,1
,>
..I
!;
.'.' ,.
.r,
o
it
..
!I
1,"
';1
"
'I.
,
"I'
.)
" :
".
.'
.,
, .

,
..,
,1
'
, '
.
,,'
..

1
't
:.; .
..
I
,..
.
:11'
" ' ,
96
96
97
77
77
78
78
79
81
83
84
89
92
93
93
95
85
86
88
89
58
59 ..
61
62
62
64
65
@
C8ID
70
74
74
97
98
99
100
101
106
106
101
Prestazioni della CPU
2.4.1 La valutazione delle prestazioni
2.i..2 Papolari indici di prestazioni
n repertorio delle istruzioni
:l4J.- R.epertorio stile RISC
:h>.:! Repertorio stile CISC
Criteri di classificazione delle architetture
Indirizzamento
2.7.1 Ordinamento
2.7.2 AJlineamento
2 7 3 Indirizzamento dei dati
2.7.4 lndirizzamento nei trasferimenti del contrallo
Esercizi
La memoria principale
Le memorie RAM
3.1.1 Parametri di valutazione
Le memorie statiche
3.2.1 Un esempio di memoria statica
Le memorie dinamiche
Un esempio di memoria DRAM
3.3.2 L'interfacciamento COD il processore
ndimensionamento delle alimentazioni
di un sistema di memoria
Organizzazione'
3.5.1 Interlacciamento
Relazione tra 1a velocita della CPU e 1a velocita della memoria
3.6.1 Case di studio: evoluzione della velocit' dell. famiglia 8086 in
rapporto a quell. delle DRAM
Localita, arganizzazione gerarchica
3.7.1 Localitil.
3.7.2
3.7.3 di gerarchia
R.a.ssegna sui principali tipi di DRAM
commerciali
3.8.1 DRAM con accesso a pagina
3.8.2 Cached DRAM
3.8.3 SDRAM (Synchronous Dinamic Random Access
Memory) DRAM sincrone
Moduli commerciali
Cantralla di errore
11 sottosistema di ingresso/ uscita
Elementi di base del sattosistema di
ingresso/uscita
Gestione a centralla di programma
4.2.1 nsattoprogramma eli gestione
I
\8
I
\.9
.L
D.

2.4
- ,
\
I .25
I 26
'2.4
I
\
2.8
\
111
-
).3
2
lJ.
1
3
.
4
3.5_
)3.6
If
xiv Indice generate
I
if 1
Iodice generate xv
.

5.8
5.9
5.10
5.11
5.12
6
JQ
.6.2
6.3
.fiA:)

6.6
6.7

6.8


5.7.2 Fase di decodifica delle istruzioni, ill
5.7.3 Pase eli eseeuzione, EX
5.7.4 Pase eli memoria, ME
5.7.5 Fase d.i scrittura del registro di destinazione, WB
5.7.6 Ricomposizione
5.7.7 Segnali di comando
5.7.8 Stati comuni a tutte Ie istruzioni
5.7.9 Stati elipendenti dal tipo di istruzione
Espressioni logiche per comandi e selettori
Considerazioni sulla realizzazione multiciclo
5.9.1 Miglioramenti a CPU2
Le interruzioni
5.10.1 Classificazione
5.10.2 I problemi per il trattamento delle interruzioni
Interruzioni BU CPU2'
5.11.1 Considerazioni
5.11.2 Miglioramenti
5.11.3 Interruzioni vettorizzate
5.11.4 Atomicita dell'interruzione
Esercizi
La pipeline
Introduzione
Prestazioni
6.2.1 Indici delle prestazioni
Considerazioni
Alcune estensioni al repertorio delle istruzioni
Esecuzione in pipeline
Le fasi di esecuzione
6.5.1 lBtruzioni aritmetiche
6.5.2 Istruzioni di Load/Store
6.5.3 Istruzioni di saito
6.5.4 Sintesi del contenuto dei campi EX
l
ME, WE
LJunita di controllo
6.6.1 Realizzazione dell'unita di controllo
Conflitti
Ji.L.l Conflitti strutturali
Conflitti dati
6.8.1 Tecniche per la Boluzione dei conftitti dati
6.8.2 Riconoscimento del conftitto dati
6.8.3 Soluzione dei eonflitti tramite stallo
6.8.4 Soluzione dei con.fiitti sui dati tramite anticipazione
6.8.5 I conflitti per Ie istruzioni load
6.8.6 Sovrapposizione
6.8.7 Riordinamento
Conllitti di controllo
6.9.1 Conllitti per salti (ineondizionati)
6.9.2 Confiitti per Ie diramazioni
180
182
182
183
183
183
186
188
190
192
194
196
196
197
198
199
202
204
204
205
209
210
211
211
213
214
219
222
223
225
227
230
231
236
236
238
238
239
240
242
244
246
248
249
250
251
252
,
.,
1",
t
Ji

I
I ..
,jf
"1
,;1'
i
.,
i
,
.,
J,
-'I
. 1
ii
.I'
"I
!I
:.1
{'
6.10
6.11
-
6.12
6.13
6.14
6.15
7
-
7.1
7.2
7.3
7.4
7.5
7.6
6.9.3 La soluzione software: Ie diramazioni ritardate
Predizione dinamica delle diramazioni
6.10.1 Tabeila di predizione delle diramazioni
6.10.2 Statistics. di esecuzione e accuratezza della predizione
Branch Target Buffer
6.11.1 Prestazioni del BTB
6.11.2 Ottimizzazione del BTB
6.11.3 Uunita per la predizione dei salti condizionati
del Pentium
Predittore adattativo a due livelli
6.12.1 Realizzazioni alternative del predittore a due livelli
Le interruzioni
6.13.1 n concetto di interruzione precisa
6.13.2 Interruzioni esterne
Eccezioni
6.14.1 Eccezioni e interruzioni esterne
Esercizi
La memoria cache
,
Funzionarnento della memoria cache
Cache a mappatura diretta
7.1.2 Cache completamente associativa
7.1.3 Cache parzialmente associativa
7.1,1. n problema della serittura
7.1.5 10 state della linea di cache
Algoritmi di rir]lpiazzamento delle linee di cache
7.2.1 Sostituzione a' caso
7.2.2 Rimpiazzamenti con algoritmi LRU
7.2.3 La teenlea PIFO
AnaHsi deile prestazioni
7.3.1 Le cause di fallimento nelPaccesso alia cache
Elementi che influenzano le prestazioni
7.4.1 Dirnensione della cache
7.4.2 Dimensione della linea
7.4.3 Associativita
7.4.4 Algoritmi di rimpiazzamento
7.4.5 Cache divisa 0 unifieata
7.4.6 Aggiornamento della memoria centrale
7.4.7 Cache multilivello
7.4.8 Posiziol}amento della cache
7.4.9 Multiprogrammazione
Sistemi a multiprocessore: coerenza della cache
7.5.1 Coerenza
7.5.2 Protocolli per iI mantenimento della coerenza
7.5.3 Protocolli snoopy
Esercizi
25" ]
256
25"
25: I
25,
261
26: I
264
266
26 \
271
270
273
27: ]
27!
279
28: (
28: ,
285
28
7
\
28,

291
29: I
29. \
1
298
30r I
30:

303
30: I
30: I
,
306
307
30' I
30;
309
311 J
31
31:
316
31.
0
)
32'
xiv Indice generate
I
if 1
Iodice generate xv
.

5.8
5.9
5.10
5.11
5.12
6
JQ
.6.2
6.3
.fiA:)

6.6
6.7

6.8


5.7.2 Fase di decodifica delle istruzioni, ill
5.7.3 Pase eli eseeuzione, EX
5.7.4 Pase eli memoria, ME
5.7.5 Fase d.i scrittura del registro di destinazione, WB
5.7.6 Ricomposizione
5.7.7 Segnali di comando
5.7.8 Stati comuni a tutte Ie istruzioni
5.7.9 Stati elipendenti dal tipo di istruzione
Espressioni logiche per comandi e selettori
Considerazioni sulla realizzazione multiciclo
5.9.1 Miglioramenti a CPU2
Le interruzioni
5.10.1 Classificazione
5.10.2 I problemi per il trattamento delle interruzioni
Interruzioni BU CPU2'
5.11.1 Considerazioni
5.11.2 Miglioramenti
5.11.3 Interruzioni vettorizzate
5.11.4 Atomicita dell'interruzione
Esercizi
La pipeline
Introduzione
Prestazioni
6.2.1 Indici delle prestazioni
Considerazioni
Alcune estensioni al repertorio delle istruzioni
Esecuzione in pipeline
Le fasi di esecuzione
6.5.1 lBtruzioni aritmetiche
6.5.2 Istruzioni di Load/Store
6.5.3 Istruzioni di saito
6.5.4 Sintesi del contenuto dei campi EX
l
ME, WE
LJunita di controllo
6.6.1 Realizzazione dell'unita di controllo
Conflitti
Ji.L.l Conflitti strutturali
Conflitti dati
6.8.1 Tecniche per la Boluzione dei conftitti dati
6.8.2 Riconoscimento del conftitto dati
6.8.3 Soluzione dei eonflitti tramite stallo
6.8.4 Soluzione dei con.fiitti sui dati tramite anticipazione
6.8.5 I conflitti per Ie istruzioni load
6.8.6 Sovrapposizione
6.8.7 Riordinamento
Conllitti di controllo
6.9.1 Conllitti per salti (ineondizionati)
6.9.2 Confiitti per Ie diramazioni
180
182
182
183
183
183
186
188
190
192
194
196
196
197
198
199
202
204
204
205
209
210
211
211
213
214
219
222
223
225
227
230
231
236
236
238
238
239
240
242
244
246
248
249
250
251
252
,
.,
1",
t
Ji

I
I ..
,jf
"1

,;1'
i
.,
i
,
.,
J,
-'I
. 1
ii
.I'
"I
!I
:.1
{'
6.10
6.11
-
6.12
6.13
6.14
6.15
7
-
7.1
7.2
7.3
7.4
7.5
7.6
6.9.3 La soluzione software: Ie diramazioni ritardate
Predizione dinamica delle diramazioni
6.10.1 Tabeila di predizione delle diramazioni
6.10.2 Statistics. di esecuzione e accuratezza della predizione
Branch Target Buffer
6.11.1 Prestazioni del BTB
6.11.2 Ottimizzazione del BTB
6.11.3 Uunita per la predizione dei salti condizionati
del Pentium
Predittore adattativo a due livelli
6.12.1 Realizzazioni alternative del predittore a due livelli
Le interruzioni
6.13.1 n concetto di interruzione precisa
6.13.2 Interruzioni esterne
Eccezioni
6.14.1 Eccezioni e interruzioni esterne
Esercizi
La memoria cache
,
Funzionarnento della memoria cache
Cache a mappatura diretta
7.1.2 Cache completamente associativa
7.1.3 Cache parzialmente associativa
7.1,1. n problema della serittura
7.1.5 10 state della linea di cache
Algoritmi di rir]lpiazzamento delle linee di cache
7.2.1 Sostituzione a' caso
7.2.2 Rimpiazzamenti con algoritmi LRU
7.2.3 La teenlea PIFO
AnaHsi deile prestazioni
7.3.1 Le cause di fallimento nelPaccesso alia cache
Elementi che influenzano le prestazioni
7.4.1 Dirnensione della cache
7.4.2 Dimensione della linea
7.4.3 Associativita
7.4.4 Algoritmi di rimpiazzamento
7.4.5 Cache divisa 0 unifieata
7.4.6 Aggiornamento della memoria centrale
7.4.7 Cache multilivello
7.4.8 Posiziol}amento della cache
7.4.9 Multiprogrammazione
Sistemi a multiprocessore: coerenza della cache
7.5.1 Coerenza
7.5.2 Protocolli per iI mantenimento della coerenza
7.5.3 Protocolli snoopy
Esercizi
25" ]
256
25"
25: I
25,
261
26: I
264
266
26 \
271
270
273
27: ]
27!
279
28: (
28: ,
285
28
7
\
28,

291
29: I
29. \
1
298
30r I
30:

303
30: I
30: I
,
306
307
30' I
30;
309
311 J
31
31:
316
31.
0
)
32'

Indice generale
Indice generale. XYli
I
11
11.1
11.2
,
,
t:
11.3
,
,
407
408
410
412
412
413
414
415
417
417
417
420
421
421
422
423
423
471
474
475
425
425
427
429
432
432
433
434
438
439
447
447
452
455
458
459
462
463
465
466

..,
La gestione dei processi in modo protetto
9.4.1 n segrnento di stato di un
9.4.2 Commutazione Era processi
La protezione: criteri generali
9.5.1 Verifica del tipo di accesso ai segmenti
9.5.2 Livelli di privilegio
9.5.3 Criteri generali per il cantrallo dei privilegi
9.5.4 I livelli controllati
Protezione negli accessi
9.6.1 Protezione nell'accesso ai dati
9.6.2 Protezione nei passaggi di controllo
9.6.3 Protezione nella commutazione fra processi
Altri aspetti legati alIa protezione a livelli
9.7.1 Variazione dellivello ill privilegio
9.7.2 L'attacco can il cavallo di Troia
9.7.3 Istruzioni privilegiate
La protezione di pagina
BUS di sistema
Un po' di storia
La standardizzazione
11.2.1 Operaziani suI bus
Allocazione del bus
11.3.1 Arbitraggio distribuito Con schema daisy chain
11.3.2 Arbitraggio centralizzato con schema parallelo'
11.3.3 Arbitraggio distribuito con schema parallelo
11.3.4 Arbitraggio centralizzato con schema daisy chain
Esempio di progetto della logica di arbitraggio distribuita in daisy chain
Organizzazione dei moderp.i calcolatori
personali
11.5.1 Il chipset
11.5.2 . Chipset per la ela.sse Pentium
Esecuzione fuori ardine
Pipeline con unita funzionali multiciclo
Esecuzione fuori ordine
10.2.1 Gestione delle prenotazioni del bus dei risultati
Completamento in ordine
10.3.1 Completamento in ordine rispetto ai registri
10.3.2 Completamento in ordine rispetto alIa memoria
Metoda del buffer di riordinamento
10.4.1 Uso di ROB e di perco,si di bypa.ss
Metodo dell'history buffer
Gestione dei conflitti di controllo in pipeline
con unita funzionali multiciclo ,441
10.6.1 Stato coerente nel caso del completamento in ordine delle istruzioni442
10.6.2 Ripristino della stato coerente in presenza ill ROB 443
10.6.3 Ripristino dello stato coerente con history buffer 444
9.6
9.7
9.5
9.4
10.4
9.8
10.3
10.5
10.6
11.4
11.5
10
-
lQ.J..
102
""
._,
']I;
ii'
(I,
;:1
.j:
.\1,
",
,
"
'. ,
';'

.,
il
0.'
,.
.:1'
,
,

"-/
'I
.
,
.;Il
,
1:
'i;

.JI
oil
.,
-:j,


...
"1
.\.
.)1:
357
357
359
362
363
364
365
3.71
372
375
376
377
377
377
381
384
385
331
331
334
337
338
340
343
346
347
347
353
355
357
386
388
390
392
392
396
399
399
400
401
403
404
405
La memoria virtuale
Introduzione
Sistemi di paginazione
8.2.1 Dimensione della pagina
8.2.2 n Translation Lookaside Buffer
8.2.3 Gestione della tabella
8.2.4 Tabella delle pagine gerarchica
Tabella delle pagine invertita
8.3.1 La codilica ha.sh
8.3.2 Gestione della tabella IPT
8.3.3 n problema delle catene trappo lunghe
La segmentazione
Segmentazione e paginazione
Approfondimenti sulla gestione della memoria
virtuale
8.6.1 Gestione della paginazione e della segmentazione
8.6.2 Algoritmi di rimpiazzarnento
8.6.3 Occupazione della memoria
Esempio di memoria paginata: la memoria del microprocessore 68030
8.7.1 Traduzione degli indirizzi
8.7.2 La tabella di traduzione degli indirizzi
8.7.3 n TLB
8.7.4 8u alcune caratteristiche speciliche della MMU
8.7.5 La pratezione
8.7.6 Considerazioni sulla memoria virtuale del micro 68030
Esempio di memoria virtuale segmentata:
1a memoria virtuale del 286
8.8.1 Indirizzamento in modo Teale
8.8.2 Indirizzamento in modo virtuale
8.8.3 Tabelle dei descrittori di segmento .
8.8.4 Gestione della memoria fisica
8.8.5 Ali""
Esempio di memoria virtuale segmentata e
paginata: la memoria virtuale del Pentium
8.9.1 La segmentazione del 386 e modelli successivi
8.9.2 eli pagina
Esempio di merrioria con tabella di pagine
invertita: la memoria del PowerPC
8.10.1 La IPT del PowerPC: la HPT
Esercizi
La protezione
La protezione nei sistemi Intel
I descrittori e la lora funzione
9.2.1 Descrittori di segmenti di codice e di dati (8=1)
9.2.2 Descrittori di sistema (8=0)
Trattamento delle interruzioni in modo protetto
9.3.1 La.tabella dei deScrittori di interruzione
8.10
I
1
8
.
11
-
)
1
9
!9.1
1
9
.
2
] 88
9.3
\M
8.5
-
\ 8.6
i
l
18.7
I
I 8.3
I
8
\.D
Jll
8.9
1

Indice generale
Indice generale. XYli
I
11
11.1
11.2
,
,
t:
11.3
,
,
407
408
410
412
412
413
414
415
417
417
417
420
421
421
422
423
423
471
474
475
425
425
427
429
432
432
433
434
438
439
447
447
452
455
458
459
462
463
465
466

..,
La gestione dei processi in modo protetto
9.4.1 n segrnento di stato di un
9.4.2 Commutazione Era processi
La protezione: criteri generali
9.5.1 Verifica del tipo di accesso ai segmenti
9.5.2 Livelli di privilegio
9.5.3 Criteri generali per il cantrallo dei privilegi
9.5.4 I livelli controllati
Protezione negli accessi
9.6.1 Protezione nell'accesso ai dati
9.6.2 Protezione nei passaggi di controllo
9.6.3 Protezione nella commutazione fra processi
Altri aspetti legati alIa protezione a livelli
9.7.1 Variazione dellivello ill privilegio
9.7.2 L'attacco can il cavallo di Troia
9.7.3 Istruzioni privilegiate
La protezione di pagina
BUS di sistema
Un po' di storia
La standardizzazione
11.2.1 Operaziani suI bus
Allocazione del bus
11.3.1 Arbitraggio distribuito Con schema daisy chain
11.3.2 Arbitraggio centralizzato con schema parallelo'
11.3.3 Arbitraggio distribuito con schema parallelo
11.3.4 Arbitraggio centralizzato con schema daisy chain
Esempio di progetto della logica di arbitraggio distribuita in daisy chain
Organizzazione dei moderp.i calcolatori
personali
11.5.1 Il chipset
11.5.2 . Chipset per la ela.sse Pentium
Esecuzione fuori ardine
Pipeline con unita funzionali multiciclo
Esecuzione fuori ordine
10.2.1 Gestione delle prenotazioni del bus dei risultati
Completamento in ordine
10.3.1 Completamento in ordine rispetto ai registri
10.3.2 Completamento in ordine rispetto alIa memoria
Metoda del buffer di riordinamento
10.4.1 Uso di ROB e di perco,si di bypa.ss
Metodo dell'history buffer
Gestione dei conflitti di controllo in pipeline
con unita funzionali multiciclo ,441
10.6.1 Stato coerente nel caso del completamento in ordine delle istruzioni442
10.6.2 Ripristino della stato coerente in presenza ill ROB 443
10.6.3 Ripristino dello stato coerente con history buffer 444
9.6
9.7
9.5
9.4
10.4
9.8
10.3
10.5
10.6
11.4
11.5
10
-
lQ.J..
102
""
._,
']I;
ii'
(I,
;:1
.j:
.\1,
",
,
"
'. ,
';'

.,
il
0.'
,.
.:1'
,
,

"-/
'I
.
,
.;Il
,
1:
'i;

.JI
oil
.,
-:j,


...
"1
.\.
.)1:
357
357
359
362
363
364
365
3.71
372
375
376
377
377
377
381
384
385
331
331
334
337
338
340
343
346
347
347
353
355
357
386
388
390
392
392
396
399
399
400
401
403
404
405
La memoria virtuale
Introduzione
Sistemi di paginazione
8.2.1 Dimensione della pagina
8.2.2 n Translation Lookaside Buffer
8.2.3 Gestione della tabella
8.2.4 Tabella delle pagine gerarchica
Tabella delle pagine invertita
8.3.1 La codilica ha.sh
8.3.2 Gestione della tabella IPT
8.3.3 n problema delle catene trappo lunghe
La segmentazione
Segmentazione e paginazione
Approfondimenti sulla gestione della memoria
virtuale
8.6.1 Gestione della paginazione e della segmentazione
8.6.2 Algoritmi di rimpiazzarnento
8.6.3 Occupazione della memoria
Esempio di memoria paginata: la memoria del microprocessore 68030
8.7.1 Traduzione degli indirizzi
8.7.2 La tabella di traduzione degli indirizzi
8.7.3 n TLB
8.7.4 8u alcune caratteristiche speciliche della MMU
8.7.5 La pratezione
8.7.6 Considerazioni sulla memoria virtuale del micro 68030
Esempio di memoria virtuale segmentata:
1a memoria virtuale del 286
8.8.1 Indirizzamento in modo Teale
8.8.2 Indirizzamento in modo virtuale
8.8.3 Tabelle dei descrittori di segmento .
8.8.4 Gestione della memoria fisica
8.8.5 Ali""
Esempio di memoria virtuale segmentata e
paginata: la memoria virtuale del Pentium
8.9.1 La segmentazione del 386 e modelli successivi
8.9.2 eli pagina
Esempio di merrioria con tabella di pagine
invertita: la memoria del PowerPC
8.10.1 La IPT del PowerPC: la HPT
Esercizi
La protezione
La protezione nei sistemi Intel
I descrittori e la lora funzione
9.2.1 Descrittori di segmenti di codice e di dati (8=1)
9.2.2 Descrittori di sistema (8=0)
Trattamento delle interruzioni in modo protetto
9.3.1 La.tabella dei deScrittori di interruzione
8.10
I
1
8
.
11
-
)
1
9
!9.1
1
9
.
2
] 88
9.3
\M
8.5
-
\ 8.6
i
l
18.7
I
I 8.3
I
8
\.D
Jll
8.9
1
xviii Indice generale
,I
,i'
,.1
lndice generale XIX
1
11.5.3
Chipset per la classe Pentium 1I1
477
,
A.9 Sincronizzazione
540
11.6
IT bus SCSI
.....
A.IO Reti sequenziali sincrone
542
479
.
I
11.6.1
Principi eli fUnzlonamento
479
., '
A.1O.1 Flip-flop Master-Slave
543
,
.,
11.6.2
I segnali SCSI
481
-1 :
A.10.2
Altre considerazioni sui flip-aop
545
' .
11.6.3
FMi del bus
482 ' '
A.10.3
Madella dj Mealy e madelia di Moore
546
.- 11.6.4
Un esempio di operazione suI bus SCSI
' :
Esempi di analisi e progetto di reti sequenziali
549
485 ' .
A.lI

I
11.6.5
Conclusioni
488
..
A.1Ll Esempio di progetto: generazione di un 'egnale di WAIT
549
, 11.7
IT bus PCI

A.11.2
Esempio di progetto: rete per Fadattamento
488
11.7.1
Principi .di funzionamento
488 ',
della temporizzazione dei segnali
551
,'. '
11. 7.2
I segnali del PCI bu,
..
A.12 Esercizi
555
490
I ",
\
11.7.3
di trasferimento dati
49.1
,
<!
11.7.4
Arbitraggio
495
B L'architettura 8086
559
I
11.7.5
Prestazioni
497

B.1 Un pO' di storia
562
11.7.6
Blocco delle riaorse
498
"
B.2
Architettura di base: il micro 8086
564
l
11.8
IT bus USB
501
4
B.2.1
nmodella eli programmazione
565
I
)
11.8.1
Caratteristicbe generali
501
B.2.2
Organizzazione della memoria
568
11.8.2
Struttura fisica
,
B.2.3
Accesso alia memoria
571
502

11.8.3
Organizzazione a livelli
503
I :
B.2.4
Osservazioni sull'organizzazione di memoria dell'8086
572
11.8.4
Host
,.
B.2.5
Struttura interna del microprocessore 8086
573
l
505
..
". , ,
"
575
11.8.5
Periferiche
505
,r ,
. B.2.6
Cieli' di bus
11.8.6
Hub
506
". ,
B.2.7
Modalita di funzionamento
576
11.8.7
Modella dei Busai informativi
506
1
B.2.8
La fase di partenza
576
,
11.8.8
ncavo
508
.,
B.3
nrepertorio delle istruzioni
577
I
,
Riconoscimento e configurazione delle periferiche

Modalita di indirizzamento
578
11.8.9
511
B.4
11.8.10
Trasferimento di dati
512
-i
B.4.1
Indirizzamento degli operandi
578
I .
11.8.11
nprotocollo e Uformate dei pacchetti
513

8.4.2
lndirizzamento nei salti
580
;

581
I
"
B.5
Formati delle istruzioni
..
,
A
Sistemi DigitaJi

0
B6
II coprocessare 8087
584
517
q '.
I

--
A.1
Proprieta dell'algebra delle reti
.i.
B,6.1
Madello di programmazione esteao
584

517
, A.2
Forme canoniche
519
B,6.2
Tipi di dati
,
586

A.2.1
Prima forma canonica
519

B.6.3
Collegamento can la CPU 8086/8088
586
I
'. A.2.2
Secanda forma canonica
520
,
B.6.4
Coordinamento con la CPU: aspetti generali
587
;
A.3
Minimizzazione
,
Coordinamento coo la CPU, il controllo del bus
591
521
..
B.6.5

A.4
. Altri operatori e altri tipi di porta
522
;
B.6.6
Emulazione del coprocessore
593
,
A.4.1
NAND e NOR
522

B.7
IT microprocessore 80286 (286)
594
\
A.4.2
Reti can sale porte NAND a 'ole porte NOR
524
,
B.7.1
Modello di progranimazione
595
A.4.3
Una tecnica grafica per la trasformazione
524
.,
B.7.2
La struttura interna
596
.. A.4.4
XORe NXOR
525
j
B.7.3
Modo protetto
597

A.5
Esempi di reti combinatorie
526
,
B,8
IT microprocessore 80386 (386)
597
1

A.5.1
ncantrollo di parita.
526
B,8.1
Emulazione
598
,
A.5.2
Comparatore digitale
528
1 B:9
n microprocessore 80486 (486)
600
A.6
Unita aritmeticbe

8.9.1 .
La cache interna
600
530
'. A.6.1
Somma Con calcolo del riporto
"
Vevoluzione verso frequenze pili elevate
601
J
530
B.9.2
A.6.2
Ancora sui sommatore completo
532
B.lO II Pentium
602
A7
Unita aritmetiche e logiche
533
B.lO.l
La struttura interna
602
A.8
Reti sequenziali
536
B.1O.2
L'unita per la predizione dei salti condizionati
605
A.8.1
Modellogenerale
536
B.1O.3
L'unita per il calcolo in virgola mobile
609
J
A.82
Rappresentazione delle funzioni c,li stato e uscita
538
,
B.10.4
Le due cache interne
609

"
xviii Indice generale
,I
,i'
,.1
lndice generale XIX
1
11.5.3
Chipset per la classe Pentium 1I1
477
,
A.9
Sincronizzazione
540
11.6
IT bus SCSI
.....
A.IO Reti sequenziali sincrone
542
479
.
I
11.6.1
Principi eli fUnzlonamento
479
., '
A.1O.1
Flip-flop Master-Slave
543
,
.,
11.6.2
I segnali SCSI
481
-1 :
A.10.2
Altre considerazioni sui flip-aop
545
' .
11.6.3
FMi del bus
482
' '
A.10.3
Madella dj Mealy e madelia di Moore
546
.-
11.6.4
Un esempio di operazione suI bus SCSI
' :
Esempi di analisi e progetto di reti sequenziali
549
485
' .
A.lI

I
11.6.5
Conclusioni
488
..
A.1Ll Esempio di progetto: generazione di un 'egnale di WAIT
549
, 11.7
IT bus PCI

A.11.2
Esempio di progetto: rete per Fadattamento
488

11.7.1
Principi .di funzionamento
488 ',
della temporizzazione dei segnali
551
,'. '
11. 7.2
I segnali del PCI bu,
..
A.12 Esercizi
555
490

I ",
\
11.7.3
di trasferimento dati
49.1
,
<!
11.7.4
Arbitraggio
495
B L'architettura 8086
559
I
11.7.5
Prestazioni
497

B.1
Un pO' di storia
562
11.7.6
Blocco delle riaorse
498
"
B.2
Architettura di base: il micro 8086
564
l
11.8
IT bus USB
501
4
B.2.1
nmodella eli programmazione
565
I
)
11.8.1
Caratteristicbe generali
501
B.2.2
Organizzazione della memoria
568
11.8.2
Struttura fisica
,
B.2.3
Accesso alia memoria
571
502

11.8.3
Organizzazione a livelli
503
I :
B.2.4
Osservazioni sull'organizzazione di memoria dell'8086
572
11.8.4
Host
,.
B.2.5
Struttura interna del microprocessore 8086
573
l
505
..
". ,
,
"
575
11.8.5
Periferiche
505
,r ,
. B.2.6
Cieli' di bus
11.8.6
Hub
506
". ,
B.2.7
Modalita di funzionamento
576
11.8.7
Modella dei Busai informativi
506
1
B.2.8
La fase di partenza
576
,
11.8.8
ncavo
508
.,
B.3
nrepertorio delle istruzioni
577
I
,
Riconoscimento e configurazione delle periferiche

Modalita di indirizzamento
578
11.8.9
511

B.4
11.8.10
Trasferimento di dati
512
-i
B.4.1
Indirizzamento degli operandi
578
I .
11.8.11
nprotocollo e Uformate dei pacchetti
513

8.4.2
lndirizzamento nei salti
580
;

581
I
"
B.5
Formati delle istruzioni
..
,
A
Sistemi DigitaJi

0
B6
II coprocessare 8087
584
517
q '.
I

--
A.1
Proprieta dell'algebra delle reti
.i.
B,6.1
Madello di programmazione esteao
584

517
, A.2
Forme canoniche
519
B,6.2
Tipi di dati
,
586

A.2.1
Prima forma canonica
519

B.6.3
Collegamento can la CPU 8086/8088
586
I
'. A.2.2
Secanda forma canonica
520
,
B.6.4
Coordinamento con la CPU: aspetti generali
587
;
A.3
Minimizzazione
,
Coordinamento coo la CPU, il controllo del bus
591
521
..
B.6.5

A.4
. Altri operatori e altri tipi di porta
522
;
B.6.6
Emulazione del coprocessore
593
,
A.4.1
NAND e NOR
522

B.7
IT microprocessore 80286 (286)
594
\
A.4.2
Reti can sale porte NAND a 'ole porte NOR
524
,
B.7.1
Modello di progranimazione
595
A.4.3
Una tecnica grafica per la trasformazione
524
.,
B.7.2
La struttura interna
596
..
A.4.4
XORe NXOR
525
j
B.7.3
Modo protetto
597

A.5
Esempi di reti combinatorie
526
,
B,8
IT microprocessore 80386 (386)
597
1

A.5.1
ncantrollo di parita.
526
B,8.1
Emulazione
598
,
A.5.2
Comparatore digitale
528
1 B:9
n microprocessore 80486 (486)
600
A.6
Unita aritmeticbe

8.9.1 .
La cache interna
600
530
'.
A.6.1
Somma Con calcolo del riporto
"
Vevoluzione verso frequenze pili elevate
601
J
530

B.9.2
A.6.2
Ancora sui sommatore completo
532
B.lO II Pentium
602
A7
Unita aritmetiche e logiche
533
B.lO.l
La struttura interna
602
A.8
Reti sequenziali
536
B.1O.2
L'unita per la predizione dei salti condizionati
605
A.8.1
Modellogenerale
536
B.1O.3
L'unita per il calcolo in virgola mobile
609
J
A.82
Rappresentazione delle funzioni c,li stato e uscita
538
,
B.10.4
Le due cache interne
609

"
E Comunicazione tra Calcolatori 689
E.l lotroduziooe 689
E.l.l nmezzo trasmissivo 690
E.2 II modello 1S0/0S1 691
E.2.1 II Protocollo TCP/IP 692
E.3 Livello fisico 693
E.3.1 Tipi di trasmissione 693
E.3.2 Esempio di standard di livello fisico: RS232C/V24 694
E.3.3 Esempi di collegamenti RS232C 696
E.3.4 Altri standard seriali 697
E.4 Livello di colJegamento 698
E.4.1 Thasmissione asincrona 699
E.4.2 Trasmissione sincrona 700
E.4.3 Controllo degJi errori 704
E.4.4 Protocolli per il livello collegamento 708
E.4.5 Esempio di dispositivQ per il cantralla della trasmissione: P8251A710
E.5 Cenni sulle LAN 711
E.5.1 Topologia di una LAN 713
E.5.2 Tecniche di trasmissione 715
E.5.3 Tecniche di accesso 716
E.5.4 Esempio di LAN: la rete Ethernet 717
1
xx
B.ll
\
I
B.12
I
I B.13
B.14
l B.15
B.16

C
I C.1
,
I C.2
I
C.3
C.4
C.5
\ C6
)gl
\ D.2
,
I D,3
I
I
I
I
D
.4
I
I
Indice generale
n'Pentium con tecDologia MMX
B.1Ll L'estensiooe MMX
8.11.2 La struttura interna
nPentium Pro
,
B.12.1 La pipeline e l'esecllzione dinamica
B.12.2 Ridenominazione dei registri
n Peotium II
B,13.1 La struttura interna
n Peotium ill
La for"ma esterna
,
i bus e altro
Esercizi
L'architettura PowerPC
Architettura PowerPC
C.l.1 Formati istruzione
C.1.2 Organizzazione
0.1.3 Caratteristiche e prestazioni di alcuni modelli
La CPU MPC 601
C.2.1 Gestione della memoria
C.2.2 La coda istruzioni del 601
C,2,3 La pipeline del 601
Un esempio di Bussa istruzioni per it 601
La CPU MPC 604
C.4.1 La pipelioe del 604
Un esempio di Bussa istruzioni per il 604

Un confronto tra Ie prestaziooi del 601 e 604


C.6.1 I.e prestazioni del 601
C.6.2 Le prestaziooi del 604
0.6.3 Prestazioni relative
n linguaggio assembler
Generalitil.
D.1.1 Sintassi
Segmenti e moduli
D.2.l Direttive per 1a gestione dei segmenti
D.2.2 Generazione dei riferimenti: 1a direttiva ASSUME
D.2.3 Relazione tra segmenti e moduli
I simboli definiti daJ programmatore
D.3.1 Eticbette
D.3.2 VariabiJi
D.3.3 Variabili strutturate
D.3.4 Costanti
D.3.5 Procedure
Direttive per il collegamento dei moduli
DA.l Direttive per la programmazione modulare
D.4.2 La direttiva END
D.4.3 La direttiva INCLUDE
D.4.4 n sistema macro del MASM
610
610
611
611
613
618
619
620
b
622
626
627
628
628
628
631
631
633
633
635
638
639
641
643
646
648
649
650
651
652
654
657
657
659
661
664
664
665
667
668
670
670
670
671
671
672
II
."
ii'
'1 '
'
\'1
.JI
,

I
II
I'
]1.
"I'
,
,
,I,
e .'
t
1
.
j,
J:
'II,

-
l
1
1
.,
j
,
1
i
"
I
I'
I
I'
",
1
"
til
11
'"
,
,.

, ,..
,
,
"

,
1
.'
"
,
,
D.5 Un esempio di programma assembler
D.6 It processo di traduzione
D.6.1 Assemblatore: primo passo
D.6.2 Assemblatore: secondo passe
D.7 Collegamento e caricarnento
D.7.! Caricamento in memoria ed esecuzione
D.8 Esercizi

Indice generale XXI
673
678
681
683
684
685
685
719
E Comunicazione tra Calcolatori 689
E.l lotroduziooe 689
E.l.l nmezzo trasmissivo 690
E.2 II modello 1S0/0S1 691
E.2.1 II Protocollo TCP/IP 692
E.3 Livello fisico 693
E.3.1 Tipi di trasmissione 693
E.3.2 Esempio di standard di livello fisico: RS232C/V24 694
E.3.3 Esempi di collegamenti RS232C 696
E.3.4 Altri standard seriali 697
E.4 Livello di colJegamento 698
E.4.1 Thasmissione asincrona 699
E.4.2 Trasmissione sincrona 700
E.4.3 Controllo degJi errori 704
E.4.4 Protocolli per il livello collegamento 708
E.4.5 Esempio di dispositivQ per il cantralla della trasmissione: P8251A710
E.5 Cenni sulle LAN 711
E.5.1 Topologia di una LAN 713
E.5.2 Tecniche di trasmissione 715
E.5.3 Tecniche di accesso 716
E.5.4 Esempio di LAN: la rete Ethernet 717
1
xx
B.ll
\
I
B.12
I
I B.13
B.14
l B.15
B.16

C
I C.1
,
I C.2
I
C.3
C.4
C.5
\ C6
)gl
\ D.2
,
I D,3
I
I
I
I
D
.4
I
I
Indice generale
n'Pentium con tecDologia MMX
B.1Ll L'estensiooe MMX
8.11.2 La struttura interna
nPentium Pro
,
B.12.1 La pipeline e l'esecllzione dinamica
B.12.2 Ridenominazione dei registri
n Peotium II
B,13.1 La struttura interna
n Peotium ill
La for"ma esterna
,
i bus e altro
Esercizi
L'architettura PowerPC
Architettura PowerPC
C.l.1 Formati istruzione
C.1.2 Organizzazione
0.1.3 Caratteristiche e prestazioni di alcuni modelli
La CPU MPC 601
C.2.1 Gestione della memoria
C.2.2 La coda istruzioni del 601
C,2,3 La pipeline del 601
Un esempio di Bussa istruzioni per it 601
La CPU MPC 604
C.4.1 La pipelioe del 604
Un esempio di Bussa istruzioni per il 604

Un confronto tra Ie prestaziooi del 601 e 604


C.6.1 I.e prestazioni del 601
C.6.2 Le prestaziooi del 604
0.6.3 Prestazioni relative
n linguaggio assembler
Generalitil.
D.1.1 Sintassi
Segmenti e moduli
D.2.l Direttive per 1a gestione dei segmenti
D.2.2 Generazione dei riferimenti: 1a direttiva ASSUME
D.2.3 Relazione tra segmenti e moduli
I simboli definiti daJ programmatore
D.3.1 Eticbette
D.3.2 VariabiJi
D.3.3 Variabili strutturate
D.3.4 Costanti
D.3.5 Procedure
Direttive per il collegamento dei moduli
DA.l Direttive per la programmazione modulare
D.4.2 La direttiva END
D.4.3 La direttiva INCLUDE
D.4.4 n sistema macro del MASM
610
610
611
611
613
618
619
620
b
622
626
627
628
628
628
631
631
633
633
635
638
639
641
643
646
648
649
650
651
652
654
657
657
659
661
664
664
665
667
668
670
670
670
671
671
672
II
."
ii'
'1 '
'
\'1
.JI
,

I
II
I'
]1.
"I'
,
,
,I,
e .'
t
1
.
j,
J:
'II,

-
l
1
1
.,
j
,
1
i
"
I
I'
I
I'
",
1
"
til
11
'"
,
,.

, ,..
,
,
"

,
1
.'
"
,
,
D.5 Un esempio di programma assembler
D.6 It processo di traduzione
D.6.1 Assemblatore: primo passo
D.6.2 Assemblatore: secondo passe
D.7 Collegamento e caricarnento
D.7.! Caricamento in memoria ed esecuzione
D.8 Esercizi

Indice generale XXI
673
678
681
683
684
685
685
719
v
, :\ .
; ..,- ".,
"
"-
,
n
,
1
"
,
,
, "
:'
,:ll'


'II,',
" '
jl "
'I'
,
',"
Introduzione
1
I
1
, "
"
....n
;\'1' ' ,. - '
_lOll,
1

dl
l
"II'
',1
,
,
:1
""I'
,'}
'"
",
I


JI
"
" '
;11
','
"I
,.j) :
'1,
'''',
4'
, 'II'
'1J",
"
:
,
-if

-"
ill
,::j,
"I

"
,,',;
'-I


,,,I

, "
"
!
,
,
I
,
"
\
J
Questa capitola eintroduttivo aile tematiche dellibro. Dopa Un breve resaconto stori- )
C9 s)Jll'evoluzione dei calcolatori elettronici, vengono richiamati alcuni concetti di ca-
rattere generale sui sistemi di numerazione, sulla rappresentazione dell'informazione
l
sulle unita. aritmetiche, sui sistemi digitali e sulla struttura ill base dei calcolatori. !
Ritenendo che la parte degli argomenti relativi ai sistemi digitali (algebra, reti
combinatorie e sequenziali) meritasse un approfondimento maggiore, e stata predi-
sposta !'Appendice A, alIa quale si fa spesso riferimento.
\
1.1 Qualche cenno storico I
I
La storia dell'evoluzione dei caicolatori elettronici costituisce da sola materiale suffi-
Ciente per la scrittura di un volume di carta stampata. Le poche notizie che seguono
'vengono fornite al solo scopo di dare al lettore la misura di come questa evoluzione I
sia stata incontenibile. Una ricostruzione pili dettagliata', specialmente per quanto
riguarda il primo periodo storieo, si trova in [HP93] .
11 primo ca1colatore elettronico venne progettato e costruita da J. P. Eckert I
e J. Mauchly, dell'Universita della Pennsylvania
1
. La macchina venne denomina-
ta ENIAC per Electronic Numerical Integrator and Calculator e Ia sua costruzione J
venne finanziata dal Ministero della Difesa Usa durante la seeonda guerra mondiale.
La macchina veniva impiegata per calcoli balistici. La sua esistenza venne resa nota \
ne11946, a guerra finita. Occupava un volume immenso: aveva fonna di U, era lunga J
circa 30 metri, alta 2 e spessore di 1 metro, per oltre 120 metri cubi di volume, su
una superficie di 180 mq. Pesava 30 tonnellate. Impiegava oitre 18.000 tubi a vuoto
(valvole) collegat; da 500,000 contatti saldati a mano, Aveva 20 registr; <Ii 10 ellre; I
ogni registro era lunge oltre mezzo metro. Era in grade di eseguire 1900 somme at
secondo. La programmazione avveniva in modo manuale, attraversa fill e interruttori
1Nel 1973 un giudicefedera.le americana ha annullato il brevetto di Mauchlye Eckert, stabilendo )
che I'ENIAC derivava dal computer di J. Atanasaff e C. Berry, costruita nel 1939.
v
, :\ .
; ..,- ".,
"
"-
,
n
,
1
"
,
,
, "
:'
,:ll'


'II,',
" '
jl "
'I'
,
',"
Introduzione
1
I
1
, "
"
....n
;\'1' ' ,. - '
_lOll,
1

dl
l
"II'
',1
,
,
:1
""I'
,'}
'"
",
I


JI
"
" '
;11
','
"I
,.j) :
'1,
'''',
4'
, 'II'
'1J",
"
:
,
-if

-"
ill
,::j,
"I

"
,,',;
'-I


,,,I

, "
"
!
,
,
I
,
"
\
J
Questa capitola eintroduttivo aile tematiche dellibro. Dopa Un breve resaconto stori- )
C9 s)Jll'evoluzione dei calcolatori elettronici, vengono richiamati alcuni concetti di ca-
rattere generale sui sistemi di numerazione, sulla rappresentazione dell'informazione
l
sulle unita. aritmetiche, sui sistemi digitali e sulla struttura ill base dei calcolatori. !
Ritenendo che la parte degli argomenti relativi ai sistemi digitali (algebra, reti
combinatorie e sequenziali) meritasse un approfondimento maggiore, e stata predi-
sposta !'Appendice A, alIa quale si fa spesso riferimento.
\
1.1 Qualche cenno storico I
I
La storia dell'evoluzione dei caicolatori elettronici costituisce da sola materiale suffi-
Ciente per la scrittura di un volume di carta stampata. Le poche notizie che seguono
'vengono fornite al solo scopo di dare al lettore la misura di come questa evoluzione I
sia stata incontenibile. Una ricostruzione pili dettagliata', specialmente per quanto
riguarda il primo periodo storieo, si trova in [HP93] .
11 primo ca1colatore elettronico venne progettato e costruita da J. P. Eckert I
e J. Mauchly, dell'Universita della Pennsylvania
1
. La macchina venne denomina-
ta ENIAC per Electronic Numerical Integrator and Calculator e Ia sua costruzione J
venne finanziata dal Ministero della Difesa Usa durante la seeonda guerra mondiale.
La macchina veniva impiegata per calcoli balistici. La sua esistenza venne resa nota \
ne11946, a guerra finita. Occupava un volume immenso: aveva fonna di U, era lunga J
circa 30 metri, alta 2 e spessore di 1 metro, per oltre 120 metri cubi di volume, su
una superficie di 180 mq. Pesava 30 tonnellate. Impiegava oitre 18.000 tubi a vuoto
(valvole) collegat; da 500,000 contatti saldati a mano, Aveva 20 registr; <Ii 10 ellre; I
ogni registro era lunge oltre mezzo metro. Era in grade di eseguire 1900 somme at
secondo. La programmazione avveniva in modo manuale, attraversa fill e interruttori
1Nel 1973 un giudicefedera.le americana ha annullato il brevetto di Mauchlye Eckert, stabilendo )
che I'ENIAC derivava dal computer di J. Atanasaff e C. Berry, costruita nel 1939.
\
\
I
I
1.
4Per anni estato costume confrontare con iI Vax Ie prestazioni di nuove m8.C;Chine immesse sui
mercato.
:lUna d'anni dopo l'avvento dei microprocesaori 1a DEC entrera in una rase di lenta declino
e fininl. per essere assorbita nel 1998 dalla Compaq, un'industria nata negli anni ottanta e fattasi
ricca fabbricando personal computer.

colatore, il PDP 8, prima macchina a costare sotto 20.000 Dollari. Si trattava di una
macchina con registri di 8 bit, Con i minicalcolatori di queste macchine si
diffonde anche entro organizzazioni non dotate di bilanci miliardari. Nacquero nuove
industrie per produrre maccrune di questa categoria (per esempio, 1a Data General);
come pure ci furona industrie attive in altri campi che si misero a fabbricare calco-
latori (per esempio, 130 Hewlett Packard, HP). Sempre 130 Digital introdusse nei primi
anni settanta il PDP 11. Si trattava di un minicalcolatore a 16 bit organizzato attor-
no a un unieo bus. Un'organizzazione che sara 10 standard per una ventina di anni,
specialmente con l'avvento dei microprocessori. Piu tardi 130 DEC introdusse il Vax,
estendendo in molti versi l'architettura PDP 11. n Vax. sara. una specie di riferimento
per Ie macchine di categoria intermedia e avra grande diffusione nel mondo scientifi-
co, accademico e industriale
4
. A fine anni settanta la DEC occupava saIdamente la
seconda posizione nella classifica dei produttori di sistemi di elaborazione, sebbene
assai distanziata quanta a fatturati dal gigante IBM'.
Introduzione 3
1.1. I I microprocessori
II termine llmicroprocessore" venne usato per 130. prima volta dalla Intel nel 1972,
quando rese disponibile un "computer microprogrammmabile su un unico chip" corn-
posta da una: CPU integrata completa di un sommatore parallelo a. 4 bit, 16 registri
a 4 bit, un accumulatore e uno stack. Questa. CPU venne denominata 4004 e, con
l'aggiunta di memorie di tipo RAM e ROM, costitui il sistema MCS-4. I micropro-
cessori hanno rappresentato il punto di avolta nell'uso del calcolatore: da macchina
gigante, utilizzata solo da pochi 30ddetti ai lavori, il calcolatore elettronico ediventato
un dispositivo piccolo cODvenientemente utilizzato nell'industria, negli uffici e anche
a livello domestico,
Dalla fine degli annj sessanta. si era evidenziato un serio problema nella proget-
tazione: 130 complessita dei sistemi digitali si avvicinava al punto in cui il Dumero
di componenti necessari alla re3olizzazione delle funzionalita. richieste dagli apparati
avrebbe superato i limiti del trattabile. Un rimedio consistette nell'utilizzare logica
convenzionale accoppiandola a memorie ROM in funzione eli reti combinatorie com-
plesse. Questa soluzione condusse alia nascita del microprocessore. Nell'estate del
1969, il costruttore giapponese Busicom chiese alIa Intel di pr'odurre un integrato
per una famiglia di calcolatrici progra.mmabili ad alte prestazioni, n committente
intende.va realizzare calcolatrici con una mezza dozzina di integrati, per ciascuno dei
quali si prevedevano dai 600 ai 1000 transistori. All'Intel (allor3o una piccolissima
1
per quanto brillante societa) esaminarono il progetto e conclusero che 10 sviluppo di
un tale apparato sarebbe stato troppo complesso per il prezzo previsto di mercato.
Alcuni progetti Intel avevano esperienza d'uso del rninicalcolatore PDP 8, al cui in-
terno c'era una ROM piuttosto grande, e pensarono che la tecnologia fosse matura
per sviluppare in forma integrata un processore capa.ce di interpretare di

.,:
'j'l

"

J
'.'
.,.

" .',
(


I

:,. "
,
"
,
.'
,

'.,
,
..,
.,

"
,
I. ,I.
,"
"
,
!.r.
'F
'JI'
.,

"\'
)
'ii,

"'
,,:'
' .. '

"
:,tl
,
,
.;\
::1'
i1
;:;1

,:;,1
,
"..
',"I'
"
c;.'!
'If,
"
,
"
"I
" "
'Ii:
" 'r"
"
.;'!,
J
.J
,,jl
,.,.
"
,. ..
,
"
2 Capitolo 1
)
) 'Le oehede perlo,"" .",anoo per annl 10 stand.rd di ingresso, oon 0010 por i d.tl, m. anch. por
j programmi. Fino alla meta degli anni settanta perforatori e lettori di scbede facevano parte del
normale paesaggio di qualunque centro di ca.lcolo.
1
3Hennessy e Patterson [HP93} espongono una serie di argomenti in base ai quali la fama del
signor Von Neuman eda considerarsi parzialmente usurpata e che ad altri avrebbe dovuto sorridere
1a gloria.
suI pannello di cantrollo, non dissimile cia queUo di una vecchia centralina telefonica.
I dati, venivano introdotti attraverso schede perlorate
2
.
n problema principale della macchina era la modalita. d.i programmazione. John
von ,Neuman, che faceva parte: sin dal 1944 del gruppo di ricercatori e progettisti
che ruotava attorno al Ministero della Difesa Usa, scrisse un rapporto in cui veniva
esposta per la prima volta l'idea di costruire un calcolatore a programma mernorizzato,
che egli chiamo EDVAC (Electronic Discrete Variable Automatic Camputer). Questa
soluzione divento la norma e, di fatto, distingue quelli che oggi chiamiamo calcolatori
elettronici cia precedenti macchinededicate a1 calcola. Von Neuman passe (llia storia
3
.
Eckert e Mauchly fondarono una societa che eostful il prototipo chiamato BINAC.
La societa. venne poi acquistata dalla Remington-Rand, per la quale, nel1951, venne
prodotto il primo esempio di calcolatore commerciale: l'UNIVAC I, venduto per circa
250.000 Dollari Usa. Di UNIVAC I ne vennero prodotti 48 esemplari.
L'IBM, presente da anni nel settore delle macchine da ufficio, entro in campo
e produsse il primo suo calcolatore (I 'IBM 701) nel 1952, vendendone una ventina,
Negli anni sessanta l'IBM introdusse il sistema S/360, come risultato di un proget-
to di sviluppo nel Quale la societa aveva investito svariati milioni di Dollari. Per la
prima volta si. distingueva il concetto di architettura da quello eli nel
sensa che l'illM aveva definito un'organizzazione di macchina die sarebbe stata co-
roune a tutta una famiglia d.i calcolatori. Questi avrebbero potuto dimensioni,
capacita e potenzialita diverse, avrebbero potuto essere realizzati con tecnologie di-
verse, ma sarebbero stati comunque compatibili tr30 di loro. Si tratto di un passaggio
fondamentale: da quel momenta i concetti di archi-tettura e compatibilita avrebbero
costituito il fondamento per ogni produzione industriale, L'IBM dominera per anni
il mercato dei calcolatori in tutto il mondo. Agli inizi degli anni settanta, essa era ....
\
pa.d.rona di oltre il 60% del mercato, mentre gli al.tri si dividevano quel che rimaneva.
\1 A fine anni sessanta,.venne introdotto il sistema S/370, successore del precedente, rna
) sempre compatibile. Negli anei successivi: fino ai nostri giorni LTBM ha continu.ato a
costruire macch.ine sostanzialmente discendenti da quell'architettura. Non ci 'si deve
)
stupire: dal momento in cui erano stati fatti investimenti giganteschi nel software da
parte di chi 10 impiegava, Ie macchine IBM erano in ogni ministero 0 grande
impresa. La necessita. di salvaguardare questa patrhnonio estata e continua a essere
una delle forze condizionanti dell'evoluzione del mercato dell'informatica.
\
Gli annj sessanta e settanta sono stati gli anni delle macchine della categoria
chiamata mainframe. Si trattava d.i macchine costose (di norma sopra al centinaio
di milioni di Lire) equipaggiate con sistemi operativi che ne permettevano un' uso
condiviso da parte di piu utenti. Nel 1963 apparve il CDC 6600, il primo vero super-
1
calcolatore. n suo progettista S. Cray, dopo aver progettato altri calcolatori per 1a
Control Data CorporatioD, fondo successivarnente una sua societa. che ha continuato
J a produrre macchine ultrapotenti..
Net 1965 la DEC (Digital Equipment Corporation) introdusse il primo minical-
\
I
1
1
.J
\
\
I
I
1.
4Per anni estato costume confrontare con iI Vax Ie prestazioni di nuove m8.C;Chine immesse sui
mercato.
:lUna d'anni dopo l'avvento dei microprocesaori 1a DEC entrera in una rase di lenta declino
e fininl. per essere assorbita nel 1998 dalla Compaq, un'industria nata negli anni ottanta e fattasi
ricca fabbricando personal computer.

colatore, il PDP 8, prima macchina a costare sotto 20.000 Dollari. Si trattava di una
macchina con registri di 8 bit, Con i minicalcolatori di queste macchine si
diffonde anche entro organizzazioni non dotate di bilanci miliardari. Nacquero nuove
industrie per produrre maccrune di questa categoria (per esempio, 1a Data General);
come pure ci furona industrie attive in altri campi che si misero a fabbricare calco-
latori (per esempio, 130 Hewlett Packard, HP). Sempre 130 Digital introdusse nei primi
anni settanta il PDP 11. Si trattava di un minicalcolatore a 16 bit organizzato attor-
no a un unieo bus. Un'organizzazione che sara 10 standard per una ventina di anni,
specialmente con l'avvento dei microprocessori. Piu tardi 130 DEC introdusse il Vax,
estendendo in molti versi l'architettura PDP 11. n Vax. sara. una specie di riferimento
per Ie macchine di categoria intermedia e avra grande diffusione nel mondo scientifi-
co, accademico e industriale
4
. A fine anni settanta la DEC occupava saIdamente la
seconda posizione nella classifica dei produttori di sistemi di elaborazione, sebbene
assai distanziata quanta a fatturati dal gigante IBM'.
Introduzione 3
1.1. I I microprocessori
II termine llmicroprocessore" venne usato per 130. prima volta dalla Intel nel 1972,
quando rese disponibile un "computer microprogrammmabile su un unico chip" corn-
posta da una: CPU integrata completa di un sommatore parallelo a. 4 bit, 16 registri
a 4 bit, un accumulatore e uno stack. Questa. CPU venne denominata 4004 e, con
l'aggiunta di memorie di tipo RAM e ROM, costitui il sistema MCS-4. I micropro-
cessori hanno rappresentato il punto di avolta nell'uso del calcolatore: da macchina
gigante, utilizzata solo da pochi 30ddetti ai lavori, il calcolatore elettronico ediventato
un dispositivo piccolo cODvenientemente utilizzato nell'industria, negli uffici e anche
a livello domestico,
Dalla fine degli annj sessanta. si era evidenziato un serio problema nella proget-
tazione: 130 complessita dei sistemi digitali si avvicinava al punto in cui il Dumero
di componenti necessari alla re3olizzazione delle funzionalita. richieste dagli apparati
avrebbe superato i limiti del trattabile. Un rimedio consistette nell'utilizzare logica
convenzionale accoppiandola a memorie ROM in funzione eli reti combinatorie com-
plesse. Questa soluzione condusse alia nascita del microprocessore. Nell'estate del
1969, il costruttore giapponese Busicom chiese alIa Intel di pr'odurre un integrato
per una famiglia di calcolatrici progra.mmabili ad alte prestazioni, n committente
intende.va realizzare calcolatrici con una mezza dozzina di integrati, per ciascuno dei
quali si prevedevano dai 600 ai 1000 transistori. All'Intel (allor3o una piccolissima
1
per quanto brillante societa) esaminarono il progetto e conclusero che 10 sviluppo di
un tale apparato sarebbe stato troppo complesso per il prezzo previsto di mercato.
Alcuni progetti Intel avevano esperienza d'uso del rninicalcolatore PDP 8, al cui in-
terno c'era una ROM piuttosto grande, e pensarono che la tecnologia fosse matura
per sviluppare in forma integrata un processore capa.ce di interpretare di

.,:
'j'l

"

J
'.'
.,.

" .',
(


I

:,. "
,
"
,
.'
,

'.,
,
..,
.,

"
,
I. ,I.
,"
"
,
!.r.
'F
'JI'
.,

"\'
)
'ii,

"'
,,:'
' .. '

"
:,tl
,
,
.;\
::1'
i1
;:;1

,:;,1
,
"..
',"I'
"
c;.'!
'If,
"
,
"
"I
" "
'Ii:
" 'r"
"
.;'!,
J
.J
,,jl
,.,.
"
,. ..
,
"
2 Capitolo 1
)
) 'Le oehede perlo,"" .",anoo per annl 10 stand.rd di ingresso, oon 0010 por i d.tl, m. anch. por
j programmi. Fino alla meta degli anni settanta perforatori e lettori di scbede facevano parte del
normale paesaggio di qualunque centro di ca.lcolo.
1
3Hennessy e Patterson [HP93} espongono una serie di argomenti in base ai quali la fama del
signor Von Neuman eda considerarsi parzialmente usurpata e che ad altri avrebbe dovuto sorridere
1a gloria.
suI pannello di cantrollo, non dissimile cia queUo di una vecchia centralina telefonica.
I dati, venivano introdotti attraverso schede perlorate
2
.
n problema principale della macchina era la modalita. d.i programmazione. John
von ,Neuman, che faceva parte: sin dal 1944 del gruppo di ricercatori e progettisti
che ruotava attorno al Ministero della Difesa Usa, scrisse un rapporto in cui veniva
esposta per la prima volta l'idea di costruire un calcolatore a programma mernorizzato,
che egli chiamo EDVAC (Electronic Discrete Variable Automatic Camputer). Questa
soluzione divento la norma e, di fatto, distingue quelli che oggi chiamiamo calcolatori
elettronici cia precedenti macchinededicate a1 calcola. Von Neuman passe (llia storia
3
.
Eckert e Mauchly fondarono una societa che eostful il prototipo chiamato BINAC.
La societa. venne poi acquistata dalla Remington-Rand, per la quale, nel1951, venne
prodotto il primo esempio di calcolatore commerciale: l'UNIVAC I, venduto per circa
250.000 Dollari Usa. Di UNIVAC I ne vennero prodotti 48 esemplari.
L'IBM, presente da anni nel settore delle macchine da ufficio, entro in campo
e produsse il primo suo calcolatore (I 'IBM 701) nel 1952, vendendone una ventina,
Negli anni sessanta l'IBM introdusse il sistema S/360, come risultato di un proget-
to di sviluppo nel Quale la societa aveva investito svariati milioni di Dollari. Per la
prima volta si. distingueva il concetto di architettura da quello eli nel
sensa che l'illM aveva definito un'organizzazione di macchina die sarebbe stata co-
roune a tutta una famiglia d.i calcolatori. Questi avrebbero potuto dimensioni,
capacita e potenzialita diverse, avrebbero potuto essere realizzati con tecnologie di-
verse, ma sarebbero stati comunque compatibili tr30 di loro. Si tratto di un passaggio
fondamentale: da quel momenta i concetti di archi-tettura e compatibilita avrebbero
costituito il fondamento per ogni produzione industriale, L'IBM dominera per anni
il mercato dei calcolatori in tutto il mondo. Agli inizi degli anni settanta, essa era ....
\
pa.d.rona di oltre il 60% del mercato, mentre gli al.tri si dividevano quel che rimaneva.
\1 A fine anni sessanta,.venne introdotto il sistema S/370, successore del precedente, rna
) sempre compatibile. Negli anei successivi: fino ai nostri giorni LTBM ha continu.ato a
costruire macch.ine sostanzialmente discendenti da quell'architettura. Non ci 'si deve
)
stupire: dal momento in cui erano stati fatti investimenti giganteschi nel software da
parte di chi 10 impiegava, Ie macchine IBM erano in ogni ministero 0 grande
impresa. La necessita. di salvaguardare questa patrhnonio estata e continua a essere
una delle forze condizionanti dell'evoluzione del mercato dell'informatica.
\
Gli annj sessanta e settanta sono stati gli anni delle macchine della categoria
chiamata mainframe. Si trattava d.i macchine costose (di norma sopra al centinaio
di milioni di Lire) equipaggiate con sistemi operativi che ne permettevano un' uso
condiviso da parte di piu utenti. Nel 1963 apparve il CDC 6600, il primo vero super-
1
calcolatore. n suo progettista S. Cray, dopo aver progettato altri calcolatori per 1a
Control Data CorporatioD, fondo successivarnente una sua societa. che ha continuato
J a produrre macchine ultrapotenti..
Net 1965 la DEC (Digital Equipment Corporation) introdusse il primo minical-
\
I
1
1
.J
9Di queati aviluppi 5i parla con maggiori dettagli nell'Appendice apPOl3itamente dedicata J
all'architettura della fa:migJia x86.
sto versioni a. 16 bit dei micro Motorola e Zilog. La prima introdusse il dispositivo
,MC68000, la secooda introdusse 10 Z8000. In comune all'8086 avevano il bus dati I
esterno di 16 bit e la possibilita di indirizzate un spazio eli memoria immenso. Biso-
gna dire che 10 Z8000 aveva., almeno sulla carta, caratteristiche architetturali superiori
a11'8086: da un certo punta di vista era una specie di super insieme dello 8086, rna
era possibile evitare Ie complicazioni del madelIa di memoria di quest
l
ultime. Anche I
il 68000 aveva caratteristiche architetturali pili convincenti delP8086: presentava an-
zitutto uno spazio Iineare. e si annunciava pili potente. Tuttavia sia 10 zaooa sia il
68000, si fecero aspettare troppo a lunge dopo I'introduzione dell'8086. n68000 arrivo
suI mercato con quasi due anni d.i ritardo, concedendo all'8086 grande vantaggio. \
Ma fu l'introduzione dell'8088 a cambiare Ie cose. L'8088 era un 8086 rna con bus
esterno a 8 bit. Motorola e Zilog annunciarono Ie versioni a 8 bit (MC68008 e Z8008),
rna. quando 1'IBM castrul il suo PC (Pe.rsonal Computer), sul mercato c'era un unico
miqo a 8 bit capace di almena 1Mbyte di memoria: 1'8088. Quello fu il
punto.di svolta dell'evoluzione del mondo dell'informatica. L'architettur& Intel diven- ]
ne 10 standard eli fatto nel mondo dei PC, la Microsoft stabilile basi per eliventare la
maggior compagnia di software del pianeta
9
.
n 68000 ebbe ottima accoglienza da parte dei costruttori delle c08iddette work- I
station, ovver? sistemi allora molto pill
dei calcolaton per I quah II SIstema operativo UnIX era la norma. n madelIa
di memoria !ineare del 68000 era adeguato per la tecnica di gestione della memoria
virtuale eli Unix. n 68000 aveva inoltre piu potenza dell'8086, ancbe percbe bus da- ,
ti e indirizzi non erano condivisi come Quest'ultimo (l'integrato MC68000 aveva 64 ! I
piedini). Per anni l'architettura Motorola sara 10 standard di fatto delle pili diffuse
workstation.' 'n 68000 e i suoi successori sarebbero stati impiegati da Sun Micro-
systems (it pili accreditato costruttore di questa categoria di macchine), cia HP, da \
Apollo (poi assorbita da HP) da molti altri. l'l 68000 venne pure impiegato nei
McIntosh della Apple. La famiglia 68000 ebbe largo impiego ancbe nel campo indu- I
striale 0 come embedded computer, in quei casi, come nelle stampanti postscript in cui
si richiedevano buone capacita elaborative. La della famiglia MC68000 co- I
minced. a declinare verso la fine degli anm ottanta, Quando i principali costruttori.di
workstation cominciarono a ricorrere 0 a produrre direttamente CPU RISC (Reduced
Instruction Set Computer), corne accennato poco pili avanti.
Lo Z8000 non sfonda nel mercato dell'informatica dei grandi numeri ne trovo \
impiego in ambiente industriale. Venne impiegato nel Commodore
l
un calcolatore
personale venduto essenzialmente come videogioco. In Italia 1'Olivetti usc 10 Z8000
per i1 suo primo PC (denominato M20). L'M20 era una buona macchina, rna non
incontro i favori del grande pubblico e, dopa poco tempo, il costruttore fu costretto a J
riconvertire la sua linea di calcolatori personali
1
passando alIa produzione di macchine
compatibili col PC: 1a torta era tanto ricca che unlesigua fettina Yaleva molto di piu
del totale dominio in aree parallele.
I microprocessori. a 16 bit entrarono in una fase di grande crescita. Apparvero I
componenti di corredo avanzati, come gestori di memoria (MMU, Memory Manage.
ment Unit), unita aritmetiche in virgola mobile (FPU, Floating Point Unit) e control-
-
'-
4 Ca.pitola 1
istruzioni generali, contenute in ROM. Una simile CPU avrebbe trovato impiego non
solo nelle 'calcolatrici rna anche in luogo .dei minicomputer
6
. Nel Novembre del 1971
Intel decise di pubblicare il primo articol0 sull'MCS-4. L'interesse fu subito notevole
e Intel realizzQ un modesto rna promettente guadagno di 8500 Dollari.
Mentre stava lavoranda al 4004, l'Intel aveva avviato un progetto paraUelo che
avrebbe portato al primo microprocessore a 8 bit, 1'8008: U80G8 fu introdotto
neWAprile del 1972} nella forma di un integrato a 18 piedini
7
ed era realizzato in
tecnologia PMOS. Esse aveva. un tempo media di esecuzione delle istruzioni di 301JS.
Fu pero solo con I'introduziooe dell'8080 [Noy81] nell'Aprile del 1974, che 11 mi-
croprocessore venne accreditato dalla comunita scientifica e tecnologica come un dis
positivQ non solo capace di sostituire la logica convenzionale, rna anche in grade di
essere impiegato come un elaboratore di U.80 generale. V8080 venne prodotto in tec-
nologia n-MOS da 6 micron, per un totale d.i 6.000 transistori in un integrato a 40
piedini (DIP). La frequenza del clock poteva raggiungere i 2 MHz consentendo I'esecu-
zione di alcune isttuzioni in 2 jJ.s. Si trattava di un dispositivo con prestazioni tali da
eaaere in breve tempo riconosciuto come 1a macchina a 8 bit per ecceUenza. La rapida
approvazione da parte del mercato e Ie forti richieste' dell'8080, generarono due nuovi
microprocessori concorrenti, il Motorola MC6800 e 10 Zilog Z80
8
. n 6800, introdotto a
meta del 1974, fu it primo microprocessore ad avere un'alimentazione singola di +5V
(La risposta dell'Intel fu 1'8085, evoluzione tecnologica - e minimamente archi.tettu-
tale - dell'8080). Veliminazione di tensioni di alimentazione multiple abbasso il costa
del prodotto e rese il 6800 malta diffuso sul mercato. Lo Z80, realizzato nel 1975,
riHetteva i progressi nell'architettura fatti nei due anni success.ivi aWuscita dell'8080 e
del 6800. La Z80 estate considerato come il punta pili alto raggiunto dall'evoluzione'
delle architetture di questa categoria di maccrune. Esse incorporava il repertorio di ...
istruzioni dell'8080 e quindi aveva piena compatibilita. con i programmi che erano stati
scritti fino a quel tempo per 1'8080.
n primo microprocessore su singolo integrato con bus dati esterno a 16 bit fu
il PACE, introdotto nel 1974 dalla National. Si trattava di un dispositivo MOS a
canale p, con un cido di istruzione di 10 J.Ls, contenuto in un package DIP da 40
piedini. Altri .costruttori produssero i loro microprocessori a 16 bit, corne il 9900 della
Texas Instruments. Purtroppo quesH dispositivi continuavano a indirizzare "sold'
64 kbyte, perche, alPepeca, questa rnisuta era generalmente giudicata al di sopra di
qualunque necessita. pratica.
Fu 1'8086 della Intel, introdotto nel Giugno 1978, con il suo Mbyte di memoria
indirizzabile a far passare alia seconda generazione ill micraprocessori. L'8086 venne
prodotto in tecnologia HMOS da 3 jJ.m, per un totale di 29.000 transistori, in un in-
tegrato a 40 pieelini (DIP). La frequenza del clock era eli 5 MHz, per una capacit1>
elaborativa media di 0,33 MIPS (Milioni di Istruzioni Per Secondo). Seguirono pres-
eUn .grOsso contributo aHa cruzione dell'MeS-4. fu dato anche da Federico Faggin, in seguito
fondatore e presidente della Zilog, it quaJe, approdato aHa Intel nel 1970, rapidamente it
concetto del nuovo dispotlitivo che ili stava sviluppando e ne comincio l'ottlmlzzazione in tecnologia
MOS: in soli 9 mesi produsse campioni dei 4. integrati che sarebbero poi diventati I'MCS-4.
11 piedini erano su due file, costltueodo iI cosiddetto packoge DIP, da Duol Inline Package.
8Naturalmente a Silicon Valley e dintomi non c'era. aolo 1'lntel a studiare queate nuove tecnologie,
praticamentl}! tutti i grandi produttori di diapositivi elettrooici erano impiegati nello aviluppo dei
loro microprocessori, cercando di acrivare sul mercato con il massimo anticipo poosibile rispetto alia
concorrenza.
,.:" ,
,', ." ,".. ...
.
l '
." .

:. [j;
'f
e,
..
j
"
.. ; .
<, '
:
,..,
,
'" i'j

.
.'
,
,.
,.,
l
,I
I

:.:'f
i.' 'I'

.,.
"'1
-I
. .,
:j
':J:'
'

,
''iI
,:'
..,


.""
'a
'r
h
n
l
.. "1
f
"

J'
l
1
..
.'. '
'j
'JI
.,
"I ;1
",'
"
\1
.j',
..

.,
,
,
"1
I
"
,

,11
"II

Intro.duzione
5
I
]
9Di queati aviluppi 5i parla con maggiori dettagli nell'Appendice apPOl3itamente dedicata J
all'architettura della fa:migJia x86.
sto versioni a. 16 bit dei micro Motorola e Zilog. La prima introdusse il dispositivo
,MC68000, la secooda introdusse 10 Z8000. In comune all'8086 avevano il bus dati I
esterno di 16 bit e la possibilita di indirizzate un spazio eli memoria immenso. Biso-
gna dire che 10 Z8000 aveva., almeno sulla carta, caratteristiche architetturali superiori
a11'8086: da un certo punta di vista era una specie di super insieme dello 8086, rna
era possibile evitare Ie complicazioni del madelIa di memoria di quest
l
ultime. Anche I
il 68000 aveva caratteristiche architetturali pili convincenti delP8086: presentava an-
zitutto uno spazio Iineare. e si annunciava pili potente. Tuttavia sia 10 zaooa sia il
68000, si fecero aspettare troppo a lunge dopo I'introduzione dell'8086. n68000 arrivo
suI mercato con quasi due anni d.i ritardo, concedendo all'8086 grande vantaggio. \
Ma fu l'introduzione dell'8088 a cambiare Ie cose. L'8088 era un 8086 rna con bus
esterno a 8 bit. Motorola e Zilog annunciarono Ie versioni a 8 bit (MC68008 e Z8008),
rna. quando 1'IBM castrul il suo PC (Pe.rsonal Computer), sul mercato c'era un unico
miqo a 8 bit capace di almena 1Mbyte di memoria: 1'8088. Quello fu il
punto.di svolta dell'evoluzione del mondo dell'informatica. L'architettur& Intel diven- ]
ne 10 standard eli fatto nel mondo dei PC, la Microsoft stabilile basi per eliventare la
maggior compagnia di software del pianeta
9
.
n 68000 ebbe ottima accoglienza da parte dei costruttori delle c08iddette work- I
station, ovver? sistemi allora molto pill
dei calcolaton per I quah II SIstema operativo UnIX era la norma. n madelIa
di memoria !ineare del 68000 era adeguato per la tecnica di gestione della memoria
virtuale eli Unix. n 68000 aveva inoltre piu potenza dell'8086, ancbe percbe bus da- ,
ti e indirizzi non erano condivisi come Quest'ultimo (l'integrato MC68000 aveva 64 ! I
piedini). Per anni l'architettura Motorola sara 10 standard di fatto delle pili diffuse
workstation.' 'n 68000 e i suoi successori sarebbero stati impiegati da Sun Micro-
systems (it pili accreditato costruttore di questa categoria di macchine), cia HP, da \
Apollo (poi assorbita da HP) da molti altri. l'l 68000 venne pure impiegato nei
McIntosh della Apple. La famiglia 68000 ebbe largo impiego ancbe nel campo indu- I
striale 0 come embedded computer, in quei casi, come nelle stampanti postscript in cui
si richiedevano buone capacita elaborative. La della famiglia MC68000 co- I
minced. a declinare verso la fine degli anm ottanta, Quando i principali costruttori.di
workstation cominciarono a ricorrere 0 a produrre direttamente CPU RISC (Reduced
Instruction Set Computer), corne accennato poco pili avanti.
Lo Z8000 non sfonda nel mercato dell'informatica dei grandi numeri ne trovo \
impiego in ambiente industriale. Venne impiegato nel Commodore
l
un calcolatore
personale venduto essenzialmente come videogioco. In Italia 1'Olivetti usc 10 Z8000
per i1 suo primo PC (denominato M20). L'M20 era una buona macchina, rna non
incontro i favori del grande pubblico e, dopa poco tempo, il costruttore fu costretto a J
riconvertire la sua linea di calcolatori personali
1
passando alIa produzione di macchine
compatibili col PC: 1a torta era tanto ricca che unlesigua fettina Yaleva molto di piu
del totale dominio in aree parallele.
I microprocessori. a 16 bit entrarono in una fase di grande crescita. Apparvero I
componenti di corredo avanzati, come gestori di memoria (MMU, Memory Manage.
ment Unit), unita aritmetiche in virgola mobile (FPU, Floating Point Unit) e control-
-
'-
4 Ca.pitola 1
istruzioni generali, contenute in ROM. Una simile CPU avrebbe trovato impiego non
solo nelle 'calcolatrici rna anche in luogo .dei minicomputer
6
. Nel Novembre del 1971
Intel decise di pubblicare il primo articol0 sull'MCS-4. L'interesse fu subito notevole
e Intel realizzQ un modesto rna promettente guadagno di 8500 Dollari.
Mentre stava lavoranda al 4004, l'Intel aveva avviato un progetto paraUelo che
avrebbe portato al primo microprocessore a 8 bit, 1'8008: U80G8 fu introdotto
neWAprile del 1972} nella forma di un integrato a 18 piedini
7
ed era realizzato in
tecnologia PMOS. Esse aveva. un tempo media di esecuzione delle istruzioni di 301JS.
Fu pero solo con I'introduziooe dell'8080 [Noy81] nell'Aprile del 1974, che 11 mi-
croprocessore venne accreditato dalla comunita scientifica e tecnologica come un dis
positivQ non solo capace di sostituire la logica convenzionale, rna anche in grade di
essere impiegato come un elaboratore di U.80 generale. V8080 venne prodotto in tec-
nologia n-MOS da 6 micron, per un totale d.i 6.000 transistori in un integrato a 40
piedini (DIP). La frequenza del clock poteva raggiungere i 2 MHz consentendo I'esecu-
zione di alcune isttuzioni in 2 jJ.s. Si trattava di un dispositivo con prestazioni tali da
eaaere in breve tempo riconosciuto come 1a macchina a 8 bit per ecceUenza. La rapida
approvazione da parte del mercato e Ie forti richieste' dell'8080, generarono due nuovi
microprocessori concorrenti, il Motorola MC6800 e 10 Zilog Z80
8
. n 6800, introdotto a
meta del 1974, fu it primo microprocessore ad avere un'alimentazione singola di +5V
(La risposta dell'Intel fu 1'8085, evoluzione tecnologica - e minimamente archi.tettu-
tale - dell'8080). Veliminazione di tensioni di alimentazione multiple abbasso il costa
del prodotto e rese il 6800 malta diffuso sul mercato. Lo Z80, realizzato nel 1975,
riHetteva i progressi nell'architettura fatti nei due anni success.ivi aWuscita dell'8080 e
del 6800. La Z80 estate considerato come il punta pili alto raggiunto dall'evoluzione'
delle architetture di questa categoria di maccrune. Esse incorporava il repertorio di ...
istruzioni dell'8080 e quindi aveva piena compatibilita. con i programmi che erano stati
scritti fino a quel tempo per 1'8080.
n primo microprocessore su singolo integrato con bus dati esterno a 16 bit fu
il PACE, introdotto nel 1974 dalla National. Si trattava di un dispositivo MOS a
canale p, con un cido di istruzione di 10 J.Ls, contenuto in un package DIP da 40
piedini. Altri .costruttori produssero i loro microprocessori a 16 bit, corne il 9900 della
Texas Instruments. Purtroppo quesH dispositivi continuavano a indirizzare "sold'
64 kbyte, perche, alPepeca, questa rnisuta era generalmente giudicata al di sopra di
qualunque necessita. pratica.
Fu 1'8086 della Intel, introdotto nel Giugno 1978, con il suo Mbyte di memoria
indirizzabile a far passare alia seconda generazione ill micraprocessori. L'8086 venne
prodotto in tecnologia HMOS da 3 jJ.m, per un totale di 29.000 transistori, in un in-
tegrato a 40 pieelini (DIP). La frequenza del clock era eli 5 MHz, per una capacit1>
elaborativa media di 0,33 MIPS (Milioni di Istruzioni Per Secondo). Seguirono pres-
eUn .grOsso contributo aHa cruzione dell'MeS-4. fu dato anche da Federico Faggin, in seguito
fondatore e presidente della Zilog, it quaJe, approdato aHa Intel nel 1970, rapidamente it
concetto del nuovo dispotlitivo che ili stava sviluppando e ne comincio l'ottlmlzzazione in tecnologia
MOS: in soli 9 mesi produsse campioni dei 4. integrati che sarebbero poi diventati I'MCS-4.
11 piedini erano su due file, costltueodo iI cosiddetto packoge DIP, da Duol Inline Package.
8Naturalmente a Silicon Valley e dintomi non c'era. aolo 1'lntel a studiare queate nuove tecnologie,
praticamentl}! tutti i grandi produttori di diapositivi elettrooici erano impiegati nello aviluppo dei
loro microprocessori, cercando di acrivare sul mercato con il massimo anticipo poosibile rispetto alia
concorrenza.
,.:" ,
,', ." ,".. ...
.
l '
." .

:. [j;
'f
e,
..
j
"
.. ; .
<, '
:
,..,
,
'" i'j

.
.'
,
,.
,.,
l
,I
I

:.:'f
i.' 'I'

.,.
"'1
-I
. .,
:j
':J:'
'

,
''iI
,:'
..,


.""
'a
'r
h
n
l
.. "1
f
"

J'
l
1
..
.'. '
'j
'JI
.,
"I ;1
",'
"
\1
.j',
..

.,
,
,
"1
I
"
,

,11
"II

Intro.duzione
5
I
]
'110
..-

,
7
Introduzione
Caratteristiche alcuni microprocessori
Nome

4004
lntel Prim.' U (1971)
. -B008
Intel Prima CPU. 8 bit (1972)
8080
lotel Prima CPU a 8 bit. canale n (1974)
6800
Motorola Prim. CPU con alimentazione ,ingol. (5V) (1974)
TMS 1000
Texas Instr. II piu venduto microcontrollore a 4 bit (1974)
PACE
National Prima CPU a 16 bit single chip (1974)
1802
RCA Prima CPU in tecnologia CMOS (1974)
8048
Intel Primo microcalcolatore a 8 bit single chip (1976)
8086
Intel Prima CPU a indirizzare oltre 64 kbyte (1978)
8088
Intel Prima CPU a 8 bit con architett. interna a 16 bit (1979)
68020
Motorola Prima CPU integrata con una cache istruzioni (1984)
Z80000
Zilog

CPU integrata con cache dati e istruzioni (1985)
., .80386
Intel CPU integrata can la MMU (1986)
.. 68030 Motorola CPU integrata con cache separate e MMU (1987)
.. 80486 Intel CPU integrata con cache, MMU e FPU (1989)
68040
Motorola CPU con cache, MMU ed FPU (1989) .
'Pentium Intel CPU con architettura superscalare (1993)
,
10Si esclude iI CDC 6600 ehe pure aveva tutte Ie caratteristiche delle maccbine RISe, in quanta,
oltre a essere stato progettato in epoea anteeedente, era una macchina $ui coneepita per
essere un supercomputer.
Tabella 1.1 Vengono riportate Ie caratteristiche eli atcune CPU titolari eli un qualche
primato.
1:lceveranno it davuto apprafondimentoj per il momento vengono forniti alcuni cenni
storid su come si sono sViluppate Ie architetture Rlse. .
.";:" La prima macchina RISCIO venne realizzata in IBM, essenzialmente come proto
. tipo di studio, e venne denominata IBM 801. Era costruita. in logica discreta (logica
EeL, molto veloce) e presentava 32 registri di 32 bit, aveva una cache istruzioni e una
cache dati separate. n prototipo, sviluppato presso il centro di ricerca di Yorktown
Heights (NY), apparve nel 1979. Da questo prototipo IBM traIT" il modello 6150,
immesso suI mercato nel 1986, che tuttavia avra poco successo.
... Gli studi che portarono al modello 801 Cecere da catalizzatore a unJampia atti-
-vita di ricerca: vennero sviluppati due prototipi da due Universita della California,
il rosc I a Berkeley nel 1982 e il MIPS a Stanford nel 1983. Alia fine i risultati di
questi studi vennero convog1iati nella sviluppo delle CPU SPARe (Scalable Processor
Architecture), una famiglia di epu impiegate dalla Sun Microsystem nei propri calco-
latori. Con I'uso delle CPU SPARC, la Sun abbandoni> la linea MC6800. Ancbe dagli
studi che avevano portato at 'prototipo MIPS, nacque una societa, che, per l'appunto,
si chiamo MIPS. Le CPU MIPS vengono oggi impiegate in molte stazioni di lavoro
professionali, tra cui queUe della societa Computer Graphics..
Agli inizi degli anni novanta
J
si formo un consorzio tra IBM, Apple e Motorola
per la progettazione e la produzione di una nuova CPU di tipo RISC. Si trattava di
un accordo che aveva un solo obiettivo: battere sul canipo dell'informatica di basso
costa 10 strapotere dell'architettura Intel. La nuova architettura RISC si chiamo
.'
,. '.
";j
,1
'.

,'"
11
;
"
AI
,
'''l-
I
"I'
,
I
,
il
'I ., :
.,
1
1
.
,

:l!j'
."
'I
.-ott. "
":ir" -.
.
,
+.,.
""t,
.::! ..
II-

"
,.t-
;11
'1
.
" ".
I, ,.
',i,""
,
,'0.
,'"
':11.
)1,
,
,;'i
n

"
il
i,
.
" .
.,' '. . .
., .
111
.11
."
'." .','
.., ,',"
" \1
.:l1
" }Jj
...
.
." .
-."
I I
J 1.1.2 Le architetture RlSC
lori di accesso alia memoria (DMA, Direct Memory Access). n maggior problema the
1
i costruttori si trovarono a fronteggiare non era piu, a questo punta, la liniitazione del
numero di transistori, rna la potenza dissipabile da.! chip. Per limitare tale dissipa-
zione (che superava il watt), molte compagnie progettarono dispositivi in tecnologia
CMOS. .
\
Nel 1984 Motorola introdusse la prima riuscita estensione di I,lD microprocessore
da 16 a 32 bit, l'MC68020, realizzato in tecnologia CMOS da 1.5 p.m e reso disponi\lile
I con frequenze massime di funzionamento di 25 MHz. ndispositivo ayeva sia il bus dati
sia il bus indirizzi a 32 bit e conteneva all'interno una piccola cache istruziom: Era
\
inoltre stato previsto un dispositivo esterno per la gestione della memoria virtuale.
Questa volta Intel arrivQ con un certo ritardo (1985) a introdurre sui mercato la sua
CPU a 32 bit: 1'80386. Successivamente (1987) Motorola presenti> iI 68030, simile al
precedente rna con l'aggiunta di una memoria cache per dati e della MMU. Per qualche
)
tempo serobro che il 68030 riuscisse a contrastare l'espansione dell'a.ntagonista. Ma it
mondo del PC era onnai saldamente in mano a Intel in virtu dell'immenso patrimonio
software ormai esistente. Pure la National mise su1 mercato 1a sua CPU a 32 bit della
famiglia 32000
,
una architettura concepita per il mercato Unix e con l'obiettivo del
mercato dei 32 bit (anche se in prima versione era apparsa can una CPU a 16 bit). Con
I
questa serie la societa. di Santa Clara nusel a collocarsi al terzo posta nelle vendite di
microprocessori a 32 bit, raggiungendo un volume di vendite di 300,000 unita/anno.
Nel 1989 Motorola introdusse il 68040 cbe integrava 1.200.000transistori in un
singolo chip e aveva prestazioni 10 volte superiori al suo predecessore a parila, di clock.
)
L'anno successivo anche Intel presento il suo nuovo processore, 1'80486. Nonostante
l'uscita successiva al 68040
J
il 486 non trovo concorrenti in campo PC. Del resto il
486 aveva prestazioni di riguardo, avendo a bordo, oltre a una non trascurabile cache,
l'unita in virgola mobile. <.
\ All'architettura 68000 restavano in parte Ie applicazioni e il campo delle work-
I station. Ma. ormai, in questo segmento di mercato, stavano entrando Ie architetture.
roSC: la National avrebbe smesso di n a qualcbe anno di produrre la serie 32000.
La Motorola, avrebbe cessato eli sviluppare 1a linea 68000, dedicandosi alio sviluppo
\ dell'arcbitettura PowerPC, in compagnia di Apple e IBM.
I Nel seguito PIntel sviluppa il Pentium e i suoi successori
J
sempre compatibili.
Molti altri produttori di dispositivi elettronici (tra cui AMD) seguirono l'Intel nel
produrre CPU proprietarie, rna compatibili COD 1'architettura x 86.
\
La Tabella 1.1 riporta un elenco di microprocessori titolari di un qualche "prima.
to". Non c'e alcuna pretesa di completezza, come, del resto, non ha questa 1a
storia the abbiamo raccontato.
6 Capitolo 1
\ I microprocessori di cui si eparlato in precedenza sono 0 erano maccbine ClSe (Com-
J plex Instruction Set Computer), ovvero macchine dotate di un repertorio eli istruzioni
molto ampio. Infatti esse sonG state concepite negli anni settanta, quando era in
auge ricorrere aIla microprogrammazione nella realizzazione delPunita di controllo.
1
C'era pero chi, gia negli anni settanta
J
cornincio a studiare soluzioni architetturali che
portaroDo aile cosiddette macchine RISe (Reduced Instruction Set Computer). Pill
avanti nel libro, la discussione e il confronto tra Ie due differenti filosofie di progetto
1
l
il
'110
..-

,
7
Introduzione
Caratteristiche alcuni microprocessori
Nome

4004
lntel Prim.' U (1971)
. -B008
Intel Prima CPU. 8 bit (1972)
8080
lotel Prima CPU a 8 bit. canale n (1974)
6800
Motorola Prim. CPU con alimentazione ,ingol. (5V) (1974)
TMS 1000
Texas Instr. II piu venduto microcontrollore a 4 bit (1974)
PACE
National Prima CPU a 16 bit single chip (1974)
1802
RCA Prima CPU in tecnologia CMOS (1974)
8048
Intel Primo microcalcolatore a 8 bit single chip (1976)
8086
Intel Prima CPU a indirizzare oltre 64 kbyte (1978)
8088
Intel Prima CPU a 8 bit con architett. interna a 16 bit (1979)
68020
Motorola Prima CPU integrata con una cache istruzioni (1984)
Z80000
Zilog

CPU integrata con cache dati e istruzioni (1985)
., .80386
Intel CPU integrata can la MMU (1986)
.. 68030 Motorola CPU integrata con cache separate e MMU (1987)
.. 80486 Intel CPU integrata con cache, MMU e FPU (1989)
68040
Motorola CPU con cache, MMU ed FPU (1989) .
'Pentium Intel CPU con architettura superscalare (1993)
,
10Si esclude iI CDC 6600 ehe pure aveva tutte Ie caratteristiche delle maccbine RISe, in quanta,
oltre a essere stato progettato in epoea anteeedente, era una macchina $ui coneepita per
essere un supercomputer.
Tabella 1.1 Vengono riportate Ie caratteristiche eli atcune CPU titolari eli un qualche
primato.
1:lceveranno it davuto apprafondimentoj per il momento vengono forniti alcuni cenni
storid su come si sono sViluppate Ie architetture Rlse. .
.";:" La prima macchina RISCIO venne realizzata in IBM, essenzialmente come proto
. tipo di studio, e venne denominata IBM 801. Era costruita. in logica discreta (logica
EeL, molto veloce) e presentava 32 registri di 32 bit, aveva una cache istruzioni e una
cache dati separate. n prototipo, sviluppato presso il centro di ricerca di Yorktown
Heights (NY), apparve nel 1979. Da questo prototipo IBM traIT" il modello 6150,
immesso suI mercato nel 1986, che tuttavia avra poco successo.
... Gli studi che portarono al modello 801 Cecere da catalizzatore a unJampia atti-
-vita di ricerca: vennero sviluppati due prototipi da due Universita della California,
il rosc I a Berkeley nel 1982 e il MIPS a Stanford nel 1983. Alia fine i risultati di
questi studi vennero convog1iati nella sviluppo delle CPU SPARe (Scalable Processor
Architecture), una famiglia di epu impiegate dalla Sun Microsystem nei propri calco-
latori. Con I'uso delle CPU SPARC, la Sun abbandoni> la linea MC6800. Ancbe dagli
studi che avevano portato at 'prototipo MIPS, nacque una societa, che, per l'appunto,
si chiamo MIPS. Le CPU MIPS vengono oggi impiegate in molte stazioni di lavoro
professionali, tra cui queUe della societa Computer Graphics..
Agli inizi degli anni novanta
J
si formo un consorzio tra IBM, Apple e Motorola
per la progettazione e la produzione di una nuova CPU di tipo RISC. Si trattava di
un accordo che aveva un solo obiettivo: battere sul canipo dell'informatica di basso
costa 10 strapotere dell'architettura Intel. La nuova architettura RISC si chiamo
.'
,. '.
";j
,1
'.

,'"
11
;
"
AI
,
'''l-
I
"I'
,
I
,
il
'I ., :
.,
1
1
.
,

:l!j'
."
'I
.-ott. "
":ir" -.
.
,
+.,.
""t,
.::! ..
II-

"
,.t-
;11
'1
.
" ".
I, ,.
',i,""
,
,'0.
,'"
':11.
)1,
,
,;'i
n

"
il
i,
.
" .
.,' '. . .
., .
111
.11
."
'." .','
.., ,',"
" \1
.:l1
" }Jj
...
.
." .
-."
I I
J 1.1.2 Le architetture RlSC
lori di accesso alia memoria (DMA, Direct Memory Access). n maggior problema the
1
i costruttori si trovarono a fronteggiare non era piu, a questo punta, la liniitazione del
numero di transistori, rna la potenza dissipabile da.! chip. Per limitare tale dissipa-
zione (che superava il watt), molte compagnie progettarono dispositivi in tecnologia
CMOS. .
\
Nel 1984 Motorola introdusse la prima riuscita estensione di I,lD microprocessore
da 16 a 32 bit, l'MC68020, realizzato in tecnologia CMOS da 1.5 p.m e reso disponi\lile
I con frequenze massime di funzionamento di 25 MHz. ndispositivo ayeva sia il bus dati
sia il bus indirizzi a 32 bit e conteneva all'interno una piccola cache istruziom: Era
\
inoltre stato previsto un dispositivo esterno per la gestione della memoria virtuale.
Questa volta Intel arrivQ con un certo ritardo (1985) a introdurre sui mercato la sua
CPU a 32 bit: 1'80386. Successivamente (1987) Motorola presenti> iI 68030, simile al
precedente rna con l'aggiunta di una memoria cache per dati e della MMU. Per qualche
)
tempo serobro che il 68030 riuscisse a contrastare l'espansione dell'a.ntagonista. Ma it
mondo del PC era onnai saldamente in mano a Intel in virtu dell'immenso patrimonio
software ormai esistente. Pure la National mise su1 mercato 1a sua CPU a 32 bit della
famiglia 32000
,
una architettura concepita per il mercato Unix e con l'obiettivo del
mercato dei 32 bit (anche se in prima versione era apparsa can una CPU a 16 bit). Con
I
questa serie la societa. di Santa Clara nusel a collocarsi al terzo posta nelle vendite di
microprocessori a 32 bit, raggiungendo un volume di vendite di 300,000 unita/anno.
Nel 1989 Motorola introdusse il 68040 cbe integrava 1.200.000transistori in un
singolo chip e aveva prestazioni 10 volte superiori al suo predecessore a parila, di clock.
)
L'anno successivo anche Intel presento il suo nuovo processore, 1'80486. Nonostante
l'uscita successiva al 68040
J
il 486 non trovo concorrenti in campo PC. Del resto il
486 aveva prestazioni di riguardo, avendo a bordo, oltre a una non trascurabile cache,
l'unita in virgola mobile. <.
\ All'architettura 68000 restavano in parte Ie applicazioni e il campo delle work-
I station. Ma. ormai, in questo segmento di mercato, stavano entrando Ie architetture.
roSC: la National avrebbe smesso di n a qualcbe anno di produrre la serie 32000.
La Motorola, avrebbe cessato eli sviluppare 1a linea 68000, dedicandosi alio sviluppo
\ dell'arcbitettura PowerPC, in compagnia di Apple e IBM.
I Nel seguito PIntel sviluppa il Pentium e i suoi successori
J
sempre compatibili.
Molti altri produttori di dispositivi elettronici (tra cui AMD) seguirono l'Intel nel
produrre CPU proprietarie, rna compatibili COD 1'architettura x 86.
\
La Tabella 1.1 riporta un elenco di microprocessori titolari di un qualche "prima.
to". Non c'e alcuna pretesa di completezza, come, del resto, non ha questa 1a
storia the abbiamo raccontato.
6 Capitolo 1
\ I microprocessori di cui si eparlato in precedenza sono 0 erano maccbine ClSe (Com-
J plex Instruction Set Computer), ovvero macchine dotate di un repertorio eli istruzioni
molto ampio. Infatti esse sonG state concepite negli anni settanta, quando era in
auge ricorrere aIla microprogrammazione nella realizzazione delPunita di controllo.
1
C'era pero chi, gia negli anni settanta
J
cornincio a studiare soluzioni architetturali che
portaroDo aile cosiddette macchine RISe (Reduced Instruction Set Computer). Pill
avanti nel libro, la discussione e il confronto tra Ie due differenti filosofie di progetto
1
l
il
]
12Nel seguito la numerazione in base 8 Don viene piu considerata, anche perche ormai si fa )
praticamente usa solo della numerazione in base 16.
8 Capitola 1
PowerPG. Sulla carta dimostrava di possedere quanta di meglio si potesse mettere
. assieme come idee e come realizzazione all'epoca in cui venne progettata. Nonostante
ciD il PowerPC non eriuscito a contrastare la presenza Intel nel campo delle macchine
della categoria PC. Questa architettura viene correntemente impiegata da Apple nei
McIntosh e viene irnpiegata dall'IBM nelle stazioni di lavoro tecnico scientiche e
come sostitutiva di una precedente CPU in una linea di calco1atori di fascia intermedia
denominata AS/ 400.
1.2 Rappresentazione dell'informazione
La parte che segue contiene alcuni richiami Bulla rappresentazione dell'informazione.
Vengono esposti solo poehi concetti di base, ritenuti funzionali agli obiettivi di questo
libra. SuUa rappresentazione dell'informazione, l'aritmetica intera e in virgola mobile
esiste un'ampia letteratura, sia di carattere generale [CPS93], [HP93], [HVZ84! sia
specialistico [Orno94), pertanto la discussione che segue procede in modo intuitivo e
alquanto sbrigativo.
1.2.1 Sistemi di numerazione
Numero e un concetto matematico astratto per 1a descrizione quantitativa degli og-
getti cantenuti in un dato insieme. Un sistema di nurnerazione eun insieme di
e regale atti a rappresentare i numeri. Le due principali categorie di sistemi di nu-
merazione sono la posizionale e l'additiva (quella llsata dagli antichi Romani). Alta
prima categoria appartiene il consueto sistema di numerazione decimale
ll
:
Prendiamo il numero 1475. Esso viene interpretato come:
1475 = 1 x 10' +4 X 10' +7 X 10
1
+ 5 x 10
Come si vede, ogoi cifra che compare in 1475 ..,sume un valore che dipende daila
posizione (peso) nella stringa "1475". 11 sistema di numerazione decimale si basa su
10 simbali (cifre) diversi {0),2,.. ,9}. I Dumeri si rappresentano scrivendo sequenze
di cifre diverse.
In generale, sia dato un numero B > 2, detto base, e I'insieme fj composto da B
simboli diversi: 13 = {O,1,2, ... ,E - I}; la stringa di n crne:
b
n
-
1
b
n
_
2
. , . b1bo
can b
i
E fJ si interpreta come:
b
n
_
1
x B
n
-
I
+ b
n
_
2
x B
n
-
2
+ ... +b
I
X B
I
+ b
o
x EO
Consideriamo ora i casi di B uguale, rispettivamente, a 8, 16 e 2,
llLa ragione per cui l'uomo ccnta in base died deriva sicuramente dal riurnero di dita delle nostre
manL Si sa di popolazioni che Cantavano in base 5, I Maya avevano un sistema di numerazi.one
vigesimale. .
....
.':OW' ', .
...

:,4 :
.
.ii.
jl'
.: ; .
.}
.,


.
1
tr
i
1
"\1
':.'
...;
... :1
... ')
.,.,
.'
, "
.
,
" ..
,
:'\1' '
"4 ..
.';,
,

..""' .
it


.

..
'r" 0.']

"
.....
,X;::I
,-,'
'1' ',,:'j ,
"
,,,
;ij \

,.
Ji
,

,.J

, .'




,
.:,p.,
;-.,;
;,;1
,,11
:.it
:,,j
,

.\0;
JI
.. ":1'
:"
,.;,1'

"",,
"
-Ill'
.:,!

:11'
..
,
.
',.,.
"

.' "d '.
...."
..,-,
lntroduzione 9
Can B = 8 (sistema ottale) l'insieme dei simboli diversi e{3 = {0,1,2, .. ,7}. Se, a
esempio consideriarno la stringa 417, essa corrisponde al numero:
417 = 4 X8' + 1 X 8
1
+7 x 8 = 4 x 64 + 1 x 8 +7 x 1 = 271
Llapparente incongruenza cial fatto che normalmente, quando si vede un nume-
roo scritto, se ne da. decimale. Per evitare equivoci
l
l'uguaglianza
andrebbe scritta come:
417
s
= 271
10
nconcetto'di numero epuramente astratto, 417 e 271 sono 1a rappresentazione
dello stesso numero" in due diverse basi di numerazione. Per questo motivo, stringhe
di cifre come 417 e 271, di base imprecisarta, si dicono "numerali".
Can B = 16 (sistema esadecimale), per costruire un insieme di 16 simboli si pren-
dono a prestito Ie prime 61ettere dell'alfabeto, per cui {3 = {0,1,2, .. ,9,A,B,C,D,E,F} .
La stringa 22, interpretata in base 16, corrisponde a numero
2 x 16
1
+ 2 x16 = 34
Can B = 2 (sistema binarin) si hanna solo due simboli diversi: 0 eLLa stringa
10011, corrisponde al numero
."
1 x 2' +0 X 2' +0 X 2' +1 X 2
1
+1 x 2 = 1 x 16 +0 x 8 +Ox 4 +1 x 2 +1 x 1 = 19
10
In Tabella 1.2 vengono riportati i prirni 17 numeri interi nelle 4 rappresentazioni
. appena viste. La numerazione in base 2 eimportante perche nei calco1atori elettronici
l'informazione erappresentata solo attraverso due simboli {O, I}. Le numerazioni in
base 16 e in base 8 perche 1a trasformazione tra queste basi e 1a base.2 (e
viceversa) eimmediata
12
.
lfase 2
8, Base 16
-"ase 10
1 .i;ase 10
Base 2 B.... B
Base 16
0 O.
0 0 9 1001
11
9
1
1 1
1
. 10
1010 12
A
2
10 2 2
II 1011 13
B
3 11
3 3 12 1100
14
C
4 100 4
4 13 1101
15
D
5 101
5 5 14 1110
16
E
6 110
6 6 15 1111
17
F
7
111 7
7 16 10000 20
10
B 1000 10
B 17 10001 21
11
,
Tabella 1.2 I primi ]8 numeri nelle basi 10
1
2, 8 e 16,
I
I
J
I
,
"
I
\
(
\
I
I
J
J
]
12Nel seguito la numerazione in base 8 Don viene piu considerata, anche perche ormai si fa )
praticamente usa solo della numerazione in base 16.
8 Capitola 1
PowerPG. Sulla carta dimostrava di possedere quanta di meglio si potesse mettere
. assieme come idee e come realizzazione all'epoca in cui venne progettata. Nonostante
ciD il PowerPC non eriuscito a contrastare la presenza Intel nel campo delle macchine
della categoria PC. Questa architettura viene correntemente impiegata da Apple nei
McIntosh e viene irnpiegata dall'IBM nelle stazioni di lavoro tecnico scientiche e
come sostitutiva di una precedente CPU in una linea di calco1atori di fascia intermedia
denominata AS/ 400.
1.2 Rappresentazione dell'informazione
La parte che segue contiene alcuni richiami Bulla rappresentazione dell'informazione.
Vengono esposti solo poehi concetti di base, ritenuti funzionali agli obiettivi di questo
libra. SuUa rappresentazione dell'informazione, l'aritmetica intera e in virgola mobile
esiste un'ampia letteratura, sia di carattere generale [CPS93], [HP93], [HVZ84! sia
specialistico [Orno94), pertanto la discussione che segue procede in modo intuitivo e
alquanto sbrigativo.
1.2.1 Sistemi di numerazione
Numero e un concetto matematico astratto per 1a descrizione quantitativa degli og-
getti cantenuti in un dato insieme. Un sistema di nurnerazione eun insieme di
e regale atti a rappresentare i numeri. Le due principali categorie di sistemi di nu-
merazione sono la posizionale e l'additiva (quella llsata dagli antichi Romani). Alta
prima categoria appartiene il consueto sistema di numerazione decimale
ll
:
Prendiamo il numero 1475. Esso viene interpretato come:
1475 = 1 x 10' +4 X 10' +7 X 10
1
+ 5 x 10
Come si vede, ogoi cifra che compare in 1475 ..,sume un valore che dipende daila
posizione (peso) nella stringa "1475". 11 sistema di numerazione decimale si basa su
10 simbali (cifre) diversi {0),2,.. ,9}. I Dumeri si rappresentano scrivendo sequenze
di cifre diverse.
In generale, sia dato un numero B > 2, detto base, e I'insieme fj composto da B
simboli diversi: 13 = {O,1,2, ... ,E - I}; la stringa di n crne:
b
n
-
1
b
n
_
2
. , . b1bo
can b
i
E fJ si interpreta come:
b
n
_
1
x B
n
-
I
+ b
n
_
2
x B
n
-
2
+ ... +b
I
X B
I
+ b
o
x EO
Consideriamo ora i casi di B uguale, rispettivamente, a 8, 16 e 2,
llLa ragione per cui l'uomo ccnta in base died deriva sicuramente dal riurnero di dita delle nostre
manL Si sa di popolazioni che Cantavano in base 5, I Maya avevano un sistema di numerazi.one
vigesimale. .
....
.':OW' ', .
...

:,4 :
.
.ii.
jl'
.: ; .
.}
.,


.
1
tr
i
1
"\1
':.'
...;
... :1
... ')
.,.,
.'
, "
.
,
" ..
,
:'\1' '

"4 ..
.';,
,

..""' .
it


.

..
'r"
0.']

"
.....
,X;::I
,-,'
'1'
',,:'j ,
"
,,,
;ij \

,.
Ji
,

,.J

, .'




,
.:,p.,
;-.,;
;,;1
,,11
:.it
:,,j
,

.\0;
JI
.. ":1'
:"
,.;,1'

"",,
"
-Ill'
.:,!

:11'
..
,
.
',.,.
"

.'
"d '.
...."
..,-,
lntroduzione 9
Can B = 8 (sistema ottale) l'insieme dei simboli diversi e{3 = {0,1,2, .. ,7}. Se, a
esempio consideriarno la stringa 417, essa corrisponde al numero:
417 = 4 X8' + 1 X 8
1
+7 x 8 = 4 x 64 + 1 x 8 +7 x 1 = 271
Llapparente incongruenza cial fatto che normalmente, quando si vede un nume-
roo scritto, se ne da. decimale. Per evitare equivoci
l
l'uguaglianza
andrebbe scritta come:
417
s
= 271
10
nconcetto'di numero epuramente astratto, 417 e 271 sono 1a rappresentazione
dello stesso numero" in due diverse basi di numerazione. Per questo motivo, stringhe
di cifre come 417 e 271, di base imprecisarta, si dicono "numerali".
Can B = 16 (sistema esadecimale), per costruire un insieme di 16 simboli si pren-
dono a prestito Ie prime 61ettere dell'alfabeto, per cui {3 = {0,1,2, .. ,9,A,B,C,D,E,F} .
La stringa 22
,
interpretata in base 16, corrisponde a numero
2 x 16
1
+ 2 x16 = 34
Can B = 2 (sistema binarin) si hanna solo due simboli diversi: 0 eLLa stringa
10011, corrisponde al numero
."
1 x 2' +0 X 2' +0 X 2' +1 X 2
1
+1 x 2 = 1 x 16 +0 x 8 +Ox 4 +1 x 2 +1 x 1 = 19
10
In Tabella 1.2 vengono riportati i prirni 17 numeri interi nelle 4 rappresentazioni
. appena viste. La numerazione in base 2 eimportante perche nei calco1atori elettronici
l'informazione erappresentata solo attraverso due simboli {O, I}. Le numerazioni in
base 16 e in base 8 perche 1a trasformazione tra queste basi e 1a base.2 (e
viceversa) eimmediata
12
.
lfase 2
8, Base 16
-"ase 10
1 .i;ase 10
Base 2
B.... B
Base 16
0 O.
0
0
9
1001
11
9
1
1 1
1
. 10
1010
12
A
2
10 2
2
II
1011
13
B
3
11
3
3 12
1100
14
C
4
100
4
4
13
1101
15
D
5 101
5
5
14
1110
16
E
6
110
6
6
15
1111
17
F
7
111
7
7
16
10000
20
10
B
1000
10
B
17
10001
21
11
,
Tabella 1.2 I primi ]8 numeri nelle basi 10
1
2, 8 e 16,
I
I
J
I
,
"
I
\
(
\
I
I
J
J
"
',,!
11
lntroduzione
1100,1011 +
110 1110
1 0011 1001
0 1
10110 x
nHE
101
10110
00000
,
10110
-
1101110
o 1
o iI[Tl

1.2,3 Aritmetica binaria
,
,'
B = b
n
_
1
b
n
_
2
..... b1b
o
Tabella 1.4 Tabellina del pcodotto. It prodotto tra due uUIneri in base 2 viene calcolato
col medesimo procedimento seguito in aritmetica decima.le.
con b
i
E {OIl}. Tale vettore rappresenta 2
n
numeri diversi, per esempio i 2n interi
positivi compresi tra 0 e 2
n
- 1. Occarre stabilire una qualche convenzione per rap-
presentare i numeri negativi. Di norma se il bit pili a sinistra e 1, aHora il numero
viene interpretato come negativo. Sono possibiti tee convenzioni:
1.2.4 Numeri negativi
Consideriamo un vettore di n eifre binarie
Tabella 1.3 Tabellina. della somma. aritmetica ed esempio di somma tra. due numeri in ari-
tmetica binaria. Nella tabellina Ie due cifre 10 nell'angolo in basso a destra indicano che la
somma di 1 can 1 da riporto.
Costruire un'aritmetica binaria ricbiede che vengano scalati sulFinsieme {OIl} i fami-
liari concetti dell'aritmetica decimale. In particolare si possono costruire Ie tabelline
delle varie operaziani aritmetiche per rappresentazione binaria. In Tabella 1.3 viene
riportata la tabellina della somma e un esempio di di due numerj. La som-
ma viene eseguita esattamente come nel sistema decimale, partendo cia destra verso
sinistral tenendo canto dei riporti.
Ovviamente ailo stesso modo si potrebbero riportare Ie tabelline delle altre ope-
razloni. In Tabella 1.4 viene riportata 1a tabellina del prodotto. In questa caso il
. prodotto tra pili numeri e un proceaso che richiede il calcolo dei prodotti parziali e
l'esecuzione della loro somma. Per approfondimenti sull'argomento si rimanda alia
letteratura meozionata.
,

"" >..
"
, '

,
.
'.' ".
-
"?
,
"
;'.f

'.

" ..
",

"
,
,
:,
..
,
.;,
;'i::1. ,,"
;1
,
':- iI.
';;
<;
II'
I

,,'.
,u
'::l '. ,.

):1
,
,
"
1
"'t '
'"
'J!
-:?I .
! J
.'\: ",
, c' ': .
" 'j "
.i " ....
. '
" ',' ",
, ,
J.j
..J
<,

,-
..
,
(
.. "
';:i:
, ,
. ;.
=
10 Capitolo 1
Esaminiamo per prima cosa la conversione cia base Bk a base B e viceversa. In
particolare interessa 1a conversione tra esadecimale e binario.
Si consideri il numero binario 010111000011. Si raggruppino a partire da destra
Ie cifre binarie a quattro a quattro (0101 1100 0011) e sl sostituisea eiaseun gruppo

con la corrispondente cifra esadecimale (Tabella 1.2), 51 ottiene la stringa 5C3, E


facile convincersi che questa ela rappresentazione esadecimale del numero binario di
panenz3. Ovviamente it processo puo essere applicato anche in modo opposto, per 1a
conversione da binario a esadecimalej per esempio:
1.2.2 Conversione di base
IJLB07
"
=00011100110100000111
2
Formalmente quest.a proprieta si dimostra Del modo seguente. Sia data.la stringa:
bn - 1bn _2 ... b1bo in base Bot I cui corrisponrle il numero ,
bn_1(B')"-1 + b
n
_,(B')n-21 +'" + b,(B')' + bo(B')O (1.1)
dove ogni bi epresQ da {O,l,... lEI:. - I} ed erappresentato in base B come
b' k-1b k-2 '" b 0= b' '_lB'-l + b' ,_,B'-2 +" ,+ b oB
o
\, \, ',', " 1,
dove ogni bi,; e presQ da {DIl"" ,B - I}. Sostituendo in 1.1 a cia.scun b
i
la sua
rappresentazione in base B, si ha
[bn_1,'_lB'-1 + bn_1,k_2B'-2 + ' " + bn_1,oBO](B')n-1 +
(bn_2,k_1B'-1 + bn_2,'_2B'-2 + ' , "+ b
n
_
2
,oB
O
)(B')n-' +
[bo,'_lB'-l + bo,'_2B'-2 +'" ,+ bo,oBO](B')O =
,
b B
kn-I b B
kn
- 2
n-I,k-I + n-l,k-2 . + ... +
bO,k_1B'-1 + bO,'_2Bk-2 +, , , + bo,oBo)(B')O
che corrisponde alia stringa bn-t,k-lbn-l,k_2 ... b
n
-
I
,ob
n
-
2
,k-2 ... bo,o
La conversione da binario a decimale si effettua come calcolo del polinomio di
potenze del 2, Esempio:
1001101 = I, 2' +0, 2' +0, 2' + I, 2' + I, 2
2
+0, 2
'
+I, 2 =64 +8 + 4 + 1 =77
10
La conversione a binario del numero decimale N richiede che si trovi la stringa
di n cme binarie b
n
-
t
b
n
_
2
... btb
o
con b
i
= 0,1, tale per cui
N ::;;: b
n
-
1
x 2
n
-
1
+ b
n
_
2
x 2
n
-
2
+ ... + b
l
X 2
1
+b
o
x 20
Se si divide it polinomio per 2 si ottiene bo come resta e b
n
_
1
x 2
n
-
2
+b
n
_
2
x 2n-3 +
+ ... +b1 come Quoziente. Dividendo il Quoziente per 2 si ottiene b
l
come resta e
bn _ 1 x 2
n
-
3
+ bn - 2 x 2
n
-
4
+ ... + b
2
. Si itera il procedirnento fino a cite l'ultimo
quoziente attenuto non epiu divisibile. A Quel punta 1a rappresentazione binaria si
ottiene scrivendo da sinistra verso destra i resti in oedine inverso a come sono stati
peodotti. Consideriamo per esempio il numero 35. La serie successiva di quozienti
e resti ottenuti dividendo per 2 e: (17,1), (8,1), (4,0), (2,0), (1,0) (0,1); dunque la
rappresentazione binaria del nurnero 35 (decimate) e: 100011.
\
)
I
)
\
I
I
I
\
)
I
\
I
I
1
, 1
, I
,
1
",
"'""
'M ' '

"
',,!
11
lntroduzione
1100,1011 +
110 1110
1 0011 1001
0 1
10110 x
nHE
101
10110
00000
,
10110
-
1101110
o 1
o iI[Tl

1.2,3 Aritmetica binaria
,
,'
B = b
n
_
1
b
n
_
2
..... b1b
o
Tabella 1.4 Tabellina del pcodotto. It prodotto tra due uUIneri in base 2 viene calcolato
col medesimo procedimento seguito in aritmetica decima.le.
con b
i
E {OIl}. Tale vettore rappresenta 2
n
numeri diversi, per esempio i 2n interi
positivi compresi tra 0 e 2
n
- 1. Occarre stabilire una qualche convenzione per rap-
presentare i numeri negativi. Di norma se il bit pili a sinistra e 1, aHora il numero
viene interpretato come negativo. Sono possibiti tee convenzioni:
1.2.4 Numeri negativi
Consideriamo un vettore di n eifre binarie
Tabella 1.3 Tabellina. della somma. aritmetica ed esempio di somma tra. due numeri in ari-
tmetica binaria. Nella tabellina Ie due cifre 10 nell'angolo in basso a destra indicano che la
somma di 1 can 1 da riporto.
Costruire un'aritmetica binaria ricbiede che vengano scalati sulFinsieme {OIl} i fami-
liari concetti dell'aritmetica decimale. In particolare si possono costruire Ie tabelline
delle varie operaziani aritmetiche per rappresentazione binaria. In Tabella 1.3 viene
riportata la tabellina della somma e un esempio di di due numerj. La som-
ma viene eseguita esattamente come nel sistema decimale, partendo cia destra verso
sinistral tenendo canto dei riporti.
Ovviamente ailo stesso modo si potrebbero riportare Ie tabelline delle altre ope-
razloni. In Tabella 1.4 viene riportata 1a tabellina del prodotto. In questa caso il
. prodotto tra pili numeri e un proceaso che richiede il calcolo dei prodotti parziali e
l'esecuzione della loro somma. Per approfondimenti sull'argomento si rimanda alia
letteratura meozionata.
,

"" >..
"
, '

,
.
'.' ".
-
"?
,
"
;'.f

'.

" ..
",

"
,
,
:,
..
,
.;,
;'i::1. ,,"
;1
,
':- iI.
';;
<;
II'
I

,,'.
,u
'::l '. ,.

):1
,
,
"
1
"'t '
'"
'J!
-:?I .
! J
.'\: ",
, c' ': .
" 'j "
.i " ....
. '
" ',' ",
, ,
J.j
..J
<,

,-
..
,
(
.. "
';:i:
, ,
. ;.
=
10 Capitolo 1
Esaminiamo per prima cosa la conversione cia base Bk a base B e viceversa. In
particolare interessa 1a conversione tra esadecimale e binario.
Si consideri il numero binario 010111000011. Si raggruppino a partire da destra
Ie cifre binarie a quattro a quattro (0101 1100 0011) e sl sostituisea eiaseun gruppo

con la corrispondente cifra esadecimale (Tabella 1.2), 51 ottiene la stringa 5C3, E


facile convincersi che questa ela rappresentazione esadecimale del numero binario di
panenz3. Ovviamente it processo puo essere applicato anche in modo opposto, per 1a
conversione da binario a esadecimalej per esempio:
1.2.2 Conversione di base
IJLB07
"
=00011100110100000111
2
Formalmente quest.a proprieta si dimostra Del modo seguente. Sia data.la stringa:
bn - 1bn _2 ... b1bo in base Bot I cui corrisponrle il numero ,
bn_1(B')"-1 + b
n
_,(B')n-21 +'" + b,(B')' + bo(B')O (1.1)
dove ogni bi epresQ da {O,l,... lEI:. - I} ed erappresentato in base B come
b' k-1b k-2 '" b 0= b' '_lB'-l + b' ,_,B'-2 +" ,+ b oB
o
\, \, ',', " 1,
dove ogni bi,; e presQ da {DIl"" ,B - I}. Sostituendo in 1.1 a cia.scun b
i
la sua
rappresentazione in base B, si ha
[bn_1,'_lB'-1 + bn_1,k_2B'-2 + ' " + bn_1,oBO](B')n-1 +
(bn_2,k_1B'-1 + bn_2,'_2B'-2 + ' , "+ b
n
_
2
,oB
O
)(B')n-' +
[bo,'_lB'-l + bo,'_2B'-2 +'" ,+ bo,oBO](B')O =
,
b B
kn-I b B
kn
- 2
n-I,k-I + n-l,k-2 . + ... +
bO,k_1B'-1 + bO,'_2Bk-2 +, , , + bo,oBo)(B')O
che corrisponde alia stringa bn-t,k-lbn-l,k_2 ... b
n
-
I
,ob
n
-
2
,k-2 ... bo,o
La conversione da binario a decimale si effettua come calcolo del polinomio di
potenze del 2, Esempio:
1001101 = I, 2' +0, 2' +0, 2' + I, 2' + I, 2
2
+0, 2
'
+I, 2 =64 +8 + 4 + 1 =77
10
La conversione a binario del numero decimale N richiede che si trovi la stringa
di n cme binarie b
n
-
t
b
n
_
2
... btb
o
con b
i
= 0,1, tale per cui
N ::;;: b
n
-
1
x 2
n
-
1
+ b
n
_
2
x 2
n
-
2
+ ... + b
l
X 2
1
+b
o
x 20
Se si divide it polinomio per 2 si ottiene bo come resta e b
n
_
1
x 2
n
-
2
+b
n
_
2
x 2n-3 +
+ ... +b1 come Quoziente. Dividendo il Quoziente per 2 si ottiene b
l
come resta e
bn _ 1 x 2
n
-
3
+ bn - 2 x 2
n
-
4
+ ... + b
2
. Si itera il procedirnento fino a cite l'ultimo
quoziente attenuto non epiu divisibile. A Quel punta 1a rappresentazione binaria si
ottiene scrivendo da sinistra verso destra i resti in oedine inverso a come sono stati
peodotti. Consideriamo per esempio il numero 35. La serie successiva di quozienti
e resti ottenuti dividendo per 2 e: (17,1), (8,1), (4,0), (2,0), (1,0) (0,1); dunque la
rappresentazione binaria del nurnero 35 (decimate) e: 100011.
\
)
I
)
\
I
I
I
\
)
I
\
I
I
1
, 1
, I
,
1
",
"'""
'M ' '

12 Capitolo 1
)
]
,
I
)

I
\
l
J
,
I
I

I
I
I
I
I
13
Introduzione
Si ba dunque (0,78125ho = (0,11001),
.
... , Esempio 2 Si voglia convertire in forma binaria it numero decimale 0,78125.
.. 0,78125 x 2 = 1,5625 -> 1
0,5625 x 2 = 1,125 -> 1
0,125 x2 = 0,250 .... 0
0,25 x 2 = 0,5 -> 0
0,5x2=1,0 ->1
Osservando che b_1 ela parte intera del prodotto
Per i,numeri interi si assume che la virgola sia posizionata all'estrema destra. In modo
del tutto analogo per i numeri frazionari iI punto binario viene considerate all'estrema
sinistra. Per cui un generico numero N sara formate da una parte iDtera e da una
parte frazionaria separate tra loro cia! punto e interpretate illustrato. Quando il punto
separa la parte intera dalla parte frazionaria si parla di notazione in virgoJa ji3sa.
. .
F'requentemente, e, in modo particolare nei problemi di calcolo tecnico e scientifico,
si ricorre a rappresentazioni normalizzate di cbe hanno 10 scopo di sollevare
l'utilizzatore dai pr6blemi conriessi con i1 contrallo della posizione della virgola e con
,
Paumento del numero di dire a seguito delle operazioni aritmetiche che via vengono
eseguite.
Nel calcoto numerico i dati vengono di solito espressi Come prodQtto di due fattori,
il primo dei quali comprende Ie cifre significative del numero da rappresentare mentre
i1 secondo, e una potenza del 10, il cui esponente definisce la posizione della virgola
nel numero.
1.2.6 Numeri in virgola mobile

.;,. Xb41oi ... a"


. ...1 2 3 /\ ,YIY2Y3 . .. Yk
dove bela base del sistema di numerazione, X1X2X3. _. Xh, Y1Yz1!3 . -11k e G1
a
2 . .. an,
sono cifre della stesso sistema.
II numero X1X2X3 Xh,Y1Y2Y3 ... 11k vieoe chiamato mantissa, mentre il numero
a1
a
2. an viene chiamato esponente 0 caratteristica.
EsemDio 1
nnumero 127000000 puo essere scritto nella forma 127x 10
6) mentre il nume-
- 1'00,0000015 puo essere scritto come 15xlO-
7
. Tale convenzione non elegata
. notazione decimaIe, e puo essere estesa agli altri sistemi di numerazione.
In generale si puo dire che un dato numerico qualsiasi ammette una rappreseotazione
approssimata corne la seguente:
2X F = L, +L, X 2+.. L
m
X T(m-l)
si deduce che la: ricerca dei coefficienti b
i
richiede un processo di successive
- cazioni della parte frazionaria con estrazione 'della parte intera. n processo termina
quando la parte frazionaria risulta 0 (oppure non termina se il OUIDero eperiodical.
'-
..
",
.,;"
IJ!
";,
...
'.
."l
.,
."
,
.' ,11,
7"

,

,;.!

::'
,,,..
.",.;. ,.
'oJ..'."'{"'.' -
.. ..
c' J ; '.'
'.V '... ,..y-.,
i )' ,
,
n',
'.'.'.
-tt
:::1"
I" t .

;\'",
"':1
, '11,
.. '

','11

.,
.

,',,,
..
'.... '
'
...
'J.!'
,
" i'''I.

1_\
,'-:; I
,,< 'I
"J "

.'..,
j'I' .
. ',.
'"'..
-
1_

"

'lll,..
.. .'
, I , '

. 11 _
..

l
...
"

;.'a.
(30)
(-22)
(8)
numero dato (16, = 22.)
complemento a. 1
complemento a 2
+
00011110
11101010
00001000
00010110
11101001
11101010
La differenza a - b si ottieoe sommando:
Complemento a 1. .n camhiamento di aegno viene ottenuto complementando
ciascun bit del corrispondente valore positivo.
Complemento a 2. n cambiamento di segno viene ottenuto complementando ale
aggiungendo 1. Con n bit a disposizione si hanno numeri positivi (compreso 10 zero)
cia 0 a 2
11
-
1
- 1 e numeri negativi da -1 a _2
n
-
1
. Per esempio, con 8 bit i numeri
positivi vanna da 0 a. 127, i negativi da -1 a -128.
La soluzione in complemento a 2 equella normalmente adottata e la sottrazione
del nUIDero b da a viene eseguita come somma di a col complemento a 2 di b. Ad
esempio, 'i prenda a = 00011110(= IE" = 30
10
) e b = 00010110(= 16
16
= 22
10
), n
complemento a 2 di b si ottiene
-
F = L1L, L
m
Modulo e Segno. In questo si passa da valore positivo a negativD
mente cambiando da 0 a 1 it bit piu significativo.
L,B-
1
+ +LmB-
m
Esempio 1
n numero binario .101 corrisponde a1 numero decimale:
1 .2-
1
+ 0 . r' + 1 . 2-
3
= + = 0,5 + 0,125 = 0,625
Fino a questa punto abbiamo considerato solo numeri interi. La stringa:
,b_
1
b_
2
... b_
m
1.2.5 Numeri frazionari
si interpreta come:

La conversione da decimale a binario si ottiene con questo ragionamento: dato


il numero frazionario F in base 10, si tratta di trovare la stringa b-
1
b-
2
... b_
m
tale
per CUll
12 Capitolo 1
)
]
,
I
)

I
\
l
J
,
I
I

I
I
I
I
I
13
Introduzione
Si ba dunque (0,78125ho = (0,11001),
.
... , Esempio 2 Si voglia convertire in forma binaria it numero decimale 0,78125.
.. 0,78125 x 2 = 1,5625 -> 1
0,5625 x 2 = 1,125 -> 1
0,125 x2 = 0,250 .... 0
0,25 x 2 = 0,5 -> 0
0,5x2=1,0 ->1
Osservando che b_1 ela parte intera del prodotto
Per i,numeri interi si assume che la virgola sia posizionata all'estrema destra. In modo
del tutto analogo per i numeri frazionari iI punto binario viene considerate all'estrema
sinistra. Per cui un generico numero N sara formate da una parte iDtera e da una
parte frazionaria separate tra loro cia! punto e interpretate illustrato. Quando il punto
separa la parte intera dalla parte frazionaria si parla di notazione in virgoJa ji3sa.
. .
F'requentemente, e, in modo particolare nei problemi di calcolo tecnico e scientifico,
si ricorre a rappresentazioni normalizzate di cbe hanno 10 scopo di sollevare
l'utilizzatore dai pr6blemi conriessi con i1 contrallo della posizione della virgola e con
,
Paumento del numero di dire a seguito delle operazioni aritmetiche che via vengono
eseguite.
Nel calcoto numerico i dati vengono di solito espressi Come prodQtto di due fattori,
il primo dei quali comprende Ie cifre significative del numero da rappresentare mentre
i1 secondo, e una potenza del 10, il cui esponente definisce la posizione della virgola
nel numero.
1.2.6 Numeri in virgola mobile

.;,. Xb41oi ... a"


. ...1 2 3 /\ ,YIY2Y3 . .. Yk
dove bela base del sistema di numerazione, X1X2X3. _. Xh, Y1Yz1!3 . -11k e G1
a
2 . .. an,
sono cifre della stesso sistema.
II numero X1X2X3 Xh,Y1Y2Y3 ... 11k vieoe chiamato mantissa, mentre il numero
a1
a
2. an viene chiamato esponente 0 caratteristica.
EsemDio 1
nnumero 127000000 puo essere scritto nella forma 127x 10
6
) mentre il nume-
- 1'00,0000015 puo essere scritto come 15xlO-
7
. Tale convenzione non elegata
. notazione decimaIe, e puo essere estesa agli altri sistemi di numerazione.
In generale si puo dire che un dato numerico qualsiasi ammette una rappreseotazione
approssimata corne la seguente:
2X F = L, +L, X 2+.. L
m
X T(m-l)
si deduce che la: ricerca dei coefficienti b
i
richiede un processo di successive
- cazioni della parte frazionaria con estrazione 'della parte intera. n processo termina
quando la parte frazionaria risulta 0 (oppure non termina se il OUIDero eperiodical.
'-
..
",
.,;"
IJ!
";,
...
'.
."l
.,
."
,
.' ,11,
7"

,

,;.!

::'
,,,..
.",.;. ,.
'oJ..'."'{"'.' -
.. ..
c' J ; '.'
'.V '... ,..y-.,
i )' ,
,
n',
'.'.'.
-tt
:::1"
I" t .

;\'",
"':1
, '11,
.. '

','11

.,
.

,',,,
..
'.... '
'
...
'J.!'
,
" i'''I.

1_\
,'-:; I
,,< 'I
"J "

.'..,
j'I' .
. ',.
'"'..
-
1_

"

'lll,..
.. .'
, I , '

. 11 _
..

l
...
"

;.'a.
(30)
(-22)
(8)
numero dato (16, = 22.)
complemento a. 1
complemento a 2
+
00011110
11101010
00001000
00010110
11101001
11101010
La differenza a - b si ottieoe sommando:
Complemento a 1. .n camhiamento di aegno viene ottenuto complementando
ciascun bit del corrispondente valore positivo.
Complemento a 2. n cambiamento di segno viene ottenuto complementando ale
aggiungendo 1. Con n bit a disposizione si hanno numeri positivi (compreso 10 zero)
cia 0 a 2
11
-
1
- 1 e numeri negativi da -1 a _2
n
-
1
. Per esempio, con 8 bit i numeri
positivi vanna da 0 a. 127, i negativi da -1 a -128.
La soluzione in complemento a 2 equella normalmente adottata e la sottrazione
del nUIDero b da a viene eseguita come somma di a col complemento a 2 di b. Ad
esempio, 'i prenda a = 00011110(= IE" = 30
10
) e b = 00010110(= 16
16
= 22
10
), n
complemento a 2 di b si ottiene
-
F = L1L, L
m
Modulo e Segno. In questo si passa da valore positivo a negativD
mente cambiando da 0 a 1 it bit piu significativo.
L,B-
1
+ +LmB-
m
Esempio 1
n numero binario .101 corrisponde a1 numero decimale:
1 .2-
1
+ 0 . r' + 1 . 2-
3
= + = 0,5 + 0,125 = 0,625
Fino a questa punto abbiamo considerato solo numeri interi. La stringa:
,b_
1
b_
2
... b_
m
1.2.5 Numeri frazionari
si interpreta come:

La conversione da decimale a binario si ottiene con questo ragionamento: dato


il numero frazionario F in base 10, si tratta di trovare la stringa b-
1
b-
2
... b_
m
tale
per CUll
.
1 14 Ca.pitola 1

segno
esponente
mantissa
0,127x10'
+
59 .
12700000

+
45
15000000
13Corrispondono a queUe convenzione IBM descritta poco piu a.V3nti.
Introduzioue 15
- lunghezza mantisse : 8 cifre;
- valore esponente: da, -50 a +49j
- valQre della CQstante (bias), 50;
i numeri dei precedenti esempi si scrivono come segue:
Come gia detto
,
la rappresentazione in virgola mobile non e alia Dotazione
di numerazione, Una rappresentazione usuale ,e su 32 bit, Per essa si facciano Ie
seguenti convenzioni13;
II primo bit rappresenta il segno della mantissa (9 per il seguo +, 1 per il segno-);
" I sette bit successivi rappresentano l'esponente da usare per la base 2
,
aumeJ!tato_
di 64. L'esponente convenzionale puo variare tra 0 e 127 (che eil massimo intero
positivo rappresentabile con 7 bit), queUo effettivo deve essere compreso tra -64
e +63 (64 cQrrispQnde a 0);.'
Gli ultimi 24 bit rappresentano il valore assoluto della mantissa in forma norma-
lizzata (it primo bit a destra della virgola cleve essere 1).
Esemp.iQ..2
Si consideri il cumero 204,17437
RappresentaziQne binaria: 11001100,00101100101111
RappresentaziQne nQrmalizzata:' (0,1100110000101100101111), x (101000),
Con Ie precedenti convenzioni si ha:
bit di segno: 0;
espQnente, 0001000; manti..a: 110011000010110010111100
m0001000 I 1100 1100 0010 1100 1011 1100 I
La rappresentazione in virgola mobile puo dar luogo al fenomeno del trabocca-
mento. Questo non deriva dall'aumento del numero delle citre della mantissa, in quan-
to le cifre eccedenti vengono troncate (variera la precisione) rna deriva dall'aumento 0
dalla diminuzione del valore dell'esponente (non puo essere troncato altrimenti vaTiano
gli ordini di grandezza). '
, Quando it valore dell'esponente supera il rnassimo previsto dalIa rappresentazione
il fenomeno prende il nome di overilow,.mentre quando tale va10re diventa piu piccolo
del minimo previsto si ha iJ fenomeno chiamato underflow,
Non esiste una convenzione per 1a notazione floating-point che sia universalmente
adottata da tutte Ie case costruttrici di elaboratori. Descriviamo di seguito tre di-
verse convenzioni
,
una at;iottata ciaII' IBM, una dalla Digital
,
1a terza proposta come
standard IEEE.
';1
:;
.,
.;:;
"
.,
,.
.,


i
iii
'f
,

.,
, 'I.'
"
,1\1

'.

..
..

,
'
'g'
,
, ,
,1
"


._-;
"n
i:U\
';,
,f1,
.n,
.Ji'
':'1> -
..,


l
,a

, .
,
,'n,
'<I
l:i t
..
1.'

,'. I
". .
'.'
',"

:'1J

.
,;'1' I,
,.
, .
". '
"

;ll:
"
i c,
I

_,0

:, 'f'
',. >,

.,
'll
,
"I'
.
a, =-7
al = 6 b= 10
b = 10
XIX2Xa,YIY2Ya = 127,000
XIX2X3,VIV2Va = 15
EseIlllliQ 3
1 numeri dell'esempio precedente diventano:
127x10
6
=0,127x10'
15x10-
7
=0,15x10-'
I segnQ I espQnente I mantissa I
4
Utilizzando Ie seguenti convenzioni:
,
'.
- 10 zero che indica la parte intera della mantissa;
- il punta decimale;
II punlQ che indica II prQdQttQ;
- II valQre della base della pQtenza;
fissando la lunghezza della mantissa a un valore costante;
limitando l'esponente ai valori compresi in un opportuno intervalloj
utilizzando un esponente convenzionale ottenuto sommando all'esponente effetti-
vo una costante (bias) che 10 renda sempre positivo ed eliminando quindi il segno
delPesponente;
disponendo i tre elementi rimasti in uo ordine stabilito.
eliminando i caratteri non necessari ovvero:
Alcuni cara:tteri della rappresentazione esponenziale normalizzata sana ancora
danti ed epossibile, mediante ulteriori convenzioni, arrivare a una, rappresentazione
piu compatta.
Una di tali rappresentazioni, nell'ipotesi di notazione decimale, si ottiene adot-
tando Ie seguenti convenzioni:
t
r
\
)
\
)
Su una rappresentazione come 1a precedente si puo [are la convenzione che la prima
cifra significativa si trevi immediatamente a destra del punta decimale. Per ottenere
db sara. sufficiente aumentare 0 diminuire il valore dell'esponente di tante unita Quante
sono Ie posizioni di cui estato spostato il punta. La forma ottenuta con questa
convenzione edetta rappresentazione esponenziale normalizzata.
\ . ,
I
1
" Esempio 2
I Riprendendo i numeri dell'Esempio 1, si ha:
)
1
I
I
! l
I
.
1 14 Ca.pitola 1

segno
esponente
mantissa
0,127x10'
+
59 .
12700000

+
45
15000000
13Corrispondono a queUe convenzione IBM descritta poco piu a.V3nti.
Introduzioue 15
- lunghezza mantisse : 8 cifre;
- valore esponente: da, -50 a +49j
- valQre della CQstante (bias), 50;
i numeri dei precedenti esempi si scrivono come segue:
Come gia detto
,
la rappresentazione in virgola mobile non e alia Dotazione
di numerazione, Una rappresentazione usuale ,e su 32 bit, Per essa si facciano Ie
seguenti convenzioni13;
II primo bit rappresenta il segno della mantissa (9 per il seguo +, 1 per il segno-);
" I sette bit successivi rappresentano l'esponente da usare per la base 2
,
aumeJ!tato_
di 64. L'esponente convenzionale puo variare tra 0 e 127 (che eil massimo intero
positivo rappresentabile con 7 bit), queUo effettivo deve essere compreso tra -64
e +63 (64 cQrrispQnde a 0);.'
Gli ultimi 24 bit rappresentano il valore assoluto della mantissa in forma norma-
lizzata (it primo bit a destra della virgola cleve essere 1).
Esemp.iQ..2
Si consideri il cumero 204,17437
RappresentaziQne binaria: 11001100,00101100101111
RappresentaziQne nQrmalizzata:' (0,1100110000101100101111), x (101000),
Con Ie precedenti convenzioni si ha:
bit di segno: 0;
espQnente, 0001000; manti..a: 110011000010110010111100
m0001000 I 1100 1100 0010 1100 1011 1100 I
La rappresentazione in virgola mobile puo dar luogo al fenomeno del trabocca-
mento. Questo non deriva dall'aumento del numero delle citre della mantissa, in quan-
to le cifre eccedenti vengono troncate (variera la precisione) rna deriva dall'aumento 0
dalla diminuzione del valore dell'esponente (non puo essere troncato altrimenti vaTiano
gli ordini di grandezza). '
, Quando it valore dell'esponente supera il rnassimo previsto dalIa rappresentazione
il fenomeno prende il nome di overilow,.mentre quando tale va10re diventa piu piccolo
del minimo previsto si ha iJ fenomeno chiamato underflow,
Non esiste una convenzione per 1a notazione floating-point che sia universalmente
adottata da tutte Ie case costruttrici di elaboratori. Descriviamo di seguito tre di-
verse convenzioni
,
una at;iottata ciaII' IBM, una dalla Digital
,
1a terza proposta come
standard IEEE.
';1
:;
.,
.;:;
"
.,
,.
.,


i
iii
'f
,

.,
, 'I.'
"
,1\1

'.

..
..

,
'
'g'
,
, ,
,1
"


._-;
"n
i:U\
';,
,f1,
.n,
.Ji'
':'1> -
..,


l
,a

, .
,
,'n,
'<I
l:i t
..
1.'

,'. I
". .
'.'
',"

:'1J

.
,;'1' I,
,.
, .
". '
"

;ll:
"
i c,
I

_,0

:, 'f'
',. >,

.,
'll
,
"I'
.
a, =-7
al = 6 b= 10
b = 10
XIX2Xa,YIY2Ya = 127,000
XIX2X3,VIV2Va = 15
EseIlllliQ 3
1 numeri dell'esempio precedente diventano:
127x10
6
=0,127x10'
15x10-
7
=0,15x10-'
I segnQ I espQnente I mantissa I
4
Utilizzando Ie seguenti convenzioni:
,
'.
- 10 zero che indica la parte intera della mantissa;
- il punta decimale;
II punlQ che indica II prQdQttQ;
- II valQre della base della pQtenza;
fissando la lunghezza della mantissa a un valore costante;
limitando l'esponente ai valori compresi in un opportuno intervalloj
utilizzando un esponente convenzionale ottenuto sommando all'esponente effetti-
vo una costante (bias) che 10 renda sempre positivo ed eliminando quindi il segno
delPesponente;
disponendo i tre elementi rimasti in uo ordine stabilito.
eliminando i caratteri non necessari ovvero:
Alcuni cara:tteri della rappresentazione esponenziale normalizzata sana ancora
danti ed epossibile, mediante ulteriori convenzioni, arrivare a una, rappresentazione
piu compatta.
Una di tali rappresentazioni, nell'ipotesi di notazione decimale, si ottiene adot-
tando Ie seguenti convenzioni:
t
r
\
)
\
)
Su una rappresentazione come 1a precedente si puo [are la convenzione che la prima
cifra significativa si trevi immediatamente a destra del punta decimale. Per ottenere
db sara. sufficiente aumentare 0 diminuire il valore dell'esponente di tante unita Quante
sono Ie posizioni di cui estato spostato il punta. La forma ottenuta con questa
convenzione edetta rappresentazione esponenziale normalizzata.
\ . ,
I
1
" Esempio 2
I Riprendendo i numeri dell'Esempio 1, si ha:
)
1
I
I
! l
I
lntroduzione 17
1
j
)
\
J
j
)
I
I
I
I
C!TIOOOIOOO [ 100 11000010 1100 10111100 1
'EsempiQ 7
Rappresentiamo it numero decimale 204,17437 in notazione Boating-point
secondo la convenzione Digital
.Si ha :
(204,1743
7
ho =(11001100,00101100101111),
La normalizzazione della mantissa si ottiene spostando il punto decimale di
8 bit a sinistra; corrispondentemente !'esponente va posto pari a +8:
(11001100,00101100101111), =(0,1100110000101100101111), x(101000),
L'esponente convenzionale si ottiene sommando all'esponente effettivo (+8)
la cost.nte 128, ottenendo: (136ho =(10001000),. n risultato e:
lsI bit I esp 8lillJlV! 23JD
La mantissa erappresentata in virgola issa con il punta di radice implicita.mente I
assunto alia del bit pill significativo e si as:mme che la sua prima citra binaria
sia uguale a 1. Poiche questa bit esempre uguale ad 1; non necessita di essere rap-
presentato: la e, dunque, espressa solo i 23 meno ]
sana rappresentatl (bIt 22-:-0), mentre quello PlU slgnificatlvo, assunto uguaIe a 1, non
erappresentato (hidden bit - bit nascosto). ncaso del numero zero, la cui rappresen-
tazione sarebbe incornpatibile con l'assunzione fatta (dovrebbe essere nullo anche il
bit nascosto) e indistinguibile da quell a del numero 0,5x2-
128
(tutti i bit nulli eccet-
to quello nascosto), econsiderato a parte. Vambiguita e stata risolta considerando 1
ugliale a zero il numero quando gli 8 bit dell'esponente sono tutti nulli (esp =-128),
a prescindere dai valori dei bit della mantissa.
lunghezza singola;
lunghezza doppiaj
formato esteso:
lunghezza' singola;
lunghezza doppia.
Standard IEEE 754-1985 per l'aritmetica binaria in virgola mobile Per
eliminare la confusione dovuta aHa nOn definizione delle istruzioni in virgola mobile,
che riguarda il numero di bit usati per rappresentare l'esponente e la 'mantissa, l'in-
tervallo di esistenza degli esponenti, i metodi di arrotondamento e la trattazione delle
eccezioni (come l'overflow), estate introdotto 10 standard IEEE 754-1985 [lEE]. Esse
specifica il formato, Ie operazioni, Ie conversioni tra i differenti formati Boating-point
e-quelle tra i diversi sistemi'di numerazione e il trattamento delle eccezioni, compreso
il NaNs (not-a-m..mber).
La standard definisce 4 formati floating-point:.
formato base:
,
'.
,," .
-0-
"-,


--"
.1'"'
..,
';., .'
'I
J
,
,n
"". .
:1I'.
.J '
;11 .
.'i:
"u
ii c
.,) ,.
-'.,. .
R
j.,
'."1.'
-

-':"
' -. .
,. - -
:""1" ,
-'. n . ,
.

'"
..

.,
'J-j.'
,
--
,
.


',. ' ,
:;<!
.,:'}
.:,
.,-t
.', i,
.

" ..\C
':'1
.. ,.
r "
"
,;til
"'1'1'
.-:{ ,
,1'
"
';,

:".
,,.-'.
_.,1
,.,
....
--.
.Ill


.,'
j
'i'
,Ii
"'1"
.' .1
:
r"
'I'

..
,


,1
YI
..,
rn 1000010 [TIoo 1100 0010 1100 1011 bOO I
Esempio 6
Rappresentiamo il numero decimale 204,17437 in notazione Hoating-point
secondo la convenzione IBM.
Si hac
(204,17437) 10 = (11001100,00101100101111),=( CC,2CBC) I'
La normalizzazione della mantissa si 'ottiene spostando il punto decirnale di
due eme (16 bit) a sinistra; corrispondentemente l'esponente va posta pari
a +2:
(CC,2CBCh, =(0,CC2CBCh, x16'.
L'esponente convenzionale si ottiene sommando all'esponente effettivo (+2)
la costante 64, ottenendo: (66ho =(1000010),. 11 risultato e:
Convenzione Digital Anche nelle macchine Digital e adottata una rappresenta-
zione su 32 bit:
il bit pili significativo (bit 31) fornisce il valore del segno s della mantissa (0= +,
1= -);
i successivi 8 bit (bit 30+23) contengono l'esponente convenzionale esp ottenuto'
sommando 1a costante 128 all'esponente effettivo. Puo assumere i valori compresi
tra -128 e + 127 ed e riferito alia base 2;
i rimanenti 23 bit (bit 22..;.0) contengono la mantissa;
ISlOIT]
L' esporiente puo assumere valori interi cornpresi tra -64 e +63 ed eriferito alia
base 16. La mantissa enormalizzata, tioe la sua prima cifra esadecimale ediversa da
zero: cio compona che &lmeno uno dei primi quattro bit della mantissa (bit
sia diverse da zero; fa eccezione 130 rappresentazione del numero zero che e data da 32
bit tutti nuIli.
Convenzione IBM Nei mainframe IBM, eusata la rappresentazione a 32 bit, con:
il bit pili significativo (bit 31) fornisce il valore del segno s della mantissa: (0=+,
1= -);
i successivi 7 bit (bit 30+24) contengono l'esponente convenzionale esp (intero)
ottenuto Bornmando all' esponente effettivo 1a costante 64. Cosl facendo si rende
l'esponente sempre positivo e non epin riportare il segno; I
i rimanenti 24 bit (bit 23+0) contengono 1a mantissa M
1
rappresentata in vir-
gola issa con il punto di radice implicitamente assunto alla sinistra del bit pili
significativo.
16 Capitolo 1
lntroduzione 17
1
j
)
\
J
j
)
I
I
I
I
C!TIOOOIOOO [ 100 11000010 1100 10111100 1
'EsempiQ 7
Rappresentiamo it numero decimale 204,17437 in notazione Boating-point
secondo la convenzione Digital
.Si ha :
(204,1743
7
ho =(11001100,00101100101111),
La normalizzazione della mantissa si ottiene spostando il punto decimale di
8 bit a sinistra; corrispondentemente !'esponente va posto pari a +8:
(11001100,00101100101111), =(0,1100110000101100101111), x(101000),
L'esponente convenzionale si ottiene sommando all'esponente effettivo (+8)
la cost.nte 128, ottenendo: (136ho =(10001000),. n risultato e:
lsI bit I esp 8lillJlV! 23JD
La mantissa erappresentata in virgola issa con il punta di radice implicita.mente I
assunto alia del bit pill significativo e si as:mme che la sua prima citra binaria
sia uguale a 1. Poiche questa bit esempre uguale ad 1; non necessita di essere rap-
presentato: la e, dunque, espressa solo i 23 meno ]
sana rappresentatl (bIt 22-:-0), mentre quello PlU slgnificatlvo, assunto uguaIe a 1, non
erappresentato (hidden bit - bit nascosto). ncaso del numero zero, la cui rappresen-
tazione sarebbe incornpatibile con l'assunzione fatta (dovrebbe essere nullo anche il
bit nascosto) e indistinguibile da quell a del numero 0,5x2-
128
(tutti i bit nulli eccet-
to quello nascosto), econsiderato a parte. Vambiguita e stata risolta considerando 1
ugliale a zero il numero quando gli 8 bit dell'esponente sono tutti nulli (esp =-128),
a prescindere dai valori dei bit della mantissa.
lunghezza singola;
lunghezza doppiaj
formato esteso:
lunghezza' singola;
lunghezza doppia.
Standard IEEE 754-1985 per l'aritmetica binaria in virgola mobile Per
eliminare la confusione dovuta aHa nOn definizione delle istruzioni in virgola mobile,
che riguarda il numero di bit usati per rappresentare l'esponente e la 'mantissa, l'in-
tervallo di esistenza degli esponenti, i metodi di arrotondamento e la trattazione delle
eccezioni (come l'overflow), estate introdotto 10 standard IEEE 754-1985 [lEE]. Esse
specifica il formato, Ie operazioni, Ie conversioni tra i differenti formati Boating-point
e-quelle tra i diversi sistemi'di numerazione e il trattamento delle eccezioni, compreso
il NaNs (not-a-m..mber).
La standard definisce 4 formati floating-point:.
formato base:
,
'.
,," .
-0-
"-,


--"
.1'"'
..,
';., .'
'I
J
,
,n
"". .
:1I'.
.J '
;11 .
.'i:
"u
ii c
.,) ,.
-'.,. .
R
j.,
'."1.'
-

-':"
' -. .
,. - -
:""1" ,
-'. n . ,
.

'"
..

.,
'J-j.'
,
--
,
.


',. ' ,
:;<!
.,:'}
.:,
.,-t
.', i,
.

" ..\C
':'1
.. ,.
r "
"
,;til
"'1'1'
.-:{ ,
,1'
"
';,

:".
,,.-'.
_.,1
,.,
....
--.
.Ill


.,'
j
'i'
,Ii
"'1"
.' .1
:
r"
'I'

..
,


,1
YI
..,
rn 1000010 [TIoo 1100 0010 1100 1011 bOO I
Esempio 6
Rappresentiamo il numero decimale 204,17437 in notazione Hoating-point
secondo la convenzione IBM.
Si hac
(204,17437) 10 = (11001100,00101100101111),=( CC,2CBC) I'
La normalizzazione della mantissa si 'ottiene spostando il punto decirnale di
due eme (16 bit) a sinistra; corrispondentemente l'esponente va posta pari
a +2:
(CC,2CBCh, =(0,CC2CBCh, x16'.
L'esponente convenzionale si ottiene sommando all'esponente effettivo (+2)
la costante 64, ottenendo: (66ho =(1000010),. 11 risultato e:
Convenzione Digital Anche nelle macchine Digital e adottata una rappresenta-
zione su 32 bit:
il bit pili significativo (bit 31) fornisce il valore del segno s della mantissa (0= +,
1= -);
i successivi 8 bit (bit 30+23) contengono l'esponente convenzionale esp ottenuto'
sommando 1a costante 128 all'esponente effettivo. Puo assumere i valori compresi
tra -128 e + 127 ed e riferito alia base 2;
i rimanenti 23 bit (bit 22..;.0) contengono la mantissa;
ISlOIT]
L' esporiente puo assumere valori interi cornpresi tra -64 e +63 ed eriferito alia
base 16. La mantissa enormalizzata, tioe la sua prima cifra esadecimale ediversa da
zero: cio compona che &lmeno uno dei primi quattro bit della mantissa (bit
sia diverse da zero; fa eccezione 130 rappresentazione del numero zero che e data da 32
bit tutti nuIli.
Convenzione IBM Nei mainframe IBM, eusata la rappresentazione a 32 bit, con:
il bit pili significativo (bit 31) fornisce il valore del segno s della mantissa: (0=+,
1= -);
i successivi 7 bit (bit 30+24) contengono l'esponente convenzionale esp (intero)
ottenuto Bornmando all' esponente effettivo 1a costante 64. Cosl facendo si rende
l'esponente sempre positivo e non epin riportare il segno; I
i rimanenti 24 bit (bit 23+0) contengono 1a mantissa M
1
rappresentata in vir-
gola issa con il punto di radice implicitamente assunto alla sinistra del bit pili
significativo.
16 Capitolo 1
)
18 Ca.pitolo 1

-
..
..
" .'

.'(-,'"
.>

i
Introduzione 19
\
I
1
I
\
\
I
t
1
l
1
\
1
\
1
I
I
Ogni formate edefinito specmcando tre interi:
P=numero di bit signi.6.cativi (precisione, ovvero numero di bit che compongono
la mantissa); ,
Emtl:l=esponente massimo;
Emin=esponente minima.
Dalla definizione di questi parametri si pUG risalire al numero di bit deWesponente,
all'esponente convenzionale e alla lunghezza del formato. I formati sana riportati
TabeUil.1.5.
Singola Sin.e.:ola estesa Doppia
DoEPJ,a estesa
t' (bit di precisione J 23
>32
52
>64

27
>1023 1023 >16383
lt
min
-1.6 < -1022 -1022 < -1638.
Bias

1023
Esponente >11 11 >15
Larghezza formate 32
>43
64
>79
Tabella 1.5 Formati standard IEEE 754-1985.
Lo standard impiega esponenti polarizzati , cioe at valore reale dell'esponente
E viene aemmata una. base eli polarizzaziene (bias, pa.ri a 127 nel caso <;li singola
e a 1023 nel case di doppia precisione). Analizziamone i formati base.
I numeri in singolo e doppio fannato souo composti dai seguenti tre campi:
- lID bit di segno s;
- espanente polarizzato e::E+bias;
- mantissa M=,ffilm2ms ... rnp_l;
n valore di E varia tra Ef1\in ed EfnoJ.x, includendo anche altri due valori riservati
E
min
- 1 per codificare O. e numeri denormalizzati , ed E
max
+ 1 per codificare oo
e il NaNs.
La mantissa eun numero decimale (binario) la cui parte intera esempre .1. Per
questa motivo tale 1 non compare nel campo mantissa della rappresentazione. Tale
campo, quindi, si compone della sola parte frazionaria.
Esempio 8 '
Rappresentiamo con 10 standard IEEE il numero decima:le 5, nel formato in
singola precisione.
(5),0 =(101),;
(101), =(1,01), x(10
10
),;
Segno=O;
Mantissa=01000000000000000000000 (la parte lntera eimplicita);
Esponente=00000010
';n
:"
.

"'.
,
I,>;,
-,

" .
'::"1
"j'
'.' '

d

. ,
T


-'
,
'. ,
'
'''I' -
"M"'
:'1
;'\1
:ii'
''':' .,
'='1"'
".;,'1

'II'
" .
? ;.
;',
.,

(It
''11"

.. ,
, '
) "
"'f
AI
"
"...
,
,u,
,
...'
"
;u';
,


"
'.
'-\1,
..'

I campi sono interpretati come segue:
.
Singola: un numero X in formata singola precisione a 32 bit ediviso come segue:
lsI bit I esj:> 8 bit I M 23lillJ
nvalore v di X ededotto dagli elementi componenti i campi nel seguente modo:
L Se esp=255 e M;60, a1lora v eun NaNs nonostante s;
2, Se esp=255 e M=O, aHora v= (-1)'00;
'3, Se 0 <esp <255, aHora v=(-1)'2'-127(LM);
4, Se esp=O e M;60, aHora v=(-1)'2-
126
(0,M:) (numeri denormalizzati);
5, Se e=O e M=O, aHora v=(-l)'O,
Doppia: un numero X in formato doppia precisione"a 64 bit ediviso come segue:
lsI bit I esp 11lillJ M 52 bit I
1 II valore v di X ededotto dagli elementi componenti i campi nel seguente modo:
1. Se esp::2047 e M#O, allora v e un NaNs nonostante s;
2, Se esp=2047 e M=O, aHara v=(-l)'oo;

3. Se 0 < esp < 2047, allora v=(-1)'2'-1023(LM)


4, Se esp=O e M;60, a110ra v=( -1)'2-
10
"(0.M) (numeri denormalizzati)
5. Se esp=O e M=O, a1lora v=(-l)'O,
Altra caratteristica della standard ecostituita dalle regole di arrotondamento. Quan-
do si esegue un'operazione su due numeri in virgola mobile, di solita il risultato eun
valore reale che non si puo rappresentare in modo esatto in virgola mobile.
Lo standard IEEE 754-1985 prevede quattro modalita di arrotondamentoc
. arrotondamento al valore piu vicino (e 10 standard);
- arrotondamento a zero;
- arrotondamento a +00;
. arrotondamento a -00.
EselllPio 9
Usando una rappresentazione in virgola mobile in base 10 a due dfre, si ha
2,1 x 0,5 = 1,05

)
18 Ca.pitolo 1

-
..
..
" .'

.'(-,'"
.>

i
Introduzione 19
\
I
1
I
\
\
I
t
1
l
1
\
1
\
1
I
I
Ogni formate edefinito specmcando tre interi:
P=numero di bit signi.6.cativi (precisione, ovvero numero di bit che compongono
la mantissa); ,
Emtl:l=esponente massimo;
Emin=esponente minima.
Dalla definizione di questi parametri si pUG risalire al numero di bit deWesponente,
all'esponente convenzionale e alla lunghezza del formato. I formati sana riportati
TabeUil.1.5.
Singola Sin.e.:ola estesa Doppia
DoEPJ,a estesa
t' (bit di precisione J 23
>32
52
>64

27
>1023 1023 >16383
lt
min
-1.6 < -1022 -1022 < -1638.
Bias

1023
Esponente >11 11 >15
Larghezza formate 32
>43
64
>79
Tabella 1.5 Formati standard IEEE 754-1985.
Lo standard impiega esponenti polarizzati , cioe at valore reale dell'esponente
E viene aemmata una. base eli polarizzaziene (bias, pa.ri a 127 nel caso <;li singola
e a 1023 nel case di doppia precisione). Analizziamone i formati base.
I numeri in singolo e doppio fannato souo composti dai seguenti tre campi:
- lID bit di segno s;
- espanente polarizzato e::E+bias;
- mantissa M=,ffilm2ms ... rnp_l;
n valore di E varia tra Ef1\in ed EfnoJ.x, includendo anche altri due valori riservati
E
min
- 1 per codificare O. e numeri denormalizzati , ed E
max
+ 1 per codificare oo
e il NaNs.
La mantissa eun numero decimale (binario) la cui parte intera esempre .1. Per
questa motivo tale 1 non compare nel campo mantissa della rappresentazione. Tale
campo, quindi, si compone della sola parte frazionaria.
Esempio 8 '
Rappresentiamo con 10 standard IEEE il numero decima:le 5, nel formato in
singola precisione.
(5),0 =(101),;
(101), =(1,01), x(10
10
),;
Segno=O;
Mantissa=01000000000000000000000 (la parte lntera eimplicita);
Esponente=00000010
';n
:"
.

"'.
,
I,>;,
-,

" .
'::"1
"j'
'.' '

d

. ,
T


-'
,
'. ,
'
'''I' -
"M"'
:'1
;'\1
:ii'
''':' .,
'='1"'
".;,'1

'II'
" .
? ;.
;',
.,

(It
''11"

.. ,
, '
) "
"'f
AI
"
"...
,
,u,
,
...'
"
;u';
,


"
'.
'-\1,
..'

I campi sono interpretati come segue:
.
Singola: un numero X in formata singola precisione a 32 bit ediviso come segue:
lsI bit I esj:> 8 bit I M 23lillJ
nvalore v di X ededotto dagli elementi componenti i campi nel seguente modo:
L Se esp=255 e M;60, a1lora v eun NaNs nonostante s;
2, Se esp=255 e M=O, aHora v= (-1)'00;
'3, Se 0 <esp <255, aHora v=(-1)'2'-127(LM);
4, Se esp=O e M;60, aHora v=(-1)'2-
126
(0,M:) (numeri denormalizzati);
5, Se e=O e M=O, aHora v=(-l)'O,
Doppia: un numero X in formato doppia precisione"a 64 bit ediviso come segue:
lsI bit I esp 11lillJ M 52 bit I
1 II valore v di X ededotto dagli elementi componenti i campi nel seguente modo:
1. Se esp::2047 e M#O, allora v e un NaNs nonostante s;
2, Se esp=2047 e M=O, aHara v=(-l)'oo;

3. Se 0 < esp < 2047, allora v=(-1)'2'-1023(LM)


4, Se esp=O e M;60, a110ra v=( -1)'2-
10
"(0.M) (numeri denormalizzati)
5. Se esp=O e M=O, a1lora v=(-l)'O,
Altra caratteristica della standard ecostituita dalle regole di arrotondamento. Quan-
do si esegue un'operazione su due numeri in virgola mobile, di solita il risultato eun
valore reale che non si puo rappresentare in modo esatto in virgola mobile.
Lo standard IEEE 754-1985 prevede quattro modalita di arrotondamentoc
. arrotondamento al valore piu vicino (e 10 standard);
- arrotondamento a zero;
- arrotondamento a +00;
. arrotondamento a -00.
EselllPio 9
Usando una rappresentazione in virgola mobile in base 10 a due dfre, si ha
2,1 x 0,5 = 1,05

20 Capitola 1
che non e pili rappresentabile in modo esatto 'con due cifre poiche ne richiede
tre. Si arrotonda a 1) oppure a 1,0? In una situazione ambigua come questa
10 standard prevede Parrotondamento al valore la cui cifra meno significativa
epari. Quindi 1.05 viene arrotondato a 1.0.
La standard prevede che il risultato effettivo di un'operazione in virgola mobile sia
queUo che 5i ottiene calcolando il ri5ultato esatto, 0 ideale, e poi arrotondandolo
mediante una delle suddette modalita. Tale approccio risulta. molto costoso, dato che
occorre eseguire una somma con un nurnero elevato di bit (tramite un sommatore di
notevoli dimensioni), una parte dei quali verranno pero scartati alIa fine del processo
di arrotondamento.
Nella somma algebrica si possono usare due modalita. di arrotondamento distinte.
Una prima modalita eprevista nel caso in cuI gli addendi abbiano uguale espo-
nente. In questa caso la somma delle parti frazionarie degli addendi produce un riporto
a sinistra, che va considerato spostando la virgola mobile a sinistra e incrementando
l'espnnente; si perde coslla cifra meno significativa della parte frazionaria.
Esempio 10
Consideriamo due numeri in virgola mobile (scelti decimali per semplicita)
e calcoliamone la somma:
(0,836 x 10-'),0+(0,375x 10-'),0=(1,211 x 10-')10=(0,121 x 10-')10
Affinche il formato del risultato sia uguale a quello degli addendi (man-
tissa normalizzata di tre cifre) e necessario spostare la virgola a sinistra e
modificare il valore dell'esponente, perdendo cosll'ultima cifra decimale.
Ualtra modalita. ellarrotondamento conseguente alIa disuguaglianza degli esponenti
degli addendi: I due esponenti vanno eguagliati e percio la parte frazionaria di uno
dei due addendi va fatta scorrere (quelIa del numero cun esponente minore) perdendo
cosl almena una cifra.
EsemI?io 11
0,836x 10-'+0,375x 10-' -,0,083 x 10-'+0,375x 10-
4
=0,458 X 10-
4
I casi esarrunati (trascurando il problema dei casi ambigui, che come prima accennato
si ri501vono tramite al valore pari pili vicino), si passono realizzare
mediante un circuito sommatore, con una precisione di' due cifre in pili rispetto a
Quante ne siano nominalmente richieste dalla precisione degli addendi. Queste due
citre aggiuntive sono chiamate cifra di guardia (guard digit) e cifra di arrotondamento
(round digit)
Lo standard IEEE prevede anche cinque cause di eccezione aritmetica:
underflow
overflow
divi,sione per zero
eccezione di inesattezza
-
" ';


il
",1 '
"-
..
,
, ..
/if:"
-
,



.. r
, -,

,.
, ';'U
,"""
?,W
.
,
;;ri,
.,". '
.
""I'

'

;,6
-,,11;
.,.'!,
';i
-.
'/
,"'5
"11
;;, .

''(j :
'-j

. ",

tl
<"
'!;;-
,.1

... .,'
..

--
- . -
.::
f
'!;
S.
','.,-,,1

Introduzione 21
eccezione di invaliditd.
Le eccezioni di underflow, overflow, divisione per zero, sono presenti anche in altri
standard. L'eccezione di inesattezza e1a caratteristica delFaritmetica IEEE e si ve-
rifica sia quando il risultato di una operazione deve essere arrotondato, sia quando
l'operazione meorre in un overflow.
Quando si verifica una di queste eccezioni, eprevisto l'aggiornamento di un bit
di segnalazione, rna il calcolo puo proseguire. Questi segnalatori, una volta attivati,
rimangono tali 'fino a che non vengono disattivati 10 standard raceo-
manda di introdurre anche un bit di abilitazione di interruzione (uno per ciascuna delle
eccezioni). II\ questa modo se si verifica una delle eceezioni
,
e il eorrispondente bit
di abilitazione dell'interruzione eattivo
1
entra il gestore delle interruzioni predisposto
dalPutente (ovviamente
1
in questa caso, il bit di segnalazione non enecessario).
Lo standard prevede che qualora si verifichi una interruzione dOV'uta a un1ecce-
zione aritmetica
,
si possa risalire all1operazione che l'ha generata e anche al valore dei
suoi operandi.
Operazioni in virgola mobile La descrizione degli algoritmi con cui
verigono effettuate Ie operazioni algebriche in virgola mobile, non rientra nei fini di
questa trattazione. Per ulteriori approfondimenti 8i rimanda alia letteratura [Omo94],
[HP93); di seguito per dare un'idea di come vengono svolte tali operazioni
,
sono
-riportati in forma molto semplificata i principali passi dell'algoritmo di somma e
,moltiplicazione.
Somma Le operazioni di somma e sottrazione di numeri in virgola mobile
'.: richiedono che gli esponenti dei due addendi siano uguali. A tal fine Occorre
, " traslare Ie mantisse dei due numeri una rispetto all'aJtra. Una regola generale
per l'addizione e la sottrazione mobile pub essere riassunta nei seguenti passi.
1. Si prende il numero con l'esponente minore e 5i trasla a destra la sua mantissa
di un numero di bit uguali alIa ditIerenza degli esponenti.
2. Si pone l'esponente del risultato uguale al pili grande degli esponenti dei due
addendi.
3. Si effettua l'addizione 0 la sottrazione delle mantisse e si determina il segno
del risultato.
4. Si normalizza il risultato se necessaria.
Moltiplicazione Per la moltiplicazione non e necessario l'allineamento delle man-
tisse. L'algoritmo pili semplice puo essere cosl riassunto.
1. 8i sommano gli esponenti
2. S.i moltiplicano 1e mantisse e si determina il segno del risultato
3.. Si normalizza il risultato se necessario.
l
]
I
1
\
1
f
!
\
)
\
)
J
J
20 Capitola 1
che non e pili rappresentabile in modo esatto 'con due cifre poiche ne richiede
tre. Si arrotonda a 1) oppure a 1,0? In una situazione ambigua come questa
10 standard prevede Parrotondamento al valore la cui cifra meno significativa
epari. Quindi 1.05 viene arrotondato a 1.0.
La standard prevede che il risultato effettivo di un'operazione in virgola mobile sia
queUo che 5i ottiene calcolando il ri5ultato esatto, 0 ideale, e poi arrotondandolo
mediante una delle suddette modalita. Tale approccio risulta. molto costoso, dato che
occorre eseguire una somma con un nurnero elevato di bit (tramite un sommatore di
notevoli dimensioni), una parte dei quali verranno pero scartati alIa fine del processo
di arrotondamento.
Nella somma algebrica si possono usare due modalita. di arrotondamento distinte.
Una prima modalita eprevista nel caso in cuI gli addendi abbiano uguale espo-
nente. In questa caso la somma delle parti frazionarie degli addendi produce un riporto
a sinistra, che va considerato spostando la virgola mobile a sinistra e incrementando
l'espnnente; si perde coslla cifra meno significativa della parte frazionaria.
Esempio 10
Consideriamo due numeri in virgola mobile (scelti decimali per semplicita)
e calcoliamone la somma:
(0,836 x 10-'),0+(0,375x 10-'),0=(1,211 x 10-')10=(0,121 x 10-')10
Affinche il formato del risultato sia uguale a quello degli addendi (man-
tissa normalizzata di tre cifre) e necessario spostare la virgola a sinistra e
modificare il valore dell'esponente, perdendo cosll'ultima cifra decimale.
Ualtra modalita. ellarrotondamento conseguente alIa disuguaglianza degli esponenti
degli addendi: I due esponenti vanno eguagliati e percio la parte frazionaria di uno
dei due addendi va fatta scorrere (quelIa del numero cun esponente minore) perdendo
cosl almena una cifra.
EsemI?io 11
0,836x 10-'+0,375x 10-' -,0,083 x 10-'+0,375x 10-
4
=0,458 X 10-
4
I casi esarrunati (trascurando il problema dei casi ambigui, che come prima accennato
si ri501vono tramite al valore pari pili vicino), si passono realizzare
mediante un circuito sommatore, con una precisione di' due cifre in pili rispetto a
Quante ne siano nominalmente richieste dalla precisione degli addendi. Queste due
citre aggiuntive sono chiamate cifra di guardia (guard digit) e cifra di arrotondamento
(round digit)
Lo standard IEEE prevede anche cinque cause di eccezione aritmetica:
underflow
overflow
divi,sione per zero
eccezione di inesattezza
-
" ';


il
",1 '
"-
..
,
, ..
/if:"
-
,



.. r
, -,

,.
, ';'U
,"""
?,W
.
,
;;ri,
.,". '
.
""I'

'

;,6
-,,11;
.,.'!,
';i
-.
'/
,"'5
"11
;;, .

''(j :
'-j

. ",

tl
<"
'!;;-
,.1

... .,'
..

--
- . -
.::
f
'!;
S.
','.,-,,1

Introduzione 21
eccezione di invaliditd.
Le eccezioni di underflow, overflow, divisione per zero, sono presenti anche in altri
standard. L'eccezione di inesattezza e1a caratteristica delFaritmetica IEEE e si ve-
rifica sia quando il risultato di una operazione deve essere arrotondato, sia quando
l'operazione meorre in un overflow.
Quando si verifica una di queste eccezioni, eprevisto l'aggiornamento di un bit
di segnalazione, rna il calcolo puo proseguire. Questi segnalatori, una volta attivati,
rimangono tali 'fino a che non vengono disattivati 10 standard raceo-
manda di introdurre anche un bit di abilitazione di interruzione (uno per ciascuna delle
eccezioni). II\ questa modo se si verifica una delle eceezioni
,
e il eorrispondente bit
di abilitazione dell'interruzione eattivo
1
entra il gestore delle interruzioni predisposto
dalPutente (ovviamente
1
in questa caso, il bit di segnalazione non enecessario).
Lo standard prevede che qualora si verifichi una interruzione dOV'uta a un1ecce-
zione aritmetica
,
si possa risalire all1operazione che l'ha generata e anche al valore dei
suoi operandi.
Operazioni in virgola mobile La descrizione degli algoritmi con cui
verigono effettuate Ie operazioni algebriche in virgola mobile, non rientra nei fini di
questa trattazione. Per ulteriori approfondimenti 8i rimanda alia letteratura [Omo94],
[HP93); di seguito per dare un'idea di come vengono svolte tali operazioni
,
sono
-riportati in forma molto semplificata i principali passi dell'algoritmo di somma e
,moltiplicazione.
Somma Le operazioni di somma e sottrazione di numeri in virgola mobile
'.: richiedono che gli esponenti dei due addendi siano uguali. A tal fine Occorre
, " traslare Ie mantisse dei due numeri una rispetto all'aJtra. Una regola generale
per l'addizione e la sottrazione mobile pub essere riassunta nei seguenti passi.
1. Si prende il numero con l'esponente minore e 5i trasla a destra la sua mantissa
di un numero di bit uguali alIa ditIerenza degli esponenti.
2. Si pone l'esponente del risultato uguale al pili grande degli esponenti dei due
addendi.
3. Si effettua l'addizione 0 la sottrazione delle mantisse e si determina il segno
del risultato.
4. Si normalizza il risultato se necessaria.
Moltiplicazione Per la moltiplicazione non e necessario l'allineamento delle man-
tisse. L'algoritmo pili semplice puo essere cosl riassunto.
1. 8i sommano gli esponenti
2. S.i moltiplicano 1e mantisse e si determina il segno del risultato
3.. Si normalizza il risultato se necessario.
l
]
I
1
\
1
f
!
\
)
\
)
J
J
\. Tabella 1.6 Codifica "ASCII dei caratteri alfanumerici.
23
NOT
Introduzione
x t>o X
mpo

D x+y
.
te
xy
1.3.1 L'algebra delle reti
AND OR
Figura 1.2 Simboli standard per le porte AND. OR e NOT.
. .
,X-fJ.-_
y-L--
1
a
, Figura 1.1 Forma d'onda idealizzata di un segnale logico.
HUn segnale analogico porta piil informa7.ione di un seguale digitate, sia. percbe a 6680 corrisponde
, una. infinita di valori nel1'intervallo di definizione, sia perche e possibile una infinita. di andamenti
della forma. d10nda del segnale. In pratica, disturbi e Iimiti fisici alIa vclocita di variazione rendono
inaccurato sia il procesao di generazione sia queUo di riconosdmento e misura de.i segnali analogici. Al
contrario, un segnale digitale emolto meno sensibile al ruinore e ai fenomeni transitori. Per quanta
riguarda i disturbi, basta the questi non portico il segnale al di fuoTi della fascia di discretizzazione
in cui si trova i1 valore del segnale al momento del verificarsi del disturbo; per quanto riguarda i
fenomenj traJlsitori, basta dar tempo sufficiente al loro esaurirsi in modo che il riconoscimento del
segnale dia un risultato non a.mbiguo.
15Vale la pella di rimareare che i due simboli nulla hanna a cbe fare can i corrispondenti simboli
aritmetici. Cib che serve per definire I'algebra sono due simholi distinti. In attn contest.i
L'algebra edefinita su un insieme, composto da due soli elementi,
denotati
lS
con 0 e 1.
. Le reti costruite a partire dalIe porte logiche possono essere descritte attraver-
so un'algeora, detta algebra delle reti 0 algebra booleana, in ragione del fatto che
essa deriva dalla "logica" del ealcolo delle proposizioni, introdotta nel secolo seorso
dal maternatieo e filosofo Inglese George Boole. Proprio in virtu dell'origine di que-
.: .s'ta algebra, Ie reti in questione vengono usualmente dette "reti logiche". Per una
, loro trattazione si rimanda all' Appendice A. Qui di seguito vengono rapidamente
,: richi"arnati aleuJ.1i concetti essenziali.
I componenti elementari dei sistemi digitali vengono detti "circuiti logici" 0, pili
comunemente Hporte". In Figura 1.2, vengono dati i simboli delle tre porte logiche
, fondamentali. Ovviamente gli ingressi e Ie uscite sonG segnali binari.
di discriminarli. Si tratta, per esempio, di se un da.to segnale ea
un Hvello di tensione alto 0 basso, oyvero se ha un valore superiore b inferiore a Wla
.. data soglia
14
. In Figura 1.1 viene riportato l'andamento (idealizzato) di un segnale
binario.
.,

..
)
'.
,
-
-'
.,
,
' A'
.'
.
" ., .
" "
....
. ,'. .
.,-.. ,

"
,_.
....
.;ll;;
,'.


,
..

"" .-
.
.,
. .,
'.

.,
"
"1
.' .'
J
....,
"
"1;1
I.,.",
....,
,",
":''j1
."

....;
',:'1'
hi!
. "
" .,,,
. \\
'",
'-

.,..
.,'".
" ..
;, 'oJ
,..:)j
,.
'- r; ,
,'I. '
." .,'
".'
Capitolo 1

ecunaJe UeCUDaJe I...iara.ttere "'ESa.decimale uecimale
pazlO 20
.
32 A 41
.
65
I 21 33 B 42 66
.. .. . . .. .. ..
+
2B 43 Z 5A 90
0 30 48 a 61 97
1 31 49 b 62 98
.. .. .. .. ..
9 39 57'" z 8A 122
L'informazione elaborata all'interno di un calcalatore elettronico non esolamente di
carattere numerico, in quanta enecessaria rappresentare l'informazioni di tipo testuale
o cornUDque inIormazione di qualunque genere codificata attraverso simboli binari.
E costume universale chiamare byte un raggruppamento di 8 bit. Col termine
parala si intende un gruppo d.i 2, 4 0 piil byte, a seconda del contesto. Per esempio,
nelle ma.cchine a 16 bit si considera la parala corne farmata da 2 byte, mentre nelle
macchine a 32 bit la parola si considera farmata da 4 byte.
Per rappresentare l'informazione alfanumerica si rende necessario stabilire una
biunivoca tra cara.tteri e segni dell'alfabeto e configurazioni di cifre
binarie. La conispondenza in ql.!-estione si dice codifica. Un forma molte naturale
ecodificare un carattere a byte. diverse codifiche, tra cui la pili nota ela
codifica ASCII (America Standard Code}or the Interchange of Information). Origi-
nariamente il codiee non definiva una corrispondenza per tutti Ie possibili 256
configurazioni eli 8 bit. Nella versione correntemente usata (ASCII esteso) 1a codifica
riguarda tutte Ie configurazioni. Di reeente 1a codifica ASCII ha cominciato ad appa-
rire insufficiente, per questo motivo stanno entrando in uso codici BU 2 byte come la
codifica. Unicode, 1a Quale con5ente di rappresentare 65.536 2
16
differenti caratteri.
1.2.7 Informazioni di carattere alfanumerico
22
I
, I ca.lcolatori r"appresentano il settore applicativo in cui l'elettronica e Ie tecnologie
\ digitali hanno trovato piu vasta applicazione.
Un semplice ragionaD')ento spiega bene Ie ragioni del successo
digitale. Se un sistema 5i campane di n elementi e p e1a probabilita che ha ciascuno
\
di ea5i <Ii operare correttamente, allora la prohahilita che l'insieme degli n componenti
operi correttamente epn. Se 5i considera quant'e grande il numero di componenti
elementari the formano un moderno calcolatore elettronico, si deduce epe p dE;ve
essere tendenzialmente 1. Da un punta di vista tecno10gico cib richiede componenU
\ tali per cui sia facile diagno5ticare Ie situazioni di onamento. D massimo della
I semplicita e della affidabilita 8i ha con "sistemi digitali nari" , cioe con sistemi in cui
i segnall pOB50no assumere solo due valori e i cui compon: nti devono possedere solo la '.
I .
l
1 1.3 Logica dei sistemi digitali
)
\
1
l
\
I
1
)
1
\. Tabella 1.6 Codifica "ASCII dei caratteri alfanumerici.
23
NOT
Introduzione
x t>o X
mpo

D x+y
.
te
xy
1.3.1 L'algebra delle reti
AND OR
Figura 1.2 Simboli standard per le porte AND. OR e NOT.
. .
,X-fJ.-_
y-L--
1
a
, Figura 1.1 Forma d'onda idealizzata di un segnale logico.
HUn segnale analogico porta piil informa7.ione di un seguale digitate, sia. percbe a 6680 corrisponde
, una. infinita di valori nel1'intervallo di definizione, sia perche e possibile una infinita. di andamenti
della forma. d10nda del segnale. In pratica, disturbi e Iimiti fisici alIa vclocita di variazione rendono
inaccurato sia il procesao di generazione sia queUo di riconosdmento e misura de.i segnali analogici. Al
contrario, un segnale digitale emolto meno sensibile al ruinore e ai fenomeni transitori. Per quanta
riguarda i disturbi, basta the questi non portico il segnale al di fuoTi della fascia di discretizzazione
in cui si trova i1 valore del segnale al momento del verificarsi del disturbo; per quanto riguarda i
fenomenj traJlsitori, basta dar tempo sufficiente al loro esaurirsi in modo che il riconoscimento del
segnale dia un risultato non a.mbiguo.
15Vale la pella di rimareare che i due simboli nulla hanna a cbe fare can i corrispondenti simboli
aritmetici. Cib che serve per definire I'algebra sono due simholi distinti. In attn contest.i
L'algebra edefinita su un insieme, composto da due soli elementi,
denotati
lS
con 0 e 1.
. Le reti costruite a partire dalIe porte logiche possono essere descritte attraver-
so un'algeora, detta algebra delle reti 0 algebra booleana, in ragione del fatto che
essa deriva dalla "logica" del ealcolo delle proposizioni, introdotta nel secolo seorso
dal maternatieo e filosofo Inglese George Boole. Proprio in virtu dell'origine di que-
.: .s'ta algebra, Ie reti in questione vengono usualmente dette "reti logiche". Per una
, loro trattazione si rimanda all' Appendice A. Qui di seguito vengono rapidamente
,: richi"arnati aleuJ.1i concetti essenziali.
I componenti elementari dei sistemi digitali vengono detti "circuiti logici" 0, pili
comunemente Hporte". In Figura 1.2, vengono dati i simboli delle tre porte logiche
, fondamentali. Ovviamente gli ingressi e Ie uscite sonG segnali binari.
di discriminarli. Si tratta, per esempio, di se un da.to segnale ea
un Hvello di tensione alto 0 basso, oyvero se ha un valore superiore b inferiore a Wla
.. data soglia
14
. In Figura 1.1 viene riportato l'andamento (idealizzato) di un segnale
binario.
.,

..
)
'.
,
-
-'
.,
,
' A'
.'
.
" ., .
" "
....
. ,'. .
.,-.. ,

"
,_.
....
.;ll;;
,'.


,
..

"" .-
.
.,
. .,
'.

.,
"
"1
.' .'
J
....,
"
"1;1
I.,.",
....,
,",
":''j1
."

....;
',:'1'
hi!
. "
" .,,,
. \\
'",
'-

.,..
.,'".
" ..
;, 'oJ
,..:)j
,.
'- r; ,
,'I. '
." .,'
".'
Capitolo 1

ecunaJe UeCUDaJe I...iara.ttere "'ESa.decimale uecimale
pazlO 20
.
32 A 41
.
65
I 21 33 B 42 66
.. .. . . .. .. ..
+
2B 43 Z 5A 90
0 30 48 a 61 97
1 31 49 b 62 98
.. .. .. .. ..
9 39 57'" z 8A 122
L'informazione elaborata all'interno di un calcalatore elettronico non esolamente di
carattere numerico, in quanta enecessaria rappresentare l'informazioni di tipo testuale
o cornUDque inIormazione di qualunque genere codificata attraverso simboli binari.
E costume universale chiamare byte un raggruppamento di 8 bit. Col termine
parala si intende un gruppo d.i 2, 4 0 piil byte, a seconda del contesto. Per esempio,
nelle ma.cchine a 16 bit si considera la parala corne farmata da 2 byte, mentre nelle
macchine a 32 bit la parola si considera farmata da 4 byte.
Per rappresentare l'informazione alfanumerica si rende necessario stabilire una
biunivoca tra cara.tteri e segni dell'alfabeto e configurazioni di cifre
binarie. La conispondenza in ql.!-estione si dice codifica. Un forma molte naturale
ecodificare un carattere a byte. diverse codifiche, tra cui la pili nota ela
codifica ASCII (America Standard Code}or the Interchange of Information). Origi-
nariamente il codiee non definiva una corrispondenza per tutti Ie possibili 256
configurazioni eli 8 bit. Nella versione correntemente usata (ASCII esteso) 1a codifica
riguarda tutte Ie configurazioni. Di reeente 1a codifica ASCII ha cominciato ad appa-
rire insufficiente, per questo motivo stanno entrando in uso codici BU 2 byte come la
codifica. Unicode, 1a Quale con5ente di rappresentare 65.536 2
16
differenti caratteri.
1.2.7 Informazioni di carattere alfanumerico
22
I
, I ca.lcolatori r"appresentano il settore applicativo in cui l'elettronica e Ie tecnologie
\ digitali hanno trovato piu vasta applicazione.
Un semplice ragionaD')ento spiega bene Ie ragioni del successo
digitale. Se un sistema 5i campane di n elementi e p e1a probabilita che ha ciascuno
\
di ea5i <Ii operare correttamente, allora la prohahilita che l'insieme degli n componenti
operi correttamente epn. Se 5i considera quant'e grande il numero di componenti
elementari the formano un moderno calcolatore elettronico, si deduce epe p dE;ve
essere tendenzialmente 1. Da un punta di vista tecno10gico cib richiede componenU
\ tali per cui sia facile diagno5ticare Ie situazioni di onamento. D massimo della
I semplicita e della affidabilita 8i ha con "sistemi digitali nari" , cioe con sistemi in cui
i segnall pOB50no assumere solo due valori e i cui compon: nti devono possedere solo la '.
I .
l
1 1.3 Logica dei sistemi digitali
)
\
1
l
\
I
1
)
1
1
)
25
Introduzione

smcrone
,
..
,
Reti sequenziali Si ha una rete sequenziaJe quando l'uscita efunzione
l
oltre ch I
dell'ingresso, anche della stato. Indicando con S = {Yl,Y2, .. ' ,Yd 10 stato correntE. '
della rete, l'uscita viene espressa come. 0 = 1(1,8). AHa funzione di uscita e
necessario aggiungere 1a funzione di stato, espressa eome 81 = g(1,S), che lega Ie I
_stato futuro alIa stato presente e all'ingresso. Una rete sequenziale ha memonG
(limitata) della sequenza di ingresso. Gli elenienti di memoria binari vengonc. j
detti flip-flop.
17Ncl seguito useremo normalmente la pa.roia clock per denotare it segnale impulsivo, di frequenz, ,
fissa." impiegato per comandare reti sincrone. 1
,..
Iri 1.3 viene data una schematizzazione del modo di operare di una rete sequen-
ziale 8incrona, 'L'intervallo di clock T viene diviao in due parti, Ll
1
e Ll
2
, Durante Ll
1
1
1a parte, di logica cotnbina.toria (LC) presente nella rete elabora i segnali ai suoi in,
determina gli ingressi per gli elementi di memoria. Durante Ll
2
gli elementi d: J
-rIlemona si portano oegli stati previsti dai lora ingressi. Questo modello di funziona-
corrisponde essenzialmente alFipotesi di flip-flop master-slave che campionanC" l
i .loro .ingressi suI fronte di salita del clock e presentano il nuovo stato suI fronte d
.' discesa del clock; sui fronte di salita del clock, i segnali in ingresso agli elementi d
, devono essere stabili. Naturalmente non enecessario che i flip-flop siano
qi tipo maSter-slave e il funzionamento della rete pub prendere forme leggermente
funzione del modo di operare degli elementi di memoria. Si p0580no, pel )
usare elementi di memoria, che operano sempHcemente BU un fronte; cio chI
eche al sopraggiungere del clock i flip-flop abbiano ingressi stabili. Inoltre,
-dopo.che i Rip-flop hanno presentato Ie loro uscite e
,
prima che sopraggiunga i1 nuovo >
. cl?ck
l
deve esserci tempo per tutti i segnali, compresi quelli derivanti dalPingresso, d J
prppagarsi e stabilizzarsi.
. . . 1
.' -... .
rete sequenziale di. tipo sinerono a Un.a. rete vi.ene detta j
asiricFq.na .quando eS8a reaglsce Immediatamente alla vanazlOne degli lDgresSl
l
portan-
dosi daUo stato presente al nuovo stato nel solo tempo richiesto dalla eommutazione
Una .rete dice ,speciale.. segnale, dettc I
_ 91 forn.lsce l'LSt.ante ?Ul gli. di memona che la com f
pongono esammano (eamplOoano) 1 propn mgressl determmaodo quale sara 10 state.
._.- futuro. Una rete sequenziale ainerona si costruisee a partire da ftip-Bop sineroni.
-:-.-,. n diagramma di stato emodo naturale per descrivere il comportamento di un;; i
Per gli approfondimenti necessari si rinvia all'Appendice A.
..
"
,
. , ,':r:.' .,'" .,'
, . '. 1.4.1' Reti sequenziali

..
_::.-"'- ,.
.
"
-,
.
- ! ...
,
..
-
'.-.-
'- " ,.,. '.-.
,
,
..
-"... ,
;:. :}:,
" ,- ..' - - -
-
. - ".... "'Reti combinatorie Si ha una rete combinatoria quando l'uscita eesclusivamente )
fuitzi6ne dell1ingresso, ovvero quando per una data configurazione dei segnali
di ingresso risultano definiti i segnali di uscita. Indicando con I l'insieme dei I
,egnali di' ingresso e con 0 I'insieme dei segnali <Ii owero, posta I = l
{Xl ,X2, ... ,X
n
} eO = {Zl ,z21 ... ,Zm}, per una rete combrnatona, vale la relazlone.
0= f(l)
''l.'''l'''t!'->0' .;.... -- "
:_
.
, :';'+ -" -
.-
-- ,
_... . ,
, :/
I:
\:.:0,
,'" " .
.
'" ,.,
...,(iII'
" .

,,,
, ,

..
., ,.,
, .rl.
, .....
. c.
.
":.;'.'
.

.,
..
.'/'
ii"
, .'

.'
,,,il
",l:
'Ji-,..

-,)1{
dl
,'"
,;t')'I'
';j '"
_']1 .
.'-:,
x;iD
vomple-
mentazione
A B

1
D
se' e solo se x=l
xiI
se e solo se
Pradotto logico
A B A-B
D D D
D I D D I I
I D D I D I
1 1 1 I 1 1
1.4 Reti combinatorie e reti sequenziali
Sull'insieme {O,l} vengono definite tre operazioni
16
:
il prodott.o logico, indicato con il segno 1I.1I;
la somma logica, indicata con il segno "+";
la complementazione 0 negazione, indicata il segno " - II
Le tre operazioni corrispondono, rispettivamente, alle tre porte di Figura 1.2 e i simboli
U+", ".'1 e 11-" sono intercambiabili con AND, OR e NOT.
In Tabella 1.7 vengono riportate Ie tabelle di verita delle tre operazioni. La
tabella di ventd di una operazione riporta it risultato dell'operazione stessa per tutte
Ie possibili combinazioni dei valori degli operandi.
Si definisce costante logica (0 booleana) un simbolo cui epermanefltemente asse-
gnato uno dei due possibili valori presi dall'insieme {O, I}. Si definisce voriabile logica
un simbolo che puo assumere indifferentemente uno dei due valori presi daB'insieme
{D, I}. Se x euna logica si ha:
Una funzione puo essere espressa in forma algebrica 0 in forma tabellare.
,
usate differenti coppie di simboli come: vero/falso, V/F, T/F e altri. A ogni buon conto, l'uso dei
simboli 0 e 1 risulta convcniente quando si tratta di impiegare Ie reti per realizzazione dcgli operatod
dell'aritmetica binaria.
16Anche per gli operatori . e + valgono Ie stesse avvertenze date per i due simboli 0 c 1: niente
hanna ache vedere can i corrispondenti operatori aritmetici.
,
Si definisce espressione logica una qualunque combinazione di variabili a costanti
booleane legate fra lora dagli operatori logici fondarnentali. Si definisce junzione
logica delle n variabili booleane x" ... ,X
n
, la relazione {D,l}n -; {D;l} che associa un
valore booleano a ciascuna delle 2
R
configurazioni possibili delle n variablli:
y = f(x, ,... ,x
n
)
Si distinguono due categorie fondamentali di reti: Ie reti combinatorie e Ie reti
sequenziali (CIr. Appendice A).
Tabella 1.7 Ta.belle di verita delle tre operazioni fondamentali deWalgebra
24 Ca.pitolo 1
1
)
25
Introduzione

smcrone
,
..
,
Reti sequenziali Si ha una rete sequenziaJe quando l'uscita efunzione
l
oltre ch I
dell'ingresso, anche della stato. Indicando con S = {Yl,Y2, .. ' ,Yd 10 stato correntE. '
della rete, l'uscita viene espressa come. 0 = 1(1,8). AHa funzione di uscita e
necessario aggiungere 1a funzione di stato, espressa eome 81 = g(1,S), che lega Ie I
_stato futuro alIa stato presente e all'ingresso. Una rete sequenziale ha memonG
(limitata) della sequenza di ingresso. Gli elenienti di memoria binari vengonc. j
detti flip-flop.
17Ncl seguito useremo normalmente la pa.roia clock per denotare it segnale impulsivo, di frequenz, ,
fissa." impiegato per comandare reti sincrone. 1
,..
Iri 1.3 viene data una schematizzazione del modo di operare di una rete sequen-
ziale 8incrona, 'L'intervallo di clock T viene diviao in due parti, Ll
1
e Ll
2
, Durante Ll
1
1
1a parte, di logica cotnbina.toria (LC) presente nella rete elabora i segnali ai suoi in,
determina gli ingressi per gli elementi di memoria. Durante Ll
2
gli elementi d: J
-rIlemona si portano oegli stati previsti dai lora ingressi. Questo modello di funziona-
corrisponde essenzialmente alFipotesi di flip-flop master-slave che campionanC" l
i .loro .ingressi suI fronte di salita del clock e presentano il nuovo stato suI fronte d
.' discesa del clock; sui fronte di salita del clock, i segnali in ingresso agli elementi d
, devono essere stabili. Naturalmente non enecessario che i flip-flop siano
qi tipo maSter-slave e il funzionamento della rete pub prendere forme leggermente
funzione del modo di operare degli elementi di memoria. Si p0580no, pel )
usare elementi di memoria, che operano sempHcemente BU un fronte; cio chI
eche al sopraggiungere del clock i flip-flop abbiano ingressi stabili. Inoltre,
-dopo.che i Rip-flop hanno presentato Ie loro uscite e
,
prima che sopraggiunga i1 nuovo >
. cl?ck
l
deve esserci tempo per tutti i segnali, compresi quelli derivanti dalPingresso, d J
prppagarsi e stabilizzarsi.
. . . 1
.' -... .
rete sequenziale di. tipo sinerono a Un.a. rete vi.ene detta j
asiricFq.na .quando eS8a reaglsce Immediatamente alla vanazlOne degli lDgresSl
l
portan-
dosi daUo stato presente al nuovo stato nel solo tempo richiesto dalla eommutazione
Una .rete dice ,speciale.. segnale, dettc I
_ 91 forn.lsce l'LSt.ante ?Ul gli. di memona che la com f
pongono esammano (eamplOoano) 1 propn mgressl determmaodo quale sara 10 state.
._.- futuro. Una rete sequenziale ainerona si costruisee a partire da ftip-Bop sineroni.
-:-.-,. n diagramma di stato emodo naturale per descrivere il comportamento di un;; i
Per gli approfondimenti necessari si rinvia all'Appendice A.
..
"
,
. , ,':r:.' .,'" .,'
, . '. 1.4.1' Reti sequenziali

..
_::.-"'- ,.
.
"
-,
.
- ! ...
,
..
-
'.-.-
'- " ,.,. '.-.
,
,
..
-"... ,
;:. :}:,
" ,- ..' - - -
-
. - ".... "'Reti combinatorie Si ha una rete combinatoria quando l'uscita eesclusivamente )
fuitzi6ne dell1ingresso, ovvero quando per una data configurazione dei segnali
di ingresso risultano definiti i segnali di uscita. Indicando con I l'insieme dei I
,egnali di' ingresso e con 0 I'insieme dei segnali <Ii owero, posta I = l
{Xl ,X2, ... ,X
n
} eO = {Zl ,z21 ... ,Zm}, per una rete combrnatona, vale la relazlone.
0= f(l)
''l.'''l'''t!'->0' .;.... -- "
:_
.
, :';'+ -" -
.-
-- ,
_... . ,
, :/
I:
\:.:0,
,'" " .
.
'" ,.,
...,(iII'
" .

,,,
, ,

..
., ,.,
, .rl.
, .....
. c.
.
":.;'.'
.

.,
..
.'/'
ii"
, .'

.'
,,,il
",l:
'Ji-,..

-,)1{
dl
,'"
,;t')'I'
';j '"
_']1 .
.'-:,
x;iD
vomple-
mentazione
A B

1
D
se' e solo se x=l
xiI
se e solo se
Pradotto logico
A B A-B
D D D
D I D D I I
I D D I D I
1 1 1 I 1 1
1.4 Reti combinatorie e reti sequenziali
Sull'insieme {O,l} vengono definite tre operazioni
16
:
il prodott.o logico, indicato con il segno 1I.1I;
la somma logica, indicata con il segno "+";
la complementazione 0 negazione, indicata il segno " - II
Le tre operazioni corrispondono, rispettivamente, alle tre porte di Figura 1.2 e i simboli
U+", ".'1 e 11-" sono intercambiabili con AND, OR e NOT.
In Tabella 1.7 vengono riportate Ie tabelle di verita delle tre operazioni. La
tabella di ventd di una operazione riporta it risultato dell'operazione stessa per tutte
Ie possibili combinazioni dei valori degli operandi.
Si definisce costante logica (0 booleana) un simbolo cui epermanefltemente asse-
gnato uno dei due possibili valori presi dall'insieme {O, I}. Si definisce voriabile logica
un simbolo che puo assumere indifferentemente uno dei due valori presi daB'insieme
{D, I}. Se x euna logica si ha:
Una funzione puo essere espressa in forma algebrica 0 in forma tabellare.
,
usate differenti coppie di simboli come: vero/falso, V/F, T/F e altri. A ogni buon conto, l'uso dei
simboli 0 e 1 risulta convcniente quando si tratta di impiegare Ie reti per realizzazione dcgli operatod
dell'aritmetica binaria.
16Anche per gli operatori . e + valgono Ie stesse avvertenze date per i due simboli 0 c 1: niente
hanna ache vedere can i corrispondenti operatori aritmetici.
,
Si definisce espressione logica una qualunque combinazione di variabili a costanti
booleane legate fra lora dagli operatori logici fondarnentali. Si definisce junzione
logica delle n variabili booleane x" ... ,X
n
, la relazione {D,l}n -; {D;l} che associa un
valore booleano a ciascuna delle 2
R
configurazioni possibili delle n variablli:
y = f(x, ,... ,x
n
)
Si distinguono due categorie fondamentali di reti: Ie reti combinatorie e Ie reti
sequenziali (CIr. Appendice A).
Tabella 1.7 Ta.belle di verita delle tre operazioni fondamentali deWalgebra
24 Ca.pitolo 1
Figura 1.3 Schematizzazione delle operazioni delle reti sincrone.
In Figura lA, a sinistral vengono mostrate due reti in cascata operanti con 10
stesso clock. In questc case, sul generico impulso, 130 rete a valle elabora il risultato
delle elaborazioni effettuate dalla rete a monte nel periodo precedente. La scomposi-
zione d.i una rete in due'o pili reti in cascata si dimostra utile quando 130 rete singola
sarebbe trappe complessa. Cia compacta che l'esecuzione cii una data fUDzione (0
elabora.zione) richiede piu eli un cicIo di clock. E-facile convincersi, perc, che se si
realizzassero Ie sottoreti seguendo il madello sulla destra in Figura 1.3, ogni variazione
dell'ingresso primario si propagherebbe fino all'uscita, invalidando paffermazione pre-
cedente. E percio necessaria "disaccoppiare" il funzionamenta delle sottoreti , nel
senso ebe I'ingresso di una sottorete a valle sia determinato solo dalia sottorete a
monte e non dall'ingresso primario. Cia si ottiene rendenda Ie uscite delle sottoreti
funzioni del solo stato, come illustrato a destra in Figura 1.4. Si noti ebe can questa
struttura, al generico periodo di clock la rete a valle vede come ingressi Ie uscite della
rete a mante, calcolate nel clock precedente, mentre Ie variazioni degli ingressi primari
vengoDo osservate solo dalla rete a monte.
Di norma, il periodo minima del clock della rete scomposta in Bottoreti risulta
pin breve di queUo ebe si avrebbe con un'unica rete, in quanto l'intervallo di tempo
.:1
1
richiesto dalla logica combinatoria delle sottoreti risulta minore eli quanto richie-
derebbe una sola rete. Ma il tempo complessivo per eseguire una data funzione e
superiore scomponendo la rete in pili reti in cascata. lnfatti, sia T il periodo di -
clock richiesto da una rete non e T
'
queUo richiesto dalle sottoreti (che
,
supporremo uguale
,
per semplicita). E ragionevole aspettarsi che la componente LJ
1
di T' sia inferiore alia componente L1
1
di T, mentre non c'e ragione per cui sia
diversi da .:1
2
. Ne consegue ebe T' < T, rna la rete scomposta opera in un tempo
IT' ebe eli norma eminore di T. Questa ragionamento non deve far pensare che la
scomposizione di una rete in piu reU operanti in cascata sia ,da escIudere. Anzitutto
la scomposizione semplifica il progetto, in quanta cODsente di raggruppare e iso1are
funzionalita. D'altra parte, la natura stessa dei processi elaborativi impone talvolta
una ben definita successione di passi , per cui la soluzione schematizzata in Figura 1.4
risulta. comunque la piu conveniente.
Possiamo elaboTare ulteriormente il modello di Figura 1.4 COIl il seguente Tagio-
namento: il blocco LC
,
a valle degli elementi di memoria, puo essere accorpato al
blocco LC in ingresso alFeventuale rete a vaile. Si ottiene, cosl, il modelIo I"iportato
in Figura 1.5, dove ora Ie uscite cOTrispoodono esattamente allo stato della (sotto)rete.
I I 1,--_
-
27 lntroduzione

LC
100__11
S
LC
"
,


t
LC
f-.
llo...,_" S
"
. ",

Figura 1.5 Madella di blocco componente di una rete sequenziale sinerona. L'uscita.
eorrisponde allo stato della rete.
I
UH UH
0
...
tlllCllO<.
f f
1.5 Registri
Nella discussione precedente si e parlato di elementi di memoria in riferimento al
solo stato della rete. Conviene generalizzare il concetto di memoria, In particolare,
conviene introdurre il concetto di registro.
Per registro si intende un insieme di n identici elementi di memoria (flip-flop),
tutti comandati claUo stesso clock.
I registri Bono componenti essenziali dei sistemi di elaborazione, non solo perche
costituiscono i supporti che materializzano l'informazione nella macchilla., rna anehe
perche essi permettono di partizionare 1a logica complessiva e di scomporla in blocchi
serniindipendenti, accoppiati tramite registri.
I registri possono differenziarsi per il tipo di flip-flop impiegatl
,
per il modo in
cui essi vengono comandati, per Ie funzioni aggiuntive a queUe di contenitore
formazione (per esempio, 10 scorrimento) ecc. Per i nostri usi facemo riferimento ailo
schema di Figura 1.6. nfunzionamento del registro eil seguente.
Figura 1.4 Collegamento in cascata di clue reti sincrone eoma.nclate dalIo stesso clock e
modella aggiornato della rete sequenziale, can uscita funzione solo della stato.
I vincoli riguardanti la propagazione dei segnali, si semplificano ulteriormente. lnfatti
se tutta la rete efatta di blocchi come quello di Figura 1.5, la rete combinatoria vede
sicuramente ingressi stabili, Se ora si ipotizza che gli clementi di memoria operino sul
fronte di discesa del clock, basta che if periodo sia lungo abbastanza. da consentire la
propagazione attraverso 1a parte combinatoria e da lasciare il margine richiesto dai
flip-flop per commutare. Piu sotto, una volta introdotti i registri, costruiremo un
modello ulteriormente semplificato.
,
,
,!i
,
"
.,
,.'

11
jl
\1'
, '
" ,
"
'I:
,
,
,,',
'I
;
j
,1!'

.<
"
" \(


/,'
JI
,
".,:,
,.
'!I
",
\"
I'
"I'
,
"
',.,
<,
.,
'l '. ." ,
'."
.,.
.,


Ji
,.,
,
..
,

" ."
"'1. , ,
"

"

:'-'
,.

'F-
I
,
.,.
'I'
"
'1<

:;/'
""
; [;
'1
I,
",;:
l'
."
" I
"
"
.",
it
' .
I. :
"
i
""
"
"'1

\',! ,
',.
u'
,
,
11

,
,I'
."
I

Q
LC

Z1_.....
-"-

"T ,I" :1
o
T

I
Capitola 1 26
I
\
]
\
I
)
)
1
1
I
]
I
I'
1
Figura 1.3 Schematizzazione delle operazioni delle reti sincrone.
In Figura lA, a sinistral vengono mostrate due reti in cascata operanti con 10
stesso clock. In questc case, sul generico impulso, 130 rete a valle elabora il risultato
delle elaborazioni effettuate dalla rete a monte nel periodo precedente. La scomposi-
zione d.i una rete in due'o pili reti in cascata si dimostra utile quando 130 rete singola
sarebbe trappe complessa. Cia compacta che l'esecuzione cii una data fUDzione (0
elabora.zione) richiede piu eli un cicIo di clock. E-facile convincersi, perc, che se si
realizzassero Ie sottoreti seguendo il madello sulla destra in Figura 1.3, ogni variazione
dell'ingresso primario si propagherebbe fino all'uscita, invalidando paffermazione pre-
cedente. E percio necessaria "disaccoppiare" il funzionamenta delle sottoreti , nel
senso ebe I'ingresso di una sottorete a valle sia determinato solo dalia sottorete a
monte e non dall'ingresso primario. Cia si ottiene rendenda Ie uscite delle sottoreti
funzioni del solo stato, come illustrato a destra in Figura 1.4. Si noti ebe can questa
struttura, al generico periodo di clock la rete a valle vede come ingressi Ie uscite della
rete a mante, calcolate nel clock precedente, mentre Ie variazioni degli ingressi primari
vengoDo osservate solo dalla rete a monte.
Di norma, il periodo minima del clock della rete scomposta in Bottoreti risulta
pin breve di queUo ebe si avrebbe con un'unica rete, in quanto l'intervallo di tempo
.:1
1
richiesto dalla logica combinatoria delle sottoreti risulta minore eli quanto richie-
derebbe una sola rete. Ma il tempo complessivo per eseguire una data funzione e
superiore scomponendo la rete in pili reti in cascata. lnfatti, sia T il periodo di -
clock richiesto da una rete non e T
'
queUo richiesto dalle sottoreti (che
,
supporremo uguale
,
per semplicita). E ragionevole aspettarsi che la componente LJ
1
di T' sia inferiore alia componente L1
1
di T, mentre non c'e ragione per cui sia
diversi da .:1
2
. Ne consegue ebe T' < T, rna la rete scomposta opera in un tempo
IT' ebe eli norma eminore di T. Questa ragionamento non deve far pensare che la
scomposizione di una rete in piu reU operanti in cascata sia ,da escIudere. Anzitutto
la scomposizione semplifica il progetto, in quanta cODsente di raggruppare e iso1are
funzionalita. D'altra parte, la natura stessa dei processi elaborativi impone talvolta
una ben definita successione di passi , per cui la soluzione schematizzata in Figura 1.4
risulta. comunque la piu conveniente.
Possiamo elaboTare ulteriormente il modello di Figura 1.4 COIl il seguente Tagio-
namento: il blocco LC
,
a valle degli elementi di memoria, puo essere accorpato al
blocco LC in ingresso alFeventuale rete a vaile. Si ottiene, cosl, il modelIo I"iportato
in Figura 1.5, dove ora Ie uscite cOTrispoodono esattamente allo stato della (sotto)rete.
I I 1,--_
-
27 lntroduzione

LC
100__11
S
LC
"
,


t
LC
f-.
llo...,_" S
"
. ",

Figura 1.5 Madella di blocco componente di una rete sequenziale sinerona. L'uscita.
eorrisponde allo stato della rete.
I
UH UH
0
...
tlllCllO<.
f f
1.5 Registri
Nella discussione precedente si e parlato di elementi di memoria in riferimento al
solo stato della rete. Conviene generalizzare il concetto di memoria, In particolare,
conviene introdurre il concetto di registro.
Per registro si intende un insieme di n identici elementi di memoria (flip-flop),
tutti comandati claUo stesso clock.
I registri Bono componenti essenziali dei sistemi di elaborazione, non solo perche
costituiscono i supporti che materializzano l'informazione nella macchilla., rna anehe
perche essi permettono di partizionare 1a logica complessiva e di scomporla in blocchi
serniindipendenti, accoppiati tramite registri.
I registri possono differenziarsi per il tipo di flip-flop impiegatl
,
per il modo in
cui essi vengono comandati, per Ie funzioni aggiuntive a queUe di contenitore
formazione (per esempio, 10 scorrimento) ecc. Per i nostri usi facemo riferimento ailo
schema di Figura 1.6. nfunzionamento del registro eil seguente.
Figura 1.4 Collegamento in cascata di clue reti sincrone eoma.nclate dalIo stesso clock e
modella aggiornato della rete sequenziale, can uscita funzione solo della stato.
I vincoli riguardanti la propagazione dei segnali, si semplificano ulteriormente. lnfatti
se tutta la rete efatta di blocchi come quello di Figura 1.5, la rete combinatoria vede
sicuramente ingressi stabili, Se ora si ipotizza che gli clementi di memoria operino sul
fronte di discesa del clock, basta che if periodo sia lungo abbastanza. da consentire la
propagazione attraverso 1a parte combinatoria e da lasciare il margine richiesto dai
flip-flop per commutare. Piu sotto, una volta introdotti i registri, costruiremo un
modello ulteriormente semplificato.
,
,
,!i
,
"
.,
,.'

11
jl
\1'
, '
" ,
"
'I:
,
,
,,',
'I
;
j
,1!'

.<
"
" \(


/,'
JI
,
".,:,
,.
'!I
",
\"
I'
"I'
,
"
',.,
<,
.,
'l '. ." ,
'."
.,.
.,


Ji
,.,
,
..
,

" ."
"'1. , ,
"

"

:'-'
,.

'F-
I
,
.,.
'I'
"
'1<

:;/'
""
; [;
'1
I,
",;:
l'
."
" I
"
"
.",
it
' .
I. :
"
i
""
"
"'1

\',! ,
',.
u'
,
,
11

,
,I'
."
I

Q
LC

Z1_.....
-"-

"T ,I" :1
o
T

I
Capitola 1 26
I
\
]
\
I
)
)
1
1
I
]
I
I'
1
,
"
1.6 Trasferimento dell'informazione
Figura 1. 7 Madella di registro. Nel seguito si omette spesso eli indicare i segna.li Rin e
Rout, in tal caso si deve assumere che essi sono sempre asseriti
Figura 1.6 Struttura di un registro. Viene mostrato i1 dettaglio per il generico bit. 8i
assume che i1 registro commuti suI honte di discesa del clock. Nello schema si esupposto
che it segnale Rout abiliti l'uscita. in terzo stato.
J
J
1
I
\
I
\
I
1
1
\
I
I
)
I
29
. IntrQduzione
RTlout

,
RT, ,
RT,
BUS
7
.
RRlln ... RRain
RR,
,
RR,
Praticamente la struttura a bus e10 standard nel mondo dei calcolatori. Thttavia
ha un inconveniente: consente un solo trasferimento aUa volta. In certe situazioni
questo e fattore limitativo e
1
in presenza di alto traffico, il bus puo facilmente
diventare il "collo di bottiglia" del sistema. InoLtre
1
un bus richiede la logica di
arbitraggio che consenta .di risolvere Ie contl;!se per il suo uSa.
1. 7 Unita aritmetiche e logiche
In precedenza si eaccennato all'aritmetica b10aria (Cfr,1.2,3), Si puo fare un'osser.
vazione, apparentemente ovvia
1
rna di fondamentali conseguenze: Ie tabell.i.Jie delle
operazioni aritmetiche contengono i due soli simboli '0 e I, esattamente come due
sono i simboli nell'algebra delle reti. Ne deriva che Ie tabelline aritmetiche possono
interprete come Ie tabelle di veritA delle funzioni logiche corrispondenti aile
operazioni aritmetiche.
0>
.scegliere i percorsi che interessano in un dato istante. Una simile rete ecomponibile
attraverso porte AND/OR; la logica di selezione detennina quali registri verranno
caricati al prossimo clock. Una rete di m x n percorsi reode possibile trasferimenti \
multipli su ciascun clock) compreso il trasferimento da uno a pili redistri e il trasferi-
mento dell'OR del contenuto di pili sorgenti in una 0 pili destinaziohi. Thttavia una
simile rete ha lo svantaggio della complessita e dell'occupazione d.i spazio suI chip per
cui si preferisce ricorrere aHa struttura il ous.,
n bus euna semplice linea di collegamEmto'a cui 50no conneBse tutte Ie uBcite
dei dispositivi trasmittenti e tutti gli ingressi dei diapositivi riceventi. Sebbene sia
possibile costruire bus con logica convenzionale) la Btruttura a bus ha senso se si
utilizza logica con uscita a tre stati, 0
1
quantomeno
1
a coUettore aperto. Lo schema
di collegamento at bus eriportato in Figura 1.8. Se Ie uscite.sul bus sono in Iogica a
tre stati solo un trasmittente alIa volta puo avere l'uscita abilitata. Se le uscite sono
a collettore aperto epossibile abilitarne pili di una e 10 tal caso si ba il wired AND
(Iogica positiva) delle uscite stesse,
. Figura 1.8 Schema di collegamento tramite bus. Si suppone Ie uscite dei registri collegati
suI bus siano a tre stati. In un dato momenta deve essere asserito un solo segnale di abi-
litazione delle uscite, in modo che il bus venga porlato allo stato logico del corrispondente
registro. I segnali di abilitazione degli ingressi detenninano quali registri di destinazione
vengono car"icati sui prossimo (fronte del) clock.'
,
-. __
..
jl
ill,
"
""I
..
.,

J
i
..
'>j;
..
"
.!,I

,';";
'"
':1
"'1
"
.;,
,..
'Ii..
'1' '2 '
..

.;::-1



",'1.



"
'"
.;:. :
"I' 0>
;'
},
,


,
:i
t

;', :


... '
'"
, ,

"
,';:,.,
"
,:1'
..
..
(.
'.,
..
...'
'. "'
..
,
',11'
..
,"I'
.' "
";1"

.
,
.,
ii' --
,
Clock 61 T +62
---.J I I L
'r T
Cloak 61 I A2
OUT
IN
Rout
CIOO'---1: REG;TRO I
Rin
INi
Rin
'-.- '-.
>ck
,
x

Rout
OUTi
c,
Una larga parte delle attivita che si svolgono alPinterno di un calcolatore consiste nel
trasferimento dell1informazione tra registri.
Per trasferire informazione da un registro all'altro occorre che l'uscita del regi
stro sorgente venga portata all'ingresso del registro di destinazione, Se si hanno m
possibili registri sorgente e n possibili registri di destinazione
1
DecorTe una rete di
interconnessione che selettivamente coUeghi le sorgenti con Ie destinazioni. In linea di
principio si dovrebbero aver.e m x n percorsi e una logica di selezione che permetta di
Si assume che il regist!o commuti suI fronte di discesa del clockI doe alIa fine
del periodo, Prima del fronte del clock gli ingressi SR/JK devono essere stabili
almeno per il cosiddetto set-up time e devono restare stabili dopa i1 ronte per il
cosiddetto hold time (si veda la discussione in proposito in Appendice A),
Se Rin e disasserito, l'ingresso ai singoli flip-flop e 00 e, dunque
1
it registro si
mantiene nello stato precedente; se Rin easserito 10 stato di ogni flip-flop (it
contenuto del registro) diventa quello corrispondente alPingresso INi.
n segnale Rout ha funzione di Output Enable de1l1uscita a tre stati
Nel seguito useremo 10 schema di Figura 1.7. Quando i segnali Rin e Rout non
vengono indicati si assume che essi siano sempre asseriti.
28 Capitola 1
,

,
"
1.6 Trasferimento dell'informazione
Figura 1. 7 Madella di registro. Nel seguito si omette spesso eli indicare i segna.li Rin e
Rout, in tal caso si deve assumere che essi sono sempre asseriti
Figura 1.6 Struttura di un registro. Viene mostrato i1 dettaglio per il generico bit. 8i
assume che i1 registro commuti suI honte di discesa del clock. Nello schema si esupposto
che it segnale Rout abiliti l'uscita. in terzo stato.
J
J
1
I
\
I
\
I
1
1
\
I
I
)
I
29
. IntrQduzione
RTlout

,
RT, ,
RT,
BUS
7
.
RRlln ... RRain
RR,
,
RR,
Praticamente la struttura a bus e10 standard nel mondo dei calcolatori. Thttavia
ha un inconveniente: consente un solo trasferimento aUa volta. In certe situazioni
questo e fattore limitativo e
1
in presenza di alto traffico, il bus puo facilmente
diventare il "collo di bottiglia" del sistema. InoLtre
1
un bus richiede la logica di
arbitraggio che consenta .di risolvere Ie contl;!se per il suo uSa.
1. 7 Unita aritmetiche e logiche
In precedenza si eaccennato all'aritmetica b10aria (Cfr,1.2,3), Si puo fare un'osser.
vazione, apparentemente ovvia
1
rna di fondamentali conseguenze: Ie tabell.i.Jie delle
operazioni aritmetiche contengono i due soli simboli '0 e I, esattamente come due
sono i simboli nell'algebra delle reti. Ne deriva che Ie tabelline aritmetiche possono
interprete come Ie tabelle di veritA delle funzioni logiche corrispondenti aile
operazioni aritmetiche.
0>
.scegliere i percorsi che interessano in un dato istante. Una simile rete ecomponibile
attraverso porte AND/OR; la logica di selezione detennina quali registri verranno
caricati al prossimo clock. Una rete di m x n percorsi reode possibile trasferimenti \
multipli su ciascun clock) compreso il trasferimento da uno a pili redistri e il trasferi-
mento dell'OR del contenuto di pili sorgenti in una 0 pili destinaziohi. Thttavia una
simile rete ha lo svantaggio della complessita e dell'occupazione d.i spazio suI chip per
cui si preferisce ricorrere aHa struttura il ous.,
n bus euna semplice linea di collegamEmto'a cui 50no conneBse tutte Ie uBcite
dei dispositivi trasmittenti e tutti gli ingressi dei diapositivi riceventi. Sebbene sia
possibile costruire bus con logica convenzionale) la Btruttura a bus ha senso se si
utilizza logica con uscita a tre stati, 0
1
quantomeno
1
a coUettore aperto. Lo schema
di collegamento at bus eriportato in Figura 1.8. Se Ie uscite.sul bus sono in Iogica a
tre stati solo un trasmittente alIa volta puo avere l'uscita abilitata. Se le uscite sono
a collettore aperto epossibile abilitarne pili di una e 10 tal caso si ba il wired AND
(Iogica positiva) delle uscite stesse,
. Figura 1.8 Schema di collegamento tramite bus. Si suppone Ie uscite dei registri collegati
suI bus siano a tre stati. In un dato momenta deve essere asserito un solo segnale di abi-
litazione delle uscite, in modo che il bus venga porlato allo stato logico del corrispondente
registro. I segnali di abilitazione degli ingressi detenninano quali registri di destinazione
vengono car"icati sui prossimo (fronte del) clock.'
,
-. __
..
jl
ill,
"
""I
..
.,

J
i
..
'>j;
..
"
.!,I

,';";
'"
':1
"'1
"
.;,
,..
'Ii..
'1' '2 '
..

.;::-1



",'1.



"
'"
.;:. :
"I' 0>
;'
},
,


,
:i
t

;', :


... '
'"
, ,

"
,';:,.,
"
,:1'
..
..
(.
'.,
..
...'
'. "'
..
,
',11'
..
,"I'
.' "
";1"

.
,
.,
ii' --
,
Clock 61 T +62
---.J I I L
'r T
Cloak 61 I A2
OUT
IN
Rout
CIOO'---1: REG;TRO I
Rin
INi
Rin
'-.- '-.
>ck
,
x

Rout
OUTi
c,
Una larga parte delle attivita che si svolgono alPinterno di un calcolatore consiste nel
trasferimento dell1informazione tra registri.
Per trasferire informazione da un registro all'altro occorre che l'uscita del regi
stro sorgente venga portata all'ingresso del registro di destinazione, Se si hanno m
possibili registri sorgente e n possibili registri di destinazione
1
DecorTe una rete di
interconnessione che selettivamente coUeghi le sorgenti con Ie destinazioni. In linea di
principio si dovrebbero aver.e m x n percorsi e una logica di selezione che permetta di
Si assume che il regist!o commuti suI fronte di discesa del clockI doe alIa fine
del periodo, Prima del fronte del clock gli ingressi SR/JK devono essere stabili
almeno per il cosiddetto set-up time e devono restare stabili dopa i1 ronte per il
cosiddetto hold time (si veda la discussione in proposito in Appendice A),
Se Rin e disasserito, l'ingresso ai singoli flip-flop e 00 e, dunque
1
it registro si
mantiene nello stato precedente; se Rin easserito 10 stato di ogni flip-flop (it
contenuto del registro) diventa quello corrispondente alPingresso INi.
n segnale Rout ha funzione di Output Enable de1l1uscita a tre stati
Nel seguito useremo 10 schema di Figura 1.7. Quando i segnali Rin e Rout non
vengono indicati si assume che essi siano sempre asseriti.
28 Capitola 1
,

30 Capitola 1
R-l
B A
HA
HA
..
)
FA
R-l 5
FA
R S
A
Ai Bi R.
1
Si Ri
0 0 0 0 0
0 0 1 1
0,
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1
0 0 1
1 1 1 1 1
S, =A, GJ B, GJ Ri - 1 =(A, GJ B,) GJ R;-I
La somma di.tre bit da. risultato 1 solo se edispari il numero di bit
a I, doe se e"1 POR esclusivo dei tre bit. In a.ltri termini:
R, = A,B, + (A, GJ B,)R;_I
180vviamente, la rete cbe reaiizza il semisommatore puo essere anche ottenuta. pa.rtendo dalla
tabella di veriU, di Sj e di Fjgural.ll.
11 tempo Impiegato dalla rete di Figura 1.10 per calcolare S = A + B dipeode
dalla lunghezza della parola e dalla particolare coppia di numeri sommati. Infatti 1a
generica cella FA produce un'uscita stabile solo dopo che ediventato stabile il riporto
in ingresso. Nel peggiore dei casi il riporto puo propagarsi dal bit meno significativo a
quello pin significativo. In Appendice A vengono svolte ulteriori considerazioni sulla
rete di somma. La parte che segue serve a dare it sensa d.i come si possa progettare
una unita. aritmetica e logica (ALU). Per rendere la cosa trattabile ci si riferisce alla
realizzazione di una rete in grado di effettuare somma e sottrazione di numeri interi
l
a partire dal sommatore gia. realizzato.
mento
18
.
R S
Figura };11 A sinistra la tabella di verita. per il sommatore completo. Al centro la scbe-
matizza.zione come blocco funzionale. A destra il somma-tore compJeto costruito con due
semisommatori.
Introduzione 31
II riporto vale 1 quando: (a) 1a somma di Ai e B
i
da. direttamente riporto; oppure
(b) quando vale 1 la somma di Ai e B
i
, con ripor.to in ingresso pu(e a I, Questa
descrizione a parole viene riformulata come:
Dalle precedenti relazioni
,
tenuto conto che Ie due uscite del semisomrnatore rap-
presentano l'AND e 10 XOR dei due ingressi, si ricava facilmente che il sommatore
completo puo essere costruito impiegando due semisommatori come in Figura 1.11.
..,

'J,:
..
0
..
"


.\
;';1
..
:{, '
..
l

..
,
... ,
,
.,



'1
..
,
,
..\ '.
.. "
,'J ..
'" i-
;
'".'

l
.
.0.(
"". -


, ""
....h
.

"ii,
, '.1'
','"
.-I'
',,':.,
'1
,
..
:r
,
,
,;<,
;CI
, " ,
::t,:
wi
"I
.,

.
,
;t -
ii
,
.,
:.r
:;; -
',,'

,
.Il '
>Ei
....
i_\_

11'"
;Ii
..
.:;1,,1'
.

..
:iJ -
'I ..
,
..j ,
. .. ,
;,l
,"
'-ij:
"
I':

..,
,
..
..
:
.

',..'
,-.
"
'0 BO
"
AI Sl
S3
A2 B?
S3
" B3
I I II
II
I I
FA FA FA FA
I

'>I "I
R3
Ai BI Ai Bi
, ,
Ai Bi Si Ri
0 0 0 0
0 1 1 0
9
9
I HA
1 0 1 0
1 1 1 1
FA
Rl
Figura 1.10 Schema di un sommatore di parole di n bit - detto sommatore eli ripple -
castruito impiegando la. cella. detta Sommatore completo (FA).
RI_AiBi Si_IlBI+Ail!l"i Ri Sl
Figuro 1.9 A sinistra viene riportata 130 tabellina aritmetica della somma e del riporto di
due bit. La tabella in questione pub essere interpretata. come 180 tabella di verita delle due
funzioni logiche S. e Ro. Ai centro data. la rete corrispondente, A destra viene data
una scbematizzazione della rete come blocco funzionale, Il blocco estato indicato come HA,
per Semi.tommatore,
Per la real.izzazione del completo si puo seguire il seguente ragiona-
Per esempio, si consideri la somma di due bit. In Figura 1.9, la tabella riportata
a. sinistra rappresenta, a un tempo, sia 130 tahellina aritmetica della sorruna S; e del
relativQ riporto R;, sia 130 tabella di verita delle due funzioni logiche Si(Ai,B
i
) e
R;(Ai,Bi) . Conseguentemente, se si costruisce la rete che ha come uscite Si e si
costruisce la rete che efl'ettua 130 somma aritmetica di due bit e ne calcola il riporto.
La rete in questione prende il nome d.i Semisommatore e viene indicata con HA (da
Half Adder).
Vogliamo ora costruire la rete che eff'ettua la somma di due numeri interi, rap-
presentati in, forma binaria attraverso Ie due parole di n bit A = [All_I .. , Aol e
B = [B
n
_
1
.. B
o
]. Si indichi con S = [Sn_1 ... So] il risultato della somma.
10 Figural.lO viene riportato un so'rnmatore d.i due numeri d.i n bit castruita
modellando il procedimento di somma con "carta e matita" , ovvero nel costruire una
rete che sommi a partire dai bit meno significativi procedendo verso sinistra e tenen-
do conte del riporto. La cella elementare del sommatore di Figura 1.10 viene detta
Sommatore completo e indicata con FA (da FUll Adder). A differenza del semisom-
matore, questa cella somma due bit e un eventuale riporto. La parola [Sn_l .. , S
1
8
0
]
costituisce la somma di [An-I." Al Aol can [B
n
_
1
... B1BoJ. Si noti me e necessario
porre R_
1
= O.
,
\
l
\
I
)
I
\
\
I
I
I
I
I
I
)

30 Capitola 1
R-l
B A
HA
HA
..
)
FA
R-l 5
FA
R S
A
Ai Bi R.
1
Si Ri
0 0 0 0 0
0 0 1 1
0,
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1
0 0 1
1 1 1 1 1
S, =A, GJ B, GJ Ri - 1 =(A, GJ B,) GJ R;-I
La somma di.tre bit da. risultato 1 solo se edispari il numero di bit
a I, doe se e"1 POR esclusivo dei tre bit. In a.ltri termini:
R, = A,B, + (A, GJ B,)R;_I
180vviamente, la rete cbe reaiizza il semisommatore puo essere anche ottenuta. pa.rtendo dalla
tabella di veriU, di Sj e di Fjgural.ll.
11 tempo Impiegato dalla rete di Figura 1.10 per calcolare S = A + B dipeode
dalla lunghezza della parola e dalla particolare coppia di numeri sommati. Infatti 1a
generica cella FA produce un'uscita stabile solo dopo che ediventato stabile il riporto
in ingresso. Nel peggiore dei casi il riporto puo propagarsi dal bit meno significativo a
quello pin significativo. In Appendice A vengono svolte ulteriori considerazioni sulla
rete di somma. La parte che segue serve a dare it sensa d.i come si possa progettare
una unita. aritmetica e logica (ALU). Per rendere la cosa trattabile ci si riferisce alla
realizzazione di una rete in grado di effettuare somma e sottrazione di numeri interi
l
a partire dal sommatore gia. realizzato.
mento
18
.
R S
Figura };11 A sinistra la tabella di verita. per il sommatore completo. Al centro la scbe-
matizza.zione come blocco funzionale. A destra il somma-tore compJeto costruito con due
semisommatori.
Introduzione 31
II riporto vale 1 quando: (a) 1a somma di Ai e B
i
da. direttamente riporto; oppure
(b) quando vale 1 la somma di Ai e B
i
, con ripor.to in ingresso pu(e a I, Questa
descrizione a parole viene riformulata come:
Dalle precedenti relazioni
,
tenuto conto che Ie due uscite del semisomrnatore rap-
presentano l'AND e 10 XOR dei due ingressi, si ricava facilmente che il sommatore
completo puo essere costruito impiegando due semisommatori come in Figura 1.11.
..,

'J,:
..
0
..
"


.\
;';1
..
:{, '
..
l

..
,
... ,
,
.,



'1
..
,
,
..\ '.
.. "
,'J ..
'" i-
;
'".'

l
.
.0.(
"". -


, ""
....h
.

"ii,
, '.1'
','"
.-I'
',,':.,
'1
,
..
:r
,
,
,;<,
;CI
, " ,
::t,:
wi
"I
.,

.
,
;t -
ii
,
.,
:.r
:;; -
',,'

,
.Il '
>Ei
....
i_\_

11'"
;Ii
..
.:;1,,1'
.

..
:iJ -
'I ..
,
..j ,
. .. ,
;,l
,"
'-ij:
"
I':

..,
,
..
..
:
.

',..'
,-.
"
'0 BO
"
AI Sl
S3
A2 B?
S3
" B3
I I II
II
I I
FA FA FA FA
I

'>I "I
R3
Ai BI Ai Bi
, ,
Ai Bi Si Ri
0 0 0 0
0 1 1 0
9
9
I HA
1 0 1 0
1 1 1 1
FA
Rl
Figura 1.10 Schema di un sommatore di parole di n bit - detto sommatore eli ripple -
castruito impiegando la. cella. detta Sommatore completo (FA).
RI_AiBi Si_IlBI+Ail!l"i Ri Sl
Figuro 1.9 A sinistra viene riportata 130 tabellina aritmetica della somma e del riporto di
due bit. La tabella in questione pub essere interpretata. come 180 tabella di verita delle due
funzioni logiche S. e Ro. Ai centro data. la rete corrispondente, A destra viene data
una scbematizzazione della rete come blocco funzionale, Il blocco estato indicato come HA,
per Semi.tommatore,
Per la real.izzazione del completo si puo seguire il seguente ragiona-
Per esempio, si consideri la somma di due bit. In Figura 1.9, la tabella riportata
a. sinistra rappresenta, a un tempo, sia 130 tahellina aritmetica della sorruna S; e del
relativQ riporto R;, sia 130 tabella di verita delle due funzioni logiche Si(Ai,B
i
) e
R;(Ai,Bi) . Conseguentemente, se si costruisce la rete che ha come uscite Si e si
costruisce la rete che efl'ettua 130 somma aritmetica di due bit e ne calcola il riporto.
La rete in questione prende il nome d.i Semisommatore e viene indicata con HA (da
Half Adder).
Vogliamo ora costruire la rete che eff'ettua la somma di due numeri interi, rap-
presentati in, forma binaria attraverso Ie due parole di n bit A = [All_I .. , Aol e
B = [B
n
_
1
.. B
o
]. Si indichi con S = [Sn_1 ... So] il risultato della somma.
10 Figural.lO viene riportato un so'rnmatore d.i due numeri d.i n bit castruita
modellando il procedimento di somma con "carta e matita" , ovvero nel costruire una
rete che sommi a partire dai bit meno significativi procedendo verso sinistra e tenen-
do conte del riporto. La cella elementare del sommatore di Figura 1.10 viene detta
Sommatore completo e indicata con FA (da FUll Adder). A differenza del semisom-
matore, questa cella somma due bit e un eventuale riporto. La parola [Sn_l .. , S
1
8
0
]
costituisce la somma di [An-I." Al Aol can [B
n
_
1
... B1BoJ. Si noti me e necessario
porre R_
1
= O.
,
\
l
\
I
)
I
\
\
I
I
I
I
I
I
)
I
\
\
1
,
\
)
1
)
Differenza
'""ommento ----,
,elezlOne
Incremento
,
Complementazione
Cambio segno
Somma
c, CO
ii_,
ttisultato
0 -0+ =B
0 0 1 S = 0.+ B + 1 = B + 1
0 1 0 S=O+B=B
, 0
1 1 S =O+B+l =-B
.. . ..
, 1
0 0 S=A+B
1 0 1 S=A+B+l
1 1 0 S=A+B=A-B-l
1 1 1 S=A+B+l=A-B
Tabella 1.8 Operazioni effettuate dalla rete.
Introduzione 33
,
dimensione di parola. Nel caso di parole di.8 bit 5i ba trabocco (overflow) se: (1) la
somma di due numeri positivi risulta maggiore di 127 (massimo numero rappresenta-
bile su 7 bit); (2) 1a somma di due nwneri negativi risulta ioferiore a -128. L'avvenuto
C trabocco si controlla verificando l"identita dei segni degli addendi e confrontandola con
il segno risultante della somma. A tale scopo bastano due porte AND a tre ingressi,
collegate come in Figura 1.12 a destra. In Tabella 1.8 vengono riportati i risu1tati
in corrispondenza di ogni combinazione di cICeR_I . In Figural.13, a sinistra viene
'data la schematizzazione della rete risultante. In questa schematizza-
zione vengono riportati i segnali di comando cosl come sono stati ottenutii Ia lora
cornbinazione determina i1 comportamento di ALU.
.e'I' " '
".,
,',."
':LI
;.
.
tit:
: :i"J
'l
. '"
, ''';i .-

11 '
..
:''',
,.
"
'.>."! ,.
'1'

,..
,
.';:'J,;
-,
..':;
. ,I'

, ',.'
.'

"'1
",'"
,,,'.
:;;t
.J"'
.. ,
", ..
32 Capitolo 1
A+B+l
sottrazione di B da A. Ma se si effettua la somma di due numeri relativi rappresentati
con parole di n bit possono capitare questi due risuitati straordinari:
si sommano due numeri positivi e it risultato e negativoj
si soromano due nwneri negativi e il risultato epositivo.
Partiarno cial sornmatore appena vista e mostriarno come sia possibile aggiungere della
logica in modo da fargli effettuare altre operazioni.
Si egia: visto (Cfr.l.2.4) come per la sottrazione basta rappresentare in forma
negativa il secondo termine e sommarlo al primo, Ovvero A - B = A + (-B), E
poiche nella rappresentazione binaria i numeri interi negativi vengono espressi in com-
plemento a 2, basta quel poco di logica che se,rve per complement are B e sommare 1.
8i ottiene cosl, per la sola sottrazione, 10 schema di principia a sinistra in Figura 1.12,
Ovviamente 10 schema esolo indicativo, in quanta esse effettua solo la differenza:
conviene prevedere, per Pingresso B, 1a possibilita di presentarlo al sommatore in
forma cornplementata 0 no. eic richiede un selettore e la relativa linea di comando,
Tale linea eindicata come Co nella schema a destra in Figura 1.12. La stesso schema
mostra che, attraverso Wl'ulteriore linea di comando, indicata con el, c'e Ia possibiIita.
di selezionare, come secondo ingresso, A oppure O.
Selezionando B (CO = 1) e posta R_
I
= 1, 1a rete etI'ettua I'operazione:
1.7.1 Esempio di costruzione di un'unitll aritmetica e logica
. .
E facile convincersi che questo accade quando iIrisultato dell'operazione supera
la capacita della paroIa, ovvero supera il massimo nurnero rappresentabile con queUa
Figura 1.12 La rete di sinistra. schematizza it modo in cui si effettua la sottrazione di B da
A usando un sommatore. Nella. rete di destra l'ingresso B pub essere in ingresso a.l sommatorc
in forma complementata 0 no a seconda di Co. L'altro ingresso, controllato tramite 180 linea
Cl, eA oppure O. Si DOti la logica per il controllo del trabocco.
R Sa-I" 50
I
1
)
)
I
J
I
,In riferimento alia Tabella vale 1a pena di che:
Per 1a combinazione clcoR-
I
' = 010 la rete esegue un.'operazione logica (la
complementazione di B).
Per tutte Ie aitre combinazioni la rete effettua operazioni aritmetiche.
Le combinazioni clcoR_
1
= 101 e clcoR-
1
= 110 producono risultati non
colarmente interessanti.
All' Appendice A si mestra come aggiungendo altre linee di controllo siano facilmente
aggi"ungibili Ie operazioni logiche AND e OR.
Per ragioni di convenienza, nel seguito useremo 1a schematizzazione di destra,
nella quale: 8i riporta una linea di comando per ogoi specmca operazione eseguita
dalla ALU: In riferimento aHa nostra ALU, nella schematizzaziooe di destra ci sareb-
bero sei Iinee di comaodo, corrispondenti alle sei operazioni significative di Tabella.
1.8. Questa convenzione edi pura convenienza e viene adottata perche consente una
miglior Iettura degli schemi, rna da un punta eli vista pratico, produce inutile compli-
cazioni. Infatti, tra l'ipotetica logica di comando (probabUmente un decodificatore)
e la ALU ci dovrebbero essere almenq tante !inee quanti sono i comandi
l
che poi an-
drebbero codificati nelle configurazionJ richieste dalla ALU (come quelle in colonna
sinistra della Tabella 1.8), E evidente che pili conveniente far generare dalla 10-
gica di comando i comandi codificati per la ALU, evitando inutili sprechi di logica e
riducendo il numere delle linee cbe collegano Ie due parti.
-


ii,

...

"

',.
jl.

'1'

. ;
.d
'I'
.,.
'd.
,
",,1
'i'
c,
00
Il Sn-l so
Bn-l
T
c.
{
y
tJ ..... (
rI An-I

't.y
- SOMMATORE
R-'
Y
" ..

..-,
'a-l
,-1 SOMMATORE

I
\
\
1
,
\
)
1
)
Differenza
'""ommento ----,
,elezlOne
Incremento
,
Complementazione
Cambio segno
Somma
c,
CO
ii_,
ttisultato
0
-0+ =B
0
0 1
S = 0.+ B + 1 = B + 1
0
1 0
S=O+B=B
, 0
1 1 S =O+B+l =-B
.. . ..
, 1
0 0 S=A+B
1 0 1 S=A+B+l
1 1 0
S=A+B=A-B-l
1 1 1 S=A+B+l=A-B
Tabella 1.8 Operazioni effettuate dalla rete.
Introduzione 33
,
dimensione di parola. Nel caso di parole di.8 bit 5i ba trabocco (overflow) se: (1) la
somma di due numeri positivi risulta maggiore di 127 (massimo numero rappresenta-
bile su 7 bit); (2) 1a somma di due nwneri negativi risulta ioferiore a -128. L'avvenuto
C trabocco si controlla verificando l"identita dei segni degli addendi e confrontandola con
il segno risultante della somma. A tale scopo bastano due porte AND a tre ingressi,
collegate come in Figura 1.12 a destra. In Tabella 1.8 vengono riportati i risu1tati
in corrispondenza di ogni combinazione di cICeR_I . In Figural.13, a sinistra viene
'data la schematizzazione della rete risultante. In questa schematizza-
zione vengono riportati i segnali di comando cosl come sono stati ottenutii Ia lora
cornbinazione determina i1 comportamento di ALU.
.e'I' " '
".,
,',."
':LI
;.
.
tit:
: :i"J
'l
. '"
, ''';i .-

11 '
..
:''',
,.
"
'.>."! ,.
'1'

,..
,
.';:'J,;
-,
..':;
. ,I'

, ',.'
.'

"'1
",'"
,,,'.
:;;t
.J"'
.. ,
", ..
32 Capitolo 1
A+B+l
sottrazione di B da A. Ma se si effettua la somma di due numeri relativi rappresentati
con parole di n bit possono capitare questi due risuitati straordinari:
si sommano due numeri positivi e it risultato e negativoj
si soromano due nwneri negativi e il risultato epositivo.
Partiarno cial sornmatore appena vista e mostriarno come sia possibile aggiungere della
logica in modo da fargli effettuare altre operazioni.
Si egia: visto (Cfr.l.2.4) come per la sottrazione basta rappresentare in forma
negativa il secondo termine e sommarlo al primo, Ovvero A - B = A + (-B), E
poiche nella rappresentazione binaria i numeri interi negativi vengono espressi in com-
plemento a 2, basta quel poco di logica che se,rve per complement are B e sommare 1.
8i ottiene cosl, per la sola sottrazione, 10 schema di principia a sinistra in Figura 1.12,
Ovviamente 10 schema esolo indicativo, in quanta esse effettua solo la differenza:
conviene prevedere, per Pingresso B, 1a possibilita di presentarlo al sommatore in
forma cornplementata 0 no. eic richiede un selettore e la relativa linea di comando,
Tale linea eindicata come Co nella schema a destra in Figura 1.12. La stesso schema
mostra che, attraverso Wl'ulteriore linea di comando, indicata con el, c'e Ia possibiIita.
di selezionare, come secondo ingresso, A oppure O.
Selezionando B (CO = 1) e posta R_
I
= 1, 1a rete etI'ettua I'operazione:
1.7.1 Esempio di costruzione di un'unitll aritmetica e logica
. .
E facile convincersi che questo accade quando iIrisultato dell'operazione supera
la capacita della paroIa, ovvero supera il massimo nurnero rappresentabile con queUa
Figura 1.12 La rete di sinistra. schematizza it modo in cui si effettua la sottrazione di B da
A usando un sommatore. Nella. rete di destra l'ingresso B pub essere in ingresso a.l sommatorc
in forma complementata 0 no a seconda di Co. L'altro ingresso, controllato tramite 180 linea
Cl, eA oppure O. Si DOti la logica per il controllo del trabocco.
R Sa-I" 50
I
1
)
)
I
J
I
,In riferimento alia Tabella vale 1a pena di che:
Per 1a combinazione clcoR-
I
' = 010 la rete esegue un.'operazione logica (la
complementazione di B).
Per tutte Ie aitre combinazioni la rete effettua operazioni aritmetiche.
Le combinazioni clcoR_
1
= 101 e clcoR-
1
= 110 producono risultati non
colarmente interessanti.
All' Appendice A si mestra come aggiungendo altre linee di controllo siano facilmente
aggi"ungibili Ie operazioni logiche AND e OR.
Per ragioni di convenienza, nel seguito useremo 1a schematizzazione di destra,
nella quale: 8i riporta una linea di comando per ogoi specmca operazione eseguita
dalla ALU: In riferimento aHa nostra ALU, nella schematizzaziooe di destra ci sareb-
bero sei Iinee di comaodo, corrispondenti alle sei operazioni significative di Tabella.
1.8. Questa convenzione edi pura convenienza e viene adottata perche consente una
miglior Iettura degli schemi, rna da un punta eli vista pratico, produce inutile compli-
cazioni. Infatti, tra l'ipotetica logica di comando (probabUmente un decodificatore)
e la ALU ci dovrebbero essere almenq tante !inee quanti sono i comandi
l
che poi an-
drebbero codificati nelle configurazionJ richieste dalla ALU (come quelle in colonna
sinistra della Tabella 1.8), E evidente che pili conveniente far generare dalla 10-
gica di comando i comandi codificati per la ALU, evitando inutili sprechi di logica e
riducendo il numere delle linee cbe collegano Ie due parti.
-


ii,

...

"

',.
jl.

'1'

. ;
.d
'I'
.,.
'd.
,
",,1
'i'
c,
00
Il Sn-l so
Bn-l
T
c.
{
y
tJ ..... (
rI An-I

't.y
- SOMMATORE
R-'
Y
" ..

..-,
'a-l
,-1 SOMMATORE

,.. ".<"
:>;l
tzl
(} d" , ..<;.
- 1.,,;-:,"1
f>
o .: .
; '. .. ...
Clock Clock
I..',,", ' ,.
"" "'" C"'t---
RETE
. \ COMBINATOR1A
. 1. ::0
" :.,'. '..
, . . 0
'. . ,.
,
E stato gia. osservato che nella progettazione di un sistema digitate complesso e
spesso necessaria dividere la logica complessiva in un certo nUIDero di stadi operanti in
cascata, facendo in modo che una data funzionalita - trasformazione dell'informazione
- venga eseguita in piu deli di clock.
Tenuto conto di quanto e stato detto suI funzionamento delle reti sincrone e
sull'impiego dei registri all'interno di un sistema digitate, si puo immaginare che cias-
cun stadio sia strutturato come in Figura 1.15. Q.uesta schematizzazione indica che
la logica di uno stadia elabora l'uscita dello stato precedente e produce l'ingresso per
il successivo. Dall'inizio di un periodo di clock la logica di uno stadio elabora i nuovi
segnali di ingresso e produce un'uscita che viene congelata suI registro di uscita, che
formera l'ingresso per 10 stadio in cascata suI prossimo periodo di clock.
L'informazione della prima categoria (designa.ta semplicemente come "inferma-
zione") ha la forma di un vettore di bit (usualmente organizzati in byte e/o parole),
Le linee di cantrolla hanno la funzione di camandare il sistema alla svolgimento delle
operazioni aUe quali esso edeputato. La precedente suddivisione ealquanto arbitra-
ria, in quanto, a seconda del contesto, uno stesso segnale puo essere riguardato come
segnale di centrollo 0 come segnale di informazione. Per esempio, queUe che per un
dato sistema corrispondono a informazioni elaborate prodotte in uscita, potrebbero
costituire linee di contrallo in ingresso a un altro sistema. In certi casi i segnali di
controllo sono solo ricevuti dal sistema, in altri sana prodotti al fine di comandare
altri apparati.
I calcolatori numerici formana certamente 1a piu importante classe di sistemi di
gitali [Bar91}, [Won85]. Un calcolatore si compone di una unita di elaborazione, in
cui, come sara illustrato in seguito, si individua una parte di controllo e una parte
operativa. La parte di controllo decodifica i comandi che provengono in forma codi-
flcata daBa memoria e comanda l'esecuzione delle operaziani della parte operativa.
Figura 1.14 pub essere preso come schema di principio dell'unita di elaborazione: le
linee di controllo in ingresso rappresentano Ie istruzioni, quelle in uscita i comandi a
parti esterne come 1a memoria.
1.8.1 Un modello di rete a stadi
Figura 1.15 Modello di rete di elil;borazione. Si suppone che i registri abbiano.gli ingressi
e Ie uscite sempre abilitate. La rete combinatoria cleve elaborare i segnali in ingresso e
presentarli a1 registro in uscita in modo che vengano memorizzati prossimo Eronte (di
commutazione) del clock.

Introduzione 35
..
..

.,
1
J
"I
','"..

.,
J
.."
"
,
:'"
,

"I'
",
..
,
'!'
.,:: '
..
;
!
t
j,
"

,

]
"I'
,
,
"
..,
"
i
I
I
,j
"
",\
....
l
"
A B
I
I
Coml
'I
ALU
f
Com2
I

CoroN
Linee di
I .. conlrollo
/
DATIN I' ,
SISTEMA" :>
DIGITALE
Linee di
controllo .. I
l'informazione di controllo.
Figura 1.14 Sistema digitale e tipi di informazione.
A conclusione di questa sezione conviene riassumere alcuni risultati che abbiamo
ottenuto. Siamo partiti da una rete combinatoria per la somma di due numeri in
forma binaria. Con l'aggiunta d.i poca logica abbiamo ottenuto una rete che svolge
anche l'operazione di sottrazione, fornisce indicazione sulla correttezza del risultato e
infine, esegue un'operazione logica. Ovviamente, se si intende costruire una effettiva
ALD, bisognera tener canto che si incontreranno difficolta. non facili da superare.
Anzitutto non e detto che si riesca a fare un' ALU combinatoria. Se l'operazione e
complessa, si possono richiedere sequenze di operazioni realizzabili solo attraverso
reti sequenzia.li. E il caso tipico delle operazioni in virgala mobile e della relativa
unita deputata alia loro esecuzione, denominata FPU (Floating Point Unit). Le unita
aritmetiche costituiscono da sole un ampio campo di studio e su di esse esiste una
vasta letteratura, 9i veda ad per esempio [Omo94]. L'interesse di questa libro erivolto
alla realizzazione della logica di controllo dei calcolato.rL"
l'informazione che viene elaborata e trasmessa (DATIN e DATOUT in figural;
, ,,
In Figura 1.14 viene presentato un modelIo del tutto generale di sistema. digitale. Nello
schema, l'informazione che entra e esce dal sistema estata divisa in due categorie:
1.8 Sistemi digitali
o
Figura 1.13 A sinistra. viene riportatala schematizzazione della rete risultante: sebbene 1a
rete svolga poche semplici operazioni aritmetiche e solo l'operazione logica di
tazione, almena concettualmente essa rappresenta unlUnita. Aritmetica e Logiea. A destra
viene data. la schematizzazione di una generica ALU: earnl, Com2, .. ,ComN sono Ie generiche
!inee clie selezionano l'operazione svolta.
1
\
I
\
)
\
I
\
\
';
I
1
I
)
34 Capitola 1
B A
)
h
, , , ,
R-.
R..-A
ALU
I:
Co
I
c,
T Y.
T
S
,.. ".<"
:>;l
tzl
(} d" , ..<;.
- 1.,,;-:,"1
f>
o .: .
; '. .. ...
Clock Clock
I..',,", ' ,.
"" "'" C"'t---
RETE
. \ COMBINATOR1A
. 1. ::0
" :.,'. '..
, . . 0
'. . ,.
,
E stato gia. osservato che nella progettazione di un sistema digitate complesso e
spesso necessaria dividere la logica complessiva in un certo nUIDero di stadi operanti in
cascata, facendo in modo che una data funzionalita - trasformazione dell'informazione
- venga eseguita in piu deli di clock.
Tenuto conto di quanto e stato detto suI funzionamento delle reti sincrone e
sull'impiego dei registri all'interno di un sistema digitate, si puo immaginare che cias-
cun stadio sia strutturato come in Figura 1.15. Q.uesta schematizzazione indica che
la logica di uno stadia elabora l'uscita dello stato precedente e produce l'ingresso per
il successivo. Dall'inizio di un periodo di clock la logica di uno stadio elabora i nuovi
segnali di ingresso e produce un'uscita che viene congelata suI registro di uscita, che
formera l'ingresso per 10 stadio in cascata suI prossimo periodo di clock.
L'informazione della prima categoria (designa.ta semplicemente come "inferma-
zione") ha la forma di un vettore di bit (usualmente organizzati in byte e/o parole),
Le linee di cantrolla hanno la funzione di camandare il sistema alla svolgimento delle
operazioni aUe quali esso edeputato. La precedente suddivisione ealquanto arbitra-
ria, in quanto, a seconda del contesto, uno stesso segnale puo essere riguardato come
segnale di centrollo 0 come segnale di informazione. Per esempio, queUe che per un
dato sistema corrispondono a informazioni elaborate prodotte in uscita, potrebbero
costituire linee di contrallo in ingresso a un altro sistema. In certi casi i segnali di
controllo sono solo ricevuti dal sistema, in altri sana prodotti al fine di comandare
altri apparati.
I calcolatori numerici formana certamente 1a piu importante classe di sistemi di
gitali [Bar91}, [Won85]. Un calcolatore si compone di una unita di elaborazione, in
cui, come sara illustrato in seguito, si individua una parte di controllo e una parte
operativa. La parte di controllo decodifica i comandi che provengono in forma codi-
flcata daBa memoria e comanda l'esecuzione delle operaziani della parte operativa.
Figura 1.14 pub essere preso come schema di principio dell'unita di elaborazione: le
linee di controllo in ingresso rappresentano Ie istruzioni, quelle in uscita i comandi a
parti esterne come 1a memoria.
1.8.1 Un modello di rete a stadi
Figura 1.15 Modello di rete di elil;borazione. Si suppone che i registri abbiano.gli ingressi
e Ie uscite sempre abilitate. La rete combinatoria cleve elaborare i segnali in ingresso e
presentarli a1 registro in uscita in modo che vengano memorizzati prossimo Eronte (di
commutazione) del clock.

Introduzione 35
..
..

.,
1
J
"I
','"..

.,
J
.."
"
,
:'"
,

"I'
",
..
,
'!'
.,:: '
..
;
!
t
j,
"

,

]
"I'
,
,
"
..,
"
i
I
I
,j
"
",\
....
l
"
A B
I
I
Coml
'I
ALU
f
Com2
I

CoroN
Linee di
I .. conlrollo
/
DATIN I' ,
SISTEMA" :>
DIGITALE
Linee di
controllo .. I
l'informazione di controllo.
Figura 1.14 Sistema digitale e tipi di informazione.
A conclusione di questa sezione conviene riassumere alcuni risultati che abbiamo
ottenuto. Siamo partiti da una rete combinatoria per la somma di due numeri in
forma binaria. Con l'aggiunta d.i poca logica abbiamo ottenuto una rete che svolge
anche l'operazione di sottrazione, fornisce indicazione sulla correttezza del risultato e
infine, esegue un'operazione logica. Ovviamente, se si intende costruire una effettiva
ALD, bisognera tener canto che si incontreranno difficolta. non facili da superare.
Anzitutto non e detto che si riesca a fare un' ALU combinatoria. Se l'operazione e
complessa, si possono richiedere sequenze di operazioni realizzabili solo attraverso
reti sequenzia.li. E il caso tipico delle operazioni in virgala mobile e della relativa
unita deputata alia loro esecuzione, denominata FPU (Floating Point Unit). Le unita
aritmetiche costituiscono da sole un ampio campo di studio e su di esse esiste una
vasta letteratura, 9i veda ad per esempio [Omo94]. L'interesse di questa libro erivolto
alla realizzazione della logica di controllo dei calcolato.rL"
l'informazione che viene elaborata e trasmessa (DATIN e DATOUT in figural;
, ,,
In Figura 1.14 viene presentato un modelIo del tutto generale di sistema. digitale. Nello
schema, l'informazione che entra e esce dal sistema estata divisa in due categorie:
1.8 Sistemi digitali
o
Figura 1.13 A sinistra. viene riportatala schematizzazione della rete risultante: sebbene 1a
rete svolga poche semplici operazioni aritmetiche e solo l'operazione logica di
tazione, almena concettualmente essa rappresenta unlUnita. Aritmetica e Logiea. A destra
viene data. la schematizzazione di una generica ALU: earnl, Com2, .. ,ComN sono Ie generiche
!inee clie selezionano l'operazione svolta.
1
\
I
\
)
\
I
\
\
';
I
1
I
)
34 Capitola 1
B A
)
h
, , , ,
R-.
R..-A
ALU
I:
Co
I
c,
T Y.
T
S
1
,
36 Capitolo 1
1.8.2 Alcuni blocchi componenti i sistemi digitali
)
\
J
I
I
\
I
J
\
I
\
>
j
\
1
J
\
l
I
37

Introduzione
D.lI -
Indlrl:n:\ =>-< \M.lna.o X/---
READ \ /
Dati
WEllORIA
lndirizzi
-+-
:: I
La precedente discussione ci fornisee l'occasione per parlare di un'altra convenzione
molto diffusa nel disegno dei sistemi digitali, con particolare riferimento ai segnali di
controllo.
I circuiti logici usano due livelli di tensione. Si parla eli Iivelio Alto e Basso (AlB),
ovvero High e Low (H/L). Facendo, per esempio, riferimento alla logica TIL i livelli
di tensione sono tipicamente 3,4 V (Alto) e 0,3 V (Basso).
Poiche epossibile associare a1 simbolo 1 sia 10 stato H sia 10 stato L, ne deriva
che sono possibili due convenzioni, dette rispettivarnente logicQ positivQ (quando si
associa 1 a H) e logica negativQ (quando si associa 0 a H). La Tabella 1.9) dove viene
presentata una relazione di ingressofuscita, mostra che 10 stesso circuito pub essere
considerate come porta AND 0 come porta OR a seconda dell'associazione. Sebbene
sia possibile ragionare contemporaneamente in termini di logica positiva e negativa (si
parla di logica mista) I conviene fare ricorso a un'unica convenzione. Nel seguito, salvo
esplicita indicazione contraria, assumeremo di ragionare sempre in logica positiva. Si
tratta della convenzione normalmente utiliz-zata nei eataloghi dei eomponenti .
1.9 Questioni di notazione
1.9.1 Notazione per i segnali
FigUra 1.17 Schema funzionale della memoria ed esetp.ptifica.zione dell'operazione di lettu-
ra. La parte tratteggiata del diagramma temporale dei.Dati delinea una caratteristica usuale
della memoria: la latenza tra il momento in cui gli indirizzi si stabilizzano e la d.i.sponibiliU.
dei dati all'esterno. II cicio di scrittura edel tutto analogo. Esso richiede che venga asserita
la linea di comando WRITE e venga presentato il dato a.lla memoria.
Memoria di lettura e scrittura La memoria di lettura e scrittura euna parte es-
senziale d,i qualunque sistema di elaborazione. La memoria di letturafscrittura
viene normalmente denotata con il termine improprio di RAM, da Random Ac-
cess Memory - memoria ad accesso casuale. La.- memoria viene esaminata pili
in dettaglio nei prossimi capitoli, per it momenta ci bastano i rudimenti del suo
funzionamento
l
iUustrati in Figura 1.17. ,
Quando nel seguito si parla della memoria si assume che gli indirizzi siano ri-
feriti ai byte, essendo questa la prassi ormai comunemente adottata da tutti i
costruttori.
\
-,
-,
..
,{'
..
,
t
J.:
,.

:1'
,

,:

j
J
!
!
!
,
E
t
,
f
r
f
,
'f'
,: ;
!
,

l
'l
.t
;
j
,
"
"
,.
,
,
,

o-J'
o!
i
]
:'1


!
,I
,
'. ': :i
.,
'r
!
" "

!
,
[

f
r
'f
.;'
"

r
i
..

f
,l
.,

,
'--

;el
Q
Figura 1.16 La figura illustra i simboli usati per il Buffer/Driver, il selettore e il
decodificatore.
I b10cchi funzionali descritti qui di seguito sono, assieme a registri, bus e ALU gia.
visti in precedenza, i componenti dei sistemi digitali complessi come i calcolatori.
Buffer Con questo nome (0 can queUo di driver) intenderemo, anche se impropria-
mente, un dispositivo che non ha alcuna funzione logica, se non quella present are
l'uscita in terzo stato (Fig 1.16).
Selettori Un se1ettore 0 Multiplexer eun dispositivo che permette di selezionare uno
degli n ingressi e presentarlo in uscita. La selezione si effettua attraverso linee
di comando. Con n linee di ingresso il selettore richiede un numero di linee di
comando pari all'intero uguale 0 superiore a In(n). Talvolta i selettori hanno
l'uscita in terzo state (e il relativo ingresso di abilitazione). "'
Decodificatori Un decodificatore (1 su m) a.ceetta in ingresso un eodiee di n bit e
presenta in uscita m = 2
n
linee, sulle quali asserisce solo queUa che eorrisponde
alla eodifiea in ingresso. Numerando Ie linee di uscita da 0 a 2n
n
- 1, viene
asserita quella che corrisponde al numero presente in ingresso.
Codificatori Un codificatore fornisce in uscita una rappresentazione codificata dei
suoi ingressi. n funzionamento di un codificatore richiederebbe che 5010 uno
dei 2fl. ingressi fosse asserito. Poiche non sempre egarantito che ci sia un solo
ingresso asserito
1
si usano codificatori di priorita, nel senso che in presenza di
pili di una linea di ingresso asserita, il codificatore presenta in uscita la codifica
eorrispondente all>ingresso di maggior priorita. t'ra quelli asseriti.
Memorie ROM Una memoria ROM (Read Only Memory), 0 di sola lettura, eun
dispositivo che ha n ingressi e m uscite, e ehe eontiene 2
n
celle di m bit eiaseuna.
n numero binario corrispondente ana combinazione degli n ingressi el'indirizzo
della cella ehe viene letta e il cui contenuto viene presentato sulle uscite. Una
ROM ein grado eli realizzare qualunque rete combinatoria di n ingressi e m
uscite. Di solito, le ROM vengono impiegate in sostituzione delle porte quando
130 rete emolto complessa.
n modelio di Figura 1.15 emolto conveniente per strutturare in modo ordinato
la logica della CPU e di esso si fara largo uso nel seguito anche se in modo non
esplicitamente dichiarato.
1
,
36 Capitolo 1
1.8.2 Alcuni blocchi componenti i sistemi digitali
)
\
J
I
I
\
I
J
\
I
\
>
j
\
1
J
\
l
I
37

Introduzione
D.lI -
Indlrl:n:\ =>-< \M.lna.o X/---
READ \ /
Dati
WEllORIA
lndirizzi
-+-
:: I
La precedente discussione ci fornisee l'occasione per parlare di un'altra convenzione
molto diffusa nel disegno dei sistemi digitali, con particolare riferimento ai segnali di
controllo.
I circuiti logici usano due livelli di tensione. Si parla eli Iivelio Alto e Basso (AlB),
ovvero High e Low (H/L). Facendo, per esempio, riferimento alla logica TIL i livelli
di tensione sono tipicamente 3,4 V (Alto) e 0,3 V (Basso).
Poiche epossibile associare a1 simbolo 1 sia 10 stato H sia 10 stato L, ne deriva
che sono possibili due convenzioni, dette rispettivarnente logicQ positivQ (quando si
associa 1 a H) e logica negativQ (quando si associa 0 a H). La Tabella 1.9) dove viene
presentata una relazione di ingressofuscita, mostra che 10 stesso circuito pub essere
considerate come porta AND 0 come porta OR a seconda dell'associazione. Sebbene
sia possibile ragionare contemporaneamente in termini di logica positiva e negativa (si
parla di logica mista) I conviene fare ricorso a un'unica convenzione. Nel seguito, salvo
esplicita indicazione contraria, assumeremo di ragionare sempre in logica positiva. Si
tratta della convenzione normalmente utiliz-zata nei eataloghi dei eomponenti .
1.9 Questioni di notazione
1.9.1 Notazione per i segnali
FigUra 1.17 Schema funzionale della memoria ed esetp.ptifica.zione dell'operazione di lettu-
ra. La parte tratteggiata del diagramma temporale dei.Dati delinea una caratteristica usuale
della memoria: la latenza tra il momento in cui gli indirizzi si stabilizzano e la d.i.sponibiliU.
dei dati all'esterno. II cicio di scrittura edel tutto analogo. Esso richiede che venga asserita
la linea di comando WRITE e venga presentato il dato a.lla memoria.
Memoria di lettura e scrittura La memoria di lettura e scrittura euna parte es-
senziale d,i qualunque sistema di elaborazione. La memoria di letturafscrittura
viene normalmente denotata con il termine improprio di RAM, da Random Ac-
cess Memory - memoria ad accesso casuale. La.- memoria viene esaminata pili
in dettaglio nei prossimi capitoli, per it momenta ci bastano i rudimenti del suo
funzionamento
l
iUustrati in Figura 1.17. ,
Quando nel seguito si parla della memoria si assume che gli indirizzi siano ri-
feriti ai byte, essendo questa la prassi ormai comunemente adottata da tutti i
costruttori.
\
-,
-,
..
,{'
..
,
t
J.:
,.

:1'
,

,:

j
J
!
!
!
,
E
t
,
f
r
f
,
'f'
,: ;
!
,

l
'l
.t
;
j
,
"
"
,.
,
,
,

o-J'
o!
i
]
:'1


!
,I
,
'. ': :i
.,
'r
!
" "

!
,
[

f
r
'f
.;'
"

r
i
..

f
,l
.,

,
'--

;el
Q
Figura 1.16 La figura illustra i simboli usati per il Buffer/Driver, il selettore e il
decodificatore.
I b10cchi funzionali descritti qui di seguito sono, assieme a registri, bus e ALU gia.
visti in precedenza, i componenti dei sistemi digitali complessi come i calcolatori.
Buffer Con questo nome (0 can queUo di driver) intenderemo, anche se impropria-
mente, un dispositivo che non ha alcuna funzione logica, se non quella present are
l'uscita in terzo stato (Fig 1.16).
Selettori Un se1ettore 0 Multiplexer eun dispositivo che permette di selezionare uno
degli n ingressi e presentarlo in uscita. La selezione si effettua attraverso linee
di comando. Con n linee di ingresso il selettore richiede un numero di linee di
comando pari all'intero uguale 0 superiore a In(n). Talvolta i selettori hanno
l'uscita in terzo state (e il relativo ingresso di abilitazione). "'
Decodificatori Un decodificatore (1 su m) a.ceetta in ingresso un eodiee di n bit e
presenta in uscita m = 2
n
linee, sulle quali asserisce solo queUa che eorrisponde
alla eodifiea in ingresso. Numerando Ie linee di uscita da 0 a 2n
n
- 1, viene
asserita quella che corrisponde al numero presente in ingresso.
Codificatori Un codificatore fornisce in uscita una rappresentazione codificata dei
suoi ingressi. n funzionamento di un codificatore richiederebbe che 5010 uno
dei 2fl. ingressi fosse asserito. Poiche non sempre egarantito che ci sia un solo
ingresso asserito
1
si usano codificatori di priorita, nel senso che in presenza di
pili di una linea di ingresso asserita, il codificatore presenta in uscita la codifica
eorrispondente all>ingresso di maggior priorita. t'ra quelli asseriti.
Memorie ROM Una memoria ROM (Read Only Memory), 0 di sola lettura, eun
dispositivo che ha n ingressi e m uscite, e ehe eontiene 2
n
celle di m bit eiaseuna.
n numero binario corrispondente ana combinazione degli n ingressi el'indirizzo
della cella ehe viene letta e il cui contenuto viene presentato sulle uscite. Una
ROM ein grado eli realizzare qualunque rete combinatoria di n ingressi e m
uscite. Di solito, le ROM vengono impiegate in sostituzione delle porte quando
130 rete emolto complessa.
n modelio di Figura 1.15 emolto conveniente per strutturare in modo ordinato
la logica della CPU e di esso si fara largo uso nel seguito anche se in modo non
esplicitamente dichiarato.
)
38 Capitola 1
Introduzione 39
-)
I
1
\
\
\
\
Ingr. A Ingr. B Uscita U
L L L
L H L
H L L
H H H
Tabella 1.9 Rela.zioni di ingresso/uscita. tra i livelli di tensione dei segnali di un generico
circuito digita.le. 8i Dati me sostituendo H con 1 e L con 0 (convenzione di logica positiva)
S1 ottiene 13 tabella. d.i verita della. porta AND, mentre con la sostituzione complementare 5i,
ottiene 13 tabella di verita. deUa porta OR.
8i consideri un segnale come, per esempio, queUo che abilita f'uscita di una porta'
,
in logica tre sta.ti 0 il segnale di caricamento asincrono di un flip-flop. E possibile
cbe il segnale svolga 13 sua funzione nello stato H, come pure nello stato L. Nel primo
caso 5i dice cbe Usegnale eattivo alto, nel secondo si dice cbe eattivo -basso. Una
dizione di questa genere evita ogni possibile equivQco legato al tipo di 10gie3. Nel
tracciaxe gli schemi delle reti si usa 180 canvenzione di marcare come negati i segnali
che SODa attivi bassi. Ovvero di marcarli con il pallino di negazione. A volte, alcuni
segnali di controlla panno differente significato nel caso che siano in state H e L. In
questa caso si la cODvenzione di marcare il segnale con un sizp.bolo composto
dalla combinazione di due nomignoli che richiamino la funzione svolta, marcando
come negato il nornignolo corrispondente alia. funzione in stato di basso. A tale scopo
si {accia riferimento alla Figura 1.18.
.'.
....
i
I
,
..
LID Esercizi
. .
Esercizio 1.1 Ci si colleghi al sito Intel (http:/ lwww.intel.com) e si raggiunga 1a
pagina che il produttore ha dedicato alIa storia dei suoi microprocessori, si confrontino
i dati ivi contenuti con quelli riportati alPinizio del capitoloj si esamini l'incremen-
to delle prestazioni e come col passare degLi anni, questi incrementi hanno richiesto
l'adozione di unita. di misura differenti. Si ripeta 10 stesso esercizio per i micropro-
cessori Motorola, partendo dal sito http://w'WVI . motorola. com e si esamini 10 stato
della famiglia 68000.
Esercizio 1.2 Si convertano in notazione decimale it nUffiero esadecimale 1ABO e il
nurnero ottale 76022. Si convertano i seguenti numeri decimali in notazione esadeci-
male e ottale: 35, 1024, 531.
Esercizio 1.3 Si efl"ettui la differenza tra il numero decimale AOE3 e il oumero ottale
6755. La differenza va effettuata 0 in notazione esadecimale 0 in notazione ottale. Si
riporti il risultato a notazione e si verifichi che ecorretto.
Esercizio 1.4 Si converta il numero decimale 0,7155 in binario.
Esercizio 1.5 Si trasforrni il nUffiero 14,3 in formato IEEE, singola precisione.
Esercizio 1.6 Data una stringa eli caratteri ASCII, per esempio 2836, si definisca un
algoritmo per calcolare il corrispondente binario. La stringa erappresentata da byte
dislocati in posizioni successive di memoria.
Esercizio 1.7 n contenuto di due parole di memoria di 16 bit consecutive in forma
esadecimale e2AIB e 15FF, a quale stringa. di caratteri corrispondono?
,
"
Figura 1.18 Convenzioni per 180 marcatura dei segnali. Il segn80le marcato OE ha la fun-
zione di Output Enable quando e in stato L; il segnale 10/M ha significato 10' (presu-
mibilmente Input/Output) in stato H e significato M (presumibilmente Memoria) in stato
L.
Vale 180 pena richiamare l'attenzione suI fatto che Questo genere di notazione viene
spesso usato in modo non congruente nei manuali dei produttori di integrati. nmiglior
modo per evitare errori nell'interpretare lo schema resta queUo di Ieggere 180 descri-
zione a parole del funzionamento del dispositivo ed esaminare i relativi diagrammi
temporaJi.
I
I
I
I
\
,
)
\
'"
lo/R u
-v
"
!
,
-I
"
..
.\
!
J
!
"
\
..

,
I
Esercizio 1.8 Si dimostri che l'operatore XOR (OR esclusivo) - vero se e solo se e
vero uno solo dei due termini - gode della proprieta. associativa.
Esercizio 1.9 Si prenda un manuale di dispositivi integrati e si esaminino i differenti
tipi di flip-flop, approfondendo i differenti modi di operare, i vincoli sui segnali e sul
clock.
,
,
)
38 Capitola 1
Introduzione 39
-)
I
1
\
\
\
\
Ingr. A Ingr. B Uscita U
L L L
L H L
H L L
H H H
Tabella 1.9 Rela.zioni di ingresso/uscita. tra i livelli di tensione dei segnali di un generico
circuito digita.le. 8i Dati me sostituendo H con 1 e L con 0 (convenzione di logica positiva)
S1 ottiene 13 tabella. d.i verita della. porta AND, mentre con la sostituzione complementare 5i,
ottiene 13 tabella di verita. deUa porta OR.
8i consideri un segnale come, per esempio, queUo che abilita f'uscita di una porta'
,
in logica tre sta.ti 0 il segnale di caricamento asincrono di un flip-flop. E possibile
cbe il segnale svolga 13 sua funzione nello stato H, come pure nello stato L. Nel primo
caso 5i dice cbe Usegnale eattivo alto, nel secondo si dice cbe eattivo -basso. Una
dizione di questa genere evita ogni possibile equivQco legato al tipo di 10gie3. Nel
tracciaxe gli schemi delle reti si usa 180 canvenzione di marcare come negati i segnali
che SODa attivi bassi. Ovvero di marcarli con il pallino di negazione. A volte, alcuni
segnali di controlla panno differente significato nel caso che siano in state H e L. In
questa caso si la cODvenzione di marcare il segnale con un sizp.bolo composto
dalla combinazione di due nomignoli che richiamino la funzione svolta, marcando
come negato il nornignolo corrispondente alia. funzione in stato di basso. A tale scopo
si {accia riferimento alla Figura 1.18.
.'.
....
i
I
,
..
LID Esercizi
. .
Esercizio 1.1 Ci si colleghi al sito Intel (http:/ lwww.intel.com) e si raggiunga 1a
pagina che il produttore ha dedicato alIa storia dei suoi microprocessori, si confrontino
i dati ivi contenuti con quelli riportati alPinizio del capitoloj si esamini l'incremen-
to delle prestazioni e come col passare degLi anni, questi incrementi hanno richiesto
l'adozione di unita. di misura differenti. Si ripeta 10 stesso esercizio per i micropro-
cessori Motorola, partendo dal sito http://w'WVI . motorola. com e si esamini 10 stato
della famiglia 68000.
Esercizio 1.2 Si convertano in notazione decimale it nUffiero esadecimale 1ABO e il
nurnero ottale 76022. Si convertano i seguenti numeri decimali in notazione esadeci-
male e ottale: 35, 1024, 531.
Esercizio 1.3 Si efl"ettui la differenza tra il numero decimale AOE3 e il oumero ottale
6755. La differenza va effettuata 0 in notazione esadecimale 0 in notazione ottale. Si
riporti il risultato a notazione e si verifichi che ecorretto.
Esercizio 1.4 Si converta il numero decimale 0,7155 in binario.
Esercizio 1.5 Si trasforrni il nUffiero 14,3 in formato IEEE, singola precisione.
Esercizio 1.6 Data una stringa eli caratteri ASCII, per esempio 2836, si definisca un
algoritmo per calcolare il corrispondente binario. La stringa erappresentata da byte
dislocati in posizioni successive di memoria.
Esercizio 1.7 n contenuto di due parole di memoria di 16 bit consecutive in forma
esadecimale e2AIB e 15FF, a quale stringa. di caratteri corrispondono?
,
"
Figura 1.18 Convenzioni per 180 marcatura dei segnali. Il segn80le marcato OE ha la fun-
zione di Output Enable quando e in stato L; il segnale 10/M ha significato 10' (presu-
mibilmente Input/Output) in stato H e significato M (presumibilmente Memoria) in stato
L.
Vale 180 pena richiamare l'attenzione suI fatto che Questo genere di notazione viene
spesso usato in modo non congruente nei manuali dei produttori di integrati. nmiglior
modo per evitare errori nell'interpretare lo schema resta queUo di Ieggere 180 descri-
zione a parole del funzionamento del dispositivo ed esaminare i relativi diagrammi
temporaJi.
I
I
I
I
\
,
)
\
'"
lo/R u
-v
"
!
,
-I
"
..
.\
!
J
!
"
\
..

,
I
Esercizio 1.8 Si dimostri che l'operatore XOR (OR esclusivo) - vero se e solo se e
vero uno solo dei due termini - gode della proprieta. associativa.
Esercizio 1.9 Si prenda un manuale di dispositivi integrati e si esaminino i differenti
tipi di flip-flop, approfondendo i differenti modi di operare, i vincoli sui segnali e sul
clock.
,
,
)
.' ", , ,
Elementi architetturali di
J
,
)
.h
's:
I
,..
,,' .
\
,
I
\
\
)
I
J
\
,
I
I
I
)
I
2.1 Struttura dei calcolatuci-
.' L'wi'ta-di...elabQrMione e controllo ela parte responsabile dell'interpretazione
ed esecuzione delle istruzioni. Gli anglosassoni chiamano questa unita Central
Processing Unit e 1a designano con la sigla CPU, sigla della quale faremo costan-
temente uso nel seguito, anche se talvolta verranno usati i termini "processore'l
ed Clelaborat'ore".
La caratteristica fondamentale di un calcolatore elettronico, che 10 distingue dalle
tradizionali calcolatrici da tavolo, sta nella sua capacita. di eseguire sequenze di i-
struzioni rnemorizzate. AHo stato attuale della tecnologia i calcolatori sono costruiti
attorno ad una unita di elaborazione e controllo (elaboratore). Le istruzioni, come
ogni altra informazione, sono codificate in gruppi di bit. L'elaboratore preleva Ie
istruzioni dalla memoria, interpreta i codici di istruzione ed effettua Ie azioni che
questi prevedono. Un insieme organizzato di istruzioni costituisce un "programmall.
'In questo capitola l'interesse e rivolto ai concetti architetturali di carattere ge-
nerale, in modo da pater affrontare, nel capitolo successivo, il progetto dell'unita. di
contrallo dell'elaboratore.
Un qualunque sistema di elaborazione puo essere immaginato come composto da tre
sottosistemi: l'unita. di elaborazione e controllo, 1a memoria e il sistema di ingres-
so/uscita.
La e it contenitore delle istruzioni . dati (gli oggetti delPelabo-
razione). Istruzioni e atl sono codificati in forma bmaria. Le istruzioni ven-
gono lette dalla CPU e interpretate. Uinterpretazione da luogo alPesecuzione
dell'azione corrispondente alIa specifieo eodice di istruzione. Le istruzioni non
sono di per se distingtiibili rispetto agli altri tipi di informazioni in memoria.
Tutto dipende dal modo in cui un gruppo di bit viene letto e interpretato. n
fattn che dati e istruzioni siano di per se indistinguibili permette di costruire pro-
... grammi che generano dati che, in un secondo tempo, possono essere interpretati
come istruzioni. Tipico esempio eun Di norma si hanna differenti
,
"''1"

, .
'jo,
,
,.,
,'.-:
'."
:'i

,
,
,,',1'

,"

\"
"
,
"
)'
'I
";'
,n:
':"

,
", .,
'..
'. '"
,..;'.
" ,.
- i,'.'
....
:$;,

';.,
.'
. .,
.' ,(;

"[
;N
'>;
:,:t
,
)
.' ", , ,
Elementi architetturali di
J
,
)
.h
's:
I
,..
,,' .
\
,
I
\
\
)
I
J
\
,
I
I
I
)
I
2.1 Struttura dei calcolatuci-
.' L'wi'ta-di...elabQrMione e controllo ela parte responsabile dell'interpretazione
ed esecuzione delle istruzioni. Gli anglosassoni chiamano questa unita Central
Processing Unit e 1a designano con la sigla CPU, sigla della quale faremo costan-
temente uso nel seguito, anche se talvolta verranno usati i termini "processore'l
ed Clelaborat'ore".
La caratteristica fondamentale di un calcolatore elettronico, che 10 distingue dalle
tradizionali calcolatrici da tavolo, sta nella sua capacita. di eseguire sequenze di i-
struzioni rnemorizzate. AHo stato attuale della tecnologia i calcolatori sono costruiti
attorno ad una unita di elaborazione e controllo (elaboratore). Le istruzioni, come
ogni altra informazione, sono codificate in gruppi di bit. L'elaboratore preleva Ie
istruzioni dalla memoria, interpreta i codici di istruzione ed effettua Ie azioni che
questi prevedono. Un insieme organizzato di istruzioni costituisce un "programmall.
'In questo capitola l'interesse e rivolto ai concetti architetturali di carattere ge-
nerale, in modo da pater affrontare, nel capitolo successivo, il progetto dell'unita. di
contrallo dell'elaboratore.
Un qualunque sistema di elaborazione puo essere immaginato come composto da tre
sottosistemi: l'unita. di elaborazione e controllo, 1a memoria e il sistema di ingres-
so/uscita.
La e it contenitore delle istruzioni . dati (gli oggetti delPelabo-
razione). Istruzioni e atl sono codificati in forma bmaria. Le istruzioni ven-
gono lette dalla CPU e interpretate. Uinterpretazione da luogo alPesecuzione
dell'azione corrispondente alIa specifieo eodice di istruzione. Le istruzioni non
sono di per se distingtiibili rispetto agli altri tipi di informazioni in memoria.
Tutto dipende dal modo in cui un gruppo di bit viene letto e interpretato. n
fattn che dati e istruzioni siano di per se indistinguibili permette di costruire pro-
... grammi che generano dati che, in un secondo tempo, possono essere interpretati
come istruzioni. Tipico esempio eun Di norma si hanna differenti
,
"''1"

, .
'jo,
,
,.,
,'.-:
'."
:'i

,
,
,,',1'

,"

\"
"
,
"
)'
'I
";'
,n:
':"

,
", .,
'..
'. '"
,..;'.
" ,.
- i,'.'
....
:$;,

';.,
.'
. .,
.' ,(;

"[
;N
'>;
:,:t
,
43
tHPIJT/OUTf"\J'T WDoOIUA
Elementi architetturali di base
c,u
=x .011.. X
=:::=x IndlJiuo valido X
=x nnn X---, X
Dati
"/10 \ /
"'''' . "
Indiri,,:oJ =::x: tndiriuo X'---

CI.O<:K
1Aquesto proposito si veda quanto detto in Appendice A nel Paragraro A.Il.l.
-
,
Figura: 2.2 Organizza.zione a bus unico. A sinistra 10 schema di principio, a destra la
separazione del bus unico in tre bus con funzionalita. diversa. II principia eche ogni nuovo
modulo di memoria. 0 di I/O viene aggiunto semplicemente collegaodolo sui bus.
indirizzi ha origine dalla. CPU ed enormalmente unidirezionale. Su di esso viene pre-
sentato l'indirizzo della cella di memoria cia Ieggere 0 scrivere, ovvero del registro di
un dispositivo di ingresso/uscita. U bus dati e bidirezionale. Con l'organizzazione di
Figura2.2 anche il sottosistema cii ingressofuscita pub essere riguardato come un in-
sierne di lfporte" di ingresso e di uscita, ciascuna delle quali viene selezionata tramite
un indirizzQ.
Da un punto di vista del suo collegamento con l'esterno 1a CPU deve compiere
due sole operazioni: leggere 0 scrivere dati. Infatti anche l'acquisizione dei codici di
istruzione e, dal punta di vista del bus esterno, un'operazione di lettura. In Figura 2.3
viene mostrata Ia temporizzazione delle operazioni di lettura e scrittura. La figura
mostra in modo esplicito che la durata di un cielo di 1ettura 0 scrittura puo richiedere
,
pill di un cicIo di clock. questa una situazione del tutto normale in quanto Ie
memorie sono di soli to pill lente della CPU. Se 1a memoria 0 il dispositivo sono troppo
lenti rispetto ana CpU necessano preved"er'e' un meccanismo che faccia aumentare i
numero di deli di clock della CPU per le operazioni di letturafscrittura. Di solito cic
si ottiene inserendo un opportuno numero di deli di attesa
1

In,r...o
.

1oI.",orl.
,
, .
,
i
:.,:,
,.....-
"
;1
.,(
,,-,'-1
"'i,

,...
..,

,
..:,
,
..'
"
,,' .;
'a'
,'I
,
,>
_c_

',"
,
,;.
il
"
...,
"
,
C,

,
,
h
"
-'

" ,.
;1,
.,
...:
,. .-

,
, "
,1<
' ..'
- ...
'I
.,;
,

T
-I
.::}
;
MEMORIA
CPU
conlrol1ore
dfcanale
I bus di I/O
, ,

D sistema eli ingressojuscita e l'insieme dei dispositivi che servono, da un lato,
a comumcare con IT moniic5"'esterno e con Putente (video, tastiere, stampanti),
dall'altro, ad aggiungere funzionalita al sistema di elaborazione stesso (mernorie
ausiliarie, linee di comunicazione ecc.). Del sistema di ingresso/ uscita fanno parte
le.interfacce, ovvero i componenti che fanno da ponte tra i dispositivi periferici e
il calcolatore stesso.
Figura 2.1 Esempio di organizza.zione di un calcolatore elettronico. La schema rappresenta
una tipica. architettura. mainframe di qua.lche anna addieteo (adotta.t.a per esempio dai sistemi
IBM 8/370). Si noti che esiste un p:ercorso t.ra la memoria e i dispositivi di 1/0
1
attraverso
il cosiddetto controllare eli canale.
CPU, memoria e I/O sana collegati tra loro in vari modi, a seconda della categoria
della macchina. Un esempio di organizzazione viene presentato in Figura2.1.
livelli di memoria. Si parla di memoria centrale quando ci si riferisce alia memo-
ria elettronica clirettamente connessa alIa CPUI si parla di memoria ausiliaria 0
eli massa. quando ci si riferisce, per esempio, alia memoria dei dischi magnetici.
42 Ca.pitola 2
In Figura 2.2 viene riportata l'organizzazione a bus unieo. Questa struttura venne
introdotta dalla Digital Equipment, nella prima meta degli anni settanta, per i
nicalcolatori della serie PDP 11 e guadagnb subito ampio consenso. Essa divenne,
poi, 10 standard con l'avvento dei microprocessori. La schema restO in auge per molti
anni per Ie macchine di dimensioni medio-piccole. A partire dagli anni novanta, con
"la incont.enibile. crescita delle prestazioJii delle CPU e l'impiego d.i memqrie cache, 10
schema d.i Figura2.2 si emostrato insufficiente. Le architetture anche per i
calcolatori personali, prevedono la presenza di piu bus. Per esempio: un bus ad altis-
sima velocita. per il trasferimento di dati tra memoria cache, memoria centrale e CPUi
un bus ad alta velocita per il collegameuto di perileriche ad alte prestazioni (dischi);
un bus per i dispositivi periferici di basse prestazioni. Quest'ultimo corrisponde in
pratica al bus di Figura2.2.
La schema di Figura2.2 emolto semplice e rappresenta la forma piu scarna di
organizzazione di un calcolatore. Esso ecomunque adeguato alia comprensione degli
argomenti che vengono trattati nel seguito. Pili avanti verranno rnostrate strutture
organizzative molto piiI complesse.
La parte destra eli Figura 2.2 mostra che il bus si compone delle linee di indi-
rizzo (bus indirizzi), delle linee dati (bus dati) e delle linee di controlh Il bus degli
I
\
\
\
\
1
I
I
\
l
1
(
I
I
1
i
,
I
43
tHPIJT/OUTf"\J'T WDoOIUA
Elementi architetturali di base
c,u
=x .011.. X
=:::=x IndlJiuo valido X
=x nnn X---, X
Dati
"/10 \ /
"'''' . "
Indiri,,:oJ =::x: tndiriuo X'---

CI.O<:K
1Aquesto proposito si veda quanto detto in Appendice A nel Paragraro A.Il.l.
-
,
Figura: 2.2 Organizza.zione a bus unico. A sinistra 10 schema di principio, a destra la
separazione del bus unico in tre bus con funzionalita. diversa. II principia eche ogni nuovo
modulo di memoria. 0 di I/O viene aggiunto semplicemente collegaodolo sui bus.
indirizzi ha origine dalla. CPU ed enormalmente unidirezionale. Su di esso viene pre-
sentato l'indirizzo della cella di memoria cia Ieggere 0 scrivere, ovvero del registro di
un dispositivo di ingresso/uscita. U bus dati e bidirezionale. Con l'organizzazione di
Figura2.2 anche il sottosistema cii ingressofuscita pub essere riguardato come un in-
sierne di lfporte" di ingresso e di uscita, ciascuna delle quali viene selezionata tramite
un indirizzQ.
Da un punto di vista del suo collegamento con l'esterno 1a CPU deve compiere
due sole operazioni: leggere 0 scrivere dati. Infatti anche l'acquisizione dei codici di
istruzione e, dal punta di vista del bus esterno, un'operazione di lettura. In Figura 2.3
viene mostrata Ia temporizzazione delle operazioni di lettura e scrittura. La figura
mostra in modo esplicito che la durata di un cielo di 1ettura 0 scrittura puo richiedere
,
pill di un cicIo di clock. questa una situazione del tutto normale in quanto Ie
memorie sono di soli to pill lente della CPU. Se 1a memoria 0 il dispositivo sono troppo
lenti rispetto ana CpU necessano preved"er'e' un meccanismo che faccia aumentare i
numero di deli di clock della CPU per le operazioni di letturafscrittura. Di solito cic
si ottiene inserendo un opportuno numero di deli di attesa
1

In,r...o
.

1oI.",orl.
,
, .
,
i
:.,:,
,.....-
"
;1
.,(
,,-,'-1
"'i,

,...
..,

,
..:,
,
..'
"
,,' .;
'a'
,'I
,
,>
_c_

',"
,
,;.
il
"
...,
"
,
C,

,
,
h
"
-'

" ,.
;1,
.,
...:
,. .-

,
, "
,1<
' ..'
- ...
'I
.,;
,

T
-I
.::}
;
MEMORIA
CPU
conlrol1ore
dfcanale
I bus di I/O
, ,

D sistema eli ingressojuscita e l'insieme dei dispositivi che servono, da un lato,
a comumcare con IT moniic5"'esterno e con Putente (video, tastiere, stampanti),
dall'altro, ad aggiungere funzionalita al sistema di elaborazione stesso (mernorie
ausiliarie, linee di comunicazione ecc.). Del sistema di ingresso/ uscita fanno parte
le.interfacce, ovvero i componenti che fanno da ponte tra i dispositivi periferici e
il calcolatore stesso.
Figura 2.1 Esempio di organizza.zione di un calcolatore elettronico. La schema rappresenta
una tipica. architettura. mainframe di qua.lche anna addieteo (adotta.t.a per esempio dai sistemi
IBM 8/370). Si noti che esiste un p:ercorso t.ra la memoria e i dispositivi di 1/0
1
attraverso
il cosiddetto controllare eli canale.
CPU, memoria e I/O sana collegati tra loro in vari modi, a seconda della categoria
della macchina. Un esempio di organizzazione viene presentato in Figura2.1.
livelli di memoria. Si parla di memoria centrale quando ci si riferisce alia memo-
ria elettronica clirettamente connessa alIa CPUI si parla di memoria ausiliaria 0
eli massa. quando ci si riferisce, per esempio, alia memoria dei dischi magnetici.
42 Ca.pitola 2
In Figura 2.2 viene riportata l'organizzazione a bus unieo. Questa struttura venne
introdotta dalla Digital Equipment, nella prima meta degli anni settanta, per i
nicalcolatori della serie PDP 11 e guadagnb subito ampio consenso. Essa divenne,
poi, 10 standard con l'avvento dei microprocessori. La schema restO in auge per molti
anni per Ie macchine di dimensioni medio-piccole. A partire dagli anni novanta, con
"la incont.enibile. crescita delle prestazioJii delle CPU e l'impiego d.i memqrie cache, 10
schema d.i Figura2.2 si emostrato insufficiente. Le architetture anche per i
calcolatori personali, prevedono la presenza di piu bus. Per esempio: un bus ad altis-
sima velocita. per il trasferimento di dati tra memoria cache, memoria centrale e CPUi
un bus ad alta velocita per il collegameuto di perileriche ad alte prestazioni (dischi);
un bus per i dispositivi periferici di basse prestazioni. Quest'ultimo corrisponde in
pratica al bus di Figura2.2.
La schema di Figura2.2 emolto semplice e rappresenta la forma piu scarna di
organizzazione di un calcolatore. Esso ecomunque adeguato alia comprensione degli
argomenti che vengono trattati nel seguito. Pili avanti verranno rnostrate strutture
organizzative molto piiI complesse.
La parte destra eli Figura 2.2 mostra che il bus si compone delle linee di indi-
rizzo (bus indirizzi), delle linee dati (bus dati) e delle linee di controlh Il bus degli
I
\
\
\
\
1
I
I
\
l
1
(
I
I
1
i
,
I
2.1.1 II sistema CPU-memoria
-
.
44 Capitola 2
. j'
,;)1
':,
"I
,
.' J
.,,,,,
2.2 La CPU
-
Elementi architetturali di base
45
)
)
Figura 2.6 Struttura generale della CPU. La schema mette in evidenza due parti: l'unita
"operativa (UO) e I'unita. di controllo (UC). Lo schema mostra anche i Russi informativi tra
DC e DO etra.1'intera CPU e I'esterno [LP86J .
In Figura 2.6 viene data una schematizzazione molto aggregata della CPU. La sche-
matizzazione corrisponde al madelIa eli Figura 1.14. Come si vede la CPU estata
scomposta in due parti: I'UnitiJ. di Contro.llil.(UC) e l'UnitiJ. Operativa (UO).
-
\
I
I
\
I
)
]
\
l
J
J
\
I
1
I
I

PU' III uscrrJ. J

UO,
?ERlQ/A.
COlW!lll

COJfllIZlOlfl

DC

CPU
JUL
1SJR1nIPtfl
3La ALU domina il costo del processore, poiche, di solito, richiede meta dei transistori e della
superficie di silicio dell'integrato. Tuttavia, nonostante svolga Ie funzioni di ca.lcolo, condizioni Ie
prestazioni e domini il costa, I'unita di calcolo e almeno concettua.lmente la parte del processore piu
semplice da progettare, in quanto il suo funzionamento eben formalizzato. La ALU per interi e
necessaria in un calcolatore, in quanto interviene in ogni manipolazione dei dati. La FPU, quando e
presente, viene invece considerata come un elemento a se stante, comandata dalla UC.
pJ.n PI PlGJU::I.w x
L'unita. di controllo e res onsabile dell'esecuzione delle istruzioni
,
comandando
l'unita operativa a svolgere e operazioni corrispon ... . codici di istru-
zione. A tal finel DC interpreta il codice operativo contenuto neUe istruzioni e Ie
traduce in comandi per DO. Spesso l'esecuzione di un'istruzione deve tenere canto di
risultati intermedi dell'elaborazione generati nell'unita..operativa. Per questa motivo
a UC vengono comunicate Ie condizioni di stato di VO. Queste hanna influenza suI
comportamento di UC e, quindi , anche sui segnali di comando da UC a UO.
L'unta. operativa svol e la fu i olazian wrmazione de ,. _
formazione, trasformando j datLdi jDwesso X pe; dati di llscita Y. omponente
. essenziaJe dell'unita operativa e l'ALU, 1a rete che effettua Ie operazioni logiche e
aritmetiche sui dati
3
. In VO sono presenti anche un certo numero di registri di varia
usc, necessari per appoggiarvi l'informazione manipolata.
Lo schema di Figura2.6 mastra il fiusso di istruzioni che alimenta DC, oltre a1
flusso'di dati in ingresso a VO e il flusso in uscita da UO,lasciando alquanto indefinite
ii'
",,1:
,:f
"
,
:1<
,""
,',r,
, ,".

,:.1:
'. ,
'I,

, .. '"
.': .'
I'
'.", '-"
; ...
--,-
"',
' .. '.
"
,'.;:r.
..,""
.. '1'
In<llrlzz1
O.U
CPU MEMORIA
RO
WR
lndlrl:nl
lndlrl,ul
MEMORIA

Oali
MEMORIA
CPU
ISTRUZIONI
DATI

RO.o

Figura 2.4 Architettura di Von Neuman. La memoria eindifferenziata per dati 0 istruzioni,
solo l'interpretazione cia parte della CPU stabilisce 5e una data conn.gurazione di bit e da
riguardarsi come un dato 0 come un'istruzione.
Figura 2.5 Collegamento della CPU can due memorie distinte: la memoria istruzioni e
1a memoria dati. Si noti che per quanta si riferisce aHa sola esecuzione di un programma.
nella memoria istruzioni, 1a linea di comando RDMI e del tutto superftua, in quanta si pub
immaginare che questa memoria sia sempre e soltanto letta.
La realizzazione di un sistema come queUo di Figura 2.5 comporta maggiori costi.
Per questo, anche se esistono sistemi progettati e realizzati secondo tale schema, 1a
pratica industriale si rifa. aDo schema di Figura 2.4
2

rente schema or anizzativo del sistema CPU:.


ente Ie istruzioni edistinta nspetto a a
memOria usata per COJltenere j d.ati. r n r me de-
signata come architeJj;lIra Rorvsm, essa trova impiego in CPV destinate a specifici
campi applicativi come l'elaborazione dei segnali. Questa organizzazione si mostrera
conveniente nello studio iniziale del funzionamento della CPU.
Per la parte che segue, l'attenzione eessenzialmente rivolta alIa CPU e all'esecuzione
delle istruzioni. Per questa motivo il sottosistema di ingresso/uscita per un po' non
viene considerato e 10 schema di riferimento diventa quello di Figura 2.4: il classico
modelIa di Von Neuman.
. -
2Vale la pena di notare che 10 schema architetturale di figura viene di fatto utilizzato all'interno
"di gran parte delle moderne CPU can cache integrata (si veda il capitolo dedicato alle memoria
cache). La cache e speaso divisa in una cache dati e una cache proprio secondo il modello
in questione.

2.1.1 II sistema CPU-memoria


-
.
44 Capitola 2
. j'
,;)1
':,
"I
,
.' J
.,,,,,
2.2 La CPU
-
Elementi architetturali di base
45
)
)
Figura 2.6 Struttura generale della CPU. La schema mette in evidenza due parti: l'unita
"operativa (UO) e I'unita. di controllo (UC). Lo schema mostra anche i Russi informativi tra
DC e DO etra.1'intera CPU e I'esterno [LP86J .
In Figura 2.6 viene data una schematizzazione molto aggregata della CPU. La sche-
matizzazione corrisponde al madelIa eli Figura 1.14. Come si vede la CPU estata
scomposta in due parti: I'UnitiJ. di Contro.llil.(UC) e l'UnitiJ. Operativa (UO).
-
\
I
I
\
I
)
]
\
l
J
J
\
I
1
I
I

PU' III uscrrJ. J

UO,
?ERlQ/A.
COlW!lll

COJfllIZlOlfl

DC

CPU
JUL
1SJR1nIPtfl
3La ALU domina il costo del processore, poiche, di solito, richiede meta dei transistori e della
superficie di silicio dell'integrato. Tuttavia, nonostante svolga Ie funzioni di ca.lcolo, condizioni Ie
prestazioni e domini il costa, I'unita di calcolo e almeno concettua.lmente la parte del processore piu
semplice da progettare, in quanto il suo funzionamento eben formalizzato. La ALU per interi e
necessaria in un calcolatore, in quanto interviene in ogni manipolazione dei dati. La FPU, quando e
presente, viene invece considerata come un elemento a se stante, comandata dalla UC.
pJ.n PI PlGJU::I.w x
L'unita. di controllo e res onsabile dell'esecuzione delle istruzioni
,
comandando
l'unita operativa a svolgere e operazioni corrispon ... . codici di istru-
zione. A tal finel DC interpreta il codice operativo contenuto neUe istruzioni e Ie
traduce in comandi per DO. Spesso l'esecuzione di un'istruzione deve tenere canto di
risultati intermedi dell'elaborazione generati nell'unita..operativa. Per questa motivo
a UC vengono comunicate Ie condizioni di stato di VO. Queste hanna influenza suI
comportamento di UC e, quindi , anche sui segnali di comando da UC a UO.
L'unta. operativa svol e la fu i olazian wrmazione de ,. _
formazione, trasformando j datLdi jDwesso X pe; dati di llscita Y. omponente
. essenziaJe dell'unita operativa e l'ALU, 1a rete che effettua Ie operazioni logiche e
aritmetiche sui dati
3
. In VO sono presenti anche un certo numero di registri di varia
usc, necessari per appoggiarvi l'informazione manipolata.
Lo schema di Figura2.6 mastra il fiusso di istruzioni che alimenta DC, oltre a1
flusso'di dati in ingresso a VO e il flusso in uscita da UO,lasciando alquanto indefinite
ii'
",,1:
,:f
"
,
:1<
,""
,',r,
, ,".

,:.1:
'. ,
'I,

, .. '"
.': .'
I'
'.", '-"
; ...
--,-
"',
' .. '.
"
,'.;:r.
..,""
.. '1'
In<llrlzz1
O.U
CPU MEMORIA
RO
WR
lndlrl:nl
lndlrl,ul
MEMORIA

Oali
MEMORIA
CPU
ISTRUZIONI
DATI

RO.o

Figura 2.4 Architettura di Von Neuman. La memoria eindifferenziata per dati 0 istruzioni,
solo l'interpretazione cia parte della CPU stabilisce 5e una data conn.gurazione di bit e da
riguardarsi come un dato 0 come un'istruzione.
Figura 2.5 Collegamento della CPU can due memorie distinte: la memoria istruzioni e
1a memoria dati. Si noti che per quanta si riferisce aHa sola esecuzione di un programma.
nella memoria istruzioni, 1a linea di comando RDMI e del tutto superftua, in quanta si pub
immaginare che questa memoria sia sempre e soltanto letta.
La realizzazione di un sistema come queUo di Figura 2.5 comporta maggiori costi.
Per questo, anche se esistono sistemi progettati e realizzati secondo tale schema, 1a
pratica industriale si rifa. aDo schema di Figura 2.4
2

rente schema or anizzativo del sistema CPU:.


ente Ie istruzioni edistinta nspetto a a
memOria usata per COJltenere j d.ati. r n r me de-
signata come architeJj;lIra Rorvsm, essa trova impiego in CPV destinate a specifici
campi applicativi come l'elaborazione dei segnali. Questa organizzazione si mostrera
conveniente nello studio iniziale del funzionamento della CPU.
Per la parte che segue, l'attenzione eessenzialmente rivolta alIa CPU e all'esecuzione
delle istruzioni. Per questa motivo il sottosistema di ingresso/uscita per un po' non
viene considerato e 10 schema di riferimento diventa quello di Figura 2.4: il classico
modelIa di Von Neuman.
. -
2Vale la pena di notare che 10 schema architetturale di figura viene di fatto utilizzato all'interno
"di gran parte delle moderne CPU can cache integrata (si veda il capitolo dedicato alle memoria
cache). La cache e speaso divisa in una cache dati e una cache proprio secondo il modello
in questione.

47 Elementi architetturali di base


CPU
uc
IUb
I .. I
I: ';-1 I
Lo.'c. d.l

MEMORIA
Con\.>-ollo
I/Cil
I
'0
I
I
I
....
I
Indlrlzzl

I
I
!<fiR I
Dati
I
CQmllndl
Figura 2.8 Elementi fandamentali della CPU. La figura evidenzia il coUega.mento Con la
memoria, attraverso Ie linee dei dati, Ie linee degli indirizzi e Ie linee di controlla. Di queste
ultiine fanno parte Ie linee di camanda che escono da.lla CPU, quali per esempio Ie linee di
Memory Read e Memory Write.
2.3 Primo esame del funzionamento d.el.la...CEll.
I1JcStruction Registe - eil re istro contenere l'istruzione in cor 0 di
esecuzione. viene caricato nella rase di fetch e presentato a logica di control-
to chela aeco'ttttica (interpreta) e genera una sequenza temporizzata. di segnali
di controllo che vengono inviati ai diversi componenti del sistema (ALU, CPU,
memoria, dispositivi I/O). In pratica IR rappresenta l'ingresso che determina Ie
711 il primo minicalcolatore della storia, aveva un solo registro aceumulatare. Esse
veniva in tutte Ie operazioni che avevano l'effetto di modificare qualcbe dato. Le macchine moderne
sono dota.te di un ampio numero di registri di uso generaJe.
8Poiche operativa ei svolgono sostaozialmente trasferime.nti di informazioni (attraverso
la ALU) tra registri e tra registri e l'esterno, gli anglosassoni denotano UO came Data Path.
Ai fini della manipolazione dell'informazione in CPU, conviene the in UO siano
presenti un certo numero di registri su cui appoggiare }'informazione1
In Figura 2.8 si mostrano in maggior dettaglio i componenti dell'unita. operativa e
de1l'unita di controllo deUa CPU. La figura non mostra i collegamenti all'interno di
UC e UQ, ne tra Ie parti stesse. Ai fini della discussione che segue si puo assumere che
siano disponibili tutti i percorsi possibili tra i vari registri. 8i deve anche assurnere
che dalI'unita di controllo escano i segnali eli comando per Ie parti interne (per il
trasferirnento delle inforrnazioni tra i registri e per selezionare Ie operazioni di ALU)8.
Nel seguito si spiega it ruolo degH elementi riportati in Figura2.8, senza menzionare
la ALU di cui si egil< parlato.
'.

.:!
,
,
-I
,
1
I
I
,
1
I
,
l
i

t

"':
..
.: ,.
'.. 1'

'l.i.
I'
'- "
Fine esecuzione_
lnizio esecuzione
Capitolo 2 46
Figura 2.7 Diagramma eli stato aggregato del funzianamento deU'unita. di controlla. II
primo macrostato, detto stato di Fetch com rende it relievo e 1a decadifica. della rossima.
istruzione; il secondo macros a.to, detto sta.ta Execute, e u e e a.zJOnt c e
quell? Bpecifu:.a istruzione.
In modo aggregato il fUDzionamento delPuruta di centrella puC> essere rappresentato
con il diagramma di stato di Figura2.7. In sintesi
1
DC eUD automa che passa attra
verso due macrostati: oel primo viene letta (dalla memoria) e decodificata la prossima
istruzione
6
; nel secondo viene svolta l'operazione prevista cial ccdice operativQ dell'is-
truzione stessa. Le operazioni possono essere di natura Iogico-aritmetica, come pure
operazioni che hanno a che fare con il contrello, come, per esempio, il calcolo dell'in-
dirizzo eli memoria di un'istruzione [uori sequenza. In ogni caso Ie operazioni vengono
efIettuate trarpite va e, piu specmcatarnente, tramite la ALU.

tI..
Un programma e una sequenza di istruzionL Le istruzioni sono in memoria a
indirizzi contigui. L'eseeuzione di sequenze di istruzioni richiede un registro di CPU
con funzione di puntatore alia prossima istruzione da eseguire. Tale registro viene
usuaimente denominato Program Counter (PC). Per quanto attiene alIa fase di fetch,
la logica della CPU legge l'istruzione contenuta nella cella di memoria indirizzata da
PC. AI termine dell'esecuzione dell'istruzione PC deve puntare alia pro5sima istruzio-
net Se 5i ipotizza che Ie istruzioni occupino tutte 10 stesso numero di byte, PC deve
essere incrementato di una quantiU. pari a tale numero; se invece le istruzioni sono di
differente dimensione, a seconda del codice di istruzione, PC deve essere incrementa-
to di volta in volta del numero corrispondente allo spazio oecupato dall'istruzione in
memoria. Le istruzioni di salto hanno l'effetto di aggiornare il PC con l'indirizzo di
destinazione del salto.
Ie relazioni tra CPU ed esterno
4
. In Figura2.6 non compaioDo espressamente gli
generati dalla CPU per istruzioni, leggere e scrivere dati,- anche perche
gli indirizzi vengono generati da Uc e quindi, in termini astratti, sono solo una parte
dei dati (anthe se predominante) in uscita da UO.
Sia UO che UC
S
sono reti sequenziali sincrone, normalmente temporizzate tra-
mite il medesimo clock. n clock dl< il soffio vitale aI modello di Figura 2.6.
4Si osservi the i dati possooo provenirejessere diretti a.nche daijai dispositivi di uscita. Nella
discussione che segue 10 scambio di dati coo Ie periferiche 000 ha alcuna ri1evam:a, per cui si tiene
conto del solo del scam-bio di dati con la memoria.
5In realta, meotre UC e ne<:essariameote una rete sequenziale, UO (almena nello schema di
Figura 2.6) pub convenientemente essere riguardata come una rete combinatoria.
- 6In lingua inglese, per indica.re il complesso di funzioni svolte in questa macrostato, viene usato
il verba to fetch. Per sinteticita di linguaggio, indicberemo questa macrostata come stato di fetch.
\
\

I
)
I
l
I
\
)
I
\
I
\
I

47 Elementi architetturali di base


CPU
uc
IUb
I .. I
I: ';-1 I
Lo.'c. d.l

MEMORIA
Con\.>-ollo
I/Cil
I
'0
I
I
I
....
I
Indlrlzzl

I
I
!<fiR I
Dati
I
CQmllndl
Figura 2.8 Elementi fandamentali della CPU. La figura evidenzia il coUega.mento Con la
memoria, attraverso Ie linee dei dati, Ie linee degli indirizzi e Ie linee di controlla. Di queste
ultiine fanno parte Ie linee di camanda che escono da.lla CPU, quali per esempio Ie linee di
Memory Read e Memory Write.
2.3 Primo esame del funzionamento d.el.la...CEll.
I1JcStruction Registe - eil re istro contenere l'istruzione in cor 0 di
esecuzione. viene caricato nella rase di fetch e presentato a logica di control-
to chela aeco'ttttica (interpreta) e genera una sequenza temporizzata. di segnali
di controllo che vengono inviati ai diversi componenti del sistema (ALU, CPU,
memoria, dispositivi I/O). In pratica IR rappresenta l'ingresso che determina Ie
711 il primo minicalcolatore della storia, aveva un solo registro aceumulatare. Esse
veniva in tutte Ie operazioni che avevano l'effetto di modificare qualcbe dato. Le macchine moderne
sono dota.te di un ampio numero di registri di uso generaJe.
8Poiche operativa ei svolgono sostaozialmente trasferime.nti di informazioni (attraverso
la ALU) tra registri e tra registri e l'esterno, gli anglosassoni denotano UO came Data Path.
Ai fini della manipolazione dell'informazione in CPU, conviene the in UO siano
presenti un certo numero di registri su cui appoggiare }'informazione1
In Figura 2.8 si mostrano in maggior dettaglio i componenti dell'unita. operativa e
de1l'unita di controllo deUa CPU. La figura non mostra i collegamenti all'interno di
UC e UQ, ne tra Ie parti stesse. Ai fini della discussione che segue si puo assumere che
siano disponibili tutti i percorsi possibili tra i vari registri. 8i deve anche assurnere
che dalI'unita di controllo escano i segnali eli comando per Ie parti interne (per il
trasferirnento delle inforrnazioni tra i registri e per selezionare Ie operazioni di ALU)8.
Nel seguito si spiega it ruolo degH elementi riportati in Figura2.8, senza menzionare
la ALU di cui si egil< parlato.
'.

.:!
,
,
-I
,
1
I
I
,
1
I
,
l
i

t

"':
..
.: ,.
'.. 1'

'l.i.
I'
'- "
Fine esecuzione_
lnizio esecuzione
Capitolo 2 46
Figura 2.7 Diagramma eli stato aggregato del funzianamento deU'unita. di controlla. II
primo macrostato, detto stato di Fetch com rende it relievo e 1a decadifica. della rossima.
istruzione; il secondo macros a.to, detto sta.ta Execute, e u e e a.zJOnt c e
quell? Bpecifu:.a istruzione.
In modo aggregato il fUDzionamento delPuruta di centrella puC> essere rappresentato
con il diagramma di stato di Figura2.7. In sintesi
1
DC eUD automa che passa attra
verso due macrostati: oel primo viene letta (dalla memoria) e decodificata la prossima
istruzione
6
; nel secondo viene svolta l'operazione prevista cial ccdice operativQ dell'is-
truzione stessa. Le operazioni possono essere di natura Iogico-aritmetica, come pure
operazioni che hanno a che fare con il contrello, come, per esempio, il calcolo dell'in-
dirizzo eli memoria di un'istruzione [uori sequenza. In ogni caso Ie operazioni vengono
efIettuate trarpite va e, piu specmcatarnente, tramite la ALU.

tI..
Un programma e una sequenza di istruzionL Le istruzioni sono in memoria a
indirizzi contigui. L'eseeuzione di sequenze di istruzioni richiede un registro di CPU
con funzione di puntatore alia prossima istruzione da eseguire. Tale registro viene
usuaimente denominato Program Counter (PC). Per quanto attiene alIa fase di fetch,
la logica della CPU legge l'istruzione contenuta nella cella di memoria indirizzata da
PC. AI termine dell'esecuzione dell'istruzione PC deve puntare alia pro5sima istruzio-
net Se 5i ipotizza che Ie istruzioni occupino tutte 10 stesso numero di byte, PC deve
essere incrementato di una quantiU. pari a tale numero; se invece le istruzioni sono di
differente dimensione, a seconda del codice di istruzione, PC deve essere incrementa-
to di volta in volta del numero corrispondente allo spazio oecupato dall'istruzione in
memoria. Le istruzioni di salto hanno l'effetto di aggiornare il PC con l'indirizzo di
destinazione del salto.
Ie relazioni tra CPU ed esterno
4
. In Figura2.6 non compaioDo espressamente gli
generati dalla CPU per istruzioni, leggere e scrivere dati,- anche perche
gli indirizzi vengono generati da Uc e quindi, in termini astratti, sono solo una parte
dei dati (anthe se predominante) in uscita da UO.
Sia UO che UC
S
sono reti sequenziali sincrone, normalmente temporizzate tra-
mite il medesimo clock. n clock dl< il soffio vitale aI modello di Figura 2.6.
4Si osservi the i dati possooo provenirejessere diretti a.nche daijai dispositivi di uscita. Nella
discussione che segue 10 scambio di dati coo Ie periferiche 000 ha alcuna ri1evam:a, per cui si tiene
conto del solo del scam-bio di dati con la memoria.
5In realta, meotre UC e ne<:essariameote una rete sequenziale, UO (almena nello schema di
Figura 2.6) pub convenientemente essere riguardata come una rete combinatoria.
- 6In lingua inglese, per indica.re il complesso di funzioni svolte in questa macrostato, viene usato
il verba to fetch. Per sinteticita di linguaggio, indicberemo questa macrostata come stato di fetch.
\
\

I
)
I
l
I
\
)
I
\
I
\
I
-,., . . ..
,
]1
,
)
Possiamo ora dare uno sguardo all'esecuzione delle istruzioni.
2.3.1 Esecuzione di un'istruzione
\
i
I
,
,
I
I
(
\
!
1
49

Elementi arChitetturali di base


D' >'"ETC=H
MAA <-
"
.01.",,_
WlHII:<_ W(loU.Il J
t ___a
lan"'""l ....
I"
<- MD'
.
(: _......::>
CHloa apuaU9a
." I""ro..w.....
/' ...1 Pc """
'"
/
\
"oJ
,
D' ona:C=UTC
I
c) il contenuto di MDR viene copiato in IR;
d) viene decodificato il codice operativo dell'istruzione in me incrementato PC in
modo da farlo puntare all'istruzione successiva (per la prossima fase di fetch).
La. successione dei passi descritti eschematizzata in Figura2.9.
a) iI centenuto di PC viene trasferito in MAR;
b) l'uscita di MAR viene presentato suI bus degli indirizzi e viene asserito il comando
di lettura della memoria; il contenuto della cella indirizzata viene caricato in
MDR;
Essendo llunita di cantrollo una macchina sequenziale sinerana, ogni passe pub \
essere riguardato come uno stata dell'automa corrispondente. suI secondo
stato viene letta la memoria e questa enormalmente pili lenta della logica di
CPUI epossibile che OCcorra inserire un congruo numero di deli wait per dar tempo }
aUa memoria di rispondere
lO
. Con il nostro modello, il fetch dell'istruzione richiede !
40 pili deli di clock.
Come piu avanti (Crr.H), U I
( etn che dete nano l 10m d U. re
condizioni, Ie prestazioni SOUQ ]:"" lip modo )
p'er cerca:re. conslste n _. eg,o fattore.""'er
nfer!ce VIe,;,...
10C': t _, _ _ . el Paragrafo A.ILl 1
Figura 2.9 Diagramma a stati relativo aUa fase di fetch. n ramo di uscita dalla fase di \
fetcb eselezionato in base at codice di istr'uzione. Ogni stato ha. 130 durata di un periodo
clock, eccetto iI secondo il quaie pub ricbiedere piu cicli a causa della (relativa) lentezza della I
memoria.
'.
" ,
'"
",
''',,'
.,'
'1'
,; ,
"
"', ,
.c,
,
","
" '",
.....
-'
-.'
...'
,
.,.

.'.,
.,
'1)
,
'.,
'-
"

"'I,

.'
.,1'
.. ,
,1,
'i ,I,
'1
,I.'
,
.-
.. {

....'
."
e viene scambiaj;a e il registro attraverso j
la"PII"
MAR eil registro deputato a contenere l'indirizzo
usus egli
in mzzi. i norma, Puscita eabilitata durante Ie fasi letturajscrittura, mentre
emantenuta. in terzo stato fuori cia queste fasi.
Capitolo 2
Memory nata
l'mformazlOneJti!i pm
azioni svolte durante 1a rase di esecuzione. Per questa esso estato aggregato a
UC, mentre tutti gli altri registri sono stati aggregati a UO.
PrD;;;-am Counter - EC e il registro che biene traccia dell'esecuzione del pro-
gramma. ESso contiene l'indirizzo dell'istruzione in esecuzione. Durante Pesecu-
zione dell'istruzione stessa
J
PC viene aggiornato in modo cia puntare all'istruzione
SUCCesSlva.
48
Reqistri di USQ generale - RO, Rl, ...Rn SQnQ per mantenere dati su cui
1& ALU eseiUlj> operazioni, come registri di appoggio, per l'indirizzamento ecc.
Nelle architetture moderne 1a tendenza ad avere un elevato numero di registri,
intercambiabili tra loro. In passato i registri di CPU erano pili specializzatij
in particolare si distingueva. il "registro accumulatore", come queUo cbe doveva
necessariamente essere impiegato in certe operazioni aritmetiche e logiche. Per
esempio, il registro AX dell'8086 ha funzione di accumulatore, nel sensa che
interviene in tutte Ie operazioni aritmetiche, mentre iI registro BX, che pure pub
essere usato in semplici operazioni aritmetiche, ha di norma 1a funzione di registro
di base nel calcolo deU'indirizzo di un operando.
IVl no essenziali. Infatti, per la trasmissione dell'in-
dirizzo deWistruzione basterebbe PC, per a rasmissione dell'indirizzo di un dato
basterebbe (il campo relativo di) IR, per il trasferimento dei dati basterebbe stabilire
un percorso tra memoria e il registro implicato. Q.i.....M.A.R e MDR permette
di disacco12piare la CPU dalla memoria.
,Fase di fetch .,!.m:Qgrammi il registro PC fornisce l'indirizzo
della prossima istruzione aa eseguire. Ware dI1etch. inizja con il prelievo de1Pistru
ziQne e si conclude con 13 sua decodifica. Pili dettagliatamente possiamo immaginare
me Ia fase di fetch proceda attraverso i seguenti passi:
9Natare che mentre per quanta gi riferisce a. MAR il flU8SO e unidirezianale (dal proceesore verso
memoria), per MDR jJ Busso dei dati e bidirezionale. Tradizionalmen,te 1a dimensiooe di MOR
I a. la m . arallelismo della macchin : i microprocessori della prima generazion'!
avevano un bus dati a 8 bit; a a me eg I anm '90 vengona prodotti microprocessod can bus
da.ti a 64 bit (8 byte). La dimensione di MAR determina Pa.mpiezza della spazio di memoria fisica.
I microprocessori della prima generazione avevano il bug indirizzi a 16 bit; dalla fine degli anni '80
vengano prodotti microprocessori can bus indirizzi a 32 bit.

-,., . . ..
,
]1
,
)
Possiamo ora dare uno sguardo all'esecuzione delle istruzioni.
2.3.1 Esecuzione di un'istruzione
\
i
I
,
,
I
I
(
\
!
1
49

Elementi arChitetturali di base



D' >'"ETC=H
MAA <-
"
.01.",,_
WlHII:<_ W(loU.Il J
t ___a
lan"'""l ....
I"
<-
MD'
.
(: _......::>
CHloa apuaU9a
." I""ro..w.....
/' ...1 Pc """
'"
/
\
"oJ
,

D'
ona:C=UTC
I
c) il contenuto di MDR viene copiato in IR;
d) viene decodificato il codice operativo dell'istruzione in me incrementato PC in
modo da farlo puntare all'istruzione successiva (per la prossima fase di fetch).
La. successione dei passi descritti eschematizzata in Figura2.9.
a) iI centenuto di PC viene trasferito in MAR;
b) l'uscita di MAR viene presentato suI bus degli indirizzi e viene asserito il comando
di lettura della memoria; il contenuto della cella indirizzata viene caricato in
MDR;
Essendo llunita di cantrollo una macchina sequenziale sinerana, ogni passe pub \
essere riguardato come uno stata dell'automa corrispondente. suI secondo
stato viene letta la memoria e questa enormalmente pili lenta della logica di
CPUI epossibile che OCcorra inserire un congruo numero di deli wait per dar tempo }
aUa memoria di rispondere
lO
. Con il nostro modello, il fetch dell'istruzione richiede !
40 pili deli di clock.
Come piu avanti (Crr.H), U I
( etn che dete nano l 10m d U. re
condizioni, Ie prestazioni SOUQ ]:"" lip modo )
p'er cerca:re. conslste n _. eg,o fattore.""'er
nfer!ce VIe,;,...
10C': t _, _ _ . el Paragrafo A.ILl 1
Figura 2.9 Diagramma a stati relativo aUa fase di fetch. n ramo di uscita dalla fase di \
fetcb eselezionato in base at codice di istr'uzione. Ogni stato ha. 130 durata di un periodo
clock, eccetto iI secondo il quaie pub ricbiedere piu cicli a causa della (relativa) lentezza della I
memoria.
'.
"
,
'"
",
''',,'
.,'
'1'
,; ,
"
"', ,
.c,
,
","
" '",
.....
-'
-.'
...'
,
.,.

.'.,
.,
'1)
,
'.,
'-
"

"'I,

.'
.,1'
.. ,
,1,
'i ,I,
'1
,I.'
,
.-
.. {

....'
."
e viene scambiaj;a e il registro attraverso j
la"PII"
MAR eil registro deputato a contenere l'indirizzo
usus egli
in mzzi. i norma, Puscita eabilitata durante Ie fasi letturajscrittura, mentre
emantenuta. in terzo stato fuori cia queste fasi.
Capitolo 2
Memory nata
l'mformazlOneJti!i pm
azioni svolte durante 1a rase di esecuzione. Per questa esso estato aggregato a
UC, mentre tutti gli altri registri sono stati aggregati a UO.
PrD;;;-am Counter - EC e il registro che biene traccia dell'esecuzione del pro-
gramma. ESso contiene l'indirizzo dell'istruzione in esecuzione. Durante Pesecu-
zione dell'istruzione stessa
J
PC viene aggiornato in modo cia puntare all'istruzione
SUCCesSlva.
48
Reqistri di USQ generale - RO, Rl, ...Rn SQnQ per mantenere dati su cui
1& ALU eseiUlj> operazioni, come registri di appoggio, per l'indirizzamento ecc.
Nelle architetture moderne 1a tendenza ad avere un elevato numero di registri,
intercambiabili tra loro. In passato i registri di CPU erano pili specializzatij
in particolare si distingueva. il "registro accumulatore", come queUo cbe doveva
necessariamente essere impiegato in certe operazioni aritmetiche e logiche. Per
esempio, il registro AX dell'8086 ha funzione di accumulatore, nel sensa che
interviene in tutte Ie operazioni aritmetiche, mentre iI registro BX, che pure pub
essere usato in semplici operazioni aritmetiche, ha di norma 1a funzione di registro
di base nel calcolo deU'indirizzo di un operando.
IVl no essenziali. Infatti, per la trasmissione dell'in-
dirizzo deWistruzione basterebbe PC, per a rasmissione dell'indirizzo di un dato
basterebbe (il campo relativo di) IR, per il trasferimento dei dati basterebbe stabilire
un percorso tra memoria e il registro implicato. Q.i.....M.A.R e MDR permette
di disacco12piare la CPU dalla memoria.
,Fase di fetch .,!.m:Qgrammi il registro PC fornisce l'indirizzo
della prossima istruzione aa eseguire. Ware dI1etch. inizja con il prelievo de1Pistru
ziQne e si conclude con 13 sua decodifica. Pili dettagliatamente possiamo immaginare
me Ia fase di fetch proceda attraverso i seguenti passi:
9Natare che mentre per quanta gi riferisce a. MAR il flU8SO e unidirezianale (dal proceesore verso
memoria), per MDR jJ Busso dei dati e bidirezionale. Tradizionalmen,te 1a dimensiooe di MOR
I a. la m . arallelismo della macchin : i microprocessori della prima generazion'!
avevano un bus dati a 8 bit; a a me eg I anm '90 vengona prodotti microprocessod can bus
da.ti a 64 bit (8 byte). La dimensione di MAR determina Pa.mpiezza della spazio di memoria fisica.
I microprocessori della prima generazione avevano il bug indirizzi a 16 bit; dalla fine degli anni '80
vengano prodotti microprocessori can bus indirizzi a 32 bit.

50 Capitolo 2
51

Elementi architetturali di base


Rl
R2'
R3
.
TEMPI
A
L
U
TEMPO
. al terzo passe devono essere asserite Ie linee TEMPO..out e R3_in per caricare il
risultato della somma in R3.
Figura 2.10 Percorsi impiegati per l'esecuzione dell'istruzione ADD R3 ,Rl, R2 nel caso di W1
solo bus interno.
>
. L'unita. di controllo puo essere a logica cablata, oppure microprogrammata.
rUnita di cantralla a1: cablata La realizzaziane dell'Ua in lagica
nchledeJa:Pr.ogettazion sincrona il CU_l
dal diagramma di stato in forma aggregata di Figura. 2. 7 e
--
2,3,2 Due approcci per la progettazione dell'unita di controllo
E evidente che una maggior disponibilita di percorsi interrn alPunitA operativa
.consente di veloclzzare Ie Se, per esempio, IpotlZzlamo che
lJO Cl SlanO treous, 1a prece ente operazione pub essere svolta in un solo colpo di
clock. In Figura 2.11" viene present80ta una realizzazione di UO con tre bus interni.
Due di questi fungono da bus sorgenti e uno da bus di destinazione. In queste case
non servono (almene in riferimento all'esecuzione dell'istruzione di cui si sta parlando)
i registri di appoggio per Ia. AtU, in quanto il contenuto dei registri sorgente viene
. presentato alIa ALU tramite 51 e 52, mentre il risultato viene diretto 801 registro di
qestinazione tramite D. Le Hnee di comando dell'abilitazione delle uscite di R1 e R2,
di comando della AtU e di caricamento di R3 possono essere asserite tutte nelle stesso
periodo di clock.
Abbiamo considerate il caso di un'istruzione aritmetica. Identici ragionamenti
si applicano anche al case di istruzioni di altra natura. Per Ie istruzioni che fanno
riferimento alia memoria e possibile che anche in fase di esecuzione si richieda I
-:- troduzione di cicli di attesa (teoricamente 10 stesso puo accadere anche nel caso di
istruzioni di ingressojuscita). Ovviamente, se vengono inseriti stati di wait aumenta
il conto di clock per istruzione.

"
."
.ll,
,.

,
I!
'I'
"k
:
.'
'. ,,',
.' ,,,
, "i'
ii
'it
,I
,;,'1;
"

,I
J
..
.\;t
l
>.,
"
, \1
?,
'I
II
.'. ':-'
.,,1'
"
,1.,
,
, .'

'."J
'.I
i,
,[,

'1
'.




,I
,

:il
;J
,1:1

,
..

>1
,
,"t
.. '11
"til
,"I
::':1' .,
".' ,
,
0-
".
"
f '
'.,,:
,,;<
"
.,
"'/
,
..
'111
':'11,
','II
",
,
','1

'"',"'
,
11 Alia sta.to della. tecnologia. do porta all'adozione di memorie ca.che.
@riducendo il Dumero di stati attraversati, cercando di accorpare pili operazioni in
un medesimo state;
Gevitando gli stati di attesa dovuti alia lentezza della memoria rispetto alla CPU
ll
,
'&Se di esecuzione . In uesta I 'ca di controlla genera i segnali the fanno
svolgere Ie wow richieste in base a1 contenuto di IR eleven U 1C lZloni di stato.
Consu1:e"namo per esempio l'istruzione aritmetica. ADD R3 ,Rl, R2, it CUI efl'eflOe
R3+- Rl+R2: La sua esecuzione richiede che venga generata una sequEmza di se@lali
aventi l'effetto di:
@)presentare a.l.la ALU il contenuto dei due registri sorgente e selezionare
tuna camanda per la ALU;
il risultato in uscita dalla ALU a1 registro di destinazione.
Come piu volte osservato, Ie attivita che si svolgono entro l'unita. operativa caosis-
tono essenzialmente in trasferimenti. I trasferimenti di informazione tra registri e
registri di ua e tr80 registri e l'esterno (memoria 0 sistema di ingresso uscita) avven-
gono in passi successivi, i1 cui numero ein parte determinato da! numero. di percorsi
e1ispanibili.
the la struttura di
callegati gli inNessi e Ie uscite di
SOIOla comunicazione da lID reg
__'i"(J"ue ill essi mentre un' esso uo essere il bus, l'a.ltro
un registro di appoggio, registro TEMPI come a ema
ai' Figura 2.10. Per losresscrmotiVO iI relPstro ill in
Jtrn', mdiCato come :rEraPO ill
.----"lir'tali innto<:i 1'0<:o... II'7.i ..... m. deIPistruzione richiede almeno i seguenti passi:
a) 8obilitazione dell'uscita di R1 suI bus interne e caricamento di TEMPI;
b) 8obilitazione dell'uscita di R2 suI bus interno, asserzione del comando ADD all' ALU
e mernorizzazione dell'uscita di ALU in TEMPOj
c) abilitazione dell'uscita d.i TEMPO sul bus interno e caricamento in R3.
Ciascun passe corrisponclere a un periodo di clock. A ogni periodo di clock l'unita
di contrallo asserisce i comancU che fanno svolgere Ie azioni richieste. In particolare:
al primo dei passi precedenti cleve essere a,sserita la linea RLout, con 1a Quale si
abilita l'uscita di R1 suI bus, e 180 linea TEMPLin, can 180 quale si comanda il
caricamenta eli TEMPI dal bus;
. al secondo passo deve essere asserita 180 linea R2--out e 180 linea TEMPLout, in
modo da presentare aJIa ALU i due operandi; deve essere asserita 1a linea di
camanda ADD alia ALU e deve essere asserita la linea TEMPO-in, can la quale
si camanda il caricamenta in TEMPO dell'uscita di ALU;
)
\
\
I
I
f
\
i
I
I
I
l

l
!
: 1
I
50 Capitolo 2
51

Elementi architetturali di base


Rl
R2'
R3
.
TEMPI
A
L
U
TEMPO
. al terzo passe devono essere asserite Ie linee TEMPO..out e R3_in per caricare il
risultato della somma in R3.
Figura 2.10 Percorsi impiegati per l'esecuzione dell'istruzione ADD R3 ,Rl, R2 nel caso di W1
solo bus interno.
>
. L'unita. di controllo puo essere a logica cablata, oppure microprogrammata.
rUnita di cantralla a1: cablata La realizzaziane dell'Ua in lagica
nchledeJa:Pr.ogettazion sincrona il CU_l
dal diagramma di stato in forma aggregata di Figura. 2. 7 e
--
2,3,2 Due approcci per la progettazione dell'unita di controllo
E evidente che una maggior disponibilita di percorsi interrn alPunitA operativa
.consente di veloclzzare Ie Se, per esempio, IpotlZzlamo che
lJO Cl SlanO treous, 1a prece ente operazione pub essere svolta in un solo colpo di
clock. In Figura 2.11" viene present80ta una realizzazione di UO con tre bus interni.
Due di questi fungono da bus sorgenti e uno da bus di destinazione. In queste case
non servono (almene in riferimento all'esecuzione dell'istruzione di cui si sta parlando)
i registri di appoggio per Ia. AtU, in quanto il contenuto dei registri sorgente viene
. presentato alIa ALU tramite 51 e 52, mentre il risultato viene diretto 801 registro di
qestinazione tramite D. Le Hnee di comando dell'abilitazione delle uscite di R1 e R2,
di comando della AtU e di caricamento di R3 possono essere asserite tutte nelle stesso
periodo di clock.
Abbiamo considerate il caso di un'istruzione aritmetica. Identici ragionamenti
si applicano anche al case di istruzioni di altra natura. Per Ie istruzioni che fanno
riferimento alia memoria e possibile che anche in fase di esecuzione si richieda I
-:- troduzione di cicli di attesa (teoricamente 10 stesso puo accadere anche nel caso di
istruzioni di ingressojuscita). Ovviamente, se vengono inseriti stati di wait aumenta
il conto di clock per istruzione.

"
."
.ll,
,.

,
I!
'I'
"k
:
.'
'. ,,',
.' ,,,
, "i'
ii
'it
,I
,;,'1;
"

,I
J
..
.\;t
l
>.,
"
, \1
?,
'I
II
.'. ':-'
.,,1'
"
,1.,
,
, .'

'."J
'.I
i,
,[,

'1
'.




,I
,

:il
;J
,1:1

,
..

>1
,
,"t
.. '11
"til
,"I
::':1' .,
".' ,
,
0-
".
"
f '
'.,,:
,,;<
"
.,
"'/
,
..
'111
':'11,
','II
",
,
','1

'"',"'
,
11 Alia sta.to della. tecnologia. do porta all'adozione di memorie ca.che.
@riducendo il Dumero di stati attraversati, cercando di accorpare pili operazioni in
un medesimo state;
Gevitando gli stati di attesa dovuti alia lentezza della memoria rispetto alla CPU
ll
,
'&Se di esecuzione . In uesta I 'ca di controlla genera i segnali the fanno
svolgere Ie wow richieste in base a1 contenuto di IR eleven U 1C lZloni di stato.
Consu1:e"namo per esempio l'istruzione aritmetica. ADD R3 ,Rl, R2, it CUI efl'eflOe
R3+- Rl+R2: La sua esecuzione richiede che venga generata una sequEmza di se@lali
aventi l'effetto di:
@)presentare a.l.la ALU il contenuto dei due registri sorgente e selezionare
tuna camanda per la ALU;
il risultato in uscita dalla ALU a1 registro di destinazione.
Come piu volte osservato, Ie attivita che si svolgono entro l'unita. operativa caosis-
tono essenzialmente in trasferimenti. I trasferimenti di informazione tra registri e
registri di ua e tr80 registri e l'esterno (memoria 0 sistema di ingresso uscita) avven-
gono in passi successivi, i1 cui numero ein parte determinato da! numero. di percorsi
e1ispanibili.
the la struttura di
callegati gli inNessi e Ie uscite di
SOIOla comunicazione da lID reg
__'i"(J"ue ill essi mentre un' esso uo essere il bus, l'a.ltro
un registro di appoggio, registro TEMPI come a ema
ai' Figura 2.10. Per losresscrmotiVO iI relPstro ill in
Jtrn', mdiCato come :rEraPO ill
.----"lir'tali innto<:i 1'0<:o... II'7.i ..... m. deIPistruzione richiede almeno i seguenti passi:
a) 8obilitazione dell'uscita di R1 suI bus interne e caricamento di TEMPI;
b) 8obilitazione dell'uscita di R2 suI bus interno, asserzione del comando ADD all' ALU
e mernorizzazione dell'uscita di ALU in TEMPOj
c) abilitazione dell'uscita d.i TEMPO sul bus interno e caricamento in R3.
Ciascun passe corrisponclere a un periodo di clock. A ogni periodo di clock l'unita
di contrallo asserisce i comancU che fanno svolgere Ie azioni richieste. In particolare:
al primo dei passi precedenti cleve essere a,sserita la linea RLout, con 1a Quale si
abilita l'uscita di R1 suI bus, e 180 linea TEMPLin, can 180 quale si comanda il
caricamenta eli TEMPI dal bus;
. al secondo passo deve essere asserita 180 linea R2--out e 180 linea TEMPLout, in
modo da presentare aJIa ALU i due operandi; deve essere asserita 1a linea di
camanda ADD alia ALU e deve essere asserita la linea TEMPO-in, can la quale
si camanda il caricamenta in TEMPO dell'uscita di ALU;
)
\
\
I
I
f
\
i
I
I
I
l

l
!
: 1
I
'. 'I
,
,
I
1
I
I
\
I
)
1
\
53
\
La soluzione altemativa alia logica ca \
UtmJ. III cocmw>U-O

,
, .


-4:

-"-
-

,
_.-
->

: -> ,

,

->
i->

->
,
i

I

..,
.. -
"
Elementi architetturall di base
dall'automa. Esempi di questa problematica verranno trattati nel seguito.
Figura 2.12 Unita. di controllo a logica cablata.
tpnita di controllo micrQprogrammata
blata 'e la microprogrammazione.
La microprogrammazione si affermb negli sessanta come un .approccio ordi )
nato alia progettazione di unita. di controlto, in grade eli superare Ie difficolta insit,
nella logica cablata (complessita della logica, rigidita, alti costi per apportare modi
fiche alia logica stessa) [Pat83]. Con la microprogrammazione I'UC viene vista come
una sorta di elementare calcolatore nel calcolatore, in grado di eseguire passi di (mi \.
cro)programrna. Nella forma piu semplice l'De microprogrammata efatta da un; I
memoria (detta memoria di controllo
13
) contente Ie parole controllo (control wora, I
o microistruzioni) e da una unita. capace di indirizzare, come si trattasse dell'esecu
zione di un programma, 1a memoria di controllo. L'effetto risult.ante ela presentazion
p
... a'UO di sequenze di microistruzioni. I ragionamenti precedenti si concretizzano nelh \
schema di Figura 2. 13. I
La schema presenta un I'Contatore di micrQprogramma" (J!PC) che
viene incrementato a ogni impulso di clock, in modo che a. ogni impulso appaian
c
1
successive parole di controlla verso ua. In aggiunta a JiPC epresente una logica che h:
it potere di modificare il contenuto di JJPC stesso. Schematicamente il funzionamentl...
eit seguente:
\
13Nei microproccllsori la memoria di controlla e, ovvia.mcnte, una ROM ricavata sullo ste880 in J
della CPU. In passato, prima dell'avvento delle CPU integrate llU singolo chip, la memoria.
dl contrallo era. scrivibile (Writable Control Store - WCS). Era percib possibile caricare il micro-
programma. Questo consentiva al costruttore di apportare modi6che 0 miglioramenti al funziona \
mento dell'elaboratore semplicemente provvedendo un nuovo, opportuno microprogramma. Quest, )
soluzione era adottata IBM per la aerie 8/360 e 5/310.
'il
1
,
,
"
'.' '!
- '"
-. '1
..',
'I
, ,
,
)
"
'I
,
ii'
" '...;
"
,
" \
,,1
"

.
, '
W
"
l
' '
i '.
"
,
I
' '1
'"''

,

'("1'
'/';l
"" .
"
,
,,'I
;. I'
,;[.,
,Ail'
,
,
"
:
D
RO

Rn-l

A
L
U
V
PC
MAR
MDR
81 82
Capitolo 2
. i"
-"I'
si riferisce alIa fase di fetch. Facenda riferimento a questa diagramma,
l'unitai contrello eresponsabile, per esempio, di asserire Ie linee di comando che, 11
nel primo stato, determinano il caricamento del MAR can il contenuto di PC.
,
Almeno concettualmente si pub ricorrere all'armamentario discusso nell' Appen- .
dice A. In particolare, la rete sequenziale sincrona che realizza DC pub essere costruita
secondo 10 schema classico che prevede una rete combinatoria e un vettore di variabili ...
(binarie) di stato, secondo il classico modelia di rete sequenziale sincrona. Cib conduce ,)\
allo schema di Figura 2.12, dove la rete combinatoria ha come ingresso complessivo ....r-
J'insieme furFR:Me d.aJ contenutQ (del campo operazione) . .. to ,1,
di DO oltre che van'li di st i DC stessa. Le uscite di UC, a arte I linee
s no per 0 a a memoria e .. ;R.
a.lres
to
lkl .,,:
La sintesi della rete d.i Figura 2.12 risulta alquanto complessa a causa dell'elevato
numero di stati e ingressi; tale numero dipende essenzialmente dalla complessita. della .' J
'macchina (varieta. dei codici d.i istruzione, quantita. di oggetti manipolati ecc.). La
rete combinatoria dello schema puo essere banalmente realizzata con una ROM (Read
Only Memory) avente un numero di parole pari a tutte Ie possibili combinazioni :)
degli ingressi, essendo Ie parole di larghezza pari a1 numero di linee in uscita dalla . :lIe
rete Naturalmente questa solwzione e13 menD efficiente e richiede un grande
a.greco di memoria. Una . ne mi Hore e [icorr r a 10 iea to ammabile )1
(PLA), o.QQJlre dCQupndo a tecnjche C per ite . . ro ettazione _
caSo enecessaria un'analisi approfondita e comp1eta delle traiet on 15 ato _ '!i,;l
I( "'I s/',,,,,,
.' ,.E,
di convenienza suggeriscono di codificare 10 stato di ve, anziche tenere tante linee Quante "
sono Ie variabili di stato. ':<
',.,
Figura 2.11 Architettura con tre bus interni. Vistruzione ADD R3 ,Rl ,R2 richiede un solo
clock per la fase d.i esecuzione.
52
'. 'I
,
,
I
1
I
I
\
I
)
1
\
53
\
La soluzione altemativa alia logica ca \
UtmJ. III cocmw>U-O

,
, .


-4:

-"-
-

,
_.-
->

: -> ,

,

->
i->

->
,
i

I

..,
.. -
"

Elementi architetturall di base
dall'automa. Esempi di questa problematica verranno trattati nel seguito.
Figura 2.12 Unita. di controllo a logica cablata.
tpnita di controllo micrQprogrammata
blata 'e la microprogrammazione.
La microprogrammazione si affermb negli sessanta come un .approccio ordi )
nato alia progettazione di unita. di controlto, in grade eli superare Ie difficolta insit,
nella logica cablata (complessita della logica, rigidita, alti costi per apportare modi
fiche alia logica stessa) [Pat83]. Con la microprogrammazione I'UC viene vista come
una sorta di elementare calcolatore nel calcolatore, in grado di eseguire passi di (mi \.
cro)programrna. Nella forma piu semplice l'De microprogrammata efatta da un; I
memoria (detta memoria di controllo
13
) contente Ie parole controllo (control wora, I
o microistruzioni) e da una unita. capace di indirizzare, come si trattasse dell'esecu
zione di un programma, 1a memoria di controllo. L'effetto risult.ante ela presentazion
p
... a'UO di sequenze di microistruzioni. I ragionamenti precedenti si concretizzano nelh \
schema di Figura 2. 13. I
La schema presenta un I'Contatore di micrQprogramma" (J!PC) che
viene incrementato a ogni impulso di clock, in modo che a. ogni impulso appaian
c
1
successive parole di controlla verso ua. In aggiunta a JiPC epresente una logica che h:
it potere di modificare il contenuto di JJPC stesso. Schematicamente il funzionamentl...
eit seguente:
\
13Nei microproccllsori la memoria di controlla e, ovvia.mcnte, una ROM ricavata sullo ste880 in J
della CPU. In passato, prima dell'avvento delle CPU integrate llU singolo chip, la memoria.
dl contrallo era. scrivibile (Writable Control Store - WCS). Era percib possibile caricare il micro-
programma. Questo consentiva al costruttore di apportare modi6che 0 miglioramenti al funziona \
mento dell'elaboratore semplicemente provvedendo un nuovo, opportuno microprogramma. Quest, )
soluzione era adottata IBM per la aerie 8/360 e 5/310.
'il
1
,
,
"
'.' '!
- '"
-. '1
..',
'I
, ,
,
)
"
'I
,
ii'
" '...;
"
,
" \
,,1
"

.
, '
W
"
l
' '
i '.
"
,
I
' '1
'"''

,

'("1'
'/';l
"" .
"
,
,,'I
;. I'
,;[.,
,Ail'
,
,
"
:
D
RO

Rn-l

A
L
U
V
PC
MAR
MDR
81 82
Capitolo 2
. i"
-"I'
si riferisce alIa fase di fetch. Facenda riferimento a questa diagramma,
l'unitai contrello eresponsabile, per esempio, di asserire Ie linee di comando che, 11
nel primo stato, determinano il caricamento del MAR can il contenuto di PC.
,
Almeno concettualmente si pub ricorrere all'armamentario discusso nell' Appen- .
dice A. In particolare, la rete sequenziale sincrona che realizza DC pub essere costruita
secondo 10 schema classico che prevede una rete combinatoria e un vettore di variabili ...
(binarie) di stato, secondo il classico modelia di rete sequenziale sincrona. Cib conduce ,)\
allo schema di Figura 2.12, dove la rete combinatoria ha come ingresso complessivo ....r-
J'insieme furFR:Me d.aJ contenutQ (del campo operazione) . .. to ,1,
di DO oltre che van'li di st i DC stessa. Le uscite di UC, a arte I linee
s no per 0 a a memoria e .. ;R.
a.lres
to
lkl .,,:
La sintesi della rete d.i Figura 2.12 risulta alquanto complessa a causa dell'elevato
numero di stati e ingressi; tale numero dipende essenzialmente dalla complessita. della .' J
'macchina (varieta. dei codici d.i istruzione, quantita. di oggetti manipolati ecc.). La
rete combinatoria dello schema puo essere banalmente realizzata con una ROM (Read
Only Memory) avente un numero di parole pari a tutte Ie possibili combinazioni :)
degli ingressi, essendo Ie parole di larghezza pari a1 numero di linee in uscita dalla . :lIe
rete Naturalmente questa solwzione e13 menD efficiente e richiede un grande
a.greco di memoria. Una . ne mi Hore e [icorr r a 10 iea to ammabile )1
(PLA), o.QQJlre dCQupndo a tecnjche C per ite . . ro ettazione _
caSo enecessaria un'analisi approfondita e comp1eta delle traiet on 15 ato _ '!i,;l
I( "'I s/',,,,,,
.' ,.E,
di convenienza suggeriscono di codificare 10 stato di ve, anziche tenere tante linee Quante "
sono Ie variabili di stato. ':<
',.,
Figura 2.11 Architettura con tre bus interni. Vistruzione ADD R3 ,Rl ,R2 richiede un solo
clock per la fase d.i esecuzione.
52
\
54 Capitola 2
',LI
"I:
,.,
. ,.
",
>
Elementi architettura.li di base
55
'Iv
1,,2.3.3 Cablata 0 microprogrammata?
"i
,
I
\
,
,
f
!
I
(
\
I
l
I
I
\
I
I
\
UlQ!A' DI COhiiWlUJ)

,
M.
"-.,,
t;
-4
......,.. _ft,
-4
_......


-4, : -4
-4' '-4

i
-4
. ,
-4
---71
............
I
--
1.-..

c.._ <II .,.....
,
I
..
Figura 2.13 Dnita eli controllo microprogra.mmata
1. All'inizio della fase di fetch, JjPC punta alia locazione della ROM cia cui iniziano
13 sequenza di parole di controlle che determinano l'esecuzione dei passi del fetch
(la prima <Ii queste fara svolgere I'azione lIAR.... PC),
2. Ana fine della [ase di fetch, il codice di operazione in IR viene impiegato per de-
terminare l'indirizzQ della posizione cia cui parte la sequenza di parole di centrolle
(microroutine) corrispondenti alIa specifica operazione.
3. Duraotel'esecuzione della microroutine epossibile che J.LPC possa essere modifica.-
to in modo lion incrementale a causa di condizioni rilevate in UO 0 in dipendenza
della specifica microistruzione.
4. Al termine deU'esecuzione /LPC viene riportato a puntare alla posizione di ROM
da cui inizia la sequenza corrispondente aUa fase di fetch.
ABo schema precedente possono essere apportate molte variazioni. Invece di un
semplice sequenzializzatpre come queUo ipotizzato
l
PUC potrebbe impiegare unita. pili
intelligenti, pill simili alla logica complessiva di funzionamento di una CPU. In passa-
to sono stati prodotti integrati commerciali the consentivano la realizzazione di CPU
microprogrammate. In particolare
l
acquistarono notevole diffusione i dispasitivi della
serie 2900 della societa AMD [Adv76], detti anche bit-sliced microprocessors perche
consentivano d.i costruire CPU di qua!unque parallelismo utilizzando piu "fette
n
di
componenti
14
. Unlaltra soluzione cansiste nel codificare in ogni microistruzione l'in-
dirizzo della successiva
l
eliminando la parte relativa at JLPC, rna con grande spreco di
memoria di controllo. Vale la pena di ricordare che sene state anche castruite CPU
HNelia serle di dispositivi si t.rovavano blocchi corrispondenti a ALU e registri (AM2901 e AM2903)
e blocchi corrispondenti al control1ore del microprogramma (AM2009 e AM2910). Un di
CPU microprogrammata the fa impiego dei componenti della famiglia edeacritto in [BNB81J.
',\'
, '
'.
,.
..
,
.
"

>
'Ii
.,
,
"I'
": ! I,
,.
,
.(,
:-;1
}"
'1
...'
,
' ..
>
-t
',.'
,

,
','
"
"
,
".
,.'
; ..
.,

,
"
1' ,; .
,
.,
lli
(il microprocessore Motorola 68000) che avevano un ulteriore livello di rnicroprogram-
mazione, nel senso che il microprograrnma veniva interpretato da una ulteriore unita.
interna, can una ulteriore memoria di contrallo contenente il "nanoprogramrna".
Nel progettare una CPU microprogrammata enecessario muoversi tra due alter-
native estrerne in riferimento al Hvella d.i codifica dei micropragrammi. Si parla di
microprogrammazione orizzontale e verticale.
'. Nella microprograrnmazione orizzantale, ogni linea di cantrolla versO DO (e Ie
altre parti del sistema) corrispqnde a. un ben definito bit in modo che uno ain una
. certa posizione corrisponde alIa disattivazione del corrispondente segnale ed un 1
alIa sua attivazione. Ovviamente ques.ta soluziene camparta parole di centralla di
larghezza pari at numero delle Hnee di contrello e a un cattivo impiego della ROM,
infatti le parole di centrollo risultano praticarnente piene di zeri e qualche uno sparso.
Con 1a microprogrammaziane verticale le hnee di controllo sono raggruppate in
modo tale che linee appartenenti a uno stesso gruppo non possono essere asserite
conternporaneamente. In tal modo ogni gruppo e rappresentato da! numero di bit cbe
servono a codificare Ie Hoee di appartenenza
15
, riducendo in modo drastico la larghezza
delle parole di cantrollo. Naturalmente, la logica complessiva richiede l'aggiunta dei
corrispondenti decadificatori.
I primi sistemi di calcolo vennero costruiti in logica cablata. Anche i primi mini-
calcolatori (anni sessanta) vennero prodotti in logica cablata. Esempi notevoli di
minicalcolatori di questa tipo furana il PDP8 e PHP2116. Queste macch-ine avevano
un repertorio di qU,alche decina d.i istruzioni. Nel seguito (anni settanta' la micro-
programmazione divenne 1a regola. Microprocessori, minicalcolatori e macchine di
dirnensione media e alta vennero tutte progettate seguendo i cauoni della rnicropro-
grammazione. Era microprogranunato il Vax
l
1a macchina della Digital di dimensioni
medio-alte, che per anni ha occupato una posizione di grande rilievo nel mando dell'in-
formatica. Erano microprogrammati i microprocessori della prima e della seconda
generazione (8080, Z80, 8086, 68000). Caratteristica di queste macchine era quella di
avere un repertorio di istruzioni molto ampio e molto variato, da farle designare come
elSe (Complex Instruction Set Computers), Per esempio, il 68000, considerando i
diversi modi di indirizzamento
,
aveva oltre 300 istruzioni. Sono della meta. degli anni
settanta i1370/168 (IBM) e il Vax 11/789 (Digital), arnbedue con oltre 400.000 bit di
memoria di cantrallo.
A partire dagli anni ottanta c'e stata un'inversione di tendeo'La che ha riportato
;0 auge 1a logica cablata, anche in conseguenza dell'affermarsi delle cosiddette archi-
tetture RISe (Reduced Instruction Set Computers) [HP92j, [Hop87], Emblematico e
il caso dell'architettura Intel. Il primo membro della famiglia, 1'8086 era una macchi-
na microprogrammata
l
una tipica macchina CISCo Le ultime CPU, che
l
camle noto,
mantengano 1a compatibilita. architetturale can 1'8086 e quindi un ampio repertorio
ISSi tratta del numero intero superiore allogaritmo in base 2 del numero di linee nel gruppo.
\
54 Capitola 2
',LI
"I:
,.,
. ,.
",
>
Elementi architettura.li di base
55
'Iv
1,,2.3.3 Cablata 0 microprogrammata?
"i
,
I
\
,
,
f
!
I
(
\
I
l
I
I
\
I
I
\
UlQ!A' DI COhiiWlUJ)

,
M.
"-.,,
t;
-4
......,.. _ft,
-4
_......


-4, : -4
-4' '-4

i
-4
. ,
-4
---71
............
I
--
1.-..

c.._ <II .,.....
,
I
..
Figura 2.13 Dnita eli controllo microprogra.mmata
1. All'inizio della fase di fetch, JjPC punta alia locazione della ROM cia cui iniziano
13 sequenza di parole di controlle che determinano l'esecuzione dei passi del fetch
(la prima <Ii queste fara svolgere I'azione lIAR.... PC),
2. Ana fine della [ase di fetch, il codice di operazione in IR viene impiegato per de-
terminare l'indirizzQ della posizione cia cui parte la sequenza di parole di centrolle
(microroutine) corrispondenti alIa specifica operazione.
3. Duraotel'esecuzione della microroutine epossibile che J.LPC possa essere modifica.-
to in modo lion incrementale a causa di condizioni rilevate in UO 0 in dipendenza
della specifica microistruzione.
4. Al termine deU'esecuzione /LPC viene riportato a puntare alla posizione di ROM
da cui inizia la sequenza corrispondente aUa fase di fetch.
ABo schema precedente possono essere apportate molte variazioni. Invece di un
semplice sequenzializzatpre come queUo ipotizzato
l
PUC potrebbe impiegare unita. pili
intelligenti, pill simili alla logica complessiva di funzionamento di una CPU. In passa-
to sono stati prodotti integrati commerciali the consentivano la realizzazione di CPU
microprogrammate. In particolare
l
acquistarono notevole diffusione i dispasitivi della
serie 2900 della societa AMD [Adv76], detti anche bit-sliced microprocessors perche
consentivano d.i costruire CPU di qua!unque parallelismo utilizzando piu "fette
n
di
componenti
14
. Unlaltra soluzione cansiste nel codificare in ogni microistruzione l'in-
dirizzo della successiva
l
eliminando la parte relativa at JLPC, rna con grande spreco di
memoria di controllo. Vale la pena di ricordare che sene state anche castruite CPU
HNelia serle di dispositivi si t.rovavano blocchi corrispondenti a ALU e registri (AM2901 e AM2903)
e blocchi corrispondenti al control1ore del microprogramma (AM2009 e AM2910). Un di
CPU microprogrammata the fa impiego dei componenti della famiglia edeacritto in [BNB81J.
',\'
, '
'.
,.
..
,
.
"

>
'Ii
.,
,
"I'
": ! I,
,.
,
.(,
:-;1
}"
'1
...'
,
' ..
>
-t
',.'
,

,
','
"
"
,
".
,.'
; ..
.,

,
"
1' ,; .
,
.,
lli
(il microprocessore Motorola 68000) che avevano un ulteriore livello di rnicroprogram-
mazione, nel senso che il microprograrnma veniva interpretato da una ulteriore unita.
interna, can una ulteriore memoria di contrallo contenente il "nanoprogramrna".
Nel progettare una CPU microprogrammata enecessario muoversi tra due alter-
native estrerne in riferimento al Hvella d.i codifica dei micropragrammi. Si parla di
microprogrammazione orizzontale e verticale.
'. Nella microprograrnmazione orizzantale, ogni linea di cantrolla versO DO (e Ie
altre parti del sistema) corrispqnde a. un ben definito bit in modo che uno ain una
. certa posizione corrisponde alIa disattivazione del corrispondente segnale ed un 1
alIa sua attivazione. Ovviamente ques.ta soluziene camparta parole di centralla di
larghezza pari at numero delle Hnee di contrello e a un cattivo impiego della ROM,
infatti le parole di centrollo risultano praticarnente piene di zeri e qualche uno sparso.
Con 1a microprogrammaziane verticale le hnee di controllo sono raggruppate in
modo tale che linee appartenenti a uno stesso gruppo non possono essere asserite
conternporaneamente. In tal modo ogni gruppo e rappresentato da! numero di bit cbe
servono a codificare Ie Hoee di appartenenza
15
, riducendo in modo drastico la larghezza
delle parole di cantrollo. Naturalmente, la logica complessiva richiede l'aggiunta dei
corrispondenti decadificatori.
I primi sistemi di calcolo vennero costruiti in logica cablata. Anche i primi mini-
calcolatori (anni sessanta) vennero prodotti in logica cablata. Esempi notevoli di
minicalcolatori di questa tipo furana il PDP8 e PHP2116. Queste macch-ine avevano
un repertorio di qU,alche decina d.i istruzioni. Nel seguito (anni settanta' la micro-
programmazione divenne 1a regola. Microprocessori, minicalcolatori e macchine di
dirnensione media e alta vennero tutte progettate seguendo i cauoni della rnicropro-
grammazione. Era microprogranunato il Vax
l
1a macchina della Digital di dimensioni
medio-alte, che per anni ha occupato una posizione di grande rilievo nel mando dell'in-
formatica. Erano microprogrammati i microprocessori della prima e della seconda
generazione (8080, Z80, 8086, 68000). Caratteristica di queste macchine era quella di
avere un repertorio di istruzioni molto ampio e molto variato, da farle designare come
elSe (Complex Instruction Set Computers), Per esempio, il 68000, considerando i
diversi modi di indirizzamento
,
aveva oltre 300 istruzioni. Sono della meta. degli anni
settanta i1370/168 (IBM) e il Vax 11/789 (Digital), arnbedue con oltre 400.000 bit di
memoria di cantrallo.
A partire dagli anni ottanta c'e stata un'inversione di tendeo'La che ha riportato
;0 auge 1a logica cablata, anche in conseguenza dell'affermarsi delle cosiddette archi-
tetture RISe (Reduced Instruction Set Computers) [HP92j, [Hop87], Emblematico e
il caso dell'architettura Intel. Il primo membro della famiglia, 1'8086 era una macchi-
na microprogrammata
l
una tipica macchina CISCo Le ultime CPU, che
l
camle noto,
mantengano 1a compatibilita. architetturale can 1'8086 e quindi un ampio repertorio
ISSi tratta del numero intero superiore allogaritmo in base 2 del numero di linee nel gruppo.
16In realta l'insieme di istruzioni del Pentium e piu ampio di queUo dell'8086 a. ca.usa delle
accresciute funziona.lita..
17 Si riteneva. che i compila.tori per architetture can modello eli esecllzione a stack (si veda. piu
avanti) fossero piu semplici e piu affidabili di quelli per architetture can modella dl esecuzione a
registri.
di istruzioni
16
, hanne delle soluzioni interne caratteristiche delle macchine RlSe, Con
ampio impiego di logica cabiata.
Un'analisi approfondita delle ragioni che hanno portato ali'abbandono della mi-
croprogrammazione e alPaffermazione delle architetture RISe 8i trova in [Pat85]. QUi
di seguito se ne da un sinteticQ resoconto.
All'epoca in cui la microprogrammazione era dominante si riteneva ehe repertori
di istruzioni estesi fossero preferibili, in quanta avrebbero facilitate la costruzione dei
compilatori
17
, avrebbero alleviato la cosiddetta software crisis, in quanta la macchina
avrebbe eseguito istruzioni molto simili a queUe dei linguaggi di alto Uvello, riducendo
1a differenza tra linguaggio di programmazione e linguaggio macchina. Vuso efficiente
della memoria centrale, aHara molto COStos3, era il primo obiettivo di qualunque solu-
zione architettonica. Si riteneva che con un repertorio di istruzioni esteso i programmi
avrebbero occupato menD memoria. Inoltre essendo la memoria di controlla motto pili
veloce della memoria centrale, portare funzionalita nella prima avrebbe migliorato Ie
prestazioni della macchina.
Tuttavia nella stesso periodo di tempo in cui la microprogrammazione
geva i suoi massimi fasti (anni settant3o), Ie memorie a semiconduttore rimpiazzarono
completamente Ie memorie a nuclei magnetici, riducendo di molte il in
termini di velocita, della memoria di controllo. In aggiunta, si comincio a impiegare
memorie cache, riducendo ulteriormente i tempi di esecuzione dei programmi. Infine,
'alcuni studi sui comportamento dei programmi compilati dimostrarono che 1'80% cir-
ca delle istruzioni eseguite corrispondeva al solo 20% del repertorio, ovvero che buona
parte del repertorio eli istruzioni era semplicemente superfluo e non utilizzato. Per-
cie S1 trasse l'ovvia conclusione che conveniva investire nella riduzione dei tempi d.i
esecuz10ne d.i quel 20%, anziche aggiungere raffinate istruzioni, quasi rna! usate, rna
responsabili dell'allungamento del tempo di cicIo di rnaechina.
Le precedenti considerazioni motivarono 130 sperimentazione di un nuovo criterio
progettuale: costruire processori molto veloci (conseguentemente con un repertorio
di istruzionl ristretto) e ricorrere sempre di pili all'ottimizzazione nei compilatori. In
particolare 13i svilupparono i seguenti concetti.
Le istruzioni devono e13sere sernplici, almeno che non ci siano buoni motivi op-
posti. Se l'introduziane di una operazione d.i ma.cchina fa crescere del 10% it
periodo d.i clock, allora essa deve produrre una riduzione di almeno Wl 10% del
numero totale di cicli eseguiti. Senza considerare che l'introduzione di una nuova
operazione camporta comunque complicazioni e uso di risorse sull'integrato.
Can 1'uso di memorie veloci e delle memorie cache, Ie istruzioni di macchina
pos13ono essere eseguite alIa stessa. velocita delle microistruzioni, non c'e dunque
vantaggio a apostare Ie funzionalita. a livello di microcodice. Spostare Ie funzio-
nalita a livello di ha solo l'effetto di rendere pili difficoItose modifiche
e cambiamenti: molto meglio modificare una libreria di sistema che modificare
una memoria di controllo.
,
I
I
)
\
I
\
l
I
I
I
I
)
l
,
I
I
I
, Tutte Ie istruzioni dovrebbero occupare 10 stesso spazio d.i memoria (una parola)
e dovrebbe essere previsto un ristretto numerO"di formati, in modo che I'interpre-
tazione del codice posss. avvenire attraverso un semplice decodificatore (una rete
AND-OR). Se Ie istruzioni vengono codificate in modo "ordinato" possono essere
usati accorgimenti per velocizzare l'esecuzione (ci si riferisce qui all'esecuzione in
pipeline), con istruzioni complesse
1
.
8
. La.semplificazi?ne
del repertorio delle LstrUZlOnI tende a far aumentare 130 dlIDenslOoe del codlce.
Cio non costituisce problema per quanto si riferisce all'occupazioDe di memoria,
vista Is. tendenza alIa riduzione dei relativi costi e all'aumento della densita. Dal
punto di vista i guada!SJl:i che si Del is-
'truzioni sono supenon all'effetto negatIvo del maggIor numero dl lstruz10m per
programma.
'1 compilatori sene in grade di produrre sequenze ottimizzate di semplici opera-
zioni. di macchina, indipendentemente dalla .compIessita. del linguaggio. In altri
termini, ecambiato l'atteggiamento nei confronti della compilazione: un compi-
Iatore deve sbrogliare in modo automatico ed efficiente tutte le complicazioni che
possono sorgere nel tradurre da linguaggio di alto HveHo a linguaggio di basso
livello, in modo da essere motivo di semplificazione del repertorio di istruzioni
anziche essere motivo di complicazione.
Le conclusioni che si traggono dai precedenti ragionamenti fOrnlano it nueleo
concettuale aila base delle macchine RlSC.
L'architettura dovrebbe prevedere solo operazioni tra registri (e non tra registri
e memoria 0 tra memoria e memoria) e semplici operazioni di lettura/scrittura
in memorial con ridotte modalita. di indirizzamento.
11' compilatore deve essere costruito in modo da fare il miglior uso possibile dei
registri e tenere, per quanta possibile, Ie variabili nei registri stessi, riducendo al
minimo it traffico con 130 memoria. Per questa motivo la CPU dovrebbe presentare
un consistente numero di registri .
1St doveroso aggiungere che Ie pipeline vengono ormai usate anche in a.rchitetture compleese. La
stessa architettura IBM 8/390 (anni novanta), discendente da.1l'a.rchitettura 8/360 (anni sessanta), e
stata portata au singolo chip con una. soluzione che prevede una pipeline di ben 10 stati con la quale
si riesce a trattare uno repertorio di istruzioni malta complesso[SAC+99J.
,
'E interessante osservare che i progettisti Intel sono riusciti attraverso un numero
di mgegnosi accorgimenti a introdurre i meccanismi tipici delle tecnologie RISe, per
esempio 130 pipeline, nei processori della famiglia x86. Nel corso qell'evoluzione, 1'ar-
chitettura x86 ha subito tanti e tali miglioramenti che ne rendono il funzionamento
. sempre piu simile a quello delle maccbine RlSC. Un aspetto interessate equello che 8i
riferisce ai. registri ai uso generale. L'architettura x86 prevede un numero d.i registri
di CPU alquanto ridotto, mal nello sviluppo d.i nuovi modelli, ai progettisti Intel,
non era data 'la possibilita. d.i aggiungerne di ulteriori per ovvi motivi di compatibilita
. all'indietro. La soluzione adottata a partire dal Pentium-Pro consiste nel prevedere
un insfeme interno di registri, piu ampio d.i quello visibile da! programmatore, e di
mappare i registri visibili dal programmatore sui registri intemL nrisultato eche seb-
bene l'architettura continui a mostrare il solito insieme di registri, di fatto ci sono 40
,
.'.
,
,
.,
.>;
,
, ,:.
";
11
.::
.,.
,.
," ,I
::",
.
'."".', .
.,
,
',1

.-\,
'- ;..
'i
l
:
.,
-
.,'"
,
]I
'.1.;1:
<'I ,;}
;i
,
,
"i;'
:--;:. -
,.;.'
".'
'il'!:"'- ' ..
. _ .
. .y', .. -
.<' ..

:"'. , Elementi architetturali di base 57
,.
, '."
',l'
4
, .: i,,1
.1
1
:', '-)
.':
-:'
Capitolo 2 56

16In realta l'insieme di istruzioni del Pentium e piu ampio di queUo dell'8086 a. ca.usa delle
accresciute funziona.lita..
17 Si riteneva. che i compila.tori per architetture can modello eli esecllzione a stack (si veda. piu
avanti) fossero piu semplici e piu affidabili di quelli per architetture can modella dl esecuzione a
registri.
di istruzioni
16
, hanne delle soluzioni interne caratteristiche delle macchine RlSe, Con
ampio impiego di logica cabiata.
Un'analisi approfondita delle ragioni che hanno portato ali'abbandono della mi-
croprogrammazione e alPaffermazione delle architetture RISe 8i trova in [Pat85]. QUi
di seguito se ne da un sinteticQ resoconto.
All'epoca in cui la microprogrammazione era dominante si riteneva ehe repertori
di istruzioni estesi fossero preferibili, in quanta avrebbero facilitate la costruzione dei
compilatori
17
, avrebbero alleviato la cosiddetta software crisis, in quanta la macchina
avrebbe eseguito istruzioni molto simili a queUe dei linguaggi di alto Uvello, riducendo
1a differenza tra linguaggio di programmazione e linguaggio macchina. Vuso efficiente
della memoria centrale, aHara molto COStos3, era il primo obiettivo di qualunque solu-
zione architettonica. Si riteneva che con un repertorio di istruzioni esteso i programmi
avrebbero occupato menD memoria. Inoltre essendo la memoria di controlla motto pili
veloce della memoria centrale, portare funzionalita nella prima avrebbe migliorato Ie
prestazioni della macchina.
Tuttavia nella stesso periodo di tempo in cui la microprogrammazione
geva i suoi massimi fasti (anni settant3o), Ie memorie a semiconduttore rimpiazzarono
completamente Ie memorie a nuclei magnetici, riducendo di molte il in
termini di velocita, della memoria di controllo. In aggiunta
,
si comincio a impiegare
memorie cache, riducendo ulteriormente i tempi di esecuzione dei programmi. Infine,
'alcuni studi sui comportamento dei programmi compilati dimostrarono che 1'80% cir-
ca delle istruzioni eseguite corrispondeva al solo 20% del repertorio, ovvero che buona
parte del repertorio eli istruzioni era semplicemente superfluo e non utilizzato. Per-
cie S1 trasse l'ovvia conclusione che conveniva investire nella riduzione dei tempi d.i
esecuz10ne d.i quel 20%, anziche aggiungere raffinate istruzioni, quasi rna! usate, rna
responsabili dell'allungamento del tempo di cicIo di rnaechina.
Le precedenti considerazioni motivarono 130 sperimentazione di un nuovo criterio
progettuale: costruire processori molto veloci (conseguentemente con un repertorio
di istruzionl ristretto) e ricorrere sempre di pili all'ottimizzazione nei compilatori. In
particolare 13i svilupparono i seguenti concetti.
Le istruzioni devono e13sere sernplici, almeno che non ci siano buoni motivi op-
posti. Se l'introduziane di una operazione d.i ma.cchina fa crescere del 10% it
periodo d.i clock, allora essa deve produrre una riduzione di almeno Wl 10% del
numero totale di cicli eseguiti. Senza considerare che l'introduzione di una nuova
operazione camporta comunque complicazioni e uso di risorse sull'integrato.
Can 1'uso di memorie veloci e delle memorie cache, Ie istruzioni di macchina
pos13ono essere eseguite alIa stessa. velocita delle microistruzioni, non c'e dunque
vantaggio a apostare Ie funzionalita. a livello di microcodice. Spostare Ie funzio-
nalita a livello di ha solo l'effetto di rendere pili difficoItose modifiche
e cambiamenti: molto meglio modificare una libreria di sistema che modificare
una memoria di controllo.
,
I
I
)
\
I
\
l
I
I
I
I
)
l
,
I
I
I
, Tutte Ie istruzioni dovrebbero occupare 10 stesso spazio d.i memoria (una parola)
e dovrebbe essere previsto un ristretto numerO"di formati, in modo che I'interpre-
tazione del codice posss. avvenire attraverso un semplice decodificatore (una rete
AND-OR). Se Ie istruzioni vengono codificate in modo "ordinato" possono essere
usati accorgimenti per velocizzare l'esecuzione (ci si riferisce qui all'esecuzione in
pipeline), con istruzioni complesse
1
.
8
. La.semplificazi?ne
del repertorio delle LstrUZlOnI tende a far aumentare 130 dlIDenslOoe del codlce.
Cio non costituisce problema per quanto si riferisce all'occupazioDe di memoria,
vista Is. tendenza alIa riduzione dei relativi costi e all'aumento della densita. Dal
punto di vista i guada!SJl:i che si Del is-
'truzioni sono supenon all'effetto negatIvo del maggIor numero dl lstruz10m per
programma.
'1 compilatori sene in grade di produrre sequenze ottimizzate di semplici opera-
zioni. di macchina, indipendentemente dalla .compIessita. del linguaggio. In altri
termini, ecambiato l'atteggiamento nei confronti della compilazione: un compi-
Iatore deve sbrogliare in modo automatico ed efficiente tutte le complicazioni che
possono sorgere nel tradurre da linguaggio di alto HveHo a linguaggio di basso
livello, in modo da essere motivo di semplificazione del repertorio di istruzioni
anziche essere motivo di complicazione.
Le conclusioni che si traggono dai precedenti ragionamenti fOrnlano it nueleo
concettuale aila base delle macchine RlSC.
L'architettura dovrebbe prevedere solo operazioni tra registri (e non tra registri
e memoria 0 tra memoria e memoria) e semplici operazioni di lettura/scrittura
in memorial con ridotte modalita. di indirizzamento.
11' compilatore deve essere costruito in modo da fare il miglior uso possibile dei
registri e tenere, per quanta possibile, Ie variabili nei registri stessi, riducendo al
minimo it traffico con 130 memoria. Per questa motivo la CPU dovrebbe presentare
un consistente numero di registri .
1St doveroso aggiungere che Ie pipeline vengono ormai usate anche in a.rchitetture compleese. La
stessa architettura IBM 8/390 (anni novanta), discendente da.1l'a.rchitettura 8/360 (anni sessanta), e
stata portata au singolo chip con una. soluzione che prevede una pipeline di ben 10 stati con la quale
si riesce a trattare uno repertorio di istruzioni malta complesso[SAC+99J.
,
'E interessante osservare che i progettisti Intel sono riusciti attraverso un numero
di mgegnosi accorgimenti a introdurre i meccanismi tipici delle tecnologie RISe, per
esempio 130 pipeline, nei processori della famiglia x86. Nel corso qell'evoluzione, 1'ar-
chitettura x86 ha subito tanti e tali miglioramenti che ne rendono il funzionamento
. sempre piu simile a quello delle maccbine RlSC. Un aspetto interessate equello che 8i
riferisce ai. registri ai uso generale. L'architettura x86 prevede un numero d.i registri
di CPU alquanto ridotto, mal nello sviluppo d.i nuovi modelli, ai progettisti Intel,
non era data 'la possibilita. d.i aggiungerne di ulteriori per ovvi motivi di compatibilita
. all'indietro. La soluzione adottata a partire dal Pentium-Pro consiste nel prevedere
un insfeme interno di registri, piu ampio d.i quello visibile da! programmatore, e di
mappare i registri visibili dal programmatore sui registri intemL nrisultato eche seb-
bene l'architettura continui a mostrare il solito insieme di registri, di fatto ci sono 40
,
.'.
,
,
.,
.>;
,
, ,:.
";
11
.::
.,.
,.
," ,I
::",
.
'."".', .
.,
,
',1

.-\,
'- ;..
'i
l
:
.,
-
.,'"
,
]I
'.1.;1:
<'I
,;}
;i
,
,
"i;'
:--;:. -
,.;.'
".'
'il'!:"'- ' ..
. _ .
. .y', .. -
.<' ..

:"'. , Elementi architetturali di base 57
,.
, '."
',l'
4
, .: i,,1
.1
1
:', '-)
.':
-:'
Capitolo 2 56

,
I
I
\
58 Capitolo 2
registri interni che prendono effettivamente parte all'elaborazione. La tecnica, peral-
trc non esclusiva di questa architettura, edetta register renaming e viene largamente
impiegata a part4'e dagli anni novanta.
"
'i'
'.I
,:
,0.
-
i
, iI .
,'.,
,:.,
,
Elementi architetturali di base 59
richiedono, di norma, frequenze di clock piu basse. Da qui 1a spinta verso re-
pertod di istruzioni semplici (RISe), che permettano di diminuire i ritardi di
propagazione nella logica di controllo e, quindi, di ridurre l'ampiezza del periodo
di clock.
,,.
La discussione precedente ci offre l'opportunita di fare alcune considerazioni sulle "
prestazioni delle CPU e eli introdurre una formula cbe reude bene conto di quali )1.
, ,
sonG i fatton cbe Ie determinano. La valutazione delle prestazioni di un sistema di ':,' )
elaborazione ecosa alquanto compiessa e coinvolge tutti gli aspetti del funzionamento .;'':1:,
,
della macchina. Quanto segue si riferisce alla quantificazione delle prestazioni della
CpuD tempo ela misura pili ovvia delle prestazioni [HP93]. Si consideri un generico 't1
problema 0 un generico programma, 8i indichi con N it numcro eli cich di 1% J:
esso comporta e sia ..t...Jst. freguenza del clock. Indkando can Tcpu 1a quantita di .,'; i
tempo di CPU richiesta per l'esecuzione del stesso, silla: :. "!
- . ,:.
.";. '
t 1J-<;CeD..;.iI
co:':
,
mentre:
(2.2)
N = LX,Cp,
dove Cpi eil numero di clock richiesto dall'istruzione Ii. Si ha. dunque:
Cp/ = (LX,Cp,)/N, = LX'Cpi
It numero media di cieli di clock per istruzione (CPf), dipende dall'architettura
e cia! repertorio delle istruzioni. Ovviamente, istruzioni sernplici ricbiedono un
minor numero di cieli. Attraverso Pimpiego di tecniche come la pipeline epossibile
portare Cpr a un valore molto vicino a 1. L'aggiunta di pill unita di esecuzione
operanti in parallelo (macchine superscalari) e di una 0 piu unita di pre/etch
permette di rendere C
PJ
minore d.i 1.
LXi = Ni,t
.. .,
',' '"'j ,
2.4.J La valutazione delle prestazioni
essendo Xi Ia frequenza con cui l'istruzione Ii compare nel mix di istruzioni del
programma.. Uinsieme degli Xi costituisce il profilo di esecuzione del programma.
Per quanta estate detto ai paragrafi precedenti (Cfr. 2.3.1), Cpi eit numero di
cieli di clock che vanno daWinizio della Case di fetch alia conclusione della fase di
esecuzione. Se per it momento ipotizziarno che Ia CPU esegua senza cicll di wait, cpl e
direttamente ricavabile dai manuali del produttore
20
. Nell'ipotesi in cui si canosca il
profila di esecuzione equnque possibile una valutazione sulla carta. Infatti, ricorrendo
ai manuali per i Cpi, si pub calcolare CPf e quindi Tcpu. Al ParagrafoC.6 viene fatto
un confronto tra Ie prestazioni dei modelli 601 e 604 delParchitettura PowerPC.
In riferimento alIa 2.1 vogliamo ora svolgere atcune considerazioni che consentano di
comprendere meglio la portata della 2.1 stessa e di orientarsi nella valutaziane pratica
delle prestazioni di un sistema.
Per prima cosa consideriamo il numero "medio di clock per istruzione CPl. Si
indichi con h la generica istruzione e con Xi il numero di volte in cui essa viene
eseguita nel problema in esame. Ovviamente
20Se si considera una ma.cchina. reale, e possibile che il medesi,mo codice di istruzione (a. UveUo
di lingua.ggio assembler) preveda differenti modalita di esecuzione, con differente Rumero di periodi
. di clock per ciascuna di esse. E' il caso per esempio dell'istruzione MOV nell'architettura. Intel. Per
essa il Rumero di deli di clock varia considerevolmente a seconda della natura della !oryente e della.
ae!tinazione. Cio non costituisce ostacolo a.l nostro ragionamento, basta ritenere Ie differenti moda-
lita di esecuzione della stessa istruzione come istruzioni difi'erenti. Del resto Ie differenti modalita si
riducono necessariamente in esplicite differenze nel corrispondente codice di maccbina..
,0;
':,
"
"
': ,.,
'I'
<
.,
. ;,
,
'J,
,,:
"I'
.:' .
, .

1
:; .

,..,
: ,
.,[
.:
,."'1.
.c'l

,..
,
,"
c1

"I
.
',':.'
"I
.'-,- -
.
.,? "
wen
,:'1
Tcpu = N/j
La frequenza di clock della CPU, j, elegata alla tecnologia e all'organizzazione
architetturale della CPU. D progresso delle tecnologie elettronicbe estato ver-
tiginoso. Basti pensare che se nella. prima meta. anni settanta, (con primi mi-
croprocessori) Ie frequenze erano inferiori a 1MHz, a fine anni ottanta gia si
avvicinavano ai lOOMHz, per raggiungere 1GHz (annunciato) a fine anni no-
vanta
19
. Per qiJanto si riferisce all'aspetto Ie istruzioni complesse
n cumero di istruzioni di macchina del programma, Ni,t, e una quantita ehe
elipeode dal repertorio di istruzioni e da! grado di ottimizzazione del compilatare.
Compilatori diversi possoeo dare luogo a N
ilt
diversi. Ovviamente uno stesso
compilatore, che generi codice per due macchine diverse, dara N
ilt
diversi. In
questa sense, un repertorio ampio d.i istruzioni (CISC) favorisce il miglioramento
qelle prestazioni.
19All'alba del 2000 i PC di fascia media sui mercato erano a 500 MHz.
2.4 Prestazioni della CPU
Tcpu = (N,., x CPJ)/ j = N,., X CPJ X T. (2.1)
dove T = 1/j rappresenta il periodo di clock.
La 2.1 foroisee la cbiave per capire come Ie prestazioni della CPU dipendono da
fattori tecnologici e architetturali.
Si indichi ora con il numero di istruzioni di macchina corrispondente al
programma e si indichi coo C
PJ
iTnumero medio di clock per istruzione di rnacchina.
Ovviamente CPT edefinito come: 1\. \". ,..0 ,. 0
rC ./' ow.. <:_tX..
\ Cp/ = N/N,,, =C
p
', '!:<;t
sostituendo nella precedente relazione si ottiene:
\
r
\
1
\
1
\
I
I
r
\
\
I
,
I
,)
'"
,
I
I
\
58 Capitolo 2
registri interni che prendono effettivamente parte all'elaborazione. La tecnica, peral-
trc non esclusiva di questa architettura, edetta register renaming e viene largamente
impiegata a part4'e dagli anni novanta.
"
'i'
'.I
,:
,0.
-
i
, iI .
,'.,
,:.,
,
Elementi architetturali di base 59
richiedono, di norma, frequenze di clock piu basse. Da qui 1a spinta verso re-
pertod di istruzioni semplici (RISe), che permettano di diminuire i ritardi di
propagazione nella logica di controllo e, quindi, di ridurre l'ampiezza del periodo
di clock.
,,.
La discussione precedente ci offre l'opportunita di fare alcune considerazioni sulle "
prestazioni delle CPU e eli introdurre una formula cbe reude bene conto di quali )1.
, ,
sonG i fatton cbe Ie determinano. La valutazione delle prestazioni di un sistema di ':,' )
elaborazione ecosa alquanto compiessa e coinvolge tutti gli aspetti del funzionamento .;'':1:,
,
della macchina. Quanto segue si riferisce alla quantificazione delle prestazioni della
CpuD tempo ela misura pili ovvia delle prestazioni [HP93]. Si consideri un generico 't1
problema 0 un generico programma, 8i indichi con N it numcro eli cich di 1% J:
esso comporta e sia ..t...Jst. freguenza del clock. Indkando can Tcpu 1a quantita di .,'; i
tempo di CPU richiesta per l'esecuzione del stesso, silla: :. "!
- . ,:.
.";. '
t 1J-<;CeD..;.iI
co:':
,
mentre:
(2.2)
N = LX,Cp,
dove Cpi eil numero di clock richiesto dall'istruzione Ii. Si ha. dunque:
Cp/ = (LX,Cp,)/N, = LX'Cpi
It numero media di cieli di clock per istruzione (CPf), dipende dall'architettura
e cia! repertorio delle istruzioni. Ovviamente, istruzioni sernplici ricbiedono un
minor numero di cieli. Attraverso Pimpiego di tecniche come la pipeline epossibile
portare Cpr a un valore molto vicino a 1. L'aggiunta di pill unita di esecuzione
operanti in parallelo (macchine superscalari) e di una 0 piu unita di pre/etch
permette di rendere C
PJ
minore d.i 1.
LXi = Ni,t
.. .,
',' '"'j ,
2.4.J La valutazione delle prestazioni
essendo Xi Ia frequenza con cui l'istruzione Ii compare nel mix di istruzioni del
programma.. Uinsieme degli Xi costituisce il profilo di esecuzione del programma.
Per quanta estate detto ai paragrafi precedenti (Cfr. 2.3.1), Cpi eit numero di
cieli di clock che vanno daWinizio della Case di fetch alia conclusione della fase di
esecuzione. Se per it momento ipotizziarno che Ia CPU esegua senza cicll di wait, cpl e
direttamente ricavabile dai manuali del produttore
20
. Nell'ipotesi in cui si canosca il
profila di esecuzione equnque possibile una valutazione sulla carta. Infatti, ricorrendo
ai manuali per i Cpi, si pub calcolare CPf e quindi Tcpu. Al ParagrafoC.6 viene fatto
un confronto tra Ie prestazioni dei modelli 601 e 604 delParchitettura PowerPC.
In riferimento alIa 2.1 vogliamo ora svolgere atcune considerazioni che consentano di
comprendere meglio la portata della 2.1 stessa e di orientarsi nella valutaziane pratica
delle prestazioni di un sistema.
Per prima cosa consideriamo il numero "medio di clock per istruzione CPl. Si
indichi con h la generica istruzione e con Xi il numero di volte in cui essa viene
eseguita nel problema in esame. Ovviamente
20Se si considera una ma.cchina. reale, e possibile che il medesi,mo codice di istruzione (a. UveUo
di lingua.ggio assembler) preveda differenti modalita di esecuzione, con differente Rumero di periodi
. di clock per ciascuna di esse. E' il caso per esempio dell'istruzione MOV nell'architettura. Intel. Per
essa il Rumero di deli di clock varia considerevolmente a seconda della natura della !oryente e della.
ae!tinazione. Cio non costituisce ostacolo a.l nostro ragionamento, basta ritenere Ie differenti moda-
lita di esecuzione della stessa istruzione come istruzioni difi'erenti. Del resto Ie differenti modalita si
riducono necessariamente in esplicite differenze nel corrispondente codice di maccbina..
,0;
':,
"
"
': ,.,
'I'
<
.,
. ;,
,
'J,
,,:
"I'
.:' .
, .

1
:; .

,..,
: ,
.,[
.:
,."'1.
.c'l

,..
,
,"
c1

"I
.
',':.'
"I
.'-,- -
.
.,? "
wen
,:'1
Tcpu = N/j
La frequenza di clock della CPU, j, elegata alla tecnologia e all'organizzazione
architetturale della CPU. D progresso delle tecnologie elettronicbe estato ver-
tiginoso. Basti pensare che se nella. prima meta. anni settanta, (con primi mi-
croprocessori) Ie frequenze erano inferiori a 1MHz, a fine anni ottanta gia si
avvicinavano ai lOOMHz, per raggiungere 1GHz (annunciato) a fine anni no-
vanta
19
. Per qiJanto si riferisce all'aspetto Ie istruzioni complesse
n cumero di istruzioni di macchina del programma, Ni,t, e una quantita ehe
elipeode dal repertorio di istruzioni e da! grado di ottimizzazione del compilatare.
Compilatori diversi possoeo dare luogo a N
ilt
diversi. Ovviamente uno stesso
compilatore, che generi codice per due macchine diverse, dara N
ilt
diversi. In
questa sense, un repertorio ampio d.i istruzioni (CISC) favorisce il miglioramento
qelle prestazioni.
19All'alba del 2000 i PC di fascia media sui mercato erano a 500 MHz.
2.4 Prestazioni della CPU
Tcpu = (N,., x CPJ)/ j = N,., X CPJ X T. (2.1)
dove T = 1/j rappresenta il periodo di clock.
La 2.1 foroisee la cbiave per capire come Ie prestazioni della CPU dipendono da
fattori tecnologici e architetturali.
Si indichi ora con il numero di istruzioni di macchina corrispondente al
programma e si indichi coo C
PJ
iTnumero medio di clock per istruzione di rnacchina.
Ovviamente CPT edefinito come: 1\. \". ,..0 ,. 0
rC ./' ow.. <:_tX..
\ Cp/ = N/N,,, =C
p
', '!:<;t
sostituendo nella precedente relazione si ottiene:
\
r
\
1
\
1
\
I
I
r
\
\
I
,
I
,)
'"
21 Normalmente Ie istruzioni di ingresso/uscita non introducono cieli di wait, anche se in linea. di
principio e possibile che Ie porte di I/O siano talmente lente da imporre cieli di attes3 per la loro
lettura. 0 scrittura. Pertanto I'unica sorgente di cieli di wait eit sistema di memoria. Nelle macchine
dotate di memoria C4che - 1a quasi tota.lita. dei sistemi correnti - Ie attese si rendono necessarie a.
causa. dei miss nelPaccesso a.lla. cache medesima. (si faccia riferimento a quanto esposto al Capitolo 7
e, in particolare, al Par.a.grafo7.3).
2210 case contrario occorrerebbe avere una sta.tistica degli accessi ai differenti banchi e pesare i
relativi wait in base alie frequenze di accesso.
I
I
I
I
I
1
\.
I
I
\
I
\
61 Elementi architetturaJi di base

nominato e l'indice MIPS. (milioni di istruzioni


2'..4.2 Popolari indici di prestazioni
, L'indi'ce
iR'
-
MFLOPS = Nvm/(T, x 10')
con N
lJm
numero di operazioni in virgola mobile del proiramma.
Anche il MFLOPS, come il MIPS, dipende si. dall. macchina si. dal programm.
Sebbene questa indice sia piu significativo del MIPS, in quanta considera il numero
di operazioni e non di istruzioni, si basa sui presupposto che 10 stesso programma,
l
'AI fine di farmre misure immediate delle piestazioni, vengoDo impiegati alcuni indici I
che, anche se molto popolari, hanno gravi difetti.
,
.MIPS = Ni,tf(T, x 10')
-
, con T
t
tempo di esecuzione del programma in secondi.
,
Eintuitivo che indici MIPS pili alti dovrebbero riferirsi a macchine pili veIocL E
facil"e mostrare che i MIPS inducono facilmente in errore.
Anzitutto, il MIPS dipende dal repertorio di istruzioni della CPU, per il
comronto di indici MIPS di calcolatori aventi repertori differenti eprivo di significa-
to. Inoltre il MIPS puo variare, anche sulla stessa macchina, a seconda del programma
considerato e cioe a seconda di Quale sottoinsieme di istruzioni usa pili frequentemente.
:Come' se non bastasse, puo capitare anche che l'indice MIPS van in maniera inver-
, samente proporzionale al tempo di esecuzione del programma. II classico esempio di
cio possa avvenire eil confronto di due cakolatori, uno dei quali sprovvisto di
unit. per i calcoli in virgol. mobile (FPU), ncalcol.tore senz. FPU potrebbe .vere un
MIPS pili elevato dell'altro, rna questa non vuot dire che Ie sue prestazioni siano mi-
gUori; infatti, il tempo richiesto per eseguire un caJcolo iIi virgola mobile sara di gran
lunga superiore, a causa dell 'elevato nurnero di istruzioni da eseguire per sopperire
.11. m.nconz. di FPU.
. . I ]
nel confronto tra slstemJ a ternativi, questi indici non sono di nessun valore e Cccorre
rifarsi a misurazio.ni effettuate tramite l'impiego 4i programmi campione.
Da ultimo si cleve notare che Ie prestazioni complessive di un sistema di ela- I
borazione non dipendoDo solo da CPU e memoria, rna anche cia! sottosistema di
ingresso/uscita. Pili specificatamente, il tempo complessivo richiesto per l'esecuzione
di un progr.mm. ed.to d.lI. somma del tempo eli CPU e del tempo richiesto per Ie
operazioni di I/O. La valutazione delle prestazioni complessi viene.di solitoaffrontata t
con modelli di reti di code 0 tramite simulazione. L'altro modo e ancora queUo di
ricorrere a programmi di benchmark, appositamente studiati al fine di esercitare tutti
'Ie parti del sistema.. Le problematiche relative s0I!0 fuori da! campo di interesse di
questa libro.
,
"-dice MFLOPS . Un .Itro in,,,,,,
, 'fsttuziom ill viriOIi mobile al secondo,;
-
\

'it:,
i
0-
, .
..
"I .,u ,
'1
,.
',: "
r
,I:
,
..

'iI'
...
,
,
"
" ..
,.
.'
,,{,
,'<
"I
.
.; .
,
i
,,;-
-
,
..

,
"
..
;.:;;
'i
..
.,
!
'.
"
.,
!
,
II-'

-,
I
'i'!f""'"_' , ..
" .','
'1 " " .'
,
,
,
,
..oJ
.' .,
il
: " .
,,!). !
'I ....
,
. '.';

..;
.,
'I
:i ..
,.

ttl
,
:;,1,
" (,
.' ,:'
..
':'1 ' ,I
1 .
ii'
"I '
.y
Capitolo 2
GPlw = hGPl + m(GpI +w)
dove hem sono rispettivamente it tasso di hit di miss della cache) C
P1
ecalcolato
secondo la 2.2 e CPlw e il numero medio effettivo di clock per istruzionej esso tiene
conto del rallentamento indotto dalla memoria. Si ha dunque:
GPlw =(h +m)CPl +mw =GpI +inw
I ragionamenti che hanna portato alIa 2.1 evidenziano che il confronto di mac4
chine di differente architettura ha sensa solo se e fatto rispetto a un ben definito
problema. lnfatti, sia N
iJt
sia gli Xi (e quindi CPI) dipendono in modo determinante
dal problema in esame. Se, per esempio, si considera una applicazione di carattere
numerico e una eli gestione dati, enaturale che nella prima vengano prevalentemente
impiegate operazioni aritmetiche e nella seconda operazioni di generica manipolazione
e movimento dati. Conseguentemente non c'e da stupirsi se, confrontando due dif-
ferenti architetture rispetto a tali applicazioni, l'una possa prevalere nella prima e
l'altra nella seconda.
Nel corso degli anni la comunita. tecnica e scientin.ca ha sviluppato un certo nume-
ro di programmi campione, conosciuti con il nome di benchmark, per 1a quantificazione
delle prestazioni in differenti campi applicativi e per differenti tipologie di carico. In
particolare si sono affermati come standard industriali i benchmark SPEC proposti
dalla System Performance Evaluation Cooperative. Questa organizzazione provvede
ad aggiornare i progranuni campione nel corso degli anni, in modo da tener conto sia
dell'evo1uzione tecnologica che dello sviluppo delle applicazioni. Ai paragrafi 2.4.2 e
2.4.2 si parla di alcuni popolari indici di prestazioni evidenziando come essi abbiano
appen3 un valore indicativa. Nella valutazione pratica delle prestazioni, soprattutto
Naturalmente) il calcole di CPf effettuato come appena detto non tiene conto
della penalizzazione davuta a eventuali deli di wait introdotti dalla memoria 0 da
eventuali sincronizzazioni con il maudo esterno
21
.
Per tener conto dei deli di wait occorrerebbe stabilire come essi modificano i
Cpi, ovvero determinare per ogni istruzione i wait richiesti in fase di fetch e in fase di
esecuzione. E' questa un calcolo che ha seDSO solo se il sistema non dispone di memoria
cache e nelPipotesi che tutti i banchi eli memoria richiedano 10 stesso numero"di wait
22
.
In tali"ipotesi sarebbe infatti possibile calcolare
l
istruzione per istruzione, l'eventuale
incremento dei Cpi davuta alIa hitenza della memoria.
In presenza di cache occane seguire un'altra strada, aggiustanclo il e
PI
in base
aHa statistica di funzionamento della cache, ovvero in base al tasso di miss (Cfr. 3.7.1).
A tal fine, se si assume che la cache sia progettata in modo tale che in caso di hit non
si abbia aleun wait, e che in caso di miss la CPU debba soggiacere a W stati di wait;
il Dumero medio di cicli di clock per istruzione diventa:
60

21 Normalmente Ie istruzioni di ingresso/uscita non introducono cieli di wait, anche se in linea. di


principio e possibile che Ie porte di I/O siano talmente lente da imporre cieli di attes3 per la loro
lettura. 0 scrittura. Pertanto I'unica sorgente di cieli di wait eit sistema di memoria. Nelle macchine
dotate di memoria C4che - 1a quasi tota.lita. dei sistemi correnti - Ie attese si rendono necessarie a.
causa. dei miss nelPaccesso a.lla. cache medesima. (si faccia riferimento a quanto esposto al Capitolo 7
e, in particolare, al Par.a.grafo7.3).
2210 case contrario occorrerebbe avere una sta.tistica degli accessi ai differenti banchi e pesare i
relativi wait in base alie frequenze di accesso.
I
I
I
I
I
1
\.
I
I
\
I
\
61
Elementi architetturaJi di base

nominato e l'indice MIPS. (milioni di istruzioni


2'..4.2 Popolari indici di prestazioni
, L'indi'ce
iR'
-
MFLOPS = Nvm/(T, x 10')
con N
lJm
numero di operazioni in virgola mobile del proiramma.
Anche il MFLOPS, come il MIPS, dipende si. dall. macchina si. dal programm.
Sebbene questa indice sia piu significativo del MIPS, in quanta considera il numero
di operazioni e non di istruzioni, si basa sui presupposto che 10 stesso programma,
l
'AI fine di farmre misure immediate delle piestazioni, vengoDo impiegati alcuni indici I
che, anche se molto popolari, hanno gravi difetti.
,
.MIPS = Ni,tf(T, x 10')
-
, con T
t
tempo di esecuzione del programma in secondi.
,
Eintuitivo che indici MIPS pili alti dovrebbero riferirsi a macchine pili veIocL E
facil"e mostrare che i MIPS inducono facilmente in errore.
Anzitutto, il MIPS dipende dal repertorio di istruzioni della CPU, per il
comronto di indici MIPS di calcolatori aventi repertori differenti eprivo di significa-
to. Inoltre il MIPS puo variare, anche sulla stessa macchina, a seconda del programma
considerato e cioe a seconda di Quale sottoinsieme di istruzioni usa pili frequentemente.
:Come' se non bastasse, puo capitare anche che l'indice MIPS van in maniera inver-
, samente proporzionale al tempo di esecuzione del programma. II classico esempio di
cio possa avvenire eil confronto di due cakolatori, uno dei quali sprovvisto di
unit. per i calcoli in virgol. mobile (FPU), ncalcol.tore senz. FPU potrebbe .vere un
MIPS pili elevato dell'altro, rna questa non vuot dire che Ie sue prestazioni siano mi-
gUori; infatti, il tempo richiesto per eseguire un caJcolo iIi virgola mobile sara di gran
lunga superiore, a causa dell 'elevato nurnero di istruzioni da eseguire per sopperire
.11. m.nconz. di FPU.
. . I ]
nel confronto tra slstemJ a ternativi, questi indici non sono di nessun valore e Cccorre
rifarsi a misurazio.ni effettuate tramite l'impiego 4i programmi campione.
Da ultimo si cleve notare che Ie prestazioni complessive di un sistema di ela- I
borazione non dipendoDo solo da CPU e memoria, rna anche cia! sottosistema di
ingresso/uscita. Pili specificatamente, il tempo complessivo richiesto per l'esecuzione
di un progr.mm. ed.to d.lI. somma del tempo eli CPU e del tempo richiesto per Ie
operazioni di I/O. La valutazione delle prestazioni complessi viene.di solitoaffrontata t
con modelli di reti di code 0 tramite simulazione. L'altro modo e ancora queUo di
ricorrere a programmi di benchmark, appositamente studiati al fine di esercitare tutti
'Ie parti del sistema.. Le problematiche relative s0I!0 fuori da! campo di interesse di
questa libro.
,
"-dice MFLOPS . Un .Itro in,,,,,,
, 'fsttuziom ill viriOIi mobile al secondo,;
-
\

'it:,
i
0-
, .
..
"I .,u ,
'1
,.
',: "
r
,I:
,
..

'iI'
...
,
,
"
" ..
,.
.'
,,{,
,'<
"I
.
.; .
,
i
,,;-
-
,
..

,
"
..
;.:;;
'i
..
.,
!
'.
"
.,
!
,
II-'

-,
I
'i'!f""'"_' , ..
" .','
'1 "
" .'
,
,
,
,
..oJ
.' .,
il
: " .
,,!). !
'I
....
,
. '.';

..;
.,
'I
:i ..
,.

ttl
,
:;,1,
" (,
.' ,:'
..
':'1 ' ,I
1 .
ii'
"I '
.y
Capitolo 2
GPlw = hGPl + m(GpI +w)
dove hem sono rispettivamente it tasso di hit di miss della cache) C
P1
ecalcolato
secondo la 2.2 e CPlw e il numero medio effettivo di clock per istruzionej esso tiene
conto del rallentamento indotto dalla memoria. Si ha dunque:
GPlw =(h +m)C
Pl
+mw =GpI +inw
I ragionamenti che hanna portato alIa 2.1 evidenziano che il confronto di mac4
chine di differente architettura ha sensa solo se e fatto rispetto a un ben definito
problema. lnfatti, sia N
iJt
sia gli Xi (e quindi CPI) dipendono in modo determinante
dal problema in esame. Se, per esempio, si considera una applicazione di carattere
numerico e una eli gestione dati, enaturale che nella prima vengano prevalentemente
impiegate operazioni aritmetiche e nella seconda operazioni di generica manipolazione
e movimento dati. Conseguentemente non c'e da stupirsi se, confrontando due dif-
ferenti architetture rispetto a tali applicazioni, l'una possa prevalere nella prima e
l'altra nella seconda.
Nel corso degli anni la comunita. tecnica e scientin.ca ha sviluppato un certo nume-
ro di programmi campione, conosciuti con il nome di benchmark, per 1a quantificazione
delle prestazioni in differenti campi applicativi e per differenti tipologie di carico. In
particolare si sono affermati come standard industriali i benchmark SPEC proposti
dalla System Performance Evaluation Cooperative. Questa organizzazione provvede
ad aggiornare i progranuni campione nel corso degli anni, in modo da tener conto sia
dell'evo1uzione tecnologica che dello sviluppo delle applicazioni. Ai paragrafi 2.4.2 e
2.4.2 si parla di alcuni popolari indici di prestazioni evidenziando come essi abbiano
appen3 un valore indicativa. Nella valutazione pratica delle prestazioni, soprattutto
Naturalmente) il calcole di CPf effettuato come appena detto non tiene conto
della penalizzazione davuta a eventuali deli di wait introdotti dalla memoria 0 da
eventuali sincronizzazioni con il maudo esterno
21
.
Per tener conto dei deli di wait occorrerebbe stabilire come essi modificano i
Cpi, ovvero determinare per ogni istruzione i wait richiesti in fase di fetch e in fase di
esecuzione. E' questa un calcolo che ha seDSO solo se il sistema non dispone di memoria
cache e nelPipotesi che tutti i banchi eli memoria richiedano 10 stesso numero"di wait
22
.
In tali"ipotesi sarebbe infatti possibile calcolare
l
istruzione per istruzione, l'eventuale
incremento dei Cpi davuta alIa hitenza della memoria.
In presenza di cache occane seguire un'altra strada, aggiustanclo il e
PI
in base
aHa statistica di funzionamento della cache, ovvero in base al tasso di miss (Cfr. 3.7.1).
A tal fine, se si assume che la cache sia progettata in modo tale che in caso di hit non
si abbia aleun wait, e che in caso di miss la CPU debba soggiacere a W stati di wait;
il Dumero medio di cicli di clock per istruzione diventa:
60

::'i.'
'ill
': ;r:) ,
.1'.1
'-1;, .
';,l

: ;",
"
,;}
','; .
':. ,
.'r,.; "
I ,11\ .'
ji :.
,
...
.. ;1
N,.
- .
t
.
'K
, '-')

,Ii :

;
'tl :

.,1

,.'
Rc-O)
Rc-l)
Rc-O)
Rc-I)
(OE-a,
(OE-O,
(OE-l,
(OE-I,
RO,RA,RB
RO,RA,RB
RD,RA,RB
RD,RA,RB
FormalO i-Ilnujone dl nIt" Incondhlonalo
Formal-o ialnizioni con opllr"ndo
immfldl..to " i:rlru;:lon.l dl <:ariclUUeoto "
memorinnione d_i reslstri
E,..,mpio di i8lrU%ion. adlmdic..:
IstrudoDC dl 'omm_
r",rwillo iatruzioni mtmetiche
ADD
ADO.
ADDO
ADOO.
Elementi architetturah di base 63
di alcuni registri di stato possono essere modificati dalFesecuzione deU'istruzione
25
.
A tale fine sono previsti dei codici mnemonici differenti, come illustrato in figura.
Anche per I'istruzione di salto incondizionato 80no previsti due bit che ne determine
it comportamento. n bit AA fa interpretare il campo LI come un indirizzo assoluto
oppure relativo al PC, il bit LK stabilisce se l'esecuzione del salto debba a no 5al-
yare 1'indirizzo dell'istruzione successiva nel registro di macchina denominato LINK.
Anche in questa caso sono previsti differenti mnemonici per identificare le variazioni
dell'istruzione di sa1t0
26
, ".In Figura2.14 viene anche presentato il formato delle istruzioni aritmetiche con
un operando immediat0
27
. L'istruzione:
addi ri, r2, 35 ha l'effetto: rif- r2+35
In essa it numero 35 viene codificato nel campo SIMM. Lo stesso formato vale anche
per Ie istruzioni di caricamento/memorizzazione dei registri. Per esempio, l'istruzione:
lwz RD,d(RA)
codifica d nel campo SIMM e ha Questo efetto:
25Per esempio, se Rc=l, aHora l'addizione pub avere effetto sui bit LT (Les! Than), GT Greater
Than) del registro CR (Condition Register)di macehina.
26Questa soluzione produce un elevato numero di istruzioni, tanto da far apparire il PowerPC come
una macchina non RISC. In realta, il forma-to delle istruzioni permette immediatamente una facile
in quanta 1a decodifica di tutti i poasibili campi subordinati a.l codice di operazione pub
procedere in parallela alia. decodifica eli quest'ultimo. Quando il codice di aperazione edecodificato
non resta che scegliere quali degli altri decodificatori entrana in gioco.
:nL'operando immediato eun opera.ndo il cui valore ecodificato nel campo stesso dell'istruzione.
(' ';,' I I" ,I
U
' '",,' I [" I , , I , I , , , I '''[
(' , , I" ,I
U
' , [" , B' ,,'",' ,I 8
"I" """ "" ttl
Figura 2.14 Esempio di formati di istruzioni del PowerPC. Tutte Ie istruzioni aritmetiche
tra interi a. tre registri prevedono OP=31. Uistruzione di somma eidentificata attraverso la
codifica ALU=266. La figura riporta quattro distinti mnemonici per l'istruzione di somma,
i differenti mnemonici corrispondono alle possibili codifiche dei campi OE e Re. Anche
I'istruzione di salto incondizionato prevede, per il medesimo codice OP=18, quattro distinti
mnemonici, corrispondenti aile quattro differenti codifiche per la. coppia di bit AA eLK.
I" ';,"1" ',; 'I
u
, ""':"'" 8
,

..,'

"
"
.,
,'.- .
"

''';:'1'
'.,. ,
,',. .
,
., .
".
J'; .
, ..
..
.. n

"
, .",
,.,


,
".".
':
"II
t;j -
t "( ,
"';"

'ii:i '.

"
-I
t
.' ..";..


).?


'..
.".
"t
..',
.

:'1.
'I'
'I" :
,
"., ,
;"1
",i
":1\..
,. ,
,I." .
" '
. "
,. '

:';.Al _..
'I
'f '
, " .

'I
.,
j

1.
.
Nelle architetture RISC il repertorio di istruzioni e progettato secondo i seguenti
criteri:
In Figura2.14 vengono riportati i formati di alcune istruzioni delParchitettura
PowerPC
2
3. Le istruzioni occupano sempre 32 bit. ncampo del codice di operazione
occupa sempre i primi sei bit a sinistra (bit 0-5). Gli altri campi hanno un significato
che dipende dal codice di operazione, rna i confini tra i campi sono sempre gli stessi e
la loro interpretazione esempre univoca in base al campo OP. Ci sono ancbe istruzioni '
che richiederebbero meno di 32 bit
24
, rna pur sempre codificate in una parola di 32
bit, parzialmente inutilizzata.
Per Ie operazioni aritmetiche tra registri i campi RD, RA e RB identificano
rispettivamente il registro di destinazione del risultato, iI primo e il secondo registro
sorgente (contenenti gli addendi deUa somma). ncodice operativo 31 ecomune a tutte
Ie istruzioni aritmetiche tra interi a tre registri. II campo ALU determina l'effetti-
va operazione aritmetica. Nel caso dell'addizione il campo ALU contiene il numero
266. I due campi d.i un bit, OE e Rc, vengono impiegati per specificare quali bit
2.5.1 Repertorio stile RlSC
2.5 11 repertorio delle istruzioni
Le istruzioni hanno tutte la stessa dimensione, per esernpio 32 bit.
n campo del codice di operazione occupa uno spazio predefinito.
Esiste un numero estrernamente limitato di formati. ncodice di operazione
fica in modo univoco il formate dell'istruzione. Nel passare da formato a formato,
i campi che identificano uguali entita occupano sempre 1a stessa posizione.
1, 23Del powerPC si parlanell'Appendice C, mentre dell'architettura x86 SI parla nell'Appendice B.
2"L'istruzione sc (Supervisor richiede 8010 6 bit. per il codice, piu il bit 30.
n repertorio delle istruzioni eli macGhina costituisce t,lllO degli aspetti caratteristici di
qualunque architetture ed einestricabilmente legato all'arcbitettura stessa. Un'istru-
zione nel suo complesso efarmata cia pili campi, di cui uno, il codice di operazione
determina la natura dell'istruzione e il significato degli altri eventuali campi.
n numero di istruzioni nel repertorio, la potenzialita delle singole istruzioni, il
10ro formato e la 10ro codifica hanna grande influenza sulle prestazioni della macchina
stessa. Schematicamente SI possono individuare due opposti approcci alIa definizione
del repertorio di istruzioni: queUo delle architetture RISe e queUo delle architetture
CISC.
pur eseguendo un diverso numero di istruzioni au calcolatori diversi, effettui 10 stesso ,
,
numero di operazioni in virgola mobile. Cia e ovviamente falso, in quanta i 'insieme :
eli istruzioni in virgola mobile au "macchine diverse non euniforme. .
62 Ca.pitola 2

.
I
I,
f
I(
I
\
\
I
\
I
I
\
l
I
::'i.'
'ill
': ;r:) ,
.1'.1
'-1;, .
';,l

: ;",
"
,;}
','; .
':. ,
.'r,.; "
I ,11\ .'
ji :.
,
...
.. ;1
N,.
- .
t
.
'K
, '-')

,Ii :

;
'tl :

.,1

,.'
Rc-O)
Rc-l)
Rc-O)
Rc-I)
(OE-a,
(OE-O,
(OE-l,
(OE-I,
RO,RA,RB
RO,RA,RB
RD,RA,RB
RD,RA,RB
FormalO i-Ilnujone dl nIt" Incondhlonalo
Formal-o ialnizioni con opllr"ndo
immfldl..to " i:rlru;:lon.l dl <:ariclUUeoto "
memorinnione d_i reslstri
E,..,mpio di i8lrU%ion. adlmdic..:
IstrudoDC dl 'omm_
r",rwillo iatruzioni mtmetiche
ADD
ADO.
ADDO
ADOO.
Elementi architetturah di base 63
di alcuni registri di stato possono essere modificati dalFesecuzione deU'istruzione
25
.
A tale fine sono previsti dei codici mnemonici differenti, come illustrato in figura.
Anche per I'istruzione di salto incondizionato 80no previsti due bit che ne determine
it comportamento. n bit AA fa interpretare il campo LI come un indirizzo assoluto
oppure relativo al PC, il bit LK stabilisce se l'esecuzione del salto debba a no 5al-
yare 1'indirizzo dell'istruzione successiva nel registro di macchina denominato LINK.
Anche in questa caso sono previsti differenti mnemonici per identificare le variazioni
dell'istruzione di sa1t0
26
, ".In Figura2.14 viene anche presentato il formato delle istruzioni aritmetiche con
un operando immediat0
27
. L'istruzione:
addi ri, r2, 35 ha l'effetto: rif- r2+35
In essa it numero 35 viene codificato nel campo SIMM. Lo stesso formato vale anche
per Ie istruzioni di caricamento/memorizzazione dei registri. Per esempio, l'istruzione:
lwz RD,d(RA)
codifica d nel campo SIMM e ha Questo efetto:
25Per esempio, se Rc=l, aHora l'addizione pub avere effetto sui bit LT (Les! Than), GT Greater
Than) del registro CR (Condition Register)di macehina.
26Questa soluzione produce un elevato numero di istruzioni, tanto da far apparire il PowerPC come
una macchina non RISC. In realta, il forma-to delle istruzioni permette immediatamente una facile
in quanta 1a decodifica di tutti i poasibili campi subordinati a.l codice di operazione pub
procedere in parallela alia. decodifica eli quest'ultimo. Quando il codice di aperazione edecodificato
non resta che scegliere quali degli altri decodificatori entrana in gioco.
:nL'operando immediato eun opera.ndo il cui valore ecodificato nel campo stesso dell'istruzione.
(' ';,' I I" ,I
U
' '",,' I [" I , , I , I , , , I '''[
(' , , I" ,I
U
' , [" , B' ,,'",' ,I 8
"I" """ "" ttl
Figura 2.14 Esempio di formati di istruzioni del PowerPC. Tutte Ie istruzioni aritmetiche
tra interi a. tre registri prevedono OP=31. Uistruzione di somma eidentificata attraverso la
codifica ALU=266. La figura riporta quattro distinti mnemonici per l'istruzione di somma,
i differenti mnemonici corrispondono alle possibili codifiche dei campi OE e Re. Anche
I'istruzione di salto incondizionato prevede, per il medesimo codice OP=18, quattro distinti
mnemonici, corrispondenti aile quattro differenti codifiche per la. coppia di bit AA eLK.
I" ';,"1" ',; 'I
u
, ""':"'" 8
,

..,'

"
"
.,
,'.- .
"

''';:'1'
'.,. ,
,',. .
,
., .
".
J'; .
, ..
..
.. n

"
, .",
,.,


,
".".
':
"II
t;j -
t "( ,
"';"

'ii:i '.

"
-I
t
.' ..";..


).?


'..
.".
"t
..',
.

:'1.
'I'
'I" :
,
"., ,
;"1
",i
":1\..
,. ,
,I." .
" '
. "
,. '

:';.Al _..
'I
'f '
, " .

'I
.,
j

1.
.
Nelle architetture RISC il repertorio di istruzioni e progettato secondo i seguenti
criteri:
In Figura2.14 vengono riportati i formati di alcune istruzioni delParchitettura
PowerPC
2
3. Le istruzioni occupano sempre 32 bit. ncampo del codice di operazione
occupa sempre i primi sei bit a sinistra (bit 0-5). Gli altri campi hanno un significato
che dipende dal codice di operazione, rna i confini tra i campi sono sempre gli stessi e
la loro interpretazione esempre univoca in base al campo OP. Ci sono ancbe istruzioni '
che richiederebbero meno di 32 bit
24
, rna pur sempre codificate in una parola di 32
bit, parzialmente inutilizzata.
Per Ie operazioni aritmetiche tra registri i campi RD, RA e RB identificano
rispettivamente il registro di destinazione del risultato, iI primo e il secondo registro
sorgente (contenenti gli addendi deUa somma). ncodice operativo 31 ecomune a tutte
Ie istruzioni aritmetiche tra interi a tre registri. II campo ALU determina l'effetti-
va operazione aritmetica. Nel caso dell'addizione il campo ALU contiene il numero
266. I due campi d.i un bit, OE e Rc, vengono impiegati per specificare quali bit
2.5.1 Repertorio stile RlSC
2.5 11 repertorio delle istruzioni
Le istruzioni hanno tutte la stessa dimensione, per esernpio 32 bit.
n campo del codice di operazione occupa uno spazio predefinito.
Esiste un numero estrernamente limitato di formati. ncodice di operazione
fica in modo univoco il formate dell'istruzione. Nel passare da formato a formato,
i campi che identificano uguali entita occupano sempre 1a stessa posizione.
1, 23Del powerPC si parlanell'Appendice C, mentre dell'architettura x86 SI parla nell'Appendice B.
2"L'istruzione sc (Supervisor richiede 8010 6 bit. per il codice, piu il bit 30.
n repertorio delle istruzioni eli macGhina costituisce t,lllO degli aspetti caratteristici di
qualunque architetture ed einestricabilmente legato all'arcbitettura stessa. Un'istru-
zione nel suo complesso efarmata cia pili campi, di cui uno, il codice di operazione
determina la natura dell'istruzione e il significato degli altri eventuali campi.
n numero di istruzioni nel repertorio, la potenzialita delle singole istruzioni, il
10ro formato e la 10ro codifica hanna grande influenza sulle prestazioni della macchina
stessa. Schematicamente SI possono individuare due opposti approcci alIa definizione
del repertorio di istruzioni: queUo delle architetture RISe e queUo delle architetture
CISC.
pur eseguendo un diverso numero di istruzioni au calcolatori diversi, effettui 10 stesso ,
,
numero di operazioni in virgola mobile. Cia e ovviamente falso, in quanta i 'insieme :
eli istruzioni in virgola mobile au "macchine diverse non euniforme. .
62 Ca.pitola 2

.
I
I,
f
I(
I
\
\
I
\
I
I
\
l
I
2.5.2 Repertorio stile elSe
a) come somma del contenuto del campo SIMM con il contenuto del registro speci-
ficato tramite RAJ se per RA viene specificato un registro diverso da rD. Si ha
dunque un indirizzamento relativD a RA28;
b) come indirizzo data da! contenuto del campo SIMM se per RA viene specificato
o(zero) 0 r0
29
. Si ha doe un indirizzamento assoluto.
28La. notuione EXTS(SIMH) sta a Indica.re l'e:stenaione con segno a. 32 bit del campo SIMM.
29In questi due casl nel campo RA dell'istruzione di ma.cchina viene codificato O.
30Si tratta del retaggio degli anni in cui Ie. logica di CPU era: microprogramrnata. Nel passare
datl'8086 alle macchine piu recent! i progettlsti Intel hanno dovuto superare non poche difficolta e
inventare ingegnosi accorgimenti per fronteggjare til. .c:omplicazione del repertorio di istruzioni. A
partire daJ 486 Ie CPU Intel presen'tano una pipeline interna. La fase di decodifica, solitamente una
delle menD onerose, richiede ben due deli di clock.
NeUe architetture elSe it repertorio d.i istruzioni ha Ie seguenti caratteristiche.
Ci sono istruzioni di differente dimensione.
II campo del codice di oper.azione non necessariamente occupa uno spazio pre-
definito. -A seconda della modalita. in cui una ceria categoria di istruzioni viene
interpretata, il campo codice puo accupare pili a meno bit.
Esiste un numero alquanto ampio di formati. n codice di operazione, nelle sue
possibili variazioni, identifica 10 specifico formato delle istruzioni. Nel passare
da formato a formato, i campi che identificana uguali entita possono occupare
differenti posizioni.
In Figura 2.15 vengono riportati i formati di alcune istruzioni de1l'architettura
x86 a 32 bit (dal 386 in poi).
La dimensione minima di un'istruzione eun byte. Per esempio, Ie due istruzioni
STI e eLI (rispettivamente Set InteTTUpt Flag e Clear Interrupt Flag non hanno ope-
randi e occupano un solo byte, mentre istruzioni come MOV (Move) di un dato dalla
memoria in un registro pub avere differenti dimensioni in dipendenza da quanta e
grande 10 scostamento. Essenziale eil campo MOD RIM. L'interpretaziane purtrop-
po non e univoca. Nello stesso codice di istruzione ci sana bit che a seconda della
particolare istruzione possono essere interpretati in modo diverse. Si tratta di una
struttura alquanto irregolare, che comporta notevole complessita, soprattutto nella
lase di decodifica dell'istruziooe. Inlatti la logica di CPU (a parte i prefissi) deve e.a-
minare il codice primario di operaziane, stabilendo anzitutto se it codice occupa uno
o due byte, quindi, se l'istruzione prevede altre parti a seguire il cadice, decodificare
i byte che seguono e se del caso ind.irizzare la memoria
30
. Un esempio di istruzione
\
I
\
I
I
)
l-
I
1
1
t
\
I
I
1
65
ISTRUZlONE
Elementi architetturali 4i. base
-
PREFlSSl
3tEsempi rilevanti di macchine di questa categoria. sono sta.te iI Burroughs B/S50 (1963) e I'RP
3000 (1972). .
3'2per esempio la ricorsivlta.
.
I,lnll!ene
Dimon_ieno Di.moo_iono S"gmonlo Cedlee },lOD R/'" SIB 3co,te.mento lmmedlato
rndlrlne Op_nado
0/1
0/1 0/1 0/1
1/'
0/1 0/1 0/1/2/4 0/1/2/4
,
2.6 Criteri di classificazione delle architetture
Un modo'per classificare Ie architetture dei calcolatori consiste nel riferirsi al modello
, di es'e'cuzione, ovvero al modo in cui la CPU accede e manipola gil oggetti dell'elabara-
zione: At modello di esecuzione corrisponde Ia struttura e il formate delle istruzioni,
c;on' riferimento a1 numero di operandi esplicitamente 0 implicitamente
< rappresentati nell'istruzione. La c1assificazione che si traccia qui di seguito deve es-
, sere intesa come uno schema genera1e. Nella pratica 5i trovano macchine che adattato
,. soluzioni architetturali miste. -
. La parte che segue verra svolta facendo riferimento allo statement di alta Uvello
A: = B+C dove A, Bee cono variabili intere.
F"lodello a Negli anni sessanta e settanta sonG state costruite macchine che
modellavano iI madella astratto di calcolo basato sullo stack
31
. Operaziani come
per esempio un'addizione (ADD) non richiedono che venga esplicitato alcun ope-
rando, in quanta i due operandi vengono prelevati dalle due pasizioni di testa
dello stack, mentre it risultato viene depositato sempre sullo stack stesso. Si
tratta di architetture che, in termini astratti, rnodellana al meglio certi forma-
lismi presenti in alcuni linguaggi di programmazione di alto
Numero d.i byte possibili per ciascuno dei campi dell'i.slru?;ione
',; Figura 2.15 Formato delle istruzioni neU'architettura x86, per macchine a 32 bit. 5i noti
che vera e propria pub essere preceduta da. ben quattro tipi di prefisso, che ne
. l'interpretazione usuale. 11 campo del codice di operazione pub essere di uno 0
.' due byte. Tre bit del campo MOD RIM sono da. considerare come estensione del codice
di operazione. MOD RIM determina quali registri sono implicati, oltre a indicare se c'e
riferimento alia memoria e a condizionare Ill. presenza del campo SIB (Scale-Index-Base). n
, campo SIB determina. it fattore di scala nell'accesso ai dati. Infine il campo scosta.mento e il
'campo immediato rappresentano rispettivamente 10 scostamento dell'operando in memoria
o una quantita. codificata nell'istruzione.
-::-.- ..I
,
'.
codificata in modo diverse a seconda della modalita el'istruzione PUSH. Uistruzione
PUSH AX (mette sullo stack il registro AX) occupa un solo bytej Pistruzione PUSH mem
, ., sullo stack i1 centenuto della 10cazione mem) ha un differente codice e occupa
.. i byte che servono a sistemare il codice eli operazione e l'indirizzo (10 5costamento)
JIlem.
....,
.",.,
., I
:;; ,;

'.' '
,,'
t.,
'" ,
\
',;, ',.
"4,.", '
, I,
,
,'._.

.,:11.
;iil
1
;

.', .
.
. If! .
,;;.' ,
""1' "
.
,j,:
..' 't

'..
'-'J!
t
,J,
" ',)
:.
,
..,.
'.j
", i
'::",1,
' ..,: 1
;., ,
i/! "
.j'
, '1,
,
,:-.:
.::{i


,
, ).;
.,t' ..
"
.i
:il
,
;
,

-c-::'"
'<:'

,

.' "
3i '
.. ,
" '1
:'1"
"'
.
'.'
w ,
..'J,
. '. . .
. .,
.1;'1'
.,
.'tr ..
1
". : ,
;.;" .
,..r, .

'f"l
' ;; ,

'r:.: '
14
., ., .','
.' " .... ',,,' .
.. .:-j';t:.. ';."
to;: ."..
,. "
.c,
,
,:.; '.
- t
"'.. ' .
!t'
,
,. t
_.
,"J_'
indirizzo e
i
if "RA"=O then bt- a else bi- RA;
EAt- b + EXTS(SIHH);
ROt- H[EA];
oVYero)' in RD viene caricato il contenuto della cella di memoria il CUi
calcolato:
64 Capitola 2
c
2.5.2 Repertorio stile elSe
a) come somma del contenuto del campo SIMM con il contenuto del registro speci-
ficato tramite RAJ se per RA viene specificato un registro diverso da rD. Si ha
dunque un indirizzamento relativD a RA28;
b) come indirizzo data da! contenuto del campo SIMM se per RA viene specificato
o(zero) 0 r0
29
. Si ha doe un indirizzamento assoluto.
28La. notuione EXTS(SIMH) sta a Indica.re l'e:stenaione con segno a. 32 bit del campo SIMM.
29In questi due casl nel campo RA dell'istruzione di ma.cchina viene codificato O.
30Si tratta del retaggio degli anni in cui Ie. logica di CPU era: microprogramrnata. Nel passare
datl'8086 alle macchine piu recent! i progettlsti Intel hanno dovuto superare non poche difficolta e
inventare ingegnosi accorgimenti per fronteggjare til. .c:omplicazione del repertorio di istruzioni. A
partire daJ 486 Ie CPU Intel presen'tano una pipeline interna. La fase di decodifica, solitamente una
delle menD onerose, richiede ben due deli di clock.
NeUe architetture elSe it repertorio d.i istruzioni ha Ie seguenti caratteristiche.
Ci sono istruzioni di differente dimensione.
II campo del codice di oper.azione non necessariamente occupa uno spazio pre-
definito. -A seconda della modalita. in cui una ceria categoria di istruzioni viene
interpretata, il campo codice puo accupare pili a meno bit.
Esiste un numero alquanto ampio di formati. n codice di operazione, nelle sue
possibili variazioni, identifica 10 specifico formato delle istruzioni. Nel passare
da formato a formato, i campi che identificana uguali entita possono occupare
differenti posizioni.
In Figura 2.15 vengono riportati i formati di alcune istruzioni de1l'architettura
x86 a 32 bit (dal 386 in poi).
La dimensione minima di un'istruzione eun byte. Per esempio, Ie due istruzioni
STI e eLI (rispettivamente Set InteTTUpt Flag e Clear Interrupt Flag non hanno ope-
randi e occupano un solo byte, mentre istruzioni come MOV (Move) di un dato dalla
memoria in un registro pub avere differenti dimensioni in dipendenza da quanta e
grande 10 scostamento. Essenziale eil campo MOD RIM. L'interpretaziane purtrop-
po non e univoca. Nello stesso codice di istruzione ci sana bit che a seconda della
particolare istruzione possono essere interpretati in modo diverse. Si tratta di una
struttura alquanto irregolare, che comporta notevole complessita, soprattutto nella
lase di decodifica dell'istruziooe. Inlatti la logica di CPU (a parte i prefissi) deve e.a-
minare il codice primario di operaziane, stabilendo anzitutto se it codice occupa uno
o due byte, quindi, se l'istruzione prevede altre parti a seguire il cadice, decodificare
i byte che seguono e se del caso ind.irizzare la memoria
30
. Un esempio di istruzione
\
I
\
I
I
)
l-
I
1
1
t
\
I
I
1
65
ISTRUZlONE
Elementi architetturali 4i. base
-
PREFlSSl
3tEsempi rilevanti di macchine di questa categoria. sono sta.te iI Burroughs B/S50 (1963) e I'RP
3000 (1972). .
3'2per esempio la ricorsivlta.
.
I,lnll!ene
Dimon_ieno Di.moo_iono S"gmonlo Cedlee },lOD R/'" SIB 3co,te.mento
lmmedlato
rndlrlne
Op_nado
0/1
0/1 0/1 0/1
1/'
0/1 0/1 0/1/2/4 0/1/2/4
,
2.6 Criteri di classificazione delle architetture
Un modo'per classificare Ie architetture dei calcolatori consiste nel riferirsi al modello
, di es'e'cuzione, ovvero al modo in cui la CPU accede e manipola gil oggetti dell'elabara-
zione: At modello di esecuzione corrisponde Ia struttura e il formate delle istruzioni,
c;on' riferimento a1 numero di operandi esplicitamente 0 implicitamente
< rappresentati nell'istruzione. La c1assificazione che si traccia qui di seguito deve es-
, sere intesa come uno schema genera1e. Nella pratica 5i trovano macchine che adattato
,. soluzioni architetturali miste. -
. La parte che segue verra svolta facendo riferimento allo statement di alta Uvello
A: = B+C dove A, Bee cono variabili intere.
F"lodello a Negli anni sessanta e settanta sonG state costruite macchine che
modellavano iI madella astratto di calcolo basato sullo stack
31
. Operaziani come
per esempio un'addizione (ADD) non richiedono che venga esplicitato alcun ope-
rando, in quanta i due operandi vengono prelevati dalle due pasizioni di testa
dello stack, mentre it risultato viene depositato sempre sullo stack stesso. Si
tratta di architetture che, in termini astratti, rnodellana al meglio certi forma-
lismi presenti in alcuni linguaggi di programmazione di alto
Numero d.i byte possibili per ciascuno dei campi dell'i.slru?;ione
',; Figura 2.15 Formato delle istruzioni neU'architettura x86, per macchine a 32 bit. 5i noti
che vera e propria pub essere preceduta da. ben quattro tipi di prefisso, che ne
. l'interpretazione usuale. 11 campo del codice di operazione pub essere di uno 0
.' due byte. Tre bit del campo MOD RIM sono da. considerare come estensione del codice
di operazione. MOD RIM determina quali registri sono implicati, oltre a indicare se c'e
riferimento alia memoria e a condizionare Ill. presenza del campo SIB (Scale-Index-Base). n
, campo SIB determina. it fattore di scala nell'accesso ai dati. Infine il campo scosta.mento e il
'campo immediato rappresentano rispettivamente 10 scostamento dell'operando in memoria
o una quantita. codificata nell'istruzione.
-::-.- ..I
,
'.
codificata in modo diverse a seconda della modalita el'istruzione PUSH. Uistruzione
PUSH AX (mette sullo stack il registro AX) occupa un solo bytej Pistruzione PUSH mem
, ., sullo stack i1 centenuto della 10cazione mem) ha un differente codice e occupa
.. i byte che servono a sistemare il codice eli operazione e l'indirizzo (10 5costamento)
JIlem.
....,
.",.,
., I
:;; ,;

'.' '
,,'
t.,
'" ,
\
',;, ',.
"4,.", '
, I,
,
,'._.

.,:11.
;iil
1
;

.', .
.
. If! .
,;;.' ,
""1' "
.
,j,:
..' 't

'..
'-'J!
t
,J,
" ',)
:.
,
..,.
'.j
", i
'::",1,
' ..,: 1
;., ,
i/! "
.j'
, '1,
,
,:-.:
.::{i


,
, ).;
.,t' ..
"
.i
:il
,
;
,

-c-::'"
'<:'

,

.' "
3i '
.. ,
" '1
:'1"
"'
.
'.'
w ,
..'J,
. '. . .
. .,
.1;'1'
.,
.'tr ..
1
". : ,
;.;" .
,..r, .

'f"l
' ;; ,

'r:.: '
14
., ., .','
.' " .... ',,,' .
.. .:-j';t:.. ';."
to;: ."..
,. "
.c,
,
,:.; '.
- t
"'.. ' .
!t'
,
,. t
_.
,"J_'
indirizzo e
i
if "RA"=O then bt- a else bi- RA;
EAt- b + EXTS(SIHH);
ROt- H[EA];
oVYero)' in RD viene caricato il contenuto della cella di memoria il CUi
calcolato:
64 Capitola 2
c
1
66 Capitola 2
livello
33
.
'"
":,,:1'
..)", '.
I. .-
-j
,
i .'
,
,

"
".. ",' ,
'.
"!
Elementi architetturah di base
67
,
Ftack
Registro-Registro I Memoria-Registro ' Memoria-Memoria I
PUSH B
LOAD Rl,B LOAD B ADD A,B,C
PUSH C
LOAD R2,C ADD C
ADD
ADD R3,Rl,R2 STORE A
POP A
STORE A,R3
35Negli anni settanta venne proposta una CPU, il Texas TMS9900, cbe aveva questa caratteristica:
per it programmatore la macchin& aveva un blocco di 16 registri, rna d.i fatto i registri erano in
memoria. In CPU c'era soltanto il alia posizione di partenza del blocco in memoria. Le
istru.zioni che nominavano i registri Ii rauiungevano attraverso tale puntatore. II va.otaggio di questa
a.rclutettura risiedeva nel fatto che era possibile "cambiare it contesto del progr<Unma." , doe i registri,
cambiando solo iI puntatore in CPU. Tale fatto risultava utile Del tratta.mento delle interruzioni e
nella realizzazione di aistemi a processi concorrenti. rna induceva sempre il carico dei riferimenti alIa
memoria.
Uno deg.li aspetti piu importanti di un'architettura e dato delle modalita. di indi-
rizzamento in memoria, ovvero come vengono raggiunti gli oggetti dell'elaborazione
(costanti, variabili) e come viene passato il controllo tra parti diverse di programma.
2.7 Indirjzzamento
. , .
scrittura). Rispetto a un'architettura a registri si triplicano gli accessi alia memoria.
Con' l'abbassarsi dei costi della memoria e con il divaricamento tra Ie prestazioni delle
CPU rispetto al queUe delle memorie, questa soluzione ha perso totalmente campo.
In Figura2.16 il modello memoria-memoria sembra essere quello pili efficiente
da! punta di vista dell'esecuzione e per quanto riguarda la compattezza del codice.
Anche questa modello, sebbene largamente caldeggiato negli anni settanta, non ha
avuto success0
35
. All'apparente efficienza carrisponde un gran traffico con 1a memoria,
sebbene inferiore a queUo del modello precedente, da cui derivano prestazioni scadenti,
oltre a complicazioni architetturali per 1a gestione dei tre indirizzamenti.
. .
" In conclusione i modelli registro-memoria e il modelio registro-registro sono quelli
prevalenti. La disponibilita di un ampio Dumero di registri consente al compilatore di
ottlmizzare i riferimenti alia memoria, tenendo Ie variabili nei registri stessi, riducendo
drasticamente il traffico con la memoria e semplificando la struttura delPindirizzamen-
to." Per esempio: una volta che una variabile estata caricata in un registro non c'e
necessita. di ricopiarla in memoria fino a che quel registro non si renda assolutamente
necessaria per altri scapi. Cia non e possibile ne col modelio a stack ne col modello
. .
memona-memona.
Figura 2.16 in aI. di esecuzione, per 10 st,atement di alto
livello' A:=B+C. 81 suppone che Ie Var18blh A e B non debbano essere modificate.
!'.
( :
"
.. ,
j
II

,
, ",'
'i'
,;;1.
;"'1
"
j:
...1
;.'"
,

'.
'r.::
t.,
-
>,"
'..
"
, .
,1'
"I
'd' '
,<
'4
:4 .
...,
"
.....
;;I' '
,

:> -',

Mode moria-mem9ria Sono state realizzate macchine in cui il modella di


elaborazione prevedeva e con una sola istruzione 180 CPU otesse' e
sis. Ie due POSlZIO 1 ntenenti Ii 0 er j... ",,::
nazione, sempre in mewopa. del risul...ta:U>. Ovviamente, il formata dell'istruzione ;':
creve precedere, oltre al codice di operazione
,
tIe campi per indiri?-zare Ie tre
posizioni in memoria.
- "'1
Modelle registri-memoria Le 0 erazioni yen ODO ese uite tra un Ie 'stre e il conte- "::::,, t'
u 0 una cella eli n caso estremo di questc mo e 10 e a mac lOa i I,.
con un solo registro accumulatore
3
\ W1a soluzione adottata negli anni sessanta. , ,A .:
Le istruzioni nominano esplicitamente un solo operando in memoria, mentre l'al-
tIC operando eimplicitamente preso dar registro accumulatore, dove pure viene .,
depositato il risultato. II vantaggio ela compattezza del codice, contra una nan :ti
trascurabile rigidita. dovuta al fatto che tutto cleve passare per Paccumulatore. tit.
Naturalmente questa soluzione era giustificata dall'obiettivo di limitare i costi; di
" fatto i. a.nn
i
piu spesso
con differentl speclalizzazlOnl, e Ie Jstruzl0Dl dovevano Dommare esphcltamente
gli attri registri. NelParchitettura 8086 si parla di 8 registri di uso generale, anche
se poi tutti quanti hanna una lora specializzazione (err. Appendice B). Tra di '01'
essi c'e un registro, AX, che viene denominato accumulatore, sebbene non gada
dell'esclusivita di intervenire nelle operazioni aritmetiche. n termine di accumu- _' ..
latore deriva dal. che per . :.. ,
forza AX, mentre altn reglstn sono speclallzzatl III altre funzIOnI. OVVlamente,
le istruzioni 8086 devono nominare i registri implicati, compreso AX. }il
Madella registro-registro Questa modello preyede un blocco di regi- ',;ti.,
stri di usa generale s stanzialrnent . ollenti tra di loro e sern lid 0 erazioni .'.4..,
cancamen 0 e memorizzazione. Le operaziQni di manjpolazione deLdgli
sernpre e solo revstp come contenjtOFi degit-&perandi e deLti- ;':)J,'
esempio, A?D RA, .Re Ia
del contenuto. regJstn e RC e deposl.ta nsultato in RA.. L dl
una somma nchiede che pnma vengano cancatl RB e RC con gil addendl. .-
,f ,
..
In Figura2.16 si confrontano Ie Quattro prececlenti categorie in riferimento alIa
statement A: = B+C.
Nel modello a stack, non essendoci operandi espliciti, Ie istruzioni di manipola-
zione risultano molto compatte, can evidenti vantaggi in termini di occupazione di
memoria, aoche se ci sono Ie istruzioni di caricamento degli operandi sullo stack e
di memorizzazione del risultato in memoria. Complessivamente questa architettura e
quella che da luogo al pill alto traffico can la memoria. Bisogna infatti: (i) caricare gli
operandi sullo stack (lettura e scrittura per CiasCWl operando); (ii) eseguire l'opera-
zione sullo stack. (letture e scrittura)j (iii) depositare il risultato in memoria (Iettura e
33I1linguaggio ALGOL (Algorithmic Language), ormai in disuso, ebbe vasta influenza nel corso
degli anni sessanta.
34n prototipo di questa architettura eatato il minicalcolatore PDP-8.
\
I
\

[
I
I
I
t
\
I(
\

1
66 Capitola 2
livello
33
.
'"
":,,:1'
..)", '.
I. .-
-j
,
i .'
,
,

"
".. ",' ,
'.
"!
Elementi architetturah di base
67
,
Ftack
Registro-Registro I Memoria-Registro ' Memoria-Memoria I
PUSH B
LOAD Rl,B LOAD B ADD A,B,C
PUSH C
LOAD R2,C ADD C
ADD
ADD R3,Rl,R2 STORE A
POP A
STORE A,R3
35Negli anni settanta venne proposta una CPU, il Texas TMS9900, cbe aveva questa caratteristica:
per it programmatore la macchin& aveva un blocco di 16 registri, rna d.i fatto i registri erano in
memoria. In CPU c'era soltanto il alia posizione di partenza del blocco in memoria. Le
istru.zioni che nominavano i registri Ii rauiungevano attraverso tale puntatore. II va.otaggio di questa
a.rclutettura risiedeva nel fatto che era possibile "cambiare it contesto del progr<Unma." , doe i registri,
cambiando solo iI puntatore in CPU. Tale fatto risultava utile Del tratta.mento delle interruzioni e
nella realizzazione di aistemi a processi concorrenti. rna induceva sempre il carico dei riferimenti alIa
memoria.
Uno deg.li aspetti piu importanti di un'architettura e dato delle modalita. di indi-
rizzamento in memoria, ovvero come vengono raggiunti gli oggetti dell'elaborazione
(costanti, variabili) e come viene passato il controllo tra parti diverse di programma.
2.7 Indirjzzamento
. , .
scrittura). Rispetto a un'architettura a registri si triplicano gli accessi alia memoria.
Con' l'abbassarsi dei costi della memoria e con il divaricamento tra Ie prestazioni delle
CPU rispetto al queUe delle memorie, questa soluzione ha perso totalmente campo.
In Figura2.16 il modello memoria-memoria sembra essere quello pili efficiente
da! punta di vista dell'esecuzione e per quanto riguarda la compattezza del codice.
Anche questa modello, sebbene largamente caldeggiato negli anni settanta, non ha
avuto success0
35
. All'apparente efficienza carrisponde un gran traffico con 1a memoria,
sebbene inferiore a queUo del modello precedente, da cui derivano prestazioni scadenti,
oltre a complicazioni architetturali per 1a gestione dei tre indirizzamenti.
. .
" In conclusione i modelli registro-memoria e il modelio registro-registro sono quelli
prevalenti. La disponibilita di un ampio Dumero di registri consente al compilatore di
ottlmizzare i riferimenti alia memoria, tenendo Ie variabili nei registri stessi, riducendo
drasticamente il traffico con la memoria e semplificando la struttura delPindirizzamen-
to." Per esempio: una volta che una variabile estata caricata in un registro non c'e
necessita. di ricopiarla in memoria fino a che quel registro non si renda assolutamente
necessaria per altri scapi. Cia non e possibile ne col modelio a stack ne col modello
. .
memona-memona.
Figura 2.16 in aI. di esecuzione, per 10 st,atement di alto
livello' A:=B+C. 81 suppone che Ie Var18blh A e B non debbano essere modificate.
!'.
( :
"
.. ,
j
II

,
, ",'
'i'
,;;1.
;"'1
"
j:
...1
;.'"
,

'.
'r.::
t.,
-
>,"
'..
"
, .
,1'
"I
'd' '
,<
'4
:4 .
...,
"
.....
;;I' '
,

:> -',

Mode moria-mem9ria Sono state realizzate macchine in cui il modella di


elaborazione prevedeva e con una sola istruzione 180 CPU otesse' e
sis. Ie due POSlZIO 1 ntenenti Ii 0 er j... ",,::
nazione, sempre in mewopa. del risul...ta:U>. Ovviamente, il formata dell'istruzione ;':
creve precedere, oltre al codice di operazione
,
tIe campi per indiri?-zare Ie tre
posizioni in memoria.
- "'1
Modelle registri-memoria Le 0 erazioni yen ODO ese uite tra un Ie 'stre e il conte- "::::,, t'
u 0 una cella eli n caso estremo di questc mo e 10 e a mac lOa i I,.
con un solo registro accumulatore
3
\ W1a soluzione adottata negli anni sessanta. , ,A .:
Le istruzioni nominano esplicitamente un solo operando in memoria, mentre l'al-
tIC operando eimplicitamente preso dar registro accumulatore, dove pure viene .,
depositato il risultato. II vantaggio ela compattezza del codice, contra una nan :ti
trascurabile rigidita. dovuta al fatto che tutto cleve passare per Paccumulatore. tit.
Naturalmente questa soluzione era giustificata dall'obiettivo di limitare i costi; di
" fatto i. a.nn
i
piu spesso
con differentl speclalizzazlOnl, e Ie Jstruzl0Dl dovevano Dommare esphcltamente
gli attri registri. NelParchitettura 8086 si parla di 8 registri di uso generale, anche
se poi tutti quanti hanna una lora specializzazione (err. Appendice B). Tra di '01'
essi c'e un registro, AX, che viene denominato accumulatore, sebbene non gada
dell'esclusivita di intervenire nelle operazioni aritmetiche. n termine di accumu- _' ..
latore deriva dal. che per . :.. ,
forza AX, mentre altn reglstn sono speclallzzatl III altre funzIOnI. OVVlamente,
le istruzioni 8086 devono nominare i registri implicati, compreso AX. }il
Madella registro-registro Questa modello preyede un blocco di regi- ',;ti.,
stri di usa generale s stanzialrnent . ollenti tra di loro e sern lid 0 erazioni .'.4..,
cancamen 0 e memorizzazione. Le operaziQni di manjpolazione deLdgli
sernpre e solo revstp come contenjtOFi degit-&perandi e deLti- ;':)J,'
esempio, A?D RA, .Re Ia
del contenuto. regJstn e RC e deposl.ta nsultato in RA.. L dl
una somma nchiede che pnma vengano cancatl RB e RC con gil addendl. .-
,f ,
..
In Figura2.16 si confrontano Ie Quattro prececlenti categorie in riferimento alIa
statement A: = B+C.
Nel modello a stack, non essendoci operandi espliciti, Ie istruzioni di manipola-
zione risultano molto compatte, can evidenti vantaggi in termini di occupazione di
memoria, aoche se ci sono Ie istruzioni di caricamento degli operandi sullo stack e
di memorizzazione del risultato in memoria. Complessivamente questa architettura e
quella che da luogo al pill alto traffico can la memoria. Bisogna infatti: (i) caricare gli
operandi sullo stack (lettura e scrittura per CiasCWl operando); (ii) eseguire l'opera-
zione sullo stack. (letture e scrittura)j (iii) depositare il risultato in memoria (Iettura e
33I1linguaggio ALGOL (Algorithmic Language), ormai in disuso, ebbe vasta influenza nel corso
degli anni sessanta.
34n prototipo di questa architettura eatato il minicalcolatore PDP-8.
\
I
\

[
I
I
I
t
\
I(
\

,
'EI ....:
" . \
'.
\

j
1
\
I
I
I
\
\
\
t
1
69
i+8
i+4
1
Elementi architetturaJi di base
,
3 2
<ilJ' ?:: (:',

.. a ._--
,.__ ,t.,. "
"":":.;..., . ,.'
v .-.,
. -. ..
""'@f
J
:
,;:.....:
':F'"

2 ,'i'\"<
1
o .
, .
.
3 2 1 a
:
D'H' t
0"-,, t
t
In-,
Bus dati
37n significato del termine spiegato 301 Capitola 3.
..

...
2.7.2 Allineamento
'. Figura 2.18 Schema del collegamento della memoria al bus dei dati. Una parola allineata
: a.l generico indiiiz20 i richiede un solo accesso alIa memoria. La parola non allineata, tratteg.
giata in figura, ha la parte meno'significativa nei due byte piu significativi aHa posizione i+4
" e la parte pili significativa nei due byte meno significativi della posuione i+8. La sua lettura
. richiede due acce8si: uno per ciascuna meta.. Inoltre, siccome sui bus Ie posizioni risultano
scambiate, 130 CPU deve essere dotata delia logics. per riportare nella. giusta. p08izionele due
.
-
Nel trasferimento di una parola tra CPU e memoria 8i pone la questione se la parola
debba essere allineata, ovverO se debba trovarsi a un indirizzo divisibile per 4 0 se e
: coosentito che essa sia a qualunque indirizzo. Possiamo immaginare che una memoria
a 32 bit sia fatta di quattro banchi ciascuno dei quali contiene i byte corrispondenti
alla stessa posizione nella parola. In Figura2.18 viene mostrata una parola non alli-
neata, La sua letturajscrittura richiede almeno due cieli: prima per leggerejscrivere

atl'indirizzo i+4 e successivamente all'indirizzo i+8. E evidente che la doppia lettura


rappresenta un rallentamento e che si richiede la presenza della logica per rimettere
.. . in ordine i byte. Per questa ragione, l'allineamento erichiesto in molte architetture,
'in special modo nelle macchine RISC. Se viene tentata una lettura 0 una scrittura a
una parola non allineata viene generata uo'eccezione
37
. La dimensione del dato let-
tojscritto determina l'allineamento, Per Ie parole l'alLineamento ea indirizzi multipli
di 4, per Ie semiparole a indirizzi multipli di 2, per Ie doppie parole a indirizzi multipli
di 8.
altra situazione in cui l'ordine dei byte erilevante enell'uso di strumenti software per
it debug dei programrni , 0 nell'interpretazione dellistato corrispondente al codice di un
. .testa assembler, Consideriamo per esempio il numero esadecimale FFOO nel teste di
. un. programma assembler. Nel testa si incontra prima FF dI 00, dunque !'ordInamento
Big Endian preserva Porrline testuale, mentre Pordinamento Little Endian 10 rovescia
e una rappresentazione del contenuto della memoria (in orrline crescente di iodirizzo)
farebbe vedere prima 00 e quindi FF.
..

" I

.,
,
Ell EDdieD
0 I 2 3
4 5 6 7
o

di parole.
Liltle Enman
3 2 I 0
7

,
36
1 lennini Little Endian e Big Endian derivano da. un &rticolo apparso suI numero di Otlobre del
1981 di Computer[Coh81J. L'articalo aveva ispirato un'indimenticabile copertina del fascicolo stesso:
con esplicito richiamo ai viaggi di Gulliver, si fnostrava. una scena a fumetti
l
nelta quale un gruppo di
indiai:Li d'America (si noti l'equivoco suUa parola Indian), con facce molto perplesse, si domandavano
da quale parte si dovessera rampere Ie \lova - se dalla parte grossa (Big End) 0 dalla parte piccola
(Little End).
Figura 2.11 I due possibili ordinamenti entro una parola. Quando il byte che I'indirizzo
alia parola si trova. nella. posizione meno significativa si parla di Little Endian) quando si
trova nella posizione piu significativa si parla di Big Endian. Schematicamente ecome'se gli
indirizzj crescessero in versi opposti.
2.7.1 Ordinamento
,..
Praticamente tutte Ie macchine oggi prodotte assegnano gil indirizzi ai byte. In pas- ..
sate sono state castruite macchine in cui gli indirizzi si intendevano assegnati alle '!J
parole. Vesempio piu notevole resta probabilmente il CDC 6600, i1 primo supercom- "'.
puter della storia. Esso che prevedeva parole di 60 bit, ciascuna delle quali conteneva " :
10 "byte
Jl
di 6 bit. Ovviamente, non essendo previsto l'indirizzamento dei byte, Ie .. :
operazioni che Ii coinvolgevano, per esempio per il trattamento di informazioni alfa- :'J::
numeriche, richiedevano un arnpio uso di AND, OR ecc'
l
in modo cia pater isolare, " .
raggruppare, secondo convenienza i singoli gruppi di sei bit, In altre parole, trattare
stringhe di caratteri era aiquanto laborioso, rna, del restol la macchina non era stata ' "
castruita per tali finalita. Alcum minicalcolatori; per esempio quelli della serie 21xx
della Hewlett-Packard, leggevano e scrivevano in memoria sempre e solo parole di 16 . ,
bit; Ie istruzioni occupavano sempre e solo una parola. ;\':', "
Nelle macchine oggi in usc, pur essendo l'indirizzo riferito ai byte, eovviamente
possibile trasferire, oltre al singolo byte, dati di 16 bit (semiparola), di 32 bit (parola) . i}jl
e 64 bit (doppia parola), sempre che ii bus 10 consenta. :,;{it.
" .'
Se un'istruzione fa riferimento a un oggetto che non eun byte, si pone il problema I':::;!:;'
di come vengono presi gil altri byte che compongono l'oggetto stesso, oltre a queUo '.
che ne da l'indirizzo. Considerando per esempio i riferimenti a una parola, it byte che . '.
cia l'indirizzo alla parola econsiderato nella posizione meno significativa 0 in quella;:'1 i
pili significativa? La questione viene' illustrata in Figura 2.17. L'architettura Intel
adotta l'ordinamento Little Endian
36
; i Motorola 680xO quella Big Endian. Alcune '
architetture, tra cUi la PowerPC consentono d.i lisare Puno 0 Paltro, in base at valore dL
un bit del registro di stato che imposta il modo di funzionare della macchina [Jarn901
,j-!".
, " ," '"',
Indiri:zzo _:...-
.J

, (:, '.
d.
,,,,,ll. , .
-'I'
'-<J!,

:1;<-
'j';; ,

'-" '
. ,
,:!( ,
, ',.:,'
'
" 'I
.bt. '
"j"
"
'.

]1 .
II normale programmatore non ai accorge dell'ordinamento dei byte, ,a meno che )]:
non debba scambiare dati tra due macchine che adottano convenzioni diverse. Un '-
"

:. ,.: '
:.:' ..,
..
"""1

...
'" .
'j' .
,- .
'0..
,\t

"rtl
68 Capitolo 2
,
'EI ....:
"
. \
'.
\

j
1
\
I
I
I
\
\
\
t
1
69
i+8
i+4
1
Elementi architetturaJi di base
,
3 2
<ilJ' ?:: (:',

.. a ._--
,.__ ,t.,. "
"":":.;..., . ,.'
v .-.,
. -. ..
""'@f
J
:
,;:.....:
':F'"


2 ,'i'\"<
1
o .
, .
.
3 2 1 a
:
D'H' t
0"-,, t
t
In-,
Bus dati
37n significato del termine spiegato 301 Capitola 3.
..

...
2.7.2 Allineamento
'. Figura 2.18 Schema del collegamento della memoria al bus dei dati. Una parola allineata
: a.l generico indiiiz20 i richiede un solo accesso alIa memoria. La parola non allineata, tratteg.
giata in figura, ha la parte meno'significativa nei due byte piu significativi aHa posizione i+4
" e la parte pili significativa nei due byte meno significativi della posuione i+8. La sua lettura
. richiede due acce8si: uno per ciascuna meta.. Inoltre, siccome sui bus Ie posizioni risultano
scambiate, 130 CPU deve essere dotata delia logics. per riportare nella. giusta. p08izionele due
.
-
Nel trasferimento di una parola tra CPU e memoria 8i pone la questione se la parola
debba essere allineata, ovverO se debba trovarsi a un indirizzo divisibile per 4 0 se e
: coosentito che essa sia a qualunque indirizzo. Possiamo immaginare che una memoria
a 32 bit sia fatta di quattro banchi ciascuno dei quali contiene i byte corrispondenti
alla stessa posizione nella parola. In Figura2.18 viene mostrata una parola non alli-
neata, La sua letturajscrittura richiede almeno due cieli: prima per leggerejscrivere

atl'indirizzo i+4 e successivamente all'indirizzo i+8. E evidente che la doppia lettura


rappresenta un rallentamento e che si richiede la presenza della logica per rimettere
.. . in ordine i byte. Per questa ragione, l'allineamento erichiesto in molte architetture,
'in special modo nelle macchine RISC. Se viene tentata una lettura 0 una scrittura a
una parola non allineata viene generata uo'eccezione
37
. La dimensione del dato let-
tojscritto determina l'allineamento, Per Ie parole l'alLineamento ea indirizzi multipli
di 4, per Ie semiparole a indirizzi multipli di 2, per Ie doppie parole a indirizzi multipli
di 8.
altra situazione in cui l'ordine dei byte erilevante enell'uso di strumenti software per
it debug dei programrni , 0 nell'interpretazione dellistato corrispondente al codice di un
. .testa assembler, Consideriamo per esempio il numero esadecimale FFOO nel teste di
. un. programma assembler. Nel testa si incontra prima FF dI 00, dunque !'ordInamento
Big Endian preserva Porrline testuale, mentre Pordinamento Little Endian 10 rovescia
e una rappresentazione del contenuto della memoria (in orrline crescente di iodirizzo)
farebbe vedere prima 00 e quindi FF.
..

" I

.,
,
Ell EDdieD
0 I 2 3
4 5 6 7
o

di parole.
Liltle Enman
3 2 I 0
7

,
36
1 lennini Little Endian e Big Endian derivano da. un &rticolo apparso suI numero di Otlobre del
1981 di Computer[Coh81J. L'articalo aveva ispirato un'indimenticabile copertina del fascicolo stesso:
con esplicito richiamo ai viaggi di Gulliver, si fnostrava. una scena a fumetti
l
nelta quale un gruppo di
indiai:Li d'America (si noti l'equivoco suUa parola Indian), con facce molto perplesse, si domandavano
da quale parte si dovessera rampere Ie \lova - se dalla parte grossa (Big End) 0 dalla parte piccola
(Little End).
Figura 2.11 I due possibili ordinamenti entro una parola. Quando il byte che I'indirizzo
alia parola si trova. nella. posizione meno significativa si parla di Little Endian) quando si
trova nella posizione piu significativa si parla di Big Endian. Schematicamente ecome'se gli
indirizzj crescessero in versi opposti.
2.7.1 Ordinamento
,..
Praticamente tutte Ie macchine oggi prodotte assegnano gil indirizzi ai byte. In pas- ..
sate sono state castruite macchine in cui gli indirizzi si intendevano assegnati alle '!J
parole. Vesempio piu notevole resta probabilmente il CDC 6600, i1 primo supercom- "'.
puter della storia. Esso che prevedeva parole di 60 bit, ciascuna delle quali conteneva " :
10 "byte
Jl
di 6 bit. Ovviamente, non essendo previsto l'indirizzamento dei byte, Ie .. :
operazioni che Ii coinvolgevano, per esempio per il trattamento di informazioni alfa- :'J::
numeriche, richiedevano un arnpio uso di AND, OR ecc'
l
in modo cia pater isolare, " .
raggruppare, secondo convenienza i singoli gruppi di sei bit, In altre parole, trattare
stringhe di caratteri era aiquanto laborioso, rna, del restol la macchina non era stata ' "
castruita per tali finalita. Alcum minicalcolatori; per esempio quelli della serie 21xx
della Hewlett-Packard, leggevano e scrivevano in memoria sempre e solo parole di 16 . ,
bit; Ie istruzioni occupavano sempre e solo una parola. ;\':', "
Nelle macchine oggi in usc, pur essendo l'indirizzo riferito ai byte, eovviamente
possibile trasferire, oltre al singolo byte, dati di 16 bit (semiparola), di 32 bit (parola) . i}jl
e 64 bit (doppia parola), sempre che ii bus 10 consenta. :,;{it.
" .'
Se un'istruzione fa riferimento a un oggetto che non eun byte, si pone il problema I':::;!:;'
di come vengono presi gil altri byte che compongono l'oggetto stesso, oltre a queUo '.
che ne da l'indirizzo. Considerando per esempio i riferimenti a una parola, it byte che . '.
cia l'indirizzo alla parola econsiderato nella posizione meno significativa 0 in quella;:'1 i
pili significativa? La questione viene' illustrata in Figura 2.17. L'architettura Intel
adotta l'ordinamento Little Endian
36
; i Motorola 680xO quella Big Endian. Alcune '
architetture, tra cUi la PowerPC consentono d.i lisare Puno 0 Paltro, in base at valore dL
un bit del registro di stato che imposta il modo di funzionare della macchina [Jarn901
,j-!".
, " ," '"',
Indiri:zzo _:...-
.J

, (:, '.
d.
,,,,,ll. , .
-'I'
'-<J!,

:1;<-
'j';; ,

'-" '
. ,
,:!( ,
, ',.:,'
'
" 'I
.bt. '
"j"
"
'.

]1 .
II normale programmatore non ai accorge dell'ordinamento dei byte, ,a meno che )]:
non debba scambiare dati tra due macchine che adottano convenzioni diverse. Un '-
"

:. ,.: '
:.:'
..,
..
"""1

...
'" .
'j' .
,- .
'0..
,\t

"rtl
68 Capitolo 2
71
Elementi architetturali di base
10p[pl'ND I
I op IPb IP,d I IND I
Figura 2.19 Possibili formati di istruzioni che indirizzano la memoria. U campo IND
contiene l'indirizzo, Questo campo e di norma insufficiente a rappresentare la dimensione
roassiroa della memoria e per consentire un indirizzamento piu ampio di quanto esso permet-
tao Se per esempio la macchina ha. un bus di indirizzi a 32 bit e Ie istruzioni sono su 32 bit
eindubbio che la dimensione del campo INn delPistruzione in alto sara. comunque inferiore
a 32. Occorre prevedere uno schema in cui IND esolo una componente dell'indiriz.zo ca1co-
lato dalla CPU. Nel caso dell'istruzione in basso l'indirizzo viene calcolato come somma del
contenuto del campo IND e del contenuto del registro; Rb. L'interpretazione di INn dipende
dallo schema di indirizzamento, nel senso che esso pub rappresentare uno scosta.mento 0 un
indirizzo assoluto,
"1""
-/l.....
.,- ,

....',"
Capitolo 2
2.7.3 Indirizzamento dei dati
.."
,
, ij
"1
+,.
,. ...,! :
.,
'.,.
".13
.i, ,-
"', .
,..:, ,
.. \'
':.
li;\ .' -', . ,
"', ..
"I;. ' ,':
.,.
-':9 ;
....
." ..
;'
":..; .
'''ji
....
"
-, "
,
" ., .
.- ".... ,
; \
','
,I'
(iJ ;' .
,""1 .
',::r1"" ,
" .. .,.
,.:;,; ..
-'('" j',',
,..
,.
" ,\
,::' la finestra segue l'esecuzione del programma stesso. nPDP 8 adottava questa tecnica,
:,', ".,. anChe se la finestra indirizzabile era di soli 256 byte
38
.' Nelle architetture correnti si preferisce interpretare IND come uno scostamento
",;\ rispetto ad altri registri, mentre il PC funge cia riferimento solo ed esclusivamente
f,.:., per Ie istruzioni di saito. L'ulteriore registro cleve essefe rappresentato nel codice di
; -'.' lstruzione e quindi, a parita di dimensione dell'istruzione il campo IND si riduce
1
come
:.. .. ,":.' 'indicato nella parte inferiore eli Figura2.19. L'istruzione diventa, per
, esempio
1
LD Rl,var(R2)1 cOll'Rl come Rsd (parte bassa dl Flgura2.19), e con R2
.. .... : come Rb.. .
Esiste Wla varieta di modi per Pindirizzamento dei dati in memoria. Per prima co- ,', ';,,' Sqrge qui un problema: in base a Quale riferirnento puo il compilatore (l'assem-
sa analizziamo i1 problema della codifica dell'indirizzo di memoria nel codice delle .. olatore) calcolare IND per var?
istruzioni e nella sua interpretazione, ,2':,,:; , ",., Supponiamo che la memoria sia lineare
1
ovvem che 1a memoria sia un blocco
Facciamo riferimento a una macchina del tipo registri-memoria e consideriaroo indifferenziato di celIe, dall'indirizzo 0 a.lPindirizzo M-l. La COS3 pili
un'istruzione come LD RA, var, dove var eil nome simbolico di una generica posizione' 'naturale eipotizzare che l'assemblatore determini l'indirizzo d.i var rispetto all'indiriz-
in il, foqnato tre caI:?Pi, di 'zb 0,. assunto convenzionalmente come base eli dell'intero e che
uno dedicato al codlce di operazlOne LD, uno de<hcato alia codifica del regtstro RA,lI ",' \P;;';""" aU'atto del caricamento del programma in memona 11 campo IND venga aggmstato
terzo dedicato a .conte?er.e l'indirizzo di var, con un formato come quello mostrato in mod? da tener in memoria. Questo viene
nella parte supenore dl Flgura2.19. ,:,:-0..: -::, etto r;locamento 0 (Flgura2.20) ed e svolto da un programma dl SIstema
Conviene introdurre il concetto eli indirizzo effettivo (effective address) (EA). ' '.. <:: ..,.,
, ., ,- .,' ...
Con questa termine si indica il valore che risulta da! calcolo dell'indirizzo attraverso 38' . .. .. . ., .
i componenti espliciti rappresentati nel codice di istruzione. Per esernpio: nel caso ;':'1 :;;"; ',,' _, . A.tltolo dl 91 .Sol,uzlOne adottata. dal HP della sene 21xx"
,_ .. .. ,. .,. t j;' '.' macchma era a 16 bit; IstruzlOm e mdinzzl sempre su 16 bit, La memon3o era concettualmente divisa
m 1 edato da! campo IND, men re in pagine di 4kbyte in posizioni fisse. Si distingueva Ia. pogina corrente (quella. in cui si trovava il
nel caso delllStrUZlone infenore, IlDdmzzo effettlvo e dato dalla somma del contento "controllo) dalla pagina bale 0 pagina zero (Ia prima. neUo spazio di memoria). 11 campo IND era
del campo IND con il contenuto eli Rb. Come vedremo, l'indirizzo effettivo puo a no '--, '" ' bit, a 4kbyte, e veniv,a come assoluto. Un ulteriore
coincidere COD l'indirizzo fisko . l'lndlrlzZO era da continderare In pagma. corrente 0 ID paSlua base. Con questo artificlO,
. . .. , ..,' .' .. ". un dovunque si t.rovasse, poteva indirizzare dirett.amente 8 kbyte, di cui 4kbyte nella
Una maruera per superare la lllmtazlOne da.ta dalla dlmenslOne dl lND conslste ,'.','1: to ," paglna corrente e 4kbyte nella pagina base. Era inoltre prevista la modalita. di indirizzamento
nelllinterpretare questa campo non come un indir.izzo effettivo, rna come uno scosta- :. :.' '.'. rispetto 301 contenuto di memoria; per esempio, l'iatruzione LDA mem,! caricava nel registro
mento rispetto a un registro eli riferimento. Immediatamente viene da pensare a PC '>. A It della di memoria. ii. cui era contenut.o in .mem.. Struttando la
com revl!=:tro eli riferimento e assumere che IND rappresenti 10 scostamento dell'og- ';:$ ;,":,:,:-t. ,':' e lln?l.nzza.:m
ento
. mdlretto ,?osslblle qualunque Bastava:
e . 0-:. . . ,.'. . In una pOSIZlone In paglOa base l'mdlrlzzo da raggluogere e programmare un IDdmzzamenw lOdlretto
getto lOdinzzato nspetto a PC stesso. Naturalmente IND deve essere mterpretato .'f-:.f. :.,.... ,', ,.,,:',.. attraverso tale posizione, Era cib che faceva it Linker nel cancare i programmi in memoria: quando
come un numero intero con segno, in modo da consentire di indirizzare in avanti 0 i' :.:: \-','. - $Contin3ova i limitidella pagina corrente, veniva modifica.ta l'istruzione rendendola.
dietro. Si determina doe una finestra entro cui il programma indirizza direttamente e IOdlretta. attraverso la pagina base dove veniva generate l'indirizzo desiderato.
,,','- ,
. ".'
.,
Anc;:he se 130 macchina impone il vincolo deWallineamento, resta comunque la pOIr
sibilita. the possano essere effettuati trasferimenti tra CPU e memoria di singoli byte
o mezze parole. Cio impone una rete per posizionare queste quantita. Per esempio,
l'istruzione di memorizzazione di un byte (STB) prevede normalmente che il byte
no signiticativo di un registro possa essere memorizzato a qualsivoglia indirizzo
1
senza
modificare il contenuto degli altri byte della parola che corrisponde a tale indirizzo.
Si tratta dunque eli allineare il byte dalla posizione 0 (quella clie ha nel registro) a
una qualunque delle quattro posizioni in una parola. Supponendo per esempio che
debba finire nella posizione 2, 180 rete di allineamento deve provvedere a presentare il
data sulle linee D
23
_
16
e non su D
7
_
0
. .
Nella discussione precedente ci siamo riferiti alia lettura/scrittura dei dati, La
questione dell'allineamento si pone anche in riferimento al prelievo delle istruzioni. Le
macchine RISe hanno istruzioni tutte lunghe una parola (in certi casi anche due) e
quindi sono di per se allineate. Un salto a una posizione non allineata iene conside
rata come un malfunzionamento e determina un'eccezione. Le rnacchine elSe hanno
istruzioni di diversa lunghezza, tuttavia la lettura avviene quanto possibile per
parole allineate. Conviene ricordare che nel caso dell'8086
1
se un saito porta a un
indirizzo dispari (la macchina ha parole di 2 byteL 1a logica di pre1evamento leggeva
prima un solo byte, in modo da riportarsi nella situazione di pater leggere a parole
(Cfr. Appenelice B).
70
(
(
\
I
,\
I

I,
I,
i
j
\
, I
71
Elementi architetturali di base
10p[pl'ND I
I op IPb IP,d I IND I
Figura 2.19 Possibili formati di istruzioni che indirizzano la memoria. U campo IND
contiene l'indirizzo, Questo campo e di norma insufficiente a rappresentare la dimensione
roassiroa della memoria e per consentire un indirizzamento piu ampio di quanto esso permet-
tao Se per esempio la macchina ha. un bus di indirizzi a 32 bit e Ie istruzioni sono su 32 bit
eindubbio che la dimensione del campo INn delPistruzione in alto sara. comunque inferiore
a 32. Occorre prevedere uno schema in cui IND esolo una componente dell'indiriz.zo ca1co-
lato dalla CPU. Nel caso dell'istruzione in basso l'indirizzo viene calcolato come somma del
contenuto del campo IND e del contenuto del registro; Rb. L'interpretazione di INn dipende
dallo schema di indirizzamento, nel senso che esso pub rappresentare uno scosta.mento 0 un
indirizzo assoluto,
"1""
-/l.....
.,- ,

....',"
Capitolo 2
2.7.3 Indirizzamento dei dati
.."
,
, ij
"1
+,.
,. ...,! :
.,
'.,.
".13
.i, ,-
"', .
,..:, ,
.. \'
':.
li;\ .' -', . ,
"', ..
"I;. ' ,':
.,.
-':9 ;
....
." ..
;'
":..; .
'''ji
....
"
-, "
,
" ., .
.- ".... ,
; \
','
,I'
(iJ ;' .
,""1 .
',::r1"" ,
" .. .,.
,.:;,; ..
-'('" j',',
,..
,.
" ,\
,::' la finestra segue l'esecuzione del programma stesso. nPDP 8 adottava questa tecnica,
:,', ".,. anChe se la finestra indirizzabile era di soli 256 byte
38
.' Nelle architetture correnti si preferisce interpretare IND come uno scostamento
",;\ rispetto ad altri registri, mentre il PC funge cia riferimento solo ed esclusivamente
f,.:., per Ie istruzioni di saito. L'ulteriore registro cleve essefe rappresentato nel codice di
; -'.' lstruzione e quindi, a parita di dimensione dell'istruzione il campo IND si riduce
1
come
:.. .. ,":.' 'indicato nella parte inferiore eli Figura2.19. L'istruzione diventa, per
, esempio
1
LD Rl,var(R2)1 cOll'Rl come Rsd (parte bassa dl Flgura2.19), e con R2
.. .... : come Rb.. .
Esiste Wla varieta di modi per Pindirizzamento dei dati in memoria. Per prima co- ,', ';,,' Sqrge qui un problema: in base a Quale riferirnento puo il compilatore (l'assem-
sa analizziamo i1 problema della codifica dell'indirizzo di memoria nel codice delle .. olatore) calcolare IND per var?
istruzioni e nella sua interpretazione, ,2':,,:; , ",., Supponiamo che la memoria sia lineare
1
ovvem che 1a memoria sia un blocco
Facciamo riferimento a una macchina del tipo registri-memoria e consideriaroo indifferenziato di celIe, dall'indirizzo 0 a.lPindirizzo M-l. La COS3 pili
un'istruzione come LD RA, var, dove var eil nome simbolico di una generica posizione' 'naturale eipotizzare che l'assemblatore determini l'indirizzo d.i var rispetto all'indiriz-
in il, foqnato tre caI:?Pi, di 'zb 0,. assunto convenzionalmente come base eli dell'intero e che
uno dedicato al codlce di operazlOne LD, uno de<hcato alia codifica del regtstro RA,lI ",' \P;;';""" aU'atto del caricamento del programma in memona 11 campo IND venga aggmstato
terzo dedicato a .conte?er.e l'indirizzo di var, con un formato come quello mostrato in mod? da tener in memoria. Questo viene
nella parte supenore dl Flgura2.19. ,:,:-0..: -::, etto r;locamento 0 (Flgura2.20) ed e svolto da un programma dl SIstema
Conviene introdurre il concetto eli indirizzo effettivo (effective address) (EA). ' '.. <:: ..,.,
, ., ,- .,' ...
Con questa termine si indica il valore che risulta da! calcolo dell'indirizzo attraverso 38' . .. .. . ., .
i componenti espliciti rappresentati nel codice di istruzione. Per esernpio: nel caso ;':'1 :;;"; ',,' _, . A.tltolo dl 91 .Sol,uzlOne adottata. dal HP della sene 21xx"
,_ .. .. ,. .,. t j;' '.' macchma era a 16 bit; IstruzlOm e mdinzzl sempre su 16 bit, La memon3o era concettualmente divisa
m 1 edato da! campo IND, men re in pagine di 4kbyte in posizioni fisse. Si distingueva Ia. pogina corrente (quella. in cui si trovava il
nel caso delllStrUZlone infenore, IlDdmzzo effettlvo e dato dalla somma del contento "controllo) dalla pagina bale 0 pagina zero (Ia prima. neUo spazio di memoria). 11 campo IND era
del campo IND con il contenuto eli Rb. Come vedremo, l'indirizzo effettivo puo a no '--, '" ' bit, a 4kbyte, e veniv,a come assoluto. Un ulteriore
coincidere COD l'indirizzo fisko . l'lndlrlzZO era da continderare In pagma. corrente 0 ID paSlua base. Con questo artificlO,
. . .. , ..,' .' .. ". un dovunque si t.rovasse, poteva indirizzare dirett.amente 8 kbyte, di cui 4kbyte nella
Una maruera per superare la lllmtazlOne da.ta dalla dlmenslOne dl lND conslste ,'.','1: to ," paglna corrente e 4kbyte nella pagina base. Era inoltre prevista la modalita. di indirizzamento
nelllinterpretare questa campo non come un indir.izzo effettivo, rna come uno scosta- :. :.' '.'. rispetto 301 contenuto di memoria; per esempio, l'iatruzione LDA mem,! caricava nel registro
mento rispetto a un registro eli riferimento. Immediatamente viene da pensare a PC '>. A It della di memoria. ii. cui era contenut.o in .mem.. Struttando la
com revl!=:tro eli riferimento e assumere che IND rappresenti 10 scostamento dell'og- ';:$ ;,":,:,:-t. ,':' e lln?l.nzza.:m
ento
. mdlretto ,?osslblle qualunque Bastava:
e . 0-:. . . ,.'. . In una pOSIZlone In paglOa base l'mdlrlzzo da raggluogere e programmare un IDdmzzamenw lOdlretto
getto lOdinzzato nspetto a PC stesso. Naturalmente IND deve essere mterpretato .'f-:.f. :.,.... ,', ,.,,:',.. attraverso tale posizione, Era cib che faceva it Linker nel cancare i programmi in memoria: quando
come un numero intero con segno, in modo da consentire di indirizzare in avanti 0 i' :.:: \-','. - $Contin3ova i limitidella pagina corrente, veniva modifica.ta l'istruzione rendendola.
dietro. Si determina doe una finestra entro cui il programma indirizza direttamente e IOdlretta. attraverso la pagina base dove veniva generate l'indirizzo desiderato.
,,','- ,
. ".'
.,
Anc;:he se 130 macchina impone il vincolo deWallineamento, resta comunque la pOIr
sibilita. the possano essere effettuati trasferimenti tra CPU e memoria di singoli byte
o mezze parole. Cio impone una rete per posizionare queste quantita. Per esempio,
l'istruzione di memorizzazione di un byte (STB) prevede normalmente che il byte
no signiticativo di un registro possa essere memorizzato a qualsivoglia indirizzo
1
senza
modificare il contenuto degli altri byte della parola che corrisponde a tale indirizzo.
Si tratta dunque eli allineare il byte dalla posizione 0 (quella clie ha nel registro) a
una qualunque delle quattro posizioni in una parola. Supponendo per esempio che
debba finire nella posizione 2, 180 rete di allineamento deve provvedere a presentare il
data sulle linee D
23
_
16
e non su D
7
_
0
. .
Nella discussione precedente ci siamo riferiti alia lettura/scrittura dei dati, La
questione dell'allineamento si pone anche in riferimento al prelievo delle istruzioni. Le
macchine RISe hanno istruzioni tutte lunghe una parola (in certi casi anche due) e
quindi sono di per se allineate. Un salto a una posizione non allineata iene conside
rata come un malfunzionamento e determina un'eccezione. Le rnacchine elSe hanno
istruzioni di diversa lunghezza, tuttavia la lettura avviene quanto possibile per
parole allineate. Conviene ricordare che nel caso dell'8086
1
se un saito porta a un
indirizzo dispari (la macchina ha parole di 2 byteL 1a logica di pre1evamento leggeva
prima un solo byte, in modo da riportarsi nella situazione di pater leggere a parole
(Cfr. Appenelice B).
70
(
(
\
I
,\
I

I,
I,
i
j
\
, I

\
\
I
\
\

\
\
t
I
f
1
f


,
,
I v",
,
to R1,160 R2
,
Rei. Selmenl
)
.+4
x+160
-
40Nel caso di mac:chine che prevedono un regislro nella formazione deU'indiriz'l:O (Cfr .2,14) questa.
istruzione prevede Puso del registro RO, il cui contenuto epermanentemente 0, oppure la soluzione
indicata a pagina 63,
160 I v", \
'"'
Rl.x+180 R2
o

Programma rilooato in mlmorl..


x+44
x+160
Spllzio desl! indirizzl
f LD Rl'160CR29
180 I var I
Ca.pitolo 2
!liE it modello della CPU 8086, mantenuto in tutte CPU che Ie hanna falto seguito,
l'Appendice B.
lcun odalita d" .. amen i Vediamo ora alcune delle p05sibili
rna alita. di in ' izzamento che e dato di trovare nella pratica industriale, Alcune di
queste, non sono propriamente delle modalita di indirizzamento in memoria.
':i, E I
44 1.0 Rl.160(R2)
,.:, ...., 0
, Spa:z.io dllaU Indlrlni Proaramm.. riloc.. lo 10 memona
'''-;1 :'. :,", Figura 2,21. di in uno spazio di. I
,.,;3 ',. ,"'., relativi agli mdmZZ1, calcola.tl asselIl;blatore 0 da:I m nfenmento alla.
.r9f. "'-' '., ,,:' " z'one convenzionale 0, non necesslta.nO di essere modificat1. Per tener conto della poslzlone
-;":,& ".,'. "\'>.' . d\ caricamento del programma viene usa.to un regi3tro di "egmento. Naturalmente I'esecu
,:. '. ',," <,Y>" zione dell'istruzione richiede venga prima calcola.to l'indirizzo effettivo come
'F' 220 lli1 ' di ' 'd' .. ,." ;]1 , ' . ' 'contenuti del campo IND e dl Rb e che questa vengs. sommato a1 contenuto del reglstro dl
19w-a. ocazlone un programma tn uno SpazlO 1 memoria hneare. I ca.mpi .' - ' ;." d' J" di . tis" .
I
" Ii' ..1:_' , d I .. .. -) gmento per etermmare m nzzo ICO in memona..
re ag sanD calcolatl , aJ a daJ m riferimento alla :'-" ... ' se ..
pOSLZlOne conveuzlonale 0 nello SpazlO degh mdinZZl, AlFatto del cancamenta in memoria .. '.
questi campi vengona modificati in modo da tener conto della posizione eli caricamento dei ;:, .. (" .." " .. ' d' tt E" I' " li di' diriz' t ' . '1
programma in memoria (indicata con x). .' ,:,'." .. IndU'lzzamento Ire 0 a lorma ce zamen ill memona, 1
:'i1' :, .. ' '. campo rnu Vlene mterpretato come tndirizzo effettlvo
40
. EsemplO:
..>'. ,,' LO R1 var 'EA = INo ovviamente R1 +- M[EA]
'-._. ' ,"
'tm' '
L'altro modelio di memoria e queUe segmentato
39
, In esso si assume che 1a ;" ,w.dirizzamento rcla.tivo ai registri Come discusso in precedenza l'indirizzo ef-
sia divisa in posizioni e e che ci siano alcuni i1 ,:. " fettivo. viene calcolato come somma di IND e del contenuto del registro r!
regtstn al dl contengano 1mdinzzo dl partenza (la base) dei .. ,\'. ,''Esemplo:
segmentl, mdicate 10 n segt;nentato cerrisponde meglio ,:( '... " "81 var(R2) ,R5 i EA = IND + R2.
del modeno lineare alla semantlca del programnu, in quante permette la naturale '., " .:'" .', '
suddivisione in parte di controllo, parte dati, stack e altro. Naturalmente introduce .:F", , .','" ... in ,'. mento indiretto ris et . re 'stri Simile aJ caso precedente, masen-
un certo grade di complessita.: bisogna tener presente che i registri di segmento sono }O '-",",' :., "".. ' ,za un campo III nzzo nell'istruzione, Esempio:
sempre dietro la scena e ogni generato un, <,:":'.'.: '. 'Lo 'R1, (R2) i EA = R2_
A parte questa compbcazlOne, tutte Ie tecmche dl mdlnzzarnento usablh nel mo- ,'/. '.' .. .... .. . .
della lineare sana trasportabili al modelio segmentato. Per questa motivo si usa il '-: I elatlVo e mdicla e c agglUnge un
termine di indirizzo effettive (EA) per indicare Pindirizzo calcolato della CPU at. " ' '.do registro con la funzione di indice. E molto conveniente quando si ha' ache
traverso 1a sua espressione esplicita nell'istruzione
,
indipendentemente dalla I, I fare con strutture dati (vettori, matrici ecc.): nell'indirizzc;u-e it generico elemen-
dei registri di segmento. Se 1a memoria e lineare, l'indirizzo effettivo corrisponde a . to, si fa fare al secondo registro la funziene di indice nella struttura, scaJando in
quello fisico, se 1a memoria esegmentata Pindirizzo effettivo cleve essere sommato al :f.i ' base alia dimensione delPelemento stesso. Esempio:
contenuto del registro di segmento per ottenere l'indirizzo fisico. .' ",.' LD Rt, var(R2) (RX) ;'EA = IND+R2+RX*d, d ela dimensione dell'elemento.
, ., ....
" ,
;: -, " I..!.ldirizzamwo iudirettp rjspwo aj resist.; cop Consente eli
:, incrementare automaticamente il contenuto del registro. Anche questa eutile per
,. it modo gli elem,enti di una tabella, Esiate una versione
.. ; ,. che decrementa, EsemplO:
LD Rl, (R2) + ; EA = R2, R2 l- R2+d, deJa dimensione dell'elemento,
'@I '
,i. '.
.. ,
'. ,
"f" ,
'v"
Si veda. 11 "'
"-
,
72
',';;:;;''' I"': ..
.,
.. 0",","
",- "
':.... , .'-
'l-' .
,. ..... t,;'
Elementi architett'urali di base 73
:;;1 , ',<:'", ,':..-:.--_-------====-=-=-'-"------
::d
,.;..1 ,,:";i':('..."" ;
"., ..
di solito indicato come Linker. Naturalmente spetta al programmatore assembler, "'. ::',
ovvero al compilatore, 1a responsabilita circa il significato de1l'indirizzamento relativo' ", :,n' ',.
a un registro (ovvero} che cosa. viene effettivamente inci.irizzato). ': ..\-:: '.. ",
."'\ ' '
.. . , .. ' .
.'" . .",
, ' ,
,
, ... '.'
.,
, ,
.'.'

\
\
I
\
\

\
\
t
I
f
1
f


,
,
I
v",
,
to
R1,160 R2
,
Rei. Selmenl
)

.+4
x+160
-
40Nel caso di mac:chine che prevedono un regislro nella formazione deU'indiriz'l:O (Cfr .2,14) questa.
istruzione prevede Puso del registro RO, il cui contenuto epermanentemente 0, oppure la soluzione
indicata a pagina 63,
160 I v", \
'"'
Rl.x+180 R2
o

Programma rilooato in mlmorl..


x+44
x+160
Spllzio desl! indirizzl
f LD Rl'160CR29
180 I var I
Ca.pitolo 2
!liE it modello della CPU 8086, mantenuto in tutte CPU che Ie hanna falto seguito,
l'Appendice B.
lcun odalita d" .. amen i Vediamo ora alcune delle p05sibili
rna alita. di in ' izzamento che e dato di trovare nella pratica industriale, Alcune di
queste, non sono propriamente delle modalita di indirizzamento in memoria.
':i, E I
44 1.0 Rl.160(R2)
,.:, ...., 0
, Spa:z.io dllaU Indlrlni Proaramm.. riloc.. lo 10 memona
'''-;1 :'. :,", Figura 2,21. di in uno spazio di. I
,.,;3 ',. ,"'., relativi agli mdmZZ1, calcola.tl asselIl;blatore 0 da:I m nfenmento alla.
.r9f. "'-' '., ,,:' " z'one convenzionale 0
,
non necesslta.nO di essere modificat1. Per tener conto della poslzlone
-;":,& ".,'. "\'>.' . d\ caricamento del programma viene usa.to un regi3tro di "egmento. Naturalmente I'esecu
,:. '. ',," <,Y>" zione dell'istruzione richiede venga prima calcola.to l'indirizzo effettivo come
'F' 220 lli1 ' di ' 'd' .. ,." ;]1 , ' . ' 'contenuti del campo IND e dl Rb e che questa vengs. sommato a1 contenuto del reglstro dl
19w-a. ocazlone un programma tn uno SpazlO 1 memoria hneare. I ca.mpi .' - ' ;." d' J" di . tis" .
I
" Ii' ..1:_' , d I .. .. -) gmento per etermmare m nzzo ICO in memona..
re ag sanD calcolatl , aJ a daJ m riferimento alla :'-" ... ' se ..
pOSLZlOne conveuzlonale 0 nello SpazlO degh mdinZZl, AlFatto del cancamenta in memoria .. '.
questi campi vengona modificati in modo da tener conto della posizione eli caricamento dei ;:, .. (" .." " .. ' d' tt E" I' " li di' diriz' t ' . '1
programma in memoria (indicata con x). .' ,:,'." .. IndU'lzzamento Ire 0 a lorma ce zamen ill memona, 1
:'i1' :, .. ' '. campo rnu Vlene mterpretato come tndirizzo effettlvo
40
. EsemplO:
..>'. ,,' LO R1 var 'EA = INo ovviamente R1 +- M[EA]
'-._. ' ,"
'tm' '
L'altro modelio di memoria e queUe segmentato
39
, In esso si assume che 1a ;" ,w.dirizzamento rcla.tivo ai registri Come discusso in precedenza l'indirizzo ef-
sia divisa in posizioni e e che ci siano alcuni i1 ,:. " fettivo. viene calcolato come somma di IND e del contenuto del registro r!
regtstn al dl contengano 1mdinzzo dl partenza (la base) dei .. ,\'. ,''Esemplo:
segmentl, mdicate 10 n segt;nentato cerrisponde meglio ,:( '... " "81 var(R2) ,R5 i EA = IND + R2.
del modeno lineare alla semantlca del programnu, in quante permette la naturale '., " .:'" .', '
suddivisione in parte di controllo, parte dati, stack e altro. Naturalmente introduce .:F", , .','" ... in ,'. mento indiretto ris et . re 'stri Simile aJ caso precedente, masen-
un certo grade di complessita.: bisogna tener presente che i registri di segmento sono }O '-",",' :., "".. ' ,za un campo III nzzo nell'istruzione, Esempio:
sempre dietro la scena e ogni generato un, <,:":'.'.: '. 'Lo 'R1, (R2) i EA = R2_
A parte questa compbcazlOne, tutte Ie tecmche dl mdlnzzarnento usablh nel mo- ,'/. '.' .. .... .. . .
della lineare sana trasportabili al modelio segmentato. Per questa motivo si usa il '-: I elatlVo e mdicla e c agglUnge un
termine di indirizzo effettive (EA) per indicare Pindirizzo calcolato della CPU at. " ' '.do registro con la funzione di indice. E molto conveniente quando si ha' ache
traverso 1a sua espressione esplicita nell'istruzione
,
indipendentemente dalla I, I fare con strutture dati (vettori, matrici ecc.): nell'indirizzc;u-e it generico elemen-
dei registri di segmento. Se 1a memoria e lineare, l'indirizzo effettivo corrisponde a . to, si fa fare al secondo registro la funziene di indice nella struttura, scaJando in
quello fisico, se 1a memoria esegmentata Pindirizzo effettivo cleve essere sommato al :f.i ' base alia dimensione delPelemento stesso. Esempio:
contenuto del registro di segmento per ottenere l'indirizzo fisico. .' ",.' LD Rt, var(R2) (RX) ;'EA = IND+R2+RX*d, d ela dimensione dell'elemento.
, ., ....
" ,
;: -, " I..!.ldirizzamwo iudirettp rjspwo aj resist.; cop Consente eli
:, incrementare automaticamente il contenuto del registro. Anche questa eutile per
,. it modo gli elem,enti di una tabella, Esiate una versione
.. ; ,. che decrementa, EsemplO:
LD Rl, (R2) + ; EA = R2, R2 l- R2+d, deJa dimensione dell'elemento,
'@I '
,i. '.
.. ,
'. ,
"f" ,
'v"
Si veda. 11 "'
"-
,
72
',';;:;;''' I"': ..
.,
.. 0",","
",- "
':.... , .'-
'l-' .
,. ..... t,;'
Elementi architett'urali di base 73
:;;1 , ',<:'", ,':..-:.--_-------====-=-=-'-"------
::d
,.;..1 ,,:";i':('..."" ;
"., ..
di solito indicato come Linker. Naturalmente spetta al programmatore assembler, "'. ::',
ovvero al compilatore, 1a responsabilita circa il significato de1l'indirizzamento relativo' ", :,n' ',.
a un registro (ovvero} che cosa. viene effettivamente inci.irizzato). ': ..\-:: '.. ",
."'\ ' '
.. . , .. ' .
.'" . .",
, ' ,
,
, ... '.'
.,
, ,
.'.'
75
Elementi architetturali di base
per l'istruzione ADD Ri, R2, R3 per
Esercizio 2.10 8i deve dare una valutazione delle prestazioni relative di 8086 e 8088.
Si facciano queste ipotesi: (a) il numero di clock per la lettura (CRD) 0 scrittura
(CWR) in memoria epari a 4; (b) la fasedi fetch e la fase execute sane sequenzjali
(non sovrapposte neanche parzialmente); (c) 10 spazio occupato mediamente da un'i-
struzione in memoria edi 3 byte. Inoltre si assuma che la fuse di execute richieda: (i)
Esercizio 2.8 8i ripeta I'esercizio precedente in riferimento a una macchina Registro-
Registro priva di stack, supponendo.che il numero di registri sia sufficiente a contenere
tutti i parametri. Nell',ipotesi in cui si abbiano chiarnate in ca.scata (da un sottopro-
gramma a un ulteriore'sottoprogramma e eosi in sequenza) e i registri non bastino a
tenere tutti i parametri, si escogiti una soIuzione che permetta il corretta passaggio
dei parametri e il ritorno dalle procedure.
Esercizio 2.9 8i consulti un manuale della famiglia 68000 (sono disponibili sui siti
Motorola) e si confronti la struttura del1'indirizzamento con quella dell'architettura
InteL
'Esercizio 2.7 Sempre in riferimento al passaggio di parametri nelle cbiamate a sotto--
prograrnmi, si consideri una rnaccbina Memoria-Registro, dotata di pochi registri (tali
cia non poter contenere tutti i parametri consentiti dallinguaggio di programmazione)
e priva di stack. 8i definisca una modalita. per il passaggio dei parametri.
2.3 Ripetere il precedente eserclzlO
l'architettura di Figura2,l0 e di Figura2,lL
Esercizio 2.4 Illettore si procuri il manuale di un paio di macchine rose (PowerPC,
MIPS, SPARC ece.) e conrronti i relativi repertori di istruzioni, evidenziando gli
aspetti comuni e quelli non comuni aile difIerenti architetture.
Esercizio 2.5 Illettore esamini in dettaglio il repertorio di istruzioni della CPU 8086
._ in Appendice A - (Possibilmente ci si procuri un manuale Intel; in mancanza del
manuale 8086 si faccia ricorso a queUo di macebine suI mercato come il Pentium 0
il Pentium-Pro e seguenti). In particolare si esaminino Ie istruzioni JEI JZ, CALL,
MOVS e XLAT. Per ciascuna di esse si verifichi se esiste pili ill un possibile formato e
,si verifichino i corrispondenti cicli eli macchina richiesti.
Esercizio 2.6 Si consideri una macchioa con arcbitettura Registro-Registro priva di
stack e una maccbina Memoria-Registro dotata di stacie In riferiroento a una cmama-
ta di procedura in un linguaggio di alto livello, per esempio 10 statement in Iinguaggio
C x= fun(A,B,C), si analizzino possibili modalita. di passaggio dei parametri nei due
casi e si confrontino Ie due architetture sotto questa punto di vista.
nlettore immagini di possedere i registri cbe gli sono utili (PC, MAR, MDR ecc,) e
che per essi siano possibili i comandi di abilitazione dell'ingresso e dell'uscita, come
nel modello fondamentale di funzionamento dei regiBtri (Figura 1.7).
j Esercizio 2.2 Sempre in riferimento aUo schema di Figura2.10 e alIa schema di Figu-
,. ra 2.9, si consideri l'istruzione LD R1, MEM, dove MEM ecodificato nel codice di istruzione
come l'indirizzo di una cella di memoria. Si costruisca la sequenza di comandi che
Ie azioni corrispondenti al caricamento in R1 della cella indirizzata.
..
,
"-,
2-.,
;;-:--
d'
.<;
"'t '
" ,
"
:..
,
-,
..
.:fl

-, '
A-'"
.
."
.:,j
l
:;A '

.'1;
"
.'.;
Capitolo 2
2.8 Esercizi
Esercizio 2.1 Facendo riferimento alIo schema di Figura2.10 e alio schema di Figu-
ra 2.9, stabilito che ciascun state richieda un periodo di clock, si costruisca la sequenza
di comandi che effettua Ie azioni riportate nel diagramma di stato della fase di fetch.
'';:,'. -
" ,."
"..
'if "
,
-' "
,...
:"
,
*-
. ."",

. ,.""1
- ...'.
)'1'
,- ,." .
"'" -'.
,"';'c :-

,-.,
,
":); ;
".! .
'1,- .,
.,
::"4; r
: . ;': :
, ';$ .
.::"" .
.' ,
., ' ",
... ,"
"
:. '
J.or.
Valgono anche per questa caso molte delle considerazioni fatte in precedenza. L'ana- ':
, -,',-.' , .-
lisi dei dati relativi alla struttura e alresecuzione dei prograrnmi, mostra che i salti '::..
condizionati (spesso cmamati diramazioni) tendono a modificare PC in una misura
contenuta [HP931, Si tratta di uoa forma di localita che deriva dalla natura stessa
'''"
degli a.lgoritmi. n salto incondizionato corrisponde spease alPabbandono di un tratto
di codice ed epiu probabile che la misura della distanza del salto sia meno contenuta, ','J!,
. Per Ie diramazioni la norma ecodificare lo scostamento della posizione di desti- - " .
nazione rispetto al PC. Per il salto e per Ie chiamate di procedura, molte architetture "'? '.
prevedono che il relativo campo dell'istruzione vada interpretato come un indirizzQ ",
eHettivo. Nell'architettura PowerPC viene lisato un bit per (il bit AA di Figura2.14)
per iodicare se l'indirizzo di salta eassoluto 0 relativo. :.i
l
,
': . "
.'.",
",,, ... . .
,
.
.'
-;:4 : ....
(i: '._
: ,
"'.'
'

;f
.
,,,,ii'
..fiO .:.

2.7.4 Indirizzamento nei trasferimenti del controllo
Indirizzamento dj 110 Bisogna infine considerare cbe alcune macehine
prevedono spe che istruzioDl per Ie operazioni di ingresso/uscita. Di norma
l'indirizzo di una porta viene codificato in un campo delI'istruzione, anche se
sono possibili soluzioni alternative come quella di prevedere che l'indirizzo sia
conten,uto entro un registro di CPU. Facendo riferimento alI'architettura 8086 si
hanno Ie istruzioni In e OUT. Esempio:
IN AL,PORTA j AL PORTA di Ingresso
l
dove PORTA ecodificato in un
campo eli 8 bit dell'istruzione.
Indirizzamento dei 'registri questa epropriamente un indirizzamento. Di
norma i registri devono essere indicati cial programmatore
l
anche se in certi casi
Ia macchina pub assumere che un registro epredefinito. Esempio:
HOV Rt, R2 ; Rt +- R2,
Indirizzamento jmmediato Non epropriamente un indirizzamento in memoria. Al
programmatore econsentito di scrivere istruzioni in cui si esprime direttamente
un numero 0 un'espressione rieonducibile a un numera, ehe viene direttamente
eodificato nell'istruzione. All'atto deU'esecuzione non C'e quindi indirizzamento,
in quanta il da:to egia in CPU, Esempio
LD Rt,2461 ; Rt +- 2467
14
\
t
I
\
I
,
\
I
I
I
I
JI
(
I
I I
75
Elementi architetturali di base
per l'istruzione ADD Ri, R2, R3 per
Esercizio 2.10 8i deve dare una valutazione delle prestazioni relative di 8086 e 8088.
Si facciano queste ipotesi: (a) il numero di clock per la lettura (CRD) 0 scrittura
(CWR) in memoria epari a 4; (b) la fasedi fetch e la fase execute sane sequenzjali
(non sovrapposte neanche parzialmente); (c) 10 spazio occupato mediamente da un'i-
struzione in memoria edi 3 byte. Inoltre si assuma che la fuse di execute richieda: (i)
Esercizio 2.8 8i ripeta I'esercizio precedente in riferimento a una macchina Registro-
Registro priva di stack, supponendo.che il numero di registri sia sufficiente a contenere
tutti i parametri. Nell',ipotesi in cui si abbiano chiarnate in ca.scata (da un sottopro-
gramma a un ulteriore'sottoprogramma e eosi in sequenza) e i registri non bastino a
tenere tutti i parametri, si escogiti una soIuzione che permetta il corretta passaggio
dei parametri e il ritorno dalle procedure.
Esercizio 2.9 8i consulti un manuale della famiglia 68000 (sono disponibili sui siti
Motorola) e si confronti la struttura del1'indirizzamento con quella dell'architettura
InteL
'Esercizio 2.7 Sempre in riferimento al passaggio di parametri nelle cbiamate a sotto--
prograrnmi, si consideri una rnaccbina Memoria-Registro, dotata di pochi registri (tali
cia non poter contenere tutti i parametri consentiti dallinguaggio di programmazione)
e priva di stack. 8i definisca una modalita. per il passaggio dei parametri.
2.3 Ripetere il precedente eserclzlO
l'architettura di Figura2,l0 e di Figura2,lL
Esercizio 2.4 Illettore si procuri il manuale di un paio di macchine rose (PowerPC,
MIPS, SPARC ece.) e conrronti i relativi repertori di istruzioni, evidenziando gli
aspetti comuni e quelli non comuni aile difIerenti architetture.
Esercizio 2.5 Illettore esamini in dettaglio il repertorio di istruzioni della CPU 8086
._ in Appendice A - (Possibilmente ci si procuri un manuale Intel; in mancanza del
manuale 8086 si faccia ricorso a queUo di macebine suI mercato come il Pentium 0
il Pentium-Pro e seguenti). In particolare si esaminino Ie istruzioni JEI JZ, CALL,
MOVS e XLAT. Per ciascuna di esse si verifichi se esiste pili ill un possibile formato e
,si verifichino i corrispondenti cicli eli macchina richiesti.
Esercizio 2.6 Si consideri una macchioa con arcbitettura Registro-Registro priva di
stack e una maccbina Memoria-Registro dotata di stacie In riferiroento a una cmama-
ta di procedura in un linguaggio di alto livello, per esempio 10 statement in Iinguaggio
C x= fun(A,B,C), si analizzino possibili modalita. di passaggio dei parametri nei due
casi e si confrontino Ie due architetture sotto questa punto di vista.
nlettore immagini di possedere i registri cbe gli sono utili (PC, MAR, MDR ecc,) e
che per essi siano possibili i comandi di abilitazione dell'ingresso e dell'uscita, come
nel modello fondamentale di funzionamento dei regiBtri (Figura 1.7).
j Esercizio 2.2 Sempre in riferimento aUo schema di Figura2.10 e alIa schema di Figu-
,. ra 2.9, si consideri l'istruzione LD R1, MEM, dove MEM ecodificato nel codice di istruzione
come l'indirizzo di una cella di memoria. Si costruisca la sequenza di comandi che
Ie azioni corrispondenti al caricamento in R1 della cella indirizzata.
..
,
"-,
2-.,
;;-:--
d'
.<;
"'t '
" ,
"
:..
,
-,
..
.:fl

-, '
A-'"
.
."
.:,j
l
:;A '

.'1;
"
.'.;
Capitolo 2
2.8 Esercizi
Esercizio 2.1 Facendo riferimento alIo schema di Figura2.10 e alio schema di Figu-
ra 2.9, stabilito che ciascun state richieda un periodo di clock, si costruisca la sequenza
di comandi che effettua Ie azioni riportate nel diagramma di stato della fase di fetch.
'';:,'. -
" ,."
"..
'if "
,
-' "
,...
:"
,
*-
. ."",

. ,.""1
- ...'.
)'1'
,- ,." .
"'" -'.
,"';'c :-

,-.,
,
":); ;
".! .
'1,- .,
.,
::"4; r
: . ;': :
, ';$ .
.::"" .
.' ,
., ' ",
... ,"
"
:. '
J.or.
Valgono anche per questa caso molte delle considerazioni fatte in precedenza. L'ana- ':
, -,',-.' , .-
lisi dei dati relativi alla struttura e alresecuzione dei prograrnmi, mostra che i salti '::..
condizionati (spesso cmamati diramazioni) tendono a modificare PC in una misura
contenuta [HP931, Si tratta di uoa forma di localita che deriva dalla natura stessa
'''"
degli a.lgoritmi. n salto incondizionato corrisponde spease alPabbandono di un tratto
di codice ed epiu probabile che la misura della distanza del salto sia meno contenuta, ','J!,
. Per Ie diramazioni la norma ecodificare lo scostamento della posizione di desti- - " .
nazione rispetto al PC. Per il salto e per Ie chiamate di procedura, molte architetture "'? '.
prevedono che il relativo campo dell'istruzione vada interpretato come un indirizzQ ",
eHettivo. Nell'architettura PowerPC viene lisato un bit per (il bit AA di Figura2.14)
per iodicare se l'indirizzo di salta eassoluto 0 relativo. :.i
l
,
': . "
.'.",
",,, ... . .
,
.
.'
-;:4 : ....
(i: '._
: ,
"'.'
'

;f
.
,,,,ii'
..fiO .:.

2.7.4 Indirizzamento nei trasferimenti del controllo
Indirizzamento dj 110 Bisogna infine considerare cbe alcune macehine
prevedono spe che istruzioDl per Ie operazioni di ingresso/uscita. Di norma
l'indirizzo di una porta viene codificato in un campo delI'istruzione, anche se
sono possibili soluzioni alternative come quella di prevedere che l'indirizzo sia
conten,uto entro un registro di CPU. Facendo riferimento alI'architettura 8086 si
hanno Ie istruzioni In e OUT. Esempio:
IN AL,PORTA j AL PORTA di Ingresso
l
dove PORTA ecodificato in un
campo eli 8 bit dell'istruzione.
Indirizzamento dei 'registri questa epropriamente un indirizzamento. Di
norma i registri devono essere indicati cial programmatore
l
anche se in certi casi
Ia macchina pub assumere che un registro epredefinito. Esempio:
HOV Rt, R2 ; Rt +- R2,
Indirizzamento jmmediato Non epropriamente un indirizzamento in memoria. Al
programmatore econsentito di scrivere istruzioni in cui si esprime direttamente
un numero 0 un'espressione rieonducibile a un numera, ehe viene direttamente
eodificato nell'istruzione. All'atto deU'esecuzione non C'e quindi indirizzamento,
in quanta il da:to egia in CPU, Esempio
LD Rt,2461 ; Rt +- 2467
14
\
t
I
\
I
,
\
I
I
I
I
JI
(
I
I I
n termine !tAM el'abbreviazione di Random Access Memory (memoria ad. accesso
casuale) e dovrebbe' . . 0 di memoria per la quale i tempi di ac-
cesso 0 indi endenti dalia posizione letta, in con rasto con Ie memOrte accesso
sequenziale (nastri m4gnetlci 0 semieasuale (dischi). Nella pratica corrente con it
',:termine RAM si intende la memoria di lettura./scrittura. Come gia. detto, questa puo
essere statica 0 dinamica.
I
I
I
I
I'
I
\
I
\
I
\
-...
'Capitola 2 16
.-
/ ..

'Si\
'-_.;; ,-
. '.
-r ;.: .. .
per il 60% delle iBtruzioni 3 cicli di clock; (ii) per il restante 40% 3 cicli di clock, ' ,
la lettura la eli un data III 11 30% eli questo.40% legge/scrIve un . ,'1 ";:) ..
data a 8 bIt, mentre II restante 70% leggejscnve un data a 16 bIt. ,,)J ''; ".' ','
Si richiede: (1) il rapporto tra Ie prestazioni delle due CPU nell'ipotesi che 1'8086 ' ,'.,' ::,:,'
esegua il fetch leggendo sernpre parole allineate a indirizzi pari e che anche la let- ":_'. ".. La memorIa prmClp
tura/scrittura dei dati a 16 bit avvenga sempre a indirizzi pari; (2) it rapporto tra ::.. !" :..:.... _
Ie prestazioni tenendo conto del non allineamento dei dati e che dope un salto Fis- "Iil'.
,truzione potrebbe essere a un indirizzo dispan. A tal fine 5i assurna it 30% delle (,:.. '
dati a 16 bit trovi dato nO,n a un indirizzo pari. Si assu- ":'01 >: ':,'
rna altresl un mcremento del 10% dl letture tn fase dl fetch (per 1'8086) a causa del "
possibile disallineamento dovute ai salti. ",' r!l '. .
! '. .
,{..... I . ,'.
.,I ., ,..'
".
", , ." '
r: ',".",'
;.:: . c
:""'i'4 ;.:,.... '.
'M ," '
':' " .
modo molto schema-tieo, mez.n0:ia di un puo essere in memoria
I"""",:" '.. interna, detta anche memona pnnclpale (mam memory), e memona esterna, detta
,.. :: . anche memoria ausiliariao di massa. Sia la memoria interna siaquella esterna possono
",'t); ':,'" ,.',:"c. essere di varia tipo. La memoria interna e in piccola 'parte da me.moria di
';_' ',' .'_. sola tettura (ROM, PROM eee.) e da memona d.i lettura-scnttura genencamente
''':''': ''';,__ indicata con RAM; questa a sua volta puo essere di tipo statico (SRAM) a dinamico
,,'.i' " " ,,'(DRAM). La memoria esterna e, di norma, composta da diBchi rigidi (magnetici,
',.i? ':>."",'ottici
,
magneto-ottici), dischetti, nastri magnetici, cassette.
., ; :.''- ". Nella memoria dei sistemi di elaborazione si riflette in modo evidente l'obiettivo
\.. '..... :, primario dell'ingegneria: I'ottenimento del miglior rapporto costo/prestazioni. La so-
.:;'Jllt ,':<'" '; ";" " luzione ideale s.arebbe quella di dotare i sistemi di e1aborazione della maggior quantita
. ::/-': possibile di memoria ad alta velocita, basso ingombro, basso consumo e minimo costo.
ovvio che mott.i dei elen(;ati sono .in tra di loro. Da
.. A<:" ',:,:, CIa dlscende la necesslta dl dlmenslOoare Ie partl di memona lD modo da ottenere
'. " .."...... '
a costi In aiuto aI. progettista 1a
, ,t:,\>1 ';' dl Jocahta ,spanale e temporale eSlhlta daJ. programml. Tale propneta suggensce d.i
.Ia .in modo gerar.chicol con e (e dunque
y altl gerarchia e con memone ample, rna Pili lente (e menD
,'r'i" pIU basSI.
". ' Questo capitolo eessenzialmente dedicato alia memoria centrale (main memory),
'-,;>.,'::,,:.':A conclusione del capitolo, viene presentata una sorta d.i rassegila dei tipi di memoria
,:'3 :", ' ,',' correntemente (anna 2000) piu diffusi, anche at fine di orientare illettore nella selva
.tt. ::,: :;:. dl sigle In contmua crescita.
'
.. .,
,f}:';, Le memorie RAM

n termine !tAM el'abbreviazione di Random Access Memory (memoria ad. accesso


casuale) e dovrebbe' . . 0 di memoria per la quale i tempi di ac-
cesso 0 indi endenti dalia posizione letta, in con rasto con Ie memOrte accesso
sequenziale (nastri m4gnetlci 0 semieasuale (dischi). Nella pratica corrente con it
',:termine RAM si intende la memoria di lettura./scrittura. Come gia. detto, questa puo
essere statica 0 dinamica.
I
I
I
I
I'
I
\
I
\
I
\
-...
'Capitola 2 16
.-
/ ..

'Si\
'-_.;; ,-
. '.
-r ;.: .. .
per il 60% delle iBtruzioni 3 cicli di clock; (ii) per il restante 40% 3 cicli di clock, ' ,
la lettura la eli un data III 11 30% eli questo.40% legge/scrIve un . ,'1 ";:) ..
data a 8 bIt, mentre II restante 70% leggejscnve un data a 16 bIt. ,,)J ''; ".' ','
Si richiede: (1) il rapporto tra Ie prestazioni delle due CPU nell'ipotesi che 1'8086 ' ,'.,' ::,:,'
esegua il fetch leggendo sernpre parole allineate a indirizzi pari e che anche la let- ":_'. ".. La memorIa prmClp
tura/scrittura dei dati a 16 bit avvenga sempre a indirizzi pari; (2) it rapporto tra ::.. !" :..:.... _
Ie prestazioni tenendo conto del non allineamento dei dati e che dope un salto Fis- "Iil'.
,truzione potrebbe essere a un indirizzo dispan. A tal fine 5i assurna it 30% delle (,:.. '
dati a 16 bit trovi dato nO,n a un indirizzo pari. Si assu- ":'01 >: ':,'
rna altresl un mcremento del 10% dl letture tn fase dl fetch (per 1'8086) a causa del "
possibile disallineamento dovute ai salti. ",' r!l '. .
! '. .
,{..... I . ,'.
.,I ., ,..'
".
", , ." '
r: ',".",'
;.:: . c
:""'i'4 ;.:,.... '.
'M ," '
':' " .
modo molto schema-tieo, mez.n0:ia di un puo essere in memoria
I"""",:" '.. interna, detta anche memona pnnclpale (mam memory), e memona esterna, detta
,.. :: . anche memoria ausiliariao di massa. Sia la memoria interna siaquella esterna possono
",'t); ':,'" ,.',:"c. essere di varia tipo. La memoria interna e in piccola 'parte da me.moria di
';_' ',' .'_. sola tettura (ROM, PROM eee.) e da memona d.i lettura-scnttura genencamente
''':''': ''';,__ indicata con RAM; questa a sua volta puo essere di tipo statico (SRAM) a dinamico
,,'.i' " " ,,'(DRAM). La memoria esterna e, di norma, composta da diBchi rigidi (magnetici,
',.i? ':>."",'ottici
,
magneto-ottici), dischetti, nastri magnetici, cassette.
., ; :.''- ". Nella memoria dei sistemi di elaborazione si riflette in modo evidente l'obiettivo
\.. '..... :, primario dell'ingegneria: I'ottenimento del miglior rapporto costo/prestazioni. La so-
.:;'Jllt ,':<'" '; ";" " luzione ideale s.arebbe quella di dotare i sistemi di e1aborazione della maggior quantita
. ::/-': possibile di memoria ad alta velocita, basso ingombro, basso consumo e minimo costo.
ovvio che mott.i dei elen(;ati sono .in tra di loro. Da
.. A<:" ',:,:, CIa dlscende la necesslta dl dlmenslOoare Ie partl di memona lD modo da ottenere
'. " .."...... '
a costi In aiuto aI. progettista 1a
, ,t:,\>1 ';' dl Jocahta ,spanale e temporale eSlhlta daJ. programml. Tale propneta suggensce d.i
.Ia .in modo gerar.chicol con e (e dunque
y altl gerarchia e con memone ample, rna Pili lente (e menD
,'r'i" pIU basSI.
". ' Questo capitolo eessenzialmente dedicato alia memoria centrale (main memory),
'-,;>.,'::,,:.':A conclusione del capitolo, viene presentata una sorta d.i rassegila dei tipi di memoria
,:'3 :", ' ,',' correntemente (anna 2000) piu diffusi, anche at fine di orientare illettore nella selva
.tt. ::,: :;:. dl sigle In contmua crescita.
'
.. .,
,f}:';, Le memorie RAM

79
liD,
I/0
g
E
IE
E

,
c
"

ID
l'
Buffer di ingress
i \
C' ,
0
.<!'
,
,

0

0 "
524,288 x 8

"
rv

'8.
,
'0
4.1:14.304 0 r

..
u

Q
('>
f--
-

,
Oecodlf. cl
i colonno.
Circui'tl di
-
C
controllo
C
-
G
A,
VC
'"
Schema a blocchi di una SRAM da. 512Kx8.
.
.
CE. Permette di abilitare/disabilitare il chip.
"
1/0
0
_ I/Or. Dato in ingresso 0 in uscita.
WE. Specifica se si tratta di un'operazionne di lettura/scrittura. Quando ebasso
i dati presenti su 1/0
0
- l/Or sono scritti nella cella indirizzata da AQ - A
1
8
Abilita i buffer d'usdta nelle operazioni di lettura, permettendo di rispar-
miare corrente.
" '-1 piedini di interesse sono i seguenti.
A
o
_ Als. Linee di indirizzamento. Servono a selezionare una parola di 8 bit.
I Essa corriaponde, per e5empia, al madello AS7C34096, un disposit.ivo fabbricato da Alliance
Semiconductor in cinque diverse versioni caratterizzate da. differenti velocita..
In Figura 3.2 viene data la schematizzazione funzionale. Come si pub vedere
l
Ie
SRAM sono di facile utilizzo: esufficiente fomire l'indirizzo. e specificare se si tratta
di un'operazione di lettura 0 di scrittura.
"
"..
"
..
'f:I'
,
'\i,l
'f"
:"n.
\11
.,
'.'
,"
",:!
.,
' .. ,
,
;')1.' '
"\1
,:'j'

,. ii'
':1."
..
>'1
.',' , , ,. ,-

e
Capitolo 3
lntegrazio!; un Uvello d'integrazione porta con se tutta una serie di
vantaggi etti e indiretti; in quaiche modo si tratta di un parametro riassun
tivo rispetto a.i precedenti. Tra i v ta i diretti c'e senz'altro l'abbattimento
dell'occu' rica e la riduzione dei conswni. Tea i vantaggl in otti
n uzione dei costi di assemblagglO e e partl
l
e Sistema di alimentazione e
dello al' e. Si deve inoltre sottolineare il fatto che I'integra-
zione induce una a.ffiQabilita, riducendo i1 numero dell . essioni
esterne. n livello . integrazione viene ffilsura 0 norm ente attraverso Ia
menslOne; minjma che si riesce a ottenere attraverso i1 processo tecnologico (es. 1
micron), oppure attraverso 130 densita di memoria per chip.
Potenza; il costruttorelornisce una potenza media, anche se l'assorbimento non e
in generale costante. In alcuni casi, per esempio per Ie memorie che mantengono
i dati con un batteria ausiliaria, viene dato anche l'assorbimento a riposo (stand.
by).
3,,2
:v.")-L'';,',' ..

",V" .-..
,::;.\
, T _ -, .....1",
_
.. ...... .'
:,-'
.'.' "
-..- .
e,:\: "::--, ','"

..
i' ',I{'.i')'::.T: .'.'
.!'-c,;'" ,. '
u sempio di memoria statica

,".' ,,".'.' ,,:"" .'
.. ' .' 4 . . ata in 524.288
Nel valutare la memoria d.i qualunque genere
l
i parametri rilevanti sono i seguenti. '.. .. F' 3 1 viene riportato 10 schema a blocchl dl una SRAM orga.mzz
.", ';.o.:'''.':.,:In 19ura . . 1
arole di 8 bit (512Kx8) .
Dimensione; fornita in bit 0 byte. A volte la dimensione viene data in modo r:'.'p
da descrivere l'organizzazione interna; per esempio, una dimensione data come ' .'
64 K x 4 bit, indica una memoria di 65.536 celie di 4 bit ciascuna;
;,"j,A ''"',..
Velocitti; generalmente viene iudicata me tern 0 di accesso, ovvero l'intervaUo '..;
di'ieim; the intercorr a 1a . . . m ento i . . :/t'..'.,.
-.. ,'!;"., .... , '
viene reso disponibile. La velocita, pur essendo un fattore c iave
,
non deve .. ':} I:
essere SOvIa!mmat"a: 51 deve impiegare una memoria veloce laddove estrettamente /\1 .. .:',:"
. ., .,-,.
necessana. ,\".' :t.:...
, .. ','
'/:",:.' ,,"
,. n' .'. . ., ..
:.,(r; :,
,-,.... , ...', .
.... .. ".' .. ' ... , .
.,":ir, ' ... :.- ,", :: . " '.
........ '.... ,
'. -' . , ,.

'.. ''''''.''
-.,., ,,'
..' ..
'.. lJ ,," ,"
.' , . :
. ;;':;4; '" ' "
. I
Costo; ei1 parametro piu aleatorio, in quanto dipendente Q1t.re me dalle normaJL
fluttuazioni di mercato. anche dar volume deTI'acquisto. In generale possiamo A'V'
dire che maggiore e1a densita di memoria minore eifSuo costo unitario.
, ,'),
.-.... "
'._', "
' ...'Ii ," ",'
> .. , " '
,', ;",' Figura 3.1
-.. , .
"
;'):1', '.
,
;'.':1'.,
'" .
I
';.'1',' ,-
. .
->..:
. -;J
,
..
, ".'
.".
"" ",
78
JW..l-Parametri di valutazione
\
)
,
La cella fondamentale di una RAM statica memorizza 1 bit e ecostituita da 6 0
\
Ai,?"4 transi.tori, che possono essere di tipo bipolare (tecnologie TTL e ECL) oppure
1)- a effetto di campo (tecnologle NMOS e CMOS). Questo' tlPO dl topologla consente
/Un'integraziooe' su piccola 0 media scala con tempi di accesso piuttosto bassi (da
qualche nanosecondo a un centinaio).
Questi fatton, combinati con ill) assorbimento di potenza non trascurabile,
cialmente per i tipi piu veloci, relegano questa tecno1ogia alIa realizzazione dei registri
processore 0
1
al EiU, eli memorie dl
\
J.
J,

!
\
\
\
I
I
I
I
I

79
liD,
I/0
g
E
IE
E

,
c
"

ID
l'
Buffer di ingress
i \
C' ,
0
.<!'
,
,

0

0 "
524,288 x 8

"
rv

'8.
,
'0
4.1:14.304 0 r

..
u

Q
('>
f--
-

,
Oecodlf. cl
i colonno.
Circui'tl di
-
C
controllo
C
-
G
A,
VC
'"
Schema a blocchi di una SRAM da. 512Kx8.
.
.
CE. Permette di abilitare/disabilitare il chip.
"
1/0
0
_ I/Or. Dato in ingresso 0 in uscita.
WE. Specifica se si tratta di un'operazionne di lettura/scrittura. Quando ebasso
i dati presenti su 1/0
0
- l/Or sono scritti nella cella indirizzata da AQ - A
1
8
Abilita i buffer d'usdta nelle operazioni di lettura, permettendo di rispar-
miare corrente.
" '-1 piedini di interesse sono i seguenti.
A
o
_ Als. Linee di indirizzamento. Servono a selezionare una parola di 8 bit.
I Essa corriaponde, per e5empia, al madello AS7C34096, un disposit.ivo fabbricato da Alliance
Semiconductor in cinque diverse versioni caratterizzate da. differenti velocita..
In Figura 3.2 viene data la schematizzazione funzionale. Come si pub vedere
l
Ie
SRAM sono di facile utilizzo: esufficiente fomire l'indirizzo. e specificare se si tratta
di un'operazione di lettura 0 di scrittura.
"
"..
"
..
'f:I'
,
'\i,l
'f"
:"n.
\11
.,
'.'
,"
",:!
.,
' .. ,
,
;')1.' '
"\1
,:'j'

,. ii'
':1."
..
>'1
.',' , , ,. ,-

e
Capitolo 3
lntegrazio!; un Uvello d'integrazione porta con se tutta una serie di
vantaggi etti e indiretti; in quaiche modo si tratta di un parametro riassun
tivo rispetto a.i precedenti. Tra i v ta i diretti c'e senz'altro l'abbattimento
dell'occu' rica e la riduzione dei conswni. Tea i vantaggl in otti
n uzione dei costi di assemblagglO e e partl
l
e Sistema di alimentazione e
dello al' e. Si deve inoltre sottolineare il fatto che I'integra-
zione induce una a.ffiQabilita, riducendo i1 numero dell . essioni
esterne. n livello . integrazione viene ffilsura 0 norm ente attraverso Ia
menslOne; minjma che si riesce a ottenere attraverso i1 processo tecnologico (es. 1
micron), oppure attraverso 130 densita di memoria per chip.
Potenza; il costruttorelornisce una potenza media, anche se l'assorbimento non e
in generale costante. In alcuni casi, per esempio per Ie memorie che mantengono
i dati con un batteria ausiliaria, viene dato anche l'assorbimento a riposo (stand.
by).
3,,2
:v.")-L'';,',' ..

",V" .-..
,::;.\
, T _ -, .....1",
_
.. ...... .'
:,-'
.'.' "
-..- .
e,:\: "::--, ','"

..
i' ',I{'.i')'::.T: .'.'
.!'-c,;'" ,. '
u sempio di memoria statica

,".' ,,".'.' ,,:"" .'
.. ' .' 4 . . ata in 524.288
Nel valutare la memoria d.i qualunque genere
l
i parametri rilevanti sono i seguenti. '.. .. F' 3 1 viene riportato 10 schema a blocchl dl una SRAM orga.mzz
.", ';.o.:'''.':.,:In 19ura . . 1
arole di 8 bit (512Kx8) .
Dimensione; fornita in bit 0 byte. A volte la dimensione viene data in modo r:'.'p
da descrivere l'organizzazione interna; per esempio, una dimensione data come ' .'
64 K x 4 bit, indica una memoria di 65.536 celie di 4 bit ciascuna;
;,"j,A ''"',..
Velocitti; generalmente viene iudicata me tern 0 di accesso, ovvero l'intervaUo '..;
di'ieim; the intercorr a 1a . . . m ento i . . :/t'..'.,.
-.. ,'!;"., .... , '
viene reso disponibile. La velocita, pur essendo un fattore c iave
,
non deve .. ':} I:
essere SOvIa!mmat"a: 51 deve impiegare una memoria veloce laddove estrettamente /\1 .. .:',:"
. ., .,-,.
necessana. ,\".' :t.:...
, .. ','
'/:",:.' ,,"
,. n' .'. . ., ..
:.,(r; :,
,-,.... , ...', .
.... .. ".' .. ' ... , .
.,":ir, ' ... :.- ,", :: . " '.
........ '.... ,
'. -' . , ,.

'.. ''''''.''
-.,., ,,'
..' ..
'.. lJ ,," ,"
.' , . :
. ;;':;4; '" ' "
. I
Costo; ei1 parametro piu aleatorio, in quanto dipendente Q1t.re me dalle normaJL
fluttuazioni di mercato. anche dar volume deTI'acquisto. In generale possiamo A'V'
dire che maggiore e1a densita di memoria minore eifSuo costo unitario.
, ,'),
.-.... "
'._', "
' ...'Ii ," ",'
> .. , " '
,', ;",' Figura 3.1
-.. , .
"
;'):1', '.
,
;'.':1'.,
'" .
I
';.'1',' ,-
. .
->..:
. -;J
,
..
, ".'
.".
"" ",
78
JW..l-Parametri di valutazione
\
)
,
La cella fondamentale di una RAM statica memorizza 1 bit e ecostituita da 6 0
\
Ai,?"4 transi.tori, che possono essere di tipo bipolare (tecnologie TTL e ECL) oppure
1)- a effetto di campo (tecnologle NMOS e CMOS). Questo' tlPO dl topologla consente
/Un'integraziooe' su piccola 0 media scala con tempi di accesso piuttosto bassi (da
qualche nanosecondo a un centinaio).
Questi fatton, combinati con ill) assorbimento di potenza non trascurabile,
cialmente per i tipi piu veloci, relegano questa tecno1ogia alIa realizzazione dei registri
processore 0
1
al EiU, eli memorie dl
\
J.
J,

!
\
\
\
I
I
I
I
I

\
\
I
I
\
I
I
I
I
1
I
. I
(3.1)
dove si voglia un elevato grado di
Pd = V" . I" = 0,660 W
p=
P
- 0,66 = 1,29 mW/Kbyte
- 512
dinamiche

memone
nconsume specifico p, ovvero il consumo per kbyte, puo essere espresso come:
Potenza dissipata .
Dimensione in kbyte
..
, ]Queste ultime vengooo tuttora utilizzate in applicazioni
per esempio, sui computer dello Space Shuttle.
Nel caso specifico, si ha:
3.3 Le
-: Pritna deH'avvento delle memorie dinamiche, 130 memoria principale veniva realizzata
-con nuclei magnetici in miniatura, da cui il sinonimo core memory (memoria a nuclei)
-. per indicare la memoria centrale.
RAM B' In esse I'informazione e rap-
: pr.e1lentat,lltlraversoje carica imwagazzjnata in un con ..Lo
-- , --'-<,
schema equivalente a..!!R di memoria eriportato in FiWa3.4. E richiesto
- per bit: .la 'capaCit Viene ncavata sulla stntura -del transistore
stesso, realizzando in questo modo uno sfruttamento ottimale della spazio disponi-
La struttura eripetuta regolarmente seguendo una griglia quadrata: 130 linea PL
(plate line) ecoliegata a massa, mentre WL (word line) e BL (bit line) sonG eoliegate,
r.ispettivamente, alle righe e aile colonne della griglia. La carica immagazzinata nel
condensatore edell'ordine di 50 pC. Essendo presenti delle resistenze di perdita, la
carica si esaurisce in pochi millisecondi, rendendo necessaria un'operazione periodica
di rinfresco.
AlI'epoco deli'introduzione delle DRAM, nacquero molti dubbi sull'aflidahilita
della rilevazione del Hvello logico. L'idea impiego un certo tempo per farsi strada,
rna, gia nella seconda meta degli anni '70 Ie memorie a. nuclei erano ormai oggetto da
museo
2
.Le mernorie dinamiche sona patlicolannent9 sensibiJl..a.lle tadiazioni. Infatti it
-
"
';
'Cons
umo
Uaspetto che deve essere considerato, anche in confronto alIa memoria
, DRAM, eiI consumo. Per it componente AS7C34096, nella versione con teIQ-po di
.. accesso di 12.ns, viene indicato un assorbimento di corrente Icc = 0,200 A. La potenza
assorbita'da1un singolo componente, tenuto conto della tensiene di alimentazione di
3
3 V edunque:
, ,
. (asserito CE) e che vengano presentati i dati ehe da scrivere su 1/01 - 1/07 ; WE
deve"essere tenuto basso un tempo sllfficiente (twp). D cido termina dopa un tempo
t G(write cycle time). Anche per la ,erittura si distinguono terminologicamente due
- . t:ropi: twP (write pulse time) duraota minima. dell'impuiso di scrittura. e two (write
cycle time) durata minima del cido di scrittura, essi pure identici .

,--"
":;1'
,

....-"'.-
,
, ".JI
',.,:;;:;,
';'",
:
,
"-.
--'- '
..1.. ,
:"c': :
"'j;-
.';-
...


"'.' '
'
._" ,
, '" '
.. ri!

-....,-...
.' ',,:, .
" ."'" ,
,
..




:-d,
..
". ,',,,
";'J', !
.... J I
.of: i
, ':
, .
.,;t

'-':>

. ,
;;
"
-;:
, ."
.... '
,
.
. .


" " .
,. .
". .
'!;<,
,_n',
.";'
....,
!
." -'<,
.
:',.
I
.. ..
J:
.
.,,a

, ...."
.'-'\' -
- ",'"
,e"( '
. " .-
.'<'''' .
.->". ,
.'-.
',,,
'" , c., .
.
.:!l,
:..,'
.. -....
[;",..... ..' T:'
,-!);;",i, t.l,;- _' '
',- .'. ""
';,: .:.
",,' ,,', -.
, '." ,
" .. . La. memoria. principa.1e 81
>'
",', 'j
. , ,
";'1 -
,kl;

" \l-
"
,:;: .... '
'. ::;r
." ,,<0

..]"(.:,
.. , ' ..,.
: .=:-rl
'''fi,''

, ,
. .,'- '
"
.', ,'"
"':C .
o CE
'"
b) Scrilturll
DATI VALlDI
tot I
X
lAce
o CE
DOUT
'"
eo) Ll!ltura
Canitolo 3
.
-In
) ,
..
8 512K,. 8
\
'0
1100 CO
:\
"
"
"
,
"
< <
N
Q

1/07
"'
- a

Q

Z W, 1 Z 0
0'
0
!!!<
1
'"
Uoperazione eli scrittura (Cfr. Figura 3.2 b)J puo essere svolta in due modi.
1. Controllata da WE. Quando il comando di scrittura eun impulso su WE.
2. Cootrollata da CE. Quando il comando di scrittura diventa un impulso applicato
su CEo
CE
OE
'"c
Traiasciamo la descrizione dettagliata di queste operazioni. nlettore interessato
e invitato. a procurarsi il manuale di una qualche memoria diffusa suI mercato. In
termini generali
J
130 scrittura richiede che venga fomito Pindirizzo, abilitato il chip
Figura 3.3 Temporizzazione dell'operazione d.i lettura di una RAM statica.
..,
Tern. 0 di accesso 0 di accesso It'0 erazion di.
lettura come 'interv eaB '0 ad avere i dati . a, a artire
d lstan e ill CUI Ii indirizzi e i se ali d centrella sona stabili a Ii in ressL
ra . viene riportata 130 temporizzazione el cielo di lettura. Dopa aver
famito gli indirizzi, vengoDo asseriti CE e OE; dopa un certo tempo tACO abbiamo
i dati stabili sulle useite (Output data valid). n di,positivo ehe legge (la CPU) dopo
un eerto tempo rialzera CE e OE.
Si osservi che il tempo minima richiesto dall'intera operazione di lettura etRG
(read cycle time). Anehe se db non appare in Figura3.3, per Ie RAM statiehe tACC =
tRC'
Figura 3.2 Coma.ndi per Ie operazioni di lettura e scrittura in una. RAM statica da 512 kbyte

\
\
I
I
\
I
I
I
I
1
I
. I
(3.1)
dove si voglia un elevato grado di
P
d
= V" . I" = 0,660 W
p=
P
- 0,66 = 1,29 mW/Kbyte
- 512
dinamiche

memone
nconsume specifico p, ovvero il consumo per kbyte, puo essere espresso come:
Potenza dissipata .
Dimensione in kbyte
..
, ]Queste ultime vengooo tuttora utilizzate in applicazioni
per esempio, sui computer dello Space Shuttle.
Nel caso specifico, si ha:
3.3 Le
-: Pritna deH'avvento delle memorie dinamiche, 130 memoria principale veniva realizzata
-con nuclei magnetici in miniatura, da cui il sinonimo core memory (memoria a nuclei)
-. per indicare la memoria centrale.
RAM B' In esse I'informazione e rap-
: pr.e1lentat,lltlraversoje carica imwagazzjnata in un con ..Lo
-- , --'-<,
schema equivalente a..!!R di memoria eriportato in FiWa3.4. E richiesto
- per bit: .la 'capaCit Viene ncavata sulla stntura -del transistore
stesso, realizzando in questo modo uno sfruttamento ottimale della spazio disponi-
La struttura eripetuta regolarmente seguendo una griglia quadrata: 130 linea PL
(plate line) ecoliegata a massa, mentre WL (word line) e BL (bit line) sonG eoliegate,
r.ispettivamente, alle righe e aile colonne della griglia. La carica immagazzinata nel
condensatore edell'ordine di 50 pC. Essendo presenti delle resistenze di perdita, la
carica si esaurisce in pochi millisecondi, rendendo necessaria un'operazione periodica
di rinfresco.
AlI'epoco deli'introduzione delle DRAM, nacquero molti dubbi sull'aflidahilita
della rilevazione del Hvello logico. L'idea impiego un certo tempo per farsi strada,
rna, gia nella seconda meta degli anni '70 Ie memorie a. nuclei erano ormai oggetto da
museo
2
.Le mernorie dinamiche sona patlicolannent9 sensibiJl..a.lle tadiazioni. Infatti it
-
"
';
'Cons
umo
Uaspetto che deve essere considerato, anche in confronto alIa memoria
, DRAM, eiI consumo. Per it componente AS7C34096, nella versione con teIQ-po di
.. accesso di 12.ns, viene indicato un assorbimento di corrente Icc = 0,200 A. La potenza
assorbita'da1un singolo componente, tenuto conto della tensiene di alimentazione di
3
3 V edunque:
, ,
. (asserito CE) e che vengano presentati i dati ehe da scrivere su 1/01 - 1/07 ; WE
deve"essere tenuto basso un tempo sllfficiente (twp). D cido termina dopa un tempo
t G(write cycle time). Anche per la ,erittura si distinguono terminologicamente due
- . t:ropi: twP (write pulse time) duraota minima. dell'impuiso di scrittura. e two (write
cycle time) durata minima del cido di scrittura, essi pure identici .

,--"
":;1'
,

....-"'.-
,
, ".JI
',.,:;;:;,
';'",
:
,
"-.
--'- '
..1.. ,
:"c': :
"'j;-
.';-
...


"'.' '
'
._" ,
, '" '
.. ri!

-....,-...
.' ',,:, .
" ."'" ,
,
..




:-d,
..
". ,',,,
";'J', !
.... J I
.of: i
, ':
, .
.,;t

'-':>

. ,
;;
"
-;:
, ."
.... '
,
.
. .


" " .
,. .
". .
'!;<,
,_n',
.";'
....,
!
." -'<,
.
:',.
I
.. ..
J:
.
.,,a

, ...."
.'-'\' -
- ",'"
,e"( '
. " .-
.'<'''' .
.->". ,
.'-.
',,,
'" , c., .
.
.:!l,
:..,'
.. -....
[;",..... ..' T:'
,-!);;",i, t.l,;- _' '
',- .'. ""
';,: .:.
",,' ,,', -.
, '." ,
" .. . La. memoria. principa.1e 81
>'
",', 'j
. , ,
";'1 -
,kl;

" \l-
"
,:;: .... '
'. ::;r
." ,,<0

..]"(.:,
.. , ' ..,.
: .=:-rl
'''fi,''

, ,
. .,'- '
"
.', ,'"
"':C .
o CE
'"
b) Scrilturll
DATI VALlDI
tot I
X
lAce
o CE
DOUT
'"
eo) Ll!ltura
Canitolo 3
.
-In
) ,
..
8 512K,. 8
\
'0
1100 CO
:\
"
"
"
,
"
< <
N
Q

1/07
"'
- a

Q

Z W,
1
Z 0
0'
0
!!!<
1
'"
Uoperazione eli scrittura (Cfr. Figura 3.2 b)J puo essere svolta in due modi.
1. Controllata da WE. Quando il comando di scrittura eun impulso su WE.
2. Cootrollata da CE. Quando il comando di scrittura diventa un impulso applicato
su CEo
CE
OE
'"c
Traiasciamo la descrizione dettagliata di queste operazioni. nlettore interessato
e invitato. a procurarsi il manuale di una qualche memoria diffusa suI mercato. In
termini generali
J
130 scrittura richiede che venga fomito Pindirizzo, abilitato il chip
Figura 3.3 Temporizzazione dell'operazione d.i lettura di una RAM statica.
..,
Tern. 0 di accesso 0 di accesso It'0 erazion di.
lettura come 'interv eaB '0 ad avere i dati . a, a artire
d lstan e ill CUI Ii indirizzi e i se ali d centrella sona stabili a Ii in ressL
ra . viene riportata 130 temporizzazione el cielo di lettura. Dopa aver
famito gli indirizzi, vengoDo asseriti CE e OE; dopa un certo tempo tACO abbiamo
i dati stabili sulle useite (Output data valid). n di,positivo ehe legge (la CPU) dopo
un eerto tempo rialzera CE e OE.
Si osservi che il tempo minima richiesto dall'intera operazione di lettura etRG
(read cycle time). Anehe se db non appare in Figura3.3, per Ie RAM statiehe tACC =
tRC'
Figura 3.2 Coma.ndi per Ie operazioni di lettura e scrittura in una. RAM statica da 512 kbyte

Figura 3.4 A sinistIa viene preseutata. la. struttura della. cella elementare. A destra.
Porganizzazione della matrice di una DRAM di IMbit, con l'indicazione dei piedini.
condensatore realizzato con la metallizzazione suI source del transistor ha uno spessore
del dielettrico (biossido di silicio) cosl sottile da costituire una barriera di potenziale
molta facile da abbattere: esufficiente una radiazione a bassa energia. per distruggere
13 barriera di potenziale e quindi la carica immagazzinata
3
.
La. memoria principale 83
DE abilitazione delle uscite.
6Si fara. riferimento al componente AS4CIM16E5 prodotto da Alliance Semiconductor.
6Per essere precisi, nel componente AS4CIM16E5, e presente un contatore interno di rinfrcsco
a 10 bit e quindi non sarebbe necessario caricare ogni volta. l'indirizzo di riga. Questo contatore e
presente Bulle RAM dinamiche delle ultime genera:zioni che prevedeno, all'ioterno, circuiti in grade
di svolgere tale fUDzione in varie modalita. operative.
c. '. WE Bcrittura in memoria.
Le caratteristiche delle DRAM verranno esposte in riIerimento a un ipotetico integrato
da 1M x 16 bits. I segnali di interesse sono:
Ao - Ag segnali per l'indirizzamento della memoria.
RAS segnale di carica.mento della riga.
'. CAS segnale di' caricamento della colonna.
DQl - DQ16 ingresso/uscita dati.
3.3.1 Un esempio di memoria DRAM
,
Per individuare una cella devono essere specificati riga e colonna. Per motivi
.di comodita. costruttiva la griglia e sempre quadrata, in questa caso 2
10
x 2
10
=
1024 x 1024 celIe di memoria. una cella si presentano, sui piedini A
o
- Ag,
gli indirizzi di riga e si asserisce RAS. Si aspetta che aia trascorao il tCE.O tRAH, si
pongono BU A
o
....: Ag,gli indirizzi di colonna e si asserisce il segnale di AS. Ri$petto
all'istante iniziale, i dati sono disponibili su DOUT dopo tRAC (Read Access Time).
In Figura 3.5 viene riportata la temporizzazione di un'operazione di lettura.
Per I'operazione di scrittura si segue una analoga procedura p"er il caricamenta
degli indirizzi
l
salvo poi, con i dati presenti su DIN, asserire WRITE contemporanea-
mente a CAS: in--.9.uesto modo si attiene la massima velocita di scrittura, rna niente
vieta di asserire WRlTE dopo il CAS.
L'attenta osservazione delle temporizzazioni di una DRAM, mostra come it tempo
di delo di lettura tRC sia diverso dal tempo di accesso tRAC. Nel caso del dispositivo
AS4CIM16E5 si ha tRC= 75ns e tRAC= 45os. Quindi I'operazione di lettura 0 di
scrittura necessita di un tempo almeno pari a tRc=75 ns..
Occorre poi tener conto del rinfresco. I costruttori indicano quanti cieli di rinfres-
co devono essere fatti in un predefinito intervallo. Nel easo delPesempia, oecorrono
1024 cieli in 16 rns. In pratica si deve presentare} con Un impulso di RAS, una
successione progressiva (da 0 a 1023) di indirizzi su A
o
- A
9
6 .
,
deli di rinfresco della memoria centrale (cosI. era su tutti i personal computer IBM
compatibili). . .'
Con l'avanzamento tecnologico, oitre alIa tecnica classica sopra accennata, detta
RAS-only, sana stati introdotte tecniche pili eflicienti, per esempio la cosiddetta CAS
, before RAS, can la Quale si sfrutta un generatore d'indirizzi di rinfresco interno
,., ficando gestione del multiplexer degli indirizzi esterno. Alcune memorie permettono
di optare fra pio soIuzioni predefinite nella gestione dei deli di rinfresco.
"... '
.,
-.
;
i.
'


.
.' .,.
:-. -
:<,:1'
'."" .
,"
'.
;;;;.1'

'j""
.' "
",'
.'
,t
.;
\".
,
"
".-'
",I
....,.'.
,:'
, .. .
..,
.,
"'

.,..
..
.
:;;

'''l " .. ,
', ..
....
-"r
,:'f-:
"", I',
, .,..'1
", :.


' .. ,
";,
.,
.t.,
..
.' '.'
."."
,' ...
,.
_
, ',l
'-':11
':-.
, n,
..
.-
'0
" .

"; "
" ';11
.;-..'"
.,:" ;
',' .,..
,
.ifl

,.J.; .

..
"
...
.
..
"
"If
',;Jo'.,
,: .:.!i
, ,.
.-"
'""ii
....
, '"'

'.
: ..
.-',
".''-i
{:; I;
,'" 'i
.. -. "
.;.':','
.." )"'
., o ,
" ',,:! , "
' .
. ' .. :
,Ill ._.
.'.), . , ,
''''-''. .
.... ' . ,
.. :; .
. .
.'
. .
-.\, ..
.. ' ,.),
'."

I'lolllJl.l
:) aUmento:&lone
10 lndlrinl
I RAS
I CAS
I DIO
1 R/V
"
WI,,: ric_
Bl,.: Colo"....
1000.1000
\
'H I
I A.m.plif I
IncUriz%o (
COlOlUll' )
t
d
..
lO
lndid:no (I
r
1
8" )

"'-
BL
PL
Rinfresco L'operazione di rinfresco consiste sem licemente nell'indirizzare pro res-
sivamente Ie ri e. uesta 0 erazione arta una Heve riduzlOne elle restaziani (tipi-
camente el 5% e viene atta, normalmente, da un apposito dispositivo, il controllore
delle DRAM, the, nella pratica corrente, fa parte dei componenti di corredo della
CPU, per la gestione dei bus di sistema
4
In passato, prima dell'avvento dei com-
ponenti tipo bridge veniva usualmente impiegato un canale di DMA per generare i
!Questa. avaria prende il nome di errore soft: una 0 piii celle di memoria non restituiscono sempre
I'infonnazione scritta in precedenza, rna non presentano un comportamento deterministico tale da
individuare esattamente Ie celie guaste. n fenomeno era particolarmente fastidioso per Ie .prime
genera.zioni di diSP09itivi, al punto tale da indurre i progettisti a usare siatemi di rivelazione e
correzione degli erron (introducendo bit aggiuntivi e controllando ogni singola lettura.). L'evohizione
della tecnologia ha migliorato l'affidabilita. delle memorie dinamiche a tal punta da rendere inutili
quest.e precauzioni. Oggigiorno, si usa un solo bit per la rilevazione dell'errore, oppure non si prende
ne8suna precauzione. Residuo stanco della cattiva reputazione deBe memorie dinamiche eil controllo
della memoria al momento dell'a.ccenSione presente su ogni PC IBM compatibHe.
"Tali componenti vengono spes80 denotati col no.me di bridge.
In questa modo e possibile dimezzare il numero di piedini necessari per
rizzamento, a spese perc del tempa di delo - il tempo necessaria per completare
un'operazione di lettura/scrittura. I castruttori fanno riferimento sempre al tempo
d.i accesso, queUo stampigliato suI contenitore per intendersi, doe il tempo necessario
per acquisire gli indirizzi (riga e colonna) e accedere al dato. Nel caso delle DRAM,
come verra illustrato pili avanti, tempo di cielo e.maggiore der-""t-=em=='=pCoo"'di accesso.
delle DRAM Abbiamo gia. detto come Ie celle siano organiz..
zae m una griglia con righe e colonne come schematizzato in Figura 3.4.
gereJscrivere un bit enecessaria formre alia memoria prima ,. dirizzo di riga (RAS
1
Row Address Strobe) di colonna (CAS, Column Address tro e .

82, Ca.pitolo 3
(
\
I
Figura 3.4 A sinistIa viene preseutata. la. struttura della. cella elementare. A destra.
Porganizzazione della matrice di una DRAM di IMbit, con l'indicazione dei piedini.
condensatore realizzato con la metallizzazione suI source del transistor ha uno spessore
del dielettrico (biossido di silicio) cosl sottile da costituire una barriera di potenziale
molta facile da abbattere: esufficiente una radiazione a bassa energia. per distruggere
13 barriera di potenziale e quindi la carica immagazzinata
3
.
La. memoria principale 83
DE abilitazione delle uscite.
6Si fara. riferimento al componente AS4CIM16E5 prodotto da Alliance Semiconductor.
6Per essere precisi, nel componente AS4CIM16E5, e presente un contatore interno di rinfrcsco
a 10 bit e quindi non sarebbe necessario caricare ogni volta. l'indirizzo di riga. Questo contatore e
presente Bulle RAM dinamiche delle ultime genera:zioni che prevedeno, all'ioterno, circuiti in grade
di svolgere tale fUDzione in varie modalita. operative.
c. '. WE Bcrittura in memoria.
Le caratteristiche delle DRAM verranno esposte in riIerimento a un ipotetico integrato
da 1M x 16 bits. I segnali di interesse sono:
Ao - Ag segnali per l'indirizzamento della memoria.
RAS segnale di carica.mento della riga.
'. CAS segnale di' caricamento della colonna.
DQl - DQ16 ingresso/uscita dati.
3.3.1 Un esempio di memoria DRAM
,
Per individuare una cella devono essere specificati riga e colonna. Per motivi
.di comodita. costruttiva la griglia e sempre quadrata, in questa caso 2
10
x 2
10
=
1024 x 1024 celIe di memoria. una cella si presentano, sui piedini A
o
- Ag,
gli indirizzi di riga e si asserisce RAS. Si aspetta che aia trascorao il tCE.O tRAH, si
pongono BU A
o
....: Ag,gli indirizzi di colonna e si asserisce il segnale di AS. Ri$petto
all'istante iniziale, i dati sono disponibili su DOUT dopo tRAC (Read Access Time).
In Figura 3.5 viene riportata la temporizzazione di un'operazione di lettura.
Per I'operazione di scrittura si segue una analoga procedura p"er il caricamenta
degli indirizzi
l
salvo poi, con i dati presenti su DIN, asserire WRITE contemporanea-
mente a CAS: in--.9.uesto modo si attiene la massima velocita di scrittura, rna niente
vieta di asserire WRlTE dopo il CAS.
L'attenta osservazione delle temporizzazioni di una DRAM, mostra come it tempo
di delo di lettura tRC sia diverso dal tempo di accesso tRAC. Nel caso del dispositivo
AS4CIM16E5 si ha tRC= 75ns e tRAC= 45os. Quindi I'operazione di lettura 0 di
scrittura necessita di un tempo almeno pari a tRc=75 ns..
Occorre poi tener conto del rinfresco. I costruttori indicano quanti cieli di rinfres-
co devono essere fatti in un predefinito intervallo. Nel easo delPesempia, oecorrono
1024 cieli in 16 rns. In pratica si deve presentare} con Un impulso di RAS, una
successione progressiva (da 0 a 1023) di indirizzi su A
o
- A
9
6 .
,
deli di rinfresco della memoria centrale (cosI. era su tutti i personal computer IBM
compatibili). . .'
Con l'avanzamento tecnologico, oitre alIa tecnica classica sopra accennata, detta
RAS-only, sana stati introdotte tecniche pili eflicienti, per esempio la cosiddetta CAS
, before RAS, can la Quale si sfrutta un generatore d'indirizzi di rinfresco interno
,., ficando gestione del multiplexer degli indirizzi esterno. Alcune memorie permettono
di optare fra pio soIuzioni predefinite nella gestione dei deli di rinfresco.
"... '
.,
-.
;
i.
'


.
.' .,.
:-. -
:<,:1'
'."" .
,"
'.
;;;;.1'

'j""
.' "
",'
.'
,t
.;
\".
,
"
".-'
",I
....,.'.
,:'
, .. .
..,
.,
"'

.,..
..
.
:;;

'''l " .. ,
', ..
....
-"r
,:'f-:
"", I',
, .,..'1
", :.


' .. ,
";,
.,
.t.,
..
.' '.'
."."
,' ...
,.
_
, ',l
'-':11
':-.
, n,
..
.-
'0
" .

"; "
" ';11
.;-..'"
.,:" ;
',' .,..
,
.ifl

,.J.; .

..
"
...
.
..
"
"If
',;Jo'.,
,: .:.!i
, ,.
.-"
'""ii
....
, '"'

'.
: ..
.-',
".''-i
{:; I;
,'" 'i
.. -. "
.;.':','
.." )"'
., o ,
" ',,:! , "
' .
. ' .. :
,Ill ._.
.'.), . , ,
''''-''. .
.... ' . ,
.. :; .
. .
.'
. .
-.\, ..
.. ' ,.),
'."

I'lolllJl.l
:) aUmento:&lone
10 lndlrinl
I RAS
I CAS
I DIO
1 R/V
"
WI,,: ric_
Bl,.: Colo"....
1000.1000
\
'H I
I A.m.plif I
IncUriz%o (
COlOlUll' )
t
d
..
lO
lndid:no (I
r
1
8" )

"'-
BL
PL
Rinfresco L'operazione di rinfresco consiste sem licemente nell'indirizzare pro res-
sivamente Ie ri e. uesta 0 erazione arta una Heve riduzlOne elle restaziani (tipi-
camente el 5% e viene atta, normalmente, da un apposito dispositivo, il controllore
delle DRAM, the, nella pratica corrente, fa parte dei componenti di corredo della
CPU, per la gestione dei bus di sistema
4
In passato, prima dell'avvento dei com-
ponenti tipo bridge veniva usualmente impiegato un canale di DMA per generare i
!Questa. avaria prende il nome di errore soft: una 0 piii celle di memoria non restituiscono sempre
I'infonnazione scritta in precedenza, rna non presentano un comportamento deterministico tale da
individuare esattamente Ie celie guaste. n fenomeno era particolarmente fastidioso per Ie .prime
genera.zioni di diSP09itivi, al punto tale da indurre i progettisti a usare siatemi di rivelazione e
correzione degli erron (introducendo bit aggiuntivi e controllando ogni singola lettura.). L'evohizione
della tecnologia ha migliorato l'affidabilita. delle memorie dinamiche a tal punta da rendere inutili
quest.e precauzioni. Oggigiorno, si usa un solo bit per la rilevazione dell'errore, oppure non si prende
ne8suna precauzione. Residuo stanco della cattiva reputazione deBe memorie dinamiche eil controllo
della memoria al momento dell'a.ccenSione presente su ogni PC IBM compatibHe.
"Tali componenti vengono spes80 denotati col no.me di bridge.
In questa modo e possibile dimezzare il numero di piedini necessari per
rizzamento, a spese perc del tempa di delo - il tempo necessaria per completare
un'operazione di lettura/scrittura. I castruttori fanno riferimento sempre al tempo
d.i accesso, queUo stampigliato suI contenitore per intendersi, doe il tempo necessario
per acquisire gli indirizzi (riga e colonna) e accedere al dato. Nel caso delle DRAM,
come verra illustrato pili avanti, tempo di cielo e.maggiore der-""t-=em=='=pCoo"'di accesso.
delle DRAM Abbiamo gia. detto come Ie celle siano organiz..
zae m una griglia con righe e colonne come schematizzato in Figura 3.4.
gereJscrivere un bit enecessaria formre alia memoria prima ,. dirizzo di riga (RAS
1
Row Address Strobe) di colonna (CAS, Column Address tro e .

82, Ca.pitolo 3
(
\
I
I
\
I
f
I
\
\
1
il consumo della eventuale logica
IT , n I" =20,200 =0,400A.
,
Dimensianare l'alimentazione per una memoria di 1 Mbyte (parole di
,
II dimensionamento delle alimentazioni.,
di un sistema di memoria
,-
..
P = n . f" . V" = 2 . O. 2003,3 = 1,32W.
La corrente totale di alimenta:;zione IT vale:
P =1,29 1024 =1,32W.
. Del restOI si poteva cakalare in questo modo:
L Collegamento diretto tra CPU e DRAM, Soluzione in disuso, praticata soCOra
negli soni settanta, La CPU deve fomire i segnali <Ii controllo compatibili can Ie
.. DRAM, Solo un numero limitato di CPU integrate ha seguito questa approccio
(10 Z80 fu uno di questi).
Nel calcolo precedente abbiamo trascurato
aecessoria per la decodifica degli indirizzi.
3.4
La soluzione autarchica, consistente nella progettazione della lagica eli contrallo
con' componenti standard, etendenzialmente da evitare per Ie complicazioni che essa
eomporta.
2. Impiego di uno specifieo controUore di DRAM. Per esempio, nel caso dei sistemi
SPARC monoprocessore, edisponibile il controllore ME 86980 che interfaccia
Ie memorie DRAM con I'MBUS (un bus de&nito dalla Sun Microsystem, su cui
ecollegata Ia CPU stessa, la memoria centrale e la cache). I PC moderni can
architettura Intel impiegano uno 0 due componenti bridgej questi hanno il com-
pito di gestire 10 seambio di informazioni tra i diversi (livelli eli) b.us, oltre che
di eantroUare i trasferimenti con la memoria centrale e can la cache esterna alIa
CPU.

1
. 64 bit).
Ttattandosi di una dimensione ormai piuttosto diffusa per una cache, l'esempio
verr" sviluppato solo in riferimento a una soluzlone can SRAM. L'integrato AS7C34096
ha un parallelismo di 8 bit, dunque per realizzare 1Mbyte occorrono (1024/512) = 2
i"ntegrati. .
.,Poich. il consumo ,pecifico della SRAM utilizzata eL29mW/kbyte, il con,umo
. dato da:
. -'
-'
r
I -
!
1_.. -
DATO YAUDO
'"c
COLONNA
""
JUH
--;1
DOUT
nfi'E
,,:..-;11'0', I
i -'\ \ \ -'
\. RAS \ \ 'to

'(CAS '\_
, ,
,
Tempadzzazione di una. operaziane eli lettura. di una memoria. DRAM.
L'interfacciamento con il processore
Si confronti questa dato con quello relativo alle SRAM.
Capitola 3
Per l'interfacciamento delle memorie dinamiche can il processore non esiste una solu-
zione standard. Le soluzioni pili comuni sono Ie seguenti.
3.3,2
t.l'. ".
..t':-:-", -;"
..
'11. '".,,"-
...." "
":1 ,"C'-' ", ,
;,.:':.j ". , La. memoria principale 85
""' "... \ ..

, , -:,
;'l( .': . ,.'

)" ,-' .
'1' ,
..
: ";' :.,"; :
\ .;.
. ..:, ,:'.
\ .

, "'jj
""I
.-j"
):. ,
',", '
,,'jl'
".
,""',, "
l,
""'!" '.' . .'
_"'o,J .
',r:j.
"".
, to
'....,'",..
..
:.'n.l
.',jJ;'
.,..
"c'
...1
::.' (
"
'"'l'!'
i'
,
.,
,.-:\j., ':
., .., .
:'
";i
t
" .
.. ..
Per rendere piu veloci Ie DRAM sono stati escogitati alcuni modi cli. funziona-
mente esoterici (sempre derivanti dal fatto che i1 principia di localita - spaziale - vale
anche in merirnento ai bit interni di un integrato), nati come static column
,
nibble
mode e page mode. Essi consistono sostanziaJmente nel mantenere costante un in- .\W::
dirizw (tipicamente QueUo di riga) e aggioroare solo l'indirizzo di colonna. Cia e '.
particolarmente utile nel caso in cui il processore generi indirizzi progressivi (came :
accade narmalmente, almeno nel fetch delle istruzioni).
N Ii ultimi anill sono de tecniche er migliorare Ie prestazioni ( .
delle DRAM e quaIi ha fatto se i 'JDa variet,J . . Ie identl ca lye e e carat
t e e piu significativa, e . ortato
un vero e proprio salta teH-e-B'R::A:M='st1 yecificato ,'{$.
u l'introdu' De sui mercato delle DRAM sincrone. In questa caso, come vedremo
pin avanti, 13. memoria ,. cia e aggancia il clock esteino per ..
sincronizzare Ie operazlOni i e fasi '!:J
di lettura sCIlttura m un ben determinata numera di deli di clock. ,i"
:
'.'jl '.
"-""1 '
.'IJ .
"," ,
Consumo L'aspetto che vale la pena di rimareare eit consumo specifieo. 11 eom-
ponente AS4C1M16E5 consurna 0,740 W. Tenuta conto che la capacit" edi 2Mbyte,
, ..
_ Potenza d1881pata _ 0,740 _ 0 3 W/kb (3) '1. .
P _. ., _ -, 61m yte .2 :'-J: ..
DunenslOne In kbyte 2048
.'"'1" .
if'
, .. .
<'t .,
:." ,
I'

':':"1'
,
, ;.
.
", ,
',t, ,
'. fl; .
. ".
c" .
,G '
'!

Figura 3.5
84
I
\
I
f
I
\
\
1
il consumo della eventuale logica
IT , n I" =20,200 =0,400A.
,
Dimensianare l'alimentazione per una memoria di 1 Mbyte (parole di
,
II dimensionamento delle alimentazioni.,
di un sistema di memoria
,-
..
P = n . f" . V" = 2 . O. 2003,3 = 1,32W.
La corrente totale di alimenta:;zione IT vale:
P =1,29 1024 =1,32W.
. Del restOI si poteva cakalare in questo modo:
L Collegamento diretto tra CPU e DRAM, Soluzione in disuso, praticata soCOra
negli soni settanta, La CPU deve fomire i segnali <Ii controllo compatibili can Ie
.. DRAM, Solo un numero limitato di CPU integrate ha seguito questa approccio
(10 Z80 fu uno di questi).
Nel calcolo precedente abbiamo trascurato
aecessoria per la decodifica degli indirizzi.
3.4
La soluzione autarchica, consistente nella progettazione della lagica eli contrallo
con' componenti standard, etendenzialmente da evitare per Ie complicazioni che essa
eomporta.
2. Impiego di uno specifieo controUore di DRAM. Per esempio, nel caso dei sistemi
SPARC monoprocessore, edisponibile il controllore ME 86980 che interfaccia
Ie memorie DRAM con I'MBUS (un bus de&nito dalla Sun Microsystem, su cui
ecollegata Ia CPU stessa, la memoria centrale e la cache). I PC moderni can
architettura Intel impiegano uno 0 due componenti bridgej questi hanno il com-
pito di gestire 10 seambio di informazioni tra i diversi (livelli eli) b.us, oltre che
di eantroUare i trasferimenti con la memoria centrale e can la cache esterna alIa
CPU.

1
. 64 bit).
Ttattandosi di una dimensione ormai piuttosto diffusa per una cache, l'esempio
verr" sviluppato solo in riferimento a una soluzlone can SRAM. L'integrato AS7C34096
ha un parallelismo di 8 bit, dunque per realizzare 1Mbyte occorrono (1024/512) = 2
i"ntegrati. .
.,Poich. il consumo ,pecifico della SRAM utilizzata eL29mW/kbyte, il con,umo
. dato da:
. -'
-'
r
I -
!
1_.. -
DATO YAUDO
'"c
COLONNA
""
JUH
--;1
DOUT
nfi'E
,,:..-;11'0', I
i -'\ \ \ -'
\. RAS \ \ 'to

'(CAS '\_
, ,
,
Tempadzzazione di una. operaziane eli lettura. di una memoria. DRAM.
L'interfacciamento con il processore
Si confronti questa dato con quello relativo alle SRAM.
Capitola 3
Per l'interfacciamento delle memorie dinamiche can il processore non esiste una solu-
zione standard. Le soluzioni pili comuni sono Ie seguenti.
3.3,2
t.l'. ".
..t':-:-", -;"
..
'11. '".,,"-
...." "
":1 ,"C'-' ", ,
;,.:':.j ". , La. memoria principale 85
""' "... \ ..

, , -:,
;'l( .': . ,.'

)" ,-' .
'1' ,
..
: ";' :.,"; :
\ .;.
. ..:, ,:'.
\ .

, "'jj
""I
.-j"
):. ,
',", '
,,'jl'
".
,""',, "
l,
""'!" '.' . .'
_"'o,J .
',r:j.
"".
, to
'....,'",..
..
:.'n.l
.',jJ;'
.,..
"c'
...1
::.' (
"
'"'l'!'
i'
,
.,
,.-:\j., ':
., .., .
:'
";i
t
" .
.. ..
Per rendere piu veloci Ie DRAM sono stati escogitati alcuni modi cli. funziona-
mente esoterici (sempre derivanti dal fatto che i1 principia di localita - spaziale - vale
anche in merirnento ai bit interni di un integrato), nati come static column
,
nibble
mode e page mode. Essi consistono sostanziaJmente nel mantenere costante un in- .\W::
dirizw (tipicamente QueUo di riga) e aggioroare solo l'indirizzo di colonna. Cia e '.
particolarmente utile nel caso in cui il processore generi indirizzi progressivi (came :
accade narmalmente, almeno nel fetch delle istruzioni).
N Ii ultimi anill sono de tecniche er migliorare Ie prestazioni ( .
delle DRAM e quaIi ha fatto se i 'JDa variet,J . . Ie identl ca lye e e carat
t e e piu significativa, e . ortato
un vero e proprio salta teH-e-B'R::A:M='st1 yecificato ,'{$.
u l'introdu' De sui mercato delle DRAM sincrone. In questa caso, come vedremo
pin avanti, 13. memoria ,. cia e aggancia il clock esteino per ..
sincronizzare Ie operazlOni i e fasi '!:J
di lettura sCIlttura m un ben determinata numera di deli di clock. ,i"
:
'.'jl '.
"-""1 '
.'IJ .
"," ,
Consumo L'aspetto che vale la pena di rimareare eit consumo specifieo. 11 eom-
ponente AS4C1M16E5 consurna 0,740 W. Tenuta conto che la capacit" edi 2Mbyte,
, ..
_ Potenza d1881pata _ 0,740 _ 0 3 W/kb (3) '1. .
P _. ., _ -, 61m yte .2 :'-J: ..
DunenslOne In kbyte 2048
.'"'1" .
if'
, .. .
<'t .,
:." ,
I'

':':"1'
,
, ;.
.
", ,
',t, ,
'. fl; .
. ".
c" .
,G '
'!

Figura 3.5
84
' . I>
"1'
\1'
,
Bus Do tl
Indl..-l
-
I
-
I
.
-. ...... _..
."
'"
ifi ill
.
v
[

"

"
, , ,

" " " "


.
M
, , ,

Bus no:tl
"">
< ,
.-g
I
.
6
6
I
In....'''.o ..... "'-"'_ I
I
In<C>
I
<> <> <> <>
3 2 1 0
BO
Bl
3
o
1

Figura 3.7 Organizzazione di una memoria a 32 bit (integrati COD parallelismo di byte). La
memoria si compone di due banchi, Bl e B2, ottenuti affiancando 4 integrati. Ogni colonna
eselezionata attraverso la decodifica dei due bit meno significativi dell'indirizzo.. I bit. piu
significativi (in questa caso 1, avendosi due soli banchi) selezionano il banco. In figura viene
mosttata la selezione dei soli due integrati piu a destra.
3 2 1 0
3 2 I 0
del1'indirizzo vengano impiegati per selezionare il byte all'interno della parola. Per
esempio, con un bus dati a 32 bit, Ie linee di indirizzo A
l
- Ao identilicano il singolo
byte all'interno di una parola (qualor. veng. indirizzato il singolo byte). Dall. de-
codific. di A, - A
o
si generano qu.ttro 'egnali (BE3;BE2,BE1,BEO) che 'e,vono a
selezionare la colonna di integrati relativa, come schematizzato in Figura 3.7.
Figura 3.6 Organizzazione di una memoria a 8 bit (integrati con parallelismo di byte). C
ela capacita. del singolo integrato, L la capacita della memoria. A sinistra. viene illustrata
la scbematizzazione della spazio di memoria diviso in blocchi contigui di dimensiooe pari a
C. A destra viene mostra-to 10 schema realizzativo: i 'due bit piu significativi dell'indirizzo
vengo
no
per selezionare .resta-uti. In(G) linee del
bus degli -indirizzi vengono callegate aJ. pJcdini comspondentl. sugh mtegratl.

:1'
,'Ili,
,.,
,I:

. -'
';1'

'l
"
, ',1
....1..
"'1'
'Jo,' ,
'il '
"'I .
".
:1 I'
'.
'. .,
con SRAM. Dal

P =0,361 . 65536 =23,7 W


Capitolo 3
Quindi, la corrente assorbita e:
Esempio 2 Dimensionare l'alimentazione per una memoria 64 Mbyte (parole di 64
bit), tipica dimensione di una memoria centrale.
Se tentassimo di realizzare questa memoria con la SRAM AS7C34096, si avrebbe:'
P = 1,2965.536 = 84,5 W.
86
con una corrente tota.le
Ir = P/V" = 84,5/3,3 = 25,6A (3.3)
Si vede subito the, anche a prescindere da considerazioni di costo, nOD eproprio
il caso di usare RAM statiche per la memoria principale. Va inoltre considerato che
gli integr.ti sarebbero ben 128 (64 Mbyte/512 kbyte) , occupando un. superficie circa
4 volte quella occupata dai. 32 integrati necessari per la stessa memoria in RAM
dinamica (vedi sotto).
Ir =PD/V" =23,7/5 = 4,74 A
circa 5 volte piu piccola della corrente assorbita daJla soluzione
confronto, risultano evidenti Ie motivazioni per Ie DRAM.
3,5 Organizzazione
.," "
.. r:;'
__-------------------- ,'1';;'1.'"I\\'!, ,\,"
-
.. , "< .

.i
: .. "" '
J;l"':: n' ..
)/.".-,"'.}-'-,!
",";'- . ",>
,pf:'':':" ...:"
',""-.: - \t,'! .':; ,
.,(: ;,".. ", .,.. ,',
'", ':
,. ,: /," ;.c....."
;',:':
':':{" \
,t. -''-'' _ ,
- ",-S',;'-, '-.- ' ....L
""r;";- ,
," ,,',' .'
". .' .'

-.... ,' . f' -c".-
., ',. -, .' "
,:- ,
. -f. '.: ;,':1::.
''':I' ,.. -,.; '.
,;>f -
' ." I'" . -. ,
,...\-:. '
'i: -: .',
,-'j"e. '_
-;".j.;} ... '.- .. \.
::< ',; .
", , ,", ' ,
Vediamo ora cosasucced.e memoria Can il
per fare orgawzzatl come 1M da 64 bit, occorrono OVVlamente 32 mtegratl.
L. patenz. dissIp.ta totale e . .:': ",
."h ...
;:
:ij :'....: '"':.
:";,: \ ',,: .
.,
_,>, I",
",
. "
." .
,
.tj\ .
,
,it " .
1",. ...
',".' .. .
I' .
,
"1" ,
':-,1 .

,.
,,,,
";" '
," I '
'.,r ,
.
". .'
....
1-'''
'I .. ..
: ..,

"
, '
! .e
,;. .
, .
, ,
.. ;,
.,
Nell'organizzazione della memoria centrale sono determinanti i seguenti aspetti:
a) tipo di integrati impiegati, parallelismo e loro dimensione;
b) grado di parallelismo del bus del sistema e dimensione complessiva della memoria.
Per semplificare, nella parte che segue si fa l'ipotesi di impiegare sempre integrati
con parallelismo di 8 bit (un byte). L'ipotesi non ein alcun modo limitativa, in quanta
un diverso parallelismo camporta. solo un diverse numero di integrati da sistemare in
parallelo. Per esempio se l'integrato ha parallelismo eli un solo bit, 1a costruzione di
un byte richiede l'impiego d.i 8 dispositivi in parallelo, cornandati identicamente.
E costume misurare in numero di byte la capacitA 0 dimensione della memoria.
Nel seguito si indica con T 1a dimensione tota.le della memoria e con C la la dimensione
del generico integrato. Un integrato di capacita C richiede In(C) linee di indirizzo.
Per una memoria di dimensione T ci vogliono, ovviamente, T 7 C integrati.
All'epoca della prima generazione dei microprocessori, il bus dati era a 8 bit.
La costruzione di una memoria prevedeva la dislocazione degli integrati a indirizzi
contigui, come schematizzato in Figura 3.6. .
Un maggior parallelismo aumenta le prestazioni: con 10 sviluppo tecnologico si
ecool passati a. bus dati di 16 bit, a bus di 32 bit, fino ai bus a 64 bit della gene-
razione corrente. L'aumento del parallelismo presuppone cbe i bit mena significativi
I
j
I
I
I
\
' . I>
"1'
\1'
,
Bus Do tl
Indl..-l
-
I
-
I
.
-. ...... _..
."
'"
ifi ill
.
v
[

"

"
, , ,

" " " "


.
M
, , ,

Bus no:tl
"">
< ,
.-g
I
.
6
6
I
In....'''.o ..... "'-"'_ I
I
In<C>
I
<> <> <> <>
3 2 1 0
BO
Bl
3
o
1

Figura 3.7 Organizzazione di una memoria a 32 bit (integrati COD parallelismo di byte). La
memoria si compone di due banchi, Bl e B2, ottenuti affiancando 4 integrati. Ogni colonna
eselezionata attraverso la decodifica dei due bit meno significativi dell'indirizzo.. I bit. piu
significativi (in questa caso 1, avendosi due soli banchi) selezionano il banco. In figura viene
mosttata la selezione dei soli due integrati piu a destra.
3 2 1 0
3 2 I 0
del1'indirizzo vengano impiegati per selezionare il byte all'interno della parola. Per
esempio, con un bus dati a 32 bit, Ie linee di indirizzo A
l
- Ao identilicano il singolo
byte all'interno di una parola (qualor. veng. indirizzato il singolo byte). Dall. de-
codific. di A, - A
o
si generano qu.ttro 'egnali (BE3;BE2,BE1,BEO) che 'e,vono a
selezionare la colonna di integrati relativa, come schematizzato in Figura 3.7.
Figura 3.6 Organizzazione di una memoria a 8 bit (integrati con parallelismo di byte). C
ela capacita. del singolo integrato, L la capacita della memoria. A sinistra. viene illustrata
la scbematizzazione della spazio di memoria diviso in blocchi contigui di dimensiooe pari a
C. A destra viene mostra-to 10 schema realizzativo: i 'due bit piu significativi dell'indirizzo
vengo
no
per selezionare .resta-uti. In(G) linee del
bus degli -indirizzi vengono callegate aJ. pJcdini comspondentl. sugh mtegratl.

:1'
,'Ili,
,.,
,I:

. -'
';1'

'l
"
, ',1
....1..
"'1'
'Jo,' ,
'il '
"'I .
".
:1 I'
'.
'. .,
con SRAM. Dal

P =0,361 . 65536 =23,7 W


Capitolo 3
Quindi, la corrente assorbita e:
Esempio 2 Dimensionare l'alimentazione per una memoria 64 Mbyte (parole di 64
bit), tipica dimensione di una memoria centrale.
Se tentassimo di realizzare questa memoria con la SRAM AS7C34096, si avrebbe:'
P = 1,2965.536 = 84,5 W.
86
con una corrente tota.le
Ir = P/V" = 84,5/3,3 = 25,6A (3.3)
Si vede subito the, anche a prescindere da considerazioni di costo, nOD eproprio
il caso di usare RAM statiche per la memoria principale. Va inoltre considerato che
gli integr.ti sarebbero ben 128 (64 Mbyte/512 kbyte) , occupando un. superficie circa
4 volte quella occupata dai. 32 integrati necessari per la stessa memoria in RAM
dinamica (vedi sotto).
Ir =PD/V" =23,7/5 = 4,74 A
circa 5 volte piu piccola della corrente assorbita daJla soluzione
confronto, risultano evidenti Ie motivazioni per Ie DRAM.
3,5 Organizzazione
.," "
.. r:;'
__-------------------- ,'1';;'1.'"I\\'!, ,\,"
-
.. , "< .

.i
: .. "" '
J;l"':: n' ..
)/.".-,"'.}-'-,!
",";'- . ",>
,pf:'':':" ...:"
',""-.: - \t,'! .':; ,
.,(: ;,".. ", .,.. ,',
'", ':
,. ,: /," ;.c....."
;',:':
':':{" \
,t. -''-'' _ ,
- ",-S',;'-, '-.- ' ....L
""r;";- ,
," ,,',' .'
". .' .'

-.... ,' . f' -c".-
., ',. -, .' "
,:- ,
. -f. '.: ;,':1::.
''':I' ,.. -,.; '.
,;>f -
' ." I'" . -. ,
,...\-:. '
'i: -: .',
,-'j"e. '_
-;".j.;} ... '.- .. \.
::< ',; .
", , ,", ' ,
Vediamo ora cosasucced.e memoria Can il
per fare orgawzzatl come 1M da 64 bit, occorrono OVVlamente 32 mtegratl.
L. patenz. dissIp.ta totale e . .:': ",
."h ...
;:
:ij :'....: '"':.
:";,: \ ',,: .
.,
_,>, I",
",
. "
." .
,
.tj\ .
,
,it " .
1",. ...
',".' .. .
I' .
,
"1" ,
':-,1 .

,.
,,,,
";" '
," I '
'.,r ,
.
". .'
....
1-'''
'I .. ..
: ..,

"
, '
! .e
,;. .
, .
, ,
.. ;,
.,
Nell'organizzazione della memoria centrale sono determinanti i seguenti aspetti:
a) tipo di integrati impiegati, parallelismo e loro dimensione;
b) grado di parallelismo del bus del sistema e dimensione complessiva della memoria.
Per semplificare, nella parte che segue si fa l'ipotesi di impiegare sempre integrati
con parallelismo di 8 bit (un byte). L'ipotesi non ein alcun modo limitativa, in quanta
un diverso parallelismo camporta. solo un diverse numero di integrati da sistemare in
parallelo. Per esempio se l'integrato ha parallelismo eli un solo bit, 1a costruzione di
un byte richiede l'impiego d.i 8 dispositivi in parallelo, cornandati identicamente.
E costume misurare in numero di byte la capacitA 0 dimensione della memoria.
Nel seguito si indica con T 1a dimensione tota.le della memoria e con C la la dimensione
del generico integrato. Un integrato di capacita C richiede In(C) linee di indirizzo.
Per una memoria di dimensione T ci vogliono, ovviamente, T 7 C integrati.
All'epoca della prima generazione dei microprocessori, il bus dati era a 8 bit.
La costruzione di una memoria prevedeva la dislocazione degli integrati a indirizzi
contigui, come schematizzato in Figura 3.6. .
Un maggior parallelismo aumenta le prestazioni: con 10 sviluppo tecnologico si
ecool passati a. bus dati di 16 bit, a bus di 32 bit, fino ai bus a 64 bit della gene-
razione corrente. L'aumento del parallelismo presuppone cbe i bit mena significativi
I
j
I
I
I
\
j
\ .
I .
r
I
I
I
1
(3.6)
(3.5)
Per una memoria dinamica
N
t= f
8L'Appendice B ededicata a un esame dell'architettura Intel.
3.6.1 Caso di studio: evoluzione della velocita della famiglia
8086 in rapporto a quella delle DRAM
dove tRe eil tempo di cicio della memoria.
Ovviamente, se Ie due precedenti non sono verificate, ovvero se la me-
moria elenta in paragone alIa CPU, oceorre inserire un numero d.i cieli di attesa (stati
di wait), N
w
, in modo tale che si abbia:
N+N
w
t = > tAGC,tRC
dove tACC eil tempo di accesso alla memoria.
tRC < t
-
Supponendo d.i trascurare in prima approssimazione i ritardi introdotti dall'even-
tuale logiea di decodifica, per una memoria statica esufficiente che
tACC < t (3.4)
La memoria principale 89
3.6 Relazione tra la velocita della CPU e la velocita
della memoria
, In Tabella 3.1 viene riportato it valore di t per differenti modelli (fino al 486) di
CPU della famiglia Intel 8086
8
. Lo stesso processore compare pill volte, in relazione
'a differenti versioni operanti a differenti frequenze. righe riportana anche i
tempi di ciclo delle DRAM di mercato all'epoea dell'introduzione .dei relativi modelli
di CPU. La tabella, per quanta approssimata, perche per le DRAM vengono dati
Un metodo per stimare la velocita (tempo di accesso) di una memoria da accoppiare
,-',. a una CPU equello sotto esposto.
- Si indichi con f la frequenza di clock della CPU e si supponga'che ogni accesso
'in memoria richieda, da parte della CPU, N dcli di clock, pari a un tempo:
Si noti tuttavia che l'introduzione ill uno 0 pin dcli di attesa ha l'effetto di
allungare il tempo di aecesso di una quantita pari a N
w
/ f. La penalizzazione etanto
maggiore quanto minore eN. Se N = I, un delo di wait equivale a dimezzare - per
quanta si riferisce all'accesso aHa memoria - la velodta. della CPU.
Per tale motivo, non sempre l'aggiunta di deli d.i wait ela migliore soluzione. In
certe situazioni, piuttosto che introdurre cieli d.i attesa, puo risultare pili eonveniente
ridurre f, in modo da avete un tM migliore di .queUo che si avrebbe con l'introduzione
".:, del wait.
. Di questo' e di altri aspetti si parla nel paragrafo seguente, dove si esamina, in
.dferimento la famiglia 8086, come si eevoluto nel tempo il rapporto tra la velocita.
della CPU e velocita delle memorie dinamiehe. .
,..
'; ..


,., ,
\1
' " ;
"',J!
.".-'
,..
.
,?:;;I'
:,
'< ,.,
t
',:;' '
- .,' '
,:."i:,I'
',.
"l
/<'1. :
". ,

-
f
""'j .
"'.'. ,
:.
,""1 ,
.! ,
,",
"r
-:":1',' '
!.,
":<;
:':",
.";

-,,,I.
" .-'

.;;"

,
Y."
, ',' ,"
.:,",'
''':,"
,:,::.-

, ;,p
_c,';ji
"it:


"," "
.("11"'.:
.." ;",.",.;);"
\::::
'.:t. ,,:........ ;.
:)1 '
:",
, \,.,
In(Cl
I lndlrlzzo .ntro Il boneo I Ii hnco I
B,
B rd
e"
=
-""
-'------.--_._-
1La CPU 8086 non vincolava all'allineamento, rna cia era. fonte di inefficienza. Si veda \' Appendice
B.
Con Finterlacciamento, rnentre per esempio avviene l'accesso al banco 0, al suc-
cessivo (0 ai successivi) puo gia. essere tiasmesso Pindirizzo cii riga (precaricamento
del RAS), in modo da evitare la parte pili onerosa dell'accesso.
L'interlacciamento ha comunque una controindicazione pratica; rende alquanto
laboriosa }'estensione della memoria con l'aggiunta cii ulteriori banchi. Per esempio,
facenda riferimento alIa Figura 3.8, se si vuole raddoppiare 1a memoria, portandola da
n a 2n banchi, il campo dell'indirizzo contenente il numero di banco deve estendersi di
un bit. Cia richiede, oltre a una nuova decodifica di questo campo, nuovi collegamenti
BU tutti Ie altre linee del bus degli indirizzi. AI problema si puo ovviare can della logica
aggiuntiva. In ogni caso, l'interlacciamento non e indicato au macchine che hanno il
loro punta di forza nel basso costa, nella modularita e nella espandibilita..
I i IBo

Figura 3.8 Indirizzamento interlacciato. Indirizzi consecutivi individuano posizioni in ban-


chi divers!: i bit meno significativi selezionano il banco, mentre i restanti bit identificano la
posizione entro la parola. entro i1 banco.
'"l
- ;.';, -
:..:'l '
/';:. >,
:
Abbiamo vista che la memoria, in particolare la dei vincoli temporali ':,jJ,: "
alIa velocita con cui possono cambiare i segnali (RAS e CAS). "'::',.
,"". .
':"'-' - . --
n problema si pone la CPU genera normalmente indirizzi consecutivi 0 , . '
comunque indirizzi che individuano posizioni nella stesso banco. II vincolo eevitato se .
- -' r
indirizzi consecutivi parole in banchi diversi, come illustrato in Figura 3.8.
Questa tecnica viene detta interlacciamento (interleaving) della memoria. '- ., -'.,
":,;;:; :.
-, ,'I. '
, ,
, " .
i',
"'-,i
-' "-

3.5.1 Interlacciamento
Nelle macchine moderne si richiede che istruzioni e dati siano allineati ai confini
della parola: in tal modo si puo sfruttare tutta la larghezza del bus
7
.
88 Capitola 3
,(
1
j
\ .
I .
r
I
I
I
1
(3.6)
(3.5)
Per una memoria dinamica
N
t= f
8L'Appendice B ededicata a un esame dell'architettura Intel.
3.6.1 Caso di studio: evoluzione della velocita della famiglia
8086 in rapporto a quella delle DRAM
dove tRe eil tempo di cicio della memoria.
Ovviamente, se Ie due precedenti non sono verificate, ovvero se la me-
moria elenta in paragone alIa CPU, oceorre inserire un numero d.i cieli di attesa (stati
di wait), N
w
, in modo tale che si abbia:
N+N
w
t = > tAGC,tRC
dove tACC eil tempo di accesso alla memoria.
tRC < t
-
Supponendo d.i trascurare in prima approssimazione i ritardi introdotti dall'even-
tuale logiea di decodifica, per una memoria statica esufficiente che
tACC < t (3.4)
La memoria principale 89
3.6 Relazione tra la velocita della CPU e la velocita
della memoria
, In Tabella 3.1 viene riportato it valore di t per differenti modelli (fino al 486) di
CPU della famiglia Intel 8086
8
. Lo stesso processore compare pill volte, in relazione
'a differenti versioni operanti a differenti frequenze. righe riportana anche i
tempi di ciclo delle DRAM di mercato all'epoea dell'introduzione .dei relativi modelli
di CPU. La tabella, per quanta approssimata, perche per le DRAM vengono dati
Un metodo per stimare la velocita (tempo di accesso) di una memoria da accoppiare
,-',. a una CPU equello sotto esposto.
- Si indichi con f la frequenza di clock della CPU e si supponga'che ogni accesso
'in memoria richieda, da parte della CPU, N dcli di clock, pari a un tempo:
Si noti tuttavia che l'introduzione ill uno 0 pin dcli di attesa ha l'effetto di
allungare il tempo di aecesso di una quantita pari a N
w
/ f. La penalizzazione etanto
maggiore quanto minore eN. Se N = I, un delo di wait equivale a dimezzare - per
quanta si riferisce all'accesso aHa memoria - la velodta. della CPU.
Per tale motivo, non sempre l'aggiunta di deli d.i wait ela migliore soluzione. In
certe situazioni, piuttosto che introdurre cieli d.i attesa, puo risultare pili eonveniente
ridurre f, in modo da avete un tM migliore di .queUo che si avrebbe con l'introduzione
".:, del wait.
. Di questo' e di altri aspetti si parla nel paragrafo seguente, dove si esamina, in
.dferimento la famiglia 8086, come si eevoluto nel tempo il rapporto tra la velocita.
della CPU e velocita delle memorie dinamiehe. .
,..
'; ..


,., ,
\1
' " ;
"',J!
.".-'
,..
.
,?:;;I'
:,
'< ,.,
t
',:;' '
- .,' '
,:."i:,I'
',.
"l
/<'1. :
". ,

-
f
""'j .
"'.'. ,
:.
,""1 ,
.! ,
,",
"r
-:":1',' '
!.,
":<;
:':",
.";

-,,,I.
" .-'

.;;"

,
Y."
, ',' ,"
.:,",'
''':,"
,:,::.-

, ;,p
_c,';ji
"it:


"," "
.("11"'.:
.." ;",.",.;);"
\::::
'.:t. ,,:........ ;.
:)1 '
:",
, \,.,
In(Cl
I lndlrlzzo .ntro Il boneo I Ii hnco I
B,
B rd
e"
=
-""
-'------.--_._-
1La CPU 8086 non vincolava all'allineamento, rna cia era. fonte di inefficienza. Si veda \' Appendice
B.
Con Finterlacciamento, rnentre per esempio avviene l'accesso al banco 0, al suc-
cessivo (0 ai successivi) puo gia. essere tiasmesso Pindirizzo cii riga (precaricamento
del RAS), in modo da evitare la parte pili onerosa dell'accesso.
L'interlacciamento ha comunque una controindicazione pratica; rende alquanto
laboriosa }'estensione della memoria con l'aggiunta cii ulteriori banchi. Per esempio,
facenda riferimento alIa Figura 3.8, se si vuole raddoppiare 1a memoria, portandola da
n a 2n banchi, il campo dell'indirizzo contenente il numero di banco deve estendersi di
un bit. Cia richiede, oltre a una nuova decodifica di questo campo, nuovi collegamenti
BU tutti Ie altre linee del bus degli indirizzi. AI problema si puo ovviare can della logica
aggiuntiva. In ogni caso, l'interlacciamento non e indicato au macchine che hanno il
loro punta di forza nel basso costa, nella modularita e nella espandibilita..
I i IBo

Figura 3.8 Indirizzamento interlacciato. Indirizzi consecutivi individuano posizioni in ban-


chi divers!: i bit meno significativi selezionano il banco, mentre i restanti bit identificano la
posizione entro la parola. entro i1 banco.
'"l
- ;.';, -
:..:'l '
/';:. >,
:
Abbiamo vista che la memoria, in particolare la dei vincoli temporali ':,jJ,: "
alIa velocita con cui possono cambiare i segnali (RAS e CAS). "'::',.
,"". .
':"'-' - . --
n problema si pone la CPU genera normalmente indirizzi consecutivi 0 , . '
comunque indirizzi che individuano posizioni nella stesso banco. II vincolo eevitato se .
- -' r
indirizzi consecutivi parole in banchi diversi, come illustrato in Figura 3.8.
Questa tecnica viene detta interlacciamento (interleaving) della memoria. '- ., -'.,
":,;;:; :.
-, ,'I. '
, ,
, " .
i',
"'-,i
-' "-

3.5.1 Interlacciamento
Nelle macchine moderne si richiede che istruzioni e dati siano allineati ai confini
della parola: in tal modo si puo sfruttare tutta la larghezza del bus
7
.
88 Capitola 3
,(
1
I
1
, J (MIIi.) , 1.u. (MHz) , t (ns) , t,u. (ns) , tRO (as)
cPU
Pentium
66 66 15 15 1uu
Pentium
133 66 7,5
. 15
100
Pentium Pro
266 66 3,8 15 80
Pentium II
400 100 2,5 10 60
Pentium III
733 133 1,4 7,5 60
10n 486 legge Ia. memoria in un cicio di dock solo durante Ie operazioni di riempimento e svuo-
tamento della cache intemaj se il processore a.ccede alla memoria in maniera "normale", senza doe
interessare la caehe - pereM, per esempio la cache edisa.bilitata 0 perehe si tratta. di una. zona non
(Int91] -, aHora vengono impiegati due deli di clock,. OYViamente, il modo di a.ccesso
"normale" ha ben poca importanza: esseodo presente la cache interna la memoria principale viene
interessata prevalentemente da richieste di lettura/scrittura di linee e eioe di blocchi di byte.
Vale la pena indagare anche neUa direzione schematizzabile con questa domanda:
Ufissata 1a tecnologia delle RAM dinamiche
l
ovvero per un dato tRO 1 qual ela massima
frequenza di clock aHa Quale puo essere portata la CPU senza che si rendano necessari
uno 0 pill statio di attesa?ll.
Supponendo ancora di avere una DRAM cia 80ns come tempo di accesso (corri-
spondenti tRc=150ns) e supponendo che il processore richieda due cieli di elock per
3.2 Frequenze di,clock della CPU (f) e.del bus esterno per i microprocessori
di c1asse Pentium e La separazl?Oe tra frequenza mterna (della CPU) ?
frequ
enza
del bus esterno e stata. lntrodotta con tl 486 DX2 (la frequenza del bus era meta
di quella della CPU) cd e poi diventata pratica corrente; can una crescente divaricazjone
tra Ie due. Le motivazioni sono soprattutto di carattere tecnologico: (1) non ha senso avere
all'esterno una frequenza rispetto aHa quale non esistono componenti adeguatij (2) frequenze
elevate comportano estreme difficolta realizzative per i costruttori di computer - si pensi ai
elettromagnetici indotti delle armoniche di ordine superiore.
. .
16 MHz, modeHi successivi hanna portato J fino a 40MBz. La Tabella3.1 mostra
che'il 386 a 12 MHz poteva essere ancora impiegato con DRAM con tnc = 150ns
(equivalente a tACO di 80ns). Con frequenza eli 40MHz, per portare t a 150ns, ci
vogliono ben 4 deli di attesa.
i numeri precedenti dicono cbe a partire cia un certo punto
l
Pimpiego diretto delle
'CPU con Ie memorie DRAM diventa insostenibile. In pratic3
l
si tratta di rallentare di
4 volte e oltre la velocita. di esecuzione. Di conseguenza, Ie memorie cache diventano
obbligatorie ancbe su macchine tipo personal computer. I costruttori stessi iniziano
,a produrre microprocessori con cache integrata.
Il micro 80486 ei1 primo esempio di CPU can cache integrata. II 486 non eun
l vero processore RlSe
l
rqa ha molte caratteristiche che 10 rendono paragonabile ai
roSC. In particolare, ci sonG alcune fasi in cui l'accesso alia memoria si compie in un
solo ciclo di clock
10
.
Con il 486le cose diventano insopportabili: per usare una DRAM con tRC ;;:: 150
,
ns, col modello a 50 MHz d vogliono ben 7 stati di wait. E questa il motivo per il
Quale; sebbene il 486 abbia una sua cache interna, efortemente consigliata una cache
esterna, in modo da evitare tanto spreco cii capacita. elaborativa.
'. ' .

..
',' ,..


,'I.
j(

""
..

'i .
, -,

';1
'r
,-,-
'!,.,I'p ,:
\.'.. 'I .... ' ,,,,
,.",
.1. 1 _ '.-
.. ')
":> La memoria principale 91
. '.
..
... '....
-'i .
.
.,
. ,
...
,
,"

t

,J;
"..,
"
,
--i'
..
I
"<'i "
:
}I'
',4- '
.
-.'.
....
...'1
..,I

-,1
,\;
-'''<
.,
--,.,

,.
.,.

,'", .

"
...,.,

,'. -
-.
-.
'c'
", I'
."
\:,' ,

.' -j-:
:',.''1,
, ),' ,.,.",
..
f '
"':1
"0..:-.
, .

, I'

...
,.'.
'. \1 .;, :
. ,'. J
"

,2".
...
';
301 ...
"
...., .-
':;J

"1
',\. '1

(3.7)
MIrZ)

N Nw t (ns)
IRO lns)
5 3 U 600 350
8086/88 10 3 0 300
80286 6 2
0 330 300
80286 6 2 1 500

12 2 0 167 1 0
80286/386 16 2
0 125
80286/386 16 2 1 188
8U386 40 2 0 5 100
80386 40 2 4 150
80486 25 1 0 40 100
80486 25 1 3 160
Con l'introduzione del processore 80286) ci si avvio a entrare nelPera in cui ie
DRAM risultarono piu lente delle CPU. n 286 richiede due cicli <Ii elock per accedere
alla memoria. Can J = 6 MHz si ha:
N 2
I = f = 6. 10' = 330 ns
valori plausibili, corrispondenti a integrati venduti in grandi volumi suI mercato, eun
buona specchio deU'evoluzione della tecnologia degli anni recenti.
Su alcWle righe della tabella, quando 13 DRAM risulta trappo leota in rapporto
al modella di CPU sana stati introdotti i cieli di wait necessari a renderle impiegabili.
nprimo PC IBM (1991) impiegava il micro 8088 can J pari a 4,77 MHz e montava
DRAM 64kx1 bit, can tempi <Ii cielo <Ii 350ns. La CPU in questione impiega 3 cieli
di clock per ogni accessa alla memoria. Come illustra la prima riga di Tabella 3.1 non
c'era nessun bisogno di deli di attesa.
La stessa tabella riporta i valori di t per la CPU 8086 con J = 10 MHz, frequenza
massima per cui estato prodotto questa micro.
90 Capit<>lo 3
't =(N + N
w
)/f =(H 1)/(6 .10') = 500 ...
Nell'anno dell'introduziooe del PC/AT (1983), Ie memorie dinarniche di hasso
costa avevano un tempo di delo attorno ai 300 nSj di poco inferiore a quello richiesto
dalla CPU._ Anche in previsione del madelia successivo, che avrebbe lavorato a 8 MHz,
venne introdotto uno stato di attesa, portando t a 500 ns
9
. In Tabella 3.1 viene dato
anche il t per ]'ultimaversione del 286 prodotta (a 16 MHz).
n micro 80386 introdotto nel 1987, non diversamente dal 286, impiega due cieli
d.i clock per leggerefscrivere in memoria. Originariamente, la frequenza era pari a
Tabella 3.1 Tempi per l'esecuzione di una operazione di lettura/scrittwa per differenti
modelli di CPU della famiglia 8086, fino al 486, per differenti frequenze del clock. Su alcune
righe sono stati inseriti alcuni cicli di wait. Ovviamente, 1a ta.bella rappresenta un piccolo
sottoinsieme delle versioni, operanti a frequenze crescenti, rilasciate via via dal costruttore.
I
\
I
I
I
\
\
\
\
\
I
1
, J (MIIi.) , 1.u. (MHz) , t (ns) , t,u. (ns) , tRO (as)
cPU
Pentium
66 66 15 15 1uu
Pentium
133 66 7,5
. 15
100
Pentium Pro
266 66 3,8 15 80
Pentium II
400 100 2,5 10 60
Pentium III
733 133 1,4 7,5 60
10n 486 legge Ia. memoria in un cicio di dock solo durante Ie operazioni di riempimento e svuo-
tamento della cache intemaj se il processore a.ccede alla memoria in maniera "normale", senza doe
interessare la caehe - pereM, per esempio la cache edisa.bilitata 0 perehe si tratta. di una. zona non
(Int91] -, aHora vengono impiegati due deli di clock,. OYViamente, il modo di a.ccesso
"normale" ha ben poca importanza: esseodo presente la cache interna la memoria principale viene
interessata prevalentemente da richieste di lettura/scrittura di linee e eioe di blocchi di byte.
Vale la pena indagare anche neUa direzione schematizzabile con questa domanda:
Ufissata 1a tecnologia delle RAM dinamiche
l
ovvero per un dato tRO 1 qual ela massima
frequenza di clock aHa Quale puo essere portata la CPU senza che si rendano necessari
uno 0 pill statio di attesa?ll.
Supponendo ancora di avere una DRAM cia 80ns come tempo di accesso (corri-
spondenti tRc=150ns) e supponendo che il processore richieda due cieli di elock per
3.2 Frequenze di,clock della CPU (f) e.del bus esterno per i microprocessori
di c1asse Pentium e La separazl?Oe tra frequenza mterna (della CPU) ?
frequ
enza
del bus esterno e stata. lntrodotta con tl 486 DX2 (la frequenza del bus era meta
di quella della CPU) cd e poi diventata pratica corrente; can una crescente divaricazjone
tra Ie due. Le motivazioni sono soprattutto di carattere tecnologico: (1) non ha senso avere
all'esterno una frequenza rispetto aHa quale non esistono componenti adeguatij (2) frequenze
elevate comportano estreme difficolta realizzative per i costruttori di computer - si pensi ai
elettromagnetici indotti delle armoniche di ordine superiore.
. .
16 MHz, modeHi successivi hanna portato J fino a 40MBz. La Tabella3.1 mostra
che'il 386 a 12 MHz poteva essere ancora impiegato con DRAM con tnc = 150ns
(equivalente a tACO di 80ns). Con frequenza eli 40MHz, per portare t a 150ns, ci
vogliono ben 4 deli di attesa.
i numeri precedenti dicono cbe a partire cia un certo punto
l
Pimpiego diretto delle
'CPU con Ie memorie DRAM diventa insostenibile. In pratic3
l
si tratta di rallentare di
4 volte e oltre la velocita. di esecuzione. Di conseguenza, Ie memorie cache diventano
obbligatorie ancbe su macchine tipo personal computer. I costruttori stessi iniziano
,a produrre microprocessori con cache integrata.
Il micro 80486 ei1 primo esempio di CPU can cache integrata. II 486 non eun
l vero processore RlSe
l
rqa ha molte caratteristiche che 10 rendono paragonabile ai
roSC. In particolare, ci sonG alcune fasi in cui l'accesso alia memoria si compie in un
solo ciclo di clock
10
.
Con il 486le cose diventano insopportabili: per usare una DRAM con tRC ;;:: 150
,
ns, col modello a 50 MHz d vogliono ben 7 stati di wait. E questa il motivo per il
Quale; sebbene il 486 abbia una sua cache interna, efortemente consigliata una cache
esterna, in modo da evitare tanto spreco cii capacita. elaborativa.
'. ' .

..
',' ,..


,'I.
j(

""
..

'i .
, -,

';1
'r
,-,-
'!,.,I'p ,:
\.'.. 'I .... ' ,,,,
,.",
.1. 1 _ '.-
.. ')
":> La memoria principale 91
. '.
..
... '....
-'i .
.
.,
. ,
...
,
,"

t

,J;
"..,
"
,
--i'
..
I
"<'i "
:
}I'
',4- '
.
-.'.
....
...'1
..,I

-,1
,\;
-'''<
.,
--,.,

,.
.,.

,'", .

"
...,.,

,'. -
-.
-.
'c'
", I'
."
\:,' ,

.' -j-:
:',.''1,
, ),' ,.,.",
..
f '
"':1
"0..:-.
, .

, I'

...
,.'.
'. \1 .;, :
. ,'. J
"

,2".
...
';
301 ...
"
...., .-
':;J

"1
',\. '1

(3.7)
MIrZ)

N Nw t (ns)
IRO lns)
5 3 U 600 350
8086/88 10 3 0 300
80286 6 2
0 330 300
80286 6 2 1 500

12 2 0 167 1 0
80286/386 16 2
0 125
80286/386 16 2 1 188
8U386 40 2 0 5 100
80386 40 2 4 150
80486 25 1 0 40 100
80486 25 1 3 160
Con l'introduzione del processore 80286) ci si avvio a entrare nelPera in cui ie
DRAM risultarono piu lente delle CPU. n 286 richiede due cicli <Ii elock per accedere
alla memoria. Can J = 6 MHz si ha:
N 2
I = f = 6. 10' = 330 ns
valori plausibili, corrispondenti a integrati venduti in grandi volumi suI mercato, eun
buona specchio deU'evoluzione della tecnologia degli anni recenti.
Su alcWle righe della tabella, quando 13 DRAM risulta trappo leota in rapporto
al modella di CPU sana stati introdotti i cieli di wait necessari a renderle impiegabili.
nprimo PC IBM (1991) impiegava il micro 8088 can J pari a 4,77 MHz e montava
DRAM 64kx1 bit, can tempi <Ii cielo <Ii 350ns. La CPU in questione impiega 3 cieli
di clock per ogni accessa alla memoria. Come illustra la prima riga di Tabella 3.1 non
c'era nessun bisogno di deli di attesa.
La stessa tabella riporta i valori di t per la CPU 8086 con J = 10 MHz, frequenza
massima per cui estato prodotto questa micro.
90 Capit<>lo 3
't =(N + N
w
)/f =(H 1)/(6 .10') = 500 ...
Nell'anno dell'introduziooe del PC/AT (1983), Ie memorie dinarniche di hasso
costa avevano un tempo di delo attorno ai 300 nSj di poco inferiore a quello richiesto
dalla CPU._ Anche in previsione del madelia successivo, che avrebbe lavorato a 8 MHz,
venne introdotto uno stato di attesa, portando t a 500 ns
9
. In Tabella 3.1 viene dato
anche il t per ]'ultimaversione del 286 prodotta (a 16 MHz).
n micro 80386 introdotto nel 1987, non diversamente dal 286, impiega due cieli
d.i clock per leggerefscrivere in memoria. Originariamente, la frequenza era pari a
Tabella 3.1 Tempi per l'esecuzione di una operazione di lettura/scrittwa per differenti
modelli di CPU della famiglia 8086, fino al 486, per differenti frequenze del clock. Su alcune
righe sono stati inseriti alcuni cicli di wait. Ovviamente, 1a ta.bella rappresenta un piccolo
sottoinsieme delle versioni, operanti a frequenze crescenti, rilasciate via via dal costruttore.
I
\
I
I
I
\
\
\
\
\
accesso, si ottiene:
.
CPU. Le prestazioni aumentano da un minima del 50% a un massimo del 100%
.all'anno.
92 Capitola 3
N 2

tRe 15 10-'
= 13,3 MHz
._,"
'; ;;:.. ,-,-
" ',-'\:---
... ,'."l'
"',' .' ....
(3.8)
.. , -
,
La memoria prindpale
o La velocita cresce di circa il 7% ogni 7 mesi, ovvero del 22% all'anno.
93
1
1
I
_Ovviamente, il differenziale tra i tassi di crescita ha reso sempre piu divaricata
la forbiee Ira Ie preslazloni delle CPU e delle memorie DRAM.
]
-. Localitd spaziale. NelPesecuzione di programma. e altamente probabile che la
o _ prossima istruzione sia contigua a quella in corso di esecuzione. Risultati speri-
_mentali eonfermane ehe i1 flusse delle istruzieni non mai treppe frammentato
e che i programmi tendono a generare riferimenti a zone d.i memoria consecutive
o eamunque vicine fra 10ro.
, Dati sperimentali sullJesecuzione dei programmi evidenziano che
memoria gadano della proprieta eli localita spaziale e temporate.
I riferimenti aHa
I
I
3.7 Localita, organi2;2i8:zione get at chica-
-
loLa capacita., ovvero 1a densita. di integrazione, quadruplica ogni 3 anni
13
.
>
.". Localitd temporale. Tutti gli algoritmi eontengono cieli, dunque Ie zone d.i me-
moria contenenti i cieli vengono esplorate piu valte da! Busse di istruzioni conse-
guente all'esecuzione di un data programma. In altre parole, momento in
. cui viene eseguita una generica istruzione a viene {atto riferimenta a un data, e
- _altamente prebabile che nel prossimo futuro venga d.i nuovo eseguita la medesima
, istruzione 0 fatto riferimento at medesimo dato.
Tenuto conto dei differenti costi della memoria intema rispetto alIa memoria
estema, il principia di localita. suggerisce di tenere nella memoria interna Bolo Ie
parti di programma che hanne alta prababilita di esaere indirizzate nel preaaime
futuro. Questa conaiderazione porta alla realizzazione eli sistemi a memoria virtuale.
renuto canto della maggiore velocita, rna anche del maggior costo, delle memorie
.statiche rispetto aUe memarie dinamiche, conviene ripartire la memoria interna in una
-,.(relativamente) estesa memoria principale, attraverso componenti DRAM,
e in una piccola memoria SRAM, can funzione d.i cache
14
interppsta tra il processore
e 130 memoria centrale.
Gerarchia
n principia di localita suggerisce d.i organizzare Ia memoria in mode La
gerarchia puo essere vista come una piramide che presenta al livello piu' alto i regiatri
di CPU e allivello pili basso Ie eventuali memorie di massa. Ovviamente, tanto pili
e alto illivello nella gerarchia (piu vicino al processore), tanto piu e veloce, piccola e
. 1.4n termine cache 5ta per luogo, ripostiglio sieura. lstituendo una analogia con l'economia quo--
tldlana, 1a cache sta al portafogli, come la memoria centrale sta alla cassaforte (0 al cassettone) di
casa.
I
\
I
I
I
I
,
accesso, si ottiene:
.
CPU. Le prestazioni aumentano da un minima del 50% a un massimo del 100%
.all'anno.
92 Capitola 3
N 2

tRe 15 10-'
= 13,3 MHz
._,"
'; ;;:.. ,-,-
" ',-'\:---
... ,'."l'
"',' .' ....
(3.8)
.. , -
,
La memoria prindpale
o La velocita cresce di circa il 7% ogni 7 mesi, ovvero del 22% all'anno.
93
1
1
I
_Ovviamente, il differenziale tra i tassi di crescita ha reso sempre piu divaricata
la forbiee Ira Ie preslazloni delle CPU e delle memorie DRAM.
]
-. Localitd spaziale. NelPesecuzione di programma. e altamente probabile che la
o _ prossima istruzione sia contigua a quella in corso di esecuzione. Risultati speri-
_mentali eonfermane ehe i1 flusse delle istruzieni non mai treppe frammentato
e che i programmi tendono a generare riferimenti a zone d.i memoria consecutive
o eamunque vicine fra 10ro.
, Dati sperimentali sullJesecuzione dei programmi evidenziano che
memoria gadano della proprieta eli localita spaziale e temporate.
I riferimenti aHa
I
I
3.7 Localita, organi2;2i8:zione get at chica-
-
loLa capacita., ovvero 1a densita. di integrazione, quadruplica ogni 3 anni
13
.
>
.". Localitd temporale. Tutti gli algoritmi eontengono cieli, dunque Ie zone d.i me-
moria contenenti i cieli vengono esplorate piu valte da! Busse di istruzioni conse-
guente all'esecuzione di un data programma. In altre parole, momento in
. cui viene eseguita una generica istruzione a viene {atto riferimenta a un data, e
- _altamente prebabile che nel prossimo futuro venga d.i nuovo eseguita la medesima
, istruzione 0 fatto riferimento at medesimo dato.
Tenuto conto dei differenti costi della memoria intema rispetto alIa memoria
estema, il principia di localita. suggerisce di tenere nella memoria interna Bolo Ie
parti di programma che hanne alta prababilita di esaere indirizzate nel preaaime
futuro. Questa conaiderazione porta alla realizzazione eli sistemi a memoria virtuale.
renuto canto della maggiore velocita, rna anche del maggior costo, delle memorie
.statiche rispetto aUe memarie dinamiche, conviene ripartire la memoria interna in una
-,.(relativamente) estesa memoria principale, attraverso componenti DRAM,
e in una piccola memoria SRAM, can funzione d.i cache
14
interppsta tra il processore
e 130 memoria centrale.
Gerarchia
n principia di localita suggerisce d.i organizzare Ia memoria in mode La
gerarchia puo essere vista come una piramide che presenta al livello piu' alto i regiatri
di CPU e allivello pili basso Ie eventuali memorie di massa. Ovviamente, tanto pili
e alto illivello nella gerarchia (piu vicino al processore), tanto piu e veloce, piccola e
. 1.4n termine cache 5ta per luogo, ripostiglio sieura. lstituendo una analogia con l'economia quo--
tldlana, 1a cache sta al portafogli, come la memoria centrale sta alla cassaforte (0 al cassettone) di
casa.
I
\
I
I
I
I
,

95 La memoria principale
c
-
_____
/(,...., ')
- .. .-
I
.,.... -
Un esempio di gerarchia
tempo di penalizzazione, combinazione del tempo di accesso a1 livello inferiore e
del tempo necessaria a trasferire il blocco dallivello inferiore a queUo superiore.
3.7.3
t
p
,
A conclusione di questa sezione, viene ora presentato un esempio di gerarchia di
memoria (Figura3.1O), L'esempio si riferisce aU1organizzazione della memoria di un
calcolatore personale basato suI microprocessore futel Pentium II (333 MHz). I dati
qua:nti_tativi riportati in Figura 3.10 derivano dalle seguenti considerazioni.
...' nbus dati e iI bus indirizzi del microprocessore sana entrambi a 64 bit.' La
versione scelta del Pentium, lavora con un clock interno alia frequenza di 333 MHz
(3 DS) e' con una frequenza di clock per il bus esterno di 66 MHz. Combinando questa
data con 1a dimensione della paro1a (8 byte) si ottiepe una banda passante verso la
memoria di 528Mbyte/s
16
, Una tale banda passante edel tutto insostenibile per una
DRAM. Per questo motivo estata integrata sullo stesso chip una cache interna da 16
+ 16kbyte (dati e istruzioni),
.' All'esterno un periodo di clock dura 15 DS. Per lavorare can la memoria dinamica
(supponendo di non lisare trueehi particolari) devono essere introdotti alcuni stati"
d'attesa. Nella schema di Figura 3.10 estata prevista una memoria cache di secondo
livello. - '
La dimensione del blocco trasferito dipende dalla posizione relativa nella
chia; per esempio tra memorie di massa e meIno:(ia centrale si scambiano blocchi di
qualche kbyt'e, mentre tra memoria centrale e cache si scambiano blocchi di qualche
decina di byte.
16Si,tra.tta. ovviamente di una. stima. ottimistica, da. interpretare come il limite superiore, corris-
pondente a. una. situazione in cui a ogni cicIo di clock si ha. un a.ccesso in memoria - per esempio,
se Ia. m.acchina. eseguisse una istruzione per delo.
Risulta evidente che per ottenere i benefiei dell'organizzazione gerarchiea, ovvero
,..' deWuso di memoria pili veloee ai livelli superiori, enecessaria che h sia il pill possibile
prossimo a I,
Nel caso di miss, la ricerca nellivello inferiore puo ancora dare luogo a un ulteriore
can la conseguenza che 1a ricerca deve procedere a un livello aneora pill basso.
Dal liveHo i cui il data viene trovato, viene prelevato un blocco e al livello
superiore. Ovviamente, se si e in presenza di miss multipli, da questa bloeeo viene
estratto il sottoblocco da trasferire al Hvello ancora pill alto. Poiche i trasferimenti
avvengono tra livelli adiacenti, .l'analisi puo essere eondotta considerando gli eftetti
'di hit e miss tra due livelli contiguij nel prosieguo questi verranno chiamati hvello
superiore e Ii vella inferiore, ovvero livell0 alto e livello basso.
, "
,
'-'
, 1
'"'I
'. l

, "
At

'JI

"'j
',,'It
-',
'C,,i[' "
A',
c.... i,"
,\', "
")1,,,
"

'1
.;, .
.,:.;,

'" 1 .
::8


, .
"1'1.,
,-,-;;,
"
:_\1,
, '!

,,il
' .',',
"'1
e," ,
"
,
;<:11
,.., ,
'",
-
(3,10)
(3,9)
,
numero di miss nel HveHo
livello
interlore
m=l-h
t = h ' t,. +m ' t
p
B
))1
'- .
blocch
tempo di accesso al livella superiore (comprensivo del tempo che si richiede per
determinare se il data si trova a questa livella);
-Capitolo 3
tasso di miss, e si denota con ffi, il rapporto tra il
superiore e il DUIDerO tatale di riferimenti.
Ovviamente, vale la relazione:
tasso di hit, e si denota can h, il rapporta tra il numero eli hit nelliveUo superiore
e il numero totale di riferimenti j
til:
15Si ipoti:z.za- una. operazione di lettura..
dove:
8i parla di tempo di hit e di penalizzazione di miss per indicare rispettivamente il
tempo necessario per un accesso nel livello piu alto e il tempo pagato per trasferire il
blocco dallivello piti basso e per trasmettere il dato indirizzato al proeessore. Facendo
riferimento alla Figura 3.9, assumendo che i1 Uvello alto sia una cache e che illiveUo
basso sia 1a memoria principale, il tempo medio di accesso alIa memoria, f, puo essere
espresso come:
Figura 3.9 Organizzazione gerarchica. della. memoria...

-;1\. ,_
"

:1',
"'I'
'.
. "t,
.
"'1
,;,-: '
_,0\ ,

. ',':
, ':1
. " .. ,.

"I
,,;-:.;'1 '
," '
, ",l
",1
--:i:
n trasferimento di informazioni all'interno della gerarchia avviene tralivelli adia- .
centi, can tra.sferimenti in bloceo. La Figura3.9 schematizza questa meccanismo,
Quando il date viene trovata nel livello inferiore si rende necessaria "-';]n,
to del livello superiore, trasferendovi il blocco di informazione comprendente il da-' 'cwl :-' ':
to cereate. E orna the da questa trasferimento deriva una degradazione delle '. \il ,':'.
prestazioni. .
.'J'
.:. ,1(';, '
,;.."
-q
- '"'.
,j11'

'
:\:
:J
1
"
"';1 ..:: ..
"f:;! , '"
,.
, ., . 'I
:-,"
costosa la corrispondente memoriaj tanto pill ebasso il hvella nella gerarchia) tanto .... "1'1
meno e piccola e la mem?ria... , . ," -PI"
Quando il processore genera un mdinzzo
1
Vlene pnma esammata la memOria dl .
livello pili alto. Se questa contiene il relativQ data si parla di hit e il data viene : ::,:iil, ,
direttamente trasmesso al processore
15
. In caso contrario si ha un miss e Decorre ...
"
ricercare nella memoria di livello inferiore. Si definisce ..
94
\
t
\
I
I
I
I
I
\
\
I
I

95 La memoria principale
c
-
_____
/(,...., ')
- .. .-
I
.,.... -
Un esempio di gerarchia
tempo di penalizzazione, combinazione del tempo di accesso a1 livello inferiore e
del tempo necessaria a trasferire il blocco dallivello inferiore a queUo superiore.
3.7.3
t
p
,
A conclusione di questa sezione, viene ora presentato un esempio di gerarchia di
memoria (Figura3.1O), L'esempio si riferisce aU1organizzazione della memoria di un
calcolatore personale basato suI microprocessore futel Pentium II (333 MHz). I dati
qua:nti_tativi riportati in Figura 3.10 derivano dalle seguenti considerazioni.
...' nbus dati e iI bus indirizzi del microprocessore sana entrambi a 64 bit.' La
versione scelta del Pentium, lavora con un clock interno alia frequenza di 333 MHz
(3 DS) e' con una frequenza di clock per il bus esterno di 66 MHz. Combinando questa
data con 1a dimensione della paro1a (8 byte) si ottiepe una banda passante verso la
memoria di 528Mbyte/s
16
, Una tale banda passante edel tutto insostenibile per una
DRAM. Per questo motivo estata integrata sullo stesso chip una cache interna da 16
+ 16kbyte (dati e istruzioni),
.' All'esterno un periodo di clock dura 15 DS. Per lavorare can la memoria dinamica
(supponendo di non lisare trueehi particolari) devono essere introdotti alcuni stati"
d'attesa. Nella schema di Figura 3.10 estata prevista una memoria cache di secondo
livello. - '
La dimensione del blocco trasferito dipende dalla posizione relativa nella
chia; per esempio tra memorie di massa e meIno:(ia centrale si scambiano blocchi di
qualche kbyt'e, mentre tra memoria centrale e cache si scambiano blocchi di qualche
decina di byte.
16Si,tra.tta. ovviamente di una. stima. ottimistica, da. interpretare come il limite superiore, corris-
pondente a. una. situazione in cui a ogni cicIo di clock si ha. un a.ccesso in memoria - per esempio,
se Ia. m.acchina. eseguisse una istruzione per delo.
Risulta evidente che per ottenere i benefiei dell'organizzazione gerarchiea, ovvero
,..' deWuso di memoria pili veloee ai livelli superiori, enecessaria che h sia il pill possibile
prossimo a I,
Nel caso di miss, la ricerca nellivello inferiore puo ancora dare luogo a un ulteriore
can la conseguenza che 1a ricerca deve procedere a un livello aneora pill basso.
Dal liveHo i cui il data viene trovato, viene prelevato un blocco e al livello
superiore. Ovviamente, se si e in presenza di miss multipli, da questa bloeeo viene
estratto il sottoblocco da trasferire al Hvello ancora pill alto. Poiche i trasferimenti
avvengono tra livelli adiacenti, .l'analisi puo essere eondotta considerando gli eftetti
'di hit e miss tra due livelli contiguij nel prosieguo questi verranno chiamati hvello
superiore e Ii vella inferiore, ovvero livell0 alto e livello basso.
, "
,
'-'
, 1
'"'I
'. l

, "
At

'JI

"'j
',,'It
-',
'C,,i[' "
A',
c.... i,"
,\', "
")1,,,
"

'1
.;, .
.,:.;,

'" 1 .
::8


, .
"1'1.,
,-,-;;,
"
:_\1,
, '!

,,il
' .',',
"'1
e," ,
"
,
;<:11
,.., ,
'",
-
(3,10)
(3,9)
,
numero di miss nel HveHo
livello
interlore
m=l-h
t = h ' t,. +m ' t
p
B
))1
'- .
blocch
tempo di accesso al livella superiore (comprensivo del tempo che si richiede per
determinare se il data si trova a questa livella);
-Capitolo 3
tasso di miss, e si denota con ffi, il rapporto tra il
superiore e il DUIDerO tatale di riferimenti.
Ovviamente, vale la relazione:
tasso di hit, e si denota can h, il rapporta tra il numero eli hit nelliveUo superiore
e il numero totale di riferimenti j
til:
15Si ipoti:z.za- una. operazione di lettura..
dove:
8i parla di tempo di hit e di penalizzazione di miss per indicare rispettivamente il
tempo necessario per un accesso nel livello piu alto e il tempo pagato per trasferire il
blocco dallivello piti basso e per trasmettere il dato indirizzato al proeessore. Facendo
riferimento alla Figura 3.9, assumendo che i1 Uvello alto sia una cache e che illiveUo
basso sia 1a memoria principale, il tempo medio di accesso alIa memoria, f, puo essere
espresso come:
Figura 3.9 Organizzazione gerarchica. della. memoria...

-;1\. ,_
"

:1',
"'I'
'.
. "t,
.
"'1
,;,-: '
_,0\ ,

. ',':
, ':1
. " .. ,.

"I
,,;-:.;'1 '
," '
, ",l
",1
--:i:
n trasferimento di informazioni all'interno della gerarchia avviene tralivelli adia- .
centi, can tra.sferimenti in bloceo. La Figura3.9 schematizza questa meccanismo,
Quando il date viene trovata nel livello inferiore si rende necessaria "-';]n,
to del livello superiore, trasferendovi il blocco di informazione comprendente il da-' 'cwl :-' ':
to cereate. E orna the da questa trasferimento deriva una degradazione delle '. \il ,':'.
prestazioni. .
.'J'
.:. ,1(';, '
,;.."
-q
- '"'.
,j11'

'
:\:
:J
1
"
"';1 ..:: ..
"f:;! , '"
,.
, ., . 'I
:-,"
costosa la corrispondente memoriaj tanto pill ebasso il hvella nella gerarchia) tanto .... "1'1
meno e piccola e la mem?ria... , . ," -PI"
Quando il processore genera un mdinzzo
1
Vlene pnma esammata la memOria dl .
livello pili alto. Se questa contiene il relativQ data si parla di hit e il data viene : ::,:iil, ,
direttamente trasmesso al processore
15
. In caso contrario si ha un miss e Decorre ...
"
ricercare nella memoria di livello inferiore. Si definisce ..
94
\
t
\
I
I
I
I
I
\
\
I
I
\
I
,
I
\
I
I
\
I
1
I
1
I
1
SDRAM (Synchronous Dinanllc Random Access
Memory) - DRAM sincrone
3.. 8.. 2 Cached DRAM
Quando ci si eaccorti che si sarebbero superati i 66 MHz di frequenza di bus, si e
.capito che per superare i problemi relativi alla latenza delle memorie DRAM occorreva
una diver3a tecnologia. Si epassati a una interfacda sinerana, secondo la quale, una
volta inviati gli indirizzi e atteso un preciso numero eli cieli, durante i quali la memoria
esegue al suo interno Ie varie funzioni sincronizzate dal clock esterno
,
il procesaore
esegue la lettura dei dati richiesti.
, 3,8.. 3
..
Un'altra tecnica per accelerare l'accesso ai dati in memoria equella delle CDRAM
, (Cached-Dram), Si tratla di RAM dinamiche che presentano sull'integrato una RAM
statica in funzione di cache. nmiglioramento di velodta edovuto anche al fatto che
la porzione di cache e in grade di gestire intensi Bussi di dati dalla Dram interna
,;'. attraverso un ampio bus interno, per esempio a 128 bit, contro un bus esterno a 16.
"La cache esincronizzata da un clock esterno (che puo raggiungere i 100 MHz).
,
principali tipi di DRAM Rassegna sui
commerciali
Capitola 3
3.8
CPU T :I: 3ns <333 MHz)
.
64 OIt
40 regls1:rl do. 64 bit
..
Cache interno. do. 16 -l- Kbyte 64 bi Controllore cache interne
(dati e Istruzlonl) - 333 MHz 333 MHZ - 528
Co.che esterna do 512 Kbyte
,. OIt Con troll ore cache esterno
SRAH 6 ns
333/2 MHz - 264 Mbyte/s
Mel'1orlo. centrale do. 128 Mbyte
64 Control\ore Mer-'lorla. centro.le
EDo DRAM 60 n5 bursi 5-2-2-2 66 MHz 180 Hbyte/5
,
DIsco rlgldo do. 8,2 Gbyte 8 bIt r-'ler-'loria dl Mo.SSo.
ve\oc1tO 10 Mbyte/s SCSI
Lettol"e dl CD-ROM do 650 Mbyte
w,
veloc1to. (24x) 3,6 Hbytels
96
M"'>"':'
,-- ..
--
..;;:, ,
La. memoria principale 91
. ,,,,. ----------------------------'-----'----'---'-
'. ,....
-- . ',;,-,:.;' .
. '::)j
Ih -'.
:>1 'rr <,' ',," 'n Fast Page Mode estato un metoda di accesso utilizzato molto diffusamente per
"', ..-:.: Ie' DRAM ed eancora su slsteIIll, an<:he !e !PM sono
-'1,1. , '. vate solo a Quei sisteml che non nescono a gestrre tlPl d.i memone pm avanzate
\j:j r
s
;; esempio su basa:i 486). A causa
of! I,:,. '::,>.....,. l'FPM e ora In effettl pIll cara della magglor parte delle memOne ptu veloel
:::'.'.-::< disponibili.
. '
:;,_. "1 - .. -._
,;f:: <",':EDO _ DRAM (Extended Data Out, chiamata mche Hyper Page Mode)
sr tratta. d.i una variante della Fast Page Memory. Mentre con le FPM la negazione
,(/." . di CAS disabilita i e. i disp0nibilil C?D Ie .E?O 1a
'il. ': .'.. negazione del CAS non dlsabilita 1 regtstn dl Usclta, e 1dati restano dis"pornbih fino
" _a. quando non viene nuovamente asserito CAS, cioe quando sono stati generati sia
,.. -. iLnuovO indirizzo di riga sia it nuovo indirizzo di colonna. Oio permette di arlottare
:';",'::: '.":'; ' .. temporizzazioni stringenti per il . , .
::it" ", ': - '-. Le EDO arnvano a una. temponzzazlone 5-2-2-2, cornspondente a un mlgliora-
)j ;;<"c"> meoto del 20% rispetto alia DRAM FPM, Le EDO hanno praticamente rimpiazzato
,.:.ij:..,',':::: ',": ,; ie FPM" (delle quaii mantenevano praticamente invariati i costi di produzione), di-
Figu.ra 3.10 gera.z:ch1ca della in un calcolatoT.e personale con CPU ;',.:, ".. .::". vEmtando ,10 standard. pe.r PC bus a n?n. superiori 66 MHz. Oltre tale
PentiUm II. Per 11 slgnificato della sigia 81 veda 11 paragrafo relatlvo aile EDO DRAM. .' :":' , 'velociU. dl bus, esse ncmedono l'mtroduzlone di statl di attesa.
;,)111 ,L'evoluzione delle EDO sono state Ie BEDO (Bu"t Extended Data Out), Esse
: "'.t' .. sono equipaggiate can una logica di cantrollo e tempop,zzazione interna supplemen-
,':", tare,. in grado di generare autonomamente tre indirizzi consecutivi al prima, fornito
'/,,9y,: ",' ',tramite Ie !inee di indirizzo, il RAS e il CAS. Si earrivati a una temporizzazione
'<,;' 4-1-1-1,.<on frequenza di clock di Thttavia Ie BEDO non hanno avuto un ap-
D
" '11 I" ali .. 'ch di at 't" d' r ' d' DRAM" '::{!l " ,,'," "rezzablle succeaso, a causa dl pohllche mdustnali che hanno pnvileg>ato 10 sviluppo
1 segwt? I u.strate e pnnClp . e. cum .lpl ! Ipl I, ,,;.',. :"" delle memorie sincrone.
commerclah apparSl suI mercato negh ultlml anm, nell'mtento dl coghere Ie dlff'erenze' f;:O:l ' .,,'
fra gli approcci tecnologici e progettuali seguiti al fine di migliorarne le prestazioni. :.:",;, ',", ,
:_XI}1 :' "
''''\1'' ., '. "
,
3.8.1 DRAM con accesso a pagina
I:.,','
'
PMA - DRAM (Page Mode Access) La modalita di accesso di pagina e ':
, .
mantenendo attivo ilsegnale RAS in modo che un'intera pagina di dati sia tenuta sugH ,
amplificatori. Nuovi indirizzi di colonna possono essere sincronizzati ripetutamente
iterando solo il CAS.
, " '
(. -; :" ",
..... ' ,,,-
. "'"'" " ,-
,'.t'!l ,.-
'".,
'".", .
FPM - DRAM (Fast Page Mode) La modalita di pagina veloce, costituisce '" -
evoluzione della precedente. n miglioramento estato ottenuto attivando i buffer di ".
indirizzo di colonna suI fronte di discesa del RAS (piuttosto che del CAS), Poich. il )1;" "
RAS rimane basso per l'intero dclo di pagina, Questi agiscono come latch trasparenti '
quando il CAS ealto; non c'e bisogno di attendere che CAS vada basso per
l'indirizzo di colonna.
Le sincronizzazioni tipiche sono 6-3-3-3. Con questa notazione si vuole indicare ':)W
il numero di deli di clock necessari per ottenere rispettivamente il 1, il 2 I il 3 e
4 dato della pagina selezionata. ,::'d "
ii'it'
''''j ,
',.
\
I
,
I
\
I
I
\
I
1
I
1
I
1
SDRAM (Synchronous Dinanllc Random Access
Memory) - DRAM sincrone
3.. 8.. 2 Cached DRAM
Quando ci si eaccorti che si sarebbero superati i 66 MHz di frequenza di bus, si e
.capito che per superare i problemi relativi alla latenza delle memorie DRAM occorreva
una diver3a tecnologia. Si epassati a una interfacda sinerana, secondo la quale, una
volta inviati gli indirizzi e atteso un preciso numero eli cieli, durante i quali la memoria
esegue al suo interno Ie varie funzioni sincronizzate dal clock esterno
,
il procesaore
esegue la lettura dei dati richiesti.
, 3,8.. 3
..
Un'altra tecnica per accelerare l'accesso ai dati in memoria equella delle CDRAM
, (Cached-Dram), Si tratla di RAM dinamiche che presentano sull'integrato una RAM
statica in funzione di cache. nmiglioramento di velodta edovuto anche al fatto che
la porzione di cache e in grade di gestire intensi Bussi di dati dalla Dram interna
,;'. attraverso un ampio bus interno, per esempio a 128 bit, contro un bus esterno a 16.
"La cache esincronizzata da un clock esterno (che puo raggiungere i 100 MHz).
,
principali tipi di DRAM Rassegna sui
commerciali
Capitola 3
3.8
CPU T :I: 3ns <333 MHz)
.
64 OIt
40 regls1:rl do. 64 bit
..
Cache interno. do. 16 -l- Kbyte 64 bi
Controllore cache interne
(dati e Istruzlonl) - 333 MHz
333 MHZ - 528
Co.che esterna do 512 Kbyte
,. OIt
Con troll ore cache esterno
SRAH 6 ns
333/2 MHz - 264 Mbyte/s
Mel'1orlo. centrale do. 128 Mbyte
64
Control\ore Mer-'lorla. centro.le
EDo DRAM 60 n5 bursi 5-2-2-2 66 MHz 180 Hbyte/5
,
DIsco rlgldo do. 8,2 Gbyte 8 bIt
r-'ler-'loria dl Mo.SSo.
ve\oc1tO 10 Mbyte/s SCSI
Lettol"e dl CD-ROM do 650 Mbyte
w,
veloc1to. (24x) 3,6 Hbytels
96
M"'>"':'
,-- ..
--
..;;:, ,
La. memoria principale 91
. ,,,,. ----------------------------'-----'----'---'-
'. ,....
-- . ',;,-,:.;' .
. '::)j
Ih -'.
:>1 'rr <,' ',," 'n Fast Page Mode estato un metoda di accesso utilizzato molto diffusamente per
"', ..-:.: Ie' DRAM ed eancora su slsteIIll, an<:he !e !PM sono
-'1,1. , '. vate solo a Quei sisteml che non nescono a gestrre tlPl d.i memone pm avanzate
\j:j r
s
;; esempio su basa:i 486). A causa
of! I,:,. '::,>.....,. l'FPM e ora In effettl pIll cara della magglor parte delle memOne ptu veloel
:::'.'.-::< disponibili.
. '
:;,_. "1 - .. -._
,;f:: <",':EDO _ DRAM (Extended Data Out, chiamata mche Hyper Page Mode)
sr tratta. d.i una variante della Fast Page Memory. Mentre con le FPM la negazione
,(/." . di CAS disabilita i e. i disp0nibilil C?D Ie .E?O 1a
'il. ': .'.. negazione del CAS non dlsabilita 1 regtstn dl Usclta, e 1dati restano dis"pornbih fino
" _a. quando non viene nuovamente asserito CAS, cioe quando sono stati generati sia
,.. -. iLnuovO indirizzo di riga sia it nuovo indirizzo di colonna. Oio permette di arlottare
:';",'::: '.":'; ' .. temporizzazioni stringenti per il . , .
::it" ", ': - '-. Le EDO arnvano a una. temponzzazlone 5-2-2-2, cornspondente a un mlgliora-
)j ;;<"c"> meoto del 20% rispetto alia DRAM FPM, Le EDO hanno praticamente rimpiazzato
,.:.ij:..,',':::: ',": ,; ie FPM" (delle quaii mantenevano praticamente invariati i costi di produzione), di-
Figu.ra 3.10 gera.z:ch1ca della in un calcolatoT.e personale con CPU ;',.:, ".. .::". vEmtando ,10 standard. pe.r PC bus a n?n. superiori 66 MHz. Oltre tale
PentiUm II. Per 11 slgnificato della sigia 81 veda 11 paragrafo relatlvo aile EDO DRAM. .' :":' , 'velociU. dl bus, esse ncmedono l'mtroduzlone di statl di attesa.
;,)111 ,L'evoluzione delle EDO sono state Ie BEDO (Bu"t Extended Data Out), Esse
: "'.t' .. sono equipaggiate can una logica di cantrollo e tempop,zzazione interna supplemen-
,':", tare
,
. in grado di generare autonomamente tre indirizzi consecutivi al prima, fornito
'/,,9y,: ",' ',tramite Ie !inee di indirizzo, il RAS e il CAS. Si earrivati a una temporizzazione
'<,;' 4-1-1-1,.<on frequenza di clock di Thttavia Ie BEDO non hanno avuto un ap-
D
" '11 I" ali .. 'ch di at 't" d' r ' d' DRAM" '::{!l " ,,'," "rezzablle succeaso, a causa dl pohllche mdustnali che hanno pnvileg>ato 10 sviluppo
1 segwt? I u.strate e pnnClp . e. cum .lpl ! Ipl I, ,,;.',. :"" delle memorie sincrone.
commerclah apparSl suI mercato negh ultlml anm, nell'mtento dl coghere Ie dlff'erenze' f;:O:l ' .,,'
fra gli approcci tecnologici e progettuali seguiti al fine di migliorarne le prestazioni. :.:",;, ',", ,
:_XI}1 :' "
''''\1'' ., '. "
,
3.8.1 DRAM con accesso a pagina
I:.,','
'
PMA - DRAM (Page Mode Access) La modalita di accesso di pagina e ':
, .
mantenendo attivo ilsegnale RAS in modo che un'intera pagina di dati sia tenuta sugH ,
amplificatori. Nuovi indirizzi di colonna possono essere sincronizzati ripetutamente
iterando solo il CAS.
, " '
(. -; :" ",
..... ' ,,,-
. "'"'" " ,-
,'.t'!l ,.-
'".,
'".", .
FPM - DRAM (Fast Page Mode) La modalita di pagina veloce, costituisce '" -
evoluzione della precedente. n miglioramento estato ottenuto attivando i buffer di ".
indirizzo di colonna suI fronte di discesa del RAS (piuttosto che del CAS), Poich. il )1;" "
RAS rimane basso per l'intero dclo di pagina, Questi agiscono come latch trasparenti '
quando il CAS ealto; non c'e bisogno di attendere che CAS vada basso per
l'indirizzo di colonna.
Le sincronizzazioni tipiche sono 6-3-3-3. Con questa notazione si vuole indicare ':)W
il numero di deli di clock necessari per ottenere rispettivamente il 1, il 2 I il 3 e
4 dato della pagina selezionata. ,::'d "
ii'it'
''''j ,
',.
3_8.4 Moduli commerciali
Capitolo 3
.
'<'

;(/!11I..., '.
.' , . ..
_._---------------------.:L.:a.:m=em=o.:rI.:a-"p.:r.:m::c:c
IP
::
al
::
e
=----=:9.:9
....." ..
.. ,.
.i
,_ ., "! .'"t,' .. ' .' ' ,
.:.., __'. - ,
. Le che hanno smerana so.no conosciute genericamente COn ... .. SIMM SIMM sta per Memory n SIM:M ?riginale
il nome dl SDRAM. Questa lllclude Ie vlste sopra, Ie RDRAM :?'3. .. a,veva un formate a 30 pledlDl, rna e stato succesSlvamente sostltUlto dal tlPO a 72
DRAM), (Enhanced SDRAM). E comunque stato definito uno standard. 'piedini'. Puo essere a singola 0 d?ppia fac.ci,a, con capacita di ,4, 8, 16, 32 0 anche
JEDEC di DRAM smcrona. .. ,':.. 64 Mbyte, parallelismo a 16 0 32 bit. Una tlplca scheda madre dl PC prevede quattro
, Una SDRAM ha sincrona controllata dal clock ,di sistema '::, connettori per SIMM. 5e.il bus PC ea 64 bi.t (da!. Pentium in poi) sono
e mclude anche un architettura dl tipO du.al-bank'e un bu.rst-mode (31 bit, 32 bit, .:..?J :;:;;'v . '-,', 'chiesti come ffiImmo due moduh a 32 bit della stessa dlmenslOne.
a 4 bit, a 8 bit e a pagina completa). Un registro puo inoltre essere impostato n
all'accensione del sistema e modificato durante il funzionamento per programmare Ie 0:' ..i') > . d I' DIMM (D 1I /. M M d 1 ) h . . . SIMM
dalit
di b t ( .al . t I . t ) I I h d 1b lid "jl '.' .,.... D1MM I mo u 1 ua n- me emory 0 u e anno sostltmto 1 ,
mo a urs SeqUenzl eo III er aCCla 0 , a ung ezza e urst e a atenza el '" (0'..>:,:'. d d I" d t' d' PC E . h 168' dini' d' . d til
CAS. ... ,.: divenendo.lo stan per 1ll us. . SSl anno su ue e
. . . . , . . .. , .'. di contattl. 11 magglOr numero di pIedllll permette un parallehsmo a 64 bIt. Dunque
SDRAM ha presentato molh ,probleITll compatlblhta. I pnml ".. I' essi possono essere utilizzati singolarmente ed etipico che un PC moderno fornisca solo
avevano due fu:1ee di cl?ck, rna. e stato venficato c,he .erana 'i...? una 0 due allpggiamenti di tipo DllvIM. Attualmente 10 standard erappresentato dai
conducendo alI0 sviluppo: moduh a 4 clock. Alire dlfficolta SI sono ;\)J, moduli DIMM da 3,3 volt (compatibili con memorie di tipo SDRAM, BEDO, EDO e
avute aJ chIpset contenentl 1 contro.lIon '. . .. ,,oS! j": 'FPM DRAM); una ch,ave suI connettore (una sagomatura) consente il poslZlonamento
Le SDRAM sono valutate ufficlalmente In MHz PlUttosto che In nSf m modo che "'::.. ' . ocabile.
ci sia un comune tra la velocita dell'integrato e la velodta. del
I moduli originali SDRAM impieganti integrati da 83 MHz (12ns), sono stati usati ',,: :.. ' . . . .
che operano affidabilmente fino a 83 MHz. QUestl moduli SDRAM sono ora chiamati .... RlMM (il nome eun marchlO del consorZlO Rambus). I moduli RIMM utihzzano la
PC66, per differenziarli da quelli che si conformano alla specmca Fe100 di InteL . ,.'1' stessa del DIMM da MJ:Iz standard. L'idea ecbe il BIOS
,_, ..,,debpa essere III grado dl determmare quale tipO di RAM emontato (attraverso gli
': ';) degli integrati di gestione dei bus), in modo da rendere utilizzabili i moduli
SDRAM PCIOO, PC133 Quando il maggior costruttore di microprocessori ha "\1 ,:j\":";';-:"SIMM con SDRAM da 100 MHz in un sistema RlMM-compatible.
portato iI bus di sistema a 100 MHz, la maggior parte dei moduli SDRAM disponibili :'i\il .. ,
in quel momento non poteva funzionare correttamente a quella frequenza. Intel ha ", " ; . .
allora definito la speci.fica PC100, come una direttiv.. ai produttori per la costruzione :C.. .. Controllo dl errore
di modulI progettatI per lavorare correttamente can II propno chIpset 1440BX. ... ,.",
Nel .risposta molti di di. n contrallo di parita ela forma tradizionale del controllo di
hanno deoso di rilasclare disPOSltIVl m grada dl gestIre uno standard PlU veloce, 11 .. panta viene valutata suI singolo byte e do richiede un bit ulteriore a byte
PCl33, evoluzione del precedente. . veda l' Appendice A). In caso di errore viene normalmente generata un'interruzione
il eli interrompere l'attivita
-;:;!,' Y';"/';""::'-:':"m corso, eVltando qUalSlasi potenziale alterazlOne del datI.
"Ji ',':. i',t,.- '.
:; .
't:;I. ::,:< .-: C - Error Checking Code n contrallo di parita non consente di identificare i
n primo Personal Computer prodotto dall'IBM (1981) era costruito su una piastra .. errati e non e10 gra 0 1 n evare un numero pari di errori sullo stesso byte. Per
madre che portava, 9 integrati di memoria (per un totale di 64 kbytc, pili bit di parita). ;::'.1' ragioni sono apparse memorie con controllo ECC. Con questa tecnica occorrono
Per espandere la memoria occorreva aggiungere schede di espansione, IDontate sur ''''.' " PH] bit di controllo: 5 per proteggere un byte, sei per parole a 16 bit, sette per parole
bus eli sistema. Sulle piastre, gli integrati ,(nella tradizionale forma DIP, Dual In- 32 bit e otto per parole a 64 bit.
line Package) erano montati su zoccoli e occupavano ampie 5uperfici. A meno di .Nei mo?erni il controllo ECC viene effettuato dagli integrati di gestione
vent'anni, non c'e PC, fisso 0 portatile, che porti meno di 64 Mbyte, con possibilita. ...d.ella memona.. Ess) correggono automaticamente errori di un bit
18
senza fermare il
di espansione a blocchi di (almeno) 32 Mbyte. Sono spariti gli integrati in forma .. Alcum possono correggere anche errod multi-bit al volo 0, quando db non
DIP, sostituiti da moduli di espansione, piccoli circuiti stampati' con componenti a -:: ,e possono forzare il riavvio del sistema automaticamente, con 1a memoria
montaggio superficiale, I moduli di espansione seguono due formati: SIMM, DIMM ;n ':.:"';. <non vahda non mappata.
e.RIMM:. :;i -,: " a m.aggior ?ei moduli, illato negativo eche ECC comporta
:i ';(i, una perdIta dl prestazlODllUtorno al 3%. Generalmente, l'utllizzo dl memoria ECC e
. FI chipset correnti (per esempio, il i430TX e successivi) leggono la temporizzazione ottimale- >:::: <.' 18 ' . . .. .... .
direttamente dal modulo. -1t ,1,{ , . La quasI totahta. degh erron dl memona. 51 rnarufesta su di un bIt
.'?

1:S ..
98
,
\
I
I
I
I
I
\
I
I
I
I
I
3_8.4 Moduli commerciali
Capitolo 3
.
'<'

;(/!11I..., '.
.' , . ..
_._---------------------.:L.:a.:m=em=o.:rI.:a-"p.:r.:m::c:c
IP
::
al
::
e
=----=:9.:9
....." ..
.. ,.
.i
,_ ., "! .'"t,' .. ' .' ' ,
.:.., __'. - ,
. Le che hanno smerana so.no conosciute genericamente COn ... .. SIMM SIMM sta per Memory n SIM:M ?riginale
il nome dl SDRAM. Questa lllclude Ie vlste sopra, Ie RDRAM :?'3. .. a,veva un formate a 30 pledlDl, rna e stato succesSlvamente sostltUlto dal tlPO a 72
DRAM), (Enhanced SDRAM). E comunque stato definito uno standard. 'piedini'. Puo essere a singola 0 d?ppia fac.ci,a, con capacita di ,4, 8, 16, 32 0 anche
JEDEC di DRAM smcrona. .. ,':.. 64 Mbyte, parallelismo a 16 0 32 bit. Una tlplca scheda madre dl PC prevede quattro
, Una SDRAM ha sincrona controllata dal clock ,di sistema '::, connettori per SIMM. 5e.il bus PC ea 64 bi.t (da!. Pentium in poi) sono
e mclude anche un architettura dl tipO du.al-bank'e un bu.rst-mode (31 bit, 32 bit, .:..?J :;:;;'v . '-,', 'chiesti come ffiImmo due moduh a 32 bit della stessa dlmenslOne.
a 4 bit, a 8 bit e a pagina completa). Un registro puo inoltre essere impostato n
all'accensione del sistema e modificato durante il funzionamento per programmare Ie 0:' ..i') > . d I' DIMM (D 1I /. M M d 1 ) h . . . SIMM
dalit
di b t ( .al . t I . t ) I I h d 1b lid "jl '.' .,.... D1MM I mo u 1 ua n- me emory 0 u e anno sostltmto 1 ,
mo a urs SeqUenzl eo III er aCCla 0 , a ung ezza e urst e a atenza el '" (0'..>:,:'. d d I" d t' d' PC E . h 168' dini' d' . d til
CAS. ... ,.: divenendo.lo stan per 1ll us. . SSl anno su ue e
. . . . , . . .. , .'. di contattl. 11 magglOr numero di pIedllll permette un parallehsmo a 64 bIt. Dunque
SDRAM ha presentato molh ,probleITll compatlblhta. I pnml ".. I' essi possono essere utilizzati singolarmente ed etipico che un PC moderno fornisca solo
avevano due fu:1ee di cl?ck, rna. e stato venficato c,he .erana 'i...? una 0 due allpggiamenti di tipo DllvIM. Attualmente 10 standard erappresentato dai
conducendo alI0 sviluppo: moduh a 4 clock. Alire dlfficolta SI sono ;\)J, moduli DIMM da 3,3 volt (compatibili con memorie di tipo SDRAM, BEDO, EDO e
avute aJ chIpset contenentl 1 contro.lIon '. . .. ,,oS! j": 'FPM DRAM); una ch,ave suI connettore (una sagomatura) consente il poslZlonamento
Le SDRAM sono valutate ufficlalmente In MHz PlUttosto che In nSf m modo che "'::.. ' . ocabile.
ci sia un comune tra la velocita dell'integrato e la velodta. del
I moduli originali SDRAM impieganti integrati da 83 MHz (12ns), sono stati usati ',,: :.. ' . . . .
che operano affidabilmente fino a 83 MHz. QUestl moduli SDRAM sono ora chiamati .... RlMM (il nome eun marchlO del consorZlO Rambus). I moduli RIMM utihzzano la
PC66, per differenziarli da quelli che si conformano alla specmca Fe100 di InteL . ,.'1' stessa del DIMM da MJ:Iz standard. L'idea ecbe il BIOS
,_, ..,,debpa essere III grado dl determmare quale tipO di RAM emontato (attraverso gli
': ';) degli integrati di gestione dei bus), in modo da rendere utilizzabili i moduli
SDRAM PCIOO, PC133 Quando il maggior costruttore di microprocessori ha "\1 ,:j\":";';-:"SIMM con SDRAM da 100 MHz in un sistema RlMM-compatible.
portato iI bus di sistema a 100 MHz, la maggior parte dei moduli SDRAM disponibili :'i\il .. ,
in quel momento non poteva funzionare correttamente a quella frequenza. Intel ha ", " ; . .
allora definito la speci.fica PC100, come una direttiv.. ai produttori per la costruzione :C.. .. Controllo dl errore
di modulI progettatI per lavorare correttamente can II propno chIpset 1440BX. ... ,.",
Nel .risposta molti di di. n contrallo di parita ela forma tradizionale del controllo di
hanno deoso di rilasclare disPOSltIVl m grada dl gestIre uno standard PlU veloce, 11 .. panta viene valutata suI singolo byte e do richiede un bit ulteriore a byte
PCl33, evoluzione del precedente. . veda l' Appendice A). In caso di errore viene normalmente generata un'interruzione
il eli interrompere l'attivita
-;:;!,' Y';"/';""::'-:':"m corso, eVltando qUalSlasi potenziale alterazlOne del datI.
"Ji ',':. i',t,.- '.
:; .
't:;I. ::,:< .-: C - Error Checking Code n contrallo di parita non consente di identificare i
n primo Personal Computer prodotto dall'IBM (1981) era costruito su una piastra .. errati e non e10 gra 0 1 n evare un numero pari di errori sullo stesso byte. Per
madre che portava, 9 integrati di memoria (per un totale di 64 kbytc, pili bit di parita). ;::'.1' ragioni sono apparse memorie con controllo ECC. Con questa tecnica occorrono
Per espandere la memoria occorreva aggiungere schede di espansione, IDontate sur ''''.' " PH] bit di controllo: 5 per proteggere un byte, sei per parole a 16 bit, sette per parole
bus eli sistema. Sulle piastre, gli integrati ,(nella tradizionale forma DIP, Dual In- 32 bit e otto per parole a 64 bit.
line Package) erano montati su zoccoli e occupavano ampie 5uperfici. A meno di .Nei mo?erni il controllo ECC viene effettuato dagli integrati di gestione
vent'anni, non c'e PC, fisso 0 portatile, che porti meno di 64 Mbyte, con possibilita. ...d.ella memona.. Ess) correggono automaticamente errori di un bit
18
senza fermare il
di espansione a blocchi di (almeno) 32 Mbyte. Sono spariti gli integrati in forma .. Alcum possono correggere anche errod multi-bit al volo 0, quando db non
DIP, sostituiti da moduli di espansione, piccoli circuiti stampati' con componenti a -:: ,e possono forzare il riavvio del sistema automaticamente, con 1a memoria
montaggio superficiale, I moduli di espansione seguono due formati: SIMM, DIMM ;n ':.:"';. <non vahda non mappata.
e.RIMM:. :;i -,: " a m.aggior ?ei moduli, illato negativo eche ECC comporta
:i ';(i, una perdIta dl prestazlODllUtorno al 3%. Generalmente, l'utllizzo dl memoria ECC e
. FI chipset correnti (per esempio, il i430TX e successivi) leggono la temporizzazione ottimale- >:::: <.' 18 ' . . .. .... .
direttamente dal modulo. -1t ,1,{ , . La quasI totahta. degh erron dl memona. 51 rnarufesta su di un bIt
.'?

1:S ..
98
,
\
I
I
I
I
I
\
I
I
I
I
I
]
\
]
)
I
I
I
I
)
I
I
I
1

4
-
3,9 Esercizi
limitato aile cosiddette applicazioni critiche ed equindi pili facile trovarlo su macchine ':::4 ./..'.> ".
seruer piuttosto che sui normali sistemi da tavolo 0 portatili. ....
. ..' .
:!l ':\::. II sottosistema di ingresso/uscita
. ',,""
,';:','
..,', ....... ,,'
' ,<"", ..,'" .' ":. ,
Esercizio 3.1 Si dispone dei seguenti integrati byte-wide (8 bit in uscita): 1 '.:-
128 kbyte, 3 da 64 kbyte, un numero illimitato da 32 kbyte, Progettare una memoria :,'1
da 512 kbyte per usa can 8086, sistemata a partire dall'indirizzo O. Si disegni 10':),. <,X,',.,,' ..
schema dei collegamenti compresala rete di decodifica degli indJrizzi. ,,;j .'. -:,,' .. .
.,;. .
Esercizio 3.2 Si dispone dei seguenti integrati DRAM (uscita 1 bit), 2 da 64 kbyte,''( .,:.:...,:';;>...... . . " ,
3 da 32 kbyte, 6 da 16 kbyte un numero illimitato da 8 kbyte. Progettare una memoria \'''?."f,!JI: sbttoslStema dl mgresso/uSClta (I/O, da Input/Output) e la parte attraverso la
da 64kbyte per uso con 8088, sistemata a partire dall'indirizzo esadecimale 10000. Si '::.':.;:,;':;:))fqilale,Sl. tra il e il esterno. Fauna parte
disegni 10 schema dei collegamenti compresa la rete di decodifica degli indirizzi. " 1 attraverso I uomo comUIDca can (video
" ',.::.;;,' .:!i' .. ecc')l c?rne quelli che servono alia memOnzzazlOne a breve e
Esercizio 3.3 Si disp?ne dei seguenti integrati byte-wide: 1 d,a 128 kbyte, 5 da .. temp? dell'mforma:zlOne a disco, nastri magnetici La complessita
64kbyte, un numera ilhmitato da 32 kbyte. Progettare una memOria da 640kbyte dl mgresso/usClta vana molta a seconda delle carattenstiche architetturali
usc can 8086, sistemata a partire dall'indirizzo O. Si discuta l'aumenta di .. Nei grossi e calcolatori, it sottosistema di I/O puo
che deriverebbe dali'avere un indirizzo di parteoza alIa posizione 1000 esadecimale. ;.. :;i speclabzzate nella gestlOne dei periferici, parzialmente integrate con
Esercizio 3.4 Si deve costruire un banco eli memoria da 512 kbyte per una 'questo capitolo I'interesse erivolto ai problemi di scambio delle informazioni
a 32 bit, che genera indirizzi sulle linee A31-A2. Per indirizzare i singoli byte di '.::,) dei periferici. Vengono discussi i componenti essenziali delle interfacce e
una veng?llo. 4 linee e n di di, g,estione ?elle di ingresso/uacita: a controllo di programma,
deve esadeclffiale AOGOOO. SI dIspone dl mtegrati byte-wIde '!::;':, dt mte!rUZIOne e. In In ci ai sofferma nell'illustrare it
seguentl e quantIta: .. . .. , ' ..'{;' I attenzlOne sulle sole interruzioni esterne (queUe
128kbyte, 1 mtegrato; 64kbyte: 3 IOtegrall; 32kbyte, quantlt" ilhmltata. .' ..,;" .,:,,::[}dpnteresse nello studlO del sottoslstema di I/O),
8i Bono e di quale (e la soluzione",:.\ U' c?ncretezza si fa ricorso'al repertorio di istruzioni 8086/8088 e a1
cbe 31 d1segm 10 schema del collegamentl compresa la hn?Uagg10 anche quando si discutono soluzioni diverse rispetto a
rete di decodlfica degli lOdmzzL previste da tale archltettura.
::-.:,.:"." --,'
.t." '", '. ..,.....
Esercizio 3.5 Si dispone di questi integrati, tutti in formato byte-wide: un integrato..;! .''-
da 1 Mbyte; due da 512 kbyte; un numero a piacere di integrati ,","::;,:A;,'t. Elementi di ba d 1 tt 0 t d'
Dlsegnare 10 schema dl una memoria dl 4Mbyte per una CPU 486. L mdmzzo dl ;;'.. , '''':'',;. O' , ' 0 se e SO OSlS ema 1
partenza deve corrispondere a quello del secondo blocco di 4 Mbyte nella spazio degli.,::e '.';(;:::"';:;'''::,.' mgresso/ Usc1ta
indirizzi fisici.
.. eriportato 10 schema architetturale di riferimento per la discussione
. nel. capitolo. Esso mostra che ogni dispositivo di I/O ecolle-
.. : .. al bus d1. un'interfaccia. L'interfaccia Bvolge la funzione di
:,:; ..... sla; .elettnco. ala l?f?lCO tra Ie unita periferiche e il calcolatore. .
rma, diSPOSItIvO procede alia propria velocita e in modo asincrono
;.:j.::;,p,spetto CPU. Vmterfaccia cleve quindi: '
,'" "', "" ',",_... .
.:' ,. ,:-,--,.. '. '... . '
eventuali possa.no essere appoggiati i dati nel trasferimento
, a. a umta penfenca e Vlceversa'
',r" "',"",,,'-,.' ,
.. ;,-:.. ',;-,:,-,;".;-".; .
presentare eventuali registri di appoggio dei c0Yr!anru alla periferica.
. ,
" .. ... , .
100 Capitolo 3
]
\
]
)
I
I
I
I
)
I
I
I
1

4
-
3,9 Esercizi
limitato aile cosiddette applicazioni critiche ed equindi pili facile trovarlo su macchine ':::4 ./..'.> ".
seruer piuttosto che sui normali sistemi da tavolo 0 portatili. ....
. ..' .
:!l ':\::. II sottosistema di ingresso/uscita
. ',,""
,';:','
..,', ....... ,,'
' ,<"", ..,'" .' ":. ,
Esercizio 3.1 Si dispone dei seguenti integrati byte-wide (8 bit in uscita): 1 '.:-
128 kbyte, 3 da 64 kbyte, un numero illimitato da 32 kbyte, Progettare una memoria :,'1
da 512 kbyte per usa can 8086, sistemata a partire dall'indirizzo O. Si disegni 10':),. <,X,',.,,' ..
schema dei collegamenti compresala rete di decodifica degli indJrizzi. ,,;j .'. -:,,' .. .
.,;. .
Esercizio 3.2 Si dispone dei seguenti integrati DRAM (uscita 1 bit), 2 da 64 kbyte,''( .,:.:...,:';;>...... . . " ,
3 da 32 kbyte, 6 da 16 kbyte un numero illimitato da 8 kbyte. Progettare una memoria \'''?."f,!JI: sbttoslStema dl mgresso/uSClta (I/O, da Input/Output) e la parte attraverso la
da 64kbyte per uso con 8088, sistemata a partire dall'indirizzo esadecimale 10000. Si '::.':.;:,;':;:))fqilale,Sl. tra il e il esterno. Fauna parte
disegni 10 schema dei collegamenti compresa la rete di decodifica degli indirizzi. " 1 attraverso I uomo comUIDca can (video
" ',.::.;;,' .:!i' .. ecc')l c?rne quelli che servono alia memOnzzazlOne a breve e
Esercizio 3.3 Si disp?ne dei seguenti integrati byte-wide: 1 d,a 128 kbyte, 5 da .. temp? dell'mforma:zlOne a disco, nastri magnetici La complessita
64kbyte, un numera ilhmitato da 32 kbyte. Progettare una memOria da 640kbyte dl mgresso/usClta vana molta a seconda delle carattenstiche architetturali
usc can 8086, sistemata a partire dall'indirizzo O. Si discuta l'aumenta di .. Nei grossi e calcolatori, it sottosistema di I/O puo
che deriverebbe dali'avere un indirizzo di parteoza alIa posizione 1000 esadecimale. ;.. :;i speclabzzate nella gestlOne dei periferici, parzialmente integrate con
Esercizio 3.4 Si deve costruire un banco eli memoria da 512 kbyte per una 'questo capitolo I'interesse erivolto ai problemi di scambio delle informazioni
a 32 bit, che genera indirizzi sulle linee A31-A2. Per indirizzare i singoli byte di '.::,) dei periferici. Vengono discussi i componenti essenziali delle interfacce e
una veng?llo. 4 linee e n di di, g,estione ?elle di ingresso/uacita: a controllo di programma,
deve esadeclffiale AOGOOO. SI dIspone dl mtegrati byte-wIde '!::;':, dt mte!rUZIOne e. In In ci ai sofferma nell'illustrare it
seguentl e quantIta: .. . .. , ' ..'{;' I attenzlOne sulle sole interruzioni esterne (queUe
128kbyte, 1 mtegrato; 64kbyte: 3 IOtegrall; 32kbyte, quantlt" ilhmltata. .' ..,;" .,:,,::[}dpnteresse nello studlO del sottoslstema di I/O),
8i Bono e di quale (e la soluzione",:.\ U' c?ncretezza si fa ricorso'al repertorio di istruzioni 8086/8088 e a1
cbe 31 d1segm 10 schema del collegamentl compresa la hn?Uagg10 anche quando si discutono soluzioni diverse rispetto a
rete di decodlfica degli lOdmzzL previste da tale archltettura.
::-.:,.:"." --,'
.t." '", '. ..,.....
Esercizio 3.5 Si dispone di questi integrati, tutti in formato byte-wide: un integrato..;! .''-
da 1 Mbyte; due da 512 kbyte; un numero a piacere di integrati ,","::;,:A;,'t. Elementi di ba d 1 tt 0 t d'
Dlsegnare 10 schema dl una memoria dl 4Mbyte per una CPU 486. L mdmzzo dl ;;'.. , '''':'',;. O' , ' 0 se e SO OSlS ema 1
partenza deve corrispondere a quello del secondo blocco di 4 Mbyte nella spazio degli.,::e '.';(;:::"';:;'''::,.' mgresso/ Usc1ta
indirizzi fisici.
.. eriportato 10 schema architetturale di riferimento per la discussione
. nel. capitolo. Esso mostra che ogni dispositivo di I/O ecolle-
.. : .. al bus d1. un'interfaccia. L'interfaccia Bvolge la funzione di
:,:; ..... sla; .elettnco. ala l?f?lCO tra Ie unita periferiche e il calcolatore. .
rma, diSPOSItIvO procede alia propria velocita e in modo asincrono
;.:j.::;,p,spetto CPU. Vmterfaccia cleve quindi: '
,'" "', "" ',",_... .
.:' ,. ,:-,--,.. '. '... . '
eventuali possa.no essere appoggiati i dati nel trasferimento
, a. a umta penfenca e Vlceversa'
',r" "',"",,,'-,.' ,
.. ;,-:.. ',;-,:,-,;".;-".; .
presentare eventuali registri di appoggio dei c0Yr!anru alla periferica.
. ,
" .. ... , .
100 Capitolo 3
..
M.%Tl.Crl ....

Int.ertacce
r
DEC,
M
-
c.

,.
A'"
L
c'
DEC,
f-
L.::1
</0
-
c.
-
A
AO-A1S
'OK
'OK

o
</0
\
nm:RFACCIA
L
"'"
I I I I I I I:
.
""
I I I I.
"" I
;


!
,


BUS
CPU
UNITA'
lHttJI'ACC1A
"' </.
UlIIT....
"""",=
m
V.
'ti!'t.,.. .
'-"1 ' .. ".r:.':' .
." 'J, ' ,', ...".
"
102 Capitolo 4 > n sottosistema di ingressofuscita. 103
- },;!;;t.. ,.
'/";' .::
" iI<,",.f.'."
" -'ii' , ,
\ ...."'"
".,t, '.ro-v,'",,,-, .
. traccia stato della peruerica e delle eventuali condizioni di linea A
1
5 per tra spazio, di e spazio di I/O. Ovviamente in
Zlonamento 0 dl errore, cODsentendone 10. lettura. " 81 percle r:neta delle SpazlO dl memoria. In viene presentata
", ,una che sacnfica solo 64 K. A patto di complicare 10. decodifica e
posSlbIle portare a una dimenslOne accettabile 10 spazio di I/O.
-.'flf., . .;, .
..,"'
. "'1' '\',,:,.,
-.
,. 'i4 ..,. :,.-,:.
,'<'Y.- ',".
.. ..
'.
CISPosrnvo .: 1" ',,;;':'.;-i""
" '/0 '\1 '.I,'Io,J;. ,.,." .. I L 4.0
" ",'" 1 r
'-"'; ...hl'"
oOil 1".\-, .." , ,
, , ' '. I, ., '.
',.V. l"";i"l';) ",
.. ' ,
';'," I Memoria
.";
.,,( n ..
1i" ' 1,;,,,,'.' .
'./ii;Jr
,'II)) ",..., ._
,,\";.. .. ,.
.
,;.{.:! /"" .,,'.,
";;'.,."' ...
a) SChema ell l'ifmmUllo b) ElemenU IODdt.malllt.U dl Ilfla l"t..I.I. ".' .. :: "
. .......' .:'
Figura 4.1 Schema convenzionale dell'architettura a singolo bus e della. struttura di una-.: ,::: ) M pe.turc.
. terlacci -'Jij '<'1{"J .,'''. ,1_8', .. p b) Oecodific8 indiri:>::>::>:1
genenca. 10 a. " , ,
':J' 4.2 d: lD memona. degli indirizzi Iii I/O, Lo schema di destra
, ',ti! ' Le ,llsclte del decodificatore DEC M vanno intese come i Chi
., . , ' .. . . Select degh mtegratl dl memOria' conseguentemente il di r "P
ra 0Wdtl sonG stati concettualizzatl nello schema dl Flgura4.1b,;"fY- ,L' a questa decodificatore dipende dalla dim . d li 1 lD.ee tn tngresso
d G G d
'. ,.. ch j 1 f "':U' ',ri,;.r:'i':'" enslOne eg lDtegratl' e nmanentl linee del bus
, ' . e . enotano 1 e svo gono e, portate direttamente agli integrati eli memoria:
Zlom del tre puntl precedentl. Come sara. chlanto pm avant1, non edetto che aJ ,
blocchi dello schema corrispondano degli effettivi registri fisici suU'interfaccia.
quanto riguarda SREG e CREG, spesso pochi bit sono sufficienti a tener traccia dello/
stato e del comando; per questa talvolta si parla di pseudo-registri. Nella I.
Icorrente .S?esso il Porta di I/O. . .. "', . . _
. I eli, lettl 0 SCIIttl. A tale scopo basta .. isolato, I.n caso la.macchina presenta. un uumero di istru-
Clare a ClasC:m reglSt.ro un mdlIlzzo, .lD del tuttO- anal?go a . d'\I, aile dl , La 10:0 eSeCUZ1?ne da luogo a cieli
con Ie celle di .queste nchiedono la ': .tutto a quelh. eli e. scnttura ill con la differenza
per 130 dl I/O nchiedon.o decodifica: assente due spec1fiche lInee di comando che mdlcheremo come lOWe
te 10 SpazlOdegli mdinzz, <Ii I/O deve essere disglUnto da queUo degli mdmZZl di
i
,.;; 0 teCommand) e lORe (I/O Read Command).
memona. CI sono due fondamentall orgawzzauorn: v""" Per del DUcro 8086 funzionante in modo minimo, rowe e TA.........
. .' . creatI,daJ pledml MjR>. RD e WR secondo 10 schema di Figura4.3a. Quando
a) mgressojusc1ta mappato ill memona (memory mapped I/O), 1>',,1 ...l1 micro 8086 e configurato in modo cia funzionare . d " '.
, tt / . ill mo 0 mas5lDlo 1 comandl di
' I e ura scnttura esceno dal componente di a 0 . 8288 (F' b'
b) mgresso/usclta lSolato (I/O mapped 1/0). ,:'fI, 0 pp ggw Igura4.3 .

,... .'
'''It _,,,<I,""
'-.'J'T;',,'
Ingressojuscita mappato in memoria Le architetture che prevedono degli indirizzi Le porte che compo t f .
/
. . . d' <Ii . o. d d' t P I I tt '. "", es . d' 0 ngono m er ""cIa devono pater
sd
o
, memorjla non ch IStfrUZlODl:
r
e, lca teO a e u,ra::t desCOerdeifiln .. tale scopo. sull'interfaccia deve essere prevista una sezione di
el fegIStn Sl usano e stesse IS rUZ10nl e anno ruenmen 0 cw3 memona',I,l '.:;\.;";., :" ca eg 1 mdlflzzi. In Figura4 4 eriportato . d' d d'fi d' .
I
J' ch li . t""-":' .: . d" . . un esemplo I eco 1 ca 1 comandl
Questa tecnica venne usata nel PDP 11 DIg78 , il calcolatore e neg aIlm settan In lflZZI per una interfaccia avente due porte di I tt dill'
impose l'architettura a bus di Figura 4.1a. La tecnica, abbandonata successivamente '...:' 130 decodifica dell'indirizzo di base efissa Acc e
d
ue, I' scntdt.ural Questo
. . . 8 16 b' ., diffu' , . tall hi RlSC i "0'" I comand
O
d' I . opplan 0 e mee I se eZlOne con
nel a e .pIU 51, t: ntorn.ata.at u . e COD e ne - I 1 ettura e scrittura. si generano i cemanill per Ie singole porte
l
.
E comunque sempre posslblle mappare 10 SpazlO dl I/O ill memona, 51 SUPPQngal !1i, ,:;E,\; :': .,:
per esempio, eli avere una CPU COD 16 !inee eli indirizzo A15 Ao, alIe quali corrisponde,:,7 ::;;::-;::-==-:77-::::--,---
uno spazio di memoria di 64 k locazioni. Potremmo 5tabilire la convenzione di riservare.'};; not! che spazio di I/O risulta come composto da due spa.z:i sovrapposti queUo d 11
i 32k pili alti della spazio degli indirizzi ai registri di I/O, in modo da usare la ,ura e que 0 delle pOrte di scrittura, . . e e porte
,
'ii:' :;
,:, ",?
j
I
,
I
I
I
I
I
l
,
..
M.%Tl.Crl ....

Int.ertacce
r
DEC,
M
-
c.

,.
A'"
L
c'
DEC,
f-
L.::1
</0
-
c.
-
A
AO-A1S
'OK
'OK

o
</0
\
nm:RFACCIA
L
"'"
I I I I I I I:
.
""
I I I I.
"" I
;


!
,


BUS
CPU
UNITA'
lHttJI'ACC1A
"' </.
UlIIT....
"""",=
m
V.
'ti!'t.,.. .
'-"1 ' .. ".r:.':' .
." 'J, ' ,', ...".
"
102 Capitolo 4 > n sottosistema di ingressofuscita. 103
- },;!;;t.. ,.
'/";' .::
" iI<,",.f.'."
" -'ii' , ,
\ ...."'"
".,t, '.ro-v,'",,,-, .
. traccia stato della peruerica e delle eventuali condizioni di linea A
1
5 per tra spazio, di e spazio di I/O. Ovviamente in
Zlonamento 0 dl errore, cODsentendone 10. lettura. " 81 percle r:neta delle SpazlO dl memoria. In viene presentata
", ,una che sacnfica solo 64 K. A patto di complicare 10. decodifica e
posSlbIle portare a una dimenslOne accettabile 10 spazio di I/O.
-.'flf., . .;, .
..,"'
. "'1' '\',,:,.,
-.
,. 'i4 ..,. :,.-,:.
,'<'Y.- ',".
.. ..
'.
CISPosrnvo .: 1" ',,;;':'.;-i""
" '/0 '\1 '.I,'Io,J;. ,.,." .. I L 4.0
" ",'" 1 r
'-"'; ...hl'"
oOil 1".\-, .." , ,
, , ' '. I, ., '.
',.V. l"";i"l';) ",
.. ' ,
';'," I Memoria
.";
.,,( n ..
1i" ' 1,;,,,,'.' .
'./ii;Jr
,'II)) ",..., ._
,,\";.. .. ,.
.
,;.{.:! /"" .,,'.,
";;'.,."' ...
a) SChema ell l'ifmmUllo b) ElemenU IODdt.malllt.U dl Ilfla l"t..I.I. ".' .. :: "
. .......' .:'
Figura 4.1 Schema convenzionale dell'architettura a singolo bus e della. struttura di una-.: ,::: ) M pe.turc.
. terlacci -'Jij '<'1{"J .,'''. ,1_8', .. p b) Oecodific8 indiri:>::>::>:1
genenca. 10 a. " , ,
':J' 4.2 d: lD memona. degli indirizzi Iii I/O, Lo schema di destra
, ',ti! ' Le ,llsclte del decodificatore DEC M vanno intese come i Chi
., . , ' .. . . Select degh mtegratl dl memOria' conseguentemente il di r "P
ra 0Wdtl sonG stati concettualizzatl nello schema dl Flgura4.1b,;"fY- ,L' a questa decodificatore dipende dalla dim . d li 1 lD.ee tn tngresso
d G G d
'. ,.. ch j 1 f "':U' ',ri,;.r:'i':'" enslOne eg lDtegratl' e nmanentl linee del bus
, ' . e . enotano 1 e svo gono e, portate direttamente agli integrati eli memoria:
Zlom del tre puntl precedentl. Come sara. chlanto pm avant1, non edetto che aJ ,
blocchi dello schema corrispondano degli effettivi registri fisici suU'interfaccia.
quanto riguarda SREG e CREG, spesso pochi bit sono sufficienti a tener traccia dello/
stato e del comando; per questa talvolta si parla di pseudo-registri. Nella I.
Icorrente .S?esso il Porta di I/O. . .. "', . . _
. I eli, lettl 0 SCIIttl. A tale scopo basta .. isolato, I.n caso la.macchina presenta. un uumero di istru-
Clare a ClasC:m reglSt.ro un mdlIlzzo, .lD del tuttO- anal?go a . d'\I, aile dl , La 10:0 eSeCUZ1?ne da luogo a cieli
con Ie celle di .queste nchiedono la ': .tutto a quelh. eli e. scnttura ill con la differenza
per 130 dl I/O nchiedon.o decodifica: assente due spec1fiche lInee di comando che mdlcheremo come lOWe
te 10 SpazlOdegli mdinzz, <Ii I/O deve essere disglUnto da queUo degli mdmZZl di
i
,.;; 0 teCommand) e lORe (I/O Read Command).
memona. CI sono due fondamentall orgawzzauorn: v""" Per del DUcro 8086 funzionante in modo minimo, rowe e TA.........
. .' . creatI,daJ pledml MjR>. RD e WR secondo 10 schema di Figura4.3a. Quando
a) mgressojusc1ta mappato ill memona (memory mapped I/O), 1>',,1 ...l1 micro 8086 e configurato in modo cia funzionare . d " '.
, tt / . ill mo 0 mas5lDlo 1 comandl di
' I e ura scnttura esceno dal componente di a 0 . 8288 (F' b'
b) mgresso/usclta lSolato (I/O mapped 1/0). ,:'fI, 0 pp ggw Igura4.3 .

,... .'
'''It _,,,<I,""
'-.'J'T;',,'
Ingressojuscita mappato in memoria Le architetture che prevedono degli indirizzi Le porte che compo t f .
/
. . . d' <Ii . o. d d' t P I I tt '. "", es . d' 0 ngono m er ""cIa devono pater
sd
o
, memorjla non ch IStfrUZlODl:
r
e, lca teO a e u,ra::t desCOerdeifiln .. tale scopo. sull'interfaccia deve essere prevista una sezione di
el fegIStn Sl usano e stesse IS rUZ10nl e anno ruenmen 0 cw3 memona',I,l '.:;\.;";., :" ca eg 1 mdlflzzi. In Figura4 4 eriportato . d' d d'fi d' .
I
J' ch li . t""-":' .: . d" . . un esemplo I eco 1 ca 1 comandl
Questa tecnica venne usata nel PDP 11 DIg78 , il calcolatore e neg aIlm settan In lflZZI per una interfaccia avente due porte di I tt dill'
impose l'architettura a bus di Figura 4.1a. La tecnica, abbandonata successivamente '...:' 130 decodifica dell'indirizzo di base efissa Acc e
d
ue, I' scntdt.ural Questo
. . . 8 16 b' ., diffu' , . tall hi RlSC i "0'" I comand
O
d' I . opplan 0 e mee I se eZlOne con
nel a e .pIU 51, t: ntorn.ata.at u . e COD e ne - I 1 ettura e scrittura. si generano i cemanill per Ie singole porte
l
.
E comunque sempre posslblle mappare 10 SpazlO dl I/O ill memona, 51 SUPPQngal !1i, ,:;E,\; :': .,:
per esempio, eli avere una CPU COD 16 !inee eli indirizzo A15 Ao, alIe quali corrisponde,:,7 ::;;::-;::-==-:77-::::--,---
uno spazio di memoria di 64 k locazioni. Potremmo 5tabilire la convenzione di riservare.'};; not! che spazio di I/O risulta come composto da due spa.z:i sovrapposti queUo d 11
i 32k pili alti della spazio degli indirizzi ai registri di I/O, in modo da usare la ,ura e que 0 delle pOrte di scrittura, . . e e porte
,
'ii:' :;
,:, ",?
j
I
,
I
I
I
I
I
l
,
)
I
I
I
I
I
j
I
I
I
I
I
I
)
v
... "'_IMXI

I .
'0
00
-
..
..
:=
7<,

.11/ _
DO
v.1 I..

v
I-<L
_e
poJ\Tw'A
poR'fAe
"e
,.

'.

'.
'. '.
" :J '.
"1 "
'. '.
" "
'. "
" "
..
,,' ...

",
j:::
. '.
.. ,
'.
"
... ..
P SII:L

ow
... "'"

Vaa.
..... . ,..
',.'
..

!"il'j..
,',
""., .
:::in:::gr,,-=osso::..:.!../_usc::..:i_ta __l_O-,S ,
.'.
"
.
' .
'. ",.'",.,,"': " .
, .. ' -, .
N: .,t..-I" . "
I,'P'_ .-,. , ..' " " ,',
'"
-j.' "
.::
,.
"..: "",.
..
, , """',.-
.
.1 i .. ',. _.
!;,:,'J,,(. .r.'.'.... ' .
.. " ;.;, .. . lli
',"".',\''''''\.l ,. "'. " 0
.....0,,1,.."',.,;",.,.;..". '.
,_
.' I ......,. ,
...... . ::::j
.". ",'" ,.. '-', ',.. . .
. ,'. -'-__
1''''"'1 '., A"
." '. . ,
li"(!"7 , .,.
,.'" .. . _"
..r,"'':'\....' :.:";'" ', ....
, .... ' '.' ,.
__ :.,,:,, , > I
.....
....,. "" ..... ' ,
,.! 1,;, .'.
,.',' .,' . 10
&empi di tecniche di decodifica degli indirizzi. Con la soluzione cU sinistra, a
IgUl'8. . 00 A 1 . II dis' ., e<T-l-T
onticello inserito Vlene decodificato un III con r = ; a 0 0
isultare a.sserito solo Se Ar = O. La rete eli destra COnse.nte di unpostare a plocere 4
' " , ...... puo r '" I ,. d . tt' d . I d difi d II
aa dec.o.dificare. Nel caso speci.nco a POSIZ10ne el conta 1 etermma a eco ca e a
-Ao_a = 1010.
.. ..(;.'.;::\_ "
l.,,;,;.'" .),'\'"'.".'_ '.
"
1.. ',:: ".' . .'"
' '\ .", '".' -r ,." 'j.
","""'"" .. . '
.'. . '.
I
c",J:j' .,,0 " . ' ..
'..
p ..\ :.": .
." '
-...'" .
'ttl; . !.\:.,. .'
;-.
1.,.lI
j
' , 'I.
.", .
'''XJ..'''''';'
,'. ,,:
"jf..;,\.(jlj,.i".. ,".-.. )11 ,
,"" "
'. ",:Jr,.'-;'i'''. 'J-..
o . I ,"".....w......" '
. .
.;:-,. ....
';', '.'
,. ,.,.. 'i _' ,
: una porta di ingresso e di una porta di usci'a attraverso com-
stan'<iard. ncomponente 74xx244 contiene 8 buffer con uscite in terzo stata, abilitate
.a.lla volta) i. due OE. !4xx374 cont.iene.8 flip-Hop D, can uscita in
stato. II dlSpoSltlvO memOrlzza gli mgressl sul ronte d.i salita. del clock.
r.
della velocit" di esecuzione delle istruzioni di una CPU. looltre essi proce-
autonomo e quindi si rende necessaria introdurre qualche meccanismo
smcronizzazione.
,., .
.. 'Le teciiiche fondamentali per 1a gestione dei periferici sana:
::. ,," .", '
di programma;
'. , .. "
"., .... . . .
dl mterrUZlOne;
diretto alla memoria (DMA) 0 Con processori di I/O,
,. <t., ...... ,. .
,. "':. ',. ..;; " ,
'partecbe segue ededicata all'approfondimento delle diverse tecnicbe.
b) Modo M ........ l:rno
p on
7.1..-'530
-..
.0
",E;LO
PO.
J
-
)

p,w
V
J
-
p, R
10l<C
-
iOOW
lowe
.,

'0

..
_) Modo Mtnir=o
>.1/10
r+=D
iOnC


'M/':'
,
B"e
[)-'=
(1:I't'/..,
""",e
lOWe
-
(DEN)
MRC

so r
I
MWe
."t.,.,.
,'q,'
,
Porte Nella sua forma piu semplice una porta di ingresso richiede solo dei
con uscita in terzo stato. Nel momenta in cui viene eseguita l'istruzione di letturt,
della porta, l'uscita viene abilitata e quindi presentata sul bu.s dei dati, rendendal!;'
disponibile alIa CPU. Una porta di uscita richiede dei latch per memorizzare il da4b-'t,
rendendolo dispopibile alia pernerica da! momento in cui viene eseguita la
fino alia prossima. In Figura4.6 viene dato 10 schema di una porta di
una di uscita. "

. '.
,,It,

Modalita di delle operazioni di ingresso/uScita Le semplici
facce di Figura4.6 non esplicitano alcun accorgimento per 1a sincronizzazione tra
gramma in esecuzione e periferiche collegate. I periferici sono normalmente piu len-W"
.' ' .":;l
.,'
. c

Figura 4.4 Esempio di decodifica degli indirizzi per una interfaccia che presenta due

di ingresso e due di uscita. La linea SEL rappresenta lluscita del decodificatore


di base assegnato all'interfaccia (per semplicita. si suppone che l'indirizzo sia dato su soli:S!'
bit). Si noti che la linea SEL risulta asserita in presenza delPindirizzo F2H e
F3H. Ao serve a discriminare 1a porta all'indirizzo relativo 0 da quella aU'indirizzo
1
';'\1!'
.
, '.-.-.
'-"',
Figura 4.3 Costruzione dei comandi di lettura e scrittura in memoria e in I/O per la
8086. Nella configurazione di modo minima, 13 CPU presenta tre piedini denominati M/IO};
RD e WR; nella configurazione di modo massimo 1a CPU presenta sui piedini SOl Sl
. "..
13 codifica del cicio di macchina in corso di esecuzione. E richiesto il componente 8288 .
generare i comandi verso l'esterno, di cui quelli riportati in figura sono un sottoinsieme. :-t
'..

'''.,
104 Capitolo 4
I
)
I
I
I
I
I
j
I
I
I
I
I
I
)
v
... "'_IMXI

I .
'0

00
-
..
..
:=
7<,

.11/ _

DO
v.1 I..

v
I-<L
_e
poJ\Tw'A
poR'fAe
"e
,.

'.

'.
'. '.
" :J '.
"1 "
'. '.
" "
'. "
" "
..
,,' ...

",
j:::
. '.
.. ,
'.
"
... ..
P SII:L

ow
... "'"

Vaa.
..... . ,..
',.'
..

!"il'j..
,',
""., .
:::in:::gr,,-=osso::..:.!../_usc::..:i_ta __l_O-,S ,
.'.
"
.
' .
'. ",.'",.,,"': " .
, .. ' -, .
N: .,t..-I" . "
I,'P'_ .-,. , ..' " " ,',
'"
-j.' "
.::
,.
"..: "",.
..
, , """',.-
.
.1 i .. ',. _.
!;,:,'J,,(. .r.'.'.... ' .
.. " ;.;, .. . lli
',"".',\''''''\.l ,. "'. " 0
.....0,,1,.."',.,;",.,.;..". '.
,_
.' I ......,. ,
...... . ::::j
.". ",'" ,.. '-', ',.. . .
. ,'. -'-__
1''''"'1 '., A"
." '. . ,
li"(!"7 , .,.
,.'" .. . _"
..r,"'':'\....' :.:";'" ', ....
, .... ' '.' ,.
__ :.,,:,, , > I
.....
....,. "" ..... ' ,
,.! 1,;, .'.
,.',' .,' . 10
&empi di tecniche di decodifica degli indirizzi. Con la soluzione cU sinistra, a
IgUl'8. . 00 A 1 . II dis' ., e<T-l-T
onticello inserito Vlene decodificato un III con r = ; a 0 0
isultare a.sserito solo Se Ar = O. La rete eli destra COnse.nte di unpostare a plocere 4
' " , ...... puo r '" I ,. d . tt' d . I d difi d II
aa dec.o.dificare. Nel caso speci.nco a POSIZ10ne el conta 1 etermma a eco ca e a
-Ao_a = 1010.
.. ..(;.'.;::\_ "
l.,,;,;.'" .),'\'"'.".'_ '.
"
1.. ',:: ".' . .'"
' '\ .", '".' -r ,." 'j.
","""'"" .. . '
.'. . '.
I
c",J:j' .,,0 " . ' ..
'..
p ..\ :.": .
." '
-...'" .
'ttl; . !.\:.,. .'
;-.
1.,.lI
j
' , 'I.
.", .
'''XJ..'''''';'
,'. ,,:
"jf..;,\.(jlj,.i".. ,".-.. )11 ,
,"" "
'. ",:Jr,.'-;'i'''. 'J-..
o . I ,"".....w......" '
. .
.;:-,. ....
';', '.'
,. ,.,.. 'i _' ,
: una porta di ingresso e di una porta di usci'a attraverso com-
stan'<iard. ncomponente 74xx244 contiene 8 buffer con uscite in terzo stata, abilitate
.a.lla volta) i. due OE. !4xx374 cont.iene.8 flip-Hop D, can uscita in
stato. II dlSpoSltlvO memOrlzza gli mgressl sul ronte d.i salita. del clock.
r.
della velocit" di esecuzione delle istruzioni di una CPU. looltre essi proce-
autonomo e quindi si rende necessaria introdurre qualche meccanismo
smcronizzazione.
,., .
.. 'Le teciiiche fondamentali per 1a gestione dei periferici sana:
::. ,," .", '
di programma;
'. , .. "
"., .... . . .
dl mterrUZlOne;
diretto alla memoria (DMA) 0 Con processori di I/O,
,. <t., ...... ,. .
,. "':. ',. ..;; " ,
'partecbe segue ededicata all'approfondimento delle diverse tecnicbe.
b) Modo M ........ l:rno
p on
7.1..-'530
-..
.0
",E;LO
PO.
J
-
)

p,w
V
J
-
p, R
10l<C
-
iOOW
lowe
.,

'0

..
_) Modo Mtnir=o
>.1/10
r+=D
iOnC


'M/':'
,
B"e
[)-'=
(1:I't'/..,
""",e
lOWe
-
(DEN)
MRC

so r
I
MWe
."t.,.,.
,'q,'
,
Porte Nella sua forma piu semplice una porta di ingresso richiede solo dei
con uscita in terzo stato. Nel momenta in cui viene eseguita l'istruzione di letturt,
della porta, l'uscita viene abilitata e quindi presentata sul bu.s dei dati, rendendal!;'
disponibile alIa CPU. Una porta di uscita richiede dei latch per memorizzare il da4b-'t,
rendendolo dispopibile alia pernerica da! momento in cui viene eseguita la
fino alia prossima. In Figura4.6 viene dato 10 schema di una porta di
una di uscita. "

. '.
,,It,

Modalita di delle operazioni di ingresso/uScita Le semplici
facce di Figura4.6 non esplicitano alcun accorgimento per 1a sincronizzazione tra
gramma in esecuzione e periferiche collegate. I periferici sono normalmente piu len-W"
.' ' .":;l
.,'
. c

Figura 4.4 Esempio di decodifica degli indirizzi per una interfaccia che presenta due

di ingresso e due di uscita. La linea SEL rappresenta lluscita del decodificatore


di base assegnato all'interfaccia (per semplicita. si suppone che l'indirizzo sia dato su soli:S!'
bit). Si noti che la linea SEL risulta asserita in presenza delPindirizzo F2H e
F3H. Ao serve a discriminare 1a porta all'indirizzo relativo 0 da quella aU'indirizzo
1
';'\1!'
.
, '.-.-.
'-"',
Figura 4.3 Costruzione dei comandi di lettura e scrittura in memoria e in I/O per la
8086. Nella configurazione di modo minima, 13 CPU presenta tre piedini denominati M/IO};
RD e WR; nella configurazione di modo massimo 1a CPU presenta sui piedini SOl Sl
. "..
13 codifica del cicio di macchina in corso di esecuzione. E richiesto il componente 8288 .
generare i comandi verso l'esterno, di cui quelli riportati in figura sono un sottoinsieme. :-t
'..

'''.,
104 Capitolo 4
I

101
assume
indirizzo di BUFFER
; OS:SI
. ex <- n ,
II sottosistema di ingresso/uscita
AL,PORT
AL,l
ATTESA
STAMPA:
MOV AL, lSI]
OUT PORT,AL
ATTESA:
IN AL,PORT
AND AL,l
JNZ ATTESA
. prelevare e trasmettere il prossimo carattere.
,
".' concludere e tornare al chiamante;
Tenuta canto delle precedenti osservazionl, il sottoprograrnma STAMPA
questa forma finale
4
:
Terminata I'attesa, enecessario conteggiare il carattere trasmesso e
J
a seconda
del fatto che Questo sia 0 non sia Pultimo:
2Si assume doe che J'a.rea di memoria contenga una sequenza di caratteri alfanumerici stampabili.
3Si ricordi che si e stabilito di utilizza.re la notazione Assembler 8086. Per questo motivQ gli
indirizzi di memoria. vengano dati come scoatamento entro un segmento.
4Nel iinguaggio Assembler 8086 l'istruzione LOOP ba. l'effetto <Ii decrementare iI registro ex e di
saltare se il risultato ediverse da zero.
LJ
LJ
NTROU.O
BUS INOIRIZZI
20
--

BUS DATI
B
DB'
lOR<: IOWC
UNEE 01 CO

,
.....
, ,
B
SEL
'"'"
DREG
'An
--"
..
t:[J-?RTR '"'
,-
, ,
STATO
"'.
'M
OAe
Ca.pitolo 4
4.2.1 II sottoprogramma di gestione
Si supponga eli dover costruire un sottoprogramma, che chia.meremo STAMPA, che effet-
tui la stampa del contenuto eli una generica area di memoria, trasferendo direttamente
"

.". i singoli byte alia stampante
2
.
:..:.zo .,.", ': '.' Indicando con BUFFER la prima posizione delParea di memoria contenente il mes-
,} '. - -, , ,
Per fissare Ie idee si faccia riferimento aJ caso di un'operazione di uscita, consistente },). saggio da stampare e con n nurnero di caratteri che costituiscono il messaggio, si
nel trasferimento'di un bloceo di dati verso un dispositivo come una stampante. :-0",-,' stabilisce che il sottoprogramma STAMPAvenga cbiamato secondo questa convenzione
3
:
Si supponga che 130 stampante accetti caratteri di 8 bit e che richieda un segnale t.-, MOV 51 <oUset BUFFER>
impulsivo come indicazione della disponibilita di un nuovo carattere al suo ingresso. ';11'i MOV CX' <n>
Si faccia anche 1
J
ipotesi che la stampante risponda
J
a carattere stampato, sempre can .'. CALL STAMPA
un segnale impulsivo. Si indichino con DAVe DAC i due segnali in questione. -,,',," .
Vinterfaccia dovra. prevedere almeno una porta (registro) dati di uscita come 'Si stabilisce inoltre che STAMPA etIettui per intero il trasferimento degli n ca-
quella eli Figura4.6. Davra. anche presentare un indicatore dello state della stam- .",; ratteri e restituisca il controllo all'istruzione successiva a quelia eli chiamata solo a
pante, che dica se questa ein condizione eli accettare un altro carattere a se e ne- :': , ' trasferimen.to cone.luso.. . .
cessario aspettare the si concluda 1a -stampa del carattere precedente. A tale scopo n prehevo e 11 trasfenmento dl un 81.Qgola carattere richiede questa semplice
basta prevedere un flip-flop, il cui stato rifietta quello della periferica. Tale flip-flop ." sequenza di istruzioni:
indicato come SFF in 7. La state di 8FF viene letto nel bit meno significativo .X: '.: :_.' MOV AL. [SI]
(DBo) dello pseudoregLStro dl stato. :0', . OUT PORT AL
Possiamo stabilire la convenzione secondo cui
l
10 stato 0 del flip-flop indica che la, :, .:. " \. ,
periferica epronta a ricevere un altro date, mentre 10 state 1 indica che la periferica e , Do've con PORT si eindicato l'indirizzo a.ssegnato aIJlioterfaccia.. Come gia. osserva.to
occupata. Dunque, 1a t5AC delia stampante dovra. riportare SFF aD, mentre ;". _ :" Pistruzione OUT copia i1 contenuto di AL in DREG dell'interfaccia, fa passare SFF
i