Sei sulla pagina 1di 730

A-PDF Page Cut DEMO: Purchase from www.A-PDF.

com to remove the watermark

:'I

\ 1
,I
.
!
'~

i
."
j'I"
11
iI

~1

!
"•
"
\

,'I"

"

I \
II
,c,
,
"
.,

I
~'I
I .:
! ,I:
!•
,
I ! I;

.'..,
, ,
I •
!
;1

'.il'

l
"

."

I, J;1,
• , •
,
,jl
"
1
,

\ · "

,
~I
I ::
I
I
,

."

J
I, ~

1., -
I'
~I

Indice generale --
"
; .. ~

I",
1'
-
1
"• ~

"I' ,......
• , ..
Prefazione
I VlI
--
1 Introduzione 1
1.1 Qualche cenoo storieo ,~
..•
1
1.1.1 I microprocessori 3
: 1.1.2 Le architettilre RlSC 6 --
1.2 Rappresentazione dell'informazione 8
..-
,
I;'

'
1.2.1
1.2.2
Sistemi di numerazione.
C.onversione di base
8
10
"

! 1.2.3 Ar:itmetica binaria 11


1.2.4 Numeri negativi 11
1.2.5 Numeri frazionari 12
...
'
l 1.2.6 Numeri in virgola mobile 13
1.2.7 lnformazioni di carattere alfanumerico 22
J1, 1.3 Logica dei sistemi digitali 22
1.3.1 L'algebra delle reti • 23 ••

" 1.4 Reti combinatorie e reti sequenziali 24


1.5
1.4.1
Registri
Reti sequenziali sincrone 25 -
27
1.6 Trasferimento dell'informazione 28 .-
1.7 Unita aritmetiche e logiche 29
1.7.1 Esempio di costruzione di un'unita. aritmetica e logica 32 -
1.8 Sistemi digitali 34
1.8.1 Un modello eli rete.a stadi 35
.-.
1.8.2 Alcuni blocchi componenti i sistemi digitali 36
1.9 Questioni di notazione 37
I
L 9.1 Notazione per i segnali 37
, 1.10 Esercizi 39
.L Elementi architetturali di base ... 41
2.1 Struttura dei calcolatori 41
2.L1 D sistema CPU·memoria 44
II La CPU 45
2.3 Primo esame del funzionamento della CPU 47 •
2.3.1 Esecuzione di un'istruzione 48
2..3...2 Due approcci per la progettazione dell1unita di cantralla 51
~ Cablata 0 microprogrammata? 55
, xii Indice generate
'. ..
1
,\ - 2.4 Prestazioni della CPU
2.4.1 La valutazione delle prestazioni
58 ·i•.
59 .
2.i..2 Papolari indici di prestazioni
I .25 n repertorio delle istruzioni 61
62
:l4J.- R.epertorio stile RISC ':',
62
I'2.4
26
:h>.:! Repertorio stile CISC
Criteri di classificazione delle architetture
64
65
I."
i.I
';1
Indirizzamento "

I
2.7.1 Ordinamento @ 'I·. ,
2.7.2 AJlineamento
C8ID it.,
\ 2 73 Indirizzamento dei dati
70 :~I', .
2.7.4 lndirizzamento nei trasferimenti del contrallo 74
2.8 Esercizi
\ 74

111- La memoria principale


Le memorie RAM
77
77
,~,
,·1·
, '
,,'
~.
'

3.1.1 Parametri di valutazione


2 78 !I
).3 Le memorie statiche
3.2.1 Un esempio di memoria statica
78 ..•
79
lJ. Le memorie dinamiche
81 .)
~ Un esempio di memoria DRAM "I'
3.3.2 L'interfacciamento COD il processore
83 "." :
84 .'
13 .4 n dimensionamento delle alimentazioni ..
1,"

di un sistema di memoria
3.5_ 85
Organizzazione' "~~
86
3.5.1 Interlacciamento :.;...
88
)3.6 Relazione tra 1a velocita della CPU e 1a velocita della memoria
3.6.1 Case di studio: evoluzione della velocit' dell. famiglia 8086 in
89 ,..I
·. 't
rapporto a quell. delle DRAM 89 ,
":11''

If Localita, arganizzazione gerarchica


3.7.1
3.7.2
Localitil.
~a
92
93
93
,
\1

3.7.3 ~mpio di gerarchia 95


\8 R.a.ssegna sui principali tipi di DRAM
commerciali
96
i
J
3.8.1 DRAM con accesso a pagina 96
3.8.2 Cached DRAM ,.
97 .'.'
·.r,

I 3.8.3 SDRAM (Synchronous Dinamic Random Access o


,
Memory) ~ DRAM sincrone 97 '.'"I
3.8.4 Moduli commerciali ')1
98
3.8.5 Cantralla di errore 99
\.9 Esercizi
100 •I

.L 11 sottosistema di ingresso/ uscita 101


,>
..I
!;
D. Elementi di base del sattosistema di

~
·,1
ingresso/uscita
101
Gestione a centralla di programma 106
4.2.1 n sattoprogramma eli gestione 106 I',

·,
..,
I
,

lndice genera.le XlII

1
.--
4.3 Gestione sotto cantrollo di interruzione 108
-4.4 Esempia semplificata di sistema di interruzione
4.4.1 Esempio di routine d~ servizia
J 108
109
4.4.2 Le interruzioni non mascherabili 113
4.5 lnterruzione da parte di pili periferiche 114
4.5.1 Discriminazione da programma 114
4.6 Interruzioni vettorizzate 116
4.6.1 Linee di richiesta indipendenti 116
,
4.6.2 Vettorizzazione esterna 118
4.7 Interruzioni' annidate 122
. 4.8 Interruzioni vettorizzate con daisy chain 123
4.8.1 Daisy chain asincrona 123
4.8.2 Daisy chain sincrona 127
4.9 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
4.10 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
. 4.11 Un esempio di DMAC: il dispositivo ·Intel 8237 141
. \ 4.11.1 Funzionamento . 142
4.12 Esercizi 144
5 La CPU 159
5.1 Notazione 159
5.2 Architettura di riferimento della CPU 160
5.3 Blocchi componenti 163
J 5.3.1 I registri di usa generale 163
53.2 ALU 163
5.3.3 Memoria 164
5.4 Sviluppo di CPUI 164
5.4.1 Sezione di prelievo delle istruzioni 166
5.4.2 Sezione di decodifica delPistruzione ... 1~8
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
5.5 Considerazioni suUa realizzazione a singol0
periodo di clock . 173
5.5.1 Ricomposizione finale di CPUI 175
5.6 CPU1 con memoria unificata 175
5.7 Sviluppo di CPU2 179
5.7.1 Fase di prelievo delle istruzioni, IF ( 180
I

xiv Indice generate i


5.7.2 Fase di decodifica delle istruzioni, ill
180
5.7.3 Pase eli eseeuzione, EX
182
5.7.4 Pase eli memoria, ME
182 .
5.7.5 Fase d.i scrittura del registro di destinazione, WB 183 1
5.7.6 Ricomposizione
183
5.7.7 Segnali di comando
183
5.7.8 Stati comuni a tutte Ie istruzioni
186
5.7.9 Stati elipendenti dal tipo di istruzione 188 J
5.8 Espressioni logiche per comandi e selettori
190 ,•
5.9 Considerazioni sulla realizzazione multiciclo
192
5.9.1 Miglioramenti a CPU2
5.10 Le interruzioni 194
196
5.10.1 Classificazione
196 ,
5.10.2 I problemi per il trattamento delle interruzioni 197
5.11 Interruzioni BU CPU2'
198 "
5.11.1 Considerazioni
199 ,
5.11.2 Miglioramenti
202
5.11.3 Interruzioni vettorizzate
204 .
5.11.4 Atomicita dell'interruzione
5.12 Esercizi 204 .
205 J
6 La pipeline
209
JQ Introduzione 210
.6.2 Prestazioni
6.2.1 Indici delle prestazioni 211
211
~ Considerazioni
6.3 213
Alcune estensioni al repertorio delle istruzioni
.fiA:) Esecuzione in pipeline 214

~ Le fasi di esecuzione 219
-
222 .

6.5.1 lBtruzioni aritmetiche


223
6.5.2 Istruzioni di Load/Store
225
6.5.3 Istruzioni di saito
227
6.5.4 Sintesi del contenuto dei campi EX l ME, WE .I
6.6 LJunita di controllo 230
231
6.6.1 Realizzazione dell'unita di controllo ,
6.7 Conflitti 236
236
.~

"
Ji.L.l Conflitti strutturali !
6.8 Conflitti dati 238
-~

238
6.8.1 Tecniche per la Boluzione dei conftitti dati
239 :.
6.8.2 Riconoscimento del conftitto dati {
240
6.8.3 Soluzione dei eonflitti tramite stallo
242
6.8.4 Soluzione dei con.fiitti sui dati tramite anticipazione 244
6.8.5 I conflitti per Ie istruzioni load
246
6.8.6 Sovrapposizione
6.8.7 Riordinamento 248
249
,.tj.~ Conllitti di controllo
250
6.9.1 Conllitti per salti (ineondizionati)
251
6.9.2 Confiitti per Ie diramazioni
252
I

if Iodice generate xv
1
6.9.3 La soluzione software: Ie diramazioni ritardate 25" ]
6.10 Predizione dinamica delle diramazioni 256
25"
.,
1",
6.10.1 Tabeila di predizione delle diramazioni
6.10.2 Statistics. di esecuzione e accuratezza della predizione
6.11 Branch Target Buffer
25:
25,
I
t - 6.11.1 Prestazioni del BTB 261
Ji
,••
6.11.2 Ottimizzazione del BTB
6.11.3 Uunita per la predizione dei salti condizionati
26: I
del Pentium 264

6.12 Predittore adattativo a due livelli 266
I 6.12.1 Realizzazioni alternative del predittore a due livelli
..I 26 \
,jf 6.13 Le interruzioni 271
6.13.1 n concetto di interruzione precisa 270
6.13.2 Interruzioni esterne . 273
"1•
,;1'
6.14 Eccezioni 27: ]
6.14.1 Eccezioni e interruzioni esterne 27!
.i, 6.15 Esercizi 279
,i
.,
J,
-7.1
7 La memoria
, cache
Funzionarnento della memoria cache
28: (
28: ,
7.1~ Cache a mappatura diretta 285
7.1.2 Cache completamente associativa 7
7.1.3 Cache parzialmente associativa 28
28, \

7.1,1. n problema della serittura 28~


7.1.5 10 state della linea di cache 291
7.2 Algoritmi di rir]lpiazzamento delle linee di cache
29: I
-'I 7.2.1 Sostituzione a' caso 29. \
1
ii
7.2.2 Rimpiazzamenti con algoritmi LRU 29~ 1
7.2.3 La teenlea PIFO

.I'
7.3

7.4
AnaHsi deile prestazioni
7.3.1 Le cause di fallimento nelPaccesso alia cache
298
30r
30:
I
Elementi che influenzano le prestazioni 30~
7.4.1 Dirnensione della cache 303
"I 7.4.2 Dimensione della linea 30: I
!I 7.4.3
7.4.4
Associativita
Algoritmi di rimpiazzamento
30: , I
306
7.4.5 Cache divisa 0 unifieata
.1
{'
7.4.6
7.4.7
Aggiornamento della memoria centrale
Cache multilivello
307
30'
30;
I
7.4.8 Posiziol}amento della cache ~

309
7.4.9 Multiprogrammazione
7.5 Sistemi a multiprocessore: coerenza della cache 311
31
J
7.5.1 Coerenza 31:
7.5.2 Protocolli per iI mantenimento della coerenza 316
7.5.3 Protocolli snoopy 0

7.6 Esercizi 31. )


32'
1~
Indice generale

0.'

8 La memoria virtuale ,.
331
\.D
Jll
Introduzione
Sistemi di paginazione 331
8.2.1 Dimensione della pagina 334
8.2.2 n Translation Lookaside Buffer 337 ';'
338
I 8.2.3
8.2.4
Gestione della tabella
Tabella delle pagine gerarchica 340
I 8.3 343
- Tabella delle pagine invertita
8.3.1 La codilica ha.sh 346
347
"-/

8.3.2 Gestione della tabella IPT ,'I.


\M
~,

347
8.3.3 n problema delle catene trappo lunghe 353 ~.
La segmentazione .JI
355
-
8.5
\ 8.6
Segmentazione e paginazione
Approfondimenti sulla gestione della memoria
357 ,"
.,
~I.-

i virtuale
8.6.1 Gestione della paginazione e della segmentazione
357
il
',
,
.:1'
•.
8.6.2 Algoritmi di rimpiazzarnento 357 .;Il
8.6.3 Occupazione della memoria 359
.,
18.7 Esempio di memoria paginata: la memoria del microprocessore 68030
362 oil••-:j,
363 "~
8.7.1
8.7.2
Traduzione degli indirizzi
La tabella di traduzione degli indirizzi
364 ,",
8.7.3 n TLB 365 ,;~

I 8.7.4
8.7.5
8u alcune caratteristiche speciliche della MMU
La pratezione
3.71
372
375
·~I'
,
·1:
'i;

8.7.6 Considerazioni sulla memoria virtuale del micro 68030 376


"
.\1,
] 88 Esempio di memoria virtuale segmentata: .j:
1a memoria virtuale del 286 . . ~I,
377 "1
8.8.1 Indirizzamento in modo Teale .\.
.)1:
377 ._,
8.8.2 Indirizzamento in modo virtuale ']I;
377
8.8.3 Tabelle dei descrittori di segmento . (I,
) 8.8.4 Gestione della memoria fisica
381 ;:1 •

8.8.5 Ali"" 384


8.9 385
Esempio di memoria virtuale segmentata e
paginata: la memoria virtuale del Pentium I
1 8.9.1
8.9.2
La segmentazione del 386 e modelli successivi
Descri~~ori eli pagina
386
388
8.10 390
Esempio di merrioria con tabella di pagine
I invertita: la memoria del PowerPC
392 ,
,
8.10.1 La IPT del PowerPC: la HPT
18.11 Esercizi 392 t:
396 ,,

9 La protezione
1 399
!9.1 La protezione nei sistemi Intel
19.2 399 ii'
I descrittori e la lora funzione
400
9.2.1 Descrittori di segmenti di codice e di dati (8=1) 401
9.2.2 Descrittori di sistema (8=0)
9.3 403
Trattamento delle interruzioni in modo protetto 404
9.3.1 La.tabella dei deScrittori di interruzione 405

l
Indice generale. XYli

9.4 La gestione dei processi in modo protetto 407


9.4.1 n segrnento di stato di un proces~o 408
9.4.2 Commutazione Era processi 410
9.5 La protezione: criteri generali 412
9.5.1 Verifica del tipo di accesso ai segmenti 412
9.5.2 Livelli di privilegio 413
9.5.3 Criteri generali per il cantrallo dei privilegi 414
9.5.4 I livelli controllati 415
9.6 Protezione negli accessi 417
9.6.1 Protezione nell'accesso ai dati 417
9.6.2 Protezione nei passaggi di controllo 417
9.6.3 Protezione nella commutazione fra processi 420
9.7 Altri aspetti legati alIa protezione a livelli 421
9.7.1 Variazione dellivello ill privilegio 421
9.7.2 L'attacco can il cavallo di Troia 422
9.7.3 Istruzioni privilegiate 423
9.8 La protezione di pagina 423

-lQ.J..
10 Esecuzione fuori ardine
Pipeline con unita funzionali multiciclo
425
425
102 Esecuzione fuori ordine 427
10.2.1 Gestione delle prenotazioni del bus dei risultati 429
10.3 Completamento in ordine 432
10.3.1 Completamento in ordine rispetto ai registri 432
10.3.2 Completamento in ordine rispetto alIa memoria 433
10.4 Metoda del buffer di riordinamento •
434
10.4.1 Uso di ROB e di perco,si di bypa.ss 438
10.5 Metodo dell'history buffer 439
10.6 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
11 BUS di sistema 447
11.1 Un po' di storia
11.2 La standardizzazione
.., 447
452
11.2.1 Operaziani suI bus 455
11.3 Allocazione del bus 458
11.3.1 Arbitraggio distribuito Con schema daisy chain 459
11.3.2 Arbitraggio centralizzato con schema parallelo' 462
11.3.3 Arbitraggio distribuito con schema parallelo 463
11.3.4 Arbitraggio centralizzato con schema daisy chain 465
11.4 Esempio di progetto della logica di arbitraggio distribuita in daisy chain 466
11.5 Organizzazione dei moderp.i calcolatori
personali 471
11.5.1 Il chipset 474
11.5.2 . Chipset per la ela.sse Pentium 475
xviii Indice generale

11.5.3 Chipset per la classe Pentium 1I1


11.6 IT bus SCSI 477 ..
11.6.1 Principi eli fUnzlonamento 479
11.6.2 I segnali SCSI 479
11.6.3 FMi del bus 481 -
11.6.4 Un esempio di operazione suI bus SCSI 482
11.6.5 Conclusioni 485
11.7 IT bus PCI 488
11.7.1 Principi .di funzionamento 488
11. 7.2 I segnali del PCI bu, 488 ,

11.7.3 Tran~azioni di trasferimento dati 490


11.7.4 Arbitraggio 49.1 <
11.7.5 Prestazioni 495
11.7.6 Blocco delle riaorse 497 ·
11.8 IT bus USB 498 "
l
11.8.1 501 4
Caratteristicbe generali )
11.8.2 Struttura fisica 501 ,•
11.8.3 Organizzazion·e a livelli 502
11.8.4 Host
11.8.5 Periferiche
503
505
,..".,I
,r"
11.8.6 Hub 505 ".
11.8.7 Modella dei Busai informativi 506
11.8.8 n cavo
11.8.9 Riconoscimento e configurazione delle periferiche,
506
508
1
.,

11.8.10 Trasferimento di dati 511 •
-i
11.8.11 n protocollo e U formate dei pacchetti 512 I
513 •;

A Sistemi DigitaJi • "..
0
A.1 Proprieta dell'algebra delle reti 517 q

A.2 Forme canoniche 517 ,.i
A.2.1
A.2.2
Prima forma canonica 519
519
•·•
Secanda forma canonica '.
,
A.3 Minimizzazione 520
A.4
,
;

..
. Altri operatori e altri tipi di porta 521
·
A.4.1 NAND e NOR 522 ,·
;

A.4.2 522
A.4.3
Reti can sale porte NAND a 'ole porte NOR
Una tecnica grafica per la trasformazione 524
.,
,
A.4.4 XORe NXOR 524 ..
A.5 Esempi di reti combinatorie 525 j•
,
A.5.1 n cantrollo di parita. 526 •

A.6
A.5.2 Comparatore digitale 526 ,
Unita aritmeticbe 528 1•
A.6.1 Somma Con calcolo anticip~to del riporto 530 '.
"
A.6.2 Ancora sui sommatore completo 530 •
A7 Unita aritmetiche e logiche 532
A.8 Reti sequenziali 533
A.8.1 Modellogenerale 536
A.82 536
Rappresentazione delle funzioni c,li stato e uscita ,
538 ·

"
,I 1
,i'
,.1
lndice generale XIX

,
..... A.9 Sincronizzazione
540
·,., . '
A.IO Reti sequenziali sincrone
542
., A.1O.1 Flip-flop Master-Slave
-1 : 543
' .
'' :
.-'
A.10.2
A.10.3
Altre considerazioni sui flip-aop
Madella dj Mealy e madelia di Moore
545 I
..,'.

• A.lI Esempi di analisi e progetto di reti sequenziali
A.1Ll Esempio di progetto: generazione di un 'egnale di WAIT
546
549
549
••

..'
'.


,
I ",
,'
A.11.2 Esempio di progetto: rete per Fadattamento

A.12 Esercizi
della temporizzazione dei segnali 551
I
<! 555
·I • B L'architettura 8086 \
· B.1 Un pO' di storia
559
B·.2 562
l Architettura di base: il micro 8086
4 564
) B.2.1 n modella eli programmazione 565
,•
,,..
I:
.
B.2.2
B.2.3
B.2.4
Organizzazione della memoria
Accesso alia memoria
Osservazioni sull'organizzazione di memoria dell'8086
568
571
I
,
B.2.5 572
"r , Struttura interna del microprocessore 8086
.

1,
,

,
. B.2.6
B.2.7
B.2.8
Cieli' di bus
Modalita di funzionamento
La fase di partenza
573
575
576
l
B.3 n repertorio delle istruzioni 576


I.


B.4 Modalita di indirizzamento
B.4.1
8.4.2
Indirizzamento degli operandi
lndirizzamento nei salti
577
578
578
I
B.5 Formati delle istruzioni 580
'.
B6 II coprocessare 8087
, 581 I
i.
B,6.1 --
Madello di programmazione esteao
584 I
•• B,6.2 Tipi di dati , 584
586

B.6.3 Collegamento can la CPU 8086/8088

I
B.6.4 586
Coordinamento con la CPU: aspetti generali
B.6.5 587
Coordinamento coo la CPU, il controllo del bus
B.6.6 591
Emulazione del coprocessore
B.7 593
, IT microprocessore 80286 (286)
B.7.1 Modello di progranimazione
594
B.7.2 595
La struttura interna
596
\
B.7.3 Modo protetto
B,8 IT microprocessore 80386 (386) 597
B,8.1 Emulazione ~086 597
598
B:9 n microprocessore 80486 (486)
8.9.1 . La cache interna 600
1
B.9.2 600
Vevoluzione verso frequenze pili elevate
B.lO II Pentium 601
B.lO.l La struttura interna
B.1O.2 L'unita per la predizione dei salti condizionati
602
602 J
B.1O.3 L'unita per il calcolo in virgola mobile 605
B.10.4 Le due cache interne 609

"
609
J
."II
xx Indice generale

1
B.ll n'Pentium con tecDologia MMX ·'i1 '''
610
\ B.1Ll L'estensiooe MMX
8.11.2 La struttura interna
610 \'~.1JI,
I 611
B.12 n Pentium Pro , 611 ••I
II
B.12.1 La pipeline e l'esecllzione dinamica
B.12.2 Ridenominazione dei registri
613
618
II
B.13 n Peotium II 619
B,13.1 La struttura interna
n Peotium ill 620 I']1.
l B.14
B.15
B.16
La for"ma esterna , i bus e altro
Esercizi
b
622 ·,"I' ,

C
626
,I,
e .'
L'architettura PowerPC

t1
I C.1 627
Architettura PowerPC
, C.l.1 Formati istruzione
628
628
C.1.2 Organizzazione
628
I C.2
0.1.3 Caratteristiche e prestazioni di alcuni modelli
La CPU MPC 601
C.2.1 Gestione della memoria
631
631
633
~
j,

J:
.

C.2.2 La coda istruzioni del 601


633
C,2,3 La pipeline del 601
635 'II,
C.3 Un esempio di Bussa istruzioni per it 601
I C.4 La CPU MPC 604
638
639
~1!
-
C.5
C.4.1 La pipelioe del 604
Un esempio di Bussa

istruzioni per il 604
Un confronto tra Ie prestaziooi del 601 e 604
641
643
l1
.,
\ C6 646
C.6.1
C.6.2
I.e prestazioni del 601
Le prestaziooi del 604
648 ,j 1

649 1
0.6.3 Prestazioni relative
650 i"
)gl n linguaggio
Generalitil.
assembler 651
652
I

D.1.1 Sintassi I'


654 I
\ D.2 Segmenti e moduli 657 I'
, D.2.l Direttive per 1a gestione dei segmenti ,
"
657
D.2.2 Generazione dei riferimenti: 1a direttiva ASSUME 659 1
D.2.3 Relazione tra segmenti e moduli til"
I D,3 I simboli definiti daJ programmatore
661
664
D.3.1 Eticbette 11
I 664
D.3.2 VariabiJi 665 '"
D.3.3 Variabili strutturate 667 ,.,
I D.3.4 Costanti 668
'i,~1
, ,..
I
I D .4
D.3.5 Procedure
Direttive per il collegamento dei moduli
670 ,
,
670
DA.l Direttive per la programmazione modulare 670

I D.4.2
D.4.3
D.4.4
La direttiva END
La direttiva INCLUDE
n sistema macro del MASM
671
671
672
"
·
,

I ,.',
"
Indice generale XXI

D.5 Un esempio di programma assembler 673


D.6 It processo di traduzione 678
D.6.1 Assemblatore: primo passo 681
D.6.2 Assemblatore: secondo passe 683
D.7 Collegamento e caricarnento 684
D.7.! Caricamento in memoria ed esecuzione 685
D.8 Esercizi 685
E Comunicazione tra Calcolatori 689
E.l lotroduziooe 689
E.l.l n mezzo 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: P8251A 710
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
Bib~iografia 719
v
; ..,- ".,.·, :\

"

"- , 1
n,
1,
"

,
, "
:' ~.-
,:ll'
:;,~

,"~'
'II,',
" '

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

_lOll,

1
'~}ii Questa capitola e introduttivo aile tematiche dellibro. Dopa Un breve resaconto stori- )
dl C9 s)Jll'evoluzione dei calcolatori elettronici, vengono richiamati alcuni concetti di ca-
l rattere generale sui sistemi di numerazione, sulla rappresentazione dell'informazione l
sulle unita. aritmetiche, sui sistemi digitali e sulla struttura ill base dei calcolatori. !
',1
,:'~ ,
"II' Ritenendo che la parte degli argomenti relativi ai sistemi digitali (algebra, reti ~
.-,~ ,
combinatorie e sequenziali) meritasse un approfondimento maggiore, e stata predi-
:1 sposta !'Appendice A, alIa quale si fa spesso riferimento.
""I'
,'}

",'" I
",~
'~I
\
1.1 Qualche cenno storico I
JI ""
• ;11
','
'
I
La storia dell'evoluzione dei caicolatori elettronici costituisce da sola materiale suffi-
"I
,.j) :
'°1,

'4'' ,
, 'II'
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
sia stata incontenibile. Una ricostruzione pili dettagliata', specialmente per quanto
I
'1J",
"
riguarda il primo periodo storieo, si trova in [HP93] .
,~'il
!~ :
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-
-·if 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.
-"
ill
,::j, La macchina veniva impiegata per calcoli balistici. La sua esistenza venne resa nota \
:'-~
"
,,',; "I ne11946, a guerra finita. Occupava un volume immenso: aveva fonna di U, era lunga J
._~:
'-I circa 30 metri, alta 2 e spessore di 1 metro, per oltre 120 metri cubi di volume, su
3~,,,I
"'.~
,"
"
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;
ogni registro era lunge oltre mezzo metro. Era in grade di eseguire 1900 somme at
I
secondo. La programmazione avveniva in modo manuale, attraversa fill e interruttori
!
,,
I
1Nel 1973 un giudice·federa.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.
"
.;'!,
"

2 Capitolo 1 J.J
,,jl,.,.
1. suI pannello di cantrollo, non dissimile cia queUo di una vecchia centralina telefonica.
,.",
••"
,,
..
I dati, venivano introdotti attraverso schede perlorate2 .
.;\
n problema principale della macchina era la modalita. d.i programmazione. John
1 von ,Neuman, che faceva parte: sin dal 1944 del gruppo di ricercatori e progettisti ::1'
che ruotava attorno al Ministero della Difesa Usa, scrisse un rapporto in cui veniva i1;:;1
esposta per la prima volta l'idea di costruire un calcolatore a programma mernorizzato,
,,:'
' .. '
\ che egli chiamo EDVAC (Electronic Discrete Variable Automatic Camputer). Questa '~I
I soluzione divento la norma e, di fatto, distingue quelli che oggi chiamiamo calcolatori "
:,tl
elettronici cia precedenti macchine·dedicate a1 calcola. Von Neuman passe (llia storia3 . '"r"
Eckert e Mauchly fondarono una societa che eostful il prototipo chiamato BINAC. ":~I

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
'Ii:

250.000 Dollari Usa. Di UNIVAC I ne vennero prodotti 48 esemplari. ~1


,:;,1
,
\ 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,
"',"I'..~,
I "c;.'!
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
'If,
,"
"
prima volta si. distingueva il concetto di architettura da quello eli realizz~ione, nel " "I·,
I
"

sensa che l'illM aveva definito un 'organizzazione di macchina die sarebbe stata co- I. ,I.
,"
roune a tutta una famiglia d.i calcolatori. Questi avrebbero potuto ~vere dimensioni, 'F
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 'JI'
'~:
) fondamentale: da quel momenta i concetti di archi-tettura e compatibilita avrebbero
costituito il fondamento per ogni produzione industriale, L'IBM dominera per anni
"\'
)
'ii,
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 jl~
parte di chi 10 impiegava, Ie macchine IBM erano in ogni b~ca, ministero 0 grande
)
impresa. La necessita. di salvaguardare questa patrhnonio e stata e continua a essere
I
una delle forze condizionanti dell'evoluzione del mercato dell'informatica. ~J'I
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 !.r.
.,
condiviso da parte di piu utenti. Nel 1963 apparve il CDC 6600, il primo vero super- ,I,~

calcolatore. n suo progettista S. Cray, dopo aver progettato altri calcolatori per 1a .,.
1 Control Data CorporatioD, fondo successivarnente una sua societa. che ha continuato J
J a produrre macchine ultrapotenti.. '~.'
Net 1965 la DEC (Digital Equipment Corporation) introdusse il primo minical- "
••
.',
(
'j'l
••"
) '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.
3Hennessy e Patterson [HP93} espongono una serie di argomenti in base ai quali la fama del
signor Von Neuman e da considerarsi parzialmente usurpata e che ad altri avrebbe dovuto sorridere
1 1a gloria.
"

.J
1
Introduzione 3

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 l'impi~go 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 industriale4 . 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'.

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 e diventato
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 s~quenze di

4Per anni e stato costume confrontare con iI Vax Ie prestazioni di nuove m8.C;Chine immesse sui
mercato.
:lUna d~ina 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.
-
'-

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
neW Aprile del 1972} nella forma di un integrato a 18 piedini7 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, a1fem~ 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 In·line 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.
,.~ ,.:"
· .". ,".. ...
I
,
,',

."·l . '
~.

:. [j;

'fj.
e, Intro.duzione 5

.. ; . ]
<,"'
,:..~I.
,
'"
,

i 'j
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
esterno di 16 bit e la possibilita di indirizzate un spazio eli memoria immenso. Biso-
I
~I
·~l. 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 lultime. Anche
il 68000 aveva caratteristiche architetturali pili convincenti delP8086: presentava an-
I
zitutto uno spazio Iineare. e si annunciava pili potente. Tuttavia sia 10 zaooa sia il
l ,I
68000, si fecero aspettare troppo a lunge dopo I'introduzione dell'8086. n 68000 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),
·I rna. quando 1'IBM castrul il suo PC (Pe.rsonal Computer), sul mercato c'era un unico
miqo a 8 bit capace di indirizza~e almena 1 Mbyte di memoria: 1'8088. Quello fu il
'-7,~
:.:'i.' 'I'f 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
."'
-I.,1
:j
':J:'
.~# '
maggior compagnia di software del pianeta9 .
n 68000 ebbe ottima accoglienza da parte dei costruttori delle c08iddette work-
station, ovver? sistemi ~divi~uali?~ c~attere profes~ional~, allora molto pill a~ati
I
~ dei calcolaton perso~ah, 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
''iI
·..,:', 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
:Ifi~'
~l, 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-
'·nal
·'r
h
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
\

. "1
·f McIntosh della Apple. La famiglia 68000 ebbe largo impiego ancbe nel campo indu- I
~'"i

J'
·l
" striale 0 come embedded computer, in quei casi, come nelle stampanti postscript in cui
si richiedevano buone capacita elaborative. La fo~una della famiglia MC68000 co-
minced. a declinare verso la fine degli anm ottanta, Quando i principali costruttori.di
I
workstation cominciarono a ricorrere 0 a produrre direttamente CPU RISC (Reduced
..
.'. '
'j 1 Instruction Set Computer), corne accennato poco pili avanti.
Lo Z8000 non sfonda nel mercato dell'informatica dei grandi numeri ne trovo \
'J.,I impiego in ambiente industriale. Venne impiegato nel Commodore l un calcolatore
;1"I 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
"
\1
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

..
.j',
,~

.•,,
del totale dominio in aree parallele.
I microprocessori. a 16 bit entrarono in una fase di grande crescita. Apparvero
componenti di corredo avanzati, come gestori di memoria (MMU, Memory Manage.
I
·, ment Unit), unita aritmetiche in virgola mobile (FPU, Floating Point Unit) e control-
"1
I
,
"

~I
,11
9Di queati aviluppi 5i parla con maggiori dettagli nell'Appendice apPOl3itamente dedicata
all'architettura della fa:migJia x86.
J
"II
~:
6 Capitolo 1 ,
." .
-."
...
" \1
'."
,',"
. ','

.'
.:l1 ,. '.

1 }Jj"
... ~~
lori di accesso alia memoria (DMA, Direct Memory Access). n maggior problema the
i costruttori si trovarono a fronteggiare non era piu, a questo punta, la liniitazione del "."
I, ,.
numero di transistori, rna la potenza dissipabile da.! chip. Per limitare tale dissipa- , ,~
1 zione (che superava il watt), molte compagnie progettarono dispositivi in tecnologia .'·~'l·.,. .
" .
. .
CMOS. . .,'

Nel 1984 Motorola introdusse la prima riuscita estensione di I,lD microprocessore 111
\ da 16 a 32 bit, l'MC68020, realizzato in tecnologia CMOS da 1.5 p.m e reso disponi\lile .11
I con frequenze massime di funzionamento di 25 MHz. n dispositivo ayeva sia il bus dati ."
sia il bus indirizzi a 32 bit e conteneva all'interno una piccola cache istruziom: Era ':11.
inoltre stato previsto un dispositivo esterno per la gestione della memoria virtuale. )1,
Questa volta Intel arrivQ con un certo ritardo (1985) a introdurre sui mercato la sua ,'0.
, '"
\ 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
il
..-
mercato dei 32 bit (anche se in prima versione era apparsa can una CPU a 16 bit). Con ,'110
,;'in ·

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.000··transistori in un
"
il
i,
',i,""
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 :l!j'
." 'I
486 aveva prestazioni di riguardo, avendo a bordo, oltre a una non trascurabile cache, .-ott.
l'unita in virgola mobile. <.
"·:ir·"
.~," .
~-:r ,
\ 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.
+
.,.
""t,
roSC: la National avrebbe smesso di n a qualcbe anno di produrre la serie 32000.
.::! .
II-
':.~
La Motorola, avrebbe cessato eli sviluppare 1a linea 68000, dedicandosi alio sviluppo "

\ dell'arcbitettura PowerPC, in compagnia di Apple e IBM. ,.t-


I Nel seguito PIntel sviluppa il Pentium e i suoi successori J sempre compatibili.
;11
•·'1~1.
Molti altri produttori di dispositivi elettronici (tra cui AMD) seguirono l'Intel nel
produrre CPU proprietarie, rna compatibili COD 1'architettura x 86. 11
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 ~ote 1a ";j"
storia the abbiamo raccontato. ·,1
'.•
,'"

I IJ 1.1.2 Le architetture RlSC


'''l-
I

AI,
~I'
\ I microprocessori di cui si e parlato in precedenza sono 0 erano maccbine ClSe (Com- ,
J plex Instruction Set Computer), ovvero macchine dotate di un repertorio eli istruzioni "I',I
molto ampio. Infatti esse sonG state concepite negli anni settanta, quando era in ..,,'I·:
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 • 1
portaroDo aile cosiddette macchine RISe (Reduced Instruction Set Computer). Pill
1 avanti nel libro, la discussione e il confronto tra Ie due differenti filosofie di progetto
il
l
,
Introduzione 7

Caratteristiche principa,j~ alcuni microprocessori


Nome ~ruttore Liarat~ica
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)

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 epuimpiegate 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

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 g~n~ris, coneepita per
essere un supercomputer.
..
....':O

8 Capitola 1 ,.
:,4
~~
·.ii

PowerPG. Sulla carta dimostrava di possedere quanta di meglio si potesse mettere .: ;jl.,
.}
. assieme come idee e come realizzazione all'epoca in cui venne progettata. Nonostante ·,·

ciD il PowerPC non e riuscito 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 scienti£che e
.~j
~I1
· tr
'~ 1i
come sostitutiva di una precedente CPU in una linea di calco1atori di fascia intermedia "\1
':.
denominata AS / 400. ...;
...:
... ')
.,,
.'
;~:;
,
"
1.2 Rappresentazione dell'informazione , ,~

.,~
"4
:'\
.';,
La parte che segue contiene alcuni richiami Bulla rappresentazione dell'informazione.
Vengono esposti solo poehi concetti di base, ritenuti funzionali agli obiettivi di questo "~I· ,~
libra. SuUa rappresentazione dell'informazione, l'aritmetica intera e in virgola mobile ..""
esiste un'ampia letteratura, sia di carattere generale [CPS93], [HP93], [HVZ84! sia i
specialistico [Orno94), pertanto la discussione che segue procede in modo intuitivo e
alquanto sbrigativo.
· ·~

1.2.1 Sistemi di numerazione ::~.


),~,

.~
'r"
0.']
Numero e un concetto matematico astratto per 1a descrizione quantitativa degli og- ~·j~
getti cantenuti in un dato insieme. Un sistema di nurnerazione e un insieme di s~mboli ~\1
.....
e regale atti a rappresentare i numeri. Le due principali categorie di sistemi di nu- ,-,',,:''1
,X;::

merazione sono la posizionale e l'additiva (quella llsata dagli antichi Romani). Alta
prima categoria appartiene il consueto sistema di numerazione decimale l l : '~';ij,",,
Prendiamo il numero 1475. Esso viene interpretato come: ,Ji.~

,
1
1475 = 1 x 10' +4 X 10' +7 X 10 +5 x 10° ~:~
,.J

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 .:,p
,~'

di cifre diverse. ;-.,;


;,;1

In generale, sia dato un numero B > 2, detto base, e I'insieme fj composto da B ,,1:.
simboli diversi: 13 = {O,1,2, ... ,E - I}; la stringa di n crne: :,,
"~j

bn - 1bn _ 2 . , . b1bo .\0;


·J
.. ":
:"
can bi E fJ si interpreta come: ,.;
~,
bn _ 1 x B n - I + bn _ 2 x B n - 2 + ... + bI X B I + bo x EO "",· "

Consideriamo ora i casi di B uguale , rispettivamente, a 8, 16 e 2, -Il.:,


~i

llLa ragione per cui l'uomo ccnta in base died deriva sicuramente dal riurnero di dita delle nostre .. :1
,~

manL Si sa di popolazioni che Cantavano in base 5, I Maya avevano un sistema di numerazi.one . '.,',.
vigesimale. . "
.....'
"~
·"d"
..,-,
....
OW' ', .

.~'
]
4: lntroduzione 9
~ .

I
i•.

l', .
;
} Can B = 8 (sistema ottale) l'insieme dei simboli diversi e{3 = {0,1,2, .. ,7}. Se, a
·~l:
esempio consideriarno la stringa 417, essa corrisponde al numero:

I'
j .
1r 417 = 4 X 8' + 1 X 81 + 7 x 8° = 4 x 64 + 1 x 8 + 7 x 1 = 271
I
1i
.'1 Llapparente incongruenza ~eriva cial fatto che normalmente, quando si vede un nume-
roo scritto, se ne da. ~n'interpretazione decimale. Per evitare equivoci l l'uguaglianza
;
:1
)
,.,, andrebbe scritta come:
'.
:;
"

417s = 271 10
J
~
,
..
n concetto'di numero e puramente astratto, 417 e 271 sono 1a rappresentazione
\1' '
~
4 ..
,

I;
,
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-
I
~.
"' .
it 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

I
~1·

Can B = 2 (sistema binarin) si hanna solo due simboli diversi: 0 eLLa stringa
~l;. 10011, corrisponde al numero
~..
,
."
1
"] 1 x 2' + 0 X 2' + 0 X 2' + 1 X 2 + 1 x 2° = 1 x 16 + 0 x 8 + Ox 4 + 1 x 2 + 1 x 1 = 19 \
~I'1. " 10

,'1''j ,
::I In Tabella 1.2 vengono riportati i prirni 17 numeri interi nelle 4 rappresentazioni (
. appena viste. La numerazione in base 2 e importante perche nei calco1atori elettronici
",
j
'l \
l'informazione e rappresentata solo attraverso due simboli {O, I}. Le numerazioni in
base· 16 e in base 8 interess~no perche 1a trasformazione tra queste basi e 1a base.2 (e
~ .
i,
viceversa) e immediata 12 . \
~
J
.'•
~,

~ase
I
-"ase 10 lfase 2 8, Base 16 .i;ase 10 Base 2 B.... B
~I
1
Base 16
0 O. 0 0 9 1001
.' 11
,
'

p.,
1 1 1 1 . 10 1010 12
9
A
2 10 2 2 II 1011
; 13 B
;1 3 11 3 3 12 1100
11:.it
I
4
14 C
100 4 4 13 1101 15
5 101 D
,,,j 5 5 14 1110 16 E
j 6 110 6 6 15 1111
;
7 17 F
JI 111 7 7 16 10000 20
":1' B 1000 10
" 10 , B 17 10001 21 11
;,1'
,I
J
,,
" Tabella 1.2 I primi ]8 numeri nelle basi 10 1 2, 8 e 16,
ll',!
i

J
11',
~

,~
.,.
12Nel seguito la numerazione in base 8 Don viene piu considerata, anche perche ormai si fa )
"
"
~yO
d '.
praticamente usa solo della numerazione in base 16.
,
.'\: ",
, c' ': .
10 Capitolo 1 'j""
.i " ....

1
:,~: . '

", ,','
J.j
..J<,
1.2.2 Conversione di base
..,-
'~
,

(
.. "
\ Esaminiamo per prima cosa la conversione cia base Bk a base B e viceversa. In
particolare interessa 1a conversione tra esadecimale e binario.
';:i:
,·u
'::l '. ,

Si consideri il numero binario 010111000011. Si raggruppino a partire da destra ~~."


):1,
II 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•
;'i::1. ,,"
,
':- iI.
',,!
facile convincersi che questa e la rappresentazione esadecimale del numero binario di "
'J!
panenz3. Ovviamente it processo puo essere applicato anche in modo opposto, per 1a -:?I
!J
.

conversione da binario a esadecimalej per esempio: -,~,

, ,',.
\ IJLB07 =00011100110100000111 2 ;'".f
"
) 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 , "

I '.'

bn_1(B')"-1 + bn_,(B')n-21 +'" + b,(B')' + bo(B')O (1.1)


-
dove ogni bi e presQ da {O,l,... lEI:. - I} ed e rappresentato in base B come
I b'\, k-1b \, k-2 '" b'0= , '_lB'-l + b'" ,_,B'-2 +"
, ' b' ,+ b1, oB o
dove ogni bi,; e presQ da {DIl"" ,B - I}. Sostituendo in 1.1 a cia.scun bi la sua
, 1 rappresentazione in base B, si ha
,, I
[bn_1,'_lB'-1 + bn_1,k_2B'-2 + ' " + bn_1,oBO](B')n-1 + ""

(bn_2,k_1B'-1 + bn_2,'_2B'-2 + ' , "+ bn_2,oBO)(B')n-' +


[bo,'_lB'-l + bo,'_2B'-2 +'" ,+ bo,oBO](B')O =
\ , .
"
bn-I,k-I B kn-I + bn-l,k-2 B kn.- .,;.,
2
+ ... +
bO,k_1B'-1 + bO,'_2Bk-2 +, ,, + bo,oBo)(B')O ,(,~
"?
",
) che corrisponde alia stringa bn-t,k-lbn-l,k_2 ... bn - I ,obn - 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, 22 + 0, 2' +I, 2° = 64 + 8 + 4 + 1 = 77 10


II'
I
"
La conversione a binario del numero decimale N richiede che si trovi la stringa .;,
,

di n cme binarie bn - t bn _ 2 . . . btbo con bi = 0,1, tale per cui


I
I N ::;;: bn - 1 x 2n - 1
+ bn _ 2 x 2n - 2 + ... + bl X 21 + bo x 20
;1,
Se si divide it polinomio per 2 si ottiene bo come resta e bn _ 1 x 2n - 2 + bn _ 2 x 2n-3 +
+ ... +b 1 come Quoziente. Dividendo il Quoziente per 2 si ottiene bl come resta e
) bn _ 1 x 2n - 3 + bn - 2 x 2n - 4 + ... + b2 . Si itera il procedirnento fino a cite l'ultimo
<;
1
" 't '

e
quoziente attenuto non piu 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 "
,

I e resti ottenuti dividendo per 2 e:


(17,1), (8,1), (4,0), (2,0), (1,0) (0,1); dun que la
rappresentazione binaria del nurnero 35 (decimate) e: 100011.
,

..
,'~
:,

",

"'""'M
.,i~ '~
1
' ", lntroduzione 11

1.2,3 Aritmetica binaria

,.
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 l~ rappresentazione binaria. In Tabella 1.3 viene
riportata la tabellina della somma e un esempio di samm~ 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.
".
o 1 1100,1011 +
o iI[Tl 110 1110
1~, 1 0011 1001

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.

>..
0 1 10110 x
,'
"'~.

nHE 101
10110
00000 ,
, 10110 -
1101110
Tabella 1.4 Tabellina del pcodotto. It prodotto tra due uUIneri in base 2 viene calcolato
col medesimo procedimento seguito in aritmetica decima.le.

1.2.4 Numeri negativi

Consideriamo un vettore di n eifre binarie

B = bn _ 1bn _ 2 •..•... b1bo


, '

con bi E {OIl}. Tale vettore rappresenta 2n numeri diversi, per esempio i 2n interi
n
positivi compresi tra 0 e 2 - 1. Occarre stabilire una qualche convenzione per rap-
presentare i numeri negativi. Di norma se il bit pili a sinistr·a e 1, aHora il numero
viene interpretato come negativo. Sono possibiti tee convenzioni:

"'~ '
'.V

12 Capitolo 1 , :.~
n'
'.'.
..";'
- .".,
,."
Modulo e Segno. In questo cas~ si passa da valore positivo a negativD semplice~ -t
mente cambiando da 0 a 1 it bit piu significativo. :::I"
..,~
;\
"':
Complemento a 1. .n camhiamento di aegno viene ottenuto complementando .,,
, '·

ciascun bit del corrispondente valore positivo. :~


'~,'1
.,
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 - - 1 e numeri negativi da -1 a _2 n- 1 . Per esempio, con 8 bit i numeri
11 1
"~l
..'....
,',,,

positivi vanna da 0 a. 127, i negativi da -1 a -128.


La soluzione in complemento a 2 e quella normalmente adottata e la sottrazione
..,
:!)~!
'J
del nUIDero b da a viene eseguita come somma di a col complemento a 2 di b. Ad '"'..
esempio, 'i prenda a = 00011110(= IE" = 3010 ) e b = 00010110(= 16 16 = 22 10 ), n ;:
.'.. ,
complemento a 2 di b si ottiene Corne~
.~f.oj
00010110 numero dato (16, = 22.)
11101001 complemento a. 1
11101010 complemento a 2
1_
\~S

La differenza a - b si ottieoe sommando: • "

00011110 + (30)
'..lll
,I ,
~"
~

.• 11
11101010 (-22) ~t

00001000 (8) .,;"


"~i''
';I1_\
,'-:;
1.2.5 Numeri frazionari ,,<
"J
'I
i~
Fino a questa punto abbiamo considerato solo numeri interi. La stringa:
,b_ 1 b_ 2 ... b_ m
l
... ~I,

si interpreta come:

L,B- 1 + +LmB- m
Esempio 1
n numero binario .101 corrisponde a1 numero decimale:

7"~~I
1 .2-
1
+ 0 . r' + 1 . 2- 3 = ~ + ~ = 0,5 + 0,125 = 0,625 ::'
• .~
"
La conversione da decimale a binario si ottiene con questo ragionamento: dato ;.'a
il numero frazionario F in base 10, si tratta di trovare la stringa b- 1 b- 2 ... b_ m tale .' ,1
,
per CUll ~"
,;.!
',\~
F = L1L,··· L m
IJ!
-
.",.;. ,.
'oJ..'."'{"'.' -
"~-

.. -.~~,. .

I
c' J ; ' . '
V '... ,..y-.,
· )' ,
~,
',
.'.
..;, Introduzione 13
'.
"l,
"
tt
:1"
~
" t .
Osservando che b_ 1 e la parte intera del prodotto I
\'",
"·11, 2X F = L, + L, X 2 + .. ·L m· X T(m-l)
.. I
:1
,,'
si deduce che la: ricerca dei coefficienti bi richiede un processo di successive moltipli~
~I
- cazioni della parte frazionaria con estrazione 'della parte intera. n processo termina
,
~
11 quando la parte frazionaria risulta 0 (oppure non termina se il OUIDero e periodical.
-~ .
)
,
l
.. '
..., 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
0,125 x 2 = 0,250
-> 1
.... 0

I
0,25 x 2 = 0,5 -> 0 ,
:~I.
, 0,5x2=1,0 ->1 Si ba dunque (0,78125ho = (0,11001),
j'I' .',.
o)

.. 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
Sl

l,..
~.
'
.'
separa la parte intera dalla parte frazionaria si parla di notazione in virgoJa ji3sa.
I
",
1 _
1.2.6 Numeri in virgola mobile \
t ..•

"
'''I.
~
. .•
F'requentemente, e, in modo particolare nei problemi di calcolo tecnico e scientifico, l
I~"\ I si ricorre a rappresentazioni normalizzate di dat~ cbe hanno 10 scopo di sollevare
I 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 I
~: eseguite.
l
,
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. I
EsemDio 1

n numero 127000000 puo essere scritto nella forma 127x 106 ) mentre il nume-
- 1'00,0000015 puo essere scritto come Tale convenzione non elegata
15xlO- 7 .
I

. ':~"al1a notazione decimaIe, e puo essere estesa agli altri sistemi di numerazione.

I! In generale si puo dire che un dato numerico qualsiasi ammette una rappreseotazione
approssimata corne la seguente:
)
~ . ± ...1
.;,. 2 3· /\ ,YIY2Y3 . .. Yk X b±41 o i ... a" ,
a.
11,

!
dove bela base del sistema di numerazione,
sono cifre della stesso sistema.
X1X2X3. _. Xh, Y1Yz1!3 • . -11k e G1 2 . ..
a an, I
~

a II numero X1X2X3··· Xh,Y1Y2Y3 ... 11k vieoe chiamato mantissa, mentre il numero
! a1 2··. an viene chiamato esponente 0 caratteristica.
J
:;.,
.;:;
1 14 Ca.pitola 1 ".,.,,.

,~
. iiii
"
I
Esempio 2
Riprendendo i numeri dell'Esempio 1, si ha:
,
'f
"~I'
.,
, 'I.'

• XIX2Xa,YIY2Ya = 127,000 b= 10 ±al = 6 "..


,1\1

! l ±a, =-7
,~
,
I • XIX2X3,VIV2Va = 15 b = 10

Su una rappresentazione come 1a precedente si puo [are la convenzione che la prima


;l"l:
cifra significativa si trevi immediatamente a destra del punta decimale. Per ottenere l:i'<It
t db sara. sufficiente aumentare 0 diminuire il valore dell'esponente di tante unita Quante
e
sono Ie posizioni di cui stato spostato il punta. La forma ottenuta con questa
;,l~
1.'
.
,'..~ I
convenzione e detta rappresentazione esponenziale normalizzata. ". .
\. , "n
i:U\
I EseIlllliQ 3 ';,
,f1,
.n,
.Ji'
1 numeri dell'esempio precedente diventano:
127x106 =0,127x10' ~,
,
..':'1> -
'.~'

;'~I
r 15x10- 7 =0,15x10-' '.'
',"
.~
:'1J
Alcuni cara:tteri della rappresentazione esponenziale normalizzata sana ancora ridon~ .~
danti ed e possibile, mediante ulteriori convenzioni, arrivare a una, rappresentazione :;u~"
,;'1' .•
) piu compatta. ,".,. .
I,

'
Una di tali rappresentazioni, nell'ipotesi di notazione decimale, si ottiene adot- "
~
tando Ie seguenti convenzioni:

1 • eliminando i caratteri non necessari ovvero: i c


'. , I
- 10 zero che indica la parte intera della mantissa; _,0~

) -

il punta decimale;
II punlQ che indica II prQdQttQ;
~,":,
',.
'f' .

- 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
~

.••
1
• utilizzando un esponente convenzionale ottenuto sommando all'esponente effetti-
vo una costante (bias) che 10 renda sempre positivo ed eliminando quindi il segno
delPesponente;
• ,
'"I'··l , .
\ • disponendo i tre elementi rimasti in uo ordine stabilito. ,,
'g' ,
,~. '
) ._-;
Es~mlliQ 4
Utilizzando Ie seguenti convenzioni:
l,a, .
·,

I I segnQ I espQnente I mantissa I


,'n,
';1

,1
"•
'.•
:~..

I
~
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:

segno esponente mantissa


0,127x10' + 59 . 12700000
0,15xlO~' + 45 15000000
Come gia detto , la rappresentazione in virgola mobile non e leg~ta alia Dotazione
di numerazione, Una rappresentazione usuale ,e su 32 bit, Per essa si facciano Ie
seguenti convenzioni 13;

• 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 e il 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
c, 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

m 0001000 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.

13Corrispondono a queUe de~la. convenzione IBM descritta poco piu a.V3nti.


16 Capitolo 1

Convenzione IBM Nei mainframe IBM, e usata 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 e pin nec~ssario riportare il segno; I

• i rimanenti 24 bit (bit 23+0) contengono 1a mantissa M1 rappresentata in vir-


gola £issa con il punto di radice implicitamente assunto alla sinistra del bit pili
significativo.

ISlOIT] esp7~
L' esporiente puo assumere valori interi cornpresi tra -64 e +63 ed e riferito alia
base 16. La mantissa e normalizzata, tioe la sua prima cifra esadecimale e diversa da
zero: cio compona che &lmeno uno dei primi quattro bit della mantissa (bit 23~20)
sia diverse da zero; fa eccezione 130 rappresentazione del numero zero che e data da 32
bit tutti nuIli.

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, x 16'.
L'esponente convenzionale si ottiene sommando all'esponente effettivo (+2) •
la costante 64, ottenendo: (66ho =(1000010),. 11 risultato e:

rn 1000010 [TIoo 1100 0010 1100 1011 bOO I

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;


"t~ii'.!j "-,
:~il:~!~'-.~_

1
".-:.:('-~;-'
,," .
'.
,
, .,
-0-
lntroduzione 17
;~~~: •....
,'.~.
.Ill
--.
lsI bit I esp 8lillJlV! 23J»D
I
~<fl
;:~
.,'j e
·La mantissa rappresentata in virgola £issa con il punta di radice implicita.mente I
assunto alia sinistr~ del bit pill significativo e si as:mme che la sua prima citra binaria
'i'
· ,Ii sia uguale a 1. Poiche questa bit e sempre uguale ad 1; non necessita di essere rap-
.' .1 presentato: la m~tis~a e, dunque, espressa co~, 2~ bi~) m~ solo i 23 meno ~ignificativi ]
~.;-"'1":
r"
sana rappresentatl (bIt 22-:-0), mentre quello PlU slgnificatlvo, assunto uguaIe a 1, non
'I',
.. •
~.
e rappresentato (hidden bit - bit nascosto). n caso del numero zero, la cui rappresen-
:.;;~ tazione sarebbe incornpatibile con l'assunzione fatta (dovrebbe essere nullo anche il
'::':~
,1 bit nascosto) e indistinguibile da quell a del numero 0,5x2- 128 (tutti i bit nulli eccet-
YI .., to quello nascosto), e considerato a parte. Vambiguita e stata risolta considerando 1
"
,1'
ugliale a zero il numero quando gli 8 bit dell'esponente sono tutti nulli (esp =-128),
,;til a prescindere dai valori dei bit della mantissa.
"'1'1'
.-:{ ,

'EsempiQ 7
:""1"
-'. n .. ,,
.~..

~.
,. -.' -.
"'~"I' -
Rappresentiamo it numero decimale 204,17437 in notazione Boating-point
secondo la convenzione Digital
j
-':" -
_.,1 ~1lI-.
.Si ha :
:".

I
· ,,.-'.
(204,1743 7 ho =(11001100,00101100101111),
:y~" ,--
.~
, La normalizzazione della mantissa si ottiene spostando il punto decimale di
~,~, . 8 bit a sinistra; corrispondentemente !'esponente va posto pari a +8:
.~C)ij .~

',. • ,
:;<!
'
(11001100,00101100101111), =(0,1100110000101100101111), x (101000),
.,:'}
.:,.,-t ~,
L'esponente convenzionale si ottiene sommando all'esponente effettivo (+8)
la cost.nte 128, ottenendo: (136ho =(10001000),. n risultato e:
I
·.
.', i,
>Vil~-
" ..\C

'·r:..'1",.
~ C!TIOOOIOOO [ 100 11000010 1100 10111100 1 \
";11. .
"".

,n
Standard IEEE 754-1985 per l'aritmetica binaria in virgola mobile Per
--"
ii
·"u c
eliminare la confusione dovuta aHa nOn definizione delle istruzioni in virgola mobile, j
.,) ,. che riguarda il numero di bit usati per rappresentare l'esponente e la 'mantissa, l'in-
-'.,. .
••R·
tervallo di esistenza degli esponenti, i metodi di arrotondamento e la trattazione delle

JJ~
· j.,
'I ,
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).
I
:1I'.
.J ' La standard definisce 4 formati floating-point:.
.-~
'"
';, • formato base: )
"~1~1'

'."1.' lunghezza singola;


• lunghezza doppiaj
,.~.

.'i: • formato esteso: J


,.'
...1'"'
';.,
...•, lunghezza'singola;
'J-j.' lunghezza doppia. )
..
,\~
"
-:~,
.' ..
~'

) 18 Ca.pitolo 1

. '(-,'"
.>
- ;.,~

\ Ogni formate e definito specmcando tre par~etri interi: ';n


:"
I • P=numero di bit signi.6.cativi (precisione, ovvero numero di bit che compongono
la mantissa); ,
)~I;
••
"'.
,
.

-,
I,>;,

• Emtl:l=esponente massimo;
'~.!I
" .
1I • Emin=esponente minima.
'::"1
'.' '"j'
Dalla definizione di questi parametri si pUG risalire al numero di bit deWesponente, C'~1
d.~
all'esponente convenzionale e alla lunghezza del formato. I formati sana riportati ~n .,
TabeUil.1.5.
T
\ ,-~!

Singola Sin.e.:ola estesa Doppia DoEPJ,a estesa


\
I
t' (bit di precisione J
ETna~
23 >32 52 >64 t~
-',
ltmin
27
-1.6
>1023
< -1022
1023
-1022
>16383
< -1638.
'.
, ",~"
":,'~I, '

~
Bias 1023 '''I'
• -!~ -
L~~ezza Esponente >11 11 >15
t Larghezza formate 32 >43 64 >79

Tabella 1.5 Formati standard IEEE 754-1985.

1
"M"'
Lo standard impiega esponenti polarizzati , cioe at valore reale dell'esponente :'1
;'\1

l •
E viene aemmata una. base eli polarizzaziene (bias, pa.ri a 127 nel caso <;li singola
precisio~e 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:
:ii'
.,''':'
'='1"'
".;,'1
"~ia"
- lIDbit di segno s; '?II'.;.
"

- espanente polarizzato e::E+bias; ;',


.,
1 - mantissa M=,ffilm2ms ... rnp_l; ~1
n valore di E varia tra Ef1\in ed EfnoJ.x, includendo anche altri due valori riservati (It
E min - 1 per codificare ±O. e numeri denormalizzati , ed Emax + 1 per codificare ±oo ·'·'11"
••
\ e il NaNs.
e
La mantissa un numero decimale (binario) la cui parte intera sempre .1. Pere ..,,~, '

questa motivo tale 1 non compare nel campo mantissa della rappresentazione. Tale ) "

campo, quindi, si compone della sola parte frazionaria. "'f


AI
1 Esempio 8 '
Rappresentiamo con 10 standard IEEE il numero decima:le 5, nel formato in "" ...
,
singola precisione.
,u,
\ (5),0 =(101),;
,

(101), =(1,01), x (10 10 ),;


...'
"

Segno=O;
;u';
1 Mantissa=01000000000000000000000 (la parte lntera e implicita); ·• ,•
Esponente=00000010 ~lt

II ,~,
..
'.
•'-\1,
"
'
Introduzione 19

I campi sono interpretati come segue:


.
• Singola: un numero X in formata singola precisione a 32 bit e diviso come segue:

lsI bit I esj:> 8 bit I M 23lillJ


n valore v di X e dedotto dagli elementi componenti i campi nel seguente modo:
L Se esp=255 e M;60, a1lora v e un 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 e dedotto 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,

e
Altra caratteristica della standard costituita dalle regole di arrotondamento. Quan-
do si esegue un'operazione su due numeri in virgola mobile, di solita il risultato un e
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 "

e pari. 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 /if
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 e prevista 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: ,
',;
-
,,
..

i'

(0,836 x 10-'),0+(0,375 x 10-'),0=(1,211 x 10-')10=(0,121 x 10-')10 , ';


,""

Affinche il formato del risultato sia uguale a quello degli addendi (man- ?,W
.:
tissa normalizzata di tre cifre) e necessario spostare la virgola a sinistra e -;'i
;;
modificare il valore dell'esponente, perdendo cosll'ultima cifra decimale. .,".

Ualtra modalita. e llarrotondamento conseguente alIa disuguaglianza degli esponenti


"
"~
·~t
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 -:f;
;·,
-,,1
cosl almena una cifra. .,.'!

EsemI?io 11
0,836x 10-'+0,375 x 10-' -,0,083 x 10-'+0,375 x 10- 4 =0,458 X 10- 4 ,"
-';
'/

;";
":~
I casi esarrunati (trascurando il problema dei casi ambigui, che come prima accennato
'
si ri501vono tramite l'arrotondamen~oal 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 t
(round digit)
',
Lo standard IEEE prevede anche cinque cause di eccezione aritmetica: -,
....
• underflow

• overflow

• divi,sione per zero f


'!
• eccezione di inesattezza ','. S
,!I,-~": -

Introduzione 21
l
• eccezione di invaliditd.
]
Le eccezioni di underflow, overflow, divisione per zero, sono presenti anche in altri
I
';

standard. L'eccezione di inesattezza e 1a caratteristica delFaritmetica IEEE e si ve-



.~I

il
",1 '

..
"-
rifica sia quando il risultato di una operazione deve essere arrotondato, sia quando
l' operazione meorre in un overflow.
,,..
f:" Quando si verifica una di queste eccezioni, e previsto 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 espJic~tamente. 10 standard raceo-
1
~.;J'
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 e attivo 1 entra il gestore delle interruzioni predisposto
\
dalPutente (ovviamente 1 in questa caso, il bit di segnalazione non e necessario).
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.
1
Operazioni in virgola mobile La descrizione dettagliat~ degli algoritmi con cui
-,
,~'
,~'I
.• r verigono effettuate Ie operazioni algebriche in virgola mobile, non rientra nei fini di
'~'
;j~ ,.
questa trattazione. Per ulteriori approfondimenti 8i rimanda alia letteratura [Omo94], f
;'U
""
[HP93); di seguito per dare un 'idea di come vengono svolte tali operazioni , sono
W -riportati in forma molto semplificata i principali passi dell'algoritmo di somma e
:,~­
i~ ,
;ri,
.". '
,moltiplicazione.

Somma alg~brica Le operazioni di somma e sottrazione di numeri in virgola mobile


!
""I'
"~'
t,· ' '.: 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
;~
,6
per l'addizione e la sottrazione mobile pub essere riassunta nei seguenti passi. \
11;
!,
1. Si prende il numero con l'esponente minore e 5i trasla a destra la sua mantissa
-.
;i
/
"'5
di un numero di bit uguali alIa ditIerenza degli esponenti. )
"11
;;, . 2. Si pone l'esponente del risultato uguale al pili grande degli esponenti dei due
~-;J" addendi.
''(j :
'-j
3. Si effettua l'addizione 0 la sottrazione delle mantisse e si determina il segno
!,~'
",
del risultato. \

tl 4. Si normalizza il risultato se necessaria.
<"
'!;;-
,.1
)
,:~.
.,'
Moltiplicazione Per la moltiplicazione non e necessario l'allineamento delle man-
.. ;~.'
tisse. L'algoritmo pili semplice puo essere cosl riassunto.
.~~~
--
.

J
- -

1. 8i sommano gli esponenti


.::
f 2. S.i moltiplicano 1e mantisse e si determina il segno del risultato
'!;
S. 3.. Si normalizza il risultato se necessario.
.,-,,1
J
~
" "-'
;'.~..
. ,'.

22 Capitolo 1 .
" ., .

1 •'

.'
A

,
l~a.ttere 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 ;,,..:)j
'oJ
1 31 49 b 62 98
:~H' ,.,
1 ..
9
..
39 57'"
..
z
..
8A
..
122
'-;
r
.",'I..,' '
".' .
.-""
!~:
\. Tabella 1.6 Codifica "ASCII dei caratteri alfanumerici.

\ 1.2.7 Informazioni di carattere alfanumerico ....


,_
.;ll;;
.

~, ,'.
I L'informazione elaborata all'interno di un calcalatore elettronico non e solamente di
carattere numerico, in quanta e necessaria 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

l macchine a 32 bit la parola si considera farmata da 4 byte.


Per rappresentare l'informazione alfanumerica si rende necessario stabilire una
corrisponde~a 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
e codificare un carattere a byte. Es~stono diverse codifiche, tra cui la pili nota e la
) codifica ASCII (America Standard Code}or the Interchange of Information). Origi-
nariamente il codiee ASCI~ 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-
1 rire insufficiente, per questo motivo stanno entrando in uso codici BU 2 byte come la
codifica. Unicode, 1a Quale con5ente di rappresentare 65.536 216 differenti caratteri.
·"1;1
I.,.",
....,
,",
":''j1
." ~
<~'
....;
',:'1'

l hi!
1 1.3 Logica dei sistemi digitali ..,,,
·""
. \\
'",'-
;\~.

, I ca.lcolatori r"appresentano il settore applicativo in cui l'elettronica e Ie tecnologie


.'".'
"·1
\ digitali hanno trovato piu vasta applicazione. J....
Un semplice ragionaD')ento spiega bene Ie ragioni del successo d~l'elettronica
,

"
e
digitale. Se un sistema 5i campane di n elementi e p 1a probabilita che ha ciascuno ·.,
di ea5i <Ii operare correttamente, allora la prohahilita che l'insieme degli n componenti . .,
e
\ operi correttamente pn. 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 malfun~'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 .

I
'
...
. Introduzione 23
.

'
A'

.. cap~cita. di discriminarli. Si tratta, per esempio, di ri~onoscere se un da.to segnale a e


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.
.,

• .
1
.
a te mpo
, Figura 1.1 Forma d'onda idealizzata di un segnale logico.
,

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.

,X-fJ.-_ xy ~ D x+y x t>o X


y-L--

AND OR NOT
Figura 1.2 Simboli standard per le porte AND. OR e NOT.
..
'.
. Le reti costruite a partire dalIe porte logiche possono essere descritte attraver-
so un'algeora, detta algebra delle reti 0 algebra boolean a, 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.

1.3.1 L'algebra delle reti •


e
L'algebra definita su un insieme, composto da due soli elementi, c~mvenzionalmente
denotati lS con 0 e 1.

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 e molto 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 ve~gono
24 Ca.pitolo 1

Pradotto logico vomple-


A B A-B mentazione
D D D
D I D D I I A B }~
.,
I D D I D I 1
~
.. ~'

1 1 1 I 1 1 D .'/
,
• l~
i.
Tabella 1.7 Ta.belle di verita delle tre operazioni fondamentali deW algebra
,,,",.
'Ji-
••
-,)1
d
,'"
Sull'insieme {O,l} vengono definite tre operazioni 16 : ,;t
';_']
• il prodott.o logico, indicato con il segno 1I.1I; .'-:

"
• la somma logica, indicata con il segno "+"; ~j,,
, ,
~!
• 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 e permanefltemente 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 e una vari~bile logica si ha:
x~o se e solo se xiI x=l se' e solo se x;iD
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 2R configurazioni possibili delle n variablli:

y = f(x, ,... ,x n )
Una funzione puo essere espressa in forma algebrica in forma tabellare.
0
,
.,

,
1.4 Reti combinatorie e reti sequenziali
Si distinguono due categorie fondamentali di reti: Ie reti combinatorie e Ie reti
.
sequenziali (CIr. Appendice A). ,

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.
16 Anche 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.
''l.'''l'''t!'->0' .;.... -- "
,;.~r'<;·;f'''~''''. :_
."~'-.~"- .
, :';'+•.J.!~;.-,-". -" -
~
::>~?;~~~:'-'~
--
~
_... . ,
.-
, )
Introduzione 25
" ,-
-".....'
,
-- -
",,,;,-.~,".,,--, -

;:. :}:,
.
. - "....
, "'Reti combinatorie Si ha una rete combinatoria quando l'uscita e esclusivamente )
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 usdt~, owero, posta I = l
'; .. {Xl ,X2,· ... ,X n } eO = {Zl ,z21 ... ,Zm}, per una rete combrnatona, vale la relazlone.
~-

/'
0= f(l)
ii"
.' ,
~'
.'
,il .
Reti sequenziali Si ha una rete sequenziaJe quando l'uscita e funzione l oltre ch€ I
,l: dell'ingresso, anche della stato. Indicando con S = {Yl,Y2, .. ' ,Yd 10 stato correntE. '
•-,..
1{ della rete, l'uscita viene espressa come. 0 = 1(1,8). AHa funzione di uscita e
dl
"
;t')'I'
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
;j]1 '. "
:, (limitata) della sequenza di ingresso. Gli elenienti di memoria binari vengonc. j
. - ! ... detti flip-flop.
, ..
,,,j,
.~ -,

.' . -...
.. . 1
!~,
_~. ·.;v.~a rete sequenziale p~o e~sere di. tipo sinerono a as~c~onoo 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
··dei.·~~,~i: c·~mpone~ti. Una .rete ~i dice s~nero~a' ~uando ~o ,speciale..segnale, dettc I
_i~p~.l~~, 91 O~IOgto17, forn.lsce l'LSt.ante ~ ?Ul gli. element~ 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 e modo naturale per descrivere il comportamento di un;;
·r~~~:.;~.~uenziale.o Per gli approfondimenti necessari si rinvia all'Appendice A.
i
"
..
'- " ,.,., '.-.
'.-.-
. , ,'··:r:.' .,'" .,'

, . '. 1.4.1'
.. Reti sequenziali smcrone
,
,

Iri F~.g1lra 1.3 viene data una schematizzazione del modo di operare di una rete sequen-
1
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·,
· gressi·~ 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-
me~to, corrisponde essenzialmente alFipotesi di flip-flop master-slave che campionanC"
i .loro .ingressi suI fronte di salita del clock e presentano il nuovo stato suI fronte d
l
,.,
.,;~:
'" · .' discesa del clock; sui fronte di salita del clock, i segnali in ingresso agli elementi d
, ~em6da devono essere stabili. Naturalmente non e ·necessario che i flip-flop siano
...,(iII'

qi tipo maSter-slave e il funzionamento della rete pub prendere forme leggermente


div~~~e,.ln funzione del modo di operare degli elementi di memoria. Si p0580no, pel )
· ~empiol usare elementi di memoria, che operano sempHcemente BU un fronte; cio chI
., ,.,.. im'po~a e che al sopraggiungere del clock i flip-flop abbiano ingressi stabili. Inoltre,
,•......
.rl. -dopo.che i Rip-flop hanno presentato Ie loro uscite e, prima che sopraggiunga i1 nuovo
J
>

.":.;'.'
c.
'~,
.cl?ck l deve esserci tempo per tutti i segnali, compresi quelli derivanti dalPingresso, d
.•~", prppagarsi e stabilizzarsi.
\:.:0,
,..

17Ncl seguito useremo normalmente la pa.roia clock per denotare it segnale impulsivo, di frequenz,
fissa." impiegato per comandare reti sincrone. 1
,

, :/
I:
26 Capitola 1
j'I
;

,1!'
~-l

1 .<
\""(
••
I~-
I Q

]
-
,~,
I .~ o LC ~ /,'
-"-
Z1_.....

JI
, ~,,!
".,:,
,.
'!I

I' ",
\"

~ T ~, ,
"I'
I'
',.,"
<,.,
~ "T ,I" :1 'l
.' . ,
.,.
"

'."

I ~~ I I 1,--_
Figura 1.3 Schematizzazione delle operazioni delle reti sincrone.
~,

\~
.,

Ji,.,
~'
,..
,

In Figura lA, a sinistral vengono mostrate due reti in cascata operanti con 10 ~il
1 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-
,
,"'1.

zione d.i una rete in due'o pili reti in cascata si dimostra utile quando 130 rete singola "~ ~
I 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
••"
,.:'-' •
'F-I ,
.,.
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
'I'
~, "
'1<
\ senso ebe I'ingresso di una sottorete a valle sia determinato solo dalia sottorete a
1"~1
:;/'
""
; [;

)
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
"
I,
",;:
.l' '1
"
"
"
.",
I

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
it
I. :
"
~

"""
i

1 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-
"'1

;~f',.
\',! ,

u' ,
derebbe una sola rete. Ma il tempo complessivo per eseguire una data funzione e ,
11
I superiore scomponendo la rete in pili reti in cascata. lnfatti, sia T il periodo di -
clock richiesto da una rete non ~composta
,
e T ' queUo richiesto dalle sottoreti (che
supporremo uguale , per semplicita). E ragionevole aspettarsi che la componente LJ 1
•,
,I'
."
di T' sia inferiore alia componente L1 1 di T, mentre non c'e ragione per cui L1~ sia
diversi da .:1 2 . Ne consegue ebe T' < T, rna la rete scomposta opera in un tempo
',I:
,~~ ,
,,',
\ IT' ebe eli norma e minore 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 ,!i

] 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 ,\1''
" ,
risulta. comunque la piu conveniente. "
Possiamo elaboTare ulteriormente il modello di Figura 1.4 COIl il seguente Tagio- ~I'
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
11
jl
in Figura 1.5, dove ora Ie uscite cOTrispoodono esattamente allo stato della (sotto)rete.

I
lntroduzione 27

flNC~QNo

I UH
,~ ... UH
tlllCllO<.
0
LC 100__11

• " ,
S LC

f C'.C~ f o.~

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 e fatta 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.

~, t $IHC~OH~

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

,.~

,
, Figura 1.5 Madella di blocco componente di una rete sequenziale sinerona.
eorrisponde allo stato della rete.
L'uscita.

,
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 dell'in~
formazione (per esempio, 10 scorrimento) ecc. Per i nostri usi facemo riferimento ailo
schema di Figura 1.6. n funzionamento del registro e il seguente.
ii',
'~J -
.~ ,

28 Capitola 1 '. "'


~I

";1"
~,

,.,·~
Rin
IN i
'.
c, >ck
'-.- '-.
, x
Clock ~ 61 T +~ 62
,"I
.'

Rout
• •
---.J I I L '"
· ..,
,

',11
..

.....'
OUTi

Figura 1.6 Struttura di un registro. Viene mostrato i1 dettaglio per il generico bit. 8i ,:1..
assume che i1 registro commuti suI honte di discesa del clock. Nello schema si e supposto ..
(.
che it segnale Rout abiliti l'uscita. in terzo stato. "

,';:,
,
" ..."'
:i
• Si assume che il regist!o commuti suI fronte di discesa del clock I doe alIa fine '::'~t
· ;',
del periodo, Prima del fronte del clock gli ingressi SR/JK devono essere stabili "'~i
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 ~~)'

e
mantiene nello stato precedente;· se Rin asserito 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 .;::-


~~
.~.,
I"
Nel seguito useremo 10 schema di Figura 1.7. Quando i segnali Rin e Rout non ",'1
vengono indicati si assume che essi siano sempre asseriti. ·''2.1
.;,
·'I
,..,,
Rin IN
I'~

CIOO'---1: REG;TRO I
Cloak 'r 61 T I A2 ~
,';"
'"
':1
"'"1
j
ill"
Rout OUT
-..
· ~I

Figura 1. 7 Madella di registro. Nel seguito si omette spesso eli indicare i segna.li Rin e ..
'>j;
Rout, in tal caso si deve assumere che essi sono sempre asseriti . "
.!,
.
:~¥
1.6 Trasferimento dell'informazione i

"".
~
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· "0>
};
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
:
'
-,-
,
)
'
. IntrQduzione 29

.
".
, e
.scegliere i percorsi che interessano in un dato istante. Una simile rete componibile
I
attraverso porte AND/OR; la logica di selezione detennina quali registri verranno
I' "
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-
"
1'
,
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.,
1' n bus e una semplice linea di collegamEmto'a cui 50no conneBse tutte Ie uBcite
dei dispositivi trasmittenti e tutti gli ingressi dei diapositivi riceventi. Sebbene sia
I
,., 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
~I:t di collegamento at bus e riportato 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
\
i a collettore aperto e possibile abilitarne pili di una e 10 tal caso si ba il wired AND
\~.
(Iogica positiva) delle uscite stesse, 1

~
' RTlout RT~ou\
0>

". : , RT, , RT,

"~

-1
BUS
\
,
"~
1. \
7 .
.1'
2 '

,
Ii.
RRlln ...
RR,
RRain
, RR, I
,~.

~
.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-
:1
"
1 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
1
jl
vengono car"icati sui prossimo (fronte del) clock.'
l,
-.
"
It

.
j;
__

e
Praticamente la struttura a bus 10 standard nel mondo dei calcolatori. Thttavia
I
. ha un inconveniente: consente un solo trasferimento aUa· volta. In certe situazioni
questo e U~ fattore limitativo e 1 in presenza di alto traffico, il bus puo facilmente
I
"
,I
., 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.
~¥J
i
1
."I 1.7 U nita aritmetiche e logiche I
~.:

"I'
0>
In precedenza si e accennato 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
J
sono i simboli nell'algebra delle reti. Ne deriva che Ie tabelline aritmetiche possono
~~
ess~re interprete come Ie tabelle di veritA delle funzioni logiche corrispondenti aile
:'~~.
"
,
operazioni aritmetiche.
J

:r,
·;
..
'".'
• ',•
••·
'

) 30 Capitola 1 l
·
~I""
,....h

Per esempio, si consideri la somma di due bit. In Figura 1.9, la tabella riportata t~i .
I 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
,;C·I·
"

::·t,:
,

R;(Ai,Bi) . Conseguentemente, se si costruisce la rete che ha come uscite Si e ~, si wi','"


.-I'
costruisce la rete che efl'ettua 130 somma aritmetica di due bit e ne calcola il riporto. ',,':.,
I La rete in questione prende il nome d.i Semisommatore e viene indicata con HA (da
,··'1..
:~

I Half Adder). •
"ii,
, '.1'
, ,;<,
~:r

.0.(.
<~

I Ai Bi Si Ri
,
Ai
,
BI Ai Bi ""..., -
";~I'
..
'J,:

•·..
0 0 0 0 0 ··

I
·9 9
0 1 1 0 HA "
',ll~
,,.~

1 0 1 0 .\
\ 1 1 1 1
RI_AiBi Si_IlBI+Ail!l"i Ri Sl ;':{,..;1·
Figuro 1.9 A sinistra viene riportata 130 tabellina aritmetica della somma e del riporto di
. '

.,"I

I due bit. La tabella in questione pub essere interpretata. come 180 tabella di verita delle due
funzioni logiche S. e Ro. Ai centro vien~ data. la rete corrispondente, A destra viene data
una scbematizzazione della rete come blocco funzionale, Il blocco e stato indicato come HA,
r. ~'
·.
L,.~ ,

·;t -
ii
per Semi.tommatore, .,
;".~ ,

:.r:;;
I Vogliamo ora costruire la rete che eff'ettua la somma di due numeri interi, rap-
',,'
•••
I~; ,
.Il '
-

presentati in, forma binaria attraverso Ie due parole di n bit A = [All_I .. , Aol e ....>Ei
i_\_

\ ·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
'~~
11'"
;Ii
~' ..
modellando il procedimento di somma con "carta e matita" , ovvero nel costruire una .:;1,,1'
;'~, .
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 80 ] :iJ
costituisce la somma di [An-I." Al Aol can [Bn _ 1 ... B1BoJ. Si noti me e necessario
'I, .
I .
·..j.,,
~

porre R_, 1 = O. ,;,l"


'-ij:
"
I':
,,~,

" B3 A2 B? AI Sl
II
'0 BO
I I
,-.
I I II •
~..,
\ FA FA FA FA FA
.... ,
i~

R3
I ~I '>I "I ,~,
.~
.:
l
I Rl ~

S3 S3
" "
.~}

,....,

Figura 1.10 Schema di un sommatore di parole di n bit -
castruito impiegando la. cella. detta Sommatore completo (FA).
detto sommatore eli ripple -
., ,

~.

l ',~,
~.

,..\, '.
'1 ..
~,

Per la real.izzazione del so~atore completo si puo seguire il seguente ragiona- ..,'J . "

'" i-
\
Introduzione 31

mento 18 .

• La somma di.tre bit Ai,Bi'~_I da. risultato 1 solo se e dispari il numero di bit
a I, doe se e"1 POR esclusivo dei tre bit. In a.ltri termini:

S, = A, GJ B, GJ Ri - 1 = (A, GJ B,) GJ R;-I


• 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:

R, = A,B, + (A, GJ B,)R;_I

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 .

A B R-l

A 5 R-l
Ai Bi R. 1 Si Ri
0 0 0 0 0 HA
0 0 1 1 0,
0 1 0 1 0 FA
0 1 1 0 1
1 0 0 1 0 HA
1 0 1 0 1
1 1 0 0 1 ..
R S )
1 1 1 1 1
FA

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.

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
e
generica cella FA produce un'uscita stabile solo dopo che diventato 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.

180vviamente, la rete cbe reaiizza il ·semisommatore puo essere anche ottenuta. pa.rtendo dalla
tabella di veriU, di Sj e ~ di Fjgural.ll.
~~

\~:
'1'
· ~

·.';:'J,;
,
32 Capitolo 1 -,
..':;
.• ,I'
· ,"~:~
, ',.'.'
~'~i
"'1
· .:<~
,",'"
,,'.
1.7.1 Esempio di costruzione di un'unitll aritmetica e logica :;;t
.. ,
•.J"'
", ..

Partiarno cial sornmatore appena vista e mostriarno come sia possibile aggiungere della
logica in modo da fargli effettuare altre operazioni. ··.e'"., I'·
"
,',."
'

·':LI
Si e gia: 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 complementare B e sommare 1.
8i ottiene cosl, per la sola sottrazione, 10 schema di principia a sinistra in Figura 1.12,
e
Ovviamente 10 schema solo 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 e indicata 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:

A+B+l
.'l
. '"
,''';i .-
'''~',,,

sottrazione di B da A. Ma se si effettua la somma di due numeri relativi rappresentati 11 '


con parole di n bit possono capitare questi due risuitati straordinari: :'' ,
,.
· "'~? "
'~

'.>."! ,.

'~I':
• si sommano due numeri positivi e it risultato e negativoj
• si soromano due nwneri negativi e il risultato e positivo. tit:
: :i"J

Bn-l 00


c.
{ y
tJ ..... (
r
'a-l
.. ,
- • • • • •
" .. I An-I • c,

,-1 SOMMATORE 't.y - SOMMATORE R-'


J~I .~

Y
';'~;

...•
ii,

R Sa-I" • • 50 T Il Sn-l······ so :~I"


Figura 1.12 La rete di sinistra. schematizza it modo in cui si effettua la sottrazione di B da ..'~
·'1'
,~ ;
A usando un sommatore. Nella. rete di destra l'ingresso B pub essere in ingresso a.l sommatorc .d
in forma complementata 0 no a seconda di Co. L'altro ingresso, controllato tramite 180 linea
Cl, e A oppure O. Si DOti la logica per il controllo del trabocco.
',.•
jl.
.
E
.
facile convincersi che questo accade quando iI·risultato dell'operazione supera

.,.'I
la capacita della paroIa, ovvero supera il massimo nurnero rappresentabile con queUa ,
'd
",,1
'i'
)
..
,
~.,

,
Introduzione 33

1
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 convenzionaJ~ 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.
\
c, CO ii_, ttisultato '""ommento ----,
0 -0+ =B ,elezlOne
0 1 S = 0.+ B + 1 = B + 1 Incremento
0
0 1 0 S=O+B=B
,
Complementazione 1
, 0 1 1 S =O+B+l =-B Cambio segno
.. . .. , 1 0 S=A+B Somma
0
1
1
0
1
1
0
S=A+B+l
S=A+B=A-B-l
\
1 1 1 S=A+B+l=A-B Differenza ,
. Tabella 1.8 Operazioni effettuate dalla rete.
I
,In riferimento alia Tabella 1~8 vale 1a pena di o~s~rvare che:
1
• 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 parti~
I
colarmente interessanti.
All' Appendice A si mestra come aggiungendo altre linee di controllo siano facilmente
aggi"ungibili Ie operazioni logiche AND e OR. ~
I
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- I
bero sei Iinee di comaodo, corrispondenti alle sei operazioni significative di Tabella.
';
e
1.8. Questa convenzione di 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-
J
. 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-
I'
d. 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.
34 Capitola 1
)
B A A B
h
)
~.
I I
, , , , R-. Coml
'I
R..-A ALU I: Co
c, ALU f• •
Com2

CoroN I
I T
T
Y.

S o
1 Figura 1.13 A sinistra. viene riportatala schematizzazione della rete risultante: sebbene 1a i
I
rete svolga poche semplici operazioni aritmetiche e solo l'operazione logica di complemen~ I
tazione, almena concettualmente essa rappresenta unlUnita. Aritmetica e Logiea. A destra
I
viene data. la schematizzazione di una generica ALU: earnl, Com2,.. ,ComN sono Ie generiche
!inee clie selezionano l'operazione svolta. ,j"
'; ",\
....
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
l
I 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 J
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 e rivolto ','"
;~;
..
alla realizzazione della logica di controllo dei calcolato.rL" • .,.'~

]
I 1.8 Sistemi digitali
,
"I',
"
) In Figura 1.14 viene presentato un modelIo del tutto generale di sistema. digitale. Nello ,
",
schema, l'informazione che entra e esce dal sistema e stata divisa in due categorie:

• l'informazione che viene elaborata e trasmessa (DATIN e DATOUT in, ,figural; ".~
,

\ • l'informazione di controllo.
"I'
..
",
,

.,::
\ .'!'
'

\ DATIN =~:::oi I ' :>, DATOU~


SISTEMA"
;

!t
Linee di
controllo .. I DIGITALE I . Linee di
conlrollo
" "
j,
•..
/ ..
1 Figura 1.14 Sistema digitale e tipi di informazione. ,i~
.,
1
I J"I
Introduzione 35

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 e deputato. La precedente suddivisione e alquanto 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


,
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.

• I..',,", ' ,. ,.. ~~' ".<"

"":>:,';,;"': .:"~: ':'.C"'


:.,.:"~.:<'., t--- ~
:': . ~ \
~
~
RETE
:>;l
tzl
(}
-
~'~'
• ••• '.'~.:
d"·
••
, .. <;.
1.,,;-:·,"1
COMBINATOR1A ~ ~:',;'~.": f>
" :.,'.
•.• 1.
,
••
..
'. . ,.
. . '
::0
0 o .: .• ,,:::~,,\
; '. .. ~ ...

Clock Clock

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 ~ul prossimo Eronte (di
commutazione) del clock.

36 Capitolo 1

n modelio di Figura 1.15 e molto conveniente per strutturare inmodo ordinato


la logica della CPU e di esso si fara largo uso nel seguito anche se in modo non !
!
esplicitamente dichiarato. ,
!
E
t,
1.8.2 Alcuni blocchi componenti i sistemi digitali · rf
,f
I b10cchi funzionali descritti qui di seguito sono, assieme a registri, bus e ALU gia. 'f'
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•
l'uscita in terzo stato (Fig 1.16).
'l
·.t
;
j,
Selettori Un se1ettore 0 Multiplexer e un 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 -~
o-J

l'uscita in terzo state (e il relativo ingresso di abilitazione). "' o

Decodificatori Un decodificatore (1 su m) a.ceetta in ingresso un eodiee di n bit e


i
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 :'1
asserita quella che corrisponde al numero presente in ingresso. ",
¥
, !
Q
;el
, ,
-.IO:EC:~~ '
':.:
'

'-- "

Figura 1.16 La figura illustra i simboli usati per il Buffer/Driver, il selettore e il


decodificatore.

·
'.
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 e garantito 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, e un ..·
dispositivo che ha n ingressi e m uscite , e ehe eontiene 2n celle di m bit eiaseuna.
n numero binario corrispondente ana combinazione degli n ingressi e l'indirizzo
della cella ehe viene letta e il cui contenuto viene presentato sulle uscite. Una •

e
ROM in 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 e molto complessa.


1
Introduzione 37

!
Memoria di lettura e scrittura La memoria di lettura e scrittura e una parte es-
I
! senziale d,i qualunque sistema di elaborazione. La memoria di letturafscrittura
,
! viene normalmente denotata con il termine improprio di RAM, da Random Ac-
E cess Memory - memoria ad accesso casuale. La.- memoria viene esaminata pili
t, \
in dettaglio nei prossimi capitoli, per it momenta ci bastano i rudimenti del suo
f
r funzionamento l iUustrati in Figura 1.17. ,
f
,
f'
;
!,
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.
l
l•
lt
; lndirizzi Dati
Indlrl:n:\ =>-< \M.lna.o "'OJ~ X/--- \
, -+- WEllORIA
D.lI ~ - X~-
,,,,." \
~J'
o!
:: ~ I READ \ /

FigUra 1.17 Schema funzionale della memoria ed esetp.ptifica.zione dell'operazione di lettu- 1


i 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. J
1 dei dati all'esterno. II cicio di scrittura e del tutto analogo. Esso richiede che venga asserita
¥ la linea di comando WRITE e venga presentato il dato a.lla memoria. \
,~

! I
,I,
',.
.:i
'r
1.9 Questioni di notazione • \
J
! 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).
>

J
•f Poiche e possibile associare a1 simbolo 1 sia 10 stato H sia 10 stato L, ne deriva
·r che sono possibili due convenzioni, dette rispettivarnente logicQ positivQ (quando si
'f.;'
"·r•
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
I
I
.i ~ 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
f parla di logica mista) I conviene fare ricorso a un 'unica convenzione. Nel seguito, salvo
,l
.,•
esplicita indicazione contraria, assumeremo di ragionare sempre in logica positiva. Si
\
,~
..,{' tratta della convenzione normalmente utiliz-zata nei eataloghi dei eomponenti. I

,~
t
•:1'
J.:,.
•,
1.9.1 Notazione per i segnali j
•,: 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
j controllo. )
J
38 Capitola 1
)
Ingr. A Ingr. B Uscita U
-) L
L
L
H
L
L
H L L
H H H

I 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.
.'.
1
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 U segnale e attivo alto, nel secondo si dice cbe e attivo -basso. Una
dizione di questa genere evita ogni possibile equivQco legato al tipo di 10gie3. Nel iI·
\ 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 segu~ 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 lo/R
-v
u
!,
-I
"
I Figura 1.18 Il segn80le marcato OE ha la fun-
Convenzioni per 180 marcatura dei segnali.
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.
I
I .\
!
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. n miglior
J
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

\
Introduzione 39

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
e
riporti il risultato a notazione decim~e e si verifichi che corretto.

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
e
algoritmo per calcolare il corrispondente binario. La stringa rappresentata da byte
dislocati in posizioni successive di memoria.

Esercizio 1.7 n contenuto di due parole di memoria di 16 bit consecutive in forma


e
esadecimale 2AIB e 15FF, a quale stringa. di caratteri corrispondono?
,
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.

,
,.'

·.

's:

....•
:$;
.~
~:1.',
';.

\
,,',1
"',~~
,"
..
",
'.
'. '"
,.
" ,
-i
,,
.'

,'.-
~,

;N"
'>:,:;
,
'."
:'
~>
,

,n'
";

':"

'j ,
:':"
"
)
"'
~
,
)
,",

Elementi architetturali di J
)

.h

s:
I

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 I

,
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.
.•
I
;,
~
'..
.,
1:;
\"
2.1 Struttura dei calcolatuci- I
1' I
~,I'
" 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.
..
"
..;'.
I
,.
i,'.'
,' •. .' L'wi'ta-di...elabQrMione e controllo e la 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 \
N"[ ed Clelaborat'ore".
;:t
."'i
>
• La e it contenitore delle istruzioni . dati (gli oggetti delPelabo- )
,
, razione). Istruzioni e atl sono codificati in forma bmaria. Le istruzioni ven-
n:';'I 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.
,.,
,
jo,
Tutto dipende dal modo in cui un gruppo di bit viene letto e interpretato. n J
fattn che dati e istruzioni siano di per se indistinguibili permette di costruire pro-
:"~Ii, ... grammi che generano dati che, in un secondo tempo, possono essere interpretati
)'
''1"
~31,
.
come istruzioni. Tipico esempio e un compilatore~ Di norma si hanna differenti
I
,,

i
,
42 Ca.pitola 2
I
;
livelli di memoria. Si parla di memoria centrale quando ci si riferisce alia memo- • ·,1<

ria elettronica clirettamente connessa alIa CPU I si parla di memoria ausiliaria 0


1 eli massa. quando ci si riferisce, per esempio, alia memoria dei dischi magnetici. •

• D sistema eli ingressojuscita e l'insieme dei dispositivi che servono, da un lato, ,. .-

I 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 · .,;
...:
'I·
le.interfacce, ovvero i componenti che fanno da ponte tra i dispositivi periferici e .,

I il calcolatore stesso.

CPU, memoria e I/O sana collegati tra loro in vari modi, a seconda della categoria ,
;1,

della macchina. Un esempio di organizzazione viene presentato in Figura2.1.


\
-'
MEMORIA h

·,".
, "

\
conlrol1ore
CPU dfcanale ,"

,I
·,;.
bus di I/O
\ ,
...il",

~~ · -"..•.
·C,
,
Figura 2.1 Esempio di organizza.zione di un calcolatore elettronico. La schema rappresenta
·::.~I,
\ 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
,>
_c_
~(I
il cosiddetto controllare eli canale.
T-I
I
.::}
In Figura 2.2 viene riportata l'organizzazione a bus unieo. Questa struttura venne
·i
introdotta dalla Digital Equipment, nella prima meta degli anni settanta, per i mi~ ,
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
1 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 e mostrato insufficiente. Le architetture attuali~ anche per i
I calcolatori personali, prevedono la presenza di piu bus. Per esempio: un bus ad altis- ' '

I sima velocita. per il trasferimento di dati tra memoria cache, memoria centrale e CPU i : .,:,
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 ;1"
1( pratica al bus di Figura2.2. ,,-,'-1
La schema di Figura2.2 e molto semplice e rappresenta la forma piu scarna di "'i,

organizzazione di un calcolatore. Esso e comunque adeguato alia comprensione degli ·,·:~I ...
..• ,
argomenti che vengono trattati nel seguito. Pili avanti verranno rnostrate strutture ,•

l 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'a',
\
,

Elementi architetturali di base 43

In,r...o . \J~.I\. 1oI.",orl. ~,


c,u

WDoOIUA tHPIJT/OUTf"\J'T

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 e che ogni nuovo
modulo di memoria. 0 di I/O viene aggiunto semplicemente collegaodolo sui bus.

e
indirizzi ha origine dalla. CPU ed normalmente 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 attesa1 •

CI.O<:K

Indiri,,:oJ =::x: tndiriuo ~1Il\do X'--- =:::=x IndlJiuo valido X


Dati =x nnn ~_..
~ X---, X =x .011.. X
"/10 \ /

"'''' ." !~---

-
1 A questo proposito si veda quanto detto in Appendice A nel Paragraro A.Il.l.
',
.j
,;)
':,

44 Capitola 2 ",
.' J

. ,,

2.1.1 II sistema CPU-memoria


-
Per la parte che segue, l'attenzione e essenzialmente 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.

In<llrlzz1

--,-
O.U
CPU ,"
MEMORIA
RO
..,"
WR
,',

Figura 2.4 Architettura di Von Neuman. La memoria e indifferenziata 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. , ..
'.
; ...

"',

rente schema or anizzativo del sistema CPU:.


ente Ie istruzioni e distinta 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. •
, "'

lndlrl:nl lndlrl,ul

MEMORIA l~lru~iODI Oali


MEMORIA
CPU
ISTRUZIONI DATI
R~, RO.o
W~o

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. ,:
"
.•. '·
",,
i
, ,"

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 •
.':

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 i~truzioni, proprio secondo il modello
in questione.
.~Z:i',:,;.,;.:;:, .
j'
)1
,

"I,
J
)
Elementi architetturali di base 45
,,,,

)
2.2 La CPU
-
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 stata e \
scomposta in due parti: I'UnitiJ. di Contro.llil.(UC) e l'UnitiJ. Operativa (UO).
-
I
pJ.n x V}li"~

I
PI PlGJU::I.w
"" UO, PU' III uscrrJ. J

?ERlQ/A.
"" COlW!lll
',r,
Cl.o~
JUL
. '" COJfllIZlOlfl
1
,
. V~\''''''
• 1SJR1nIPtfl
DC ~~,

'I, ~""l'
J
CPU
• \
.
"
:r. Figura 2.6 Struttura generale della CPU. La schema mette in evidenza due parti: l'unita I
"operativa (UO) e I'unita. di controllo (UC). Lo schema mostra anche i Russi informativi tra I
•:1< DC e DO e tra.1'intera CPU e I'esterno [LP86J .
'~.,

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 fine l 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
I
comportamento di UC e, quindi , anche sui segnali di comando da UC a UO.
:f
"
L'un·ta. operativa svol e la fu i olazian
formazione, trasformando j datLdi jDwesso X pe; dati di llscita Y.
wrmazione de ,. _
omponente
. essenziaJe dell'unita operativa e l'ALU, 1a rete che effettua Ie operazioni logiche e
3
l
·1'
,1: aritmetiche sui dati . In VO sono presenti anche un certo numero di registri di varia
ii'
". usc, necessari per appoggiarvi l'informazione manipolata. \
Lo schema di Figura2.6 mastra il fiusso di istruzioni che alimenta DC, oltre a1 I
·.1: flusso'di dati in ingresso a VO e il flusso in uscita da UO,lasciando alquanto indefinite
: .'
• I'
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 J
'-"
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. ]
46 Capitolo 2

\
Ie relazioni tra CPU ed esterno4. In Figura2.6 non compaioDo espressamente gli
\ indirizz~ generati dalla CPU per l~ggere istruzioni, leggere e scrivere dati,- anche perche
I 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.
I In modo aggregato il fUDzionamento delPuruta di centrella puC> essere rappresentato

con il diagramma di stato di Figura2.7. In sintesi 1 DC e UD automa che passa attra·

I 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-

l dirizzo eli memoria di un'istruzione [uori sequenza. In ogni caso Ie operazioni vengono
efIettuate trarpite va e, piu specmcatarnente, tramite la ALU.

t",-.;'~
I ~\0 tI.. (o.J~.
lnizio esecuzione '- "

I'
Fine esecuzione_

\ 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.
'l.i.
istruzione; il secondo macros a.to, detto sta.ta Execute, co~ren e u e e a.zJOnt c e
~gono SYQ~er quell? Bpecifu:.a istruzione. '..1'
·..• •
\ •
•"':•

Un programma e una sequenza di istruzionL Le istruzioni sono in memoria a .:!,,


I 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 -I
~
, ,.~
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 1
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- I
) 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
I,
destinazione del salto.

I 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
,
I
) -
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
li•
il verba to fetch. Per sinteticita di linguaggio, indicberemo questa macrostata come stato di fetch. t
~
\ t
Elementi architetturali di base 47

Ai fini della manipolazione dell'informazione in CPU, conviene the in UO siano


presenti un certo numero di registri su cui appoggiare }'informazione1

2.3 Primo esame del funzionamento d.el.la...CEll.


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 e gil< parlato.

CPU
uc IUb
I .
I: ';-1 I
I

'. MEMORIA

~
Lo.'c. d.l
Con\.>-ollo

I/Cil
I '0 I
I .... I
Indlrlzzl
Dati
I • I I !<fiR I

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.
1

I • I1JcStruction Registe - e il re istro contenere l'istruzione in cor 0 di


esecuzione. viene caricato nella rase di fetch e presentato a logica di control-

1· to chela aeco'ttttica (interpreta) e genera una sequenza temporizzata. di segnali


di controllo che vengono inviati ai diversi componenti del sistema (ALU, CPU,

I memoria, dispositivi I/O). In pratica IR rappresenta l'ingresso che determina Ie

l 711 PDP~8, il primo minicalcolatore della storia, aveva un solo registro aceumulatare. Esse inter~
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 nell'unit~ 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.

t
]1

48 Capitolo 2

azioni svolte durante 1a rase di esecuzione. Per questa esso e stato aggregato a
.-
UC, mentre tutti gli altri registri sono stati aggregati a UO.
• PrD;;;-am Counter - EC e ilregistro 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.

~§~~~:;~::~rjjMAR e il registro deputato a contenere l'indirizzo


c,~~""",az~i0:;!in u s u s egli
in mzzi. i norma, Puscita e abilitata durante Ie fasi letturajscrittura , mentre
e mantenuta. in terzo stato fuori cia queste fasi.
.'
• Memory nata Regist~ ::~ e il registro attraverso j e viene scambiaj;a
,
l'mformazlOneJti!i pm la"PII"
"

• Reqistri di USQ generale - RO, Rl, ... Rn SQnQ impie~i per mantenere dati su cui .. ,
:.~
1& ALU eseiU£lj> operazioni, come registri di appoggio, per l'indirizzamento ecc. ••
Nelle architetture moderne c~ 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 • '·
,I.'
necessariamente essere impiegato in certe operazioni aritmetiche e logiche. Per ,1
'i
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. ,
••
.c
IVl no essenziali. Infatti, per la trasmissione dell'in- ","
"

dirizzo deWistruzione basterebbe PC, per a rasmissione dell'indirizzo di un dato ·'1


basterebbe (il campo relativo di) IR, per il trasferimento dei dati basterebbe stabilire '
un percorso tra memoria e il registro implicato. ~esefliSa Q.i.....M.A.R e MDR permette
di disacco12piare la CPU dalla memoria. ..",
-,
'"
.,
2.3.1 Esecuzione di un'istruzione
·,".
Possiamo ora dare uno sguardo all'esecuzione delle istruzioni.

,Fase di fetch .,!.m:Qgrammi riSiedon~memOria' 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
~a 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
,
)
Elementi arChitetturali di base 49

1
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;
c) il contenuto di MDR viene copiato in IR; (
d) viene decodificato il codice operativo dell'istruzione in m e incrementato PC in
modo da farlo puntare all'istruzione successiva (per la prossima fase di fetch).

.' La. successione dei passi descritti e schematizzata in Figura2.9. !


.~. D' >'"ETC=H
,
"'I,

, I
MAA <-
~:

" I

,1' .01.",,_
WlHII:< _ W(loU.Il J t ~ ___ a
·1 lan"'""l ....
\
'
i
1, '.
,I,
I" <- MD'
{
~I
.'
,

••
."
...' '

c,,
.
(: _......::>
~.I CHloa apuaU9a
." I""ro .. w.....
/' ...1 Pc • """
"
'", /
I
1)
, \ "oJ
,
' ,,'
",....
'" .~. D' ona:C=UTC

Figura 2.9 Diagramma a stati relativo aUa fase di fetch. n ramo di uscita dalla fase di
I

-', "
fetcb e selezionato 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
'1'
,; , memoria.
·"'.,",
.,.
Essendo llunita ·di cantrollo una macchina sequenziale sinerana, ogni passe pub \
•.'., essere riguardato come uno stata dell'automa corrispondente. Poich~ suI secondo
stato viene letta la memoria e poich~ questa e normalmente pili lenta della logica di
CPU I e possibile 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 ved~emo piu avanti
(Crr.H), U n;=;;e~~~clOc!L~e
etn che dete nano l 10m d U. ~ re
I
condizioni, Ie prestazioni SOUQ in~ers~me~~~orzio ~; ] : " " lip modo )
'- p'er cerca:re. ~e~~o~l~ e.~Y..aj;. conslste n _. eg,o fattore.""'er
"
q~.!2_§} nfer!§ce et~_cJ2._s~~ ~.lep.e_.perJilJe VIe,;,... ~

10C': t • • _, _ _ .~- . el Paragrafo A.ILl 1



,

~I,
50 Capitolo 2 ,I
f ·.ll,
,.
@ riducendo
l G il Dumero di stati attraversati, cercando di accorpare pili operazioni in
un medesimo state;
evitando gli stati di attesa dovuti alia lentezza della memoria rispetto alla CPU l l ,
.,,1'
·,1.,
"

, .'
\ .~

i '&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 1 C lZloni di stato.
Consu1:e"namo per esempio l'istruzione aritmetica. ADD R3 ,Rl, R2, it CUI efl'eflOe
· ,1:1
,
~.

.'~.
R3+- Rl+R2: La sua esecuzione richiede che venga generata una sequEmza di se@lali
:I 1 aventi l'effetto di:
~:~
l'oppor~
'."J
@)presentare a.l.la ALU il contenuto dei due registri sorgente e selezionare '.I
i,
tuna camanda per la ALU; · ,[,

l ~rasferire il risultato in uscita dalla ALU a1 registro di destinazione.


'1
,~,

~}
'.
)~:
~I,

,
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-
e
gono in passi successivi, i1 cui numero in parte determinato da! numero. di percorsi
>1,
,"t
.. '11
e1ispanibili. "til
,"I

\
~?oniamo the la struttura di
callegati gli inNessi e Ie uscite di
,
::'".'·.,:1',
SOIOla comunicazione da lID reg ".0-
"'
·f
_ _ 'i"(J"ue ill essi mentre un' esso uo essere po~raverso il bus, l'a.ltro '.,,:
·,,;<

I

ric!!!~ite_I!~cessariamente un registro di appoggio, registro TEMPI come a
ai' Figura 2.10. Per losresscrmotiVO ~ n~essano iI relPstro ill app~in usci~
Jtrn', mdiCato come :rEraPO ill ""Figura2.~tl.
ema ·" .,
·.."'/,~l
'111
.----"lir'tali innto<:i 1'0<:o...II'7.i..... m. deIPistruzione richiede almeno i seguenti passi: ':'11,
','II
,
I a) 8obilitazione dell'uscita di R1 suI bus interne e caricamento di TEMPI;
",
','1•
b) 8obilitazione dell'uscita di R2 suI bus interno, asserzione del comando ADD all' ALU
e mernorizzazione dell'uscita di ALU in TEMPOj
1
'",•
' ,"'

:il
) c) abilitazione dell'uscita d.i TEMPO sul bus interno e caricamento in R3. ;J

I!
· 'I'
Ciascun passe corrisponclere a un periodo di clock. A ogni periodo di clock l'unita :"k
.~'
di contrallo asserisce i comancU che fanno svolgere Ie azioni richieste. In particolare: '. .'

I
,,',
.' ,,,
, "i'
• al primo dei passi precedenti cleve essere a,sserita la linea RLout, con 1a Quale si ii
abilita l'uscita di R1 suI bus, e 180 linea TEMPLin, can 180 quale si comanda il 'it
,;,'1;,I
caricamenta eli TEMPI dal bus;
I •. al secondo passo deve essere asserita 180 linea R2--out e 180 linea TEMP Lout, in
modo da presentare aJIa ALU i due operandi; deve essere asserita 1a linea di
.:~

,I
..J~
"

camanda ADD alia ALU e deve essere asserita la linea TEMPO-in, can la quale .\;t
>.,l
I si camanda il caricamenta in TEMPO dell'uscita di ALU;

'III
"
, \1
?,

11 Alia sta.to della. tecnologia. do porta all'adozione di memorie ca.che.


.'. ':-'
\
>
Elementi architetturali di base 51

Rl ~

R2' ~
R3

TEMPI
A
L
U

TEMPO

Figura 2.10 Percorsi impiegati per l'esecuzione dell'istruzione ADD R3 ,Rl, R2 nel caso di W1
solo bus interno.

•. al terzo passe devono essere asserite Ie linee TEMPO..out e R3_in per caricare il
risultato della somma in R3.
~
E evidente che una maggior disponibilita di percorsi interrn alPunitA operativa
.consente di veloclzzare Ie o~azlOn2.' Se, per esempio, IpotlZzlamo che aIPiiiterno~dT
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. At U, 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 At U 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
e
riferimento alia memoria possibile che anche in fase di esecuzione si richieda I'in~
-:- 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.

2,3,2 Due approcci per la progettazione dell'unita di controllo


--
. L'unita. di controllo puo essere a logica cablata, oppure microprogrammata.

rUnita di cantralla a1£: cablata La realizzaziane dell'Ua in lagica cab~a


nchledeJa:Pr.ogettazion J_e~t~..§~.9.,:!.~nziale sincrona il CU_l c0JI1p.~:tamen~~_~_5t~to
dal diagramma di stato in forma aggregata di Figura. 2. 7 e d_~diaK!2!!~Jl1a "c!.Lfigu,.J~.f..g
.
"
"
52 Capitolo 2 'il,1
,
'.'- '"'!
-. '1
"
81 82 D .. ',
, ,,'I
)
RO 'I,
"


Rn-l '
ii
...";

~ " "

,,1
A
L -~.'"
~

,
U W

V
,"
l
PC '"
~
'

•• ,
MAR -":~

MDR '("
'/';
""
Figura 2.11 Architettura con tre bus interni. Vistruzione ADD R3 ,Rl ,R2 richiede un solo ,

clock per la fase d.i esecuzione. ,;
;
,A
~
.

~to si riferisce alIa fase di fetch. Facenda riferimento a questa diagramma,


·"'~-
e
l'unitai contrello responsabile, per esempio, di asserire Ie linee di coman do che,
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 ..
J'insieme furFR:Me d.aJ contenutQ (del campo operazione) . .. to
di DO oltre che van'li di st i DC stessa. Le uscite di UC, a arte I linee
s no per ~, son~.~~_L£2.,?an 0 a a memoria e
a.lres to lkl Sl.at.em~.
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 .'
'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
rete st~ssa. Naturalmente questa solwzione e 13 menD efficiente e richiede un grande
a.greco di memoria. Una . ne mi Hore e [icorr r a 10 iea to ammabile
(PLA), o.QQJlre dCQupndo a tecnjche C per §i§te . . ro ettazione j J , ~
caSo necessaria un'analisi approfondita e comp1eta delle traiet on 15 ato perco:~e _
e
I( "'I [I~~'l- s/',,,,,, ~ I
l~Motivi di convenienza suggeriscono di codificare 10 stato di ve, anziche tenere tante linee Quante
sono Ie variabili di stato.
\
Elementi architetturall di base 53
1
l
,
" 1

,,I UtmJ.· III cocmw>U-O ,, .
• ,~

:~
" ~,
-"-
_.-
- \
I, •
-4:• •
••,
,~
I
ii'
;
-> • ,,
~'


:• ->
~->

,
\
,
->
->
i->

)
1
"'!
i •
I
..,
~.
.' •••
W
"
.- II
"
l '

i '.
' ~_

,
I,'1
"''
~>


,
I
~'!II
" •
"1'
;l Figura 2.12 Unita. di controllo a logica cablata.
".
,"
,,'I
;. I'
;[.,
1
Ail'
, , dall'automa. Esempi di questa problematica verranno trattati nel seguito.
~',
i"
:
" \
-"I'
~'~
11 tpnita di controllo micrQprogrammata La soluzione altemativa alia logica ca \
":~i blata 'e la microprogrammazione.
La microprogrammazione si affermb negli ~ni sessanta come un .approccio ordi )
.,.~ ,
"7~~1'
:t,,' 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
... r-
,1,
una sorta di elementare calcolatore nel calcolatore, in grado di eseguire passi di (mi \.
cro)programrna. Nella forma piu semplice l'De microprogrammata fatta da un; I e
memoria (detta memoria di controllo 13 ) contente Ie parole ~ controllo (control wora, I
.. ;R. 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 la presentazion p e
:~I ... a'UO di sequenze di microistruzioni. I ragionamenti precedenti si concretizzano nelh \
.' J schema di Figura 2.13.
La schema presenta un I'Contatore di micrQprogramma" (J!PC) che nonnalmen~e
I
".;.~l,
,';~ viene incrementato a ogni impulso di clock, in modo che ogni impulso appaianc 1 a.
:) successive parole di controlla verso ua. e
In aggiunta a JiPC presente una logica che h:
. :lIe it potere di modificare il contenuto di JJPC stesso. Schematicamente il funzionamentl...
~;ii: e it seguente:
)1
"~ _ \
'!i,;l 13Nei microproccllsori la memoria di controlla e, ovvia.mcnte, una ROM ricavata sullo ste880 in J
t~grato della CPU. In passato, prima dell'avvento delle CPU integrate llU singolo chip, la memoria.
IllJi~QI dl contrallo era. scrivibile (Writable Control Store - WCS). Era percib possibile caricare il micro-
.' ,.E,
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 dall~ IBM per la aerie 8/360 e 5/310.
'. 'I
,~ir;
',LI
54 Capitola 2
,.,"I:
. ,.
\ ",
UlQ!A' DI COhiiWlUJ) ,',\' '
, '.

I ,

~!
"-.,,
......,.. _ft, t; •
-4
~ -4

_......
M.

,.
\ -4, : -4
-4' '-4
,
i ............ ,

• -4
-4
.
..
, ---71 -- I
.
,
f ••1 . -..
"
.~~

c. ._ <II .,..... ~:I'


>

! I
I . ,
·'·Ii

.,,
"I'
Figura 2.13 Dnita eli controllo microprogra.mmata
(
": ! I,

,.(,,.
1. All'inizio della fase di fetch, JjPC punta alia locazione della ROM cia cui iniziano :-;1
13 sequenza di parole di controlle che determinano l'esecuzione dei passi del fetch
(la prima <Ii queste fara svolgere I'azione lIAR.... PC), '
,:~;
\ "i
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

I (microroutine) corrispondenti alIa specifica operazione.

3. Duraote·l'esecuzione della microroutine e possibile che J.LPC possa essere modifica.-


'1
...,..
'
>
-t',.'
'

to in modo lion incrementale a causa di condizioni rilevate in UO 0 in dipendenza ,


l 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.

I 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 , .'
I microprogram mate. 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

I HNelia serle di dispositivi si t.rovavano blocchi corrispondenti a ALU e registri (AM2901 e AM2903) ,
~."

I e blocchi corrispondenti al control1ore del microprogramma (AM2009 e AM2910). Un ~mpio di "


CPU microprogrammata the fa impiego dei componenti della famiglia e deacritto in [BNB81J.
,;···1
.,,
·ll
\
>
Elementi architettura.li di base 55

(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".
e
Nel progettare una CPU microprogrammata necessario 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 in una a
. 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 appartenenza15 , riducendo in modo drastico la larghezza
delle parole di cantrollo. Naturalmente, la logica complessiva richiede l'aggiunta dei
corrispondenti decadificatori.

Iv
1,,2.3.3 Cablata 0 microprogrammata?

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.
1'.

li
.
.<'

.::~
56 Capitolo 2 ;~.
,.
, '."
',l'
4
, .: i,·,1
16 ,~ .1 1

di istruzioni , 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 11
.>;
,
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
·;i , ".
,,:. ,
1a differenza tra linguaggio di programmazione e linguaggio macchina. Vuso efficiente ,
della memoria centrale, aHara molto COStos3, era il primo obiettivo di qualunque solu- "i·;'
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 raggiun~
geva i suoi massimi fasti (anni settant3o), Ie memorie a semiconduttore rimpiazzarono
completamente Ie memorie a nuclei magnetici, riducendo di molte il vantaggio~ 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 ,
·',1
',

vantaggio a apostare Ie funzionalita. a livello di microcodice. Spostare funzio- Ie /I':


.-
'-
·nalita a livello di mi~rocodice ha solo l'effetto di rendere pili difficoItose modifiche 'i
e cambiamenti: molto meglio modificare una libreria di sistema che modificare
.~.
una memoria di controllo.
-
<,;
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 '.1
avanti) fossero piu semplici e piu affidabili di quelli per architetture can modella dl esecuzione a
registri.
]
. _ 'il'!:"'-
".r-.j;'~;
' ...
.y', -%,.~~~(.. -
-:'-·i<'"'~-·~T

,:;:~:!.n>~.':·
'.~;_:~~ :"'. ,
..'~:'·-

Elementi architetturali di base 57


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-
I
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
l,
pipeline), difficilroen~e ap~lic~bili con istruzioni complesse . . La.semplificazi?ne
18
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 del~~ v~locita. i guada!SJl:i che si otte~gono Del se~l?lific~e ~e 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-
I
·zioni. di macchina, indipendentemente dalla .compIessita. del linguaggio. In altri
termini, e cambiato 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
I
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.
I
\
• 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.
I
• 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 I
un consistente numero di registri.
,
'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-
I
. ,. chitettura x86 ha subito tanti e tali miglioramenti che ne rendono il funzionamento
:
,I

",.,. .sempre piu simile a quello delle maccbine RlSC. Un aspetto interessate e quello che 8i I
's
', . riferisce ai. registri aiuso generale. L'architettura x86 prevede un numero d.i registri I
,~

1 di CPU alquanto ridotto, mal nello sviluppo d.i nuovi modelli, ai progettisti Intel,
:(~I
non era data 'la possibilita. d.i aggiungerne di ulteriori per ovvi motivi di compatibilita
\,
; .
'i
. all'indietro. La soluzione adottata a partire dal Pentium-Pro consiste nel prevedere
)
-l
un insfeme interno di registri, piu ampio d.i quello visibile da! programmatore, e di
.,~ :
mappare i registri visibili dal programmatore sui registri intemL n risultato eche seb-
bene l'architettura continui a mostrare il solito insieme di registri, di fatto ci sono 40
<'I·
;}

. ,'"
.1.;1:
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
l
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.
)
]I
58 Capitolo 2 "'i'
'.I

I ,:
-
,0.

I .~

registri interni che prendono effettivamente parte all'elaborazione. La tecnica, peral- ,ii I .

trc non esclusiva di questa architettura, e detta register renaming e viene largamente ,'.,
impiegata a part4'e dagli anni novanta.
\ ,
,:.,

',':.'

2.4 Prestazioni della CPU "I·


·.
\ , ,.
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.,
\
1
sonG i fatton cbe Ie determinano. La valutazione delle prestazioni di un sistema di
elaborazione e cosa alquanto compiessa e coinvolge tutti gli aspetti del funzionamento
':,'
.;'':1:,
,
della macchina. Quanto segue si riferisce alla quantificazione delle prestazioni della .~i

~'~fl.
I CpuD tempo e la 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 clock)l.c~ 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 ~gra.mma stesso, silla: :. "!
- . ,:.

1 Tcpu = N/j ,, ..
,."'1.

.c'l·
Si indichi ora con N;~t il numero di istruzioni di macchina corrispondente al
,~

~,~'

programma e si indichi coo CPJ iT numero medio di clock per istruzione di rnacchina. ,"
· c·1
Ovviamente CPT e definito come: .";.
.,~

1\. \". ,. . 0· ,. 0
\ rC ./' "~,~o ow.. <:_tX.. ~ ~ ;<,J~ t 1J-<;CeD..;.iI
\ Cp/ = N/N,,, ~ = Cp', ~ '!:<;t co:':
-~I

sostituendo nella precedente relazione si ottiene: ·1·.


:;
·.,? ."I
.'-,- -
.~
"
\ Tcpu = (N,., x CPJ)/ j = N,., X CPJ X T. (2.1) wen ,:'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 < 'I'·
\ fattori tecnologici e architetturali.
"I'
.:', .
• n cumero di istruzioni di macchina del programma, Ni,t, e una quantita ehe .: ~
.,[
I 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. ':,

r
e
• La frequenza di clock della CPU, j, legata alla tecnologia e all'organizzazione "
architetturale della CPU. D progresso delle tecnologie elettronicbe e stato ver- .,
tiginoso. Basti pensare che se nella. prima meta. anni settanta, (con primi mi- ,,:
. ;,
\ croprocessori) Ie frequenze erano inferiori a 1 MHz, a fine anni ottanta gia si ,
'J,
avvicinavano ai lOOMHz, per raggiungere 1 GHz (annunciato) a fine anni no- "
vanta19 . Per qiJanto si riferisce all'aspetto archit~tturale, Ie istruzioni complesse
I ,0;

r 19 All'alba del 2000 i PC di fascia media sui mercato erano a 500 MHz.

I '"
,) ,
,

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.

• 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 e possibile
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 CPJ minore d.i 1.

.. .,
',' '"'j ,

2.4.J La valutazione delle prestazioni


,

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
'

LXi = Ni,t
mentre:
N = LX,Cp,
dove Cpi eil numero di clock richiesto dall'istruzione Ii. Si ha. dunque:
Cp/ = (LX,Cp,)/N,•• = LX'Cpi (2.2)

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 e state detto ai paragrafi precedenti (Cfr. 2.3.1), Cpi e it 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 produttore20 . Nell'ipotesi in cui si canosca il
profila di esecuzione e qunque 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.

,
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..

I,
· "

"'1

60 Capitolo 2 ,,
,
..oJ
.'.,
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 esterno21 .
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 PI in base e
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:
GPlw = hGPl + m(GpI + w)
"I, '~
.;
~i
,,;-
dove hem sono rispettivamente it tasso di hit di miss della cache) C P1 calcolato e ,· -;~..
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: ..S~,
;.:;;
"
GPlw = (h + m)CPl + mw = GpI + inw · 'i
., . !
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 '~'ll,,
problema. lnfatti, sia N iJt sia gli Xi (e quindi CPI) dipendono in modo determinante .;:
II-

dal problema in esame. Se, per esempio, si considera una applicazione di carattere il
e
numerico e una eli gestione dati, naturale che nella prima vengano prevalentemente ·,,!).
:"

impiegate operazioni aritmetiche e nella seconda operazioni di generica manipolazione ..·'I,


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-
·:i
,. 'I ~

ro di programmi campione, conosciuti con il nome di benchmark, per 1a quantificazione .~


~ tt
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 ':'1
· ' ,I
ad aggiornare i progranuni campione nel corso degli anni, in modo da tener conto sia ·1
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 .y
"I ii
appen3 un valore indicativa. Nella valutazione pratica delle prestazioni, soprattutto ,,
'it
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 e it sistema di memoria. Nelle macchine
."
.,u
0-

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).
·r
2210case contrario occorrerebbe avere una sta.tistica degli accessi ai differenti banchi e pesare i
relativi wait in base alie frequenze di accesso.
,!
'
'·,.i'.!f""'.','·"_·'
:',~r,'1','····

I ." '

,
Elementi architetturaJi di base 61
\

. . I ]
nel confronto tra slstemJ a ternativi, questi indici non sono di nessun valore e Cccorre
4i
rifarsi a misurazio.ni effettuate tramite l'impiego programmi campione.
Da ultimo si cleve notare che Ie prestazioni complessive di un sistema di ela-
borazione non dipendoDo solo da CPU e memoria, rna anche cia! sottosistema di
I
•. ingresso/uscita. Pili specificatamente, il tempo complessivo richiesto per l'esecuzione
e
di un progr.mm. d.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
con modelli di reti di code 0 tramite simulazione. L'altro modo e ancora queUo di
t
" · 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.
·,
I
I
,.
.

i
2'..4.2 Popolari indici di prestazioni
l

~I:
'AI
fine di farmre misure immediate delle piestazioni, vengoDo impiegati alcuni indici I
· che, anche se molto popolari, hanno ·gravi difetti.
,
";
.,
, L'indi'ce nominato e l'indice MIPS. (milioni di istruzioni I
-
iR' ••
.MIPS = Ni,tf(T, x 10') \.
~
,

,
-'
!
, con T t tempo di esecuzione del programma in secondi.
- I
:~ ,
l. E intuitivo che indici MIPS pili alti dovrebbero riferirsi a macchine pili veIocL E
"
. !
facil"e mostrare che i MIPS inducono facilmente in errore.
.I,.. Anzitutto, il MIPS dipende dal repertorio di istruzioni della CPU, per c~ il 1
';
~ ~
e
comronto di indici MIPS di calcolatori aventi repertori differenti privo 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.
I·i .
~

~rtl
,
,1,
: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
~me cio possa avvenire e il confronto di due cakolatori, uno dei quali sprovvisto di
I
(,
:'. unit. per i calcoli in virgol. mobile (FPU), n calcol.tore senz. FPU potrebbe .vere un
'I1·
1.
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 I
i'
y
I '
lunga superiore, a causa dell 'elevato nurnero di istruzioni da eseguire per sopperire
.11.m.nconz. di FP U.

,~
it:,
"-dice MFLOPS . Un .Itro in,,,,,,
, 'fsttuziom illviriOIi
mobile al secondo,;
I
:i
- , .
~
"I
u ,
,.
,:
··'r1 "
MFLOPS = Nvm/(T, x 10')
con N lJm numero di operazioni in virgola mobile del proiramma.
I
Anche il MFLOPS, come il MIPS, dipende si. dall. macchina si. dal programm•.
,I:
,
!;~I,
'iI'
..

...
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, I

,'.-
..
:~I
,'
lI 62 Ca.pitola 2
.~
"".,

pur eseguendo un diverso numero di istruzioni au calcolatori diversi, effettui 10 stesso ,,


":1
· ,. ,
,I."
" .~;'
I numero di operazioni in virgola mobile. Cia e ovviamente falso, in quanta i 'insieme :
\ eli istruzioni in virgola mobile au "macchine diverse non e uniforme. . ::'i
': ;r:)
· •'-1;,
'ill
·.1'.1
';,l
.,~.

2.5 11 repertorio delle istruzioni : ;",


,;}"
':. ',';,
.'r,.;
n repertorio delle istruzioni eli macGhina costituisce t,lllO degli aspetti caratteristici di I ,11\

qualunque architetture ed e inestricabilmente legato all'arcbitettura stessa. Un'istru- ...


•··ji

I
.ro~

..;1
e
zione nel suo complesso farmata cia pili campi, di cui uno, il codice di operazione
~,~ N
determina la natura dell'istruzione e il significato degli altri eventuali campi. ~,

n numero di istruzioni nel repertorio , la potenzialita delle singole istruzioni, il


~~,

,~ '-')
'K

10ro formato e la 10ro codifica hanna grande influenza sulle prestazioni della macchina ~"!·
,Ii
I, stessa. Schematicamente SI possono individuare due opposti approcci alIa definizione
del repertorio di istruzioni: queUo delle architetture RISe e queUo delle architetture
CISC.
;'~~
j~
·'tl
·(~ • .,1

I
,~,

'~;:j

·'·'·,'·',;'..:
2.5.1 Repertorio stile RlSC ,.,.. "
,

·
..n
J'
..
I( Nelle architetture RISC il repertorio di istruzioni e progettato secondo i seguenti "
,
,,~

,."~".
criteri: ':"~
,,~
, ',~

• Le istruzioni hanno tutte la stessa dimensione, per esernpio 32 bit. ': ".",~
"I
I •
• n campo del codice di operazione occupa uno spazio predefinito.
'~'"
·'ii:
t "

• ··i"
t;j
"';

• Esiste un numero estrernamente limitato di formati. n cod ice di operazione identi~

\
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.
.' ";
.~
.~::
).?
··
"..·-I

.~
'~

In Figura2.14 vengono riportati i formati di alcune istruzioni delParchitettura '.


.
PowerPC 2 3. Le istruzioni occupano sempre 32 bit. n campo del codice di operazione ..·"'
I 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 e sempre univoca in base al campo OP. Ci sono ancbe istruzioni '
,~
:'1
.

che richiederebbero meno di 32 bit 24 , rna pur sempre codificate in una parola di 32 ".
;"
"
bit, parzialmente inutilizzata.
f 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). n codice 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

~. 1, 23Del powerPC si parlanell'Appendice C, mentre dell'architettura x86 SI parla nell'Appendice B.


2"L'istruzione sc (Supervisor C41~ richiede 8010 6 bit. per il codice, piu il bit 30.

:'
\
- .
",

Elementi architetturah di base 63

1\..
,.
'

i.'
'

I" ';,"1" ',; 'I '",,"I""~' ~ ""':"'"


u

, 8 r",rwillo iatruzioni mtmetiche

ll· ,
.
E,..,mpio di i8lrU%ion. adlmdic..:
IstrudoDC dl 'omm_
.,

,
}
;, .
(' !,~ , , I" '~ ,I
U
' ~ , [" '~ , B',,'",' , 8 I
ADD RO,RA,RB
ADO. RO,RA,RB
(OE-a, Rc-O)
(OE-O, Rc-l)
; " ADDO RD,RA,RB (OE-l, Rc-O)
\ .'
ADOO. RD,RA,RB (OE-I, Rc-I)
.1
~
i :.
,

N,.t .
K
~
,
,

)
·'I·
-

.
(' ';,' I I" '~ ,I
U
' '",,' I [" I , , I , ;,~' I , , , I '''[
Formal-o ialnizioni Illitm~tleh" con opllr"ndo
immfldl..to " i:rlru;:lon.l dl <:ariclUUeoto "
i:
;
memorinnione d_i reslstri
~
~ll :
~1
,
(",~ "I" """ "" ~""""'" ttl FormalO i-Ilnujone dl nIt" Incondhlonalo

jl(. Figura 2.14 Esempio di formati di istruzioni del PowerPC. Tutte Ie istruzioni aritmetiche
.,.:',1.' .
,
tra interi a. tre registri prevedono OP=31. Uistruzione di somma e identificata 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
n
,~

",.," 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.
~
~
"
~r
•.
"II
j -
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.
:i"' '. 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

" I
";..t
~~
:';
?
~.
~~
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 sa1t026
.".
.·"t
.~
', . , ".In Figura2.14 viene anche presentato il formato delle istruzioni aritmetiche con
~i; un operando immediat027 . L'istruzione:
1. addi ri, r2, 35 ha l'effetto: rif- r2+35

.,
"1
",i
'I'
,,
'I" :
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 e£fetto:

,.' 25Per esempio, se Rc=l, aHora l'addizione pub avere effetto sui bit LT (Les! Than), GT Greater
'I
'·f" '.
\~
Than) del registro CR (Condition Register)di macehina.
26Questa soluzione produce un elevato numero di istruzioni, tanto da far apparire il PowerPC come
.',I· una macchina non RISC. In realta, il forma-to delle istruzioni permette immediatamente una facile
~ecodifica, in quanta 1a decodifica di tutti i poasibili campi subordinati a.l codice di operazione pub
j
"~
procedere in parallela alia. decodifica eli quest'ultimo. Quando il codice di aperazione e decodificato
1.. non resta che scegliere quali degli altri decodificatori entrana in gioco.

"
,.'~'t
.'~ . :nL'operando immediato e un opera.ndo il cui valore e codificato nel campo stesso dell'istruzione.

_..
'
.~
';.Al
.'.. .
· :i,,l ;
64 Capitola 2 .c,
,~.( ,:.;

if "RA"=O then bt- a


else bi- RA; ·!t
·,
• ••,.
_. ~

EAt- b + EXTS(SIHH); ,"J_


t·,
ROt- H[EA];
oVYero)' in RD viene caricato il contenuto della cella di memoria il CUi indirizzo e ,'.,
calcolato: i ,
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 RA 28; '.'
.",
,,'

b) come indirizzo data da! contenuto del campo SIMM se per RA viene specificato
o (zero) 0 r029 . Si ha doe un indirizzamento assoluto. -"'..·
',;,
'.."
<,~
"4,."

• '.
",

2.5.2 Repertorio stile elSe '::"



;.,
'..,
i/!
NeUe architetture elSe it repertorio d.i istruzioni ha Ie seguenti caratteristiche. .j
,'
, l~

• Ci sono istruzioni di differente dimensione. "


··
,J
',
.\

>:~
• II campo del codice di oper.azione non necessariamente occupa uno spazio pre- -c-::'
'<
definito. -A seconda della modalita. in cui una ceria categoria di istruzioni viene ;; ,
.:.~

interpretata, il campo codice puo accupare pili a meno bit. ~~


.'3.•.",
• Esiste un numero alquanto ampio di formati. n codice di operazione, nelle sue " '
:'1
possibili variazioni, identifica 10 specifico formato delle istruzioni. Nel passare
"
da formato a formato, i campi che identificana uguali entita possono occupare
differenti posizioni. ~" '.
. '·wJ
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 e un byte. Per esempio, Ie due istruzioni ·.'t.1
'.
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 "t
memoria in un registro pub avere differenti dimensioni in dipendenza da quanta e
grande 10 scostamento. Essenziale e il campo MOD RIM. L'interpretaziane purtrop- '·'··'
1
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 memoria30 . Un esempio di istruzione
;i1
:
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 ,
c
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.
., " .... ';."
.:-j';t:.. ',,,'.','.
.,

,. :;.~':: ."..
to;:
1
"

.... ,
,
, Elementi architetturali 4i. base 65
(I'

t'
'.

t
~
PREFlSSl ISTRUZlONE
I
_' .
·.,
, Dimon_ieno Di.moo_iono S"gmonlo Cedlee },lOD R/'" SIB 3co,te.mento lmmedlato

,._.
I,lnll!ene
rndlrlne Op_nado \
I, 0/1 0/1 0/1 0/1 1/' 0/1 0/1 0/1/2/4 0/1/2/4

,I·; ,;
Numero d.i byte possibili per ciascuno dei campi dell'i.slru?;ione t
~ ~
'' ' ',; Figura 2.15 Formato delle istruzioni neU'architettura x86, per macchine a 32 bit. 5i noti
,. , ~

che l~istruzione vera e propria pub essere preceduta da. ben quattro tipi di prefisso, che ne
'.",.
~
,", ',.'
·t·
' .

\

, . ~Iterano 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 I
.j di operazione. MOD RIM determina quali registri sono implicati, oltre a indicare se c'e
, i
riferimento alia memoria e a condizionare Ill. presenza del campo SIB (Scale-Index-Base). n
•",1, , campo SIB determina. it fattore di scala nell'accesso ai dati. Infine il campo scosta.mento e il
,,: 1, 'campo immediato rappresentano rispettivamente 10 scostamento dell'operando in memo·ria
! "
j''·1, o una quantita. codificata nell'istruzione. 1
~

···tJ,
) '.
\~:

:~
:.
codificata in modo diverse a seconda della modalita e l'istruzione PUSH. Uistruzione
:'"
<:'
PUSH AX (mette sullo stack il registro AX) occupa un solo bytej Pistruzione PUSH mem \
, ., (met~e 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)
3i", ' l-
JIlem.

"'
'1
1"
I
"'f.
.'
J,w· , 2.6 Criteri di classificazione delle architetture \
'" . . , -::-.- ..I

Un modo'per classificare Ie architetture dei calcolatori consiste nel riferirsi al modello


1;'tr.,1'.. , di es'e'cuzione, ovvero al modo in cui la CPU accede e manipola gil oggetti dell'elabara-
.~ 1
". : ,
zione: At modello di esecuzione corrisponde Ia struttura e il formate delle istruzioni,
.r, ..
;"
c;on' p~rticolare riferimento a1 numero di operandi esplicitamente 0 implicitamente
t~J
rappresentati nell'istruzione. La c1assificazione che si traccia qui di seguito deve es-
<
1
·f"l

;;

'r:.: '
,
, sere intesa come uno schema genera1e. Nella pratica 5i trovano macchine che adattato
14· ,. soluzioni architetturali miste. -
:-.:
::{i
~'ii
,t~

·i~
. La parte che segue verra svolta facendo riferimento allo statement di alta Uvello
A: = B+C dove A, Bee cono variabili intere. I
).; F"lodello a sta~ Negli anni sessanta e settanta sonG state costruite macchine che
,t'..
.i£ modellavano iI madella astratto di calcolo basato sullo stack31 . Operaziani come )
~\'II'
.,:11. 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
ii·l·
1 dello stack, mentre it risultato viene depositato sempre sullo stack stesso. Si
:~• ;
.', .
::~ .
If! .
;;.' ,
""1' ".
tratta di architetture che, in termini astratti, rnodellana al meglio certi forma-
lismi comp~tazionali32 presenti in
alcuni linguaggi di programmazione di alto I
\.~

,j,: 3tEsempi rilevanti di macchine di questa categoria. sono sta.te iI Burroughs B/S50 (1963) e I'RP
.' 't

..
;~I'
'
'-'J!
3000 (1972). .
3'2per esempio la ricorsivlta. - I
~;: '
":,,:1
..)"
I. .-
•-j
66 Capitola 2 ,,
i .'
,
.~,

1 livello33 .
"..
·· '.",
·"!
",'

(:

Mode moria-mem9ria Sono state realizzate macchine in cui il modella di ':~J"


\ 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. !'.
· ";~;I
:>-',

- "'1
Modelle registri-memoria Le 0 erazioni yen ODO ese uite tra un Ie 'stre e il conte- "::::,, t'
u 0 una cella eli mem2r~ 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 e implicitamente preso dar registro accumulatore, dove pure viene '(~•.,
depositato il risultato. II vantaggio e la 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 ~'1'
fatto ~che i. m~ni<:&~olat?ri ~egli a.nn i s~ssa;nta prevedevan~ piu regis.t~i, spesso .:~it'
"
con differentl speclalizzazlOnl, e Ie Jstruzl0Dl dovevano Dommare esphcltamente ',~'~;
I 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
essi c'e un registro, AX, che viene denominato accumulatore, sebbene non gada ~}!,'
'01'
dell'esclusivita di intervenire nelle operazioni aritmetiche. n termine di accumu- _' .~~ ..
I( latore deriva piuttost~ dal. fa~to che cer~e ~stru~i?ni aritmeti~he.richie~ono per . :..,~I ,
forza AX, mentre altn reglstn sono speclallzzatl III altre funzIOnI. OVVlamente, :'j~l;
le istruzioni 8086 devono nominare i registri implicati, compreso AX. }il
Madella registro-registro Questa modello preyede un consisten~e blocco di regi- ',;ti.,
t stri di usa generale s stanzialrnent . ollenti tra di loro e sern lid 0
~ cancamen 0 e memorizzazione. Le operaziQni di manjpolazione deLdgli u~~ .~.il'
erazioni .'.4..,
sernpre e solo revstp come contenjtOFi degit-&perandi e come~i deLti- ;':)J,'
~IOper~Qn.e. ~d esempio, I'istr~ion.e A?D RA, ~ .Re cal~oIa Ia ~omm~ :~I'
I del contenuto. d~ regJstn ~ e RC e deposl.ta I~ nsultato in RA .. L esecu~lOne dl 'Y~t
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. , ",'
'i'
,;;1.
Nel modello a stack, non essendoci operandi espliciti, Ie istruzioni di manipola-
zione risultano molto compatte, can evidenti vantaggi in termini di occupazione di ·;"'j:
"1
[ memoria, aoche se ci sono Ie istruzioni di caricamento degli operandi sullo stack e ·· ...1
,;.'"
~,

di memorizzazione del risultato in memoria. Complessivamente questa architettura e ~;)


'.
'r.::t.,
quella che da luogo al pill alto traffico can la memoria. Bisogna infatti: (i) caricare gli
-
I 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
j
>,"

,.
'
,1'"
.....
..
;;I',
I
33I1linguaggio ALGOL (Algorithmic Language), ormai in disuso, ebbe vasta influenza nel corso ~, '
degli anni sessanta.
34n prototipo di questa architettura e atato il minicalcolatore PDP-8. II
'd' '
,<
"I
'4
:4 .
\
'"
1'
", '.
-

Elementi architetturah di base 67

'

F§tack 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

Figura 2.16 Con~roDto in riferiment~ aI. ~odel1o di esecuzione, per 10 st,atement di alto
livello' A:=B+C. 81 suppone che Ie Var18blh A e B non debbano essere modificate.
.

. , .
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 cod ice.
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 e stata 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.
.

2.7 Indirjzzamento

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.

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 p~mt&tore 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.
'E
·. \ "'.
68 Capitolo 2
,,'

,
.",
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 "byteJl 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 ':1~
della Hewlett-Packard, leggevano e scrivevano in memoria sempre e solo parole di 16 . i~1~
bit; Ie istruzioni occupavano sempre e solo una parola. ;\':',
Nelle macchine oggi in usc, pur essendo l'indirizzo riferito ai byte, e ovviamente ";:~
possibile trasferire, oltre al singolo byte, dati di 16 bit (semiparola), di 32 bit (parola) . i}j
e 64 bit (doppia parola), sempre che ii bus 10 consenta. :,;{
e
Se un'istruzione fa riferimento a un oggetto che non un 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 e considerato nella posizione meno significativa 0 in quella;:'1
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 'i':~~r
un bit del registro di stato che imposta il modo di funzionare della macchina [Jarn901· .i~:~
•,j-!
, " ,.,
,
Indiri:zzo ·.::;i
di parole. .J
,
'~
(:

3 2 I 0 o 0 I 2 3 d
,,,,,l
-'I
7
• 5
• • 4 5 6 7
'-<J!
,.,~i
:1;<
'j';
Liltle Enman Ell EDdieD J~i
'-"
"".~
,~,

Figura 2.11 I due possibili ordinamenti entro una parola. Quando il byte che d~ I'indirizzo ,:!( ',.: ,

alia parola si trova. nella. posizione meno significativa si parla di Little Endian) quando si· '~i
trova nella posizione piu significativa si parla di Big Endian. Schematicamente e come'se gli "j"
".b'

indirizzj crescessero in versi opposti. '~'


•'.
]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 .}m
~l
:. •,
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 ·'j
,-
'
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). ,\
:
· "
,
EI ~ ....: ,,~

" \
Elementi architetturaJi di base 69
'~,

,I • 1
e e
· altra situazione in cui l'ordine dei byte rilevante nell'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
J . 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)
~:
~ :
J::
farebbe vedere prima 00 e quindi FF.
t
~ .
:,>;,.1 2.7.2 Allineamento
~" \
~;: -
~ , · 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 \
jl a 32 bit sia fatta di quattro banchi ciascuno dei quali contiene i byte corrispondenti
{it..
'
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
;!:;' •
'I· 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 richiesto in molte architetture, e
1i
-' 'in special modo nelle macchine RISC. Se viene tentata una lettura 0 una scrittura a
~fl '
rl.
una parola non allineata viene generata uo'eccezione37 . La dimensione del dato let-
tojscritto determina l'allineamento, Per Ie parole l'alLineamento a indirizzi multipli
di 4, per Ie semiparole a indirizzi multipli di 2 , per Ie doppie parole a indirizzi multipli
e I
~:'
di 8.
I
!".
,;~. ," '"',
i~· _:...- ,
J
~, '.
..
d.·
ll. , .
•• .
...
. ~.;
,.__ . a ._--
?:: (:'," .:.,;~@:<.:,:,:
,t.,.3 2 v
<ilJ'
.
~ ,.' ,~
. - . ,• •
~,,~
. -."":":.;...., i+8
I'J!,
""'@f J ·: ,,;:.....:.¥'.2:F','i'\"< o. \
iih ~
<-;; ,
~~;,', :.~~/~: ,>(~-;
""~" " 1 i+4 I
i' 3 2 1 a 1
'
~. ,.

~
( ,
:,'
i1
'I '
bt.
"

':~
'

"
Bus dati
: D'H' t 0"-,, t o,,~ t In-,
1. '. Figura 2.18 Schema del collegamento della memoria al bus dei dati. Una parola allineata
1
]: : a.l generico indiiiz20 i richiede un solo accesso alIa memoria. La parola non allineata, tratteg.
m,~;, '- giata in figura, ha la parte meno'significativa nei due byte piu significativi aHa posizione i+4
l " 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
.:'..,
..""1 scambiate, 130 CPU deve essere dotata delia logics. per riportare nella. giusta. p08izione·le due
~l met~. .
..
<O~
'" .
-.
j' .

\t
'0..

37n significato del termine eccezio~e-~ spiegato 301 Capitola 3.


j
:,,~
"rtl
"1"
,~~

':1~
.."
.,
. .
- ,-/

,I 70 Capitolo 2 , ij
',~

+,.
"1
.,
,....,! :
'".13
.,.
,

Anc;:he se 130 macchina impone il vincolo deWallineamento, resta comunque la pOIr ~ .i,
· "',
sibilita. the possano essere effettuati trasferimenti tra CPU e memoria di singoli byte ,J~.:
\ .. \'
o mezze parole. Cio impone una rete per posizionare queste quantita. Per esempio, ,,~~!,

li;\ .'
l'istruzione di memorizzazione di un byte (STB) prevede normalmente che il byte me~ "', ..
no signiticativo di un registro possa essere memorizzato a qualsivoglia indirizzo 1 senza .,.
· "I;. ' ,
-':9....;
." ..
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 ....'''ji~,.
debba finire nella posizione 2, 180 rete di allineamento deve provvedere a presentare il
·" "
., .
',"r~ ,
-,
.- "....
j
"

data sulle linee D23 _ 16 e non su D 7 _ 0 . . "~ ;


,,::,~.
Nella discussione precedente ci siamo riferiti alia lettura/scrittura dei dati, La '~, ,I

questione dell'allineamento si pone anche in riferimento al prelievo delle istruzioni. Le (iJ ;


,""1 .
macchine RISe hanno istruzioni tutte lunghe una parola (in certi casi anche due) e ',::r1""
quindi sono di per se allineate. Un salto a una posizione non allineata ¥iene conside·
.,. .
"
,.:;,; \,

I, rata come un malfunzionamento e determina un 'eccezione. Le rnacchine elSe hanno ,.


-'('"
:~'1'
j'
,
" ,\

';:~.
istruzioni di diversa lunghezza, tuttavia la lettura avviene p~r quanto possibile per
parole allineate. Conviene ricordare che nel caso dell'8086 1 se un saito porta a un

i 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).
,','~~~ :
':'~~'
"":.~~.
~~1 f
.\~ ;
( :~y~( :
2.7.3 Indirizzamento dei dati :ri:.if,
....,~ :
Esiste Wla varieta di modi per Pindirizzamento dei dati in memoria. Per prima co- ~j,~;~ r
( sa analizziamo i1 problema della codifica dell'indirizzo di memoria nel codice delle .. (~~ ~
istruzioni e nella sua interpretazione, ,:~.
Facciamo riferimento a una macchina del tipo registri-memoria e consideriaroo '~:&h
e
un'istruzione come LD RA, var, dove var il nome simbolico di una generica posizione' .j~/{:'
in mem~ria, Pres~b~ente il, foqnato dellJist~uzione preve~era. tre caI:?Pi, di c~i ,.:~l
uno dedicato al codlce di operazlOne LD, uno de<hcato alia codifica del regtstro RA,lI ",'
terzo dedicato a .conte?er.e l'indirizzo di var , con un formato come quello mostrato ,!~'!j,

I nella parte supenore dl Flgura2.19. '.'~?)~


Conviene introdurre il concetto eli indirizzo effettivo (effective address) (EA). ', •
Con questa termine si indica il valore che risulta da! calcolo dell'indirizzo attraverso ·,:~~:
i componenti espliciti rappresentati nel codice di istruzione. Per esernpio: nel caso ;':'1
j;'
I

,_ .. .. ,. . , . t
dell1StruzlO~~ m aJ~O m.Fl~a2.1~, 1 ~n.dlrlZzo eff.ettl~o e dato da! campo IND, men re :t:~~·
nel caso delllStrUZlone infenore, IlDdmzzo effettlvo e dato dalla somma del contento ~
del campo IND con il contenuto eli Rb. Come vedremo, l'indirizzo effettivo puo a no ,~
coincidere COD l'indirizzo fisko . :ti~
. . .. , . . , ' . ' ~,~,
Una maruera per superare la lllmtazlOne da.ta dalla dlmenslOne dl lND conslste .)~
,\ nelllinterpretare questa campo non come un indir.izzo effettivo, rna come uno scosta- ,~,
mento rispetto a un registro eli riferimento. Immediatamente viene da pensare a PC :tt~
com revl!=:tro eli riferimento e assumere che IND rappresenti 10 scostamento dell'og- ';:$
e . 0-:. . . lt~
getto lOdinzzato nspetto a PC stesso. Naturalmente IND deve essere mterpretato .'f-:.f.
I, come un numero intero con segno, in modo da consentire di indirizzare in avanti 0 in~ i'
dietro. Si determina doe una finestra entro cui il programma indirizza direttamente e ~~

\
"".',"
/l.....
••

71
Elementi architetturali di base

, ,-

,..:, .,
10p[pl'ND I
':.
' -', . ,
,': I op I I I
Pb P,d 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
;\
,
e indubbio che la dimensione del campo INn delPistruzione in alto sara. comunque inferiore
',' a 32. Occorre prevedere uno schema in cui IND e solo una componente dell'indiriz.zo ca1co-
I'
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,

. ~'~' ,::' la finestra segue l'esecuzione del programma stesso. n PDP 8 adottava questa tecnica,
:,~, :,', ".,. anChe se la finestra indirizzabile era di soli 256 byte38
.' 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 cor~isp?ndente diventa, per
,·'.~,'· , esempio 1 LD Rl,var(R2)1 cOll'Rl come Rsd (parte bassa dl Flgura2.19), e con R2
:~.;_: . . : .,~:~; come Rb.. .
r~:::>:~:,">., ,' ';, ' Sqrge qui un problema: in base a Quale riferirnento puo il compilatore (l'assem-
~::~rf~~\":~: olatore) calcolare IND per var?
,~[(-i ,2':,,:; , ",., Supponiamo che la memoria sia lineare 1 ovvem che 1a memoria sia un blocco
r':::,:~':~::: ,.~oncettualrrienteindifferenziato di celIe, dall'indirizzo 0 a.lPindirizzo M-l. La COS3 pili
';T':'.;~'::~ e
'naturale ipotizzare che l'assemblatore determini l'indirizzo d.i var rispetto all'indiriz-
::X'~;:t~,: 'zb 0,. assunto convenzionalmente come base eli part.en~a dell'intero programm~, e che
\P;;';""" aU'atto del caricamento del programma in memona 11 campo IND venga aggmstato
N!:<~--,!~ in mod? da tener con~ de~a posi~one occupa~ in memoria. Questo proce~s~ viene
,:,:-0..: -::, etto r;locamento 0 nlocaz~one (Flgura2.20) ed e svolto da un programma dl SIstema
'.,.. ,-<::..,.,
~, .,' ...

:,i':"1·i:',·· 38' . .. .. . . , .
:;;"; ',,' _, . A .tltolo dl cun.osl~a. 91 ,rlP?rt~ l~ .Sol,uzlOne adottata. dal calcolat~n HP della sene 21xx" ~a
~~" '.'
macchma era a 16 bit; IstruzlOm e mdinzzl sempre su 16 bit, La memon3o era concettualmente divisa
in pagine di 4kbyte in posizioni fisse. Si distingueva Ia. pogina corrente (quella. in cui si trovava il
"controllo) dalla pagina bale 0 pagina zero (Ia prima. neUo spazio di memoria). 11 campo IND era
'~':"\' '--, '" ' ~i ~2 bit, cor~is~o.ndenti a 4kbyte, e veniv,a inte~pretato come ~ nu~ero assoluto. Un ulteriore ~it
~:"'" .~;.; ln~!cava ~e l'lndlrlzZO era da continderare In pagma. corrente 0 ID paSlua base. Con questo artificlO,
,;',: .. ". un l~truzlOne, dovunque si t.rovasse, poteva indirizzare dirett.amente 8 kbyte, di cui 4 kbyte nella
,'.','1: to ," paglna corrente e 4kbyte nella pagina base. Era inoltre prevista la modalita. di indirizzamento
:. :.' '.'. in~iretto rispetto 301 contenuto di memoria; per esempio, l'iatruzione LDA mem,! caricava nel registro
~ ~"":'.'. '>. A It con~en~t? della loc~io.ne di memoria. ii. cui in~irizzo era contenut.o in .mem.. Struttando la p~gina
$ ;,":,:,:-t. ,':' ~ase e lln?l.nzza.:m ento. mdlretto .er~ ,?osslblle ra~lUngere qualunque destlO~l~n.e. Bastava: sC~lvere
~ ,.'. . In una pOSIZlone In paglOa base l'mdlrlzzo da raggluogere e programmare un IDdmzzamenw lOdlretto
. :.,.... ,', ,.,,:',.. attraverso tale posizione, Era cib che faceva it Linker nel cancare i programmi in memoria: quando
:.:: \-','. - ~n ~ndirizzamento $Contin3ova i limitidella pagina corrente, veniva modifica.ta l'istruzione rendendola.
~ iH:;,~~':~;' ~" IOdlretta. attraverso la pagina base dove veniva generate l'indirizzo desiderato.
'\~.'- ,,','- ,
".'
. .,••
!.~
72 Ca.pitolo 2 ...,~
:;;1
::d
,.;..1
".,
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). ..~
. .."'\.
.'" ,
'~-~
~ ,., ...
, ,~:,
.'.'

x+160 '
,,:,:,,~
'"'
180 I var I ,.:,
',~.~~
x+44 Rl.x+180 R2 ' '-;1
• ,.,;3
~f LD Rl'160CR29 .r9f.
o -;":,&
Spllzio desl! indirizzl Programma rilooato in mlmorl.. '~::fJ
'F' 220 lli1 ' di ' 'd' .. ,." ;]1
19w-a.
" ocazlone
Ii' ..1:_' , un programma
• d I tn uno SpazlO 1 memoria
.. hneare. I ca.mpi ..,,~,~
-)
re Ia:tl~ ag mUllI~ZI sanD calcolatl , aJ l~e~b~a~o~e' a daJ campllat~re m riferimento alla };~
pOSLZlOne conveuzlonale 0 nello SpazlO degh mdinZZl, AlFatto del cancamenta in memoria r~·~
questi campi vengona modificati in modo da tener conto della posizione eli caricamento dei .~'~~~~
programma in memoria (indicata con x). ..~
:'i1'
'.,.':J~
'-._
'tm
L'altro modelio di memoria e queUe In esso si assume che 1a ::~~
segmentato 39 ,
m~o~ia sia divisa in se~enti, ~i posizioni e dime~~io~i,non fi~sel e che ci siano alcuni i1
regtstn ~hel al te~p,o dl e.secu~lOne, contengano 1 mdinzzo dl partenza (la base) dei ~J~
segmentl, Co~e mdicate 10 FI~a2.~L n mode~lo segt;nentato cerrisponde meglio l~
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",
un certo grade di complessita.: bisogna tener presente che i registri di segmento sono }O
sempre dietro la scena e c~e ~tervengono ogni ~oIta ~~e ~i~ne generato un, i~diriZZO, .';
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 ';;
termine di indirizzo effettive (EA) per indicare Pindirizzo calcolato della CPU at. J~
traverso 1a sua espressione esplicita nell'istruzione , indipendentemente dalla pres~nza '::
dei registri di segmento. Se 1a memoria e lineare, l'indirizzo effettivo corrisponde a '~
quello fisico, se 1a memoria e segmentata Pindirizzo effettivo cleve essere sommato al :f
contenuto del registro di segmento per ottenere l'indirizzo fisico. ,~~
, ., ..
"

"~
~
':'
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. '

,'
"'
it modello della CPU 8086, mantenuto
!liE in tutte CPU che Ie hanna falto seguito, Si veda.
l'Appendice B. ;
:
',';;:;;'' I"': ...,
~

'*iP::~('~.j'1 ",- ~ "


,~~f.'.""""
:t'i),,~ .. 0",","

·.. i. ~':··~;I!~,~<~' 'l-'


':,~,j!'·;"lj,.;\·.:; , ..'-
f
•,. ..... t,;' •

~;:~,,::.:/:. Elementi architett'urali di base 73


, ',<:'", ,':..-:.--_-------====-=-=-'-"------
;:;:,~,:.:,;">~:- 1
,,:";i':('...""
~ .. ;
- ~~

"'. ::',
n' ',. ,

': ..\-::
'
,
.
'.. ",
.",
.. ' .
'
x+160I v",
,
f
I
' ,
'.~' .;:~.
:
,

'.' 160 v", \


.+4 , to R1,160 R2
, t
:i, 44 E 1.0 Rl.160(R2) I )
Rei. Selmenl



, ...., 0
~ '~

1 :'. :,",
3
"'.~ , Spa:z.io dllaU Indlrlni

Figura 2,21. ~l?~ione di ~n pr~gramma in uno spazio di. memo~ia ~e~entata, I cam~i
Proaramm.. riloc ..lo 10 memona

',. ,"'., relativi agli mdmZZ1, calcola.tl d~l asselIl;blatore 0 da:I co~pi1atore m nfenmento alla. ~OSI­
I
. "'-' '., ,,:' " 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·
J ,:. '. ', "<,Y>" zione dell'istruzione richiede ~he venga prima calcola.to l'indirizzo effettivo come 8O~a' d~ \
1 ~ , ' •. ' 'contenuti del campo IND e dl Rb e che questa vengs. sommato a1 contenuto del reglstro dl
~
) .' - ' ;." gmento per d '
etermmare J" m dinzzo
. tis"ICO in memona..
.
~ :'-" ... ' se . .
~;';l.".:'·· .. '.
~ ;:, .. (" ." " .. ' d' tt E" I ' " li di' diriz' t ' . ·'1 \
.' ,:,'." .. IndU'lzzamento Ire 0 a lorma Pl~ s~~p ce ~ 40 zamen ~ ill memona, 1
' :, .. ' ' . campo rnu
Vlene mterpretato come tndirizzo effettlvo . EsemplO:
~ ~,:..>'. ,,'
_.m' LO R1 var
, "'EA = INo ovviamente R1 +- M[EA] ~
'
'

~~.: ;" ,w.dirizzamento rcla.tivo ai registri Come discusso in precedenza l'indirizzo ef-
1~
~ . ,\'.
,:. " ~. fettivo. viene calcolato come somma di IND e del contenuto del registro
,''Esemplo:
r!
~· ,:( '.. " .~): "81 var(R2) ,R5 i EA = IND + R2.
~:- '., " .:'" .', ' \
, , .','" ~: ... in ,'. mento indiretto ris et . re 'stri Simile aJ caso precedente, masen-
O ,~; '-",",' :., "".. ' ,za un campo III nzzo nell'istruzione, Esempio:
;~: <,:":'.'.: ' . 'Lo 'R1, (R2) i EA = R2_
\
:~.'" ,'/. '.' .. . . . . .. . .
;'~.,:, '-: I elatlVo e mdicla e c ~l agglUnge un seco~-
~ " ' '.do registro con la funzione di indice. E molto conveniente quando si ha' ache
:~ I,
~~ .
I fare con strutture dati (vettori, matrici ecc.): nell'indirizzc;u-e it generico elemen-
to, si fa fare al secondo registro la funziene di indice nella struttura, scaJando in
\
f.i ' base alia dimensione delPelemento stesso. Esempio:
~~L, LD Rt, var(R2) (RX) ;'EA = IND+R2+RX*d, d ela dimensione dell'elemento.

I
.' ",.'

...
,
~' ;: -, " I..!.ldirizzamwo iudirettp rjspwo aj resist.; cop au~emeDt.o Consente eli
~_ :, incrementare automaticamente il contenuto del registro. Anche questa e utile per
'~l~ ,. ~dirizzare it modo incr~mentale gli elem,enti di una tabella, Esiate una versione
~~ . ; ,. che decrementa, EsemplO:
',;~r" LD Rl, (R2) + ; EA = R2, R2 l- R2+d, deJa dimensione dell'elemento, \
'..@I '.
,i. ,'. '
"f"
'v"
,, 40Nel caso di mac:chine che prevedono un regislro nella formazione deU'indiriz'l:O (Cfr .2,14) questa.
11 "' istruzione prevede Puso del registro RO, il cui contenuto e permanentemente 0, oppure la soluzione
;f,~ "- indicata a pagina 63,
:~ ,


-,
A-
"
.:,j
.
.;~

14 Capitolo 2
:;Al '
~(,
.'1;
"
.'.;
Indirizzamento jmmediato Non e propriamente un indirizzamento in memoria. Al ,
( e
programmatore consentito di scrivere istruzioni in cui si esprime direttamente
un numero 0 un'espressione rieonducibile a un numera, ehe viene direttamente
"'t
"
"
· .<;

eodificato nell'istruzione. All'atto deU'esecuzione non C'e quindi indirizzamento, .:fl


· '~-,

in quanta il da:to e gia in CPU, Esempio d'


I LD Rt,2461 ; Rt +- 2467
"-,

2-.,
Indirizzamento dei 'registri ~eancbe questa epropriamente un indirizzamento. Di
;;-:-

-,,
:..
I norma i registri devono essere indicati cial programmatore l anche se in certi casi · ..
.:~

I e
Ia macchina pub assumere che un registro predefinito. Esempio:
" "'~1
' ;:,'.

HOV Rt, R2 ; Rt +- R2, "


'if,
,... -'
Indirizzamento d~orte dj 110 Bisogna infine considerare cbe alcune macehine
JI 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 . ,.""1
*- ."",
·\~i.

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 "'"
,"';'c
,-.,••
)'1
hanno Ie istruzioni In e OUT. Esempio:
\
, ~il
":);

IN AL,PORTA j AL ~ PORTA di Ingresso l dove PORTA e codificato in un ::"4;


.,
".!
'1,-

campo eli 8 bit dell'istruzione. : .• ¥;':


, ';$
.::""
I 2.7.4 Indirizzamento nei trasferimenti del controllo
., '
.'

... ~;~
';"i'~t.
~.,

_:~!..!

I
J.or.

Valgono anche per questa caso molte delle considerazioni fatte in precedenza. L'ana- -;~¥. -,',-.'
I ,

lisi dei dati relativi alla struttura e alresecuzione dei prograrnmi, mostra che i salti ':.~·$1
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 "'~

I ,
degli a.lgoritmi. n salto incondizionato corrisponde spease alPabbandono di un tratto _~'
di codice ed e piu probabile che la misura della distanza del salto sia meno contenuta, ','J!
. Per Ie diramazioni la norma e codificare lo scostamento della posizione di desti- .~~
'''"

nazione rispetto al PC. Per il salto e per Ie chiamate di procedura, molte architetture i~
prevedono che il relativo campo dell'istruzione vada interpretato come un indirizzQ "<f~'
t eHettivo. Nell'architettura PowerPC viene lisato un bit per (il bit AA di Figura2.14) '~,-;,,\
per iodicare se l'indirizzo di salta e assoluto 0 relativo. :·.i
': ,''',~'"
·",,,.'.",..
I ,'/~~
~
'~"ft

-;:4
(i:
: '~.j
"'.
':~A
\ ,,~

2.8 Esercizi ;f§


.~,!
,,,,
I
•..·fi
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.

\
A-'. '"
Elementi architetturali di base 75
'

n lettore 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
t' ,
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
--
eff~ttua Ie azioni corrispondenti al caricamento in R1 della cella indirizzata.
.. Ese~cizio 2.3 Ripetere il precedente eserclzlO per l'istruzione ADD Ri, R2, R3 per
-
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.
.,

1' .
-'.
:-
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,
r
:
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
1 '::.. ,

casi e si confrontino Ie due architetture sotto questa punto di vista. •


,~:, •
~", '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.
~ "'? '.
~'
\
", 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
i l
, 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
t . dei parametri e il ritorno dalle procedure.
~ .' ~"
4 : ....
: '._ Esercizio 2.9 8i consulti un manuale della famiglia 68000 (sono disponibili sui siti
j~ ,
.' Motorola) e si confronti la struttura del1'indirizzamento con quella dell'architettura
A ' InteL
~
§ Esercizio 2.10 8i deve dare una valutazione delle prestazioni relative di 8086 e 8088.
!

,ii'iO .:. Si facciano queste ipotesi: (a) il numero di clock per la lettura (CRD) 0 scrittura
~~, (CWR) in memoria e pari a 4; (b) la fasedi fetch e la fase execute sane sequenzjali
(non sovrapposte neanche parzialmente); (c) 10 spazio occupato mediamente da un'i-
e
struzione in memoria di 3 byte. Inoltre si assuma che la fuse di execute richieda: (i)
.-..
/ ~

~~~
16 'Capitola 2 'Si\
-'~j

··-r . '§.

per il 60% delle iBtruzioni 3 cicli di clock; (ii) per il restante 40% 3 cicli di clock, Piu'·A·
la lettura ~ la .scntt~a eli un data III memon~. 11 30% eli questo.40% legge/scrIve un . \~i
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- i~'
tura/scrittura dei dati a 16 bit avvenga sempre a indirizzi pari; (2) it rapporto tra .1~i!
Ie prestazioni tenendo conto del non allineamento dei dati e che dope un salto Fis- "I
,truzione potrebbe essere a un indirizzo dispan. A tal fine 5i assurna it 30% delle (,
letture/s~rittu:e dati a 16 bit trovi i~ dato nO,n alline~to 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'4
· ':''M~
);;i~
'~11!
"~~
",'t)
":;~
:~.
,,'.i'
',.i?
.,
.,~':;
.:;'Jll
•.~
• "i;'fi~
· .. ~'
· ;'~i-I'
"~y.
, ,t:,\>
,,'::~l;
y
·,'r'i
,~,
,~~,
,:'3
.tt
..,~
~

,
\
'-_.;; ,- -...
;.: . .\-~,

:c,:.:',~: .

A··~». ' , •
<~
,'1 ";:)
''; ".' ','
.
,'.,' ::,:,' • •• \
', ":_'. ".. La memorIa prmClp
! ::.. !" :..:.... _

il'.
,:.. '
1 >: ':,'
I
'il: "
l '. ..~
I
., ,..' .
,'.
\
, ;.::
".
~ r:", ',".",'
, ."
. c
'

4 ;.:,.... '.
M ," '
~ " .
~ :,~'::.,'",',/',)n modo molto schema-tieo, l~ mez.n0:ia di un c~colatore puo essere ~visa in memoria
! I"""",:" '. . interna, detta anche memona pnnclpale (mam memory), e memona esterna, detta
I
~ ,.. :: . ,.~ anche memoria ausiliariao di massa. Sia la memoria interna siaquella esterna possono
); ::::~ ':,'" ,.',:"c. essere di varia tipo. La memoria interna e com~mlt~ 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
" " ,,'(DRAM). La memoria esterna e, di norma, composta da diBchi rigidi (magnetici,
~. ':>."",'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-
I'I
lt ,':<'" '; ";" " 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.
~" r~,ti'i\':.',~' ~SUJ~~ ovvio che mott.i dei .re~u.Uiiti. elen(;ati sono .in ~ontrap~os~ione tra di loro. Da
A<:" ~~, ',:,:, CIa dlscende la necesslta dl dlmenslOoare Ie partl di memona lD modo da ottenere
' '. " .."...... '
.! :;_:,;:,::~,:':',-'i r~gione~~li pre~tazioni a costi sos~e~bili., In aiuto aI. progettista ~iene 1a p~priet~
>1 I",~'if,i~'~:.'" ';' dl Jocahta ,spanale e temporale eSlhlta daJ. programml. Tale propneta suggensce d.i
; '0,~,,~,:,:~:;,;.<~_' <?.rgani~zar:e .Ia ~en:?ria .in modo gerar.chico l con me~orie pi~cole e ~~loci (e dunque
y '::.~~\.'.:t\k'~:costose) ~~ ~vel~ p~~ altl ~ella gerarchia e con memone ample, rna Pili lente (e menD
i" ,!;:\':~?'::/,::, ~ostose) ~.liveIh pIU basSI.
I
,~ ,',;~" .',:',",:~,~,: ". ' Questo capitolo e essenzialmente 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
t. ::,: :;:. dl sigle In contmua crescita.
I
~~ :.,~,:
~., ., '

,f}:';, ~,1 Le memorie RAM I


n termine !tAM e l'abbreviazione di
casuale) e dovrebbe' .
~ cesso
Random Access Memory (memoria ad. accesso
. 0 di memoria per la quale i tempi di ac-
0 indi endenti dalia posizione letta, in con rasto con Ie memOrte accesso
I
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~
78 Capitolo 3 :I:
:liJt.~
'.'b.I.-

I )"",,
',',,~
e,:\: "
..
<.·J,
,_.
i' ',I{'.
"~r .!' -

JW..l-Parametri di valutazione '~'


'~'.:,".' ,

~~.;~. ,{:,;
I Nel valutare la memoria d.i qualunque genere l i parametri rilevanti sono i seguenti. :~:;'.t- '..~~.
.•", ~ '
{:}!~10\::
• Dimensione; fornita in bit byte. A volte la dimensione viene data in modo .:i'Ur~ \:,3
0
da descrivere l'organizzazione interna; per esempio, una dimensione data come :"'~J~ ~t';
64 K x 4 bit, indica una memoria di 65.536 celie di 4 bit ciascuna; "~'~;~ t:;:
;,"j,A ";~:

me tern 0 di accesso, ovvero l'intervaUo ":~di "..:


I
• Velocitti; generalmente viene iudicata
I di'ieim; the intercorr a 1a . . . m ento i . . :j'i!:.~ :/t
-.. ,'!;"
viene reso disponibile. La velocita, pur essendo un fattore c iave , non deve ;:~:~ :~'..
essere SOvIa!mmat"a: 51 deve impiegare una memoria veloce laddove estrettamente
. ., .,-,.
;:~/\1
necessana. .'H~ ,\
".~~

\ ,.'/:",:.
n' .'
:.,(r; :,
• Potenza; il costruttorelornisce una potenza media, anche se l'assorbimento non e ,-,....
.....,":ir,.. ' ..
~ ".'
,

in generale costante. In alcuni casi, per esempio per Ie memorie che mantengono ........-' ' '.
~>~l

i dati con un batteria ausiliaria, viene dato anche l'assorbimento a riposo (stand. :~,.l~'
-.,., '.
\ ·..' .. '..'. lJ '''
\ by). , .:
.;;':;4; '"
.~

• Costo; e i1 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 e 1a densita di memoria minore e ifSuo costo unitario. '1J~1'
.-,'),.... ' ,

.~".t:
"

'· ...'Ii ,"


• lntegrazio!; un maggion~ Uvello d'integrazione porta con se tutta una serie di :~;::~"i ,', > .. ~ ,

etti e indiretti; in quaiche modo si tratta di un parametro riassun· · -.. ,


I
vantaggi ~A "
tivo rispetto a.i precedenti. Tra i v ta i diretti c'e senz'altro l'abbattimento ;'):1', '
dell'occu' ~:t. ,
rica e la riduzione dei conswni. Tea i vantaggl in otti ;'.':1'.,
n uzione dei costi di assemblagglO e e partl l e Sistema di alimentazione e ';.'1',''"
,,~ I

dello al' e. Si deve inoltre sottolineare il fatto che I'integra- ·.r::~ . ->..:
J,
zione induce una ~ore a.ffiQabilita, riducendo i1 numero dell . essioni • . -;J
esterne. n livello . integrazione viene ffilsura 0 norm ente attraverso Ia i~ ·f;}'I~
menslOne; minjma che si riesce a ottenere attraverso i1 processo tecnologico (es. 1 .•.:~
,.".".'
micron), oppure attraverso 130 densita di memoria per chip. ""
'. ,
",
\ ';~l
,;')1.'
"·\1
,:'j'
·~'I.

3,,2 e ,'.:1."ii
..
J. .>'',',.1
,
",,;~.

La cella fondamentale di una RAM statica memorizza 1 bit e costituita da 6 0 e ,'.'"


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 'f:
\~ qualche nanosecondo a un centinaio). "

) ~ Questi fatton, combinati con ill) assorbimento di potenza non trascurabile, 5pe~ \11.,
, cialmente per i tipi piu veloci, relegano questa tecno1ogia alIa realizzazione dei registri
~el processore 0 1 al EiU, eli memorie dl p~~c::.,?~en~i.Qni>--~ ,
'\i,
'f"
:"n
\
:v.")-L'';,',' ..
:.:!\i"~';:>'
~~.~'
",V" •.-..
,::;.\
~t·;:'f~~Y:i~ T _ -, :~~: 1", .....
79
:l"';""""l<>":'_'~_--------~---------
.. ...... .'
~~ ·~
-,~':~'J..'
,,,,,,,~,
:,-' "
·~
.'.'
L~.~~~<:~~U~.~,~~~y~"~"=·~"r:=~- _
"::--, ·r~·.' -.','.-" .
~'''-:' ~
,··v·~·" ,,~
.,~ '''''',~
.i'·)'::.T: .'.'
-c,;'" ,. '~"" '

';ii;h?: u sempio di memoria statica


'·':'~···"Jt:~:~::::.:.n'..::e:::=;:.:.:..-_-----:-~~~~
,,:""
,,".'.'

;:f+~;;~:·,·:·:,".. ' .'


.'

4 . . • ata in 524.288
.;':;' .. ~,~.' F' 3 1 viene riportato 10 schema a blocchl dl una SRAM orga.mzz
'·;.o.:'''.':.,:In 19ura . . 1
::}:·~·": arole di 8 bit (512Kx8) .
3~~~(,1 r:'.'p
;.~~:i:· ' .'
:':~·;\~',·, VC c ~
,
"
:',<:." ''"',.. ~
G ID
:~{:~-:.~>. '..; ~
Buffer di ingress l'
t'..'.,. :~,:.':'
"., .... , i \
~, ':} I: ~> C' ,
~~:/. ;.~. :~";~,
\".' :t.:... ~,,'.'
.:',:" ~ '" 0
,
.<!'
Ho.tric~
,
0
I/0 g

, .. ',' ~

'. . ,," .
.' ~ 0 "
.,.. ~
,...~~.'.',
.. ',... . . ~
524,288 x 8
rv ~
"
,
,
' '
..:.- ,", :: . "
,.
'. '0
0 4.1:14.304
'8.r ..
'.
. ., . . ,., u ~ • liD,
.. ,,'
''''''.'' Q•
~ ,," ," A,
~ ('>
"' " "
f-- -, E
. I
Oecodlf. cl i colonno. Circui'tl di • - IE
" C
controllo CE

'._', "
", ",'

~ •-
~

" '
, ;",' . Figura 3.1 Schema a blocchi di una SRAM da. 512Kx8.
"
'.
.
" '-1 piedini di interesse sono i seguenti.
. ,-
• A _ Als. Linee di indirizzamento. Servono a selezionare una parola di 8 bit.
o
~, • 1/0 0 _ I/Or. Dato in ingresso 0 in uscita.
'
• WE. Specifica se si tratta di un'operazionne di lettura/scrittura. Quando e basso
l' i dati presenti su 1/00 - l/Or sono scritti nella cella indirizzata da AQ - A 18·

• ~. Abilita i buffer d'usdta nelle operazioni di lettura, permettendo di rispar-


i'
miare corrente.
1 ,,-

• CE. Permette di abilitare/disabilitare il chip.

In Figura 3.2 viene data la schematizzazione funzionale. Come si pub vedere l Ie


SRAM sono di facile utilizzo: e sufficiente fomire l'indirizzo. e specificare se si tratta
:I'
" .. di un'operazione di lettura 0 di scrittura.
1,
I Essa
corriaponde, per e5empia, al madello AS7C34096, un disposit.ivo fabbricato da Alliance
,l Semiconductor in cinque diverse versioni caratterizzate da. differenti velocita..
"
n.
[;
,

.., "
Canitolo
. 3 ,,~.

-In .
",',,~''j

,..
";'1
,kl;
i";'~J
) " ,'~~
" \l-
~l'2K:o 8 512K,. 8 ,:;:
'0 1100 CO \ ,:\
'. ::;r
."
,,<0

"-
N "
<
Q
"a~ "
<
Q

,e"(
".~!,

"'~
~ 1/07

~'"'il
·~;-,
Q
Z W, 1 Z 0 ."
.'<''''
0' 0 !!!< 1 .->".
·',,,
'" CE o
'" CE o '" .'-.

,c.,
'" •
\~
eo) Ll!ltura b) Scrilturll .:!l
:..,'

Figura 3.2 Coma.ndi per Ie operazioni di lettura e scrittura in una. RAM statica da 512 kbyte ..]"(
, · ..,.
: .=:-rl
' ..
'''fi,''

Tern. 0 di accesso
lettura come 'interv
0 di accesso
eaB '0 ad avere i dati
It'0 erazion di.
. a, a artire )'~I
..""~
,'-

:;;'~~
.', ,'"
d lstan e ill CUI Ii indirizzi e i se ali d· centrella sona stabili a Ii in ressL "':C

ra . viene riportata 130 temporizzazione el cielo di lettura. Dopa aver ~'~t


famito gli indirizzi, vengoDo asseriti CE e OE; dopa un certo tempo tACO abbiamo ,.>~':;"
" "
,,~.

,
". '.~c

i dati stabili sulle useite (Output data valid). n di,positivo ehe legge (la CPU) dopo '!;<,
,_n',•
.";'
un eerto tempo rialzera CE e OE. ....! .f~
."· ~"-'<,
Si osservi che il tempo minima richiesto dall'intera operazione di lettura e tRG :', .

(read cycle time). Anehe se db non appare in Figura3.3, per Ie RAM statiehe tACC = ..•,~..
J:
tRC'
..,,a'~'I....
::,~.
,

'"c
.'-'\'
, -
--" ",
, ":;1 ,,,~.

:;'d~
....-"'.
, .)~
, ".JI
',.,:;;:;
';'",

CE : -:.:~
tot I
X
·,::\
..1 .
"-
--'-

OE
:"c': "'j;
.';
...~
<{~
lAce

DOUT DATI VALlDI '~I


.. ri
"'.._
'~"
, '"

Figura 3.3 Temporizzazione dell'operazione d.i lettura di una RAM statica. -


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

Uoperazione eli scrittura (Cfr. Figura 3.2 b)J puo essere svolta in due modi. ~ i:
,~
,.
·".:-d
,'.
1. Controllata da WE. Quando il comando di scrittura e un impulso su WE. ";'J
• ....
2. Cootrollata da CE. Quando il comando di scrittura diventa un impulso applicato .o
,

su CEo ..
,
.,

Traiasciamo la descrizione dettagliata di queste operazioni. n lettore 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 , .

;",.....;;i'r-:~~ti..' T:'
.. -~." - ....
,-!);;",i,
',- t.l,;-'. .~."" _' ' .
~. "'}~!':':\';,: .:. 1
, '." -. ,
",,' ,,',
,;~:,J~ .. .~< La. memoria. principa.1e 81
• >' •
,

I
,
-

.... ' . (asserito CE) e che vengano presentati i dati ehe da scrivere su 1/0 1 - 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.
I
~.

•.
l,
(.:,
.
'Cons umo Uaspetto che deve essere considerato, anche in confronto alIa memoria
, DRAM, e iI consumo. Per it componente AS7C34096, nella versione con teIQ-po di
I
.. 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

I" ,'
"
,
3,3 V , e dunque: I
. Pd = V" . I" = 0,660 W
t'
"I.. n consume specifico p, ovvero il consumo per kbyte, puo essere espresso come:
\
,
.
,
Potenza dissipata .
~ p=
Dimensione in kbyte
.. ';
"
~ I
Nel caso specifico, si ha: \
:
aI'" .. P -- 0,66
512
= 1,29 mW /Kbyte (3.1)
.
.'" -
,'"
;1'
. \
~I' - 3.3 Le memone dinamiche

~
I
;,
,

~
-: 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)
.I
\~',
-.
- ' -. per indicare la memoria centrale.
.. ,
': : RAM B ' • In esse I'informazione e rap-
: pr.e1lentat,lltlraversoje carica imwagazzjnata in un con ensatQ~~.Lnte:gtato . .Lo
;-
;-
.~ -- , --'-<,
~.,
schema equivalente a..!!R ~leJ!1~nto di memoria e riportato in FiWa3.4. E richiesto

I'
_".'"," ,' '
- u~re- per bit: .la 'capaCit£ Viene ncavata sulla stn£tura -del transistore
stesso, realizzando in questo modo uno sfruttamento ottimale della spazio disponi-
I
'
i!
bi~e. La struttura e ripetuta regolarmente seguendo una griglia quadrata: 130 linea PL
·~r'....
-
,:,
'"
;;~
,
,
(plate line) e coliegata 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 e dell'ordine di 50 pC. Essendo presenti delle resistenze di perdita, la
:~I;
~~
.:~!
d,
carica si esaurisce in pochi millisecondi, rendendo necessaria un'operazione periodica
di rinfresco.
I
,'..,,, ~,

AlI'epoco deli'introduzione delle DRAM, nacquero molti dubbi sull'aflidahilita


'J', !
.J I della rilevazione del Hvello logico. L'idea impiego un certo tempo per farsi strada,
of: i
': 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
,;t
~~
.,

'-':>
-
;;
.""
- ;:

....··'~I'
, ]Queste ultime vengooo tuttora utilizzate in applicazioni dove si voglia un elevato grado di
affidabmt~, per esempio, sui computer dello Space Shuttle. I
, '
~ ,
:'~~'_

"'-~ ~/
"~;i:

82, Ca.pitolo 3 .,
.. " o·

"
' ,,:! ,

• ,Ill
.\\1~-
~: '
.
......:;'. .
.'.),

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: e sufficiente una radiazione a bassa energia. per distruggere .·~-",
' ,.), .. .
·",'.":. ..
-.\,

13 barriera di potenziale e quindi la carica immagazzinata3 . •


~~.
' .. ,
·
.,";,
, .,..'1
~anizzazione delle DRAM Abbiamo gia. detto come Ie celle siano organiz.. ..
.t.,
za e m una griglia con righe e colonne come schematizzato in Figura 3.4. Pe~~ .'
,.
,'
'.'
."."...
gereJscrivere un bit e necessaria formre alia memoria prima ,. dirizzo di riga (RAS 1 _;,~J
,~

Row Address Strobe) ~indirizzo di colonna (CAS, Column Address tro e . , ',l

·':-..
'-':11

BL
Bl,.: Colo" .... ~um.r.
"; "
-·"
.
, n,

'0
,~. .
I'lolllJl.l
" ';11
:) aUmento:&lone .;-..'" ;
"'- lndid:no (I 10 lndlrinl · ','.,:"
.,..
r 18" ) 1000.1000 WI,,: ric_ I RAS , )~;
I CAS
\ 'H I DIO
PL
• I A.m.plif I
I
"
1 R/V
.ifl
~'J'J ~
,.J.; .
~
,A~.',:
IncUriz%o (
COlOlUll' )

..
t d .. lO "
~,

·..•...
~
~,-~

" ~
Figura 3.4 A sinistIa viene preseutata. la. struttura della. cella elementare. A destra. "If
',;Jo'.,
Porganizzazione della matrice di una DRAM di IMbit, con l'indicazione dei piedini. ,:,.:.!i,.
.-"
'""ii
.... ~

, '"'
·I'~·
'.
In questa modo e possibile dimezzare il numero di piedini necessari per l'indi~ : ..>~
.-',
rizzamento, a spese perc del tempa di delo - il tempo necessaria per completare ".''-i
{:; I;
un'operazione di lettura/scrittura. I castruttori fanno riferimento sempre al tempo ....i'~l:.
-·"r
d.i accesso, queUo stampigliato suI contenitore per intendersi, doe il tempo necessario ,:'f-:
"", I',
per acquisire gli indirizzi (riga e colonna) e accedere al dato. Nel caso delle DRAM, ,"
-;~' '.

come verra illustrato pili avanti, ~ tempo di cielo .maggiore der-""t-=em=='=pCoo"'di accesso.
e ;;;;.1'

••
.''j""
",'"
.'·,t
.;
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
'''l
..":-~
:<,:1'
,

CPU, per la gestione dei bus di sistema4 • In passato, prima dell'avvento dei com- , ~I.

ponenti tipo bridge veniva usualmente impiegato un canale di DMA per generare i ".-'
",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 .' .,.
:-.i.
ne8suna precauzione. Residuo stanco della cattiva reputazione deBe memorie dinamiche e il controllo -
·.
della memoria al momento dell'a.ccenSione presente su ogni PC IBM compatibHe.
"Tali componenti vengono spes80 denotati col no.me di bridge. ; ;~-
~-;.

;~I
\ ~;

I
_ ..
,'" 'i
-. "

.;.':','
)"'
, La. memoria principale 83
"

..':.
._.

.. ,.
, ,

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 se~pli­
,., ficando gestione del multiplexer degli indirizzi esterno. Alcune memorie permettono
di optare fra pio soIuzioni predefinite nella gestione dei deli di rinfresco.

3.3.1 Un esempio di memoria DRAM

Le caratteristiche delle DRAM verranno esposte in riIerimento a un ipotetico integrato


da 1 M 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.
" ... '
c. '. WE Bcrittura in memoria.
• DE abilitazione delle uscite. ,
Per individuare una cella devono essere specificati riga e colonna. Per motivi
.di comodita. costruttiva la griglia e sempre quadrata, in questa caso 210 x 210 =
1024 x 1024 celIe di memoria. Pe~ere una cella si presentano, sui piedini A o - A g ,
-. gli indirizzi di riga e si asserisce RAS. Si aspetta che aia trascorao il tCE.O tRAH, si
pongono BU Ao ....: 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 Ao - A9 6 .

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.
'
. ,'~~11.
....":1"
;,.:':.j
84 Capitola 3 ""'
~;"i~
, :.~
rI - -' ;'l(

,,:..-;11'0', I
'"c
! :
':~'~)I
,-'
)"
'·1'
";' :.,";
'~il

i -'\ \ \ -' \ .;. ~


\. RAS \ \ 'to . ..:, ,:'.
\ ,;.~~,
,,~~~,
<~
1••••••_.. -

, "'jj
'(CAS ' \ _ ""I
, , .-j"
, JUH
--;1 ',",
):. '

COLONNA ,,' j
,""',,
· ·l,
'.'
""'!"
l
".
_"'o,J.
',r:j.
• , "".
nfi'E ' ...... ,'",.
to
,~.
:.'n.l

DATO YAUDO
.',jJ;'
.,
"c'
...1
..
DOUT ::.'
~!l
'"'l'!'i'
· .~\.~
"'{~

"" ..,,.-:\j.,
.,
Figura 3.5 Tempadzzazione di una. operaziane eli lettura. di una memoria. DRAM. "S~j
";i
· .."~
Per rendere piu veloci Ie DRAM sono stati escogitati alcuni modi cli. funziona- 'l~~
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 \f~
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· ,i1
t e e atn~e~memorie..-11nnovazione piu significativa, e . ortato .:~~
un vero e proprio salta ge..Qerazion~pM~tettt1t~ t±eH-e-B'R::A:M='st1 yecificato ,'{$
l'introdu' De sui mercato delle DRAM sincrone. In questa caso, come vedremo ~~1
cia e aggancia il clock esteino per -~..~
u

pin avanti, 13. memoria ,.


sincronizzare Ie operazlOni i e fasi '!:J
di lettura sCIlttura m un ben determinata numera di deli di clock. ,:(~
<~
'.'
"-""
.'I
",
Consumo L'aspetto che vale la pena di rimareare e it consumo specifieo. 11 eom- .y~
ponente AS4C1M16E5 consurna 0,740 W. Tenuta conto che la capacit" e di 2 Mbyte, .~
~ba , . . •
P_
_ .Potenza
. d1881pata
, __ 0,740 _- ,
0 361mW/kb yte (3)
.2 :'
DunenslOne In kbyte 2048 ;,~
.'"
Si confronti questa dato con quello relativo alle SRAM.
, ···
. <
.
:.
I

, ':' ~

3.3,2 L'interfacciamento con il processore ,


"
;

'
'.
.
Per l'interfacciamento delle memorie dinamiche can il processore non esiste una solu-
c
,
.
zione standard. Le soluzioni pili comuni sono Ie seguenti.
t.l'•~.,i;;~ft:[·;:- ".
~Ml;f. ..t':-·:-",-;"
l~;~~~;i~~,'
'".,,"-
,~I,.:
1
" '~"'-",
,"C'-' ,
". , La. memoria principale 85
"... \ ..
".'.'~,'"
, -:,
.': . ,.' \
. -'
I'
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).

., _~ 2. Impiego di uno specifieo controUore di DRAM. Per esempio, nel caso dei sistemi
e
SPARC monoprocessore, disponibile il controllore ME 86980 che interfaccia

.
l' " Ie memorie DRAM con I'MBUS (un bus de&nito dalla Sun Microsystem, su cui
e collegata 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
.
1 ••
· di eantroUare i trasferimenti con la memoria centrale e can la cache esterna alIa
' (" · CPU.
''
~ ,
~

,
, .':
.,
· La soluzione autarchica, consistente nella progettazione della lagica eli contrallo
con' componenti standard, e tendenzialmente da evitare per Ie complicazioni che essa I
j :' eomporta.
i
~ ..

~";
~I'
t .

~: 3.4 II dimensionamento delle alimentazioni.,


W:: di un sistema di memoria
~~ '.
-~.' : f
:~;
~(.
1~;
~¥.' •~sempio 1
$. Dimensianare l'alimentazione per una memoria di 1 Mbyte (parole di
1~; . 64 bit).
~:- Ttattandosi di una dimensione ormai piuttosto diffusa per una cache, l'esempio
:J verr" sviluppato solo in riferimento a una soluzlone can SRAM. L'integrato AS7C34096 \
~~ ,i"
~~ :
ha un parallelismo di 8 bit, dunque per realizzare 1Mbyte occorrono (1024/512) = 2
'jl '. i"ntegrati. .
"1
IJ ' .
," , ·.,Poich. il consumo ,pecifico della SRAM utilizzata e L29mW /kbyte, il con,umo
~1:1:­ . ~omplessivo ~ dato da:
~~ .. ,
,-

• P = 1,29· 1024 = 1,32 W.


~:l;:
'1.
'-J: ..

"'1" .
.·if·' .
.
. Del restOI si poteva cakalare in questo modo:

P = n . f" . V" = 2 . O. 200·3,3 = 1,32 W.


I
··'t .,
." ,
I'
La corrente totale di alimenta:;zione IT vale:
~I
':·"1'
~"l,
;•. ~;
"'~ .
", ,,
IT ,, n· I" =2·0,200 =0,400A.
',t,

c"". .
. fl; .

,·G '
.,~i!
'!
Nel calcolo precedente abbiamo trascurato il consumo della eventuale logica
aecessoria per la decodifica degli indirizzi. I
86 Capitolo 3
W)!l,'1';;'1
I ~·~·
~
.,"~

'·J<l
"'~;
: ':f,
'~'>: J
Esempio 2 Dimensionare l'alimentazione per una memoria 64 Mbyte (parole di 64 )/."
",";

bit), tipica dimensione di una memoria centrale. ,p


',""-
.,(:
Se tentassimo di realizzare questa memoria con la SRAM AS7C34096, si avrebbe:' ·~
,.
,,:;
P = 1,29·65.536 = 84,5 W.
':,t.':{
con una corrente tota.le f~ - ",-S

Ir = P/V" = 84,5/3,3 = 25,6A (3.3) ".


,
.i,,~ ""
" ,,',
.' ~
A~<)
e
Si vede subito the, anche a prescindere da considerazioni di costo, nOD proprio -....,' .f
., ',
il caso di usare RAM statiche per la memoria principale. Va inoltre considerato che '~~y ~':i.
. -f. '.: ;
gli integr.ti sarebbero ben 128 (64 Mbyte/512 kbyte) , occupando un. superficie circa ''':I' ,.. -
,;>f -
' •." I'"
\ 4 volte quella occupata dai. 32 integrati necessari per la stessa memoria in RAM '''L~~ ,...
:,i~ 'i:•
~~~ ,·-'
dinamica (vedi sotto). -;".j.;} ...
"'~'~
", ~.~ , :
Vediamo ora cosasucced.e us~do memoria din~ica. Can il com~onenteAS4.CIMI6~5, ~.~~ r>
per fare 64M?~ orgawzzatl come 1 M da 64 bit, occorrono OVVlamente 32 mtegratl. ,'~~~ ,?:
L. patenz. dissIp.ta totale e ."'~ .:' ·."h "
:~~ :~
P = 0,361 . 65536 = 23,7 W :ij :'.
Quindi, la corrente assorbita e: :";,: \

_,>, .,
'~~'f I",
",~. ",
Ir = PD/V" = 23,7/5 = 4,74 A \~ .
." .
,:.~. ,
circa 5 volte piu piccola della corrente assorbita daJla soluzione con SRAM. Dal .tj\ •.
confronto, risultano evidenti Ie motivazioni per Ie DRAM.

···~r·
,:'r'~,
·,it "
3,5 Organizzazione I'
1",.
',".'
~
,,.~ ,.
..

"1" ,
• ':-,1 .
·,,,,,.
~

Nell'organizzazione della memoria centrale sono determinanti i seguenti aspetti: ";"


," I ''
'.,r
.~
,.
a) tipo di integrati impiegati, parallelismo e loro dimensione; ·....". .'
1-'''
'I .. ~

b) grado di parallelismo del bus del sistema e dimensione complessiva della memoria. ..,
~." :
"::~
..

·, "'
I Per semplificare, nella parte che segue si fa l'ipotesi di impiegare sempre integrati
con parallelismo di 8 bit (un byte). L'ipotesi non e in alcun modo limitativa, in quanta
un diverso parallelismo camporta. solo un diverse numero di integrati da sistemare in
,,
! .e
,;., ..

.. .,;,
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. 'Jo,' ,
'il"'I .'
E costume misurare in numero di byte la capacitA 0 dimensione della memoria. "'".1'
:1 I
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. '·;1'
·
, .',1-'

I 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
....1..

"
'l
contigui, come schematizzato in Figura 3.6. . •

j
,I:
Un maggior parallelismo aumenta le prestazioni: con 10 sviluppo tecnologico si •
e cool passati a. bus dati di 16 bit, a bus di 32 bit, fino ai bus a 64 bit della gene- ,'Ili,

razione corrente. L'aumento del parallelismo presuppone cbe i bit mena significativi ,.,:1'
' •.
I>

I
"1'
\1'

I
I~l"'s.",j••.," "

':r~' ~. r:;' .
l~~~~::;:_·:~:."_:'
~.,.,.,.,
···-.:·
- _ _--------------------
1•.'"I\\'!,
.. ,
"< •. _~,
,\," ~L~':..:m=e:m::o:'i:,,-,p:':in::ci,,PCa.l::.:e,-_8C7_
l,~·i:~·i' ~::. •
;;;"':""!~ .i
,·j~·-;··,;"; ..·"" '
J;l"':: n'7"~,4. ..
".-,"'.}-'-,!
;'- .• ",>
pf:'':':" ...:"
:~
""> Indl..-l < ,
-.: - \t,'! .':; ,
;,".. ", .,.. ,',
~;;_J;:::. '",
,: /," ;.c....."
;_:-'~;:~ ;',:':
':
3
I In....
I
'''.o .~ ..... "'-"'_ I
.
6 6 .-g
{". -''-''~~::-:'._\,~
~1
In<C>
I I <> <> <> <>
S',;'-, '-.- ' ....·L 3 2 1 0
"r;";- ,
~
,'
.'
.' 1
):":
f'
. -,
-·c".-
o
,:- ,
.' "

.'~: Bus Do tl
;,':1::.
-,.; ' . Figura 3.6 Organizzazione di una memoria a 8 bit (integrati con parallelismo di byte). C
- •
"
.\-:.
•• -:· .',
'
e la capacita. del singolo integrato, L la capacita della memoria. A sinistra. viene illustrata
. -.• ,

'j"e. '_
'.- .. \. 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 decodifi~ati per selezionare l:in~e~a~o co~risponde~te, l~ .resta-uti. In (G) linee del
'

:,;::.:~: bus degli -indirizzi vengono callegate aJ. pJcdini comspondentl. sugh mtegratl.
': ", ...
"~

~~ ;:
.',,:.: '"':..
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.

.,
. ....
I
-. -...... _.. I .
,

." .
'" ifi ill
v
[

3
,• ,• ," •

2 1 0 Bl
"
3 2 I 0 BO

' ~
," ," ," " .
M

Bus no:tl

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
e selezionata 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.
.
'
.. " .("
\:
'.:t.
88 Capitola 3 :)1
,·\,.,
:",
.i~
·-,,,I
" .-'
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 bus7 .

":<;
.:";':"
3.5.1 Interlacciamento '"
- ;.';,
·:..: 'l
/';:.
: f~~
Abbiamo vista che la memoria, in particolare la DRAM~ne dei vincoli temporali ':,jJ,:
alIa velocita con cui possono cambiare i segnali (RAS e CAS). ·"'::
,"".
':"'-'
n problema si pone per~he la CPU genera normalmente indirizzi consecutivi 0 , :~.~
comunque indirizzi che individuano posizioni nella stesso banco. II vincolo eevitato se - ..-;"!.
-' ··r
indirizzi consecutivi ind~viduano parole in banchi diversi, come illustrato in Figura 3.8. ':'}
Questa tecnica viene detta interlacciamento (interleaving) della memoria. '- :~'i
":,;;:;
-, ,'I.
.~"
, ,i',"
"'-,i
-' "-
B rd "~,'

=
- ""
In(Cl -·
'-:':

.;;"
-'------.--_._-
I lndlrlzzo .ntro Il boneo I Ii hnco I ,
'<;~,

:;':~
B, ,
Y."
',' ,
.:,",
e" ' ':,"
·,:,::.-
·,::S~

I i IBo
,;,p
_c,';j
"it:
• .,.~
:~<}
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. ·"·
'::~,
,:."i
',.
/<'1
·
""
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 ,""1
.! ,
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.. .

,.

.
1La CPU 8086 non vincolava all'allineamento, rna cia era. fonte di inefficienza. Si veda \'Appendice
B. '

,
"11"'.: ;",.",.;);"

:::: ,,:........ ;. 1
La memoria principale 89
1 '
I.

3.6 Relazione tra la velocita della CPU e la velocita


I
della memoria
Un metodo per stimare la velocita (tempo di accesso) di una memoria da accoppiare
", ,-',. a una CPU e quello sotto esposto.
- Si indichi con f la frequenza di clock della CPU e si supponga'che ogni accesso
"l-
'
~,'
>,
'in memoria richieda, da parte della CPU, N dcli di clock, pari a un tempo:
N
I
:" f
t=
.:',..
- . --
-
Supponendo d.i trascurare in prima approssimazione i ritardi introdotti dall'even-
~. '
.~z··
tuale logiea di decodifica, per una memoria statica e sufficiente che
r tACC < t (3.4)
}~;""
i ., -'., dove tACC e il tempo di accesso alla memoria. Per una memoria dinamica
;. :.'
" ,
tRC <t (3.5)
" .
,
i dove tRe e il tempo di cicio della memoria.
-
'
-·:~.'­
Ovviamente, se Ie due precedenti r~lazioni non sono verificate, ovvero se la me-
moria e lenta in paragone alIa CPU, oceorre inserire un numero d.i cieli di attesa (stati
I
I .
"
, di wait), N w , in modo tale che si abbia:
~ N+Nw
,',"
t = ~ > tAGC,tRC (3.6) \.
".-
~ Si noti tuttavia che l'introduzione ill uno 0 pin dcli di attesa ha l'effetto di
p
ji
t:
allungare il tempo di aecesso di una quantita pari a N w / f. La penalizzazione tantoe
~: 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.


:1',' ' e
Per tale motivo, non sempre l'aggiunta di deli d.i wait la migliore soluzione. In
··r,i !., certe situazioni, piuttosto che introdurre cieli d.i attesa, puo risultare pili eonveniente
"i:,I'
. ridurre f, in modo da avete un tM migliore di .queUo che si avrebbe con l'introduzione
"l".1. :, ".:, del wait.
. Di questo' e di altri aspetti si parla nel paragrafo seguente, dove si esamina, in
:;;I' · .dferimento la famiglia 8086, come si e evoluto nel tempo il rapporto tra la velocita.
· della CPU e velocita delle memorie dinamiehe. .

.'···f
'j .

~, ,
1
. :. ,
,
, 3.6.1 Caso di studio: evoluzione della velocita della famiglia
.,'··t
;'

,
..
"',J!
,.,
'
'
8086 in rapporto a quella delle DRAM

, In Tabella 3.1 viene riportato it valore di t per differenti modelli (fino al 486) di
r
'; .. CPU della famiglia Intel 8086 8 . Lo stesso processore compare pill volte, in relazione
• 'a differenti versioni operanti a differenti frequenze. A~eune 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
,., ,
·.~I"
.".-'
\1 " ;
8L'Appendice B e dedicata a un esame appr~fondito dell'architettura Intel. j
,(

1
'~
!J
\.,
90 Capit<>lo 3

\
valori plausibili, corrispondenti a integrati venduti in grandi volumi suI mercato, eun
buona specchio deU'evoluzione della tecnologia degli anni recenti. . ,'.'. \1J
";~"
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. ,2".
... ~

· ';
n primo PC IBM (1991) impiegava il micro 8088 can J pari a 4,77 MHz e montava 301 .
"~
DRAM 64kx1 bit, can tempi <Ii cielo <Ii 350ns. La CPU in questione impiega 3 cieli ....
':;J
,

'~'I
di clock per ogni accessa alla memoria. Come illustra la prima riga di Tabella 3.1 non · "1
',\. '1
\ c'era nessun bisogno di deli di attesa. ~j

La stessa tabella riporta i valori di t per la CPU 8086 con J = 10 MHz, frequenza
massima per cui e stato prodotto questa micro.
",\:,'." I' ,
-~!
.' -j-:
\ ....
:',.'·'1,
,.'

8~
MIrZ) N Nw t (ns) IRO lns) ,I'

8086/88
5
10
3
3
U
0
600
300
350
),'
-.'.

,.,
.., ~~;

f ~~.
.",

80286 6 2 0 330 300


80286 6 2 1 500 ·"'"0..:-.:1
, •.
tso28~6 12 2 0 167 1 0 · ~'.';
-. '~"
80286/386 16 2 0 125 'c'

\ 80286/386 16 2 1 188 -. '~

....
8U386 40 2 0 5 100 '~I'
80386 40 2 4 150 ...'1
..,I

I
~-~
80486 25 1 0 40 100 -,1
,\;
80486 25 1 3 160 -'' <
.,--,
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 :'~{i
sottoinsieme delle versioni, operanti a frequenze crescenti, rilasciate via via dal costruttore. ,'",
~ :

·
}
',4-.

I "<'i
" ,
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: ,'.'~
I N 2
, ",~
~

I= f = 6. 10' = 330 ns (3.7)


--.

I 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 j
anche il t per ]'ultima·versione del 286 prodotta (a 16 MHz). -
1 n micro 80386 introdotto nel 1987, nondiversamente dal 286, impiega due cieli
,

t
~

d.i clock per leggerefscrivere in memoria. Originariamente, la frequenza era pari a ,J


~
."
't = (N + Nw )/ f = (H 1)/(6 .10') = 500 ... .
,

I
~""~4'>r ,-,-
J>o:~: '!,.,I'p ,:
\.'..
,.",'I·....·' ,,,,
"~' ,~.:"
..
.1. 1 _ • '.-

;,<~.;. ":> ~ ')


La memoria principale
. '... ..._--------------------------------------_::=-=::=::::::=-~::::::'::::=-_..:::
91
...
-'i
..... '-':~:
'

· ..
'. .
',' ,..
'

.;,
••
•: cPU , J (MIIi.) , 1.u. (MHz) , t (ns) , t,u. (ns) , tRO (as)
" Pentium 66 66 15 15 1uu
~" 133 66 7,5 . 15 100
Pentium
Pentium Pro 266 66 3,8 15 80
...• 400 100 2,5 10 60
.- "
Pentium II
Pentium III 733 133 1,4 7,5 60
••

Tab~lla 3.2 Frequenze di,clock della CPU (f) e.del bus esterno (tb"~) per i microprocessori
di c1asse Pentium e Pent~um Pr~. La separazl?Oe tra frequenza mterna (della CPU) ?
I',
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
problem~ elettromagnetici indotti delle armoniche di ordine superiore.

1•
. .
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 e i1 primo esempio di CPU can cache integrata. II 486 non e un
,il·. l vero processore RlSe l rqa ha molte caratteristiche che 10 rendono paragonabile ai
}I'.- ' roSC. In particolare, ci sonG alcune fasi in cui l'accesso alia memoria si compie in un
solo ciclo di clock10 .
iI " Con il 486le cose diventano insopportabili: per usare una
, , DRAM con tRC ;;:: 150

",.,
'~I
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, e fortemente consigliata una cache
~ - esterna, in modo da evitare tanto spreco cii capacita. elaborativa.
"~.a
~ •. Vale la pena indagare anche neUa direzione schematizzabile con questa domanda:
-i·' Ufissata 1a tecnologia delle RAM dinamiche l ovvero per un dato tRO 1 qual la massima e
.. frequenza di clock aHa Quale puo essere portata la CPU senza che si rendano necessari

';1 uno 0 pill statio di attesa?ll.
...,
'r 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
j(
-,'i•.
t
~··r.
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
J;
~j':'.
interessare la caehe - pereM, per esempio la cache e disa.bilitata 0 perehe si tratta. di una. zona non
• Cl1~heable (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.
,'I.·

~I
92 Capitola 3
';

accesso, si ottiene: "'-,,~,;


,'
f=-=~
N 2
= 13,3 MHz (3.8) ';~J
.. ,
:
tRe 15· 10-'

3.7 Localita, organi2;2i8:zione get at chica-


-

loLa capacita., ovvero 1a densita. di integrazione, quadruplica ogni 3 anni 13 .


, 1
._," La memoria prindpale 93
; ;;:..~;}.:-; ,-,-

"
',-'\:---

;.,. . ,'."l' 1
.' .... o La velocita cresce di circa il 7% ogni 7 mesi, ovvero del 22% all'anno.
::"~,
-
.
• CPU. Le prestazioni aumentano da un minima del 50% a un massimo del 100%
.all'an no . 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.
]

, Dati sperimentali sullJesecuzione dei programmi evidenziano che I riferimenti aHa


memoria gadano della proprieta eli localita spaziale e temporate.

-.• 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
I
e che i programmi tendono a generare riferimenti a zone d.i memoria consecutive
o eamunque vicine fra 10ro.
I
.". 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, n~I 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.
I
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
I
-,.(relativamente) estesa memoria principale, real~ata attraverso componenti DRAM,
e in una piccola memoria SRAM, can funzione d.i cache14 interppsta tra il processore
e 130 memoria centrale.
I
Gerarchia

n principia di localita suggerisce d.i organizzare Ia memoria in mode gerar~co. 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
I
. 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
,
~

:\:
94 -Capitolo 3 :J
I "';1 ..
"f:;! , '
~d
, .,
-,-i~l 1
costosa la corrispondente memoriaj tanto pill e basso il hvella nella gerarchia) tanto .... "1'1

I meno e veloc~, piccola e cos~osa la co:ri~P?nden~e mem?ria...


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
," -PI"
. ;~~:
: ::,:iil,
direttamente trasmesso al processore 15 . In caso contrario si ha un miss e Decorre ':~::{ ...
"
ricercare nella memoria di livello inferiore. Si definisce ':.~\~ ..
",~I
\ -;1\.
• tasso di hit, e si denota can h, il rapporta tra il numero eli hit nelliveUo superiore " ~:
:1',
e il numero totale di riferimenti j
• tasso di miss, e si denota con ffi, il rapporto tra il numero di miss nel HveHo
- '. -~"
. "t,
. ;~
"'I'
"'1
,;,-: '
\ superiore e il DUIDerO tatale di riferimenti. "~;..:
_,0\ ,

. ',':
. ",..':,.1
Ovviamente, vale la relazione: , ~.,

m=l-h (3,9) "I


,,;-:.;'1 '
,"
, ",l
",1
-·-:i:
'

n trasferimento di informazioni all'interno della gerarchia avviene tralivelli adia- . '~1


centi, can tra.sferimenti in bloceo. La Figura3.9 schematizza questa meccanismo, "-';'.::]~

I Quando il date viene trovata nel livello inferiore si rende necessaria l'aggiarnamen~ "-';]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
"

B
- '"'.
,j11
-~~,j
';;'~.,

I blocch
))1
'-.
'C,,i
A
·c....
")1, ,\',

?~"
livello ·'1 .
I interlore .;,
.,:.;,

Figura 3.9 Organizzazione gerarchica. della. memoria... ~il'


::8
'" 1

.
I
",,:~
'~
,
"1'1 ,-,-;;,
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 ,:_\1,
"
'!
"'~
blocco dallivello piti basso e per trasmettere il dato indirizzato al proeessore. Facendo ,,il
.',',
I
'

riferimento alla Figura 3.9, assumendo che i1 Uvello alto sia una cache e che illiveUo
,"e,""'1,
basso sia 1a memoria principale, il tempo medio di accesso alIa memoria, f, puo essere ;<:1
,..,
espresso come:
t,.
'",

t = h ' + m ' tp (3,10) '.'i~


"
"~
'-'
,·1
\ dove:
'. l
til: tempo di accesso al livella superiore (comprensivo del tempo che si richiede per '"At'
,
·'·
"

determinare se il data si trova a questa livella);


~I
" ''Jj

15Si ipoti:z.za- una. operazione di lettura.. ',,'I
-', ~~,

t
.,....
_____
- ~, ~J'
- c

- /(,....,.. .- ')
"
.::'~'~~"..'"
~

I La memoria principale 95

1 ~l, , .
. 'I
:-,"
tp , tempo di penalizzazione, combinazione del tempo di accesso a1 livello inferiore e
.~! del tempo necessaria a trasferire il blocco dallivello inferiore a queUo superiore.

,
Risulta evidente che per ottenere i benefiei dell'organizzazione gerarchiea, ovvero
e
,..' deWuso di memoria pili veloee ai livelli superiori, necessaria che h sia il pill possibile
,_ prossimo a I,
Nel caso di miss, la ricerca nellivello inferiore puo ancora dare luogo a un ulteriore
~iss, 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 porta~o 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.

:-' ':
,':'. 3.7.3 Un esempio di gerarchia
(';, '

A conclusione di questa sezione, viene ora presentato un esempio di gerarchia di


1' memoria (Figura3.1O), L'esempio si riferisce aU1organizzazione della memoria di un
, '
calcolatore personale basato suI microprocessore futel Pentium II (333 MHz). I dati
i[' "
A', 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
i,"

,,,"
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
e
memoria di 528Mbyte/s 16 , Una tale banda passante del tutto insostenibile per una
.
e
DRAM. Per questo motivo stata integrata sullo stesso chip una cache intern a da 16
.1., + 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 e stata prevista una memoria cache di secondo
livello. - '
,
11
,, gerar~
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.
l
'tI
·'~/.:

I 16Si,tra.tta. ovviamente di una. stima. ottimistica, da. interpretare come il limite superiore, corris-
JIj 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.
'It
96 Capitola 3

--
CPU T :I: 3ns <333 MHz) 64 OIt
.. '::)j
,(,~

40 regls1:rl do. 64 bit :>1


.. ::~
-'1,
Cache interno. do. 16 -l- l~ Kbyte
(dati e Istruzlonl) - 333 MHz
64 bi Controllore cache interne
333 MHZ - 528 Mby~e/s
\j:j
of!

Co.che esterna do 512 Kbyte


SRAH 6 ns
,. OIt Con troll ore cache esterno
333/2 MHz - 264 Mbyte/s
.
:;(~::
: ;,_.

,;f::
Mel'1orlo. centrale do. 128 Mbyte 64 ~It Control\ore Mer-'lorla. centro.le
.:,.I
EDo DRAM 60 n5 bursi 5-2-2-2 66 MHz 180 Hbyte/5 ,,~jl1
'il.
,
~
DIsco rlgldo do. 8,2 Gbyte 8 bIt Controllor~ r-'ler-'loria dl Mo.SSo.
ve\oc1tO 10 Mbyte/s SCSI ?;i~1
\~~~
::it
• w,
Lettol"e dl CD-ROM do 650 Mbyte
veloc1to. (24x) 3,6 Hbytels
)j
,.:.ij:
Figu.ra 3.10 O:ga:m~zazione gera.z:ch1ca della ~emoIi~ in un calcolatoT.e personale con CPU '::::~';;l
PentiUm II. Per 11 slgnificato della sigia 5-2~2-2, 81 veda 11 paragrafo relatlvo aile EDO DRAM. ':'~J
;,)111
::~'1~~
3.8 Rassegna sui principali tipi di DRAM :·":~
commerciali '/,,9y,:
;~~
" '11 I" ali . 'ch di at 't" d' r ' d' DRAM" '::{!l
D1 segwt? ~ono I u.strate e pnnClp . c~a~tens~l e. cum .lpl ! Ipl I, ~t.A
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. ':':}~~1
:_XI}1
.,
''''
"~

3.8.1 DRAM con accesso a pagina :5~1"~:l~


",~,Y

PMA - DRAM (Page Mode Access) La modalita di accesso di pagina eottenuta,;~~ ,.


mantenendo attivo ilsegnale RAS in modo che un'intera pagina di dati sia tenuta sugH ,]~
amplificatori. Nuovi indirizzi di colonna possono essere sincronizzati ripetutamente /~1
iterando solo il CAS. ":~i(
, "
.....
(.' -;
. ,'.t'!l
"'"'"
'".,
'"."

FPM - DRAM (Fast Page Mode) La modalita di pagina veloce, costituisce una:~
evoluzione della precedente. n miglioramento e stato ottenuto attivando i buffer di 'l;~
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 '~~~i
quando il CAS e alto; non c'e bisogno di attendere che CAS vada basso per iterare.'.:,~~
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 il"~~
4° dato della pagina selezionata. ,::'d
ii'
''''j
"~\'
M"'>"':'
,-- -"J~-"'~':'-' ..
:·'I~IlJ!l!?:;;t.;"--
:~~~~~~~~;?;:.: .;;:,, 1
";~~'{,";;-'~'~:~ La. memoria principale 91
. ,,,,.'. ,....----------------------------'-----'----'---'-
~tl:,~::::,;
. ',;,-,:.;' .
<.:'J';'-::;;"'~:_
1
'rr <,' ',,"
Ih ~.,.~,,"':' -'.
'n Fast Page Mode estato un metoda di accesso utilizzato molto diffusamente per
"', .~" ..-:.: Ie' DRAM ed e ancora utlliz~ato.su mo~tl slsteIIll, an<:he s~ ~~ !e m~on~ !PM sono
,1.
r
, '. s vate solo a Quei sisteml che non nescono a gestrre tlPl d.i memone pm avanzate
.\.>,::;'~; ::~,_.: ;; esempio su siste~i basa:i ~~ microprocessor~ 486). A causa de~a ~~mand~
I,:,. '::,>.....,. r~itata l'FPM e ora In effettl pIll cara della magglor parte delle memOne ptu veloel
I
:::'.'.-::< ~ttualm~nte disponibili.
'

"1 - .. -._

<",':EDO _ DRAM (Extended Data Out, chiamata mche Hyper Page Mode) \
I~!., sr tratta. d.i una variante della Fast Page Memory. Mentre con le FPM la negazione
,(/." . di CAS disabilita i regis~ri d~ ,usc~ta e. re~d~ i d~ti no~ disp0nibili l C?D Ie .E?O 1a
,~" ': .'.. negazione del CAS non dlsabilita 1 regtstn dl Usclta, e 1 dati restano dis"pornbih fino
~;::-.f " _a. quando non viene nuovamente asserito CAS, cioe quando sono stati generati sia
1: '.~;,' ,.. -. iLnuovO indirizzo di riga sia it nuovo indirizzo di colonna. Oio permette di arlottare
I
:';",'::: '.":'; '.. temporizzazioni ~iu stringenti per il ~AS: . , .
t" ", ': - '-. Le EDO arnvano a una. temponzzazlone 5-2-2-2, cornspondente a un mlgliora-
;;<"c"> meoto del 20% rispetto alia DRAM FPM, Le EDO hanno praticamente rimpiazzato 1
j:..,',': : ',": ,; ie FPM" (delle quaii mantenevano praticamente invariati i costi di produzione), di-
;',.:, ".. .::". vEmtando ,10 standard. pe.r PC co~ bus a ~eque~e n?n. superiori 66 MHz. Oltre tale
.' :":' , 'velociU. dl bus, esse ncmedono l'mtroduzlone di statl di attesa.
,:,'~' ,L'evoluzione delle EDO sono state Ie BEDO (Bu"t Extended Data Out), Esse
I
.~' : "'.t' .. sono equipaggiate can una logica di cantrollo e tempop,zzazione interna supplemen-
~l1.·" ,':", tare ,.in grado di generare autonomamente tre indirizzi consecutivi al prima, fornito
",' ~ ',tramite Ie !inee di indirizzo , il RAS e il CAS. Si e arrivati a una temporizzazione
'<,;' 4-1-1-1,.<on frequenza di clock di 66MH~, Thttavia Ie BEDO non hanno avuto un ap-
" ,,'," "rezzablle succeaso, a causa dl pohllche mdustnali che hanno pnvileg>ato 10 sviluppo
I
,,;.',. :"" delle memorie sincrone.
' .,,'
:.:",;, ',", ,
:' "
I,
'\1''
'. " 3.. 8.. 2 Cached DRAM
,

1- ..
Un'altra tecnica per accelerare l'accesso ai dati in memoria e quella delle CD RAM
~ I:.,','
' \
Y" , (Cached-Dram), Si tratla di RAM dinamiche che presentano sull'integrato una RAM
': statica in funzione di cache. n miglioramento di velodta e dovuto anche al fatto che
, la porzione di cache e in grade di gestire intensi Bussi di dati dalla Dram interna

;
1l""
"( ~,.'
:" ",
'

,,,-
,;'. attraverso un ampio bus interno, per esempio a 128 bit, contro un bus esterno a 16.
"La
,
cache e sincronizzata da un clock esterno (che puo raggiungere i 100 MHz). I
l ,.-" . ,-

, 3,8.. 3 SDRAM (Synchronous Dinanllc Random Access


I
",

~ '" -
~ ". Memory) - DRAM sincrone
;" "
i'
Quando ci si e accorti 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
~I:
W
e
una diver3a tecnologia. Si passati a una interfacda sinerana, secondo la quale, una
volta inviati gli indirizzi e atteso un preciso numero eli cieli, durante i quali la memoria
~I" esegue al suo interno Ie varie funzioni sincronizzate dal clock esterno , il procesaore
d" esegue la lettura dei dati richiesti.
'it' \
j ,',.
~"'
't!
~l\~}
;(/!·11
'·~·
.~wr
I 98 Capitolo 3

,_
.•:..,
f,t~
.. ,";~.
,'"j'
., "!
'.l"~

. Le D~ che hanno W1'~terfaccia smerana so.no conosciute genericamente COn ',::~. . ,;.~~!
I il nome dl SDRAM. Questa lllclude Ie CD~M vlste sopra, Ie RDRAM (~ambus
DRAM), ~e ESDRA~ (Enhanced SDRAM). E comunque stato definito uno standard.
JEDEC di DRAM smcrona.
:?'3. .•.~.,,
l~ ;~:~
,~ .\~
, Una SDRAM ~ED~C ha unl~nt~rfaccia sincrona controllata dal clock ,di sistema ,,{;~ ~8:':
I e mclude anche un architettura dl tipO du.al-bank'e un bu.rst-mode (31 bit, 32 bit,
a 4 bit, a 8 bit e a pagina completa). Un registro puo inoltre essere impostato
all'accensione del sistema e modificato durante il funzionamento per programmare Ie
.:..?J :·;:;;
A~l ;~~8
0:'"jl ..'.'
i'
di b t ( .al . t I . t ) I I h d 1b lid
modalit a urs SeqUenzl eo III er aCCla 0 , a ung ezza e urst e a atenza el '" >
(0'..
:~; :.(~
I CAS.
. . . . , .
L~ SDRAM ha presentato .mIZlal~ente molh ,probleITll ~l compatlblhta. I pnml
. .. , .'. ";;~ :(,/
".I. ' 7.~
~oduli. SD~M avevano due fu:1ee di cl?ck, rna. e stato venficato p~esto c,he .erana 'i. .? ~;,~
msuffiClentl~ conducendo alI0
sviluppo:¥ moduh a 4 clock. Alire dlfficolta SI sono ;\)J, .:",~
avute aJ chIpset contenentl 1 contro.lIon ' . . .. ,,oS! (,~'
Le SDRAM sono valutate ufficlalmente In MHz PlUttosto che In nSf m modo che /,~ :'3
ci sia un denomin~tore comune tra la velocita dell'integrato e la velodta. del bus.::f~ ':J
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 . .~:' ~,;:~
PC66, per differenziarli da quelli che si conformano alla specmca Fe100 di InteL . "~~ ':~\
,_, !,i
-)~ ': ';
I SDRAM PCIOO, PC133 Quando il maggior costruttore di microprocessori ha "£\1 ,:j
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 "'~I~~' ~:'
allora definito la speci.fica PC100, come una direttiv.. ai produttori per la costruzione :C..
;~
di modulI progettatI per lavorare correttamente can II propno chIpset 1440BX. ./~. ~~
Nel ~guit~ \199~), an~e C?~~ .risposta ~l'lnte.l, molti fabbricant~,di chips~t ;~ :~
hanno deoso di rilasclare disPOSltIVl m grada dl gestIre uno standard PlU veloce, 11 -:~J ::,

I PCl33, evoluzione del precedente. ,~~, ::,


;rn-~ ~+
-;:;!,' Y
"Ji ',':
3_8.4 Moduli commerciali :; ~b~ !;
I n primo Personal Computer prodotto dall'IBM (1981) era costruito su una piastra _~~ ,~
_'~~ 't:

madre che portava, 9 integrati di memoria (per un totale di 64 kbytc, pili bit di parita). ~~ ,~/
Per espandere la memoria occorreva aggiungere schede di espansione, IDontate sur .::~ ":
I bus eli sistema. Sulle piastre, gli integrati ,(nella tradizionale forma DIP, Dual In- -,_~~ :"
line Package) erano montati su zoccoli e occupavano ampie 5uperfici. A meno di t
vent'anni, non c'e PC, fisso 0 portatile, che porti meno di 64 Mbyte, con possibilita. .~ ~
di espansione a blocchi di (almeno) 32 Mbyte. Sono spariti gli integrati in forma '~' .~
\ DIP, sostituiti da moduli di espansione, piccoli circuiti stampati' con componenti a ~:~ '
montaggio superficiale, I moduli di espansione seguono due formati: SIMM, DIMM ;n '
e.RIMM:. 1: ·:;i
:i '
I .FI chipset correnti (per esempio, il i430TX e successivi) leggono la temporizzazione ottimale-
direttamente dal modulo.
/~ >
-1t ,
.'?

I ~:~1:S ~

,
''l:<--'' .
!:1~'" '<'
}lljPL'"
1I...···, '.
··~Jr~: .' , . ..
rS:·;~,:, _._---------------------.:L.:a.:m=em=o.:rI.:a-"p.:r.:m::c:cIP::al::e=----=:9.:9
~.....•" ..
~.,~t;;: ,.
',,~~,:v .i
.'"t,' .•.' .' ' ,

.,~~.:.':.
~~;' __'. - ,
! :.l~~.,; SIMM SIMM sta per C.Sin:g~e In-li~e Memory M~dule). n mod.ul~
SIM:M ?riginale
a,veva un formate a 30 pledlDl, rna e stato succesSlvamente sostltUlto dal tlPO a 72
~:0?:,' '·piedini'. Puo essere a singola 0 d?ppia fac.ci,a, con capacita di ,4, 8, 16, 32 0 anche
~ ..,':. . 64 Mbyte, parallelismo a 16 0 32 bit. Una tlplca scheda madre dl PC prevede quattro
e
::';";,:": '::, connettori per ~o?uli SIMM. 5e.il bus ~el PC a 64 bi.t (da!. Pentium in poi) sono
;'v .• '-,', 'chiesti come ffiImmo due moduh a 32 bit della stessa dlmenslOne.
8:~',",r. n
') >
' .,.... D1MM I mo u 1
.d I' DIMM (D 1 I /. M M d 1) h
ua n- me emory 0 u e anno sostltmto 1
. . . SIMM
,
>:,:'. d d I" d t' d' PC E . h 168' dini' d' . d til
~;\, . .~ ,.: divenendo.lo stan a.~ per 1ll us. n~ ~l. . SSl anno Pl~ lSpoSt~ su ue e
/:t,.~:,:. di contattl. 11 magglOr numero di pIedllll permette un parallehsmo a 64 bIt. Dunque
~UT't::.·; essi possono essere utilizzati singolarmente ed e tipico che un PC moderno fornisca solo
~~~J:'>:': una 0 due allpggiamenti di tipo DllvIM. Attualmente 10 standard e rappresentato dai
~,;:.;:,:..:. moduli DIMM da 3,3 volt (compatibili con memorie di tipo SDRAM, BEDO, EDO e
',' ,,~. j": 'FPM DRAM); una ch,ave suI connettore (una sagomatura) consente il poslZlonamento
3,'?i~',; "'::.. ' . ocabile.
J,~:,~",:<.""lneq~Jlv
;;(':'~;:.L'.·' :. ' . . . .
~:',.~,;~,,::.~; RlMM (il nome e un marchlO del
consorZlO Rambus). I moduli RIMM utihzzano la
\·t:;':·,> stessa specific~ del conn~ttore de~ DIMM da l~O MJ:Iz standard. L'idea e cbe il BIOS
,.'1'

i'/:'~"·> . ·,,debpa essere III grado dl determmare quale tipOdi RAM e montato (attraverso gli
;) ,';;);~"'uffid degli integrati di gestione dei bus), in modo da rendere utilizzabili i moduli
j\":";';-:"SIMM con SDRAM da 100 MHz in un sistema RlMM-compatible.
.~~;;,y~c . · ,
'hi~~f:~;:,':,,?", " ; . .
~~'r·::,,~,.-8 . ~. Controllo dl errore
~... [rr~;~~h.i"" ,.",
~~'S~f~}_~:J::ontrollO di. ~arit.a n contrallo di parita e la forma tradizionale del controllo di
.
,~ \;;.:~\:}'.errore. ~a panta viene valutata suI singolo byte e do richiede un bit ulteriore a byte
,:~'\~h,_'::. ;~, . (s~ veda l' Appendice A). In caso di errore viene normalmente generata un'interruzione
+~~;~"';': ~on m~che~abile(NMI~, ~er incar~care il sist~ma op~rati~o eli interrompere l'attivita
Y';"/';""::'-:':"m corso, eVltando qUalSlasi potenziale alterazlOne del datI.
:. i',t,.- '.
;F,~t:~';;·,;: ~ .
:;I. ::,:< .-: C - Error Checking Code n contrallo di parita non consente di identificare i
~,~:/.",<. -·~.-·,-bit errati e non e 10 gra 0 1 n evare un numero pari di errori sullo stesso byte. Per
/~::;~,;:': ;::'.1' q~este ragioni sono apparse memorie con controllo ECC. Con questa tecnica occorrono
:':"~" ' ' .' " PH] bit di controllo: 5 per proteggere un byte, sei per parole a 16 bit, sette per parole
"\~"':':;'~i~:' :,,~ 32 bit e otto per parole a 64 bit.
t:(~~:;: . Nei sist~mi mo?erni il controllo ECC viene effettuato dagli integrati di gestione
~\':/- ·...d.ella memona.. Ess) correggono automaticamente errori di un bit 18 senza fermare il
~,~\>:.,:.:<':,~~l~tem~.. Alcum possono correggere anche errod multi-bit al volo 0, quando db non
-:
'<>':\'~;' ,e possl~lle, possono forzare il riavvio del sistema automaticamente, con 1a memoria
':.:"';. < non vahda non mappata.
::~"",":',;' -,: " e
Oltr~ a m.aggior c~st~ ?ei moduli, illato negativo che il.c?ntro~o ECC comporta
';(i, una perdIta dl prestazlODllUtorno al 3%. Generalmente, l'utllizzo dl memoria ECC e
>:::: <.' 18 ' . . .. .... .
,1,{ , . La quasI totahta. degh erron dl memona. 51 rnarufesta su di un bIt
-,j\~::i'.
~'~~'~:/">:"'-'
'~~.""., ..
100 Capitolo 3

limitato aile cosiddette applicazioni critiche ed e quindi pili facile trovarlo su macchine ':::4
seruer piuttosto che sui normali sistemi da tavolo 0 portatili. ;~{

.;!~
:!l
''';~
\:'!;~
3,9 Esercizi
-,\".~
,,:,:::::~,
Esercizio 3.1 Si dispone dei seguenti integrati byte-wide (8 bit in uscita): 1 da·"'~.t:
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':),.
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 \'''?
da 64kbyte per uso con 8088, sistemata a partire dall'indirizzo esadecimale 10000. Si .i:~:'~
disegni 10 schema dei collegamenti compresa la rete di decodifica degli indirizzi. " ,:~t;'; ~
" ',.::.;;,'
Esercizio 3.3 Si disp?ne dei seguenti integrati byte-wide: 1 d,a 128 kbyte, 5 da ':~~'
64kbyte, un numera ilhmitato da 32 kbyte. Progettare una memOria da 640·kbyte per.·;,~·~
usc can 8086, sistemata a partire dall'indirizzo O. Si discuta l'aumenta di complessita:.?~:
che deriverebbe dali'avere un indirizzo di parteoza alIa posizione 1000 esadecimale. ;.. :;§i
Esercizio 3.4 Si deve costruire un banco eli memoria da 512 kbyte per una macchiri~:~J~
a 32 bit, che genera indirizzi sulle linee A31-A2. Per indirizzare i singoli byte di '.::,)
una p~o~a veng?llo. ~piegate 1~ 4 linee BE3,BE~,f~E1 e B~~. n ba~co di m~mori~>~~
deve in~zlare all,'md1Tlzz~ esadeclffiale AOGOOO. SI dIspone dl mtegrati byte-wIde ne~,,:,,~:~
seguentl for~atl e quantIta: .. . .. , ' ..'{;'
128kbyte, 1 mtegrato; 64kbyte: 3 IOtegrall; 32kbyte, quantlt" ilhmltata. .' ..,;"
8i d~ter~ ~uanti inte~a~i Bono ~ec~sar~ e di quale ta~lio (e richiest~ la soluzione ",:.\
cbe ~plega ~l nume[~ ~~~o), 31 d1segm 10 schema del collegamentl compresa la ,,:~.
rete di decodlfica degli lOdmzzL "~.
"'~
.t."
Esercizio 3.5 Si dispone di questi integrati, tutti in formato byte-wide: un integrato..;!
da 1 Mbyte; due integr~ti da 512 kbyte; un numero a piacere di integrati d~ 256kbyte:":~
Dlsegnare 10 schema dl una memoria dl 4Mbyte per una CPU 486. L mdmzzo dl ;;'..
partenza deve corrispondere a quello del secondo blocco di 4 Mbyte nella spazio degli.,::e
indirizzi fisici. ~.,

.. ~.~
. ,~
.. '~ :
,~'1
,.~.
',~
,'"
.:'
1
-
)
,~'<~" ./..'.> ".
't:::_:',c;::;,~-}\.·....
4
.t.2~/~: . ' . I
':\::. II sottosistema di ingresso/uscita
',,"" ~~-------------......,.-
,';:',' ,':~~::~~~;:-~.
.

..,', ....... ,,' ~


)
' ,<"", ',~'..,'" .' ":. ,
:"~::!_":~:',-"'~.'. '.:-
"'_.:~~',:~,:':;
<,·X,',.,·,' ..
.'. -:, '. x::~~::,_":''-.
I
:<·>7~.:"?·'L'" .
.,:.:. ..,:';;>...... . ." ,
?."f,!JI: sbttoslStema dl mgresso/uSClta (I/O, da Input/Output) e la parte attraverso la ]
'::.':.;:,;':;:))fqilale,Sl. e~phca 1~ C?mU~l~~lOne tra il c~c~latore e il m~ndo esterno. Fauna parte
~'.'.>,.'.\«dels?ttO.Slstema 1 d~SPOSltlvl attraverso c~ I uomo comUIDca can 1~ m~china (video
.:!i'..:,,_[,~:~.terml~ahl stampan~1 ecc')l c?rne pur~ quelli che servono alia memOnzzazlOne a breve e
,;"~",':~,:~~/a ..l~go temp? dell'mforma:zlOne ~umta a disco, nastri magnetici e~c.). La complessita
':";·::'J,.~:.:~.del.slStema dl mgresso/usClta vana molta a seconda delle carattenstiche architetturali
;:1tJ:.~·L~g~~7·si·ilgale ~acchi~e .. Nei grossi e ~edi calcolatori, it sottosistema di I/O puo
I
~~I1~.§{~\~~:e U~llta. speclabzzate nella gestlOne dei periferici, parzialmente integrate con

':~!>}r:~o~:"i~.i:·.In'questo capitolo I'interesse erivolto ai problemi di scambio delle informazioni ]


;'::_>f.;:::.·e:~i.gestione dei periferici. Vengono discussi i componenti essenziali delle interfacce e
?t,,".""{;::)~}:cn~che di, g,estione ?elle o~erazione di ingresso/uacita: a controllo di programma,
'!::;':, '?:;:'lc.c.o!Itrol~o, dt mte!rUZIOne e. In DM~. In p~rticolare ci ai sofferma nell'illustrare it
'~;::;.',-:::~~:[~l~~.~:ma ~l I~terruzlon~, focahzzan~o I attenzlOne sulle sole interruzioni esterne (queUe •
.,:·,,::[}dpnteresse nello studlO del sottoslstema di I/O),
U' ',:~~:\~~,+?~:~::e~' ~3:gioni ~i c?ncretezza si fa ricorso'al repertorio di istruzioni 8086/8088 e a1
Y·';:"~.fi~~:;~,~~.t~.vo hn?Uagg10 A:ssemb~er, anche quando si discutono soluzioni diverse rispetto a
:4~;:r~'~~~-q~ell~ previste da tale archltettura. \
::.",-.,:':~:.
'", '•. ,<-~ ::-.:,.:"." --,'
..,. . . . .
-g:..};=:~~:~~.f": .''-
~ ,","::;,:A;,'t. Elementi di ba d 1 d'
, '''':'',«;.
'.';(;:::"';:;'''::,.' mgresso / Usc1ta
se O' , ' 0 e
tt· t 0

SO OSlS ema 1
I
'I~'\':;';~\~?'~>

:t·~~::t~;~Z~:~Figura4,la e riportato 10 schema architetturale di riferimento per la discussione


>;:';~?':~d,~?nten~ta nel. p~esente capitolo. Esso mostra che ogni dispositivo di I/O e colle-
: ;~~..,~:~..:¥:~to. al bus d1. ~lstem~ att:aver~o un'interfaccia. L'interfaccia Bvolge la funzione di
I
:,:;.. . !,:;;:(~.~~~~~tb~e:to sla; .elettnco. ala l?f?lCO tra Ie unita periferiche e il calcolatore. .

"
",:~:;r~'·.:f;':-·'··
,. '·,:-,--,.
, "" . ,.:~\,;,r".·
rma, clasc~n diSPOSItIvO procede alia propria velocita e in modo asincrono
<~ ;.:j.::;,p,spetto ~la CPU. Vmterfaccia cleve quindi:
',",_... '. '£... . . '
'
':'··:::i,,\;::·ti~~'~;_:dormre eventuali re~stri ~ov~ possa.no essere appoggiati i dati nel trasferimento
I
:-"',;:;J'~"'-';>;-:;" , a. c~lcolatore a umta penfenca e Vlceversa',

I
',r"· "',"",,,'-,.' •
.. ;,-:.. ',;-,:,-,;".;-".; .
:~i~'/~ut7 ~.:. presentare eventuali registri di appoggio dei c0Yr!anru alla periferica.,
. ,.o;.~ ":~. '.'.~.'
" ..;~,~,.oc>~~,.':, ... , .
·
." '-"1
'J,
'ti!
' .. '
_l~ :tH

I 102 Capitolo 4
-
:~i ·1t1
'/";'
~, },;!
"\;.;~
" ,iI<,",
" -'ii' ,~ .
'';
".,t,\ '.ro-
I •. t~nere traccia ~ello stato della peruerica e delle eventuali condizioni di malfun~.'\~~ )~::;
Zlonamento 0 dl errore, cODsentendone 10. lettura. " ,~~ ;}·
", ~J~\ '.1~~
o~ :\~
-~ ~,.o~ -.'fl
nm:RFACCIA . O.~
"'1' .•.•
'\',,:,
·,. 'i4 ..,.
L "~ ,'<'Y
BUS
II I I I I . I: "'" 'i:~

"<*~~f. ~\
.. ~~

I CPU
lHttJI'ACC1A
UNITA'

"'
</.
I I I I. ""
"" I
CISPosrnvo .: 1"
" '/0 '\1
" ",'"
'-"';
oOil
, ~
',··.V.
',,;;'
'.I,'Io
""",~
\I~'·
1".
,•• '
l""
; •,~ ,.;~ ·~I:
';'," .'~

"""",=
UlIIT.... , ! .";
.,,( .'\
n
1i" ' 1,
m
V. • './ii;Jr f~.
· ,'II)) ~ ",
..
,,\"; :
1·.··
,;.{.
";;'
a) SChema ell l'ifmmUllo b) ElemenU IODdt.malllt.U dl Ilfla l"t..I.«I• . ".' ~I~::;
.
I Figura 4.1 Schema convenzionale dell'architettura a singolo bus e della. struttura di una-.: ,::: ;:~)
· . terlacci
genenca. 10 a.
-'Jij '<'1{
"~':'''4
~'1~ ':~

':J'
l.~
1:~!
, ',ti! ' ~:1i.
., . , ' .. . . :"''':~ ~';'
I~ecedegl
ra 0Wdtl sonG stati concettualizzatl nello schema dl Flgura4.1b,;"fY- '~.t
'. , . . ch j 1 f "':U' ',ri,
d ?v~ , G' . e G. d enotano nspet,tlv~e~~e 1 re~stn e svo gono e, un·l:;~' '~'
Zlom del tre puntl precedentl. Come sara. chlanto pm avant1, non detto che aJ tre.~' e '');
blocchi dello schema corrispondano degli effettivi registri fisici suU'interfaccia. Per':~ ~~i
, 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 terminologia,~ I. ::f:
Icorrente ~i ~a .S?esso il ~ermine Porta di I/O. . .. 'iP~ ::W
. I re~tIl eli, m~erfaccla devo~o pot~~ esse~e lettl 0 SCIIttl. A tale scopo basta ~So-{''':l ,tr
Clare a ClasC:m reglSt.ro un ~ropno mdlIlzzo, .lD m?d~ del tuttO- anal?go a co~e ~I,usa:':~ . -)~1{.
con Ie celle di me~ona. ~Osl,co~e .queste .uI~lIIle nchiedono la decodl~cadell'lD~mzz9,~~. ';:,
per 130 lett';ll"ajsc~t~ur?".l r,egI~tn dl I/O nchiedon.o ~'analoga decodifica: ~v~l~en~~ '~
te 10 SpazlO degli mdinzz, <Ii I/O deve essere disglUnto da queUo degli mdmZZl dii,.;; ;,
j memona. CI sono due fondamentall orgawzzauorn: ,.~~: ,~~
· . . ' . )j;:~ ~)J~
a) mgressojusc1ta mappato ill memona (memory mapped I/O), 1>',,1 "~l;
, ".~ ~:~;,
':';
;:.
• • • ' I
b) mgresso/usclta lSolato (I/O mapped 1/0). ,:'fI,
,'''~ ""i"
,'il'~ ,..
• '''It _,
'~1 '-.
Ingressojuscita mappato in memoria Le architetture che prevedono Pingres~~, \:
. . . d' <Ii . o . d d' t P I I tt '. "
sd , uscl~a ~adiPPla/tOo 1~ memorjla non l~PtOng.on~ ch IStfrUZlODl: r e, lca teO ;'l~r a e u,ra::·t :;~~~
o /
I el fegIStn Sl usano e stesse IS rUZ10nl e anno ruenmen 0 cw3 memona',I,l '.:;
· J' ch li .
Questa tecnica venne usata nel PDP 11 IDIg78 , il calcolatore e neg aIlm settan a:'!~ ':~
t""-"
impose l'architettura a bus di Figura 4.1a. La tecnica, abbandonata successivamente '...:' ~,
. . . 8 16 b' ., diffu' , . tall hi RlSC i "0
nel ~croprocesson a e ~t .pIU 51, t: ntorn.ata.at u . e COD e ~ac~ ne ,,'::~l ':!
I E comunque sempre posslblle mappare 10 SpazlO dl I/O ill memona, 51 SUPPQnga l !1i, ,:;
per esempio, eli avere una CPU COD 16 !inee eli indirizzo A 15 ~ Ao, alIe quali corrisponde,:,7 ,,':
uno spazio di memoria di 64 k locazioni. Potremmo 5tabilire la convenzione di riservare.'};; ~t?
i 32k pili alti della spazio degli indirizzi ai registri di I/O, in modo da usare la sola!?~' ,~
l , .~",;-r '~~
'ii:'
,:,",?
~'l
'r.J

,
!'' t".r:.':'
.,.. .
,', ...". .
H~'"1~ "
1i~~:t.,
!;;t.. ,.
> n sottosistema di ingressofuscita. 103
~~'~;~; .::
,.f.'."
...." ' " ,
;,''!I'~~''::
o-v,'"·,,,-,·.
;?~~,;;,;, linea A 15 per .discriminar~ tra spazio, di ~emoria e spazio di I/O. Ovviamente in
·:!~'?L:,.:'questo m~do percle r:neta delle SpazlO dl memoria. In Figura4.~ viene presentata
81
~:':";~~~> ,una SoluzlO~e. che sacnfica solo ~6 de~ 64 K. A patto di complicare 10. decodifica e
~t;:t~sempre posSlbIle portare a una dimenslOne accettabile 10 spazio di I/O.
lf., . .;, .
•,"'
,., '~-".~.'!'
"~":1 -.
:,.-,:.•
Y.- ',".
~-, :_~ ..

~-,~';i. '.
':'•.;-i""
</0
••
'OK
AO-A1S
DEC,
M
-c .
r
~
~ ..
M.%Tl.Crl ....

o,J;. ,.,." . .
~.;o"~"~-:-.
I
1
L 4.0
r A ,. A'"
·'...·hl'"
.\-, .." , ,
' '. I, ., '.
";i"l';)
:r.•. '·
", ,
'~""":" I Memoria 'OK L c'
\~'\',
n· .. :~
,;,,,,'.' . DEC, f-
.-r·~i.I'''.
,..., ._ ~I.
</0
.. ,. \ o L.::1
-
:-;~,:,
··l;.~'··
.:! /"" .,,'.,
'.,."' ...
. -c . Int.ertacce

;Y, .. J~· :: "


.......' .:'
),:';I:~",', ) M pe.turc.
{"J .,'''. ,1_8', .. p b) Oecodific8 indiri:>::>::>:1
~\;":;\,.i-'.,,.· " , ,
!i'~:h::-::.::,:F,gura 4.2 ESenl.J~lO d: mappatur~ lD memona. degli indirizzi Iii I/O, Lo schema di destra
.',V,~':\:": ,,~ alq~anto, ~pprossl~a~lvo. Le ,llsclte del decodificatore DEC M vanno intese come i Chi
'~:'d'::"', Select degh mtegratl dl memOria' conseguentemente il di r "P
t,:":~,, ,L' a questa decodificatore dipende dalla dim . d li ~umera. 1 lD.ee port~te, tn tngresso
,;.r:'i':'" enslOne eg lDtegratl' e nmanentl linee del bus
'.'f~/t·~.)n~irizz~vengonoportate direttamente agli integrati eli memoria:
1tj..!)~:'':-·~'" ,
i~.-/',;"
~~~-t;~~;~.
:~~:l?-t:~:;:',.
.l.~if?'i.')-:" "', . . _
r~:~qI/t. ~~~~.esso/usclta isolato, I.n ~~esto caso la .macchina presenta. un uumero di istru-
d'\
.fr:';~',~.\~,~ I, d~dl~ate aile oper~lODl dl .m~esso/usclta. , La 10:0 eSeCUZ1?ne da luogo a cieli
,\f~'~::f"" ,,~~ ~: ': .tutto anal~ghl a quelh. eli let~ura e. scnttura ill m~m?nal con la differenza
~"~:lt(I/O ~~I!-gono assente due spec1fiche lInee di comando che mdlcheremo come lOWe
,~~t':'l,::/' teCommand) e lORe (I/O Read Command).
0

~~~~~~.:: v""" Per esem~lO.,ne~ c~~ del DUcro 8086 funzionante in modo minimo, rowe e TA.........
~:;;>:":', en~ono creatI,daJ pledml MjR>. RD e WR secondo 10 schema di Figura4.3a. Quando
;;.~.\,, ...l1 micro 8086 e configurato in modo cia funzionare . d " '.
,·,,:,·,r'i.'1 . tt / mo 0 mas5lDlo 1 comandl di
ill
;~i<~'~::, e ura scnttura esceno dal componente di a 0 . 8288 (F' b'
.~io:.':·":·· 0 pp ggw Igura4.3 .
"~':\!'-""'"
. ,,-~' .'
,,,<I,""
.'J'T;'·,·,'
:~':J~!~'~;;:;~ecodifica degli indirizzi Le porte che compo I"~ t f .
", es . d' ngono m er ""cIa devono pater
~'::;:~''-~' desCOerdeifiln ldnzzl~~e .. ~ tale scopo. sull'interfaccia deve essere prevista una sezione di
0

;\.;";., :" ca eg 1 mdlflzzi. In Figura4 4 eriportato . d' d d'fi d' .


:' .: . d" . . un esemplo I eco 1 ca 1 comandl
~}.::<.':::e In lflZZI per una interfaccia avente due porte di I tt dill'
,{":'F~:~aso 130 decodifica dell'indirizzo di base e fissa Ac·c ur~ e ue, I' scntdt.ural· ~ Questo
I comand d' I
O
. opplan d 0 e mee I se eZlOne con
!~4~;~:k':-' -
0'"
I 1 ettura e scrittura. si generano i cemanill per Ie singole porte l .
;E,\; :': .,:
:;:,fr'~~:':''-~'<C"'c'Si·c;;;;;io ::;;::-;::-==-:77-::::--,---
?:\ift.' di:le7~ not! che :~ spazio di I/O risulta come composto da due spa.z:i sovrapposti· queUo d 11
~j;r>,~" ,ura e que 0 delle pOrte di scrittura, . . e e porte
~i:2;i-/,,:'
l;~':"f.r;':l :;
J:i"f.!gi!,'~:',
104 Capitolo 4
_,}J
~~If;.
l)..
t.im
:~~1
iOnC ';>,
>.1/10
r+=D
,~
'M/':' ~ "'~
B"e lOWe
'.,
·N:•
I,'P'_
::,I
••
(1:I't'/ .. ,
""",e MRC -j
[)-'=
~e
(DEN) so r IMWe 'r.'
"\'~l
"..:
:~'
-
~
• • , ,
~''''
.1 ~
!;,
.',,,
'·,"".
.....0,
·~i"
_) Modo Mtnir=o b) Modo M ........ l:rno , '.- .-. I~'j·.
'-"', ......•
.".
Figura 4.3 Costruzione dei comandi di lettura e scrittura in memoria e in I/O per la CPU:~~ """~j
I~"
":

,,;'Il
8086. Nella configurazione di modo minima, 13 CPU presenta tre piedini denominati M/IO};
,·..·r,~
,• . '"

RD e WR; nella configurazione di modo massimo 1a CPU presenta sui piedini SOl Sl e'S2'~~;
. ".. 'l,;,~
13 codifica del cicio di macchina in corso di esecuzione. E richiesto il componente 8288 per~ . "i>;\
....
generare i comandi verso l'esterno, di cui quelli riportati in figura sono un sottoinsieme. :-¥t ,.! 1,;,
.. ·:l;:

:t~
' '~
:~·i!·
., ~ '''.,
•• *1'~
'0
••
..-..
••
••
p on
7.1..-'530
'~'';
::'\~
'),:"
.0 rL~
.. ~,~
",E;LO

J
J
-
.I:L~
)
PO.

p,w
l.,,;,
F,,
1.. ;U~
- V ••'
-.~
"'Ji,
Ic",
10l<C
p, R

-
lowe
iOOW
'11
p ..\
i~li
";~
'ttl;
~I;,
Figura 4.4 Esempio di decodifica degli indirizzi per una interfaccia che presenta due po~~\ 1.,.lI .,i~
•• '~f.
di ingresso e due di uscita. La linea SEL rappresenta lluscita del decodificatore dell'indirinj~' ;:
di base assegnato all'interfaccia (per semplicita. si suppone che l'indirizzo sia dato su soli·:S!' "jf..;
"I·"
bit). Si noti che la linea SEL risulta asserita in presenza delPindirizzo F2H e deUlindiri~zJl, '.o .''.
F3H. Ao serve a discriminare 1a porta all'indirizzo relativo 0 da quella aU'indirizzo relati~~ ~;I1!:
1. ';'\1!' ~~~
'k~
:,~,'

it!.l~
~V
i{~
i!~

,W:.
."t.,.,.
,'q,'
, '~"I

Porte Nella sua forma piu semplice una porta di ingresso richiede solo dei bufJerj~
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!·;' '11r.
11jj.

disponibile alIa CPU. Una porta di uscita richiede dei latch per memorizzare il da4b-'t, ~r
rendendolo dispopibile alia pernerica da! momento in cui viene eseguita la scrittur~l Jt~K
fino alia prossima. In Figura4.6 viene dato 10 schema di una porta di ingresso.e)~j~' t~
l;r:
una di uscita. " '?J;
~.~'·I
. '.
;*i
,.;
,,It,
""(~:;"

Modalita di esecuz~one delle operazioni di ingresso/uScita Le semplici inteft~


facce di Figura4.6 non esplicitano alcun accorgimento per 1a sincronizzazione tra p~.~ ,.
,.
gramma in esecuzione e periferiche collegate. I periferici sono normalmente piu len-W"
.' ' .":;l
.,' ".~~
•• .c
tl
..... 8J~•. ,..
~·~·t ";'~': ',.'
S;\",¥:~.. ..
,t.'<"',~".,
··!"il'j.. ,',
~~rr;r!~;,I} ~,
~1Ir,8!'<i~~1i ""., . )
JrM!(~;';1;~';~~·~.~··-,,
." ,;~;;~;~;,~.-',:; , ::n~s::o::t::'OS=is::t:::e:::m::a:...::di:..·:::in:::gr,,-=osso::..:.!. /_usc::..:i_ta__l_O-,S
.~~j~'-~:~~~":: .'.
m:~;i.~::"".;., "
1.k'~.'~:~z/\:·~ .
,;:'H?~,y~ji\il~,:;, ' .
",.'",.,,"': "i;~ " . v ••
)
...,..~ •.,.'~
'
,t..-I"-,•. ".
_ .-,. , ..' " " ,',
Il/,,~nW::.~:·,' '"
j.' '~I :~'i:;·:·, " I .
':\~~·~I'i, ~T ~ .:: '~
:l"-:'>:"'"-'''-:::'''''
"",. ,''';'~.,-,''' ,.
':':\:l,{k;:;>.~\ .. Vaa.
.. 7<,
'0

:=

..
00
- I
lli • .11/ _
"""',.-
'''.;'',.:).",: ~'.' ._.
~;. i •..
~;.,
,:,'J,,(.• ·.r.'.'...•.'
,~ .. ',,I~ " ;.;,
',.
. .
. ~ DO
.',··\''''''\.l ~:":':'.~ ,. "'.
,·,·1,.."',.,;",.,.;··..". '. " ~,
0
""(~'~'r.:.''''':-'
..
. '~'~.),.;~'f;:.;: .'
•",'" , '-', ',.. .
i",.,'~·:A'.'
:"l:jl~q:~,,',
j"'" 1''''"'1· ' . ,
.
." ;)-r~l.':;·:·. '. . ,
,'.
A"
,_
I ......,. • ,
. .
-'-__
::::j v.1 I.. ~


v ••
I
ltl'~'~ li"(!"7 , .,.
.. ~~.~f•. _"
,"'':'\... ' :.:";'" ', ....
" • P SII:L
I-<L
~. . ' t.·,o~> '.' ,.
~,'::.:;~l;, __·:.,,:,·, ,

I ,. _e
I
> • poJ\Tw'A
\·~>.i'i,\i·~~i:r,~.t,:'.;
.,. "" ..... ' ,
.....
, ,·~~;S~~ ~':;: ',:~:' .'.
;:".;:;'~i~:·:';';· ,.',' .,' . 10 poR'fAe

~\~t~ft;~·;/\',~'s·'·
"e
&empi di tecniche di decodifica degli indirizzi. Con la soluzione cU sinistra, a
~'~','" .;...~ IgUl'8. •
;'~f:,:h;:'C'i;'' onticello inserito Vlene
. • • 00· A 1 . II dis'
decodificato un III lZZ~ con r = ; a pO~:lce 0 mser~ 0
., e<T-l-T
~·~·i~P~,::.:;;"i:P" isultare a.sserito solo Se Ar = O. La rete eli destra COnse.nte di unpostare a plocere 4
":,~~b:f~bit
, ...... puoaar dec.o.dificare. Nel caso speci.nco
'" Ia POSIZ10ne
,. d el. contatt'1 d etermma
. Ia d eco difi ca d eII a
I
~.;J~\i;,:J~f;·.I~onfigUra.zione
~~.~.I;r..(;.'.;::\_ "
-Ao_a = 1010.

I
,;.'" .),'\'"'.".'_ '.
,~·ty "-"~""i;';~ "
~,'l-~::.;\~~~:;:,:~ ',:: ".' . .'" ~
'\ .", '".' -r ,." 'j.
~~'·h, ","""'"" .. . '
,;c,~~'
,J:j' "c:1i~>\"""""
~7:i;;;;!.:.~,,·.;
.'. . '. ow ~

'.• '.'.
.,,0 " . ' .•.•
1··~;"4,··,. '. • .
\ '~'~~'?'~""o;: :.": . '.
i~if.1~P:";.; 'f':~"".'.: ." '
;~i~t"'~
. ~~~.~;,~-..•.'"
!.\:.,..
I\")"~"~!:':";" ;-.
' .i;-:hi""li~:;\~ , ' I .
~
.'
" :J '.
"1 "
'.
" ~
'.
"
... "'_IMXI I
~ ',r~p~;<:~'", .", .
j
.' '''XJ..'·'··''·'';'
... "'" '.
"
"
"..
j

:~f~tj@2t/~: • ,'. ,,: •


·....
..... ..
;,\.(jlj,.i".. ,".-.. )11 , ,,' ~
~ ~.
":"'!,~:lti\f';."grF ,""
'''~i' ••·",:Jr,.'-;·'i'''. 'J-..
" '~ ",
'.
I"~ ,"".....w......·" '
.I ,,~,!t-.~7.,~";· . ,
j:::· '. ~-
:r.l':.."·'-J'··t" .;:-,. .... "
~#%t~:g).],:;i!i<",':, ';', '.'
~, I
~

~~',1iiFl'·.i ,. ,.,.. 'i _' ,

tj,i~~:f;;;;.·4.~:·Re~lizza.zione : una porta di ingresso e di una porta di usci'a attraverso com-


~',~~k~~)"p'911eD:ti' stan'<iard. n componente 74xx244 contiene 8 buffer con uscite in terzo stata, abilitate
V&~~~·~~{4.a.lla volta) tr~ite. i. due OE. ~ com~~nente !4xx374 cont.iene.8 flip-Hop D, can uscita in I
~Si(;~.:1:~.~r~~stato. II dlSpoSltlvO memOrlzza gli mgressl sul £ronte d.i salita. del clock.
~·::!'"·~r>./; r.

W~~;l;paiagone della velocit" di esecuzione delle istruzioni di una looltre essi proce-
.~t;,,~~~)~~~~,m.mod~ autonomo e quindi si rende necessaria introdurre qualche meccanismo
CPU. I
.:i'~~I';r:,:,9.1 smcronizzazione.
.;,l,.~,>,~~, ,., •.

rt~\. ~;~~~,,~~>,,:: 'Le teciiiche fondamentali


K~k}!j:r~~I;'" ::. ,," .", '
~~~~~~ar:C?ntr6n~' di programma;
per 1a gestione dei periferici sana:
I
:l?ft§,hd''''~'' '. , .. "
;~~·~~;H':"'::··~: "., .... .. .
i~';jI;~:,~)_,:~tto ~ontrono dl mterrUZlOne;
I
;,~:)'~~~~~:,·~)j;_ti~iriit~~cesso
<t.,
,i~h"'~
...... ,. .
"~.l.<;.".,.,
"':. ;.~.
diretto alla memoria (DMA)
',. ..;; " ,
0 Con processori di I/O,

l~~~;£j:':La 'partecbe segue e dedicata all'approfondimento delle diverse tecnicbe.


I
I 106 Ca.pitolo 4
'~;5;:
:~,
4.2 Gestione a controllo di programma :~:'-
:..:.zo .,.'.
1 Per fissare Ie idee si faccia riferimento aJ caso di un'operazione di uscita, consistente },). '~'->
,}

nel trasferimento'di un bloceo di dati verso un dispositivo come una stampante. ..\~}:' :-0
Si supponga che 130 stampante accetti caratteri di 8 bit e che richieda un segnale ':}.~ :~:-~
I impulsivo come indicazione della disponibilita di un nuovo carattere al suo ingresso. ';11'i ~""';
Si faccia anche 1J ipotesi che la stampante risponda J a carattere stampato, sempre can '~~ .~;
un segnale impulsivo. Si indichino con DAVe DAC i due segnali in questione. :')~, -,,
Vinterfaccia dovra. prevedere almeno una porta (registro) dati di uscita come ~~~,
I quella eli Figura4.6. Davra. anche presentare un indicatore dello state della stam- ',~~ .",;
pante, che dica se questa e in condizione eli accettare un altro carattere a se e ne- ,\i'~ :':
cessario aspettare the si concluda 1a -stampa del carattere precedente. A tale scopo -h~,'
basta prevedere un flip-flop, il cui stato rifietta quello della periferica. Tale flip-flop e~M ."
indicato come SFF in ~igura~. 7. La state di 8FF viene letto nel bit meno significativo .X§:'.:
(DB o) dello pseudoregLStro dl stato. :0', .
Possiamo stabilire la convenzione secondo cui l 10 stato 0 del flip-flop indica che la, ,,:~~, :,
periferica e pronta a ricevere un altro date, mentre 10 state 1 indica che la periferica e :~ ,
\ occupata. Dunque, 1a r~ta t5AC delia stampante dovra. riportare SFF aD, mentre ,,~1;) ;". _
il. com~do eli stampa D~V dovra. p~rtalo .a 1.. Ne risult~ 10 schema di Figura~.:. '~i:",
51 notl che l'esecuzlOne di un'operazlOne dl scnttura copla 10 stato del bus dati In .:?¥', .
DREG, genera il DAVe porta a 1 SFF. La risposta della stampante porta q. 0 SFF. .A~:,
I --
20 BUS INOIRIZZI
~~
~~ ,
.~..
• BUS DATI
_
,.~'1t

l
B DB'
UNEE 01 CO NTROU.O
, .j,.
;~

lOR<: IOWC
, , B
'An
,
",<y,
.~.
.--
"
..... :y'.
.
I
DREG
SEL
'"'" .. ,.~
, M'
.~

J '.
,,-'"...
--" t:[J-?RTR '"' LJ , ,'.~
I ~,.,
",:'
,- , , STATO
· '1[:
,..r.~,
I "'.
.

';i '
'M ~ "'~'I
..
j,; .

• O}'
_
Figura 4.7 Esempio eli interfaccia di uscita. La linea SEL risulta asserita solo in presenza
OAe LJ
".
:.1, .
.',r.;
':!~: ..

I dell'indirizzo assegnato a.ll'mterfaccia. II registro dati dell'interfaccia (DREG)


da un latch eli 8 bit, 1a cui uscita e tenuta sempre abilita.ta..
e costituito. ':f:'
\~
'":'::3 .
c

I;; _
.;:~, :'
--"c,::'
\ "
"~;I'
:"'",.
··r" .
4.2.1 II sottoprogramma di gestione .
'~';'I
4'

I
~\:'

Si supponga eli dover costruire un sottoprogramma, che chia.meremo STAMPA, che effet- 4.,:,
,:~

tui la stampa del contenuto eli una generica area di memoria, trasferendo direttamente ':t" :
~t
I ,~"
·.'",1\ ..
,
,
II sottosistema di ingresso/uscita 101
:~:',':~,: "
,1'.·~<
-::"<" .". i singoli byte alia stampante2 .
.",- -, ': '.'
,,
Indicando con BUFFER la prima posizione delParea di memoria contenente il mes-
>i<";"',:~ saggio da stampare e con n ~l nurnero di caratteri che costituiscono il messaggio, si
0",-,' stabilisce che il sottoprogramma STAMP Avenga cbiamato secondo questa convenzione3 :
t.-, MOV 51 <oU set BUFFER> ; OS:SI ~ indirizzo di BUFFER
;'... MOV CX' <n> ., ex <- n
; .•'. CALL STAMPA
,',," .
'Si stabilisce inoltre che STAMPA etIettui per intero il trasferimento degli n ca-
; ratteri e restituisca il controllo all'istruzione successiva a quelia eli chiamata solo a
, ' trasferimen.to cone.luso.. . .
,,~, n prehevo e 11 trasfenmento dl un 81.Qgola carattere richiede questa semplice
sequenza di istruzioni:
: :_.' MOV AL. [SI]
OUT
PORT AL
, .:. " \. ,
Do've con PORT si e indicato l'indirizzo a.ssegnato aIJlioterfaccia.. Come gia. osserva.to
_ :" Pistruzione OUT copia i1 contenuto di AL in DREG dell'interfaccia, fa passare SFF ~
": : ..
.,:.:-
.1 ~.otrasmette .il ~AV alia. stampante.. . . . .
. La trasIWSslOoe degli D caratten nchiede 1'1terazlODe delle due precedenti istru-
,. " zioni:in un del? che mantenga 81 aggiornato in modo da puntare al prossimo carattere
da stampare. E pero necessario sincronizzare l'esecuzione del programma con Patti-
, vita del periferico, A tal fine basta introdurre un cicIo di attesa del cambiamento di
. stato di SFF (conseguente alla risposta della sta.mpante):
ATTESA: IN AL,PORT
AND AL,l

-. JNZ ATTESA
"
Terminata I 'attesa, e necessario conteggiare il carattere trasmesso eJ a seconda
.' del fatto che Questo sia 0 non sia Pultimo:
".' concludere e tornare al chiamante;
•. prelevare e trasmettere il prossimo carattere.
Tenuta canto delle precedenti osservazionl, il sottoprograrnma STAMPA assume
questa forma finale 4 :
STAMPA: MOV AL, lSI]
c OUT PORT,AL
_ ATTESA: IN AL,PORT
AND AL,l
JNZ ATTESA
.
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 e diverse da zero.

..
108 Capitolo 4

INC
LOOP
SI
STAMPA
·"··:::E;1
,
":,s; \'~",
':
..
.'''-'"',.,

'.';;;,;t
RET ';-.\~
·.,)11,:
.r~~1 .:,'
Si osservi che il s,ottoprogramma STAMPA trasferisce il primo carattere senza verificare :':;;:'~
se la stampante e pronta 0 no. ·:,;,Bi
Can questa metodo di trasferimento nessun1altra attivita viene svolta da1 pro:. ':<,;;1t
cessore, se non quella di osservare 10 stato della periferica; dunque il tempo di CPU ')~~
e totalmente sprecato nell1attesa. :.}~~
"::j·,.N
":-:"'.[¥
.':,"if;.
'. ;:<11:
· ,,~-,'tl'!
4.3 Gestione sotto controllo di interruzione · '''';<!
:::;W)
,':''-.<!
.:<.i]l
\. ..,:'''..l:
L'ingressofuscita a contrallo di programma appare ineffidente anche se misurato coL");ft
metro della vita di tutti i giorni. Sarebbe come stare alIa finestra aspettando 1a visita :';.ii.m
d I· un amlCo.
. Se all a casa manca I·1 campaneII0 e' sempre POSSI·b·j f al h I . - . ,
I e are qu c e a tra-·:'.~,L~
, . , . d a f f · · II fi . ",
cosa d urante I attesa, rna ogm tanto t: necessano sospen ere'e aCClarSI a a nestra':;,::~f
per ve dere se ]' . ' tt
amiCO e so 0 casa.
A d · · d· I fi t
n are avantl e III Jetro tra a nes ra e 1
:.. .5~l
·1 d'Ivana .:(,J,'
non rende certo piacevole 1a lettura del giornale; molto meglio contare suI campaneno.';\~r
e. sedersi t~anquill~l pronti a int~rrornpere 1a lettura allo squillo. Fuor di metafor~;':;'::~
SI tratta di orgarnzzare Ie case rn modo che 1 una volta trasmesso un carattere Sla;:;.»{
possibile pr~cedere can l'esecuzione del pr?gramma, mentre la stampante procede per.,.;J,~ :
conto propno. Quando la stampante sara pronta per accettare un nuovo carattere) '~'L:~
dovra asserire una richiesta di interruzione, alla quale sara assodata 1a routine dL :?;~ i
servizio (mte1"rU~t handler) responsabile di procedere a1 trasferimento dell)eventuale:;;.~
carattere succeSSIvo. . ,::',t;1!
La Figura.4.8a schematizza. il fatto che" mentre il dispositivo e.sterno (~a sta~- ':.~~~
pante) prende II tempo necessano a trattare 11 carattere trasmessogh daWultlma ese:.::iifii '
e
cuzione della routine di servizio 1 possibile far procedere l'esecuzione di un program'::':,~JI
rna (indicato come programma principale) che niente ha a che fare con la routine di::;-'f~~
serv~zio .. L'interruzione della periferica ha l'effetto di richiamare l'esecuzione della.:;:~~
routme . ,.::'~1
,~·),ot

Si noti che con questa tecnica i deli di attesa risultano eliminati. Ovviamente, per,.\~£
e
trarre tutto il vanta?gi~pos~ibile da q~esto fatto, necessario che ci sia effe~tivamente1T~'::.
un programma che Implega It tempo dl CPU .
per tutta la durata del trasfenmento deI.',:;~ "~1f,

blocco di caratteri. " ';:i~ :


,:,.,,!~

;]
'ilJ'
4A Esempio semplificato di sistema di interruzione:~
",
"~'\:1
.
· ,'r" '
Per semplicita assumiamo che il sistema piloti un solo periferico (una stamp ante) e )~'J
. che vi sia una sola possibile richiesta di interruzione, portata in ingresso alIa CPU ;~i :
sulla linea INTR. . ..• ;,j
Per quanto si riferisce al modo in cui la logica di macchina tratta Ie interruzioni,.',,~ ;
assumiamo che essa operi secondo il modello descritto a1 prossimo capitola e illustrato·:'I.~,,;
....
"",.';":,
, 1
. n sottosistema d.i ingresso/uscita 109

.. '::,.,
,
;"
.
,
: "';"""
,"
,,"
..,_
".,
,

PROCRAliliA
PRINCII'ALE
PROCfUJOlA
PRIIlCIPALE
PROCR.u.n.U.
PRlNCIPAU:
1
'.: .: , , ,Iilll',lfflJl
: ::-, "::. CPU "ULJLJ ••
ROUTINE /)1 SERVlZIO

I
1
.: ,;t ,.'; '..
: ,;':- : 'C.. ':'

:_.';_:::,:\. ':',', sta~panle[


,

f--->'>,---<
""""'''
"
SERVlZIO
ROU11Nl1
"
S!RVl'lIO

f---,o'>,---< f---,o'>,---<
ROUTINE
SER~1O /'
,.,=""

STAltPA ,,~,

':,:;;':.:" .. " STAVPA

'::.'~:<,: ;,"
"\'i:;' .. '.
, ,• I
" :, ':" a) Temporiz'la'lione delle altivita' bl E ' " .
': '; ;,.. ," '. " ' . SeCU'llOne roullne dl serVl'lio

"
• ""'.

.... '
".
Figura 4.8 L mtenuZlOne esterna Sl ma.nifesta in mado asm·ero

',' , . . .
N 1
:
. ".
" pnma dell1struzlOne t + 1. La 10gIca di contrallo deve garant;>e l' t
1· h . ...
. tto -'1'
no nspe

a omUt
. ·td d II
e a sequenza
.
<:Ll esecuzlOne
'r: . ·.: de~ pragra~ma.. e :aso specJfic~, la !lchiesta V1ene servita al termine dell'istruzione i e
.,,'L I
)· ., .. ".:" di 1OterrUZlOne ne sensa c e essa cleve avvemre per intero ment I chin d
!'' .' . '. '". . • • . . I re a mac a eve trovars1.
<.','':'; , 10 uno stato certo, ncancablle alla fine della routine eli servizio
:·..· · · · ' , · · · · ' · .
,: '<:.:' "'. "'" ' '-_ 1
m<-<'", :<,r . d: II· F· 5 26 A . . .
,;''-',
:; :;
,~,« .....>fl·a afl 19ura.
. :'.... :."" . lp- Iop
IE . ssumlamo
t. maItre we sul ramo d eI servIZIO
venga par ato m stato a (Cfr 5 11 4)
.. d ell'·rnterruzione il
I· I . ' ' ...
.. ~'."
c:',/, . .-' .d'
n cone
,.. t USlOne
. can e precedentl asSunzlonl· ~ pe~ Ia nos t ra CPU 1il nconoscimento
l'.val
,'<.", .. _' 1',U. n m errUZlOne eqUl e a questa sequenza dl azloni: 5
.
I
::,<;:"',:.'.' .0<'.'...• azzeramento di IE;
'.,">:
:::':, '.
~'i ' '
• fetch delI'istruzione alla 10cazione di indirizzo 0 can PC non modificato. j
i:J '
~ " :., .Prima di procedere si rende necessaria apportare alcune modifiche all'interfaccia di
c" 'Figura4,7 1 in modo da fade generare 1a richiesta"Cli interruzione. A tale 'scopo puo
essere ancora usato il bit d.i stato SFF1collegando Q a INTR. nuovo schema in Fi- n e
' :::.:::.' gura4.9. Si noti che il comando PORTW ha lleffetto di disasserire INTR, mentre DAC
: :,:-- .::', ,. ha Peffetto opposto. L'interfaccia prevede 1a possibilita di mascherare (disabilltare)
, ", .. ' 1a :richiesta di interruzione del periferico tramite IENFF. IENFF viene comandato da
::~"'(' programma nel modo seguente: \
1, ;'.'
MoV AL,l/O ; At <- comando Set/Reset
';,; OUT
.,.' ..,..J.
,'...':',
.
CPoRT,AL ; CPORT: Indirizzo della porta di
; controlla dell'interfaccia I
:, , ' :
, .

]~'4.4-1
~ ..
Esempio di routine di servizio I
./ , :La routine di servizio e assimilabile
a una qualunque subroutine. Essa deve essere
,."
'..
':
:.,:
.--eseguita in modo del tutto trasparente, rispetto al progr-arn,ma interrotto nel senso che,
al termine, il controllo deve tornare al punta in cui·il programma stato interrotto, con
tutte le variabili e gli indicatori di stato non modificati. A tale scopolIa parte iniziale
e I
..
;'," ,
;:" . . sCio corrisponde aI minimo supporto possibiJe fornito dalia logica di controllo.
responsabiIita del programmatore. Tutto iI resto, e I
I 110 Capitola 4
,~.'InJ-
','!
,!.
,.·
"'.
-:r
---
I
-,
;i
BUS 041'1
• , , " 0.0.11 -1
, "" '''''' 01'"..I ~
IOWC

. DAV l.....f ~&


I lORe PORTIl:
:
,- , , .J.. STATO
,:
'" e-
°0'
.. ,
'.
"~

l.....f i
I
OAC
,"' , ,
CPOR'!'W
,
lENrr ~
~'" ~'
illTR ;~
. ;:,::f.- \;
Figura 4.9 Interfaccia di uscita modificata con l'aggiunta della richiesta di interruzione, :)$f! ~H
'·l~1~ 'G,
'-;'.,,:~, ':~
della routine cleve provvedere a salvare il contenuto di tutti i registri cli macchina che"k;, ,)
j possono essere modificati dalla sua esecuzione, in modo da poterlo ripristinare prima ~i', !
dell'uscita, ""':': ~;t
La prima e fondamentale cosa da salvare e il contenuto del Program Counter. ';":~1: :~
Nelle ipotesi minime descritte al paragrafo precedente, il risultato del rieonos_3".,:~:~,,
. cimento della richiesta di interruzione e l'esecuzione dell'istruzione contenuta nen~~:1~ ;/
Iocazione di memoria 0, rna con PC non modifieato, Per salvare il PC basta che':X :;
il programmatore abbia posta nella locazione 0 l'istruzion~ di chiamata (CALL) all~,-r ',\
routine di servizio. Uesecuzione dell'istruzione in posizione 0 determina dunque: '<t~::;"~~,
I . , " ,.
• II salvatagglO nello stack del valore del PC (ovvero dell mdlnzzo a CUI tornare at, 'i:,,:
, ',;.r~ ~;
termine della routine di servizio)j " .•;;j~ itt
' ill .. ":,;%:,,' <:
I • il salt0 all a rout me serVlZlO, .',!-,

Eotrando nella. routine di servizio mentre il sistema di interruzione risulta dis~~':~~


·
:~·:,'il'- :i
,,
bilitato il PC e state salvato sullo st~ dall'esecuzione dell'istruzione di chiamata/}; ~i
La routine deve compiere Ie seguenti funzioni: "" ;~
, ) I, Salvare i registri e altre eventuali informazioni che potrebbero essere modificat~-·5' :,t
",,:

,,¥ t:
dall'esecuzione della routine stessaj prima di tutto conviene salvare la parola di",g: ~{{
stato del processore ( P S W ) . . . " , .
I 2. Trasferire il prossirno dato.
~:d(

'~;I,:~;:
\'~:j "~
,,' "'-'1'1".
':\,

3. Disasserire 103. richiesta di interruzlone. :;~~. :'~

I 4, Ripristinare i registri e Ie altre informazioni di stato salvate 03.1 punta I) in mod~:1' :;


che, ritornando al programma interrotto, tutto avvenga come se niente foss~4:. ':
accaduto. <~ f
1;t~ i~

I 5. Ritornare al programma al punta in cui e state interrotto,


. . ,.
Per quanto riguarda iI punto 5, assumeremo che la macchina possleda 1IstruzlOue:.:" :
>':~ :'
. -;'!;~ ::"1
lRET (Return-from-Inte1TUpt), Questa istruzione ai distingue dalla normale i~truzion~~:~ 'r
,,"<
I ,·i

,
__·, '
1 '.,
i ,~A/r',
" . -".',
[;f&!ilw;.~0\i;~;;
'-

~:~0il~I!iW(,::;,~"::
J-"I.l'l",!-".,-;j.·r·"'z"~i·:.-·
""",,_,'!",.:.;'.,;"! -,,'
Il sottosistema di ,'ngresso!usc,'to 111
-'-:::'::::====:"::~~~"'-'-.':::':."':.._~'::'
! ~'~i"l""}-l"~' ," .
.,nJ.. I.:'!l'/""- ,I~
·!,<,·!'.l'.."
. ,. ,.,...,y•..... :':\ .'c''', , ,

rl'Pt\~';ii.;·,r·,'~;;<:, -
, '~""''''. " ".'
i~(~;::i):y~!~t·i:'-. "
1;i:0:U:;i\\':}~i' 'ritornO da sottoprogramma per il fatto di eseguire in modo indivisibile Ie seguenti
~r:~;~~m{~i;~e?~r~ib?i:
&,;!~'li~;:j!~0&;:~)" ripristino del Program Counter originale;
::'~,-:,,"~,:x;~~;n;i":_ - -
:;:sr;:1'f':~\b) iiabilitazione del flip-flop IE della CPU,
, . ,- .", ... ,', . ,.,- • c- ,"- ;
.",,',. t;I"'~""""; """,' .
~"'I ,'", "./". ':'" ,,' "

iri~';;~1)~P:;i' . .,
~\l'~:Y::i%)"::p~ogrammazione del servizio dell'interruzione Vogliamo ora illustrare una
';"~~/'.:;·;,~;.:·;possibile tecnica di gestione del trasferimento satta controllo di interruzione. Chia-
~\;::~~J;:;{\~t:i~m~r~f!lo dri~er il pro~amma, comprensiv~ della rou.tine eli servizio, a cic deputato.
;~::P'i:')~~.'.L.:Jl dnver puo essere VIsto come composto d;i due partI:
H~;A<:;-i,!W~i+J::::'.··,.' .
,:':~;i\~::;~J~//'~~, )a:sezione di inizializzazione (del trasferimento eli un blocco di caratteri)j
':;/,":c"~":';: ''' ... '_.' '
)1~;<:':::!:1':}'S~.~L~.r6utine di servizio dell'interruzione,
!,!;'.:i'::;':"~,:~::fS·;.
t~-;:'1,:')~U;'\;:'i' .. La. routine di servizio all'i.nterruzione .viene e~eguita in modo del tutto traspa-
~~~,i,iA';'{.:j:rent~, nspetto al program~a, lD quanto Vl€ne attlvata daI meccanismo di risposta
,\~;!'::';'::;<:"all'interruzione descritto, E chiaro che a ogni attivazione la routine dovra caricare
/~i~.d;,~i::':~pndi"rizzo del pross~mo dato d~ tr~ferire e il contatore dei caratteri. A tale scopo
;h:~\,;:<:;:ii~:~possono essere prevlste due vanablh, Ie quali devono essere inizializzate all'avvio di
\U;AF,Lh.,pn, ~rasferimento.
.
,F~~';f~1(:::,' ~ !'qiche l~ ro.utine d~ servizi~ esegue. in mod? trasparente rispetto al programma,
;?::<'<:N;~<:~on e da~o dl sape~~ se II trasfenmento In cor~o e concluso 0 no. Per ovviare a questa
::;:;i:·.;~y.~,~:~.mconvemente stablhamo la seguente convenZlOne.
tE;W!it:,);-;;:.:--- Si definisce una variabile globale, BUSY, modificata solo all'interno del driver
:fI~':':)b<leggibiIe
·:"','~<'.;"""it f '
da .altri prograrnmi 6 , Quando vale 0 , BUSY indica che non e in corso alcu~
t 'I dr" 'j'
i'::::·{i;'>\i~,' ras enmen 0 e lIver puo accettare 1 prosslffio comando' quando e diversa da a
,}»~j::":.:t~U~Y indica che ~ in corso un trasferimento e i1 driver non p~6 essere chiamato. )
i::;:~Y::i;(,::r""'" I pro?,ramnll vedranno solo 103. routine di inizializzazione, A questa daremo aneora
~.t;:i':'M~\,:~;.~~nome dl STAMPA e manterrerno 103. precedente convenzione di chiamata7:
:.co':':__ A,,,:'" .
t;:~';~':':~ ~ .,' MOV S1, <offset BUFFER> ; DS: S1 = indirizzo BUFFER
:',.". ",:'" MOV ex <n> ex <
{~~:':':~r.t';:.:: CALL STAMPA ; - n
...".,:,::
,.-.,.", 0' ",,~'.'

:~'~'/~'~\','.: Sezione
~,,"J
di inizializzazione C
.
1 d t' . . . .
on e prece en 1 assunzlOUl e cOnVenZlOGl nsulta
.;""',,' ;.' agevole eostruire 103. se . d' . , 'Ii '
~";"':.r'.::'>: " ZlOne 1 illlzla zzazlOne:
;~'f;\~',!t,:, ::~" ': STAMP A: MOV BUSY, 1 ; Driver occupato!
:'.~T':[r:r~,:~~~r MOV 1ND, 51 ; Salvataggio indirizzo
:' .. :(, " MOV CONI, CX ; ",.e contatore
~t;:~::;:i,'}(":
>':/"~'(:~:'<'~';'":.,'6Ir:p:::,:::o==~':-;---:---'" -,.____ '.
1 ,;",' :':': al driver,g~=~ ~~e l~ggono 10 stato d.ell~ vanabJie BUSY, se sviluppati come moduli separati rispetto
:~L":"i""">"" TSi n t' ch t chlararla ~o~e varlabile esterna,
r',/:,):>i:.<I.~. prati;a: pri~~ ~~q~e~~a dl ~hl~ata presuppone c?e i1 ~river soia ~ibero, o,":ero che BUSY valga O.
< \.;;,.".';,"':' e e uare a c larData e necessano venficare I1 nspetto dl questa condizione.
i~;$'ji;:';;·;\ "
....... ~

.
;
:
·
112 Ca.pitola 4 "
'
,..
MOV AL, [SI] ; AL <- primo carattere .-
OUT PORT l AL j Trasmissione carattere ~
MOV AL ,1 i Abilitaz. dell' interfaccia"", ?
l~i~ -
OUT CPORT •AL ; .. , a generare interruzioni'\~:
RET . Ritorno al chiamante "~k:l! ::
, . '\;\i -

. f':1:11o ~crivere precede~te


il carlice ~i e ass~to.
ehe l'iDte~faccia
partisse dallo statoY{~ }
dlsabllitazlone della generazlOne delle mterrUZlOIU (IENFF m stato 0). .~~;:; ,
,,,.~ "
'J"l
, ',,"
;'0."1 --

:':di .,
':
Routine di servizio dell'interruzione Come abbiamo gill esposto in precedenza/ ,:~~ :
la routine di servizio della interruzione inizia can Ie istruzioni di salvataggio nello" fr' I :
stack dei registri utilizzati dalla routine e della parol a di state del processore8; _.J/Ii: /~ - ",

1NTSTAMP: PUSH PSW ; Salvataggio PSW -~~~1!:-


'!:'"' .
:
PUSH AX ,. Salvataggio dei ::"',
.....,1~ ".
PUSH ex ; ". tre registri ~ (~ ~
PUSH SI ; " ... usati in INTSTAMP ';/i~::
",:'~,m }
.' ."'., -
A questa punto c'e da conteggiare it carattere trasmesso e prelevare il prossimo. ~\~ t:
..:...:~o/I'; ;
tal fine si cleve recuperare il cantenuto di IND e CONT e aggiornarli.

MOV SI,1ND ; S!<-Offset prOSS1mo


.
..':--:\~, :
,'J'~' :
INC S1 ; Puntamento al prossimo >:-?~lI :
. '
MOV CX.C ANT ; CX<-restant1 + 1 :... ..'..r.~.~ \
DEC CX • j Conteggio
'" ,
":<?¥ .:
. . .. . . . '" ~~l ~
Pnm~ dl, proc~dere occo~re stabilire se Cl sono .0 n~ a~trt c~atten da st~pare'.~i~ ;
Uultlma IstruZlOne e funzlOnale a tale scopo. In SlOtesl, nsulta II seguente codlce9:: :":~15~'
I 'I." "
,', -.{1 .;
I
1NTSTAMP: PUSH PSI,.{ ; Sal- .. . .i..,:;Z.~ '
"~l'~ "
PUSH AX ; --va- ;~~- 7
I
PUSH ex ; ----tag- .. "I~ij t
I PUSH SI ., ------gio . :.~tJ!.
.'1' ~~·
MOV 51, IND ; 5I<-Offset prossimo '~:;'~ ~-
~ -,
INC 51 ; Puntamento al prossimo " <j ~
' .. :::::;-. ,·
MOV CX •CaNT ; CX <-restant~. +. 1 "
. "~" 0
~:
DEC CX .

Conteggio :L
• -:I'
,'
,.
J2 FINE .
' Era l'ultimo? ... ',{j.
'~ "
~.
~
''':'~'} ',
....:'
.',
::
. __ ,~ '.
8Nei microprocessori della farniglia 8086, di cui si e preso a prestito la notazione Assembleri'-,l :"
tale operazione viene eseguita come parte del cielo di interruzione, prima. di portare a 0 IE. PSW:~' ~f
salvata. contj~ne. quindi 1 per IE (altrimenti non ci sare:Ob~ st.a.t~ 1'!~terru~io~e). L'ist.n.lzione I~~i :\
ha l'effetto dl nmette.re PS!'V salvata sullo stack e qmndl dl. r~ablhtare II sistema dl mterruZlone,.-} i':
Nel caso del~a nostra Ipotetlca CPU" I~ ha solo l'effetto dl np.ortare a 1, IE (oltre che tornar~ at;;,. . ::
programma mterrotto~j .d~nque convleoe rttener~ che IE. non ~accla parte dl ~SW. '~}.~j, ,.,
9Il testa seguente iDlZla con PUSH PSW per VIa delle Ipotesl fa-tte suI funzlonamento della CPU 01 "~
A scanso ~ equivoci, siccome Si.8 u~ata la notazio,ne Assembler 8?86, vale 1a pena.di ripetere'ch~.~l ..~
tale}.s!~~~I?~.:~;?:;Rd~~~~;~tli~~t~~~~ 1'8086, In quanta 1a loglca. salva automatlcamente P~~f:~ ~
. I"
. . ,. I,:-:'-~·~:'
:;,.~;., I· ..
/' .".
-.
"~':'\~:'-'
......., ' , ..
.·~~t'" "j ~·4.
;·.-iM~':lr.~s- r;:;.
:,,?:~;;,~~~~~~,,; - )
.-.. ··,'"1'
···,.1... ".,. \:",. ..
"'~-"'-I":~.' '!~ ,',

'~_:,;:.:"~;~~~-,' n sottosistema d.i ingresso/uscita 113


':,~~.-,,, \,",: "
,.. .. '4'~:' ..:'~.': .
.:~;~. )
.:~It,:<.~.\
-" H~' ,'," MOV AL, lSI]
~'''.{r' .•. Y·;. ;. NO! 51 prende i1 prOSSl.mo
OUT PORT,AL

I
?<,J, '::,,'
-' L" ~1:_'::" MOV IND,SI ; Salvataggio puntatore e
:\,<;.::::\" . MOV CONT,CX
::~" .. ,~'- i .. contatore aggiornati
-~:.J ;'. ... ' , ESCI: POP SI ; Ri-
}~<X';;·_:;.-. POP
POP
CX ; --pr1-
,:,,~.,
"., ..
\:....'.
- " . •'., POP
AX
PSW
----sti-
, ------no
)
.}/ .. ',.,.'" ,
,''0' IRET
:,. '". ; Al punto di interruzione
:;;~~:\~:':' :-': FINE: MOV
"
BUSY,O ; Tutti trasmessi
::<~" ....,;~:' ".
~~,·r,;i.':_>. ,'~'
.<;" - - "','
.
MOV
OUT
JMP
AL,O
CPORT,AL
ESCI
Driver libero 1
; Disabilita intr interfaccia I
:ig~::s~~:.~L:.~:'::!
. , "',-- ," ,', ,
"...'.;,,"",.;-.;'::,.".:...., .'.
:·~""rl" ......, · ,
~};;~:,~~:i;';'
: ':'~),"'4" 42 L . t "
I
}~~5,57;:<":,;f,. ~· e In errUZlonl non mascherabili
-., _,."-'1" .. ' ... ' .
:~:~i:~~;i:":;:'~:':~ "~,,,:, .
;::;;:t:l;:~FiD '~Ip-flop IE (Ofr,5.11.4) serve ad abiiitarefdisabiltare il sistem d" t .
:to:1t~~::,:~~~~~ ~ ~asc~erare la richiesta INTR. a 1 In erruzlOne,
:i:@:J~~~~~!.>.' QuasI tutti i calcolatori prevedono, tuttavia un' . . . ,
:!L*I~~.0.~t~.c.herabile (NMI in Figura4.10) ja quale' I a hne.a di mten-uZione non ma- I
,J, ~-,., . . . , . Q , V l e n e sempre nlevata ne] caso . "
\~!,i?(ib~;·as~enta.:· uesto tipo di interruzione si .US t " f i ' m Cill Sla I
:;,.1.,~·;'iit~~~i'mpiegata
"" h' .
neUe situazioni di emergenza t',pg,lc 1 cat cjon ~~ fatto. che ,essa puc essere
. . , amen e a ClMJuta dl tensIO e S I
~":/~' "",'" c; m~ e eqwpaggtata con un semplice dis ositiv h " . n. e a mac-
;;:~:f"~:'~~,~l ahmentazione al di satta di un certo li~ell ~ c : rlieva 1 ab~ass~rsl dell~ tensian~
'1'1~~:..\.a NMl, in modo da costringere il ' t
",1.'·\·'·di'· .. ,
;\;..\~~<.u~ ~. tensione. A NMI viene a an'
0 1 SI puo collegare I usclta del dispositivo
SIS ema a prendere atto ch >.
. . e 'C In corso una caduta
I
'~~~n1:i~Ns(j"e 'salva ''Ie informazioni 'tggal' dC'jata una routme che chiude Ie operazioni in cor.
""·*t/'lN~. V i l e programma corre t ' d ch
7f';t...;'j~;:,,~f.~e"nsion~1 possa essere ripristinato 10 stato di
t'~;~'~$~:.\ ..programma sospeso.
·.~",:.;.,!\(i<;; ......~,', ..
~'%~-.." .. ~-{..,..' , ,
. n e~ In mo 0 e al ri~rno di
macchina, nprendendo l'esecuzlOne del I
-\~:,!!:~:\);r,,;,~;::
,,- ",,'., ",
~rri{~:i·;!-t~:"~-:',
.
·"~,,,,l",;"::',i;~~' .. ,:,
00"''' ..',
:,~<,;r'~;,(z;}:: :.. -.....
';~.,!l:~'!'~::-,-_:' ,;':
CPU j
.,,..:-,~~,., '4 ,c' " '.' . . -'
NMI
."·;:t.~:,,,,?i(.;;:,.
~"\;,,,,~,"' .,~", , IlNTR [NTR
,~;;: ~ ~~, ;"t+':.;: '
:P'~<:\;'~.':'
"I'·~,·,····",·
.," 'Ii ~" ", '.
"::~]k~~:C-,'~h:~~:­
t:,

fj/j~",P;,:;.:t,.:~. ..,', '. . -'


. STI
cu
s
IE
Q
I
\f::pf~~;:\ T~~., .~
:-~;,:, j::~-:':'.J,,~., ::
... R

:;":~;'{,::;', !_gura 4.10 Interruzioni mascher .. ,. . .


,:~~1';:.':(,:· . . r,81P.B.OP.rE sono stati desi ati a.blli e .non m.asche~ab,ili., qli mgressi di Set e Reset del
~;'::;~'i'i:~:,m!itore puo irnpiegare all gn Can 1 ~oml delle lStruZlOW di macchina 8086 che it
I
~~f;f'r~r!:~lIe azioni ipotizzate v. 0 scopo 7orn~pondente., Al riconoscimento de11'int . program-
~~J;~~£1;~f~~~uZione ho.n masclt:::~iJ~sento (llDgresso eli Reset. La linea NMI co~~;~~~e'a0;:;:
"'fl"'l.i..rl",,;, ",>r;' , I
,
:1:1...:4~--=C.:a!:p.:it::o.:lo::.....:4~ .:.::'.;2i),
1 ., , ",
·,·f
",' -1"
"':-<.;1
,.
'

~, Hf
"
I!
~f
Va da se che l'interr.uzione non maseherabile deve essere prioritaria rispetto ~I~:~t ~j

) al.tre, in quanta per sua natura non deve. essere interrotta. . -., .,?.
4i;
,-

"~
~
'l
:';"'~
,." ., r~
I:
..; ':~~ ~j
4,5 Interruzione da parte di piu periferiche ..
", ,
,,;',.
~
"1
\ ~
I .
,
"""
......
' ~.."~"
"

.. ' , /. I.
;.'.
Consideriamo ora il caso piu realistico in cui si abbia piu di una periferica in gra.d/~:f;: I'
di generare Ie interruzioni. '!,~~ :
,
I Si pangano i problemi seguenti.

1. Riconoscimento della periferica che richiede Pinterruzione.


' . "I~l? ;
'". ,:-;1.\ ..
,:i't~'
. J.I;~,
I
'
\ '

"

I
I
I
)

4,5,1 Discriminazione cia programma


\ . ,..'
Si continui ad assumere che la CPU risponda alle interruzioni secondo quanto ipotiz.- :~~):
zato al Paragrafa 4.4. Si faccia riferimento alia Figura4.11. Si puo stabilire che le'\
I interruzioni vengono discriminate 1eggendo una (pseudo) porta di I/O! che denomi- ':;1
neremo ISR (Interrupt Status Register)} i cui bit rappresentano le state delle singole....;
'
IRQi (F19ura4.11). ' "
I In questa caso, la routine di servizio, dopo a.ver eventualmente salvato i registri 'E'
I eli interesse, dovra. leggere ISR e stabilire qual e 1a rif:hiesta da servire. Puo essere ;'~i:
lisato a modella il seguente tratto di codice (si assume di dover esaminare tutti gli 8 ',,?~\,
bit e che ISPORT sia l'indirizzo assegnato a ISR). :. :~:;

I ISERV: <Salvataggio dei registri di mac china>


IN AL.ISPORT j Lettura di ISR
MOV COPIA, AL ; COPIA <- ISR

I
J
li!!S'r:~ ,
L,iI' :••':- ,
,.,-;~::,.~" ;-,.
~i'~,
:;;.$ .';i .I":
__."-,,
' 11 sottQsistema ill ingresso/uscita 115
r ,:.r., "

:~!lit-1;.:~:~~'" ':~'
,.~/r: ..__ .. , ,
f~~j~·"· ... -
"IIW"..
!
f:"'~
'iI,i>lr[ii
..tt ',...,
.>
:;1,0' II.! '!"'
1:-2- .':.;="
,.~ .... '.t •,,'• .
.,.t"';:",·.,~.n.
-.j ,",
,

I PERlf' I \ PERIF' 21 I PERU' n


f; ,~~,';,~~ :,;,:';,..:
1:,.'fL.. ,... - _",'
,
j'
?,?,\~.f;}r~,:V~,Y;.::, ' r I r Vee
.
.. ' '-' ,
". ,.,.. ,
li;"'II';!1:."'."~'~··,
.....
'"." -'-'" .....' I .-,.. j.'.,,'
.~".~,,,,·;~.·<'.I;~,:: ',-~.
, -.", ,
,,'" ... INTERF 1 INT£RF 2 lNT£RF n

R
,
~'~"-l""-"~"""" . IRQn
r~" ,'.. :..... "."":' ~
:~.r:tr:;~«"·,: :~', .:-
j;ij;~ .'~ !i:;", ,"~.~ r.-~ ";. ~-.:'
1s:!r~1.:.l "r,rJ\...••.! . .. ,
f- IRQl lRQ2
," >-

~~~f1.4J~J\\:>~~:;:.~' CPU
, INTR
::}~',£1'~~;:; "'"j.r..~.-, ~ ~
.~·';1;1!"~'"";'''·'''·
.~\", ... ,":"."~.,'~. .. "'.
, .
I~""!,, ..... ,~.
'."_' -:" ..1,., .... , 'l·~"."
'

L I
::~"~:;;;;-:'~";,'l.,;,l~~'~ ':.: "
ISH I 1 PSEIJDOPORTA DI 11.(
,,;--'
.. ' ,'l,,·,"11<',."
~."
- .!:. '.....n'!-•. ,.. . ..
, ...... ,",",0;;:.; .. '. ~ ". ..

;'i',~{ N','.;;;"",,,· ,t::·, "'


",}........ ,;:..
....:'•. H
"'f: I~t'!',',',r,
~,.
~:.~~
':'.
' ';;) .';: :'. .
I~~*~~i:!./:'~~<"~" C II a-ento in OR delle differenti richieste eli
-
la linea INTR
"
interruzione:
IATl

,." .-', F' ,a 4 11 0 eg - ( d ) d' .


'~~t~F~'~;:{~~:: .Igu . . a se almena una richiesta e asserita. ISR e una pseu ~ porta. I. mgresso
:~~Jf£;'~;~:~;~nsul:a ~el tit n dei semplici buffer, i cui bit fotniscono 10 stato delle smgole nchleste. La
'·"·'~'·I,,,"",··~'(reahzzabl e co .. aI" h' t 't
'~~1~~~~~~~:~.lettura.di ISR permette eli stabllrre qu 1 nc les e sono assen e.
::hrti~~~h·:;;':-':·; ,.'
"'.,'.'~,,'j,.. ...,,'.', .."""'"
~'" "'''l,;'~\':' .
~, .,

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


.~.' ,~.J.,."" . .:
c''".. ,...• · , · , AND AL,l ; Isolamento Bit 0
I¢:"~.,(;:. . ,:" ,
..":".,1".. ,vt··,.',:
_"·"'I' . . . ' , ...• JNZ ROUTO SaIto alIa Fout.ine 0
'1(~.f":.o: ~ ,.
'n~ . ,~~M\',. ' :' MOV AL.COPIA
.':1:,'~ ;t"t,"
.'.t.......r ,.... , Isolamento Bit 1

.,...r~,
'I'. t ..
,,'.,"{'; 1, -, .. ,",
_.: ,~, AND AL,2
""'-"'4'<1,.::.,·,.- .
JNZ ROUTl SaIto alIa routine 1
:~t~fL:'-:. '
, itJ}~l{t~~:,~':;~~::
_,,~: •. "e,.." .
~':l. ".

:,;·i~jl:~~;·;:;t~'.: ,
"'O;'K ••••. "

MOV COPIA,AL
.··',;,i,;i;"··",··.
..,':It:~''''''''P~~'- ':
.~· AND AL,BOH ; Isolamento Bit 7
f~'n~·';i:.;'~~ :.' JNZ ROUT7 ; SaIto alIa routine• 7
:,J.!!'~l~'~: ;!i-.,.' · .Sa i1 centrella arriva qui siamo in presenza
,,1 "t.~.".~",
,\':->.·~"""';ir'
::';" .;,...
'.
-li'\";,,. 10.', ,
""'~"." ... . :'.
'-!':+:!",l;,·,-:j .•,,· ," "
O'

· .di una situazione anomala:


,V:;·~::;"b~'''''·· · .dopa essersi manifestata un J interruzione,
;'t~(:~< "..:': ',.,.. '.'
!;·f"r,.~A·,:~,;: ".,
,.",,~,."" .
, · .nessuna richiesta risulta asserita! ! ! !
:i:;;ifi(:),r: ~ ,:; :. . <Ripristino registri di mac china>
'J~\?'.::l-~ i ;'."'. ESC I .
,.::. ;0;:.\ (/.'.,,::;. • •
·f~r·"",'
:,;.,>:.;\.~~., . :', , IRET
,~." .I:I,,: ':.': <'
';:p;,~\,~:~" .
'~~,: ;:'~".,~'i·):' Ciascuna routine svo1ge il trasferimento richiesto e si conclude con un salto a.na po-
:·i~~t;~·',<"· sizione ESCI (ana specifica routine il controllo e arrivato con un saIto); tornanda a.
';Fi"'!i!\.",';'ESCI 10 STACK deve essere non rnodificato.
-::i:t~.~:J::'" Si possono fare aleune osservazioni rispetto al precedente schema.
:i:t::t,S\:,:
.......
... ,.......
'" '
""".",.. 1.
L'ordine di esarne dei bit determina la priorita. delle interruzio'ni, per questa si
J;!~'.~:1~~/': pada di priorita software.
::~:~'1~'i;:" ,j

, 1.:}N:·Y,,; '. 2. Se il sistema di interruzione non viene riabilitato, 10 schema



precedente porta
; \;~~;:;i~,',:~
- ... ., . '
! a eseguire fino a terrnine una sola routine di servizio. E comunque necessaria
. .#~.-,.'. .,", . che la riehiesta servita sia disasserita (in modo automatico a a comando esplicito
.,""',:!.' '-,'.,
- ., "','.
~.,>:~ '; " da parte del programma) prima deIruscita. dalla routine, altrimenti essa. provoca.
,
>":.~r.;,,,"
,':',
'.j
~.,.,
{ ' .. '.
.
..,::" una. nuova interruzione appena il contrallo ritorna al programma interrotto.
'.":","
,,'" 'c'J "j •;. ."
'.I~~\1!.::'.. ~· ,
.-~ ..<t:.I.
'';:''
~. ~ ...
. ;'~I": '; .' ' .
".'~~
"}>I.
:]i.::.~
116 C,pI'tolo 4 . ':."-i";;'
C-"''---_::..:cc.c:.:c:e-:e- -:!,!·,
.-....
..:;."j:
", _'. ~ ',J;
"
;• .'>;t

3. ~ ~nche po~sibil~ soddisfa.:;, sot~o la m:desima interruz~one, ~utte1: eventu~i~~:}


nchleste attl~e (11 mod~ pm. OVVl? .consiste nell'usare PlstruzlOne dl CALL per';~~~
passare alle smgole routme dl servlzlo). ",,-;;i·:" ,~~~
-.'"fi~

4. Se si adopera la soluzione di cui al punta precedente conviene, anziche copiarne i-r';


contenuto, rileggere ISR prima di ogni test e tornare al programma interrotto solo}~

quando tutte Ie richieste risultano disasserite. In questa modo e possibile servire'~'


anche Ie eventuali richieste che si manifestano durante iI servizio dell'interruzione'..:;'N
.~'Sf~
~'''I
n metodo descritto h~ solo ~alore. di?attico (anche se es.tato lisato in architetture de(::~{ ·
passato) a causa delFmefficlenza mSlta nella sequenza dl test. >;:':~"
.~}~

· ~"'"~
"'...•
<;',· .. :i0
·...·M·
.~.,: : ,~~
4.6 Interruzioni vettorizzate ',:<.}X~
~:,.-".'!!l'
• ~ ... ~....:\,
L'inefficienza del metodo precedente viene superata con un meccanismo capace di: >:tr~
., .:1~..
a) identificare 1a richiesta da servirej .: f..~~: '
, "d+~
b) passare in modo automatico alIa routine associata. :,,:·',<t. .
'.~.' :.:.>;~
':":'~~
Si distinguono due casi fondamentali. '.:.~'~~
·,..""
1. n sistema presenta pill Clinpee di richlesta di interruzione. indipendenti e vettoriz::..1
zate internamente aHa U. "/'~~~$

2. C'e una sola linea di interruzione comune a tutte Ie richieste e la vettorizzazion~:'::


• e esterna attraverso una daisy chain 0 un Controllore di lnterruzioni. .:c~~~~
"~·!~l
I due casi non sono totalmente disgiunti. lnfatti un controllore di interruzione ,;,JE\
esterno pub essere riguardato come una parte di IOglca della CPU, tenuta separata ":1~
per motivi di convenienza. !noltre non poche macchine presentano pili di un ingresso '~,:<ti,
di interruzione e per ciascuno di essi prevista la possibilita di costruire una daisy' ')~ig
e
chain 0 di avere un controllore esterno. ~.~
"~~J .; ~::;",.5
:."
.,,,,t
"~il
4.6.1 Linee di dchiesta indipendenti "::
'-;'"
'/'i,.--;
" ,,(

AlIa CPU vengono portate tutte Ie linee di richiesta di interruzione , secondo 10 schema .){i
d1'F'19ura.412 . ',
.;:;:
lntern~ent~ .la ~PU ri~ost:~sc~ l'OR delle ri~hieste 'che viene p~sato ~ttra~er- :'
so la porta dl ablhtazlone!dlsablhtazlone a valle dt IE, come schematlzzato III FIgU- ~,(X
ra4.13. :E necessaria che la logica di macchina provveda a portare IE a 0 in risposta' /?
all'interruzione, in modo da garantire che la routine di servizio non sia interrompibile ::r
al suo esordio lO . 'j$
'.. ;
_r
:
lOSuccessivamente l si PUQ pensare che 130 routine stess30 provveda. a. riportare a. I IE, in modo da- ".
permettere 10 sfogarsi di eventuali richieste di interrUZlone a piu alta priorita. Di questi aspetti si.
parla diffusamente piu avanti (Cft. 4.9)
."
0ijf~~~"''''

,h':¥~~~,;",
,(~:~~~g:i
.I,.~.
I
..,;f~fW~£':·:·i~i~ U sottosistema di ingresso/uscita 117
- 'Y''''''{:- ~-h:~'l'_--------:-----------::..:::.:====:....:::..:.~'''---'-------
I~' ....,·.,..--,'
l~i"JW:;li.. ,e.._(:"'..:"

"
,,~r~~I,,;r,"l,;:.>,':I!o-'
,., . ""." ..
..':,'\\l.":;V"';'::·;·\· ~,,. 1
,~~;~%·~~i:.t -
INTRO
PERIF 0 ,
PERIF I • • •
PERIF 0.-1
i:~~~~:.::~;~r:'<i:i<'. -- INTRI
;,:I,i\I~,!~.»,',
r.l.it':~..: ..'·":' ~:..
".': ,
::.::,',:
\ -

j' ! ! )
'j'.\,;;;.!j

.A~f~M;,:l:,:·,;-'.;:.;;· CPU '...J!:!1R n-l INTER a INTERF I • • • INTERr n-I


J;~h"~c+~:':'''~.'
'~i;~>b':",;; ;:;,,::'" I
:~~~~);'~;~}~'?:; 1
?J,.\·i',:t.f.~:~~;:::'Y'." - :- 4.12 Schematizzazione di un sistema. 1a cui CPU prevede linee di richiesta di
, j " " '.'1 ••, '. Figura
:~~(:~:i. ;)~. interruzione separate.
:~':?~','~:>"',<
''''M'' . • ' ,
1
.r'.' I~ ".
~1:'.; .. ":;'
" .
TAB1R '-.
!,~;I~:,'~!;~,:;"-
. ",,>',': -".". '.,'
',.; , CALL ROUTINE 0 0 CPU INTRO
14+ INTRI
l!fi6';'':,'.::-' :.
~ ~';'~;!;~i:':.:~;, :..'.
II!'.:). .. r..·'.· .. .....
CALL ROUTINE 1
CALL ROUT INE 2
\
2
""'llTto
"
PllIDUU' INTRI ]
:.it:~;~.' .. ~':·:.--";.
'!;;'):,~~{j':,:."" •• tNTRn-1
Il'r." '! ',;,,"" ,
CALL ROuTINE
I
SEC
' ~~;~-J, '~ft" ';.:::. . ••
j

,:-:,;;A{~-j:"," ,::, ~DDll(SS ReGISTEll


\
. (,:~'/~,'>-/-::'. •
• \

rv-
~~n;,. :~_ •
'~Y?;'/::" ..~,
1t~rJt';'.' CALL ROUTINE n-l 0-1
!":" ""," .....-'. llNTR

1 :J!;;'Y';'\'" \
I
$ l}'V;,~,"~ '. " STI S a f-
IE
:i~~~\(;':>" . eLI R
~ 6~::~·:~j;::'-~':. ,
• \
l 'lit"~:i:::;;' '.' Figura 4.13 Sistema di interruzione con pin linee di richiesta indipendenti. Si ipotizza
E\ ~?:?~~;;/'-: cbe i vettori di interruzione contengano istruzioni di chiamata.. n codificatore di priorita
~ ;:$~;:::":-.>. >discrimina I'interruzione a piu alta priorita. in caso d.i richieste contempora.nee. L'uscita. del
,l ·::~~ll;'<>·.:" decodificatore viene interpreta-ta come selettore di interruzione ed e impi~gata per .indivi-
g ?\>:.-::,:~'~~. duare la posizione in TABU:- dove it programmatore ha .sistemato.1'istIuzLone dl chiamat~
~~ ...~:;:,.; ...,_ .., . alia routine (1a parte racchlUsa. entro la form.a tondeggtante eqUlva.le a un controllore di
I
J .'/! ~':,.':'.- .. '.' interruzionij si veda il testo),

!
51 .• ~"t·;, .
"~
t! .•, .. ';" ,.' .- y"

l' ,,:--:-:.'. ''':''


:i: '..:' '.'", '"
" ... .-
L'interruzione con piu linee di richiesta indipendenti costituisce il metodo di gestione
' , '
i!.,,"''-
;> ~".
(~, ,.,'
' " ..
i. :~:',':;, delle interruzioni pili veloce e concettualmente pill semplice, rna risulta anche il piu
,,,'
::, ::,.',,'
'~ '.; , ..
X~ ;::.:,: :.
dispendioso in termini di collegamenti. Nella costruzione dei microprocessod l per
ovvi motivi di economia di integrazione, e
preferibile riservare un solo piedino per
le, interruzioni e prevedere un integrato esterno di appoggio, detto controllore delle
I
'intefTUzioni, che svolga Ie funzioni del codificatore di prioritan. Concettualmente,
? '~(/'
r~
$. . '. .
;:!~
:::, ,..

.,
cr si rila alio schema di Fisura4.13, portando all'esterno la parte racchiW3a entro la
linea di forma tondeggiante. Ma il fatto di portare fuori la logica in questione esige un I
_r~~, 'I' :

:~,i f
../1 '
", .,
i','
.'JL '
,;, ,
'1"
,~'.
,' ,
. II Un
esempio di controllore programmabile delle interruzioni (PIC) e il dispositivo 8259A, impie-
, gatiile con la famiglia 8086 rna anche con 1a precedente famiglia a 8 bit 8080/8085. Di esso si parla
aI Paragrafo 4.9.
I
I
118 Capitola 4 "
-
\ C~ I
\
protocollo di inte~azione
tea la CP.U e l'este:DO , che automaticamente parti a leggere il;.'·:t' ,"
c~~tenuto ?el reglStro SEL (0 eqwvalente) 10 modo da permettere it salto aHa routin~. ~.t
I d.i mterruzlone.· . . " :.~' :-
.:f. .~
,'I .
"J~ ,
4.6.2 Vettorizzazione esterna ".~
1 ",~ :
•. . .• " .,1Il;
S.u11a scorta del :aglOnam~nh p:~cedentl, eSaml.lllamO ora 11. problema, della vettorizza..-:' <~
ZlOne esterna. 81 tratta di stablhre un protocollo secondo 11 Quale e 11 mondo esterno ;.;.1\
I che indica alla CPU Quale routine di servizio debba essere eseguita.
A tale scopo:
"'~ .'
.'2
.i~: .
,.i,: ~j "
I a) la CPU segnala aJJ'esterno che sta eseguendo un cielo di interruzione;

b) la logica esterna, su tale cicIo di macchina, seleziona it periferico da servire e ,·t~~ ~


.
'.,::'~~

invia sul bus dati ]'informazione che consente cii passare aHa routine associata. '::i~ :
,:\i~
I In Figura4.14 e rappresentato un tipico cicIo di interruzione. Vinformazione che '/~
il moudo esterno jrnmette sul bus dei dati viene detta selettore di interruzione. ,"~1~ '
""e.'

I
.:,,0;
Cielo dl ncono~clm.nlC> d..n·inhrnldC>D. ~."

<' "
• :J:!'
"
,

1 I I I 1 I I I I ''f.
""" ,,';;';l
,:.~
I"

! """
\
"
.. , "" " .............. "." " ....


',.'9
"'>I-.t
.'~".
-'\
.. "

. ' ':~~l
'

",'.'roi
""I'W

"'.
~~.'
/ · ,'i~
,..lol'f
1
~
c;,,
:;ill
t
BUS 1l,l,T1
~.I ..lor. dl I.lllO,,,,.lon. .•
::.f~

I Figura 4.14 Esempio di ciclo di in~erruzione. II segnale INTA (lnterrlJpt Acknowledge- "~~~
ment), in uscita ~alla CPU, indica alPesteroo che questa sta servendo la richiesta di in,ter-. :.~l
#,"

ruzione INTR. E compito della logica esterna (controllore di interruzioni 0 daisy chain)' ~"i",~
presentare sul bus dei dati il selettore di interruzione, In altre parole, il cicio INTA equiva.ie a -/~
I uno speciale cido di lettura, con la differenza che in questo caso la CPU si aspetta di leggere·, .~~~
suI bus dati i1 se1ettore dell'interruzione, La schema. indica che la richiesta di interruzione :~ri
puo 0 no essere disasserita (in modo automatico) nel corso del ciclo di interruzione. ~;:1~
\ ~~
I .. /~H,
Ovviamente l'interpretazione del selettore di interruzione puo essere differentc' ',:;;~
da architettura
.
architettura. . Di norma esso viene .
interpretato
.
come un indirizzQ ':'X~1
";Ii
] che punta lD una tabella eqwvalente a TABIR. Speclalmente ill passato era comune .\':E
anch~ l't.nter~retazione come codice di operazione. Qui di seguito si illustrano a1cun~:~ij
SOlUZIOlli reali. .~1~

· .,'.'
:~~lii

I ~,

\
Il sottosistema di ingressofusdta 119
..:,
",:,
-". - '

I?F:<"':!: .:,-:,
<J~: : ~':', 'Architettura 80S?/8085 11 ~~cropro~essore 8080 e il suo succe.ssor~, ~l mic~o 8085
:.~)~;~ <.\Int78]1 trattavano 11 sele~to[e ~l l~te.rruzlOn~ (un byte) com~ cod~ce di lstruzlone da
-~::~.. ,:~".' eseg uire . L'insieme dell~ 15~ruzlom dl m~Cchl?~ prevedeva ~"lstruzlOne RST (Restart)1
~'-.;;'_~~'.' >_,' ii, cui formato e queUo cil FIgura 4.153 e 11 CUI I efIetto conslSte nel:
. ',. ,
, . ~' ", a) salvare il PC corrente;
-
: . b) saltare alIa locazione di me~ori~.di in~irizzo 8 x n, essendo n il numero codificato
1 campo di 3 bit del codlce dl lstrUZlOne.
ne . .
"',. In altri termini l'istruzl0ne RST n eQUlvale a:
' ~',"/.: ~, .
.' , PUSH PC ; Salvataggio del PC
.: ,~'>.<,:', ., JMP 8n ; Salta
";!:::::'-:'~';~''': ~
:".'" ,:'< ,',' Poiche a1 campo n souo dedicati 3 bit, ci sono 81ocazioni predefinite a cui puo
~. :~,:.~/ ,r, ·s~lta.re il controllo. In queste posizioni il programmatore deve sistemare le istruzioni
:'."'··':'~:·>:.::di salto incondizionato aUe routine di servizio delle interruzioni {o Ie routine stesse se
{o;·..':'·. 'queste occupano meno di 8 byte). In Figura4,15b e illustrata la tabella di salto. Con
'.. '. ',:' .': " la semplice rete di Figura4.15c, sul cielo di TNTA , I'interfaccia selezionata immette
'i(:~~~:~:b.i~'istruzione RST 4 suI bus dei dati.
J .." . . . . :
"
;,. " "i.
.
'
I. n 4 OOOOH
MEMORIA
JUMP R ----,
" ,- . .,
!'<- 0008H JUMP Rl

.".
. :. '.,,
1111 - - - 1 1111 OOIOH JUMP R2 ITABIR

/~~P"'~.:.. .1_
.
• {, '.'" <
'.:,.. .,1
a) Formato islruzione di Reslarl (RST) 0038HI. :.
, 'ft- ,: "
.'<'
,:'. '.•:,'';I', .
'c(' ''' .. '

'::.. :Y,,' ','


,'.' '.... ,,',
-'-
Vee Rl
":"c:'" I
'.".' ..•" ,
.' '-'' .:., T•.
f.' - " , .• R7
. ,. .
,l'.:'
' ':,'
'.' . ~
lACK
" , ":'.. BUS
) ; ; ( ( . , > ; 7 0 0 OAn RO
i '. .:~>;,.,;, . "" ..
.l> ,., ' ".' ,.,'

,;:,~U!.:,::'~ ,>:'.'- c) Uso eli lACK: generazione RST 4 b) Vettori delle interruzioni
~>:-:.~,/ .. Figura 4.15 a) L'istruzione di Restart dell'8080j8085; b) il relativo vettore delle interru-
>' "'~ .'~,:.': ~ioni; c) rete per la generazione di RST 4. II segnale lACK che abilita le uscite dei driver del
',.~,,:;:... bus dati e il risultato dell'AND tea INTA e 1a condizione di interfaccia selezionata.
:< <,:,:1 ,','"
"';:~-' .\/: '..
.>,~,::.,:<.,'... ':
L'istruzione RST e tipica del micro 8080 12 . Essa ha il vantaggio di occupare un
.. ,~:, ." '..... i solo byte e di richiedere quindi un solo impulso di INTA per 10. sua interpretazione,
, "' . J1la l~mita a 8 il numero delle interruzioni vettorizzabili.
;:'~.~,:"
. ,.~:; . ,
" ...'
l2Il m,·c'O
• processore
8080 • state ·1' . d· d
I primo mIcro I gran e successo.
'l;:
In'O
prect:Uenza erano state
E' ;, prodotte.altre CPU integrate su un solo chip, rna e solo can l'introduzione del micro Intel 8080
j;' . "",,,," (e,con quelle .succedutesi a. ?reve scade~z~ dei micro Motor~la 6800.e Zilog Z80) the Ie tecnologie
~ :,,:<... '"
,mlcroelettroDlche hanno un lmpatto declslVo suJ mondo dell'm(onnatlca..
i ;'.- ,J -' ,
.,'.',' ,.
~~,'"
;<~.:~;,:.
120 Capitola 4

:'~~,

La famiglia 8080/8085 prevede la possibilita di usare II controllere di interruzioni",!j


programmabile 82S9A (PIC) di cui si parla nel Paragrafo 4.9. Per operare come ::;~i
. .'.c._
descritto qui di seguito 1 il controllore cleve essere programmata per funzionare in-"I~
," ·,l
"modo" 8085j db richiede che al PIC vengano forniti i bit A15 - As che entreranno a'~:;~.
!ar parte degli indirizzi delle routine di servizio chiamate. La sequenza cii interruzione"-'~11~1"';'>
e congegnata nel modo seguente. "'-").1 "

1. In risposta a IN"TR asserito la CPU esegue i1 ciela di macchina INTA.

2. SuI cido di INTA, Ia Iogica del controllore programmato in modo 8085 stabilisce ':'!~~
10 stato delle richieste di interruzione e selezwna quella di maggior priorita; in;,!:
agglUllta pone suI bUB datI II codlce delPIstruzlOne CALL (1 byte). '"d
1 ' ,.. , . . , . ' ',J'i:~
3. L esecu~lOne ~elllstruzlOn~ ~A~L ~a.I effetto dl. salva~~ II PC e dl determmare la :~::;~
generazlOx:e,?1 ~~e succeSSlV1 cl.ch d~ INT~,. sm qual! 11 PIC trasmette due byte ;:\j,~*
contenentl 1 mdmzzo della routme dl serV1Z10. ,:;:;~~~
, ,'''''
,,·itl
Per come funziona il PIC (Cfr. 4.9), le posizioni di partenza delle routine di servi;'\:;f~
zio ri~ulta~:l0 ?istanziate di soli 4, oppure 8, byte Ie une dalle altre. II programmatore,,':::~L~~::,'
deve Illseme III queste Iocazioni aItr,ttante istruzioni di saito per passare aile effettive'Y-1:~',
routme dl servlzI0 13 . ,",:,{~
"';}:~?iil
. . ;'J:!~
~r~hltett.~ra Z8~ n microprocessore Z80 , prevede 3 modalita. di risposta aIle' '::~~~
nchleste dI mterruzlOne. , .. :;;A
. . ,:jJI
• Modo 0: 1denbco a quello 8080. , <~
. ' . . "',~,:~~
• Modo 1. esegue comunque un restart alIa pOSlZlone 38H. .:.:~
. . ')~':~
• Modo 2: questo modo d1 funzlOnamento consente la massima flessibilita.. ,:.;:$.~
L~ ?PU. ha 'uno speci~Ie r~gis~ro di 8 bit, il registro 1 (reg~str?delle interruzio- .{~~&
m) II cm .c?ntenut~ V1ene 1mpIegato come parte alta dell'mdmzzo (16 bit) del. "'\~
vettore dl mterruZlOne. Gli otto bit meno significativi vengono forniti, sul ci~ :,.. :/:~~
cIo di interruzione dalla periferica che ha interratto. n vettore di interruzione ,,::-M
c?ntiene l'indirizzo della routine di servizio. Cia implica che la logica di controllo .. ::*~
Sl deve comportare come se stesse eseguendo un'istruzione di CALL. II vettore di' :.;.',!,ii:
e
interruzione rappresentato in Figura4.16. :'::;~~
"~;l'}
., Poiche p.arte de~'~~irizzo e. data attr.averso il registro I, e possibile prevedere"",:'~,,
pm tabelle d1 vetton dl mterrUZlOne e decldere cia programma Quale utilizzare. La ":;,:::
stessa tabella e comunque modificabile. La cosa e originale rna e di poca utilita ,':/;
pratica, a meno di applicazioni specifiche - per esempio controlli di tempo reale - in', ,,~::
cui si possono richiedere differenti modalita. di funzionamento a seconda della state ":':
del sistema controllato. :~
'\1
13 . . , 1 . ' '.~
Per 'cornpletezza,
d " t 81 deve ncordare che 18085 (rna non 18080) possedeva.,
' 'd'1pendent'1. In agglUnta a INTR, .,.,.fr!'
aIt re 4 Imee I m errUZlOne 1n ;'"
"~):'
<
~['
)
n sottosistema di ingressofuscita 121

MEMORIA
)
,
. I
, I

• )
>:f',:i',

, •
"'Y'::,:::::;,-.,::,:_, INDIRIZZO
"'B ROUTINE Dr TABIR
.;.';"'.'-':~,:~, >' .,:" . MSB ]
INTERRUZIONE
'. "..-, -':- sl?lei:i:ore 0
)
.,- .... j - .. " ; ,
.- ,
' REG I •
,;'~~ ',,' .... •

\b'~-",':"~'"
:'!":;:
,,?t:~.-~ ,~"!: '
I I1+256 I \

'}: :,,"':., ,-, 'Fi 4.16 Vettorizzazion: delle inte~ruzion~ del~o Z80 i~,modo ~. I peri~erici p~evis~i per
UTa
::''''., ., u~sto micro vengono inseritl in una. d~~Y cham. (51 veda. Plu a.va.ntl~ ~ formscono 1.7 bit che
":". " -~niti a IREG indivi?uano i1 vettore di lDterruz1o~e. Vengono formtl,7 e non 8 bit perche )
<~." .~.'; l'indirizzo della routme deve essere comunque pan. I
-,,-,'
'" \..',.,',., ,'"--':" • I
.;~:~~\(:;'C:?,(
'F.:;::"~::/'::'Ar~hitettura 8086 Nel microprocessore 8086 il selettore d.i interruzione viene in-
,:,;,>:':" terpretato come un numero cheidentifica il tipo di interruzione (Vector Type) e usato
~. "i,':' ;,;:: . \ come 'puntatore a1 vettore di mterruzIOne. Quest'ultlmo cont1ene Pmdinzzo della
I
I
~:' ,', . ':routine di servizio. Ogni vettore occupa 4 byte, in modo da contenere un indirizzo
., '," ",'.." ; cii 32 bit, corrispondente a CS:IP della routine assodata. La posizione del vettore
,~,: viene ricava~a dall~ 1~~ica dell~ CPU mo~tiplic~do pe: 4 il valore ~el Vect?r Type. 1
' Nell'8086, a1 vetton dl mterruzlOne sono nservatl 1prlIlll 1024 byte d1 memona, a par-
,e
1
,: ~~'--; 'tire dall'indirizzo 0 , per un totale di 256 interruzioni 14 . A partire dalla CPU 80286 ,
, ," Ilella modalita di funzionarnento virtu-ale protetto, la tabella delle interruzioni e allo-
.:. cata in memoria.come un qualunque segmento nello spazio virtuale, in posizione fissa,
,"':" --,rna non predefimta.
~':':' '" In Figura4.17 viene data la temporizzazione dei segnali esterni di interesse nella

&
'.\ ': J'~, .:risposta all ' interruzione. Come si vede , la CPU 8086 effettua non uno, bensl due dcli
',", ... di}~TA. Si 'presup~one che all'esterno venga impiegato il controllore 8259A (PIC) di
. cm S1 parla. III segulto (Cfr. 4.9)" . .. . .
l
~ ":::,:" ,':" ':'" La lo~ca del controllore, quando e programmata 1ll modo 8086, ut1hzza il pnmo
M ,:c:'·:
~
: : ;.
'. ",
1mpulso d~ INTA per stabilire 10 stato delle richieste di interruzione e selezionare
,quella di ~~ggior p.riorit~ e utilizza il secon~o cicio per trasx:ne~tere sul b.us dati il
~elettore, d11llterruzlOne (11 Vector Type) cornspondente alia ncmesta selez1onata.
I
~ '.. ' .... :" " Da parte sua, la l.ogica della CPU in:ame:a il s~l~ttore di inter~uzione sul.secondo
} .'
,::,
~:
: , INTA,. ottenendo COSI CS:IP della routme dl serv1Z10. n salto Vlene fatto m modo
','automatico , 'salvando il contenuto di PC e di PSW (i flag) sullo stack. IE viene
portato a O.
I
;~.' '.. ~c.h~maticamente, 1a risposta all'interruzione equivale all'esecuzione , in modo
:~ . " mdlV1s1blle (0 atomico), ill questa sequenza di istruzioru:
:~ , . . . . .
~ ',"".. ' VT. valore del Vector Type (selettore d1 1nterruz10ne) !
1

1 .'
~~
!.,'
'~
"
'~
;:,:'

.'
14L'architettura 8086 prevede eccezioni e interruzioni software (trappole). Di norma la tabella
delle interruzioni e usat'
usualm,nte usat e per Ie chlamate
'
" a poet, pre
0 III illlOlffi<>-l.

a. fu nZlOnl
.del
, I In
.
' t errUZlOnl
"t es
.operatlvo.
slstema .
erne. L'
e t "ft
In erruzlOlll so ware sono
.
I
<\
't c'

\
,~
122 Capitola 4

I Ti 12
,t:>
.' j"
11~
",,
'-"I""m
'I'~"
' '=
"""'''
" " Ti 12
" " ·JitC,

~ ';i
I C1oc~

'L'
- r r r r r r r
f-
''''''
,',"·'~1
".1,/

'::1cf1
INTA !q~(
\ J ;~r~
·..i, r;;~t:
\ DO-D7
. S(L(TT 7
'..:.~il: ,r~:;.
~1 ,l~t
F,g~a
.
4.11
. ,. .
Risposta allllltenuzlOne della CPU 8086. I due eleli dl INTA SODO eOmuDque
. . .
'_1\ )r;
I eon"gUi. . .;[!~ .~t:
,;J~, ;~"f
; M[i] : contenuto della/e locazlone/l .~1"1~:!':
.,~'~~ ),~~-
. ..,..,
dl IndlrlZZO 1
PUSHF
I CLI
PUSH CS
. Salvataggio di PSW
,
Reset IE .
; Sal vatagglo ..
,~. '~~I'l.
'~"""'
';jl ~~i;
,<1~,'
PUSH IP -.' -".1'"

MOV IP,M[VT.4] . del PC corrente .':'""1.


:. ' ' ,.,. ·!~
I
; c" arlcamento ..
MOV CS ,M [VT'4+2] •
del PC della routlDe ;'1.,\ ,,,'
.{t; ''r...
. . . ~'~ ~"r

C'. da aggiungere che oltre all'azzeramento di IE, Ia Iogica provvede anche all'az- ,'I·~}~
I ~er~ento ~ TF (T.rapFlag), non incluso sopra per mancanza di una corrispondente ,~,'! :;G~
lstruzlOne di maccbma. ~,\.~ :..~t.
Vistruzione IRET (Return from InteT't"Upt) esegue Ie operazioni opposte) sempre _':~ ~t::
':"j'} ,}',
I
in modo indivisibile.
•.. ", "
_:".,'~ J;"'~
~·'·
.,' '. :~>:;-
• '\
'!.
,~.
,',,,
,''-lil,: .'.';/>
..,'"., ..~""',
,':'-'111'
~'l.

,I 4.7 Interruzioni annidate


'''"

:'~~1 ::,:};
,':~!! '::'~'
: 'i~ -I:;:<;
Fino a qui si e sempre supposto che IE venga mantenuto disattivato durante Pintera 'i! l£"~ :'I~r
~, ~-;'
esecuzione della routine di servizio, in modo da escludere la possibilita. che questa ~~
',1--
.
''1.:
1 venga interrotta da altre richieste. :;;:,
".~
-":':
>j"~
.'.;
Si tratta di una ipotesi restrittiv3, che contrasta con Ie naturali , differenti priorita
·~I. ':',;~
delle unita. di I/O. Per esempio, I'interruzione dell'orologio, 0 meglio del contatore Ie
,~~ .('.
I cui interruzioni scandiscono i tick dell'orologio, non devono andare perse, andle se e .+;~ ,;.,;;
,
in corso una routine di servizio che dura pili delPintervallo tra due tick. E necessaria <J1 ::': "
~l~ ";"'
cbe la routine del dispositivo eli minore priorita. possa essere interrotta dal dispositivo : '1,;, •

<Ii maggior priorit". ''':~' '.:--:


I ~ -.
A tal fine , basta che il sistema di interruzione venga riabiJitato nel corso della ,.I~~. , ,',
routine the si vuole rendere interrompibile. Dal momento in cui IE passa a 1, la ;~1 ::.,'
':it .':'
presenza di INTR asserito determina Pesecuzione di un ciclo di INTA. La macchina ;·~f ';.\.'
(e il software) deve essere provvista di una logica tale cia garantire Pordinata chiusura. ;'1';,
) delle routine di servizio e il ristabilimento delle condizioni esistenti al momenta della
';\"\'."

prima interruzione. Di questi aspetti si parla con un certo dettaglio nel Paragrafo 4.9. "11 ;--
"'i:j ,,'

;~l<:r,. .
I ~
~
Y,
!va
,
,.

,
·1·····' .
,~,. '.-

~I·t:~:~~._,:_'__-----------
~' 'il- -':.
'"~'J'''
,'m;, ~,,"I
~"'~'{o-.';'
•. ,
'J," ..-
--=-I1:.-=SOtt:.:::OS::i::ste=m::a:....:di_'_in,-g"r_e_"_SO-,I_u_sc_it_a__1_2_3
,,~ ,.,.,',

=,_.1
''''',l" 1<,-._~ -
. ". •
,'··.I.·;.....·"",,·, _

i:~i)~;··4.8
'''''''
Interruzioni vettorizzate con daisy chain
1"1I'''1'' .. .~' ,.",
/,".l-:,.."t,':' _ .

1:j~F:':.~:.:;,:n c~ncetto che,'sta alla ?ase della daisy chai~ e queUo di costlt,:i~e una catena ~e.ll~
(if.%;;:.~·" quaIe la priorita delle u~n.lta collegate e d.ete~~lnata dalla loro pos~lOne ..La ~emphclta
~;~;;~.~, della schema ,10 fa pre~Jhgere ne~e soIUZ~O~l dl basso costo. ~a daIs~ ~al? VIene usa~~
:;i.;;:.:·:'-;· a.nche in altn contestl , come n~l bus ?l slst~ma, quando c e da dlScnmrnare tra piU
t~~~~j~~,:-,unita che si contendo~o Puso. dl una nsors~ III comune.. .
.:!::'~~_~;·.l..• La logica della daIsy ch~m puo .ess~re smcrona 0 ~rnc.rona. La second~ S?IUZIOne
;.~:. almena per il easo delle liltecruzlOilI, quella prefenta, ill quanta non Clchlede che
::':.·::'t~tte Ie interfaeee operino sulla base della stesso clock. La parte che segue approfon-
f>;:i;)(:;,:'disce Ie problematiche della daisy chain nella versione asincronaj la soluzione sincrona
:~\:::·~' '"viene trattata nel Paragrafo 4.8.2.
-~;,,:;::f;:Y."-'
.:~·;-,,:,,;:,'.;,;
'''.'" -
;'~~»'~::'-:4.8.1 Daisy chain asincrona
'r1':-::~:>:?:.::
'" -'. '--

~t;.~»· fu ·Figura4.18 viene schematizzata 1a struttura della daisy chain nella sua forma pill
....;•. ;.-
'~;:r .•;; elementare.
·':"I:.... , '
r",~ .. ',' ,

~;;';/··: . PERIF I PERIF 2 PERIF 3


~:t~\-,:~· I
.,;:~ ii.' I
INTERF fNTERF lNTERF
:;.::~/'~~
,' .:;:~(.
IRQ! IACKI IRQ2 IACK2 IRQn IACKn
,ee
INTAI, INTAI2 IN'fAl
D~L
".-'1" .....,. CPU [NTA
~"" : '.. - ','
·"""""'.l·'
h'NTAOI DeL lNTA02- DeL
. ,'. .
-.:;('<.,,, ",'
, INTRI INTR2 R
, "w".,_,,' , INTRn
>"_,.:;', .',' "." : ,
','-.',.".
",,".', .,'
'.' INTR INTR

;·.'t~;:lr·:Figura 4.18 Collegamenta in daisy chain. Per comodita e stata messa in evide.nza la logica
'!."~";"::-- dt cantrolla della catena eli ciascuna interfaccia (DeL), anche se Qvviamente essa costituisce
;:~'.::: parte integrante delPinterfaccia stessa. 8i Dati che il segnale INTA si propaga attraverso Ie
.j

r.'~~. ,,::~ interfacce da sinistra verso destra. 8i e assunto ,che i segnali <li interesse, come INTA e ffiQi
:1'" '. . ..siano attivi alti.
....
: "~'."
:':1:,"';,
'"
-
~;"'~ .:- .
;, .' .' '<

~'. :' .." Si noti che INTR risu!ta dal wired OR delle singo!e richieste e che la linea INTA
.::,"~"'- viene fatta propagare attraverso le interfacce. In ingresso aile interfacce lNTA viene
;.:',<: ,indicata come INTAI, in uscita corne INTAO.
",>:, """ II criterio di fUDzionamento e il seguente.
',;" ,',
, •

:'. ," . • In nsposta alIa richiesta di interruzione 1a CPU esegue il cicio di INTA 16 I asse-
' :,-'
,.' _,_
~endo il segnale INTA in ingresso all'interfaccia di sinistra.
- -.Y • Se l'interfaccia ha asserito la richiesta d'interruzione, DeL DOD lascia propagare
' ';".' .
,,::'.'
jl segnale a valle e asserisce it segnale di interruzione riconosciuta (IACK ) verso
i
i"

'
l~Assumeremo
,""" attlvo alto. che 1a temporizzazione del cicio di INTA sia come di Figura4.14, rna Con INTA

..'.'.
.
- .
' ~.'
124 Capitola 4
..:~::~,]
.~J'

, ~~
l'interfaccia. IACKi avra una forma d'onda analoga a INTA in modo da poter t~
essere utilizzato dalla logica dell'interfaccia per pilotare bus dati con il selettore·'}tijfl'
di interruzione , secondo la tecnica di Figura4.15c: ,"\~~
_. ,
. :,' ... ';;\'
• Se Pinterfaccia non ha asserito la richiesta d'interruzione, DeL lascia semplice~·.,<;'~,"
mente propagare il segriale a valle. '. "::S~
.".,~,
. .'.-AU
• n segnale si propaga fino a incontrare la prima interfaccia in catena che ha asserito :":I~"
13 richiesta di interruzione. .'·i~~ 't'
".,:~ I'

E chiaro che 130 priorita di ogni periferica dipende dalla posizione nella dais; :~~:':,.::
chain: pili e vicina alIa CPU e maggiore e la sua priorita·".<~!,l~;,{
Per capire c~me de:e es~ere ~atta DeL s~ faccia riferiment? 30110 schema di F~:':,.-F~ :'.
gura.4.18, dove Vlene eVld~nzlato 11 fatto che 11 segnale INTA Vlene fatto propagare:::r~ ,~
dall'mgresso lNTAI alFusClta INTAO. .;,,/;:~~ ~,
~ Fi~ra~.19 viene dato 10 schema di un~ rete. comb~natoria ?he soddisfa al"j~;~," :/
reqUIsito dllasclare propagare INTA se IRQ non e assento e dl non lasclarlo propagare}f ,/,
se IRQ e asserito. In questo secondo caso viene asserito lACK. . ·:·,'/t ,\,
,.:~1 -< .
,:j:e·,
IRQ lACK
.,.~~~l't .
.::~~~: ~L
r ,"'"
'/:;' .:
-"iG!' •~'
_+-__-1====:I:±==f~ ,.';,:f~\~ ':
JL. INTAI L/ INTAO ',:,:~~ !'~
INTR",I---- ',J;;~;}{i.;
Figura 4.19 Rete combinatoria per DOL. La rete non e utiHzzabile in quanto soggetta ~~,;~ ·:
pro hieml'<Ii me Ias Ia b~·l't
t a.
,:,jWI~ ',
'>:;f, :<
" ,.:';S:!~~ ,t;:

,
La rele di Figura4,19 e soggelta a problemi di metastabilitd per il fatlo
'f" . . .. . d' d ["
ch~\il~:,
d [' aI ...~ '.'
1 pen enCI operano m mamera non srncromzzata e In Ipen ente glum ag 1 tn~.,;;~.r ,'
'd·
Suppolll~mo 1 d' . 1 d' INTA hi" f 'k , .. A I
1 e~sere.ne m~zzo 1 un C1C 0 .1. e. c e mter, acela .m.a stla Pl-,;;l~m '~
lotando il bus del datI con il suo selettore dl mterruzlOne SIk . E poss1bIle che la \~ :'-
periferica i ma , a monte della k ma , asserisca la propria richiesta di interruzione. In tal Ctff .
caso IACK i risulta asserito e l'interfaccia presenta il suo selettore di interruzione sliI'3'W .'
bus, .~e~tre ~iene disasserito IN!AI sul~'inte:t"~ccia~ma.. II ri~ul~ato e del. tutto i~-'>~ i -
~redlclb~e, dlpendendo: (1) dall'I~tante III CUI SI mamfesta 1a nC~I~st~ dell\nterf~c1a :t~ .
~m.?" .rel~tIvame~te ~l~ d,:rata dell'lmp~lsoI~r:r;A e ~2) dalla velo.clta cil commutazlOne,.,~~,~
abilItazlOne e dlSabtlItazlOne delle USClte del smgoh component!. ~;:f,?; ':
In conclusione, la soluzione combinatoria non e adeguata. Occorre una soluzione:ij~',
che tenga canto del passaggio del fronte d'onda di INTA. Cia richiede una rete se-:.',d~ .<
quenziale come quella di Figura4.20, dove un flip-flop a commutazione sul fronte (di'~~ ."
BaHta) BYolge la funzione di riconoscimento del passaggio del fronte di INTA, Se, BU1;j~ '
, . . Q
e
fronte d1 sahta eli INTA, la linea IRQ dlsassenta, 11 fhp-llop SFF non commula ';','"
ff S 1 ' f r t ""~
I':ventu~e, ~UCceSSlvo p~sagf?-~ a 1 d.l IR non ha e etto. 0 0 sul pross1mo on e ~;?l '.
di INTA 11 flIp-flop camplOnera il suo mgresso. "Ii~
.
~}
" ,
II sottosistema di ingressoJuscita 125
1
IRQ "'IACK
)
CLR

D QI-
SFF )
Ck Q
'.
"F'"

"
'
r--c
'i"
'
JL INTAI
, 7
T ~
INTAO
)
::;,,<~:':':';"' .. INTR ,

{:-;::': '>'::F'rg~ra 4:20 Logica sequenzi~le per DCL. Se IRQ e asserito, SFF passa a 1 suI £ronte di
'. X;~i'j):,",~.a1ita.di IN-T~. SFF ha la fu~zlOne di indicatore di inte~faccia selezionata. Per tutto iI tempo \
~i·!!~<';-:.;pn'.cUJ SFF e III sta:t~ 1, la lm;.a INTA<? a destra deIl'lI~.te.rfa.cc.i~ e comunque in stato O. II
,<:'t.:~:~':.:,segna1~ CL~, provemente dalll~terfaccla., ha ,10 sc~po d~ ~lStabilire la catena. Normalmente
/,,:.','c,SFFvlen,e nporlato a 0 al termme della roulme <Ii sermlO,
,-.';,;(,.; "j:::: '.<:: . j
,,~{,~.;.i~::';:~. S· f 1 d' 1 . . .
<,}.,,: ':" 1. no 1 a presenza 1 un e emen~o dl nt,:rd~ T. Esso Sl rende necessario per
, ~",'.; 'lmped1re che INTA possa trasmettersl aIle penfenche a valle prima che SFF abbl'a
':: ..,~.,;,." commu 16 L' e1emenI 0 d"1 rItar d0 puo' essere ottenuto in varia modo. Una sol .
I a t o.
l ·b·I' 'd I aI UZIone \
L:;~;,~'.~,~~.~,~~~ _1 e,. ngeneratlva e segn e, e in Figura4.21
17

." .. ~,
::.";,:~-,.",. .,,, • .
[9:> "'''
TRl
'.r "' '. " ',,'"
::.y~~y;;,;!,>~>'
~{:':i i:,~K~ ;~{~: ':,:'" " .
cD WA
I
11Dl SCIlWlIT
I
;~\,;~.,,'}''i,;t~::;, < '
....L
:~t::;:i:::t:~i~:'~i~~r"a 4.21 Esempio di rete per 1a generazlOne
. d1 '
~,'·:·",'·;',~'i· ,
<::;9/·;~~ .. :.;':·."" , e ntardo T . I
:~";;,:.:~',:,,,:-,- p::,':'_;.". '.

,,):','It:t)ft<k Figura4.22 s~no slateapporlate alcune modifiche aIlo schema di Figura4,20,


'.. , ,': . :';'. questa caso, se 1mterfacCla Vlene seIezlOnata fa richi
':::~:,-"~\';"::a'utomatica
I.",
~;d::::,:jNt;~}-l;::;:::
..
I d' .
men e 1sassenla,
di· I . , 1 est a In erruzlOne V1ene I
-;',"';:"';;':;Y',:~:"":'
': ;;'interruzioni ann' d
-:/'1,.. "di internizioni Sing} 1a e e PrIOTl a
t . 't'
LID ~chema ?re.cede~te funziona bene nel caso
-,' ' ::': ::,\.... " Si Suppon a c:e ed:.::~nl'consen~e e mterruzlO.lli ~dat.e". .
I
; "_-' ',,-.'terfaccia i l'in~. ~secuzlone d~ll~ rout1~e. di S~ZIO R j ,assoclata all'in-
:.:>--,.<'.,se"il siste~a di ~rfaccla ~ asse.nsca la .sua :lchiesta di mterrUZlone. E evidente che,
: ,::,;,..:', riChiesta . nterruzlOne nmane dlsattIV~to durante l'esecuzione di ~, la nuova
, .,~:"':''d~rantel~on vH:me os~ervata dalla CPU. Se lllvece il flip-fiop IE viene riportato a 1
I
<.::::>: '., "~' . ' B" ~sec;ZI~ne dl Rilla CP.U genera un nuovo ciclo di INTA, interrompendo Ri.
""",.";,;:~,;,,< : Isogna Istmguere due Cas1:
': >.,."~';r",;'.:;;'= ;,-:;;-=----,----,-c-
:. "", "n dlardo di p , . , ,
I
.." 17 ropagazlOne dl un fhp-flop e normalment 'd'
. ~ ;, " Era questa la ~oluzione usata nella Daisy Chain del rnin~ maggIore I quello de,ll~ porte..

,
,
,', :';.;0
'-
~IU brutalmente 51 pub impiegare una cascata di porte fin calcolala~ore PI?P-.l1 (DIgtt~ EqUIpment).
, 0 a re Izzare J1 ntardo deslderato
. I
I
.'!>'"..
!i~;j
Capitolo 4 ,.~ ;:/~"

I
126 '.';,::;, :',;:::"
-"!'i .•'.. __ ,
':.j; ,·'w:,,
' ,,',. '';::.
..<,~
"~
; .. ,
",.
. "',,," ";,'
CLR lACK
'1 .
IRQ "j "

I
, .~

'1.
',~

,:.'.
'"
:.4
•',_
,
k~

, :'-'l! ,"...
"~

.:~!~':.
~, ....
2:1.. '~I
,.
I
~

1- D D Q D Cl Q f--- ,~
'.1:
IFF SFF .,ft
il .•
,',
Q Q
'" " .\
,l ,~
··:i~,;.
INTAO '0! .,..'
n INTAl T '.
",
f ,

INTR
, ,

'•I"'."'j",
Figura 4.22 11 flip-flop IFF memorizzala richiesta eli interruzione da parte dell'interfaccia.
Sut fronte di salita di INTA 10 stato di IFF viene copiato in SFF. Se IFF e in stato 1 1a
.-,'-;::,0: (1"
-;:~* ,;'{~~
logica si seleziona, asserendo lACK e troncando la catena; IFF viene riportato a 0 e quindi ,.)ii:!:: ;":~;:"
\ 1a linea INTR risulta automaticamente disasserita. • >.'.~1,' '. 'C"_
. "" :"°'.
"c.",
::·:i:l: .. ;,':,
~J ,$'
~'.~ ::'-'::',
I servita;

b) la periferica k si trova a valle della periferica i.


·o.~~~ (,:?
··<~i /~?.~
. ' »:j: <>',
Nel pruno caso viene seleZlonata l'interfaccia k e viene quindi eseguita la relativa ,:';:~ ::::
, di '" d I 'di " d II" rf . .:-"~' ."
routme serVlZ10 1 mterrompen 0 a routme serVIZlO e mte aCCla 1., meno prio- ':::{~ '):':
n't ana e mter f accla.
' d U" ' k Nel second id
0 caso a 'rosy ch'am non fu'nZlOna correttamente. ';,~
';'41 "",.
:j\~,;:r
Infatti INTA arriva all'interfaccia i e, nella soluzione di Figura4.22, porta SFF a 0 e ":1{t :r::j:
si propaga a valle, selezionando l'interfaccia k. n risultato netto e che l'indicazione di :'iJ
j,:~~~.
I interfaccia in servizio su i e andata persa, mentre e entrata in esecuzione una routine :';'{~l vf:i\
di interruzione meno prioritaria di quella In corso.:~W"\~i<
Per evitare ambiguita, e necessario che la periferica cui viene dato servizio impe- ,>,:~~ :!::,
disca.a que~e a:.:aJle. di asseri-:e Ie ri~este di interruzione. Cio si ottiene aggiungendo .ff~ '~~;!
I una lmea di .ab~tazlone dell'~nter~uzlOne, ~, che attrave:sa .tutta l,a catena, second~ :>~ '/~~':
10 schema di Figura4.23, SI not! che se il ,egnale lEI e dlSassento, pure INTR e J <'
dlsassento) mdipendentemente daUo stato dl IFF. 'J;~ \':,.
. L'ingresso IE~ d~lla ~CL della prima periferica della catena de:ve se~pre es~e:e ·2~ t:~:::
I a livello alto e qumdi sara portato a V cc. In un data momento, nsulta m servlzlO, /',. riJY/,
Finterfaccia su cui si ha lEI = I,IEO = O. ' }t~ ~>A:'
Dobbiamo notare che la rete di Figura4.23 limita la dimensione della catena, in '{~;:';~::~;".
quanto deve essere garantita la propagazione del segnale fino all'ultima interfaccia. ..i~1 ';3;:1
I Una piccola variazione Nella discussione precedente si esempre supposto che SFF. ".,;~~,;::. ~
.)~ 'H;",~
1,:>1' :'.:.0

venis.se azzerato a~trav:erso ~a esplicita istruzione ~i 1/0.) posta ragionevo~mente.al,~% ';;!";;:

l te~mme del~a IOu.tme di. S~rv1ZlO. !dealmente) questa lstruzlOn~d?vr~?be verure SUblto "j~ .:},t(
pnma. dell'1struzlOne di ntorno, m quanto essa ha l'effetto ill nabllitare 1a catena a .":~ ~:::;~
valle. .'i;~ ~r;:·"
' , I' ch " d' d d d I' '.'1, "',.J
S 1 puo pensare a una so UZIone e eVltl lover coman are a programma azze·. :J~ (',:~
l ~am~nt~ di S~F. Tenuto cont~ ~e 1a routine si chiude comunque con l'istruz~one I.RET, :::)~ ,~t}
il cnteno puo essere queUo di nconoscere che 1a CPU sta eseguendo tale lstruzlone, <:;i':'~~;
come In' F '19ura.
424 . '.,~!:~
,," ;!,:"
:'::;;
'~:~ ,>,!
'. 'y. !~m;;:
;,',' ",;;,'
J y.
",j
"'.,..~
:i:""w
.. ~

,
.,,", ..' ,.,
j:fx: .,'.
"
".,, Ii sottosistema di ingressojuscita 127
,-, ..
.;;

IRQ CLR LACK


IRQ CLR lACK
.1.
. ,- , ' ." , ".,
INTAI
lEI G INTR
: INTAO
lEO

0 0 '"

~

I!<TAl -
T
~
lNUD
.
IE> lEO
'
. '
J
," •
':,
lNTR
",-·, _;
~(,~,_ Figura 4;23 Aggiunta deUa linea di abilitazione della 'hi t eli' ,
"" ~_ ' riC es a mterruzJOne.
_'-:'-',. _
.1'.'
' ""-
,: BUS Decodifica Iret
';,./
> ,
I Ie-:==~= --,
,'
? :"
V OP-Fetch
IkEJ
b
:::j
\_
D ... CLR
~,i· ,
,:,' ,:,,; Figura 4.24 Decodifica del codice di ritorno dalla Touti di' . '. --
~i{':' risulta asserito solo se sul bus dei dati passa'1 eli ne mterruzlOne. ~l notl che CLR
",'. d' d"' . 1 co ce IRE! durante un Ciclo di c: 'tch d I
:c:'" ,co Ice 11struzlOne e mentre I'interfaccia e in servizio eli' t '( e e
.. , ill errUZLOne lEI = 1 IEO - 0)
r·:;.-~:,::' ' -.
::1~f::<'" . .
.',.:::: ..,
18
La S?IUZIOne ora delmeata e valida solo per una CPU la c' 't' d'
\t:>··. 10. opera m modo strettamente sequenziale. Basta la semplice c~~ u~. a 1£ c~~tr~\
<::'>:' mIcro ~086/88 a renderla difficilmente applicabile. Infatti 1'oss a .1 prede f e t
,~»~ ';:" del codice IRET suI bus ~ati non implica che questo venga ~ecess::vazlO~e e e~ch
!~:<{~~' Occorrerebbe tener traccla dello stato della coda di prefetch19. lamen e esegUlto.
:.;.<>.",
'.~,"':
: '4.8.2 .D'alsy caIn
h' .
Slncrona
::~.\:, . ,
/,~', ,,-,'. La daISY cham discussa in precedenza f ' . . . '
'f',':" 'costruire una daisy chain funzionante .unzlO~av~ m maUl:ra asmcrona. E possibile
.-'.: ,,'.', macchina. In tal caso il clock deve esse ~ mOt ~ smcrono n~petto al clock comune di
1" " funzionare secondo un protocollo che r . por a 0 a t~~t2e Ife I~terfa.cce e queste devono
~";:<,: INTA. SI compone I asI, all'mterno del cicIo di
0:;.":"".'
~ '(. 1. Nella prima fase viene indi'ct t I" f' . .
:,:::'" ~ta f~e l'interfaccia cia serv~e ilea aueJ~te:raCCl~ da ser:rlre. Al term~ne, di qU€-
(:.:';:_· lmpbca il propagarsi e 10 stabiliz~arsi d~i CUI ~I, - l)IEO . O. P?lChe questa
~,r.:: , : ,' sto scopo almeno un per' d d' I k segnali, e. necessano destmare a que-
".',:'.'". consentire l'estinzione deilOfe a I c.odc. e questo. cleve avere una durata tale da
nomenl 1 propagazLOne lungo tutt I t
~Y:/i~>:'
Jt",· ,-
a a ca ena. ,

}:r:;,<.,,':"'>i:18i;Q:;:":":;t;;a~,:;:='=-----"-C---- !,

;;'j ,..: ' 19La CPU o,luzlOne era. ~uella standard dell'architettura 280. "
";'.; ... t
;; ",;,". '. enerne traccia.086/88 formsce all'estern0 due b'It ch e mdicano
' , 10 stato della coda"
!~i\~,;:
'.l: '.
' e qUlDw paSSl bIle
:,\'i2;~ ,: i
't;<~:J' ,', ', "
~".>1-,"
w...'"",.-,:
,.,,,. f . ~',

'I;;
, '\"
~~"I''
1"
~."

128 Capitola 4 l\~:f


'

'j"t
j~.
·B,:·
--;"
",.'
2. Nella seconda fase, viene generato il segnale INTACK legandolo ai clock Bueces- "~~l >~;
. .
SlY!.
j
-.~.\
,.,1-,.. '.. _
""

' :""i '::~


"':-'\ .'!.!
,~; ~',

La logica amerana presenta vantaggi ben nati in termini di sicurezza di funziona~ ;~~A :h~
menta e immunita. da fenorneni di metastabilita. Thttavia, 1a logica sincrona e malta ,:~ ":',,
piu dipendente dalla frequenza del clock e dalla specifica architettura, Per queste ,::~>::
motivD essa ha successo quando viene fornita come parte integrante della logica del ),; :?,
sistema, Questo e stato il caso della daisy chain Z80 discussa qui di seguito, ~ ',,:
,i'.,~ ,),
.,.",
. _.~, ,
~~. '.

I . .,i'~ ~~"
I La daisy chain del microprocessore Z80 Lo Z80 1 rnicroprocessore can bus dati' J~ :r~
a 8 bit e bus indirizzi a 16 bit, ha ,una daisy ~ain molto ra~nata, I periferici p,rodotti,/~ ';~~
I da! costruttore hanno tutta 130 lOgIca necessana per operare m tale catena, funzlOnante ,?~ ':./
I can logica (quasi) sincrona, ,;·:B ~~<!
Prima di passare aHa descrizione del suo funzionamento e necessaria illustrare il "';;~ ~~X
cicio di interruzione rappresentato in Figura4,25.:·.~~~r:.','
t
--,\j1, . \!
Lo Z8~ no~ prev~de una osplicita lin~a INTA" L~ funzione di INTA e ottenuta '-i~ ~~f
dalla combmazlOne dI M1 e I RQ. La linea Ml mdIca che 130 CPU sta eseguendo ;:~1 \~'
un cicIo di fetchi mentre 130 linea IORQ indica che 130 CPU sta eseguendo un cielo di",~~ ~·i-
lettura/scrittura di I/O, E evidente che M1 e IORQ sono mutuamente esclu5ive. Da':~~' ,:,
qui 130 convenzione secondo cui le due linee contemporaneamente attive indicano un "''r!l: +;"
'I d" t . ',AB r:,
ClC a I 1n errUZlone. ,':IV ','-

~a 1in~a INT ~Fi~ura


4,25} viene cam:pion~t~
sul,fronte .di salita dell'ultin:~
clock B~
;;!.
del ClelO di macchllla In corso, Nel caso In CID nsultl assenta (se IEFF ablhtato e ~r!J ~i;:e
NMI non asserito), la CPU da. avvio a un cielo di riconoscimento dell'interruzione . ~!ffi- :~~
e
' d'1 e mezzo d'1 cIock ,su I fr onte d'1 s ai'Ita d eI "Uil"", 'i~:;
asseren d a Ia IIDea Ml . D opo d ue penQ
,
primo dei due cicli di wait (iDseriti dalla CPU), viene asserito anche IORQ':~1;,1
',,'ifjf
:.'~ _r
Ml
GiClo bUS pr-eceo 0<0
'.:.~~, ,~:
llllimll dock Tw Tw T3
T1 T2 ,',)}1 :'<
,,\

INT'
I

-~- . -- -- f--- --- - ---


". ':
:~:ilI
, ,, "

'.':'~i
':
'.' ,
• ;.1'
"j '
:',lii -(
",
""
"
,"

".:

= "''''',
,,'-
. :;:!- ,'" .-
'.~
'f .

,.~f,$
IORQ ,'"
'" :, ~'

BUS DATI -em 'rt '>


WAIT
',:r ::
CongelaO\enlo
.i? ," i·
~torlta· dai:5y chain Seletlore , ~ ':
,;
"

"c
, ~i I ,
,'c·'
e
Figura 4.25 II delo di interruzione della Z80, 11 cida identificato dal fatto che Ml e .)
. I',,' I
IREQ sono ambedue attivi, I due cieli di wait vengono in5eriti automaticamente dalla CPU ••.,.'

,;~~.~
per dar modo alla catena di stabilizzarsi. "<,~'
\
..
"'-~'
'

, ... ~,
",~ '
-,.... .•...
,
;'I~f!_;;~·
"'ri,', .~
", ~­

)
;r~;;~ -;':'~'
". "'1-,',
';'' I· .-.'
....-...,
'(r~' .," ,"' "
"
. 129
"

fr·:'~~·':, II sottosistema eli ingressofuscita


t", •
.; -
·;.~, ,;:.~, , 1
":'\ '. ;"
\1"', '. ,
.
;\<;" n distanziamento temporale dei due segnali consente di usarli come 2 cIock se-
";,,,-
_ ;, arati. n prix:no vien.e. usato per selezionare la periferica da servire , il secondo per far
~ri':··~.
!., . "
,' ,., - ~pparire suI bus dati 11
selettore di interruzione, I dcli di wait vengoDo inseriti dalla
1
~:-, '<:,; CPU proprio per dare modo aHa daisy chain di stabilizzarsi.
,?L ',:
:" '; IRQ CLR lACK
]
,:~' .,
:;.;.... "
.; .,
...' .'
-"r

"/.,, . .
,

[EI
,
'"
'n

~~;'/' :::. lEO


\
~.:j~<.,) o Cl Q
/":'~'"
!ir'::-:::' ''''''I r 1
X·::;,: )-D ct,
I
',· , Sl'F
!" .',~
~
f;f~:~-'·., ~
',::;:~L'
-·:(:t:,~ ~ IORQ
1lf
, ,
\
,}!;;~~;~,' ,: ':, INT
"~:'-"';f:'F' , 4 26 S h d· , , .
,'{i-:'.~';"·· 19ura. c ema 1 pnnclpio per logt'ca di controUo della daisy chain zao '
-";''''''' ,',.

.G?.{i::::,:,'> '
1
:~),:~':.;":,:.:,: . , .
~~'.;':::i"\~~: .> '. Ve~amo ,ad~ss~ come puo ~sere congegnata la 10gIca dl controllo della daisy
i'~,;L'" "cham, S, faceta rtferlmento alIa FIgura 4 '26 '. '
;~,~·~:'t::,,':<.' \
1:':':~~i}>':~~:':'" - . '. .. .
f:'( , ':,:, 1. Su M, (fronte dJ dlscesa), II flIp-flop FREEZE pa.ss~ a I su tutte Ie interfacee che
r.::':;:':~:;' ",,- s~ tro~ano nella sltuazlOne .IEI :;:;;: 1,IRQ = 1. Se plU mterfacce si trovano in tale
:l;;"j<:';,~. ,~ltuazlone, 10 ~tato basso 51 propaga sulla linea IE dalPinterfaccia piu a sinistra
<,::;:",:-',:'" ,.., :,' con FREEZE 10 stato 1. Al termine della propagazione solo questa interfaccia
:",',~", ,, , ' ha lEI - - ,
1 lEO -- .
0
I
:;;'\J.,
"~j'"
'
- , ..,, .' " ," ,
".,,0,.'

I
. .
"';, 'c·,·,
'"
:'."';:';':"" .
(,:t-.<'- 2, Se ~e5to non fosse un cicIo di INTA , se doe si presentano altri M 1 prima di
.,./.,
'.,' ,"', lOR ,la situazione viene confermata. Eventualmente puo modificarsi perche
., "."
-"', " ,

una interfaccia a piu alta priorita. richiede servizio,


,:, .....:;::'
,,,.. .:
.. .. ,. ,
I
'.'
'
~\ ' .

>:;",. '·3, Quando IORQ viene a.sserita su un cicio M , (si noti I'OR tra M e IORQ), SFF
J
:,v):.:.: passa in stato alto, riporta basso FREEZE, mantiene lEO disasserita e determina
·> I'impulso lACK. Si noti che essendo state portato ba.sse 10 stato di FREEZE, e
,":;::: '
:-'
.",
.'
",:
:, :
"
necessaria che IRQ venga riportato basso prima del prossimo MI. A tale scopo
basta ricorrere a una soluzione come nelle figure precedenti.
-' ,
,
I
~,',
e
Come si vede il funzionamento di tipo sincrono, anche se si usano due segnali
I
,.

.• sp~ri corne segnali di clock. Per il progetto di una daisy chain sincrona si fa:ccia
riferimento all'esercizio 4,35.
' " ~.
'.
,
\
:.~rr.
-;1t"'
.>1..-

I I"•."
;~("-1
130 Capitola 4 ,.

""~
,,: .
,~\·
,'~'a
~:;.,
.•\;~..
~i! ,\:.~
." '.~

4.9 Esempio di controllore di interruzioni: j • ""

I il dispositivo 8259A
,'~ ir: 0:'f:
\}~ ~:~~
, . .~~ ,,~ ;.
E stato osservato che molte architetture prevedono 1a possibilita. di impiegare control. ,;)~ 'J;::'
l~ri di inter:u~ione este~Di! ~che perche qU,esta 501~zi~ne permett~ a1 costruttore di ,~,~ :.;:
\ ndurre at IDlDlmo la lOgIca dl controllo delle mterrUZlOnI suI chip della CPU, lasciand6 .;;,~ ,';;;'
spazio per altre funzioni. D'altra parte, se si prevede un integrato aggiuntivo, questo',& '\~
] pub essere reso ragioDevolmente cornplesso e incorporare sofisticate funzionalita di:~ ,':Z~
controllo. ·:;r . ,
I n componente 82S9A (Intel) eun controllore programmabile (PIC, Programmable r!~~ i~:~;'"
e
IntefTUpt Controller). Esse malta nota e ha avuto grande diffusione di mercato in~;~1~ .:'!,:
quanto utilizzato come componente di supperto dei microprocessori della famiglia ~~ .';t<
80x86 20 . ~'£rl !~,-
\ ~,;.~~
",\ "
'~::.,',.
,ji'!l .. ~,
',1-~ . '."
'~ "',
.:.~; ';',
lI D'
~
't,.l
:~\
~'.)l
·~'.~i ':"'.:
,,
.

.1.(', "',
CPU
,~ ::C
, ,", ...
I
:PI::RI ... Pl:::RIF. 8 M ,'.
"".:.' ",',
• >~.." ".
~~

~TA
Cont-rollare
delle
Inlerru-zioni
..
,.,
" I
'.'~..",!, .,:.}'
.. ..,,~
,

::::J1~
~'7l;'"
.
,::~~:; '~':'~"
;:,' ".',
i . ,
FJgura 4.27 Esempio di c~ntroll?r~ ~ inten:~ione ~terno: il PIC 8259A. AI disJ.>os~tivo·.:~ !
possono essere collegate 8 linee di nchiesta di mterruZlOne IRo-7. Esso genera la nchiesta.,~ i
alIa CPU ~~ndo la linea INTR e immette, al tempo dovuto 1 il selettore di interruzione. ~'~"
::,;~,~ ;\f
,:-..
:.It
\i,'
suI bus del dati DB. . 'I,'
.. ~
,:""
,."
~'~~'
\ ;:'j'
llPIC 8259A e un dispositi~o
molto eOlnplesso., Nella p",te che segue ei si limitaJ :.':
a conslderarne 80.10 gli aspettl pm lm'po~antl tn .nfenrnento ~ s~o lrnplego con II micro '}~~'': >:~
I 8086. n lettore mteressato a magglOn dettagh puo fare riferunento alIa letteratura '8, i: ~'
Intel {In~79a]~ [Int79b}. . . ., . .' .
In smtesl Ie carattenstlche salientl del dlSPOSltIVO sana. ;~: ~ ,
::', "&
,. ',.
:(H ''"'
I a) la vettorizzaziooe delle interruzionij
b) la gestione della priorita tra Ie interruzioni;
;,,~;'
';ij')i: .'
1.

:.;~ .
'~:l- .
I zOn dispositivo, come gill. accennato, poteva anche essere impiegato a supporto della famiglia ~:~: . ,.
I 8080/8085. Nuovi e piu moderni controllod di interruzione sono oggi disponibili sui mercato, tra ' .;',~
cui il cornponente 82489DX (Advanced Progmmmable InternJpt Controller, APIC) [lnt92J, [lnt93). ';~
Tuttavia il PIC resta uno dei componenti di maggior successo. Poco d.opo I'introduzione dell,: .:JI:
CPU 8086 e 8088, l'lnt.el introdusse i· micro 80186 e 80188, evoluzione tecnologica dei precedentl .. *.)
I e contenenti it PIC in Conna integrata. Piu recentemente (1994) l'Intel ba immesso sui mercato
il componente 80386E. La. lettera. E serve a. denotare che esso e destinato a.lla applicazi.oni '~e~te
embedded. Si tra.tta. in pratica di un microcontrollore costruito a partire dal 386, II dlSPOSltlVO
:.~(
~~~
.~:
integl"' il cont,oUore di interruzioni 8 2 5 9 A " ,.. jt::o
I
.rr,.~. '
-:,,, ' ',;.,
',~f';
",
1I~"';
'. ' p, . ,. . ""<><1... I , ~~ ...... ~~.M-~~ ~ ,... , ......... ,,;WI",
,-", 131
... ".. __------------------:;.':...::.::.:;••::.::•:•:.::.=-::....::-:...c.:;0"'.;.'_".'.;.'
·t,~
_
."
.. " ",."
'_
~. :~~
~.-~
- -

:,~·, :";.", C) Ja possibilita di rilevare ie interruzioni sui fronti 0 sui livelli;


~','.?j.. d) la capacita. di gestire fino a 64 interruzioni.
.:.!' .
',':;~~ ,.- "
Lo schema di impiego e in Figura4.27; in Figura4.28 vengono dati maggion
:\,~':~i~,·,dettagli circa·il suo collegamento e sulla sua architettura interna.
',1;,:>',' , '
~'\' '.:: ,;': ~ CQrlpe Codlfico

~\::.,::: "'":'' .' Pr-ogra"nn1.o ;nte.... vzion~


10 <:Boes>
',"'," ,R
~ -
",'i/J~':'::'
r
:\.~'I.":" AO OS !RQ !RQ

t<- . ",' ""


...- ~ ~
lEi
8259 •
--:: .., IN O' !R?
CIl LC ~
~

,~",: . .' '.
.,', tl"T'I nO-07
~
·lR7
';:~
,I,: " '-
,,'
,
.J
.....
.~"
,
,

D8
I MR I
,/";'.,
:.,'1''-.' .. , , b> Archltettl,lr'"n InterM
"". ." 0) CoUt'QG/'l"ntl

C~\':::Figura 4.28 Collegamenti del contwllo,e 8259A e sua "'chitettura interna.


,', ..
. -,' , '

".'.
':~ '.
'".
'"
..
'
In riferimento aHa Figura4.28b, il significate dei simboli e il seguente:
".:: ,""
,."',: ',:"." ,1':'·' ". ' IRR: Interrupt Request Register
f./::..:·. ; . MR: Mask Register
.=.~~'.t~:"~'.~~~:,,:~ : I3R: In Se11Jice Register
tt~.~{;.;:,:,.;;,~· "TR Ty R .t
'),;~(,)/:,\"., "; ...' pe egls er
..
','\ ',','".,
"",
~
. ,

',<,;:;.-',.'Tali registri svolgono le seguenti funzioni.


:;:,::",..,,~:: • Registro IRR: raeeoglie Ie IRQ dei periferici e leinvia a LC. E. possibile program,
~~/.'Y'>:'/I "mare il PIC in modo da operare SUI hvelh 0 Sill frontl delle nchleste.
'...:
,;~. ,<~
:"\') , .
, . , .. ... , .
~ Reg1stro MR: consente dl mascherare llldlVldualmente Ie rlchleste dllIlterruZlOue;
, .t., •. > • • Registro ISR: indica quali interruzioni sooo in servizio in quel momenta per it
. "
-: ','" - ",:-: PIC. Piu specificatarnente, ISRi = 1 indica che e in servizio l'interruzione i ma ·
" '.,1",' .. " '. In questa caso eventuali richieste di piu bassa priorita della i ma non vengono

. '
considerate. Nello stesso istante possono essere asseriti piu bit di ISR (si veda
... ' '.piu avanti).
..
.;. • Registro TR: genera il aelettore di interruzione associato a ogni interruzione (mo-
, , do 8086). I 5 bit pili signifieativi del TR sonG fiBsi (impostati da programma
in fase di inizializzazione del dispositivo). mentre gli ultimi 3 bit sana inseriti
dal PIC e rappresentano un nwnero tra 0 e 7 corrispondente al perife,ico ehe ha
• richiesto llinterruzione.
n· dispositivQ e programmabile.
Sono possibili svariate modalita operative. La
o;,.. :' programmazione si ottiene trasmettendo al PIC le cosiddette Initialization Control
132 Capitele 4 ::P:
~..'il
'i~
, :,}~
Words (leW). Durante iI, funzionamento viene comand~to attraver~o 1: Operation ~.;~~
Control Words (OCW). Sia Ie ICW che Ie OCW sono dJ 8 bit. Il pledino Ao deve,.i~
essere assento a 0 0 a 1 a seconda della parola cil cantrella trasmessa. Nel casa di 7:1~
impiego con 8088 il bus e a 8 bit, iI piedino Ao del PIC viene collegato alIa linea 10 .:':;
del bus indirizzi e i due indirizzi riconosciuti cia! dispositivQ risultano consecutivi. Nel ,:,.~\
. ,
caso di impiego con 8086, poiche il PIC e necessariamente callegata a una delle due >~
meta del bus dati) non e possibile collegare il piedino Ao alla linea 10 del bus indirizzi '~~'
perche quando 1'8086 trasmette sulla parte bassa del bus dati la linea 10 e sempre ;~<,
O. Il problema e risolto collegando ad Ao la linea h e dando al PIC due indirizzi ""
pari consecutivi (di cui il primo deve essere divisibile per 4, in modo che quando si ~:~~
trasmette a questa III'di' a mea I1 '
nzzo II' Sla a 0) . I · ;':,1 .'
Come gia anticipato, la parte che segue illustra il funzionamento in modo 8086'1. i:'.. J", "

'i:
,.!;.~~
4.9,1 Vettorizzazione delle interruzioni .\<~
,:)1
.. . .. . ;, t:~
Ad ogru mgresso ffii cornsponde un elemento del vettore dllOterruzlOne. II compor~ ,,~(:
tamento del dispositivo per quanto si riferisce alla vettorizzazione delle interruzioni e:~'J
... "J
gil; stato completamente descritto (Crr. 4.6.2. Si veda anche Figura4.17). '):
11 selettore (Vector Type) e rappresentato dal contenuto di TR di Figura4.28.. ':~if,
:',-~
,1;(
-.:'

4.9.2 Mascheramento
,·Hq
.:~:
, . }Ii,
p'
;. '...

n registro MR consente di mascherare individualmente Ie interruzioni. In altri termini, ','i~


se il bit i mo di MR e disasserito l la richiesta di interruzione non e visibile dalla 10gica ;';:tJ
del PIC. Cia permette l'abilitazione/disabilitazione individuale delle interruzioni. . ~:~
":'~
.)~
,...' .'t
4.9,3 Priorita ,:,
....
j--r
. ' ,'~
,"1'
Le linee ISRo_r sono gestite su base prioritaria. Sooo possibili diverse tecniche di ,:',1
gestione, tutte programmabili e modificabili in fase di impiego. La priorita puo essere ,"';'~
£issa 0 rotante. :"'l,
In case di priorita fissa, se non altrimenti programmata, la priorita massima e ",,;
assegnata a ISRo e la minima a ISRr . E sempre p08sibile, anche dopo l'inizializ~ 33
Z~i?ne, ::ssegnare 1a priorita. massima a ~u~l~nque ~. In questa caso .la. priorita. ')
mmuua nsulta assegnata a !SRi_i. La pnonta pub essere resa rotante, Sla m modo 'q
automatico sia in modo controllato dalFutente. Per ulteriori dettagli si rimanda aIle ''
pubblic3zioni lntel [lnt78] [lnt79b). .i
Nella generazione della richiesta di interruzione e nella scelta della richiesta da .
service entra in gioco non solo la priorita, rna anche 10 stato del registro ISR. Pili ,,
specmcatamente, assumendo che la massima priorita sia assegnata a ISRo, INTR .
viene asserita se:
.~ "

21 L'impiegocon la famiglia 8080/85 e stato trattato nel Paragrafo 4.6.2. La scelta del modo 8085
o 8086 si impone attraverso ICWl.
-'I"r,.; '.
~i.'::!.
" \
';';' ;." (1
';,i."
1',,1
/
"~'''~''''''

::TC ~'.'
l., .'.. , It sottosistema <Ii ingresso/uscita 133

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

,.. '-:,,~ , .~, non e in serv~z~O ~l l~vello 0 e~ ~ a.sserita !Roi ..


>.: ._non e in servlzlO II hveUo 0 ne II hvello 1 ed e assenta ill,; )
ce.,
". "',. ,'.' '
"."'.~ ,~.e 'In termini di logica booleana si ha:
'.,: .''.',
';
".~ INTR= lRo ISH" + ill l (ISRo + ISR 1 ) +
1
' .... 1 + IR,(ISRo + ISR1 + lSR,) + ... + ill7 (ISH" + ... + lSR7 )
;.'," .,' ,
. ,:','
.',. ">,' . 'D' . si ottiene can facili passaggi:
'..:", . '.: _a " CUi \
'.~.. '", .
c. :.1NTR = ISH,,(!R> + ISR1 (ill, + ISR,(ill, + ... (lR<. + lSR7 ill7 »» (4.1)
:" "
."'::<". '; :AlPespressione 4.1 corrisponde l'arbitro di
. (" '
priorita di ~igura 4.29. 1
'Sui primo cielo di IN'1'A che segue 1a richiesta di interruzione, 1a logica del PIC i
1' , . . seleziona 1a richiesta da servire e asserisce il corrispondente. ISH; 22. Sul secondo cicIo
~ '. ':' . viene presentato suI bus dati il selettore d.i interruzione che contiene codificato il
d' d· . della richiesta servita.
JJ 'numerO or me ~ \
."
, :. '. ' ,.,
'."7 , .. ''''''0
~

y
I
l ,: " , . '
' -';,
q ;.
:' :.
i,
'
"0
, ,
.'; . .', •
Y ...
"


~\ ': ; "" .'; :'.~ 'RO

J ::'>--::..'~,:,:~,
~; ;'.-,., d'
I

'.' d 11' b' d' '.)' L li


y
'n_
I"''''''
lR . t
,
I
I
I
~ " ' Figura 4.29 Schema e ar ltro 1 pnorlto... e nee u.\.() - 7 vanno In ese come e
~ :' richieste di interruzione a va.lle della corrispondente porta di mascheramento.
t~ ~,
,.-.,
.. "-
r-; '" .
~.
'; .
;....
..- I
11; ,':
~;. :.-
,~; ';
;~,
.
·4.9.4 Riconoscimento di livelli 0 dei fronti
!
31' n controllore 8259A puo essere programmato per operare sui livelli a sui fronti dei
)!!:
q
':~ir
.. segnali IR.
:. '- Indipendentemente dal modo in cui lavora (e quindi anche se opera sui fronti),
e necessario che 1a ricbiesta di interruzione ~ resti asserita almeno fino al fronte dj
I
i' 'discesa di INTA. In caao contrario la 10gica risponde come se fosse, attiva la richiesta
.~~'"
,:~1',
)>
. :·IR,... In'pratica se it PIC lavora sui livelli, tutto avviene come se IRR fosse del tutto
trasparente; se lavora sui fronti 1a richiesta di interruzione viene memorizzata in IRR
.,: solo suI £ronte di discesa del prossimo INTA. In conclusione, la differe~a. tra Ie due
l
:-:1 .. modalit" consiste semplicemente nel fatto che facendo lavorare iI PIC sui fronti, e
~"I'
','~ ;.

~2Si noti che a seguito del passaggio a 1 di lSRi, il contrib4to a lNTR di IR j e delle richieste a 1
minor priorita e 0 e che INTR viene disasserita. Si veda anche I'Esercizio 4.36,
\

·..
'1
.
.~~"
Ir.
~l~.~
Ca.pitola 4 ,:r."'
134 " 'I.,'(."T
\ IJj,·.t-ilI
'I""'~',',''
~')~f;;'i :
}'~lY,,~.I
~~,
.. , ...
, r','1
"- .,... ~ ~

necessaria una transizione di stato sulla linea IRi prima che questa possa generare .,;.j; i~~::;t:
I
· .. ;.~;,
,

un'interruzione, !~,~;~)
Ovviamente l'impiego sui fronti e meno soggetto a malIunzionamenti. L'impiego~;;:~: 1,.U~Y
e
sui livelli cia riservare a queUe situazioni in cui si vuole che 1a medesima linea di ::~, i: ,:m?(
.. ',
ricbiesta resti attiva (perche 1 per esempio, costituisce l'OR di pili richieste e si vuole ':"~l~ "'''~' :>.. j ,

\ evitare che, operando sui £ronti, parte di esse possa andare perduta). Xli "~,,1,:'.,1>'",',~'IJ..
. .,
"
~
:."<,,

•.,.,!
'·"·r
,·,,">~";. "

.. ~:'~:i'
I ,"~Ii!
>l.:~ ':H::;'
:~.,¢
4.9.5 Schema di esecuzione della routine di servizio
l
Priin~ di
.
schematizzare il modell? di esecu~iane .della r~u~ine di servizio risulta ne. -::j~ ~~;~/
}t~ ':ff:
cessano spendere due parole su dl una ultenore carattenst,ca dell'8259A, . :'i~1~;
\ ';-:il ~A"'!.~
.,P~OIl"''''''''' ,""'t..... . ,.,:.f.. l '.-; 4~:'
'~rn .fJ,lo:
,"~" J~'!,:!,:'
.uc.. ~""'. .'1~' ",
!I
dl -' ",.'
IItl Sm;lJo ' " ~~, '{i::~i
______ ,'~.'~ Sl:S,I"
, ~ .. ';,!rn ;";,;-~.',
" "~., 'rr,\!' "~
j~ .',f!;;j
.:;~j ·:;;r·.'
+ JSll:I(~O .,.•
;::~
'~l"'"
"'·"I':'

I IR(l ~:·i :~~~:~,


.,j·\i ,.;~'~:;'
Figura 4:30 Schema. della. routine di servizio per il caso di non AEOI. La figura. vuole ·;;tm :·,rrlt
evidenziare che nel saltare alIa. routine, nel cicio di riconoscimento dell'interruzione, viene ':;,;M :b;,~l:
asserito ISH.; nel PIC e viene disabilita.to il sistema di interruzione della CPU, Si e supposto .,~ 'r.¥:./
1 che la routine di servizio riparti ISRj a 0 prima. dell'istruzione IREI-. .,~,~~~!! .$~~:.:
• ~~} ,i~)~,~
",:~:[, ·::;f.;~'

) ,. E sta~ detto ~e sui p~o ~TA viene ~serito il bit di IS~ COrriSp?ndente'~t~:~~~~
alllDterruzlOne che Vlene servlta. Cl sono essenzlalmente due modahta per rLportare~:,'!~ j~}i
basso tale bit, ovvero per notiJicare al PIC !a fine dell'interruzione (End Of Interrupt,
EOl): ~.J ~ I,~';
,~ "*,,
,:\:! ~ \",
I a) .EOl automatico; ',;m ?\C
.....';.:! ,>~
,'_r-~ "L
b) EOI comandato da programma, '.~.;i "Y~':"
';:Jl '.',.','
...o>! ,,'
'::"
, ."(.',.
,,: ,
Ne! caso di EOI automatico (AEOI) il bit dell'interruzione servita (ISR,) viene "'( ";',:::
automaticamente riportato basso sui fronte di salita del secondo INTA. In tal modo. '\;': ;':~
e
per la logica del PIC, IRj non piu in servizio e quindi viene asserita l'uscita INTR ,:,~ .:".:"
per eventuali interruzioni di minor priorita. (ovvero per 1a medesima interruzione se il '~l ~,"
\ e
dispositivo programmato a lavorare sui livelli e ~ ancora asserit'a).e . ' i~ ':"~;'i:
Nel caso di EOI comanda.to da programma, spetta at programmatore decldere :~? .'~
il momento in cui IS~ viene riportato a 0, trasmettendo una parola di comando at .~':::, .J
I 23
dispositiv0 . . J .~.:>
';•.:1 : ','
, 't( .. '"
';;1 \~,,'
23Per l'esa.ttezza., si deve trasmettere OCW2, ':;:~ .' :'>"
".
I
,.~:
" :. ,r"
'f';;
-.~
;;J!:(
"


'!:f.... "

.;~:
~:!:l:'
-
':::->J1.
T~ ".; 135
Io'.:.": .
''''''''-
:t·.. '~' "..,
~[';'";:.
Iii:;",.,<
.'- ....,.-
~,"'
," .
',":'-,

::,·L2:. :... 0via.mente la prima modalita , ancorche piu efficiente, cleve essere usata con
): ~... /'" : prudenza, perche essa induce facilrnente un comportamento euoneo. Nella
Y:'2.;.~~~te;che segue si assume d~ non utilizz~e la ~odalita ~O~. ..
(~(;·;r. La Figura4.30 schematlzza PesecuzlOne dl una routme dt serVlZlO.
>..~, •. --.;. ••
,.~".-;
,,,"~'.:'-
" "'-, '
Jr',,: .. ,·
... ~.~ ",'
!;..'.. ~
>'"-:" ..··4' .9 .6 Esempio di trattamento di una sequenza di interruzioni
;'.
';a i'~
'L·i~: .. -~'
,
nidificate
¢" ..,."
:}~W~E'}e~ 'raccogliere Ie idee, ~iene ora studi~~o il con:p~rtamento del sistema CPU-PIC in
/,:lLr,~~erj~ento a una gener~ca sequ:nz,a dl mterrUZlOlli.
;~~i/, 51 fanno Ie seguent, assunz,o~l. . ,', . ,
~~")J_':-',;.1. Le mterrUZlOm hanna pnonta fissa. IRa ha pnonta massuna lR7 Illimma.
;~:;;:':'"
:f'~.; ..•.
2, Si parte da una condizione in cui non e asserita alcuna richiesta di interruzione,
';,.;,.,,-,
,1';""" -:--'
i';·,~.-~: con il sistema di interruzione abilitato.
",''-l'~'.
,, :~:"'.' ,
~ "',
j. ,: ~ ....
·C·'- -,'
3 Le interruzioni avvengono secondo Pordine temporale di Figura4,31. In partico-
'i;;r.{~ r '
,'" ,'.
'.. ,;~l,.,"
lare Ie interruzioni IR2 e IR4 sana coincidenti 24 ,

,,~,,~:'~:'~~: I bit ISRi vengono azzerati nel corso delle relative routine di servizio. Da un punta
'~~:.::; ",' di vista pratico questa equivale ad assumere che il programmatore trasmette al
t};:<.':- 'PIC l'appropriata parola di comando.
:~i>:~~:'·.. , . .
/~~2·~','·· 5, Le richieste di interruzione I R j vengono azzerate appena il centrolla entra nel-
"
:~.~~)/.:.:' 180 relativ~ routi,ne di servizio e, comunque, prima che all'internp di essa venga
~:j\",:,,:: "'. azzerato II relatlvo ISRi'
'';'/·:'" ..::'
" " ,
~~~h,:\:' ..Si facci~ riferime.nto all~ schema di Figura4,31 e di Figura4.32 e si osservino, in
iV'.):~:P¥tlcolare,1 seguentl eventl
,,,:;::
~'. •
All' 'I PIC
'1stante tl 1
'INTR
35sensce
d' IR
, a causa I 2 e
IR A d II
4.. causa e a maggIOre
'
, ~ .:. . priorita. viene servita IR2 , Conseguentemente il controllore genera il selettore che ,
C ;~," determfn~ il salt? alla. rela.tiv~ routine di servizio (R2). Si noti che, entrati in R2,
L.
....' INTR e dlsassento a causa dl ISR2'
.-
I

:"\' , I
" • AWistante t2, nel corso di R2, prima che in R2 venga riabilitato il sistema di
.. '., '

interruzione> viene asserita IRl . Conseguentemente INTR viene di nuovo asserita.


::' ,
All'esecuzione delPistruzione STl in R2, all'istante t3, si genera un'altra fase di
~' __ INTA, In questo caso i! PIC fa saltare a Rl. Ne! corso diRl ISR I viene riportato
"."
,.'
basso (istante t4 ), mentre il sistema di interruzione viene riabilitato (istante ts).
La routine arriva a com pimento e l'esecuzione di mET riporta al punta in cui si e
I ,'
,
, ~.
,
::" . verificata l'interruzione in R2. n fatto che Rl abbia azzerato ISRI e riabilitato il I'
~ ,
, . sistema di interruzione non ha avuto conseguenze, in quanta il PIC ha rnantenuto
INTR disasserito a causa di ISR2'
I;
I"
> .. '
'.', .
"':"""," iI f.
', :'. '., '411 termine coinddente deve essere inteso in rapporlo alia ca.paciU. di discriminazione del sistema: I;
;:'" ,sui primo cido di INTA sono ambedue presenti.
:;,".;;
":'"
(If.. :•.",'
,., t,:;.
-. II
,;;
"f.;;
I
136 Capitolo 4 ,~];:
,.,~.,
'~.il
1:~~r
:~::;

R2
R'
R2
'~~~:i
:.·:C
"2
R3
R4 R4 \'g{~
P
..,..
,,
,.,
P
.........
:' ~ '
-'iii;
,:.:::~. ~wr
..
"
~;-,

,",

't< t, It, ,,, ....·\1 ~"


to
'" " t.
" t, t, t. t" t. t,. "'c"'~<1
:,c', , ,,;;,
"..

m l$IlJ(-a m
'" lUlZ(.. n, ISltl(.. ,~,
IU'HI lllO IIl(I
Ji ~r:
,,'1.,1 '1';,
~ I I
I I
L-J
I
I
I I
',\.~~ tr
I \J~ :~~
I
" ;:~fj ;Jk
]SRI
"'::;'~:1 ~~:l
':~~?~ JF.
ISR2 ,~;~' ~k
ISR~ J~~ ~r'
. ,~::;,- ;~}
ISR3
I I )}"~ :~
FigW'a 4.31 Esempio di sequenza temporate degli eventi. .;:~ y~
: ." /1; i~:
p .~~.~ ~~
01
02 ;~
Illl!-' },,
~ $f
ISRH-O
~~
.l --------- ,,t,"
,n ~~
~
R4
1/1:2(-0 ISR«-l R3
Wt
f'.-. It<~O 1 I~~~J-I ::
..:.
, Sil ISRJ(-O . f~
r-
I'fRH~O j'" '1
I"
\
~
.

Figura 4.32 Schema di interruzione della routine di servizio dell'esempio,


*1 ,,' . ~
~~'~I '
::.1. }
• All'ist~te .te il contr.ollo ritorna a R2. Uazzeramento di ISR2 in R2 (istante t1j'~\ ~
detenmna Il passaggto di INTR aIlo stato alto a causa di IR ancora asserita e"'f "
conse entemente a una uu f 'd' INTA ,4 .~,"., )
gu , ova ase 1 ,can salto ill R4. ~ 'tit
• N 1 d' R4 I" ' . , , . 'n l
e c?rso 1 ,~lstante ta, Vlene assenta IR3 e la hnea INTR nsulta dt nuov01' E
assenta. Quando 10 R4 viene eseguita l'istruzione STI (istante tg), la CPU entra.!' . '
in una nuova fase di INTA.
l' p' t .
n
PIC genera it vettore relativo a IR:3. R3 arrin
IRET f ', .' ' .. I:'
a:
cone U810ne e 18 rUZlOne a tornare a1 punto dllfiterruZlOne m R4. .:r;
. " .,. '. . .. "r,
• 81 not1 che nentrando 10 R4 11 Sistema dl mterruZl0ne ablhtato. Per 1a loglca del· e
PIC, fino a che non viene azzerato IS~, e in co~so di servizie questa interruzione(.,~
•4
,.$
,:; ,. : ,.
~T~I.i~;':.
~lol').·~.,
)
I,.,.,.,.,
, "" 0.:; /: ..' '
;)1\; :i"" ~, ....'.
;~~':'~ ":'. '
:~:':>:'1:'~~'~'_------------------~n::..:s~o~tt:O:S:is:t:e:m:::.~di:·~m:·~ll'e:.:""=S~O~/~us=c~it~.'____'1~3~7~
, '. I'":'''
l"-A..'. ..J
r?~:.-"F.,......
;~;·:.;,i;.
)"" 1
i~\':1,'/'.':· Dat momento in c~i .ISR4 viene. azzera~o, per la.logica del PIC ness~a interru-
~:/\?":"'!'.: zione e piiJ. in se~vlzlo,. mentre illvece e aneora lD corso ~4. Da R4 II cantralla
~i-;:~r~:~: ~~torna. a R2 con PlstruZlone IRET e da R2 al programma. lllterrotto. 1
,',,'""
'-",'"
' ., '.
, ... ,,.,,'
r,::·?' ..-:· . ,
" :~"" .
,. ., , ,';'';
•.•••

0
:,·'. 0 L'accesso diretto alia memoria
,' ,,' ~ ~,~
1

r:'i .:'~~tto controllo di interruzione i dati v~ngono tr.~feriti ~ ma~a molta ~iu efficiente \
~i.::>:'Che a controlla di ~r.ogr~m~. Thttavla, a o,gn~ l~terrU~lOn~ e ~e~essano eff~ttuare
k~<,:<::'un certo numero dl.1struzlOnl ?er salvar.e e npr~stmare 1 r~~stfl di CPU, cancare e ,
l';;':' . aggiornare contaton, ~untaton ecc. Gli ~sempl .pres~n~atl 1~ p~ecedenza m~tr~no
.-'~. ':, cbe, per ogni interruZlOne , vengono esegmte de~m~ dl IstruzlOnl a Eroote deli Ulllca
k~~;:;}.;:"istruzjOne di·trasferimento del carattere alia penfenca.
I
e e
'i:.,~;·;···,'~:;' Se la periferica molto velace possibile che la frequenza delle interruzioni sia cosl
}:;t,' ,'.!'~t'a. da non lasciare, tra interruzione e interruzione, il tempo necessaria all'esecuzione
~;ti.<': ,dell'intera routine di servizi~, Si tenga presen~e che nor~almente Ie perifericbe velo~i \
~t;~'.:'6perano in modo sincrono Tlspetto a un propno clock, dlverso da queUo della CPU. E
:i:!??",;:~ questa il caso deUe uriita. a disco 26 , per Ie quali la velocita. di trasferimento dati puo
~~~'~<?superare. il milione di caratteri al secondo (stesso ordine di grandezza della velocita
~{Yh.~~',di esecuzione delle istruzieni da parte di una CPU eli prestazioni rnedie). \
,;,o:,,-' :";"A,'''' . 26
f2:'~;>~\;~,\, fu questi casi it contrello sotto interruzione risulta praticamente impossibile .

~i~~t·:;,::,~~~,~· Una tecnica piu efficiente cii queUe' fin qui viste consiste nelPintrodurre un control- I
~·¥.~;~j~-lore"hardwareche gestisca direttamente il trasferimento dei dati tra periferiche e me- I
~~fL~;\'ri1orla centrale, senza interessare 130 CPU. n dispositivo in questione viene denotato
tf·::f:'-cph~la'siglaDMAC (Direct Memory Access Controller). La corrispondente tecnica di
:tt:,c',:;;«trasferimento dati viene detta Accesso Diretto alla Memoria.
......~,':., \.... " '

~:;:t~;'~-'::}~;· .. ln Figura4.33 viene schematizzato it modo in cui un DMAC si inserisce nel


1~J~':~,"(' sistema 9PU·periferici. n significato dei segnali e il seguente:
I
" ,., . ,.""; .
\~l»(':':""C
~.-f'; .. ,... ;:J :,j:; "..J.,
..r~\\:: '," '.> .
~"{:"'.':' ,,~.''';:";:--"------------ (
~;~j,:::::';-.::;,:~t noto che i dischi (rigidi) sono tenuti in perenne rotazione. n trasferimento e sincrono con la
':::''.7'i~:_·'(:·~'f~~~lone,d~~I'8olbero. La velocit~ del trasfe~imento ~ determin.ata d~la velocit~ di rotazione e dalla
}~·",-,,'.·l: dens~ta dell mfOl'mazione memonzzata sulla super:ficle magnetlca/ottlca.
~{f,>~.·",::",?IlE .faCile c~nvice['5i, ch.e, d~vendo gestire ,il tr~ferimento di un pe~fer,ico, ~o~to veloce, c~nviene
"'~/-'.'. ::,/.lDunclare al!e l,nterruz,lO~ (evlt~ndo 180 pe,rdl.ta dl tempo per salvataggJ, npnstml ecc,) e dedlcare la 1
)~~:/,,;,.:l:CPV~questa sol.a attlvlta. per II tempo rlcblesto.
~~,:f.·,.:):-Y~e la, pena.. dl ricordare me neU'ineieme di illtruzioni del microprocessore UO era previllta una
li~'h' ,;:' ..; ~pe~rfica lstruzlone dl I/O (l'istruzione INIR) cbe: (a) tr8.\lferiva un byte (tra perlferico e memoria
E::f ";' 0 vl.ceveru); (b) increment.a.va. aut.oma.tleamente un regist.ro di CPU predefinito come punta-tore;
':~:r}':"<-"<~} decre~entava un re~i8tro dl CPU predeftnito come conta-t6re e ripeteva i tre puai fino a che
n····.·
.1'-':.
.:,~~esto re~lstro no~ r~ggtungeva 10 zero" Di c~nse~enza it ~dice corrisp~Ddente al so~programma '
'. I trasfen~ento SI nducev80 alia sola IstruzlOne 10 questlone. 10 pratlca era posslbile seguire a
l
; (' ,.controllo dl programma i trasferimenti di periferici di altissime prest.azioni, a.oche se, oVviamente,
':' -';-: '.' ' ~a Cp? ~est8ova dedic80ta esc1usivamente all'esecuzione eli questa istruzione per tutto iI tempo che
,; }'"

ii"'..." ",
essa .nchledeva. Una tale istruzione e di poco interesse se il cakolatore deve poter lavorare in
,\.~:.~ . . ~ultlProgrammazione 0 in multitasking.
I
-l;;.,';'
\
,

138 Capitola 4 ."


..:
'
~~
\ ~~"I!l~\
'W':

fi1; ~~

· DMREQ:
- BUSREQ:
richiesta di trasferimento da parte del perifericoj
richiesta di passessa del sistema di bus da parte del DMAC
': ~tWF~
il!r.yf"
alla CPU; ;!f#
\ · BUSACK: rispasta di richiesta accolta da parte della CPU al DMAC;
· DMACK: risposta d.i richiesta accolta da parte DMAC a1 periferico, ~!~:r~:
"~~;l
. ~~~~if~
,...' .'~~'-..-~,
\ BUS INDIRIZZI
BUS DATI
, ' l !,."' '.
r ,~
1 --"
" '.~. ~!~:;\f
~'~.
".,!j.

.,,~:'[ ::~I~1;~
CONTROu..o
.- ,.:::]~ ~~~J~4
:;:.1 ~1lbi:'3~
\ ~ .
.. , , ~

.,
~
-0
~

.
~
-
. .
%,,,- ,
~ ., . :~~ '.~~~
'.,J>;; '~*~~W,;

.
- 0 0 0

~o
, 0
" '0
~o
aUSREQ
',,- DMREQ 0 " 1 ~J"
:,f,; ·.~i:;1'
,lLI\',~~ ,
O
"
2 ' 0
\< ..., 'J!!-~+"
~ -~~
\ 'f~' ~';~.
".

\ '"
'. "I

, BUSACK DMACK ~. 't1.;1,


. }~, ~l~};
MEM CPU DMAC PERlF, :' ~.~( M~i~f~
'. if,,\ ,~f£,*
~
. , ,.' ." .
Flg.u.ra 4.33 ~~)I~ eli: cOlln~lOlle del DMAC, Per semphclta. SI e a.ssunto un bus dati di ;~:~1'f1ri;
8 bit e un bus mdirizzl di 16 bIt. "l~"":
,10;.:1:: 1 .' ';;~f,S:·
·!,j~;i,~

,::~!~ ~~r.
. n trasfe~ento dati tra un periferico e la memoria richiede che il DMAC entri,~i:~ ~i~
\ l~ controllo del bus normalmente pilotati dalla CPU, lntuitivamente un trasferimentO';~'! ;~~':
51 eH'ettua nel seguente modo: "Cl \~J~~}l
, ~~.' ~j.'''
L'int:rl~cia del periferico a:sseris.ce ~MREQ per indicare ebe e disponibile un'·:· ~
~1'[~
I 1.
dato ill
.
lDgressO, ovvero che 11 penfenco e pronto ad accettare un dato in uscita:\W. '~~l
. 1,' ';;'i~~
2. La IOglca di controllo del DMAC as~erisce BUSREQ, richiedendo di entrare in::I;}~ :~{$
controllo del bus. ...~~~
/~l~ ~"!':L~~
.".~~~''
) 3. La CPU risponde asserendo BUSACK. Questa segnale indica che la CPU ha .~i ;.~~{~~
..;.t~·-::;Wg.1:

pos~oin alta impede~a i piedini che corrispondono al bus degli indirizzi e dei'i'f:~ ;~~
datI. La CPU restera ill tale stata (detta usualmente stata di HOLD) fino a che :~~~ !';~

l BUSREQ resta assento. '.~~l·:~;~:


4. ~ ~uesto punto il DMAC 'pu~ pilotare il b~s degli indirizzi, rispondere al per- "Hl~ Xt~::
ife~~~o con DMACK, ass~ue l.l comando dl lettura ~ scrittura in memoria e il ,~,~;1 ~f.
,\ cornspondente comando dl scnttura 0 lettura verso l'mterfaccia. ,'..r ,~,,-.
,~" C'~ .. ,.~.. ,: ,,,
.. '{.~ ("
5. Finito il trasferimenta, BUSREQ viene disattivata e il bus tarna in cantrollo alla ,~, :i,\"
CPU che .disasserisce B U S A C K . j " , V'~.,~ ," ':.. ..... :

Una descrizione pill dettagliata viene fornita nel seguito, ·J,ft ~,~~
\ ,./i!; .; _
·:f~'""·,,,
,.!.! . I
,.!~
'.'
":;
" ;':
4.10.1 Struttura e funzionamento del controllore DMA .
,..f. .,<:"
'.!.i '
,..i . ,:
~);~ '. ''',
\ L'architettura di un DMAC prevede come minimo: ,."., ...
'i~
...
~'.>

!, I'~
;':j: .11
.
.:~~ '.;:
. ,',,", ,. "
~".'1j .'"

\
\
i,ill;' ,. -
", .•-t'
;...,-o{\i..(
."'.,." >
"1~;::::' II sottosistema. di ingressojuscita. 139
'~ ~ ,....
: .~~:- ~I
~ ~'%Ir;,}.
\~~.;j,,.,
:j!:';~"'~'" '.
~,,,~: .. 't
,::
~~~V:» n contatore del numero di caratteri 0 parole da trasferire;
"~'1~~,';30 : U , . '
#~~S~!~ un ~untatore aHa posizione d.i memoria in cui verra letto/scritto it prossimo data;
:~;t::,:-)" un registro di comando che indicbi il tipo di trasferimento;
\Plt1~' -~ , •

~~':~:;d:)' ~n ~"entuale registro di stata.


,.,.~"<'"
...,•.
.,;, . - ~• •
,ri{l~j '. '. . , .. . . ,
fi~{;~.;~: I registri sopra ~l~n~atl sono ~lf~n~I, per sern~hc.l:a" a un controllore con un
~~lr.,i unico canale. I dispO.SltlVI commerciah dl~pongono dl plU di un canal~ (normalmente
4t:!t'4), ciascuno dei qual! prese~ta ~n ~uo .re~lstro .contatore e un suo registro puntatore.
~lJ~~':'~'~..
Si distinguono due statl pnncipall dl fuuzlonamento: 10 stato 0 fase dl program-
~~r~,;~iOlle e 10 stato 0 fase di e~ettivo trasferirnent,o. I due so~o. t:a lore mu~u~~nt~
;I~J.~ esclusivi nel sensa che se e m corso un trasfenmento e Imbita la possIblhta dl
27
,!i;:'['>,,' II
';.~~t~p'rogrammare il contro are. .
"'l!i"""''''
~~ ~ ... ,;"'"~~, .
I.'~'
~:'~"\lI,I,
,i!.~,~~ "'1 1.'
;}i~~~~se di programmazione La rase di programmazione serve a trasmettere al DMAC
~t~.:: Ie Informazioni che definiscono la modalita di trasferimento sul canale, In questa rase
*i~~ftt~il.controllore viene visto co:ne un di~positivo di ~/O dot~to d,i u~ insieme di :egist,ri.
;~1~'~~Hn sostanza la programmazlone conslste nella SCflVere nel registn sopra menZlOnatl,
·I;I~.I'~" ,,..
~~':f!;· !'; ,
.
.f~t~?'h~sferimento dati Ci sono due modalita fondamentali di trasferimento.
~~~>: ".' . . 8'
~:i;~~~~!:1. La. modaltta dl trasfenmento .sm 010, dett~ ~che ~ycle s~e~hr:g'l l? ,qu~nto 11
.
l

l'I~l~~,~. cont.r0 ore o~c I SIS ema 1 bus solo per 11 clclo 0 1 pochi cicli che 51 flchiedono
''::':'''.'' per J! trasfenmento,
~}l~~'i: .,.. . ' "
l~!.'>,". La ~odahta ?I trasfenmento a blocchl. b~rst), che mve.ce ~revede I oc~upazlOn~
~S~~.\\;..:·"
del SIstema dl us per tu 01 tempo nchlesto a trasfenre II numero dl caratte.fl
$~~~',:' scritto nel contatore in fase di programmazione.
~~i>:J- tl· ,
''''~.,'>..:~
:':"'i$:. ,~' • La parte che segue e dedicata a spiegare in un certo dettagLio le due modalita.
~~sjs,;·~~) .
~~~~:
~:r~"l, 4.10,2 Modalita di trasferimento singolo •
,,
:jf:~t:,. ', ,
,
::~r'~~,,',n tra.sferi~ento di un singolo caratt~re p~b essere schematizzato con la sequenz~
.(t:( descnt~a ,l~ precedenza (CEr, 4.10), In CUI al passe 4 vengono svolte Ie seguentl
.::,~,1.T:-,.r,·,.operaZ10nl.
, ",~, ,.' ..,
..
... '.
",y'.,",
.
.;

",\:,>" 1. La logica di contrallo del DMAC:


" ::,:, '
:-::~::.'.,
• Presenta il contenuto del puntatore sul bus indirizzi.
~:~:~?,: ,
_: ',," '
,.' . • Attiva la cappia di segoali MR (Memory Read) e lOW (I/O Write); oppure I
I' ~. '
;'."
:"- .
" la cappia MW (Memory Write) e lOR (I/O Read), ,
" :""~ .~" ",
:" lj ,
..
,'''.
. ,-.. ,27Piu precisamente: quando il controllore st.a servendo una ricbiesta. ,
,
.•"' . . 28Letteralmente " rubando deli (di bus)". . ,
.. , .
~""
1 .- i'
..
:;~.;::',
"
" ,.'
,~. ,"
- ''.--:-""
,
140 Capitolo 4 .;;~~
. .,
---~~
- -r"--
.' ;''l'
- \,li'

• Asaerisce la risposta DMACK. Di norma, a fronte del DMACK, il perifericQ.:J' ;t~ ~.,'
,
,::'A'.\
" ' ,

' 'DMREQ'
d Isassensce . -,..-:"",, ';?
, ';'" l[il
"'f-

2. Viene decrementato il contatore e viene aggiornato it puntatore (decrementandolo'~~~ '~


o. incre~en~andolo a seconda della scelta fatta in fase di prograrnrnazione)j viene :::~ ";
dlsassento 11 segnale B U S R E Q . · .'~J 5lj
-'.;.•,-:0:' ~JI
_,. "
:.' '. ·r',
3. La CPU, riconoscendo che il sistema di bus e stato 'Wt
rilasciato , oe rientra in ..;;,,,, ,.,1
possesso e disasserisce BUSACK. - ,
. ...
.. ",~,
"'J
'~
:,'",1 , ,:.
,
':-i" .,o

Si Doti che il DM~C ottiene il :o~t~oll,o del bus' per il tem~o necessario a effettuar~':,:!~" i{
una lettura 0 una scnttura (pachl cIch dl clock). Thtta avvlene come se, durante il- :::~. :l.
trasferimento, 1a CPU non ricevesse il clock. Per questa motiva si pada di cycle "';:;~; ;,,
stealing. n bus viene rilasciato dopa il trasferimento del singolo carattere 0 della <>i '~
~ingol~ parola. Di consegu:enza,. il trasferimento di u~ bloceo di n byte) richiede ehe-:~1 ;:
1 'pasSl da 2 a 4 vengone ltera~l n volt~ (fino a. che Il c~ntenuto del cont~tore nOn :'~~r :~
diventa 0). Nat,uralmente, tra iJ trasfertmento dt due datI, la CPU esegue lStruzioni~\" )i
normalmente.. " , ,."::,;~~r~,,i"',:S
Le temponzzaZlOlll sono Illustrate m FIgura 4.34. '-~:~~: ~t
:~~ t
':{" ~S
DMREQ l;--I\J ?I '.J.,;: ~

BUSREQ Lr-I\
~ "'I -~,t':, :;
~.;~~j J:
\ ·;.~l: f
BUSACK II '4 "'L -~:; "'
>.!\,
'Ii
~
1
· ,), l L
• '~'\f), ;d
DMACK I II "I I '.. -{!~
",,~: •~
,
,". "
" ..c'"!,. C-
MEMR ---,---;\ II I 1_ ~-.",(
-:""i'~ ,
,. '~t'!'l ::
}/"
"

:'f
~"'"
::I'~

I/OW _ _ _I 1 II I Il-- ·

· "'1
.,.,
'.'/.
"
~
.

~igura ~.34 piagr~ma te~poralerelativo al trasferimento DMA di un paccbetto di byte;::~~ ~


m modahta di trasferunento s l n g o l o . t . ? ' it
.,~ '
"'j;~;,"
~.,"-

", ,' "


..
.'/'P.~
. ,.t.:;
"
~.t~ ;
4h "
4.10,3 Modalita di trasferimento a blocchi ':,,:;;:~ ~
'-& ,
n trasferimento a blocchi differisce dalla madalita precedente in quanta BUSREQ .;:~i <
. .. ,. .
vlene dlsassento solo se nsulta zero il contenuto del contatore dopo l'agglornamento. /M
,,'f;
In pratica il DMAC, guadagnato it controllo del bus, 10 rilascia solo quando it bloceo ,::,~ '
degli n d~ti specificate in ~ase di programmazione e state trasferito. ?vviamente' :~~~ ~
la CPU nsulta esclusa dall uso del bus per tutta la durata del trasfenmento, Le ,"'1
temporizzazioni sono illustrate in Figura4.35. .~
Questa modalita e indicata per periferiche veloci. Ji:~
);1
.;:;":,:''-
,:/:::l, ••.
tjii"i'"
.it:.'i:,;.·'"
~"-":
1!'1~1~"": .
)
!D:""<-""'-
~.,,~,,;;.4j}tr: n sottosistema <Ii ingressofuscita 141
'~I~;""
" "
• - - -:11." .
l .~.!;';~.-- .
IJ~",.j!.~,~y". ,.,
c
.~.:..-
, 1
1~~;'I'1·~~,:.':-::;~,- ,
'0 ,.. . .
~wm;J
', ~..;
.;-'
~"{.'ij.Gf_ .",
,~.,

...... '.1/<1'1_ ••'''···,


~l'I" .. -.)i''''~''''' '-.. DMREQ
?lK'I;~~i!i;t~~0" .,
ln"\I0-"r'" .",. "
-"O., ",,,,!,.. ~,,,. >-, ' ,
~I~~'~!t!{~L
BUSREQ \..r1 I II 1'---
I
;:~M;~'~J\i: . :·:
BUSACK -I
II I II ''>L
j?%!:·i;'i;;.<:~L,
I,~,J{'(I1":"":'L:"
-r • ...,~I .. v."·'
,r"·-l"t,:··,· - .
t~~~~·~.;:;::--:._.. ':
1\:," :~'." ~
D!>lACK
__¥ II 1,--- ]
J~,',;"", .• , .... -
~" .~', "' . .',---
.}.;';i:;,!;~,;'''':
,. ,,/.
o:._,':',\j ", - •
:"\_-
,
MEMR _ _ _I 1 II 1 1,---
{~~~~,;~~~,:,:. ~:
.:~,'(~N-\~Y:':-'", Ijow _ _ _I I II 1 1_ \
,~~;~;.~H.\'<:">::; " ... . . . .
~~~::::~:_~Figura' ~.3.5 .Diagr~ma temporaJe ~elatlvo a.I trasfenmento DMA di un pacchetto di byte
:~~t:;:~~'i:ll:fi~,~Odahta: d.i trasfenmento a blocchl (burst).
~!1h~f}td:;:~.- :_.', .' I
I
i;ji:'M~:,:t:'" U' , d' DMAC' '1 d' 't' I t 1 8237
S4.1l n esem plO I . I ISPOSI IVO n e
t{~~:bf.-~-L;'- . .. . II
tit..~{:;tiA titolo di esemplO des~rtvIam? brevemente II componente 82.37': ~t79a], ?-o control-
Sy,;,~.;~'t,~;-''<Jore di DMA a 4 canah. Ogm eanale puo effettuare operazlolll dl trasfenmento per
~~,~~~~,,~ti.in massimo di 64K caratteri l'una. Ciascun canale pub essere programmata in modo.
;,':-.r::~~·:'f":da autoreinizializzarsi al termine di un trasferimento. Inoltre sono possibiLi i tras-
::;~;;:'1;1~~'::ferimenti memoria-memoria. lnfine e possibile aumentare il numere dei canali con
ff..:::~t!~Ja- semplice aggiunta di altri 8237 in cascata. In Figura 4.36 viene data 10 schema
I
')irl .,~ Iu"
~~it>.~:~
1_"""
L:t,':\1:~,,:,~,
.,.:;,
.
nZlona1e.
'.
d.. ~"W!i",'''''c
~·"·"~·II;""',",,-:
,..,,:r:(•.~, ... _,.'r"-'
~", .... :.
~ ,
,
,
~ ~
• \
""~.-.-~";'''''
-I'"
-.-
"'l;;"-'~-
-
fe'
C1,'tJ'\I.'':'' ;;('.: "._
.~''''''''':'''
,\"",~"''''''~' .-'
M
<
~

, ,
< ,
Q

::';')")' r:',~:-"'.-- - r cs 0 •< 0


~
';';'~:"'~''';:;:;'.'
I
< Q
f·'._." ..
,;I.;r,;r--;·_-r.., 'I ,
""1"lIo,O'T... ,.. • •
~"
.~.",'; ,'" ,".
.•'_;t,;, ~­

.' \
~~:':{:'0",!'" ,-' HLDA' DACKO-3
t;,"'" -~', _ HRQ 8237
'~-'T'
-,,~ ~.'

", -, ..
"'" ,
...
, =1:- '/
..
"N~ , .:' , .
:",",'"
'''.:''.'.

••.:~.:.,:~_ .;".,_-- ~ .
EO, ~
~
u
"w~
~
~

-;
Q
~

-
0
>
Q

~
~
,,
~

,"
~
~

"
.4
OREQO-3 !
;'~~!~( ',:' ,.,':' -
"".'r .. :'~;'
~~~'~~,~;': ;~,:. .
,~_~'> '·;·>:F~g.ura 4.36 Schema funzionale dell'integrato 8237. II dispositivo e un integrato a 40 pie-
j
<:!~... ':i:',' _ diUl: .~. p~esuppone I'impieg~ di un latch est~rno in cui viene appoggiata la parte alta.
~ ",\' '~': ',degh IndmZZl, presentata sulle hnee DBD-DB7 (51 veda il testa).
t: ,.' "
':'~::r:--
~:\.;:, \,~'.,' _ " . ""
l
:,,', ' 5t notmo Ie 4 IInee per I. nchiesta dt servlzio DREQo - DREQ3 e Ie corrispon-
'. .'d~ntl nsposte DACKo - DACK 3 , relative a ciascuno dei 4 canali. Essendoci 4 canali,
'~:;";,f';:,:,' ',clascuno e equipaggiato degli appositi registri (CfrA.IO.l). I
~. -,
,
J

I 142 Capitola 4
".~
...
•", ':.;
-',?
1 ,~,
'jt.(
"..
.~

.Ii'..
. ,.;1;, \ttiik
HRQ (Hold Request) e HOLDA (Hold Acknowledge) sono rispettivamente l,a linea,~, ~~ie
I di richiesta d~l bus eli sistez:na e .qu~lla d~ ~ispo~ta. " . .:~ Wi'~'~
In fase d.i programrnazlODe 11 diSPOSItiVO Vlene seleZlonato asserendo 1a Imea OS. ',;:; 'M~r
Le ~ee ~OR .e lOW sp~ificano I.a lett~a ~ ~a scrittura del registro interno al dis",:,~fJ 01~·,;
pOSItiVO Identificato traIDlte Ie 4 linee dl mdmzzo Ao - A 3 . La 1ettura 0 1a scrittura: ~~~ ;h-~;
\ e
in fase di programmazione sempre a 8 bit (DB o - DB r ), anche quando il registro \1~ r.J~:;'
'
lDteressato a b'It. In questo caso occorrono 2
e'16 ' ,
operazlODl. , .-'"
-:;~:~,
.,,,
"!;ir~
In fase di trasferimento Ie linee MEMR e MEMW trasmettono il comando alla'~;) ~~~':-
memoria, mentre Ie linee lOWe lOR trasmettono it comando corrispondente alia. g'.~, :,:~:;;
periferica. L'indirizzo di memoria (16 bit) viene presentato su A o-A r e su DBa - DB7.~ ;1.'~
1 (parte. alta). ~oi~.e perb il bus de~ dat.i deve essere impiegato pe: tra.:feri~e il datc> :~, ~Tf:~
presentando l'mdinzzo 1'8237 assensce 11 comando ADSTR, che Vlene lmplegato per .~i. ·F.f:
memorizzare la parte alta delPindirizzo in un latch esterno. II comando AEN viene',.:A; '~~':

\ usato immediatamente dopo per abilitare l'uscita di questo latch verso il bus degli'.~~;'~ }:':
indirizzi del sistema, ricostruendo COSl l'indiriz~o su 16 bit e permettendo l'uso del '.:'~~ f~r
bUB dati per il passaggio del dato letto 0 scritto.:~~ ~~»
La linea READY serve a introdurre eventuali cieli di attesa e dilatare la tempo-- ~::' '::·:1

~
'," -"..
rizzaz~one ~ lettura/~critt~r~ d e~la memoria
0 di com~do, de! perife:ici. ,\~t £1:.F
81 notl infine la line~ bldirezl~naleEO~. C~":le uS~lta lD~ca che il canale che sta '~, .-L
trasferendo ha concluso il trasfenmento dl tuttI 1 dah. La Imea puo essere portata ::;i 'f-;"
,I bassa dall1esterno per forzare la conclusione dell'operazione di trasferimento in corso, ;~~ ~~ts
,~
"&
:.c. ,,;,
-j'
.:~:

4.11.1 Funzionamento :",~~# }}~


~~l ,:~<
,~_~" ...,
) n comportamento del controllore 8237 puo essere descritto attraverso 2 macrostati 0 ~~~~ 'J}
• fasi: ' 'f.~ :$~!
a) la fase di inattivita, detta anche (idle); ':~l!, ~t:

l b) la fase di attivitil,
,.·,.ij~l :::;
."~I ,li
. .••A~
''''
-J'
,,,
"j;.
:;1\ ••••
,-.' .,.
~
La descrizione seguente si appoggia at diagramma di stato eli Figura 4.37. Facendo 'J;:~~ >.:
'·'iI ..,.
riferimento alia discussione generale nel Paragrafo 4.10.1, la fase di inattivita corris- ... ~:~~.
.,·,,,1
ponde alla fase di programmazione, mentre la fase di attivita. corrisponde a quella iv-i :~(.i i"
1 detta eli trasferimento dati. ....,~I~,: ~.;'
0""" . _
,,"
,.,r,i',' .: .',. ,
~
.
· I"
.:.<, • ~

Fase di inattivita La fase di inattivita. stato Sr> corrisponde alIa condizione in cui ';I;',
,.:;: .
\ il dispositivo non sta servendo alcuna richiesta, ovvero ai periodi di tempo durante i •• T' .,.
quali nessun canale ha. in corso un'operazione di trasferimento.
.,0. '" '.'.'
.';: . ;
"~!i :.;"
Quando si trova nello state Sf, la logica del controllore accetta comandi dalla "li ~

I CPU, I comandi richieclono: (a) che iI dispositivo sia selezionato (ovvero, linea CS :...~ ""
asserita); (b) che sia asserita una tra Ie due linee lOWe lOR. L'effetto del comando e
scrivere 0 1eggere il registro interne del1'8237 specificato tramite Ie 4 hoee di indirizzo
·:Ii , ..

,',
..)'!
.,.~j

· ."
.'
..

'~~: i.
Ao - A g , ..'
I
"
'I"'
~.
" , '.
·, :Ii
'~~ 0'
Fase di attivita Descriviamo rapidamente il significato degli stati della rase di ,~:
:\
'

':.
,r,
attivita. ;~: ..
.

I
~: '

?f ?

,
:~~;:." ~
I~~\"'"
Jf.:-~~~'~:;'
~~'~~~';'::.'_-----------------I::l..:s::o::tt:::o~S::is::t:em:::::a:.d~,:.'
,-,....,... .,',
..~4'~;"J'.
, ~in~gr~ess::::o!../.:u::sc::i.:.ta=___1_4_3
~1~~,· ........ ' .'.
,i";I1'.:.;-'
'.-""~"" -::-
.......~' c••:,:' ':'- ..
k'}l:'>,! . ,',
e;':5":" I I
~~;~;Y:.;,::
r;~ !;\'I;,"'".',
.. ,"
;~I:~;(,:,;;;"},:{ RESET
;.~~::~':,'~~::':~.,
',::;\',,:<;'.:""'" _Q
,( ( SI
Trasferimenlo sinl1:0101HOLD
,,,,,',,'
~.?:;v:·:'~"
DRE n
DREQn/HRQ
--,=}{\.;>;,. READY
( SO ) READY ( r SW
;~:-!.~: ,:".',.,.:,,' HLDA (
HLDA READY
~':;:''L''''~' READY ')
:~~'D~;;..: SI S2 S3 54

:~::~ :',,' Trasferimenlo a blocchi


:)/:~~,--:."~" .
::>'> .',' 4.37 Diagraro ma d.i stato dell'8237. 51 rappresenta 10 sta~o eli inattivit~. m~~tr.e 1
r<:·'C . ~:::nti stati nel diagramma compongoDo il ma.c~ostato di attivl~a.: ,La, rase eli attlvl~a e
»':'~'.',~vviamente relativa ~ un 5ingolo canale. II pas.SagglO ,all? stato attl~ta 51 h~ appen.a ~ene
1,·:.":~;·"·· aSserita una delle 4 hnee DREQ, In pre5enza dl una rtchl.esta•. la IOgJ.ca ass~rtsce Ia nSchlest~
...'.:'.., - d I b n CPU (HRQ) e passa alia stato So 81 notl che da S4 Sl passa a 1 se I
F.:;~;:,:,.:.>·d~,U~~iti~O ~~r~;ammato a lavorare in modalita. Tr~ferimento Sing?lo. Nella m~dalita d~
L:;:· ';:":~~ferimento a. Blocchi, il passaggio a 5/ si ha solo a fine del trasfenmento, Ovvlame~te 1
":;:.,:: . . cli'stato sono scanditi dal clock e 1a durata. di una. operazione e sempre UD multiplo
,:
s:id:~; ~:rs~og~eriodo.
';~\ "~,.,.,
:.?: ..,' .... ,
,::,",: .. ,_
~,.'.~.:> • So' Primo stato di una operazione eli t~asferiroento DMA. La logica si ~orta in
<~.: .::' .,. S avendo attivato i1 segnale HRQ e VI resta fino ache la CPU non nsponde
,."", 0
}~<>j!. ' ': . asserendo HLDA,
!~;""f:',' ,.. SI' Gli 8 bit piu signifi~ativi dell'indirizzo Z9 1 vengono ?rese~tati sul bus dati
:.t~.:::;',"; a~traverso i piedin~ DB? - ~B7j al tempo stesso viene attlvato il segnale ADSTB
;\~,,' >:.' per la loro rnemonzzazl,one m u~ latch esterno.
i"._

~
.',...
~<'.'.<
,.',',..
:
, ••
... , .,
:.:7"
..
.

. 5z. Durante questo state gli 8 bit meno significativi dell'indirizze vengono pre-
., " ':" sentati suI bus degh indirizzi attraverso i piedini Ao - A71 viene asserito il segnale
~
. ., AEN (utilizzato per abilitare }'uscita degli 8 bit pili significativi delPindirizzo dal
"',
latch esterno) e viene asserito il DACK corrispondente al DREQ servito (al canale
.':".. " ;.
..i'
_,.,
," ,
.'
in servizio).
"
~ • S" Viene attivato il segnale di lettura dalla memoria (MEMR) 0 da I/O (lOR),
,.
.
• S" Resta attivato il segoale di lettura (MEMR 0 lOR) e viene attivato anche
.,.
'
quello di sCfittur. (lOW
; 0 MEMW).
;" ': ..
~".
... :
" ,'.
In riferimento aHa Figura4.37. si osservi 10 stato Sw, stato di attesa tra 8 3 e 8 4 .
' Uno 0 piu stati Sw possono essere inseriti tra gli stati 5 z 0 8-3 e 8 4 attivando l'ingresso
READY. Gli stati di attesa possono essere richiesti da dispositivi particolarmente
., lenti.
...
".'
0'-
:'.
.. 29Si tratta. dei bit (As - Au;) del registro punta-tore relativo al canale,
..
?-..
144 Capitola 4
".:'~_~~~:c..:~
-
----,-' ,. ~~~J,~,(
-'1:_"
,.;;fJ •.
""::'. ,
,,,;.~ .i

4.12 Esercizi \~l: ~~. "


,)~ "'J
,", ,

. . .. . .. . . ' '; ~;;:' .:


Nota - Moltl degh eserClZI propost1 presuppongono la scnttura dl trattl dl pro..",> 'r
.. . A bl S· . II d II f . I· 8086 ( '>:1 :"
gramma In Imgu.gglo ssem er. I assume dl usare que 0 e a armg la Cfr.. >j '.
Appendi.ce D) anche quando ,non si indi~hi specificat~mente ch~ si usa ~na CPU di- ,~,:~ :1
1

qu~sto tipO. Inoltre, spesso 51 .assum~ dl U5are un miCro a 8 bl~. Convie~e. fa~e, ri"- ;..?:~ ;l
fenmento ~1l'8088. ~er convemenza 51 p~o.an~he ass~mere c~e. Il.b~s d~gh mdmzzi \'~\:l :~
sia su 16 bIt. In Oglll caso, per quanta SL rifensce al hnguagglO, Cl Sl'attlene a que\.. .:,~,; ~\
e
10 dell'8086. Per svolgere alcuni esercizi necessario aver acquisito un minima di .:Ii,R, ~~
dimestichezza can l'architettura x86. ,<,~: ;;
, Un u.ltimo avv~rti~ento .riguarda i numeri c~e espri~~no indi~izzi a con~gura<::~J ~·
ZlOlle di bIt. Se non mdlcato dlVersamente sono da Intendersl In notazlOne esadeclmale;.~y t,
E ' .. 1 S' d' '1 I . d' I' f . d' 't " '>:"~I :!
SerdCIZ!O 4 · b· 1 lLS~~tl a a~cah 1 un mter a.cdeIa . ' uSse, at' (PDepr OunRTPr°alcesl,.sodr~ .con ,<:,::~\- g~
b us atl a S It. mer f aCCla a una porta a t 1 a b l, mmzzo, ;;i, , '',
FO!., ~ .registro di controUo (CREG, all'indiriz~o Fl) e u~ regjstr~ di sta.to (SREQ.l ,;:.'t~J.~ ';
alllOdlIIZZ0 FO~, A seconda del contenuto cil CREG 1 mterfaccla ha 11 seguente ':';!~~ ;J
comportamento. . . .. , . . . :':~d :;
CREG = 0: Pinterfacc,la e del t~tto dlsabilita~aj DPORT e malta lmpeden-c ?'·mt ';
za verso 1 esterno , I eve~tuale s~nttura su DPORT non provoca -,!~il ':
nessun co~ando.~erso 1 ester~o, . ,:"·~l ~'
GREG = 10 P~terfacc~a e abl~l~ata a funzl~nare a controllo dl pro~r~aj"",~,~ (
e
GREG = 2 l'mterfaccla ab111tata a .funzlonare S?tto controllo dl lnterru-. ',:'p'! H
zione e genera un'interruzlOne per ogm carattere trasmesso. !.N\
. . ... . , . ' .:.~~ ~
EserclzlO 4.2 81 dispone di una CPU a 8 bIt con spazlo dl memona 64kbyte. n, '!,~"\IR J
sistema in cui es.sa inserita p~eved~ un dispositivo di ingr~so ARRAY..IN ~ostituito ',:~~ f
e
da un vettore cil 1024 porte di 8 bIt. Le porte sono contlgue e vengono vlste come :f)~
mappate in memoria. La posizione di mappatura (l~indirizzo della prima porta) puo \~! ·
esser~ c~biata. A tal. ~e il programma legge la por~a:.·di ingresso B..AR (indirizzo ,-~~~; ~
EO), 11 cu~ contenuto mdica qual~ deve essere 1a pOSIZlOne della rnappatura fino a:;~\r
nuovo ardme, secondo questa cornspondenza: 'dii~ !
.' ('('It
B..AR = 0 mappatura del dispositivo di ingresso da 1000; .' ~i~ :
B..AR = 1 mappatura del d~spos~t~vo d~ ~gresso da 2000j ;,.:;~,
B..AR = 2 mappatura del d~spos~t~vo d~ ~ngresso da 4000; . "i;~
B..AR = 3 mappatura del d'SPOSltlVO dl lllgresso da SOOO. "~~
In base alla Iettura di B..AR il programma predispone il dispositivo il modo che «:11
ARRAY-IN sia mappato alIa posizione indicata dalla lettura stessa. A tal fine il ,~':1
dispositivo presenta una porta di contralla di nome XAR, all'indirizzo E2. . ~j(
Si progetti 130 logica che consente la mappatura fisica di ARRAY_IN alla posizione .';:,j
voluta. ··.. \1
Si seriva il tratto di cadiee assembler cheo (a) legge B..AR; (h) predispone ':'
la mapp.tur. fisie. di ARRAY.IN; (c) chiaroa la routine MAP_TO.M, come sotto .."
specificato. ~'f
8i scriva il testo a.lsembler della routine MAP _TO.M ehe legge Ie 1024 porte di i],'
ARRAYIN e copia il contenuto di ciascuna porta nella corrispondente locazione di '~"
memoria. La routine viene chiamata passando nel registro BX I'indirizZQ di mappa- ~'.:
tura di ARRAY..IN. :\J
'.'~
"'.!'" >i'\f·!
,,~~h~"·:, ;
•. tf",,~!., ::",
I!i'!.....·~~ ,.
~:{" ~.-. - j
:i(j.- .• -.' ...:
.
)
~J2~{W~'>:_?,
'.~}"''i:'''j''''':;
·.,·,,".~r·'"
---------- ~I::I'::S:::Ot:::t:::O:Si:S::te:m=,,,:di:·..:i:n~gr:.:ess=o::./!..us=e::it::.:.--=1..:4:5
.' f~~,c.~;:-:-"
,-hih",,~l'~""
if':;:}W!l'ti:"".' ,t':"
: 1
~~ff.4r·:~;};} " .. '
"I·., 'E.,"'''' E' rCIZIO
4 • 3 Si costruisca IJinterfaccia per un bus dati a 8 bit, in grado di pilotare
)~.t~~t~~l~· s:scite digitalL Si in~ich~ 0 < x' < 63 it numero d'ordine del~a generica usci~a.
:~'~\Cr.('f64.
r;~:'~·~"~::-"~Nel proge
"\~~):::>~""",
tta.re l'interfacCla 51 tenga conto che essa deve essere gestlta da una routme
II d·
t a. contro 0 1 programma e
.',~';:;;,'.,:.·"peran e I ·t d· ·tal
chi t
rt d I
tt·1i t L t· d
arna a come so 0 speC1 ca o. a rou me eve
O l d del contenuto di
I
1~lD;V;i{: rp.odificare la so a USCI algi e X ma , po an 0 a a 0 a secon a
l;%S~.:j):,,:~t- .
i hiamata:
~g,~::2~:t'~,.., ConvenzlOne d c 1
\~';:--;);;;":"" . MOV AL, 0/1 Indica se port are a 0 0 1
~.X~:\·· '.. . MOV CX, <x> CX <- x
;~t>;~;~:\': ::; CALL
SETBIT
·~?~ii~':'" , ; . ..., . \
,~:.\:~::.;'" Esercizio 4.4 11 driver del Pa~agrafo 4,4.1 ha l'mconvemente di avere una vanablle a
!;!K:'j:,'/;:;';"corrnine (BUSY) con l'esterno. E noto che le variabili a comune sono potenziale fonte )

g~;;,S~"!'" di malfunzionamenti nei programmi. Si modifichi il driver incapsulandone 10 stato


,fj,'./;.:''l·;:....... . d·fi· I Itt d 11 t t t
;:i~::}>i>::.,:iilr~~terno_.e preved~n 0 una speCI ca routme per a e ura e 0 sao s esso.
I
J~n:::.::;,(:' ·Esercizio. 4.5 D driver del Paragrafo 4.4.1 ~uo accettare un solo co~~do (chiamata)
;.~ ..... di trasferimento aUa volta. Per questa motlVo e stata ogata La vanablle BUSY, come
;~i.~T;~:~':':;·; una sorta di semafQro, Se la routine di inizializzazione viene comunque chiamata \
I
:':>;",':;:,,: ::'mentre e in corso la stampa, si ha ~n disastro.. ~i analizzino Ie .co"?,segue~e che
'!';,::.. ,~.'~',. "OSSODO risultare. lnoltre, sulla tracCla del1 lesercIZlo precedeote, SI dia al dnver la
(~:::~,~>' Possibilita di rifiutare la chiamata , dandone indicazione, se gia occupato.
H>: "::, P. _ . . .... .. .
1
\·p,/..":,, Esercizio 4.6 Si dehnel 1a struttura dl un dnver III grado di gestlIe una coda di
~~:(~:>~;:'~ c'omandi di trasferimento.
Ji~:.'.>~: ....,. .
f:~1:;~/:~:~, Esercizio 4.7 Si progett.i un 'i~terfacci~ parallela per un calcolatore a 8 bit che legge
I!:~-:': da un bus esterno a 32 bIt. Umterfaccia cleve prevedere un comando , trasmesso con \
·:~F::;.i il registro AL, codificato con un numero da 0 a 3. Sulla trasmissione del comando
~~:0/,,':~'''' l'jnterfaccia legge e memorizza i 32 b.it (4 byte) esterni. L~ successive 4 ~perazioni di
:/~:.: . ,lettura (IN AL,. xx) devono portare III AL ~rdinataIDente 14 byte a parlrre da quello
e
!+>.:'" "" che state speCIficate col coman do. Esemplo:
'."; , .".
1
:tS':;.. ' MOV AL. 2 ,
l~f:: OUT xx, AL ; comando
~::::: ..
i~\.
IN AL, xx
IN AL. xx
lettura byte 2
; lettura byte 3
1
!:;':::,:" MOV AL, a
~>:
{~:>
~/<;; .:
OUT xx, AL
IN At. xx
; comando
; lettura byte 0
Se dopa 4 letture il comando non viene ritrasrnesso l'interfaccia continua a
I
,;~,,;- .. restituire ciclicamente i byte meIDorizzati sull'ultimo comando.
, .....
";.. ,.
,:<"
Si disegni 10 schema dell'interfaccia. In particolare si wsegni 10 schema di sele-
zione del byte. (Si assuma che l'interfaccia sia all'indirizzo 70). l
'~ ". Esercizio 4.8 In riferimento a un rnicroprocessore con bus a 8 bit, si progetti un'in-
terfaccia parallela che riconosce una configurazione di 8 bit in ingresso. L'interfaccia
......
;~;
..,
rispetta Ia specifica seguente. L'interfaccia ha un registro R all'indirizzQ FO esadeci-
male.
I
~ ;.:<,

",:,r:"
'j' !
:;i,h
'm ""
I 146 Capitolo -4
.;
'~'. ~. ,""i
"I.'
<~'
"1'1 :Y"
.~

''f,R"
< "
-:·1,-"
, "rt ,;V'

I Scrivendo un byte in R , l'interfaccia si predispone a generare un'interruzione. L'in-


terruzione cleve manifestarsi solo quando sulle 8 linee digitali provenienti dall',esterno
a.~'pare un~ configurazione uguale, a quella scritta. . .
]'\0 :<,/
';i~A( ::/;/
:;':!

L mterruZlOne cleve restare assenta fino a.l momento In CUI non viene effettuata la I~'ii !:~'\
lettura di R. La lettura di R h3 Peffetto di disabilitare 13 generazione di interruzioni ,';4 ',~
\ cia parte dell'interfaccia stessa. '.~~ "
La riabilitazione dell'interfaccia alia generazione di interruzioni si ha solo a seguito di .~~J .:::
una scrittura in R. r,1; :"""
~,~ ~
i:,...

I
,,;~,

Esercizio 4.9 Per una CPU a 32 bit si richiede che il sistema di interruzione funzioni .J~ ':~,"
in questo modo: sulla ri~esta di inter~uzione lao CPU genera un cic~o di ~NT~ e, a ':Jt
:,:.:i:
Program Counter non modificato, legge Jl bus datI ed esegue come un lstruzlOne 11 suo ,;~~t ~:\:
1

contenuto. ':;~f ;:,'

\ Si definisca il tipo di istruzione che deve essere presentata dal mondo esterno. .~ til i'~'
~ss~en.do. che il cam~o del co.dice di operazione ~i un~istru~ione.8i~ di 6 ,bit.e. che Ie :'1.
:,;,'
Ist~lO~ di salto ~ chi~a.ta.d,l sottopro~am~anser:m~ gli ,altr1, bit all'mdInzzo di ':l~ }~:,.
destma.zlOne, quah sono I limItl dello SpazlO di memona III CUi puo essere allocata la "~.~~l ~~::.
II p~ima istruzione delle routine di interruzione? Che tipo eli istruzione cleve concludere ·',~U i:!('
h~, routine di interruzione e che effetto cleve avere? . :i~ ::,~/
I. . ,. . ., , , ':.\~ :~:~;,:
Eser4;~z~o 4.10 Un calc.olatore con b~s a 8 bit ,Pilota un'mterfaccla dl mgresso a 8 bit, '1~ ;~>
che eSlblSce questo funzlonamento: Vlene contmuamente controllato 10 stato delle 8 :'~~1 ::1'<
f Hnee di in~esso e com?ar.ato col co.n~enuto .del regi~tro J:lEG presen~e suIJ'int~rfaccia "'~l' :;~';
,stessa; se II confronto mdIca the gli lllgressl sono dIVerS) da REG Vlene assenta una -:::~ ~,!y
richiesta di interruzione. .~~ ,::,:.
) ~uando.la C~U le~e gli i~gressi, .il ~oro st~t? viene ~opiato in REG e la ri~liesta di .::rJ. <~:~i
mterruzlOne Vlene disassenta (la nchiesta cll mterruZlOne cleve restare assenta finC? al '....~j i,(:
momenta della lettura, anche se nel frattempo gli ingressi tornano allo stato prece-, .~~i ?~t)
dente). ,<¥
':·~,~~

I L'interfaccia prevede anche un bit di abilitazionej disabilitaziane della generazione


della ricbiesta di interruzione. Tale bit viene comandato dalla CPU. Si assuma che ,~~i ~YB;
I'indirizzo di base sia 240,
.A
';~~~
:I:~~ ~~!i
. .Si ~rogetti la lo~ca deU'i.nte~accia, Si,sc~iva il testo Assembler della routi~e ~i)~ :;?~:
mterruZlOne. All'usclta della routme la varlablle (globale) VAR deve avere 1 nel bIt -:-:J. ~~:
1 che sona variati rispetto alla precedente lettura, 0 in quelli che non sono variati. ~ ,~r
'~(t .... ·

Esercizio 4.11 Si analizzi il comportamento dell'interfaccia di Figura4.38. In par.1:~ ft{,

I ti.colare. si tracci il 'possibi~e diagrarnma t~mporale, pe~ ~ sef?nali DAV 1 D~C e INTR., !:~i~ ~',\~
81 tracc) la parte dl rete dl coman do del flip-flop dl abIhtazlOne, facendo In modo che '\~~~~)I:'~
alratto del reset di macchina questa si porti in stato O. .':\',\~ ~~r':
"~'~ 'I,
"~ I",:

I
"
:'J 'j,~,
.
,
' "
'''
. W...
~
, ~"

in Figura4.39 presenta 16 linee di uscita. E previsto che Ie uscite siano divise in .~ \ {,::
4 gruppi di 4 linee CiasCUDO, indicati come GO, Gl, G2 e G3, L'interfaccia deve t, :~)
~sser.e costrUita ~sando ~latch da ~ bi~, ll1,mo?o che I gruppi GO ~ Gl Im~leg~mo'Y~
I ;;.
il pruna latch e I gruPP1,G2 e G3 l-:nPleghl~a 11 secondo latc~: L'lllterfac~la. Viene ::~'.:' h:,
camandata trasmettendo il dato (4 bit) relatIvo a un gruPPOj CIO deve avvemre senza ;'~l~ ,,:'J~
,'.~ d"
che cambino configurazione le 4 linee dell'altro gruppo posta sui medesimo latch. A ,¥.:!, /~l{

I "
,}./,'
"'.
~'
"1
,j ,·
,.
il'u.: ~
'

I
"~:'. "
!x
h:",:"'
",},
~.. II sottosistema di ingresso/uscita 147
i<,
'-.,.

"".:·,'
••
""
V",
• ,
!;<".
" ""
/,:"."
/;,:;.
..
"
",
'.,
3
7 ""
\ '; .. 'U~ ~'T\
"
4
.,""
,.. !'
o. AI. 'UlJ'~ltIeo

:.:"
-
m

.~
..
....,,,,
";'::'
,
.~
. .
• ',.•
'

.~

i:~).~,~,
,:" .
::/ ':.',
'( r
:,: . " ,
':', , ';-~
',;f.~/ .'..
.,::".:' .~
~.
. .',.
'
••

'-
• •
.:,~;:-- ~ - ?
'/1'74
"'.
';'\'::',,';' • A~Ul"t~ ••
/,~.~:" ,:', ""
:',::, ,:.:',. 'Figura 4.38 Interfaccia di uscita castruita can componenti standard (Esercizio 4.11),
,:</,":',,' _. ,. ,
<-:">:::":,,,, , "
;~::;:,,~{''''tal. fine l'interfaccia de~e permettere I~ Iettu,ra dello stato delle linee di uscita (Ie
y~'.;;~·:·,.;·um0e che fanno fede)} In modo cbe 4 bit degh 8 trasmessi siano identici a quelli letti
.<:/::'::' suI gruppo non modificate. Si assegni all'interfaccia IJindirizzo di base FO.
i:",.ff, ',:. -.' Si scriva la routine DRIVER: che pilota l'interfaccia a centrollo di programma,
:,:'; ",:." chIamata secondo questa convenZlOne: . ,
)~I,)~~~.-.;,,-' ., " ,. .
~;:t''';'>,:!" , mov AL, <4 bH dl un gruppo, posizionati a destra>
~'~;~,L :.' .:". ' mov AH, <n> ; numero del gruppo 0, .. J 3.
;:,~:;V,:.I~. ' call DRIVER
!

i~,:,~:.i/'·"
:'~{/'~'.':'.. ,I

:;t~·· -' 81 ~
, :.:. GO
,~::.{
·,',1.'.· .. '., 80 • • GJ
,~::-·('.-'~'" lORD
I , G2 ,
~y:':t:(':,:', IOWR
, "
,
~.f:',,. G3 I'
:,~\'\":' Fig,.ura 4.39 Schema delFinterfacc,'a
,","" '.', . ,rCIZIO
per l'Ese " di F' 412
19ura..
:>'''':,,,,
,
,';~,,~ . .
. { .'
! ,.• "
.. .... ... ,
Wi,"""','
~ ,
,
:::;'t: /: E' .. . "
)_:;:i;', r:r~,zlO 4,13 Un mlcroprocessore con bus dati a 8 bit (8088) legge il valore di una
.z.:,,:;-(y Jo ezza fisIca ch~ vana nel t~mpo attraverso ~n convertItore ~~oglco-dIgIta1eche ,
,-,"(,i' -' e il m I,a converSlOne su ~2 btt, II ~ata letto e un numero POS~tIVO C?ffipreSO tra 0
rnis ce I',
,,,
~:,.:< ,,',>::, :' asslmo rappresentabIle su 12 bIt. Una lettura dal convertltore nchlede questa
"'i":"'" sequenza'
{9}>~:::... :', ,. . ,
I
'~",,1,~ ,',', "

,"

~r_'rf;··"
·;o;'i--'i,,"~"
'.,,,~.:'l' ., I'
~~ 'if,!:1~:. "
148 Capitola 4 ''9
'~I'
ik<"U:
\'
,;,,1
,;'.",,,
11
MOV AL,l ',~;~'
OUT CAD. AL ; comando conversione (ipotesi: risposta istantanea) ;_-~
IN AL, CAD ;lett-ura 8 bit menO significativi .-.~
IN AH, CAD+l ; e dei 4 bit piu significativi (a destra in AH) !:~
. ,-'
'".j

n valore del dato letto viene comunicato all'esterno sui bit 0 (BO) della porta PW nel' ;';j:
modo seguente. BO corrisponde a un segnale periodico, con periodo T= 1 secondo. "'~j
Quando il valore letto e zero, allora BO= 0 per 100 ms e BO= 1 per i restanti 900 ':'~:
ms. Quando it valore letto e pari al massimo, allara EO= 0 per 900 rns e EO= 1 per ·:t:
i restanti 100 ms. Valan' mterme.
, d'1 d are bb ero Ilioga a BO = l'm rna d 0 proporzlOn
. al e' '~;,Y:
,~

(I'intervallo di tempo in cui BO vale 1 cleve essere discretizzato, in conseguenza del ';~~
fatto che 10 stato di EO P,uo esser~ modificato solo.ogni 100.ms), ,<~4
. .n ~croprocess~re dispone dl un co~tat~:e \'~tertJa~ hmer) ,che gene.ra mterr~. ';1~
ZlOm ogm 100 ms. 81 assuma che CAD Sla all mdmzzo dl I/O pan a 70 e che PW Sla .~"~
II" d" A O ' ·1,
a m .lnzzo.. ., . . .,' " .\:;:.r,;:
81 progettl 1a routIne dI mterrUZione che, per It genenco penada d.i 1 secondo,' :';~t1
.
pllota BO '
rn d
rna 0 d id
a rappresentare a me'la d'
e1 vaI ' t 'I suII e h"'~
on' d e I segnaIe camplOna -"1~,
. " - S' , I d'fi A bl dll ',;:-
10 mterruZlOnt del penodo precedente. l scnva a co 1 ca ssem er e a routme '\·i~.
,~~''''t
stessa., :,,;~;tl
Esercizio 4.14 A un calcolatore con bus dati a 8 bit (8088), soDa collegati, attraverso ',ill!
I'interfaccia J di Figura 4.40, 64 ingressi digitali, numerati da 0 a 63 (indicati come ";l~
DIN), e 8 liscite digitali (indicate come DOUT). Ad intervalli di tempo predefiniti, .-~::j
il programma esegue la rOll.tine LOOKUP che: (a) esam~na 10 ~tato degli ingres,~i' '::'Vffi
digitalij (b) stabilisce se, nspetto alia precedente eseCUZlOue, C e stata una 0 pm ' J::,i
variazione degli iogressi digitalij (c) trasmette sulla porta di uscita DOUT, nel caso ~
in cui ci ~ia stata alJ?ena un" va.ri,azi.on~, il nu~er~ d'.ord,ine dell'ingresso digitale ch~ J~~1
, ha camblato stato ,\m presenza dl pl1J mgressl vanatl, vlene presenta,to su DOUT ,II':~~
numero d'ordine pm basso tra quelh cornspondentl agh mgressl vanatl; se non c e;t
stata alcuna variazione vengono trasmessi tutti "I"). :<;~~
LOOKUP restituisc~ ~ BX il puotatore (~ffset) ~ una posizi,on~ d~ ~emoria ch:
,jy~
individua 64 bit consecutlVl (8 byte), contenentlla copra delle vanazlofil d1 stato degll" ·ft~
~ngressi, ~i~ precisa~ente, c~ascuno di ques,ti byte deve valere 1 se il corrispondente',f~~
mgresso dlgttale e vanato, 0 ill caso contrano. ",\~~
Si richiede: (1) il progetto deU'interfa~~a (de~e prevedere un latch p~r l'uscit~':~r.~
DOUT mentTe non deve prevederlo per gh mgressl DIN); (2) 10 schema dl flusso dl' ,ro'\1!
LOOKUP; ' (3)10 schema eli fiUBSO di INIT L
KUP, ' d"1 mlZla
routme - - I'lzzazlOne
, deil" tn-"f..
'''1

terfaccia e ~i LO 0 KUP (se~pre che serva una. qualche inizializzazione)j (4)il testo 34~'
Assembler dl LOOKUP; (5)11 testo Assembler dl I N I T L K U P ' , : ' f , l
Esercizio 4.15 ~i cO,nsi?~ri l'interfaccia schem~tizzata in Fi~r~ ~.41. L'interfaccia '~~~
ha una porta datI all'lOdlnzzo FO. e una porta dl c~ntrollo ~lllDdlflZW ~l,', ':;~}i:
Scrivendo i byte sottoelencatl sulla porta F1 81 determma 1a modahta dl funzlo~: ..;,
namento: ,. . . . " /,~'
00: Interfacc~a ~n ~scitaj sema generazlo~e dl 1~~erruzlo~l; . ".'~~"
01: Interfacc~a ~n lD~esso; senza gen~razlo~~ dl IDte:ru~lOm; ,,)~
80: Interfaccla III Usclta; con generazlOne dl mterruZlOm; ':!:il
81: Interfaccia in .ingr~ssoi can ,g~ne~azio.ne di inte:ruz~onL , , ' : ~;~!
Se l'interfaccla In modalita d.i uscIta, a ogm scnttura sulla porta .dab, 11 b~te ',1-,
e
viene trasmessQ all'esterno (l'interfaccia, deve prevedere un latch) e vlene assento.f.~}
)~ ..I
",~'1;' ,
--:'.;"'~~',.
WS:;",\,~

)
-.
-!'i:':!"1! ,f: .
"".111:;.';., ,',
......
."t;..',c .•,;(~, ... , _-
'j1:;~.':,:~·.: .
,', '.
. ':j"

<,,;.' .
I.".. ',.
II sottosistema di ingressofuscita 149

)
,;>,r(,~'",
• j'. • .' ,

"." '
','
,',
20
l:.:~..... Bus Indirizzi
~::,"<.:!./< .. ~ DIN
I
Bus 'Dati (DO-D7) 6
:.~ ", ..
,

"7
?""",
," ' I
.,,~,

: "";'",' lORD
0 ~DOUT
lOW -
,1: . -
,'-:' " ,
:~.;' , < Y' 440 Schema dell'inte f ' I ' E ' . 414
1
. I, ','"
'~';:', . -I.
19ura ' r aCCta per serClZlO • .
~(':," ,
,t'<:: ': ,' il'comando X (impulso). Sulla risposta del periferico (impulso Y) J'interfaccia cleve
':h'~::::·,":.-:' asserire INTR se abilitata la sua generazione. La scrittura del prossimo dato deve
e I
',~:,;':,",,",":',', ,- far disasserire INTR. In ogni caso Pinterfaccia deve prevedere fl' -fl di t t d
,'"" •... . un Ip op sao a
','{,'>;/;,. asserirejdisasserire au X/Y, in modo da poterla pilotare a controlla di pro aroma
·k'.·~.:, " . _ " .
":. ,,:.. ' '.' ' "dato all'lllterfaccia Se l'interfac
";~"';,.. ',.: .. "un '.
e
;>~; "",': '...~':'. ,Se l'interfaccia in modalita di 'ngress il
. I
'a'
CI t:
0,
'ab"'t
llaa
,£,
perllenco
tall" t assensce
'
• Y dgr
, qUaD 0, presenta
rnerruzlOne,VleneassentoINTR
,
I
:'~':' /"," che resta in questa stato fino alIa lettura'del dato ( , ' 'II tcb' , )'
r:::', :::." , . . . nOn I:: necessarIO I a 10 mgresso '
:~:;:\. :~:, ",:. i' Anche qUi CI .cleve ess~re un bit dI stato asserito/disasserito cia Y IX, in modo cia pater
"}","-'.':",:" controllare l'mterfaccla da programma, \
:':y"',c' ' Si progetti I'interfaceia, Si seriva 'a routine OUTPROG (chiamata con BX = off-
;j;:::~{; ::-,:set dell'area ?atI, ex
= nUffi:ro caratteri da trasmettere) che trasmette gli n caratteri
~,~\!;'i;':{< >a
controllo dl pro?ramma. S: ~c:i~a ,Ia ro~tine a controllo ~i interruzione OUTlNTR,
',~",;~,';i~"':)'c ~.ompre~a la relatlva parte cil inlZlalizzazlOne, che effettua II medesimo trasferirnento ,\
,

1+~·:·}.:· .ed e cluamata con Ie stesse modalita di OUTPROG,


,~;:C':f::;}~":~;;,
:,l~i~~~~'~~':"'" Bus lndinzzi
::~;":;,~.~"~::'\:,,<' ,'"
, \
;~~~~\,>.{.>~. , Bus Dati DO-D7
~S};iij;?',·
..:
,~j;:;'it',~;<,,:, lOR D I/O
~~l~t1~~0\,:::i;:,'" , lOW ~ x 1
r~li;-g-J,>".-; '. !NT y
~J\~:\:~~/ '..' "
"-\;.;;",,,_, ·Figura 4.41 Scbem', dell'inte face'
"r~~' ,.,
:(:!'~~~'_~~~~'',:,:'~:.:,
~f;-i~}::t~;:.;;';'~:"
, ~ r la per
I'E' , 415
serCLZlO . .
I
J:~[%'\~:~F" "
~;~~t:·.~:·~~,~ESerCIZJO 4.16 Su una porta pa:ralle!a di uscita a 8 bit, i bit PO-P3 vengono impie ati
(;\\'-~'f,:/~~:.>:' p:r tr~mettere 4 s~gnah temponzzatl di periodo 4 s, PO asserito per il primo qu!rto e
(.,U~':~':~::\~~:;" ~L p~nodOI PJ. per 11 sec~n~ol P2 per it terzo, P~ per il quarto, I bit P4-P7 vengono
I
~~;ri:~>\Y.'" ~atl per, trasmettere datI eli alt:a natura, che qw non interessa. Per generare Ie forme
,;~:::.,t:\ ~onda Sl de,ve pr~vede:e. un dnver (D~_03) risvegtiato dalle interruzioni generate
';~f;;-" /;;~'''h. i a uno ~peclfico diSPOSlttv~ (RTC) al ntmo ~i un'interruzione ogni 100 mB, n driver
':,~,.~,\;::,;:'::,"~::¥" n,q?estlO~e non deve modlficare 10 stato del bit P4-P7 €Qme del resto il driver di
l
)~t~:-~.:'~:':':',.~stlOne dl q~esti bit (DRV A7~ n~~ ?eve modificare i bit'PO-P3', DRIV e DRIV-47 _03
t~l'.";i::';·.,. no se~aratl e non hanna vanablh m coroune. DRIV-47 attivato da una specifica e
~t~~~.T~"l~~rruZlone, J
;'tmJ\("\'~' ':" "
I
,:~~,:
F,l....,,
~,;':'
')1;)'..
Capitolo 4 1\,:It,':

I
150 ";! ",.r
",
".
. '!~
'~Ilt
.""
'".:'''
~i:'·. ~i-"
.. -I~ ~.;
;{;, : -",
"I~ ,'-",""
\ '.h.~
Si disegni 10 schema dell'interfaccia. Si scriva il testo assembler di DRIV _03. <:,;.

I Supponendo che DRIV _03 si interrompibile da DRIV-47, quale condizione di malfun- .Ji",I,.'l; :~f;
.• !i'::'-
zionamento potrebbe verificarsi? '''I
"',"
"
,; ~',' ~:..:,:
"~,, .".oi: '
Esercizio 4.17 Si dispone di un micro COD bus dati a 8 bit. Il sistema presenta Ie due .~;~ :f.;}
interfacce leO eli Figura4.42! rispettivamente agli indirizzi 70 e F2. All'interfaccia .. :~·,W ,}~~~:
\ r vengoDo portati 8 ingressi digitali. Vinterlaccia 0 pilota 8 LED. Ogni LED e logi- _~~, ';(X
camente associato a uno degli ingressi digitali letti attraverso L Quando un ingresso ~Jj,~ ;~~~
e basso (Zero logico) , il relativo LED non cleve emettere (e doe il catodo deve essere '!~~ ::T;:~
) a Uvello di teusione alto). :'}q '1;:<
L'interlaccia I viene letta da programma e da programma viene trasmesso un byte ..."m'~;r';'?;
I alllinterfaccia 0 in modo da attivare i LED che corrispondono agli ingressi a 1. Si 'J'f.i F?-
presume che a regime tutti gli ingressi siano di norma a 0 e che pertanto i programmi .:~~ i,;:
nOD debbano normalmente occuparsi dello stato degli ing.r~ssii Pi~terfaccia I asserisce ~~~1 ';~?:
Ia n'ch'les t a di'lIl~rruZlOne
-- ' IRQ quando almeno uno degli .mgressl
. passa . ;.jl. "~'""
. . a 1. . . . ,::;;:/.~D.;
\
La richiest~ IRQ determin~ l'attiv~io~e di una routme di ~ervlzlo che., .npetlt~- ~~,:~9 ~li,
vamente, legge gli ingressi .e scr~ve Ie. u.sclte l~ modo ~e quest~ nflettano gh lDgressl~ ""~~ ~1~\
come detto sopra. La routrne di sefV1ZIO dell mt~rru~lOne terrruna s~lo dopo che tutti .~ ~~~~~
! gli ingressi sono tornati a O. ffiQ deve essere .dlsat~lvata.dalla rou~me stessa (~suo ":'?~~ ;<~~
ingresso, prima di quaiunque altra azione) e v.lene.nassenta ~l'u~clta ~a:ua routme. -:",~f.~ :~;~
Si disegnino gli schemi delle interlacce. 51 scnva la routme dl serVIZI0. '~~!~:~'<

:I .. s~
\;j;~ .:~
.~ ::tr*
';'::~l :~;!;
0 . .. ~. ';~"J
10
. !$II \~~~
)
IRQ I

• 0


-,. ,'''.~ ~~~J)
,,~ ·~i~
::~;~~ ~~1~
DO t,
10

, ~"j~ .~~r
D'l- '
lORD - ~

I
17
IOWR - ~ ">:f:i
'·15."-;.
- Bus Indirizzl · "."
'lIi~
• Bus I all };~fh
:,~..~t'
,{;;o:
Figura 4,42 lnterfa.cce dell'esercizio 4.17. ttt:

I ,-
, :.,
,,'cr
.....
~",
",. ,
C. .

"'. 'C
~~~"
1.1):,
... ""
'>""'l
~.

,~'
e
Esercizio 4.18 A un micro con bus dati a 8 bit collegata un'interfaccia come quell a :.:~ ,;}~~R:
'ct\ll
di Figura 4.43. L'esterno si manifesta con 4 Hnee di richiesta di interruzione IRQO,y,I' :.~.,
.' ,"-
\ IRQI, IRQ2 e IRQ3, associate ai 4 gruppi di 8 bit in uscita (GO, GI, G2, G3), In,,'f~.
,."
......

,,~¥tt
presenza di due richieste contemporanee quella di numero pili basso prioritaria. In:i!:;~\ e ;~ttli
· ..,
risposta a una interruzione deve essere presentato it contenuto di un contatore software ''':\f: ,~#
l di 8 bit (CaNT) suI gruppo associato all'interruzione servita, la richiesta stessa deve {~
essere annullata (reset) e CONT incrementato di 1. L'interfaccia e all'indirizzo FO. '£~~
Si progetti l'interfaccia, comprese Ie decodifiche degli indirizzi, prevedendo. ch~ ,~'
'.'"f.-
j~J
.~,,,,

.~::;
-~,:·
!fa'
I'inter~acci~ consenta?i m~cber~~selett~vament~ una? pi~ richie~te di interruzione. "'l'~ "f',.
i","~
SI.scnva la routine dl serV1Z10 dell'mterruzlOne (In hnguagglO Assembler) che ~1~~ J.~~i
)f..
1 svolge quanta sopra specificato (il contatore e uruco per tutto il sistema e viene ag· ,\~,. ,~g~i
''.';~~:~
giornato solo dalla routine di servizio dell'interfaccia). Si preveda che la sezione di :~ti

I
' ."
l,,~
:), . :/
,, ,
':y_ i
.;,.; ,
:>:~'~' '
c,
,_, , Il sottosistema di ingressojuscita 151
' , ',
"~­
;.
.;;
"," '
"",

;:::
-
inizializzazione della routine di servizio azzeri CaNT, effettui il reset dell'interfaccia,
lasciandola abilitata a generare tutte Ie possibili interruzioni. .
;'.! co,
. '
:" '," " " Si assuma che Ie IRQi siano attive come fronti di salita, conseguentemente suIrin-
}/-' terfaccia occorre memorizzare I'avvenuta richiesta.
:.~ .",
X" ' Bus Indirizzi
~;~'~:" Bus Dati
", •
, GO
Gl
~.\!:, "
<::' .'
;, ~?: .
-lORD I '•. ~
~
G2
G3
IOWR
-:-::' ."" IRQO

:< . IRQ
IRQ'
IRQ2 --1
:t::~ ':'.,' .
IRQ'
. I ..

"Y'~'"
;,;. \ . Figura 4.43 Inl;erfa.ccla dell EserclzlO 4.18.
,t:I";'~<
\;t: ~ .. ,
~,:...~:"
~(~,:, Esercizio 4.19 Un micro con bus dati a 8 bit (8088) presenta l'interfaccia di uscita
~(~~.:. di Figura4.44. L'interfaccia all'indirizzo 40. Essa deve essere pilotata in modo tale
e
<:"""'" che un solo LED alIa volta sia in conduzione. In particolare si richiede che i LED
~~>;'< vengi:LDo pilotati ~icli~amente ~ che quelli corrispondenti aile .huee ,delle linee. pari (00,
*:;'~<:: .' ~2l O~, 06.) r~tmo In c~nduzlOne per I.sondo, mentre quelh corr~spon.dentl.all~ huee
;rt:;~ " ,dlspan restm.o m conduzlOne per 2 sandI. Per generare Ia tempoflzzazl0ne 51 dIspone
Ji:'i; ...:.' di dispOSItivo (contatore) che, una volta abilitato, genera un'interruzione ogni
un
~',~.,: . 200ms. n dispositivo in questione si abilita scrivendo 1 all'indirizzo (di I/O) 70, si
))i/:::" d.isa~ilit~ ~crivendo a al rnedesimo indirizzo. Si assuma che inizialmente il contatore
:j~'l."···,Sl3 dlsablhtato.
~gj})i:;:,. : 'S~ tracci 10 sc~em~ di fiusso e il teste assembler della routine di servizio dell'in-
r-i>J: '. terrUzlOne
i!'"".~I._... che gestlsce il contatore, compresa 1a sua sezione di inizializzazione.
"".<:r:;.":<..
...,..' ·1~" '
".(:~,,~
~'h"·"'"
h.'~' . '.. , "~."
"" .,.
'"~t;\·I; ... +5v
:;n",~, '-., .
::~·:~, ~'
r'y-.. . · ~,'
.
, .. ~-, ..l<.','".
,,...., ..•..,:.", "
~."., ~ ",'.

"
C'··· '.',. ..
"t-" ' . "
,!~~,~,' ',:, 00
",, ."',".
l~··:""·
' ~'c',·.·,
:.~::, .:." .
Bus lndlrizzi
'"
e
l;,t;'~;.'. "
..
Bus Dati • "
,:;~:";; ~
- -~-­
"..
..~., r .' 0 •
+5v

t~1g:,:,~:i:, ::,
,c Z
iiS:;},.;: .
,",'... ., "
#:~~::~;
-. r .".' ,~. ,
"...
lOR D
-
lOW , 06
07
V
,I
", , ,
J/gt',
•. " Figura 4.44 lnterfaccia dell'Esercizio 4.19. ,,
, ~.,,

;:;.\'"
·Z~;t.t,,·.
. ' " ,I
'·!...·'··..·, ,". , , \.
.q,!':',,;.;j' III. :"~
~W:'f.' .:'....,..
i!~'t,:'.~; .-. <:I
.'iE'·~~".
.
E '. ,
i~i~i:;!~::" sercl~lo 4.20
"I
Una CPU a 8 bit risponde aile interruzioni eseguendo un cicIo (di \1 I
:{~t;
~"""1i''1
. . :·INTA)
..,. III cui: (a) asserisce in segnale INTA verso l'esterno e disabilita il sistema '~I
wi' .1):••
1:"', ..... t>: .. ,
"~.,,, ..
~. ,,' .".~' I'" •
~"';J<~:r
,~
i"
152 Capitola 4

di interruzione; (b) legge quanta viene presentato sui bus dati e 10 esegue come .~~
un'lStruzlOne. :.'-~y
n repertorio di istruzioni precede l'istruzione RST il cui formato e riportato in ..::~
Figura 4.4.5. Se neil numero codHicato nel campo xxx I l'esecuzione di RST n ha ~:;Jt
l'elfetto die :;',
- salvare il PC corrente sullo st~ck; "-~11
- eseguire l'istruzione aHa locazlOne 8n. . }~
Supponendo che la richiesta di interruzione del periferico (IRQ) sia un impulso _';=I~
eli ~reve. dur~ta, pr~gettare la logic~ di in~erf~ecia rispetto al t~attarn~nto clell'inter., .)-:~:l
ruzlOne ill d3J.sy cham, per un genenco penfefleo, come schernatlzzato 1n figura. Dev~' ....:.:il1
essere possibile fissare il numero n a piacere (tra 0 e 7) tramite ponticelli. Si illustri :<~~
cosa cleve contenere la posizione 8n e come si conclude 1a routine di interruzione. . , '~r1~;~
:/~
IRQ - f l . - "j?
';;lJ]
.~~~
INTA INTAI
1-'--- 1NTERF
lNTAO
- --- .,-{'~~
+Sv ''-;;'';i"
CPU : /r,u
INTR '::~1
Bus Dali <.M
':'::f' :.:
Figura 4.45 Interfaccia dell'Esercizio 4.20. A sinistra il formate delPistruzione. ,-·1'i~
H~~
", ":~S
. /;;¥j.
.. . . . .. .. ,,~~?,l,
Ese~clzlO 4.2~ 81 deve progettare 1a 10gIC~ cit u~ controllor~ clI. mterrUZIOnt pr~gram~ <_:#~
mablle (PIC) tlPO 8259A. Lo schema funzlOnale e quello dl Figura 4.46. Le hnee dl .,,~
interruzione in ingresso sonG IRQOI IRQl, .. , IRQ7. In. presenza di almeno una li-,:±f~
nea IRQi asserita, il eontrollore deve ~serire IRQ. La CPU risponcle aWinterruzione ·,;'W;~
eseguendo un ciclo di INTA (si assumano 3 periodi di clock). Sui ciclo di 1NTA il "'~;:

VT sono programmabili e IdentIficano la POSlZlone dl base (m memoria) dello SpazlO ~~~!f


riservato agli 8 vettori di interruzione. 13 bit meno.significativi c.ontengo.no iI numero :,;,~.
d 'ordine dell'interruzione che. vi.~ne. se:yita. ~el f1s p o,ndere all'mterrUzlOoe la CP~ :;1~~
scala VT di 4. In presenza dI' pm t1Cbleste attlve, sull INTA, deve essere generato II -:t~
VT relativo a quella pili prioritaria (IRQO ha priorita massima , IRQ7 minima). ..:_~~i
. Si. assuma ch.e il bus dell~ C:pU s~a a 8 bit.. Per semplicita si assu~a che I.e i~ter. \~~
ruZIOru ~on car;nbrno durante il clc,lo dl ~TA. SI assuma .anche c~e la smgola nchlest~':1~_~
venga dlsassenta per effetto dell esecuZlone della relattva routme. II controllore e J~l
all'indirizzo lFO. .!$'I·
Si progetti la logica del controllore, comprensiva della predisposizione (su coman-.. !(PA
do della CPU) della base dei vettori di interruzione, del mascheramento selettIvo delle ,~;f"-'
interruzio~i €. della pre~entazione di VT suI bus clei dati in risp~sta a INTA. . ,":.:~!;~
Si scnva 11 tratto dl programma ~sembler per programmare Ii controllore.1n modo ,..~
che la base dei vettori sia all'indirizzo effettivo CO e quello per mascherare/demascherare't.
IRQ5 lasciando gli altri mascheramenti invariati (la rnaschera corrente cleve essere ::~r,,"
ottenuta leggendo il controllore stesso). ;;:;
;':;,
',..
-':!:
-,A
~"tt" -
,,,.,="3;';1:
_~1l-"'"''
~:<~;';~':­
:'±'..~.t;~ '.,'
,.:.- .'::;, I; ""'"-, '-
......c •• b _ . _.
)
;~5J.;Y}~:\;-
"e,,-
h·"" ~ ,"., i".,
.,. ....,._.:.·_c".e.,
I-"~'~,~
\;
.-.
-.'- -
__------------------:.n:..::so:::t::t:::os:::;.,:::t::e::m:::::.adi::·:.in~¥es=so'"l"us::..:c:::.ita:::.._.:1.:5.:3
i:
#,-:'"7':'~;'; !.__
".~-""".""-

~1r.~;,·: Bus IndiriZZi , )


-t:f.~,1'~"1:__. _ , IF QO
f:.~;Lf~;.~ -- Bus Dati

:~~:':§~.D~::.-
-lORD
.'./,_,:,. IOWR
PIC •
I' Q6
,
,t/'. .'~::':.:> _' INTA I'.Q7
'.~';.,\:::;:_<
IRQ
.:gl,~":-'~··,'; ..
?:~~,:,:.":'\ '- Figura 4.46 Schema del controllere programmabile di intenuzioni deU'Esercizio 4.21.
)
1 '.;::"',:~< .. ' .
~:}';,.,{r:~;:~,~,c". .. "
,·};;.h:>J:~-. Esercizio 4.22 Trarmte caicolatore deve essere generato un segnale digitate penodi-
/t~:?{r{':>C'OI di pe~i~do. ~ = lsondo. n segnale cleve apparir~ sul bit. BO deU~ porta ~i uscita
,"'it,":, PORT, dl mdmzzo 50. II duty cycle deve pater vanare tra II 10% e il 90% dl T, con
I
;{{}C'H'·incrementi discreti del 10% (1/10 di secondo). 1n Figura4.47 vengono presentati i
It';t~~_{(:T,,diagrammi temporali corrispondenti ai due casi estremi.
-r~t·}~~~_r/.:,.- La routine INTPW, operante sotto centrollo di interruzione, ha il compito di pi-
i'1-/L:f)'lotare PORT in modo tale che l'uscita BO abbia la fonna d'onda voluta. La routine e
J
i~¥\'i~>:~~: agganciata aIle interruzioni dell'orologio che si manifestano una ogni 10 ms. Sull'inter-
:~~}~.~:-:~t;;c_ ruzione che corrisponde all'inizio di un periodo , la routine legge la variabile (comune)
:k':<:t~?:;-<:N (0 < N < 10 , N intero) I che indica Quale cleve essere il duty cycle del periodo che \
,~~~~i·;:-t)_".sta iniziando. Poiche i restanti 7 bit di PORT vengono usati in altro modo, e neces-
,~:Rt.:J~~~_;- sario che la routine INTPW nOn ne modifichi 10 stato. A tal fine l'interfaccia cleve
rV~;i;~:4,?';- consentire .1a lettura di ~uanto ~~ostato sui re~taDti 7 b~t in modo che la scrittura 1
~\q>~\:;~N~:- da parte dI INTPW ne nconfermt il valore. Ipotlzzando dl usare una CPU 8088. i
t;::Wif~f~I;.;-,'· 8i progetti l ' interfaccia assumendo di utilizzare per porta di uscita un normale
;:!~f,~:r~Y~2;.-latch a 8 bit. 8i disegni la logica per la lettura e la scrittura della porta. Si tracei 10
1,~~1ii!:~\~',:>;schema di Russo della routine di interruzione INTPW e il relativo testa assembler.
):."i':;cc"""",.
:!1((;~~~}:\'" . _ t • I SIIC
• \
~t~~G~tA;,~<o,:-- 11/11 I I
%;-~j';Z

f.jfi.~f;:,
~~~~~/. LJ
.Jl
I 'm I I
LJ
ll-
I
~~r~~lf~t::- Figura 4.47 Schema del controllore programmabile d.i interruzion.i dell'Esercizio 4.22.
.--;:i:;;~6'~'
~:i\~!(~;;,{:::-
.;~~~>"_: .... .... . '.
I
~'f.~~t?1;;+_E_~erclzlo4.2~ Sl ce~slden l'lDterfac.cla. s~hemattz.zat~ In. ,Fi~ra4.48.
;;?·Z-.;~!>-'!:;:i·" -' Quando vtene'scntto un byte all'lOdmzzo FO, il bit pm slgnificativo stabilisce se
:.~~tt~~:;i~1f.-Si tratta di un byte di comando (D7=1) 0 di un dato (D7=0). Nel caso si tratti di un
Ai,t!.;.".,~yte di comando, il bit meno significativo (DO) abilita (00=1) a disabilita (DO=O)
I
'~?:!V:??~x~·l.mterfac.cla alIa generazione cli interruzion.i. Nel caso di un byte di dati vengono
,::!~:U~"!i::~~>J~asmessl ~l'e~terno i bit DO-~6 .(l'i~terfac~ial deve prevedere un latch per il dato) e
}:;<~.fi:~!>:>.vIene assento II cornando X (dl tlPO lffipulsIVO).
<,tlr:1'181':;: Sulla ri,posta del perilerico (impulso ACK) l'interfaccia deve asserire Pinterru-
~
'~;,~K,:i~;~t?,_::> zlone. se e. abilitata. In ogni caso l'interfaccia deve prevedere un flip-flop di stato da
;~;t;;:L~l~l~r:·,assenre/dlsassetire su XI ACK.
."."'.
.~»~~;8'>I';-:'·
• .,.~~.y",.~~.,
~.
'f1?P-1ii;;;j;".i::".'
J
I
-'1~
iI~i'.l ,
';/'.'I.'"'

154 Capitolo 4 ,~~


I ,,".' ;~.
II
I"
• 'j'
.',-"
.,
,.,-
:.;);;
_.~.:.,-.
,,,,'1.'
-''''''
""~.
..-~-
"",-
,.~

Sulla trasmissione di un camanda l'interfaccia non cleve asserire X. Sulla tras- . "::;Ii.. {iP.'~'
missione del comando the abilita l'interfaccia alfinterruzione non cleve in nessun caso ... ~ '!~;;:.
( generarsi un'intenuzione spuria. . ;:.:t: -~;~l
Leggendo all1indirizZQ FO cleve tornare in D7 10 stato di abilitazionej disabilitazione ,:.~;;. ':~'i
delle interruzioni e in DO lostato del flip-flop di stato,.. " ·>4bi
51 tracel 10 schema lOgIcO dell'mterfacCla comprenSlVO dl: (1) decodlfiche cil co. :\~!~, ;i'~:';
\ mandi e indirizzi; (2) logica relativa alia scrittura e alia lettura dello stato; (3) logica ,,{~ ~;;
relativa aU:interruzione..8i scriva il codice Assembler che legge 10 state delI'interfaccia ,<:1 ),,
e la porta 111 state dl abihtazlOne aile mterrUZlOnt. :,:'}: 'j~':

~
-'.-1 c.1"~:
'.i:~~ ":'f-:
. Bus Indiriui '" ~
5l~ \.~;; .
, :-l:l ';'.'
Bus Dati (DO-D7) • 00-D7 ,.,,*,
..
'd~
• . -,
~"".
:, ~ . .,.;i'
',<",'

I • ";~H ,~t~
\ lOR D
X -:~:: ';k:
10WR
ACK c:tl ,f\'
INT
.::~~;l ::::::
'/im '~~t~
I Figura 4.48 Schema dell'interfaccia per Pesercizio 4.23.
II:it.~ ':,;h:
~;~1 ;:';;
";.~~ ).>:
Esercizio 4.24 Uo'interfaecia di uscita per UD micro a 8 bit presenta un latch alrin· )~~~ :}:'
\I dirizzo FO" Al latch ecollegato un J?erif~rico che cia ri~posta pra~ic~e~te imm~diata ':~
(pochi microsecondi). Per tale motIvo Sl vuole costrUlre una lOgIca dl mterfacela che ':,;:~
}:f
::i~i
consenta l su una scrittura da parte della CPU, di generare il segnale di WAIT verso '~'~ '-?g:

! 130 CPU stessa l segnale che viene rimosso sulla risposta del periferico, come da schema .. ~~
di Figura4.49. . <;.';~
8i progetti la logica di decodifiea e di trasrnissione del comando X verso It .:;.~
:~~;
'S)
,~:~
periferico e della logica relativa alIa generazione del WAIT. "',~ ,;~;
Si scriva il testo della routine OUTPUT che trasmette il contenuto di unlarea di ':~~:~ <~~
I HOV BX, OFFSET BUFFER
I

memoria aJj'esterno, chiamata secondo questa convenzione: :}:~ :]';1


........ " ....
',"',
,:"
'~;'~'t
:"'<J~~ '•.:,':
CALL OUTPUT ;':~ ;:.f
,'~~,
. , ':""
...
La routine deve trasmettere tutti i caratteri che incontra in BUFFER, a partire daHlin_ • I·,
. ,',:~ r. 'j
,

izio, fino a cbe Don incontra iI carattere "$)) . !'~~ ;~~


Esercizio 4.25 In Figura4.50 viene schemati:z.zato un nastro trasportatore. I pezzi :":~ ;;!g
I da trasportare vengono depositati nella posizione O. Nella posizione 1 130 cellula fo- t~ ::;
toelettrica Fl rileva se il pezzo che passa deve essere scartato dalla stazione si searto ,,~'~!t ':~;~
S1, situata a valle in posizione.~. Nell.a posizione 3. la cel~ula F~ .rileva se il pezzo .. ~~ .:;~
debba essere scartato dalla POSlzlone dl searto S2, sltuata m POSIZlone 9. Se a.mb~- '~~,:.1

1 82 (11 pezza deve attraversare la pOSlZlone cornspondente a 81 come se non fosse da .-, ~!:;
scartare). . :',' ::,;
Le cellule fotoelettriche Fl e F2 forniscono un segnale binario (0: pezzo buono, {;': \k
I 1: pezzo da scarlare). Per effettuare 10 scarto, gli attuatori 81 e 82 riehiedono ehe "'~
venga asserito il relativo segnale binario di comando per almeno lO~s, rna non pili di ,F~ ')';
30 IJS. . ~)~
Ji

;~!
I ."~
'_

,
~>:1:;r{!
,I.,. "
';:'~,:oI'

~:~> . II sottosistema di ingressofuscita. 155


;,; ..
.;. ',. ,
':"\'" '
-
'}.,'·f
.J.
J'.. ,-
- ....
-.'
~
-
';;'.:
.~:.~ 20.
BI
l)~"
i;:?:' IOV --h BD • DO- D7
bi,"';'.,-rT l
;"";_"'<' . VA -
-sox
;,~:::' AD< lDV
,,\' "
':.'
x J
~
II ! U
-
\J AI T
ACK

:·:
:::,--
. ,;;: "Figura 4.49
': •.
Schema delle temporizz3zioni per l'esercizio 4.24.

, ..•
.-
i' ' ."
.
~· "I, , II movimento del nastro e comandato cia un albere motore rispetto alIa cui rota-
:~·r··" zione vanna sincronizzate tutte Ie attivita. relative a1 nastro. A tale scopa un encoder,
',~- '>montato sull'albero genera un1interruzione (segnale IRQ) ogni a gradi percorsi. A
l

:~;,~:~:;;' 'regime Ie interruzioni si presentano ogni lOOms. Inaitre esse si manifestano quando i
~(:~': .p~zi sana nel campo di valida lettura da parte di Fl e F2, ovvero di scarto da parte
:':'-'J,'.,' dl 81 e 82.
;;.~':'- 8i supponga di controllare il nastro con un microprocessore a 8 bit (8088) e si
:~:-., assuma che Ie istruzioni abbiano tutte 130 stessa durata l pari a 1 ~s. n sistema di
'~>~:>., controlla deve svolgere quante pili funzioni possibili per via software lasciando alPin- I

f/:O} terfaccia hardware solo i compiti strettamente necessari. L'interfaccia deve generare
i:;r ::r. Pinterruzione riconoscendo il fronte di salita di IRQ.
:::?}'~'. ",:' . 8i richiede: (1) il criterio di progetto indicando come si mette in relazione il
;">.~' riconoscimento delle condi:z.ioni di searto can Peseeu:z.ione della scarto stesso; (2) l'in-
)'j":,:'",/terfaccia hardware (due ingressi binari l Fl e F2; due useite binarie 81 e 82; ingresso
~l''''> ~RQ, uscita INTR)j (3) il diagramma di fiusso della routine di interru:z.ione mOUT
;3j:';," responsabile della lettura di Fl e F2 e dell'eventuale scarto su 81 e/o 82; (4) il testo
~~);";."assembler della routine !ROUT.
1;,",;_';, >
.".', ... ,
,,"
" ',.;;;, ,'I' I I" I" I" I"
:::-;;"" .
f·-;··' 0- 0 o o o o o o
I, o o 0-
."," .-
... ' . ,
T. I, T, T,
-- • '. T, T,

~
j' • ",C "..

~~;:.,\:.
g;~~];.:~~\~igura 4.50 Schematizzazione del nastro trasportatore delPEsercizio 4.25.
I,,

;~:~:j.-:"
~Y:::·~, .'.'..'
~1*-~~::·' ..
1:!;:<\' EserclzlO 4.26 Se la routine ISERV nel Paragrafo 4.5.1 viene modificata in modo da

;":~,-"'~c. r.Ilevato aJeuna nchlesta assenta. 81 dlScuta la questlOne e proporre eventuah modl- I I
;:;:;~~.~ .\ fiche al programma sulla base di una politica di gestione di questa 0 simili situazioni ,I
:i:7.,;.:: :',~nomale. . ,
iJ{',( .. i
I
;i'~:,>;:. ~s~relz~~ 4 ..z7. In Figura4.51.viene riportata una soluzione per 13 logica della daisy
~~;,::,: .~am. 81 mdlChl quale malfunzlonamento pub produrre. ~"

!!~~~!;'~~
~!'r.;,;;<
', ' iI
'I,
_!6~~:. "
156 Capitola 4

IRQ

1 D Q D Q

~,~
IFF SFF
Ck ~ Ck ~ f-
"}@
':j';
IN TAl INTAO ,;;,
Figura 4.51 Si analizzi il comportamento eli questa. rete. :;<!'
,";{:.:
.~~J
Esercl'z'o
I. 4 28 Al fi n e d'1 e't
Vi are I' el td
emen 0 '1 n't ar d a ne 11 e re t'1 d'I F '"
19ura ' '{:w.
4.22 ''
Figura4.23, si potrebbe tentare di legar.. lEO a.Q di IFF,. come in Figura4.52. s i l
~nahZZl II comportamento della rete e 51 mdlchl 11 tlPO cil anomalia che esso puo'::fr~1
mtrodurre. ':. ,e,
/1 " 1
. ~:~~
IRQ )~~
':'.;~J
'::\:1
. 13
1- D Q D Q
. ~J;:.i
IFF SFF :'·'t;
Q Q Cl< Q ,.:;·1
~'-\aj
:'~1
TNTAT INTAO
Figura 4.52 Una. possibile modifica. Bulla linea JED.
;\l~
,:(~·.:1&
• .':.:<1f.S
,..-:,.:,;.
, ' ..",f,..
Esercizio 4.29 Facendo riferimento all'interfaccia di Figura di Figura 4.20 e a quella"\f.'1
d.i Figur~4.22, si e~amini Quale e l'in~~rv~llo.minimo tr~ due ~r~nti. di IR~ ~ffinche it"'$~
SIstema 51 comportl correttamente. SllDdichl setto quail COndiZlOni una nchlesta puo 'J~
andare p e I d u t a . q ~
.. . .~Jj
Eserclzlo. 4.30 Dlscutendo della necessita. di avere lalinea IE per garantire it rispetto·';.'!ffi
della priorita per Ie interruzioni annidate (Cfr. 4.8,1), si e supposto di fare riferimento.~
allo sche.ma di Fi?tir.a4.23, dove epresente il ftip-ft~p IFF, che viene comunque trovato' !~~
a 0 sull'mterfaccla 1 (a meno cbe questa non abbla di nuovo riasserito IRQ durante.J;:'
il servizio). Si supponga ora di fare riferimento aHa rete di Figura 4.20. Si analizzi il:~
c~m~oItamento nella situazione descritta. Differisce, se differisce l da quello della rete}jj
diF 19ura 423. ' 1. ';-•."~
""".
&
''''
. .
Esercizio 4,31 Le interfacce di I/O di un calcQlatore COIl bus dati a 8 bit sono colle-:;1~
gate in daisy chain e vengono gestite sotto controllo di interruzione. Su ogni interfaccia"'~l
e presente un flip-fiop, denominato IS (In Servizio) che viene portato in stato ON (31- ,.:.~~
to) quando l'interfaccia viene selezionata come quella da servire dai segnale INTA. n,}t~
segnale INTA viene asserito dalla CPU in risposta aIle richieste di interruzione. ,,:,,~
Uinterfaccia viene selezionata sui fronte di discesa di INTA, se essa stessa ha ?(~
fatto una richiesta di interruzione ed e asserita 1a linea lEI. La selezione si manifesta ~:i~
.:,j"
,,1} ,.
:fiif!
)dl
;~1~}r-
.. ,
~,....::\,~
' )
.~~~t:~f('
.. ",,.,. - _ n sottosistema di ingresso/uscita 157

.-
""~~"
.,,{.ri,'';';!'r~.~~ -., -
I~'"r~ "'''''-',~
'~,;",:,,,:. _
.~~
':~- I:(.~'i.'''':·'·;_
I?..I
''3;:'/''~-;'_''
.
:

~f,;I;\:f:;il assaggio di IS allo stato ON, Ia negazione della linea IEO e della richiesta di
1
'h~~~:2_~~ . ~rite~rUzione IRQ. n selezionarsi dell'interfaccia inibisce U passaggio a valle del £rente
~ ::~i~~~:~~~Tdi INt:~dO IS e ON, l~ '?gica deU'i?terf~ccia m~nitor~zza. il bus dati e le line~ di I
{r~>'!'.·::'~oi1trol1o. Se sui bus dab
presenta 11. codlce dell'lst.ruZ1(;me mET .(~O) con la linea
51
e
;t'''::''';'OPFTCH (in uscita dalla CPU) assenta e, se venficata Ia condizl~ne IEI=ON e
,t;:<:/·.IEO=OFF, il flip-flop IS VlOne portato allo stato OFF (hasso) e Ia linea lEO deve
·,;n~:;:":,(',,tornare
<;1:\'/::'~:":' ,-'
allo stato ON.
Si richiede 10 schema della logica della daisy chain, in particolare si richiede:
1
J ':'!6·~,.tl)lo schema. delia rete che fa passare IS alio stato di ON; (2) gli accorgimenti che
' ~i"\':;~'::"',"
,.,".', 'permettono d1 dlSasseme
' IRQ
. sulla selezlOne, (3) 10 schema delia rete. che nconosce
l £,~;t.'.:.IRET e comanda IS lD stato OFF, (3) 10 schema della parte relatlva aIla catena \
1 :i(5:~.~::~ir;.IEI-IEO.
"t t " di una vo1ta eel
" ',~~\';H:;::'E'sercizio 4.32 ~ eta 0 osserva 0 pm,
h'l Fl'Ip· Fl'Ip SFF d,e11 e m-
.
1
~ .~f.r:,~:'~,:; ~,terfacce indica che e in esecuzione la routine di servizio dell'interruzione. E stato
~ fNt,·::~,;c. :'anche' osservato che normalmente SFF viene riportato a 0 al termine della routine !
~ ;£Q/~.(: (Cfr~ 4.8.1). Quando SFF tor~a in st~to .1, 1a catena di p~orita ri~ulta ~bilit~ta .a
3 ;::~/;<'.<' valle.Che accade se a valle c'e un penfenco con IRQ assenta, nelPlpotesl che il 51-
i$ ~~~.i~~,:-\stema di interruzione sia stato riabiHtato nel corso della routine al fine eli permettere
;~ ;.~;t~~~··:·">-"l'annidamentodelle interruzioni? Volendo consentire l'annidamento delle interruzio-
1~ }JIk~i~~, iri 'ola--senza permettere che passino mai interruzioni meno prioritarie, neanche: nel
I
j ,:{l:k;.~·:?.-c~o bra descritto, cqe accorgimento si deve usare nel comandare IE? . 1
11;~1~7·;'\>~~erciiio 4.33 Facendo rife,rimento al precedente esercizio si supponga che SFF ven- I
~ ,\~;~{!:-,;,:;:,ga r~portato a 1 alquant? Pfln:a d.e~la chl~sur~ d~Ila r~utme. a'e qualche ~ere.nza
&1 ':f:~;,';.~';:>,;}~'::.con d, c~o pr~cedente? Sl c,onslden 11 caso m CUl.l'lstruzlone STI venga esegwta prIma
S ,.\~i'{t~:';"./,::,;.-'e, quello m CUI venga e~(!gUlta dopa quella che nporta SFF a O.
.~ ';3" ,;]; " ::,.>,.;"
, ,'i;,:~,r .. :' .'., \
1 :~:1~:{~;::,.;:~~~Esercizio 4.34 Si modifichi 10 schema di Figura4.26 in modo che IRQ venga disas-
~ ;~:*::E~~,:::'--·:.se.rito al passaggio in stato 1 eli SFF.
~ ':f.;~F:~~\',·'
~
.'. . . .. . ..
:tN~t;<'EserClzlo~.35 S~ progettJ 1a lo~ca dl una daISY cham smeTana. 51 supponga che
.

j %?,(;;~s?:..una volta nconOSClUto Th'TA assento, debbano passare 2 due periodi di clock per dar
i
i ;2}'/t:::': '!Dodo ana catena di stabilizzarsi e che quindi venga selezionato il periferico a piu alta
~ :~jr~::r'i.>priorita. .
~ ·*fff~~~>. ' .. . . .. '..
' ,~.;'~:'.'~.~' .~serc~lo 4.36 In nferunento alla rete dl Figura 4.29, 51 progettlla rete che suI pnmo
.. (
~ '. ~;~~~{/.~ ?clo dl INTA seleziona la richiesta da servire e porta a 1 it bit corrispondente di ISR.
j .~rf?~<::'.: '
&,~,,., .. '.'
".,
.:::,:;~' .. ,~ ...
..,," .,
'.~'~"
",~".
,.',
1
~ it/·:·.'~' ,
;'?,;:, '." :
~ ;:,~,<>':':' '
~ :>i~,.':<' .c'
~,:,,\,:.,.,
I
~ '.:"'~"'. '
~ ?:',:,:,:'" ..
.
", ".'" " ".",
}, ., .... ,,.'!,
!!
,
' ;:.';': ,,'-< .,'.,:
1
'i ,',.[,', '-,'

\
'~
,j >,,,'"
~.~,
. ....,~>.
".~\ "'\,r~,.
;:1" ,~4
-,

I ,
,'";
' ., .
",~ ."
- - '; . ,
••..., ,c,

,
,

,
'.-
\ . -' ., ,
,
','

"",
;_.' -f

,
\ " I'
"

, ,
,

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

., . "

I
\ \
'--

~
'.
,; I
I",,
I _:; •..

I .'. ,',
,

'I
I -:~
J..
.. " • ',.
,,~
.
,
"
.
,
.

5
La CPU
..

Questo capitolo e dedicato all'esame approfondito del funzionamento della CPU


- Viene definita un'architettura semplificata che si ispira aIle maccmne RISe e per
essa vengono sviluppati due prototipi, denominati CPUI e CPU2. n primo prototi-
po (CPUl) e castruita in modo da eseguire le istruzioni in un solo periodo di ciock,
il secondo (CPU2) esegue istruzioni in piu cieli. Risulta istruttivo confrontare Ie
prestazioni ottenibili n"ei due casi.
Uarchitettura della CPU e i prototipi sviluppati possiedono delle caratteristiche
che consentono, come vedremo nel capitola successivo, di operare facili trasformazioni
in modo da permettere l'esecuzione delle istruzioni in pipeline.
,,,
'

5.1 Notazione
Per descrivere il funzionamento della CPU faremo ricorso aHa n,9tazione di Tabella 5.1.

Notazione Significato

l- asferimento dati; la dimensioneaei dati traSteriti e data


dalla dimensione della destinazione.
Mix] Contenuto locazione memoria all'indirizzo x.
l-n Trasferimento di un campo-di n bit.
Xn Selezione del bit n in X,
Xm ..n Selezione--di un campo di bit cla man in X.
Xn Replica n volte il campo X.
X II Y Concatenamento dei campi X e Y.
«,» Scorrimento logico a sinistra e a destra.

Tabella 5.1 Tabella. delle notazioni usate nel testo.


-
.. "
~.
"
160 Capitola 5
.":
'; If
,
~.,

5.2 Architettura di riferimento della CPU


"
Definiamo ora unJarchitettura di riferimento, aHa Quale ci appoggeremo per svilup._
pare molti argomenti futuri. All'occorrenza ci si serve della notazione riportata al
precedente paragrafo. Uarchitettura 5i basa sulle seguenti assunzioni.
-.,
1. La macchina e a 32 bit, di conseguenza tutti i registri di CPU (salvo quando di-
versamente indicate) sana a 32 bit. Bus dati e bus indirizzi verso la memoria SOM "
pure a 32 bit. Uunita. operativa presenta 32 registri di usa generale identificati
come RO. Rl, R2, ... , R31. "

2. Gli indirizzi dl memoria sana riferiti ai bytej istruzioni e dati occupano sempre e _
solo una parola di 32 bit. Di conseguenza istruzioni e dati si trovano in,memoria ,
allineate agli indirizzi 4 x k, k = 0,1,2,..... ,,0

3. Tenuto conto delFassunzione precedente, se si esdudono Ie istruzioni di saIto, la - .'


regola di aggiornamento del registro PC e: PC+- PC + 4. -
4. n repertorio di istruzioni e estremamente ridotto. I possibili formati sono in
Figura.5.l. Si noti che iI codice di operazione occupa. sempre 10 stesso campo di
6 bit. Si hanno i seguenti tipi di istruzioni.
""

• Istruzioni aritmetiche tra registri.


In questa caso il c~po OF contiene il codice di generica operazione arit- _:;.
metica, mentre it campo fALU identifica 1a specifica operazione da eseguire,
per e,empio: ADD (somma), SUB (sottrazione), OR (somma logica), MUL
(moltiplicazione) ecc. Le istruzioni aritmetiche prevedono sempre due regi- --. ,
stri sorgente e un registro di destinazione. I campi RSl e RS2 identificano i
registri sorgente, contenenti i due operandi, mentre Rd identifica il registro
di destinazione del risultato dell'operazione.
Esempio: ADD Rl,R3,R8 j Rlf- R3+RB
(dove RSl = R3, RS2 = RS, Rd = Rl),
Ovviamente 10 stesso registro puo essere impiegato sia corne sorgente sia
come destinazione. Per esempio 1 l'istruzione SUB R7 ,R7 ,R7 ha l'effetto di
azzerare il contenuto del registro R7._
• Istruzioni che fanno riferimento alIa memoria. ,
Ne sono previste solo due: (a) l'istruzione LD (load) di caricamento di una .,.
parola di memoria in un registro; (b) Fistruzione ST (store) di memorizza-
zione del contenuto di un registro. In questo caso il campo Rb identifica il '-.
registro di CPU che si intende utilizzare come registro base, ovvero come
registro al Quale -.:iene sommato il campo OFFSET (moltipiicato per 4 - si
veda pili avanti) per calcolare I'indirizzo della locazione nella memoria dati
in cui l'istruzione legge 0 scrive 1 . Nel caso dell'istruzione LD il campo R.srl
identifiea il registro da caricare can il data Jetto in memoria, mentre nel caso

1 E
comune nelle ma.cchine RISe riservare il registro RO per contenere permanentemente O. In
tal caso l'istruzione to R.2.SCOST(RO) ha I'effetto di caricare in R2 il contenuto della posizione di_
memoria di indirizzo SCOST.
• ','i;
.". '
\
La CPU 161

,
,

.
)
delPistruzione ST it campo Rsd identifica il registro il cui contenuto deve

essere scritto in memoria.
Esempio: LD R13.100(R6)
=
(dove Rsd R13. Rb
Esempio: ST 400 (R4) ,R25
=
R6),
; R13~ M[R6+100]

; M[R4+400]~ R25
I
,, (dove Rsd=R25, Rb=R4),
Si noti che la macchina legge/scrive solo parole di 32 bit. Non e questa una
grande limitazione in riferimento aile arch+~etture di tipo RISC, in quanto
la manipolazione di byte puo essere fatta all'interno dei registri tramite il
I
• repertorio delle istruzioni aritmetiche e togiche , effettuando operazioni di
isolamento/scorrimento/raggruppamento. Si ev:idenzia perc che Ie macchine
reali, comprese Ie macchine RiSe, prevedono un'abbondante serie di codici \
di operazione, comprese istruzioni di caricamento e memorizzazione, riferite
0' . ai byte.

"
• Istruzioni di salto condizionato.
Anche di queste ne sono previste solo due: JE (salta se uguale) e JS (salta in
I
base at segno)2. Arobedue confrontano it contenuto dei due registri sorgente,
RSi e RS2j JE effettua il saIto se i due registri hanno uguale contenuto, JS se
i1 contenuto del secondo registro e maggiore del primo. Nell'uno e nell'altro
caso il saito si effettua aggiungendo a PC il contenuto del campo OFFSET
\
(moltiplicato per 4), ,
Esempio: JE R2,R3,dest ; i f R2 z R3 then PCt- PC+OFFSETx43.

• lstruzioni di salto incondizionato. 1


Ne e prevista una sola: JMP. In questa caso il campo OP contiene i1 codice
del salta incondizionato, mentre il campo IND contiene l'indirizzo della posi-
zione di destinazione del saIto (diviso per 4). n campo IND contiene sernp.ce
un n~mero positivo.
II
Esempio: JMP label ; PCt- INDx4 4 •

• L'istruzione di !lnon operazione1' . '


[l suo codice mnemonico e NOP: Ha semplicemente l'effetto di far incre-
mentare PC di 4. Il formato di questa istruzione richiede solo il campo OP,

mentre gli altri bit sono irrilevanti. ,

,I
Siccome si e stabilito che Ie istruzioni e i dati occupano sempre una parola a \ '

indirizzi multipli di 4, non conviene irnpiegare i campi di scostamento/indirizzo per

2Questa istruzione e rappresentativa degli usuali codici JGB (Jump if Greater or Equal Zl:l"O) e 1.
JLT (Jump Less Than zero). Ai fini degH argomenti svolti in questa capiteto, la sola. istruzione di
salta condizionato JE sarebbe stata sufficiente. Viene coosiderata ooche l'istruzione JS io quanto
con \a sola JE diventa praticamente impossibile costruire un prpgramm·a. di qualche utiliU,. Le due
istruzionl JE e JS, usate opportunamente in accostamento aile operazioni aritmetiche, COnsentono la
scrittura di programmi non banali in linguaggio Assembler. A tale proposito si veda I'Esercizio 5.L
JOFFSET rappresent.a 10 scostamento, misurato in numero di parole da 32 bit (4 byte) della posi-
e
zione simbolica dest rispetto a PC. In altre parole il valore di OFFSET dato dalla differenza tra due
I
,
indirizzi divisa per 4

'1 .
.,; (
,
4Qui label e il nome simboHco della posizione di memoria di destinazione del saIto e INO
rappresenta il suo indirizzo in parole di 4 byte; si veda piu ava.nti. ] .

,
'l\II;~""
"i. "';;~i'
,'~) '11$J;~,
..,.!! • I: "'. .1

~1.::6.:2_...:C:::a::!p::i=to::IO::.::5 '~:;'~ ,~::,f


I ".,>
,.'..1'
,... ,~
>,1; ':':I~:::
".j!
'';j'
··'.'I-~

w. I'~I'DI"_I' ~ "I (F2) ~', . .-


,. .,'•..,
I
tlftnls10aJ S'T
,

~ :r"
" ., 1":
o • 11 II II. :ll "
,"
~ arttm.Uah.
I~I~I-I"I = I (F3) 'I
, " ,

.I .
,'
,
\ , , " ,

,
~OD. 41 .alto (IWP) I ~ ~ I (Fl) . '; ,,",

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

I t.t.nuio.n1 d1 alto oood1a1o.a.t.o


,..m
o

l"lkl-i
I II I'

~
",

I (F2)
- .,
,

. ,. ,.
- "
,;;~"

Figura 5.1 Formati delle istruzioni. La regolarita del formato permette una. facile decodifi- :.r .::_~,
ca dei van campi dell'istruzione. II campo INn dell'istruzione di salto rappresenta. l'indirizzo ~;; ',-,. :.,.
di destinazione. n campo OFFSET delle istruzioni LDjST rappre'senta 10 scostamento.ris_ ."~;' ....,.;.;'
\ petto al contenuto del registro Rb, mentre nel case delle istruzioni JE/JS rappresenta 10 .~ -<:
scostamento rispetto alIa posizione corrente. Si Dati che a differenza del campo IND) che-:; ,:'~'
contiene sempre un numero positivo, il campo OFFSET pub contenere un numero positivo .:,:~ .. ~X;

I (riferimento in ava.nti) 0 negativo (riferimento all'indietro). Sia IND che OFFSET contengo- ~.,) :" !"
no un numero corrispondente all'eHettivo valore dell'indirizzo 0 della scostamento diviso per '''~~'. .'~~
' d estr a vengono npo
4. Sull a Iasaa t' , noml, usat'1 per 'd
' rt all I entifi care Cla5cuno
' d el' 3 di~
nerenti ,., ..
,,:~~ ~:~:~
r " , ,.,'.
!ormati. ':-:,f ::- ~''
. "'i~ };:
"" .~"

\ , ·,'.i<' I"':;,
contenere 10 scostamento/indirizzo effettivo. E meglio codificare nelPistruzione l'in-,:~S,; "',~ " '

dirizzo diviso per 4 e prevedere che la CPU moltipliehi per 4 i1 contenuto di questi " :-~, : <~, ...
campi in fase di esecuzione delle istruzioni. In tal modo viene meglio sfruttato 10, \~,: '-~
f spazio offerto dai relativi campi e, per esempio, e come avere 18 bit in luogo di 16, ',~, ": ';~
• C<?n la nostra notazione (Cfr, 5.1), l'azione di portare IND a 32 bit, moltiplican· ,::~:~. <:t:
dolo per 4', si indica come: 0000 II IND II 00, L'azione di portare OFFSET a 32 bit,~ ,",
ricbiede che venga espanso il bit 16 fino al bit O. Questa operazione si indica come /: ,ri,:>
r (OFFSET,,)" I I OFFSET, dove (OFFSET,,)" ,ta a indicare la ripetizione per 16 ", ",':-;
volte del bit 16 <Ii OFFSET, 1'azione di portare OFFSET a 32 bit, moltiplicandolo·,;; '\(
per 4, richiede the in piu the vengano aggiunti due zed a destra..Questa operazione ;,:'~ '.~:,

I si indica dunque come (OFFSET , .)" II OFFSET 1100, "~" ,


Vale la pena di osservare the la tecniea di codificare diviso per 4 10 scostamen- ....~
. '" , :'
".
\

to/l'indirizzo presenta qualche aspetto contraddittorio. lnfatti, in una macchina reale, " '.
sana previste ancbe istruzioni eli caricamento/memorizzazione the indirizzana diret-, :,J • ;

I tameIite il byte, Can la nostra architettura sarebbe necessaria rinundare, per queste ~
istruzioni, alIa tecnica eli codifica adottata e riportare nel campo OFFSET l'effettivo :__ '~;
:
~,
scost~en~o~e~ b~e. Avendo fa~to l'.ipotesi - per motivi di ~emplicita - che 1a nostra. :<.; :,,:,'
e
macchina mdirizZl solo parole. 81 ntenuto opportuno codlficare sempre nel campo .,'; ."
I OFFSET 10 ,costaroento effettivo diviso per 4 6, ' 'i
'"
·1
,',;.
"
.
.t
( .~. "
$La moltiplicazione per quattro corrisponde a uno scorrimento di due bit verso sinistra, ovvero '" ',
all'aggjunta di due zeri a destra. -.: ..
6Nella pratica sara bene leggere attentamente i manuali del costruttore per capire cosa contengoDo ,i~ . '.
e come vengono manipola.ti in fase di esecuzione i campi di indirizzo/scostamento. )~ "
.,,~,

I
... ~~ ,:;
.".' ." ..."
" . "l~
"'\r
':'
,~:;:

__
1,,: _

f~~r. --------------------:-------.-::L~a...:C::P:.-U::..--:l:.:6:.:3
-'-' I
~.-·-
- ",
:.i>:·
,'
Ai fini della discussione di questa capitola conviene assuniere i seguenti codici per Ie
s~pra
"~:
7
:""\' operazioni elencate :
istruzlODe NO P: OP=O;
.
, istruzioni aritmetiche: OP=l;
istruzione LD: OP=2;
istruzione ST: OP=3;
istruzione JMP: OP=4;
istruzione JE: OP=5',
,

istruzione JS: OP=6,


,
",,:
;~

, .'~'·5 ..3 Blocchi componenti


.-' (:~ ,
;'0':..'. ":'" . . .. .
<:, -:i"-'Prima. di pro~edere ~o sVll~ppo del du~ prototlpl CPUI e CPU2 ve?gono ultenor-
':;':,·'~:::',;inente discuSSl alculll blocchl component!.
;:>~,;, "'
":,,,:,,-:-
~{'-;:- 5 3 1 I regl'st' d'I usa generale
,'
~},y". • • rI
"
'''',::J
,.'."
::;':?,:'$i' suppone che la maccbina presenti un banco di registri (Register File, RF) di usa
,:;:~:", generale, nel senso spiegato al Capitola 2. I registri che compongono il banco sana
~ ',~, ::,.da ritenere equivalenti tra lora salvo diversa speeifieazione.
" ,
n
banco dei registri e
,'";·._':<.:schematizzato
. ,~,
in Figura5.2.
~~l :;.-....., In Figura5.3 viene illustrato it dettaglio dell'interno di RF in riferimento al gene-
;~'::: ::.:::' rico registro. Per Ie ipotesi fatte, i registri all'i!1tero eli RF operano secondo it modeno
::::~::'~'di cui al Paragrafo 1.5~ pagi~a 27 e la s:dttur~ s~1 registro R j s~lezi.ona~~ da, RW av-
,:.-, viene alia fine del penodo dl clock se e assento il eomando R.;m dl ab,htazlOne aHa
>'";:.":: scrittura suI registro.
;"c,;
(:,", ,
,.'>'?~;/ 5.3.2 ALU
,', C'"
\,.'.-"

e
. '~>"J.,o schema della ALU riportato in Figura 5.4. Per mati vi che saranno chiariti in
. ',.::', :.:," segulta, e stato esplicitato it bloceo ContrALU. Questo bloceo ha la funzione di deeD-
;:;,',;:.. dificare it codice di operazione aritmetica fALU e di presentare l'opportuno segnale
::'< i>.di comando alia ALU8 ,
,~:~>-> n blocco ContrALU e condizionato attraverso OPALU (k linee) , in modo da
',;''<.> "ot~enere, quando serve, unluscita diversa da quella corrispondente alIa decodifica del
";: '/'.',·coaice di aperazione aritmetica.
;;::',/
' ,.
.....
: ..
,
-'

t·",
,C " notl, LUe " 'S'I
"" can queste poeh"
e lstruzlom'b astere bb ero 3 soli b'It per I'I campo OP . Faremo comunque
", .l'~potesi che il campo sia di 6 bit. AI capitola dedicato al progetto della CPU in pipeline il repenorio
,:,':/' ~Iene leggermente esteso e si assumorio codici piu convenienti al fine del progetto della logica di
.. "', ,;. controllo.
I ::. OS5ervi che questa soluzione serve a ridurre al minimo it numero di !inee tra la parte di
3Si
",,:> decodifica delle istruzioni e la. ALU stessa., d!minuendo l'occupazione di spazio Bull'integrato.
. - , ,>-
;(. ;~"~:
"',,,-'"
~
.'" ',',
-,'I,·'
'
"
164 Capitola 5 .' :;. "
.~
- "pl"
:j'il
:~J;~
· "",
,~.,
., ",'""
-,"'
• ,",1,.
,
.1· ' '

, 'RW
,!,> U,eita reglstro ","jo/"
"

Selezion.., ( ,elnionalo d .. RRl d


registri
I /5 .. RRl A I;jG . " ·'it"
"1
:,,:')

I /5 .. RR2 "~'.' ,
RF .,-!'JI
"
UI<:ite. r.glstro -"~l"

Ingresso III reglstro B


/
." selezlonllto dll RR2 <r
seln:lonato da RW 752"1 D RWrite
(~G ,j'<'

oj;:
..;

t ·.:,;~
-
.~

....
"'{
Figura 5.2 Schematizzazione del banco di registri di usa generale. RF (Register File)'"~~"
contiene 32 registri di 32 bit. I gruppi di !inee RRl e RR2 identificano gli eventuali due re.;'':?
e
gistri letti (registri sorgente), Ie cui uscite vengono presentaie sulle porte A B. II gruppo di ,If:
linee RW identifica l'eventuale registro di destinazione, ovvero it registro in cui viene scritto 'l'~
il data presentato in ID. La scrittura nel registro di destinazione ha luogo suI fronte finale .~'i~
del clock, solo se e asserito il comando RWrite. Questa figura, come queUe che seguiran'no, :\.'
non mostra. il clock; esso e da ritenere s o t t i n t e s o . ; i ' "
.. ,:~::
'.:~':.,
, ': !',
5.3.3 Memoria .:~:;::
·
,<,',.
La schema della memoria e in Figura5.5. La figura rappresenta una memoria di
· ',."
';;.:.:
lettura e scrittura. Nel caso in cui 130 memoria venga usata come contenitore delle sole "~~
istruzioni, non serve la logica di selezione dell'operazione, e 130 sua uscita e da ritenere ,:~3
' .. ~

sempre abilitata. '~"~'


,\;"
.~.~
~Jl
,....
5.4 Sviluppo di CPUl r:.:.
'L'

..",',,1:.,
Viene ora sviluppato un prototipo che esegue istruzioni in un solo periodo di clock. ,~'
Per pater raggiungere tale scopo, conviene anzitutto ip£ltizzare che 1a memoria sia ""
separata in memoria istruzioni (MI) e memoria dati (MD), secondo il modello. di .';;
Figura2.5, in modo da consentire sia il fetch sia la letturafscrittura dati all'interno ·:
della stesso ciclo. Can tale assunzione l'esecuzione di un'istruzione pub procedere nel ....;':
modo seguente. . " '.
""
;' ,
• La memoria istruzioni (MI) rende sempre disponibile it contenuto della cella :,(
indirizzata dal PC. .~'
"
.
• Uesecuzione di un'istruzione corrisponde alIa propagazione dei segnali attraverso .. ;
il blocco di decodifica, il banco di registri, 130 ALU e 1a memoria datil fino all'even- :':
tuale scritt~ra ~i un registr.o di de~tinazione. ~ venda separa~o 1a memo.ri~ dati ·
da quella di programma, gil acceSSl alia memona non determlDano confhttl, che ~
invece potrebbero nascere per l'uso della ALU. Per evitare confiitti sulla ALU si \r
-
, I .".-
__ lS",'"<'~
,. _

~l1.-I.\!r.?,.·­
,jif;o.f b ,";' ;.,

'Wrr;"
",11
'''I"~.,,~,.
.... ",,' 'Jl'~'
,:",.
'h-."i.··
~ -"0' . '. \
",."
".~.,,!,..
" .. La CPU 165
11
" ~ .',
," '..;.;
',',i
.- '
.,~~
..'
0•
1
o
5, RR' o •
" , 0 .

I
o 31
,. . 0 BS2 BSl
5, RRZ o •

, .
1 , I
, o 31
A ,
'32
I- 5, R' : ~ Riin
0

"'

".:'
'.,": o 31
\
Ri
"'. ....
,.'
'. '.'
eD
. ':' .-
. . ~ B I
~. ":" . •
~" ... :.\ • •
.~<
\
.",1,:,.:': •
.' .... ",.' :',",' , D
:" ,.' _< 32
RWrite
I
:

"',' ,
~ I
':
.:;;.
t <; Figura
:,., ':. 5.3 SeIeztOne
' d' . 'II" eli RF BSl
el r~g1Strt a. IDte~no . '.
BS2
e.
t' d b
rappresen ~o I ue. u~

I
.J

:]',.' " . sorgente. BD rappresenta il bus eli destmazlOne. SI ossenl. che,. a part~ I fenomem ~
',:, propagazione, R.F presenta suo A e ~, pe~ ~utta l~ durata del cl~lo.w dock, 11 contenuto del
. ,due registri che vengono seleZlonatl dagh Ingressl RRI e RR2 1 mdipendentemente da! {atto
: ,,:--., "cbe .questo abbia un significato rispetto all'istruzione in esecuzione. Per esempio, nel caso
'
."
,dell'istruzione JMP , queUo che esce da. RF e irrileva.nte.
.. '.
I'"
' .. i
" ""
: ','" :::--','.' .~. '
l;'"

I
~:" .:':: ,:': rendono necessarie unita. alternative per l'esecuzione delle specifiche operazioni
3 ,.' .. ' ~~ ,",' che determinano confiitt0 9 .

I
~

' '. .>::'. ,"',


". ;':,' • Al termine del cicIo di clock, sui fronte di discesa, secondo il modella del Capitola
~ ,-' ,.1, PC viene aggiornato (per incremento di 4 a per effetto delle istruzio~i di salta)
l· }>':: ~ ._".,. "e 130 logica passa a eseguire la nuova istruzione.
! ..... \
.: '
'. ,
! :',:.Per 'rendere possibile il funzionameilto sopra delineato e necessario che il periodo
',',,"'.
' .' ,

. di- clock sia lunge abbastanza, in modo ~a permettere 1a completa propagazione di


,:: .' :.',., .',
I
' tutti i segnali e la loro stabilizzazione. Tenuto canto delle caratteristiche della oostra
", .:,' architettura, si puo pensare di suddividere'la CPU nelle seguenti sezioni.
;':, ."
::l .. Una sezione dedicata al prelievo delle istruzioni dalla memoria, di cui fa natural- \
:1"
· 'mente parte PC.
..
.:/r·
~ , ,

.(::
"
,"
.• Una sezione di decodifica dell'istruzione e di prelievo del cootenuto degli eventuali
, . registri sorgente.
• Una sezione relativa alta ALU.
I
'~

l
",
. ..
, • Una sezione dedicata alia ietturafscrittura nella memoria e alIa scrittura del
;l registro di destinazione .
:~?'
·.~'I· gIn generale, quando all'interno di U.1l periodo di clock una stl!53a risoraa. pub essere richi~ta da
~..
\r~l,
' piil ~arti e necessario prevedere un duplicato 0 un'unita specia.1izzata all'ese<:uziolle di una specifica
funzlone, I

\ 166 Capitolo 5 - J".~
,~ '.
rAW I

..-".
( 11 "
k
OPALU 7/ "I ContrALU '. ..
"
,i'.'
.'
, .:-'
\ Dato 1, • IA 'cl'
:1 '
32 ~Zero ".f
~Segno . !.' I
I OJ /.
32
Risullalo "·.
il··
···f"~of;

· ""; . ,

Dato ,
,
\ Figura 5.4 Schema della ALU. Per Ie motivazioni illustrate nel seguito, e stata espJieitata ,',, ,

la logica di controllo con il bloeeo ContrALU. Le 11 linee in ingresso a tale blocco provengo- ':. i•.
no daJ campo fALU dell'istruzione e codificano 10 specifico codice di operazione aritmetica : ,;~,
( eontenuto in un'istruzione aritmetica.. Le k linee OPALU influiscono sull'uscita di ContrALU .~
e vengoDo usate per generare comandi che possono non corrispondere a quanto presentato '>~
• . J'

5ulle linee che codificano Poperazione aritmetica. L'uscita Zero viene as5erita quando iJ risul. "; ~
ta.to di un'operazione e 0, l'uscita. Segno viene asserita quando i1 risultato di un'operazione .J': .
e minore di zero. A parte Ie operazioni aritmetiche, queste due linee sono rilevanti per Ie ':' ', :
I \ istruzioni JE e JS. .c. ;.?. .
- ". ,I
,"I,
; ::il...
Le sezioni sepra delineate vengono esarninate dopa la seguente .osservazione. ..
,".' ,'.

~ Osservazione sui tempi di commutazioile Sui fronte di discesa del clock i re~ ',::,.

...
': .
,

gistri campionano i lora ingressi e cambiano corrispondentemente stato. Poiche ie '.


"
commutazioni non sono istantanee, e necessario che gli ingressi ai flip-flop siano 3ta-.. :'~'~'
1 bili prima del fronte del clock (tempo di set-up. TS) e vengano rnantenuti per un ":~'
cecto tempo (tempo di hold, TH) perche si possa avere la commutazione (Cfr, 5.6). :.:i:
Potrebbe accadere che Ie uscite di un registro malta rapido nella commutazione C05- '. ::,1,
.'i
! tituisca.no gli ingressi di un secondo registro piu lento, che richiede un tempo di hold
superiore a quello che impiega il primo a commutare. In tal caso il secondo registro :",:.:
avrebbe un funzionameoto erronea e indeterminato. Nella costruzione della CPU e':'!
dunque necessario ipotizzare cbe tutti i registri abbiano Ie medesime caratteristiche ',', j'

I temporali di commutaziane e che la commutazione stessa si manifesti sulle uscite, :".~


dopo un tempo TC (dal fronte del clock) superiore al tempo di hold (TC
assicura che i segnali in ingresso ai registri siano stabUi durante la commutaziane el
> TH)' CiG ...
.' '.:

conseguentemente, assicura il corretta comportamento del sistema. '


...,
\ •
"

5.4,1 Sezione di prelievo delle istruzioni , (

,.
'I Dalla m.emoria di programma viene prelevata l'istruzione il cui indirizzo contenuto e
,

)1 "

in pc. E sufficient. che l'uscita di PC sia collegata alIa porta di indirizzo di MI per,~
."
, :'-.

I
.'
-.' ';.)
.' -.~

,
~~» _ La CPU 167

.
Mread

. Mr Mw
,'7.
'..
/
'32
I M D /32 "
I
·-··.
.....
,. M-wrile
Figura 5,5 Schema d~lla memo.ria. ?? I~ memoria ~iene impiegata pe.r contenere soltanto
.. , Ie istruzioni, seompare Ll Busso di dati mgresso e 51 assume cbe essa Sla. permanentemente
In
" abilitata in lettura. Per questa motivo, negli schemi che seguaua, quando si disegna la
·.memoria istruzioni, i comandi di letturafscrittura e i buffer sui bus dei 'dati non vengono
.... rappresentati. (Naturalmente, la memoria istruziani deve poter essere scritta all'atto del
; "caricamento del programma.)
. .:._
",_: .
.',' Set-up lime Hold time
.:::' ',:
",,- lngressi
.
'.
.' .

. -, Clock

--r k Tempo di commutazione


.'
Uscite
' '- .'. j ,
':. Figura 5.6 Schematizzazione dei tempi d.i commutazione di un registro. E necessaria
che gli ingressi al registro siano stabili per almeno iI tempo di set-up prima del hante che
. determina la commutazione e che veDg~o mantenuti. oltre il fronte per il. tempo .di h~ld.
""'" II tempo di commutazione e queUo cbe mtercorre tra. 11 fronte del clock e l'lStante m CUI Ie
/. ',. . uscite sono st.abili.
.'.:
'. .
.',' avere in uscita da quest'ultima l'istruzione corrente. PC viene aggiornato (suI fronte di
.... discesa) a ogni impulso di clock. Di norma l'aggiornamento consiste neU'incrementare
:. di 4 il eontenuto di PC; a meno che non si tratti deU'istruzione di JMP, dell'istruzione
. JE 0 dell'istruzione JS, se queste ultime effettiva.mente determinano il salto. Occorre
, quindi prevedere in ingresso a PC un selettore a 3 vie.

Onde evitare confiitti, l'incremento di 4 di PC non puo essere effettuato con la


ALU, che potrebbe essere impiegata da unJoperazione aritmetica 0 cia una istruzione
II c
che fa riferimento alla memoria. Dunque per incrementare PC di 4 occorre uno
"
1 . :_ Specifieo sommatore. AlIa stesso modo, 1a ALU non pub essere impiegata per il
~ , calcolo del PC di destinazione per effetto delFistruzione JE/JS, in quanta caoviene
"I" . .,
.'
.) .. _ .
~ .
168 Ca.pitola 5

che essa effettui il confronto tra il contenuti dei due operandi lO . Peraltro, per if ',;,
calcolo dell'indirizzo di destinazione di JEllS (PClEIlS) si pub utilizzare 10 stesso::r
sommatore usato per incrementare di 4 secondo 10 schema di Figura 5.7. _~":"
·. .
., .
",' .;

4 1;'-- + ...'
~ "'_;; .
SCOST I

lY ,,'~:' :..
/32
PCJl.I:P ,
• C
,
32
MI
32
I" rU7.ione
c'.:, .
IV
/32
~ 'oro '-
'.~<> :~;;
"s...no JMP ~.: i:; ,"
" al p~eli.evo
Figura. 5. 7' Sezione relativa delle istruzioni e all'aggiornamento del PC. II se:<~~; ~
lettore 1? mgresso a PC e qU,en~ tn, tngresso a1 sommatore decidono quale sara il prossimo:::\
valor~ di Pq.
,Con PCJMP 51 e mdi~ato il valore dell'indirizzo di destinazione nel caso del il~ '
salta mco~di~lO~atai questa valore Vlene caricato in PC per effetto dell'i5truzione JMP, Con ':,\~ '
SCOST 51 e mdi~to 10 ,'sc~t~ento effe~t~vo della destinazione del salto condizionato ris: :'~~ 1
petto a. P~. Sulle Istruztom dl salt~ condiztonato, quando e verific30ta 130 condizione (Zero o<~,
Segno), vlene scelto SCOST come mgresso al 50mmatore. ,','-~,!'"
:J.•. ,
.,
:';)
~':l::
· c.,;
'
,~ ... "
"-\~'
"
· "

':;.-'..
'.
".::,
':\
5.4.2 Sezione di decodifica dell'istruzione , ,','
,.=.';:.
',,~,;
, •.;1,

:>~\
Questa sezione (Figura 5.8) e responsabile della decodifiea delle istruzioni, del prelievo' .';;t:
del contenuto degli eventuali registri sorgente e del prelievo e instradamento aIle altre '~,,:;.~
sezioni di CPU dei eampi deIl'istruzione. Dato n funzionamento ipotizzato, non c'e ',~; '<'
bisogno di alcun registro intermedio tra. la memoria di programma e la sezione di ,>i;,
decodifica. Ovviamente Ie linee in u5cita da questa sezione subiranno un fase di '~'~, ~..

transitorio nei momenti in cui, cambiando il contenuto di PC, la memoria presenta . ,':'~
un nuovo vafore, Si notino i seguenti punti. ,,-;'~~
,
., ,-.
• Dal decodificatore de.1 campo OP escono tante linee Quante sono Ie possibili i5tru-. :;;.
zioni e risulta asserita solo quella che corrisponde al eodice dell'istruzione in ese- .~,
cuzionej queste !inee vanno a infiuire sulle varie sezioni della CPU e determinano '.:;,
l'esecuzione delle azioni corrispondenti. ..:,
"
• I campi dell'istruzione che identifieano gli eventuali registri sorgente vengono
:.1
presentati a RF, in modo da avere BU A e B il relativo contenuto.
' ..
,
• D registro di destinazione RW viene Jlormalmente selezionato tramite il campo .J

16-20 dell'istruzione, eccetto che per l'istruzione LD, la Quale scrive nel registro '
codificato nel campo 11-15.

10n confronto viene effettuato sottraendo il secondo operando dal primo, in modo da presentare·
asserita la linea Zero se i due sono uguaH 0 la linea Segno se il risultato e negativo. ',
"
\
La CPU 169

1
• II campo 6-31 contiene I'eventu~e indirizzo di destinazio~e del salt,o; il suo

.
contenuto viene trasmesso alIa seZlone del PC dopo l'estenslOoe a 32 bIt.

, Il campo 21-31
viene trasmesso aHa ALU per l'eventuale operazione logica a l
; aritmetica.

I
;

• 11 campo 16-31 contiene Peventuale scostamento del salto (JEI JS) 0 delle istru-
.' zioni che fanno riferimento alla memoria (LD eST); il suo contenuto viene pure
. esteso a 32 bit e trasmesso: (a) alIa ALU per il calcolo dell'indirizw di memoria,
nel caso di istruzione LD 0 ST; (b) alIa sezione PC nel caso di lEfJS.
;;..' . Si Dati che la regolarita. del formato delle istruzioni permette, in fase di decodi- \
". fica, di estrarre il contenuto di tutti i campi e avviarlo aUe parti che \0 elaborano.
~~ ~ .;. Come sara chiarite d~la discussione. che .segue, l~ scelta di quale elaborazione avra.
:.... effettivamente luogo dlpende dai codlce dl operazlOne,
'.:':,~. ': \
'I;'~-' ~c' 6-31 PCJl.I:P
X4 Alia set.ione PC
1", ,\: '' '3
,>,.'
)~",
..
,',:,'"
,'~

'?" .•':': ':


l~'
. '.'

.y.:".
, ,
'
16-3\
SX4
SeOST'
32
Alia set.ione PC
e aHa .\LU I
,;.:':"
' ,. • 10
,';,. RR!
. "
" .. "
;<' .'" -
II
Da a Memorie
Istru'l.ioni
11 15
16 20
RRZ A Alia ALU
\,
." ' " , :J.- RW RF
''''
""
.
• B
'II)-
r', LD
,j"
1 RWril. I
!;:::.....,':
",." .. I . \
;, ,., , .. Dalla ALU 0 daUa
Wemorla DaU
:'::. "..' '
'.. 21 31
L
;,· :"' ..

~
.,~~,'
.....
'<,:.
:'.".,
°5 O~
§¥
j~p
~~rrM
I
.,
. ":, ...
,:,:,.
Figura 5,8 Sezione relativa ai registri e aHa decodific3o delle istruzioni. Da.l decodificatore
del campo OP (bit 0-5) esce una linea. per ogni singola istruzione (1a linea ARITM identi.fica
la classe delle operazioni aritmetiche e logiche, specificate individualmente da1 campo fALU).
~
, ~. II blocco indicato con X4 rappresenta Pestensione a 32 bit del relativo campo moltiplicato per
:,:'
,
4; il blocco SX4 5volge la medesima funzione, ma con estensione del segno, Per il significato
di queste operazioni si facci30 riferimento a quanta detto a pagina 162, Paragrafo 5.2.
1
1
,.'
~
,"
J

'I, 5.4.3 Sezione ALU

"
La ALU viene naturalmente impiegata per Ie istruzioni aritmetiche rna anche in ap-
poggio all'esecuzione di tutte Ie altre istruzioni, quando si richiedono operazioni arit-
metiche (per esempio nel calcoio degli indirizzi). Per questo motivo la ALU per interi
j
,
"
.:'~, ..
r."
.... .,,',
· ".
,:,;;~ . ,<
. :.,• .,,'• ".' "'

.:..:_.:..:2:..:..::..:..:::-
:170 Capitolo 5
-.,r:''.\ •. ~I
;

costituisce la parte portante di qualunque CPU. E interesse del progettista cercare di :~,j:.~h:,~:,
I sfruttare la ALU per Quanta possibile. Nel caso specifieo, dovendo la CPU eseguire Ie \~
istruzioni in un solo cicIo di clock) uaseoDa dei confiitti per il suo uso. In particolare: ,:'>:1:" ,:;..
, .
• L'incremento di 4 del PC non puo essere effettuato dalla ALD. Per questa mQ..',:·~.; , . .
tivo) nella sezione di prelievo delle istruzioni, e stato previsto un somrnatore ~~, . -:"
\ (Figura5.7). :(,' c:.
· .:;,
• Le istruzioni JE e JS impiegano 1a ALU per calcolare 1a condizione di ugua~, :~:.... ;
\
glianza e quindi la ALU non puo essere irnpiegata per calcolare Pindirizzo di '!. ' ~.
~ destinazione del salto. Si egia osservato che per it calcolo di PCJE/JS si usa 10 ;:': ."
stesso sommatore utilizzato per incrementare PC di 4 (Figura5.7). .,L~. ,."
., "
"
' .

I
\ Si osservi che, mentre l'ingresso A della ALU coincide sempre con l'uscita A,:',
, "1, .
~' '.

I di RF, l'ingresso B puo essere sia Puscita B di RF (operazioni aritmetiche), sia 10 :(::",:"
scostamento rispetto a Rb della parola indirizzata (operazioni che fanno riferimento.,~;~· :,-
I aHa memoria). Cia richiede un selettore a due vie sulla porta B (Figura5.9). ',;.~):l>
lnfine e necessaria che attraverso il blocco ContrALU, comandato tramite le':~;' .:.
linee OPALU, vengano applicati alIa ALU comandi congruenti .con l'istruzione in ,,~,; '""

! esecuzione. Si Doti che in Figura5.9 per OPALU sono state portate direttamente le ~ ~~;:
linee che corrispondoDo alla decodifica delle istruziani 11 . ,~_:~J' ".
~;g. ···f
'\'i .,
" . ,..'
'''. ",
5.4.4 La s.ezio.ne di memoria dati e scrittura nel registro di.i~ .,""
destmazlOne . , ; ". •.•',
-- ". ".-
, ''J! '
Per quanto si riferisce alIa memoria dati, tenuto conto di quanta detto al paragrafo" 1':.':
I precedente, si tratta d.i presentare l'uscita della ALU sulle linee degli indirizzi e di ',~~, . .',
asserire i comandi Rd 0 Wr l che, in prima approssirnazione, coincidono con LD e ST. ~"i '. _'
Riguardo aUa scrittura nel registro di destinazione, si deve tener conto che il dato pub .~~ ::'
provenire dalla ALU come risultato di una operazione aritmetica 0 dalla memoria dati. ,}, ", ':

I in caso di istruzione LD. In conclusione e necessaria un ulteriore selettore, .J


Lo schema corrispondente a questa sezione, esclusa la parte di eventuale scrittura. ):
in un registro di destinazione, viene presentata in Figura5.1O. ,'J.,.

»'.,1 . ,
,
(, "

I generaJe, speciaJrnente se Ie scelte da attua.re sono molte, conviene codificare Ie scelte in ,:"
11 In
OPALU e prevedere un decodifica.tore in ContrALU. Si fara. ricorso a questa soluzione nel capitolo :.~ I·
dedicato al progetto della. CPU in pipeline; per it momento d si attiene a.llo schema di Figura5,9, •'. i ~ . j
,..."j "

l
"!f
.'. ,i.
.~..
.


... .
',

La CPU 171

,::':
.:
.
. Dalla porto A d
IR' A _n ••• •,
. 0 .,L
Z.ro
o
•l ,•
. ALUou\ COlltrALU

" ..
B~
'" .
' Dona porlo B 41
;.:
.
"
0.1 bloCco "'::
n. ,
..
It/JS
~/n

....It..
=
~
~,

,• ,•
"r ~'" !
.
~.~
- Docod
Call1rALIJ
",.
~/"

-l
Zl-:1l {IALU) 21-31 (ftJ.U)

, "Figura 5.9 Sezione relativa alIa ALD. La. ALU viene impiegata. in tutte Ie operazioni arit~
roetiche e logiche, per il calcolo dell'indiriz-zo di memoriarJieUe istruzioni LD JST e per il
confronto (differenza) di JEjJS. Per Ie istruzioni aritmetic~e OPALU seleziona. l'operazione
.
.'
prevista dal campo fALU; nel caso di LD/ST seleziona la somma; nel caso di JEjJS selez-iona
la sottrazione. In quest'ultimo caso e rilevante la. condizione Zero/Segno per determinare se
" il saIto cleve 0 no avere luogo, II dettaglio di ContrALU e riportato a destra..
-;:;
>.
.:.
",.;,:'
:';' "
.":", ,'
f!"··'
,~" '.' .
.
, .. '

":;' . ST
,>. .
-. . ",
.
j'" 1 ~

';'. '. Rd W,
:.. : :' ALUout
,; ,
.'
I MD D "-
".,_
. v
:::.
ST

Dalla porta B RF 'f


. Alia porta 0 di RF
Figura 5.10 Sezione relativa alia memoria dati e alla. scrittura nel registro di destinazione.
Si noti che per i comandi di scrittura e lettura. in memoria. si sono prese direttamente Ie linee
ST e LD ie quaE determinano anche il percorso sulla porta dati della memoria. La linea LD
serve anche a discriminare se iI dato proviene dalla ALU 0 daJla memoria dati.
,...
",' '

"

...
,I;
"
) ,'.
."
.'
172 Capitolo 5
".f:
"I'

__ ji
. -,..;
'f}"
. '7:
.!t
·"
• .•• ,.
:.
't
"/

:t
" , -
0

I
~
~
',:.
";',
.,.
. <
h ·",
"-
>
'i:
:S
/~~ ~'FR1 ;'::
· .,,.
~ _~
-

:11
..
".

...
n,
,

IU
.,
, '~


.
I
I
.
~
i~
"
~
~

'

H,
--.

"
0
·f
.".':
' ...
"~~

i l
~

':
y

•x •x ~\I , -'
..
" •
,
"

,• ',,
,


~ ,• '1'1 •
.. =
"
::!'
T
,• '

"
..
~

-
~

.,
r u
I
J -I \ .
,
-

!,1,
r
9.r

Figura 5.11 CPU1: risultato della composizione delle differenti sezioni (Questa soluzione
presenta un malfunzionamento sull'istruzione ST).
\
:
'~
L. CPU
:t:-;; '.?/ 173
,"

i,~ ','
;,~ _.>:~-
"!' 't5,:i'·j,·.,":'.'
tiJ ""',::"
:~:
'., I,""
:..' ?.....,..
'. •
';,~',::,:.,
";i ,,~:' :', "'' " :-,
I
, .• ,.. .c...... 5 4 5 Ricomposizione (provvisoria)
.~~ "'Y::':':.'":'~~;:'" ••
t~ . . ,.". ';Slarno, ora in condizione ~i ricomporr~ Ie di~erenti. sezioni: ~a ~igura5.11 mostra \
/~ :.. ' it risultato. Questa Soluzl~ne e .tuttavla da ntenerSI proVVlsona In quanto. presenta
..;. ,malfunzionamento sull'tstruzlOne ST. L'esame dell'errore e la sua correZlOne sana
',"j, , '". rJ~~andati. al Paragrafo
<:;
,,::
.
; , tempi di esecuzlOne...
5.5.1, dopa che saranno state fatte alcune considerazioni sui
.
, I n 3oggiunt3o a quanta Illustrato 10 precedenza, 130 FIgura 5.11 mostra che la scrittu-
I
>f' .
'a'di un registro di destinazione si ha solo con istruzioni aritmetiche 0 COD l'istruzione
~D. Nella schema di Figura5.1l PC e l'eventuale registro di destinazione sono i due
::':
S,.:' ,', . soli registri che vengono aggiornatL Mentre PC viene aggiomato su ogni clock12 , il
:'; ':' .... ;' " registro di d~stinazione viene aggiornate solo quando~e asserito, RW~ite.
I
,.,"; ,"; ... " . Uistruzlone NOP non produce alcun efIetto se non queUe dl far lDcrementare PC
...., ' · · ' -·d·4
.... 1 .
J 1
.. "

n,. l
,.
. 5.5 Considerazioni sulla-reaHzzazione ~olo
~."

..,...'.
~
~·I
~r!
- periodo di clock
'.
-
I
'"
, r. L'esecuzione in un solo periodo di clock presuppone che questo abbia durata sufficiente

I
~~
, alla completa propagazione dei segnali. La propagazione ha inizio col cambiamento
·fl· .
:;;,
.:'1
~;'
~.. ,
.
'
di PC e deve essere conclusa prinla delParrivo del successivo fronte che fa modifi-
" care nuovamente PC. Di norma c'e un percorso piu lungo, in dipendenza da!. tipo d.i
:-.:
y"o,
, istruzione. Ne consegue che l'istruzione piu Ulentall deterrnin:a 130 lunghezza del clock
;. I' ..
.. ',.,
,";
,.
',\ I,

,
Si indichi can 'Ti it tempo relativo al generico stadio , con Tmono,I queUo relati-
va all'istruzione I -rna e con T mono il periodo di clock richiesto dalla realizzazione
monociclo. Essendo
I
T mono ,/ ::= L T i (5.1)
" o.
..
~~'
..
,
dove la somma include i soli Ti relativi agli stadi attraversati dall'istruzione I _ ma,
-' e necessario che il periodo di clock duri almeno il tempo richiesto dall'istruzione di
, maggior durata, cioe:
I

T mono
I
, ::= max{Tmono ,/}I=1,2•.. (5.2)
n tempo di esecuzione di un programma di N istruzioni risulta dunque:
,., .
~"I,
t mono ::= N . T mono
...,
,,
-;
Un caso pratico sara di chiarimento. Per la nostra CPU si assumano i seguenti valori: )
' ... • 30ns per l'accesso alIa memoria. n tempo di accesso (in lettura) e il tempo che
.' intercorre tra l'istante in cui gli indirizzi sono stabili e l'istante in cui la memoria
presenta d.ti stabili. Poiche PC c.mbia sui fronte finale del clock, occorrerebbe
tenere conto del relativo tempo di commutazione e di qu~llo di propagazione da f
PC alla memoria. Per semplificare la trattazione assumeremo che questa tempo

12Per Ie convenzioni di pagina 28 del Paragrafo 1.5 I'ingresso d.i PC


registro di scrittura (identificato dal tag RW) e abilitato da RWrite.
e sempre abilitato, mentre il
I
\
-
174 Capitolo 5 ,.;;:"?

I - · "'#'
;'\*' ,~
c'
t~ \~:.
· ~":~
I\\;!f
k .•
','ilI .. ..l

,,(.
", "'io
.',
sia inglobato nel tempo d.i accesso. Assumererno che anche la scrittura richieda 2l) '.:',;:,
I 30ns
. ""l'~
'::.-,.:', '~,
.
'~;~
. i ""
",
,

';~~ ':":
~

• 5 ns per la decodifica dell'istruzione e per lettura dei registri. 5i neti che questa
tempo si ricluce a queUo necessaria alia propagazione dei segnali interessati. '}! ;.",
I • 12ns per un'operazione di ALU. Anche in questa caso si tratta di un tempo di :~~"1·'?
propagazlone.
i ',I .','

.., ,-,\ .
• '.., I .
,, '".
'

,I • 5 DS per la scrittura di un registro. Qui si richiede una precisazione. I registri ,,',::If ,';"
vengono scritti suI fronte finale del clock. II tempo richiesto dalla scrittura, a ','~'~,~ .,,::
parte minima ritarclo di propagazione dei segnali, si riduce al tempo richiesto dai .:>,~: ;",:
flip-flop per commutare. Tenuta canto delllosservazione di pagina 166 (Figura . '~' <'' '
I 5.6) circa i tempi di commutazione, l'intervallo di tempo richiesto per la scrittura
dei registri si troverebbe a cavallo rispetto al £ronte del clock (il tempo di setup
",{
''<'::
.~
a sinistra, il tempo di effettiva commutazione a destra). Nel Dostro modello, i "~"_
5 ns rappresentano il tempo che deve intercorrere tra l'istante in cui i segnali sana .i l"

1 stabili in ingresso ai registri e it fronte del clock. I tempi di effettiva commutazione ",:<1""
e propagazione delle uscite vanno immaginati come parte del transitorio che segue !.,

il fronte finale del clock (e che, per quanta detto primal viene inglobato nel tempo .;"1,',',
di accesso alla memoria di programma), .~ :,
,", I .

1 La Tabella 5.2 ripona il totale richiesto per differenti istruzioni. Corne si vede
, ",
....
,
llistruzione LD impone 1a durata minima del clock. Con i valori riportati deve essere
.,
T mono > 82 os. Ne consegue che per un programmache esegue N istruzioni, essendo
I I tutte Ie istruzioni della stessa durata l il tempo di ~ecuzione risulta eSsere pari a.
82xN.

"'.,1' :
J~

,/'I
.'

"
, '

I '.
"

30 5 52 " •
LD 30 5 30 82
S1' 30 5 30 -77 "

i JE/JS
JMP
30
30
5
5
47
35 ,
.l.-

"

Tabella 5.2 Determinazione della lunghezza del periodo di clock per differenLi cla.ssi di

I istruzioni. Le colonne MIl ill l ALU, MD e WR riportano i tempi richiesti rispettivamente


per: leggere dalla memoria di programma, decodificare l'istruzione e presentare il contenuto
dei registri sorgente, passare 18, ALU, leggere/scrivere in memoria dati, scrivere il registro di
destina.z:ione. La colonna T riporta it periodo minima di clock richiesto da ogni istruzione.
II risultato e che la durata minima. del periodo d.i clock Don puo me essere 82 os.
I
Con i numeri di 1'abella5.2, nel c""o dell'istruzione JMP il 57% del tempo e
[ e
sprecato. Cia fa pensare che 1'esecuzione a singoIo ciclo alquanto inefficiente. Si deve
perC. tener conto chef sebbene il periodo di clock sia determinato dall'istruzione piu
Iunga l nella sua valutazione SOUO entrati i soli tempi necessari aIle diflerenti sezioni,
".
I ,.'1
.ar\;-~;>
-,., .. ,
_" .L

~~'

?,;. -.. ,;'


f';",
~~
l ..;
. La CPU 175
~ .."',
y. . •
.' ',''.
,.. ,
,", '
. nz-a alcun tempo aggiunti vo
13
n
prototipo multiciclo sviluppato avanti, per piu
-' ~einpiO, introduce sprec? di te~po in tutti quegli stadi che potrebbero terminare in

.
", '
:'.~" n tempO minore del penodo dl clock. Da questo punta di vista, per un dato insieme
'

,::~~' ~i valori dei tempi .delle singole .p~rti, 1a soluzione monocicla risulta facilrnente essere
' '.
pill veloce deJl'equlvaleDt~ mu~tlclclo, anche se malto penalizzata dalla lentezza della
. memoria rispetta alIa Iaglca di CPU.
?:.l ,,-
.
.
.
,

~>:.. 5.5.1 Ricomposizione finale di CPU1


:~,""","
::~'.~. Cominciarno col mostrare il maIfunzionamento della CPU di Figura5.1l 1 cui si fatto e
' ' '> . cenno nel Paragrafo 5.4.5.
~>." Facendo riferimento ai tempi indicati in Tabella 5.2, Ie istruzioni risultano decodi-
fic~te-dopo 35ns, mentre la Case ALU si conclude dopo 47 nB. Nel caso dell'istruzione
_ '. e
ST, con 10 schema di Figura5.11, si ha che il comando Wr asserito 12 ns prima che
l
"sia disponibile I indirizzo di memoria, cpn conseguente scrittura a un indirizw certa-
.,',' mente sbagliato (quello che casualmente si trova sulle linee di indirizzo quando Wr
viene asserito). Ulteriori complicazioni si hanno can due ST in sequenza l in quanta il
comando di scrittura in memoria dati resta sempre asserito, mentre l'indirizzo cambia.
Occorre fare in modo che 1a scrittura in memoria avvenga solo quando indirizzo
... (e data) sana validi. Una soluzione consiste nelPagganciare al clock i1 comando di
scrittura. Se Wr e ottenuto come AND di ST col clock, esso risulta asserito solo nella
seconda parte del periodo. Cia richiede che il £ronte di salita che separa il primo dal
e
secondo semiperiodo cleve presentarsi quando l'indirizzo stabile. Con i nostri numeri
:.,
'.
,
',,'1' 1a durata del primo semiperiodo e dunque di almena 47ns.
Un problema analogo non si presenta su LD I in quanto il trarisitorio introdotto
'. , dal fatto che il comando di lettura della memoria e assento prima dell'indirizzo non
ha alcun effetto l poiche 1a scrittura del registro di destinazione avviene a fine cido l

e
quando i1 data dalla memoria ormai stabilizzato.
In Figura5.12 viene riportato 10 schema corretto, con rindicazione della forma
del clock.


5.6 CPUl con memona unificata
,
E possibile costruire una CP U rnonociclo e can memoria dati non separata dalla
memoria istruzioni l se si sfruttano Ie due fasi del clock, facendo leggere l'istruzione
.nel primo semiperiodo ed eseguire nel secondo. Per evitare il conflitto per la memoria,
basta prevedere che nella prima fase del cicIo 1a memoria venga letta alllindirizzo
contenuto in PC e che al termine di questa fase la lettura venga memorizzata in
un registro - il registro lR - il cui contenuto serve nella seconda fase a determinare
cosa fara. Jlistruzione l compresa Peventuale lettura/scrittura in memoria all'indirizzo

13In pratica l'esecuzione entro un periodo di clock corrisponde a quella di una. macchina asincrona,
con fasi che si succedono senza soluzione di continuita l senza i tempi morti che pOSSODO aversi tra gli
impulsi di clock.
176 Capitola 5
1
t-
,
,... "~ U
, ,~,I. ,
.,~ '
calcolato dalla ALU. C~n i nostri numeri la dur~ta del primo semiperiodo e almena .:.~~ :
30 ns. ,." '
In Figura5.13 viene riportato 10 schema di CPUl con memoria singola a singoiri.'>~ j
cicio di clock. La CPU di Figura 5.13 stata ottenuta partendo da CPU1, aggiungendo'~J.
e
il registro IR ,e la necessaria l?gic~ pe: tener c~nto d~ questa modifica. Chiameremo 5~ '
questa prototlpo CPUl...2F. 8, notillO 1 seguentl puntl. -' ~")~1' :
• La memorizzazione delPistruzione su IR avviene suI £ronte di salita del clOck. :1~ ,
e
Poiche stato assunto che i registri commutino sui fronti di discesa, in figura ;~~ e: :,
stato esplicitamente indicato il clock negate a IR (come al solita it clock a RF .jt ' e
PC e sottinteso e non viene indicato), _'-: '~~~
,., ,::':,~}
• Lo schema non riporta pili 1a memoriaj compaiono invece il bus degli indirizzi-- '.'6', "
(BI) e il bus dei dati (BD)j relativamente a Quest'ultimo sana previsti i due 1'~>, ~
comandi In e Out che abilitano il trasferimento in ingresso 0 in uscita alia CPU.. <~;~ .<
, ', ,..." "
'
• II multiplexer che seleziona il data in ingresso a RF estato disegnato in prossiiniU: "A'
di RF stesso. , ,,,,-,t ,
, ,,: '5
• I comandi MRead e In vengono sempre asseriti durante .ill, mentre durante 4 ': ',~~~ '
2
vengono asseriti solo in presenza di LD, , , .:::} '"
" ' 'i,,:> '
'. n comando MWrite richiede un accorgimento per evitare false operazioni. Infatti;- '~',:i'i~ :
, "'01" "

l'indirizzo alla memoria si rencle disponibile dopo 5 + 12 = 17 ns, mentre il dato' , ');". ,:
e gia. disponibile dopo 5 os. n comando di scrittura. in memoria cleve pervenire :,,}: :
dopo che ambedue sono stabili. Per Questa motivo e necessario introdurre it .'
ritardo T > 12 sulla linea ST, in modo da compensare il tempo della ALU. Nella;; ,;
J. "
discussione seguente assumeremo T = 13. . ;:,"x;:

'
.. .'
'.-: .,
" , "f..
E istruttivo seguire la seguenza di eventi. I valori numerici riportati si riferiscono.
,

:I' ;
,

al tempo del cido di clock: .':-i~ ,.


T· ... :

0: BU) £ronte eli discesa del clock PC viene aggiornato a puntare alia prossima '.'1~~
"II
\
istruzionej il clock va basso e MRead viene asserito (risuita asserito anche In); ,,:;'f ~

30 : il fronte d.i salita del cJock viene usato per memorizzare in IR it dato presentato ':.~
. ~~ "

clalla memoriaj dopo la memorizzazione in IR it contenuto dei campi del registro ",;¥.: .
si propagano a valle; -:~h
35 : la decodifica dell'istruzione e completataj gli ingressi alla ALU sono corretti. In
caso di istruzione LD sono asseriti MRead e In) in caso di istruzione ST e asserito ,.. '":
il solo Out;
.'It
. 47: llALU termina it calcolo e produce un'uscita valida; sono asseriti segnali di ,.:'
zero/Segno;·;".I'
,~' ,
48 : In caso di istruzione ST viene asserito MWritej
77 : 1a memoria termina il suo eventuale delo;
\" • •.
"I:
82 : termina Peventuale fase di scrittura nei registri. ,
,
.
"\ I',
. ~

"
~h::
..
~,,;;.,..

l
~~:'-''; ,
".
,~~;;iI~.~.:'
"',':.'
~~\,l),t~';;·..:,
c. 'TJ;:l" ,: ·tr;,: ., '
'
, ,. ,
,,", "."1"',0",,,
, . , ..
"
~

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


1~i1,.,,:- ---'~
-- 1\'.) r) ''".';'.:. ~ _
'.- CPU ~o 177
U:·'"'i:."::"" :
,~.,',;!",'j" :"',",
'':/-'''''','.-,
:::it.~;~-'·· 1
',: '.' "•
+ I
j~:,i:·::·:"~~: . :-:: • - _.

.:-::' : . , ,
'~;::; (:~:~
::':> t.::
':,' :.,"
':'i.;:~
., • • I
•> 0

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


,.:,i
:,:', ,.'.
'~>, "',:""
l. '., I- .

••
..
>.
,:,;
I
,<,, , N
:,..,' ',',',\ .. •
}' 'i.:;_ , ,

~ , I~!
~ ~~,:
"', '·'.-i,',:'.
~~;.<:\': ;',
.<:';.:,:.""
', .' .
": ",
"

~,;;, i l ) .,
"

,t, .' ',"


1
"',. .
'~:: :.<
'",~', ",'
_~.:.,'

".
<
• 1£:1: )
:' ,
~.
:;.; :,: .! ''"" i
:";~' ",: "
":;..: " .:":." ~

1 I
•= •..
J 9
0

I
:" .
!~ rr~ I
.,:.''
~
;(::'
.~
CW~ I
:.;,"

\'" _._.
': rl :1 WI", ', ~
• ,
• ,
~~,... .
";:;'"
,~';.
'. t
'i
.
h. " I
r I
44 I

'
,
f.,£.
. !
~Il;:;l'l
I
,
~
I
,
.,
. Figura 5.12 CPU1: schema finale, dopo I'eliminazione del malfunzionamento sulPistru-
zione' ST. In alto a destra. viene riportata. la forma d'onda del clock; il primo semiperiodo
deve non essere inferiore a 47 ns.
,
)


I 178 Capitolo 5 ""
"~
,~I
;.J
,<
"
"

-'" ,;

I •
! ,-<.. .
••
t•
!
-

;';;~l~ ~
. :'~;~ ;F
" :,

,I •,
'

Ie ,::.,",~ ~
,',<~~ '~
1 -.1' .J "'' 1'K :

f, - \
I. , l ",,~~~ ;
);m ;
·,.,;4t\ :.
,..ffl~ :I~'
,; ~i~ ,,
- ':~::r: ;
• 's~$ .
t •
,.....i'!; "
·:,7r.t '''
,:
,- ,J • ":; •••• 1"
,:j1
I'
..
"

, I ill t ~ ::1il ,
\
~ .!l
=> .. , ,, ': (~ '~
~",,- '

< <i .::~~ :'


• ~
· :'~-$ ~;
~+ · ~ :
I &
t, ="
:::II~ ,'-:;.!£ "-
',::.:)1 ':';
"I "
,~

'.• "")1 .~,


{,~(

I .,
, < •
·
.::1~ .:'
:iil ',
'·.Jl • l
'''1 ,"

.~~)~:,
,
, ·'.Ii! :
';;, "

I
,~, v
~
•l
"'N' ,"

,
,
, •
i,= "'l~O .
i • •
',"
0
,i
~
.

'd
· ,"" 'I'
N,

· ~j("'
.I

,~,.' ".
.,
" .
".
'

I .r'
- •
", •'0;'1
.:" .
':
J •

• ••
0 ;~ : 'l

~I- •, - ,>~} :'-


.~ ',J

I ,• •• ,;
• • :,;:\
. .,
! ..'L
·• ,• . . .
• • :::
.. :<: ';'-
~
<':\.
.~

:';.~ I

:

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



i ,...- I.,
••
A'~

'
.,.. ,.
c
I
"",
~ , ",.w
'''.
., ..
Figura 5.13
'"
CPUL2F: schema. di CPUl a singolo clock con usa delle due fasi. II primo
..'':'(
,'.
;'
,,,
I'
';r; j
semiperiodo ha durata pari aI tempo richiesto per la lettura dell'istruzione in memoria ". ,",

(30 ns). ';< ".

t
· .:'.~ ~!
,'I~ '0"
.-'" ,I
..... "'
...
.,~.~'.-:.'

HoF .,.-
tl'-''''~!'
r,r:d::~.··::,
'~~.""-'"
-I'r;':;"~' ,'
"J: e'p·~·, '.
~":i'·;"','
I;;,'.:.".'T '" '
J.' \1' :,'. I'" ,.. ,
------------- -=:La=-C.::.P:..U=-...:1:.:7.::.9
<', -,"" ,
":i:~" ~""-
"~J • "
;'ffJ'~' -.
,;. ",
~?r·:-:::-· ._ La CPU di Figura5.13 contin~a ad avere uno specifico sonun~tore per il calcolo
F'~).>, . del PC. E possibil: modificare l~ sch,ema in ~od? da impiegare la AL1! ~er effettuare
~:< ,.>, "l'incremento di 4 dl PC duran,te .11 pn~o semlpenodo. Purtroppo, pew, il so~matore
i ... :

~~',,;:,<:.. ; 'in questione no.n pu~ ess~re ehmlll~to III .qu~to pur sempre necessaria per 11 calcolo e
:~r:'·:" :':. d lPindirizzo dl destmazlOne delle lstruZlOnl JE e JS.
;:;.~. .' e. Si osservi che se l'incremento di 4 di PC venisse effettuato durante L1 1 , la CPU
;.:.' :- '; risultante non sarebbe piu compatibile can CPUl dal punta di vista del codice di
.V· \' , . m·acchina. Infatti, nel caso .di CPUI il contenuto del campo OFFSET delle istruzioni
~':'; /~,:<..:, ,', di saIto condizionato contlene 10 scostamento tra la posizione di destinazione e il
,,\,,::': ~, ', . PC dell'istruzione di saito, Se ora PC viene incrementato di 4 durante L1 11 affinche
;;' :;. ;'l'istruzione faccia saltare aUa stessa destinazione} il contenuto del campo OFFSET
.;;' .~~'. ' .. cleve essere pari a1 precedente diminuito di 4 (si vedano gli Esercizi 5.9 e 5.10).
".' ..":.1 •. ,"
';:.'::.:>
:::~:; p' " ' . "."

.....
""
.'.\..

,;,\5.7 Sviluppo di CPU2


~:-., ", .:, '
'",' ,',
'\.. '". Viene ora sviluppato un prototipo che esegue istruzioni in piu periodi di clock. Questa
;i ~'~":' volta si fa riferimento al modelio di Von Neuman, con memoria istruzioni e memoria
:,;,:.' .,.. ' . dati indistinte. La modalita di esecuzione multiciclo e quella piu naturale, e di essa
"-::-",: '.' ~ si e gia. parlato aHa pagina 48 e seguenti. I criteri generali per la costruzione del
;;:':',' :" " :, prototipo sono) seguenti.
" .. '.'
,~ .'

,: '. • L'esecuzione delPistruzione procede attraverso un certo numero di passi 0 fasi,


l
corrispondenti 3 impulsi di clock successivi, ovvero a successivi stati percorsi
..:":.
"
:',' . dall'automa che realizza l'unita di cantrollo. Il percorso dell'autama nello spazio
, '

degli stati dipende dalla specifica istruzione eseguita; 1a sequenza corrispondente


"."",
e
..
"
al prelievo e aHa decodifica dell'istruzione comune a tutte Ie istruzioni(Cfr. 2.3).
.". '"
' .
','
';'i"
,- ;
n progetto della logica di controlla si riconduce all'individuazione dei passi di
.~ ; .. '. cui sopra, ovvero all'individuazione degli stadi in cui scomporre la logica stess3,
."
: '. ciascun stadia essendo responsabile delPesecuzione del passe corrispondente. La
' •
••

l. "
' scelta del numero di stadi e in larga parte iniluenzata dall'architettura e da consi-
-' ", ,
J,.
derazioni di cenvenienza. Nel case specifico, anche in riferimento ad argomenti
\:.' •
che verranno iUustrati piu avanti, vengono individuati i seguenti 5 passi 14 :

IF - Instruction Fetch. E 10 stadia iniziale corrispondente al prelievo dell'istru-

zione il cui indirizzo si trova in PC.
, .
'"
'.,. ID - Instruction Decode. E 10 stadio in cui Pistruzione viene decoclificata e
"
" vengono generati i segnali di cornando utilizzati negli stach succeSsivi, per
effettuare Ie operazioni richieste dalle singole istruzioni.
,
w'.
., '..,
EX - Execute. E 10 stadio in cui viene svolto Hlavoro principale richiesto dalla
..,' specifica istruzione.
j,'
,

. 14Non ci sarebbe niente di strano se, per esempio, 10 stadio ID fesse conglobato nello stadio IF 0
!. se i due stadi ME e WB si riducessero a uno solo.
...
"
'.'1
. •
<~l;
")f:..
""-""II,;
"1'
, : ,~.~
, '.' '..'
.
180 Capltolo 5 ...::
:fI:,'
1*\
.' f
ory
ME - Merr: . In questa stadia viene letta 0 scritta la memoria se il codice di I~~~
ope:r;-azlOne 10 prevede. ',,,i~
.'
10 stadia in cui viene aggiornato il registro di destinazione: }~
. ""i
' "''
WB - Write Back. E
sempre che I'istruzione 10 preveda. ...~~
, .. ,
Facendo riferimento ai due rnacrostati Fetch ed Execute di cui al Paragrafo2.3 Ie .~!'~
,"">'",
--: ;.
......
1
fasi di IF e In appartengono al macrostato Fetch, mentre Ie restanti appartengono .~>::j\
al macrostato Execute. ",'~fi
• Poiche presurnibilrnente Ie vade parli non saranno impiegate per tutti i periodi ;~',1
'~':::::
"

di clock, conviene ottimizzare 1'uso delle risorse in esse contenute, evitando le"""'7~
duplicazioni che si sono rese necessarie nello sviluppo di CPl. In p~rticolare, ' :';~
1a ALU potra essere impiegata per i1 calco1o dell'indirizzo di destinazione dei . :?(
salti con<iizionati, come pure per incrementare di 4 i1 PC, Inoltre, poiche la ..",~;
1etturafscrittura di memoria e uno stadio distinto dal prelievo dell'i5truzione, /);, .,
non 5i rende necessario separare la memoria di programma da quella dati. ,::,j,
" ",'
• A differenza del caso della CPU operante in un cicIo di clock, questa volta accorre ',' '!
~:
.
maggiar contralla nell'abilitazione dei registri. Per esempio , nel caso di CPUl il '.
,;,~
registro PC veniva comunque caricato aHa fine del periodo di clock con quanto
1S
,
)
.~:;
.
era presente ai sui ingressi , Nel caso di CPU2, PC viene rnodificato su uno ',,,
specifico clock; e quindi da preveclere la logica che abilita il caricarnento in PC
solo sul clock dovuto. .."
'':'~:
,,
"


5.7.1 Fase di prelievo delle istruzioni, IF ' ..
':'..
n prelievo delPistruzione richiede 1a 1ettura della posizione di memoria it cui indirizzo , "
,'.1, ;
e in PC, 8i rencle necessario un registro di appoggio per memorizzare l'istruzione tetta ",,

dell'esecuzione delle azioni richieste a,.i passi successivi. II registro in questione


eaiilfiniregistro IR.
"I'..-
., ~

Poiche in fase IF la ALU non verrebbe utilizzata, conviene approfittarne per ._:
incrementare di 4 PC. In concIusione, la fase IF svolge Ie seguenti azioni:
IRf- M[PC];
",..
PCf- PC+4.
Le precedenti considerazioni fanno pervenire aIlo schema di Figura5.14.
.
"f "I
5.7.2 Fase di decodifica delle istruzioni, ID r.
, "
Questo stadio comprende essenzialmente il decodificatore del codice di istruzione ca-
ricato in IR nella fase precedente. Siccome il formato delle istruzioni consente di ,; .1
individuare gli eventuali registri sorgente, la lora codifica viene presentata a RF,
, ,-:
".
rendendo subito disponibile il contenuto dei registri stessi.
.
,",

,,,"

l~Secondo Ie convenzioni stabilite a pagina 28 del Paragrafo 1.5, Ie figure relative a CPUl
presupponevano che i segnali di abiUtazione degli ingressi ai registri fossero sempre asseriti.
".
\
""''' ."-'.'
.
~ "".,~,_·1'
,~".,'

;li?!::i ' .•
La CPU 181
)~p:/;,,;'; .
''0,/,". '.,' .' •
,--
1
,1t.\,~,._",:,
~ :.:):;i:,':-':::,. , l J'C'lfrlt..

~ 't;.:._-.~.:-: _ ,

~ .,;:",:_._
i\' " 0
';':"

~, i;
-
,-

....
I
, "" , A L

~
.:, ,'.".
::.",

i
"

\ ,..~,.,'
',:~
1 M 0 IR

4 B/
ALV
I
1: '..,:
,:.. ; IRWrit.. ..
~ ':,' _ '
l.IR...d
OPAlU ContrALU
\
~ :', <.
( '.'-:':'. ; .' Figura 5.14 Stadio relativo al prelievo delle istruzioni e all'incremento di 4 del PC. Per
; •' . 'effettuare la somma deve essere OPALU=ADD. Ovviamente iI registro PC sara anche
.',. aggiornabile per effetto dei salti (la rete relativa verdI, aggiunta piu avanti),
, ,.>:,:.
, : t:",
\
' " ,"",
! : ,.', '
:
E necessario inoltre calcolare in questa fase Pindirizzo di destinazione del salto

I
'," '
.
. ,
',"
condizionato , in quanto nella fase successiva 1a ALU viene impiegata per calcolare la
~'''',."
. condizione di uguaglianza. Si tratta quindi di usare la ALU per sommare 10 scosta-
t
mento con il contenuto di PC e di memorizzare il risultato in un registro di appoggio,
che nomineremo DEST. In una fase successiva, quando sara stata calcolata la condi-
"
zione che determina il saito, il contenuto di DEST potra essere usate per aggiornare )
PC 16 , In conclusione 1 la fase 10 svolge la seguente azione:
... ,
DEST+- PC + SCDST
essendo SCOST l'estensione a 32 bit del campo OFFSET moltiplicato per 4.
.1"',,', '
;",'"<, • ..
,
' '
Lo schema dello stadio ID e in Figura5,15,
I
I:' 'I..'.-;
.
'

I.:.' ~
0-0

c§l. 1
8-10
11-1~ IRIll A ,
.• ,,'
'" • l~
.. RF IALUI
'

I"
',
,; :",-
"
B
B
c

DI:STWrll..
1
10-31 ' , SX4 :seo!!' " ,
"

I;",
OPI.LU 'ColltrALU

"I"
..
"f
Figura 5.15 Stadia di decodifica delle istruzioni e del calcoto anticipato della destinazione J
del salto condizianato. Ovviamente per effettuare la somma deve essere OPALU = ADD.
, ,.
.1·,
., I
1-. ,
"
,
/
..
, ',",'

'

16Nota.re che in base a.Be nostre assunzioni si poteva anche anticipare I'indirizzo di memoria per le

.. ., '
istruzionj LO eST, Cib avrebbe richiesto un selettore sulla porta A della ALU. Si Doti inoltre che in
~uesta fase sarebbe gii possibile aggiornare PC nel case di JMP, concludendo I'esecuzione di questa
lstruzione, Per motivi espositivi, per ora ci asteniamo dall'intcoducre questi anticipi.
I
••
lS2 Capitolo 5 :
~·.:
I 1 ,
i
':.
..." ..
.. ' ,
-"
,
-,.,,:~! ."
,;
- 'i;~~
to, ,!,,
5.7.3 Fase di esecuzione, EX
;J;E "
< ":"i _
:,",}~' :I,
11 codice di operazione decide 1'azione svolta in questa fase. Viene usata la ALU per Ie' :~r: ~;
'.

operazioni aritmetiche) per il calcolo della condizione di JEj JS e per il calcolo dell'in~ ."':::: L,
,I dirizzo di memoria delle istruzioni che a essa fanna riferimento. Essendo disponibile ,';~: ! ':;
l'indirizzo di destinazione del saIto condizionato, se la condizione e vera viene aggior_ .~,~:' )_
nato PC. InoItre PC viene aggiornato anche per l'istruzione di salta incondizionato, :.:i;~' .,
In conclusione Ie azioni svolte sono: , '::'~;,: "

I Istruzioni Aritmetiche:
Istruzioni LD eST:
Istruzione JE:
ALUoutt- A fALU B
ALUoutt- A + SCaST
ALUoutt- A - 8; if Zero then PCf- DEST
, ,i:;';: ..
"',;ii:' ,,,
"3:,'i< :".
Istruziane JS: ALUoutt-- A - 8; i f Segno then PCt-- DESTfi; "
I, Istruzione JMP: PCt-- PCJMP .:)
Le possibili alternative sono illustrate in Figura5.16. \j

"
"1' '

I ,
, ,,'!
',,'.
,';~h
""::,31,',
; ".',
(

"m
_.,
- ":,::'I'
~

RF -0,,'","' ' ': "


, '.

i
",
<~: .,
I If_3' ~ . 3CQln' I
·::;:5 ' '".',
0-0
.. ",
':'J?:
"."
'. :,I

'" I~
"
f_'o
'* II :r!Cb;l.
'" 0-> '" """....
'C.

~
11_" " • I ...

i, 1= RF
.L_t~li
., -31

"
,~
-": .
',<~

"f'
" .
·
"


Ci,.. '
" .,

I
:,' '

Figura 5.16 Stadio di esecuzione, A sinistra in alto Ie istruzioni aritmetiche {OPALU :::
,:.1
ALUj a destra in alto Ie istruzioni LD e ST (OPALU = ADD); a destra in basso l'istruzione
JMP; a sinistra in basso Ie istruzioni JE e JS (OPALU = SUB), "';~I,
;', i:
;,
i -' "

',\
,:,
..
'


5.7.4 Fase di memorIa, ME
·. i ,.
'
"

,'.'
, ',r.

Viene letta 0 sentta la memoria. La schema della stadia e in Figura5.17. ,,~F


' ...
! svolte sono:
Istruzione LD: DMemt- H[ALUout]
Istruziane ST: M[ALUout] t-- B.
Le azioni
,
,·,'

.',.
';,1,
(

.
" L'

I
.-,1.
';,1, ,"
"·~I
',;"
r;i'iirt);;" '.-

:::t'F·
~il11F;;,
:n~!i,;,;",.. '
::,':'-", '
La CPU lS3
"1'"-'''''
iiitli'i":" "
.l.tit:"i.. , _
' _-----------------------------='--------
,,~.,.
"~
,.-, -
'."'".,
..',"; ,: "
,-.

!:;,:;;~y<:-
,,,. ._

"::~';,_c-' " 1="


w

_.
'" Ilr'r~ "--1"
,:~,,,_,, ..
;?~. ',',
.
0_10
", ,
ll-IS
•• •
L,,;,.' . ,. RF ~
>.W.,,\
, M
; ': .
I- , ,

_,
,:::. ""-3l
'"
seo...
op>.w rc.n~:U~ r ~
". '.
.;'.'" Figura 5.17 Stadio di memoria.
,' ,,':' ;'.,
:.( .
. ..
7 5
" :,' .fi.. Fase di scrittura del registro di destinazione, WB . .
."
''
, ,
.
Viene a?glOrna.to
I'
valore 51 trova III USCI a
e~ten
t ale registra di destinazione" Per Ie istruzioni aritmellche 11
alula ALU per la LD sul bus dei dati (Figura5.18).
,
'.
.','
~,
'" '

<
., ,
IITO<l

', ,
.
~-IO

.
~_IO

1l-1~
"" • • "'"
""' lI-jfj

. ,
1~_20 JJ.Uoul JJ.Uout
,c'· RF 'co RF M
"
• .J, , ,
'.~"
, ,
':,:"
1~\lril

t R1fnh •
r
'"
Figura 5.18 Percorsi nello stadio WB a seconda che 81 tratti di operazioni aritmetiche (a
sinistra) 0 dell'operazione LD,
,

' 5.7.6 Ricomposizione


,

I differenti stadi vengono ricomposti a formare 10 schema di Figura5.19, 8i noti che


" -. ''', nella schema e comparso un certo numero di selettori. Le espressioni logiche per
;,; " le fu~zloni d~ selezione, come ?llre tutti i rimanenti segnali di controllo, vengono
esanllnate nel paragrafi seguentI.
" "

"
5.7.7 Segnali di comando

Nello schema di Figura5.19 sono rimasti indefiniti i vari segnali di controllo che vi

compaiono. E compito delrunita di controllo che stiamo costruendo generare tali
.' segnali con l'opportuna temporizzazione. A tal fine convlene tener presente che l'unita
e n
di cantralle un automa a stati finiti. relative diagramma di stato ci aiuta a generare
" i 5egnali can Ie opportune temporizzazioni: 5i tratta di costruire una macchina di
Moore, Ie cui uscite sono i segnali di controllo.
.
'J,'
"

184 Capitola 5 "


-

-'" ,•• ••

·

0
>
• •
,••
.
0

,•• - u
~j I ·
1\
r
<
• J , '
"
,
.•
u
,•,
~ I
I
.1S30 -:
,•>•

~ I

,,-
• u
l, I
"<i \ : 1•

,•
5
<.J
~
• u •
...., l
• - 1


.

< •
,•
'" I

, I
,
~~H; "l!Ol~~ ,I '" ~. 0 : ~
III ~ <
,
I ,
u
t~ ... x• x•

~ '-
~

i
• •,
0
• I. •
,,, ,, ,,
,•>•

., ,•, ·- .-
• :!:
.,
~ ~
• N

N
::>
- 0:

,
Cl.
u 2b.
''""
Figura 5.19 CPU2: ri5ultato della composizione delle differenti 5ezioni.
",jf/.:':

.<~
}J'~
i~~1?'--::
~i~~r!;;~:::(
- ,~I-_:r;·-·"
}
":<:?i~ fP~(~~(-:':'~" La CPU 185
.. p'l~~ ~~;.+!:, _:.._-------------------:--------...:::::..:::::...::..-~~
.... ....(I'il .' , .. .
-;....1;/..-1 ":('\',l" ..
· •....:ll y~:(~: ,'_ ,: )
:1~{t . :-~~:.::-;. :. -_ II diagram~a di stato a~regato e}n Fig.ura 5.20. n primo macros.tato corrispond~
'::/1' :';'-:.:'.>:.;, aila fase di p~ehevo e de~o~l~c.a d:ll ~struzlOn~. A esso f~no.s:gwto ~ ~acrostatl
";:'t1 ,~."\:',""~" orrispondentl aIle 4 clasSl dllstruzlOUl. Tuttavla l per specificare 1 segnah di contrallo
,.:.:"'.H ';."~,}::,->fl diagramma d~ Figura 5.2.0 e cli. poca ~ti1ita.. Oc~orre piuttosto rife!irsi al diagramma )
.' A~ :."J" ·.-.di stato dettagliato. Dobblamo l!nmagmare che clascuna delle 5 faslIF, ill, EX, ME e
· ': ,i; :(:. ',-,·'":::·:WB occupi un periodo di c1ock 17 , per cui Ie istruzioni che richiedono 10 stadio di WB
'>~ :-~; ..-: -'
si: completeranno in 5 clock, anche se potrebbero concludersi prima, mentre alcune
.i';· '\·.·strilzioni (JE/JS e JMP) dureranno di meno.
.'. .' 'I."'I'.. ".:':,'.'.,.- -
,

",.',,;,~ ,::,:' ",


'. 1
. I
.1-:17 .:' .
· '. !,
' . Avvio
. .'" :. ... -
.c,'t:
'
-~
~, . ' '.

. '. .'

:'"
'..~~"·. . :....• '... ,' ..,
'

'. . , . ,
,,-. ,~i.,. :,:;.:::::
.', '.' -; "
/

• ",IT " " ,


Prelievo e decodifica
''','/p .'::'~: '...
'';n :.; :
.·il ." "
....'t~ :A~:':"
:1,-:'.'
· ,: ',i ....
, I, , 1/ ., • •
,
·,'"'.],'.. .. , RHMem ARITM JEIJS JMP
'.
"., , ,..,.j.., .. ,, ';.-
" \
:"i~ ,,',: ;"
'T"" ,.': ;
':'),/ ,:; , , , / • •
,..1, '
r. '. ...'-- .".
'.. ~

.. ,
Figura 5.20 Diagramrna di state aggregato delPunita di cantrollo eli CPU2. Si noti che
-1'1.:.,
. tutte Ie istruzioni hanno in comune le fasi eli prelievo e decodi6ca e che Ie differenze si hanno \
,':, :1
....; jI, ,. . solo in fase di esecuzione,
,',;.t ': .

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

::'::r .':':~:,." ,.Chiamerema TI, T2, T3, T4 e T5 i cinque periadi di clock corri:3pondenti aile 5
-'i :;'. fasi.' Gii stati dell'automa saranno numerati come i relativi impulsi di clock: gLi stati
'(ij' ? . ,., . _81 e 82 50no cornuni a tutte ie istruzioni , j rimanenti dipendono da! percorso seguito ,
, ';~'! ';, (.., .'. come da Figura 5.20. Per convenienza , nell'analisi svolta di seguito, si chiamana IICo-
":~ ..''':' ,,:-.. mandi" i segnali di cantralla che hanno effetto solo quando sono asseriti e si chiamano
..',~:). :~ ,";. Uselettari" i segnali ai blocchi di selezione. Ci sono da specificare i seguenti comandi:
I
~,;N ,.•
. •


MRead:
In:
MWrite:
per
per
per
leggere 1a memoria;
mettere il bus dei dati in ingresso;
scrivere in memoria;
I
• Out: per mettere il bus dati in uscita;
• IRWrite:


RWrite:
DESTWrite:
per
per
per
scrivere nel registro IR;
scrivere nel registro di destinazione;
scrivere in DEST;
I
• X..PC+4: per abilitare I'ingresso a PC;
• X..PCJE/JS: per abilitare I'ingresso a PC;
I
-. 17Q~esta a.saunzione e alquanto irrealistica e, nella pratica, potrebbe essere fonte di una e.strema
mefficlenza, in quanto iI periodo di clock risulta oecessariamente determinato dalla Case piu lunga
(presumlbilmente 1a fase IF 0 la fase ME). 'lUttavia conviene, almeno per il momento, che tutte Ie
fasi siano di pari durata. Nel seguito si illustrera come aggirare questa problema. I
,
186 Capitola 5

• X.PCJMP: per abilitare }lingresso a PC.

I Ci sono da specificaxe i seguenti selettori, tra cui e compreso anche OPALU:


• INDsorg: per selezionare la provenienza dell'indirizzo di memoria;
• PCsorg: per selezionare la provenienza deJllingresso a PC; ,
• SALUI: per selezionare la provenienza delJlingresso A di ALUj
• SALU2: per selezionare la provewenza dell1ingresso B d.i ALU;
• Rdest: per selezionare il registro di destinazionej
I • Sor,ge: DeT selezion;lrp I~ nroveoienza al registro di destinazione;

I
I
I
!

5.7.8 Stati comuni a tutte Ie istruzioni


! Stato di prelievo Durante Tl (state 81) devono essere asseriti questi comandi:
• MRead: per leggere la memoria;
• In: per mettere BD in ingresso;
• X..PC+4: per abilitare Pingresso a PC;
• IRWrite: per memorizzare in IR l'istruzione letta.
Si Dati che a differenza del comando MRead, che esplica la sua azione con Ie modalita
I

I
. .

....::,' ,
MRoad
. in
X_PC+4
JRWrite
.': . INDsore=l
PCsore-O
SALU1-0
SALU2-0
OPALU-ADD

- ,

DESTIfrile
32

. SALUI-O
SALU2-2
OPALU-ADD

~I/

l.D S1' AR1TM JE/JS J>lP

, 1/ S3L , /
'!L- 33A 3 I... S3J
SALVI",,! SALUl-l SALUI-I SALUI-l X-PCJMP
SALU2",,-2 SALU2_2 SALU2_1 SALUa-l Pcsorg_2
OPALU=ADD OPALU-ADD OPALU=ALU OPALU-SUB
X_pen/IS
S1' PClIore- l •

• ,
·, I ... 84' 54S 'k::.. S4A
SALVI-I SAWl-l SALUl=l •
SALU2..Z SALU2-2 SALU2=1
OPALU"'ADD OPALV-ADD OPALu=ALU
.. lNDlIori"'O lNDsore-O·
Rdest"'l MWrite
.So r le"'1 Oui
WRead
in

~ 1./ S5L , ... S5A


SALUI_l SAW1-1
• SALU2-2 SALU2=!
• OPALU=ADD OPAUI-ALU
INDsore"'O Rdesl=O
Rdesl""l Sorge-a
.Soree"'! Rlrrite
),(Read
Ih .
RWrile
.
"
, 1...- ....::,1...- , , , 1/
· Figura 5.21 Diagramma di stato dettagliato deU'unita. di cantralio. Si riportano solo i
:. comandi che risultano asseriti e i valori dei selettori che devono avere effetto. Non si riportano
i comandi che sana disasseriti e i selettori ininfluenti.
188 Capitolo 5
..
'-~~
che sono .prop:ie dei . coma~di pe~ la memori,a, i c?mand~
riferiti ~
registri hanno :'-3~~ ~
l'~ffetto dl ablhtare gli stesSI al cancamento del lora .mgress l a concluslOne del periodQ :~;i "
dl clock (Cfr: 1.5), , , ' /:>1 :
Durante Tl 1 seletton devono assumere questl valorI: ::.~;.y :
,{,re
'-'l·t,t,
• INDsorg == 1 per trasmettere alta memoria l'indirizzD contenuto in PC; :: ~:~ ',
• PCsorg == 0 per selez~onare ~C+4, prodo~to da ALU: come ingre~so a PCj .,~"';~ >
• SALUI = 0 per seleZlonare 11 contenuto dl PC corne mgresso A dl ALD· _'~1
• SALU2 == 0 per seIez~onare ~ come ingre~so B di ALUj , . :,,:,'~~\ :
• OPALU =ADD per selezlOnare II comando dl somma alla ALU, ··S~~ j
.,\~
.<,,:,~~
Stato di decodifica Durante T2 (stato S2) cleve essere asserito il soto comando'
. . '.;1~~ '
J '<+
"".,

• DESTWrite per memorizzare in DEST l'indirizzo di destinazione dell'eve~~~;"~~f ·


tuale JE/JS 'J .::il! "
"-t
_•.. :,~.,,&~": ,
, '... ,,'~ .
I selettori devono assumere questi valori: ....>\ '
··..:;:~lf~
':'~M,
.,;, .......
"".'-
• SALU1 = 0 per selez~o~a:re il contenuto di. PC come i~gresso A di ALD;: '/:tl
• SALU2 = 2 per selezlOnare SCOST come mgresso B dl ALU; _, ..:';;~
• OPALU = ADD per calcolare in anticipo l'indirizzo di destinazione dell1even_ ~\~~ i
t uale JE/ JS. , '6~
: c·(i(
':\1;'
";~j~
5.7.9 Stati dipendenti dal tipo di istruzione
, :,J~~
Gli 'stah successivi a 82 vengono esaminati in riferimento aile differenti istruzioni: ":{~j
"'k1
, ".::~~\~
Istruzione LD Durante T3 (stato 83L) i selettori devono assumere i valori di ',~~;,
seguito riportati -(non si rende necessario che sia asserita alcuna linea di comando): . <~
'. ,.,~,'i.
,',.:~~

• SALU1 =1 per selezionare l'uscita A di RF come ingresso A di ALUj , '1~


• SALU2 =2 per selezionare SCOST come ingresso B di ALU; "~\:
,~:t:
• OPALU = ADD per calcolare in anticipo l'indirizzo di memoria, :',·d
""';'~

Dopo T3, I'istruzione LD richiede due ulteriori cieli per completare l'esecuzione I8 . In >q
T4 (state 54L) devono essere invece asseriti,questi comandi: , :;~~
:."~
• MRead per leggere dalla memoria; ,;~
• In per mettere il bus dati in ingresso, ,;,:~~
. '':',
I ,_
"
I selettori devono assumere questi valori: .' ,
''!
, "

"'I
',~:'

, ,.\
"~I

18 Abbiamo infatti stabilito che Ie istruzioni che prevedano la fase di WE prendano cinque periodi
di clock,
'1
',f.,
'"-~"
li'n,,::' -.
.i~'~' ~~,'
_)"'l:"'"
:i.J' ....
'l;....,-'~

-.rDli;'F '.~-' .
_ \
'!~f.~;~f::_'-·.;:, .:.-_-------------------------....::L:.:.:....:C:.:P-'U"---.:1:.:8:.:.9
~?l~<.:..,~·.-- _
..!i!;:Jt'".;;J; - . _
~,\~"
~~f.f~::{1V~_-:>· SALVI = 1 p~r mantenere selezionata l'uscita A di RF come in~esso A
I
"~~:;;':~:':-'" _. " dt ALU; . . . .
:~\i'" ',. SALU2
:.~:J:;:'.:"
e ';;.' .. .
"~" ..:. ,.:
:.
=2
OPALU :=:ADD
per mantenere selezlOn.to SCOST come mgresso B d,ALU;
p.er mantenere 3U ALUout l'mdmzzo della p051Z10ne dl memo-
ria'
'
I
,'/'}:".; ::::"', ' • INDsorg =0 per mantenere aHa memoria I'indirizzo calcolato da
>f{(':':':, :, ALU; . .
'{:.::;'" \." . Rdest =1 per scnvere nel regIs~ro Rsd; \
:~,(f!~~~:'~":'e__:' Sorge =1 per selezionare Ia provenienza da memoria.
j . (,::~.,~,:". .. .,
n~~,:,,~,{1:tn,·T5, restano assentl gh stessl comandl e selettotl che 10 erano lD T4, m pm SI
'.li: "';'\:':~'~~ agaiunge il comando:
~"{""n,. o·
J.. ~~~!:::>:'. :::::, " . . I ' t d' d ' ,
'f/:'<~i':->:'-, RWrite per scnvere ne regis ro 1 estmazlOne.
·~~tjjt,:;:~·,: "'
"!,,,,,, n, ::,'
("':"~'J'",
,;;i';~~;L,:~:>
.~:p ~,~,.'!i,.:--:""
'>C ',' '" 'c
, "
I
~.~~,';.,.;, ,<".
~:;I):\\,:,~~, '",'.. .

I
':,"':\'1,":"':,.<,'- ..
,,', .. ~".'

J#:~;~i(:,:'--:
",

\,~:;~~'~:i["~~:'
i~~;:~~':~{;,.~ .'
t~ .''; ,,.}\;..,: .: .".
F;~,:::,~·,:'_"~~':'-i :. ,
l~~;~~~;',:)~£Ishuzione ST L'istruzione ST si completa in T4 (stato 845) non ricbiedendo la fase I
t~"(::~:~i:,:,~,. In Figur~5.21 i~ terzo stato e identico a queUo di LD. Tuttavia, si e convenuto
:i.~~:';}~:~;;;:~,~~~a 186) dl assenre su T3:
Jftt:::~Y~<" Out per me~te.re in anticipd il bus ~ati in uscita e presentare alia 1
~";Io;;~,:~::'~:>;" memona il contenuto del registro 8Orgente;
,l1~~',~"':~;':~~.':-.:~:., INDsorg =0 per trasmettere in anticipo alia memoria l'indirizzo calcolato
~:J.i·"::-:\{.~:". da ALU.
~;f;;:,'.:;~~Su T4 devono essere asseriti questi comandi:
.f'll ,t.• "" 'j
,•. , " "" f "
:j:';:':' ':. ';',. MWrite per scrivere in memoria;
{-. ::,;' ' . ~ • Out
'."", .'
:~:'i':/:::""" 1. selettori devono assumere questi valori;
-"",.'" ' .. ,','
per mantenere it dato alia memoria.
I
),:" . i:,';-,. '. SALVI =1 per mantenere selezienata l'uscita A di RF come ingresso A di
t':.,:·, ' :: ' ,
..
,{:"
l;~;::
" ;':' SALU2 =2
,. OPALU :::ADD
ALUj
per mantenere selezionato SCOST come ingresso B di ALU;
per calcolare l'indirizzo della posizione di memoria;
I
,,',,:,V.. :" INDsorg =0 per mantenere a~Ia memoria I'indirizzo.
" ' _
" ...
" ,
!!.",
<
,,',: ' ,
·,Istruzioni aritmetiche Le istruzioni aritmetiche, terminando con la fase WB,
I
I"~:,'
. ', ;
, richiedeno una fase di transite suI clock T4.
. In T3,(stato S3A), i selettori devono assumere questi valori (non si rende neces-
1 ".
,' ,
'.~<.
"
sanD che s}a'asserita,alcuna linea di comando):

,
190 Capitolo 5 ~!l
\H);\j.
~1l1;t:'J
lmr#
Iii'" .I'•
',1\ ~=tJ.~
• SALUI =1 per selezionare Puscita A di RF come ingresso A di ALU' ~'~~:'.. ~,£?~:~
• SALU2 =1
per selezionare Puscita B .di RF. co.me ingresso B di ALU;' '.;':~i~ ~1~~:~'
• OPALU =ALU
per far efIettuare l'operazlOne nchlesta da! codice aritmetic " dm :;::?~~~1
o. •..!/:tJ.4) '·I·~r
·"'l· .
In T4 (stato S4A) si mantiene tutto come in T3. :-:'h t::l;::'
. ,..,' ,~
,,"' ~."
·'~.l '''';.'
In T5 (stato S5A) deve essere asserito solo it comando: lQ! ',jW ,
",~:'i' >;T:t~
• RWrite per scrivere nel registro di destinazione.
"1
t,l) "t'~.:'
',,'
.
..'.
q"I'·~"
..:.,
Restano confermati i tre selettori precedenti e si aggiungono:
.,
. -'", t..; .',,:•
I .'

'<1 "~"
-.' :'~ ':/<~:~.
• Rdest =0 per scrivere nel registro Rd; .', "Ih' ,",-::
~:,."""
• Sorge =0 ~'~:~,
',',\' '''."'-; ~'~
per selezionare la provenienza cia ALU. "
.':.~,:i ,.': :"
, '/ "",.
"", .. ,."~
"~',.

.~i:~ ~t:'~'
~,:- ">::~"',.
o 0 • • 0 _

IstruzlOm di saito condUlOnato Ricbiedono solo un cicIo per completare. In T3


(stato 83ES) e asserito il comando: ,::;~: >::~
.. ,. . , ,,~:1- :J/.
per abillt~e 1mgresso a PC se e vera la condizlOne Zero su JE ,:','i~ ",:\.
• XJ>CJE/JS
o la condlzlOne Segno su JS. ',', ;., '..
I selettori devono assumere questi valori: :j;' t:::,»,
I, ;,."':'
',:{.\ ,o~. ",
• PCsorg =1
per selezionare la destinazione del salta condizionato come in- :-~ ,>'~'(
• SALUI =1 gresso a PC; :." ,:"c,
per mantenere selezionata I'uscita A di RF come ingresso A '):' ,·.}:t:
• SALU2 =2 di ALU; "" .;:
per mantenere selezlOnata I usclta B dl RF come mgresso B di ';{
:;'1:
-'·;,r
o
;:"
ALU , ," .
i , '.: ,', ".: f
• OPALU = SUB per confrontare i due registri. ':i,:~ "',;;:::
'r .,
,.: '.',,
Istruzione di salto incondizionato . . ' : : . '.
Pure questa nchlede solo T3 per completare. ":, ,,:.,
Deve essere asserito solo il comando:
- '....
• XJ>CJMP per abilitare I'ingresso a PC. ,.
,, "
n solo selettore di interess~ e: .
',.
• PCsorg = 2 •
per selezionare PCJMP come ingresso a PC. ,
" ...
..
5.8 Espressioni logiche per comandi e selettori ,.

Gli argomenti sopra svolti ci consentoDO di dare forma aIgebrica a tutte le linee di
contrello. Dobbiamo ipotizzare che la macchina sia dotata di un contatore da 1 a 5 e ••
che i segnali TI, T2, T3, T4 e T5 siano asseriti in corrispondenza dell'omonimo clock. .~
A tal fine e sufficiente un contatore ad anello come quello di Figura 5.22. ....,

j , ','
"
'.,
'lr~~""
''f, ~ .
'.f.·~' ,
l'})"
.1f~,;:-,_-------------------~--:L::.:..C:.P:..U=---='.::.::9'
;'~'
J.;<.,,~'.
,.,
,":.. ~ - .
'•.•. '~ '"..,.... '-
~J~\,:~:.. -
~i;},,;· . .· Tl T2 T3 T4 T5
'~:'~;;):<'
1i:',:':/". '
, . .
."",~ " "
Clock "L..J1.
'....-
' >:', . 1 2 3 4 5
",.
' .. :.~ '.r RSRT I
,). r" .
~ ,. ,,~. .,
0 :
.-< JE
..:.:.,', . .
'-
'
'"
~

: •
. JS
IMP

ST
",
.:;, ',~, ' .
:::,;>':".
",
5 22 Schema del contatore che decodifica 5 impulsi di
Figura. clock. e riparte
. . da.
, Tl al
'-:'... term me
. del conteggio 0 in presenza delle istruzioni che duranD meno di 5 penodl dl clock.
", .'
" . (.
.: ,'-, .

' '.:'-~;: Comandi A titolo di esempio mostri~? corne si costr~ce l'espressione algebrica. di
.'.:,,~. omando. Consideriamo per esemplo II segnale RWnte. Esso deve essere assento
~;o\""~~ ~5 per Ie istru~ioni aritme~iche e su T5 per I'istruzione LD. Ne consegue che
./•.. :.Tespressione algebnca per RWnte e:
.'.: ~_ . _ • • _ .( RIT LD) = T5
.' ., . RWnte _ T5 ARITM + T5 LD _ T5 A M+
,:"i. ," in Quanta su T.5 ci ~ano solo ,LD e ARlTM.
",:,', ..... : In concluslOne 1 comandl sono:
, ", . _ .
('~, ,~,,: _MRead = Tl + T4'LD + T5.LD
,,:;,'.' .. In = Tl + T4.LD + T5.LD
:~~:~· '.' ,'._ MWrite :::; T4.8T
1:.<::' ~ Out = (T3 'I- T4)BT
":,';:,,",.:... IRWrite = '_ Tl
..':,'.'.
," ' RWrite - T5
:::' .:(' " .~ DEST\tVrite :::; T2
"
,', ... XJ>C+4 = Tl
. ' . ' .. XJ>CJE/JS = T3·(JE ·Zero + JS ·Segno)
,:" ,. . _ XJ>CJMP = T3.JMP
. ',. Per quanta si riferisce a OPALU, esso si esplicita nei tre possibili segnali di
contrallo della ALU, doe ADD, SUB, ALU (Cfr. Figura5.9).
" . .. ADD = Tl + T2 + T3'(LD+ST) + T4·(LD+ST)+ T5·LD
. - SUB = T3·(JE + JS)
,' - ALU = (T3 + T4 + T5)·ARITM

.,
Selettori Nella scrivere Ie espressioni ottimizzate per i selettori si cleve tener conto
delle condizioni di indifferenza. Cominciamo dai selettori a due vie e prendiamo. per
esempio il selettore Sorge. Esso deve valere 0 nello stato S5A e I nella stato 85L
(Figura5.2I). Su TI, T2, T3 e T4 il valore di Sorge e indifferente, in quanta non e
asserito RWrite. 8u T5 deve essere asserito solo in presenza di LD. Dunque, basta
tenere Sorge a I solo su T5 in presenza di LD e a 0 in tutti gli altri casi. n risultato
e:
- Sorge = T5·LD
192 Capitolo 5

Analogarnente, adottando la convenzione di


no valere 1, 5i ha:
- IND,org = Tl
- Rdest = T5LD
- SALUI =
T3·(ARlTM + LD + ST + JE + JS) + T4 + T5

5.9 Considerazioni suJIa realizzazione multicic10

'Tmono,X == Tmono == L'Ti

T m 1.lltt,X = X . Tmulti > ImonQ,X = Tmono


e anche gli stOOi piu veloci 5i devono uniformare a1 periodo di cIock.
Abbiamo vista che Ie ctifferenti istruzioni si completano in un ditrerente numero
.' .,
di periodi di clock. Indicando COD OPII iI Dumero di clock richiesto dall'istruzione
I -rna, questa dura un tempo T multi,l =:: C P Ir .Tm.ultt:. Se PI e la frazione di istruzioni ,
di tipo I che
I'esecuzione compaiono
e data da: in un programma di N lstruzioni, i1 tempo richiesto per
.,
tm"lti = N 'L,(PI . Tm"'ti,J) =N 'L,(PI . CPh . Tm"'ti)
,
mentre, nel caso di CPU monocic1o, 10 stesso tempo era data da:
,
.;.
1
193

tmono == N . T mono
I
(5.6)
I
I
)

I
I

I
19Le fasi 10, EX e WB richiedoDo di per 8~ ~empi molto inferiori dene fa.'Ji IF e ME. In una macchina
reale, tra IO, EX e WB ci !lOno delle differenze. La fase ID richiederebbe iI minima del tempo, in
quanto rigua.rda solo alcune reti di decodilica (praticamente poco piu di due liveUi di porte). Nel
casa di CPU2 il tempo per ID ri.mlterebbe leggermente allungato per via. del calcolo di PCJE.
20Ci si potrebbe domandare percM il tempo di ALU e sta.to preso di t2ns, mentre il tempo di
I
ID e stato preso pari a 5n8, sebbene in ID 51 usi Ia. ALU per ca.lcolare l'indirizzo d.i destinazione
del saIto condizionato. Con questa scelta si vuole evidenziare il fa.tto che la ALU per ioteri svolge
Operazioni come 1a moltiplica.zione e la divisione , che di solito richiedono un tempo malte piu lunge
delle operazioni basilari di somma, sottrazione, AND, OR acc.
I
,
194 Capitola 5
- ,,",';i,
'-\! .''-'''
.:':"
; ";~~ .;; "
0,50 x 150 + 0,20 x 150 + 0,10 x 120 + 0,15 x 90 + 0,05 x 90 = 135ns.
':::~ :;,:,::
f Per un programma~eesegue N istr~zioni, il t~mpo totale impiegato e pari a Nx 135 ns' ':':Jt: ;":.
Val.e l~ pena dl osservare che. SI tratta dl un tempo superiore di circa il 65% d: ,'?~' ::'
quello nchiesto dalla CPU monoClClo (100 x (135 _ 82)/82). 1.:;:
" ,''-,

5.9.1 Miglioramenti a CPU2 ;'"


:-:d'
Ci sono pili modi per migliorare CPU2: """ '
, '~:'
a) ~ticipare p~r qu~to possibile Ie operazioni, in modo da ridurre i1 numero media
di clock per lstruzlOne; , ,'.'

s~eghere un ~reve, introducendo eventualmente degli stati ::~;'


• " 'c'
b) periodo. di.:lock pili
?i att.esa per Ie fasl pm lunghe, ill modo da ottimizzare il tempo media per'(~ ·:c
18truzlOne; :.':
c) compattare fasi distinte e aggiustare opportunarnente i1 clock.
",,
.
Anticipazione delle operazioni Nel commentare il diagramma di Figura5.21 si ,:';'. ,..
e gia Oss€rvato che per Ie operazioni ar~tmetiche.il ~~riodo T4 e.di pura perdita di ',:,; i ' •

~empo e. che la fase WE potrebbe essere ill T4 anzlche ill T5. La dlScussione seguente ':,,;. e',.,
lllustra 1 possibili miglioramenti ottenibili anticipando tutto cia che S1 puo anticipare ':~':: , -'
(lenno restando il periodo <Ii 30 n s ) . < .
.
• Istruzione JMP. L'aggiornamento di PC puo essere effettuato in T2.
-
• Istruzione JEjJS. Non e possibile anticipare niente. ..
• Istruzioni aritmetiche. II calcolo puo essere effettuato in T2, conseguentemente ":: .'
e possibile portare in T3 Ia scrittura dei registri. ";':\1,

• Istruzione ST. n calcolo dell'indirizzo puo essere effettuato in T2, conseguente- ,":;
mente l'istruzione puo scrivere in memoria in T3.
• Istruzione LD. n calcolo dell'indirizzo puo essere effettuato in T2, conseguente-
mente 1a lettura di memoria avviene in T3 e la scrittura dei registri in T4.

Come si vede tutte Ie istruzioni completano entro 4 periodi di clock: LD richiede


4 periodi; ST, JE/JS e Ie aritmetiche richiedono 3 periodi; JMP solo 2. Ovviamente
Ie anticipazioni sopra elencate modificano il diagramma degli stati e richiedono un '
contatore in base 4 per il clock. 8i hanno quindi queste durate:
- istruzioni aritmetiche: 90 ns;
- istruzione LD: 120nsj :, ..
- istruzione ST: 90 nSi
- istruzioni JE/JS: 90 ns;
- istruzione JMP: 60 ns.
Con 1a precedente composizione, 1a durata media di un'istruzione e pari a: •

0,50 x 90 + 0,20 x 120 + 0,10 x 90 + 0,15 x 90 + 0,05 x 60 = 94,5 ns.

j I
, ,{ I ','
La CPU 195
',.'',''" .
":;' .'
:,' ",' Per un programma c~e e~egue
N istruzioni, il tempo totale consumato 13 pari a
': " Nx94,5 os, coo una nduzlOne del 30% (100 x (135 - 94,5)/135) rispetto al caso
' ,; : :precedente.

'Aumento della granulari~a del clo~~ A~endo preso co.me ~eri?~o di cl~:± il
t ropo richiesto dalla memona, uelle fasl m CUI questa non Vlene mdinzzata, c e un
, n~tevole spreco di tempo. L'ide~le pe~ una macchina multiciclo e ch~ tutti gli sta-
' ".',,,, di richiedano circa 10 stesso penodo, ill modo da non avere spreco di tempo. Per
'", uanto attiene alla memoria, se si sceglie un periodo pili basso del tempo di accesso,
' "\~ccorre int~~durre un conveniente nUlliero cii cicli di attesa nelle operazioni che la
riguardano.
,Nel caso della nostra architettura, possiamo prendere T=12ns, pari a1 tempo di
ALU22. Cic rende necessari due cicli di attesa neUe operazioni di 1ettura e scrittura
di memoria, per dar modo a questa di rispondere. Riferendosi all'esecuzione secondo
_ ,il diagramma di Figura5.21, la durata delle istruzioni diventa:
.. ' '- istruzioni aritmetiche: 12 x 3 + 12 + 12 + 12 + 12 = 84ns;
- istruzione LD: 12 x 3 + 12 + 12 + 12 x 3 + 12 = 108 ns.
'. , _ ;'It,r1l7,jrmp. ST: 1? )( :l. 4- 1 'J, -+- , 'J -+- ,? v q - ali. n,,:
.. ' .:,", - istruzioni JEjJS: 12 x 3 + 12 + 12 = 60ns;
- , , - istruzione JMP: .. 12 x 3 + 12 + ~2 . 60~Sj . , '.
',' Can la precedente composlzlOne, la durata media di un IstruzlOne e parI a.
., 0,50 x 84 + 0,20 x 108 + 0,10 x 96 + 0,15 x 60 + 0,05 x 60 = 85,2 ~ 85 ns.

'.- 'Per un programma che esegue N istruzioni, i1 tempo totale consumato 13 pari a Nx85,
--:'~":< 'di poco superiore a quello della CPU monociclo.
.<" Rispetto alIa versione originale di CPU2 c'e stata una riduzione del 37% (100 x
. (135 - 85)/135).

Compattazione di fasi n nostro modello prevede 5 fasi. Un'ulteriore via per


ottenere miglioramenti neUe prestazioni consiste nell'eventuale accorpamento di fasi,
nell'intento di rendere pili equilibrati i relativi tempi .. Per esempio, con il clock di
12 ns del paragrafo precedente la fase di fetch spreca 6 ns, un tempo superiore a quello
previsto dalla decodifica dell'istruzione. L'accorpamento della fase di decodifica con la
fase di lettura dell'istruzione (a parte Ie possibili complicazioni circuitali), eliminando
una fase, rende pili spedita l'esecuzione.
In Tabella5.3 viene riportato it confronto tra i tempi medi di esecuzione di CPU1
, e delle tre versioni di CPU2.
A conclusione degli argomenti ora discussi, 3i osservi che l'ottimizzazione dei
tempi di esecuzione richiede che ii progettista valuti J'appJicazione delle tecniche pre-
cedenti, trovando 1a combinazione che produce il risultato migliore. A tale proposito
si vedano gli esercizi 5.14, 5.13, 5.15, 5.16.

21L'a.ttesa. per Ia. risposta. della. memoria era. stata. messa. in conto sin dal diagramma. di Figura.2.9.
22Per semplicita. continuiamo ad assumere che T includa sempre la tolleranza. per affiancare clock
,successivi.
196 Capitolo 5

Perc. GP 1 l;Pu2 ~2,a I 'CJ5'U2,b


A i't1 50 .2 150 90 84
LD 20 82 150 120 108
JE(JS 15 82 90 90 60 . ,"
,
ST 10 82 120 90 96 ':'1 ;
J~ 5 82 90 60 60 "
:~.~
,~, •
82 135 94,5 85,2 ,,';~.I ,~
.,'
. . . . . /;~ :'..
"
Tabella 5.3 Confronto tra 1 tempI rnedi per ~struzlOne (TMI) tra i vari modelli svilup ~'.- _~:: "
La colo0D:3 ,Pe~c. da. la percentuaJe delle differenti categorie di istruzione. La col p It <;~ ."
CPU2...a ~l :lfensce a CPl..!2 ~igl.iora.ta can l'anticipa~ione; lao colonna CPU2_b si rjferi~;n~: ';; ::,..
CPU2 mlghorata con la dlmmuzlOoe della durata del clock. e a "';(~:
<;) ~
,.::,.'; ".~
.,
5.10 Le interruzioni '-':;"~ '.
•--oJ •
,.. ~,'

Le interruzioni sono state introdotte 301 Capitolo 4, in riferimento 301 sottosistema di·",:.;·;;f(:
1(0. Nella parte che segue, l'argomento viene trattato nei ,uoi aspetti generali, allo 'Z:"
,copo dl defiOJIe la relatlva loglca dl CPU. '.. ::
Un.'interruzione e un qualsiasi e.vento che, pur non. essendo. un saIto 0 una chi'~>~:; ;.
matafntorno cia procedura, altera 11 normale Busso dl eseCUZlOne del programma ;':.~ ~;
.Imponen d0 all a CPU d'1 a bb and onare momentaneamente l'esecuzlone " ,., ,.'.
del progr am.,.I:
rna corrente, per passare a eseguire un altro programma dipendente dalla natura '::.:: ',,
dell'interruzione ([?] [HP93]). ,.), ::":"
. La terminologia cbe riguarda Ie interruzioni e molto confusa e 10 stesso termine :;';'", ,f
Vlene usato con significati diversi. Tanto per fare qualche esempio, nella terminologia "',:;, "'~
della famiglia IBM 8/360 si usa il termine interruzione (nella forma lessicale di inter- "'~1-, <:
ruption in luogo della piu convenzionale interrupt), in seconda istanza viene usato iJ . ;:, ,J
termine ecceziane per denotare alcuni tipi di interruzione; nei documenti Intel si tende ::'.,( ';';
a usare il generico tennine interiuzione, anche se, col passare del tempo, e diventato ,\ ".:
sempre piu frequente I'uso di eccezione e talvolta anche di trappoIa; la Motorola ela ," ,:':, ',"
pili coerente: chiama tutto eccezione. . ,
",
, " • ';
5.10.1 Classificazione ' . ..
, ·'1:
Fondamentalmente Ie interruzioni possono essere raggruppate in tre classi. .;:'
' ..'
L Interruzioni esterne (external interrupt 0 device interrupt): non sono causate da '.• -'
-. .)1

alcuna istruzione del programma in esecuzione rna sono generate dall'esterno. ,


Esse hanno 130 caratteristica di verificarsi in modo del tutto asincrono rispetto ",
all'esecuzione del programma. Le interruzioni esterne pili comuni sono quelle :)
usate per gestire Ie operazioni di I/O (CIr. Capitolo 4),
" 1',

2. Eccezioni (exception conditions): 80~O causate da situazioni anomale rilevate


durante l'esecuzione del programma, Esempi di eccezione sono: il tentativo di· :::
esecuzione di un codice operativo non permesso, 1'overflow in un 'operazione arit-
metica, il fallimento di un'accesso aHa memoria virtu ale (page fault), etc ... Esse.
)
La CPU 191

]
. verificano in modo sincrono rispetto all'esecuzione del programma, anche se
51 n sana predicibili in quanta dipendono claUo stato della macchina at momento
nO d' ,. t .
',,' dell'esecuzione 1 un IS rUZlOne.
'" ..
,
. {" 3 Trappole (traps): sana, int~rruzi~ni generate da apposite istruzioni presenti. ne~
• . programma (per e5empl?, l'l~truzlOn.e INT del ~rocessore 8086 gene~~ ~~er:uzlom
di questa tipo). Esse 51 venficano In ~odo smerono e sana pr~d~cl.blli n~pett~
~

.
all'esecuzione del programma. In pratlca Ie trappole sana del tlPI partlcolan
di istruzioni di saito che hanno I'effetto di portare la macchina in opportune
I
d lita di funzionamento.
" mO a
.. ' _ ,c: Nel seguito adotteremo una terminologia per quanto possibile coerente con la
J' precedente cla.ss.ific.azione, anche ~e, quand? e ~c~usa la ~08sibilita,di interpre~azioni
~": ',:"', ambigue, si fara ncorso ~1 te~mme genenco ?J
mter:uzlOne, ,Chlameremo SIstema
I
,·"·."di interruzione la parte dl loglca della rnacchma dedLcata a nlevare e a trattare Ie
. .
,• interruzlom . )
:, "
5.10.2 I problemi per il trattamento delle interruzioni
: .
.:, -",.,' :.. n' ~istema di interruzione e di norma 130 parte piu intricata dell'architettura. Ecco gli
;' " ' , ' . ' l' d 11 estl'one
.'.~., ''.,
. aspettl essenz," I e a qu '
,: . • Le interruzioni esterne si manifestano in modo asincrono rispetto all'esecuzione
" ' del programma. L'evento viene rilevato esaminando 10 stato di una 0 piu li-
f nee provenienti dal mondo esterno (Ie richieste di interruzione). Le eccezioni si
~ manifestano durante l'esecuzione del programma e vengono rilevate osservando \
. il verific~si delle condiziOni che sono lora associate. Per Ie trappole non c'e il J
J' ' problema del rilevamento, rna resta anche per esse il vincolo di produrre effetti
;'c'" ,',' come gli altri tipi di interruzione.
:" . .. . . \
", ' • fhsogna stabilue, un modo per passare ~al programma c~~[entem~nteill ~ecuzlO-
, ne al programma che tratta 1mterrUZlOne (gestare dell illterruZlOne - mte~pt I
, handler - 0 piu semplicemente routine di servizio dell' interruzione, ovvero routme
; di interruzione),
• Prima di passare alIa routine di servizio deU'interruzione deve essere salvato 10
stato di macchina, in modo che, quando la routine termina, tutto riprenda come
se niente fosse accaduto.
' Le maggiori complicazioni derivano daHe interruzioni 'esterne, rna anche gli altri
tipi di interruzione pongono problemi eli non facite soluzione. L'esempio tipico eun'ec- I
cezione che si manifesta in un sistema a memoria virtuale per mancanza dell'infor-
mazione in memoria centrale. Puo accadere che un'istruzione occupi piu posizioni 23 ,
,'
a cavallo tra due successive pagine, e che nel fare il fetch della porzione di istruzione
situata all'inizio della pagina successiva si determini un page fault: 10 stato di macchi-
j
na cleve essere salvato e nstruzione deve essere rieseguita quando la pagina mancante

230vviamente non e il caso della nostra architettura di riferimento. I



.,~,

.'fi"·itt·..
1$ ,,~.
~
"-<':"
-'{'J 1',
..... ,,·. t,.·~~,.

198 Caplto
' I0 5 '.' .,'"
,,-.:;' .it..'.,:-
~::i 'i11;r.~·(,;

\ .......,.. _..
':"'- ,':;~, !.~.~" ,.. ~
.,~ r.";· "
,,;',,', -,_."-:.; ...
''1 ,"" -
'" ..'" ..
. 1"·'" _,~

e stata cancata in memoria centrale. E perc possibile che quando l'istruzione viene. ~~f ,~;i',~;:,
riese~ta ci sia un ,altro page fault l perche.il dato .indirizzato non e a sua .volta in ,F~ i!:;"-<:
\ memona24 • Anche In questa caso 10 state dl macchma cleve essere salvato, In modo ._{~ .~.;J\ .
tale che l'istruzione possa essere rieseguita e portata a termine come se niente FOSSe ':~~' i;<:~:
,."Il~ '".,' .,
avvenu t o. ....'7" '.-~"
. --,i':.J ,.~.:'
In una arch~tetturasequenziale~ si pu.a convenire che ogni istruzione arrivi al corn_ ;:~ ,;~};".
\ p~etameDto2S p.nma che una n~ova Ist.ru~lOne veDg~ prel~vata. ed elabora~a. La logica ~1~ ',;r,··
dl CPU deve r~conoscere se c'e una nchlesta assenta e In caso afIermatlvo trasferire,"~.'; <;/
il controllo al gestore delle interruzioni, al termine dell'istruzione corrente. L'archi~ '~'in H;.,;'
tettura deve specificare Ie assunzioni che il gestore dell'interruzione deve fare quando:':'::in '.-:f:.i:,~
\ viene chiamato, in particolare l'architettura deve specificare 10 stato di macchina ehe ·"ri~·U~:.'
il gestore tIOva, al fine di restituirlo immutato aI termine della sua esecuzione. ~":.;t ·,~ft',;
Se Ia macchina e in pipeline Ie difficolta si esasperano, poiche non c'e un singOlo',,~ :'l~'/-":O
momento in cui si puo infilare il trattamento dell'int.erruzione tra i~truzione e istruzio. .' ~ -i.~~f,;f
ne, in quanta piu istruzioni stanno eseguendo concorrentemente. Si tratta di trovare t'.~l :. }.:::(
un metoda per fermare gli ingressi alIa pipeline, aspettare che sia svuotata e quindi "'~l ::~~:t
soddisfare la richiesta di interruzione. Siccome in queste macchine il prelievo delle .':~ :.:.. ~:~'~
istruzioni' avviene con un certo anticipo rispetto alIa 10ro esecuzione> l'identificazione' .:,;~j :'~,~. ',r
\ del valore di PC da salvare per il ritorno dalla routine di interruzione puo essere cosa~~1 :~A·:',
alquanto complicata. Per questo tipo di situazioni e stato introdotto il concetto di, :~:~ >~;:~~;:
interruzione precisa, ~ cui si pa.: 1era al ~a~itolo 6. .. ,'<ill :it\,:
\ .A parte tutte Ie di£:fi-colta, Ie mter.r~~I~Dl ~ono ~n elemento es~enzlaJe dl qU~lunque .<.~, ·<:~i
1 a:c~ll.tettur~. A lora .SI cleve I,a pos~lb~hta ~l reahzza~e 1a mul~lprogr~m.azlOne, la, ~~~ '/:/
dlvlslOne dl tempo (hme-shanng) e 1 slsteml a process! paralleh (multltaskmg). :.~1ij,::d:
,;01-~ ':':,~
I 5.11 Interruzioni su CPU2
··~!.i, ';:":",
~~, :':':F
".!:( ':';'"')
~:, ':"";'-
, :';y,,;' ~
Vogliamo ora aggiungere il trattamento delle interruzioni in CPU2. Faremo riferimen- :'}J :~,~~
\ to a CPU2 nella versione iniziale e al corrispondente diagrarnma degli stati dettagliato ,)~: ;}ii,
di Figura5.21; faremo inoitre alcune ipotesi semplificative. .)~ ~f.1:
_ }~; :,:;',,
I 1, E prevista una sola interruzione: l 1 interruzione €Sterna. La CPU si accerta della
richiesta esaminando 1a linea INTR in ingresso alIa CPU stessa. Se la linea INTR
,~~~ .."':
"~~:':',~':-
e asserita, quando Ia corrente istruzione termina, anziche dar corso aI prelievo .':::~ '.~,',:
della prossima istruzione, 1a logica di CPU passa al servizio delJlinterruzione. '~:.' , .
~!:" ':'."
\ . " . ".'
2. Per 1a CPU, il servizio delPinterruzione consiste nel salvare il contenuto corrente ," '.('.,
_., .
."
di PC e nel saltare alla routine di gestione dell'interruzione. In altre parole si il ' '
assume che l'elettronica salvi il solo PC I lasciando al programmatore la respon- ..,-- ", ',, '

\ sabiJita di salvare gli eventuali registri che potrebbero essere modificati dalla ':~\. ;
routine di servizio. ., ,
"

"'.. ,.. "


'41. ',",
.',1·~. ' ,"'i

I 24 La memoria virtuale e trattata al Capitolo 8. II problema ora esposto viene trattato in maggiore , <
dettaglio aJ t.ermine del Paragra.fo 8.6.1.
25Fatta eccezione per ie situazioni tome queHa delineata in riferimento alIa memoria virtuale. ";'~"
"';: ,r "'"
(
~,
;""~

"

<~ .";·
':>-.
".2r "~
,,;

\
,~(~

....
., • ,

·,· , ".-
.~"
199
.', -' La CPU
.
;;·

.~.,::
..
.'
....
"
-
-, .
~" .
, :.,:", 3. Per rendere attuabile quanta detto al punto precedente, 1a CPU viene dotata
:',:, di un u1teriore registro (denominato SR» per eopiare in esso il contenuto di PC
.... aU'atto dell'interruzione. Inoitre, viene anche aggiunto il registro XR, nel quale26si
:;< suppone sia permanentemente memorizzato l'indirizzo della routine di gestione .
,
. 27
Al repertorio istruzioni della CPU viene aggiunta l'istruzione RFI - Ritorno
'"
.;<., 4. daJl'interruzione, il cui effetto e eopiare il contenuto di SR in PC, in modo da far
·:. riprendere it programma interrotto.
'
':" Si fa infine un'ulteriore ipotesi semplificativa: dal momento in cui Ia logica inizia
~,>:" 5. il servizio dell'interruzione fino al termine della routine di gestione, la linea INTR
' ", " eautomaticamente disasserita, in modo che l'interruzione non possa essere iterata
;t".:,::· durante 1a routine. Vedremo pili avanti come db possa essere ottenuto.
O:':";' ,
~';:.:.,., 0 e aggiungere a CPU2 un po' di logica per:
(,.:':....,' eeorr
t>,:,,··, , salvare in SR il contenuto di PC aU'atto dell'interruzione;
~:::'<':,(." , . ' .
rd.";~· " eopiare in PC il eontenuto cil XR aU'atto del-l'mterruzlOne;
,X<),::\.· ',' ~, ..' d' SR ff too dell'esecuzione di RfI.
::~:~. ,.:, ' • COplare m PC 11 contenuto 1 come e e
::~,.,? La 10 ica in questione e riportata in Figura5.23. n diagramma ~i stato di Figur~5.~O
i,:/,~.""viene gmodificato come in Figura5.24, in modo da presentare II percorso. seg~J\~ lD
/},<; r.esenza di INTR asserita (alternativo al ramo corrispondente aUo stato dl fetCh ) e
://:j;:, fl, per,corso relati~o all'ist~~zione RFI. ..' . .
~~~,,'\"':"; 'E un semphce eserCIZlO trovare le espressIOUl Ioglche. per I comandi daXR, d~R:
, ,"::\' . SRWrite come pure codificare PCsorg in modo che SIano mantenute ie selez~oru
F::~>r·':' ~i Figura5.19 e vengano aggiunte queUe rel~tive ai due nuovi registri. Un'ultenore
)',:.:'.':" .'modifica erichiesta dalla rete di Figura5.22, ill modo da concludere: RFI al terzo clock.
-1., ',,( .~"
~:'.. " '.
~~;(,:::, ,
,;,~,~\:·'5 11.1 Considerazioni
:.:~;;~;.:::: "
,'~:,;:;, La nostra architettura non prevede alcuna informazione di stato.
Le sole istruzioni
:' ':,,,:. che trattano una condizione, le istruzione JE e JS, la calcolano nel corso della loro
-:':-,' esecuzione. Dunque non ci sono informazioni da salvare l escluse ~uell~ conte~ute
:;':,.:.:.' in PC e nei registri di usc generale. n
PC viene salvat~ dalla.logIca dl macchma,
,. '~,"'" mentre i1 salvataggio del contenuto dei registri - solo dl qU~IlI che possono essere
"', . modificati dall'esecuzione della routine di servizio - resta a carICO del programmatore.
"...' .""
' ,..
". ,
" "
.\
'..
,'
26 Anch"e se la cosa non e di grande interesse, perche, nella pratica, l'indirizzo della routine di
.interruzione viene tenuto in memoria, tale registro dovrebbe essere reso programmabile, aggiungendo
; .. ',
una specifica istruzione al repertorio.
".,

"..• .•
e
27n formato dell'istruzione RFI anornalo rispetto ai tre indicati in FiguraS.l, in quanto usa solo
, •
'~.
il campo OP.
,sSe si volesse essere rigorosi, occorrerebbe modificare il diagramma di stato di Figura5.20 ag-
~' glungendo, a ciascuno degli stati finali sui cinque rami del diagramma, un'uscita aiternativa verso
\0 stato del servizio deU'interruzione. Piu semp!icement.e, in Figura5.24 si e indicato che il percorso
'. _' a.lternativo viene preso quando INTR e asserito.
".,
"'"''''''

·i'~,;;:,., .
~,1 "'."',.
-": ~

200
.
. CapItola 5
. .;~:~ m
',,1,:: i
-; ~~
a
...... '.',~~' ,,
< - ','. J

, d5
X PCJMP X pc." • PC\Jrl1:e
" 'J:!!:
.~~~
,<,~
... "
" ~:,lV
":~ "
X_PCJ£!JS '-_;~;l :
: I:
PCsorg ;;~ "
-
.,"
.. '.,

PC+4 ~
.,/>~ :
PCJE/JS , INDsol"g -,-"
,-
. ,,'
, '.
..
.

PC.JHP
, C ·'L~. ::
• '--
~
SR\Jrite
I
,
. ,,'.. ~
":'"
c';

:j ';
.
,
•• .." •

R 1/ ,.~~' i

L ":;:.;
.....
,
'-- -":\~~ '.
-',",- ,.
.,-
" .••"
R ~:.~ '.
,.. ;' ~ .
, '::Ij '
. .. "'.
--, ',0('
. ~l:.4
Figura 5.23 Logica per salvare it contenuto di PC 801 momento del servizio deJI1interruiione _.::~. ,;
-

e per riportare PC at valore salvato al termine della routine di gestione delPinterruzione. _ ),~ "
Si assume che XR contenga permanentemente j'indirizzo della routine. La figura riporta Ie: ';:~'
parti aggiuntive rispetto allo schema di insieme di CPlJ2. .. ..<r: .
, '." '
.", ,,-,
;;::~ ,~
Non e questa la sede per parI are degli aspetti legati aHa scrittura della routine dr..:~:; ~
interruzione, discussi al Capitola 4; in questa sede interessa approfondire gli aspetti' :,~~ ;:
relativi al comportamento della logica cii CPU. 't'
Le macchine reali presentano un certo numero di informazioni di statol spesso . '.'.' ~
raccolte nella cosiddetta Processor Status Word (PSW). Oi questa registro di CPU', ,;~ /:
fanno parte, per esempio, il bit di riperto, trabocco, zero ecc:, relativi al1'operazione>~t' ;
precedente . Se 1'architettura prevede il registro PSW, at progettista si presentano' .::~3' ,
29

queste due alternative: ",,;~ ~,


• prevedere il salvataggio automatico di PSW (e di eventuali analoghi registri) aI .....;~.. .:
':~;i i

momento dell'interruzione e illoro ripristino al momento dell'esecuzione dell'i- ',. '..


struzione RFI', ,. "
. :•.'

';, '
• lasciare al programmatore la responsabiliU. del salvataggio/ripristino, prevedendo \~
Ie istruzioni opportlllle. <;; :
La prima soluzione e ovviamente la piu efficace , rna, se Ie informazioni da salvare '__" '
. .;::

sono tante, e anche la piu costosa in termini di logica di macchina. Di solito la, '\~I:':
s<;elta e quella dj salvare solo PSW, raccogliendo in questo registro Ie informazioni di. ,.';,
stato critiche, che se non' aalvate propriamente potrebbero compromettere 0 rendere '!
,.
difficoltoso it trattamento dell'interruzione da parte dei programmi,
,..,.I ,"

29Nell'architettura Intel ee il registro denominato FLAG che fa la funzione di PSWj esso viene usato ,"i·,.•
,I I

non solo per raccogliere informazioni come queUe a.ccennate, rna anche per tenere informazioni di
impostazione del modo di operare della macehina, tra cui un bit cbe abilita{disabilita iI sistema di . '. t:"
interruzione (si veda pin avanti). ..'"
.·1'
"
,
.'{. ,
,...~ ~:"".
';/';"
''''...;';;i;:;J:~
",."
~1';f.;,'l:·
....:., ,..
,
]
il~"<"'~~'-
mr:':·'!.:'
_._-------------------------------
La CPU 201
~l'i~<-, . .:.
,,~~I~l;;:;,:.;·,-~.':
,.-,¥", ' .
) ,
~'iI'l ., ,. ".' .
"','.' ... ,'" ,I
f.;'~~"",
"/,'
~.
," ~';,i' ; .
·~V -.-" ,",.,
. .
"I,.. : '. "
::J"\';::'.:~~, ,":~
': 7
",,{;,-:. , ' "
.. ,...
',"
,"'
,-

,
"
,
-
om!
, I'
,-~
,I,
:".(;,,".:,.:', MRaltd
.Jl om! I'
>NT
." ' ..
.......
.,j'"
I l' .
,
, '"LYc•• '.xR
SRlI'ril. ) ..
, IR'II'rlle.
:}.> " ". ..
: '," , IN{)sora_ 1
P<;sorc··

. .. '1
!.
" '
", PCserc-O
SALUt_O
..
;;:::-
/ ,.,
<: SALU2_0
OPAl,U_ADD
• .' <"
.f;.. ". , ).
,r-;,,"
. '.,' n', , I,
.'f.~:. ::,,;.~, ..
...
-,..,,,·I· e- , , ,..••.•
;;:.;' ~ ",I
,-j
..
"
DtsTII'rll.
SALU\_O
.' ,', I,. "",'
'~':,'~i, .:':'
. ,'. .'
SALU2_2
OPAl,U-ADD ) ,
~c, '. ,

;,:;:;::,,~. '.: ..
",'::'"
..
"';;'" :, '.: co S'r ARITloC 1>1,
~'.~
JE!lS RF' I
, , 1./ S"L ,1/ S3S , I, -1,- I-
.f,':" ' SALUI_!
"'A ,1/ ""
...,.
SALUI-l SALU1_l SALUI_1 XJ'CIWP
,,,'
'., '. ." , • SALU2-2
OPALU-AOO
SALU2_2
OPALU-ADO
SALU2 .. 1
OPALU_Al,U
SALU2_1
OPALU-SU!l
Pe..er._2 Pe.or.-3
~~:,;'" .' X-,P<:JE!JS
~'.\" S'r PC.erc_ 1 1
: '-:,:' ,
I.
..,:: " . ." , 1./ S.S ,1/ S.A

~\;: SALUI-! SALUI-! SAUlt-t

I.
S.l!.UZ_2 SALU2"2 SALU2_\
:: ..... ' ... OP"'W-ADO OPALU... ADD OfALU-ALU

;.t/', ,. .. Sor,e._l '


INO.org-O
Rdeat_\
INO.ore:=O
""'rile. ,
,;..~.' " llRud
0"'
,':~~-:: .", '"
i"'if ,I, , ,
./ SSL ,/ S5A
''''.',
:"'-': .' SAWI_I
SAWZ_Z
SAUlt-\
SALU2 __ !
) -
.... ,. OPW..... OD OPA,LU-ALu
'.
""", lHl}~or/l;_O Rdul_O
Rdul_! Sorle_O •
''". Soree._l
tfRu.d
R'II'rile
. ',;
:'. '"
R lhih 1-
- , I, ,, , 1/ , ,I, ,
" /

:'" "
, ','
"
Figura 5.24 Diagramma di state con il trattamento dell'interruzione. Quando it segnale
. INTR e asserito viene percorso iI ramo a destra in alto, che dura solo un periodo di clock, Per
I-
,
" . ,.. ..
via delle assunzioni fatte, all'uscita di questo ramo INTR e disasserito e resta tale almena

I-
,
f1:no a dopa l'esecuzione di RFI. E stato aggiunto iI ramo relativo a questa istruziooe. Esso
I '", " ':",
,
prevede semplicemente il ripristino di PC COD il conlenuto di Sa.


,
",. .
' )-
,
,


c_""
-"~.~
"1' t:~.
.'" '
I~<:l,~
1.',\·,':.
"!l ~,;~- ..."
202 Capitola 5 '~1~ ;~r;;

\ -:.:ili! ::'i>
;;(~,.,,

~·.,·~l~ ,'~.;"
" :-; " , ..
5.11.2 Miglioramenti . lj::f
,
',,- '.,."
'" j'i-;' ','.
.."I ~

\ Vogliamo ora rendere il quadro pili realistico, eliminando atcune ipotesi semplificative. ',1::'
;,":,:1'
,'::, -.
Passaggio alla routine di servizio Per semplificare l'esposizione abbiamo sup. .:;:::. .,. :
posta l'esistenza del registro XR. Nella pratica esso non esiste30 . Al Capitole 4 abbia·, ,,;~~{i' ,'~:, ~
\ rno vista cbe i1 modo normale per tenere l'indirizzo della routine di servizio consiste . :~.~:\ ','
nelrusare, ovviamente, la memoria del sistema. ','" .,'
-. ;-
Possiamo convenire che l'indirizzo della routine di servizio e in una posizione £issa' ."":),,
...
(predefinita) di memoria, detta Iocazione di interruzione (interrupt location). Spetta ,;}j".,
\ al programrnatore predisporre il contenuto di questa posizione. Per convenienza as.. ';'i';."
','" , .

sumiamo che essa sia all'indirizzo 0 (zero). II ramo relativo al servizio di interruzione .. '.:,~ ;.,
,
di Figura5.24 deve essere modificato in modo da preyedere: ,.. <';":
.
J.., '-

'>~:'.";,"
\ • un primo stato in cui PC yiene salvato e portato a zero; . ",~, ;'
': ",~ " ,
~"".
,,' .' "
."
• un secondo stato in cui il contenuto della posizione indirizzata da PC (Ia zero) :','~I"
';-::.

I viene copiato in PC.

n nuoyo percorso e illustrato in forma sintetica in Figura5.25.


,\',',
" ..,:

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

"
'
'.

,.... ,j "

·,..-rtl. ,;
\ INT~ ... , , ."
, ,
I
SR
PC
<-- PC
<-- 0
../:;." ~

·"'1·"

I ~I'
l'~
,.,,'
.)'-
"
.'
PC <-- M(PC} .;~"
,".

..
"
:;~
; ',."
.. •
.:~

.J; .
\ Figura 5.25 Ramo relativo al trattamento dell'interruzione nell'ipotesi cbe PC venga an· ',.:~,: ;:':.
" ,

cora. salvato in SR, ma che I'indirizzo della routine di servizio sia nella posizione di memoria. ·.A'", ,
di indirizzo O. Per semplicita, in questa figura si usa una notazione diversa da quella. di -"":,,~, , . ,
Figura 5.24: si esprimono Ie azioni svolte e non i comandi e/o i selettori cbe Ie determinano; ,\~~".
\ definire i corrispondenti comaneli e selettori e un esercizio elementare. ' :'~ " .
,
.i'
;,
"
":tl
\ Memorizzazione di PC Un altro miglioramento consiste nelPeliminare SR. Si puo ..
· ,,,,.
anzitutto preyedere che PC venga salvato in un registro di USD generale e convenire
n e ·'t .
....
che l'istruzlone RFI prenda da l'indirizzo d.i ritorno, Questa tecnica abbastanza .... :, .'
, .'
\ naturale nelle architetture RISC. Essa non e tuttavia immune da qualche complica-: ,'I ,
I ".. ''f ..
zione: se il sistema viene gestito in modo da consentire l'interrompibilita. delle routine
di interruzione, it registro usato per salvare PC deve essere immediatamente salvato ·...'
·,
'
,.. '

\ 30S are bbe un vero spreco di spazio sull'integrato, tenuto conto che Ie macchine reali possono , ~

arrivare a trattare centina.ia di difJerenti interruzioni e quindi richiederebbero aJtretta.nti registri. , , I '.

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

l 1" •
.--,1 '
" '-
~. ,','
.~;~,
'.,
~ ... '
:.·, :
" La CPU 203
;

,,

'dall routine di interruzione, per evitare che altre 10 modifichino 1 facendo perdere
a
l'indirizzo d1· n't ornD 3I
Se la macchina e dotata. di stack, Ia cosa pili naturale e salvare PC e Ie eventuali
'nformazioni di stato proprio sullo stack. Come sempre, PC e le eventuali informazioni
. ."~i stato saivate devono essere ripristinate dall'istruzione RFI.
:,
~<
.
Altre modalita Vale pena di esaminare altre rnodalita. di risposta all'interruzione.
Una di queste consiste nel non prevedere il salyataggio autornatico di PC, rna
contar e, per questa funzione, suI repertorio di istruzioni del programma e, in par-
ticolare, suI fatto che il repertorio deve presentare l'istruzione di chiamata a sotto-
,' programma. Questa istruzione, oltre a saltare al sottoprogramma determina il sal va-
32
~ tagg io automatico dell'indirizzo di ritorno (il valore corrente di PC ). Se dunque si
-
stabilisce la convenzione che in posizione 0 si trovi l'istruzione di salto alIa routine di
"
servizio (Cfr. Capitolo 4)1 al riconoscimento dell'interruzione la logica. di CPU deve
,
..,
". 'semplicemente effettuare il fetch, a PC invariato, del contenuto di questa posizione.
"
L'esecuzione dell'istruzione determina il passaggio alla routine e il salvataggio di PC.
'
. Con queste considerazioni, il ramo relativo aH'interruzione di Figura 5.24 diventa
se~plicemente queUo di Figura5.26

" '

nITR
,
lNT~
, ,/ " ".m
IR:_ w(pcj IR:. }A(O)

I
' • ,
.~ "
O."odiflea

c
-
..
.
.
Figura 5.26 Ramo relativo a.ll'interruzione quando nellalocazione di interruzione e prevista
un'istruzione anziche un indirizzo. Il programmatore deve aver codi£cato in tale posizione
I'istruzione eli cbiamata alIa routine di interruzione. In caso contrario l'effetto sara. quello
previsto dal codice di operazione. Notare che il caricamento in IR del contenuto della
posizione 0 di memoria avviene a PC invariato, in modo che l'esecuzione dell'istruzione di
chiamata di sottoprogramma possa effettivamente salvare l'indiriz2o di ritorno .
.

3lBisogna aggiungere che I'architettura deve corounquc poter garantire che, a discrezione del pro-
grammatore, it sistema operi in modo da non essere interrotto, dando modo di sa,lva,re l'indirizzo di
ritorno, prima the i1 sistema di interruzione venga. ria.bilitato. Si veda i1 successiv-Q Paragrafo5.11.4
32Nell'architettura Intel e prevista l'istruzione call, iI cui effetto e salvare la coppia CS:IP (il
contatore di programma.) sullo stack.
.'
.
'
'.
!
'l
,~
• ...,..,<"
..;'1. _
204 CapItola 5 _ ;'i~i; :'
"'~1'"
,Ii.,"' '
,,:.':,". "
, .. ~~~ "
,~.II. _
5.11.3 Interruzioni vettorizzate '.' ' ..'
...r- .
,,;,,: :
"J".I .

Nei precedenti ragionamenti si e supposto che vi fosse una sola interruzione , nel c~t;.,~~ .
?enerale, la, macchina deve essere in grada .di trat.tar.ne .p.ib. di u~a. Per trattare pHi,,:):}- ;"
mterruZlOlll basta prevedere una tabella dl lOCaZlOTIl cit mterruZlOne. Se, per esem-''''h~ .
p~o, le l~c~ioni d~ i~te.rru:zione contengono gli in?iri~zi delle, routine di servizio delle ;:~~:
dlfferentl mterrUZIOlll, mdlcando con IRi la genenca mterruZlOne e con TABIR la ta- ,),
bella, la logica di CPU trova in TABffi[IRd l'indirizzo a cui saltare. La posizione ~'~;~~:
della tabe~la pub essere p~edefinita oppure pub esse.re a ~celta. de~ p:og~ammatore, Un,'~ '.~{ ,,
analogo discorso vale OVVlamente se la tabella contlene lstruzlom dl chiamata. Spetta : Il:'
sempre 301 programmatore il compito di preparare la tabella con it dovuto contenuto. "!~f::
La schema precedente viene anche detto vettorizzazione delle interruzioni: ogni h~:r:,
eIemen t 0 d1· T"BIR'
J1"
. t 0 come un ve It ore Che consent e d'1 passare a11 a rou t'·
Vlene VIS ;·,'i
me', ;',F-:
, Al C . 1 4 f 'U f . d U' d' t ' , d' h' . ,j i~
assal~Clata. aplto 0 sono sta II ustra I van mo e l l ve tOrIZZaZlOne I mace me :':'~t :
re I . •,:.iI,l, "
-,,~,

" ..~:".
,I,

:,~;1~ '.
Eccezioni e trappole n trattarnento delle eccezioni e delle trappole e analogo a' ,,'::j~~:: ':
quello delle interruzioni esterne, con 1a differenza che esse hanno origine interna. U' '~:#
processo the si instaura e perb del tutto analogo. Per esempio, nel caso delParchitet. ",~'~ '
tura Intel, l'istruzione IN! xx asserisce interruzione xx, ovvero fa passare alIa routine :'::/)!:'. ;
il cui indirizzo si trova in TABIR(xx]. " ' \,.\i~'i
, .. .. ,. . . . , :, '::it
E norma che Ie POSlZIOIll lD TABIR the S1 nfenscono alle eccezlom Slana fisse e ·:~lr ,
~redefin~te, m.entre ,per Ie interr~zioni e~~erne e ?revista ,Ia p~s~ibi.lit~ che i vettori di '~i
mterruZlOne SIano hberamente dlslocablh nelle nmanentl pOSlZ10Dl dl TABIR. ",Jt& '
",:/',~; .
.',,~:~~,
InteITu~ioni. este~~e . Nel caso delle interru~ioni ester?e, it rne~~anismo per ~assare .~:~
aHa routme di serV1ZIO Sl basa sulla collaborazlOne del sistema dl mgressojusclta. La ,. ,5.~
convenzione e che quando l'autorna CPU esuI ramo di servizio dell'interruzione , viene .,',::;'~~
asserito verso l'este:no u~ ~egnale ~IACKL che i~forma i1 sisten;a.di I/O c~e la,CPU ':,:-'l},
sta. eseguendo un CIcio di. m~erruzlone, durante I~ quale.leggera 11 ?US del ~atl. La.J~
IOgIca esterna pub agganciarsl a tale segnale per pilotare II bus can l'mformazlOne che;"·"lf.
serve alIa CPU a passare aHa routine di servizio, Lo schema piu comune corrisponde '.;.;;rl
a quanto illustrato in precedenza, oyvero la logica esterna pone suI bus dei dati il :'~:~i~
numero IR;, can il quale la logiea di CPU raggiunge TAB[IR;] (si faeeia riferimento "::::\1,
quanto detto al Capitolo 4). );1."
:i"~~'.
:.'::r;i
5.11.4 Atornicita dell'interruzione 'j~
.' I'~
,,)
., '",
.,.
Una delle ipotesi fatte nel Paragrafo 5.11 era che, una volta entrati nel ramo di servizio ',,::
)" . . , 'I' l' \r;i
dell mterruzlOne, a causa del nconosClmento di INTR assenta, a medeslma mea. "'
venisse automaticamente disasserita fino all1esecuzione di RFI. Cib al fine di rendere -':,.;
atomica l'eSecuzione della routine di servizio. Vediamo ora come cio si ottiene. .~~t;
,!'~
•.!.!,
,.."-
"3" I,~· .
:;I~l'~"" .

!
;~i;~j:;.t;':
llittll':," ,
.!:\~~~'·.i'
. . '.. -
'.'
~,~, ,(:
".. '.: '
__ ~._,".
'.
La CPU
1
205
'_'.~~~'.'.: __--------------------------------
. '. ;"
':": ;':',~ '.
":<".:::: -
"~"":'.
]
_~",,!; ':' CPU
.. '
:!-.
.', HNTR· 0 I
I' INTR
.>.,. / -.- Sl S 01- ]
",,>;:·t-",' rE
.. , " RI R

~,:'~:.,>. -+- ~ lACK


. :",'y," ]
':"',::,'>i', F. ura 5.27 Bit di abilitazionejdisabilita.zione del sistema. di interruzione. La logica eli
,' :':.:,,~': ,:" c1u
esamina IIN':r:'R per de~err~:Linare se c'e un~ ric~esta di interruzi?oe. ~l rico~oscimeoto
, ,,: _', '. delPinterruzione, Vlene assento il comando RI, il CUI effetto e queUo di far disassenre UNTR,
,;:'
"""'~: L'esecuzione di RFl fa asserire SI e quindi riabilita il s~ema di ~te~ione. n ~p-flo~ ~ )
'.: :.,:,;::';;:';'~" deve poter ~ere. coman~ato anche ?-a. .program~a, 51 'Pos,sono. Ipo~lZzare due. lStrUZI?Ol,
,','"
'.' " ' "
"SETIeRSTI
', '
llculeffettoefareassenrelcomand15IeRI.Stnot'llalmeaIACK,essaVlene
, I ( I eli'J I . at
'," '., assertta. quando 1automa passa per 0 state 0 a sequenza stat! re atlvo trattamento
::,,'..(:: :. delPinterruzione,
".
,

.,
., '
:, .....
'. .'~ " .... La Figura 5,27 mostra che basta UD flip-fiop per rendere visibile 0 no Ie richieste
:, :' ': :"" ?i .rnterr.uzio3~e. Comandare tale flip-flop equivale a abilitare/disabilitare il sistema di
:': mterrUZIQne, . . . . \ .
'.\;'!': .._. '.~ ,Oecorre assu~ere ehe alIa ?1essa ~otto te~sl(~ne del sistema, IE s~ ill .stato basso~
;--'.<i:·:; '.','. III ~odo che non Sl possano venficare mt~rruzIoru fino a quando non ~ ~I~a ~a f~e dl
'. :':'~".":~;, 'aVVIO da pa~te del software della macch~a..Quan?o 1a fase detta ~l. mI~I~z~lOn~
.', ," e conc1usa, 11 programmatore puo esegmre 1'1struzlOne SETI che abllita il sistema di
,"'.. : . : ..' terruzione.
.:.:). ill _ Un'ultirna osservazione: quand0:;E viene portato basso in modo da disasserire
I
',':~ ,:',:',: ~ ',':: IINTR, la linea INTR resta asserita. E necessario che, nel tempo che intercorre tra
.':,~, ,\"'.-' , questo istante e I'esecuzione dell'istruzione RFI, a conc1usione della routine di servizio,
'":'; . ;~>,,::. 180 linea INTR, venga disasserita. Ci pub essere un modo automatieo, basato suI rico- I
}/~:,. ~.~::': noscimento ,dello stato della linea lACK, riporta~a in !,igura5.27. Alter~ativamente,
';',": i., .. pub essere 11 programmatore a trasmettere al diSpOSItIvO che ha assento INTR un
::;'~::"::::'::<'::~comando che 10 faccia disasserire (Cfr, Capitolo 4).
:>,\,;:.~~.'::~>_~
. .
I
',~~ ".
: '.,:':, .",.
'. :"\,;."<. )
,:.:~~',::,:,;',:: . . .
::.. ;",5.12 EserCIZl
.". ::,: r·· . ,
:. ",: :' ~~ :~'. ': ~sercizio5.1 In riferimento all'architettura introdotta al Paragrafo 5.2, si assuma
:.::,,',.,.::.,:.. dl avere un ipotetico linguaggio di programmazione Assembler (si immagini che siano
I.
;:~:".'>':', . defi~it~ .tutte .le possib~li ,~perazioni arit~etiche e logi~e, ~ompatib~ente can i for-
'.'. ,> ' matt dl lstruzlone posslbili e Ie eventuah pseudo operazlow necessane a comporre un
),; ..
1
"
, . .
"'."""
:::: :",::,' "Non ,i co f d t b't II dl b d II . , . . f'
I:':i, ;" " ' . ' ,n .on a ques OleO? que 0 masc eramento e a smgo a Interruzlone, che UOZIO·
';' ,nalmente e SImIle. La nostra archltettura prevede una sola richiesta di interruzione rna 10 schema
~ p.r~edente funziona anche in presenza di molteplici richieste, basta che INTR sia I'OR delle singole
.', ':,
~i\I'
nchleste. I

.s
.~,~l
~ff~~
li;I:..':'
206 Capitola 5 "" ,"'':

I
I..
-'.
- ";:1.":!
" ',':'li!") ,'\ ,::."
. ,n.

-.-;:.
,'~
,.'
."
?rogr~ma). Si sc:iva UD progr~ma ch.e co.nvert~ ,una, st:mga di car.atter~ ~u.merici ;~'::~ :' .,: '.
ill codifica ASCII m rappresentazlOne bmarla, Sl ,potlZZ' che la strlnga m,z, doll. ''''; , '",
\ pOSlZlOne STRNG; che la masslma lunghezza 5la 8 caratten; che ogm parola contenga' ...: :"
4 caratte~l' (0 meno:. ) ch~ I at '
~ nnga fin.i
. sea quand ' , , ,
081 mcontra il carattere dl sPazio ":J :',' ,
.
(caratten non numencI dlversl da SpazlO devono dare errore). ,.,.~ ":,,'
:.i .'
Esercizio 5.2 In riferimento allo schema della ALU eli Figura5,4, si discuta la soIu.' ,'~ ,'.'
zione adot;ata n~l testa consistente Del portare all~ ALU il codice contenuto nel campo ...~~ :',:: ''
f~~U delllStruZlone, confrontandola con la soluzlOne alternativa di portare I'insieme ';) .,',:,:
eli hnee che corrisponderebbero alia deeodifica del eodice del medesirno campo. ::.~~: ~::~;'

\ ~ser~izi.o 5.3 Nel' ~efinire l'architettura, a pagina 162 si assunto che anelle per Ie : ::r ,.:,;""
e
IstruZIODl LD e ST II campo OFFSET contenesse 10 scostamento della parola. diviso . ,'J ;' ::
~er 4.. Si faccia ora Fip?tesi che. p~r queste istruzioni il campo OFFSET eontenga ",:~: '.«,
1 effettlvo scostamento (clOenon eliv,so per 4), Comesi modificanoglischemidi CPU 1 "",0 "
e CPU2? )! '
\ '.~1 ",
Eseccizio 5.4 Si supponga che nel caso dell'istruziene JMP il bit mene significativo' ~.~ ,..:..
?el. c.ampo IND indicbi ~e i restanti bit del campo devono esseIe assunti come Un ..__.~;~: I. "
mdirizzo assoluto 0 reiativa a PC. Came 8i madificano gli scbemi di CPU1 e CPU2? ':1',
. . . .:; .;.:
~s~rc~zlO 5.5 81 supponga che, ferme restando Ie assunziani fatte nel testo circa :-;}, ,,".'.
il. sIgnlficato del campo OFFSET per Ie istruzioni LD eST, si debba aggiungere'. '."?' r::~
I'Istruzioni LI?H. Ess~ l~gg~ .la semiparola (16 bit) .in pos.izion: m~no significativa ",'~ ~'(,
I della paroIa dl memona mdUlzzata e Ia porta nel reglstro dl destmazlone, nella meta ,,~.'
meno significativa, azzerando l'altra meta. lpotizzando che dalla memoria venga ,;~"" ,
comunque Ietta sempre una parola (32 bit), si illustrino Ie modifiche da apportare a",:] : \
CPU1 e queUe da apportare a CPU2 per mantenere it modello di esecuzione in 5 stadi. ":~ ",'
I (Suggerimento: conviene intervenire sulla ALU,' prevedendo ulteriori operazioni e/o ':,\,{ ....:',
funzioni di cantrollo in modo da assecondare Ie nuove necessita). ,:.':: ~:
. . " , '.

.. 56 C I'E "55 . . ::,';,: :,:


E serCIZIQ. orne serCIZlO., rna 51 supponga che ora 1a scrittura nel registro .:/~. ,,\
eli ~estinazioDe dei 16 bit letti non debba modificare il contenuto dell'altra meta. del :~1i, ~;.::
regIstro. '.:~ ':"-
Esercizjo 5.7 Si aggiunga }'istruzione STH che opera in modo duale rispetto a1Pis" ,:,"i~' I'~'
truzione LDH dell'Esercizio 5.6. , .l,.: ....
I Esercizio 5.8 Si assuma che il campo OFFSET per ~e istruzioni che fanno riferi" :' :, .
:', ,',

mente alIa memoria contenga l'effettivo indirizzo dei byte. Si supponga che si debba '::'~~, .
prevedere l'istruzione LDB, che carica nella posizione meno sigoificativa del registro "~:'~ ~;,
I di destinazione il byte 1etto, azzerando il resto del registro. Quale modificajaggiunta d~ ~.
sl deve apportare alla ALU di CPU2 per far fronte al problema? ,1 :
Esec~izio 5.9 Si consideri CPUL2F e si ipotizzi eli fare effettuare l'incremento di .....
"
.. ,
'

4 del PC dalla ALU durante il primo semiperiodo, Come si modifica 10 schema di ,>"\1 . ;'"
\ Figura5,13? E possibile eliminare del tutto il sommatore per il calcolo del PC? :i \
r,.1'
Esercizio 5.10 In riferimento alPEsercizio 5.9, quale differenza si avrebbe, a Hvella
di codifica delle istruzioni, nel caso in cui il PC venisse incrernentato di 4 durante ",~c'I'
.. : .
.-, ..
il primo semiperiodo del clock? In altre parole la codifica del campo OFFSET delle ",',',
"

istruzioni JEIJS resterebbe la stessa?


...':',1" ••.<
, ..
,'f~, t"'~
'. ;',.,
'.1...y,
,~

J
,
~~::-
' ,,'.
:'' , L. CPU 207
.
';' • __
_ --------------------------=.::....::....::'---'--
", "

.' serciz io 5.11 Si supponga che Ie istruziolli di saito condizionato siano del tipo JE
,.,' E m if Equal zera), JGE (Jump if Greater or Equal zero ), JLT (Jump Less Than
". J
(u)p che queste istruzioni operino in base al contenuto di una parola di stato
, zerosW ecC" e
processor Status Word) che riporta il risultato dell'operazione precedente. Si
(P '. 1 modifiche in modo da permettere a CPU2 di operare come descritto.
' '" appartm a e
~:. '.' " In 'f ' CPU2" " T2 1" t d' PC I
''.; :::..:: Eserc~~IO 5.~2ne J~nmento a SI antlclpl a agglOrnamen 0 I ne
: ' ...casa dl lstruZla
'.:....; Esecciz io 5.13 Si supponga di mettere in atto tutti i miglioramenti ri~uardanti Ie
" "'":,' ' 'a.ntici~azi?ni dis.cussi al Para~rar:o 5.9.1, in modo cia ridurre la struttura dl macchin~ a
:l: .~:: ..' 4 stadl. ~l valutmo Ie pr,~stazI~m .della CPU, confrontandole anche con quelle relative
'" .'
,.~. at p'rototIpo CPU1, nelilpotesl dl T=30 ns e T _12 ns.
".. , ' S,' h' 'd li d' eli CPU d' , 193"
:,."'.' 'Eseccizio 5.14 I supponga c e 1 tempI eg sta I I pagIna SIano
,'.' ' esattamente quelli richiesti dalle vane fasi e che si debba aggiungere 3 ns per ciascun
...
.... :~<, stadia. Si rieseguano Ie valutazioni di cui all'Esercizio 5.13.
"".;- ' • • • • •• , • • • •

'".EserCJZlO 5.15 In nfenJ?ento aile assunZlOm ~ell. Esercizio 5.14, ,51 ~~uma dl pr.e~~
.: ...dere per T it valore cornspondente a. quanta nchlesto dallo stadio pm veloce (eICe,
:.'. Bns per 10 stadia ill). Come si trasforma CPU2 e che prestazioni fornisce in canfronto
~:>""" sia. al prototipo svi1uppato nel testo sia in riferimento ai miglioramenti suggeriti, di
,.-;::::' cui agli esercizi precedenti.
'
,.::.' Eseccizio 5.16 Si supponga di anticipare a T2 il calcola dell'indirizzo di memoria
\ ,', ....'. per Ie operazioni LD/ST di CPU2. Cosa comporta la conseguente anticipazione a T3
'. . "della fase M? Si esamini la questione sia nell'ipotesi di in cui il periodo T sia pari
, ", a quanto richiesto dalle operazioni di accesso alla memoria (30ns can i dati usati a
:"».' pagina 193), sia. nell'ipotesi in cui T sia piu breve e siano previsti degli stati di attesa
. ,

::.,> nelPaccesso alia memoria.


\., ::,'
:. " ".. Esercizio 5.17 8i ipotizzi di realizzare 1a CPU multiciclo can Ia tecnica della mi-
-:,.' _ cropragrammazione descritta al Capitola 2. Si assuma che una parola della memoria
" . .', di co~trollo. sia. divis.a in due .ca~pi. contenti rispet.ti~ament~: (~) I'i~dirizzo della
.. prosslma mlcroI.stru~lon~i (b) 1 bIt d1 co.mando. relatlv1 alia mlcrOls~ruzlOne~orre~t~
'. secondo la tecOlca dl ffilcroprogrammazlOne onzzontale(pag. 55). 81 progettl l'umta
. ' . di controllo, definendo nel dettaglio it contenuto delle singole parole della memoria di
... " controlla. 8i ipotizzi di avere una ALU e un banco di registri BR come quelli usati
,,;~.:,.,:. nel testo.

'" Eseccizio 5.18 In riferimento all'Esercizio 5.17, si assuma che il periodo di clock del
microprogramma sia 5 ns e che i tempi degli eventuali stadi siano quelli di pagina
193; si dia una valutazlone delle prestazioni delta CPU l confrontandole con queUe di
", "
.,' ,-
CPU2,
".. ~
, Esercizio 5.19 8i determinino le espressioni logiche per daX.R, daSR e SRWrite e si
codifichi PCsorg in modo che siano possibili Ie selezioni di Figura5,23
'i'>'"
. , .
'.'
.
"
' Esercizio 5.20 8i modifichi 1a rete di Figura5.22, in modo da poter tener canto del
<
ramo di interruzione e della istruzione RFI.
~~,;\ ' ,
,:,.;
.
.- :
208 Capitola 5 . toto ,
"',.,,1'
-- _~'i\." ~
..... "
y(.,
,-- ,
: :!,:~~ {
Esercizio 5.21 Con riferimento aHa Figura5.25, si scrivano Ie espressioni di comandi ",:m' ~
e selettori che ne conseguono. ',::'i
~."'
-_.~~ <
Esercizio 5.22 Si modifich.i la logica di CPU2 in modo cia eliminare SR e XR , pre.. <i~
vedendo che l per saltare alla routine di servizio dell'interru~ione, nella posizione 0 '·:A ~
venga messa I'istruzione BRL Branch and Link, il cui effetto e salvare PC in R31. si, <:-.1
scrivano Ie espressioni dei comandi e dei selettori che risultano inftuenzati da questa, "'~~ '
modifica )':'~
. -.f..
" i...
·I
Esercizio 5.23 Si tracci la 10gica per azzerare il flip-flop IE di Figura5.27 quando ,.:-;t
si entra sul ramo del trattamenta dell'interruzione nel diagramma degli stati e per; _..:_.~
mantenere asserita la linea lACK per la. durata del ramo. Supponendo che la macchina:','':';#
presenti Ie istruzioni SETI e RSTI, si aggiunga la logica che genera i comandi 81 e R!;:-,f:i' !
in corrispondenza di tali istruzioni. ::"~'.0
. .- --,.:-,
.::,.~.

Esercizio 5.24 Si consideri una CPU che esegue istruzioni in piu cicli di clock. n:·;~t
'. '.'--\'

primo (Tl) corrispon~e alla. fase IF, i1 secondo (T2) alIa fase ID '. iI terzo (T3~ alia 'f:·;,
fase EX. Le. altre f~l. non Int~r~ssano .. La ?PU pres~~ta un flIp-flop (IE) 11 'cui ';"~~~
stato dete~ID1na se il sIstema ~l wterrUZlone eon? ablhtato. AIIJatto della mess~ :--,:i'~
~otto te~sl~ne ~ deve P?rtarsl nella stato .basso, In. modo che non possano a~ersl .;;~~
mterr.uzIO~ an0e se la line.a INTR e assenta: IE vlene. po~ato ~ 1 quando Vlene' ~:~:
esegw.t: .PIstruzlOne S'I:I ~ nportat~ basso. se Vlene esegUlta l.lstruzlone C~I. Inoltre .":.~
a
se IE e ill stat~ alt~ e V1en.e ass~n~a I~ h.nea INTR, a partlre d~ p~osslmo !l la :..:.~~
CPU deve serVlre l'mterruzIOne. CIO nchlede (oltre ad altre funzlOm che qUI non _-;.'-':::.:1
interess~o~ che il sistema di interruzione. ven~a di8a~ilitato, i~me~~atam~nte smTl, :.:j~
e che restl lD tale stato fino al .mo~ento ~n CUI non ,,:ene esegutta I Jstr~zlon: ~T", ::~t~
oppure fino a che non.e es.egUlta 1lstr~zIOne STI. 51 supponga che Ie lStruzlOm che -,j.'t
a~ls~ono ~u IE ~e mo..dlfichino 10 stato In fase EX. . . ,. . '-\:i~
•81 dlsegm 1a lOglC~ dl CPU ~e: ,~I) p~rta IE a zero m nsposta all mterrUzlOne;. (2).-..:1*
porta.. IE ,~ 1 s~ V1ene esegulta I IstruzlOne STI 0 !RET; (3) porta IE a 0 se Vlene 'c::':~
e~eg.Ulta ~ IstruzlOne eLI. ' . :'_';~:~'
81 dlsegm la rete che al momento della messa sotto tenslOne porta IE III stato O. <:c.
Si supponga di disporre di un clock multifase, ovvero di un certa numero di linee, ' "\~
denominate TI, T2, T3, " I Ie quali risultano asserite in corrispondenza dei rela~ivi -/~
periodi. »
· ,.~

':'".
'-'i
..
':';
.''1
"'.,,
- ,~

· :',
";'
,,,
· , ,I
- ....
"
:,

''''1
· '\";
.;..,
'.'!?;'":!,",'
'e:
...·: l,'- ..
~'f-."" "."
"l1-:t.... •- _
:m~;t(ll~~'("-
~"
~r:':-'.l, (",
1
,tlttj/f,:;, ..,'
'/0, .,,'.
~f~,·:·.,'.. .
S:i"~'~"<' -
~~."l.il,' "I;,:.' .
'" , ,
r.., . .
{!.:~;::;"
~f;:;\~ i':: :,'" "
1
~;i".:'i\:;<\ '
"" ..
<-t:"" ,.'
.~,:,:,:,:",\::,', . )
~.i," ."....- eline
:~,'.~" _~:.- ...:==..:~~~~::::':'
'.~:';.' "'
.':~:;. . .:,.,.
,~,
)
:~:'::,' ,
~~.. ';': "'_ . '
,;~."":::: ...... '::
!_;:<. 1,_\" ','.-':~, )
,it:_ .\,;-;/.-_
.",:''. .", "

:~(':_'< .",
:.:;\:~. " ~ Le catene di montaggio sono larga.r:oent: usat~ ~el ~ettore manifatturi~ro:
il process?
)
....';..:. , di fabbricazione di un bene matenale e SUd~VISO In una sequenza d.i sottoprocessl ,
>,' ,. ~'ciascuno dei quali viene eseguito cia uno stadia della c,ate.n~. ?e la catena ~ costan:
':'::.', ,:, temente alirnentata , il tempo richiesto per produrre un umta dl.prodotto fi~ltO non e
,:;,,::-' ';~.' data dalla somma dei tempi dei vari stach m~ d~ ten: po del ~mgolo ~adl~ (suP.po-
I

3}" ';,:;\. nendo che la permanenza sia 1a stessa per tuttI gh stadt e che Clascun dl eSSl open su
,:i> .... '. 'di.una singola unita di prodotto 0 semilavorato).
;:""_~,"_' '
},~". ':,'.", . ,- Un simile concetto puo essere utilmente applicato nella c~str.uz~on.e di una C,PU I )
_/:.', '_' ~.< .~. ,s't,;utturando1a come ~a c~tena di s~ad.i che effettuano Ie .azION fl?ueste per I ese-:
:,~,' .:: cuzione di ogni istruzlOne, III succeSSlOne temporale, .proPr1~ come ~. una ca;en~ dl
:':('.. :,>:. ~:'montaggio. Uanalogia con la catena d1 montaggio fimsce ~w. Infattl m quest ultIma
'~~':~ ',' : ogni stadio trasferisce al successivo un semilavorato che ~l va ~r~£ormando., me~tre 1
.~.. . ,nel caso del calcolatore gli "oggetti" in movime.Dto sono lstruzlOlll (comandl)j g~ e~-
)I~" fetti del passaggio restano alI'interno delle part1 che compongono la catena (regtstn ,
'i,', memoria ecc.) e non c'e un prodotto in uscita. I
.j,: , I
:",t
'.,:'. .. Nel seguito viene usato il termine pipeline per indicare 1a strut.tura a stadi. Questo
termine, come altri dellinguaggio parlato nel mondo dei calcolatori , e diventato ormai
:' \
', parte del nastro lessica e ha un potere evocativo di gran lunga superiore a quello di
. "
I
, . una possibile traduzione.
. :"".
1,
.. La pipeline e stata introdotta poco dopo la nascita dei primi calcolatori commer-

I
,
dali. GH~. agli inizi degli anni cinquanta il sistema Univac I adottava la sovrapposizione
,.' di operazioni. Altri tipi di pipeline sono state sviluppate in seguito. Ricordiamo i
I· •
sistemi IBM 7094, Honeywell H-800 (1959), Univac Lare (1961) e IBM 360/91. Og-
gi la pipeline e un ingrediente immancabile nel progetto eli un microprocessore. In
.. particolare , e ritenuta un elemento caratteristico delle rnacch.ine RISe.

n capitola e dedicato all'esame delle problernatiche relative a1 funzionarnento in


pipeline e al progetto della relativa unita di controllo , compresa la parte di gestione
delle interruzioni. Per rendere piu realistica la trattazione, viene ampliato il repertorio
delle istruzioni del Capitola 5.
)
1'
; 'J
,


,.-
,iO
j?
,-' Il
210 Capitola 6 ~}~
·~,I~j.':
ti1!&:~'
\ ;.t~,~11
, ."'-'.>\ .
-'v'.",,,
. _,~"

6.1 Introduzione , &~~:


c' ,';;'~':~~}:'

\ In Figura6.1·viene dato 10 schema di una pipeline lineare L' . , ::::~i! 'f'?':;


struzlOne e suddivisa in k passi ordinati: all'ingresso della : r es~~u:lOne dl un'i·,::,j~~M~1
trattata dallo stadio 1, per poi passare attraverso tutti i su:C:;':i~e~~ ~uzlone
vlene:,,'1i!i .~:>.
S;adIO finale. Dlversamente dalla soluzione multiciclo esaminata al Ca itol~sClre dallo/~i:,t!.;'.
\ 1.lstruzlOne passa claUo stadio 1 aHo stadia 2 neUe stadia 1 entra 1" s~ . 3) quando . '~:"'tVI
Slva, in modo da mantenere possibilmente s~mpre
impegn t' t tt' I /uzl~ne
succes- ';'i".:;;,,,:
come in una catella di montaggio. Natuialmente e POSSib~l~ c~e IU~~ ~:
I,. proprio ,:.:W '~ii
ne attraver'l alcum stadl ,enza ,volgere alcuna azione, rna, almeno nellota Istruzl": .•. '1\1.;,,<
\ Flgura6.1, nessun stacho puo essere evitato. schema d.1 : lh <~.""'
_"~,l~~~~:~',:~
'~:! ~:J;',,
i;"'J .,,:1, L
"~.""'"
.-,. 'il:( :j~\~\
"!~~ i":"
\ , .... :.~:'.:::::,' .
. "I _A',
,.,:... \~':'-:
lngresso s, s, s. Uscita -- ..
." ~,::~,;;,
'~: .

::";~i ',1:
, j," ,-,'

\ Figura. 6,1 Schema di una pipeline lineare, Gli staeli della catena 51 ,5, ,,,,5, sono Con'
ill rnameta senale: le lstruzlODl entrana da un estremo
previsto dalla catena ed escono dall'altro. ' vengono e. I borate
I n~. ",J!:
secondo I, ordlne :..',:-'..(,
,
:.i ":i
;~.. :' ;:~
""
\ ,.(fS :,*;;.
Sebbene in linea di principio una p' I' " "<~ <1>
. ' . . .' Ipe me meare possa essere composta da, )'\ ,~,e .'
~,~i'~, ,:-"

I stadl comp1etamente asmcrolll, nsulta ovvio che in un calcolatore I'av


nella i lin e' . . '
~ pe e smcrOlllzzato dal clock, come III Figura 6.2 [Ram??].
t
~ t;~! :~'!~~
anzamen 0 "','f' "":'':
.",'?J
.'j
:,·t',
'I

,j1 ':~';
L L L :~~ .>
\ ,<?, "
,<::: "~
lngresso s, s, s.. Uscita '~,1. "~
-:;" '",:.:
\ Clock
')f', ~;;
"
". .

',,~ "I
Figura 6.2 Pipeline lineare'sincronizzata.. Gli stadi sana separati da registri (latch), cui e ~i',:} ',:',
applicatq un clock comune. L'istruzione avanza da un registro aI successivo a ogni impulso ',,',' ,.-
<' ~ ,
\ di clock: durante il generico periodo di clock ogni stadia elabora il contenuto del registro
..:'1 I'
alla sua. sinistra, producendo un'uscita che viene memorizzata sui registro aUa. sua destra, '~
sul £ronte finale del clock. Nelle figure che seguono non viene pili riportato il clock, ma il .~,' ,:-
modelio di funzionamento dei latch resta queUo piu volte descritto} can Ia memorizzazione ,.,'II, ':.:.
sul fronte finale del clock. Se la. pipeline e di k stacH, a regime essa cantiene k istruzioni, ....
.' , "
••
"

\ ciascuna. in un diHerente stadia di elabarazione, ma can tutti i segmenti della catena operanti •
in paraHela. Nel passare attraverso gli starli, Ia. cqdifica dell'istruzione puo essere modificata
se richiesto dalla logica di macchina..
. ' )\'
.'•
-oL _"

\
;, >
, ,
,

.
,
.' ;'L~
:l ,'
......:', ~:

I
';~ ':'
~';',.; .
-,.. ~.~
O'· ,.. "
?t'-~' ,
l~,:',~· -
~~1\' :__- - - - - - - - - - - - - - - - - - - - - - L : : a : . ! : p : o iP:.:e::lin::e:---=2::1::1
':.,,)· .
':o:~·. - -
1~'l' ',~::
..
,\"'',_>- .
',
• •
:("6,2 PrestazlO lli
',i~~' ,

;';" per rendersi conto de' vantaggio introdotto dalla pipeline conviene confrontare
l questa
1 . oluzione architettonica con il caso della CPU monociclo e multiciclo . II confronto e
.'>' ;.tlO a parita di stadi, assumendo cioe che, indipendentemente dalla realizzazione, la
.'" : CPU prese 2 sempre 10 ,tesso numero dl stadl e che tutte Ie IstruzlOfil li attraversmo
ntl
I<~<'
:,',:·. sempre tuttl . ~
Si indichi con T, il tempo richiesto dal generico stadio, cpu T il pe~Qdo di clock
p

i.\" della ~9~uzione inpipeline, con Tmono iI. periodo di cloc ella soluzione monociclo e
<:: .' conTmulti queUo dena ,?Iuzlone multlclclo. T dovr!> e,sere pan al tempo nchlesto p

' ... ~- daUO stadlO plu lento} Plu 11 tempo 'T"l necessano aJ. latch per memonzzare 11 nsultato
~.~~ ':.. (assunto uguale per tutti). Si ha. cioe:
(61)
,:.~',
"L.,
TP = m a x {Tj, },'-I c +
- , •• ,,1<
= T m"'t,'
..
+T, T,
\':: .
"':' n tempo per eseguire un'istruzione nei tre casi e rispettivamente:
....:~ ... ' '
- Tmono (6 .2)
:':"., T mono
..,.,.,. ~",
. Trnutti
-
= kTmuJti (6.3)
,'.

:":",:· , T
p
= kT
p
(6.4)
,.,'....
,.. " .
In altre parole, per vIa del .
latch, la' .
plpelme allunga . . '
II penodo nspetto alIa
,:": .- . soluzione multiciclo convenz.ionale. Questa inconveniente e perc pili che compensato
"~~~~'",
'. .. dal migJioramento complessivo delle prestazioni. Facciamo un esernpio pratico a chiosa
.:}':'.~.'" delle considerazioni precedenti,
>,"::.-' Si consideri un processore che esegue le istruzioni in quattro passi (K=4), aventi
'~:~ d .
":":~',
',':'

,questa urata.
~'.:':': ~ "
:'.'I.,L,'' ,
Tl ;;:: 65ns; T2;;:: 70nsj 'T3;;:: gOnsj T4 ;;:: 75ns

,' ':':"i~ , esi ipotizzi che i latch richiedano un 'TI di 10 ns. I tre profili di esecuzione sana riportati
~:

;:' '~...,' , in Figura 6.3. 1 tempi di permanenza di un'istruzione in CPU sono rispettivamente:
':,: '-':
::c':: 300, 360 e 400 us. Per la CPU monociclo e multiciclo il numero di istruzioni eseguite
~,' per unita di tempo e rispettivamente 1/300 e 1/400 mentre per 1a CPU in pipeline} 1

.' .-" a causa della sovrapposizione delle operazioni, il numero di istruzioni eseguite peT
~> / unita di tempo e 4/400 ;;:: 1/100, con un,guadagno di prestazioni pari a 3 e 3 16
: rispettivamente,
;).
.....,~
••' e ,
6,2,1 Indici delle prestazioni
I,"

',',.".,'.

', Le prestazioni di una struttura pipeline si misurano essenzialrnente can it tasso di


esecuzione (I.), I'efficienza (ij) e l' accelera:zione (,,),
-:.
:.;'
LOvviameme anche Ie strutture pipeline, per la loro stessa natura sono multicic1o, rna per ragioni
di sinteticiU. espositiva., qui e nel seguito, si usa it termine multiciclo per indicare un macchina di
'"
questa tipo non in pipeline. In ambedue i casi si assume che la struUura sialineare l ovvero composta
" da piu stadi in cascata. Si escludono tioe Ie strut.ture con stadi multifunzionali paralleli.
2Per quanta vista al Capitolo 3 queste assunzioni sono poco realistiche per 1a 8OIuzione multiciclo,
,.,, dove gli stadi vengono attraversati selettivamente a seconda deU'istruzione, rna, come vedremo,
,

!'
qualcosa di simile e possibile anche con Ie pipeline.
'_,..,
:",
':'-:,r
212 Capitolo 6 ".~~
_" !
.. ~J f
.... ~
- ' - . ,"
- ." -,
,.',I>!',
"'1',1:1 ~
I 300 I 300 I '00 I • :
. "~
-~~~',
. .. '"."
(a) 1:000001010 ·..·f,
7' 90 90 7' -. :~~l'
65 70
" 15
" 75
" 70 " ",\,1;
.- ':t\
~.;£i
btru'&lone 1 lslruzlone 2 l,Itnlzlone J
",
,,~:;,~
•0; ,
::tA!
.... 'ii'I~
I '" I 360 I 360 I ,,~:I'
.,
,,~

(b) raulUclclo ~::t:


1901901901'01901'01901"190190190[901 ',;~
,.',):
Istruttone 1 Istru'l.iolle 2 [Slruzlone 3 "'~"'~'
. ,'"
"''
.!"!
I 400 I -
'.':;1
":'1,;.
(0) ptpaUne '. "1"
:+1
90 90 SO SO
,- ":'tl
90 90 90 SO "
,.:'~'~
90 90 90 90 : ;\'~
90 90 90 .;"!
-,',l:
. . . . I' . -', ;"",~"!
~igur:.:" 6.3. Pro~i .di eseCUZlOne e te:np1 di permanenza ~n. CP:U. Ne la Sol~zlone monoclclo :':~~
l.te~pl degh stadi ~l ~~ano semphcementei. cel.la multlclclo Ii clo~k e u~lformato a. Quel1O::~J
rIchiesto dallo stadlO pill leoto; nel caso della ~Ipeh~e deve.essere aggl~Dt? II t~mpo del la~ch. ".~:
Come si vede, sebbene il tempo tatale che un'lstruZlOne passa nella plpehne sia 400 ns, vlene J:':;!
1b • 100 ' """',
':~::S;'.
I"
e a orata un IstruzlOne ognl ns.
" " ,, " , ,:y~
~asso dJ esecuzlO~e E ~efimto c~me il n~:ro dl lStruZIQ~I_comWe.tate-.per ~l~lta .:~:
dl tempo. D tasso dl esecuzlone per 1 tre Casl dl CPU monoclclo (l-tmono), multloclo ~{J.'
(J,lmultd-e in pipeline (.up) sonG riportati in Tabella 6.1. II tasso COS! calcolato non.:}~lt~
tiene conto del transitorio di riempimento della pipeline. :.}liJ:
Se si considera invece il riempimento, partendo dalla condizione di pipeline vuota, :?~q
per completare n istruzioni si richiedono k+ (n-l) dcli di clock: k cieli per riempire la ,<~.
pipeline e completare }'esecuzione della prima istruzione, e (n - ~) cicli per completare ,,::::~
Ie rimanenti (n - 1) istruzioni. Occorre dunque un tempo par.l a [k + (n -:-.l)]Tp: ~ .'~
e
tasso medio di esecuzione l J.Lp, dunque dato dal rapporto tra 11 numero dl lstruzlom",1~
eseguite e il tempo trascorso, doe: ·.'>~ji
J,lp = n (6.5)' ,~lj
kTp + (n - 1)Tp " ~\,
':"'~
Osserviamo che, per n -t 00, jJ.p ~ J.Lp. In altre parole, J.Lp di Tabella 6.l·V;
rappresenta il limite superiore del tasso di esecuzione, it tasso idea1e, mai del tutto ~:,:,~
raggiungibile anche a causa dei molteplici fattori discussi in seguito. : ."~::
.....
.•1
~
',,;:;

-§fficienza .,Uefficienza 0 utiJizzazione e ~centual~ dU~po in cu~ .cPU e ',~,~


occupata e SI puo calcolare come rapport.o_tta-iLtasso.,.dLe~~cuzlone.me.dkuaJ.L1~o. .":
ideafe:- . ,':.\
_ I'P _ n ~ _ n (6.6) i,:
~- I"p - (kTp + (n -l)Tp )/(Tp ) - k+ (n -1) ':,,
-,,~
:L
Si pub notare che 1] -t 1 se n -+ 00. " .:'-
,:.:i
,
,'t'
.>\,
r~f~"i;-;~:'- _"
~iir,:1 ",.--,
'>In:'· "-• 1
•:?i~;i~lf;~',':> La pipeline 213
;:~<,~": ,:.~;' __---------------------------==..02.==---=
h•. ':<','J 0' ..• ,
!l'.-). :..-
·.,':')!~:'r.",
1 •• , , - , . , , _ ."

,·'.r\":1',.~," ~
> ','
~~.,:::" ',. \ '
.-''',,' ',' 'J'
1
. -....t,. . . "
t~
~.
Monociclo Multiciclo Piperine
\
~' '.:'. ''
,;:!:'·'.l,'.
,I;"

'\'
:',:..'
",\.' t, .
, ....
,,-', , . _
1'·';',-,'., ''

.
,n·
\":',
1Jmono =
_
-V
1
-r:::::::
......... = J1, multi -- n .....
I
1

= k.mu{T";};.l ..... 1o
It;
-
-
I" p -- To-

=
1 -
,
I
ma:t{-ri}i_l .... ,lt+1'1
I
I,;' '~" ..:
". '. . " ,
'" ",.
.', :."... II 6 1 Tasso di esecuzione (numerQ di istruzioni completate nell'unitA di tempo)
~.
::,"
Tabe a . . . " d ' \ ' t 'd t I
.. per i tre casi consideratl. Per la plpehne non e stato CODSI erato 1 traJun OrIO OVU 0 a
1
:" ,"';':."_'
... , .
, . riernpimento.
'

'''"
.~. '.
:.'.' . \
.\;' .',
1'"f'.': .' I
,;,: :"i; '. A lerazione Si definisce auelera.z.ione di liD processore con Illi>eline Uneare ri-
.:~:':~".. cce a un processore multi"
spetto I yeI"
r.t.QJ.ra leora oc~ta, oyyero sa
t 'I t '
I oro as~l

::,::'. ',:, .. ':;' al"eset umendo per s~mplidta. Tp == T multi = T SI ha:


> 1
i.·.··'··, ' _ up
r- -
nkT
' -
nk =k1] (6.7)
:~';,., '. ' a - J.Lmulti - kT + (n - l)T - k + n - 1
'~_'~'/"_:"",' , . . .. . . .
',,~._.:.;,"'.- .. ~ dove (k + n _ l)T e II tempe per esegwre n lstruZlOnI nel case di ~roces~r~ plpehne,
":'-' .:,., , - t nkT e il tempo richiesto per il completamento delle n lstruzlOOl nel caso \
;~',:'., :.',',,' , men re. I
.~' , ", convenZl0na e. '. .
>\,\,.'. " , Si noti che Q -t k se n » k, ovvero: al crescere dt n, it tempo per rlempue la
~ ::',,::i:<" pipeline diventa trascurabile rispetto al tempo totale per completare n i,truzioni.
t.~':~;~:', . _
.... i~.J :,,-, _. ...
~ ~~',; ',:,:"'-,,1' " 6.2.2 Conslderazlonl
: 1/1..:':'<::. • \
q,,\ :,:-> ~', ntasso di esecuzione
sia di una CPU multiciclo sia di una CPU pipeline, e fortemente I
;t,·'';:" -,,.::,''":.' .
inftuenzato dallo stadia piu lento, it cosiddetto "colla di battiglia" (bottleneck). In
Figura 6.4 viene riportato un esempio di rimozione di un collo di bottiglia. La pipeline
.~~~'.;::; . _originale a) presenta uno stadia con durata tre volte superiore agli altri. Le soluzioni
~ ',~,l,~~.,.<..... : .. possibili consistono nel suddividere 1a struttura in tre starn seriali b) 0 in tre stadi
1
i :,~', e,:' .,' paraUeli c). La soluzione c) introduce una pipeline non lineare, tipica dei processod
r..<:·..
, ,~,;~;.,::.:::':::.,
superscalari. Questa genere di pipeline non viene esaminato in questo capitolo. I

I
~ ~,' " Come in tutti i problemi di progettazione, il progetto di un processore pipeline
'

; '~"'" .~.. .richiede ebe si definisca una funzione obiettivo da ottimizzare. Una tecnica di progetto
~ ,.~ ::, -consiste nel trovare il numero di stadi k che ottimizzi il prodotto costo-velocita.. Nel.
.
~
;
: :;:,1;..;: ~
1 "
;
.-,

t. ,":, ";.
~
caso ideale in cui tutti i segmenti richiedono un uguale tempo pari a Tmonolkl si ha:
I
~ }~'j':';':,.( . T = 'TmE M +T/
:';' :.:' _," . .
.\ ..~ ,:' '. ,_ Assumendo che il costo totale possa essere calcolato come somma dJ un casto fisso )
: ".'
,'~:' c/ e di una pa,rte proporzionale al costa di ogni segmento secondo un coefficiente di
,' t'.: prOpofZlonalitac" il costo totale C dato da: e I
Ll~ 'I'" •' " ,
~1'
"'~'." ..
-'i \,~ . :., . C = c.k + c/ J
':, ,,j" , ". " .:
\,., ,.,.':,.......
I 214 Capitola 6

b)

I 1 2 2 2 , ,-,'
" -\
.·1
• • , •
: I ""
,

.J .
1 2 3 oj
e .
r,;. '.
'

• 3• •
2
,. ',;'
·
1
,. ,
2 3
~.

J. •
• • ,.
2
h
Figura 6.4 Sostituzione del collo di bottiglia della pipeline a) con tre stadi seriali (caro b) .. ,

I o con tre starn paralleli (caso c). La soluzione c) introduce una pipeline non lineare, tipica
dei processori superscalari.
·,"
·

n prodotto costo-velocita e quindi: ·," .....


I (c,k +c )( I ) = k c,k + cJ (6.8)
.,
., ....
f T;09 + Tz
m
T mono + kTI

-
I La segmentazione ottima k, [Ram77], e quella che minimizza il prodotto in 6.8. , - .. , -
,., .
'.'.'
, ., I·
,, " ...
6.3 Alcune estensioni al repertCirio delle istruzioni
I Il repertorio delle istruzioni della CPU in pipeline e queUo assunto al Capitola 5,
·'I' .
....
:,

~.
l "
'
',1,

"

con l'aggiunta eli atcune istruzioni riguardanti: (1) la possibilita di ieggere/scrivere ......,",
I in memoria non solo parole, rna anche semiparole e byte; (2) l'istruzione di ritorno
dall'interruzione; (3) ulteriori istruzioni di salto. · .
r. Istruzioni aritmetiche e logiche "
t.

I Restano esattamente queUe definite al Capitolo 5. Per brevita, nel riferirci a que-
sta categoria di istruzioni si usa il termine "istruzioni aritmetiche" e si denotano
come ARlTM.

\ 2. Istruzioni che leggonojscrivono in memoria


I ,
In precedenza si era supposto di avere solo Ie due istruzioni di caricamento e
memorizzazione di una parola (LO eST). Vogliamo Ora prevedere istruzioni di
letturafscrittura in memoria che trasferiscano, non solo la parola, rna anche la
semipacola e il byte. Piu precisamente: ",.
• LB (Load Byte), SB (Store Byte)
., .
! ,
· ..

,
."
La pipeline 215

L'istruzione LB carica un byte dalla 10cazione <u memoria indirizzata (senza:-


estenderne il segno) e 10 pone nella parte meno significativa del registro di
destinazione.
L'istruzione SB permette invece di memorizzare iI byte menD significativo
. del registro sorgente nella locazione indirizzata.
• LH (Load Hallward), SH (Store Hallward)
Nel caso di LH, il contenuto della semiparola (due byte) alia locazione di
memoria indirizzata viene caricato nel registro di destinazione (di cui va a
occupare la meta meno significativa).
Nel caso di SH la meta meno significativa del registro sorgente viene scritta
all'indiri:qzo di memoria.
La semiparola cleve essere allineata a indirizzi pari. In caso di disallineamento
la logica di CPU genera un'eccezione per errore di indirizzamento 3 (di questa
aspetto si pacla piu avanti, nella sezione dedicata aile interruzioni e aIle
, eccezioni) .
• LW (Load Word), SW (Store Word)
Corrispondono aile precedenti LO eST.
La parola deve essere aUineata agli indirizzi multipli di 4.

Nel seguito, per semplificare l'esposizione, quando non vi sia possibilita di confu-
sione, vena usata la notazione generica ST e LD laddove ci si voglia riferire in
- modo generico a tutte Ie istruzioni del medesimo gruppo.
Occone evidenziare che l'indirizzamento al byte e alla semiparola ricbiede che nel
. campo OFFSET venga codificato 10 scostamento effettivo e non il suo rapporta
a 4, come nel caso di CPUI e CPU2. Inoltre, per poter trasferire i tre tipi diversi
di dati, occane introdurre un po' di logica. Questa si basa:

a) suI codice di istruzione, per discriminare la dimensione del dato (paroia,


semiparola 0 byte);
b) sui due bit di ordine pili basso dell'indirizzo, AO e AI, per rnuovere it dato
nella giusta posizione.

In base a1 codice di operazione vengono generati i due segnali ENW (Enable


Word) e ENH (Enable Hallward), di cui la Tabella 2 specifica la combinazione
dei valori in rapporto alla dimensione del date trasferito. Le Figure 6.5 e 6.6
mostrano 10 schema della logica relativa; essa diventa parte delle stadio ME.
3. Istruzioni di salto
Aile istruzioni di saito condizionato (JE e JS) e incondizionato (JMP) del Capitolo
5 si aggiungono Ie seguenti.

JLa generazione dell 'eccezione e eJementare: si tratta di confrontare il codice di operazione rispetto
al valore assunto dai due bit meno significativi dell'indirizzo.
..
"
~
216 Capitola 6

I Entita di memoria trasferita I ENW I ENH


I Byte
I Word
Halfword
0 0
1
0
0
I Non permeaso 1 I 1
1

Tabella 6.2 Codifica. dei segnali ENH e ENW in rapporto all'indirizzamento delle differenti ,:}~
: :.:"j~ ,

ent;t' d; memo,;a. La combinazione 11 non e c o n s e n b t a . ' i i . : : ' "

<.J
• JAL (Jump And Link) ';:~ }
~~~
L'istruzione JAL viene usata per Ie chiamate ai sottoprogrammi: essa pro- ":8,,. -:

voca il saIto incondizionato alI'indirizzo di destinazione e salva l'indirizzo .,;K .


dell'istruzione seguente nel registro Rai, impiegato esclusivamente per que~ -::;:r: .. : , , ~

sta funzione e percio detto registro di collegamento (Link register). R3( /2 .


viene scritto4 solo dal1'istruzione J AL, rna puo essere letto e capiato in al~ .' ::':-1 ~
tro registro . n ritorno aJ chiamante si ottiene attraverso l'istruzione JR :.\~ /
descritta qui di seguito. n formate di JAL e identice al formato di JMP. .:: ',:,:. .
Osservazione: si potrebbe prevedere un'istruzione JAL che codifichi anche ..{ t
il registro di coUegamento. In tal caso il campo IND si sarebbe ridotto..~;~ >
• JR (Jump Register) . "';1<
Provoca il salto incondlzionato alI'indirizzo contenuta nel registro codificato ': .:i,'
nell';struzione'. Puo essere u,ata come istmz;one di citorno da una sUbrou-~Ci'l:f
tme mdlflzzandola al6 reglstro R31 0 a qualunque altro m CUI e state Coplato':'.~ ,
l'indirizzo di ritorno . "',':.;; ,'.

,
...,
...;
,
'.I
~"
·
.'
, ~,
.,,'..
/,}(
. /.< ••
,
:.:
<ICol nostro repertorio di istruzioni per copiare da un registro all'altro si pub usace I'lstruzione ,"or;
ADD, scrivendo, per esempio, ADD Rl,R31,RO. L'istruz!one copla R31 io RI, se RO contiene zero. ....'.
Siccome il numero zero e uo numero spedale, usato frequentemente. in questa e in altre situa2ioDi, . .
atcune architetture sacrificano il registro RO a contenere permanentemente 0, facendo in modo che
eventuali operaziooi di scrittura su esso non abbiano effetto. Ci sana anche sistemi in cui la Jettura ..
di RD restituisce sempre 0, mentre la scrittura geoera un 'eccezione. '
~Si noti che per JR bastano il campo OP e il campo del registro, dando luogo a. un formato diverso
da tutti quelli di FiguraS.1. Una forma piu. verSatile sarebbe quella di prevedere anche 1& presenza del
campo OFFSET, in modo che I'indirizzo di destinazione venga calcolato aggiungendo quest'ultimo
a1 contenuto del registro l in modo da poter per esempio scrivere JR scost (R=); il fonnato sarebbe
F2 (FiguraS.l) e-il campo corrispondente a Rs2 non verrebbe USato. Per semplicita evitiamo l'uso
di questa formato per JR.
6Poiche Ie istruzioni devono essere allineate, l'iatruzione JR deve specificare' come destinazione
un registro i cui due bit di ord.ine minore sana zero. In caso contrario, suI fetch dell'istruzione di
destinazione si verifichera un'eccezione per violazione dell'indirizzamento.
)
La pipeline 217

]
Bus

I
[Nil ENH Bus
Es;1:"rr'lO I"ter"'no

~
l ~2 f'... ,

R 0... 31 i0...31
I
I
'~; '".
,.. ~, 1./ '32
" I
:..; ~ , .
};'.'- 1
.<'.
:;;::, J

.:.:. ~ o +.{>--+. 16.~31


::;,
~

1
..; I
~'.<:.;",
/:::.:
.,.; '.
ti
>~>
<.
f;., "',"
, ,.. ':, '
.<.-' ::..
,
·" 24".31
'
'. ,:'...
••';'
"
. 16...23
8 ... 15
0.... 7

• I./
r> I~ I 07
\
I
AI A'O \

. Figura 6.5 Schema per il caricarneoto dalla memoria di una parola, una semiparola a un
byte. II dato viene messo suI bus interno dopo essere stato selezionato tra.m.ite i segnali ENW
I
f. e ENH (Tabella 2). 11 segnale di ENW comanda il trasferimento di un.'intera paz-ala. Se il
segnale ENW e disasserito, un buffer Can uscita a 16 bit mantiene a zero i 16 bit piu signifi-
cativi sur bus interne e l'ulteriore selezione tra semiparola 0 byte e determinata da.! valore di )
ENH: se e asserito vengono trasferiti i 16 bit selezionati attraverso At, se e disasserito viene
mantenuto a zero anche il byte corrispondente ai bit 8.. 15 del bus interno, mentre sul byte
meno significativQ viene trasferito il byte selezionato in base alia combinazione (AoAt) dei
due bit meno significativi dell'indirizzo di memoria. La combinazione 11 per ENW, ENH
non e consentita: la logica di macchina cleve garantire che essa nan si possa mai manifestare. ).

J
ap
:2::1:.:8:-_C=c:;:.:tO:::I:.:O...:6:- __
I
\

EN'" ENH Bus


,.,;
\ Int Bus
L..=> ~.,.
rno ,

I r-
7
-I , 0...31 -"- I'- "

J ,
" V
" 0... 31

","
., "
.
I :.'

I .
,
~ ..
0 "
16...31

\
0..,15 J

" V 0... 15
t' " \

AI

I ., ,

I ~ , 24 31
0... 7 , ~ 16 23

I V 8 15
, 0.,,7

AlAO

I Figura 6.6 Schema per la memorizzazione di una parolal una semiparola 0 un singolo byte.
Si, tratta della schema duale del precedente relativo al caricamento. Per selezionare il data
da scrivere in memoria, si usano gli sLessi segnali di cantralla usati per la lettura. Il segnale
EN'W abilita la scrittura in memoria della intera parola. Quando ENW e disasserito entra
in gioco ENH a stabilire se si tratti di semiparola 0 di byte.

I
,I
..
I
La pipeline 219

4. Istruzione di ritorno dall'inteITuzione


• RFI (Return From Interrupt).
,
,' . It l'istruzione che consente it ritorno dalle interruzioni. Nella parte che segue
,. essa non viene aneora presa in considerazionej la sua anaJisi e rimandata aHa
,. sezione dedicata aile interruzioni (Cfr. 6.13).
5. L'istruzione di non operazione
• NOP ( No Operation).
Gia descritta. Essa non modifica alcun dato,
, ne genera alcurt risultato.
.
" . Vunico effetto e l'incremento di 4 di PC. E conveniente codificare NOP
come una stringa di zed.
In Tabella 6.3 viene riportato un esempio per ciascuna delle istruzioni del reper-
torio.

I Mnemonico I Operazione I
I ann ,A~
n __,_, RA Rh
"_,'>V II R6 t- R5 + R8 I
LB R3, 30(RS) 1M...." (M[30+R5]Q}''][M[30+R.5]
SB 40(R4). Ril-TM[40+R:4j t-, Rll,..31
I LH R6, SO(R2S) RB t-" (M50+~o)"11 M150+R25
I SH 30(Rll). R14 M130+Rll t-16 ttl 16.. 31
LW RiB, 40(R5) I Rl6 t-" M[40+R5J
SW 20(R12), R4 M 20+R12 t-32
JE R3, R4, off set if R3=R4 then
JMP target _~~ I PC t-lNDx4

JAL target ~R31 t- PC; PC t- iNDx4
JR R23 PC t- R23
NOP

Tabella 6.3 Esempi eli istruzioni. Viene riportato un esempio per ciascuna differente istru·
zione (con l'esclusione di RFI di cui si parla nella seconda parte del capitola). Le istruzioni
aritmetiche e logiche vengono esemplificate dall'istruzione ADD. La NOP ha solo l'effetto di
far incrementare PC.

6.4 Esecuzione in pipeline


Nel seguito faremo regolarmente riferimento a una pipeline costituita dai seguenti
cinque stadi 1 :

7Si noti che i 5 stadi corrispondono aile sezioni componenti CPU2 (Capitola 3). II nostro obiettivo
e arrivare a progettare l'uniU. di contrallo per la stessa architettura nella ver13ione in pipeline.
'.
220 Capitolo 6 ....
,:-,~.jl

J 0~(tv! r,'
• prelievo dell'istruzione (IF);
~. j
(,,\/
j.
. 1....,
\ '

.r ~. I
-::i 1
-;:' • .
'.:;:1 "
• decodifica dell'istruzione e lettura del contenuto dei registri (ID);
' '~(o))'jJ'
' ..
,.~J

' <:".
'.

,,::.;"1,
• esecuzione (EX); :; ~ ,- ~,' \ ' r ' t ',;'
. ·~·I::,
• accesso alIa memoria (ME); }).:/I/r: n / '\ )."0 ,j,~ ,..,r
'" 'i::' .
, ,1
• scrittura nel registro di destinazione (WB). / ,1 1\.' ',' r. "
.: '"-
'.', I.

:1.•'
In Figura 6. 7 la pipeline viene disegnata in modo da esplicitare i nomi dei registd ;c....
interstadio. "- ,.I',
", .,
IF/lD lD/EX EX/ME M~/WB .'"
I I I I I I
..,
,
IF ID EX ME WE .
'. ,.'.
,",

~;'~Y
",.'

Figura 6.7 La pipeline di riferimento a 5 starn. I nomi dei latch intermedi identificano
a.uto~aticame~te gli stach .che li ra~~hiudono. II r~g~stro pili a sini~tra (IF/~D). corrisponde '':-·,jlc
al reglstro IR cil una macchina multlclclo. I succeSSlVl contengono Ie mformazlODl che servono . "
agli stadi a valle; queste informazioni sona in parte propagate dal registro precedente (pet ;/;._
esempio, J'identita del registro cii destinazione), mentre altre sono generate dallo stadia '-,';:1.'
precedente (per esempio, 1a ALU scrive it risultato dell'operazione su EX/ME). " ::.':
,,", I:
, :; .:
", '
D funzionamento della pipeline e schematizzabile come in Figura6.8. Varea
ombreggiataindica che, una volta passato il transitorio di riempimento e cioe a partire . : 1--
,
dalPimpulso di clock T s ) se la catena continua a essere alimentata, tutti gli stadi sopo
in azione e tutto avviene come se in un periodo di clock venisse elaborata un'istruzione
per intero. In altre parole, tutto avviene come se fosse CPI=1.
La Figura6.9 fornisce una prima indicazione dei componenti principali dei singoli
stadi e delle funzioni svolte, come descritto qui di seguito.

• IF - Lo stadio IF svolge la funzione di leggere la prossima istruzione alPindirizzo ..,"i.,


contenuto in PC e di depositarla in IF lID, in un campo che continueremo a chia- .
,
''., ..
mare Registro Istruzioni (IR). In Figura 6.9 viene evidenziato suI registro IF lID
il solo campo OP di IR, corrispondente al codice di operazione dell'istruzione .,.-;
letta. L'esecuzione in pipeline presuppone che a ogni impulso di clock PC venga '.,"

iricrementato di 4, per .essere pronto per il cielo di clock successivo.


..,
':, "

• ID - Lo stadio ID e responsabile della decodifica del codice di operazione e della


trascrizione della decodifica sul registro ID lEX, in modo da determinare Ie azioni '
svolte dalle istruzioni nello stadia EX e in quelli successivi. La decodifica di OP cia
luogo alla scrittura suI registro ID lEX dei segnali di comando, che determinano
Ie azioni svolte nella stadio EX e negli stadi successivi. Questi segnali sono sta.ti ".:.
e
suddivisi in tre gruppi, ciascuno dei quaE relativo. allo stadio in cui ha effetto; J,

essi costituiscono tre campi distinti suI registro ID lEX, e sono stati denominati
rispettivamente EX, ME, WB. La Iogica corrispondente allo stadio ID, essendo
.'
" ',!
.....
, ,
.,....
'i#;i?';':
~[t;J\:X
L
)
d.,<-i,).·' a 'pipe
l i ne 2
2 1

1':L:·· -
~'
"-'_/,: ,- ,.'.
t


1
T, T2 T3 T~ T~
I I I I I I

,': :;::. I __ I __ I I I ....'1


,. 'i '

.
-.,
W'B
ME.. ,.I: "<'!':fl. I
EX. I .. M~ WB

- m t EX' ME I WB

'
:",

If·: . J ID EX!MEIWB
)
m EX ME I WE
, '"
Figura 6.8 Esecuzione delle istruzioni in una pipeline a cinque stadi. Lo schema evidenzia
che dura.nte it periodo di clock T 1 viene prelevata 1'istruzione i, sul clock T 2 viene prelevata )
!'istruzione i + 1 e decodifica.ta l'istruzione i, su T3 viene prelevata. l'istruzione i + 2, deco-
dificata. l'istruzione i + 1 ed eseguita l'istruzione i e cosl via. Questa modello di pipeline
corrisponde a queUo delle CPU MIPS R3000.
)
quella che comanda la modalita di esecuzione 1 costituisce in pratica l'unita di
c:., , controllo.
" "
_
'
La. propagazione dei campi ME e WB, attuata su ogni clock per tutte le istruzioni
(Figura6.9), si esprime nel seguente modas:
I
: ,,' EX/ME.WB +- ID/EX,WB
EX/ME.ME +- ID/EX.ME ]
ME/WB.WE +- EX/ME.WB
,,'
-; .

", '
AlIo stadia ID viene aggregato il file dei registri RF. Durante la fase corris-
pondente, U contenuto degli eventuali registri identificati dai campi Rsl e Rs2
dell'istruzione viene reso immediatamente disponibile per 10 stadia successivo9.
I
.

• EX ~ In questa stadia vengono compiute Ie azioni specifiche dell'istruzione) co-


mandate attraverso i segnali contenuti in ID/EX.EX. La ALU viene usata in )
. modo del tutto analogo a come e usata in CPU2. Al termine dello stadio EX,
le informazioni in uscita dalla ALU e i campi da propagare vengono copiati suI
registro EX/ME.
..
)
• ME - La stadio ME interviene solo per Ie istruzioni che fanno accesso alIa me-
moria (LD eST). Nel caso di istruzioni di caricamento,lo stadio ME deposita su
ME/WB il data letto in memoria, per 1a scrittura in RF da parte di WB.

• WB - In questa stadia si completano Ie istruzioni di caricamento e Ie istruzioni


aritmetiche, scrivendo in RF il dato presente su ME/WB.
I
SCon la notazione R.S si rappresenta il campo S contenuto nel registro R.
)
9Dipendera dal codice di istruzione se it contenuto dei due registri letti verra usato 0 meno. La
lettura in fase ID consente di anticipare i tempi, senza imporre alcun costa, in virtu della regolarita.
del formato delle istruzioni che permette di identificare immediatarnente gli eventua1i registri sorgenti,
,
--
essendo la loro identiti in posizione fissa nel corpo dell'istruzione. )
,.
, ,,.
~~','.(
·:!i'll-
,~~~:~
:J:rh~'

:2::2::2_..:C::a:,p::i::tO::IO:..:6~ _
i!;\'.~", 1
'Ii~:'/';',"

\ "~4'
"'l':fi'~'" .
;~~';':~
fl:o\...., , ,:
',_r' "~':'~':""
In Figura 6,9 viene mostrato anebe UP altro campo cbe si propaga da lD JEX
a ME/WB: il campo RW, Esso contiene la codifica (tag) del registro eventualmente ·,! ,,?,)
scritto in fase WB (per le istruzioni aritmetiche si tratta. del registro individuato dal
J;..;'\.
\ ;) .i"':.
_.:J :<:'~,.
campo Rd dell'istruzione).
Mentre i campi finora descritti hanna significato univocol ci sono campi che in
base all'istruzione assumona diverse significate (come per esempio ALUout di cui si :."ii~ ,;:~:,:,.:
:j .••. ;

\
parled. tra poco), n 10ro significato viene illustrato nel prossimo paragrafo attraverso ~ ..; ':. ..
~lr;
:! .;':.;,,'
un esame dettagliato, istruzione per istruzione,
'.",
IF /ID IO/EX EX/ME ME/VB
~ ~
v, v,
r",
, .j" .... "
-'.2
·:~:.\~t :::::;~
~
vo HE;
\
[J r:l e' 0 ·
'r:} ,':.:,,:,
... ,.r
", ~,f j't.:;::,
LJ leu LJ R -'. '...
"J:; ":,i-:'-':.
·..:;' .:J::?
.,'~'J"

\ ~
V
~
p
c '), ',:::.:C
r:l
LJ .v .'::':' :.-
'"
· -, ""-'--)
",!,'
"',

'"
,"
L ~
L:: '- '-'" "
:i',~ 1,-""
\ Figura 6.9 Componenti principali degli stadi di pipeline. Lo stadio IF si compone essen. ""i' :-:.;'~
''
· '."1' ',.-.-
,:;, I~. ':_
zialmente del PC e della memoria istruzioni (MI), che assumiamo separa.ta da.lla memoria "";':::"
dati (MD). La stadio ill comprende it bloceo dei registri RF e ls. logica di decodifica delle, · ';'1 ,:,::.t;
:(1 .:.:'" ·
\ istruzioni E la decodifica delle istrozioni che determina le a.zioni svolte nelle fasi successive: .: ,,'0
I in pratica si tratta della parte essenziale dell'unita, di cantrollo (DC). Lo stadio EX contiene ,./. , \ '\
:',.i .. ~.'
":"
l'uniU, aritmetica e 10gie3.; 10 stadia di memoria si riduce aUa memoria dati; infine 10 stadio
.~ ,:~~~
,:;,,,,
,.~-."
"

di scrittura dei registri si compone della sola logica che comanda 130 scrittura in RF. La
decodifica del codice istruzione da. luogo a tre gruppi di segnali, rappresentati dai campi EX, ~.i'I\\ . >:t
I ME e WB, ciascuno dei quali e relativo al corrispondente stadia di pipeline. It campo EX)
esaurisce la sua. funzione nella stadio EX e non viene propagato oltre; il campo ME viene
propagato fino al registro EX/ME esaurendo la. sua. funzione neHo stadia ME; il campo WB
·
~; (-;':::
. ,""
" ,: ;'p"!:
,.,,'
percorre tutta la pipeline e comanda I'ultimo stadio, ::. ' .'

I :-', :/.
,~

.;
"....
'<'I
·
," LL·.
::-;'.
"

"
~<" ,

.\
I I6.5 Le fasi di esecuzione
'
,i , '.-
· .

"
G Ii schemi proposti nella parte seguente si riferiscono aIle specifiche istruzioni conside-
rate. Per esempio: Ie Figure 6.10 e 6.13 mostr~o ambedue la sezione relativa a PC, rna
\ e
mettono in evidenza solo quanta pertinente alle istruzioni illustrate dalle medesime . "I
d ':
figure. L'integrazione dei differenti schemi cestituisce argomento per la prossima , ..I,

sezione (Cfr, 6,6,1), _c,


,
".
Si resta Fedeli alIa convenzione di indicare i segnali di comando solo se asseriti ,
\ (ossia a 1 - logica positiva), sottintendendo che essi valgono 0 quando non asseriti.
d,

Invece, per quanto si riferisce ai segnali con funzione di selettore, la 10ro codifica viene
e
riportata solo quando pertinente rispetto ai segnali di comando asseriti.
Prima di procedere nell'esame del comportamento delle differenti (classi di) i- :. '
, \
struzioni in pipeline, occorre ritornare Bulla ALU 1 per denetare i relativi comandi in
una forma piu conveniente di quella vista al Capitolo 5. 'l -." :'
\ :',
, '\
'
.-- .- ,

" ".:"

\
..~\;T:::'.
\,:'
( ',"
- .:
~', -',
" La pipeline 223
1,<'.
" ___
.":-
~:' 'Contrnllo della ALU Al Capitolo 5 (Figura 5.9) si e visto che la aALU viene co~trol-
)': I.t. attraversO OPALU, ~be assumeva tre dlstmtl valon (denonun tl m forma slmbo-
. . lic, ALU, ADD, SUB). L IstruzlOne JAL nchlede che la ALU faccla passare m,uSClta,ere
.'. sen", alcuna modlfi~a, II valore presente sull'mgresso B. SI tratta ClOe di agglUng
.' a nuova pOSSlblhta attraverso OPALU. Questa Clrcostanza offre l'occaslOne per dare
' d ' T b 11 64
:,.,-- '3unOPALU lao co d'fi
1 ca numenca 1 a ea ..
"

;
,
- '.

[AUJOut ~ .
mALUJOPAL
~ 0
U1
! OPALUO i
u I u
n l
B 1
1 0
~;>
A+B
2 1 0
A B
-A-fALU B 3 1 1
:, . I ,
,:'"
"

?'.:'I.'_--: 1.'abella 6.4 Codifica del selettore OPALU. Le colonne OPALU1, OPALUO danno la
C~."" '.,', codifica bin aria.
' 'i '
, ,.
)!"
."
"
" ,,'
'--.
~:;';'~."
''0 .
_,;-;., ..
.:" ,,'
;:!,.:;' .
·'.'l'•.
0,", 6,5,1 lstruzioni aritmetiche
-j, ' .',
"':,
',. -',
,,,' ,,'" .'".,
~~~~; '...·Come al solito facciamo riferimento all'istruzione di somma (ADD). D suo trattamento
t~~: :."" e ~chematizzato in Figura. 6.10,
:::':':',' ,. ,
" -', .
:·. '.
'.- • Fase IF. pagma 220, La Figura6,10
,,'::':, Riguardo a questa fase si veda quanto detto a
'.
.', . . evidenzia l'incrernento di 4 a PC.
'

,.:-.;'
",
• Pase!D,
-
,. L'unita. di controllo decodifica OP e assegna i valori sotto riportati ai campi di
ill lEX. Vengono letti i registri sorgente, se1ezionati attraverso i campi IF lID .Rs1
e lFj!D,R.s2. 11 lora contenuto viene copiato nei campi (a 32 bit) IDjEX.A e
!DjEX,B; questi due campi forniranno gli operandi alla ALU. In lFjIDJALU e
codificata la funzione specificamente richiesta dalla medesima.
,.' • Usando 130 nostra. nota.zione, i comandi, i selettori e gli assegnaroenti di interesse
sonG COSl espressi 10 : .
~

\0 Alcuni di questi assegnamenti vengono attuati in modo indiretto dalla. logica di controllo. Per
esempio, I'assegnamento ID/EX .RW ~ IF IrD.Rei e determinato da. un selettore cite presenta IF IID.ad
come ingresso a lD/EX,RW. Come abbia.mo vista, quest' ultimo campo viene scritto su tutti i dock
cd e il selettare (0 i selettori se piu di uno) a definire l'ingresso. Per iI momento, Della descrizione
, che segue, quando I'identita. dei selettori e ancora non ben definita, ai mostranO i trasferimenti. Pill
avanti si dara corpO ai selettori necessaxi alloro verificarsL
' '
.x
"
,....r
..

,J
224 Capitola 6
.,..
__ ::~ \i . ~ .'" .

;!, :'

IF'IID
:,::' .:,
, ,.d. .,

.•, ""'- • . .~,


"(..'1 i"~
"~'"'
F:
,.~
.
""
uc 'OlU
" \'
:~~.
..,
:

~,
,., •
1iM1",..

.
,
.:".,;
'I
~~
,

LUI "::~I .I::~~ ....


"

-Lj~H:t.
'," ,~

RF -.~ )
• • , ..,,~

"" i!:.-
· ..
-• , I'I!~ ·,.,'I'..
..

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

.,
-.''' e
li'l ;
,
Figura 6.10 Scbematizzazione del processo di elaborazione di un'istruzione aritmetico- ~':
logica. n campo ill/EX.EX contiene i comandi per la ALU: OPALU e ALUMux (ALUMux . 'f
seleziona IDjEX.B come ingresso B ALU). Per semplicita non e stato indicato il bloc :"'~~I
co
ContrALU. La fase ME non e richiesta: per questa motivo non viene mostrato il campo .. ".r:
ME sui registri di pipeline. II campo WE deve contenere it eomando RWrite e presentare it (
selettore MemToReg disasserito. n campo ID jEX.IMM potrebbe essere di 11 bit tuttavia : _."
l
poiehe essa viene impiegato dagH altri tipi di istruzione) eonviene che esso sia a 32 bit (i1 '.,'...
bloeeo X ha questa funzione, anche se la sua presenza e del tutto pleonastica, in quanto e
del tutto irrilevante cosa venga scritto nei 21 bit pili significativi di IMM). "'.' -
",

ID/EX,EX,OPALU +- 3 '. 1 • ,

ID/EX.EX.ALUMux +- 0
ID/EX.WB,RWrite f- 1
ID/EX,WB,MemToReg +- a
ID/EX.A f- RF.A
ID/EX,B f- RF.B . "

ID/EX.RW f- IF/ID.Rd .::~.


,.
ID/EX.IMM f- IF/ID.fALU
• Fase EX .. ,

La ALU esegue }'operazione specificata dall'istruzione sui valori letti da RF conte-


nuti in ill IEX.A e ill IEX.B. n risultato dell'operazione viene posto nel registro
,
a 32 bit EX/ME.ALUOut. Dunque, oltre ai trasferimenti standard gil!. discussi
nei Paragraio 6.5, si ha:
EX/ME.ALUOut +- ALUOut
• Fase ME
Le istruzioni aritmetiche nOll prevedono accesso alIa memoriaj ovviamente ven.
gono propagati i campi WB e RW sU ME/WE.
• Fase WB
II bit ME/WB.RWrite, coUegato all'ingresso RWrite di RF, essendo asserito,
determina la scrittura nel registro selezionato da ME/WB.RW. La scelta di
ME/WB.ALUOut come sorgente del dato da scrivere automatica, grazie al e •
segnale MemToReg (che ora vale 0). .'
.
"'-'"
",,,oj!.' ..
'''~;:;'~'
_. ,
;Iii-""
- .
]
,Jrf~~,'/'.
~ ~.:"
i;":;<;:.
N'· .,.
La pipeline 225
',;;i'I':~';
,. ~. '••
,-r..." .... ',
~:.·:'·.,. .'
-
]
:::>
'''' '
6.5.2 Istruzioni di Load/Store
::-;':~:
r,,,_
. _Gli aSpetti rilevanti sono illus.trati dal~a Fi?ura6.11 per Ie istruziooi di carica.mento e
.,'
-, ", dalla-Figura6.12 per queUe dl memonzzaZlone. 1
.- . ;

.... .
"
)'

-
'

"." HE/VB
,,"".
., ." lr I£D
. '.. . "f1' CEl= 1
"

'
'
",'
"
'
uc
.'

.'..
, , '. "
'.",.. , .
e··. . \ IMI
I
• I
;";'" ~
," "l'.
RF
..1.
~:._" ;_11 .......".
\
..
I
:'·· '. J
,
, -.
"" ""
-;..,.;
- " '-
I
,.


1
\
,
.•, • Fase IF ,
I
..
Esattarnente come per Ie istruzioni aritmetiche.
,:
• Fase ID )
II contenuto del registro Rb e copiato BU ID/EX.A, mentre il campo OFFSET
delllistruzione eesteso in segno e copiato suI registro a 32 bit ill IEX.IMM. Vengo-
no anche opportunamente asseriti i selettori ENW e ENH l in base alIa dimensione
del dato trasferito (riconoscibile dal codice di istruz-ione). I
Nel caso di Load, il contenuto del campo Rsd dell'istruzione viene copiato in
ID/EX.RW per essere propagato fino aUo stadio WB. Come indicate nella didas-
calia di Figura6.11, la selezione si attua semplicemente usando it segnale MRead,
che risulta asserito solo per Ie istruzioni che usano Rsci come registro di desti-
)
nazion... Net CMO di Store, il registro Rsd viene letto e copiato sU ID/EX.B; il
valore letto si propaghera. fino aIlo stadia ME per la scrittura in memoria.
Le parti comuni a LD e ST sana: J
"
"
- ·-;':

I I 226 Capitola 6 _

, ., :.~ .
"'J'
,i",
1) ".'
,; '::
~.'

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


ID/EX,EX,DPALU t- 1 'tl ...
ID/EX.EX.ALUHux t- 1 Operazione di somma per la Atu '.:~(:"

l
I . 4
ID/EX.HE.ENW t- 1 ; ID/EX,IMM COme ingresso B AL\J, ~/.""
ID/EX.HE.ENH t- 1 ; per LW/SW, 0 in tutti gli altri casi :';:.,l.,.:-
ID/EX.A t- RF.A ; per LH/SH, 0 in tutti gli altri c""i ,~','
,
ID/EX.IMH t- SExt"CIF/ID.Dffset) ,'.1;'
,I, "
"

I Per Ie istruzioni LD:


ID/EX.WB.RWrite t- 1
; Offset esteso con seguo a 32 bit.
..
.. ' ~.{.
,

ID/EX.WB.HemToReg t- 1 ; comanda la scrittura di RF nella stadio WB,t'


; seleziona iJ dato letto in memoria.
I ID/EX.ME.HRead t- 1

Per Ie istruzioni ST:


; lettura della memoria dati e selezione
di IF/ID,fuld come ingresso a ID/EX,WR
....,
,.,: •
..
"~"

~,

y
,:'t
','I
ID/EX.WB.HWrite t- 1
I ID/EX.B t- RF.B ; camanda la scrittura in memoria
; data per la memoria
-,!~,
,.
,'
IFlID
ID/D: EX/ME ..

I ~,
~\I,'it. ME/VB
_'...... 111. ,
uc ~

,.
!lVtlI.
.,,

~" J..+---I _. "


I
{~

'n '/1111 ,
,1:l' "
'

II .. I/lR~ •
RF
Lui ol::::t-I-00-1 • MD ,..
,I •I , h ••

I, 'I t
:-'1

..
,
"
..,
I Figura 6.12 Schematizza.2ione del processo di elaborazione di una istruzione di memoriz-
zazione (ST). IL blocco SX estende con segno iI campo OFFSET. It contenuto del registro
.' ~
.
,

Rsd viene fatto propagare fino allo stadia ME per la scrittura in memoria. "
•,
I • Fase EX
,

,
I In questa fase, la ALU somma gli operandi contenuti nei registri ID/EX.A e
ill /EX.IMM. La sola operazione notevole e quella satta ciportata, in quanta per
il resto si hanno i normali trasferimenti <Ii ME e WB da ID /EX a EX/ME.
EX/ME.ALUOut ... ALUOut
,
l • Fase ME

I segnali nel campo EX/ME.ME determinano I'operazione di memoria eseguita ",


(lettura 0 scrittura) e I'entita trasferita (parola l semiparola 0 byte). L'indirizzo
I e
per la memoria in EX/ME.ALUOut. Le istruzioni LD caricano iI data letto in
ME/WB.MemDat. Le ST memorizzano il dato in EX/ME.B ~ non hanno seguito
in WB.

I I . 't'
"
":n>"
":7t:~'
:;'.f .
', La. pipeline 227

• Fase WB
In questa passe si completano Ie istruzioni di tipo load.. La selezione di MemDat
e attuata tramite ME/WB,MemToReg,

6.5.3 Istruzioni di saito

Nella trattazione che segue, si distingueno i casi delle diverse istruzioni di salta, in
riferimento aile Figure 6.13, 6.14, 6.15 e 6.16,

-
jrl/D
~
ID/EX

... uc ~
~ ',.~_I
oX. .4..

""..- I~,
r ',
" "
J ._LU
I ItTr- lllll ~ l--
ft. ,
r~,-d:;1f!~ RF • f---l:.--
-J..j~, . '~, I •I

II ,I ~'~":::B'~~
I
Figura 6.13 Schematizzazione del processo di elaborazione delle istruzioni JE e JS. In
. IDjEX.PCl viene copiato I'indirizzo deU'istruzione successiva a queJla di diramazione. II
campo OFFSET viene moltiplicato per 4 ed esteso a 32 bit dal blocco SX4. Nel testo questa
..processo e indicata come SExt32 x 4(IFjID.OFFSET)

• Fase IF
La IF si differenzia leggermente nel caso di istruzioni di diramazione (JE e JS),
in quanta occorre capiare BU IF lID anche il valore di PC, che risultera utile
nella fase successiva per calcolare l'indirizzo di destinazione. n relative campo su
IF/ID e stato indicato come pel.

• Fase ID
Viene calcolate l'indirizzQ di destinazione dei saltij inoltre, le istruzioni per la
chiamata 0 it ritorno dalla subroutine leggono i registri a loro riservati.

o JE, JS:
ID/EX.EX.OPALU t- 2
ID/EX.EX.ALUMux +- 0
ID/EX,A +- RF.RRI
ID/EX.B t- RF.RR2
ID/EX.IHM t- IF/ID.pe1 + SExt" x 4(IF/ID.DFFSETl
228 Ca.pitolo 6 ,:;;.
'~"eI1
.;::;.;:
~i
-...... .'::. {.
,.
" ';.1.1,
,. '"
, i
Inoltre: ..
'/;''i
,~,
"

per Ia JE: ID/EX,EX,JE 1 '-it:.:


• .\;'
per la JS: ID/EX, EX, JS 1 ',tJ
,;"
" ", -,

JMP:
,. ,.
o ..:.,;
F
"
Uindirizzo del salto viene scritto su ID/EX.IMM. Per selezionare in ingresso 5~
"
I; ,

a PC l'indirizzo del saito I viene usata la linea JMP. . :[}.1


ID/EX,EX,JMP ... 1 ',:'""1:;
ID/EX.IMM t- Ext32 x 4(IF/ID.IND) ; estensione senza segno. ..' ,'"
ID/EX,ME 0 'iJ
',.,j
ID/EX,WB 0 '~r;11
••'1

e in Figura6.14 ,:t
La schema della pipeline -.'
-'~i
.."
.' ~,
"
; ;'
IF" lID :~,
,I
ID/EX EX/ME
~
ME/Vi
" . '. ..
I.. ~"ti<ln. I .. !I~~
uc I ,-, r - , ..

.--"
'r'
'..j.
".\,
'I

~."

... ,~

,
--+-j~~. """'. 1 ."'.,
:~,
.;.
,
•• 1..... 1----" .''.1'if<
I
'-,
" '.
'ti)
'" '.
',').
;:" ,
"'h.;
Figura 6.14 Schematizzazione del processo di elaborazione di una istruzione JMP. It bloc- ',: i~
co X4 moltiplica per 4 ed estende a 32 bit. II segnale IDjEX.JMP e usato in fa£e EX :. ~
per selezionare I'ingresso a PCj nella fase precedente il medesimo segnale viene usato per "',~:
selezionare Ext32(IF/ID.IND) in ingresso a ID/EX.IMM. :.~
, ..,",
.','
.. , );
o JAL: :,":'
.' :(
Del tutto analoga a. JMP, da cui differisce per il fatto df scrivere il valore 'j
deIl'indirizzo di ritorno in R31. Questa fatto comporta una cecta compli- ~"5
cazione, in quanto 1a scrittura cii R31 richiede 1a propagazione del valore :,,~~
corrente di PC fino aIlo stadia WB, facendo impiegare a JAL tutti e cinque i .;~
periodi i clock, diversamente dalle altre istruzioni di salto ll . Per selezionare ;:".
R31 , si ~uo ricorrer.e a un selettore, a valle di queUo che sceglie tra Rei e Rsd! ':;.0
che lasc! passare Pmgresso fisso "31" nel campo ID/EX.ME; tale selettore '.';
puo essere eomandato can lalinea JAL nella stadia ID, II campo IF JID,PCI ."':
" '.' ,

"

11 A meno di non voler complicare in modo esorbitante la logica di controllo, 10 stadio WB non , "
puo essere evitato facendo scrivere R31 in questa fase, infatti cia potrebbe interferire con l'eventuale "
. ,
scrittura dell'istruzione che si trova attualmente in WB.
'1
ro";".:. _
I
..
.,
~-
~~

'I'''''~-
)
~_it;i>: - La pipeline 229
_ _-----------------------------=::..'-"c:.:-'----
1i ",:"\;
:- ;'.1:'

.,i ""rr,:c. -.-


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

i., , '
"
.'.
'. 'i',',' '
.

viene fatto propagare attraverso la ALUj db richiede che IF/ID.JAL cornan-


1
::
'e ", di i! traslerimento lDjEX,B ...IF.ID,PCl e che la ALU Iasei passare senza
Ji .',
" .;
.; .
,: ... alterazione I'ingresso B (deve essere OPALU=O),
In conclusione si ba:
]
;. .'
F:' . ID/EX,EX,DPALU ... 0
"
~
,
ID/EX, EX, JAL ... 1
1 ID/EX, IMM ... Ext" x 4(IF/ID, IND) ]
;11 "' ID/EX,B ... IF/ID,PCl ; per Ia propagazione di PC+4,
" "
JI
ID/EX,WB,RWrite ... 1
j ID/EX, WB, MemToReg ... 0 ; seleziona MEjWB,OLUout
1; 1"'.
1 '" Lo schema della pipeline e in Figura6.15 ]
t
.
"i I
,

',
,'I··
';-"-
IF" 110
~

uc
_ tD/EX
_,..... I'"
_.
A
- - 1
I
-,-
,
.:.
.
, ~ -I,.,h
:'

'"."
.
~.
.' ~
'

"-

:::1 ·I:;~I-h
I
,, .
1'
.. ' .

,
,
..

f
<
'.,

,,-..l ... I
-,
.
) ,"

~
.( .,-,
"
; -
~:
,
Figura 6.15 Schema.tizzazione del processo di elaborazione di una. istruzione JAL. Nello
stadio ID il segna.le IF jID.JAL viene usato per selezionare: (a) PCl C;QPle ingresso al cam-
po B cti iD/EX; (b) Ext,,(IF/iD,lND) in in~esso a ID/EX.IMM; (c) 31 come in~esso a
ID/EX.RW (il selettore aorrispondente si trova a valle di quello che sceglie tra Rd. e Rsd),
l
: _ .Nello stadio EX, similmente al caso dell'istruzione JMP, il segnale ID/EX.JAL e usato per
~.I ..
."I',,
-Selezionare I'ingresso a PC.
I
',... '
; o JR:
'11"
(\- It saIto indiretto attraverso un registro viene cii norma usato per il ritorno )
j" . dalla subroutine (usando R31 a qualunque altro registro dove estato eopiato
5
l'indirizzo dt ritorno). D campo Rsl codifica il registro contenente l'indirizzo
~
~
.~I'­
0"
di destinazione. Si ha dunque:
ID/EX,EX,JR ... 1
ID/EX,IMM <- RF,RRI
I
;~" La schema della pipeline e in Figura6.16. La selezione della porta A di RF
: come ingresso a IMM e ottenuta tramite it segnale JR,
'rl', 1
" I •
• Fase EX
" ,.
"
,~

o JE, JS: J
1;
J

I I 230 Capitola 6
~
~'

./~
'):'~i

I ID/EX , '.,-'
(X/H(
HENS ::--1'/ _
-- -\1 '

I"r~
uc I l' ir';I .. . :'
'.,

I IA~1

Rr

-L..j~hk-Et. ',': I'

I .
"
'" -

, ,,'

Figura 6.16 Schematizzazione del processo di elaborazione di una istruzione JR. Qui il <i
1 segnale IDjEX.JR e usa-to per selezionare: (1) IDjEX.IMM come ingresso a PC in rase EX. :-
e l'uscita A di RF come ingresso a. IDjEX.IMM. ,. " "

I In modo non dissimile da quanto visto per CPU2, i segnali Zero e Segno, in _"
AND rispettivamente con JE e JS , vengono usato per selezionare in ingresso ,"
a PC il contenuto del registro ID /EX.IMM, ",
--"

l o JMP. JAL. JR:

PC viene aggiornato con l'indirizzo contenuto in ill /EX.IMM (ovviamente _


utilizzando I'OR dei tre segnali per comandare il selettore),
.':::.

I • Fase ME
Nessuna operazione per Ie istruzioni di salto.

• Fase WB
I Solo l'istruzione JAL scrive in R31 Pindirizzo contenuto in ME/WB.ALUOut. <~~,;

"f,1
-';::
6.5.4 Sintesi del contenuto dei campi EX, ME, WB '.

I In Figura 6.17 viene illustrato l'insieme dei campi risultanti dall'analisi svolta. Conviene
- ,.'
,

elencare i campi e i sottocampi di comando fin qui identificati; al prossimo paragrafo;'


questa lista ci guidera nella stesura della logica di cantralla. '.;.,
I • I segnali facenti parte del campo WB sono: ,"I"
.
. ".-

o RWrite: .);1

l o MemToReg:
comanda la scrittura del registro di destinazione;

per la scrittura in RF da parte delle istruzioni load e arit-


metiche.
.. ~';

. ,~

,1:

\ -., ..
"j,
• I segnali facenti parte del campo ME sono:
I ;:

."
o MRead: comanda la lettura in memoria; ",
:!:
: >i~."
> - -,
,
j -: :):.~
h
.
,;-''"''.,
}:'" .
J:i:':~', .
,t_'" .
r
'i.- :;.-
,:
,--' ;
La. pipeline 231

>'"
... ,- IFlID ID!EX
__ .-
"
,
, , •

o¢ 0(> ~ ~ ~
""
M ""
M


.
-
eo,
• ~

'"'

,Figura 6.17 I registri di pipeline IF/ID, ill/EX, EX/ME, ME/WB con tutti i campi conte-
nutL Nel registro IF/ID si trovano l'Instruction Register e il PCl. Nell'IR si trovano i campi
relativi all'istruzione. Su ID/EX, il registro IMM puo contenere sia fALU per Ie istruzioni
aritmetiche che un indirizzo calcolato in varia modo a seconda dell'istruzione. II campo
ID/EX.B e normalmente usato per tenere copia del registro sorgente codificato nel campo
corrispondente a Rs2 dell'istruzione. Nel caso dell'istruzione JAL, ID/EX.B viene usato per
contenere l'indirizzo da salvare in R31.

o MWrite: comanda la scrittura in memoria;


,-,
, o ENW: abilita il trasferimento di una parola;
"
o ENH: abilita il trasferimento di una semiparola.

.- ','-
, • I segnali facenti parte del campo EX sono:

o OPALU: seleziona l'operazione ALU;


.' ..
o ALUMux: seleziona l'rngresso B ana ALU;
o JE: asserito solo per l'istruzione JE;
o JS: asserito solo per l'istruzione JS;
o JMP: asserito solo per l'istruzione JMP;
o JAL: asserito solo per l'istruzione JALj
" ,;'

o JR: asserito solo per l'istruzione JR.


.'. ,

6.6 L'unita di controllo

, .. . La stesura della schema della rete di controllo richiede la ricomposizione degli schemi
che SOno stati tracciati in precedenza.
'.
'"
h":'"
";,.
232 Cap I'tolo 6 ',:
.,
i.:: 1~
.'d'ij.
"
.

",.:. I'
--""'l~:t\ ~r'
.~J:~
.~'J':Yt;
"_
,:.}
'<'It\lf. ':
'/'l:l1 . '.
" '_":.. ' .I
1. Stadia IF '"':"',, "
. . :Ii!', •,.
'·,r'~
• 'J
• .-1 ," •

La logica relativa al PC e alIa memoria istruzioni 1 si traccia facilmente (Figu.·~;} .


ra6.18). Si tratta infatti di prevedere Pingresso alternativo a PC+4 che, COrne "~
abbiamo vista, proviene sempre da IDjEX,IMM, .;'h·' ;
,,' I '
,.,;t ,

""
""JR ...... :,'

.,
If liD
~.

.... PlO.....
'v, ,
- I
"
- '.'
.,..:;1.
',:.'~
..
'co'

h,-t,..... tlcnI
'0'
\...eIIl... :. ."
I • ." c- ';
....
0

,'"'. I'
'-

I
'"~
...,;';
"",~
,
.,
• ~~~:Io ,',';: '
[)( ,"
I Figura 6.18 Logica di controllo della stadio IF. L'ingresso a PC e seleziona.to attraverso: ~
PCMux. Normalmente PCMux vale 0 e PC viene incrementato di 4. Quando vale 1 viene : ,!:.~
I
selez~onato l'ingresso prove~ente da.l car:npo I.MM di ID/EX. II comando ~i lettura MIRead·~\·.
I non e strettamente necessano; estato eVldeuzlato perche 10 stesso segnale 51 rende necessaria . J, :~'
nel caso di CPU con una sola memoria. In IF/TO.PCI viene salvato il valore dell'indirizzo' .~
I dell'istruzione successiva a quetla letta (ovviamente PCl viene aggiornato a ogni clockj ',;;1
dipende dal codice di istruzione se esso viene 0 no usato a valle). ,:.;j:
I '",:1
' .. ·..-1
",....l
,

"";
.
. ~~
~:

, 2, Stadia ID ·, . .'..... \
'
"
"

., 'i'' I
La schema della stadia di decodifica e riportato in Figura 6.19. L'unita di control· ::,~
10 genera segnali per Ia fase ill e per Ie successive. ,I

lMMux seleziona I'ingresso a ID/EX.IMM tra quelli provenienti dai seguenti cam· " :~
pi: (a) fALy, ~on Ie istruzioni di t.ipo aritmetico; (b) OFFSET, con Ie operazioni . :~.
":'1
ehe fanna nfenmente alia memana; (e) lND per JMP e JAL; (d) OFFSET per':'
JE e JS, IMMux viene cadificata come in Tabella 6 , 5 , ' -.:
~".~,
'(-
I [ IMiVlux [1NINluxl I IMMuxO I ,

~TM
L ,ST
0
1
0
0
0
1
"
,
,. '::

~
2 1 0
, JAL 3 1 1 ",

;
, ",
:
Tabella 6,5 Codifica del selettore IMMux. La colonna IMMux fornisce il valore numerica,
Ie colonne IMMuxl e IMMuxO danno la codifica binaria.

-' '"
.... ;
"
, , ; , ' ,I

I
,,~.

'-"'~~I~""
"'~,o, ,
~'"')!~.~".'
... f·t ''''..... ,
"; ,'""
~(;j;.,;/·:,:,,· 1.", ",in"I;....
__ ",..,..,. 233
.... , ••
!'''' ~ . '
'«~';',,,, .
_'~'
.}.-, -
:-':-:.
'.,.'.
I L • ,"
,
._, ov D.o,.. .-tad",
1
.. ' .,' k" o.
.~ , . RIJ,..I-t.,

.• ttl/ex

;".,- '<0
u .....

Co,,"~o'l
I f"" •
-
••
n 1
r
0
R .......
" I-
' LGI_
,_.
...
,

• ,•
~n •• ~

~
" R,

I- P"'T~F
,
l- 1
." I- 'v
, ,
- •, ..
l
0

."
.-

0"
0

I
..

.,


, ,-
c-
,.,
, .. "
,

\
I
," . 'Figura 6.19 L?gica..di cantrolla della stadia ill. La linea. MRead, seleziooa Rsd come r~gi-
, , tro di deshnazlOne In Juogo della standard Rdj a valle del relatlvo selettore, un ultenore
~ . ~Iettore impone R31 come registro di destinazione per PistM12ione JAL. n blocco LGIMM
,; serve a generare IMMux, tramite it quale viene attuata ta scelta principale per l'ingresso a
. "
~"'."":'" . ID/EX.IMM. In caso eli ist~uzi~ne JR, 1.30 scelta di questa ~lettore viene r~ irrilevante d~l \
~, ,:", ,:. 'selettore a valle, che fa coplare In IMM II contenuto del reglstro Rsi. La IOgica contenuta 10
:.:':, .' LGIMM deriva dalla Tabella 6.5 e risultera evidente pin avanti.
:,;;7",' ':' '
",':>':;,:
,C',
.:: 1
'".'
c,,', . A valle del selettore a 4 ingressi comandata da IMMux, un ulteriore selettore a due
"
'"-" -, ingressi forza il trasferimento in IMM di RF.A (ovvero del contenuto del registro
identificato dal campo corrispondente a Rsl), quando la linea JR e asserita. \
\' '
,;

J
I,. " ' 3, Stadia EX
~r'<" Lo schema della stadio di esecuzione e riportato in Figura 6.20. I
I
4, Stadio ME I
I
1'~.( ....'" :.-,~
Lo schema dello stadio di memorizzazione dei dati e riportato nella Figura 6.21. I
due blocchi Xst e Xld carrispondono agE schemi di Figura 6.6 e Figura6.5, tramite

::1> ",
~I
,
,'"" ,
i quali viene trasferito il dato della giusta misura e nella carretta posizione.

5, Stadia WB
I
-.I' ": La schema dello stadio di scritt\.lra dei registri e riportato in Figura6.22.
1
,I: '

'I , '
1
,'

;'L' .
,·0.
: .-.
':'

",
)
;
"
,I 234 Capitolo 6 >
~I
l'
~~
Alto ,.('~!r"
":...1
PCM"'I< ,.':j( J
stndio ....,~

I " ID/EX """ "AC


"" (X/HE •
:
-: ..
'.::..: )
," '.
"~i'~ \
'~i~··
J

...t'\.-:
"
....
,",:'1._
~,~.';I, ~ ""i
VO ",t,·

" "rit~
<E
,,''.~~

" , ",::;M~ :

I A
OP"'LU

S~g"o
E " ;'''If;~ :-
".,.\~,
/'~.~
.. ;
....·1"
.••, ,

. ""'. Zpro
ACU '. "il
.."""
~ ~ ...
,'

"

I
Ou' · ".{t."] ~

• , • ..'.,......1
;''';iI'!j1
· ':,·A\~ '
,.::. ';~~·~;~·
"d~'~:
"..
CO'1'r-"'l.U , ",f''1{'' '.
• .1'.....J ')
'r-IIl:' \
, J"I,,!" -i

I ..
21-31 ~ 'b\~
,,~.l
....•..,..
,,' "'
' l
",,~'lk.;
~~\\'f~ fl
'
.
..
.

Alto
stodio IF
···'''1 .
'~~'4~~4, 'i
, "','I:,~.:I 'I

I · , ... ,ll~ ', .


'.-",ll " "

Figu~a 6.~O ~ogica di co~tro~10 della stadio EX: II selettore.AL1!Mux deve valere 1 solo";~~~ '
s.ulle lStruzlOn1 che f~o nferlmento alia memorl~1 ~unque 51 ottlene co~e OR delle due ~~ '~
lmee ~ e MWnte. 11 se.lettore PCM~ sceglie II campo l~M come lnE?'esso a ~~ i~ ;:~ :
presenza di JMP, JAL 0 JR; m presenza di JE e JS se 5000 venficate Ie relative condltloUi. J;~~'(
,<.
,,-,,,.,,'t'~'!
"'W~~
.".~"." .
\ EX/ME ME/\JB
",,:':' r ,:
,·"'~:Wi A
, ·.W'~ :
IJB
:.',!{.,ilY.i :,
IJB ~~~ «
·j;.I':~
I ME

rl
\Jrite

I
MR~o.d

I • I'ALU
';'~
,-,-.
.
'."~' ~
-""~
,:, '. ·
.;:. -
""\"..-,,
"',:W;.1 ,
'•. "(.'1: "
Read Out .t~lI~ ,

I ALU
Out W'l"'i"te
, 'i";f.!;fjJ'ir
· .,".' ,
.~., , '$
'.;,-~"
., '!N~ ';
.• ,. "'j
.' ':';' "
.'ro.;;: .
'1
~

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

I ,;."
Indir-'zzo
'~1i"
.}~! ~
'·"1 '
• I.'
•.
w, ."
B • '~G',
,"'U
""~l
)"~ ~'
I ___
I

t
Xst
t
Doto


Xld
J..
I
rl
V
IHEM
-I
Dot
",'Ij~
'Vf.l'
l.
,.
'PI' ,'
,'.l:,~
, 'I,
• 'iI,., I
,".1".' '."
.r,.,
I
J RIJ
~

".(ik\ :
';:~ ~
I '

Jt ;
Figura 6.21 Logica di controllo dello stadio ME. I blocchi Xst e Xld selezionano e posi- ,t~ ~
zionano il dato trasferito. I due buffer suI bus datil il cui ruolo ovvio vengono pilotat~ ·:·~n e r
I dai segnaii di comando della memoria. Il blocco F ha 10 scopo eli generare per il segnale di "'~'i ~
scrittura una forma d'onda che eviti scritture indesiderate mentre gli indirizzi si assestaoo.. ',;\a\.,
j

.$ ,
, ",f:'; >
''.......
.' l
,

I
.-'" .~, P
( .>:"' l
· '~I\!"'~
" ... "
'
1'~~': -
..~ "'1;',.,.,
]l "I:
,'1'_'1.,<,.,
. . '··"'..
."
>~,j:~r:,:' La plpehne 235
I;\t.~,r ',. ,,~
'iI:b:i,J:; .. '
~~·\...k:,':· .
'fJ'"1 '.',"~',.- : .
:J'ol
J,II.,.,- •.•.
'
),;1,-:,:.
..
J<" . RlJrit~
\!~; ..... ~ Allo stodia 10
·r·:. '
{l:', ~·Z .•
.....,. "'.
ME/VB
i~~i;,,:~;:·i- ': ,'. ,
"",':1'

"'/i'" .'.'," VB
M~f"IToReg
:,(:.:t"(;("'i'~'"
,.r· .
-;l-,<;t}': ',>r';
c.
;·.~V:::,(,'·'·:
,'1-.-, -.. _"
'~"" .. . ~~~
Ou
~·i·,· .
" ,>~..,,' ',',.'
".>'", ,.• ,
~I,;~,.;
'
0
.,. ...\.:"
1:/'" ~
'~""" f,' ..< 1
~·:··':·'1
' ,
'." ..',
:":"r'"
.;.'." ::,.. ',,' •.
). 'I": '.' '... ".;
~"'.. " .. "
\.i):':"'-' .'.' .': .
""
Do
......
"'!:::';:-.;'
';' . .'.
..... '.,' ..
r'."-...~ .'
.~,.,..~,

''$"",.'i~'';!'
flO',. ,:,'" "V
.."." ...
iii;:'::'''':''",> ,; '.
II" :,•.\:.,.," ", Alto stadia I I
", • '..

'~~~\":-':""~: Figura 6.22 Logica d,i c,ontr~lIo dello stadio W~, II selettore .M~mToReg stabilisce ~os~
.. "'Ii' ,...' ,'.'

~'~.;.,,~;;_,~~;. viene scritto in Rd. 51 ncordl che su ALUOut 51 pub trovare 11 ~lsu1t~to delle operazlODl
:~;:'£.'.:-. '::aiitmetiche e logiche, ma anche l'indirizzo di ritorno salvato dall'lStruzlOne JAL (che sara.
(~; :".(,', Scritto in R31).
....
!,,.,,,.,,",,
.
',~, ."
,'"',,

:·,\'-r·j,.-I, ".
~":"

A~\·'. ,~" '


::N'';,.;' ~i
,/!~I.," ;." ",
«'JI..{.
.r.,,.·,, ,
~.i<'''' .".
~."
·"ll:';':
-!..f,',.,
.... .-
. I n OpO I Opl IOp2
--
I Op3 I Op4 I Op5 I
,11,' '
,:"'';''... ;::,,' A~ 1
1
I 1 1 1 1
",ft',J"" "
,r-;.':"":'
0 0 0 1 1
1.\,:,,:,:.,:, LB 1 0 0 0 0 0
,"'.,.
$;\",
~.. ..
;"':'" '.,
,
LH 1 0 0 0 0 1
..}I."
",i,:.;, ..
.• SW 1 0 1 0 1 1
'to ••, .
,",'.,
"" t .• ' "
:r SB 1 0 1 0 0 0
"-: .. ,
.
{.,l. I., ••
SH 1 0 1 0 0 1
~;':\::+":::'" JAL 0 0 0 0 1 1
'.,." ."
.... JR 0 0 0 1 1 1
"""
,.'
'"
',', ..~,
(~:+" JMP 0 0 0 0 1 0
':t:..': .:. E 0 0 0
r"
'~;
.. ,
,'/". ,i
.

-ritn 1 1 1 -{- { 0
0
.':: i '
',~
NOi' 0 0 0 0 U 0
I,.. '
,
..
'.",'.' ". ,.., '
' .

:~!>': Tabella 6.6 Codifica delle istruzioni. Il codice operativo del NOP e un campo di soli
~> e
zeri; per Ie operaziooi aritmetiche stata scelta una. stringa di 1. Per quanto riguarda Ie
;" ;.. a1~re istruzioni, i primo lore bit eli OP (OPO, OPl, OP2) iodividuano il tipo di istruzione
~,~ ~ (nferimenti aHa memoria 0 saltO, mentre i restanti codificano l'istruziooe all'interoo della
r, ..' . dasse di appartenenza.
~J .:.:, '..
,>'
,. .
>"\
" '
·t.,·'···'
P" ':
l;" 'I,
'~~';":.":
",.,
".:1' ,•.
'"
236 Capitola 6

6.6.1 Realizzazione dell'unita di controllo

Siamo Ora in condizione di tr.cciare 10 schema dell'unita eli controllo. Occone an,;:tl
tutto assegnare una codifica a ciascun codi~e
di operazione. L'assegnamento riPorta~;;:I~I:
m Tabell~ e
6.6 stato scelto nell'mtento dl semphficare la rete nsultante. L'unitl. df!~
controllo e una ;ete combmatona che decodlfica Ie smgole Istruzlom e assensce Co.'j'\
mandl e seletton m base alia codlfica scelta m Tabella 6.6. Ne nsulta la Tabella 6.7\~
tramite la quale si traccia la rete di Figura6.23. . ';~j0
I ::n ARJTM I LW [jw I JMP I JE I JAL I JR I LB I LH I SB I SH I -':'it~
Nap
'!~ , ;~.!,<!
0 i""~
1 MI ean 1 1 1 1 1 1 1 1 1. 1 1 1 .i!7
--
IMMuxl 0 0 0 1 1 1 - 0 0 0 0 ';:~
~':iJ!.l
"!iI"
'.,);~
lMMuxO 0 o
1 1 1 0 1 - 1 1 1 1 0 •

OpALUl 1 0 0 0 1 0 0 0 0 0 0 0
OpALUO 1 1 1 0 0 0 0 1 1 1 1 O'"'(.i~
MemToReg 0 1 0 0 0 0 0 1 1 0 0 ,"i~
O.,;tj\
MWrite 0 0 1 0 0 0 0 0 0 1 1 0 ".":'I
MRead 0 1 0 0 0 0 0 1 1 0 0 O. '_~{,
ENW 0 1 1 0 0 0 0 0 0 0 0 O',,~
ENH 0 0 0 0 0 0 0 0 1 0 1 0 '. " !~
RWrite 1 1 , 0 , 0 ! 0 ! 1 I 0 I 1 I 1 I 0 I 0 I 0 ';',~]1
,~~
d. .~:.r..li
7
Tabella 6. Valori da assegnare ai segn.1i di controllo in relazione .11. codific. della · ,'" 'I
.... ~l"
".~
precedente tabella. Si noti che per 'I'ipotesi di doppia memoria MIRe.d e sempre asserito 'eA'
. ,,;:,~
. ,-\"1
',"";1
· i;-r,
-'ii'
• , , ,.'j,
,
" """,
"'";.",'

6" 7 Conflitti ·;~:~~


· "hri:
, "ll
.:':';
'-I '~L:;
· <I:~
Poiche la combinazioDe delle i,truzioni che pO,sono trovarsi in e,ecuzione nella pipeIiDe:,)lli'\, • "J _

al geDenco "tante dl tempo non puc prevederSl, SI POSSODO ve"ficare confi,tt, dl vano ,''''')
genere. Esistono tre clas,i di confiitt!. .8;
c • C6Dfiitti strutturali; insorgono per l'uso di una medesima risorsa da parte di piu':'''!
stadi'~i;,-,,':,

• Conflitti dati: nascono quando un'istruzione dipende dai risultati di · .


zione precedente. una istru- :':Y\
1'1
'-:;j,
• Conflitti di controllo: derivano dalla presenza di diramazioni e da altre istruzioni J",
j che modificano il contatore d.i programma. ':.~

~"
• ,'i
",~~
In presenza di conflitto la soluzione piu semplice consiste nell'arrestare la pipeline
fino alia sua eliminazione, generando una situazione di stallo. L'aspetto negativo di ?t{
questa soluzione e la degTadazione delle prestazioni. "'..: 'I'","
".
"N~
La restante parte di questa sezione tratta i confEtti strutturaH; agli altri tipi, di ,:,-~,

cODflitto sono dedicate i paragrafi 6.8 e 6.9. '. ,I


. ";'

c",
,..
_.
',- I
· , I
1
~'¥.~':"
i'$~':;'';:: '...
-
I
'~f0f;,i;~~·~_~_-----------------
t,,~~j{,<,:~ -,,:
v-'-.~.,_ . ..
,~~t>:~~;!5:-,":'.' ". , :L: :,:. .'p: iP~: el: in:.e=- _2_3' ]
7
~nY:;';j!:'?{~,
'.:rv.';",,·~;x'.> -
_'~,!;~, ..-, ·:·'·i'-'-·' "
'(~l., ...•.• _', . ,

l ;~~.:f·i.·:~
:11t~~:,-:.:.~: 1
;'0';:':;'.. :-
\ ';';!?:;:';'" .
~ .,I('.,:' . )
0 "'.i ," '" ~ ,~ -< " ~ ""

!
~ ;!f ;',~
.~~' '
-,"::
~':i;~: ' . "
71'..y'.:;
.." ...
.:-.". iJ'l ~~~~~~~I"~"CI~~~W~~Ci·~~,"~~n~~~~R~~~~~~~ !
j
_~~-,.... _~ '. ~c __ '.
:ft"-',•..•.
{.,.,•.•.• 1,
Y\" Mt~'oR·o I
~\};:;;
" , "'" ','.,
.
I.e",. M'o'rlt.

,'0; ,'"
.', ' '.
~~< '.>,;
Iftud

IlVl"lt~
!
1j~';''''_'
~.it,."c':'
''''~,:>.• '':.,.'
',0';,:',',
;;',S'" ;" .
:'/'.•.:"".

tiL....
," "'"
"" I
",';+""
'-". ,. '
....,
1/:-;-,--
',," . ~ , \
't,,' ',,"
":,:"', '
.. :-, • -.. t
-).
,-',
.
t;~~~:~ J:
~..
'•. oC···' ':
'i:~,
.) ".
. ,. ,"
~'.,

,,:C- .
_, •
.':
' ...-
-"'_.. 1
'.', ..:'
:"';;' .
;,t.; . ]
;.....,' . '
-'"" JAL J( JS ..

. Figura 6.23 Realizzazione dell'unita di controUo della CPU. Alcuni comandi com'e ALU-
~;:

~.
...
.'
,;,:>:
.':,,'
o'
Mux e PCMux , derivanti dalla combinazione dei segnali in uscita da UC, non sana presentati;
per essi si faccia riferimento aUe figure precedenti. Non viene presentato I'ovvio comando
,lv'!:IRead, sempr~ asserito.
I
i..
,~;..
~.:;",:

:",:,'
'~9~A~-'
':•
., , ]
:,
. -~\ . .
C~. !
I'..
I' .
"
• LA '>hl:( (.t:!-~"j. )
I .
. .. n ' r0
-\':'J() II-..Ii. fl.."\ <.'./1
238 C

I apitolo 6
~"..
;..,.li
--:-: ~~';, "
··(vn.~
,/
"

'
6.7.LCo.nJlitti strutturali ~·t.l.lll'"
'"I" '"
~l';!J! '
!_
,\~"tW "·

I
,';,." c
,;-:~ ~"
'.{l;i ~
Si ba un conflitto ,trutturale quando la combinazione delle istruzioni presenti in maC.. /r.~ ;
:·,.~·!!~il ~
ebina e tale per cui stadi distinti della pipeline lineare riebiedono I'uso (esc1usivOj'.:T:<
delle medeslIDe f1Sorse. .~,~})~ ::
I let.ruziootl
CloU dJ e10ele

, •
'<.~~ ;~
:. ;:);
•••j '
\" '
1 2 3
• 7
• •
,

.: t.i
L --l) (WIST) ..:r}
fv~
blru;r.ion. I
IF
'" EX ME W. · ,£,
c' '"
lstruzione 1+1
IF ID EX ME W.
blru::r.ionc 1+2
IF lD EX ME W.
lalruz;on .. 1+3
\ Stan, IF ID EX ME we
I.Lruzlonll 1+4
IF 10 EX ME we

I . i
Figura 6.24 Conftitto strutturale.
lettura!scrittura da un 'unica porta di memoria

' ...".
In riferimento al nostro modello di pipeline a cinque stadi, si Supponga che la }:,,,
')'f
macchina sia dotata di una sola porta per la lettura/scrittura in memoria. Se I'is-
\ .- '1< :

:~'i:'I'
truzione i fa riferimento alIa memoria, nella sua fase ME entra in confiitto per ]J
dei bus esterni con l'istruzione i + 3 che dovrebbe effettuare il fetch. Ovviamente usoe " c' ','.

~ 't .. ,

'..q... ,[
obbligatorio far procedere l'istruzione in ME e bloccare quella in IF. In Figura 6.24 :~-!,>'
"" '

I viene esplicitamente indicato che l'istruzione i + 3 subisce una fase di statIo, nel sensa ..'.·'i,
che la fase IF eli questa istruzione viene posposta al clock successivo. In tal modo si "/",li',
eriportata
introdotta una ubolla" nella pipeline 12 . La logica per 1a generazione della staHa e ,\~j
'
c';
.
-, '...
,,~

in Figura 6.25. _,,1; ....


'I. ~

..
,...-\."

I n modo per evitare i conBitti strutturali consiste nel duplicare Ie risorse.


Nel caso
vista si tratta di avere 1a memoria istruzioni separata da quella dati. 8i noti me la
separazione della cache in cache istruzioni e dati risolve (anche se non compJetamente)
~ ;

,: ,.
• '}<I'
·i'i:,
,,~.

. ";4~
.'

questo problema. ~' .."., .

I •• ' I
,,' I ;
' ..

.' :;; ,
.' .,
p., .
~
6.8 ConfUtti dati ,
.,
','
\ I confiitti dati 5i verificano ogni qual volta esiste una dipendenza tra ]e i5truzioni e ','1'
queste sana abbastanza vicine cia far S1 cbe la sovrapposizione indotta dalla pipeline
_iL
· ',. -.'"
'.~,
'\ ".' ,
modifichi l'ordine di accesso agli operandi, rispetto a queUo naturale dellJesecuzione
sequenziale delle istruzioni. •,
\ In riferimento a due istruzioni i e j, Con i che precede j, i conflitti dati 5i possono
classificare secondo tre categorie [HP93), [Ram 77).
,, .
,
I 12Si osservi che se ancbe l'istruzione i + 1 facesse riferimento a.lIa. memoria, suI clock 5 sarebbe
necessario mettere i + 3 ancora in stallo. In tal caso la bolla occuperebbe due posizioni. E COS! via,.
..•
,
.,,',' .

J
;*1.·
".-,..
,'" "
.
",7i"\".
'~''t'
:l'oi'. _
,,',".,
;<O!~~ '"<. I'
. ~

/i:;,',""\'".
''' .. ,1,
La pipeline 239
"'. 'V. ,
IP'I<;""
"{~1; ~.~ -
'I" ,." ".
!-":':', '," ,
_t.•.. ,., .•
','" .,- -',
"·'c· ,.
c'",' ...
"-"~-.-. _ock ~
~':'>":
;J,.
~))>:..:,""' '
<.:f:: .
:~;" ,:",:, ':
M\Jrl"te

I
..."cI- 1~1D =~~
I~P
It:
O/K:
It: ).
t£/'WB
f:t.:,
. rli;~ Reool L 0 1 ':-:-:1,,_<:; i UC §, .: : : Mlo'rlU .:.:.:.'

~:X:..' I} I ~_1n .-~. tl: .:::.


- •
. ~ALL.~_--1+"
"". , 1_10; RRI A A
MeMoria. .... Mi.' Pu~ .:..:,
::.: Rr - I-- .....
- 1\ P
. v
Wi .,.. h ... ;,
~ 'p. "".
'" "" \7-
b ....
B<Js Do tl .:.:.;.:

Bus lndtrizzl

Figura 6.25 CPU con una sola memoria: generazione della bolla per evitare il confiitto
strutturale. Lo stadio ME accede aHa. memoria se e asserito uno dei due comandi MRea.d 0
,MWrite. La logica rilevando la condizione di accesso alia memoria in ME non fa avanzare
PC, e carica il codice 0 nel campo OP di IF/ID. In tal modo tutto avvicne come se la
prossima istruzione fosse una NOP, ma cbe non fa avanzare il contatore di programma. La.
'linea de comanda. Ia. bolla serve ad abilitare le uscite dei buffer che rendono mutuamente
esclusive Ie uscite di PC e EX/ME.ALUOut sui bus indirizzi. Non e stata. riportata la logica
relativa a ENW e ENH. Si noti cbe il funzionamento in pipeline comporta un accesso alIa
"
i memoria ad ogni cielo; ovviamente il fetch e alternativo alIa lettura/scrittura di un dato.
[
;,
. . RAW (Read After Write): j Lenta di leggere un data scritto da i prima che i l'abbia
,
. -' . effettivamente seritto. .

WAR (Write After Read): j tenta di 5crivere in una destinazione letta da i prima
che sia effettivamente letta da i. Questo tipo di conftitto non possibile nel nostro e
modelIo di pipeline, poiche tutte Ie letture precedono (in ill) tutte Ie scritture
(in WB).

WAW (Wnte After Write): j tenta di scrivere'un operando prima che questa sia
stato scritto da i. In questa caso Ie scritture verrebbero eseguite nell 'ordine
'sbagliato; si tratta di un conflitto che puo verificarsi in pipeline che consentono
aile istruzioni di avanzare anche quando un'istruzione precedente e stata 505pesa.
Neanche questo confiitto e possibile nel modello di pipeline di Figura6.8.

6.8.1 Tecniche per la soluzione dei confEtti dati

11 modo piu ovvio per risolvere le situazioni conflittuali consiste nell'introdurre deli
di stallo, impedendo l'avanzamento delle istruzioni ebe entrerebbera in confiitto can
queUe gia presenti nella pipeline. Peraltro, il ricorso alIo stallo un provvedimento e
drastico, che penalizza le prestazioni della macchina e va quindi, 5e possibile, evitato.
Ci sono Ie seguenti tecniche per evitare gli stalli per con1litti sui dati.
,' -,"(I'
.,>
, ."~~
.
':'J!'oi
.: '•. "'I'
240 Capitola 6 _....'.~;.,~,
- -----'-'----'-"--'-- ~------------- .. Y.';."',;
r.~·,'
--:,''''~11
,'til. ,.
. "'<"~j~ril;
;, n: l, "~,
Anti~ipazione (ForwG1'ding): il ~a~o v~e.ne. presentato all ' ingresso delPunita Ai~~","~:.fj~i
z~onale che 10 usa .attraverso del ClrCUItl cil bypass. La tecnica viene anche de ;.:(A~
dt bypass 0 cortoclrcuitazione. tta,:\~-1!
. . . :";.,,,
Sov~apP~sl~lOne (Clock halfing): Ie operazi?ni di accesso ai d~ti cia parte di due J~~
lstruZIOnl avvengono sullo stesso clock, rna III modo non confhttuale. .~~;~j~
~ordinamento (Scheduling): viene modificato i'ordine di esecuzione in mod ~";:fl.~
rendere Don conflittuale ]'accesso ai dati. 0 a ·'''.~'i5
: \,'H
'I'
pque si vo lia 2risalvere un conflitto questa va prima individuate COn la;' ,:,: :r8~
"0

t .COffiun g
d j
eClllca e aragra f0 6 .8 . ,,:'~~~,:)~,
"·:)~t~
. ' .,,¥.,
"'~-,~,},"i
....•
6.8.2 Riconoscimento del conflitto dati -
','
.~i~
.,',tt
",·,~t
,,"~',~.
'.f

Per fissare le idee si considerino queste tre sequenze di istruzioni: "


,,\',:i~;~
ADD , '''.~"
R1.R6,R9 to Rl,100(R3) ADD Rl,R6,R9
,
-' i,:::,
SUB R4,Rl,R7 MUt R4,Rl,R7 ST 200(R3),Rl

51 = ARITM V LW V LH V LB V 5W V 5H V 5B V JE V J5 V JR ,..
52 = ARITM V 5W V 5H V 5B V JE V J5
(69) "

..
\~,
~,

'"
;:~
(6.10) "• ,•
riscrivibili come :},.
51 = ARITM V MRead V MWrite V JE V JS V JR 'I;;;;
(6.11) ' . ,__ ,
"'J

52 = ARITM V MWrite V JE V J5 ..
.- ',
· -,
(6.12) .",-
~~I
.' .
.-
13Non si dimenticbi "che i campi indicati come Rs1 e Rs2 hanno significato come tali solo can Ie ':i
istruzioni che prevedooo registri sorgente. L'istruzione di saito incondizionato, per esempio, non ',~
Ii pre:rede: 51 e 52 sarebbero disasseriti e il conrronto di cui 51 parla darebbe comunque risultato \;1
negatIVQ. . ,;~\
. .I ·<'
.~
La pipeline 241
j
'''-''f''~'
-.-".
~:l.l: ~~.) .;' ,
,,,,~

~~'~;,
':",
.:,0,;::":.:
',.'
I segnali riP?r~ati neUe ~spressi?ni 6.11 e 6.1,2 va~o intesi come queUi in uscita cia
]
,::~.;,' .:; _ Vel ovvero relatlV! alia st~dlO ID. Rispetto ~lla hsta nport~ta al termme del ~ara~af~
1.:;0:.: ' - _ ···.6.5, Decorre prev~dere 1a lmea ARITM, ;or~lspondente all'mtera cl~se delle lstruzlom
".":,,. ... , . 'tmetiche e IOglche, della quale non c e blsogno a valle dello stadlO !D.
:\;:':e'~-~'---- an Si ha un co~Aitto tra Pistruzione in ill e quella in EX se e vera una delle due
~~:-".:: ,.,',': ~eguenti relaziom:
I
"?~::"" (IF /ID. R.sI = ID/EX. RW) A51 AID/EX. RWrite (6.13)
:.:.'<,-, )
H;'.: . (IF /ID. R.s2 = JD /EX. RW) A 52 AID/EX. RWrite (6.14)
".:: " .
:':'.~-':::,., Le relazioni 6.15 e 6.16 verificano l'avverarsi del conflitto tra J'istruzione in ID e
~':" '1' ME'
~\,, .... quel am
,.,
. )
:\."::',.. "',.' (IF /ID. R.sI = EX/ME. RW) /\ 51 A EX/ME. RWrite (6.15)
'.
,.,.
',~"'> .' (IF /ID. R.s2 = EX/ME. RW) A 52 A EX/ME. RWrite (6.16)
". " ,
.. :,', . ,
';' .' .,c"",,_-,
,
1
, ,

,-
••

'. '
I
':,~:.- ' .,
, .-
; "
(6.17)
(6.18) I
1

)
,
I
,.,
Ir lID " " IDlEX'
...
' ,
EX/ME MEIIJI

~
... J
OP.H+----j
uc
RSl l ~

.
.., ..;

4'

~
'v 'v ,v
I
.. ....
I'
-'" ..-
-
,~igura 6.26 Logica per il rilievo dei confiitti dati. Sui latch sono disegnati solo i campi di
)
mteresse al fine del rilevamento dei confiitti dati.
1:'
I- .
)
~
,"
~I
,- ........
" ;1/
-. I . ,
j-
~
--.j ..... )..<
J, -- ~
'
,I
' i - )",
. / • 'e
242 Capltolo 6 -' ._
) /" I :
"~I "
""~'1. '
S
." - ' / l ' \..... ~ ,,",',.,
---, - I../ ·.-;lrw,:, .,"'"
''''" '';i':
6,8,3 Soluzione dei confEtti tramite stalJo \ ,'Aj S·:;
I Si considerino aneora Ie tre sequenze:
ADD
"

.. .i:
)~lfi, '~:"
."·']r
~~,;~
;;,
\~i::!,iij :..;o,
Rl,R6,R9 LD Rl,lOO(R3) ADD Rl,R6,R9 ··:;<'?i:I·:t~-:;<,
SUB R4,Rl,R7 MUL R4,Rl,R7 ST . "~""::_~' ..:'.
200(R3),Rl
I
· ,<;.!, -~
• ~ •. ~,. ',c.
0·.1 '''
',' "~)j ,,,
,,,-
~;"

..
"('.,1,' "
Per curare il conflitto con 10 statio occorre posticipare la rase ID della seconda ';':::'~;l_:"~'
, ; ,'. ' '.

,
istruzione (SUB I MUL, ST) a seguire la fase WB dell'istruzione che la precede. Si ~',A:: «
\I tratta di inserire tre cicli d.i ritardo, come illustrato nello schema di principio di'~:.i;; ".,
F 19ura6.7.
· 2
,
",,,.
,'."i':':;"'.-
. '.-
,~~

",:,:~.':"
"1/< .-.•"

IF ID EX ME ·,~:~1f: ,~;:~
I .talI• ...... .talI.
WB
/(;>~; ;:',<~
'I :!!.';, . ,

:~·\~14·:{
IF 10 EX ME 1fII

Figura 6.27 lDtroduzione di tre deli di stallo nella seconda istruzione, in attesa che iI dato ;<~~ :.::'
I scritto in fase WE possa essere Jetto (in ID). . ....}~ ::,«
, """ ...
"":'l ,,'.1
.,;:; ::;,i~
L~ condizione di conflitto viene riconosciuta dalla rete di Figura6.26. Per attuare ""~:i:\'
I 10 stallo e necessario tenere bloccata in ill la seconda istruzione: si cleve dunque ',. :':g,: ,(,
aggiornare il registro ill/EX, non con Ie informazioni che servono a comandare gli stadi;:J; L;'
• a valle all'esecuzione di questa istruzione, rna con una IIbolla" , ovvero con informazioni r ".",,~ '§:.:
· ...
the non producono alcun effetta sugH stach a valle. Ci si pub riferire alla schema di "~,',i~il; :~~>' -~""

I Figura 6.25: la linea Confi pub essere impiegata per silenziare il clock a PC e per ,,~~ :~t'
seIezionare 0 (zero) come ingresso ai campi di comando su ill lEX. '11 :~ '-;,

• In riferimento alia prima delle tre sequenze considerate, accade quanta riportato ',.: ,::~~ .~~
qui d.i seguita: ::~:i >-
I L Quando SUB e in ill 1a linea Coati risulta asserita, in quanta e verilicata la can- ,:<;:'
dizione 6.13. Conseguentemente SUB non viene fatta procedere l introducenda un ,::,~ ,',,
'."

,
primo stallo. Lo stato della pipeline, durante il periodo di clock in cui }'istruzione ..~·~:i •

,I e e
ADD nella stadio di esecuzione e l'istruzione SUB nella stadia di decodifica,
schematizzato in nella parte alta di Figura 6.28. L'introduzione della stallo rio
.,'

chiede la formazione della bolla, ovvero 1a scrittura in ill/EX di un1informazione' ,:.:.~ '.';-
e "': \,:
"il"
che non determina alcuna operazione negli stadi a valle. In Figura6.28 cic e stata ' '::~,:,.

I schematizzato tratteggiando il lato in ingresso del latch ID /EX. Per attuare 10 <:{:
stall0 occorre rnantenere in.IF/ID I'istruzione S,tn,i, Ne dis~ende che Pistruzione ':'~I~::.:
che segue SUB (della Quale m questa momento e In COrsO 11 fetch) non cleve es- ',,~,: .,"
sere copiata in IF/ID. Cib si ottiene annullando il fronte finale del clock allatch ":'{
medesimo. n clock cleve essere bloccato anche per il Program Counter, in modo ··~:I,;'.
\ da evitare il suo incremento. Cib determina 1a ripe tiziane del fetch dell'istru- ,~,
n
zione che segue SUB. semplice AND del clock can il negato della linea Conft ::':'1" e
sufficiente ailo scopo. .~,~'~ ...
r
,
., ...
" ' ,

,."
.-
"

-I'
l
,.;~,'."
..
",~~' . '-,~
I
~
(
~
'
.~~,.~~,~ ,
,_,'-J" I
""",,' )
~i,jt~1".'. J/:::=:;;\
." .. " I
<
'~t~'t ;'
e,~M't.. I
I _ I
~
l ~ ,_~ ~ _--.:;~I
' I

'SR<J.,.
''',.' . ._
,-,' ,f:·,: ~ " I
" 1 /~ J ,
,/
I .
La pipeline 243

" ..' L·' " .


:CJ::;.··,· _~.I
;;~'/',' .., __ J
"';' :;': '
...
; ,,'•...j.,. ,
' .. "..
,:"l~'..

,:;;":, :.:.
."'i"" " '
.
'.' •
. • Jr/ID ID/E>: Ell/ME ME/WB
- ".
" ~ r-
".-,
.'
':'/.
"
". , SUB ADD
«':':. ~
• ••~
,; . •
IF ~I~ iD oi ~ EX ME .. we
.,.-, • • •
;:
• 0
~
L_-,
"""
" ....,
~L.;·.'.;; ~ "-
~.:.';.',:C'
._'

{t,.-~,
.
:':~-'" tF/IO

SUB
ID/EX EX/ME ME/WE
«.-,J.;. bolla ADD
, ... "
,

~
"

1',,'" ~
;;;. , HlI~H
' ,....:"
":~::,
IF 1D EX
• ME WB
~ ~
'<"~;'
.:,,>.;,: .
'~':"~";'
".,' ,

'"~'~"'.'·
, ~;'''. ~, '

~;:
IF/IO ID/E::< EX/ME ME/WB
- ,: ~ SUB bolla bolla ADD
~ •
, ~L-.W
~
IF ID EX ~ idE LW]oil ..I we
,-.' . •
~ 0
• ~

-t';'
. Figura 6.28 Introduzione di deli di stalIo, La figura in alto schematizza l'introduzione della
:, bolla: 10 stadia ID scrive su ID/EX informazioni (indicate col tratteggio) che non producono
:~ .~, alcuna operaziooe da parte degli stadi successivi. La figura al centro mostra la pipeline aI
clock successivo: I'istruzione ADD e nella stadia ME, mentre nella stadio EX c'e una bolla;
"
, 10 stadia ID scrive ancora una bolla su ID/EX. La figura in basso mostra la pipeline a.l
successivo clock: ora. l'istruzione ADD e nella stadia WE, in ME c1e 1a bolla che prima era in
EX, in EX c'e la seconda bolla introdotta da ill; quest 'ultimo stadia ~ta generando 1a terza.


"
.'
.
'I :.,
"
~
.-..-,..'....
"
',<,',', t,;:-,
,
;
...'
"~'.
~:

:~\
244 Capitola 6 .', jl
J' "
'-, I>
- :,',
.r.-,
'.,\",:,\\'
";",,
' .~ .•.,'f1'.'

2. Al clock successivo SUB eaneora in ill, mentre l'istruzione precedente e in ME L :,.~·t


linea Confi risulta asserita per via del verificarsi della condizione 6.15: per qu~nt~' ,:']&:
appena detto, l'istruzione SUB subisce aneora uno stallo, mentre l'istruzione in :~.tt~
ME proce d e. ',,,,*'
',·";.,.(~Vj;
~.~
.: '~'.'!"~
" :;".,,-
3. Al clock successivo SUB e sempre in rD, mentre 1a precedente (ADD 0 LO) e in WB, '..F.y~~
Ancora una volta 1a linea Conti. risulta asserita, in quanto vera la condizione ':!£~
e
6.17: Pistruzione in ill subisce ancora uno stallo) rnentre quella in WB (ADD 0' .' ;t~;;:
LD) scrive il registro di destinazione (Rl). '.::,~j
,
"<",.,,
""~

. "'~"i
4. Al cl?ck seguente l'ide~tita d~i reg.istr~ letti
da S~B, ancora in ill, non d~t~rmina '.'~:'~~~
~on.fi.itt? (anche perche ormaz la plpehne a valle e vuotal) e la catena 51 nmette :,.:t~~
In movllDento I' "'rl
. .'-('>'/!~
.!~

".;,~;r.i
".""it
, .. :.~';,.','
:' ,.:.~
6.8.4 Soluzione dei conflitti sui dati traI)J.ite anticipazione "",,

-- ---------- --- ·-'t~0 ,.,


~ ',',:, .
.. , f

Consideriamo anzitutto il caso delle istruzioni aritmetiche riferendoci alIa sequenza: " '.'~~
. ',;~;:.
~j:
ADD Rl,R6,R9
,',~~
SUB R4,Rl,R7 ,'~'S¢t
,;'~1
;:~~;
'.. .'.'"
11 risultato dell'operazione ADD e disponibile in Rl dopo Ia fase WB, rna prima di ,,"~;~:
essere scritto in Rl si trova nei registri della pipeline. Difatti, quando l'istruzione ADD ...'::~:
:.':l'.~
"."
termina l,a fase EX, il risultato delIa,so~ma viene copiato in EX/ME.ALUOu~1 per . :/:;[~
essere pm propagato al clock successlVo LD ME/WB. Dunque l'attesa della scnttura . 'g~
di Rl in RF puo essere evitata - e con essa i relativi stalli visti prima - intercettanda ':>·:
il risuJtato e presentandolo alla ALU in luogo del contenuto di Rl. 8, tratta, in altre ,"':£\
parole, d, bypassace ,I contenuto del. camp, ill /EX.A e ill jEX.B (Ill questo caso d"i:~
illjEX.A),. anticipando l'operando alia ALD, come in Figura6,29, . ::~
Sugli mgress! alla ALU vengono preVlstl due seletton che, 10 presenza d~l : ~;:~
14

conflitto, selezionano la sorgente cia! campo ALU.Out di uno dei latch a valle. E ':.<:t.
abbastanza facile scrivere Ie relazioni che danno i comandi per selettori. Essi dovran· ..,,;:'i~;
no se1ezionare gli ingressi provenienti dal campo ALUOut di EX/ME quando sona: ,;:.:,~
vere Ie relazioni seguenti l scritte rispettivamente per Pingresso A e l'ingresso B 15:. .'..:~;~
. '~"J
... ,

(lDjEX. RRl = EXjME.RW) 1\ EX/ME. Rwrite (6J9)':E


~:)f:
(lD/EX. RR2 = EX/ME. RW) 1\ EX/ME. Rwrite (6 • 20) ,;
;,t
.t;:i
l40vviamente il selettore sulla porta di ingresso B deve essere armonizzato con il precedeote ..
".
,,' ,:
selettore sulla medesima. porta, , ';'
16Si noti che nella 6.19 e nella 6.21 non compare SL Cib perche queste relazioni si riferiscono alIa ,~

selezjone di un dato in ingresso alia ALU. Tale dato viene 0 non viene usato a. seconda del comando '~.
per la ALU presente in ill/EX.EX. In altre parole, Ie due condizioni sono indifferenti rispetto a 51 ,~:-"
e S2. ~,

"\
',.,,
\
La pipeline 245
;r"~~11J1;'~ . _~_-------------------------==-'~.::::=_...::-=
~~.,.,,~.
",,,,~,, -
!.<. "-"\'I~ .
'~.l·~·'h·, .
',((,"\!ir:<',I:~
';I,,_~I! "I".
""'4':<'\",\, J
tI·:~;}~r"· (~ HE
4P::~~~;,i,t:~· RVr lU
ID/EX
, RVrlt" , Rv ..lt"
HE!IJB
~,
... .-,
RIJ ..lte

I
'

~f~~f '~, ..:.:,,:,;:.,:


'

"I~ ""'1
·;i;,/··~:::'.:: ::::\,
,1"-' ',";',
~~.. ~\:
,c·,,-.....
- 1-" r,-
;;:~~~:D:?:", ,"' I-'
M~'\;'j", ", , •
A ......... l-

rS"l" 1
:tf~.\{:"'".'c ALU ME 1:;;\ \,IB I-'
·Wr'.~,:j~~'" .
,
.' ,~h ..." , B
• ""
_.~;.~ :' :.

V I--
""
'~".:-\:' ,
;~:~~'f{': ',:' •
~~;'~~:i.< :';, ,
, '

'v
""
'-'
'u fo'v
t
C-
.v I
l',y,",',.,"',
.,..\~'-""''''''''
,,"', :':",,;';. ," Unlill dl
p"Op<lgQ :t;0<"l1'
;f$?-:}E
..• !,~. '", .
:p\i,;,,',,'/,.'.
;'t.'/," :., ,
' 1
," "",>".,.
0~':~:"J/:;
"";.,1 .. '
. .l .... ".,.
,,~"" , . ,

)'1:.;::, '
>
'~":::J:~': Figura 6,29
S h
ema
d I b I fi
n ,gura sonoC
stat,' r',portat,' solo " campi dei latch di
~ . ~pass.. .
~;:!::/, ::i '. " interesse ai fini dell'anticlpazlOne. L'us~lta della ALU V1en~ cO~)lata al ternune della Case EX
\
~ '.~~:§~',);, in EX/ME.ALUOut, per essere trasfenta a1 clock SUCCesSlVO lD ME/~.ALl!?ut.. No~ar~
;:~~\'; ;.,':.' de su ID/EX sono stati aggiunti due campi (RR1 e RR2) per contenere 11dent~ta del reglstn
1 ~;t~~~;:' : :- sorgente, in quanta questa d~ve essere c~nfrantata con queUa del campo R;W de.! la~ a ~alle.
;,.\~\<:.),\ ,': ,Ovviamente RRI e RR2 cornspondoDo a Rsl e Rs2 su IFJID, mentre RW Idenbfica 11 regtstro
]
-",. .. ,,,,,.,",, -
:;~\p..:~t',~: "::di destinaa:ione.
~~7·/:~""'·_,
~ . !f-"""'~'",""~' ,
"~"'"''''
'~~}::<~~::.~::.,':" . . \
".' .':.

jl' . ALUOut di ME/WB


~ ::::1~':~,:!~': e dovranno IOve~e selezlonare . lD~esso provemente dal campo I
:,~j.':r;~i:·:~,\:I,/quandosana venficate Ie relaZlOnI.
\ "e;:;:' «(ID;EX, RRI f. EX/ME. RW) 1\ (ill/EX. RRI = ME/WB. RW» 1\ ME/WB. Rwrite , •

~ -:'.f";:i,;""
~ it~"~''." ((ill/EX. RR2 f. EX/ME. RW) 1\ (lD/EX. RR2 = ME/WB. RW)) 1\ ME/WB. Rwrite
(6.21)
l
~ ,:t;,~,I:;,~r~F'" . (6.22)
.
. ~~~< '>":',~':,': n~gli altri casi gli ingressi alIa ALU restano i campi A e B di ill/EX. In Tabella 6.8 I
; '5:P./ ~\. ,,~ '.viene riportata la codifica per i due selettori SALA e SALB I tramite Ie quali si traccia
~ i~!~>:~;~;f.,.;, facilmente la rete di Figura 6.30. i
~ ~f~,~::~:':i/:-:-'
J",'.'
,·~,:cS
.. ' \
," :',' ... '
E 'C".' '
: J;~,;~::•.'.,,'~.:,,;:,
,,'" ' ,-'
I SALx I SALxl I SALxO I
0
1
0
0
0 I
;".J
t /{,..,: 2 1 {
i. ~:X ,. - - -
.,. ,...,.
. , ' . ' ,j,
:;. " . "
1
', • <,
~. ". '
Tabella 6.8 Codifica del selettori SALA e SALa. La colonna SALx d~ it valore numerico;
.\. :: "
Ie. colonne SALxl e SALxO danno 1a codifica binaria.
:..
"..
,.
'.'.. ..,, ...
0-,""
\\, .~ 'i< ••
1
,:, <",':.-
I
246 Capitola 6

HE/VB.RV
[X/H[.RV

I
ID/EX.RRI
IDI[X,RR2

F F

,I EX/H[.RVrlte
SALAl
l-
SALAO

I FO
HE/VB.RVrite
.
Jgura 6.30 Rete corrispondente al blocco "D 't' d i '
~
SALBI

SALBO
:-.),l;,;·
',:'"

III a propagazlOne" della figura precedent~y':.


. "~;!:f
I ", .... ~.,".
,; "".'i
,':r.
I ;~!~~.

La propagazione per l'istruzione store


di memorizzazione:

I ST M(Rb),Rsd ,,-A~
:;':i~.
I
' "
.
Nella stadia EX'il contenuto eli Rb V. ien' ""
,-:'·',;.-lr~,.
-'''-''M'' •
,~o
n~. Dunq,ue il bypass di A BU ill lEX e lisato per calc~lare lmdmzzo di mem~::,~~ ~
I Ie lstrliZioni aritmetiche. segue Ie stesse regale Vlste precedentemente per'it'.' .,"~~~W
. p~ ~uanto si riferi~ce invece al re 'stro Rsd'I' -. " . ' ':.<1} '~
memona ill fase ME il bypass' gI. ' 1 CUI contenuto Vlene scntto in ~~t . '{~
. , puo avvemre da' (1) ME/WB all d " " " "'"
I , t rUZlOne che modifica furl preced' d' . ,. . 0 sta. 10 ME, se Fis~."~;',
~ EX/ME.B, se tra l'istruzione C:e~:i~~~amente 11struz~~ne ~T; (2) da MW /~fJ:J~ ~J\~
ill~a~o Rsdj (3) da MW/WB a ID/EX.IM Rsd e 1a~! c e .un lstruzlO~e. che lasciiL.!i~, ~~dp:
_~

1a ST C1 sono due istruzioni che 1asciano inv~' se tra 1IstruzlOne che modlfica Rsd e,,";:;-:?, ;~H:
"'::",;'1:' i~ff
I Come esem:pio si considerino queste due ato fud..
.
ADD
.
Rl,R6,R9LD Rl,100(R3)
. .
,sequenze, cornsponqentl al caso (1): ",,:,~'~ ;i&i~
, ,~~,
5T M(:ftS) .Rl 8T H(RS) Rl /';~/, :f~~'
, ":,:ri '~;ffi}
. II In Figura 6.31 viene illustr~ta 1 t tt . %{~:~ ',,')1
ME/WB alIo stadio"ME. Si noti ahs ru ura d:l bYPa:ss re1ativa aWanticipazione da ~';:;~ '~\:V~
Rsd, prevedendo oil camp~ RR2 s~ ~~7~r~~ tisporre.l~ ME ?ell'id~nti.tf31 del ~e?istro:;X .~;~~\i

'" I per cO,mandare il se~ettore di bypass, e,dunque~ condlzlone dl confhtt~, da ubhizare "

, (EX/ME. RR2 = ME/WB RW) i\ EX/ME. MWrite i\ ME/WB RWrite


~;S~~;

(6.23)';'~ ll
L antlClpazlOne completa per 10 8T . h' d ' • 'A~{;""'
! i casi' (2) e (3). _ HC Ie e, ovvlamente, an~e Ie reti di bypass per:J.'~ ';i~:i
. ,'I);J "0;'\
'~~"'l
,::,;,~

,'::<$,:>1i~
"'0',,0:'
,,,,,,, "I~.,
,;",""';"

: ·;':·f~:{'.4g
6.8.5 I confiitti per Ie istruzioni load :"",,-l.;r,,' ',::;1:1
" , ::'$ """,
;;,~!\~ ','i;"f,F
1 ...;t~~,(~~Yi
La tecnica. del bypass non risolve tutte le situazioni qi conflitto a cui ,si pUG andare
''-:-'~'~~:')' '';~i'~
incontro nell'esecuzione delle istruzioni. Consideriamo la sequenza
,A. ':trf{

I '~):2iili:j :!ll'~,.
" • ,.?,,,
"i '.. ..~;
.

La pipeline 247

11110 stodio ••~ ~ _


ID I
EX/HE HENB :\lrit
"
~ HReod
"
Hl.'rltr

lr;:Li ---'i,o
'"
M
rt-r1 vnt ~" He... T0
' M
'.g
~"""I"e ._f-I0r---,
I
,
D.te
""••
U-+-I.)---j° I • -
'l) ,I
'" r,
~
........,
u-->t~ 01
'"
Ipr_<icnr
p," ,tor,
Alia stndlo -

Ilr~:!~:i~ura ~.3: ~ete ~ propagazione per ole istruzioni' di La specifica unita di st~r~.
"i'fi1;:>propagazlOue e semphcemente 1a rete cornspondente ana cond.!zlOue 6.23.
o~""t1'!t;T~::l'_ .
• S'l'.--"
~~5.~1{;EL· .
W:;:'::'- LD Rl,lOO(R3)
~i~F:" SUB R4'Rl,R7
~r"::<:;';,::'
"i,··,·
_~Wj!jt··,' ,
~~\~:;:~OI~e sap~i~o, ~ssa pure deterI?ina :onfiitto ~e: .R1, ~a c'e differenza rispetto ai
:,::;':Yi,~Casl esanun~tI pnma: quando 1'1struzlO~e 5~ e ill EX, Il.valore ~he SUB dovrebbe
:>(,,~}egge.re non e aneora stato prodotto d~ll'1struzlOn~ LD che SI trova,.lll ME. Dunque la
fiF~~"relazlOne 6.19, che far:bbe prelevare 11 cont~nut~ del campo.D .~ EX/!VIE, Rr~du~-
~W>:/,',:r~bbe un ;rrore, per0e tale campo non contIene II dato rna l'm~flzzo dl memona (11
,;,;z"dato .';'erra prodotto 1D ME/WB.MemDat solo alia fine del penodo clock). In altre
~':~t'(,:,paro1e, col Dostro modello di pipeline lineare, il caricamento dalla memoria, seguito
}'i:'s:(, da un'istruzione che 1egge il registro caricato, introduce uno staUo inevitabile.
~r;i:: ,. Per ·introdurre 10 stalio convie.ne intervenire in faze' ill, in m~do non dissimile da
~~~,',\: .quanta visto nel Paragraio 6.8.3. Si tratta di introdurre una-bolla in ill quando e
i:~~~,:;' verifi:ata ~na d:lle condizioni 6.1l~ 6.12 e al tempo stesso l'istru~i?J.ie precedente (in
;::':'" EX) e un'lstruzlOne LD .. In altre parole, detta CONDLD 1a condlzlOne:

l~;;((IF /ID. RBI = ID /EX, RW) i\ 81) V ((IF /ID. RB2 = ID /EX. RW) i\ 82) (6.24)
'"
iiD:~' Si ha stallo se
\";' ,. .
e verificata 1a condizione:
:.>,'.
',,'
;"' .. ,.
~}" CONDLD i\ ID /EX. MRead, (625)
g:'\,:
1",","', ,
,,,',",' , .
F{;',.. .Nello schema in Figura6.32 si riporta l'intervento necessario a mettere in stal-
i:,. 10 l\struzione in ID. Quando la situazione e stata risolta, la pipeline riprende il
~#L:'. ,suo, ~or~ale cielo di lavoro. Eventuali altri 90nflitti vengono. risQlti~"dalla rete di
{~~< '. antlclpazlOne. .."
.)!~:.(:.
,,,.
; \:---
, ,.I

248 Capitolo 6 .

; .t~ II
, 11
Clock Stop .•:.j," i •
, I rcJ L(;l I
y.",'
.,~~
,.. ~~
, )~il
,f ,;o..~
", ."0:1

Ir;ID§j I ~ o 1
f.lRend ~",,1'
·~.\,l·'.i
,';~.
""'WJ
• ~. 'DIEX
.. y
':'~.~
"--";l~\
. ~'li
,., ... -

p ::•.~i'f.
.:~
C
" " :' :'Xt',i
•~,illi
,"\'j,~.
,,:,.:;.~.:;.

uc I 1---
"':I.Iii;,
;" '''\
-.,'.-",
\",llJ
, .',:'Jd
, "ll<'
,~~~,~~
.At.:
';'~"'i~
~i+rf.!
·'.':·i!!:(
, '~;~l'
~
\: :"" "it
•.; "1"11'
," !-;',I
Flg~a ~:32 ~chema ~ella gestione del,conflitto per I'is~ruzione d.i lettura dalla memori'aJ~~
. . ii~'

tranl1te I IDsenmento dl uno stallo. La Imea Stop e assenta Quando si verifica la relazio J~
6.25. Essa ha Peffetto di inserire una bolla su TO/EX, mantenere invariato il contenuto ~~'·~:.l~
IF lID e non far avanzare PC. l~::f~
"" '~~'
".' ~

6.8.6 Sovrapposizione
~,
·"l
' ....,I,.:fI'
.:':i'·~Lt
.. ":t1~
. ~el by~ass , . ". . .'\~
La, teemea nehlede una buona dose dl loglca agglUntlva. Parte di essa ':"'~
p.uo essere.nsp~mlat~ consent~nd.o la sovrapposizione delle fasi ID e WB, in quanto, ·~,~~,
SI t~atta ~, fasl che dl pe: se rIChledono norm.al~e~te una frazione della durata del.:.t',~'ifJl
penodo dl clock. In partlcolare, se Ie due fasl nchledono un tempo T inferiore alia' ",'>t~
me~a ~el perio~o di clock,. il confiitto ID-WB evitato effettuando le scritture sui ~~~~
e
reglstIl nel1~ prlI~a meta dl WB e l~ letture nella seconda meta. di ill (Figura6.33)l6. l -<Sf
Questa teeDlea Viene anehe detta d,mezzamento del clock, ,'/~
.,- IO
;, :.,l?;:1
R " ME lf8
•M' ·"
',.:;;1-
''"'Il
."I~
-

. ..
.,- 't ....·
lD

.,-
R " we
•WE ",~~~,tI
"
IO

.,-
R
•M' "'~
<,'::~~~
IO
R " • , .~

"- IO
"
-L...l.!!J__
-'.R
M' lf8
L_J..!IT-J
,
, ......
I, ''\' \
'""" , ".iI('
Figura 6,33. Sovrapposizione della l~ttura
e scrittura dei registri nello stesso periodo di .' . ?f.;I
clock. Le scntture avvengono nella pnma meta, Ie letture nella seconda. ~ ';~~
":~.;
.:.~~~
16Q ues t 0 comporta naturaImente una vana~lOne
. . :&
alia modalita di aggiornamento dei registri che , ... ~/~
ab.bia~o a.:J0t~ato sin da.! Capitola 2.. Per i! WB bisogna costruirsi un fronte di clock per la scrittura ,~.~~
Dm reg.lstrI prU1:,a della meta. del penodo. ~on e quest~ una grande difficolta.: basta agganciarsi al .' ':A~,
feont, ,"t"m,d,a, ch, pe,o d've p''',nt",,, 'ntra la pnma met. del p"iada,;~
."J?~
.• ',. II~;
o~.:"
~.."g;;::
..
{.~Jl1·::i:
~,}~~;':".
~...." ",
. .
\
.f.~!~:!'Ji. La plpehne 249
.ij;iil'~,; :( .
' \'''''~":,,,_>_,_

j'
..;w..•• ", .
·t¥.'~;-;::-
'..9.~""
':
;:-
j
~Jf.:.~':_:,-"
/::r'·"·· Sintesl'In Figura6.34 viene riportata 1a sintesi dei ragionamenti svolti ai Paragrafi
l"r" "'d a '68.3 a 6,8,6,
.:.:., " ' ,
., .. -,.
,.'~',' .''';'
.,:c,' )t.-.. ,
~,.> ~.'
'.,'
\.~_~:',
.'. '. •
.

Situwono E:lomplo di sequeuzo


di c:odiee
A:lloo. mtraprese. do.11a
lIequeoS4 di c:odice
I
-,::.'
y:.I';", :"
':'1';".-•..
)-(,>,'
'\
,;' ' .
~,...,.,:::' ,,-.
Nessuns
dipenden2S
to Rt,O(R2)
ADD R5,R6,R7
SUB RB,R6.R7
OR R9,R6.R7
Non :Ii verifiell. llleUll
eonfUtto; non esistono
dipeodenze j
";·I:'.~I,';' . ,
-,-,,' -,.,:.... ,
\ ',t,,'
'.,. LO Rl,var{R2). NOD c:'a eonflillo se

I
'~;':'.:: .. Dipendenozll 00" ADD R5.R6,R7 Ill. togic:.. consenle Ill.
'/.':,;: .<, ";
'!l'--'". ,
ac:cesso SUB RB.R6,R7 sovrapposiozione ID WE ,

(~;;::.:~ .. ordineto OR R9. Rt,R7


}~",~,.:",~
.,~.:.:' ,';" :..
J'r,,':'''.
I~<' ." ... Dipendenza
LD Rl,bela(RZ) I c:onfrontlllori rileva,no
;.,:,::.' ," .
ADD R5,R6,R7 ruso di Rl e R5 in SU8:
,' ....
:!'~:>-c ,
;1:::'.-.;"'" ..
rlsolle con
]' I ntlc:ip 1l.210 ne
SUB R8. HI. R5
OR R9.R6,R7
ambedue possono essen!
lI11tlcipali \
'''-'''. '.. . ~','. I
~1:;~:;,';:,,::"
'J~f-':":" ::.'
Dipendenn c:he LO Rl.alfa(R2) I eonfronlalcri rileva,no
,~'t,· ';":' rlc:hiede uno ADD R5.R1,R7 I'uso dl Rl in ADD.
st~~{,) : stano SUB R8,R6.R7 prima cbe il reilitivo valore
,~':'~::}\.,~... '
,,;';,.::':' ',:'-'-
'1"" "'.:.
~:l',,,,,,:;,,
'.\~·l'" "r;,,' ..·.
.
'F,'gura 6.34 'semp'
E ' d'
I
OR R9,R6.R7
con
flitt' d t'
'a L
sia stato prodollo. .
I
t ~~;;~:--'~"':' ~
~,';~;~;'::',;' La Figura 6.34 mostra che quando I'informazione cia usa.r:e non e, aneora stata 1
y~~~"ty,:~:" prodotta (ul~im~ easo) 10 staUo i~evitabile, In questa ~~ l'~~ soluzlone potrebbe
e I
~;'~/'\".;.'::'
venire dal nordmamento del codlce se la sequenza di Istruzlom 10 permette, com~
,~;M'~·:,:;·· illustrato a1 Paragrafo6.8.7.
l~{:.'t;'>~,\:';,:,~. . '
\;t'~~"~!''':''''""
,~f.,l\!;",.;,;, 6'.8.7 Riordinamento
I.
~:r<;>:.;. ': ..
if\:::'1'n riordinamento puo essere di tue tipi: ',t.alko 0 dina,m;co, a 5ec~n~he ].
~>.'."'" '
'H.. ','"
ven a attuato cial compilatore 0 dalla lOgIca dl maeehma durante 1 eseeUZlone,
., .
",
""':~"
..
"l',~'.'"
. I\ '
'\
'"
\

It::~~;:~:, Riordinamento statieo , Si considerino due istruzioni in un linguaggio di program- ,


\

,~i:" ':, 'mazion. di alto livello (C, FORTRAN, ..): J .


""""''''
~tfl~,";'::·,<.
. '.
',..c·' . , .. C=8+C;

I.
'j ,",,'
~

;;',\:;,
',.."""
, D=E*F
t::{~·:"',~. Anche supponendo che 1a maeeruna sia dotata ?i tu~ti i bypass, necesaari~ un ~o~pi~
'2:~. :,", ::- 'latore che traducesse nel seguente frammento di codlce, determmerebbe SltU3Z101ll dt
; "~'.'.';'.: stallo sulle.due istruzioni aritmetiche. Lo stallo sarebbe di un solo cicio se la logica ~ •

:~~:'~ , provvista di bypass. Si noti che il codice segueDte ~ una traduZione uno a uno rispetto ) .
',:\.
" '. ., al
c 'testa di. alto
CP liveilo, con
. bU'riusa degli stessi registri
"\ nelle due coppie di istruzioni ehe
':'~:: ::, . , ancano 10 U le varIa l-
t',~..:....:.
:"i\; ld rl, 8(0)
"
.', ".

~ . ~,,' ld r2, C(O) J.


;,
"''"
.-- • ,.,
·:··1,
....." P
'~
"
.~r
~'
(l,5
250 Capitolo 6 ,.
I - -:r.:.
I ~i.J.1
..:r.t
.. \~:~ t;
'·l'\
oil,;,
~". ~
,':>
,.'.
;.:,

add r3, ri, r2


st C(0), r3·
:i'll",
.,, 1
i..," ):
, ld r1, E(O)
r2, F(O)
.. )!~.:;
ld ;",i:iL
mul r3, ri, r2
,. :1:....,
" I
,:~
st 0(0), r3
( Lo stallo pub essere evitato riordinando Ie istruzio . . " .. .. ;.
~ partlcolare Sl pub aotieipare il caricarnento dellan~ ~~doE
m e
da nemplre Ie boll ".. }ji, ';
a somma: CI0 comparta. l'usa di un d'ff . ana I e In modo cia precedere . <;;-;. !.
e
moltiplicazione state ritardato l' . I erente reglstro. Per evitare 10 stallo dell
aggiOrnamento della. variabile C . .a .,,'!,:i~
":i.~ r\
\ii: ",
• ,:.;/;'; ,

ld r1, B(O) .
."''1'';':.
".,';.\,
ld r2, C(O) '";,'"\(
' . .""'f'
..q,.
;questa istruzione e stata an t :lC:lpata . "2~il;
J ld r4, E(O)
add r3, rl, r2
ld r1, F(O)
st C(O), r3
; qui non c'e piu stallo
.
;questa e stata r1 tard a t a per rlempire
.
, ..
,':N· -
. .. ",.,'
:<iI..
'".'-:.,
·~C
'
~i,-.'
~

':'
mul r3, r4, rl ; la bolla ,
st 0(0), r3
1
Osserviamo per inciso che l'ulteriore avanzamento di un posta della quarta istru-
zione Id (con impiego di altro registro per F) I in modo da precedere 1a somma, avrebbe

I ottenuto 10 stesso effetto e l'istruzione st CeO) ,r3 avrebbe anche potu to seguire la
moltiplicazione.
Si tenga presente che una traduzione uno-a-UDO come quella sopra riportata non
,f! la piu efficiente. Specialmente con Ie maccbine dotate di molti registri, un campi-

.
·
I latore ottj?lizzato evitera. d~ riscrivere il risultato nella variabile in memorial fino al·
momenta in cui il registro contenente il corrispondente valore non diventa assoluta-
mente necessaria per altri usi. In tal modo, tutte Ie volte che viene usata. una variabile
...,
, . :·~1
'.
"
""--
, it
"

il cui valore si trova in un registro, sono evitate anche Ie istruzioni di caricamento. ".
';-,

l
• 0'

Nel caso specifico, 1a memorizzazione di A e,O puo essere posposta al momento in cui .'.,.'
si rende necessario I'uso dei registri in cui sane contenute.

"1,,;J
Riordinamento dinamico Nel caso della pipeline lineare come ql.lella che stia- -'

I mo considerando l Ie istruzioni entrano e escono in modo strettarnente sequenziale.


Dunque non c'e
possibilita di riordinarle al tempo di esecuzione.
e
n
riordinamento
dinamico ba senso quando la pipeline multifuDzionale, come quella schematiz~ata
,'..

--
in Figura6.4 c) e quando Ie unita. operanti in parallelo sono esse stesse delle pipeline. ..

In questa caso e abbastanza comune I'esecuzione fuori ordine, detta anche specula-
\ tiva, con la quale si riesce a ottenere il massimo grado di parallelismo e si riescono ":·
'
a mitigare gli effetti dei conftitti. Delle pipeline multifunzionali si parla nel" Capitola .. ,
10. '

I
I
..
6.9 Conflitti di controllo

"
I Per le istruzioni che possono modificare il Busso del programma non esiste una ter·
minologia uniforme. In segulto si far-a. riferimento a1 termine salto qu~do il saito
(
·

·
:
·
·d
l

..... , .
_It'~·,,,'
P 'JI,li'l'>",- -
~,~~~".'
""!' :<,. ',' ,

r:h,."
'\O,·"
51" :,t.
,.. . La. pipeline

-
• 251
,.".•,.,;:.~

.-:~ ~.
,'"

-
>-:,:i;,,"
.' 4.( .

; ;. eincondizionato, e diramazione quando e soggetto a condizione. Un'altra questione


\'·~-··
, , '.' -

'.,.'.. terminologica riguarda Ie diramazioni: occorre spesso distinguere tra quelle che hanno
:-';" luog e quell e che non modificano il contatore di programma (PC); nel primo caso 5i
; par o di diramazione effettiva. nel secondo di diramazione non effettiva~7.
laPrima cit affrontare Ie dnama.zlOnl, eSaIDllllamO 11 caso molto pm semphce del
'0'. •

L<
"' '.
ti
.;:.: sal .
;: " :. : 6.9.1 Conflitti per salti (incondizionati)
!.. '"
",.:
\:-
.
r:~""':' 0" '

. In Figura6.35 viene mostrato 10 stal10 prodotto cia un'istruzione di salto (nell\potesi


,,", .
,
. che il valore del nuOVO PC sia assegnato alIa fine della lase EX).
, '
;- ;:-.,
.;...
;t .-, ' . ME WB
-. . Istruzione di salto IF 10 EX
,'
., . '
'

.'" " Siallo Sialio IF 10 EX' ME WB


isiruzione di destinazione
':.'.>' . EX ME WB
" ' , Siallo Siallo IF 10

. Figura 6.35 Stalio dovuto a. una istruzione di salto. ~i faccia l'assunzione che PC venga
modificato nena fase EX. Quando l'istruzione di sa.ito e in ID e non e 8oncora. stata decodi-
ficat.a., 10 stadio IF preleva l'istruzione attigua. Prima cbe 180 fase ID termini, 180 logica di
m3.Cchina., riconoscendo il salto , pub introdurre una bolla, in m,odo che l'i,struzione cbe segue
non passi in esecuzione. Anche il ciclo successivo viene perso in attesa che 180 fase EX abbia.
calcolato e modific3oto PC. A questo punto 130 pipeline puo riprendere a essere alimentata,
.' 'ma si e determinata una bolla 1unga. due cicli di clock.

,'
1.··,
La Figura6.35 ci cia l'indicazione di anticipare per quanto possibile il momento
t-f ;. in cui PC viene aggiornato. Nella nostra architettura, portare alia fase ID l'aggior-
,.
namento del PC e cosa elementare (CfT. Capitolo 3). Se PC viene aggiprnato, in ID
'.
resta comunque uno stallo.

11'
J '.

Una soluzione software: it salta ritardato
,
La penalizzazione introdotta dal
saito e facilmente prevenibUe attraverso il compilatore, che puo riempire i cieli di
,'-
.... clock che andrebbero perduti (delay slot) can altre istruzioni. Questa tecnica viene
.. detta saUo ritardato.
- '" Per esempio, supponendo che 1a pipeline si comporti come in Figura6.35
.. introducendo cioe una bolla di due cicli - si consideri questa sequenza di istruzioni:
·
·.i
:,,t LD R1,100(R3)
$ ADD R2,R2,R3 .,
,.~
'::~.
SUB R4,R5,R6
•, JMP DaQualcheParte
, ::;
· ..
",. I
,-..
. ",
'l!
..f'
'
Se le istruzioni vengono riordinate in modo che 1a sequenza diventi:

(-::i~
."'j;
•"\'1 ••
· :r'~'.
.. l7 Gli anglosassoni parlano di diramazione taken/n.ot.taken.
:i ~)
,-.tt ,
d~,
:252
::::=--:::::0:::.:::::..:..___________________________
Capitolo 6
. 'r,
--..... ~:j!
" ,.:.,-~
LO
JMP
Rl,lOO(R3)
DaQualcheParte
'"'H' ,:~ I<

'.:,~
ADO \.Ii;'
R2,R2,R3
SUB R4,R5,R6 ;:,~t
·.:~i
allora, quando viene modificato il PC, 1a coda contiene Ie istruzioni ADD e SUE e da qu~i',/~
momenta vengono prelevate Ie istruzioni dalIa posizione DaQualchePartej rna intanto ",~:~:St
Ie due operazioni gia nella pipeline vanna avanti, e arrivano a regolare cornpletamentc.' \f:~
Naturalmente se si intende evitare gli stalli del salta con questo metodo, ne- ":,{}i~:
,
e ". ,,~

cessario che 1a logica di CPU non ne introduca, come farebbe secondo 10 schema di /1~~
Figura6.35. E percio evidente che un programmatore che lavori in Iinguaggio ·a.s:·, ...'.;t~
sembler deve sapere come si compo:ta. la macchina, nel senso che, se questa prevede.:il~'
1I saito ntardato, deve aver cura dt nemplfe In modo congruente cqn la loglca del ~:.~¥
programma gli intervalli di ritardo. E questa uno dei motivi per cui spesso si 1egge ':~?4
che Ie macchine RISe (intendendo riferirsi alia lora pipeline) sonG estrernamente dif..:" ',:f,.~l
ficili da programmare in linguaggio macchina: rneglio lasciar perdere e affidarsi al"\),~ly
compilatore. .,'. ~:.::Jj
Nel caso del salto il riempimento delle bolle e teoricamente sempre possibile. Di ....)i.:.~
fronte a situazioni intricate - piu istruzioni di salto in sequenza - iI ~ompilatore puo. '~'~;70
sempre riempire gli intervalli di ritardo conquaicheNOp. Ne! caso di diramazioni le>';,
cose sono plU complesse. DI esse 51 paria qUI dl segUlto. _~.'~
.:..,';
,!;~
In [HP93) vengono [omite molte statistiche su salti e diramazioni e sulla loro incideDz,: :.;\
media nel corpo dei programmi. Esse indicano che, a seconda del tipo di macchln. e ' ..
di programma, la frequenza del salti va da! 2% a I 1 ' 8 % . . : ; : ; . !

6.9.2 Confiitti per Ie diramazioni #


",'~'
. .'''\\:..
",,'
'.',,'-",
"'.;~

:
,.', ,.~
,~
Nel caso della diramazione, se questa e etfettiva, si presenta .anCOra la situazione di . 'Yi.
"
"l

Figura6.35; il PC puo essere aggiornato solo quando il suo nuovo valore e disponibile. '..:.::._~
Ma nel caso della diramazione c'e la possibilita che il salta non debba etfettuarsi e che .;.::
debba invece essere preJevata Pistruzione successiva. E evidente che anche accettando . ,
l
10 stallo, non conviene introdurre 1a bolla all'apparire della diramazione, in quanto ·",'Ii
'~ ,,',
potrebbe darsi che la strada presa da! programma sia proprio queila dell'istruzione
attigua. ill al~re parole:
·····1
";~
, ,\',+,
' ,

., "

.
a) se" appare un'istruzione di diramazione la pipeline continua a prelevare ]e istru-
·.:. 'I
.\), ;

ZlOm successtve; ':S.~:


• •

b) se la verifica della condizione di diramazione indica che essa e effettiva, la pipeline '~i'
, •.

~·t
viene svuotata delle istruzioni che seguono la diramazione e viene alimentata a ·" ! "

:. ",,,1
partire dall'indirizzo di destinazione, c·on cib introducendo un bolla lunga quanta ~
, ~i
il numero di cieli persij
; '.
,'i'"
e
c) se la verifica della condizione di diramazione indica che essa non efl'ettiva, tutto ..:1 '
,

.~

procede come se si trattasse di una normale istruzione senza effetto sui PC e ',' ""

senza alcuna penaJizzazione. "~:,,


- , ".:
..,-.".
.
·
-.~
..
"£:; .
,.1"l;:- :.

~~-
<>,;w:<~"-. __---------------------------=::..!~=::..:.---
-'t~t~;f~''''
I!i
._·:b~_

"iif'"
-1_'"
.. _.
,',c. ___
La pipeline ?53
\
'r,,·'\ '!':: _
j;,:.;.,:.-/:",.
>i:';(,:·f.J~~i':"-
~~,.t:'.E1-,"'-:~'·, ·.':·' In Figura6.36I b lla dl due penodl oe 1a pIpe me. n
. 1t
viene .rnostrata ~a 1?gIc1a pe~ val,u are verificarsi della condizione
. aI II
la condizione eli diramazlOne
.
I .
i:Y.,:":.::-".':- '1 . t di un1istruzione eqwv ente a a
~~Lrr>·;.e
inserire a 0 '. ()

i"!;';~<:, -.-:"6
peliraJE/JSll essa determma. a 1 cancabmelln °d' d e periodi' (b) 11aggiornamento
0
10 e ID/EX , dancio luogo a una
.

~;}:~iO:C'~;,;('indirizzodelia diramazione (PCJE/JS).


a 0 1 U -I
I
(~~1;~{::~::''- )
~?><, r,:':'
;i~,:' ;',";," ' , "~/" I
:;:'.';""'C"
.. ,
' "

ID/U
.
}', ,( :,'.', • ,
:'~_~~:(;-:>
'-g . ~:;<. ,H
UnlU di
• - I
'.
controUo
lr/ID

.'-
.
• 01' '~$
:t:I:.' "" .• • '~10

}~":i:." .~: u-,. ~ A U

l'};'-::-': ,".
001I' 110_10 ~

RF IALU )
y,.- ':'
;~!'." " ' L
ll_~l
sx~CO$'T , ., B

'~;'. ',' .'


::.'.";.:.,,'~ "" L...~
.. ""' . \ .
,~fc«' . .. " . . . ata
'/ ;-. '--<. _ c 11 d II condiziolle di salta per Ie lSOUZlOni JE .e .JS. e; . stata ;~c t
;;-
~,.: "'... ,-- Figura 6.36
~ontro
I";i~t0 ~'~.a.mt:~~:;~eS'~u:o;e<iodi di clock. AI v,rifle""i della ~.oneli~ion,
che il- test della condlzlone Vlene e et ua 0
t'
)
C,~lp~ a a;~~mato coo l'IDdirizzo di diramazione e VleDe UlSwta \ 1S~u~o~e
solo la p",te

"~~:~~~;~ N()~~~ IF lID e ID (EX, iD modo da ere""


:".c. in EX, pe< 0
::. ::. ': .' aI) una bolla lung. due c oc. e 0

'::"",",:
';;' ,"'';':,
.'''~

~" -
-"
",.
!",
.
..
'' , '".'.
... '-
-
(q
schema I" In eli'
nzz ad,' diramazlone Vlene ca1colato III ID.
I
. ,~.
~".~: Alcuni microprocessori - fra cui l'Intel 80960 - prevedono un bit di predizione ).
:~. statica delle diramazioni nel codice dell'istruzione. Essa si basa su statisticbe di
, esecuzione (si veda piu avanti), rna l'effetto e queUo di indicare alIa logica di CPU
I '

--
se in presenza di una dirarnazione
. debba essere prelevata. l'istruziooe successiva a
1, quella di dirarnazione. Se la previsione deI'compiIatore non corretta, si incorre nella e
penalizzazione dei cieli perduti: occorre infatti eliminare dalla pipeline le istruzioni J
I' non pertinenti e iniziare a prelevare dall'indirizzo deU'istruzione che, Del' Busso del
: ,- programma, segu,e logicamente la diramazione.

'1' ;
t
I

, Ovviamente, conviene cercare di evitare per Quanta possibile di pagare la pena-


I-
..
1
,j Iizzazione delle dirarnazioni, anche perche Ie statistiche riportate in [HP93] indicano
r
if
che Ie diramazioni hanno una frequenza cornpresa fra 1'11 % il17 %. In letteratura e j
1',
", ,
sono state presentate molte proposte per ridurne il costa [Lil88], [PS93J, [BAM+93],
' [GL93]. Una buona parte di queste si basa su predizioni st.tiche, stabilite sulla base
~",.

' di stime, in fase di compilazione. Altre su predizioni dinamiche, svalte dalla logica di
,:. CPU durante l'esecuzione. Di tutte queste tecniche si parla nei paragrafi seguenti. •
:>.~
.
~<
".
~H' .:;
.:i's4 Capitola
. - - .. ..
6.

I
. ~

\ -6.9.3 La soluzione software: Ie cliraInazllmi.Jitardate

I "~''''
Si puo ricorrere alla tecnica usata per i salti consistente nel riempire i cicli di ritardo~:
,
con altre istruzioni 1 sebbene la Sua applicazione nel caso delle diramazioni richieda IfI
qualche attenzione. Per semplicita qui di seguito si assume che, diversamente dallOj~.

I schema di Figura6.35 dove era di due dcli di clock, 1a penalizzazione sia di uno solo. ~~
Consideriamo la sequenza:

Dest ADD R2,Rl,R3

I SUB
JE
R4.R2.Rl
Rl,R3,Dest

! La sequenza puo essere riordinata dal compilatore18 come:


Dest ADD R2.Rl.R3
JE Rl.R3,Dest
SUB R4.R2.Rl
I lndipendentemente dal fatto che 1a diramazione sia 0 no efi'ettiva, non c1e perdita
di alcun ciclo.

I La riorganizzazione delle istruzioni come sopra non e possibile se Ie istruzioni che


precedono nell'ordine naturale la diramazione modificano Ie condizioni su cui viene
eseguito iI test di diramazione. 8i consideri ora questa frammento di codice:

I Dest ADD R7,Rl,R3


. . altre istruzioni
SUB R4.R2.Rl
JE R4,R8,Dest
I MUL R5.R2.Rl

L'istruzione SUB non puo essere impiegata per riempire la bolla. Si puo usare
Pistruzione di destinazione, ottenendo19:
1
Dest .. altre istruzion1
SUB R4.R2.Rl
JE R4,R8,Dest
r ADD R7.Rl.R3
MUL R5.R2.Rl

I 18Si SUppone che aJ momento dell'esecuzione di JE i registri confrontati siano gia. stati acrhti da
eventuaJi istruzioni precedenti, 0 che ci sia la rete di bypass.
19Si noti che l'istruzione iDD R7 ,Rl.R3 dovra essere mantenuta a.nche in Dest se in tale posizione
si puo arrivare anche per a1tra via, inclusa queUa lIequenziale per l'istruzione che 1a precede nel testa
d'origine.

I
La pipeline 255

-J}-.Questa soluzione ha molto sensa se e alta la probabilita. che la diramazione sia ef-
,:Uettiva. Si noti che se essa non ha Iuogo l il registro R7 viene comunque modificato
'~ contro la logica del programma. A- parte il fatto che si tratta di lavoro perso, occone
.~15incerarsi che questo fatto non abbia conseguenze sul.codice seguente. Per esempio,
5e la sequenza:
Dest ADD R2.Rl.R3
.. altre istruzioni
SUB R4.R2.Rl
JE R4,R8,Dest
MUL R5.R2.Rl

venisse ristrutturata come20 :


ADD R2,Rl,R3
Des~ .. altre istruzioni
SUB R4.R2.Rl
JE R4.R8.Dest
ADD R2.Rl.R3
MUL R5.R2.Rl

si verificherebbe un errore, in quanta il registm R2 sarebbe utilizzato dalla MUL


successiva. In altre parole, prendere I'istruzione di destinazione per riempire 1a bolla
non deve modificare la logica del programma. Cic e sicuramente verificato se il registro
scritto dall'istruzione di riempimento ha funzione di contenitore temporaneo per il
loop, rna non e visibile all'esterno del loop stesso.

Se la probabilita di una effettiva diramazione e bassa, conviene che la bolla sia


riempita can l'istruzione che segue. In pratica si tratta di lasci30re tutto com 'e. Per
esempio, con 1a sequenza:
SUB R4,R2.Rl
JE R4,R8,Dest
MUL R5.R2.Rl
.. ,altre istruzioni
Dest

viene normalmente eseguita l'istruzione MUL se e alta 130 probabilita che la dirama-
zione non venga presa. L.'istruzione M UL viene eseguita anche in caso di diramazione
effettiv3o. Anche qui e necessaria che il cornpilatore garantisca che, se la diramazione
ha luoga, I'aver eseguito l'istruzione successiva alIa diramazione non ha effetto sulla
logica del programma. Si tratta di fare in modo che 1'eventuale assegnamento avvenga
su registri can funzione di contenitore temporaneo; tali cioe da non produrre alcun
effetto rispetto alia logica del programma se 1a diramazione ha effetto.

20Notare che i salti esterni al cicio che in origine erano verso Dest devono essere indirizzati
all'istruzione precedente.
1"''I't'!1 ',. '
• 't"
.. l' ~1'~
"<
• '," ,""
"0,_"":.{'-"'7ff".II-;r," ,
.
i{~~';~rz~~·';'.i'4~,';'~ ""-256· (Oapitot~ Q,,:
.

'lil"i.,'::'t'''''~,.~;:;~?~~: "J:':" h.W 'j~",' ~" eo< •••••


•• ',"

'Y '"":,,
I~I
,~~ • J.~
• • :~• • "

In conclusione, per tentare di riempire 1a bolla della diramazione 1 it compilatore r:


'(. pub prendere Ie istruzioni di rjempimento da tre differenti posti: a) dalle posizioni '"
che precedono la diramazione; b) dalla destinazionej c) dalle istruzioni successive. ;
;i '. Nel caso a) il compilatore non cleve prendere alcuna decisione e 1a bolla e comunque .~.,
,7' i evitata. Le soluzioni b) e c) sono scelte in base a statistiche sul funzionamento dei ,;',
',,' 1 programmi. Sono stati fatli molli studi (ampiamente riportati in [HP93]),secondo '1
'!
i quali Ie diramazioni corrispondenti ai test dei deli sono effettive con probabilita di J<,1·
circa il 90%, mentre buona parte delle diramazioni riferite ai test sui singoli bit non .~~
hanno luogo. ;f.~
Per una maggiore fiessibilita. alcune macchine consentono I'omissione delle istru- it
zioni di ritardo, in base al valore di un bit (squash bit) contenuto nella codifica della !;~
diramazione. Tale tecnica, e util.izzata dalle CPU SPARC della Sun. Ovviamente e'"
ancora il compi1atore a prendere ogni decisione in merito.

Osservazione suI saIto e sulla diramazione ritardati La t"ecnica del salta 0


della diramazione ritardata presuppone che il compilatore generi il codice conseguente
rimescolando Pordine naturale delle istruzioni del programma e che l ovviamente l 1a
macchina non introduca stalB. Essa appare una soluzione ovvia, rna non sempre
di possibile attuazione. Per una macchina di nuova produzione, per la quale non
preesiste software, non ci sono controindicazioni. A riprova 9.i questa afferrnazione
basta. pensare che questa tecnica e stata impiegata in quasi tutte Ie macchine RiSe
al momenta della lora introduzione. Al contrario, se una nuova CPU deve essere
compatibile con it software prodotto in precederiza, 1a strada diventa impercorribile.
E questa la situazione in cui si sana venuti a trovare i progettisti Intel, quando Ie
loro macchine (486 e successive) hanno cominciato a presentare una effettiva pipeline.
II problema era questo: introdurre il salto/diramazione ritardati (e quindi rendere
incompatibile l'immenso patrimonio di software sviluppato a partire daWintroduzione
I dell'8086)1 oppure mantenere la compatibilita. La risposta era ovvia se si pensa che
I abbandonare la cornpatibilita per il vezzo di far risparmiare qua1che clock ad alcune
I istruzioni sarebbe stata una foUia daI punto di vista commerciale.
I
I
I 6.10 Predizione dinamica delle diramazioni
La predizione dinamica delle diramazioni e a carico della logica di CPU. Concet-
I[

tualmente essa si basa suI valore della funzione F(XI,X'l"")1 dove F rappresenta
la probabilita che una diramazione sia effettiva e Xl,X'l" .. sana i parametri che in-
fluenzana F. Se F(XIIX'l,"') > 0 15, la predizione sara di successo l viceversa 1 se
F(XI l X2, ... ) < 0,5 1 la predizione sara di fallimento. Nella pratica l i pararnetri presi
in considerazione rappresentano la stOMa passata della diramazione.
Nella forma sempHficata si tiene conto dell'esito deU'ultima dira.mazione incon-
trata e si predice 10 stesso comportamento per la successiva. Con tale semplificazione l
se X 21 e il parametro cbe registra l'esito del1'lj.ltima diramazione eseguita , il funzionale
di predizione vale F(x) = x. Questa tecnica di predizione ~ molto rozza. Infatti essa
tratta tutte Ie diramazioni nel programma aIlo stesso moda, indipendentemente dalla

21 Evidentemente per x basta un bit


La pipeline 257
\

probabiUta. che hanno Ie singole diramazioni di essere eseguite. Per una predizione 1
migliore oecorre tener conto della specificita. delle singole diramazioni, in partico1are,
daUa storia degli esiti di una specifica diramazione si hanno utili indicazioni circa la 1
probabilita che la sua prossima esecuzione produca 0 no una effettiva diramazione.
I

1
6.10.1 Tabella di predizione delle diramazioni

II modo naturale per tener traccia de Ii esiti


:ramm I con e ne ricorrer
mco~n~t~r~at~e;:;;:i
~ 1 a
I
sto a eUe recede ti ea bella di redizione
delle diramazioni Branch Pr . ion Buffer :aPB . Se si vuole mantenere liml a
l

ta e a necessaria gestirla come una cac e, con tecnica LRU, in modo da farle tenere 1
tracda delle ultime n diramazioni incontrate. Lo schema del BPB e in Figura6.37.
Nella pratica , per evitare che 1a tabella richieda troppo spazio sull'integrato l si ri-
nunda' ad avere l'intero PC della diramazione e si impiegano i bit meno significativi
del relativo indirizzo (di solito si usano 5 0 6 bit). In questo caso e possiblle che \
due diramazioni distinte si collochino nella stessa posizione, can 1a conaeguenza che
Ie predizioni elaborate per la prima verrebbero applicate alia seconda l diminuendo \
l'accuratezza della previsione.
D
~\WV'c~r,
':) \- {
'-/'~.Jl-\.( y)}~
\2-, Or, ,
U '):..: (\ /
i
PC delle diremazlone Statist:
I
\
I

]
Figura 6.37 Schema della tabella di predizione delle diramazioni. La tabella viene gestita
come una cache associativ3o: il campo di sinistra ha t30 funzione di tag mentre il campo di
l

de~tra contiene ta statistica di esecuzione della "Corrispondente diramazione. Se la tabella


contiene n righe ed e gestita con atgoritmo LRU essa contiene gli i.ndirizzi e gti esiti delle
ultime n distinte diramazioni incontrate.
1
\

8i noti che·la rev' ione viene effettuata d


". t e usa
B
evedere l'esito dell'eventuale
I
djramazione. Se fa previsione e che la. diramazione avra luogo e l\atruzione e realmente
una diramazione (fase ID successiva), aHora il prelievo delPistruzione di destinazione
inizia non appena l'indirizzo estato calcolato, altrimenti viene prelevata Pistruzione in
ordine sequenziale. La predizione evita i tempi morti dovuti al calcolo della condizione
I
di diramazione, rna i1 vantaggio della previsione viene parzialmente perso se l'indirizzo
di destinazione non viene calcolato prima possibile.
I
;~"
'T,":
,I; ,

~.
",,·~it

I
,,~\·:,:,

I 258 Capitola 6 ~"~""


'~1'!
""~:i
~!~';
;'~";"
,.;,-,...
~1V
6.10.2 Statistica di esecuzione e accuratezza della predizione ~'ilt.

~
"l~.. t
.,"'.1
".-
. ""'
;..'t:
In riferimento alla Figura6.37, la forma piu semplice di statistica e un bit22 che ,"l'.'
"..
,"0'
'"
rl;;
.indica l'esito dell'ultima esecuzione della diramazione. Appare chiaro, perc, che questa ,&:.\
schema di predizione presenta l'inconveniente mostrato da! frammento di programma ,~"~;IJ ,.". "'·1~".~~
·"
di Figura 6.38: se una diramazione viene,quasi sempre eseguita, la volta in cui fallisce. ,~.·/;Wi
"",~j,;'t
'. ~~, ,l'l,p
'

- \ si banna due predizioni scorrette anzich~':oUna soltanto.


';'~' .. ,,-:
..: :~t'::~' ~J
.,.,.,~, 'r.,~:

·; ,\:,,~;," ".;".
· hi
"'." ,.,~ ~~

, .. ~ ''''
'.."..
""~'.
.;...
"':'I
..
I sub rl,rl \.rl ;rl +- 0
.' ·' "",.,.~,
'

"' ,~
""r.~~. "

,.. add rl.rl.~O jr! t-- 10 · ,,;)Iii'.j'-','{),~,


"'".' ,.,
.~ (:;~ i~'
loop: ... corpo del loop .. .~;;l,~':.t:.~;
sub rl.rl,l :.~ \'8 @~;;:
- f .;;
I bnez rl,loop

Figura 6.38 Esempio di cicIo. La diramazione bnez rl.1oop e effettiva fintantoche il conte-
;1<;{;"'~
.,')~~il¥i ,~;
·c ~~:J. ,"
.",,~. Fft
nuto <li rl e diverso da zero (si assume che rl non sis. modificat.o nel corpo del loop). Poiche
j/ ~"'a'ril "~I~~ '0
.;'"J'."'
all'inizio del cicio si ha. rl = 10, Is. diramazione e effettiva. per nove volte consecutive; aHa
I decima esecuzione.fa.llisce. La successiva predizione (at rientro nel loop) sara. dunque di
fallimento, cioe errata. In conclusione, tener traccia solo dell'esito dell'ultima esecuzione da
una predizione d.i un 80% ill successi, 'contro un 90% efIettivo.
'. ",
• '<:;~"':\I'

.,'· .t.:.;~~.
,'L"~
t_""
'~~<1'1
~"
,I
~!
~ ..
,.;lo.....

'. '-.:!!.I;l1' I!!


"~
"h
.

:~ j"\' •."

- ("l~~'; ..
.

I
,,~1i"
""\);''''r,{·
':'~~.-
, ';m;~'
'i'?' ,;
Per rimediare fAlrinconveniente S1 ricb.iedODO ~er la statistica di esecuzione ." . ,~
.' ,;,fl' ,r. (:'
della diramazione. Con due bit si fa in modo che la predizione sia invertita solo quando ::' ~'~;$! t
... ,~i~~:li',~
~ostra errata per due yolte cOD.se.futiV~'7"1JlFigura.6.39 51 mostra ilCliagramma · 1,1." !!:
'.""\ .

I
) '.;;tt '
eg 1 stati di una macchina a stati finiti avente uno schema di predizione a 2-bit · ":":':.~.J,Il~':, \# ,

- [HP93}. La,. maccruna eli Figura 6.39 e un contatore a saturazione a quattro statio n ~,, ~,\;;, ," l' • A·

· . ,~ .. ~
suo contenuto viene incrementato quando la diramazione ha successo, decrementato ',' ,"'~~;~"''''
•~~ 'i
".,~,,,,,
.
""',\' ' I"')
'.1:0' /. '
quando non ha luogo. • ',~ ;f.' }
- In Figura 6.40 5i riportano i risultati di uno studio sperimentale Bulla probabilita. !.>~:~~, , ;~
I che ha una diramazione di essere eseguita in base alIa sua storia passata.
Poiche l'a,.ccesso alla tabella di predizione avviene utilizzando i bit meno signi-
~..
.1r:'~Ii: ,
·
i ,'ii:"",111
" ,.. '
.' ,:.I<
,.\•.:,,,r.,
·""M u. -
• .:'\'.

...'. ..
I.

,~;

'''~~1~' r
ficativi dell'indirizzo dell'istruzione eli diramazione (Figura6.37), l'accuratezza della
.'",""'.. "
I
".:' .~'I~'
schema eli prediziane dipen<;le non solo da! grado di correttezza delle predizioni per '>~.:t
,,\ ~"",

> .,- " '


ogni diramazione, rna anche da! grado con cui gli elementi della tabella di predizione .' '~ "'I;
'. :"il~,Mi'<'
'f;
I'
sono realmente riferiti alia dira,mazione in esecuzione. La studio sopra menzionato, "
,~ '~l"
''<I"

[HP93], ha evidenziato che 1a probabilita di correttezza, nel caso in cui la predizione ,J"i' ,.t, !'>

-

.: . _
'h;t '(
e
I si riferisca ad altra diramazione, di circa il 50%, mentre nel caso sia effettivamente
e
riferita. alla. diramazione in oggetto di circa il 90%.
Indicando can P la probabilita che ci sia. corrispondenza
, tra l'elemento della
:I,r,i't1'
••;
." .....;tj.~
. ;~i\i~jf
.. flt!~,!l
"".,; •.,'
'~

·':.j;'.;
tabella e l'istruzione di diramazione, con 'Pcp 130 probabilita. di carretta predizione e ·-'.,a,->
- . ·'a:1"
I COD 'PcCP la probabilita di casuale carretta predizione (ovvero di carretta prediziane nel
caso in cui l'elemento della tabella si riferisce a un'altra diramazione), Paccuratezza
A (ovvero la probabilita complessiva di corretta prediziane) data da: e
"':<~';;
,."'".~!{.',
,.~;~ 't
"I,~~,,
'..:'\,'<:1-
.··\"..,r,
"~'.);;qi.{
- A = 'P,. * 'P + 'P". * (1 - 'P) (6.26) ,·r~~~.,

I 22Si parla di taken/not. taken $Witch..


,-;liJ1:·
'l:,,~'i:
• ',"1 1
" .r';,.:L
~,~1P':
"'~'l
,,"'
, ,,'~~" ",
',0, ~:.

,Ji '1i~"'J
".~ ..
· :.,..:f ,,
· "'.
J
.. ,"
":','
:"", '
,,",.•

tf[~·,'
,,··
,

:
... La pipeline 259
";'
!'~.
i" ' ..
;..'", .
"'."'"
.,', ;
V> s
~Y~~Q~#~

.~~'..
t.:<_",. ,
11';"':'
-;., ....
''-'"''
:;( "
'" . .,'
.....
N,.,- ..
' " ".' .
,
, '
(

Pr.dll. dl
11
~

.UCCU30 -
ralllmcnto

ueceuo
.. \0
PUdi1;, di .ucc•••o

\::,.": ..
~~7">
~~.,
Y., ll:rnento

p' ">'
Successo
t,:,',,".. , -
:-;':;.' ' Succeuo
Jf:· 00 01
Prcdh. di ,.Ulmento
.:.:;.·,',:.. . P~edi1;. di r.llimentG
"'-l F.lllnunt 0
.
.!"

..
"
',,,,~
:,',,'-
".;.-. ~
';"'C'
~",,:,
,..
'0':'. F·Igura. 6 3"l,II O·Ia.gramma a statl. con uno sch ema d·1 pre<IiZLOne
. a. 2 b·It. S·I tratta <Ii un
;:.,:,. contatore a 5aturazione (I'esito di successo neUo stato 11, come pure l'esito di faUimento
:;;:'/ : nello st~to 00 no~ provocano ~ari~ione) I molto di.ffuso.nei processori moderni, spesso f~c~nte
;~;::.;... parte dl un predlttore a due hvelh (eft. 6.12). Gh statl 00 e 01 danno luogo a una predlzlone
;~:(":. di fallimento, gli stati 10 e 11 fanno predire successo.
:r·,'- "
ti'.j.,/
'" 'P,(SS) 0,97
0i:::
." ... 'P,(NS) 0,61
~:_r"
.;., >'. •
h"
":~'
"-- '.-
1',(SN) 0,54
I., ~.."'.
!,~. ,
',I' 'P,(NN) 0,11
!b;'~ ,'.
",.--l'" "
., .......-
.• __
·~'' ~-
- . Figura 6.40 Dati sperimentali sulla probabilita. d.i successo eli una diramazione in fun:z.ione
;','.:",'
' :......',. degli esiti pregressi. 1l primo pa.rametro indica l'esito precedente, it secondo l'e5ito ultimo,
per cui, per esempio, 'Pt(NS) e la probabilita che una diramazione sia effettiva, quando
~,~;t

t~~Y;" in precedenza non 10 e stata.. 8i noti che c'e una probabilita. del 97% che, se una dira.-
~ i 2':~: ~', '.
::... ~'>':" mazione ha avuto successa, la successiva esecuzione abbia ancora 10 stesso esito. I dati in
..
')"','"
,.,.-,
questione provengono dall'analisi riportata in [HP93]. Naturalmente, esaminando differenti
#:~},~:',: ,
..'.".
·,,~·A,:,

,,
~".<'""'"
.~.'
',.';.':;.
applicazioni rispetto a queUe consi.derate in [HP93] si possono ottenere differenti risultati
mat in ogni casa, risulterebbe sempre evidente 1a stretta relazione tra la storia passata di
..;:.....,.,
'.,~ -
}:""«;,', .
. una diramazione e la sua probabilita di successo.
;~~.;.<."
~"':(''''''''''.
IO'("~>(" •
,t~~"
'';;''. '. •
;-..... , .
'. ,...~~".,'" ~~
-!;J{-':' ~;.
= =
e quindi, data che Pcp 0,9, P ccP 0,5 e P ; ; ;: 0,9, si ha che l'accuratezza complessiva
r,n'/>·:·' della predizione vale A = 0,86. Si noti che se it tag fosse costituito dall'intero indirizzo
" ",.
I":'::"',,
'''.
".,,,,,.' ,",'
della diramazione, si avrebbe P = 1 e l'accuratezza salirebbe a 0,9, migliorando del
~: '....".
''t!'r .•.
'>",,;-''' .
,~'" "
4%.
:'i:,;,,~;,
"f,'"''
"' ,,,;. '-:~" '
,;C,"
'f.I~.;,
_. Ii\: j".:,
,1••{./'· •••
,~!;~ ,;,
-:1-:;1.: .
;ft ~'.
6.11 Branch Target Buffer
;.·.;'F'.:
l :t[.,\'-:'
\!'i~'"." ,
t"'j~··
->"'.;·· E stato gia osservato (Crr. pagina257) cbe can la Tabella di predizione delle dira-
:,'!'}.":, ;
::',;,,:'
mazioni di Figura6.37, il fetch dell'istruzione all'indirizw eli destinazione pub iniziare
,
t~t.~
,"~"
,;'.'.,
'. ' e
solo al cicIo successivo a queUa in cui tale indlrizzo stata calca1ato dalla pipeline.
- ?~;:'. Senza altri accorgimenti, it vantaggio della predizione consiste solo nel risparmio di
, ""","; ,
{ ~:~;:\.:': tempo dovuto al caleolo della condizione di diramazione,
':.,.,'t, .
:· ,';<j'.: Si otten ana risuitati migliori se, oltre aHa redizione delPesito della diramazi ne
:: ".",,>:'
<1'"
L ';:"'.", i riesce a redire pnma 05S1 1 e termine dello st 10 anc e a BU destinazione.
Cib e possibl e con a Tabella delle destinazioni i diramazione (Branch Target Bu er,
--_.--.
I.'.'. '
l">"'"

-------~~ ~ ch ~~J 2:~---·


,'~" .
"
.j;"-,,.
~',.,. ,
J".. ~-li?~~'
j.'t~~~'"
'" .
,' "1; ... '
,.. .-
1[>;
260 Capitolo 6 ;:::~
1",
,.1"
" '. i

BTB), Conoscere questo indirizzo gill a1 primo delo di clock, anziche attendere ilsuo':':;~i'
calcolo , permette di effettuare immediatamente it prelievo della relativa i5truzione, 'f;
azzerando coal il ritard6 di diramazione [GL93j, '.'i~
:'~I'~it
, ,'II\)'
'.;:"]
'~~j
. ~'..

.)~;.
I pc corrente I :~ ~:~.11~ J
.".tt:;
PC Isln.Lzlone PC dl de.llnu:lol'le Stall.l,
.. ,itr,
~
',:.:~~
.'.;:~f:JI
"/:il~
•J ':-':,if
~i~ur~ .6.41 T~?ella ~elle destinazioni .delle ~iram~zio.n~ (BT~). L~ p~te tag della tabella "",,~f;;:'"
e Imdlnzzo delilstruzlOne, fa parte datI contIene l'mdmzzo dl destllla.zlOne e Ie statistiche )'it"!i'"
relative a.ll'istruzione stessa. Per quanta si riferisoe gli indirizzi utilizzati per a.ccedere alia. ::';;;~fi;5'
tabe~la (pw:te TAG): q~esti pos~on? ess~r~ me~orizzati per intero oppure parzialmente, ";~i~'
eons,dera:nd?ne solo I ~lt Illeno slgmfieatl':'l; oVV1.a:ment~ n:l ~e~ondo ~aso sulle prest-azioni :.:i~t;
del BTJ:3 l1~clde~an.no Ie .lOt~erenze tra le dlffer~n~ns~ruzlOm dl di.ra~azlOne con uguale parte ':t~~
menD ~lgnificatIva dell'mdirlZz~. P~r qUaD:o 51 r1fer~sce ~l~ .statIstlche .per la predizio,ne, .Ie '/~i,\a
~a~~lDe ~o~:rne us~o preditton a 2 bIt 0 predltton ptu eomplessl, come quelli a due' .~.1~~
hv~lh ~~Crlttl m segUlto. '.. .' . :~~,~~
. ../:;\:1<,
. ,~';M~
n ~TB e ~na cache ~i d~ensioni modeste: il s~o fo:mat.o e.il~ustrat,o in Figu·.' .~.~~~
ra6.41, II" funzlOnamento ill Flgura6.42. Nel tempo In CUI un'l5truzlone VIene prele-, ·:.~,~~~
vata ~a!la memoria ~fase IF), viene anche coufrontato it relativo PC con gli ,indirizzi ."j~,,:
presentl (come tag) In BTB. . ,,' . ~1i~'
.f'~f,'
e e
•. Se l'istruzione in BTB, essa sicurarnente una diramazione e.la sua destina- .::':'~:
zione
. e contenuta Del primo
. dei due campi della parte dati della cache. II c'ampo, .
:'}l~
~YT~~
'

contenente Ie statistiche di previsione consente aHa CPU di decidere se la dira~


rnazione sara effettiva a no. Se la predizione e di dirarnazione effettiva, la logica \:~7~
preleva l'indirizzo di'destinazione direttamente da BTB. Se invece la predizione ::fi
e che la diramazione non avra. luogo, la logica di CPU continua a prelevare se- ~~~:i
quenzialmente Ie istruzioni secondo l'ordine testuale. Naturalmente, se a verifica :·:.~h\
della condizione di diramazione la predizione si dimostra errata, la pipeline deve :".~~
essere svuotata e il caricamento deve essere ripreso, In ogni caso, Ie stati"stiche :;X
di previsione vengono aggiornate dopo l'esecuzione della diramazione 23 , "J:;(
;.",.,
,,~,q,
",:.y,
• Se l'indirizzo non viene lecalizzato nel BTB, rna si scopre che l'istruzione e una /~?r
.Ji:
, ":.
23Poiehe a· BTB si accede con l'indirizro dell'istruzione di saIto, si rende nece'ssario almeno un .. '~?(
registro temporaneo di CPU in cui salvare tale indirizzo per gli accessi suecessivi di aggiornamento ''';'
del BTB, come pure deve essere salvato l'indirizzo (PC+4) dell'istruzione che nell'ordine testuale ::.;'
segue la diramazione, per pater riaggiornare iI valore di PC in caso di fallimento della previsione. ,~>.
'':f;'
,.'"1,
,:~~
-;F.-
r..:.,':'-
-.-,'';:~;'
;;JO,"::'"
j''''
'..... - '
\
~;1~\..,:
f~f;r.> . La pipeline 261
,~~~ffi"1' _ ..
~~il~''''''
• jO.. ..,)-.
1
c,~.
I~'
...",'
. ·,~~';ll:~,~
,
. 'to' • ,
~

.
" " ... '
'1'" :IS'".,
~,

_,.0:: ........ -.,


;;!~~ ~.
diramazione, la logica procede secondo una regola predefinita24 • La nuova d.ira-
mazione viene inserita in BTB, can l'indirizzo di destinazione e can la statistica
,1.",':'0',
,"""w"
,.;:....1-,.
. corrispondente a questa sua prima esecuzione. In questo modo, assumendo che Ia
;t·~11~"j,j,'
{W,o""
~.

.-
teenica di gestione di BTB sia LRU, la tabella finisce col contenere i dati relativi
1
~.:,t'~:t:: -,..
d~fr!;'.··. '", a.1le ultime istruzioni di dirarnazione incontrate dal flusso del program~a.
:: ~"'~\!Ii(: .
~)~.
., ,t:.\''l.;':''
'.•
,l~~:/:;:: Incidentalmente, vale la perra di notare che l'indirizzo eli destinazione cleve co-
Q:;~:<" .
munque coincidere con queUo calcolato in EX, in quanto, se (come succede di norma) J
J ;:.:~;'i:·::'.", it campo tag del BTB contiene solo una porzione dell'indirizzo della diramazione, la ,
~~};~,:,.:, destinazione fornita: dal BTB potrebbe riferirsi ad altra diramazione., con 10 stesso tag
, ,~,~~(?,' di quell~ corrente.. In altre parole, potrebb~ accadere questQ:. (a) Vlene pre~etta. una
";!;:i~'::'" diramazlOne effettlva con conseguente modliica del PC e prehevo dalla qestmazlOnej I
I, ';~~l::,:' ,. (b) una volta caIcolato l'indirizzo di destinazion~l si scopre cbe. questa e'diverse da
~;.(:?~~),.,': que!lo predetto da,. Brr:~. A questa punta non c~ ~ono a:IternatIve: PC deve essere
::-'~~~t:';',
~~i~~i;:":
agglOrnato 0 con I mdmzzo calcolato, se la preVlSlOne di saIto e confermata, 0 con
quello'dell'istruzione successiva (PC+4 nella nostra architettura) in case contrario.
).
'J~~:~A~' :-
' ,~i;;:;~;P
"

' ;l~~{.,:, 6.11.1 Prestazioni del BTB


;~J~f~~':: ~:::::=--..:..:..=.:.:=-:::=:..:::-=--::.::.=- \.
~r;id~;~<, , .. .
a f1~~!~f,~,:~: ~ ~n ~bel~a 6.9 .vl.e~e nportata la; p~na.hzzazlone a.sso~lat.a ~e diramazlOnt. per 1 ~ffe­
i~~~;~'::.", renh Casl posslbih. La tabella SI rifensce aile ass~lOnt nportate nella dldasea:.ha di
~" f~Jt:~"" Figura 6.42: .(1) la valuta.z:ion.e ,della :ondi~ion~ di ~iramazione viene effettuata nella 1
j·~~'f:,: fase m; (2) 1l calcolo deU'mdinzzo dl destmazlOne In EX.
'\,;~~~1ri;~",' . I casi 1 e 3 si riferiscollo a istruzione in BTB e predizione corretta: non ci sana
~[\q;.~;;;~ p~rializ~~ioni e l'es~cu~io~e procede se~~a ritardi25 . .
~;':&:f~:;i:f' '," Le' nghe 2 e 4 51 nfen5cono a preVlSlone errata con lStruzlOne m BTB. Nel caso
.

:. t~~;::. 2 si inco~re nel. rit~do di un solo ~iclo di clock per~e,. ~opo il prelievo dell'istruzione
.
I-
' ~~3>t ~rr~ta, 51 ~uo ,npart~e ?r~levand~ In sequenza (dall'mdinzzo. PC+~). Ne~ caso.4 in~ece
,n

' ~~;:f'" il fltardo e dl due clch dl clock m quanto, per prelevare l'lstruzlone d.i destmazlOne
: i~r~tt· corretta, occorre attendere che questo indirizzo sia state calcolato, ovvero che sia
~~ '.~;~1;::':.; conclu5a la fase EX, rimandando it fetch al prossimo cicIo.
I-
~,~~;;{:).: Quando Pistruzione non viene localizzata nel BTB (casi 5 e 6), la logica di CPU
:
~1'.0:~~g' p.roced.e prele~do l'i~truz,ione sequenziale successiva, ~ome nell·ipo~i. d~ dir~a­
it~ I~~~~ ,~lO~e con predlz~one ~1 fall.unent~. Co~~guentemente, SI hanno d~e CIC~I di penallZ-
i'~ ~:~F' z~ziO~e nel caso 10 CUI la diramazlOne e dt succe5SO e ne55una penahzzazlOne nel case
)
\P, :lA~!> dl falhmento.
~~ ~.~~~\'"
' .. . . ,
, . Occ0.rre sottohneare 11 f~tto che q~anto. nporta~o In Tabella 6.9 e }IDa semplifi-
.
\
X:, n',:':> ' caZIone di quanto accade nel processon reali. Infattl, anche una predizlone corretta
~l~ ::.:t;->';~/ ha un casto. Una diramazione eseguita, anche se correttamente predetta, provoca
I ,.
,~,••/ ..1.., ~,
, ...'
~'.,
,;,. I,:, ,),,:,"- "
r~p.tf.r .
24 La regola piu semplice consiste nell'assumere che la dira.mazione npn abbia luogoj una regola

:~~ t,:~:·~,:, piiJ. raffinata potrebbe dfarsi, per esempio, alia predizione statica: diramazion8 all'indietro predetta
.;~ ;(~'''' '.' come effettiva, dirama.2.ione in ava.nti predetta. come non effettiva., 1
(,I~ :~;:.~';~ '. , 2s Si noti che, per quante detto in precedenza, nel caso· 1 ~ necessario verificare a.1 termine della
'r.~l ~t~· . <·,::, fase di EX, a indirizzo di diramazione calcolata, se questo coincide con quello fomito da BTe. [n -
;';Cii·:~'::.··
.;~~~r~;~,:,
''~'ti ;;':'(~:
:;~ ''''''''.
caso di discrepanza, la logica della CPU deve concludere cbe it BTB ha foroito'l'indirizZQ di altra
dir~~ione, interfe~ente c~n quella corrente a causa de.Ua limitazione.del t.ag. Se e'e discrepanza la
predlzlOne e da COfiSlderarSI errata e, come nel caso 4, 51 ha una penahZUZlooe di 2 picli. I
~t;.. f\;~"i;:'
:~~:f
t ';L',
I 262 Capitola 6
·tt:C-,
",·....~;j;
.,1..1, I "
l~:'
~~./

__
.~~..;
....
'·".'

';:,:l~ -')::.1
'~~:
· , . .>,
! IF
..PC 82:
, memoria , l' A
.
·'~l

)~ . I

2\
'1; ~

'"~'"
;l'~,'
".
'.,
.

?,.. l
" . , ,
NO /h.Il? " ':~~

I )l
~ prell.Uo
<~i~'
""I·ill ":'".
'M" ,
· ,i II ';-- ._:
'CR' ....-!"
"'r:.
.. ;,~-y.
m memorl. · "';;ii:' :..".
"
B
'" dlra.mnlon •.
'.- '.~'!
I,\.-'" :"1,. ., ..

I ~
..
. :~!lf . '.~
,R::' ,-.
,,1;,;,1,-~ -~' .
..-.;_
NO
Pr.~e~·
CDrT" ..
Sl ".~",g{
...
;";''1.,: ;',-

.. 'if.
:~~,,,
~\>..
....
.. ", .
.
'::'S:~ .~.{
( EX c."<I1,"
del.
• lnnrimento Elhnlnnione :ffl0nu,m"ote
,~t'•.~ ," ',
,·1~""1'
.. ,,; -";1",",

'" '" d.U'I,trudon.;


<:&10010 del
PC _Item_tty,,:
... I,Uch..;
pro.ecu%lone
. .IIU .l&1Il
-"'.t'~ ~'';'_'
,,'.':~'~"
..:t;
..:·;d<
!4..
...... ,
,,~,{
Pn.U.vo ddl'&!tn
dullnaziolle , .',..r·~:...,_;. ·~.l'
,..<!.

I Figura 6.42 Trattamento di una istruzione in presenza del branch-target buffer. Le tre
'. ~.",'""";'l'
,' c
ki', ""---""..
i .. ~~v";,'
",.'
'-'''c
,:,'!X ':--
·_<'/....... :." • _:.
:;j""• .•':;..
, ·.\oG?,c "'"~
.,
'i:_',
fasi IF, ID ed EX si riferiscono ad una generica istruzione. 10 schema. assume che: (1) 1a ,,',:.;.tr~':~f'.'! '·""

'l;'~ !:. ;{\~


,I valutazione della condizione di diramaziooe sia. effettuata. in ID; (2) i1 calcolo dell'eventuale
indirizzo di destinazione della diramazione sia effettuato in EX. 5e l'istruzione e presente j'-,,, .;~'
in BTB) e possibile prelevare l'istruzione di destinazione attraverso Pindirizzo fornito da! !~JZ~ ""w"-'t -.·1
i~?
campo a cib preposto. A seconda della condizione di diramazione valutata in fase rD, '::":~¥~f'~
nella fase EX dell'istruzione di diramazione la logica di CPU: (a) continua l'esecuzione ': 'l.'';1i.'t .;[-¥

I . ,.•;rl1i1!i ·W
senza. alcuna. penalizzazione; (b) elimina. l'istruzione dalla. coda, aggiorna. BTB e preleva "fMTfiI ,:"~
, ..··1' ::il :~;!
Pistruzione dovuta.. Nel caso in cui non si abbia hit (del PC corrente), Pistruzione .pub ';:''!'~:':1 "\"
~;" .. '':iJ
ancora essere una diramazione. In questa caso lao diramazione viene inserita in BTB con la .. '':'''''\'
I..
..•,
,.>
"~"
"'~"f';

'!. ,'." B.
statistica corrispondente all'esito di questa prima esecuzione. Nell'escguire per Ia. prima volta ",$0::: ,:!"
': ~\j, ;;

-
I Pistru~ione di diramazione PUQ essere tentata una. previsionc secondo una logica predefinita ,,,':~I.:,w 'i~
.',.~~,,\ :'i;:
""~~"'i:"'~;"I'
:';;:
.r ." <.
.;~J.I:"
t",;

::(l~~~ 1:1
• "'~
'(i

"-'''~~l'
, _,.l,:,l.',to.. ,:w,
_··~it~: G·
,...~1

-
I comunque un'uscita dalla connale sequenzialita delle istruzioni, e il tempo di accesso <t~4 5 ~', '.' "h if=
?r
_>".,.,'nI: . J
'''J'''m;'"

. alla memoria (che sia la memoria cache 0 quell a principale) puo' essere tale' da non per· -'..r.~.:i'~'
'\""fC' ","

-I
'.'
-:;{; ,:" .'

mettere il prelievo della destinazione prima della conclusione della Case ill. Talvolta, ". ;:'..~t:J
••......, r
;"~
,"..""", .l>
per superare questo problema, viene aggiunto al BTB un quarto campo contenente '>l.t'··U
! r,v,
... ,'" "
.,. ,~
,.. :r,.,", ':"
alcuni b~ relativi alia destinazione, in modo da evitare i1 loro fetch da memoria:. :'::ffi~ "'
- Questa soluzione, presente solo nei BTH piu avanzati, rende immediatamente dispo- .'l'P':.
';-,
'.,-.~'>

;:

· ~i':jj~ 't
nihile Pistruzione di destinazione, eliminando cosi il ritardo dovuto all'accesso aHa -~,'~'":
- I
,::
":.~~'~ :i
memona. ""j' ,'
,c~··· _,
~.;.... .!<"
··"~-~l' ':
-
·;~f;~':'r
I
.,,:~~".
:
- e
UnJaltra importante diHerenza queUa relativa alIa gestione delle diramazioni -
.,'1, '!
..''!.).'':
· :·0J";::.'
~,~

; .,
~

non presenti nel BTB. Per queste si utilizzano metodi di predizione statica (come nei -."'·l·r
... '.. ~;'··,t .
- processori della famiglia P-6 dell'Intel). Ad esempio: si da. predizioce di successo aIle , ,,';I'ti! ~
·'?h:';&··"
diramazioni.ali'indietroj si predice fallimento per diramazioni in avanti. ._,~l\;,,~ .~
."..:',,';'
. - ~. '
-- 1 ... :t:9:»
•-.'" _.' '~;
, :';',',li5P' ~~
':!;~~li@: 1·
·~
f\:,
'.': .:
,
'~'
/ :: La pipeline 263
;.:>;.
...".
',,'f
'

1..
>,
. Caso Istruzione Predizione ito vicli di
,
nel Buffer penalizzazione
l . 1 Si -Successo uccesso 0
'''-
2 Si Successo Fallimento 1
T 3 Si Fallimento Fallimento 0
,":- 4 Si Fallimento Successo 2
..•
5 No Successo 2
6 No Fallimento 0
~
.- ~
.. Tabella 6.9 Penalizzazioni di salta in presenza di BTB. Le prime quattro righe si riferiscono
_ •.
a.i casi in cui Ia. diramazione e preseote nella tabella. La. penalizzazione di errata. predizione
...
.'
,. ' . e di due cicli di clock tranne che nel caso 2, dove si ha. un sofo ciclo di penalizzazione per
Ia. disponibilita. dell'indirizzo di destinazione (PC+4). Si e fatta I'ipotesi the, se l'istruzione
{:
,..', non e presente in BTB, venga predetto it fallimento.
1'-''':,'
,'.-,'".
'\<' .. ,,"
.:t)",~ /
,· •. -t , ..
{:- .<:
';·,·~l>
.:":.,:,, ,
..." I,
6.11.2 Ottimizzazione del BTB
"'~'~",. ,
cI'j'': ."
.,,, .,r'...
-t';". ".
'...
.-1. •,. .' Le prestazioni potenziali del BTB crescono all'aumentare del contenuto informativo
~,-.;,,,
',;; ,:'
"-1';'"
di ogni riga del BTB. n dimensionamento del BTB eun tipico problema ingegneristico
~t4~.;;" di ricerca del miglior rapporto costojprestazioni. Si adottano i seguenti tre 26 criteri
'i,~>' geoerali [PS93j.
?~~':":
1·••. ' .. 1. Se una diramazione non ha potenzialita di migliorare Ie prestazioni) non deve
~~~;(L essere memorizzata nel BTBj
-¥>-:.;.."
W~a.~ ",'.-
~,~,~,,p'
!'i/'j'~l~, 2. Quando e necessario eliminare una diramazione da! BTB, viene eliminata quella
"", ,,', ..
,-'.,., .• '
J,i',t-""
> '".
con minori potenzialita. di prestazionij
"""-'.
.~fJ:"
",."" " , 3. Un BTH multilivello , in cui ogni livello puo contenere un clifferente numero di
t~;P ,;. :',
~ "?.-, ,
::':"." ,. righe e, di conseguenza, un diversa quantita eli informazioni per riga, deve poter
':';": , riuscire a massimizzare le prestazioni ottenendo un miglior bilanciamento tra il
;;.;.:._ .
~~~ .... ,
i',"~>' numero di righe entrate e la quantita di informazioni per riga.
1*:.;~::: '
,;/ ...., ",',
w·,' ).,'
·-,.;,' .·. Dei primi due criteri si parla qui di seguito, mentre al terzo ~ dedicato il Paragrafo
r..... '~.,.
J"'.1.;.\ • 6.12.
"·'t~•. · "
=-__, ,
,(%~(,(~'" '
"
",n,,\::

~~~':
~
'. "'
. Quali diramazioni in BTB? Essendo il BTB limitato, si deve decidere quaE
diramazioni esso debba preferibllmente contenere. Dal primo criterio sopra riportato,
11',.'
>U''',
I' •

./\., . ,
si deriva che conviene inserire nel BTB Boltanto Ie diramazioci eseguite con successo.
"",
'.. Infatti, se la regola e quella di dare una predizione di fallimento per le diramazioni non
~.',
-,:-~,.
in 8TB, non conviene tenere in BTB quelle i cui bit di predizione darebbero fal1imento,
t:.~".
:;';',',' in quanto si clarebbe una predizione pari ad una diramazione n'on presente.
i'~' "
'~'.,-,
,,""-..:.
::';1''-
260vviamente, la gestione del BTB come cache, can possibiliU. di interferf!DZa e conseguente riso-
rj::~
','.
luzione parziale {Fag97j, e di per se un fattore di risparmio nel con8umo di bit per Ia. realizzazione
!' :. del BTB. E' questa la soluzione adottata da tutti i costruttori, in quanto i benefici derivanti dalla
~.~
- .. riduzione delle dimensioni del BTB giu8tificano il costo in termini di accuratezza di predizione. Per-
,"di,:'
..,.'
., ... .-
f,''' "
• altro, si ricordi che, 301 tennine del Paragrafo 6.10.2. si era osserva.to il data sperimentale secondo cui
",·' ." il migli.oramento deU'accuratezza delivante dall'impiego dell'intero indirizzo era quantificabile in un
'." ." ..
~.:..
.~.~. ,,'
~.1'.,~
;{:~" l
"-
4%.
~.1,:'t>..:V·.'
·. .~l~,i·
,
,.
;
J~
,~
;t

11
264 Ca.pitolo 6 r",
'I .
,
..:=.llil
" ..
'. :r. :\
Gestione del BTB Si osservi che Ie entrate del BTB che hanno maggiore utilit" .)1; ',
"',:,~~
sana queUe che permettono di prevedere con successo diramazioni can esito positivo.
Entrate relative a. diramazioni che hanp.o raramente esito positivo, ache vengono :"'~'IT,
:';',11; ,
;,..,
incontrate di rado neU'esecuzione del programma l hanna invece scarsa utilita. ". .. ; ....
."J!;
Ua.lgoritmo LRU I d.i cui 5i e ampiamente pal;lato nei capitoli dedicati alIa memo· ". ,
·.....
..· 1,:'','
,

ria, e il naturale candidato anche per 1a gestione del BTB. Vordinamento LRU tende "('~:r.
• '~;Ji
,". ~'",~ '

a jndicare quali diramazioni hanno maggiar prababilita di essere incontrate; Ia staria


della diramazione indica invece 1a probabilita che esse hanno .di avere successo.
· . ,,,,
"",~,:~,~~,
-', ','
- .,...<!.:\:

Un buon metodo nella determinazione delPelementa del buffer da eliminare uti·


" '.•, .:.:1j
.,,: .-
. ',..;""
...
.:;·,,~. . ~'.",
i'-'
lizza I'a1goritmo MPP (Minimum Performance Potential) [PS93), In base a esso viene )V~,·
,.""
"'i''f:~r
-'~ ,.,.';t
eliminata l'entrata con minimo potenziale d.i prestazione , ossia quella in cui iI pro~
dotto tra la probabilita. cii riferimento e la probabUita di esito positivo e minima. La .:.. -., ~,.,'.
,'i.-.... ~'·
.;",H
'.-~'f~,
probabilita. di riferimento (che indica l'elemento del BTB con minor probabilita. di C5- ....",1,1'
c·....
I',. .••;,,~.
sere incontrata) e ottenuta empiricamente come funzione dei bit LRU. La prababilita ,
.,.:)'1:
.,.' ,
che una diramazione abbia esito positivo e ottenuta dalle statistiche di predizione. -" .'!.'
':',,:.'\'~
.,,~,"~
,,~:,<l
'".;\.'.
" '.1'
i""
" ,,""
1'" ~ .. ' ..
6.11.3 L'unita per la predizione dei salti condizionati ",.·",t'~
'".' .,r--,.._.i
del Pentium ~<l'
.;· .,'-'
..,'~:t'
., . ,
:"i'"
,"
'" ..
· .t.(~~
", .;....:;'
II BTB del Pentium hene traccia delle ultime 256 istruzioni di salto ed eorganizzato ·\i~d.,
",'" ",
come memoria cache associativa a quattro vie (vedi Figura 6.43). ,,"',''';''
~~~;:.~;

.:)::,~,
, ... '.
...'
.~, •. (!
".,..~i
.......,.,.
, ::;:i.i"i
I I ",~.
('1~
" '.
"
I I ..::~7Ji
• '" ~I.M,
I I ':~{{.
.',~,~
"" ,
,,
000001 '.
;,,,,~;:.~
• .,:~!..:
. ,.
, .....' \..~"c,"
;..;
000010 ,I.~'>:'
. '\ ";;i':
'C, ',,"
,~,
~,:

, '.
:,1~
;. ,,:
. ...?.......~
:.'"\-,~

HU10l
.
-
.
'i'''1

",'-;':>
;'}.'"
11111 L "";
..
"~'{:
bit 0-5 TAG (bit 6_31) Indiriui di Bit di J: ,:;;
,.
Destin.... ion. Predi'Z;on.
,,~ ~'
.,\, ~

"
Figura 6.43 ETB a quattro vie del Pentium. 11 campo a sinistra bala funzione di TAG per ..r)
130 ricerca associativa nella cache. La "storiall e su due bit. 11 5TE tiene traccia delle ultime ,~(
. 256 istruzioni di saIto condizionato. I bit 0-5 delPindirizzo di riferimento della diramazione
sono utilizzati per accec;iere a una. delle 64 entrate per ciascuna via. I bit 6~31 sana invece '. "J
utitizzati come TAG. La. sostituzione degli elementi del BTB e regolata da. un algoritmo di '\
sostituzione pseudo casuale che elimina un elemento quando si banno quattro elementi e un
quinto e in arrivo con gli stessi bit 0-5. "'
.,;:
.' ',:
..,
"
~1'
,~-.-hj'
.~.~rt·,
;r'~' -.
\
~1f.;": .
,~ ".,
t':, ~"""
'-I
,
!
La pipeline 265
1"<' ,c '.',

".'···
,fr'· .•'," '
_ .. ,'"
{:;'::. 1
.~;.~ ...-.~
\ 'r:
"
Ciascuno dei 64 elementi (per ogni via) del buffer contiene:
',: '
.~,

,",.' '~:"
'

"
1. gli indirizzi delle istruzioni di controllo del jlusso esegtl-ite: gli indirizzi, utiliz-
zati come TAG di accesso ana tabella , sono memorizzati parzialmente , ossia
I
.
,
considerandone solo i bit meno significativij ,
'''',

,.
',-

.-,',
:
'
'.
2. gli indirizzi delle destinazioni a esse associate: si rnemorizzano solo gil indirizzi I
di diramazione effettivaj in caso di fallirnento si preleva l'istruzione sequenziale il
..,. .
"
'
".
".\ cui indirfzzo egia disponibi1ei
.
,; ....;'...'
' "

3. le statistiche di predizione: la predizione dell'esito della diramazione e ricavata


j
,;;;
,.
'. ""
.. ,"
grazie a un predittore a 2 bit.
,. . .
,,"
c,'," ~.'

l.~
.'
. .' '.
........ 1
..;.:.' ' '
A un data momento , il prefetch che e in funzione carica sequenzialrnente le is~ 1
. ' j
truzioni dalla cache istruzioni. Se entra un'istruzione di salto condizionato, si attiva
,'"
•.
. il meccanismo di predizione. L'istruzione in que5tione puo trovarsi 0 meno nel BTB
~ ., T'
..
(a. seconda cbe un TAG contenga 0 no il suo indirizzo).
... '.. \
..'
.......
"
~ .. ;'' ",. ,. Se l'istruzione e presente in BTB , il conten~to del campo storia fornis~e l'indi~
' -:-,..,; :":"
, ::'..,:, cazion.e per predire l'effetto delPistruzione. Se la predizione e di nqn saltare, it

,
.
,
;

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

~.,"~;y .
......
""',
,. caricamento delle istruzioni continua i.r\ sequenza nel prefetch buffer in fun~i9ne,
altrimenti il prefetch buffer disponibile comincia a 9f..icare istTU~ioni dall~indiriz­
1
i
.' ."
,\,,"
zo di destinazione d~l salto (questa e gia in cache e quindi non richied.e perdita
i;;' ,,::,,:.,.:. di tempo per essere calcalato) e ve~gono aggior~ati i due bi~ di storia. Se Ie
.,. ..' .
~ 1,'\' :,'1',.',
i :,;;,,;:~ .. " previsioni del BTB sono corrette non si verifi,cano conqizioni di stallo, In caso \
,~ , .. I",') "
.. 0;";",' contr~io viene svuotata ~a pipeline relativa al. percorso dimostratosi inappro-
,;. .'" \.'
.'~, '..','~'''.';
,.. ..
priato e riprende il caricaniento deUe istruzioni lungo il percorso corretto, con un
:> '," .
'

ritardo minimo di 3 cieli di clock se l'istruzione e in U e di 4 se e in V (vedere \


; :.' ~..;.
"':
'
:~
"\ i
, .......
-::".,:;
pili avanti) .
I
," /.... . ' ','

• Se l'istruzione non e presente in BTB, 130 Iag;ica·del Pentium assume che fa dira-
'

~;
:,'
,:.' mazione non si verifichera. e continua a prelevare Ie istruzioni sequenzialmente. Si
~, ". ,., •
~, ., nati che questa ela scelta pili conveniente. Tnfatti , se l'assunzione'viene conferma:' \
->'..:
1!:
'

~.-
ta non resta altro cia fare e l'istruzione non viene inserita in BTB. Come risultato
i1 BTB contiene istruzioni di diramazione che hanno effettivamente dato luoga
"'i"
;~
' '
L,

,- a un salto la prima volta che il controllo e passato su di esse. Se la previsione


:r
;' ':'
e errata, anche in questa CasOI si ha un ritardo di almeno tre cicli di clock. 1;..a 1
.... ' , nuova istruzione di salto entra in BTB, corredata di tutte ie informazioni neces-
'.:'
~~
. l
sarie (compresi i due bit di predizione), sostituendola a un'altra gia presente nel
caso in cui it buffer fosse pieno, 1a pipeline viene svuotata e riparte it caricamento
I
",-,' ,
)}
dalla destinazione carretta.
(,. ::
,
Ji'
...
>
L'algoritmo di predizione eottenuto attraverso un contatore a 2 bit a saturazione,
.,:'
\" ,.
'.
"''~'t: ,. '! i
analogo a queUo mostrato in Figura 6.39. All'entrata di una diramazione in BTB
(quando per la prima Yolta ha successo) 10 stato della predizione viene messo a 10. I
,·r,'';'
: .,,'
: J,:
..
;~,
~~,

.,'
'~
,;l

-;;,"
r:-.
266 Capitola 6 I
,,;l'~""
"' 'j,
~',

.L1\l
\. 'l'lr
•jV::
if):1>
6,12 Predittore adattativo a due livelli ,.I,~"
·,",I"!
••.•.
~.t-r

La predizione delle diramazioni diventa tanto piu importante qu"'"to


...... ~ maggiore't: la g\:,:,I
'. '
\ p:ofondita. della pipeline e il grado di parallelismo della medesima27 .. In questa genere w~r
cit processori, il predittore di diramazioni diviene di vitale importanza in quanta le ."'" ~ ;j'~~
. 'd'1 e I"lIDmare ."A"
1 1 pravocano n'tar eli rno It 0 eVl'dep t'I, d OVil t'1 all a neceSSlta
errate prediz'on' /1:." ~.'i
!~':.
dalle pipeline W1 elevato numero di istruzioni. E questa la ragione per cui sono stati .' :~'.?kt ;~~4
\ . studiati preelittori multilivello come quelli descritti eli seguito. ·. :~\~.!;,lfb~
L'id~a alia base eli ':ll p~~ttore ~.due
livel.li e. quel~a
di utilizzare il primo livello >J~~~~~
per seleZlOnare uno specifico mS1eme di informazlODl stonche legate alIa diramazione in ... ;l~to;;:;~
! oggetto e it s~con~olivell.o.per ~ffettuar~ p:ediz~one ~er~ ~
la propria [Nai95]. In altre _
parole, al pnmo li~ello SI l~en~lfi.~a la s~tuazlOne Ul CUI C1 51 trovaj al secondo Hvello ',:,:',~i~;jj ::~.:
vengono sfruttate informazlOID pm specifiche volte alIa predizione della diramazione. l/~'ff' 1t;
,,~~~r
f$;

In. [YP91] e [~921 e~tato P~Op?sto di ut~lizzare, per il primo Hvello di predizione, ",:;'.1:~ ·~
la stona delle ultlIDe k diramazlOnI 28 . Per il secondo Uvello si considera invece il· "f::(~ ~~
\ :O-"~I 'iii
comportamento che Ia diramazione incontrata ha avuto nelle ultime s volte 1
in cuiI}"t:-·<,~·F{;r·.
. :.-;.'
',~~'
'il:..
stata precedut~ da! corso. storico indicato Del prim~ livello.. '" ' :"~.~:;~.fiI·J
. Per esemplO, SuppoDlamo ~e, ?er k. = 8, I~ ultlme k d1ramazlOnJ abblano avuto. /f,~ ~~;
11 comp?rt~ento 11100110 (1 mdica drr.amazlOne esegui~a, 0 diramazione fallita). '.. .'t~: ~~
\ Supporuamo m.oltre ~e s = 6 .e che Ie ultlme 6 vo~te che SI e presentata 1a sequenza 3-:~\;~/i! j-
11100110 la diramazlOlle abbla alternato succeSSl e fallimenti, cosl che il secondo ;'lr~~~ J~"
livello contenga la sequenza 101010. n predittore dara predizione di successo, in .:'~~'t~li
quanta la sequenza di secondo Uvello contmuerebbe 10gIcamente con un 1. .<::;.~ }.
\ . !,.er conservare due liv~lli. di .in~ormazione, i:l preditto~e adattativo a due livel- ,1..~·T1i(~~@
li utIhzza due strutture prmclpali: I1 Branch HIstory Reg~ster (BRR) e la Pattern t4JiJ ~
History Table (PHT) I come mostra la Figura 6.44. ..\:-)~ir) ;i
I L~ informazioni sulle quali sonG b~ate ~e pre~izioni vengo~o ra.ccolte in rase di ':"4~~ ~~
esecuzlOn~ del programma e c~n esse 51 agglOrna II BRR e i bIt di stato relativi al ':;~~' ~t
corso stonco. n BHR e W1 reglstro a scorrimento di k bit i cui contenuto indica gli :.:,;l';:; . ~ '\:
,
esiti delle k dir.amazioni pill r~cen~i (1 per successo , 0 per dirarnazione non effettiva). ,,/':;;~~: ~

I Dato ~e il B~R ha k bit, CI possono essere fino a 2k combillazioni differenti , ":';'~I0K ~W


ovvero 2.1: differentl corsi storici. Per ciascuna di queste combinazioni, esiste una' :;~€-i ~4
e~trata corris~ondentene~a P~T. Ogni entr~ta d.ella P~T ~ontiene l'esito di dirama· "i.i:j:;~~ '
Zlone dell~ ultlDle s volte ill CUI Ie precedentl k dlramazlom sana state rappresentate ',\:'~itj :
dallo specifico contenuto del BHR. ".~~:fjrr\. ?
\ AI momenta della predizione dell'esito di una diramazione, il contenuto del BHR, .:"J';,'!j!
denotato can Rc-IcRc_k+I ... Re - 11 viene utUizzato per indirizzare la PHT. I bit di :':,'~k:'i ~
stato SCI relati~i at corso storic~ <:he si trovano .n~ll'entrata ~ella P~T indirizzata da :':.-'~~lf1~
I BHR, serVOllO mfine per la predlzlone. La predlZlone della duamazlOne e data da
z, = A(S,)
',:A;1·:!l1:;N:·
"'¥.:
". , ..".;10.
(6.27) ".'.~i~.;,·;
..,. ..
.~,
"'
.

'';-.:, . (

\
dove.\. e la funzione di decisione di predizione. ,
--""'~~ "'
-. '."r,.
· '-"J1"'l':'~
\:",,
'. : ~'\~.. ,"
.
,. ", "."
, . " ....:i •.
.' .lJ~--\!~ .
'7Per il momento si stanno considerando solo pipeline linea-ri, at prossimo ca.pitola verranna ·, ,.". " '. '
i','~I,
,-:' ,
considerati processori superscalari. .,.,., '

\
28Si pub trattare della storia delle u1time k diramazioni incontrate 0, come vedremo, degli ultimi .)}~.l}.?;fi f
k incantri con la stessa diramazione.

.."',,
. ...··1'
., , " . .
.. .
;;1;11"
..~.,'
',
,

l
,
· .:
·h'l '
;

1
,'l:·,.
,"'"

,' ....
~~"
l\i·i~"' ..

"'''", -
I 1,..,. .
.,
,.
La pipeline 267
j, ,,. ..
""

i/o( .
r~,·i+
:,.,,,.. .
>,'"':,;;';•
!i'"
. i·" ,
.
r;~~~ Pattern History Table (PHT)
I.~~~~::'"
"''-:\ ' cou,. s•..
Onel
r~tt~'. dsllt. Dif.muion~r-~
~"((::'. B h H'sto R "ste (BRR) 00 00 i i
s,
iS':,"<'·
.!:.';"
ralle I ry egl r..
(Per I'.ggiorn~ento trul... Iuultr..)
00 01 Bit di st&to >.(5. )
re.l ..tivi II Predizione
4'~;~':'"
~~::: ' I" 'I' 'I ~e R O O ... 1 0 cOlaO atorico

I 1
He ... H C_Io+

~\:' ! 1
~ '1.:'.
;;'¥'-'"
1 ... 1 0

t
11
1 1
10
11
s, I
.:~/:,:", Logica. per

;.(::::. I.. tr .. nli.. ione.

~t~t.~ Rc_E.ito d.lI .. dir .........;on. di n ..to

~""'"
i¥,~'::-·
'~~~,~"
.,?: t~·
"
J~tr.~·' Figura 6.44 Struttura del predittore adattativo a 2 livelli ideato da Yeb e Patt. Le 2
k

;~~;':~'~ entrate della PHT sana essenzia.lmente dei semplici predittori a un livello come, per esempio,
~1M:\· il contatore a saturazione a 2 bit. .
-t}!'.'
"~iti::"':
i~~;:, Dopo che I. diramazione e ri80lta, BHR viene [atto scorrere a sinistra e l'esito
.f:~< . ~ Vlene messo nella pos1zlone del bit meno slgmficatIVo, talche il contenuto del BUR
@&]\'·>. div~nta ~e_k+1Re_k+2 ....Re. Per quanto.si rif~risce ~.bit di. state questi vengo~o
~:l/". agglOrnatl (da Se a Se+d III base alIa funzlOne dl translZlOne cil stato 6 che, a partlre
29
it~L'" dai vecchi bit di stato e dall'esito della diramazione, genera i nuovi bit di stat0 :
~:1i~:' 8 c+1 = 6(ScI R c ). (6.28)
t.::,- .. .". ..
:';~~~(;:;'" '. 81 osserVI che quest9 tIpo dl prerlLttore 51 adatta dmanucarnente al programma
~f7, in esecuzi?ne: s~·la. ste~sa d~ramazione ~iene incont~ata due volt~ anche C?O .10 st~sso
W::!~~' , ' corso stonco (bit dl pr~m~ hve.Bo), no? e. detto. c?e tl contenuto III PH~ S:I~ IdentIc~.
4\.;Il', Un confronto tra I d1verSI scheIDl dI. predlzlone tratto da fYP92] e nportato III
'l~<' Tabella 6.10.
:~E\:>
?!fi~' ..... " ""
!iw-; . 6.12.1 ReallzzazlOUl alternative del pred1ttore a due livelli
~ll~':':" e la possibilita
~;r. Uno dei punti di forza del predittore adattativo a due livelli ora visto
·:r.\~::.":;" di scelta tra tre opzioni:
.";Jil
'\'" ",

..
..;~4~;'.-
,,~.

(f!'';';':''''
• GAg: global history register e global pattern history tablej
• PAg: per-address history register e globa£ pattern histQry tablej
.
"":-'~'
'\'-<
,~:'1'\:\'
.,:.;
,,;,<::~
" , .., '
.• PAp: per-address branch history table e per-address pattern history table.
",.
; .•", •. ':
... _"t,..
'''''-,', .
'~i'.,.-.
,~n;' ".
''l;,;~ •.J 2QSi noti che Ie due equazioni 6.28 e 6.27 corrispondono a una ma.cchina. di Moore. Si noti anche
ff:fi;;'::' che il contatore a saturazione a 2 bit e descritto da. una ma.cchina a. stati 6niti formahnente uguale
alia precedente (con l'ovvia differenza. nelle funzioni .x e 6.)
....~',""'"><:,.
."'.
,,~.,.'
~ .....
l.'1:!'::;-\,~,
, ',.~~
' . ~ .....
..
; ..'~'- ~~,,'
,

268 Capitola 6
,.I;~
'~
Predittore Accuratezza "'-"'I
...."
,.,I·:j~ ,
Predittore adattatlvo a 2 livelli 97 % ·",,"'"
".'':?'
Contatore a saturazione (2 bit) .',;..!
., t.
93 % "'.".
Predittore Last Time (1 bit) 89 % ';."'!<!;,
",-,(~'d1
Predittore Always Taken ;c1i:.'~
,:..,';. ', t'",
62,5 %
",;" ~j
.,.
'>:lJ"'I,l'"
Tabella 6.10 Accuratezza di predizione di alcuni predittori camuni fYP91J. Questi dati
:~:'!'~:,
.:.:>:.1:;'\
,
,•
.~ .."- .
mostrano come con il predittore a 2 livelli si riescano a ottenere Ie migliori prestazioni. ~" .;",:;:;Il
,}i•• ity.1
·
,
D'altra parte, gia con il semplice contatore a saturazione si riescono ad ottenere risultati eli ·, ..-ci'i~
,:\' ·'t

::~~,
tutto rispetto che pen), nei processori piu avanzati, non sono sufficienti.

· ... ~,~\<t '


,:",~,"t;:m,' .
~>...\;••,." ".
"":"".{~'!' .

Predittore con organizzazione GAg E l'organizzazione meno complessa, rna ·;:',·t.;tt~ i
forse anche quella di pili difficile giustificazione. :"",:;,t~-@!, ,
". ';.r;~Wi.i! .
-:,:6t;~i~~~ ;~
".'M~."·
.....,'.'/:':~(l'<!-;t
r... (\l, .•"
,"·i.:.~;:; ". ;
.'i:~;;r!~iIi ,<
Glob,,1 Pa.ttern '·/"'~1~ ",
Hi~tory Table '''';-''~' :<
,"~'i':Eij, . .
(GPHT)
..,.\'."t"
~",.\'t"., "."
:'-'~;;W~'~,:
,!!'~ r:
\,~ijl . i~
',: .~~1,.~ ,
..c, ~, .
· ""~:""j , .·:
:,·~.~1;:, . :~
,,;'Wiii~·.::~
Global History Ragister (GHR)

';'~:iij~'~l'~
. ''''''' :q!' '
'
"-;,,1.\:] ~,':'~
. ".. ,~.,~
.; . ,''''
:.:.,:~1R~.'i
. " .J : ."
,'J;",ilt:."",
"/;'f<ii"~-F!;' "~
)¥~1· r i~
";"'~$iJ{ , \
').i~;'f:'i" ~'
-..,,t,:C<.. :

· ..tt!'1:1 ' .1 ,j,.


':~1:;:':
,\[J4~: :(
".~; ,'~';:~ill,:i
Figura 6.45 Realizzazione GAg del predittore a 2 livelli. Dalle simulazioni di Yeh e Patt 'N':'~:"'d":\' '~
.,,:~:;';t~ ~:
[YP91] e risultato che , per ottenere un'accuratezza media del 97%, si deve utilizzare come ~"~~'~-f ·''

,.'~:~~~llti ;
18
GHR un registro a 18 bit e nella PHT 2 contatori a saturazione a 2 bit (2 18 = 262.144 !).
, . ,~~",i~i+.r':' j
--' .i""'""lJ, "
,:~.~iJ:': ':'
";:\:!tff~ ~'
... ~(),~,,.~ .

Nel GAg (come rnostrato in Figura 6.45) troviamo un unieo Global History Re- ,::):f~~""''''~~;';')' ".
:
>;;i~:;J;;)'~': ,-
gister (GHR) e un'unica Global Pattern History Table (GPHT). Tutte Ie predizioni ::·.'i~$~~; ~;
sono basate sullo stesso GHR e la stessa GPHT che vengono aggiornati han appena ;,s1'~I)}ti ,,
si risolve la diramazione. :';!i~~~: \': {;
..,',. ' I' .-'.

n grosso svantaggio di questa sempIice realizzazione e che si presentano interfe- :.:i}~;(~ {


;;;:~J'!,.:,.
renze sia al primo sia a1 secondo livello; Ie prime si verificano quando il contenuto .';';",!1~: .'
,.llr·',~
storieo del BRR viene mutato da differenti diramazioni , Ie seconde quando due 0 pili ·,<f)f~:r:'
sequenze di diramazioni hanna la stessa storia. , ':;+1(}-,
.. ' ·'''tr· ,.'
~"'-'

,,'~~::i,~~ .:
Per ottenere delle buone prestazioni da questa organizzazione del predittore e .... ~
<:~L~ "'
necessaria utilizzare un BHR can molti bit storici e, di conseguenza un'enorme tabella
PHT ,>~;t8 );
.
.-""','" .
'''. ··"r-" ",
':;;"'k'~
"l.;t .
·"S,:i.~~, _
'''1.'''''' ]"
.• ":Ij,,,!,. ,
..-,.

~>.,.i,~'. La. pipeline 269


I
~:;}i:Y'

ri"~~
"."

'..
Predittore con organizzazione PAg . Per ridurre l'interferenza at primo Hvella,
I
. a ogni diramaziane si assada uno specifieo BHR. In questa modo si ottengono una

I
serie di registri contenuti in una tabella) la Per-address Branch History Table (PBHT),
,
. nella quale si accede a ogni entrata tramlte gli indirizzi delle istruzioni di diramazione.
.";'.
',
,;';' "'r;
·,t·, Per-addreu Bra.nch Global Pa.ttern
<'" History Table History Table
r
,\
(PBHT) (GPHT)

.'
.,:~:\'J Ind ice

!
.~'.'-' ,
.",": ',' ,. .
3:;:~{fj::·
,,~.,;:.'<
~"~;''''';'; ,',
~~,'i:':;::('"
. ,.,. '.
",';.~P:~·
.•-,.,,"
;h~:'~.~;.'
<~~,:,;:,;
,,:~,).:,."':':'
t' '.. " ..,
'\ 1
<'.':;,"'·i··
.:'."~,,.;>",.....",.'
\:
'.,'." '
:~iLL:,
:'"
~~:;:::':::,·
,';:;r"",',"
....,. . .
.
·F"';'·"';·'-'
:,~;:~:.),' ,.
~i~~j::!' ';
~'i~\':':'
';,;;:.,hil·?, ,"
~,. ''-
~';'(.;"';";'A
:,,\\7' t
",·,~1, • ,
Figura 6.46 Realizzazione PAg del predittore a 2 livelli. Per ottenere un'accuratezza media
r
~i .:; "",
~. ~
J ,'} del 97 % si deve utilizzare una PBHT composta da 512 registri a 12 bit e una GPHT con
~:':·1~;\.::· 12
2 contatori a saturazione a 2 bit (2 12 =4.096).
~:I!:;;S::'
\~~.f';;,';·.~
'::!,'.(;';J', "
:~~"/'"
j,;!j·V;!:""
.,. Jr', .
.;'"" I
(:r.~i'>V;",­
i:":;'[~:F: ' L'esito di ogni diramazione aggiorna it BHR associato alia .diramazione stessa e
~'!(-i1e;/'
:'I~.V:,:\-,"~" una entrata della GPHT. La predizione e basata sulla partieolare storia della dira-
'-''I··f'.'·,,,' "

;i~t;;:F. mazione e sui bit di state presenti nell'entrata della. GPHT inmcizzata cia! contenuto r
j,.J::';:""
"," ',.,'t·,
del BHR. In questa, modo le informazioni storiche di ogni diramazione sono separate)
:',1_,',:;':'.'
':Y';-X'
anche se , visto che ogni BHR accede alIa stessa GPHT (vedi Figura 6.46), si pre-
. ,,':': .:..
dice un comportamento analoga a differenti diramazioni che abbiano 10 stesso corso
:tJ.;:.:,/,
',':-''''
storieD. J
-,.,,;~::,"
;11,~',:::~:
,·ti'.: "
;'k::'>:
.... , ,.
{)~;\,
..;~.­
;
Predittore con organizzazione PAp Per rimuovere completamente Ie interfe-
renze in entrambi i livelli, ad ogni diramazione si fa corrispondere un BHR e una
I
, PHT) come mostrato in Figura 6.47. L'insieme delle n PHT (n e anche il numero di
'.,"...
::..-
BRR) e chiamato Per-address Pattern History Table (PPHT) .
)
In questa modo a ogni diramazione incontrata corrispondono un BHR , nel quale
,>"
vengono memorizzati gli ultimi k esiti della diramazione stessa , e la PHT ad. esse
;:~::.
."".
"".'. associata. I k bit del BHR vengono utilizzati per indirizzare l'entrata della PHT che
,".,.:.,.,..
.......
_,;,',:,-:'
"'_'1' .
fornira la statistica di predizione. )
"."
J'"l~,
~:I:"
',0;> :,>"
210 Capitola 6
.'• %,
n, . ",''''

I
c' ,. ""
:,'j~ ~
· ',! ,!~
· ".
· "t;r, .,,
:'.:~~ ,;'.:
\:~.~
, ' ',,- : ,
Per-.d<J.... PaH<lTn
Hi.tory T.ble
:';f':~~, ,"'"
':~F!
";',
,,'
(PPHT)
) rU-&(lCnn lUanc:n
Hinory Tabl.
, :;~,
;"l'C
'.
· ',,,
(PBHT) ;''', ,
<t;
• .i...
I~

-..
!'!.
In.dice w···
, .. .
· ~,.",
1 '.,1'"
-'


---------- ,j:,
;,. ~ i.',
..,J."

5,i~ .~
1\ ·::':,:: ,:
':,-1:; ,
· ,~~,::
,.~~,:
.
• I-' - ,~:'~
:',;:~

I .
I-' ·r~~
'1~

,Jii::{
,"':.!
.~:( ~'
",~
''''~I
• -',:~I:;:.;
, \ / ,-,,:,~t
> '..J),
'."'1"
,\
., :
,,:..;,,; ."
''':;''1,. '
'.' ',1:i-\:' .1,
· ,'~;: 'i '
Figura 6.47 Realizzazione PAp del predittore a 21ivelli. Per ottenere un'accuratezza media. "·~I;·
\ del 97 % si cleve utilizza.:re una PBHT composta da 512 registri a. 6 bit e 512 tabelle PHT
"", .,
·- j':'jj.,• ,'t.
· ~ '~.• ,( <"
.'.
ciascuna deUe quali COD 64 contaton a. saturazione a. 2 bit (per complessivi 32.768 cantatori). '.;
• '~>,;, ;'
-
,:::,~j!l' '-'
-' ".,~: . "
';',';'.:,::;.: ;'
\ 6.13 Le interruzioni ',""l~ r
,:;".~~ ':
" .....;. '
,-"">0""
..-..... "'J
'.~:l,J:/ ':
"';Fj'., ':

- I
• Riprendiamo ora 1a questione delle interruzioni, la cui gestione si complica ulterior- '''.. J ~ .
';'~,' -
mente nel funzionamento in pipeline. Diversamente da quante fatto al Capitola 5, in :
""',~,
_. ;~,!,-
.
e
questa sede necessaria trattare anche Ie eccezioni. · .",..~< -
.:-.:~~ i
"'" .''
';"1..
. , "':: ·

I
.... I·~ .'
',::~f, :
••_'!
- 6.13.1 Il concetto di interruzione precisa "
,';.... ':
,: ';" "
. ,;~,,~
.'. ", .
"I;,
• .;,;;- :

- ! Al momento in cui si verifica un1interruzione, Bono presenti in pipeline piu. istruzioni,


la cui esecuzione puo essere completata 0 rinviata per servire I'interruzione. Con-
sideriamo iil particolare il caso d.i un'eccezione e prendendo per esempio quclla che
,,&-;
,
, /"
>;.'~'
,;,1,1
. /'
si manifesta a causa della divisione per zero: essa non puo che; presentarsi in fase ',.;'1
"'~~.
...
I ..:,.~,:

EX. Per passare alia routine <Ii servizio occorre stabilire delle regole che permettano
"."..., , "
- "'~I
'
di salvare 10 stato di macchina, in modo da riprendere senza scompenso I'esecuzione , -" '

del programma, al termine del servizio dell'eccezione. Nel caso specifieo, la solu- ',' :~ "

zione piu logica CODsiste nel portare a termine Ie istruzioni ehe in pipeline sono piu ''''
:%,,:!:'
,{~:~

avanti d.i quella che ba determinato Peccezione e svuotare la pipeline di queUe che la , 'l1'i
',--\,
\ seguono, avviando la procedura (hardware) che portera al passaggio alia routine. di 'o~f
servizio. Analogo problema si presenta con Ie interruzioni esterne} con la differenza :,~,>
·;·';:~'

... ",. ,
.': '';:F.,
"~~'\lt: ~
"'::i;'~;;lf't
\ "'. ;'''.<1'1,
, 'I
""
".
',"
'
La pipeline 271
,', "
.:,}
,
, che queste sono asincrone rispetto all'esecuzione del programma, quindi esse possono
'
manifestarsi in qualunque stadio si trovi una data istruzione.
La gestione delle interruzioni diviene aneora piu problematica qualora la pipeline
... si. compost. d. pill unit" funzionali multiciclo ([HP93] e [WE93]) , come quelle dis-
cusse al Paragrafo 10.1. Vintroduzione nella pipeline di unita funzionali multicic10
parallele porta con se due ulteriori complicazioni, che non sono presenti nelle pipeline
lineari come queUe fin qui studiate, Puo infatti accadere che Ie istruzioni modifichino
10 stato del proeesso in un ordine diverso da queUo definito dall'esecuzione sequenziale
~" '; (detta anche architetturale) del programma. Se per esempio un'istruzione complessa
A (quale un prodotto in virgola mobile) e seguita cia una istruzione piu semplice B
: :'
,, (tipo una somma tra interi) e se A e B vengono eseguite in parallelo su unita. diverse,
,.
e possibile che B venga completata e modifichi 10 stato prima di A, Oral se durante
l'esecuzione di A si verifica un'interruzione, il programma puo venire interrotto in
uno stato non consistente con il modeUo di funzionamento sequenziale, poiche B puo
:'i:,
aver gil modificato i registri interni del processore 0 13 memoria <;:ent~ale. Si parla in
.'
~' .... questa caso di interruzione imprecisa.
"

:, '.
" Al contrario un'interruzione e detta 'precisa se lascia 1a macchina in uno stato
,:, consistente col modelIo sequenziale di esecuzione del programma; per essere pili spe-
' cifiei, 10 stato salvato al momento delI'interruzione (che vena utilizzato per ripristinare
,
' . iI processo) cleve verificare Ie seguenti condizioni.
"";:'
'.
,:," J '.
'i'? : 1. Tutte Ie istruzioni preeedenti al PC salvato (relativo all'istruzione interrotta3 0)1
.,"': hanno completato l'esecuzione e hanno gia modificato 10 stato della macchina.
.t;:-.
<,,..,.
"d'.
.'
'-',::' 2. Thtte le istruzioni successive al PC salvato non devono aver completato l'esecu-
-'(';" , zione, ne aver modifieato in alcun modo 10 stato del processo.
";
'"~'''
',.' ...
r~ i'l
:~).,,
' 3. L'istruzione interrotta, a seconqa del tipo di interruzione, puo essere stata ese-
guita oppure no; a ogni modo l'istruzione interrotta 0 e stata completamente
J".
.. I'.. '•'
:;::',:
:",~;; eseguita oppure deve essere aneora iniziata: non e possibile quindi ehe 10 stato
.",.~.
::, '
...:'.:~,.
,'. salvato eontenga istruzioni solo parzialmente eseguite.
-,.
i· .,
I
"
Nella parte ehe segue faremo aneora riferimento alla nostra pipeline lineare e
,
·:~r<,. tratteremo 1e interruzioni precise.
',', __
:'::;:<."
.
:"
":,
,',
Priorita Un problema con la pipeline e che non solo Ie interruzioni possono veri~
. " ficarsi in qualunque momenta, rna due a piu interruzioni possono anche rnanifestarsi
"
,I,'
';"
contemporamente a eausa della presenza in pipeline di pili istruzioni, che potrebbe·
ro determinare un'eccezione nello stadio in cui si trovano. In tal easo la logica di
" CPU deve decidere quale interruzione trattare, scegliendo in base alia sua natura
'.'" (interruzione esterna, eceezione 0 trappola) e in base agli stadi che hanno rilevato
...".,
l'interruzione.
Per trattare Ie interruzioni precise e necessario stabilire una priorita., che ovvia-

" mente privilegera Ie eceezioni che si manifestano in stadi pili avanzati della pipeline
.~
"::'.
:;'~, :'

,',.;. . 30 D'ora in avanti, con la dizione istruzione interT'otta si intende riferirsi 0 a.ll'istruzione la cui
." ' ,, esecuzione viene sospeaa e rinviata a. causa. di un'interruzione eatcrna, oppure a queUa che ha causato
'.·'~l'
una eccezione 0 che ha generato Wla trappola.
,,"f(;.':,
~ ,., .\,.:.
'~~~"
,.!fVi, "
"',
272 Capitolo 6 i:;
,,"
,>·
:I·
!
_
,. "

e che percio sana relative a istruzioni piu prossime at completamento, Ie quali, can ...· ..~I',"
'. .
~ '
.~"
maggior probabHita, potrebbero aver modificato 10 state di macchina. Gli esempi • • J'
.••. I
di interruzioni coosiderati in Tabella 6.11 coprono tutti gli stadi di CPU. La tabella ·:;'·"i'
riporta 10 stadia in cui Ie interruzioni si manifestano, dal quale discende la priorita. }~"
;,:',0:;'
Un esempio sara. di aiuto: supponiamo che si verifichino contemporaneamente ~,J.,;.l:"
'~:.t"'f1
l'ecce~ione RI (a causa di un coclice eli operazione non esistente) e la FAdEr. Poiche .;'t:. ,{
e
l'istruzione illegale stata caricata prima di quella che ha generato I'errore di indiriz-
.,~
._",.,.
-'~,'·I·.
'"""".~
zamento, e poiche e plausibile che la gestione della prima possa evitare i1 manifestarsi ''''';"'(il-
_...,.;iJ:_
.. ~~,
. "",'••
'1i"\V
della seconda; e
necessaria che i1 processore serva l'eccezione dovuta a.ll'istruzione . '·':li··
,.1
.,:~. ,
megale prima del1'eccezione di indirizzamento. _ "t:1',:\
r'
, '>;" ".
~;'!~~}l
Al rilevamento di un'eccezione, tutte Ie istruzioni che si trovano negli stacH pre-
cedenti quello dell'eccezione da servire sono cancellatej le istruzioni che invece sono , .....
.;.t,.
.;:../'1~ 1
'," ';1.
"")I'l~
negli ~tadi seguenti vengono fatte procedere. :t-r:,.~,
'.' ,~,,~,
Per quanta riguarda Ie interruzioni esterne, per 1a lora stessa natura (asincrone .<n
.::.I.r,r
')!

.e non predicibili), esse p058ono manifestarsi in qua1siasi momenta dell'esecuzione del :~JQi'
'~... \l
programma. Vedremo nel seguito come trattarie. );,~ ~~
, , . ~ ~l

l
....,.j,.lr,
,.' .,""
':':V'~~
[1'lome
~
.LH
~
0
I Tipo
ccezione
&cezione
'l'l'a.ppola
I Causa
entativo lettura scrittura dato c .sallineato
iVlsione per 0 Qurante opera-Zlonl aritmetlChe
eCUZlOue dt Chiamata a sistema (, ystem call)
Itr ~~; ::'"
- . 'I .
..-.~,:/,:,~
. . . ~\~i'-
-":-.i'''';'
·.~t'!lj

@gr
cceZl0m
cceZlOoe
~uzione Istruzione nservata 0 co ice nOD~to
~ntatlvo lettura dl un lstruZ1QUe ctisaI1meata ""IF"
J£ ·
. ._
,\.~'tll:~
\.;" /:I'

':':'~'.\'
..;'.:f;,l;[l
· ""
IN".t'Il: Interr. esterna vento esterno Tutt, "'~"{:,r,(
:~i~r:;:
,,;~.'~\
.~~",'
'''1'0
· .,fro
" ' l
Tabella 6.11 Le differenti interruzioni considerate riportate secondo 13. low priorits. di trat-
tamento. Le interruzioni esterne hanno in assoluto la piu bassa priorita.. La colonna a destra ,~;f~~
identifica 10 stadio in cui Ie differenti interruzioni si possono manifestare. Le eccezioni (e ~r~
.~~~
Ie trappole) baUDO 1a priorita. che deriva lora dallo stadia in cui 5i manifestano: la priorita. .',,'':,'.1".".
massima e per Peccezione MAdEr (Memory Addre.", Error) cbe 5i manifesta nello stadio 'll·
.' . · ~
~

ME, La minima per FAdEr (Fetch Addre.", Error) che 5i manifesta nella stadio IF. Nella "'''<I''
l,.,':!.~
,'" •
stadio WB non si hanno eccezioni.
•.."
·,...
Jr.$
~,
,'~
:it~
.
'l,,,
~",lr
"\';~I
.'J"<ji_
,,:ii,.'
• -.";0/
.'

"t/
Le eccezioni non contemporanee n e
criterio di priorita. di cui si parlato nel "~""J
'J ';'I'J
paragrafo precedente risolve completamente la contesa per Ie interruzioni che si ma- " !<
".:!-"
, ...i
nifestaD0 nello stesso cicio di clock. Rirnane tuttavia Ia possibilita che, al clock che
$egue it verificarsi di Wl3 eccezione, si manifesti un'altra eccezione in uno stadio piu
·.·
, ,.1,
,~.

· ',;..
avanzato della pipeline, da parte eli un'istruzione ancora non completata. In questa ~

e
caso, necessario applicare nuovamente it criterio di prioritA, servendo I'eccezione che ,
;;
...'/
si trova nelio stadio piu avanzato della pipeline ed eliminando tutte Ie istruzioni che
....
si trovano negli stadi a monte, cornprese queUe che potrebbero essere state introdotte
,:
dalla prima eccezione a seguito del passaggio alla relativa routine di servizio. AflincM
it trattamento sia preciso, Ie istruzioni che vengono tolte con 10 svuotamento di quanta
·

,
·
segue in pipeline non devono aver modificato Io stato di macchina (e facile verificare
·"
,,
,~
:
.- .,
!f"';~:~~;"

.
",,",".'/'C'
~<'
~~i;
,t§(\ .'
,~~., ."~,.-.
\
,\ k~" .
". ·b,·· L~ pipeline 273
:;.},·'):::'
" ~ ,....-~
..,..,.-'
.,....-.;.
••••• ~ :.
··r,,'~';·';·'"
!"~"" .... '
.:':"~'r.:' '. ~
"'."r,~"
1
"e'i che questa condizione accade nel caso della nostra architettura; si veda l'Esercizio
......'..-'.''". '
" 6.9). La Fig. 6.48 chiarisce Ie precedenti argomentazioni
31

I
". '-: .,
I"

i' _..•. Nella parte che segue, si assume che un'eccezione cbe si manifesta in uno sta-
""' dia .vanzato della pipeline debba comunque svuotare tutti gli stadi cbe la seguono,
'"
indipendentemente dal lore contenuto.
"."'. ,
.,'.. ,

"
'. ,,'
,.",'
:. ,; .
(-'. ".'
V' ',.. : ...
.. ,
Clcll dl
clock

, u.> ADD ST sus XOR


I
·' r "v"-""
•.,.•
,. , sus

'.'I' RS-F BoU. ~D sT
.-
...,,' ;.•
...'
""',
'!
'.2 RS-M DoH ... 8011 .. SoU ... BoU.. \ .
." .,.. ,
.-I.-,~.:'
.:---"." Figura 6.48 Al periodo di clock i l in pipeline si trovano Ie istruzioni ADD, ST, SUB, XOR
"',,'
e viene fatto it fetch deU'istruzione LD che, per ipotesi, determina l'eccezione FAdEr. At
-
>..-.. '
S'
periodo di clock successivo si trovano ancora ADD, ST e SUB; at posto di LD estata inserita
' ~.; .",:.:.
._,.-...,. una. bolla e viene fatto it fetch della prima istruzione della routine di servizio dell'eccezione \
.:...... ." '. FAdEr, indicata come RS-F. Si suppone cbe in questa. Case l'istruzione ST, nella stadio ME,
,
" generi I'eccezione MAdEr. Al periodo di clock i + 2 - l'istruzione SUB e uscita. - tutte 1e
:.. istruzioni presenti in pipeline a seguire ST e ST stessa sono state sostituite da una bolla

" ·'f ' .


e viene fatto il fetch della prima istruzione della routine di servizio deU'eccezione MAdEr, \ .
',;:.;', indicata come RS·M.
j
"'.:).'~'
' .:' -
g~•.••,.
~ :;.,,'<"~'~'

.., ....
' ,. ..l.;'>''';('',
.•

:~-~":,, \
l l,.>~_-:,~
( ., -'" .',""
: .
' ., ... ' J' 6.13.2 Interruzioni esterne ,
"~.'. -.'
',' 0·:0 "

~ ,i(/'.:'\'"
• ",';\.." .

In questa sezione viene sviluppata 1a logica di controllo delle interruzioni esterne. Per \ -
~ ,-, ,,;'J il momento esse sono considerate indipendentemente dalle eccezioni. Faremo inoltre
~ -,'. •
"/'," .
Ie ipotesi semplijicative fatte al Paragrafo 5.11 (in particolare assumiamo cbe ci siano \
..,
·· ,J,-,_,,,
.-.,,,.
I-
.'.\'
~ i due registri XR e SR). ,
'~ ..;. -',','
••, '>' ..;'."
e'e il problema di dove intervenire sulla pipeline. II trattamento dell'internizione
...
$-',."'~~""
"'~ ~.
...- ,', richiede che venga sospesa 1a normale sequenza di caricarnento e che 5i pas5i alla
-
~~
-
routine di servizio. La soIuzione pili vantaggiosa e
ovviamente quella di perdere
,r:"'~':"
,'~" meno informazioni possibili, ovvero di intervenire sullo stadio IF, lasciando che Ie \
/-
~I'" - ,
_< .:
.','" istruzioni negli altri stacH completino regolarmente (si ricorm che per ora non vengono
/', ,
. considerate Ie eccezioni).
/: -
J. -.'
J1
<;:.
"i'\.

.,
, "
1·'
··1' ",'
31ln questa figura si e fatta implicitamente un'assunzione non di poco conto. Infatti 51 e ipotizzato
che al clock successivo a queUo in cui viene rilevata l'eccezione venga effettuato it fetch della prima
I-
.;i"
,I istruzione della routine di servizio. Nel CMO di una macchina reale questa e molto improbabile,
~ I O'
in quanto per fare il fetch della prima istruzione della routine di servizio occone dispone del suo
;\ I:
/. ,
indirizzo, che a sua .volta 5i trova in memoria nella tabella dei ve~tori'm interrtlZione (TABIR); c'~
qilindi per 10 meno un cicio di lettura deUa memoria centrale (e non c'~ nemmeno da lIperare che il
. , I . .- vettore possa. trovarsi in cache, in quanta, Ie eccezioni 8i manifestano'abbastanza sporadica.mente,
:', cosl da non far 10ro trovare in cache lao tabella dei vettori di interruzione). In ogni caso ~ sempre •
·. q. possibile che 5i manifesti una seconda eccezione mentre in pipeline hanno cominciato a entra.re Ie
,h
·.
""'\ ·c .....,
~
,/.

:!~
..1 -:';
istruzioni relative aI servizio della precedente. Questa eventualita, e pili probabile quanto piu tunga
~ la pipeline. I
I
274 Ca.pitola 6

10 schema per gestfre Ia pipeline e in Figura 6.49. Ovviam.ente Pistruzione RFI


( deve compiere l'azione d.i ripristinare PC da Sa. In Figura6.50 viene rnostrata la
logica ebe, a partire da INTR, asserisce IServ. 8i Dati ehe IServ resta asserito per un
solo periodo di clock. .

lNTR
1 IServ
Bu'
o- h IF/ID I I~EX EX/ME ME/WB
lst,.uzlonl 0-' w
~
\ UC
,ECHuX

I P
, +
f-
C • ~
f-

I XR " SR
+
I
~

.
- ~

I Figura 6.49 Logics. per gestire 1a. pipeline in presenza di interruzione esterna.. La. linea.
IServ viene asserita da UC, per un solo cido d.i clock, quando deve essere servita 1a richiesta
eli interruzione (INTR). Quando IServ e asserita. si genera. una bolla. au IFjID: XR viene
se1ezionato come mgresso a. PC e ill sa
viene copiato il contenuto di IF/ID.pe!. Quest'ultj~
I ma campo contiwe esattamente l'indirizzo deU'istruzione di cui sarebbe stato fatto il fetch.
I L'istruzione che si trov& in IF, non essendo stata. copiata. in IFlID non viene eseguita.. La.
sua esecuzione e posposta at momento in cui, per effetto dell'esecuzione dell'istruzione RFI,
in PC vena. ricaricato il contenuto di PCI (il suo indirizzo).


i
INTR IINTR
, 0
IS eru

I
-l
s
'I s
IE:
01- i/

'1 •

! Figura 6.50 Generazione del comando IServ. II flip-flop IS Testa asserito per un solo periodo
eli clock.

I Si possono apportare alcuni migliorarnenti alia schema precedente.

• Anziche prevedere iJ registro Sft per salvare l'indirizzo di ritorno, si puo convenire
che un registro di CPU, per esempio R30 1 sia permanentemente dedicato alIa
med~ima funzlon~. In Questo easo, 1a scrittura in R30 di pel comport~ 1a
\ propagazione di questo campo per tutta la pipeline fino allo stadia WB (si veda
l'Esercizio 6.11).

I
La pipeline 275

• Le interruzioni esterne potrebbero essere vettorizzate. Cia comporta un meeea-


nismo per rintracciare il vettore di interruzione. La tabella TABIR dei vettori di
interruzione (supponiamo che contengano gli indirizzi delle routine di servizio),
per essere realistici, dobbiamo immaginarla in memoria. Col nostro modello a
memorie separate c'e cia decidere in Quale delle due collocarla. Non convince ne
l'associazione di TABIR a MI ne a MD. Supponiamo comunque che TABIR sia
in MI, a partire dalla posizione 0 (0 da una posizione contenuta in un apposi~
to registro di CPU). Per accedere al vettore di interruzione l'elettronica. esterna
dovrebbe porre suI bus dati un numero identificativo della posizione in TABIR
associata all'interruzione da servire, in modo che 1a logica di CPU, leggendo 1a
posizione corrisponclente, ottenga l'indirizzo di partenza della routine di servi-
zio, che, trasferito in PC possa permettere il fetch della prima istru~ione. Come
si vede e'e qualche complicazione. In partieolare il nostro modelIo non prevede
l'efIettuazione di una lettura in memoria che riporta un indirizzo anziche un'is-
truzione. Peraltro non c'e tra.ccia di I/O nel nostro modelia (si veda a questo
proposito l'Esercizio 6.12).

• Se si vuole consentire l'interrompibilita. delle routine di servizio delle interruzio-


ni, bisogna avere 1a cautela di non perdere I'indirizzo di ritorno al programma
interrotto, sia che si trovi in SR 0 in R30. Con il nostro modello, cic> deve es-
sere fatto necessariamente dal programmatore, prima di riabilitare il sistema di
interruzione. .

·6.14 Eccezioni
In questa sezione vengono dati i criteri per il progetto della Iogica di centrollo delle
eccezioni. Per il momento vengono considerate 1e sole eccezioni, indipendentemente
dalle interruzioni. Per brevita., qui di seguito si usa il termine "eccezione" per riferirsi
sia aIle eccezioni che aUe trappole, non essendoci differenza alcuna per quanto attiene
al loro trattamento.
L'assunzione di base e che Ie eccezioni vengano trattate in modo preciso. Se, per
esempio, si verifica un 'eccezione ne110 stadio IF, prima di passare alIa relativa routine
di servizio, oecorre garantire che Ie istruzioni attualmente negli stadi ID ed EX (Ie
a1tre non possono) non determinino eccezioni a.i clock sueeessivi., prima di uscire dalla
pipeline, perche in caso eontrario sono queste da servire.
Per impostare l'analisi, si possono fare aleune assunzioni semplificative.

• Gli indirizzi per Ie routine di servizio si trovano nella tabella TABECC, che fa
parte della logica di CPU. Nel nostro caso si tratta di 5 registri, cOIIispondenti aile
5 eecezioni di Tabella 6.11. Assumeremo ehe ciascuno di questi registri eontenga
permanentemente l'indirizzQ della routine di servizio.

•n servizio dell'eccezione comporta la disabilitazione del lora ulteriore riconos-


cimento, che verra. riabilitato solo dopo che e stata eseguita l'istruzione RFE.
In altre parole, si assume che Ie routine eli servizio delle eccezioni non siano
interrompibili.
"!
;"'
h
"""".
,.
276 Capitolo 6
, ".

.
• n passaggio alIa routine di servizio comparta it salvataggio dell'indirizzo di ritorno ;~
nel registra R29, che viene destinato a questo solo scopa. La routine di servizio' ·:k;
"f" ..
; ,f"
si conclude con l'istruzione RFE che ha l'effetto di un saito indiretto attraverso
R29, oltre che riahilitare il sistema di rilevamento delle eccezioni. .<~~
"iii
..' ; il.,
.'.~'
". :6
• L'eccezione determina l'annullamento dell'operazione tentata dall'istruzione che ~,

la determina. Le assunzioni precedenti comportano che la routine di servizio, una :~:;.;


;,.'I
'. r;., \,{,
volta trattata l'eccezione, ritorni all'istruzione successiva. Non sempre questa di ,.".
, 'I'"
,.'" '
e
modalita. di funzionamento carretta. Per esempio, nel casa di ecceziane dovuta a "':;: .
-. .~.~~iJ'~. ;
page fault, l'istruzione che la determina deve essere rieseguita dopa che la pagimi. ,"',,:
e
stata portata in memoria (Cfr. 8.2). Senza perdere di generalita e al fine di ..'"'~l" ;
····l~·(,
,,:1;1,
.\-'"

non modificare 1a struttura della nostra pipeline (ci si riferisce in particolare al ·.. '1i~,:
~....
,~"",,,
fatto che il campo PCI contenga il valore del PC deWistruzione ehe segue), si ::'~))"
puo assumere che, per Ie eccezioni che richiedono 1a riesecuzione delle istruzioni ·"' '"'l*'..
'or .~~
"" . "i'~'
che Ie generano, 1a routine di gestione aggiusti I'indirizzo di ritorno (saltando cioe ·y;:.s-.
• ·l,·!f:r:.
aiPistruzione che precede quella indirizza.ta da R29). :;\~~::IS'l' ·

Per servire l'eccezione oecorre anzitutto identificare 10 stadio in cui si e manifes· j


.-:;'.
'~''l):;.''
::':~j,~'l"
,~.,'.l.';l.
tata. Si hanno Ie seguenti possihilita. , .. ~ .
. .""y;; "'~'

• Veccezione si mani£esta nello stato ME. ." ,.'\,,;~.~-;;.


":"1'" .'
Si tratta eli: ·'t"·
';'?~'
.,,::'kw',
.:,.:.-§'1;
1) svuotare 1a pipeline a monte, inserendo una bolla in IF, ID ed EX, annullando ~,··J;t.

al tempo stesso l'eventuale lettura/scrittura in memoria; <~~l.:.7.:


·,}_i-t
."
.__'i: v ·'

2) imporre che il PC dell1istruzione seguente venga scritto in R29. A tal fine "·1i~·~. , ""['

oecorre: (i) prevedere it campo PCI su tutti i registri di pipeline, in modo


.
.. .." ",~~~

';' .:':;\l\~
che p08sa propagarsi fino a116 stadia WBj (ii) prevedere un selettore che in ,.~ .
·...,..
• • t;;,';
,~.
fase WB consenta, come terza possibilitll., la acelta del campo ME/WB.PCI. ',:.,·'·:i· ;' j""
Rispetto agli schem.i visti si tratta di aggiungere un se1ettore (a valle di queUo .,~:;.~;.
comandato da MemToReg) piIotato dalla linea PClToReg; (iii) scrivere 29 , ,,:.,::·~.1;
,. '"~I
nel campo ME/WB.RW; (iv) asserire ME/WB.RWrite; ·.?\~i~1;1
';'~"'I'~
.,~,,.
..' !
. :•. t
3) copiare in PC il contenuto della posizione TABECC individuata in base a1 · i'it
<,1.'1,:(.:-:
tipo di eccezione32 . '<0,"(
r.~""(\o!
"?~'If,
V·f~(.·
".J;
"f
Si noti che siccome PC viene aggiornato con il contenuto di TABECC (che per '-;:"','
",~!~~
ipotesi fa parte della Iogica eli CPU) al prossimo clock verra fatto iI fetch della · $;.
.;iif
prima istruzione della routine di servizio, mentre nella pipeline ci saranno solo ""::'.~ ~,

,
bolle, eccetto che nello stadia WE dove ora si trova l'istruzione interrotta per ,
;";':,"
',."
eccezione in ME. -;:~7"
'o.!
,\~.;;
:~}:P'\;
• L'eccezione si manifesta nella state EX. ,..
•. ~~'i
Differisce rispetto al caso precedente per il solo fatto che inserisce una bolla in IF ';' 1l.
.',' ~
e ill e vanifica l'effetta dell'istruzione in EX, mentre l'istruzione in ME viene fatta ~ .
'.(:l1I.
/.j:;,.I
,:;·:t~
• •.
. .'1;
3 2 Si tratta bana.1mente di dare un numero a tutte Ie eccezioni ed entrare in TABECC in base a :'~:,:
esso.
.I'!;~~
'... '?: '"
",.. ~
.....,.. "'"
ol"~
i>~:',;
..,. ,..... .
:'f:~lc,
!lit"",,, '.
','j>,:> .....
h'.,,:,,.;,,,, , \
"~"I"~'
"'",
,...
.,;.~~ ..
~:.;.:'
,
La pipeline 277
." '~,'

1
e
proseguire (su di essa non piu possibile it verificarsi di eccezione). Analogamep.te
a quanta detto sopra, vanno assegnati gli opportuni valori ai campi di EX/ME,
in modo che in fase WB I'attuale contenuto di ill/EX.PCl venga scritto in R29 .

• L'eccezione si manifesta neUe stato ill 0 IF.


l
Situazione del tutto analoga ai casi precedenti, rna con una grossa differenza:
'.
"
.
.-,~.
:'.
e
non escluso che Ie istruzioni che si trovano in stacH pili avanzati possano dare
un'eccezione a un clock successivo, prima di uscire dalla pipeline. I
;'
II problema del punta precedente e di una certa complessita.. Si faccia riferimento ..
alla Figura 6.51.
,; ">
,'. '",
...,,""
,.:.:,. \
,-,.'.'
~ .>" 1. Quando l'istruzione LB in IF genera l'eccezione FAdEr, in IF lID viene inserita
..~,'.
... . ,. •
~ ... una "pseudo bolla", nel senso che non devono essere svelte Ie azioni previste da
''C';'"

I
:..':~: LB33, rna vJngono scritte au IF lID (senza modificare PC1) Ie informazioni per
,.y' "

::,~.~;;~::;
,.. ,
, comandare Ih scrittura in R29, quando la posizione corrispondente si sara. portata
l'e'" in WB. Le istruzioni in ID e sta4i seguenti procedono regolarmente.
:.":.'.",,.'
!:" ."
\,''-::' Secondo il nostro schema 1a pseudo bolla richiede una sorta di pseudo codiee 0 P
..'.,
.,"..,
,.. "..... ,
,.:...
'
the, in rase ID, faccja semplicernente propagate i campi WE, WR e PC1 (non puo ..
;.. {":, essere il eodice dell'istruzione NOP perche questa fa azzerare i campi di comando,
;;!--/ ,,'.'
·'··'
·;X~"·'
quindi anche WB). .
;:-'·1.~:,:·':
,,:~ I::',', ,'.
,'.-, ,. , " 2. Al clock successivo, l'istruziane LW, che' ora e in ME, determina l'eccezione MA-
',:}::'} ~
;:: .;::...... dEr: viene inserita una bolla su tutti gli stadi precedenti e viene annullato it \
. ..
'.:;:' ',,'
comando MRead. Su ME/WE deve restare immutato it contenuto del cam-
,"
.;.,':;-;;~'.'~"
......,.." po PCI (l'indirizzo dell'istruzione LW che verra. rieseguita in seguito) , vengono
I.
,~ .. ,

\::;...':,::. asseriti RWrite e PClToReg e viene scritto 29 nel campo ME/WB.RW.


~;:}!: ..
" ....
~:'"'.:" '!-.
".'"'' ' In questa modo l'eccezione in ME prevale su quella avutaai in IF. !no1tre, poiche
." ,~.'::;~)"
,,;.. in WB non puo esserci eccezione, viene scritto in PC l'indirizw contenuto nel
~~.~'::;':
registro TABECC assegnato all'eccezione MAdEr, in modo che al p~ossimo clock
..
~
.' ":,:;,.:'
,.,
1 ,.;,.,; ''':'.
'j'~""
,,,,::y,,.' .
venga effettuato il fetch della relativa routine di servizio. I.
t,·- ··'
: .' .'~'
\",: .-, Per traeciare la logica di controllo delle eccezioni (si vedano gli Esercizi 6.14, 6.15
"V"
, ~~<;:>
·

'
': .
,..,.,.,,'
-', .... ~ , ,
.:
e 6.16) Occ?rre quindi prevedere:

a) un arbitro di priorita che selezioni l'eccezione prioritaria in caso di' contempora-


I.
~ • ';,~':>, . neitaj
.. --<." ,:'-
f ·1:~··?'·
~ ':",
, _.
, _.
" ...' .
" ~~'.;;'
..-.,.,
.'
e
b) un contatore che tenga traccia di dove si verif1cata l'eccezione, in modo da
garantire il suo trattamento preciso (se essa si verifica prima dello stadio ME,
I.
; ,~~'< 1a si puo servire solo se ha raggiunto uno stadio oltre il quale non puo dare piu
;~ ..,-i,~>::/, eccezione) ;

l.
j" ' .
i ,.-- .' '.~
. .;:,:·i .-:;
~ .'" c) Ia logica per propagare PCl.
., , ...
,..
I.. ;- .'j."
~j ..~.'.,
..
1;; .• ',"'
i 0; ..
;"
-
:) .~;. '.> 33Si"fa l'ipotesi che l'istruzione LB venga rieseguita. nel seguito - potrebbe trattarsi di un page
": ,.. .
~'
>.~",'
:·~i< ... , \
fault - e quindi deve essere mantenuto iI suo PC, che attualmente si trova in IFIID.PCl.
~, " ..-,'N;
" ....'t~,.. ,;' ~
..: '."' '
0 ~~ii
t.ll1t
Ir~!:/
, ,Li

I
278 Capitola 6
, "lr "
~.f
, t,)
...;, ~
.
~/m m/D EX/" "1'1l """., .. "',
· ",:t<~ "',"
,'• ...""\Ik,'
, "l:'
'· ...~.;'I!L ..'
~
<;~:J T~'','
;:

"h~. 'l
\ LB iii SUB II LV II ADD II HUL :.),

·;",~...~' ......
'. I..
':"
• ""
..' ,

::.~!~ .;'
, ld~.
,) "I" m;", tXjla "1'1l :',...."lrW
'.:~':r~ ,:":. :
.....:,\~ ",
;'."WjlIj ,:1
~".~t:-'~' "'~.
SUB LV ADD
,'.
· ...f.f .•.~~.

";.!~'"',;,

I
("I,)
':"0;. ',.
:,,;~.!~, ',:-:
.....'1·., ."
~',",l~J' ".
Figura 6.51 Tratt"amento precise delle eccezioni. Sopta: l'eccezione in IF determina un'ee. ! ~~''''~Il-.''
';.:t~t '.,
cezione (FAdEr); in IF/ID viene introdotta una pseudo bolla che tenderebbe a propagarsi '··~)h "
"::'?:!'I. ~.~
verso 10 stadia WB, per arrivare a. scrivere in R29 l'indirizzo salvato in PCl. Satta: L'ecce- '.~ ..tj:... \~

I zione in ME porta. all'introduzione di una analoga pseudo bolla in ME e alla svuotamento


di tutti i precedenti stadi. (In figura il fonnarsi di una bolla e indicato tratteggia.ndo l'in-
tera registro, mentre il formarsi eli una pseudo bolla e indicata tratteggiando la parte alta
. ".i~!'ij
..,,,.
,
Ij;
.... ~ 'I
....'- \,

":Wj'lr '
",,'jl,.!
v' 'J'
'···,:.-'tj,·1 "~
" '• ."
,
",
\:

' ..r~
ed evidenzia.ndo il campo pel. Evidentemente, nel caso di pseudo bolla sono significativi "-"'l"..-.il .. J
'·7~'I;.li '.'
anche i campi OP su IF/ID e i campi WB, e RW su lD/EX, EX/ME e ME/WB.) .".....;1
~r.J;. ,"'
· '0{'
•• r "
",.,' "
',' ;;'Ir
1 · ":"'~f.
'

,..':lilll ,
..

"t~!j:it ~~
6.14.1 Eccezioni e interruzioni esterne
*"
• • t
1
.',."j. ~f
'~J;J
"'
' ,,'Q,'j "~
"'.- ;;: - ..
f NelJlesposizione precedente si e 3UPPOSto che i1 repertorio di istruzioni presentasse
';,~
• '':''<;,. ' "

'IS
.
':'!::
l'istruzione RFE per il ritorno dal servizio delle eccezioni. Si tratta di un'ipotesi poco ·,~.~'''
n :"
':,.' 1'1 "l'
il"fI',i. ,'"
realistica fatt'a solo per ragioni espositive. Nella pratica si usa un solo codice operativo '"~.
.;'"ii:\ :.

I
'
,. ";' l· ..
~
(RFI), sia per Ie interruzioni esterne ebe per Ie eccezioni. Cio presuppone ebe la logica ,'~~~~ {,
-'"

di macchina abbia memoria, all'atto dell'esecuzione di RFI, del fatto che l'istruzione "i' :f • "~.
r'
'I"'l .. ~
..

debba prelevare da R.30 0 da R29. , '; "'>;.l1il·~


.',iZ':i" ."
' ~r., ".
Se si vuole usare un unico registro (R30) aoche per il salvataggio del PC, occone '~~:)I
'..... :~

I
' III. :
"1'.Jj. ,'
ipotizzare ebe quando viene servita un'interruzione esterna venga disabilitato l'intero '';::!J~: ~l
''':u.! !:
sistema di interruzione (comprese quindi Ie eccezioni). In questo modo, il programma- .-"f;;os '~
..'~:J;:b ~; ....."".,
tore ha lao possibilita. di salvare il contenuto di R30 all'inizio della routine di servizio 'f
'
"11 OO:'~ ".'
,',,,,,~ ":
dell'interruzione esterna e quindi riabilitare Ie interruzioni attraverso un'istruzione · ''!t\Il:' ~.
·'}h;~
..... ":
I esplicita3\ con cio consentendo di nuovo it lore manifestarsi. L'esecuzione di RFI
deve in questo caso essere preceduta da!· ripristino del contenuto di R30ss .
'. ·"f,
I' ":
.,
"~'\ -"

i"l"
~~ .
Al Paragrafo 6.13.2 si era fatta I'ipotesi ebe Ie interruzioni esterne venissero rile- ·<t~~;...f.
vate (e trattate) in fase IF. Se si vuole rendere Ie interruzioni esterne meno prioritarie ,,~~

I
"
"',,!III ~
delle eccezioni, dando a queste ultime la possibilita. di interrompere Ie routine di ser- 'r·'~·I"
'. ""'
:1"'-
'.:'1 ,
e
vizio delle prime, non pili consentito avviare 1a routine di servizio delle interruzioni ,.~ •
..j:.
esterne in IF. Infatti se cio accadesse e Sl verificasse, a un clock successivo, un'ec- ··'.t·".. "
~
•. ~t1" .
cezione da parte di un'istruzione alleora non uscita dalla pipeline, questa andrebbe
I svuotata in tutte Ie posizioni a monte di quella corrispondente allo stadio in cui si
.
"'f'I,'
"···It •
';'~'::-il~~1
"/' '<;'1
;
,::-r:~:'I
'. •• I
';"'~
,~;P~.
[....,.;0,.
· : ~'.\
34n noetro repenorio noD prevede una tale istruzione, rna non e'e rnacchina reale che non ne sia " ~ 'f!',.
II '(N~J1
dotata.. , 'i\.' ,
''l-~!
35 Alternativamente si pub stabilire che l'istruzione RFI possa specificare il registro per it ritomo, ":'"
diventa.ndo del tutto simile alla JR, salvo l'azione di riabilitazione del sistema. di interruzione. ~,It',•..
(is;~ ·
,k~Q~;;
;;:~:QI
;
-.. ,Ii,
"'M;~1l .... ,
1 ,~~
iJ:
t!!'.'"
:/:
il,1
",I
La. pipeline 279
f '
,.,
~~'"
:/
'.!
,"
~,
"
,.
manifesta Peccezione, con cio eliminando anche Ie eventuali istruzioni della routine di
'",
,
l'~ j
servizio deUe interruzioni esterne gia earieate.
.,.' La soluzione piiJ ovvia consiste nel portare il rilevamento delle interruzioni esterne
ailo stadio ME: se non ee eccezione l'interruzione puo essere servita tranquillamente,
,

'. se invece, mentre viene rilevata Ia richiesta di intenuzione esterna, si manifesta un'ee-
:.,.' cezione in qua!siasi stadio, l'interruzione esterna cede i1 passo a quest'ultima, per via
, I •..
~', "
della minor priorita.36 .
.,•' ','
.".
,; .•"
..,
-:-;r,.'
•• , 6.15 Esercizi
. 'I
''" c,

",',::.
'", .
~,l'
~~., .
Esercizio 6.1 La completa esecuzione di una istruzione passa attraverso 5 stach.
;!'. '.
:./. .• ,
Ordinatamente, i 5 stadi richiedono: 50, 30 1 50, 50 e 40 nanosecondi. Si assuma che
,~,
1 ' ogni stadio si eomp1eti in un cicio di clock. Se si realizza la macchina in forma pipeline
~"?
'. "
" occorre prevedere che i latch tra gli stadi prendano ulteriori 5 ns.
!,.
~,
J .•• ,
.. ,
Quale frequenza di clock si richiede Del caso senza pipeline?
'~'~'
'" ".
"'A, Qual e la frequenza (massima) di clock per il caso con la pipeline?
".
" ' J•,
r;.',. ",.. Qual e il guadagno massimo teorico che si ottiene con la pipeline?
")":
~ •l':' j

Esercizio 6,2 In riferimento al nostro modelio di pipeline e aI Dostro modelio arehi~


"..
f"
~f,
-', ',
.
..
tetturale, 5i considerino Ie due sequenze di istruzioni A e B.
""""'.
.'0;..;0.,
:::",(.;" A: LD Rl,100(R2) B, LD Rl,100(R2)
''
"""',, . ST 200(R3) .Rl ST 200(Rl),R3
l'1'....
"'.i.
"' """,.,
'j

,.~,.
.i,'~'
.,.... ~.
, )
~':.;. Si supponga che 1a macchina non disponga di alcun aceorgimento per evitare Ie condi-
,,~.~.
f'~'\''-'
. "' .•
~,...r" ...
.... I'
zioni di conflitto. Si determinino:
· . h."
~r"t",.. a) il numero di stalli per Ie sequenze A e Bi
'I
." ..' b) Ie relazioni che danno Ie condizioni di stallo.
~:\~\':'t
: "'.,'"
',." Si supponga di realizzare la rete corrispondente aile relazioni del punto b) e si indichi
l.~t,.'~~" con X la relativa uscita (X vero in presenza di eonfiitto). Si tracci 10 schema logico
::..,,__
~'~~';'4'
,;,f;;"/ .... ..
.. :'\, , della rete che sfrutta X per la generazione delle bolle.
':'~~
":1'-,"':''- Supponendo ora che si voglia dotare la macchina di reti di by-pass per evitare gli
.'.. ".
:~:.~';:,.
-".
stalli, e possibile costruire una rete di by-pass che'elimina tutti gli stalli?
"
:"~~'-:"'"
, . Si disegni 1a rete di by-pass, riportando (e sale parti di interesse della pipeline (in
.,
"Y'
.1,. particolare, i latch con i campi impiegati dalla rete che eomanda U by-pass).
.7i;;}.,~..
' .. Esercizio 6.3 Si supponga che la macchina possegga l'unita. di by-pass e si consideri
'i '.
"_!>.
',., 180 sequenza di istruzioni '
-'1'
,".'0'.••..:,
,t\..
•..., ••
LD RG, 40(R2)
.,
.~,',
.. , ADD R3, RG, Rl
'.,.
' •. '',
;":,:~",:".
.,;
I.,:>
',. _ •
"
~"1", .36Yale comunque 1a pena di osservare roe con la struttura della no.stra pipeline, il rilevamento delle
'\"','..
: ...." ••
'
-:;, . interruzioni esterne PUQ restare in IF, infatti, il verificarsi di un'eccezione per via di un'istruzione che
..;' .., e aneora in pipeline, permette aneora di disfarsi de1!e eventuali istruziooi entrate, in quanta esse Don
"~I "',
,\ possono aver progredito fino al punta cia aver introdotto modifiche allo stata di macehina (peraitro,
""
"'. . il PC relativo all'interruzione non e stato Meara sa.lvato perche non e aneora arrivat9 ailo stadio
· •.',l~',';~ .
. ,~ :s.~~,
WB).
;~,*r~:;;
", ~"
~lf<.
,.....fli1
280 Capitolo 6

Si richiede:
a) il numero di stalli dovuto a1 conflitto per R6 e 1a schematizzazione della pipeline
nel momento in cui l'istruzione ADD puo procederej
h) la relazione (0 Ie relazioni se piu di una) che esprime la condizione di stallo;
c) 10 schema logico che corrisponde alia relazione del punto b); indicando con X
l'tiscita della rete corrispondente, si schematizzi come X agisce (se agisce) suI Program .
, • .;•.>
Counter (PC). Si indichi su quale (quali) latch e su quali dei suoi componenti agisce ,.;"
•,"
'~ij
X. .. I'
·I
··,t7
Esercizio 6.4 Si consideri 1a sequenza di istruzioni che scambia il contenuto di due . ":l":)~;
.. .- 2
parole di memoria: "/1
.'·;iJ
.-,~
,:~~j~
LD R5, 0(R2) ;RS,= M[R2) ...';~1;,'
LD R6, 4(R2) ;R6,= M[R2+4) .'/:.
.,,~•
ST 0(R2) , R6 ;M[R2) := R6 ...,.
.,.
'".'it
'''
ST 4(R2), RS .. ~'I\
;M[R2+4) := RS .....
"'l
,..
.' ,.

~;';
.,'.'.~
Si indichi se si hanno stalli e, in caso positivo, tra quali istruzioni. Se ci sono stalli si .:.,.-
indichi come possono essere ridotti a1 minimo 0 eliminati. '':!•.
'!,,,"
..,'..
'~'
Esercizio 6.5 In riferimento al Dostro modello di pipel~ne a 5 stadi, si assuma che Ie : ~~':
istruzioni di saIto eondizionato siano del tipo Jc OFFSET, dove OFFSET ~ 10 seostamen- '-:'\
.. i-1~j
j""
to rispetto al PC. La condizione (indicata genericamente con c .nel codice simbolico .•:.:.
.;-":'"
del saito) e determinata dall'esecuzione dell'istruzione precedente. ,;.I!
.. ~
"'-~'
1. Quanti cicli di stallo verrebbero introdotti nella pipeline in caso di condizione vera, '.,:.,.
f ...
,.~~
assumendo che il calcolo del valore del PC venga effettuato nello stadio EX dalPunica ",8.1
~"H
.".
ALU , disponibile?
(r'l'
":
"'~l
2. E possibile ridurre il numero di staliLutilizzando un sommatore aggiuntivo (solo , ~
.•/
per PC e offset)? Di quanti cicli? In Quale stadio sarebbe aggiornato PC? ! ol, t
3. In quale dei due precedenti casi e necessario memorizzare la condizione c all'uscita .. :'~
,'
;.'~
deU'ALU? ~'7
~l~
:.·
,
Esercizio 6.6 8i consideri una pipeline a 5 stadi: IF, ID, EX, MEM, WB. Nel caso 'r

di operazioni di salto, il nuovo PC viene calcolato e modificato in EX. 8i supponga :


:~~.
che la macchina non possieda alcun meccanismo di ottimizzazione della pipeline e si --"1'1,I.~
.

consideri il seguente tratto di codice: . '}~


.,' .
LD Rl, 220 ';'I
\;,
LD R2, 100 .',
::,.·
ADD R3, Ri, R2 ",X
,.
ADD R4, R3, Rl "~''
·"
.
JMP qUALCHE]ARTE .
-"
Quanti stalli si generano tra l'IF della prima istruzione e l'IF relativo all'istruzione in
posizione QUALCHEJ>ARTE? Come puo essere riorganizzata 1a sequenza in modo da
J
evitare 130 latenza. dovuta al JMP? Quanti staHi si evitana can tale riorganizzazione?
,,
.:,:i
Esercizio 6.7 Si disegni 10 schema della parte di logiea che gestisce il contatore di '"
programma in presenza di BTB, in modo da consentire l'accesso e l'aggiornamento .,
di BTB e da rendere minima la penalizzazione in caso di fallimento. In riferimento a
quanto illustrato dalle Figure 6.41 e 6.42 7 130 logica deve essere in grado di sostituire il -
.
PC mal predetto con queUo alternativo.
,
}
La pipeline 281

1
.. Esercizio 6.8 Facendo riferimento alta Figura6.49 si verifichi che in IF IID.PCI si
trova l'indirizzo dell'istruzione che verra ripresa al termine del trattamento dell'inter-
ruzione.
)
Esercizio 6.9 8i ipotizzi un'eccezione FAdEr, e si assuma che suI clock successivo la -
. logica sia in grado di effettuare il prelievo della prima istruzione della relativa routine
>•
""; ... •
di servizio. 8i supponga ora che l'istruzione ehe precede quella che ha generato FAdEr
.' ,"'
j., J
Il' f ',--!,
. , provochi un'eccezione (in EX 0 in ME). Si verifichi che, qualunque siano Ie prime 1.
7, \:.;~'.
~;!il~ !:~. :~ .
2 ) ~"=.,':
1"'-"
istruzioni della routine di servizio, esse non possono modificare 10 stato di macchina.
-
J" ~ .,.'-" ',:. Esercizio 6.10 Facendo riferimento a110 schema di Figura6.49 5i supponga di voler
~~' ..
'; "~""
'~" ... '." , trattare l'interruzione nella stadio ill 0 EX (si tenga conto ebe nello stadio EX pe- \
""'"
. ',! :';,:",
•. ,'. ,",~',.
trebhe esserci un'istruzione di saito cbe sta modificando PC). Quale tra ID ed EX e -
.tt,
.''t ffi" ,, . . inutilizzabile per trattare l'interruzione?
" ' .•.
.
~, "".. ..
\i 11 ";.'~' .. ' ','
lji' _I,
>',~." Esercizio 6.11 Facendo riferimento aBo schema di Figura6.49 si supponga ora di \ -
;'t~~ "~':", ,
':.L·,,'
- ,(\P~-'" •
rinunciare all'impiego di sa e ehe il servizio dell'interruzione preveda il salvataggio
..!n"":-
"'"~ ..
'!..>"'-'.
"". del PC di ritorno in R30. Si assuma anche che questa registro venga utilizzato solo a
~".,.'"
'" : ... questa scopo. Si disegnino Ie modifiche cia apportare alia pipeline.
:}1 ~:t5: ('.
:l~,..~·,.
j-~~1 .,'
""':,. - Esercizio 6.12 Si faceia l'ipotesi di avere 130 tabella TABffi in memoria MI. Mante- \
:.". 1·',1,·>:".
"":~" nendo Ie ipotesi del Paragrafo 6.13.2 e supponendo che suI bus delle istruzioni compaia -
.....
I!., ; ;~':, __'.\,:
~". " , .......
'. : , ~,
. ,."\ :
.",
.. i1 se1ettore del1'interruzione al ciclo successivo a queUo in cui viene asserito INTR, 5i
... ' . , . , , ' ,
~: c.>,.:,: J
••
analizzi come S1 modifica fa pipeline e si pragetti la relativa logica. 1-
•..,......
Hi!W' r'l.(" ~'-!,," ,
1. ~ & ..
I
'Ji' 'kJ-""',,·
;.•
:~I""""
lll ':> ,:~ .. , '
Esercizio 6.13 Con Ie ipotesi del Paragrafo 6.14 si definiscano i valori che devono
~" . .. '. ,('
essere scritti nei campi di comando di EX/ME in caso di eccezione in fase EX .
~:~ . L,Ot;,
t~J.;~ .' )~I":
:;.~.~~; ~',
',£11 .. _ ,.
,~~~~
-,.
~"''1 .... 1." '.
7'f;"
"'." .. ' .
.': •
Esercizio 6.14 In· riferimento al modello di trattamento delle eccezioni di cui nel
Paragrafo 6.14, si 'faccia l'ulteriore ipotesi semplificativa di avere ununieo indirizzo
I-
~'l' , .. \
·,'l~r. y.:~: "
,t-~'i~~,"'_'
per la routine di servizio delle eceezioni, nel registro di CPU ?eER. 8i tracci la logica
r6~!?f ,c '>::,;".:,
per la propagazione di PCI e per 1a sua scrittura in R29 all'arrivo nello stadio WB.
:~:;~! ':}:k\'
-~.1,
.: .,"~;':' i
Po,''~''''''''''''
... ',.
,,,", ....,,, .
\-
.,,~
.:~ ~;: ..;', Esercizio 6.15 In riferimento al modello eli tratt~ento delle eccezioni di cui nel
~'" :~1+>;'~
. ~L; , '!i\::';.:~, Paragrafo 6.14 e alla Tabella 6.11, si disegni la logica che serve l'eceezione nell'ipotesi
IQ:l, .::.:; :. '.' di impiegare la tavo1a di registri TABECC (Attenzione: ci sono due eccezioni che
,";-~!.. 't := ,; ,-
U'1~/I ".,'~'.,.'
,rtr,,~.;el'<'
·.. ·to, " "".
.~,
si manifestano in ID, dunque TABECC non pub essere indicizzata solo in base aIlo
stadio dell'eceezione) .
1-
X){
.-··it~,,~,
"',"
''"';:ili ,:"-,:. ;.
"C' ., •
··fJI~ ": "
'
Esercizio 6.16 In riferimento al modelio di trattamento delle eccezioni di cui nel
-
. "~," '.
"I,·i"
,." .'-..
".I.r,,<.' .', '
J~~ ::':;'\"
Paragrafo 6.14, si supponga che non esista I'istruzione RFE per il ritorno dalie ec-
cezioni e che si debba sempre usare 130 RFI. Come si pub tener conto del fatto che 1-
,:;~~;:., ':<":'::"
01);, I·"'.,'..
la RFI sta concludendo il servizio di un 'eccezione 0 di un'interruzione esterna? Se
inoltre si ipotizza che sia Ie eccezioni che le interruzioni esterne salvino PC in R.30,
-
:-rt,"';

,. 'h:, :.~ "


I," r.
..,
,
'
:~'::::~'
i ...' ,.:.j ".
"\i .:",
':"j, .".....
.
,~;
.~
,"
ehe conseguenze si hanno?

Esercizio 6.17 In base aile priorits, di Tabella 6.11, assurnendo che le interruzioni
I-
.j".' .. esterne vengano rilevate in IF, si esamini cosa accade nel caso in cui un'istruzione
-: ,,;,~ ,'~'~
... !.Ii.
,ll~'",: ·c::;c~>.
.... ..
.~"
':I,"l;;.,i:"".
:(.,~., ".'.!" ,,;
, ,

'
ancpra in pipeline eausi un'eceezione uno 0 due clock dopo quello relativo al rico-
noscimento di un'interruzione esterna. Verificare se questa situazione fa perdere 1a I-
, '~'Q\I ~::'~ ,',. , .
~I
.~
'I",.,
"· ~'~{
.. ,.

~!iJ}:
,.,)
282 Capitola 6 W
" t
,,' :,~

I consistenza rispetto al madelia sequenziale e se non enecessaria portare il rilevamento


I"
!,c,i~

'"
,., '
r...

./.
J"
~,.....,t'
.<i"
delle interruzioni esterne in ME (si tenga seropre presente che Ie interruzioni esterne
i~i~
I sono del tutto asincrone rispetto all'esecuzione dei programmi).
Esercizio 6.18 5i consideri una pipeline .multifunzionale come quella di Figura 6.52.
~«(.'~
",1,?~J:
..,.....
"."
.?~.'b
~

, Lo stadia EX prevede 4 unita funzionali: IU (per tutte Ie operazioni tra interi eccetto ;:"-",,c
'", ~. .!,~' '
moltiplicazione e divisione)j MDI (per la moltiplicazionejdivisione tra inted)j FU "1_
.~k
....
~.
1':.
..
I (per Ie operazioni tra floating eccetto moltiplicazione e divisione)j FMDU (per 1a
moltiplicazionejdivisione tra floating). Le 4 unita funzionali richiedono i seguenti,
, :(~

o
'~~~il.~ '"jl\:;:
. !1'~" '.~ {'
v Yi;~' ;.';;".1
-- ;.'

differenti periodi di clock per effettuare Ie relative operazioni: ';,'I.··~jl'··I-


,",~W.l;;·;·'''

, "'"1"-,0
.'".hc:n-
,( ,},",:x . ;:f"
J.,
....' ....

IU: 1; MDl: 2; FU: 2; MDF: 3;


) .' ,\W~ll' ~.;

·~iwrl~"~r~!\
, ~?; .... ~"~"-.' ~
Lo stadia ill, trasmette Ie istruzioni alle appropriate unita funzionali se queste sono ,.,:rt'1,,, :~(1
.....:,.1"'
libere. Richiedendo Ie differenti unita funzionali tempi diversi, la conclusione delle
~ ..,.",
', ".'-·' "."i:\
.. ;'t'l:l·
,.,. ,
~",,
::-:.:>
': ~~r:v~ll:~~k)~t"
l [..i EX pub risultare non in ordine: la logica dl CPU procede alle [..I ME e WB
dell'eventuale istruzione che ha terminato in EX prima di una precedente, solo se
cio. non comporta confiitti (eli qualunque natura) con Ie altre istruzioni poel testo. Si
~';t:>
·:·J;!ibt!,-..'"·,'
.,,:.~~ ,.. -}.
".;.~:i;..~, ,r.',
·.•.·""1
· .. ....'.
'~':Io).' .;'.~.
.. t~

~.',

.... ,~..,,;,,~ I
consideri questa sequenza di istruzioni: ,.,' "",, ..
; ,I"; ':,' ", .,'+
,",'

.:;~.\ . ,. .""
" . • I.~ I~"

I
", I ••

ADD R3. Rl, R2 ;Somma tra interi ·~"'<1"\\! :::i,'..:


• "",~ .. A.
>i/o{ ~:"
LD R4, 100 (Rl) ; .,.,.,. _,,., ,.".c
....'>1":.... ,. ~
,.::
("f'!.'. . < '~
MUL R5, R3, R4 ;Moltiplicazione tra interi ,
:j::;.~{t:,~,!-:I
· ;It' ' . ~
ADDF F4. F5, F6· ;Somma tra floating .".~~~I::!l;!

I ,:'l.'"''~.''''' ~"",.
,';i,,". ~, ..
OIVF Fl. F8, F9 jDivisione tra floating
,:.j.r~~;:
,~'lli"
";.' "
Si calcoli il numero eli clock che intercorrono tra quello relativo alIa fase IF della prima ",,~.,
)·7\;:>1.
· ':~'~ ':;:~
istruzione e queUo relativo al completamento dell'ultima istruzione (primo e ultimo
clock compresi), nell'ipotesi the la ma<;china non presenti una rete eli by-pass, ne altro ·~l~·i~~£
I accorgimento per ridurre gli stalli.
Si ripeta il calcolo supponendo che ci sia una rete di by-pass.
i:;~; ;;i.~,
·...----- .>-...

,.,.,,,,,:~t?',
.,

... '" {i~~i


,. f',fI,:;l<'
rJlf. '1'i
~

~;1f
. "0·'.1
c. ,
..• o·:"h

Nell'ipotesi che la macchina non presenti una rete di by-pass, ne altro accorgi- ,. I., "' .... ,.-,
menta per ridurre gli stalli, si riordinino le istruzioni in modo the il numero di stalli . "a ,@,'~f,

·· ?l.'l".;'~...~>«..
. ",."
( sia minima. Si valutino i numeri di clock come sopra (Si suggerisce di schematizza.r::e " ~i

il cantenuta della pipeline in riferimento aUe sequenze di istruzioni). "" ~.,


,..~ ~.,~>'t,::s!'
);~;r~!<
~'Oil'l.~, ':1
, ,.~.;;:::c:.,
....• :;I',

I ~ y.! '
"'-
. I [U l>~
· · ..~.·h
-I ' ,'. ':",tig~''fl'
:~,. ~~l:,-;':
"'7~'"
".~., .•. ,;,.
'.,I"'~~ ,.:to
~',I',.1 '".'
.

• MDI ~~
.... ' ~ ;j
""
, ~ . . .t.. ,

I IF ID
FU
ME 1,18
, ~'"
.,,1-'·5·,,,'.''.
.,:;"l~j;..",:,j
· >~.,"(. ...
'.!..~ ,.,
.,. ~ ,.
,:."." .. \"~.,
"
.~. '."'_'f;it
.

, ~'W''''~''
""i~j:':-,.,
"."'" ':'~;;'
......."'~..,.~
I MDF ,;~:~~.~:::':'
\ -I '.('I.~'I.' ~
.J
·'".'1".'
i,,,,,-Ji'",r·
Figura 6.52 Schema. della pipeline multifunzionale dell'Esercizio 6.18. ..l·-'$~···
,..,' .
''''~I'''''
,.... I"

I ··"tJ',
".,' ..
t;".,q
."
c":i~".' ',.
..' ",,~.,. .:,
,.:..., ~ ~.
.1 ~ ., .
"' ".,:;11 T:f; ,,"
'X'':". '. '.1
.'" , '1"'I'~"
,

,._,
,

'!'~
~

,
'lll'"
'/~

\
Ir
,.',,:
.,"
{",
).'
tW.·'
.
~.'.,:.
..• ..
~-{' ;
:~('
....; -,
"t·"
'.' .',

~/ ,
~;.::
~

7 ,

:;' '..
..
~ ",
b
. La memoria cache
',,",!,
'.:-
.... '
',
:':;' ,~, .
,.:... ,

': ':,
.1,'. '
-,"'"
''· ,
'.
0,.,
. <
,'.
;~"
\,::·.
"~ .
~.,..,:.
.....
\"·~
,' .
>':-'.'
"t.:· ;;..,
'.. "
''lfl: .~. Al Capitolo 3 abbiamo visto che il principia di localita. spazio-temporale dei riferimenti
., .. '
',:
...~,,' , ..
, {
..
',
alIa memoria generati dall'esecuzione dei programmi suggerisce di interporre tra CPU
.. "v.{ . e memoria centrale una memoria piccola, molto veloce. La memoria in questione viene
I:', "
+, "'"
• detta cache. Tipicamente una memoda cache e da 20 a 1000 volte piu piccola della
""x'

.: ",' memoria centrale, rna e anche 5-20 volte piu veloce.


"",.,'j\
,
~.\
:'
cy.· .... ' Se ben progettata la cache rencle apparente alia CPU una memoria della dimen-
~~.\
I.n' •.
' .'
sione di quella centrale e una velocita. pari quasi a quella della cache. Ovviamente,
.T•.
!:r~ :., essendo impossibile che it cento per cento dei riferimenti trovi i dati in cache, la velo-
...!.",~.­
~.,~, .. cita di questa rappresenta illimite superiore teorico at miglior~eDto delle prestazioni
:'~~:.' deUa memoria.
",., ."
.,);J""'"
..
~'-~ ,: La tecnica deUe memorie cache e nata negli anni '60. n primo sistema a presentare
£~J·'
I~,¥
una memoria cache fu 11 modello 360/85 introdotto dall'IBM nel 1969. Progresslva-
mente, can l'avvento di microprocessori sempre piu veioci, la tecnica e arrivata fino alle
,··\1 .',';
.

1'-,·
,., " .' .,'
hl • workstation e ai personal computer. A partire dagli anw novanta, i microprocessori
i:~~.
ffi'-'
i//"'··:···
di categoria alta presentano, integrate suI chip, una 0 piu memorie cache l .
-"
,'4·; -,
,~'H ::
",i!'
i-'
«~
, ,,'. 7.1 Funzionamento della memoria cache
'jl" "
<;J". I
1'· ••.
,,\,,:
,..~.,
-C".:
"". Spendiamo due parole per spiegare il criterio generate di funzionamento della cache,
','• .-
,"...,.-.
;;" i"' ' riferendoci a una operazione di lettura in memoria2 . Un'operazione di lettura si svolge
:"~· nel modo seguente.

." ('/'
o •U".
';, ..,
.•
j. , .
'''
1. La CPU genera l'iD:dirizzo I e iI comando di lettura.
.,"
.'.' ~,.,'
j, ~"l
,.:'"
. '"
,~".,,
. 2. Se it dato alPindirizzo T ,di memoria centrale non e in cache si ha un miss. In
...
"t..:;,
." • caso di miss e necessario:'
'('
,"'.,>
;'i. ",,
~ .. • leggere il dato dalla memoria principale;
':.:.: '
~ '.
J,..:.'
r·'''-'·'" ,.
. '•..•
,', 1 Ii Pentium Pro, per esempio, contiene due cache di 8 kbyte di primo livello e una cache di secondo
·'j

.. .,
q···
.~l'
.

,,'i'
Iivello, a.lloggiata sullo stesso supporto ceramico della CPU, di 256 kbyte.
zLe operazioni di scrittura comportano qualche complicazione in piu rispetto alia letturaj per
.'<~'
,.1' questa motivo, per il momento, si considerano Ie sole operazioni di lettura.
"~'" ' . .
11"'''','.
~,."
"" ':l.,~.
~' 1: 1 •
'~- ,
"~••,i.·.
284 Capitolo 7

• copiarlo in cache, tenendo traccia delPindirizzo 1, in modo che eventuali


riferimenti futuri trovino iI dato in cache.

3. 5e invece il date e in cache si ha un hit. In case di hit il dato viene direttamente


letto dalla cache', senza interessare la memoria centrale.

I punti sopra elencati evidenziano alcune questioni relative alia gestione e all 'or-
ganizzazione della cache.
Anzitutto si rencle necessario tenere traccia dei dati contenuti nella cache. A
tale scopo e necessaria prevedere un catalogo (directory), che consenta di ricercare
il dato in base all'indirizzo generato dalla CPU. La struttura del catalogo dipende
dall'organizzazione della cache, Di essa si parla nel seguito (Gfr. 7.1.1).
Un altro aspetto importante riguarda la quantita di informazione (di dati) che
si leggono dalla memoria e si portano in cache a seguito di un miss. Dalla descri-
zione precedente sembrerebbe che venga portato in cache il solo dato cui viene fatto
riferimento. Pero, se si tiene conto del principio di localita. spaziale, ci si convince
subito che conviene copiare in cache Mche it contenuto di un blocco di celIe di me-
moria principale contigue a quella indirizzata, avendo queste una elevata probabilita.
di essere indirizzate nell'immediato futuro. Per questa motivo, 1a memoria cache e
la memoria centrale vengono viste come insiemi di (piccoli) blocchi di dimensione
e
fissa detti linee. La linea l'unita di informazione trasferita tra memoria principale
e cache. Ovviamente la linea viene trasferita in blocco3 , in modo cia ridurre il tempo
medio di trasferimento del singolo dato (rispetto al caso' del trasferirnento di un dato
alIa volta)'
Per quanto si riferisce all'organizzazione della cache, e rilevante il modo con
cui si associano Ie linee della memoria centrale a quelle della cache , ovvero il modo
in cui si determina Quale posizione in cache andra a riempire una linea letta dana
memoria centrale. In teoria . della memoria principal b essere co iata
in ualunque linea di cache' si arIa alIora dl ac e co et ciativa. II
caso lametr mente opposto si ha quando una linea di memoria Qrincipale viene

;
;~~~:So~l~o~e~se~pre nella stessa .pas;z;one di cache; sj parla allora di cgdie a
~atura dire _ . Come lll'i:iS'Gato piu avanti, ambedue Ie organizzazioni presentano
un ceno numero di vantaggi e di svantaggi. n compromesso consiste nell'adottare
~anizzazionedetta associativa a pill vieS ,

Nella parte che segue assumeremo tendenzialmente di avere a che fare con una moder-
na CPU a 32 bit. Piu. precisamente, si ipotizza che Ie letture in memoria corrispondenti
al fetch delle istruzioni abbiano Petretto di trasferire sempre 32 bit e che la lettura
avvenga solo per parole allineate, ovvero a un indirizzo multiplo di 4 (aderendo alIa
convenzione universalmente adottata secondo cui gli indirizzi sana comunque associati
e e
ai byte)6. Diverso il caso di lettura/scrittura di un dato, in quanto possibile che it

3Questa tecnica. viene detta. trasferimento in modo bUf.Jt.


4Sem bra superfluo aggiungere che Ie posizioni delle linee sono fisse, sia in cache e in memoria
centrale. In altri termini, una linea non va riguaxdata. come una finestra centrata suUa locaz;ione
indirizzata, bensl come un blocco di locazioni di memoria. 0 di cache in posizione predefinita.
~VieDe llsata questa dizione per l'anglosassone .Jet a.uociative.
6Negli anni novanta. hanna fatto comparsa a1cuni modelli di microprocessod che trasferiscono da
cache 64 e talvolta 128 bit alia volta.
j"';''.
:\l1l""

~j;~1;Jt!~
TIlj;,,1
i!i~ :
''Ii ' ... ..
-~l"

I.:';:/~"l'; ,
<
La memoria- cache 285
I
J' . ,
,i.'-:~'~"7·'-·
I,,~t;:;~~::
",,~Yl;' .

~"."'
'. .'.
1
irS-i>'
I
.- '- " ."
trasferimento riguardi una parola, rna ancbe di una mezza parola 0 un singolo byte.
"'.'
.,'-,-.;.
Se viene trasferita una paroIa, aHora questa deve comunque es5ere allineata, se invece
,-",.
, .' si tratta di mezza parola 0 di un byte, la CPU genera meora un indirizzo multiplo di
I
~

j"
4, rna emette anche gli opportuni segnali in modo da selezionare la parte di interesse7 ,
Per il momento, nella descrizione delle differenti organizzazioni di cache, ci si riferisce
aile sole operazioni di lettura. .

7.1.1 Cache a mappatura diretta


I
La mappatura diretta prevede che una data linea di memoria venga sempre mappata
nena stessa posizione in cache. Per fissare Ie idee si assuma di avere: \ .
• una cache di capacita. pari a L = 21 lineej
• linee di W = 2w parole, ovvero una capacita. di cache pari a C = L x W parole; \I
• una memoria centrale della dimensione di B = 2b blocchi, multipla della dimen-
sione della cache.

L'indirizzo di una parola viene quindi riguardato come in Figura 7.1. I.



b I w

IB IL IW I
Figura 7.1 Struttura dell'indirizzo. n campo lunge b bit. identmca il numero di blocco in
memoria, il eampo lungo l identifiea il Dumero di linea Del blocco, mentre il campo lunge w
identifica il Dumero di pa.rola entro 1a linea. Nat.uralmente, assumendo tutti zeri a destra,
IB rappresental'indirizzo (di partenza) del bloceo, h l'indirizzo della linea nel blocco e Iw
l'indirizzo della parola. nella linea.
I
Con la mappatura diretta tutte Ie B linee in posizione h entro un qualunque
blocco di memoria, vengono mappate sulla linea IL di cache, come schematizzato in
I-
Figura 7.2.
L'organizzazione della cache e illustrata in Figura 7.3. Si noti che in realta. 1a
cache si compone di due distinti banchi di memoria. n banco di destra (DATA) ha f
1a funzione di contenere i dati, mentre il banco di sinistra rappresenta il catalogo
-
I.
dei dati contenuti nell'aItr9 banco. Ovviamente,' ogni posizione nel banco di destra
corrisponde a una linea dt cache, mentre ogni posizione nel banco di sinistra ha la
dimensione pari a quella del campo fB dell'indirizzo generato 9alla CPU (per questo
motivo it banco di sinistra viene correntemente indicato come TAG RAM, mentre
quello di destra viene denominato DATA RAM).
e
Riferendos! alla Figura 7.3 facile ,piegare it meccanismo della mappatura duet-
f .
ta:

- •

7r microprocessori Intel, dal 386 in poi, usano Ie \inee BEo.BE I ,BE'}. ... per identificare i byte
entro la parola. (BE sta per Byte Enable). i.
.
. 'S6 Capitola 7
~
~? ·"
,I , •

=til , ~

,.

n'
'0
~jy) .. J)CC D
,~
'IA.. . . J.,Q... ~JJ.. ~"'r:, .,
,
L'J
;~::'"
'l
JL ... MEMORIA •,

"r~. -;;L,..,. ~ ~ I ·'I


,

~, , - ,,;)
- .,~.I
. ~1

I - -'"-1 I .

)
inea k
"'i"
..;\,.;'
Il!,c
:t,W~

I?:'~'li
BloC'CO 0
... ~~ '
~:
I~''!';
'·'I"
;)u!'

I CACHE
Ii.~
Linea k
I rf9t
\':'fi.

\
\
,
UUClI k 810""0 I
.
;,~~

i1$~
.,.,;:
,;',;.
1j;\ ''
I \
" Linn k
'1o"
-
"~I'
., ~"
".. i
;
,

I'~•
'~",

I:~L
Bloceo 2 " •
\ I
I~~
,l \1
-~~,
.}
h~r
Unea k '~~I
,

)
'I I eloccc n- 1 .",'
1,~it~, '~~
'f' .. ~
'

Figura 7.2 Schema di principio della cache a mappatura diretta. Tutte Ie linee di una data, . ...a
,lJ~o'
'"".,,, ,~\
,'t1
,~
~!I
",
posizione nei bloccbi vengono mappate sulla medesima linea di cache, .
""~I' .~"

I
"
':'~~~i!.'l:l\' ~r
,.'

. ,'.: ~'lil'.~t\
'::< m:,
,~,
}li

~;,f:"
, ~. i
';/i
• n campo h dell'inditizzo permette di identificare la posizione della linea in DATA " ~,'~
:"'f!
'7
,~
e in TAG RAM, ~"':,l·-
- ~ ... "
'~"
. ,,. ,,\~
t.!t .. ,f".~
I • n contenuto di questa posizione della TAG
IB dell'indirizzo.
RAM viene confrontato con il campo
,
;" 'ti:~"/,!I!" :'l
.......
..." ,'"\' '""~'
" '"'' \l "'~
,.:.}"l\
",:b ...~
~,.

''l
..,,,",'" '
~ .. ::f'::i~ ~
.<
• Se il confronto indica uguaglia.nza il date cercato si treva in cache e puo essere '.. ;;~~~ '"

I letto direttamente da DATA RAM. Nella schematizzazione di Figura 7.3, Ia parte


bassa dell'indirizzo viene usata per selezionare 1a parola richiesta. La linea hit,
asserita a causa dell'esito positivo del confronto, abilita J'uscita dal multiplexer
.,.~~, ¥
,:",~,l.,
'(J
. "",I.;~
r !;"'
"
'!::i;lIFt! -.
della parola selezionata. '~I!,~1 ::
. "" ,
:3!~';j' {
';qt'flJ '
\ • Se iJ confronto da. risultato negative la cache non contiene copia del contenuto .'-' ~\l. .
.t.~j~" ':
';::"~' ;
della locazione di memoria indirizzata. In questa caso la linea hit risulta di- .. "l
-; "." 1'.
."
j
- :."j:i(~"
sasserita e si innesca un processo di lettura dalla memoria centrale della linea ,,' .."'~ '
·,·'·~i;; -
.• l";.~
contenente la locazione indirizzata. D campo IE dell'indirizzo viene copiato alIa .. ~,-r1')
~~. "
."",\1
posizione h nella TAG RAM, mentre la linea letta viene copiata nella medesima .\..~.~. '
""','.,
.posizione in DATA RAM. ,,',-,,'
"".'"
',1:,;'" ".
."" ,
.>,:~:
Vale la pen a di osservare che, con l'organizzazione di Figura 7.3 1 la ricerca in TAG .- ...~'l'i.-,
\ e in DATA RAM possono procedere in parallelo. Se il confronto tra I B e i1 contenuto ",,'~
:i-~'''''
, ..t~.
della posizione indirizzata in TAG RAM d. esito positivo, iI segnale di OE (Output · :"j'"
-:f~ ('l
Enable) rende immediatamente disponibile la parola letta. ' :;-· '.,...1!1·.~
'i "
"~ ' "_

La mappatura ctiretta rappresenta la soluzione pili irnmediata alla realizzazione di •• "~,'''


'[ '-ma memoria cache. L'inconveniente della mappatura diretta deriva dal fatto che se i
·"~l"
"iT"'
· .' ',",'i',
.or.. .'
',·.r~~
-:''Ji.''~~
,:,.~,~: .
, .. ':;l~
''I ',Ii
~

\
-,,".
{?j,!'"
'

~~;;';'"
.;g~~~;:,,:
'
La memoria. cache 287
~~~~,,:,
• ~.;;;J ..

'l
, 1,f".,
,,~,~

;:(i"" ,
..
·""".,.,., .•..
." _ 1

" ':~)., Indiri~~o dal pro"usore


~';;;:"'!, '
,
~;~

'··..·
I"
1.L ,:"
.. ~"
IB IL
I
"I
"·i':",.
~.....
l;jt' , '
~~~':
TAO RAM DATA RAM

i'';
'~M"':
:(t·, ., -----
;;':' .;
"~,r"
----
),","..
~:ft
t~I"
i.d"!;
,

. ..
~,.,."

~"~; ::'
~
:,.,;-, .. "
.\:.";--'
'1r.. ·"
,


"'ofI>,"'"....,' "
, ",','
;~~
,~~.

''',''
"nd" .
J ,~ COMPARAT,
hit \ OE
SEL
~." /
~L~t",.
• tiP""
• . .,..:1'
I
~~ri
,\, ',e,. ,
T
mr;s
}~i~~"i
r~c. "
Ij.J;:;:':
"'"-"':,
;y.'
.
~.".t..,·"
'~~~,:";;'
~~~j,'
.:",.
,v

Figura 1.3 Cache a mappat.ura diret.ta


BUS DATI

1'J,,:,' '
~~~.,
It;"*:,,, '.,
,j.,- .
",,", .
."",, .'
r,l;:< ' programmi hanno localita. tale da coinvolgere due blocchi di memoria, a ogni passaggio
,r::::'"
i!"
'
';:j;i
;II,,~'
da un blocco a Paltro Ie linee di cache vengono necesaarlamente sostituite, abbassando
io'll'''it"
7f."'~'~' le prestazioni complessive della cache_ Nonostante questo, in pill di uno studio eo stata
~~1!f.;','
....
"~'ir:""~'"
" "J'" '
dimostrata, attraverso dati sperimentali [Hil88], la bonta. della mappatura diretta,
~li)~ ~l ..' ' anche in paragone aile organizzazioni illustrate qui di seguito.
l;j~if;;:,""
'~'i'·
. ,. --,
"\',.,,
~'"'';' .•'
l~'''• .-''':
~~'''''''
.. .

<:1>"" , .
~i~',,'
"/i,~;":"
¥t~~:, 7.1.2 Cache completamente associativa
;~;'~i'"
''.t~..... ,
""T~' ,,~
-:.... 1~" Quando una linea di memoria pub essere copiata in qualunque posizione di cache,
:(f/."·' :
,,,;t. ..
{'~~,OI':'
questa viene detta completamente associativa, per il fatto me la TAG RAM si com-
'";~.,;.,:~ ,.
.>;I~,). porta effettivamente come una memoria associativa, ovvero come una memoria CAM
:':':i'L,"
;o,.,p<.'- _-'
."'" ",:'."
j-'i'j;,-", ,
(Content Addressable Memory).
1;:&'
';-')l ".
-;"';"..
Foiche Ie linee di memoria non 5i mappano in cache in posizioni predefinite, ogni
~... "'
)"';"
",""
linea di memoria ha un proprio univoco jndi'rizzo, Ix. Tale indirizzo deve essere me-
' ":"',
'-/~f· morizzato in TAG RAM; dunque, 1a TAG RAM deve essere costituita da L posizioni
~,. ...I'
,.~
.. '~.,
"......, di t = b + I bit.
,(("....
"'''-''
La schema di una cache completamente associativa viene mostrato in Figura 7.4.
";';'.''it ' Essa mette in evidenza che il campo Ix dell'indirizzo viene' confrontato in parallelo
.;..",:.1.
".~
)">
....
~""~
con it contenuto di ciascuna locazione della TAG RAM. Se il Ix e
presente viene
.' ".,.'"
.'
.. ',,",. .. aSserita l'indicazione di hit e il dato viene Jetto da cache. In caso di miss accorre
_d,_"
.(
': ,.",
'J<'''-'!' accedere alIa memoria principale.
A differenza del caso della mappatura diretta, a fronte di un miss e necessaria
:\C?
,... ~,Ii,
"t'·· •
"'~':"
·~~:c.i,,·
,~",.
. J~~~'~"
:~l.;cJ
~ ,...'Ii... "
288 Capitolo 7

Indirizzo del processore

l w
IX 1W

t
, Y

l
o) l- o '"
I /
I ,"
, , n DATA

--
0
• • 0
TAG RAM ~ I RAM

n
>
~
0
'"
~

l :...
L- 1 I /
-
IrL-11,"

-Read
,
n' "J
hlt/m!ss
. .
BUS DATI
Figura 7.4 Schema di principia di una. cache campletamente assaciativa.

individuare Quale linea sostituire tra le L possibili 8 . Di questa problema si parla


diffusamente piu avantL
La ricerca della linea in DATA RAM puo avviarsi solo dopa che si conc1usa la e
ricerca in TAG RAM. I relativi tempi di ricerca non possono essere sovrapposti come
ne] caso della mappatura diretta. Tendenzialmente questa organizzazione comporta
un tempo di accesso piu lungo. A cic si cleve aggiungere 1a maggior complicazione
circuitale e il conseguente maggior costo.

7.1.3, Cache...Earzialmente associat.iva_


~

Le cache completamente associative sono molto costose da costruire. Spesso si ricorre


a soluzioni che mediano tra 13 semplicita. della mappatura diretta con la flessibilita
della completa associativita.
Si definisce Grado di AssociativitlLdi una cache il numero di posizioni del catalo 0
~evono esserp conWm.t:a.te CQP il campo I R I ovver<? n e ill lVlduate
_attraverso I'lL. La cache a mappatura diretta ha un grade di associativlt pari a r.
••
~

8E; invalso il termine colorito di vittima per designare la Iin,ea di cache scelta per e3Sere sostituita
con il contenuto della linea d.i memoria.
La memoria cache 289
\ •

La cache completamente associativa ha un grado di associativita. pari al numero di


I
e
linE.~e di cache. Se il grado di associativita. n si parla di memoria cache a n vie9
In Figura 7.5 viene mostrato il diagramma a blocchi di ·una cache 3Ssociativa a
due vie. Si noti che, come nel c..o <Ii Figura 7.31a parte bassa deU'indirizzo seleziona
la paro1a effettivamente indirizzata, mentre Ie due linee hito e hit l abilitano 0 no uno
.I
dei due selettori.

,I
In.dirino d.l IIroeUlore
1B I I L ' l l... l
I-
I -1
T"C RAW OAr... R.Ol.

---
---
\

1-
hitO
COMPAR. or SEt.

COMPAR.
~".
,E sn

-
"-
BUS DATI
,
miii
Figura 7.5 Schema di cache assaciativ:a a. due vie. Ciascuna via S1 camporta come una
cache a mappatura diretta. Le due linee hito e hitl abilitano l'uscita della via da in cui si \
trova il data. J

Con una memoria cache associativa a due vie, ciascuna linea della memoria prin-
cipale ha la possibilita. di essere mappata in due differenti linee di cache: alia posizione I'-
h nel b3rI1cO di destra oppure in queUo di sinistra. In caso di miss occorre scegliere
in quale delle due vie debba essere copiata la linea di memoria che viene letta.
Per quanto si riferisce alia velocita. di accesso, a parita. di condizioni, questa orga-
-nizzazione ha prestazioni comparabili con 1a memoria a mappatura diretta. Dell'in-
\-
fluenza dell'organizzazione della cache sulle prestazioni si parla pili diffusamente piu
avanti (CIr. 7.3).
I-
7.1.4 II problema della scrittura

Una operazione di scrittura pub determinare un hit


operazione di lettura.
0 un miss esattamente come una I.
gIl termine anglosasaone e tl-way Jet associatitle cache. I.
l1i
290 Capitola 7 ifg
~'fu
';\'J
,~i"li
- i.l!~!Y..
'. ,\I&i
~</I·'-
Miss in scrittura In presenza di miss si pone il problema se portare 0 no la linea ,":\~"
1,1';·11
di memoria in cache. Se la linea viene portata in cache si parla eli write·allocate., nel 'trf~:
;b~:
caso contrario si pacla di write non· allocate. -)V;
t;;.
Se si esc1udono Ie cache a mappatura diretta, il write-allocate richiede l'indivi. ,.,.
""'.
:';\'1;"
duazione della linea eli cache in cui verdI. copiata la linea di memoria. Si tratta di I,' -
,,·.r,!
·r I r

~
,~,

un aspetto fondamentale della gestione della cache; di esso 51 parla nel Paragrafo 7.2. '~.,)

... \.".'3'
..'~)~~'
~,
'I., •
,''''''
""'.:
'., .. '
Con il write non-allocate, una scrittura ha il solo effetto di modificare il contenuto :~~ t:~.::
~
della locazione di memoria centrale indirizzata, lasciando inalterata la cache. .... '.1;
'-~J'i ':ii,;
La tecnica write non-allocate viene spesso preferita. A giustificazione della ..,t..,
, '1 1 '.'
~!p.
, .,
:.-,
I preferenza ci sana Ie seguenti fagiani. :"~i"l(
:. ;J_t.,
~';"",\!i ".-',
.~ ....
• ,"":"" .: ,.",' ..1
'~.I('
• Le operazioni di scrittura si verificano con frequenza molta piuba.'3sa rispetto "'00::, '"
.~,"~. ," ,
"I"'
·:~~:
, ."!
alle operazioni eli lettura. Un semplice conto e sufficiente a spiegare questa af- 1~j;
fermazione. Ipotiziamo che il profilo eli esecuzione del nostro programma sia .. :~ t ~,: •.

/

mediamente composto da: ·~i~~j ~~I,<
::"~'?~ rf~\
o un'istruzione di lettura di un data in un registro; /:),~ '::t,
. : t~~1 ;~':\

I o una operazione tra registri;

o la scrittura del contenuto di un registro in memoria.


:.~,·t~~ .:/?.
" ;"\il' \ ,
·.7.*' 'j.'
..{~~:-j,~
- \":'I>'l )'~.'"

Assumendo che il fetch delle istruzioni sia equivalente a una 1ettura, si avrebbe .:?;:i~~ ,;\;y
( una operazione di scrittura ogni 4 operazioni di lettura, ovvero il 20% del totale .'
':;~f~~l
,.j~'\'
t;,;;
J'
'."'~~ \, ',"
degli accessi alia memoria. Nella pratica Ie operazioni eli scrittura si manifestano ""'·"'1 ,·I".
'.,~..
C' ~~\ ••
-.,
in percentuali piu basse. '.".1; .,' ,~:
'>·ff' ·:·'
;j~~~(j\
I • A diHerenza delle operazioni .di fetch, per Ie quali, se viene letta la locazione
M i , e altamente probabile cbe l'istruzione successiva sia a.lJa locazione M i + 1 ,
i riIerimenti ai dati possono essere alquanto sparsi e non e improbabile che la
....-(.:~,.
.4~ ~I'<
,..","\" '.r"
.'.<1'~'.\
· ··~~li"
.' ,',,"
-

, Ii·
:~t:'i.l :::...
generica scrittura sia a Wl indirizzo del tutto differente rispetto a queUo di prima. ,:i!:~"I'" i:
, ,':':"t!::,;'·
,,:,,"~ "

· "'~' ...
..,I.e
'.'
\ ·
'.,,:,~
"'i~.J;
.• ,,;:~, "t'.'
Hit in scrittura Nel caso di hit si ha un'altra complicazione: ' deve · "'0")'.'
' .., :"'i~
. '.
',.
· '.>"' ~'~
·c..Qntenere Carla dei...4ati-immagaz'Zi .. emoria rinei ale una scrittura in cache J"~:t~ :~.\
:o~·'" :...~
~be il contenuto d;ea memoria centrale incPDsistente risp...ett;Qa..aue 0 1 cae e .,;!>! .... ' ."i
. e riuett:.e:::resec1lZioAe..deI P'P?gr,amma; ,:.>
:~~~,~'
'.. .;;" "."
,.(,.';;!. ,.,,

Qi sana ~ossibili mo9i ..per tra.tta.rt~·-questo,aspetto: la scrittura immediata ., :;.-"t, ".;,
' . .'~; "
(write.through) e la scrittw:a-a:2.<?§teriori 0 difIerita ¥Jrite:'baCk c'-copy· back. -
- l··
.... :. ~

I ScrjUul'a immediata l).Itte Ie scritture che aggiornano la cache vengono effettuate


anche in memoria centrale e eib garantisce la consistenza anclle se a discapito
.,;:!ti ':
· , ·"i
".,
•, '·1·
.,.,....:.'
..'
·,·"'"
I ..
.. " ,
delle prestazioni, in quanta !'effetto positivo della cache si sente solo in lettura. , : ~'i
'l:t "
1'0, ..,
Per alleviare questo inconveniente molte architetture prevedono un buffer in serit- ·.',::,
"./

\ tura che opera per 10 mene alla ste&sa velocita della cache: n buffer di scrittura "":.\
.~

elimina il tempo di latenza dovuto alia scrittura in memoria centrale e il proces- • :Z..;. •
..., .<
sore puo procedere oltre. Purtroppo il buffer e efficace solo nel caso di scritture ·
. ,' ' . t
:i.'IJ~ ;J.

I,
isolate, che consentano 10 svuotamento del buffer nei tempi che intercorropo ....
medi~eIitEt- tra scrittura e scrittura. Determinante risulta il rapporto di velocita ,"<~\~ '.~, '~~l .:
tra la cache e la memoria centrale. Con Ie ipotesi fatte sopra, Ie operazioni di · ,:,y. ,.
:..~.;~~;'; ;;
"~.;,
. ".J' "

I
· ...';.A"
,.:>11;, ..
-":l:!ll1 ~
," ,
rti/'",~

i5r~.f~' .
,~

gtl~~,;t,~· ,..
u"i~1.:~~:·' : La memoria cache 291
Jl'~""': :....._---------------------------...:=..:::::===:::='-~--
i~il)?\A'
_.
.,,:.ti,'
-
i~;\,(' '.'": .
-~':il "
".",,,." >•
11;.;1; _ scrittura capitano ogni 5 accessi in memoria: un buffer eli una posizione sarebbe
:-~~··
:l ..,', ,, mediamente sufficiente con una cache 5 volte piu veloce. Si osservi che nel caso
;"~."d· ,.
.~p"
,,'''' .. di movimento di grossi blocchi di dati, il buffer di scrittura viene rapidarnente
.".",
" ;:. ,,;:,' saturato e la sua presenza diventa ininfluente sillie prestazioni.
-!'"' .' .
r.," ",
! .', '.... ,
';...
•. ,'", ' Un vantaggio notevole di questa tecnica deriva dal fatto che quando la linea viene
'~.
,,.,, .. '
rimpiazzata non si pone il problema di ricepiarla in memoria come nel caso del
:~:;· :.'::
;'-' write-back descritto qui di seguito. Thttavia, il write-through ha 10 svantaggio
;-',':::
.•;' . . di incrementare it traffi.co sui bus di sistema, perche ciascuna scrittura forza un
,
,·,·,'i.,·
,1' ' ..
.. ,,,,_.,
,
trasferimento sul bus. E questo uno dei motivi per cui il metoda non indicate e
1.."1. ,.- nei sistemi a multiprocessori con bus condiviso.
,,; .",1
,.~,.
" I I:" '
;)'\.'" Scrittura differita In questa caso e previsto ~ol~anto l'a
'ornamento della
.:;J'v:. 0 0 r IV memorIa 1 Slstema a un sec n 0 momento. II
<:,;:.:.:". . cat ogo della cache deve tenere traccla e e nee rno . cate dentro la cache
\~'. :': s ess3 1 assoclan a Cl na linea un In lcatore odifica il cosid-
,;·,::".. d.etto=_.di...rtii!Jt. momento in cm una inea di cache marcata come mo ca a
\:.~.<-;'''' viene scelta come vittima di Wl rimpiazzamento, essa viene ricopiata nella cor-
.:..\ 1.
,,' ,
rispondente posizione in memoria di sistema. Se 1a linea non e marcata come
'.,:~::." modificata, il controllore di cache passa direttamente aI caricamento della linea
~':'.! da memoria centrale,
" .'•.

y:;:,:.:,.:. Questa tecnica ha i1 vantaggio di permettere qualunque numero di acCesSl m


;:"\·:::'.'
..,. ,,'
scrittura alIa cache senza ritardare il processore e senza generare traffico sui bus.
.~, ..",'.,.
" ",'I'"
,','
•••. ,
:... '., , ..

':';i' ..
\:.'. Si noti che il problema della consistenza tra cache e memoria centrale, discusso
<.I""
-joJ., sopra per il caso delle operazioni di scrittura della CPU, si pone anche nel caso degli
~ .}.".;
~'I: ...
··""~ .",,::;.,
aggiornamenti di memoria fatti da processori di I/O 0 da canali DMA. Una te~nica
..'" ' .
.-~';:.,:" comune consiste nel tenere setto controllo il traffico suI bus di sistema e invalidare
::: -:
· "",-,',. e
ogni linea della cache che stata aggiornata da dispositivi eli I/O, Tale tecnica detta e
.' " " ,. bus snooping 0 tecnica snoopy 10. Di essa si parla nel Paragrafo 7.5,2.
e,.. :
',.~,
.' '
.,.,,' .
~ •.'.'"
\;~1: .
~._
i"). ;.,
. ",', 7.1.5 La stato della linea di cache
>.,'.. .',, ".'
"".,.'.,
,.'" " Al paragrafo precedente si e osservato che in caso di scrittura differita si pone il pro-
,:,'
.....'. blema del tener traccia del fatto

che una data linea sia 0 no stata modificata durante
:. •
la sua permanenza in cache. E questa. una informazione di stato che deriva dalla par-
' ticolare tecnica di gestione della cache, rna essa non e 1a sola possibile informazione
",·: di stato delle !inee di cache di cui oceana tener traccia.
..,--...
; "

""
E chiaro che dopo !'avvio del sistemail contenuto della cache non ha alcun signi-
ficato. La cache viene riempita mano, a mano che i miss determinano il caricamento
;'.
delle linee dal1a memoria centrale, E dunque
,
necessario che . esista, almeno per ci-
< .'-
ascuna linea, un indicatore di validita. E suffieiente un bit che indichi linea valida
..
~ , o linea non valida. All 'avvio del sistema tutti gli indicatori di validita. indicheranno
.:~-':.-

~:~::>,;:. '
:,.•;, , lOLetteralrnente, it verbo to .snoop significa ficcare il naso (negli affari aJtrui), Preferiamo tenere
., --'. la dizione anglosassone.
;':if- ::"1
,, .. ,
"'.,'
.. 'F'.
_'R·
~; .:'-:"
r11
_\:
292 Capitola 7 '.
~!!J'
;;~
r.-''
'1'
,:~

~nea non ~a1ida~. n ~aricamento di unaY~ea dall~ memoria centrale cleve deterrninare ':~~I ;~~
tl passagglO dell mdlcatore allo stato dl linea vallda ll ''''~
D t I d ' - Ii' .' . . . ' ."m*l "".:..
. uran ~, a p:esenza 1 una nea In cache 81 pub determmare una sltuazlOne di <I.i.:j"~ /:,
linea non'plU val~da. Corr:e acce.nnato, P,liO capitare che un canale DMA eftettui l;~~j~.~~~
un trasfen~ento.III memon~ modific~do II contenuto di posizioni corrente.mente in .:~~\~ ,:<
:ache. Le .lm~e dt cache corns~ondentl devo.n~ essere invalidate. La ricerca di un dato ',:;;~ .. :
In cache n~lede an~he 130 venfica della valldlta del dato. In altr~ ~arole, non basta ~'1~~ :·L
confro~tare ~l TA~l 11 ~onfronto deve anche tenere .conto d.ella ~ahdltA della linea. ·.:J~im :
I st~teID.l multlt.as~g p:es 7ntano ~n altro ~otlvO per mvalldare Ie linee di cache. ,.~·~r\re, '_
In un sIstema multltas~g 1 differentl procesSl sono in esecuzione in tempi diversi.....:1~i! ;
Quando un 'pro~e~so termma 130 sua esecuzione , i1 sistema operativo sceglie un proces- ,,~'l.lW ''
so tr~ que1h .attlvl ~ .10 ?~S~ in. esecuzione. Evidentemente, il nuovo processo ha un'· .;.~,\ ~~
pro~no spazlO de?h ~dirlzZl~ di:erso da queUo del proceS50 sostituito. Se il sistema '~'!-J~~ ";
g.es.tlsce 130.memona Vlrtuale,. mdipend.entemente. ~a dove eposizionata 1a cache, epos- '\~ffi!~ .'
slblle c~e 11 nuo~o processo III ese,cuzlone genen mdirizzi (parzialmente) sovrapposti .' ~.~i~ ~
a:quelli gene~atl da! prece?ente. E d~nque necessario rendere invalide tutte Ie linee '.1Si~ ':
di cache. I ~cro~ro:esson con cache IDcorporata prevedone una esplicita istruzione, ,'.~.;I~~f!V' :;',
ov~ero una Imea In IDgresso al micro che svolge tale funzione. Si puo evitare di in- ::;~~, .~
val.ldare tut.ta ~a ~ache all'atto della messa in esecuzione di un nuovo processo se tra -. ''-'J.JG'!~
Ie .mfonn~lODl di ~tato si aggiunge, per ogni linea in cache, l'identita del processo .~,~~tt :
CUI appartlene 130 bnea stessa. In questa caso, 130 ricerc30 in cache di un dato deve . ':tl_>:
tener cont? dell'apP,~rten~nzadella linea, confrontando 1'identificatore del processo a ~\. ~;~~: :·
essa ~50clato ~on 1 IdentI~catore d~1 ?rocesso .in es~uzione. Conseguentemente; un :,~~ ~L
~~bl~e?to dl .contesto ~il p~saggl.o ~ .ese:uzlO~e dl un differente task) non richiede . i~~rr&, ,,
I mvahd;l.ZlOne cil alcuna linea; mfattl, 1nfeflmentl generati dal nuovo processo anche . }"~f.~ ·.
nell:eventu.alita che producano un indirizzo gia presente nella TAG RAM per 'effetto :;~~t t
dell ~ecu~lOne del processo sosp~so, non danno luogo a hit, in quanta non e'e identita . "!~fi! :
t.ra ll?enhficatore del proeesso III esecuzione e l'identificatore di appartenenza della : ·1>~· q
lmea ill ~ache. U:'l'lgoritmo di. rimpiazzamento delle !inee di cache (Cfr. 7.2) porta ::~·Y\t "
automattcamente m ~e Ie lme~ appartenenti allo spazio degli indirizzi del nuevo .,,·.'1~;~ :
p~oce.sso, Questa. soluzl0ne ha OVVlamente un rnaggior casto, dovuto aHa memoria ag- :"~~ :
gmntlva necessar.la ~ m.emorizzare per ogni linea di cache, l'identificatore del processo ' )~ti~~ 1
che ha generato 11 nfenmento alIa linea stessa. ::':~1¥, ~
,'):".:.7,:,:
",;~~:}~, \
,:~~~Z¥. ;
7.2 Algoritmi di rimpiazzamento delle linee di cache ~.':~~<
;.\r.~
".'\'u\. :
"v.;',"r..
In caso di miss, nelle cache con una associativita superiore a uno, il controllore deve J''''''!' ;,'1.
· ",'I),:,.: .
'~'.~"

determinare quale linea cleve essere rimpiazzata con 130 nuova linea proveniente dalla ,
· ",·"r'.·- ....
,) .. \,:
,,\,,~

memoria di sistema. Gli algeritmi fondamentali, dai quali derivano alcune versioni ''. !'~.~;\,
'I ~;:\t'
modificate, si riducono essenzialmente a tre: LRU, FIFO e RAND, ·.~EI
J"fi1)r
""11':
· .... ~:,;j,
:1;'.,..
LRU La strategia LRU (Least Recently Use(/) consiste nel rimpiazzare, tra tutte Ie , ';',

linee possibili, queila the non e stata usata da pili tempo. L'assunzione e che se
da malta tempo non viene fatto riferimento a una linea, c1e un1alta probabilita
,,~ ';.~~
, , '"
/1~;::
,. .
,\.
~,.

:..:~:<':
11 Si noti cbe linea. invalida. equivale a linea vuota,. - lS;:,
'..;",,:1,.,
" ~"""
~ ......
'~l.o,~
. 'I.. ",,
,,"'. .
." ""/','" '
,,,,If-,' .
N:}!.,
,_W,,-~
:;>.:'."';11.,
1i!il!;;J:I' ': \
:l~;'£uh "
.~~'-!
':~(!J~~::;:'
'~~l'':''
;' ,-.: ,:.,,-, -
';:i:"!"~ • .'
--------------- ..=:..:===:.===-_-=-=
La memoria cache 293

~, j.\?:.~;~
\
~~\tj'5j;"
..,..,.,.... .
che si tratti di una linea contenente un pezza di codice 0 dati poco frequentati
. d i G '11 algontml . . LRD rIS. u1tano al quanta comp1esSl.
.~';\'.(":' dalPesecuzlOoe e programma.
,i-';": .
~.~:.,:,~. ,
e costosi da realizzare.

:<,-j ~~. RAND La strategia RAND (Random) rimpiazza in modo casuale. Dati sperimentali
I
:~:;. . .' mostrano che Ie prestazioni non degradano eccessivamente. Del resto, una tecnica
L,I-':· . di questa genere appare 130 meno sensibile' alIa distribuzione dei riferimenti e, in
:,!~>h.' particolare, a programmi aventi comportamenti patologici. L'algoritmo RAND e \
_."...;..... ' i1 pili semplice cia realizzare.
; :'~~:,".: '
'.~?:'.:'" FIFO La strategia FIFO First-In First-Out assume implicitamente un modelio di ese-
~~,:.f.:,:'~ : cuzione del programma di natura prettamente sequenziale. Un algoritmo FIFO \
;'~I:., e di media complessita realizzativa.
';~~;f;;1 . .. . . . . ... .
~, ~ . '." ~ [HP931. ve~g~no ~orllltI datI sper~~ntali~ulle prestaz.lOID In funzlone delle .~f~
:~;/':;';:: fere~tl st:at~gle ~l nrnp~az~ament~ ..QUI dl segul~? ve?-gono.illustrate.alcune POSSlbll~ \
,:',Ii':,<' \, ·.reahzzaz.lODl de?h algontml. :ruth .51 bas~o sulll.m~lego ~l centator:. n numero del
~;;.>.!,'\ cont~ton comblD.ato can 1a ~unenslOne .del med~lllli. forDlsce una .~ur.a d:lla com~
~I-l' ::.' p,lesslt~ della lOglC~ necessana al~a ?estlOne ~el n,mpI~zamento: 81 fa nfenmento al
:;,(. ~ caso dl. una ~em.ona cache assoclat~~a a. N .vle, di L linee p~r via. . . .
::':'i;; . Gh a1gontml vengono presentatllO nfenmento alia genenca pOSlZlOne (al genenco
·J~~:.;i'I"· set) .di cache che vi.ene indi'o:iduata at:traverso ~l campo di indiriz~o I L · Alla posizione
Li'.:'f. _.;< h 51 trovano le N Itnee. cornspo~d~ntl alle N vie .de~a cache. I.e Vle.vengono numerate
\
,:'~:,.':-\. dl& O.a N - 1. e Ie corn~pon~enh hnee vengono .1~dicat~ corne I? ,It ,... ,IN -1' Q~~do
·.n:..'" c e blsogno dl mettere In eVldenza anche 130 pOSlZlOne di cache Sl usano due pedlcl: li;
t;~t: i~dica 1a lin~a ~ di via j ..A o.gni ~in.ea 114; e associato il bit di validita indicata can Vi;;
:·~~~r;, ...
q'f':':,.. .
51 hanno qumdl L x N bIt di vahdita .
. . ... . .., .
":~~~':;'(;:":' Pnma. dl proc~~ere e necessano. stabillre In ~resenza mlBS ~ pu: lin~e non vab?e alia
l
. I
::~(.t~\:. . med~lIDa POSlZlone h, quale VIa verra selezlOnat~ per COP1~VI 1a linea ~etta In me-
:::~'j~.. mona. Ten~to conto che 130 scelta: ,deve es~ere fat~a. dalla: lOgIca .~e1 contr?liore ~ella
13~~;;t,,:: c~he, conv~e~e rendere la sce1~a plu.se':Ilplice ~osslbile. ~sulta plU convemente, lde~­ ,1
~::(.::( .tl~care la .V1tt~ma attra~erso una pnontA statlc~.pre.de~ta, assumendo per esemplo
:,1:.;<,' " che verra Implegata 130 1mea a se essa e non vahda, 130 hnea 1 se essa e non valida ed
\'-::'.':;' e valida 130 a, etc.. In tal modo, 1a scelta si effettua attraverso un semplice arbitro
;:\>!::':' di. prior.i~a. ..Nell~,parte che segue si indica come .via prioritaria.la via pili a sinistra
<'>','
~".,V'
(ClOe, dl mdlce pm basso) tra tutte quelle non valtde. I
:, .' ';,. . •
' .":'. "
.. ..
l
:.'.... ::,',
.,.,c, '.j' •

,- ...
-:'·,·,
" '
7.2.1 Sostituzione a caso
\'. ' ,
,;,~

:"'....
.,
..'.",::'
" La sostituzione a caso richiederebbe che in occasione di ogni miss venisse generato un
." numero a case, compreso tra 0 e N -1. Ovviamente, la generC\Zione del numero a caso
I
I.
,'.,
introdurrebbe un'a rete di una certa complessita.. Si puo ovviare a tale cqmplicazione
;/\i"r
... se si assume che i miss si manifestano in modo casuale rispetto a tutte Ie linee di
.'.
:".:."-
'" .
~ ";.,
. . :~. 12Nel seguito si assume che i bit di validita abbiano valore 1 per lineo valida e 0 per lineo non
:.~ , valida.
"'.'
. '., r,.
',--
."
,-,,~,.,
'
294 Capitolo 7

. t'i
.'~
'I· -,.

cache. La generazione del numero casuale si basa quindi nel tenere un cantatore,
unico per tutta l~ cache, .incre~ent~to .modulo N ogni volta in cui c'e un miss. ,~!I
n contatore m questlOne Vlene mdicato can C. )::1
Poiche la sostituzione e a casol non si cleve tenere memoria dei riferimenti prece- . ;~~.I
e
denti. Dunque, in caso d.i hit,' non necessaria fare alcunche. "411
In caso d.i miss 13 J la vittima viene anzitutta scelta tra Ie linee non valide; se Ie N ]~I

I linee alla posizione I sono tutte valide viene selezionata la linea sulla via il cui numero
d'ordine eguag!ia il contatore. n contatore viene quindi aggiornato.
Ne deriva 10 schema di algoritmo sotto riportato (si ricorda che la sostituzione di'
una linea comporta
,
Paffermazione del relativo bit di validita).
• Hit:
Miss: esistono lioee non valide?
Si: j +- indice della. via prioritaria
No: j +- C;
Sostituzione Ij;
C +- (C + l)modN; VI; +- 1

I Statisticamente, se i riferimenti fossero distribuiti casualmente sulle diverse pa-


sizioni, il precedente algoritmo sarebbe del tutto casuale. Per il principia di localita.
la sostituzione non avviene con processo del tutto casuale.

7.2.2 Rimpiazzamenti con a1goritmi LRU

La tecnica LRU richiede chel per ogni posizione h di caebe J venga tenuta una lista
ordinata dei riferimenti. In testa alIa lista ci sara sempre la linea riferita pili di recente,
in fondo quella riferita meno eli recente 14 .
La realizzazione della lista richiede, in generale l N posti in grade di tener traccia
dell'identita. delle siDgole !iDee. In pratica ogni posto corrisponde a un contatore
modulo N. Complessivamente, si hanno L x N contatori; ciascun contatore richiede
un numero di bit pari all'intero superiore di In N 15.
Qui di seguito vengono presentati due algoritmi. Per ragioni di chiarezza, si fa
riferimento a una cache a 4 vie.

Metoda dello stack LRU Lo stack relativo a ciascuna posizione h edi 4 posizioni;
• ogni posizione e data da UD registro di 2 bit. I registri possono essere collegati in
cascata, secondo 10 schema di principio in Figura 7.6, tracciato per il solo caso deWhit
e assumendo ehe tutte Ie linee siano sempre valide.

13Qui e nel seguito, a. meno the non venga espress3mente detto il contrario non si distingue il
miss d.i scrittura. da. queUo di lettura. Tendenzialmente si assume che la scrittura sia del tipo write
non-allocate e che, quindi, it miss in scrittura sia del tutto ininBuente. Nel ca.so in cui la scrittura
sia del tipo write-aJJoca.te; it miss di scrittura ha 10 stesso effetto del miss di lett.ura..
uIn ·lett.eratura questa lista viene denotata come stack LRD, anche -se non e propriamente uno
1 stack.
l:lNel caso di cadle a 2 vie la lista si riduce a un solo elemento di un bit. In totale bastano dunque
"
L bit.

.I ,
- La memoria cache 295

.
LUrI 8 h--1 8
] 0 1 I f -I 8 2 1 I -I 8 3 f-+

hclk
v \-
........
YI\-
Figura 7.6 Realizzazione dello stack LRD. La schema considera solo il caso di hit e non Hene
canto della validita. delle linee. 11 segnale hclck (hit clock) rappresenta l'impulso che deriva
dall'avvenuto hit. It numero d'ordine della via su cui si e manifestato 10 hit e rappresentato
da j.

Lo schema mostra che al registro So viene presentato in ingresso il nUffiero d'or-


dine della via che ha determinato hit. Lo stack va aggiornato portando in So il numero
di via j su cui si e avuto hit e spostando verso destra la parte di stack a sinistra del
- posta che conteneva j. Per esempio, se si ha hit su Io quando la configurazione dello
, stack e

13 a2
si passa a questa configurazione:

0132

e
La propagazione verso destra controllata facendo passare hclk attraverso una
serie di porte che ne abilitano il passaggio in base al risuitato del confronto tra il
-numero che viene inserito e queUo contenuto nel contatore.
Nell'ipotesi di validita di tutte Ie linee, il caso del miss e banale. Si tratta infatti
di presentare in ingresso a So l'uscita di S3 e di far scorrere a destra 80, 51 e 82.
Le variazioni aUo schema di Figura 7.6 per tener conto del miss sono imme-
diate. Pili complicato e tener conto della validita delle !inee. A tale prop08ito si veda
PEsercizio 7.8.

Metodo dei contatori per linea Un modo per realizz~e la lista consiste neWas-
sociare permanentemente a ciascuna linea un contatore e utilizzarlo per tener traccia
dell'ordine di riferimento della relativa linea.
Per meglio chiarire si esamina iI comportamento della cache l per una data sequen-
za di eventi (hit, miss, invalidazioni), con Pausilio della Tabella 7.1. In questa tabella l
sulla terza colonna si riportano i 4 contatori, Co, Gl , Cz, C 3 , relativi aIle 4linee della
generica posizione It di cache; sulla quarta colonna si riportano i corrispondenti bit
di validita.. La seconda colonna riporta Pevento ehe, a partire dalla configurazione
dei contatori e dei bit di validita della riga precedente, porta alIa configurazione della
riga su c;ui e riportato l'evento stesso.
Seguiamo l'evoluzione dei 4 contatori a partire d.alla condizione iniziale corris-
pondente alia riga O.
I valori dei contatori della prima riga di Tabella 7.1 indicano che II e la linea cui
estato fatto riferimento pili di recente, mentre 12 e quella che ha avuto il riferimento
296 ,
Capitola 7 -_:I
.,' j
-'",
,""
"r

. Evento {;o {;l {;, '1iit Val.


G', ~
0 condizione iniziale 1 0 3 2 1111 "t
1 hit sulla linea di via 0 0 1 3 2 1111 '
2 mISS 1 2 0 3 1111 ;
3 invalidazione linea di via 1 1 2 0 3 1011
4 hit sulla linea di via 0 0 2 1 3 1011
5 invalidazione linea di via 3 0 2 1 3 1010 .:
'
6 llliSS 1 0 2 .3 1110
7 hit sulla linea di via 2 2 1 0 3 1110 '.
8 mISS 3 2 1 0 1111 ':'\:;'ll~'
"",,
2
9 mISS 0 3 1 llll
-~>:;}l~.i
10 mISS 1 0 3 2 1111 ).~
......, ,.
"""~:l ,

Tabella 7.1 Esempio eli politica LRU per una cache a 4 vie. Aguiornamento dei contatori .9~/"
,', ...
....,"'.,.

0' ,.' 'I'


relativi aile 4 !inee in posizione h. Uevento si manifesta a partire nella coodizione della o.:~~;, 1'.
riga precedente rispetto a quella su cui l'eveoto e riportato e determina la condizione della ':~'~:: .
. . .:: :?! '..
nga stess.. . '"''
. "~~J,~,"'.'
. ':'~" :
. . .~.~" .'"
piiJ lantana nel tempo. L'hit sulla via 0 ha I'effetto di portare a 0 il relatIvo con~atore ':'~':~~r'
e a 1 il contatore della via 1, i restanti due contatori restano invariati. A partlre da.,¥.~,\,
questa condizione, un miss determina la situazione di riga 2. Come si vede, stata y~,~m. e
sostituita 1a linea usata meno di recente e tutti i contatori sono stati aggiornati.'.:::"Jjfi'11
L'invalidazione di h e il successivo hit su lo portano alla situazione di riga 4. ,t,. ';1
n suc~es.sivo. miss capi~a quando !e Ii.nee ?elle :rie 1 e 3 sono non va~de. ~on .·;jf 1
l'.ass':lnto dl nmplazzare la linea sulla via dl ordI~e mmore tra: que~le non ~allde., vIen: ~:,~r~ I~
r~mplazzata 12 anch~ se l3 e quella. usata m~no d:t recente, .e SI ottlene 1a sltuazlOne .d~ ~;~.~,
fl~a 6. La tabella nporta Ie modlfiche denvantl da un hIt su l2 e da due succeSSlVI .. JIfi
miss. .'~~r~~~
...~~lt~
Uesarne della sequenza illustrata fornisce Ie seguenti indicazioni. <;'0.i~
.('<?;i'I'if
1. In caso di hit si tratta semplicemente di aggiornare i contatori;A;~(~
,,:~'~fj,
• incrementando i contatori di valore piu basso di quello della linea su cui si "~~~~
h,a 10 h l't' ' '!~IM
,'.....'"
, . :!;'\~f
• azzerando quest'ultimo contatore. j.~~~!
'j.,'i\Q
. . '. ' .~,;~~~i
2. In caso dl mISS Ie cose non sana mol to dIVerse. 81 deve pero tener conto della '~~J
possibilitil che ci siano una 0 pili linee vuote, Si deve quindi: '.. :;:l1J
. ,.';
• selezionare la prima linea non valida 0) in mancanza , la linea can il contatore !)gt
U uaJe aN-I' ',1.~t1
g 1 .'•. !~
bit di validita. "..~~~I
':.~
litt'
'> " 1
~'''\.'. '
r; ,'••·1-:·" '
~.',
;'\,..-.(" .'

I'\,;~t~~?';·.
jj::~·,';i'.
La memoria cache 297
'""...
~
l':h·.(·,:··
',t'-'~" •
- ) .
r,."",,~, ,~ .
",' : -, .,
,.~"" -';;,'" '.
, "

~.!ft:~<~'· Vogliamo ora riscrivere Palgoritmo in modo pili rigoroso. Si indichi ~on eli
t¢:t·~k.!:':
"'t"" .... '(I -
- ,OIL". I - 1-I i = 01, , .. ,
N - 1) il generico contatore presQ dalla matrice di
'~{~;}:f'-' ·contatori C! di d.i~ensi.on~ L x .N ~ si. indichi con Vii it generico bit di validita preso
I
.'

;:·t~~/:y:-.', dalla matnce V dl pan dunenslOlll. Sl ha: ~


.....
,,l!,',", :,''''
," r
'~:~~~~>:'::.' , Hit: j +- numero di via su cui si verifica hit; .
:r:~/i;.',>·, Vi ~ale per cui eli < Gfj : eu .- (Cli + l)modNi 1
.!!,:.i'J:.}:, ,,' , CIJ f- 0
l~,.,. ....,~ "
7:., )'i:~,",
\~,\~"~ . Miss: esistono linee vuote? ~
~if;.'iY':'
""."l.'
Si: J' .- via prioritaria; I
'::,:~;.~i:-.: " . No: j.f- i tale per cui eli = N - 1 ; . j •
. ;'lit::;.::
'". " \/1. tale per Cill eli < e l;: Cli f- (Cli + l)modNI
;,;,.~"~,~,, CI,' +- 0' ..
..,',.,.
, ,""'" '."
~1\~:;~;,{'
'."
Vij f- 1
\
';~""',," "
~~'f~.!:~:: . .
. ,:~~~,'",: U aI 't d'" t d LRU L'algon'tmo LRU sopra mo
. }..";f;f'. n gar! rno 1 rlmplazzamen 0 .pseu 0 -
.,".., - , Ri h' d ' f ' 1' t to ' rt 1 . d'
' ~)l'!~<:.' : strato alquanto costoso. e c le ~ m a~tl m~ tl CO,r: a rI e una ce a ogIca.l \
:;~~\":"" contornoi cio si traduce nelPoccupazlone dl spazlO sull mtegrato della CPU.
" ~£':':~.'''' Vogliamo ora mostrare un algoritmo che realizza una politica pseudo LRU. Ci
'i ':';~~(~'" " .riferiamo aHa'tecnica usata dai progettisti Intel per 1a cache interna della CPU 486 e
l~~~)':.: dei modelli successivi[Int91j. \
. ~~!ti:1. ' n
486 ha una cache interna associativa a 4 vie. Ogni via contiene 2 kbyte. Le .
~,t~t.:~,~~::", ,linee sono di 16 byte, per un totale di 128 linee per via. In scrittura viene seguita 1a
11 ';~~;~r'~:" politica write-through/write non-allocate, conseguentemente Ie operazioni di scrittura
,
11~~~'f:' aggiornano ~a cache s?lo ~n caso di hit. di scritt.ura. . . . . . \
~ :·:fut'J::,.-:', ~a gestlOne del flmpI~z.amento.Sl appoggta a soli ~ bit per ~ea anzlche a 8 bIt . ~
,) :~!~;1<', per ~nea, come sarebbe nchles.to .dal quattro contaton de~ aIgontmo pr~cede_n~e. 1 I
i ;r~~1:. -: .
tre ?It (B o, 8 1 e ~2) 80;0-0 d~ttl btt LRU ~ servono ~ c~trwre Qll albe~o di pecisione.
~, 5.!~r'",':, ESSI ~en~ono agglO~natl OgOi volta che 51 ?a ~ .hIt (In lettura 0 scnttura) oppur~
~4.{{~·, un miSS m lettura, In accordo alle regole dl declSlone sotto esposte (con lo,lthh St \
~~ ;Y!\~:~'{,' indicano Ie linee nella generica posizione ILl relative aile quattro vie). -
ffi' '~,*'I:
~ ~:~~f~:.:'" •
Bo = 0 indica che Pultirno accesso e state alla linea 12 0 alla linea 13; Bo = 1
,J ;~%¥{
~J ~~~~~.;. :,'
indica che l'ultimo accesso e stato aIle linea 10 0 alia linea h;
B 'd' ch 1 1 l' I ' ' l l Ii I' B l' d'
I ..
M' '~;-1';:~'"
"'RJ". • 1 = 0 In lca e, tra 0 e 1, U tlmo accesso ~ stato a a nea 1, . I = ill Ica
f' ~·~t:~ che, tra lo e iI, t'u1timo accesso e stato alIa linea lo;
!,~Q; }J/; il',.~"".
i·~;~~if7;·:;,
• B2 = 0 indica che,tra2[ e l3, l'ultimo accesso estato alIa linea l,' B, ::::: 1 indica
che, tra he l31 l'ultimo accesso e stato alta linea [2;
, ~
I
Ji;b'"
Ji :[E'1>' L'algoritmo di decisione e di aggiornamento dei bit LRU viene illustrate in Figura 1
;~~~;;<Dj'. 7.7, In riferimento al caso della sostltuzlOne (miss dl lettura).. ~
t~ ~~lX.'· In Tabella 7.~ si illustra il co~portame~to della p~eudo LRl! ip riferimento aHa
1,,;,jb1i~.'> stessa. seguenza. di Tabella 7.1. 81 puo venficare che ill Questa <4501 a causa delle
~ :r.t:;&''t,.:, invalidazioni) 1a. sequenza di uso delle linee esattamente 1a stessa fino ali'evento 9
e
incluso. Nel caso de:
Ii~~~·'.·· (Tabella 7.1), 10 pseudo LRU sostituisce 1a linea l2 (Tabella 7.2).
~~~ h~li1t1.· "
298 Capitolo 7

I >:':;-;
""',
'.• 1'·"
., -
,-:.j,<.
," '.'h.
:{~:O
r<
W
<,
.
~
'''
• D motivo della ~er~ziazio.oe r~siede ne~ fatto che l:al~oritmo pseudo LRU opera ',,:{~; ~:
secondo un albero d.i declslone bmano: un mlSS che sostltUlsce in una delle due vie di >':~>~ ¥;
I s~stra predispo~e i bit ~R1.! in modo che un immediato, succ~ssivo miss sostituisca.'~Y.l (
nel d~e blocchi di d,estra) m,dipeD?entemente da! fatto che questa seconda sostituzione '~;~ 1~
I1:0n Sla. ~uella preV1~ta d,all. effettlVQ ~R~. Per .es~mpio, si supponga che tutte Ie linee ':::'~i#/ ~~
Sl~O. valide e ?te gli ultllll1. qu~ttro riferun~tl SI~O stat~ tutti hit a tutte Ie linee in:
pOSlzlone fL. In questo eriline. 10,ll,h,l3. SI venfica factlmente che 10 stato dei bit<~~~~
At ~
-,
e a
LRU 000. Infatti, II primo indica che l'ultimo riferimento stata fatta aile due:"'~ e ,
,
1.In~e a dest ra. n secondO' 0 d' h I ,,0,11
ill lea eel ha avuto un riferimento dopo 10 ; il terzo 0 }i~~ ~:'
lD,dlca ~e 13 ha .~~to un riferizr.1ento.dopo h. Si supponga O'ra che seguano due miss. "?~)~.. ;
- \ L algotltmo sostltwsee 10 suI prImo miss e aggiorna i bit LRU a 110 il prossimo miss ,:~~;1: ~:
por t ecd,' a 50S t"ltwre I'2 'mvece d'I I1. "-'\o,~l·
'.:~:~.~
...
\
"
•• "1:.,'
'.1::.:...... ~
... 'lt~ ~

/ Tulle Ie UNEE No Sosliluire linea ':'7fl~t :


\ del SET valide? non valida ";\~f "
·"./:S! )
Si 'r~!.i ~
S1: 10 e 11 usale
.·: . . -(i
I mene recenlemenle
80 0'
No: 12 e 13 usale
meno recenlemenle · ""'~'.;:-'':
1J:1o'~
· .~ .~~ '
"13\~ ,
,'~ 'r:1;'1 •
'::TS ~ :
-R<:\" ~
' .•.-..if
.;~~ :
Si No Si No .~ .:"'';;;;
-.. "N.Diiji ,
.
81 '" O? B2 01 '.:":iff~I' ..:
.=:"'-~".':"
·,i;~i'..
· "''''-'' O)
,:fi't:t..c
'; ':" ,~-:\, ~
.' :>->',
.. ~."- . ,~
c., "',"., .i

- I - Sosliluire
linea 10
Sosliluire
linea II
Sostilulre
linea 12
Sosliluire
linea 13
,,:,." .",'
..... ,,~~"'! ,
·I, .,•• ,,:-<t.i-l'

. :~f!!/ r
iI"a.

80:- 1 80:=- I ·80:= 0 80: ... a ,,;?~~t,: >


81:= 1 81:- a 82:- I 82:- 0 "':.~~~1 ~
F' 7 7 Sch d ll'aJ' . .. /'";j}.": ,
. \ 19u~a. e~a. .e ,gontmo ~ deCISI?ne pseudo LRU. Nel caso in cui venga sostituita 'tit~i;
una linea non vali?a, ldentifica~a ~a linea, bit LRU ve~gono modificati in modo da riflettere ':"'~!,i~
colloro val~>re la linea usata. II bit LRU vengono aggJornati alIo stesso modo in caso di hit. ~'.~~~:W
,<~~.~,
,.,:.;:.~
'.':?~.~~
.,1.~.~
7.2.3 La tecnica FIFO I,,;;j,~~j
I La tecnica FIFO cleve solo tenere conto dell'ordine di ingresso delle linee in cache. ~~~~~ ·
-;~~~,~
·'''J'1fI:

Si supponga per un momento ehe tutte Ie Hnee siano valide. Per tener traccia '~,~::b;f
lell'arcline Iii ingresso basta un solo cantatare C, per ciascun set, che conti modulo N, ':.:~i~
\ 'I contatore viene inizializzato col valore della via su cui deve avvenire Ia sostituzione. :,:.. .~j~h,
SuI miss la'nuova linea viene copiata nella via individuata da C, n eontatore viene :}i@~~
quindi inccementato. .~~
Si consideri ora il case in cui tutte 1e linee di un set siano invalidate. L'algoritmo .~ i~~
sostituisce ordinatamente Ie linee non valide e si porta nella condizione sopra descritta, ·S~~L~
e
L'a1garitmo dunque II seguente (ovviarnente II caso di hit irrllevante), e .,' ~

I
!t~.,

',:" r, "
.~" .',
.\"il.i.",
- ,
I .. .
~

,#,,' La memoria cache 299


<., )\':""': _'

<',~:\A\'
. , 'j,:II'\
, ,.
WI""<i.'t'
". ' ,
~::X":!':-
''JIT;):~''
:w:~:r' ~vento B o B, 'lj, Bit VaL
;f£~>!/:", 0 condizione iniziaJe 1 a 0 1111
(~~~J::L..... 1 hit sulla linea di via 0 1 1 0 1111
~1?:§~-~"":. ,(." 2 miss a 1 1 1111
~i~;.;~~.:\.,' "" . 3 invalidazione linea di via 1 0 1 1 1011
~:~~~~:~ '~,. .
,.!.r~,\!!<~,;;.­
4 hit sulla linea. di via 0 1 1 1 1011
5 invalidazione linea di via 3 1 1 1 1010
,~~tji{,: ,. 6 reuss 1 a 1 1110
'-""r'
:$'~~.'''~''.: 7 hit sulla linea di via 2 a a 1 1110
;·~1:"t.!, ' 8 reuss a a a 1111
:j}~j~it.~:-"l:: 9 miss 1 1 a 1111
... /i,~.,;.-- .
\.:~J'::'~':':'"
"l(~·.'" 10 mISS 0 1 1 1111
~'-..y,~
~~:~;.~."

:i~i~~i:" . Tabella 7.2 Esempio di politica pseudo LRD per una. cache a 4. vie. Aggiornamento dei bit
",:;~1;~.r~~.·' di LRU. E stata presa Ia stessa sequenza di eventi (e la stessa condizione inizi~le) usa.ta per
)~jl:i(~.'i 10 studio della politica LRD (efr. 7.1). L'evento si ma.nifesta a partire nella condizione della
~~it:.:: .r~ga precedente rispetto a quella su cui l'evento e riportato e determina la condizione della
·.'.~E,'
-:ilil-'- . \.. . "g''" ,tessa.
'. ~-.,~~ ,-
'{'~t.('.jf.'-'
,}!rI,·i~5;,.~,.·.'
• 'w'" , '.
.
..
:~~,:lit'.~'·;'
~. !\~1-;'>
.,. ·i~.... -_.".
:~,., .i.ff!"
.;::. ........11..,"
Miss: esistono linee vuote?
,,\1r~<;ii?~\
:'~:;1~!lJ'~ i'· • Si: C f-- via prioritaria;
..·/1:,'1:..'....·'
,s, _.•,." ,
O":t~:v.,~'."
)';.?j;~~ , sostituzione della riga in colonna C;
~""i~ ..."
~~";;;/I"
,,' '-,l\;"(
i.... ,;llo1l~·
''',
..· ,:.. C<-C+l
~
,f , ,

, • '""~''''
11" .:",I." "
", Pf:'~

r~~;?-'·,·, . Nel caso in cui venga invalidata una generica linea, il precedente algoritmo de-
>;~;;~;:t\,'termi~a una modifi~a di C che ,non co~risponde pili a un ~ettivo algoritmo FIFO.
~~~;~~*:::;~' Infa~t1, }luso. delta llll:a .non valIda la.:>C13 C a. puntar~ alia. VIa che segue quel~a su~-
,,"l.,:;j,~'.£:" ceSSlva alIa linea SOshtUlta. Non e detto che questa Sla Ia bnea entrata per pnma 10
~~~;'., cache.
~H~;~~'~:(:,', . . ... , . . .. .
W'?~~(;., Vale 1~ ?eDa .dl n~tare che 1a ~osslblllta ehe una g~~~nca linea. Sia lDvalldata,
.~~;'~'~' almena Del slsteml a smgola CP U1 e un evento molto PIll Improbabile che tutta la
~;t~~(::::.' cache sia invalidata. Infatti, l'invalidazione di una singola linea e solo conseguente
~t~~I~:,'~ ,a even~uali operazioni di .1/0. ehe ~adano a ~erivere n~lla corrispon.dente li~ea in
:(~D',: memona. Questa eventuahta. Viene dt norma eVltata cial sistema operatlvo, che nserva
ji~':~~hr,~' per Ie operazioni di I/O delle specifiche aree di memoria e che definisce tali aree come
i....,L~,,.? non cacheable, impedendone la copia in cache.
:l,r.T'( . •
J~~t,;,' In conclusione I'algoritmo sopra presentato, sebbene dia risultato non corretto in
fr~;W\l'. ~" caso di invalidazione casuale di qualche linea di cache, e da preferirsi a un eventuale
'
~~;~Yf.:' algori~mo che tenga esa~tamente canto dell'ordine di ingress~ delle linee in cache.
,/~~:/-. InfattI, per un tale algontmo occorrerebbe un contatore per linea e la sua comples-
~<~~':" sita sarebbe dello stesso ordine di quell a deIPalgoritmo LRU" con contatori vista in
t~.it precedenza. . . ,. .
'~~~t::> '.
Un modo per reahzzare l'algontmo FIFO e costrwre una memona TAG operante
~.t~J;" I? mod.~ FIFC?, aggiornata sui miss, in modo che essa identifi'chi irnmediatamente la
;-'t~;(;~ Imea plU staglonata.
"J,o,t~.. . .
"E!i4
,r, '.,
;~~~ .'f"J,1
.
. "",:to",
, ~ , ,,,

f' • '. •
rJ .' I I~,,·
...

-.;.
~';,~
,', '.;Ii
. .tlt<
3QQ ~~tolo' J·':.~··:t '; !, _._ .. e... ..• , , i l ", :;~;ti~
::-);1
:,'},\~i.
7 3 A . r' ~rn t .. . .. . ... ' . .."I'~"
. JIi'
. n~' ~~~l .~ ~._~ ..:~;' .-.p.~~'~". ~~l ~.~- .,~.. ....".. -.', ~. . .. <:~~i,
: l~.': ",',::.-." _,r, .' ,'-" _~':;?"', ~
La valutazione)de~e pr:5tazioni [A~.881 ;d~[ una' mem~Fia tache e tu~to~a ~n argri;:~,. ~
mento aperto..ll semphc'e modelIo usato:,q'Ul sotto e.utlle a d3:Xe una mdlcazlone del~,
guadagno IIiedidbttenuto con la cache; ; ,<:' f ;:1 ·n:: '''''.'1 ."i,;.';':', :.' ,',)~ :
Designamo 'con te if tempo media cli· atceSso a:Ua ,memoria in pres'enza di cache~JW." ,
te puC- essere espresso come:: ' :: ,i ' i!: " ",:! " ~,,~ .. :, i'· '~i ,r,).~, ~
""I : ., tc c..h··t·'+m·t
c p
. -
' ( 7 1 ) ". ; '-"1'
, e ','

" . . '. ,., ',:'::<'


'" It .. I "," 'I,'" ,-' .,',",:f
dove: ,;;, '. '. ,. '''" " " ":~:l.
• , , • -':;'("'i-'
.. ' . \."I$.\·<Il
h tasso di hitj , :' ! ' • " ',i:,' ; ' , :¥l.~
. ,: ~ , , " " ';" '''~
""'('m =
m tasso d1· mISS '--1 - h) ; .. ,. ....., ....,.. .. ..... ;"11~;
'_.... ::
.".'

tc tempo'di aceess6 alla ca:che,' cornprensivo;.del' tempo ·p·~r·'Stabilire se,'si~h~ tii~'f .!~.t:~~~~. .
t:p., te··m···p:·l~ 'd"ir:"pe"n'a'li':"~~~'l';' 'e' "s"o"m"m'"a "de'I"t' e'm····; :d'::;'\ 't':" ~.,) 'd"'U';o '.. ,~ .\~,'" ,. t .' I~ l.l J:<:?)1t
l

. "'.. . z"'~ vn j .' po 1 a enza e a.memona '~r-mClpa e'e '.lif,


. '1 •• t1del terilp6' necessariO-'a trasfefue'l~ lin'ea' in cache. "';",':" .,\.: I '. .;, ,"\"",: " :.j·~ff~"
.~,~ '\' ".!<~l,!·.t~~,~f.
Vequazione 7.1, fornisce i criteri per l'ottirnizzazione di una memoria cache l;f~r
consiste di quattro aspetti: ,%~:~
,:-,,:~, r

1) massimizzare la probabilita di trovare un'rifedmento alla"mernoriia direttamente :~~~~,


nella cache (massimizzazione del tasso. di,ihit); " ..-' \~~I'
. . , . . I ,'.l.'~ :'; .', f!' ,'. I' "l! .:' ' .., ' '.',' ,.' . -.:~~IF: '
2) mU:l~u~zare. iJ tempo necess.anh.o per accedere a ,u~~ ,1~formazlOne nella cache ~l~.
. (ffilll1mlZZazlOne del tempo dl It)· . . "",
' .o....\~
']'t d d t . ('" . d . id' -.,,1
0) '"
'\J, .r~l!lJll1IZ~arel,;.n ~~ .~. qytl.. Q ~ un ml~s. ml~l1ml~~~lOn~,. e tempo l,pen",I'lzza- :)~,"~"
','
,
. . 'zlone)',. '" " .. . . . ... '. , . " '. .. . , , .-.,. .."'~1"'~.'
,,' . . , .. , . ' / " . " ",·.'H'. :":'.' ., ..•.. '.' " '.,: "'1' . . "".:2<""1"'1' ~
.
, , . . , I ","
J) ~ni¥iz~e ~r.!teInp.({~e.~~5~~io· a: g~tl~e la'~c6~*e~i~ ,~el.l~ c~ch,e '~eil si~teirt~\t ~,~
t. "mtilti'processdri 0 iri'sisterni con'piu livelIidi'cache. . : ' . 1 _ . ,'" I' .•. " ·",.t"~~
'.' " •.'" '" .
"i..~I1·
, ...··.'i;')",:;\j :,' ':·.!~l . ,,,,l·~!:-t '·1(/' :,:: ;:!'-"" ,,'1 :.; \". ~;.;';,,, ";' " ". ".' ,,. '.':-;;!f
VogliamO , ora,Clu.a,ntifiSNe: t'~~et~o ,dE}U.a·:pre~nz~. d~lla ~~che'sulle. prestaziQni. di, un :~~~~
proC~'SOre, , Vn,.popolare .lUd,"e: deUe :preatazlo~I' ,e ;1 coslddet,to MIPS (Crr.2·..4.2). ';)J;'5<
Indicando con.Tpi il.tempD"'1I1edio nchiesto per I eseCUZlOne completatdl un'lstruzlOne ,y~.~
(fetch ~ decodi:fica/esecuzione) ,misur:ato,in .microseclDndi l sir ha: . ".. ':'1 , H' .,: ';;'; , !110f
. "
.I '. :" .• j '"
. : , . ; ' '~'M"r'''S'':' 11'.':. :" '''/'', I: ' ; " "
. "iift:
',.j . . . ;··'f·:·~r~
= T-
r .\ I,' ~,
"::!'.','
. (7 2\ ':'"
'.' ··i; ,::~~., . ,'1'.:;' ,.".'~"'\' . . ,'.,;' '.••. •

pl .. 'J". ;
" ' , " "I·" , . , .• " ,,' ,'.' ." "~!
•• t" ", ,,' , ... '.; .. ;~,:,:" .. ' ,,, • ••• ,·,>,i,r,I':., ""/i.".'.',,_·.,'.,', ,"':'... '~-:"""

'. ;: S)Jppo~~q.~9 sP~ll~:f~~:di preli~vo ~ 1~~p~~c~/~e~u~io~~ ~~n,s.i. ~9Yra.-pponga~9.!:E}. '~i';~:'


su,PP9,n~do,~cBe.l:'e~~c,\I:;Z~?fl_~:d~\le.~~~:rHZ19!4p.q~,provqt",:~~J;lO.?;!~r.l acceSSl M~a. J1HWrQq?:, ,::.:ft.;'
~~ ~W,~51)l'(~I.9 r~l~t~y!?; C).l..ff;l~chl' ~.i, pu~.s~riv~re la,~~gu~nte: .~qu.~.i<?oe:, I n:' "',; j ,;: ;;::~I.\ 'f~;~t
,'" ., ..... ", "~' ., -" ..... , ,;"n'("'2: , .• , . .'" "1"" .,,' ""·!tl<:
:J",,'.,,,,, '''. ,'~ 1,IJ,iT':-·tM-t'-:....-....\' '.".,,~.~,'.'.' '."1"'. "':l':~.(7.3.)·.
.:' ",I,
p. - f ;':',
.
,~",·,,·;;J·,;,2
"'-1;
;"~.J

, , ~.:t';i.I
'.f":\
., ,. " . ' ... , ,... ,
dove·: :' .; ".: ';:-, '\ ,,~~~
, " " .. ;, I , • I ." , '- ,..~ ;:" ,:,'.' ':J~,ll
tM tempo medio di accesso alIa memoriaj ,. , .. , " '. ,,'I
, .. ~, .. ," .... ',,";i!'.
..'.',.:')
-;."','
,.;:' .:
I"!.'~
;;J,:r;:' '
~H'
,j.""
.iL~V,';
~;:-,;,,'
, ]
e'.1'.·
<'~i!~~r, c, La memoria; ~ache' .'301
'~-.!:~ ;~_
"ll*~~
~l!,l'F<
, 1
"W"'",
~,~<jl[~ '·',ri~i" ntlmero media di cieli di clock per ,decodificare ed eseguire ,1 'ist~ione;'
~~:ij"~:A"":""';\;" . . . ': : ,'. ~; .
~{f@~~!;.;;'y" f;equenza;del.c!ock di macehina,.
"".~1t"i:.",~: :,.. . ;" ' I " ' · ' . . . " " , . " ; . ' , ,. ',.';;,~' .. '
';";;,'::::"': .
.... '!r~,,, .. , .:.i.
:1~'~~~i:~.',!'),·, Si indichi can Neil numero di deli irnpiegati dalla CPU per leggere in memoria
:.' : ,': ,':
I
,·tt{~1~r\: ~ con N w e it numero degli eventuali stati di attes3 richiesti dalla memoria principale.
.'~,;?~,::.~';:: ':!n' 'assenza di cache, il tempo med,io di accesso alia memoria e dato da: I
~?'~'"
","".\"'"
I;J'~'(
. -
.
N+Nw I.
~:-;. ~,., .'
",,;~I~'.":~"\~'·'~·'"
,"~~~!"!r:."
t -
M -
_,_~
f (7.4)
".,,~7'~."O
:W."",,':1·'·· ':
~c:,<t;!II.,.' •• I •.•• r ,
;'tr~fc,{k~~' ',' Sootituendo in 7.3 e in 7.2 si ottiene: \
~~~i!tf.tH f J
'V~h"MIPS=
fi',.~~~'t~'-· N + N +n (7.5)
~,~o:.o_"" W (".2: •

.1~~~~~<~~_: 11 massimo delle prestazioni si ha per Nw = 0 e N = 1 ovvero quando la memoria


,y~~1ri"~iene letta in un solo ciclo di clock l6 . Come gia. osservato in precedenza i moderni I.
';;'..:'Y~,~' . . fr ' I d d' -bil il rifi .
.~~;~ mlcroprocessor,l ~avorano a. una e~uenza COSl a ta a ren ere unPOSSl e ve carSI
·:Ij~~¥fl:,'.~ di questa condlzlone con le_ rnem<:!le DRAM,
,;,~~:t{i"": In presenza di cache tM = te. Una cache ben progettata deve non solo ave!e
I).~~~J~ , un tc che permetta l'accesso in un cicio di clock in caso di hit, rna anche un tc
-f.;~;ll' , sufficientemente basso. La 7.1 indica che te dipende non solo dalla velocita della
I.
f~~~~~" cache, rna aiIche da m e da tp . 5u quest~' due parametri.infl~.cono fortemente ~a
'~a~l~r'. dimensiohe; l'organizz~i,on~,~ la, ~O?~i:~~~~ 'ges~~o~~ '~~Ua .c~~~t· ".:."; ,: : ~\.'. '.' ~;·:':'l ';
~~;:"'" n modello precedenoo non pub eSSere utiltzzato per dimens[onare'una cache. Nella
,~~f~.~"~ pratica industriale, per it progetto della cache si ricorre normalmente alia simulazione.
I
, ,,.,,t,·· Ii .
:}j,,~1tj?' A tale SCOPO.f mt~res~ante leggere come so~q ,state ?~ n.lte I~ car:att.ens.tl e.. e a
. 'ch d II
,=" .., ,"cacue
,' ;~'::'~~jl!'I'
~ 'de1'486' ta901'
!f~':1.'~I~ . .ii" ,I. . .,'.",
tc'
.. ' , . ,. .
. '._;, t· .. , :,;:! "" ~.:
. "','
";".<,,. ,i,
," .... .. ... ' .
:,·.;;.l!,., . ;',q':' ...: I' . ' .•
\
~','" '""iJ!'~"~~'"
' '_ '" •.... ,
, •. " "' ,'.'1,',.. .: ".' "" ;,
' "
, "1. " , .. : 1 " , ; . , .. \ " " "" ",'
I
"'~~'I"···'''''' '. .. '"'' , ' " ,. .
~~l(o''.4

~ .~~~f.( 't'.'3.i 'L~


~J:)J£~!.
·cau.'se di fallimerito
"',.;:
'n~ll'~cces'sb aila ·~tich~·' ,.;' ,";i: , . .
~); "",.1:,.:
,.!.

I
'.;.1,", •. '. ·.1-:1 ..• · -"
,~~.j~
. Jti~fk~~:,'
fi:IS~~!l~:".'In uno studio sulle memorie cache [Hil87J e stato proposto un modello intuitivo per
~ '~i~~~j.'; capire it comP91~~I?e~.t~:.?e!I~~ ~ac9-~". ,n,: fQQ4~llp; l~f':A¥~at(~ fC9rI!e:· ;",~O?~!\9 ;,qell~. ~~
<~ .;6!{.' e", a causa delle iniziali in lingua: inglese (vedi sotto). In risuitati dello stu'dio sono I
~ ~g:~\ riportati in Figura 7,8 illustra i tre tipi di miss (la figura ha ~ore qualitativo e non
f~ '~t}:i~'" rappresenta i dati reali 'di un sis't:ema: ben definito)!' [' "tre' tipi di 'riliss' 500'0:' .' ,': .; I
.l-···,...·. . . "..,,"1,
,:1' '.:.,., , ";.1.' ).,' ,'.~
~;:;'~~;, ,",.",. ' .•-,'
I'.,".,,;...
/f:·.•·,.,
1. Miss di tipo obbligatorio (Compu.lsory). Detti anche cold-start miss, si verificano I'
'f '_'H'.- <
;,' .• ,;;~'", ,
,~. "".-'.".-,;
"'-"\-"''''
quando viene fatto riferimento a un particolare bloeco:per.'la prima'.'voI:ta",,\ I.
'~ ?1t~!;<: .,. .. " '" "'. ' ~ .,i' "",,~'. ~,i, .. : .• " ;. '.,
";!~l.~,.t' 2. Mlss ~l capa:lta (Capa~tty). 51 ha un ?1~SS. di _capac.~ta tutte Ie l~ vo.lte. ill _cli!
t~ ::~1i!{;~ ,:'~ ,~ac~e ,n6n, e m ,grado dl contenere, tu,t~~.,~. rifenmentl: ,.a:({aus~. den~ :1I:h~e~slOru
:'~"-r.';~.,,',;,
.~"" ... "'.
\.,;-~.,.'
2;~I.'~\f,i:~i:>,·'
·'i,·hmltate,,,;~, .. ;
.; .,.
':'''',' ':1 .,'::' 1., .. :··,·.,.,;;.:~,.:,·:l'i :"·.··;1.,"·:;),; .'",
,
, '.

"',
, .'-, ,
".: ... ~
• •
I " · ' "i
'., '.'
. '.'".,' .,: ... ,.. ".
'., .' i"

",
: ,.'
I..
I,~ "";,',',
:\{' .,J~,.
I
" ' .
1
' , , , • •
"
'.....
..
.,.,
,,:' . ' .•
,.',.'
,.

••
"',
''',
"','
'.
" _ .~.~
•. . ; . ,.,,1 . . ,.'
~} ;.:0[;,;:;': , ' ~6 ~s,sL~m~ll~O N; 'l'; ~ e. ~e~. .; ~" I!ag,gi~ntil: ~ Un ~olo, $ta~.q, d,i '!-t\~a ri~Qlf~: ~e~ ~~~o}e. pr~~io~~, de,l
l:'l ·,,:'i~~:•. '
': '~',f}, i"
.I': ,~;.,~!).\"
.', ...'::-.,.•. :\.
.:1
",
'~:;"A\""
pr~cessore: L a.n.ahsl precedente e semphfi~a.t~ perche suppo~e~e ~e op~raz!t?,n~.~,p.re)I,~~Ad;~od~~c:a.
e dl esecuzlOoe siano strettamente sequenzlah. In pr~nza. dI pIpeline, SI ha'n6rtria1rtien~e~ N+ne:i: =
1, dunque un solo stato di a.ttesa-dimezzer\:ibbe h:l :'prestazioni'!d'el' processore:';: '.,:;, ::. 1,1:' l;.i . I·
302 Capitola 7

I
3. Mis$ d.i conflitto (Conflict, Collision). Se la cache e completamente associativa
la probabilita eli un miss di conflitto e praticamente zero. Se 1a strategia di piaz-
I zamento delle linee e a mappatura diretta 0 set associativ3, vi saranno fallimenti
dovuti ai conftitti, a causa delle linee che devono essere scartate e recuperate.

1 20%
I 18~
Conflitto a 1 via

167- a 2 vie
14% Conflitto a 4 vie
Miss rate
127.
a seconda Conflitlo a 8 vie
107-
del tipo di
falliInento 87-
67-
47-
2%
07-
1 2 4 8 16 32 64 128
Dirnensione delle cache (KB)
Figura 7.8 Tasso di miss in funzioDe della dimensione della cache, secondo il modeUa delle
3 C. Le curve si intendono tracciate per la stessa. dimensione della linea.

I Si noti che cambiando i parametri della cache puo cambiare i1 tipo di miss di
un determinato riferimento dj memoria. Per esempio aumentare 1a dimensione , della
linea puo cambiare un miss eli tipo obbligatorio in un miss di conflitto. E evidente
che, a differenza dei miss d.i capacita, eliminabili con elevate dimensioni della cache,
i miss eli tipo obbligatorio risulteranno sempre presenti.

7.4 Elementi che influenzano Ie prestazioni


I In prima approssimazione, i parametri che hanno influenza su m sono:
a) 130 dimensione della cache;
b) la dimensione della linea;
c) il grade d.i associativita..
Tuttavia, altri aspetti intervengono nel determinare le prestazioni della cache tra
\ cui: Palgoritmo di rimpiazzamento delle lineej l'eventuale precaricamento; 13 scrit-
twa in memoria centrale (write-through/copy-back)i il fatto che lao cache sia divi-
sa 0 unificata; l'esistenza di piu livelli; il posizionamento della cache (cache fisic30
o virtuale)j 130 multiprogrammazione; Ie operazioni di I/O; l'ambiente (monoproees-
sorel multiprocessore).
Alcum di questi aspetti vengono discussi qui di seguito.

I
La memoria cache 303

7.401 Dimensione della cache

E evidente che a dimensioni maggiori della cache corrisponde una probabilita. mag-
giore di reperirvi l'informazione cercata. Questo fatto eben. evidenziato dalla Figu-
ra 7.8. Col passare deg.li anni Ie dimensioni delle cache sono and ate aumentando. Se
agli inizi degU anni '90 130 dimensione della cache era di pochi kbyte, gia nella seconda
meta della decade, memorie di oltre 1 Mbyte erano diventate normali.

7.4,2 Dimensione della linea

La linea rappresenta l'unita. di informazione che viene trasferita in cache dalla memo-
ria.
All'aumentare delle dimensiani della linea aumenta la capacita della cache di fruire
della localita spaziale, rna diminuisce il nurnero di linee che possono essere contem-
poraneamente allocate in cache, riducendo 1a probabilita di trovare 1a stessa linea in
tempi successivi (diminuisce la locatita temporate). Tale fenomeno e stato approfondi-
tamente studiato in [Smi87). In Figura 7.9 vengono riportati i risultati della studio 17 .
Nel punto in cui, a un incremento della dimension-e della linea, corrisponde un incre-
mento del tasso di miss i due effetti si bilanciano: il valore di linea corrispondente e
queUo ottimale.
Generalmente Ie prestazioni migliorano quando 8i aumenta 1a dimensioni deUa
linea, perche 'aumenta la probabilita che il processore richieda dati gia contenuti nella
cache. Purtroppo, come 1a dimensione della linea incrementa, i1 ritardo introdotto cial
prelevamento dalla memoria principa1e 51 fa sentire e aumenta al probabilita di prele-
yare dati inutili (per esempio codice non eseguito, dati a cui non si fa riferimento). In
conclusione, 130 5celta della dimen5ione della linea cansiste nel trovare un cornpromesso
tra un alto he un basso t p . Valori t,ipici della dimensione dllinea sono: 16,32,64, 0
128 byte.

7.4.3 Associativita

La Figura 7.8 indica che 1a crescita del grado di associativita migliora Ie prestazioni
della cache. Intuitivamente 130 cosa e facile cia spiegare: can l'aumentare del grado di
associativita. dirninuiscono i confiitti trale linee alia stessa posiz1one relativa. In attre
parole, una maggior associativita riduce m a causa della maggior flessibilita. di mappa-
tura automatica delle linee nella cache. D'aItra parte , at diminuire dell'a.ssociativita.
si riduce il tempo necessario a stabilire se lao linea e in cache, in quanta la relativa
logica diventa pili semplice. PilI alto e it grade d.i associativita. piu e complessa 1a
logica di selezione. •
Due argomenti vengoDo presentati contra le cache mappate direttamente: '

1750no sta.ti considera.te cache unifica.te , solo istruzioni e solo da.ti. Per questa aspetto si veda. piu
. ava.nti.
..
~04 Capitolo tJ ,
. . . ...

050 F ::::::::-..... i, u u " l ... '.\

;- ,',: ,. •
-"CI'l'" " , '. "
,f~ 010
.,
:; , : ,', i '~!, 1',_: ,; ,- ".

.. 'l ' •' 1"''0'''- ,··.i.l· ... ,:1 :! •


,,'0' : 0,05,
"
..... ;l'IS, • _,,;,,'1':< ,. i, ,- .... ':.oM1 '.r;',-", "::'" " i',
": I'
!
~

'"'
~.

0.01 ...•
-;- ~ioI7.~ .,' ~".i~; i;, i _·.• \',.1

, , • , • '>
., ! I ',: I' " .. , " . " ,
2 2 .2 .....2 .'
.. 2 ... ,2 '," . " iI . ," ,
Dimensione della linea (Byte) • _I 1

,d' ,; ;, . ,;, '. : "f.. - . ~,


'"
..
"
" ";" "

;~: .,.,. . :- . ., . \: I ,," .. F· ...' ' .. Hi l. ··CO".'·'"'' "j , 'h";!- ·.1,:<....", .';'"1· ••• ,
"j I: .;;/; i'· •. ··.·pO.oO·:.E' .. '. ... i ]2
':- , •' " • I "
,.,,"!!"" , ,," 1""'...
" , . , .,.
> '",.,
"1

" - ',";';"'";$4:'
• I'I. ,'·:,j)J;'·I': \' i \··.··,'·.I},::: .;:!:':'i
·,.II,:t~,.i;.1.: ':,1 '~:'l ;';' ,t.:! ;;:::.. ,I
'.j, , .:.'~.'
1.,/"- _'.. ,...'....
,", .....
,' .. ·.;-,-·."llr~'
, '. , ~J• 1:-':,",-0 . ~ ,': ~" ;. ,,' \1 "::,1:',) ,,,,,,
,.0. 1,9
,,. .!
! , (. .' .: ~.

.'•
,",'

0_05
,:~~I i. .... 1'; i,,!, ;.'·",i,.

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


";'~!'"
,

"
0< '.' •• •
,~

. :. ':' ,. • ;.,'.- ;'1; :1: ',~,--,.J:J! ·" .. llJ . '.; .,';


. • . • I
'd," , ! i :! . • .• ," .11" 1 .. ;.'
,
;,' .. ' .. ).; ~,'.d .,! ;';,
~,
.: ~',,: ;.');:.!
; •' ! ..
,
, ,, ' ," ", O"Cf1: ::;·'::;::",ri..:' ~"'. 81Q~ l:;'.'~'·;·'i 'j:H':,'.'
'.' '. ., '
,. , :'., ),' O~_i""'" .)3:'.. ,. , ~~j I ,':,. ll;la '.i.,~ ., ,r.!.;! "'\'~:I
.,
'" , "'r
.. '",. , ~, .,
" i'!. • '$ ......
J21A
l'
.
.,
• ',I;' .... ,., "I~'"
.. l··,'.· ... n.
, , I :' ",., .. .,A .2:· '; 4, 'n,,2 ~ ~ .:;; .. :2,; "/'1 .'.'\.,,r;;: 1./1(":;,
..
,, , ' .. , ' ,. .; . ., ; ,
'Oimensio'ne"deha"l'ine'a (Byt:e~'"
,1.,. ,1''''''1
.,/ '.,r. ~.,. ;:'
'" .,' Jl,

°.50 t
s:::
•~~ ,," ,'." ...... \.. ,
- I . ,\.. ,.. ,_,~ ..,.1',
---- -----~.
:~,m, < •• , '.

, , I: .. , E ;:,;i·:;·;.·,: :
:p .....,.; . ;,'
::: ...-
~';I : : .": :' ,.
;
, ' :::
. . ."
.. ' : ..
:::---::::: ,
,~, ~ ::~-::~"":"'J>. """,'.
:-:' :,,',
·1 • • •, .,'

, '" . '0.10 ,;,., ,.'1'.';'


'::'I"":'.io"';:J:~,.Pj"iJ:::"·";;"
,;, ·,!I.,.IoJI _'., ".'.

"".
"
,",
" '. .. ,• ."~ :·:.·,·,..,O··!·.....
,., '".
'''"
.,."

"'. "
"(II'"

..
u..OS·
.
. . d .. ii,. ' ' ; ' 1
'~"·'·':·'·'J"o",j"'·';l"'I';d .. -··,,. :,
:.,;.
.,. ".
, ",

,r:-,.!.'.. , ., ,
'.,

~".t:
.
.... ' " ' ' ' ' .. 1''' ,,, , ';;"~:'\l'
I"~ .'""',._""'" ..... - (I:.·.;I~.lj
-- -
.,·f '."
\, .. I~ ..,-;~~, .
..
.' .. , . ) , " , ':.l,';';:;' ,. , .• I,. : \,1'" lIlt ":;·li.; .• :,'1 •. ',

..
,.0- ,

,j 11,,:'. ... ';'.' ; ·. , .. 'j ".;:


,
. ,. ,
'., ~ k
\
~doi_ ~
,i '.' ~ , '" :0-91. " I)''''.,....,i-••".''I- _~. J2 • ' .., 32: U I ", ~'~'327111;"" .1,·",::,·, ,,1i:~:',<i
I 1.,·.,;1 ,. ,:,
, . ' ":-1":
".
I J '3 I. I~ '. '7 .• ' ,
i'.'" ,", , ;~, i' 2·,<,2·',,2 ,,2, 2, .2 '. : " . :: . ",:(..:
(Byte) Oimensione della linea
Figura 7.9 Tasso di fallimenti in funzione della. dimensione della linea per differenti dimen·
sioni complessive deUa cache. Le tre figure si riferiscono rispettivamente at caso della cache
unifiyata, della cache di sole istruzioni e della cache di soli ·dati.· Si' noti'-che n:el~caso di cach~
.m'oito piccola ilecc~sslk" cresdt'a: 'della dtro:ensione 'aell~ ii~·~a. 1i~' iih" ~'ffgft'of b:egil.tivo~'7': ,:" . :, "'.\l
" ...

1
La memoria cache:, 305

,a).a ,parita ·di' dimensioni 130 oache mapp:ata. direttam.ellte fla;-un -k minore·,·di una
1
cache'assodatiyai' .1.,'.\",,, ':::' I: . • t" : ' .. : . ;,."11. ·,·',·t.; .,; ":' '.i .-::;:. ! '''~''.:

b) La cache mappata direttamente e prona al trashing's,


n primo argomento esenz'altro vero, rna diventa rapidamente irrilevante a11'au-
I
mentare delle dimensioni della cache. I L3iEigwa 7,a~I:Q.psWa chi~$n~~:¢he p~r. ,piC:~
cole dimensioni Ie cache mappate direttamente hanno ~un h sensibilmente 'pili basso di
cache associative a 2,408 vie e che 1a differenza tende ad annullarsi col crescere della
dimeliSione ,deUa,.cariliiL In' [HiI88} Wen" mostrato ,come;! per Una 'cache: di ,8,kbyte; Ja
differenza fra una cache mappata direttamente e una associativa..a,2".v.ie:e delPordine
4~IP ,3%.. J:1e)"dim~~sipnediyel).ta,~2kbJ1e Ja qilfe,~n.a, ,~"la aliI' 0,5%",. ,,;,' ,;
.f'L1I1, ,i~u.1ta\ofinalej ~he> p.•"ql.che. dU"'JO,ghe.<IiIP~\l5i9ni" i,ridot\l temp,i 4.\ ,ri\a.rdp
inerenti aile cache mappate direttamente :.(iD:>;pa~ti~ol?I'~"<ri, ,:i,fe~~9 ..~~e~i,I;n.i~azion.~
I
del selettore di blocco) producono una cache pili veloce (minore to") e) sostanzialmente,
'con 10 stesso h di quelle associative.
Per quanta si riferisce al trashing l9 , questo puo manifestarsi in presenza di pro-
'gr~~,i:Fh~ .~8P'~~q9. . pi~ 1,i u~fl. :~iHe,a .~i; P'?~~.z~ppe ,!r:i, :ip,~~~eI\~~,P~mR~ ...4j w~~rt3rr
I
~~:j~ .~}l~~~ ~l~~;~1-!ZlqP:~,~J~e R~F·~Jf ,~~ p.~i>~l)'? ~y,~r~;fl~~~ .~~1?~~~F . ?: .~~~l_tf~iq\lE(i~
linee, oe nsulta una attlvita di contmuQ\ ,cadcame.I,1tq n.en~..J'st~.s~a. .PQl?izio.ne .dl. qu:be. \
T~.nuto q:}nt,9 ~e it t.rasferimento di una lin,ea d~ caCh~ iichled¢'comunque' piu' tempo
" " " .. ' '"., ... .. "".''1')'' ."
I
della 'let'tu~a: di" un.a'~ingdla: 'parbla:'di memoria tep~rale~'ij fiSilitate Ii~tt6"'pu:O' Jssere
i1i1'\l.bbass~rrienti;!d~lle prestiiZionl'i! '<Ii soito'dii"ulMeCh~ iii a'hebbero ~~nz~la: tache:
Per ditnerlsiorii' oj: 'caclle 'rilevanti: la prooabiUt!' the; lSi; tnanifesti! uW t~e evenlo' e'c051
baSsa~da'''div~rtt~re' td~.s"cur'a;bil'e:; ;'.' f~'" .'.;. ,,,; . . ,;., ",; i",J .; .. -, . . ,: . . . : 1:-, ,~'" ~'"'' I
1
. ,:'i' A fa-yore' delle cache: .mappate dirett-amente v.engono pre:Sentati.-.i ;seguenti argo-
, . ,
men..,: ;h~ .t' l ·ii",ll~r" •. J '. I·.·· ';l! '.' ":",,:'., " '11..1' .. ; ';,.' ', •. , 1. ;;:' j" ::;,'n , :'. ~"I
.~

..
. . ,. ','. .
;:"'~.!is6ho! '~~~.~: costo~~ i~:'J~~: a"'d~"i(~ii'~f~:~16g~~aeli~~l6:
:";·:·,,,!;.\,,,·:,~,';'h!:""··'~'·I
;'!.' '~i~zi~~~· ~ei1rliile'
. . . . I"';",".H'.'·'·l:""·'!p..~ ,~,.;; .• _".; """",·::;·;' ..
ill.:. 'h'!
II
: J.j ;j/ 'i:Ptei-h'pc}'(ii': a~cb'sso' 1tc} e: i"ilferi6'ie .perl"I 'e'tii:riinkiid,iie' i.deil.a: l~gitk'di :t'!i"S"opta;; i:'
':'.' :',' I,' " ' . ; , " ' . ,'.;" ' . , .'.+ ;1 .: '.: ' .. ;' : .. ,j .,'
.,.
': " , ' •.; ,,;~~, b
.,.
;),'. L .. '"

1·" "f·.; .t a .· .,:. . ., '.; , -_.d.·.'"...


~oi~. ;~.' I :! q. 1: ; d' I .' \
18Con il termine di trash'ing si denota un fenomeno ehe puo manifestarsi in pres-eriz.-a"di"uso I
~~f~ik\~:~I't~~'t~t~r;~~ki·nt'. sf ·tk~~:iaK~~';~ofislff~iai-eIW"f~nometiCi'clli'I' de1:cri~VO .. ~ $i' s~p~~4ga d!
av'er~.'uir 'mlss e' the ;ra.: parola
indlnztata' sis. lal :prima' di una:
line'a} in: iCoIitrdntire- 'di "cache 'foroisee I
il :eon~enuto "della' patola,' :e, prosegue ''Con/·j ,prelev.amentil successivi. .Si "supponga, di 'essen! .sfortu'nat\
e.'·e_~e~ qei,~~~I!,.~u~e~S!l.i~.il p"rQc~~~..gelJ~r~ N.I! .a.\tr~ ~*~!:l. ~~a.;d,e,~ ~~.~~~.e \~.co,n~~llo.r_e
abbia fin ito i1 prelevamento per accedere alia. memon~.principal~, 9c~.Qp.~ta a (a~r.e;~~~.i.au.?i.ca.ep.~:
I
In casi particolarmente sfortunati la cache pub diriiinWre Ie ptesta:zioIii' dfH 'sistema: \ La:: sind-r6ine
\iien~.detta f71'~$onv. pp'l(ution,.jnquiname:nto della.,mem.or-ia (~e),.con.:da~i inutiU.per:il ptQCe8S0re.
Qua1.'~~ .9-:~ta jH~t.r~ ;~etlie .I~ ,f.ll?~\v~iC?!;\.\ ~~I b~~p P9~iLto f, p~~er~.~'s~~,4!'f~P.t~oUo:~ir~t~o
~~!, p~p~,~or,~ ~~~~e,?p~r.az\~!p ~~ ,~e~t,~,q,;\1. 9~1~.~!S~~I: 1~, m~~? ;t~~, .9-3: P.9~~r:. ~~~~ ~~,. ~o~~a::e
che' 'la' 'Utlhnl effitienteh1'ente: fn' p,anlcolare ~1 'nfen:ilito a 'Sisteriii '<Ii ¥J1~co ((Od) della'eacp:e, P~l'
esempio per forzare iI mantenim'ehtO"di" cefte·lIIiee· e·ontenenti· ·una; patte ·di· ;codice: 'p'lnlcolu-rneith
I
critka. Consideriamo iI caso dassico del prodotto di due matrici: ci sono tre loop annidati, due
esplorano righe e eolonne, il terzo opera il prodotto 8calare. Nel GaSO di matrid partkolannente
grandi, iI continuo apuzolamento della memoria puo portare a. delle·situazioni in-cui il codice dei
loop~ l.iiene·callicat0' e- seancato, da.na ~a.che' pel' far pos\o a,1'd:ati-,c.he· pdi noni v-e.ttanno~pij), l'iutillizati.
In, queeti >(!.asi ,e molto meglio ploccare ·nella 'cache,tutto n.codice:relativo:a.i tre loop_ .Per'applicaZicini
I
in tempo, reale, 'dove- e Ia- risposta del' programma deve'essere di tipo <l.eterministico" la possibitita.
di ,ttashfng. deve eseere assoluta:rnente'esclusa, bloccando le~linee 'di'cache'che devono'essere'sempre
presenti. ., '.
I
306 Capitolo 7 _,,~
,:J:,.
~",';~
,'~'
'.:ti
\ 'r;\.
• non e necessaria la logica per il rimpiazzamento in cache, essendoci corrispon- ti~W
.,~~
I~i),
denza diretta fra le linee della cache e queUe della. memoria principale. "~'
,\~1l<;
. I
\ It~.
~;fF:
~'~1~
7.4.4 Algoritmi di rimpiazzamento ~:4
I trti;
f~'~
I principali a1goritmi di rimpiazzarnento (LRD, Random e FIFO) sono stati discussi \.gi
in precedenza (efr. 7.2)20 I~l:
LJalgoritmo LRU sembra queUo capace di fornire migliori prestazioni21 . Di fatto ~tt;
\ Ie odierne maccbine con cache non mappata direttamente impiegano 1a tecnica LRU ~1!~
o sue semplificazioni, Bil cache a 2, 4 0 8 vie. IRf
'::
I _,'\' :\j
~t~

Prelievo della linea L'algoritmo standard di caricamenta della cache prevede che ~~;.::,,;, ;,i
una linea sia caricata solo quando essa e effettivamente ricb.iesta. Si parla, in tal caso, \!:{~ ~ ~$
I di cancamento su richiesta (demand fetching).
Una tecnica specifica per Ie cache e il precaricarnento (pre/etch) della linea. Te-
'<:(,10 \r
':,<~t nj:
nuta conto del principia di localita spaziale, un miss BU una qualWlque linea reode "i';;j~.~, 'f;
altamente probabile un miss sulla linea seguente. Si puo usare questo concetto per ";~;V~ ~i~
\ anticipare la cache prelevando, oItre alla linea di cache richiesta, anche la successiva. ,. ',
\!
Ci sono clue possibili re~izzazioni.
Si tratta di progettare un controllore che ~~
legga anche la linea successiva. (oItre a quella richiesta) e la memorizzi in un buffer
in attesa della richiesta effettiv3j oppure che trasferisca direttamente in cache la linea "':'::f.t\~ '
'.' ~
\ successiva. Entrambi i metodi richiedono un controllore eli memoria pili complesso e )~:~~ ~
un sistema d.i contrello degli indirizzi che dia la precedeoza agli indirizzi effettivamente
richiesti. In altre parole, se il processore richiede uno specifieD indirizzo non si deve
· ;:A~l: v
':;;~i"I". '
, bus e cieli di attesa suI "''''
iniziare il cielo eli prefetch, per evitare inutile traffico suI '","'.
.,..", :t'
\ processore. ".:§~, ~
· &~
n precaricamento dinamico sequenziale pub dimezzare il tasso di miss [Smi82]. ~-,~~,
• - ,. ;
" ;0

e'e chi ha stimato addirittur3 una riduzione del 75-80%. 8i tratta di vantaggi si- ";.", :,:~~~,.~ ~~ .
· ...-. . "
(
"

gnificativi, anche se questo metodo necessita, per essere efficace, di una m~ggior.e ; ".'.' 1 '
· _";, '"', i
dimensione della cache: il precaricamento aumenta drammaticamente l'inquinarp.ento , ,,':;j'l! :
'-~'':i .
(informazioni entro la linea non utilizzate). :~::\,~,~
.,~~
".,SI';~.,.
Nel caso di cache secondarie, siccome il loro h e relativarnente basso (dal 50 ';:"'~"~'i
"..';'.:;-;....:::n,
\
al 90%), l'inquinamento derivante puo considerarsi innocuo: e
possibile ottenere i1 .' ""'r,
·-,'"';I"l'
~~

precaricamento con un minimo aumeDto della complessita del controllore, stabilendo /~,..t~'li ,
~·,·i ;-
una dimensione della linea maggiore nella cache secondaria. "~(!'l:~1
, _~,,,,"'. '.
'. ~1"."I
.. ''l.W.'.
. , ,'Ii'
\ ..
".
,,'~'
200vviamente gli algoritmi di sOlltituzione non en~rano in gioco se la. cache e a. mappatura diretta.
,
•• " ..
.;': ~
,., •. l>'
2lCuri06amente, aleuni esperimenti di svariati anni addietro [Smi87J mostrano ehe 1a sostituzione
·.\;~!
"""':01
easuale producte generalmente un h maggiore che LRU. Si tratta perc> di dati relativamente vee-
chi (1983), riferiti a dirnensioni di cache piccole rispetto agli standard attuali e ad architetture ;':..'
\ tra.Iil.ontate. , " ':.'.~.
"1
,~~
; ,.~
'<,'$'
. ,.
-'-";",
-, '1·.

\
ii-·p;>,- .,
~~i./o;; .
~ ."~'"

~h~:,'-. La. memoria cache 307


..,,,t;'f.•.,
~:J;t'\.·
'J;!\\ ..,:.' . -
i';r:~,'~,:c .
.'1l;t~lF!-i. ' .
W!"l!t w'" . 7 4 5 Cache divisa
~,.,,,,,
, ~i.I, ..,. '. , ., 0 unificata
';j}.li.:,\,."
. "'1'" :",.,..
I",'"
.f~i~Y"~· In origine 1a cache era unica. Negli negli anni recenti sono apparsi molti sistemi con
:;;:~;::~::~" cache separate per dati e istruzionL Tanto per restare in Wl ambito molto diffuse,
~~~:~~'-:~,.,~ queUo dell'architettura Intel 8086: il micro 486 ha una cache unificata 1 il Pentium e i
41:~~~{'"
22
modelli successivi hanno una cache istruzioni e una cache dati . Tra gli argomenti a
;;?'-l~,.:: vantaggio 0 a svantaggio della divisioneJunificazione ci sonG i seguenti.
~;t~F,'.: . Sernbra evidente the gli accessi relativi alle istruzioni abbiano un alto grado di
i~~.:'~,,: localita. Dunque, prevedere una cache per sole istruzioni dovrebbe alzare il valore del
:~:¥i;\ ,\:'
relativo h (i dati sperimentali confermano solo parzialmente questa assunto).
;~(~:,',:: La divisione reode il progetto della cache delle istruzioni piu semplice, perche il
~~(/;::;" contenuto della cache istruzioni no~ viene. modi.ficato (e una cache d.i so.la le.ttura .da
f.}J~, parte della CPU). Naturalmente, se 1 compllaton tollerano programml.cUl e consentlto
:1i!~;0iY di modificare il coctice, allora nascono dei problemi di consistenza: l'eventuale modifica
..,:
~2~~:':' di una ist.ruzion~dev~ essere ricoI)osciuta p~in:a dell'esecuzi.one dell1istruzione s~essa23.
ji:l.{;;~,," . Tra 1 fatton che mfluenzano Ie prestazlODl della CPU Cl sono la larghezza dl banda
i{.!;1.~':' -i e il tempo di accesso alIa cache. Entrambi possooo essere migliorati can 1a cache
$~~;It~, , . divisa. La larghezza di banda raddoppia con una cache divisa, perche possibile in e
r~~~t';:" contemporaneita il fetch e la lettura/scrittura eli un dato .
24

:}~;',:"',' La suddivisione pUD portare a un uso inefficiente della cache stessa, in quanto
;~.~~:i;,_"" la ~ercentuale di memoria occupata dai d~ti e dalle istruzioni varia frequentement.e
~J.~::;·;', I' all'mterno del programma. Una cache umficata tende a sfruttare megho Ie sue n-
,1X~~,~'" sorse limitate potendo adattarsi dinamicamente tra dati e istruzioni. Questo [atto e
!~;-.~:: :. confermato dai risultati di alcuni studi sperimentali, che mostrano come una cache
~.:::.:~,:',. " .unificata di dimensioni pari alla somma delle dirnensioni delle due cache separate
~t~f~~'<'; abbia pr~stazioni superiori.. ... ,. ., .
':~~f·,.' J.n FIgura 7..9 sono stat! mos~ra~I 1 nsultatl dl ~no ~tudIO s.ull'influenza .della dl:
~~*I~<': menslOn~ della h.nea s~lle. prest~lom della cache. 81 notmo Ie dIflerenze tra 11 caso dl
v1ii~,1[~r.7 ..,. cache umficata, lstruzloOl e dati.
',~-'~l',.l 'I'
t'>t.
',~ ~"""
it.,.(
~
~~~~~;: 7.4.6 Aggiornamento della memoria centrale
' d.,
;.~<!lt\:r
" <; - .
',~~:~.':;"

~if.Jjf·'. Delle due tecniche write-through e write-back si e parlato in precedenza. Ambedue


....
"~::')'
.,
,'.'
'I'i"-';."'··
i·..'··,.·..··
:';""'..':;::'
. prese~tano pregi e difetti. In caso di write-back, Ie scritture vengono effettuate alla
.j':>',":"-: velocita della cache, e scritture multiple nella cache richiedono una sola scrittura nel
f~{~""
' ......... Hvello inferiore della memoria. Le operazioni di scrittura non sono dirette verso la
·l~":·.'· ,
d:"'''.
1.'9~'"F.:
,;: ,;>:,:
',
.'-"'~."
,"~"

..
J.i,"{,~:: .
/~ '..':
221 progettisti Intel, all 'atto della presentazione del 486 avevano SQ5tenuto la validita. della. soluzione
,""ill unificata [Cra90}.
,.'r-,;:·
I \ '-;...' .•
23Quesl.O e il problema. che si e presentato a.i progettisti Intel nel passare al Pentium. n Pentium
.l.::-~·_'"
'."" "
doveva essere compatibile con le preeedenti macchine dal punto di vista del software. E quindi
lI·~··: posaibile che su Pentium vengano fatti eseguire programmi automodificanti, scritti per modelli di
.. '«'"
~. "."
'.
. j,
;1':.:" ".." CPU precedenti. Dunque e stato necessario inventare dei trucchi per fare in modo che in presenza
..,'" "
1' -,'. di eodice automodificante la CPU funzionasse Meora.
! ~:~;Y;.i" ,' 24 Cib richiede la presenza di una di pipeline, in modo che mentre 10 stadia di fetch preleva il
t .. , .., ;; . proasimo codice dalla cache iatruzioni, la cache da.ti PUQ essere letta. 0 scritta da altri stacH della
. 'j '.,'..' ',' ,
pipeline. 10 aitre parole, i conflitti tra accessi at dati e alle istruzioni vengono praticamente, eliminati.
.,."" ..
-.~.'":
':ti'..r,t-,
Il"l.,-»." - ' "" ..
·.Y-·~f·.
""'Wii""'j,':'l"
".'·'oil·'.
T', _ .
r-

"~f:·.
"I
.,~.
- r.~
..':<
.;~:
.3~0."8__C::':,:,a~p~it::o:,:,ID:.-:.g::.,.,::,·..:·.:-,--C- ,.. '..,S:
- .'~';?; ,
'1.:;-'
,"'''~i\'
.'
• •• • • • • •• - • " •< .". ... • 1,~"t;
me~?na, qW~dl 1a pohtIca ~nte-?ac~ f~ usa ,dl-.una :banda pet3same .?lU .iplc~ola .ed. e '.;;;~:~;!.
perclO convemente nel caso di ambient! cil lavoro multlproeessore per ndurre 11 traffico :.;.~it
tra processpn,e .
memona.
......,., .. ". cadlg,vtene
''"'
. . I ., d II I f '11' I.
L~ COgI,P e5~lta . e a .qgIca.,aum!:!n~a. Fl. ~ .1 pgp.l, YP . ~ cJ.\.Q .:',';.
"'t" " , ,." "'il '"1'''''1''''' .. '. I.
. II I.. ""~(';'"
··'····1' l"~'"
una..J.iP.,ea.dl SOS.l~Ulta oq~qrre:.col~1arn~, ,C9P- e,I,lU C?iln.me,m9Ha, c~~.t"~,~" :;Al
';.".J: , "d' ,! ""·.,. ...1, .. ' 1 · ' " ' i ' t t ' :. !'d"ll 'll'· .. , .' \ " ',' \;., '.'.,' ' I ' .,' ... ! "'J;.";'
se ill prece" Elnza. c e stata una sen ura. su. que a. nea,. , . . ." ~ .~ }it.
, .. ' ~. :.. ,.'; ~lt'" t ;' . ~"h ) !rb: ~' Hi
,. -'. ,l?';~¥Q.f{ C¥..., : e- ~.rR'h'g "~il'" .. "~'
Ita: lea' 'sehr
li~e' da" > "atiZ ~~~tr'is ~ ~tto' ~il~' t ~~l >!~,~1.
,P , ~, "' . p '·" d··J~ ..,'; 'J']: 1 ,;~ ..,., "'J ~d"'· "Pd"'' 'I'] ~.~;;::
'J.'

cedente. uest~ tecruca ~ va.tlt~gglo dI g"J"agt jre I, per S. a Goerenza, el a 1 -, ",


. II 'T";: . : : . ~'". ' . '~'I'li" ." ,il~, .:. ""II" ;" ' -,:' ~.:' .' . 'j'~:l~' ·'Ii" :,' ~ . ~ . '!;: ":'C'''l: l.' ,:~
'a.ch'

~:~~~n,t~ ne.;f c ,: .·~,P~)?~~~.f;g~t; .B!~~P~~ .~~ ;~..~~~ona. ~I! !~T:-\?-, ,!n~e'~~?~~'e; Iv ~ ;,}~~
p~\l$~W~~"rfi;~~f~1di~:;~,~j~;~~~h~r;;;\P;~~1~:~lt...,¥¥'0iS'S'~H'~~c1i4':S?«C
wr~t~~~~~o~~.~!?,!~oP.y;-:?~~~:$,\y~q~:r.~~/~sl~.~Py~J~~;&~L-,.q!j',h: ·fI·,·:'·i~:ii!: I .. ! m1.~
..
" ,,~ .1 '.; ',. ,;, ''I'':.' , .... .'" ., :,.~,"" "; ,".";.. q'Ji. :rl";"::. ;'~. In :';"' .. i~,·;-. I,;!!:~' ;!.,"j', .. -''''~.
A~ 7 . C·. ac
,', "Ii'e'illli
(;.;:.'., It'I'"
I'lve II 0 "... ' i':' ,i'" " ., I'-,".I ':','. :::~
7 ·.....
'~
.. . , . ,.. . . '. . . .'" .;:
'1. . •• , • . • ,
·1'
'. .
,
.. ' ' ' ' .. , . ,_
" ".' ,,',
, ,
,....
, "
:

I .• ,
".
' , .--.
, .. , .
,

.. ' •.. , . . , u'" --;- , ,., "


M
,'., :~:~
'., . " . • '.' . . , .• ' .", ' .• '.,' '. . . ' .•. , . • . , .' ", . . . . . " ~:.'<

· ~"l'" ,." '. ,i .', "...., ,i' ,; ... 'I' . : . 'f'" I '.:'. "I .·r "." .:: ." ',11,\ . , . " ;:, ". ':~:~'
~b;~~~.orv.i~~i~~~;.l!~:~~e:~ ~t~t:~ ~q#~R<;l.Qtl+a;!lo,,~c,~,p.qA~~~~ww,~~1.4~~~,~iR·'#~I~~iocit~ ';.~~
t~~,-9p·V ~,P1E:;~qp,~. C,~~t~~.e, . Th:~~~v~,~ l~~~g;~~~ d1.Y;~\?~~~!~~~,~.¥~a ~PI;l.',.~u,eJl~ :d~, ~.~f
(l:,er~l ~.I\~ .~ach.~, 9j ,~Q~.~,€! 4~.Q.?:eIV?~0.n~ ,ca;p'~~~ ,q~ ;~o,n~~?~'i~J~) ~~W?J: !P¥~€!' .~ei,pa.m :~~:1
dt un programma. .. '::: '0 i;, '-.:' r!' ' :;'1.' ~:" ;:',";i fi ., '.''''"i ":' """:':" 'f'll) ,:~.:;::,, j'! "
n bl 1>' . II I d ." ad' d' libert'" d I . I
, , . ',!-. p~o . ,em~, p~ .~s~r:e poso. 0 !~~~n ~, Q.1 ,: gr.. :-~. "~ .,.'" .f!'lll:' e; "~~~ JP~aj CIO
. e'. ",
'-}
illtrqq !.1c;e~1.9,F . .~~z:o; l!v~l~~ /9:i. 5~9\e .t~~. su~Ua .~\~. pI;esent~, :~.' J~, ?1~,mR!!fi,. ~~~t!,al~~ '. }~
:e~i~~\~~«r!£~;~;~~qS~J~«~~";~o~1&:~~~~:;;I~~?\j:l04li~~~,~~I~~:i~!.if~":~~:
par~e. 4~l1e r~q".lest~: q~$t.w:a~~ fl.1~~,p;.eP:l~~I'~i fE1.~:tr~le. \~, ',.:·r :.;,[~ .. ,~, '., ,. :l;:,,~ ":"' '.1:' ':." ,', . il.
. ..,.~ r pel.I.a:. .;1: i~q9 ,;r}P~~~.~ } lv~IQ:I:~ ,~,p~.91. ,~,~~, pn.p.~lP.~~ ~~.~~~.~~i~~ :u~f!l :g~;~r,j ·,:~
a 7
Chla?i memone.pe.r ca.che d~ pnm~ e s.e~ondo hvello..1 4~~~'~9~9 :~W~,\-:~!l::·,wr-gW,.: -if
La ~~f£~~e~,~.~.,.P.~'t',P.~f,;~r;f;l dw= .+~vr~~~:~ ..cr~ lr:. ,!~~~~?~~. c;I~l,·.W.l~~ :lp~e1191umuen- :t
zif };<lJ:e'!,,lenz'f?~ .I,i;I~.c!e d,~H~JjfJJ. IJl~n,lr~, ii'. y~r~~,lta ,q~l ~~S~?,<!q,11veI19, !,V\~~\~r,,:q
Ulllcamente sulla penaltzzazlO~e dl failunento della c~~~r ~l:P.n-~~q ~1~ellR; "-';":' .,.! ".; ,~{~,
~~.,.
';'i~:
, ~.~,
Primo liv. econdo liv. '")~
--,..,
Dimensione della lineal(lfyte1 J ;::.~;; I: t ~\ r:: ':~·li28 ( I ; a~'J f~ "IJi. 1·3!l-~2.~& A (!
Hil lime (deli di clock) normalmente 1 4 - 10
.\ -.:~ "":

, ,~naliz~~zi~~~,?i1'\tli~~.r1\9Jc\c~ 8-32 , I,!,':,: ,,~R -~9


710,*,), .,%.,\,~" gi
'i~%: 3% •.
:0:' ' ',~(.. ..,·,.~ I

· .• ~s_~'~¥·'·;"'!'·l"" ;'\ ""':'<1 .'l:',?·,~·:!.·" ' ~d,o


"25 '-"." ,',,'
,. · J)..llJlell,sion e A¢.lIa .c~<;he.(kbYI~l. " " . . 1,.p .,,,..., ',z56:~ddd'"
·oi,.:
. . . . . . . '. ': I,) .. ~
"I~i ')
'

:. .... ., . .:' " ,r


TabelIa 1.:i"JVil.1Ciri't\pi-ci'ded)ti'Jitipald)a.rametf'\:Ieue·hach~"d'niHin1Y~k'ecbnirtdiveltd.I'd·>
,,
.. . . _. .•. _ _ '.
< •. , ,,I . " ... ; ,. ,: ,". " : ,.,., ,.,. , " .',,"i.,':i
'
, . . , .
), 1.',\'" ".,j', '·."'l'.;·
. ,
'_
. .' . . '-

",. ~ Ristriviarno -1a 'follmula cite lega, il ·tern pO' 'medio ,dj~'adcessO' alla.. ca-~h~:··~~r ·il;':~·~~ .':
deld?ppio l~vellO". Fac~~do·.tifeI!,mento:al~3:·7.,~, Be' i "·li"Vell~··.·sG~O ~u~ ',si. ~a.:",. ;." '., ~.::.'.' .,:: Jl
'.. .' . '.. l' ""h'x t +ht-'x
",.;,...:,.".,'.,." ...",,9:.::-:- l·i.,yt
(h "xT+m ':Ii't)'" ,. . . . ' "(7'6)' ',:
.~:.:,.2·,.J?~,1·"'}":' P'";,,,'II': '"",: ..,:; :'.'\ '~"-

." .:'- ~9Y~, il p'~di<;~1't~~i ~if~~c~ ~j ~r~~,l? ~V~l~§J~v.~H.~.,:p'i;?',Yi¢i~~({~H;~i~~~~)~(q'p'~Cllci~'.;


~. ,s.~ n~~IJsc~.i\, ..s~q:md~ l:iV;E;~,?~",,,~} Jtp;tL~h~, ~O:l",:ll·~~E1mpo,dt·f!!Sc;~~o .~IA8:.Ca.f~~, p~ <,-:
secondo,liveUo, .comprer:tde anche il tempo,d~ trasferimento,da,questo.ljv;ello a1.prlmo,~ 1:;
~h'"
'l~'''··. .

1
:1'-'"
I\~~~':~'"
,-,•. ',"
,.. ~,c.,.'~
tl'l,"~"' ,
"c"
,~;~:I':'·'·;.. --.:=L::.~m=e:m::O::·r::i':.:oC.:ac=b::e:.,.'__3:.0:.9:.·
."';r,
,~~ ,''. ",'
- ·.ji~·~h~i; .,..
., h'i"cl-l',',
'"j;y I~"'r'··'
I"['."'!:' .' .. • 1
~~,1~/. tela combinazione del tempo di accesso al secondo livello infenore e del
t
Li.'I~~'~~!:· men re :cessario a trasferire il blocco.dal Iivello sottostante. t1a memoria centrale).
. ~L;' tempo n
,>;!~(i.,;...,:,;.. ,
:;P-,4!P}.";;' ,,'
valore del.
,I."..:;,,:.. ,'chieste che. f.lhscono
d' fall'
tasso

n I' d II
limen t e a cae
h di

e• .
d I' II ' urato suile
secon 0 lve 0" t:: m b " "
I accesso aHa cache di pnmo hveilo. Per eVltare am IgUII. Sl
!S'

I
l' ~:\I~1;ll!:"'-.:.:. ,r .. .... ' ..' ..... - . _~_ .. .... -,
' ~.<.,~.~. '. ',.dottano Qumdll seguentl ternum:
. ."kl;i!,"'·
. "{;Wit~,'::.,.. . . . .. ..
r.ji-~·{~r: ,,'." • tasso di fallimentt locale: numero del falhmentl relatIvo al secondo livello dl cache
~"""" .., d I' . . all'" -. I' II ( . d )
,
~~
~~
''''~;i';.·::-·. .
~t::¥h\r::,.,:-:,
diviso per il numero totale eg I acCesSI . b stesso lye 0 cornspon e a m2
~ .. -'''' ~: ", i : .. _. -'.
1
C;l ~~~k.
~, ~b$l~~1~<~':,·,,~
. :~:~ed~!;~li:~;::/~~~:~~I~~~~:oc~hf~~:n;~:~;I~
: " : ~ '.
t": ~t'
. \
per il numero

~. t:,,;~[i~r'''''::; concetto di gerarchla dl n memona lmpijca che la dimens~one della cache di


~~m ~~:N!fL;~~';:. .
M~ .,I:,..,....:'.. . secondo Hvello deve essere pi u. 0
vrande "
di quella
' ,
'della 'cache di primo
..
Uvello.
<'
. .$.~;:,.~:<~;' '-' .
1'1"1.. Se la differenza di dimensidrie e' niCtOIa. 'it lasso' dffalliirieritt sara. alto: la cache
·'1
1.
'\0;, " ' " . • • . . '

'" .~f·0;:''''':)· dfsecoiJdo livello deve avere"dimensidni vitihe ~ qu.elle 'ill' :Una: meqtoti~ centrale:'Se',
~~!'! t\ttf5j~;:,~' ::':: 0~~~e!·,t~1~'·di~e'refi~~ e·,e~~vat~y:·~~~ ~,/~~~~~.f ~Io~~~~,.~ ~~~~.V~~~~~~·~~~l1~'~.~
fm" :.t1)~~ .;;",.., 'una cache a un solo hvello della stessa dImenslOn~. ,.~,.. .. ';" .. : ',. ...' ;: I, ., . , .'~
1t \~t1;;,:;" ~ :,:' ..'
Ri~ordiamol ~finel la p:oprietd di incl~~ion~ dei live~li multipli1 pe~ la .qua.I~ una
1
,'1~" ·jJ~z{j.:""',' cache dl secondo II.vello contlene anche tutti I datI presentl nella cache dl pnmo hvello
}~
-,' ,". .
;~l;;'*'~"~ :'::'[~'V18~
Ji;1~' iJ:\
f;" , ,'j':,"i ,;, 'I .'f •• ;' :;.;d ,;, . ';l::.:f i': " " II: .. / .]~! I' ",)
.
li~ i,,·r,'. , "1:";.;
~~ :~~5{~~' ,. '.:)'~~JF x~~~~q.'~, \¥,l.a.,·~,h,e ~e. __~9:de. 9A:;y~lit .pmi?~~t~ s.~. fl.~~ ~a,~~?j~e: i\'~~r:!Dit~ •

:(·,;·.'~~l~~~~c~~~fs;~bU~~!:;: ~~;~~~il!~~~tr~R~~~:o\6 ~a!~!:~i~rir~~~'::: \.


'~' ~¥3b:~;:·.~~pIJ.p.p.h'(Pl1Qri~.~t,~v;la. :nel,c~Q .qeU:~~cl~$~~n.~)1il :r~V~:1(;>~, ~~g;~.~ ac.c~;~.~gg~nsce
~~i~ ~~I}~~~~.:.'~,,:,:: ,,~;,ay:er~, b.~~cmi,PI~', p~ccp.h..n~lJ~;c8:~,~, d~. pr1J;!;19,:~;y.enq·.e .m~,gpp.t<li 1ll.,~U~~?:.4i, secqndo
f:~~' .~~~fY:!'~'· ~:y~IJ.9~~·""i ' " j ',_ :,';:",,[Ji; .... '!, .j,:!." . • . " J'.'lj.',1. i!!'I"I".' .,'1'" ., ~,;"i :' ,J,',;! ~;l, .• r·,;;:,. ,:'!
t~ #I~j\~;./ f,-;q ;1;~~j).t~'p~i~a:p,\l.? ~_~§efe an.q),;~ ~an,~~n~~~,~\iP'~I.~9 ,qLf~~ntp neW~<:~~ \
I.
q~ !~~':d >alla;cachedis"I'qn\lo hv~llo, ,yengQnq, 1l1vali4ati.lll\lkq\lelJ>10ql'J1i,~~1.Ia. c",cJ>e di,p,lIl)o,
,., ?M,~~j" \i:;'.~~o~~~~.~p~qq~ntl ..~~.QIQ~co 9i l:!~<:q~~q ,\1:V~~9 4~,~~tl~\l~~ . J~,qsllf~en9Q, A,~o[l)!.
. ;.t&:';\!'i..l~"'" de I Iasso d"1 I . . . .
:lo .•.7"a~~.. '
,
mISS au menla..,.;. \I, ..... i.:." "~." 11,· .;.
'' . .
j!:~".,. ::,'"
'. ·c.·.;·},::: ;,. ~:nl."·
,
~t
, '.
..\i;';l'1-...i.1';·
'~1:;;}~~"';.
R~" " :1'.1'::1 . j.:i;'I"

. . . , •
"'li !,:., .., i"\"',,! ':. ,,;::"::'
!.>lit',
1
.',

",;,':.j'
_ •
··;:.-,,'1 .... ,. ,,In ',,-.1.' '1:.' ::1
<

1-
~~:.',: f&1@i'~'· 7~4:~S'j~)b·stii~i{~·m~'rif(;·'·:d~:lial~~_2h~,
:J;~ . ,.'.'
~~'" r.,.,..' ." '." "'.' ,.
;.;;',i·ii,I;I.,/ i,r.' ;:'::.',!'~. i,!.' /;,;.':j;~~;~~':[I;~i(~':':,,~I,;: !:
'.. ,,; .,~
. .. ,.,. '''.' .' ...
n·· .' t • • ..... ,

,~:~:-i:l 7:~~~'.,; .L ·,~.... ')·'.'l;l j··Ji ,\'';!!;I<I,i 1:.':'.•1' '.', •.•.. j:. lid~. ).J,:·:~)'h·li·'I·;!h '-:~!:".I ':':'}~iJ: ." ,:::..,.{,;: \,\.\'i'<i~'I;. I
~~~~ . '~!f:'~"" Nei sistemi a memoria virtuale si pone un altro problema: il posizionamentQ~d'eH~ I.
~.~ ',~~~:~.:; CaChelI'ispetto..a:lla- M~nJ~,MemO;f:y.Manag.emem Unit;.l?llIi.ita,di·ctra:duzione·.degli iindi-
)~~~~~ \~:W>':'" riz2i'd&"!"irtuali·;a,fis~ch··lnFigiira'7..l0. mostra Ie' due altemative,nel:-pbsizienamento -
>;:~"",.,~~U2t... deUa,cachei"" 11.'·..·.. "d· '.';'"';'\>1', "Ird ·'/,Ii, I~:~ ,.; '."(-,';.' ,~;!, .. "". 'j """:',L(!:r:.";11 1;'
,;\~ '~:?tj.. [ due casi hanno Ie seguenti ~ara.tteristiche,distintive;. ';i',~! " ... ~ ',,:' .,.. ;,';,1":',';.' "':, 1.
."G?~~" '~"t" .
,--,\';;;1,
_: .• :.,"W
-'." .
fo-.t·-·."
ft,,:.:.,,;,.
".;;. , .:' "j Qac~~,ji~fca,;\Lc: .c;~,*~ ..e;pps~a ;ai·~Ue .~~~\S!~lt~~,Eij,,tr.¥~ion~ :d~~i i.p.~rizzi.
:~Il;WN::;::' ' ,':,,: ,4\/'lW~~tQl~O ~~f\~.cesso <al,l9- ~che si:~Qtp.pie .~t4~~y~;to,k'iJ;l~iJ.~ fisiC:Gl P~qpotto
l~11~ ;':?~". "
:1l:'1:~~:t..
:r, ,;, 4al~ m~&C<\t;l~s~.9, d~, t:r::a,duzi9~e. I.~ ~p1!croP'J;oc~~so~:Int~l \~0486, e, ?e;nt~\lm, s~p1ono
-'~~!t~\';t;,,'·'
·.i ,;nuestQ·.schema... ,. ,.,.'.''l1.'' ,.' .... , .. , . . . . . ".1 ,,"
,.".,""
.
. " . . • , .. i . , " , . ;
.••. J.' "'. -
" ....•'. ''.':',
.• ......, . . . "
,.. " ..' .• :0' :'".:. " " , : " " , _
'I} "". ''''J ,"
I-
,:r~y· i1t:::' e posta tra 1a CPU e •
• Cache virtu-ale. La cache I'hardware di traduzione degli
,~!: !~.inqiIi~zi,; j~. t~,rp.o.dq J~ r\~ett'a.~~,.~ach~,.~ effett~a:,~i~ia~eJ;sq,l!l9,4ir:iz~;~I(igico
:,:~~i¥. %:'
;-~'~ ';.~~~~.
generato dalla Cp.·U,.;Se il:dato,appartiene:.a:una!linea·,(nello spado deglidndirizzi' ).
:!~t ~., '
310 Capitolo 7

I
',

I
lndirizi Indirizi
CPU MMU CACHE I
'l
.''.
virtuali reali
Memoria
Bus dati Cenlrale ." .
" .,.,. ,
,':~"
· '.:,'~"
",'.,. I
. ":",- r~,

I lndirizl
.- ;'~\~~
"",~.

. "
:o'lfi',;.,
-~.'
·r~,.
i

I
1

MMU rell!i
~.~~.
:,,"" ~
--;;~
I ;.~"
CPU lndirtzi ·· ","_w "~,

\ virtuali Memoria
':-:,
'\"~""
, "':,1,')'
I
Cenlrale :;',~~~, i
CACHE
,·Jt ,. 'i
·
Bus dali ',''''
:~
.. ~~

Figura 7.10 Posiziona.mento della cache. Nello schema in alto la cache eposta a valle della' ,::~~~~li~
tra.duzione degli indirizzi e dunque 1a ricerca in cache avviene attraverso gli indirizzi fisicij ~.,/}~jr:. ~
nello schema in basso la cache e posta a monte deUa traduzione e dunque 1a ricerca viene '::':;;.~.t~, ;
,<}1Wi f
I effettuata in base agli indirizzi virtuali.

.. . ,...
.~:~;~~'"
" , ,:;~.i~~
J

l~gICl) presente In Cach~l non c'e.-bIsO~n? dl fare :lcorso al n:ecca,1llsmo dl tradu· "kl!~ A
Zlone, quanto esSD 51 :ende disporubile entro 11 tempo d1 acc~so della cache.-., .~~.
I ill
[HP93}. I microproces50rI Sun SPARG [Sun87] hanna 180 cache Vlrtuale. ,..:~)~.
. , . . '.;!~ ., ,"
~n~rambe Ie S~I~10Dl b.anno del pro e del contro. Le cache fislche sono PlU '.-:'Y"~~{
- semplic.I b.anno COst1 PllI ~ass1 e conse~en~e~ente hanna un favorevole rapporto co~to :>:~
1

pres~?lll. InoItre non Cl sO,ao cO~pl~cazl0Dl a espand~rle, ~ualora ~ ne present1 ~~ .• ~~;~


\ nea:ssIt~25. D'al.tra parte, LDdu~lta:blle che le cach: ~rtuaLJ.sono 1~1 gran lunga. Pill ,,;~gJ!K
e
effic,~ent.l.. uno hit eli .una cache V1:tUal~ consente dl. nsparrmare 11~tera,tr~d~Zlon~ <:'t'~~,i
?ell. ~~zo_ Thtta~~,le c~e.VITt~all presentano 11 ~ro?lema dell a.mblgUlta negli :\:~~~t
I mdirlZZl discusso qUI eli segwtol il coslddetto address ahasmg.
In un sistema a memoria virtuale, 10 stesso indirizw virtuale l puo appartenere '·f~~
. :"~'~'t,

a una mol~eplicita di ~pazi ?i


indirizzi, ~elativi a differ~ti processi. Evid:ntemente" ;:~~'"
~ n::essano. accertarsl che il dat~l ferruto dalla ca~e ill . c?ns.e~~nza dl un cer~Q;:,..,;.?;_
I mdirizzo 10gIcoi appartenga effettlvamente alIa SpazlO deglI llldlIlZZl del processo In ; :;j~,
esecuzione. . . .. , . . . . .. .' ~:~,~
. P~r .ovvIare alla pO~lb1lita ~e ~l determilll una Sl.tuazlOoe .per CUI Vlene generato" ;:~~
un .lnd1I1ZZ~ che determ~a un hit ill cac~e, rna la lmea cornspon~ente rap~rese~- "::"'~~
ta mforma~:Ione portata ill cache d~ u-? dlfferente processo che era m eseCUZlOne In ",:~~r
precedenza, sene possibili due SOIUZlODl. :<:f;'l!
",
, • La soluzione comunemente impiegata consiste nell'invaJidare (flush) la cache non <i~
I appena c'e un cambiamento di contesto (task switch); questa operazione puo ',., ~.r.'1J
essere automatica oppure lasciata at sistema operativo; in questa caso il set di . 'L.(I. .~~I

.' .. ~
istruzioni della macchina dovra. prevedere una apposita istruzione di invalida- . . ".;~, i!" , .u,

.. r,:~
' ',u,"

I
. r~);,
. (:.."
215Non si trascuri questa aspetto perclH~ esso incide p08itivamente suI tempo di vita atteso di un "'""[
'~,~'

sistema, ossia. lao finestra. temporale entro lao quale il sistema e competitivo. . '. ;i~i

\
'r:'~
"'~

.&:/.,
". ;"i~'L - '
La. memoria cache 311
']J "i
.. ,:,'~l~!'~" '.
J
.- "'.~"
i~"
.'
, ,~;.i;:!'-;.
."I·~i'('':W
l!r)' ."1' 1'1, ~. zione. Questa soluzione e adottata per 1a cache dei microprocessori Intel 486 e
,1!Ii!i":",' , '
1~1",·~I·",' , ',. sUCCeSSIVl.
II.' ~·~,"I"i;·'
ll.Irlf.'(Ioi'l~wr;,',
" .. ' '.
'l. """ ..
'~
.'ru::':';"~"l"';'~'
Un'altra soluzione, leggermente piu efficiente ma piu costosa, e quella della cache
.~
-

...
-,_ ••..,11:.".
, .l'~fl':;'''''-
\'''-;' ~
l:~.,IJ!'l"!',··.·
'.. •
vlrtuale rnulticontesto. In questa caso, a ogni linea di cache e associata una
'.'''' J.".
I)··.. ~··,

r,Jt"rlr~:' informazione in piu, attraverso un campo chiarnato process tag. All'atto della
i 1;~::l,!:'::I"
1,_II".i~' ~', ricerca in cache, l'identificatore del processo in esecuzione viene confrontato con
"e"'"
1~"(I~,,' 'i
I" "Ii:,.',>, .
I;' ":l'~'. . .
. 'I"~"~"''''

il tag di processo, Solo se il confronto indica identita lao corrispondente)inea di
cache viene considerata come appartenente al processo in esecuzioIl€. In caso
~\lr'- .. ;-
contrario, si ha un miss, Questa soluzione e adottata nei Si:,t1'~S [Hei93].
:-·... ·I~·'·
1'1":~-
,.,,\,. ,
.'::'T'il: ,.,
I~'\l'il
:~'".. ~I',~I",.
'"
"W' i
i':l ~~,",~;:,'L •
'~"!\.''''~' .' '
·'~~f~:rJ~':. 7.4.9 Multiprogrammazione '.'
" .~'"
.. ,
I'~,.~n'~·- '
~
/

~i~t~1D;',;, yn fatto~e che ~nfluisce f~rteme~te suI tasso di:.rrl.iss ela frequenza con. cui un process~
~ijJ~~:;~~:>;. m eseCUZlOne VIene cambIat? 0, mversame~t9~11 valore del. tempo medlo t:a due.cambl
;~~'{~I;\}~\; di processo (Q). L'effetto dl Q suI tasso dl I111SS non e facl1mente valutab1le e. dlpende
f~n;~;;(:,> in particolare .cial. cari~o di lavoro e .dalla dimensiQne della cache. Si ~uo notare che 1a
J'~~r.li;"(:".'.percentuale dt mISS dl cache do~utI a tal~ feD:0men? aumen~a ~on. "wcremento d~lla
rl~~Jjl;~G:,_, ,'''idimensione della cache an~he .se il tas~o di ~all~~entl total: dI.mmUls~e. ~~esta derJv~
At,~~,~.~.,:~;: dal fatto che per.cache ,dI plc~ole ~enSlonl 11 t.~~o di ~ss attnbUlbile a fattor~
~~~}~:/~'" diversi daJla multl~rogr~azlOne .e elev,:"to, per~I? 11 BU,O' .lncremento provacato dal
t~i;/;':' '~aJ?bi di processo m esecuzlOne e piccolo III terffillll relat1Vl. .1'\ ,
:~~~)~'i;~' "., . -Alcuni risultati sperimentali riguardanti la dipendenza delle prestazlOn~ ~ella
~IJ~~~~::f:::(,,: \cac?e' dalla ,multi~r.9gr.amm~ioneS~1l0 stati presentati .in [SG8.3]., Si .tratta dl r1~ul~
~1~~f~t;~'.>t~tI ot~enu~I tramlte sInmlaz!one gU1d~ta dalle tracce dl ese~uzlOn: di pro~amm~ ?l
\':~it:~:~.:". tlPO ~clentifico au calcola~on delle sene IBM 360/370. I nsultati sono nportatl lD
:~~~~1fr'::',,~:.~i.gur~ 7.11. . . . , . . . ..
i.;~~tf~~:>,,"', .' .
Per .v~IQn dl Q molto basSI (1?0, 1000) la cache vlene. condiVls.a tra tuttI 1 pro-
\ltf~~,~(.1.,'.; ceSSI attlvl e qu~dD un p~oc~sso Vlene ~osto nuovamente ill eseCUZlOne, una elevata
1,~.J;·~~~.;·" percentuale delle mformazlom precedentl e ancora presente nella cache; per Q molto
/1~t~l::i,:::;:. elevat"i (100.000, 250.000) un programma, quando viene posta di nuovo in esecuzione,
.~b' ;:;t;,~:·,:::,,~ t:ova una cach~ vuota rispetto al prop~io .set d.i lavero, rna iJ periodo .eli :secuzione
:1~'1'~~::L"':" e suffi.cientemen~e lungo da permetter.e ~ n~mplmen~o ~ella ca~e e qumd~ da ~r~rre
.\1.~~4.,": vantaggio dalla mtera cache; per valorI dt Q mtermedi 51 ha una SltuazlOne III CUi Clas-
~i~'j';-:':' CUll processo viene ~eguito 1?e~ u~ tem~o ins~~cieote a trar~e v~t~~o dall'intera
~l~~~~~~:.:, .cachel.la quale cont1ene POChI nfenmentl relatlvl a1 processo dt CUI e mlzIata la nuova
1~1\~f:t·,:,:: '.' esecuzlOne.
:.~~:;~,,?-y,~,
:*~,,~\: .
>"l?,
;~i1i::f(,'
7 5 S'lsteml, a mu it'lprocessore: coerenza d e 11a cae1Ie
"Miff.v",
'1"1.,,1',."
,'..
,:"".:·y,:,1
';I,o"".~ ~
Un modo per ottenere elevate prestazioni consiste nel realiizare sistemi di elabora-
~ione
: .......... '
'., ~,..,.,. ."
:~"~ multi'processore, costituiti cioe dall'unione di piu CPU, possibilmente ill costo
,?,'~",i'"
,,",
';-l~':';''';:'I'''
contenuto, coll.egate tra lora attraverso una rete di interconnessione.
.. ~~ 1~"'"
Anche i sistemi distribuiti sono da considerare, in seDSO lato, come dei sistemi
"["1""".. ,
.;.,)\.l~"
~~Itl~;:' mUltiprocessore, anche se essi rientrano nella categoria dei sistemi lascamente accop-

~I
<
,'" ~
. 11";':1;
.l~.~. I,

." ", ('';'~'',


.... ..
", ~~~",
/-~'
w
· ~..,
, .' '~!:<
312' Ca.pitolo,l7: ." .. ' . " ; ~.

. ,:"i~1!,
,~'l
· '. ,'.,
· , ••j

"~d'
,.' ~,I
,/,0.-'00',., a - 'Volore del' tempo 'medio tr-o ~due "'~4c
',r.
· '~'"
comb; di proce""o "..

Q-l000 • i~;[
0.100
/.
, ~';
O_JOOO ':I~
.• :{.;~
.', ',:1 :,:\ ,.. '. " .' Numero di set·,. 64
, .~ ;, "-',.:\11,
- ,
'

., '0:050 ~. . . , ,'., . ••
..··n
... .' ... 0_ 10000 IJ>~
~ ~!~j

", --,
.2
, "' 0 " , ', .. ,.
. , '~Q_jo'OOOi'l ,!' " : ., .. ,
·..:..1!1

· "::<J,
,~,!,

'~~:tl

.~ "*:. " ,.,' ".;' i' ". . " " ,


" .! ..:' ""r,',
..
" .

( .: ,~ '1", '; .. ~.,: ' '": !•. ,,:,..,; . ','


0 ... ·10QOQO
" .. " , .! 'I '.,
~.,
, '\-I"",'
'.
~

... . :""~~
,

,.
, I .
I ~" ; i
/' "'. '.' " ,, "1 ,
';.~."
".,·,t'
·:'.:!}t:
0.010 0-250000 ,''":ri/.n
......!:!\
· .. 'l'j,'-
",.'."
-'
'·I""""!.'''"·''''''''·",
; , ..• ,'.,., ,!, , ,' '.I. .,. -",~,",',
'-':':.1'
".-,...,'
'·.~~-I«··.~
0.005
Oimensione dello cache -i~ byte ' . ',,:~j
· i~",
",,",
....
.i·O'··" .:' "\"': 20000"" :' '.1 "'~ 1;40000,; ,;'," ':;)"60000' I '. , •.,;!;"j',<~,

Figura' '7''-11' TaSso' di 'nllsS per'd:ili'er~nti 'interv,alli' di' niulti~)r'd:gra~a1:itih~ Q'(misura~o' i~i '~':.i[~
millisecondi)' p~ tra:cce ri'caVate- da: progranimi' scie'ritifici;' ) f', \.' ' , ' "": ; j- ~';1:(;,I.,
.'.~'.J:.)"'_:.".:: .. ';,~ .. ~l·I! .;!. .:: ... ,." .. :i l. . ;,.. ·.\i ,.. "~'" .,.;\.:.i:d···~t.il~
., "
. . , ,'.,;,-,,!:
_.. ,;or,
,!,. ." ,
J ..'.,
\."' , .. ,
"" •..•
• •' l"
.. ,
..
' ..
_
I.' _
.~,
.
•• " . . ..'
. ,. • ".'
'."'",
',','"
••• {.,.-tt:w
.,,' . .' ,'; . ,~, . . .;", ,." .' .,:.! "':', ': ~,.:' . . ,d;i,,'.';·~~I
piati .(.loose.ly;,~otLpled),.c,osti.tui.ti ci~ da rn~cc.hlp.e :fisic.a;.mente d,istint~, .conne~se jq.··')~L
rete.e j:omunicanti.att~av~rsoscambio,di messaggi.. i'.,.:,:'" , j' ;,;:" .,,: . : ," i\:J.~;'
. '"l''f@ .
~ )n ~e.nere q~an1Q. ,si p~ia' ~i~~~~~ ~.Fui~~.p~oses~~r~ '&i ;nt~~d~. ~if~r~~:si' a 'rri~c~J ~v.l.~
¥
<7hIn~ C~D: C?,~V, {ort~~~~te ,~?f,~Ppl.!lt~., .~Wlft.t~y .,qf?'lJ.p'~etf),: f??~'~rwre ..p.epa. I?e,d~~~~~,: ,~'Nlt
s~atol~ -:- .s.e !l9J:li ad<hnttUI:a SW{~ medeslIpa p.la:stra - j:QmumGf\n~l attrave~.Q 1Jn me~, '~I
d~s~inq}i~~ '(~,~~~r~V~S,9';\in' pV~·;:~~~~le~~~;e~~~.~ijj~;~i' ,f,~t~i.~?p~.~$,io~e ,'q!1~C;l~q-J.i lo,'t:?: :~~;\f
numero e'elevato). In questo caso 1 dilferen'tt processotl accedono alia me~e~Ul:~a,1lJ..~ ,,~,~,

Q~:~~~'~~~~~:~~~~i:i:~t~~bf~J~:)~tJ::~~i~V::aOita~~~t~b'~~~~:~P~~~i··,.~~~
copte.n4o~·q.~a: rn.~.~6r~~,¢e~~~~at~',''~;~te~~iii~'?o~'~~J.~r:i~~({piobl~mi'.4~~:~O.ri,~rs~~p~·~'~:".,\~!i~
dall'altro di degraQ.~i6ne. delle prestazio'ri! ~ s~~.ur~~o.nf;!.·d~11a:.:,~a~da.,d'~rdisposi~iv,i ·df ·.1~·1
iil~t#~0ru1~~S~9t;t~:[Yx~$'51;'(A~~~l; ,As$'q~!~r~:;~',:Gji~.s~~#.;q~cls~~sO_~~;Wn'.~:~#ll~.~i~~~~~.':f:~
ratiC"am.e te .6bbli ·t 'ri6:::DeI, rest6.' i ''r'OC~sS6tt' delle t"bor ·ehti'·, ~rterazionl" oitiIio1 : !~'r
,I

1?, .,,'i i ';!' ~11i.f';" Ch€lft;:H~1 .!:.{' ai;r(:l~":t~~~" , ";'l!,I':d~":'~ .;f:.r""'?'l()I!!:"H·;·lit.B";I;iii": "l':""~"
~ol1}u,t;l,q~:, ,u?<,~ S<iI:, .. ~ m,,~~.~. ~~ ,; ,9.~p ~~,.~~n,9,'~ ;q~r,Q. ~,,~P,tg~ ~;' Pt;9.2 "~'1P~'" ,E;. ~,; ~9~(~J.\;f' ::!;~
zJi"t'rale infer .. · 'iohi con 'nut" 'helle"divefs cacne"e' ·u-eUe·.c·ontenute.'D:ena··mEfm'OrHf I'~!'
:: "'ti'L!,lI~,;' :,~;}~~'fH':":"1 ,•. ~ :>~E1 c, '~I;"!":-'.\;,.:,,: ,.~:n"'i liJl '~~ji ":"';1. t,;': ';!t';:! ,j,:"'~" ;;:!'i ;il::i',":'-
cen rdo-le. . . .. " . . . . ,. . , . I I," '\J\..
.1:,' :,(\ ... ,''',' i :'i' ,:,j;;;'..-; :H;""J::':"J\'J "1'(", ":n,)'j;I~(' .),'~1I:' ;.; -'Ii ,,~~1 ''''.
f ;""., ..... " • .:.::
.' ..,
Negli anni recenti e ernersa l'architettura a rnultiprocessori simrnetrica ('SMP)!'SP r~~
intende una struttura priva di relazioni master/slave, in cui tutti i processori sono a li- ':, :~J
vello paritetico e possono eseguire sia il sistema operativo che i programmi applicativi.. ,~,~
D~~r~.~qRe;sti; ~~t~·H1l i ~QP?"~tf~~.~P,~,~~Je;· '~I~ ~ ~PJfYllffc~a;~ l ;B;~1~,~~~~te~p.t~' ':;: Ali
assieme da componenti specificamente progettatl per rendere il loro runzlOnamento ),ij
coere:p.t,e e. traspa~ente ri&petto at nU!Ilero di processod presenti. Questa orga.ruzza:·, :.
zione' ~"tipidt tter'cosiddet;~l 'se'hJe~; :mcit¢hihe'~el1a'C1~se\ der PE!isonal Cotnputer ad' ...
alte ;p' r~st'azH)m:!,
'dbv~'si'
.
p'OSSbno ttrovati{2
• , I
.14!#rtcilvolt',ffino.: a:,
8 CPtJf"
.
,-' :.ji In;;;l :l;!,;'., ·~",
,~'ii\ it:''':';!·:·l II i; '.J' ':;;" ~~I'11 t'C·")"h'ii, .. ';'.•; t'.l[ ':!"ijt:;;!',o"l .1rfi;tU.:!:)} '
:; t ::)JUna:'-caratteristiea di, questi ,sistemi,·e,che~la,tete dli j-ntere6,nnessione ei semplice- i
mente '. un' ',bus"sul. ,quale· tutti i ir;pmcessori I sono, ooUegati' ·e· che tutti" sono.'in· gr-.a;dti. di. . )
'
"
''
."- ,:,," ..
e, ,~(.
,',,"
,"'~'
",
,.
It' ""- . "
,~, t_
"

'I
~ .'"'i'"
t_'
II,~.""., ....
~}l.(-' La memo'ria'cache 313
..!l!)'r.,. " ' .
"'--'' ' ,'".,.,. --
~
".;"I .'.. ....." .
. :~~r'''~:··
"

1
, !~·~t~~-~~servare e di pilotare26 . Ne~. seguito faremo tend~nzia~ente riferimento a sistemi
~~. _)1~~'SMPi ass~m.et:emo inoltre che l~ 1singole ~.:U abbiano una cache privata, come nello
lt4 :;.t~~k"; ~chema dl Flgura 7.12.
r:;; -
L~·AI.<
r.f~~' ";ll~:r:,
·~I\.!.,

'
,
.
. -
,
I
..
,<,t,.-,
I~\~
,~~
, '"~ ,. "i,!!'
-~'....
·0-,_'
..
t" ; . I C, . I _J c. I
1
,~,

,
, ,'~.~ ,,\i.-.
:'t" c.
.
lOP .1 P, I . . t Po I
~Jl\lI"'1:~"."
..". ;"\''''~'t,
"',,'/.'
I
o '1_ ....
....:• •

'~b~i!I';;II., " '


,,~
.t"
.. --s=-_...~..._,..-,
_. ...
-~.-

F
""!!1:":~' _,:~
,'I . :I),\':\'
" .
.~m .r,>i~~,...: "
.>0

It. 0,0. ,d'li),. :


"~'~:~-
\j("';':d.'1"("
,~'" i"'1',
.,<.,,~_.1 ' 7. '.'.
"
\. 'i,,1t
. ,,I.:. . ,,,' . .I, .. , .......
rt ,,).,,·: •
. "',,",'
'" t>" ~~.,. "", ;
..... " Rite'df"fn)lereonnessi9ne \
. , ,.
-' ,.~;...

..
,
~,Ii,' P'h"l;,'.,:
.""illi!;'.,. , . ., , '1" ' .... " . '. . J: \ 1• " " I. , •• .
!;i" :':6•.rt~:',
""~i. ,!I.,·:·'.:.hit;;l·,
... " ""1' -,'
."1r,'
~
~ .
'" ','.
:~, .... :' :""'I! ". ': .. "'7"'~':' ,':'."", .~, ..,:.,,1' .. ~' ·':.1 '" ,
. , .
1'.:,."','- l. .. ",1 , •
r... '
,'I;;, '.'1

',l~.,~
-. <~
,<>,!:~,..

" '~.
·IV. " .'
,.,.....,
;i\~,i''
e- e- ;! .,.

~ill}k,,:'i1T·i.\
'1l:r'j~'~'>"
,-,,~-

I·'
.
.
M, M, M. 1 •

, JI'I~i;':"i '.
~\~n-1l.~':'·'I1::"'~""""
~'."".',~I""i'··'
'~':_'.:;;::;.,
. . . I . I I .~.. I .
""'.'\,1';";'
I_<'. "
llGI· ;'~~', '~~'l:~,,:f;l~.",,'
.' , . " " .
~
t,' " ';.", ,: •

:~
w,;:. f~~~~i,flighr'" 'i:t2' 'Scl.e",~tiizaiiori~ .4i' ~~.s~te~" .S¥p'( $ii,;""i"!,ciii" MJi/i. Prod",o~.;ii'l;rrI) •
I':l ~;~~,;~1i': .' Pi, P::l, ". P" sono·le CPU, dbt;'ate 'Cl3Scutia:' di"una :t>.rdpna clCh~'; Ml', ·:.M...:~no"1 moduli \
L ':fit~~f',<"di me~ona comu~e, meD;tre IO~ e un process?re di mgresso usclta, pe~ esemplo un canale
' il~~l r.~r~:i.:i.: DMA~,.I.!:~ gJ;'~do dl trasfenrE; q~~l tJ:'?- la. memona e l·estenlO.. ... :.
@
~~~ -1.l1t e;
,~
'~~'''J/''
."",,,,,.'"''
.,.~

t:, '11~~'~'i~i;...
),,".
~~
,~..
'1',':.'
.',:.",~, • .'

",~.,
"'!:'~~"-'I
't""
I 'I
.' , .",' 1 '.
'"~ "
.
.'

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

1'

'.
... !
'
.,.. ,
,.,'.
.I;.'
,

.. " ....
,

.i
\
~, ...,\;
!IlA'\"':~ •• -'--- . •.,' , ''''-''._'' •
" ,. ..,,...
I~'" I .' :
f'
~ ~
!.
~d.l~ft.7.5.i{'C.6erenz.a··
1 ,.".'.;
,r..
: . ' ,'..:
.~" .•.•. ; ."'~"
'..
~':\"!
'.
1

I~ 11 !It~t:{~,;·; . ,. ..•~, , .•. .... r . '.- .." - I
~~
I.. ,,":ii"•.
~1,.' ' .....-
. '
- •• '.~'_.'_.- . __ •.•. "-".~." .,-•.•.•.• '.~ .• " - • . , . - - - - - . - ... - - . - - -I - - _ .._ . -
_ •• ' - ' - '. • •_

i,~~;*::~i·Un.~~stema.~.defini~O',Go~:ente se, ~er o?~i l~ttural ..un.~ ?P:U. e.m- grad~ eli rice~ere
~~l :irJ1.~·~~t~:':se~~,(~t"fU'l~lma copla agglOrnata del datl, mdlpenft~m§jiI~tedal :pr.ocessore che 11 ha \
l 'lm:U{~ 'prodot'ti;('Ii p~oblema.deUa coeren~a n~ce.dal fattfo'cntnrdato.puo..trovarsi in piu di
'~"'~i;" una cache ed e conseguente a tre SltuazlOnt [DS88]:
r!
IT
d; i'~~~,,·,.·1
" ·IM~~'!~!'l··"· 1
t '.",,:i;:'::'\'
d" . .1..'"
..
d"'" ,. \'. '" \L, u~"., ..., .~ .. ,.(I ,,'.
.J . ,. ',... •

~'. ,e:~ft."'W-f,;;::. a c~n ~ 1VISIOI}~ . el da~li ,


'L
-~W
'~r~1"'" (J"':\(J \'J'
~.!i''''''.' .. ,
'• .•• ; .. ,.-,,'.:,

_'I.~-~~/' "bl""'h"~~""'iorii
" •. '
,.,
"',,' ')': .... ".:.~;. .',
" . ' .'
.
""1"';"~"
. ..• " '"
: -'\1. ·Hi'PI ... ",,:,.;:,,1'-" ,.'1.' ,~'u.,r;
'.
:,,>., .::. ,":' "Hl~"':
.' .
,;~
.- ).
.'~~~
.\',r-"
.''~~

J~?
I€.~. ":i:fI~" Ill; ,.·P. ~'I'~"'" III ,. I,
l~'I~ '. ' . . !",.'! ,. ,;
,~~_' I:; :;\·.'~J"·l;'i:~'·";·"h·"":':'·':
f ...
'1ll!?~.~" ·1·
'!',
"', " ,
.' ... '
di'f/(j: . :1:".".'· .J:,"');:.., : ''''.;::.
"·'):'.(:.:1·· ',j •. ,.. ':I,' .:•. : ....•" .. :,'
' : " " " ' , ' : \ . : ' . " . , •. ,:; ""~"'I"",.,·,'.,""l /
c) mlgIiaZ10n1 dl proE:essl..... ;/ '.:.': ·r·,' 'I, ',.' '01 ,':" iI;,' ":',,:, '.":"':; ",.,,',':"!." L·' "."~!'i::-,
·1 ,~'.
,,:
.';1""" .. '.n."i·:';·"!

.
. \
"fjj , ,.<' .~
~,,'
J .
~'"l1, ~ ~.~,R;' .
I~~.~~;;;/ Le tre situazioni possono essere analizzate considerando un sistema composto di
;:,*',; ~~~\:, d~e soli proces~ori. con l~ loro cache l?c3:li, che condi~dono la. ~em~ri~ principale. •
ji;~,",
.!.~~,
.,f1~~i
",;"ii\~.
~:ii~;/',: Stano P t e P2 1 proe-esson e :x: una vanabile contenuta Ln memOrta pnnclpale e nelle
rnt~~l;.",·', ~ue ~ache. Assumiamo che la con~izi?ne iniziale sia coerente, come quella illustrata
:~')1.'y;.~ m Fl~ra 7.13 1, 9le p'ren¢.ere~o
,~~~~~.>,. ":'i "".~"'" ):1' ..;;1:,;;,).,
a n~enmento.... iilr,~",,~
, , ' __ ..... ::. • , " . (," .': 1..
'. .,,,.......~·,;~(n,· ·1<.;z .'.i.~\:.:~.:
,., ,.
.:.)(;'.'
I.
,f.~~'

';"Al~i 1~~ff.?X1,·';" \.:. "';; '.; :/ :.;. "'.; ;:"':"j, ,,' "if ... :,::', ,,':, ..... ' . ',' ,'. .'

]
,;,':,·,'1' " >lIt· .','
i~'t~~. ~~'·Wi:"'l:~~: :'
[
,'·20 I Al~ta',26sa: sarro" sisteini" m~sivamente;par~lieii;;'TW "qiiaii fa 'r~t}e "eli; int'er~bn!:iii3Si6rie~' ~:'piij .
);i ~J:~!M'!rIl" ,
",',,';-.~::o:.}CI!::>. ' . complessa:
.1;;\\;',"1 i: .•j": ,'::'·.dl i;'··. '·'i:·,fl}:\,,:·~I~. :.,.i' .. .\11 ':'·,Hl'r, ~:(.,u :>:,/
,;".:r) :1!",/;::
'll~iI;[)l
, .i-.lii
I"~"il&.
'!:~ .If I~ ,,,~~'.
.":
,,,

r"
".
"'~'

I Capitola 7
314 "",
'·t!.
~Itl\
~'''
ll~'I
.:':.'
i,'l.·
'J l.
'~.
,,'Co

l
II .
,
''''
,-~.
~.
P, P, ~.;
"\
,,·~

'.',
I"
j-"~' 1;!)
.' .!1:~.\ """
I
",

':'J,~i' I:~~\ .
X-14 X-14 ".,~

,~. ;"

'.';:;X~
"'I'~ ~
I I " "',' ....'
!'. II
.. ';"fJ 'of1
I
\ X~14
,'·yi'.. I,"
, ";\?li,',
" ••,
~
i,'" >
"'I-j'
'~'l'
·:,l
",,._
'...
~~,
"'"i'T l\Y;
~ "
Figura 7.13 Situazione inizia.le: ambedue i processori hanna caricato in cache la variabi1e ii<
x e c'e coerenza sia tra liveUi di memoria adiacenti (cache-memoril'lt prindpaIe) sia. tr:~ Ie due .:'!I\' ~!
cache. . . ,""", "
,
'._h •••

,.:;~i~',.; ··i
.'.;,~,,,, 1j'
"1'':'01 '.''
,':;::1.i'~", :W
.,.,L't' J'
Condivisione dei dati Suppaniamo ora che) a partire dal1a situazione coerente """~ ".', "'
)"
( di Figura 7.13, PI aggiorni la variabile x assegnando1e il valore 18. A seconda della .~i.,l..
., ,'~~.,.' /'
·I!i
modalita di gestione si ~anno Ie situazioni incoerenti di Figura 7.14 "~ j
"
'~""';;i'
~, '
,,:.;p: ··
',,:,,~~ \ .'
,;;,,--" ~'
,I:;;.::.~
"!",
:r
~"
:It" .~
:'I~'!"
.~.
,,
1~
,"." ,
P, P, P, <"
P,
'."'.'" ..
.'~ ...rr
'.J'"
," 't!
'. " ..;I.~.

.. f
,~,
'I
'i
~
~

• I '~.~"'
,

J X~IB X-14 X=lB X=14 ,~,


't,U
I I I I
:
I "~
"II
I X-IB Memoria
Condivi.sa
X=14 P,
J
..

',
I
I~

a) Write-through b) Write-back
( Figura 7.14 Situazione dopo che PI ha aggiornato. il valore della variabile:z;. Ne1 primo
,.
~: '
"

caso, essendo 1a memoria principale immediatamente aggiornata assieme aHa. cache locale
di PI, l'incoerenza sussiste solamente nello stesso liveUo gerarchico di memoria, cioe tra

I

Ie cache. Ne1 secondo Carol I'incoerenza sussiste anche tra livelli adiacenti eli memoria, in ;:
quanto 1a memoria principale non contiene la versione aggiornata di tutte Ie variabili. '

,
;

I
Operazioni di ingresso/uscita Si produce incoerenza anche quando un dispositi-
vo eli I/O carica un valore nella memoria principal.e, oppure quando preleva dal1a me-
moria principale e 1a politica di scrittura e di tipo write-back e 1a cache ha aggiornato,
rna non capiato un blocce linea, La situazione e schematizzata in Figura 7.15

\
,~,,,,,

. .n·,..
r,.""'f.":'.~
..'.;~"J··
'1
,. w""
"" , ,,,.
La. memoria. cache 315
\,l';'-' 1
''Ii" "
I~i~·,r., "
'ry'!,l';
· ...'II):,
.,;'-;:~,,'.
.<"" ,','
Co"'.
_~ ..;..

'';~'
P, CPU P, P, CPU P,
.
.? ..','~ ';
;."f:;. .... I
.." ,','
~'j."h

"""" X'="14 Cache X~18 Cache X=14


)":':'~';
,.~.";
, X=14
"·'1";.',0" ",

.\~''''f,,:'''
....
\
"~\;I"':
I
....' I" I I T
~ ..:.'

'I ...1
~'. .. X~6
!d, moria X=14 !d, moria
1.~.,"':, lOP Co ndivisa lOP Co ndivi9fl
"'"
':;';'~~': .:.
,l·'~
_ •.••.':,'.
'"
. ~:.,.",'
,.~Ii't:,
;'!;.'".~, 'a) Scrittura in memoria centrale b) Leltura da parte di IOP di dato
", ....'. :
<il~r:,;:'!" da parle di lOP modificalo da P1 (wrile-back)
!!(;t~j, ,. Figura 7,15 ]ncoerenza dovuta. a operazioni di I/O. Nel caso di scrittura. in memoria cen-
":It,.•,
...-',. ' ....

trale da parte di lOP (assegnamento a. x del valore 6) si verifica incoerenza tra i livelli
i~~ '.~ '(-t :~:
gerarchici. Nel caso b) - 130 politica di gestione e write-back - Pi ha modificato :z;, e lOP
J '
'l.l.,,~li.1J~,
'l~. ,.;", ..'
W&~J:~~\: . : preleva un date obsoleto,
'''''~:'''''' ,
'~'l·'·'-I;".'"
"1"''''",
'~:~t~'~· ~
ir.:·',,!~,'
j'.'.'·r,;c-..
l· ..
~:.i..' . .•
·\.r·, "',"
't\.",\<-,; .
'''''\".".
r<",'""", ' .. Migrazione dei processi Nei sistemi a multiprocessore i processi vengono spesso
"'-l::"',-'.
~.,,'~
~1'~"hM;";_
:~- £atti migrare al ~ne di bilanciare it carico di 1avoro del sistema. Dalla migrazione pUG
,~, ,.. ,."
,~,ll"'"
<"",''''
'.' '. ,nascere incoerenza, come illustrato in Figura 7.16 per il case della scrittura differita
"'~.. ,r, '"
"'l';j.,,\:.... i:~' 'e in Figura 7.17 per il case della scrittura immediata.
'I~~~" "ll:"<,'"..' '
~.':.,'.".,'.'
'I"\1
~""'~

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

~~.:.j~:~~l~~:~.:. :.
. ."'.,
,t" :\;\' ",-
UI'~~" "
:;;'''''''I't'''
1fi ;c/r'r~.. .
"~ 'l;lli l" , A P, P, P, CPU A P,
"~'l"'"
I~, "(', ,l' t· ,.
PI ~'~!:!<'.
T
,~ !.'.. ,;.
Jj:·.l.!-,:":Ioi •
I
... ~ "j,,~'';' .' ,

Cache
',i!l.;·""", Cache
,'" ..,:~.
~ ~1~~!;: '.' X~IB X=18 X=L4
1~1) ."
r 'i~. ,
. ,", .
..... 1•• ,~!,
, ,
I I I I
'-,"~"
:' I ,hI"
"l~.' ,t;~,~,
,. ,.
, . I I
.•'ij"~",,,
'~,·,·I;-;;l,.', '

iie,"'1"'"
~

't ....
'~J"""

.. ,".' .• ,
X-14 X~14 Memoria
Condivisa
~-'""'"
s""") ,..
.' -,.'~
<
;. ~:?:~~
:~~:~"" .
'rJ""·.... ~ '., :a) Siluazione iniziale: it processo A b) n processo A e migr·ato su P2
I..~."·...
•• , "i~,\' . . su P1 ha modificato X nella cui cache non c'i) X
,~. :y:; ~'t':, ' '
; !~\(~t
....'. ,~"i:., ,~',
~;."'.:p.::'
, Figura 7.16 Incoerenza per migrazione dei processi con politica write-back. A siuistra il
~ ::";,.i'~"
processo Ache esegue su PI ha aggiornato 130 cache (ma non e ~tata aggioniata 1a memoria
a~'"' ', ..
"l""~1'" .'
'>I:~" " ",, centrale), Successivamente il processo A si sposta su P~ e l~gge la variabile x che non si
~

....
'.3',ft-·"·· .
.....
".. .
I'. ~ (u
-~
~,,~.

trova nella cache di questa secondo processore. La. lettura avviene dalla memoria centrale
,'Ito".': '''''('<'- .,
~,i!':~l
::.. the pero contiene un valore obsoleto.
-".' .,.
,:r~~',:;r:

!'
1i't~t'~~'"
•• ".J-' ,"
,
, 1 "l'~"I'
.,',1".1•- ,. ' .
. '"
.I ·ll!.;':;;,,,,~'"
:'~"'~'
,,' ....'
','. ,

'~:~'I:~f~~.
,~ .' ' ~i\!-l
", lri?-,.'·' ,
'~'
: J;,,'-'"
316 Capitolo ,7.-" ';" ,:,1 :f.
!T
"'!
'~
"
'
·i'l,
A
PI'·' CPU .. ,'j P,,
,
Pi CPU :'iliA Pa: • :~
" ~f~
r-L, ~ I I 't
X~lIl; I ,: j:a,cb,e... ,'., X-l~.,[ ,'.' . x=rB 'I., e,cache",,·I·.. X=14 J. ,." , i~
.
?\
r ~ ,.,
..... u.__ .' ._.' .... - -_ .. ", ... -.--
'...
--; .. '... -, .. ~:
.... ........,
,~
.1,. .._ .'., .J . • •, _.,

"".-,:.''; ,.' ': ! ill r.X X- 18


Memoria .! .".,' :"1,'.1.' ,:-;:"'18,,
. -.,.
Memoria
;i
'I
.,.,.,;'.
.. ' . . . Con~Vistl; i.'' '. dr.-..:···" Condivisa)
, \
,
a) Situ~zione iniziale: il processo A
._. - ., "-
I
~
~
,.

I
Y
, ",,!
-::. '.Il" ", I .;:,
:':""~ .,I
""I"l"·':f~.>~{~1, :
.. . ;"",~" '~, '..
7-5. 2 Protocolh per 11 mantenlmento della coerenza ,:~,~:t ':I
:.'i~l';; '*
. -. . '''l''c'c'''''l
Ime€caIiisrni the cOhBehtbl:10 "dr,manteh-etEda coerenza-?ond chi:aIIlati prot0t'ollqGT9l~)l '::';'~~'i~
di ·coeteii2a;:delle· ;cathe,':' I.""; !"~ ':!:' ::.:1 ill'.:',';:': t : i ::.; "~i· '.',::'! i .: !,; .. , i.; i,. ""1: "1::~: ~ 'j ~~d' ~.~~~"
:.,>
" " : ;I~ prilii-i' ptmocdllii sohb" stafi 'rl:lat.izzati!tn "hdrowarei -~'ru d:Ur~tentl(~i :§l"e' :ori~itta:t'i ..~'~~
anche verso soluzioni software, ,:, A:iiaJisl!i·Spetirli~ntalf'rra.n:nb\ "trlbStrato·"cne··lit! ~o'rna ,;;.~~~~ .
~i un prot?collo dipen~e
dalle. caratteristiche del sistema. Consegu~nt~m~nt~, ~ia ~g~'
1 protocolh hardware Sla quelh software possono presentare prestazlOnl mlghon a:'~~~'Jii
seconda del carico di lavore, \?i~"i.
,
. .'.
NellamaggIorpartedelprotocolsoware,e
II' ft I
eC1St0n1;nguar0
d .. '.'
I .
eazlom
.et~··
lcoe·'·,·"ll
d 'ed',
: . .' , II" . I d " ! ' .,.,,/ ~
renz~ s?np ~1ese Syaplcam:e~t;e:es~ basano sul lDserunen~q ne pr.ogqgnm~: 1. Istr.,~,ZlOm '~,("~t~ ,

~~~~I~~~~tJ1:,~:::~;I~e~~t~e:~:s~~~~~:::d0::r:.~~~n;r~;~~~~ii::~~~lfi·
warelel~~~o },~i;f;?:nuI¥c~l~_~~ tra processon, nducendo cOS;~L,~.~fffi~O,.,/,~.,~~anto:\~~~;1
mant~~~~b per~anente~~nte'l~ coerenza ~~evenenF~~e~e Fa.use. ; - _.~ j ..i:~~~
In: geoer81e , 1 protocolli SOftware sono pm semphcl da realizzare e , sebb~tie molt. <'iJ:~~
··--·_'-_·'t·e... .
.... ~ee li~·~
d1 essl necessl 1;110 ape hd
....· Lsuppo!
e U-l un . - .._'-'" . ··eI-e·,·-o·'·\·" '_"_.e"'=e" ' .
ee"l·~·-
~o ar ware , a comp esst a
<"~
1, dJ.e suppo! ~o t: so- :~,":~
litanJ,~nt•.mdlto iiiii\9re della logic. richiest. dai pr.otocoUi escl\iSivamente hardware"~:~1

~:~~::~~i~~~e~r?c~~fi~:~z~~:ein~:tt~::t~:'n~~~~~:~f~~~~~e~~na~~~~~~~~~"e~~~
[DTAS90].;",e;:.etoefpo$nbll~· It n~merojd.el.:PDqCf!S~?r1~',se~a,.do~er
8.u:r;nebtare :~~ "rriod\fi: ' :'
care drasticamente·u.:prGtoctIillo;. cosa che mvece e molto pm~,diffici:le ,nel ,protocolh --;.21~"H.
ar.-:l :::u: . , . ' . " ", ,"'-i ,.',.rf~l!l~
h
" . l-lw~:e ... ,,' .. ' .. ' :'1, <";:1' , 0;::' ,~'" J " " l r.'", ,,::,.t~' '),X . ;'.i'~ !~.;". :.". :'" . " ~., '.'·W;,l' • '-:?t-m.~.
.:';:·.d~e! _C?~tOOI: i\pl'otocolh ~ar.d,"":,,are'~ese~~a~'O'l-l v.~tag,glO,dl-n~.'r.lchle.ct.er~~!~~n~ ;::':&I·~~t
:es~_~n.~ab~~.t~~.al.~~bgr:am:n~.to:~je., ~ ~compl.lator.e:· ·~·~~tr~l.. g~~tl~,~~~;~mlg:~~(m. p.~.~~ -::::1' "ftii
st'azlOhl soprattutto -per·slsterm·con·grande'quant1Ui dl'datl candlvls1 , perche trattano ""':;;"~
l

1a coere~za dinamicamente, riconoscendo in tempo t'e'aIe' Ie tbi!'diiioni"di' violaZ"idne::J.,,: .<:~~


, . . , . . .~, ..,
Nel segUlto CI occuperemo escluSlvamente del protocolh hardware. QUestl pos- :,"'~1;;;
sono essere raggruppati secondo due classi: (a) protocolli basati su un catalogo (0 ·:~.)\i'~;itiiJ
' '7~:,:,
directory) .1 e () b protocoII1 snoopy. "<,,~j1Jr,"
"~"'
, . ,\,
:T,::'s~j :'-"
. r ,
e,I," .

1
;<" .';
-v'··
.w -
,1>."
,.:
.~.r-:~:

j~~1~ :.:,"
_J~i¢.';':;: La memoiia:cacb:e".' 31'·7'
.;~!1~~.;t.
Tl'""",,,,.],,'." > ; ••

.
!l!!i"::~';-\:'
~ ;,._~'"
_;j,c:,." ••
i:t"....,,C.,
,
.'
'f,1"~'<'
i'II,,~),":,..
.
,'~f~1:;J\.'_: 'Prolaco Iii ,asatl
b ' su .un c.a . t awgo' Un cataI 0go' . di qu. ali. da;...'1" sono In
"tlene"tracoa' e
.' - . 1
~(~fr:,,' t; "quali,cache [(i;F:901~ ·Per ciascuna linea catalogata.sr tiene·memoda del. suo 'stato:
~~!;"i;l~r. . ;-U1~'(se! ~·o m> valiqa;: se e' stata modificata, Q'mrecc.}. :n eatal0ga eunicG;' m~·v.iene)
t3~t~~/: . . . ~i ,;:fnonriaUnenteTealizzato,iri.fotrila dishibuita) rn!modo cheiIlichieste di.informazionL'
~;:4tf0\
.;·"l"l;~l:
,.,:;i~diverse siano indirizzaie'amemor,ie diversendum:indo cosl-Lcorifiittr; Intbgni 'caso,
It" I"" - I' ...
I
"!i", ,1Iinlor-rnazl0oe, re a. rva a.UDa-. mea Vlene' mantenuta' ill 'una so a pOS1Z10ne_ '
£ •
\~!~-:k~<', : .,1.
:~:~t.:~,,';' Protocolli'dl questa ti:po'son6 USa.fJ prefetibilriiente per slste'irii cori 'tin~elevafo:nu~'
~~4~<'::· mero di processori, quando e impossibile che questi possano condividere un'unico 1
i~',~~?~;~: "...:, R~s ,f?~! ~~~~e&uell~a, ~?_SSQ~9 ers:re ~~~~.c~tf .p.it\J~.~eft~~.qH~q?~~i..l~WP~~
.
I~;~~~~i"::' ,r;·.~:.;m+~~I?~~e H:; n;u~e~p ,9~1 P~o.C~~O~I_ {~~<¥,~~~~~~ .4~J ~.~s~e~~.)ln ," i .; .. " I:. :i,. 'I \ j,
~/:li$::.~.:.'" .'- tit .Le 'infor-maz.ioo.i rneces$arie aJ .controllo. della,cacbe ·SP00. proporzipnali al .. numero'.
~~li"~01""\':' ," ' . li
,~~ •• ':'I::.~."''',
.,,~....f.~ 'i: ~ ~ . T.,."d1:
, Dee . IIa.I)1emona:
.nre!3ent1:ne
. Yo .. '.
. pnnC1pa
. . 'e;.. I '. . " . .-:\ .' 'Ill ".". . .
.
.,":''- . . ,: .,.: I
II~~~\::.::'-'PtdtdCO'n~ s~hq~~y.~e'~~~9~~i.,~,i?:~,~.:~.l;l~.. y~n~~;no"'~h~r~':'i~ !i~fw.·~\~ik~>~~,:; 8jt:~~9:
Y!fii.lJ:!~:;," - ... (non l.lm\~ate a1 bIt d.l vahd.lt~) necessape f!.l pro~o<,:ollo ~tess<?, C,a.Clle e la.m~mo-
I~t~.~~i,:~"~ :~,':~~·a.".c:ep.t'~,ale.·~i ibj~ri?'~~l ~e9~im? b~s ·~.,le.·tr?~,sa:i:i.?~":~fr.i'~;~?&?b ac,c~si, 1
:~''"W::~.l~L·.· ",;.' laIle' smgole /~'ache! 0 ·aJ.la n'remona centrale' vengono' tlpbrtad!1 ~U} ~.USi s.t~~: . r
~2!~~~::;~ '." ':':l':I;i:elati,vi 'controllori, '·o~~e~vano.contiTlti~a:rne·nte· {ficc-a.~o .·il rl~o' ~elr }~..h:aJis~i(j~f.
~:~w~;.::,' :~ ;!'cne' aVv'~n.to[lo' 'sui bus·'e, se verific:ano: C?odiiioiii 'c~e ,p,~rtiulo,· ~Wincb'er~~7'
'sl
~~,jJ.(;,ri'" ." [(1".'(' iza~' ;effe'ttu'atlO' le aiiop,f richieste :dal protocolIO" (per etkiil'pib'in'valiaandd~i l 'loto'
j2m,lii.,·- "'-'t'''''' : ··N'···"·o····!.."L,.·'il···· ., d" ,. . :,., "~" .... ",. ·"·,·,·"r"····,',,-~.'··,,,
I
~:i:,:·tt!F(":,:' -..' .'. ,'c;:ontenuto/;'in rno o.,,"J'Ie 'Slstema I memona re~trcoerente. . .....' ,. ' '. ..
~'~~\:.:.,j::';~.' I~: 'q~~'sii' ,~~ot~~olli)e. f~fQrm.;z.ipni n~cess~ie 'p~r'~g~ktir~ .'1~·,.cq~~~Qz~a:;!~:q~~·:
~~£j.:':.l;:~'p~op,or~\Qtl'aJi)al p~ro.~~o.' qi ~~~e neUe ~c.k,1e~ ". .", '.. r<;': ,,~~',~ ,..' ';. "~; '. "~'.,, I
"....: ....'., ..."",~.--~' ,"" :,' '.: ..... " " ::'.. :.. :.,.::, ..,.' .",":, .".....,:,~,\:' ." ..". ~ : ~
';lJi:~.>/'-.~~,:.;~:J:lr?~~o~l~'¥.bOO~y'-~~no~·,dl~~~.t~tl"~<? ,~t~~~d'~':r.~ . s!~~~· ,a.·s~~?fo 'l)y-s/ '~,~~: . I
J~~~~i;f;'i' ..l)':~';"

A,!,~~(\:~~t.:l~.q~~f,~ot~t~.d~~~.m~c~~e com~ercl~h. .n:~ ~ _~c~pr?te~.~?~1 d.en~ ult~e


~~1~~,< g,~~::i~lOn~ ,1~cIu,dsmo.~r.oto.t~l~,.~n6?~y per i1: ,m.. ~~~t~~·:.~~ . Inblt.r~
.
~?rO ~Bl~go I
I'~\~'
~I:;'~";:""N"ll":
,vengo.no''t"h"
pure prodotti dlSpOSltlV1"""
',,'.,,',," II
l '
per man\ellllIlento (Ielle
. ··e"' ..
'eVen~uii!i .. \ " " " 1 '
dl·'···o"lli··!··'·,
cadie esterne. I
,,:;,.,~:~:~-.,!,' e a'paxe'c eseb'Uecl'occuperemoescuslvath nte prot ct> ·sn·oopy:'·:·' " "
,iil~*i:'~;\f" :(';;':~'I' .. ""! ' .:.: i i '. 1 '. . ' 1<:. . I,.' . !.;.:.,. 1 .; ; . ; •.: I, ." .. (, . ;'.! .,:, . I > .. ! ". " .:

·r;ilt'~~ntieh~.J\' 'e·~~~i~i~~~a". So~t~zi~';'ent~. i,'~.~t~~~w"~ ~~~~~~:~~~~q~,; ~~,d\;


1 ,?:~:iM~:~uested~e pohtlche: (a~ scnttur~ a mvahdazlOne (wnte-mvahdate); e (b) scnttura a 1
,jJ-~~if.';:',~rOpagazlOne.delle m~dlfiche (wnte-update).
'::';;.~ ~.7i,:~." ~.u ....".r., ,,' ....:-:'
t,",e.*, SCTlttura amvalidazlOoe
'"
Quando una CPU senve fdeRa PfopHa e'ilclI'e ·pnVllta·I Ie
.' ." _I'''' '1'" .- •

i>'~:I(!L~:;:':.'r
~~4'i"'i'" artre cache che, leggendo ~ul bus 1 mdmzzo del dato corso di modifica, scoprono
I' •• •
In
. ,
).
~)!~.~~~~~;::t:n;;::::;:~:i:::d;::~~~~:~~~=~~:~~;;:~~~~~.l::V~~~~~d:
~r;I.',~::, ~·~c.~~·
:' ~~'.'~lt~'~ ~~c~e
":.,:LJ 'poss~edo~d ~11~' ,cl1p):a pq\rit~~'aI. W.tq ·ir{~ern.9.
ptiyat?'1 'qte',ne'
~~,~~i:' '~~~,>I".,la;ggi'or'nanc;~¢9P·ir~r9r~.1Ch:e ~t~'p,aS~~&~ s,tU ~tl"s,:' ,," "."".J'~. :;; . '. /:.!I~ '.,::: :"1' 1
"-':\"i·1,,'t)1,:.,~ ';,,,,, . .11' . . '" .. ··!,···.·J'l·( " " " , . ., j,.! .', . . . . ,,,, ,hI.' ,·l,:".~ '·'!l'.'l~.;.t.' ~,I.· ·h(,'::·.,.!I' ..
., 'i~f't"-;:~.:, """ ... ll p'rQtoc.o\1o,,~propagaziope.de,ll,a 5crit:tfura,.co~eAte .sQlita.iiieD.~e ,.di segn~e..L
, '~lllt.;\,.:c,,( .. ~' :blo'cchi 'come condivisi '0' privati' (iocaUL in ~odo the I~ c~e'~i~ c~~~orti 'c~~e'
i ;~~~Y:~~-:"
l,:+h:~~"J .. I e
'una cache write-through per i dati condivisi (propa azione alle altre cache\ e come

~t:':~:';~~II~'\':US'~~ c:t :
<. • . • •

~h~~,el'~Ptl.~kl~·t~~:' ~:.d~:~i"~~~ka~al'I·: ~:~h~:/


•• .~ ',': _.- • - - _ . ' - ••• ' ••• _- _.. ZL . ,:..
...,;:. ~'I'~ :~~;'~:" .1 ~:;~,~::':!.~~,~: "':i:.':.:::~~~:~j ~~ ~I~'il": .
I
tr:~r.;""'" 1 Cal-'I~Ce C e a pOllta wn~e-[)~ ve ..a 'trio to',pesil-P ~:SP (:1 ~qnQ' ,l,I'ff"uenti'
; ,'j<,~'~~''':''. . ' 1 .'. ,:. ' " ,,,. " "1:" " , "." ., ;I.P'IJ~" ')1 ':
;~~~~.~'<. .~~~O~rt;41}~ntl (S;1,.1~l:~P~.,.l qp~.9::jt,o ,C,Of! 1?-e~ C,~9:~P.~~'R(~C~~~I~~V~\l~ ~,q~~~~J.ra
'I~;f,.·i~'·':
"'i(~.n~·''!. \: '.
'~'.~.
,\I.
r~:~',i:t,::;'-
to"
Ii>
d1ffenta e.vantagglOsa proprIO ne!)(}as0 dl.frequentl agglOI:Ilamentl);:·",')'-"::':~;:';"");J;,
' I·
318 Capitola 7 -~~

I .Si Dati che le tecnich~ preced~nti presuppongono che quando una cache viene
'l¥
~
'~:;
I:

;,:
'. modifi~ata. sul bus co~p8J.ono Ie informazioni relative27 e che tutte Ie cache (e la i.:
, metn:0n~ centrale) mom~orizzinoco~tinuamente il bus in modo da pater intraprendere r~J
\ Ie ~lom d~vut~. ~ partlcolare, per 11 caso dell'invalidazione con gestione delle cache a :.t
scnttura diffenta il processore ebe tentasse di leggere la variab'lle I'n co
.
d" d"fi
rso 1 rna 1 ca
~'i
l
d eve essere mterdetto momentaneamente dalPeseguire la I tt fi ch 1 ach ' ·'I
contenente i valori aggiornati non sia stata copiata in mer:or~:~~nt~~:. e ace"" ," ~J
',':!':'.' ~~;
"~':!
';"i r.
\!.lr
c,. ~n: ':~'
Efficienza In termini di efficienza un protocollo a invalidazione e' dl" norma superl"o-' ,:';!;;:i~ :~:
.'''' '!!I:~!' . "'
reI i~ quanta dop~ l'invalidazione sono eliminati i ~turi accessi per gli aggiornamenti ··:t~t[lI ,~
\ locali. AI contrano l con un protocollo a propagazlOne delle rnodifiche l tutte Ie volte {iaf.~': li~
che la cache viene modificata si ha.un a~,sso al bus,. per propagare la modifica a :l~~V~' :'
tutt~ Ie cach~ ebe ne hanno una capla. Clb e del tutta lllutile se i dati non verranno >.i~i ,~
usatl s~cces~lvamente~ppur: se ~no ~utt~ ~ operazio~ intermedie. :. ~::J;.~' ~W
. . Cepero una .sp~~al~ ~ltuazl?ne l~ CUI I p~ecede~tl argomenti perdono validita"':"~"P~B ~
E il easo d~lle vanablli d~ smerolllzzazlOne. A tltolo dl esempio si pub considerare un ~ . ::,;~, ~
semaforo d.i mutua escluslOne per l'accesso a una comune area dati n semalo . .,' ,A'li' :i
. . . . ro Vlene . '~"!o"" ";
a~tuato ~ramIte ~a vanabile comune _ chiamiamola mutex _ che n processi su n<:,':~g~· r ~~
different! processon leggono e modifiean028. Con il meceanismo a invalidazione , ogni r.':;~~~;fj ,~
\ vo~ta ~~ un proc~ ~tra 0 esce dalla se~ione eritica aggiorna 1a variabile IDutex e. ':.:1;''So~. ;
qwneli SI ba la trllBIlllSSlOne del comando eli invalidazione alle altre cache (della linea3~illI ~
~ontenen~~utex~. Co.nseguentemente i processi ?he sugli- altri n -1 processori sono ~'.,:~~. ~
m fase dl S~Cr?D1ZZ~O~e devono nuovamen~e ~leari.ca:e mut~x. Quando l'n-esirno .'.i)(~v· ~
proeessore ncluede 1 agglornamento della vanabile di si~~romzzazione. deve eonten--' ?!.~,
dere il ~USI nel cas~ peggiore, con n _ 2 pro.cesso~i, e ~l JU,mero dei transiti suI bus.:-':iW~ '
cresce crrca come n . In altre parole la teclllca a IDvahdazlOne presenta un pessimo :,;'*"2" ~'
I eo~portamento in pr-esenza di variabili di sincronizzazione poiche fo'rza i processori 3' :':'<1~" ~
chiedere o~ volta la variabile condivisa, con eonseguente 'tendenza ~ saturare it bus...::.,~l\i. ~
:"-1 contrarl~ u~ p~otocollo a p~opagazio~e delle rnod?iche e rnigliore in questo CasO, .'::;;1~: h ~
- m .qu~t~ distn~wsce autom~ticamente 11 valore agglOrnato della variabile, evitando," :l,H:, .
I qwndi gil acCesS1 alla memona centrale. . :·;::t.,r
./{' .
:":,~,~,, '
'.-i-~:~;,
( 7.5.3 Protocolli snoopy . :,):~J'. '
. . . . .. .":~~~
''''-',
ESlston~ van protocolli snoopy differenzlatl tra lora dalla politica di scrittura e da ',>J~~
quella dr mantenimento della coerenza. .,l~:~~
. . ~essu~a d~lle due politiche permette di ottimizz~e le pre~taz~oni per '. t~tti i '~,l~® l
I tIPl dl canco eli lavoro ed e per questa che sona statl propostl del protocolh ehe .. ".J;.41,l>!i j
co~binano sia Paggiornamento ~e llinvalidazione i,n modo opportun~: essi iniziano ; :;~~.
senvendo e propagando Ie modifiche, rna quando e osservata 0 prevlsta una lunga "::i~ "
I. 21 . ' , .
:l~"
".:~~'
~aturalmente I controllor! delle cache e del bus hanna un fUDzlonamento coordina.to: poiche la '::-i~;:1W
modlfica della cache camporta 1a. presentazione dell'informazione sui bus, solo una cache alia volta. .>I~q~1
- pub effettuare un cido di scrittura, ~~~f,:"
I sincronizz~ion. "" _"'........
'" d" 1
a omlCl .. e e operazlonl I ettura scnttura.
'''.,i~:'
28S pet ta alla sottostante base hardware - il repertorio di istruzioni - e aile primitive di ';',::-\,
""ftw••• g".n',"r. I' t '"t' d 11' I' ,,,Yo
.
",."
,

\
,~@) .. ,
'~~.;''
I; ".','
H;i."" La memoria cache 319
;h .
~':;;" .
¥.fi' ~'-.' ,.
~f.·;:;r ,
;,'i"<;!:::'"''
"
:'/:'l>;l.:··

:~l~;l~\' :': . .. . . , .. ., .
:l:;;1.,~,:." sequenza ~l scr~ttu~e lacah, Vlene .s~e~lto u~ segnale cli. lUvabd,azlOne per. la. Imea. L~
J~~t,:,'. ,scopo 1?ell mva~dazlone ~ q~ello dl limltare 1.1 numero d~ acCesSl a: bus, ehnllnand~ gl~
1
tf.'~:'}:"' access superflUl, co~e quelh ebe ,segu:o~o scntture locah ~onse~utIve..Queste s~luzlOn~
~.'% ./,
i~~~1\ '
possono essere considerate adattive l ill quanto cercaJlO dl modificare 11 meccaIllsmo dl
d d" d ' t ' I"""
I~~f;L.,',·:' coerenza a secon a el atl osserva 1 per ottenere e prestazlODi ottlme·.
Jii§·;, Pren.deremo in considerazione i seguenti protocolli:
;J:,';" - wnte-through''
.Jl:".,. ,
r.l..tf:"!~:·.
':::~:"':"' - wn'\ e- back:,
:~:~:~:.:..
'I""""'''
- write-once''
~:*?:;.;:. - MESI.
~:'1!";::~:':I"
';'~~~~~,::' . ., ...'. " .
~!+t~:/ ',Protocollo snoopy a lovahdazlOne c?n scnttura Immedlata E il Plu semphce
W]tj/;:' prot?collo S.DOOPY [St~81. ~a coerenza. e ottenuta dalla o~tura 5t~a del~a politica ?i
~~~~(:{. 'ge,stlOn~ wn.te-~rough. moddi.che fatte m cache vengono nportate l.lIlmedlatamente m
~~~~r, memona pnnclp~e. .. ' . .
i~1~,Y~li .. .'. ,In un certo lstante una hnea dl cache pub trovarSI nello stato valido 0 non valida
;1~j,*·fC,. ( d t' d t' . t')
~t~I~'r~;;', quan 0 ~~n lene a 1.000 agglOrna 1. ,. .
~~6·i;.:·":· " " . Tut~l 1 proeeSS?rl e ct:
c~ntengono la vanabl~e possono ~e~gere x dalla propna
;-~fi(\., ~ach~ pnvata se l~ linea e .vall~a. Quando P i. mO~lfica Xl tutti 1 P; ~e conteogono x
~4~itV;" ffivolidano 10 cornspondente Imea, Nel e..o m cw P; debba succesSl\'ilmente leggere
~~'~f;:: x, la.ottl~ne dall~ memona centrale l nportando qUllldi nella propna cache pnvata la
~~;f-':"'" relatIva 11Oe3 v~da. , . . '
,~~r( , . Il passagglo dallo stato non valido allo stato valido 51 ha anche quando un pro-
': m:
'1.~~;~,:;, ces~ore ~e lha la li~ea no?, valida (~ehe non ha affa~to l~ ea i~ eac~e) effett.ua una
'tr:.:b";..~\. scnttura. 10perazlOne Vlene esegwta sulla memona prmClpale, 13 linea agglOrnata
~i~$:~;~,.",,: viene caricata nella relativa cache (write-allocate) e vengono invalidate Ie eventua·
~Iri~j"." li co~i~ nell~ altre each,e. La sehematizz~io,ne del meccanismo, e in Figura 7.18 (la
~;~\;.~g~~"i'.,condlZlOne dl partenza.e quella eoe~ente dl Fl~a 7.13). . '
.~!~~,~;~" ~uesto pr~tocol~o unpone un discr~to ,ca:nco .sul bus special.mente In ?resenza ~l
l
;j',~~~t"-~: ", moltl processon. Se e vero ehe Ie opera.z10111 di scnttura sono relRlvamente rnfrequentl,
.,iJ:L: 'e anche vero che se si hanno piu processori , esse possono portare via una buona
'~1;g;t.· porzio~e ~ella cap~cita.. del bu~. ~oltre ei sono alcune complicazioni rela,tive per
. ,i.f::,~: esemplO 8-1 buffer dl scnttura di CUi sono dotate Ie moderne CPU per veloclzzare Ie
'r:(§.-r.tr;;" pperazioni di scrittura immediata: 1a presenza di queste memorie di transito pone un
",'%<,,"
. :1#:~. . uIt' enore pro blema d"I coerenza.
'::., .f~~;': ,
Il\~~h,' ',
liJ~it:r
j.'.l't;<';i~·
-Protoco~lo sn.oopy a invalidazione con scrittura di~erita In ~uesto ~rotocollo

~~~i~::;
:I.~~~~.:'
.
(Ste88] gb statl del protocollo sono tre: 10 stato non valido (mV) nmane rnalterato
ris,petto. al protocollo precedente mentre queUa valida vierre suddiviso in due stati
chlamat1 RO e RW: .
,.,;?:{:;.~ ,
l~;%;1:r, • RO (read only): 130 copia pub essere solamente letta
~~~.,
iiri.'2~~:'" • RW (read write): la copia pub essere anehe scritta oltre che letta
~·~;~(f; ,
.~"ffljrt".
~Sjl~~~';J:' . a so 1a 1ettura (RO) de 11 a stessa linea possono essere lette localmente dai
Le cople
<~~ir\l::. processon. ch e I
.•~gfi"~.' '
e pOSSledono e sono coerent.. con la, . memona
copla ill . princlpale.
.
:t$i~!r" ....,•..
....'r.o-
''';'''1--;'' •
i!1""~'
~ "~I.
320; Capitolo: 7.."" :
...f
l~.
l
~~,.J
,"WjJ
,
,.
. ,; ...'. .. , .•....
I .oj .;;:, . . • • , . " t·, ·p'~,:i,·,.
"P
, , " R ,.
'. I •. . ; ,; .. ' !t>
I.!".l
• '.1' ,);,." •. ,,: • • , . , •." cp.'" ' • '.a.,. .; •• ~:,;
..." 1.'1"''''
t' .. /1..; \' [; :",:.~.:
'" '"' : , I , '. ,
./. ).,: " '.
," ,::··li.:' 'J , ;\ ~·
,~"
","
r;;', .... 11.,
, ' . " .. '.. ·,i
.•• ,,: ' ""1""~
,. " .. " , 'I-
1;· .. ,.,l·,,:I;~'. I,".;" ' "'.
, .. '. ,
,... f'~'
'
'~~~
U', ·"l~,;··,;:·", .. ll.: i! .:.,·'.... ·H[I;'I ,
, ':i" "1 , ,! 1;,,1:. , ,j; '[;.1.1,: "!. •
.. ',.
'''"
' ..~
.. !,,;!l'f. "J~!l X'"';18, .I:D-val. , , :. J.QY~,: . ' ;!
,l,,'"
..
"c·
, '

" .. r .. ".: '\ . '


,
'\
, ,.
,, '
. ,: .1
' "
,
..
"1,
',' ;',
II "'
"'
\
:. \',
,
'.'". --.\, , t ..
'I
'It.
!:'.I?
.f· ',,, ..
.' ,.p".:
i!-:
11I{
X-18 '11t.
'. . , "~;1
,',',
', ...
,.. , '11~•
," .. ,W
Figura 7.1.8 Protocollo a invalidazione con scrittUX'i\ immediata.. La. cODdizionJ·;a{l~.rtenza.'.;·~:~~! l'!i'
e un sistema. eli memoria coerente con, x = 14 sia neUe cache che in memoria. centrale. La'~: ~~
figura mostra i.1 nsu1ta~o .?ell'aggiornamellto di x da p~e d~ Pl .. La. scritta !lInva!''' sta a. ':~, Iti
itioldar'
l'
e"crre'
,
e":sta:'ta
,
iD:;;aLldat'cH.FHft..ea itdtifen.ente·'i':' '\ ,I.', ,;; I ...':.i f,'d. . ;; ('-t'
., , ,,',
I ' " I' ..i;, '.., n tCJ l ~i, .. "~
I .• ,:,,~ ~T
".';";""l:,~
. .. I"'~;" ;;.,·\'Ji~,,:!\·
.
iJ ",:"
.
i'",: .'." .. ' .: ' .. ;.,.:, ,,,,,,:,,:;,'jv,:~IfJ~~
" ;: .:,,,,~. ' : ~
,
,I, .;11;·;!'::;Il"H;·''''.:~1 11··,,~.. t,·! ...... ,.;~., . ,:1;' ,'I, ,-;1,,\ .;,; ;:.\. '.: :rJ!.u';·i1.'- ~," ,I :i"";I"",'I,".~;~{",

~
, ..' ~"'·l·

Quando un processore (diciamo PI) scrive nella propria cache, la:,linea:ppsSa onellcr:'ii:.~
stat'o RW·"e ,le, alcl'e' copie vengono ·invalidat,e;"LQ stato-RW ,corrispEmde:alla- situaiione '\j~., .
in cui nell'intero sistema esiste un'unica copia 'aggi0Eqat'a :del bio.ceQ;· I!lossedtit.a'·dal\:'::~~
p1'0~eSSptre' the !ha: effettuato· -lao ;sed ttUFa~ S'i oJl(j)ti, che~,aneh:e' tal memor!3.0 centrale ~ :~.1:~, ~
incO,enentel e .quindi' se uno ,qua.!unque ,tra! P'2,j'f~ Ehl leggesse :-x.;da.:::quest'ultiniai.pt'ele-:~ ":St)l I~
verebberoiun !valore 'obsoleto~~" E" I necessaria cnet in .preSenza! 'di;'I;lr1 ,tale 'tentativl!rdf' ~~'.~:;
lettura 1a ;cacihe d.i' Pi)' r'tc\»boS'cendo' c.be viene'1etto'un ;dato· cli· cui: essa 's61a. ha:-Ia- copi·a. .)6rj :
giusta, comandi una transazione di sospensiooe della lettura, copi:la\lirrea di'~ca'che'in: ;:.f;!' ,,
~t
memor,j.a".~ I quindj:.iilasci ;Ia. sospensione, della, lettura da ~parte::.delL'altro~PIo.c~ssbre29. ,.,:';~~~~ ~.
La: rJinea ;~esta ~-ell() ~t~tOI RWi j.~, seguito' a.. ~?etiazionL16cali d~~seri~t'ura'e ,}~ttur-a~';;o:.,~.{~~'
.. ;~IIIDa:gb,"st"atli.RO e,-RW, :la' ~hnea"nel1a.'ca:che; tieL processore',:Pr,passa: nello: ig'1iat(j: :~'!-l-.jf; ~
IN"I" quando uri :altto; processote' (Pi}; m6difica,~il oontenut6' Idella.> propda ~cdpia~;fSe· .·~l~~.'
Pi sostltuisc'e 'ta"propria:;copi,a;; ;13" Unea' ·viene ·prim'a:. copiata. ·in, lnemoria.! centrale ~ '~,\~,_
poi vengono invalidate tu tte Ie! iestanthibpie in l tache;, :DaUa 'cbnaizi0ne l di' linea: i n'On:, >:~~~~.
v.alida' si .paBsa inveoi agli~ stati iRW 'e -RO" rispettivamente:, :QUfihdo· il'"proeessqre Pi ,":"?$.
, .0; Iegge!I ai'linea:.:::1;
scrlve' ' .'11. ,... ,- .:" J! ' ". ,I,
" ,,~, ., ,', ""}" '...
; ... j ''
, , , '" "."",
' i " ..... 1 \,,~..;"'·il·"a.l ; :.,)lU;, ~~:'

".Jl·.l iI!Ja sepaItazione· delln s~ti:)'valido' in -due 'Stati'"distfutifctmsente'di


,
fldurte,U·tfaffic6
. !''\<''
:')~:
su'llbllS: ~ Ii1fattt' le.·eperazioni)fcli ·scnttuta 'e l'etttlr-~ del:iprocessbt~·Pi'~; 'effiittllate ;iteHo: ,.~~~~;
statG;'RW;; "non 'intplicano'.{tin!va;lidaiione ,delle :cop'ie';del bt0'dCO' n'eHe ·altr.e tache3~!Jt·1~:} ..:;~;~
'i!; . ~Da' sclierriati'zz'azrdn~ldel meccani'srno"e-i'ri i , Fi'gu'ra~7j 19; (la' icb'tidiiiohe: ldf ~pittl:Ytl~'N ,.~;;'.
e quella coerente di Figura 7.13) . '.: \,: ,I'."' .-:: i!, hl '1 ,j',Il .. Hi . ,'~' ,; ;',ilH ;:.~.~.
'.'"
,~jJ
, ,U':'

flib"t~ bill b'Ja:;i~~9:~ibiU!- rdji'ti}) J:j "1Jfrit~\~ btic"el:':J: 'Fli1 ~tH6ostO I if~1'19g.~ :e:ra~fN~'
senta"im~ eV~HiZidnk/dei 'i\rbc~d~tlti '1#' 'qlJa!nto' i:omoir&i' 'v'diWig\;id,W \lr8tofciill"":
irWa'lida-ii'one 'diitf..l..'BJwrite:''Uiroug''li'e ..write~ oadt [S.GS:3j;':' .\'.1., I,; 'j:"'."':: ~ ..\(: lJ. '.; 'I'):,li;,n " .:0~T;I'"
V " ' ": ~ ,""
" ..... .,
'r""l~'- ,..,.'
.'..,..
Ne1 protocolio write-once gli stati deUa copia nella cache del pr'6cessore'P?dhiha: ·:~·t
genericalinea sono4, ~~""':'>;'~.:''l:i'''; J·"';~."" ..'i·':, ":'i".';:; ·\·i:.~:!·:·\.'l"~
, 1.:;11; )}!Jl.,';",'
",~i?~
''';;}':~I
I"
29Yale solo la pe'ri~·>MbMer.hi;e·
cEle th' di' entre'I'iA'ee ca:c~~ 'h'ah~~" I~' iTi.J.citi;i~' \~t~\b~ (i'~' ~u~to
<ii 0\vJ
c;aso d~e bit),. n9~. ,~ltr.ettan~o ac~e. p,~r I~ .fUemoria c~~~r.a,lli\ .:,Lo. sta~o., ,de~a lin~a, ~n memoria ··~~r~~,
ceiltrale'Den"1l mcu ·egpholtiO'-etl! II nConosCIU-tti s€lkY·atttavef'SO·'II· protocolio'dl''Cotrent;a.',4.' I .:,j, .•~~I
30n p-dmQrmultiproc·essore·__adiutili;zare questo Itipo ldi ,protocollo 'fu! it: Synapse 'N-filL {""" .";:~~'f·l( I "l:l!'~f!,
, . ,..t,'.'-
"A:il 1;1
,.o':;'~~
~~:'.
~~"~":

..
.....'f;;":·.
-.;J'l:"... ••
.......
1olI:1I'1 '
',7;1',':1'~
,~",,,

'~j! ~.:,.
..
1'1,;11.-,.-'. ..
I
:aih,if/ ' La mem6ria'~e! 321:
f ..... "~'··· •
.i,;.~',,'i' ,_
l~~W. .·:,'
Jt.-"l.;;;,' ~
\
Jh~'il~';'
•. 1 .
..
".,
"~,~"
'
.. ,' ,
I
>"~" .."
"
'.' ... ,...• ': ~.
.ll(i:-.h' ;y-,.. P•
;,;;;~~,,~,'., . c 'u P, P,
·<:rl",· .','
.. ..., .., ... ,
, ..... .I .. , , , .•. ", ; ., .
,

I
"'r':i··I. 1:::." I~" , r!~:. ::~.'·;1

.'.
'
• " ..... , " •.

..~1t;~r;~
,

!i'... . \
,. ,.,.
",1..: .
'... ..
~-
·
,. 0" ",
'1:1,1;-.,',
~r.·n.
,'
. , ...
Ca',he
, X~i8
-
" [NY iNV' .. , ,'.j '.'-:';:" .
,,1,',., ,"
,....~,

, _..." - • ~:.:; "\ • ,.'.)


'

..
,.-<i, ."~ ..",,
','lJ~.. ~
'".....::;.,
.,~, ..

.'V"<!'!'~l.
..
.- '.¥ .J
, :, I,,,, \ ; ,
,. .J _"." , -.
?,',ii~;!'" •.·
:i.i"'1'···
{'i:;>1\,t..'..... '
.::f;!~'.i't;~'
! , ".'. ~
i ,', .._,..
•. '_... .•. , .•_,

;d.··
....
' ..~,,·,.,ilnvaL
-
, .'
. '._' .• ,
Metnona:
CondVlSl1
i·'
',....
.. ,_,.1, .. J.... ,~;;:
,,, .. .,,..\,v . ".,.,'
.'
. .. ,:"J 1
~1i'>lI;""
•••• O-F' .,.
, , ,I
'/:;,,' ~'-"
'
. . ' .j.;. , ' .....
W~~~·I',·". 1 .• _ .•••.•••.••~'_. '.'-:-r--' ,_.,"-~ "--.~' ,. "!t··
ilj·::rf!~.~I~;;-:~~~,' ,'g'ura r:-l:9~.,Ptotaconaa ,
'F' ':invalidaztone- con scrittura differita;J·oa·-condiZroue---di-p8.rtell2a: e
'~""" . '
~~l~,l?f-:\ tin sistema. di,JD,etppria: cneretftt ~n,.x = 14 nelle cache e,.ip... .ffi~Wor1a 'cehtt"aJe', con Ie copie
ir.;t?~~'.' in cache. nelLo:,'~~·~o ~O:XB~~~gUta: mostra it risultato d~.lll~QVn~~_~t~~.?:i_ :fda' parte di \
T;~h'{f~iI"i.·· P,'. La lmea nella cach--e-¥di --Pr ~ 'Passata aIlo stato RW.
," .!r,'''~'''~~~
~
..
~·3,"··~. .
:~.I"('{'ili- ~;j!1~; n'~r.·" 'Ora ••·; ,..1 .:-'~ :. :';h~,;·"'1; !:. :~ :tl',:~; i-,;,..,~I.l I :'i'.;.pJ lc; :.1

~~~f.i: <.'~ ~y -l~ copia in c.ache.del blocco non e'coerente con quella contenente 1a versione 1
.~~<' ~: plU agglornata del datI.
~f~~~!i\';VAL -la FOPl"-QaChe;~'sta~':i~tt':,d;<),!a memoria conlil~<cciii"i~ q';ak-~,ooerel'\e,
~~~~~:t·/~::". "e non e st.at.~_~c~r3::'~~di~<~t~.: Ci 'tlOssono esserel.~1h~!alt.;-.~lc<?Pi~.~~~!:e_htf. ' I
:!~~~k,~·/. RES - la...·c~~i~ie ~t~.t~.m9d~ca:~a.~~~~tamente una.; vblta~~~iY?!·~~r~~:ta~~ l;~~a;
,~l~~i~~.iii.~:. ,,:, d.a.lIa me~dtt~ . Ro~dlVI.~~ e:q~m~~~e 'c~ere~te con l~ n;emona ~~nc~'P~~:h~;n~-cOn:­ )
t;~·~.vr;;::,,:,: . . tlene 1a 501~altra'coprao.gglOrnata (il pnmo agglOrnamento'm ~'he' e·t;eallzzato
...-;'\j"l!!'h::
:.-./'f,
' can polrtiCa,,:w~i.ite:th"iQ-uiIi:)~·:··
• ~ •• ·7...· ' ei_".
:..'- ~..._. . ". ~.,._._ .... _.~._- i......',....~-· ....·-·---..
,. -
.. ,~ • • - _ ...,
"~\iW '~J!;,.,>'·7 '." ! :' ... I ~
~'~~!§4t:.mC'~ .•' DRT ..~l~:b~~ia~e s·t=a.iii mJdi6cata pili di una vol-t~~~·,~ri1n~~:i;·kDica. copia con i
o' !

1
1'9,1/~a::~,::.~' ~ati a.ggiornati..?,.nc~~·i~ memor~,a. princi?al~ c.~nti~n.~ ~a ·Copi~·obsol~~a d~ d~~i ,

~ .~.>.' 10 quanta l'aggtbmament0g"della, memona <.tvlflemf'S:ola:mente--:m,·corrlsp-ondenza I


§j'~l#"
~f$.,~' ;:,.((9.~U~ p..rirn~, ~q-i.i!tura Q.~J. plp.cco;.. :. .:', ,.' , : .: '., ..:: .," f: ,'.' . 'll' ".' !. ( . ~ :~. .'\ l ' 1 \J~",;''1
~~>;; ..• , ..."
'(' ,.' ' ~
~:·"""I~~;·!.::. .,. ",\·.il".!"" "., , '
~Jt}l ~,-·,"I:' :'r.·,.!I·· ',:1",'. ~;I" ').. ) : l " '} I·f;")·,,,,~ .s .·'::~·<I.'. ".111 ',: .. ,';;;.~j":~
tttr.~/. n protocollo usa,.una;..p.ol-itic.a.,di,gestione della'11lemori~di!tipo;write4thrf.lugh peL':U \
~.:I~~~imo ag~or~amento, .mentre i 8UCC~5i~ 50~O gestiti. ~on politica write-back. (il.blocco I
',f,r'lytene scntto m memona nella fase di sostltuzlOne se SI trova nella stato DRT). Rispetto
Ji'R:al case precedente, viene ridott", H Iraflitol s~l ,bus,phe, sare\lb~'<fausatPida,i' ton,tinui
~r;t~agglOrnamentl della memQqa~,:. ti',ldea., e·, quella'i:che; ,nnO,( &, un."!solo.~'aggI0tnamento
.~t~~:~~~lh'cqnvi~ne avere in memoria 'pr~cipale l'ultirna copia dei dati, mentre q\lando..sono )
,~I''tJIChiestP'pi:tr~~\eMsl'' MGt 'da~h~'-l~cb.M 'g\~bdve'm~lht!,! p~i'hOii) ~6tigest16Iiar~ :~ebus,
"l:-.iit~fil'Jiirot'liat~''ia;'i\ieriioi\a'!l6lC/ar
.", =;,..I~ bO . f "
~'.:!.>'~.~
I
.
'riI6'rnento
. "ella'
l--' sl\!itrt,(iibiig
·······1·,· .....
i cl~l '''lbtc'b'' '&ip''0 'the 'sono
,I.,'. ·t'\·,,·,·····,.'II\'
I-' . , .
..
ErT<>I;~I,ri:statl attl gIl agglOrnamenti localmente. :., -,: '" ": " "".".'.' . 1:\,' '.,'.. .... I. <..

.;t ... '!i' •


).
:B~t:r.) t:;Y.-Tl.. /~~~~PlA.: ~hi.~.~~ }~l~g~.q:' ".qo~;q~XUia.IT\q :~J;!h'Q~\'-I: ~)~ ;~?:t:~~~iJ~ t:r ;! ~~l~ tcqn- 1
~B~'l;V,-~.BJ;~.P;lJ\~ :~:'~\~'!'t9fJld. ~ p~~~p.~e ~e, a, ~91~ ,C{l,ffi~!W J'~~~·C9.~r~~.~p'et0 alIa
,~,,;i!,\I'!'18fiWc~n\rl¥~ ~,ifl,1,\atoYAL, A!paI'ti[~ ~a;l)a, ~\t~,az.\9~ ,U,ifial,e ,~i I'0!!~i(!.[\ qge,ta
>'4
~":l::.' ::isequenza dl eventr '. .....1 E~l.. .
!;~; '.m;'!:'~~::~t1: l.i":'~; I ~:'~I:':')
'f'
:\"~'.t!.t) 1
. -.~~~l) P1leggex(nonpresenteinC1)j ~ .. _ _._ __ _'_
'x
~1~f;~);P\··\~odifrC:a: ~sk·gn~d:~itli- ~~1~~!~·;26; ;.' '.' il;
,;;~,,;,,;, ~.' ~::';<::,.' ", ;I .:-,;, .. :, ";;'.. \ ..

:i\'2tp;'~~'d'i~~~~1t;;;io;;;'~~t~'~' ;';;~~g~~dol~';l ;;"i~~~"3((' """",. , c",:; ,'~;L::',,,


",,7:>;';'..:. .",. ". 1
,.;:'tty" .
,.'-~if,·'
322 Capitolo 7 J
'ifi
~

~

1 ;''
,Ir.j
"l"
i'f,..
1) P, legge x; I~}.'
.~q
'f\,;
La Figura 7.20 illustra il contenuto delle cache che segue agli eventi. ~~J!
~Jj:
\ :j,~'
i~~
i Ji
,~.

P, p. P. c P, P. P. ,,~,

:j?'

I I I I I I L
r,~)f~
~~-
'.~~
i;<.\
c ~che X*lO
'AL
X=-10
~AL
c lche
...
X=20 X"'10
'•.
::e
!J~:
i'r,
I"H'it
· :~;
\ Wemoria Wemoria. ifJ
X-1O X..,20 ";,
CondivUll Condivi311 ,.
~I
.,
1) PI leue X (Rea.d Wiss) 2) Pi modifieo X per 10. prim~ Tollo. ~
;t-
t~
\Ii
~;j
" ~-
tf
-, \ CP P, P. P. c P, p. p. 'W
~
I I I I I I ~;

I
c Il.che
...
X-30 X-l0 c lche X-20
'AL
""
X-IO X-3O
AL
. '..!,.?
\.'.~?J
~
[
,~
,,~-t;P :
X_20 Jlemorio.
Condivisa X=-30 Wemoria :'.:}~~' !

I
Condhisll ,~.,~f~.jiJ',
....
,f,.:, '
..

3) Pl lIIcrin nuoTamenle X. ('Wrile Hil) 4) P3 1egge X (Read Wise) ,\;~? '


'~W,,'
Figura 1.20 Protocollo write-once. Evoluzione del contenuto e deUo stato delle cache a 'l~~~ :
se~to di una s~uenz:a di eve~ti. ,La condizione di parten~a e che x sia nella. cache di P2 e .:,:~~~~ ~
I che il suo stato Sla valido (e qumdi coerente con Ia memona centrale). ,.~~::,*1., J
... ' ':,< ,~i"
. ~. :j>t'''.--.
" :I,:~~r .
n diagramma degli stati e riportato in figura 7.21- . "~·:,i·5·?
( La coerenza viene mantenuta con due gruppi di comandi .,·X~ ~
• GIi archi a tratto continuo rappresentano i comandi lanciati dal processore locale .~i~Wl-- '
Pi in riferimento alIa generica linea di cache. ~ e Wi indicano rispettivamente .'.,~;~"
un'operazione di lettura 0 di scrittura di Pii . ,~,S!:"
\ " . . . " . . . ,:,~tW'
• Le lmee trat~egg13terapp~esenta.Il:oI coma,ndl, esegul~l daJ 'processon P j dlver~l da ·~f.)~~f
Pi e 05servatl da quest'ultun0 31 • Rj e W j llld1cano nspettlvamente un'operazlOne·:>~~~
di lettura 0 di scrittura da parte di un Pj; Inv32 il comando di irtvalidazione :.};~Jf."
e
(della linea) trasmesso da un P j' . :. '~~t~, ~
- \ ';~'.:j~~~
. .'. .. . ., " ," :,~:")~
di 31 0vv:amente mtesl come nfentl alla stessa hnea. dl cache e nlevatl attrayerso II meccailismo '.':,~f~
e5S1
s~oopmg: . ";,,,:,~~
I . .' . ..
L'esposlzlOne e semph6cata. nspetto a (SG83]. dove sono previstl un re4d~mvalidat~ e un wr-d~· ,,~;~ ...~
invalidate. ' '\:,"
".-;i:;~~'
. <~
-
I . ,~.
... , -. ,.
" ..
~:.~
~~

~~"" .
J~ki~i; _--------------------------~L::a~m=e:m:O:c~i:a~C=ac=h~e:-_:3:2:3
i'-~'
";0';';" .,~
,1."._,.
"", <,'
~ I" ."••- ••
''''~I\!i' '"'.
jl ;~r:.~.,
"h" ,',
.t.~I1l~:, '"
'''WI ,~ ..."
qlt,_, _..
;~J'j(" :.',: . Inv Ri (miss)
!~;tj';:.~
:V,t',~I"';":'
'~' .~"."
,: '
-r'

/
..... ------ '
~G\j·.',:··
0 "~:,"; , .
i1"""l:!' ~

,l' .. '• . . Ri
'{1f!\~: :;,/
~·'!~,li:,l'.,.:
-~' ,'~"'-
" ............ Ri ......~'--'
,1,,<;,.: -... "

.\, tijf:::" '- /


'~
. ":- •.ll·,.,- , In\l- ...... ...... ......
e••:~I ,~I{,'
I ".'.,"'
"
,,!;;'t¢"": .,.--.~ Inv '- / / Wi
it'''' 'e ",..
Hf~" '"~ '" - .',
/
X
'-
'-
;~'I l rt"·::,. ',' '. //
'-
J!.i~~Y'o' ;.y /
...... R') ...... '-
,:.'@:li~:"/_, ' Ri
.ttilW~\::..
I;
,;~~.";:.::.,,.
in~. . ":~,, -" 'J
, Wi
Ri
~4~~'7;:~ .'
-ll..-?1tv', " ' Wi (miss
~~;~{~,/ ':
i~o!',~~;',.
jl,.~z.~'L"': Wi
-tI~~~h':Figura 7.21 Diagramma degli stati del protocollo snoopy Wl'ite-once. L'arco marcato Rt 0
f.;z~;~~,p 'Wi proveniente dall'esterno indica I'assenza della linea in cache e quindi i1 suo caricamento
WiWt;,)., dalla. memoria p~incipale 0 dana cache di un pr.ocessore remoto. ~'u8Cita. d~lla linea ~a~a,
~f)'+';:~';'>'C¥he puC> avveDlre da un qualunque stata, carrlSpondentemente 51 deve ntenere che Cl Sla
;!~:,~;~,\, un
ax,co ~ ~scit.a su o.g~i st~to. , II diagramma ~on mostra I,e att~vita. s~l bus! a p~te la
~~~~~,~, genenca wdicazlOne dl mvahdazlOne. Per esemplO, nel caso lD cw una linea 51 trovl nella
[~~t:::.~~',·,.stato DRT e si abbia un miss in scrittura che porta a sostituire la linea 8te~. il ~agr~mma
~~~i(t.1:",: :,mostra solo Parco che dall'esterno porta. alia stato DRTi non mostra l'azlOne dl Copl<l.tura
:l~~~~~:'~':' della linea stessa e l'eventuale invalidazione deUa linea. prima del caricamento della. uuova.
!:~!F~('i'A questa proposito si veda l'Esercizio 7.19.
.. ":1(~;i~< ","
~;;,,,,,,,­
'", '~~'" "
':~~~".~:;',"
:~~1Sil!'}'
:',~~'.;~X;'· . ... ..
~i~~~;,': In se.gulto alla nch~esta ~I.lettura o. scntt~~a dI un bloeeo da parte del processore
J.l~:~,rl~cale (Pl) possono venfiCarSI 1seguentl eventl.
lffi.!r'~"(!' '" , .
',~~ii;i~'~ead-Miss Questo evento si ha quando Pi legge una linea che non si trova nella
.:tl~~./,"~·,·, r~lativa ca<:he, 0 che si trova nello stato INV: Mo~:litorando il bus, .i vari Pj 0
~1l~'<~\'~' dIverso da 1) vengono a eonoscenza del.l'operazlOne In corso. Se non CI sono cople
~'~f~~~.-", DRT nelle cache dei vari Pj aHora la memoria principale ha una copia coerente
'.k~;~'<; '.' del bloceo. In caso contrario il processore Pj che contiene la copia DRT as5erisce
.
::\~f,i;;:,,~ un ~egnale ~retry) che ~~i~is?~ la lett~r.a di Pi e aggior~a la mem~ria. A memori~
l ..i';it!."}· .'. . e
agglOrnata II segnale eli ImblZlone ntu3to e Pi legge II dato aggIornato. In ogru
i>:e~lt\'-,> .. caso 10 state risultante della linea e VAL.
fdf~'<>.. . .. . . ,
:~~<,Wflte.HIt Pi agglOrna una lmea che 51 trova nella sua cache ~T1vata.. Se 1a copla e
",~~V:]':."'·· nello state DRT 0 RES l'operazione viene eseguita localmente e 10 stato ri5ultante
;.~~;~..: . ,'~.-- e DRT, Se 10 stat? e inve~e VAL allora vi~ne inviato il segnale di invalidazione
~\,:.;;<;:::,: aIle altre cache e V1ene agglornata la memOrIa centrale,. che resta coerente rispetto
:.~i~~~<: e
a questa cache; 10 stato risultante RES.
.:;,~~~;;,:;:: _., . .. .
:f!~.~~," -Wnte-Mlss p. agg10rna una lmea che 51 non trova nella propna cache 0 the e nello
'·~it~' t t !NV' L I' . I t dall ' t aI ( I . £ ..
~r.~,;;",:.' '. sao . a mea Vlene pre eva a a memona cen r e se e In ormazlODl
, ~~.: ..:,..
~~~~~':,

.
,!c:
"
" I
,,"..
32li Ca'pitolo It!:;",,,, .~ <:\1' !~
,;;;; i~
. i, I"
':' >;~l
-,~j',
lm
'!iI'1
",,,-'
. >:':"~
.-. !'t,
!I~

in essa contenute sono coerenti), oppure dalla cache remota che la contiene in ;:;:"r~ iM
stato ''PRT~~. Trasferita la linea nella propria cache, Pi asserisce il comando "'-j~~. :;
di invalidaz~one' Inv .a.~utti gli .a1tri p[O~essori1 e quindi procede ad aggiornare'A~~, j~~
locailllente II blOCC~. Lo ~tato nsultante e quello DRT. , " .:'j~ (l
Read-Hlt Pi legge localmente un blocco che contlene mformaz,om agglOrnate (quindic,i!' h
si pub trovare
• , .
nello··stato DRT J VAL a RES). Questa operazione non comporta .'}.'4,.~.,/ ,:j
!ii
una tr.anSlZlone di stato. ,,}~~ ~
SWAP' (sostituzione) Se,la copia della linea sottoposta a sostituzione si trova nel1(/"::~i;~S ~'
stato DRT viene aggiornata la memoria principale, Se 10 stato invece e VAL, INV.' ;'!~ ;:
.,~~.. J!
o RES non e necessariQ aggiornare 1a memoria. ":--:~' \,
"
." . . '.' . , - . ,v
.,·:/~t:l u

Protocollo MESI n'-proto~ollo MESI (Modified-Elfcl~~iv~-S~~~ed.Invalid), e lar?~:: ;


gamente usato nelle mode-me CPU, In particolare essa...viene. usatp ..n.~lla farniglia. ,;}~~p~, ~
'
P en t mID e P ent'lum- P ro d'I I n t eI ,.come pu!e ~eII~ farmg '1'1~ P ower P ~ d'l M ~toro a.
I'" !
":;:'~~1,' ;
..

n protocollo MES! prevede 1 segtleDtl 4 statl (due bIt) per la linea dl c~che. . ',~-£fJ'~ r ~
'I :. /.''''' ""'1 :':1' ·_ii.~1 1
,... ~!'."'-:' .. :.... . _. 1 •• ~J .. (.I:.. ~/ f":;:iil~
"'r' , . . I' " . , . . ' . • ', • . , 'I
. . .. , ".'" 'j,. " ., ' '. '. ,." ." ',' .... I,;,'" . _ ' t •• ,n',···... ":"
'~~:.''1ndi¢a:9~~ la~1mE;!a non Ie P05s~uta.-:in ~a:1~ra'".eache('e· cne'ridh11e'coereIrte' 1~6~· 'I:k::~1' l
,'ill . • . " 'n" . al ," ""d ·t·t'I·· "'t' ~.', .,1··,· d'" ""'~.l..T ~'\.F.!..l'''''{J:'
·'L;c6tnsporr l
: "memOrIa 'l,fmClp e,' essen 0 's a a tlscn ta; 'la 'cepId ent-e nt'U1l:;::mOr:la ;\"W !
,<,. ',pi~Iidi:;~e ~ dftii~p.e't~·'n;9#.JV3.1!aa.:);~~~~4~::P.f~!~~~~: ~S~~~~~Y~~eIite.:ili'\ati1.~~·.~ .' . ,
..'····la'·toa'I .. :
".,>I 'f ·t·..,J·,I·,· .. ··,······,',,··'i1l."··'··l··'-·"·A .. :,.,J,.,'.ul~';'+;;\ '
"~:'}l, I, .,,~ ~., :~:Xi ~E'f.~~t~:, f ~~ ~!~l. ? ,~, ~1~~9P,,~ g~nc.\Rt " ~"r~ IHPme~.~R~ ~~;q~U1, 'm-i ft, ,~{Q ':};i;~~ :
t ..

,.1/1';;p,rE,~,~~~or~~,.. ,9!p~~md~, .Q~P'W;E;!., qe,. , ,~rn~I;l~q:,4~,1~~. ~~C},-~9,st.~~4~~9n~\;.~9n"HB. ij,~A:,~~~~! :


I
, . .<11
:.",~.RJ.Q.cq~!d~fp.'!.rte._,e.,p.r(U;essC!r~~~ocaJ.~,. ..... ',. . : ;,. ,Il·"·,,..~;"'.'~.ldl;"'t
! .. l.••. ,.. ·"l, ····i,·'
. .." '. ...,:.~~.
~,·.h=.~
. , ; '.... "'~,'"

'k' 'l~'co~ia.· I~O~' Ie' pr~~ent~''i~talt~~'cache ad;'~' :c9~r~~tJ~'; ~,~~',.ia:: ~~~q;,r.~ .~e~~~~~:!t, ,
'." . . 1' .• " '.1, ':"'" .,,,.' " ", ·,I'f.·
. . , . " , .. ", , •. ' • •' . • '.
";
cioe non e st~ta
modificata. Una lettura lascia la linea nello stato; st~s'o u~a:,1Jf",
eventuale scnttura la porta nello stato M, senza generare acceSSl alIa memona~~;:;~~
centrale. .;"Tf~
, ~"::~~f'
.1 S:' Ia copi~j>e pre'senl}e ancHe 'ca2h'e'"ed Eh:ber'ent'e:'c6n 'ia. ;m~fuoiia ;pcl'n~rpale'l~~:~lj}t
i In';alt'rs
Una linea in stato S viene letta da:l l su6' pI'-8'cessor~ lot=aIe:~~eb'z~' ~knled~t~ '!aCc~'s~1'~'f:$tlk'
II .. . ~ L 'tt . . l I' , t t M. bbl' '1 i"~
,;\l,.',.:a,,~;,J?eJ.I1qf~,~ I?~~~~.~?:.I,e::l'.:a.}'H\ 1:~,rJ?9~PI~ ,,~ .~P~,~};q:.s·~'·'~I./\'" ;M..,!.. lJ?f:.ll~";,ff!fJ
:' :"~qz:)~~ollor~,,o\~~,~)hH~Y1~;¥e"9?~I'~1)~~~!;py·e;p~~~~t;L.te,l;p~~e.~:Ht~,c,,,.',"~:"!·1· ;:~;~~i1:
. ~ " . , •. I . • . ',~.': "'..
'>lr~ .rndiCa. 'cbe' )la .cop~;t ~b'ori 'f·Villcfa;. ·,t~; 1~~t'ud. :g~n~~a ui{fuiss 'che p6rri..'~r:fiem~·}r;,#ro:,
. ~':.".~. ~.p~~·e~~d~·:se~:.I~, ~~~~' 'S~~·'t:~~va 'I~t~~ :~~C~~':~1l;~a([., ~lMJ ~S~~~~d~::1~~1~.~e4 ~~1wen~':~:~~~~ "
Yi
:i':"3":~~",t:a "';~'l~,'-~atq 's; se I" Ime,~~on',~i!'iiltt~~a~~e (!}f!iU rH!s~, ::Et:~!?slVe) la ,':f.:
~ .JI lmea 51 porta: 'lh ·statl),I.'E:' ·L::i's;cntttira' 'S.U' lin blpcc;'C)1 ~nvahdo")~o p,orta' mvece"nello .;)2~'$l:
:,1',;', ·st1.to M: l' ,~ \.~: ,: :.;' il I ~: '~lJ..:'/-; ~ , ~ .\ " , . ":.' ':;; -; ,.;,:, .,..\;,: ,!i; ,!. ,,~:; ~ i ~,~:, i; ,:.':e ndl~.~;i' .. ~~~~;
! r. I .'. :' ,,' ~t ;.~;,. , •.: 1,::, III !",: ,.,": :,', '.; \.,,0.,; , ,::::~~~t
.\ I')}' M~$J., e. ,1,J,9 P~.~tp~qH9. ,Yff-~t~T~.~c~'>I~ol,~9 -1~pP.!~~,y~.l.,?:~,ce;qer~; .pr~~o<;?pp.,~1jtt1:iL:~'ihl
o,Q..~~.I~~~.fL~~~~9~~~I1SC~R,~F g.f~t,t(? 1t!\qn,,~?~,~~~f;~,~l JTP~€!qoA~ p:1'tq;t~p~'i~ ~,~.':11~~o~la,·:~;I~,
~~P£~'~f~:AP·~f\e~~e,s,o.~J~?:3f..~.~;ii1~~·'.?P~~'~.<:f;:l·~i~:'~'r~~) ,¥~.~.Iih'~~~,~? Pfl,~~ 3cnt~<::A::)'.'
GH1~, p'e~~rmW.~;\P.l~;.~~~~~~R~;~~?~·:m.~W:\~~191i1e;.~.:PP,~\~,1,a"h·f,le.~.Q.',:G~he,.n!rll,?ptat.O :>.-.;jfi;'
, I . • . . . . ,:.j,;!'
. i.~'li~., ,,~, \:J,:.'( ,':!"> ,I! ;·1(I' .. i'.1 L';;;:";!~~ J_ '::'U:'i~;'-

... ~,3S! ~ ~~P.Posto~ c~me_ .i.? [SG~l,~~.e ,~~s~~ ~~ P'?SSibiljU., ~i. ~,~~~~.~i.n;, ,4.~. ~~,e acc~~, ?:1~r,i~.e~IH~'$~~,
51 'deve ass~m'ere"ch'e la;'-ic3:che- contene~e I~ '~a;'ll.~ D.~T'~ospenaa·.'a;: tr~n~l6'n~ "d~~, ,'~~oce~~~ l:1'le,J~~'
t'enta:~l""scnttura;~ trasferlsca;,ln' memor:ta: la,llnea,m ogg-etto'/ dt\ dove Pf,Ja.Jpuo"prelevate: '!'" .-. \~lf/
,-"" .
",. "
~~~(, '.
~'i .; " . 1
<, , ..
l'''~' 4~:':
,,-.~, -
, ":',
.'" ;\t,r~" '
'~r',
J
~'W~"\.'·· La memoria cadt6\ ~'25
i~~""'" .
">;,' ,"- .
m~i~,:" ,.
I!j,I:.I'
\
1-'-""·'"." .
, "r.•.,'
.. r,·r ';
MI\,', modificato M. In luogo·della·stato:RES .c'e 10 stata Ej eS8o:tndica semplicemente eb:e
I
;)~;~:f:: .Ja.;copia:corrispondente,e coeremte:con,la,memoria!e che -si:trova esclusivamente' nella
~~.:'.,::.' ca.ehe·consjderata.: .,-, . .... . . " , h. . " '.', .,:: :"";"~I"':::' ,.;

l~~': :.fi,.d!agr'0':m~,d~i_ta.to.d~i pro16t,oU;' !>;lESI e ~~?Orr~t~ iiiFf~~';;72~, i'erh\?tlvi t


h'\" ,~l~?nCret~zza tl dla.gramll)adl Fl~ra ,(,22 e que~\9 del pr?~CO~d 0ESI ~el ,P,dwerPQ
i~':''''':''', . 601. n protocollo ope~a m modaltta. wnte-back. . . .
jn~~,,"", .. ;.. :.11::', '.: "., . . . ':' .':, ...
~~;jt ',~;,:~;-,Per compre.ncle're iLdiagramma'di Figura1.22j bisogna.telier,.:ptesente die:iil pre-
~ : " . '.;;'.;i! ti I"·· ::'
,~:" l ,J"
I
't~~~~;::,:", ~enza:rdi:riIiSS lao vecchia line~, viena inva:lidata,e co~ia-te. in ~emoriase ~era nelle. st.ato
::.. ~:.::;. ,M:.- Dld:onsegllenza.tuttOlavv11:me come se la nuo.v.a.Unea partlSse cOffiunque daUo stato
!~h··',· I .. : :. . ', ',', .. :r ,.\.
"" ••I" ,! ' . " . .
,~h' ,~~.(. ".. --,'";,, ,,,.... '.' ' • . ' : " ' . ' .. : " .' ..... " : ' I:'~, ." ,'::' ~ i;\j:, ",:.
"IJ'li'
u.~~~~;\\.~(".~~,,;,;,,\: . "". ~ "":"" i' ".,', ,.,:;, '1' ,.',; '" :' ,:'1\:' .", .• ,.,.'.': \
;~tit,~~;;.~r)h;: ::,.":' ,.". '; Sh~ I"';, " '" ,,':i:l' '\~~'."";"'I',\\'~,;;'.',~",,';';::il :.':~' ,;:":::.' : ,l~': : ...\;·:~:~;;
~I~\~~~':~; ",) T,'!<r" , ... ~,: 1 i'- • " . SI'lR. ! j . 6!h.. L.· B~'!L·d 11-)(1' " • ,.-":.j l.!
..... ~'t·l).
;,*~&.tJ':' f'I~':": "':R~~' ., :.1::1· ... '::' ~ '. :',;. ,.'".:
RI'l_S' - 1'1:"00 I'>is5', ShOf"e<r
"I ~n..:f>:- Rt:o.d·.miss,; Exdu5lve'''; ',.,.. 1'
~,t.!~h~): .:,; '~'I ' .' ~ ." ." , . ' .;, . . S .' I. r ),;~ ::: "1: I.t ," .hl~· .: " .: ,1.., ~
1lR."",~. , ,)1:,: " ". " .: \.In - IJrlte'Mlss
[iI.~k~" I' :ShR:=. :Snoop· hit, 1)0-0. :Sledd . :~j ,-
ll~~~t:~.:... RI'lE ,\ '. ~' ., ~h~ i'~ , S~~p"hjt, ,.qn flo .. "(nl~e:,~r, :
l'\Jlll'",·
!~~I;.;·,;:,~,,:.• ~,:
,~;tt~~,t.:.~.,
'[k;tll~~''''-
,
hlJ
I.,
'1

(~ , " .....
hI,,!'
,.', ; . ;

~R
.';

.' '.' .
.
' .....

.:'::';'::.,
'R"o..d-"r1:h-ln1:el"\t-~O-f1odlfy
'q , ' . .~ . . ", "~I ,I, .
;.~
........ "f : .. : ;,' "'.'
CD-'C'h'U 'fHl 1 \ . , .,
I
:~~'\" :~\~;, " 'j I " : ',:". : " " \" . 'CD·- :s~·7 .. e:r' ~,~: ,:; , ;: IJ~',,; I":,:
:~~~?-;):, ~..Id .,r "" .. ,:' i; ;,~~~ '!' \..:. ., ' ...-: •. ~~o~ . ~~:.~ '.; '•. 1. ,'.: l', ;. ~ , 1
~.I· .,.. , .. ' . -
j',4~\;:..\'., ......,.. ,"';(i. .... ,. ,'.,." ,..\.I.h .', '\"E' .. ", .,.0., [nvolldote
.. :" . . ,~".
tf"Cln o..ctrO!1
,..., .
i"", (''''''. . ,. . . •
··'~i'·.·~h'·:I".
IV,.· . """":"$';' ..... '
.R}); ,
'C""
=Reo..d-wl-th-{n,;:e1:-.to-.l"Iodlj:'
.. ,,,:',",.;'" \
,~~~)A:.:'·: ,.:~~~:~,,: f" J,. d" 1 :',;:;' ll' '.: j .' '1J:, ,.~' j :'.... , , , . ; . ; : , ' . ; '::: ':<1 . : i",; ; .:: l', . :', '::.-; i; i, I;, 1 -,' ,:;:~ .r
~~~~~7.-· ~~~';~~:;,~: :Ii';i ,';' .;.: ,1"',I:l ..' .;:~!.' :~,: :, ":",: . . ;,:,: .:." ~'~ .:, ".' ',' . "; ~ ;~ ~ , ' . : ' - , !.' .~",:", ~: ~', :'1.', ~::: {,.
f ;'

f~1i~"".
. ', \. ..... " I. " .J , '~,. ,l ..,
't : .'

... :., " I,:H '("~"'~".


":'; • . '.' ."

~'W~t~~:,;·, ~lgu:a 7.22 Dlagramma di stato nel p.rot~collo MESI: n ?iagra~ma. np.orta Ie, tra.nsazlOnl
1 .
)
~;1,"f,;';'l,: che 51 svolgono sui bus. In presenza dl mISS, 13, vec(;lu3 lmea .vle,ne anzltutt;o mvalidata. e
'~ilt~'A';":q~'r~i:li', s'e '~n: istato 'M; copiata. 'ih..riteih'oria:. Si -n'Oti' t$.e:.~qli'~to 1>'r~to4oU(j'<)J:ieftL t&':Scrrt'tui"a.
1~~~::::' ~,iff~~i~~.'! '~o: ~~pi~ ,~,:h:te~6~ia :c~I1~ra!e :I~;li~~: m~difi~~tal,5o!? .~U&!il:lB~'si:'l1ctorglf<:he \
~u'm~":I., qualch~.altra,catb:.e mdltlzza ,Ia. medeslma: linea', In lettura: 0' scnttura (eventl ShR e·ShW)·:· .
~j~V'J~r·:!::J ....",· ,).! :'1' . :. " 'I ,~, ", .. I.:, ::; =" ,'":, ,,' ,.,' ,l!i -:,.,.1" -': ;./
.!. ,:":"':; I
hf1:t;.~;~·'·... . .~(; .:. ':;'. " , j . . :"" .,', .:: . ,.;.:' '.' .... ,.;.,., ,.:~ .. , 1'.:<' .... ',1:' .. : ,-,.:
fI[¥.l:v.:lv· .
!ilr.~r'f:~~~:~' ~X·~;;··' ,;!. !~. d, .. ~ ,~< .: ; ~ ., ":. d '.;:;' ..: ,'. ' : 1;' .. 1: .; ,," ,::' ..:; ~ '. , ,:,~.; .• , .. 1 L .1:' ... ') •. :,,; /
"~~;~'; '.(~i'l.:J 'Si-notirto i d~e eventi re!'atrvi 'airattiVii-a 'di;sti~P,i?g~·.~HR.,('Sti~~!" 'hit '()nj'~ '&,0.4) ) ,

~~~~~,~, e ShW (Snoop h,t on a WNte


ovvero Snoop Read-w,th"nftn't'focmodifil)! 'fu quest.
'",10"V-f~,' "it d~nomlpazlOm, 11. termme hIt 51 nf~nsce al nconOSClmento d1 un'operazione fatta 0
;' q~1:~.:.:t€rita.ta.: da: ~,1t:Fe .-caehf sullaLli~ea' '&, cui. 'c!:e 'c6pfa·' n'"e}f~ 'ea.th~p tdrlsiderata:ilfilal6i
.
~}: 'parolei ShR! iildi'C~'che 'larcacl1e,to"nsi~'eratasta 'os~etvando tih tentiti~6"di'lQttura~fatto
1
'fJa)E\~:. cia un1altra cache alia copia della linea (non indica cle hit sulla cache che effettivamente
~.~;s.;'~~;.~ ten.ta 1a lettura). Allo stesso m~do, ShW indica che la cache eonsidetata:oSserva una
~!:~{/:,~, scnttura s,:lla l~ea che e.at su~ Interno: In qu:~~o.,:~~.l,~ f?',1P~ ~?e;,~ff~~t~&.1.ascrittura
~~":~ nRoendha ~athh~eta, It etventod~~~) amfesta come lettura con mtenzi'one di modmcare (Snoop
-Il,;:i"r..,..,~.. a -un -m en - o-rno IJ!I •
'~\~i~< ..:, .. ,. . ,'" ,.. - .. , ._ ,_ _

'~~i'~ ," ~~I:.::~'.t~e,~~?:'~'~'·,(~¥~~; 'UJi,~~'. ;1~!i~~fC?,#~R.9i;t?~~I\~:i~,n [,#i:~s. ~:.~~,~~~~. ~li~:.~~~.~q.i?~lf: \,


1~1~~~{:; 1.3::p~e,s;e~~ft., ,~~~~.l~p.,e~, Ip.: ~ltr,e..~~gie,.~.l~ ,.st~t~,,~~~r~,~te, :C:P~'I~a.~Pl~9t,lal,( dJ.lJ\qlf~',.-4J.
~ ~\i~~,.stato S 0 E). L evento Rm...E (Read mlssJ ExclUSIVe corrisponcle 31 un·.miss, di' lettur.a 1
...
. ~.
~~
~
Itc
'I~~"
·,v~ -ml
:3:::2:::6:---=C:::.o.p.::it:::o.::l0:...c7 ';'
.
,'.~i I'
' l ..'f

I
.. ,... ~
).",
... ,
..
." l

'~".
:',....'
"'j:]~~

che invece non rileva la presenza della stessa linea in altre cache34 . ,}~ ~~I~
Una,linea; che si trova in state S, s~ si accorge che un'altra ~ache sta leggendo ~~:~ ~~~
\ l~ medes~a linea, (evento ShR Snoop. hit on ~ Re~d), non. cambia stato, mentre 1a /~ ~,~'l
linea che 81 teova 1D stato E e osserva il medeSlffiO evento 51 cleve portare in stato S.~'f,l;i ,~~~
La stesso evento ShR, osservato da una linea che si trova in stato M, porta la linea in 'I~~ ~ ·:tR
Si ma ~etermiDa anche 130 scrittura della medesim~ line~ in memoria centrale (SnaoP\~~:~ij' ~:~
I push), ill modo che l'altra cache possa averne copla agglOrnata.
. D~o state I 1~ li?ea ~i porta ~n 5, E 0 M .a seconda del fa~to che si aQb~a'~::,:~g :6t
.' .;-!~ '~,:

nspettlvamente: un illlSS di lettura m presenza dl almeno una capla della linea In :.'~q;: ; ~:i;
altre cachej un miss eli 1ettura e nessuna copia della linea in altre cache; un miss dl· ..:;~ .,~i;
\ scrittlITa.. Nei ~rimi due casi s.i h~ un ~mediato caricamento ~e~la .linea. Nel terzo ':;/~t . ~~
caso, 1a linea Vlene letta e qumdi modificata. Questo evento e mdlcato all'esterno ;;~~~j ~f
e
come Read-with-intent-to-modijy; esso dice che in corso eli 1ettura una linea dalla:~~qi~ ~;t
. e elle tale linea sar G' .unmed'lat amen t e agglOrnata.
. _<.,.~~
.g~,•. ,~~
• l;

I memona
.In pr~.dell'e:ento ShW. (sno~p di un hit eli .scrit~ura 0 di un caric~mento }I"~,~
COD mtenzlOne eli modificare) la linea vlene comunque mvahdata se non 10 e gla.. ,'"::;.'.)' !l\
L'evento W h porta la linea in stato M se non c'e gia, rna se 1a linea si trovava :'}!i~'/ ;~
nello stato S, oecorre ~a .transazione di inval.idazione sul bus per permettere alle.~;11~~ I, ~ij
\ cache che ne hanno. COPI~ di passare qu~te COP1~ ~lo stato I., .. .:--'.:~)~ ~~
Vale la pena di agglUngere alcune mfonnazlOlll suI modo m CUl 11 PowerPC ges- "!:;~j!,~' 'h
tisce il bus. E previsto a tale scopo il segnale GBL , pilotato dalla CPU the al {;:~. ~:~
mot:nento e master, avente la funzione di indicare aile altre CPU che la transazione ?~, l'~~f
• I corrente cleve essere osservata. Se queste ultime riconoscono che l'indirizzo sui bus' .L':l~!\ ~~;
corrispo~de. a una linea al pr~prio ,interno, .Ie. r:la~ive cache rea~scono secondo il pro-.:,:::?':. ,'~;;
toco~o di FIgura 7.22. Pe~ cVltare che l'attlVlta di STI?OP OCCUpl tro~pa banda, quest~ :~?.l1i 1 ':
arclritettura prevede che il segnale GBL venga assento solo per Ie hnee appartenentl \'~~~' ~
I a pagine marcate come globali e non a tutto 10 spazio (virtuale) degli indirizzi. ,';~~i~:;;"';, '(
,,!'
....Ii
iii' '\
. _7~··,jl \l :{
tc

ApPl"ofondiment~ Nel protocollo illu~trat~, un miss. deterrnina sempr~ il car~ca-' ,~:;'~, " !l
mento dalla memona centrale. Nel case lD CUi questa Sla non coerente, Vlene pnma· ~~~. ~l
\ effettuata la copia dall, cache che contiene il dato aggiornato e quindi eseguita 1a ';:~~,. j .~
lettura. Nel Pentium II Ie cose si svolgono in altro modo: il trasfetimento avviene '/~:rJJ }
direttamente dalla cache con~enente il dato modificato ~la cach~ richiedente. ,,)~r~. ,
. .Nella ~art.e ~e se~e, 51 fa u~ confron.to tra (~ du~ modalita. pr~ndendo come ./~fjll ~
( rifenm~to il caso In cw una c~e nconosca i1 tentatIvo dl1eggere una Imea contenuta )~~~~1~f
al suo roterno (Snooped Read HIt) ·.,,~il~
Trasferimento da memoria a cache La conelizione di partenza questa: 1a cache .~\~~~ ~
e
I B contiene il data aggiornato, in stato MoE, e la cache A tenta ra lettura. ~,;'/J!~ ~
".,:~
• Linea in stato M:
,',.1.f:JJ.•
. "*~'
~o,& '
.?

:.:;r~~': !
1 a) 1a cache A tenta 1a letturaj ,,:'-;Y,r,
..
Il '
,·~I .
J,.'i::'" r:
""/"~...

,:;1'I:1.
,.~.',~ ,
340vviamente, il faUO di rilevare la presenza della medesima linea in altre cache e legata all'attivita '···~'(l ~

I di snooping. In presenza di un miss di lettura, Ie cache che hanno a1 loro interno Ia. linea indirizza.ta
asseriscono un segna.le in risposta alla cache che sta tentando lettura, in modo da inforrnarla the
copia si trova al loro interno.
<;,~t1i'
,..",'J .,
., :''';'(.''f
','" :",'
(.~i!:~

... ,•
,.,.",'"'~
'H..k!:
"

, "'\'I: ,~
,..'.''i",l;,'L,'
":!£:i: ",
"'~~ T ~
J
~,
~ ~~
.\j;,:..
c; . :'
"'!h!!::;'
mlfH,:-" La memoria cache 327
f7,·,';'..
.•..
.....\ .
ll~~l- .
"l:j'o,C:--'
~:J:"
,l.:',,·.'
"..'

~!_~>" b) la c""he B ""serisce il segnale ARTRY e il segnale SRI (Shared Indicator).


~lt/:" La transazione di A viene annullata e tutti i dispositivi sui bus si ritirano
lj~~~:: dal bus per un periodo di clock;
~::!:. ,:, ' c) La cache B acquisisce il bus e capia la linea in memoria centrale. La
R~~?:.·' linea in cache B viene portata in stato E, perche per il momento e la sola
~~;':,:" copia in cache;
:~':~.::' d) la cache A richiede di nuovo 1a linea a1 sistema. La cache B asserisce
t.~<:., SRI',
;J~Jj>" f) la transazione si completa con A che 1egge dalla memoria; con A e B che
;?!-"~"·. portano la lora copia in stato S,
~!f~.',:
f~ ~ .. • Linea in stato E: in questa caso B non asserisce ARTRY 1 rna solo SRI e 1a
ttt;;/. transazione procede come al punto f).
;h..
~fr~:'"
da cache a cache La condizione di partenza e la stessa: la cache
~~~(, " Trasferimento
\k~~~~~: ": B contiene il dato aggiornato, in stato MoE, e la cache A teota la lettura.
W~~~:':"
'ffi~j}?';:' . • Linea in stato M:
~~rzr;:: a) La cache A tenta 1a lettura;
h~k;~",' b) la cache B asserisce il segnale HITM e assume il ruolo di fornitore della
~,:fur; .
f;;}!:;·;,,:'
linea;
c) La cache A acquisisce la linea dal1a cache B. Contemporaneamente anche
;~~,-,:':­ la memoria centrale acquisisce la linea (per non penalizzare 10 svalgimen-
;fi{{~;:,',· to dell'operazione, il controllore della memoria centrale deve essere in
:ltlf~~:" grade di catturare i dati e scriverli in un secondo tempo in DRAM);
~~~?~. d) sia A elle B portano la linea in stato S.
(~i?!X:~/
\~;",-.':' • Linea in stato E: in questo caso B asserisce IDT. Per il resto ie case
c~W:~':'.
{Jtj.-,::;.,,- procedono come sopra, rna non ha luogo 1a scrittura in memoria centrale.
ll~il:--'
lf,~;'-:':
~jP~~::':,.'
~!~7}.~. .
,m~1f.: '.,
~~F.
f:~,~~,:.',:
~!f;';i.,
7.6 Esercizi
~it<: ",
~£~,t}
Esel"cizio 7.1 Illustrare 1a clifferenza tra cache fisica e cache virtuale.
•'" "...
~.,.~, .
?'l,,:;O:'''' .
'I':~;i/:';'- Esercizio 7.2 Spi~gare 1a differenza tra gestione write-allocate e write-nan-allocate
!,{(l;~.:,::~: della cache.
'l~;ri:,:
.'.", . . .
:",:.~,C .. '
..1..... ' Esercizio 7.3 Si facciano delle ragionevoli assunzioni sui tempi di 1ettura e eli scrit-
1.!rr.;/. tUfa, sia in memoria principale che in cache) di una parola e d.i una linea. In quali
,:,:::~._:
~"'\.'--~;' ,.
,;;~U.?·
condizioni di carico (distribuzione dei riferimenti in memoria) la tecnica write-through
."V'
~ ..',. presenta migliori prestazioni della tecnica write-back.? Si assuma che la CPU non
';'-'rc ',.
.. ..
,.-.,:''"
,"'"' '" ~~,. .
•. '<;i<',."
abbia partico1ari accorgirnenti come, per esempio, i write buffer.
~lt~'>"
,. '<:-".:';"
,i£e-;~·.'
"ilIr~\I,'
'328 Gapitolo:.7..,·
'i
_
"
·· . . .oS' .~- . , . . . . . . . . al ' d' 226 Mb . ',I;." ,..
. <+
E serClZIO 7.4 1 suppongaehe la memoPLallnnClp e Sla ·1 yte, COn parole dl . l'c "
"b't' 'di' , '32 b't 'D ' "I t tt d [" d" , h d N', .
.32 I em nzZl~SU \ I~' ·ete~rrnnaa:e.a.sru ura. egl.lnlnZZI.per·unacace a :I~ J
. .- . b D "} I"··· ,:to" t
256kbyte,a8vle,Conhneed164 yte.; etermrnaret: numerocompesslvodl bit di :;'·::M. ~f
TAG' .. ~:., ," .. 1. "" .. , ., .;.. ,,;: '; ,'. :,i,~ f
... '", ,'" .;, " '" .., "" . ,\L'tf;4I'C
.. ' " , ".., '~'l!i ,'
EserclzlO 7,5 SI consldermo queste , quattro orgamzZaZlOnI dI' cache,' (a) cache "~'" ,"
a .'::,~,f
" . ' , '. • ". i : " " '. , .,' :, ,. . "'.~
mappatura. duetta: dl 1:6 linee, can lrnee dl una parola, (b) cache a mappatura dlretta '.n:J..., .1,

d~ 4 li~e~, .con.line.e..eli 4 p~ol~;. ~ c)


parola, dimensl(!)ne GompleSslva 16 parole,
each:
pohttca:dI sostltuzlOne
, .
s~t .;as~~~i~tiv.e a.2 v~~: :cd~ linee di una .':'::~~:;
tRU, (d) cache. .set ,J'~'
,".'

"
a~soct~twe. a 2 Vie, c~~ h~ee dl 4 parole,·dlmenslOne,cornplesslva·16 ·parole, pohtlca" '::'i~~(
.. . . . .. . . • .~,~. '}

dlsostrtuzlan~LRU.,~
,.!., ..• ,:' : ,",' •.• ' . ' •• . '.' ;··.·'."1.
. I \.. ,-·~''''~:~
81 conSIder! questa sequenza dl nfeqmentt I~ me~ona (~dtrlZ~1 dl parola): ~':'1:"\,~~, .
. "; l;~. '.,··.·:;'.1... .·~&.;7

, ... , " ' , "", ' , Jr.· .' ':,'tl,}"


1 4 8 5 20 17 19 56 9 11 4 43 5 6 9 17, ' _ ')}l\~1;
," . ','
, .'.','.1,:
'. " ;.'J,' ,', '.'~, :~:
,," I:," T,. :',1 ',:' ..f,' ":,I:,~'fi' ':'.. ~,~qgg:J:~
' "'" ~!-1:":;

Pet. ciascnn~:~eUeqiiattr? ~ache sb~ra'~}e'ncate, ~~nini~ndo ~'e .inizl~l~len·te'siano . :{~t~ '


vuate, 51 deternum l'effetto dI CIascun nferunento (hit 0 mISS) e s~ n~?rtl II c~.ntenuto '~:.~~'~I, ~
finale della cache, " . . ,;,.)l!;'iIL
, .,' , , ",1 -::'}Pf~~~:"
, 'Esercizio 17 ..6 ;Si cOIisiClerintY Ie dJe" br~'ani~zazioni di tache Ie la'seqtienzA. di riferi- ~,.~h:~
.menU Ynd~iz~~ ~i para~a) s,o~to ripor~~te:., . . . . ~.. . ,·)r~?l.
a) Cache a '4 vie," linee idl·2, parole, dlIDenslone complessnra':parr a: 32 parole. Riferi- . ,};~m
,'
Ih~nt1':"" .
. '-"',[~ ... :'i:,·:,:, 1:.;)[ .... ;, I"·.,, ". " . '. ,.'.j:"
. .. ';. , ' " I , ' , ,.. ,."""'J:' ,. .,·,\:;:.:r;l,.~
"''''1
2',4, 8;" 1Q; 20', 6',' 19j 48, 9, '42, 11; 4, ·43; '44, 2, 5; '39, 3'4; '36; '6;.12; i4; 'IS, 28, 9.
b) Cache~ a ;4 vie" Iinee··ill ,4 parole,' dimensibrie 'complessiva 'parj' a. 32 -parole. Riferi- ,', ,:<~y.,
<II
mentl:• '•1
•••
. " ' : '• .. ,.,:~.,.,.",
j •
.. , . I : . "' " ". ',. ' :iit\.
'·.:~.

2,. ~, 8, l,~l. 20",6 1 19, 48, 8~ ~~l ~h ~" 4~, .1~~.,21 ~l. ~~I ~41 .3?, .~.~,. ~?, ~41 ~~ql r8,.! 9. . .R~f~
.. ~~.~~,~ep4?lcP:e !~~~~~.t~ ;l~.:~:~hl;! I~I~~ ~pte.,. ~~ ta.. t~cn.~~.';l- ~:h ~est~one ~ia .!Wtk
LRU e che m presenza di pm linee vuote alia stessa pOSIZlOne, SUI mlSS l venga nemplta ':'\;}"{\?'
l~ linea s~lI3:. via pill a sinistra (quel~a d! indic~ mi~oreL marcare ca~ "h" 0 co.n um~ ,:'~':ift
clascun nfenmento a secanda che Sla hIt a mlSS; nportare a parte I contenutl finalr ,:,.',:~~~
delle cache (TAG), )!,f~1
"~:~rf.~:~I
Esercizio 7.7 8i progetti una memoria cache di 256kbyte (parte DATI), a 2 vie e "'~.(~ ''''''%~
!inee di 32 byte (8 parole d.i 32 bit). Si assuma che la macchina generi indirizzi di 32 ·";;.J~'~' "0"-
\ ~

bit, che vengano sempre indirizzate ~arole di 32 bit e che i byte entro la parol a vengano .•.•. . .\;.,',••!
c~

identificati attraverso i 4 segnali BE3,BE3,BEl,BEO, carrispondenti alla decodifica dei ':·',\'~\~i


due bit meno significativi dell'indirizzo. IS.!· .n'"'}':"'. ~ t ~;. \ ·0,;.';'
Si dispooe di. integrati SRAM byte..wide di 2K, 4K, 8K, 16K, 32K, 64 kbyte, ,?;fr:
Gli integrati, oltre jagli' ,8 piediniJ. re"latiri ·al 'dato ·.e·"ac·ne<;essarir piE!61irii '"di ,indiriz201 .~~i~
, ;:L~~
·
pres~ntano questi piedini; CS (Chip Select), RD (Rea~) e WR (Write). ... Q~an,do ~S
'e asseritb Ii mein:oria' effettua l'operazione riChiesta da'queUo'dei rHrfanetiti ·dtfe the)~ .,>~;~
.,,..,,
asserito. ' II;, . j,i:"!!, <~:.il
. !<;·~,t
, "Si"sce!g3\l-o,; gli ,in.tegr~"i per Ja, ,p;;rte PJ.'rle. p,er.,la .,parte·, 'r,'\<;l,.,jn.,JIlodO,;dj1. .•'"

t~al,izz~r~ l~,~ql1.\'LiQq~' piu ~cQnoIl)icaiquel\~,~h~impiegaj), I'),,,m~rP: mjniJlJ,o. di "'tegr,~ti


d'"'
."!$E
~)"a p¥ita 9i Q.umero ,di;'~I).~ewati" ,q,ueUa,~,'.a9oper::90J:t?-gli:piu, p~ce.::QU, li :,: . ,!',;;: . ',~,~~
, ",!:,,
'~;'\':'l'
.Sil,~cqerna~i~zi,!~ ~tI;1,l~.twa:~degU.iq9irjzz,~" II~··I ,.,1: ';' I;' ,,:. ":":J'! \; ';:i.i~;. I:~'i·'''.::.(,~ ,. ',,:\>
J ...
• :';\;:i
8i tracci Io schema re;&.li~.zativo mos~[~do i coUegamenti dei. v~);Lintegr.ati di mempt.1a,. · ,'.,..t\_ ""i:»
. '':;:'',
-.""'
·~..)~i
," ,~~w
,·9.1':
~,f:

.t~: "
T~~"""
)
r.1l~"I'h
r {.j ~ .• '.',
.'~::J!
,MY!:!' !·
...."
La memoria,cache' 329
, ~"J;
",j ,I! f t,.
ir~<; llf~'· '
_'':'~!ilr,,:-\ .'
~re"" . .,
:. '.r:.~(.:
"m"
." "~ ",.', , ,r
,
. . data'una caChe
.' . , , c,omp. I ' pan,a·
' 2 56k~'
1
+~":-/.i:;j.:
EserclzlO -7..8'"l!l; dl capaClta esSl-Ya; u.yte;" a d' 'di
ue:.vle::'
""1".,·.:. 8:Kyt' L I' di 8 I ~'4'byt (32'b't) Gli,' diriz' "(di '[')
.',Y':."','" 12,
e CIa8CUna, ' e Inee sana ' 'paro e U> e . 1 ,.' .m z,' paro a
J"I"'~'":''i''' dt' "o't'31'2dlb d . L'al 't di' "," . t'
I
1':_..1:-'
t",'i~f': '·ye.ngqno: a LSUl':·1 ,ft .. .ft.,. e,· us eg1.J.I.l.WCIZZI'. '. gGnmOi ,nmplazzameno,-c.
f;~')l/l::;l,:';~;"" U L'al 't 'b 11'" di t ' t " '" ' .... " ,; .'O,' ' f ; ~ .•. ',.
f',91'~\~" ..' LR· gOr! rno 51 asa SU Irnplego con a Orl~,,·... :,.', ....•. " .. , ., , , .. ,..... , ... ,.,
tt;,:, ,Siric;hiede,.(1)lastrutturadegliindinzzieilnumerodibitdel'J,'A9i(2)~~~mer?
'.. ,c':': di bIt compless,vo·.'(per l'mtera' cache) 'nchiesto' llen"contaton 'LRU;'(3) -la'· rete-ill
"~'''';.. ' "aggtotnamen
". . ·t·0 'd el'' c'ont'a,orl t " (I" 't d" t ' ,', t d' II .' ,; ~,"', 11' dl"~"di'"'I" )
~:~;::\';::'" 'a~e e . eve. ener con 0 e a'conuu,la ~' .·v~ .. "do' non
1,11;:" ••,
,,', ':;:.'.:,• I 14''d'e11'
"al'd't" ... 1·"'[")
e-sln,go lnee ,"'" I . '"
.'."" 'I . . . .'". , '. ., ..
., " " . ,.,.. . . " I,· , • ",",.. '.• ,"'1·
'''','",... ,., "'". ,. .
.:. :
0;::

;~i:0j:f' v Per' quanta si riferisc~ al punta (3) ;., ·si' 'sliggeriBce ill 'titkvar:el'l~' esfjrtissid~i .iai
", .. ~;c .•.·.
et /Reset d el'JI'1 - ft a 1m ' ,Ie atl, er Ia. reaI'IZ'l.aZIOn , d'el can t a t on.' ,.... ., ._
(~JJ(~~,!F;. ' ~,l"!'! "1:1'; ~;
}ii~~': :".
>;! '. ,.~. ';"~'i ,.:p.' '?,~'i:P:". :.~ ;.1 .. ".'.'< 'I, ~ r:~ j. : .... :,'., .•. \).; I;i": ::L. -:;/, ~ ."d:'i~"'·I~":~'·;
~n.tl;.-,~· .. , ~.r:l(I~..l' ''j'9 1i+r'\\I,,]'';'
.,~I.:,~•. ,.I:lO'ercl;c,lo ...
~-;:";"~':I~"~:";"'::
·1,l~~~':r;':(:'·pAroa'~
r' i i)4~':b!yo;::
vncacolaorli!con
'-t~).' s'11\I']'"e \-'tnt::
.(.1 ..,. ':b" usl:d..al.a
~';e". / 'd"1 ·...;d'·;·1f
III Irl:GZu
t····:32'·b..·t .. W·'31!'D'O·)·,1.,! .. ':·::J~~··!·.d"
enera l l i'InalnZZIl
L r~', A'3' l' '~A2 "'p':::!: i •• 'd( ~~:t'" . &.:; ".1 .,... gli"o·j~..+, .~,i.: ,: :! •
1 -
- . erm UL«a.ry~~mg9.. J,,:eo,I:u.n,a
I
;;;,:r:::.' parola vengono lmplegate Ie quattro linee BE3, BE2, BEl e BEO, " .. , "' .." ,,','.
~': . ~,~;~~·;,:'I'.".
;~~J,;,,~.l,..
Qi.vug}e
~.;,,~ ..;¥,,'
I'ollttuire unatCa~e:diI5U.2kbm-e.a:.lT'tapllat~a:diret.ta
.•. N ••• ; ' .. , • . • • • • J.".I·,T'~" , 1 _' __
I.coIl'lin-. ..I~16
~~y,'4.. __
\
'\~~1{;ft~>·c. p'~!~\e'i;..Pe:r J~IP~rte P~~.;9~~~'.f~h~:.~i,.~~~9J?e,,~ ip.~e~MLb!lt.e.:w.i~~,;{lj: ~~ ltPyte,; I
~'~:i~~j'(;'" R~r)3::p~,~. r,I'A..O ,~ol)P ~1~PC?~.lq~J.l .M1~em:~t~~9!.:tl:\ttp:~~l,i:,.:mfl._~.e~mr.e:~py:e"U!:1~~~::,:, i
LI';!:{r,,:; ,0 ,: S.~,~<;he!'!~\f2i~I)1':' ~tru\tllta,,(\~I~I!1dirizZ0, GQA I'IIl<!ivWJ13ZlpuMlel,q;Hilie,qmh
"tl;-i~;;,., pangono 1 van campI e 51 determlID 11 nUFqerp..,(:4··,i:Q.t.egq,tl!.nec.~S:~,1,.~:cQ.~tnpr~)a
~J;~~:~:':'.. ,parte DATI e la parte TAG schematizzanda la lora dislocaZione. 8i disegnino tutti
'
;~';~'~~~::"":' gli·-integra~irsi.. d~~?t~~ i~ ;modO'~heJdalIa.'d~nominazion.~' risulti' !.3;.I~rb.·ilispoSiz~()n~
I
,;.~,t(~~::'· . ·. nello :spa2;1p! deglii.tndltlzZl l della cache.e 81· dla' 'una·scltematizZ:~lOne,di:come'Ylene
J
1
1'''''\'''' " I b us d at.
~<i;'i~'j',t(·':;'i'_· costrUltal t' Per j .,gr,mtegrat1l.
1" . , d'e11a"par . t e·i..
=A"" ' ' ..~, deanchetil'!:tagli0.'\l·il
'~'.i1ll!fl'lU.l:le

;~:::~tt~;:>·:· taglio git,lst,9 e qu~ni? minim.9, rr:a. ~~~ci~nte all'uso).. .' . ... '_ . . _ . \
;:~f~~~:.:·:":· ~·."I.~., 'Ttiiiieat6 'con 'Vi' :Pip'dica.t'ore (U! 'Val1dita;';della~ ':g~rier)di'liliea" ~;'~si ?sugg~t'isca!una
;i"',l:'h.~·' ,.: I'
.~l~V~!:;f':'::·:·souzloneperasuae'1';(
I ''r'al~!1 '.. .
..zazlane.;·' \ ..,
".'' ."···':,··,,·,·,,'"..-.(···,····,,·,,"·"··1··
.[ , ' ,.' .'.,. ""'·"11 ", ,I.".

~§!~{~Jrt~' .,-. _,' ~.~ ?}s~~i~!l~ j~~f,~,:?e~l~ fe~~,FP~· ~~.~q~¥.~~~ . s:~. st.q~ :?t;,?:?:~i~~ epJD.~r~?§~y,q ,1~~ \
~{~\~\r.L,.;, c~~~~~~~p~.1 ;~~~17~~~~ttJ .q~:I1~ P~~,i~~q,· .L,a: r.~~~ !d;~:;~ ~~.er 59,~e?';~7P; 1"~d~,.98;~9~~ I
\~:4;,;;~:', dl vahdlta dl Imea. Sl dlsegru 10 schema del generico CS (aup Select) della parte
~{~~;~';1,~(,,'; :q..~:r~)~;~J.~~~~~ ~n~g~~q.ti:~, p~e.<wu: d,e~'~~\"'H~vq .~,t~~~t~: . . <· :.5 :~ [ ,~. ,;,itl·!'l.,:.,:-:
~i~S~:J·~:;;::.. · ~:.:',.l·s.,1.,,:d~s~@~.lp..~£~~Jil1:~.i4~~}3:/.~.~~(C~~,;1Il~~1\~~)~:'&~~H~I~~~I.lW~a;.t, A t.c¥,~ \~co.P~Ul1 \
1 t~I~,,;, $fJPP?H.g"" c.h~,J';"1~d,!p~~ I{l'nll!',cp~:mdar,a" ~'aJ1ll~.li' J.i,n,ea, WNNY,q<,;,,",dp~ul ,
I,;~:\i';:":i: bus degh mdi~z~l eel mdmzzo de.lla hnea da m~dare. ;. :.:': !J;~.•. ,:J, ::':'i' ,.,~ k '"ii·.
~ ;;':,,">''':. Per semphclta, escludendo la dornanda dell'ulttmo punto, SI consldenno soltanto
d'l'
I
~ ,,,,,',,,. . [. "
'l:""l"'i'I";'" e:operaZ10lli.l·ettuIa., ' . .,',.;. 'I~""" ,.:~:,),.·,;i:', ·.',I·i .. (.: I': (:t ~~~i.~~·I·W.'.:,!
"-'1,,--'-""
',-,"..
! r,!A :.~ .. "
, '. . . .
,--.~.,. ,;.,<:, :'. " .• Il!:.. : ." .JI·,:· " _ ';' .. :Ji.!;·,.'" i: ,.;'.' •. ~,p ...: ,:~ .i: ',. '.:,'!i ,.;~.i. '·.. !:·l:h;'·l, ··i:·l;.':
~ 'I.", .. '.
i ~~:;-. l,",:,' Ese~Cizio, 7.~10{, Con tifetimento,aU '.aUgoritmo,pscudo Jt.RU:p.er La gesti,~ne·della;tache
' ,;j';;" della CPU 486.. 'CfI:"J.2,12)"si ',iporti,',lo ,stato, \lei,bitdilo',B,eB 2! e"dei,bit di Yalidita
: ):::,~:", VOIV IIV 2,V3 a seguito di ciascun evento a partire dalia candizione iniziale data (in
~ ~(;":'~;\,' :~? di ~~ss, ~ presenza di piu linee non valide, viene utilizzata la linea non valida 1'
~ ';',~( :,:: pm a Slll15tra ,
,,~ ":(:,/.;'~
.... ', .. Condizione iniziaIe:
l, ",.i>·,.~; :'::, a) tutte Ie linee di una generica posiziane sono valide (Vi = 0; 'Vi);
,t ;;<~I;.. , '
" j" ..
b) B'1-- 0•
E'' t~·:~:'.;·:'
,."
Sequenza di eventi (M sta per miss, Hi sta per hit sulla linea di via'i, Ii sta per
,tnva Id
~H:T~'1':;' i azione della linea di via i ) :
,. ',' ,,l.

I
"
'j ":,':/:'::""",. '
>: •. , .... '
»' .. ..
i,! "" I. .. : •.
~, . ,t
,'" ' ,,,,~ ,
M; M; Mj Ho ; H1i M; M; Hz; M; M; IOi H t ; H3 .
_ •'I:' "', '.:
'~ I,~\ •• , ,."
i :J:.:h:~'~
w. ,," ,~,,.:.--,.
~"
i!
"
~

• 330 Capitola 7 *
-~

!,J
I L~'\
f""
,t-t
,~
•.•:'
.
e
EseJ;'cizio 7.11 Si osservato che l'algoritmo di sostituzione descritto al Paragrafo "'i
"

"~"

7.2.1 DOD opera in modo del tutto casuale. Discutere se, in certe situazioni e per brevi ~$
periodi, l'algoritmo puo avere un comportamento deterministico. Indicare in questa t:f
\ caso qllal e Pordine eli sostituzione.
,"
:, ....,
t·~
'i'I.
"1
• Esercizio 7.12 Si consideri una cache associativa a 4 vie numerate da 0 a 3. Si '!t'
-'."
disegni la rete che in riferimento alIa generica posizione IL. in presenza di piu linee ;~{
..x
non valide seleziona quella di Dumero d'ordine piu basso. La rete cleve fomire BU 2 .w I. ,

bit 1a codifica del numero di via selezionata. .". \'{,-


~ ~~I't!j1'
0'1'" .~F
'I~ •• , .j,-

I di miss e linee valide , oppure il numero della via prioritaria non valida, Si supponga 'J
"''J!',l
Esercizio 7.13 In riferimento alla Figura 7.6 si aggiunga 1a parte di logica che pre. ,::~,i~~~ ,~;
senta come j, il DurnerD della via BU chi si eavuto. hit, oppure il contenuto di Sa in caso ·iN',;'"
·",f!.i"
.. ..;...."
.:. ril
:\~
~~
~ -~,
"

che la cache sia a 4 vie. '_',l.\.~~,~ :'"

Esercizio 7.14 In riferimento all'algoritmo LRD descritto al Paragraio7.2.2 e basa- '::~~~ ~~


to sui contatori, si 5tabilisca come devono e5sere inizializzati i contatori. Si tenga :.''\}~ift1 >~
presente che l'inizializzazione deve determinare la situazione di cache vuota, ovvero .;;-~:~f: '-
Ie linee devono essere tutte invalidate. Se tutti i contatori vengono inizializzati a 01 ',(~~~ ii
I l'algoritmo presentato opera correttamente?

Esercizio 7.15 8i supponga di avere una cache associativa a due vie e si assuma che
:i',:,,~~ ,";
;:;!~ ;~
,i~\t S

i rimpiazzamenti vengano effettuati secondo la tecnica LRU. 8i delinei l'algoritmo per ./.'~~~ ~:

I questo caso particolare e si progetti la logica che 10 realizza.

Esercizio 7.16 8i consideri 1'algoritmo pseudo LRU del Paragrafo 7.2.2. 8i dica sotto
\~:~'t~ 'i
· ::~~1r';1 :~
:~:(!~ ;~
· quali coodizioni l'a1goritmo da. risultato diverse ri5petto allo LRU. :~lt~~ ~
l ""',~it~~m
Esercizio 7.17 In riferimento all'algoritmo pseudo LRU del Paragraf07.2.2 , 5i pro- : '!-~~~ t
getti la rete coriispondente alla logica di decisione e di aggiornamento dei bit LRU. ,~ti~!~:
:

:,:\t~lf

I Esercizio 7.18 In riferimento al protocollo di coerenza snoopy a invalidaziQne con


scrittura differita, 5i tracci il diagra.rnma di stato della generica linea di cache seguendo
Ie convenzioni e 10 stile del diagrarnma di Figura 7.22, in modo da illustrare Ie attivita
;:~~ :-
"'~ ,~
·, .;I~~,
""1';'1':'11 i~
,.,~:£J~. ?
che si svolgono sui bus. ~~~;t ~
,,::f:~: .• ~
Esercizio 7.19 8i consideri il protocollo snoopy write-once per 1a coerenza della
I \
cache (pagina 320 e seguenti). Si ridisegni il eliagrammaeli stato eli Figura 7.21 secondo
":'~r~~ri~
10 stile del diagrarnma eli Figura 7.22 , in modo da illustrare Ie attivita che si svolgono
,..'~r~~ :
· I I suI bus. Si facciano Ie 5te5se ipotesi che sono state fatte in Figura 7.22.
',:i'tJ1b'~ '
·';'t,i ~
.-;. ;.~?~~~• '
.,.~~,j .J :
';'j~~
,'~e: ~ ~....
'." .*.
- "'~"\
",,' \:.c.,I """

I · '1 •••'-' "1. ,


',".:t..;tl
.,.,,~~~'"
'.. II''''
·,·;,~·it~,
",.",,"
I"'i~,".:'
!
~


:.:i~~'ftj
• ··~.'1I~il·

.J
I ,
.,,~~?:):~<;

",1~-"~"
• ..
,~~
.·F!~
,·;~t(~
,"
..,.' ,
r

,r'
," '\:' .
• ":',;_~~Ui

I •. i· " ''''~
'. ~!,.:y..

"'''-' ~I: \::",
tX"~'
!:".•'i:.,....,.
~-" " ...
","!4, _.:

*-".•..- ..
~"''''

J-/[i2;:'
\;:;~'b" .
"-'--~'"
t<'{f{.,:'
.
';:;t!.t. . ". ,
~t~'
.'.
8
'-- ~, '
i"')~:~ ','
"!.»·'l '
$~/. >,'

f~:~t,·:·.
..:.,. ,.' "
,:,;J, .i'· ...
~!'.r;'·l :
.'.-;C;:' :
1.":;. '
'j:.,:,..,.-., La memoria virtuale
" '.' ... ,
{~{:i. ~
x't-..!.:.' :.
w·"";"::.
,,~. >•
j .•

{.;'-".,.
:. :\' ~ ...
~F,,~:
-""'.' ,';'.' .
",ii"'"
;\t~:;:~.
"".
;".....
1.:,..,~, •
,;",~., ..
~'::"w.,;;.'
"f;,::.~ :.

~i"~~" L~ me~oria virt~ale e stata introdotta p~r ~nsentire l'esec~zi~ne di p:ogrammi di


~~i~j>:>' d1m~nSlQ~e supenore a quelle della m~~or~a fis1ca. La mem~na vlrtuale Sl. e afferrnat~
-~'i1::':,> negh anru sessanta, quando) per motlvi dl costo, la memona centrale del calco1aton
i·:--;~;.<:· era necessariamente di dimensioni ridotte , tali da risultare spesso insufficienti rispetto
;)~·i'::',,,"F. alJloccupazione richiesta dai prograrnmi. .
S:t}:·;·:· Altra motivazione e la protezione, ovverol'insieme dei meccanismi che consentono
~;~~::,/>' l'esecuzione di processi concorrenti, evitando che indebiti indirizzamenti da parte di un
:Cd~j/>':'" processo danneggino i~ codice'~ i d~ti eli altr.i pr.oc~ssi. La.. mem?ria virtuale c.ostituisce
i~~;:;:,,;;- . I~ base natural.e su CUi a~pow~e I. ~eC?~OlSml dl protczlOne, 10 <,luanto ogm pro.cess~
~i:\~\:' Vlene dotat~ d1 un, prop~lo SP~I? .d1 ~n~.hnzzament? p.rotetto. ~c1dent~~e~te, 51 no.tl
~~',~..?,. che la creazlone dl tantl Spazl d1 mdlI1zzamento nchiede grandi quantlta di memona
~~~+ ,.'
:ifiV\."..
e ripropone la ID<?tivazione or~ginaria per la gestione de,lla memoria virtu.ale..
Allo sta:o della tecnolog1a, buona parte della ges~lOne della memona v1rt~ale e
,

tf~~'~:. affidata a umta. dette MMJ) (Memory Management Umt). Queste) con l'affinarsl delle
:~£~:.: ~ecniche VLSI , vengono oormal~ente in:eg.rat~ nella stessa ?PU. La MMU for~isce
f:~]"'" 11 suppor~o hard~are sul quale 51 apPoggIa II SIstema Operat1vo (SO) per la gestlOne
-;:<__ ~.::}-J, complesslva del Sistema.
~
,,",,~,.,.
".,
~~:lil:-",'f
?lh~;rl" Dal vertiginoso aumento della capacita e dalla continua riduzione dei costi delle me--
~~~~':::-. morie DRAM ci 5i poteva aspettare la scomparsa della memoria virtuale. In passato,
~::~:;-;:~"'., non pochi autori si sono lanciati in previsioni secondo cui ogni proces50re avrebbe
~S!'~:" avuto tutta la memoria necessar~a e) di, c0J?-se?Uenz~, .la .memo[~a .virt~a1~ sareb?e
::t~(~" ~ scomparsa 0 comunque confinata ill apphcaz10111 speclah, t1po baal dl datI d1 grandls-
':~:;,:,', " sime dimensioni. Tali previsioni per il momento non 5i sono avverate, anche perche,
~'i//; almeno negli ultimi dieci anoi, il tasso di incremento aunuo nelle esigenze medie del
'~:~'.:.,::':
:"-~'''','' , .'
software quanta a risorse di macchina -tra cui in particolare la memoria- stato e
?I~. ~ediamente del 35%, contro un tasso medio di aumento delle risorse stesse per unita
~;,~,:r:r"., dl costo del 18%.
"~J'
",' ".',
" .• ,,,~.,
'

,-r~i~,.~,
!t,:·~";:;
~"',~~.
.".. -,
,--,.-"., .
""",'.
':"'.·:' 8.1 Introduzione
h'/,:::~"
'--'.~ •
rl.>-",}'
~·'·'"'
'<i"\, ,
Nei sistemi privi di memoria virtuale, l'esecuzione di un programma di dimenaione
,.-,.,
i:,:.'.'- superiore a quella della memoria centrale richiede alcuni adatta.menti , riconducibili a
;:;2::\~'"
-,",,'1'"0'-1,
:V;ll;,:.:.'-'
~j,,';:"; "
~·~~')I~~1,
~!£l.'(~"
0; :,
332 Ca.pitolo 8 ""i'
fll:....I
~"it
,
',.,r.> -
!~~'1~i
f~'\I~t
I f'.\'·
due tecniche fondamentali, ,e'"
r,1r
,.;::;
','.. -,:,
L \i~
~.f-ti
r, .,~ ..

ge~eric~ Pa:'so ve,ngono memonzzafi i-,: ~le di appo~o ternpor~nei,c~e.~engono . ~:::ftt.I"')~!


POl lettl dal pasSl che seguono. Una tlplca ~lasse .dt progra~l es~gU1bllt secon~ ',;.t};t~ ':1f
do .questo schema e :appresent~ta, da ?ompilaton e tra:ctutton: gh ass~m.blatori ..;-t~t;.\ •. ~~1.
sohtamente operano III due pasSI (it pnmo passo costrUlsce la tavola del slmboli, ""(~ .~1~
it secondo genera il codice), mentre i compilatori possono prevedere pili di due .,~:~ I. ,'.."·)
passi, a seconda del grado di ottimizzaziane che mirana a raggiungere. .',:~,.'.~.~
"'-"
,t:"%~ti
',~.
. '" -.., . '''''1
.. :.r.~':f' I. J'.$,
2. Strutturare it programma iuarti, dette overlay, e stabilire preliminarmente a.lli!Ji _ ~:.;~~ :~::~
parti saranno presenti ~ntemporan~amente~n. memoria e I'~rdine secon~o cui le'~"i~,~~~ ,:~~~
r I ~erranno cancate 10 tern 1 success}v} dalla m mona sa 10 mOdO""tii(';~~:I""#.
cia. nco r a ~entr~e. ,In questa casa occ~[re pr~ved~re ne,l t~to de! :;:>1i~~ :11 ;
programma Ie opportune lstruzlOm p:r dare modo allmker ,di. cancar~ 1.dI~erentl j'.~~~tti :1
overlay al momento opportuno. Ovviamente e sempre posslbIle che Sl nchleda la ~il-¥~~,\~
creazione di file di appoggio per contenere i dati generati nel corso dell'esecuzione . "':'Ii."~~~~~~ >~1
del pro aroma '~.·"::.~f':~i,~:";
gr . . ,<tlM~~ :}
Con Ie tecniche sopra descritte la responsabilita dell'adattamento del programma )~~1~ ~i~
ai limiti della memoria c~~rale ~ lasciata interamen~e al progr~~at~re., Esse non, '.~~!if:t.~, .;
consentono alcuna portabihta.: II programma compllato e suddlVISO 10 Job step 0 ~.~. ;;:;ti~* :i~
overlay per la macchina X richiede il riposizionamentq delle istruzioni che determinano :.~. ;;"~~i~;:
l'attivazion~ dei differenti passi 0 il carica-mento dei differenti overlay e la necessaria ,.'~xf%'~:~f~
ricompilazione, per poterlo eseguire sulla maccruna Y con minor capacita di memorial, )~~~ ,~
, ~,e?'li a memoria virt~ale consentono l'ese~uzione?i r mi i1 cui s aZi~>l~~] /~
d S &ZIO e a mona fislca, rna In modo de tutta traspa,:, ;:1~ 'I ~
.roJte ai l2EQgrammi~~ssi: pr grammatore neve preoccuparsl e a dimension ':".. :& p, ',..
del progr,amma, essendo q~esta ~imitata solo daU~ capaci,ta. di indir~zzam:~to del~ ::~~t~,;.
1a macchma e non dal1a dimenSlOne della memOria effettIvamente dlspomblle. Dl :?~~(} '$
c~nsegu~nza, i ~r~~ammi s~no portabili, senza alcun intervento, su macchine aventi".:~~~&, .. }~
dIfferentl capaclta dl memona [Den70]. [Den71]. . ~,..;< :j
La gestione della memoria virtuale si rira al principio d~ localita. spaziale e tempo~ .' '~,1;~,~ ;:
rale, principio che suggerisce di tenere in memoria centrale solo Ie parti di programma ::;;f/..:U:'; ,;
che sono prossime - spazialmente e tern poralmente - all'istruzione in esecuzione e ai ::,;-l@';... ~ ::
dati event:ralmente in?ir~zzati. E previsto che, ~l:occorren~a, vengono automatica- ::it~~~~!~
mente cancate Ie partI di programma non presentI In memOrta centrale, prelevandole : ;':~;~~)i 7t
dalla memoria di livello inferiore, i discbi, dove risiedono in modo permanente. l~tf;1ffij ;
Cia comporta un 'apportuna suddivisione del programma in blocchi. Esistono due ":~:?~4r~~ ,
scherni fondamentali: it primo si basa sull'impiego di blocchi di memoria di dimensione )i}J[it i
fissa , detti pagine, it secondo sull'impiego di blocchi di dimensione variabile, detti ,;,...t~ii
,::;WZi~ '·
.~ ,;~!rf~ ~
. \";J.~';; ~
1 A titolo
di curiosita storica vale la pena di ricordare cbe, agli albori della. tecnologia dei calcolatori, .....,.. ~~"", ~
"':I~~\f;:;!
venivano costruiti sistemi di elaborazione con memorie centrali di poche migliaia di posizioni e -
">.
',,",
"":Jl:"" .
.t:~. :
",' ,
l'esecuzione dei programmi pot-eva. procedere solo can it meccanismo degli overlay. Ancora negli
anni sessanta e per la prima parte degli anni settanta, la memoria tipica di up mini calcolatore nOll .":~~~~i ~
·,{,+;:'jf :
superava le 3'2 k parole; i mainframe avevano memorie inferiori aile cent.omila parole 'fJ" ~; ~
,~"
.,,'"...-~"l'
:"",iQ' ..:'
,,1 ,'"
~:1 ,.f,'
IT' ..
....$-,"'-. -
; ~..,_.

:ill'('~"i" .
-,... . ,-
I!h~·\·· ,
)
,-;~~~~._ ••

Ij,. La memoria virtuale 333


l .,~.

-~',"
:,,;/- -, ' ..
>:..;.,.-
i'~}"(', "
tr'iJ'''~
, "'..,:
" '.,. , segments. Viene inoltre usato un terZ? seIi. e~a, cIie d~r~va' dall

1
rJ~i~:">, . a comb"lOazlOne del-
:;,1'" due , consistente nell'impiegare segmentl e dlV1dere questl m pagme [FM87], [JM98bj,

I
,.;«. -,.
~;;.\r' [JM98a], [M,M90],
i~~,;i '"
.. .:,f" '
Per trattare la memoria virtuale conviene rifarsi a queste tre astrazioni.
!l~!:.,_ " La spazio degli indirizzi del programma P, indicato con V . {VO,Vl ,. , _ ,vn;-d-
Gli
fY}:'~';,· indirizzi generati dal programma vengono detti indinzzl VlrtUali, avvero rn.dinzzl
.t~jj",. . logici. •
~~:d.;:;.,·",
·)';:;;,;th"" ...• La spazio di memoria, indicato c,on M = {O,l,2,... ,m -I}, Ogni membra <Ii M
i~.&r\"',,: "'.
.-;:,~".,,;,"".'
costituisce un indirizzo fisico,
1;.", ' .
,.;J.~;,'
~jlj:.',:.<'
.
:", • Una funzione di mappatura 0 di traduzione degli in:dirizzi, che, a ogni istante di
\
~;%~l:;:.:·,·· tempo, mappa un indirizzo v E V su M:
.if!~:".'; ,
11j;,;t~ 'i.',' , f:V->MU0 (8.1)
1
1~jj~Cd,. " ' .
~:1~~' ," , La funzlOne f e defimta come.
1~";'<:';' { " all" dir' - ' M all I ' ,
;i;1.:~·;< ,

~~~{.~·,'
_
}M'~:r. f(v,t) -
1.
0
."
se all'lstante t l'oggetto III lZZO v 5,1 trova m
se all'istante t l'oggetto all'indirizzo v non si trova in M
. , ' .
a ocazlOne t-

. .
!
;"§~~~~'.' '. ". In t~nulll prat1c1, tra 11 processore e 130 memorI~ Vlene.lDte.rposto ~ ~ec;am3mo
~~11~~~:/.: ,d~ .tra~~zt-one, per r.nappare V SU, M, corne schematlZzato lD Figura .8.1 . ~e 1 ogget~o
::;;.': ,: dl l~?lr~ZZO v non .SI ~ro~a memor1~ centrale (esso ?eve comunq~~ t~OvarSI ill ~emor1a 1
~~;~;'I'':'' auslhana); ~ora 11 nf~nmento all o~getto ~etermma una condlZlone (detta df fault),
~t:i¥\ '" .~~ p~r~a il slStema, a tnterr,ompe.re 1 esecu~lODe d~l programma P, fi~o ache 1ou,etto
~t~~tf<'
~.~~k-/'" '.
. dl mdmzzo v non Vlene cancato In memona, con 11 conseguente agglOrnamento dl f,
I.
&..~;';~~;':j:' tabella
.:,~td(· \
$f~:':"
~{-$~:::,:'
j~~\:"~:-:.'
T
V
\\ .
:~j~:lf'~~t,~>
;~};~{~.;,
:~~~~~;:.;.
CPU V

indiriz:zo
11 i I 1
indirl:z:zo
MEMORIA I•
I
~~t·::~,: d. di
t:!1J~:~~ programma memoria
;;'~;;:'''
,*~~~~~.
i;;r:f:t.':'.
'. 1
i~4~~.
·:>'hf.",",
~;'rl'~~:!
~-..; ..,.'..,"
~.:;>';, '. '
!.~l:; ",i
j.. MECCANISMO Dl TRADUZI0NE
Figura 8.1 Meccanismo di traduzione degli indirizzi. L'indirizzo tJ generato darla CPU
~I
I
,,':,,:.,'r
.'" viene tradotto nell'indirizzo fisico i. L'indirizzo tJ identifica un oggetto neUo spazio degli
:r~,::.:'::'
indirizzi del programma; l'indirizzo i identifica 130 posizione in cui l'oggetto e stato caricato
~{'.;,!; ':
:. ,; ... ,' in memoria centrale.
~'f.::"~:
'~I'''1r''''
"~dj,; .'
!I..,..... :.
~'"•.t'.
334 Capitola 8
)
,.~.~ ,'-"1 ""
-'-
ft;

, . .E imp0r.tante rilevar~ che 10 spazio degli incliTiz~i V e indipendente dalle d~~en~'. }~": ~~
Slom e da ?gnl alt,ra assunzlOll: ~u!"1. In alt.re parole, ~ programm~tore ha solo VlSlone :i~l '~
, 1 d~~o ~p.azlO V, virtualmente ilhnutato. n hI~llte p:atlco e determmato dalla capacita.' :::~~~.
di mdirizzamento della CPU I ovvero dalJa dimenslOne della memoria ausiliaria. .Iilt' < -,• i
-';""'J~ '=
.' .,~' !f"
Come ~a osservato, l'alt~a motivazione per la memoria virtuale e la protezione ':~~l, >
• I tra processl.c task) concorre~tI2. . . . . .~.~>;j, "a
In un sistema a proCesSI concorrentI, SI pone II problema dl fomire al program- :~~'.l! '.
m~to:e ~a visio~e ~ella quale non compaia 1a nozione di condivisione della memoria :/{~~:, ~
• e 51 nchlede che il slDgolo prpcesso non venga danneggiato dall'esecuzione degli altri ·.'t~ '(
\ processi attivi in memoria. A tal fine, il sistema deve simulare uno spazio di indi- .\~fl~~
rizzamento virtuale per ciascun task, in modo che il task veda un proprio spazio di:~ .
~

in~irizzamento, tutto per se. Gli spazi di indirizz~ento d~:on? .es~erE~ pro~etti, ond.e ~'.:;4~~ ~
eVltare che un processo ppssa.sco~a.re ~~llo SpazlO degli I~dlnz~I dl altn 'p~OCes~I:. ,r;~t

• I Dovrebbe perc essere consentlto llmplego ill comune (sharing) dl eventuah Identlcl -'>~4~. li
tratti di codice da parte di pili processi, in modo da evitare inutile spreco di memoria..,..:~~:"- ~
.'. i~~;:., l
:,' ;'~l: ' ~
I · t . d" . .
8 . 2 S IS eml 1 pagloazlone
;\:;~.
"~;;'~!
.'."'::IOl!'
~:,.i!~
.
~'
~
·j
". 'U'jj' ,I
• Can la paginazione 10 spazio degJi indirizzi viene suddiviso in sotto-unita. di dimensione :':;~I~·I, '
• I fissa,
.
chiamate pagine

10gI'che. L e pagme
. . .
'loch
logiche. La memoria fisica viene a sua volta
t 11 'fi ' h
vista come suddivisa';",:~,~
. . .
In un numero di pagme fislche (page frames) della stessa dunenslone delle pagme ". ~~I
. .......,~
; . -I""
~
'
l
;1
ogI e vengono mappa e BU e pagme SIC e. . >~:m~· (
• In Figura8.2 viene schematizzato il meccanismo della memoria virtuale in riferi--.. '.:.~~jil.l "
. . . :~}~., J
men t 0 all a a lDazlOne. ,'.
\ p g '.,';~~~1 1
• il compilatore traduce il programma in uno spazio di indirizzi virtuali lineare, _.'.;;W' ~
(praticamente) illimitato; . ,.)1:' ~
',"V~·~~
\ • ilcodicevienepoisuddivisoinpaginedallinkerodalprogrammadicaricament6.,:-~~ .'<~m~ ~
Ovvi motivi di efficienza suggeriscono che Ie pagine siano della stessa dimensione .. :"~!':~ ,

dei blocchi trasferiti da disco (ovvero dei multipli osottomultipli). ,··}1"·
( Ai .fini della s~a traduzione l un .indir~zo virtu~e viene interpreta~o cOffi.e com- '~gl :
posta dl due campI che contengono nspettlVamente i1 numero della pagma lOgJ.ca e 10 ·,-tf1~ ~
scostameoto entro pagina, come schematizzato in Figura 8.3. La traduzione avviene . ,::~1~ .
attraverso una tabella di mappatura delle pagine, indicata nel seguito come PMT (da "~.::J

I Page-Map Table)} che fornisce, in corrispondenza di ciascun numero di pagina logica "';~%~'~
(VPN, Virtual Page Number), il numero di pagina fisica (RPN), ovvero l'indirizzo -'~~w
fisi~o de~la prima posizio~e ~eU~ pagina nella memoria c~ntrale. ~ numero di pagina .;.;\:j:.

lOgIca vle~e usato come mdlce m PMT. Un elemento dl PMT Vlene denotato com ,)~t~.
\ PTE (da Page Table Element); esso costituisce un descrittore di pagina e contiene :'f~""!~"
• ,,~
'.. ::'\t:
· .. "I~'ff
" .'d):.
, 'I'I'i~
''Jl.'
2Un processo e un'entita dinamica corrispondente a una attivita ch.e 5i svolge nel tempo e pub ·.' ',fc~
corrispondere all'esecuzione di uno 0 piu programmi in successione temporale, come, pure, da. uno "·~·i,· '·'I~''''
"..
\ stesso programma. pUll derivare I'esecuzione di pili processi. II concetto di processo e piil adegua.to · :·v'
';;,1
"
t
di quello di programma a descrivere la dinamica di sistemi in cui si svolgono attiviU. in parallelo, T,~

'. :":.:;'1,;"
."
,.. ~ /'

J
~~~ '.
'Rh
,R',;;
~"\"
.r.~~~~ La memoria virtuale 335

';""""/.1:,;..".."':. '
~r;
i.·
, i'."- _ '
", ffi >'J" "
, .' ~
;':'~,t"\!k,~

~~~~;;';" Paalna

~'~~~;.::"'
lisle.. 0

~~i;:-,
i'~~:f"'" . SPAZIO
PO
Pi
~ / Paalna
t\>lle .. 1
Pallna SPAZIO

V ~
DEGLl Hille... 2 DI
"='1'1'/":<'''''
'~1·,·,·
,.
INDIRI2Z1 MEMORlA

>~.m:( P2 PaalnD.
lillie.. 3

a~~~:;:.' P3 Paa in ..
hsielL 4
.,1 ~~:::
~jf%4H;:. P4 Paalna
Iisiea 5
(it ~t·", Paal na
~!:';,~s~t~" ' rblcfl 8

.til:'t~,.1:;:;,,· Paaln"
nste... 7
~rl~~~::,,:-,
~'W~J~;;"" Figura 8.2 Sche.ma del m.eee:mi5llio di gesti~n~ della. m:m~lria. virtu<!,le p.a.gin.ata.. ~ og~i
i,I'~~'z-A~,"" istante di t.empo
. memona S1 t.rova un sottomSleme dell'mSJeme delle pagIne, ill CUI e lOgl-
III
~'~r: camente ~iviso il p~ogramma.. S.e viene generato un indirizzo corrispondente a. uD: bloceo ~o~
l~~~r~. :': ,presente In memona. c~ntrale, 51. ha un pq.g~ fault: Esso scatena una sequenza d~ op~razlOD1
~~l~1.<:·; il cui effetto e por~are l~ memona central~ il cornsp,ondente blocco daUa memona dt massa,
'~)'~', .;;;<,.'.:,. Lo scheD1:a mette l~ eVldenza che, delle cmque pagme POI PI, P2, P3 e P4, solo P.I non e
~~t,:~. presente III memona. centrale. PO, P2, P3 e P4 sono mappate su aree non necessanamente
.·'~~q:·l·" .
j·~arf;;"'~',·;~·, cootlgue.
I, ~1:1"'1'''·.'' '
'~"~%if", .:
l·~ful~~·>,
. ;i,t\\..:.,.,
'1" md'lnzzO
, d eII a pagma
' f isica
' ' dent e. L" IIId"IIlZZ0 fi'
cornspon SICO , 0 ttenu to conca-
te ~
'.ii~,"' . d I' t t ' I" Ind'lTIZZO
, fi' d' U ' ltd
1\. " ,;~,}:, nan 0 0 splazzamen 0 en ro pagma con SICO e a pagma pre eva 0 a
(j'.f~,f;'·:~: :.PMT
":' "l~;·.r;.{~~.. ,.... ' U' d 'tt d" t' I t I" dir' d 11 .. fi'
J~r.l'!':..~~:·:, - n escn are 1 pagilla non con lene so amen e lD lZZO e a paglDa Sica,
'.'\\ .L'\;·...,
1~~!(.~' m.a anche una sene dl mformazlOlll "aggI~~tive utili .alla gest~on~ della memOria, ~he 10
. .. . . . . .. . ..

~1~lr*r:~> ~lgura8.3 sono raccolte n~l campo .Prot . Q~este lnform~lOm possono.essere dIverse
~:l "'?~f~:: m numero ~ r.~ppresentazlOne da Sistema a SIstema. Per il mom.e~to Sl ac~en~a aile
~~;~t.~~, componentl Plu comunemente usate che comprendono Ie seguentl informazlom .
~i~~~t;, '1 U b't (P) h d' I "
,~@)~~ " . n I c e Ice se a pagma l;: 0 no presen e 10 memona.
t ' '

:?l~;;;/;,
,"
,~m~~~,.~::' Facendo riferirnento alia Figura8.3 1 il descrittore della pagina Pi conterra Pin-
dicazione che la pagina non e in memoria. In questo caso, tutti i rimanenti bit
:~~;~t; d~l ~e~crittore perd~no di ~igni:ficato. Essi pos:ono essere utilizzati per contenere
~!";f~:, l'mdlflzzo della pagma loglca sulla memona dl massa.
. ~~I,!¥i{' Quando viene generato un indirizzo interno a una pagina non presente in memo-
~,~~~.' ria centrale, si ha un page fault: un'interruzione che viene raccolta dal sistema
~:M~ilk" operativo che provvede a1 caricamento della p'agina dalla memoria secondaria e
,~}.;.' all'aggiornarnento del bit di presenza.
j~!fh·.'
,l:.~ft~f;,: 2. Un campo (A) che indica se la pagina e stata indirizzata.
"!i.,~~.:t·,,
.!~ .*'~'.. . Di soli to questa campo e di WI bit. n suo stato viep.e periodicarnente letto dal
. ·'·'f{~.-' sistema operativo e riazcerato. In tal modo il sistema operativo puc tenere 1a
I~~""'.'i".'
I~"';·" '
,.- '~'~""
'~', statistica dei riferimenti alle singole pagine e utilizzare tale statistica per decidere
,~:(.
''''r.' .,
\l'l.\.::~;';.
quale pagina sacrificare Del caso in cui, in presenza di un page fault tutte Ie
't·' ~'"
,Il.~'t.,
•. .\f~'~
pagine di memoria siano occupate. La scelta della pagina deve essere basata. su
:;t~.,·.
"~ .• ,,., una politica di nmpiazzamento. Una politica molto usata e quella denominata
1~,~I;ib:'"
.1!:. t
.j;'
~ ..
" ~''};''
SS6 Capl't00
1 8 i
'
't
"
Indlrluo ""Ileo J
,.
.
H. di
10C;"o
PrWNi
N
Spl. u"-"'- en\"
nella ",In" t'
"

't
;
... , "
,~.'
• "'~:J
I" "
",

RP , .,)t ;
PMT '~:;l~z;' '
':~%~~ :
lnlfirizzo
,~

JA5{ Proy II, dl, ~:"~"'"


nile. R N)
';
." &!
":-:·,L:.l4:
.., "I'"
.".~'

I
~
:
- ",,.~:-, ~

~
V 7::~~: ~
,,,\:i>'it'f:·
'",
,.......
~

p , M ,ccV N. dl p".loa
fl~leo (RPM)
!pl,,:z;:cnto
0011"

lndlrluo "~I"o
• In..

"
, '.!,;~~.' ;,
. ';',;'7,-
• .!f ~r'
, ' '!"i~t.
, . .~,~.r..
;, "~"~'';
.; .,~v"
,

.
.'"''':'/'''
",,,·f·' '
\

Figura 8.3 Co~versio~e~ ,un indirizzo virtua~e in indirizzo fisico tr~mite 1a. tabella di ma~·~~;fi~~., :
patura delle pagme. L'mdlnZzo della tabella di mappatura delle pagIne (PMT) e contenuto, ·"pl;;., j
in un apposito registrc di CPU, qui indicato come RP (Root Pointer), La parte alta delPindi.::.i(,\~'~~~ . ;
ri.zzo v~tuale, fcroisee .10 scostame?-ta in P":'iT; Un ~Ie~ento. in PMT (:T:e), oltre a1 numero : .~,'i.~;, ~
dl pag,ma fistca,. conbene .&n:che m~or~a.zlOnl ~gglU~t1ve (11 campo 1Ddtca~o C?D, Prot, da '.,E;:i$t'~'.'
protezlOue), cornspondentl at campt qUI esemphficatl can P, A, M e ACC , dl CUI 51 parla n~l .. i .,
testa. . :, j;'~:! ',.
\ ,'I"q;;t,.
~...£o'c
" ,,,<;t
' ...... ,
.,~~..

LR~.(Least Rec~ntly Used),. che preve?e l'el~m.ina~ione della p~gina in~~i1izzat~ ,,:,;.;ji~>
da pm tempo. Dl questa e dl altre tecDlche dl nmp13zzamento SI parla pm avantl :~~;,
(Cfr S8 6 2) . :':!;;;;'
. .. . ~:.li~~~rf
'~.(,.f" ,~..
3. Un bit (M) che indica se la pagina e stata modificata. , . ,:',·~~ll,
E evidente ch~, se durante.la permanenza ~i ~a.pag~Da in memoria centrale .i1' i:,;if~
suo contenuto e stato m~dificato d~ operaztolll dt ~cn~tura, ~lo:a e necessarIo, '::.:~~~
r~nde~e co~gruente ~~ cO?la dell~ p~g:ma nella memon~ dt m~sa. 8, tratta dunque (,:JJ~:
di coplare in memona ~l mass.a il con~enuto della p~gma pr~ma che que~ta 'veng~, '. 'I;~t~~
usata per un 'altra pagma 10gIca. Se mvece 1a pagma non e stata modtficata, It ',~,~>;':;j',
caric~m~nto, in q~ella stessa ::ornice d~ pagi~~l ~i una differente pagina logica, '·,i-i:{~.;'l
n~n r~chlede l'~ggJor.namento 10 me~ona ausihana. ' . ';:'~:zt~
~'mdlcat~re d1 modlfic~ avvenuta Vlene messo a 0 quando l~ pa~ma cancata ::x,{;~ e
m mem~:ma centra}e e VIene por'~ato a ~ q~ando su quella pagma vie.ne ~ffettuata .::~~i.~'~
una. scnttura. n slst~ma. operativo deCIde m base a questo se la pa~pna e 0 no da ":;:i:t
coplare sulla memona dt massa. "::~~),~~
. ". "~'"
':::~J '
'.',0;.
. 4. Un' campo (ACC) che identifica i diritti di accesso. , .{'.".
,";',.•'
"":;"~""'
~.-. 'j~~

Sono da prevedere dei mecca.i:tismi di proteziene e di centrella degli accessi all'in- ;jt'.
",<;;.
:·.'~'7"l
formazione contenuta ,nelle pagine. Per esempio, cleve essere pessibile definire
una pagina come non scrivibile dai normali prograrnmi di utentej oppure che una "5~~P
~~;\,;;.
pagina e di pertinenza e.sclusiva di un dato processo, mentre un'altra puo essere .:::~~~,
letta da tutti i processi. h'-,-~
.. ?,_
.,.. ~ .
. )',,',~
'/ "'"
")( .
,~.,
w" .
~:~;(,r: ;,"
"I' ~ .' ,
~4li_~' :
)
il !Qf.if.?
~fJliih\'~-:~ '_-'------------------~-----.:L~a~m~e=m~or::i:a--v:.:i::rt:.:u:.:al=e:...._::3::3.:.7 ,
t..·,· . '.
'iIjjJ'"'''''',..
t'.. ","II....'" .;
'.¢iii'
"
"',
--.
,
"r;
~,',:.,:
'I' . .
Jr;~ ':"':':.
I
..", '~'ll'.•. -
.'lt~,'11 "~,., 1 meccanismi di protezione sono di per se un motivo per la memoria virtuale e
"t",,~ .\.,
-. '" '" ~
'·'i"~'P,'" "'," verranno discussi ampiamente nel seguito.
t.t~"~' ,f."'.
;·;t~ ;,~'~",
",$ . ".
".~·,r~~·,
,,,,,. '1',' ",
.-'
'.'

;~'l!DY;. 8,2.1 Dimensione della pagina


I
'''~~;~t;l.'::i
:~~~:'~'!.~::-'r: scelta della dimensione delia pagina non e banale per via delle seguenti considera- \
•·.. ,~·"f'·.·· . .
:~'(,i.<j1i':!':~ i :, ZlOnl.
I,""""<"~~'" .,
'':'n''".r.vt' ':'
~..:'JI'~" ".'
~~·~it":,~",~ • Una pagina grande tende a sfruttare meglio Ie caratteristiche dei ~chi magnetici ,
~t.t;:,~";:;;;,~,,
""\"~"':~ ~:: .
~~,\.".,
;i:,;~l j (f.f.:':~
,r,~~!!lI'" ",:, , .
.., ·flll'" '", ,
infatti il tempo richiesto per trasferire una pagina dalla memoria dl massa3 edato
dd .
a ue componet
n I:
I
,<),,,,.ltJ,;l~\,...
"~':?""'_
a) il tempo di latenz.a per posizionare la testina di lettura suI primo data del
I
:~;:,·:J .. ,7_,;,.'
. ii,;,~~l ;:,•.
'~"'1",,-.
\·+,l!"~,',, blocco che viene letto 4 i
:tf.~::'
j,K?~i,,;::'I.',
'. b) il tempo di effettivo trasferimento del blocco di dati.
;~tr';\:1~.';.\: '.
~~~:\::~'" _,
';r,.,~r.~i;;~... 11 ,"
",~ 3~qiU'; ..
Eo evidente che il peso del tempo di latenza
di grandi dimensioni.
e relativamente minore con pagine !
~~~~~I'}ti:;i ' ,
''J<..~lf:;.>('', di rna atura delle a' e e clirettamente propor-
I
-1',1', [1',,'(, '
• L si
".,I.;l."I",'
. ... . '
I~~~
~
.• ',.'
~., zio mero' dunque c'e un minor spreco . me.m.oria con pagme pili
~~':F;,~" grandi. Per il medesimo mottvo, e pagme gran (favoriscono U!iPiup"iccofOTtB
~:~~~~':~~ (Cfr. 8.2.2).
;~,1t."',·; .
~;1r,~V:!i:t ~
• Le pagine di grande d' . fie introducono u 0 dl memoria dovu-
I
.1.."11'' ':)1'' ' '
ta~al1a. COSI etta frammentazione interna, ovvero alle parti di I
,~i~~;;',~: non usate.
SCcBnsideIi un ~istelIIa in cui ciascu rocesso e stru urato in tre segmentl co:
ifk1t\'i-' dice, dati e stack). Mediamente l'ultima pagina di ciascun segmento risultera per
;~~~':" meta vuota, con uno spreco complessivo di 1,5 pagine (per processo). Si intuisce
~~~$:'~.:. che can le dimensioni attuali delle memorie centra.li il problema. non ba grande 1
;:"1fjj~~), ': rilevanza, anche se nel sistema sono attivi svariati processi. Per esempio: assu-
~':fJj~~f/\.f';-:·' mendo pagine di 4 kbyte, una memoria di 64 Mbyte e 40 processi attivi, 10 spreco
~2~~t·,::·,: sarebbe pari a 1,5 x 4 x 40 = 240kbyte, pari alJo 0,4% della memoria centrale. \
:if~A~": ;'.. Se si ammette che il sistema consenta la condlvisione tra processi di procedure i
~i~~~l.:.' e dati, allora, poiche tutte Ie procedure contenute in una certa pagina hanno
~t~'l~\:'~'~ gli stessi diritti di accesso, procedure con diritti diversi devono essere siste-
\
:,~~;:.;, mate in pagine diverse (allimite un procedura a pagina), con ulteriore , possibile
:,~~~.<,'~" frammentazione interna, J
:til ~:illl.,~"
'~l' ,lJI: .. '
; t-iH,f\j~ .~.
·;~~.l~\\"N""
liEl~''''\~·'
", , 'f,' , ",
,.,,:, 'J' ',' ,
'!:;'ii~H .. 3Si ipotizza., anche lle cia non e necessario , che Ie pagine abbiano la stessa dimensione dei blocchi
":\"~l, ....)-,
';'r~''':''i·." secon d ' • memorlzzata I' in f ormazlone
0 CUI . su11e memone
. a d'18chiI.
P }~1ijT\ < 4 A sua volta questa tempo e la somma del tempo richiesto a posi2ionare 1a temina sulla tra.ccia '
~~if0"~", " (.1eek time) e del tempo cbe intercorTe daJ momenta in cui la testina ha ra.ggiunto la posizione in
,. ~:-r~~}i~ :,:.. sensa di~metrale e il momento in cui p,a.'lsa il primo a. data del blacco sotta la te8tinaj mediamente,
~*:'~$:~r" , quest'ultima COmponente temporale corrisponde al tempo di una llemirotazione dell'a1bero del disco. )
. ~\;'lf.!",
';.,~.F", ,7,,:;
~ ,-,I 1 ,"
\ ~'l- , "'I '. ~

- 338 Capitolo 8

I Dimensione di pagina 512 - 8192 byte


'\!"
r;
.
'I

'R
Tempo di hit 1 - 10 dcli di ClOCK I~
,

\
Pen . zazione di tault
Tempo di accesso
100.000 - 600.000 citli di clock
100.000 - 500.000 dcli 'di clock ~ii
,
Tempo di trasferimento 10.000 - 100.000 cicli di clock 'o
- Tasso di miss 0,00001:70 - 0,00170 .. '~
Dimensione della memoria e;entrale 4 Mbyte - 2 LiDyte )~~1 ~
\ '''~:\~~7, h
. . ... . . .. ... .. . ' _:,:~i~r, ,
Tabe.lla 8.1 ~alon tlPl~l del. para:netn cara~te!lstlcl ~el.SI.steml a. memor~a. Vll"tu~e paglna· ",:»~, ;

~\ f
tao 81 co~~n~m? questl da~1 con 1.par~etn cara~ten.5tlCI delle c~e. 81 osservi che I'alto '>;;~i' Q
numero eli c1cli di clock persl a segwto di un fault gtushfica l'esecuzlone da. parte del sistema ':;~~ !
operativo di complessi algoritmi di rimpiazzamento e di gestione della memoria, :'::;:~;r, l

- ;\~~~, "

- I .'~':i~:~,tli
Molti st~di. 80no ~tati £atti in passato sulFinfluen~a del.la dimensione delle pagine .:;'~'~~.!~
sulle .prestazlolll del ~lSt~a [GTB73]. Nel corso degh ~Dl c'~ stata una progressiva .\';-j.~i
cres?ta.. Mentre ~egli a:nDl settan~a era normaJe una pagma dl 512 0 1024 byte, negli ; ',.1:1;~

I anill novanta la dimenslone prefenta e 4-8 kbyte 5 . . -..:~1"~'


In molti casi la MMU e in grado di gestire pagine di differenti dimensioni. Per ,:::;:~r
esempio la M~U Motorol~ MC?8~5.1 e in gr~do di gestire pagine, da 256 byte fino a <E~ ,~

- I I 32kbyte (oVVlamente Ie dimenslOlli mtermedle sono sempre potenze del 2}"~,ii;~::l\"


Vale .la pen~ di. ~aminare .Ia .~abella8.1, tra~ta da [HP93], dove sono riportati i :"'~:~~I
parametn quantltatlv1 carattenstlCI della memona paginata. ' -;:/,Y:;r.l
:·t!i,~...
- .)-::!f
- I 8.2.2 II Translation Lookaside Buffer
---------
:':'-:;1'~i
';':-J~i\!~'
,:'>4',
.... ~",
La traduzione degli indirizzi attiaverso la PMT ha Peffetto di degradare le prestazioni. ::;1$,'~
-, \ Per esempio, con la PMT di Figura B.3, il numero degli accessi alla memoria 5i rad- :; ~}il
doppia, Net caso di PMT gerarchica (CfL 8,2-4), ogni livelJo nella gerarchia tabellare ~~,':;,f¥.i
introduce un accesso alIa memoria con conseguente degradazione delle prestazioni. ,'·:~2.
- In altre parole, l'interposizione della PMT ha, come minimo, l'effetto eli ridurre di ..... ':.:;\
:~:r
I almeno il 50% la larghezza di banda della memoria. Si tratta di un prezzo troppo alto
che puC> essere evitato, con il semplice impiego di una cache associativa, denominata
Transla ion-Lookaside Bu er TLB , in cui si immagazzinano i descrittori di pagina ".~(~,
~~~~~ ,
usati di recente. vviamente, anc e il TLB ha il suo fondamento nel principio di . ..~.~~
localita. Trattandosi di una (piccola) cache, la ricerca in TLB e, tipicamente 1 pili "ti,Jiti
.. I veloce di un ordine di grandezza rispetto a un accesso in memoria.
n generico formato di una posizione in TLB e schematizzato in Figura8.4: 1a ,"':~{;~
"":~""

parte TAG con"tiene il numero della pagina logica, mentre la parte DATO contiene .:~:~:f
il numero della pagina fisica 1 i bit relativi alia protezione, l'indicatore di pagina mo· .• :.tj.!;~
dilicata ecc. 6 . Questi indicatori devono essere congruenti can quelli della PMT. Se, . >-\~~
\
)~~f,
:·~r&
"~~

·~'~dl'
:'.~ .lt
5Ancbe Ie memorie di massa banno subito i necessari adeguamenti e spesso rendono disponibili
comandi che pennettono di trasferire blocchi di esattamente 4 kbyte.
\ 6In pratica la parte DATO del TL:B corrisponde al conteDuto del descrittore di pagina in PMT
..
,..,,/)'
.'...''";"
.-"1'
~

• i!7....,."
.'"
I
_~r. .
""i'"
~r~~:,
,_.,.1-.'
!t".,.
'
,;,id7!:J' '".:
.,.,'1,.',..·-'
La memoria virtuale 339
.. ..
-m"k'
~ r;;;.i " _.
;,.;..,.
I·,h.
I', • r;ti',,,:,.· .
"!J!W"""
~··t,'>·
;.;,~.{tt "
J. ','•..-'1-
,,11:;1;,-" .
.. ,
R':ll~:;'-",
~"""':"'"''
'Ij;t""
,
.,~,."
i~.i,t!-i!K:~"~· ,
~i.~~~r~;,
, • '-1
,,, 1;"'_

,.. ,!(,-'-.'
~I numero pagina logica 11 PROT. [BJ nurnero pagina fisica I
oil;,;;;"}'.',
'Ilil!l'';;~< .
TAG DATO
~~~~"k~' Figura 8.4 Formato di un eJemento in TLB. V e it bit di validita, PROT e il campo dei
~\~tf;,~ diritti di accesso, M e l'indicatore di pagina modificata. Potrebbero essere presenti altri
h!~~r;:::'" campi oltre, a qu.elli indicati; in particolare nel TAG potr~b~e.esser,ci un campo dedicato a
,~'.~~).,,~ : contenere l'ldentlflcatore del processo che sta generando I'mdinzzo, ill modo da poter tenere
;;~l\.~.~~;'. 5eparati gli spazi dei proce5si (5i veda anche l'osservazione a pagina 342, a conclusione del
Q'l~;;';";.;:~ ,<-, Para.grafo 8.2.3.
!~,~W~':>,
li~~f{'"
"~~,-~:. .per intende~si, u~a pagina v~e~e m?dificata il bit che in.dica l'a:ven~ta z:nodifica deve
1

~:.~*.~~:r\ essere assento ~l1a nella pOSlZlOne m TLB che nel descnttore dl pagma m PMT.
j

f~:~t:;.~. .
In pres~nz~ di u~ page fa~lt, d~po che la ~agina e .sta~a caricata in memor~a,
~~~i~\;" .:'lene C?strUlto.11 rel.atlvo descnttore m PMT; Ie mfor~azlOI1l che serv~no a costrmre
F,J~~.',;, II d~s~n~to~e dl ~agma ve~gono pu~e us.ate per cost.rllIre UD, eleme~t? III TLB. I ~uc­
;:~~~~:: . ceSSIVI nfenmentl alia pagma SODa nsoltl attraverso II TLB. E posslblle che la pagma,
:'~l,f~~~'{" pur restando in memoria, non venga indirizzata per lungo tempo. In questa caso e
~,~;~~Y:\:::' probabi~e ~he 1a relativa P?sizione in TLB ve':lg~ impieg3~a ~er un'altra pagina.. Un
~Jf:~~~'t:H," nuovo nferunento alIa pagma precedente deternuna un ffilSS ill TLB e la costruzlOne
;,:11~:-:,':: .. di un nuovo elemen~o con i dati gia. ,disponibili attr~verso. il ~escdttore in PMT.
\ilWi~Yt: . Vale la pena dl osservare che 1 TLB hanno dlmensIOlll contenute entro poche
,:.
:,~rl\~': decine di posizioni; per esempio il mic~oprocessore Intel 80486 ha un TLB di 32 po-
;[1~~~""" sizioni, organizzato come una cache associativa a 4 vie. La dimensione d~l TLB e
*!ijj;f:>"~ dunque inferiore di qualche ordine eli grandezza rispetto alia dirnensione della cache
~I!.t{(· 'interna della medesima CPU. La ragione delle piccole dimensioni del TLB deriva da
,~,:t,~~...
tl~.. ,··,\., '
s~mplici considerazioni pro.babilistiche: l'elemento in TLB relativo a una pagina viene
~~~~~:;{>.' costru~to q~~~do la pa~ina viene. i~diri~zata per la prima volta 0 quando, pur ~sse.n?o
"
ir.~L·: 1a pag~~a ~la In memor~a, la: poslzl~ne l~ ~L.B e.stata ?s,ata per ~ltra pa~1fi~1 l~dlnz~
~~;;;~:. zata Plu dl recente. In 9gm casa, il prU1clplO di localita suggensce che 1 nfenmentl
.'~~~r~~~;·>· successivi a.qu:llo che determin~ la co.struzi~ne di u~ elemento in TLB saranno, con
J~~~'.lr.":.,··. alta probab1hta, nella stessa pagma 0 In pagme contlgue.
r;~}l~$~,' A titolo di esempi6, si assuma una di~ensione di pagina di 4 kbyte e istruzioni
:
,"
'~~f'b'; di 32 b.it.. Si co?sideri .una pagin~ conten~nte .un t~attP linea:e ~i progra.mm~ -
t"§R.:~r·/· s~nza clcll 0 saltl .-. e ~l assuma che l~ I?nma lS~r~zIODe esegulta 1 questa pagma
::.~~~(~ ~la quel1~ alIa poslzlon.e 0. AHora t~t~l 1 ~u~cessIVI 10?3 fe~c? ~a:'san? attrave:-so
:;tl~~:;,: 11 medeslmo elemento m rr:LB ..Se POI ~potlZ~I~O che 1 da~l LDdln~zatl dal COdlC~
" ":.~(\it~L '. contenuto nella nostra pagma SIano eSSI 5tessl III una medeSlma pagm3, ecca che Sl
;:~H;'.:~:' i; richiede solo un secondo elemento in TLB fintantoche ~l centrollo resta in pagina.
f .tit~L-" ·In riferimento al 486, che. ha pagine di 4k?yte e un TLB eli 32.posizioni, si ha che
~ (I~~:;'-:'- un programma non supenore a 128 kbyte Vlene totalmente descntto attraverso Ie 32
~ ·l:1?,;:;.·. posizioni del TLB 7 . In queste condizioni, la generica pagina di progr;;l.mma 1 una volta
, ,·~~rrf~·. caricata, resta in memoria finche dura l'esecuzione del programma stesso. Assumendo
&t~~~f~':·
~l'k' .

t'I t~~~" .
.' 7N~tura.l~nente il
si fa l'iP?tesi .che pr.ogramma stia in 32 pagine, ovvero che il codice Don sia
~ 6.'r~:~' frantumato In un numero di pagme superlore a 32.
. ~·f»'
"~,,",,
,
, •\:I.. 1·• •
' ~»!'
..... .
"
'.
.-
:~
~ :~~~'
"~'
'r~
340 Ca.pitolo 8 '"-~:\
","
:
~~"::':2::::::'::''':'' ~"

{r~~ ,.
•• ~.. ~
-i""~'~ ;
,-",:;.. r~

la politica demand paging (efr. 8.6.2), una pagina determina un miss in TLB al primoY~~ '
indirizzamento (cui segue un page fault che ne determina il caricamento) j i riferimenti ~Tl\~' i~
successivi fanna sempre hit in TLB. .~~~. :'
..',."":,~" :
,~}G:f'~' t#
Dimensione eli un elemento 4 -"Fbyte '.. ',.:,:'J.?~ ~
Tempo di hit 1 ciclo di clock :::,",~'I.;~ ';
Penalizzazione di miss 10-30 cicli di clock I ... i{"', r
Tasso di miss 10,1%-1% "'~~t1i ~
Dimensione 32 - 8192 byte ,,; '. (1! 4
;:;~~" :'
Tabella 8.2 Va.lori tipici dei parametri caratteristici dei TLB. J~i;' ~
:.;.'~~., '
'<::~\~;1 '
. . .. . . ... . ~:f,~: <.~ ~
La TabeUa8.2, tratta da [HP93] formsee datI quantltatlvl carattenstlci SUI TLB. 'i"r' ;:~ ~
, '.~·;c,;' ~
. ":);j~:'~" :
8.2.3 GestlOne della tabella .....,,,,1Ji,. ,
.. ... ~._,"
('
L• • • ~'" '

E giunto it momenta di affrontare direttamente Ie problematiche relative aHa gestione" .'~j~~~*


della tabella. Cominciamo col riehiamare rapidissimamente alcuni eoncetti relativi ai ,,~~~~.:""- ,
sistemi a processi eoncorrenti (aleune delle questioni sotto esposte vengono riprese nel .' ~:~~
capitolo dedicato alta protezione). :.';.~i:-'::
{-.~~,{,
...,c,~:=;'Oi
,.". . ~,,!;j

Sistemi a processi concorrenti L'esecuzione apparentemente simultanea di piu ,~,~- '


applicazioni viene detta multitasking. Si parla anche di sistema a processi concorrenti; '~:)$,
La coneorrenza viene otte~uta ripartendo la CPU tra. i differenti proeessi, in modo che .,:"~!J
tutto avvenga come se vi fossero tanti elaboratori quanti sono i proeessi in eseeuzione··'~':':'/~t·
'. Si usa il termine eli 'processo sequ~nziale So tas~) per denominare ~,a attivita c~e '\~;.~.
81 evolve nel tempo, cornspondente aU esecuzlOne dt un programma (0 pm prqgramml) ,,:,1.~~
su di un sistema di elaborazione. n concetto di proeesso evidenzia l'aspetto'dinamico 'YNf'
dell'elaborazione, in eontrapPo~~zione all'aspetto statico, rappreseotato dal testa ~~l ,'jt~;:<
programma. In qIodo un pa' pm formale un processo p e rappresentato dalla e.oPPla '~-0?~~i
(P,S) dove P e un programma e S e 10 state raggiunto dalPelaborazione. In 00 dato /:~~"
momento 10 stato S e rappresentato dall'insieme dei valori assunti dalle vaiiabili di. :,'~::J~~:
progr~~ o~tre che daUo stato del processore s~ cui ii. ~ro~~~a e in esecuzione. ,:.7Af~
Le vanablli dl programma fanno parte dello SpazlO degh lOdmzzI del ~rogr~rnm~ (~. ::",£1l'
del processo), mentre 10 state del proeessore e data dal contenuto del SUOt regtstrt . 'i~h.~
(generici registri di macchina, PSW ecc.). , ',:~~lt·
Tn un sistema multitasking la CPU viene a5segnata in tempi diversi a task diversi .';9",~:
(per semplicita si assuma the 1a macchina sia monoprocessore). ~io vuol dire.che ~·~Ui;"~~
l'e5ecuz~one dei task deve p~ter essere sospesa e ri.pr.esa all'occorrenza. La sospenslOne ··::;1@·;·'
puo denvar~ dal fatto che i1 processe non ha pe.r 11 mornen~o alt~o. da fare (perche, . "''">$.;
per esempio sta attendendo 11 completamento dl un'operazlOne dl mgresse) oppure '" ....~~.~
). ..,. .) . .. d'· m 0 '''>:~l:~'
perche (e questa 11 case del slsterru hme-~haT1ng e. termmato 11 quan~o 1 te . p . :' .;:!.1~.J
assegnatogli. Nel sospendere un processe e necessano salvar~ tutte Ie 1Dformaz~om ".\:,~;~::,
ehe servono a farlo ripartire come se niente fosse aceaduto. A tal ~,~?c~~rre a.c;SOClare ,(~?J.
.., . :.. ;~;¥l
\".,.\1;
J;\~
~\ ...
,I;,~::"
~::..
"'):1:-'
.•".~ti'::lIc!.
~ ~"f ' '.
.
La. memoria virtuale 341
I •

.: ~":t.:1-", ,-
~" Ifl'~
;,\<".;"~.>!'.,
~
.
.X,I- ,j , ,... 1.
'~ig;·,. ~'. -a ciascun pr~cesso un'area di memoria per queste inform~i~ni. L'area.in questi~:m~
,: '.
~f,l;~~3i viene denommata Task Control !Jlock (TeB) .. TCB e l'msleme d~l1e informazlon~
'~.~1i:::~'_ di stato del processo lisate dal sistema operatIVQ per tenere ttaccla dello stato di
·'i~1ffi.',~/ esecuzione del processo stesso, Quando l'~ecuzione di un task viene sospesa, tutte Ie

#§:~;~:i;' ~.:inforrnazioni relative aIlo state del pr~cessore, che servono alIa successiva riattivazione
~1f:ft~1: vengono copiate in TeB. Queste in1ormazioni vengono pertanto copiate da TCB nei
;l~~~h',:. '~~gistri di CPU all'atto della riattivazio~~, Si ?ot.i ~e una ~ queste e sicurament.e i~
r~~t.~!::, ,.- valore Program Counter, ma ancbe tutti 1 regJstn di macchma devono essere coplatl 1.
~;N~~~~;:::~ in TCB alll~tto della ~osp~nsi.one del processo, in ~uanto questa pu~ arrivare in mod~
4;.;;ti.~~(. del tutto aslIlcrono e 1 regtstn possono, per esemplo contenere valon appena calcolatl
'\Z~i;!;(,' p~r Ie variabili, rna non aneora assegnati (cioe non ancora "registrati" in memoria).
~'F~~r~ .::''" ' ' _
Per 1a sosp~nsio~e/ attivazione ~ei processi si usa. iI. termine di cambiament? di
'f ~~!\~" contesto. La logIca dl CPU pub formre un supporto mJDlrno 0 completo alla gestlOne
I
';t~~~~i~>· del car:nbiamento di c~ntes~o8. In ogni. caso per gestire il mu~titask.ing, it ~istema •

~,t.4r~~~~·:.'~~operatl~o asse~a un ~de~tlficato~e a clascu.n process~ e ma.,ntIene alcune. hste:.. l~


~';41~~~$J:1;~' : 'lista' del proeessl pronh (ewe quelli ehe sono m grado dt esegurre), quella del processl 1 •

~j~~t.~1\;::bloccati in attesa di qualche evento ecc. Per costruire Ie Hste si impiegano puntat_ori
:r;~~t~;2:,..; che vengono eontenuti entro i TCB (in pratica Ie liste sono liste di TeB). $empre nel
,~1'i''\:1'::'TCB si trova I'identificatore'.
'~ ...

*~J.'f.r·
,.,.. ~;,
r~''','

..
.'

"
,~~.~:::~, Memoria vlrtual~ e m~ht~~kl.~l~
. .. .
In un slstema multItasking, og~ pro~esso deve
! •
:~U~\ ,P0ssede!e un proprIO ~pazlO ~l. m~I:lz~ar.ne~to, separato da q~eHo degh altn t~k. La
,i~i'"l'" .separazlOne della SpazlO degh mdmzzl dl Clascun processo puo essere ottenuta
~1"""':1.:J,r '. ',modi diversi: .
In due l.
'.
J!i:.r.l'' ·:- ~,.,
t1!A~'Y~\I\"
:~~..t~ 1. prevedendo una tabella di traduzione per eiascun pro€esso. E questa la so-
:0~~:~< luzione piu usuale ed e usata, per esempio, nell'architettura 68000 Motorola e I
!iit.fi:':;:.. , nell'architettura x86 Intel. I
~~;~qJt?~)~ .
ll~f:"i:;J;-~. ~re~~de.nd?una.tab~ll~ uni~a per tu~t~ il siste.ma e p.re~ede.ndo the gli ~p~i
:;~~~Fi:·;..;·
degli
mdmZZl virtuah del smgeh processl SIano del sottom:neIDl della SpazlO virtuale
,
'~~~';"(. del sistema, in modo che ai processi possano essere assegnati spazi virtuali non J.
~·r~1,fi};i~:. .. sovrapposti. Questa soluzione e usata oell'architettura PowerPC e di essa si parla
:i~V,i!~~~~?C,/ nel Paragrafo 8.10. •

;lkl@;,~.:;·. ... . . \
: ;~~~i::"~::' Facendo riferimento alIa soluzione a), vediamo come un sistema operativo po- I.
1f~~:r· trebbe ~estire la ~emoria vi:tuale. . . .
',.:,@~~~'\':". POlche a ogm ~rocesso e as~oelata una sua ~MT, 1 TCB dovranno eontene:e il •

.;~~~.~:;.', p.unt~tore aHa relatlva tabella, lD modI? che ogm volta che un clato processo vtene 1
· TF.;t>,:;· " nattlvato it puntatore in- questione possa essere eopiato in RP (Cfr. 8.3). Dccorre poi ).
: ~~~~6':~.,:, stabilire come,vengono tenute 1e tabelle in memoria. La PMT descritta in precedenza
~~!i1&.{.'.:;',e una tabella piatta e quindi deve essere prevista per essa tutto 10 spazio che pub •

·' .:l~ltW'.~~(:"
:~~~t··,· 8 , ' .. . " . .

~' J',;.. ?~,.:... Nell a.rchltettura Intel, 1a loglca. dl CPU (a partlre dal 286) gestLSce direttamente 11 camblamento
1~.f:~·~I~'." delcontesto (Cfr.9.4).
J .~~T':t,. 9L'ident.lficatore pub essere un semplice oumero d'ordine, rna pub anche eMere un qualunque altro
, :?'im~:'~I'\ g:~ere ~i informazione assegnata univocamente a ciascun proce5SO (nell'architettura Intella. funzione
.,
..~~.t¥ dl Identlficatore e svolta da un ulettore Cfr. 9.4). J
(~1$~·::,
.... ,'
.,:'1',~
,. - ;~~~
,,",','
~'1'
342 'IB
Caplto 0 ".,~
~'~~.

I
•••."':0:;
":'£i
<;;'f;:'

occupare.
.E facilmente intuibile che cia porta a uno spreco eccessivo di memoria: :.~:~L
,::!>'
:~

tra. poco abbandoneremo questa ipotesi. Peron momento 13 manteniamo per ragioni :!,.~f.ID~
I di esposizione , facendo finta che la memoria sia illimitata. .>I~",;
Possiamo ipotizzare che la memoria fisica sia divisa in due parti: 13 prima parte"~~!if
usata per contenere il sistema operativo al completo lO I 130 seconda parte usata per <;~~~"
i. processi. .Possiamo an.che ipotizzat~ che la parte contene?te il sistema opera~ivo :}1~1
\ ala. non pagmata e che Sla tanto amp13 da contenere al suo mterno tutte Ie posslbili ~~~~~
PMT. All'atto della partenza <Ii un processo tutti i PTE della relativa PMT devono :;i';\jti
?re~~ntare l~ componente P a .zer~. M~o a mano ~e ~e pa~ne virtuali vengono:, ~.~~
mdinzzate Vlene assegnata una pagma fislca e reso vahdo 11 cornspondente pTE. Per .: i;jfiffl~
I \ ~oter ass~gnare una pa~a fisica il si~tema operativo deve ~enere ,una lista delle pagine" ~~,~t:i~f,
libere11 , ill modo che} ill presenza. di un page fault, 1a pagma fiSica venga presa dalla. .:~ ~~
lista, senza dover rimpiazzare alcuna delle pagine giil. impegnate (per questi aspetti si ":~::j~
veda il Paragrafo 8.6). Un esemplO ch,arlra m~gho quanto detto. ... :i';t.~!I'
I Si. suppong8o che all'atto dell'avvio del processo PI 180 lista delle pagine libere si~: ~~~
questa. ',,' ,_.)~~t
., ,'-"'::~.,

I
"':"';or,~tl!
• . "t:jl....

Lista delle pagine libere: 50,230,20,21,179,40,41,43,1030, .. :.\}iii'


-.""'~j!i'.
-" ,··H'lt.;
";.l;".
, ,.";~!'il'
Supponiamo che alla partenza del processo il sistema operativo allochi solo la' ·>~I
: I I °
pagina virtuale in . . . . . .
assegnata la pagina fisica 50. Supponiamo che dal1a pagina virtuale 0 il controllo
passi alla pagina 2 generando un page fault. Supponendo che dalla lista delle pagine
libere non siano state estratte 0 aggiunte altre pagine, al processo verra assegnata la

! pagina fisica 230. Se ora un altro· processo in esecuzione genera un altro fault a esso
verra assegnata la pagina 20. In Figura 8.5 viene data una schernatizzazione della
stata della PMT del pracesso PI dopa che gli e stat.a allocata 180 pagina 230.
Le ipotesi Catte in precedenza sono esageratamente irrealistiche. In particolare
, \ non ha sensa considerare un sistema operativo rnonolitico, non paginato, contenente"
at suo interno tutte Ie PMT. n paragrafo seguente iUustra soluzioni pili realistiche.

- I Un'ultima osservazione. Ne~ discutere il TLB (si veda in particolare la Figura8.4),


si e osservato che il campo TAG potrebbe contenere l'identificatore del processo ehe
genera it riferimenta. Cib serve a tenere separati gli spazi virtuali eli praceSsi distinti.
Alternativamente si puo evitare il campo TAG in TLB, rna, in tal caso, enecessaria che
il sistema operativo (0 180 logica stessa di macchina) provveda a invalidare il contenuto
\ di TLB quando c'e un cambiamento di contesto, altrimenti si avrebbero erronei hit
tutte Ie volte che il processo subentrato genera un indirizzo uguale a uno generato in
precedenza dal processo sospeso e aucora presente in TLB.

• I
lOOvviamente anche questa. e un'ipotesi irrea.listica..
• llSi pa.rla. eli lista. perche e la. struttura. da.ti intuitivamente piu adeguata. in questa contesto. In
pra.tica il SO pub ricorrere ad altre strutture di appoggio per tener tra.ccia delle 'pagine Jibere, in
- \ modo Don dissimile rispetto'a quello usato per tener traccia dell'occupazione dei settori e dei cluster
au disco.

)
La memoria virtua.le 343

0
Memoria Fisica ~
Spazio
t• Virluale
'Sistema File System dl pi
•"
~
0 Operativo o
- •c ,
~•
••
.. - I '
, 0
PMT pI
~ GJ o 2
3
,
'
~- ' CJ
o

,~
l-
~ --.
.
I Allre PMT I GJ
••

0
0
"
~ \. P&.ginfl. 50

• .-'
,.•
~

~
.'. ~" ~-
yaslna 230
-

Figura 8.5 Scbematoizzazione dello stato della memoria gestita secondo Ie ipotesi sempli-
ficative fatte nel testo. II processo PI ba fatto rjferimento aBe due sole pagine virtua.li 0 e
1 (inizialmente e stata caricata solo Ia. pagina 0); per esse sono state assegnate Ie pagine
fisiche 50 e 230. Lo spazio virtua.le e quello degli indirizzi logici prodotti da comp~latore e
tinkerj e uno spazio lineare, che cODvenzionalmente inizia da O. Ogni pagina Iogica si trava
sui disco gestita dal File System (un componente principale del sistema operativo). Ai £lui
dell'allocazione delle pagine fisiche a-i processi i1 sistema operativo deve (per 10 menD) tenere
traccia di quali sono Ie pagine Iibere.

8.2.4 Tabella delle pagine gerarchica

Una tabella delle pagine piatta come quella fino a ora considerata e alquanto proble-
matica da gestire per due motivi:

• 10 spreco di memoria che essa comportaj


• 1a difficolta a mantenere uno spazio di memoria contiguo in uno spazio nece9sa-
riamente virtuale e quindi paginato.

E facile verificare ehe 1a tabella puo diventare enorme. Si consideri per esempio
una maGchina clie genera indirizzi virtuall a 32 bit e pagine d.i 4 kbyte. Il campo dello
scostamento entro pagina e di 12 bit, mentre il numero di .pagina e dato attraverso
i restanti 20 bit. In altri termini si richiederebbe una PMT di 220 . == 1 M posizioni.
Ipotizzando che ogni posizione richieda 4 byte (1 per indicare 10 stato della pagina e
3 per il numero di pagina fisica), si avrebbe una tabella di 4 Mbyte. E questo senza
aneora aver occupato alcuna pagina. Un tale spreeo di memoria e inaccettabile, anche •

percbe si ripeterebbe per ogni processo.


.'
344 Capitolo 8
t,::\:\.
.., .
.,;~~
~

,'-'a""
-::'1 ~i
Ovviamente non e necessaria cbe la PMT abbia la dimensione massima. n sistema .;~!
operativo potrebbe gestire tabelle di pagina di dimensioni limitate, purche sufficienti a ";'~,#.I
coprire 10 spazio degli indirizzi virtuali dei vari processi. Nel nostro ca.so, ipotizzando .:51
che 10 spazio degli indirizzi di un singolo processo venga artificialmente limitato a . )'#
8 Mbyte, si avrebbero 4096 pagine per Ie quali occorrerebbe una PMT di 16 kbyte, :di!F'
corrispondente a110 0,2% della memoria. .. :I{;;i
Si pone comunque un problema non banale: la PMT deve, a sua volta, essere ;J~': '.'
paginata 0 puo essere un blocco contiguo di memoria fisica? In precedenza si e ipo- ,~~.l~~
tiz:?ato che quest'ultima fosse la soluzione, rna si tratta di una soluzione artificiosa ":~)~t~~
e e
in quanta la memoria paginata e} quindi, naturale che anche gli indirizzi generati ~'~~r.
dal sistema operativo quando manipola la PMT siano soggetti aI meccanismo della ""'J':oS)~~
traduzione12 . In altri termini, e meglio prevedere che anche la PMT sia paginata. "¥'¥J'
Per i motivi ora discussi} la PMT viene normalmente strutturata in forma di ",?f~ . 'to'"
gerarchia di tabelle, come illustrato in Figura8.6 dove si ha una PMT a due livelli. "';~t,?~
n campo de11'indirizzo logico dedicato alPindividuazione della pagina e ora sud- .,~:(9&
diviso in due parti: 180 parte di primo Hvello e la parte di secondo livello. La parte '~'i~;r'Wf';'
eli primo liveUo viene interpret80ta come numero d'ordine di un descrittore entro Ia "'~:'mr:.
tabella di primo HveHo. Questa descrittore fornisce la base di una tabella di secondo ".)~I;r~~"
e
livello, dove contenuto il descrittore di pagina individuato attraverso if campo di ,:;~" ~
secondo livel1o, che, a sua volta, fornisce 180 base della pagina fisica. ,.YI~B.i
In altre parole, una tabella gerarchica costituisce una struttura ad albero (albero ./.;~~
e
di traduzio~e) . . La Figura,8.6 indica che. or~ i1 r~gistro RP 1.a ra?i~e ~e~l'albero" ""\~':~i'!1
?vvero co~tlene II puntat?re alia ta~ella di pnmo hvello, neUe Cut. pOSlZlom sl.tro~ano', ,\~;'~tl':
1 puntaton alle tabeHe dl secondo UveHo. La MMU e
responsabile della navlgazlOne .,'i~
attraverso i differenti livelli fino alIa pagina fisica. Sembrerebbe naturale che Ie tabelle .. "..!~
fossero tutte della stessa dimensione , indipendentemente cial livello a cui si trovano, ',~:~-tl~
e pari alia dimensione della pagina, in modo che, dai punto di vista dell'allocazione
della memoria, non ci debba essere differenza tra allocare pagine fisiche e tabeHe
costituenti PMT. Tuttavia alcune architetture prevedono 1a possibilita. di avere tabelle
di differenti dimensioni ai diversi livelli 13 .
La struttura ad albero riduce 10 spreco di memoria. Per rendersene conto si faccia
ancora riferimento a una memoria a 32 bit} indirizzi su 32 bit, pagine di 4 kbyte e
tabella a due livelli. Si assuma inoltre che i due campi relativi a1 primo e secondo
livello siano di pari dimensione (10 bit). La tabella di livello superiore permette di
descrivere 1024 tabelle di livello inferiore, ciascuna delle quali, a sua volta} permette di
descrivere 1024 pagine corrispondenti a uno spazio (ma.ssimo) di 4 Mbyte. Pertanto}
un programma che non supera questa dimensione viene descritto da una pagina di
descrittori (la tabella di secondo Hvello) e da una sola posizione nella tabella di primo
livello.
Risulta evidente che i programmi normaH (quanto a dimensione e grade di di-
spersione) possono essere descritti attraverso poche posizioni nella tabella di primo
livello e dal corrispondente nUIDero di tabelle di secondo Hvello. II vantaggio prin-
cipale consiste comunque nel fatto che la tabella risulta paginata in modo del tutto

12Un ben noto schema di traduzione che usa tabelle piatte e la memoria virtu ale dei sistemi VAX,
ampiamente descritta in [HP93]. Essa. prevedeva che ciascun processo avesse una sua PMT plana,
presa neUo spazio virtuale del sistema operativo.
13Si veda piu avanti 1a descrizione della memoria virtuale della CPU 68030.
".

La memoria virtuale 345

RP I"..... l"~, I
1
Memoria centrale
,
lndiri:zzo
u .... Uo I
virluale
U ....llo
~
I $~~,._hrn
....... !'lo
,n.
T..lo.l1.. d.I "".. ppal..... eli 11_110

I
,,~

II..... l.b. 1I_110 II


! .
'\" T.b.. lt.. d.I .... pp.,...... dl l1... uo II

4 • • •
\
,

\,
I
~ a.... d .. ll. p.,lGa

Pel-gina fisica
I
1I\<lI.-1UO 11.100 1
)

\
Figura 8.6 Schema di traduzione degli indirizzi con ~a.belle di descrittori di pagina. orga-
e
ninatoe gerarch.icamente. La PMT risultante una struttura ad albero, in questo caso a. due
livelli. RP e un registro di CPU che forniscc l'indirizzo della tabella di primo Hvello.
1
naturale e che in memoria centrale si richiede che sia presente 180 sola tabella di primo
livello e, per 10 meno, una tabella di secondo ,liveHo - quella che descrive Ie pagine \I .
cui il programma sta correnternente facendo riferimento. La struttura a due livelli
consente la gestione a spazio di indirizzamento sparso tipica dei sistemi UNIX.

La struttura a livelli consente di far ITonte alia richiesta di memoria in modo
adattativo rispetto al susseguirsi dei rif~rimenti. In particolare si pub immaginare
che all'avvio di un processo vengano allocate 1a tabella di primo livello e una di 1
secondo livello per descrivere le poche pagine caricate aI' momento del1'avvio. Con

l'eseeuzione del programma puo capitare che occorra allocare nuove tabelle di secondo
liveHo. Cio avviene in modo naturale: quando oecorre una nuova tabella di ~econdo
Uvello basta allocare una pagina tisica e inserire i1 relativo descrittore nella tabella
di primo livello. Durante 1a normale esecuzione ~a memoria conterra} senza nesaun
l
ordine predefinito, sia Ie pagine di programma, sia Ie pagine corrispondenti ai vari
alberi di traduzione. Lo stesso sistema operativo risulta facilmente p80ginabilej Ie
relative pagine e il corrispondente albero di traduzione entrano a far parte del pool J
346 Capitolo 8

• I comune eli pagine eli memoria 14 , A tale proposito si veda I'Esercizio8.L


.. ".~
,~:~:\.~:'
"'Wl'll
,,' :\i'
'.'" :,;:~ ,

",:1.",
''"'. '1'
, ',.\,,~
, 1,;1 1'-,
..").'i:
. •...?>.i
\ :\'~~I'
8.3 Tabella delle pagine invertita '"'\1:\'r-t'''
. . 'J
. bJol
"", ,r'11'.•1il"_,j
E gia. stato osservato che la PMT pub diventare eccessivamente ampia. Un modo per ;:~~~j
\ conteneme la dimensione consiste nell'organizzare la tabella delle pagine in forma di :l~~~,
"tahella invertita" [JM98a], Schematicamente una tabella di pagine invertita (IPT)!At ,
Presenta queste caratteristiche: . ':::!:~,~, '
.. 'I'·'
'" :',(l~i
. I \
a) ha un numera di elementi pari al nurnew delle pagine fisiche; :,,:~'.[k~'
.~ -.}"~
",:1 ';,,:\1;
b) ogni PTE contiene non il numero di pagina fisica (RPN), rna il numero di pagina ,'~;~~
. "" \'1'
• , "", 1
j

I virtuale (VPN); , , ".l,I.;1'


'",,;1.
, '·','I'l'
'.' ',,' 'J
,,", 'I ~'
'I
c) l'indicizzazione entro la tabella e ottenuta attraverso una funzione hash. "';:~j~r
, ;I(..~
~" ""1
:

I In Figura8,? viene illustrata 1a struttura della ~PT e il meccanismo di traduzione ':'~:·~if;


dell'indirizzo. ·La chiave di ricerca e VPN e 1a funzione hash produce un1associazione )/~~'" i
tra i VPN e Ie posizioni in lPT. ,~ I 'n,••
'.,
.
. ' ,_.
,:Ill...
!
,

'. I o
Memoria Fisicll.

Palin.. lltllca 0
<.,
.",rll~
,,'".:~i,l£
."
j

-, .... '0;.'
!\f~l
::".(~l .~
,1

I
, IPT . t'~~\~!' ~
, i?i~, :

,
\I b
0 Prot, 'PN
1 P..gln.. tisle.. 1 ,
,," ''',J~"
;;I"~
.. ._,'f.
.' I: "
:
VPN
1 Prot.
.
...
. -j!;',.
.. '" ~~.,
. t,
'" i'i, ..:~i;
, "~~1<~l!
, :;:l.1
.~ 'liei''''
:\ VPN nJNZIONE,
""SN
I,
Prol. 'PN •
, (. ,,~
,
..'-~l~!
,;
, I'
:~
~_

l:t=l . ":'\'

-·jt1tI'C ,
'J\l
, ," '''I!
, ,
':'lll'
, 'I
,,-r~'

I
,

R-I Prot. 'PH !


..,;~'.
',,'.
",Ii, I~
..;~,"
".,i\!!
,... u:~~
• ,~m;.

1
R- 1 Pallina IUle.. R- t

Figura 8.7 Tavola delle pagine invertita (IPT). La tavola presenta un numero di PTE
;
pari aI numero di pagine fisiche R. I PTE contengono (oltre alle informazioni relative alla.
protezione della pagina) il numero di pagina virtuale (VPN), L'indicizzazione in IPT e fatta

I attraverso una funzione hash che produce un indice h, compreso tra 0 e R - 1, per ogni VPN
(la chiave k). Dunque un data VPN pub trovarsi solo in una ben definita posizione,
, __
,'~;'~.'
:~~:'fi"
:}~I~'
"~'b
\ 140vviamente ci saranno parti speciali del sistema operativo che non potranco essere paginate (si
veda il Paragrafo 8,6.3). .
.J::'.
,,:~.'
:,l:,..
"':'("H;
J)'
,.,1Ii"

I ,.'"
'.,',
",
'k:' '
'Ql-":"~ ,
,,'I'. '.
I"~.
'~ft> __-----------------------L~a.:m~em~o:::.n~' v
a:-.:.ir::,:::tu:al,:::e_-=3:,:4:.:,7
:~f-;,~'~.
~~ '.. .. -
)¥ii,j':,: ;
l;l~~!· " ,.' .

J~~r~;:; <"' " Per via della relazione 1:1 tra PTE e pagine fisiche, se i1 campo VPN del PTE in
~~~~?~:_:'posizione x contiene it nUIDera Y all?ra 130 .pa'g~a ~uale. y e ma~pata ~ulla pagina
I

~~'(~~.:;. fisica x. In altre parole, nella traduzlOoe dl un mdinzzo VlItuale, 81 ha h~t se i1 PTE
~:~if{:\'selezionato dalla funzione h(VPN) contiene un numero (di pagina virtuale) uguale a
r~j,~~:',: VPNi si ha fault in. caso cantracio. ~ssendo i~ ~urnero di cbiavi (il valore massim? di
1~~~~~~'\; VPN) malta supenore aJ DUIDero dl elementI In IPT, se k i e k j sono due genenche
'\'.~~~~~k~:~,;' ~~iavi. con ki i- kj , e possibile che si abbia
:,;,'\\'\~~I\,~·",,,!·J' .
,~r~J~~>:.',;' h(ki ) = h(k;)
'~~!:ti::.Ovvero
lj(;Wi;;rn.' 1,1.,,) " ,
che due (0 piu) VPN vadano a collidere sulla medesima posizione della IPT,
:,ltJ:1i:"t\i;l- .", '.
"1h)'J,!¥r" ".'
;~(iJ~!.':~:,; L d'fi h h
jf~~f~i~~i~",?~~. ,3.1 a co 1 ca as
'N~j::,~;;ersamente
I~lj.:~';:"
da altre tecniche di ricerca piu castose, quali 1a scansione completa
0 hash
la ncerca bmana, la tecmca tenta dl ncavare dlrettamente dalla cruave dl
:~§1~~~';",,:'rjcerca la rnassima quantita possibile di informazione circa la posizione dell'elemento
ifiil\ll~i,,\:)cercata [Luc72], [Knu70], Una funziane hash davrehhe, da un lata ridurre al minima
if~§:>','~'e c?llisioni, dall',altro essere piu v~loce possibile[D~c901_ Esistono diversi modi per
It,j1,/reallzzare 1a funzlOne hash della ch,ave k; ne elenchlama brevemente alcune[Luc72],

!t1'!;v;,..':' a) h(k) e un sottainsieme di r hit di k;


If,~~~'::'- "b)
1L:;"i~.""',
!foi!"~J!.l",,, "",'
h(k) eresto della divisione tra la chiave e iI numero delle posizioni della tabella 15 ;
oI';w;.'f""i'~'''''' •
~)~>t!;i·',",.-,
:;:!t.'l'~,t,l-. ~,.
~~:;:~, "
.. c) h(k) e la somma bit
a bit di due sottoinsiemi <Ii k ognuno di r bit, Qvvero si
'·""~I';<':; ,,, .., ' esegue 1a somma modulo 2 (XOR) tra i due sottoinsiemi,
";'i~~,~"" "
"~";~)""' ',' ":.
:~1~(~'-~" La soluzione del punto a) ha il pregio della semplicita., tuttavia non assicura una
:;~;~:"': buona distribuzione dei valori degli indicij quella del punto b) buona da! punto di e
~~1ij:>i v~s~a, della distrib~zione degli indici l ~a ha ~l di!etto di essere lenta a causa dell~
~:;$~.}t,:. ;:-,q.lylslOnej la soluzlOne del punto c). ha 11 preglO dl essere poco onerosa ~al punta dl
,~T:: .,vista del calcolo e di generare una distribuzione uniforme degli indici 16 , E questa la
J~*~i,F:;i. '.tecnica usata nell'architettura PowerPC (Figura8.43),
1 ~;¥Ji!"-~ J
.!>,~t" -,. '

~',,.,""",,< ,;.,
''I
.
li'll<·,·~
",~~~,,."

I'~'p" 8.3,2 Gestione della tabella IPT ,

;(lfb:
:~~1;.~,,~;"~:':
L:organizzazione di Figura8.7 e poco 6essibile e safIre di un problem" paiche un da-
to VPN non pub che finire in una sola, ben determinata posizione, se un programma
i ;:w, '., -,.-,
(l' _.-w,.-
,.\~t_-.. )~
,iif~[~,,:, " . ISSi not.i che se R. e u~a ,pote~za. del 2 si ricade nel caso precedente, infatti il resto della division!!
,4~~~.;:.'-.: k/2'" COrrlspone agh ultlml n bit dl k.
"~4:<,::" L6La distribuzione ~niforme ~egli ind~ci deriva. dal fatto ch.e l~ tabella di veriU, dell'op,era~lone
"'~~;~j;\':' XOR presenta. due zen e due UnI come nsultato. Se per esemplO Sl vuole mappare uno Spa.z1O dl 256
;~if : . posizioni su uno di 16, la funzione bash pub essere ottenuta come XQR dei 4 bit piu significativi
:;~:;F':, con i 4 menD significativi del numero dato, Per la proprieta dell'operazione, gli iodici prodotti sono
.'·ir~~;~;~~', equamente di8tri~uiti su tutte le p08izioni. Ovvi~~nt~ ~i questa propr~e~a ~on godooo gLi operatori
...~%~~,:;
'."'!",'
AND e OR che, mvece, tendooo ad accumulare gh mdlct su alcune paslzlon..
~n,:11 \,
_ oj.i!""" ,.
'!ll'.-~~'!f;'
,Yo
V.":'_
. ,~
";
-
348 Capitolo·8 .'.".
"'i'l!
."
,.\'1.:1 '
~~

0'1,
' ..'
'~~
"'of,
~'",
'.';1.:.,
volta un fault. Occorre un rimedio , ancbe perche it principia di localita. suggerisce~ di <,~l\
tenere in memoria Ie pagine piu frequentemente indirizzate . Si cleve percio rinun- <;3~f
17

ciare. ad aver~ i .VP:t:'l solo nelle posizioni in~ividuate d~ll~ fu~zione ha.c;h, e preve~ere .. ,.')~}~~i
10 BVlluppo dl liste III ~T .. La schema corr~spa.ndente: m Flgura8.8. ~: c~se 51 ~e. I.::',.~.
eorda?o bene C.OD !a dinarmca della memona vutuale,.m quanto Ie 'p0slz1~m r~latlve '~~\l;r:
a p~gJne non r~er~te possono essere oe:u?ate vantagglOsamente. d-:u descntt07'l delle \~rv
pagIne spesso rifente. In altre parole) Cl SI aspetta un processo dl tIpo adattatlvo che .,;~.~
porta ad avere in IPT un certo numero di liste, corrispondenti alle pagine pill spesso .:;~~~.
indirizzate da1 programma. .::~\
\~~
'-·,~~~
IPT .>,!'
,',',
0 ':~~f
h , Prot. Y.PNz
• :~~~
, .})~
,

:'!!~¥
FuNZION( ,~ .• {:
VPN VPN)( LlNK ~~'il
HASH Prot. ...lir,·
,..'" ,jiJ1
',",,,:f,<
,. ''-
• -, I""
·~r.J£'~
• ,.. ",,,
','., "',
','-

.)f~~1\l
k Pro1:. VPN y LINK l- ..
h"
,
'-~·'!~
.
.~
"~'"
•••,;,
• '.' ~~
,
:'\'\w
:':'~1
Figura 8.8 Formazione di liste eli PTE nella tabella della pagine invertita. La funzione hash ·~·:;
trasforma VPN in h. Ai fini Qella formazione delle liste ogni PTE contiene un puntatore ::--:"i
(LINK). La figura mostra una lista di tre pagine virtuali (x, y e z)·j cui VPN si mappano :>:;
sullo stesso h. n pallino scuro denota uil campo puntatore vuoto (~), ovvero la nne della... .:.r:
Ii~ta. La li~ta e nata n.el modo seguente: ~art~ndo ~a. IPT vuota: si e presentata la pagina .<2~
virtua1e x; 11 suo descnttore e stato costrUIto ill pOSlzlOne h con II campo LINK posto a <I ,,):~;
(vuoto); successivamente si e presentata la pagina y e, non essendo libera la posizione hI e ;,,:f
stata presa la posizi'one k can una tecnica di scansione linearej il relativo PTE ~ stato messo :' >/1
in I~s~a a seguire .que!1o in~. lnfiIl;e si e presentata 1a pagina Z che e ~tata sistemata nella :.,~!
poslzlone 1 (fo.rruta dalla ncerca hneare che h.a deborclato oltre la mlsura della tabella) e . ,~
accodata alIa bsta. :"1'
. ~,t
,;,,-!
.. ~
" .:
:....
In riferimento alla Figura8.B, si ha hit quando IPT[h].VPN=VPNj in caso,contra.-- "':1
rio oecorre seguire la catena fino al tennine. Si ha miss 5e viene raggiunto {'ultimo, .: ;':
elemento in lista. senza che sia trovato il VPN. L'algoritrno che tratta it miss funziona '~:
.,·";"'
,m ques t 0 rna d 0: .i.~
.' :.
.• -
N'.
a) detennina Quale pagina fisica utilizzare (quindi Quale p05izione occupare); ·~
· '.
,
...• "
..."
..
17nproblema delle collisioni si pone comunque con Ie tabelle hash, indipendentemente da.1 principio ,,~
di localita: se si vogliono tenere jn tabella piiI elementi che 1a funzione hash mapperebbe sulla ste5sa '

p08izione, e necessario costruire strutture a lista all'interno della tabella, in modo da trovare tali ,

elementi nella lista che inizia dalla p08izione di mappatura. ".~:


,1
'1\, .
.~ '.
,_ "oil'.
·I;;l~,_··
~li~ , .
;.ltl'il~l··';' •
rU"t~"
"I., ...:
"""i"lI:,C,.• La memoria virtuale 349
\
r)<.!i
ll.,
',J. " ' - " \ .
:'
,
~'"~r'r'
• ,~J,
ci'";.!!
.'''.
~;'!":l

,.,"',
...':~~"
~il'

)"""'~"';
1
-~>r>':: posizione h.
)~~,P\:-,:' c
i.
.,
a a chiarito piu avanti se 130 pagina fisica utilizzata era in uso (ovvero se il
,~~,~t::· p~~ee:a roccupata)1 si cleve teder conto del fatto che 1a pa~a vm:ua1e ~ essa allocata
fJf-,tt:::- poteva trovarsi a sua volta in una lista. In tal case Palgont~o di g~tl~n~ deve: (1)
l
: .;~' . 1:;:.· rima di tutto aggiornare questa lista, escludendo da essa il PTE mdiVlduato; (2)
v lih.'f/<:~. Y
~. Ni'~~' lmp g
., i,~~~:r~;,·'
ie are i1 PTE. come detto in precedenza. .

. _. .
l
. .:
: ',:!rrt~:::.' Un cas~ di esemt;>io ~acciamo rieorso a un esemplO numenco per illustrare alcum
~ '~~;t:i~~·:;" .. , problerru nella gestIone dl 1PT. . ... . .
~);t;~:,:'«'~·\ Ammettiamo di avere una IPT di 10 POSlZlOru comspondente a una memona
.~(~~Ck ~. fisica di 10 pau1ne. Supponiamo che 10 spazio virtuale sia di 100 pagine e che 1a \
','~'"':('
f#~t (~tt'~~'-',l' 'funzione hash 0" ,
faecia da "imbuto" 10:1, ovvero riporti il campo { 0... 99} su {O ... 9} .
~. ·:~t-r~I'~: . Partiamo dalla IPT vuota (e quindi anehe dalla memoria fisica vuota18 ) e assumiamo \,
~' '~~l(:>,' che il programma generi la sequenza di riferimenti (VPN) sotto riportata e che la
¥~~... fS2-"./;·'.' funzione hash produca la sequenza pure riportata. I
:l~ '-" r.il.:.'· .... ,
.
l>J ..... ·.. ,..• 1,
·,j'- -:--"~'Q' .',. , .
1ii1'
<i! 1',:'",. ~ '.' . VPN 60 13 61 70 24 37 66 96 48 39
"-''~'
.• ..('''''''.(''
,,'
',: ~.' ...~,~
h o 3 1 o 4 o 6 8 8 8
~ "~':.:~~. :.
'"
,,~, ..1"~"~1"'"''''
,,',
'
"",.'
. . . ~., ",j . . .

ll"", ~ !~;$1~":"
Seguiamo 10 svolgimento dei riferimenti: 1
... ,"'"
... .
~l.f~. f.,;y.~.-;-,
~;-;:,

1) it primo l il secondo e il terzo riferimento generano tre indici differenti (0, 3 e


~,'
,.~;,. (~·,
....\II,!:>"
.. i" . "
~~. ;1,~'~'.{!~~·"·
wf .;~j!>;'";':'
1.,t, ~ii'•."*"
;\l~~~~!}~~f:.
1), per cui vengono oecupati i tre eorrispondenti PTE} facendo serivere in essi i
relativi VPN e ponendo tf> nei campi LINK;
e e
2) il quarto riferimento aneora O} rna la p05izione 0 occupata: occorre trovare
I
iti~~~ .i~~;!1..: una posizione libera. Si ipotizza ehe 1a ricerea venga fatta col metoda della
;{~~ 'i(.!i:';{~:
scansione lineare (Figura 8.8), per cui viene presa la posizione 219 I cbe viene
:~}~ \';if?i·t\;~ .
messa nella lista originantesi in 0; cia richiede gli assegnamenti IPT[0],LINKf-2 \
,[{~:· ~;i,~;('J".
;..H~ ,.~. e IPT[2j,LINKf- P;
f~~: ~j~,t~:i"::.
1, ~~ :ij~~~~,,~, ",
!;r~· i;~l~':'"
3) i1 riferimento a.lla pagina virtuale 24 si mappa sulla.posizione 4} non ancora usata}
mentre 1a'pagina virtuale 37 fa generare allcora 0 aHa funzione hash: questa volta ]
~g-~ii, !0:~?:t" la rieere'a lineare restituisce 5 e la tista che inizia in 0 si allunga con questa nuovo
''':",~~, til;·,".·:· .
t:~.~,,:J. i ':.::;:~ ,.
e
elemento. A questa punto la situazione questa (la terza riga riporta la pagina
!'i ".~".'ij{.;lf/?;'· fisica usata):
~'i, ~ •. ,'
:~~~~~_ 'I'~"'~,i"
.;,{~':., J~1'!~>·'
' 1
1g~, '.?,{t" VPN 60 13 61 70 24 37
:~~·i'i.~~:~,~<,;.' h o 3 1 o 4 o
:~'.~ .l&'~~~' RPN o 3 2 4 5 I
' ';.11'1,.',',
1
'.~- ' ..
"'"1iSl
~,~-?~' ~",~';:I'i' )
~.,f, ·t'~ .."'i'
.~,(('t~·
-:..'-..• Y.,·',·
.
N. '~~. ~ ~""'~'"
..,><.
~:r:-f¥.S;\ ;"':~:\"-"
.• ~!llff. ~~,)....
lSSi Doti che qUe5tll. a88unzione e ll.lquanto teorica, infatti per generare n primo riferimento it
I
'~'l'hi,' ':'l ~,'"
.-.",
"0 ,;'- programma deve avere almena una pagina in memoria. E compito del siste.ma operativo avviare
.. ~:s-:'i{:~ ..
"c,.')'''', ~ . il programma caricando in memoria centrale un numero rag1onevole di pagine iniziali e passare il
.,-.",'R '"
... . ,'-'".
~ ~
~jY1l"p., ;;(~::' cantrollo a1 punta di entrata. Dal punto di vista del nostro studio si tratt30 di aspetti irrileva.nti (a
'i,h'~"
3::' i> '1'' .
, .•• parte Ie complica.zioni pratiche).

I'
,~~~.,;, "i-o', ,.
,~. " ;1"-'" 19La scansione \ineare e effettuata con Ill. regota di esaminare 130 posizione ([h(k) + jJmodRJ),
:
:'::j~~: i' :~~t:.~. incrementando j fino a. che non viene trovata una p08izione libera.
1,1- -~'
," t. '-.,t ".;
,1l~~ "1"~~t,"
.~ '~.
. ,~'li'
'.':;,
~3..:5..:0~-=C..:a:op.::it:::o.::lo::...::B:- ··~'~'"
<'1 I
_'.;
1 r;}.1
,:,f.'
4) ~~ue ulteriori riferimenti (66 e 96) generano indici di PTE non aneora llsati (6, ~.;;:~~
.. I pata la scansione della tabella trova 13 pas,·z,·o e 9 l·b. P ,
'£'
5) il prossimo riferimento (48) genera aneara l'indice 8. Essendo la osizione DCC :JN~l
u.v'~
':';,1 :"

. ' n I era, ques t a Vlene meSSa ,/.


.. In coda alia lista che parte da 8 (per il momento ta lista f d ,,-,~.
pagine: la 96 e la 48); ques con Iene ue so~~ ~~
\ .. . " . /1~;'
6) il rifenm.ento alia pa~a virtuale 39 ~a generare dl
nuovo 8. La 5cansione della!~
tabella nporta la pOSIZlone 7 che fimsce col chiudere la lista che si origina in 8.~lfih
20

.. ,... , 'j:'~l~i
.. I \ La sltuazlone dopa 1 10 rifenmentl e quella illustrata in Figura8.9. ,,~,:y~~~
,L',,';~l
","I:,
",-"
. o 60 2 .~:~~~

I vPN 60, 13, 61, 70, 24, 37, 66, 96, 48, 39
1

,
2
61
70
13
•5
0 K
';:)L~
""iF~
.,<.~
...,
. ~:_~:.~.,
,
h 0, 3. 1. o. 4. o. 6. 8. 6. 6 • 24 0
',"'._

! RPN o. ,. 1. 2, 4. 5. 6. 8,' 9, 7
5
6
7
'7
66
,g
0

a =))
••. ,
,~>:~,
,,',,- .
. "l~',
..,t.'.1'
,.;~:. .r
, ,,·;it '

., I
I 96 ""\11'
9 I. 48 I 7 ,~ '~r.',
.:,!"'i1"
:1,,,,,.
Fig~a 8:9 A sinistra. viene riport~ta. la., sequenza di .10 ri.feri~enti, i corr~pondenti
h e l~~;:~~i~~·
pagme fislche allocate. A destra ~1~De r.lp,0:tata. la. SltuazlOne In IPT dopo l'ultimo riferi.,~'''''''
~ento. Avendo ass~to ~a condizlone llliziale di tabella vuota, i 10 riferimenti (a pagine:;,;Jl.
di~erse) hann? tuttI qU~tl ~enera~o un page fault cd e stata. per essi alloc3ota una. pagin30 ..~ ~'
\ fislC.a. A p~rre daUa S)tu~loDe di figura, se .i1 program~a rimanesse sempre in queste 10 ~~iji!~
, I pagme nOD. s~ a.VTebb~o plU fault e la traduzlone dell'indirizzo procederebbe attraverso la '/ii~.
IPT (noD 51, tlene .oVVlamente conto della presenza del TLB). In alcuni casi, per esempio con }:if,; r
VPN=39, Sl ha hit dopo a.ver percorso parte della relativa.lista.. \,~;:~", ~
'.;';,:i'i~'

I
\
e
Fino a questa punta stato considerato solo il caso di, dover sistemare un PTE in ·::1:
una p<?:nzlO~e vuota..Se. II ~ss arnva Qu~do la tabella e piena, occorre identificare .f~
I la.pagm~ (VIrtuale) Vlttuna, m modo da Impiegare la pagina fisica da essa occupata:W'
e il re1~tlvo eleme~to in IPT. per la nuova pagina virtuale. Cio comporta un certo .~f.:'~
aggravlO nella gestlOne delle liste. "':"~~l
A titoIo di ese~p~o, su~poniamo che ora.il programma indirizzi 1a pagina virtuale . ~:~:,
I numero ~4 e che il TlSpettlvo valore hash Sla 4. La pagina 84 non e in memoria, _;I~~~ I
~unque 31 ha page fault) rna questa volta non ci sono pili posizioni libere in IPT. n ,,,,i~~:~ '
SIstema operativo deve de~id~;e Quale pagina scegliere come vittima da sacrificare per ,,~;:~l

fare posto alia nuova pagma . Potrebbe es5ere arlottata una regola di sostituzione ');."
I ,:~, '.
-:<,1,('"
2°In questa caso la acansione deborda illimite basso della tabella e riparte dall'alto fino a trovare ,/,~$
la 7. :j~~lrM '.
21Si deve osservare che la gestione delle Hste ba qualche complicazione anche nel CaBO in cui non '~,;:r:.".
r,
\ ci sia. da effettuare la sostituzione di pagina. Riferendoci alia sequenza. dei primi 10 riferimenti, si . ""I~o,
......
supponga che 1a funzione hash generi per il decimo riferimento l'indice 9 anzicM 1'8: efacile verificare "~f-OI'~'
'/'1
""1
, j' '.
..\,
I I
""
'::1 ~
:~,.-
':!:-,
t~>:· L . . tuale 351
~~'F.. _. ......::...._
....l. _' _~ .....:~a~m~e:::lIl:::o:::r:.:':a..:v~ll::.:::::.:-_.:..:..:.

.~~.-
t:l.~;!~~
,;J!'';",' ,

-1(~'~*7~~r~talel ch~ tenesse co~to .solo delle esige~ze della ~aEhl usa?"do la 'posizion~ 4 per
'-, '~(~~):': la. pagina vlrtuale 84, runplazzando 1a pagma 24. Dl norma 51 prefensce segurre una
'4.. ,'~t:~kfpol.itica
,".•,." LRU
- (Cf~. 8.6.2). . _, .,. .
,~i~lr*-L' ,,, Per mettere matte la gestlOne LRU e necessano che il SIstema operatIve tenga
~;9~~"4..', \. (. LRU) . d I'd· d I· . AI t d'
·%{r:."t?"~:' 'una lista 1a hsta per ncer are or me eg I acCes5l. memen 0 I un page
;.'l~~ifl:f:: fault, il sistema operative riardina 1a lista, in modo da tener. cont~ dei rif~rimenti
~, "~fW1..·-~ avu.tisi tra il ~rec~de~te fault e ~uello c?rrente. Con la tabella mvertlta convlene the
~·~fj--.·; I.a}l,sta LRU. Sla nfen~a ~lle ~agme realI, .
~~r:;~:\:, :.- , '- Supporu~o c~e 11 nordmamento deI~a lista LRy consegue~t~ al p~ge ~ault gene-
(:~~~;>:,rato.dalIa pagma vutuale 84 produca 1a lista LRU nportata a SlDlstra In Flgura8,lO.
~,; r~0;>',:"
' ;(!~t~"t".- '
,
!\~'""""'.-
''511''~''~ ,-'
IPT IPT
j~~~~~';.,>': 0 -60.--- 2 0 60 2
'·:,l\~,,·m;·~·-· 1 &1 • x e. 0
. ~r,:?:' .
~oif:t ',,' - 2 70 5 2 70 5 I-'
"~<!£;'f"··· .. ~
If~i~~t':-·<. 13 0
84 rUNZION( 4 _ 3 13 • 3
, 2' I
jt~~!.:·, HASH ; 37 0 ..>/
r~~'':;':;i'"; -''. .•'-.
,'" ,
.,.~.,..~

!tl:ii!."'.".....
~ :';", "" , 66
39
0

""'
0
i~~ .- ,
~I~' 'ft"",,-:,
'~t!1i~~'I{':_"
t;}:'f;P;:~':''',,-
'111'~~';':':'''':'-
,
3 96
.e
9
7 ./
.1;':;1'~'~,~:"
"lX>'\""- ".'
;I:~'~:- I
~~'~1\;·-. _,_ '-'-'-''-l...'-J.-''--.'-''-J..':-:-''-''''-l-''-J-'-
~~~~!;i,..:' _-:_ ~,stQ LRU . . ,.
I:, ~1'~:;' Figura 8.10 E~etto dl un page fault.; A slDlStra c e, 10 stat~ de.lla 1FT al m9mento de~
I., f.:~;~.;._: p'ag~ fault; La lista ,LR~ e quell~ che ,nsulta dopo che e stata rJordmata ~er tener co~to del
,I/,%},;.i", rifenmentl aile pagrne mtercorSl tra il prec~den~e e corrente fault. La .li~ta LRU dlce che
r:i/"f~{~,~;;.< 130 pagi~a fisica da, usar~ e,la nume~o 1. POlc~e il campo .LINK alIa poslzlOne 4 l!l vuoto, la
~~~?(~;\;'{ c~struzlOne della. hst~ nC~lede solo tl SU,O agglOrnamento 1ll modo da puntare a 1. A de~tra
.
l~'~!1i;-t~< ":lene pres~ntata 1a Sltuazlone a conclusione del trattamento del fault,

I~). '· .'.~ La lista di Figura8.10 inizia con il numero della pagina fisica riferita pi" in Ii< nel
'f~j:.- tempo (quella da usare) e termma con 1,1 numero d~a p~na rife~lta p1.U ~ recente. ~h
!..';'~1.'::~''''< .noti·che la lista LRU e diversa dalla stnngs. dell'ordme eli al!ocazlOne dl FlguraB.9; Cl()
~I~:\': indica che l'esecuzione de,l programma ha re~ la p~gina 1 come quella riferita piu in Ia.
Wl1.y:;.;;,:., nel tempo. La lista termma comunque con 1a pagma 7 che, per essere stata sceIta sui
~~~l;;'~::" fau1~_ preeed~nt.e (queUo re1ativo alia ~agin~ virtua1e 39), ,e stat~ certamente riferita
)~5'~hE:~:~'.::, tra 1 due ultlIDl fault. Guardando 1a lista 51 vede ehe nell evoluzlOne del programma
'Bi~tf;;:';-", la pagina 6 e stata. indirizzata piu di reeente delle pagine 8 e 9, mentre le pagine 8, 2,
~~lJ~::·.~~ 4,' 5 e 3 hanno avuta riferime,nti pili prossimi della. pagi~a 9. , '
~f~if~~-"': La lista. LRU indic~ che 11 contenuto della pagma fislca 1 e d~ s~crificare a fa~ore
~;1lJ"..~~:.~~.- -_della pagina 84 22 . Agglornata 1a IPT, come nella parte destra dl FIguraB.IO, pnma
~t'tJ, ~~; .-
;,S?;fi;{.""-;
~~~~;;" ','-
che non ha senso allungare la lista che passa per 9; bisogna fare iniziare una. nuova lista da 9, con
'~"'~lr{:,:.'·~-
, ..... ',~" . cio rinunciando a tenere la. pagina 48 (5i veda l'Esercizio 8.11) .
11:,~,';,"1\'J";
(';j,.q ,~, ,.' " , 22S e la pagina virtua.le 61 e stata modifica.ta., e necessario che il contenuto della. pagina fisica 1
~~;"'h~~'::·",
'j!i1~,!'~" venga copia.to in memoria. di masSa sulla pagina 61, prima di cancare la DUOVa. pagina virtuale,
'It!~'''''
'il:,,"':'
.
, ,"W·o
•~'"'.'-
<,.~:'~ .
-
;;[!
... '
':'''''',ill
':':ri~i
-"3-"52=----=C:.:a"p:.:'.t.::oI.::o:.:8C- ....::;~:;~~
. -_'~:.l"
. """'~,
: ...,j~J<,
· . '<i ''
·i~:~"
,,'I, ,
di restituire il cantralla ai programmi oecorre aggiornare anche la lista LRU ponend~t,~"
1 in coda23 . AlIa ripartenza del programma verra aneora generato il riferimento alla';:~'
pagina virtual.. 84 e Ia funzione hasb dara h=4, essendo IPT[4J.VPN;i84, la lista,che.:}t!
parte d~a poslzlone. 4 verra percorsa fino ~~ trovare 84 nel PTE 10 POSIZlone 1., :<jg~
In FIgura 8.11 VIane trattato un caso PIll complesso del precedente. La pagma 63 :~f~.
determina un fault alla posizione 3 (da 3 non parte alcuna lista). Questa volta la Iista':~t~
LRU indica che deve essere sacrificata la pagina in posizione 9 (Ia 48), rna la pagina '~,::~~~
48 ~ inserita in. una Iista, qu:ella che inizia dalla posizione 8. E dunque necessaria: (i)··:,:~i,
aggIOrnare la lista che contlene l'elemento 9 , escludendo Felemento stesso dalla lista'.:;;.~(&:
(Rer cui8 deve finire col puntarea 7) ; (ii) utilizzare il PTE 9 per tellere VPN=63;:;\~
(111) agglOrnare la hsta che UllZla ill 3 ponendo m coda l'elemento 9, ,"~~:;~'
;, ,~!
IPT
-, ....~.'.. , _

IPT ?[·~f,
o .0 2 r-.. 2 • ., ':'~~""
-,;
, I S.
,• -60e. , ,"".
~

2 70

70 ,• '.--
;, ..u;;'1

""..""'"
'!J
, .. ",~~.

~r ~ 13 13 , , ·""l, "!r;'l
63
1 rUNZIDNE
HASH S 2'
37
I

./

TI
9
I

, '~i ,'.
'·'h,·l~!: ';lli!'"
'ir{'ll '
, j "'J-'\~
I

,~-!{.,.w~.,

• • ;·i~' ~ ,~~",I

..
66 66 • , "".:.:.'i,:.,
~ '\'.-",

7
S
39
96 9 " -
". •
7
.:- jjj~r~
.;i~~1
9 'S 7 63 • -(.~,~,
·\-·N~~'
,ii;?{-
. ·'·".1(~~
",, ,.W.,'
'~''''('.
913J4121816J710 1:511 '- ~.1 i'1~ l}
8 6 7 0 :5 I 9 .:~'~'~~i%i
Us'to. LRU Lls'to LRU ..~.il!~
': .~',u';il\..~~,
, ,I'!' "'.~i\!f;'
Figura 8.11 Questo page fault segue queUo della figura. precedente. 'Ita i due fault i rife~;'~1{~"
rimenti h.anno modifi~ato la Ii,sta LRU: son,o state indirizzate 1a pagina 0 e la, pa~ina 5, ch~,';Si~~1
ora sono m coda alla hsta, assiCme alIa pagm& 1 che eertamente ha avuto un nfenmento pet: ,:~,A1IW~
aver determinate il fault precedente, La pagina viriuale 63 non e in memoria: l'algoritnio,i~:lil~
LRU determina la sostituzione della pagina virtnaIe in 9 (la 48). L'aggiornamento della IPT,;:~~~
richiede l'aggiornamento di due liste: quella che si originava in 8, da cui viene sottratto un.,j!l.\~
elemento~ e quella cbe si. ongina in 3, che ora diventa.~ ~ue eleme.n~i, COD. i~ ~U:0vo in coda. '~;~L
Per .1'agglOrnamento la hsta cleve essere percorsa dall'mlZIO (Ia POS1Zlone dl JnlZIO e data da!. ~:'~'ic.;f£
"'i',:t;~i'$l~
codlce hash de1Pelemento da escludere),

. ' . "":iIi
.
"'• '.,:T-.l!"i1;
. ,;If. ."
"',
· .::;,,:t.ij --',
..
Qu~st'ultimocaso mostra che C'~ da ag~orn~e u:>D solo l~ lista in cui si inse~ise~ ~~iti
una pagma , rna anche quella da CUI la pagma nmplazzata Vlene esclusa. La LRU ,;S~~:l'
fornisee il PTE da usare , rna, se questo non e i1 primo della lista , Hsuo aggiornament6' .~d~ltl'
richiede ehe 5i risalga all'elemento che 10 precede. A tal fine, oecorre percorrere la .'.)lS~"
lista in cui si trova l'elemento da escludere (essa parte dana posizione eorrispondente .. )f'"~~
al suo eodice hash) e aggiomare il puntatore contenuto nell'elemento ehe precede con ';.jl~l
· ~.'. t;o.l~
'.- ',~;;;:,

- -- , ii?
'.\»'i/~~
23E necessario cbe Ill. pagina 1 yenga mesaa in coda. in quanto il controllo tomera. a un programma ,::",,~((t~~
diverso da quello cbe ha generato il page fault; queat'ultimo potrebbe, a sua volta, generare un pas;e :j~i::~
fa.ult e au di esso non deve essere usatala pagina L Alternativamente, Ill. pagina 1 pub venire escluaa. \'~i£~;
dalla Hsta LRD per tutto it tempo richiesto per il caricamento della pagina 84 e inserita in fQndo alia, :'?~.$~."
,
Hsta al termine del carlcamento stesso ..'loj-..~
" ',.;
... , .. ,,;
· ', .. ~'
, ',llil~
,1, ';1/.
La memoria virtuale 353
I
c·.;e-:......------------====-=:::.:..--'-'-'.
i!f!.I1 ~ .
,
r' . 1I
~~i~(:·quello contelluto nell'elemellto da escludere".
,,!,;¢:;J,' 10,','

~~~i~,lliw;~~::lf~a 0 piu 1PT? . Si e visto che nel caso della PMT conviene avere una ta~ella
,~~rS'; . <di traduzione per claseun processo. Nel easo della IPT non e questa la soluzlOne (
~~l(.piil conveniente: l'~rgan~zzazione a ta~ella ~verti~a e 6.na.lizzat~ ad avere tabelle .con
~lr~t;:--numero di elementl pan al numero di pagme fislChe25 j se a ClasCun processo Vlene
"",r,w'
;ftt~~l:r~,y:?ssociata~n.a IPT , q,:esta nsu
. 1ta meeli amente mo1to vuot3,'":1 quan t0"lIDplega soI0 '1
~1,~~~~{~-:;!:'PTE relatlvl aIle pagl~e,occupate da! p~oeesso stesso. Co~e ill.ustrato nel Paragrafo
,i1~;~1~it7:;;,~.iO,l, nel PowerPC 51 neorre alia soluzlOne del punta 2 dl pagma 341.
""IJif~" "
!
''Il~:''81'>''':'' '
i'h1!i~ ',.>~ 7·,

'~I¥~~C~8.3.3
~ ,.':,.i;:f .... -
II problema delle catene troppo lunghe
\
i ~l .. -,_·_-" - -

'.~fC'6·~~ l~ tabel.la invertita puo accadere ~i, dover se~e una lunga eate~a ~ puntatori
~:Jlj~~t~:per-trov~re l~ VPN cer~atol con pos~lb1le d~gra?azlO?e delle prestazlOIll. Ancbe s: \
!I1~~>-la macchma e dotata dI TLB, per CUI la naVlgazIOne In IPT ha luogo solo quando 11 t
~~lf~,;':;;TLB n?n fornisee la traduzione, e com~nque auspica?i~e che Ie. caten~ non ~rescano
,~b~~,V~I,).:,',';, adisffiIBura (nel nostro modello e teoneamente pOBslblle ehe 51 forml una lista ehe
~§~~:~[~~':i·;·?CCUpa tu.t~a l~ ,IF!; .cia p~o aC,eadere quand? BU una ~~essa posizione si mappano un
jiil""~~\~~U~ero dl mdmzzI.V1rtuah pan ~ .~u~e~o di el~mentl ill tabella). .
. 'll,:Io-I:"'~~-~:;'ii_;. -: Un modo per ndurre la posslbilita di espanslOne delle eatene cons1ste nel mettere
I
.,,;~~~1;U~'a· tabella, con funzione di "espansionen della gamma dei valori hash. La tabella
l"ilIlll~~:.~:-:questione pr~nde iI, ~or~e. di Hash 4n0or Table (HAT). Essa n~n ~a altro ehe
fih1lprovvedere un livello dl mdinzzamento mdiretto , secondo 10 schema.di Flgura8.12. (
~~i /~~~~~:~,. n rieorso a u~ ese~pio nu~eric~ chia.:isee la ~ion~ della HAT. Supponiamo
ill.. t;ll'l{i0;,fll. avere un masSlmo dt 16 pagme virtUall e 4 pagme fislcbe. La IPT cleve avere
,ll~~[ll~~}:~1;t~~i~en5ione 4. Una funzione hash ch~ distribu~sce equilibrata~e.nte gli indi.ei m~ppera.
'~~~I:J~':quattro VPN sullo stesso elemento lD 1FT. E dunque posslblle che Ie llste In lPT
~l' ·~~tDUTivino a eonten.e~e ~no a 4 ele.menti, oceup~dola tutta. Se ora si ~terpone una
~
~.J·-HAT lunga 8 POS1Z10Dl, una funzlone hash equilibrata mapped, al maBSlIIlO due VPN
~¥Ullo stesse elemento di HAT. Dunque Ie liste in IPT non potranno essere mai piu )
cl';-':;J;Lllnghe di 2. In sintesi, la lunghezza ,"?assima delle liste ~ inversamente proporzionale
/'o'ii!'*';Ula lungbezza della HAT. NelJ'arehltettura Power" Vlene usata una tabella HAT
I
;( '.' ~k:"I.~;:'~:- ,
" ',l~~:-;'-.·- _
.. -;0'::::--,--,---,------::----
ifI"~';-""~'
~, ~{~rt~l:::'-·24C'~ inoltre da.. coosidera,:-e i.1 8~gueD~e problema. Si .f~cia. riferi~ento. al caso. dl Figu:a. 8.11 e si )
I!~l:;~~\~~~'::~upponga ora ill. hata ~RU ,mdlc.hl che de~e e5sere sostltUlta Ill. p~na. vtrtuale ~n 8 aDZlche qu~lIa
!~~~,,~:,:;-:I.? 9. Se I'elemento 8 vlene lDse~~o neU~ hsta che ~a.rte da 3, togliend:,lo d~a- ~8~a (8,9,7), Ill. hsta
l{.6~~?;:5·...,:'':·.~~ma.nente (9,7) avrebbe Ill. poslzlone dl partenza ID 9, mentre Ie pagtne V1rtUali In essa contenute
, :{.1ULl$:;:)" ~I mappano in 8. In altre parole, se l'elemento da sostituire e il primo di una ca~ena lunga piu di )
.,g~it;~,:,uno, Ill. sua ~08t~tuzione e i.l suo inserimen~o in un'a.ltra list.a PD.:ta ~ un'incon~enza.. Cib ,impone
:;;1'

:;~ il't;''i--...:~}a. non sostltuzlOne del pnmo elemento dl una. catena lunga PIU di uno. Ma CI~ comporta tl dover
!.
, 'I. ~£.~(!iconoacere ae un elemento ~ ii primo della !ista.. A tale scopo si hanno due alternatlV1!l: (a.) aggiungere
'it '-J.-~::::::uno speciale marcamento, oppure (b) organizzare Ill. lista con puntatori in avant! e all'indletro. Nel
;'~ ~1lt~1:~._ ~guito si illustra un esempio di memoria gestita con tabella di pagine invertita (quella del PowerPC)
~ ~4~?4~t!{)~~~·:or~anizzata in modo da minimizzare il carico dovuto alia. scansione delle li8te.
~ j~!1~2lif~1f<-:;~ _5Parlando del PowerPC si vedra. che in numero di elementi in IPT pub essere in rea.lta. proponio- t
~~ll',it;'ilH';) '. J,lale (non pari) a1 numero dl pagine, rna secondo un coefficiente di proporzion&lita. molto basso (cioe
'l,ilfl~,fi'·""2"'4
. ll\~jl.\,~f,('.:", )
, ....
" ~d~~~,~(:"' 26,Qu~ta architettura e stata introdotta dall'rBM a fine anni ottanta e ba fatto da progenitrice
il!t'!i!Gif)L_ ,dell archltettura PowerPC.
:~~i~:··
I.
354 Capitolo 8

I IiAT
o r'-----,
• I o
IFT

75
r- 11321
I I
32 ..0 6' f-
..0 r::-::::::::::::l
97 FUNztONE
HASH
_I
)
" 97 , • k
I \
NI I

I
It

I
I I P1CGO
PTEO p
~ ... -

v 'N

• I r"",:rlon. HASH

,
VPNI RPN
, , • .. "H~
• • , , , ...<)l"
I Fi ura 8.13 Or aniz . ' . .
P1EGn
~

;.}~l~,
"\"i~
~:~l~~
.zazlO!~e ~ella .IPT c~n hs~e che S1 sviluppano sempre sulla stessa riga. '';''~~~-'
L: .
L gfu . g
nzlOn.e hash for.DlSce llOd~ce di una riga dl PTE. Una riga di PTE equivale a una lista.. 'I: ,~,:,(~O\l
nen~ens(I~~e ~assllU)aLden,a hst,a e necessariamen.te.limitata da! numero di PTE contenuti "",~~;
1 . a rIga lD ~a. a nga vlene p~rcorsa da Slll15tra a destra. Mancando una relazione ,,"~~~f.
diretta tra la . .... ,iJ·
che RPN. pOSl2lOne del PTE e Ie pag1ne fislche) 11 genenco PTE deve contenere sia VPN .·;:~W~4..,

I Nella tabella HPT (da Hasbed Page Table) di Figura8.13le liste 5i costruiscono .
"',:~. .r,;::~~,
,~,
sulle .nghe, se~a blSOgnO. dl pu~tat?ri. La dimensione della' riga rappresenta 1a di. ·;~'.\t~:"'1.
n:ensl?ne massuna delle .li~te. L mdlce hash viene ora preso come indiCe di riga. La '<~::1M~lf

\ rIga Vlene percorsa da r:llntstra a destra. Si ha miss se nes
VPN. In caso di hit il PTE D " j
d . PTE
e l i ' fi ~uno:l
t' '1 .. ;:.:,b)t~~.
con lene 1. " ' / ;;~,'
ormsce 1 numero pagma SICa. Rispetto alIa. IPT dl ,.~iti: I.
...• -,.~
.... ;~.. 'W;.
< ,"',
. ",;~~
.>.;
i'("}"
'IV -
,.~ ...
.-, .... -..-
-~'i"-'

:__ ~i.:::;" La. memoria virtuale 355

.' ,.,
ti:I1l:i11:!>i\
III'Jii,,=
;;
~"
'
~.!, •."

i~~~[~.' ·Figura8.8,26 la HPT e piu rigid a, m~ il meccanismo di scansione eestremamente piu


.
~~~~S;:-:: efficiente . 81 notl che la HTP equlvale m un certa senso alIa fuslOne della 1PT con
"'W,;v. . la HAT.
tffJh~("'. Durante Ie fasi in cui una lista cresce essa si sviluppa cia sinistra verso destra.
~~~~~;:__ Naturalmente ogni PTE cleve presentare un campo che indica se eS50 e valida 0 no,
~ir':;.:;~ Qvvero se esso e 0 no in lista. Cio consente, durante la dinamica del funzionamento, d.i
;~iWJ~<'~-" esc1udere un PTE da una lista semplicemente agenda su questa indicatore (in questa
;~t1;;";::· sensa la HPT mescola i concetti ~i tabella invertita con quelli di tabella diretta).
\~~~r' Un ulteriore vantaggio di questa organizzazione della HPT e dovuto aHa conti-
';S!~L';', guita dei PTE all'interno della memoria, in quanto, in fase di scansione delle liste! cio
~~~~~~\,: comporta un :eloce ricalcolo .dell'i~dirizzo del prossirno PTE. ..
~(rr~Il'::'-, ,In ~aso dl page faul.t e r:ga pI.ena, Pele~en~o da escludere dalla nga Vlene sele-
\t:",.g ....... -'" -
.:~~; 'zionato III base alIa tecruca dt gestlOne del nmplazzamento (LRU).
:if,i;"':" .. :
" J '>l"''''
hi K:,',;:l'::;. ,"
i8j~~~~: ..,-'

,j~'~f.8A La segmentazione
L~ I ?~;""
,*',,,","
,,,,,,, <":. -
~ ".,.'"
'." ."....
'"
t~.Jll~:;}'{; Can la segmentazione 10 spazio degli indirizzi di un programma viene suddivis~ in

I
~t:fit~t:.,,-: ~:~-blocchi che rappresentano parti di programma logicamente correlate tra loro. La seg·
:~~~~~;;r,:;'ment~ione corrispollde aHa ~uddi:isione naturale del codice e d.egli oggett~ dell'ela:
@~l~i:.;'.·. borazlOne. Can la .segment~zlOne! Ii p~og.rammatore raggruppa, In segmentl separatl
lfl~lj,~ ~ e secondo la propna convemenza, partl dl programma che hanno una comune conno~
,~~~~::,-__ tazione. La suddivisione pili ovvia quella che prevede uno 0 pili segmenti di codice,
e
"~~f.~~t:~: -di -dati e di stack.
'7ii~1'" _ e
La dimensione dei segmenti non fissa, corrispondendo alIa suddivisione dello
~ttr~i~F',~~ spazio virtuale secondo la convenienza del programmatore (e del compilatore). Un
l~t~,~:~~t.,segmento puo quindi avere qualu.nque dimensione in dipendenza d~la scornposizione
,~.~~~f~!t~:<modul~re. del. pr?g:a:nm~: da poch~ byte) co.rrispon,denti a una pIccola p~oc.e?ura,
itii~t«;~.>:,\ a. centl~ala dl ffilghaJa. dl byte, corns~o~~en~l. a ':l~ mter? p~~gramma. I h~ltl aHa
J~J~"~<:' ' dlmenslOne sono semphcemente dovutI at hffiltl fiSlCl nelF mdirizzamenta del SIstema,
'i~J~~f:>_ Normalrnente la dimensione massima di un segmento perlomeDo di un ordine di e
jl'hl.ift~·;;··- grandezza superiore alia dimensione tipica della pagina27 .
. '~~Y~' Si deve qui rimarcare che, al contrario dei segmenti! Ie pagine hanna dimensione
. '-· .
!~:f~~~ fiss~, ~el.tutto. scorre~ata ~alla natura del p~ograrr:ma, ess~ndo ~ss~ dettata cia pure
, ()~!1£~',\ ,raglom dl efficlenza cit gestlone della memona e del trasfenrnentI dl I/O.
' '.'i:~~,\~,~:<' '" In un sistema segrnentato! un indirizzo logico si compone di due parti:
A~~tt;,:; ,
'?~~\fJJj:" a) it selettore del segmentoj
~,t1i'~jt::::.
J!"."
, (~~~tc ' . b) 10 scostamento all1interno del segmento.
Il,t'{

'~.~t,~· _ La traduzione delPindirizzo avviene secondo (0 schema di FiguraB.14.


1.'fit/;·
. \t,~~t" - 26,~ ~~E sono contigui!. i1 salta dalPuno all'a.ltro 'richiede se:mplicemente l'aggiornamento
'!.~;lf.!#;.: ". -de~~ mdinzzo con una quantltA fissa., . .
. \.(t~~;....,;, . n s~gmento della CPU 80286 puo am~are fino.a.64kbyte, mentre I1 segm~nto.della CPU 80386
!,\f:~ljA, puo arnvare a 4 Gbytes, II 386 e I modelh SUCCesS1VI prevedono anche 1a pagma2aone, a valle della.
'lV~'lt1~:. "- segmenta.zione, con pagine di 4kbyte.
'~;;"
• .~.;.
,.
':i.'"l•
.~':
',.J,'
· . '::'",
,. ".'"",1"'
'.,\,!It·';l
,'<"#


, -Iii!.i!'
356 Capitola 8 \.. ·r~j
~'t
"".~
"'\"1::'"
-:'·".If
\:",~.,

'·ir.!1
···.Fi~~fl'
. ,."
";.~.?\..
. . '; ' k;;;.
· ,":&-...:
Indirizzo virluale · "J'"
S<'lleltor<'l di
Seolllamenlo
"::;::H~F;~
,,"' ..;.., ento ,..:?,:
.': ,-.1):::;,
c{):> Indiri:zzo n.leo
Loca'Zlone ....
· : ~'~­
..... ,
.... , ........... ''','''.'-,'' .. ~
• -J:<, _.
, .', -"c."
" ,.t~'t!(.j;
,
:, b J".:
:" ·.~i'b'
-.,!",'
l
':,>A'F
BlIse seamento ·:/:,:::tJi,.
De"crtttore dl .. '''''
i~'.:j:{.i::'
S. • l Segmento • "'_Im,-
_, • N""
.' ..'.) t-~·..;
," - ~j;'j.~
Tabella dei '.,' (tf~:
· ..;;. ..
Segmenli.':·~i,,='
.~
·... ?11t.5r.,
Figura 8.14 Meccanismo di traduzione degli indirizzi logici in indirizzi fisici nei sistemC/{~t~
segmentati. L'identificatore 0 selettore di segmento punta a un elemento (descrittore di' '::fJ~
segmento) alPinteroo d.i una tabella.. n descrittore di segmento, fornjsce l'indirizZQ di base·.r1..y~~
del s.egm~nto che>. so~~ato aIlo scostamento cia Pindirizzo fisico.. II ~es.c:it~or: di segment(j,:~~~
...... .
contlene mformazlOfil Circa la lunghezza del segroento stesso e orca t dintti d\ accesso. . :., :_~L ~

.,:<:\~:
,'i.:':i~~~,
" ,,..,.).1):,
· ·J.;j:,f~'f';
Dal punto di vista delle operazioni di I/O la segmentazione e di per se meno effi··~:jl~:
dente della paginazione. La perdita di efficienza e dovuta al fatto che viene trasferito \\~:
un iotero segmento 180 cui dimensione risulta in genere del tutto scorrelata rispetto'~;'~~\'
alia dimensione d~ blocchi-~a.ti trasferiti dalle o~erazioni. ~i I/O. . .\;".11i'~~
In realta, la mmare efficlenza della segmentazlOne emltIgata da questl due fatton:',{%,,;ri:
.... ',·~\;jW!
' ••<;..
;.'.. i~
• un segmento contiene generalmente codice strett80mente autoreferenzi8ole; Ie ope_-',~;(~~
razioni intersegmento sana abbastanza rare, corrispondendo a cambiarnenti der-,~t~
cantesto
,
di, esecuzione e dunque 1a probabilita. di restare entro il segmento corrente·'~~~
,.:"'t>!it,,,'l;
e tendenzlalmente e1evata; ~ ;'<,:,f~1'~
,, .'..1..,.f<--
-"1''''

• moIte applicazioni usano i tre soli segmenti di cadice, dati e stack: un linke'r:'fi", _
"intelJigente" I in grade di effettuare l'impacchettamento di pili funzioni. in un~'.{1J~r
unico segmento di codice, ridurra. Ie operazioni di I/O relative al codice 801 solo ~.':~
caricamento (ancorche pesante) deU'intero segmento. _:,:.'.:;;;~~.,

Dal punta di vista della protezione la segmentazione e superiore aHa paginazjo~e?~tl


in quanta essa segue i criteri naturali di separazione dei differenti moduli di program-'~/:f~j
rna. Per 1~ stesso moti:,o,_~a segmentazione fCl:cilita 1'uso in .comune (sharing) delle ~~-~I,
stesso codlce .da p~te dl pm procedure. . . : ':.\V~r
Un1ultenore differenza rlspetto alia pagmazlOne e 180 scarnparsa del TLB, sostt·' •,~:~,\?;1:.
",,'.J,
tuito da un numero ridotto di registri di cache. Per fissare Ie idee, se supponiamo·-f4~'r.;
che 1a nostra macchina preveda che in un data momenta siano attivi at massima tre,',}~,
segmenti (codice, dati e stack), per la natura della segrnentazione, e sufficiente te:- ;'d~~~,
nere i selettori dei segmenti in tre distinti registri e associare a ciascuno di essi un S~'
registro ill cache (in pratica un'estensione del registro stesso) che punti alla base del>~!\,
segmento in memoria. In pratica, si tratterebbe d.i una sorta di T~B determinlstico, :.;;~\~
con tante posizioni quanti sono i segmenti gestiti dalla macchina. E questa il modo ·,~':;t1i1
di funzionare della memoria segmentata dei sistemi Intel dal.286 in poi. "~':;~~ll
,-'.-'lt1lF.:,
~i;fr
,~,
.
'Ie·· ,
).
~.,r-;: ...
i~~:'-
. . La memoria. virtuale
~~.,,",'" _------~----------------=:::.:==:.:c::=--==---'----=-=--
357
~t··-
,!{~{
:i~1;:;': ','". Anche 1a segmentazione puo dare luogo a spreco di memoria, infatti i segmenti
I •
:;:w.~~~:{;~o'oceupano regioni contigue di lunghezza variabile di memoria centrale. Dopa un certo
~~~~t,:. num ero di a.11ocazioni-deallocazioni si formano zone di memoria non utilizzate tra
f~I;~~.;t: $egffi~nto e segmento, che potrebb~ro ri~elarsi ~~ivid~almente tr?ppo .piccol~ per
.~~;l~f:\ ;essere usate, anche se la somma degh Spazl non utlhzzatl potrebbe nsultare cosplcua.
l •
,r~~lr:(~~~;;,;:, n fenomeno viene detta frammentazione esterna e rappresenta uno degli inconvenienti
l~Tlr~t;f~ d~Jla segmentazion~. n ,ricompatta~nto dell.a ~emoria ~bera, eseguito ~'occor:e~~
r4.';?i;J, dal sistema operatlvo, e una soluzlOne sconslgliata per il suo alto casto tn termlID di I.
W~~~~r:,". tempo spreeato e di complieazioni aggiuntive.
~~:l". ,.
.\II'I'!f,·~;
'11 1""',\,'1'"
,
"~1 ~:jljf,~J.:'· . \ .
(~~~:;r8.5 Segmentazione e paginazione
~~I't}~r·:I~~l~e architetture combinano i due scherni di traduzione degli indirizzi, cercando ~ \
,~;JIII'J,Il,"i:~
;li ,,1:t:i'1
,~"~,,,!I
sfruttarne Ie caratteristiche rnigliori:
... . .
I
~,;~~~1i;. :':.:'. la segmentazione per suddividere eODvenientemente il programma in base alIa
'lo1!'h:-f!""t•• '
li~:Wt··~~!~·.:
., ~ \'11:\1" '
. "sua struttura nello spazio virluale;

·~ll~~~;:L:;. La paginazione per garantire una efficiente gestione della memoria e per eliminare
\
',~r~f~f:'l~:/: . ., la fr~mentazlOne esterna - OVVlamente ncompare 1a frammentazlOne mterna.
i~~~!I:,:_ .
PiiI avanti viene descritta in dettaglio la gestione della memoria segmentata e
~J;~r:I'l~~·.;':'paglOata del ffilcroprocesson Intel 80386 e suCCesSlVl. I
~~'r.:,:~." - .
;,~1~~~.::·,,;" :
r;~~~'~t''''f(,'' ....
'~i~1>":·,·
,
I_
il 8 •6 Approfondimenti sulla gestione della memoria
I••• t
.'1I "t",
~,~ ,M;:K~
,0·jl'>I:.',., .
I
1'....'i~
.. .'I~r . .·,;:' ,
'i:~,J.
" ' I ''!<~' .
virtuale
. ' .. ;~:'
....
',' .-.~-
~
~ '-'

~~~~f~W:r~ell~parte ehe p:ecede, si espesso parlat~ del sistema ~per~tivo, del suo intervent.o in )
~;!, .-.:,-.:
cornspondenza dl un page fault, della gestlOne della pagmazlOne e della segmentazlone
bf~t:#,:.~' ecc. E giunto il momenta di approfondire alcune delle questioni finora toccate appena
If,!'i\~~~";: di passaggio.
.iI:~'W ! '"i'~ ,
1\1',,1.. ..'
'......... ,".''''•.
,".~" ... «
"',' "\~"',
]-
;(li:r~-:~l:,' . . . .
iiff;\!".,:,8.6.1 GestlOue della pagmazlOue e della segmeutazlOue
~~~~i11·:.',
"·~II~r,··:, .. ,...
;~W'~~. Quando la CPU genera un indirizzo che determina un page fault 0 un segment fault?8
;
s.~¢~~·:T si ha una sequenza di operazioni come quella satta riportata, .
r;J~I~I,t'I':': '.,

'
:;~,.t:t:.,

~$r~i "
,';..
. 1sSi ricorda. cbe un fa.ult a!tro non! che una interruzione (Del gergo della materia si preferisce
, ~Y~iJ}.':'~": parlare di eccezione) interna, causata dalla. MMU che non trova. in memorial'informazione indirizzata
I
~ ;$.~~f>' .(nell? spazio degli indirizzi logici). L'interruzio.ne viene raccolta dal sistema operativo, attraverso il
~¥f.ll~~;>,~, .. suo mternJpt ~a~dler, ovvero attraverso 10. speclfico page/'egment fault handler. Risulta evidente cbe
1 1.-;",~il:1',\,:" questa parte dl slstema opera.tivo deve risiedere permanentemente in memoria centrale. Di questo si
~~;i~~ parla piu diffusamente nel Paragrafo 8.6.3.
)~
, 1;!~~~f1t.
358 Capitola 8

I ~

~~
,'
..

"~'!I
,"''I ,.:Iii'• "
,!. .'~ !i·
1. A seguito del fault, il sistema operativo cleve determinare la posizione della pa~ ::~;
I
~
~~
gina logica sulla memoria di massa. E stato dette che tale posizione puo essere ~;;~ rM:_
~~
1 data attraverso la PMT stessa. Ovviamente, affinche cib :possa accadere, e ne~,,)j~l'f
.

'
,

cessario che la re1ativa infor~azione sia stata scritta ~ PMT ~l'atto ?~Il'avvio:~~1
:
~

del processo che ha causato II fault, A tale scopo, e necessano stablhre delle ',.m· {i
convenzioni per il compil~tore, per illinker e per i programmi di gestione dell'a(;~r~l~ ~~:
I locazione della memoria d.i massa, in modo tale che all'atto del caricamento de(~~;
programma (ovvero all'avvio di un data processo), sia possibile ricostruire l'allo- :,Allii

ft
~}
cazione delle pagine au disco e inizializzare opportunamente la PMT. Se la PMT.SS '1
e paginata elo gerarchica, i contenuti delle varie pagine vengono natura1mente\'~~i' ~~
\ scritti alratto del caricamento. ,(;";;~~~ ~!
. .'''-''' ~;'.~~.
La soluzione d.i tenere nelle posizioni d.i PMT l'indirizzo su memoria di massa>~,411; t~
delle pagine nOD presenti in memoria centrale sembra quella pili naturale, in ":l~~' ;
quanta uniforma il trattamento delle pagine non presenti a quello delle pagiJ1.~)r-1r-;:, jL
presenti. Non e tuttavia obbligatorio scrivere in PMT l'indirizzo delle pagine':ii~ I~
non presenti , infatti il sistema operative (anche per scrivere questi indirizzi i~~:*.;.; "i
PMT al]'atto dell'avvio del processo) deve comunque individuare Ie posizioni del1eJi1f~'1 ",
pagine sulla memoria d.i massa attraverso Ie informazioni relative all'aIlocazione':'(:~i ~[
f dello s~azio diSC0 . n man~enimento degli indirizzi s~ disco per Ie pagine non. ~~~~\ "~'
29

presentl comporta un maggIor lavoro alJlatto dell'avvlo del programma e' una '~13r ~
risposta piu rapida in caso di fault. '. ~.'t¥r~~: ~1
I \ ~,Iti:i' -'
, ii',':J'"
2. Affinche la pagina possa essere caricata enecessaria che sia disponibile una pagina :ll~ii, : L
,il'!;

~
fisica libera. E percio necessario che iI sistema operativo gestisca attraverso un~ ':~'~~i
1
lista l'insieme delle paglie vuote. Si pub decidere che tale lista non venga rnai ::t~~i.
IJ
f del tut~o s",!o~ata, nel senso. ch.e, se il nume:o di p~gine in lista. s.cende a.l d~:~Il~r ,
sotto eli un limite prefissato, il sIstema operativo scarIca alcune pagme presentl \1!Yi:
in memoria e allunga 1a lista con Ie corrispondenti pagine fisiche. ' .~}~t1R
~
I \ In ogni casc, e possibile che per caricare la nuova pagina occorra scegliere una'.:~:ri;.~
.'~~"'J J
vittima tra Ie presenti. Come, accennato in precedenza, ci sono diversi criteri per ,'~~OO' '
130 scelta. Di essi si parla pili approfonditamente nel Paragrafo 8.6.2. 5e la pagina. ~~' ~
vittim30 e stata modific3ota a])ora, prima di caricare nella corrispondente pagina ;·~~r.I'
I fisica la nuova pagina cia disco, e necessario copiare su disco il contenuto della!:i~/
pagina vittima. :·,~I,~~:
:

' " "


'~J,&i"
',kf~J
3. Complesslvamente il trattamento dl un fault comporta tempJ alquanto lunghl - SI ::;;t';,
i
I
l
v~da la. ~abe~a8.1. Ovviamente,. non ha nessun s~nso sosp,ende.re t~tt~ l'attivita.":~£li;"
dl macchina lIJ,.attesa -che 1a pagma 0 segmento siano statl carlcatl e 11 processo "1~lJ ,
implicato possa progreCllre can la prossima istruzione, La cosa piu naturale e,~,;~~ ~
sospendere l'esecuzione del processo che ha determinato il page fault, metterlo in £f.~~~
I una lista dei processi in stato eli attesa (del verificarsi di un evento30 ), passando 't!~t.
in esecuzione un processo nello state di pronto. "fJiJ~
'.'~'::~1t$:
'
"''''~(~
'l1i~\
29lnformazioni di questo gene-;e devono comunque essere tenute .daJ sistema. operativO, ,~,:;!:~"
\ indipendentemente dalJa memoria virtuale. ' "'<'!1
301n questa caso l'evento atteso e I'avvenuto caricamento della pagina indirizzata "<'f"
~.',1'.
.'" ~l"
"I

II
'
, ,<'1,
'-
'1.'1'.:, '
!i~
m'"
j'j"l'~~' , Vll~ua
La memona '~I e 359
-~~~.:.
ii'i~'ll __-----------------------.::::.c='---------
}l'.l~~· fi

'·~lf;.b'...
"',,"1.·... :I;,,~.
···,·~'.,',I
i;";,.", " .,
~.;·,u
~~"'~!'~
~
. Risulta evidente che la eospicuita. del tempo richiesto per il completo trattamento
_.. ;.;r~..!, ,-
~~:,'N.,···"
.~".,..,.,

,",J'~I".""
',p",.\~ ..... ,
"
.. del fault giustifica Peseeuzione da parte del sistema operativo eli algoritmi anche
, molto elabor-ati per 1a gestione della memoria virtuale 32 •
::;'.r.-!!:'~
~~",,,,,,,,,'
,','. .
i5:{"g:\; 4. Quando la pagina e stata caricata33 , il sistema operativo ha la responsabilita. di
:'k~~i~r:f:'i">: ',".: aggiornare la PMT. Uinserimento in TLB e di solita un compito della logica della
·;r.-·~if~", PU
t:1i:v,~•. ~-·-, '_ C .
}tt~t~S:~,,~; ~'" Si faccia attenzione al. fatto :he un. page(segment fault determ~a un'~terruzione
1:1~)1 :,'_ -nel mezzo dell'esecuzlOne d1 una lstruZlOne. Per portare tale lstruzlOne a corn-
~~i'lo'~t\ '. .pimento e necessaria rieostruire 1e condizioni di stato della macchina. La cosa
!!~)~,~ir;~\, non e tanto semplice quando la macchina opera in pipeline, perche anche altre
;!~~ir~,,' istruzioni si trovano a essere parziaLmente eseguite all'atto dell'interruzione. Un
~~_:t~{<:,;.' modo 'per ~ro~tare il problema consiste nel trattax:e 1a p~peline in questa modo:
;,r!14M~ .. ' (a) Ie IstruZlOnI che precedono quella che ha determmato il fault vengono portate
L\J;f,.::.!' a termine; (b) l'istruzione che ba determinato il fault e quelle che la seguono in pi-
~~~~lt~;-,.' ,,~",' ?eline vengono annullate e viene salvato il PC ~ell'istruzione che ha determinato
i\'.~,~, II fault.
,:~;:""":"- '.

~[i\~tl{"',,, Nei sistemi con paginazione apiil livelli, o".':ero nei sistemi segmentati e paginati~
';;J~~~t;: un fault comporta qualche comphcazlone In pm. Infattl, riferendocl per esemplO aJ
l~~~;t.' sistemi con tabelle delle pagine multilivello e ipotizzando che 130 tabella di primo Iivello
1;t~~~L. ': sia coml!-nq~e semp~e in memoria, si puc avere .un primo ~ault a ca~sa della. mancanza
'~l~1";?,~ di una (pagma cornspondente a una) tabella dl secondo hvello, CUI segue un fault per
L~~£ftm~",maDcanzadella pagina logica. .
;'.
~~~~~\,>: Un problema ~a1ogo si pr~senta in quei ~istemi ch~ p:evedono istruzi0!li di ~cr:
~;~~'1,;: );'imento da memOrIa a memona.. Per ~emplO, 1a farnJgli~ .8086 prevede lStrUZlOnI
JWilfJ:~i¥~~,::come ~OV~B~ che spostano un(a stnnga dl). b.y.t~ da una poslzlone.a :m'.al.traj l,e stesse
,.J~~\p;\_6perazlOru dl PUSH e POP prevedono 1a posslbillta che l'operando 8t1a In memona e non
~1~'::~, solo nei regis~ri., ~e ne J'operando. sorgente , ne quello destina:zione sono presenti?i
~J1~t:\ s.uccede che l'mdmzzamento del pnmo operando detenruna un pnmo fault. Concluso
J@'~~7.~:::., iI trattamen~o ~i t~e fault, ~'istruzione viene di nu~vo eseguita, generando. un second.o
'~[~;&~~~:';;)ault. IstruzlOm dl questa tJpo vengono trattate dlrettamente senza ultenore com ph-
.
~~:::·l.caz!one aUa logica ~ella mac:china~4. N~turalme~te, nel c~o specifieo, e ~ecess,ario
'~}i~":\-"t:;·,che quando l'esecuzlOne dell'lstruzlOne nprende, sla·la pagma contenente l'lstruzlone
:J'.\l1k~>j~1n!1:, che Ie due paO"ine contenenti operando sorgente e destinazione sia in memoria centrale.
"J5~/j:'"r O'
. . f:!;q. ..

il~ 8.6.2
l~'" .'
Algoritmi di rimpiazzamento

,I~;;}',~~ algoritme di rimpiazzamento (replacement policy), e Wla regola in base aIle quali,
~r.~;;: ~ in presen~a di un page fault viene scelta la vittima. Prima di eliscutere gli algoritmi
,~~~1ii~;':f,: d.i ,.rimpiazzamento conviene fornire alcuni concetti generali.
l~t· ~J'r;. :..' ..
',,._ 1hl''''",

","i'!i~'(,-;;,,;:sc-,- c--,c-o--,-c-o-C-o- - - II d I" d II I ' d ' h


'iit.jl"j\llj:;{,,-':· , 1, conf ro~ I ques a SltuazlOne con que a e nmpla.zzamento e e mee I cae e, ave, mvece,
d '
:~~~i:,; tutto e fatto In hardware
~.~r/·"_" 33La. fine del caricamento e un evento segnalato di solito attraverso un'interruzione al sistema
~~Jfi>:5;:,Jif~' operatlvo, gencrata dal processo di gestione del trasferimento, Si deve ipotizzare cbe anche qucsto
'~1~;r("!· processo II parte del sistema·operativo e che e880 esegue in modo asincrono.
.
<9l'mP;~:: 34 Per tale motivo questo genere di istruzioni e detto normally restartable.
,
..":'
'~~'"
"

ilt l;
.'

:l'>~
360 Capitola 8

Anzitutto it rimpiazzamento avviene di norma su richiesta (on demand). Le .~::~~~:,


pagme vengoDo rimpiazzate solo quando c'e necessita. di averle in memoria centrale, <it~~ .
ovvero in presenza di fault. Viene caricata la pagina che ha determinate il fault. <~~~;:
. All 'avviam~nto di uD: pro,cesso .e t~oricamente possibiIe avere in memoria la sola ,-"1'~?:i
pagma che contlene Ie pnme IstruZlOnJ del programma} lasciando che i1 caricamento ...'J.X ;

Alcum 818temi operattVl 1 assumendo che dar.e una pagma sola m fase iniziale parti a ;':J,~h; j

una ~equenza di fault tropp~ ?nerosa, c:aricano. ~ .numero iniziale .di pagine 1 nell'as...,.:~il;.:,
sunZlOne che questo abbas51 11 tasso dl fault mlzlale 34 . Sempre III fase iniziale il"~W~~:
sistema o?erativo potrebbe assegnare a un dato processo un numero di pagine pari a1 ':;p~~
suo worbng set presunto (si veda piu avanti). ':~~~~.
Un'ultima questione si riferisce alia possibilita. per il sistema operativo di rim- <.~~~~I~::
piaz~are Ie p~gine i~ modo globale 0 lo~ale. ~ ~mpiazz~ento globale e queUo che ,;t~{:
• 5cegh~ la pagma (0 il s~gmento) tra tutti quelh m memona. Con questa tecnica ]'oc- ':·.'.;]~~
cupazlOne della memona da parte del processo che genera fault tende a creseere. Con ::~jEI''''
il rimpiazzamento locale 130 vittima viene scelta tra le pagine assegnate al processo·")ri~ ..
che genera il fault. E evidente che in questa caso it sistema operativo deve stabilire :~;~N!,
~e c'e ~ massimo DUIDero di pagine ehe viene assegnato a un processo, far crescer:e ./!¥-"I
I OCcup~lone fino a ~uel punto e, succeS5ivam~nte} impe~re Pulteriore crescita. A ,/~~
meno di n~n. ~are SUbltO.~ pro~es.so t.utte Ie pagme che eornspondono al suo massimo 1 .)f"!'*,g,
nella fase ~1Z1al~, la p~htl~a ~1 .nm~tazzamentoe necessariamente globale. ,,~;!~
Alcum degh algontmi dl nmplazzamento sono stati gia discussi in . £ . t ,:~i""1~ii
n,enmen 0 c<,·"
aIle rnem?ri~ cache. I concetti restano gli st~si ~ q~indi non verranno ripetuti. Vale :.:.:Ji~'
la pe?a dl nmarcare che mentre per Ie cache II nmptazzamento deve essere fatto aUa .·<:~t~,l
:eloclta pili alta possibile e quindi deve essere ridotto al minimo per poterlo realizzare '\;I':4
In hardw~r:, nel ~o della.memoria virtuale, i~ rim~iazzamentodi una pagina procede :~~l~;;,
alia ~e~oclta del s1ste~a cil I/O - qualche. ordme dl grandezza superiore rispetto aHa :'D~W.'~:
veloclta ~ella memona centrale. Come gla. osservato c'e tutto il tempo che ci vuole ',.i:lfJ.:
per esegmre elaborati algoritmi di individuazione della pagina vittima.~~};~'l~
. . '. , '.il~~
Rzmpta:zame~to a caso (RAND). E. la Soluzl0n.e piu ovvia che richiede solo 1a ',;~~
generazlOne di un numero a caso. Se 1 programrTIl non avessero Iocalita e cioe se ""\~1i
i .programmi non most~ass~ro 1a pr.op~ieta. pili c?n~inc~nte a favore dell~ memoria :,:{ll
vutuale e della gerarchia dl memona in genere, II runplazzamento a caso andrebbe .. :.-1
ben~. E se:npre possib~le tro~e qualehe pubblieazione dove vengono riportati dati ':,:}~
s~er:z::tent~ s~lla. banta del nmpiazzamento a caso. Si tratta J ovviamente, di dati ,':~;
nfentI a SltuazlOfil speeialissime. ';~-r

Rimpiazzamento della pagina piu stagionata (FIFO). Si tratta di tenere traccia ;:'~:
:.,iti
dell'ordine d1ingresso delle pagine in memoria centrale. La cosa e estremamente sem-
pUce, basta prevedere una lista, it cui eleroento di testa e il numero della pagina fisica
in cui da piu tempo non viene fatta una sostituzione, mentre 1a coda e it numero ..,::~"t-
.:::Ji
della pagina fisica usato per ultima. Al rimpiazzamento Pelemento di testa diventa ::,~,~(?
queIlo di coda e tutti gli attri vengono mossi di un posta in avanti. Ovviamente non :...:~~;
',~4~
,::':;I"
.- ·"'l •• ~
34.Si osservi che cit> non e vero a priori. Diventa vere se il compilatore ha fatto un buon lavoro ~'.--"}
::t!:""
di ottimizzazione, strutturando it codice in modo da evitare la fTantumazione. Meglio a.ncora se ~"~1~
compilatore e linker sono costruiti in modo da produrre un codice che favorisca la loca\i,ta spaziale :""~"i
',' ,~~'
·:·'1""
<.1f:;
, '..
. " .1:1'
., ".'. .
~.~.,
:;.r~;~
,\

'::1'-"1.
)It!~ .:
·1"'"" "
ok.~-'1l~/.·':
)
l. .
~~,';
,
'I". ,",r-.
"'~-
,~

..
' ,\,~ ,\. "
;J
~:. ,il"'"
~'"'\'''
~

La memoria virtuale 361


.,' ,
, ,.~\I:,:~ ..
·~~t~·~ II
.:~t~t\·: 'c'e neSSUD motivo per dire che la pagina pili stagionata e quella che merita di essere
.';~;:~:\~;,~~t:' rimpiazzata.
: {L~.~-': - Rimpiazzamento della pagina non usata do piu tempo (LRU). E l'algoritmo classico.
i ,n}:l\\:,,: '. Anche qui.oecorre una li~taJ rna il suo aggiornamento ri~ed.e c~e ~i ten~a'~raccia dei
; ::~,;\. ~: : riferimentl. In PMT ogm elemento presenta un campo dl! bIt (il bIt A di Flgura8.3),
!
,
j elemento. In occaslone dl un fault 0 dl ~n numero predefimto di fault, il siStema
::;"",': '.

, ;:;~':~\;; " operativo puo legg,ere i bit .di ~vvenuto riferimento ~ella PMT e aggiornare la lista in \
: ,.",:.','::':;. conseguenza. OVVlamente 11 bIt cleve anehe essere nportato a O.
~ <.,( .... " Si noti che alcuni sistemi non hanno una MMU che automaticamente porta a 1
. ~;:,:r~~:~· il bit di riferimento. In tal casola gestione dell'algoritmo grava maggiormente sui
:·:i'i:":':':'-" software. Nel caso del VAX 1 Parchitettura prevedeva un bit di pagina valida/non-
:,;;~:.>: valida per. ciascun e~ement~ di PMT. A pa:rte la denominazio.ne e. a parte i~ fatto
~l :~;~1);'.:~., ehe tale .bIt non ve01~a agglor~ato ~utom3tlcamente.dalla ~~U della macchm~l la
'; ·:t(j:~-;: sua funz10ne era pratlcamente Identlca a quella del bit A dl Figura8.3. L'algontmo \
~'tfJ;? . :· LRU per la macchina VAX viene realizzato in questo modo. A intervalli regolari 1
I
' ~;;~1:;~¢.~,: nel corso del trattamento di un fault., it sistema ~per:3tivo le?ge il bit di validi~a.e ~o
I !~A~t;,';i:' t~atta come nel caso precedente ve~~ t~atta:to ~. bIt A. ~l conseguenza tuttI 1 bit
~ ~~.;{~~~~«': nsultano ~Ia ?ne o. Se or~ lao pagma vl~ne lDdlnzz~t3o, SI ha ~ fc:~t ~ cau~a ?el
,' t~:(~}t::.. fatt? che lmdtcatore. e ~ a (mdlcando. pagIna n?n valida). Ma pOlche il btt ~ l~dlca
~, ~~~:;~<'" pagm~ presente, per II slste~a ?pe~atl':'o lao p.agma e pr~ente:}1 page fault 51 nso!ve
i! h~'.~.;:,; semphcemente nel portare a 1 11 bIt eli vahdlta. In pratlca, I mtervento automatlCO
I
,,, "l·' , d 11 MMU' .. d [ ill . , . di I/O d
'. ~~:t~i;'~' ea.. t: SOStltwtO . a ~n p~g.e a t, C~ll non consegue trasLenrnento
lK :itjif~'."~' u~ ag~lOrnamento del blt di vahdtta. ~er VIa software. .
41;,t::~~~/ ,~tr;:pt~zzamento sull? base ·del Workt~g Set rWSR). n. working set di ~.n processo
.
,e a
!
,:!:~~\t ~.llDsieme deU~ pagme ~e esso usa In. un tnte~o ~ tempo .4t. PlU .grande e
:?'~#!',7::·:' 1mtervallo eODSIderato 1 pm grand~ e ovvl.amente 11 ~orking set. ~Iss3oto un mterva~o
.,
:.~ .~~+ 4t un da~o processo a:ra. un p~o~no wor~g set. n SIstema o~eratIVo} te?-endo traccl~
~!~ff:·,.~, delle. pagme .usate nel SUCCesSIvl ~t da c~ascun processo} e m grade dl. adattarne 11
\
~f~~~;;<. v:or.king set. m b~e ~ll'uso eff:ttlvo. che il proces~o stess0.r~ delle pagme. ~~~ un
~ ~jM~1 ~lImle ~lgontmo, lPO~1ZZ~do ~ partue da un working set IDlDlmo (per scelta) IDlzlale}
i~ W·~,l.?" it workmg set medesuno 51 agglUsta col passare del tempo.
ll,;~~~~~;" Pre~izione .Pe1etta (!'P) .. Non e ~ algoritmo reale. La p.r~diz:i~ne. petfet.ta e Pef-
]
1~ ~·ti:":l fettlva sostltuzlOne <li pagme che CI sarebbe sulla base degli mdirizZl effettlvamente
~~,i;;~rr:;":,," generat~. OVviame~te~essuno sa a 'priori qu~le Sara la sequ~nza.35 di tutti gil in~zi
;I /'-:',::> genera,tl ~ello spazl0 v1rt~ale. I.pO.tlzz~do di tenerne traccla} 51 potrebbe costrwre a
r~ .,;~.~. postenon Ia. sequenza ott1ma dl nmplazzamento. D confronto con tale sequenza con 1
ti, ~(;~.".', quella dei rimpiazzamenti effettivamente avutisi per effetto della politica in uso e una
:~i\;Ji}' misura della bonta. di quest1ultima.
ii ·,~,5·':.{',.:
--S ;':;h,.:,
.Come ultima cosa convie~e ripar.lare del fatto che Ie pagine mod!ficate richiedono
pratlcamente un tempo dO~PlO per II tr~ttamento del ~ag~ fault, ':ll quanto, prima
I
?;l: :~:.~."j/" dell~ lettu:a ~ella. nuova pagma! c:e
da ~erIvere su memona d.i massa 11 contenuto della
;$! ').~. . pagma fislca unplegata. Alcum sisterm non effettuano 130 scrittura immediatamente,
~~ ;:)~~,.:, rna la differiscono, a tempi marti, usando un buffer per contenere Ie pagine che ancora
"f I~"rr:':,:,
~ J,"'(. ."
devono essere sentte.
•••• , •• ,
• '.;

~
~.; i';,,' .;'
i"~ ': "',
'" .:-- ;;,":' 3lSGli anglosassoni parlano di reference string.
~ . ,., .\,
;~iV.-.j,
if,,'
'.' •."", '".•
362 Capitolo 8 .':
,~

I ,,1=:
"1 .
~mu
""'
t~
. Se l~ p~gina modificata non viene ~critta su~ito, e necessaria i~dividuare u~laltra ·.~:i~. ~
pagm~ v.lttlma.. Se an~e questa e modrficata filllsce nel bu~er I ~no a che non 51 treva- ::..'j,~ ~~
I una Vlttuna non modificata. Solo a quel punto ha luogo 11 cancamento della nuova .'.::;i ~\
pagina. La scrittura delle pagine Bulla memoria eli massa sara gestita in background, !)!~ i1
in modo cia occupare, per quanta possibile, i tempi morti nel sistema di I/O delle .l~J' 1~
pagine. Si capisce che, con questa tecnica risulta molto conveniente disporre di una -n~ j~
I list. di pagine libere; la pagina cbe e stata ,critta finisce in questa lista. Ovviament~:~~i, ';
la lista deve sempre contenere Wl nurnero dl pagme superIore a un rnllllmo prefissato, ':;;~ ':
'.~~~,;J.; "~
.·'15i;I:11 ~2
····'l;;ili
\ 8.6.3 Occupazione della memoria .r,~j~~I~ f
',C~flli\~ '.1
Nel momenta in cui una macchina viene avviata36 , la logica 5i porta in uno stato di'J~~ I
partenza che non. corrisponde a queUo. di gestione della memoria virtuale" In partic~:~j~. :
- 1 lare, 5uccede che il Program Counter Vlene portato a puntare a una zona dl ROM dove ,··;.:W~; .
stanno Ie parti di programma cbe ,volgono la funzione di inizializzazione dell'inter~ .:,~~. !
sIstema. ':.~":Yi~m ~

-I L'inizializzazione del sistema comporta alcuni test sulle parti della macchina37 , la :-;~l~ ~
prep~azione ~el vettore delle int~ruzio~, iI, coman?o di ~utti ~ dispositi~i progran:. ~'fH{i' ~
mabih, come il controllore delle UlterruZIom (se eslste)1 il cancamento m memona.,~'1i ' ~,
dinamica Ie parti di sistema opera.tivo che resteranno residenti, la preparazione delle' tift, :
aree dati e dell'eventuale sta.ck per il sistema operativo stesso. . ';'~":~~~ ,
-, \ . Consideriamo il problema delle parti di sistema operativo che dovranno restarej;~' :
resldentl lD permanenza m memOrIa. Non Cl rifenamo qUI aJ trattl dl COdIce In ROM,",~~ R
~.e,. c~n. l'~sclusio~e.di ~ualche gestore d.i ~as5o livello v~ene eseguito. solo i~ .rase d~ :~i? (
-I I InlZIahzzazlOne. CI rifenamo alIa parte dl SIstema operatIVQ - la qUasI totalIta - ch~ ~r-...,_.. ,
viene caricata' cia <Usco in fase di avvio, In questa parte SODO compresi i gestori dei ':,~i! '
fault38 . . '. </~\
- .. 11 page. fault handler deve ~ecessariamente risiedere in me~oria centrale. Inf~ttr :f,i:t1.
e unpensabile che la sua esecuzlOne, conseguente a un fault, dla luogo a un ulterIor~:.,:;}~
\ fault che sarebbe irrisolvibile, Conviene manlenere il page fault handler in una zona ':~'
di memoria .che non ~ene mai usata ~er ~e pagine. ~i ~oti che a ess~ si acceder~ \})ti ,
sempre con il meccarusmo della memona virtuale, rna il sIstema operatlvo non usera.:.};:,,'
mai una pagina di tale zona come vittima, Alternativamente, la macchina potrebbe,: ,·'!tf~i!:
1 presentare la possibilita. di indirizzare una predefiniia zona di memoria come se non -.f.:.:1;~. - .
fosse paginata e come se gli indirizzi generaLi dalla CPU fossero indirizzi reali e n~~ '::~r~
logici. Si veda a tale proposito la memoria virtuale della CPU 68030, descritta pill' t~;.".

,I avanti. . . .
Nell'are,a ~~ ~emo~a se~pre r~ld~~te del ~istem,a oper~tIvo ve.rranno ~Ist~ma.tI >;:~ ,
.::"#M~"
all'atto dell'lDlZlalizz3ZlOne: 1 vetton dl mterruzlOue, 1 geston delle mterrUZlOnl, una .·~f~!1i

.~"j~~1~~~
·\I 36Messa' sotto tensione 0 Reset. , ,. , ' :';::}J"\'
3 Tipico e il contro110 del buon funzl.onamento delle memone dmamlche, svolte come confronto tra ;, "~jt,
7
dato Jette e dato p~eceden~emeDte s c n t t o . . ' ' ':;~~'l
38ij g~tor~ dell'm~erruzlOne.potreb~e essere.anche.m ROM, ovvero potr~b~e essere m ~OM 11.-:-::~~~
tratto di cOC:Uce che nco~osce l:mte~zlOne e ~OI passa II c~ntr?"o alia parte dl slste,ma ope~atlvo che /t~f,;-
· " \ e responsabI1e della gestlOne di tutto il marchmgegno del nmplazzamento della pagma. ChlameremO '-!,:,.,.l
Questa parte del software di base della macchina fault handler. :\{
1,,'.#,-'
:,t,,)/;

·i I
, ':\1"
.~,..
".~".
."
"'~"
':;'lI"'"
r;:-',:' .
:1 ;(; ",
1 ,:
"Il'i

::~!t!i~: .__-----------'------------CL::::..;.m=e=m=o::ri::.:..v::lr=t"u"."I"e_-,3-,6-,-3
\,;1,1'(,·
.'JiII' , ,- ,
u.""':4:r-'
'r.lf'~-' ",
~U};F".'
~1f}< eventuale tabella radice della PMT, la lista delle pagine libere, la lista de~le pagine
~:r.' in scrittura, tutte le eventuali altre liste e strutture dati di cui necessita 11 slstema
\~!~r,."", operativo per poter fUDzionare.
i1;;:,:~'
~f!F:·~.'''·
~M~:'':
;~";' '8.7 Esempio di memoria paginata: •
la memona del
:·f!!r;':.r'· 68030
~}?~:~'~:' ffilcroprocessore
2.r.;::-\; t -
I~,",

f~~!~~~~a ~emor.ia virtuale del micro' 68030 costituisce un esempio malto istfl;lttivo di me-
1 ,ti~~/ ,mona pagmata.
IJi~~~':: II dispositivo MC68030 e un microprocessore a 32 bit can arcrutettura di tipo
::~~~~i~~.'pipeline. E appars? nella sec~nda meta degli anni otta~ta, q~ale rnembro della f~i­
... ~~:"'::.glia 68000 {CK86], lntrodotta calla Motorola a fine degli anm settanta. n capostlplte
!~~~J;\ di questa famiglia, il dispositivo MC68000 era una CPU a 16 bit di cui venne .ncbe
~~~?~.~<. prodotta una verSlOne, It 68008) con bus .esterno a 8 bIt. Al 68000, segmrono :1 68010,
~~~t;:'~'n 68020, iI 68030 e it 68040. A meta anm novanta 1a Motorola ha Jntrod~tto II 68060,
~Fi;lf/\.tu~tavia) da qualc~e anna prima, 1'impegn? di questa industria e ~tato. rIvolto preva~
,~t~tr%c;Jentemente allo sVlluppo del PowerPC, assleme a IBM e Apple. L a:rchltettur~ ~8000
:,~,' ;~~~,:\ non e stata comunque del tutto abbapdonata, anche se e stata parzlalrnente ndlretta
'.~ :~b~,"verso il mondo dei micI:ocontrollori. Per quanta si riferisce in particolare al 68030,
:iiiil'r',;'questa CPU ha ,uperato la soglia del nuovo secolo e continua a essere presente nei
R~~··\;,hstllll Motorola. I1 modelIe dl punta lavora a una frequenza eli 50MHz e Vlene dato
(- '~~l;tp~r una capacita elaborativa di 18 M1PS39,.. , .
,':.~~t~::,~~' La famiglia 68000 1 oitre a essere stata Implegata nel McIntosh dl Apple, trove,
'I~~~:~agli inizi degli anill ottanta (prima dell'avvento delle maccQine RlSC), largo impiego
1~~~;0~'-come unita centrale di workstation operanti sotto it sistema operativQ UNIX. Una delle
: ~{~f;'~~,ragioni di tal.e successo fu pr~pri~ l'org~izza.zione d~a mem?:i~ - ~dirizzamento
1~~{tj[£1;:. !illeare e gestlOne della memona vIrtuale ill forma pagmata a plU livelh.
.~ • ,"Jf!;~:', 11 68030 e stato iI primo microprocessore della. serie 68000 a presentare una MMU
,:}'k~~~;!};, integrata sullo stesso Chip. In pratica, la MMU del 68030 corrisponde, ~ dispositivo
tW~·.WL>.68851 impiegato con il modello precedente40 • OItre alia MMU, 1a CPU mtegra anche
:, ~~&~/ una cache, divisa in cache istruzioni e cache dati. seppure di dimensioni estremamente
~~.. '~~~',' ridotte. Lo spazio degli indirizzi, sia logici che fisici e di 4 Gbyte. La memoria virtuale
¥ j?i'{,e gestita secondo 10 schema della paginazione su richiesta (demand paging): 1e pagine
r~!t~i~-" di memoria vengono allocate al programma solo al momento in cui si rende necessaria
;1,~t.~:.:-,1a lora presenza. Sono previsti due livelli di privilegio, detti livello di SupenJisore e
,t:~~y~~;)iveUo di Utente.
l~' 'ilX:::',

~.~:.',·--;';;;'::ll-6::8::0::3::0-v::ie-n-e-.-D-c::h-e-v-e-n::du-to:--an-c7he nella versione seoZ3: MMU. Questa versione, continua ad


.::~Uf;V'" a.ver succ~sso neJ campo delle ~pplic~zi~ni embedded, tra cui una molto significativa e quella ~e~le
~r~;: ,:_, sta~pantl laser. P~endo .dal Sl.to pnnclpale della Motorola, {http://IlVV,.motorola. com~ e possl~lle
~~~t~C: r~ggl~ngere la pagma dedlcata mteramente al 68030 e scancare manuall e documentazlOne teclllCa
ijf~.'" dlvanogenere. . . . . , . .
M~:>i', 40n 68~Sl era una ,MM~ estern a In grado dl gestl.re ,uno s~azto vlrtua.le dl 4 Gbyte. La. ffilsura.
r !:!.;j! ,,' della paglna. era selezloDa.bJie l da programma, da. un lDSleme di otto valon che vanDO da 256 byte a.
:r ~ '-'f,~> 32 kbyte [Mot88].
Jr;J;,,:,,':'
~iJ\.f..,:
~/.
.'..
....
364 Capitolo 8
l
;
:1
~"
CODA'Dl
,
.'
WlCROSEQUEH. '"
ISTRmlOHI
i
CONTROu.o '.
•,
CI
BUS DEGU
lHDI1IllZ1
iSTRUIIOl'l1

,
,u, r """
II "' r BUS _IDATI
I,1
!NDlRll1.1
= UNITA' 01
,
'-'1 11 Tl.ll I
"-
ESECUZIONE

BUS OEOU
INDIRIZ'Z.1 --',~("._
·
~.;:."
DEI DATI ."'. Ji.'$J
CO
",· '""~'lI'
~:.~~~~
;, , jit~~'
Figura ~.15 :I?ia~amma a blocc~ ·deIPMC68030. CI. e CD ra~pr~senta:n0 rispettivam~n~e'.":;1~'~' i
la cache lStruZl~D;l e.l~ c.ache da~;I: TTO e ~l sana I .due reglStn usatl pe.r lao traduzlOoe 'l:f~:'
t1"aSpllrente degh mdlrtzzl. TLB e 11 1Tan,,zatlon Looka.nde Buffer. ,,'7:)O~~
·"".t",~,
,,\Ii,"
"'- I,
,",' '·;'1f.1~ ,'.
'U'Ir.~'
" ".J(,"'.
8.7,1 Traduzione degli indirizzi ";~
'." -.":
.. ',,'.,'.'....
,~' ,..1:;.'
In Figura8.15 viene mostrata l'organizzazione del 68030, In particolare sono eViden~<~.I~\,
z~ate Ie tre p~i interne alIa CPU che intervengono nella traduzione deU'indiriZZOda,3:·~~6~..
vlrtuale a fiS1CO: . . .,: '~,1ft~
·
h•

• la cache dati (CD) e la cache istruzioni (CI) - .mbedue di 256 byte; '" ,
'-;':.1;1,
'Ill'
II

~
..
• il TLB - di 22 posizioni; ··'iI
~'...
,;~
. , -'"
" K
, , •• ,,~.
• Due registri, TTO e TTl, detti registri trasparenti. . .
~.t~·
. '~}}!M,
.," .
, .'--"r'.'
"""'"~'''
. n processo di traduzione deg~i indirizzi ein 4 p.assi, di cui i primi t~e si compiono,,·.;:[*.·.,
III parallelo, entro la CPU e colllvolgono Ie partl 80pra elencate (F.gura8.16). D,.;§: ,
quarto passe consiste nella ricerca nella tabella delle pagine e viene eseguito solo se la ..~':.'.~~ 1
traduzione non pu~ essere, effettua~a attraverso i contenuti delle entita sopra descritte. "~~~(r$
I quattro pa.sSl sono 1 seguentl. ;,:,;}~~
,,,~.,
,
. '.;- •.~

1. L'indirizzo logico viene ricercato in CI e CD per gli accessi di lettura (fetch di . -.~;i~
un'istruzione 0 lettura d,i un data), Ovv~amente le due cache sana di tipo virtuale, . ,'·~~~:
nel sensa che i TAG sono indirizzi virtuali mentre i DATI sono i corrispondenti . '::t~'
. .. . .. . ." , . . "'~!ff#
~dir1ZZ;l ~SICl. ~e la ncerca ~n cache ha suc.cesso,. non c e blsogno deU~ pro~edura 'i~.:~
dt traduzlOne e 11 processo 51 conclude, altnmentl procede attraverso 1 pasSI sotto
·
,·1.... ·
~':" '
,1,0'1;:, '
'JI~' '.
'¢.'.,::' ':'
.
i'
~"
"~,, ,;.

Jt:{':'-
, . -
,

\
~;!f~~-:: '," La memoria virtuale 365
l":~j11";,;:.-
f'~. qi~.~ : -
;a\~),r~i€,r!/· .
:ii:1'i)"'W\~'~"':
It'
1<;"
,
~~ ',. ,.,
,j,~".,
IHDlRI'ZZO LOGICO (VTRTUAJ.t)
)
~~"ilJl;"'"
""'-''''J f " .. ,, .
'~"~""";'
""f~:" .~,:., ",.,
i(@~'~>j.';;~·'

l
'.,iOO'" ,."~•. ...~' ,. 1lmtU1101f!:/DA'l'O
1 ' ~ '. CACHE
•,; .fir.;"":'
,.",.,.~.:,~.:.~ ..
·I.~ jf,. 'I·-,
"".f~',r~, I'") 0"'1\,:"
"".
'..);11 ." " ttrolRttlO
,:!Bj~:,::,:j,~.' '. ITO, TIl m PACDll
~"'*~~.
~~lt~k)~
-,.". ..
;.~:<-
I '".
:
•" \
'

il....J .' " ,".


,;:I.\?r.iii; 'J .. ". !HDllUZ10 - TLB I c
I,1 ~-~:••.I~·':.~,
" Dl PAeTHA
R
i'
'~y,1i"
'T",w.,. '
"::'l>'~'r'~', I,'
.
a
0
,!~~~"j":l"
e'",;:w.
.. K.:'r.'?' lHSUCCESSO IHSUCCESSO

'l . . ,
....,,
"~_

,:.. i<l.,.t'~l'.~: ;:-


I
\
0'. ,

"~'.~' e',:r ••
.• "1
PMT
,.,',t"il.:~ "'"'h'
WI{i",Hi!,;·
~"1.., ,-
,.,:"
'~\~""J:':'," "
''':.t ,f".,:,,
·'l~,..;.,;t . IH01RIIIO DI PAGINA

il:~:'~~;;:." 'Figura 8.16 Schema dei quattro passi che costituiscono la traduzione dell'indirizzo logico 1
! i~:~·,'nell'MC68030.
;,.I"Jl&.l,~:,.,·.
:li~{;~~~ ".:
~~~S·t}-.:~.~
!.:,'.~,l~, .
.t_N~.]i:I"
" ! .....,'.',•
\ .. ,"'.,"'\'";
descritti. In caso di operazioni di scrittura, per come e gestita la cache CD, si
rende comunque necessaria la traduzione dell'indirizzo 41 .
I
4!,,1~~~:(. ::',"
",\~.l:"N"';~",
'i'JI,:l'~~""!"
.''''''!>-''.:',
I'tk'*~ I"." ....
'l'";'~Z:'-
. '':)',,..,,''
7~\~;>
., 2. I/indirizzo logico viene paragonato con il contenuto eli TTO e TTL Se il risultato
da esito positivo, 'l'indiriz20 logico viene direttamente utilizzato come indirizzo
!.
fisico.
f~~~\~:
1;~~';~f::;:; , 3. L'indirizzo logico (parte alta) viene ricercato in TLB i in caso di ricerca po- I.
l·i~ ~::r~: sitiv3, TLB. fornisce l'i~dirizzo di pagina fisica. TLB e gestito in modalita I
· ~~, t1,~ ..
• . ,< ,,>.r,," >
.
'~,;:

"~,. '~i;:t(.:·.
" '

; completamente associativa.
. "l.d~··',
", '~' ....
, ',I, ,v':'",
",,~.I;t?,'J,"'"
."...·.'·
,....
" ".' ••;'
'ij'~' '",
',.. :,.-
.1,:" •
t'll'
,'4
. Se nessuno dei' confronti precedenti da esito positivo, la ricerca procede in PMT.
La ricerca puc produrre un page fault Be la pagina non e presente in memoria. t
K
" ~,.<
''''''~'' ,',
....
"W" • ."
e
In ogni casol una volta che 1a ricerca completata 5enza errore, I'MMU inserisce
..'t'" H~:l~~, 'f nel TLB la coppia indirizzo logico-indirizzo fisico . I
. ~ril~h."
ilf,l' 1';""
,',' •. I.•~(i~$..-""; J.
' ',lii~;.""·''-:'
,! ~r~~~~\:,' . . . . .. .
,:' ~~::." 8,7,2 La tabella dl traduzlOne degh mdlrlZZI
~~~l
1f1:
$~ht~:? ' '.

La tabella di traduzione degli indirizzi (PMT) e strutturata ad albero. I nodi dell'al-


)-
~~\ j';~t;,\i.:~ hero 80no rappre,entati daBe (,otto) tabelle che compongono la PMT..La profondita
,~ ~"",,,,,,"
,~~ .
·":,f,·
"lI':o~;t. rnaSsima possibile dell'albero e pari a 5. In Figura8.17 viene riportata una ~abella
~~~l7J~:'·
I

-
:1~ 1(~. 41 . . . . • . .
't~ f1"~~1; ~~ c~.he. CD opera In ~odo. wnte tro~9h e q~m~.h .SI re~de com.unque necessaria 1a traduzlone·
# :~.V ...' degh mdlflZZl per poter scnvere lD memona. Sugh bit In 8cnttura vlene aggiornata anche 1a cache;
}-
I
~ :I~i~'.~: in ~aso di miss, 1a cache vien~ ag~ornata 8e sta operand~ in ~odo. write allocote, altrimenti (modo
,~.i':?i wnte non-allocate) CD non Vlene mteressata dall'operazlOne di scnttura.
~'"
" ~i'~\t<.~,
·• '\h<~ ··L'-. '
"",.".. or.
\\l

. ;~~j
366 CapItola 8 '::'~ .... ~.
.' ,.,.,. ~~

I
,~.~. ,. "
, .' l' .
•<;'1:J ~
'e' : "..
.;<;'.~li 1,:
":. ','
au 4livelli42 •
Come osservato in precedenza (efr. 8.2.4)/ l'organizzazione tabellare a r;!t ··t,:
'.,~ ".

~ve.~ p~rmet~e di ~enere in niem?ria solo le parti di PMT utili aHa traduzione degli ,J!.. ~ 1~~
I mdirizzl usatl nell'rntervallo spazlo-temporale corrente. :,:./iJ<. .~
n nodo radice dell'aJbero epuntato tramite un registro di CPU detto Root Pointer.::·~~ ,\~:fr
(RP). I nodi foglie dell'albero sana Ie tabelle che contengono i descrittori di pagina :;~I.. i:~
(fisiea), ov~ero i puntatori alle pagine fisiche e Ie inforn;tazio~ di stat~ neees.sarie per 'j·!£t;" J'$
la lorD g:S~lO~:. Quest~ tabelle vengo~o dette tab:llE! ?~ pagma. I nodi che ,51, trovano ':;f~(!~,' ,;;m
\ Delle POSlZI0nI llltermedle della gerarch1a sana COStltUltI dalle tabelle puntatnc~, In esse ·~~,~m ;1J;t
';"'_!l:i!, ;':"(ii I."' ,~
~" :'-'~
I progettisti hanno previsto che sia possibile, quando oceorra, evitare di percorrere ',:';i~~ ~~~
tutta la gerarchia dell'albero. A tale scopo nelle tabelle puntatrici possono trovarsi >i;/ij- ' ,~~~
\ anche dei d~crittor~ di
?agina, ovve,ro i, puntatori alle pagine fisiche, Tali descrittori'r~i:~~~
~engono ~ettl descntton early ternunatlon, "::;i;i>' /If
, OVV1~~nte., ~a ~trut,t~a gerarchica di ~M!.presup~one ~na congr~erit~ interpre-~,£%~ _ ':r.
t~lO~e_ degh u:dmzZllogIcl. D for~at~ dell'lD?lrlzz? 10g1CO ~ lll~strat~ III Flgura8·17:+~1 '~~
\ r L mdirizZQ loglcO generate daWuolta dl esecuzlOne, e su 32 bIt, aJ qual! vanno aggiunti ;;1(/ ~'!
3 bit ulteriori l pure generati dalla unita eli esecuzione l detti codici di funzione, FC. ~e _';:~1 :I~
~nee FC son? caratt~ristichedei micropro~essori della, fami~li~ 68000; e~se ~odifican,?~~\~g ~~I~i,
I il contesto di. ,esecuz~one del pro~amm,a,(11 co.nt~to m CUI, Vlene e5~~lt,a Istruzione ;~r~ , ","'
correJ?~e). PI~ specificatamente l I COdiCl, Fe mdicano, se 1attuale lIldUlZZO genera- ~,:?:f~ ': ,
to dall eseCUZlOne del programma appartlene a110 SpazlO del programma utente l alIa ";?~, "i:
spazio dei dati utente l aIlo spazio del programma supervisore, ovvero allo spazio dei ::~~ ~ ~~
d~~i d~l. su:pe~ore .. In conclus~one, i codici di funzione,individuano differenti spazi :~:l::I, *r
\ dl mdirizzl. SI rntwsce che eS~1 hanno ~n. ruolo molto lm?Ortan~e nella ,protezion~.ff~l ff.t
(efr.8.7.5). Per non appesantrre l'esposlZlOne del meccamsmo dl traduzlOne attra- /41. ~ !if
verso PMT, la discussione sui codici di funzione viene posposta al paragrafo dedicato:~;~~';~ mt
~:;~, ·~
I I alia protezione,
~ d il
.J.J.3Scuran 0 campo
FC" I'·ill di nzzo
. ,
t: Stl
ddi· . . I· ABC D ;'k;-;il!;' ,,: tt;J
VISO nel campl , , l ,
OFFS.E}T. La dimensione di questi campi non predefinita, bensl determinata attra- ?'i.1 't~
e
e, :::~;?'. ~

verso il conten\!to del re~st~o di c~iltrollo della traduzione, TC, descritto pili avant~ -\~~'jt, :)

I (Crr. 8.7.4). 1 conlenut. de. camp. A, B, C e D rappresentano 10 scostamento ne, .'~~.' ~


rispettivi livelli ?ella PM'!'l ment.re il v~ore presente ne! campo. OFFSET fornisce 10 :::iJ~~",. ~~
scostamento alllmterno della pagrna fiSlca. n processo d1 tradUZlOne attraverso PMT _:",:~~, ,1it~
e sempre illustrato in FiguraS.17. Esso si svolge secondo i seguenti passi: :,/~i :
" qt"'. !':\
''''I]' ,
\ 1. La tabella radice dell'albero (tabella di livello A) Vlene raggi unta mediante il:~~i~("", .{
- ;,,"

contenuto del registro RP. , ,';g,~:~ 'i


<.~jl :~
,I 2, S?mm~d 0, al cont eou t 0 d ,·I RP il con t eou t 0 d eI campo A. d e11" md'~!1Z~O
Vlene Identificato un descnttore entro Ia tabella.
. I" -, ":, ~I'''~ -f
,ogleD, , '~r.1J.tt .~
n descnttore COS1 selezlOnato ,~,..,~, '~
punta alla (base della) tabella di livello B, .- -, ,:::,p~~, ~~
, ~,r~:~ 'it. }f
_f?~ :f
; \ 4:ln quinto. livello de.riva. d,al ~a.~tGl cbe in real~~ j tre bit del ,F~netion ,Code, (Fe) vanDO consider~ti : ',,;-":1<);'" i?
c~me parte IDtegra.nt~ dell'lDdtnzzo ~ ~eterm1l1<fno un posslbile ultenore livello, nOD mostrato In :'.;~'~, -
FIgura 8,17 per semplificare lao tratt¥lOne. . ' - ..:';t'i'~ :
"Non c'e niente di strano Del non considerare il campo Fe. infatti, sempre attraverso un bit del . '!t~ X
1\ registro Te, e possibile imporre alla MMU di non tenerne conto. Di conseguenza, i prossimi esempi -- >~ifl~ }
corrispondoDo a situazioni del tutto reall. "i\'!~' ,'i'
,
· R\;!i
'.;-"-'M ~
·,-~,~1.P' ~
."'"
·.;-, .. ~
:\
:~'i-::

:i>··,
4.~~:~'. -----------------------.:~.::::::::::==-c:::.:.::=----
La memoria. virtuale 367
"".,~
,r·
. . ' .' .
,., j .
..,,,,,-. ,
:-;:'.,-""- '"
", .
",",/-,

t~(',:
~t>
~rr:
. Z\l~l

@J1'1_lalclcl CFFSET I
a

r;S~'"
~~~ ,'"
Slrultura deU'i.ndiri-zzo virluale

$>~' Tabelle punlatricl


m!t "
t~,~~;.:,'
ii;P' ',,-
RP UVCWl •
',): ,-, r--
~" 'I' ' L-
~ I ~ , UYI:U.O I

R;'~~' LA ~!!!'Jlt-,'r-T
~,::" uvw.o c Descrlttore di pll.gina
~~:;"" ~~t-r,:~=j ~.
f~i';::: ~~~~.~~~~L:::::~~---.:':"L
~~D'" nlIlC.

.~ff.~t:-,' ,~l!Scrlt.ton di t.abella L_ OFFSET


~r~:,;:'
!i'l¥':'"
~.r'~: -,- PMT
,:;:-:,'
'1C}I(':' . ' ' , "
,>~1:'~", Figura 8.17 Schema della struttura ad albero ?ella PM,T. La ~ensl~ne del ca~pI dell 1U-
:.~';.~'f'· dirizzo virtuale e determinata da! contenuto di un regtSuo eli macchina denommato Te,
~f~;: registro di contralla della traduziane, Nella schema manca il Hvella corrispandente a.i codici
r~::::."<di funziane Fe, Tale livella si inserisce tra. e illivello RP A.
t' ~t{·
ftffl i , . tt t 'I
t~.'U:: . 3. Analogamente al passe pre~ed~~te, son:maD~o ~ p':l~tatore appena? enu 0 1
~~;t.· contenuto del campo B dell'mdmzzo 10g1CO, Vlene lDdlVldu~to un descr~tt?re nella
J~,,,,,".. LL tabella di Hvello B' esso rappresenta la base della succeSSlYa tabella dl hvello C.
~~ti' '
~"~:f;:': '-'" . .' . ," ' .
~~,~:~\",' ,1: In modo analogo, si attraversano 1 lIvelli pIll bassI della gerarchia di PMT.
~~'{ ...
~('"'''' 5. Infine, il descrittore di pagina contenuto nella tabella di pili basso livello, contiene
~~;';:~·', l'~ndirizzo della pagina fisica, Sommando all'indirizzo della pagina fisiea il conte-
:~;:~> nuto del campo OFFSET, si ottiene l'indirizzo della locazione in memoria.
,\>:I!... ....
, ;,~;
~'~-'

{~!;e';';~:- , ' ', , ,.. , .' .


i~~~Y~,:.' Nella deSCnZ1?ne pre~edente 51 e assunto c~e I alb~r? aV~5se tuttI 1 l~~elh posslblh,
~~;:::;': In realta e possibll~ s.~e~lfic~e un nurnero ~nore dl lIvelh (?no ,a 0) , Del. res~o,
f$:~·t",· anche in presenza dl pIll hvelh l esempre posslblle trovare descntton early termmatwn
~~:.~".; atri '
~t~:f.~',' eotro le tabelle punt Cl.
~~~~~~. ~ In Flgura8.18 viene dato un esernpio di PMT a du~ soli li:~lli, Si ~oti ehe leo ta-
f.i.J:.!~" - belle ai diversi livelli possono essere di differente dimenslOne, ClO confensee maggIOre
f~;;::,:::'. ftessibilita, rna implica che il sistema opera~ivo deve essere in grado di allocare tabelle
?-.'f/.~~;:,' di dimensioni differenti da quelle della pagIna,
-{it~,,>. ,-
:~?~":.c '
Xift..C ' Un numero di livelli e specifica.to altraversO il registro TC di cui si parla piu estesamente nel
};~~:'"
'f;.·'~::~.1 seguito,
i'I03 .",
~'" l'tJ '
~I': :f'fi'i-~'"
'''';.
~~
,

36B Capitola 8

~ A (12 bit) ,B (10 bit) ,OFFSET (10 ~')

INDIRIZZO OOAOl.AOO 1000000001110100000001101 xxxxxxxxxx[


E , X

ROOT POINTER
:-----1
,
' I
,
,
TABELLA OJ ,
UVEUO A , ,

--'
,

INCRESSO OOE: PUNTATORE ALLA PAGrNA W


INCRESSO "t'
006 '~'l'~'
"i;~i.'f2
. ' "'n
, ..,..;~'(\"
l ;"::!;';.Io\
. t~;t
_~,-,!fI!,'.,
'( .:i-I,-,
• 1 01,t
"I,~
c·l .....
-"','" '
';"1....."1.
.:',:>J'
,
,:Cl"~'.
•. ')1' j.
. .',..•J' .
1 I I
< ·;~l . ..:.

TABELLE D I ·
LrvEll.O B
•.~:?~,
~:";~'~f
Figura 8.18 Esempio di a.lbero di traduzione. L'a.lbero e a d li lr I C . A B '(:i~
PI
OFFSET sonG rispettivamente di 12 10 e 10 bit per cui la tabe~: d~el' I'll A":"d 4 k'b e .q~ .'
. "lIve0 t: 1 yte 1,. ,
que11a di hvello B di 1 kbyte. Pure Ie pagine fisiche 50no di I kb t II t t d I A' !,~:
" d' , Y e. can
d eII m 1rlZZO logico (HOOE), sommato aJ contenuto del root pOI'nter sele ' enu 0 e campo 'r ~
d 'tt :~·,··J
' ziona un escn ore " ,
aIIIvello A dell'albero di traduzione, I1 descrittore selezionato punta all b d' t b II ''1;1,' _
eli Hvella B. In questo caso essendo la gerarchia a due soli livelli Ie t ball a5e
d · /Iveulnla Sa e an".ll
1 t b II di ' II • . • a eel 0 sono::l, 1
,e a e e pagma.. co~tenuto del campo B (H006) mdividua un descrittore contenente :"1 "
11 puntatore aHa pagma fislca. . ;' .~f.'Vi.,
. "~ ]~oP.!
. . .'. ' .:.~:,J~
eli eSanlmare ~ ~~tag~1 offerti darla strutturazione a livelli della ·::"ir;t~
V:a1e .Ia pena
PM! 10 nferunen~o alia sua fiesslbllIta. e nguardo al problema della eondivisione delle.t.::~~~~t
pagme da parte di piiJ processi. . ::.,;A
. '.. ;:~.(\
; :d~r:
'. ~"'~~J.
Ta~ell~ non .resi~enti In Figur~8:19 viene mostra~a una PMT con ta~elle n~n '~(.j~
resldentl, e resldent1 (1a tabella n di livello B). ·Non e mfatti necessaria che l'intero ";::I'
~lbero dl ,tra~uzione del ~~k att~vo sia subito presente nella memoria, basta che -,iX.l~
In m~mona Stano presentl Ie pa~ne che presu~bilmente verranno indirizzate nel ';'1.1, :
prossuno futuro. n concetto cornsponde al coslddetto working set del programma .~~··t
[Den68], [DS72], [8T74], [DS78], ovvero alPin,ieme di pagine che consentono una ,-i)1i
accett~btle eseCUZlOne del programma. In Flgura8.19 V1ene presentato un -albero di ':""~
traduZlOne solo parzialmente presente in memoria. _ ':'~;:!~
-, ;'\"~
'.,l.lf;
;f;~:
'j'" •
Ij'.'
111;;,

~
__ ,,,,~, ,':1. ..
'~~."-': '
, .... -
',.,~.
\..~
-

;,~~tf.~_:-:~:--__~
;<;l~'~,': '~" ,"
---,:L:a:..m:::e:m::o::rc.:ia:....:vc.:irt:.:.::u:::al:::e:-_3=-6=-9c
~'iN' -'
Ili'll.m:'.r,,>''-: :--

I
·~,rd~\·' .
~)i~"""'-J
~ii:t;!"J;'",
,""'""jl~,',., A B OFFSET
U,W "j-".-
;.{:",~l:.tY-~ :..
r.~;ldFW%!,\':_·' U~DIR1ZZ0 DOAD lADa joooooooo 10101 0000000I10! xxxxxxxxxxl
. '.:-'"
':'·.I';:fj<'~'r,i'i"
''If.~~ ;;~ A 6 X
·,~/,~~~,r·.;~
~!>;;~".~;:.­
·'r;:ll;;.!!!.:;;:;-' '
' ':::i;.'i;;",:r: .': RP
9Itkl'!'f~':i"
'''~J1i '~"'" ,"" ,,:
:-----l I
TABEllA 0
l
I
'!'!j' /,' (, :~ .- .,
i~~~~~-:" -C=:=:=:::Jt-o , DI
UVEW) B t
~~~1~~:':--~ I (PAGINA NON
itj,/""I}":'~' ,0:;-
:~~ A{:/~
':"~" ",''',,,,
,.
I
, PRESENTE) I
J '
"
'.Rf~~;;i3i';f.!?' ~~~ .'-
r·,..~ '" ,'.
,"r·,'·~'~

'~l''''''''< -'
\'i~r,(il.·· ' trf-.-ll<'IAUOO --
. lNDLRI7.Z0
~
TABEILA n
!rill~\~it;;··· . INGRESSO aOA INCRESSO
li..1 tl~I,~~\ '.
11t -
nt •
1
008 DELLA DI
UVELLO B \
","
}~ "111-' ';1, _•• - •
"'I'~"
: fr,;l_~.;:'" .
l1t a '

\IT • 1""'UDO 1
' PACLNA

tl~~t~;'~~'
~l.1.t1tj~·:r·· '.'
;"~~;l~~:"-~'
·,).Jhf.,' ~
I~',o;~";;:~,:.: .. '
------l I 1
i'~";y,,," ,$:",-:
/.l:,,~_.
1,-------,-,_ I TABElLA. m
-
DI
. . ,iI/:'lr.!·· _; . UVEW) B
" .. r:Bl~j'- ..f: ' TABELLE DI

I
'i l'~ ~. ~ (PAGlNA NON
l~ ",It';',.·' L1VElLO A
:'lfhl'~~,'i" PRESENTE)
. li*~ty I I
((i&:~iI-'-";:::S
?'
-:: . i

,
7 ,.,:,' .

~Slr~;.:· I~l~ tP 1
'it:W)"~ "..
:~:~:~. Figura 8.19 Esempio di albero di traduzione con tabelle non residenti. L'albero
. :~~.~'~·:··li.velli,
Se campo DT del descrittore della tabella. di livello B contien.e il codice- n~n valido si
e a due !
.~"~~,>:.. d ' , ' II I 'I ' t ,', d d ' ,
;1-::.~·,i~.. etermma un ecceZlOne , a a qua e 1 SiS ema operatlvo PUu nspon ere portan 0 m memona
\J:;l I;'>.' I
J.I" .~~f.Yi~;( " a parte
dell'alb ero assente. S"I notl ch e se 'II campo DT ill'dica d ' I'd '
~cnttore non va 1 0, 1
, ~'0 ,~~,' . b' did . . . . dal ' , ,
_ '\~;,!~~WF: restantl It e esCrtttore possono essere lmplegatl ststema operatlvo per memonzzare
l "?}~~~!':) l'indirizzo/la posizione su memoria di massa della tabella (in questa casa) non residente.
\
1.. ':~ ~"f.';,:,
" H~t, it ;~.,
, "'~~~'~>'.'
!!: )~i,~~;t~.·:· Condivisione delle tabelle da parte di piu task Pagine a tabelle puntatrici
~~, "~;.s:f." po~ono esse:e condi,?sa tra.pi~ proc~si collocando i punta~ri ~a ta~ell.a ~ondivisa
I
~ij'~f~~~~fr:f,:':~i:' nell ~Ibero ,d~ traduZI?ne del ~~erentl task. Le. tabell~ a ~l~e.1h su~enon nspetto a
tr"J l1£;j!~: : quelh re~at~vl aUe ?agme. con~lV1se consentono aJ. task. di utllizz.are 1area camune can
Aii ~~~~~t. c. permessl .cit protezlOoe dIvers!. .. . . . .. .. . , 1
\~, l]tr;L",_. In FIgura 8.20 due ~ask condlvldono llarea dl metn:0na 1ew mdirizzl sono tradottl
:.~ :;;/~;ir. att~ave,r~o la t~bella a1 hvello ~. ~ tc:sk A ~OD pub s.cn~e.re .nell'~ea.con~visal ~ task
.n: ~~i~ :.~ B SI. 81 ass.ervI che l'area eondlV1sa e raggmota da mdirizzl IOglcl dlversl per claseuD
~t \ M1t~;:: task. ,
'~l' :H~~if .-
~'i .~t,l'·'"
:~',~ ,;~1~t:,'_' Tipi di descrittori in PMT Per i descrittori sono previsti due tipi di formate:
ti~; :~-F'~,;;t.:,' lungo e eorto, corrispondenti l rispettivamente , a 64 bit (due long word) e 32 bit (una f
i~j:;i~:~i, long word), La disponibilita di due formati damaggiore f1essibUta, In Figura8,21 ,i
~~1 :;~~'~-:"..' nporta come esempio un descnttore dl pagma 10 formato lungo.
~~" ~~~~~:' Brevemente, si illustra il significato dei campi,
~ I~.:',!(t
;t ~~l',"l', ';:: ,
:~ '- 1li~fi\~';,:
,~)
.
370 Capitolo 8 ,~,;i
"~" ·
""."

.I ,""
·"'I'·
'~;',
f f

~
A B OFFSET
~
INDIRIZZO OOAO lAOO [0000000010101 00000001101 xx:o:xxxxxxl ,
'I' .'

.~
, , x ",.
"-
..~
1
RP
:-----l
,
' I
'~·
,',
,'
"<
r.

\ ,
, ~ 'hJ;
·'.F
"
'I"
., ;

. ~'
:.'
'11

I , , ,i;oI·.
.~::~~.' "!a
v'
~
,:':'ij, ..
./rl,(i., ~'~,.
.._.n ',
POSIZION! "'ij' ' "
00'
'" """"'" ":'i~rJ,
~d ", ·~
,"-';

;J!'I
\ /lJ:,
. .~~J'i, , ""."·
I I I I "~', . II
,<,!' '\
I I ," " '" 'I,
.:
TABElll: 01 UVEL.LO TABEll.E DI UVE1LO B -:J"i':i:,' ,I·'~
".~",
-.1''''> . • '."

I
A DEL TASK A DEL TASK A ..., ' .
Y'" .' II
'I~
. !r.I' -"
'~
. "~" Ii
~!'t'l' " ..;
I lNDtRlZZO DEUA
:,.J..
,..-il]
~ ,'Jl~'
1"}.
;Il

I PACINI., FlS!CA \ I -'./:, ~


POSIZ,06
WP DISASS.
" CONDIV[SA 01. A E B . ,,~\~~
" , ,I'~' 1;
'!

I
i<"
- (PROTEZlONE SCRlTIURA ,""'" h
ATTrvATA DAL TASK ,0\) ':.'!l!.4!: ~l
I, I11 )Ji
I I I;J.~ , ~>
I fABEIl.E Dl UVEL.LO B , iJi',:,u
,,;t/W :$ri
TABEIJ.E: Dl UVELLO A
DEL TASt<8
DEL TASK B
,~-"
,:ar.CI
:JY; . ·t
.t
\ Figura 8.20 Esempio di albero di. traduzio~e che usa tabelle .condivise.. ~ punta alia ~ase, ·~~r~*·' r
dell'albero del task correntemente lD esecuZlone. I due task A e B condivldono la medeslma ~.'~~ . ~
pagina attraverso i due percorsi indieati. La pagina e protetta in scrittura per il task A e :,~~~, t
B. :.- r.'~,,{ l~
1 I non protetta per il task
31

~
l~IS 031

1
87 D
'"
\:i; , "!j1,
: -ill_'

'~y
,'h ~~ '~
I
',';1.;0"1",
...7.'ll:-
l
STATO !tlDIRIZZO 01 PACIIlA _
:';i"f.
i;:\~ f
?~~f- '
\ LI.LLLI.IIIIIIIIII ,, ,
.)~~~~
<J:"~'
'
F 19ura.8 21 F
e escn'ttare <Ii pagma
onna.to dId '(f
ormat 0 Iungo.
) I
n una s t essa PMT possono II:;?;';
,c'., r~
essere presenti descrittod lungbi e corti, ma c'e il vineolo cbe all'interno della medesima. ,0:'''"'
(satto) tabella i descrittori devono essere tutti dello stesso formato. ~;~~~.
\ .,i'~':

• U - Indica che il descrittore e stato raggiunto nel corso di una ricerca. In una: ,~~~]
,I 1'"
"~,4 ..
tabella di descrittori dj pagina, tale bit indica che lao pagina corrispondente al .. "~
descrittore estata raggiunta. In una tabella puntatrice einveee posta per indicare .;...', '
.""
,._~'

.~..

e
che stato usato il puntatore in esso eontenuto durante la ricerea in tabella. . ;~J~P
'.....:~u
":ti'~j
• S - Identifica una tabella una pagina cui puo aceedere solo un programma : :;),/
0
\ eseguito a Iivello del supervisore, ' "::~~~:'
• cr . (Cache Inhibit) Inibisce' l'impiego della cache per quella pagina, In al tre "',"~;;~'
;-~'{.
' ' '-;
parole il contenulo della pagina non trasportabile in cache, e
I • M - Indica che la pagina e stata modificata.

I
",n,\,-'"
'~h:
. \\' ,-,"
.t\.. ',,<-.':"
~,,":"

):..t:'Il'~
i ,;*,~
·!<'jd·'
"....,·c- ,
La memoria. viTtuaie 371
"""""
·"T.·.,y",·.' ':.
"i~'~'
.wp -(
fl",~_;':,'e

~ . .':
":li~";'''''.' .

'I\\) "
~ ~",;-
Write Protect) Indica 1a protezione in serittura, ovvero che non eeonsentito
~~".
~ .'7:~:".
,. .
." ~'""',,'
-"', at programma. di modificare la. locazione indirizzata.
'
~ "Rt'
"

·"l·u~,,",
" r,_._, .. ,. "
<.~'",.,........
,"••,.J •..•. ,.
•.' ,. . •
DT - Idenlifica il tipo di descritlore (Descriptor Type), Sono previsti 4 differenti
.f'"·:'l".'''·
~ ""' ' tipi di deserittore e cioe
"""'
. ',"'
;,-' ~ ~",
.i$~.-.
1~.,~,
'.'t:"·
r" ....,."
..•<,.,
~~;".,;
.• ,(·
",'-,:
Descrittori di pagina (DT = 1) I normali descrittori di pagina' sono conte·
'i"'''a- nuti neUe tabelle di pagina (terminazioni dell'albero) e forniscono l'indirizzo
a~~~i:'
..' <:> .' c della pagina fisica. Sono moitre previsti descrittori di pagina eady termi·
.'.t,. ~,;;,:,"' ,
,.""_' nation, COS! detti Rerche contenuti non aL livello pin basso dell'albero di
""k
~tt.\; .,'
;~'

traduzione , bens! in tabelle intermedie. La ricerca in PMT termina quando


!t-d;i/.i:.!·
I".'P\'~"" , viene ineontrato un descrittore di pagina dell'uno a dell'aItro genere.
·'' ;:\l;.ol;'
I,;~._,~.,
\'I.~,t,-" ", - .'. ,
,,''::',j''.i,'''.'',
::,,,. "". ' Descrittori non volidi (DT = 0) P05sono essere presenti a ogni livello del·
·~'!'f:~'<:~f'r,
,·"'1' ,
"'f'.""." l'albero di traduzione eeeetto la radice. Se viene ineontrato un deserittore
',,>:."JI "
I ........
"'~';J:'"
~i~~,l.\~."
i .• ~", '
non valido la ricerca termina e si genera un'eccezione. Per questo motivo)
~ •.• ~. l
1""' ,!'i,:1,",'"
E""":' i campi dei descrittori non validi possono venire impiegati per eontenere
l;~,:
.:l",.,. -p.."..
~f. ;-'~" , ..
'
informazioni utili al sistema operativo. In particolare possono indirizzare
!').~1"ijo.)')·
;""lh-';~."i":. la pagina sulla memoria di massa, identificare una pagina 0 un ramo cii
h .!';),i'!...•.
"<<4", ' ..

l\:j'~lr1\.r;, ~'. PMT non correntemente in memoria centrale, oppi.ue una parte di PMT
1;:9i~'k~":" non aneora definita.
>l'~jl1,:'
$..'t.';;l,' "r"~;'
ritt,) <:.,
t:-t.1.t.l
. .1 Descrittori volidi (DT = 2, 3) Si trovano nei nodi posti fra la radice e Ie
t.t,t~~~",:", ~ terminazioni dell'albero. Essi contengono: il puntatore alia tabella, il limite
r~~~;;:: ; relativo all'indice nella tabella, Ie informazioni di stato, inclusive delle in-
~~l;;~~~t ,. formazioni relative aHa protezione. La differenziazione tramite DT riguarda
t.f;;Ii¥,::~; ..: esclusivamente il formato dei deserittori nella tabella del prossimo livello
ll!t;~i:r/:'.' (DT = 2 per descritlori corli, DT = 3 per descrittori lunghi),
~~;'I_;''l",'
1111.~"'1",s, '
I
... ~;;;,.

'I:'~-'~'"
~ '~iltl'"
. "'il;'~'"
'__ ~:' ..'
. ..

l£!ii,:~,.", 8,7,3 II TLB


f."~'!.-:.;
';~~'~~I!~W:'
l'lr~·h,.:",
.r~~'~h~l"
11 Translation Lookaside BujJer45 presenta 22 posizioni eompletamente associative e

'!J~','
.l~~t";:.',:·,
e gestito
.., con polilica
. ('(pseudo) LRU, A tal fine
, F'per ogni voce
) 1viene
' a lusalo
l iI bit . di
'~~:~;.: vahdlta e un altro blt mterno, non mostrato m 19ura8.22 re ahvo a sua stona.
ili~ff.tX-''':
~fi£$~"'"
-.'
'- ,~7 Z8 U U C 2728 25 24 23 0

7',... ,
~\~f<
"K'" .ll~ .
0' I Fe INDIRlZ20 LaGleo I lm P
INOlRIZ20 FISICO I
ill<' .• 'I;
~ ,'l" •
)'(i.~'" ,•
~;",,' ~f;I''-"" TAG DATO
P!':i: ·ff •
~:~'~"I{ Figura 8.22 For-mato di una. voce in TLB.
'.~\~i-I,
~J;!;§"···'t'···'
~/' ",'
It~~~::::', Ciaseuna.p~izi.one
ha eo~e TAG l'indirizzo l~gieo e .co~e ~~TO l~indirizz? fisico;
~l.f.""::i" nitre ad alcum bit dl stato (Flgura8.22). A parte I campI di IOdmzzo, 1restantl campI
K'l",' h 'I I ' iii
f~r-t~: anno 1 seguen e SIgn cato:
r~J\'" ,
1~I'l'i·,
~i.f ;.'~;~:} - <ISLa Motorola usa. il termine AdduSI TranslGtion Cache, abbreviato in ATe.
tt:,.. .
I,.:>,
. '" ,
';;;Il ,
'~ ~:
..~
')
~~
,t."
312' Capitolo 8 ,'if'" ~
.1~. ~~
;1, ~,
,r" 1 ;f
i';~~ ;~ -
• V - Bit eli validita. ';'1";'"
,~r.·"
,.
"~'.~ .~ .~.;
\.

• B • Errore di bus. Segnala se durante la ricerca in PMT che ha portato alia '.."'-i~
~i;. ,
.~ •. ,
... _.,' _

e
costituzione della voce in PMT, stato incontrato un descrittore non valido, una ,"\- :I... .' ':
violazione delliveIlo utente/supervisore 0 una violazione dellimite 46 . n bit viene :I'ill
", • E .

asserito anche a causa di un miss in TLB: il miss provoca unJeecezione a cui segue JJ~t ~
la ricerca in PMT, a conclusione della quale viene costruita la corrispondente
(nuova) voce in TLB, can B asserito. A questo punto la CPU riprova l'accesso
~~I i
at TLB usando il medesimo indirizzo, generando alleora un 'eccezione per via di ~}~:I; :
B asseritoj a seguito di questa eccezione il sistema operativo azzera B. ··t~i! :
..':~~~:t F
• CI - Inibizione cache. Se asserito, blocca l'attivita. delle cache per questa riferi- "~(I :
mente alia memoria47. "'~~')::
,;~,. ' ;
• WP - Protezione scrittura. WP e asserito se, per questa voce in TLB, C'e almena S1 ; :
·uri bit WP asserito nei descrittori percorsi in PMT. .:~~~ , , .
,:.~,,~I

• M - .Modifica avvenuta.. ~ at~ivato a seguito di una scrittura al~'indirizzo logico )~;).~: ~ A


cornspondente alIa POSIZtone In' TLB. Se la CPU tenta una scnttura e trova M r;·~t· :
disasserito in TLB, la voce viene invaHdata e viene dato corso alIa ricerca in '::1211'
'. i:
PMT I ass~r~ndo. M nel descrittore ~ pagi?a. A quest~ punta vien.e creat~ una "~~.' ~ ;
nuova poslzlone m TLB con M assento. Clo per garantlre che la prIma scnttura '~1~~,' J L

a una data pagina asserisca M sia in TLB che in PMT , anche quando la posizione ~;:Ev' :
in TLB poteva essere gia. stata ereata per effetto di una precedente operazione di ;..~' :
lettura . .\~~~ i
. . •.
. • •• • . • • •
~II' ~,la ;
;.Y,;.' i .
· 81 .notl c~e il ~arn~o dell'mdmzzo l?glcO ~ d~ 24 bi:. ~~si.comspo~do~oa~ ~n~ ,/', J.~~
dimenslOne dt pagma dl. 256 b~e. Per dunenslOm maggton I blt menD slgmficatlvl dt /~~' M~
questa campo vengono 19noratI. 'ij'~(" \P',,
:\l~'~~ ~;
:':, 'ir,
. 1·~L ,
:":,'.,,!, .
'.w.;
••• ~
8,7.4 Su alcune caratteristiche specifiche della MMU '..','tV"·
I.''; '';
l:
. '''.•'
. 't"' •

Ov~~amente ~o~ e. possibile dare .tutti i d~ttagli del fu~ziona~ento della MMU.
Per .t;"J~,
esSI lliettore e ffiVltato a leggere 1manuall Motorola e in parttcolare {Mot87]. ":~~ l
n modelIo di programmazione della MMU si compone dai registri sotto eleneati. ',:~i~~'
I registri della MMU possono essere modificati solo dai programmi che eseguono a :~:/;f/:L
Hvello cii sup~rvisore48. ~ .tal .senso, Ie .istr.uzioni di manipolazione dei registri di '."if/J:~
:i'!~
i

MMU sono dl carattere prlVlleglato. I reglstn della MMU sono:

• un reglstro dl stato dell'MMU stessa (MMUSR), dl 16 bIt; "~.!'!.~

46~:l; Mot~rola chiama questo bit Bus error, percbe quando si genera produce comunque una,
·JI'", '.
.;;j;.
~
condizIOne dl errore s.ul b~s.. . .. . . . : ' ;,t,:,
4~Qua.ndo questo.~lt (e .11 com~P?~dente In PMT) e assento, un rlfenmento aHa. pagma. fa assenre '~:I.£~d
la lmea ClOUT, uttllZzablle per IDlblre !'accesso all'eventuale cache esterna. ", ;,;.:~
48Come gia accennato, iI 68030, per quanta si riferisce alia. protezione, prevede due stati: 10 stato .~j; ,'
bit S) del registro di stato dena maccnina (SR). Si noti che quando il processore viene meMO sotto .~'., r
. . . .",~.01
tenSlOue, 10 stato dlventa autornatlcamente quello dl. .
supervlsore. ,,4
.::-;i'} .
""" I'"
...,:,ii:~-.:
.~~:~.~,:-.
''''~'i'i<
)]; ~~';f
~I~'J"\':'" :
"ii'l·~" " ..
.QIo ,: ~~.
I
~I .. "'-. ,"
~.~~» "-. La memoria virtuale 373
~,::J'~::'
ff.'!;~'j:~':::>'
~'i,/):<~:; ': 1
;'.. i" ",-' '.
.-:",;:::.1'
",.'"
."'::.·l~'" '.:,_
:;;'
• il registro di controllo della traduzione (TC), eli 32 bit;
,.,~ .. ',."'.. '
di traduzione trasparente (TO e Tl), di 32 bitj
_,,' . .

E
J
r~,":::··

:;,J,.:'.' .•-.0.
..t"l,.,.-
. .....'."J, ••••
-.
.'

.'
• i due registri

• due registri Root Pointer (CRP e SRP), 64 bit".


(
~:f.\):;.
i:~>::~ "
:B;,:f,·~:;,:;· II registro di state di MMU La funzione del registro e intuibile: non vale la pena
:~;(;;'~'j::':. di perdersi nella descrizione dei dettagli del suo funzionamento.
l
F .•~""":,,
:rf;A~>;~':'
:."~,J.(
If . t dO t 11 d 11
.regls ro I con ro? e a
. '
tradU210ne TC E stato dette che la dimensione
;Z5<'';;'' delle tabelle e. delle pagme ~ determinata attraverso it registro TC. In Figura8.23
I
:;:;~E~:/:. vtene.sc~emat~zato II modo: IS, TLA, TIB, TIC, TID e PS SODa i nomi associati a
.li!~\i"':·· campi di TCj 1l lora contenuto determina Ie misure dei campi dell'indirizzo logico.
. 'M):.'1,,;l'.

Ai$):(~;-;':'.' 1" I N I m ., no ,I m ,1_,~~_ _I


I
:,:;\~:z;(.~:!·'l:, "
:&~;';;f:~,:,::;
;·~·~~ift+f:;,
J~PB·L· .
'.
Po ~, " . tI,
r;I I ' I . [ . [ ,I
0fr.I:IT I
1------ I
:;~~t~:~~'~'Figura 8 23 Cam . dill· d·· I . .. 0

:~~l~~~~~r' dell'indiri~zo'logiCOP~ d:t~n I.nz~o ;sco. ~a'dim~snsiTonedei campi I, A, Bl C, De OFFSET


i·'t!j')~b·>' d· . rmma a con enuto I lA, Tm, TIC, TID e PS del registro
;~c"':;~~~:i;i':"" I <:<>ntro.L1o della tradUzlOne TC. II campo FC viene abilitato attraverso un bit di TC (n
.~1~'~~,,·.-':.mdlcato In figura)j se l'uso di FC non e abilitato il . r 11 d II t b 11 . ..
~~i:'f~·>::.':' campo A dell'indirizza 10gico; in caso contrario 'la p::o lve 0 e a a e a e lDdi~IZ~a~o dal
on
I
M~:~~?1~r:;:. :·.~al codice funzione.FC. ' p a tabella della struttura e mdiClzzata
,~~~£r!~:,',:,:'~· ." \
;'~~w*~);)':'';'"
.,' ".,,:Ik"~r,"· .
I
,),iC~,l'Jl~m, .. ~'.
" 't::...'-"',':.. ,
i ;;·~~i' :'f:' .
~,~.'" '1;."'.,
','.~::'Ii,\;~,
-",' i .
'\'~''''-1''''. I Campo I Bit oi inizio
.·.<,,!/i,::.......f i Limitazioni
;-19·~.~'l:!"·

~y.~~T~·~·
A
B
. 31-=IS'
31·!S·TIA
I aa 1 a 15 bit (minimo 2 se .~=O) t
da 0 a 15 bit
l~~~~:~~r C 31·IS·TIA-TIB
i~l¥t~)/:::;·· da 0 a 15 bit (ignorato se TIB ~ 0)
;:';;;:;~N>,:':, '
~~~,f;;:::':(."';,:
D 3I·!S·TIA·TIB·TIC ,
. .
da 0 a 15 bit (ignorato se TIB 0 TIC Sono 0)
I
~:V~ki,Tabella 8.3 VIDcoh per Ie dimensioni dei campi dell'indirizzo
I
~ilW.;,f.· .
I
:~~~:('.' d. t
··~;;t··~
IS .serve
t a stabilire
32 IS
la dimensione dello spazio deg"U dirlZ'.,' virt' uali Ch e vlene
. In'

~~,;~« ..: e~rmma 0 come ~ - . Per esempio, se IS=O 10 spazio e massimo (2 32 byte) s
,~,< ::>.:,: IS-15 (valore massuno assumibile) 10 spazio de Ii indirizz··
di·"~'~:)A·
::i~k·,:;,,··:
'(;~l~~t.'.':'
g
... 17' e
1 VlrtUali 51 nduce a 2 byte.

49Diversamente da. quanto detto . d I .


I
b~f.:~:/2' oppure per gli accessi in ,tato d' t' t ase. e t
'·;}.1".' " .
~~;lt>··
. ~&;.~:.
'.. . . , ,..-.._.
en e
I U
traduzlOne a esclU3ivo usa per gli ""c•••· II'e
t edr.o
dI
r. uZ1~ne per gh acCessl in stato d.i utente
In 8 a. 0 I 8upeIVISOre SRP f,
. -
-- ......,1 a area e supeIVI80re.
.
ornlsce Ia base dell'a.lbero di'
I
"\1
'. ;"'"c'>
, ~.,.."
)t',,"<
.. ... .
"~: ~:.-'
• ~" <1 ':,f':'~"
.
h:j ,~_."
\I
,,",
374 Capitolo 8 .,',':r ,.';"-i<i"
··.,F•. ''; (I' .
':~:ij
'I
..1<'--
~<:,
..'.'~'-
::~,. .1':,"":
'o,{,~ ~",.,,''-'
II campo PS determina la dimensione della pagina (da 512 a 32kbyte), Esistono dei - t<Ji':l ::~h.'
'~i,lh ",!,<_~:

I vincoli per TIA, TID, TIC e TID, come indjcato in Tabella. 8.3.
In aggiunta a quanta sapra e a quanta illustrato nella didascalia di Figura 8.23,
il registro TC serve anche aUe funzioni seguenti.
·
. ,...g
ii'~

· ' '!:'.
'-1"'
.~~'-':'
:IIr.,1I .... ~ ..
"~ ,-."','
"I'~';',
).,:,:~.;
';,l' . ,?.L~:'
, \ ';.e\'
';:;1·~
::i:,'J
;".\.:
I 1. Abilita.re/disabilitare la traduzione dell'indirizzo. Se la traduzione e disabilitata, -. ;;.~1t ~"j":
'-~' ..'..• ">.
gli indirizzi logici sono usati come indirizzi fisici. ""~'"
. ,.
"~"ll,
.''';:
r,.;.~,_
...
. p~~ ::;,.~:::.
-'~i.;~ ':,,!.:~
I l 2, Abilitare(disabilitare I'uso del registro SRP, Se il registro SRP e disabilitato, sia ,":. i:;:;ll
,..;:!!: "'.,~.
:'''!:''~;
gli accessi di utente che di supervisore usano 1a tabella di traduzione definita dal ", ":<j,l '.',-'.:
-~~',,~ ·'-::i
CRP, In cas<) contrano, gli accessi d'utente usano it CRP mentre gli accessi del - ... '~;-~:' ' '1 ","
"
(',f<~t: '-'f,!;:
supervisore utilizzano PSRP. i,.' ifA!. i'1';~t

I
" .. . .'."' 'j~

~'I"
""$,a I'''~'
,:,.~.'\ ,..,.~
.,"'~"'''
,"'~\"
, I ·or.,.,;
',"," ' .
'", ,'.""'.
't..1!! ~ ·'I,"·"-
· 'i . ~. '('
Registri di traduzione trasparente I due registri di 32 bit TTO e TTl servono a <;, . ~)t

I individuare due blocchi nello spazio degli indirizzi logici che vengono tradotti in modo /~tf;~ :~*;':
trasparente, nel senso che gli indirizzi 10gici ricaden~i in questi blocchi vengono presi '''~i,':~~ :~tff
direttam~nte .co~e indirizzi ~ici (senza cantrolla di ~rotezione). A tale .s~Op?,. u~ :,~ij~ :~~:
campo dI8 bIt di TTO, ,TTl Vlene cOnITontato con Ie hnee A SI - A" degh mdinzzl; i:;$H>:8
III caso di uguaglianza SI ha la traduzlOne trasparente. . ~'i~ "~~:i,
\ Ognuno dei due registri TTX puo essere ,indipendentemente disabilitato. Una :::;'.~~ ~~f~
volta disabilitato, il registro viene ignorato. E possibile stabilire se la traduzione ,.:.:;~~:§ ;!.i.
trasparente si applica solo in lettura, solo in scrittura 0 in ambedue i casi. ~"~I.:;%.~i$

I I . Sor~e spont~ea la .domand.a delPutilita di questi registri. Essi con.sentono di :\'t ,'!~;~
eV1t~e il .mec~a.wsmo d1 t~aduzlOn~ .. Du~que potrebbero esse~e conveDlent~mente '~:'mt ,,:~;
usatl per Identificare aree eli memOrIa 11 CU1 contenuto non camb1a (per esemplO, aree,'flli: ,)~:~
corrispondenti at nueleo del sistema operativo), ovvero per mappare in posizioni fisse ;~\~'" :~~R;:
\
<Ii memoria i dispositivi di I/O. '.3, ,:~
. .,;."1' "~."''
'r fi<' "~'''J'
...'. ~»;' :~I:!-
'~~ '.',..,.
~, ' ""':-;
;~ ~ ..~;;,
""'"

~
, \' '

I registri root pointer Ci sana due registri di macchina che fungono da puntatori ':')1~ ;~~<
alia rwce deU'albero di traduzione: CRP e SRP. \.'(~': +~-
n registr.o. SRP viene ~pi~gato ~olo per gli a~~essi del supe~visore e pub .esser~ 0 , ,:.:X?\~' ,);(~{
non es~ere utilizzato: L'abilitazlon.e?~ ~m:' e stabilita attra~e.rso un c~po .(dl un ~lt, \;~ ~3;~
:I denommato SRE) eli TC. La posslbllita di avere un albero di traduzlone d1 escluslvo '-:S~ ,~#;
dominio del supervisore e mirata a garantire l'integrita del sistema operativo. Se SRP ,·,.,:~~~,,~~n
e abilitato, CRP punta alia tabella <Ii traduzione del solo spazio d'utente e SRP a ::;~~ ,}£~
e
quella delle spazlO del snpervlsore, Se SRP non abilltato, CRP punta alIa ;abella. ,j~ ,li!!'!\l
I ~adice da. cw 51 diparton? due sottoal~en cornspondenh aIlo Spa,zlO del task d utente ;~ii ':;,,1
In eseCUZlone e alIo SpazlO delsup~I'Vlsore. '~~~~"i!!
...... '_. :~~;:
,,'.
,

Quando un nuovo task viene messo in esecuzione , il sistema operativo scrive in . ~\~~~ ;~;H
CRP il puntatore alIa tabe(la <Ii traduzione del nuovo task, Di norma, it passaggio a ',"X~i 1;;
una nuov~ tab~a di trad~one implica che il co~tenuto del TLB D?O. ~ pili.valido. A''711~}~;g:~
tal fine, l'lstruzlOoe che canca CRP prevede opzlOnalmente la posslbihta eli svuotare , :'-'4J.i j' ,.~;t
TLB completamente, , ""1<1l~
, ;',;v "l!
'!!t,
" .~" , .. :
.,.."
I · "I""
!;Q'
"')' ,I
·
' ' '.

..
.';J
,
> '.
"....
<.,
..
"
,
" ..
La memoria virtuale 375
i",, ,
"
--.
,: . .-
-:'-­
:.:'
':''''''
'· - 8,7,5 La protezione
::~.",
'.- .';.
~'~,'_
' ."; ,
,:'",
;: ....;..'
'-'
'-.~ .
Fino a questo punto (Figura8.l7 e successive) non si e tenuto conto dei 3 bit Fe}
-" assumendo che it primo livello della PMT corrispondesse al campo A dell1indirizzo.
:... In realta, tra RP e 1a tabella d.i hveUa A pub essere opzionalmente presente Wla
::- ;"',
.,. •
::', '
tabella di 8 posizioni, indicizzata attraverso Fe. Come e gia stato accennato nel
_,: .,
.....' Paragrafo 8.7.2 1 i codici di funzione sono usati per indicare all'esterno i1 contesto di
.:~: . ", '
~;.:'''
macchina entro cui.viene eseguita la corrente istruzionej in particolare essi identificano
.: "" gli accessi alia spazio del programma utente} aIlo spazio dei dati
,
utente , allo spazio
;:::<' ;"

".',' 'I:
i<-'· .
'-:.-'.
:':'" .,
del programma supervisore e aHo spazio dei dati supervisore. E evidente che i codici
funzione, separando i differenti spazi, devono necessariamente essere considerati nel
t;, ~,,' , contesto della protezione. In Figura8.24 viene riportato un esempio di albero che oe
'... {, '
''.. "., fa uso.
~.:.."' ..
'''
'~ ..- ."' ..
.,~,
.'''.,<'
-~:;:.<:
'~:""
t-­ RA1IO DELLe SPAZIO DATI O'U7ENTE
::}..::"
f~\"~~' ,
:r'i/ RP
j~'. TABELLA 01
RAMO DEWJ SPAZIO PROGRAldW. D'UTENTE
,:?;';' lJ'lEU,.O Fe

~l)::'
.f~f:~.'
$:,!~: RAMO CELLO SPAZIO DATI OJ SUPERVISORE

~~#fJ;:" ','
;~~: .
~:;:r. ".-
::;~::.',· 1. (1foN DEmmo. R1S£RVA'fO)
RAMO DELLO SPAZlO PROGRAMMA Dl SUPERVISORE

~e}:',' 2. SPUIO DATt O'UTENTt


'-''.'"
';-'; :,:, '
3. SPAZIO PR,OGR.uou. D'on:NTI;
• !DEFINrrO OA UTEN'l'E.RISERVATO) I I
-.,C:·' I': ~. HON DEroITT'O. RlSBRVATO) .
.,;''!:.i''''.'
..•... S. SPAZIO OA.Tt 01 SlfP£RVJSORB I
,~ ,.:.- 7. SPUtO PROGR.UOtA III suP£RVlOOR£
,'

<;'<,
.",
' S. SI'/..ItO [)t CPU (HOH TRAOOTTO) TABELJ-E D1 UVELLO A

Figura 8.24 Esempio di albero eli traduzione con tabella di livello Fe. Gli elementi di
-{,~. questa tabella. vengono trovati attraverso il contenuto del campo FC. La presenza della
{';:::: tabella dipende dal valore di un bit TC (il bit FCL (FUnction Code Lookup)). Essendo
~.9.,:~ '. Fe un'estensione dell'indirizzo logica, si rendono disponibili 8 spazi di 4 Gbyte. La spazio
;t;:;· . d1indirizzo 4 e riservato per un usa delPutente, 1 e 5 sana riservati dalla Motorola.
n':f:;'
~t;>;- .
~r~.·
ir~;' ,..)
.':i::::'
.... ,
QueUo di Figura8.24 e lo schema pill g~nerale di protezione. Esiste un1ulteriore
H:.t,' ':'
possibilita consistente nel non usare i codici FC e nel costruire (a partire dallivello
;:'..... A) una tabella che divide i 4 Gbyte in quattro aree, secondo 10 schema <Ii Figura8,25.
~:.'· I bit S e WP vengono usati per definire'le caratteristiche di protezione di cia.scuna
t:~t?·,~;, area.
,l!.!;;.
b",,"' ,
::>~ '. "
",r.'"
"'''''','
J'~"
"J•• ,
.~,.::.
316 Capitolo 8

RAMO SUPERVISORE
-
DJ SOLA LETTURA

RP
I e- RAMO sup~~rr' 'ORE
Of LEITURA- S( RITTURA.
."'::;1
3=1. 'KP-I "&1
3-1, wp-o
. -_"::~!
. RAllO 3UPERVl: :ORE\UTENTE .~.~
OI SOLA LElTU RA
s_o liPEl :·:;;
5 .. 0 wp-o :::iY~
TABELLA DI
RAJ,{O sup~.~~: ORE\UT£NTE
_.~~
UVEll..O A- D[ LE'M'URA SC 'RMiURA :':~;,t
'-"'i(i
....i~i~
,.~,:~
p' 8 25 E '. . . TAB~~ D1 UVELLO B .. .~}~
~gura '. semplO di albero. di tr~uzlOne c?e usa 1 btt S e WP per dlvldere 10 spazio .. ::_~
dl 4 Gbyte III quattro aree con differentl regole dl a.ccesso -'.. :>;"'1':
. ",''-~''
',;/i~~
. .. ..~~~i
8.7,6 ConslderazlOlll sulla memoria virtuale del micro 68030·"r.\\
""'~:!
,,~'W:.
~:-{~Il
Quella d 1 " 68030 e " ,. '. .<'·~i~
e ffilcroprocessore 1.1n tlPlCO esemplo dl memona v1rtuale pagmata. ,,:':\~llJ

• La MMU gestisce una I.bell. delle pagine strutturat. ger.rchicamente, secondo' :~#!jj
un albero the puo presentare ~no a 5 lIvelh dl profondlta, can tabelle di differenti. '~~~"
dimensioni. ai differenti
, livellI'. . E possl'b'lle de fin'lIe d ue bl ace h'I d'I In InZZI per I: qua1·,~
, d'" I ,~.;~~t'
la tradUZlOne non vlene effettuata. ,i~:,:;\~,
. , '. ..);~:t
Uelevato numero di livelli dell'albero di traduzione conferisee estrema flessibilita' .:~t
al rnecca~smo di g~ti?ne deIla mem~ria,. anche se questa flessibilita viene pagata a1 ::·]Zi1
prezzo di una n~n mdiffer!2!nte eon:phe~lOne e al prezzo di un elevate) dispendio ~i_ 'if~
potenza elabor.tlv" a causa della nduzlone della banda dell. memoria conseguent~ .' 'xf:
o~:'l~~rr1Zzamento ~n.~lf~t:0. ~ d~e cache vlrtuah (seppure dl ~lmJtata dimensione) r>t~.
1:>" ,. ..'""'. ~

. ~o sehe~a di pr?teziane si basa eS,senzialmente su due livelli, illivello di ut~nttr~~lj


e 11 hvella dl superVlsore. Attraverso I codici FC !'organl'zzazl'one h' d II ,,~,~
, gerare lea e a·:__ rt;
PMT e l'nso della protezione in scrittura e possibiJe rendere!o sch d' t' ..1.,--..:
"alquanto v a r l e g a t o . · ' em. I pro eZlOne, "~"
, ,L:~r.!
. . ;).;JI
Va!e la pena dl ncordare che nel modeno successivo, it micro 68040, anche se i '~~
criteri. di ~estione sono restati sostanzialmente gli stessi , l'albero di traduzione epiu }%~
~emphce, m quanta puo presentar~ al massirno 3 livelli. Inoltre , nel 68040, Ie cache ')}
mterne sono a valle del meecanismb di tradu'o d r ' d'" . d' . '~'1
. I d . di' 'ali .' Zl ne eg 1 10 lrtZZI e, qUID 1, vengono ~",,;~
raggtun e a ln nzzi re ' . ·',1"
,,:'i.'
..""
. ....:l
",J
'" ',
,rt· ".
.-';Fi ;,'"

.-"'
~ ,If'l'r' '....
.~~ihf
-.I.l:~'-'
i""li'lill~;;~
~i:S:fM:: ', La memoria. virtu ale 377
I
""'~J;::\'

itt"';;",,· .".
'~';"f:':
'f\l{x; (' .....
''''l;f'U, ,.,
"<'j\".~",.,
/;"\v:,~::·':,,~: 8 8 Esempio di memoria virtuale segmentata: 1
~,h"-.;1: ',1' ,.
"':"" .....'
"'''":.i;"j-'
"~··~~t "
"~'N •
.
,
la memoria virtuale del 286
"'/1;"-"., , .

~
I:.~"·'" "
'i;x,.",....
l. ~ ,~'" ""iI.",,,oJ".
1 J,~?~~;'?>::'Gome esempio di memoria virtua.le gestita con la sola segmentazione, viene ora des-
1", ''i~:')''' '. ;' critta I. memoria della CPU 80286 [Int88J. All. data di scriltura di queste p.gine il
!~'" .'~~:~/i:"'::_':'." 286 e orrnai una CPU obsoleta, imperando it Pentium-Pro e i suoi derivati (il Pentium
~~- q'-;,:+.:·('t.".JII). Si ritiene tuttavia particolarmente utile illustrare la memoria virtuale del micro
;.ji 1',;H!~'~:'''':; 80286, non solo perche costituisce un esempio di sola segmeotazione J rna anche perche
~~'·l;~P~~iii<:·<.';"'essa ha determinato ~ condizionato lo sviluppo dei modelli successivi. A partire dal
t
~~~ ~~~.f/· 386, i .mo~elli della fami.gli~ 8086 pre~nt~o l~.se~eotazione e,. a valle di qu~ta,
:
t~;f ~fJ1.:~d~:·::;:, la paglOazlOnej s~ non Sl ~a peso aile I~eV1tabili eliffCTe~ ~relatlve per esemplO al
i~fj, :~~J¥f<-.:: differente grade dl paraUehsmo), la gestlOoe della memona virtuale segmentata resta
~l :~~f~:!:·.quella del 286.
I
~~. ·~~kr·:·,:>. Come gia detto in precedenza, i meeeanismi di proteziooe sana inestrieabilme,nte
~~ ',~;~~~k:;:~,',:)egatialIa gestione della memoria virtuale. In particolare, i eontenuti eli aleUDe tabelle
~~ M£~';'~'::: '.e di alcuni campi all'interno di queste mescolano informazioni relative alia gestione 1
: 1J:h."-i.~'·:· " .. I • • . ,
'/'''' ,'f;:~.!!~t;i'.:',::;-della memOrIa vlrtuale con queUe propne della protez.lone. In questa sezlOne Vlene
~~,~~~(;~;~~:"::',~s,ol~ discuss~ la gestione del~a memoria ~:tuale s,egme~t~ta del 2~6, .rimandando al
i'. ~(¢/'.' capltolo dedlcato alIa protezl0ne Ia descnzlone del relatlVl mecca.rusmJ,
\·' ,~~~~(;"
!$f~I{M,~,?,~:,t
. .. . '. ..
D 286 ha due modahta dl funzlOnamento: 11 modo reale e il modo tnrtuale protetto
.
~
!.t:>"?i;~ (Si veda anche il capitolo espressamente dedicato alParchitettura x86). Gli indirizzi ,
l~ \~i,j.,i;\:-;~.·logici so~o dati attraverso due componenti di 16 bi~ e veD:gano rappresentati con
~& .~t~'!i/!(.:l~...:.- 1a notazlOf1.e SR: OFFSET, dove SR rappresenta un regIstro di segmento e OFFSET 10
J,'ii "'ii~P'~; scostamento entra il segmento.
l
jj: . ~Jl~#~;
I~~j' /i .:'. -, . . . )
~·li
'
'\'... 8.8.1 Indlrlzzamento III modo reale
.I:i ~ ,,f~--..~.
, ''', /iiw,.,;''t::.: ..
t4 ' $t~\.:)n modo reale il contenuto del registro eli segroento (moltiplicato per 16) viene inter-
t j' ~fr"I~'~'~" pretato come base del segmento in memoria. L'indirizzo fisko e ottenuto sommandola
i1:., "t,)~}~: ~~e con 10 s<:ost~ento.
~~:
La teenica eli inrurizzarnento e dunque quella eli Figura8.26,
)'~::--~')" esattamente ldentIea a quella dell'8086.
I
: ~'!J!;t.:,: ..
. i.~rl'5.t.·
~

'*1'i '~:.I:t: •. ~
~ "Ik~ .
I
j;: ~~t:·,,··.
Jlt. '"k~:-.. . , . . , . , . . .
~~i~ Come Illustrato pm avantI, modo vlrtuale protetto il 286 gestlsce uno SpazlO dl
;;
:
','
d'"
. ',' lIt.;· .
Ji4 ,';t,....~ .. ,m InZZl amplo
. 1 Gb
lD
b'! . 16 Mb 5 0 ' J
yte, mappa Ie 1D
, £is'
yte dl memona lea,
)
"" In ques t a rno d""
!,;
'<.. . U
,its; ~'~r",:.',,· ddltd.> operatIva,
"1 d I . d' '
1 con~enu~o e. regIStro 1 segmento non :nene PlU
..
I:,:' ~,~i}~(t'\'~ lllterpretato com~ base dl un segmento m memo~a, bensl"come 3elet!0re ~I. 3eg"!,,en~
~
~t '~~~,.: to. n s~~~tt~re dl segmento pu~ta entra u~a tabella, la t~bella d~l descntton del
~: ~ !.~1,t'~~f.~}egmentl ; 1elemento puntato In tabella Vlene detto de3cnttore dl segmento (DS).
}\.' ;~~%~n:;.~
1~1 ~2r·•..(I;·' " ' " ; ; ; - - - - - - - - - - - , . - , -
~, ~~, .11'""" ~.~La. dimensione della. memoria. fisica e limitata a 16 Mbyte, L'integrata e datato di 24 !inee di
" »1 k,o,lndJrlzzo.
';~
",
J,r
llI
!t:~, "
""
.1:<'
• •
I
378 Capitolo 8

] o
0000
" SCOSTAWE~TO (OFFSEt) ~';'t!
.'::::':,Ii:'
<'!:h
".", .j~'t
o ,.. ':It-

1 " REGISTRO 01 SEGilENTO 0000


-, 1(;'I~'
",;~l'li,
,.(.::,,~~'
.i;a.
"'fi/,
:;':'~~
_,:).~Il
\. -, .'.;:11:;
\ SOMMATORE
, ,Pj;ijl1;
-~'l
i:,~'l·.r:

I ,...•. ~!:l,'

" o , ......
.' :;;:.. ",1"-,
, ,--.. /~",t,
.~j"'!$.,
INDIRIZZO flSleo or 20 BIT
~.
••~ .r.,
.. !i
-_._--~ .'.,') 'l~;

\ Figura 8.26 Generazione dell'indirizw fisico in mo.do reaJe da parte della CPU 80286.' ·.~~~:~ Ii__
contenuto del registro eli segmento viene interpretato come base, ovvero come indirizzo fisico, .Xj"ii~;
del segmento in memoria.. "··iJ~~i"
,
, ,~."~"
..
,jl',,",

:I
...., i~1

n descrittore di segmento fornisce l'indirizzo di base del segmento. L'iIidirizzo fiSico"~~1'


viene ottenuto sommando 10 scosta.mento aHa base cosl determinata. In conclusione;:"~;;.l~i""
il meccanis~o di traduzione dell'indirizzo 'del 286 e queHo canonico dei sistemi seg~:'~,~~
meota:ti schematizzato in ~igura~.14, rna:
can .la paz:;icolaritA d~ dar,e il selettore d!:,}::SJ.
I segmento attraverso un regIStro eli CPU (11 fegtStro d.i segmento Implicato). "/~~1
Le parti the seguono illustrano nel dettaglio come 10 schema di Figura8.14 si ,~t.~'
materializza nell'architettura del 286. ,,".~~
.,~",
~. ':-t:s.!f~'
\ .. " ,~,,~,
",~.;~

I descri~tori di ~eg~ento Un descrittore di segm~nto occupa.8 ~yte, presenta:'~;:~~~:


tre campi, denommatl BASE, LIMITE e ARB, e ha II formato dl FIgura8.27. n .~'i~

I significato dei campi e queUo sotto eleneato.

• n campo BASE e ampie 24 bit


.~!!: d~~.

(2 24 = 16 M) e contiene l'itldirizzo di base del


.t·'
,·'\\"1 11.'....'

--;~('@. ;::1~!
.:-~;>;~
segmento. ',"7""
'~"'\
,~. ..,
I
-- "

>: ~~1
• n campo LIMITE e ampio = 64 K) e contiene la dimensione del~t'i$'
16 bit (2 16

segmento. La componen~e scostamento.dell'indirizzo virtuale dev~ avere un va~ore ,}'-1J


contenuto entro queUo d.i LIMITE. Dunque, un segmento puo essere al masslmo ,::,.1.f;!

l •
eli 64kbyte e pub essere posizionato ovunque nella spazio di 16 Mbyte.
.
,.,.,::;~5.1~,

n byte ARB (Access Right Byte) contiene Ie informazioni che definiscone la natura)!!ll~
J--~-

del descrittore e i diritti di accesso a1 segmento stesso. ARB ha una struttura I....,~'·
.I alquanto complessa. Di ARB 5i parla in dettaglie piu avanti (Ofr. 9.2). Per il':'l;~
momento ci interessa ill.ustrare i clue soli bit eviden:z.iati in Figura8.2751 : . .:'!:;~~'
.. . - -I:~~'l\.J~,1t
P: Indica se il segmento e presente 0 no in memoria centrale. Ogni riferimento' "l~;
ad un segmento non presente in memcria centrale (P=O) determina fleece; ;,/.~ti·
\ , ,'~~i~"
•• 1;,.,. •
'. r'li(l"
51Tra i bit di ARB non evidenziati in Figura 8.27 ci !Klno anche quelli the definiscono il tipo di <t~~, ''
.I
'

segrnento. Preferiamo rinviare la lora illustrazione al capitolo dedicato alia. protezione, .avvertendo 'i~~\"
'L~'-'; _

che i bit in p08izione 7 e in posizione 0 vengono interpretati come PeA nei descrittori di segmenti <' ",,"0::"'~ifiJ
di codice e di segmenti dati, mentre in altri tipi di descrittori banno differente significato, '. i--~!l\ll"'"
"~'~i~'
,;'i,,\;
"~~"

\
La. memoria. virtu ale 379

zione 11 52 . Se it segmento non e presente-i campi BASE e LIMITE perdo-


no di significato e potrebbero essere usati cial sistema operativo per tenere
l'indirizzo del segmento Bulla memoria di massa

A: Indicatore di avvenuto riferimento. Ogni qual volta viene fatto riferimento


al segmento, il bit A viene automaticamente asserito. Attraverso successive
letture e azzeramenti dei bit A dei descrittori presenti in memoria, il sistema
operativQ puo costruire una statistica di usa dei segmenti e utilizzare tale
statistica come elemento di decisione nell'algoritmo di rimpiazzamento dei
segmenti.

63 "7 3'11 l~ 0

~ ARB I ! BASE , I UM,ITE I


~
Figura 8.21 Formato del descrittore di segmento 80286. I due byte ombreggiati (posizioni
rela.tive 6 e 7, bit 48-63) non vengono utilizzati dal 286 e sono stati previsti per compatibilita.
can i successivi modeUi di CPU nell'~chitettUIa 8086. Del byte ARB vengoDo messi in
evidenza. i soli bit 0 e 7. Si tenga presente che I'interpretazione come PeA e valida solo per
i segmenti di codice e dati, non per a.ltri i tipi di segmento (Cfr. 9.2) .

,I selettori di segment a II formata del selettore eli segmenta, e cioe il contenuto


e
dei registri di segmento, illustrato in Figura8.28. Si notano 3 campi.

~2 Con il termine di eccezione, nella terminologia. del costruttore, si iotende una. interruzione interna
rilevata. dalla logka della CPU, cOITispondente a una condizione a.nomala di funziona.mento. Un'ec~
cezione viene raccolta dal sistema. operativo che provvede a prendere gli opportuni provved.imenti
380 Capitolo 8

• INDlCE - Puntatore in tabella, 13 bit. lndividua uno rra gli 8192 deserittori ehe ·.:i~
possono essere contenuti nella tabella. <:ii~~
• TI - Identificatore di tabella (Table Identifier), 1 bit. --"
Stabilisce se it se1ettore :1;M1
.,~,

identifiea un deserittore in GDT (TI=O) oppure nella LDT corrente (TI=l). ·.,?l~.
"'",~
• RPL ~ Livello di privilegio (Requestor's/Requestetf". Privilege Lev.eD, 2 bit. For-.:'tl
msce 11 hvello di pnvI1eglO al fini della protezlone (51 veda 11 prOSSlffio capitolo). ,). .~
.-,:e.:.:.
, .J:~1'~!!

1. n bit T1 del selettore indiea 8e la tabella da·usare e GDT 0 LDT.


2. L'INDICE individua il descrittore entro 1a tabella54 .
3. II descrittore fornisce l'indirizzo di base del segmento selezionato. "
, , .-~,'.-,
, " .... ,~.{iJj;l

4. Uindirizzo fisico eottenuto come somma dell'indir.i.zzo di base con 10 scostamento.,~~~ • _.... ",.•'ri{F

E stato detto in precedenza che 10 spazio di indirizzamento e pari ad 1 Gbyte'::~:~


~ale d~ensione deri:~ d~l.e seguenti considerazio~. n ~~po INPIC.E del.s~le:t~re,~/,~!
dt 13 bIt e con esso 51 mdiVlduano fino a 8192 descntton, Clascuno del quah mdlvldua,. -.f.!,J~
~n segm~nto.~ 2~6. byte al ma.ssim~. ~un~ue, attrayerso LD~, ciascun pr?cesso ha,:.'i;t~
1 16 29
uno Spazl.O .dl mdinzzam~nto pro~~l0 di 2 . . 2 , = .2 by:e! ~o~tr~, tranut~ G~T, :_~~.~~~,
pub condlvldere' con altn processl 11 medeslII10 Sp~lO degh mdmzzl. Da qUI denva )l:u1
uno spazio di indirizzamento totale di 230 , pari a 1 Gbyte. '.:i~~~'
".~
'" -.'~
..
,,"~~'l

Cache dei descrittor.i di segmento Come gia osservato, il meccanismo di map~_~t~~,


patura degli indirizzi logici in indirizzi fisici tramite tabelle di memoria ha l'effetto di:Xt~~'1
ridurre la banda passante della memoria in modo proporzionale al numero di passaggi ':;}~\'~i~
indiretti attraverso le tabelle. ' :,~2
.. ':;ji'
. -'..,;.it:,.·, "
,',;"\.;:",
"., ,~

.53Si parla di Rt.qut.stor's quando i segmenti in oggetto Bono quelli di codice che, essendo s<?lo ;":~i ..
eseguibili, pOSSODO fare esplicita richiesta di privilegio, Si parla di Reque"tt.d per gli altri segmer:'ti, :';,0/1:"
sui qua-Ii si puo agire iIi. lettura e/o scrittura.. ~~'.';;iP.r
~4.Si noti che INDICE e i1 numero d'ordine del descrittore nella tabella pertinente. Ovviamente, . :~~;,;,
giustapponendo a destra di INDlCE tre bit a zero (come bit 2-0) si b30 130 posizione in tabella del '5f~i,
(primo byte del) descrittore. ", . ,'~~{:ffii;1
.;.g~
,- ·(i~"· e' -,
-:Ii'
,".,....
~.,
,,,'+:'
~."" -

; ';~!.(:.-
'0 !\,): '".-
",,,.,,..
:l~~V;.:;·:--
t
I...,
I>
"~",,,
• -"'I";
,.~j~~'!S\
II,>.1<1" '.'
.- La memoria virtuale 381

•. .',
1
~
~
.....
c6:,~,,_
I
~
'
~ • '1~'1 " .--
, ....
ri"':"',·,'-,
CPU "",",ORIA
.".. t,,·,...'.. . ,
i"~"'~~';''"
, ...... .
t, .", \',.
INDIRIZZO 1.0G1CO
{ '(.;S~··~:··,

~
1 INDICE 111 ISCOSTAWEtnol
,," l{.~.. ,. ", SEGMENTO
;~IJ;4 ::'1, '. "
"':'",,~
It
1{l1'~'l!i;\:"
!-'."}'o' r..,.' '"'
t.' ',.-
l;.;oftlt1'.1'J"· .'
~"'" . ·t_~
J; , .. ". " .........
, ,." .... .....
_

."
'!'!,!R'f.I, ~. "
I :;:\,:,~1<; ,.•
~
,
...::J""e'
"~' ,n ... BASE SECW:ENTO
"•
l
"T 1"J';'~" u
'lo".~. }(.l••
, ·'4','
,',"'_ "j'•h,
I\"";·~·"
"•
~~'.tt,:~} ,', "o
,..,\;.,""
i"',:~ '" '
.•~.j .. v-
, ."
~•.r '.,)!ill'']'.- "
'mi" :;;
'~"~",:.
'I"" .~'~,.,1,:,.,..,' _
,I"~
.~'

, ~~,
~:.
.' ..
',~
,

.
',.,-:
,"

~ .'.
LOT
."
il
-
c
""
I
rI~~
It, ',' ~,,~; .
"lr~~~2.,·,,·.
'''''0' .. .>.
~ OESCIltn'¢RE
\
, - ,~' ~\'l'
P''d'if,'-"'-'-"
n· ",',_' .'
'i:~~"'""". "'. .
[.:.j -'J' ~I,",.,
" .',' ,- ','- .• -
,i~!Jf'
1,*,"'.j--""." -, '. .
aA31: LOT
.
l
~u:,~l~~ .':. -

~~\\ "lif~~~:,~~'-F"'ig~ra
8.29 Schema di principia del processo di tracluzione dell'indirizzo. Si ~ assunto
~. ':;~i:;'it·. TI~ll ovvero- che it riferimento sia nella LDT (corrente). n puntatore alIa LOT e data
~ ~.,r.; -attraverso un registro di CPU.
i!F1J,,,· .
l
b,' ' ,,·,. :.
.,.lJ:'J!/A'i .\- '-. .
~.r.l,·.-·
I,y~, :~,t~;';:'. - Per evitare questa penalizzazione, nella CPU 286, a ciascuno dei registri di seg-
,!~ I- ~~t.<: menta e associato un registro d.i cache (RODS), lisato per contenere il descrittore
3 ~.~~>; di segmento individuato da! (selettore contenuto nel) registro di segmento. Si veda
t
:f ~(,<;"-;·Figura8.30. Si tratta di registri invisibili a.l software che vengono aggiornati autorna-
r:WN ~~~}; ticamente e usati in modo trasparente dalla CPU. Ogni volta in cui un registro eli
i>:~: ,~!:t~, segmento viene caricato con un selettore, il corrispondente descrittore viene automati-
,~~~,~ir~l; ;~, camente caricato nel registro cache associato. Da questa momenta, i succesaivi accessi
!
:~II~i\·}n 'rnemor~a che ~san? il roedesimo selett.ore non ~chiedono il pasaaggi? ~~tr~vers? la
_~~~~;tabella del descrlttort. Tenuto conto che I segmentl rappresentano suddiV1SlOnt lOgtche
',),", '~~~s:,~-del programma, e abbastanza probabile che it selettore cambi molto raramente. \
~\ ,r··, '.- -;:
La cache .dei descrittoii di segmento corrisponde al TLB dei sistemi paginatij _per
I~ ',1 '~i;~·:.'- i. motivi descritti, questa cache si riduce a 4 sole posizioni, pari al numero dei registri
....• ~f':·di segmento.
~
,ro l~\li:'
1".·.--, .
• .
\
"li~I~;)·!L8.3 Tabelle dei descrittori di segmento
Il "
1:",''1'1
,~~,
''',,"'','1
f~'"
:" 'O:k~~:··., .. Come gia detto in precedenza sono previsti due tipi di tabelle di descrittori di Beg·
I
"ilf.(~ , x:::mento: GDT e LDT. I due tipi di tabelle hanno dimensione variabile, da un minima
JH "~,,, dl 8 byte (un desenttore) 55a 64kbyte (8192 descntton). Le tabelle vengono trattate,
" :.;{Ii~},~;~,. esse sresse, come segmenti .
l''lr
~
':~j~~~'"
I """ ..
'
,;11~1::
I
"Questa archltottu," tratta tutto Ie struttuee dati nello .pario virtuale come segmentl. Anche
.• ~;~i::~ iI TeB di un processo, denominato Task State Segment (TSS) nella terminologia Intel, viene fatto
;"1' .
, ~,""
:.!:t~(.
<if:
'''~
-;"- , 'J.ji
382 Capitolo 8 "
;;~i~1 _~\..

I
',.."
-'*..\:!I "~..,..

\I"
,.,,;oi.~
·"'·1 ~' r
··'11
\'~
t~fi!\'
.... &-~
'."
:;,'~~M!W
39 ..... ~'\ ,,;':
\, I
47 40 16 15 0 _'p;i;g I~~,!
"....."..
i',. ,.rI"1",1;
Sel.ltore del SeI;DeDlo eli Codice :",,~
, .....~'J
rjl ,., )1>'..
,~~
. Se1tltor. dd Seplenl.o DaU .~.,';r.( i
,~
1
, .' :\~~;, ,,~
Selelloro della Sellllonto S",ck •. ;,~l"": "
·V~
.;,)" ,~",-,

".lff
<,

SeloHo" del Segmento. Ertra ARB BASE UMITE •,;;i,~i$~ JR


( !.gi~~l
I .._, t ~l
-"'\'1.;",
· . ,,<t,
,[~ 'M~
:'/.•,~iii, ~
I
Accessibili da software ;.'~
',lt4
,'";~.. :..'"~ !~\
Non accessibili da software ·!"~'''i-' -
,I ~.i"'t:~ 'I
Figura 8.30 Registri di segmento e registri di cache dei descrittori di segmento del 286 · '~(,~l ,,.'
~

...
-
' ;'1l;iH!, "
""l1l',
-.:·>r~. '. A
· ',i.D,
, : ,'j!,-' "\I~~
Tabella globale dei descrittori, LaGDT e la tabella globale dei descrittori. Essa'::¥~ ".;"~

I va mtesa come 1a tabella che contlene 1 descntton consultabill cia ogm processo del ;;;':,J\;~ ,1":
sistema. GDT pub contenere ogni tipo di descrittore, eccetto i descrittori relativi.~1~: i!,
al servizio delle interruzioni. Si assume the il sistema operativo mantenga un'unica ,~~~"
i~r

GDT, nella Quale tiene i descrittori dei segmenti usati dal sistema operativo stesso, i )·i~.~~i l~

i descrittori dei segme.nti eli ~tato. d~i singoli ~rocessi ~si v~?a piu a~ti) e i descritto.r~, ~~:\~~}1 ~''
delle LDT oltre che 1 descntton dl segment! comum a Plu process1 56 .
GDT ~ individuata attraverso un apposito registro di CPU (GDTR) come sche~, ':'~~:k~';
' ~';'\~1

matizzato in Figura8,31. Sono disponibili Ie due istruzioni LCD! (Load GDT Register) "~
e SGDT (Store GDT Register) per caricarejmemorizzare il contenuto di GDTR57 . ,\~.,~;:!~
.;i"

,. '::r~1c' ~~
\ ,~':,;:Z~;;,:
.:' . ,'\i!t.~ :~
':'I!~ ITh
Tabella locale dei descrittori Le LDT contengono i descrittori dei segmenti che ':,ri~l1' l.
fanno parte dello spazio virtuale dei singoli processi. LDT ~ individuata attraverso ;:~{~;g!
I \
un apposito registro di CPU (LDTR). Sono dispooibili Ie due istruziooi LLDT e SLOT "'J;,i(
per caricare/memorizzare il contenuto di LDTR. LDT puo contenere solo descrittori '.'~:j'.;i4l·'"
di segmenti di codice, dati, di stack, di porte di chiamata (call gate) e di porte di. .';;7.~~~

I . processo (tas k ga t)
e.
Di norma un sistema operativo terra. una LDT per ciascun processo: in un dato,<,~~;~i
'l~i
.,',"",
'I":'T__.

istante di tempo, attraverso LDTR, verra puntata 1a LDT relativa al processo in /.1Jj:'ff-~-'
esecuzione. Tale tabella viene indicata come 1a LDT corrente. Un segrnento non pub ·,;t:$.t
l W
essere iDdirizzato da un processo se il segmento stesso non si trova descritto nella.\·~ ~~
LDT corrente 0 nella GDT. .1;'iJl~~ i
Essendo Ie LDT esse stesse dei segmenti, i relativi descrittori vengono tenuti ~'~0r~l"
in GDT. lnoltre, essendo 1a LDT corrente soggetta a cambiare a causa dell'attiva- .1.}:;; l
I zionejdisattivazione dei differenti processi, per l'accesso al1e LDT ~ state scelto 10 _;61~
stesso meccanismo usato per i segmenti. A tale SCOPO, LDTR non un descrit- /:~~~ e ~
tore, rna un selettore (16 bit) al quale e associato un registro di cache (Figura8.31),''''~~'
Ogni volta in cui i1 process.o in esecuzione cambia (si veda piu avanti), il selettore ,;.~t:
I, "·
,'~ C'<i:;ii',
"~"'~"'"'"
.,,=,
'j,"'-',(;;\
· ";:.' jJi:!
,
'
coincidere con un segmento (si veda. il capitola sulla protezione). "(~~,~,,
~6Si noti che la prima. posizione di GDT non e usata e viene faHa. corrispondere a1 segmento nullo, -(:PI; .. '"
nel s~o che e~a.. restit.ui~e ~ ~a.l~re nullo dt;! pun.tatore. .. . " - . .' :,~'q
: 1 57 S1 tratta dl Istru210DJ pnVllegJate. Un'lstru21Ooe pnvlleglata nOD PUQ essere esegUlta da! ~~F~
programmi di utente. I privilegi rientra.no tra i meccanismi di protezione di cui si parla in seguito. ' ,,/·i~~
. "~~
.;,'~-~j
··-./';..
'

I '. ·;7,·:'<'·
, ' To:,
.-",.
.ii'if;"n;;;:;.
".~
..,...... ,
La memoria. virtuale 383
.....1.\"
",,, ",
.,. ~.- .
"'ti~"
rmOl~". ,..
".
~"\j-:·
,.,'
':..,,:.,
i;Jd?,; .
!I1:'~;:
CPU Memoria
~'iJ;.;i' ,'.
~" .. ,
.....\.'l:' ?".. ,
.
~:'l ...:....,
1.,~, .. " .. '
~,~nl~' ! LDT
~, "
.,~:~. ~
."'1 '-
Rt'I"'·",\.-
fit::;
.-
LDTR ~lclto~. LOT
0
~
.-
I U,n,ll. urr
",
I lIou U1T
0

~A:'i' . 'I
l;;~~:,
~ht::. ~
4l'f?::> .
-\ l,\';'
, .'.
Il:I: iI'" ..'
~i ",' 1)•• ~r1"on lJ)T
' :.L '."
,'I'"
~J: "loo("." "
A"".,: .
19~" , '
~;';·::i·' .-
~;'jj.t..~, ..-"
"1"""." . GDTR I Un>ll. eDT
'"I 8 ... (;1)1'
:Wf.IJ]('", ' .• GDT
r:""";·· .. '
~1~~(·:~-·
... ~\.t.;".:;.
.~' ~'~::.:,. '.
~I~:~<:: Figura 8.31 Modalita eli a.ccesso a.lle tabelle dei descrittori del 286. Si noti che il registro
'-l~.~~::1.:- ..::.,'
GDTR ~n effettivo descrittore, con 24 bit pe.! la base e ~6 per ~a dimensione .d.ei. segmentoj
e
~iat.:;;L_:'!". LDTR e iDVece un selettore, at Quale e assOClato un regLStro di cache non VlSlbtle da prO~
':1Jfi~:h\_ "gramma. II descrittore di LDT e tenuto in GDT. Vistruzione LCDT carica un descrittorej
~.~' . I'istruzione LLDT, carica un selettore e il descrittore prelevato dalla posizione di GDT cui
~-;'2"f,:" ' punta il selettore stesso. Si nati che la scelta dei progettisti Intel di realizzare GDTR come
~ Uj,~Vl'i<," descrit~ore e LDTR co~e selettore non e c~uale. In.fatti la GDT e unic~ e fissa per cui
~. ~.Wi~iJ\::- e megho .avere un. descnttore .da1 c~ntenuto lmIDuta.blle,. mentre LDR varia a seconda de~
h-1: ..\~,~~>~::,: proc~so l~ esecuzlOn~1 per CUl.convlene 10 stesso meccamsroo del selettore e della cache del
.'1f~i.~'i_<r, ,descntton usato per! segment!.
,~.(:::
. y -.,
, ').. .....
.... '.

.~);:. !; .
,~;~~;':'v~ene aggiornato e con esso viene caricato iI registro di cache, con i1 contenuto del
',i~4. ',: corrispondente descrittore in GDT.

:ij).':5;;.,,;~: .
.Riassumendo, i differeoti criteri che presiedono alia gestione di GDT, LDT sooo
seguentl.
1

W: ·!il~~:>:··· .• La GDT e di norma unica. Essa rappresenta la sede 'in cui sono contenuti gli
~Ii~ i{~:~',~" altri des~,rittori. Una volta.caricato attra:erso .1'~struzi?ne LGDT, .il re~tro GDT~
if~1i'~': non e pm soggetto a modIfka. La predlsposlzlone dt GDT e i1 cancamento dl
rNi~.lt.::.: GDTR hanno luogo durante i1 funzionamento in modo reale, prima del passaggio
lli~t&~-f)'<'" . 58
a1 modo protetto .

~iC;.;
'I~i~.,,"~
" .. " ."
. Le LDT sooo tante quante sono i processi, D selettore LDTR e la relativa cache
,t,fI-,',
,
, .
'i~\':'''':''.'
'

!j ,'~:¥\':. 58Durante il funzionamento in modo protetto, la tabella non e direttamente visibile a1 program·
,fM.:";:'-"" .rnatore (~i dic~ anche.:n-e l~ tab~lla GDT non e un segmento d~lla m.emoria virtuale). Si noti che
'~.~~';t.-_:: ne5SUDa 13tru2lOne ut!hzza II reglstro GDTR per accedere alla memorIa, mentre, se un programma
I ;~IV;;::\_:. di utent,e ten~a di e.seguire un'istruzi~n.e privi.legiata che manipola GDTR, la logka della CPU ge-

I
. tl, :If-:"';,. nera un e<:cezlOne. E comunque posslblle agglra.re questa ostacolo e accedere alia tabella GDT (per
~ 'i'~e:::/' effettuarvi eventuali modifiche) utili22lUldo la tecoicll. dei 6eymenti editH.
,,'ll~~~_ .., L'istrU2ione LGDT ha questa forma.: LGDT memory. AHa posizione memorll deve essere stato
ll....'t~.,' ',preparato Hdescrittore.
~r.;'
;1'.';' ,.
,"
-"'~" .'
384 Capitola 8

vengono aggiornati attraverso l'istruzione LLDT, rna anche in modo automatico


come conseguenza del camhiamento del proceaso in esecuzione. ;i",f"
\"i!.'~!I
, Jfi!~~
Attraverso 1a LDT il sistema operativo ottiene l'isolamento e 1a protezione tra i .~~ ..-:.

processi; attraverso 1a GDT permette la condivisioile dello stesso segmento cia parte ",';,... 11 '.:fI'
>~~~
di piu processi. Questo concetto e illustrato in Figura8.32. .~~,\'I
· - ,j" "
.,. ' ,r
'. ""~"~
!~:·::~~
Proeeuo A
.. ::.,•.
;~ ..

I--- S".:do dl lndlrlu.• ",en~o ':'~:":'


Sp"210 Ind.1rl,.,..",e" to v rluele dl A .<':~~
Sip .. ,.10
" Indlrl,.,.unenlo
loe .. l.
"" A. dlllnilo d .. WTA
Sp"210 lndlrlt.l<emenlo
;)p,

...· ~n
vlrluele d, C
1
vlrluele "
dl jB ~~r,
,'' ':i':' C

Spe.l<lo dl indlrl:ne.menlo 'cl Srce.:zlo dl indlr'h,.e.m.nlo Spado dl lndlrl,.,...rnenlo


,..
·:,,,/:,.
":~~i:;
~.~
~.w'
local .. dl C. ddlZlJto da LDTC II ob.le, d",Unlto d. GOT loc.le dl
••
d.llnllo de WT>
. ;~,.
,
Proeeno C .: i ~,;/
'"'l""':
-'" Proe ••• o
• ..
Figura 8.32 Ruolo delle tabe1J.e eli descrittori nella. separazione degli spazi di indirizzamen- .... ;..~.
to. ·LDTA, LDTB e LDTC sono rispettivamente Ie tabelle dei descrittori locaIi dei processi . :'." .•,,'iJIl•. , , "',,,

A, i3 e C. m
·.;t:~
....,
,... '!'!t,1
.'ll
. ;;,~.
,,' 'iJi
, , \"Ai
'No'
",~N
8.8.4 Gestione della memoria fisica ; .",~:".
" '~:~ -
'\~':
Non e detto che in un dato istante tutti i segmenti di un certa programma siano nella .:):~
memoria fisica. Ogni volta in cui viene tentato un riferimento a un segmento non . ~:t
r~sidente .in memo:i~ fi~i~a .(bit P del corri~pondente descrittore a 0), il ~ecc~nismo ":i~
cil traduzlOne degli mdirlzz1 genera l'eccezlOne 11, e eonseguentemente mtervlene· il.. ::~?
sis.tema operativo che copia il segmento maneante da memoria di massa a memoria :)i
fislca. ~ . ~~~
II trasferimento di un segmento da memoria di massa a memoria fisica dunque ;':\:
· ,''' e
su domanda, ment~e per il trasferimento di un segmento da memoria fisica a memoria ',':~;/
di massa, quando in memoria fisica non c'e spazio per un nuovo segmento, si tiene
conto della frequenza di utilizzo del segmento stesso mentre in memoria fisica. ·La e
stima di tale fr.equenza e resa possibile attraverso Pindicatore A nel byte ARB, A viene
automaticamente posta a uno dalla CPU ogni qualvolta il descrittore stesso e caricato
nella parte nascosta di un registro selettore. n bit A pub quindi essere esaminato e
azzerato periodieamente cia! software d.i gestione, che puo cosl stimare la frequenza di
utilizzo del segmento stesso, Vesame eli A comporta qualche complicazione. Infatti,
non ci sono istruzioni che permettano di indirizzare entro Ie tabelle dei descrittori
.
attraverso GDTR 0 LDTR. E quindi necessaria che per esse vengano previsti dei
.

segmenti alia!, ovvero dei segmenti dati (pertio esaminahili e modificabili) sovrapposti
agli altri nella spazio fisico. Lo stesso problema si presenta per la modifica della tabella
delle interruziani (IDT) e dei segmenti di stata dei processi (TSS) di cui si parla ne!
proSsimo capitolo.
Naturalmente un· segmento che non viene modificato mentre residente in me-.' e
moria fisica non deve essere ricopiato nella memoria di massa durante le operazioni di
rimpiazzamento. La macchina non tiene pero automaticamente traccia deU'avvenuta·
385
~
La memoria virtuale

.. (
modifica. Essa jiiscrimina solo i segmenti modificabili da quelli non modificabili e per
questi ultimi impedisce i tentativi di scrittura. NOD e'e quindi bisogno di ricopiarli su

~
I' memoria di massa.
~;
.~-

'l1
~
I~,
.. ,., .
"til
r" ";<"
"~ ' '.
8.8.5 Alias
~t:'
,~

':d~
r~
Poco sopra e stato osservata cbe non essendoci istruzioni Che permettono di indirizzare t
~~~?
,r;1
direttamente la GDT, LDT, IDT e TSS (questi segmenti vengono gestiti direttamente
n, dalla.logica ~ella CPU, in modo trasparente al programmatore), ,si pone il problema
,J~
CW'
...:j!:'
~C,
~~,
'
di come permetterne l'accesso ai programmi, in particolare a1 sistema operativo.
I
... "
.
.,
:r,il

Ilili',
,~."
,i) ,1 ~ Ali_
I
m WAS or UN
Segmento
eodice
~:~~!'
,.J
1J' ' ,
S£:GMENTO COOIC£:
I
lt~'"
. ,. i;, r
iJ~~'',',
i~' i:
''''
N~
.:-II,..
:£11
~~~~ A?pl1ca.done EO
Sola ~
e,...cu:iolJe
I I RW
Letlura
Sl.,teD:la opera-tiTO:
au.Uio per la
l
t~! Sorillura m"sse. a punto

~}~~
?~,
i~~
~, Se,mento \.-- All~

I
'' , WAS 01 UN
:Mw~'
dILl!
SEGw:ENTO DA.TI"
/~'!'

\
Utente ARWL,
Lellur..
II ao Ul_le B
Serltlure. Solo

I
let-lura

Figura 8.33 Alias di un segmento dati 0 codice. La parte ~ta mostra un segmento che
viene visto di sola esecuzione dalPapplicazione e come segmento (da.ti) eli lettura/scrittura
da una routin,e del sistema. operativo. La parte bassa mostra. 10 stesso segmento dati visto
come segmento di lettura/scrittura da.11'applicazione A e come 8egmento di sola. lettura
dall'applicazione B.
f
&OSi noti che un segmento alias pub avere una dimensione differente dat segmento che esso
rappresenta.
.h
' .
'1,,'"
·'

.. 386 Ca.pitolo 8 ,."I ,

"(ii~;
~0!:

I Usando gli alias e dunque possibile moflificare GDT, LDT, IDT e TSS, come
"~"'1
"

I~~
"1~!
'I'"
:-'C..e

- \ illustrato in Figura8.34. .,,\'I"" "·~r;


\ ,:{~I ?~i
• GDT LOT IDT 'L":~ ~;.:.
.§~ 'tz
- Descrlttore
dl LOT D8;U O~tl
"
D•• ~::~~~p lY
\ <t~~,~ :l~
- ( Ali•• lOT
AUBs- LOT
,h~~ ;fr
- :V'.?l: ~l~
AU •• GOT ,:.~f~~~1. ~;
- \ ~~. :~\~i, ;~~'~
~\~~t-~R ',l
I ,:.'4'h~) !'
I. ~~
Figura 8.;l4 Alias di GDT, LDT e IDT. Per ciascuna. ta.bella e stato castruito un segmento
- I
dati alias. La modifica al contenuto del segmento alias equivale alia modilica delle tabelle.
~~
"~~
• ·~
'~
I.
i~')
I~~
\ ,;.~
,-

'~
• 8.9 Esempio di memoria virtuale segmentata e 'i,j

· l paginata: la memoria virtuale del Pentium '':,,


,

d
A partire dalia CPU 80386, I'Intel ha introdotto la paginazione a valle della segroen- ~t
"'
l tazione. Per motivi di concretezza e per dare al lettore un riferimento certo, la parte
che segue descrive la memoria. virtuale del Pentium, come. da (Int~3l. Per Ie differenze
tra i va.ri processori della famiglia 8086, si veda it Capitole dedica.to all'architettura ~
x86. :
La tecnica di segmentazione del 386, eccetto alcune piccol~ differenze dovute a1 W
( parallelismo a 32 bit) e la. stessa del 28660 . I modelli successivi gestiscono la memoria I
¥
virtuale come il 386. .
In precedenza (Cfr. 8.2) si e visto che 1a paginazione si applica a memorie virtuali ~
, l, lineari, cioe e
noq articolate in segmenti. La paginazione utilizzata in tutti processori
tradiziooali. Essa ba i1 vantaggio di non provocare frammentazione della memoria
fisica (a parte la trascurabUe frammentazione interna), rna ha 10 svantaggio di privare'
dei benefici che derivano cial pater disporre di piu segmenti can attributi diversi.

:l Con la paginazione tutta avviene come se ogni processo avesse una memoria virtuale
costituita cia un umco segJ?ento, parte privata e parte comune ad altri processi.
I processori Intel, dal 386 in poi uniscono, nel funzionarnento in modo protetto, i
vantaggi della memoria virtuale segmentata a quelli della memoria virtuale paginata.
L'idea su cui si basa questa memoria consiste nel non considerare come indirizzo
\ fisico finale quello ottenuto dall'indirizzo virtuale in accordo aile tecniche relative al
pracessore iAPX 286, doe sommando 1a base del segmento specificata nel descrittore

, \ &OImmutati sono pure i mecctmismi di commutazione tra processi, la gestione delle inteeruzioni
ecc.
-'

I
......
h', •.
'

'II,"." ..
'~i.". .'
,
\ .f, .~.
,,,-.~ '. La memoria virtuale 387
;~·'· .
:'~L .
..... ,
1,, "
!r" ',''''
'

"e-~.'
.;.:,
~f:{" con la componente scostamento, rna nel trattare tale indirizzo come un indirizzo logico,
;;'l;i:, ",' pertinente a una memoria virtuale lineare a cui applicare la tecruca della paginazione.
i¥:~'>';:' ~a s~ruttura. della memoria virtuale del 386 e :no?~lli succ~ssiv.i vi.e~e sch~matiz­
.J':' . .' zata 10 Flgura8.35. Esattamente come Del 286, l'mdlrIZZO lOglCO (mdmzzo Vlrtuale)
zgL;~'-;: e da~o attraverso. il selettore di segmento e I? scostamento entre il segme~to_ Si no.ti
Y':i;'. ·::, che 11 selettore dl segmento e aneora a 16 bIt, mentre 10 sc~tarnento puo essere Sla
~t~>,· ,: -: a'16 che a 32 bi~61.
Sono ~~ind~ possibili sia s~gmenti il cui corpo puo arriv~re ~
r.~~::<~-", piu ~ 64kbyte, s.la segmentl 11 CUI co~po puo arnvare a 4 Gbyte (2 ). Nel segulto Cl
32

~l\·:;~.,'· rifenremo escluslvamente a quest'ultlIDo caso.


;ik::i Essendo 14 (13 piu il bit TI) i bit del selettore con funzione di indice, si ha uno
'~~,~';.'.':" spazio ~i indirizzamento virtual~ ~tale pa:i a 2 , ovvero 64 T?rabyte. L'i~dirizzo
46

l:tV::.:· logico vlen~ mapp~to su uno sPal:lO lm~ar~ 4 ~byte, e ~unqu~ da.luogo al cosldde~t??l
'¢~,(::...: indiri~zo ~rt'Uale lmeare, su 32 bIt..L'lD~mzzo Imeare Vlene qumdl t:att~to dall'unlta.
~~:~. . ;, 'di p~gl~azlOne. ~uest~ prevede pagtne di 4 kbyte e una PMT su due livelll, pur sempre
~n~~;.:: costltulta da pagllle dl 4 kbyte.
~"f,';'","
~J';'l'l.~
~"~ll'~-1:~,,'
tlu,:r.,·,. INDIRIZZO LOGICO
')l,.)i1I)'"
MEMORlA
~,:""~ii~':;.r"
~.'!rl/!"f'· ~' ;
-",'lj~"'"
~ .:,~ .. , Selettore Scostamento (Offset)
~"ir~~;"'"
i'M','· '
j~P.g~,~,~,
32

'~,~
~'I'"
,,,";-'
:~~'·.1i::~":'
:"",,"

INDIRIZZO INDIRIZZO "~~'d;;i:"":;'>''; '.'''


.... . , ,.
' , 16 UNIT'" LlNEARE / UNIT"-
d, FISICO '~
~i~,j[&:' '
t-':~I~;"'.o '
/ "
SEGMENTAZ. /32 PAGlNAZIONE '/32" . "
"I"'-',
rp.,,,., .
'~l'"
"." ..
z2 ~'~\"""
:.'f'-+'1i"'"
.'.,~ir -, ,.

~f,'_~:::
:~i~{
"""" :,.'
Figura 8.35 Segmentazione e paginazione nella CPU 386 e successive. II meccanismo di
W?I~:;"~. _. pagina.zion~ tr~uce gli indirizzi ~irtuali lineari in i~d.i.rizzi fisici .. La ~emoria vir~uale lineare
Irl~"~:'''''''''' e la memoria fislca vengono conslderate come costltUlte da pagme eli 4kbyte. C10 comporta
¥,~t.i.:::> : 'un campo di 12 bit per 10 sC05tamento in pagina. L'indirizzo di pagina (virtuale e fisico) e
.' ,"~~$;'.:.
su 20 bit. 11 meccanismo di paginazione pub essere a.ttiva.to
'. 0 disattivato mettendo a loa
~~.~'~~~:::<: a il bit 31 del registro eRa (Control Register 0) di CPU.
;,!f,\
,~
·n,t."
.'. ". I
'.
..".", •.,' '"
",..Ir.,\,
,.t,I....
';;;"'''~:1!''''''
-, '",,-, ..
"~",,,.. '
~'~"1!i;'
.;~l~"~, :'; . Si noti cbe 1a memoria virtuale lineare e cosl grande che il limite al numero e aile
"
"iij\'~
I 'J;;I"'"
~~I":}
I.""','
e
dimensioni dei segmenti che il sistema puo gestire dato dalla capacita della memoria
I,~,',"
''l',ln',· , .
di massa. Si puo quindi pensare alIa memoria virtuale lineare come a una risersa
'~' ~ :fft.'i!,i:~'·

th,, iiI.:.
'\l)!, ','
;~~~F.f~;~;" 61 La
dimensione dello scostamento viene fissata attraverso il bit D del descrittore di segmento
":;~~~~,,;: - (efr. 8.9.1). La famosa compatibilita. tra. "applicazioni a 16 bit" e "applicazioni a 32 bit" di cui si
::~l7Vt;::'.:.' conti~ua ancora a parl~~ ~~Ue riviste ~i i~fonnatica ha qui uno dei 8uoi cardini. Per molto tempo 1a
,t.~~>;I. queatlo~e dena .co,?patlblhta ha. reso dlfficl.le I'avauzamento dei sis~emi ~oftware p~e queste ~a.cchine.
~~~"" . In partlcolare, II sistema operatlvo OS/2, mtrodotto da IBM negh ann! ottauta, mconteo dJincoltii. e
,u'·',~~f(>." &conto notevoli ritardi rispetto a Windows di Microsoft proprio pee la questione della compatibilita
'M' ,. verso il 286.
". :--.
i ~.,' '.
" ..'I",."....-,
lf~
, "~

'r~,,',
.' .
388 Capitola 8

praticamente infinita62 .
La memoria fisica pub raggiungere anch'essa 4 Gbyte, in quanto gli indi~izzi fisid
sono aneora a 32 bit. Nella pratica costruttiva, solo una piccola parte della spazio di
e
memoria fisica presente in un sistema e quindi solo una piccola parte di memoria
virtuale lineare puo essere sostenuta, in un dato istantc, dalla memoria fisica. .........
'I.'..

La MMU del 386 e modelli successivi e una delle pili complete e complesse ar- . ;,~-.,
,,' ..if
;,':,~~
chitetture esistenti, anche se per molto tempo i produttori di software nori ne hanno ':::~~f!.~
',_~.
sfruttato tutte Ie possibilitA, impiegando Ie CPU successive al 286, come un 8086 """,'
.' .••. :\.".
,_,~l<,-
molto veloce, sfruttando pesantemente Ia lora capacita. eli emulare dinamicamente , ,,.,,",,
.:;,::"'
,"..''
.,«-".
macehine virtuali 8086. ,-.

"'~'..,. ,
',f- "
'i"~
':;~~ I'
• - .. ," ,

8 . 9.1 La segmentazione del 386 e modelli successivi ;;~ ."


. 'f-
';:'."

Vengono ora mostrMe Ie differenze che merita ricordare rispetto aHa segmentazione'.&;~:'
d~l 286. Sl eVlta .dl dare tutti I de~tagli, cercan~o dl m~ttere ~ eVldenza. solo h~" ~~'T'
dIfIer~~z~ che c.ornspondono a maggIore. complesslta. 0 ~ dIvers.a mte.r~retazlOne del "".;;y..:
campI del descntton. Ancora una volta 51 parla solo degh aspettl relatlvl alIa gestione ·./fi··
della memoria virtuale, s~nza entr:ue nel :nerito dei pr?blemi di ~rot~zione. .'~:~~~i·
n formato
. if'
del genenco
l' ul . descnttore
. 4 b' 'ddl segmento
. ". F'Vlene 8dato
36'III Flgura,8.36.
. ch b· . .:.",<
Per . ' l'.~.\
quanto 51 r ensce a~ I tenon It e:'l ~nz~ati In I~ura . .' 51 os~~r~1 e un It, '? :,
deve essere necessariamente 0, mentre 11 slgmficato del restanll campi e 11 seguente. ,,;~},~,
. _ (. ,. ..' ::,
G - Granulanta.. S~ G-O . granulanta. fi~e), al!ora I umt~ eli mlsura della lu?"ghe~za ':~.'
del segmento e II byte, dunque la dlmenslOne masstrna del segmento e pan a "'iij ~
1 Mbyte. Se G=l (granularita grossa), alIora l'unita. di misura della lunghezza.~J~.....
del segmento ela climensione della pagina, cioe 4 kbyte, e il segmento puo arrivare ':;i~
20
cosl a 4 Gbyte (2 .x 2 ).
12
";';~j
D - Ampiezza degli op~raneli (~ol~ ?e~ i ~egme~ti di codice). Se D=~l aBora la. CP~, ~'~'?f;~'
lavora can operandI e con lOdlnzzl di 32 bIt. Se D=O, allora gh operan.dl e gh .:,'f.i·~
indiri'Zzi sono presi su 16 bit; in questo modo viene mantenuta la compatibilita·;.~:~;
con il 286. . , ," ::;}~~~:.
, , (,.~
AVL - n campo (1 bit) e a disposizione del sistema operativo. Potrebbe essere ~::;:."
impiegato, per esempio, per tener traccia dei riferimenti alIa pagina. .,,~;~.
' ....J:;r,'
';f[iI',.
Pagh;tazione Le pagine vengono mantenute mediante una PMT a due livelli. Nella' ,::{If!l
terminologia Intel, la tabella di primo livello viene detta Page Directory (eatalogo A~
delle pagine, nel seguito), mentre Ie tabelle di secondo liveHo vengono dette tabelle,·~:f£.f·
di pagina. I vantaggi della struttura a livelli sono stati ampiamente descritti in pre· ,):,~~
cedenza (Cfr. 8.2.4). D costruttore ha anche fatto la scelta piu efficace, dando alle .:~{'
tabelle la stessa dimensione delle pagin:e (4 kbyte). n meccanismo di gestione delle' :;::~~
e
pagine illustrato in Figura 8.37. ~,~:,..

(I2Un esempio numerico chiarira. meglio: se si suppone che venga prodotto un nuovo segmento da
32 kbyte ogni 5 minuti, occorrono altre 15 mesi di lavara ininterrotto prima di aver saturato to spazio
di 4 Gbyte.
'" ..
ill;! .,,",

,",.:".c'
-'~~~';';'"
~~t&·.,r.::,,:
;,

,. ' .., "'!I,f".


\
!i!iI
- '.
;,.._, ikt,l\ La memoria virtual!:! 389
~~,'\fS:
~,~", I" •.. ,

~'~i"il.};."_ - ,. 1-
"ll.I'V~{",""·" _. , ,
!tl'''''H "' ..'
~~~~];I>,~
..
~~;!~:)~.
."X-....
N>,

,F.-,f 8 or 32 or 20 ;f
.... ..
~_!·,t'l:'i~l'!,
,"~ ,." ,r,".,.'
.
'l'~

~~I'~'I~
->\""-'"
,-.
__

)t,O.!\ . • .
:.~\ ',..i•.'J1.
',., "
"r"~" 1-
','['."'>'1
:.
.
o ARB
I
I ! I
BASE
I I
I I
UMITE
I
' I ( ..
~~
~'''''';;\(,''\'., .
\~"<'\:,'
.•<.",,,,,:,,
. ',''J!
~~t .:.,

I-
'\',\:;";1"", '
~ .;;: ',';l", ,
~ '~;;r.;~':~4'
,~ -'.,<1
.',' ~ Figura 8.36 Formato del descrittore di segmento del 386 e successivi modelli. Si nati che
.,.,...
"·... ~·"If·
. . it descrittore occupa tutti i 64 bit. I campi BASE e LIMITE qui rappresentati come due
1':'~""~I';\'
;';~i!J'~' c·
"11,'
',·.a·: :',' campi di bit contigui , sana in realta. campi sparsi nel descrittore. I bit PeA del campo
.~ ,(,'.,.. .. ' ' ARB hanno identico significato ai corrispondenti nel 286.
:/f:'J:i:l'
t
I- ,·n-f."."
•.••

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

t
""u"'=,; ",
¥fj,!<"~
~.~'
, tr,
;:t)~
~'J:'
,~. t'"

:,f'1~l'
i"'"..~
,,' •
lnd1rt:l:so UDelU"e
-{)
31
Direclory
21
«

Tabla
11
"
O!lsel
o 1-
~;';t' ',;,1 "

' i~il.lii~{ c. \

.1i~~~~~'1,·
·~~,rr;:>.,;:" CR3
, PaKe Directory Pale t&ble
_ ... ~
l
i· .~~~2
\.
·:r§.;r!~lt.

~
1

,,'" .., F'Igur.


~~....
, I
a 8 37 La pagi'
I C><{?-;..

. . L" diriz' lin


nazlOne ne1 386 e SUCCesstVI. eare 32 b't •
~
d tt
I t: pro 0 0
-4'
,
~-
:
." ID 20
~ ~~>j: " ·d~Wu.n~t~ di s~gmenta.zione .. La PMT ~ a, dU~ liv.elli, ~ cui U, primo e detto PGg~ Directory.
SU

. ~f)~ri:)~~ L'~ndlftz~~ ~s~co ~ su 32 b~t. L~ tabella di p~lmo hvell?e semp~e pre:sen~~ ~ ~emo:l~ \
.~uf<"";~;::' fislca. L mdirizzo della pagtna fislca che la osplta e specifica.t9 d3J 20 bit plU slgnificatlVl
' :. ,,~;br~;,: .. del regi~tro CR3 (Control. Registe.r 3) di CPU (qu~to registro vie;De anche chiamato PDBR:
~ .,' lT~~J.'.(.·,:>; Page. DIrectory BG3e Reguter). .l
'\ ~?'i<
j.~;\1 ~~·:.r>!'"
j ~ ''''~(''''':;'::-' Le ta~elle delle pagi~e risiedono .perm~enteme?te ~ella memor~a di ~~sa
e -
' . 1(':1~l~;: .. ~I~cuna dl .esse e ~utl?~atl~amente canc~t~ In ~emor~a fisica quando Vlene utlhzzata
~. ":~ t~~;.:;"",dal meccamsmo ~1 p~gllla~lOne, com~ ehlanto eli segu.lto.. . .
,.." ~ ,lli',;::.>.:" La tabella dl pnmo hvello contlene 1024 "descntton di tabella", uno per ogru
.
~.
y' ,"
. ¥r~.'~ ~':, t.abella ~el!e ~a.gine. ~ mecc.arllsmo di p~ginazione,.nel tr~~e ~ ~~~o vm:uale
~"1l~ ~ \ . ~l.ne~re III mdl~zo fislco (FIgura 8.38), mterpreta I 10 bIt pm slgwficatlVl dell'mdi-
1-
", ;~lI ~~;.::' ri~zo della pagina virtuale come indice, nel catalogo delle pagine, del descrittore della
.: ~., c:~;::::,::.. t~beUa del~e ~agin~ coinvolta ~ella trad.~zio~e (? "tabella delle J?agine c~rrentell). n

.
"". tr:~..-:v bIt meno ~ngnificatlvo del descnttore 0 bit P lOdica se la tabella delle pagme corrente
,Wi~~~(. (P = 1) 0 non e (P = 0) in memoria fisica. Nel caso in cui la tabella delle pagine e
\-
ll j~~~~'\;',:, in ~emor~a fisica, i 20 bit pili significativi del deserittore specificano l'indirizzo della
~ ~~ ~:.,-,_ pagma fislca che la ospita. In caso contrario si ha un page fault che si manifesta
·:
~.
".:.': I.~~.:" come eccezione numero 14. In presenza di fault l'indirizze virtuale lineare che non
)~ )~l~rCf,.,:... estate tradotto viene me~or~zato nel registro CR2 (Control Register .2) interne ai
I-
~~:}i.,: processore. SuI page fault il SIstema operativo provvede a portare in memoria fisica
~; ~, . .~ Ji-f~,1:' la tabella. delle _p~gine corrente. .
. 1 . . ~~~:.~~ O.gni tabella delle p~ne contiene ~024 "~escri.ttor~ di pagina", uno per .o~i.pa­
"
_.

', .
."~1\~r ~ma vlrtuale a essa assoClata. n
meccarusmo di pagmazlOne, Del tradurre un mdrrlZzo f
'I ,W i':~;~~', 'virtuale lineare in indirizzo fisico, interpreta i 10 bit mene significativi delPindirizzo
!-: , ~/: .~ della a ina virtual l'indice relativament 11 bUd U .
, . !lIM:, 'd I'd P g t d II e co.me. I ' A ch' e a a ta .e ~ e e p~~e co~rente,
.' ,'~\ffif~, .,' e escnt ore e a pagtna vlrtua e. n e 10 questo caso II bit meno slgnIficatIvo del j.
'.
. 390 Capitolo 8

1 :~S~l
INDIRIZZO ;r ,.-,
VlRTUALE UNEARE · ,.::IZ'I
.r,
,.,,..~&b
;.,~~ ~I,
CRO o .. 0
3a " ",~ .)
_ _1 _ _::; .. <:.;~I
\ N\anero dJ pa.ina t\:llea
eba osplta I.. tabella direlto~to
Numero di
20} 12P ··k'.<efif
'~"'lsflf
i' ,~,.r
I :.fSj!
- .l 20,
Po.llino. virtuo.le
II.
10, 10,
"[,~i
" '\'c~"
, ~-

:-i'~~
.... ~~~

dir.tto~10 "''-11m':
Tabella x 4 X 4 "",.~
· '-, !.,'",.
32 '.',' ,!;,"
Sco.tamenlo del
de.crllto~e d.en. .:.-:.:: r
• le,b.U. d.U. p •• in. "I""'f,"
:'-).<,j'
· •.,. .l~

· . .' 'I'
'.,J"···t"I,
20, ~ '.1,

1 Sco.l.mflnlo del
l':~~"'i_

,';';';;;I~
Tab.Ua delle p •• 1ne
d ••crittore daU. ~.t:;·)~I]
pacme, !Isica ('".'1;, .
• '~'"
,")~~.
::.I.·f.
j NULnerO dl
pallmo. nsica
~""'"
"':~X:"'I'",
.~..,.

.>.;:', "
,?r\~~;
20J
· ',I'];~1iL~
", .. I,~,

\
. .
Pa.iDa liSlCe, INDIRlZZO FISICO t~ Scostanlenlo ne 11 .......gl'n.. • ".1. J..<J
·:,,;;Y~{i~
I delh. loce1llone "Iente
o _ _
,'t'··' 1I.!l:'
~

"'J~~<.'
,
. ,.',- .;;.i:1
· ';:',~:,l; ..
".:.r.: ';;':o,-~
~ ,]l

iJ
I .. , ""~'~I

,'r,,',',.
""lii'l
"','

\
WEWOJUA. J"lSICA

Figura 8.38 Traduzione da indirizzo virtuale lineare a indirizzo fisico. Ovviamente 1


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

• . ,.,..,,
A.' ~!
,','
<,

,-,~,

moltiplicazione per quattro corrisponde alio sp08tamento a sinistra di due posizioni. ,".-,:;:.,t;;"
'.,_J;;~~'
",,'S;
( "•",' .;""~~,
'i;.,'<j.!
• !.~'''?
I descrittore (P) indica se la pagina virtuale e 0 non e in memoria .jisica. n meccanismo '~~~L .
del page fault e identico a queUo sopra descritto, compreso l'uso 'del registro CR2 per ',::.rJ~i'
memorizzare l'indirizzo virtuale lineare che ha determinato il fault. " ';. \:'~":~~":¥b~,

! ~a pr?ce.dura di traduz~o.ne. da ind.iriz:z.o virtuale l~ear:e a indirizzo. fisico s~pra ~(1~


descntta nchiede due acCesSl m memOrIa e comporta qwndl un tempe dl traduzlOne.; ,t~:f:~
inaccettabilmente lunge. Per ovviare a questa inconveniente , e presente un TLB. n *;~~l.
486 ha un TLB di 32 posizioni;il Pentium ha un TLB separato per istruzioni e dati.~· d~It~t
I,. . .
'.
.. ~,~
'.• ,~.('f!<.1\i
., ';~t!'~:
".j:lf~i
'. ""I;).'t.Jt.~
" :.,"""'''ir~
· ",.,' ,~j) ;~~i\
8.9.2 Descrittori di pagina ·

I
,',;(\,',
,,' "N)"
, " },.:"
. " ' , ::~.~{,

n descrittore <Ii tabella <Ii pagina (contenuto nella tabella di alto livello) e i1 descrittore :,,::,:~~
<Ii pagina (contenuto nella tabella delle pagine) hanno II formato di Figura8,39, 'In ,:}~!r'
questa sede ci interessano i tre campi AVAIL, P, A e D. -;,..·,-(:t~~
\ "
'""e,.,,'
".'-'!>~

.-:':!:[~f
,

, ,,~.y<J
31 12 11 e 7 6 5
9 4 3 2 1 0 T. ;',.1'"
I INDIRIZZO PAGINA IAVAlL~PCDlpWTlu/sIR/wl~ • ·~i....~:tll

I Figura 8.39 Formato del descrittore di pagina.

..
",:10';1!~":"'1
·
"I ,.... ~
'.' '?=1;,
. '" ..
, ~,~i;
,,~

'/.,.,',

l
'";\",,
,!)I
La memoria virtuale 391

P -
D - Se a 1 indica che almeno Wla delle 1024 pagine, associate alIa tabelle delle
pagine individuata dal descrittore in oggetto, e stata modificata durante 1a
sua permanenza in memoria fisica.

A - Viene posta automaticamente a 1 ogni qualvolta viene utilizzata una delle


1024 pagine il cui d~scrittore si trova nella tabella delle 'pagine in oggetto.

P - Indica se 180 pagina e0 no presente in memoria fisica.

D - Indica se la pagina e0 no stata modificata durante la sua permanenza in


memoria fiska. '

A - Posta automaticamente a 1 ogni qualvolta la pagina viene utilizzata. A


puo essere esaminato e azzerato periodicamente da! software di gestione, in
modo da stirnare 180 frequenza di utilizzo delle pagine.

I bit PCD e PWT svolgono la loro funzione in riferimento alia cache.

PCD - Page-level Cache Disabled. Quando e asserito rende non trasferibile nella
cache interna il contenuto della paginaj solo se questo bit e disasserito il control-
lore della cache pub effettuare il trasferimento in cache della linea. indirizzata. Si
noti the la possibilita di rendere 180 memoria non-cacheable e utile se per esempio
sulla pagina e mappato parte dello spazio <Ii I/O, n bit PCD evita alia radice I
problemi di coerenz.a tra -memoria centrale e cache.
-
• PWT - Page-level Write Through. Quando e asserito determina che per quella
pagina deve essere seguita una politica di scrittura immediata in memoria per
ogni scrittura della cache interna63 . Quando PWT = 0 1a logica di gestione della
cache effettua scritture differite per 180 pagina in questione.

63Questa possibilita. viene data dal Pentium e modelli successivi.

,,
392 Ca.pitolo 8

8.10 ~sem~io di memori:;t con tabella di pagine ;11


mvertlta: la memOrIa del PowerPC . :,~
".;<"··'ill".,
.. ,.' , "
. ',"

Nella famiglia dei microprocessori PowerPC 1a paginazione e a valle della segmen~:~~~«


tazione 64 . La memoria virtuale e gestita da una MMU integrata nel processore che :~:~~
opera secondo il modello (demand-pageci). . ,}}f~~l
Nella versione a 32-bit il PowerPC genera un Effective Address (EA) di 32 bit,.-t,c
corrispondenti a uno spazio di 4 Gbyte, che viene trasformato in un momentaneo·::~,ij:
indirizzo virtuale a 52-bit (all'interno della MMU) per poi essere ritrasformato in\;~
indirizzo fisico a 32-bit (si e usata la terminologia Motorola): Tutte Ie istruzioni sono :·,~,~i!.
codificate su 32 bit (Ofr. 2.5.1). La divisione della lunghezza dei vari campi all'interno',':':;t,
dei 32 bit non e rigida, rna dipende fortemente dal tipo di operazione che rappresenta~:~~I
In Figura 8.40 viene mostrato il calcolo dell'indirizzo effettivo (EA) in riferimento a<~ri~
un farmata mo Ito caroune d1"is'ruzlone.
t' _.",
~',:'::~8,~:;

., · ,
,
,
',.
"'~'.';

COOtrlCIl OCLL·tSTRUZtCHl:

'""~.
• •
., "" "
..
I
,.. 'D


' ""'
"""~'
",
' I;lr,ir
· 'i\~ ~I
~;'.:!";t]
~<~jllH;
~II""
..
' ~ ,"~

• ,. ,. " ':\1'"-
.N
, " ,'!
· ''''~''
...~
,;;'~

• I, L':,;:1~~1

..-
(s'~!"I_ cl<tl '~9"~
\'I:i/:'JIJ
" r, •
'>';',i'C.\
,.r~c:
,~
L "~1-i
, 'I'.. (,'"
'''~J
,+ - .,,,~\\oti;,
"
;;i~lt
'"~
,:.X::(l1't',

.. . ';'l':' i:lI
" '

,,.,,"~"
!:'l'i
• " • 3t' ,
'::""'~'¢!'
.;!' .'
Gf'lI <r-Il) 1~~ID £rr.'tNa
,I ." .. ~

PO-:~~;
,

Figura 8.40 Generazione del'EA per un'istruzione del tipo load/store nell'architettura
werPC. Se rA e diverso da 0, il campo d deU'istruzione viene interpretato come scosta.m-ent9l~~
~ispet'to al conten~to .d~l registro eli U50 generale rA, se rA e uguale a 0 it campo d vie~e,::'.~i.
mterpretato come mdirlzzo assoluto. ' . \~1.
:~~l
"~'I:Z'"
• ,:;'.cf'!
.,.}~

,'. ~[g;f;"
.;'l,~~'
','
'~":£
.'
8.10.1 La 1PT del PowerPC: la HPT . 'SI', , ··1;;~-
"''''
. , (

Lo schema generate della traduzione da indirizzo virtual~ a indirizzo fisko e m05trat~'~;:~


in Figura 8.41. Viene irnpiegata una tabella delle pagine nella versione di Figura8.13~ . ,I,:i
La,tabella prende il nome di Ha,hed Page Table 0 H P T . : . -iJ
..· " .,~.
.,,'
.' .' "l,
·'F 1.. '"
640ltre a do iI PowerPC puo implemeotare ancbe altri tipi di indirizza~ento della memoria ovvero:. ,1~
la segmentazione pura, il meccanismo di traduzione a blocchi (BAT). E Inoltre possibile esclud~re ,Wi,
la traduzione dell'indirizzo, in modo j\oalogo a quanto detto per iI 68030. ';',/il;i:
,,;'~,ill:
.... ,.. . \ .-
i:~" '.'
N"
~all~l~r i:-- :' La memoria virtuale 393
~ ~,~:<:,
I, ;'Il"""
"'1~'11~';i:::" .
'~'If'V,-,
I.
1 ".,~.
',j:'iJ.1•
'"""1
,;>'i
"".,
,';;.\'.Om" ...."
)"
': .
• ',' '
.~.".
,

,1 .
,

Indlrl:u:o rnl'ttlvo \
o 34

I,
20

I, Orrnt
31

I .
~
".,
"'I'.(1'''.:..:, '
"tll",'-t:
l~ ~~.~.(-,:"".
.~.;~ .. ~.f"~:': ..
«. d:~~\4Jk.;
.. ,,'"., 'f:i. '~" ," '
, '

,
"
I-
-, ,,. ' ...
>-,,,.~,._,.,,.
'
"'''"
"I''I'" ,"
l
,I"""'"
_ ,,1 I.! ~•• '

:f'._ :'. I;J~;\ :' . -


'1'.-
R.~tlit,.O
S.~r'lto
<It •
. t-
:
''''
Ilr~';'!
,).~
. II,'
"""I:,~_,i',
"-'f"" .,.-, .',. t",":
"
~.'i" ~'~-\i':
",.l~""
, !!\ I'. :;I't.,"
.""" ,frl:~
1'\'1
~.,~ ..
",
.
~. '.•"
"~tj,~,,'·"
. ,'- • 23 2• 3' .0
"
orrnt
':J!lll"""'" '
I: ?'fI!]
:iL~h:;
',"'"" ,,~",
".,~ ,"'
.-,,, , ",
~~
., . \ :'1'\""" "
'" . ',; '''~­
,<' ,I ~ -

'\liil'l!~,";
iW:.~·:"':",
..';1;, ,~"'.'.

.
~~
I ,
.~~Ni"V'
.~~
, 1
"I "W,.'
'II" 'I"""'"
"", "
I ,~ .
'<~ 1l~:JJir,.
,',.. Hit .. fLB

I-
] ~ ;.. -, -
.,''1\'" \l I;f'" ~"'..,

; $ \ ,
"IJ!~!li'"'~'
""'-,,,;
"
"~
~!j

'l '"'i'''''
~~~l',',,,
" ,
I~
;' 'j' 1....;",.:" .•

~~'>\:~.\ .. ~
• ,'1,,-.'
l'"
·~i'·
HASH

1 "~~~'i~~;:;;::;:" .-
:'II ,'*>, ..., 1
.
~(';",
, , "'1'·',.
-
I ''''~''
,,',• •~::I'e:;,,:-,~~,
.. '.

,,~,,~~. ~"r;, •
'~
,""
.. /J"'"
r; ,
,~ ,,'A~~:J:~':'
~ ...
',,'
,,-.

'j !i'~.~ ..;.;~,-:,


,',' •.. "',
" Off,..,t
"
l-
' rl~(;'i:'Figura 8.41 Schema della. tra.duzione dell'indirizzo nel PowerPC. L'EA (indirizzo effettivo -
,.;Hjj~wp!iit<i::32 bit) viene prima trasformato in un indirizzo v,irtua.le a 52 bit, aggiungendo il contenuto

~~
1~~n~~,s(del f'Cgi3tro di segmento identificato attraverso i quattro bit phi significativi di EA. La ricerca
. ~t~:della pagina vtene prima effettuata in TLB e, se questa fallisce, in HPT (la versione PowerPC
~ ~J\..del1a 1PT). In figura la scatola de rappresenta MMU racchiude anche HPTj ovviamente
I
. 'i/- ~,:questa tabella si trova in memoria principale.
'lii" ,.,
. -
'~"''''
'i ~'M:<'.":'-
~."C\., . \-
"
'
ti,;:':,';'" Vale la pena di rit?rnare sulla questione della separazione degli spazi di indiriz- •
£~. [.~]~~~t~~ento dei processi. E s~at~ ~etto .che it PowerPC .segue ~ metoda .del punt~ 2 di
'-
,.,
-.,(
"
",Jfll, ~%.,r pagma
. 341.· A tale scopo l'mdinzzo vlrtuale e'su 52 bit} cornspondentl a una dimen-
;: ~~~ ..~,;si~.p.e quasi inimmaginabile. 1 programmi generano indirizzi au 32 bit. Questi vengono
~~~~1-...~rasformati in indirizzi di 52 utilizzando il contenuto di un registro di se~ento. In
I
~i ,~·:'~prat.ca un registro di segmento non fa altro .che rilocare un blocco di 2 8 indirizzi

i~ffi ~i\S~ uno spazio complessivo di 252 . Poicbe ci sono 16 registri di segmento il processo
J~ ;"u~r~:i'~uo indirizzare 16 spazi di 228 . n risultato e cbe se i registri di segmento contengono f
.~ ..
,j';" " ,:XS;"v~ori adeguati, e possibile mappare gli indirizzi logici generati da ciascun processo
,.-N·(..gu.~9ttoinsiemidistinti e non sovrapposti di indirizzi virtu ali. Si Doti che COSI. f~endo
~~
i,~(;,tnon accade mai che venga generato il medesimo indirizzo vUtuale da parte di pili
:
,
~~rp~ocessil in quanta gli spazi virtuali dei singoli processi sano effettivamente distinti in I
394 Capitolo 8 ",~~t
IIi~cr
,fi
- \ :;t-!r
.1"'"r"
'
't'l~
:,~
- Ii!.
l ~~I
~~,.
- TABELLA DELLE PAGINE (HPJ)
~~~
- I PTEO
PTEGO I L t:l D Ui'§ ''-
~~~
1li~
'l~~
\l!!l.
- \
-~
,.-
'l:"ll
,,,.:z
.!t!~'

I ",', '
1\
!.r
',,~;
I i I:!; ,
- 64 By"tes
'"• \lI

- :~
,'
'~ ,lr

\lo.lore hQ

• I PTEG;,{j=t:±::±:::Jt:t~j "':.-f!""
.q:n"'"
,;"~'
"
'/
'I~
.. 'il;'.~l'
• \:;';':~f"D!''
, "',1
-o I. 2~ 2S 26 31 ,,', '>',
r' . ·j,l.l,,·\llll
,~

,\ V YPN
'''T'Y\~i
~. '; ,<fl~J
:.",,,,,,
't,,-- ", ,
.'""),~


Nune.-o dl PQginQRl/Q(~ <RPN)
<20 BIt) R C pp
,," 7. "
."
-,,'j, . .,,:' '.
( Figura 8.42 Orga.nizzazione della HPT nel PowerPC, Un PTE contiene anche il numero cli' ':'~'111~,
':' n..
:.j, "\
I
pagina. fisica (campo RPN)'a cui si riferisce i1 VPN. Ogni riga costituisce una lista di PTE. ;-,t'~~'·. 1,
La lunghezza di una. lista e dunque limitata a 8. All'interno del PTE si trovano ulteriari, ~~;;;~ .-
campi, dedicati alIa protezione (PP) e aHa Ustoria" (bit R,C), II campo V rappresenta la ·~:~;:tlt·
l v ,
a l i d i t a . ' ' o"".~l, :l.'.':?J;I"
".;·;t''!!;~:
.
,,": .,.;,>\.
:"i'J
"l:'.ll:"
, .," ","
-", ",11
,<' ".,S';:
La tabella e organizzata in gruppi di 8 PTE [lBM94b] [IBM94a]; un PTE occupa
\ 8 byte. La dimensione d.i HPT non e vincolata al numero di pagine fisiche; essa e un.
multiplo eli 2, mentre Pindirizzo di partenza della tabella cleve essere multiple della
sua dimensione.
D numero dei gruppi in HPT e scelto con il solito compromesso tra quante pagine
virtuali si vuele mappare contemporaneamente e, quanta memoria <'sprecarelJ per 1a
HPT. la dimensione minima per la tabella e 64 kbyte (2 10 PTE di 64 byte). Viene
consigliato un numero minimo pari alla meta del numero di pagine fisiche: con 1024
pagine fisiche, il numero eli gruppi risulterebbe 512 equivaJenti a 4 PTE per pagina
fisica 65 . In un sistema dotato di 64 Mbyte di memoria centrale e pagine di 4 kbyte,
\

,I 65Se a. prima. vista. questo risulta.t.o sembra dubbio, in rea.llfl. non 10 e: i progettisti del PowerPC
"consigliano" Questa numero di PTE perche banno ipotizzato che, in medi4, quaUro programmi
diversi possano eondividere la stessa pagina fisica (si veda piu avanti) seuza determinare alcun page
fault,

\
,il,"., ..
~~l ••
,

t,~:
!,tlh';''. . La memoria virtuaIe 395
r~'t,,; ,
ih,,:~':-
!rt',"Jr. ,".
",~ , .1',"'J ..•
~(,·t; .
~~~t: jl nurnero minima di gruppi di PTE e pari a 2(26-12-1) = 213 ovvero alIa meta. del
.~}~w: numero di pagine fisiche (2 14 ). Essendo ogni singolo PTE eli 8 byte, la tabella delle
IJLf1_..-pagine. occupa 8*.8* (~13) = 524.288 byte oYVero circa 500 kbyte. Si confrontino questi
.:.(::.. numer! con quelh datI a suo tempo per la PMT.
~;1';"" . La schema della traduzio~e dell'indirizzo e in Figura8.43. Si nati che un a.ccesso
~~~j~> pub portare all'esame di due liste (quando 1a prima non contiene l'elemento cercato).
~f.~~·"·' .
~r)l; ';",: .
.o!'1f,ll,,_ ,':
~"~'
{:ii='-" ",.
.. '.."."
z.:.; ':' .. • J9 40 :)1
'..r.~.•\: .
''''''h:
!Jl(;<.... " Of'",t Indl,.lzzo VI.. tuGle
,,,,,.'. N""...o I'GO"'. Vl,.t ....l. (V'PNl <ll BIt)
r~i',k}.
;i;;>i\it; ,"
~if':"
,,~~~:l:" .. ,
I.'q~:~,:"
ll1i<,.••, .' .
'~~>"
~~~,(.-:' "
r."~, o0 0 0 (I' BIt)
,
• •
.,.

.'
• run:ll...... t40.,h <XDRl
"
HPT
.
.----
" Pl[(i(l
I'TEO
B Jyt.
." ,
,
•"

, ,
....
,
,
... . ''''--_._-----
,
• 1I1S~
I
Kl.. I' I'ttG
1'1[G
64 Jyt~

2.25 U
"v "
N.......o dl
v'"
P"~.Gle

20 lIT
(IlPN)

" ..
• "'-ro d F>.gmR.o.t. Will C,TS(T
"
,
.. . _.._-- ._- --

L'organizzazione di HPT elimina un problema clovuto alIa IPT in riferimento aHa


condivisione della memoria da parte eli pili processi concorrenti, Con la IPT affinche
"

:
'~
39~ '
""
'
:
"
, , "HPT
. '"... '- :t • ,
' :~
;"
f;'Tf'.
Ff?
, j"
" '
, , 'PfEO
.. .:.
., ' ': ,".; .n
i: ':','"
" ~ •. . I ' ,. ,. . ".

:.'~,:,.' .,,",'"'"
_"71".--,:,:,.
.- f("l ,. ,.
'-r'~~'
,. . 'I" \ ...... <'
HCVf'NA)-30 • , .. ',- .' .j, •• '" " •• , I.. ·i.~t~;;
"'f!
'.
.. H<VPNBf=-SS·"· .. ~ :.: ", ·';.":;r::. ;;, .~~ .... ,',.:l'l', '.:~, :.th~».~.
.~;,. "ir:'::;1;1;~~
' '

, ,," < : ,. '-' .. ', " '" .. ,"'.' ., ,,' :,!; I'; '.'- - ';'.. :; "" .. '.

I i , ~" ','" :'''~;,~


::!::::::t::t: """'~:H:\,;
.':'I':?,i\l;Il:T
6~ Bytu , ,'::{~tt
, .. , - .,' ,... ~.-. ,..... -" ..... '.. ,- -', j,;r~~
- o I .-- ,"" 2~:'2'5l"6" 3\ :.. V~"
V
,
VPNA
2~ 2:~ 26
" ... . .. ·F1· ~.' ..... ~,.:. ~PN~' '. . , • J ':.,'::' - ~T" ,'. l' ~l~~ .
- ":"-~.~;' ",
RPN • 100
• QPe R?N .. 100.
.............. , . R 0 PP )~:'~~\!
~u·;;c.'

Figura 8.44 Esempiodicondivisionedeliastessa'paW~a"rysl~3:;-tIPfocessoAmdlI"lzza13.·;.~n~


." '. .' ; :.. . . ~'J.~
pagina virtuale che genera Pindice. 30, mentre il processo B: genera I'indice ~.5, pu~tando a' ';~·~II
due gruppi distinti di PTE. I ~erenti PTE possono puntare'.~lla~~~~,~ ..~agln~ Mica, ~!f:If~
..... :. . ".:_. ~.~ .. - , . .:;~~~.~'
\~... ;-t~'~
8.11 . ESerCl~~' : .. ~ :'~,~}~~
'.,. • c

"
Esercizio 8.1
. ; . , , ; :. ... ,. . . , . . . . ·,~';~~~i
Si supporrga 'cbe lr: PM'r Sla a due hvelh. Sl_considen un SIstema con ':~;Ji'
due processi pI e p2~ sr~upiiong~.di parnre con memoria completamente sgombra e ;-;lq
si ipotizzi che a11'a:\rvio di un processq ~l s,4!~eqJ.,a_operativo c.~richi Ie ~ri~e ~ pag~ne: ..~~"\r.~,
Dopo che i due pr;oc~~,.s~no_~~~ti.~~~~ti.s~ha q~es.ta sequenza .del n~enr.ne~tl ~l !~~~j::;
pagina (si riport~Q.§,qt9..r~ ?:~?~~e_ ~9P .~~dlTlzzat:. ~ pre~e?enza; 11 pedice mdlca d, .~~~~~r.,
processo che ha ongihata-ll nfentnent.b): 'i;lf
~ 21 22 5 ';::f.]i:·\,
' .... '..7.h81-.02'~1.~ 2, 2, 1
,'.- ...:...., ,,·:;,~:~'~t·
Ispirandosi alla-.~appre.set;\t~i9.n.e ..,~i _~i~i~~·5, si tr.acci uno s~e~a dell~ stato della.;~,:1: ~
memoria e si djsea-n;'la confi@razlOne ralT~unta dal due alben dl traduzlOne. 'I,?.ti:
, '. • " .... ,l:>~, - ~",._~ ~,.,.- :,~, ..} . _... R . . . '.:1~~1
E'serciz.it?:8.2~~YD'-sis~eIl)-a: .9,J.P,~~J.i~ .~irt.uale presenta qu~t~ ca.r~tt~nstIc~e: (a).,.:~:t.,
iildirizzi.:Yu:tu31i ,s\L36_b\t;, (.b) pagin e di j6 kbyte; (. c) indinzZI fiSlCI dl 32 bit, Un F~;:'
elemento della·tabella'delle: pagine deve contenere i seguenti campi riferiti alIa pagina: :li,
pr,esente~·.~~~7a~~i~feri~a".~~.b~;~~~e.~t.L-per:,.~;s.i~t,e~~·??~r~~~v~':.r:.~~~,~~~,~~~~,:0~~,(,
legge1s~ttve·p;ar~l.e a:,wne::t~ a·'3,.2...b1~. '; ' ... ~:'j . '. "',.~:: .':' ,,', ~ ,,;' .,;" '_.:.' . . ,;'~ i : .• _,.'~ ,:.:,~f~
Si 'dis,egrind sCheilla-della ttilduzlOuedeg,li mdmzzl;' mdlcandp la'd1lnenslOne cii tuttI \_,
i"'cahlt:5i", esi VaH.iH 'quliiitcf occtlp'i l~"·tlbell~~d'ep~~~p'*jiri,el"~f~~~cl;1ii'.p'r?~~~~!=f~·,,'~~~,'~;;~::,~"tlL.'
, • • .~ '1" '.-; 1.-',"1.'" '.' ,." , '~ "f> ... , . :'. , " '+r$
Eserclz10 .8:3 Splegare p~rche ( T~B ~anno .dunenSlOnl di PO~l .eleme,ntl (8, 16d."\~,,',
32..). Posslbtlmente se oe dia una splegazlOne dl carattere probabiltstlco. 81 assuman ,:V,'!..~·,
pagine di 4 kbyte e parole di 4 byte. . <~~,
.'... :).>:,',....' ,::.,
'J. C~ ';" : .. ';: .: ". ". :'.:- ., ,;'.. ;./~.:. .~~.
'EserclZlo8.4 n~.lsteroa tit ,ro~roonavlrtuale:deltE~erclzlo ,8,2: res,ell ,u ,TLIl :1't -~
p ta n
:;,~;.~~ !':-:.-: ".. . <, "'. Ii.:
due· VIe, p~r ~n totp~e:·tii ..64 ;?oS~Z~OO1~'.. O~l" eleme~~ ,~el.=~1.B!;,.Q~~~ lal~~':~9-fY .0, t i·{:t.~l~:.
,ser~0noal:la.co.ny.erslone"~ell md1I1ZZQ,.. c~n~lene"un. bJt d~..yab.dlta, .~ill. ~l~n ~u~ bIt~ ">,t;,~,
Si disegni 10 schema del TLB, comprenslVO della parte che 'rIconpsce:J .hlt,,:,md1C~an~O ,~~t
"'e
",:,\\',
~","' ..
........
.1- '
"'" .
r= fIi>-.'
l~!,..c·
"
_~[I::r\,
:--,'tl,Lll .:,
I, -
~~l'~f:"::
'l~~~~:'o • La memoria viItu~e . 3n
""~"
ill~ .'~

I
"f!',' ,,1.

~
• q'
',. ,., ••. >
:4~rJ"" "
"~'Jt.~'. '
;?!~.:~~:\..-
"'~'l""
"Ja.. dimensione di tutti i campi: Si..detrmini' quanto:vale·il numerp "cgmplessivo, di,·bit
- ., .". " , ' "
"" ,.' 'ch' t' 1 aI' ,
j~i~;:~,:I,'.:n_ teSi.pec,~Te·rzzazlOne·e- d 1TLB '.';:"';".-',' ' "
"'_,.: :.",. "'::,; ~," ..
n.l·k:
.1 "1r"'"
'~...,l}h~:.
1
I
:: E~'~rcizi~"8~5
diretta 1
''A'valle dei TLl:;··d~il;Esercizi~··8.4.~i:.tI:O~~ '\ll:l~ c.a~he.:a,'~;~;:p·~~~~
d' 256kb yte eI ' d ' 32 b
me~ 1 .yte. . . ..". "
\-
~~f,. Si'~~seghr:.l~.s'ch~ma'~e~~a,cac~e-,'comprensiv~,d'ella pa~e'che'nc~n~sc~·.l~t~ in.~l~~d~ -
.;~+:,.. l~j(brriensll:me dl, tuttI 1 campi. ~uanta yale 11 'numero.complessl~a d~ bl~.tl~hJes.tl .. p~r
~~~~'~::" la reaUzzazione'della :parte TAG;della··ca:che, tenend();..anche. ~onto·'de} bIt;df"validlta? t
,"~I;' .r,,:
T.:'! "':r .
~~~~r . ';, . . ,
Eserciz"io.' ~;6' Un. 5is~erna.'.·a mem0ria:~irtuale.~~~'at:a! ~n~r~ ihm~~~E·~.~~. ·su' ~~
;~~jt~r' bit:..,:L~· pagm'e' SOITo ~1' 8R. La tab~lla:~e~~e.pagm,~'e'~ ·211vellL ·Per.il. p~O'.li,~e~? SI:
". .

.!~;;trr:,,·,.1is'ano·i 12-bit pili significativi"dell'lDdmzz9. De~nlilb U forntat'o·del~geneI'lco elemento


~~~;',: della :~~bell~;~~lie-~a.~~}'si ris~o~nda'~lle ~guenti do~";an~e:' a:). ~~a:~~~ s,?azi~·~cu~3:
,~,;,.. " la:tabeUa dl 'hvello'supenore con 11 formato assunto-,? b) d.i quant1- blt:·e, fatt? il.-camp~, -
~foW'~''i:~:j(' dell'indirizzo virtilale relativ0 ,alIa tabella di livello:'inferiore?" c) 'q'' uailt6 e':gr'ande: Hi
~r:t:'"

~~:' ~abella;. ~i li.~~l~~


~tlffi;,;;'~~~ ... TLB?" , ... ~..
~~~ior~?
"
d) .~h~ f<?~.mato avrebbe ~. gene~~ el~~e~to.d.i~,.e~,,~~~.~~
, ... , . . .' ." .. '._ . 1 . \ , __ '~ 1--
:
I ~t:. ",', ...' ;. . ,. . : . .,.' .'. " ,.. ,.' '. ...: '" , 1. " '• .

~~~'':- Esercizio 8:"'7'· Un calc61~tore ~n' ~~s dati a 32: bit, (D31-DO)" 'ge~era gl1; iIidi'riz~i
'lij;~t', di parala (4, byte) sulle h~ee, di .IDdtrl~za A31-A2. 81 vuole costrwre ,una me~an~
'~'~~:': virtuale pagmat3, con pagme fislche dt 1 kbyte e con tabella delle pagme a 3 lIvelli. f
I;~~ La tabella di prim? Hvello (livello piu alto) .d~ve.
contenere 128 'pos~ioni.,
la ta~ella
:~~~r:, di livello intermedio deve contenere 256 POSIZlOnI. La tabella dl pnmo livello Vlene
~!:f.-':.
~'Ii:!~'"
~~~'!"
individuata attraverso il registro RP.
Si disegni la struttura dell'indirizzo virtuale, il formato dei PTE contenuti nelle tabelle
ai diversi livelli, il meccanismo eli traduzione degli indirizzi. Si supponga che Ie tabelle
!-
;.'M~i?:' di primo e di secondo Hvello diventino di 512 posizioni. Come cambia la struttura
.~ l~iJ::~~,',
" 'Il. '

~J~!j,.', Esercizi~
dell'indirizzo.

8.8 8i consid~ri una f?ac~hina con b~s dati a 16 bit ~ b~s. in~.izzi a.24 bit.
I-
.~~~ . " La macchma e dotata dt memOrIa virtuale paglOata e genera rndirizZl virtuah su 30
~~~{. bit. Le ~agi~e (fisiche e logi~e) sono ~i 8 kb~e .. La tabella ~ell~ ~agine e organizzat~
:'I~~r,:,:: su due lIvelh. La tabella dt secondo hvello e dl 4 kbyte. L mdinzzo della tabella di
~tl'f~:;:'" primo Uvello e contenuto nel registro PTM. .
r-
~ist:'. Si richiede: il formato dell'indirizzo virtuale, con 1a dimensiane dei differenti campi; il
:i~"'lii:'i~t formato di un elemento della tabella di primo livello, can la dimensione e il significato
;'1. i~.:"", dei differenti campi' il formato di un e1emento della tabella di secondo livello can la }-
'r::ii<" di~ens~one e ~l sign'ificat~ d~i ~~renti ca.I?Pi; l.a dimensione in byte della tabella di
f1;
~. :;~;~, prnno livello , 11 numero dl bit mInImO per il reglstro PTM. -
'El,!,
';1:7, ;:2,';" Esercizio 8.9 Si consideri la memoria virtua1e segmentata della famiglia '86 (per
. ~~. \ti;,;:'." comodita 8i faccia riferimento al 386 0 at 486).
I-
.,.'1·;.t,:: Si richied~
in riferimento .alIa sol~ segmentazione: la .schematizzazione dell'in~riz­ -
,', ~.~.,; ,: zamentOj 11 meccanismo dt tradUZIone e 1e tabelle che mtervengono nella traduzlOne
, .I.• , f~'," dell'indirizzo,
'. '
~i~' Supponendo che all'indirizzo CSO: IPO venga eseguita l'istruzione JMP extraseg, che f-
\. tii1~r fa passare alIa poSizione extraseg, di un differente seg,mento (.CSx: lPx), illustrare: 10
1! ~~~.<~ stato dei registri di interesse prima e dopo .l'esecuzione dell'iBtrozione; quel che ac-
01~~\~:1'. carle in CPU per effetto delPesecuzione dell'lstruzione nel caso in cui il segmenta che
" 'J:"
.It'~ ..
~"-"
I-
"'1'
. .1,l;
- 398 Capitola 8 <~
~ill.:·
~',~~~:t,
:~~
- l contiene extraseg e presente in memoria; quel che accade in CPU per effetto dell'ese- .•
,:.,:.'J~
~':;,
;,,;"l'~;'

~~~
II" l
~. ,'
,-~~~

- I cuzione dell'istruzione nel casa in cui il segmento che gmtiene extraseg non epresente ';_~II Wff
- \ in memoria. Per Quest'ultimo caso , indicare la modalita secondo cui la logica della :':~~ ~, I'
CPU 8i a.ccorge del segment-fault. . :. '~~r~~
, ,. , , ' .
- Esercizio 8.10 In riferimento al rimpiazzamento delle pagine con tecnica LRU J 5i d~ .~~~·i' ~:l.~
I lin.ei .l'al?oritn:o de~ sistema oper~tivoch~ l~gge i bit di.pr.ese~za, aggiorna 1a statistica <-".:,~~. :~l~
-,I del rifenmentl, decIde quale pagma sostitUlre, azzera I bIt dl presenza. . ,';;I~·;, i,~

" Esercizio 8.11 Si faccia riferimento aHa Figura8.9 e alla sequenza di riferimenti. ivL ;,1~~~':~l
consldera~a. 81 supponga perc che 1 Dume:} dl pagma ~lrt~ale 6~ e 96 S1 mappmo :=~}~j1f ' ';
"
/( ambedue In .5. V~care co~ accade. se l.a ~sta ~e terrruna 1.Il 5. vIe~e a:Ilungata: con, .;~~~~. J~N
due elementl presl tra quelli ancora liben (11 6 e 11 7) per Ie due pagme ill questIOne,' ~;,;~\:J;: ~ ...
• (8i suggerisce di considerare il caso in cui la posizione 5 entri a far parte dell'altra '~.\~f: :' '
lista rispetto all'attuale e cbe non ci sia una lista che parte cia 5 stesso). . \~" ;:.~t
\ ". . . ,.'
Esercizio 8.12 In relazione all'Esercizio 8.11, supponendo di considerare il caso in i::~~~,~ ~ ~·~
• c~ non si ha rimpiazzame~to~i pa~a, ovvero. che ci 5i~~ pagine. fisiche disponibili ~'~l~i ~I
I 51 metta a punto una tecmca eli gestlOne delle liste cbe eVIti mconsJstenze. '. "Ari'~, ~I~
\ ';''!:~~ ~ilf
.; '~'~ "i'i'
':~~~~' ' 'It±l!'
'"1 .','1
"\1.~'7
,.v, .J
~,~.~}.~! ~~
"::-t'?~~ :~~i:
\ ,>;~~~, :~?~
':':'::W"i", ~~I'
';,:-~~_i~" ~~
,;:;!:~ "~~~;
,l ~'?~lit<~
~~: l~4-
<1~~f; ~I~
.;'d~1J,j; ~;ij
.'f~·: '; '
/- "'."?!,~~, :.,
;"':\~f~ .~~
,l ':':';;'ii~ ,1'
.~;,;\; ~l
',~~~i:~ :;t
:,::~~~a, ; ~
',);;:l-~3 ~;'
I, ':~~ ~~
.;·J:~!t~~i ~~
...>~1l1
"Jl~
~'
',.;,.,W;., .I¥
.. ~ .•" •. ' '.,.
,-
"'~. ,
-

\ . , $"
'A~;\~~
. ,,~j.j~~ :~
,::i1\t1 ~,
>{- ~ ;
.' ,r}) "
·,of.'·
, '; ;\~
I,>~
:' IS'&{

\
'1:''''
';1",

1\.l;:;:..
~~~:r
,I.'<''' .
l~1 -
.
,'1';[";':'


~:'_ •.

f~r-:
v. .' 9'
',~,>"
.,.,
'~~1C~;'
..
~~·;:;t.' La protezione
~":~~
~~~t>,
lli!;) ...
'~(~':;':,:,,,,,,
NY'-,"
.c;g\~(,~.,:.:
'k,~t . . . ,
t~~!~~~;:;:
' ." ",
~f~t·.
I~r
~:~~-:
.
f~d!L.•" ,
- "',
'~~,,';'i:;:;': ',';
1"~'I'
. "~.'"
~ .. ' . . . . . . . .
i
e
~~;r: lJ;I u~ ~Istema a proces~l, concorrentI. neces~ano che ,gh .ac~ess1 SI~O contr~llatL .In
::0!.;·,:, t~rmmi molto schematlcl: de~ono esls~ere del rpeccamsUll ~ pr~tezlOne per .1llipedlre "
~~~~:'_::;', che un dato processo .acceda 10 m?do mcontrollat.o alio SpazlO d.i memon~ d.i un altro
';~~J.l' . processo. Per esemplo, non deve essere consent1to che un processo scnva nell' area
-
~t;f;: ~ dati di un secondo 0 peggio aucora the scriva in una zona di memoria in cui risiede il
;~'~.i;,'.; codice 'eseguito da un altro. Si puo immaginare che ogni processo operi in un proprio
~~~~(:" io virtuale degli ~n~zzi, is~lato e separato.da .queUo d~ ~tri processi. Can 1a
spaz.
-w~:'.r~_; gestlone della memona V-Irtuale 51 mappa 10 SpazlO vrrtuale dl Clascun processo neUo
~~f"::_, spazio fisico di memoria disponibile.
j~i~;f"':: In generale la g:stione della ~rotezione :ientra tr~ i compiti ~el sis.t~maoperati~o.
,:'"
'~+~~'(. NelPespletamento d1 questa funZlOne esso 5J appoggla sulle funzlOnahta cbe 1a loglca
,g~i(:./,: di CPU rende di5ponibili.
~.t~:;::' .Nel caso dell'architet~ura x86 (a partire dal 28.6 in avanti) l~ logic~ di CPl!
'~. ';:&:,:. formsce un efficace e sofistIcato supporto per 1a protezlOne e per gestlOne del process!.
l~~~Y:_ Non si commette errore 5e si afferma che Ie soluzioni adottate in questa architettura
t~,ik~~':" sono quanta di piu raffinato sia stato proposto a livello industriale. Per questa motivo,
~r:B'\;~,' l~ p~te che segue ~llustra la protezione e 1a .gestione ~el. multi~king c~n esp~i:it~
'i<i'~i~':'. rifenmento all'architettura x86, Vengono pruna amphatI alcum concettJ relativi al
~"":',' descrittori gia introdotti nel capitolo dedicato aHa memoria virtuale. Prima di passare
~'~f'- ~la des~nz~~ne della protezlOne Vlene fa:tto un .rapldo a:ccenno alla trattazlOne delle
')~m~:;': mterrUZlODl ill modo prQtetto e alIa gestlOne del process1-
¥i!1C\.)•..
1!,~I"·'
. =~'i!.>'.~,-
" dp~:,

$"""io" ..
~lt~ 9.1 La protezione nei sistemi Intel
~J~~:,-"
~,~~.'- 9uando.la CPU ~avora in modo protetto i rneccanismi di protezione operano sia a
;,,~~/,. hvello dJ segmentl che di pagine, n modo protetto corrisponde in buona sostanza a
, "ti!'~ :._
1Hl._,.
't<c:
;$;',
.r"
400 Capitolo 9

iu~l1o che rende attuale 1a gestione della, memoria virt~~e.Come.detto in altre p~rt,i
a:~l, libro, alPatto della messa sotto tenslOne 1a macchma esegue ill modo reale, elOe
come se fosse un 8086 (fatte sal~e le.ovvie differenze rela~ive aHe misure d:i registri.
ecc.) e la gestione della memona vlrtuale e della protezlone a essa assoclata sono
4j!il~bihti;l-w~ )ljp~~'ggjo a1 modo protetto si ottiene semplicemente portando a 1 it
bit r~ .~e~,~e~~~r.c:> P~Q ~ ~9~. t;:~? v!~':.l~ .. ?b~it?-t~.A ~~~.c.~~~~~2.Ai P.Eq,~~;i?,J;l,~ d€j~ ';.;:~W\
.. .
segmentl. II meccamsmo di protezlOne di pagma vlene ablhtato solo se ablhtata la :~t e
paginazione e cio si ottiene portando a 1 il bit PG del medesimo registro OROI. ::'~;~-,
Quando SODa attivi i meccanismi di protezione, ogni accesso alla memoria viene ',~'~'~ft
controllato al fine di garantire che esso non viola Ie regole d~ protezione. I controlli ,,~,-;.
vengono.eseguiti p~ima che inizi il ?iclo di memoria e,. in caso.di violaziqne.del.le )~"
regole dl ~ccesso, SI genera ~n'ec.cezl~.ne.. !l
contro~lo ~lene oVVlamente es~gUlt? In F:·q.;~
parallelo nspetto aUa traduzlone dellmdlrlZZO e qwndl non produce penahzzazlOne '}~~!i1
nelle prestazioni della CPU. .;'.:~~~
Prima di poter passare a descrivere i mec~anismi di protezio~e e necessario a~- .'l~i
profondire il con~etto di d~scrittore~ ~e nel ca?ltolo pre~edente dedlcato alia me~ona',,:i,,'~::
virtuale era relatlvo solo al segment! dl meI11ona. L'archltettura Intel prevede un altra ':'~:'~ :."
classe di descrittori, quelli relativi a Uoggetti" di sistema, la cui c?mprensione e ne.ces- _'?~t
saria ai fini della comprensione dei meccanismi di protezione. E questa I 'occaslOne ,:~"f·~:::,
per riesaminare il.meccanismo ~i rispos~a. alle eccezio~i e. al1.e interr~z~oni. ~fat- :J:;;}~',
ti nel ~ap'itC?lo de:di~ato ,;U ~otto~j.S.t~p1? ..dl ?,~~~~~/'ts~l.~a,.,U ..~~~~~~a d,l Int.~~~~~IO:O,~ "~~@Jf
d~Il'ari;hite~tu,r\\',x.~ji;e,;st:~t!!;,il!~>,tr~,t~ \" ~1f:e!J,Il'le~\~,aJ),808~;m, !l'!~,~.t~ ;\1'ac0'\ji~,Ia,~;W
tap,ella del vettop dl .mt~r~lOn~ ~ ill, PO::i,~l(~rte {issa, a: RfU:tI.re ,<;lalla.ppSI2iI?,~e., .~~F(l. :/·i,{'.
Q !'Ii memoria,' Nej, fu~zio~ainert(l,in:i:tlpi;loprotet£9 ,rd~p8?iiJ,pqi)1~,ta:bella: d~i',\\'!iii
~ettoii',~Jpterrji.i.orl:, .i)1.i9",~~~.re ·a.lh:~~.t~ o~q~e. ~,eUo, SP.~;lo'·Jdi)~~~r?~r.r~ (rs}~;~l-}::;~",.
~eJ"sis~erp-a,,,u~ ~~e~?~~ M.g~~~~~ ~~ ?e~e ,~s~r~ ap~ro,~6n,~lt~.-pr.I~~:fh}offrp'~~~~,~:}{
I? p~orez~9n~,.~,qtl~I~9 ~~latrv:q alta; S~~~lpn~ <iTI ,task..: SJ ~t~~t,~ d}, u~ ,~,~~W:W~lIt9'~~f,,-.::/t~),

I' archltettura' Intel gestlsce automatlcamente la commutaz)one


,.,' , . , . I " ·
tra proe,essl,
",,~;,.n '.
salY~.Q.dQ '-'2.,~"
,,,,,' :"',." ',.'!,
e ri pristinando Ie informazioni 91. sta,to.. La. geJ?tlOoe natdW4Ie del ,pr.q~Sl dnfenta, /~.
c~~l' tino·d~gli.: aSf;et~r G8~ia~~IfIL~~ .p'·~oteZ.i?iie.'-: ~ ..·.1:;.' ',;1. :,'" :~',':;' '.' :.' :'.';': ".-, :,::{7i~
:':>.: ;;".:,,'
;;"",;,,,.,,,,, I ;:r
. '. :". . \~ I.: .. ,. , " .1,:,:.
9.2 T descriUori e' la'lo;rofunzlOne ' ,'. " '." .,"'"
,,_.. ,,- .': I', ,:l: I .. "", _'!' .. : " . , :_" .' I) ., '\'.',' ", ',', . , . . ,\1".

e, .com~ ~ali,~. ~~cn.~t~ ,at~r~V:~I;I}~,\l.q d~s~!~~?~ .. '. JnqltFe ,: ~e~'p,~~. c.Qqidy~ p~~r;~t9,r~ <,;,
v~qgo~o, WQ.P/-!~U~~ l~. -,t}osld9-e~e ;Pt?rt.~, E}p..~!~a ,<;h!3.. eflj:.r~O! I~; glOCQ J?~I rnE}c<f~l$.W ";?;\
dipassaggiodelcontrollo. :"':,)'" !.," ",.,' :,1·... ,.":, f",;" ·.··'~~L· -

lUna volta abiLitati i meccanisnli 4~


protezione o.onpossono ess,ere Ijisabilitati (nqn c'eimodo ~
riporta.re PG a 0, mentre PE pub:· e:ssere: a.zzer~t'o/rria cib' ha.; i'effeitd' iii =rjp0na.re· fa fnaechirtar in
modo reale, facendola funzionare come un 8086. Si veda il capitolo dedicato a1l'architettura Intel).
C'e ~0!'!1~qu~ ~odo ~ ~ficare 1<;1 p~o~~io~e p,i ~~gm~J!.~ (d~do a. t.u~t~ i. ,se~enti iI Hvel!o.~
privilegio Ore iIi patina: (portando'a: O:i1 oit WP di 'CRO'e ~ 1 i 'bit· 0/5 e RjyJ'nei'PTE d.ell~ tabilll~
dell'e .pagine ad' ambedue i' liv'eUj} (Figuta;8.39). , ':i '. :,,' .. ' .' ': .' -: . :.,:',: ,! i .1,; !:'.I\ ':; , <~
l
m;~i.
:-" ,

~-
.",.,~ ....
~I~'
-.~~:l

~;ij~"'!~l ' .
~ ~
.
!l\;tX .;

..."I;- .
-", "

III,,:',,. ,W", La pt:Qtezio;ne


'~~""
401
~~, .,

.~".il'''''''
,..
l, ...'
"I:"~'
~'.',; r-
::~~'%f::\~':'_~ I descrittori oecup'Mo sempre 8 byte (nel 286 due bYte non sana usati). I for- •
')~!>:';" ~ 'mati sono diversi a secoJ:!,da. deU'entita descrit~a, La :p.atura delPentita e, quindi , del
:~~.'~:C -descrittore ~~~SO, ~ 9~~nita..a~tra~er89).1 by1;e ~. A~ Capito!~ ~ ~ ;Jt~~';p~~ept~~
f~l;~l.·;--,'., it contenuto di ARB solo per quanto era rilevante ai fini della gestione della segrrien-
~fJIW%~:~'.'.' tazione della memoria virtuale. Lo studio dei meccaIDsmi di protezione richiede che
I
\' ~~~~;~:;:'~';":' si entri nel dettagli? dena struttura d.i A~. Cia sara fatto ,nella ~arte ~e segue.
-
t ..~~8:'. e
La struttura di ARB alquanto mtncata , anche perche alcum campi non hanna
,' d~$l~{& ...:·. significato univo~ e·la IOIio,ir),terpretazione dipende:da,altri c~i:;'Fdue;6eli Campi t-
tW~ :'~"~~~i;\;!;;~"', che:h~-nd signif1caoo. univoco sono Lcampi.:ppL. e:.S. (Figura.9.1).. ·lh:ampo.P, (Bit) 'ha
.~ :%~~;;y.:.:""" significato(quasi'univoco.•.:' , " : : ;". ,::', '.".' .".:" ': 'j'.' _':.: -
" ;t~f~./;:" ',::,: .. :':', ;'/" I.;"" " J'!";. ..... . .. !~ .::." ':'~"" :" ,:.:; ...... ~ ,.:
-
~ .-',"I~r~;::~?:,:, 7 0' .i~', ".
1J ,~·~'.~t\',.,'
~, '~,,\r~.l~'l,.,.-
GDfL!
s'~.
.
4. '1/ ,.\',' " ,- ."':,
. .
. .~ .. '; .': i ' . ' ... ' ;r' < -
i~ ;~J:,~~1~' Fig~ra. 9.1 Fo~mato del byte ARB. I campi'DPL e.S hanno"si~~to·,uni:voco.,n ~po P
~' i: ·\f~~,;\,::.'" ha. .slgnlfi~at~ dl se~ento prcse.nt:/non pres~nte per S . ~, ovvero dl descrltt.or~ valid~/non
"c ?,!Hf:::'.:':. ;'(~1.h1<?, p,er "S.,...O.. ,lr~.. bit ~rat,teggta.tl 'ye~g~I).~ l~~.~rp~~t~t1 lQ,.. ~.~e a~. .....,:' "-,- ,"
I-
.
:-:,,~~{X. ;:', ;,_!. ~~:. .,' • •' ; ..' ;' -<" I,. ' . ,1:--, ". ., 'I' _. .. '

"':''''',
it:~~,,..,:!
,I ;i~!~~~r':
f' ~~~l":/.
" ! . , ~',,; "

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


.:.

",','
!'. ., " :,. '. ,

-', .' I .'''' .':.


'.. ,. ... <'
I-
' !)il'.;~(' ,,f,. n CatrtPO PE!e(Descrjp,tor 'pr:ivil~ge Level)
(b1,t 5-6) ,PUo.""sllIDere qpattrovalori
',!~,r:~,~'" " . ,rhe rappfesentano i diritti. di accesso.~sQciati aWentita descriita . ,
"1"('. ,y • ."" " ," ,',,',',",' • •, ' , ;

.l ~ -';~h' • II c~mpo S (System) (bit 4), discrimina i descrittori in du~ grandi classij piu
, :", ~ t.)~.:· preclsamente: " : . ' . '..:.,
, ~I~'~\>, . .. ':'.. '. .', ',. '.~ "',; ; ,1 • ";, ,.

I"
'
~,~:f,!:.., "'.:'.'...- ·s· =
" "~:'
':0: 'd ~s$=n
.:,'Ott'>on'. ·d·· '.. '. t' d',- -~. ·t·· '1. --I ,' • . 't't-,'. '. "d;; rt""
1 segt:P;en I I SIS ema e.uescn on I po e.
'. "
" \~';'; J4'~ ", ;';.'. '<: ;"., " : .'" :',.' ,.'.: :.',.," .• > ',': ,'. " ;, :.. '. :i. ' .. , .,'. ". ,( ~,
:~ ~~~~y, .
n camp~ ~ (?it 7) ha ~ignificato quasi u~iv~co, n~l senso. che pe~·i'\de.4~~ttori eli
'~W\<, _;"segm~~\<l,9lS,lstefIla~ql,p~rte,(S;O),es~~ill?icase)ldescn~\!,r~~!l'qovalidQ'Nel
~'~~;< ;:.: :"S~.9. <;i.~.d~~p~0n,,91 .s.~~~':~9.,ql.9pdIC~"O ~~tl, (S .1)., 1.';m~lc!1ZU?~,.y~do/n~n
~
'~l:'~\;!:" ,.val\d,~:,equ'.Y;;l~alltnd\c\l,Z'Qne.idi~egIl1en~opresent~JI)onp'r~&e~t~ \J:'. memOrIa -
~i~~4:~ '." ::: (P~l;i.P.~~~eR-~e!,r;'"'Q: Aqn,p:r~sen,t~l._ ,,', ~:.I
. ','., "_.;;:"

I "

,:~ @ 'l"~:'
\fr".;;€ ~'}W~
per le due classi di descrittori individuate da S.
,. _ _ _, _ ,
.
I-
.
9.2.1 Desctittori di seg'ffiE!llti di codice e di datj.{S=l) r .
~
I
l;~:".:.,., ,
. . . . .
.. ,: .'. "",1 ••: . " '. ,.
"
• '1':, 'C! .": "';.,.:\'11 . . . " : . . r.. '~.:
'.,
~-"'" ", ," " . . . . " .. "'"
lrr6tina~o del 'byte ARB e riport'aloin Figura ~.2:·Del ¢~p6 A S!. e ,gjaparlat6 ill
Capitola sulla memoria virtuale. . ... , . . ", . " •

2Quando si parla di segmenti dati si intende ricomprendervi anche i segmenti d1 stack. -


-
I 402 Capitola 9

-, \
IpjDfLI ~ I T;fF~E jAI
\ Figura 9.2 Formato del byte.ARB per i d.~crittori di codice e di dati (e stack).
- I
- I
n campo TYPE (3 bit) identifica 1a natura del segmento e ie operazioni consen-
• tite. Piil precisamente 1a natura del segmento· e determinata da! bit E. I segmenti
- \ di codice (segmenti eseguibili) hanno E=l, mentre i segmenti dati presentano E=O.
L'interpretazione degli altri due bit del campo TYPE dipende dal valore di E, come
schematizzato in Figura9.3.
- ,
JI • SEGMENT] Dl COD]CE (E= 1)
Gli altri due bit vengono indicati come R e C.

R - Permesso eli lettura. Se questo bit e disasserito 1 il relativo segmento di


codice pub essere eseguito, rna non letto. Si noti che non e consentita 1a
1 scrittura in un segmento di codice; ogni tentativo di scrittura in un segmen-
to di codice detemUn3 l'eccezione 0.13 (eccezione di generica violazione di
• protezione) .

. ~ C - Bit di conformita. Stabilisce se un segmento puo essere condiviso da


programmi situati a livelli di privilegio diversi da DPL (si veda. piu avanti).

[ • SEGMENT] DATI (E=O)


Gli altri due bit vengono indicati come WeED.

W - Bit eli autorizzazione alIa. scrittura. Se asserito indi~a ebe e consentito


modificare il contenuto del segmentoj in casa contraria e consentita la sola
( Iettura. .

ED - Expansion Direction. Indicatore della direzione di espansione. Solita·

I mente un segmento da.ti cresce verso indirizzi piil alti, mentre un segmento
stack cresce all'opposto. Se ED=O la direzione di espansione e verso gli in-
dirizzi piu alti; in questo caso 13 componente scostamento cleiPindirizzo cleve
essere minore 0 uguale al LIMITE del segmento. In caso contrario (ED=l)
10 scostamento deve easere superiore al LIMITE del segmento.
!
IE = 11 c IR I Iw I
I !E=O!ED
Figura 9.3 Interpretazione del campo TYPE per scgmenti codice e dati. Per i segmenti
eseguibili (E=l), gli attri due bit sono indicati come R e Cj per i segmenti .non eseguibili
(E:::::O), gli altri due bit sono indicati come ED e W.

j ,
,."
La protezione 403

9.2.2 Descrittori di sistema (5=0)

Nel caso dei descrittori di sistemail formate di ARB diventa queUo d.i Figura 9.4.
Come si vede il campo TYPE eora di 4 bit. La Tabella9.! elenca i possibili descrittori.
Quelli a 16 bit sono per compatibilitA col 2863 . Nel seguito faremo implicitamente
riferimento a descrittori per macchine a 32 bit (per esempio, si faccia riferimento a
[Int93]).
Essenzialmente ci souo due categorie di descrittori, quelli che descrivono un ef-
fettivo segmento di sistema (LDT 0 TSS) e quelli che rappresentano Ie cosiddette
porte. Per entrambi i tipi d.i descrittori di sistema, se il bit P vale 0 il'segmento viene
considerato non valido e ogni accesso provoca'l'eccezione 11 4.

I IDfLI I
P 0 ~n':p~ I
Figura 9.4 Formato del byte ARB per.j descrittori eli sistema.

LJ~~ ~igniifcato
o NODusato
1 Segmento di state di task (TSS) dispocibile (a 16 bit)
2 Tavola (segmento) dei descrittori locale (LDT) .
3 Segmento di ,tato di task (TSS) occupato (a 16 bit)
4 Porta di chiamata (a 16 bit)
5 Porta di proceaso
6 Porta di interruzione (a 16 bit)
7 Porta di trappola (a 16 bit)
8 Riservato
9 . Segmento di ,tato di task (TSS) di,pocibile (a 32 bit)
10 Riservato
11 Segmento di stato di task (TSS) occupato (a 32 bit)
12 Porta di chiamata (a 32 bit)
13 Riservato
14 Porta di interruzione (a 32 bit)
15 Porta di trappola (a 32 bit)

Tabella 9.1 Codifica del campo TYPE del byte ARB per i descrittori di sistema.

3Si ricordi che Ie maccbine successive al 286 possono operare a 32 0 16 bit.


4 Si tenga conto che i segmenti di sistema devono essere aempre presenti nella memoria fisica, dato
che sono ,manipolati direttamente dallalogica di CPU,
.:~'.:,
. ~i3
-:';!\
.,;,-
:·-..jtl
'-' •••. ~
404 Capitato 9 . ;:_:~.l
_:'0~
·",'i:
,,-,~~j
"">.:;11
Di LDT si e parlato al paragraio.sulla:lilemoria'virtuale:del·.286; di.'tSS..e··del ;:;~rl
relativ~ descrittore si parla al Paragrafo 9.4.1. Qui di seguito vengono presentati i '::~:\.r~,
formatl de¥e,porte. ! _.: ~!~!
;. •. : ' " • . •• ' : . .' '. •• :' 'I.~ '. ; ~' ..•• : . ." J ';·:.~-d~~
Le po:rte Le pqrt~.. son9, ,degli speclali.. desqlttOI:I dt. Sl~t~m.~ If. ~Ul scopo guello e '{;:,'fJCrl;
~i: ~~ . trf1S.fe~ire: il ..contrq~~,i.n. m~do :l~c~mroll~to.". ~ss,e ~nt~9d~~ono un .~i:vel~o·;dl '. ,;~·:t~,
mdlrlzzamento mdlretto (tramIte il selettore cbe punta a. un descnttore nella .qo.vuta : ".::;;r.
t~vola) t~,~.la sqrg~f.lte ~ .I~ d~~,ip~.io~e:.. Qu.~,~ liv~l~~ .d:~, ~.~~.iriz;z.~~:e~~o.~.~.~,rett6 '-",,£~l~~1
s,erv~ ~l1a .erU p~r, effe~tu~e l,<;optrolh CiI p~QtezlOnEl, ~e reJ~tive::rn.99-aJlta verrannQ . ',:,.:;~:,
~~m.i'~.~t.~ pili avanti, n.e~a s~ae' opp.ot'tuna.. ' ',. ' . ~. ' .' ~.'. " .. : ~":. ' :'. "'.; "~'r~t
~oIi6 previst~ qu~s~i ~ti~t~ro '~!po;~~ .pott~:·. q)"?i ·~I.a#~t~; .. (~r~1'}.nt~rpl:~i9hA~ :,}jt·
(3) dl trappola; (4) dl processo. IT formato delle porte enportatd lD Figura g:5·. 1. ':;!~I'
dLfferenZlaZlOne e data attraverso il campo TYPE dl ARB, come da Tabella 9,1. .':; 'i.f/ ·
.; ... .' ~ ',.Jr;-.
.,_. t~ .~jlf:':
"-- 311 3tl, 31 G •
;,1.
,,<;,;I~
Offset (31:16) ARB DWe Selett. Sej(m. Off.!ieC (l ~:a) . Porl~ dl ehlamala .:"~.;~i,
.. .'
• . " ,...., , . ,' .....
~'\i~",
,.' ', .,~.
';"','
,~,~:
....
., 3' 311 ,
"Otbet " "Offset. '·*H
(:31:16) ARB ~ S.l"!. ,'.,m. (15:0)
Porta di interr-udone
'::':-',~ii~11

~~~~~':l{l
Porte di trllppola

.. ... ...., .;-.'.. '., ., -:l~"


.." ,:,:.,', ~,

':;;~:{1~
.,
83

~ ,~R~
47

.wa·:
3U 311I 31

~~.~~.~·\?s ~. i'p~';te dl··t;~CU.O


Figura 9.5 FOl'm'atQ' delle parle' {386' e:·.succesaivi).,· Ije, parti·j.tra.tteggiate varina ignorate.
'II
,
','.
'.'
".

..
,
IT' ," ... '
._ i;~l~
~{.i~~ '~
,,':',~:,
,', i .. ,::,j" .';-'- '.-:.' ',i'.; .. ' ,. :,,,:,.]',1'. ,'"
,:'_~;;~t~l!~.
>~,l !~ '. ". ~,'.
'. ''
:---:,~:(,
Le porte di chiamata vengono usate per~:.passaUi,w· c:eintrollo effettuati tramite :t~f·.
l'istruzione CALL. Esse preved6hO"i un ·'campo ·(DWC) iinpie'gato come· :contatore del
numero di parole che 130 logica ddl:a: CPU' d-eve 'copiarei'autdIriaticamente dallo stack ~:<;;, I~
~ ;':/;:
della procedura chiamante alia stack chiamato5 . ,.:". ; '. :" : -. ";;:~"r
Le porte di·inte~'ruzioriee"di 'trapp61a·vengon6 usate'pef'll saito ai sottoprograrnmi ,·;,'':1:1.:
_...."','
,":01i;1
di interruzione. 'J' ;.:';: .,' "';:::'t:1~'
,'·r,
Le potte' di' proeessO' servono per- la.
'comniu.tazioJ.le:'d~i iprocessi. : La porta di ",,{~~ -:"J

.,.
processo, oItre ad ARB, contiene solo un'5elettor-e-,~il;seJett0te~deldescrittore del TSS -~'~~--I' .•",.
del processo indirizzato, Un descrittore di TSS deVe"obbligatoriameilte risiedere in ':; "
GDT. ..; '.... ',;: ..... "~' f·:·; ,:'; . :! .:::':;.~
, ,
'.," ".1·"",~ ~ 1;
... ,·~~7:
'.~jl
9.3 Trattamento dellei'nterruzioni'in modo prQ1Jett6::~;.
'~]~,
Prima di p~sare ~ar~~e
a della protezione occo.rre spen.dere t.ratta- al~u~e parol~ s~1 ~"~;;~
mento delle mterrUZlOlll ill modo protetto. Convlene anzltutto [lchiamare.•l slgmficato .::~~
" ' I . '. ",,' ' .' .
,'... ,.."
•. , ' "
," " ,. ..
,;' "
-;-:-.,--~-=,--~ . ' . '.
5Anche questo auto~~tismos~rve a.i fini dei;'~·~~:t~i~el . ~~:~i~n~O"·.d~jamatod~~~hi~~ie.·:·' . ", ,:,:,:,;
".
,"~
"',"'
":.,..
. .
•...
,,.if:..:.
,.jP':':' f_.
~fi;
, '
,
.~~> :. "
1'o,L',-,
'"! ~q: r, La protezione 405 --
~t~:·. .
llt,· ~NI' ':: -
~ I~?~'~:'~'"
~"'~':::i:' 1--
l~i::)' di a.lcunUermini. '.. . .... .....
-
~0~;~;~~;:.·· Un:interruzio~e,
nell'accezione pi~ generale del terminel'·~ 'Un Iquai~q~e even~
'~l~k' . : to ~e. lflt'errompe,.la .I;l.om.pale :eseCUZlOD,e. del. programma.. IIi: 'Sens,o pi,!:' l'1S.tretto,
)--
~~~~g':: ". tl_~'!nter;lJ.~io~e ~ vento asin<:[On9,:~ttivato, tipic~nte da 1)..Q.,"~~?~~ith~~·~terno.
Uf!.r
11~~,':i'~,;: . ,! :.'..Un. ecceZlone e mvece ,1.!-:n evento 'smerona:, cornspondente·,aI verificarsl di 'certe -
~~;ii~':"" conclizi?~i"duI\ante"~'esecuzione .cli. "un'ist~zion~:" 'Un. ;.e8e~pio' .~~c~ione~,e·\9~e~a di:
'·~K'~~·'''~'' deterrp.mata: da .un page-joult,.oidal tentatrvo dF :esegwre.come Dp-eraztone··un rodice
1 !~t~j~'/: ,", non,corcispbn~e~te·.~,.una:.~s:r.u~ne:di".mat~hina .. Q~este,~~ezioni .v.e~go~ r.u~vate
r..
~~~~'!f'.:,;.: dar processore, qualLrCOndiZ10D1: anomale -di ~unzlOnamento, : .n·loro. rtconos~nto
.
Gk.f~'~~';,:;'· P.~t;nt.~tt~. Ol ~~.~Q4§XPJ;'o.gr;.~w.i. cli,sistema deputati al :~r~tt~eg.tQ .deU~.anomalie,
· .
'~~~~t:' lo,;~,··~~f.~in0Iogia..~ pact;e.la-sqs~a~4iale ~s~in.z.ione;£ra ~c~~oni.~:~terruziQnjjr.isiede -
%.~.:.:.·nell1or~~e: l'ecce'''one .e,sell;lpte:npro~uelblleattra~ei;$o'I'l!1esecu':QD.,.delpl;ojJtarn,
·~~~~~i~i;."" rna che 'l~ha, caus,a~a'j, rlTIterr.u~ll:me pU0 'avere un~ .can:~plessa:'T~lazIOne::di .dipendeJ;l.~ -
~WJ~~~-r~.; za temparale con 1 programrru. In questa senso Ie coslddette mterruzlOID software,
~,.,
:it ~t:~,\.'.::
"'!.i'"
.. ·... ,1'
:r~:". ,''Ii:Y,:':\'',''.
!I'~~~"
.
: corrisponden~i, a~~~eGuZion~. dell'is,tr~ipne :IijT,
programmat"
e
..

'.,, ' ." .,,,.
.vapno· rigu·~datEl:~Qllle. :~ec~ioni

, ..
. 1-
~.
I¥.'.' ,r/l~;
··R~"~··:
1"~"'~'
":l~'" .. " . . '
. ,,>' .. '. "
,
......'.,
' "
.,,'
'"
,
.
." ... ~
..
-
;,;~IfIii~W 9.3.1 La tabella dei descrittori di interruzione
H"··~il~:~,' ,'" . .,
1 ~ ~f.:;.'.':,~ v:;"",'·,'' i"~" ,;,;;;.',. ,1..' '.~. :':" . . "··'i ':"., .. :,.,.," . . . \.'

l" .1, .t~~.~'. n ri1ecc~s:m'o di interiuzj-ori~,·in 'modO' pr'otetto, e sbs~i~~nte ·s~faL. funzio- l

" '~!; ~r,(.'.' namento


modo reale [Int931. 10 .'" ", ~. " '., .... '.
~r M~~f~~;['~,:' ~ie~e usat~ .una ta~ellal c~iamata IDT (In~,~fT"Up~. De~cri~~or Table), c?n~e- J, -
~ 1~~ .l~;'" '." ~~nte.::~e po~t~· dl. mte:,FuzIone: (F~gUFa ~,.~), '0vve~o I .descntton ·cJ;te p~~ano/~~ rou-
~' ~ I. ;~?,: . ,~. tIDe. dr ,serVlZIO d-elle. mt'er~\fZlom-:: .ogtll-' mterrUZIone 'usata 'dal' sistema' . deve avere il
,~~ ~iI:~J"":;;:::'" ~ornspondente descnttore 10 IDT. . ""- ,:.
. ,~~~i ~~~F:1 ~'~rc~tet:u:a x 86 prevede fino a ~ n:assim~ .di 256 i~te:ruzioni. I primi 32 ~e~­
.'"
.gl·~~:;:." t?n. -dl:mte.rr\.l.zl~~e-no.n;p.ossono..essere_,us~tI:per,"l~ mte~l~m'este~e. In Tabella;9..2
I-
I

.
'~1~1.i( . s~ nporta II slgnffi'Ga~o cdl: alcun~~delle· pnme ,3'2 ~te~ruzlOm. : Se Sl ~lude: l}jnterl'u-
~~ ~ 'W~~(~::' ZlOne NM! ~e res~antl. S?rtO classi.!ic~te come eccezlODl: P.er ,u~ ~l?nco c0l'?-ple~o e pe:
~: . :~~;j,,;:" una..9-esonzlOne det:t;agllata del.slgruficato'.delle ,ecce~orn sl:nnVl~' all~·pUbblicazl0~ \.
~.L' del'C0Struttore {lnt93t-: ~ .., j' . " '. " ,_ ,.~,'" :~ I ,:' " ,;'•• ' .: . •- ' ' .....
' • ',4. . ' •
:1
1..
,;'•.'
~'t',~',;'-"'
*itl ~i\...:.'i:"·"
.,
t:"
,. , ' .,
'.",'
',
,,'
._.': .,' :!, ,;.
. . ., ...
... ,
.
....
. .. .' .
," /.. " ;: .. >f., ".' .,: '"., -
J,'

...
i\ '~~':'''!'i;i i '
'1':""",""
~ ;I&;'f!c":
.,,,.
.. ,', ~-::,:
.'.
":t:~",
i"/~~O;<·
,~,,' >,'
i'"'
"".
.,
.•
'. .
.',
i·'.
'.
N V
.""'"

'.
..1
"..
n' .
' .. ·,i·, .ettare ,,:,:-,e,'l.c~z~.ane.... . '"
0 IT...· · · 0
. , .. '1:-L>IYlSlone.p'er/ ,.. '
" . '.' b'"
.. , De ugger.·,
. '.
.' , .
.':
.... ""'. ;'. ',,- .... :.
" . ".' '.- .,
'..'
',. , .. ,'. " ,,:',

I-
~ .i ',:, ~l~';,~:" ,..... 6' ' Codice 9.~ ·o.P~taii9~~·f.lo~ '~lido '1. . .... .,'. ,.' .,...- .
J..

l: '~'l~f!:~:
' ,~~·,i 10
11
TSS non valido
Segmento non preserI:~e I-
. '~~~iVl'" ,, ),2 Vio lazione lim,iti stack ., " .. •
, ' (~. ,k&\i' .~!: 13 ,VlOlazlOne protezlone .. . ", "
. . .
, . .
"~I!:~t", . '", ." IJ~~ , ftt~::~:, I
'.

da non usare)
~. :.: Ig11L': ...,.'., . ..... .' . .
",",~;_.I .. I '" •
' j; ."-1,

.' .~~ ."


V",

ral;lelia 9:2' i.i-lcune etl<ezloni"p~ll>~Ch~t'ettU"r<!o *86. . ~ .. ,.


;~~, fl~,!tl'
J'!Ig,
.. I , . . . . . . , . . . . .,
, ,e, ., .,
'; .
-
~!i!\",~;'J
. \ .,;. Il~.It.l'-,
.!' 'i J!~'l-'''',
- . 406 Ca.pitolo 9

- I Dovendo prevedere almena 32 descrittori (anche se alcuni non usabili), 1a minima


- dimensione <Ii una lIlT e <Ii 32 x 8 = 256 byte.
\
- \ La logica <Ii CPU tratta lIlT in modo del tutlo aoalogo a GDT (Cfr. Figura9.6)
e cice come un segmento avente dimensione massirna di 64 kbyte (per un totale di 8192
- descrittori). A IDT si accede in modo del tutto analogo a come si accede a GDT,
utilizzaodo il registro <Ii IIlTR (Interrupt Descriptor Table Register), l'omologo di
- II GDTR. Come GDT, neancb.e IDT edirettamente visibile al programmatore, in quanta
Don esiste alcuna iBtruzione che utilizza il registro IDTR per accedere aHa memoria,
(si dice che la tabella IDT nOD e un segmento della memoria virtuaie)6.

n contenuto della tabella IDT cleve essere predispostq durante il funzionamento
\ in modo reale. Sempre durante il funzionamento in modo I."eale, cleve essere caricato
iri IIlTR7 il descrittore della tabella. Di norma, la lIlT viene gestita dal solo sistema

operativo: una volta caricato, il registro IDTR non e piu soggett0 a modifica.

· ,\ D coinvolgimento d.i IDT nella risposta alle interruzioni e il seguente.



1. n vettore eli interruzione viene usato come indice in IDT per individuare la porta
a8$0ciata all'interruzione.
l 2. n selettore contenuto nella porla di. interruzione (0 di trappola8 ) viene usato
per reperire in GDT 0 LDT il descrittore del segmento (di codice) contenente la
procedura d.i interruzione.
1
3. L'indirizzo della procedura di interruzione viene ottenuto sommando all'indirizzo
di base del segmento contenuto nel descrittore 10 scostamento contenuto nella
porta.
\
Nel p~5are alia procedura d.i gestione dell'interruzione, la logica di CPU controlla
che vengano rispettati i mecca.nismi di protezione (si veda piu avanti).

\ Oltre aile porte di interruzione e alIe porte di trappola, TDT puo contenere porte
di processo. Quando il vettore di interruzione punta a una porta d.i processo, la rispo-
, sta all'interruzione deterolina (sempre che il meccanismo di protezione 10 consenta)
una commutazione di processo (Cfr. 9.4). n meccanismo che si instaura e analogo
l a.l precedente, con la differenza che la porta di processo contiene. solo un selettore
di segmento TSS (Figura9.5). n selettore viene impiegato per reperire in GDT il
descrittore del TSS del processo che viene riattivato. Si ricorda che un descrittore di
TSS deve necessariamente trovarsi in GDT.

liE comunque p088ibile (e necessario se si vogliono apportare modi6cbe) definire per tale tabella
un segmento alias.
7S u lDTR sono previste Ie due istruzioni privilegiate LIDT (Load JDT register) e SlOT (Store lDT
\ register).
8Le porte di trappola. sonD simili alle porte di interruzione. Si clistinguDno per it diverse effett.o
che hanno au! flag IF. Un'interruzione che usa una porta di interruzione azzera i111ag IF, in modo
da prevenire Pinterferenza di altre interruzioni; IF rimane a.zzerato fino a. che noD. viene eseguita
I, l'istruzione lRET. Un'interruzione ebe usa una porta trappola non modifica il flag IF. AJ differente
nome non ~ associata alcuna particolare semantica, se non la differenziazione detta.

\
La protezione 407

9.4 La gestione dei processi in modo protetto

Nell'architettura x86 (in modo protetto) un processo corrisponde a una entita com-
pletamente identificata dal suo vettore di stato e cia! suo spazio di memoria virtuale. D
vettore di stato si concretizza in un segmento denominate TSS (Task State Segment);
10 spazio virtuale si concretiz:z.a neU'insieme di segmenti privati, accessibili attraver-
so la LDT del processo, e nell'insieme dei segmenti comuni, accessibili attraverso la
GDT.
La Figura9.6 mostra che in CPU c'e il registro TR (Task Register) usato per
puntare al TSS del processo in esecuzione. TR e un selettore e, come gli altri registri
aventi funzioni di selettore, possiede una parte nascosta, contenente il descrittore del
TSS del processo. loutile aggiungere che la parte (cache) nascosta viene gestita auto-
maticamente da! processore. n campo INDICE del selettore costituisce identificatore
unico del processo.
D processo in esecuzione viene anche detto processo attivo.
l' attivazione di un processo richiede il caricamento in CPU del contenuto del
vettore di stato del processo stesso e cioe: (1) il caricamento dei registri di CPU con
ie loro immagini contenute in TSS; (2) il caricamento di TR con il selettore del TSS;
e (3) ii caricamento di LDTR con il selettore della LDT del processo.
La sospensione (disattivazione) di un processo richiede che venga copiato nel suo
TSS 10 stato della CPU al momenta della sospensione. In pratica si tratta di copiare
.in TSS il contenuto dei registri di CPU.
Per commu.tazione fra processi si intende l'atto d.i disattivare il processo in ese~
cuzione (processo u.scente) e attivare un nuovO processo sospeso (process a entrante).
n processo entrante diventa cool attivo a partire dalla stessa identica situazione nella.
quale era stato precedentemente sospeso; il processo uscente potra. di nuovo diventare
attivo a partire da.lla situazione in cui viene attualmente sospeso. Si Doti che non
eSLste alcuna istruzione particolare per la commutazione. Di norma essa viene provo-
cata dal processo attivo (tramite Ie istruzioni di JMP, CALL, INT e IRET) , oppure cia
un'interruzione esterna (Cfr.9.4.2). In ogni CaBO, la commutazione viene gestita in
modo automatico dalla logica della CPU, che effettua i controlli di protezione di cui
si parla piu avanti 9 .
Quando il 'processore passa a funzionamento in modo protetto, TR viene azzerato
(equivaie a impostarlo col selettore nullo) e, dunque, non risulta attivo alcun processo.
LO
Per rendere attivo il primo processo occorre caricare in TR il selettore del suo TSS.
A partire da questa situazione il contenuto di TR viene normal-mente rinnovato dal
meccanismo di commutazione fra processi.

9La. logica di CPU gestisce la. commuta.zione tra processi in modo molto efficiente. Basti pensa.re
the con una CPU 286 a 8 MHz, la cornmuta.zione richiede solo 2L f.JS e che con il 486 a 25 MHz il
tempo di commutazione e di 10 j.LS. '
lOPer modificare e leggere la parte visibile del TR si usano Ie istruzioni priviiegiate LTR (Load TR)
e STR (Store TR). LTR source verifica se l'operando source (in memoria 0 in un registro generale) e
un selettore di TSS. In caso affermativo carica it selettorc e il conispondente descrittore (individuato
entro GDT) nel registro TR. Se l'operando non e un selettore di TSS 0 se ilsegmento TSS non e in
memoria fisica viene generata l'eccezione n. 10.·
40S Capitolo 9" '

" "C,WP .;."'" .. , '


.. i' :,Mern,or.i'a'., 'c
, .. ~ ~,
" ~

LDTt? i.,.,,.... " I" " •• ' LDT-'., I '! . :

111"-':'
. •
. 0""":"
. '"ii "."
.
,"03\
'" .
I··....
"-'\1' .: .;"
,"': ',:"

. ,.{SOl~l~~;:_:~ "';!~'':~~~k_i.-'h~~n»~ .. ,.;:,:." ,," ,,_ ",1. II ,',' .'


., - t' ," ".]
.. '
.' '
,,", ,',. •• "
1_'

_,,"~II I
• q

-.
•. "

I.""
• • • • • • • •
-,.J.

" "0 ' T,···


It

" - , , '
: '
r:
,).

'·',.'·f.' 'I' ..._ l , .t':;'_ ~. ,." 1""

:'.. ·1'R _~ .,;~ ~,,', " .. " "0 " ,;' .,:! f':'. .: T~~, ..
\ '," ';l~' ."" .• 0', :.11 . 0'3' .r,_" h 0 ',," ;""; i

"
·1
.J.
ls.l.t~qr.e
-
__ .U1s ~..
.1""
,I.~t~ .. ,To's . .\. "I Bu. 1;'S.!lI
"
••
'_I ""'," ".
.. '. ,_,. ", I' 't ", I.'
t' , " ..... -,. . ' ..' :.; ' t . ... ,.:' .. :~,

: • , I' .

.. !~~. ~ ' " ~.i. "'\' . . ", .., ,.', .:.


,' ,': ,, "" .. ,.. ,. <:' ·"P.'C~U~'.::Ul1': '",
" ', ·1,..·.·.·,')··,,',·'·;,·. '\ ."",;. "".1. ',il,:',:,,"
" " :":~:;':t l. , ·' .... ,.1 ••.. :.1 "; ,'. _. ~":._.J,\o.. TU ' . •~.' ..... , .. ~?

GDTR ' ...." , ' . ' .. .,.,"<' . •... ' , . . .


,'~ .... , ' , ' '-.~, .
. ... '
.'._--' • . ','"
.' "'" ' ' ' .,

.. " , l ;-,~ , 1-."':"1' ,,,,,',:, ,,','''...,. ' .2? ,J·


::,;:, ;",;~.
-. ----- , --""';"" ';', , .,: ". -I' ' .. :",
• "/ '.' ;< • • : . \'.:: "'\"~"! '" ., ;: '<.:'1' :<' :~~;.
,.,~
lDTR
Jt', 03\ , .. r,
,, " i. '::::'~-
j"~
; 0
"
: ,:,,1--, "" [ . ,.••••. rut .. ,.. ., .
'.". -, ,t··" ",
., ,n!.'(·."~\~\'~ltt..
,,.
,
,
.: .. ". ,/. "\"'"
,~

"
,. , ' ~

" , ," . , .,
' ~. ", .. ~ !' \ ,~, :' <•• ! ." '.. ". ,,', -"'. :·.~,}'\I' .
·.""·\',,'~~i)·
,
'. ,... '".'
.', .. , • . . . •
, , ' • • . • . . .' "
' •• ,.'
'I' .. ,
.... ~. . . . . ' ..
..' .I.n-;r. '.,
!'...Yi.f·/ ',.'
.,
~.' "",'
" ...•) ,•..; ~
'-:"J!.:'1"~'

,:. " , - -..... 1. ' 'J; ::. . 1" ~.: '." .,' •. ,,'. : ~ ,.. . n ..- .. :': ~::c .;, '. ~ :.,: ;:.~ .. . .'! ~l;;.:r ":~j':il

. .- ' ,
'," - ,
.,.
, -"
., " . . ~""."
,·,,·.,,·,,1 t·.
,'., """'-'_,' _. ~ . .
,", " ' " ",
'j
'' .. ,.
' . " .. ,,'
" " " .• ':~~;
.·"~h ~"l~ J:....
'" , '
., ..... :,-' . . . ." .,
'. -"j'
"" '.' ". ."" ~
,- ,. ,'._, ""J,~.
,
\~
.'t.:;:~,
'.' " , ' .. '" .',',,' , ...... ',', ... ,' ., •• , ."".' ' ' ' ' ...' ,', t
• " ,'-. ' ..• '·'1 . '., '1" I; .. ' '. . ' " "'" ,' •. ' ,."._;" ...
':r<: I~ura 9.6 :1.a fi~~ ~~~~~~ le, st'ru~t1l!"~ e}a~'E:l)~ .cli'. ?J-emorra. che" !ntefven~b~? ·n~.n~ ;g~~ "~\ :
tlOne della. memof:la,vu'tliile'e della·pro!euone.. 1 regtS&fl' GDTR'ell)(f,Rtsano 'ael·ii'escnttort·; . ~::,tt.
mentre TR e LDTR sano dei selettori. Per i descrittori sono riportati~sblod'campi:"Base :e: :-t9i.
Limi~~; ?v.~~ame.~t~so.~Q pr~sen,ti ~~ gli ,,aJ~~~, ~p~~ ..;l des~ritpo~i eli, r$.~. e ~i ~,J?.~ 4,E7vODO , ',-.':i
nec.e~arl.a.zp.~n.tli!trRvar,s~.w
, . "'. ',,' ,
~.l?~:.,.
,
.. '.,. \
't ,
,
,
' ..
••. ' , . .
'
• .
. , "".t,
, ., ". '",
,I •..
" .~i,~; ",.. ,;:':'~'.:~~i
''''-'J1."--.,.,,.~:-<
..... ,. '~*~ ,.,,'
.. ,
"
'''''.,.
';. l. ",' •
"".:
.'. '.',
"
'..
..,
' ! , . . . ., ..'.,' ,-.:,' " ..i: ';','.-
).' 1
""""~""."',.:r.!?i~
9 .4.1' -'II- 's'egni~nto eli stato"ai'uil-'l~~~~'~~~?-' ,'~ ,'. :.' . ;~:.,. I:.~,:t, ':. ~::. :~~':~!.~:~~;j>·:Y~:
, " , f , ; 1ii
n formato del TSS e illustrato Flgura9.7. ,',,~.J ill
! .campi d~l l'SS P9~~nq esseJ;'e cl~~i~c~ti ~p. .due cat~ orie.;::1:ampLd.in~ici A:
.. ' t t'" 1 ." ,." 'w' . ...' .). ,. .k ..,., . . . t" . "~:J" t't' , ..,,".:. 0._'[;1"' " "
e. c.~P! ~ a l.~. . . C~PI"1l n~9 ~Y~~gonp, ~,.g&.o~na 1 a.~9g~1l ?-I~a ~v~lqqe··t.,p'1~l, .. ~~~'
comprendono .' . :", ',',," .:.., ·'<i":;.!.
_.... . ~:,,-~;J
liLr-
. ".. ~ ,.. " . . ....." :. :'.. .:-,' .:." ;\. ~," .:··.i,. .. , , \ iH: '., " . ~ . . i. '~<:.~:" ,.. ,';~~i
~ . i~~~~=~~~z1~~~~p·· r~1~'pBt~~:~Op:- :;1f~t"~~~~r~~~~~;~~'~~ ~~~::~?p~M~~t$ '.:'~~~
.• '- _. ',' . ,,~ ,'. ...,.'.. 1 .' . . . .,. -, . . ~.<:;"
uscente)j ',' ;; .. ', " , ,: .. , .. ," ,,~~"';~'" '~11~'
, ,.
•'
,.',
I
--
n_ ttl. •
La. proteziQne.
, , " I
409· -

:; 1_
,31
Indirizzo
1,5 0.. ,

, 64,
1-
LOT del '60 "
GS 5C -,
i" ",-
'
-lis
,'s§
FS
" -'. ,.
,
. , ' ..
58
5'.
sa', -
CS' , ,
"
' ,
4C
48
,EDl, "., .... « \
ESI ..
I 'ESP '" - ... 3C
40
-
.. .. .... ,- , ESP, .3 ........ L •
"13S",,'" I
, EBX" -,
~:: 4.. ": '1
, EDX ",~ ;.~9,·: .; "
I
-
... 'J
, 2C '
~" ...] '28 ... '

..
2.
20 I-
. ri· ":.d ... , "",',t'iC",
:, '" -, . , SS2 ,,,. .., .'! " ...
16
i4 '
...,'" .":' -
. ,-' ;o.;:"~ .
"
:. t'". - , -
.
~' • . ' . sso'"
""". ",,-" ...'". '._,J.
""l'il"'"
,'. ',.'

·,ii J: , .~ ..,
.~' iWlj,~W~:IJ;~r'J.. . . .
;. ~t~?;;h'Ft~Jra' '9."" S~kinenti~j t$S\li ~ri. phfcess9: ':L~ di~e·~~o~e·.c~iniri.~) ~ ;4i." 104 ~Ytli:'~·<l\iesti·
-~ ~~~/~,;·.l04 byte SODa gestiti ·'autdmati-cai::O.ehte' dalla ~logi"ca delHi cPu:'n 'sigillficato 'del'~pr,'deS-'
~r ~~,~~~":ll.~'~;::critto Qve necessaria nel testo, traspare dallora Dome. Naturalmente, un sistema. operativo -
.:' >;,~~,fft~~;<-:-- pub usare un TSS pin. esteso, aggiungendo a suo piacimento ulteriore spazio di memoria,
..
·
'~\!xr.'j\:"1"
. ~,,~'titiPi(f";:
.I~}l;:rn'~·
''4l':~\~"-i'';''
-,
;
'.,,~- j';. ':A,"
"
"~"'~"
.;
l"f\.>
" .. ,"
.'~'
~
;.J."
• '"
-
~~'I'~J~~~'·. ·,· •
Ie 'limmagini" dei r~~tri di CPU .(locazioni d;illo scostamento 20h allo scosta".
~ . . C.\~~{.~.."
.~~~l"\"·
",'I.".'"',
mento5Ch),
::'-'.. .' . . "',
• .', " : ' , ' . -.' " ' ; •. , .. .... <'" ,,:';~' ... -, ,'. ;,.,J -
. ""~~I':1':.-,',,,';
1'l,~liit.;·"·".·,, ' .
'~l~¥:f"(':"""-"":'" ." , " ".,.. ' ". . . '"
,~~ ~1:,II:)'i~.;'!:L,:1'Cafu:Piista'ti"d.vengOnolettilm4.1;J:()nmOdifiCati}·da;I:.lalcigic,adi'CPU.·Essl·compren-
t

," . ~W~~'';:'(dono: I . ".; ri, :'.,;:~."" , " . : ',,; :, ,,' " " .: ,.' :~:, ..
1-
;;' .~~~/ .. ! -
.: ~1U:";~;\~~\-~j.'~.~'il"·Selettore Idella- LDT-:del pro'CeSSO" ;. ~'.' :' ',' ',,'1 . . . ' :' ' . ' - •. " ',. ;.';~
)
i~~ :~'~f;}~:;'\:, '. , .
i" "r,:]iil!";:!:\,:/
<.~ I 1i·'!-\;·"
I

PDBR ;(E.age D~rec:tory. Bas.e. Reg1Ster.) del processo·{I'l1DIIlagme:.del:regIstro


• IteR3)
• " ,

I-
" ",'... .'
, ','_.;';<.
,!'t, .I
~ •.•~i!:~;::, ,~,.. , .." ...,;"~.,~.-,,..., '·"~-'~~'~··"L!'''''·'''.;:·i.''./,'':'
: 'k' "i~.:t;i;i:' .~.l~, ~nd~r~~zi ,IO~,c~ dello st~~. p'er i li~~lli d.i p~~~~~~' ~~ ~. e 2 .~~fr. . ~:~~.;, .:.; .
i, ;i~~~\'," • II bit T cbe" cillando attivo, fa,51 che, II processc"e provoChi uria ecce~i9pe',(l~,Jeb~~, )-
;~Ji' 'J)'..!, quando aVVlene 1a commutazlOne dl proceSSOj
r a4X,~' ': . ~., ... ,',
'
-J .:.. Iii.'".··. ,r;~;.-',
,...
,1" . ;" , • L mdtnzzo di base per la
;,.t~~~~~(""'::~...
.
1<,. ", '.'
.,
.,.
.
. . . _ . .'
...."., . "
mappa
del bIts autonzzazlOne di l/O!;l ...... .:".':..
.
,1l11li.-,L"':":· '"
, . . , .. . ., ' , . ..,. .,.' " .' ":.
. "." " ..

, 1
1 ~i~~;':C;-il An&ldE{r)~~'ra~loni "~li" i~irei38o ?il$c\ta 6on:~' 8bggett~ 'a, dimtioitl ~ di i>rOt~:iid~~.' til parl1t'O'la.re, &
..
~'.' ~;~ ~ '~i~~~~~~~~~C:,~~~;e~~!:S~~;r~f~~~:~~, :rs~~~oC~~t;~I~t~=~~8~11;~:;;~Om:i ~:~:::i:'~:~jo~e I~PL~
".~~
'1
,
ij,l .,~.;:Rlmandlamoalmanuahlntetperlarelatlva.'p'roblematl(:a.~
',. . ~(.:,':.'1,;':". .-
,.,,"""
I, '\ ~'., '"," ".:" .....
I..
Capitolo 9
- 410 f
,
'
1
\ Essendo i1 vettore eli stato un segmento, esso viene •'",
1l~
I
.•
- descrittore eli segmento il cui formato e in Figura9.8. ~~"
o "
'

'
., .>
..,- ~.
1 63 4-7 39 Ie. 0
:%~
t~"

- j BASE I IlilTI ARB I B~SE (23,0) I LIMITE I(15-0) I '(~"


.;~
•,''
1"
'!w
(",
l-a
1~~
- \ 'I
I"""l
G D IY
A
P ..
DPL
, 0
TYPE .",'
",

- ° 11018, 1
'~"
i',\
,;;
"
,

Figura ~.8 n descrittore di TSS. In questa figura i campi sona riportati neUe ~atte posizioni
I'
\ che essi hanna nella realta,. n byte piu significativo contiene gli otto bit piu significativi '¥

deUa BASE. I quattro bit piu significativi di LIMITE sono presi da un byte usato anche per ,~
tt
i\"~- - 'I j';
','! ,I' , ~
- contenere G, D e AVL. Del bit B (Bu3Y) del campo TYPE si parla piu avanti. 'r· ..... ·. '
'I

....."i;'
, .~~;l.~
'M
'i'$
'.
'. .',,~;~ "
i"
\ Quando un processo passa dallo stato eli sospeso a queUo di es€Cuzione, la logica
,~.".-
',~{:t~, ~
'1'.

.. della macchina esegue i necessari controlli di protezione di cui si parla in dettaglio piu ,~,'!~ \~
~~~i e, se l'~per~ione richiesta: e valida, viene acc?Dsentito l'accesso al TSS il cui ",:,:ri~:~', ~
mdinzzo e cancato ill TR (0 meglio , nella cache assoCJata a TR). Lo stato del processo ;'>l~t" ~
\ ~be viene, ~osp~o (e cioe c.opia di tutti i registri di CPU piu l~ informazioni aggiuntive :}1~~ L
• illustrate m FIgura 9.8) Vlene salvato nel suo stack, mentre 11 contenuto del TSS del ,::f,~i£l, ~
procesao che viene messo in esecuzione viene caricato nei registri di CPU. Si tratta, in '<~}.'ii"~':' :
·I sostanza, eli un v~o e proprio cambiamento di contesto eseguito esclusivamente pet
via hardware al flne di rendere mjnimo il tempo di commutazione.
....f·~~;t· ," ,
"C:~~~~11 ~
"~','1'III· '
• .
,.1;.1;,·'~oe' ~

\
9.4.2 Commutazione fra processi "
Jjl
"~,,i';

,'.~,~"~r.
"':'1-~~
~;:;\
:~'<1';'WJi-
1
:

La commutazione fra processi si ha per uno dei seguenti motivi:


,.,'lti'
-.'~ ~
7"1~ ".•
• .
;.""~_
..... ~~I";,
".",
·I • it processo conente esegue un'istruzione di JMP 0 CALL12 a un indirizze che ha , •'-:1;{.~:
come componente selettore i1 selettore di un TSSj
,.",~.
• ""'.¢. ,
;""-;;
~_" "¥.!".
.":'~

"
''-'.,,1(,"
.. ,

• il processo conente esegue un'istruzione di JMP 0 CALL a una porta eli processo; . :,/f "": 'tX/" .

I • viene servita un'interruzione


. the sfrutta
. una porta di processe in InTj
'.,',.~.r ;
·"",..
· '>''':''1"1
' '
.: ';'t.\,".\. ,
'.'i
1li..
·..'.~~~~ l'l
"
• il proceaso conente esegue l'istruzione lRET quando il flag NT e asserito. I

'~{,j,41t
",>,!J.,9'1'~
\
Pi'll precisamente, Ie modalita in base alle quali si ba la commutazione fra processi '~';'
..>:,,'%1
, ..,.
,

sono Ie seguenti. ~.,~,
".";1.
·~ - \f
.-:~t',j r
:,.- ,~'·.tt
1
1. Esecuzione deW~truzione JMP ·:':i'.t":;'i
.-; {\~Ft
\ Un JMP faT' provoca una commutazione fra processi se l'indirizzo eli salto prevede, '~"")oI(\
"~\''''"
: -""I~'~
come componente selettore, il selettore di un segmento TSS 0 il selettore di una """"'>"1;
·u~·
,·";'.'....,"i1B{'
.. I'
.' ,S',
. ,.~'i'.
UOvviamente deve tratt.arsi di un salto 0 di una chiarpata far per a,vere una modifica del8elettore. ~~,ll.~
\ "I~\i<
,..,~
"",ll .
:':"."\?:
";~{-
;,.)J
:,~:?!
· ,.
\
'I'~ '

~l, .
:~~;" La protezlooe 411
r«li","7e:
f1h"", ' ,
,~"I'" ,
'ij;l."'" '
,Pll) ...
.r'ifi." ,
1\\1' . ..
I"" 7' :',
,'~!~'"
~';,,'" "A porta di processo, La commutazione consiste nel sospendere il processo attivo
•i:e .
'<tC~~.
"'_. . e
e nell'attivare il processo il cui TSS individuato tramite il selettore contenuto
""""
'!':~1)'~-'..';
..'.'.", nell'istruzione stessa, ovvere nella porta eli processo attraverso cui si attua il salto.
>:t1M ,,'
. ~,
'-...
"":'A';";
Ovviamente la componente scostamento dell'indirizzo eli saIto viene ignorata,
~.:-
" ,;0;-,. '
., in quanta lo scostamento corrisponde al valore eli ElP contenuto nel TSS del
~-'\"<.;
'''F''- ~: ,',
"'-"'''''0' processo entrante.
w."'" .
,>li!... :~'
a9Wt;, '"
~1:~~:,' - 2. Esecuzione dell'istruzione CALL
IW'~l'"
l';• .j."';/,"·,, -, Una istruzione CALL faT' provoca una commutazione fra processi se l'indirizzo
'-'l.: _. ..
,"':.'!:"..
\;:,,'i" ;;, .... "
, ,P, ,'.' di salto prevede, come componente selettore, il selettore di un segmento TSS
;U"".'l "
";;;;i~ ,,"
1l.(-""~".
. .
(per Ie ragioni dette sopra, anche in questa caso, la componente scostamento
'f.j.'·~~" . viene ignorata) 0 il selettore di una porta di processo. La commutazione viene
ir~"':'
' .,,,1,,;- •
"
;t(.~I"" ~ effettuata in modo del tutto analogo al caso del JMP, con l'aggiunta delle seguenti
~"' ....
""'"
I"J":Z~
'~;f:'

"
~"."
:.,! .._.,
l·.
. "", " -
~lif/:i.,'· -
due azioni finali:

.,:,"',-"" ','"
salvataggio del selettore del segmento TSS del processo uscente nel segmento
~~~*'~f," TSS del processo entrante: la locazione impieg~ta per il salvataggio e quella
~~~>~;:,:" di scostarnento 00 (Figura 9.7);
~~;{~~'
~~~~.~. messa a 1 del bit NT (Nested Task) del registro EFLAGS del processo
L~lJ:'~>_ entrante.
~~ :~r.'~;\
:"r;~~~:::;.' In questa caso il processo uscente e it processo entrante sono anche detti, rispet-
,,~?r~>.',,' tivamente, processo chiamante e proce.sso chiamato. n processo chiamato tiene
~l':;,~;.- traccia del processo chiamante nel proprio segmento TSSj in tal modo il proces-
'~~'\"
'~~'''''
so chiamante PUQ essere riattivato tramite una istruzione a zero operandi, quale
~ .' • .
d', ':'
'1-:/."
"I";, ,.,r..·,,' l'istruzione lRET .
~~I""~"""
:1-\.~. ~'o!',~,
,I~", :,~:;,' ..
"'~ ,;n'·.
~ry~-::,,~\:,
3. Esecuzione della istruzione IRET I3
'<.". :'~',~'" "
•,"'J"~""" ','
"'. ',~;.~ ";': .Una istruzione lRET provoca una commutazione fra processi se il bit NT del
!""",e· ",'"
"",,,,,...""'''''' registro EFLAGS vale 1; in tale commutazione, il processo uscente e queUo at-
"~".,
tualmente attivo e il processo entrante e queUo il cui segmento TSS ha il selettore
~. "~'.\'
(! ~l1,:I",
rklo$<,,;>;"
':".l,l;"'~ i ' , memorizzato nel segmento TSS del processo uscente (locazione di scostamento
" •Iti::'~,",""'-'
'J" "
'"
,i ''\'"''''' ", , '
OOb). n bit NT viene ozzerato prima cbe il contenuto del registro EFLAGS venga
.",t:!tf ...;"
:i~4:~~:,;' memorizzato nel segmento TSS del processo uscente.
;J~.,.;o'":",,,,!_
.. ,
,''''''
l.. . ,". ,.
.~,
: "'I :~.,~:'
,.' 't';i"!'" '~
,+~ .•";}7· , '
4. Accettazione di una richiesta di interruzione
"~~~~" n meccanismo di interruzione (e di ezception) provoca una commutazione fra
~>1JE~? processi se l'elemento della tabella IDT, corrispondente al tipo di interruzione,
~.'.l\\'..!t\?,h
•.,' .
,l'lll",.. ,
.
, , .;,,-:.~

1r r:ifv.s .'.,
fi~»~~~"
., .
"~'"
"J:~~!:' ,
13n meccani8ffio'di commutazione fra processi agisce anche sul bit B busy contenut.o nel byte ARB
dei descrittori di TSS (Figura 9.8). Per poter essere attivato, un proeesso deve essere libero (bit B
tn:p"·1Y;<:~'
ilt,.\~\;t,! ~' .
tf~,'!-;
a 0). Nel momento in cui un processo viene attivato, esso viene anche marcato come occupato (hit
\'l'.~,,:r e~ ..
B a 1). Un processo atti,vo (e quindi occupato) rimane occupat.o se viene sospeso dall'esecuzione
" '~",~.
~' -'<i;;{ t'
- della istruzione CA.LL 0 dall'accettazione di un'int.erruzione. Un processo attivo viena invece marcato
li'm','I' ,'-,
":.1/(."":<' come libero quando viene sospeso a seguito dell'esecuzione dell'istruzione JKP 0 deU'istruzione IRET.
'·." ....,
'~"I"(~""
',,,.,,,,.
~._. 4""
.I'''',,''.~

.it..(11"i·~f·':
. II bit B dice se il processo attivo e st.ato attivato da una CALL 0 da una interruzione, In tal caso il
tit-orno al chiamante deve averai ttamite l'istruzione IRET. L'uso di altra istruzione per it ritorno a1
~~,~:r;f;::~'
,ry "";'-',
chiamante 0 al processo int.errotto vieae riconosciuto dalla. logica di CPU e provoca. un'eccezione.
. "'" t,ll"',,
",I< ,'!I'"
• '~'f!:
-" "
!;: ,.
' "
'T'
,1
.. . I
412 Capit'olo-9 .'. "',,_
.... . . ':\,''-
-.. :~'l
",,'«,\.,
~",;;,~,-
"'>;(
e una'porta::di· processo~4. ·:La commutazione e effettuata-in~:accordo alIa st .:~:".,
'sequenza di azioni previste .per-l'ls·truzione .CALI:.. ~ ;' :~ :.l eSSa :'::4i.~·i,·
:'" , .: ',. . :.... "'. " ,,' :L~l!~t
.,. ~'.>... ".-', ~f • • . . ~);f..
9 5' t . ·t· 1":'"' .
'. - ':'.' . ·'t··;' . . ../i1',
· a pro eZlOne. err erl genera I ,":. ,::',:,::!~i
'. :)'t.~
Obiettivo diehiarato dei progettisti ". stato quello d',permettere.l" costruzione di sis-?fM,
t~~,.op.~f;a~lVl:mtJ}~1:~as~n~~~p~G~ .Q1. l1,i~lClf~. f p:r?t.~~er~, i p~O~~~\~H. ,~~ente tra- ~.~:~~.,
. ~l.lor?, .e .~~.~role$g~re j.l sls?,~T-a o~~~~~fY9 sje~~q ~~ }6~e$'st P.0D: ~~~ci:r;f~za4 .. ~iste- :\~~J.f n
~.~ W9~ezlOI.l~ .~Q?~r~~a:.l U~? d~~~~),:~~rq~lqrJ I?~lVII~gi~te" .d~P.~ Jst!1JziQiii .di I/O, ,~~:&~,
4t.
t.~~~75~, ~ .:s.~gtp~ntJ .e..aJ. d,~£!~~t?~~ ~~~t<?,., I 1.~~cMl~~i4Lgij~t:qteZ~p~,e .sono >':f.,~~
41.
r~S9~~j.l.cWlll.aS9p'frpn.tl, tt a. ~ .lil;;~Ilt ,~h .~~~';'ll~g~~... ~~~~et~q.~,q~·¥,~iS~-r~r~· !a.';pro.t.~zione::·Dif~
cont~o. s.cntture. su segment! op,Pu:e contra l'esecuzlOne di codi~ .r;op. a.utqri~za.ti. I'::.j,~!~r,
relatlvl controUi vengono complUtl per ogni istruzione eseguita dana' CPU e im ie- '\";:'.
gano circa un ciclo e mezzo di clork' s;ccome). tt t' P .: ~;,t;.~-~
peru sono,a ua 1 eoncorrentemente'
aJ,~~~:6~~i~~'e ·~.~?~~i.~2;i';~9~·~i",P~ ~;E,~~~::p.~~a4#~f~~~ ~~n~"pfe;f~~ioni. "Ogni '.:~',~~i
• ,. "'0' "'" . . - ' ""

condiZlone ill anomalia rilevata genera: urt'eccezione' "'" ' ". '" ". , '" '. . _':'J'~_,
' " . ' ; . ~'. :'.
L a protezlOne Sl esphca attraverso 1 due' seguent'j"meccariisnu::' ,: ,'. "".-. '., -.~"."
'>,f~
,>; .' wt '., ~'.~., ..,:, '),0, .'.. ' ,. :t.. '.
",,)• "ve'r'l'fie''ai' del' t'IpOUl'aCceB;;ovaJsmgol"segmentl' ;, "
,".' :.."...:. .'.·~~11~:
~:tr
I - ~ J'.
, .' ., ,'1"
b), ~estion~ dei livelli di privilegio; '.' .: . '~:'}Jl1
e)"isolam,mto de'. ~r~Cei1~i.f: ", '., ."" .."'. . .. '." .', " .. ., '''''. . I :;~~"
- ~;'. L~. ~~1;lli~~: ctei t.i~;~i. ·M~~~~~.,~· ~~~~~ti si b~~'~~hl~ ~~~~~iori~'~ ~~g~i seg~ 4;~~,,~
m~to. iii al!3~ a~trl~,~th...n,p);Qce~orej .pr:~a ill .acc;:eder.e ,~,l).D ..s~gp:lentQj.,v.~ritlca la '.'~f¥!
congruenza tra il tlPO dl accesso e gli attnbutl del segmento stesso·-e.genQr~ Il,eccezione >.dt-~
n.13incasodinonliceitadeIFaccesso. I· .H't.....,''''·~ifR~
I livelli di privilegio hanno 10 scopo di proteggere.PiI1,tegti-ti(dei segtiIenti'confe- '-:_~~%i'
nent\ 'progralIllI\i e.<lati1i si,",ema",i~p~t,t(\.~Ult,uso i!J1PtOp"i9,(per~cr9r~,o Q~qlolo) :'~i>
d~ P~~.·?el p;~o.g~~All; lJte~~~. LA.,P~p~~Qt.le .cqI3.s~~te: n~! .~u4diyideJ:e .1arJn.efIloria ·-:'';t,~i .
Y~,rtu~~ .ct-i. 9.gnr' PIlOC,e~p, iI!J~WUi ,d~ p;i~i)~g:iQ.,,~eU~~~,~~;~,~.c:i-i~~~~~ijzi~~t~;~~:i!vello .: .)))~:ii
~ ·~~~vAl.~~Q ~l. ~~,?c~~~'.~.ttn.,;.o. e .~el. p.!,)e~~<?~~ m_e.cc~~ff1:1. Wpt:-9t~ione. contJ;o un ..{.~' .
h9~t.9 ~c~~o; ~ ~ell)"~n~i:mI19c.ati,.~,.unm~() livello.di. privlJegioqua,ido,U'iirqcesso,:\:,
opera a un hvello dl. pnvllegt..o;. dl\~et;s,q~,: ;rnplt:~€il ~c2-l1~,.i~~r1;1z~oni1. ~tt~,p'.r;iv.il~giate) ,>:~::~t
possono essere ese~te solo ~e 11. p.r?cesso opera. ~ un ~eguato l~vello di privilegio. ,:"\:."#
,. I due prec~dentl me.ccams~sllDtegtano·,e'sl~completano.-a.~Y1tenda:j,.p.e"rmet:tendo ';~'
~ l~ol.~.ent,9'ld,~~,p.rq~Sl,S~~~t.ID,~~~~ 9a ~pe~r.*::~ ~'~~l?,lqlPWf~.S,9~pi.aF~~dere :.;:i
1~~o,~tr911!=l:~jU1;l~n,t.e.~ ..q~ ~a;~!?g~,.P?r.r..~ . aJ :s~~e~l. 'J.;S.~'9~gIL~I,~rA.pro<;~ssi..,:J,.:( _ '~j~~
. . ',;:l'l
9.5,1 Veri.fka d~Uipod;.a.c.ce~sp,a.; segmElllti, , ."';':;:
'" " ,,',.' " l : I ':';~'~
I,"~ ': ,.; ,.". '" :1.,." ,.;.:' ":' •. " ~,'" ." ,J. .. ,__ , .. l, .....
:',
t'e~plet3.JpEW.t9.'d~. qU~'~to .t.ipq· .di'. vetific~'I-la,':~onir~eiiz~ t!a1tqper.¥iorie eseg~it~:~' .::.:~
1a natUl'a .dell~0ggetto' su cui'Yiene tentataj, port.a a.~ilevare.·una:8erie -dil,.g8neriche ·~'~l
"'
"~"., : . ' , ,i~
' " , '' ....
, ",."_ . . ;. . '.'. .('.' '. .. '.. ' :. . ,. '.,.. " '", ".' "~.",, '
' . · <
....
"j", .
' ,'. " ,.
•. "' ,'
.-, q . "' '
,,'. '
" . ,,- .
" ..
•••• \ ',.
,...
"
'jio
"->.
,:",
, 14S e J'.eIeniento inclividuato· :jn IDT'e una.· tiona· di intemfziooe: 0 una pOi'1'a di'trappola.-· non"c'l!' ,.' ,l:
comrhuta.-1ione.· .~ ,"-..,".: ., : .,. ," .. , '.' '. "',/", '.. " ~,.: " ...,:>:. '~{V?
",.
. ··~I'
". ~
,',C'.
.;;',';.,
.
,,r ,

.
~~
.,..,
Ii.".' .
.'~.

--' '
h,"
,..
...,1.;;,'.;',
~, :;.,
'..!~"""
La protezlOne

'
413
r
• "'1l.'-
.
..'
S,~~·?~
~;"~' ..
,,~":,

.. .
... !;p;~~/'" violaziom d~ protezwne.
. . . . __ " . .
Tali vlOl~10Dl dete:mmano 1 ec~ezlO~e n.13.
m~:-s~arsl
I ' D r-
/~~~~l'~{di questa eccezione ha Petretto dl far deposltare un codlce ~ .errore \che IDdiVI~Ua
.,~i:i\~I;:···:q'esa.tto tipo di violazione) suJ,lo stack del sottoprogtamma dl mterruzlOne assoclato

;:!'
,:i:i\l,'!-'
(exception handler). In 'tat modo, I'eventuale sistema operativo; identificata']a'""usa,
,ik5puo r
,';s~t-t::.':'.,.
prendere gli opportuni provvedijnenti. . '''. .
Per esemplificare·questo tlPO dl verifiche, COD'Vlene nfarSl a quanta detto III prece-
-
·J~~i~::: denza (Ofr. 9:2,1) circa U signifieato dei bit R' di ARB <;leisegmenti di codice e dei bit I
, ~'I'~r;~~,:. ED e .W per, I ~~gme~~~ .dat~ ~ e. st~ck). Se" per es~mP\Q~ V1e~e ten~ata. una. operazlOn~
f '1~'jX,?(,. di scnttura In un segme~to eli codlce'o ~ op~razJ,o.~e d~ scnttl,ll'a ~ un segmento datI
r
, i~J.th;·~::;che non p.~m.e~~e.lAsfnt;t.~r~~~=o}, Sl genera 1 eccezlone 13..
-
!~~r;;t:.~~:.,. La pnma. venfica sulla h~lta ~ell'acc~o a:Ufl ~~ento. Vlene effettuata quando
~r' .~~~~;:'; 'i~ selettore del segmento ecancato in uno del r,:gIst~ ~~l~~tore del prOC€5sore. Valgono
,-

, :(t~~[;~.;/:'que~~e r~g<?l~i, .. ': . , : ' .' ..


~~t:··~:
','~t;;i :.'
. ., . '.. ... . . . .
.::i re·gt.stn:D8,:ES;-· FS.e· OS sono cancablli escluslvamente con seletton di segment!
. ,"/"""
mt·,",;,~:·,::,::.
d .
dati e i se~e~tl.co ce accessl
di 'bili' " 1
ill ettu.ra,. ,1
(b't R di ARB 1)
a . i. .
I-
,"t'.~,- ;;-;'~'-:'''.
'l':·'·',: 011",'- :U·- ..;..," .: 'O'S ~,., .t.;. b"U ,,' . "j;".: . 't: './' I. ,:1'1. )' tt' ~ . iii,·t :" ~ .:~'tICO· w"':'" ·1\.· .. : '1,
l!' :,
r
I
regIstro ecanca e esc uSlvamen e con see on lsee.~eqlj.l,;.... cel, ,.
~t:(,.:::.. .., ..•.• '. "'; .•. '" ....
.eX ..~;;.:''- • il registro LDTR e caricabile esclusi~ente con selettori di tabelle LDTj
"
"ib~"i·~l!'·,r,.:,
. Il"'~ '~I<,. i
.•
.
""j""" ..
.
. , bU' 1" .. .~ - ill . "TSS" .
1-
1 ~."~~ . :.~~~.~:.;~:'~~~~:.~~:~,~ ..~.~~IC~.~ .. e~ ~~~ ~Sl~.~~~~:.:~:~.·~~~?~·' ;:'~;~~~~:~" :./; ~'.:. '. . ': -
" ~,Iif:i.j.'. ",:•. ~:moltre ,pr~elu?ala,poss!bUlt!l- di ,=~~ ,U sele!tore ,di poJ:t" ),.Il,,\IDO qU'lo1S"'SI
~:, ~~$'; .;:'~J:~el ~~~~t,~~.. seJe~~or,~.~, 'T~., .!:. .':." ....':._" :.,. ;.. I: ..... ~: .l~,.' ',.':.',,: .': .":~.' ,." .',.
". I-I
. !f(~~L.':: :~/.:'Ylte~l.~:~ d~~t:ag~~te:.I~f~r~.~;I.~.~~~~lla 'Vi?l~l~~ ~~.~~2~ <¥.\P~.~~z~~e ~l~,,;,~~~
,~~f;-i. nel ~~.uah fntel.[Int9~J. .' , """ .. l:. . " . , , .

,l.'~~~~i~:~ ._"',:·:d.- ,',,' .. ~~; - .... " . .:" ,r.'~",· ••. , : -;. · .. H ,( .11;,.,. "" I
'.r, ':<~~~:,,;~;.' .~,~; . , '. :., '.' ':. '.',~J';~' ;\ 0":·";' ~,. '..":, . .~,.. ".:. ':' :". .~.:..... ~'''.'', "::_" ..".:i(.•...
> 'lIlt. 9.5.2 Livelli dl prlVlleglO '. .., ,'.: . ',:': '. ':.'. :,.:',., ::, .'"
r
. ~~1~IF.i -
iI ~IW7~i:. ,:,' u; pr~~cipi(ll_ ..di. funzio~~~,nto .~he !feg~la· qqesto: ~cc~mQ,~ pr~tezione:pr~~PPotl~
'II

. \' ~,~t;:~· @e; ·qas~lJ.J;l oggettg) m memQqa· p.Q~~l~da· ;d~.~rltt9re..che·mdica :a·,quale liyello di Ul;l 1-
,,1 ;f'ifi: .
privilegiQ'" situato t'oggetto:stessQ.,J,a,ge,stione del li."ellj,<j.i,privijegi,~,ecos'l,":'quanto
t~i :B-t~;,;~,;,. ~~tri.c~ta, che, per esser~ ~~~~sta 1D:, modo esa~ent~~.~.cI:ie~:rebbe m~~~? ,p~u ~p~1O -
#.'~ ,:"l~ 'f$.,\, (l'l' q,:!a.~~?' he :Vl~~~.;C?:nc~sso neUa:·pa:rte:~~':s~gu~..·.· : .! . ' : I , _. ,.;1. . - _.: ~ ":." :
'~·~p.:t~'t\· ··n ·hvello·d\ pnVllegu; tPL'-' PMt1tlege··Itevel}<~"datoattraverso due bIt. ··{ho per-
~~~:·~~~Y~:, mett~ eli mantene~e qua:ttro ~ive~li ;(8 ~~~!P~. ,?~irn.~91;.~g~~t!~ ,c.o~.j,,~~e,r.i ~a- ;gi
~'i' ,~~~(~,{" tU:~l O~ I, ~ e 3, In ordme dl pnvllel?o de:re~cente (~n~~ro maggl~re ~ornsponde -
l£t '$!~'Y pnvl1eglO rruno~e15)., L<J seh~ma degli an~1ll.!:ti,p~ot~lone~,ji1'7'~ra\o,lI1J;,!gtIi;a~,9.. I
:!:' •~~ti.:: .. 13 lIvelli ~l p.rlVlI~gl? ~lU elevatl sono tl~)lc.~ente assegnatl ~ ~gment~ co~t~ner:­
~~~~::::~~~3r;'::', tl.! programm,l ~ 1 dati dl .sIstema (se~mentt dt ~~stema), m~~tre illivello. di pn;.negt.~
r
,hr~~;;iNi~k' pm basso e tlplqat.!1e.nte: ;asSl'gqato,,,, seg:Q>~ntl'~~"'te~enti:~,pr~!,!,'W'm.' ,prl'<!ioP9s,ll
~~~i~~ ·d~t· dagh utentl (.H:gment~ d, u~ent~) ..In partlcolare, II livello di pn~leglo pm elevato in I
' .
l:'i.~~',
," "iii '.
o~: "~~'"
. .
· .. :Ti,,~; J. .. ' .
..... , ' ".' , ;'" •• "
.' .. ' II..
" . ... , . . . •
.•. '." ' . •,..
" . ,. . . , ._I......,
'' .
r
-""~""
.H,!~r .. ,,,\ .. . . . .. ., .
,~:~r~ :~~t/;, " , HP.~~191~q ~b.e t~,~JP~fic~.~ fC?nt~.4~_~.op.- P9c~~.cont~~I.q,I4 ~live!1Q Up.gt1H!ttco. ~~l se~l~Ot ne!
:~i;ll';l '~,)j~:; conrrontare i tiveur di" privllegib; farenio "riJerimento'- -pe)'" quantei posSibiTe ..; al'nUmero' the 'cOdifica
?:f:~ :~~;~<':: iI' live~lo",~~ 'o.gnl caso~~~ Hvello ~i'di~e piu (~elio)' pri~leKiat'~ di uri a.t~to :8e' ~..a.w ~oorn9Ponde un
i~~~··4~"'"
'
.
numetopltL.plccolo'(plU.'grande):.:."'·; co'
;ii i,'~"•.",I,n,'
'.~ "\' ,
'. '" ...._.. . ."'." ]-
414 Capitola 9

- \ '"
~~1k
iJ'!
·• .!,~~!
's'"
"~"!i!

~
":"'~~'
).'

\ Chiamale al sistem ."


"-'SfI"
· '~,
1"/
""'.' "" 1
'i'.,~~ .
-\~ff1i,
:... "l
..,.......eervizi di sistema ..,/[[.;a;:
"'I,c
,.':,.~:
" , 1,:••,.
- \ ....-~Eslensiani del S.O. . , ;.,.i''''~
l'
.:' 'i

'
'-:'\"'~
·
"m' ,
- Programmi utenle ·
.:<-:~. :!Z
)'.-r.'
""1 .,.
o .:;.~ ~
"'::~~
-\ ..
W~,
:;:;ol~'

~ .>~4
- :;-...-.
3
, 7 I
.
Interfacce software di
sepa~aZlOne tra anelh
. ,,""~
.:~:?~ti
- \ I •

Figura 9.9 Anelli eli proteziooe. L'anello 0 e il piu privilegiato e quind;i piu protetto, Panella -.·~;1
"1~""~1;
_~~ *i~:

3 il meno privilegiato. .; ~·,t,~.l


... ~
.: .;;."
., "...:~
',:.';' '":
- \ assoluto, e (dovrebbe essere) assegnato ai segmenti di sistema contenenti i programmi ,~,:~~~~~f~
e i dati piu critici (doe il nucleo del sistema), mentre i livelli intermedi sono assegnati ... ;N~

ai segmenti contenenti i sottoprogrammj di servizio messi a disposizione dall'utente !?,4~
- I (tipicamente per effettuare Ie operazioni di 1/0) e Ie eventuali personalizzazioni dei';~fi;,
progratpmj applicativi. E ovviamente possibile utilizzare due soli livelli di privilegio, :'}~f~
uno per i segmenti di sistema (livello 0) e l'altro per i segmenti di utente (livello. \~~"!t:r! .
- 3), come a.ccade in molti altri processod. Per quanta concerne it processo attivo , ;.~,:;~
- \
e opportuno che esso, a ogni istante , operi al liveUo eli privilegio minimo passibile , ,.1,·
compatibilmente con Ie operaziani che cleve effettuare.

n cantralla della protezione si attua:
a) ogni volta in cui viene indirizzato un dato in un segmento diverso da quelli
• \ correntemente individuati dai (selettori nei) registri di segmento. In alt~e parole
quando il selettore di un descrittore vlene caricato in un registro di segmentoj
- . -
• I b) quando un 'istruzione di salto 0 di chiamata di sottoprogramma portano fuori da!
segmento corrente, determinanda il caricamento di un nuavo selettore in CSj
c) in presenza di una commutazione tra processij

d) in seguito alla risposta a una interruzione.


• \

• 9.5.3 Criteri general; per il controllo dei privilegi


\ I criteri generali per la protezione attraverso i livelli di privilegio sana i seguenti due.

• Criteria A - Protezione dei dati' I dati contenuti in un segmento avente HveHo di


privilegio P possono essere letti/scritti solo cia processi che eseguono a un HveHo
• \ rI ~ PI ovvero a un livello piu privilegiato 0 parimenti privilegio dei dati stessi.

I
La protez.ione 415

Questo criterio garantisce che i dati possono essere rnanipolati solo cia progra.mmi
che sana, per 10 meno, aHo stesso livello di privilegio dei dati stessi. n criterio A
e schematizzato in Figura9.10.
Una procedura, ovvero

essere raggiunta solo da un processo che esegue a un livello pi > p, ovvero a un


livello meno 0 parimenti privilegiato. Poiche per assunzione i programmi degli
anelli esterni sono meno affidabili di quelli interni, questo criterio stab~lisce che un
programma affidabile non pub eseguire una procedura meno affidabile. n criterio
Be schematizzato in Figura9.11.

.4
<'
.-
.~
,0

<
b'
~o
i:-
.:/

Legendll:
- - Accesso autcrizze.to o Segrnento dati
~ Accesso proibito
1£1
Segrnento dl oodice
~ eseiuibUe

La procedura E,

.9.5.4 I livelli controllati

Prima di procedere neUa spiegazione cii come i due criteri sapra riportati trovino
attuazione, e necessaria definire in modo preciso quali sono , e da cosa derivano, i
livelli controllati dai meccanismi di protezione.

CPL (Current Privilege Leven. In ogni istante di tempo, nella macchina c'e un
processo in esecuzione. D livello di privilegio del processo in esecuzione costituisce
illivello qi privilegio corrente. In pratica CPL e data dai due bit meno significativi
del registro CS~
416 Ca.pitolo ,9
l

.
i

....' .
!f,
..:.:'.1..'--, I.
..
,,, , :.

.". , .. ,. ,;
,,.. ,.. o
~:., '
.,: ," .. ..
"o

. IT, " ..- ,,'·P.,~.


.,.,
"'tJ~
..~
'
<'
.f:i ,

t" ,
.' . .,

"'.'
:,

...
ft,.

, .., .,.'
.
¥ . : " !"
'. " .
.' ,) ',
,~\ ," ' ....' ~ ..j ,. '" .• .,. . . ., 'i' l
; ,1,.
',.~"

.. (
,~,!.~,.,

., ..
,
... "
' ."-•
,. ,,)~~, '~'
r,' .,:. .,
.; . '; "
.
!.j.. , .
,:.~,
• ..:',.~,,:tJ
E
, ,! • .. .,~;r,~.
,~,~,,:~
....... :.; ,.
~
I

.
:':f~~k'
..... ",....
.~c.

~g::e~"sl'iOaUlorl.'Z'Zalo !E1S@gm@nlodieodlee '~)r~


~ Acc@sso prolbito L::J eseguibil@ . ';~~~'~ ,
- - Accesso aulorlz:zalo a sermenl o . conlorrne ~~;.~l1, .
, , . , :.., ',. ",. ., "'::,!~If,
Fd,gl ura':'1111 tSCh~mt 'C",zLzLazlJoMPne deREIcrtl:erto B neldPassahig?10 dlItett~ (sel?,zallPo2rt'Ldl Chlamedata j >~~~I
e con~lO 0 ranu e , e ,L a pFoce Uf.!!- c aman e t:: a lye 0 . a proc ura-~~
di livello 3 non pub essere chiamata eSsendo meno 'p:rivilegi'ata, Le procedure piu priv.ile::,~\,
giate possono essere raggiunte diretta.mente sol9 se appartengono a un segmento di codice'!W '
confonne. II vincolo di codice 'conforme viene rimosso con·l'uso delle porte di chiamata..~._{'~:;-,.,
. '. ,'::~>~' '
'.: ...;:,:~'; .'
DPL (Descriptor .fnviI~g~ LetieQ, Ogri.i: descrittore ha un "suo li~ell? di .pr~vilegio'r%~~·
rappresentaw da!. campo DPL del byte ARB. Tale campo costltmsce 11 hvello d1"'~
privilegio deil'Q~etto (segmen:to 0 porta) in~iYiduato' da.,qliel descrittore, ,::j:t~'1:"
"', ~~ , .'. ",;.~.
RPL (Reque3tor's Privilege LeveQ, Livello di priv'j(egiO' ael selettore impiegato pe(\:\r.
.lTIdir'1zzare UD. d ato o. una' d' alto··. E sso e' speel.'fi cat 0 a ttraverso.1.1',
.' dest'~Q..~~o:n,e.:",~.s·
. .,"
campo RPL (I due bit meno slgrpficatIvl) del selettore 'che ·eompare nel campo~",
. d" dll"t ,. "RP'L··t'·, . -"d"'; '". ;"t" Itt . 1""~
In IDZZO e lS rUZlOne. Lll.erylene quan 0 V·lene,caIlca o'un se e ore In UIT /.;
, . . . ' ...., • , . ' '. , ,.
regIstro di segmentd: RP.L,~.,Ia corp.ponente selettore delFmdlrtzzo~ <',. ~~\(.,:
..
• 'I'

'
'Sl--d~~~. ,~~~eF pr.~~~.~~ ~~ ~~.:s?,~~tdi'\~~~.~~ac (~~:'L~nker ~:'ll ~P?aderJ','~cl.:;S17'i~.
,iI,"'~'
.. I,
', ••. , '., .' __ ~ ., "'''' , , .~ .,." ,.
. '; . ,
stemarn"programiIH m memo!!a: agglUstana sra'l DPL 'neld.,cnttlin; che' gh·RPL.·:,~·...
nelle istruzioni. Se, per esempio J si ha a che fare can un programma utente, it sistema~-~., ~~
assegnera, di no:ma, ~al~re 3 ai DPL nei des~~ittori d,i segmento e agli,RPL. con~eIiut~:~~~~l
~el corp~ d~n~ Is~ruzlOm. C~me v~:mo pm avant! un p~ocess~ puo ,:,anare 11 SU?:":k~
hveUo di prtVllegIO_ E perCH) posslblle che un processo 51 POrtl dal hvello 3 a un,.'.'
livello piu privilegiato , n processo in questione cont!pua, per.o ",~ ~}~gui~~ ~f?tr)lZi~Af;~"
16
che hanno RPL=3 nei selettori (che compaiono nel campo dell'indirizzo delle istru-S'l,
zio~i st~e), .In alt~e parol~, ~L ti~ne tracc~a ~ell~~,e!lo di PFi~ile~o origin~~io.,. .p~{'/"
qti~'s:t.o.~ot~~~:.;~:~~~~~ ?i 'prbtezi~ii~ 'i,ll~~~:ra~}' '~'~l' ~,~~i~o}e~~~~~~_. co~:~.~~~~ '.11",
del hvello drpr1vrleglO espresso-da RPL: '~J~:~~~it?;,~?:'.i~~:~?~::~I1~·~}~~~.V~~,'E'~~~,:l~.
, , . 1\ C ' d J a" . , . , . d' '':''{'
E.P~ EfJe~tlV~ ..P~tnlege ~etJ~.!,. , ?rn~~o.~, e ~~l. :l1e:t~v~ hve~o 4~ ~nV1 ~g~o L~,~}~tf,;
(
,I .. , ~,prue'esso,"'nel ',seaso 'cheA,'e· 11, :livello meno: pnvl1egt..a.to' tra. CPt e· RPL, "Ov-vet0~':;',\~1'1
..' ... :..1.',:'. . . :;,I( ~ ,.,. ',:: ",:' :. ".~, .,_ '.,.: l,:, .. ". :" ... ! '. "",-J"~";:,.• ,;' . : .......,.. ::"il'}
:, ,. .~' .,:,., ";,":1 :... , -:' :,;.'. ,.'f':,.:.' ,." .. :":., ".,., .. :::.,~::.. 'd,',
l6· '''h' ' II d" . dl:-' dlCPL ,,-..
OVVlamente Clu a nscontro ne a lmmUZlone e VdJ.ore e . ' ,,' .,," :.
. . •
I.
~'
,1·'
f':'~l~k : .
,,....''",
. . ..
~,.
.~..
'~':.l";'!
,:".i,.r-1i~,:
. '.
La pr,ot~l.<?U~
.'
41.1 •
l~S - '
;~~,/f"
"""r __ ,

,.
...,*".,.,.,
~"'M _,"
,,"rr-: . '.
i"
ffi<". ··..,.1 .'
\.
,{"e' •
,:t:;'~J ' anche se un processo 5i porta temporane~.e.Dte a un 'lLvello piu privilegiato,
;!~;~-~:.
;:1." .,:_,.~ . ,. il suo effettivo privilegio corrisp'on'Qe a, quello 'irripostato originaria,mente. Vale
"o'll~~""':
.,l,,l:{..-
;.r;.'"
dvnqve la relazione EPL = max(RPL,CPL»)!7 .. , . '.
I.
,
',',;'0\:;,':' '
:fi~JiI'~'"
,'.)~~I
'y
'~'I ".~,- -:' .
,.,'~. ,,
,.,;~r:',~
,,:,;,.~~.'
;.,p•. "..... . ." •
!,,;~;,'.:.
".l,~, ,'1.,
9.6 Protezione negli acceSSl

.
:,l:j~-:':'
"";'F~"l':: ',-, - . '
!B;j~~\;,,::"Vengono ora esam.inat~· l~. tr~, s~tv?-z~qni )n cui si ha cantrolla ~el ~v~llo di privilegio:
~.4~+ neWaccesso ai dati, nel passaggt dl cantralla e nelle commutazlom eli processo.
,,-:-,tr ~ ':" " '. - ," .
,,,"~ti' I '
""l,,.,,r-..
"I'~,'il:~~"
, '
'. ., .. ";~ ,. ,.
. , .'.' . "'.,'
,
~,.,~ ',i'l,,";
·Wi~.J~-lo~: . •

\*~~~1(·,'·.9.6.1
,ru.il"'>',·'
Protezione nell'accesso ai dati
,,;~~ ••• _, .. •
'fir.~{":,,:;~,);:,,:,,,:,:.,:,;,,~. ' r \ ' l'.".' .,:~ ;!:. ,~,'-', ';:';"I";'~"'"-:"':''''''.~,,:.:.; 1),:<
ii~1'~,~:,;':','t'indirizzamento di '$l,.dato ·iQ. memoria .Iich.-ied~£h~ iL.selettor-e·del· .segmentd. sia
. ;iii,E.:p'h.·.. ' t di to (DS ES FS GS S5) All' tt d l '
~~F'::.f,~~cato,"9-}~~ ~~~~ ~9 ~,. s~~eo, ,; , ,), ""'.'" 1', 1!~,):,.,~.:~.;·a.. q::.~. ,<?~~en,o
t 1.
;~1M:.':' 8~l,.~~I~ttol"~ ~!1J9g1.c;~i~~' ~;py .~ffe.tt:':l.a ll,;~p~~r,,?\l~ ~~l ..J?r:\~gJ"W a.c~qrd9, .~ .Q~~.~~.19
~;""'l/,:· A",~:.' :." " . , .. ' :':: : , " " _ '. : .... .' ~~ ,_." , •

;li,,~~~'~ir.·,::~':~: ;. '~'~'" 't '. t~' :C~; t6 d' ,j; "int~\i"ttQ s~ r~ ('Cfr" 9 ~. 4)' ~~~, 'h~+~' iJ..'~o~o~t6 I
;o/jtr-~%I;:;,~....:.",C:- ;A"t ~W.~l; ,~Jil:u,' \ n, '. \q!-J,... ""~'" _,.,~ .'.. ' ..,..,:,:: - ,~ .. ,' .. ·iT· " . ' ~ ', .....-
I•
j~, rt~{' q~ .9J~~:\~I} I?.r.~,> Hl;qu~.~o., l~ .. p:r;0'~~·i??~;~bl.>'f};~8~~';PC?~:;a.~ up. .. ¥.~U.~~p'l'4
'.~~~,"'11'~':; Rr}~q~~}~;t9.l', .,~ccQnf1 ,te.n:er~e} an9w:,~ol1t.o: 4~. ltP~t:.o'0"~r,o".4ftJ· Uvellt:p;.. di· pq!.il~gJ.Q, :~:l
~ ;~J\·~~'.ttqt~v~l1<tP!~·.11F,,~~~oll?~\I,.ltPI,W""~isc~~~ .!J0ll. v~l1ga.,iIl<lir.~z .•to\l!1.4.tq '" •

i:\if,"~lw~; un segm~nto. a hvello pm pnvIlegtato dl.,qll-~tP,p.~fgm,arll~,JI,l~Jl.te:~chf:flS~i:,. . ' :~" "',.'1' .


~~J:'~l".,. n cnteno A presuppone non solo che sla verificata la condiiione cpr; < DPL, I.
'~'0~:~/;~~cb~ ~c~e la c?ndizione!ll', L < DP..!-,,' 0v.ve,ro ~ se~~~.~o d~ti .sia ad un li~~o non
~;~~'1r~·,,'plU pnvilegIato di quanta nch1esto. II cnt~nQ A.sr-ttapl,lce:qumdi nella condlZlOne19 : •

-~ ·~.f~::.;, ' , : ' ". ~ ".,:... , "'., ,-. ; '. ",. ~ . I


. 11!1'
;':. M'~~":- .. . . "'D' :<DPL
.. __ ._. __-P.-4,,k ~ -,. . ......
, •.•. - ' . . . . (91)
. I.
:1\}·'~'·:'1ilr~ . ! ' , . " ' . "fi , . .d .
~~r.il~'·;\','"Ghmgredlent1chemtervengonOnelprocessodiven caper 'accessoalSegmentl atl
" \i~~·. h t' t" F'19ura, 9 12 , ..
, "::.Ill 7.;":.... sono Be ema lzza 1 In '
:' ,II,\1t:.(· " .. ., ,

\I*~;;:,->
[,1;\ :;.:': ......
">'(''''.1
'0/.1$"
,
\.
:; •. . . '" ,'
}~.:", 9.6.2 ProtezlOne ne! passagg! dl .. controllu· .
~~~.<;.. . ' . . . .' _. ~ -" ....
" \ ·'.'·i:.. '~'Segmenti conformi' "n trite'rio B 'prevede che un processo di livello p' possa chia- •
un
J.it~iW~t, mare una procedura ~?nteI!u~a in. segmento.. di liveno p < p'. Apparentemente, il
I'(if?:".~ trasferimento del cOQtrQUo 'fa.. paS&are' U. processo chiamante da livello p' a Hvello p. ..
:; :~~~;.::: I/in,nalzam~ntQ de] priv.,Ueuio. ~ pOS$ibile, cqI). l'istJ;uZjipne~ ,CA:LL , tp.a tic~d~;l'uso qi
~~,r~f<"~··"·
',!~1(;",
.".,,,.', " , '.. "
.0· ' . . . . . " ,. ' ...., . , .. ,_.. :: ,"'.": ,..

.. ' . . . , ..
~.'.~.' :;'~'~:,<"..:. .:, .
. ,. .
., 1.
'~~iit;';.. ~~Si. ricordi che minore e ~l numero, ma~ore e il privilegio. •

,~~!>: It;:q.~~:~~,~;t:~:~~~:n~~r~\~~~~~~~:~~~::;~,e~~4~~~~~alp~,~;.:.r:;a~~
~:J2~~~~:
., l#.:' l.9n,gIp.&I.~ ~!vell:o dl prlVll~g:Jo d,e . task" . , . " . " , . ' , . '. ' " . '. " ~'. •
: \rB:'~.~'" ' .. ,~~,. r,~~t!!~~~reb~~~yerl~~ai6 '13. C??~i~(1~ .. ,R.l~"L':~ 1?'!>~, ~D.. q~~t~ :~:p'io~_o~~.oi(1?,o~r" '~~i
~'~~t. portare'II 'Proprio- GPL ad 'un valore 'Inferlote'8o queHo ~nlzia.Ie~< n 'V&lote 't.nlzlale"ll quello dato daJ. •
;. ,1~.,( Loader cbe ba carlca.to it programma in memoria. e ha assegnato al programma U prlvilegio cbe gli
~L',l.k' compete, mettendo aposto tutti gli RPL in tutti iselettori. Dunqueil CPLdi unprocesso non
,~".';.
' > ~~.":
potracheessereminoreougualediqualunqueRPLchecompaianelsuocorpo, I.
.~ , .."'. '
~i!..."
"
:

'
,u
418 Capitola 9
fil
,!~~
=1 DESCRITTORE DEL SEGMENTO ._._-
OPER. DO
:ttl~
:.
,
~~~
c.

I IDPLI I
- \ ~~f
11~
REGISTRO CS CORRENTE

CPL
I <)~i;~ i·r
s ~LETTORE DEL SEGMENTO OPERANDO .,;:;-~~~. 1~
- \ I I RPL ::';~I' ~,
.~~.J~I:' ~'
,,~,;:h'~
CONTROLLO ,~~t' ,- :r
DI PRIVILEGIO
. ;M~"' k
=\ Figura 9.12 Verifica del privilegio per I'accesso ai segmenti dati. ~,.;~}~~
:,.:,,~Jj~,l~ ~~
una porta di chiamata (si ed ., f) ,. ,. , ' /;.-1,: '. @
~ \ 1a chiIn
amata
..
~a ttiaVVlene
v a. pm avan 1 e non 51 ?a ~naJzamento del pnvlleglO se .:~T~, ,:
il till modo
" diretta
d ' come assunto m Flgura911
. .. .' ':;,-:.t.r, ;'
".-:;..
. eue ,8e raslenmento el controllo non e mediate da una porta di chia-' ~;,~l'. ~
- mata, il salto alla procedura pili privilegiata e permesso solo se il segmento a"livena ':i~£»~ '
p e con/orm., ovvero se e 1 il bit C del campo ARB del rel-t' ')';\~",,·.;
- I ... IV
0 descn'ttore (FO19U-,'c', ';It-'
ra9.13 ) , In caso contrano si ha violazione della protezione. Un segmento canforme ;,~~ /
ha .la pr.oprieU, di,eseguire in ~oda conforme alliveHo del chiamante. A tal fine, 1a J:UE~"~~
- ~af9:~ d.i CPU, all a:to della .c~amata,. no? ~g~orna il CPL. con it DPL del segmento ,?~?(~i t
~diriz7.ato .. Come nsultato illivello di pnvlleglo corrente nsulta immutato, aoche se ,;§;,~ .
. {ji~~i.,
1

- \ Vlene eaegwta una procedura pili privilegiata.


. """~~

- . . '"~;{;~
DESCR1TTORE DEL SEGMENTO
·~,~~·~.h~, :fl
- I I
CODleE DESTINA,7.IONE

I OFL I, 17I'):~., ,I I
,~, Z;", :'
~.'~~." .'
:':r~~,L"1
- -"?C·
I ,, i~',
i~t~W.,
REGJSTRO CS CORRENTE
:.::;\--'

I ' ICPL . .", 'd~'1!
- I CONTROLLO
, '::J~,~.~~
\:
",:~;'~~.
- 01 PR!VILEGlO .,,;t. ~~
,\:';"..', ' ,,~"
-I
Figur 9 13 V ill del 'vi! . f" . . . .
a.l ~ • . er ca pn egto per tras enmentl contrallati senza porte. Sl nchlede che \':t"1,1 ,
v ga a relazlOne DPL < CPL. ·1:,1:1
"l-::'~ ji6
\
:;',:,(~. "~I
:. l·'
• . .~ ~ .. ....--r,
"'t~;'

- \ L'uso di segmenti codi~e conf?rmi non consente tuttavia di mettere a diSPosiziorie:·~<~~:'lil


~ell'u~en~e sottoprogramnu c:h:e mcludo~o
istruzioni privile~ate,
in quanto queste ,~~::rI~
• lStruZlOfil possono essere esegwte solo se 11 CPL del processo e relativamente piccolo. II~rlj~
-. ,. [~,{~
I " )!"L"
" ,"~,
::, .:W';.
"rz: '
• ",br
'.: ;;;:,'
'''.,'i.,;f~
-.
I
"
"','......;,.:.
:!..~ ~
"." ...
..-
",,,.,,-:.,.
""""~"
'_'w.,,, ..,
,,~"'''.'i ,.
utt!£;f:· ,
l~\l{~·".. ..__--------------------------:L~a~p::r::ot:::e::z:::io:::n:::e:.--.:4c::lc::
~~;~.~~'<'. ::.:
9

~\l~~.f.~;'f;'· :,
. ;>~lIi"'j~":·::·
""',',, '
' I ....'· ..·'"
~T;:::·"~- Le porte di chiamata Nella discussione precedeote si e supposto che i passaggi di
f;{;:.·'. -cantrolla non fossero mediati dalle porte d.i chiamata. Una porta e un descrittore in
~:~>~~~1't,' uno dei formati illustrati in Figura 9.5.
r.ff~~·~:~' l)na. porta cli. chi~ata specifica i~ punta di ing:esso Del ?rogramma chiamato e
~~~t--'!'iX serve a dlsaccopplare il programma chiamato dal chlamante, 10 'quanto, can la porta
,:~.{<. di chi~ata, l'indirizzo de~ 5~ttoprogramma e non ~ota all'utente e nan ealtera?ile cia
''4$~')'" quest1 2.O , Questa caratten5tlc~ puo. e~5ere vantagglOsa.:nente sfruttata da un SIstema
~:k~r;'~'~,»operatIv~1 c,he p~o ren~e~e dlspamblle all'utente un msieme ?i p.orte, ~e p~ntan~
r;~.,~~:,~, aUe funzlODl degh anelh mterw, Attraverso Ie porte, senza nschio dl mtrusiOoe, 1
ki~:;<:o,:oprogrammi di livello utente possono chiamare Ie funzioni messe a disposizione daJ
\l~~~.':,;':51stema operativo 5tesso,
~(~.'~:\": La porta eli chiamata cleve essere sullo stesso a su un anella esterno rispetto a
@~i~!,~{~' quella del programma chiamante e pWltare a un segmento di cadice in un anello non
::lm-r.5, .;; ',. mena protetto di queUo corrente. In altre parole in caso di chiamata (istruzione
'~4'~~~):""',CALL), Ie regale dl. venfica
;~!w~t>;,~:;:·· . .
della protezlOne sono: '
~~Jf.~:(~',~'
'~1~Wt:~:', . ' ' . . . . ..
;;~l'~"~:'"'" DPL della porta
. ii' chi > EP LL(la porta di
d I d. ch.amata d. chi
ch.amata )deve
. "essere non pm
/i~.~~'\\i:.;: '. pnv eglata e ?roce.s~o aman~e. a porta. amata e un ogget~o -un
1, l'<"':"1·.. '
·... u

~i~;?~: . ' date- meS50 a dlSposlzlone del chlamante dalsistema);


t1';{~;/
l;~~')';,~~;' ~ • . . , .
DP.L del se~~Dt~ ~est~a:z.lOne < CPL .(11 sottoprogramma chiamato cleve avere
liJ~~,">' pan 0maggI0Il pnvilegl del processo chlamante).
~:(l'~1
~J~;~:',:,'
"

11 mecca-nismo di chiamata attraverso Ie porte viene schematizzato in Figura9.14,


l',. ,~:~~(: mentre 1a Figura 9.15 mestra il dettaglio dell'indirizzamenta porta.
{'~it;~t): ' Quanto sopra si riferisce aJl'uso delle porte di chiamata attraverso l'istruzione
~~ .t(,· CALL. L'istruzione CALL permette di innalzare it liveDo di privilegio. Con riferimento
t~~~::;','. aHa Figura 9.14, la chiamata del cadice di livello 0 da parte di PI e P2 tramite CALL,
-~"~{~l porta a: ,valore 0 il privilegio eli PI e P2. Della variazione del livello di privilegio su
.; ~;'\", parla pm sotto (Cfr, 9,7,1)0 ,
, \;,1;,::" In Figura 9.16 vengono .mo~trati ,tutti i livelli che veng~no verifi?ati nel passare il
~~ ":"".;'" '.. cantralla attraverso porte dl chlamata. La figura e stata nportata In quanto serve a
, '.
~~~;~tJ.'>- illustrare il significato dei vari livelli di privilegio (CPL, RPL e DPL) .
~ '~i!~f':';, Le porte di chiamata possono essere anche usate can l'istruziane JMP, rna in questa
: *1~~;~:,:' ,caso non si ha variazione del livello di privilegio. Pertaoto se it sottoprogramma e
~¥r(1~'i~' piu privilegiato, per essere raggiunto tramite JM-P, seppure can porta di chiamata,
~ ,~,~,{:- e necessano
"""'" ' che 1'I segment0' Sia canf orme. Le rego Ie per 1'I J MP a tt raverso por t e d'1
I !\~f~~,;;,~:' chiamata a segmenti non conformi sana quindi queste:
~~.lf.k:;:.i:
~ .,' I~, .. t·' .
I '~i\~:{'("""
1 ,~,.;t.;... '. • DPL della porta di chiamata > EPL (Ia porta di chiamata deve essere non pili
"<~':olI,~r
!'l1 ~~ " privilegiata del processa chiamante);
l!~:~'~~::'
;~,~~~t~,·"
:.:,
~~ ~rc , • DPL del segmento destinazione = C P L (il sottoprogramma chiamato deve avere
pari privilegi del processo chiamante),
,;~,i'I'~J
N/'"
~',,::,/'
.", ¥::!-<."
"'I(i;:'l';,l'
, ~~r; ;.:., 20Si ricordi che Ie porte risiedono in una tabella. dei descrittori e non in memoria
..., ,.,
'..11:''''
~j ·v,~·
~i\ b\=.~·;· .. ,
~~ ",
';;', ,
'.

420 Capitolo·9 ' ,

: ,'t ,,;. f· .. ."! .. .. ,.".., .., ! r' \


, ."
"
., .'. ,j, ..
.•\'.. '..: I" ;, ~ .. - . ,
.
" .'
:~ . ....
" '., ,- ......' . "'.,'.,, '~'" '
," ,.,. \: '
,:,,¥;;, "'/Il; .;, I'~"" , ",
. ,. ... ,', '... '; ':1 :/~ V.n_,",,-
• ., .. ; ..
• 'I, .,.'1 r.

t 'f'
,

....•-. ,.
" ~

:,: :" ... ,i ,: .. ..J:'::: 'f~~~~~N10 , , " .'


," .' , .' .
'. . l
'
;,'·,.'il " : .... , :CODlCE: •: Ii' .
.",',;" ",1.\' . ., .,." , ..,
,
,; . " ., .... ,
'
' ... .'
'"
•... :' ,-< ,.
.. .., "1" \

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


. '~l'
.):-i'?~~
. . '.":' ': ...• :.
,
.', i'·
.
..... :.
.('.I~ .': '.t " :: . '.: 'J,i '.'
~.. ';'.••;.; .;. ~, .:, '. ,'. 1: ~ \"t. ,,'f . ,,~.• ~;,~S~ '.
:"../" . \'.... , .. , n .
'" ~'." ,~, ..
';" '.~ :.' '·".Y' (, " . :;'.; 1; ,~, .:~i ~:, .•,. '.,; .;' ;...·F~·/~f"'
:'~ j,"l~.l . • ,,:: ,'" ,,: ••',." •• ; ; .:".l~~};"~;fi~: :. 01· ". +.
Figura 9 ..14 .Sc?e~a~~z~io.ned~lle chiamate (i~truzione CALL) attraverso Ie porte di chia- ,.~~*"~:
~~t~.,~:a ~~~~1,~.4.i p'~l,"~~~~.~lV~Sl, n ~~~.,~t~ 4i:.codiC~..~:~~~ft1o:P J?~q ~~r~ f.hi~~to da! :~:ia
p~ogr~~ PO ~e ~3:!1 t~~; l~veno. ~ p,rogram:m1 'pI-, P2.possono chtamare sola utd.lztartdo,~ .-
un. porta' Anche'PO h"UO'usare- tale "ort 'n ;. . ;..... P3' :''''" .. <,.. -I,' . • ,.. , . • ~'.~
. p ..'.. '. ~, a.. prof>: llIa non PU~""Cn'lam'ar:e la' pqrta in '7~:t\.':1- ~
quanto!aportaeaunpIlv.tleglO'supcnore"al'8-uo: "... ,.:,;;,. :-;... ; ,'.:.,." ;.;.;.' ,,~;g,~~1.
~i·A t
,:' .. .- ....
". , .." 1{.. ':.'.
~: . ,
:"'. ".
-,--.:~ ~ "
," ..
, ; .. ~'.' ;'::;;,f~t:!'" i '. '
~
~ ~.
I . <-jPI..'
'..
;':0:~~~'
9.6.3 Protezione nellac6mmu'taziolle pr6~es~i"" , '>J9 ri'<l. ,::~::Ii!•. r
. " "., , "... . . ' .."-;"1/·'
:.:.;.;~ ..
' . . . . . ,.-.' .' ',., ...•- " . " . . . .., ','. • . • . ; j', -" ".;;j;.,.:,,<, . . ,.' '(!' ...
Le situazi~ni
.. .•
neUe
'"
quali si <fi~fco~mtlt'azlone t~a p~6~es~(sc)[iolstate:desctitte'in' 9~lt'.2~'~·J~,;,.
. ,. . ., " . " . . . 'f'/Ai
I'

,';.. ,$j~)~' C9~~~;~.jW:le~~' ~r~\f~~~·~·.d~~ u~~:~~t~~~.u~~~~'.~, '~~'~~~:~.~~~O~~'!4~\~J/~~:'"


pp...n .c ~ ,?:i..C\!:p., Y.Lqq)1p;r.~Bp~~C?t¥.. Q.p,L·~~l: pm~e~p': ~qq~r:~~~:~! pontr~r;i() .• "!1!})~·,~opt.:;·-~:~),
!TIut,~~1.0ne:~~ .pr.qq~~Bt.~. P~-9Y.~<r.a~~ dalFes~<fUZi0J?e·! q~I~~;)B,~rp:zi?ne. ,JMFr '.l? .G·~~.hJ~ '\~f~
cemmutazlOne ha successo purche Blano venficate Ie seguenti ·condjzioni· . : ..,)'ti~ii'
,./1"0' ,". '''I,:.~t··~.dd.'
\
. . , . , : ' . - . . ,;,
.... ".,.
:.
,. \ ,
d
,.'.
• . " . . . . ,.;
".""""
•••.
•.... ,. ,".,
••...
..
' :.' . .." ,.-", ;.-.-,1"
", ..•
It,
. ," -'" ~':'1&"
.. ~...
_.'.:,'"
, , '.' - ,., . . . ~' • ". .¥...
.: '.::,.' ": .. ;.; iIi >. ,,,1',.'.\ " . . '-;'.;..l.:. <..I~".".:;~ '. 0':'1: l:",!,:,.:}·;~~~;: J
:' ..... ':';'•.
• se e previsto 1'1iS0 di:.tlll:.a: 'porta: Qi' pJroaessoj' iL· ·CRL, del. p.roceaso: :us.Gente:.deve ·31~,~lt?:
.. ~,le1.lS~re·I:\.umePc~ente m.in.ore.o ug}J,ale. al DPL.d, U t . . · . ~I " . ' . ~.5;t:~
_, •... ,:... .,...',.. .... .i ~l;' ; ." .'. .... :. ' ; • ... '(. e. ~;~~t . ~~. . , ., - :". II.. . ~ ._ ~B~

riS r
t".
-'----~-~ _ _0 _ _' _ - -- - .jt.f!t
"., ,~e~ q~s.,(;rit~qr~~4~.1,.s.e~~~te.,~~$.Jri{eritQ. ..
;-
.::.
;",1
"'., ... j ,
' ';';
., ".
,~,;:,: • • ",0"1
' . :• • • • • " ,
,!' "'::f~~
,,,,,J.t
.'" - , .. ,' , ... ! .• :.:i·. ,
..: . '·Si·.n0ti,.:Ghe.nesBun;o}.egame:,~~iB~ tra' il .cPL.deJ proc;.esso ;USteDte e: queUo
.del';;1~;.,·
processo entrante.Di fatto i process; sono isolati.neL!oro,spazi,. Vitt~.ledegli;indirizzi :.;\1i
e nelloro T~S. n co~tr.ollo.e ~ffe~t~at~ solo per l'acceaso al TSS e non e effettuato {i~l.,
~er quante nguarda il livelli di pnvileglO dei task ~o~vol~~... !l... t~!c en~rant~ o.p'e~a_~~ .!~~. :
ItvelIo RPL contenuto,ju,CS ,(caric~todlJ< TSS) ' ,
..,,~;-~~j~
. ' ,',r.- . . . ,.;-. "':<l,:' • , , ' , .• •• ". L' • ""'" '., ,J: ",.. ,." ,. . ,

."
'.~itI
j"
.~.
"'.'
;;Ji,Id'
.
l
9\1'·
·~~n~r ",~:
~,~;~';"" ,

1-
:~I~i~~", .,' La proteziQne- 421 -
,.'./. .
'~ij.:,IJ!:!\'"
, ,11;',"1.,.
_ '
L
I .
,.jl:" ',.1' '.
l! :_":.
.'l: ~"
o

I
'J~1b.'.:'
I" '. -.",. 't' . ," j
tndJ.rizzo destinazione
.... .. .. ..
v~h!f':;:" . !(.".'
;.hi~?}?"':' :~ ... '.' ;:.:': ... ,,<~'., /1..
'~"'~A"" , • ,
,
- ., .
. -: ' .1

-' ..... .. , ' \.


-
11~~l'irt,· , - . ,~, -.,
i~5~::~:' "I':'-C~ll~: I ..... SE~' I. '~l ...1.' I~.lruzioDe,..
'0,

.. , i·' ~ ..~ ' " .. _~,;-",,, .-",


~"::":' •., . . . . . , ' . , 7 •. ··"',··· .. · ....
. .' .
...... '. , .. '. ,. ,
,'·"r·· . , ..
'.' .' /-
,·.. ~t:;. ..'.,:.. ·
~·'!'I~'v
""i'."
,,,. " ',-".
~:_,
,
,',,' ,,"," •.
,".',:. ..
\ " • ." •• ~~'..~'-,~~._. .~,,~
"_~'<U'~""'W~I1I~_
_&,.• ,. , :..,., ,::' , ..,"
., .. - ' ~- ". ,-
.,,;,.. \t,,-."
'~~'.~... ,
"
' ,"'" '.

SEL
I Offset
.\.....
{.
',"
.;.' .• '~. .'1
'I
~... ~:",... I
II~' fi" '.; ,'.
,P',l: \".;;:J' "'. - -.~~- ,.' .. ~ .i' " ." "i. .',' . . . . ",. .'- .
\

r
'
'"'I
.~~
.'"~., ..' . '., .
I···. ;:~:. a.I.~e.cm.oto ",
:.." ....·,v. . ,,,,,,.,"
~l;"'~~','
--'" .. '.''.'. (','. : ' " •
. .. DeKrittore
. ,', . ." , .' ,.. "'_'di':I, ',;.: .'.".;,'
'Ul rz;2;o'bStco
11.(~:~."· ""8 ~'.',
'mil;,f."l,',: . ;,'1.:>" ': \.,:,.,; .~ ;'. ."."-" ,as/!I:"" . ,. • .; ~; ; .;~
:'L'~'~I~'" • . . . . ' .
:."~i".-i.'-"
L','fi" ~. " . • • . . '\
"' '"., ,
'. , • . ', , .. ,~.,
.. "
.•.• ','. .;: d"" "
..
• . :,
, . .. '

"'l,,",,..
.:>{5'~
... ' .
.~;
.. ...
".-
I

";;,~,.
'~\.•" ',-- '
'AI*""
'·r":"~· i
:~,~r·~. ,; Figura 9.15 Mecca.nismo eli chiamata attraverso una porta. L'istruzione e ovviamente indi-
1-
. ~~)'::~>'" rizzata aitraverso CS:EIPj CS da. i1liv~Uo.di pr;ivj.leg}9 c;.9J;T!!n~e (CP~)" +l s«:le~,t9re c,onten~tQ
.!l!*'t/, ." nell'istruzione da. RPL. Questo selettote indlrizz~ (wi aesttittOre una: poi1:a di Chianiata. in llir -\
;( ,~;\'. 'una tabella di descrittori (LDT 0 GOT). n selettore contenuto nella porta (il DPL in questa
:~;~l!j':~ ~~le(tore,e qwnl;Udqu~llo ~ella... nqp;a) seJezi~na.il des~it.~I~·!J.e~.s~e~~.di._d~t!n~'?n,e.: 1-
a ~'Br;~: . ~JmeJir~!o fWj!::~i?e,l!3:'p~~~i~p.~ "1~:'J-e .'?~';e~.uto s~~~~ .. ~~. ?~, Q~l..~~~e~~ 1~9~t -
l,i\""I~;(', C9n.te_n.~.t,o de.J;ltrQ.,ll ~cnttor~ t;li P0t;t~. 81 n!'-lt.l c.~e: l'e'lle~t~a.Je: o~~~ @.J?tenuto ~etl'lSt.~Qne
~~~ •• " . ..-:> • • • ' ' •• ,.J..... .. .... . , . . . . . " . ." .T •••• •••, .'.' ' •• J . '.' ':" ••
~ '(il- .'.. non y!e.J?-~ .con.sl~~~tp·, . ,.,.
!l~.\~rf.~.~·
'0<;

t&.;\~\~\'l:' ~t:' ;.:.


., .'. & "/
" i ••• ·
,,~\'• • • •, •• " . , "
".,'"
'.' , . '
, .•••
'CA.L1.'GA"l'£: .
,.'
".
." .'t:
,'.
,. •'.
... " ..
, .' '......
_'.1

'.,~,';.'J';~:' ,~.:
. • ,.;
.'.
.. ,
·t
,·'1'
,:."
. .' ...• "" ..
• . ';"'.
'. ':,'"
'!"! . 1-
..~\~:;.~, :::tI:"~'.;:; .. ~1· ""'~'l D~;;:' ,'., ... 1',: ,ro'·.' .:_-....,.;:,.t:
-
11 Lf \ ! ' ' ' ' ' '
'~I;i~~6';',"'~':I''''''
!

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

. .. .l •
~
'. n, .. ·., ':"::.,. ..:",....
.
. . ,.,~,', " . . .~: ... :;.. ,-".~.!
liil~::''<:-:''':'
';/;11 '1!~'.,
,..
,,"
......
•. ',
'
".
".
'
, ,:,. ' I, .. __
... "O!:SCl'!:I1-rORE'OE:L·'SEGM"Et'lT¢"·: ...
:: .. , . . . . ,; . . . . • , .. '
I ".'
....",'
, •....~ .•
I-
W- ..!'II'
~:!i'i::':r.-!'~ ... ',; .. ;;, I:;;.
CO~ICE D~S1'IN'-'ZIoNE:
' . . • / . . ,' .,. .,,,,, .. 1:
, .
j' .,f.
. .•
,::.",,,,' ., ..... ;
~1(!,',~... :~r:·:l: ."IDfL.I " L :._: , ." '.;" "'..
• ~; .~(~. .
...... <"
-
~tl:!\~,.t' REGIS"l'RO C:'lI CoRRJl;N"l'E
I
~~·~V~~·' I ICPL
r
,t ~~" S£l-ETTORE DEL c.-.u.' G.-.TE .. .
,tJ j'\i~!:<
~ ".'ll'·'~
,:~".::r ,
.' RPL
. •
,
" ..
-
'"
,\ ~t.
rr.:'~' •
.· •. l,l
I~·."~
.
"
..
' .

.
CONTB,OLLd·,,,.
.
. . L
I
" .
J.·~.£tt~,~ .' D1 ,P~tY.,ILEC10
: ll~f.il·' . . ..... . .. ' , .
.' .. 1 -
~j 'h1f;i:I:;;,.: Flg~ra 9 •.16 Vermca del pn.vl~egto p~ il trasfer~~t'o ~ttr~v.~~~ porte ~ chiamata. L uso
~ ,~~~,: dell'lstruzlOoe CALL co~ente Jl1O;Dalza.mento del livello ~ prlvilegJ.(?:. del chiamante.

'.
~
9.7 . .,',
-
r; n'li:'
".
~~: ". -'-- .- ., ~.
.- I
.'~£!{" r
~l\'~~l' ~,:\'I~.<Y~~~.~o.n~; ~~~:,'~i~e;1.~f:~:i,,~ri~.!.~~g~9:., :: '.'. ~ ~~:..: :'.::;, "~"'f-<'~
t,.1iIA.t.::··
P,',I, r•.. " . ' I.': .·.1: ,,>.'....... ~;~','. ·.1.• ' . . ,.,. ,I, ~ .~ ... r .•. , .' ... ~'~'; '. . ,.·, •.. ·1,',.•.. ~., .. f. ,( ..• ,1
Siegi1i'd~tio'··elie'ttatriite'I·lsttlJ~iorieCALi.-:Un'ptacessi:fpilo 'Valia:r~'il'propH6''li\'eno
-
· a~~~;~"
i~~m1~i?
d'i ptiVtlegio:: ..::" Ii " . . ~:~'.:' ., ' h .. ··'.' '",.. ,., ....~ :':1, ... 11 .;1 ~.;. ....
.
n CPL inizi.le eHss~t6'\'~1 TSS' ecoil:i8d~ 'dB;; jl'Di>'L'd'I' s~g',fie~ikcd'dice 't11e
' •. ~~': '.' '-:··~.<:.l; '.:1 .~'
I·.
, ;1~~,:' Vlene m~sso.In e~cu~lOne p~r pnmoj a partlf~, da. tale C~L,.ll processo puo p0:-tarsl
:~ •.~':;~:' a CPL. VIa .Vla mm~n per ~Ol tornare a C:P.L ~a vI~.r;oa~?~,.~.p.Qn.e.COI)S.ent.~o ,al
~ r,1111I:~...J.,..
,liI,."-'-"·"
' 'Ii~ • :,r:..
processo dt portarS! a un livello meno pnvilegtato,'di quelIo.1DlZtale "· i ., ,' .. 1-
- 422 Capitolo 9

-I
- ~'innalzamento del privilegio si verifica quando una interruzione Pesecuzione ,.'
0
della istruzione ~ALL fanne pas~are il ccntrone, a ?-O sottoprf?gramma appartenente a . . ,};>'!~
- \ un segmento codice con DPL mmore del CPL; il ntorno al CPL p~ecedente e automa~' ~;Jf
ti;o con l'esecuzione d.el~a ~truzio~e IRET e RET a co~clusion~ d~ sottoprogramma. :~.>.~~I
- L mnalzamento del pnvileglO traallte CALL (e con Ie mterruzlOw) coinvolge sempre '/.')..'(
lluso di una porta, ,:1~j;;r.
- \ Poiche i processi possono cambiare livello l e indispensabile che, per ognuno dei :.:~. ~
possibili CPL cui un processo puo portarsi 1 sia previsto un distinto segmento pila con., }'\[I\-
- un ~PL pari .al.CP~. Per questo mo~iv?1 il TSS ~?nt~ene copia degli indirizzi (virtuali) ~'~~J:;..
degli stack 31 livelli 0,1 e 2 . Per il livello 3 1 I mdirizzo dello stack viene salvato in ~,,;:,<,~
21

- I ESP: SS. '>i~ ,


/~f ~,
:~:~:~~'N."
- 9.7.2 L'attacco con il cavallo di Troia .. ~:"t'),'~t;.
'::~,\1~;"
- .;-: "~:~i "
I'

Consideriamo una procedura di sistema operativo nell'anello 1, che l per esempio, ,:"t~l
- scrive la data e Para correnti in una ~tringa~ alIa locazione specificata dall'unico'1q~
parametro della procedural che BUPPODl~O ~la un iI?-dirizz~1 virtuale (sele~tore pitI ':~~11
\ scostamento). L attacco ~ scbematlZzato lD F1gura9.17. Un programma dlSOnesto» :.,:~.f:.
~e~'~ello.3 potrebbe .chiamare questa procedural passandole come parametro un _,}~> '

mdinzzo virtuale la ew componente selettore ha RPL ;;;: 2. La procedura neU'anello'/~.\i
1 Bcriverebbe la da~a e l'ora nella posizione indicata, che pertanto si t~ova a livello ,,:~~~~~~ !i
• \ 2. In altre parole, il programma disonesto dell'anello 3 avrebbe usato il pararnetro' ",_:~,
come "cavallo di Troia" I e sarebbe stato capace di scrivere nell'anello 2, dopo che i1~~!f:t!r"

parametra e stata lasdata entrare nell'anella 1 dalla proeedura di data e ora, ,:':;;,,~,"
I .' ", ~
:'~.~~~.~l
,

.-
,0 _~\~~~~,
::t!: '.L
.'

"'"
• I .,0
b'
"'}:'J:'t~~ .1
)'W: i


./ ..:';:.~~~
_';"~~':
( '~"':"·.i
-~'}'n~l

j- -',;1\\~~N
.\~~~~~
;;)--c;:r;r=':-i..." ,,:'~~~".'
. ':;'~i~~

\
Figura 9.17 Schematizzazione delFattacco con cavallo di Troia, Il processo di Hveno 3 ·':;.·,.~)ifl"
(E3)1 chi~a ~ttraverso la po~ G .il,codice di livello.l (El) passandogli come par~et:~ un h .
selet~ore il CUI R!'L
-.il
e 2. n codice di ~vello 1 che usa il para;metro come (parte de~l)1Dd~lZZ~ .-:;;/:
~ CUI leggerejscI'lvere sarebbe autonzzat? ~ accedere ~ l~v~Uo 2, In tal modo il codlce, ~- '~,;V'
hvello 3 avrebbe avuto accesso, seppure IDdiretto, a datI di hvella 1. ~~]
"~"
01
I 21 Loca.zioni dall'offset 04h all'offset l8b.
.:' tV
". ~~~?M~.
.. ~.. J~~
: ; ~~'~
""i.'
.'·:il-
I ;
,
'r~1
,'.. .
........:
;' .;,: '
, ; iI:w""
'"'".
~,';
, "
.
j \~~l;:.: ' La protezione 423
.fJ/ft.·.,
, ~,,,;: :
~tf~::,
,'..... <1.".'

i~~~~~;;~: .. Per evitare questa inconveniente l'architettura Intel prevede la speciale istruzione
'.~r.mt~·(··: ARP~ (Adj~st RPL)1 avente l'effetto di abbassare il HveHo. di privilegio dell'operan~o
'···~'f:=':\::...~destmatano a quello dell'operando sorgente22 . Se al suo mgresso la procedura chla-
~I{~~'::, ,~ata esegue Pistruzione ARPL. s~l s,elettore passato c?me parametro, it relativo'RPL
.,
'~b1~<\ v\ene portato al valore del pnvileglo del chiamante (10 questa caso 3). In tal modo,
:.~~::£~>" l'attacco con cavallo eli '!roia non ha effetto.
:?i\~~~j_:,':_
,i~\f;>~:.'"
. ~~y.~t.: 9.7.3 Istruzioni privilegiate
~Ir,~,"j.,,·:
,'$;'~W:·,;,:;,
,-,'~i~,~': In piu di una occasione e state detto che alcune istruzioni sono privilegiate. Ap-
::~,:;i~r,'::' part~n?ono a questa clas~el tr~ le altre l tutte Ie. i.stru~ioni, ehe agiseono sui registri
;' 'i}'1:',': speclah del processore, PlStruzlOne HLT , quelle d1 lnvalidazlOoe della cache (INVD) e
' ',~w?Jt:"':altre. Le istruzioni privilegiate possono essere eseguite solo 5e il CPL del processo
' ~1~~J:·::'''. attualmente attivo coincide con il livello di privilegio massimo (UveUo 0); in caso
~~W;;~':'t contrario e generata una eccezione interna di
tipo 13.
)~;;~"," L'architettura prevede anche istrtizioni a esecuzione limitata. Esse si riferiscono
.:
~s.~::~ alle operazioni di I/O (per esempio, Ie istruzioni ~N, OUT, STI e altre). Quest~ is-
,~~:\-\. truzioni possono essere eseguite solo se il CPL del proeesso attivo e minore 0 uguale
':II~:,:".,al·1ivello di privilegio codificato nel campo IOPL (Input/Output Privilege LeveQ del
: -Ji..~,?,"" registro EFLAGS,
",' :! ~i<;::,
~. ·:~)i;: .'
I, ~ ,~9( ,"
' ...
,; ,~;- '9.8 La protezlone dl paglna
",.I. ..',.'
" ,,?C,;:
Qui di seguito si descrive 1a protezione.di pagina nell'architettura x86, Si noti che,
.'w;"if~~:;.:;' sebbe~e questa ar~itettura si~ fondame~talmente segmentata, e ~emp~e ~ossib.ile
L ~~ti~:,' costrUlre programffil strutturatl su un umeo segmento contenente lstruzlOill I datI e
1. ;'~1\';~>' stacie In tal caso 10 spazio virtuale risulta lineare l come accade nella rnaggior parte
*~.~-: ,dei sistemi convenzionali, e il meccanismo di protezione sui segmenti non e di fatto
,

~, ~~~}:.':> utilizz~bile, mentre .ris1J.I~a es~emamente opportWlo disporre di un 'meceanismo di


'H.·.~~kf: protezlOne delle pagme vrrtuah.
i~l~f;.:', 'Nell'architettura x86 il meccanismo di protezione delle pagine entra in azione se
~p;'~~f,: quello operante sui segmenti non ha rivelato alcun tipo di violazione. Vengono uti-
NJ ~~t;~; tizzati i bit U/S (User/Supervisor) e R/W (Read/Write), contenuti sia nei descri~tori
,
~ Bi%.l.. .di tabella di pagine sia nei deserittori di pagina.
" if ,)i~t· In riferimento ai descrittori eli tabelle di pagine, i. bit U/S e R/W sono esaminati
~ :. '~;;'. dal meccanismo di protezione (in accordo alla regola riportata nella Tabella 9.3) a
" )!i~~~:;,', ogn.i t~ntativo di acc~sso da parte del ~rocesso attiv? all~ rela:ive tabelle delle ?agin.~.
' ~~~~~~": T~1 bit ~~no pe~o. mflue~za s~lo se l~~on,gono vmco~ sull accesso ~la pagma plU
".r~~:i~· stnngentl dl quegh Impostl dagli omomml bIt Del descnttore della pagma stessa.
' . !I~J'~ .,
!lW~;';'\. -;,,-:-::::;-;---;----"'7:"-::--,.--:-
'ji;i:{' 2:2ARPL ha due operandi it primo e una posizione dimemoria a 16 bit che contiene un selettore,
1.. \,~~~~~?::
,;( ," il secondo e Ilormalmente un registro cbe contiene il CS del chiamante. Se RPL del selettore e
Dumerica.mente inferiore a RPL del second~ operando, iI primo RPL viene fatto crescere al valore
; .~l!f~~ del secondo.
:;7'/"
':';;
~.
~"'_
.' ,"
424 0apitolo· 9 .

.'" ",.' In 'riferimento·at ·,desaittori.di pagina,:bit: tJ IS eRjW S(lno eSaqlinati:dal- m'ecca-


nismo.4 pLotezrq.ne (in;adaoI.do:a1la regolariportata: nella:Tab~na9.'3) ~.dgni tentative
di.accesso,'aUa,pagina_, .'.::' ~.', " .' . "!" .. ~,': ' ..... , .. !;~" .~, .-:' .,:-i.. · <,
, , . . " ... ," '., ...., .. . ....., .
, .'
",
". I,· :,:
, "," ," .' '" ';:"-" ~,.
~
,~" I'

I'CPL lU/S'1 R7w I1ii>6dracceiso P~im~ss9 I


';"~
,
,

, . -_._. -
"
.
"':~".'
,

'
'
~

,

, ",
,
<3 ,
· Lettura e .scrittura
· Nessuno
=3 1 0 Solo"
. , ..
Lettura.... ", i' ,;~
Lettufa 'e\scrittuta. ,::C",
~,.,:"

", " • i' j


1 1 "

..... >.... ~ :'.- ,i~.'.; ~t :.:,. ,I:' .. ,!:" .,"; .!';': . ,.\. ,. "".' :,'.',!:; ;,:·,';.' .. "."·;;,:\~·;:1~~
/#1
,,"

1~'• . • ;:'~ ."~".~


.: .,.:: I. ,:.:.J' ';;'..,.'.. ;,' .: •~~~':'. . ~.,~.
.',';: '.' • .
. ".

. .~, .~:. ':",~;,


".

.~: ... ~','" ...


':'
,

;"':.:'":'7!"";'
/.

:,, . , ." '-l"t ....~~


.

~!)~
, ' . . . . . .. . I . ,

:.:i:,.. . ".

":" . Qq~e appar~r:da).l~c~~i;l,ell~ 9·.3~· p~Z; .un. prQc;es.so.,.noD;.d.; .H~~llp.}3iIH Il?-ec.yp.nis~<R ;:.,
• • .' • _. . '. •

?1 protezl.one delle ?agme non e~et~t;~~cun. ~o.~ttOU9~fr~.r:t;laJ,;lgq~O:.9vyi¥TI~nt~..at~iy.j .,;{~


1,c.Qn~,?W; ~,!~t~~.~t~. ~~l. JP.~cc~+~;IDP::P}: ptot~19ne ~e~ ..{i~~~ntV. J?er.. un-: procease '{!,!;i
cqn .,4y,el~ dl RQyil:'1gI6 .P8.!~ .al .li~e~l.o.;~l, p~ivilegt9;IP:i~~m.q, oV~~,ro :CP:.~ ;;;;;. ,~.) ~ c.91! ."~~~~
(TJ.t~~~)~ ~,~.~cap I$m~. qll pr..ot~~l~~e ~eU.~ pagin,:. ~ffett.ua ,!p.y~e c9.n~r9Ui .~ ::~
1J./q.. :1
yhe st:"so:~~ ,~:queJli~~ff~~tu.~tI ..dall mecc;ap:S:r:qOr ~~ pr:8t~:z~o..II:e 4,~~~egmenp .eig~~~~a: ':,;~li,
una nchiesta cil mterruzlooe (dl tlPO 14) ~e nscontr3o delle vioIazioni·neW309eElSsQ.alle.. '\;~ '
pagine. .' . . "':' ': ,~~~!i'I,
'<f'~
;";:~~.
,.:.....~.~': , ,~,,: "".;:" . , ,', "
\~ '~"'. \;>';'-
!l:.,', .......... I . . . ' . . "I:'
. . .. '
.'.'. ,~, ... ',~,:,
"":,;1
',~il~~
.
., ,~. :.. . /~~: ~·1i~
" ,,'
" , ' " , '" '. '1'"'' '.- , :f~,1" .:
'" , u '\'_
..,
" ':
,..
. !., . .. .,. ., ;. ~"'.,
0'
·
, ' ' ' l ' ' ,,' '.'.,' .. '• ·t·
, , " .. , , ..t' ~

"...
, '
,
..
',. ! '
,.
, .\ .....
",',
,,' .' ,~I " . /. 'I ':i ,';';,;'," ',::,: ·.•~~
,:'~',' ': :""",:i;\~'
'.. .'
'. ..,
,; ,.; .. . ••.- ''>
" ,
..... '. il.'·'-;.~.--: ,,, .', . " " , ' , i " " . ", . ",'
"
'" ., '.' ." .. ,, . . ( I, .. ,. "~'1'" '.;'" ~ . .;' :,_,~! ;1. l,·,;·.. ·.:··ll_'.l ,l~Jr
.', .' ., " ..,' . . : ' . ,' ..; '. '~., ~. :.1' !"'!; ,.,~ .. , :,'j ;, . . "1:f
. 'i~~··· ',! .. _ ._ _'" : ' " . , "'., > .,,' , .... ; h' '''-:'~''J: '. . , !; :'.,;; 'r, ".-'~,,; ·u·. )~;'
.. 1:.:",,,,.:-, .,:'.'\".< •. r"";, :'i.-: .. ,'." ; ( :,,·,::-i.·;;(.,.·:.1,1.';!.'·,.,:.:~'H.:,IJ.:':::'· .
", '" ... : .:\. ',', I : ..\ '. : '. ';,;":;~,,',
'n , '. ", '1'" " ,'." ,:: ' ..•. < "<',,:# ' :'.,'.' o!" .. :.r':'i"':;.\".f..
., ' :1 . 1'.1" '. (j' .,' .': ",,, , ;"' •• !, ' ;.'.,j ~jJ .,;1i.>'~
i '" • " :
" , :. ,;.",,:: -:: . I, .," '.:, •. '., ,'>, i, ~. , .. ,... ,'" ..-:" ,.;§;'::
'ii :;~d. ! .. il.;'.'::' ;<11""\:'" .:' ~:,:,':\";::':"-"~~;'" .,·-,:,~~b ·1}~
,~i., .' :' i .. . .~ ,'. ..., .'.. , •.' ',: .~..'- '".,..: . '. ' • ' .• ; ,'1 ' .. ':.... .';! . I. .-; ~,I"0I ,. . ~;:'~;\:",' ::·.!"~i
,
• '''<',.'
, .J'. I.' ".
..:,.:, ,':" ·;t· ,.' ',' ;.•. i, ...'~::;.jl,;,
.' '. ", ;1. ~'.: ~.'.\:,\ ...,: " I"".';.': .::; . ,;~_l' ,\~. .,~
,• ,.. ,•• ~ ,... , . ' J" I ' ,. ., • , ...
••- " ," :.,' , ' . .- .. 1\ I ,",', ,-;:'" , ,,',,; ~ " 'I':.' ,,', r'" ! ":',., :',:1 ::,..:'.';':,.' \l '~;,,:co;: ;.;'~.~,:; ,:,';~~t
~ .. .""'_ ..::~}
,.,. ,: , :'h4:~
, ,"
"
, "I
, , '
" ,. _:, .. ,. ,
'_.. ,.,., ",
.:'.. ,. ,
'.' .,
1 '1"' .
,
"'.

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


'I.,,'.,.; '.,,'1 •. ' '. , : ' , ) ; ' . " ..

" ,
," ,.>J',,~ _'.' k. . '.: ;i:. , "
3i '""" ,I','
, ',)..,

,,,,, ..,',I,
,~i;;;,.·,
:"111<,\' . ,
'
).
"~'l"'"
::; ·;0",1'" ,
~

,tt,;,
.,,~{.-

,"'1,,,.' -
',;~iJi':IFJ..: '. ' ... , ,'. ~,-: \.
,~~"~Ij.l. r '..
:\'-, -
-:;~li'!!l,.,i~
"',"
"1!::1 'Ii,'"
,,",' \-
;~W~i1':!~'·~: '"
~,',
j~~'
I<'.,
"""',
~.,
":J"
,

l:nli~'~ ~ •. '
';r.:"",~ .
~
. .,.•

]tr::g;"!f...'.~ .,'
...'l,;
~Hi1~~~: . • ,"
10 \
'·.r,l"'11I':1'.,,:~~
J-
"~':~':~;i"";' .
~ ;;I;}'I((j ~ ,;,'<: ~.-
~'"~"""'".
~"~:1,il<'"
"'2.i"';"~,';j' ,..•
. ....;....;
"Esecuzione fuori ordine
'-_-' _ -
r,~ ?:t~", "
j'rf'-;'~!~':~' ,' , I
1~~'~'~t~;j,'. .. . . '. '< 1-
~
'fl;·jil.~
'>',V
"',' , . , i- ..
'
" ,
"~~<rI""
':.~'.~,. j:''!,':i '"< '. .
~t~1't)i[i.7'.:_ "
r··i.'t.:r·~: '
,!j:.1j}b.;<;::',:,: '" ,.,
,\,f.,I\t,.\r~~.", ,
'i"""~"lI-:"-'.
" "~l'.,:,.·,
'-,' ..
,;~,$.~.~.
."
......, i
'. ~.

,
, )-
1~:Ii"::i'\''''''
. .!l~<"/.. ~
. .
! . . -
),.
'j' :'.;' .: .
f>~'~~'!'Y' ' . .
~ _ 7~'~;>;' ~ino a or~ abbia.rD:0 ipoti~zato· ~i .l~vora.z:e ,c~q. pipeline lin~ari. In 'rea1ta, i proces.se:
. ~~l~~::.~\, . .n moderm, co.me il Pe~~1Um e 1 suc~e~SlVI,. :1". ~o:w~rPC, .1 ~ k6-3D e SUCCessIV~,
i~ . j~1tf;;~; a?0ttano ar~l~etture pill co~plesse~ ~on .p.l? umta funzlOnali, ~orm~ente .multl- -
~~~ ;~~;f'.:,,,> cIdo! ?~er~tl In. parallelo. s~ pa~l,a.di ~~hi.~e~~ur.e superscalan, per eVldenzlare 1a
. ,~~~~\.;. ·posslbilita. dl a:'V1are ed ese~re pm ~t~':l~l?~. ~ ~allelo. . . . ,
\
.:
\~~~"~t:h,: n paraUehsmo tra Ie umta. ~~onali e ~l ..-fat~o che es~e siano m plpe~e au- 1-
'. ~~1#;-J.':'~:: mentane notevolmente 130 comple~l~a della ma:ec~3o, pensl3JIlo, per esemplo, alle
, '1 t~41Rfl:<~;" ~;:":'~ipendenze tra istruzioni assegnate a. unita. differ.eq,ti, al completamento fuori ordine -
e
~ j ~'m~~>·" al,Ia ~ecea5ita di. gar30ntire 130 co~re~a.~ello s~~fo' di macc~a iIi pr~DZa eli inter-
. .~~:i!!'~:" ruZIODl. Queste ddncolta" tutt30vla l non'1IDpedISCono all'architettura superscalare di
' }~~~
.1\1""1,,
..,.. , ( r3ogg1Unger.e,pres.~nl" .o.;~' e~t .-re,maIT!ent.e e1evate. ~, perClu, " A' \-41 essere mo1to diffu s(,\. tr=t i
1-
, ;':1'i~~' ,\~~., ". ':'OTSC""" ''''.'., ".' C>, •• ' ' . " .
>,.., "' '~I ;,:7"'=".... , .'. .• , ,.,'i:'t<?;'~
( .. •. , . . ,.
1' ~ ,~nl;J'~';' R>I;~es~or.L.~~ .~ ...?~o~et:~~ .....,; "; : F''::' : : :",.: ""'.:'. ' ....'..::.:., .. ~ I, 'f!.,';:....,~.:. ';'" ,. '~. '.;
, '~'!!i~.~:!"I: ... c' II 'I" ~'. ~~l"'i') , ' . ,) 'l, ,,' . "., l';',d ,"""l; .,'. ....
'~'.'
..',.'
..... ~, .. "., ·1'.. ·· '.
L
,,':-:
.. " ' L '
" ..,,, , . . , . '" •• '.....

~ '1"0": l""1Jl ' :'. ":"';'1': ;"":'.""::-:.\ !/. ~'IJ"'~'t", ,. fi ':""'" (.:~ ",'; 'I:·; ~"." ~I"·~· I ~'l':""l::"" ! b. ::,: .:• • ;.',;; I
~r~J< ' p
Ipe me con um a unZlOna I mu tIC co . :"",
'r
':1:11::;;, In precedenza ,i e ,~pposto che la rase di esecuzione durasse un cicIo di clock, Cia
~tf!.' .. ·~alsl'cqnclha.con,j.ilDtento:.di.ot:tenefe al.~ PJ:::est-az19DJ.l.,~.ll.uapto ..il:p~n,Q9.91;di cl,<,>ck
1-
flU' ;-r,{' :~~;~ 'd~v:re~bEf' esser;e sutfi..ci~p.t~men.t.eJu:n.g? d,: peIlJl1.et~~Ii.~)-'~j;l.c~io"p'-~, <;ii .oper~~~ ~om-: ,.
';~ ...;;~.~., p~esse; ,€0me.le:opet:~to.I}L:3U :n~~rl m yrcgQla·m~,bUe ...Se SI ~Qle. p~ooe··.~.!Pe~q4p
~:ljWihi~.,~.dl,-ClOck~io-.ccorr.e.:i.,:,'~\,~...'il.'..... :I .. "i\::I·:,"\\;I;' ."~""I\"""I' ,:.,.,1 .".'.,.• >.~., '"
..
,
.
.m:.q,1;l),"':~ 'r', . . .
".~~!:"":" <.. ' ,~~.",~: '·Ll'''' . .';. i, '.""C::'-'~ i. ,
. •. , ., ". '''''''''. '•. ;.,
-:~--~.. : .. !~ ;~.:" ; " . ' ',,':-~""'<; ~ .ii· ...•i d., ·.l:: j,;
)"
~ ',~~~y,~.: :)t:"c;PIie\te.d.~~~ qbe·l~ differ~n.ti ;Qp.e~~iQ~i: riclPed~q .iD:~~~~ ~X" p~u un. 'p:e~odqAi .m, ,.

:Io 1t.g·~I~~V~' I,':";' :·dOck,·b'yY,~ro ch~Ja·fase,.EX:.sla,a suaivQlti\o m·pl1?elin~., ·... ·j·l··)' " .' . ''1'' r.-,
•. ,,'&,~t\,~ '-a4.ttar '\td' '~afu: .~:,;;;.r!~,·~,.!fr~.. ,···i;·~i<~:~u;,t;:·~., . '·.:·;,;;.:~ . .:.;:,;',:" 1-
ii- ,.~'~'1~:ii£.::· .':: i~,.;" ,,);1 .. ".. ,t7;:P.t .:,.1. UI1~.YF ,,'~\,.' ~1OD:. " ~,.;)~~t .~.p ,¥.J:: E ~,. ;~ft:7P;e~~lOm, ~:4~.s~Slve
., l ; ~' .~,~.".
t, . nmangano bIocc3ote ne 130 pIpeline. \.. ,;, "
,. ",',."*"'./
, .' \ ···_.l
.. ..; . .,r;.<.,
.. , '/'
~ ~
~ •
tt. ,(.,' ~~~I~\ .>.:;:.: ,5i: ,0pt~ene ,in, :t~ .mQdp'~la;i ~tr:4tt¥1'~, Q.i:;f!gur~>10 ..;~;J( 9!~~ass~~I~~O ;~t;IIJ!:~. qfe-
}' ':1:1 ~~~: - ·nql"e~to'l?e~; -¥ :r~~o. 4et .capj~q,l,Q)~ ...Si ~~!. ~~ .e.j)G~mpa:r~ ,1Q ,s~ad,!~ .~~~,,~.e t:a
~'" i~~{' 1~ UnLt~ ~~lo!1.ah ne.l;9mpar€:J'tIJ~;gedlca:~~.~~;.qp~~~I~ao~,<ll/~~t~~.a/s.c;~t~.l;l,I',a m
1-
~~ 1~~r'. ~~~f!aoltr~ .ch~~~a_p~r li}"g:~)«l\e ,~~ll~, I!tr;m;'!Zlo,,~~ ~uel)~; p~:;)eHPet~I,,,onL
it I,"f I ~'_,!.":
cicli e un""S<l!u~iQl1e,,,,l prpg!em!',de)l"';(at.e~~,gell'l-:P,i,e,~Qqa,;~onpst'!.ritft,\V\to Ie 1,-
- 426 Ca.pitolo 10

- \ "
,;.
- , EX
'
~
- \
- - Unit. in AI - "

::_~J::
"~"i'. f
l
:
- \ ~'~y.i- ...
-
- Moltiplieatore
in AI fl VM f- .: :';3~l'!i
:,.;:·::;ii
,',;\:;lH:',
- I I-
Sommatorfl
In VM f- .~::,:w.~,
"':~<{I'~~'
- IF ID - f-< WB ,· ).~"... ,:
~.

Divisor..
-
;" .." '; ; '
, ", -:1>t;,\>:
1 I- in Al • VM '. ,
..'~'I'
· '~":~~~
"

"",,,,,,,,
,'" <~. ,

- ,~~~.,
,: .•;,,~l~~,,~t

-
'~. ~l,p}",~
Ge$tionfl
I- ·'''''':iI
.:.,I.~.,{I,Jr,"1
- \ Diramazioni · ~;J'1\..~
"'<
.; ';:'ii4;<
......,- i,T;~,
, ;. ·.. . "~~,.
~" ~:~~,. ~
.•
• Oparuioni '-~'"
.~.. '.1.
r-- ""jjI"fIj
• I Load/Store ,· .i.'
J. I'
.,:~"'f;1
''"''''"
"';".~~('ttiF.
· ,,~.•
':;>'.v.-,
,: ,
Figura 10.1 Pipeline con unitS. funziona.li multiciclo. AI sta per Arit:p:1etica Intera, VM sta ',•• ,'1" "
per Virgola Mobile. Le istruzioni sono inviate aJla corrispondente unita funziona.le da.ll'unita ~'~(."r.1ii1~

I .:i:L '; _ T~
....

di emissione (Issue Unit) che agisce durante 1a fase ill. Giunte all'unita. funzionale Ie istru- ,;)~.
"";
'; :"

zioni possono ripetere piu volte il delo EX senza ostacolare le istruzioni seguenti dirette ad •. ,t';:..
". '. ','

altre unita funzionali. - .~'!!'~,.


.'~'_~4,
- ':":.. ~\
'~~'.
, '.'~;.i1i"
;·'.\:'-li.s
'~'
, '-,,'!.;.
..
stesse cache, col elivaricarsi della forbice tra ve10cita delle roemorie e velocita della · ":,--,;l¥~'
..~l.:i;: ',,,,,
• CPU facilmente risultano troppo Ie lente. L'eseeuzione in multiciclo delle operaziooi ' .:..':'L"'~I
~~ "
....jr,
<Ii lettura/serittura dati permette di svincolarsi dallimite imposto dalla velocita della ":"'~"i\\
.~ ..
( cache. Resta da dire che cib non riduce U problema della Ientezz-a della memoria per '·,10"· "'p
la fase eli fetch, I processori moderni, per esempio il Pentium Pro, sono dotati di '.:."',....jl;!':'5
anita. eli prefetch e, comunque, 1a fase IF e suddivisa in piu periodi <Ii clock, in modo ' .....
, ,l:C;~ .
:..,,'
· w",{ .

I da operare in pipeline e leggere uin avanti" (per 10 stesso motivo il BTB entra nei ,'{:';"?
primissimi stadi della pipeline del Pentium Pro),
Rispetto alla pipeune lineare descritta al Capitolo 7, oltre all'eliminazione dello
• r
,;~."""
,
.. "
,r'I'I~,
·· '.' ,:.1.,
',,'
...~"'.
stadio ME ci sono Ie seguenti differenze: , . . ~.~ ';'"

":'~'~~ .
":',iJ
\ • All'interno dello sta.dio ill e presente una Unita di Emissione (Issue Unit), nella .. l\
. ...•
,', .,',.:->... ~
"\~

Quale sostano Ie istruzioni in attesa della risoluzione dei confiitti per poi essere · ..!r~
· "•",
~ M.(
inviate all'opportuna unita funzionale. Nel seguito si paria anche eli registro di .'"}
.", 'i
emissione (issue register). n registro di emissione deve essere visto come una · .'.'..;0',, ,~: .

I aspettare perche non possono essere inviate alIa re1ativa unita funzionale.
...
coda (0 buffer), nel quale sostano Ie istruzioni che devono momentanearnente , ' · ·"",t,;
',"
,'
:f"..
· "," -....'I
. , '.
,,,"

~
~';r.'
__ ";'
-:~

\
t.1;~f,7
. .~~
('j.~!;-.
.
~~4~\" Esecuzione NOTi ordine 427

~
~k' . .,'
w,; ~"'.;
'} .'1,;-,,"
"I. h'"".":
:;r.: .~--

.~l~~::;'·~'.'. I Classe di istruzioni CPr]


'};$rJ~j_V" add omma e sottrazione in aritmetica intera 1
~;[~~,:',. mul Predotto in aritmetica intera 10
ll[j~~~~?,.;' " div Divisione a'n aritmetica intera 12
f;.r.~t.~~·, add! Somma e ttrazione in virgola mobile 2
:~Il:c:,," mulf P~odotto: ~gola mob~e, singo~a prec~~one 10
.~~~,~~,;", "" m~lfd P:O??tto l;Il v~[go.la mob~le. d?PPla p[eCl~l?ne 12
-~l'~{;";;· dl vf Divisione m vugola moblle, smgola preclSlOoe 15
~~~~;;~:::~. ,.:. di vfd Divisione in virgola mobile, doppia precisione 30
?~~~~h':; Tab~~a 10.1 Cicli nello stadio EX ~er ,is~ruzion~ per il processor~ ~on unita funzi~n~i
~~~::' ',,; multlclclo preso come modello. 1 valorI qUi nporta,t1 sono del tutto fittlZl e, seppur plauslblh,
' :~~l" non hanno vaJidita generale, ma solo nell'ambito della nostra trattazione.
*"..
:,j~ ~'i';f.~ :.::
~:"

'-:M~d'-'
;:lI~.,;~11 ~
'.<l"'~"'''i''·
,P(f..,., , ,
,':t···,)'· Nella parte che se~ue assumeremo che dall'unita eli emissione esea una istruzione
{~;.;-,~),.',,,,,
.-,,'"e..'"
.. ,~. n·
ogni ciclo di clock
"-""'''1-<-
'~.'4i.{-,."': '.
~l:",:.,!{,
I·I,.,'" '. ' .
,•
• Lo stadio EX e realizzato con Ie seguenti unita funzionali (Figura 10.1):
';~l,f;I"':'
~ ~"."-::"
"",:~!~., . _. .
11'~\\.).:.~­
:;,i:t;"."" ~: a) unita logico aritmetica prineipale in aritmetica inter:aj
"",~t."··
"~·~)R:¥::
"i"~?A-;;:
. "~~';" b) moltiplicatore in aritmetica intera e in virgola mobilej
j ,1.~ ....,·
'_·.... z'" .. '
,~,~}lIAC:,'"
". :tf;;5:~
,""'I·,,:'. c) sommatore in virgola
,
mobile;
• ",,'Z> .
"i'~""
,!~'t."~~

~ "JJ :i;:t;r,
.~r, m:- 1,,;','.
, ,
d) divisore in aritrrletica intera e in virgola mobilej
..,1, '

"~,,
\~ 't, "if":,
" JI
e) unita per la gestione delle diramazionij
;'- ':.
'..- -j,Y
:{, '<jkc . f) unita per la gestione delle operazioni eli Load/Store.
, 14- ~~!.l'
I ,.,.'j'''.
<!.,.~:," '
. ~:J..'J'. • Presenza eli un unico bus (result bus) per i risultati di tutte Ie unita funzionali.
" -o;.!i¢t .
':'I'i-P.·,·j;: '
' ,,,',"'"
,'. Il numero di cieli in fase EX per istruzione richiesti da ogru operazione e riportato
{~~~!A" ','
'~Jk;{ :'.
,,,-,,,,'-
:i,!',,,,wj .. ,_
in Tabella 10,1
I'" '",:1''<.'0'
"i~i!::>';.
~'u.f:'· . '
\:\'"'~"""'~~.
....,.. ,
~ .'. '"~ I 1,' ,
:, ;~~t"
..
10.2 Esecuzione
5 , .•,~,i' ~;.,
fuori ordine
~ ".••. ,. ".
..
'.'.'
~,,,,~,;.,
I "'''''~'. ,I
r: :1,;,'
?: _ ,;:-.<·, Consideriarno la pipeline di Figura 10.1, assumendo che i cieli nello stadia di esecuzione
, ,,'r""',',,
"..,'" _,"",'" ~,.,
corrispolldano a quelli di Tabella 10.1: con il frammento di coelice di Figura 10.2 ,
"t:
" ~'ifo,_
,',.,,,,.
"~"" l'ordine di comp1etamento della fase EX risulta praticamente opposto rispetto a queUo
.#"
"
~
C~:;"i ...•.
.""l~· __ · testuale. Piil in genera1e, date due istruzioni i e i\ con i che precede i, se i impiega pili
.~\ t:;",~;;-:;:' .
Jr ,~~:t . deli di Glock di j per essere eseguita, l'ordine sequenziale delle istruzioni puo risultare
~ .::':;;~" .
\" .• ,", .. invertito, con conseguenti possibili conflitti sia di dati, sia di eontrollo.
.•.
~
".-"'!.
"'<,,,.
,'" X J'f- ,
~' 'JI-i,':".'
• ..·...... 1·

ir
,(·t """.1'
,.,J". ' .
,\1 :-;:\1',,~.;
.,,' :,..~i-'~ ",',
\i, ,.,,,it.: ."
lE; Questa un'ipotesi semplificativa: nelle macchine superscalari, per aumeniare it paralle-
'".\ ..
"'I:·I~·' '. Hsmo, vengono normahnente emesse piu istruzioni alIa volta., II Pentium Pro emette fiDO a 3
;'"; f~:',~~:i ..,'
(microistruzioni.
" ':ro.
.
" ,'.'.;'.;1
;.:,,'.,"
~
>1 ,
~: '.'~'"
kt
,,~\
:ij'~ ..
I
• 'ii,
~~l':;[~
428 Capitola 10 ·~~~~J
~~.,.,.,.
,,~.lI ••,"
""":"'.I\~
'l-~'''''f'
Y'~~"
1 (100) divt f6,f2,f4 15 cieli
-~I\" ." ,
"(..~ /I

2 (104) ault f12,!8,!10 10 cieli '<:':~l


3 (108) addf f18,f14,fl6 2 cieli
, '''1:-
·
-·-':.~-~·1
.,."
.', ,"-'k,<
4 (112) add r3,rl.r2 1 cicIo <
'- '>
I:~l,._
'-,!:l
;~"~{
,:,{:-:{~
Figura 10.2 Esempio di sequenza d.i istruzioni che provoca un ordine di completamento ;:,::~
diverso rispetto all'ordine sequenziale di pr?gramma.. Si assume che Ie singole istruziooi ::t4~~
siano avviate aile relative unite\. funzionali a. successivi impulsi di clock. A causa del diverso ;':/~:;it
tempo di ~ermanenza nelle rispettive unita. fu~zionali, Ie istruzioni ~ e 4 ~ompletano 130 ~ase :'~~':tJ~
EX per pnme (contemporaneamente); 8uceesslvamente completa FistruzlOne 2; per ultlma ":i'~;~'''
?ompl~ta I.'istruzione 1. In ~efinitiva, l'or~ne di completamento delle istruzioni e del tutto ,..:t::;!~1:
mvertlto nspetto a queUo di programma.. </'.f...~,

..,.
,.CH~~,
".,~'
":~,,.,~
~, .[.....~
"-,,
'~':::..
,-r
Le istruzioni dell'esempio di Figura 10.2 vengono emesae nell'ordine naturale dato ':""~[,T
da! programma. L'esecuzione fuori ordine si riferisce in Questa caso, piu propriamente, :1~~,·.~
al completamento. In un sistema come quello di Figura 10.1 risulta conveniehte svin- · ·~vt'
colarsi dall'emissione in ordine, quando accade che un'istruzione deve aspettare a ':>:~ ;".;~:
.;;i'!l~i
essere emessa perche, per esempio, i registri che essa legge vengono scritti da un'is- ~~~~~;h,:
'"B
truzione che la precede molto piu lenta. La situazione e esemplificata in Figura 10.3. · ~,~,-:~,
,....., ft;
,~;
'~'."':t
,,:;'!"
,".,',•
,·<~.~
".,.:.
<. "'~"
1 div r6.r7,r8 12 cicli ,,--,,~-,
.' ,,'-~.
;;::.I
.',,\,,;,"'-W
2 mu1 r5,r6,r1 10 cicIl '!' ..~""
,1;:'~~
",'!;,;i
3 add r4,r5,r6 1 cicIo "''1/11"
,'
''-

4 mu1 r3,r7,r1 ·-''',


." ,,11
10 cicli ",' ~"1'
.'::':'.,~
5 mulf f12,f8,f10 "",)::
10 cicli ...... ;t;,."
I,:. '."j"
6 addf f18,f14,t16 :,,·,.,;
2 cicli
7 add
, :'~eQi~
r20,r21.r22 1 cicIo "';!.;"'J
'''''.:J:.
;":,:,~
,..'·:jl,~
~., ..
.~.~'c
Figura 10.3 La sequenza di istruzioni evidenziala necessita. dell'emissione fuori ordine. Do- ",;it't",.
"'~
pa l'emissione deU'istruzione 1, non ha molto senso emettere 1a. 2, in quanta questa. dovrebbe ':Y~·L
attendere 11 clock prima che sia disponibile il nuovo valore di r6; stesso ragionamento per <:;"-
..
\' .•.<.
, ~"
· ,:~,
l'istruzione 3 che dovrebbe attendere il completamento delPistruzione 2 (si noti che una even-
tuale rete di bypass allevia di poco I'attesa, in quanto il dato viene prodotto al termine delle" ~.;';
,..~
pipeline delle unita. di divisione e moltiplicazione in virgola). L'emissione di un'istruzione
che ha una dipendenza dati da una che la precede deve necessariamente avvenire quando ';~;~
"~,r;
essa e in grada di leggere dati corretti. L'istruzione 2 verd. emessa quando 180 1 e completata :'j,r"
... ~,
,,~

e la 3 quando e complet8ota anche 180 2. L'istruzione 4 non ha alcun80 dipendenza dati dalle ,...~;:
'.:!:'l,>
precedenti e quindi pub essere emessa verso la. rispettiva unita funzionale aI clock successivo .H,__
.. ~~
':'i
.
a queUo che ha emesso 180 1. La stesso r8ogionamento vale per Ie istruzioni che seguono. Esse ,t.
":?
possono essere avviate aUe corrispondenti unita funziona.li ai clock successivi. Se la macchina · ;."Iz
~:.i
fosse capace di emettere 3 istruzioni alla volta, al primo clock sarebbero emesse 130 1, 180 4 e ;I
la 5. ,~.
·,;"
·";;,,
· '
.:/
".t.··
· '(

Un argomento analogo a quello esposto in Figura 10,3 vale in presenza di istruzio- ":;:t
;;... t
oi di saIto eondizionato. Fatta la previsione, l'unita. di controlla preleva daU'indirizzQ .. "
~,~:
pronostieato e quindi vengono avviate istruziani che patrebbero non essere richieste se
...,
:~,ft
· ;~.
•,
,..
.'';;:" ,
'''·1-'

..
~~-::
~~~.,;,
,.¥;;.~_.­

;~ :~:.
)-
JI.!~I·?·' Esecw:ione fuori ordine 429
I "'_'",.'
",l •.-Irt:,.:
~~ t~""'.;.>,,­
'~ .~ 'A~"'-.
" ·t·...~<.: t"<'
" "' ~.
,.-.,,~"._"
1-
I.,~, " ..,-,'-:-.- 2
la prediziene risulta errata. Questa meccanismo viene detto esecuzione speculativa .
l: ;[[ts';' --
"1:; }:-- .'!.:...
-'' ".", " E evidente che la modifica , allo stato della macchina deve essere coerente rispetto
<- '.""" _" all'ordine del programma. E quindi necessaria riordinare Ie istruzioni eseguite, in
{
..: ".-:,'
l",'.' .", -~;!
: ::.: :::"" modo che esse producano l'esatto effetto previsto da11a sequenza del testa. Schema- 1-
~: '\;;',:,' ticamente, facendo riferimento alla Figura 10.1, la sequenza di istruzioni che esce i
~~ ~,;'y-:­ -
dal blocco delle unita funzionali deve essere quello dell'ordine del programma. Cia
~: :',:"\~:"
ti ',:.~:~;\'\' eomporta Puso ordinato del bus dei risultati.
~tJj,,";:/> La modifiea dell'ordine di esecuzione delle istruzioni non puo esaere incontrollata, )-
'l~ :ti':~"J anehe in riferimento aUe interruzioni e, come vedremo, aile predizioni eli diramazione.
:,~;,::;,:,,,,~ Ocearre fare in modo che 10 stato della maechina venga f,Ilodifieato in maniera coerente
,'f. .,~~ "" . con l'esecuzione sequenziale delle istruzioni ([Soh90l, [WE93]).
.'.... " 1
...
,; . " •.•' ....
',~
~~~
~
,
..' ,'~.
. ,';.'-','
'i~"'-'
"

"_'-'..,.
,,~::.~,
'"',
Nel seguito vengono presentati i tre principali metodi per 180 gestione dell'esecu-
zione delle istruzioni nel modeHo d.i Figura 10.1.
1-
r_~
Th' :,;{:<i.(.~ -
~' ~1t:~~,.~~;':·
''';'·
•n Metodo del completamento in ordine delle istruzioni, nel quale si forzano Ie \
istruzioni a essere completate seguendo l'ordine architetturale.
~~ ~:~:>~'-
:~ -::.';,~.:::'-:'
i! .-"; •..., .
B!''''''' •n Metodo del Buffer del Riordinamento, nel Quale le istruzioni sona cOIPple-
-
:.; ~cy}S
;'- '<"~''-''''- tate fuori ordine rna sonG fonate a modificare 10 stato della macchina seguendo
,;, ;;'!';'.,", \
l'ordine architetturale.
;~ ·f!;~·~:·
t1. r.:~ ,-'....,
'. ,.~"
• . ,. "r,',;:
..,.
I
-
~;Fc,·"".·,
• n Metodo deWHistory Buffer, nel Quale si pennette alle istruzioni di aggiornare
.~ ~,,!,.~}: .
"'''. ,~ ....- '.
,,,> ~~"
.', ~,':':+
',' .
Il;' .:,: •....,,"'C
-W ",...., .. ~~
.. 10 stato in qualsiasi ordine, conservando perc 180 possibilitA di ripristinare uno -
", state coerente in presenza di confiitti.
i~;1
,'." "',"'''''''
~"" '.1'':''~'.:'
~ ..•:"'t.•. ,
1'",'<' '"1.::,,,..
.. ".-.'."
L
'~ " .':1" ..
1 ".,.",,_,'
'~'", ,,'tM-..-:,
'--"',' Prima di illlli!trare questi rnetodi e necessaria esaminare can maggior attenzione I
:.
"J, """;'--'~'
",",
",:,,~:,~!,,"

" '...."'"
;t~·r' . ",,:':;:: ,',
la struttura pipeline di Figura 10.1. -
~~ ~,;S1~i:"(.\'
J-~ ',-'":";'ii'~' -
.~'' ,',,' )-
..
~~'t, <~: .. '~','
'-'~"
10.2.1 Gestione delle prenotazioni del bus dei risultati
~a} \,~,,;-:c:
cl~ "~-'<'",;:,".
,.tr,,i"·-,'."" ;'
~' ,;\'~>", In Figura lOA vengoDo mostrati i percorsi che collegano Ie unitA. funzionali di Figura I
L~. ;';~";~.(,,"
.~~ "~"'~.,"':
", .. .'
'~: ,,0',:,,::
' "
10.1 al file dei registri RF. Siccome si fa l'ipotesi Che sia presente un
solo bus dei 1-
,,~ ; ..,:"': risultati, risulta necessario prevedere un meccanismo di prenotazione del bus stesso.
;~$ "X.':~~·, n protocollo dl prenotazione si avvale di un registro a scorrimento dei risultati -
~. ',~.,
(RSR) la cui struttura e mostrata in Figura 10.5.
~~ "'~~: <--
;~,~'" . ..:'
"i>
,;r
~i
';0:.'
. ",'
" "
AI momento dell'emissione dell'istruzione A che impiega j cicli di clock3 viene
a essa riservata la posizione j-esima di RSR, in modo che, dopo j cicli, il bus dei
)-
:v; .. ~ " -
_,>l' ~,~,. risultati Ie venga destinato per i risultati da essa prodotti.
.ij; :.; ."
..,c'_ ' .
'.' ~
A ogni ciclo di clock si ha uno spostamento verso l'alto di tutte le prenotazioni
,. ', .. '
?i; ,.'
i~:
Iz,. .~.,
contenute in RER (il contenuto della posizione j-esima viene posta nella posizione
j-l-esima); quando una prenotazione giunge in eima (nella posizione 1), at cicio di
)-
I~":"',i'
.?; ,,'
":'!'.. '
,,l·· . :,":""
'- .' .
/~ :.',",
t..·1·C·'· . "
'" ' , ',',
2Si noti che esecuzione fuorl ordine ed esecuzione specula.t1va 150no case diverse. In partico(are la
parola "speculativa" si riferiace alIa previsione delle diramazioDi e conaeguente esecuzione e compte· j-
tt~: ..':-::.: tamento delle istruzioni prima che sia nota l'esito della ditamazione stessa. Nelle ma.cchine moderne,
t~1: ',' '. essendoci sia esecuzione fuori ordine cbe esecuzione speculativa., vengono considerate come sinonimi
"'\ ;:
:"
.. l'una dell'altra.
.•,."t1,';....:;;':.-: ~.
.""f <:-":---
W.. ,.:.
3Ci si riferisce naturalmente al numero di cicli di clock per la fase EX
)-
- 430 Capitola 10

I
- UFI
B
"s
\ r

~
1
S
u
UF2 !
- \ a
·
· , 1 RF
- ·
I UFD

- Figura 10.4 Organizzazione di un processore con n unita. funzionali multicido. La struttura,


prevede un solo bus dei risultati (per semplicita., in figura e stato tracciato un solo bus da.
- \ RF aUe unita funzionali, anche se, come abbiamo gia avuto modo di osservare, si hanna
normalmente due bus cude consentire la lettura contemporanea dei due operandi). La
presenza di un unico bus per i risultati delle unita. funzionali impone l'utilizzo di RSR
(Re3ult Shift Register), 10 speciale registro per 13 prenotazione e l'uso del bus da parte di
I una singola unita. alla volta..

- clock successivo il bus dei risultati viene riservato ai risultati provenienti dall'unita

- I funzionale nella Quale e appena terminata l'esecuzione dell'istruziooe che ha generato


suddetta prenotazione. Usato il bus dei risultati per la scrittura dei risultati nel banco
dei registri, la prenotazione lascia RSR.
• Se al momenta dell'emissione dell'istruzione A la posizione j-esima e stata occu-
pata da un'altra prenotazione, l'istruzione A viene fatta attendere all'interno dell'Is-
- \ Sl,Je . Register
. ..
per un cicio di clock, per poi riprovare a inoltrare la prenotazione della
pOSlZlOne ]-esuna.
• La prenotazione del'~us dei Tisultati si effettua scriveI:!.do Ie segl;lenti informazioni

• I Dei campi <Ii RSR (Figura 10.5). .

• L'identificatore dell'unita. funzionale che eseguiral'istruzione.

• n registro su cui dovra essere scritto il risultato dell'istruzione. Questo campo,


• \ insieme al precedente garantisce la giusta cODnessione tra la sorgente del risul-
tato (l'unita funzionale che 10 ha generato), e la sua destinazione (il registro di
destinazione). '

• Un bit·d.i validita. della prenotazione, impiegato per indicare se la posizione del


• \ registro RSR rappresenta a no una effettiva prenotazione.

• n PC relativo all'istruzione. Questa campo non viene utilizzato per la gestione


I delle prenotazioni del bus dei risultati , rna per il ripristino di uno stato coerente
in caso di interruzioni 0 di prediziooi di diramazione errate.

\
" '.". , 431
~:.,<:'" Esecuzione fuori ordine

Ul" l{(f V t'rogram vounter


1
2
3
4
5
· . ·
· . ·
· ·
n

Figura 10.5 Generica organizzazione in campi di RSR. n campo UF identifica I'unita fun-
zionale impiegata dall'istruzione; Rd il registro di destinazionej Veil bit eli validita; il
Program Counter e queUo dell'istruzione stessa. Come illustrato in seguito, questa registro
entra in tutti i protocolli di gestione fuori ordine delle istruzioni anche se con formato diver-
so. Le posizioni del registro sana numerate da 1 a n, dove n e la lunghezza della piu lunga
pipeline con cui sana realizzate Ie unita funzionali.

Considerando, per esempio, Ie istruzioni 2 e 3 dell'esempio di Figura 10.2, dopo 1a


prenotazione del bus dei risultati da parte dell'istruzione di prodotto in virgola mobile,
la situazione in RSR e quella <Ii Figura 10.6: poicM l'unita funzioDale impiega 10 cieli
di clock a espletare questa operazione, la prenotazione viene inoltrata aHa posizione
10 di RSR.

nw ::!!:d V Pr~am Counter


l'
2
· •
· · · ·
· --riJg-
10 mulf f12 1
· · ·
· ·
· · · ·
n u

Figura 10.6 Contenuto di RSR dopo la prenotazione dell'operazione di prodotto: l'istru-


zione eli prodotto occupa Ia posizione 10 dovendo permanere nell'unita. funzionale di prodotto
in virgola. mobile per 10 dcli di clock.

In Figura 10.7 e mostrata, invece, la situazione di RSR al cicio di clock successive:


i cantenuti degli elementi di RSR si spostano di un posta verso Palto e }'istruzione di
somma prenota Ja posizione 2 di RSR.
Stabilito il criterio di gestione del bus dei risultati, vediamo come puo essere
affrontato ii problema dell'esecuzione fuori ordine delle istruzioni e del mantenimehto
delle stato di macchina coerente can I'ordine del programma.
, "
: ; .,('
'.' .~
,"" "!l1
:-;*~
~'I'
': j~it,
432 Capitolo 10 ' .,"!~:
. ~

','",
: 'li~;j
I :.-~;~~;lL
, "'S
.'",~,,~
UF' Ka v t'rogram vounter " ·.\~t~1
1 ,·... Ie
.' ."""r';>"~M'
;:"
2 addf fl8 1 Ie ,':, >~t
. ;.' .~~!t;:
, ,
, ",."",®
. ':~:.;'!J;
, , , -&,j

8 u
,

\:;.~~~
9 mulf f12 1 l1l4 . ';':\l~~fl
10
'):)Jl!.\
}1:~~~
, ,
, , ,
, , , , :..<-.:;!~J
••..'f',
'/.~~
,,;:,101l'
n I I" I U
0 I I '
'.r>.it
. ", "',
Figura 10.7 Contenuto di RSR dopo la prenotazione deWoperazione di somma in virgola' ir/~ ~
mob~le, che va a occupare la posizione 2 in qt.tanto Ie ~ccorr?~o 2 cicli ~i p~rma.nenza nello ,'~)~~it.I~
stadlO EX per esse:e co~pletata. La prenotazlOne dell'lst~uzlone a?~f Vlene mtrodotta dopo ',<-u~it
che la precedente IStruzlOne e stata scalata verso J'alto dl una pOS\Zlone. '·~J!;I
· , :~
,",,'i.. ,
, :·:-;',~'~;i,
10.3 Completamento in ordine . "~
~:"',";,
........
c'<~f:
:

" ,"''M\
"~"
":.<: _.
.• ~<:~':! ,

n completamento. in ordine si ottien~


attraverso la prenotazio.ne di RSR in modo da "';~i~
forzare la concluslOne secondo l'ordine del programma. Ovvlamente anche 10 stato '-~_~'~l"
di maechina ris~lta a~or:nato s~t1do. 10. stesso ordine. Si .distin~on? due casi: :':,<W~
compIetamento m ordme nspetto aJ regIstrl e compIetamento In ordme nspetto alla,:"'::?~l<
· '. ',1;
memoria. . .:,:T'~~l
· <t'i..~
::. -i'j ~
'..,:,'
"., , 'I '.
'
"'.!.: ·f:· "
'~'"':
.. -

, ;:;)";"~
10,3.1 Completarnento in ordine rispetto ai registri · .~ '~.
',.-"
~;:-"
...'. ;:'~:

,. ",:;'::r(
"'~'.,'''';{

,';·,:,,'
<"~:t:
Per ottenere iI completamento in ordine rispetto ai registri basta fare in modo che nella ~",-..:

.~~
prenotazione del bus dei risuItati non 5i renda possibile ehe alcune istruzioni II pass ino .I"J'i\
'i-~,;",':
avanti" ad altre. A tal fine , l'istruzione che prenota la posizione j in RSR occupa anche ,"''''''''~
."",-i:
"" :>
tutte Ie posizioni libere daj-l a 1, inserendo in queste posizioni informazioni che, pero, '-'!-i
··'-·
~ '''''1
non modificano 10 stato del processo. Per indicare l'occupazione delle posizioni si usa >:':V
'. "~
;':~:~
il bit eli llvalidita , che, in questa caso vieI;l.e ad assumere un significato cii "posizione >j'~i
riservata , pili che cii posizione valida. Occorre marcare Ie posizioni oceupate, rna _;· ,.1>
.,:....1>
che non producono effetto perche non corrispondono ad attivita. delJ'unita funzionale, . ......
. ' ~"
"l'
~.<,
in modo da indicare che esse nOD richiedono Peffettivo aggiornainentodel registro ·".,b
.. '~
cii destinazione al momento dell 'uscita da RSR. n modo pili naturale cOllsiste nello
"'.,..
- '<-
.-,."
scrivere nel campo deIrunita. funzionale un valore eonvenzionale.
".~
- '~.I '
Supponiamo che dopa l'istruzione A, che ha occupato Ie prime j posizioni, venga
, :(::
.;.d-
"'::
emessa l'istruzione B, che necessita cii i cieli di clock su altra unita funzionale. 5i · .
-<:.
,-.:
'"
possono verificare due casi4 . ,. ::
.
,
. .:
".
"Si fa I'ipotesi cbe Ie istruzioni veogano emesse in deli dl clock suc:cessivi e che quindi, quando
viene emessa l'istruzioue B, l'istruzione A aia in posizione j - 1. .....
, .

'<''''
';"
)-
Esecuzione fuori' ordine 433
-
L
I
1, La posizione; di RSR elibera (ovvero; > j-l); in questo caso ossa viene riservata -
, a B insieme a tutte 1e posizioni superiori aneora libere {ossia non bceupate da
AI· ' 1-
2. La posi~ione
i del RSR n?n e li?eraJo:vero.i < j -1); in q~~to
ca.:0.Pistruzione -
l B cleve attendere nel reglstro dl emlSSlone sme a che la pOSlZlOne 81 libera. \
\ ,~t~~i~, Riprendendo l'esempio qi Figura 10,2, l'istruzione mulf pub essere e,:,essa solo 1-
~ ~a~!~t>:·! quando la precede;I1te lascia lib.era la posizio~e.10.in RSR. AI momento ~ell etnlSSlOne -
J.. :r,t~t;l-;l'~ .delPistruzione mulf vengono tlservate Ie pOSIZlom cbe precedono la declm3 se queste
~I'• '<",," ',. • • )
~ ~'.'~l.' ~tF:\: non sana gIa. occupate (FIgural0.8 .
. $1"1.; 1"''''
I .':f.l.ii I~"I' '
I.
l j;~lr;>. l'Uf' V f rogram ~unter
~\· ',~W:f~rr~~"
1
nw
1
-
t:" f~~:~;~:.<
IC~~~;;:::j.,.
;,t ,:); ,i"I?f ~. !
2 -
, ,
1
, ,
)-
~~! ~""~',:i"l "'i
,i.' ;'t-~il,~:V' j .
9 - 1 .,
,~ ... ' '<O.Ie' ,-,'" :
:;:~:l. -';1;',¥->;." .. , '
10 mulf f12 1 Ill4

1-
:"f '~Jt'!f..!""-
\'". . "",,"',' 11
"~t<Jl'"''':-'''
. "'1- '.
, t ~'t:f~~,~. , , ,

~il ~J~;~':'<' n -i
., ~~J,;t,~.
~ i{ ;~t1i~:.~ ." Figura 10.8 Contenuto di RSR dopo la prenotazione da parte dell'operazione di prodotto ,
<!I~:~::;M!:'
;~aq <~L'J:'-.
in virgola mobile: per forzare it completamento in ordine, l'istruzione di prodotto oecupa
(bit di validita a 1) Ie prime 10 posi2ioni in modo che nessun altra istruzione piu veloce possa
J-
lli' "'~h"!'~'
~. .J(,v,.,-
.I,',,·
~,,(,
-,~""",,,,,
""'il-I',": "
~.~,~,,,,.,' '.
usade per 1a propria prenotazione. Le posizioni da 9 a 1 devono essere marcate in modo
da indicare cbe esse non riehiedono t'effettivo aggiornamento del registro d.i destinazione
-
:"~M "~'r-~ '-.
-I' ..,J;j'.:"~:...
'ililii ,I., ~,~:t~
~';' . "..;."j-.! "
.,

"~., "·~":'1;; ..
"
al momento dell'uscita da RSR. n modo piu naturale consiste nella scrivere nel campo
dell'unita funzionale un valore convenzionale (e stato messa una linetta. assl,lIIlendo che 1-
:l
tutte Ie posizioni da. 9 a 1 siano vuote). Naturalmente se gia un'altra istruzione, in una fase
(,'~t' :i~~q ,.:-
il. ••;
{' ,I, ,<II"

':'lir
t_("",,:, ~,
:;m .~~I'>I""
di eseeuzione pili avanzata, fosse presente in RSR, per esempio in posizione 5, il prodotto -
occuperebbe solo le posizioni libere, queUe comprese tra la 6 e la 10 (~ 1 di pagina 433).
:';lW ,,,~.~I.',

~~ <l;;~~\(
\¥fl ,; ·'h.~,/ .
1J-
:'lr~! ~:r.,i.'I.,
~'J,~I ''','
:.f';:', It-.'. I",'
-
1',~ ,.'\',
>"'1:':'" .., ,".
i.~g ,Y·.1::~", AI cielo di clock successivo, potrebbe essere emessa l'istrozione add!, rna cio
·a "".~.
1 '," .;. >- non avviene giacche la posizione 2 e gia. stata occupata. L'istruzione di somma cleve
':' ,.
V:'. ':"';.\~ .
..
~""
~;ifi i"i,,,:"· .
il:.i ,!",~, '.
>:;',"< '...'~" "'.'-
attendere nel registro di emissiqne per attri 8 cieli di clock, fino a quando 1'iBtruzione di
prodotto libera la posizione 2 (Figura 10.9). Essendo Ie istruzioni forzate a terminare
)-
.
>.':".=(, : ,~:.,.".
"....
'.~~ .. 1
,~/ I,,~!~'
,-,
.','

bi,.., .....,') "


. in ordine anche i registri sono modificati secondo l'ordine del programma.
e
La tecnica ora descritta molto semplice e richiede una Iogica aggiuntiva poco
-
~,il'.',
. '.~.
-::1"" •• '...
""",
''',
~"
I'\'!~'
".'
:'
".i, ,"
!,'.. ,

~~'.i" eomplicata. Thttavia si paga un prezZo per questa semplicita. realizzativa: non
sfruttato appieno il parallelismo delle unita. funzionali in quante Ie iBtruzioni piu Iente
e 1-
:7.~\.- '> ;', bIoccano nel registro' di emissione quelle pill veIoci che Ie seguono.
-;;~ 'i-~l.l~', '
:"~~
" ~ ".'
.' ,. "~'~'
.. ,

:"~!t_\ "
:~:1i \,'J,
.~~)- \-::',,:, •
-
,1-,,, ".'
10.3.2 Completamento III ordine rispetto alla memoria
'~. '" .
:>:~~. ':~. :.
.~r1·'
,. .' . ,_,'
......
<<f
.(.'.-'
,,~.;

'''~'
;
.
" '",

.
,:.,'

.'.,
.', n problema dell'ordine si pone non solo per i registri rna anche per la memoria.
completamento in ordine rispetto alIa memoria si pub ottenere utilizzando due metodi.
n ).
'~"" - "
".:?~' ::.-..:'
-
- I 434 Ca.pitola 10

)~'r~
~.,.,.
""I,F ,
- I nw 1ta v r-fOgramrM-0unter
-,.'::'rt,
, ./ ~tt
~: ~tb;,
i -
\
1 mulf £12 I '';~~
"" ','lji~" •

- I 2
3
add! fiB 1M- ,"
I,;'
,.
:~(~~.
'::1"'&1~)
",
i,',
."'- ,'m
" 01
"
_'
· · . · ;.\~, .
. ":):~2~r
II •
·
·
·
i-
·
·
': 0:;~i~
,. .....,;','
".;~.-'
- n I I I U I I ~.'·;'t,r;r
.,..""'~I
"t'.'
f.

. "~:.ri,,r.,T,j'

- Figura 10..9 Contenuto di RSR dopa la. prenotazione del}loperazione eli somma che dev~ _'l~}~~~I·~
a~tendere che Ia. prenotazione d~~'istr:uzio~e.di prodotto. a.~bi.a liberato la posizione 2 prima, t~~t.~'
I di occuparla, attendendo nelrunlta di enusslone per 8 clcli di clock. "<'\i~,!J,
-";/ ;;~
"'··~··l"-
, ,,,'-';,,iI'-fl"'£;'
- n processore non emette alcun comando di memorizzazione (store) prima che Ie ':'1jXt.fj~:~~
'.';'i,',!$li:~

I 1. .N"l!n "1
istruzioni precedentemente emesse (tra· cui eventuali istruzioni di diramazione) '~~~':r~",,~
siano state completate in modo corretto: cic viene ottenuto permettendo al re- '·':;'~.I~~t
I

gistro di emissioDe di emettere istruzioni di memorizzazione solo quando RSR e ··'·i~{:<Oi!l:-


- vuoto . I,
....'-I.;e.l

I
"'
.f!lI,""'.-'.
,. ,,.,.,
l'-.: .~,~

: ",'.';,JI!;.?~
- 2. Si coosidera la memoria come una particolare unita. funzionale5 . Analogamente ·'~::F;~
, .~-.;;;;;}~.

a ogni altra istruzio.ne~ }'istruzi.one di rn~m.orizza~ione occupa una posizione in ,~~;'5?;1


- MR, nOD al fine di nservare il bus del nsultatl, rna per controllare la coda .. :'!~'1~11i<:
I dell:~nita .funzion~e della memoria. L'ist~uzione d~ memorizzazione oc~upa ~n~ <f~~ll
poslZlOI~e In RSR In modo che questa ragglUnga Ia Clma quando tut~e. Ie lstruzl~m. ;'3t~~$;:'
emesse 10 precedenza sono state completate. Non appena la pOS1Zlone relatlva ,:.:~!0"
- all'istruzione di me.morizzazione raggiunge la cima del RSR 1 l'unita load/store";::l~~
- l viene comandata all'esecuzione della roemorizzazione richiesta. ' ,":,'~:t;~,'

Eritrambi i metodi proposti hanna 10 stesso effetto: impedire che istruzioni che .7;,,'.;''';''~
. "I
. ..
t~·;..,·",
'
, :.",.,;!.
'
_,
.;-.~

~t11;f;
precedono un'istruziane di memorizzazione vengano completate a memorizzazione ef- :, : ':·. :;·~~i
~ I fettuata. La differenza e che Be nel primo caso l'istruzione di memoriziazione attende ... ,-";·;;
-,."".
1"·,
..rti
nell'Issue Register, nel secondo caso viene inserita in RSR con 1a possibilita di avviare ,""'""''',,:1
',. ';;ft.,"
'. r";;-<'C"j-.
~

Ie istruzioni successive.
',,\~:~~ts~
- c,:'"
'. ::V.:.
.'
.~~,
'.-.,:.;

- 1 10.4 Metodo del buffer di riordinamento


.-. '"" '~"
· -: :'i(-.~,
....:.. ~'.,.
· .""-";.:.
'.
•• '

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

- \
n metodo del Reorder Buffer (ROB), utilizzato in nU)D.erosi processori moderni 1 per-
mette alle istruzioni eli essere eseguite fuod ordine, consentendo l'esecuzione speculati-
.' '::It
"i-"':

: ~'~
., .
va delle istruzioni. n ROB viene inserito nell'architettura considerata come mostrato
"';':;
- I in Figura 10.10. Lo schema eli Figura 10,10 presuppone che Ie istruzione completate
esCallO dalle unita funziona!i ed entrino nel ROB. Nel ROB Ie istruzioni eseguite ven- ,'- ,,'
'. '\':i
,,' , ' .

- \ gODO riordinate in modo da mantenere la coerenza tra. state di macchina e modeno


seq~enziale di esecuzione (Ie istruzioni sono avviate aile unita funzionali solo 5e esse
j.

.,:' :.

'" '-:'-
;',:,
• non elipendono dai risultati delle istruzioni che aIlcora non sono uscite da! ROB).


I at questa l'ipotesi fatta nel tracciare la Figura 10.1
"';<"
, .,' ":

.'.. ,,
:. ',
":-<r
• ~.>i:~'
. ";;.)..
':."":~'''
\ \. :"1o:t
Esecuzione fuori ordine 435

~~,
·lI*\u"-,,,,,
.' """',-'
,)j"<:::<',::"
-;,'id",.
\-j;~~":;"':
La presenza del ROB richiede anecra RSR, ma 1a sua struttura risulta leggermente
• "''fO.
.~~~,,. modificata (veeli sotto).
"r;~:·-
",':r,.. :i;,.
~~'; B
-'":J.r.;,'
'~,~i;- u
_••,..;
. :;'j'-' s
';';~j"
,.'~:;~h><.,
.:a: '
'~~~r'
UFl
;<:;.J/;', .
'~ll .
·:rt~.,·'"
""" ,-
~·~r.~" UF2
~t5'"
:~rl',:". •
·
..;'f:,";
,.",
,....,"'~,\
· ROB RF
'2tiI)-:. ·
!:~~~'::.~,:
_;:>- •
-~f,. UFn
{tJ;::~
'.~C;
-"
.. rr.,·;
:;l:'{;""
',.,"
'.'Irf'·
:7'fil.:
~ !!!.r Figura 10.10 Organizzazione eli una. pipeline col metoda del Reordering Buffer (ROB).
':~gr:,',~ ROB consente l'esecuzione fuori ercline delle istruzioni: gil clementi di memoria della
.~;t!t.:. ma.cchina. vengono modificati solo successivamente secondo I'or<line seqjlenziale,
l ~+'"
4~.!",
;.i}f;~' ROB e gestito come una coda circolare (veeli Figura 10.11), con un puntatore di
~::*~':,' testa F t e un puntatore di coda Pc. Sono considerate valide Ie entrate che si trovano
' ~;~':L nelle posizioni comprese tra quella puntata da P t e quella puntata da Pc,
, ;ilK,
.
.. , • .
>'.
.~".'

"~'.
L'insieme d'informazioni inserite dalla generica istruzione nel ROB e cool strut~
; ,~+~,:~ turato:
i. r~h··
i
~
,
..••.
',~:~:,
• campo contenente un identificatore del registro di destinazione del risultato dell'is-
truzione;
1" ,';:j(.
-;:.,'"
-. ':,r,~. '
~ l~,~; • risultato dell'istruzione;
,
' .....
~~,~

. :',;(';'
;'

"' '.' '-.'


• bit di completamento indicante se I'istruzione che ha prodotto I'entrata e stata
.''l!-
, ;".... gia eseguita 0 meno;
. '\; .
. \'/
;, -')~' -
: • program counter relativo alPistruzione.
t :·t:::·',
:~'>.

~. '.'
All'emissione di un'istruzione, Ie informazioni richieste da ROB vengono inserite
., nella posizione puntata da Pc e Pc viene incrementato modulo la dimensione del buffer.
;1. ',~'' Contemporaneamente al posizionamento in ROB, istruzione riserva it bus dei risultati
..
'
tramite RSR, secondo Ie regole viste a! Paragrafo 10.2.1.
-". • '"
RSR ha ora il formato mostrato in Figura 10.11: oltre al bit di validita e all'uqita.
.,
funzionale esso tiene traccia della posizione dell'istruzione all'interno del ROB (08-
,1'"..
-' sia il valore del corrispondente P, a! momento dell'entrata). Al completamento eli
"1 un'istruzione, il risultato viene scritto nel campo Risultato nella poslzione del ROB
:.

.
>

".
corrispondente. Quando un elemento e raggiunto da! puntatore di testa Ptl 1a logi-
,: :. ca di gestiooe del ROB attende che il corrispondente bit di completamento valga 1
r i.:.
';." ,F:·,"('
'' ,'~'.
ti . t-.;
.36 Capitolo 10

nw v pmm- rna ,sultato


" r rogram vaunter
'-.".
-"
. ·,~;;,~I
", .'!i:,lj,
1 1
~,s~~rl'
2 P, -> 2 ,__ .i".1
,_~?i"

3 3 :-:"'~"-i,
-..:.':"
4 4 .:;~.' ~
P, -> 5
_. ;H~:,
5 ,,;_:~~:I­
"1""i~,
.",';J
..'-"iM!'l'•"'."
.":.,
·
·
· •
·
·
·
. .
.
·
·
. .'.,.
'

...'",
".:\0;~.'
-'"
','-: ""l:i
:'::':i~-!ii
n · _.': \.."i,,1
m
':;~~~*,
•.$i>
.'.!~,
. - .• 'I~I
Figura 10.11 Organizzazione del ROB e di RSR in sua presenza. ROB e gestito come una <Ji1l}~
coda. circolare; Ie entrate valide sono quene cornprese tra il puntatore di testa Pt e queUo di -:\~:,::;r~
coda Pc. Le istruzioni , at momento deU'emissione, vanno a riservare la posizione del ROB ::::';~~~
puntata cia Pc. (de viene incrementato per puntare la posizione 5uccessiva). 11 puntatore .;~'
di testa Pt individua Pistruzione che , una volta. completata, andra per prima a modificare
10 state della inacchina. n bit di completamento (C) serve proprio a questa: viene posta
ugnale a 1 quando I'istruzione conclude la fase di esecuzione. II funzionamento" di RSR e
ana.logo a queUo visto in precedenza, tranne che, al completamento di un'istruzione, anziche
andare modificare 10 stato della macchina! i risultati vengono scritti nell'apposito campo
(Risultato) del ROB e it relativo bit di completamento viene attivato. II bit V assumere il
significato di validita.: quando vale 1 identifica una posizione occupata da. un1istruziODQ. n
campo pROB serve a mantenere'la corrispondenza tra I'istruzione in RSR e 180 posizione in
ROB.
Si ooti che, essendo Ie stesse unita. funzionali in pipeline! Is. dimensione del ROB m e sicu-
ramente maggiore di quells. di MR, in Quanta dovrebbe poter accogliere tutte Ie eventuali
istruzioni che stanno progredendo nelle vatie pipeline.

(istruzione completata), A quel punta, il risultata viene scritto nel registro di des-
tinazione. La stato del banco dei registri si modifica percib in maniera coerente col
modello sequenziale.
Facendo riferimento all'esempio di Figura 10.2, in Figura 10.12 viene mostrato 10
stato di RSR e eli ROB dopa che e entrata I'i,truzione 3 (addt). Si sup pone che
nessuna istruzione precedente la 1 sia ancora in ROB-RSR. In Figura 10.13 in viene
mostrato 10 stato di RSR at clock successivo! quando,addf ha raggiunto la testa di
RSR.
La Figura10.14 dipinge 180 situazione ancora un clock dopa: l'istruzione addf e
uscita da RSR! ma non da ROB, dove perc e marcata come completata. La prima
istruzione a uscire da ROB saral'istruzione 1 quando verra. completata. A quel punta
tutte Ie attre saranno gia. state rna-reate come completate e verranno estratte ai clock
SUCCesSIVl.

La coerenza della stato salvato rispetto alIa memoria avviene in modo analogo a
queUo vista per it metodo del completa.mento in ordine delle istruzioni: la via pili
semplice consiste nel trattenere Ie istruzioni <li memorizzazione (store) nel registro di
emissione sino a che Ie istruzioni precedentemente einesse sono state completate in
modo carretta. La soluzione pili 'complicata prevede invece di inserire un elemento
nel ROB come per ogni altra istruzione: l'istruzione di store rimarra. nella pipeline
delPunita. load/store sino a che l'elemento non aVralasciato it ROB.
)-
Esecuzione fuori ordine 437

I1fcI lIiSiiTtato ----u ----pr~am Counter


1-'
v p
1
-
1 U
2 -
, 2 ,ddt 1 5
Pt-t" 3 £6 - 0
' 1M j--
~
~ 3
4 I---+(f+---i
4 fl2 -
J
9 mul! 4
P, ->
5 t18 -
.
• 10 · . . · · · · \
13 d1.vt 1 3 · · · · 1-
· u . · · • •

, n m
· • · ,
-
\
~~
~! 1-
~I -
1
1-
-

1 adf ~ 1-
2 o P, ->
3 · . . 1-
4 · U . \,
8 mulf 4
Po ->
10
12 did ~ -i
n ml I . II . I 1-·
_.
Figura 10.13 Contenuto di RSR al clock successive a quello della precedente figura. L'is-
truzione add! ha raggiunto \30 cima di RSR. L'istruzione add, che richiede un solo clock, non
puo essere emessa perche andrebbe a collidere COD addf. l-
-
n Pentium Pro usa 13 tecnica del buffer di riordinamento, anche se in modo diverse )-
rispetto a queUo esposto. Le istruzioni una volta decodificate vengono trasformate
in micr<>-operazia11i e inserite nel co,iddetto instruction pool (il ROB) dove posaono
essere eseguite fuori ordine, rna sempre in modo da fare salve Ie dipendenze tra istru-
zione e istruzione (facendo cioeattendere Ie istruzioni che necessitano dei dati prodotti
dalle precedenti). In attre parole, diversamente dar nostro madella, secondo il quale Ie
1-
istruzioni decodificate che non pOMona essere emesse aspettano nel regiBtro di emis-
sione, nel Pentium Pro vengono trasferite all'instruction pool appena possibile. Da 11
vengono messein esecuzione (arnate a.lle unita. funzionali) in modo da rispettare Ie
dipendenze. Una volta conclusa l'esecuzione sull'unita. assegnata., Ie micro-istruzioni
1-
ritornano nel pool, da. dove vengono estratte dall'unita. di prelievo (che ricostruisce
1'ordine del programma). La differenza e sostanzialmente terminologica, concettual-
mente basta estendere i confini del ROB in modo da comprendervi anche l'unita. di 1-
- I 438 Capitola 10

- v ~. I
I1Uf SUItato L; .t"'Iogram L:ounter
1 add
- \ 2
3
-'-
P, ->
2
3 h6 -
~
4 £12
- 4 · · 5 fTS !roSultato 1

- I 7
10
mulf
·
1
.
4
· P, ->
6
7
r3 U 112

T •·
11 divt · · ,

· · ·
- n · · .

- I cline3-6 m

Figura 10.14 Contenuto di RSR e ROB dopa the e stata emessa I'istruzione add che va
a occupare la prima posizione di RSR e 5i mette in fondo a ROB. Vistruzione addf ha nel
-
I frattempo completato la sua esecuzione. D risultato si trova in ROB e verdI. scritto in fi8
a1 momento dell'estrazione. Per prima. vena estratta dal ROB Pistruzione divt, essendo in
- posizio:p.e eli testa. Quando essa emergera. da RSR, il suo risultato verra scritto in ROB e
vena asserito l'indicatore C eli completamento.
-
I emissione. n ROB del Pentium Pro e capace di cootenere fino -a 40 micro-operazioni.
- Rispetto al Dostro modelia e'e un'altra differenza sostanziale: l'·unita emissione,
- \ e in grade di emettere in parallelo fino a 3 micro-operazioni per periodo d.i clock.

-
- I 10.4.1 Uso di ROB e di percorsi di bypass
-
- I L'utilizZQ del'ROB, pur permettendo aile istruzioni di terminare la lora esecuzione
fuori ardine, fona 10 stato a es5ere aggiornato in online sequenziale. Di conseguenza,
- ie istruzioni che arrivano a.l registro d.i emissione e the mpendoDo da risultati che sana

- I aneora oe] ROB, restano in attesa sino a quando i dati vengono scritti nel banco dei
registri. Cia porta inevitabilmente a una riduzione delle prestazioni del processore.
Un metoda per ridurre 13 8uddetta penalita consiste nel disporre dei percorsi
• di bypass cbe connettono gli elementi presenti all'interno del ROB con Ie uscite del

- I banco dei registri (Figura 10.15). In questo modo Ie istruzioni possono usare, come
operandi sia i dati contenuti nel banco dei registri, sia quelli che aneora si trovano nel
ROB, evitando I'attesa nel registro <Ii emissione per la scrittura nel banco dei registri.

r
• La presenza dei percoIsi di bypass non impedisce che 10 stato della macchina sia
coerente, dal momenta che il banco dei registri, esattamente come avveniva in assenza
• .dei percorsi di by-pass, viene aggiomato in modo coerente col modella sequenziale d.i
esecuzione del programma. Un ulteriore problema si presenta qualora esistano
• percor8i <Ii bypass multipli: pub accadere, infatti, cbe piu di un elemento del ROB
debba scrivere in uno stesso registro del banco dei registri; per evitare problemi , in
• questo casa, si anticipa. verso l'uscita. del banco dei registri it data cantenuto nel piu
recente elemento del ROB relativo al registro-destinazione in ,questione.

\ '. '-
Esecuziane fuori arrline 439

B
u
s
UF)

UF2
, • ,

.
ROB
Ill· .. I
RF
>--
I Rete di byp""'.
UFn

Figura 10.15 Percorsi eli by-pass e ROB. Questi percorsi, rendendo immedia.tamente dis-
ponibili i dati appena calcolati aile istruzioni in attesa di emissione, riducono al minimo il
te.mpo di permanenza delle istruzion.i ~el registro di emissione.

10.5 Metodo dell'history buffer


La gestione dell'esecuzione fuori ordine mediante l'uso di un History Buffer (HB)l
ossia di un registro che tenga traccia delPevoluzione (della storia) della stato della
macchina durante Pes~cuzione di un programma, nasce dall'esigenza. di migliarare Ie
prestazioni del ROB.
Videa alIa base del metoda e queHa oi permettere aHe istruziani di completare
l'esecuzione e di modificare il banco dei registri in qualsiasi ordine, rna di conservare
abbastanza informazioni sugli stati passati da poter ripristinare, in caso di necessita,
10 stato appropriato. A tal fine si utilizza appunto l' History Buffer, un registro orga-
nizzato in modo assai simile al ROB, inserito in architettura come mostrato in Figura
10.16.
Quando un'istruzione viene inviata dall'Unita. di emissione a un'unita. funzionale,
viene effettuata la pren9Lazione del Bus dei risultati tra.m.ite RSR e viene inserito un
nuovo elemento in HE. HB Stes80 e gestiLo come una. coda circolare (Figura 10.17).
L'emissione dell'istruzione richiede che siano risolte Ie dipendenze. In altre parole,
Ie istruzioni che hanno neeessita. di leggere registri non aneora scritti sono messe in
attesa.
Una posizione in HB si eompone di diversi campi:
• l'identifieatore del registro di destinazione del risultato dell'istruzione;
• it veec?io valore contenuto nel suddetto registro-destinazione, copiato in HB
da! banco dei registri al momenta dell'invio dell'istruzione all'opportuna unita
funzionale;


• un bit di completamento che, come nel ROB, serve a indicare se l'istruziQne e
stata gia. eseguita oppure no;
• il valore del PC corrispondente all'istruzione.

-,
440 Capitolo 10

UF1

[§]
UF2 .~.f"
;~~
· ,:,,,:~
· I" RF
·
.~.?i
·':Jr
UFn .:':~
HB ';f~t,,
"I''1
......
"('
..~ ' 19
., "lij'
'~';"i\
Figura 10.16 Organizzazione della pipeline can un History Buffer. L'HB entra in gioeo in .• ;!'
"'.)/
'....
easo di necessital rimettendo i vecchi valori nei registri modificati speculativamente. .~••••
.. "t
, . ·;.
'''''
•. ~
~.~
i.~
.';!
[""1fcf ',·
~
u.· "lfd vee 10 v I rrogram vounter ':: l
'r.
valore . '.:'
.:.
1 ,~
...,.....
2 1 -.,,,·m
~:
Pt --+ 2
3 :.;/
4
3 ,j!:
4 :-.,...
; l§
5
. . . Pc -t 5 ,·;w
· . . . · ',
>.t''''J
· . ·\
. . ·
,,~
_:
n . . .'~
n ·'
. '.
·,t

Figura 10.17 Organizzaziooe di HB e di HER io sua preseoza. All'atto dell'emissione "..'"'


··~l·
di un'istruzione, in lIB viene memorizzato, il valore contenuto a1 momento nel registro di ,:
A
destinazione dell'istruzione stessa: in caso di nccessita. (interruzioni l predizioni errate delle ~
diramazione)l puo essere ristabilito 10 stato della macchina precedente alPistruzione emessa. "
,<.
,
"~

';
"''
."
RSR e gestito esattamente come nel caso del ROB. Per velocizzare la scrittura
~

del risultato Del banco dei registri l viene aggiunto anche a RSR it campo identificatore
del registro di destinazione. Dopo che un'istruzione e stata completata (giunta cioe
all0 stadia WB), il risultata viene immediatamente scritto ne1 relativo registro di
.'
., ·

·
destinazione.
Quando unliatruzione arriva in testa a HE col bit di completamento pari a 1
(ovvero l'istruzione e stata eseguita) e non e sona nessuna necessita di ripristinare 10
stato coerente, il corrispondente elemento in HB non e pin necessario e viene eliminato
(aggiornando il P,). "
Paiche Pardine di emissione garantisce la coerenza rispetto aUe dipendenze dei da-
til i rnativi per i quali si deve ripristinare 10 stato corrente 50no legati alle interruzioni
e alle previsioni di saIto errate,
.fl.";;
'.:1'"-' "
';ll..•'. .
i;i.~ I,;,
·tl1 -:' '. .
Ij;~ :
1-
:!,'i;,~it~~"',~, . ....:E:s:e:c:uz=io=n=.:..:.fu=o=n=.~o=r~din=·=e __4~4.::1
J;,.f,~ ...':",... -
~I\;;liiii~·
''';r,'!~~.-,
~:1o.lI.'.; ••'\, "
,~.,,~~I','-:, ."}_,
"'''''''~-''''
"''')o~l "
.
.
j-
~tl-1'}~'· In presenza di interruzione, l'emissione di nuove istruzioni da parte dell'Issu.e
,:1f.~:'i{.:.> . Register viene immediata.rnente bloccata. Sulla base del criterio di. risoluzione delilin-
~~i:j~(? .'.. terruzione l viene identificatal'istruzione in pipeline che discrimina queUe che vengono
~~~:-:;.<., portate a completamento da queUe che vengono annulla~e (a questa proposito si ricordi
:.,ti!1t" quanta detto al capitola dedicato alle pipeline parlando delle eccezioni e delle inter-
1-
"r~ iEf~:-;,; .."ruzioni). Le istruzioni che devono completare scrivono su RF e vengono estratte da
-
~ ~ t!f~oi;;Y" HB. Per Ie istruzioni che seguon? l'~tima da ~ortare. a ter~~l che f?sser~ e~e~tual­
~~, t;;,~:f;:t\.; . ,:,., :nente ~ompletate e avesser? scntto illo~o re~stro dl. dest~azlonel Vlene ~lpnstmato )-
iJ~* :4f!£~.::: 11 vecchIO valore prendendolt da HB. Servlta PmterruzlQne l II programma nparte dalla
Jr:!l .'
~d:~t:»:: prima istruzione che non e stata fatta procedere.
-
~~~. I (~f:~~;.' :-. La descrizione del ripristino dello stato coerente in riferimento aUe predizioni
,"~"(" :1G~~':.;:~'~;' .errate·e rimandata al Paragrafo 10.6.3. )-
",\<.~ ,r .
,\_..
1" '="".•• ' ..
(';p-t" .....,
9:'l . '1:~t1~,' . ,"
't.Y.('.'!... ~;!~· '..
\iJ ~~~\~.:;\,;.
!'./.\'
/'"
.~"',r:··.-'
l'-~'
~'i::}' ,>.I;.T'
·10 6 Gestione dei conflitti di controllo


III pipeline ]-
troit: >0"·"'5 ,',
'.J-y, ."""!.,,/',,
.'!'n"·
~'
\ ' ,','
" ',"·:,rt,'( "
,~~.~l.r,'
con unita funzionali multiciclo -
'.'I '! ,,<-,-,»..

\-
·,1 \
~ ;:.~~"f·.",,·~
.ti....." .. ,,:,.",~ .....,
·ii " ·'· '''I:,:<'. .'.:'.•
.~,'t.io ~I·'~~-·
Si supponga di avere una pipeline con unita funzionali multiciclo e con un BTB.
. ...~ ".;..0 lo
.~KI:; ,~ ,;::.:,;':,; I'I~."
p ••

Quando la predizione di una certa diramazione risulta errata, alcune iatruzioni pro--
~"~_
:l
......,.,';.:.
, ,;i:J."\<""
:,<,.~~~.1~
,
venienti dal percorso errato del Busso di istruzioni si trovano nella pipeline. Nel caao -
m (jl\' ".",~" ,',
.f{
di pipeline lineare basta svuotare la pipeline e ricominciare it prelievo dell'istruzione 1-
/ll~I:~
:i ,
~';~\1;-.!.·'''·~'
J ::\"•.,(" ••• di destinazione reale della diramazione (Ie istruzioni provenienti da! percorso errato
1::~jY•.:;·~·'
§."" ,t ,.p'."'!" 'non· hanno avuto il tempo di modilicare 10 stato della macchina).
w,;' ..ll: ,*,,';,r}i."
tJi'
-"!,'
·'~'·<·;;f,l,'

il·m ,:f:,~,~,~~" Nel caso di eaecuzione fuon ordine it problema ~ pili complesso, in quanta is- -
J.~:'i; 'r, .")"".~,: truzioni provenienti dal percorso errato possono essere state completate prima della
\.,".I( ',."'.•.
~;'i/'(,~' ,;-~~••.,...
_:n'~!.
~~~i f; .'~~~~,':.":
'i~ .,'
. ,: I ,..:,.~<.:;...
.~ -,.: \..,-.
'Vi~i'it';; ..
.soluzione della diramazione (specialmente in presenza di condizioni ell diramazione
espressivamente molto potenti). In tal casol lo state della macchina modificato e e
1-
t,~.'j ".''-':'' non e pili sufficiente il solo svuotamento della pipeline e il prelievo dell'istruzione d..i
''j/.,::j;i:
·'1·\""to','..--,-
·
,.. '·h·' ,,~~. !,e\i~'
destinazione.
" . ?'.'*.' .."
:I i1
"":~~;,..,
A~ -~,.',;g:: .....
. Prendiamo, per esempio l il: frarmnento di programma in Fortran e il relativo
~'i;J11~ .."".
"'-1\- .."" !",. codice in Assembler, mostrati rispettivamente in Figura 10.18 ed in Figura 10.19,
.:.l·" ~r." t.y..• ":,,"
~'."!)
I , ''·It.·
:",,';;:' ..'~
J,
tramite it quale si determinal in maniera iterativa l la radice quadrata di X.
.".t'i' ';il~'::I:'
';,i~~' '::'.t'; .:. In questo CasOl poiche Ie condizioni di diramazione sonG piuttosto complesse l l'in-
' -,' Ii. ,,\ ..;·.~I"'·'
",..... , ,',:",.
" .~r;;..~ :';::,.:,," ,.
~~ ~
., 11' '/....\ .. y---,) ' ..
dirizzo predetto di destinazione della diramazione l tram1te llutilizzo del BTB I e nato )-
molti cicli di clock prima che sia noto Peffettivo es;ito della dir~azione. In questo

.'?t 1!.frJ
·'.i~~ '\',;,1!':,>

·~)'·3h.,,·\
y,,;~ ~"- ,"', .
intervallo d..i tempo possono essere prelevate ed eseguite numerose istruzioni prove-
nienti da! percorso di diramazione predetto, modificando COSt 10 stato della macchina.
Evidenternente, qualora la predizione risultasae errata, occorrerebbe ripristinare 10
-
1-
"iiifl ':.;,--'." ~ ,.
,\ 'i!rI, ':',','.~/
stato della m,acchina che si aveva prima del prelievo speculativo delle istruzioni.
'l<l'~
',. ~ ':,
..~.
."i':'\!.'
->. ,.
., "'_
.~".
......:. . Prendiamo in esame Pistruzione di dira.m.azione che interrompe il cido quando ai -
<).'~lii \),.:: :'.' giunge at risultato cercato (ristruzione 7 eli Figura 10.19). n suo comportamento d..i
,··,i .. ~ .
"",,1'
.~Pt ):.-. ': '-:. ,
\jl' '.
;0
';"J.:
•• ,'~._
continuo fallimento provoca un'errata predizione ogni volta ch.e la condizione eli dira-
mazione viene soddisfatta. In Figura 10.20 viene mostrata Pevoluzione del sistema.
1-
.,.' . -,.,. '. "
,,'It~
•""E· . ,•.'. '.1,",
Llistruzione di diramazione 7, prelevata a1 cido d.i clock T21 per essere eseguita deve
"...r , - .
,." ... "
attendere it completamento delle istruzioni 5 e 6 1 the avverra solo al ciclo 7"13, Nel
.i".\It~j /(_'
.. '(' :i·'-:~.·
.,·'1'\. .".,..
-
- '.'
,I,
.••,. \" :l..
frattempo vengono prelevate specu.lativamente Ie istruzioni 8, 9, 12 1 13, 14 1 1, 2, 3, )-
'.~1i ".~:<: ~.
• 442 Capitolo 10


1

.. .
5X=X
·
\ DX=O
DO 100 I=l,N
RAD=(5X+DX)'O.5
· I \ IF«RAD'*2-X)**2.LE.EP5)GOTO 200
IF(RAD**2.GT.X) THEN

5X=RAD
ELSE
• DX=RAD

I 100
ENDIF
CONTINUE
200 PRINT*.'La radice quadrata di 1 ,X,'e ' l ) ,RAD
...
I

I

·


\


1.
completare Pesecuzione e modificare 10 stato della macchina.
,
\
2. Le. istruzioni successive all'istruzione di dirarnazione (provenienti -dal percor-
so errata) devono essere eliminate e non devono aver modificato 10 stato della
• ma.cchina.
\ Proprio dalla necessita. di soddisfare queste condizioni si giustificano i criteri di
gestione dell'esecuzione fuori oedine descritti nei precedenti paragrafi. In realta, non
solo Ie speculazioni errate impongono il soddisf~imentodi queste condizioni rna anehe
I

tutti gli eventi cbe impongono un "congelamenton del sistema, come Ie interruzioni.
Aile interruzioni si ~ atcennate in precedenza.
Nella parte cbe segue vengono'descritte Ie modifiche cia apportare agli e1ementi
preposti alia gestione dell'esecuzione fuori ordine in modo da tener canto dell'esecu-
zione speculativa delle istruzioni.
·
\
10.6.1 Stato coerente nel caso del completamento in ordine
\ delle istruzioni

Nel caso in cui Ie istruziooi sooo forzate a essere eseguite rispettando l'ordine eli pro-
e e
I gramma) l'eseeuzione speculativa di fatto impedita 1per cui ,non vi neeessita, aleuna
9i modi1iche. Infatti, quando un1istruzione eli diramazione e presente in RSR tutte Ie
istruzioni prelevate speculativamente possono occupare solo Ie posizioni inferiori per

\
Esecuzione fuori online 443

...
i. fO+-sx, f2+-dx,
1. f4+-RAD, f6+-,-X
'l.
'l. Calcolo di RAD=(sx+dx)/2
1 loop: addf f8, to, t2
2 multi f4,f8,~0.5
'l. Cal colo di RAD 2 -X
3 mulf £10,£4,£4
• sub! f12,£10,f6
Y. 5e (RAD 2 _X)2 <EPS ;:::}exit
5 mulf' f14,f12,f12
6 slt £16,£14,£30
7 bnez £16,exit
i. 5e RAD 2 <X ~sx-RAD
8 sIt £18,fl0,£6
9 bnez f18,ax
/. Pooi dx-RAD
10 addU f2,f4,~0
11 j endif
'I. PORi sx=RAD
12 sx: a.ddfi fO,f4,~O
% Cbiusura dell loop
,.
13

15
endif :
exit:
Dubi
bnez
xu
rl,rl,~8
r1.1oop
llX::r::r::r::r
...
Figura 10.19 Codice Assembler per iJ calcolo della radice quadra.ta..

cui potranno modificare 10 stato solo dopo che la diramazione e stata risolta. Se quin-
di la predizione risulta errata si e certi ebe 10 stato e coerente 1 perci?> basta svuotare
RSR e prelevare l'istruzione proveniente da! percor50 carretta.

Ripristino dello stato coerente in presenza di ROB

Per ripristinare 10 stato coerente nel caso di predizione errata 5i introduce nel ROB un
bit ebe indica se llistruzione e una diramazione che ha provocato un1errata. predizione
(bit Epr in Figura 10.21).
Quando un'istruzione viene completata, nel caso si tratti dj. una diramazione,
,~sieme ai risultati viene inserita nel ROB ancb~ la condizione di errata predizione.
Se se questo bit indica che vi e stata predizione errata, una volta che l'elerriento
raggiunge la testa del buffer, si svuota la pipeline negando l'accesso ai registri e
a qualsiasi'istruzione' di scrittura, e si· preleva llistruzione proveruente da! percorso
corretto.
La coerenza dello stato rispetto alIa memoria si ottiene trattenendo Ie istruzioni
di scrittura nel registro di emissione sino a che Ie istruzioni precedentemente emesse
siano state completate in modo carretto. Alternativamente si puo inserire un elemento
444 Capitola 10

TO Tl T'J 1) 1"4 ~ '1"6 7"T T8 Tg rIO 'TJ.l 'T12 r13 'T'1.4 rl~
I I I I ! I I I I I I I , I I I I

5 .ulf· .f14.f12.t12 IIF ID EXjEXIEXIEXIEXIEXIEXIEXIEX EX ME WB


6 sIt 116,114,130 IF St : St SI SI SI St :: St :: St ! St ID EX ME WB
................ " ............g ...... a" ....:"·..,

7 bnez fl6,_zit IF St 51 St St 5t :: ............................


5t ; 5t : St , 9t ID EX ME WEI
Spec e .1t 118,f10,16 IF ID EX ME WB
Spec 9 bnez t18,az IF ID EX ME WB
~p.c 12 add11 10.f4,'0 IF ID EX EX ME WB
Spec 13 .ubi rl,rl.18 . IF ID EX SI ME WB
Spec 14 b~.z rl,loQp IF ID EX 51 ME WB
Spec 1 add!i 18,10,12 . IF ID EX EX ME WB
SplC 2 ~ulfi f4.f8.~O.5
IF 5t : 5t ............
S, ID EX ME
Spec 3 mult 110,14,14 IF St
IF
............
SI SI ID
S, St St
EX
SPIC
SplC
4
5
sub!
=u11
112,110,1&
114,112,112
... ............
." "''''
IF 51 St
ID
Sl
Spec 6
15
.It
xrJ.
116,114,130
:u::z.xu:J:
IF S'
.
Sl
" "
IF I.~~.

Figura 10.20 Sequenza degli eventi al momento in cui si giunge al valore cercata. L'istru-
zione di diramazione bnez fi6.exit, che fad. uscire i1 fiusso del programma dal cicIo DO,
viene messa in stallo per consentue 1a soluzione della condizione eli diramazione (istruzioni
5 e 6). ,Nel frattempo vengono prelevate speculativamente undici istruzioni,.sei delle qua-Ii
completano l'esecuzione e modificano 10 stato della macchioa. Una volta riso!ta 1a condizione
di diramazione deve, quindi, essere ripristinato 10 stato della macdina che si aveva al me-
mento del prelievo dell'istruzione 7. Si Doti come l'istruzioce di destinazione effettiva della.
diramazione venga. prelevata. al cielo 'T15, ossia dopa 13 deli dalla rase IF della diramazione
predetta erroneamente.

nel ROB non appena. viene emessa un'istruzione di scrittura: l'istruzione rimarra nella
pipeline della memoria fino ache l'elemento non avra lasciato il ROB.

10.6.3 Ripristino della stato coerente con history buffer

Anche,in questo caso per ripristinare 10 stato coerente nel caso di predizione errata,
si ricorre a1 bit eli errata predizione (Figura 10.22).
Quando un'istruzione artiva in testa al buffer con un bit di completamento pari a
e
1 (ovvero l'istruzione stata eseguita), viene controllato il relativo bit d.i errata predi-
zione. Se esso indica che l'i5truzione in questione non ba causato nessuna speculazione
errata, il coITispo~denteelemento in HB non piu necessrrio e viene quindi elimin?- e
to; se, invece, tale bit vale 1 (ovvero l'istruzione una diramazione e ha innescato un e
certo numero di esecuzioni speculative errate) 5i devono compiere, per ripristinare 10
stato coerente, i seguenti passi:

1. Viene bloccato HB e viene bloccata l'emissione di nuove istruzioni da parte


dell'Issue Register.

2. Si attende che Ie che precedono 1a diramazione,vengano completate; si attende


cioe che la diramazione 5i porti in testa al buffer.
I.
Esecuzione fuari ardine 445

\I
:R:d ltlSultato Tpr C Program Counter
1
PI -+ 2
3
4
I-
Pc -+- 5
· · •
. · · 1.
. . · · ·
n

Figura 10.21 Aggiunta del campo d.i errata pred.izione (Epr) a ROB per tener conto
Nel caso in cui una diramazione viene predetta erroneamente,
) ..
nell posizione di coda dell'istruzione di destinazione effettiva. -
tI.G vee 0 pr C Program Counter
1-
1
valore -
PI -+ 2
3 \.
4
Pc -+, 5
. · · · \
. ·
·
·
·
·
·
·

I
n -
Figura 10.22 Organizzazione in campi di HB con il bit di errata·predizione. Non appena.
)
il puntatore di testa raggiunge l'istruzione di diramazione predetta er:roneamente (bit di I-
errata predlzione attivo), vengono ripristinati tutti i valori dei registri cantenuti nel buffer,
riportando la macchina alla stato che prec~deva la. diramazione. ~

3. Partendo dalia coda verso 130 testa, vengono cancellati gli elementi in HB e,
1-
contemporanea.mente, i vecchi valori, contenuti nel buffer, vengono riscritti nei -
registri di destinazione, fino ad arrivare alia prima istruzione sui percorso sba-
gliato. )-
4. L'esecuzione del programma riprende prelevando l'istruzione proveniente dal per-
corso corretto.

.
n ripristino di uno stato coerente in presenza di istruzioni eli scrittura in memoria
avviene sostanzialmente nella stesso modo visto nel metoda del ROB, cioe trattenendo
l-
tali iBtruzioni nell'unita funzionale preposta aile operazioni di load/stpre fintanto the -
il corrispondente elemento in HE non artiva in testa (senza riportare erreri): Bolo
allara viene mandata un segnale all1unita. funzionale per permettere la scrlttura del I-
data in memoria. . ..
-
) ..


I ~nl~"
- ':. (
~i-'l' ..,
• \'~'~
-'~1~ -:

\ "~
'~.~""~
...... "
'.
·
i~';:·~y~
;w'lli;~·"
-;j.;'-j"
· I

I ~jf,

l


I
,

~

I

I


\

I

I'
,

I .. ,

j
" :'
("'"
,:... '.
~"'"
:': ..'
'.
~,,

~::' ,
11
",~"
,' BUS di sistema

Uno dei campi in cui di piu si efatta sentire l'influenza dell1evoluzione della tecDologia
elettronica e quello dei bus di sistema. Negli anni settanta1 escludendo mainframe
. ,: e supercalcolatori, Ie macchine venivano costruite attorno a un bus, che risultava
coslla struttura fondamentale di collegamento tra Ie parti componenti il calcolatore.
All'epoca il grade di integrazione era molto lantana dalPattuale, e era pratica comune
scomporre un sistema in moduli: un modulo (una piastra) contenente la CPU, alcuni
moduli di memoria e svariate piastre per Ie interfacce di ingresso/uscita. Dalla meta
anni novanta i bus di sistema sono praticamente scomparsi dalle rnacchine medio-
. piccole, in quanto e ormai possibile alloggiare tutti i componenti sulla piastra madre.
Con l'introduzione di piiI livelli di bus, e cambiata 1'organizzazione dei calcolatori. A
1ivello pili alto - quello della massima ve10cita - si trova il bus che coUega 1a CPU
can 1a memQria; a HveUo inte~medio il bus suI quale si affacciano i periferici veloci;
a Hveno piiI basso queUo che collega i periferici piiI leoti.n- e
classico bus PC ormai
relegato a questa ruola. I produttori di microprocessod forniscona gil integrati di
sup porto (il cosiddetto chipset) che consentouo l'integrazione delle parti e fanno da
ponte tra i differenti bus. Di questi aspetti si parla al termine del capitola.
Questo capitolo, si apre con una breve introduzione di carattere storico. Alcuni
degli standard descritti sono ormai in disuso, sopraffatti da! dilagar~ dei PC. Si ritiene
comunque utile descrivere Ie caratteristiche d.i alcuni di questi perche essi sana ancora
impiegati nelle applicazioni di carattere industriale, dove la costruzione a moduli resta
sempre apprezzata per 1a sua robustezza e per 1a sua flessibilita.

11.1 Un po' di storia

In Figura 11.1 viene mostrata I'architettura prevalente fino agli anni sessanta in rife-
rimento a un minicalcolatore [Hew73] e a un mainframe [IBM74],
La pratica realizzativa corrispondente alia schema d.i Figura1!.l venne inter-
retta dalla Digital 'Equipment Corporation (DEC) agli inizi degli anni settanta, con
l'introduzione della famiglia PDPl1, progettata secondo una filosofia innovativa. 1'ar-
chitettura PDPll [Dig78L schematizzata in Figura, 11.2, organizzava il sistema come
un insieme di moduli, tutti quanti collegati a un coroune bus) chiamato UNIBUS .
448 Capitolo 11

MINI MAINFRAME
(HP2100) (IBM 370)

MEMORIA MEMORIA

cont~llore
CPU CPU
canale
I/O bus I/O bus
modulo ml?~UJO m9va~IO
vo vo I 110~"

Figura 11.1 Schema architetturale tipico degli anni '60. Oi norma i canali ell I/O consen-
tivano solo n passaggio di dati da periferiche a CPU e viceversa. I canali di comunica.zione
diretta. tra memoria e I/O si trovavano solo nei mainframe; au questa categor'ia di mac-
chine erano presenti i. cosiddetti controllori di canale, ovvero dei processori ell I/O respon-
sabili dell'esecuzione dei progrommi di canale: per il trasferimento dei dati tra memoria e
periferiche.

Come si vede in Figura11.2, il bus e una sorta di "autostrada" che collega i


vari moduli. In tale configurazione la memorial e la logica di cantrallo risiedono su
schede separate, e tale schema pennette 1a massima espansione e configurabilitA. della
macchina. Fisicamente il sistema e un contenitore in cui si inseriscona Ie varie schede;
callegandole a un backplane (piano di appoggio 0 fonda di cestello) tramite connettori ,
mentre il fonda di cestello porta Ie linee che collegano i connettori, montati in modo
I da costituire il bus vero e proprio. .
I Uarcbitettura centrata" sul bus rencle immediatamente disponibili i trasferimenti
DMA (Direct Memory Access) tra i dispositivi ne! bus. Fino a quel momento il DMA
I
era disponibile solo su grandi sistemi (i minicalcolatori come 10 HP2100 10 adottavano
I opzionalmente). Nell'UNIBUS la stessa memoria era un modulo posta suI bus, col
I risultato che tutti i moduli potevano comunicare con 130 memoria2 .
La schema architetturale del PDP-II divenne"in breve tempo il madelia a cui si
I ispirarono tutti i costruttori di sistemi di piccole 'e medie dimensioni. Peraltro, un"
contributo alla sua affermazione fu la comparsa (1973) della logica con uscita a tre
statio Questa permetteva di semplificare ulteriormente la struttura a bus, evitando di
dover lisare porte con uscite a collettore aperto, come erano stati costretti a fare in
origine i progettisti del PDP-H.
Se si escludono i mainframe, a fine anni '70, praticamente tutti i calcolatori
vengono costruiti a partire da un backplane. In ambito industriale primeggiano i bus

lSi tenga. conto che a.i primi anni '70 su dl una piastra di dimensioni dell'ordine delle piastre
PDP-ll (circa 1000 em 2) non potevano stare pill di 8-16Kbyte
2Con l'avanzare della tecnologia. integrata. diverine possibile sistemare Ia. maggior pa.rte di una
CPU PDJ;lll in pochi integrati, facendo apparire enonne la piastra UNIBUS rispetto ai componenti
da a.lloggiare. Venne sviluppata una versione aggiornata, pill compatta, della CPU e venne definito it
Q-Bus, conosciuto anche come LSI-ll bus; esse usava indirizzi e dati condivisi multiplati, riducendo
it numero di linee ricbieste e Ie dimensioni delle schede (Dig76].
1.
BUs di sistema 449

- )
""""'"
""""",,"moo
POP-l1
toIOOlAO 0l1olEl.l()4U"
lETT1J~1U. """"'" """"'"
'O'H,m",
..... _a=<

BACKPLANE UNIBUS
I
'>
< •

IilOO' UlIHTEIIfAOClA
1
1oI00UL0 ItffERP",CCLA
IoIOOUJ IHTERFACCIA
-
""" """'"
(CONSOlf l ~"""""" DISCtIl MAGNeTICI
ST~~Al)

ALT'" VEl.C)CfT...•

cotlVEATlTOl'lE AIll
CONV'liA1'1'Tt'I'\£ Of'"
]-
INl!:AFACCIA PN\.t.U£1A

INT£AfACClo\ SV\IAl.f
INn~FACCLA OM'"

""'''''''' 1I -

\ -
-
I.
,
Muitibus I (nel 1985 deteneva il 50% dei mercato USA) [Int84j, 10 STD e il VME.
Nel mondo dei calcolatori di impiego generale, oltre all'UNIBU8 e ai suoi derivati, e -
molto diffuso il bus S100, introdotto nel 1974 con I' ALTAIR, un piccolo elaboratore
can CPU a 8 bit, da!. costa contenuto e destinato a ess!'!re i1 capostipite di un nuovo tipo )-
di calcolatore a uso individuale. Ovviamente, il bus 8100 era a 8 bit, rna presentava
>.
caratteristiche mutuate dai computer industriali, come l'arbitraggio. Alcuni dei bus
menzionati e altri rammentati pill avanti sono diventati standard della IEEE.
Nel1981 viene introdotto i1 PC ffiM. Con esso lao 50cietA.lead.er entra nel mercato j-
dei Personal Computer, segnando una svolta decisiva per il futuro dell'informatica e
stabilendo queUo che sarebbe diventato 10 standard nel canipo del calcolo personale. -
n PC si basava su di una scheda madre contenente CPU e memoria, sulla quale era
.previsto un bus (PC bus) cbe portava i connettori per Ie scbede eli espansione e di ).
interfaccia verso Ie periferiche} secondo 10 schema di Figura 11.3. Cia permetteva,
grazie all'aumentato Uvello di integrazione dell'elettronica, di cont"enere Ie dimensioni -
e i costi. Nell'ottica della semplificazione e del contenimento dei costi, il bus presentava
funzionalita. ridotte rispetto a bus gia affermati suI mercato. In uD: certo sensa, con i
PC, si assiste a un recupero del concetto di calcolatore degU anni '60, in cui i1 bus era
1-
visto come un canale di I/O} can in piiI"la possibilita di collegare moduli di memoria -
sul bus.
Essendo il PC divenuto 10 standard "de facto" nel suo segmento di mercato, J-
una larghissima fetta di produttori, attratti da! potenziale commerciaJ.e, si ~ a.dattata
al bus PC, rendendo disponibile una imrnensa varleta di schOOe, soprattutto per la
sua evoluzione a 16 bit, it bus del PC/ AT, che comunque restava compatibile coon la
versione a 8. n suo enorme successo ha portato alia denorninazione !SA (Industry )-
·
450 Capitolo 11 :Ill5i,

• I "!ii''.,
r~ ',,'-

'I'
"
i i!!l
,, . -

5cheda madre
~,{
• I CPU
MEMORIA
~~~
~f:
,~~
. ~1~L
· ~ 1\ ,,'I~
~ -;j'
"~~'''
,.

I PC bus ,(i!'
:!!~7E
"~i;;;j
'"',
.IIJ~~,:!
~ ' 'Y.:.
1f'~

·,I
, ,,\;'H
'I'~£
1~,·"
memoria 110 J,-
"
~
'>
,,"

Figura 11.3 Schema architetturale dei personal computer degli anni '80. ,'
;. ":
"~.....
r"'

·1U1;~

I · ".
!lJl
!'~
"

.gJ,
",.
-I'll
~~""
,

tii
;V;
"W·
·ll i'. ~
\ bus illduslriaJJ

.,;'\J~I t~t
· Fulur,Du$

MultlDus II
,:
:~;H;~,;~
VME ~ff;I]:' f~:~
\ Multibua I ..1(~,
..
!;~~ I .
1L';;;
"~ ..
\"

"~~~J ~ til
u,....

l~
(
~
73 80 :r,;"
90 93
8100 "I{'
PC bus t'i
,,!
PCISA
\ :~;
bus per PC l~~
'-Bal ' ~~
Fi~a 11.4 Evoluzione dei bus di sistema nell'arco di un v~ntennio a partire dai primi _,.'.i;n' r~
, \ a.n..m settanta. . ' .!~~. ~
·.1~ij rt
. " . '1"~~~"'
. P::u-allelam~te al
mercato del. Personal Comp~ter, a partlre dagli ~~l ?ttanta ·.;~~t~ r~
\ \ SI. svil~ppato.il ~ercato delle coslddette. w~rkstatlo~l per un n~ero pm nst,retto :.~;~I;1;:·
e
di ute~tI, che nchiedevano ~levate prestazl~Ol (esemplo ~er CAD 0 CAE). In Fl~ra. ,,:.~'~m~·)
11.4 Vlene mostrata l'evoluzlOne fino alla pnma meta anm novanta. Nelle workstations ~.=t;~ ';J
~i possono trovare sia bus di .tipo industriale che ~ol~zioni tipo PC. In tal senso, -::~;~ (1;F e
, \ tn~eressante osser-va:e come .SI ~ono evolute Ie stazlOlll pro.dotte dal ~~~r~ttor: Sun :}~'.; ~:
Microsystem, Le prune staxiow Sun erano basate su Mult.bus I (agli lWZl degli '80) <t~,':~
\<"'~~
''':'~i . ~~f
""
::~l:~
I,'.' 1
livello di ma«bine da tavolojufficio l it bus ISA e praticamente I'unico sopravvissuto tra j bus
\ ) 3A
di sistema introdotti negJi anni ottaDta. Ha cambiato il suo ruolo: da centro del sistema e diventato
il bus di livello piu baaso, sui cui 8OnO collegati i perife.rid piu lenti.
"'.il'.., ...
. ; '~l
"..
....
~ ,
~
l\';!"
,.
;p
.t,
,""
, '..A

:I
fl" , ,
th'
'<''- .
··'fF..r~- .
~;;:i,:-
,f.,'-::{,' . Bus eli sistema. 451
'=
'-:':•. ':' "
,..,,".
'" .
li\';~~','.
-1:,-',"
',::0"';';
j!':\ .

{~'>;' e impiegavano come CPU il Motorola ?8000. Successivamente, la Sun ha imp~egato iJ


~K\' .. bus VME. Con Pintroduzione della sene SPARe, il VME venne inizialmente nservato
:\~h'.}· 'ai soli server (Ie mac~~. di f~cia alta)l. mentre Ie, w~rkstations erano pr~dotte su
~~;\~' . singo1a scheda, con posslbihta eli espandersl solo tranute il bus SCSI . Successlvamente
4

L11:~S. 1a Sun abbandono anche il bus VME a favore dei bus proprietari illu~trati in Figura
/'115
~1"" .. ,'.'
.,_.. ,I"
'f:lI'" • .
'''':!i'''' .

-_. _.....
'.:} .-:;',•.
E'''''''': "

,-- --
j"l,...,
,:e;~i 1,'"

--
!\',;', "'."
.i :;OJ'-,. '
~$_:<. ' ~ -""',
Hr,:·· . ...-J. rPU. ad\oo) ........ FI'U. <O<fWI MMU.FPVo_1 -.J. I'I'IJ. e.:t"OO)
£;j'~~
"tHc.i· !
" ,
...." ..,.,
.'
>C.• ";,,, '
~~""
",,~,
,
''''',. , MBus
,
,11"".".
:\<:",,.",
'''''':;,':;,i .
.;p.",
~,';'f'.!.-:'.,
""" ... , '".
l\j~~:;"
.1&"
:
_.
"'_.5_
, --
-- --,
--~
,.",•....,,' ,.
,~.~.,:,
b,.'li~" SBus
""'; " ,

i~;'
",- '"
""", • , , ,
"/;:' .
~"""
_.~

.i;:~'~<) ~.,:, .,:", -~ -~ -,~

t:;::;: :F.igura 11.5 Arch.itettura dei 'sistemi Sun ser~e


4. MBllS e Ull b.llS.locale ad alta tra velocit~
i~~t'':' p~ocessore,. memon.a.e controllo~e ~Bus, ch~ lDvece e WI. bus eli ~lSt~ma. pe~ la conneSSlOne
~~~,:::.~ eli schede di espanslOne. Le verSIODl correnti delle macchlne Sun lIDplegano 11 bus PCI.
;;:~':'.{"
. "' '.
"~:x""
.
lt~:· Gia. a fine anni ottanta it bus !SA state considerate insufficiente rispetto aUae
~~K: capacita di trasferimento raggiunta claIle CPU. Si assistito a una lunga battaglia e
"~.
;;$'{:": : commerciale per imporre un nuovo standard. L'IBM proponeva MCA ( Microchan-
'

'~.;, n~l Archit~cture 0 pili brevemente Microcha.nnel), m:ntre un c~nsorzio di prod~t.t?r,i


iK,!.:'"haappogglato I'EISA (Extended [SA), un bus con il vantaggIo della compatlbilita
,~&.;(.. c:on .1'ISA. Nessun? del due ha. 3ovuto un ~ucces~o commerclale paragonabile a quell?
;.;::: dell'ISA, che contmua a essere presente In ogm PC , anche perehe, nel frattempo, 11
~A~~~\1:: bus ISA. veniva..cleclassato. a u~ ruolo se.con~ario, con l'introduzione dei bus locali 5 .
~L";;, L'evoluzlOne del bus del PC lllustrata III FIgura 11.6. e
~~;/:. Nel 19~2 ~tel ~a introdotto it PCI (Person~l' c.0m?'Uter Interconnect), un bus
~1; .f...: .con p~e:t~lOm medlo-alte che consente una. effettlva lll.dlpenden~a dal processore. ~
t~~;~~"~;" PCI 81 e nvelato un grande SllCCesSO. Pratlcamente Vlene·ormat adottilto da tuttI.

."
'1:"' Non solo nel campo dei PC , rna anche in fasee di prodotti pili elevate, Con Pavvento
~~, del PCI e con 130 produzi,one di integrati.per 130 sua gestione , l'evoluzione ha raggiunto
·,~(.\" un punta di stabilita.. E interessante notare che stato formato un consorzio che e
)iFi;::,:· ' . .
J~~{:.;
F~;,'·,.' 4n bus SCSI (Small Computer System Inter/ace) e un tipico bus di espaosione, cbe viene spesso
:~:i'~;:. pon.ato all'esterno'attraverso un cavo piatto. Per questa viene utilizzato da molti costruttori per
~~1:' aggiungere periferici senza doverli alloggiare nella scatola principale. Di esse si parla 301 ParagJ:afo
11.6. Successivamente anche la Sun e passata a. impiegare una singola piastra, con due ,bus distinti
fli' lil;>' sulla stessa scheda. madre, come in Figural1.5. Correntemente anche la Sun ha adottato il bus
11':L
",,1,,-.,
standard PCI (vedi piu avanti) per)3o gestione dei periferici.
..~>",~.:
p;;nci:"" , 6Inizialmente, il bus locale cbe ba dominato nel mondo dei calcolatori personali e stato il VL-bus
,it,'"
"j!!"l-'
">;;,
' proposto dal cODsorzio VESA. Esse aveva come punta di rona l'economicita., per contro era. sta~o
" \oi.'.'. concepito p~r i soli processori Intel.
AA......
_.'
'':I'''' ,
',~.1·:";·.
'\o~... .
~F;, ,
",."
,o
W!~
452 Capitolo 11 'i
,<i·"
'i'il
if' •
(,
\,;::

promuove una versione industriale del bus PCI, appositamente studiata, quanto
[~];
0"1
',~~
caratteristiche meccaniche ed elettriche, per gli ambienti industriali. ~" . .t
1lt'.
'rg;.

,.'~
~ ,.
li':c
\{~:J
~}~,~ 'ikj4j
1"",",,1 _,:.-"00, I!,i
'"o1',('~, ~,,,
""".;1. '!\I\F
ISANLS ,_~t.';f,' I'
".!.~I~., li"~.i,
''''I' . , :'~
EISANLB .' ,:.,"
.... <tl~ ,"
"'~.at
PC Xl AT(ISA} EISA
:;;".,I"?" :
15( BIT

MCA./VLB
EISM'CI
.... ..'
,""" " "'~
· I·'b,."
_, ,•.'~i:f'
,,'
I!.',
:'.:":'1",. !• _jl,.,

",':'9'~;, !'ri"~"
MCA
MCM'CI
;0; ~ • ' ""
POl
:i'J:· .~
.. '" ,,1:~' l r.~''I
~i :il!.!!l!li. 'J..•
-.. ,J"iW.'i.; . ,{j!
;,.";,,,,~, l ':~J

"" "" " . 1985


""
,,,.
"" '96' "" '990
"" "" "" ""
.-'!.~,
";ir
:P1~:j'
• 1"
· '::4.~~
.,
. "
li.'
"O
~:~
1.~ ,i~{·
~!,

HARDWARE NON COMPATIBILE • _. ~ ".

"WI';t~ '"::'~
HARDWARE COMPATl81LE '. ' ~~
:'t:~~,
Figur~ 1.1.6 Evol~zione del bus PC ~ dei rel~tivi bus locali nel tempo" La s~hema~iz~azione ':.~W:i~, ~~
vuole wdlcare che II bus locale PCl Vlene abbmato a qualunque altro tlPO dl bus dl SIstema. .·.t?~' I~K
. . ,'.;:.~i~~')~~
.:,~,~~ I.:
:;;tiOO·" !I;
"i~lft'· '~~.
,'.y... • , ~,;
S.~i~~ ~ ;~~
11.2 La standardizzazione ;'f~j~~ q
. Jir~:1'~].
Definire uno standard significa fomire specifiche precise, atte a fissare completamente '/;~l·~ lti
Ie caratteristiche meccaniche, elettrichee logico/funzionali del bus [CKN92L [D,;x86j. 'i~~'''I.f~,
Le carattenstlche loglCo/funzlOnahsono, oVVlamente,quelle dl maggIor mter- i.~~'1;'f'
esse di questa libra e a esse e sostanzlalmente dedlcato II presente cap,tola. Le :~r,~if.. ;~
caratteristiche meccaniche ed elettriche son~ rapidamente trattate qui di seguitq. '. :":'~~I~'~: ~j
M:.1!f!t Yr
.;:~~; iii: ~:
Caratt~risti.che meccaniche De~ermin~o~a co~patibilitAmeccanica tr~ le scl:ed~ ?~~ ~ -, ',_
aderentl a un certo standard. Sono rilevantl il tlpo dl connettore usato e Ie dunenslOlll '~:,~\:fu: d
delle schede. ."::'/f.}j ·'
.Per quanto si riferisce al tipo di connettore, a parte il numero di piedini, pa- '·:Ig~.f ~
e
rametro legato alle caratteristiche logicojfunzionali, l'aspetto .pili importante dato ':!:':~~~ ~:
dalla' modalita. di inserzione: diretta 0 indiretta. n connettore a inserzione diretta ,.~~~, ~
~ p~li economico, rna ofIre ~ontatti m~Do sicuri. e m.e~o. stabili di quello a inserzione ~3:1 %
mdiretta. Inoltre, quest'ultlmo confer:sce magglor n~ldlta alIa scheda. .~~~~: I
La natura del connettore ha relatlvamente poca lmpoItanza quando 11 calcolatore .. ;'~~, i
viene usato in arnbiente amichevole come in un ufficio, rna diventa determinante "i.~~ ~
quando il catcolatore viene impiegato in ambiente ostile, come in fabbrica, in presenza ::;~~ ~
di polvere, fume ecc. Per questo motivo, i calcolatori costruiti per l'impiego industriale .'>~i ~ ,
prevedono quasi sempre connettori a inserzione indiretta. Un esempio di connettor~ a ":.~ i 1
inserzione diretta e queUo delle schede per PC IBM illustrato in Figura 11.7. Esempi ,X~, ~
.• :
"f':·..
l~"',;
1;-"'. '
,;~~;i3'
)
oJ" ,
~lf}:~' , Bus di sistema 453
iI'~.-,
" ," .. ' _ _- - - - - - - - - - - - - - - - - - - - - - - - - - ' - - - - - - - - -
ll~l;'
;I·.I~
.~,;,.'
...
,'::I'-/<,. •
~, ',,'. J .
;~:.~':~~' di connettori a inse~zione indiretta sono quelli delle schede VME (Mot851 e Multibus
,;,,'.-n
1";.. [I nt 831 .
!.
~~
t:": ""
.1,t\, ".
;~,
.:;;~ ,.

cl:'~'~'::>
J:k. I 334 I
j'~;_~ ,.
iii',\r~.: . contenitore
,,!, •.,,.,
Fl.r,.'. r-------------------------~-l
'~ ~'_'I:
,.iojj;,-';'"
t."".,.'i~·".,
...;;.,.
.' ~~
"
1 1
.J
1
1
1.
:d'1:~"" , 1 1 1
~"'~'",;~'., 1 1 1
',"""
i' .." -'."
,")-.,
1 1 1 115
scheda PC IBM
i~t{'i' .'.
I 1 I
"""~"'-'
'':;'"1--'''''
~~~>':
1
1
1
1
1
1
1
1
1
]-
••IJ:'';;i;'''''' .'. 1 1 1
ll~r·;_ r.lrctlrt: JI ~~
!',l';':;:'· •
J1l!'c~::."
'f.~l:~·: .:'.
O::,\l!,: .
~~j<~:~:..
L ~1_~_-_-_-_-_c_r_~_n-_e~~~~~~e-tt~- - - - - - ~~ 1
,\ ..... ,,,N
·t:?~;.:·':';"':
.~. '"A

~~~;:~:''''' Figura 11.1 Esempio di scheda con connettore a inserzione diretta: la scheda del PC. •
~~;:.'"
~it?l: ~. . '. '. \
K!.t;:::? " La dimensione deUa scheda e Paltro asp~to mec~co rilevantej di norma .essa
~~ft:.~>,· rispecchia la tecn?logia in uso all'epoca ?ell'mtrorluzlOne del bus. Per esemplO Ie
:~.:W:?<;:X schede per Multibus I [Int77] sono grandl 305 x 170 mm, m:ntre Ie sched~ Compqct
;,t;t:.>':
.'~7","'!
PCI sono grandi 160x ~OO n:m
.(f~~a.to 3U E.ur?:M.d, v~di sott~). La FIgura 11.8
rnette in confronto Ie dimenslOlli di cmque tra 1 pm d.iffusl format!.
j -(
;;I(~""..-.
~;!'ij:>,/'
. '
I sistemi industriali fanno riferimento ~ sIstema Eurocard. In questo slStema
6
-
q'+E· ~": il formato della scheda base detto 3D e pan a 160 x 100. ~ per un solo connettor:,
. . ~:;':~ _ 1
i~~~\'.
rna possono arrivare fino a 500x400 mm nella configurazlone a quattro connetton.
I connettori sono del tipo a inserzione indiretta. n VME come standard prevede
)-
,ii'::A' il formato 6U (160x233 mm, doppio Eurocard), can due connettori indiretti a 96
'II,~?< piedini (3 file dl 32), rna sana anche dispomblli schede ill formato 3U. 10 standard \
~iS'·:'. Compact pC! [PCI] pub essere ill formato 3U (un connettore) a 6U (due connetton). I
j!~;J.:. n connettore qui·e a 220 piedini (5 file di 47, can alcune posiziom perse per Vla della
r~~~._.:.,
:\~~X: ,;,
chlave di msenmento) -
~~~~~/:
d~.~~) Caratteristiche elettriche Rientrano nelle specifiche elettriche Ie relazioni tra
l-
'~~f:ir'_. " stati logici ed elettrici. (logica positiva 0 logica negativa), come pure i tempi di sali- -
~;$%:~-:-' tajdiscesa dei segnali, i ritardi eli propagazione ecc. Le relative problematiche sono
:';}~fl~~!, state trattate in altra parte di questa libro.
~:W~;.~
J-
In questa serle conviene solo ricordare che, per Ie linee di bus, 10 standard consiste
%~;:~:';:::'" nell'usare logica con uscita a tre statio Per quanto invece si riferisce aile tecnologie, il
Ii\},: loro esame porterebbe a una discussione che esula dagli scopi di questa teste, anche
il:f'1',.·
~;':;:_'.:_
~:~b':;:
perche negli anni recenti sono state sviluppate specifiche tecnologie per ~piego nei
bus. Queste tecnologie, che hanna fatto della logica TTL un ricordo del pMsato, I
,~'!:j. ,.:' -
1;:~r.':r: 6Le caratteristiche del connettore delle schede Eurocard sono stabilite dalle severe norme
~~1?,'
germaniche DIN 41612. J-
:•• :.v~. _
'\\1
-------:.:""=:....:c:...----- '--~1~,
-454 Capitola 11

I
-):::::i~
,~;;':
'':.-!'t'
-, ;';'1
-.;nj
~:g,I
I 280 I ··".~I

. -"'~~;
,:11
.,';,{.' .~
'I
1 M lsure espresse In mm ' FUTUREBUS
NUBUS
. ':-:;W~;:j'
-.;.':i:.: i
'·;i.i<.' .
(,<.:,i,],

_:~5:~,
-;r., ;1
· I ) '\~~~~ i' :j;'\~:J
-. <::I.'t\/' IIl.t
- ... ~' 'I"~
--'-'''',
,;'," .., ".,"~11"tl
-".:~~, . ·:r..
220 ~ l;:"'"'~s' ',tY
~--, t ! · M~
I I .. ,.~ _~'V
,:~;~~~~ ~il}
,
) ~IBUSIl
- 3"''' t.",
uv ,.'.....
~:'~"~iii:~'"
rr,~ ~"~Ii.
'-.-
,.~'·'tl' ;,~ 't!",.1
,!\.'

-.-:t~·?Jj ·it?,
",:". 'w. m~~
'.1/,.'
-\' ,.,

I
• .,,;#:>:: .~ot

", -~1~fi ~f~


• MULTIBUS) 233 .1,:;':,~!~tj.i ,~j~~
, .~,.'·t\l~« ,.'I!

Tr
SCHEDA PC •'33 .'
ComPilet PCI "'I·"
.' '.<€i}' "'1!
!'·' ,:j~
\ 172 115 100 EUrocard 3U
"{~J:t, ~ ~~'
'J"~:, ~'4
. \
:;~;;,~4t~ \', "
.:\~ii~~~;t*

\
1 ,

r
I-"
t-
-
"~'~.i 'i'
,,'."""':'1:~Tt..
_'i1~'" ~;~
Wi~
j'''ftlY' '~~j
L,
.<~~J:.)~~
r

'·,'f:;~1m .;;
,( I '.0 I :~t1"'~ :;
~>,,~;~.
,..:fj ~ti
I 305 I ,«~~~ ~ li~r
'!;';~~l;~~~;:f

I
1 334 1

,
Figura 11.8 Confronto tra schede di diverso formato.
dimensione lOOx160 mm..
La scheda Eurocard
3U ha ':';'1
,J(~, '!i'9J.

.",r.':
~ "lH
".~ 1 ~ W~
~:'
"'.:l""'" I i.~',
,
.: ,.1,',', nll'I
·.."M

I ".'M~,
" . ;J"
perme~tono ri~otti cons~, bassi livelli di tensione ~d el~~at~ ~elocita. ?i tras~ssione.'-~~~i~
NOD. di rado I costrutton producono un gruppo dt specificl mtegratl aventl la sola "-"'~ iJ!
~one eli elevare Ie pr~t~io~i di un bus preesistente. La stessa Intel nello sviluppare .:~{~'i!I, ~ :y,
il suo bus ~ocale !,CI, on~anamente dato per una. capacita. di picco eli 264MByte/s, :~~~;:,,~:
I ha s~bor9in~to. il ?~sawo a una capacita. di oitre 400 MByte/s all'uscita di una ·<~~}~r?;,!t
speci6ca famlglia di mtegrati dedicata a tale scopo. )t~'~;'i
,,.~~t :i~
" ..~~;:!li"'"'...:
q ' " '",
I>~
'c.:' ',J. I"
,'t,l:"-tl
Caratteristiche logico/funzionali Le caratteristiche logieo/funzionali riguarda- ':,:{Hi,t ~i'~
\ ": ":""I.'1~'
~·f~, ,.~'
no: la dimensione del bus dati e bus indiriz.zi; il numero e il tipo eli linee di centrella; . .:.;!~,~.
·',1<,.\1' 1'

Ia modalita ($crona/asincrona) eli trasferimente dei dati; i meccanismi d.i alJocazione , '.;, .""" \'tl
"'''JH', ~.
,~

*-r... ''t
"F~rlj', ;'
del bus per i bus multimasterj i meccanismi di gestione delle interruzioni e degli errori ','-:·.:I~mt J/.
ecc. .. ;~"tl"'~~
J " ':""'-l ",'I
.:::'Ni :~I
Vinsieme delle regole che sopr-assiedono allo scam~io delle informazioni tra i
, ..
"..."'}
'~'~l" 'I
".
,.." ',.
I""

I ~:lA~~fi: :~!
... ::ill "I
-,·r.. '1
Bus d.i sistema 455

[Nome (IEEE) I dim 1con I dat'l ind I mux I trasf I vel' I


!1'.CXT 334x115 dir. 8 20 NO sinc.(4,77) 0,6
~A (. ) 334x115 dir. 16 24 NU sinc.(8) 2
Multibus 1 796) 305x170 e1ir. 16 20 NU Mmc. 10
J..5::;i;:';_:; ,. VME (1014 233x160 indo 32 32 N asmc. 20
t.I'""_ .'"
~'~""~"
~., .:.,'
MGA 292x73 dir, 32 32 N Mmc, 40

~81
l'~;.···
.B:'.'t~~:'·
Y,!M~','"
, -"E!:;A 334x197 dir. 32 32 Sille. 8,33) 33
~;
V."'.'
I.', Multibus II 11296 J 233x220 indo 32 32 SillC. 101 40
}:~:::, EUturebus (896 280x366 indo 32 32 Mmc. 95
..~::, {,"
-1 '.',

~
'",,~\<,H,
1t~I":,'; ," Gompact P CI "f"1 100x160 air. 32 81 SIDC. 33 264
,:iilt:.~, :;!Jus 147x170 dir. 32 St smc. 25 200
~' II" " "
~.;::,:;.,
,(,.' .. !SC:;1 (') n.a. indo 8 D.a. NO smc asmc 4{sinc)
ot'~_ .. ";'

~~BiX.':Significato delle coionne:


~r·I!(\)i:i ..: ", dim'. dirnensioni , in millimetri'I
,
,;,'
.
!,::'.~:,:. ,';
,,:
.

!~,f'J"""
~,if~!(~ ", dat: dimensione 'del bus datI;
'~~)X~"".
\\;._ w,·
ind: dimensione del bus indirizzi',
"~~IC.'J~) mux: bus multiplato 0 nOi
*,~;,.,' trasf: tipo di trasferimento , sinerono/asineronoi per it caso sinerono, tra parentesi
'J~J¥!;~': I. frequenza
~"j't~-..,
j.,.l~.:1:.",~
1 ck'
d'I co,
~:£n~t.',' vel: massirna velocita. eli trasferimento in MByte/s.
~~;}:~:' Tabella 11.1 Alcuni standard di larga diffusione. La parte bassa della tabella riporta tr~
;~~'?:'" bus concepiti co~~ ~us di .esp~sione ~er iI c~llegamento eli periferici. I numeri tra pare:ntesi
;~~'/." nella colonna dl SWJ.stra Identificano il cornspondente standard IEEE. I bus marcatl coo
i~?'!"~'" asteri~co .(*) sono at~ualmente ?li standard di fa~to nel mo~do. dei .Personal ,C~m.put~r,
t.~~,\~:",>,; Alcum ~el bus ,elencatl sono pratlcamente scompar.:sl e tro~o ~plego.lD ~ercatl dl, Dlcchla,l
ff.i\,j<,:, ? d~ve 1 vecchl st.and~d dev?no essere mantenut\. In ambito ~~ustnale il VME.e aneara
.~r~.'-,:'· Implegato, magarl su piastre lD formato Europa (la meta dell'ongmale). Ma anche In questa
't-~::':' settore si va espandendo l'uso del compact PCl, riportato in tabella..
H,itr .. ,,-~}·,
~,l'~'"
,,,~~',..,"i~;",
II;'~\~""
",,"."',",.;.'
".;(O'~""
~W;//' moduli collegati at bus rappresenta il protocollo (di scambio dati). La parte restante eli
!t;-.;, e
questa capitolo essenzialmente dedicata, attraverso la descrizione di esempi concreti,
,~~~ . .: a:llo studio dei protocollL
::~S~~,t, La Tabella 11,1 riporta i dati caratteristici dei bus per piccoli sistemi, worksta-
t,~',:,"
tions e PC di maggiore eliffusione nella seconda meta. degli anni novanta.
i'~~>"
~'~""~" ..
~~·;r,;~
,",.' ".'
,
~ ,..-
l l :.", ,
~.,:' .';:: "
'.!, , .....
",~,'\',
'1"'''',,'.
lC;f-~':'"
~..
. ~;.:-
.. 11.2.1 Operazioni suI bus
t .','
'H~;.:
.. ij, ,~,
~~: ... ",'
II:": Viene ora data una sintetica illustraziene delle principali problematiche relative alle
Il\~'~"
"
.
I".",
.
l"';'~
. '-'C
operazioni sui bus.

!Ii!'~!'~'
~I~'
.• 'N', ,
456 Capitolo 11 .
. ~~'..
:11:
'."';
. d"1 pro t OC.O I0Iasmc~on~:
U. D .eSemI:'lO ' 'I Mult'b
1 ,I US
I ..
In F' . ,tc ,
'lgura 11.9 Vlene sche- ',~';£'
mat12zato il protocollo di lettura del dati nel Multlbus 17 I tlP1CO protocollo asincrono. -.~~.t .
.,."..
."'~'~':H/o

,,~
ADR(n)

./
" ',::~fj
"%4
WiffiC \ I" !'.?'~
"'~
= \ '.\ .. )ii!.';
.' ' ,,',~
.
:,..::,..
DATA(n) ,,/""a~'i (?
'\ ;~:~k '
XACK 1/ \....r ·".~'.OO

. ..
FIgura 11.9 CicIo <Ii lettura nel Multlbus L
. . ..
n master, all'lnlzlo della transazione t pone
.~;'~i:
gli:.jr.k~
indirizzi suI bus e, dopo un tempo prestabilito (50 ns) per 180 stabilizzazione dei dati, asserisce ~*f"
la linea MRDC 0 lalinea rORC, Questo segnale viene ricevuto da.llo slave che emette i dati :,1ii'
suI bus e, tramite il segnale CCLK (Common Clock) disponibile suI bus, d~termina. it ritardo \;t~ ~
con cui asserire 1& linea XACK. n master, ricevuto il segna.le XACK dopo il tempo necessaria .:~,~, , ';,
. per 1& lett~a. del dato, rim~ove il comando iO~C e ri¥ort~ alIo st~to f1.?ttante gli indirizzL :~'.Nff~ .
Lo slave, nconoscendo che il comando e stato disassetlto t rtmuove 1 dab dal bus e conclude. -,t.~
la transazione disasserendo XACK. :·:"t-;'~~J
. ~';~iik:~
,
,~:':~~;~:
Conviene che il ,,-,i
master preveda un limite massimo di tempo per Ie risposte degli" >~1
sli:\ve , attr~verso un meccanismo di tim~ut, onde evita!e che la mancanza di risposta."~~r-;' "i
(a causa di un guasto nel modulo selezlOnato) provochi uno stallo. "':;;1;.:-
;,~~'1; .
. ':)~~~:J';
Un esempio di proto~o~o si,nc~ono: il ?u.s d,,:l ~C, Nei bus sineroni e ~re~ente ·~.~t~~·
un clock che permette dt rlpartlre 11 tempo m pOrZlOnI dl durata fissa , dette etch bus:' .':;r,~ ,~~
Ogni cicIo bus si compone. di piu deli di clock. In alcuni tipi di bus viene richiesto ':;'I:''Il~
ehe i moduli rieseano • eseguire .1. singol. operazione in un solo dclo bu,. In ogni:~::~.:
caso, tuttI 1 dlSP?SltlVI devono nspondere entro 1 preclSI mtervalh dl tempo dettab .:~_'. :,
dalle specifiche, E pero prevista la possibilita di inserire dei deli di attesa, al fine di "~~~~~
prolungare la ~ur~ta del ciclo bus. , . :"~~~' '. ~
Un e~emplo ~ bus. can l?rotocallo smcra~o e.dato d~l bus del PC, In FlguralLIO .'~l~' :t
vengono nportatl un CIcIo di lettura e uno di scnttura In 8. 1/0 .:}r,:
..,0..;.
",, .,,:(. • •
~l!"'" ,
.r,.~; ~,
Interfacciamento Conviene schematizzare ciascun modulo collegato al bus come , '':j "~'1
composto di due parti, eli cui una con funxioni di logica di interfaccia con il bus e una .'\~I';'
:'< ~
" <~r.;'.
con Ie funzionalita proprie del modulo. ",';fr.
,',I' ~"
L. logic. di interfacei. rende i segnali del moduio comp.tibili can quelli del '., .--
",~ ;
'....
,'"
•"" ~
~

",
,,-,,
bus, sia dal punta di vista elettrica che logico. Dal punto di vista elettrico , occorre ..... .0 ,'~"

semplicemente che i segnali della scheda vengano riportati ai livelli elettriei di quelli ',r.~. ,
"~~",.
,.
.'.If.'~' "
.";'~i1!f'"
.,,-
'••J1:\
.~~

Multibus I e praticamente sparito dal commercia. Facciamo riferimento a esso perche alcune
7lJ . ii<;.-'~
delle soluzioni adottate sooo particolarmente chiare. ·,.•1.<1i
,,~ .
,J,i/t/
· t:'~"~~
81 protocolli riportati in Figura~1.10 e 11.9 si riferiscono a bus non multiplati (dati e indirizzi ~.:t~
',it"'}
vengono rimossi praticamente aBo stesso tempo). mentre 1'8086, ta CPU per la quale sono stati ,:..'11:41;,;
pensati, a.veva il bus multiplato. · ,-,.,(; .I
• 'j~'''I
,~'\r~,
",.....
, "; ,
.$1/,'·....
-
. ~~.;. ; " .
".",r.:.... , 1
-I
) j~(:,:~:,.: ~f'"
Bus eli sistema 457 -
;, ~:~.;.>.~,---------------------------_--=::==-===~""::'::":'
:! ~,,~Pli;'}-.
. Ll"'I".:
1-
,~i\:);",:,
ffi!M!(}~':';:
.I~~~~~;' _:oJ.:_ . 'f- C.C1t>~~1 Dl TlIASI'IIJ.. ......,

I
-i
'~'l~n,!",
ol~:~.!';" '.

~~".!1.:/
;'~l~!,;ti,::.t\.'
=
I " I n I n

n n n n n n n n n! n n rL
v-
1'1'1"11 T'o'j " I " I n n I " I " I "
I-
}i~~t£~<· .,' IllOIIIII1J =:x I!
~ .... 0IplBea..... X ~. pli'" olpIlIe.u.. II..-
"l"~f": /,.".
',~., "I I :1',----- I
.~~} .~,;j;:, . . :"
,f.":1"" '.' "
10i. iOii I' + J
I~~;~' ,
. • ,
"~:""it"·:'
?~~J.~;:";:,,,',' I/G ell 'G~ W~ W \ i
i':i~'i;{':.j,,·,: i :
-
~~",·;:",I_,

:t.~~i~> . hT~
,~~~,~'~~~'"
(lEAD)
i

WMW"~/7//XAII'cpu~A7/00VA: ~
i

i---..{
Allo I-
.:t~¥;.;,•. ~. ~ tItl.O I\}3 ~ ClCllI DI Ql)I

~~r:.r·~ Figura 11.10 Temporizzazione dei cicli di lettura e scrittura di I/0 sui bus del PC. Si noti -
.'~J;~:~j ~he ~el c~o ,del cicIo di ~erit:ura vi~ne disasserito I/O CH ~y e, di coo.seguenz~.la CPt!
.~;~i7:~:'"" insensce 11 e~clo T... l agglUntlvo al CIcio T w comu~qu~V18tO. Nel caso de~a ~ttura, il 1-
.f£~-:~:S~.'(:" master (la. plast!a m.adre conteo~e 180 CPU) ~er~ce ro\y, dopo aver posta 1 dati s~ bus,
-
N~.~~::', segnalando che I dati sonG proo,tl. SuI froote di di.scesa di T'1 lo slave do:vreb~e camplooare
'fi~~~;,:::. i dati. Set a causa della ~ua le~tez.za, 10 slave non e in grad? di leggere 1 dat.1 su T2, allora \
.
:~~~'~';'" 'esso deve provvedere a ~lSasse~ll'e il segnale I/O CH ROY, eli .mod~ che,Ia IOglca .del m.aste~, I-
:'~~1~:,';: .rile~an~o tale segnale, disassento su T'1 (a s~ un T"" SUC~ess.IVO), 1.1lS~a un cl~lo di W8.1~
1it~~~~~t. ~untlVO (T""I) al cldo T", comunque prevtsto (come nfenmento Vlene usato it &onte di -
~ ;~~~:r: dlscesa del clock).
t]1.-~~';;:""'"
. ~ili;~~,',-\'
.
':
; ;~t.~~1Z'i,:: del bus (nel caso fossero diversi).
l-
,~~1tJ~:' pilot,aggio de~ c~mpone~ti. Da un
Inoltre devono essere rispettate Ie capacita di.
punto di ~ista logicci occorre invece interfacciare
-
~2-';!1t~r:',,· funzlOnalmente 1 segnah del modulo con quelli del bus_
~ ~~1r.\.::\. ,'. In FigUra 11.11 viene mostrato un dettaglia della parte di contralla della logica di
:'.'4~i!i>- interf.eei': di uno ,l.ve (per esemplo un. 'ched. di memori.), Poich~ gli integr.ti di
1-
;~~~frt.~:,;;,.. memoria non prevedono La generazione di un segnaJe eli risposta, ecomplto della lOgIca
~ :i~~~~E;~r 'di interfaccia generare il segnale XACK, rispettando i tempi necessari alle memorie.
~ :~~r!~>, Se i ritar,di non sono Doti a priori, il segnale XACK deve essere generato direttamente
)-
t ~*~~i,t dalla lOglca delle slave.. -
: gj,~l~',::;,:
''l~~'" ."
• '.<:' '.:YI .. ,"
,'''. ",,,,.•
, ~'i.'~ 'ui;·"
1 t,:_ ·'it",,.·; i' Uso esclusivo In alcune errcostanze,' un master deve poter effettuare una serie di
)-
'~ itf!}'? ' accessi a un particolare slave, con la sicurezza che nessun altro master possa accedere -
. ,v:"J.-N..-,
. ,A"ti.;...
" :""JI~'I';' alla stesso slave, fino ache la serie dei suoi accessi non sia stata completata. Tipico
' \
~
; ,~:;~ .. I." :",
.,'
. "···"c
--'i"" ....
",,·'-l-:;:,~
...
..·--, e il caso dell'impiego di locazioni di memoria in area com,une, per la realizzazione di
',:'"

',.~,,,, .. ,
,~.,,,.

0 ,j 't"'l~ l(-'
semafari,
1-
,t:·'ir; ".' "
"~~~,";
.. ""."'" .. Nel case del bus VME , e previsto esplicitamente un cicIo read-modify-Ulf"ite per -
" ('' ' ,., ;.
-' t"'.1'."',
·!·
:\ ;"';. ~l'
~ < .. ~
~ j.,!.. , t
.i\ ,~: '.'-
,~."
~., ...,
leggere e acrivere in una locazione di memoria in modo indivisibile, 8enza interferenze
• d. parte altri lIiaster.
uno writs, senza perc la
n cicio read modify
write e 'imile • un cicio read ,eguito d.
fase di arbitraggio tra i due,
I-
~ ;",,,). .
~ <"" Nel case dell. architettll" 80x86 l. CPU dispone di un. linea di u,cit. deno-
} .",:' "
,'; :;;.'/ ':, minata LOCK. Questa linea puc essere portata alParbitro del bus (per esempio, il
\'.~:. "
.Il. ;"""'"
•.,' •\ • componente 8289), in modo che esso non rilasci il bus una volta acquisito, se non )-
I~ r~).I~.:
,~
., ,.1:,... ~1"~'"
".,11'"_
",
,'
,."
,".
,
.Y.
~
'

I
• 458 Capitolo 11 ." '." ,I"
"1"!"k
,",."
,o".,.,- ":-::~
;~.i.
" ';.'~ I ~
<r;;c::

- - - - ._-
<$'~~i~'
'.' ." . ,
~fz
!iii
"D~""
";.:.j*'~J i~,~~
lltVla; st~[CT


'u'..., .'~11"
.:84i .( .
.t~:.

1 -.--- • ~D
~OOIC~
,:. j)iW"Xn
',,:_.\~f...}:~
".
'-'
'( vII SL,lVt

, ~ DATA Cs ;.;>:,:,-,;~~:;mt ,~~~


· I \ '::~\j,~~t ~~.
I Q.tl\ll Q~I!.1 ~'" ,,t:~~j1 '::f
:\,:;';y~ Ij,~
K l-l~\k
• ,~,
. cue 01 I

:<:;~~~,~ ~:'
'1" - - , " HIM •

l
1-1 cUe
• ~ .',~i~tf~'I
~,
,,:~-----'===~ '~~'~}.L~;~1
. , ,, ., ,. i~'~~~iffijj I;~'
Figura ~1.11 ~gIca eli ~terfa.cCla di,u~o,sla.ve (M~tl~)uS 1).81 suppone che (0 sla.ve sia una
~::~.!;t~~~~
scheda. eli mem~n~ e che Sla no~o a p~lon II te~po di nsposta. La lo~ca di interfa.ccia tras-
:,?)tti~"
I

forma I co~andi di lettura e scnttura In memona MRDC e MWTC nel coma.ndi RD e WRT, }':)r!l~~: il}
. ~er ,lalogtca della slave..n segnale DEVICESELECT proviene dalla, ~ecodifica degli indi- 'D~1~~1:j~~
rIZZI. n segnale XACK Vlene generato attraverso un contatore che diVide opportunamente "::';~~~~: jll~


la frequenza del segnale CCLK (Common btu clock). ,:~ii~~ ~~.
\ ',:<l~~!.
••..,;i1it ~"'
>'
· ·,:,:-'t-~W ~"
~'~,:tl.~n :,1
quando questa linea e tornata disasserita 9
,
~., Mti;" "r

.'"""'<I
~~I.r.J..'l; ~,,
... .... ~i
'~~ ~'

,~".;i;.'t(~' l"
· ';~~. ,<'


\ Errori Durante il funzionamento di un sistema, possono verificarsi errori dovuti
7;~~fr
all'alimentazione 0 a interferenze di varia natura che alterano i segnali del sistema
(campi elettromagnetici e guasto di un modulo). '·i';;;I'. f:
;'::Jl ,1.;"
· \ ( Per quanta si riferisce cilPalimentazione, tramite un opportuno rilevatore del H-
vello di tensione 1 viene generato un segnale che avverte tutti i moduli dell'imminente
"." '''lji ,"
'\,.;Jj .,

!'f:':~;:i~1 l.t
,"'~'.f I) 'M
I~

• ,.~~ ),
cad,uta di tensione, ciando la possibilita. aI. sistema di gerrerare u~a chiusura controlla- .'. ' -;"10::'0' < ,'
·". ",:mll ',.

e
tao Nel Multibus I previsto allo scopo l'interruzione PFIN (power failure interrupt). ..... ,:'.' " /
,~\: ' IJ. \t
Nel Multibus II vengono impiegati i segnali DCLOW e PROT per distinguere tra av- '..'>: :1
" . , . ' .....
".>
1 viamento a caldo, a freddo e ripristino a seguito di un calc del1'alimentazione. Anc);:Le
•.,.:, t,·;
"."'" "
•·'l;lt ,,
nel caso del VME e del Futurebus 8Ono previsti segnali analoghi. ~:,:~u¥. :;
,;:-: ... \lI'~~:

In tempi. piu e
recenti si cominciato a inserire anche la rilevazione di altri tipi : ,~:'\~f. ',
'.,'..--,,,,,.. ,
di errori Per esempio, U Futurebus prevede qnee di parita. per l'arbitraggio, per <l.... ~
"":¥'f, .:
,

1 l'indirizzamento, per U trasferimento dati e per Ie linee di comandoj il Multibus II usa .·..!~ "
,}'."'~ '

il controllo di parita. su indirizzi e dati, rnentre il bus PCI contrella anche i cornandi. , ..
· -'/";1 1\, :"
'. "r'1~ I'
~~;, "'

·,;~~:~~ ~

.'- ....
'"j ..'" ·
~.".
:.,)1.~ ,
\ ':'~J,' '.
11.3 Allocazione del bus ·
;' 'l'i,1 "
:c::;~\'".

::'~~f: "
• :1i!A' :
",~'-h
Un bus viene detto multima.ster quando consente Pimpiego di piu di un modulo (nor- >'\"P;,; :
\ mahnente la CPU) in grado di pilotare il bus stesso. In questo caso Occorr. un qualch. , "',' ~: <

meccanismo di arbitraggio the consenta di risolvere Ie contese per l'accesso al bus, ga.- .r':i.·~
"'j).,
t'l'·
")::"
,.~~
'

I
, '

::".
..... '
.I·"~
...., ~

\~'<"'
9L'lUIcita LOCK viene asserita da. una. qualunque istruzione the viene fatta. precedere dal p~fisso '. '''''''.
... ",I'"
• .", <;,
(un byt.) eli LOCK. :..:rl
,;::"lIi
····'1
''',.~

I ,.
~';j. .
"'l;;
,'~r
~I"l'
\..-,'-
.~,,~,
..
Y~
',
i';'.
"
",'" Bus di sistema 459
.
~\:i
.;; ',"-
~~.
~,...;;'. 'c.

izl.::
~'I
"'"
"

~}·;~: . rantendo che non 5i verifichino situazioni di attesa indefinita (starvation) 0 di paralisi
.... '.,
.~~~,:., . de I sls:em~
Xn::'i::'.'
. (d ea,d~ IDC k) • . • .' •
L,arbltragglO pub essere realizzato mediante un controllore centrahzzato, e 10 tal
~~ ~'. __ casO 81 parla eli ar~~tragg~o centrahz~atol oppure med.i:ante una mt~ra2j}one tra 1 van
~~\'.""" ~aster Ch~l co~umc.and? t~a l?ro, 81 a~cordano su chI de.v~ ~sare il bu~. In t~l ~as?
.:::> 81 parla di arbttraggto dtstnbutto. OVVlamente sonG posslbih anche arbltraggl lIDstl,
f,i~ii\,', in cui i master si accordano tra lora can una tecnica autose1ettiva, ma la gestione del
".,
~f~~j., bus viene co~u~qu~ demandata a u~ controllore centraliz~atoi questa tecnica mista
't0/h;: '. El, per esempI,o, Im~le~a~a dal,b~s 1?crochanne.l dell,a IB~, ,
I',:,·/' Un1ultenore distmzlOne SI nfensce a1 caso m CUI Parbltraggto avvenga attraverso
1~~j;.::: .una d~~Y .ch~ opp,:re in paraUelo, Nella parte che segue vengono presentati 4
',~~:,:::," modahta dl arbltragglO:
~.~~~,>.· .,. ..
"'~,~", a) clistnbulta con schema dalsy chamj
}j,f-?{';.,. .
~i1~~~": .b) centrahzzata con schema parallelo;
~'~1;.'~~' . ..,
.:~l!{y~,: c) dlstnbmta con schema. paralleloi
',>.,\-;:'
''"~ /..,.. '
d) centralizzata con schema daisy chain.
";' \(,-~. .
1,:"~~··.i ~ ,
r ""'"
,""l i:"~
""'. ;.:.... '.-'.
:
''' ';, . , . . . .'
i~;";" 11.3.1 ArbltragglO dlstnbmto con schema daISy cham
'

"l'.:~C:· r',
'\!~:--\' c'.

r~t/"per questo caso faremo riferimento al Multibu, I [Int77],. e, pili specificatamente alla
:'i",,,.,. Figura 11.12.
"t':<t.i~!~>-.·
"'f''.,,'I'.~
,

"."
•. Prioril...· Prlorlla'
t,li,ji; .:: m...u1o re minora
M Jt~·
,;'1>:1·\"'.'
::
.('..tr:.r "
0': '.~' •
/.:t~.~, LOClCA DEl. LOelCA DEl.
t~t :.:,>: '. LOCICA DEL
WASTER A WASTER B IIJ,STI;R C
1"",';-":'.'
".'" ,' .•
.P,,',,,·,: =~ ""_I =, 1
.\'. \ ':':'
,,.-\" .. m u, ,

;i:(,I'·~ ""
:~l,:\ ..,:-· . ,,~ ii"Rtl SPit"
,t;,,!?:·;;' .
'.~".i'· ..
,,'),rr."
.:, .V',· iiPiiO BPRO SPRO
",
'.- .. '-,,'
"",/~, .~
':~~,: ;,

I'"f'" ;.;.'
~~':'i~:t'
·'1'" .. '
lUST

.;:.:.' -
, ..... <..'. OCU<
."',.. ':", Figura 11.12 Schema concettuale della daisy chain del Multibus 1. II modulo piu a sinistra
", . ;::. •
. ,:~\,'.,
(modulo A) e quello a pill 'alta priorita., e ha sempre la linea di priorita. in ingresso (BPRN)
"'-":',,: .: asserita. La linea BUSY ha 10 scopo di indicare se il bus e o.no in usO.
:\~'::';'.
...-;. ,O,~ ...
:,:,',{:-': ,; "
<to '.' ' ', .-~
·~A'" J""" n protocoUo di accesso all'uso del bus lO prevede the il master che intende UBare il
·':·.
,";".·
... . bus debba prima sincerarsi che la linea di bus BUSY sia disasserita; una volta entrato
';-' .
"1', .:.
'.\,
' ...,.. ",'.
'.r,~
\ '
.
'~l:::';
.
' '. '
" ' \.,;.
"",
\' ,.:" '
.. lOL'Inte1 rendeva. disponibile il componente 8289 bus arbiter, per }'arbitraggio del Multibus I.
~ i:tV:<'"
;~""">"
"~'.,
.. ~.".'
,....
~!,~ii:~;.f
..;,,;r~x~
,.1'1~'

460 Capitolo 11 ~~~~


- -----'-'---'----------------------------------"", ,
. ".t~.§r
, "li~
.~;.";l-
.. ;~.
.
.
~n po~sess? del bus il master asserisc~ BUSY e la ma.nti~ne Mserita per tut~o il temp'o~i:#;~-
In CUI ha 11 controlla del bus' l La lOgIca del master nchlede Paccesso a1 bus asserendo~:;t~~
il segnale !:'CRQ; la logi~ ~ ~terf~cci,,: ~sponde ~seren?o ~EN quando it bus e';~~~
state acq.u~slt~. AEN ~a il complto d~ ablht~e Ie Usclte ~el ~nver del master. Nello~.::~ty
schema 51 IPOtIZZ3 che il master assensca 1a linea CMND m nsposta a AEN. .'(:'~~.i~~~
?
~iagram~a t~mporale dei segn~ durante una rase di. scamb.io ~ d~ accesso al :~~.~.
bus e nportato Flgwa 11.13. SegUlamo la sequenza degli eventl dl Flgura11.13 ;~!~d.1
In
tenen~o ?r~sente che la logi~a di interfacc~a o~era in modo sincrono rispetto a BCLK·~·t1~
(frontl dI dJscesa), sebbene 11 protocoUo Sla asmcrono. .~i:'}:~f:,
,.":.:WJ.~

1. All'istante to il master C - guello a minor priorita - e in possesso del bus; BOQO.t~~··


assen't'1 BPRN C ,TXRQ
e e BUSY . ,,,,
, . 'i ;,;.:,.tJ~~. "-"-"'\~l'
. ' ' / :' ,\;r~~...
2. ~lPistante t1 la l~gica di. in.terfacc~a del master A queUo a piu alta priorita -:::(r~~;
n.leva c~e e a..:'senta 1~ ncluesta ,dI accesso. al bus T~RQA' Co,nse~entem.en~,~ :4~' '
Vlene dlsassenta l'usclta BPROA. n camblamento dl state sulla daISY cham Sl::f,;:~'
propaga a destra per tutta 1a catenall . '. ~':f;iff

3. All'istante t 2 Ia logica di interfaccia del rna.ster C campiona BPRNc diSass;~~;~?~


rito, rna ~oi~e la logica del ma.ster. C contiJ.1ua a mantener.e asserito, il segn.al~,,jf;~b~1·
CMNDc, llldlcando che sta ";,,cora pilotando 11 bu". 10 scamblo non puo avvemre. ,;""
Nlente accade all'lstante ts, In quanto Ie condlzloOi non 50no mutate. ~ '~':'-';~; .
4. Ali'istante t4, avendo ora il master C rilasciato it bus (CMNf5C di5asserito)l2/!:f~r
inizia Ia fa:se eli sea:mbio e la logica di inte~faccia.del master C. disasser.isce BUS~/~t~,,,, t
n. pass~ggIO delia ~ea alio, 8t~to di~asS~~ltO .ha ,come neul.tato l~ p~sagg10'}.%i~
atJ.SY
di AEN alIo stato disassento e qUllldl la disabihtazlone delle Usclte del drIver del..!'-y;...,"
bus. ./(~.-
Af~:\~·
5, Su 15 U maSter A e nella condizione di appropriarsi del bus (BUSY = H, 'iiiJ
BPRNA = L, BPROA = H, oltre che TXRQ assento). Conseguentemente, la:?{~r~
logica di interfaccia di A asserisce BUSY e di seguito AEN, Per Jlipotesi fatta, >:;:~
la logica del master A aaserisce CMND A e pilota il bus. r{~;
.,. '. . .. . . ,:X~(
ch~ 1a ~me~ BUSY e quelia che gar~tlsce la ~mcrOll1ZzazI?ne t:~ 1modu~l. '~.'~
81 notI
~ protocollo ,di ~cani~)lo e asmcro.no, anche se 81 appo~a su una 10gIca dl mterfaccIa i5.i~
slll~rona .. L uruc~ Vlncolo che 51 pone e quelio relatIvo ~ fatto. che la. durata del <:~~
penodo d1 clock Sla tale da garantrre la completa propagazlOne del segnah attraverso ';'i
la catena, in modo che sul £ronte di discesa venga cam.pionata una situazione certa. ~51
Se q':lesto vincolo e ~o?~~fa~to, poi~e. BPRN e campionato prima che BPR~ si~ ~:f:~
a.sse~I:o, non c'~ ~ossIbilita ~1. operazlOw er:ate ~ul bus. In ~al modo vengon~ eVlta.tl '..<r:>
tuttI 1 problenu dI metastabllita. e"come eVldenzlato dalla FIgura 11.13, l'arbltragglQ ",,;
viene risoIto in un cicIo di BeLK. L'intera procedura di scambio richiede circa 4 deli. '~,,~
di BeLK. :.-f{
':',~
. . . . ,. . . ' . :·;~.~
11 Rl~ult;ra. ch~aro che per ~I corretto funZlOnamento e neces"arl~ che II penodo dl clock sia tale da . ,;#
garantlre I effettlva propagaztone del segnale per tutta Ie. catena. . ;:'
12Si Doti cbe C ha rila8Cia.to iI bus anc.he se TXRQc e ancora. asserita.. Questa indica che la - :~
ric,hi~ta ~i C no~ estate. completata e che vert-a. ripresa in seguito quando iI master di maggiore ;:~;
PrlOrlta nlascera. 11 bus. ,-;:',;,;
•~
. "'';'
',,'
ti,: ~.
.:~\~"-
~;~"''- -
\
'~"~1;~
H -,,~
•.
I
~.:( 2:·· . Bus di sistema 461
','!ff' .
':jlf!V:f:
, ,\I",,,. .,.
:~:\
'. . . . "
)-
.~~4?ii·,L:.,' '" " " " -
,~~~~,<.-­ I
.,.1'~$!;~~~,.
~~~~ J~~':"';:,
~ ~lk~"," .
';
BCLK
I
I
~
:
e.-
;--
I
o,"'- e.-
r-
I-
;~'1' ~:F,:,;'
'x,"
,I I
I
, I
\
-
:l'~' i(,~•• MASTER A BPRN I I
I
l 1
~ ,~~f', . ~.1{ I-
: ~ '0
, ~r .~~(~\.,
~, >,:., :_'.•
,,;.1ii~~j:.' ER'
BPRO

-
TXRQ
'/
I
I
I
I
I
I , -
I I I I
"'""
i
1",
,·.,M'"
',~l!,~
';!~':;
:::
",.,j~'
;<!l).~.,. BPRO
{ I
,,
I
,
I
I
,,
I 1-
;~ 'i,~~,\:t;;:" -
' ~[iA~f~);~:';~~STER c
-TXRO JL I I I

' 'i!'~:~~ . :' ,1"',


, ,
\

I-
f .~j~~t~:i'i"· I I II

~ ~Ii~;~~ . '
-
BPRN

BUSY
,
,"
I
I
I f\.J!
:..=!s -
· ;~~~~~(":"
':
" 'lii~);':
.", "i$U~~3~,; ~A.STER c
ADD
I
\
"

'-- . \.. I
1/
:I """ \ 1-
CMN' . ,
,y I
,

-
:~f\~~~~'"
l-
( I
Atl
t, • ;.j,(~,;
'I :
',If~b~~~(~:',. ADD: I I
" , ; t,i(~.: eM"
I
I ,
I
-
':®;~ASTER A : ; \
·· Ir~.~{~:i;,,"
J i\ ;.~~:~:
Il-..AEN -------------i-----r,
i i\•
I I
./ /
)-
~ !nJ.f..~·rt:;~. BUS AL MASTER C SCAHBl[] BUS AL MASTER A
-
~,1-". ?'1-.-trFigura 11.13 Temporizzazione dei segnali del Multibus I nel caso di arbitraggio distribuito
:~. !..~:'ln daisy chain. Inizialmente il bus e controllato dal modulo a piu bassa priorita. C (Ie linee
( ," ~~\~~;~~·.ADDR indic~o .convenzionalmen~e gli indiriz~. asseriti da1 master ~ si rif~cono). A
)-
\~~~~~.~seguito d~lla ~chlesta da parte del,modulo A, SI ~n~ ~a sequenza ~ ~blo ch~orta
~· :~~ti!~\'~.,~u:,C a rilasciare il bus e A a entrarne ~ cantrollo. 51 noti che il master C [:Ilascl~ 11 bus. (.CMND -
" ~~!~:t:" disasserito) can TXRQ a.nc.ora attIva. Conseguentemente, per ~ompletare il servmo della
i~~ ;~~~!h;~ richiesta, it master C dovra riguadagnare il cantrollo del bus.
11 ~I~v<~'
1-
~'. ~~~W.,
>: 'J1Z~~<' . . . . .. . . .
;~Vf I~~}!:t:;: Ne1 protocolIo nportato , solo BPRN mdIca se un master (piU pnontano) nchlede
~$~~ i~~~);,j~~~' ~ bus" 0 no. Al fine di ~ermettere a un .eventu.a1e master a piu bas.sa p~?rita di prend?re
1-
{~<,\,J:5~t·;;,: 11 controllo del bus, Sl rende necessano che il master corrente rilasCl ~ bus ~ termm~
~:~~1l ~~~:t;;~"'":::. 'di ogni transazion~. P~r tale m~tivo, anche nel c~o che non ci Slana nchieste ~
~~.::I~ \)~~f.;.:·:. accesso da parte dl altn master, II bus master corrente dovd. comunque sottoporSl,
#1 ~"'~;)'~:':" tra una transazione e Paltra, alIa fase di bus exchange. Per evitare questa apreco si 1-
'~:~t# l:7.~.;·:, PUO utilizzare (opzionale ne1 Multibus I) una tecnica detta di bw parking che consiste
~~i~ ~M:~,:!;' II' U II d I b all' I " b t M ." .. edir" bb >
;;.f, ~;id"li~:,. ~e ascIare contro 0 e ':5. u ~lIDO us m~ e:. . a con c~u 51 ~p e e peru
;;,.: ! :£f\.'\~;$,'''.'' 1usa del bus a master con pnonta mInore, con nschio di attesa mdefimtamente lunga.
~ "ul;'t;:;"
'~' ~~E~~.'i".
1
' "' 1;''';':--';'<::
c.~,.
).
"~\'A
. .::~~~~
] ·.::::..-_::::::c=:...:=-
462
-
Ca.pitola 11 .~~~~
·:-f;~1

<-~i i
,..;:;:,~
lr'

"-'''''''j
"~(i!'r: :i
,..
• \ Nel caso del Multibus I prevista la linea CBRQ (Common Bus Request), con cUi!;;;r~~~ ~~
e
8i informa il master corrente che vi $000 rich.ieste pendenti e che il bus cleve essere ~/~l '
• I rilasciato. . <~~1'l ~
Alia fine del capitole viene ripertate il progetto della logica eli arbitraggio distri":_ ~it~~,.:· ;~
buito in daisy chain. )t·. ;
:i;:~f~. . :
• I \
I
-\Ft~ ~~
• 11.3.2 Arbitraggio centralizzato con schema parallelo i~.. ,..:
- '>_, .(.~'"
) "<-:''''~'' ,
• - .. . . ":'·~~{t~~&\~ ;
Ques~a tecmca.e ~olto.~sa. V1en~ u~at~ nel bus EISA, nel PC~ e e prev1sta nel.~~~!:, ;
·-, I Multlbus 1. Q~ di s~~to. Sl fa propno riferunento ,al c~o del Mul:lbus I. . . ..\~~l ~
13 Ie lin~e di nchi~ta veng?n? portate. all. arbltrol COt;ne ill~trato .In FlgU-_~;;K~~ ~
Tutte
r~ 11.14 . L'arbI~ro decodifica la pnontA. delle n~este e. assense~ la.1inea dl :onces- i;if;~ ..
sl~ne la scheda vm~ente., ovvero per qu~ll~ da eill prOVlene la nchl.esta a' pill. alta 'li~~
• pnor~ta. ~a temponzzazlO~edello scambIO In ~orma ~arallela con ar~Itro centrahzza-·~~~OO::
t? e IdentI~ a quella r.elatlva al caso ~ella da.:>y cham! rna con la differet.J-za ~e or~ .~~:i\~~i,,·.,

\ SI deve co~sl~erare la linea: BREQ anzlche lla linea BPR? P~r l~ tempoQzzazlOne 81 .;J;'~;~l1 t
pub fare riferunento alla Figura 11.13, con 1 accortezza dl sostItwre BRE a BPRO. -'S~'}~'~ J
• . "~~4~:t .
''';r., ,
L O ' J E S T ; ' -.\"<~ ·
\ HIGHEST
PRIORITY PIII~ITY :-:~11!l<.' ;
,~':~..i~


I1o'oSTER B HASTER B IF STO! C l'.ASTE!l: D
'.,:,:;;,~~~ I
... ~< ..
IT
( "'" IT
"'" IT
"'" IT
"'"
\ '",~ ~
' •• : .
..... ..;:;.,
,Ai~
If,
,.
P

,';~'r.:'f~,
",""..-".~
:~b

, \
JIlt:ll
"'" "'" "'" :'~~Ir.~
>;~,$W
-:,;,;z", _
.\
Jt -~, '.,
."-.:.:..\."
.....
.'"';"-
:r.-<>;

-' >-~;I;£
'-'"YI';'
1·~",/'i.;I'
',',:'.. 'W1

l ,,,
<,:",-,~,~ -

,,
I --- :,~""-
f-"",ii
.... .. .:",
-; ;

,• ,•
.,
/-')<"
.'
,-.~~"':'~
': }~~'."!It;
. :" •• )-~'
iY
6 6
:"'~~ri
,
7
. ,
7
:~~r?~,
";'~~l.l'~
.
\ ,US
-",;<.,.l:f"
~_~~~~
ARBITER
":;~l!t(
Figura 11.14 Schema delParbitraggio parallelo. ~ultibus 1. Anche in ~uesto cas<> so~o pre- ·_~~~t~;
senti Ie linee BCLK, BUSY. Per semplicital tall linee non $ODO state n~rtate Del dlse~no. _... :~p~
\ Ogni modulo master ha una propria coppia eli linee eli richiesta (BREQ) e di concesslOne ..'-:'!.~~J
(BPRN). :I;1fJ.
...... ""
,- '~~:f~
~~i~'

I UL'arbitro di Figura 11.14 si realizza facilmente attraverso due dispositivi conunerdali, il


(prioritll encoder) e it 74138 (decoder), connessi in cascata..
74148~:,:,~
.
;_ ..~;"~.j~;
•,~..;;:'1i.
-'~'7.'II".
'. ! ",1:1'"

\;11{
_, <,.0;
-.;j;~
_...

I
,.;;<,""
~'~'

..~:,
, r.1';
t' .\ "'
.
3t-,
r,t:,j.:P~'
'Ih~' Bus eli sistema 463
• ,F.l;';\'
,.w..~.: ..,
,.", '~." ,
il1:j~;;t~'~,.",
~?~~t", Nel caso del Mu1tibus I Parbitraggio su base fissa. S?no possibili altre strategi~:
e
.
'~~(: per es~mpio~ Ie specifiche del ?~S PCl l~cian? al pr?gettl~ta 130 .scel.ta .dell3: stra~egl~
~t.:tv,,'.~.; di arbltragglo, rendenda posslbile la realizzazlOne dl tecmche dl pnonta dmarmca 0
~!t~~;:i. '~. sChemi round· robin. . . . . , . d II' I
;~~t... La sche~~ parallelo ba 1l vantagglO della ma~ore veloc.Ita ~ l~ ~va!ltaggI.o e a-
:.ii~\,,· to numero dl lmee che devono essere portate at nsolutore eli pnonta centrahzzato.
~~':i::,'
:~q;
..:i ",,1;,._
I
, 11.3.3 Arbitraggio distribuito con schema parallelo
,)~~~. \,
;'~\¢,,-,'" '" Questa modalita e adottata da diversi bus di usa industriale II, il NuB us, (Mu1~ibus
;~t.:~. il Microchannel e Futurebus), poiche.consente ~ gr~ numero .dI master, s.enza l~
~;~\.;' limitazioni di velocita della dais~ cham.. L~ tec~ca 51 basa .su eli un meccarusrno dl
~~\':'!/,j:: autoselezione codificatal seeon~o 11 q~ale ~ ~lll~ob ~a.st7r d~~ldono autonomamente, e
~~~. .~..:-.
. ,.
. ---~r~ in base al1a relativa priorital CIrca 1'1dentIta dl chI ~bbla dintto ad ac~eder7 al .bu~.,
A ogni potenziale bus master e assegnato llWvocamente un codIce di pnonta.
~~;.;.'. 11 bus prevede un certo numero di linee di arbitrnggio. Queste ~e~ d~veIl:0 ess~re
,'II~~*\<) .pilotate da dis positivi con uscita a collettore aperto. 9uan?~ UUZ13 ~ arbltragglO~
tiJ{[\' .. ogni eompetitore immette il suo codice attraverso la l~glC~ di .1llterfac~la suI ?US dl
J~"';~". arbitraggio. La logica di ogni competitore "sente" i livelli wired-or nsultantl sulle
.:~~:j~ linee del bus! e modifica il numero che sta immettendo secondo 1a seguente regola:
,,~:'
·~\iJlJ~'" .. di d· , ., d I duJ 1 . d t I' d'
;~h.~' ' Se per o~ bit del co ce I p~IO~I~a e ill? .?' a cornspo.n. ~ e .me~ I
}::::;3·; arbitragglO mostra un valore di pm alta pnonta, allora tuttI I bit dl mmor
I~{;:' , peso vengono ritirati dal bus.
:~\.~lllt.,
" Ih·· .
P. l!.i' '"
.~ -j" • dopo un periodo di assestamento l i1 modulo con piu alta priorita trova che il suo coelice
'.~11'~'i?':'-
."~ .risulta uguale alJa configurazione assunta da! bus, e dunque il modulo in questione e
., v·;.·
""'", .
\%I'~(:l; \:,': it vincitore della eontesa. '
j •

1,lf .~-\ ''.,


.. .\\~(",
'~.
,
.... , .
:r ..\._ .
In Figura 11.15 viene dato un possibile schema della logica di arbitraggio presente
su ciaseuna scheda14 . 8i noti che ogni master possiede un suo codice di priorita fisso,
".'''''~
'.'.~ ~'
, , ' ,,~~

;"\:~~':-­
,
rna modificabile a piacimento da parte del sistemista. n eodiee 0000 da. 1a priorita. pili
·~~·I'KII:'·:
~ :l~,'.1:"'" alta, 10 nn la piiJ bassa.
",~ , .. ,
'~~·4·.-;., . . La logica del master richiede PUBO del bus attraverso la linea REQ, mentre la
.!";~~;!-.,
,1if';-I'"':J . concessione del bus viene notiJicala attraverso la linea GRANT. La linea ARB(GNT
".,*,.
"l~"'"
I ;'1J' .•".;
:·;.\tl!{'.. ".,
"'11."" ,,',
. viene pilotata da un controllore centralizzato chiamato CACP (Central Arbitration
Control Point)! che gestisce Ie varie fasi di fu~ionamento del bus. In particolare 1a
";~'~{:. linea e in stato H nel corso di una fase di arbitraggio e in stato L durante Ie fasi di
. ':r.l'~;~:'
--a;.,:,"";:
ti uso del bus.
.',FfI:-m.l. ...:' ,..- Per capire il funzionamento della logica di Figura 11.15! si corninei col considerare
~~~l.i''','
; ,2~~;,L il master avente coelice 1010 (HLHL) e si assuma cbe. solo questo master stia asserendo
.
,,~~!, la propria linea REQ. E facile convincer,i che 10 stato delle linee ARB3-ARBO assume
!it['~''- la configurazione 1010. Infatti, Ie uscite delle porte NAND riproducone esattamente
. M! :. questa configurazione, mentre Ie uscite di tutte Ie altre schede collegate al bus, essendo
a;>
r,~!, per esse 1a linea REQ disasserila, sarebhero tutte a 1. Poiche Ie linee ARB3-ARBO
'~I,>
~'~ ..
).- .~,
sono a collettore aperto, la configurazione risultante 1010. e
,/"l
: Il;y'
" ~'!>
~~
, "•
t 14Lo schema. di Figura. 11.15 e adotta.to dal Futurebus, dove pero Ie !inee di arbitraggio sono 8.
.::.:;
.,/:-:"
"-", ,
. ,'~l,.'>
.,' .
464 Capitola 11

REO
'us
~ ;
"'OJ
'" rv I (Of>'~ C<lJ.)
8
"
..., c>

" ~ J 1 """
(OpOI\ Coil.)
.
~
~
j-
..., e2
ARBI

" It: \.
I (Opon CglI.)

~
"-t " e,
I
ARBO
(0,- ColI.)

A
ARS/CNT
"J
Yeo '-f
CRAW "
.r ~,~,.. • ,

Fi~ur~ 11.15 Logic~ di arbitra.g~o parallelo ~ ~tri?~to, Ogni m,aster vi~e dotato ~el1a. :t~~
10g1Ca. m figura, 14 bIt A3-AO codificano 180 prlOrtta. d1 Cla.scun master. ~a hnea REQ Vlene ),~?
asserita, dalJa logica del master quando intende richieder~ il bus, Le !inee ARB3-AREO '~~.
costitu~scono it bus ?-i arbit.raggio. L~ lin~a AR:B/GNT vien~ pilotata da un controllore, :~'~"; . ' .
centrallzzato. Essa differenzla 1a fase di arbitraggIO da quella eli usa. ":.&'~
::~::,:~'f..~
.. '; 'l~jr!
8i supponga ora che an0e il maste~ avente codice 1001. faccia la richiesta di' .... I fj!
accesso al bus. Uuscita. sulla lInea ARB3 nsulta 1 per_~bedue 1master, oltre che per ,,~t~..
tutti gil altri master che non fanno richiesta (di cui ci disinteresseremo)j ne cODsegue ~'!&ol..
che la linea ARB3 risu1ta a 1. Per ragioni analoghe la linea ARB2 risulta a O. Invece, X~;;,
per quanto concerne la linea ARB1, il master 1010 tenderebbe a portarla a 1, mentre ;.i.~
il master 1001 la porta a O. Ne risulta che 1a linea ARB1 assume stato O. A questa ·T[f ,
punto il master 1010 mette uno 0 m,mgresso alla porta NAND con usclta su ARBO e ',lr"' ,
alla porta NAND da cui e$ce il GRANT 15 . Come risult8oto la linea GRANT non potra. ':;.t~ 1 -:,
risultare asserita per questo master. Sul master 1001 invece c'e coincidenza anche con 7· ~_,
180 linea ARBI. Ne consegue che 180 porta NAND con I'uscita su ARBO produce uno 0, ;~lr<lj'.!,
tenendo ARBO a questo livelio, e presentando tutti 1 alia porta NAND da cui esce il <~~:a:'
GRANT. Fino ache 1a linea ARB/GNT si mantiene in stato 1 (fase di arbitraggio) ta " .:t>
linea GRA,NT rest~ disasserit.a. Quand? finisce 180 ~ase di arbitraggi0l ~a linea GRANT . '~1~'
della sola mt~rfaccla con. codice 1001 nsulta aas.~nta: .:,.:0~ .
I concettl precedent! possono essere formahzzatl nel modo seguente. .~;,~:.
Si indichi can p(x) la priorit" del segnale binario x (per assunzione p(O) > p(l)) ,',." ,'
~I':
e si osservi che X3 = 1 se A3 = 0, oppure se ARB3 = 1. :,y~;,
La precedente relazione pub easere espressa formalmente in questo modo: ':£~
.

HIE come se I'int-erfaccia si ritiro,ue dall'arbitraggio.


~
>,
.t
'r~V ,"
t-l.::~:·
~I~"
:i:'~ :. .
I}!.·,.,.'I
"':I·:"~ :,
'~', '~"~' .
1
.';;:".'
,:t~r",ij[;,~:.,
~ ... Bus di sistema
. 465
~
'-jij~':"l
, .
,,,... ' ._
,"'~'I"" .
~ I,·~·l ';.!
. ~"'~"":'
.,
~'j,U"i.;f"~
. )
;l~~i2;. X3=p(A3) > p(ARB3).
I-V"'"'~"
"-1<1. t, ~.' '.
81Hl'\!/Ovviamente C3=REQ· X3=REQ· (P(A3)
'~~.; ~t;:',y-. Ragionando i.n modo analogo si ottiene
I"l';il,r,.~;·, ",
~"r't\\<+l'i' :~
> p(ARB3)).
I
""~"'~ -,
'''-: ' I ' "
'''.,. ••':ro. ,.
~~_ ',1·. ,,
- C2 = REQ . (P(A3) > p(ARB3)) . (P(A2) > p(ARB2)),
.,..\'·Hilr.~ I"
~,{~~~ ':' '. Infine l si ha
~~
r;;~~'0A.'),
~!{tt;)'r';':
...".,
'!""1".:'~"·:'
"'i~r,;t~,.,
.'

.
CO=REQ· (P(A3) > p(ARB3))· ... ,·(p(AO) > p(ARBO)),
I
tlr~}l:;:. ' In altri tern:~, quando finisce la·fase di a:bitraggio, la linea G~NT risulta asserita ,I
ilJ~wr ;.' solo se la pnonta espressa dalla configurazlOne A3, ...,AO e magglore 0 uguale alIa stato I '
I~.*~i{r ", del bus di arbitraggio 16: dunque vince la contesa il master che ha' piu alta priorita..
I~~~t~;:,;· In Figura 11.16 viene schematizzata la rete che genera il comando eli arQitraggio. ,

'91.1 t· ".
.:l;jj,"·j,:~~·,:,·, "
... _.:-. __ .., )
' ~I"'"
,,~,
...... ;."' .. :'.
,fj'''' .
~'l~I'j~o_"!. .. ,t.~" ~

::1'<"-; ':;';~I''':,
.\l;1,,:, "'lJ{,'"
'i1!'~- ,'iJ.- "
,,, Il:EOAS , Il:I:Q ,•
'i1!~"t.! . , •,
"['ill'";" ," ,
ii· t ..'..
'I
)J!"
v' , ,
~ .•.
"1)1''''''''
•l .. ~
•". ,
,~""
..,;\.
.. ,lo"'l,'''"
' j,.." "_,'
,.it l
f,'
,.
,
,
•L ___
• _.
------r---
AIl:81~
. - . __ . _ - j
,
,
• I.
~:'i,:,\~~r CACP ro.T •
t?a\~".';"/ ""
'. ~~}1:~;'
'~I"~~~t,: Figw:a ~1.16 Sincroni~zazione de~a richiesta di us~ del bus risp~tto a ARB/GNT..REQ~S
.:1. '1~~:'... e la. [Ichu~sta generata lD modo aswcrono dalla logtca del genenco master; essa Vlene SlD-
l
'I.'~ ~r~~.: cron~'tzata attrav~o it flip-flop O,.a c?mmutazione s~ fronte di 7alit~ La. ~inea REQ resta
£; ~.':': stabile fino a.l pro8SlIDo £ronte e, qumdi, per tutta un'mtera fase di arbltraggtO e uso del bus.
I l~' \
~~,1y?'~"i'
~;~~1~t~ . •

~~~' '" ..
jf~~;,~;.. 11..3..4 ArbltragglO centrahzzato con schema daISY chaIn 1.
~~~\
,~.'.~~i~:' Questa soluzione e adottata.nel VMEBus, dove e presente un controUore centralizzato
1j i~';-;f~'r~·
~,~;,:
al quale arrivano quattro,
linee <Ii richiesta separate (BRO,.. ,BR3), ciascuna delle quali
opera in daisy chain. E previsto che Ie quattro linee possano essere gestire con priorita.
).
)~~AT~) •
'~'~f~: fissa 0 con priorita. rotante (round robin). E comunque possibile limitarsi aIlo schema
",;~1:,~': pili convenzionale , usando una sola linea di riChiesta , 180 linea BR3.
' ~~~/'~ In Figura 11.17 viene riportata la struttura deli'arbitraggio n~l YMEBus. 1'
.'; utJ:\f..;,. n passaggio tra Ie 'differenti liste e gestito da! controliore stesso, mentre il colle-
Ii \t&~:.,;;",
gamento daisy chain viene gestito all'interno della singola llsta. La linea nBSY e a
,'b::h:"
'f,''''';
,,::;~
."\:iJ'i{ .
comune tra tutte Ie catene. Lo schema della singola daisy chain e riportato in Figura
11.18.
La linea BBSY viene utilizzata per sincronizzare 10 scambio del master. Nel pro-
I.
,tl~'E:\ e
tocollo VME, nessun modulo puo fare richieste se essa assenta. In Figura 11.19 e
;.;.'1'.'" ~
.,~. ~"1' .",...
" ," ", .
" ,"""....,
., 'IS'f..,

",,,"!,., r", J
''''IJl't(:; ' .. 16Si noti che, essendo ARB3, ... ,ARBO a collettore aperto,la condizione di maggiore non e possibile.
'11#i'~ ";'
lJ~)"""
l 466 Capitolo 11

\ CONTROLLORE
I
:J
I

Ga ltione
• I I ap noma
o rou ld·robin
Catene
~DaiSYChain

!

Figura 11.17 Schema eli principio delParbitraggio VME. Sono previste 4 Iinee in daisy
• chain.

I (
,---, ,---, ,- -,
• I l"'lQ.ster 1 I I J"IQ.ster 2 I I l"'lQ.ster 3 I
ITXRa GNTI ITxRa GNTI ITXRa GNTI
I

I IlGlIN
I, I SGlIN
I I BGiiN
I
CONTROllO
BGilN I BGIDUT
I I BGIOUT
I I BGJDUT I
L_ c-- -..J L_ t----' -..J L_ f..-- ..J
I BUS
-
BRI
BBSY

· I (
Figura 11.18 Singola daisy chain VME. BRi e la richiesta di uso del bus della catena iMma,
BOUN e 180 linea eli concessione (Grant)' in ingresso alia generics interfa.ccia. Bulla. catena i
e BGiOUT e Is. linea. di concessione in uscita. dalla. generics. interfaccia. La. linea BBSY e
comune a tutte Ie catene.
\
riportata la temporizzazione relativa a delle operazioni di scambio sul bus. Nell'esem-

I pia il protocollo prevede che ognirrichiedente mantenga Is. linea di ricbiesta a.5serita
finch. non gli arriva il grant.

l 11.4 Esempio di progetto della logica di arbitraggio


distribuita in daisy chain
,

, \ A titolo di esempio vieae ora svolte i1 progetto della logics. di arbitraggio per 10
schema in daisy chain distribuito. Faremo riferir;nento al madelIa di Figura 11.12, rna
con Pipotesi semplificativa che il master rilasci il bus solo quando ha terminato tutte
Ie sue operazioni di trasferimento dati. In altri termini, si assume che il bus viene
) richiesto attraverso la linea TXRQ e rilasciato solo quando TXRQ viene disasserita,
Dal punto eli vista pratico, la linea CMND eli Figura 11.12 non ha piu motivo di
,esistere.

I ,
Bus di sistema 467

MASTER A l.USTER B WASTER A


ARIJlT. I SUL BUS i AR8ITRAG. i SUL BUS! ARaIT
SUI. BUS'

- ...
8Rt"-
I: 1 \ 1' 1
, " '
, ' I
-
BBSY ', d :, . .I '-I
'
'
A
,,
PllotaU ' ! ) I : :
~ i
'de.i , . : "

'. richi ..d.ntl BGIIN

. + + ! 1 I !
·f-·.. .+ + .
SGIOU1' I I A, Lf !
I iii I

{ ~
,
" I :" I
Pilot.. to
d.Uo BGilN ....... ¥ :
I ,1 \1 I \fr ,i
I :
..rbltro .
'
1
,
:
:
,
I
. ,l
1
I
Figura 11.19 Temporizzazione per l'arbitraggio VME. n master A (priorita maggiore),
essendo 1a linea BBSY disasserita, richiede i1 bus a.l1'arbitro tramite BRi. L'arbitro, dopa
aver svolto l'arbitraggio secondo i propri criteri, abilita la daisy chain asserendo BGiIN. 11
master !!- piu alta priorita. prende il controllo del DTB (Data Transfer BU$ in terminologia.
VME), e asserisce 1a linea BBSY impedendo altre ric.h.ieste del bus. Al termine della sua
operazione (che comunque ha un limite di durata) rilascia EBSY provocando l'inizio di una
nuova Case ill arbitraggio.

TXRQ --71,1 . AEN


BPRD
BPRN
BUSYlN
--~ LACCt=~ BUSYD

Figura 11.20 Schema di ingressofuscita della rete di per l'arbitraggio distribuito in daisy
chain. Gli ingressi e le uscite sono stati rappresentati senza l'indicaziane di complementa,
ma si ricardi che essi sono tutti attivi bassi.

Poiche la logica di accesso al bus deve trattare la linea BUSY sia come segnale di
ingresso che come segnale di uscita, conviene denominare questa linea come BUSYIN
quando viene vista come ingresso e come BUSYO quando viene vista come uscita11 .
In conclusione, si tratta di progettare la rete schernatizzata in Figura 11.20.
Gli ingressi sono:
1. TXRQ: linea con cui la logica del master richiede Puso del bus. Una volta ac-
quisito , it.bus resta in uso a1 master fino al moment.o in cui TXRQ non viene
disasserito.
2. BPRN: linea di daisy chain·di abilitazione della logica di interfaccia del master.

3. BUSYIN: ingresso ehe riporta 10 stato della linea eli bus BUSY.
Le uscite sono:
1. AEN: linea di abilitazione per la logica del master.

170vviamente ie due linee devono essere collegate tra lora in modo da formare un 'unica linea verso
l'esterno.
468 Capitola 11

• A: stato di riposo;
• B: st~to d.i attesa (di entrare in possesso del bus);
• C: non abilitato in presenza di richiesta;
• D: non abilitato in assenza di richiesta;
• E: stato di possesso del bus.

100,101

100,101 0lr,111
o-.lllG
A "01-,111

1().,101 1'-,111 E
~ '';::'' """,,01',111 j-""- '- -'
I 0 ~,'11

,~
tt-,1
11',11\

A-.
B:pronlo

...
c: non dbllo • bus r1c:hIeItD
,..
l.
............ 469

•••
~
_

.. • • 00

w, ow 0" ,- ,.,
". " ,
-- !
e,1 \1 C,lll Con1 "'101 ....'01 D,l11 0,111 [R]
--
&,111

B, 111 E,010 C,lll 0.111 - - - - •,X 0


0-0

.-,
0-0
I
8,111 8,111 C,111 C,111
- - - - c-
- X
••> X I
.
&,Ul 8,111 C,111 C,111 A,101 ....,01 0,'11 0,111


." 1.010 1I!,o10 E,OIO A,10t ....'01 0,111 0,111
'x
E
X X X
A
• c D
1.

.--- .. ~

Al 6,111
..........
00'
B.111
'" '" ".
A, 111 A,111 A10l
'"
A, 101
'" '"
A,111 A, 111
I
-
B I B,111 E,010 "',111 A,I \ 1
~idrlei ..,"

I.
E I E,OtO E,OtO E,010 E,utO A, 101 A, 101 A, 111 A.l11 •

SIan> fuIuro; "'EN. BPRO. eusyo


I-
00-,111
000,111
...1 J
0-,010
A: Ilbero
B: pronto
I-
10-,10 A .In\-111 B E E: possesso •
-'·,11 j

·10111·' .... 1.
·
).

1-

I-
J
- 470 Capitola 11


I
lXIIQ,IlPI\lH,IUSYIN

""""'".
- _,- ""'" OorV' "'''' "'" IU'" lUI 111,1 III

• 1 AIB.11tls.111 A,111 A,lll A,lOI A,lOllA.lll A,lll


1ndlHerenza

• e
Qui AEN sillCfOI
B B f 111 1=.111 A,111 A,lll - - - -
I con it clock E E,OtO E,010 E,01O E,010 ~100 A,loo A,l ,0 A, H' \--- Qui AEN e aslnCfOflO.
Stalo futuro; AEN, BPRO, BUSYQ

• Figura 11.25 Tabella modificata


1
I Stato I VI -
V, -
I
A' 0 0
• I (
l:l 0 1
1 1

"'
• aHa Quale corrisponde la tabella delle transizioni mostrata in Figura 11.26.. Mentre ie
Figure 11.27, 11.28 danno, rispettivamente, ie mappe degli stati futuri e delle uscite.
\

"
, 1M N"8"
00
"' " ," " - ., " ..

\ 10 01,111

11 01,111
01,111 00,111
11,111 00,111 00,111
00,111 lO 00,101
11 -
00,1 D1

-
00,111

-
00,111

-
11 ",010 11,010 11,010 11,010 11 00,100 00,100 00,110 00,110

• I I '0 - -
""" .,
- - 10 - - ,
-
"""'. ,
-

• 1 \ y1' yZ. AEN BPRO BUSYO


Figura 11.26 Tabella delle transi.2ioni minima.

·'I BPflIN,BUSYIN
v, Y2\,.VVVI 11 IV V1 , 8PRIN,BUSVlN
VVVIIIIV
BPRIN,8USYIN
Yly}..00011110 Yl
BPRIN,BUSVIN
, VV V I I I IV

0<0000 0< 0 0 0 0 o 1 1 0 0 0< 0 0 0 0

\
01 0 1 0 0
11 1 1 1 1
01 -- - -
11 0 0 0 0
011100
11 1 1 111
01 -
11 0 0 0 0
-- -
1f -- 1C - -- 1 -- 1C - - - -
I TXRQ.l
"""'"" Y1' lXAQ-l lXAa-O Y2'
I Figura 11.27 Mappe di Karnaugh e sottocubi eli copertura degli stati futuri.

)
Dalle mappe si ricava:
j ,
• V, = TXRQ (V, + V, BPRN BUSYIN)

I
Bus di sistem.a 471

BPRIN,BUSYIN BPRIN,BUSVIN BPRIN,BUSYIN


,BPRIN,BUSYIN
Yl V: IJVVI II IU YI Y: UUUI'IIV V1 ~VVIII'V , VVVllllV

J ,1 1 1 1 , ,1 1 1 1, " 0< 'f 1 -


)1 J ,
1 1'
-"
1~ - - -,
1,11ffl ,
'1 Ii 1 1 ,1 1, 01 -
0 0
-,-
-
11 0 0 0 0 1 1 1 1 1 1 1 1 ' 1 1' 11 0 o " 1
1 - --- -- - - C _ _ I - -'
'- 1 - -I!- - .
TXRC.\
TXRQ-O
AEN TXRC.l TXRQ-o
BPRO
BPR1N.BUSYIN BPRIN.8USYIN
VI ( Io.NVI'I'U V, " IJVV1111V'
) ,1 1 1 1 , ) 11 1 1 1

1 -
-- -
)1 ' 1 1 1 1 '
11 0 0 0 0"
- -
)11---

11 0 0 0 0
I - - - -
-"

TXRQ..O BUSYO TXRQ.l

Figura 11.28 Mappe eli Karnaugh e sottocubi di copertura. delle uscite.

• V; = TXRQ (VI + BPRN)


• AEN = V, + TXRQ
• BPRO = BPRN + "'TXRVDQ"
, • BUSYO = VI

11.5 Organizzazione dei moderni calcolatori

a) un bus ad altissima velocita. per la comunicazione tra CPU e memorie, detto bus
host;
b) un bus di prestazioni intermedie per i <lispositivi ad alta velocit!>., talvolta deno-
minato bus locale;

18Da un punto di vista concettuale, la presenza di piu bus di diverse prestazioni non e assolutamente
una noviU.. Lo stesso Multibus I, introdotto negli anni settanta, doveva il suo nome al fatto che ess9
prevedeva oltre aJ bus di sistema, alcuni bus aggiuntivi. per Ie c08iddette espansioni. Per i1 Multibus
I la Intel produceva il controllore 8289.
472 Capitola 11

TXRQ UN
r---
I
--------------------)
I
,,
I

,,,
,,
, )-D I
I '"
Y,
-.J )-
Y,
,,:~ r BPRO
I
BP RIM ~
'" I ,
:, L ID I
o.c.
,, )~
,, Y2 I-i{ v"
,
, I
________ .J
SUSYQ
1._---_.:._----- -------------- ----- BUSYIN

BUS
a,,'
Figura 11.29 Rete risultante.

c) bus per Ie periferiche piu lente, detto bus di espansione.

. Al ruolo di bus eli espansione e stato relegato i1 bus di sistema precedentemente


vista; in particolare nel mando dei Personal Computer I il bus di espansione e ormai
praticamente svolto solo cial bus !SA. I bus EISA e MeA, per non parlare Dyviamente
del bus PC, sana pratioamente scomparsi.
Come bus locale si e affermato 10 standard PCI, il bus introdotto nel 1994 da
Intel e ormaj. impiegato anche in altt:e fasee di mercato.
n bus host invece non e stato aneora standardizzato, in quanta esso e forte'mente
influenzato daUe caratteristiche della CPU e delle memorie, che, come sappiamo, sono
in continua evoluzione.
n vantaggio d.:i a,vere d.egli standard per quanta si riferisce all'impiego dei per·
iferici e evidente, anche se pure in questa campo l'evoluzione non ha certo trovato
it suo punto di arrivo, si pensi per esempio all'introduzione del cosiddetto bus USB
(Universal Synchronous Bus), divenuto in pochi anni immancabile su qualunque PC.
II fatto perb che il bus host sia fortemente legato aHa CPU (frequenza del suo bus
esterno, grade di parallelismo, presenza 0 meno di cache di secondo Iivello integrata)
ha motivato 1a produzione di integrati d.i appoggio, per la gestione del bus host e per
il suo interfacciamento agli altn bus di sistema. In pratica, l'immissione d.i una nUQva
CPU comporta anche l'irnmissione eli un nuovo Chipset per la gestione dei bus. A ben
vedere, se si Mtrae dalle enormi differenze in termini eli prestazioni e funzionalita, il
chipset svolge un Iuala del tutto analogo a queUo del controllore 8288 richiesto dal1a
CPU 8086 (si veda il Capitolo dedioato alI'architettura Intel).
n e
termine Chipset un marchio di fabbrica registrato dalla soeieta Chips e Tech-
nologies che, anticipando tutti, gia ne! 1985 - epoca 386 - produceva un gruppo di
integrati il cui impiego facilitava 1a costruzione del sistema, in quanto €Ssi si assume-
vano i1 compito di collante tra la CPU e Ie principali parti componenti. Per motivi
1
Bus di sistema 473

1
I-
,-
la teleconferenza r -
-
I-
SCHERMO VIDEO \
-
08 08 I-
doaJmento 0 ~lne -
~ 640'''''''
lNe colot (24 bit)
1024xl2SO
10 immls
\I -

\ /
30 '""'"

..." ...
,.molo 2
30 Immfe -
DEl .. ...
"",
32011240
. 10 'rames
1-
I
Figura 11.30 Teleconferenza con tre partecipanti collega.ti in rete. Si suppone che it video I >
e
abbia definizione di 1664 x 1280 punti (pixel). L'area del video riparlita in finestre, di cui
una contiene il documento in esame in forma chiara, due da.nno Jlirilmagine che proviene
dalle altre due macchine e una quarta serve per l'a.nteprima.
-
\-
La valutazione del carico imposto dalla teleconferenza (in tennini di byte trasfe-
riti) puo essere effe~tuata valutando il tasso di trasferimento per il video19 e queUo per
-
la trasmissione. Per il video si deve tener canto non solo della dimensione e del nu-
mero di c010ri dell'jmmagine, ma anche della frequenza di aggiornameIito. Si possono
\-
fare te seguenti considerazioni.

• Finestra documento. E 1a porzione maggiore dello schermo ed. e destinata a vi-


sualizzare it documento in discussiane. Questa puo essere eli pill pa.gi.ne e richiede
di essere sfogUato.. Si suppone che l'immagine sia di 1024x 1280 pixel, can risa-
L
luzione di 16 milioni di colori (3 byte per pixel), per una dimeMione complessiva
di 3.932.160 byte. Inoltre si suppone che per emulare 10 sfogliamento si debbano
presentare 10 immagini at secondo, con cio ottenendo un tasso d.i trasferimento
verso la finestra principale di 39.321.600 byte/so
!-
-
19Non 5i considera la presenza di eventuali processori grafici. 1-

474 Capitolo 11
, I
• • Fin"estro anteprima. Porzione di video utilizzata per visualizzaxe in tempo reale

• I una jmmagine ripresa tramite una telecamera locale. Si ipotizza una risoluzione
eli 320x240 pixel con 256 colori (1 byte per pixel), Per rendere il senso del
movimento, occarre una velocita di aggiornamento di 30 immagini a1 secondo. Si
• quineli una velocita complessiva eli trasferimeoto di 2,3 MByte al secondo.

• I • Finestre di collegamento remoto. Due ulteriori parziani del video sono destinate
aile jrnmagini in movimento degli altri due partecipanti, ognuna di 640x4BO pixel
a 256 colori, aggiornate a 30 frame per secondo, per un totale eli 9.216.000 byte/so

• I Si supponga infine che Ie tIe jromagini anteprima, remote 1 e remota 2 vengano


inviate regolarmente agli altri PC , dopa averle opportunamente compresse in modo cia
ridurre a 200 KBytejs il tasso di trasmissione. Per fare questa devono essere compresse

: I I da una scheda opportuna e poi inviate verso una scheda per Ia trasmissione.
Senza tenere conto dell'eventuale traffico dovuto all'esecuzione delle istruzioni, il
bus dovrebbe avere una capacita da permettere almeno il trasferimento di un fiusso
dati pari alla somma complessiva, come riportato ip. tabella.
,
DATI SUL BUS TASSO Dr TRASFERIM. (MBytes/s)
• \ flDestra documeoto 39,2
finestra anteprima 2,3
, , \ finestra collegamento remoto 1
finestra collegameoto remota 2
9,2
9,2
Busso compresso anteprima 0,2
Busso compresso collegamento remoto 1 0,2
Russo compresso colle amento remote 2 0,2

I I tasso . tr~ erimento tot e ri . esto 60,5

Si confrenti il date risultante con Ie prestazioni dei bus per PC di Tabella 11.1:
tutti i bus di sistema sono ben lontani da questa livello di prestazioni.
I \

11.5.1 II chipset

I In Figurall.31 viene data una schematizz.a.zione dell'organizzazione di un modemo


PC. I due bloccbi denoruinati Northbridge e in Southbridge costituiscono il chipset.
Gli elementi intemi ai componenti il chipset possono variare 'a seconda dei co-
struttori.e della classe di CPU a cui si riferiscono. Per esempio, il Northbridge per Ie
CPU Pentium integrava il controllore della cache di secondo livello, cbe invece non e
\ presente nel Northbridge per Ie CPU eli classe Pentium H/III, essendo queste dotate
del controllore in questione.
Nel valutare un chipset, gli aspetti cia tenere in considerazione sonG:
,I a) il tipo eli processori impiegabili e la possibilita eli instalJare direttamente piu CPU
sul bus host;
I ) b) la frequenza del bus host: 66, 100, 133 a 200 MHz;

c) Ja dimensione massima eli memoria gestita e il suo tipo (EDO; SDRAM ecc,);

I'
Bus di sistema 475

- .. ,
I
Processore 1 Processore 2
1__ ... ., _. -

Bus Host
t.

Bus AGP
t Memoria
North Bridge
Princlpale

Q
$Iot PCI

IDE

USB
South Bridge
• $lot ISA

Bios
Bus ISA

Figura 11.31 Architettura di un PC corrente. n Northbridge interfaccia 130 CPU con la


memoria. centrale, con I'eventuale cache dl secondo liveDo e con il bus PCI. U Northbridge
integra. il controllore AGP (Accelerated Graphics Port), in grade eli mettere in collegamento
diretto la memoria centrale con il processore grafico, alleggerendo del relativo tra.ffi.co gli altri
bus del sistema. II Southbridge coHega. il bus PCI con il bus ISA. Per questa motivo talvolta
H Southbridge viene denominato bridge PCI-ISA. Esso integra i.l controllore EWE (Enhanced
Integrated Device Electronics), ovvero J'interfaccia per il disco rigido, e l'interfaccia seriale
USB (Universal Serial Bus).

d) la gestione del bus AGP;

e) la modalita EIDE: Ultra DMA/33 e 66, corrispondenti rispettivamente alia velo-


cita di trasferimento di 33 e 66 MByte/s.

Qui di seguito verra data una descrizione di due chipset Intel, uno per la classe
Pentium e uno per la classe Pentium III. .

11.5.2 Chipset per la classe Pentium

La serie per 130 classe Pentium ha 1a sigla 430. n primo chipset della serie '~' il 430FX,
e
denominato anebe Triton; l'ultimo il modeDo 430TX.
e
Il 430TX stato introdotto nel gennaio del 1997 assieme al Pentium MMX.
Esso vantava caratteristiche al1'avanguardia, corne la modalit'a, di trasferimento Ultra
DMA/33 e la gestione delle memorie SDRAM; presentava anebe perb numerosi limiti


476 Capitolo 11

progettuali, tra i quali la eacheable area massima di 64 Mbyte e la possibilita eli


installare un quantitativo massimo di memoria pari a 256 Mbyte 20 •
to schema. in Figurall.32 mostra l'impiego de1430TX. Come si vede esso si com-
pone dei due integrati denominat; 82439TX (System Controller MTXC) e 82371AB
(PC! ISA IDE Xcelerator PIIX4)_

I Mo" I

. . Bu. Ho.t (1IG-68 MI11;)


1
t
M"

~
eacn. ucol"do nveno ."
{~ • • ••
82348T M _•
x Prlnclpele
I (MTXC)
(ORAM)

Bua pC! 13043 MI\2;)


t ""
..

IDE Ull.. OMA. .... -...


. __ t - ~
t
EJ at t
I I I
AUOIO
t STAMPANTE I
Figura 11.32 Organizzazione di un sistema basato su 43OTX.

MTXC lavora con tutte Ie CPU della farniglia Pentium e interfaccia il bus host
della CPU can il Bus delle DRAM (entrambi a 64 bit), con II bus PCI a 32 bit e coo
la cache di secondo Hvello; ha inoItre al suo interno la logica per gestire l'arbitraggio
del bus pel. n PIIX.4 provvede l'intenaccia tra i bus PCl eISA, l'interfacciamento
verso Ie peruericbe IDE (in modaliti>. Ultra DMA/33), oltre cbe alla gestione delle
perifericbe USB_

20 Secondo Ie caratteristiche tecniche fornite dal C08truttore, il bus host poteva funzionare solo a
frequenze di 60 e 66 MHz, il che tagliava fuori quei processori cbe funzionavano con clock a 50, 55 e
75 MHz; .questo si e rivelato esser un viDCOlo solo teorico, poiche Delle applicaziODi pratiche queste
frequenze eraDO utilizzabili.
Bus di sistema 477
I
11.5.3 Chipset per la classe Pentium III
l ,

La serie piu evoluta della Intel (alia data di scrittura eli queste pagine) , nata per
e
lavorare con i processori Pentium III, la serie 800_ I dispositivi sono passati da due
I
a tre.
La serie BOO prevede-infatti tre componenti: MeR (Memory Controller- Hub), l
ICR (I/O Controller Hub) e FWR (Firmware Hub), conness; come rappresentato
in Figura 11.33. ICH e FWH rimangono sostanzialmente invariati in tutta la serie
800, wversamente dall'MCH nel quale compai"ono differenze sign.i.6.cative da m~ello
a modello. I
J

PENTIUM III
I -
I
....
Ii ,
"'"'
-
Metner'f COlima. ~
.tXAGP
MCH ~ t1lrnori1o
Corl~'" graftoo
(Norl;hbridge)

.0<

'."'0
I

.. ~eric:t.
Bus PCI I
'OE

- I
I.
2 portl USB
82801M
I/O Controller Hub
ICH '-'"
(0pD0nllIe) "'" ,.... I
(Souttlbridge)
I j

.....
Ta5ll.1lI,
Sllper I/O
Inl~ccia

)
FWH
)
Figura 11.33 Organizzazione di un sistema con CPU Pentium In e chipset 820. Si noti
che l'interfacciamento tra Northbridg~ e Southbridge non e pi'll tramite il bus PCI, ma
per mezzo di una connessione dedicata a 8 bit e avente una banda (266 Mbyte/s), doppia
rispetto at PCl. 0 controllore di quest'ultimo e stato trasferito in lOH, lasciando a MeR
solo Ie connessioni ad alta velocita..
I
J

I 478 Capitolo 11

,

MCH La. serie 800 si compone.di tre sottoserie di integrati, denominate 810, 820,
840. Qui viene fatto un breve accenno alia sottoserie 820, quella di prestazioni
\ intermedie.

n dispositivo MCH 820 (marcato come 82280) presenta un controllore AGP e un
controllore eli memoria. Quest'ultimo puo funzionare .3. differenti velocita di clock, a

I

seconda del tipo <Ii memoria instatiata (~i parla di PC600, PC700 0 PC800 a ""conda

ebe Ie frequenze <Ii lavoro siano 600, 700 a 800 MHz). Nella configurazione a 800 MHz
I'ampiezza di banda assicurata datie memorie RAMBUS e di 1,6 GByte al secondo,

il doppio di quella ottenibile con Ie memorie PClOO (Ie c1assiche DlMM) , esse pure
) gestibili dal dispositivo".
n control1ore per l' AGP e in grado di assicurare un'ampiezza d.i banda superiore

al GByte.

· ' (
ICH lOB e connesso a MCH per mezzo d.i un apposito bus a 8 bit, funzionante a
133 MHz, nel Quale Ie opera.zioni vengoDo effettuate BU entrambi i fronti di clock, in
modo da raddoppiare la velocita del bus. Questa modo di operare, detto modalita


I dappio fronte di clock, permette di ottenere un' ampiezza d.i banda. complessiva di 266
Mbyte al secondo. Questa e forse una delle Dovita pili importanti rispetto ai chipset
d.i generazione precedente (la serie 400), nei quali i1 controllore PCl era integrato nel
Nort4-bndge e il collegamento con il Southbridge avvfmiva per mezzo del bus PCl.
Avendo spostate il controllore PCl nell' lCH, questo bus viene alleggerito dei dati che
\ vengono scambiati fra i due elementi del chipset, consentendo un miglior sfruttamento
delle periferiebe collegate al PCl.
ICH gestisce i flu..i dei dati da e verso Ie periferiebe. n controllore PCI integrato
al suo interne permette di pilotare fino a sei dispositivij il controllore EIDE a due cana-
I I li e capace di gestire fino a quattro unita secondo 10 standard Ultra DMA/66". Ven-
gono Coruite anebe due porte USB. Un'iDterfaccia particolare (LPC, Low Pin Count),
consente eli collegare tramite un integrato'denominato Super 1/0 23 periferiche come
la tastiera J il mouse J il dischetto e le porte seriali e parallele.
Da ICH e scomparso il supporto per il bus !SA, ma e stato previsto un iDtegrato
\ ausiliario collegato diretta.mente al bus PCl. Sono anche presenti i controllori di inter~.
ruzione, eli gestione del risparmio energetico e dei canali DMA. Infine , ICH ecollegato
il teno e ultilno componente del chipset, il Firmware Ht/.b.
I FWH FWH iDtegra 4 a 8 Mbit (a seconda del modello del chip) di memoria non
volatile, destiDati a ospitare il BIOS del sistema. Sempre nel FWH e integrata
anche un'importante novita., un generatore hardware di owned casuali (RNG, Ran-
1 dom Number Generator). Sfruttando il rumore termico prodotto da un transistori e
possibile generare una sequenza di bit senza alcuna corre1azione tra loro, secondo un
perfetto principio eli casualita (diversamente dalla. pBeudo-casualita. ottenuta per via

I algoritmica). A detta del costruttore cle cousente di aumentare significativarnente il

:n Questa chipset permette Quindi di montare memorie in tecnologia. DIMM 0 RAMBUS. Per dare
un'idea delle differenziazioni, sull'MCH della. sottoserie 840 !Iono pre!lenti due controllori di memoria.
) RAMBUS.
:I'~ Alla. data. di scrittura., 1a modalitA piil veloce disponibile per i dischi rigidi.
~3Con lao sene 430 questo integra.to era. interfa.ccia.to Bul bus ISA.

I
Bus di sistema. 419

Hvello di sicurezza nelle applicazioni di crittografia, a vantaggio di tutti quei campi,


come il commercia elettronico, che richiedono un alto livello di sicurezza.

11.6 II bus SCSI


Il bus SCSI (Small Computer System Interface) e un bus di I/O parallelo, di basso
costa e molto fiessibile". Dalla data della sua standardizzazione (1984), sono state
proposte versioni successive del bus. La descrizione che segue fa sostanzialmente
riferimento alIa versione SCSI-I.

11.6.1 Principi di funzionamento

Lo standard SCSI [Gla90a], [Gla90b] permette il collegamento di periCerici eli diffe-


rente natura, quail dischi, nastri magnetici, stampanti ecc., per i quali, ovviarnente,
e richiesta un'interfaccia conforme.
In un date istante Ia cemunicazione suI bus e consentita a due soli dispositivi

'Obiettivo: e il dispositivo che esegue l'operazione (il trasferimento dati) dopo essere
entrato in cantrallo del bus.

Solitamente un dispositivo SCSI funge da iniziatore a da obiettivo, rna esistono


apparecchiature in grade di ricoprire ambedue i ruoli. Sui bus devono sempre es-
sere callegati almena un iniziatore e un obiettivo, ma, come mostra la Figura 11.34,
possono ancbe esserci piiI iniziatori e/o obiettivi.
n bus SCSI permette di collegare fino a 8 dispositivi. Apparentemente si tratta
di un numero estremamente limitato. Tuttavia ogni controllore SCSI puo avere fino
a 8 unitd logiche, e ognuna di queste puo avere 256 sotto'Unita logiche, per un totale
di 2048 sottounita per singol0 dispositiv0 26 • ...
n trasferimento di informazioni sulle linee dati easincrono e segue un ,protocollo di
tipo hand-shake REQ/ ACKj in un singolo delo viene trasferito un byte. E comunque
prevista 1a possibilita. di trasferimenti sincroni dei dati.

~4Esso deriva dal bus' sviluppato dalla Shugart A.&sociat.ea - it primo c08tnlttore di floppy di~k­
denominato SASI (Shugart Auociate8 System Interface) e divenuto in breve tempo uno standard
,I
industriale de facto. Quando bus venne adottato (praticamente invariato) come standard ANSI,
fu ritenuto opportuno ca.mbiargli il nome.
25Nella discussione che segue iI termine "dispositivo SCSI" 0 piu sempLicemente "dispositivo".
viene usato per denotare un controJlore 0 un ada.ttatore SCSI; da. nou confondere con un dispositivo
di I/O che invece viene chiamato "periferico".
~"Nel caso di singolo host si a.rriva. a. un totaJe teorico di oitre 14.000 periferiche coUega.bili (7 x
8 x 256).
480 Capitolo 11

~I HOST
,'.,,,' .
adana!.
COfItmllore
•••••••
"-~)~ J
~;:::~~t~
""' SCSI SCSI
Dl~ rlgldo 0_",
.~ti~~i:
(a) 5ingolo Iniziatore, 5ingolo Bersaglio
(Ana a 2O'Ie portll,u1che
per control lore)
,:~::~~~ ,
,'::~4:,~~i
,:)!~;.s.t
,:;ni~'~
-,~;,.::.~.
"":~·/'l_ .
E] ":tl~:
' HOST "''''',.'' •••. :•.\:;"r;~:;:.
- adattat.
bus SCSI
!J-,
SCSI
controllorll
L.J
• ••• .:t[~~
" SCSI
:-:>~;1J1
• •••••• <:J~\i:
conlJoIlofe
• ••••••
/4i[#
,,~:~;~~;;;
SCSI
(b) 5ingolo Iniziatore, Multipli bersagli
:~ ~~
.;:'~{:
:3~
::.~~ ~
•. ,,'~:.'" -
' '-'''",
.--",,1.;'"

E]
.".
HOST ,;::~ ,
.:::#\!~
controllo,e 'h
adatIal. b" I '.,:,:.;;.",
SCSI i'! .•...•• ('1 ~it '1
HOST
conlrollore
{~~J
SCSI • ••••••
contro/Iole
":'!.jit
"1:~..
adatlaL
SCSI • ••••••
/i!J.~
(cj Multipli Iniziatori, Multipli Bersagli '~.::::S1
~:'~:7'
Figura 11.34 Schema connessioni SCSI. Nel caso (a) suI bus c'e un iniziatore (il sistema
host) e un obiettivo , al quale possono essere connessi una. moltitudine eli periferici. Nel caso . ;':!~'
(b) c'e un solo iniziatore -e piu obiettivi, nel caso (c) si hanno due iniziatori e tre obiettivi. :·,'rw
Ai massimo suI bus SCSI possono essere collegati fino a 8 dispositivi (controllori SCSI 0 "":"'1't ~' . :t!i~
adattatori SCSI). Ovviamente i periferici devono essere compatibili con i controllori SeSt
'~~~'i
:)'{it&
. ''-''t~{
La modalita eli funzionamento del bus permette l'esecuzione dei comandi in modo .:;!
parallelo da parte di differenti perifericbe. Di norma il dispositivo hOSt?7 trasmette
un comando al controllore della periferica selezionata, qUindi si sconnette dal bus 1
,.. ::~~
rendendolo disponibile per altre transazioni. La periferica, tramite il suo controllore 1 ·"i
si rjconnette all'bost per concludere la transazione. S:~·f
Dal punto di vista elettrico, il bus SCSI puc) assumere due diverse configura- ..-'"~
~. "'''''
zioni: singola terminazione 0 differenziale. Nel primo caso it livello logico di ogni .:"~. ;"i
segnate viene delerminato daUa lensione presenle su un singolo condullore riferita a <~~
/ ':;~;r
' ' '0
.'1,'"
';
.:("<
27 Nella terminologia SCSI, host e chi comaoda I'esecuzione delle operazioni , generalmente la CPU. .::Jf;
".-..
...
,::.""
.:'"
'. .
!i;~\i~r'
", ..,..
I\~I~"
1-
\
"!;i'"
I'

I'N·
-:.J:'
.
,:,'<'
,•. ~.l.,"j _.•

• Bus di sistema 481 -

~;'i·'r.,(

,'$;:')-
5r:y.... " J-
~~~f~'~-·,:'massa; nel secondo caso per ogni segnale sono necessari due conduttori, e il Uvello
..:t.':'; logico viene delerminato dalla differenza di polenziale che esisle Ira questi. n bus in -
J·~S~ :"-:>" versione singola-terminazione non dovrebbe essere lungo pili di 6 metri, e dovrebbe
M{:~.:,>; \', e~sere u~ato per conne~~ere dispositivi all'interno della stesso contenitore.· Un bus
:~:'<·- ·drfferenzlale, essendo pm schermato e dunque mena soggetto al rumore, puo essere
I-
~::;}:~ :'. lunge fino a 25 metri e puo essere lisato per connettere dispositivi in differenti scatole. -
s;'>:>:: "E prevista una linea chiamata DIFFSENS, presente solo nelle versioni differenziali,
t.l,"1:.'~ . 'the permette ai dispositivi che ne 80no capaci di adattarsi all'una 0 all'altra confi-
~;i~.~ :~/,', '·gurazione. Ovviamente La versione differenziale ~ pili robusta e mene soggetta a
1-
,:,.....~, . :.'.,.
. ~ir·":'·:' mter erenze_
f -
:;~';.~~;'~'" n bus efisicamente un cavo piatto e1a causa delle frequenze in gioco1i conduttori
.::,.,:;:,,~:, ," possono presentare cemportamenti irregolari, con fenomeni di riftessione del segna.le 1-
~ 5~1,~::!,,: e di disomogeneita del carico elettrico. Per minimizzare l'effetto di tutto cib si usano
1~;\~Jf.1/':" du~ terminatori di linea a.i due e.stre~i ~el bus. Solitamente un terminatore 8i t~ova -
i:~i,\r~' all'~nte.rno della scatola che contlene il slsteto:al mentr~ l'altr.o va connesso all1ultuna \
# ~'''\'\ penfenca della catena. Nello standard e preVlsla una linea dl pOlenza (TERMPWR)
; ;:,:;~f];'>!~',. ' che fornis~e tensione aile reti resistive dei due terminatori.
I-
~ !:;~~t:::i( L'indirizzamento delle periferiche edi tipo logico anzi~e fiaico. Cib permette, per -
: ft4';:5. esempio, a un conlrollor~ di un disco SCSI, di. mappare i sellori danneggiali a livello
\I -
~~'&~N~\>' hardw~re, fac:ndo apparlre aI SIstema osplte il disco come una sequenza contmua dl
~ d~~~:J:~'':;' blocchl "buom" .
L'
"_';:
__." f .•
~,!.;.
eI'~"'"
.. I'
.-':.,:,
,~.~ •. '<'.

,~" .....
-

~
'f,A",(r..:.~,
. .,;\.,-.:
, ''1"',''.:''':"
1:; r.i:~;~;:':' ~
11.6.2 I segnah SCSI
1-
J~'J':' n bus SCSI ~ molto semplice rispetto ad altri bus. Prevede infatti solamente 9 linee -
tr~~ZtV:'.:';. per i dati (8 bit dati, indicate come DB (0) - DB(7) e un bit di parita1 indicate come
.. f!}:;:f' ,,: DB(P)) e 9 linee di controllo. Apparenterilente anche il prolocollo sul bus semplice. e )-
~1 ~~:(;(;~:~, La sempl~cita deriva d.all'intelligenz~ri~es.t~ ai dispositivi SCSI, che ~~ fann~ carico
'
1~j:~~>.,;;,.:. della gestlOne del traffico sui bus, del perifencl e dell1accesso alia memona del sIStema. -
.
'1 ~t~<, I segnali di controllo sana i seguenti: I
I-
',~~~}~.,:-- BSY. (b~sy) A~serito ~a
- d~
una 0 entrambe l~
parti dura,nte una t.ra:nsazi.one pe~
w~ .t!~~t.
t ~,e'·,l.
mdlcare che il bus e10 USO. La llOea del bus nsulta dal Wired-or del smgoh segnah
pro d0tt'1 d at. d'tSpOSI'1"IVl.
-
~, ':.i'l;' ::'

i~~;~;~'~'" SEL. (select) - Asserito nelle fasi di Arbitraggio, Selezione e Riselezione da parte di )-
&: ;.;'.{+.;;,: .: un iniziatore 0 di un obiettivo. Anche questa segnale e wired-or.
{i ~ ,." .
!~m-!;;'. C/D (control/data) - Asserito dall'obiettivo. In stato alto indica che sulle linee dali
~~ }:F;:~>': ci sono informazioni di controllo, in stato basso indica che ci sono dati. )
i~g. I/O (input/output) - Pilotato dall'obiettivo. Indica la direzione del Ir..ferimento
ft r;;:·h:? relativamente all'iniziatore: asserito alto indica ingresse per l'iniziatore, asserito
~!~ !'}:":.'" .
',*' ,... / ....
.:.'
i'} ;;.'i: :-
~~
."
':;",.,.. ,
basso indica uscita dall1iniziatore.
MSG (message) - Asserito dall'obiellivo duranle Ie fasi di Messaggio.
1-
rli ~'~'!:" .
01.; .;- l
REQ (request) - Asserito dall'obiettivo per iniziare un trasferimento asinc.rono suI
",.''' .', '.
;'~,'"
<>r ,.', ,
;~' ,< '.• "
.\;1.(:,<",
.-.~
", ',,
bus, secondo 10 scbema di bandshake REQ/ACK.
J-
,''>f,['
,'- :t.
- .

- I 482 Capitola 11
'1
~r~
,~

- ACK (acknowledgement) - Asserito dall1iniziatore per .~


- I famito dati in risposta a un segnale REQ.

ATN. (a~ention) - Asserito ~all'iniziatore. per far pr~ndere a:tto a un controllore che \~ :
',.

il pnmo ha un messagglO a esso destInato. In nsposta 11 controllore puo aHora r·,"M, 'r
- <;~~"" ,
I richiedere il messaggio attraverso una fase di Message (Out).

OQ'T' (reset) - Segna.le wired·or. Puo essere pilotato qa qualunque dispositivQ. E \~! ;
".11,_
'~!i'.l'i:t ~,
"

~ato in genere all'avvio 0 da un iniziatore quando jl dispositivo selezionat9 no~ ::';-fl~~~t


I nsponde. ,.,,'0,\1 f
')%~i'~:~
<#,f{~ ,
~;~~~i:·

- ( : 11.6.3 Fasi del bus

n bus ha 8 distinti stati detti fasi operative,


"!:'*~~ :
, ,,;(~1 ~
:;;:~; k
;(:~~~ ;
r.,~ ~
1) Bus L 1'b ero', ,::":"
':-li'~
.(\ll""
- • -b-Itr:u:rVlO'
. rl.:

I 2) ru:
. -00" ,

4~ R.iselezio~e'
3 SelezlOne' .',:,1
~Il;
.~,'t'

.. l~~H i
.",,~
, ,'.
:
·f ~
· ' ",:,,'ilj:
5) Coman d 0, "r"'l!~ilt
- \' 6) D atl. ', .,,.)~~ • ",
"'.t"'
,'~
"
7) Statoj ~'Nk~* ~
-
t
Ijf'~~'~ ,
8) Messaggio. ~",;7. i' )i

- I!
Le ultime, quattro BOno "
, , '_1:
Ie [asi bdi trasferimento
' . dell'informazione. n hus e Bempre
. ;;fl ~
,.' '!Iii' w i
JD,JZJ~to alIo stat,o di BUB LI ,ero, e C,l ntorna dopo un ~es,et,. Nella fase .dl Bus ,dE.i~
- LIbera il segnale BSY non e assento, n diagramma delle fasl di FIgura 11.35 illustra ,.~~~~. ,r
1e POSSl'bili' t raIlSIZI0ne
., d'1 f ase.· ' "cl·•~ ,.'~
- Un s~ema puo ~ss.ere: .(a) se~za ~bi:ra~o; (b) con arbitrag~io, N~l primo :i~1:'~~.:
,::.;'It':l.~_'!f
\ caso non Cl sana Ie fasl di Arbltraggto e dl RiselezlOne. Normalmente SI prefensce non .+·J~)rr
- avere arbitraggio nel case di un solo host e un solo controllore, in modo da velocizzare ':~~1f~'
Ie operazioni. ' . . ":i~~tf~
- I Per spiegare il funzionamento del bus e in particolare Ie fasi di arbitraggio e '\~~~
selezione, oecorre precisare che ogni dispositivo suI bus SCSI ha un suo identificativo '.~;~{]~_
- (ID), che entra in baUo durante queste fasi. Poiche i dispositivi possono essere a1 )'~:i~\
massimo 8, e stata fatta la scelta pin ovvia: l'identificatore e rapp~esentato da un bit, ,~:t;'~:l
- ed e trasmesso/ricevuto su uno degli 8 bit delle linee dati. I dispositivi hanno tutti :'X~,::

- I dif£erente prioritA: il piu prioritario e quello identificato da DB(7), il menD prioritario::~! ~


quello identifi""to da DB(O). Nelle [asi in cui dispositivo vuoleJarsi riconoscere deve "·;1
assenre (portare basso) il cornspondente bit delle linee del datl'B, '('i;~I"~


I ;''1''j
Fase di Arbitraggio Ba 10 scopo di assegnare a un dispositivo SCSI il controllo .".'.'M'
..~l'·~l~ ~
.,,~,
,,'

,r:;::'>1"1
I

del bus. D dispositivo che acquisisce il bus puo assumere il ruolo di iniziatore 0 di ,-..... 1
• \ obiettivo. ·""0'" ,'.f .
',:,<.7.
""~J "', J' ,
I :',i l~
· ""I~'I)

28n bit di identificazione e anche detto indirizzo SCSI. ,.~"':... ~
· " '.
~"

·!fl'';
I
,~ ..
• !'"
-.--
~'~
t1,.
;~','1..

p,-·rtJlj'~
.f.i:~i::
".,<.,

483
1I,Jt"!,::,, ", Bus di sistema
r''''' '
.. '.
~
~ITf~'l:\
~~;}~~:'" /WXensioIlOOre$8t Acee,- -'
'iO 'esel
~~'{~i: . SELEZ10NE°
RISELEZIONE
.,t~'I:,:·
I BUS LIBERa SELE2JONE I I aUSU8ERQ ARB1TRAGGIO

:~~;:,~/,:
r"~:<'.,:',,, aualsja~i
lase di lra!ilerlmenlO intormaliolle: QYldslasl lase dl uMlerimell10 lr1fOl'maUlne:
,L't':\'~\~ COMANOO, DATI. STATOo I.1ESSAGGIO COMANOO, DATI, STATO 0 MESSAGGJO
"r"",
,;i:'~:,;~;, .
;-:\!J~t:; - .
t~:':'~;~ ". (a) Fasl SCSI senza arbllraggio (b) Fasl SCSI con aJbitraggio
f~\""i . . eli del b SCSI L [ eli b' ., . -, . .
,~?~},," ".Fig~ra 11.35 Il,~a,graroma stato, US , a ase ar ltr~ggIO, ~.opZl~n<IJe: 1 SIS-
,"S':'I?'>,~' teml con.un .5010 1,D1Zlatore poss?no eV1tar~a, rna. e comunque n~cessa.na nel ~lS~eID.l che usa.no
·::.~r~:> ,.130 fase ill Rise1ezlone. Sosta.nzla.lmente Cl sonG tre macrostatl: 10 stato dl Llbero, 10 stato
:r;,?l~/,"-'-: Arbitra-ggiojSelezione e quello di trasferimento del1'iuformazione, Un iniziatore pub svolgere
~k,,~t: solo Ie funzioni ill arbitraggio del bus e eli selezione di un particolare obiettivo, mentre un
d:i
k;::~'~< obiettivo p~o richiedere it t~as~erimento un c,omando, di u~ blo~co dati, ~el~o. stato 0 di
;ifi<~ <::' un m~aggto: Pub anche rl~ledere l'a.rbl~ragglO del bus e nselezlOnare un IDlzlatore, allo
~~{,t;',,;: ..,:,. scopo di contmuare un'operazlone sospesa ill precedenza,
:',j"..:j.:'>'I~ "•
.i:''"l;"~'';'' .
I~ ....,~ ..
:to'!>.",
1;';" .......-'

~f!".r.f, 1. II ~ISPOSltl,VO~e lll~ende acqUlsrre il _bUS att~de che esso Sla libera (BSY dlSas-
~ I';,;' . ., , . .. . . . .
i
:~\,o:;: sento), qwndl assensce BSY e pone il propno ill Bul bUB.
t\,t..",,;
,~,,,;. ,
",<,,.,,,,,,,,,
"")' " 2. 'Dopo un arbitration delay il dispositivo esamjoa Ie linee dati: se e asserito un
~1~.~k:I~:·' " ill di pii:l alta priorita. aHora disasserisce i propri BSY e ill. Vince la contesa il
,,'~1'"''''''', .'
.;~(,(~':';:"
dispositivo che alIa fine trova solo il proprio ID sul bUS 29 .
i~~':: "
w:IjJ;'''''''' ; . ,
~~.-
3 n dis pOSl't'IVO Ch e vmce
. 1a [ase d-1 ar b 't' .
1 raggIo assensce
SEL .

r'i11:(:"
"...., , .. 4. Come corollario ai due precedenti punti, ogni dispositivo in arbitraggio si ritira
~;~~\,i,::\"::
immediatarnente (disasserisce BSY e ill) se riconosce che SEL e stato asserito
'\~~~~i~:::.,. (da un altro dispositivo, ovviamente).
'Ii'!gi~':-'-':'"
I '''';''l' •
';~~~~~:'~
~~::'::~ Fase di Selezione In questa fase un iniziatore seleziona un obiettivo allo scopo di
f-:::i~r,." inizializzare una qualche funzione che il secondo dovra svolgere.
_<t?.r>...:: In un sistema senza arbitraggio ·l'iniziatore seleziona l'obiettivo semplicemente
\~~~~t "
asserendo il proprio ill e queUo dell'obiettivo che intende selezionare, e asserendo
!.;ri:i~;' inoltre SEL. In un sistema con arbitraggio la fase di selezione inizia con BSY e SEL
~~:~~.<-;.-" asseriti dall'iniziato~e che ha vinto la contesa (vedi sopra). A quel p~to:
~~.,,~.~~,
1 :;ri·:.>
~ ;;;~"
a) l'iniziatore asserisce il proprio ill e quello dell'obiettivo suI bus; disasserisce
BSY e I/O (a indicare uscita dall'iniziatore) e si,pone in attesa della risposta.
~ ~..,.,..,.. ", dell'obiettivo;
I ".,~ . -"
'j;."<'
~.' ,.".; I,·
' -:;1". .;••'1,.-
,',
b) l'obiettivo che vede il proprio ill sul bus, con SEL asserito, con BSY disasserito
1:,' ~r'::: e I/O asserito basso, stabilisce di essere stato selezionato e asserisce BSy30;
1 .,~-\'
"I,·.
l.,\"i."
':'j!;\"~'
, "'," ""1",,..'
..,' ,
~ ~~;:' .' ~',::' , 29Si Doti che, a. p;;u1:c i dettagli pratici, il meccanillffio e quello deU'arbitraggio distribuito parallelo
) :\:;~~.
'-,""" ," '
,-,,'
" '. .
,:.
..
(CIT. 11.3.3).
'

e
30L'obiettivo in condizione di determinare l'identita dell'iniziatore.
'; 1~ j:, .-
.,'l,,''';;'' ,.• ,
v,!_~_,~"
, .;-,"
":';"b' ,I
,
. •. ~.t':"I: ,
484 Capitola 11
'...
,,~
,~'i ..",
.;:,t."
-~.,!\!

c) }'iniziatore che vede torn are BSY asserito, disasserisce SEL e i bit delle linee dati :·~t..t:;

'j
Alia fin . , .. . . >~~r~
e cil ~~est.a ~ase, 1 oble.ttlYO ha il completo cantralla del bus ed e respon- '.\t"Jro:
..
sab1 e delle translZlOru di fase per il resto della Iransaz' _ .:~~,(:,;~~
lone. " .~~~p;z~
<J~
Fase di Ri~ele~io~e Lafa.:e di Riselezione ha questa scopo: un ohiettivo puo <··1iJ.§j:~
av~e nec~slta di r~cox:nette~~l a ~ iniziatore ~l fine di continuare Pesecuzione di }~~.jfg
un operazI~ne (che nchiede pill. p~l) che e Btata In precedenza sospesa dall'obiettivo. ':,;':;t~<,fy
La sospenslOne b~ ~om~0:tato. il ~tor~~ ~e1 bus aile stato Bus Libero e in questa fase '.>;'~~~
potrebbe.ro esserBI lDBerltl altn disPOSltlVl. '. . :,~~?~~
. La nselezione e speculaxe rispetto alla selezione, 1a differenza sta nel fatto ehe essa ')a~
Vlene com~data da un obiettivo verso un iniziatore. Anzitutto l'obiettivo cleve vin~~,)~~~1,)~
cere un ~bltraggio, La fase .di ri5~lezi?ne ~izia e.on BSY e SEL asseriti dall'obiettivo':. \~~~
che ha vmto la contesa (veeli la rase eli arbltraggw). A questo punta: ,.z~:~1;
a l' i ' '. - ' . . . . . ,':":',.}~~~;!
) O? ettlvo.dlsassens~e BS~ mantle~e ~EL ~sento, asse:l~e~ l'ID dell'mlzlatore ;".~r0~~i
(e iI propno) e assensce I/O alto (a melicare mgresso all,'miziatore); ~~::~~~!~~
P' .. '. ":,,,,. ~·'13.1
a) InlZlatore nconosce di essere state riselezionato e risponde asserendo BSY' ' ::.::{~j~I"':~
. . I "·,:~;·.'
......,:;? "
l' b' II- ed d BSY . . . ',~.c~r..'
a ) o.Ie IVO v en 0 assento 10 nassensce (mantenendolo tale fino a ehe non ':;'j%~{~~!:'
declderZl.elirilasciareil bus), edisasseriBceSELj :.~'/~t
,. . . . "
a) I ln1Zlatore vedendo SEL dlsa.ssento rilascla BSY.
. .~1~~:1:
:.?:t-m: t.
, ·,i:\~~t.';) I
'.:.. :;{o<'l~,~
F . d' t ~. . )'.ii~""*
aSl 1.,rasj~r~ento.del1'infor~azione. DopoIaselezione'orise1ezione,seguono3t1~:
una o.pm f~l d~ ~ra8fer:mento dell mfor:naz1one:. Per non appeaantire 1a trattazione,"';~~~~
spendlamo 11 rrununo di parole necessane a eaplrne 10 svolgimento per grandi '!inee ~'~-.\;~J:
Semall -d t· ' ,., .~~
, en rare ropP? n.el etta~ 1. . . .:,,;!;~~
,D~~te Ie ,fas.1 d~ trasfe~lmento. dell'mformazlOne, BSY mantenuto asserito ,:,:"';"~~:~'
e
dalI oblettlvo. L oblettlvo us~ I segnal~ ~SG, C~15 ~ !/.O. per definire la sp~cifiea faSe. :.,:~::~~~j
Normalment~ un trasfenmento di mformazlom lD1Z1a con una fase di Comando, ,:~:;;;! .. "
~on la. quale 1'0~lettivo ott~ene un comando dall'iniziatore. Nelle fasi Dati31 si ha" :/,t~~~~
I effet~lv:, trasf~runento datI. Con la fase di Stato Pobiettivo invia all'iniziatore un '~'i~~!&
byte mdlcante il successo 0 il fallimento del comando Infine eUe f . M . ' , ~~~:
viene pass~to un messaggio tra i due dispositivi32. .. , n as1 easagglO >,~:~f:
Una tlpica transazione SCSI consiste in una f e d d , . , . ·'-:;~~~.. ti'
Dati seguitadaunafas eliSt'a.te d f M ase .om( an 0, a una sene .dl.~asl ,::,:.,dt..'
. .', ' .e . e a una ase essaggIo durante la Quale l'obiettlvo ,,>".li.;:~~
I~vla 11 messag~o obbligatorlo Com~and Complete). L'iniziatore pub indurre l'obiet- ,';~~"~~'
~IVO a entrare In una fas~ ~~aggIo (Out) e ad aecettare un messaggio, asserendo . ''"~~~*~]
11 segnale ATN_, InRne, luwaalore puo anche comandare II Reset det bus tr.mite i1 • ?:i~
segnale dl RST. .'-:;,~-?;;1f.'
. '';';''M

{i~~!5
'~)?:i-t
31 La fase Dati e la fase Messa.ggio hanno due sottofasi, In e Out, definite attraverso Ie linee MSG, .':/:1l!l'i;;.:
'. """,. '::~
C/O e I/O .'<i~< J
: '!I'.;i1,.1
32Tipici messaggi 130no Command Complete, con cui l'obiettivo indica all'iniziatore che ha finito di ':"':.....~
eseguire un comando e Initiator Detected Error, con cui I'iniziatore segnala che ha rivelato un errore ·.1~,r.;:V
di pariU. durante un trasferirnento dati. ',,"'.'i:f;i1;.-
'_·;'~I~
':,~l~
~"."?j.
~~", ..
._~.~~;:?
,,~,~.;.J '
::1.lf.'~:V<, .
'~'/)lr'" , 1
)~~~::'~:',:':". Bus di sistema 485
''i>W~':''
,v.:",.
h~~ ,-:"
',~'i\fl':'~'"''''
"I~"""
r.
;~~~~):~::' I byte costituenti i messaggi di comandi e 1 messaggi dati possono e5Sere tras-
. t>:<~:;,',' feriti si~ in m?do sincrono cbe ~incrono . .Nel trasferimento asincr?oo ~e~e usate il
k~'~\" ;'~"" meccarusmo dt handshake traIDlte la coppla REQ/ACK. Quando 1 datl 51 muovono
-
\"',~~V,," . ' .
i5~"" ~:;J dall'i?-izia~o~e. all'obiettiv?, quest'ultimo assensc~ REQ quando e pr~nt~ a n~evere
.
~';i\: ". i datIl e 1'1IDzlatore assenBce ACK quando qUestl sono suI bus. L'oblettlvo dlSasSe-
;:..
I
,.'
't:~.;~~':, risce REQ dopa .aver. ~emoriz~ate i d,ati. e ~. cons;~~nza eli cio. l'iniziat<?r~ ~uove
~!~i:~', I' A~K: . Quando I da~l 81 ~uovono dall oble~tl~o all ~~a~o.re, la ~ea REQ l1l?ica ~e
'~!X!,:!>.~· l'oblettlvo ha poste I d~tl ~uI bus? ~ ~CK mdlca che l101Zla:tore, Ii b.a memonzzatl. f.
~tl~'\"" . Com~que, se l'oblettl:~ e l'~latore l~ concor?ano, SI puo eVlt~~ quest~ m~c­ •
.~~k ~ .camsmo di handshake suddlVldendo il trasfenmento lD finestre teII!-porali. L'oblettlvo
'l·~~;~5.,;' commuta REQ per ogni byte di dati e l'iniziatore deve commutare ACK 10 stesso
~~~{/,'~. Durnero di voIte, anche se nessUllO dei due e vincolato aile transizioni del segnale
~(i~.(.~ ;':' dell'altro ~he veng~n~ con~eggiate. n,conteggio alia fine cleve essere uguale. Si ha ci~
I.
; ~:;;>:,.'" un trasfe:unent,o di tl~O smerono 10gIco., . .
.:i~·;i;\,'" In Fl~ra ~1.36 ~~~e mostr~ta una tranS3ZlOne c~mpleta sui bus SCSI, elOe una
i-'~~>~.:. sequenz3 di fast che InlZ13 e terouna con la rase Bus Libero.
~1~w:,::-:.'
I-

·,t~· :'''' I I I I I I
·ir~\:<,.·,. BS I ~ I I I I :~
'''b.·.' y 1 t 1/ \1 I I I 1 \
",h,,'.~
.ijY,l;'(";·.
':!,~~;,::",:
SEC
_
I
I
I
I \
1
I
I I
I
I ,
I I
I
I
I
il~i;t;::;::j.::~"C/D: : ::' ? ::: -
(~'~~1r
.'~f,f'li~I'll:'!'
I/o: : :: ~I :: r~-
I 'L;i1t{t:\.,',', '
~~\..;';::'"
MSG

REQ
I
I
I
I
I
I
I
I
I
I

I,
j
t

/ I
I \ M
I
I
rt:"\-..J I
t
r
j
, 1.
i~*i1...:;t· ~'
:~¥~t:.. ACK:
1 I
:
I
:
I
: ~ u:'
t I!
~ I
1 1 , __
. I ~r •

i : i :
~
\\tM'::}'}"
: ."''(;;ia,
"v,
~ LJr~~:\
,
'
.
ATN
RST
m:
I I
I
I
I
I
A
I
I
1
I
I
\
~ j :
I
I
/
I
I
I"
I
I
T
I
I
~ f--ij--
II
"
I I
I
I
1
I I
:
I
I
!f-";IC--
I :-
!-
'V:f4:f~/;(? ' ~ ~ \ : ~ : CJ ~ \J : U :
?~~~\:..' BUS ~l aERO I SEL.£ZIONE I (~::lI,J':O) I MESSAGGtO IN
..~'S:!( ...i ARBITRAGGIO COMANDC STATC \
~\~(;~\' '. . . (... lpe-tI,J"'O) . ., .
& :~i]~';:: FIgura 11.36 Una .transazlone SCSI. Potre?be ~ere l~ lettura ~ dati ~u disco. da parte di
: ':::,:,~~:.:'" un host, La. transa.zIone presenta. una Case di Arbl,traggIO e una di SelezJone, CUI seguono Ie
~}Pt~':: .' ~ue ~asi di Comando e. D~ti (In), che potre1;'bero esse~e ripetute pi? v?lte. ~.a .t~ansazione
' ''';::':''~'''' 51 chmde con la trasmJSSlQne dello stato e il messaggIo finale che mdica all mmatore che
)-
~}J£~";,',: l'obiettivo ha terminate, A questo punto H bus viene rilasciato e toma nelle state Libero
~ f:~:t,<' (BSY disasserito). •
~~R)~~\'"
~~;~t~:, )
~ ;_j",",.
' 'ri:~ ~: .
" ").., ,. •

5;:{'!
t " .. ,. ,
11.6.4 Un esempio di operazione suI bus SCSI (
:i~ :,~~'~~r,
,:L.:", '
J. ,~,,,:!~,,,,,
1 ,J' 'I .;.1
~ . :~'i;~:;.
Per meglio chiarire il funziona.mento d~llo SCSI descriviamo schematicamente il com-
V 'I .,.. plesso delle attivita. che si 8volgono nel sistema, prendendo per esempio un'operazione I
-: ... ~1.:"""
~ ·:*;~k"
iif&~'~
di lellur. da disco, J-
'·~l~.ioil·


'''~
~if
~~,
i@
-
I
- ,
486 Capitolo 11 ~
;,~f.tl'

I
.J;
IiA~;1.r
r·'~!
,yk~~·
- 1. Inizializzazione dell'adattatore su host:
~. ::'~
__ ·~~,t
-if:
a) il programma. costruisce tre aree in memoria: (i) un blocco per i dati; nel :-·_~:r~· ,~:~t
- nostro c~o ~a zona vuota c.he sara. riemp~ta c~i dati let~i; (ii) un blocco :;';~~~~ :~:f~
- per descrlvere il comando33 j Del nostlO caso il codlce operatIvQ del comando, -~q~, '~}:

- I l'unita logica interessata(detta LUN), il numero di settori da trasferire e iI' ?t};"~~j::


settore cil partenza; (ill) il byte di statoj ';";;il~2J'
," '; 'I{'
~ .t: ... r ~"
,,-,,'/ "J

- b) il programma scrive nei registri dell'adattatore gli indirizzi dei tre blocchi .•~-::,~~~ ~.t

! .. .
< ....,
.~'<-~"':
sopra menzionati. .. ', ',c
,.\_"., ..l.( I «,,~o
.~:.

..,,;'~"'~l.·.
.,;.~,'i:." '/!;,
'~;I
... ,,~.~") ".;,

2. Inizio fase esecutiva: ~;;~{A'1t:~
-' l a) il programma trasmette all'adattatore un byte con l'indirizzo SCSI del control-
lore segnando l'effettivo inizio dell'operazione SCSI, in quanto fa partire;:~f:~' ~;\
_, _,,::!1!' ;t"
.:~~' 1t
- l'adattatore che tenta di entrare in possesso del bus; :.:\f~! m:
.'-' /'"
.' .:1
'f.':J

b) da questo punto i .programmi suI aiste~a host possono disinteressarsi di 1·:;t~'.(
r quanto accade sui sottosistema SCSI e dedicarsi ad aItre operazioni. L'adat- ..~~~: ~0'

d!
tatore assume it ruolo ini~atore e il cont~olloredel disco qu~llo di obiettivo: .::~'""~~~ ~-¥
La fine delle operaziow'sara segnalata al SIstema con 1a modifica del byte dI?71~~~1~
- ~ stato . "':~l\lJ'Y~
,-" .• tt·
.",' iOl
.
--/
'

,.
- 3. Arbitraggio del bus e sele2ione:
, ~"'.'"
' .. Y,t-
:~.,;:.,.,.t
":"'J. ~ IF
:.,,?9}~ \' \+2
.Z' ""'

· """"'," .
"1' ...",.
......
I
• ~.
",

a) inizia la fase di arbitraggio del bus SCSI: se l'adattatore sull'host perde , -, . ..,'~'<':;;".'"
,-,,, ..
e
'

'
l'~bitraggio deve attendere fino a che il bus SCSI non' nnovamente libero; ,..:..:::;'.: '" ~"
• "4.
.~".,.~ ~
..,., .•~, .'~
".,.,~,., " '
b) se l'adattatore vince, viene selezionato l'obiettivo prescelto. , "'j,~,,'''~,
,j}-".'I;,;I 'ii

j . ·"""1'
. ..."..""., g
";;':"" < I:.
.'..
,'-

- 4. Invio del comando:


·"lj,~.\\
:,·W.
·.','
,', "-' '. i',',
#l:
,

a) Pobiettivo appena selezionato riehiede un comando dall'iniziatore. L'inizia- ..";:",


,~.'
; '..

I
• <»."
.,. • -N
tore risponde trasmettendo una sequenza di byte contenente l'indirizzo del : ~~. . c ~
bloeco di comando3 4.; :,'.:1'-,. • l~
• . ",.~\
;>''''1''
..:;" . I·. ".
--"" .", ;!"
.,~.~,
b) da questo punto l'attivita. di I/O e controllata interamente dall'obiettivo. · '-' ,
- "-"~ ' ..

I
"~" '
'",~'
L'adattatore sull'host diventa semplicemente il mezzo che l'obiettivo usa , .
-~.. I'
· --.;:'tyJ
per entrare nella memoria del sistema e leggervi it contenuto del blocco di · ,..J", " ''-
';_~":;>;:'\ :-
• . :.-,·!;:/l .~
",,'::- ill,~
comando. , I "i[i1.-
., .:,~~ 'U
.'.
, .. -'""'"~
.~:
'; ';;-~'::.r1: i


I 5. Decodifica del comando; .".;3.
•," .• '

,'·;c~ ~"r ;
·",..:,!j"
I :.
'~"t;, '::: ,i
.
..~;-.,'t~.'·
..:';:'t.,
.. ~

.~
33Per quanto si riferiBce a.i comandi, c'e invero una certa anarchia su cosa debba contenere un blocco

·' l 't:~,
~
''!i.
.,;,.;"
',
di com&Ddi; la specifica originale fomiva. delle lin@('! guida che i diversi coatrutton interpretavano a ~,)l
'~'. ~ , :
;,

loco convenienza. OW· Ie coae sono pcatiqmente standardizzate. . ,~


"",~,." ... .. ',
34Lo sca.mbio eli byte in questa fase avviene can i1 meccanismo REQ/ACKj l'obiettivo tiene C/D ':'-":I'"''''~
'~"'~ ~
:
• .•
.,".'';~ ......, tI
alto, I/O basso e MSG disasserito. · ',<.. ~
<;., !

I
, .' ','U;.
' p..
"''t
"'~''-
."
~;'' ,
f.'"
,lNI'"
@Z;:
.... :" Bus di sistema. 487
'r.I,:'f'(',' '
'.{I'. ;

...
·ill
• j-

. I'
:,'•

!~'.l; ...
·,'"
. ,. " a) il controllore del disco decodifiea il eomando e, poiche la lettura da disco
tj···­
f: .. non e immediata, rende libero it bus per eventuali altri utilizzatori. La
t~',:.-' proeedura di disconnessione prevede la trasmissione del messaggio di save
"
~"(~: data pointer dall'obiettivo all'host. L'adattatore salva il puntatore ai dati.
Successivamente l'obiettivo trasmette il messaggio disconnect e disasserisce
:li;"
:,;..... il segnale BSY, liberando il bus;
rt~1 ,". b) sebbene iniziatore e obiettivo siano disconnessi, essi sono ancora legati logi-
".~'. .••
J'~"
t"; camente: entrambi i dispositivi sanno che hanno un comando da portare a
,..,
.. -
(,• , " termine. Questo schema di funzionamento permette che diversi comandi di
,:\'" '.'
I\l.."
,~~'r,
I/O siano eseguiti nel sistema simultaneamente, utilizzando un singol0 bus
~(L.', fisico. n e
coUegamento logico non ira l'adattatore e il controllore del disco,
""'\\ ' rna copre tutto il percorso fra la memoria del computer e la periferiCa ehe
t.'S.·, sta eseguendo l'operazione.
\\7:~':'
:~~"
1:"'-'"
:JVi , ''
'. 6. Esecuzione del comando:
("'~I~"'"
'i:::~: '. a) 5e at
punto precedente c'era stata lila disconnessione, deve essere.-qstabilito
¥.~f~.:;~ it collegamento fisico tra host e controllore. A tale scopo it controll0redeve-
,.,:/ ' vincere una fase di arbitraggio e passare per una fase di Riselezione;
l>il"'~,,;"
t,,". ' I '
~.,,(
""',
' ,
;'c
'~':r'.
b) l'obiettivo trasferisce i dati nella memoria del sistema tramite l'iniziatore
~r3~··'·1
F.2:;,~,,~:",.
. . ~,· .' sull'host (in. modalita DMA)j nel nostro case il trasferimento cessa quando
viene raggiunta la fine della traccia sul disco;
... '.",..,",
.,',.."
(}~~

,·~·W~"·'
.. .. ..
'.'

'
""':ip>
c) se si rivela necessario effettuare altri trasferimenti dati per completare l'ese-
~.~
v
~:"J".
. cuzione del comando , l'obiettivo ripete i messaggi save data pointer e dis-
connect. Si Doti ehe il puntatore salvato a questa punto dall'adattatore e
',"",." I
,,II"J',
it!~::."",
. '~I,." aggiornato in base al Dumero dei byte ricevuti.
gil,'.....,.--,.·. '
-'.",,!',',-,,'
~
,,,~,,
.

:: ·h'.::,;
'~ :"t.,',
I""
,' .. "tI'. ". ,
.' :'·vi~,I,
.," " .
7. Fine esecuzione cornando:
N::. J.t,:
· I ., '
~:'/' •
~~t': " , a) invio del byte di' state e del messaggio command complete da parte del
. .:.\('!·r
",':1f.'
·I~: ... ,'-''- Il controllore; il rnessaggio viene interpretato dall'adattatore come segnale di
";' ".,
!p, ';' , '

...~'''''''.'".
"" , ",~
fine lavoro, mentre it byte di stato viene scritto direttamente nella memoria
'~
J!). ,"
..
.~.".
~
.",
,
deU'host·,
.~ _
-'-'','1;~,"
~l.l-i"'_ '"
~I."l .',
-jit" ..
U",·'\·
b) it controllore si discoDllette da! bus SCSI e considera definitivamente chiuso
',{l,C:,; il collegamento logico COD l'iniziatorej
~" .~:
i~"'!....
:"','"
~I
,,'.'
~
.,. •
..
;".~h ..,:
i~'(''IT:,' c) l'adattatore chiude il collegamento DMA con la memoria dell'host;
._,(.,,-
'''
···~tJ',·,
~;:;.
....
,·'i.,.:;
.. ~ d) l'adattatore segnala al sistema la fine deU'esecuzione del comando di I/O con
'!l"~,
'j;;', ~ -
'~"'"
Wl·'interruzione oppure con un apposito indicatore che il programma dovra
,;~M:~ ,
:"'~V esaminare. L'host ha a. disposizione in memoria i dati trasferiti. e l'esito
~';.A'
tIo'
'. ,W·,'\··l;i, dell'operazione.
~ ~ .:;..
!11!~'
'~',.,
ii;.,.,
p. , •. ,
,;0'
';0-' i\' :
,. .....
4BB Capitola 11

11.6.5 Conclusioni
::')li';O
e
IJ bus SCSI un bus molto semplice dal punta di vista coslru~livo (un cavo piatto con:;;!11 ..
e
relatlYI connetton), rna estremamente efficace. La complesslta mterarnente nascosta ,,;~~~,.
oei controllori che equipaggiano i dispositivi e negli eventuali adattatori al bus del·, ,<,~~:~
sistema. Lo SCSI e tuttora uno standard diffusissimo per 1a sua elevata praticita di "'.';.t\¥'.
impiego: ricwede al x:nassi~o l'ins~allazione ~eg~i ~ppropria~i .termin~tori. . Pf~~:l!!
. Col passare. degl~ anru ha subltO. notevoh rn..tglioramen~l, m par~lcolare la dimen~ '.}~'i'ffn
sl.one del bus del datI po~a:ta a 3? bIt. n maggIor grade dl parallehsmo al bus SCSI ·<=;~r. '(
cit mantenere salda la poslZlone dl mercato. ":(:~i;~. ,
,,~~l~~
·':j"l~
11.7 11 bus PCI ,
",,~.if:~11\
·.'!'l~fii,

'~;gk.~, ',
e
IJ PCI (Peripheral Component Interconnect) un bus a 32/64 bit, clock a 33 0 66 ,>t
Mhz, protoco~lo smcr?no. ... . . . f:;(~J'~~
. Nella sez~one ?edicata ail'orgamzzazlOne del modern! calcolaton personall (Crr. 11.5}~~1.
e stato desentto il ruolo del bus. Nella parte che segue vengono illustrati a!cuni ,:t~!if.I'
dettagh di funzlOnamento. ,);;:f1\r.
:,:~ ~
'j~~!:,
11.7.1 Principi di funzionamento
.:.~~;
·'1;';~
e
Caratteristica fondarnentale il trasferimento In modalit. burst (in blocco) di pacchi ",~.J<,
.~."'l..:,
di dati di qualunque lunghezza} determinata dinamicamente in rase d.i trasferimento. :·.1Ji
'. ',;;'
..,
IJ tasso di trasferimento raggiunge i 132 Mbyte/s con clock a 33 Mhz e dati a 32 bit. ...' ·','';'.
•,,: \

e
IJ PCI comunque In grado di trasferire un dato alla volta. .• "u
,. '.

..
,0",

Thtte le azioni del bus PCI sono sIDcronizzate per mezzo di un clock} di frequenza .''·""';'1
-P'
."
compresa tra 16 MHz e 33 MHz. Nella versione 2.0 il clock puo arrivare a 66 MHz. .·i~ .
e
IJ carnpionamento del segnali sul fronte di salita del clock (positive edge). '
' ',' ,I
::;-i"
·,''':'[tr.. .
','.. ' "
",
, .",.
'::~ :~:
T:rasferimenti Ogni trasferimento richiede: '~,'~,
:;' '.. '
.."
. . .·'W
a) una rase di indirizzamento in cui vengono trasmessi gli indirizzi e n tipo di ~~'~'.~
:?~
trasrerimento;

b) una 0 pill fasi di effetlivo trasferimento dati, con parallelismo a 32


64 bit (dalla , :'";!1"
0
·4~:"'·
.,~
p...
.:'!'I;~)

versione 2.0). ','.'~"'.


,~
·',":~!
A~"
Per poter effettuare un trasferimento, e doe prima di poter dar corso aila rase --;,:~ ..... :;
....
di indirizzamento, il dispositivo che prende il comando del buS 35 deve avern~ facolta; .' ,,"".,
"·N.!¥
:', ~!
':::\~,~
""!'
'.
.~,
35 Anche qui, come nello SCSI, it dispositivO che prende it controllo del bus viene detto iniziatore ,"'~
..
(initiator), mentre viene datto obiettivo (target) l'altro dispositive parteclpa.nte (quello doe che ",.'
:;!~~
viene indirizzato da.ll'iniziatore). In una transazione ~CI, I'iniziatore e sempre il mcuter e I'obiettivo ,f"'-
'~,
e sempre 10 slot'e. Viene usato anche iI termine "agente" per denotare il generico modulo, sia master ',"
".').i/;;
che slave. che partecipa a. una. transazione. ..~;"l.
~l'::
,
"""
" ,."
.-.,,,
., '
,

:i.t:: ,
~"~' •. , ",
,d;';~',
~~'i"!'~?,:,'
.II.",
»"
, \
~~l",,:},~.
"":1"1,··:".
,,<;e'
"'1~1)~;1~'!i '. Bus eli sistema. 489 -
I-
'itiA;':f' ,
.,.",,'." ,
'!;'\!!i -'.... ,
,•
,~~\;",p--'
,,, ".

\iV"'s"~'
ii~' "

~~~C:-' inoltre il bus cleve essere a riposo. L'autorizzazione viene concessa da un arbitro
:~0{Kt:, centralizzatoj la ,verifica delle stato del bus e compito del dispositivo. Dell'arbitraggio
%'i'f-,W" . si parla piu avanti (Cfr.1l.7.4), dopo avere esaminato pill afondo Ie caralterisliche
. f.~~\~~::/. del bus.
]-
:)~~f>'" e
L'inizio della transazione marcato cia! segnale FRAME} asserito cia! master; il -
:t~~5.i~'~" segnale resta assento per tutta la transazione. n suo passaggio aila stato di inattivo
! 'l~\t;I~!( ne marca la fine.
"~:;~~~df::, ... . .. .. .. .
I-
(l.;l~'f~~r.~r,:~ Fase dl mdlI'lZZamento La fase dl mdinzzamento. ha la durata di un penodo di
,1.'1i{:1[Pj~;'
~~~~}.;'"
~;I;:l;'!f!.
clock. L'iniziatore asserisce FRAME) identifica il dispositivo obiettivo tramite il ,
relativo indiriz.zo su AD[O ..31],e definisce il tipo ~ tr~azione~a esegu~e~r~m.ite
il bus comandi C/BE{3: OJ. E compito dell'oblettlvo memonzzare l'mdmzzo e
I-
\',~ ~,."{r~%;>
i. ",j,~.I,:...,
, autoincrementarlo per i successivi trasferimenti dati 36
.

',: ~~:~:f<: Quando un dispositive PCl si riconosce ceme obiettivo} ~serisce il segnale
1-
I ~M;i~" DEVSEL. Se Piniziatore non vede asserito questo segnale entro un predetermi-
~, ~';:;~:~;i~'" nato penodo dl tempo, la transaz~one Vlene annullata.
. i1~1::;:::. . . . . _ . . . I
'V; i;f;i~;::~;' Fase(l) datt A ogIll clock Ie .lin.. C/BE[3: OJ, pilotate dal master, hannofunzlOne di ,

., ¥tW~~:':': Byte ~nabl.e. Due segnali, ~I?Y e TRD~, mdicano se 1DlZl~tore e oblettl~o sono I -
~: i~~'{f:· p.rontl. Se ~ due sono pro~tl ~lene sc~blat? un date a ogm clock (trasfenmento
,iW~i}~~;5:~:: smcrono)} In caso contrano Sl ha un cIcIo eli attesa. . -
: ~~'!>
~~Jjo~:~,~""
L'iniziatore identifica 1a durata totale del burst tramite il segnale FRAME, che
viene asserito all'inizio della rase indirizzi e rimane attivo fino ail'inizio dell'ultima
1-
1- 't~~"''f,',:,. ,· . ,,
~~:J'l,\:.'~".
"C1~"~'"
f,oe
~
datI' .
.;.
•. r"""jIi"...
,~,~.",,,,

,"" '.,,' ~":;';<::


,,",
," t "
m" ::-,.." .
-.. ~ '! ~''''<
Ritorno alIo s~ato di riposo L'iniziatore indica che il trasferimento ~ alla fine di- \ -
i1 '..!:"'.,
~', '"n,'r,: " sasserendo il segnale FRAME sul penultimo dato} quindi} dopa l'ultimo dato}
1"·t .~.:,";;''.',l\~:.
.. '~-',.",

, m;,;,~-;:.~:~,
. \~'1;:""
disasserisce mDY. Quando FRAME e mDY sono ambedue disasseriti il bus e -
··l;;,;;","n~,~!.. in stato di riposo (idle) .
l",j','t:'.!.,'"
~~.:\ ':. '
im:,r,·<JI'
~ :i'.h·"t~.:.;,., "
,j"~,, -..".
\-
".,.~-,.;·,:h,
., '"'--""..n I d' .
. ,~~:~:tT
.;, h'i.~~~
n lrlZZamento Per l'lndirizzarnento iI PCI dislingue Ira:
-
('i; i1:,:.;.,~';o' •
.:~' >,.~~
W;'ll' ;f':~"y(,:,
;'. f~;i/it: '.
'", /u ...
·:" :112it-i ',~
....... ,.
a) spazio degli indirizzi di memoriaj
b) spazio degli lndirizzi di I/O;
c) spazio degli lndirizzi di configurazione,
)-
.
)
....
.•.-.
~,,:;;,

',~il;:-'~'
,< '
\
... n secondo
"'1"' '(oJ.!;:!:',,:,
~""'
e,,"cO'·.-'; e terzo si riferiscono comunque al sottosistema d.i ingresso/uscita. La •
!~",~f·~f:
• t,"·i'. .." t >
modalita. del punto c) e caratteristica dei dispositivi PCI. j-
"l ,~,,,. ,,.", ' La decodifica deg-li indirizzi· viene ratta dal singolo dispositivo. n PCI permette
:.lI{~i":.-';~;::·
;rI~, ,~,~ "v" ,
iti ;:.Y,b\_I'\;'"
,~~.
"l'. .."".
¥lif ~}M·;.i~:~!
'
due tipi di decodifica: -
!'1 "":~.l;.'
~~t~, :itP~~,:.,
' t .r":~,,
~,,-;..,.
.... ,~,
a) decodifica in positiyo;
b) decodifica sottratliva.
f-
'I "II,',.;.~'~.,
,~:,>;,,,-:,,

::I'~""':
~ ';,~¥'<f:

j~
,~ln~ _ ,.~·'
-
,
", ,"" ,,., .. ..
"J" "; ,

; .' ,~"l.-[;.:.', 36Si noti che se I'obiettivo e una memoria, questa. deve essere dota.ta. di un controllore che svolga.
.~ '';';',0,}:',.:. questa. funzione.
::. ·.1!~~~1·:·
" '."'iI!'-
",,1
". "" '
.~-,
..... '
"
~~
~
• i-

-I
490 Capitolo 11 t:
"

· .... ' 1
""!¥.i
· , :.-
_~~f,""
'-
.;
-.•..".,'
~~
" ··
-", ',
· ... II
- \
'f t-'i;' >
L a decodifi ca III pOSItIVO e que a usuale: ogni dispositivo contralla se l'indirizzo carle :;·.~~t. ~
all'intern? del.c::mpo che g~ esta~o assegn.ato. La dec~clific~~ott.rattiva econsentita a <\~~Thr' ~
l un solo dis~051~lVO ~ra tutti quelli. collegatl al bus. II dlSpOSltlVO lD questione risponde ~~~~*n: _
solo se tuttI gli altn nOn hanna rlSposto. :,,:~,~, .
- ,rj.,:;'I"~·' .
.,.:-:'-; '" .
- I 11.7,2 I segnali del PCI bus
· '.(jf~ :
·:'":t~- f
· ":;".,,' '
\;~"'f~~~ -
""·'·:'X'~\'
""~!i~: !
- In Figura 11.37 viene riportata la specifica dei segnali <Ii un dispositivo PCI. ;~.~'..~~

- ! SI:GNALI RICHll:STI ••SEGN"L1 CPZtCNALI


.t,~...
'.>,",~.'\:
'.~~r,'" .
}:~*.
, ". "i1'i';"l:
· :'(", .Jl-:a
,'<~

-¢:::ooi:-. TIS " US


~ - ?:·!Jr~l

..
lndirl:zzI

~' (
··.......r,.'~"<
.. ;,,_.lk~.

dotl
,
us us k:E-
PAR64
ltst.,nslon..
64 bit
" ,., "&>t
~:'~ii~~~i:. :~
.~,~\!
us US
10:(064'
_,,'r,~ .. f
">'~<:
S/T/S ...:....;11
F"RAHEI
SITIS SITIS ACK6"t : "':':,!:-~.,
"",,;:,~;;~f'~
- TRDVI
S/TIS
- .... "'J:~"""

l '"•
cor.-trollo SIllS LOCK. c ont,.oIlo irltltrf<lCCIo. ,,:·\~~,j(Wi
SITIS 0
In'ltrf".. cclQ T
SITIS · 6,~.;~H~
SBQI . ~~:M:r:'
- VSEU
IDSEt
S/T IS
IN
[N/OUT
INICUT SD N I
• ]
luppor1o
C(lCh.
· '~IBJi:

" ...... [ .• P,RRt
0 SITIS
SCRRI • 0'"
.'"
0'"
0,"
'NT",I

INT I
] Intltr,.u:t~
.':.\~~
;~~~

, \ o.rbl'tro.ggio REQI
0," lNT I ·,·~<,f.l}:~i
,'~,.~;jj
(501.0 ..0.51:"r) [ G>no
OUT
IN
IN
,."
T01
TOO .<;~!
- 5151:",.,,, [
"'-,
RSTI
IN
IN
IN
IN TMS
JTAG
(lE(E 114')1)
'~:;'1!:j~~
:;';:':h~j)~'
I IN TRT , '" ~":l-:"~

- DISPOSITIVO
,: ~~~l~
..,"J-n
"'';'[:-1.:"

COMPA TlBILE PCI ":>1~raf


da! . ':';(~,~~:'

Figura 11.31 Segnali previsti dallo standard PCL I segnali attivi bassi sono seguiti
'I carattere "#" ';~~
- ,,',;.~~~~-;,~
::.:>~t+l
- elettricamente definiti come appartenenti a una delle s eguent"I <:~i~~

- I I segnali
categorie:
50DO
"~
· '/<:0.c."{'
',;:;~)m:l
r:.f4tp
• IN : segnale di solo ingresso;
- "<';I!"':,,~'
,
·,.-,,.,,,,,1-,,.
~.-~''''\'-'''
-'. '-.
'

- I • 0l.!T: .segnale di sola uscitaj


• T/S: seguale tristate bidirezionale di ingresso/uscita;
c.
r' •
--'. "'~1:l'~~
c"·'
'I', .~L.
· '-;'!";if;,tt
· ~(._'i:,';'
,- ',';;!h,
'·'iF-_,~g..
;·.. ~Il.j
'''·'~"l'';.''
•~.. "C"l'-,

I

• SIT/So seguale tristate pUotato da un solo agente per volta, Un agente che ".,-".?£'d:
"""~'''::
•, -.~ ..v;'

asserisce bassa una linea SIT IS deve anche asserirla alta per almeno un cicio di ; ~:.~~
-'~,'$f:-
• · '''-~'+',
clock prima di lasciarla in terzo stato;
'., ;:.~~~1~~i'
.. , ~,,?:!
.,,~z-:.~:
...


)
• OlD: segnale a collettore aperto (Open Drain), --\.,'~';~:;:"
, ,. "' "
• -. ,;"O,.;:fe"

· ~~,~ili
..
.......;.;f;
Come si osserva ~alla Figura 11.37 vi sono 2 classi di segnali: richiesti e op- · •. ,!-~{;':.,'''''!
• ':'.i~'-
zionali. I segnali richiesti sono quelli indispensabili per realizzare una interfaccia '. ":':!= t
:'<. ~-(
,~~.

, •"5ti
' •. '
· ',":,." ~
j ,'.l~'" '
:f*1"
1.·~·

"~;'~~ .-
~I~".,­
~ir""'"
-~.';::' • 491
....
:"!(..
".- Bus di sistema
•\'-. c•••

' ." .. ....


1~'·:'~"',\
-',''''',:''''
;~:,,:~~ ,
"

·-.,,;.'t
-. ,"'; '
,.;;::" .,'.
>¥A ,:
~·:$~:i.' " PCI.
In questa clMse compalono Ie linee indirizzi e dati :AD[31:0]37, Ie linee CIBE, il
~;r~;.:tl, controlla di parita PAR (che agisce sia sui dati che sugli indirizzi), il clock, il reset, i
_';.~.;": _'.
segnali di controllo delPinterfaccia e i segnali di arbitraggi038. n segnali di controllo
.;1~1,::t~",!" dell'interfaccia sono riportati in Figura 11.38.
.~~f:U',"'"
.,r... ,.
:"'.''i''.''
:~;~·

f;-,1·~, '
'q,."!"
-;·t;,:r:·;,~
'l:,"
Segno.\e Mo.ster To.rget Noto.
,;,.,:, )".'<,
!J~,,,':~ G
;'>;i;'" FRAME out in , cIcio di FRAME
:~~ :v- '
"-ci"'" TROY In out Target reo.dy
.:~;;, I"" ,
,0h;\.r.:,,:·- ,
~·.I"<',r,
., .. ,.
IRDY out ,n I Initio.tor rl?o.dy
a-'~ ..,•.:-
.~

;'"}t';·".: "-' STOP In out STOP o.Llo. tro.nSQzlone


t,., "..
<,'·~'f···
N·." ".

:iti?
~""":"'"
,,!., ,
..
>': DEVSEL In out Device select
:" • .. blocco ell uno.
.;r~. ~'" LOCK In/out in
't;,·,'~. risor"'o.
J' ;'.'r\'~' .
"'" ,.,'..'. IDSEL In in Initlo.lIzatlon
~,'\',; ,;.' device select
':~r.::,,~:,;. -- ~
' ~\/:', . ' Figura 11,38 Segnali usati per controllare i trasferimenti. I segnali FRAME, IRDY, TRDY
;'-;:~ ',\. controlla-no 10 svolgimento delle principali funzioni ill trasferimento. FRAME ~ pilotato dal
5t~,:1.'" master per indicare l'iriizia e la fine del trasferimento; IRDY (pilotato da.! master) e TRDY
!Yt/: (pilotato dal target) permettono di inserire dei deli di attesa, STOP e usato dallo slave per
;:;\~:,;l:i~<i' richiedere a1 master l'interruzione del trasferimento. DEVSEL'~ asserito dall'obiettivo che
j~~~Y;:. ~: ha dec?dificato il propr~o indirizzo.per indicare di essere stato se~ezionato. LOCK serve a
:~;)':~',:,;, gar:autue accesso esclUSlvO a una. nsorsa. (~orm~~~nte la memona). IDSEL e usato come
*.
:~rt~"~,
;" ... j',./:;,::,
'.,.-':''''','
'u;';',f:(: '
ch1-p-enable durante 130 configurazlOne del disPOSltlVl.

·-.,'Jo'~.1,,·.
-'~i' '."c

f :~z;tt·.. Nella classe dei segnali opzionali cornpaiono tutti quei segnali che non sana' neces-
;~\:j;~,;: sari, rna che devono essere impiegati se si desidera ottenere Ie funzionalita aggiWltive
~ ?~~ft.·-:' .rispetto alle standard. Preme osservare come in tale categoria siano riportati anche i
~ ·:~ti~: segnali'di richiesta di interruzione. Le fWlzionalita in questione sono: il cantrolla di
l.j:~~:~".' parita sulle inforrnazioni l 1a segnalazione di avvenuto errore da parte di un dispositivo
\\;~'.t . PCl, segnali di supporto della cache l Ie estensioni a 64 bit, il blocco delle r~sorse e
.~'
' :;'~:i- L, . I"unp IernentazlOne
. d eI gruppo eli segnali (JT:AG) per 1'I tes t d el. eliSPOSltlVl
. , 'PCI , 0 Itre
l'~;:'·;,:'."r aUe gia citate richieste eli interruzione. In Figura 11.39 sono riportati i comandi che
p' j~~':" possono essere dati a un dispositivo PCI.
.......
'
.. ....
'.'tj~.;' ,
,',. ,/",
, '\:."< '.' .
~'\," ,',N-
__ '\"
. ' .. " :,~,
t ~:•.~.•" '
' .~
, ..... '\
.i .,. .. "; .
11.7,3 Transazioni di trasferimento dati
j ,•. ~. "
', )':\"""
". ' .
:~ ,''':'''.' ':
:' •...
<',' ,:" . Nei diagrammi che verranno ora presentati l due freece che si inseguono e la linea
~ ,~.,
- ..
.... ~~, interrotta stanno a iudicare 1a cosiddetta rase di turnarou.nd, nella quale un dispositivo
, .......( ,
' ,.i~:~~, ~.~:-.
......\., .
: '~".-<<;;. \
,~
__ . ,"
".. "',
'" 37 1 campi di bit sooo designati come [X:Yj: X e iI bit significativo eYe il menD significativo.
i; ~\<":.
",'" ,. 38B da notare che certi segnali cbe in Figura 11,37 80no riportati bidirezionali, SODa in realta.
!- '.,,~.: ,•
- \x... :) ,. unidirezionali, e cbe l'incertezza e legata. alia posizione assunta dal modulo (master 0 target), come
t ~.~.
riportato in Figura 11.38.
..r......
'"'~.,.~'!' .•
~"<;. -
~ '!:f,\~~1'-
J'

l..ljJ~~) ;, ,
'r./;;)/r' ," .
m~
• '
0
~'
492 Capitolo 11 (itl
',I
,",
"

;':'] '1i!~~
..
,
,',',. .
--,,~ ~!

,,"" "m ",n "m Tlpo c:l1 co.....nc:lo .:,1


:(,ft.11
,'rt
~'nll.;;
-.

0 0 0 0 Inttrrupt o.ckno"ltc:lgr "~':I il11""


:""':"" ·~
•. ··';.lI'~ M
0 0 0 I SptCiOl cyclr ,:-:·"t4 ~ ~
0 0
,
I 0 1/0 r,o.<;I
-, ;,{~, 1
0 0 I [/0 ~ ..,tt ",,:t:tm
,),.:" . f
,
0 I 0 0 r'5 .. r" .. <;1 .,:~,~~\Kf. "
0
0 ,
I 0

,
I
I
0
rts,.." .. c:I
1'I.. ",or)' rto.d
~.;. .~~. ~
.. .,.,,~ -~
.-\<·,t·g~, 'i . ~
0 I I l'Ie,",ory "rltt ",,'~ ;',',' .,',
.. '(¥!J ~
."'1
I 0 0 0 r., .. r"ec:l
,..' \,,'.,"""...'cr' ~ 1..
~,,~
.~"

,,
'
I 0 0 I res,rv,c:I
"::, .. ~,~l ' ':
I
, 0 0 conflg...... o.t:on rto.c:I
',:.~i;~l?1:,',. ::
.: ::':~~a! .

'. .
0 I confIgura. tlOn ... 11; ..

,,
I
,,
I 0

,
0 _,",ory rt'o.d ....... t101 ..
c:lun!-o.c:I<;Ir.. s-s eye! ..
:";i1:q~ l' "
"'~I' -,
0 I
...~~,.~ll'lt ....,,'
l
,
I I
,n
I
0 "'..""'..
I'Itl'\Or)'" .....
rto.d n ... lint
lin..
""'l'Iory "",1." nnc:l 1,,,,o.Uc:lo.tlP
~ .".,-
I
, "
',
'. t"I~
,.,,""-'
.~--"

""'1;\1 i'm'
,f.,~1. ~t t,,
·
F 19ura ·':·:(:i~ ~
11. 39 Comandi PCI . I comandi sono co diD cat'1 suIIe \.mee C/BEI3 : OJ durante 1a ··,--.c'l!!il, ,
fase .di in~izzamento, successivameIl;te , du:ante it tr~ferimento, l~ quattro Iinee hanno la,"1'~~ "
funZlOne di Byte Enable e vengono (rt}88Sertte per ogm da.to trasfertto.~!~, ~
.,.,.,.~ ·j'i
'::.,\ 1{1" '
. .. . . . .:~~t& r i
"r ...

r1.1ascla 11 se~ale che fino a quel momenta aveva pllotato per permettere a un altr~ .;:~~~ ~
eli entrarne In contrello.· ":~:ti~',
Le transazio~ PCI, sia di lettura che di scrittura, parteno sempre con l'~serzione J~ffiI~j';
del segnale FRAME da parte del master39 . n segnale FRAME resta assento fino ali!.;\' '
termi~e della. transazione (pili precisamente , viene disasserito sull'ultimo delo di cloc~ ~*~~.
della transazlOne). ...)'~$1' .
'.:
Sui primo cicIo di clock l'iniziatore specifica il tipo di transazione voluta sUlle·.:,~:'~J~~~
linee C/ BE. Al clock successivo puo cominciare la fase di trasferimento dati. La :i~:".· '~
sorg~nte ~ei dati (master in caso di scrittura, slave in caso di lettura) dev~ att~vare ~ ,~fu:~41(' ,
cornspettlvo segnale xRDY (x sta per loT a seconda della sorgente del datl) ogm (~'~:'''' '
qual, volta i d~~i sono ~di. I dati vengono trasf~~i su tutti ~ fronti. del .clock ~ui,'~~M'! ,
Cl:ua~ entrambl 1 segnali. di 1R?Y.e TRDY sono attlVl. Se uno dl questl e dlsassento ;~.L <
81 Vlene a generare un ClelO di Walt . ;:'I::~:!T.!.
. .·,is". ,. 1~
.-=:;,r:jlf;, ...' "'. ,'"
. , .
~

La lettura In Figural1.40 e mostrata la


temporizzazione di una transazione di)!k..
lettura. La transazione si svolge nel modo seguente: ' ~':;t . ~
,";r::;,~.

1. Clock 1. La transazione ha inizio quando it master attiva il segnale di FRAME"·:;;~\m.!>~


avendo posta sulle linee AD[O:31]I'indirizzo e sulle linee C/BEIO : 3J il comando ::'j';l!il
dl lettura. .. ';"1\!ll
;-!I' :n~
__ .. _
'.-":'.,' ~
'. ~';'-'F

2. Clock 2. n master asserisce IRDY e Ie linee C/BE[O: 31 assumono significato di .. >}!':, :


Byte Enable. n ciclo viene lasciato passare per dare il tempo di stabilizzarsi alle >i.i:G'
linee AD (che cambiano proprietario, dall'iniziatore all'obiettivo). ~X:~~·'
'm "
3. Clock 3. Ha inizio 180 fase dei dati. n dispositivo risponde al master asserendo il "-':::~~~
segnale di DEVSEL e iJ segnale TRDY. . :;,'f;i.
. ,.,., I'
,.,~
:'j]i,,, '
""'.' .
'. ':.~ .
39 11 master deve essere in controllo del bus, questa richiede la fase di axbitraggio di cui si parla piu ':~1:~fl,~
avantl.• . {'"'" I
,...... $.
-~);'
, '"
. '"I,'~
.'.--
:,/,.
..;\.t~ ..
",?!J", • ;.
"I"
~!-j'!
1.
'\1i:"'.:~" i•
0);,1&';
'1!r"
l<·r~'" '. Bus di 'sistema 493

I.
Ilf,.\\. .
","'''.
...·\<VI·
.
ili::"'~"'"..,:.'
<"~
~\1t,
,'".
","i-'·.
!I'r~,.'
.<:,~." Bus T"'onso.c"'lon
tt:r.:t.·'·', Vo..'" - Volt Vo.l"t •
;il!;~~:~':
""'''l: ,"
~"\~.d:.,,;
MI I:'" Adol ..
-=-,-_.
S~o~E'

Do,,,,
. S~o~~

Do~",
• ..,-=-,....
S"'o.~t

~:r··::·
1*,1;,.-:"
fi!l,r;.~:"., 11,
Ph,.

12
..

13
Ph,." ..

14 IS
Ph<>.sco

16 Ie
• 19 I
\.
,"',w'
"i.~?
~..),.+...
.• CLK
:f\ :f\ !f\ :f\ !f\ '
1 U L ..J Ll LJ 'L ' '!f\
~ LJ:
...+--
I.
1"~"r;"
~A·."
," .~"..
,-- .
""''''r-\
1

F'RAME I '
'.
I
I

I
I
I
I
I
I
I
I
,
I
I
I
I


I
I
I
'. /'
I
I

-.v
1-

!"'' '
"\o., I , l I
1.( 1:" .',• • I I 1,1 I I
...'."
r,"
:;r. ... ,. 1 ~ ~ D:",,,, l hI Dt",o.2 3 !I ~
:~~~~"
~l,Ih,
, AD ~-+""~ ~ :...--A ~ X+ ! >-----V- •
a.......01 ",.

I.
I noll:>llIP "'t' En.o!t>1 ott' EnG"'t I
";;1F?:.< .. -, ,A
',~".,
C/BE I I ( • I I I _
',:l~·.'" , -.v
- fi"
"'1"'"
>i'" ,
.......... 1 ' 1 I ' l
,~" TROY 1 ~\: :: /:: / :
,~,s.t."'" ~.:,.""
"":,,,- I \ !I I ! • I I. I

~",'"
. I I I I I I
"'i""

l.
,:~}Jj':'... I I • I
~
"fit~~>
fRDYl I I I .
, I
, ,
I I I I

~J~;;;,,~ '/T'
l...l/
,

i.'i;1 ,'., . DEVSEL • I
,
I
,
I I •
I
' f'll.'!j('l;f, • •
i~~~j::"
.,"" ,',

~e~l2,:::'·.
D",'l:o T,.o.ns-f"co,.s I ""o.lt: $'I:,."'cos I I
,,~W:.;, Figur~ 11.40 Transazione our"t eli lettura. La. transazione trasferisce tre dati. A parte il I .
;·~.:>.·' primo ciclo eli a.ttesa (clock 2), necessario per la stabilizzazione dei segnali, i due ulteriori
'~1;;,. cicli eli attesa sono generati rispettivamente da.1lo slave e dal master. Notate che Ie linee BE •

~i~l:~,~" vengono asserite per ogni da.to trasferito.


~-tt;,."- 1.
~';~¥'~'¥'i~
~~1';':';': . 4. Clock 4. Essendo IRDY e TRDY asseriti, viene trasferito il primo dato.
,flj~fil~S·. 5. Clock 5. La slave ha disasserito TRDY (perch~ evidentemente non in grado e
'I~tj! di produrre il secondo data) causando un cicIo d.i attesaj Del frattempo 10 slave \.
,~~~t;~··,·· mantiene sulle linee AD il dato precedente.
<;."~f;': •
,~,r."., 6. Clock 6. La slave ha posto il secondo data sul bus e ha asserito TRDY. L'inizia-
'1'.\"
.;
.
,
:I' I"
.; '.;<:
"
~~ ..
.
tore, essendo sia TRDY che IRDY asseriti) legge il data. \.
.- ", ,;;: 7. Clock 7. Questa volta e l'iniziatore ad avere bisogno di piu tempo, per cui -
.'~ri:::~
,.' ~.ii;'
~~i~::·
disasserisce IRDY inserendo cosl un ciclo di attesa. 10 slave manterra il data suI
bus per un cielo extra. L'iniziatore, in previsione della conclusione al prossimo
cicio disasserisce FRAME.
l.
Jii~l'
#in.," 8. Clock 8. La ,lave mantiene il data sul bus per questa cicio a causa della stato di -
..'~
'.'r'
-;

'~,'
.
\'
attesa introdotto da IRDY al cicio precedente.
).
. ,~,,~;> I

'" ~~\' i\~,~\ La scrittura Una transazione a blocchi eli scrittura mostrato in Figura 11.41. n •
v,-l, :1°, .' ..
protocollo esimile a queUo di lettura. Si nota soltanto l'assenza del cicIo di transizione
~~I.~;;':'~
.' i~I'"'::.":
sulle linee AD, poiche sono sempre pilotate dall'ini'ziatore.
,
~.
•i&~T;;,."
e"
,'J; ~' •
;
\1'"
.,¢.~ ~,.
'j
Fine trasferimento La fine <Ii un trasferimento puc essere comandata sia daI mas-
~i r~~!?{"," ter che claIlo slave, anche se il tutto viene sempre concIuso daI master (FRAME e
)'i'
~ .
~~',.
f "~ IRDY disasseriti). 1.
'r':,
. ~ .
:' . ."V,,\
~;
, ffi
494 Capitolo 11 !i~
- I ._,
,~t'
,;.,
,./•
".Ir
;"~
Bus: Tro.nsac"tlOf\ 1fr.
• I t.·.~.
'JCllt 1.1.. 11:' Walt

) Sto.-teo S'to.t~ 'Stote "n.i.:
..
"~(':'
,
I , , ,
':,;".
d;:
I Addr .. ss:
Phase
Oo.t..
Phose
Do:t..
Pha.se
Da'ta
Pho.se I·...~
~B
•__>
II 12 13 14 15 16 17 19 '.\'.
.. ,.-
- ClK 1/\ ff\
~ LJ L~
!n
L~
!n !n
LJ L
I
1 t :/\
~ \.J I '::'
,":/
,v·

I I · I'.!:"" ~ ~-r;
,. '"i*11 ~".
FRARE: t\:
I I

t
I
1
' I
l
1
I
1-: \ 111),-..1

,t'
I I
1
I
I
J..--!
I
:J
i
I
Uttl"o. 'flU dCltl1
.<...
,::,.~,
~~~j;;
, ··l;{ ';i' "1~
-yn
:m ,-,-t
::r,: ,.~f,!i" .~\.
',i~.:JI':~, ':~'

-. I
I Add!eoss D91;4 Da to ! Do 1:", I I I I
·.:\~~~i 1~:
AD H : 't. : X
I 4
Xl:: \ 1 1
}---1:- .,.
:I
,-~-~( !~"
\\l!I.>:i •..
1 BuslCl'ld Bvlte F;no.l:les Byte Enub\"s I I I
.'j'
·"i~'! ~
:':".,;,:" ,.< ;:.~
..
- I I ,, A ,, A ,, A ,,
I \/ I \/ I \1
,, ,I ,I \ ~ ,,
I 1,···",,--,h It " . ~
C/'"
,H ,, ,, ,, ,, ,,, ,, ;-~-
,, ,, 'Jolt Sto:tvs
·"".'.1 ·tffi :::'/
.i t • .li~ .. ~'
,·'s ....· 0·'
,, A , ~·.~P ~~

-\ i ,, y\ ,,, ,,, I ,,, \ ,, ,, ,, , lnse.-lti <.Ia\ • ••"'!",.... , """


""'" , ,
'
I ,

,,,
1;<>...-"e1;
~~ 1"'
· 0',,'·\~i"."W
' ,,;,,,~.,~ ""t
."'
",' .,."",-",IJ.. ",1

,,, +
,. ~",,~,'. i·f

,, ,,
, '1'
,.-",~, ~<
,..",
, ,,
-.v , , , ,, :, \ : I ,, ··;1·:~ ,-
·-,,1· -.'W.
T
;~t
-,~

,, I:, ,,, .:', J1~·~·r~( %¢


, 1:/: ,, :,,
- :
DE:VSEL
, ,I "':-
'", ,, ,, , , I ,: ·· .....
,'~,.': .••.•
,..;;,..ti~ '~,
~ .,i .' ~~~~
r
_ ;1

\ ITro.sferlnentl I I T..
I -~....
~";l--.rJ~ O
T"T

\lolt 51:0:t. In:nrlto do O's: .......... flnto I ,. '~..•?,' :n:'-'


·,:·~~~fl
"tQr"e-t eo InIzlo:tore ·'.\';.\,r
, '" ..,•.',
~:"."..,-,...
<'
'

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



I Figura 11.41 Temporizzazione durante una scrittura PCI. Anche questa. transazione tras· ,'"'~'''
.,.\:.,.") .. ~ " ..'
I ferisce 3 dati. I segnali DEVSEL e TRDY possono essere asseriti fin daJ secondo cicIo di
clock. Al terZQ clock, iniziatore e 'obiettivo completano la prima fase dati (IRDY e TRDY
• ';i"<Ji<.,,.,~"1 '~;
','~;iiI!·~!$t ;~i
.,..;<'f ~
I •. ,":,~.<
l-
";.
,. .q,1~.";' :
asseriti). Sul (fronte di salita del) quarto clock viene trasferito i1 secondo date a zero cieli ,'l".><.}"'" . \t
di at.tesa. Per il teno dato, l'~iatore ha bisogno di pin tempo, per cui inserisce un cido ·":....!Il'
.,\,', '.." ,.l
I
• '''.-~. "~
·;"'4'.
\':1" /1;1- .';'
eli attesa disasserendo IRDY (cleve comunque essere puntuale nel variare il GIBE relativo .,:;:'fu.l;, . 1.
,.

a questo dato). Si e fatta l'ipotesi de a.nche 10 slave necessiti di piu tempo e che percib ·,F· . ';~
.., ~;'.. .", /~
disasserisca TRDY. Sui cido in cui l'iniziatore disasserisce IRDY non aggiorna il bus dei ;'.''i!~ t' ;~
dati. Quando il master e di nuovo pronto c'e da scontare l'attesa invocata dal target trarnite , ~~i-;(,~ ,: i~
,''':*''f;' ,\

l
.: ".V' ,'-. ;.
TRDY. 5i noti che FRAME e apparentemente disattivato malta presto; in realta. e disatti- 't~.~*,i ~\
vato su quello che per il master sarebbe stato il cielo precedente all'ultimo, se non ci fossero ~- <~
....
· ~~)-!T"::"" {~
stati i due cieli di attesa introdotti dallo slave. ""~'#ff.. I'
,"ii:}ir~ ?~
:,.~"\l
'.i"i~ ~'

I Fine trasferimento comandata daJ. master Le cause che portano il master a ter- ,;;.;;~~ ,
minare un trasferimento sono tre: ';',A:j!l%lJ: ,
. '" ,,,,, .,
·"·"'~rr :-
',".,'

'0,"1"•. 1
.~'1JJ j'
'-

··,''.:::l:ffi
w"'-
.i
• 1) completamentoj ':"~'-',~"I (o
,I;... ·'
,:· ·~·t~";'-
",I.'
',.-0"."",. 1
2) timeout;
\ 3) conclusione anticipata (master abort).
':f1f:-~ '
•• 'r..=8! •~
.~
,_
. . * :, :
"".%j' ,
;
,",,\.'. 0

''':~'I''
".t"-~' _'
n primo caso e ovvio e corrisponde agli esempi visti. Nel secondo caso si ha ..:;V"'ii.:?t: 0'
I :~,~~,~

sospensione dello scambio perche e terminato il tempo a disposizione del master ,:/[.'1-:
''.(:'! "
-
~;v'--"~ .

<
e il segnale GNT e stato disattivato dalia logica di arbitraggio. n terzo caso si ,-!<ii~.Ji,~'
~l" \ ..
.. ,' "
ha quando i segnaJi TRDY e DEVSEL non vengono mai attivati perche nessun '.>:;......
" ~
:

I
,:~~~, ~
dispositivo risponde al master. . "'o1jf· o
A tale proposito si evidenzia che i dispasitivi che decodificano in -'positivo si
';:"'li~l~>
~;rr~t; :
. dividono in tre categorie in base alia lora velocita nel rendere attivo DEVSEL:
.
~ .fi:~,: }
.'tI::';':;:: ,
· .:;:-. f

,:' .-tl "


'·.v~· .

f,k'
',) ~" 'f
.~
1 ,.~
;!3~\
iij};.·' ~ ',I

i~':: .~ Bus di sistema. 495


,p~.,
'~:.i,:· ----------------------------_...:::.::::..:::..::.::==---
,~~·.,i
••\·".'.0
r.~;:I'·
~~~;'-
.ll'..··
.",;:fi ' -
::';··':: ,
,~.'_.'
a) Fast se rispondono al primo clock dopo FRAME;
''',;, '
.,,1-.,'
:'~ ::.., b) Med se rispondono al secondo clock dopo FRAMEj
~: ••-,
Bt"
>-i'<t ' c) Slow se rispondono al terzo clock dopo FRAME.
.'!1;".".
-,.."-,,
'''?;.', I:,
/."" "of,
·~·",.. .,
;;i,,:...
.; , Se nessun dispositiva a decodifica positiva risponde entro i primi 3 clock daWat-
n--f '. "
t,:::;;.: tivazione del segnale FRAME, aliora a1 quarto clock puo rispondere il dispo~
~"1"
.:~. :;:,;"'. sitivo can decodifica sottrattiva. Nel caso che non vi sia nessuna. risposta, il
'l:';"\~',
:~;;>, trasferimento si conclude senza che venga eseguita nessuna transazione.
".:,~>~
~::i;'f"(,
.;
~~!~'.I:,\I·
i'\"':'
La terminazione da parte del master richiede che FRAME e IRDY siano disas-
~, ' .. '
'/1'1.'.:: seriti e che anche TRDY passi in questa stato.
'1::.:L,
'1.,;' ;-:-... .
~",
"",,~' ..
'''1''.\.:''''
FiDe trasferimeDto comandata dallo slave L'obiettivo usa il segnale STOP per
'.:;t :,~
t.~~J.:"'"
1"".,1'1, chiedere al master la conclusione del trasferimento. n trasferimento continua. fino
f."·}'''.··;·.
<;; ..,•. ' a quando il segnale di FRAME non viene disattivato.
t:!'~::;.i.
~'.~"p'~

¢~.:'\):11 , Esistono tre modalita:


11• •,.'1"\
,F ,':)it
r-r.~'\-"."
~":'t.-
T···~"'-··c·
O::"\ii1h:, a) Retry: 10 slave chiede a1 master di ritentare piu tardij
:;"!r';,~;':,'
"~"r,.'
'! •• - -'.' b) Disconnect: 10 slave chiede di smettere il trasferimento corrente;
',.~,,,,,~.~ ..
<.. j'• c) Target abort: 10 slave non vuole che si riattivi il trasferimento nem-
.~hl"·
",.,
'"'_.~
~;.17i:\.'
'" meno in un secondo momento.
iJt,~';j.;' .,'
-~r.",~;.""
."'~); r...... ·
:~•. ,0;;". _
t. 1f.";.-" Tralasciamo di riporta~e i relativi diagrammi temporali.
~
......,:.....
lfiI.!,,,,,.l-
•. !,~.,-
.:"\!o",~""
,,)l!'" ,.
'
.;;"'1:',""'"
~~;;-/"
~.U":~~ 11.7.4 Arbitraggio
~~'t".W'.'
~;.':IlWL
\ ~i'- .....,.,
.";'(',l'~':'
\~i£ii\:~1';, Lo schema e queUo centralizzato paralielo visto nel Paragrafo 11.3.2, riportato per
~ III "'. .
~f.';";.' J, comodita in Figura 11.42. Da notare che l'arbitraggio e nascosto, doe avviene durante
'~~~W,":·,· il trasfeiirnento precedente, in modo che nessun cielo ill bus venga penalizzata.
~"'~~Z?;" ,:
' •. ;., ,-
'Ji:.:'~t...,
-'of. ~.~.
REa REa
,Z'~;f.j': ,
,;E~.~",. ' cjlsposl"t. I I dlli"posl"t.
, '. i',.. ·• ,
-.',,"'" ~.: 'CI GNT GNT 'CI
1 .,..,1>"~.'
'l" ".,. 'CI •
il~(;.'"·· REa Arblt. REa
.. , .
' ' ' :'i',
o;(' '~ ..
'r·''"~!....
1'".H.i.',!~.'
dlsposlt.
'CI GNT I I GNT
dlsposi"t.
PCI
'-·~".-""o.. ':
•~l:"'i~'_:
.•• •. f
:.i\,,;" . Figura 11.42 Schema. di arbitra.ggio PCl. Uarbitro, centra.lizza.to e paraUelo l viene detto
,-,~.'" ,.
;'.,:i~;?,r- PCI central resource.
_.':1';;"""
".,j ':" ..'.
0il,·".1;
':'N..~:_;: •
. l1'''::t ,
".......,".
<~~i.: ..
'~::~'1,:
".",'-"·r'·'
, ,'.
:'#.T.... ;,
~,.;;,... ".: Esempio di arbitraggio tra due master CODsideriamo due master A e B e
oYUJ·.-;,
:'.'"A.~'~. supponiamo che B abbia. piu alta priorita. eli A , e che faccia richiesta di usa del bus
",:"
}.i~'.'!.::.
dopo A, quanta basta perche A entri in cantrollo del bus. In queste ipotesi si ha la
,;t.~\:.,. •.., "
f~~,'
sequenza schematizzata in Figura 11.43.
.~~-.-,~." •
"p",.N:'-:.
fHI'-I.?'-": "'
~"..;;,~W
.. _,..,,~_.
.._
496 Capitolo 11 !fi:
,~,
1,
~'~'l
1,. •:
p'~'
eLK I 'rJL'rLrJL'nJ\J1
11 12
I
13
I
14
I
15
J
16
I
I
t
I
I .
'- .. ;1'
,.~;m
; ,',•. ~
• "f\.~J'
:','j•.:"f';.'
tU
~.,~
"'»
":..:
I I I I I I I I . ,i1'!.jj '~;'
1 1 I t I I 1 I ·.:,Tj;;1!;; ;or
I I I j I I I I ';.Cf1~" ·J\.
REQ A I I I I 1 I I I /~~~ _~
I t I I 1 i I l;Ji;~f~:' !5\

~
I I I I
.:-',".!\~i,' ':
f,l' ,~J
REO B I
I
I
I
I
I
I
1
I
\
I I
-
t
I
.I
I
I
I
I
I
~ ':~
:"';!'~' '\
.. t:,~~~,.'~;t.;';
I., ,
'
1 ,
j I I "i' ~
. _.',:,." "l.
'"

GNT A I
I

i\
,
'
I
I
,I
I
I
I
I
I
I
I
I
1
I
I
\
I
I
I
1
I
I
<:~r.. '. ,I~~
- ")?~" ,~, :):
..~:~ :l.. ..
.
., , , , , " . ,-\"" ./
It Mo.s1:e-r A Inl%.lo. "i<'~.~ "~"
I I 1 I I I I I ,,,,~,\",,... I '
I I I I I I I .i
\0. souo. 1:.... o.nso.zlon. .:-.<:~~, /I ;~;
I ::,~" t~t~.: 1:~I'

rI
GNT B I 1 1 \ I I I I I .
I I I I I I. I ._:~~'r.,,:
, , , I • w.\.i(I'. ~"
".... l ,.,0 .. 1:......
Inl%lo ";','!Ir;"h~ 'l
== I
FRAME I
• !.. ,
.. '
-.....- I
,I ~-.....-
!.. .,. - I f !I 1
I
\0. suo 1:ronsozione .('.;.,.~:.,;~~'lil
'~:";-!Jt'
:,
;"c
I t i l I I 1 1 ..... :.-1';"""" .,'
I I I I I I I '.. }~~t\% :f
-;\~~~ ~
,---r--, iX' )- -r--, X
1 I Adcres5 DCl1:o. t Address O!1:o. I
I 1 / I / I i ) ! t"",·.-il'~~ ~""
;<;~~~'~ :t
AD
I
1
I
I
I
.1
I
lDo.1:0 dl A
I
1
I :
1
1°0.1:0 dl B ~
I
I I Bleil
us e I ,"':" ,.~.~~ ,o
:,~~tt .,7

"I"R"D"Y I
l :I 1:,
I \ I
r:I
I':I ' '1:LlJ:./ I
~:;g~(it~
- ·V~Pi" :;

:I '1 1:ro.sf ..ri..... n1:o I "';'::;;'I.:~:ti :'


:1 :I
r
I I
l' l ' '1' j
: . clo.1:1 '.\.\1:~'t~ ':
T"'R;;;D"'Y I I Y'\ / I Y'\! I )J J '"?~(~ .~
I 1 ' 1 C I Y-JI 1 -!-/ ':'::!~\~~~~ ~
. .::',.;ii~'!' ~~
~ig~ra 11.43 Temporiz~azione dur.ante i~ p'ass~ggio del controllo a un di~positivo piu prio- ;~;'~j~ : '6
ntano (bus exchange). Sl e fatta l'lpotesl we 11 master B debba trasfenre un solo dato e ::')f;~! ' ;~
rilasci i~m.edia.tc:mente la. sua. rich~esta.. Al contrario il m~ter A d~ve effettuare iI trasfer~. ~~}~~,~ ~
menta di pru datI. Per questa motlvo, dopa che ha ceduto II bus (d1sasserendo FRAME), Il·::'.~ !. t
master A non disasserisce la ~ea REQ, in qua?to _intend~,pro.se~ir~ con il tra.sferimento,.'_:<~~~",~ ~ ~
che avverra dal clock 8 se non mtervengono attn master pIll pnontan. '.•\l;, , : . ~
'~~.~.~',; ,
,·'-:_~~¥.J"i
1. n master A aveva inoltrato la richiesta antecedentemente al primo cicio di clock ">'~1~~";i" ~
. 1'· ·1 b A (GNT . ) . fr .. d . ' ;-i'!i'~ . ~
per cm arbltro assegna 1 us a assento suI onte dI salIta el prtmo ,... I'l .
. I d· I c k ' .:~_~'"i. i> "
CICO ,CO . ._.,l~."
):gt~l,,§ :
. . .:'1r·. 2.~
2. SuI fronte ill salita del secondo ciclo di clock il master A campiona GNT asseritoj J.::>~.' I'
i segnali FRAME e IRDY d.isasseriti indicano che it bus e nello state idle. A ::~:;S"~~lf~'!i
questa pu?-to A d.a iniz~o la: transazione, asserendo FRAME e pilotando indirizzi>~~~'t
e comandl Bulle nspettIve linee. ::,~A~~t1'
/;m~ " ..
, . . . • . :-::"~;~MJ:.:\!
3. L arbItro del.bus ~CI camplOna REQ del mast~r ~, as~etlte ~u1 fronte dl ~ahta .~\~f.' './
?el sec~ndo cIcio di clOC~1 dando corso al.process~ dl arbltr~~l0 per determmare ,·:.~~i,wEr:
Il prOSSlffiO bus master (m parallelo con It trasfenmento dati 1n corso). .~~'~{~f:"
:;.;~~'~
4. SuI fronte di salita del terzo ciclo di clock, l'arbitro sposta it grant dal master . ;;:;};\';:
n
A al master B. master B non pub comunque usare it bus, ,finche ~esto non e ..;,;;~(~1.?
tomato ailo stato di riposo. Intanto it master A disasserisce FRAME. ·:1f..
" ;".Ioi'i
\.l\l"~ .,'
J':'l~'"

.'..
I-
i;~
,,~
~\!,,";-'

bt~·.·
~~t;f;',!'
,~. ~'*~
:Y.~ff,<:.~ .- ,
,-
..
B=.:us::...::di::...::'IS::t.:.:e::m::a=----=4.:.:9.:.:7
,,\l{il;l' '
,iilll:1v
~'l:,;:1~5~·
lim;::\'•
,""-f" (
I.
';;~':jF:'
Uili:':;!:',
S. SuI fronte di salita del quarto ciclo di clock c'e il trasferimento di J\
che e anche
.•. ~..s:~.:
»';'!"
l'ultimo
. inn que~ta fase. n master. A ha dis~serito anche IRDY per indicare a110
:~\l~~;,,:,,,
''''~Y:';~'''' slave la fine del trasferimento, riportando il bus aUo stato di riposo.
r1·li~,.;:
.I,k~'·,!·,_,'
\
~~I!f~i.;' 6. Sui fronte di ,alita del quinto ciclo di clock il master B campiona il bus libero
\;·;~.~t:/'"
:;"_:j~,;:''''-
J~r'~:"
\0}"
;:.:,< .. t,
. .lo!."·~'·'
'l\--''''",
~l~~~<,,'
:d.... :~, •. ,
(FRAME e IRDY disasseriti) e avvia una nuova transazione,'asserendo FRAME
e pilotando indirizzi e comandi suI bus. I.
..r~r'w·
/.~:V..'"
"".~·I;':·.
7. SuI fronte di salita del sesto ciclo di clock, l'arbitro campiona la richiesta di B ,
,disasserita e subito commuta i segnali di grant.
'''~':
;1T:t~.!,.,·
'~!!r,~;·
:1 .. 1'.~,.,
"~~.J,
~
, 8. Sempre suI sesto clock, B disasserisce FRAME perche sta per fare l'ultimo
I'
l~":'f"'"
,d\ii{~<.
c'l:~a"1 (,-
trasferimento dati.
':7,l"f'··~"
fj1kr:;::;.'
~"i~:,~~,
""i":,! ..'i:",,"
t:b~t"'.' .
9. SuI settimo fronte di clock avviene 10 scambio dati di B; it rilascio di IRDY da
parte di B riporta il bus nello stato inattivo. n master A riconoscera it bus libero
l
o;:""j"'\'
,7~:,;!;./~. suU'ottavo fronte di salita del clock e riprendera it controllo del bus. -
~ffiY
;:~J!!i;:?
'~i";tfi:!' . .• b k S ·1 li·
. . REQ \ -
:!.k~}:4:;T;-~: ' Trans~zlOm back~to- ac _e 1. ~aster ~antt.en~ as~ento e se g ,;ene ~an:
~~rt.~~.:.;. tenuto ~l ~NT per ~ancanza di nchies.te pl.U pn~n~~e, puo effettu~e una sene eli •
~~(\. ~t. tran.s~lo~I consecutlv~, dando ~uog? aI coslddettl clcli back-to-back, unpegnando al
~'1if.i~k:,:, masSlmo 11 bus, come Illustrato In FIgura 11.44.
:¥:~:1g:9~~.
~;r.~~!,,:'.
I
~~~t-(' . .
t.~b.·;:~;,~ 11.7.5 Prestazlonl I
~~~;,:r:\:;' I-
~¥';'~:;'"{o.~, . . •
,~~,;r:~i~;-:'" In lettura occonono almeno 3 cIcll di clock per leggere un dato. Can un clock di
i~~;'i:,i' ,33MHz, si avrebbe un trasferimento in 9005. Nel caso peggiore, doe con transazioni -
~~~X::,'~ c?e le~gono un. solo dato, :enu.to canto che tra o~ni tr~azion~.oc~o~e inse~re ~ \-
~"'!t\,'.. clclo dl pasSagglO. (30 ns), 51 ottlene un valore masSlIDO di 8,33 miliom <Ii trasfenmentl
~-11..,." I d S · t f· t· 32 b·t' - il t <Ii 33 33 Mbyt /
"f.fjw.~. a 5econ o. e 1 ras enmen 1 sono a 1 51 ragglUnge asso , e sec.
",,,,. S .. . . . h ff I d· t £. t' 32

l~
:~~l,t':~:: .'" : 51 IpotIzzan.o ~~ansazlOnt c e e et~u~o un numero e evato 1 ~ . ra.: ~r1.men 1 a .
.~~t:,;~, blt, senza statl dI attesa, tale per CUI 51 poasa trascurare la fase di mdirizzamento, Sl
~~Jci'-!;:: ha un trasferimento a clock. Ovvero 33 mUioni d.i trasferimenti al secondo, per un
i'!.;!~:~,,· totale (massimo) di 132 Mbyte/sec.
t~'l~,,;~', .. In sc~ittu~a Ie pre.stazi~ni rist:Ita:n0 miglio~i,. in .quanto e assent~ il ~iclo di tra~­
;~"7f{~·.. SlZlQne neI van tr~fenme~tl! co~ II rtsultato di .nchi;dere 60ns per il pnmo trasfen- )~
"~~> mento e 30 n, per I suCCes51VL CIa porta a veloclt!> di 66.64 Mbytes/. e 132 Mbytes/s
·i:;~.. ~r; '.. rispettivamente. Come gia. citato altre volte, anche nel PCI bus U tempo di Iatenza
/~~J~~~~:;' dell'arbitraggio puo risultare eccessivo. lnIatti U ~od~~ che ha vinto l'ar~itraggio
::'i!.'-~:~:,:
:tj~~:~~~I~
deve comunque attendere che l'attuale bus master rilasCl U bus. Se quest'ultlmo mo-
dulo deve effett~are un ~levato ~umero di tra8f~rimentiini~terrOt;IE~ililpub impedire ~~
~ '~1f«' .Paccesso ad altn moduli semplicemente nOD disasserendo U FRAM .
:~!i~~~.~:

In Figural1.45 viene mostrata la composizione del tempo di latenza (il tempo
~~F:f\l\' che intercorre tra la richiesta di bus e il completamento del primo trasferimento di
:~.j~,:;':: dati della transazione). J
,;f,~~. -'
'~*;f:~.,',
,.;_";1;,,, ,

\I 498 Capitola 11

-
i
_ 'WRITE

,,, , .,,, . • •

,'3
,
.' ''. '. ,
READ
,,

~
,~ o~ '~
\ 0
'
- cc.

,, 1m!
,, --..,,,
,, ,, ,
0
,
I •
,
:,
\~

I,
\

! !, .. 1......0" ..
,'...1'\'''''0
.., <00
0<:::C."50

I
0 0 0

'CRT'
1 ' 1
I I I
I I
I
I
1
Iii I

I
I

I
I
i
I
\ , 1 ' . I 1 I
I I 1 I I I I
!\ I I I I I

- FRARE
:,
I
:/
l I t
:\ :/ ::
t I
,t I
1
I
t
I
I
I
I
I
I
I
I
I I I I I t
, AddrnS D11 0 Add]I',"S Dl1:0 J
AD Hl~l~J) ( l ) i,
-
I nrnv
~-~'~'
!\
I

I
/ l\
I

I
/ l I
I !

,
I
1-0 .1:. . . . 0 1:0. ...
T'IrnV
,,"'1: plloto

- f--+-!....
, /!, / ' -,~!
I
lROV
, o
-0 0

Figura 11.44 Transuioni back to-back. Si fa I'ipotesi che Ie due transazioni debbano trasfe-
4

rire un solo dato. U master non disasserisce 13 richiesta di usa del bus e continua. a. impiegarlo.
- ) II bus viene utilizzato aJ massimo. Tra due trans3,Zioni pub 0 no esserci un cielo di transizione
per 13 stabilizzazione delle linee AD. Nel caso esemplificato questa cielo non e'e, in quanta lao
prima transazione e eli scrittura. e i1 bus dati e sempre stato pilotato da! master (si parla di
faJt back-to-back); ele naturalmente un cicIo perso per il turnaround richiesto dalla s.econda
- transazione. Nel terzo cicIo eli clock avviene la scrittura del primo data. Nello stesso cicio

l di clock, l'iniziatore, avendo ancora it GNT, avvia la successiva trans~ioDe.

~ "Qs'tl'r rlehi.. o.
,

It "QS'tltr rte.I'..... ~ ..oster r;chlrc:lr ~ to.rg.t


Il bvs it gro.l'\t I.m Sll'r"';liQ c:lQ rlspend.
",n target

. I R"ra
I IQt.nl:Q per
o.rbltrQQQlo
jjFl" .r

.. I llltf'nl:ll prr
QC:C/<.'IS;l~r
.rcsliOiOIl'

..
......_

1 IQtrtll(l Q
tQrgrt
... ~ .

·1
elfl bIJ5

-
I Figura 11.45 Composi2ione del tempo di latenza.
/

11.7.6 Blocco delle risorse


\ 11 PCl consente eli bloccare i singoli slave a uso esclusivo di un master. In un dato
momento puo esserci un solo slave bloccato. I moduli diversi da queUo bloccato
possono essere comunque utilizzati40 . Ai fini dell'uso esclusivo delle risorse suI bus, il

l PCl dispone della linea LOCK.


La linea LOCK puo essere usata solo da un master per volta. Quando la linea e
asserita uno slave e bloccato: se un master intende bloccare uno :slave, oltre ad avere

I 40E questa una. cara.tteristica interessante del PCl. Di norma, infatti, viene cOIlBiderato bloccato
it bus e non uno specmco dispoaitivo, impedendo 30gli altri di comunicare.

I
Bus di sistema 499

1a disponibilita del bus, deve sincerarsi che la linea wCI< non sia gia in uso. Se la
linea e asserita, deve attendere che la fase di blocco in corso abbia termine, osservando
la linea LOCK aisasserita.

Accesso esclusivo a un obiettivo L'acquisizione del bus e il blocco di uno slave


sono illustrati in Figura 11.46.

CL~~v-L~i
I I
1 I =>
I'" 13 l"'l
,

~
.<",...... :
,
,
\
I
: ,,
'-V
,
,,,
/:
I ,
LOCK I
:
. o.ssC' ... I'to
......ce .. " . I " .
1:"'0.""':50. zlo,...,1
p.r

I
,
I
.....,... , , :
I
:

LOC~ : -.....l-"'\
.....+- LOCK 0 ... 1... 0. ..... 0..:1..... 11:0
I I -- \,, I
I
0 c>opo o. Fl...... C> .. llo.

( ,1 ....>-~-< "-'. ,
I I
, Aplc!"" ~
I " ,
i
i
1: ... 0. .... "'0."'10 .......

AD: > : ,, I o

. .==1
IRDY: ~ ..........
,,
I
I :
I
I
: i \: :I : ,
~=~ : ...f-- ,
I 1 :
o

~ ,
o

:.: I :
TRDY i ............. i \ I
: 1 ,
,
""'== I
DEVSE:L I
/l' I I ,,
h:
-.J...-"
I I
I ,
I
I
I
I

Figura 11.46 Temporizza.zio:p.e nella fase di instaurazione del LOCK. II master effettua una
transazione che trasferisce un solo dato e lascia 10 slave bloccato. Poiche il master intende
asserire LOCK cleve trovarlo disasserito per inizia.:re la tra.n.sazione. Terminata la transazione,
LOCK rimane asserito a iudicare che e'e uno slave bloccato. Lo slave in questione e adesso
bloccato e non pub essere usato da nessun altro master. Si nati che sui bus e scompa.rsa
I'identita. dello slave blaccato (il suo indirizza); 10 slave essere datato de11a10gica necessaria
a stabilire il proprio blocca e a riconoscere 5e si trova 0 no in stato di blocco.

Tentativo di accesso a un obiettivo bloccato da parte di un master diver-


so dal proprietario In Figura 11.47 viene illustrato il tentativQ di accedere a un
obiettivo bloccato da parte di un master diverso dal proprietario. n segnale LOCK e
tenuto attivo dal master proprietario. L'obiettivo riconosce che chi 10 sta indirizzando
non e chi 10 ha bloccato, perche vede LOCK permanentemente asserito.

Continuazione e/o fine di una serie di accessi esclusivi In Figura 11.48 viene
mostrata 1a continuazione e/o la fine di una serie di accessi esc1usivi.

Accesso agli obiettivi non bloccati Durante it periodo di tempo in cui uno
slave e bloccato, i master possono effettuare accessi agli slave non bloccati. Infatti
10 stato del segnale LOCK non ha effetto sulla abilita. di"\lll obiettivo Del rispondere
aBe transazioni. Una normale transazione nOD fa subite il passaggio a disasserito al
segnale LOCK. Sana quindi consentite Ie transaziorll can dispositivi non bloccati.
Se 1a transazione tentasse di indirizzasse l'obiettivo b1occa.to, verrebbe rifiutata come
ilJustrato in precedenza (Figura 11.47).
500 Ca.pitola 11

Un QI~
't .. n"'tCl c ,.,a.~;;.....
1;.-o.n50. 2;10 ....
a Cl..K 1 1:r--LTL':r-L'n.rL':r-L
II 12
I
13
I
14
I _
1':5
I
IE,
r

co.,
"'~
., oeco. ~O
l'ot;>I .. 1::-i:lvo

F"RAME:,.
__ I
t\1
I I!""-;- I
I
I.
/
I
I
I
I
I
I
I
-..j./-
I
i

..
I I I I
I I 1 I I
n""'
iLOCK II II
I
I,
I
I,
I
I,
I
1''I!'x 'o ..... -,..,o""'t......

:~::~ ..I~~~... 1::"'tl"O k AD

.",en" '
1
I
AdcO··....
(
~
!)(
I Co.'to,
f
I
I
f
1
>-1:-
I

I
,,
.f-I ,'
'"\ I I I
,,
[RD'r' I
, '.
.............
II

, " , " ''"'


"
' ' I! /T"""
............. I! I!
,
I, ,,,
'TOO ' I '
I
1
1 ,
j ,
1 ,,
,,,
I""""" I I

n£vstL:I --+- I
\: /
. I -
l
I
,,
I ~ t I
STOP I , -~
,- \' / I 'I
I ,,
' I
' I
. ! .
I I ,
Figura 11.47 Temporizzazione durante un tentativo di accesso a un obi!l'ttivo bloccato da
parte di a1tri iniziatori. II master inizia il tentativo di trasferimento asserendo FRAME,
indirizzi e coroandi sui rispettivi bus. Lo slave bloccato che viene indirizzato, campionando
LOCK asserito sui fronte di salita. del secondo dele di clock stabilisce che il master corrente
non e il bloccante, quincti asserisce DEVSEL ma non TRDY. Poichc ha. determinato che it
master non e il suo....E!Q£!'ietario, rifiuta la transazione con it segnaJe di STOP. L'iniziatore,
che campionando STOP attivo e TROY ina.ttivo aul fronte di salita del quarto .cielo di
clock, capisce che l'obiettivo ·chiede di riprova.re piil tardio Si ha. cosl la conclusione Retry,
menzionata a pagina 495, e il bus toms. allo stato di riposo.

11 12 13 14 1
S.eondO ",ee • • so
...1 "to.rg.'!;
Cl.K v--v--LV'L:r--LJ
~I
I ' ...-r--_, I I

rr:=t '
I I I
AU .. ')1"\' 1\ ,.,. . . ~ . . .

II ,.,o.,,-t ..... dlsos -


",I"RAMlt,
____
t\
,
I
I
'/'
I
I
I
I
I
I
-.v-
I
I Rllo.clo
I
I
o
a
.. ll .... c:lo It '!;o .. g,"t
eon'!;I ............. \:>lol;eo.,..\o

. . . . l."'~ Il .. l.OCK ~ I j \ '/ !

rn~:;;;;;--;;;:-;::;;;-;::-l-:,:c=o:c~":tW~=J;;;'~~.
I...
tl ,...,,,,:s't:. . . . .
. . . .1.."'. 1\ o.LOCK
n: I X
A....----..-!:
I.L
Addol-' ....
I
Dd't:9, :; -) :: I

,
I
C<:> ..... 't:I.j.I ......
:
I
I
I 'i~ I I
.. IRDY : T\ /: :
",TRDY,
'-+
,
!
-----, I \ / '"I
!
,I
I

_....,
1 I I I

a.DEVSEL I
,
I.-T"-
T \
/ '
I
I
,I
I
I I - . I 1
r I 1 1 1

Figura 11.48 Temporizzazione durante Is. fase eli rilascio del LOCK (la transazione tras·
ferisce un solo data). All'inizio della transazione, l'iniziatore, mentre asserisce FRAME,
disasserisce LOCK, Cib permette al master di farsi riconoscere daJlo slave bloceato come
master bloccante. SuI fronte eli salita del secondo cielo di clock I'iniziatore riasserisce LOCK
per continuare il blocco fino alIa fine di questa. transazione (che nel caso specifieo termina.
qui). Lo slave rimuove il suo blocco quando campiona FRA.ME e LOCK ambedue disasseriti.
Bus di sistema 501
I •

11.8 II bus USB


I •

-
L'USB (Universal Serial Bus) e nato nel 1995 dalla collaborazione di quattro mul-
tinazionali dell'industria elettronica e informatica: Compaq, Intel, Microsoft e NEC
\.
e
[Com98], Nel giro di pochi anni diventato uno standard industriale, adottato su
--
tutti i PC, compresi i trasportabili.
Piu che di bus si tratta di un complesso sistema di intercannessiane di periferici,
una vera e propria rete a stella, che ha il suo centro nel PC (i' host del sistema). .1 .
Di sernpliee nell'USB non e'e niente, nemmeno il cava. La camplessita e nascasta •
all'interno dei vari componenti, che appaiono all'utente di facile impiego e semplice
instal1azione. La filosofia progettuale e stata quells. d.i produrre apparati pronti all'uso:
non c'e roe da collegare cavi e sincerarsi che sui PC sia stato configurato con il software \ .
dovuto. Emblematica di questa filasofia e la possibilita di connessione/discannessione
a caldo dei periferici. -
Elemento fondamentale di USB e la sua componente software. Sul calcolatore
host deve essere presente il cosiddetto software USB di sistema, doe una componente
da riguardare come parte integrata nel sistema operativo, esattamente come il pro-
'I .
tocollo TCP lIP, per quanta si riferisce alla piu generica connettivitA. in rete. Non -
e immaginabile eli gestire dirett~ente un periferico USB: sarebbe come pensare di
collegarsi a Internet senza il supporto TCP lIT'.
Uesposizione che segue punta a fornire Ie nozioni che servono a comprendere la
I.
natura di questa sistema di interconnessione, evitando di allungare la trattazione can -
i dettagli di funzionamento , che per essere trattati esaustivamente , richiederebbero
un vol~e a se.
Poiche USB adotta un protocollo di comunicazione seriale, il suo studio richiede
I.
un minimo di conoscenza circa Ie tecniche relative a questo tipo di comunicazione.
Si consiglia illettore di esaminare il contenuto dell'Appendice E prima di procedere
oltre. I.
-
11.8,1 Caratteristiche generali
).
VUSB e un complesso costituito da un sistema di interconnessione, un protocollo di
comunicazione seriale e un software di gestione, Ie cui caratteristiche salienti sonG: -
a) capacita di collegare un elevato numero di periferici attraverso una singola porta } .
del sistema hostj
-
I-
b) elevata velocita. di trasmissionej
c) presenza impresdndibile del software di gestione.
La struttura fisica del bus e una rete ad albero con la r~ice n~lla porta dell'host.
Lo standard definisce it formato dei eonnettori e la natura del cavo di interconnessione
(Cfr.1LB.B).
e
II protocollo in grade di gestire pili di 100 periferiche, eliminando i problemi di
J-
"mancanza di porte". Teoricamente un host USB (host, nel seguito), nella versione -
1.1, puo arrivare a gestire una catena di 127 periferiche in grade di scambiare dati
a una velocita che e pari, a seconda che la periferica sia ad alta 0 bassa velocita, a J.

502 Capitola 11
1
-
12Mb/s 0 a 1,5Mb/5 41 . Occorre perc tener presente ehe la banda disponibile e sempre
1 e
suddivisa fra Ie periferiche connesse42 . Altro aspetto rilevante ahe la priorita. dipende
- dalla posizione (illivello nella catena) del dispositivo.
n bus USB e in grade di alimentare Ie periferiche attraverso 10 stesso cavo utiliz-
-,I zato per 10 scambio dati, famendo potenza in quantita esigue, rna pur sempre suffi-
ciente a connettere dispositivi d.i basso assorbimento. Come gia. detto l USB consente
la. connessione e la disconnessione a caldo dei periferici, anche eli quelli dotati di
alimentazione propria.
- n trasferimento dei dati avviene fisicamente attraverso le variazioni della ten-
\ sione differenziale fra due dei quattro cavetti costituenti i1 cave USB. L'osserva-
- zione delle variazioni della. tensione differenziale consente di riconoscere la connes-
sionejdisconnessione degli apparati. Uhost e anche in grade di riconoscere se la
periferica e ad alta 0 bassa velocita..
- I, E solo attraverso i servizi lorniti dar software USB (che nel seguito indichere-
rna con la sigla SWU per brevita) che i programmj applicativi hanno accesso alle
periferiche connesse. In questa senso SWU puo essere riguardato, secondo il classico
I modello ISO/OSI (si veda l'Appendice E), come uno strato che si interpone tra il
controllore del bus e i programmi applicativi e che detiene il controlla assoluto di ogni
\ tipo di informazione scambiata fra Ie applicazioni e Ie periferiche conne5se; al bus.
SWU monitorizza costantement.e il bus e provvede. a instaurare i Bussi comunicativi
tra i programmi di utente e Ie periferiche, anche in base all'occupazione di banda. I
If programmj applicativi vedona Ie periferiche in base alle funzionalita. da esse offerte, e
, sono esentati dal tener canto di qualsiasi aspetto relativo alIa comunicazione.
Quanta sopra ha, naturalmente, un'importante conseguenza: una periferica, seb-
, bene costituisca un dispositiva passiva (nel sensa che trasmette solo e sempre in
! risposta ai comandi dell'host, seuza mai prendere l'iniziativa) deve necessariamente
essere dotata di intelligenza, in modo da riprodurre la pila (stack) del protocollo. Le
. periferiche USB sana di norma realizzate attorno a un microcontrollore43 che si fa
carico di gestire 10 scambio dati secondo il modelio a strati.
-
- I 11.8.2 Struttura fisica
-
! Un sistema USB si costruisce a partire da questi elementi:
a) l'hast, un PC equipaggiato con U controliore e il software U~B;
,
- I J b) i dispositivi USB compatibili, separabili in due classi: periferiche e hu.b;
,
- c) i cavi di interconnessione.


n Per 130 versione USB 2.0 si pacla di uu incremento delle velocita di un fattore 40, cbe porterebbe
quindi a. 480Mb/s la velociU roassima dei trasferimenti COD periferiche veJocL .
- 42Per questo motivo, se si vuole evitare it tracollo delle prestazioni, si cleve limitare il Dumero
di periferiche ad ampia occupazione di banda, come, a esempio, i dispositivi multimediali, quali
webciUD, scanner ecc.
-
I 43Un microcalcolatore BU singolo chip. L'lntel produce una aerie di ccntrolleri peT 10 standard
USB, come i due diSP08itivi 8X931AA e 8X931AH [Int97a), [lnt97b], destinati rispettivamente a
essere impiegati per 1e pure periferiche e per Ie periferiche con funzione di buh. I due controllori in
questione derivano da una classe di microcontrollori assai diffusa. aul mercato (la aXeSl).

- 1\
Bus di sistema. 503

B PC
L:JL:J
I
funzione USB/hub monitor hub
.,J ;:r ;:r UI
-,
stampante telefono

funzlone USB funzlone USB

r l
• telecamera scanner casso hub
funzlone USB funzione USB funzione USB
Figura 11.49 Esempio di rete USB. Nel caso specifico it PC presenta due porte, daUe quaIi
5i originano due sottoreti. Quella di sinistra presenta una prima periferica, it monitor, 1a
quale svolge anche la funzione di hub, can 1e sue 4 porte downstream cui sono collegate 3
periferiche e la porta upstream di un altro hub. La rete di destra mostra 2 periferiche collegate
tramite hub al PC. La rete puo estendersi a piacimento tramite altri hub (0 periferiche capaci
<Ii {are anche da hub). I dispositivi USB sona realizzati attorno a un microcontrollore. Ne1
caso del monitor, il relativo controllore deve gestire 1a comunicazione diretta al monitor
5tesso e gestire il Busso di pacchetti relativi aUe porte replicate.

Una periferica puo essere collegata all'host in modo qiretto oppure attraverso i
dispositivi intermedi detti hub. Questi hanno il compito di moltiplicazione delle porte
e possono essere a se stanti (con 1a sola funziane di duplicatori di porte) a integrati
e
nelle periferiche. In Figura 11.49 il "monitor" una periferka che svolge anche 1a
funzione di hub.
La radice dell'albero della rete (0 catena) USB risiede concettualmente sui control-
lore dell'host. Se, come nel caso di Figura.ll.49, l'host dispone di pili porte, queste
vanna co'nsiderate come ie parte downstream dell'hub dell'host (l'hub radice).
n software applicativo vede ciascuna periferica come a se stante, indipendente~
mente cia! Uvello fisica in cui si trova e indipendentemente da! fatto che sia connessa
direttamente all'hub radice 0 ad attIO hub.

11.8.3 Organizzazione a livelli

La struttura a livelli del protocollo e schematizzata in Figura 11.50. I livelli sono I


seguenti.

• Livello di interlaccia al bus (LIB). Esso contiene i componenti hardware che


serializzano i pacchetti inviati suI cavo. Le interfacce SODO differenti a seconda
che si tratti dell'host 0 delle periferichej di esse fa comunque parte il cosiddetto
SIE (Serial Interface Engine), la logica che ,j interfaccia direttamente al cavo.
504 Capitolo 11

• Livello di periferica logica (LPL). SulPhost e costituito da SWU, mentre suna


periferica e costituito dalla logica per trattare i fiussi di cantralla.

• Liveno funzionale (LF). Cootituito dal software utilizzatore sull'host e dana fun-
zione vera e propria della periferica. Un applicativo residente sul PC vede la
periferica USB (0 meglio, Ie sue funzionalita) come se essa fesse direttamente
connessa al computer44 .

Host Periferica
L. ~ _ UyenO
Appllcazlone <
1-'''' ..
PIPES
t> Funzlone
funzione
(IF)
...
........ ·······-f······················
V
T
.•........... _...•... ........................ ._... " ............... . ..

V Uveno
periferica
Software USB<
dl sistema I-' -'-
- I> Periterica
logica USB Iogica

. . .__.. +._ . ._..


OffAULT
PIPE A (lPl)
... ......_........._.. _. .•..•. ............- ....••.........._....... ,. ...•. .•...•-...._- •...•....
~ , ~ ~ ..
V V Livello
Cava interfaceia
Control1ore 1/ USB, InterfaccJa at albus
USB
J '~I BUS USB (UB)

-< ;:::::> Flusso logico

< > Flusso fisico


Figura 11.50 Organizzazione a livelli dei ftussi dati dello standard USB. I11ivello di inter-
faccia. svolge il compito eli impacchettare i da.ti secondo Ia. struttura USB, trasformarli nei
segnali elettrici asseriti suI cavo (ci si riferisce alIa trasmissione; in ricezione vengono svolte
ie funzioni duali). II livell9 Iii periferica logica. fornisce una rappresentazione logica degli
aspetti Iii gestione della. periferica da parte di SWU dal lato host. n HveHo di funzione e
guello a cui si sYolgono Ie interazioni tra. gli applicativi su host e te funzionalita. offerte dalle
periferiche conn esse.

Esaminiamo ora piiI in dettaglio la pila eli Figura 11.50.

440i norma. i1 Uvello funzionale suI lata bast sara. a sua volta composlo da piu strati software.
In particoiare, 10 strato piu. basso sar~ costituito dai driver specifiai delle periferiche e su di esso si
appoggera.nno Ie eventuali applicazioni.
)
Bus eli sistema 505

1 •

11.8.4 Host

Allivello pill basso della pila si trova l'interfaccia al bus, composta dai controllore e \
da un hub integrato in grado di o£!rire connessioni multiple all'host''. I dati da/verso
Ie periferiche sono organizzati dal controllore e convertiti in segnali elettrici dal STE,
clie e parte dell'hub integrato
A Hvello intermedio si trova SWU, il software USB di sistema. Esso e responsa- 1 •

bile di tutto cib che ha a che fare con Poperativita. del bus: la gestione della banda
disponibile, l'alimentazione del bus, il riconoscimento della connessione, della discon-
nessione ecc. SWU e costituito essenzialmente cia due driver e la parte di controllo.
n primo driver (USBD) serve a dialogare ve",o i'.alto (con il software utilizzatore) e \ •

l'altro per dialogare verso il basso (con il controllore USB).


n driver USB fornisce al soprastante livello una rappresentazione logica della ,

pertferica. Per dialogare can una periferica un programma a livello LF deve instaurare
almeno un ,canale.
.
Cib viene fatto in fase di riconoscimento e configurazione della 1.
periferica. E previsto che 10 stesso applicativo possa instaurare pili di un canale con
la roedesiroa p e r i f e r i c a . · .
La comunicazione Ira ilsoftware utilizzatore e USBD (CIr. Figura 11.51), amene
attraverso pacchetti46 che il software utilizzatore invia 0 riceve da USBD. \

11.8.5 Periferiche \
In Figurall.52 viene mostrato la pila del protocoUo dallato periferica.
Come vedremo poco piiI avanti (Cfr.l1.8.7), 10 scambio eli informazioni sul USB
si basa su tenninatori e canali. Tutti i dispositivi USB devono neeessariamente pre-
sentare 10 speciale termmatore 0 (end-point 0). A esso sonG associate Ie infonnazioni
I
richieste dall'host nella fase di riconoscimento e con.figurazione. Tali informazioni so- -
no costituite da parti regolamentate dallo standard (tipo di dispositivo, COnsWllO di
potenza ece.) e da parti a disposizione del costruttore. n terminatore a e a capo
dei Bussi deUa cosiddetta default control pipe, che nel seguito chiameremo canale di
I

base, it canale ehe 5i instaura all'atto del ricono5eimento della presenza della periferi-
ca da parte di SWU. Questo canale si situa logicamente a livello LPL. Attraverso il
terminatore 0 (e il firmware del microcontrollore) SWU e in grade d.i configurare la
periferica.
I.
A livello di funzione la periferica viene vista ancora come un insieme di ter-
minatori, corrispondenti aUe funzionalita. espletate dalla periferica. I terminato-
ri sono connessi attraverso eanali instaurati da SWU in fase di riconoscimento e J.
configurazione.

<1.651 ~ gia osservato che ~ comune trovare due 0 piu connettori USB sui retro del PC. E il controllore
)
che fornisce piu porte. AlPesterno sembra di avere due (0 piu) bus, ma., in realt~, il bus e unlco e \a
banda viene ripanlta tra I differenti sottoalberi.
46Uno pa.ccbetto di questa genere, nel gergo USB, viene denominato IRP (I/O Requcst Packet).
Con questa sigia si intende II meccanismo definito da.! Sistema Operativo in uso, COD il Quale Software
utilizzatore e SWU comunicano per ottenere 0 concedere i'utilizzo di un canale. J
- ] 506 Capitola 11

,-------------------
I
---..,
I

I I
I
I
I
I
SOFTWARE
l1T1UZZATORE
~i~
'IPE
I
I

I I

- =it ::#: I
I
confiQura I
'" I
I
Controllo I
USB
Driv~ P!Pf I

i>
I
-
\
(USBD)

Driver del
controller host
<: I
I
I

- SWu I
I
\ dlPtnden
......n
._~
.,,~
~
I
I
I
deflnito dill
I
COfltroller co.v
controller '5. I
>
I
sull'host SIE I
I
INTERFACCIA I I
: IALBUS USB I HOST 1
~-----------------------~
.- Figura 11.51 Vislone di dettaglio della pila USB dal lato host. ~ programmi applicativi
( comunicano attraverso uno 0 pili canali con la periferica. I canali 8i stabiliscono secondo una
tecnica di una ce,rta complessita.. Essenzialmente un canale cannette il software utilizzatore .
con un terminatore sulla periferica. La default control pipe rappresenta il canale attraverso
i1 Quale SWU comunica con la. periferica nelle fasi di riconoscimento e configurazione. Essa e

I callegata a uno speciale terminatore, il terminatore 0 (necessariamente presente su qua.lunque


periferica), mentre gli altri canali collegano terminatori creati alPoccorrenza da SWU per i
programmj utilizzatori.

-
l 11.8.6 Hub

L'hub e uno degli elementi chiave nell1architettura USB. Si tratta sostanzialrnente


] di un replicatorejespansore di porte: a una porta downstream eli un hub pub essere
collegata una porta upstream eli un nuovo hub e COS! ripetutamente. Teorica.mente e
possibile imIIl:aginare una catena costituita da un Dumero infinito di hub e dispositivi
funzionali. Nella pratica i11imite massimo e di 127 dispositivi.
-, j, •
Ogni porta downstream di un hub eelettricamente isolata dalle altre. E possibile
il funzionamento delle varie porte in modalita mista (parte ad alta velocita e parte a
- bassa velocita).

-
-
I 11.8.7 Madella dei Hussi informativi

Tenninatori e canali.
-
• ·Un termi,natore (end-point) e definito come una porzione unica, identificabi1e di
- una periferica costituente 1a terminazione di un flusso di comunicazione tra host

- j
Bus eli sistema 507

r------ - ------ ~
I I
FUNZIONE

>
I DO I

<1 I
PI"
Terminatorl PERIFERlCA I
I
I
I
I
I formllto non USB I
I d--.omt.. da~a I
I ",.lIuo_ lIord.."o I
I I
,
I
I ~ peRIFERICA
LOGICA
,
: DEFAULT P Terminatore

<:: :=> 0

I
I
I
I
I
D~t!per I pltdlettl I
te<mln.otori daU use I
v v I
INTERFACCTA I
CAVO us I "L BUS UBS I
<: I stEI I
I I
I I
I I
IL PERI FER
_
~
I

Figura 11.52 Visione di dettaglio della pila USB dallato periferica. A livello di interfaccia
at bus, e previsto, in pratica, il solo componente SIE, anche se nel caso di periferiche can
funzione di hub, tra il eavo e iI SrE e'e i1 ripetitore di segnale ebe collega la porta upstream
con 1~ porte downstream (e can il SrE stesso). Le funzioni di periferica logica e la funzione
periferica di alto liveno sono realizzate dal microcontrollore a bordo.

e periferica. In pratica si pub trattare di un registro 0 di un'area di memoria del


controllore, che l'host e in grado di indirizzare:
e un terminatore sulla periferica.

a)
. gli e stato assegnato un indirizzo univoco;
.

b) gli sana stati correttamente aperti i necessari terminatori e i relativi canali;


Sono previsti due metodi , mutuamente esclusivi di comunicazione sui canali:
• Sequenziale (Stream): i dati che si muovono suI canale non hanna una Hstruttura-
USB" 41. I dati fluiscono da un terminatore di uscita (in ingresso al canale) a un

41Definita doe dallo standard USB. Si Dati che 10 standard non prevede mai l'interpretazione dei
dati che f1.uiscono su un canale.
508 Capitola 11

terminatore eli ingJ:esso (in uscita al canale), mantenendo 10 stesso ordine con cui
SODO entrati. Si tratta necessariamente di canali unidirezionali. Ci si attende che i ;'.,_ ',"00;
da:~ che viaggiano lunge un c.anale sequen~ia1e vadari? a int~ragi:e con un SingOlo"c.~;fJ~·.
u.tll~Zia.tore: ~WU ?on. ~ar mente per asslcur~e l~ SlOC~QmZZa~lO~e fra possibili ":tlt,
nchlest~ mUlt1pl~ ~ utllizzo del can~e .pr~vementI. cia dl'fferentl utilizzatori. . ri~i~·tt
~ canalt ,sequenzlali prevedon~ tre tIPI dt trasfenmento: bulk1 isocrono e per ,.,:,!:'~~"
mterruz10ne. ' '·/1
• A messaggi (Message): i dati che si muovono sul canale hanno Ustruttura- "":"~~~
USB"e vengono scambiati secondo un meccanismo richiesta/dati/stato. Inizial-, ,j,:~~
mente viene ~nviata dall.'host, una richiest~ all~ perif~rica, tale ricbiesta e seguita ' '~' ~~~~;t
cia un trasfenmento datI nell opportuna dlIezlOne e, In un secondo tempo, da un ' ,/fit..
messagglO, d'1 s t ato. . '·.. ·,m"··I'
',.:,fi:(\i1~

I Lo standard prevede che una periferica sia in grado di gestire una sola richiesta
~ . . .. ...
per:~;fl~
:;, ':~l\Q'
v~~ta. .c,. SWU. ad ~Icurare ch~ non ~lan.o .ur:late nehlest~,m~ltl'ple eoncorrenti. ;:~~
CIO non Impedisce at programIDl apphcativi dl effettuare pll.~ nehleste, rna queste '::·"'~
vengono gestite in modo da rispettare 1a 10gica FIFO. .•.:·;h~'
;;-1-1f
'i.lt
",:~~J
11.8,8 II cava· -:::',1~~
','"'. .4 11 ~'
.,~6
·;"z~
<w.. !J
n caVD USB ecostituito da quattro fili, due dei quali, D+ e D-, sono adibiti al 'r~::~i
trasferimento d~i dati e due" V.ss e VB~S, ~l trasporto di una piccola quantita di ":~I
potenza. La seZlOne del cavo e nportata In Figura 11.53. <,',\~1
La linea D+ e tenuta dall'host (0 dall'hub a cui il eavo e connesso) a una tensione ~~~,
P?sitiv~, Ia linea D- et.enuto a m.assa. La trasmL:sione ~ati avviene .per variazioni '<~i:~~~
dl tenslOne ~V. = (~+) - (D-). Dlvers~ente dagh USUall standard dl trasmissione, ',.~'
dove l~ t~n.sIolli. :a?an~ s?lo tr~ 2 va.lon· S: 10 standar~ USB preve.de pili livelli del , . ::;~
.6V , rifentl a pm livelli dl D, aJ. quail cornspondono dlfferentl stab del bus, ovvero .;{'
differenti interpretazioni delle informazioni seambiate49 . '. ,;'{~
Le due linee di alirnentazione, oltre a fornire una piccola quantita di potenzaSO , -<~~
utilizzabile per alime~ta:e.disposi~ivi a basso a.ssorbi~ento, .hanno u~ ruolo. fo.nda-\~~~HJ
~~n~ale duran~e Ie fasl di n~onosclIDento d~ll.a co~e:~fn~nej~sconnesslOne ~el dlSPO: '~',f:
SltlVl. Come 51 vede dalla Flgura.ll.54, Ie hnee dl ahmentazlOne hanna reslst~nze di .,:"",~,
pull-up sulle porte upstream e di pull-down sulle porte downstream. Le reslStenze ·'rt..
in questione fanno da partitori r~sistivi e consentono di riconoseere sia l'avvenuta f($~{
connessionejdisconnessione che il tipo di periferica (.veloeejlenta).~~ri:
".'.iZfr.
· ~~
Connessione di una periferica USB Immaginiamo di connettere un dispositivD ,.~
a una porta downstream di un hub 0 dell'host, aHa Quale sia gia collegato i1 cavo ·j~
USB ancora scollegato dallato periferica. Come illustrato in Figura 11.54, in queste
;"n
'Y"
·,.;,
•' ••', :
4SPer esernpio, nel caso della standard RS2321a. tensione assume valore +12 0 -12V. · ·,I~
,;"
. ''\
49Si distinguono 4 stati fisici (caratterizzati doe da differenti combinazioni dei livelli dei segnali e ,:;;
del~V). ' ::;
.:"
50Circa O.5W a periferico. . '~'
· ir:
A[
, ,.f<
.'~
I-
<
~W'
~\~J'.', ' ,
i~: '. ,

f:!{t.i.
ifl~.l;~~' ~ Bus di sistema 509
__=c:::__=:.::===___==
"",',

I
,. ,W,I ~

l.!,r;' "

{~iW:"
:~~W(~'
,
Doppino non intrecciato d'alimentazione

I.
Rlvestimento estemo in PVC
,~~~li;".
, :j~l".,
t. ~"iDr~.' Schermatura estema a treccia dll'3me
:~~~~:,'
:~lliC:
Vss pollestere e allumlnlo
I-
~ ji~~w~?f":'
Vausl Schermatura intema in

~, ~t!~~;.
-
t-~~~~,~:,.. \ -
., ~*,:~J~ ..>,
• '\'liI~'.'
'w':'
~ "I i'
~'~£I::I'}::" '\ Dapplna
' inlreCCIata
, dedlcata aIsegnafe dati'
-
'1-.J:I.t!~
,:",
~~~T1., . . . . . \-
~l' Il;~~~, Figura 11.53 Sezlone del cavo USB. I da.tl vengono trasmessl a.ttraversa un doppmo lOtrec-
:i
~': f1~'~l()i:.l' ciato (linee D+ e 0-) su cui ~u~i ~anifest~o Ie va.ri~ioni ~e.ll.a t~nsione diffe~enziale
f:rl\ ,~W?:"ff,".' .1V = (D+) - (D-). Le tenslOnl di ahmentazlone sono dispowbih sm due cavettl VBUS
t~$ ~.~~~t{:;;': e Vss ~quest:ultima tenuta. p.reva1entem~nte a GND). ~ tutto e schennato ~on un rivesti- -
Jt·~~~. li~',::· mento 10 poliestere e allumlnlO, avvolto m una treccla. di rame, a sua volta. ncoperta da un
~~·~~f,£~:,1t!:' . rivestimento in PVC.
'""'. ,.)~, •
'\Jl~'.'
",' ' I..··'
-
I-
,=",
,.~,-,.

i'~'~,~il'\>' ... . . .
I" ~1t-~~J,::" condlzloID, a. causa delle refllstenze Rpd eli pull-down, SIS, D+ che D- sono a Vss, e
.
11, ~~~:{.- dunque a. massa..
, i ~:i~:~i~" Non appena il cavo USB viene coUeg~to alla porta upstream del dispositivo che
~1£.~c' ."ILr" si ~ta conn~ttendo, la tens~one di al~entazio~e trasp,0r:a.ta dal cavo si applica .alla
'~~ '.. ; ~:',:'~' reslstenza.di ~ull-u:p. Rpu. SLforma COSI un partltor.e resl5tlv~ fra VBUS e Vss ~ulla ~ea.
. e e
~~~~~~t:: ~' D (D+ se 11 dlS'pO~ltlVO lento, D- se veloce). CIC deter~a una ~aduta di ~enslOne
1-
'~~ ~~t.-:.: del 10% su D lfi lOgresSO aHa porta upstream, caduta sufficiente a mnalzare il valore -
~i~~~lh\, della tensione del cavo stesso a una tensione superiore alia soglia Vrn (~igura 11.55).
~~. ~~~(~: Questa condizione, se pennane per un periodo di tempo superiore 0 uguale ai 2,5 J'S,
J\~F.J;r· viene i~ter~~et~ta ~~'?Ub come avven~~a connessione di.un ~.P~5~ti~os~a porta.
1-
_.
:§fJ.ir1;:tY> POlche 1 dlSPOSltlVl US~ sono pasSlVl e non prendono mat l'lDlZlatlva di tras~et­
,:~}ri(~;,~,~t " ~ere auton.omamente, perche succeda qualcosa suI b.us o.ccorre att~ndere la p~osslma
.{J?-~t.fX:·'. IOterrogazlOne dell'hub da parte dell'host. Alla pr05suna mterrogazione l'hub nsponde
{J~ :T~C~!L.," rendendo nota che e'e stata una nuova connessione. A questo punto il software di si-
I-
:~::~, sterna abilita la p~rt~ dell'hu~ su cui si e verifi~t~ il n~~vo collegamen.to51 e passa a
.'".,~~ ~!r~:f\" configurare la penfenca. OVVlamente qualora il diSPOSltIvo connesso Sla un. hub alle
~~i ~~1~.,', cui porte siano conDessi diversi dispositivi, la procedura viene ripetuta per ciascuno
~~ :~ff~1:;"~ dei dispositivi.
1-
~~t ~~r, Una volta riconosciuta la connessione della periferica tutti i successivi ftussi co-

","!, :*!,.:
.
n~~ :~~~'::~: ~unicati.vi fra host e dispositivo avvengono elettricamente attraverso variazioni del
dlfferenzlale (D+) - (D-) 1-
,?,~~ ,·.'i:'.I",;" .
:(¥;l'!', ,)'fl i""....
~,,-$'
",""": ,-'~"'\"".""
<lli,:
\'i(:'" , -.:'
;.:~f:1 ..Jff~ ",: I
-
;:ii~' '!'H"
"'E':.
';~~~-:~
.~ ,"~:"I'.

:1~:J!; :Ii'i\~~~";'
<; ,"., :'1t
A[i;;d :';,:
'. 'f '-,
'
La. porta ~ da ritenere disabilitata fino a quel punta, L'abilitazione e ottenuta tenendo iI bus But
51
connettore delle periferica in stato di Reset per un interva.llo di tempo pari a. 10 fn.$ . I-
~. .' U&::.• J
'·'1!...""..
~ ,
t'I
~
",
.1'
510 Capitolo 11
I !~pr~i.
,l\;'''''
.;~,

i>""'~'
;'i;r:;
,~~"",:
,· ...l! .
VeU3 Periferica y"lace r - Veus
.'

.",'. '-':
t-...
'" 11"
,:;.
.'~'
.,"
<. ,Ii: '
) 0+ R.. .' '-'.F;
"t"j!!1~' .t'-::7.."
-~'i-
",''''·i

R", '-,,:. ".~ :Ii~"


l 0+
.<- cava USB
II . j~4#.~" ~~~
- I II "."W'"'...1' 11/ ";::.-,,
if....'!
-'!'j
', "".
l;;!'
u- 0, r '.J. :j&~,~!' ;\

I Vss
R
- I -~ Vss Vss
VBUS
= OV
= 5V
. .:':.,i.~~·'· '~lr
-.,-' . ,,"'.;
'. '~:!!f'.'" ,J::'
~~;:w:wt "l.J},~
..
.' ";;l;_l\l.,,!;;ii~ :"I·l~t
'~',{'" ~ ~
- •.".f@.
:.", , .
'~'...,'
'.'" .,$)
'",,-.,
'

.~,.
, .,- .•'<,' ';••" :,'.~,


1 ,;.-.....,.",t.,.
"",";Ii'
,','-' .' "1':'",.".-.
'l"-:
Zo= 900 ± 15% ..~,i;'*~~!': ';;'i~'~
Porta downstream Porta upstream
\ Rpd= 15 Kn ± 5% ·':l'~ ":~il~ 'i~'';'
,~ ;~l';' (.·'·~
Rp\>'" 1.5 Kn ± 5% ., ''''I':~I\i''~ :"')'",
VBUS '.~ II ""'
,!'I~'I·YI'
'.' -"".;;' ::"....12:,
. .. ~,~~1i!l>"':*.~,!l~ 'i
,'. ','llljlii",l 'I'
.,:'...•<1';1,.,. 't
.. 0+ 0+ , ";~I;;'~i't~'·'j
:;

.'" ''·)i;';.~!".r.!'!'I~
- ,", ~h ., >«' '
\ R",
~~ cava USB

", :'i'l'iF"i~~1
, ."f..(~~81)l.i~ 1i;~~
" . "l:j(~.t:-.! ,:'1('
~I:':.
'.:.'lt

...
..., ,~t;,~'~', "\~I'
;.-' ~\(' .. ,~~~
R4 u- R..
.. .' ;('•. "}i'l,
"!;V~,!:i' ~'·
," ".'."""",;
, '.........
"j,,,",

,
""'''
I Vss
- Periferica lenta I ~_=- Vss
Veus ·"'W~-,L
.'~;;t-"
,'. h~,~ .;11
.;~,~l'i~'~"~~W'U
.' ,.' - 'iN
f"'i
"? :';:~!~
;)\

,~~
. ;-~..... ~' ','i!
Figura 11.54 Struttura delle porte upstream e dOWDstream e differenziazione della perife· . :f~~fJl:~tii


I ri~ veloce 0 l~ta attraverso la resiste~a di pull·up della porta upstream. La resistenza
di pull-up e pan a Rpu=1.5kO; quella di pull-down a Rpd=15KkO, Per Ie porte upstream -~k' ""'ij;
~~.J$~

non c'e differenza ira dispositivi veloci e lenti: la resisteoza eli pull·down, e coUegata sia a ,~f,..~ ':; ~~
.n:\
D+ the a D-. ,Per le porte downstream, invece, bisogna distinguere tra perifericbe lente e, "-s,j{t~H.{,
veloci. Per Ie prime la resistenza di pull-up e collegata a D-. per Ie seconde a D+. Zo e :J.~~~''.. ,tJ;"


I I'impedenza del cavo_
, "'j'~';~
. ;':'''JW'.
Y,,"tJ'i,
',''':1 t.t>;o-n~ 1;
..i ",~"l't!!
I --.
I:!
"
.-

, '. ·"\·!Ii!\a~,·1\'i
.~. ',,;':!y,Wr:'"
',~"~~~''''! I'}
'~l"~'-jll ·t(f

I · .

n lsconneSSlOne di ·r·
una penJ.enca USB
N e lunZlOnamento
f' a'reglme,
. e e ,.I;J~;.(if'~~P
una dtt !,~~0-.JtW. ,:~


due linee D e sempre a una tensione superiore a tma tensione eli soglia (indicata <'W\$~ I .
come VIHZ(min) in Figura 11.56), mentre l'altra e prossima aHa tensione di riferimento ,'.; .,.:Sf;~~ ;~
VSSS2 _ Nel momenta in c~ il elisposit~vo peri~erico viene disconnesso l 1a resistenza di . ~81\rlt; .~

I pull-down abbassa la tenslOne sulla linea a UveUo alto, fino a portarla a Vss. Se la "';::':~\~~ ':1
tensione scende satta la soglia VIL e vi permane per un periodo superiore a 2_5~s, . ;f~A~ ~i
la logica dell'hub assume una eliscoWlessione. L'host disabilita la porta e provvede ~ '::':':"~~~ ~~
rendere nuov~en~dis~onibili t~ttt: Ie ri~~rse che il disp?sitivo av~va in co~cessi?~e. ':?~~~~j}!f.
<!
-
Se, per esemplO, Vlene nmosso un disPOSltIVO non autoalimento, Sl rende dispomblle '.. ;:~~~ '!
Ia quantita. di potenza elettrica che esso assorbiva dal bus, "'~:f~i& ~<
":"_" ~'94i' ,g
.ii')?~!"t!. ':.
• ,•... ~ ,.., \. ,"'_
Nel caso particola.re in cui a essere rimosso sia un bub, tutti i dispositivi a esso }l"..:.i!,'';:.
J:~' "' .,"I

-
I connessi, di qualsiasi tipo essi siano, vengono considerati disconnessi e Ie risorse da '-!:.
questi in precedenza utilizzate ritornano a essere disponibili.
-""~~l1.,,,
" ·1~..'I:¥it},
'1 .•
.,;,"i8.':'~~ .~
"'. "..
'. ,\li"~I'~"1
". ,:;."1: O

',<

~, .
't1i::!',1::'~~~~ ~
;)',>;_1' 'f~ '<.
, .,1' •. \ ,.. :,.."
. ,.,~~,
,~,'\l:o;'.l
~ :,\~,'Wl;': l~

-
I '.'.' ~'~'!V:;.i~i J)
·;';":'~1~~.~i!1"; :?
,.",l, il~-J". :,',
'''';. (. >l:<'. "'1,
.' ,,::oIl,;\'l\l\(: 'n
52Come abbiamo visto D+ >::; VlH e D- ::; VSS per Ie periferiche veloci, al contrario per 1e lente, <.l{,~~I\;
"~(: !i~
".,.~,
.. ' , '
,
>l

I \':i'~i;-;. •
,,-...,·.t;\
.';0,\,""/0
III
,,;........
j,o"
,1,1
~ _
".
~.-
,,' ,
';. ,
B-us di sistema 511
..- ...
if·
''''-
'.
;~r"
:;-
:, ~
..
!ht·
. " ..
v
'".
"
_
7i>:;-
",.. : '._ "0+ ~, p-,ll.,lch. vekx:1
i:;.~­
"';-'" D· JMf p«tl.oc:IM '-nt.
~~<
!"
, ,".' -
,.
.".'.'
\~~ ..,-.
r~~:
;,.... VIH-------- --_. -----------------
'.l'~~-"
~t·~:
"'",'
).\'....
,.-.
I D- p.r perllerlch. v.locl
I I
..,.',
,-,:,
.":"",. ::.
~'f_'·. ;.,
,
"'" -1' Do- per ptrllerleht lent:
':~:':''
~~Y':
,;" , Vss ~ !
2",:,°'
,,:;' "'.'' • ~2.5f1S •
i::",· '-
t'"''
;d'~"
j;'~·'· Periferica Connessione
'1"'.,',',
.> ... ·, .
"
tj!~;~.,' , connessa avvertlta
~'f:':":
'(,-:'-':"
' ..: :. . Figura 11.55 Andamento delle tensioni a seguito della. connessione di un dispositivo alla
~.,
catena USB. L'andamento della coppia eli tensioni (D+, 0-) determina anche il tipo di
, .'J"
·nr:'
'''''''
",~ ..'
. connessa: se e D+ a superare 180 soglia VIH per piu di 2.5,us, e connessa una
p~riferica
~':':' ..
\t* periferica velocej viceversa, se a sallre sopra 180 soglia per piu eli 2.5JJS e D-, e conoessa una
U/ti-;/:
~.!" .'.
periferica lenta_
!,!(. ~:.
il~::f,
~?<> 11.8.9 Riconoscirnento e configurazione delle periferiche
;:,::: . .
~t..: Vediamo ora con maggior dettaglio come, a partire dalla connessione di UDa nuova pe-
,!K'1, - riferica, questa viene riconosciuta e configurata. A tale scopo e necessario richiamare
"'.;.:~';
quanta detto in precedenza, e cioe cb,e il bus e in esclusivo controllo dell'host che,
!,'.~'".':':"
-<~.
anche neUe situazioni di riposo, 10 mantiene attivo, trasmettendo, a intervalli regolari
'~',.:,: ..
iE~>.. :, . di 1 ms, it messaggio SOF (Cfr, 11.8,11).
!ii'-"
,;I., Abbiamo visto che it coUegamento di una periferica e riconosciuto dall'hub cui
f,'~l·
P.~t,
~{.~t<·
Quale viene connessa. A quel punto si stabilisce una rase detta di enumera-zione del bus,
I~r che porta I'host a identificare la periferica e quindi a configura.rla. Schematicamente
~~~. . ~ il processo di enumerazione e configurazione si compone dei seguenti passi:
~t.,;, a) I'hub al Quale e connessa la periferica, sulla prima interrogazione da parte dell 'host,
1\r:·t';·
i'i.
~.~;_.
. informa che c'e stata una variazione del suo stato 53 ;
b) SWU interroga l'hub per conoscere l'esatta caUSa Sua della variazione di state e
.~::~". riceve in risposta l'identificativo della porta a cui e connessa 1a nuova periferica;
!W~:',:
<r~ ::. c) l'host (dopo un'attesa di almeno lOOms per consentire il completamento delle
g%~" fasi di connessione e per lasciar stabilizzare l'alimentazione suI nuovo ramo della
:.f.~~
'""\
_..,,'. catena USB) invia alIa porta delJ'bub identificata al passo b) un comando per
ILl'~;,.
".. la sua abilitazione. AHa fine si.questo passaggio, grazie agli uffici del controllore
',
.} .,. ..

dell'hub, 1a porta e abilitata e Ia periferica a essa connessa si trova in uno stato


.~<;, .'
·,:,,'
O::"'i
~:::L
:.,
. e
di riferimento (default). In questa statc in grade di dialogare suI canale di base
.l,~--_
""t,;-
... ,' '. . attraverso iI terminatore 0;
~.::~ ,
).~~::-;
?i:l');''-' --
,:J!'< .-
,'11"<,'
n'A:; 53 A questo punta la periferiea non pub aneora. eomunica.re in quanta la porta a cui e eonnessa e
~rc::::., disabilitata.
';;~,..
_ ~i:,"'~'
,!f!>
""",-.-..,
..
~;:J' t •
·tt~j::
. C"'~~
512 CapItola 11 '->~f'"
·~,'h...
:-"~
//~~ii,
~ :';t.';'
v' ; '::1~1~
· "·".'.'IW",
· /"~U
-~',.' "
.,. ,;T~~, 'tl' .
..... --_ _ --- -.- - _ . ., _'
.,.,.••'"~I," ,_
Vou.·~-·'·-' , "~~!"<i''
~. -'Ilt;
0+ per IMril.rk;/I. veloci · :p, .:i:(.' .
o· JM' pemerich,le"tt "I:'i'I~"
• '1'." j "
-~',l',.';:': •
-, .~.;;:l!;J\

'-';"\I'~.rSil.,f
.-:_"
" 6.; ' .
.' ... 'Hl,!l~J.,
-.;0;1'('"
,. .' ~.,,~~.,l
"'.~,",
."."
,~t'<""
...................... ' .. ~l,.
,·.."...':.:.:-jl:
".;......<.,~,
· .-'''~·.l''l{
; ~, .. :~~i't·
'., ""-2 :,
,.:~.,lo,!j",,
". S:..", f,:
v.. "~' '~~':'i~~it
, :'''~\1~~
· :~·~jtlii;
10-~_ _ ::: 2.5p.S J
1
'i~:'~*:~~:
. ,;1<.:]"~J.1iT
Periferica Olsconnesslone ';;~Mi
dlsconne-ssa avvertlta ""~{.'rf.m
'~·C~1::'t
"'-(>~'~;>::~i
F.igura 11:56. Andamento delle tensioni ~el meccanismo ~i rile,,:azione della disconnessione ·':'iL7~~·.
dt una penfenca. dalla catena USB. La discesa della tenslODe dt D+ 0 D- (a seconda del'~;:~~~~~~
tipo di periferica) sotto 1a soglia VIL viene interpretata come disconnessione. ." ,.~@~~~~
.' ",:·-1·~~f4 '..~-~r,,
, .." ;~:;,}i~'
-', 't'-"~'
d) I'~os~ a8~~gna un indirizzo u~co alIa p~riferica, por~andola. nello stato di· ~eri!e-:~~~t~~)'~;
"ea md1nzzat~. Attra:verso il c~ale dl b~e legge 11 .descnt~ore d~lla. pen~enca ·.~;,fr:~~
stessa, de,term.m~do. I paramet!l n.ecessan alIa gestto~e d~I, f1.USSt dl datto In. ~;!~'~
base alle mformazlOID di configurazlone ottenute dal dlSPOSltivo e tenuta conto "~~m'
di queUe indicate dai programmi utilizzatori, SWU determina la fraz;one di ri- :;~i~W
sorse .da alIo.car~ alIa periferica. Conclusa la p:~parazione dei terminatori e dei tltiff.J
canalt la penfenca e configurata e pronta all'utlhzZQ.· :·-....ii~~l

Come appena accennato, nel processo di configurazione il softwar:e uti1izzatore


"'k~'j
':~~r;:::
~omunic~ a .SWU Ie mo~ali.ta, ~ra quelle previste dallo stand~rd USB, sec~ndo ~ui .. ~l~~~4:
mtende Implegare la perifenca, mfluenzando 1a sua configurazlOoe. .In considerazlO- :']i"'~: .
ne del fatto che potrebb~ro esserci funzio~~ita della. periferica non r.egol~ent~t~::;2 ~,~
dallo standard, e consentlto al software utiltzzatore dl configurare tall funzlOnaltta <'~fI;~. ,
attraverso i canali di Uvello LF. .\ .~,.~~~~
. :'.Yf~~"~
\ ··1j~S.
. ',' . ,~::t'~1~:
11. 8.10 Trasfenmento dl dati - ;{i!r
H!}1'r
Lo standard USB prevede trasferimenti appartenenti a. una delle seguenti quattro ·~~.t
classi. \ :'~Kf{\\
, ',,,~li
I -, ~i:'l.l-1(

I L Trasferi~e~to di c~nt"rollo E un flusso di dati bidirezionale. I dati di control~ ".;~~


I 10 vengono usati da1l'~ost per co~~r~e il. ~~positivo appena vi~ne avvertito ~ ':·~~;t
suo coll~gamen:o al S18tema. TuttI I diSPOSltlvl devono ?o~er g~strre un .tra:sfe~l~ ':(:~~fi;~
I
I
v:
mento dl. tale tlPO; a tale scopo, l'host p~esuppone.che SI~O mformazloUl utIh (~:£l:f~
nel terrnmatore 0, normalmen,te un regIstro specIale sui ffilcroeontrollore della "-:;t:'2
I
Periferica avente indirizzo 0000. ,~,p,~
').'~'jt
I I;,..:f.::,.
. ~, ,:~~

I
I
\
'.~~'r.~. Bus di sistema 513
..(Il';,!
,,%"!t.~.
~0~:("
.J!'I!~.' ...
\
;rtl'~~:- •
. ,.\.• !' 2. Trasferimento per interruzione E un flusso.di dati unidirezionale. Viene
.. "c-,-
',';'i"~
·
.",~~i;:",', utilizzato, per esempio, da mouse, tastiera e joystick per comunicare Ie coordinate


~"'-i':'
.,,"_,.1
'''''-''
••. ,
~:'1!,._
. :',' ',"-
":"()j, .•
eli,..-'.
del puntatore 0 i dati circa il tasto premuto. Un dispositivo non puo interrompere
spontaneamente l'host e l quindi, questa trasferimento ha inizio a. seguito di una
I
".",,.,.,.
f ~ hl.'~"~.
lase di polling da parte dell'host. ,
'."~
""I',i_
1;'. ,
';", :!.. ', •
,11:'~;':~'" 3. Trasferimento isocrono E una comunicazione di tipo unidirezionale. Puo
"
~"j.::.:.".
';'~~.'r:
" .. ,
',,~ ... ,~. avvenire dalFhost verso un terminatore 0 viceversa. I dati isocroni sono quei dati
\ •
.. ;;.~."-~ .
,
:":";1;.":, .•
,"~ .•;•. la cui creazione, trasporto e consumo devono essere continui e in tempo reale. La
{ q ....,'
t·'.lf!·;"· trasmissione delle informazioni deve avvenire alia stessa velocita con cui vengono
I
, C' .'" ,
,! ,\,~~ ... ,.
:)"t;,.- .\, prodotte, pena la perdita di ogni tipo eli temporizzazione. Un esempio tipico di
t1'i;~$.""
~W . ;A,~' ' dati isocroni e la voce (si provi a immaginare un'applicazione in cui la velocita,
·,.~,'>,(i','"
:; \:~~\;>. di trasmissione sia diversa da quella di produzione). Al trasferimento i50crono
T1 .,~,~., ... ' viene spesso dedicata la maggior porzione disponibile di banda passante. •
i f'FB't-',
m! :.'~:~:"':" • \
t. <l""'~ , 4. Trasferimento in blocco (bulk) E una comunicazione di tipo unidirezionale.
i" :":<';'i\"'."
.:ff;~~;~:· n ftusso va dalPhost verso un terminatore 0 viceversa. Nella maggior parte dei
~' ,':i1:~~,t '" casil aHa trasmissione a blocchi viene dedicata tutta la larghezza di banda dis-
~ 'a:=~{~ ..
4' :~~; ,...
,; ;'>r,ti]· .
'li !';J~;:,'.
' il"~~;;JI "
ponibile. La differenza tra. questa tipo di trasferimento e il precedente sta nel
fatto che questo non ha di norma nessun vicolo precise sul1a latenza n~ sulla
temporizzazione. L'unico vincolo e posta dal generico requisito eli cercare la
I ,

;~~}~1:i· minimizzazione dei tempi minimi s4 ,


~ f ~ d.;'ri~ . . . '
~)J!~~;; 1
' ~*" $,;;, '. 11.8.11 .II protacolla eil formata dei pacchetti
W' .~ '~&~
J~~~~~?··; , . . .. . I
l' r~", E interessante spendere qualche parola sul formato del messaggJ. (0 pacchettl) prevlstl
I.
j'.'i~'~:·
:'~.'~~~~'"
dal protocollo.
Un pacchetto e una sequenza di bit. n pacchetto e cliviso in campi. Normalmente
:~ ~g? i campi sono di 8 bit (0 multipli di 8)! m.a ci ~ono anche ~pi. di .dive~sa misura. I
.;~ ~J~r bit vengono inviati sui bus dal meno slgruficatlvo (LSb) al PlU SlgnificatlvO (MSb).
~I':_f':,
,~,~I'ft;, . ...
,
., . . .. .
\ :
~ ;~'A~','~. Struttura del pacchettl
Tutti 1 pacchettl IDlZlano con un campo di smcronl~za-
~!I, ~f~ ':. zione (SYNC), costituito da una sequenza codificata in grade di generate 1a massima
.' 3tt<i densita di fronti di transizione. Del SYNC fa parte il cosiddetto SOP (Start Of \ ,

:&~, ~J!i;.~I~ Packet), un sottocampo che marca l'inizio effettivo del pacchetto.
r~ !~\k;.. .
Dopo il SYNC viene trasmesso un campo d.i 8 bit" identificativo del tipo paechet-
rt~ \:1i);;. to (PID). II PID differenzia 4 tipi di pacchetti a loro volta differenziati in sottotipi
t~~i:~}.. tra~te illora tlnome"56., ~ vari tipi di ~ac~hetto sono riportati in TabellalL8.11,
I-
\il~ ,*~t:~. asSleme a una breve descnzlOne del loro slgmficato.
i\ ,:;~,~r '.
(; j~ bt~%.'

~~~ t~~~ ~41n [Mic98]si troYa una descri70ione eu come costruire un driver per questa tipo di trasferimento. \
t~~~, :r'4I!~ ~&In realta, qui, come in altre paTti del protocoUo, Ie case 8000 pili Intrica.te di quanta moatri Ie.

~t~ili )%lt1~:~" nostra descrizione: gU 8 bit si dividono in due sottoca.rn.pi di 4 bit, di cui it eecondo ha funzioni di
~~·:~· :.\~f:'., controllo sui primo. Evitiamo di entrare in questi det.tagli cercando di dare una rappresentazione
sintetica. del protocollo.
2;:~~,.1" i'~,; . 56La differenziazione e comunque data. solo dalla codifica del campo Pro (non c'e un campo per il
~~.
:~;
.;," t~~
(fj'
. .':~
~~.
'l/..~ ..
nome).
.~,., :iii.....

I 514 Capitola 11

Tipo Nome bit [3,01 Descrizione ,


~ di PID
l Token OUT OOOlB lndirizzo e num~ro di endpoint in una
transazione host -+ fUDzione
IN 10018 lndiri:u:o e numero di endpoint in una.

I SOF" QlOlB
transazione funzione -+ host
Indicatore d'inizio frame e numero del lrame"
SETUP 11018 Inditino e numero di endpoint in una transazione
host --t funzione per il SETUP di un control pipe
\1 Data DATAO 00118 Pacchetto Data PIO pari
DATAl 1011B Pacchetto Data PID dis pari
HandJhili ACK 00108 II ricevente hI. accettato i pacchetti data. sentoa. errorl

- II
NAK 1010B II ricevente non accetta i pacchett! dati
oppure Ill. trasmittente non puo inviarne
STALL 11108 L'endpoint e bloccato 0 non & esaudibile una.
richiesta di control pipe
Speciale PRE nOOB Preambolo della .assione host.

I Abilita il traffico sui bus in uscita verso periferiche lente

I tipi di pacchetto previsti dal protocollo USB.

8 bit 7 bit 4 bit 5 bit

- I PIO I AOOR IENOP I CRC5 I


I , + / I·
Figura 11.57 Formato dei pacchetti di tipo token. 11 campo PID specifica tipo e sottotipo

I (Cfr. Tabell~ 11.8.11); il campo ADDR contiene l'indirizzo assegnato alia periferica.; il campo
END P identifica il terminatore sulla. periferica indirizzata; eRe e il (Cyclic Regundancy
Check) eli 5 bit. .

I
I
J
- Pacchetti di dati Un pacchetto dati ha il formato di Figura 11.58.
Pacchetti handshake Sono costitwti del solo campo PlD e vengono utilizzati per
riportare 10 stato eli una transazione. 8i dividono a loro volta in tre tipi (ACK 1
\ NACK e STALL) come indicato in TabeUa 11.8.11.

Transazioni Le transazioni bus avviene nel mode seguente:

-
I a) 131 transazione ha inizio quando 11host invia suI bus un pacchetto di tipo token
per sollecitare un trasferi.mentoj

- 1I
Bus di sistema. 515

8 bit max 1024 byte 16 bit

I PIO 1 DATA I CRC16 I


, v
/

Figura 11.58 Forma.to dei pacchetti da.ti. II campo dati contiene al massimo 1024 byte. II
CRC e di 16 bit.

b) il dispositivo indirizzato si accorge di essere chiamato in causa riconoscendo nel


messaggio token il suo indirizzo e opera in conseguenza al tipo di richiesta;
c) 1a transazione ha termine con un handshake fra host e dispositivo} il scope e
stabilire se it trasferimento e stato portato a tennine senza errore.
""'.
'. ,1:
,.'1'"
, :'t'
-'~"
", ,~"
;.' ;
'.r%

):,~!
",
".0"
- •. 'I.
'("
~" ~,
'J.
.' '1
.'• ,,
<;"
'"'" T:,
.'· 'I"
.,!
o ·,::
.•', ..
,· \".
C· ",
'....
,
· ,~
\ '.;~
• ",
" '_ " ..
.- '.". ';''f
·:.,,
, ., .
," ''
,·r ;,

,:·~
\' '."
""
,
;;.';~
· ·
-','
· .'
..,..,,--.
.'• ,
"'
""'~
".j
,.-,:
,. !
, ''
.,' :
'::,."
' ..•'·,
'"
""i,
','
· •.,'
...
·.",,".-"
.'. :
",
.' e
.' ,.
·iI'
·
·,':
~."
:' ~
.. ;..
'~.
,~
·
"',.,' ,'W'
,.'''
"'.~
'.',, h
~'
,. ·!
,.)7
1,
'
·.
'"
,.1
·[
'. '!'
,. -..·
· "

""'7
"
~
•'
, ',
l.
.~
, "'

"
4
'•.
"""
:-·
;"

,
, r. ,"
or: .
'I"
'-~\.";Z'i'"
,,;'

... \1,":'... •
'OO~
,~

"'~
1
:1,"".' "~~"
"•."J~ ,;,f~~~~,:.
'""ol,' ,tJ!.:, ,
",'~~"!'i:"
l!.::l .~
1""".
_: ,: .tfl"
~,"> •.~.:.
,~.,;.i! !",~,',,:.',
%t~~'· f"~t
·,.....]',,', .r,",
!l!!l:~ t':~~;:'.'·
..,..
'c,,",

I
A
0.....,·
", ",,,' .., • ,.,',~,
I. ll'".·.[ i'~'f\
"', ~:'
"
.'~
iiii' ",.,
,' ' •• "i-l.'
~
, •• ;< .
.,.1.71- .
1"1~l'j,.. ~i·~,I~"
,'''''''''
~ l'Il"' I" ,',..,'
"~l})."
:r..w~",.· "•.
",'t.·.
cI • ..., ,

,,,I'...
f. ;l" .. ~
"I~"!'" r .. ·~", I
!,.I1'L;~: :0.1" .. ,
:t1j[,):: ;:,:;;g;c Sistemi Digitali
.' .." ........
..\11,'.':, ':""IAI.••
""',
",':,,;'
~,"!i:i\.'
)","":; ,.
",
,.,',... n,.','·
...>;:..,:, ;;',,'/.,..
< ..

~,~".
,.';Jo'" •
~,::;~i<;'-, ';,~:d :~.,
,'"l~~''- ",r;, ~"
,"',.

I •

..:;,,,.~~,,,,
""'l'!'!
f':"',,,,
"'1"'.." ~.

',.,,.ol;~ "..';I"~"'3'
.~.
,-'::lj'l'! ~,~~.o:~.
.~~ ,::1-
'';i;~,,\1 " ~J'
r'r "d'
".
,~,}~,: ~;"l.i: \
~·~~~ft8~»;J·k·.
"'i '''.'' "'@\'
. 'ffi,">,; "~ .'"'. ,
"":<;!,,,. '•. ~'~:'
,~,..." 11."( .
~:t,~~~ ~:,'.T.''''-.
....
)' .':' ,
',." ~"".;,
·0\" .. ··, ~1-'~"
I';

'~:;!:'_\'t.
-.••.
."""'.1:'
.. ...,"-- ='1. ,".""-
,w """'"
.:"~'_.~ ... Per sistema digitale ai intende una macchina che effettua processi di elaborazione \
,"~:, "f)t .
-'>;;."ll
~ ~,,.'"
.. ·'~~I
."pw"·'·.",~\, ,''''.
, .··"~i'
.. , su segnali digitali, oyvero su segnali che possono solo assumere valori da un insieme
finito. I sistemi digitali di nostro interesse sana queUi in cui l'insieme di definizione e
.,~,
'01:'"";" i',",,j,!·j.'
~j!i;' ·~o." '~~."1; ".

I
j! ').","
!
I,,';A,:·. ,;".
~"'," ',""',.,
,..:.,.. limitato a due soli valeri) ovvero a quei sistemi digitali in cui i segnali (e Ie variabili che
''''''''-'' '~'~"':
:~,~~i)'.,:i ?){-!. i .. Ii rappresentano) Msumano valori su di un insieme binario. Le reti corrispondenti sona
:'~F~~:t- "':"~~'~;:
."",1,,,_ (;',1-;:.'" descritte attraverso un 'algebra, detta algebra delle reti 0 algebra booleana, in ragione
,,~.
',;' "', ..,". h"~'"
·h
~~.
-.~ ;;,,':'.!",' del fatto che essa deriva dalla logica del calcolo delle proposizioni, introdotta nel secolo
".......,.,.<
....J", .i"Ir'-:""'
'"/t., '.
,,:','::f':":' ~i~tt~/, scorso dal matematico e filosofo inglese George Boole. Proprio in virtu dell'origine di I
~..,~-l( 1;~m";~'
'1-!,€,,""
'~,-"'.
~
',. ..' questa
".. ~
'
algebra, le reti in questione vengono usualmente dette reti logiche.
Le operazioni dell'algebra delle reti sono state gia introdotte al Capitola 1, M-
".~\tTt;·;:~I'
.(1,_'.".),"" ,,·1' '.-, .
," ,po if,'",'__:. sierne alle porte logiche fondamentali a esse corrispondenti. Nella stessa sede sono
:'~'';:;~ '1>:(,
.'~.';

' '"il'.It,. ;,-j~"! . . , ,- stati anche introdotti i concetti di rete combinatoria e sequenziale.
e' .,'-
..... """ r . 'J',,o.
I'" "",'
:i5;":~:',"" 1;" •
~:\'~'
"
.;;;»I!h ,1>: ,1'."1'< ' \
~l\i,~" IT;:",J •
. _~","t', ~-:,'.,
.t¥1!W "'+'J'iIt~~', ~
~~;~,~~ :,~:,~,;,
:$1"(
" '~~ .. '~'fJ\ A.I Proprieta dell'algebra delle reti
'~;'i@~""'-~
W,' " tf1~
':,-~.~'', .'
~~-' "<'. " . '
,".,
h-U",''''
"'!''''
I"~\'.
:'fl:"'~'".
';rf"";0' ~~\.,,<.r,
!"\X!:i;,j:;'l:~:~~'~.'1;·:,
, ••
Vengono ora date alcune importanti proprieta deU'algebral .
\ •

7';"4'-1':0
,"·~·;..,1·~~,
:. ' '. .",
-
'q~"''';'

.'<"._....'\~""'"
1;i;~,\~~:{
...
. ".;.;,,:,~: :!:'fS' ,1-,
iW,.~~i
1. Proprieta. eli idempotenza: I
[.r::-~,;";,t:,, ~;.,.:, I
..,.,. ',;<Fi'. \;"" ....
':."2i~"q,
··f"""..,'.' .""",.,'
",""'''C' I
x+x=x
7-;"'~;;' 'I;~
"i"J:t'..,;
~ .,(;;..,~
r." .,..
'~,~;;. x· x = x
....."."
,'.'!:(;:!"'.-'!;
v".'.. ..,
I • • ~, P
;'~~:~"\'
.'\l"1!i.'
\ -
.',~}~~} :.1,~1' ' Prova (per induzione perfetta):
.. ...,..-:,.,
~"< (0 'f ,
,?,,, ,4;
,r,'~""I"
'~-\'~'!'\'<:
,... !.\.-~; • •. , . .' ,<' .\.
..' \,ff.",
4' ._....'. ~.'..," 1+1=1 0+0=0 1·1 = 1 0-0 = 0
..
",",",t, ~.,'; ~, " .'
., ,.1+':11 ,;\'. ;/. :
"""""< '"" , ,'
""\' ~l!):r,r ""~(lt,""
,'~, I" ):C'

·-',f~~'£<~', l't*,.;~:
~.~". ~ ,. ~!' .
.... "

2. Proprieta distributiva: I'


;J'~rr:'}~i.
"';~ "....fiir,,~:\ ~

I
." -I_T'·. ~
"
•.
!:,:,._~\ ,,_. .-.t ...
"«,!,' ,,, ,'''l,(,'',
'·.I~''''',''' '\I!\~'"
lQuando e possibile, il modo sicuro per provare Ie proprieta. dell'eJgebra coosL,te nel ricorrere at
~ .. Jr.;;i~_ ~~ "'~;~'" metodo delPi71duzion~ perfetto) ovvero nell'effettuare tutte Ie pOl33ibili sostituziooi di 0 e 1 per Ie
,~<>.. ;>;--
-'C'!i"';' "..
.• fL • Ii. '"iI "."
I :l:fu,,':;' l:l;,li.\~:
variabili che compa.iono nelle espressioni.


518 Appendice A
I "':.
· .. ',a;i

, ,.,
_(',
" ". :
__. 'l;,t·~:. :
,.:,:.!.~
., _,".;,. _' I
-
,;-,,:5"1 .~ .
.~",

',; ••,'. I; '., ' ",,


. ~
,.,.-\

',"i'';~' ~." ,
x· (y + z) = (x . y) + (x· z) "' ..,l,ll
" ~, ~ ..
'~"'h'l
x + (y. z) = (x + y) . (x + z) " :j'1\ .
·'. . "
.,-,'.11.,
~ ....
::.. '; ~,,: .,.
".

Questa proprieta afferma che non solo i1 prodotto e distributivo' rispetto al- ....,~,rll· "~'.

.,..
'.J....
" ,
q'r~'ll
- Ia somma, rna che anche 1a somma e distributiva rispetto a1 prodotta. As- · " ...
""'11 '.i',,;'
sieme alla precedente 1 questa proprieta. marca una netta differenziazione rispetto " J ,l,i
· ·1' -,
.< •• , ' ''','
\ all' aritmetica. , .I')'" •

.:.;" ;~:JS 'r;":-,.


3. Proprieta associativa: ,,:.0:.... " .,....,
.. '''''~'~
.' . ,r ,.
, :.-' l,'!
: .'·~!i·t.
· ,.. .".
~'i,:'
1 x+(y+z) = (x+y)+z • ~ 'I

';·;..M/;I;
,
,', " ,

x·(y·z) = (x·y)·z .;::"}~J..".':


;' " ... ...,." ."
....
- 4. Proprieta cornmutativa:
""",,~
.~:t,l",
,>.,.
.• ,':~ .
.,~\ .. ,.j¥
., ".'j;'" ,>".
::};::\~~ ~:~,~,
";".\'''~:I "::
x+y=y+x "",. , ", '':' "'.r"
'x,y=y''X .~{:~..i; {~/
· ::.,~s--vc·,rr
';'; ~,s~·;", .:r.:,.~:
"t(!\"""11 ..""
.' • "1 ~"i ~ ,,;
5. Proprieta d.i assorbimento: ·'·'i..
\:·:'i;i
, ,.•, "., ,
,.\"'I
~!" .
· .' .~j'. " '
',' ;~.':',,~;.. ,:,;OJ
"/. . :.·t~:", ""~'
- X+X'y:::;:x
(x+y)·x=x
"'\""'1, ,•
.....
· ','",,/:",.<.;1, .~.:
·.··,;:;u
""-..,,''.t'. :r.. ·iI··
· :.:,)'-fi .~' .
., .".~. 't·
- Prova: x + x . Y = x . 1 + x . Y = x . (J + y) = x . 1 = x
">'. ~i ..,:, :if~
?"/f,i~~; -f;~
. H"k," ""i~
6. Se x e una variabile booleana sana valide: .<- ·.,';;;'-'"1If ."',
':;'j

I
c!!,
·
• J';... '
·.·: t>t;;.· ~~:l.
., .. ,.... ...~,~
-";W-
"''''-1' ;:;o!
~."..

O+x=x ,':l~':';
';~'''; ,~,
,I;: '.-<
'·or
1· x = x ·,.,lVif: ;")'
- · ";:~i'" , ",,,,.
;. .. ,.; " :,~ .. .
I
• ',.. j " T
< iN'to..,"
.:....... ~~. ":=
7. Valgono Ie seguenti relazioni: ........ ':r.~".
"''"''."'1'
"'~.'" ~J , •.,,
•, t.i:." l,..
'.rl." lr4!1'
'" ,4
xx = 0 ~
.' ~~
,'\'", ',""
,~

· '1.101'
.' , ":'~' ,"!
.-
x+x=l
j ,; ..:";'11' ';:
":~'l::' 'l;'
~. \~~~
""~~"', ...•.."' ., ,,". ,;..
8. Doppia negazione: '
· ' ~,
:' "<'''':' ,~i
.-,· '$'
...•'

'.',", .1\
..
\~
',":
.1.
'~'
' ....
"~

x=x " ~,...." i~q


"". ,r,\.~,; ''''
-:"""'; .,f.
I,,........
,." "'t,~, '4:
9. Elementi forzanti delle due operazioni AND e OR: ..
."~'.'"
"
"::'~;'
... .
~; ~; ,.
''''' ,
•.',l.';'"
','
.
".<)" ..:
x+l=l ,.. ~ ,,~l:. (~'
II
x· 0 = 0 ." ':'
'.'
,j,~': .
~
:''.
~' ... , •., "
" ,. . 1..
,'~".'

"'. . . ... . . ,
,". ;.'):. ',
10. Teorema di De Morgan: x '-.'.,- ':J
....
· ,"'0:, ~t., '.,,
,,:.:,,1'" '.'!l
\ x+Y=X"y
,.,:,:,,(,
"'.
" ',' "
'"

'., ::~, ::. ;i


'.
,j" ','.•.•, ,;
x·y=x+y .,.""'~ ..
q, .' ""
l :'\~~;:~r:
- "'!t-,,1 "" .;
. ,.• ·I
j ,.C".:,'
".~~
~''I,~
~ ~~
.•.
:,,,-..,"
"
· ,'"' ,'" '~
,"
Sistemi digita,1i 519

,
n teorema di De Morgan per due variabili si dimostra per induzione perfetta e
vale a,nche nel caso generale di n variabili.

Si osservi che tutti i postulati e tutte Ie proprieta fin qui enunciati sana stati
dati in coppia. Per ciascuna coppia si passa dall'una all'altra r~gola se si scambiano
tra lora le operazioni di somma e prodotto e gli 1 con gli O. E questa il principio di
dualita. Esso ci permette di affermare che trovata una rego1a esiste 1a duale 2 •
-
,.... , .
E gia stato implicitamente affermato che ai tre operatori dell'algebra corrispondono
',' Ie tre porte fondamentali (AND, OR, NOT). Dunque ogni espressione algebrica puo
.
essere tra.sformata in uno schema e viceversa. n passaggio da.lla rappresentazione
;~'
. algebrica a quella schematica e banale: basta sostituire gli operatori algebrici con Ie
. corrispondenti porte, prendendo variabili, costanti ed espressioni come ingressifuscite
...
¥
. negli schemi. Per esempio 1a proprieta associativa puo essere espressa in modo schema-
., .,'" tico come in FiguraA.l. Altrettanto ovvio risu1ta il passaggio dalla rappresentazione
: .!
''
" schematica a queUa algebrica.
/\
r.
:1 '

~=0--01­
,.
;: ..
I~'
..
'~'
J;:,;'
')"
•.
<-> r 01---
··.:..
:.._

.'
·... "-·
~ ;,'
~;'i' '
~=C0-0~- <-> ~ D>---
~~," Figura A.I Rappresentazione schematica della proprieta. associativa.
j :~:
';,'
.
..:i:'
".:
~.\~.
!l•. , ~
<"."
r.... ','
',""."
T
..:It'··
" )., .
-
t

=:,;",
~~",
.',
,,,,, .
' A.2 Forme canoniche
-.. ··
4f-r
~,".
"1'"
!(",'
Sia data una funzione in forma tabellare e ci si ponga il problema di trovare per
-. \.
:'\: essa un'espressione algebrica. Partendo dalla tabella di verita risulta sempre possibile
'~)~:'
.'
".... -;,. ..
giungere alle cosiddette forme canoniche.
,:"
"
i'."
.",.,...\ '
~i" ,
:'r '. •
q'~'
f.·,.
'':;' A.2.1 Prima forma canonica

. '''.. .
. '"
:r'-
't,· .
.,,~

, Data una funzione f dellen variabili (Xl ,:1:2, ... ,X n ), 1a prima forma canonica si ottiene
:'~~,: come somma di un numero di termini pa.ri al numero di righe in cui 1a funzione vale
':.. .
.:''.:.
.,
1, ciascuno dei quali e costituito da! prodotto di tutte Ie variabili (Xl,X2, ... ,x n ); nel
"i'"
1'" prodotto, ciascuna variabile appare in forma diretta 0 comp1ementata a seconda del
,""<
.' fatto che, sulla corrispondente riga Sil cui la funzione vale I, la variabile valga 1 0 O.
,'.,
J••.•
,,~. . Un tale termine viene denominato Prodotto fondamentale.
li'J'~'
'.j .
,
"i~oJ.
;~. I,' \
".. •
~.~>" . 2Si noti che 1a. proprieta 8 e autoduale.
~,J.'
;,,~. _,
Ii"o.,.
~.' ~.'"
'......
" '~"
~.
"
"'" ..
{{fli'li
'

'~
520 Appendice A 'Jl'~ .,
· "~ ',i'!"', ;
-,"'Ic;i:!\ :
,..•.f::' .
"/1'1,'( \
""~ "
':'.~'~~;~
Si fa.ccia riferimento alIa funzione di Tabella A.I. La funzione
. vale 1 sulla terza , ... ':J,,~, ·
quarta, settima e ottava riga (Ie righe corrispondono aHa numerazione 2, 3, 6 e 7). La :, ~+~~;\
'of,{
,>
prima forma canonica e: . ~'\}( .
'. ,':~1:':~
".•"'1"'; ..
,:l;'Jf-" "
/(X1,X2,X3):::: Xl' X2' X3 + Xl' X2' X3 + Xl' X2' X3 + Xl' X2' X3 ·~::,:~';~:t '
/:1_"'" :
;'::~:;f; ~
Sinteticamente si puo scrivere: y = E 3 (2,3,6 7). ""',
.,',''~"
l
··
•<
,.
'.I..:~,'5

"':~~':'l
'-~'~ .
"

X, X, X3 I Y ~ ..,
·'ii,;:,~.;t
-'..;.,,"
",":.-.
0 0 0 ,'
• ." <-
~,:;.
'. "'~ '
0 0 1 0
0 1 0 1
',;?!r
;;:t(~i'.
0 I I I '..'L_ . ...,it
,t.,~·
.~1'
1 0 0 0 '~"'. ,:
' •.,<,.'i"
,·;'J';'f;
I 0 I 0 :.:;;~
, .J,:' X'I"
",' v'~ ,"
1 I 0 1 "';'..:';;'~
.,.,,~!
1 1 I 1 '. 'l'~~"·. ~'
,'" :, ...
, '"",,~
r\.:!i'
Tabella A.I Esempio di tabella di verita. per una fUDzione di tre variabili, V = !(Xl,X2,X3). ,·:r'~~f.

Sulle tabelle di verita.le configurazioni delle variabili SODO riportate ordinatamente per riga. :";:(;{:
'."""'~'
Nel caso specifico l si hanno 8 righe, numerate da 0 a 23 - 1 = 7. """.
• • '10,"",
.'...;,;(I
"

:.: "J~l. ",.j


"",.,.:
~, .... :~,Ji,
.
· .•
";,1;\:<''
""", '1:.. ~~ •
.' ·....':£!"'"
' '
'.'~ . '.
'. ·:1...- ."
.... ,\(,':0
:.' ,r....f:"~,.
·:.:','"F",:;:.
..... " ..,
, ' .... ,-
". .-u,~ ..
..... '.."!~,
A.2.2 Seconda forma canonica ·, ;~~'':I~~
.~I..
· • ,If,;
.':"'"

Data una funzione delle n variabili (Xl,X2," . ,x n ), la seconda forma canonica si ottiene ·-.:\.;;,:,I~,
,"
:,,,,-,,,,<;,
., ' ....
come prodotto di un numero di termini pari al numero di righe in cui la funzione vale .1:"'<'1
.'..•~" ,'1.
... '
0, ciascuno dei quali e costituito dalla somma di tutte Ie variabili (X1,X2, ... ,x n ), in , "~J0,:9~
<' ·'·Y!j!!!<'
• '. '''''''
forma diretta 0 complementata a seeonda del fatto ehe nella corrispondente riga Stl "1','
'.
"1?1:'
,',"
.

cui 1a funzione vale 0 1a variabile valga 0 0 1. I termini della somma vengono detti ·?!.~'ij
":::;;"'-';.',
Somme fondamentali. ,:.,,,\>,'~:).
~1l- .if
La funzione logica rappresentata in Tabella A.l ha dunque questa forma canonica: '. ""1"·
'\'~",:,
....
"",'.il)"
':.;.....
y = (x, + x, + X3) . (Xl + X, + X3) . (X, + X, + X3) . (Xl + X, + X3) = n3(O,1,4,5) ,,.-....... J'~.,
, <,,:y.
.. ."
",-'i

".>;.,',1
":'1''
;,~~.";
'~: -7
Le forme canoniche danno luogo a reti a due livelli. Per la Somma di Prodotti .":. "~
'~.,\:":.

(SP) il livello di uscita e una porta OR, illivello di ingresso e costituito di sole porte "\"';'
'--,. 'ii
'~'''':''
AND i cui ingressi possono ancbe essere in forma complementata. Per il Prodotto di '.'.' ,.~
",.\;;.

Somme (PS) iI Uvello di uscita e una porta AND, il Hvello di ingresso e di sole porte ;:,...
,--:" "-"
.• '...
'.)~"\
OR'. ,. :,\"!
'.":
'." v~·
.. •'.... ~
.
'~' \,l;\\~
·.''''~.
"'':''
, .~",
3Si noti che, nel congiderare Ie forme SP e PS come reti a due livelli, non gi tiene canto degli ·,"'-'
"..,.
.

eventuali negatori in ingres.so. Cib e del tutto ragionevole, in quanta, nella pratica dei gistemi ,:;l,•.:
;~,l';:
,.,~l·
digitali, i segnali sana normalmente disponibili sia in forma diretta. che complementata. ,. :', ""1: I
,,~.1f'
, ,.• f,j} ~
• 1 ";'~
',~;.,l.:...
, ,!I~.
~ ...
".'.', ,
';~.i',;:.,; 1
...~-t;~~,~ •... Sistemi digitali 521
,::; . "
;~. ',,\;.,1
:,,,;;/
.~N;i .
\;';',;1,'
" "" \
~¥~g~'< Le forme canoniche non hanno tuttavia alcuna utilita pratiea. Interessa infatti
·1·' ,
>,:..:::' ricercare espressioni di una data funzione che soddisfino a criteri di casto minimo (per


"',..
..~': .. i esempio minor numero di operateri).
.,..." \' ,
.!,;2,:1.·'
";'"...;.
'~~;<. :, •
:", ':';
~~?
..• ,. , A.3 Minimizzazione
""",
,."
',., ...., .
,;:',',;
',~'f.,."
..•.-'.'1 .... ,
"
\.
,".!:;....,.'~:;:', . Nel seguito si fad riferimento solo aIle espressioni in forma SP4.
,..,~,.,
-'l •• ,~.· .•
Si supponga di avere l'espressione:

I.
.. ' . ".

'."~"
'~":'~.l' ':~
.. ,, Aa+Aa (A. I)
'1;~~;~: ': dove A e un qualsiasi prodotto di termini e a e una variabile booteanaj si puo
i;::';:~ ..;
-e ~., I,~
~n ...'" raccogliere A a fattor coroune, ottenendo:
";'~""""I'
'n"'....
,-":,,,,,,,1.: '
'"."..:.r..'.~:'.
'·o?;',.:.t--;;l·
",.l.\,
i,').',o',,·,
:(~'§jt/;:
Aa + Aa = A(a + a) = A-I = A I.
.,or,"' ••.•, Si dice che 1e espressioni Aa e Aa sono adiacenti, perche Ie con£gurazioni delle
,•..'.•.-,
",1,'..=~.•. ~ •
"""~I"
""',t variabili che Ie individuano hanna distanza unitaria, ovvero differiscono solo per 1a
'1);.::,'-
,:,,,!.;~., .. variabile ehe compare in forma diretta e in forma complementata. La minimizzazione
:~,"'tf,:'
~1,l.,..."" delle funzioni SP consiste nell'individuazione delle configurazioni adiacenti e ~ell'ap­
: (\<I:"
'. -.'
:.. ",.~:,f, plicazione sistematica della precedente proprieta. Le mappe di Karnaugh [LP86],
"~;;;i:\i.,·.{,
..x.",'~,."
,'",. ' [Koh88] sono 10 strumento normalrnente usato quando il numero delle variabili non e
' -<'-','51'1'"
''-':~''-',
••:...,
'.~
. ~\"
,'" .':'.,~
t'.l'\'I\."I
....,,:.r.I •. "
;;..;;.<":,1..
0 ",~:I' .... ,
. ".,,~~'"
. ~'lt,J,:.I,.
.
,
superiore a 5..
Le rnappe di Karnaugh hanno queste proprieta: I
-
,-,,, ......
. ·"'O;r
,
~-l/"
. .•. '
·''"''r..,:,:'·
,,'
• una funzione booleana di n variabili
mappa di Karnaugh di ordine n;
/(X1,X2, ... ,x n ) viene rappresentata su una
I
~ '.tf)~-*;
#.)1%,.
.. I.
; .l~<.' n
"';.:~.,
, .'~i,(t;~ • una mappa di ordine n contiene 2 celle;
", F'~;·
~' , -
• Ie coordinate delle 2n celie corrispondono alle 2" possibili configurazioni delle n
., -""i'''''
1 ,.)'<"'....... :
.:' "W"'~'
">,N'"
~;.a:.::"":1
<'. 'Z~~
'' '.....':\o.J
' .."':!j
variabilij I.
.'"
"' '.'~".
,
",.",

j ~~Ij;.::::
"

',; 'J)~~"'"
• sulla mappa (di ordine n) I.e celIe sono disposte in modo tale per cui ogni cella e
.~ .J:~~\ adiaeente a n eeIlej
f! ~-·s.;.l!
"·, ,if;....,.,. II.
.. ~~~;.1:,
.. .. ,....... ".'
". ".;"~;J',."
• su una mappa di ordine n si definisce sottoc'Ubo (0 sottomappa) di ordine m,
"~f.\I'.,
i, .,~~..... con m < n l un insieme di 2m celie tale per cui ciascuna casella del sottocubo e
,' '~""·Zi.
........, ;.", '
"\ "'j ... ' "
,-. ;, adiacente a m easelle del sottocubo stesso; -
1,,":' :•.'}.
'' :Q''''''~
;. ~~,i:lr.·.
7:{",:::,~' • se su tutte le celle di un sottocubo di ordine m 1a funzione vale 1, il contributo
I
~ "~ 'I~"
complessivo delle 2m celie e date dal prodotto delle (n'- m) variabili che non
...! . -
..,.; J
'~ -""l'<\,
, ..,...""
',:
~,. .:~" ,~:
.: ;.;"'':i
.;; :;';;t"
A',','t", variano nel sottocubo. Nel prodotto la variabile compare in forma diretta se nel
sottocubo vale 1, in forma complementata se oel sottocubo vale O.
-
....
",
·"",11.:.,
"··i<i'~ r
\'
.' "'c.r"i·'-'...
!..' .. ,,~,:;.
"'''-',
',:•.,:1.' [ ..
·" ~;"' ...~ .
~,
~; :~~'" ~;;':
.
'~' '<,~
.'
,~...
.'~' "fi' .",
·,·f'
', ".
.. ,.'
--, ""
'..... , ., .. \ f'
4Fino a questo punto nella scrivere Ie espreSllioni logiche :!,Ii e sempre usato it i5imbolo "." p~r
:,.... "!'~' " indicare il prodotto logico. Da questa momenta, a meno di non generare arnbiguiU., il segno di
:{~
·x"..· .1"~r~l
o,.::.-c:' prodotto vena omesso.
.,~"
I;,~!.~,:. ),.'1' 'S
~""."'ll-
~'~ ""~'
.,. '-'flIk.
.
,11

1
..', '.
"""
.'.'"
ffiij

I 522 Appendice A
<:~X("",::~;.
'. ' '{-/"i" ~ ·i~f1
:, .:.,ii;:':""".liD :~;t
..
: ~~ :.:.......
''''~
'1' '•

'."'i~,~ -,,::J
- - - -- -- - .
x ~'\'j{if.1 ,·:.,
'" . ""'~ ",'
", "''',,, c.:
\ a I I lie I I 1 a I 1 I I
"'".'. ,.~;',
· \",:':'
", t,-,'I;!. ...
,.a.;_.l.'.':!.

/iA!:·. -"'~
I I I 1 I 1 · " ... ~~: .'l""
i<~;::'~i :.;;
- a) l(x,y,z)= yi+yz+iy b) l(x,y,z)= x+y
,-'- .. ". ,-.,,,
'. "
"
, 'h~':''i -'~I''
~'<'.

'. ::b;.~~ i,~


- Figura A.2 Esempio di due diverse caperture di un stessa funzione. La. copertura di destra,
essendo formata. da. sottocubi piu ampi, fornisce 1a minima. espressione SP. . ..
"'.-,,' "J'
,".,:.;;.~
<~
".,.
..
.. :;2;1~l~f ';;
- ,I.",?
• ~--,..,.. "'I;
· f",.;.,~,
• • C·'
It,
"

- Si definisce copertura della funzione un insieme di sottocubi tale da coprire tutti


gli 1 della funzione stessa. La rninimizzazione cansiste dunque nel trovare una coper- .:\~!l~;~'j~
·r~".~..- '.''
-.>.l~;.{I ~.
lura fermata da un insieme di sottocubi, ciascuno dei quali sia il piu ampio possibile
- e non sia contenuto in altri sottocubi.
, c_ '~'-....""
..
.. j ':"~,)i(' .,}.
,,," '.. "

I
"
.. ;,:';":;'i'", ··"

Come esempio si consideri 1a funzione eli tre variahili riportate nelle mappe di '"\",,,..-.. :"
,.....:.;;..
';~.- ~~~r.., "w ·t·
~

- FiguraA.2. Evidentemente sia l'espressione a) sia l'espressione b) rappresentano la


~i~O:--~- ,-,,
••.••.•. ,.
.".r.<' • ,1
'~.

.. funzione data. La seconda , castruita seguendo i1 criterio di espandere per _quante ;: ~·':;.~t,~}'~~
possibile i sottocubi di copertura degli 1, costituisce Pespressione minima. ';;:;2~ 3
- I Vale solo la pena di atcennare al fatto che per dualita) Ie mappe di Karnaugh si
• i
.:« ~T
· ;';"~;:, ·1~
i ~'."'"
.;; ~.~. ..."
~ "~;i

"
possono impiegare anche per minimizzare Ie funzioni in forma di Prodotti di Somme \.,... '> .'
· '. ;"'•• <,!'~ . i:
- (PS). A tal fine, si raggruppano Ie caselle contenenti it valore 0 e si asseda a ogni •~.: .'(j'?-.p, ,~
~' ~:' !::-.' .i;,.{
"'>,r·~·,
raggruppamento la somma delle variabili che non variano suI raggruppamento , pren-
dendole in forma complementata se appaiono come 1 nel raggruppamento. .;,;: {~fi'~~:. '~
,:'':;.',';~f{
-'''''.• ~"" ""
.:-.~ ;.;:o;:.y ~:

- ,. ,, ""oj,..:;";,
'" :,'''
. •e';';'_
'". ,,"',"-' b;.~·:

I A.4 Altri operatori e altri tipi di porta ,,:,·~t'"~·~ :~,


'~";~.l~
,.'~':- "l
J' . <••
• ., • • > -
.........,,"" ''
,'!:.'r,,;~ ~
<,. ..
}:,
~.

".' "'~';'<'. ,~
e
Mediante il teorema di De Morgan possibile dimostrare che qualsiasi espressione 'I '."'''1''':.'-,
d. ~':1'.'':
I' ',~-;w,
·'

I logica puo essere espressa tramite due soli tipi di operatorij infatti) somma e prodotto
logico possono essere decomposti nel seguente modo: .
::~i.'~ :~~: 1
,:<~~~
''', ., ,1'.,
:'", .';', ';: '
'
:..",,'."":'l: ''v
,."-,,',,,,',.) i,
o

x+y=x+y=x'y '.'.-1\\:,:.;,>:

- x'y=x'y=x+y
~f"
.,',. :' .'-',.-;
..; •
-
I
.. , "
.1' .:... ,.;_ . \

In cendusionc, mediante Ie sale due operazioni di prodotto e complementazione) op- ~~·~~'\\;t '
pure tramite Ie sole due operazioni di somma e complementazione, si in grade di e :;\'.\';~:;
" "" ..-...., '
:
··~;:.,.H·.c· "
realizzare qualsiasi espressione. Formalmente, i precedenti concetti si esprimono nel · 'i._,_~;,:~ ·
- modo seguente:
,"" '
,.'"'i~--'~'
,.,>,'.":' :'
.,,',.1',"
'~' \.-=:.;, ;
• l'insieme degli operatori algebrici {+, ',-} e funzionalmente ridondantej /;~~-~. ~
., ..:!..". "
"':~',-.' '
.-.':-::;;
. {", ,
• l'insieme {+~} e l'insieme {. )-} sono funzionalmente completi.
.'i'::'.~:~ ;

I .". ;.-:-;",
.:..-';~-

., I ~': :'~:;:: :
,.-"':" ,
,'
AA.l NAND e NOR .-:'. ;:~!, ,

;~~t;
'./'. :i;'.. ,
'''~'>':
~ ...:,-;;
Introduciamo ora due ulteriori operatori funzionalmente completi: l'operatore NAND ".:.;.~~
.:..;.;~c
e I'operatore NOR. ..:;(~~;
"'." i:f'
·-1 $.:~,,-,::;,,
, ""~ .:

I ,) 'i'~~,:'"
'..~~ !t'.c".,:!\
'" '"",,~,
1'".,'"'. .
."
1' •
~

"j ";.
~''.
'•• Sistemi digitali 523
.ti;. :.
1';.;'.'
t;~ .'
.. ;:,
J').,
,:r" L)operatore NAND consiste nella complementazione del prodotto e si indica
con una harra verticale tra gli operandi (Xl I X2), mentre 1a porta NAND si disegna
'",
:""
,'
;,'"
.. r.
.~•..
giustapponendo it cerchietto di negazione al simbolo della porta AND.
~i I·...
"'" ' L'operatore NOR consiste nella complementazione della somma e si indica con
;".!.;i!,
,
'':'~;
una freccia verticale rivo1ta versa il basso tra gli operandi (Xl.!. X2), mentre 1a porta
",. NOR si disegna giustappooendo il cerchietto di oegazione al simbolo della porta OR,
~':
. ~.. " In FiguraA.3 vengono riportate tabelle di verita e simboli corrispondenti ai due
,..t .~

;;]~' operatori .
, .ro)·
;. -
""', . ..

~":,,, XI XI

D D
y y
X2 X2
'''"''
.~'1/
",-, ' •
}.'\:'i.'),.'
X, x, I y X, x, I y
" ,-, "
"rV~.
1
"n
·~,· "
w.t;,!
,> •.,.
0 1 1 0 1 0
.l<I;'"
1.0: ." 1 0 1 1 0 0
~r~ry·' I 1 0 1 1 0
3lt1
T; .
;i!i.'-
~.,~,7:,
Figura A.3 Simboli delle porte NAND e del NOR e relative tabelle di verita..
"hr""
",,::_:,.
'(;- -
i:lii,lit '.-,.
~,.'"II
;;i~'(-t'"
{;!Iii.
Le porte NAND e NOR permettono di realizzare qualunque funzione logica uti-
~~~i(~:, lizzando un solo tipo di porta, in quanto sia NAND che NOR sono funzionalmente
{~i''{·
""".11
:.l'~·1 completi, come si mostra facilmente con il teorema d.i De Morgan:
;:""i';,
~.." .,'
:~t.i!·":·'
, ~,1:. Complementazione
:v,,:;,r,.
.,...l!; • '.
,~~:
.;'<"~ x=xx=x!x
'.\(0';' '.
~'<:t·:, ,
~tt..~,":;"
,
'''~it'
lo;i ,
:;'I' ,' x=x+x=x.!.x
1~~,.'
'~ii~ '. Somma
o.<;/CoO;'
'~'''~'
v,.,.. ,,',; • Xl + X2 = Xl +-x-i = XlX2 = (Xli xz)
,·'"!'..:i:;" ..
J_.,.
l!-r
-,·.v .
"'0' Xl + X, =, X, + X, = (Xl. 'x,) = (Xl t ",) + (Xl. X,) = (Xl. X,) • (Xl. X,)
\:~:;' •

';~i~<:
:"rF:
hi"!' ,
Prodotto
"'''F' . ---_.
·:.,'ill~"·
'i" '~,
X, X, = XIX' = (Xl I X2) = (XI I X,)(X, I X,) = (Xl I X2) I (Xl I X2)
','J'~
'''<','1' '
:.,~,
;'.l,.~.",

~j:~:':~ .'
X1X2 = XIXZ = Xl +-X2 ;:; (Xl +X2)
"~;r:
'~'l' Le precedenti espressioni vengono riportate in forma schematica in FiguraA.4.
,,~,,:'
",,',
;1}~",:. Si osservi che per gli operatori NAND e NOR non vale la proprieta. a5sociativa5 .
;.,~:.
+;; Tenuto conto di questo ratto, l'uso dei due operatori risulta piuttosto ostico. Per
:':'j~lt,; questa motivo, anche quando si vuole arrivare a reti con un solo operatore, si preferisce
,::11'-'} ragionare in termini di AND) OR e NOT ed effettuare la trasformazione in rete di
'b '
,ti!:~
soli NAND (NOR) come ultimo passo.
:'~~;;"~'
,?:'!if,\w.
i~,~"
,.•~t:.,. '
<~'I\ ~.'
·~ti . 5Per esempio per il NAND: albic = abc = ii+ Ii +c # (alb) Ie = (ab)e= ab + c
'~i1!l.
"~',
""' ,"
'';1 ,':'
" " ",
,·l,Jl;·,'
i.'~t;"
,~,
'. "

.....
524 Appendice A

x cD x x cD x (

xl )
xl+x2 xl+x2
x2

.,
xl
x2
xlx2 xlx2 :', )
Gj;: .
Figura A.4 Costruzione delle operazioni di NOT, OR e AND dalle porte NAND e NOR. !;l;~t
~J!YL:' ,

AA.2 Reti con sole porte NAND 0 sole porte NOR ;.::H~'~:,;
-.j";iff!tiY" :
"\'i;j",~,, ·
. _, '-"-'"'~"

n passaggio da espressioni in formaSP (PS) a reti NAND (NOR) risulta immediato


tramite il teorema di De Morgan, come illustrato dai due esempi che seguono.
:.~-::~~_J:~1~ i
-':~~~;r5~: .i
= ab + cd = ab + cd = (ab) (cd) = (alb)l(c!d).:::,:,,;. '
z
-;,,'gi'~0:;,-
z = (a + b)(c + d) = (a + b)(c + d) = (a +b) + (c + d) = (a P) .j. (d d) ":X:},. ,
-""::'-"(':'"

'-/i:i~{M' :
Si Dati che per la forma SP tutto 51 riduce a sostituire gli operatori AND e OR ,>;iAlf4f:
con NAND. Per la forma PS 1 medesimi operatori vengono sostituiti con NOR. Si _/~:~i~;~<,::
. Ia F'19ura A .5.
veda, per esemplO -::i?jM{;~ttf
"-
".. ":'.' ,."-, ';-',. '.~
"\'V''''';:;;

A :d;t,;ff@~¥; ,
A , ,:·i'~,r":i.':':
B

L/
z JL
c " ;:r
. ,-/'~"
.... '" "'"
': ;)":K~ifW .
,:~:i:;.~;@~Jt '
-".~,.,.,-

(a,l Rete di partenza


'"
(b) Rete equivalente
",- ~::~1f~1:: ~
":::~~t~'r A
"~'d"N;:', '
Figura A.S Passaggio da. rete SP a. rete NAND. In questa caso il passaggio richiede solo la .h'-~1;\);';,
~,. '."
;
sostituzione ill porle AND e OR con porte NAND.
':-;_:iJ[&~i- ~
,; ~~,~":,,,"', '
, -~""":"l;:'
"",-",,;,?,"'
'.;I.:.{,\,,:, ••,' ;
.. i':"''''.tP;
",~::I",,;,
..-c;""c"",':
""d\"
AA.3 Una tecnica grafica per la trasformazione r

'"

Un modo per passare da reti AND lOR a reti NAND/NOR si basa su di un artificio
grafico di immediata applicazione, derivante da! teorema di De Morgan, per il Quale
Ie porte NAND e NOR possono essere anche rappresentate can i simboli alternativi
di Figura A.5.
Basandosi su questa rappresentazione alternativa, si possono aggiustare i pallini'
di complementazione sulle reti AND/OR, in modo da far comparire Ie porte NAND
o NOR. La tecnica viene ora mostrata in riferimento alIa rete di Fig1lraA.7a. n
procedimento e in due passi: -. ',.,,,!.
,.' "<
_ ,~.h(
."""", ,
,:f{J'~'" l
': ,::\;~~,~~ J
)
Sistemi digitali 525
i'~:;;;~,-
-"V.·". J
(;H~:!';­
.
j,
::'~::~:
- .-'.",'-
t=[)-c NAND ~ [)-c
)i~:- ,
.j;:,::
...."" '
-'-,
,-

• ;,_"
..
0."
A
B D>-c NOR ~ L)-c-c
I.
'e·::';,'
".'" Figura A.6 Simboli equivalenti per Ie porte NAND e NOR
)'~:fl;: ).
.::{J!~~ a) si inseriscono, sui rami che collegano Ie uscite delle porte AND can gli ingressi
~'~;:" della porta OR, coppie di negatori ottenendo la rete di FiguraA.7b.
,./{:.c::. •
b) si sostituisce il simbolo della porta di uscita can queUo usuale del NAND otte-
;t{;~lL nendo la rete di FiguraA.7c.
:~!i§~~:~~,
·'.1,,_.""~.,,·
-, """.,' ,

il;\tr::· ,• ].
, ,• , •, ,
ijB'::';:' , ,
'.";C.;. i, =a---Jf •, •
,~ J ,
-';<i':-;
, ,---' h , ).
,'~: ..
-"~'", .. ,-
a) Rete di partenza b) lnseritnento negatori c) Rete di NAND equivalente
:'fj\:';[
:)!Jif;," Figura, A.7 Passaggio da rete SP a rete di NAND.
:;~i:,';-" L
~~!~;~::,:
'''''"'J'~'--'-
.-'.,', ,. :. " I
,; ,i2:~::t:' "
:'¥)'1'J"

I.
--i""".,-,
. -,,-:;..
AAA XOR e NXOR
.-

.';~;;Fi;<"
'~~f~~\:'i:
~,:~:,;:~~, _ L'operatore XOR e il suo negate NXOR sono molto utilizzati nella pratica per snellire
A~~~G.-,· la rapprese,ntazione algebrica e grafica di funzioni logiche. I simboli usati per queste
'-~i:~~',;' ~ porte e Ie relative tabelle di verita sono riportati in FiguraA.8.
;:!,,-I;!:,:
"e,., -
Si nati che 10 XOR - OR esclusivo - dei due operandi Xl e X2 e vero se e solo Be
~~~~:;.-
'O,\:fi;:-
Xl i- .1:2· In termini algebrici esso viene cosl definito: ..
;-~,':'j­
,:"j,i,'
;::''k..' y =::: .1:1 X 2 + X1X2 = Xl E9 X2
)
~\;'';':'
,,,.:,,,
-..~..,~,,,
,_~_.!'.' .
'
~~ )~ ~~ )[>-r- ).
X, X, Iy x, x2I y
1
0 1 1 0 1 0
1
1
0
1
1
0
1
1
0 0
1 1
j-
<',.-- Figura A.8 Simboli delle porte XOR e NXOR e relative tabelle.di verita.
"'_'li" :"
,."l;_
l':~t'-~- ).
Jl~~~~'
,; :ql: {,~: "
,J,;"';,,,'
:;:~ :::~i" :
,o"~.
. • .,'""..<
-~
. "• •
"'-'::lll','-'
526 Appendice A '~~i;o~' n~~
I • " "
',.
.~)"

':;".;::,~. (,~:,
'~~";""-
., \£~;.; ';:~'/
e··"
.,.Co

:,01';.·

~,,:.+tJ Fr.:':
- Per l'operatore XOR e valida la proprieta. associativa. La FiguraA.9 riporta la ":~";'~"" :,;;
I
"
'I" .'1', ..,.
costruzione dell'operatore XOR in termini di AND, OR, NOT e'in termini di sole : '·r,'},:, i:':'~;
-"",..'ii""
'. ,q",-.
porte NAND. Vale la pena di osservare che esistono integrati contenenti direttamente ":~. ~~,.

sale porte XOR. :".')Jg ~~f:


",/:r,;'\~i ;.:-~.:
...... '~.

~:;~;~.:. ;i'~J
- ':'1"="" . ',,=
- \ • • "-., :':,:7, ';-':"
. !"".' " ,.
",.",,-,L_ ,-.
, , ·,(. '~:1.·i; '~{,
- ,
. .,::'~~~- <~::
,." "'"
b b
'- ,': ),r:,~i '~}"
\':' 'ii--'- :.• ;,
,'-'\',.. ,., '-
./ ',. ··...,ii:.'4.! ,,,:-'
""'~'-' ·.... ":
Figura A.9 Realizzazione,di XOR come rete SP e corrispondente rete di soli NAND. :. ;~',~i~i\' .,,~;
~., ~r;;;<.i'1:i. >'~"
, ..;.'
- , '~".,..
,.,l,."
>;~~:~::;t
-.~'.
'~.,.,",
",1' \."",
.. )
·'. ·~bl··" -~"
- In FiguraA.lO viene riportata la realizzazione ottima in termini di soli NAND,
'~']Ill~~C :'i:.'
• '. "ii';I£'~ <"'~'
· "~:n,"'~~' :,~'
'.' ..,"'~\" ,.,10
,'1,'. ~., ,~,
.., ;,,_,'.4,'<,:"
,y..,. I"""1
- ."'.' ""'l"""" I

::;~;!;~~1~~~t
I •
I

....-.(~~I. 1;••.'
• ',_ , ..".c . ..
',,;·"~1b·! <~x.
"...
"",'" ~,,"
... ., ""'~'.,
..... " , .. , ..~ .!,...
••.• '-<i: ,•• ;-:0
r.c
.
",· ',";,,;r,,"
--~(""""~~
"''';
-'.'. >'........- .
, "-:;:

I
.1.;..""",;-;,
, ,
, '•• -" '. ,,I;"c' ;'C"1
"'
: •. '-
,.,'.:~"..,'(,<" ,.·,l
..' ,J
- ,>"".:~,.},
- Figura A.IO Realizzazione ottima di XOR come rete di soli NAND. ,~
',': ":~t)-~,,, - ,'".
.~.-,".,.~,
•• ",.-,", •• ~
,~",.,;.;<1~' .;.
'-~::'£.," ..-.
..'!..(.~.".... 'i"'
.' ""-.,n:··' c·."
.;: r..."c-I':,·. s.~"

I L'operatore NXOR - identita - da. risultato vera se e solo se Xl = X2. In termini


-,
;.'~::~tg
'..
'·_,·:t~·"'i "'

""'>"'1:"
~~,
,.
"'~'. ,.l.
"'J;'"'" .~:~.
~ .,~",,-.,
',~
;,r
algebrici esso viene cosl definito: ""1'!~i:~; ~.~
'., '1.~',,"·"'--<
- , " ' , ..-0'

r:"I " '0""" "", '~~'


,.-"
_.''

I '"
....~"··~·-··,·
~~
. . ._",
'~I:...;.. ~: ",
y= Xl X2 + XIX2 = Xl _ X2 : :"j
,'r"'''''' :''
~"~""l~ ",!
.:':,;ji.,:~\'.li i".:
• ..." --:. 0
~ ~l:i!:JU.; "it
';:~'·~~:t :~
- "i
, l~,,-~ ..

I A.5 Esempi di reti combinatorie


",<;;~~ }i
",j~i~r~;
·,:, .,..-,
~
"" ,.,{~,~
,.•·'It.Y'£''
""",
'
:~
....,.'" ,. ~,~ ".
-~
..
Alcune reti combinatorie notevoli (selettori, decodificatori ece.) sono state presentate ~~~}jJr~i
'nel capitola di introduzione (efr. 1.8.2). Vengono qui illustrate a.ltre reti di interesse. .~:l}~l~}~~t
,,', ,.~~.,.,.".""
,,..,,. -,j
~·rl!'.t<';.i'~ '.
'''~",:'.~j'1o:"., "'
.};:.o,:-;:~> ii
• r._
:,:.j:j~'.:!.~:"1f
<, <
:.s,,:~:r,, ~i
\
A.5.l II controllo di paritil .. \t;-.:~ _
• A '-,<"- '
· .;",:J]"~,~ ,:
"'~~""';'"'I
",':;';':"! <
•.i,.~.'~" . . !-
I
Nella trasmissione e memorizzazione dell'informazione, una delle tecniche piu comune- ."".
- . , ....... '
.' "-''''.,''-
.' "' ' - ' .."

)
mente lisate per rilevare errori dovuti a disturbi 0 a ma.lfunzionamento degli apparati, "-"',..,,,!.,;,
.-,"', "-'
""'.-",,,
,,,,(._,:,,,,,,

consiste nell'effettuare il controllo di parita.. Data una parola di n bit) controllarne 1a 'h" ...,. '\::, _

, ' :'~/~~" ~~
parita. significa determinare se e pari 0 dispari in numero di bit a 1 nella parola stessa. · . .,. " .....1."
" li..t,,~·"Z
';, ""~~~"
'~''''F- ~

l
:''i'ii~>r~~:'
" ';~~~1i:1··
"
:
• '

~. Sistemi digitali 527


__
,!"
· I
/'
:: '.
;.: Una porta XOR a due ingressi e sufficiente a calcolare 1a parita di parole di 2
;,·
.
bit. Nel caso di parole formate da un DUffiero n > 2 di bit, in Linea di principio, la
.

:; ,\ determinazione della parita occorre una porta XOR a n ingressi6 .


:, La rete di FiguraA.lla, che calcola la parita su una parol a di quattro bit e
[ABCD], e fatta esclusivamente di porte a due ingressi. Se il numero di bit a 1 in
J>:' [ABCD] e dispari, allora Z = 1.
='
""j
, .
: .~,
"'"_, ~~: ~~ D-
,~,
!,'
-':',' .
I~
:l·.
;::.:'
"',
~~JJ---J '<OJ ~~ '1D- p
.,
, ......
)." .;:.-'.'
"·"c'.. '

';;~'..
b~

1.
"
'.,;..
'i~
0; ',: :
"'"
1,...,.-',
I" :' a) ealeolo su 4 bit b) Scelta parila' pari 0' dispari
t:;" Figura A.l1 Cootrollo della parita. di una parola. di quattro bit tramite porte XOR a due
'.',_....
.c:;· soli ingressi.
.':'~
.. ,,,
',','
. ~ ••;
0;- •.'
;i' '~' ,
~"'.'
..,'
:'~:; -
(~."
-!;."~'
Per chia~ire come viene effettuato il contrallo di parita. si cansideri-ora il caso della
l:,~!:
J"""
.--
trasmissione (parallela) di parole di 4 bit. II criterio eil seguente. n trasIflittente forma
'!!.
":,.
~:)o..~
.;::,.
. una parola di 5 bit: [ABCDPJ, dove il Quinto bit, detto bit di paritd P, e calcolato
.-,.
'~'~ , in modo tale da rendere sempre dispari 0 sempre pari il numero complessivo di bit a
"', c"
""'f-·
'~{ , 1 in (ABCDP]. Nel primo caso si parla di panta dispari nel secondo di pm;t'a pan.
,~;i\~. D ricevente calcola 1a -parita della parola [ABCDPI che, ovviamente, cleve risultare
.,~,
l....'t.".,.'
~~' congruente can il tipo' di parit~ wottata (pari a dispari).
r"",, 0

~!l.·
".!".; ,'
'-",'>'~'
Per quanto riguarda i1 trasmittente, la rete di FiguraA.llb, con il semplice ar-
''''C ."
··~<
~ ... " 0
; ti6cio di fissare stabilmente Pi a.l'valore 1 0 0, permette di calcolare P e in modo che
,~~.­
''''~-''
!,/,,: ." 1a parita di (ABCDPe] sia Eispettivamente dispari 0 pari 7 , Con il collegamento di
:'~",'.'.
."
tir.,;,· FiguraA.12 il trasmittente trasmette parole di parita pari.
~~.:,:
il-" Per quanta riguarda il ricevente basta effettuare l'OR esclusivo dei cinque bit
}i.[£ [ABCDP] per determinare se il risultato corrisponde al tipo di parita: sceito. A
~'"",~
,.,. r- . tale scopo si puo utilmente impiegare la rete di Figur~A.l1b, ancbe per iI ricevente,
secondo 10 schema di FiguraA.12. 8ul ricevitore l'uscita e stata indicata can Pro In
.;..'
...it;·
~£..
-.. "

ca.so di errore si ha: '.


~~t~;
tt::::'
-~;M
j •. ,
• con parita dispari: Pr = OJ
." ,~"
'!I\';:'"
iigt '. • con parita pari: Pr = 1.
fili."'" . '
<",.
iIl- ;'"
_,.t~
•• ". ,••
.
::1l1
"J:;"
<~::\:.
Vale solo la pena di osservare che il controllo di parita. non e si in grado di
-'"I,;-" riconoscere l'inversione di un numero pari di bit.
'~~'-'
-,
".~.
... /.....
"~',
' ... ~
,~,,,,

_'. ,I"'.

~4..:!' 6Si ricordi che per 10 XQ.R vale la proprieta. associativa.


.'.}t,.,
·~i. 7I1 componente 74180, a parte Ja differenza di operare su 8 bit, si comporta come la rete di figura.
~'
,': ,
I ~ ,r:
· ~~(

.-'11 "
.
.,
"'!'..
'f';!.

'.' ,~ r'
'i'~~
;~ ..1
"~'!::'!I";l. ;
,.~;'~i1~. (
·.:7;e:..,
528 Appendice A
- .. -", "
'."'~"'I'
.,-~.
I -"1'~''';' ".
,....
"",•.it'I!-',"
-~, '.'
" " ,I'"~ ,

I
".,·r:,.. "\.,.. "
'......,'''''.
,',.' , "
,·';~1
'"
1-'". • .'.",

'.:, ~{5ir~ ,
I ': "~')i:",
..~~ " , j
;~";f1::':
'1''''''"
""', ~,~,,,
I TRASMETTl · :"~'·l"
TORE . RICEVITORE
'':.:;.~~'':~
"),;.8;;".;;
''!''.7i-:~;,;
·.,/f,......
. J .. ~!,
· :"~'("",
,i I"H;·.'
~i~ ":)'
'~'tl'.~
.', ' .~ "';,!.
p, :;<r.;':.;~.
Pt '.. '"''
A ~ A ""'\l1>"'"
'- B B :'!. ',.{;:i
C C ·;~~~1~~·":'
· "",,~,
' '~!lf.:~";
D D •;" (l:f~'.~~.

p, p, ..j>.~""
", :'"",,,.....
L..
-_.. __ ._-~-

---" --_. ---


' ~"" ,:~.
,\<~·~·t,
·~~.',..,.l
- OJ PARIU' Dl PARITA' '.'"",;t],.
" ,. ,,'"
: J,:,!.,jj.,'.;
.~.

:.: ,-.,.,'-'\,.",
rr},., .~.
. '"
Figura A.12 ControUo della. parita di una parola di quattro bit a mezzo di porte XOR a ." .....,
due soli ingressi. """"".'.;
"~ r,.~.,,,,,.
· {-:~.'fjj
" /~i';;'::
'••7'·"'f"·'·'-
" , .. <,
Nell'esempio illustrato si e fatta l'lpotesi di trasmettere in parallelo i bit della .. -i-,l,:'
'i~··'.:~"~
".~ "".~",
parola. Di normal specialmente quando gli apparati sono distanti, la trasmissione av- ·r;,'"".--:"
. ,~..
<"'e
viene in modo seriale, n calcolo del bit di parita puo essere effettuato dal trasmittente >. i.;l·~~i;'
,,)::~;:>::
prima di serializzare "la paroial mentre il ricevente puo effettuarlo a ricomposizione ..\..,l';~\:~i
_..,"
avvenuta. In questa casa, tuttavia, il calcolo della parita puo essere anche effettuato '.~~,.,1;.."
"~'''~':';'I
•• y .... ,

tramite una rete sequenziale che conteggi i singoli bit, man mana che essi vengono i""(~;,'"'~ii
J<~,
' "
,;·,r.-..:""
• ,. ~".,
trasmessi 0 ricevuti. "~~I;r,:'<"
.~ ·'.P
' •• I' . ..
_~ ;:':''l
··}·l'.'-i'il
' f t
~ '. '''~~
':"".'
:;".,<.,
"\'..
··.t·:i,':'k.'l
A.5.2 Comparatore digitale. ;~<o,
, . ~'o:".,'
;,

'~'~"":~
'''1' .. ,
_l> ,1'

La rete di FiguraA.13, effettua il confronto di due bit. Le u5cite vengono denotate


''"''',+,
' "'
""t.,,~ .
..
,; \i";~'..

rispettivamente con Gi , E i eLi, E facile convincersi che per una data coppia di
.,....... ".....
'.
,.
'.j<;.... ~,,.-
"""."

· I":··:·~."
ingressi Ai,Bi una sola delle tre uscite e vera. Infatti: ': '/~~';j1;i·
-:" .~;.;:
• 5e i due ingressi sono uguali solo Puscita E i e vera;. "':":,~:i,::
'-.·l"'~':t.:;','
"'... ~.:,
• se Ai < B i (cioe Ai = 0 e Bi = 1), aHara solo Puscita L i e vera; '
'io--·>;t\
' i..","•. ~
"""'("
'.,'' .'".;t".. ,~ ~ .'"
,
-'''''''''''1
• se Ai >. B i (doe Ai = 1 e B i = 0) l aHara solo Puscita G i e vera. "'"; ~!~f~f:,!
I.,;,.~,
'''l,"
.:\.':)'¥:
Si consideri ora il confronto tra parole di quattro bit. Si indichino con A = fi;:'~~~::'
· , ''',-
[A,A,A,AoI e con B = [BsB,B,BoJ Ie due parole. Affinche sia A = B, deve essere' , .' ~f'::ti
· ""'.:"
",':';';'.";'"
11:,"
A, = B" A, = B" A, = B Ao = Bo . 1,1.,
'. ,.
".
~,\.-:: '.
" :;: ,~"~"
'~':I\':l~
ovvero, indicando can E s ,E2 ,E1 ,Eo Ie tre condizioni precedenti, si ha A = B 5e e vera ··"t,;,,
' .>/-..., '
Ja condizione E = E,E,E,Eo · "'''"..~-
.. ,,'......
La disuguagp,anza A >B richiede che una delle seguenti quattro condizioni sia .' :rit....:
":
;, '/,.;
verificata: , "'~-t'.
..~1Yi·
~;~"'~
~\~"''''~,
'. ",·.\11....
" .', \:i~i;
.j;:"
' ..
"l~'!I'"
,'1'.'.
• r!r
r~'"
'"..,
1. ',:,
1-
(;,'d:."
'<;"J:;
';, ..1,1,
Sistemi digitali 529 -
..
..., {".It" ..•,
"';1\.,
"',:''''.
.",,-:~_.
~''''~.'
,,1;'.~,l, ,',
"'"IT'"
,,."','.',' . \-
'."'.
' Li (Ai < Bi)
,;:i:,~ . ,
, ,,;,~,>
: i}~.
'-~'-
Ai
,v
.-,'~'
-':'
,..."
Bi
I'. Ei (Ai - Bi)
I.
'I;';'~,
.',. ,. -
\.
,,~,
"J.

""',.'
""'\,' -t "" \.
'/..... Ci (Ai)o Bi)
.,",..'./
~~~.'"
'.;:1~',.
"".,
'·i'.',,,, Figura A.13 Comparatore in grandezza di due bit. Si noti che 10. parte della schema che
,: ?".:,
'~"'1r,. rivela se Ai = B; corrisponde alia porta logica NXOR.
'-'",1,
;:O ""1." •
. :'."h,t
.. !~ '~';f,::
~'l~' '.1" .
'~'" ,.~
'l' /";','."
l., "~.,
A,>B,
. ~""".,".
.. ~ ,Ii.,.. A,=~,A,>~ \
; ~~J.I(~~ ..
; ~["
A,=~,A,=~,A,>B,
,., ","~"""
;..... '~, ..
, ",~:"
; ' ";".'
-7~,,'.:
A3=B3,A2=B21Al=Bl,Ao>Bo
:.0~:· ... •

- ';;1,~1:O:I"
. .c,,;']... Le quattro condizioni si traducono nella seguente funzione booleana:
,"'-1.'.
:';;.,., ~ "
::-:;\!/.(}
, .-t",,;,,~.
" -Jij"
...'..../,..
,. _''-
' :, '.ih.
G = A,B3 + E,A,B, + E,E,A,B , + E,E,E,AoBo
Dunque A > B se e solo se G = l.
(A 2)
I
: '2n:·::
i <,,,~~
...... ;.~ .• . La condizione A < B si ottiene dallaA.2 scambiando tra lora A e B:
" ~','t"'.'l
,."""'"
I: "::;',"'i.
,

i~, ~"I!"i1".!
L = A,B, + E,A,B, + E,E,A,B, + E,E-,E, AoBo (A.3) \.
",,··,;A~,l',
-'!l ....
.
". ""'·~lW;"\,.
. ;><'1" ','
La relazione A.3 da L = 1 se e solo se A < B 8 •
. . ,e':~!,",. ",'
, -.:1 .
l. "'~1if.
l •.• '"I
Ragionando corne sopra e possibile costruire la rete che confronta due parole di
,. ' "'¥iii'
'{'''''<.',''
,,-,\,. qualunque lunghezza. A tal fine, basta riscrivere le funzioni pooleane estendendo il •
' ....
l. ~ ":', .' .
.;

, '~','h. valore massimo del pedice. In questa modo si introdurrebbero porte con molti piu
', ",':,0,. ,
~, '!'~.,
" , . .,.
, '......,';, • ".'.
.; ;""-""
01.
ingressi per cui, nella pratica, si preferisce seguire la strada della modularizzazione,
1

ovvero, si preferisce costruire componenti can un numero definito di ingressi, impiega-


-
.,.
... H'~.~,
• ;,i..'~
_ \
"'".,
...",.".
-.. :~;'l,.;.J
,'. bili in cascata can altri identici componenti, a.l fine di confrontare parole d.i dimensione
". -Ii,;.;' qualunque. J
·f ';;~~(:,. Per esempio, i1 dispositivo SN7485 e un comparatore in grandezza di parole d.i 4
:~ :::L>r:('
:: >.iiici '. bit, impiegabile in cascata secondo 10 schema eli FiguraA.14. n componente ha tre
'. ".~"j:t'. ingressi (indicati come A < B i , A = B i e A > B i ), corrispondenti agli ingressi Gin, I
,. ··3>1~··' I
\·, ;ji;"~1,': '
~~ ',' "1,':' ' .•
" ""1
Ein e Lin di Figura A.I5, e tre uscite (pure indicate come A < B, A = B e A > B), I-
~l.
,.", .....
-.,~ ,
corrispondenti aUe uscite G, EeL di FiguraA.IS, Per il componente che compara i 4
1. 1..,i~I'i'
!, .;;'~h',}~-:
,,;~..;~, .... , bit menD significativi, Gin, E in e Lin sana collegati in modo da asserire in ingresso 1a
"' ~ ·r"; .
::. il:r;j' . condizione di uguaglianza. Per il componente che compara dei 4 bit piu significativi \_.
', ;~~Yl-'
-''i; ',"",
~'~'.'~;'
Gin, E tn e Lin sono collegati alle uscite dell'altro.
""'; 8'\,l In Figura A.I5 viene illustrata la logica equivalente a un singolo '85. In figura
".;; ''''r''~~•.
". (,, "'!.'...,~,
""'.,..,
.•..
viene riportata la sola parte di schema corrispondente a E e a G mentre non viene
I

"'> 'l'}~~':;'
~,\ : .h>·,
,; <~J'fl:
'.~ ." I, '.,
.. ' .. '.;, ,
-" ""'~""
riportata la parte relativa a L. Si osservi che i termini Eo . .. E3 vengono calcolati
I··
t~ ·)7J.'~; , 8Si noti che .si poteva scrivere anche L = E + G. Thttavia questo modo di calcolare L allunga
:.:. ",;~.,. il tempo complessivo richiesto per il confronto, in quanto la porta che calcola L pub produrre un
;"" ~'~".'"
.,.' ,.,,\o~
··, ';'o!l~~
~~'l'~j", .
,~f
._.. '''",,'~~ll''
, ..
;~~;, _ ...
risultato valido solo dopo che sono stati calcolati E e G.
I
, f'.!i;;;,
;t"",M-•
If
530 Appendice A .. "" r,l v:'~
''':,.,'' \.It''~
'
.. '" '¥I"
·'··.."~'~'"
····f~,,·~,·
~"7?1 ~~,:.{
.•'l. • r: ~
.>-;' ';':1:';p, .i¢.~
'"....,
'.. "."';.1'.11.' .'.'
• ~'" ,'jt;;""
•. ~'
YVee ,.' '''':11,' ,,~' ,I
·':<,·...d·." ')l,;"~:.
'. j '1\ 'Jf ,'"",

I
",.,.'"j t'h' .":;'i~;
-:- TTl IIIIII[ · "'''I\'.~!
'.. '...J ',,1'1.
'-'1"
Ad! 0-1\ .,lIi "'~'",.j "i'l:,'·
I. ". I. ." \i~,\"""
· "~Ib\, '~-I'~
.":,"~~I"~ '.
7485 ~" "~;:
~.~ 'I
l. ., I,
I. 8. -".
,"" ~,J~
W.-r. .;:,~!
u 0- .I.
- I. h
Ad .-8
"
1)8
..... (i\>1i'
.~ "
'. ··~0~
l_ . . ~. j ,*'''
·,.; "",
I I I .. <',"'1'-1 '~"'I'
l',.,
..L .' ~"!J';' ~'>";
• ,- ".. _I
'.', ',',>j, ::'-.;r
.:' :;~t:~ (~l,~;
, ., ::i.~i :'~:i

,,~~ ,.".~ ..•i,: :'~J'


,_'".,
I
• , ,/'1- ,'10,: I
" .'. 1 ••~..-,
· ,'!-Ct" '",,0;:..
10 74858' ., :t,rr1-,)
'1"," ~~<"
".·l'·..... '}!"
AI 0-
,;·,,',", 't','/",
I. AI 8. 0- '.. • I'
" ··1 >~.\i- ",. "
, "
,'.~i;~;· ~, ....
j, AI I, ""'j;:'S, ..,.~i
UI .~I I)' :
,
, ......, , \.<''1:
''-''',LI
".Ilc~'?l';" ~",
_''I:
· ;~~"'H' .'~":
>~,. "'"
,. ,~. 'c::{
... ;J..~!* ~lt"
L , C '/·d·;"ti '~~'
,~t:EIil,~ ~''''
~""!li".;l
·"',,';:r:1
Figura A.14 Schema di coUegamento del dispositivo 7485 per il confronto di parole di 8 ··' •• u ';';,.
- bit. La rete confronta la par-cIa presentata daJ late A con quella permanentemente impostata , ';;~""" ""~J
.~.
'.~'.~..".'

),-.. ~ :,Il'fff,: '*,:


C

I da.llato B (in questa caso pari a 64H). Lo schema puo essere utilmente adottato per decodi-
ficare un indirizzQ. L'impiego di ponticelli consente la massima Bessibilita. nelPimpostazione
dell'indirizzo eli confranta.
,!,J.~,~! ,~' I
· ,1'~·.~_1 ·tt-
,. ''''~!I'''!'
,,~
r
~ I"~"='"
" , , •
t.I·,'\,;,."'t
,"',,i1::~:i~0'.1~t;
'.... ~l,l., "I,.,.
' ". ~j,.
";."",,,-::, 1'\'
'''1''
',r'" '0"
\'~''i:ii'( ",~~

. ·I':~
con altrettante porte NXOR. L'uguaglianza richiede l'AND tra la condizione di ugua- , ,~·t"'i'~.",,, • .:
- glianza dei 4 bit considerati con la condizione cli· uguaglianza degli eventuali bit meDO """",
\1''." ~'."li.""
." .... '" ;,'. ,
,,~, .;;.o!~ '.. .
significativi.. Alia stesso modo, la condizione di maggiorita A.2 cleve essere modificata . .""I1l. ,. ;..~
"]J'Il:'~'
',,,. ~.

I in modo da tenere in conto del fatto che in presenza di uguaglianza dei quattro bit ,,".,

trattati da! modulo ci p~sa essere la condizione A > B sugli eventuali bit meno si- ',';<;fIi\~~~'
~"'"
g
"'
I
I'
":r."~ ~ "'~
,.' < • ,
t, .,;,
gnificativi. Ovviamente 1a coodizione si esprime come l' AND tra Gin e la condizione · !'·;~!l"j'l I'
"ill))\)l ::1',"1
di uguaglianza dei 4 bit considerati. A questa punta dovrebbe risu1tare chiaro i1 ruole ,"&
,.~·.r~.
.,, '.fi I~II~ 1'1 ~
•• giocato da Gin e Bin nella schema di Figura A.15. '~"Il,',WJI ,.~
". VJi,." ,oJ
I. ' f " "
·:';~'j;J;'~~ ~\'-
ir;U"- '~(_ ~.
j'
, •.... 't", - ''~'
•.,'':fiti" 01:'
.... ~",.,." "Jot·'""_
'j'''.,:"",'i!
A.6 Unita aritmetiche · '(,,)I")' "
'~"':.ir, ..""'<ci :t'
.>',.-. Ii
- .,
. - if ..t~~ :;'\
"~h/.''''', .
'r.."'~

J Vengono ora approfonditi alcuni aspetti sulle unita. aritmetiche non trattati nell'In-
"''1','1;:' {,..
"~$f~'i;lii, 'i.
troduzione. Y'VF::<~ ~:
,,·,·,·,yjV~ ,:
,"rt.~h~'( 1;
•r,.1••• ,"1>
.' · ',,"~", h)~'
t, ,,: . 8'-~,
"""'l'
" f·",.~h~'
'ii' I ".'•
':"""1'1..,' ~~
A.6.1 Somma con calcolo anticipato del riporto '-.".~ '" ~ .'.

. . ,,*'),\~,
., (~""J I
, ·'1••
'1. .. II 1
'~,);~ ';
E ''1.~.,":
· ...... ....
.. :,f

I possibile ridurre i tempi di calcolo della somma con la tecnica del CalCOLO anticipato ~
· <;~1:·" ,~
,.,~.,~ 1
del nporto. La tecnica si basa sulla struttura algebrica di Si e lii. ·,.'!~·~i
. t..~, ·~t
·Facendo riferimeoto alia Figura A.16 e posta Pi = A; ED B.i e 9i := AiB;, si ha: .. ~-"'}:! '~
• ."".' ...

',~'.~~' '\1
',,,, ':J,'.;, !.,
I Si = Ai Ell Bi Ell R;-l = (Ai Ell B i ) Ell R;-l = Pi Ell R;-l
, .... ,".;~ )
t ',,-.1-1':ir
~·,.;:q!lr
, ". ~ ,
I R; = AiBi + (Ai Ell Bi)R;-l = 9i + PiRi _ 1
• ., ',.
,t~ri. '•"I'
".:1,",1,'1'
'···'·'I"I''I! "
~!., ;.~
'1:-\: ,',
, ,"1,.,
",·)Z-ri:.r '.'
• "'., Il!'"
"".
' •.' ""
(

J :·;~~;tll
,
•.•
~
~:i
".

{ •.
Sistemi digitali 531
~
..·.
.'" " ~
I"
.'.'
",' so Bl
"
;l'"
':,
"0 10 AO A1 "A2 B3
A'
·.
"
~,.'
.,
:
I'

"!',
"
,


'ii, "" of ~ ./
;'
rf',' r-"
:
i,· .
':""
',1,:.
.' '
"r':
"" '
,;,.' :'
""
'

III
Y
,~.
i", ' "
I:' "
,~, I
:!"'.
" .
"t.
T
E: (A-B) G (A>B)
';i·
''j'.
l.~"""
... Figura A.I5 ComparaLore di grandezza di parole di quattro bit. Lo schema non riporta.
.".
o','
JJ. la parte relativa a.l calcoJo 'della condizione A < B. Nella schema E. = Ai == B.. Ein
:\y~. ~
:J.', rappresenta la condizione di uguaglianza in ingresso. Se il comparatore e usato in cascata
can altri si hanno due possibilita per Ein: (a) se Questa e il modulo che confronta i quattro
, ,'.
"•• , .
t'." bit meno significativi E. n deve essere tenuto permanentemente asserito (mentre Gin e Lin
;/Y:'.
,..i'" , devono essere disasseriti)j (b) se questa non e it modulo che confronta i quattro bit menD
'"'.-:,'
':"".~,
"
significativi Ein viene collegato a E del modulo che 10 precede, mentre Gin e Lin vanno
~'" collegati rispettivamente aGe L del modulo che precede.
~"';r,',
';:'.... ',
,:>:,.,
i'.-'
~ "".'.
.~"it.
~'
Ri-l
D SI

g~l~.
'~r"
.

Ai
~ Ii.; "
'~''.'.'
" pi
,".t"
1 ,~ ...
~"'i'l'
~:,\:,:" gt
oJ,,,,,
'.'.,
y"" RI
-:.·,b{:'.
.t."."
'~'1~ ,
Bi
-
' '" •.
"_ ,·r'
" ..
"
Figura A.16 ~nzione generata (9i) e funzione propagata (Pi) per iJ so~matore completo.
'l'~-:.
i"t"',,'
,"
\1':<'.
.r,.. h~ Dunque:
.'<~kt;,···
:~+.'.
:~.-t,
;0\"•
>'....
,.' Ro = go + vaR_ 1
' '"t,;
,'" ,
'~.t"
R , = g, + P1Ro = 91 + PlgO + PIPoR_ 1
'''"'
••',
~.;flL
.. ,
R, =
g, + p,R , 9' = + P'9' + P2P190 + p,P1PoR- 1
I;'.';"
"'.' R, = 9' + 1'3R, = g, + 1'39' + P'P291 + P,P2P190 + p,p,PIPoR- 1
11M"
;Ai,~:,
.....
,fl..•:
~jI!i~:,
Nelle precedenti espression.i i termini Pi e gi, detti rispettivamente junzione generata "
1';""" e /unzione propagata, sono calcolati in un tempo T pari alia cornmutazione di, ub'a sola
·~m··
t;~J;
porta. Gli lii sana dunque calcolati in un tempo pari alla commutazione d.i tre porte.
~\(t".
..'<c.,.:.

1:'.'"
,:iH.
Di conseguenza, il calcolo di S richiede un tempo LIs = 4T, La rete che effettua il
)O~"'"
rf'~'l . calcole d~i riporti viene detta Look~Ahead Carry Generator. In Figura A.I? viene
ij',':;:,
,"-
. 'i'"'
't'~·:;i.,-,
mostrato 10 schema di un sommatore di parole di 4 bit con calcolo anticipato del
. '~'.
, 'ji,
~,"rr;~ 'I" riporto.
, (",.
' ';'1t Considerando l'espressione di .R3 e posta: G := 93 + P392 + P3P291, .+ P3P2P190 e
~,'.
~',:t"

"..'
.
\
.~.~

··i~:i.
, ,.,
.'!'"
": '" ,\'!',\ -
532 Appendice A
,
,..
, . "~I ,.
~,I,
),." '"
:~.V~(.
· .. ..
", ~ "~.,,;;,:,
""~'J'~"
,' ,~
'-J'.I:...
"1"',..-"
" ··I.~
A3 83 R2 · 'j."~,l{{~
I I ;=-
A2 B2 Rl
I I F-
AI BI
I I
RO
r-
1.0 80
I I ,-, ·~:,·.:..b
•'•• ',t'·,~,.(
,.,-
. "'.,,::-,
'-/;,-
PA PA )'A PA <'I-:r;i;t~
, :.:',I ;:'.,..!7l
}.iP'
I~ ,~ c~ ~. CI pI ,~ p~
,.'~·.~("l;
,,,,:~,

" " : ~~"·l~

" " h"f:"",


· . \':~i;~:S
.... ,~-l;tr<

" .,
"
~ R2 I' ,2
" "
LOOK-AHEAD CARRY GENERATOR
.1 p' ....,-, f-
..........."'-
, " ':r,.,:'r
.l ' .,..,
:••''''~~;:
~ ..,~.
,~,,<.:,
.. ".;,•
",".(".1"
I I , .'1:;:.rj\'l;'!1
G P ·";'.'~<1'·<'1;'
...,-. 'J
".''0\'
.\1' ",,;.
,\. ' ".'"
:: ,.,,",',
Figura A.17 Somma di parole di 4 bit con calcolo anticipato del riporto. -""'~'" I
"'. •.
,~ /oj.;•
~':t. ',M'
· ~~.. .." .
· ·;·;.l'i:
'J.':' "
'"a;
: ~ 'l'~"
p ;:: P3P2P1PO, R 3 si riscrive come: J""""~~'
," ~.~. ",
' ...'\ ':".",":~,'~'<
.~~ ,,'. "
rl r
";;U ,",
',.-'\'I..~:;.',
R 3 =G+PR_ 1 ''''l',i)~~'Iw.l1
, ' '. <11:.~
"l<''''
·.: ·.?t,;f!.i~!
~,\"':Hf';,
quindi possibile impiegare in modo iterativo it calcolo anticipato del riporto , .~~~
'>

E
c~struendo reti a piu livelli, Per ese~p~o, s~ supponga di volere somm~e par~le di 1~ :'9i~
bIt. n s~nu:uatore pub essere cost~Ulto unplegando quattro Sommaton da 4 ?lt l ?ome :',~[.:,~~~;~~ft~
queUo di FIgura A,17, e un ultenore Look Ahead Carry Generator, come In Flgura,i>r.;ffl[~1')
A.18. . , ~~~~!g';fJr
..;,dM.ll
'~'-',.' '
Alll-12 AI I-a 1.7-4 1.3-0 ~:>;.II·" .;
l" ". •.

r-
'\ " ,,;.

ar,-'2 YI-er-- 4
y-o ,-,
',,;:,: ..'41.
':,!~1 iil~.~;
"': \!)~l'~(
RU R7
'3 'Jp1~~"m!~~'1
.l!", ,,:,~
GJ
PA
1'3 02
FA
1'. GI
FA
Pl ~
FA
.. "',i("
"•• J;~.:!\'iJ,,'
'.c","·
,'. :~'1-M'
·~~,~~jlV
, "

, 'l~"" ~"'i;-
SllI-l su-a '~~'"
I""
*"',t. .
.. '~tll

,.)"'~~:I~";'
S7-4 33-0
~"1't,,,~,~,

'" ,3

"
p3 R2 12 p. R>
" " RO CO pO

,-,
,,'. ,':;{!r.jJi't
, 1:,'.1;h,.i,
":,l,"~''''r~I,,~, ,
LOOK-AHEAD CARRY GENERATOR 'i ,J;(.;'t;:((
,I." . "·'i.'i~~;.
',··.·~lti··ln.;!·
I I ."h i. ,010<
G P ·r. ~
ft~ .~,
,.".-
• .. ,~ . ....:- '
i'tl'>"!i<"": :
Figura A.18 Somma di parole di 16 bit. n sommatore e castruito utilizzando 4 sommatori
' ,t: '
'~,,';,''':lI.t ,
. "~.'
di 4 bit can calcolo anticipato del riparto. Ciascuno dei sommatori di 4 bit impiega al suo ".'·:' .'r"'!~"'r:
-"r!I
.'';"" ~"
interno esattamente la stessa rete per il calcolo anticipato del riporto. ,';>~t.~,i,f :
,,' ", ',I"'.
• ",rJ1"i(j).·.
.,.;.~ I !'
·-:tl:t·~
,..~,,~ll.,. ~
· .. .'.,...
:_,'~ ....;>;,.
~

''''5''''' "
" "'>1'
....'-'"r.a'
• ,;,.•" 'J
,,:t; .
0;:
'N.~ :1
.t:,,,,'!'p'<f,
"c""'··'"
A.6.2 Ancora suI sommatore completo :"t' ltir·",r: .
,.~:.,

,rj , '~.","
'('''-''' ,.
.'
: ..'iJW~I;!; ~
'J"[ "
· • ,':i.-t .. ~.
.-.,:,.~.
'I;'~-'~ "1
· ._""'.{._
La TabellaA.2 riporta la tabella di verita delle due funzioni S, e R;. La Figura A.19 '.'J.~';';;:1;' ·
riporta Ie corrispondenti mappe di Karnaugh. Da esse si rkava: '''.'. ~
·::'1'!;..'1,,'
.'· _"\.;•.
' ..•>..~
.
" .., ... ' .,
,
,. 1\":
~ '
: ,.
-,.,;1";,
,"""',
'"i'"~,
''''\1''''''
I'-'~':-~
1
_';r,:t'{' Sistemi digit.li 533
.
,,
",,,",,.,
-' ,f" .
""-~"""
. 'j ';c:,.,
•• 'U"
~
it<"r~'
~ .~t-~;.
).
b '~:
(: .• .-" -..:
.'' .,
,-
, ""I~/ .,.
,~

~ ',f;:l!:',': S, = A, B,R;_I + A;B,R;_, + A,B, R;-I + A,B,R;_l


'ilI ,n,
':;~.~,::.:
,,-, R; = A,R;_l + A,B, + B,R;_l
,
~
,
; }:".:,,~
",.",{;
',".
S ;:;,~,;,;
< ,""",'_
-! .,.,- • ,
", '
. I
r,'~-:;'i'
,- ..•. .~
A B R_ , S R
: ~t~\~::!
•.
":;','\1,
, :~1~". '.-
, ,-~
'".:,.-',."
.. ~,
1 ,.,Aii',Y"
0
0
0
0
1
1
0
1
1
0 0
0
0
I.
'J."""~'".':;",
' .... - .

. _.C
"-'<...,
, ~~'
'. F""' .. 0 1 1 0 1

I.
. ...:'to
I ~t< ..." •. 1 0 0 1 0
'•. t<';-;.
:,1".1':'. ..,
..,.,,\"'!".,,
; ;!,
::)j~,,~j.;.
1 0 1 0 1
~ •.
'¥ti-rf, ... 1 1 0 0 1
,5~M,.,
' ,'It" .•.,•..
1
";:';";"'";".
r .~",.;l·,··
1 1 1 1
, ,""·'11,· "
<, .• ~.~
S~mma e il Riporta.
,
"".1;1"::'."
~ ,~,';
Tabella A.2 Le funzioni booleane per la
",,'
,.l-li1;~;~
'i~~ -.
~ ~~:';::
~~7/'
~ :,~~1;~'""
)iThr~A~: I
r1;f,):.~~. 81 Ri-l .•BiRI-i •
,;,}')(r.:~'., > 00 01 II 10 } 00 01 II 10
'lIiliF..-.
"~{,'{~
;/~"
~~.,
.
~ I I )
1 )
'10Jfi')~" I 1 ,
"lM~}', 1 1 1
• I
k6&p'\
;'~Ji[l/:,
";w.... )
Ii"d::k·; S, R,
'~·~-"i·' ;
"",
.'!~~ i' Figura A.19 Mappe Karnaugh di S; e Ro. I
~-!.'t
--~ If"'
...'~.,'Ph·
-
r'.'
~"jJ;.1;·
'"tl;~.
t'k:~·4.?,:: Le precedenti relazioni perrnettono di tracciare 10 schema della rete corrispondente al
':i1!,;~,.,'
,'1' 5':,':.- sommatote completo. Per rnotivi cbe saranno chiariti pili avanti, conviene esprimere /
:1l" ff.k"
j.~ f:'. S, in funzione di R;. A tale scopo si facci. riferimento alla Figura A.20. In Figura
,U,."-;,,
""!c;;O,'
:..
.I./j~ •.
,,0::;,
, A.20a viene riportata Ia mappa di R;; con l'artiJicio di Figura A.20 b) e di Figura I
>'1''t.; .
'~<:'r".,-
:~-I,\i' ..
,.;;,'l'''';
A.20c la mappa di R; viene ricondotta a quella di S,. AlIa mappa di Figura A.20 I.
'd. corrisponde I'espressione seguente AA e la relativa rete di Figura A.21.
'~Yf'"
';t,:":'.!:
I . • ,','
::a;J.':'::
,u'·"<. S, = A,R, + B,R, + R;R;-I + A,B,R;_I (A.4)
!iH:~·_'
'~_n ..
!;>..::;i,'.' , )
~~',,:?
..."t>f,'"f:,->..•.. Si noti che R; e I'uscita di una rete a 2 livelli, mentre per Si la rete e a 4 livelli.
"J,;:".;:
..,."
.If:·, •
• O'i ...,.
:"~""~"
1~'.~f' ..
. <I ....
".,'
'...,., '.'
',"",",
....".,
~6,~'j-:-:'
".I""h
~:tl!;;""
. ~.1,.~.
A.7 Unita aritmetiche e logiche I
"'1..l
1·1.?
·:tl~~.; Nell'introduzione (Ofr. 1.7.1) e stata costruita una semplice unita aritmetica e logica
"..-'
~'.:" .•,
...~,.o.'.
'!!ll~~I~
...., ".
0,;."
che eseguiva la sola operazione logica di complementazione. Si ponga ora il problema j
'l' '.
~(;!/t
,.
'1iI';'I
Ii ',!
• 534 Appendice A "'-'''''v. f ''···
>:,,~.~. • ''i'~.
,,:,.r~~, '.,r
';,....·h ":.'i

- ·.•""tl'. .•.u.
"c,,'l ''''.
.:':,;"~
",' '.::''
,'.

,
,.';--;--;; ·it ,4:~~'

i ..
d'"~.:, ,','P..
B; RI-
,
B,R ~
Bi R· .'

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

I ,
l

,
00
,
I
01
I " 10
l l

1
00

I
01
1
11
I'
I •
1
00

1
01
I
11

1
10
1
· ."1,'
.'.,',.
':-"'".£ .."
·.:r.;!,!f_ ,2L'
': '.:;"'i;, iJi-
'. ',-,I:!:~r;;, ~I~~
.,·.l'l:lI'l
'11,

Yo
,.

.' ""1')1. ,. ,
'c" i: ;~' ",J,•
- I 'If; 'R", {"It Bl+ Rl.Jl
.
ifl (A-it Bit RH) + "18IRl.!
",v'~""'"
· "."-',,' .'~"
'."'~,,'j,,
.. ,~," . ""
'·"l""I'!.· ~,I.
'I·,~

'::,f·~.~~e ~il'
I ~ W .j .~ "",,',," ;'l
A-;.:"~, ~¢'.' J:-:'7
Figura A.20 Metoda pratico per pervenire a una espressione di Si in funzione eli Ai, B" "\''..0,1'
.. ' :'c'~L ""Ji
,I'l

- Ri e Ri-l. .
:' \~'/r\~. r:i;
".,.,' ....,- .:Ll
, ,,·~,\.j!/'Il,.I'·'l
..,"\"",' ,'.,.
.'':;~ ,~;~\R~: t!!\
'i·.-l;ii,~'i
.::,:, '--~',' i J7. r-;, '~',1
'I"!
Ai Bi Ri-l , \'l..\j;;<~' .,""
;,\,~, ..',', ",~l
.:'
."f",~:'i' "''''
',"1.., ",,~, . • "'
,::,r,~';\,~!i; ~::i

I ' ·:ri::Il"":' ',


',: '-'. ":l;I,ili l~,;
"""I"f: ,.~
", '('1'" ~ ~:';
{.~ "" i'~ '-::
,':,,t··H~,~
.'~tt,.,·· ,~:
i,Y
...if'. . 1"
~: .,'''~ .,...
- I
~·., ... !"~ll
.. _~~;".

;··ct;'!> ~;;
·",,1:;"'1':'
:r;.

j y "··'iJ,.:!W ,:;
•...
, l-,~,~ ,~,
-.,.J,l;"f,\'
~.
{,
.."
- c- ·.:.;. ~'",~
,c .•
::~ ~!~
.
t ... ~'~
',"~. "'. ".
·,;,;\:·r ,-
) ':'~~~
... ~.,... " ~-
I Hi
Si
'. t)···:"~~'l;}:
~;;<fJl~~~,"
.'.'':.:.,<
>.' •••• :.....
.•__ ~\:'1iw~e
·~··lr·/i}'t<~~ b
';·.;X;j"I~!§'·';:
,:~

. 1 ~ ~ ~""
Figura A.21 Schema per i1 sommatore completo con uscita Si in fUDzione di Ai, Bi , Ri ":':'J~~~ -) ;h~
I e R..-l- La rete corrisponde - a menD di differenze irrilevanti - a meta del contenuto del
componente 7482.
,:! ,
~"l''''-:,,~<'
",."..
""""
~iJ"."
~"';'~" '!i{~
';,",\elC.,o}I:li'
~
,",,''' ' '"!!l''..' "~'
, .I.~,
",,,,,,,;~,,.,j;j "~
, .. '''..,.pi" ..
.,.,

:'/;~t;i7,lj( :;
- di estendere tale ALU in modo da incorporarvi anche Ie operazioni logiche di AND e
'::'::""~;\f~~ir(:~:I
, 'I· ," ".", .~
"i'~'';:'.\t;~'ii<
" K, ..';tIl' 7i'"
OR tra i due ingressi A e B. ";,'l~'li'.\l~"\: ,'.
Ovviamente, Dei semisommatori sana presenti porte AND e OR. In particolare ",~' '1~~"<'
J"j;:;~ ."
""'~' ',"1
''
..'
' "" :!! • "
<, .'
':;',\J;li: "

ogni uscita Si rappresenta l'uscita di una porta OR., Tuttavia 1a presenza dei riporti " ~"<).,,,!<'
· . ,r.'l"t" "

!
.," .,~I","~: ,~
.-.j \''i!'I'~ ,t
reode l'uscita Si dipendente dai bit di minor peso. E dunque necessaria annuHare gli " . ':;;") , "~
·'·;'·~",;?;.':'·l 'I
','~. ·1
effetti dei riporti. Si faccia per esempio riferimento al sommatore di Figura A.21 e di , ""
,''.,; ::~:r;,~, :
.', "' ... . ~, ~
supponga di modificarlo come in Figura A.22, dove sono state aggiunte due linee (di I, \.,~;t', '
,., ";'$:;"
I
contrello) Cs e C2. .
·;.:-t~:~5~,~
.'~;'''-' "
Si considerino questi casi.
I -.,';'<,
;c... ;;~' l
,

"" "'~''-;G:
. ·il.'
'," "
"'

k'
• Se Cs = 0 e C2 = 1, allora il valore di Ri calcolato dalla rete di Figura A.22 non """~'" ,
"~~"j~ !,
risulta alterato rispetto a quello calcolato dalla rete di Figura A.21j dunque se ...'''';'~'',-
' ".' .

- alla Tabella1.8 si aggiungono due colonne per C3 e C2, 1a tabella risultante, su


; 'Y;'-"<l. '
. '..:1;-;1',_,< •
("";~"<; '
\ tutte Ie linee in cui si ha 01 per la ceppia c, C" e identica alla Tabella 1.8. ,:'-"":':\. ·
.,d!f';:{ "'
• "~,, \
",,'-'t;. ~
~""- -
"."'''''';
• Se Cs = I, allora ~ = 0 ~r ogni i; dunque i1 contributo a Si delle tre porte a
- due ingressi in cui entra ~ risulta nullo, mentre 1a porta a tre ingressi fornisce ,.':::::~~~,':~
, .
, ,.tr:""Vr
,"",
Ai' B i ·1. In conclusione 1a rete eli FiguraA.22 1 con C3 = 11 calco1a Si = Ai AND J:i:fI~~:,1I
B i (si noti che R_ 1 e irrilevante. ' :":::'':)':I'i:
,.. "'~'Ji<~:R ,
,I'I) '1
,r"" .
- \'!",;~.;r.,~,
,:i'''''''!~''':;~
,.' ':,,'1"
l' '"" I':1
,~fl~\
J '....
.
.';.•,
t"
I$,:.
!,\
·,''-'.
Sistemi digitali 535
.;;,
r~,
i~·
.'';'
'''~-
.,'-'
' ..

.:::,
..
.'~:.
.,. "
,~ ....
"'!:!.• ,.
c;'J I 1= Ai Bi Ri-l
-'~
~rl.~,
o;;!
,'"
•.;:.
"
":.,
~·.. ·
,'l
.•. ",
'\;,
l,,;
7!-' ,.-, I
11 \..,."1
l;e'
i':'~.
i;j' .-
Y \.. \.

l,~.",
l:~:;' ~ c-
....
\~~"
"!'1:1I','"
l',
) ,
.•1
''Il..'"
'w,:"
i¥;' ..
,f;v '
'' v
I 1-
e
;,',~>,' Rl
~, •.-, ..
;,""'...
:~~j_~,
: ';',
Si
Y..-: '
"","•.
..,~
l·'-
.,.. ~
Figura A.22 Disattivazione degli effetti dei riporti nel sommatore completo attraverso
;;'".'
,,,"."'. l'aggiunta di due Iinee di controllo che rendono disponibile I'AND e POR dei due ingressi
;tot".;.'
,;..~,~
",.. .
~/""
__ '.• , .
~:t" '
...
.,':'
~
~;{:.
• Se C3 = 0, C2 == 0 e R_ 1 = 0, allora Ri = 1 per ogni i. Conseguentemente la rete
~"
- "....
calcola Si == 1 ·0+ Ai' 1 + B i · 1 + Ai' B i ·0 = Ai + B i ·
: j,t'"!
I,.
:1-,,,,,
,'"
~~j. •. :
t ~~"_
itl~;,
"M"
8 A
~tf,0,~
~
" ....
.1::. " "
'• •''''.
....
':~";il ,

''
'"''''''.
,,','. ....
~,k "\~

RS
r, "'.,
;~~4:1·' Co
Iii1~,i::' c,
~".:......
i~i~,r,
" ... ,;,
, ALU C,
C,
.l\il1:>
".""
'"~",:"
1' ',~
"1'".~
I "
:i~"l, ,".'
'•.." .. ,
T
";~~\'''''
t~."" '.:
~'i' ,
~~.i' ",
S
IWJ):.;
1'.:l·r~ Figura A.23 Schematizzazione deU'ALU risultante.
:S~~.:~
........ .
'~;:r-}.
"6.!J'"
~iJ~
"',- " 10 schema della nueva ALU e ripertato in Figura A.23, mentIe in Tabella A.3
"~"'';'>
"'~"','
l:c' viene riportato il dettaglio delle operazioni di rilievo. Ovviamente sono possibili altre
k~~"::
'~~'
,,~ . operazioni oltre a queUe riportate in TabellaA.3. Per esempio 1 con la configurazione
!~.!-'~'
,~.,...,
.... di controlle 1- 11- la rete calcela A AND B. .
'1".'-,'
• '!F'.'l'
"
':~'::,
Vale la pena di osservare che 'nello schema di Figura A.23 Ie linee di control-
·t~A· 10 sana tutte separate. Alternativamente si puo adottare la convenzione di presen-
'?1<"'t...:
\: ':j'
~"~',".
tare alla ALU un comando in forma codificata e inc1udere nella ALU il necessaria
-""",~
;,.:;' decodificatore.
~I~r.("
1;;1'"
'~T"
IJ~:'-
'~:" •."
,!R~\'-,
'''~t.''.
1; ~;;,~.
~l .'>;'
.
1 '~,.
'''';,
...
'~'
,
' "'"'~I
0>
~.~

'1::"

536 Appendice A
',';~~~~','~
,.,.

..",
'
>"
".
,'.
· ..!p;' . ......"
'. 'I"" l
~, .. '''''~
-,·ilb
C3 C, C1 C(j R- 1 Risultata Carrunenta "~""
""iff!:'!!
'··~!~'U!
·'·Jo\:"'I
· '!.l\,~."
0 1 0 0 0 ;0+ elezione di B ,.r..-:,'t
, ~t ~'3
0 1 0 0 1 S;0+B+1;B+1 Incremento · :~f:··t
:~";"~'i-
0 1 0 1 0 S;O+B;B Complementazione · "-:... '.
." ."!"',!,"
, '··'r"
.- '1 ~~ ,'
0 1 0 1 1 S ;0+1I+1;-B Cambio segno "'-~'""
'''''~'.'
· ,~,.t"t'
'.' )'>
0 1 1 0 0 S;A+B Somma ' ',(\",'i
" '/"
" ...."~~"'-:;
0 1 1 1 1 S;A+B+1;A-B Difl'erenza . "".,
[~~~"'.
,
· """'~
.. !.;' ....
0 0 1 0 0 ;A R omma logica ' ,~, ~'~l'-
-
1 - 1 0 - S;AANDB Pradotta logico
..'"'['!f"'.
.. ,.'.""'-.(\~
''-Oi.''.
·~,\i,h',.-
, ,:.;').:"':;
Tabella A.3 Principali operazioni effettuate dalla ALl! .~. "r~':
~~.1. -"<;;
.•1., "''-
",', ~ "':.~\i
.,' .. '. '
:--'l'~li:!.··
· ":''';'JiI'~!I
"', rl\,'
'I"~.~,'
"'q,,_.
'·~''''
t~~~:;
A.S Reti sequenziali ")~,'I·:"
,.." ..
\~...,,·&
, l~· ..'1
~
:~-
:'.'H~·I
• , """/..:,
''... 'C!
In FiguraA.24, viene presentato il cosiddetto Latch di NOR. E facile verificare che se l':t,.'~'·0
"f" "
,-- I:'~• •~
.•.~!I'~>~',
ambedue gli ingressi valgono 1, su Z si puo avere sia 1 che O. Illatch di NOR e il piu " L\' ",,_
semplice esempio di rete sequenziale e la sua uscita dipende non solo dagli ingressi, ., ·.::~1/~{~
. :~"
rna anche daBo stato. '.
"'~"-"
'" ' ',I,.
,

,',,',
'J::.;,.;;.
·'.·~J'?W
s A
."~'~').'i
t.;? ;.
'i'~''
) 10 i:
L ", ,·r :
".L.\;,.,
' 'T·'';'
'(>;::~~"
r ..... z
)·i~iu.,::"
:'1>f!1..i.I'''
R /" .' .,:,. ::~t
",;·,,'-'.
• "~',j., :i:!
Figura A.24 II Latch eli NOR. n termine anglosassooe Latch significa luccbetto, chiavistello .. X1" "~'
".t r,:~.
ed esprime, in modo figurato, il comportamento della rete. '. fl";;' :1
''''\'\:~~
· ·rt:fi,r
".Iiii;.?:
".,
"." ''''."\.,
';'",'''
.,..... '~
"'(",."fi.-
"":l'h
:',~/~;t
!J'f:'
',' '.:JI,,;.!
A.8.l Madella generale ,. ,..:~,
,".C;,,'
""',
' ,
'I'I"J,'
'.
",.< ·1
"J;.,
.>. ",'i
In FiguraA.25 viene riportato il modello del tutto generale di una.rete sequenzial.e. !·;f,l.r
Si definisce: " >··c
·"l'";f.,
"'·~F:'
.
',.-.,
.,j.
- i1 vettore delle variabili ~ ~gresso: ~ = (XIJ'X2, .. ,x n ) ','{}:
- it vettore delle variabili d.i uscita: Z :::: (Zl,Z2, ... ,Zm)
',""""';.
'" "
- il vettore delle variabili di state presente: Y ; (Y1,Y',"'Y')
> l..
,,~
- i1 vettore delle variabili di stato futuro: Y ; (Yj,Y" .. v,) ~.'.\
"~,:~
,
Con X-ilYi,zi,Yi definite sull'insieme {OJ i}. ".
.' . F
Una n-pla (X'l ,X2,· . ,x n ) c05tituisce una configurazione d'ingresso 0, pili sempli-
cemente, un ingresso. l' insieme delle N :;;;; 2n configurazioni d'ingresso c05tituisce "~If.~~
."',
l'alfabeto d'ingresso I = {h J2 ,.. IN}; ogni configurazione h costituisce un simbolo :.",""
->., ':
dell'alfabeta. '~Ii--
""'-".
·;·:~r~
"~
"; ...
,."
~'I
.. ,
J' ......
]
... ~"
"',
.~., ., Sistemi digitali 537
.. '"
" '!"
l!" I
b~" "'1'••
"f'" '"
.,,;~,

'. ". , ., ).
I'"
" '
h

t'~"", 0,
x 1 zl
3, "-.
t;:"l.' . · z=
->:::: ,'.
.' ",'""
xn ReI )-
"-- ' •• ,
"f;:.,',
'{.... :--: •
···
' . .
~"-,,
,'"
"'l
"", '.".
>"'~', ".
;j"""'"
,. ': ,,' .~
":~"
~I' yl Yl
. '--'" ',.
, .
-;'f-f~" ';'
-:"f";~
Tl 1-
~'
. "".'/
-;...
:""'"",
.,j., :
··
;'l;7"~ .•" ·
:1
;.-~'~_':.,'' y1
Tl
Yl
..',.
'..\' "'~,'
.! ;", \
·;I' ,,~ I.' ~ I-
I'['.,,"-, ,
'· ., ".',,,,
'.. ,"""c
'~'.•'. Figura. A.25 Modella generale di rete sequenziale.
''·f'··
; ". ,:;.".
"~1 ,
..
1
&·I'-
~ '..
,."
-~,,, ,',
I· ".:;
!' , '..;."
:,.....!'
00I. < • ..,. ....
""'" •
Analogamente si den.niscono gli alfabeti di uscita e di stato : 1-
,''t~'''" '
,.,: :,1,; "
""","' •
~;t,:·::,:,
','
":
" . '
°S ; {Sl,S',"
;{O"O" .. ,OM}
,Sd
can
caD
M;2 m
L; 2'
\
I-
,' i.-.,- ".. '!", --

.:;J. '.;.' .7
?W\\'~:i.;~
..i 'j"/,:r
. • dove it simbolo Oi rappresenta un 'uscita del sistema e il simbolo Si rappresenta uno
-
''t ;,,~
:~;l.;,:,:,.
:',,I ".'\'1:'.""
, ...,....
''·-t·_.. · , .•
":. .\;;~'r::,"
statO.
Si definisce Macchina Sequenziale la quintupla:
1-
"l,:..,'?:~ .
'~' .'~."':> '; M ; (J,O,S,j,9) (A.S)
t.'t:i~:E\·
!.',1.:.,....;;:,
:t.~ ,,~i;\I'
"j""""
." ,. ",,!,l:<
1'
""'''','
'J..
,,~':,'f~ ,'.
dove I, 0 e S sooo rispettivamente gli alfabeti d'iogresso, d.i uscita e di stato e
sono Ie due funzioni:
f e9 I-
~'c _'</" .. 1
rt~'f,1~.
: 'il":'-:~"""~" foSxI-+O (A.5) 1
''',' ~'.. ".
.. '".<0:::,••
' .~,.,.
~.,
- ...
h>"",..".
'·'M.,..!
"''''''.
'."""" 9,SxI-+S (A.7) 1-
t:, :'2;":\' . L'alfabeto di stato e finito, dunque la macchina ha una memoria finita. Di
!". :;.;;"';'..
,:,':.,'
, ". ;';:~'~'L cODsegueDza il simbalo di uscita dipeDde saltanta dagli ultimi k siml;>ali d'ingressa. -
'
.
I~"""
1:',."''','',,'
'1" _ ~",
\: ....'" Per questo si parla anche di Macchine ovvero di Automi a Stati Finiti. I
i.' "::::~ ...
r: 'I"'f~r;':' n modello precedente, nel quale l'uscita efunzione d.i S e di I, viene detto modelio I-
.",~ 1"' r''.. ,
'' "1"",~:"""'I
c;' O' di Mealy. Quando la relazione d1uscita e del tipo: f: S ~ 0, si parla di modello 0
macchina di Moore. -
. '"'~.
: La schema di Figura A.25 e l'interpretazione di una rete compo5ta da porte (rac-
", 1 '." ~
..
.,;
'

';'" ';"
'jS~
'-
'I"" __ ','
"
chiusa in ReI) e cia elementi di ritardo corrispondenti ai tempi di commutazione delle
porte sugli anelli di retroazione. n modello d.i FiguraA.25 indica chiaramente che 1a
1-
\;'I~;: ..
~, ···>;·:, rete 5equenziale 5i trova in uno stato stabile se il vettore Y che forma parte dell'uscita.

I
J
'. I .' '.
1 , , ,;'
della rete combinatoria RCI e ugua1e al vettore y in presenza del vettore complessivo
F". ,\:~;
d'ingresso a ReI dato cia (X,y). Be il vettore d'ingresso X cambia, ReI genera, con
~·"J,:·:\::·,
.."... ' tempo nullo, un nuovo vettore Z e un nuovo vettore Y. Se Y =j:. Y la rete e in uno
" .''.1'- ',,'.
.;: ,," stato instabile. Senza perdere d.i generalita, si supponga che il ritardo sugH anelli di
:' ~':: i",::'.', •
-;;-..t ..•,.,..
""'1"'::;'
.,
~\~· ~;~;~:;~
,
retroazione sia uguale per tutti, e cioe: 11 = 1"2 :::: .. :::: 1', = 1". ,Dopo l'intervallo d.i
tempo I, y diventa uguale aYe, conseguentemente, appare un nuOVO vettore (X,y) I-
.",, ...~..,;,
I'lli~:1
,li"... ;
...~ ','
, ',.
1/0'.•

.- 538 Appendice A "'I~'"


,'.-
'.:r"i' +\!1,,:
.•'in,j' '~'i~;',"
"~iI"""f
.~-

,
I 7J.
· '~"
. .
~
~:JI.
I.l'><;"
•~ '"r ~"""i
· ,," :;i~'j~"'
.~~.",

'-.\'~.' .. l'I:!l'~~
. .,
" ,':·'~"fftli,;r.l~;
..\" ·1 ..
in ingresso a ReI. Se , per effetto di questa vettore d'ingresso Y non varia, la rete ha '
'.• ~i').~'''''1;l;'',
"' . 't.,,""".....-
'1 "~r;;,,'
raggiunto uno stato stabile. -., ...
,.:?~~'i",;\,\ ..
J :,~i;~<y.~~',~.~. t"
\ E possibile cbe il raggiungimento dello stato stabile ricbieda 11 passaggio attra- '-..."""'~~'
1_.,.(.,.. r.~~,
-il'-!-.,

verso una sequenza di stati instabili, rna si cleve assurnere che, per un dato ingresso, lao
......".....,- ."r".,..".
., ..·,,,0,,,,,,,1,'"
~,,~'.'
' ...··... ·l,~ ...l' ·,f
;'.: ;'.1 '·~..;"l\1;.

- I rete raggiunga comunque uno stato stabile. Si assume inoltre che per tutto il tempo
richiesto per arrivare al nuovo stato stabile il vettore di ingresso non varL
" ""-
'. ~1Jl!1S!T';' ,j•
:::;j~~;j~'
.':-'1.'",~l:'·l·· -
I . ': ..",:K".~''''''''''''''
'~" ,
La precedente discussione e stata riferita al madella di FiguraA.25, dove e'e ".'...''',.....1,
"'":-fi''~'''
., ·.~Jd1i!··~~
\.'. ~of!l'_....
una rete combinatoria con tempi d.i cammutazione nu11i e dove tutti i ritardi sano · r .,t.•·•~·01<' ~i;'
"
• ,'.- 1.- ".:. ,.,
.' "~~>' A -"""''!-
concentrati sugli anelli di retroazione. E evidente che, tolti gli elementi di ritardo e \~. '~"""r..a .....

I riportata la rete combinatoria a una rete reale, il madella di FiguraA.25 costituisce


10 schema di principia d.i una rete sef[Uenziale asincrona.
'1<:"'~t:'" ~ .
~ .'}:f'!·.ii';ii;i
~. "l~'§~l
~'i~~'
• •:<-.•~ -·~"H
· ~""""II: . ~
,',"1""\1;"
",.~' ...--,'c',
La rete viene detta asincTona perwe essa reagisce immediatamente alle variazioni .• j";",
no, . ',-,,
-,'.<;-;" '.l. '.{: ,!
dell'ingresso, portandosi nella stato (futuro) previsto dalla funzione di transizione di " >'1,1'" I""~~
:-t'.... ;)1 •.. '1
':'I·I.'~·
',)J .~... ."'!j .' .
\ stato. Piu avanti verranno introdotte Ie reti sincrone, nelle quali gli ingressi sono .,.., l' "'~
rc',I~~I:i
campionati a istanti precisi e i cambiamenti eli state avvengono solo in corrispondenza ..'..,'."
,'.
"'1'"'\f!;~"~' ''
t'l .'
del campionamento degli ingressi.
.• .,.
" .."
',,.--.:'
~
l
'~',
··:,:]",...\(,,!1~"..."~"f..'i'fl'
~'~""
..., .;,-."
.
, ·'~'~~·"'''·~··
.. "..' ""~
"1·Y"S~rid:1·1:
. '.. '·@·''nI·,·,,-'
\,l;_{'l, .'!.;iii
\ A.8.2 Rappresentazione delle funzioni di stato e uscita
• ,L',',l,

,,''''~i!'
.'., -.i!.'
.~
. ;,.....\(»~ ::.i
..."prf'lfi%~';I\'~'
~:.no~·!"'~. ~t
- ·~t~"·~i'<;:~~::>;'l'
,."r! 1:;"'~=",;f,,
-I.l;,~.,

I Ci sono due modi per descrivere il comportamento delle macchine a stati finiti: i
diagrammi di state e Ie tabelle eli flusso. In ambedue i casi si tratta di dare una
descrizione delle due funzioni f e 9 che definiscono l'automa e che qui vengono riscritte
.," ).. ,''''~h,'',"'
-",~,.(IW''''''
.:r;~
,~.:,-""".",,,.
.... ",':'"
.'--'l"*J:",..-r.r
>~Ii!,{:i,i".'/,
• t •.,.~.
'l:"'."'1'
.;i:<- fll1'':~~''
,,,...,. ~
come: .. l<J~"
'; I,; ';;'l''':.i.''.
- 0= f(I,Sp) (A.B)
",. :.'":"1'
· '~"~j' ;"'"
.-mt ',/'-
~~ I-

"'.~."'''', '
\ Sf = g(1,Sp) (A.9) · ,'.
• .. h
",.'
'~L";~"A"t:.t'l~~II
~ ...,,.,,1.·
····"'~
•• ,,,,,, ,

:~ldf.lt,tWi,lf~mro
,~"".,.

dove la prima indica che il simbolo di uscita e determinato dal simbolo d'ingresso e •~,.t ~"'"'~
'1 ,;' :"'" i=. ,l1"
claUo stato (presente) della rete, mentIe la seconda dice che, 'con it simbol0 d'ingresso 'Off">'"
:'~' .. •.. ~1'··.· .
,."
." ',,". ,J .....,,,O,I. I1
• ",\.-w.".' ~'
.:j:·l~~ ·;('N.~
I, la rete si portera. dallo stato presente Sp alio'stato futuro Sf. · ~~J\~r''''~I
Un diagramma di stato e un grafo orientato in cui i nodi rappresentano gli stati "0~1':"~f."~
~"~ ""~.
... :"l{'!i'~.'1.;,u'".,
·....{r::...~
della rete, mentre gli archi rappresentano Ie transizioni. Un framrnento di diagramma
- di stato e riportato in FiguraA.26a. Essa indica che se la rete e nello stato Sj, vi
,, ·""'C',.;.-·1';,.
' .•'
· "",~I<
-.,
'.,.. '''.-,~
-,'. '~"'<'J. ..-."
·.'·,••.;:~I~;Y~~t1~1
~"",,,. ~·I··
\ resta fintanto we I = /z. Se a partire dallo stato S,. I'ingresso diventa I z 1a rete si '"t,-,'J:'·.",
':: .'~~i'~" i~
· -. I·,~ "{~'
porta nella stato Sj e vi rimane per tutto il tempo in cui I = I~. Dallo stato Sj la ',n :';;~"" )~.
··~"f·"1''''·
...., •. ". "'-,.j.
rete torna in S, se l'ingresso ridiventa I:, mentre se l'ingresso diventa I'll la rete passa ,'. ~ ,~:,\ '.o:·1",.'U;j1l
'/' ,~r,,7,~ ;"'-r.
,~.~>--,,<:
attraverso uno stato instabile Sk e quindi si porta nello stato stabile St. Da Si. se ,"t;;i~{,",'
,.> ,~ •.!J''!-;~'¥j~'
,.",'''' "..,;.~.",
l'ingresso diventa I VI la rete 5i porta in un qualcbe altro stato non indicata in figura. '~"'I"
.. ·~Q~r,.tir ~
n diagramma degli stati·offre una rappresentazione molto intuitiva, rna it suo ":,~:fi:0,i';;
,",':"I\~r·,yU
contenuto non e formalmente elaborabile. Per questa motivo si ricorre aile tabelle di ~,J.;._,~..~
',,-
' .. -'. --, ...... ,
~.".,

• ,iH1t~ ."'· ~.
Bussa I traduzione tabellare dei diagrammi d.i stata, facilmente riconducibili a funzieni ; ·;,;.t':::~';

\ booleane in forma tabellare. ·


":::"""~
,~:.:~-,. ""~
'·'J-ft;.'·~.
• n frarpmento eli diagramma di stato eli Figura A.26a e stato riportato nella cor- u; ,d~,~;-0'~
'('i'''\\
:.,,-,,!,'";,i{;i"~;
rispondente tabella di f1usso <Ii FiguraA.26b. Nelle tabelle di Russo di reti asincrone " ,•.,.-S.,.
, • '< .•• ,.~.
• 5i usa cerchiare Ie caselle che corrispondono a condizioni di stabilita.. Per esempio, ";'\':~'.i!
'..',.~'.-:~}t"
,• >(::,·,~~·!
10 stato Sj e e
stabile rispetto a I~. mentre instabile rispetto a Iv e /z (si veda -'-,.-:'>".
· , ·-~··~~~·
• Figura A.26). ..
:;;.,..
.. . ' ."....
,~
:;<

''''',,1!;.J}''1
~

..>1"._....
. ....
• . '1'"
· "~·I)r;,
~

· .'.' ....."~.'1,. "'-- ,


:";'.'!'f .
1
;
..,

,
•.
'
-
:r: Sistemi digitali 539
."

i,...
,

~·._"
" ...
·• •
......
'," ,:;
,·,
-." IV I Ix
-"' I. Iy I.
'"
..
"."
,;"
"..
...
.",.-' " " ~ I, "
",
.
" ",;) "
-''_/
• ••.•

'1,
'I
" "
-
>
,,' " "
t
~:'
'.
';;, -" Sl
"J
-''",.. ".' Sl.

.,'
i~i: tal
' .. (b)
H·'
...·to·
,',',-" .' Figura A.26 Diagrammi di stato e tabelle di Russo: a) esempio di (parte di) diagramma
c'·
!ol . di stato; b) tabella di Busso corrispondente.
1.",
.,.
.' .'
~ ..
i'I~ "
''.l'i1I''".. SuI diagramma di stato e sulla tabella di flusso si riportano anche Ie uscite della
" ..... '-
l';; "
··'I rete. Bisogna perc distinguere tra il modella di Mealy e il madelia Qi Moore. Nel caso
~
:·I.
:r:::'· di modello di Mealy Ia rappresentazione e quella di FiguraA.27.
i')""-.'
'''1:"
i-.."
'"''
tr""u._
'··' •.-',
,~:4'
",'.
','" . -I [, ~
.
.,',,"
,~f/·L. Iz.Ojz
~'''
'~P'.
.', SI Sl Sj I I Si, Ojz
'
'(il~
.,I'i':
I'- 'j, •
-'~,"f'..
·I~",.•.'"..., Figura A.27 Rappresentazioae delle uscite col modello di Mealy.
~1' .. .
o,J;~.;'
.".

.Ir>;
"l" , .
.~c
"
1,
(
ll,..
'lI'1 .'
~....,,; L'interpretazione e che la rete in presenza della state Sj e dell'ingresso I~ si porta
If:I'
~I·i~'
"~
. nella state S~ e genera l'uscita OJ:. Vale 13 pena di.rimarcare che OJ: e l'uscita che si
,
ha neUo stato Sj e can ingresso I:. mentre Si e 10 stato in cui si trovera a transizione
>("
~
..
" .
. ~;.
~''-;1'
.,(" . effettuata a partire da Sj can Pingresso I~.
1'",~·
·'I"
'. J.;,
~~li;l'
'~J" .
~
..'1<,\
,~,.
lJ./!;~t"
"~":
"','
>:0'.
J" L
'.l!tl'. '

~8
,,<:.,'

8
""'
~1i!-'< .
;~I~;' SI,Oi}' " {Sj,Oj
UIlo.'
~.,
, ~.
.. '---'
.:J: .":'c," •
"

;'iV;" .. Figura A.28 Rappresentazione delle uscite col modello di Moore.


~~i',)"
~

~~'~t'
~~-::.
:.
\~'~,
,Jlil''j"7"
. ."",.'
!.~~;!T:.
: 1
n case di madella di Moore eschematizzato in Figura A.28 .. n simbola di uscita si
!tr.
.Ii"~
''-' trascrive nel cerchio accanto al nome dello stato, mentre 1a tabella d.i flusso si moelifica
·:~W\·
<:~".,,(
~, ~,
... '
in quanta per l'uscita basta scorporare un vettore di L = 2' posizioni.
1~' I, 'I .' .

.
,
.
. ' ,j:;'~"~
- ·,.:,'i<i.. r-
'~" .",~.
••• I"j ~
I'
- "'~'l<.~~.,
.. ~,
540 Appendice A .,
" ,oII'~:;"
'. \'1-~"p ~",,,~"
- "fIIl· ~
-1'1·'...~.,
.'1.: ,
.....,'\l'''iJ!i~';-
,
~,,' ,
'.'
'.~':~I~;'::(t\!
.
, ~1~J'lr
,'.j~J,~:~~f:i
A.9 Sincronizzazione '.. ~.'~i'f};
· .... '''~
";t ''''~
'.~,.,:,.,;,";\~~:
;,s.:~,
Si consideri la rete di FiguraA.29) nella quale al latch di NOR sono state aggiunte .~~. ~"3'
:-;"X'\.'I·
due porte AND e un ulteriore ingresso. : .'!t.'(~~I
-~·~···'···I'.'!
_: ,''';''1<':'
..
,;.,i-
' "~'"
::;",,,II
:.'.: ';!o'''
::.:~.: /'
• • , · ....J ," ,,,
.J>-l I- , ,--- 1 • -.,.,' ......:

, L s r-J I 1 rL-IlL. _ ..<.::~"."


....,.•\;~,\
" """;' :;i~,\;1'
r , />,
• •• ,.. ,- R
Cll n
!VI
n
I
n
L
n,-_
· r"~',J",
",,, .
_ ".':1 .~,":
""'M,lt
..··.~~·}:;l
'.", .,~,;..::;.
· ::,.'~,j..:
I.) (b) """"'~J'''I',

Figura A.29 Trasforma.zione del latch di NOR in flip-flop sincrono: a) schematizzazione;


.. ......
";",,,,),,~.',,
>,;.. ,
~ ~ "'
. --; "{l'
t "r,.
""
b) possibili andamenti temporali dei segnali. _,-"".:>0" •• "
". ....-"',,
"~-'i:'
,·,N,·;
,..., '"li,
;, .,.,,~~~:,,
~:/·,:il("l."
. ':-',~~~}
, . . . . . . ,!~,,~:,,:;
~. ~J;f:'~
1
E faCIle convmcerSI che quando 11 segnale Ck vale zero, 51 ha che SI :;::; 0 e R == 0,
indipendentemente dal valore di S e di R. In altri termini it latch non cambia stato <,:~.(~
se ~k = O. Q~ando invece Ck = 1 l~ po:te AND sono trasp~renti ri8pett~ a S e :"'~~~1;
R, 11 l~tc~ ha l~ ~~mportame~to de5cnt~0 m pre~ed~nza. In F)gur~A:29~ 51 ha,un ·,:~,~j,~~
~semp1o di POSS1blli andamentl temporah. P~r ~aglOm che saranno chlant~ m segUlto) T.1.:~i~:~
il segnale eke oormalmente un segnale penodlco. Anche se non e essenzlale che C k _ ~~~t~ "'j
..

sia periodico, questa assunzione 5emplifica l'esposizione dei concetti che seguono. Per -:·;;~(;'t'l
tale motivo esso viene denominato clock) a indicate che il successive passaggio a 1 del ':":'::~':i
segnal.e .Ck, co.rrispond~ a1Jla:anzar~ del tempo. .. - ::_;;~1f
Sl mdlchl con T il penodo dl Ck, con ..::1 1 la frazlOne pI T durante la Quale -::.'~q/}'
Ck == 1 e con .6. 2 la £razion~ di T d~rante la quaIe qk == O. Si fac~ia inolt:e Pipotesi -.fti~'f
che durante l'mtervallo .6. 1 I, ~egnah. S e R non vanno e che ..::1 1 Sla .suffklente a far - .t:_~$
completare I'e:,en.tuale translZIOne dt state del l~tc? se quest~ e prevIsta. ';,:-;~i,(,J
La rete dl FlguraA.29a ba questa carattenshca: eaaa al accorge della presenza .>!;~)j.\
di un ingresso di Set 0 d.i Res~t solo in corrispondenza degli inteT~lli d.i tempo in cui ~~[;m,:;
Ck = 1. In altre parole) l'agglUDta delle due porte AND e del segnale Ck ha permesso' : ,,:,:';J.~
di sincronizzare Pattivita. del latch rispetto a1 segnale Ok. ,::',h#;
·
ConVlene . a fl''Lp-fl op.
soffermarsl. sugIi eIement'1 di memOrIa . "':.:.~~~.'.:
",','! I

-":'-'~{i'

11 flip-flop SR La rete di FiguraA.29 costituisce, seppure in forma rudimentale (si ::nt~N::


,r",S.,'",v".".
.",.'"
veda pili avanti), un flip-flop SR sincrono. n FFSR sincrono viene schematizzato come -"''''~'
:.l~f;,r ",
in FiguraA.30 9 . ·!,..,-n'
....
r~·,~~... ~
. '".,,:,..,
~i:~_U
Ovviamente la funzione di transizione dello stato di FFSR sincrono resta quella ""~""'
.' ,i';II
di FFSR asincrono. Tuttavia e necessario mettere in evidenza iI fatto che l'attivita , ",.,1 .....
",,:"J,..
'" ,.::t,
, .t· ~l:
del flip-flop siD~rono procede per eventi discreti. A tal fine si USa indicare con y 1a , ).":.1;1
;;.:
-,;':,NM
variabile di stato e si scrive: ".'f":R"~,1
.".'
,.:
':e",\~"
y(n+l) = S + Ry(n) (A.tO) "~'~"'
, ,,(.,'>,1,
,.'.....
,··t; ~
",.•'"
.. ,~._;.~~
90'ora in avanti, a menD di indicazione contraria esplicita, quando si parlera dei Rip-flop si
intendera parla.re di Rip-flop sincroni.
, .
,~,",,"~
...

,:.,,1;
· ".:"\':,'
"~"
• ~:"~J
-. ;!r
. .•
.' ',;0"'
.......~
",," ,
'~'I.
J~!":
'.
.'\$\t.:
,.•.,.,~
,.,"' .... 1.
:,' J;.,':'
,~"
"I'~;~'"'
.... ,.
p, ,'~
~"".
~ ,
Sistemi digitali 541
,,1''''
~"... ,
. ~.;;. ,
. .~;-;:
', .....
1, ~~.

1.
rr,.,~
~:tt;, ,
I

, ,..I CI"ok n I C",k n+ I I


;~'t(,·:·
~'.",
~l'~~~''''
IT':'~";;'
. s
Ck
~ ~D+l) , y(n+2~ _ _

':
.f:,'.,':' '
:,,',., , R y .-JI I
I
II IL
)
f'r't-
I···".i-",'
I·.;~::~
~ ,'~.,: .
!I,!I'J~"
,""
;:",,' '
' '""ll
t:~' ;'.:.\
'.,
,W " - '

\ \(~j1
1¥.",~
, Figura A.30 Schema convenzionale del flip-flop SR siDcrono e interpretazione dello stato
presente e dello stato futuro rispetto a s1Jcceisivi impulsi di Clock. ].
' ~'r,'!,,',','
, '>1', ::: '.
....rJ;~;~'
t
: ,i':·,
, ,
,
. ;•. ,
~!1 :::. "
..•
:,~,V:',:.',.,,'
per indicare che 10 stato in cui si trovera. it flip-flop sull'impulso n+L esimo dipende
':~' ,

dallo stato in cui il flip-flop si trovava sull'impulso n..mo e dai valori di S e R su tale ).
, .. ~1:.,
"""'"
, /iP~:"
'<,~t~J: impulso.
.
'.~"
..OloJ "_
",/. "'.,
,.'."-
~ ,.,~ ~l', II concetto e sottile emerita di essere ulteriormente discusso. A tal fine si faccia -
;.~,.·"
,,,'flj-'"
riferimento alIa FiguraA,30b. Vimpulso n_ mo inizia all'istante t n ; a tale istante
,~,11'-:'~\";
} r,l~':·.,:· _ 10 stato del flip-flop (conseguente alIa storia passata) e y(n). Durante Ll 1 a causa
" ,~,: 1-
;;:,·.,,·S:~
~ :.).~f;;:'.,.· dell'ingresso (S,R), che per ipotesi non varia entro .:11, il flip-flop cambia stato e si
~~1~~!~\, porta in y(n+l). Lo stato y(n+l) si mantiene fino all'(n + l)-ma impulso di clock. \
Ovvero, 16 stato ip' cui si trova il flip-flop sullo (n + I)_ma impulso di clock deriva
;:·'It~1'
~1~~~~:' dallo stato in cui si trovava sullo n_ ma e dal conseguente ingresso.
I.
~;;~,;~~~<. Frequentemente al posta dellaA.lO si usa 1a notazione semplificata:
~ -~~~~,,;~­
lf!r~lV;~, y' = S + Ry (A.l1)
i~~)~~Wak, \
f~;~~.;' dove y' e 10 stato in cui 5i trava il flip-flop, sull'ir:;npulso successivo a queUo Stl cui si
'hH!:~11h:: trovava in y.
f~~tii:·­
$:!~~~f:. . : n' flip-flop
).
J:;; l~*t\:, ; JK Malta simile at flip-flop Set-Reset (FFSR)
Ilip-flop JK (FFJK) e il
schematizzato in FiguraA.31a. n comportamento e identico per gli ingressi 00, 01 e
\'~ ;I~>, 10, mentre per Pingresso 11 FFJK cambia sempre stato. n comportamento del FFJK
;; ~c~~;:
~t~ I,i~:~,;~:
edescritto dalla tabella di FiguraA.31b, alla quale corrisponde la mappa di Karnaugh ).
di Figura A.31c e da cui si deriva:
#;-'nfflrt.'
!.:- !to",
:;:!l~.:,:::
', ~:~~"'.,
y' = yJ +yK (A.12)
:: ~~:f~\~~f:," )
., ~,:,
"....
"., ;'r 0.'..•
'- ,u·,·
,.,. ,ti\-- t.~.-
... ,~! ,."-
' ,'r ,',
~,1' ~~{I"" . J K y' JK
,..'
U",~
rl\~I"''''
I, ' (!i.t ,
'"
I,I~' 'I
'I' J a a y . . - - -- ..
1.
.....
.. ')fi"
.',:' '
~
,-., J ..,;r.. ---l> ok a L a I a 0 1 1
:,-, :Li~••I',
f ~~F '
1 ~ •. ~::,~.
M' :1':;-,. . ~:" K , L
I
I
0
Y
I
I L 0 0 L
1" ..[.~..-,'-':
'"~1,;_.
'"-'~'~'
.,."
'id '.\.,'.. : '
...
.,
,,·,:, :J.Q....; .
.. \ \:~:\" . , (oj (b) (e) J
~;\, \:\,~thi"i",
" ,_ '; Jl.. ,
~.~;. 'rq"f!W.: Figura A.31 n flip-flop JK: a) simbolo schematicoj b) tabella della stata futuro b); c)
,....'..,.: '.!t.,it,
""
~

;", "';_" , '


I .Y
-,-, mappa dello stato futuro.
I" j'l;i~"
,;l. ' ."• ..
J.'. ,.;:m,'.1 •
1
'"'' 1f.:I-·"•
~~ ';i~.i
•.• '"O!~
'."1.::'' '
·.I"""l
""";''''~
·.:'.~tf.
.I-'"...
I
542 Appendice A
,., ""
•. 110('"

:;. ~~;;
- .,'d'
,:If:·
., :'~~!J:~ ,

- II flip-flop D n flip-flop D (da Delay) realizza un blocco dl ritardo pari al periodo del
e
clock T. L'ingresso a FFD la materializzazione del suo state futuro. L'equazioDe di
.·:'::~~I ~
transizione della stato e banalmente : :~'~l.11: 'r. .Ih
r,:\:;~~~~I\l ~~
y' = D (A.13) .~J~)J~~~:f
- ·.'I;~~"~* ~
II n simbolo del flip-flop ein Figura A.32a.Vale la pena <Ii rimarcare che y', 10 stato .>§:~~;t~iJ
futuro, 10 stato che si avra. nel prossimo impulso di clock in conseguenza dell'ingresso ":';"';~~¥*'
e
campionato dall'impulso corrente. :.~~~~f~~: F · ,~vJ:~ll'.
;
.,"',)".,""
~,r-I~"
.

I
"._ '''f.,F "
' .~" ... ··~'i,.r.i<!
··.. \("1~~ "l'
D , T , •.. , ~)r'i;'J~W'
. ': ,~
'~"IlII' .-.
:·.i'·.:..l~.,·" ~
""'I'~'\:li.1
",.; .p..,,;!Hii!~"l .
- --IfCk ,_I ----1I>Ck
,
, , '.~ '1,
,""~."
••.•q, ".,."
I" ,
".' !~,' .:'11. ,
· cO'".''''''
~.(!~,.•
''':~''''~' .:\:
a) FFD
Figura A.32 &hemi convenzionali di FFD e di FFT
b) FFT
~ .......
,>, ••~
.~::Yi;,~~J.~ :
,. ,
~ ....t\
I~~"'" l;
j,..~

,'s ":~lt""
" , , :' .. .....
.... ' ;,£itl r

!
""1<"',\:",
_" .• .,;"~'If,.~"
I' .• , ...•' .

'~''''''l''''·,,'.
"'''.''
· ';;~'1 i~i,'·' 'i
"·'·I"~.\~
t:,.~~,,?_·
': ,i" ·u;:·f "
n e
II flip-flop T flip-flop T (da Trigger) schematizzato in Figurak32b. FFT cambia , ,.'~ '-\.\"': ~
}!"7(,~1~.~:·
.,. II ".").,'1>. .,f
Jltato quando l'ingresso T vale 1 e testa nella stesso stato se l'ingresso e O. Cia' ,i;;~'.!,ll,'~i!
IM""\' ."
comporta questa equazione eli transizione di stato: ...
'l,:"l·,'.I~'·~ '
~,,~;,~"
' , ' , \~ "
."1·'''.Jh.,·'
\""';, ",' 1~
·

y' = Ty ". •
(A.14) · :,I"I'I"!"'f\'
;·::;~~~~:'..Ilii ~
·",;.'0\:1";',.,
• '/·l:'; '~",
..... ,,~II.'
{l;~'~

- I A.I0 Reti sequenziali sincrone ,""1 1)" ~


l '~'f'··:t"l~'!''
~,.~1,4;.~t.t
· I, ,\'"4:,iC! ,
· '';' 1' 'tlp,.t ~
.. Nel madelia d.i FiguraA.25 gil elementi Ti introducono ritardi potenzialmente diffe- .. ~:. lit;i?:r( f
,-J~"I~' '
reoti, la. cui genesi era davuta ai differenti tempi di commutazione sui vari percorsi ",',
· ..' . .. ,
~
~'~,~! ;
,,; ,~ .i~ ,
seguiti dai segnali. Se ora. si immagina di sostituire gli elementi Ti con altrettanti ~
..•.
, :.'." '~' ~
.,,~;'~,.,

...Jh
FFD e si suppone che tutti questi vengano azionati dal medesimo clock, il madello di "fo'.',:),.:.';I(
· { 'h: :t!i:i
.~.,,~ r
- FiguraA.25 si trasforma nella rete sequenziale sinerona come quella di FiguraA.33. : , I..)'"
.;0 • ~ "'\1
.' ,'.";"·,i. ~" .

I
l.· '.:.1:--l\~~, P
.,.... %~:( ~
• ~ ._";;\~.,
~""'J~:>i!; §
I · ··· o ",:',~,I,;.
··
4
,., 1~::';~
RC '''';''''/'''ifl'
"',:,' :"':~~i~i ~
·
· ·· "",,"': ~,,:,

I
, "1""
;- -' .'t:·,.,·'"
.,',.!~ ••.!\\I,
"""
""',:",'!{
".
· ,.,,,.; !';
,.
,1 ,'1 "•.. ~'
QD .:' . , " ;'"..,
:~-,

- I
· '~ .~
,;. ".:t,..,,<:
~ ""~'-'"
.,'~ I ~.....-.;
. .':~~y.;.,
·:'.. ,":"'
:J~;"i
J yn . y'n ,(:- ... ~",
Q.D ~: ·i¥:.P


I
,,;~./)~
' .. >,.. ~.
Clock "'e~'


I Figura A.33 Modello di rete sequenziale smerona.
,:::·'.~~:,~;
,''1''
•,.',.:,"
· ~ .(I'J,;
,,,.,, ..
'~"'~""
.., ,;:I·J,~. -,
.....:'

I
,~,

·..".- h 'i\c.,..,'.
~.
'0;\1'"
~I"i'
.....l..
.
.':l;'~~
.,'......... ~
Sistemi digitali 543

,i~·.'

~~~~ L~ r.ete. di Fi~~ra A.33. cambia st~to sol? in. co.rrispondenza degli impulsi di clock.
hW;'·. Non SI nchlede pm che 1a rete combmatona Sla Ideale: come vedrema al paragrafo
~il.':'.: seguente, basta solo che i tempi di commutaziane di RC e 1a frequenza del.clock stiano

~* .
f.;;'':. nella giusta relazi~ne. Ovviame:nte facile generalizzare 10 schema di FiguraA.~3, ~~ e
q~anto lo .stato (ClOe la .mem?n~ della ~et~) p~o eB:ser.e O~t:Duto attrav.er~ vanablh
.~.~·.· dl stato dl qualunque tlPO dl fl.lp-ftO~. Sl o~tlen~ q~ndi ~l model1? dl ·PlguraA.34
'~::~;I composto da: (a) una rete co.m~maton.a1~ CUI usclta e ~lOne dell'lllgreSS? I e della
.
F\~E:: stato presente; e (b) da un IllSleme dl flip-flop deputatl alla rappresentazlone dello
h .•. "., , stato
....
."" .... '.
~~.,
. .
"1""\"
';:O~JlI!.o.,<'" \
"'" "','.<
~\ ,~;"'~'.:
".'!_~'
\
-..
~"t\!),("
..~;~'
.'",,:
~,~~.' ..
I o
,"-".
", ,.,
,~.
~:,:;."
','t.) , •
•• I""
·.,·;r·
,~":",, . l~'·
.
RC Element!
di
,I

~ ,,".' yn
;j.• ";;, r- memOrIa
:~",~
r.,~, Clock I
'l<~y
~_."
.. ,"......
" .~X·,,·
. h

.:t.;~.
'~·"r"·'
i\1'_l',>i~"
;'-~~"
'
\~l<!.i'':''. Figura A.34 Evidenziazione degli elementi di memoria in una rete smerona..
"~'i'" '
~, ,,".
. !:;:,-
fl."",
, (~J~i
Jl..,...,. ,
'~~'f";'"
".',:,'. "
Prima di esaminare nel dettaglio i1 comportamento delle reti sincrone occorre,
"~."
iii"
1~"'," ....
',11 '~." .•
~'~
. :'1' ' tuttavia, spendere ancora alcune parole sui flip-flop.
"',,1. •
, ~~
'Z .~,

~;~<
~" 1h" .
''''''';i· A.IO.I Flip-flop Master-Slave
t ~\1:.:
,~~~r,
~!~l.;r,\·
f'~~. Si faccia riferimento aHa rete di FiguraA.35, nena quale e rnessa in evidenza la pre-
'~"i.;r'
;:'lfi'\,
.. :",
,.~
,~ ".. senza di un FFSR. Vogliamo mostrare che un flip-flop, realizzato come queUo in
~ \ ".;,
''''~l'
. FiguraA.29, introduce un serio inconveniente.
. ".,
i,~ .-C
rr.-\lii·t.,:·
1~:1"
.:'t.i'''~
Pt~:
I o
~,'i::\{ s
y
RC
_I I,
>f:'il,r SFF
§, ' R
4'01:;.-'"
~~'i"; ~
.;~ 'J' Clock
~
,';'
,~"' ...
!l"~,,:'"
"1"",'"
.'1:':
.. '
,J,'''W .t-
~"~' •.

:'.1'"....
," {·t'.',,'
~':'
'

ot 'I ,r-
"~'"
,'!1u..,"
'i'w, , Figura A.35 Rete sequenziale smerana. L'uscita del flip-flop viene riportata in ingresso
,.~., '
"~~ . ,, alIa paxte combinatoria
~i.
¢';l:~
.;.;~
.. ...
,;
U~<:. Si indichi con L1p p il tempo rich..iesto dal flip-flop e con L1c quello richiesto dalla
.:
fiit •• '
rete combinatoria per commutare. Si suppenga che l'ingresso I sia stabile da prima
'1.~),., del passaggio a 1 del clock e che resti stabile per tutto Ll 1 .
;:~')t·· '
'''i%:'~'' Dopa fjp F dal fronte di salita, se S e R hanno valori cODvenienti rispetto aile state
il.,' "'~'
",
~I~.r,~" del FF, si attua il cambiamento di state. A quel punto,e possibile che, pur restando
;,
".
''';'"
. ..
~",.,
·;L'
...i',
.. '_ "
·r.I~M
, _'.~'h
544 Appendice A ':'-~):'
,.'.;-."'-'
" ';~:It;;;it~,~
·:·,,·'t";Itt::: '

I non modificato, il nuovo y determini in uscita cia RC - dopa iI tempo Llc - una /t~'*""~
"'1
",.~."-,,...
",. ~JII ~~!

coppia (SIR) diversa dalla precedente, la quale, in linea di principia, pub comportare . <'!:~;~.~;~
un nuovo y: Se c~o .si ,ve;-ifica, FFSR di Fi~aA.~5 cqmmuta ~lteriormente. . . . :t~~~i
~ altn ter,?1D1 s~ Vlene a generare UD:3 sltu3ZlOne malta dlver~a da quella lPOtIz..- ::,',:·::~1·:~
zata ~n A.9, e CIO(t l'mgresso (S}R) non nmane costante d,urante il.<1 1 del,clock. " . . :;.;:i~4~¥1.
E facile convincersi che se la rete fosse pili complicata, can pili livelli combinatori .' >~~~q,t~
e pili livelli di memoria, si potrebbe.anche generare una situazione per cui durante.::1} --~~~'~:~1
un FF. cambi~ pi~ volte stato, co~ la conse?Ue"nz~c~e 10 stato ~nale dipenderebbe in .;:~Wf~:f~A
modo lI~predIclblle della. dur~ta dl il.1 e dat. te.mpl dl commutazlOne e pot:ebbe anche ,:_,;:t~~'~B.~~
essere diverso da quelJo lffiplicato daJ valorI dl S e R all'atto de1l?assagglo a uno del ,,~,'~~#~~t
clock. "~·'":$.la
QueUo che si vuole da una rete sincrona e che 10 state futuro sia esatta.mente ' ,t~~.,.~,
d~terminate dalla configurazi~ned'in~esso e ~al1o ~t~to. della rete all'atto dell'impulso ')J~Jt\' ~
dl clock. A tal fine, occorre nvedere 11 modo III CUI It flIp-flop comrnutano. Restando ."<I~'( ~ , ,
fedell alla com~u.tazione sui livelli, il problema viene risolto can la configurazione,_,~::;~:\,,
Master-Slave dl FIgura A.36. ",~1.~1l1~!tr
, ; :'"'~~'t~
':"<~(1~~~~~
s .",'~,,"I..¥,"
, "",<,~
-'" ~ .~.;:~
I y '.'"11""'''''
~... ",:J:tl~~
/' ':,',' ;'i:~\11',::-'
l , . .,.I~I~",,!,~!,'.
l ",.. ',,~ , "",,1,
'I'

. ,\.~!/Io'f·\'''t'''
-:\..",:v~.,

[~ [ -y ""~i!,t'
,,~•.\l;" . ,
R
'''-~''m".,
. -, ,.;"";~,:~~~,,
"",~"'\

'''~:J~::\~'':~''~
","~;1.;;;" ',~'1
""'jf.~~7.':
Clock
" .,' ~,,'
:';~t;;.f,
"oW
1;z
Figura A.36 ConJigurazione Master·Slave, -, ,,_,~"r." '-'~>
. . '_."",'~J;:\:-,
-",,,."', ,~'
.~.
~

',l,.~,I~,'j
,..,,,,,',,..,.,
.. ~'~~~.. ::'.

In ossa sana presenti due latch in cascata, quello a sinistra viene detto Master', ' :;~~l
quello a ~estra ~lave. Quan~o iI. clock e nello st~to 1 il Master pub ~ambiare stato, 10 .t;:::~¥t~~~~rfl
Slave ha mgressl a zero e qumdi non pub camblare stato. Quando 11 clock passa alIo .f,.pt?f~
stato O} 10 slave si porta nella state raggiunto dal Master, mentre questa non pub piu :!f~\~~r.
commutare, . -~·''I.'':'~'I'
. Con rife:imento alla Fi~~A.36b, deve essere Ll l maggiore ~ uguale.al tem?o 1\'::,':~:,t~T
dl commutazlOne del master pm lento nella rete} affinche quest'ultlmo abbia l'Usclta ""~1_~:
stabile do~o ill e quindi 10 slave abbia ingressi stabili quando si verifica la transizione ..: <1'm:~
che porta 11 clock a zero. ',: ,"",'w~:,"~
",,,.',,.
.r precedenti concetti vengono riassunti in FiguraA.37, La FiguraA.37a 1 rappre- ':, ~~~Y:~~:,;
senta una generica·rete. Per. essa si assume che, al momento del passaggio a 1 del \~}:'h:;i
clock, Pingresso I abbia raggiunto una configurazione stabile e che esso non cambi ·~:,t:':':,
,'.',-
. " '"·-'",1"
',":.;'~'I~,:
,
durante ill.
Durante ill i master cambiano stato, rna nessuna delle variabili di stato cambia. ,;.,',·~;,;;r
, '"
Poiche I non cambia restano immutati gli ingressi ai FF. Dunque) durante .6 1 nessun ,((./<
segnale cambia stato entre la rete di FiguraA.37. Questo fatto e schematizzato con <"J~~.:~
la linea continua in FiguraA.37b, ,::i\,,/}~'~:i
Durante .6 2 i FF preSentano Ie uscite y; e quindi possibile che 5i modificbino gli. ':::::'::'
ingressi di RC. Di conseguenza nella rete si instaura un transitorio che termina quando .' :':~;~;:.
. ""l'"(;Q,il'l"m
'~'.
"1,
. .", I ...,,,
-£t,:,
i" .
,tlJ~
'~i.:~e'·
1'1:1~';
I'· '.

1-
):N'J\
;,~i,l:.: Sistemi digitali 545
,ill~:'~'liS'
'''ri '

1'" .-.
'~'"
!ili{;' 1'
~ ~t~· . Ie porte nella rete combinatoria hanno concluso Ie loro commutazioni. Questo fatto e
~ :~~1~1::
schematizzato con Parea ombreggiata in FiguraA.37b. Naturalmente in questa fase il
~'.EJ~~;:.
fatto che cambino gli ingressi ai FF non ha alcuna conseguenza sulle relative uscite.
~l;~:-:-
.,j:~t:
Si richiede solo chegli ingressi ai'FF siano stabili prima del termine di Ll 2 , in modo
che a1 successivo passagio a 1 del clock, gli elementi di memoria campionino ingressi
~lr::",",
ben definiti.
1t.:~\:"
)I.~;~~­
~~~~'t~~,:.
t ~~;;'
a.iji~'
, o,/
RC~
, r- ,
1

, :~i~5'
~:~j~;;~ ,
~*-:';.
rr
I .
,/~~,:~
,,-
r '1',1i'h~:.'~
~ 't~I"',
~ ;;~j,~~.;;".
' Figura A.3T
., "
Generica rete sequenziale sincrona e cambiamenti dei segnali.
).
" il,\>.
.•',
~ ;~\\::,--'."
~,
' ~·I'
. ;"t~!,;·,;,·
' .l,IIi'lf ','
, I
. '::W;~';I~', E chiaro ora che anche l'ingresso primario I deve cambiare entro il z, e che
, • ~ , . ,- '"
': '~"'~~"
"', .. .6 2 cleve essere sufficientemente lungo da permettere' la commutazione dalla parte I
,... ,.
,t· :<~"
combinatoria. In conclusione, si hanna questi vincoli per L1 1 e .1 2 : .
,J'''i':'
l,;;:-.
, i, ..r::,,;;-
\

~ ':'~/:4'," • Ll i viene scelto in modo da esseie maggiore al tempo di commutazione del pili 1'
1, I>'
:
't'::,:
,~"._ lento dei master;
W ~j"
z.'. ',._';.
.' ~

.'
~ ,.'t'
'.
','~;(!"
j.. ,I,, """'/
• il z viene sce~to in modo da garantire la commutazione della parte oombinatoria.
, " 1"
.~ G:,:}f':
:':
L'ingresso primario I deve cambiare entro .6 2 / in modo da garantire il rispetto di ).
l Ii
l' {\~}{t
questa conclizione. Cio sicuramen~e accade se I e pure sincronizzato can i1 clock,
ovvero se lei' uscita di FF Master-Slave pilotati da!. medesimo clock.

~ I~":
.~ it~:... A.I0.2 Altre con5iderazioni sui flip-flop
I'
'~i'., ,~t:'
T1&,~,',~~·;. Lo schema di funziona.mento del flip-flop Master-Slave ci ha permesso d.i ragionare
:"~~:~
~ ~~;~: . secondo i canoni della logica booleana, ovvero tenendo in conto solo i livelli dei segnali. ) ,

~, '}r',;~., E ben nato che larga parte dei FF commuta sui fronti di salita 0 di discesa del clock ,
"'''' Gli stessi FF Master-Slave sono costruiti in modo da effettuare 1a commutazione del
; ;,~>
i ,~~,~ master suI £ronte di salita e quello dello slave sui fronte di discesa.
,;: ,,~,..-. E evidente che la corrunutazione sui fronti e preferibile~ alla commutazione sui 1.
,-". "'~""
:', !\,:.'~,
,,', livelli. Infatti, per il loro corretto funzionamento e sufficiente ehe gli ingressi siano
r". '(~-l~ stabili sui frontL Anche se di durata non nulla} un fronte e comunque un tempo
< ~'~}"
,.. ~ ,
molto breve. Nella pratica bisogna tuttavia tener canto che c'e un intervallo di tempo'
~" ,~7;':;'... a cavallo del fronte di commutazione durante il Quale gli ingressi devono rimanere J
i:" :'~~,~,:,; e
stabili. Questa intervallo diviso in due parti, il tempo di set up, prima del fronte di
' "r;.. commutazione e il tempo di hold, dopo it £ronte di commutazione.
.~ '~i, In FiguraA.38a sono mostrati gli andamenti temporali relativi a un FFD che
)
m", "'ii"'"
comrnuta sui fronti di discesa del clock).
" '~f~'
,rl; '11',...
,',-
;:"t,'
· '7'j'l ;l!... ~
,,,;;,;·'lll '?~;:'
/·~·~l\. 11 ij,
- 546 Appendice A
'" ~ ';O",J
.....,.o'<! .•. ,-- ..
'--,';'~'!l '!".;-:'

...... .,..
I , :""''''\)I!i
• .•.
·"~"l:::!
... '"Ill""

'J-'' 3\-,
,"',,1 .. ...
"'''',.'
,', {.:
,::1' lL",;\
";'l\.'"'c.-.
1.~

D '.':i'r;V,'r -:;'"'.
- _~X X~_
••• ' .. ..- ...'.' ,
):,,~!:?,~ 1.:,';:

I
:
-.L ..
' '.~
~ .~

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


.-'.",,''1',.'' I.',.
,,),;,~: ·,\~·t~
I-- · "'~' ',?,,:<
"~
I f L "0"
,
.~, ,'.';l!i:
·, .' ,r" ..,"r:.,.'
- • ..:>
.. "~\'.'
-"fl;
II Set-up tim.. W Hold tim_
.VJ:< NV I I~ · ,.
, '.... ,"
""~' ":"'~'
"-':~'''. I,,~:.
.. "1"
· ····!,·\c,,
:' '::-8~: ':.~/t
'.' ~.,-, '.'.'.
.." ..... ,\1'
'~'. ~ .
· "', ,./,. "iI-
a) Vincolo per l'ingresso a1 Flip-Flop b) Reset all'alirnentazione -' ::;' ~\(,.~:i\~i
- ,'-r~;'-':; ''ij~,)

I Figura A.S8 a) Schematizzazione dei tempi di Hold e Set.up per un flip~flop D; b) usa degli . ,.... ,',.1'.1

ingressi di Preset e Clear ,per l'azzeramento del FF aJ momento dena messa sotto tensione.
·.....:."'
. :):1Jk ~;j~:::
>;;:,,; ·'l-0
- Mentre PR passa. imm,ediatamente a. 1, 180 rete RC mantiene basso (asserito) l'ingresso CL - '-....
':-.'l:..•.':to~. ....
· ,'::.../; ',i.l:
'i;';

per un tempo dipendente dalla costante Re. Di conseguenza. il flip-flop si porta nello stato 0 "<:,,;:·~::~t ·~'{t
- quando anche CL passa. a 1; gli ingressi asincroni PR e CL diventano ininfluenti e it flip-flop """"',
, ....... ..~"
I
~ ",~ ",~.

puo essere comandato attraverso il clock. _ ", """1


';'-1;'.' t~.,
,.~.",.j,
'~
~

........''''l'''''~
.., ",,
"
.. ~"
/:-;:<~.,'. if. d~!
'
,

· ,; ,......
.•.. -'~'
I flip-flop in commercio, oitre che presentare ingressi di tipo sineTana, spesso """:'
., ....,..
· "',~"'."".~.. ~ '.
:.

I riportano anche ingressi asincroni, detti Preset (PR) e Clear (eL). Questi corrispon-
dono grosso modo ai comandi di Set e Reset (comandano la commutazione in maniera
indipendente da!. clock). In presenza del segnale di clock e di segnali asincroni asseriti,
·.
f',
.... d <.
;~'l-:~~ 'r!"i
......... ,.
· ,..,~. '1if);" "",
" .. "" . 'ml
::!TJ"I- .,. ~

~-l"~~ "'. •
"

" '" .~,! , r·ffi !~'


- di solito questi ultimi prevalgono. Thttavia e bene leggere attentamente i dati tecnici '.' <~~fil{ '

- I di ciascun integrato, perche, a seconda dei modelli e possibile anche il contrario. I


comandi PR e CL sono comodi nelle fasi di inizializzazione. Per azzerare il flip-flop
alPatto della messa 8Otto tensione, basta un circuito come quello disegnato a destra
'.,

. . ."
''''i!:'\l .'
""'--'>-""~
'I.'~' ,,;jl~~ '!~i

.-,:~ ~
";;:1
····.·fj\~I
""~.I1i""" ~'fi
";I: . ,, • I
~'m':
·t
.' :~~.':~,',{.",Jo
:' ....",. ,.,r. ,~ •
in Figura A.38.
,,;","<,.
'+'>('B~ l1:l ~~
J<!
.. .. ,.,,,.,
I I , ~
,-
:.~ "1~1ll

"'-
"'
";'.,' ,·,;'l;U}!' ilf
':: ;'....~Nji '
.
"""""'1
···....--~a~:
~"',~~
· ;',..i/" ,".\"
'.·'··"··,·,~.I,.'
"

Potrebbero piacerti anche