SlideShare a Scribd company logo
1 of 730
Download to read offline
'I
:
 1
!
i
.
,I
'~
."
'I"
j
11
iI
,
,jl
,
~I
·"
;1,
•
~1
::
;1
I
,
J
."
"
."
'.il
'
"
"
,I:
"•
"
•

c,
,
.,
~'I
.:
,'I
"
•
II
, ..,
.',
•
!
!I;
,
•
I
,
,
,
I
!
!
•
I
"
,
•
•
l
I
1

I
J
I
I
!

I
1
A-PDF Page Cut DEMO: Purchase from www.A-PDF.com to remove the watermark
I,
~
1., -
I'
~I
"
I",
1'
Indice generale --
; ..~
-
Prefazione
Elementi architetturali di base ...
Struttura dei calcolatori
2.L1 D sistema CPU·memoria
La CPU
Primo esame del funzionamento della CPU
2.3.1 Esecuzione di un'istruzione
2..3...2 Due approcci per la progettazione dell1unita di cantralla
~ Cablata 0 microprogrammata?
.-.
-
-
.-
•
••
...
" ..-
..•
--
--
,......
~
..
VlI
1
1
3
6
8
8
10
11
11
12
13
22
22
• 23
24
25
27
28
29
32
34
35
36
37
37
39
41
41
44
45
47
48
51
55
~
,
,
Introduzione
Qualche cenoo storieo
1.1.1 I microprocessori
1.1.2 Le architettilre RlSC
Rappresentazione dell'informazione
1.2.1 Sistemi di numerazione.
1.2.2 C.onversione di base
1.2.3 Ar:itmetica binaria
1.2.4 Numeri negativi
1.2.5 Numeri frazionari
1.2.6 Numeri in virgola mobile
1.2.7 lnformazioni di carattere alfanumerico
Logica dei sistemi digitali
1.3.1 L'algebra delle reti
Reti combinatorie e reti sequenziali
1.4.1 Reti sequenziali sincrone
Registri
Trasferimento dell'informazione
Unita aritmetiche e logiche
1.7.1 Esempio di costruzione di un'unita. aritmetica e logica
Sistemi digitali
1.8.1 Un modello eli rete.a stadi
1.8.2 Alcuni blocchi componenti i sistemi digitali
Questioni di notazione
L 9.1 Notazione per i segnali
Esercizi
1.10
1.8
1.9
1.3
1.5
1.6
1.7
.L
2.1
1.4
1.2
1
1.1
II
2.3
1,
1
I
,
J
"
l
'
"
:
•
"I'
•
I
,'
!
I;'
, xii Indice generate
'. ..
3.8.4
3.8.5
Esercizi
':'
,
,
'.
'"I
·i•.
')1
I',
i
J
I."
i.I
,
1
• I
·,1
,>
..I
!;
.'.'
,.
·.r,
o
it
..
!I
1,"
';1
"
'I.
· ,
"I'
.)
" :
".
.'
.,
:~I'
,.
·,
..,
,·1·
,~, '
, '
~ .
,,'
..•
"~~
1
't
:.; .
..
I
,..
·.
:11'
" '
,
96
96
97
77
77
78
78
79
81
83
84
89
92
93
93
95
85
86
88
89
58
59 ..
61
62
62
64
65
@
C8ID
70
74
74
97
98
99
100
101
106
106
101
Prestazioni della CPU
2.4.1 La valutazione delle prestazioni
2.i..2 Papolari indici di prestazioni
n repertorio delle istruzioni
:l4J.- R.epertorio stile RISC
:h>.:! Repertorio stile CISC
Criteri di classificazione delle architetture
Indirizzamento
2.7.1 Ordinamento
2.7.2 AJlineamento
2 7 3 Indirizzamento dei dati
2.7.4 lndirizzamento nei trasferimenti del contrallo
Esercizi
La memoria principale
Le memorie RAM
3.1.1 Parametri di valutazione
Le memorie statiche
3.2.1 Un esempio di memoria statica
Le memorie dinamiche
~ Un esempio di memoria DRAM
3.3.2 L'interfacciamento COD il processore
ndimensionamento delle alimentazioni
di un sistema di memoria
Organizzazione'
3.5.1 Interlacciamento
Relazione tra 1a velocita della CPU e 1a velocita della memoria
3.6.1 Case di studio: evoluzione della velocit' dell. famiglia 8086 in
rapporto a quell. delle DRAM
Localita, arganizzazione gerarchica
3.7.1 Localitil.
3.7.2 ~a
3.7.3 ~mpio di gerarchia
R.a.ssegna sui principali tipi di DRAM
commerciali
3.8.1 DRAM con accesso a pagina
3.8.2 Cached DRAM
3.8.3 SDRAM (Synchronous Dinamic Random Access
Memory) ~ DRAM sincrone
Moduli commerciali
Cantralla di errore
11 sottosistema di ingresso/ uscita
Elementi di base del sattosistema di
ingresso/uscita
Gestione a centralla di programma
4.2.1 nsattoprogramma eli gestione
I
8
I
.9
.L
D.
~
2.4
-
,

I .25
I 26
'2.4
I

2.8

111
-
).32
lJ.
13.4
3.5_
)3.6
If
,
lndice genera.le XlII
La CPU 159
Notazione 159
Architettura di riferimento della CPU 160
Blocchi componenti 163
5.3.1 I registri di usa generale 163
53.2 ALU 163
5.3.3 Memoria 164
Sviluppo di CPUI 164
5.4.1 Sezione di prelievo delle istruzioni 166
5.4.2 Sezione di decodifica delPistruzione ... 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
Considerazioni suUa realizzazione a singol0
periodo di clock . 173
5.5.1 Ricomposizione finale di CPUI 175
CPU1 con memoria unificata 175
Sviluppo di CPU2 179
5.7.1 Fase di prelievo delle istruzioni, IF ( 180
108
108
109
113
114
114
116
116
118
122
123
123
127
J
Gestione sotto cantrollo di interruzione
Esempia semplificata di sistema di interruzione
4.4.1 Esempio di routine d~ servizia
4.4.2 Le interruzioni non mascherabili
lnterruzione da parte di pili periferiche
4.5.1 Discriminazione da programma
Interruzioni vettorizzate
4.6.1 Linee di richiesta indipendenti
4.6.2 Vettorizzazione esterna
Interruzioni' annidate
Interruzioni vettorizzate con daisy chain
4.8.1 Daisy chain asincrona
4.8.2 Daisy chain sincrona
Esempio di controllore di interruzioni:
il dispositivo 8259A 130
4.9.1 Vettorizzazione delle interruzioni' 132
4.9.2 Mascheramento 132
4.9.3 Priorit. 132
4.9.4 Riconoscimento di livelli 0 dei fronti 133
4.9.5 Schema di esecuzione della routine di servizio 134
4.9.6 Esempio di trattamento eli una sequenza di .interruzioni nidificate135
L1accesso diretto alIa memoria 137
4.10.1 Struttur. e funzion.mento del controllore DMA 138
4.10.2 Modalit. di trasferimento singolo 139
4.1O.:r Modalit. di trasferimento a blocchi 140
Un esempio di DMAC: il dispositivo ·Intel 8237 141
4.11.1 Funzionamento .. 142
Esercizi 144
5.6
5.7
4.11

5
5.1
5.2
5.3
4.12
5.5
5.4
4.10
4.9
4.7
4.8
4.6
4.5
4.3
.--
4.4
-
J
,
.
1
.
.
xiv Indice generate
I
i
•
5.8
5.9
5.10
5.11
5.12
6
JQ
.6.2
6.3
.fiA:)
~
6.6
6.7
.~
6.8
-~
,.tj.~
5.7.2 Fase di decodifica delle istruzioni, ill
5.7.3 Pase eli eseeuzione, EX
5.7.4 Pase eli memoria, ME
5.7.5 Fase d.i scrittura del registro di destinazione, WB
5.7.6 Ricomposizione
5.7.7 Segnali di comando
5.7.8 Stati comuni a tutte Ie istruzioni
5.7.9 Stati elipendenti dal tipo di istruzione
Espressioni logiche per comandi e selettori
Considerazioni sulla realizzazione multiciclo
5.9.1 Miglioramenti a CPU2
Le interruzioni
5.10.1 Classificazione
5.10.2 I problemi per il trattamento delle interruzioni
Interruzioni BU CPU2'
5.11.1 Considerazioni
5.11.2 Miglioramenti
5.11.3 Interruzioni vettorizzate
5.11.4 Atomicita dell'interruzione
Esercizi
La pipeline
Introduzione
Prestazioni
6.2.1 Indici delle prestazioni
~ Considerazioni
Alcune estensioni al repertorio delle istruzioni
Esecuzione in pipeline
Le fasi di esecuzione
6.5.1 lBtruzioni aritmetiche
6.5.2 Istruzioni di Load/Store
6.5.3 Istruzioni di saito
6.5.4 Sintesi del contenuto dei campi EXl
ME, WE
LJunita di controllo
6.6.1 Realizzazione dell'unita di controllo
Conflitti
Ji.L.l Conflitti strutturali
Conflitti dati
6.8.1 Tecniche per la Boluzione dei conftitti dati
6.8.2 Riconoscimento del conftitto dati
6.8.3 Soluzione dei eonflitti tramite stallo
6.8.4 Soluzione dei con.fiitti sui dati tramite anticipazione
6.8.5 I conflitti per Ie istruzioni load
6.8.6 Sovrapposizione
6.8.7 Riordinamento
Conllitti di controllo
6.9.1 Conllitti per salti (ineondizionati)
6.9.2 Confiitti per Ie diramazioni
180
182
182
183
183
183
186
188
190
192
194
196
196
197
198
199
202
204
204
205
209
210
211
211
213
214
219
222
223
225
227
230
231
236
236
238
238
239
240
242
244
246
248
249
250
251
252
,
.
1
J
•
,
,
"
,
.
.
J
-
.
.I
"
!
:.
{
I
if 1
Iodice generate xv
.
~
.,
1",
t
Ji
•
•
,
•
I
I
..
,jf
"1
•
,;1'
i
.,
i
,
.,
J,
-'I
1
ii
.I'
"I
!I
.1
{'
6.10
6.11
-
6.12
6.13
6.14
6.15
7
-7.1
7.2
7.3
7.4
7.5
7.6
6.9.3 La soluzione software: Ie diramazioni ritardate
Predizione dinamica delle diramazioni
6.10.1 Tabeila di predizione delle diramazioni
6.10.2 Statistics. di esecuzione e accuratezza della predizione
Branch Target Buffer
6.11.1 Prestazioni del BTB
6.11.2 Ottimizzazione del BTB
6.11.3 Uunita per la predizione dei salti condizionati
del Pentium
Predittore adattativo a due livelli
6.12.1 Realizzazioni alternative del predittore a due livelli
Le interruzioni
6.13.1 nconcetto di interruzione precisa
6.13.2 Interruzioni esterne
Eccezioni
6.14.1 Eccezioni e interruzioni esterne
Esercizi
La memoria cache
,
Funzionarnento della memoria cache
7.1~ Cache a mappatura diretta
7.1.2 Cache completamente associativa
7.1.3 Cache parzialmente associativa
7.1,1. n problema della serittura
7.1.5 10 state della linea di cache
Algoritmi di rir]lpiazzamento delle linee di cache
7.2.1 Sostituzione a' caso
7.2.2 Rimpiazzamenti con algoritmi LRU
7.2.3 La teenlea PIFO
AnaHsi deile prestazioni
7.3.1 Le cause di fallimento nelPaccesso alia cache
Elementi che influenzano le prestazioni
7.4.1 Dirnensione della cache
7.4.2 Dimensione della linea
7.4.3 Associativita
7.4.4 Algoritmi di rimpiazzamento
7.4.5 Cache divisa 0 unifieata
7.4.6 Aggiornamento della memoria centrale
7.4.7 Cache multilivello
7.4.8 Posiziol}amento della cache
7.4.9 Multiprogrammazione
Sistemi a multiprocessore: coerenza della cache
7.5.1 Coerenza
7.5.2 Protocolli per iI mantenimento della coerenza
7.5.3 Protocolli snoopy
Esercizi
25" ]
256
25"
25: I
25,
261
26: I
264
266
26 
271
270
273
27: ]
27!
279
28: (
28: ,
285
28
7

28,
28~
291
29: I
29. 
29~ 1
298
30r I
30:
30~
303
30: I
30: I
,
306
307
30' I
30;
309
311 J
31
31:
316
31.
0
)
32'
1~
Indice generale
I
,
,
t:
,
,
"
"
._,
']I;
ii'
(I,
;:1 •
.j:
.1,
",
,
"
'•.
,
';'
,;~
.,
il
0.'
,.
.:1'
,
,
~I.-
"-/
'I
~, .
,
.;Il
·~I'
,
·1:
'i;
~.
.JI
oil
.,
-:j,
••
"~
...~I,
"1
..
.)1:
357
357
359
362
363
364
365
3.71
372
375
376
377
377
377
381
384
385
331
331
334
337
338
340
343
346
347
347
353
355
357
386
388
390
392
392
396
399
399
400
401
403
404
405
La memoria virtuale
Introduzione
Sistemi di paginazione
8.2.1 Dimensione della pagina
8.2.2 n Translation Lookaside Buffer
8.2.3 Gestione della tabella
8.2.4 Tabella delle pagine gerarchica
Tabella delle pagine invertita
8.3.1 La codilica ha.sh
8.3.2 Gestione della tabella IPT
8.3.3 n problema delle catene trappo lunghe
La segmentazione
Segmentazione e paginazione
Approfondimenti sulla gestione della memoria
virtuale
8.6.1 Gestione della paginazione e della segmentazione
8.6.2 Algoritmi di rimpiazzarnento
8.6.3 Occupazione della memoria
Esempio di memoria paginata: la memoria del microprocessore 68030
8.7.1 Traduzione degli indirizzi
8.7.2 La tabella di traduzione degli indirizzi
8.7.3 n TLB
8.7.4 8u alcune caratteristiche speciliche della MMU
8.7.5 La pratezione
8.7.6 Considerazioni sulla memoria virtuale del micro 68030
Esempio di memoria virtuale segmentata:
1a memoria virtuale del 286
8.8.1 Indirizzamento in modo Teale
8.8.2 Indirizzamento in modo virtuale
8.8.3 Tabelle dei descrittori di segmento .
8.8.4 Gestione della memoria fisica
8.8.5 Ali""
Esempio di memoria virtuale segmentata e
paginata: la memoria virtuale del Pentium
8.9.1 La segmentazione del 386 e modelli successivi
8.9.2 Descri~~ori eli pagina
Esempio di merrioria con tabella di pagine
invertita: la memoria del PowerPC
8.10.1 La IPT del PowerPC: la HPT
Esercizi
La protezione
La protezione nei sistemi Intel
I descrittori e la lora funzione
9.2.1 Descrittori di segmenti di codice e di dati (8=1)
9.2.2 Descrittori di sistema (8=0)
Trattamento delle interruzioni in modo protetto
9.3.1 La.tabella dei deScrittori di interruzione
8.10
I
1
8.11
-
)
1
9
!9.1
1
9.2
] 88
9.3
M
8.5
-
 8.6
i
l
18.7
I
I 8.3
I
8
.D
Jll
8.9
1
Indice generale. XYli
11
11.1
11.2
11.3
407
408
410
412
412
413
414
415
417
417
417
420
421
421
422
423
423
471
474
475
425
425
427
429
432
432
433
434
438
439
447
447
452
455
458
459
462
463
465
466
•
..,
La gestione dei processi in modo protetto
9.4.1 n segrnento di stato di un proces~o
9.4.2 Commutazione Era processi
La protezione: criteri generali
9.5.1 Verifica del tipo di accesso ai segmenti
9.5.2 Livelli di privilegio
9.5.3 Criteri generali per il cantrallo dei privilegi
9.5.4 I livelli controllati
Protezione negli accessi
9.6.1 Protezione nell'accesso ai dati
9.6.2 Protezione nei passaggi di controllo
9.6.3 Protezione nella commutazione fra processi
Altri aspetti legati alIa protezione a livelli
9.7.1 Variazione dellivello ill privilegio
9.7.2 L'attacco can il cavallo di Troia
9.7.3 Istruzioni privilegiate
La protezione di pagina
BUS di sistema
Un po' di storia
La standardizzazione
11.2.1 Operaziani suI bus
Allocazione del bus
11.3.1 Arbitraggio distribuito Con schema daisy chain
11.3.2 Arbitraggio centralizzato con schema parallelo'
11.3.3 Arbitraggio distribuito con schema parallelo
11.3.4 Arbitraggio centralizzato con schema daisy chain
Esempio di progetto della logica di arbitraggio distribuita in daisy chain
Organizzazione dei moderp.i calcolatori
personali
11.5.1 Il chipset
11.5.2 . Chipset per la ela.sse Pentium
Esecuzione fuori ardine
Pipeline con unita funzionali multiciclo
Esecuzione fuori ordine
10.2.1 Gestione delle prenotazioni del bus dei risultati
Completamento in ordine
10.3.1 Completamento in ordine rispetto ai registri
10.3.2 Completamento in ordine rispetto alIa memoria
Metoda del buffer di riordinamento
10.4.1 Uso di ROB e di perco,si di bypa.ss
Metodo dell'history buffer
Gestione dei conflitti di controllo in pipeline
con unita funzionali multiciclo , 4 4 1
10.6.1 Stato coerente nel caso del completamento in ordine delle istruzioni442
10.6.2 Ripristino della stato coerente in presenza ill ROB 443
10.6.3 Ripristino dello stato coerente con history buffer 444
9.6
9.7
9.5
9.4
10.4
9.8
10.3
10.5
10.6
11.4
11.5
10
-
lQ.J..
102
xviii Indice generale
11.5.3 Chipset per la classe Pentium 1I1
477
11.6 IT bus SCSI ..
479
11.6.1 Principi eli fUnzlonamento
479
11.6.2 I segnali SCSI
481 -
11.6.3 FMi del bus
482
11.6.4 Un esempio di operazione suI bus SCSI
485
11.6.5 Conclusioni
488
11.7 IT bus PCI
488
11.7.1 Principi .di funzionamento
488 ,
11.7.2 I segnali del PCI bu,
490
11.7.3 Tran~azioni di trasferimento dati
49.1 <
11.7.4 Arbitraggio
495
11.7.5 Prestazioni
497 ·
11.7.6 Blocco delle riaorse
498 "
l
11.8 IT bus USB
501 4
)
11.8.1 Caratteristicbe generali
501
11.8.2 Struttura fisica ,
502 •
11.8.3 Organizzazion·e a livelli
503 I
11.8.4 Host ,
505 ..".
,
"
11.8.5 Periferiche
505 ,r
11.8.6 Hub
506
".
11.8.7 Modella dei Busai informativi
506 1
11.8.8 ncavo
508 .,
,
Riconoscimento e configurazione delle periferiche •
11.8.9
511 •
11.8.10 Trasferimento di dati
512
-i
I
11.8.11 n protocollo e U formate dei pacchetti
513 •
;
•
"
..
A Sistemi DigitaJi • 0
517 q
•
A.1 Proprieta dell'algebra delle reti
.i
517 ,
A.2 Forme canoniche
519 •
•
A.2.1 Prima forma canonica
519 ·
'.
A.2.2 Secanda forma canonica
520
,
;
A.3 Minimizzazione ,
521 ..
·
A.4 .Altri operatori e altri tipi di porta
522 ;
,
A.4.1 NAND e NOR
522 ·
A.4.2 Reti can sale porte NAND a 'ole porte NOR
524 ,
A.4.3 Una tecnica grafica per la trasformazione
524
.,
..
A.4.4 XORe NXOR
525 j•
A.5 Esempi di reti combinatorie
526
,
•
•
A.5.1 ncantrollo di parita.
526 ,
A.5.2 Comparatore digitale
528 1
A.6 Unita aritmeticbe
•
530 '.
A.6.1 Somma Con calcolo anticip~to del riporto "
530 •
A.6.2 Ancora sui sommatore completo
532
A7 Unita aritmetiche e logiche
533
A.8 Reti sequenziali
536
A.8.1 Modellogenerale
536
A.82 Rappresentazione delle funzioni c,li stato e uscita
538 ,
·
"
,I
,i'
,.1
lndice generale XIX
1
,
A.9 Sincronizzazione
540
.....
A.IO Reti sequenziali sincrone
542
·.
I
., '
A.1O.1 Flip-flop Master-Slave
543
,
.,
-1 :
A.10.2 Altre considerazioni sui flip-aop
545
' .
'' A.10.3 Madella dj Mealy e madelia di Moore 546
.-
' :
Esempi di analisi e progetto di reti sequenziali
549
'. A.lI
•
I
.. A.1Ll Esempio di progetto: generazione di un 'egnale di WAIT 549
,
•
A.11.2 Esempio di progetto: rete per Fadattamento
• •
',
della temporizzazione dei segnali 551
'. '
.. A.12 Esercizi
555
•
I ",

,
<!
· B L'architettura 8086
559
I •
· B.1 Un pO' di storia
562
B·.2 Architettura di base: il micro 8086
564
l
4
B.2.1 nmodella eli programmazione
565
I
)
B.2.2 Organizzazione della memoria
568
,
B.2.3 Accesso alia memoria
571
•
I :
B.2.4 Osservazioni sull'organizzazione di memoria dell'8086 572
,.
B.2.5 Struttura interna del microprocessore 8086 573
l
.. ,
,
"
575
r ,
. B.2.6 Cieli' di bus
. ,
B.2.7 Modalita di funzionamento
576
1 B.2.8 La fase di partenza
576
,
, B.3 nrepertorio delle istruzioni
577
I
•
Modalita di indirizzamento
578
• B.4
B.4.1 Indirizzamento degli operandi
578
I .
• 8.4.2 lndirizzamento nei salti
580
•
581 I
B.5 Formati delle istruzioni
,
B6 II coprocessare 8087
584
'.
I
--
i.
B,6.1 Madello di programmazione esteao
584 •
• B,6.2 Tipi di dati , 586
•
B.6.3 Collegamento can la CPU 8086/8088
586
I
B.6.4 Coordinamento con la CPU: aspetti generali
587
Coordinamento coo la CPU, il controllo del bus
591
B.6.5
B.6.6 Emulazione del coprocessore
593
B.7 IT microprocessore 80286 (286)
594

, B.7.1 Modello di progranimazione
595
B.7.2 La struttura interna
596
B.7.3 Modo protetto
597
B,8 IT microprocessore 80386 (386)
597
1
B,8.1 Emulazione ~086
598
B:9 n microprocessore 80486 (486)
600
8.9.1 . La cache interna
600
Vevoluzione verso frequenze pili elevate
601
J
B.9.2
B.lO II Pentium
602
B.lO.l La struttura interna
602
B.1O.2 L'unita per la predizione dei salti condizionati
605
B.1O.3 L'unita per il calcolo in virgola mobile
609
J
B.10.4 Le due cache interne
609
"
1
xx
B.ll

I B.12
I
I B.13
B.14
l B.15
B.16
•
C
I C.1
,
IC.2
I
C.3
C.4
C.5
 C6
)gl
 D.2
,
ID,3
I
I
I
I D.4
I
I
Indice generale
n'Pentium con tecDologia MMX
B.1Ll L'estensiooe MMX
8.11.2 La struttura interna
nPentium Pro ,
B.12.1 La pipeline e l'esecllzione dinamica
B.12.2 Ridenominazione dei registri
nPeotium II
B,13.1 La struttura interna
n Peotium ill
La for"ma esterna, i bus e altro
Esercizi
L'architettura PowerPC
Architettura PowerPC
C.l.1 Formati istruzione
C.1.2 Organizzazione
0.1.3 Caratteristiche e prestazioni di alcuni modelli
La CPU MPC 601
C.2.1 Gestione della memoria
C.2.2 La coda istruzioni del 601
C,2,3 La pipeline del 601
Un esempio di Bussa istruzioni per it 601
La CPU MPC 604
C.4.1 La pipelioe del 604
Un esempio di Bussa istruzioni per il 604
•
Un confronto tra Ie prestaziooi del 601 e 604
C.6.1 I.e prestazioni del 601
C.6.2 Le prestaziooi del 604
0.6.3 Prestazioni relative
n linguaggio assembler
Generalitil.
D.1.1 Sintassi
Segmenti e moduli
D.2.l Direttive per 1a gestione dei segmenti
D.2.2 Generazione dei riferimenti: 1a direttiva ASSUME
D.2.3 Relazione tra segmenti e moduli
I simboli definiti daJ programmatore
D.3.1 Eticbette
D.3.2 VariabiJi
D.3.3 Variabili strutturate
D.3.4 Costanti
D.3.5 Procedure
Direttive per il collegamento dei moduli
DA.l Direttive per la programmazione modulare
D.4.2 La direttiva END
D.4.3 La direttiva INCLUDE
D.4.4 n sistema macro del MASM
610
610
611
611
613
618
619
620
b
622
626
627
628
628
628
631
631
633
633
635
638
639
641
643
646
648
649
650
651
652
654
657
657
659
661
664
664
665
667
668
670
670
670
671
671
672
II
."
ii'
'1 '
· '
'1
.JI
~ ,
••
I
II
I'
]1.
"I'
· ,
,
,I,
e .'
t
1
~ .
j,
J:
'II,
~1!
-
l1
1
.,
j
,
1
i"
I
I'
I
I'
"
,
1
"
til
11
'",
,.
'i,~1
,,..
,
,
"
·
,
1
.'"
,
,
E Comunicazione tra Calcolatori 689
E.l lotroduziooe 689
E.l.l nmezzo trasmissivo 690
E.2 II modello 1S0/0S1 691
E.2.1 II Protocollo TCP/IP 692
E.3 Livello fisico 693
E.3.1 Tipi di trasmissione 693
E.3.2 Esempio di standard di livello fisico: RS232C/V24 694
E.3.3 Esempi di collegamenti RS232C 696
E.3.4 Altri standard seriali 697
E.4 Livello di colJegamento 698
E.4.1 Thasmissione asincrona 699
E.4.2 Trasmissione sincrona 700
E.4.3 Controllo degJi errori 704
E.4.4 Protocolli per il livello collegamento 708
E.4.5 Esempio di dispositivQ per il cantralla della trasmissione: P8251A710
E.5 Cenni sulle LAN 711
E.5.1 Topologia di una LAN 713
E.5.2 Tecniche di trasmissione 715
E.5.3 Tecniche di accesso 716
E.5.4 Esempio di LAN: la rete Ethernet 717
D.5 Un esempio di programma assembler
D.6 It processo di traduzione
D.6.1 Assemblatore: primo passo
D.6.2 Assemblatore: secondo passe
D.7 Collegamento e caricarnento
D.7.! Caricamento in memoria ed esecuzione
D.8 Esercizi
Bib~iografia
Indice generale XXI
673
678
681
683
684
685
685
719
v
·, : .
;..,- ".,
"
"-
,
n
,
1
"
,
,
, "
:' ~.-
,:ll'
:;,~
,"~'
'II,',
" '
jl "
'I'
,
',"
Introduzione
1
I
1
, "
"
....n
;'1' '
,. - '
_lOll,
1
'~}ii
dl
l
"II'
',1
,:'~ ,
.-,~ ,
:1
""I'
,'}
'"
",
I
",~
'~I
JI
"
" '
• ;11
','
"I
,.j) :
'°1,
'''',
4'
, 'II'
'1J",
"
!~ :
,~'il
-·if
'-,;,~
-"
ill
,::j,
"I
:'-~
"
,,',;
'-I
._~:
3~
,,,I
"'.~
, "
"
!
,
,
I
,
"

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

1.1 Qualche cenno storico I
I
La storia dell'evoluzione dei caicolatori elettronici costituisce da sola materiale suffi-
Ciente per la scrittura di un volume di carta stampata. Le poche notizie che seguono
'vengono fornite al solo scopo di dare al lettore la misura di come questa evoluzione I
sia stata incontenibile. Una ricostruzione pili dettagliata', specialmente per quanto
riguarda il primo periodo storieo, si trova in [HP93] .
11 primo ca1colatore elettronico venne progettato e costruita da J. P. Eckert I
e J. Mauchly, dell'Universita della Pennsylvania1. La macchina venne denomina-
ta ENIAC per Electronic Numerical Integrator and Calculator e Ia sua costruzione J
venne finanziata dal Ministero della Difesa Usa durante la seeonda guerra mondiale.
La macchina veniva impiegata per calcoli balistici. La sua esistenza venne resa nota 
ne11946, a guerra finita. Occupava un volume immenso: aveva fonna di U, era lunga J
circa 30 metri, alta 2 e spessore di 1 metro, per oltre 120 metri cubi di volume, su
una superficie di 180 mq. Pesava 30 tonnellate. Impiegava oitre 18.000 tubi a vuoto
(valvole) collegat; da 500,000 contatti saldati a mano, Aveva 20 registr; <Ii 10 ellre; I
ogni registro era lunge oltre mezzo metro. Era in grade di eseguire 1900 somme at
secondo. La programmazione avveniva in modo manuale, attraversa fill e interruttori
1Nel 1973 un 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.
I
I
1.
~.,
.,:
'j'l
••
"
~
J
'.'
.,.
•
•
" .',
(
•
~J'I
I
jl~
:,.
"
,
"
,
.',
•
'.,,
..,
.,
,I,~
"
,
I. ,I.
,"
"
,
!.r.
'F
'JI'
.,
'~:
"'
)
'ii,
":~I
"'
,,:'
' ..'
'~I
"
:,tl
,,
.;
::1'
i1
;:;1
~1
,:;,1
,
"..~,
',"I'
"
c;.'!
'If,
"
,
"
"I·
"
"
'Ii:
"
'r"
"
.;'!,
J
.J
,,jl
,.,.
"
,. ..
,
"
••
2 Capitolo 1
)
) 'Le oehede perlo,"" .",anoo per annl 10 stand.rd di ingresso, oon 0010 por i d.tl, m. anch. por
j programmi. Fino alla meta degli anni settanta perforatori e lettori di scbede facevano parte del
normale paesaggio di qualunque centro di ca.lcolo.
1
3Hennessy e Patterson [HP93} espongono una serie di argomenti in base ai quali la fama del
signor Von Neuman eda considerarsi parzialmente usurpata e che ad altri avrebbe dovuto sorridere
1a gloria.
suI pannello di cantrollo, non dissimile cia queUo di una vecchia centralina telefonica.
I dati, venivano introdotti attraverso schede perlorate2 .
n problema principale della macchina era la modalita. d.i programmazione. John
von ,Neuman, che faceva parte: sin dal 1944 del gruppo di ricercatori e progettisti
che ruotava attorno al Ministero della Difesa Usa, scrisse un rapporto in cui veniva
esposta per la prima volta l'idea di costruire un calcolatore a programma mernorizzato,
che egli chiamo EDVAC (Electronic Discrete Variable Automatic Camputer). Questa
soluzione divento la norma e, di fatto, distingue quelli che oggi chiamiamo calcolatori
elettronici cia precedenti macchine·dedicate a1 calcola. Von Neuman passe (llia storia3 .
Eckert e Mauchly fondarono una societa che eostful il prototipo chiamato BINAC.
La societa. venne poi acquistata dalla Remington-Rand, per la quale, nel1951, venne
prodotto il primo esempio di calcolatore commerciale: l'UNIVAC I, venduto per circa
250.000 Dollari Usa. Di UNIVAC I ne vennero prodotti 48 esemplari.
L'IBM, presente da anni nel settore delle macchine da ufficio, entro in campo
e produsse il primo suo calcolatore (I'IBM 701) nel 1952, vendendone una ventina,
Negli anni sessanta l'IBM introdusse il sistema S/360, come risultato di un proget-
to di sviluppo nel Quale la societa aveva investito svariati milioni di Dollari. Per la
prima volta si. distingueva il concetto di architettura da quello eli realizz~ione, nel
sensa che l'illM aveva definito un'organizzazione di macchina die sarebbe stata co-
roune a tutta una famiglia d.i calcolatori. Questi avrebbero potuto ~vere dimensioni,
capacita e potenzialita diverse, avrebbero potuto essere realizzati con tecnologie di-
verse, ma sarebbero stati comunque compatibili tr30 di loro. Si tratto di un passaggio
fondamentale: da quel momenta i concetti di archi-tettura e compatibilita avrebbero
costituito il fondamento per ogni produzione industriale, L'IBM dominera per anni
il mercato dei calcolatori in tutto il mondo. Agli inizi degli anni settanta, essa era ....

pa.d.rona di oltre il 60% del mercato, mentre gli al.tri si dividevano quel che rimaneva.
1 A fine anni sessanta,.venne introdotto il sistema S/370, successore del precedente, rna
) sempre compatibile. Negli anei successivi: fino ai nostri giorni LTBM ha continu.ato a
costruire macch.ine sostanzialmente discendenti da quell'architettura. Non ci 'si deve
)
stupire: dal momento in cui erano stati fatti investimenti giganteschi nel software da
parte di chi 10 impiegava, Ie macchine IBM erano in ogni b~ca, ministero 0 grande
impresa. La necessita. di salvaguardare questa patrhnonio estata e continua a essere
una delle forze condizionanti dell'evoluzione del mercato dell'informatica.

Gli annj sessanta e settanta sono stati gli anni delle macchine della categoria
chiamata mainframe. Si trattava d.i macchine costose (di norma sopra al centinaio
di milioni di Lire) equipaggiate con sistemi operativi che ne permettevano un' uso
condiviso da parte di piu utenti. Nel 1963 apparve il CDC 6600, il primo vero super-
1
calcolatore. n suo progettista S. Cray, dopo aver progettato altri calcolatori per 1a
Control Data CorporatioD, fondo successivarnente una sua societa. che ha continuato
J a produrre macchine ultrapotenti..
Net 1965 la DEC (Digital Equipment Corporation) introdusse il primo minical-

I
1
1
.J
4Per anni estato 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.
•
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'.
Introduzione 3
1.1.I I microprocessori
II termine llmicroprocessore" venne usato per 130. prima volta dalla Intel nel 1972,
quando rese disponibile un "computer microprogrammmabile su un unico chip" corn-
posta da una: CPU integrata completa di un sommatore parallelo a. 4 bit, 16 registri
a 4 bit, un accumulatore e uno stack. Questa. CPU venne denominata 4004 e, con
l'aggiunta di memorie di tipo RAM e ROM, costitui il sistema MCS-4. I micropro-
cessori hanno rappresentato il punto di avolta nell'uso del calcolatore: da macchina
gigante, utilizzata solo da pochi 30ddetti ai lavori, il calcolatore elettronico ediventato
un dispositivo piccolo cODvenientemente utilizzato nell'industria, negli uffici e anche
a livello domestico, •
Dalla fine degli annj sessanta. si era evidenziato un serio problema nella proget-
tazione: 130 complessita dei sistemi digitali si avvicinava al punto in cui il Dumero
di componenti necessari alla re3olizzazione delle funzionalita. richieste dagli apparati
avrebbe superato i limiti del trattabile. Un rimedio consistette nell'utilizzare logica
convenzionale accoppiandola a memorie ROM in funzione eli reti combinatorie com-
plesse. Questa soluzione condusse alia nascita del microprocessore. Nell'estate del
1969, il costruttore giapponese Busicom chiese alIa Intel di pr'odurre un integrato
per una famiglia di calcolatrici progra.mmabili ad alte prestazioni, n committente
intende.va realizzare calcolatrici con una mezza dozzina di integrati, per ciascuno dei
quali si prevedevano dai 600 ai 1000 transistori. All'Intel (allor3o una piccolissima1
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
-
'-
4 Ca.pitola 1
istruzioni generali, contenute in ROM. Una simile CPU avrebbe trovato impiego non
solo nelle 'calcolatrici rna anche in luogo .dei minicomputer6 . Nel Novembre del 1971
Intel decise di pubblicare il primo articol0 sull'MCS-4. L'interesse fu subito notevole
e Intel realizzQ un modesto rna promettente guadagno di 8500 Dollari.
Mentre stava lavoranda al 4004, l'Intel aveva avviato un progetto paraUelo che
avrebbe portato al primo microprocessore a 8 bit, 1'8008: U80G8 fu introdotto
neWAprile del 1972} nella forma di un integrato a 18 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 Z808. 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.
9Di queati aviluppi 5i parla con maggiori dettagli nell'Appendice apPOl3itamente dedicata J
all'architettura della fa:migJia x86.
sto versioni a. 16 bit dei micro Motorola e Zilog. La prima introdusse il dispositivo
,MC68000, la secooda introdusse 10 Z8000. In comune all'8086 avevano il bus dati I
esterno di 16 bit e la possibilita di indirizzate un spazio eli memoria immenso. Biso-
gna dire che 10 Z8000 aveva., almeno sulla carta, caratteristiche architetturali superiori
a11'8086: da un certo punta di vista era una specie di super insieme dello 8086, rna
era possibile evitare Ie complicazioni del madelIa di memoria di· questlultime. Anche I
il 68000 aveva caratteristiche architetturali pili convincenti delP8086: presentava an-
zitutto uno spazio Iineare. e si annunciava pili potente. Tuttavia sia 10 zaooa sia il
68000, si fecero aspettare troppo a lunge dopo I'introduzione dell'8086. n68000 arrivo
suI mercato con quasi due anni d.i ritardo, concedendo all'8086 ~ grande vantaggio. 
Ma fu l'introduzione dell'8088 a cambiare Ie cose. L'8088 era un 8086 rna con bus
esterno a 8 bit. Motorola e Zilog annunciarono Ie versioni a 8 bit (MC68008 e Z8008),
rna. quando 1'IBM castrul il suo PC (Pe.rsonal Computer), sul mercato c'era un unico
miqo a 8 bit capace di indirizza~e almena 1Mbyte di memoria: 1'8088. Quello fu il
punto.di svolta dell'evoluzione del mondo dell'informatica. L'architettur& Intel diven- ]
ne 10 standard eli fatto nel mondo dei PC, la Microsoft stabilile basi per eliventare la
maggior compagnia di software del pianeta9 .
n 68000 ebbe ottima accoglienza da parte dei costruttori delle c08iddette work- I
station, ovver? sistemi ~divi~uali?~ c~attere profes~ional~,allora molto pill a~ati
dei calcolaton perso~ah, per I quah II SIstema operativo UnIX era la norma. nmadelIa
di memoria !ineare del 68000 era adeguato per la tecnica di gestione della memoria
virtuale eli Unix. n 68000 aveva inoltre piu potenza dell'8086, ancbe percbe bus da- ,
ti e indirizzi non erano condivisi come Quest'ultimo (l'integrato MC68000 aveva 64 ! I
piedini). Per anni l'architettura Motorola sara 10 standard di fatto delle pili diffuse ~
workstation.' 'n 68000 e i suoi successori sarebbero stati impiegati da Sun Micro-
systems (it pili accreditato costruttore di questa categoria di macchine), cia HP, da 
Apollo (poi assorbita da HP) ~ da molti altri. l'l 68000 venne pure impiegato nei
McIntosh della Apple. La famiglia 68000 ebbe largo impiego ancbe nel campo indu- I
striale 0 come embedded computer, in quei casi, come nelle stampanti postscript in cui
si richiedevano buone capacita elaborative. La fo~una della famiglia MC68000 co- I
minced. a declinare verso la fine degli anm ottanta, Quando i principali costruttori.di
workstation cominciarono a ricorrere 0 a produrre direttamente CPU RISC (Reduced
Instruction Set Computer), corne accennato poco pili avanti.
Lo Z8000 non sfonda nel mercato dell'informatica dei grandi numeri ne trovo 
impiego in ambiente industriale. Venne impiegato nel Commodorel un calcolatore
personale venduto essenzialmente come videogioco. In Italia 1'Olivetti usc 10 Z8000
per i1 suo primo PC (denominato M20). L'M20 era una buona macchina, rna non
incontro i favori del grande pubblico e, dopa poco tempo, il costruttore fu costretto a J
riconvertire la sua linea di calcolatori personali1
passando alIa produzione di macchine
compatibili col PC: 1a torta era tanto ricca che unlesigua fettina Yaleva molto di piu
del totale dominio in aree parallele.
I microprocessori. a 16 bit entrarono in una fase di grande crescita. Apparvero I
componenti di corredo avanzati, come gestori di memoria (MMU, Memory Manage.
ment Unit), unita aritmetiche in virgola mobile (FPU, Floating Point Unit) e control-
,.~ ,.:" ,
,', ." ,".. ...
· .
·l '
.".
~.
:.[j;
'f
e,
..
j
"
..; .
<,'
:~I.
,..,
,
'"
i'j
~I
·~l.
.'
· ,
,.
,.,
l,I
·I
'-7,~
:.:'f
i.' 'I'
• •
.,.
"'1
-I
. .,
:j
':J:'
.~# '
~
:~ ,
''iI
·,:'
..,
:Ifi~'
~l,
·.""
'a
·'r
h
·nl
.."1
·f
"
~'"i
J'
·l
1
..
.'. '
'j
'JI.,
"I
;1
",'
"
1
.
j',
.. ,~
•
.,,
·,
"1
I
"
,
~I
,11
"II
~:
Intro.duzione 5
I
]
'110
..-
~I'
,,~
.'
,. '.
";j
·,1
'.
•
,'"
11
;~'
"
AI
,
'''l-
I
"I'
,
I
,
il
'I·
., :
.,
1
1
.
,
•
:l!j'
."'I
.-ott.
"·:ir·"
.~," .
~-:r ,
+
.,.
""t,
.::! ..
II-
':.~
"
,.t-
;11
•·'1
1~ .
"
".
I, ,.
',i,""
,'0.
,'"
':11
.
)1,
,
,;'in ·
"
il
i,
.·~'l·
" .
.,' '. . .
., .
111
.11
."
'." .','
..,,',"
" 1
.:l1
"
}Jj
...~~
.
." .
-."
I I
J 1.1.2 Le architetture RlSC
lori di accesso alia memoria (DMA, Direct Memory Access). n maggior problema the
1
i costruttori si trovarono a fronteggiare non era piu, a questo punta, la liniitazione del
numero di transistori, rna la potenza dissipabile da.! chip. Per limitare tale dissipa-
zione (che superava il watt), molte compagnie progettarono dispositivi in tecnologia
CMOS. .

Nel 1984 Motorola introdusse la prima riuscita estensione di I,lD microprocessore
da 16 a 32 bit, l'MC68020, realizzato in tecnologia CMOS da 1.5 p.m e reso disponilile
I con frequenze massime di funzionamento di 25 MHz. ndispositivo ayeva sia il bus dati
sia il bus indirizzi a 32 bit e conteneva all'interno una piccola cache istruziom: Era

inoltre stato previsto un dispositivo esterno per la gestione della memoria virtuale.
Questa volta Intel arrivQ con un certo ritardo (1985) a introdurre sui mercato la sua
CPU a 32 bit: 1'80386. Successivamente (1987) Motorola presenti> iI 68030, simile al
precedente rna con l'aggiunta di una memoria cache per dati e della MMU. Per qualche
)
tempo serobro che il 68030 riuscisse a contrastare l'espansione dell'a.ntagonista. Ma it
mondo del PC era onnai saldamente in mano a Intel in virtu dell'immenso patrimonio
software ormai esistente. Pure la National mise su1 mercato 1a sua CPU a 32 bit della
famiglia 32000, una architettura concepita per il mercato Unix e con l'obiettivo del
mercato dei 32 bit (anche se in prima versione era apparsa can una CPU a 16 bit). Con
I questa serie la societa. di Santa Clara nusel a collocarsi al terzo posta nelle vendite di
microprocessori a 32 bit, raggiungendo un volume di vendite di 300,000 unita/anno.
Nel 1989 Motorola introdusse il 68040 cbe integrava 1.200.000··transistori in un
singolo chip e aveva prestazioni 10 volte superiori al suo predecessore a parila, di clock.
)
L'anno successivo anche Intel presento il suo nuovo processore, 1'80486. Nonostante
l'uscita successiva al 68040J il 486 non trovo concorrenti in campo PC. Del resto il
486 aveva prestazioni di riguardo, avendo a bordo, oltre a una non trascurabile cache,
l'unita in virgola mobile. <.
 All'architettura 68000 restavano in parte Ie applicazioni e il campo delle work-
~ I station. Ma. ormai, in questo segmento di mercato, stavano entrando Ie architetture.
roSC: la National avrebbe smesso di n a qualcbe anno di produrre la serie 32000.
La Motorola, avrebbe cessato eli sviluppare 1a linea 68000, dedicandosi alio sviluppo
 dell'arcbitettura PowerPC, in compagnia di Apple e IBM.
I Nel seguito PIntel sviluppa il Pentium e i suoi successoriJ sempre compatibili.
Molti altri produttori di dispositivi elettronici (tra cui AMD) seguirono l'Intel nel
produrre CPU proprietarie, rna compatibili COD 1'architettura x 86.

La Tabella 1.1 riporta un elenco di microprocessori titolari di un qualche "prima.
to". Non c'e alcuna pretesa di completezza, come, del resto, non ha questa ~ote 1a
storia the abbiamo raccontato.
6 Capitolo 1
 I microprocessori di cui si eparlato in precedenza sono 0 erano maccbine ClSe (Com-
J plex Instruction Set Computer), ovvero macchine dotate di un repertorio eli istruzioni
molto ampio. Infatti esse sonG state concepite negli anni settanta, quando era in
auge ricorrere aIla microprogrammazione nella realizzazione delPunita di controllo.
1
C'era pero chi, gia negli anni settantaJcornincio a studiare soluzioni architetturali che
portaroDo aile cosiddette macchine RISe (Reduced Instruction Set Computer). Pill
avanti nel libro, la discussione e il confronto tra Ie due differenti filosofie di progetto
1
l
il
7
Introduzione
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)
,
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.
Tabella 1.1 Vengono riportate Ie caratteristiche eli atcune CPU titolari eli un qualche
primato.
1:lceveranno it davuto apprafondimentoj per il momento vengono forniti alcuni cenni
storid su come si sono sViluppate Ie architetture Rlse. .
.";:" La prima macchina RISCIO venne realizzata in IBM, essenzialmente come proto·
.tipo di studio, e venne denominata IBM 801. Era costruita. in logica discreta (logica
EeL, molto veloce) e presentava 32 registri di 32 bit, aveva una cache istruzioni e una
cache dati separate. n prototipo, sviluppato presso il centro di ricerca di Yorktown
Heights (NY), apparve nel 1979. Da questo prototipo IBM traIT" il modello 6150,
immesso suI mercato nel 1986, che tuttavia avra poco successo.
... Gli studi che portarono al modello 801 Cecere da catalizzatore a unJampia atti-
-vita di ricerca: vennero sviluppati due prototipi da due Universita della California,
il rosc I a Berkeley nel 1982 e il MIPS a Stanford nel 1983. Alia fine i risultati di
questi studi vennero convog1iati nella sviluppo delle CPU SPARe (Scalable Processor
Architecture), una famiglia di epu impiegate dalla Sun Microsystem nei propri calco-
latori. Con I'uso delle CPU SPARC, la Sun abbandoni> la linea MC6800. Ancbe dagli
studi che avevano portato at 'prototipo MIPS, nacque una societa, che, per l'appunto,
si chiamo MIPS. Le CPU MIPS vengono oggi impiegate in molte stazioni di lavoro
professionali, tra cui queUe della societa Computer Graphics..
Agli inizi degli anni novantaJ 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
.
"
-.
,
8 Capitola 1
PowerPG. Sulla carta dimostrava di possedere quanta di meglio si potesse mettere
. assieme come idee e come realizzazione all'epoca in cui venne progettata. Nonostante
ciD il PowerPC non eriuscito a contrastare la presenza Intel nel campo delle macchine
della categoria PC. Questa architettura viene correntemente impiegata da Apple nei
McIntosh e viene irnpiegata dall'IBM nelle stazioni di lavoro tecnico scienti£che e
come sostitutiva di una precedente CPU in una linea di calco1atori di fascia intermedia
denominata AS/ 400.
1.2 Rappresentazione dell'informazione
La parte che segue contiene alcuni richiami Bulla rappresentazione dell'informazione.
Vengono esposti solo poehi concetti di base, ritenuti funzionali agli obiettivi di questo
libra. SuUa rappresentazione dell'informazione, l'aritmetica intera e in virgola mobile
esiste un'ampia letteratura, sia di carattere generale [CPS93], [HP93], [HVZ84! sia
specialistico [Orno94), pertanto la discussione che segue procede in modo intuitivo e
alquanto sbrigativo.
1.2.1 Sistemi di numerazione
Numero eun concetto matematico astratto per 1a descrizione quantitativa degli og-
getti cantenuti in un dato insieme. Un sistema di nurnerazione eun insieme di s~mboli
e regale atti a rappresentare i numeri. Le due principali categorie di sistemi di nu-
merazione sono la posizionale e l'additiva (quella llsata dagli antichi Romani). Alta
prima categoria appartiene il consueto sistema di numerazione decimalell :
Prendiamo il numero 1475. Esso viene interpretato come:
1475 = 1 x 10' + 4 X 10' + 7 X 101
+ 5 x 10°
Come si vede, ogoi cifra che compare in 1475 ..,sume un valore che dipende daila
posizione (peso) nella stringa "1475". 11 sistema di numerazione decimale si basa su
10 simbali (cifre) diversi {0),2,.. ,9}. I Dumeri si rappresentano scrivendo sequenze
di cifre diverse.
In generale, sia dato un numero B > 2, detto base, e I'insieme fj composto da B
simboli diversi: 13 = {O,1,2,... ,E - I}; la stringa di n crne:
bn - 1bn _ 2 . , . b1bo
can bi E fJ si interpreta come:
bn _ 1 x Bn - I + bn _ 2 x Bn - 2 + ... + bI X BI + bo x EO
Consideriamo ora i casi di B uguale, rispettivamente, a 8, 16 e 2,
llLa ragione per cui l'uomo ccnta in base died deriva sicuramente dal riurnero di dita delle nostre
manL Si sa di popolazioni che Cantavano in base 5, I Maya avevano un sistema di numerazi.one
vigesimale. .
..
.':O
...
,.
:,4
~~
·.ii
jl
.: ;
.}
.,
·,·
~I
.~j
1
· tr
i
'~ 1
"1
':.
...;
...:
... ')
.,
.',
;~:;
,
"
, ,~
:'
.,~
"4
.';,
"~I
·,
~
..""
i
· ·~
::~.
),~,
.~
'r"
0.']
~·j~
~1
.....
,X;::
,-,
'1
',,:'
'~'
"
,,,
;ij
~
,.
Ji,
~:~
,.J
,.~
, .•
'~
.~.
~'
,
.:,p
;-.,;
;,;1
,,1
:.
:,
,
"~j
.0;
·J
..":
:"
,.;
~,
"",
·"
-Il
.:,
~i
:1
..,~
. '.,
',.
"
"~
.'·"d
...."
..,-,
]
12Nel seguito la numerazione in base 8 Don viene piu considerata, anche perche ormai si fa )
praticamente usa solo della numerazione in base 16.
....
OW' ',.
.~'
4:
~ .
i•.
l'
; .
}
,
·~l:
I'
j .
1
r
i
1
1
.'
;
:1
)
,.,
', "
:; .
,
..
~
1''
~
4 ..
,
I;
,
~.
"' .
it
~1·
~l;
.,
~..
"
]
~I'
1 "
.
::I
,'
1'
'j ,
'l
",
j 
~
.
i,
~
J
~,
.'•
~I
.'
'
,
p.,
;
;1
11
:.it
,,j
,
j
;
JI
":1'
"
;,1'
,I
,,
"
ll'
,!
i
11'
~
,
,~
.,.
"
~yO
d '.
"
,
lntroduzione 9
Can B = 8 (sistema ottale) l'insieme dei simboli diversi e{3 = {0,1,2,.. ,7}. Se, a
esempio consideriarno la stringa 417, essa corrisponde al numero:
417 = 4 X 8' + 1 X 81
+ 7 x 8° = 4 x 64 + 1 x 8 + 7 x 1 = 271
Llapparente incongruenza ~eriva cial fatto che normalmente, quando si vede un nume-
roo scritto, se ne da. ~n'interpretazione decimale. Per evitare equivocil
l'uguaglianza
andrebbe scritta come:
417s = 27110
nconcetto'di numero epuramente astratto, 417 e 271 sono 1a rappresentazione
dello stesso numero" in due diverse basi di numerazione. Per questo motivo, stringhe
di cifre come 417 e 271, di base imprecisarta, si dicono "numerali".
Can B = 16 (sistema esadecimale), per costruire un insieme di 16 simboli si pren-
dono a prestito Ie prime 61ettere dell'alfabeto, per cui {3 = {0,1,2,.. ,9,A,B,C,D,E,F}.
La stringa 22, interpretata in base 16, corrisponde a numero
2 x 16
1
+ 2 x16° = 34
Can B = 2 (sistema binarin) si hanna solo due simboli diversi: 0 eLLa stringa
10011, corrisponde al numero
."
1 x 2' +0 X 2' +0 X 2' +1 X 2
1
+1 x 2° = 1 x 16 +0 x 8 +Ox 4 +1 x 2 + 1 x 1 = 19
10
In Tabella 1.2 vengono riportati i prirni 17 numeri interi nelle 4 rappresentazioni
. appena viste. La numerazione in base 2 eimportante perche nei calco1atori elettronici
l'informazione erappresentata solo attraverso due simboli {O, I}. Le numerazioni in
base· 16 e in base 8 interess~no perche 1a trasformazione tra queste basi e 1a base.2 (e
viceversa) eimmediata12 .
lfase 2 ~ase 8, Base 16
-"ase 10 1 .i;ase 10 Base 2 B.... B Base 16
0 O. 0 0 9 1001 11 9
1 1 1 1 . 10 1010 12 A
2 10 2 2 II 1011 13 B
3 11 3 3 12 1100 14 C
4 100 4 4 13 1101 15 D
5 101 5 5 14 1110 16 E
6 110 6 6 15 1111 17 F
7 111 7 7 16 10000 20 10
B 1000 10 B 17 10001 21 11
,
Tabella 1.2 I primi ]8 numeri nelle basi 101
2, 8 e 16,
I
I
J
I
,
"
I

(

I
I
J
J
"
',,!
""
"
.
'.'
-
"?
,
"
;'.f
:-~
'.
':~
" ..
,(,~ ",
,~,
"
,
, ,'~
:,
..
,
.;,
;'i::1. ,,"
;1,
':- iI.
';;
<;
II'
I
-,~,
,,'.
,·u
'::l '. ,
~~."
):1
,
,
"
1
"'t '
'"
'J!
-:?I .
! J
.': ",
, c' ': .
"
'j "
.i " ....
:,~: . '
" ','
, ,
J.j
..J
<,
'~
,-
..,
(
.."
';:i:
, ,
. ;.
=
10 Capitolo 1
Esaminiamo per prima cosa la conversione cia base Bk a base B e viceversa. In
particolare interessa 1a conversione tra esadecimale e binario.
Si consideri il numero binario 010111000011. Si raggruppino a partire da destra
Ie cifre binarie a quattro a quattro (0101 1100 0011) e sl sostituisea eiaseun gruppo
•
con la corrispondente cifra esadecimale (Tabella 1.2), 51 ottiene la stringa 5C3, E
facile convincersi che questa ela rappresentazione esadecimale del numero binario di
panenz3. Ovviamente it processo puo essere applicato anche in modo opposto, per 1a
conversione da binario a esadecimalej per esempio:
1.2.2 Conversione di base
IJLB07
"
=000111001101000001112
Formalmente quest.a proprieta si dimostra Del modo seguente. Sia data.la stringa:
bn - 1bn _2 ... b1bo in base Bot I cui corrisponrle il numero ,
bn_1(B')"-1 + bn_,(B')n-21 +'" + b,(B')' + bo(B')O (1.1)
dove ogni bi epresQ da {O,l,... lEI:. - I} ed erappresentato in base B come
b' k-1b k-2 '" b 0= b' '_lB'-l + b' ,_,B'-2 +" ,+ b oBo
, , ' , ' , " 1,
dove ogni bi,; e presQ da {DIl"" ,B - I}. Sostituendo in 1.1 a cia.scun bi la sua
rappresentazione in base B, si ha
[bn_1,'_lB'-1 + bn_1,k_2B'-2 + ' " + bn_1,oBO](B')n-1 +
(bn_2,k_1B'-1 + bn_2,'_2B'-2 + ' ,"+ bn_2,oBO
)(B')n-' +
[bo,'_lB'-l + bo,'_2B'-2 +'" ,+ bo,oBO](B')O =
,
b B kn-I b B kn - 2
n-I,k-I + n-l,k-2 . + ... +
bO,k_1B'-1 + bO,'_2Bk-2 +, ,,+ bo,oBo)(B')O
che corrisponde alia stringa bn-t,k-lbn-l,k_2 ... 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 =7710
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
N ::;;: bn- 1 x 2n- 1
+ bn_2 x 2n- 2 + ... + bl X 21 +bo x 20
Se si divide it polinomio per 2 si ottiene bo come resta e bn _ 1 x 2n- 2 +bn _ 2
x 2n-3 +
+ ... +b1 come Quoziente. Dividendo il Quoziente per 2 si ottiene bl come resta e
bn _ 1 x 2
n
- 3
+ bn - 2 x 2n
-
4
+ ... + b2 . Si itera il procedirnento fino a cite l'ultimo
quoziente attenuto non epiu divisibile. A Quel punta 1a rappresentazione binaria si
ottiene scrivendo da sinistra verso destra i resti in oedine inverso a come sono stati
peodotti. Consideriamo per esempio il numero 35. La serie successiva di quozienti
e resti ottenuti dividendo per 2 e: (17,1), (8,1), (4,0), (2,0), (1,0) (0,1); dunque la
rappresentazione binaria del nurnero 35 (decimate) e: 100011.

)
I
)

I
I
I

)
I

I
I
1
, 1
, I
,
1
",
"'""'M '
.,i~ ~
11
lntroduzione
1100,1011 +
110 1110
1 0011 1001
0 1 10110 x
nHE 101
10110
00000 ,
10110 -
1101110
o 1
o iI[Tl
1~,
1.2,3 Aritmetica binaria
,
,'
B = bn _ 1bn _ 2 •..•... b1bo
Tabella 1.4 Tabellina del pcodotto. It prodotto tra due uUIneri in base 2 viene calcolato
col medesimo procedimento seguito in aritmetica decima.le.
con bi E {OIl}. Tale vettore rappresenta 2n numeri diversi, per esempio i 2n interi
positivi compresi tra 0 e 2
n
- 1. Occarre stabilire una qualche convenzione per rap-
presentare i numeri negativi. Di norma se il bit pili a sinistr·a e1, aHora il numero
viene interpretato come negativo. Sono possibiti tee convenzioni:
1.2.4 Numeri negativi
Consideriamo un vettore di n eifre binarie
Tabella 1.3 Tabellina. della somma. aritmetica ed esempio di somma tra. due numeri in ari-
tmetica binaria. Nella tabellina Ie due cifre 10 nell'angolo in basso a destra indicano che la
somma di 1 can 1 da riporto.
Costruire un'aritmetica binaria ricbiede che vengano scalati sulFinsieme {OIl} i fami-
liari concetti dell'aritmetica decimale. In particolare si possono costruire Ie tabelline
delle varie operaziani aritmetiche per 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 eun proceaso che richiede il calcolo dei prodotti parziali e
l'esecuzione della loro somma. Per approfondimenti sull'argomento si rimanda alia
letteratura meozionata.
,
•
>..
,'
"'~.
,
".
,.
' ",
'
"'~
12 Capitolo 1
.,;"
IJ!
";
..'
."
.,
."
,
.' ,1
7"
~~I
,
~"
,;.!
',~
::'
,,
'.V
i·
,:.~
n'
'.'.
-t
:::
I"
..,~
;
"
':
, '·
..
:~
','1
~
.,
--
"~l
,',,,
..'....
:!)~!
..
'J
,
" i''
~
';I
1_
,'-:;
,,< 'I
"J
;:
.'..,
j
.~f.o
'"'..
-
1_
~S
"
•
'lll
..~
, I ,
~"
.• 11
~t
i~
l
... ~I,
"
.~
;.'a
(30)
(-22)
(8)
numero dato (16, = 22.)
complemento a. 1
complemento a 2
+
00011110
11101010
00001000
00010110
11101001
11101010
La differenza a - b si ottieoe sommando:
Complemento a 1. .n camhiamento di aegno viene ottenuto complementando
ciascun bit del corrispondente valore positivo.
Complemento a 2. ncambiamento di segno viene ottenuto complementando ale
aggiungendo 1. Con n bit a disposizione si hanno numeri positivi (compreso 10 zero)
cia 0 a 2
11
-
1
- 1 e numeri negativi da -1 a _2n- 1
. Per esempio, con 8 bit i numeri
positivi vanna da 0 a. 127, i negativi da -1 a -128.
La soluzione in complemento a 2 equella normalmente adottata e la sottrazione
del nUIDero b da a viene eseguita come somma di a col complemento a 2 di b. Ad
esempio, 'i prenda a = 00011110(= IE" = 3010) e b = 00010110(= 1616 = 2210), n
complemento a 2 di b si ottiene Corne~
-
F = L1L,··· L m
Modulo e Segno. In questo cas~ si passa da valore positivo a negativD semplice~
mente cambiando da 0 a 1 it bit piu significativo.
L,B-1
+ +LmB-m
Esempio 1
n numero binario .101 corrisponde a1 numero decimale:
1 .2-
1
+ 0 . r' + 1 . 2-3
= ~ + ~ = 0,5 + 0,125 = 0,625
Fino a questa punto abbiamo considerato solo numeri interi. La stringa:
,b_1b_2 ... b_m
1.2.5 Numeri frazionari
si interpreta come:
•
La conversione da decimale a binario si ottiene con questo ragionamento: dato
il numero frazionario F in base 10, si tratta di trovare la stringa b-1b-2 ... b_m tale
per CUll
)
]
,
I
)
•
I

l
J
,
I
I
•
I
I
I
I
I
13
Introduzione
Si ba dunque (0,78125ho = (0,11001),
.
...,Esempio 2 Si voglia convertire in forma binaria it numero decimale 0,78125.
.. 0,78125 x 2 = 1,5625 -> 1
0,5625 x 2 = 1,125 -> 1
0,125 x2 = 0,250 .... 0
0,25 x 2 = 0,5 -> 0
0,5x2=1,0 ->1
Osservando che b_1 ela parte intera del prodotto
Per i,numeri interi si assume che la virgola sia posizionata all'estrema destra. In modo
del tutto analogo per i numeri frazionari iI punto binario viene considerate all'estrema
sinistra. Per cui un generico numero N sara formate da una parte iDtera e da una
parte frazionaria separate tra loro cia! punto e interpretate illustrato. Quando il punto
separa la parte intera dalla parte frazionaria si parla di notazione in virgoJa ji3sa.
•
. .
F'requentemente, e, in modo particolare nei problemi di calcolo tecnico e scientifico,
si ricorre a rappresentazioni normalizzate di dat~ cbe hanno 10 scopo di sollevare
l'utilizzatore dai pr6blemi conriessi con i1 contrallo della posizione della virgola e con
,
Paumento del numero di dire a seguito delle operazioni aritmetiche che via vengono
eseguite.
Nel calcoto numerico i dati vengono di solito espressi Come prodQtto di due fattori,
il primo dei quali comprende Ie cifre significative del numero da rappresentare mentre
i1 secondo, euna potenza del 10, il cui esponente definisce la posizione della virgola
nel numero.
1.2.6 Numeri in virgola mobile
±.;,. X b±41oi ...a"
. ...1 2 3· / ,YIY2Y3 . .. Yk
dove bela base del sistema di numerazione, X1X2X3. _. Xh, Y1Yz1!3 • . -11k e G1
a2 . .. an,
sono cifre della stesso sistema.
II numero X1X2X3··· Xh,Y1Y2Y3 ... 11k vieoe chiamato mantissa, mentre il numero
a1 a2··. an viene chiamato esponente 0 caratteristica.
EsemDio 1
nnumero 127000000 puo essere scritto nella forma 127x 106) mentre il nume-
- 1'00,0000015 puo essere scritto come 15xlO-7. Tale convenzione non elegata
. ':~"al1a notazione decimaIe, e puo essere estesa agli altri sistemi di numerazione.
In generale si puo dire che un dato numerico qualsiasi ammette una rappreseotazione
approssimata corne la seguente:
2X F = L, +L, X 2+.. ·Lm· X T(m-l)
si deduce che la: ricerca dei coefficienti bi richiede un processo di successive moltipli~
- cazioni della parte frazionaria con estrazione 'della parte intera. n processo termina
quando la parte frazionaria risulta 0 (oppure non termina se il OUIDero eperiodical.
'-
..
",
"
!
;,
..
'.
"l
,
"
11,
I!
!
~
,,..
.",.;. ,. "~-
'oJ..'."'{"'.' -
..-.~~,. ..
c' J ; '.'
V '...,..y-.,
· )' ,
~,
',
.'.
tt
:1"
" t .
~
'",
"
:1
·11,
'
~I
11
~
,
-~ .
ll,
.. '
! '
..
.!'
'''I.
~
I~"

I
I
"
:~I.
,
j'I'.
o) ',.
_
Sl
•
l,..
~. .'
'
",
1 _
t ..•
~:
l,
~
a.
.
1 14 Ca.pitola 1
';1
:;
.,
.;:;
"
.,
,.
.,
•
,~
iiii
'f
,
"~I'
.,
, 'I.'
"
,11
•
'.
:~
~..
..
,~
,
,~. '
'g'
,
, ,
,1
"
•
•
;'~I
._-;
"n
i:U
';,
,f1,
.n,
.Ji'
':'1> -
..,
~,
'.~'
l
,a
·, .
,
,'n,
'<I
l:it
;,l~..
1.'
.~
,'. I
". .
'.'
',"
.~
:'1J
.~
:;u~".•
,;'1' I,
,.
, .
". '
"
~
;ll:
"
i c
I
~
_,0
~," .
:, 'f'
',.
~
••
•
.,
'll
·,
"I'
· .
±a, =-7
±al = 6
b= 10
b = 10
• XIX2Xa,YIY2Ya = 127,000
• XIX2X3,VIV2Va = 15
EseIlllliQ 3
1 numeri dell'esempio precedente diventano:
127x106 =0,127x10'
15x10-7 =0,15x10-'
I segnQ I espQnente I mantissa I
Es~mlliQ 4
Utilizzando Ie seguenti convenzioni:
,
'.
- 10 zero che indica la parte intera della mantissa;
- il punta decimale;
• II punlQ che indica II prQdQttQ;
- II valQre della base della pQtenza;
• fissando la lunghezza della mantissa a un valore costante;
• limitando l'esponente ai valori compresi in un opportuno intervalloj
• utilizzando un esponente convenzionale ottenuto sommando all'esponente effetti-
vo una costante (bias) che 10 renda sempre positivo ed eliminando quindi il segno
delPesponente;
• disponendo i tre elementi rimasti in uo ordine stabilito.
• eliminando i caratteri non necessari ovvero:
Alcuni cara:tteri della rappresentazione esponenziale normalizzata sana ancora ridon~
danti ed epossibile, mediante ulteriori convenzioni, arrivare a una, rappresentazione
piu compatta.
Una di tali rappresentazioni, nell'ipotesi di notazione decimale, si ottiene adot-
tando Ie seguenti convenzioni:
t
r

)

)
Su una rappresentazione come 1a precedente si puo [are la convenzione che la prima
cifra significativa si trevi immediatamente a destra del punta decimale. Per ottenere
db sara. sufficiente aumentare 0 diminuire il valore dell'esponente di tante unita Quante
sono Ie posizioni di cui estato spostato il punta. La forma ottenuta con questa
convenzione edetta rappresentazione esponenziale normalizzata.
 . ,
I
1
" Esempio 2
I Riprendendo i numeri dell'Esempio 1, si ha:
)
1
I
I
! l
I
•
segno esponente mantissa
0,127x10' + 59 . 12700000
0,15xlO~' + 45 15000000
13Corrispondono a queUe de~la. convenzione IBM descritta poco piu a.V3nti.
Introduzioue 15
- lunghezza mantisse : 8 cifre;
- valore esponente: da, -50 a +49j
- valQre della CQstante (bias), 50;
i numeri dei precedenti esempi si scrivono come segue:
Come gia detto, la rappresentazione in virgola mobile non eleg~ta alia Dotazione
di numerazione, Una rappresentazione usuale ,e su 32 bit, Per essa si facciano Ie
seguenti convenzioni13;
• II primo bit rappresenta il segno della mantissa (9 per il seguo +, 1 per il segno-);
" • I sette bit successivi rappresentano l'esponente da usare per la base 2, aumeJ!tato_
di 64. L'esponente convenzionale puo variare tra 0 e 127 (che eil massimo intero
positivo rappresentabile con 7 bit), queUo effettivo deve essere compreso tra -64
e +63 (64 cQrrispQnde a 0);.'
• Gli ultimi 24 bit rappresentano il valore assoluto della mantissa in forma norma-
lizzata (it primo bit a destra della virgola cleve essere 1).
Esemp.iQ..2
Si consideri il cumero 204,17437
RappresentaziQne binaria: 11001100,00101100101111
RappresentaziQne nQrmalizzata:' (0,1100110000101100101111), x (101000),
Con Ie precedenti convenzioni si ha:
bit di segno: 0;
espQnente, 0001000; manti..a: 110011000010110010111100
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.
-
c,
.~'.
>,
rn 1000010 [TIoo 1100 0010 1100 1011 bOO I
Esempio 6
Rappresentiamo il numero decimale 204,17437 in notazione Hoating-point
secondo la convenzione IBM.
Si hac
(204,17437)10 = (11001100,00101100101111),=(CC,2CBC)I'
La normalizzazione della mantissa si 'ottiene spostando il punto decirnale di
due eme (16 bit) a sinistra; corrispondentemente l'esponente va posta pari
a +2:
(CC,2CBCh, =(0,CC2CBCh, x16'.
L'esponente convenzionale si ottiene sommando all'esponente effettivo (+2) •
la costante 64, ottenendo: (66ho =(1000010),. 11 risultato e:
Convenzione Digital Anche nelle macchine Digital e adottata una rappresenta-
zione su 32 bit:
• il bit pili significativo (bit 31) fornisce il valore del segno s della mantissa (0= +,
1= -);
• i successivi 8 bit (bit 30+23) contengono l'esponente convenzionale esp ottenuto'
sommando 1a costante 128 all'esponente effettivo. Puo assumere i valori compresi
tra -128 e + 127 ed e riferito alia base 2;
• i rimanenti 23 bit (bit 22..;.0) contengono la mantissa;
ISlOIT] esp7~
L' esporiente puo assumere valori interi cornpresi tra -64 e +63 ed eriferito alia
base 16. La mantissa enormalizzata, tioe la sua prima cifra esadecimale ediversa da
zero: cio compona che &lmeno uno dei primi quattro bit della mantissa (bit 23~20)
sia diverse da zero; fa eccezione 130 rappresentazione del numero zero che e data da 32
bit tutti nuIli.
Convenzione IBM Nei mainframe IBM, eusata la rappresentazione a 32 bit, con:
• il bit pili significativo (bit 31) fornisce il valore del segno s della mantissa: (0=+,
1= -);
• i successivi 7 bit (bit 30+24) contengono l'esponente convenzionale esp (intero)
ottenuto Bornmando all' esponente effettivo 1a costante 64. Cosl facendo si rende
l'esponente sempre positivo e non epin 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.
16 Capitolo 1
lntroduzione 17
1
j
)

J
j
)
I
I
I
I
C!TIOOOIOOO [ 100 11000010 1100 10111100 1
'EsempiQ 7
Rappresentiamo it numero decimale 204,17437 in notazione Boating-point
secondo la convenzione Digital
.Si ha :
(204,17437ho =(11001100,00101100101111),
La normalizzazione della mantissa si ottiene spostando il punto decimale di
8 bit a sinistra; corrispondentemente !'esponente va posto pari a +8:
(11001100,00101100101111), =(0,1100110000101100101111), x(101000),
L'esponente convenzionale si ottiene sommando all'esponente effettivo (+8)
la cost.nte 128, ottenendo: (136ho =(10001000),. n risultato e:
lsI bit I esp 8lillJlV! 23J»D
·La mantissa erappresentata 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
sia uguale a 1. Poiche questa bit esempre uguale ad 1; non necessita di essere rap-
presentato: la m~tis~ae, dunque, espressa co~, 2~ bi~) m~ solo i 23 meno ~ignificativi ]
sana rappresentatl (bIt 22-:-0), mentre quello PlU slgnificatlvo, assunto uguaIe a 1, non
erappresentato (hidden bit - bit nascosto). ncaso del numero zero, la cui rappresen-
tazione sarebbe incornpatibile con l'assunzione fatta (dovrebbe essere nullo anche il
bit nascosto) e indistinguibile da quella del numero 0,5x2-128 (tutti i bit nulli eccet-
to quello nascosto), econsiderato a parte. Vambiguita e stata risolta considerando 1
ugliale a zero il numero quando gli 8 bit dell'esponente sono tutti nulli (esp =-128),
a prescindere dai valori dei bit della mantissa.
lunghezza singola;
lunghezza doppiaj
• formato esteso:
lunghezza'singola;
lunghezza doppia.
Standard IEEE 754-1985 per l'aritmetica binaria in virgola mobile Per
eliminare la confusione dovuta aHa nOn definizione delle istruzioni in virgola mobile,
che riguarda il numero di bit usati per rappresentare l'esponente e la 'mantissa, l'in-
tervallo di esistenza degli esponenti, i metodi di arrotondamento e la trattazione delle
eccezioni (come l'overflow), estate introdotto 10 standard IEEE 754-1985 [lEE]. Esse
specifica il formato, Ie operazioni, Ie conversioni tra i differenti formati Boating-point
e-quelle tra i diversi sistemi'di numerazione e il trattamento delle eccezioni, compreso
il NaNs (not-a-m..mber).
La standard definisce 4 formati floating-point:.
• formato base:
,
'.
,," .
-0-
"t~ii'.!j"-,
:~il:~!~'-.~_
".-:.:('-~;-'
--"
.1'"'
..,
';., .'
'I
J
J~ ,
,n
"". .
:1I'.
.J '
;11 .
.'i:
·"u
ii c
.,) ,.
-'.,. .
••R·
· j.,
'."1.'
~1lI-. -
,.~.
-':"
"'~"I' '
~. -. .
,. - -
:""1" ,
-'. n . ,
.~.. .
.-~
'"
..
•
.,
'J-j.'
:y~",
.~ --
,
~,~, .
.~C)ij .~
• •
',. ' ,
:;<!
.,:'} ~,
.:,
.,-t
.', i,
·.
>Vil~-
" ..C
':'1
..~ ,.
·r "
"
,;til
"'1'1'
.-:{ ,
,1'
"
';,
"~1~1'
•
:".
·,,.-'.
_.,1
,.,
;~~~: •....
,'.~. --.
.Ill
~<fl
;:~
.,'
j
'i'
· ,Ii
"'1"
.' .1
~.;- :
r"
'I'
•
..~.
,
:.;;~
'::':~
,1
YI
..,
) 18 Ca.pitolo 1
•
-
..
,~..
" .'
-:~, ~'
.'(-,'"
.>
;.,~
i

I
1
I


I
t
1
l
1

1

1
I
I
Ogni formate edefinito specmcando tre par~etri interi:
• P=numero di bit signi.6.cativi (precisione, ovvero numero di bit che compongono
la mantissa); ,
• Emtl:l=esponente massimo;
• Emin=esponente minima.
Dalla definizione di questi parametri si pUG risalire al numero di bit deWesponente,
all'esponente convenzionale e alla lunghezza del formato. I formati sana riportati ~n
TabeUil.1.5.
Singola Sin.e.:ola estesa Doppia DoEPJ,a estesa
t' (bit di precisioneJ 23 >32 52 >64
ETna~ 27 >1023 1023 >16383
ltmin -1.6 < -1022 -1022 < -1638.
Bias
~
1023
L~~ezza Esponente >11 11 >15
Larghezza formate 32 >43 64 >79
Tabella 1.5 Formati standard IEEE 754-1985.
Lo standard impiega esponenti polarizzati, cioe at valore reale dell'esponente
E viene aemmata una. base eli polarizzaziene (bias, pa.ri a 127 nel caso <;li singola
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:
- lID bit di segno s;
- espanente polarizzato e::E+bias;
- mantissa M=,ffilm2ms ...rnp_l;
n valore di E varia tra Ef1in ed EfnoJ.x, includendo anche altri due valori riservati
Emin - 1 per codificare ±O. e numeri denormalizzati, ed Emax + 1 per codificare ±oo
e il NaNs.
La mantissa eun numero decimale (binario) la cui parte intera esempre .1. Per
questa motivo tale 1 non compare nel campo mantissa della rappresentazione. Tale
campo, quindi, si compone della sola parte frazionaria.
Esempio 8 '
Rappresentiamo con 10 standard IEEE il numero decima:le 5, nel formato in
singola precisione.
(5),0 =(101),;
(101), =(1,01), x(1010),;
Segno=O;
Mantissa=01000000000000000000000 (la parte lntera eimplicita);
Esponente=00000010
';n
:"
)~I; .
••
"'.
,
I,>;,
-,
'~.!I
" .
'::"1
"j'
'.' '
C'~1
d
.~
.,
T
,-~!
t~
-'
,
'.
, ",~"
":,'~I, '
'''I'
•-!~ -
"M"'
:'1
;'1
:ii'
''':'
.,
'='1"'
".;,'1
"~ia"
'II'
" .
? ;.
;',
.,
~1
(It
·'·'11"
•
•
..,~,
, '
) "
"'f
AI
"
"...
,
,u,
,
...'
"
;u';
· ,
• •
~lt
"
'.
•'-1,
..'
,~,
Introduzione 19
I campi sono interpretati come segue:
.
• Singola: un numero X in formata singola precisione a 32 bit ediviso come segue:
lsI bit I esj:> 8 bit I M 23lillJ
nvalore v di X ededotto dagli elementi componenti i campi nel seguente modo:
L Se esp=255 e M;60, a1lora v eun NaNs nonostante s;
2, Se esp=255 e M=O, aHora v= (-1)'00;
'3, Se 0 < esp < 255, aHora v=(-1)'2'-127(LM);
4, Se esp=O e M;60, aHora v=(-1)'2-126 (0,M:) (numeri denormalizzati);
5, Se e=O e M=O, aHora v=(-l)'O,
• Doppia: un numero X in formato doppia precisione"a 64 bit ediviso come segue:
lsI bit Iesp 11lillJ M 52 bit I
1 II valore v di X ededotto dagli elementi componenti i campi nel seguente modo:
1. Se esp::2047 e M#O, allora v eun NaNs nonostante s;
2, Se esp=2047 e M=O, aHara v=(-l)'oo;
•
3. Se 0 < esp < 2047, allora v=(-1)'2'-1023(LM)
4, Se esp=O e M;60, a110ra v=(-1)'2- 10"(0.M) (numeri denormalizzati)
5. Se esp=O e M=O, a1lora v=(-l)'O,
Altra caratteristica della standard ecostituita dalle regole di arrotondamento. Quan-
do si esegue un'operazione su due numeri in virgola mobile, di solita il risultato eun
valore reale che non si puo rappresentare in modo esatto in virgola mobile.
Lo standard IEEE 754-1985 prevede quattro modalita di arrotondamentoc
. arrotondamento al valore piu vicino (e 10 standard);
- arrotondamento a zero;
- arrotondamento a +00;
. arrotondamento a -00.
EselllPio 9
Usando una rappresentazione in virgola mobile in base 10 a due dfre, si ha
2,1 x 0,5 = 1,05
•
20 Capitola 1
che non e pili rappresentabile in modo esatto 'con due cifre poiche ne richiede
tre. Si arrotonda a 1) oppure a 1,0? In una situazione ambigua come questa
10 standard prevede Parrotondamento al valore la cui cifra meno significativa
epari. Quindi 1.05 viene arrotondato a 1.0.
La standard prevede che il risultato effettivo di un'operazione in virgola mobile sia
queUo che 5i ottiene calcolando il ri5ultato esatto, 0 ideale, e poi arrotondandolo
mediante una delle suddette modalita. Tale approccio risulta. molto costoso, dato che
occorre eseguire una somma con un nurnero elevato di bit (tramite un sommatore di
notevoli dimensioni), una parte dei quali verranno pero scartati alIa fine del processo
di arrotondamento.
Nella somma algebrica si possono usare due modalita. di arrotondamento distinte.
Una prima modalita eprevista nel caso in cuI gli addendi abbiano uguale espo-
nente. In questa caso la somma delle parti frazionarie degli addendi produce un riporto
a sinistra, che va considerato spostando la virgola mobile a sinistra e incrementando
l'espnnente; si perde coslla cifra meno significativa della parte frazionaria.
Esempio 10
Consideriamo due numeri in virgola ·mobile (scelti decimali per semplicita)
e calcoliamone la somma:
(0,836 x 10-'),0+(0,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-
tissa normalizzata di tre cifre) enecessario spostare la virgola a sinistra e
modificare il valore dell'esponente, perdendo cosll'ultima cifra decimale.
Ualtra modalita. ellarrotondamento conseguente alIa disuguaglianza degli esponenti
degli addendi: I due esponenti vanno eguagliati e percio la parte frazionaria di uno
dei due addendi va fatta scorrere (quelIa del numero cun esponente minore) perdendo
cosl almena una cifra.
EsemI?io 11
0,836x 10-'+0,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
(round digit)
Lo standard IEEE prevede anche cinque cause di eccezione aritmetica:
• underflow
• overflow
• divi,sione per zero
• eccezione di inesattezza
-,
"
",
.
,
/if
.~
,,
..
, -
i'
',;
, ';
,""
?,W
. :
-;'i
;;
.,"
.
"
"~
·~t
-:f;
;·,
-,,1
.,.'!
';
-'/
,"
";;
":~
'
!
. ",
t
',
-,
....
f
'!
S
','.
,!I,-~": -
';
•
.~I
il
",1 '
"-
..,
,..
f:"
-
,
~.;J'
,~'
,~'I
.•r
-,
'~'
;j~ ,.
;'U
""
W
:,~­
i~ ,
;ri,
".'
.
""I'
"~'
t,· '
;~
,6
11;
!,
;i
-./
"'5
"11
;;, .
~-;J"
''(j :
'-j
!,~'
",
•
tl
<"
'!;;-
,.1
,:~.
.,'
..;~.'
.~~~
--
- . -
.::
f
'!;
S.
.,-,,1
~
Introduzione 21
• eccezione di invaliditd.
Le eccezioni di underflow, overflow, divisione per zero, sono presenti anche in altri
standard. L'eccezione di inesattezza e1a caratteristica delFaritmetica IEEE e si ve-
rifica sia quando il risultato di una operazione deve essere arrotondato, sia quando
l'operazione meorre in un overflow.
Quando si verifica una di queste eccezioni, eprevisto l'aggiornamento di un bit
di segnalazione, rna il calcolo puo proseguire. Questi segnalatori, una volta attivati,
rimangono tali 'fino a che non vengono disattivati espJic~tamente. 10 standard raceo-
manda di introdurre anche un bit di abilitazione di interruzione (uno per ciascuna delle
eccezioni). II questa modo se si verifica una delle eceezioni, e il eorrispondente bit
di abilitazione dell'interruzione eattivo1entra il gestore delle interruzioni predisposto
dalPutente (ovviamente1in questa caso, il bit di segnalazione non enecessario).
Lo standard prevede che qualora si verifichi una interruzione dOV'uta a un1ecce-
zione aritmetica, si possa risalire all1operazione che l'ha generata e anche al valore dei
suoi operandi.
Operazioni in virgola mobile La descrizione dettagliat~ degli algoritmi con cui
verigono effettuate Ie operazioni algebriche in virgola mobile, non rientra nei fini di
questa trattazione. Per ulteriori approfondimenti 8i rimanda alia letteratura [Omo94],
[HP93); di seguito per dare un'idea di come vengono svolte tali operazioni, sono
-riportati in forma molto semplificata i principali passi dell'algoritmo di somma e
,moltiplicazione.
Somma alg~brica Le operazioni di somma e sottrazione di numeri in virgola mobile
'.: richiedono che gli esponenti dei due addendi siano uguali. A tal fine Occorre
, " traslare Ie mantisse dei due numeri una rispetto all'aJtra. Una regola generale
per l'addizione e la sottrazione mobile pub essere riassunta nei seguenti passi.
1. Si prende il numero con l'esponente minore e 5i trasla a destra la sua mantissa
di un numero di bit uguali alIa ditIerenza degli esponenti.
2. Si pone l'esponente del risultato uguale al pili grande degli esponenti dei due
addendi.
3. Si effettua l'addizione 0 la sottrazione delle mantisse e si determina il segno
del risultato.
4. Si normalizza il risultato se necessaria.
Moltiplicazione Per la moltiplicazione non enecessario l'allineamento delle man-
tisse. L'algoritmo pili semplice puo essere cosl riassunto.
1. 8i sommano gli esponenti
2. S.i moltiplicano 1e mantisse e si determina il segno del risultato
3.. Si normalizza il risultato se necessario.
l
]
I
1

1
f
!

)

)
J
J
. Tabella 1.6 Codifica "ASCII dei caratteri alfanumerici.
-
-'
.,
,
• ' A
.'
.
" .,.
" "
;'.~..
.,'.
.,-..,
~~-
"
,_.
....
.;ll;;
~, ,'.
!~:
~.,.
,
..•
""
.-
.
.,
. .,
'.
•
·.,
"
"·1
.'.'
J
....,
"
·"1;1
I.,.",
....,
,",
":''j1
." ~
<~'
....;
',:'1'
hi!
. "
·"
.,,,
. 
'",
'-
;~.
.,..
.,'".
" ~..
;,'oJ
,..:)j
:~H',.
'-
r; ,
,'I. '
." .,'
".'
Capitolo 1
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
1 31 49 b 62 98
.. .. .. .. ..
9 39 57'" z 8A 122
L'informazione elaborata all'interno di un calcalatore elettronico non esolamente di
carattere numerico, in quanta enecessaria rappresentare l'informazioni di tipo testuale
o cornUDque inIormazione di qualunque genere codificata attraverso simboli binari.
E costume universale chiamare byte un raggruppamento di 8 bit. Col termine
parala si intende un gruppo d.i 2, 4 0 piil byte, a seconda del contesto. Per esempio,
nelle ma.cchine a 16 bit si considera la parala corne farmata da 2 byte, mentre nelle
macchine a 32 bit la parola si considera farmata da 4 byte.
Per rappresentare l'informazione alfanumerica si rende necessario stabilire una
corrisponde~abiunivoca tra cara.tteri e segni dell'alfabeto e configurazioni di cifre
binarie. La conispondenza in ql.!-estione si dice codifica. Un forma molte naturale
ecodificare un carattere a byte. Es~stono diverse codifiche, tra cui la pili nota ela
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-
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.2.7 Informazioni di carattere alfanumerico
22
I
, I ca.lcolatori r"appresentano il settore applicativo in cui l'elettronica e Ie tecnologie
 digitali hanno trovato piu vasta applicazione.
Un semplice ragionaD')ento spiega bene Ie ragioni del successo d~l'elettronica
digitale. Se un sistema 5i campane di n elementi e p e1a probabilita che ha ciascuno

di ea5i <Ii operare correttamente, allora la prohahilita che l'insieme degli n componenti
operi correttamente epn. Se 5i considera quant'e grande il numero di componenti
elementari the formano un moderno calcolatore elettronico, si deduce epe p dE;ve
essere tendenzialmente 1. Da un punta di vista tecno10gico cib richiede componenU
 tali per cui sia facile diagno5ticare Ie situazioni di 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 .
l
1 1.3 Logica dei sistemi digitali
)

1
l

I
1
)
1
23
NOT
Introduzione
x t>o X
mpo
•
~ D x+y
.
te
xy
1.3.1 L'algebra delle reti
AND OR
Figura 1.2 Simboli standard per le porte AND. OR e NOT.
..
,X-fJ.-_
y-L--
1
a
, Figura 1.1 Forma d'onda idealizzata di un segnale logico.
HUn segnale analogico porta piil informa7.ione di un seguale digitate, sia. percbe a 6680 corrisponde
, una. infinita di valori nel1'intervallo di definizione, sia perche e possibile una infinita. di andamenti
della forma. d10nda del segnale. In pratica, disturbi e Iimiti fisici alIa vclocita di variazione rendono
inaccurato sia il procesao di generazione sia queUo di riconosdmento e misura de.i segnali analogici. Al
contrario, un segnale digitale emolto meno sensibile al ruinore e ai fenomeni transitori. Per quanta
riguarda i disturbi, basta the questi non portico il segnale al di fuoTi della fascia di discretizzazione
in cui si trova i1 valore del segnale al momento del verificarsi del disturbo; per quanto riguarda i
fenomenj traJlsitori, basta dar tempo sufficiente al loro esaurirsi in modo che il riconoscimento del
segnale dia un risultato non a.mbiguo.
15Vale la pella di rimareare che i due simboli nulla hanna a cbe fare can i corrispondenti simboli
aritmetici. Cib che serve per definire I'algebra sono due simholi distinti. In attn contest.i ve~gono
L'algebra edefinita su un insieme, composto da due soli elementi, c~mvenzionalmente
denotatilS con 0 e 1.
. Le reti costruite a partire dalIe porte logiche possono essere descritte attraver-
so un'algeora, detta algebra delle reti 0 algebra booleana, in ragione del fatto che
essa deriva dalla "logica" del ealcolo delle proposizioni, introdotta nel secolo seorso
·dal maternatieo e filosofo Inglese George Boole. Proprio in virtu dell'origine di que-
.: .s'ta algebra, Ie reti in questione vengono usualmente dette "reti logiche". Per una
, loro trattazione si rimanda all'Appendice A. Qui di seguito vengono rapidamente
,:richi"arnati aleuJ.1i concetti essenziali.
I componenti elementari dei sistemi digitali vengono detti "circuiti logici" 0, pili
comunemente Hporte". In Figura 1.2, vengono dati i simboli delle tre porte logiche
, fondamentali. Ovviamente gli ingressi e Ie uscite sonG segnali binari.
cap~cita. di discriminarli. Si tratta, per esempio, di ri~onoscere se un da.to segnale ea
un Hvello di tensione alto 0 basso, oyvero se ha un valore superiore b inferiore a Wla
.. data soglia14 . In Figura 1.1 viene riportato l'andamento (idealizzato) di un segnale
binario.
.,
•
..
)
'.
,
-
'
A'
'
.
...
.
.
.,
,
"
~j
,,
, ,
~!
.
,
}~
.,
..~'
.'/
i
, .
• l~
.
,,,
",
'Ji-
••
-,)1
d
,'"
,;t
';
_']
.'-:
x;iD
vomple-
mentazione
A B
~
1
D
se' e solo se
x=l
xiI
se e solo se
x~o
Pradotto logico
A B A-B
D D D
D I D D I I
I D D I D I
1 1 1 I 1 1
1.4 Reti combinatorie e reti sequenziali
Sull'insieme {O,l} vengono definite tre operazioni16 :
• il prodott.o logico, indicato con il segno 1I.1I;
• la somma logica, indicata con il segno "+";
• la complementazione 0 negazione, indicata il segno " - II
Le tre operazioni corrispondono, rispettivamente, alle tre porte di Figura 1.2 e i simboli
U+", ".'1 e 11-" sono intercambiabili con AND, OR e NOT.
In Tabella 1.7 vengono riportate Ie tabelle di verita delle tre operazioni. La
tabella di ventd di una operazione riporta it risultato dell'operazione stessa per tutte
Ie possibili combinazioni dei valori degli operandi.
Si definisce costante logica (0 booleana) un simbolo cui epermanefltemente asse-
gnato uno dei due possibili valori presi dall'insieme {O, I}. Si definisce voriabile logica
un simbolo che puo assumere indifferentemente uno dei due valori presi daB'insieme
{D, I}. Se x euna vari~bile logica si ha:
Una funzione puo essere espressa in forma algebrica 0 in forma tabellare.
,
usate differenti coppie di simboli come: vero/falso, V/F, T/F e altri. A ogni buon conto, l'uso dei
simboli 0 e 1 risulta convcniente quando si tratta di impiegare Ie reti per realizzazione dcgli operatod
dell'aritmetica binaria.
16Anche per gli operatori . e + valgono Ie stesse avvertenze date per i due simboli 0 c 1: niente
hanna ache vedere can i corrispondenti operatori aritmetici.
,
Si definisce espressione logica una qualunque combinazione di variabili a costanti
booleane legate fra lora dagli operatori logici fondarnentali. Si definisce junzione
logica delle n variabili booleane x" ... ,Xn, la relazione {D,l}n -; {D;l} che associa un
valore booleano a ciascuna delle 2R
configurazioni possibili delle n variablli:
y = f(x, ,... ,xn )
Si distinguono due categorie fondamentali di reti: Ie reti combinatorie e Ie reti
sequenziali (CIr. Appendice A).
Tabella 1.7 Ta.belle di verita delle tre operazioni fondamentali deWalgebra
24 Ca.pitolo 1
1
)
25
Introduzione
•
smcrone
,
..
,
Reti sequenziali Si ha una rete sequenziaJe quando l'uscita efunzionel oltre ch€ I
dell'ingresso, anche della stato. Indicando con S = {Yl,Y2, .. ' ,Yd 10 stato correntE. '
della rete, l'uscita viene espressa come. 0 = 1(1,8). AHa funzione di uscita e
necessario aggiungere 1a funzione di stato, espressa eome 81 = g(1,S), che lega Ie I
_stato futuro alIa stato presente e all'ingresso. Una rete sequenziale ha memonG
(limitata) della sequenza di ingresso. Gli elenienti di memoria binari vengonc. j
detti flip-flop.
17Nclseguito useremo normalmente la pa.roia clock per denotare it segnale impulsivo, di frequenz, ,
fissa." impiegato per comandare reti sincrone. 1
,..
Iri F~.g1lra 1.3 viene data una schematizzazione del modo di operare di una rete sequen-
ziale 8incrona, 'L'intervallo di clock T viene diviao in due parti, Ll1 e Ll2 , Durante Ll1 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 Ll2 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" l
i.loro .ingressi suI fronte di salita del clock e presentano il nuovo stato suI fronte d
·.' discesa del clock; sui fronte di salita del clock, i segnali in ingresso agli elementi d
, ~em6da devono essere stabili. Naturalmente non e·necessario che i flip-flop siano
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 eche al sopraggiungere del clock i flip-flop abbiano ingressi stabili. Inoltre,
-dopo.che i Rip-flop hanno presentato Ie loro uscite e, prima che sopraggiunga i1 nuovo >
.cl?ckl deve esserci tempo per tutti i segnali, compresi quelli derivanti dalPingresso, d J
prppagarsi e stabilizzarsi.
. . . 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 lDgresSll 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 emodo naturale per descrivere il comportamento di un;; i
·r~~~:.;~.~uenziale.o Per gli approfondimenti necessari si rinvia all'Appendice A.
..
"
,
. , ,'··:r:.' .,'" .,'
,. '. 1.4.1' Reti sequenziali
•
..
_::.-"'- ,.
.
"
.~ -,
.
- ! ...
,
..~-
-
'.-.-
'- " ,.,. '.-.
,
,
..
-"... ,
;:.:}:,
" ,- ..' ---
",,,;,-.~,".,,--, -
. - ".... "'Reti combinatorie Si ha una rete combinatoria quando l'uscita eesclusivamente )
fuitzi6ne dell1ingresso, ovvero quando per una data configurazione dei segnali
di ingresso risultano definiti i segnali di uscita. Indicando con I l'insieme dei I
,egnali di' ingresso e con 0 I'insieme dei segnali <Ii usdt~, owero, posta I = l
{Xl ,X2,· ... ,Xn } eO = {Zl ,z21 ... ,Zm}, per una rete combrnatona, vale la relazlone.
0= f(l)
''l.'''l'''t!'->0' .;.... -- "
,;.~r'<;·;f'''~''''. :_
."~'-.~"- .
, :';'+•.J.!~;.-,-". -" -
::>~?;~~~:'-'~.-
~ ~ -- ,
_... . ,
,:/
I:
:.:0,
,'"
" .
.,;~:
'"
,.,
...,(iII'
.
j,
,,,
,
!~,
..
.,,.,
.rl.
,.....
•. c.
.'~,
":.;'.'
.•~",
~.
,
';
/'
ii"
.'
~'
.'
,il
,l:
-,..
•
1{
dl
"
;t')'I'
;j '"
]1 .
:,
Figura 1.3 Schematizzazione delle operazioni delle reti sincrone.
In Figura lA, a sinistral vengono mostrate due reti in cascata operanti con 10
stesso clock. In questc case, sul generico impulso, 130 rete a valle elabora il risultato
delle elaborazioni effettuate dalla rete a monte nel periodo precedente. La scomposi-
zione d.i una rete in due'o pili reti in cascata si dimostra utile quando 130 rete singola
sarebbe trappe complessa. Cia compacta che l'esecuzione cii una data fUDzione (0
elabora.zione) richiede piu eli un cicIo di clock. E-facile convincersi, perc, che se si
realizzassero Ie sottoreti seguendo il madello sulla destra in Figura 1.3, ogni variazione
dell'ingresso primario si propagherebbe fino all'uscita, invalidando paffermazione pre-
cedente. E percio necessaria "disaccoppiare" il funzionamenta delle sottoreti, nel
senso ebe I'ingresso di una sottorete a valle sia determinato solo dalia sottorete a
monte e non dall'ingresso primario. Cia si ottiene rendenda Ie uscite delle sottoreti
funzioni del solo stato, come illustrato a destra in Figura 1.4. Si noti ebe can questa
struttura, al generico periodo di clock la rete a valle vede come ingressi Ie uscite della
rete a mante, calcolate nel clock precedente, mentre Ie variazioni degli ingressi primari
vengoDo osservate solo dalla rete a monte.
Di norma, il periodo minima del clock della rete scomposta in Bottoreti risulta
pin breve di queUo ebe si avrebbe con un'unica rete, in quanto l'intervallo di tempo
.:11 richiesto dalla logica combinatoria delle sottoreti risulta minore eli quanto richie-
derebbe una sola rete. Ma il tempo complessivo per eseguire una data funzione e
superiore scomponendo la rete in pili reti in cascata. lnfatti, sia T il periodo di -
clock richiesto da una rete non ~composta e T' queUo richiesto dalle sottoreti (che
,
supporremo uguale, per semplicita). E ragionevole aspettarsi che la componente LJ1
di T' sia inferiore alia componente L11 di T, mentre non c'e ragione per cui L1~ sia
diversi da .:12 . Ne consegue ebe T' < T, rna la rete scomposta opera in un tempo
IT' ebe eli norma eminore di T. Questa ragionamento non deve far pensare che la
scomposizione di una rete in piu reU operanti in cascata sia ,da escIudere. Anzitutto
la scomposizione semplifica il progetto, in quanta cODsente di raggruppare e iso1are
funzionalita. D'altra parte, la natura stessa dei processi elaborativi impone talvolta
una ben definita successione di passi, per cui la soluzione schematizzata in Figura 1.4
risulta. comunque la piu conveniente.
Possiamo elaboTare ulteriormente il modello di Figura 1.4 COIl il seguente Tagio-
namento: il blocco LC, a valle degli elementi di memoria, puo essere accorpato al
blocco LC in ingresso alFeventuale rete a vaile. Si ottiene, cosl, il modelIo I"iportato
in Figura1.5, dove ora Ie uscite cOTrispoodono esattamente allo stato della (sotto)rete.
~~ I I 1,--_
-
,!i
,
"
.,
,.'
~I'
11
jl
1'
, '
" ,
"
'I:
,~~ ,
,
,,',
'I
;
j
,1!'
~-l
.<
"
"
(
••
,~,
/,'
JI
,~,,!
".,:,
,.
'!I
",
"
I'
"I'
,
"
',.,
<,.,
'l
'.
." ,
'."
.,.
.,
~,
~
Ji
,.,
,
~' ..
,
~il
"
."
"'1.
,,
"
~~
"
••
:'-'
,.•
'F-I ,
.,.
'I'
~, "
'1<
1"~1
:;/'
""
; [;
'1
I,
",;:
l'
."
" I
"
"
.",
it
' .
I. :
"
~ i
""
"
"'1
;~f
',! ,
',.
u' ,
,
11
•
,
,I'
."
I
I~- Q
LC ~
Z1_.....
-"-
~,
~ "T ,I" :1
o
T
.~
~
I
Capitola 1
26
I

]

I
)
)
1
1
I
]
I
I'
1
27
lntroduzione
flNC~QNo
LC 100__11
S LC
"
• ,
o.~
~,t $IHC~OH~
LC
f-.
llo...,_" S
"
. ",
,.~
Figura 1.5 Madella di blocco componente di una rete sequenziale sinerona. L'uscita.
eorrisponde allo stato della rete.
I UH UH 0
,~... tlllCllO<.
f C'.C~ f
1.5 Registri
Nella discussione precedente si e parlato di elementi di memoria in riferimento al
solo stato della rete. Conviene generalizzare il concetto di memoria, In particolare,
conviene introdurre il concetto di registro.
Per registro si intende un insieme di n identici elementi di memoria (flip-flop),
tutti comandati claUo stesso clock.
I registri Bono componenti essenziali dei sistemi di elaborazione, non solo perche
costituiscono i supporti che materializzano l'informazione nella macchilla., rna anehe
perche essi permettono di partizionare 1a logica complessiva e di scomporla in blocchi
serniindipendenti, accoppiati tramite registri.
I registri possono differenziarsi per il tipo di flip-flop impiegatl, per il modo in
cui essi vengono comandati, per Ie funzioni aggiuntive a queUe di contenitore dell'in~
formazione (per esempio, 10 scorrimento) ecc. Per i nostri usi facemo riferimento ailo
schema di Figura1.6. nfunzionamento del registro eil seguente.
Figura 1.4 Collegamento in cascata di clue reti sincrone eoma.nclate dalIo stesso clock e
modella aggiornato della rete sequenziale, can uscita funzione solo della stato.
I vincoli riguardanti la propagazione dei segnali, si semplificano ulteriormente. lnfatti
se tutta la rete efatta di blocchi come quello di Figura 1.5, la rete combinatoria vede
sicuramente ingressi stabili, Se ora si ipotizza che gli clementi di memoria operino sul
fronte di discesa del clock, basta che if periodo sia lungo abbastanza. da consentire la
propagazione attraverso 1a parte combinatoria e da lasciare il margine richiesto dai
flip-flop per commutare. Piu sotto, una volta introdotti i registri, costruiremo un
modello ulteriormente semplificato.
,
,
,
,
"
1.6 Trasferimento dell'informazione
Figura 1.7 Madella di registro. Nel seguito si omette spesso eli indicare i segna.li Rin e
Rout, in tal caso si deve assumere che essi sono sempre asseriti
Figura 1.6 Struttura di un registro. Viene mostrato i1 dettaglio per il generico bit. 8i
assume che i1 registro commuti suI honte di discesa del clock. Nello schema si esupposto
che it segnale Rout abiliti l'uscita. in terzo stato.
-~I
..
j
ill
· "
""
..
.
:~
¥
i
..
'>j;
."
.!,
I'~
,';"
'"
':1
"'1
"
.;,
,..,,
·'I
·'1
'2
..
.;::-
~~
.~.,
I"
",'1
~
'~
:
'"
.;:.
"
0>
;
}
,
"
~
~)'
,
:i
t
'::'~
·;',
"'~i
~'
...'
'"
,
~I
"
,';:,
"
,:1
..
..
(.
'.
..
...'
'. "'
..
· ,
',11
..
,"I
.'
";1"
~,
·~
,
.,
ii'
'~J -
.~ ,
Clock ~ 61 T +62 ~
---.J I I L
'r T
Cloak 61 I A2 ~
OUT
IN
Rout
CIOO'---1: REG;TRO I
Rin
INi
Rin
'-.- '-.
>ck , x
•
•
Rout
OUTi
c,
Una larga parte delle attivita che si svolgono alPinterno di un calcolatore consiste nel
trasferimento dell1informazione tra registri.
Per trasferire informazione da un registro all'altro occorre che l'uscita del regi·
stro sorgente venga portata all'ingresso del registro di destinazione, Se si hanno m
possibili registri sorgente e n possibili registri di destinazione1 DecorTe una rete di
interconnessione che selettivamente coUeghi le sorgenti con Ie destinazioni. In linea di
principio si dovrebbero aver.e m x n percorsi e una logica di selezione che permetta di
• Si assume che il regist!o commuti suI fronte di discesa del clockI doe alIa fine
del periodo, Prima del fronte del clock gli ingressi SR/JK devono essere stabili
almeno per il cosiddetto set-up time e devono restare stabili dopa i1 £ronte per il
cosiddetto hold time (si veda la discussione in proposito in Appendice A),
• Se Rin edisasserito, l'ingresso ai singoli flip-flop e 00 e, dunque1 it registro si
mantiene nello stato precedente;· se Rin easserito 10 stato di ogni flip-flop (it
contenuto del registro) diventa quello corrispondente alPingresso INi.
• n segnale Rout ha funzione di Output Enable de1l1uscita a tre stati
Nel seguito useremo 10 schema di Figura 1.7. Quando i segnali Rin e Rout non
vengono indicati si assume che essi siano sempre asseriti.
28 Capitola 1
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf
Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf

More Related Content

Similar to Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf

Thesis Morandi Novati Slide IT
Thesis Morandi Novati Slide ITThesis Morandi Novati Slide IT
Thesis Morandi Novati Slide ITMarco Santambrogio
 
GaPiL - Guida alla Programmazione in Linux
GaPiL - Guida alla Programmazione in LinuxGaPiL - Guida alla Programmazione in Linux
GaPiL - Guida alla Programmazione in LinuxAmmLibera AL
 
Linux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compattaLinux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compattaAlessandro Selli
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode LinuxMajong DevJfu
 
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...Sardegna Ricerche
 
Monitoraggio di mac address in lan
Monitoraggio di mac address in lanMonitoraggio di mac address in lan
Monitoraggio di mac address in lanCe.Se.N.A. Security
 
Un sistema di persistenza per motori di workflow business-oriented BPMN
Un sistema di persistenza per motori di workflow business-oriented BPMNUn sistema di persistenza per motori di workflow business-oriented BPMN
Un sistema di persistenza per motori di workflow business-oriented BPMNAlessandro Segatto
 
Il Linux OpenSound System
Il Linux OpenSound SystemIl Linux OpenSound System
Il Linux OpenSound SystemAntonioTringali
 
Scheda Madre
Scheda MadreScheda Madre
Scheda Madreteoimpro
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiPietro Corona
 
Presentazione - Algoritmo di Dijkstra
Presentazione - Algoritmo di DijkstraPresentazione - Algoritmo di Dijkstra
Presentazione - Algoritmo di DijkstraMassimoPalmisano
 
Struttura dell'elaboratore (sample)
Struttura dell'elaboratore (sample)Struttura dell'elaboratore (sample)
Struttura dell'elaboratore (sample)Parco nord.
 
Presentazione Progetto cRio
Presentazione Progetto cRioPresentazione Progetto cRio
Presentazione Progetto cRioDario Mazza
 

Similar to Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf (20)

Thesis Morandi Novati Slide IT
Thesis Morandi Novati Slide ITThesis Morandi Novati Slide IT
Thesis Morandi Novati Slide IT
 
GaPiL - Guida alla Programmazione in Linux
GaPiL - Guida alla Programmazione in LinuxGaPiL - Guida alla Programmazione in Linux
GaPiL - Guida alla Programmazione in Linux
 
Assemblare un pc
Assemblare un pcAssemblare un pc
Assemblare un pc
 
Linux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compattaLinux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compatta
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode Linux
 
Hadoop analyzerJR
Hadoop analyzerJRHadoop analyzerJR
Hadoop analyzerJR
 
Presentazione tesi 2.0
Presentazione tesi 2.0Presentazione tesi 2.0
Presentazione tesi 2.0
 
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
 
E1 Memorie
E1 MemorieE1 Memorie
E1 Memorie
 
Monitoraggio di mac address in lan
Monitoraggio di mac address in lanMonitoraggio di mac address in lan
Monitoraggio di mac address in lan
 
Un sistema di persistenza per motori di workflow business-oriented BPMN
Un sistema di persistenza per motori di workflow business-oriented BPMNUn sistema di persistenza per motori di workflow business-oriented BPMN
Un sistema di persistenza per motori di workflow business-oriented BPMN
 
DHow2 - L5
DHow2 - L5DHow2 - L5
DHow2 - L5
 
Il Linux OpenSound System
Il Linux OpenSound SystemIl Linux OpenSound System
Il Linux OpenSound System
 
Scheda Madre
Scheda MadreScheda Madre
Scheda Madre
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
 
Presentazione - Algoritmo di Dijkstra
Presentazione - Algoritmo di DijkstraPresentazione - Algoritmo di Dijkstra
Presentazione - Algoritmo di Dijkstra
 
Struttura dell'elaboratore (sample)
Struttura dell'elaboratore (sample)Struttura dell'elaboratore (sample)
Struttura dell'elaboratore (sample)
 
Logging
LoggingLogging
Logging
 
Presentazione Progetto CRio
Presentazione Progetto CRioPresentazione Progetto CRio
Presentazione Progetto CRio
 
Presentazione Progetto cRio
Presentazione Progetto cRioPresentazione Progetto cRio
Presentazione Progetto cRio
 

Architettura-Dei-Calcolatori-Elettronici-Bucci-Giacomo.pdf

  • 2. I, ~ 1., - I' ~I " I", 1' Indice generale -- ; ..~ - Prefazione Elementi architetturali di base ... Struttura dei calcolatori 2.L1 D sistema CPU·memoria La CPU Primo esame del funzionamento della CPU 2.3.1 Esecuzione di un'istruzione 2..3...2 Due approcci per la progettazione dell1unita di cantralla ~ Cablata 0 microprogrammata? .-. - - .- • •• ... " ..- ..• -- -- ,...... ~ .. VlI 1 1 3 6 8 8 10 11 11 12 13 22 22 • 23 24 25 27 28 29 32 34 35 36 37 37 39 41 41 44 45 47 48 51 55 ~ , , Introduzione Qualche cenoo storieo 1.1.1 I microprocessori 1.1.2 Le architettilre RlSC Rappresentazione dell'informazione 1.2.1 Sistemi di numerazione. 1.2.2 C.onversione di base 1.2.3 Ar:itmetica binaria 1.2.4 Numeri negativi 1.2.5 Numeri frazionari 1.2.6 Numeri in virgola mobile 1.2.7 lnformazioni di carattere alfanumerico Logica dei sistemi digitali 1.3.1 L'algebra delle reti Reti combinatorie e reti sequenziali 1.4.1 Reti sequenziali sincrone Registri Trasferimento dell'informazione Unita aritmetiche e logiche 1.7.1 Esempio di costruzione di un'unita. aritmetica e logica Sistemi digitali 1.8.1 Un modello eli rete.a stadi 1.8.2 Alcuni blocchi componenti i sistemi digitali Questioni di notazione L 9.1 Notazione per i segnali Esercizi 1.10 1.8 1.9 1.3 1.5 1.6 1.7 .L 2.1 1.4 1.2 1 1.1 II 2.3 1, 1 I , J " l ' " : • "I' • I ,' ! I;'
  • 3. , xii Indice generate '. .. 3.8.4 3.8.5 Esercizi ':' , , '. '"I ·i•. ')1 I', i J I." i.I , 1 • I ·,1 ,> ..I !; .'.' ,. ·.r, o it .. !I 1," ';1 " 'I. · , "I' .) " : ". .' ., :~I' ,. ·, .., ,·1· ,~, ' , ' ~ . ,,' ..• "~~ 1 't :.; . .. I ,.. ·. :11' " ' , 96 96 97 77 77 78 78 79 81 83 84 89 92 93 93 95 85 86 88 89 58 59 .. 61 62 62 64 65 @ C8ID 70 74 74 97 98 99 100 101 106 106 101 Prestazioni della CPU 2.4.1 La valutazione delle prestazioni 2.i..2 Papolari indici di prestazioni n repertorio delle istruzioni :l4J.- R.epertorio stile RISC :h>.:! Repertorio stile CISC Criteri di classificazione delle architetture Indirizzamento 2.7.1 Ordinamento 2.7.2 AJlineamento 2 7 3 Indirizzamento dei dati 2.7.4 lndirizzamento nei trasferimenti del contrallo Esercizi La memoria principale Le memorie RAM 3.1.1 Parametri di valutazione Le memorie statiche 3.2.1 Un esempio di memoria statica Le memorie dinamiche ~ Un esempio di memoria DRAM 3.3.2 L'interfacciamento COD il processore ndimensionamento delle alimentazioni di un sistema di memoria Organizzazione' 3.5.1 Interlacciamento Relazione tra 1a velocita della CPU e 1a velocita della memoria 3.6.1 Case di studio: evoluzione della velocit' dell. famiglia 8086 in rapporto a quell. delle DRAM Localita, arganizzazione gerarchica 3.7.1 Localitil. 3.7.2 ~a 3.7.3 ~mpio di gerarchia R.a.ssegna sui principali tipi di DRAM commerciali 3.8.1 DRAM con accesso a pagina 3.8.2 Cached DRAM 3.8.3 SDRAM (Synchronous Dinamic Random Access Memory) ~ DRAM sincrone Moduli commerciali Cantralla di errore 11 sottosistema di ingresso/ uscita Elementi di base del sattosistema di ingresso/uscita Gestione a centralla di programma 4.2.1 nsattoprogramma eli gestione I 8 I .9 .L D. ~ 2.4 - , I .25 I 26 '2.4 I 2.8 111 - ).32 lJ. 13.4 3.5_ )3.6 If
  • 4. , lndice genera.le XlII La CPU 159 Notazione 159 Architettura di riferimento della CPU 160 Blocchi componenti 163 5.3.1 I registri di usa generale 163 53.2 ALU 163 5.3.3 Memoria 164 Sviluppo di CPUI 164 5.4.1 Sezione di prelievo delle istruzioni 166 5.4.2 Sezione di decodifica delPistruzione ... 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 Considerazioni suUa realizzazione a singol0 periodo di clock . 173 5.5.1 Ricomposizione finale di CPUI 175 CPU1 con memoria unificata 175 Sviluppo di CPU2 179 5.7.1 Fase di prelievo delle istruzioni, IF ( 180 108 108 109 113 114 114 116 116 118 122 123 123 127 J Gestione sotto cantrollo di interruzione Esempia semplificata di sistema di interruzione 4.4.1 Esempio di routine d~ servizia 4.4.2 Le interruzioni non mascherabili lnterruzione da parte di pili periferiche 4.5.1 Discriminazione da programma Interruzioni vettorizzate 4.6.1 Linee di richiesta indipendenti 4.6.2 Vettorizzazione esterna Interruzioni' annidate Interruzioni vettorizzate con daisy chain 4.8.1 Daisy chain asincrona 4.8.2 Daisy chain sincrona Esempio di controllore di interruzioni: il dispositivo 8259A 130 4.9.1 Vettorizzazione delle interruzioni' 132 4.9.2 Mascheramento 132 4.9.3 Priorit. 132 4.9.4 Riconoscimento di livelli 0 dei fronti 133 4.9.5 Schema di esecuzione della routine di servizio 134 4.9.6 Esempio di trattamento eli una sequenza di .interruzioni nidificate135 L1accesso diretto alIa memoria 137 4.10.1 Struttur. e funzion.mento del controllore DMA 138 4.10.2 Modalit. di trasferimento singolo 139 4.1O.:r Modalit. di trasferimento a blocchi 140 Un esempio di DMAC: il dispositivo ·Intel 8237 141 4.11.1 Funzionamento .. 142 Esercizi 144 5.6 5.7 4.11 5 5.1 5.2 5.3 4.12 5.5 5.4 4.10 4.9 4.7 4.8 4.6 4.5 4.3 .-- 4.4 - J , . 1 . .
  • 5. xiv Indice generate I i • 5.8 5.9 5.10 5.11 5.12 6 JQ .6.2 6.3 .fiA:) ~ 6.6 6.7 .~ 6.8 -~ ,.tj.~ 5.7.2 Fase di decodifica delle istruzioni, ill 5.7.3 Pase eli eseeuzione, EX 5.7.4 Pase eli memoria, ME 5.7.5 Fase d.i scrittura del registro di destinazione, WB 5.7.6 Ricomposizione 5.7.7 Segnali di comando 5.7.8 Stati comuni a tutte Ie istruzioni 5.7.9 Stati elipendenti dal tipo di istruzione Espressioni logiche per comandi e selettori Considerazioni sulla realizzazione multiciclo 5.9.1 Miglioramenti a CPU2 Le interruzioni 5.10.1 Classificazione 5.10.2 I problemi per il trattamento delle interruzioni Interruzioni BU CPU2' 5.11.1 Considerazioni 5.11.2 Miglioramenti 5.11.3 Interruzioni vettorizzate 5.11.4 Atomicita dell'interruzione Esercizi La pipeline Introduzione Prestazioni 6.2.1 Indici delle prestazioni ~ Considerazioni Alcune estensioni al repertorio delle istruzioni Esecuzione in pipeline Le fasi di esecuzione 6.5.1 lBtruzioni aritmetiche 6.5.2 Istruzioni di Load/Store 6.5.3 Istruzioni di saito 6.5.4 Sintesi del contenuto dei campi EXl ME, WE LJunita di controllo 6.6.1 Realizzazione dell'unita di controllo Conflitti Ji.L.l Conflitti strutturali Conflitti dati 6.8.1 Tecniche per la Boluzione dei conftitti dati 6.8.2 Riconoscimento del conftitto dati 6.8.3 Soluzione dei eonflitti tramite stallo 6.8.4 Soluzione dei con.fiitti sui dati tramite anticipazione 6.8.5 I conflitti per Ie istruzioni load 6.8.6 Sovrapposizione 6.8.7 Riordinamento Conllitti di controllo 6.9.1 Conllitti per salti (ineondizionati) 6.9.2 Confiitti per Ie diramazioni 180 182 182 183 183 183 186 188 190 192 194 196 196 197 198 199 202 204 204 205 209 210 211 211 213 214 219 222 223 225 227 230 231 236 236 238 238 239 240 242 244 246 248 249 250 251 252 , . 1 J • , , " , . . J - . .I " ! :. {
  • 6. I if 1 Iodice generate xv . ~ ., 1", t Ji • • , • I I .. ,jf "1 • ,;1' i ., i , ., J, -'I 1 ii .I' "I !I .1 {' 6.10 6.11 - 6.12 6.13 6.14 6.15 7 -7.1 7.2 7.3 7.4 7.5 7.6 6.9.3 La soluzione software: Ie diramazioni ritardate Predizione dinamica delle diramazioni 6.10.1 Tabeila di predizione delle diramazioni 6.10.2 Statistics. di esecuzione e accuratezza della predizione Branch Target Buffer 6.11.1 Prestazioni del BTB 6.11.2 Ottimizzazione del BTB 6.11.3 Uunita per la predizione dei salti condizionati del Pentium Predittore adattativo a due livelli 6.12.1 Realizzazioni alternative del predittore a due livelli Le interruzioni 6.13.1 nconcetto di interruzione precisa 6.13.2 Interruzioni esterne Eccezioni 6.14.1 Eccezioni e interruzioni esterne Esercizi La memoria cache , Funzionarnento della memoria cache 7.1~ Cache a mappatura diretta 7.1.2 Cache completamente associativa 7.1.3 Cache parzialmente associativa 7.1,1. n problema della serittura 7.1.5 10 state della linea di cache Algoritmi di rir]lpiazzamento delle linee di cache 7.2.1 Sostituzione a' caso 7.2.2 Rimpiazzamenti con algoritmi LRU 7.2.3 La teenlea PIFO AnaHsi deile prestazioni 7.3.1 Le cause di fallimento nelPaccesso alia cache Elementi che influenzano le prestazioni 7.4.1 Dirnensione della cache 7.4.2 Dimensione della linea 7.4.3 Associativita 7.4.4 Algoritmi di rimpiazzamento 7.4.5 Cache divisa 0 unifieata 7.4.6 Aggiornamento della memoria centrale 7.4.7 Cache multilivello 7.4.8 Posiziol}amento della cache 7.4.9 Multiprogrammazione Sistemi a multiprocessore: coerenza della cache 7.5.1 Coerenza 7.5.2 Protocolli per iI mantenimento della coerenza 7.5.3 Protocolli snoopy Esercizi 25" ] 256 25" 25: I 25, 261 26: I 264 266 26 271 270 273 27: ] 27! 279 28: ( 28: , 285 28 7 28, 28~ 291 29: I 29. 29~ 1 298 30r I 30: 30~ 303 30: I 30: I , 306 307 30' I 30; 309 311 J 31 31: 316 31. 0 ) 32'
  • 7. 1~ Indice generale I , , t: , , " " ._, ']I; ii' (I, ;:1 • .j: .1, ", , " '•. , ';' ,;~ ., il 0.' ,. .:1' , , ~I.- "-/ 'I ~, . , .;Il ·~I' , ·1: 'i; ~. .JI oil ., -:j, •• "~ ...~I, "1 .. .)1: 357 357 359 362 363 364 365 3.71 372 375 376 377 377 377 381 384 385 331 331 334 337 338 340 343 346 347 347 353 355 357 386 388 390 392 392 396 399 399 400 401 403 404 405 La memoria virtuale Introduzione Sistemi di paginazione 8.2.1 Dimensione della pagina 8.2.2 n Translation Lookaside Buffer 8.2.3 Gestione della tabella 8.2.4 Tabella delle pagine gerarchica Tabella delle pagine invertita 8.3.1 La codilica ha.sh 8.3.2 Gestione della tabella IPT 8.3.3 n problema delle catene trappo lunghe La segmentazione Segmentazione e paginazione Approfondimenti sulla gestione della memoria virtuale 8.6.1 Gestione della paginazione e della segmentazione 8.6.2 Algoritmi di rimpiazzarnento 8.6.3 Occupazione della memoria Esempio di memoria paginata: la memoria del microprocessore 68030 8.7.1 Traduzione degli indirizzi 8.7.2 La tabella di traduzione degli indirizzi 8.7.3 n TLB 8.7.4 8u alcune caratteristiche speciliche della MMU 8.7.5 La pratezione 8.7.6 Considerazioni sulla memoria virtuale del micro 68030 Esempio di memoria virtuale segmentata: 1a memoria virtuale del 286 8.8.1 Indirizzamento in modo Teale 8.8.2 Indirizzamento in modo virtuale 8.8.3 Tabelle dei descrittori di segmento . 8.8.4 Gestione della memoria fisica 8.8.5 Ali"" Esempio di memoria virtuale segmentata e paginata: la memoria virtuale del Pentium 8.9.1 La segmentazione del 386 e modelli successivi 8.9.2 Descri~~ori eli pagina Esempio di merrioria con tabella di pagine invertita: la memoria del PowerPC 8.10.1 La IPT del PowerPC: la HPT Esercizi La protezione La protezione nei sistemi Intel I descrittori e la lora funzione 9.2.1 Descrittori di segmenti di codice e di dati (8=1) 9.2.2 Descrittori di sistema (8=0) Trattamento delle interruzioni in modo protetto 9.3.1 La.tabella dei deScrittori di interruzione 8.10 I 1 8.11 - ) 1 9 !9.1 1 9.2 ] 88 9.3 M 8.5 - 8.6 i l 18.7 I I 8.3 I 8 .D Jll 8.9 1
  • 8. Indice generale. XYli 11 11.1 11.2 11.3 407 408 410 412 412 413 414 415 417 417 417 420 421 421 422 423 423 471 474 475 425 425 427 429 432 432 433 434 438 439 447 447 452 455 458 459 462 463 465 466 • .., La gestione dei processi in modo protetto 9.4.1 n segrnento di stato di un proces~o 9.4.2 Commutazione Era processi La protezione: criteri generali 9.5.1 Verifica del tipo di accesso ai segmenti 9.5.2 Livelli di privilegio 9.5.3 Criteri generali per il cantrallo dei privilegi 9.5.4 I livelli controllati Protezione negli accessi 9.6.1 Protezione nell'accesso ai dati 9.6.2 Protezione nei passaggi di controllo 9.6.3 Protezione nella commutazione fra processi Altri aspetti legati alIa protezione a livelli 9.7.1 Variazione dellivello ill privilegio 9.7.2 L'attacco can il cavallo di Troia 9.7.3 Istruzioni privilegiate La protezione di pagina BUS di sistema Un po' di storia La standardizzazione 11.2.1 Operaziani suI bus Allocazione del bus 11.3.1 Arbitraggio distribuito Con schema daisy chain 11.3.2 Arbitraggio centralizzato con schema parallelo' 11.3.3 Arbitraggio distribuito con schema parallelo 11.3.4 Arbitraggio centralizzato con schema daisy chain Esempio di progetto della logica di arbitraggio distribuita in daisy chain Organizzazione dei moderp.i calcolatori personali 11.5.1 Il chipset 11.5.2 . Chipset per la ela.sse Pentium Esecuzione fuori ardine Pipeline con unita funzionali multiciclo Esecuzione fuori ordine 10.2.1 Gestione delle prenotazioni del bus dei risultati Completamento in ordine 10.3.1 Completamento in ordine rispetto ai registri 10.3.2 Completamento in ordine rispetto alIa memoria Metoda del buffer di riordinamento 10.4.1 Uso di ROB e di perco,si di bypa.ss Metodo dell'history buffer Gestione dei conflitti di controllo in pipeline con unita funzionali multiciclo , 4 4 1 10.6.1 Stato coerente nel caso del completamento in ordine delle istruzioni442 10.6.2 Ripristino della stato coerente in presenza ill ROB 443 10.6.3 Ripristino dello stato coerente con history buffer 444 9.6 9.7 9.5 9.4 10.4 9.8 10.3 10.5 10.6 11.4 11.5 10 - lQ.J.. 102
  • 9. xviii Indice generale 11.5.3 Chipset per la classe Pentium 1I1 477 11.6 IT bus SCSI .. 479 11.6.1 Principi eli fUnzlonamento 479 11.6.2 I segnali SCSI 481 - 11.6.3 FMi del bus 482 11.6.4 Un esempio di operazione suI bus SCSI 485 11.6.5 Conclusioni 488 11.7 IT bus PCI 488 11.7.1 Principi .di funzionamento 488 , 11.7.2 I segnali del PCI bu, 490 11.7.3 Tran~azioni di trasferimento dati 49.1 < 11.7.4 Arbitraggio 495 11.7.5 Prestazioni 497 · 11.7.6 Blocco delle riaorse 498 " l 11.8 IT bus USB 501 4 ) 11.8.1 Caratteristicbe generali 501 11.8.2 Struttura fisica , 502 • 11.8.3 Organizzazion·e a livelli 503 I 11.8.4 Host , 505 ..". , " 11.8.5 Periferiche 505 ,r 11.8.6 Hub 506 ". 11.8.7 Modella dei Busai informativi 506 1 11.8.8 ncavo 508 ., , Riconoscimento e configurazione delle periferiche • 11.8.9 511 • 11.8.10 Trasferimento di dati 512 -i I 11.8.11 n protocollo e U formate dei pacchetti 513 • ; • " .. A Sistemi DigitaJi • 0 517 q • A.1 Proprieta dell'algebra delle reti .i 517 , A.2 Forme canoniche 519 • • A.2.1 Prima forma canonica 519 · '. A.2.2 Secanda forma canonica 520 , ; A.3 Minimizzazione , 521 .. · A.4 .Altri operatori e altri tipi di porta 522 ; , A.4.1 NAND e NOR 522 · A.4.2 Reti can sale porte NAND a 'ole porte NOR 524 , A.4.3 Una tecnica grafica per la trasformazione 524 ., .. A.4.4 XORe NXOR 525 j• A.5 Esempi di reti combinatorie 526 , • • A.5.1 ncantrollo di parita. 526 , A.5.2 Comparatore digitale 528 1 A.6 Unita aritmeticbe • 530 '. A.6.1 Somma Con calcolo anticip~to del riporto " 530 • A.6.2 Ancora sui sommatore completo 532 A7 Unita aritmetiche e logiche 533 A.8 Reti sequenziali 536 A.8.1 Modellogenerale 536 A.82 Rappresentazione delle funzioni c,li stato e uscita 538 , · "
  • 10. ,I ,i' ,.1 lndice generale XIX 1 , A.9 Sincronizzazione 540 ..... A.IO Reti sequenziali sincrone 542 ·. I ., ' A.1O.1 Flip-flop Master-Slave 543 , ., -1 : A.10.2 Altre considerazioni sui flip-aop 545 ' . '' A.10.3 Madella dj Mealy e madelia di Moore 546 .- ' : Esempi di analisi e progetto di reti sequenziali 549 '. A.lI • I .. A.1Ll Esempio di progetto: generazione di un 'egnale di WAIT 549 , • A.11.2 Esempio di progetto: rete per Fadattamento • • ', della temporizzazione dei segnali 551 '. ' .. A.12 Esercizi 555 • I ", , <! · B L'architettura 8086 559 I • · B.1 Un pO' di storia 562 B·.2 Architettura di base: il micro 8086 564 l 4 B.2.1 nmodella eli programmazione 565 I ) B.2.2 Organizzazione della memoria 568 , B.2.3 Accesso alia memoria 571 • I : B.2.4 Osservazioni sull'organizzazione di memoria dell'8086 572 ,. B.2.5 Struttura interna del microprocessore 8086 573 l .. , , " 575 r , . B.2.6 Cieli' di bus . , B.2.7 Modalita di funzionamento 576 1 B.2.8 La fase di partenza 576 , , B.3 nrepertorio delle istruzioni 577 I • Modalita di indirizzamento 578 • B.4 B.4.1 Indirizzamento degli operandi 578 I . • 8.4.2 lndirizzamento nei salti 580 • 581 I B.5 Formati delle istruzioni , B6 II coprocessare 8087 584 '. I -- i. B,6.1 Madello di programmazione esteao 584 • • B,6.2 Tipi di dati , 586 • B.6.3 Collegamento can la CPU 8086/8088 586 I B.6.4 Coordinamento con la CPU: aspetti generali 587 Coordinamento coo la CPU, il controllo del bus 591 B.6.5 B.6.6 Emulazione del coprocessore 593 B.7 IT microprocessore 80286 (286) 594 , B.7.1 Modello di progranimazione 595 B.7.2 La struttura interna 596 B.7.3 Modo protetto 597 B,8 IT microprocessore 80386 (386) 597 1 B,8.1 Emulazione ~086 598 B:9 n microprocessore 80486 (486) 600 8.9.1 . La cache interna 600 Vevoluzione verso frequenze pili elevate 601 J B.9.2 B.lO II Pentium 602 B.lO.l La struttura interna 602 B.1O.2 L'unita per la predizione dei salti condizionati 605 B.1O.3 L'unita per il calcolo in virgola mobile 609 J B.10.4 Le due cache interne 609 "
  • 11. 1 xx B.ll I B.12 I I B.13 B.14 l B.15 B.16 • C I C.1 , IC.2 I C.3 C.4 C.5 C6 )gl D.2 , ID,3 I I I I D.4 I I Indice generale n'Pentium con tecDologia MMX B.1Ll L'estensiooe MMX 8.11.2 La struttura interna nPentium Pro , B.12.1 La pipeline e l'esecllzione dinamica B.12.2 Ridenominazione dei registri nPeotium II B,13.1 La struttura interna n Peotium ill La for"ma esterna, i bus e altro Esercizi L'architettura PowerPC Architettura PowerPC C.l.1 Formati istruzione C.1.2 Organizzazione 0.1.3 Caratteristiche e prestazioni di alcuni modelli La CPU MPC 601 C.2.1 Gestione della memoria C.2.2 La coda istruzioni del 601 C,2,3 La pipeline del 601 Un esempio di Bussa istruzioni per it 601 La CPU MPC 604 C.4.1 La pipelioe del 604 Un esempio di Bussa istruzioni per il 604 • Un confronto tra Ie prestaziooi del 601 e 604 C.6.1 I.e prestazioni del 601 C.6.2 Le prestaziooi del 604 0.6.3 Prestazioni relative n linguaggio assembler Generalitil. D.1.1 Sintassi Segmenti e moduli D.2.l Direttive per 1a gestione dei segmenti D.2.2 Generazione dei riferimenti: 1a direttiva ASSUME D.2.3 Relazione tra segmenti e moduli I simboli definiti daJ programmatore D.3.1 Eticbette D.3.2 VariabiJi D.3.3 Variabili strutturate D.3.4 Costanti D.3.5 Procedure Direttive per il collegamento dei moduli DA.l Direttive per la programmazione modulare D.4.2 La direttiva END D.4.3 La direttiva INCLUDE D.4.4 n sistema macro del MASM 610 610 611 611 613 618 619 620 b 622 626 627 628 628 628 631 631 633 633 635 638 639 641 643 646 648 649 650 651 652 654 657 657 659 661 664 664 665 667 668 670 670 670 671 671 672 II ." ii' '1 ' · ' '1 .JI ~ , •• I II I' ]1. "I' · , , ,I, e .' t 1 ~ . j, J: 'II, ~1! - l1 1 ., j , 1 i" I I' I I' " , 1 " til 11 '", ,. 'i,~1 ,,.. , , " · , 1 .'" , ,
  • 12. E Comunicazione tra Calcolatori 689 E.l lotroduziooe 689 E.l.l nmezzo trasmissivo 690 E.2 II modello 1S0/0S1 691 E.2.1 II Protocollo TCP/IP 692 E.3 Livello fisico 693 E.3.1 Tipi di trasmissione 693 E.3.2 Esempio di standard di livello fisico: RS232C/V24 694 E.3.3 Esempi di collegamenti RS232C 696 E.3.4 Altri standard seriali 697 E.4 Livello di colJegamento 698 E.4.1 Thasmissione asincrona 699 E.4.2 Trasmissione sincrona 700 E.4.3 Controllo degJi errori 704 E.4.4 Protocolli per il livello collegamento 708 E.4.5 Esempio di dispositivQ per il cantralla della trasmissione: P8251A710 E.5 Cenni sulle LAN 711 E.5.1 Topologia di una LAN 713 E.5.2 Tecniche di trasmissione 715 E.5.3 Tecniche di accesso 716 E.5.4 Esempio di LAN: la rete Ethernet 717 D.5 Un esempio di programma assembler D.6 It processo di traduzione D.6.1 Assemblatore: primo passo D.6.2 Assemblatore: secondo passe D.7 Collegamento e caricarnento D.7.! Caricamento in memoria ed esecuzione D.8 Esercizi Bib~iografia Indice generale XXI 673 678 681 683 684 685 685 719
  • 13. v
  • 14. ·, : . ;..,- "., " "- , n , 1 " , , , " :' ~.- ,:ll' :;,~ ,"~' 'II,', " ' jl " 'I' , '," Introduzione 1 I 1 , " " ....n ;'1' ' ,. - ' _lOll, 1 '~}ii dl l "II' ',1 ,:'~ , .-,~ , :1 ""I' ,'} '" ", I ",~ '~I JI " " ' • ;11 ',' "I ,.j) : '°1, '''', 4' , 'II' '1J", " !~ : ,~'il -·if '-,;,~ -" ill ,::j, "I :'-~ " ,,',; '-I ._~: 3~ ,,,I "'.~ , " " ! , , I , " J Questa capitola eintroduttivo aile tematiche dellibro. Dopa Un breve resaconto stori- ) C9 s)Jll'evoluzione dei calcolatori elettronici, vengono richiamati alcuni concetti di ca- rattere generale sui sistemi di numerazione, sulla rappresentazione dell'informazionel sulle unita. aritmetiche, sui sistemi digitali e sulla struttura ill base dei calcolatori. ! Ritenendo che la parte degli argomenti relativi ai sistemi digitali (algebra, reti ~ combinatorie e sequenziali) meritasse un approfondimento maggiore, e stata predi- sposta !'Appendice A, alIa quale si fa spesso riferimento. 1.1 Qualche cenno storico I I La storia dell'evoluzione dei caicolatori elettronici costituisce da sola materiale suffi- Ciente per la scrittura di un volume di carta stampata. Le poche notizie che seguono 'vengono fornite al solo scopo di dare al lettore la misura di come questa evoluzione I sia stata incontenibile. Una ricostruzione pili dettagliata', specialmente per quanto riguarda il primo periodo storieo, si trova in [HP93] . 11 primo ca1colatore elettronico venne progettato e costruita da J. P. Eckert I e J. Mauchly, dell'Universita della Pennsylvania1. La macchina venne denomina- ta ENIAC per Electronic Numerical Integrator and Calculator e Ia sua costruzione J venne finanziata dal Ministero della Difesa Usa durante la seeonda guerra mondiale. La macchina veniva impiegata per calcoli balistici. La sua esistenza venne resa nota ne11946, a guerra finita. Occupava un volume immenso: aveva fonna di U, era lunga J circa 30 metri, alta 2 e spessore di 1 metro, per oltre 120 metri cubi di volume, su una superficie di 180 mq. Pesava 30 tonnellate. Impiegava oitre 18.000 tubi a vuoto (valvole) collegat; da 500,000 contatti saldati a mano, Aveva 20 registr; <Ii 10 ellre; I ogni registro era lunge oltre mezzo metro. Era in grade di eseguire 1900 somme at secondo. La programmazione avveniva in modo manuale, attraversa fill e interruttori 1Nel 1973 un 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.
  • 15. I I 1. ~., .,: 'j'l •• " ~ J '.' .,. • • " .', ( • ~J'I I jl~ :,. " , " , .', • '.,, .., ., ,I,~ " , I. ,I. ," " , !.r. 'F 'JI' ., '~: "' ) 'ii, ":~I "' ,,:' ' ..' '~I " :,tl ,, .; ::1' i1 ;:;1 ~1 ,:;,1 , "..~, ',"I' " c;.'! 'If, " , " "I· " " 'Ii: " 'r" " .;'!, J .J ,,jl ,.,. " ,. .. , " •• 2 Capitolo 1 ) ) 'Le oehede perlo,"" .",anoo per annl 10 stand.rd di ingresso, oon 0010 por i d.tl, m. anch. por j programmi. Fino alla meta degli anni settanta perforatori e lettori di scbede facevano parte del normale paesaggio di qualunque centro di ca.lcolo. 1 3Hennessy e Patterson [HP93} espongono una serie di argomenti in base ai quali la fama del signor Von Neuman eda considerarsi parzialmente usurpata e che ad altri avrebbe dovuto sorridere 1a gloria. suI pannello di cantrollo, non dissimile cia queUo di una vecchia centralina telefonica. I dati, venivano introdotti attraverso schede perlorate2 . n problema principale della macchina era la modalita. d.i programmazione. John von ,Neuman, che faceva parte: sin dal 1944 del gruppo di ricercatori e progettisti che ruotava attorno al Ministero della Difesa Usa, scrisse un rapporto in cui veniva esposta per la prima volta l'idea di costruire un calcolatore a programma mernorizzato, che egli chiamo EDVAC (Electronic Discrete Variable Automatic Camputer). Questa soluzione divento la norma e, di fatto, distingue quelli che oggi chiamiamo calcolatori elettronici cia precedenti macchine·dedicate a1 calcola. Von Neuman passe (llia storia3 . Eckert e Mauchly fondarono una societa che eostful il prototipo chiamato BINAC. La societa. venne poi acquistata dalla Remington-Rand, per la quale, nel1951, venne prodotto il primo esempio di calcolatore commerciale: l'UNIVAC I, venduto per circa 250.000 Dollari Usa. Di UNIVAC I ne vennero prodotti 48 esemplari. L'IBM, presente da anni nel settore delle macchine da ufficio, entro in campo e produsse il primo suo calcolatore (I'IBM 701) nel 1952, vendendone una ventina, Negli anni sessanta l'IBM introdusse il sistema S/360, come risultato di un proget- to di sviluppo nel Quale la societa aveva investito svariati milioni di Dollari. Per la prima volta si. distingueva il concetto di architettura da quello eli realizz~ione, nel sensa che l'illM aveva definito un'organizzazione di macchina die sarebbe stata co- roune a tutta una famiglia d.i calcolatori. Questi avrebbero potuto ~vere dimensioni, capacita e potenzialita diverse, avrebbero potuto essere realizzati con tecnologie di- verse, ma sarebbero stati comunque compatibili tr30 di loro. Si tratto di un passaggio fondamentale: da quel momenta i concetti di archi-tettura e compatibilita avrebbero costituito il fondamento per ogni produzione industriale, L'IBM dominera per anni il mercato dei calcolatori in tutto il mondo. Agli inizi degli anni settanta, essa era .... pa.d.rona di oltre il 60% del mercato, mentre gli al.tri si dividevano quel che rimaneva. 1 A fine anni sessanta,.venne introdotto il sistema S/370, successore del precedente, rna ) sempre compatibile. Negli anei successivi: fino ai nostri giorni LTBM ha continu.ato a costruire macch.ine sostanzialmente discendenti da quell'architettura. Non ci 'si deve ) stupire: dal momento in cui erano stati fatti investimenti giganteschi nel software da parte di chi 10 impiegava, Ie macchine IBM erano in ogni b~ca, ministero 0 grande impresa. La necessita. di salvaguardare questa patrhnonio estata e continua a essere una delle forze condizionanti dell'evoluzione del mercato dell'informatica. Gli annj sessanta e settanta sono stati gli anni delle macchine della categoria chiamata mainframe. Si trattava d.i macchine costose (di norma sopra al centinaio di milioni di Lire) equipaggiate con sistemi operativi che ne permettevano un' uso condiviso da parte di piu utenti. Nel 1963 apparve il CDC 6600, il primo vero super- 1 calcolatore. n suo progettista S. Cray, dopo aver progettato altri calcolatori per 1a Control Data CorporatioD, fondo successivarnente una sua societa. che ha continuato J a produrre macchine ultrapotenti.. Net 1965 la DEC (Digital Equipment Corporation) introdusse il primo minical- I 1 1 .J
  • 16. 4Per anni estato 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. • 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'. Introduzione 3 1.1.I I microprocessori II termine llmicroprocessore" venne usato per 130. prima volta dalla Intel nel 1972, quando rese disponibile un "computer microprogrammmabile su un unico chip" corn- posta da una: CPU integrata completa di un sommatore parallelo a. 4 bit, 16 registri a 4 bit, un accumulatore e uno stack. Questa. CPU venne denominata 4004 e, con l'aggiunta di memorie di tipo RAM e ROM, costitui il sistema MCS-4. I micropro- cessori hanno rappresentato il punto di avolta nell'uso del calcolatore: da macchina gigante, utilizzata solo da pochi 30ddetti ai lavori, il calcolatore elettronico ediventato un dispositivo piccolo cODvenientemente utilizzato nell'industria, negli uffici e anche a livello domestico, • Dalla fine degli annj sessanta. si era evidenziato un serio problema nella proget- tazione: 130 complessita dei sistemi digitali si avvicinava al punto in cui il Dumero di componenti necessari alla re3olizzazione delle funzionalita. richieste dagli apparati avrebbe superato i limiti del trattabile. Un rimedio consistette nell'utilizzare logica convenzionale accoppiandola a memorie ROM in funzione eli reti combinatorie com- plesse. Questa soluzione condusse alia nascita del microprocessore. Nell'estate del 1969, il costruttore giapponese Busicom chiese alIa Intel di pr'odurre un integrato per una famiglia di calcolatrici progra.mmabili ad alte prestazioni, n committente intende.va realizzare calcolatrici con una mezza dozzina di integrati, per ciascuno dei quali si prevedevano dai 600 ai 1000 transistori. All'Intel (allor3o una piccolissima1 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
  • 17. - '- 4 Ca.pitola 1 istruzioni generali, contenute in ROM. Una simile CPU avrebbe trovato impiego non solo nelle 'calcolatrici rna anche in luogo .dei minicomputer6 . Nel Novembre del 1971 Intel decise di pubblicare il primo articol0 sull'MCS-4. L'interesse fu subito notevole e Intel realizzQ un modesto rna promettente guadagno di 8500 Dollari. Mentre stava lavoranda al 4004, l'Intel aveva avviato un progetto paraUelo che avrebbe portato al primo microprocessore a 8 bit, 1'8008: U80G8 fu introdotto neWAprile del 1972} nella forma di un integrato a 18 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 Z808. 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.
  • 18. 9Di queati aviluppi 5i parla con maggiori dettagli nell'Appendice apPOl3itamente dedicata J all'architettura della fa:migJia x86. sto versioni a. 16 bit dei micro Motorola e Zilog. La prima introdusse il dispositivo ,MC68000, la secooda introdusse 10 Z8000. In comune all'8086 avevano il bus dati I esterno di 16 bit e la possibilita di indirizzate un spazio eli memoria immenso. Biso- gna dire che 10 Z8000 aveva., almeno sulla carta, caratteristiche architetturali superiori a11'8086: da un certo punta di vista era una specie di super insieme dello 8086, rna era possibile evitare Ie complicazioni del madelIa di memoria di· questlultime. Anche I il 68000 aveva caratteristiche architetturali pili convincenti delP8086: presentava an- zitutto uno spazio Iineare. e si annunciava pili potente. Tuttavia sia 10 zaooa sia il 68000, si fecero aspettare troppo a lunge dopo I'introduzione dell'8086. n68000 arrivo suI mercato con quasi due anni d.i ritardo, concedendo all'8086 ~ grande vantaggio. Ma fu l'introduzione dell'8088 a cambiare Ie cose. L'8088 era un 8086 rna con bus esterno a 8 bit. Motorola e Zilog annunciarono Ie versioni a 8 bit (MC68008 e Z8008), rna. quando 1'IBM castrul il suo PC (Pe.rsonal Computer), sul mercato c'era un unico miqo a 8 bit capace di indirizza~e almena 1Mbyte di memoria: 1'8088. Quello fu il punto.di svolta dell'evoluzione del mondo dell'informatica. L'architettur& Intel diven- ] ne 10 standard eli fatto nel mondo dei PC, la Microsoft stabilile basi per eliventare la maggior compagnia di software del pianeta9 . n 68000 ebbe ottima accoglienza da parte dei costruttori delle c08iddette work- I station, ovver? sistemi ~divi~uali?~ c~attere profes~ional~,allora molto pill a~ati dei calcolaton perso~ah, per I quah II SIstema operativo UnIX era la norma. nmadelIa di memoria !ineare del 68000 era adeguato per la tecnica di gestione della memoria virtuale eli Unix. n 68000 aveva inoltre piu potenza dell'8086, ancbe percbe bus da- , ti e indirizzi non erano condivisi come Quest'ultimo (l'integrato MC68000 aveva 64 ! I piedini). Per anni l'architettura Motorola sara 10 standard di fatto delle pili diffuse ~ workstation.' 'n 68000 e i suoi successori sarebbero stati impiegati da Sun Micro- systems (it pili accreditato costruttore di questa categoria di macchine), cia HP, da Apollo (poi assorbita da HP) ~ da molti altri. l'l 68000 venne pure impiegato nei McIntosh della Apple. La famiglia 68000 ebbe largo impiego ancbe nel campo indu- I striale 0 come embedded computer, in quei casi, come nelle stampanti postscript in cui si richiedevano buone capacita elaborative. La fo~una della famiglia MC68000 co- I minced. a declinare verso la fine degli anm ottanta, Quando i principali costruttori.di workstation cominciarono a ricorrere 0 a produrre direttamente CPU RISC (Reduced Instruction Set Computer), corne accennato poco pili avanti. Lo Z8000 non sfonda nel mercato dell'informatica dei grandi numeri ne trovo impiego in ambiente industriale. Venne impiegato nel Commodorel un calcolatore personale venduto essenzialmente come videogioco. In Italia 1'Olivetti usc 10 Z8000 per i1 suo primo PC (denominato M20). L'M20 era una buona macchina, rna non incontro i favori del grande pubblico e, dopa poco tempo, il costruttore fu costretto a J riconvertire la sua linea di calcolatori personali1 passando alIa produzione di macchine compatibili col PC: 1a torta era tanto ricca che unlesigua fettina Yaleva molto di piu del totale dominio in aree parallele. I microprocessori. a 16 bit entrarono in una fase di grande crescita. Apparvero I componenti di corredo avanzati, come gestori di memoria (MMU, Memory Manage. ment Unit), unita aritmetiche in virgola mobile (FPU, Floating Point Unit) e control- ,.~ ,.:" , ,', ." ,".. ... · . ·l ' .". ~. :.[j; 'f e, .. j " ..; . <,' :~I. ,.., , '" i'j ~I ·~l. .' · , ,. ,., l,I ·I '-7,~ :.:'f i.' 'I' • • .,. "'1 -I . ., :j ':J:' .~# ' ~ :~ , ''iI ·,:' .., :Ifi~' ~l, ·."" 'a ·'r h ·nl .."1 ·f " ~'"i J' ·l 1 .. .'. ' 'j 'JI., "I ;1 ",' " 1 . j', .. ,~ • .,, ·, "1 I " , ~I ,11 "II ~: Intro.duzione 5 I ]
  • 19. '110 ..- ~I' ,,~ .' ,. '. ";j ·,1 '. • ,'" 11 ;~' " AI , '''l- I "I' , I , il 'I· ., : ., 1 1 . , • :l!j' ."'I .-ott. "·:ir·" .~," . ~-:r , + .,. ""t, .::! .. II- ':.~ " ,.t- ;11 •·'1 1~ . " ". I, ,. ',i,"" ,'0. ,'" ':11 . )1, , ,;'in · " il i, .·~'l· " . .,' '. . . ., . 111 .11 ." '." .',' ..,,'," " 1 .:l1 " }Jj ...~~ . ." . -." I I J 1.1.2 Le architetture RlSC lori di accesso alia memoria (DMA, Direct Memory Access). n maggior problema the 1 i costruttori si trovarono a fronteggiare non era piu, a questo punta, la liniitazione del numero di transistori, rna la potenza dissipabile da.! chip. Per limitare tale dissipa- zione (che superava il watt), molte compagnie progettarono dispositivi in tecnologia CMOS. . Nel 1984 Motorola introdusse la prima riuscita estensione di I,lD microprocessore da 16 a 32 bit, l'MC68020, realizzato in tecnologia CMOS da 1.5 p.m e reso disponilile I con frequenze massime di funzionamento di 25 MHz. ndispositivo ayeva sia il bus dati sia il bus indirizzi a 32 bit e conteneva all'interno una piccola cache istruziom: Era inoltre stato previsto un dispositivo esterno per la gestione della memoria virtuale. Questa volta Intel arrivQ con un certo ritardo (1985) a introdurre sui mercato la sua CPU a 32 bit: 1'80386. Successivamente (1987) Motorola presenti> iI 68030, simile al precedente rna con l'aggiunta di una memoria cache per dati e della MMU. Per qualche ) tempo serobro che il 68030 riuscisse a contrastare l'espansione dell'a.ntagonista. Ma it mondo del PC era onnai saldamente in mano a Intel in virtu dell'immenso patrimonio software ormai esistente. Pure la National mise su1 mercato 1a sua CPU a 32 bit della famiglia 32000, una architettura concepita per il mercato Unix e con l'obiettivo del mercato dei 32 bit (anche se in prima versione era apparsa can una CPU a 16 bit). Con I questa serie la societa. di Santa Clara nusel a collocarsi al terzo posta nelle vendite di microprocessori a 32 bit, raggiungendo un volume di vendite di 300,000 unita/anno. Nel 1989 Motorola introdusse il 68040 cbe integrava 1.200.000··transistori in un singolo chip e aveva prestazioni 10 volte superiori al suo predecessore a parila, di clock. ) L'anno successivo anche Intel presento il suo nuovo processore, 1'80486. Nonostante l'uscita successiva al 68040J il 486 non trovo concorrenti in campo PC. Del resto il 486 aveva prestazioni di riguardo, avendo a bordo, oltre a una non trascurabile cache, l'unita in virgola mobile. <. All'architettura 68000 restavano in parte Ie applicazioni e il campo delle work- ~ I station. Ma. ormai, in questo segmento di mercato, stavano entrando Ie architetture. roSC: la National avrebbe smesso di n a qualcbe anno di produrre la serie 32000. La Motorola, avrebbe cessato eli sviluppare 1a linea 68000, dedicandosi alio sviluppo dell'arcbitettura PowerPC, in compagnia di Apple e IBM. I Nel seguito PIntel sviluppa il Pentium e i suoi successoriJ sempre compatibili. Molti altri produttori di dispositivi elettronici (tra cui AMD) seguirono l'Intel nel produrre CPU proprietarie, rna compatibili COD 1'architettura x 86. La Tabella 1.1 riporta un elenco di microprocessori titolari di un qualche "prima. to". Non c'e alcuna pretesa di completezza, come, del resto, non ha questa ~ote 1a storia the abbiamo raccontato. 6 Capitolo 1 I microprocessori di cui si eparlato in precedenza sono 0 erano maccbine ClSe (Com- J plex Instruction Set Computer), ovvero macchine dotate di un repertorio eli istruzioni molto ampio. Infatti esse sonG state concepite negli anni settanta, quando era in auge ricorrere aIla microprogrammazione nella realizzazione delPunita di controllo. 1 C'era pero chi, gia negli anni settantaJcornincio a studiare soluzioni architetturali che portaroDo aile cosiddette macchine RISe (Reduced Instruction Set Computer). Pill avanti nel libro, la discussione e il confronto tra Ie due differenti filosofie di progetto 1 l il
  • 20. 7 Introduzione 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) , 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. Tabella 1.1 Vengono riportate Ie caratteristiche eli atcune CPU titolari eli un qualche primato. 1:lceveranno it davuto apprafondimentoj per il momento vengono forniti alcuni cenni storid su come si sono sViluppate Ie architetture Rlse. . .";:" La prima macchina RISCIO venne realizzata in IBM, essenzialmente come proto· .tipo di studio, e venne denominata IBM 801. Era costruita. in logica discreta (logica EeL, molto veloce) e presentava 32 registri di 32 bit, aveva una cache istruzioni e una cache dati separate. n prototipo, sviluppato presso il centro di ricerca di Yorktown Heights (NY), apparve nel 1979. Da questo prototipo IBM traIT" il modello 6150, immesso suI mercato nel 1986, che tuttavia avra poco successo. ... Gli studi che portarono al modello 801 Cecere da catalizzatore a unJampia atti- -vita di ricerca: vennero sviluppati due prototipi da due Universita della California, il rosc I a Berkeley nel 1982 e il MIPS a Stanford nel 1983. Alia fine i risultati di questi studi vennero convog1iati nella sviluppo delle CPU SPARe (Scalable Processor Architecture), una famiglia di epu impiegate dalla Sun Microsystem nei propri calco- latori. Con I'uso delle CPU SPARC, la Sun abbandoni> la linea MC6800. Ancbe dagli studi che avevano portato at 'prototipo MIPS, nacque una societa, che, per l'appunto, si chiamo MIPS. Le CPU MIPS vengono oggi impiegate in molte stazioni di lavoro professionali, tra cui queUe della societa Computer Graphics.. Agli inizi degli anni novantaJ 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 . " -. ,
  • 21. 8 Capitola 1 PowerPG. Sulla carta dimostrava di possedere quanta di meglio si potesse mettere . assieme come idee e come realizzazione all'epoca in cui venne progettata. Nonostante ciD il PowerPC non eriuscito a contrastare la presenza Intel nel campo delle macchine della categoria PC. Questa architettura viene correntemente impiegata da Apple nei McIntosh e viene irnpiegata dall'IBM nelle stazioni di lavoro tecnico scienti£che e come sostitutiva di una precedente CPU in una linea di calco1atori di fascia intermedia denominata AS/ 400. 1.2 Rappresentazione dell'informazione La parte che segue contiene alcuni richiami Bulla rappresentazione dell'informazione. Vengono esposti solo poehi concetti di base, ritenuti funzionali agli obiettivi di questo libra. SuUa rappresentazione dell'informazione, l'aritmetica intera e in virgola mobile esiste un'ampia letteratura, sia di carattere generale [CPS93], [HP93], [HVZ84! sia specialistico [Orno94), pertanto la discussione che segue procede in modo intuitivo e alquanto sbrigativo. 1.2.1 Sistemi di numerazione Numero eun concetto matematico astratto per 1a descrizione quantitativa degli og- getti cantenuti in un dato insieme. Un sistema di nurnerazione eun insieme di s~mboli e regale atti a rappresentare i numeri. Le due principali categorie di sistemi di nu- merazione sono la posizionale e l'additiva (quella llsata dagli antichi Romani). Alta prima categoria appartiene il consueto sistema di numerazione decimalell : Prendiamo il numero 1475. Esso viene interpretato come: 1475 = 1 x 10' + 4 X 10' + 7 X 101 + 5 x 10° Come si vede, ogoi cifra che compare in 1475 ..,sume un valore che dipende daila posizione (peso) nella stringa "1475". 11 sistema di numerazione decimale si basa su 10 simbali (cifre) diversi {0),2,.. ,9}. I Dumeri si rappresentano scrivendo sequenze di cifre diverse. In generale, sia dato un numero B > 2, detto base, e I'insieme fj composto da B simboli diversi: 13 = {O,1,2,... ,E - I}; la stringa di n crne: bn - 1bn _ 2 . , . b1bo can bi E fJ si interpreta come: bn _ 1 x Bn - I + bn _ 2 x Bn - 2 + ... + bI X BI + bo x EO Consideriamo ora i casi di B uguale, rispettivamente, a 8, 16 e 2, llLa ragione per cui l'uomo ccnta in base died deriva sicuramente dal riurnero di dita delle nostre manL Si sa di popolazioni che Cantavano in base 5, I Maya avevano un sistema di numerazi.one vigesimale. . .. .':O ... ,. :,4 ~~ ·.ii jl .: ; .} ., ·,· ~I .~j 1 · tr i '~ 1 "1 ':. ...; ...: ... ') ., .', ;~:; , " , ,~ :' .,~ "4 .';, "~I ·, ~ .."" i · ·~ ::~. ),~, .~ 'r" 0.'] ~·j~ ~1 ..... ,X;:: ,-, '1 ',,:' '~' " ,,, ;ij ~ ,. Ji, ~:~ ,.J ,.~ , .• '~ .~. ~' , .:,p ;-.,; ;,;1 ,,1 :. :, , "~j .0; ·J ..": :" ,.; ~, "", ·" -Il .:, ~i :1 ..,~ . '., ',. " "~ .'·"d ...." ..,-,
  • 22. ] 12Nel seguito la numerazione in base 8 Don viene piu considerata, anche perche ormai si fa ) praticamente usa solo della numerazione in base 16. .... OW' ',. .~' 4: ~ . i•. l' ; . } , ·~l: I' j . 1 r i 1 1 .' ; :1 ) ,., ', " :; . , .. ~ 1'' ~ 4 .. , I; , ~. "' . it ~1· ~l; ., ~.. " ] ~I' 1 " . ::I ,' 1' 'j , 'l ", j ~ . i, ~ J ~, .'• ~I .' ' , p., ; ;1 11 :.it ,,j , j ; JI ":1' " ;,1' ,I ,, " ll' ,! i 11' ~ , ,~ .,. " ~yO d '. " , lntroduzione 9 Can B = 8 (sistema ottale) l'insieme dei simboli diversi e{3 = {0,1,2,.. ,7}. Se, a esempio consideriarno la stringa 417, essa corrisponde al numero: 417 = 4 X 8' + 1 X 81 + 7 x 8° = 4 x 64 + 1 x 8 + 7 x 1 = 271 Llapparente incongruenza ~eriva cial fatto che normalmente, quando si vede un nume- roo scritto, se ne da. ~n'interpretazione decimale. Per evitare equivocil l'uguaglianza andrebbe scritta come: 417s = 27110 nconcetto'di numero epuramente astratto, 417 e 271 sono 1a rappresentazione dello stesso numero" in due diverse basi di numerazione. Per questo motivo, stringhe di cifre come 417 e 271, di base imprecisarta, si dicono "numerali". Can B = 16 (sistema esadecimale), per costruire un insieme di 16 simboli si pren- dono a prestito Ie prime 61ettere dell'alfabeto, per cui {3 = {0,1,2,.. ,9,A,B,C,D,E,F}. La stringa 22, interpretata in base 16, corrisponde a numero 2 x 16 1 + 2 x16° = 34 Can B = 2 (sistema binarin) si hanna solo due simboli diversi: 0 eLLa stringa 10011, corrisponde al numero ." 1 x 2' +0 X 2' +0 X 2' +1 X 2 1 +1 x 2° = 1 x 16 +0 x 8 +Ox 4 +1 x 2 + 1 x 1 = 19 10 In Tabella 1.2 vengono riportati i prirni 17 numeri interi nelle 4 rappresentazioni . appena viste. La numerazione in base 2 eimportante perche nei calco1atori elettronici l'informazione erappresentata solo attraverso due simboli {O, I}. Le numerazioni in base· 16 e in base 8 interess~no perche 1a trasformazione tra queste basi e 1a base.2 (e viceversa) eimmediata12 . lfase 2 ~ase 8, Base 16 -"ase 10 1 .i;ase 10 Base 2 B.... B Base 16 0 O. 0 0 9 1001 11 9 1 1 1 1 . 10 1010 12 A 2 10 2 2 II 1011 13 B 3 11 3 3 12 1100 14 C 4 100 4 4 13 1101 15 D 5 101 5 5 14 1110 16 E 6 110 6 6 15 1111 17 F 7 111 7 7 16 10000 20 10 B 1000 10 B 17 10001 21 11 , Tabella 1.2 I primi ]8 numeri nelle basi 101 2, 8 e 16, I I J I , " I ( I I J J
  • 23. " ',,! "" " . '.' - "? , " ;'.f :-~ '. ':~ " .. ,(,~ ", ,~, " , , ,'~ :, .. , .;, ;'i::1. ,," ;1, ':- iI. ';; <; II' I -,~, ,,'. ,·u '::l '. , ~~." ):1 , , " 1 "'t ' '" 'J! -:?I . ! J .': ", , c' ': . " 'j " .i " .... :,~: . ' " ',' , , J.j ..J <, '~ ,- .., ( .." ';:i: , , . ;. = 10 Capitolo 1 Esaminiamo per prima cosa la conversione cia base Bk a base B e viceversa. In particolare interessa 1a conversione tra esadecimale e binario. Si consideri il numero binario 010111000011. Si raggruppino a partire da destra Ie cifre binarie a quattro a quattro (0101 1100 0011) e sl sostituisea eiaseun gruppo • con la corrispondente cifra esadecimale (Tabella 1.2), 51 ottiene la stringa 5C3, E facile convincersi che questa ela rappresentazione esadecimale del numero binario di panenz3. Ovviamente it processo puo essere applicato anche in modo opposto, per 1a conversione da binario a esadecimalej per esempio: 1.2.2 Conversione di base IJLB07 " =000111001101000001112 Formalmente quest.a proprieta si dimostra Del modo seguente. Sia data.la stringa: bn - 1bn _2 ... b1bo in base Bot I cui corrisponrle il numero , bn_1(B')"-1 + bn_,(B')n-21 +'" + b,(B')' + bo(B')O (1.1) dove ogni bi epresQ da {O,l,... lEI:. - I} ed erappresentato in base B come b' k-1b k-2 '" b 0= b' '_lB'-l + b' ,_,B'-2 +" ,+ b oBo , , ' , ' , " 1, dove ogni bi,; e presQ da {DIl"" ,B - I}. Sostituendo in 1.1 a cia.scun bi la sua rappresentazione in base B, si ha [bn_1,'_lB'-1 + bn_1,k_2B'-2 + ' " + bn_1,oBO](B')n-1 + (bn_2,k_1B'-1 + bn_2,'_2B'-2 + ' ,"+ bn_2,oBO )(B')n-' + [bo,'_lB'-l + bo,'_2B'-2 +'" ,+ bo,oBO](B')O = , b B kn-I b B kn - 2 n-I,k-I + n-l,k-2 . + ... + bO,k_1B'-1 + bO,'_2Bk-2 +, ,,+ bo,oBo)(B')O che corrisponde alia stringa bn-t,k-lbn-l,k_2 ... 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 =7710 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 N ::;;: bn- 1 x 2n- 1 + bn_2 x 2n- 2 + ... + bl X 21 +bo x 20 Se si divide it polinomio per 2 si ottiene bo come resta e bn _ 1 x 2n- 2 +bn _ 2 x 2n-3 + + ... +b1 come Quoziente. Dividendo il Quoziente per 2 si ottiene bl come resta e bn _ 1 x 2 n - 3 + bn - 2 x 2n - 4 + ... + b2 . Si itera il procedirnento fino a cite l'ultimo quoziente attenuto non epiu divisibile. A Quel punta 1a rappresentazione binaria si ottiene scrivendo da sinistra verso destra i resti in oedine inverso a come sono stati peodotti. Consideriamo per esempio il numero 35. La serie successiva di quozienti e resti ottenuti dividendo per 2 e: (17,1), (8,1), (4,0), (2,0), (1,0) (0,1); dunque la rappresentazione binaria del nurnero 35 (decimate) e: 100011. ) I ) I I I ) I I I 1 , 1 , I , 1 ", "'""'M ' .,i~ ~
  • 24. 11 lntroduzione 1100,1011 + 110 1110 1 0011 1001 0 1 10110 x nHE 101 10110 00000 , 10110 - 1101110 o 1 o iI[Tl 1~, 1.2,3 Aritmetica binaria , ,' B = bn _ 1bn _ 2 •..•... b1bo Tabella 1.4 Tabellina del pcodotto. It prodotto tra due uUIneri in base 2 viene calcolato col medesimo procedimento seguito in aritmetica decima.le. con bi E {OIl}. Tale vettore rappresenta 2n numeri diversi, per esempio i 2n interi positivi compresi tra 0 e 2 n - 1. Occarre stabilire una qualche convenzione per rap- presentare i numeri negativi. Di norma se il bit pili a sinistr·a e1, aHora il numero viene interpretato come negativo. Sono possibiti tee convenzioni: 1.2.4 Numeri negativi Consideriamo un vettore di n eifre binarie Tabella 1.3 Tabellina. della somma. aritmetica ed esempio di somma tra. due numeri in ari- tmetica binaria. Nella tabellina Ie due cifre 10 nell'angolo in basso a destra indicano che la somma di 1 can 1 da riporto. Costruire un'aritmetica binaria ricbiede che vengano scalati sulFinsieme {OIl} i fami- liari concetti dell'aritmetica decimale. In particolare si possono costruire Ie tabelline delle varie operaziani aritmetiche per 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 eun proceaso che richiede il calcolo dei prodotti parziali e l'esecuzione della loro somma. Per approfondimenti sull'argomento si rimanda alia letteratura meozionata. , • >.. ,' "'~. , ". ,. ' ", ' "'~
  • 25. 12 Capitolo 1 .,;" IJ! "; ..' ." ., ." , .' ,1 7" ~~I , ~" ,;.! ',~ ::' ,, '.V i· ,:.~ n' '.'. -t ::: I" ..,~ ; " ': , '· .. :~ ','1 ~ ., -- "~l ,',,, ..'.... :!)~! .. 'J , " i'' ~ ';I 1_ ,'-:; ,,< 'I "J ;: .'.., j .~f.o '"'.. - 1_ ~S " • 'lll ..~ , I , ~" .• 11 ~t i~ l ... ~I, " .~ ;.'a (30) (-22) (8) numero dato (16, = 22.) complemento a. 1 complemento a 2 + 00011110 11101010 00001000 00010110 11101001 11101010 La differenza a - b si ottieoe sommando: Complemento a 1. .n camhiamento di aegno viene ottenuto complementando ciascun bit del corrispondente valore positivo. Complemento a 2. ncambiamento di segno viene ottenuto complementando ale aggiungendo 1. Con n bit a disposizione si hanno numeri positivi (compreso 10 zero) cia 0 a 2 11 - 1 - 1 e numeri negativi da -1 a _2n- 1 . Per esempio, con 8 bit i numeri positivi vanna da 0 a. 127, i negativi da -1 a -128. La soluzione in complemento a 2 equella normalmente adottata e la sottrazione del nUIDero b da a viene eseguita come somma di a col complemento a 2 di b. Ad esempio, 'i prenda a = 00011110(= IE" = 3010) e b = 00010110(= 1616 = 2210), n complemento a 2 di b si ottiene Corne~ - F = L1L,··· L m Modulo e Segno. In questo cas~ si passa da valore positivo a negativD semplice~ mente cambiando da 0 a 1 it bit piu significativo. L,B-1 + +LmB-m Esempio 1 n numero binario .101 corrisponde a1 numero decimale: 1 .2- 1 + 0 . r' + 1 . 2-3 = ~ + ~ = 0,5 + 0,125 = 0,625 Fino a questa punto abbiamo considerato solo numeri interi. La stringa: ,b_1b_2 ... b_m 1.2.5 Numeri frazionari si interpreta come: • La conversione da decimale a binario si ottiene con questo ragionamento: dato il numero frazionario F in base 10, si tratta di trovare la stringa b-1b-2 ... b_m tale per CUll
  • 26. ) ] , I ) • I l J , I I • I I I I I 13 Introduzione Si ba dunque (0,78125ho = (0,11001), . ...,Esempio 2 Si voglia convertire in forma binaria it numero decimale 0,78125. .. 0,78125 x 2 = 1,5625 -> 1 0,5625 x 2 = 1,125 -> 1 0,125 x2 = 0,250 .... 0 0,25 x 2 = 0,5 -> 0 0,5x2=1,0 ->1 Osservando che b_1 ela parte intera del prodotto Per i,numeri interi si assume che la virgola sia posizionata all'estrema destra. In modo del tutto analogo per i numeri frazionari iI punto binario viene considerate all'estrema sinistra. Per cui un generico numero N sara formate da una parte iDtera e da una parte frazionaria separate tra loro cia! punto e interpretate illustrato. Quando il punto separa la parte intera dalla parte frazionaria si parla di notazione in virgoJa ji3sa. • . . F'requentemente, e, in modo particolare nei problemi di calcolo tecnico e scientifico, si ricorre a rappresentazioni normalizzate di dat~ cbe hanno 10 scopo di sollevare l'utilizzatore dai pr6blemi conriessi con i1 contrallo della posizione della virgola e con , Paumento del numero di dire a seguito delle operazioni aritmetiche che via vengono eseguite. Nel calcoto numerico i dati vengono di solito espressi Come prodQtto di due fattori, il primo dei quali comprende Ie cifre significative del numero da rappresentare mentre i1 secondo, euna potenza del 10, il cui esponente definisce la posizione della virgola nel numero. 1.2.6 Numeri in virgola mobile ±.;,. X b±41oi ...a" . ...1 2 3· / ,YIY2Y3 . .. Yk dove bela base del sistema di numerazione, X1X2X3. _. Xh, Y1Yz1!3 • . -11k e G1 a2 . .. an, sono cifre della stesso sistema. II numero X1X2X3··· Xh,Y1Y2Y3 ... 11k vieoe chiamato mantissa, mentre il numero a1 a2··. an viene chiamato esponente 0 caratteristica. EsemDio 1 nnumero 127000000 puo essere scritto nella forma 127x 106) mentre il nume- - 1'00,0000015 puo essere scritto come 15xlO-7. Tale convenzione non elegata . ':~"al1a notazione decimaIe, e puo essere estesa agli altri sistemi di numerazione. In generale si puo dire che un dato numerico qualsiasi ammette una rappreseotazione approssimata corne la seguente: 2X F = L, +L, X 2+.. ·Lm· X T(m-l) si deduce che la: ricerca dei coefficienti bi richiede un processo di successive moltipli~ - cazioni della parte frazionaria con estrazione 'della parte intera. n processo termina quando la parte frazionaria risulta 0 (oppure non termina se il OUIDero eperiodical. '- .. ", " ! ;, .. '. "l , " 11, I! ! ~ ,,.. .",.;. ,. "~- 'oJ..'."'{"'.' - ..-.~~,. .. c' J ; '.' V '...,..y-., · )' , ~, ', .'. tt :1" " t . ~ '", " :1 ·11, ' ~I 11 ~ , -~ . ll, .. ' ! ' .. .!' '''I. ~ I~" I I " :~I. , j'I'. o) ',. _ Sl • l,.. ~. .' ' ", 1 _ t ..• ~: l, ~ a.
  • 27. . 1 14 Ca.pitola 1 ';1 :; ., .;:; " ., ,. ., • ,~ iiii 'f , "~I' ., , 'I.' " ,11 • '. :~ ~.. .. ,~ , ,~. ' 'g' , , , ,1 " • • ;'~I ._-; "n i:U ';, ,f1, .n, .Ji' ':'1> - .., ~, '.~' l ,a ·, . , ,'n, '<I l:it ;,l~.. 1.' .~ ,'. I ". . '.' '," .~ :'1J .~ :;u~".• ,;'1' I, ,. , . ". ' " ~ ;ll: " i c I ~ _,0 ~," . :, 'f' ',. ~ •• • ., 'll ·, "I' · . ±a, =-7 ±al = 6 b= 10 b = 10 • XIX2Xa,YIY2Ya = 127,000 • XIX2X3,VIV2Va = 15 EseIlllliQ 3 1 numeri dell'esempio precedente diventano: 127x106 =0,127x10' 15x10-7 =0,15x10-' I segnQ I espQnente I mantissa I Es~mlliQ 4 Utilizzando Ie seguenti convenzioni: , '. - 10 zero che indica la parte intera della mantissa; - il punta decimale; • II punlQ che indica II prQdQttQ; - II valQre della base della pQtenza; • fissando la lunghezza della mantissa a un valore costante; • limitando l'esponente ai valori compresi in un opportuno intervalloj • utilizzando un esponente convenzionale ottenuto sommando all'esponente effetti- vo una costante (bias) che 10 renda sempre positivo ed eliminando quindi il segno delPesponente; • disponendo i tre elementi rimasti in uo ordine stabilito. • eliminando i caratteri non necessari ovvero: Alcuni cara:tteri della rappresentazione esponenziale normalizzata sana ancora ridon~ danti ed epossibile, mediante ulteriori convenzioni, arrivare a una, rappresentazione piu compatta. Una di tali rappresentazioni, nell'ipotesi di notazione decimale, si ottiene adot- tando Ie seguenti convenzioni: t r ) ) Su una rappresentazione come 1a precedente si puo [are la convenzione che la prima cifra significativa si trevi immediatamente a destra del punta decimale. Per ottenere db sara. sufficiente aumentare 0 diminuire il valore dell'esponente di tante unita Quante sono Ie posizioni di cui estato spostato il punta. La forma ottenuta con questa convenzione edetta rappresentazione esponenziale normalizzata. . , I 1 " Esempio 2 I Riprendendo i numeri dell'Esempio 1, si ha: ) 1 I I ! l I
  • 28. • segno esponente mantissa 0,127x10' + 59 . 12700000 0,15xlO~' + 45 15000000 13Corrispondono a queUe de~la. convenzione IBM descritta poco piu a.V3nti. Introduzioue 15 - lunghezza mantisse : 8 cifre; - valore esponente: da, -50 a +49j - valQre della CQstante (bias), 50; i numeri dei precedenti esempi si scrivono come segue: Come gia detto, la rappresentazione in virgola mobile non eleg~ta alia Dotazione di numerazione, Una rappresentazione usuale ,e su 32 bit, Per essa si facciano Ie seguenti convenzioni13; • II primo bit rappresenta il segno della mantissa (9 per il seguo +, 1 per il segno-); " • I sette bit successivi rappresentano l'esponente da usare per la base 2, aumeJ!tato_ di 64. L'esponente convenzionale puo variare tra 0 e 127 (che eil massimo intero positivo rappresentabile con 7 bit), queUo effettivo deve essere compreso tra -64 e +63 (64 cQrrispQnde a 0);.' • Gli ultimi 24 bit rappresentano il valore assoluto della mantissa in forma norma- lizzata (it primo bit a destra della virgola cleve essere 1). Esemp.iQ..2 Si consideri il cumero 204,17437 RappresentaziQne binaria: 11001100,00101100101111 RappresentaziQne nQrmalizzata:' (0,1100110000101100101111), x (101000), Con Ie precedenti convenzioni si ha: bit di segno: 0; espQnente, 0001000; manti..a: 110011000010110010111100 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. - c, .~'. >,
  • 29. rn 1000010 [TIoo 1100 0010 1100 1011 bOO I Esempio 6 Rappresentiamo il numero decimale 204,17437 in notazione Hoating-point secondo la convenzione IBM. Si hac (204,17437)10 = (11001100,00101100101111),=(CC,2CBC)I' La normalizzazione della mantissa si 'ottiene spostando il punto decirnale di due eme (16 bit) a sinistra; corrispondentemente l'esponente va posta pari a +2: (CC,2CBCh, =(0,CC2CBCh, x16'. L'esponente convenzionale si ottiene sommando all'esponente effettivo (+2) • la costante 64, ottenendo: (66ho =(1000010),. 11 risultato e: Convenzione Digital Anche nelle macchine Digital e adottata una rappresenta- zione su 32 bit: • il bit pili significativo (bit 31) fornisce il valore del segno s della mantissa (0= +, 1= -); • i successivi 8 bit (bit 30+23) contengono l'esponente convenzionale esp ottenuto' sommando 1a costante 128 all'esponente effettivo. Puo assumere i valori compresi tra -128 e + 127 ed e riferito alia base 2; • i rimanenti 23 bit (bit 22..;.0) contengono la mantissa; ISlOIT] esp7~ L' esporiente puo assumere valori interi cornpresi tra -64 e +63 ed eriferito alia base 16. La mantissa enormalizzata, tioe la sua prima cifra esadecimale ediversa da zero: cio compona che &lmeno uno dei primi quattro bit della mantissa (bit 23~20) sia diverse da zero; fa eccezione 130 rappresentazione del numero zero che e data da 32 bit tutti nuIli. Convenzione IBM Nei mainframe IBM, eusata la rappresentazione a 32 bit, con: • il bit pili significativo (bit 31) fornisce il valore del segno s della mantissa: (0=+, 1= -); • i successivi 7 bit (bit 30+24) contengono l'esponente convenzionale esp (intero) ottenuto Bornmando all' esponente effettivo 1a costante 64. Cosl facendo si rende l'esponente sempre positivo e non epin 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. 16 Capitolo 1
  • 30. lntroduzione 17 1 j ) J j ) I I I I C!TIOOOIOOO [ 100 11000010 1100 10111100 1 'EsempiQ 7 Rappresentiamo it numero decimale 204,17437 in notazione Boating-point secondo la convenzione Digital .Si ha : (204,17437ho =(11001100,00101100101111), La normalizzazione della mantissa si ottiene spostando il punto decimale di 8 bit a sinistra; corrispondentemente !'esponente va posto pari a +8: (11001100,00101100101111), =(0,1100110000101100101111), x(101000), L'esponente convenzionale si ottiene sommando all'esponente effettivo (+8) la cost.nte 128, ottenendo: (136ho =(10001000),. n risultato e: lsI bit I esp 8lillJlV! 23J»D ·La mantissa erappresentata 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 sia uguale a 1. Poiche questa bit esempre uguale ad 1; non necessita di essere rap- presentato: la m~tis~ae, dunque, espressa co~, 2~ bi~) m~ solo i 23 meno ~ignificativi ] sana rappresentatl (bIt 22-:-0), mentre quello PlU slgnificatlvo, assunto uguaIe a 1, non erappresentato (hidden bit - bit nascosto). ncaso del numero zero, la cui rappresen- tazione sarebbe incornpatibile con l'assunzione fatta (dovrebbe essere nullo anche il bit nascosto) e indistinguibile da quella del numero 0,5x2-128 (tutti i bit nulli eccet- to quello nascosto), econsiderato a parte. Vambiguita e stata risolta considerando 1 ugliale a zero il numero quando gli 8 bit dell'esponente sono tutti nulli (esp =-128), a prescindere dai valori dei bit della mantissa. lunghezza singola; lunghezza doppiaj • formato esteso: lunghezza'singola; lunghezza doppia. Standard IEEE 754-1985 per l'aritmetica binaria in virgola mobile Per eliminare la confusione dovuta aHa nOn definizione delle istruzioni in virgola mobile, che riguarda il numero di bit usati per rappresentare l'esponente e la 'mantissa, l'in- tervallo di esistenza degli esponenti, i metodi di arrotondamento e la trattazione delle eccezioni (come l'overflow), estate introdotto 10 standard IEEE 754-1985 [lEE]. Esse specifica il formato, Ie operazioni, Ie conversioni tra i differenti formati Boating-point e-quelle tra i diversi sistemi'di numerazione e il trattamento delle eccezioni, compreso il NaNs (not-a-m..mber). La standard definisce 4 formati floating-point:. • formato base: , '. ,," . -0- "t~ii'.!j"-, :~il:~!~'-.~_ ".-:.:('-~;-' --" .1'"' .., ';., .' 'I J J~ , ,n "". . :1I'. .J ' ;11 . .'i: ·"u ii c .,) ,. -'.,. . ••R· · j., '."1.' ~1lI-. - ,.~. -':" "'~"I' ' ~. -. . ,. - - :""1" , -'. n . , .~.. . .-~ '" .. • ., 'J-j.' :y~", .~ -- , ~,~, . .~C)ij .~ • • ',. ' , :;<! .,:'} ~, .:, .,-t .', i, ·. >Vil~- " ..C ':'1 ..~ ,. ·r " " ,;til "'1'1' .-:{ , ,1' " ';, "~1~1' • :". ·,,.-'. _.,1 ,., ;~~~: •.... ,'.~. --. .Ill ~<fl ;:~ .,' j 'i' · ,Ii "'1" .' .1 ~.;- : r" 'I' • ..~. , :.;;~ '::':~ ,1 YI ..,
  • 31. ) 18 Ca.pitolo 1 • - .. ,~.. " .' -:~, ~' .'(-,'" .> ;.,~ i I 1 I I t 1 l 1 1 1 I I Ogni formate edefinito specmcando tre par~etri interi: • P=numero di bit signi.6.cativi (precisione, ovvero numero di bit che compongono la mantissa); , • Emtl:l=esponente massimo; • Emin=esponente minima. Dalla definizione di questi parametri si pUG risalire al numero di bit deWesponente, all'esponente convenzionale e alla lunghezza del formato. I formati sana riportati ~n TabeUil.1.5. Singola Sin.e.:ola estesa Doppia DoEPJ,a estesa t' (bit di precisioneJ 23 >32 52 >64 ETna~ 27 >1023 1023 >16383 ltmin -1.6 < -1022 -1022 < -1638. Bias ~ 1023 L~~ezza Esponente >11 11 >15 Larghezza formate 32 >43 64 >79 Tabella 1.5 Formati standard IEEE 754-1985. Lo standard impiega esponenti polarizzati, cioe at valore reale dell'esponente E viene aemmata una. base eli polarizzaziene (bias, pa.ri a 127 nel caso <;li singola 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: - lID bit di segno s; - espanente polarizzato e::E+bias; - mantissa M=,ffilm2ms ...rnp_l; n valore di E varia tra Ef1in ed EfnoJ.x, includendo anche altri due valori riservati Emin - 1 per codificare ±O. e numeri denormalizzati, ed Emax + 1 per codificare ±oo e il NaNs. La mantissa eun numero decimale (binario) la cui parte intera esempre .1. Per questa motivo tale 1 non compare nel campo mantissa della rappresentazione. Tale campo, quindi, si compone della sola parte frazionaria. Esempio 8 ' Rappresentiamo con 10 standard IEEE il numero decima:le 5, nel formato in singola precisione. (5),0 =(101),; (101), =(1,01), x(1010),; Segno=O; Mantissa=01000000000000000000000 (la parte lntera eimplicita); Esponente=00000010 ';n :" )~I; . •• "'. , I,>;, -, '~.!I " . '::"1 "j' '.' ' C'~1 d .~ ., T ,-~! t~ -' , '. , ",~" ":,'~I, ' '''I' •-!~ - "M"' :'1 ;'1 :ii' ''':' ., '='1"' ".;,'1 "~ia" 'II' " . ? ;. ;', ., ~1 (It ·'·'11" • • ..,~, , ' ) " "'f AI " "... , ,u, , ...' " ;u'; · , • • ~lt " '. •'-1, ..' ,~,
  • 32. Introduzione 19 I campi sono interpretati come segue: . • Singola: un numero X in formata singola precisione a 32 bit ediviso come segue: lsI bit I esj:> 8 bit I M 23lillJ nvalore v di X ededotto dagli elementi componenti i campi nel seguente modo: L Se esp=255 e M;60, a1lora v eun NaNs nonostante s; 2, Se esp=255 e M=O, aHora v= (-1)'00; '3, Se 0 < esp < 255, aHora v=(-1)'2'-127(LM); 4, Se esp=O e M;60, aHora v=(-1)'2-126 (0,M:) (numeri denormalizzati); 5, Se e=O e M=O, aHora v=(-l)'O, • Doppia: un numero X in formato doppia precisione"a 64 bit ediviso come segue: lsI bit Iesp 11lillJ M 52 bit I 1 II valore v di X ededotto dagli elementi componenti i campi nel seguente modo: 1. Se esp::2047 e M#O, allora v eun NaNs nonostante s; 2, Se esp=2047 e M=O, aHara v=(-l)'oo; • 3. Se 0 < esp < 2047, allora v=(-1)'2'-1023(LM) 4, Se esp=O e M;60, a110ra v=(-1)'2- 10"(0.M) (numeri denormalizzati) 5. Se esp=O e M=O, a1lora v=(-l)'O, Altra caratteristica della standard ecostituita dalle regole di arrotondamento. Quan- do si esegue un'operazione su due numeri in virgola mobile, di solita il risultato eun valore reale che non si puo rappresentare in modo esatto in virgola mobile. Lo standard IEEE 754-1985 prevede quattro modalita di arrotondamentoc . arrotondamento al valore piu vicino (e 10 standard); - arrotondamento a zero; - arrotondamento a +00; . arrotondamento a -00. EselllPio 9 Usando una rappresentazione in virgola mobile in base 10 a due dfre, si ha 2,1 x 0,5 = 1,05 •
  • 33. 20 Capitola 1 che non e pili rappresentabile in modo esatto 'con due cifre poiche ne richiede tre. Si arrotonda a 1) oppure a 1,0? In una situazione ambigua come questa 10 standard prevede Parrotondamento al valore la cui cifra meno significativa epari. Quindi 1.05 viene arrotondato a 1.0. La standard prevede che il risultato effettivo di un'operazione in virgola mobile sia queUo che 5i ottiene calcolando il ri5ultato esatto, 0 ideale, e poi arrotondandolo mediante una delle suddette modalita. Tale approccio risulta. molto costoso, dato che occorre eseguire una somma con un nurnero elevato di bit (tramite un sommatore di notevoli dimensioni), una parte dei quali verranno pero scartati alIa fine del processo di arrotondamento. Nella somma algebrica si possono usare due modalita. di arrotondamento distinte. Una prima modalita eprevista nel caso in cuI gli addendi abbiano uguale espo- nente. In questa caso la somma delle parti frazionarie degli addendi produce un riporto a sinistra, che va considerato spostando la virgola mobile a sinistra e incrementando l'espnnente; si perde coslla cifra meno significativa della parte frazionaria. Esempio 10 Consideriamo due numeri in virgola ·mobile (scelti decimali per semplicita) e calcoliamone la somma: (0,836 x 10-'),0+(0,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- tissa normalizzata di tre cifre) enecessario spostare la virgola a sinistra e modificare il valore dell'esponente, perdendo cosll'ultima cifra decimale. Ualtra modalita. ellarrotondamento conseguente alIa disuguaglianza degli esponenti degli addendi: I due esponenti vanno eguagliati e percio la parte frazionaria di uno dei due addendi va fatta scorrere (quelIa del numero cun esponente minore) perdendo cosl almena una cifra. EsemI?io 11 0,836x 10-'+0,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 (round digit) Lo standard IEEE prevede anche cinque cause di eccezione aritmetica: • underflow • overflow • divi,sione per zero • eccezione di inesattezza -, " ", . , /if .~ ,, .. , - i' ',; , '; ,"" ?,W . : -;'i ;; .," . " "~ ·~t -:f; ;·, -,,1 .,.'! '; -'/ ," ";; ":~ ' ! . ", t ', -, .... f '! S ','.
  • 34. ,!I,-~": - '; • .~I il ",1 ' "- .., ,.. f:" - , ~.;J' ,~' ,~'I .•r -, '~' ;j~ ,. ;'U "" W :,~­ i~ , ;ri, ".' . ""I' "~' t,· ' ;~ ,6 11; !, ;i -./ "'5 "11 ;;, . ~-;J" ''(j : '-j !,~' ", • tl <" '!;;- ,.1 ,:~. .,' ..;~.' .~~~ -- - . - .:: f '!; S. .,-,,1 ~ Introduzione 21 • eccezione di invaliditd. Le eccezioni di underflow, overflow, divisione per zero, sono presenti anche in altri standard. L'eccezione di inesattezza e1a caratteristica delFaritmetica IEEE e si ve- rifica sia quando il risultato di una operazione deve essere arrotondato, sia quando l'operazione meorre in un overflow. Quando si verifica una di queste eccezioni, eprevisto l'aggiornamento di un bit di segnalazione, rna il calcolo puo proseguire. Questi segnalatori, una volta attivati, rimangono tali 'fino a che non vengono disattivati espJic~tamente. 10 standard raceo- manda di introdurre anche un bit di abilitazione di interruzione (uno per ciascuna delle eccezioni). II questa modo se si verifica una delle eceezioni, e il eorrispondente bit di abilitazione dell'interruzione eattivo1entra il gestore delle interruzioni predisposto dalPutente (ovviamente1in questa caso, il bit di segnalazione non enecessario). Lo standard prevede che qualora si verifichi una interruzione dOV'uta a un1ecce- zione aritmetica, si possa risalire all1operazione che l'ha generata e anche al valore dei suoi operandi. Operazioni in virgola mobile La descrizione dettagliat~ degli algoritmi con cui verigono effettuate Ie operazioni algebriche in virgola mobile, non rientra nei fini di questa trattazione. Per ulteriori approfondimenti 8i rimanda alia letteratura [Omo94], [HP93); di seguito per dare un'idea di come vengono svolte tali operazioni, sono -riportati in forma molto semplificata i principali passi dell'algoritmo di somma e ,moltiplicazione. Somma alg~brica Le operazioni di somma e sottrazione di numeri in virgola mobile '.: richiedono che gli esponenti dei due addendi siano uguali. A tal fine Occorre , " traslare Ie mantisse dei due numeri una rispetto all'aJtra. Una regola generale per l'addizione e la sottrazione mobile pub essere riassunta nei seguenti passi. 1. Si prende il numero con l'esponente minore e 5i trasla a destra la sua mantissa di un numero di bit uguali alIa ditIerenza degli esponenti. 2. Si pone l'esponente del risultato uguale al pili grande degli esponenti dei due addendi. 3. Si effettua l'addizione 0 la sottrazione delle mantisse e si determina il segno del risultato. 4. Si normalizza il risultato se necessaria. Moltiplicazione Per la moltiplicazione non enecessario l'allineamento delle man- tisse. L'algoritmo pili semplice puo essere cosl riassunto. 1. 8i sommano gli esponenti 2. S.i moltiplicano 1e mantisse e si determina il segno del risultato 3.. Si normalizza il risultato se necessario. l ] I 1 1 f ! ) ) J J
  • 35. . Tabella 1.6 Codifica "ASCII dei caratteri alfanumerici. - -' ., , • ' A .' . " .,. " " ;'.~.. .,'. .,-.., ~~- " ,_. .... .;ll;; ~, ,'. !~: ~.,. , ..• "" .- . ., . ., '. • ·., " "·1 .'.' J ...., " ·"1;1 I.,.", ...., ,", ":''j1 ." ~ <~' ....; ',:'1' hi! . " ·" .,,, . '", '- ;~. .,.. .,'". " ~.. ;,'oJ ,..:)j :~H',. '- r; , ,'I. ' ." .,' ".' Capitolo 1 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 1 31 49 b 62 98 .. .. .. .. .. 9 39 57'" z 8A 122 L'informazione elaborata all'interno di un calcalatore elettronico non esolamente di carattere numerico, in quanta enecessaria rappresentare l'informazioni di tipo testuale o cornUDque inIormazione di qualunque genere codificata attraverso simboli binari. E costume universale chiamare byte un raggruppamento di 8 bit. Col termine parala si intende un gruppo d.i 2, 4 0 piil byte, a seconda del contesto. Per esempio, nelle ma.cchine a 16 bit si considera la parala corne farmata da 2 byte, mentre nelle macchine a 32 bit la parola si considera farmata da 4 byte. Per rappresentare l'informazione alfanumerica si rende necessario stabilire una corrisponde~abiunivoca tra cara.tteri e segni dell'alfabeto e configurazioni di cifre binarie. La conispondenza in ql.!-estione si dice codifica. Un forma molte naturale ecodificare un carattere a byte. Es~stono diverse codifiche, tra cui la pili nota ela 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- 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.2.7 Informazioni di carattere alfanumerico 22 I , I ca.lcolatori r"appresentano il settore applicativo in cui l'elettronica e Ie tecnologie digitali hanno trovato piu vasta applicazione. Un semplice ragionaD')ento spiega bene Ie ragioni del successo d~l'elettronica digitale. Se un sistema 5i campane di n elementi e p e1a probabilita che ha ciascuno di ea5i <Ii operare correttamente, allora la prohahilita che l'insieme degli n componenti operi correttamente epn. Se 5i considera quant'e grande il numero di componenti elementari the formano un moderno calcolatore elettronico, si deduce epe p dE;ve essere tendenzialmente 1. Da un punta di vista tecno10gico cib richiede componenU tali per cui sia facile diagno5ticare Ie situazioni di 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 . l 1 1.3 Logica dei sistemi digitali ) 1 l I 1 ) 1
  • 36. 23 NOT Introduzione x t>o X mpo • ~ D x+y . te xy 1.3.1 L'algebra delle reti AND OR Figura 1.2 Simboli standard per le porte AND. OR e NOT. .. ,X-fJ.-_ y-L-- 1 a , Figura 1.1 Forma d'onda idealizzata di un segnale logico. HUn segnale analogico porta piil informa7.ione di un seguale digitate, sia. percbe a 6680 corrisponde , una. infinita di valori nel1'intervallo di definizione, sia perche e possibile una infinita. di andamenti della forma. d10nda del segnale. In pratica, disturbi e Iimiti fisici alIa vclocita di variazione rendono inaccurato sia il procesao di generazione sia queUo di riconosdmento e misura de.i segnali analogici. Al contrario, un segnale digitale emolto meno sensibile al ruinore e ai fenomeni transitori. Per quanta riguarda i disturbi, basta the questi non portico il segnale al di fuoTi della fascia di discretizzazione in cui si trova i1 valore del segnale al momento del verificarsi del disturbo; per quanto riguarda i fenomenj traJlsitori, basta dar tempo sufficiente al loro esaurirsi in modo che il riconoscimento del segnale dia un risultato non a.mbiguo. 15Vale la pella di rimareare che i due simboli nulla hanna a cbe fare can i corrispondenti simboli aritmetici. Cib che serve per definire I'algebra sono due simholi distinti. In attn contest.i ve~gono L'algebra edefinita su un insieme, composto da due soli elementi, c~mvenzionalmente denotatilS con 0 e 1. . Le reti costruite a partire dalIe porte logiche possono essere descritte attraver- so un'algeora, detta algebra delle reti 0 algebra booleana, in ragione del fatto che essa deriva dalla "logica" del ealcolo delle proposizioni, introdotta nel secolo seorso ·dal maternatieo e filosofo Inglese George Boole. Proprio in virtu dell'origine di que- .: .s'ta algebra, Ie reti in questione vengono usualmente dette "reti logiche". Per una , loro trattazione si rimanda all'Appendice A. Qui di seguito vengono rapidamente ,:richi"arnati aleuJ.1i concetti essenziali. I componenti elementari dei sistemi digitali vengono detti "circuiti logici" 0, pili comunemente Hporte". In Figura 1.2, vengono dati i simboli delle tre porte logiche , fondamentali. Ovviamente gli ingressi e Ie uscite sonG segnali binari. cap~cita. di discriminarli. Si tratta, per esempio, di ri~onoscere se un da.to segnale ea un Hvello di tensione alto 0 basso, oyvero se ha un valore superiore b inferiore a Wla .. data soglia14 . In Figura 1.1 viene riportato l'andamento (idealizzato) di un segnale binario. ., • .. ) '. , - ' A' ' . ... . .
  • 37. ., , " ~j ,, , , ~! . , }~ ., ..~' .'/ i , . • l~ . ,,, ", 'Ji- •• -,)1 d ,'" ,;t '; _'] .'-: x;iD vomple- mentazione A B ~ 1 D se' e solo se x=l xiI se e solo se x~o Pradotto logico A B A-B D D D D I D D I I I D D I D I 1 1 1 I 1 1 1.4 Reti combinatorie e reti sequenziali Sull'insieme {O,l} vengono definite tre operazioni16 : • il prodott.o logico, indicato con il segno 1I.1I; • la somma logica, indicata con il segno "+"; • la complementazione 0 negazione, indicata il segno " - II Le tre operazioni corrispondono, rispettivamente, alle tre porte di Figura 1.2 e i simboli U+", ".'1 e 11-" sono intercambiabili con AND, OR e NOT. In Tabella 1.7 vengono riportate Ie tabelle di verita delle tre operazioni. La tabella di ventd di una operazione riporta it risultato dell'operazione stessa per tutte Ie possibili combinazioni dei valori degli operandi. Si definisce costante logica (0 booleana) un simbolo cui epermanefltemente asse- gnato uno dei due possibili valori presi dall'insieme {O, I}. Si definisce voriabile logica un simbolo che puo assumere indifferentemente uno dei due valori presi daB'insieme {D, I}. Se x euna vari~bile logica si ha: Una funzione puo essere espressa in forma algebrica 0 in forma tabellare. , usate differenti coppie di simboli come: vero/falso, V/F, T/F e altri. A ogni buon conto, l'uso dei simboli 0 e 1 risulta convcniente quando si tratta di impiegare Ie reti per realizzazione dcgli operatod dell'aritmetica binaria. 16Anche per gli operatori . e + valgono Ie stesse avvertenze date per i due simboli 0 c 1: niente hanna ache vedere can i corrispondenti operatori aritmetici. , Si definisce espressione logica una qualunque combinazione di variabili a costanti booleane legate fra lora dagli operatori logici fondarnentali. Si definisce junzione logica delle n variabili booleane x" ... ,Xn, la relazione {D,l}n -; {D;l} che associa un valore booleano a ciascuna delle 2R configurazioni possibili delle n variablli: y = f(x, ,... ,xn ) Si distinguono due categorie fondamentali di reti: Ie reti combinatorie e Ie reti sequenziali (CIr. Appendice A). Tabella 1.7 Ta.belle di verita delle tre operazioni fondamentali deWalgebra 24 Ca.pitolo 1
  • 38. 1 ) 25 Introduzione • smcrone , .. , Reti sequenziali Si ha una rete sequenziaJe quando l'uscita efunzionel oltre ch€ I dell'ingresso, anche della stato. Indicando con S = {Yl,Y2, .. ' ,Yd 10 stato correntE. ' della rete, l'uscita viene espressa come. 0 = 1(1,8). AHa funzione di uscita e necessario aggiungere 1a funzione di stato, espressa eome 81 = g(1,S), che lega Ie I _stato futuro alIa stato presente e all'ingresso. Una rete sequenziale ha memonG (limitata) della sequenza di ingresso. Gli elenienti di memoria binari vengonc. j detti flip-flop. 17Nclseguito useremo normalmente la pa.roia clock per denotare it segnale impulsivo, di frequenz, , fissa." impiegato per comandare reti sincrone. 1 ,.. Iri F~.g1lra 1.3 viene data una schematizzazione del modo di operare di una rete sequen- ziale 8incrona, 'L'intervallo di clock T viene diviao in due parti, Ll1 e Ll2 , Durante Ll1 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 Ll2 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" l i.loro .ingressi suI fronte di salita del clock e presentano il nuovo stato suI fronte d ·.' discesa del clock; sui fronte di salita del clock, i segnali in ingresso agli elementi d , ~em6da devono essere stabili. Naturalmente non e·necessario che i flip-flop siano 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 eche al sopraggiungere del clock i flip-flop abbiano ingressi stabili. Inoltre, -dopo.che i Rip-flop hanno presentato Ie loro uscite e, prima che sopraggiunga i1 nuovo > .cl?ckl deve esserci tempo per tutti i segnali, compresi quelli derivanti dalPingresso, d J prppagarsi e stabilizzarsi. . . . 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 lDgresSll 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 emodo naturale per descrivere il comportamento di un;; i ·r~~~:.;~.~uenziale.o Per gli approfondimenti necessari si rinvia all'Appendice A. .. " , . , ,'··:r:.' .,'" .,' ,. '. 1.4.1' Reti sequenziali • .. _::.-"'- ,. . " .~ -, . - ! ... , ..~- - '.-.- '- " ,.,. '.-. , , .. -"... , ;:.:}:, " ,- ..' --- ",,,;,-.~,".,,--, - . - ".... "'Reti combinatorie Si ha una rete combinatoria quando l'uscita eesclusivamente ) fuitzi6ne dell1ingresso, ovvero quando per una data configurazione dei segnali di ingresso risultano definiti i segnali di uscita. Indicando con I l'insieme dei I ,egnali di' ingresso e con 0 I'insieme dei segnali <Ii usdt~, owero, posta I = l {Xl ,X2,· ... ,Xn } eO = {Zl ,z21 ... ,Zm}, per una rete combrnatona, vale la relazlone. 0= f(l) ''l.'''l'''t!'->0' .;.... -- " ,;.~r'<;·;f'''~''''. :_ ."~'-.~"- . , :';'+•.J.!~;.-,-". -" - ::>~?;~~~:'-'~.- ~ ~ -- , _... . , ,:/ I: :.:0, ,'" " . .,;~: '" ,., ...,(iII' . j, ,,, , !~, .. .,,., .rl. ,..... •. c. .'~, ":.;'.' .•~", ~. , '; /' ii" .' ~' .' ,il ,l: -,.. • 1{ dl " ;t')'I' ;j '" ]1 . :,
  • 39. Figura 1.3 Schematizzazione delle operazioni delle reti sincrone. In Figura lA, a sinistral vengono mostrate due reti in cascata operanti con 10 stesso clock. In questc case, sul generico impulso, 130 rete a valle elabora il risultato delle elaborazioni effettuate dalla rete a monte nel periodo precedente. La scomposi- zione d.i una rete in due'o pili reti in cascata si dimostra utile quando 130 rete singola sarebbe trappe complessa. Cia compacta che l'esecuzione cii una data fUDzione (0 elabora.zione) richiede piu eli un cicIo di clock. E-facile convincersi, perc, che se si realizzassero Ie sottoreti seguendo il madello sulla destra in Figura 1.3, ogni variazione dell'ingresso primario si propagherebbe fino all'uscita, invalidando paffermazione pre- cedente. E percio necessaria "disaccoppiare" il funzionamenta delle sottoreti, nel senso ebe I'ingresso di una sottorete a valle sia determinato solo dalia sottorete a monte e non dall'ingresso primario. Cia si ottiene rendenda Ie uscite delle sottoreti funzioni del solo stato, come illustrato a destra in Figura 1.4. Si noti ebe can questa struttura, al generico periodo di clock la rete a valle vede come ingressi Ie uscite della rete a mante, calcolate nel clock precedente, mentre Ie variazioni degli ingressi primari vengoDo osservate solo dalla rete a monte. Di norma, il periodo minima del clock della rete scomposta in Bottoreti risulta pin breve di queUo ebe si avrebbe con un'unica rete, in quanto l'intervallo di tempo .:11 richiesto dalla logica combinatoria delle sottoreti risulta minore eli quanto richie- derebbe una sola rete. Ma il tempo complessivo per eseguire una data funzione e superiore scomponendo la rete in pili reti in cascata. lnfatti, sia T il periodo di - clock richiesto da una rete non ~composta e T' queUo richiesto dalle sottoreti (che , supporremo uguale, per semplicita). E ragionevole aspettarsi che la componente LJ1 di T' sia inferiore alia componente L11 di T, mentre non c'e ragione per cui L1~ sia diversi da .:12 . Ne consegue ebe T' < T, rna la rete scomposta opera in un tempo IT' ebe eli norma eminore di T. Questa ragionamento non deve far pensare che la scomposizione di una rete in piu reU operanti in cascata sia ,da escIudere. Anzitutto la scomposizione semplifica il progetto, in quanta cODsente di raggruppare e iso1are funzionalita. D'altra parte, la natura stessa dei processi elaborativi impone talvolta una ben definita successione di passi, per cui la soluzione schematizzata in Figura 1.4 risulta. comunque la piu conveniente. Possiamo elaboTare ulteriormente il modello di Figura 1.4 COIl il seguente Tagio- namento: il blocco LC, a valle degli elementi di memoria, puo essere accorpato al blocco LC in ingresso alFeventuale rete a vaile. Si ottiene, cosl, il modelIo I"iportato in Figura1.5, dove ora Ie uscite cOTrispoodono esattamente allo stato della (sotto)rete. ~~ I I 1,--_ - ,!i , " ., ,.' ~I' 11 jl 1' , ' " , " 'I: ,~~ , , ,,', 'I ; j ,1!' ~-l .< " " ( •• ,~, /,' JI ,~,,! ".,:, ,. '!I ", " I' "I' , " ',., <,., 'l '. ." , '." .,. ., ~, ~ Ji ,., , ~' .. , ~il " ." "'1. ,, " ~~ " •• :'-' ,.• 'F-I , .,. 'I' ~, " '1< 1"~1 :;/' "" ; [; '1 I, ",;: l' ." " I " " .", it ' . I. : " ~ i "" " "'1 ;~f ',! , ',. u' , , 11 • , ,I' ." I I~- Q LC ~ Z1_..... -"- ~, ~ "T ,I" :1 o T .~ ~ I Capitola 1 26 I ] I ) ) 1 1 I ] I I' 1
  • 40. 27 lntroduzione flNC~QNo LC 100__11 S LC " • , o.~ ~,t $IHC~OH~ LC f-. llo...,_" S " . ", ,.~ Figura 1.5 Madella di blocco componente di una rete sequenziale sinerona. L'uscita. eorrisponde allo stato della rete. I UH UH 0 ,~... tlllCllO<. f C'.C~ f 1.5 Registri Nella discussione precedente si e parlato di elementi di memoria in riferimento al solo stato della rete. Conviene generalizzare il concetto di memoria, In particolare, conviene introdurre il concetto di registro. Per registro si intende un insieme di n identici elementi di memoria (flip-flop), tutti comandati claUo stesso clock. I registri Bono componenti essenziali dei sistemi di elaborazione, non solo perche costituiscono i supporti che materializzano l'informazione nella macchilla., rna anehe perche essi permettono di partizionare 1a logica complessiva e di scomporla in blocchi serniindipendenti, accoppiati tramite registri. I registri possono differenziarsi per il tipo di flip-flop impiegatl, per il modo in cui essi vengono comandati, per Ie funzioni aggiuntive a queUe di contenitore dell'in~ formazione (per esempio, 10 scorrimento) ecc. Per i nostri usi facemo riferimento ailo schema di Figura1.6. nfunzionamento del registro eil seguente. Figura 1.4 Collegamento in cascata di clue reti sincrone eoma.nclate dalIo stesso clock e modella aggiornato della rete sequenziale, can uscita funzione solo della stato. I vincoli riguardanti la propagazione dei segnali, si semplificano ulteriormente. lnfatti se tutta la rete efatta di blocchi come quello di Figura 1.5, la rete combinatoria vede sicuramente ingressi stabili, Se ora si ipotizza che gli clementi di memoria operino sul fronte di discesa del clock, basta che if periodo sia lungo abbastanza. da consentire la propagazione attraverso 1a parte combinatoria e da lasciare il margine richiesto dai flip-flop per commutare. Piu sotto, una volta introdotti i registri, costruiremo un modello ulteriormente semplificato. , , ,
  • 41. , " 1.6 Trasferimento dell'informazione Figura 1.7 Madella di registro. Nel seguito si omette spesso eli indicare i segna.li Rin e Rout, in tal caso si deve assumere che essi sono sempre asseriti Figura 1.6 Struttura di un registro. Viene mostrato i1 dettaglio per il generico bit. 8i assume che i1 registro commuti suI honte di discesa del clock. Nello schema si esupposto che it segnale Rout abiliti l'uscita. in terzo stato. -~I .. j ill · " "" .. . :~ ¥ i .. '>j; ." .!, I'~ ,';" '" ':1 "'1 " .;, ,..,, ·'I ·'1 '2 .. .;::- ~~ .~., I" ",'1 ~ '~ : '" .;:. " 0> ; } , " ~ ~)' , :i t '::'~ ·;', "'~i ~' ...' '" , ~I " ,';:, " ,:1 .. .. (. '. .. ...' '. "' .. · , ',11 .. ,"I .' ";1" ~, ·~ , ., ii' '~J - .~ , Clock ~ 61 T +62 ~ ---.J I I L 'r T Cloak 61 I A2 ~ OUT IN Rout CIOO'---1: REG;TRO I Rin INi Rin '-.- '-. >ck , x • • Rout OUTi c, Una larga parte delle attivita che si svolgono alPinterno di un calcolatore consiste nel trasferimento dell1informazione tra registri. Per trasferire informazione da un registro all'altro occorre che l'uscita del regi· stro sorgente venga portata all'ingresso del registro di destinazione, Se si hanno m possibili registri sorgente e n possibili registri di destinazione1 DecorTe una rete di interconnessione che selettivamente coUeghi le sorgenti con Ie destinazioni. In linea di principio si dovrebbero aver.e m x n percorsi e una logica di selezione che permetta di • Si assume che il regist!o commuti suI fronte di discesa del clockI doe alIa fine del periodo, Prima del fronte del clock gli ingressi SR/JK devono essere stabili almeno per il cosiddetto set-up time e devono restare stabili dopa i1 £ronte per il cosiddetto hold time (si veda la discussione in proposito in Appendice A), • Se Rin edisasserito, l'ingresso ai singoli flip-flop e 00 e, dunque1 it registro si mantiene nello stato precedente;· se Rin easserito 10 stato di ogni flip-flop (it contenuto del registro) diventa quello corrispondente alPingresso INi. • n segnale Rout ha funzione di Output Enable de1l1uscita a tre stati Nel seguito useremo 10 schema di Figura 1.7. Quando i segnali Rin e Rout non vengono indicati si assume che essi siano sempre asseriti. 28 Capitola 1