| Indice
PREFAZIONE IX
Capitolo 1 INTRODUZIONE 1
1.1 Scopo del libro 1
1.2 Background 1
1.3 Argomenti trattati 1
1.4 Obiettivi del capitolo 1
1.5 Progresso tecnologico 2
1.6 Valutazione delle prestazioni 2
1.7 Speedup 5
1.8 Legge di Amdahl 5
1.9 Sommario 6
Problemi risolti 7
Capitolo 2 RAPPRESENTAZIONE DEI DATI E OPERAZIONI ARITMETICHE 15
2.1 Obiettivi 15
2.2 Dagli elettroni ai bit 15
2.3 Rappresentazione binaria dei numeri interi positivi 16
2.4 Operazioni aritmetiche con i numeri interi positivi 17
2.5 Numeri interi negativi 21
2.6 Numeri in virgola mobile 25
2.7 Sommario 31
Problemi risolti 32
Capitolo 3 ORGANIZZAZIONE DEI COMPUTER 41
3.1 Obiettivi 41
3.2 Introduzione 41
3.3 I programmi 42
3.4 I sistemi operativi 45
3.5 Organizzazione dei calcolatori 48
3.6 Sommario 51
Problemi risolti 51
Capitolo 4 MODELLI DI PROGRAMMAZIONE 57
4.1 Obiettivi 57
4.2 Introduzione 57
4.3 Tipi di istruzioni 58
4.4 Architetture a stack 63
4.5 Architetture a registri di uso generale 70
4.6 Confronto fra architetture a stack e architetture GPR 75
4.7 Utilizzare gli stack per implementare le chiamate di procedura 75
4.8 Sommario 78
Problemi risolti 78
Capitolo 5 PROGETTAZIONE DEI PROCESSORI 85
5.1 Obiettivi 85
5.2 Introduzione 85
5.3 Architettura del set di istruzioni 86
5.4 Microarchitettura di un processore 93
5.5 Sommario 96
Problemi risolti 97
Capitolo 6 PIPELINE 103
6.1 Obiettivi 103
6.2 Introduzione 103
6.3 Funzionamento in pipeline 104
6.4 Conflitti delle istruzioni 108
6.5 Predizione del tempo di esecuzione 113
6.6 Anticipazione del risultato 115
6.7 Sommario 119
Problemi risolti 119
Capitolo 7 PARALLELISMO DELLE ISTRUZIONI 131
7.1 Obiettivi 131
7.2 Introduzione 131
7.3 Che cos’e' il parallelismo delle istruzioni? 133
7.4 Limiti del parallelismo delle istruzioni 133
7.5 Processori superscalari 135
7.6 Esecuzione in ordine e fuori ordine 135
7.7 Rinomina dei registri 138
7.8 I processori VLIW 140
7.9 Tecniche di compilazione per il parallelismo 143
7.10 Sommario 146
Problemi risolti 147
Capitolo 8 SISTEMI DI MEMORIA 159
8.1 Obiettivi 159
8.2 Introduzione 159
8.3 Latenza, throughput e larghezza di banda 159
8.4 Organizzazione gerarchica della memoria 162
8.5 Tecnologie delle memorie 166
8.6 Sommario 172
Problemi risolti 173
Capitolo 9 LA MEMORIA CACHE 181
9.1 Obiettivi 181
9.2 Introduzione 181
9.3 Cache dei dati, cache delle istruzioni e cache unificata 181
9.4 Descrizione delle memorie cache 183
9.5 Capacita' della cache 183
9.6 Lunghezza della linea di una cache 183
9.7 Associativita' 185
9.8 Algoritmi di rimpiazzamento 188
9.9 Cache a scrittura immediata o differita 190
9.10 Implementazione della cache 193
9.11 Array dei tag 193
9.12 Logica di hit/miss 195
9.13 Array dei dati 195
9.14 Categorie di miss 195
9.15 Cache a piu' livelli 197
9.16 Sommario 197
Problemi risolti 199
Capitolo 10 LA MEMORIA VIRTUALE 209
10.1 Obiettivi 209
10.2 Introduzione 209
10.3 Traduzione degli indirizzi 210
10.4 Demand paging e swapping 212
10.5 Tabelle di mappatura delle pagine 213
10.6 Translation Lookaside Buffer 218
10.7 La protezione 221
10.8 Cache e memoria virtuale 223
10.9 Sommario 224
Problemi risolti 225
Capitolo 11 SOTTOSISTEMA DI I/O 231
11.1 Obiettivi 231
11.2 Introduzione 231
11.3 Bus di I/O 232
11.4 Interruzioni 234
11.5 Ingresso/uscita mappato in memoria 237
11.6 Accesso diretto alla memoria 239
11.7 Unita' di I/O 240
11.8 Unita' a disco 240
11.9 Sommario 245
Problemi risolti 245
Capitolo 12 SISTEMI A PIU' PROCESSORI 253
12.1 Obiettivi 253
12.2 Introduzione 253
12.3 Prestazioni dei sistemi a multiprocessore 253
12.4 Sistemi a piu' processori 256
12.5 Sistemi a trasferimento di messaggi 258
12.6 Sistemi a memoria condivisa 259
12.7 Confronto fra sistemi a memoria condivisa e a trasferimento di messaggi 265
12.8 Sommario 266
Problemi risolti 266
Indice analitico 273 |