Home    Novità    Ricerca   In offerta   Consigliati   Prossimi arrivi   Bestsellers   Software    CBT  
P.Iva 01029770490   [Ordini telefonici 0586 210919]  Ordini rapidi 
Ricerca Veloce   per Titolo o ISBN  [Mailing delle novità]   [Servizio di CallBack]  
  Argomenti 

  Applicazioni
  CAD
  Certificazione e formazione
  Commercio elettronico
  Cultura Informatica
  Database
  Dizionari
  Elettronica
  Enterprise
  Grafica
  Hardware
  Internet
  Legislazione informatica
  Multimedia
  Progettazione WEB
  Programmazione
  Reti e telecomunicazioni
  Sicurezza
  Sistemi operativi
  Tecnologia e societa'
  Universita' e ricerca
Universita' e ricercaArchitetture degli elaboratori



Architettura e organizzazione dei calcolatori elettronici - Strutture avanzate
EditoreMc Graw Hill
AutoreBucci Giacomo
CollanaIstruzione scientifica
Pagine366
Volumi1
LivelloAvanzato
LinguaItaliano
Data pubblicazione01 - 2006
ISBN8838663041


 Prezzo di copertina 
 Euro 27,00  

 Presentazione       Indice      

Indice
Prefazione
Unità di misura
1) La memoria cache
2) Gestione della memoria, memoria virtuale, protezione
3) La CPU
4) La pipeline
5) Esecuzione fuori ordine
Bibliografia
Sigle usate nel testo
Indice analitico


Indice
Prefazione xi
Unit`a di misura xiii
1 La memoria cache 1
1.1 Tempo di accesso . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Funzionamento . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Organizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Cache a mappatura diretta . . . . . . . . . . . . . . . . . . 4
1.2.2 Cache completamente associativa . . . . . . . . . . . . . . 7
1.2.3 Cache parzialmente associativa . . . . . . . . . . . . . . . 8
1.3 Il problema della scrittura . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.1 Miss in scrittura . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.2 Hit in scrittura . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.3 Lo stato della linea di cache . . . . . . . . . . . . . . . . . 11
1.4 Algoritmi di rimpiazzamento delle linee di cache . . . . . . . . . . 13
1.4.1 Sostituzione a caso . . . . . . . . . . . . . . . . . . . . . . 14
1.4.2 Rimpiazzamento con algoritmi LRU . . . . . . . . . . . . . 14
1.4.3 La tecnica FIFO . . . . . . . . . . . . . . . . . . . . . . . 18
1.5 Analisi delle prestazioni . . . . . . . . . . . . . . . . . . . . . . . 20
1.5.1 Le cause di fallimento nell’accesso alla cache . . . . . . . . 22
1.6 Elementi che influenzano le prestazioni . . . . . . . . . . . . . . . 22
1.6.1 Dimensione della cache . . . . . . . . . . . . . . . . . . . 23
1.6.2 Dimensione della linea . . . . . . . . . . . . . . . . . . . . 24
1.6.3 Associativit`a . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.6.4 Algoritmi di rimpiazzamento . . . . . . . . . . . . . . . . . 26
1.6.5 Cache divisa o unificata . . . . . . . . . . . . . . . . . . . 27
1.6.6 Aggiornamento della memoria centrale . . . . . . . . . . . 28
1.6.7 Cache multilivello . . . . . . . . . . . . . . . . . . . . . . 29
1.6.8 Posizionamento della cache . . . . . . . . . . . . . . . . . 30
1.6.9 Multiprogrammazione . . . . . . . . . . . . . . . . . . . . 31
1.7 Sistemi a multiprocessore: coerenza della cache . . . . . . . . . . . 32
1.7.1 Coerenza . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.7.2 Protocolli per il mantenimento della coerenza . . . . . . . . 36
1.7.3 Protocolli snoopy . . . . . . . . . . . . . . . . . . . . . . . 39
1.8 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2 Gestione della memoria, memoria virtuale, protezione 53
2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.1.1 Il sistema operativo . . . . . . . . . . . . . . . . . . . . . . 54
2.1.2 Gestione della memoria . . . . . . . . . . . . . . . . . . . 56
2.1.3 Programmi e processi . . . . . . . . . . . . . . . . . . . . . 58
2.1.4 La protezione . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.1.5 La memoria virtuale . . . . . . . . . . . . . . . . . . . . . 61
2.2 Paginazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.2.1 Il Translation Lookaside Buffer . . . . . . . . . . . . . . . 66
2.2.2 Dimensione della pagina . . . . . . . . . . . . . . . . . . . 68
2.3 Gestione della PMT . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.3.1 Memoria virtuale e multitasking . . . . . . . . . . . . . . . 70
2.3.2 Tabella in forma gerarchica . . . . . . . . . . . . . . . . . . 72
2.4 Tabella delle pagine invertita . . . . . . . . . . . . . . . . . . . . . 74
2.4.1 La codifica hash . . . . . . . . . . . . . . . . . . . . . . . 75
2.4.2 Gestione della tabella IPT . . . . . . . . . . . . . . . . . . 76
2.4.3 Il problema delle catene troppo lunghe . . . . . . . . . . . . 82
2.5 La segmentazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
2.6 Segmentazione e paginazione . . . . . . . . . . . . . . . . . . . . . 86
2.7 Approfondimenti sulla gestione della memoria virtuale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
2.7.1 Gestione della paginazione e della segmentazione . . . . . . 87
2.7.2 Algoritmi di rimpiazzamento . . . . . . . . . . . . . . . . . 89
2.7.3 Occupazione della memoria . . . . . . . . . . . . . . . . . 91
2.8 Caso di studio: la memoria virtuale nell’architettura £86 . . . . . . . . . . . . . . 92
2.8.1 Indirizzamento in modo reale . . . . . . . . . . . . . . . . 93
2.8.2 Indirizzamento in modo protetto . . . . . . . . . . . . . . . 93
2.8.3 Tabelle dei descrittori di segmento . . . . . . . . . . . . . . 99
2.8.4 Gestione della memoria fisica . . . . . . . . . . . . . . . . 101
2.8.5 Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
2.8.6 Segmentazione e paginazione . . . . . . . . . . . . . . . . 104
2.8.7 Descrittori di pagina . . . . . . . . . . . . . . . . . . . . . 107
2.9 Caso di studio: la memoria virtuale nell’architettura PowerPC . . . 108
2.9.1 La IPT del PowerPC: la HPT . . . . . . . . . . . . . . . . . 108
2.10 Protezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
2.10.1 Protezione nei sistemi senza memoria virtuale . . . . . . . . 112
2.10.2 Protezione nei sistemi a memoria virtuale . . . . . . . . . . 115
2.10.3 Protezione a livelli . . . . . . . . . . . . . . . . . . . . . . 116
2.11 La protezione nell’architettura £86 . . . . . . . . . . . . . . . . . . 118
2.11.1 Criteri generali . . . . . . . . . . . . . . . . . . . . . . . . 119
2.11.2 I descrittori e la loro funzione . . . . . . . . . . . . . . . . 124
2.11.3 Criteri per il controllo dei privilegi . . . . . . . . . . . . . . 126
2.11.4 La protezione di pagina . . . . . . . . . . . . . . . . . . . . 128
2.12 Appendice A: Dettagli circa la protezione nell’architettura Intel . . . . . 129
2.12.1 Formato del TSS . . . . . . . . . . . . . . . . . . . . . . . 129
2.12.2 Commutazione fra processi . . . . . . . . . . . . . . . . . . 130
2.12.3 Risposta alle interruzioni . . . . . . . . . . . . . . . . . . . 132
2.12.4 Controllo del livello di privilegio . . . . . . . . . . . . . . . 133
2.12.5 Altri aspetti legati alla protezione a livelli . . . . . . . . . . 137
2.13 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

3 La CPU 143
3.1 Architettura di riferimento . . . . . . . . . . . . . . . . . . . . . . 143
3.2 Repertorio istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . 145
3.2.1 Istruzioni aritmetiche . . . . . . . . . . . . . . . . . . . . . 145
3.2.2 Istruzioni che fanno riferimento alla memoria . . . . . . . . 146
3.2.3 Istruzioni per il trasferimento del controllo . . . . . . . . . 148
3.2.4 Istruzioni di controllo del processore . . . . . . . . . . . . . 151
3.2.5 Istruzione di “non operazione” . . . . . . . . . . . . . . . . 151
3.2.6 Esempi di istruzioni . . . . . . . . . . . . . . . . . . . . . 151
3.2.7 Discussione . . . . . . . . . . . . . . . . . . . . . . . . . . 152
3.3 Blocchi componenti . . . . . . . . . . . . . . . . . . . . . . . . . . 153
3.3.1 Il banco dei registri . . . . . . . . . . . . . . . . . . . . . . 153
3.3.2 ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
3.3.3 Memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
3.4 Sviluppo di CPU1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
3.4.1 Assunzioni . . . . . . . . . . . . . . . . . . . . . . . . . . 156
3.4.2 Schematizzazione del processo di esecuzione . . . . . . . . 159
3.4.3 Sezioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
3.4.4 Ricomposizione (provvisoria) . . . . . . . . . . . . . . . . 168
3.5 Considerazioni sulla realizzazione a singolo periodo di clock . . .. . 170
3.5.1 Ricomposizione finale di CPU1 . . . . . . . . . . . . . . . 172
3.6 CPU1 con memoria unificata . . . . . . . . . . . . . . . . . . . . . 172
3.7 Sviluppo di CPU2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.7.1 Fase di prelievo delle istruzioni, IF . . . . . . . . . . . . . . 177
3.7.2 Fase di decodifica delle istruzioni, ID . . . . . . . . . . . . 178
3.7.3 Fase di esecuzione, EX . . . . . . . . . . . . . . . . . . . . 179
3.7.4 Fase di memoria, ME . . . . . . . . . . . . . . . . . . . . . 181
3.7.5 Fase di scrittura del registro di destinazione, WB . . . . . . 182
3.7.6 Ricomposizione . . . . . . . . . . . . . . . . . . . . . . . 182
3.8 Sviluppo della logica di controllo . . . . . . . . . . . . . . . . . . 183
3.8.1 Comandi e selettori . . . . . . . . . . . . . . . . . . . . . . 183
3.8.2 Stati comuni a tutte le istruzioni . . . . . . . . . . . . . . . 187
3.8.3 Stati dipendenti dal tipo di istruzione . . . . . . . . . . . . 187
3.8.4 Espressioni logiche per comandi e selettori . . . . . . . . . 190
3.9 Considerazioni sulla realizzazione multiciclo . . . . . . . . . . . . 192
3.9.1 Miglioramenti a CPU2 . . . . . . . . . . . . . . . . . . . . 194
3.10 Le interruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
3.11 Interruzioni su CPU2 . . . . . . . . . . . . . . . . . . . . . . . . . 200
3.11.1 Assunzioni preliminari . . . . . . . . . . . . . . . . . . . . 200
3.11.2 Interruzioni software . . . . . . . . . . . . . . . . . . . . . 201
3.11.3 Interruzioni esterne . . . . . . . . . . . . . . . . . . . . . . 203
3.11.4 Eccezioni . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
3.11.5 Istruzione RFI . . . . . . . . . . . . . . . . . . . . . . . . 209
3.11.6 Discussione . . . . . . . . . . . . . . . . . . . . . . . . . . 209
3.11.7 Interruzioni annidate . . . . . . . . . . . . . . . . . . . . . 210
3.12 Appendice I – Notazione . . . . . . . . . . . . . . . . . . . . . . . 212
3.13 Appendice II – Trattamento di semiparole e byte . . . . . . . . . . . 212
3.14 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

4 La pipeline 219
4.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
4.2 Prestazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
4.2.1 Indici delle prestazioni . . . . . . . . . . . . . . . . . . . . 222
4.2.2 Considerazioni . . . . . . . . . . . . . . . . . . . . . . . . 223
4.3 Esecuzione in pipeline . . . . . . . . . . . . . . . . . . . . . . . . 225
4.3.1 Propagazione dei segnali . . . . . . . . . . . . . . . . . . . 228
4.3.2 Riesame di alcuni blocchi componenti . . . . . . . . . . . . 229
4.3.3 La convenzione usata negli schemi CAD . . . . . . . . . . 231
4.4 Svolgimento delle differenti (classi di) istruzioni . . . . . . . . . . . 232
4.4.1 Istruzioni aritmetiche (ARITM) . . . . . . . . . . . . . . . 233
4.4.2 Istruzione LOAD (LD) . . . . . . . . . . . . . . . . . . . . 235
4.4.3 Istruzione STORE (ST) . . . . . . . . . . . . . . . . . . . . 237
4.4.4 Istruzione di salto incondizionato con collegamento (JAL) . 239
4.4.5 Istruzioni di salto condizionato (JE/JS) . . . . . . . . . . . 241
4.4.6 Istruzioni di salto incondizionato (JMP) . . . . . . . . . . . 243
4.4.7 Istruzioni di salto relativo e ritorno da interruzione (JR/RFI) 245
4.4.8 Istruzioni di non operazione (NOP) . . . . . . . . . . . . . 245
4.5 I segnali dell’Unit`a di Controllo . . . . . . . . . . . . . . . . . . . 247
4.5.1 Il Controllore dell’ingresso al Program Counter . . . . . . . 247
4.5.2 Riassunto dei segnali . . . . . . . . . . . . . . . . . . . . . 249
4.6 Conflitti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
4.6.1 Conflitti strutturali . . . . . . . . . . . . . . . . . . . . . . 250
4.7 Conflitti dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
4.7.1 Sovrapposizione . . . . . . . . . . . . . . . . . . . . . . . 253
4.7.2 Riconoscimento del conflitto sui dati . . . . . . . . . . . . . 254
4.7.3 Soluzione dei conflitti dati tramite stallo . . . . . . . . . . . 257
4.7.4 Anticipazione . . . . . . . . . . . . . . . . . . . . . . . . . 259
4.7.5 Riordinamento al tempo di compilazione . . . . . . . . . . 262
4.8 Conflitti di controllo . . . . . . . . . . . . . . . . . . . . . . . . . 265
4.8.1 Conflitti per salti incondizionati . . . . . . . . . . . . . . . 265
4.8.2 Eliminazione del conflitto tramite riordinamento al tempo di compilazione (salti incondizionati) . . 266
4.8.3 Conflitti per le diramazioni . . . . . . . . . . . . . . . . . . 267
4.8.4 Riordinamento al tempo di compilazione (diramazioni) . . . 268
4.8.5 Scelta architetturale per il trattamento dei conflitti di controllo . . . . 271
4.9 Il trattamento delle interruzioni in pipeline . . . . . . . . . . . . . . 275
4.9.1 Il concetto di interruzione precisa . . . . . . . . . . . . . . 275
4.9.2 Tipi di interruzioni e aspetti architetturali . . . . . . . . . . 276
4.9.3 L’istruzione INT . . . . . . . . . . . . . . . . . . . . . . . 278
4.9.4 Interruzioni esterne . . . . . . . . . . . . . . . . . . . . . . 281
4.9.5 Eccezioni . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
4.9.6 Considerazioni finali sul sistema di interruzione . . . . . . . 288
4.9.7 Il blocco ICH . . . . . . . . . . . . . . . . . . . . . . . . . 289
4.10 Svolgimento delle rimanenti istruzioni del repertorio .. . . . 292
4.10.1 L’istruzione RFI . . . . . . . . . . . . . . . . . . . . . . . 292
4.10.2 L’istruzione STI . . . . . . . . . . . . . . . . . . . . . . . 292
4.10.3 L’istruzione CLI . . . . . . . . . . . . . . . . . . . . . . . 293
4.11 Il progetto dell’Unit`a di Controllo . . . . . . . . . . . . . . . . . . 293
4.11.1 La scelta della codifica dei segnali . . . . . . . . . . . . . . 295
4.12 Appendice A1: Predizione dinamica delle diramazioni . . . 296
4.12.1 Tabella di predizione delle diramazioni . . . . . . . . . . . 296
4.12.2 Statistica di esecuzione e accuratezza della predizione . . . 297
4.12.3 Branch Target Buffer . . . . . . . . . . . . . . . . . . . . . 299
4.12.4 Prestazioni del BTB . . . . . . . . . . . . . . . . . . . . . 302
4.12.5 Ottimizzazione del BTB . . . . . . . . . . . . . . . . . . . 303
4.13 Appendice A2: L’unit`a per la predizione dei salti condizionati del Pentium . . 304
4.14 Appendice A3: Predittore adattativo a due livelli . . . . . . . . . . . 306
4.14.1 Realizzazioni alternative del predittore a due livelli . . . . . 308
4.15 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

5 Esecuzione fuori ordine 317
5.1 Pipeline con unit`a funzionali multiciclo . . . . . . . . . . . . . . . 317
5.2 Esecuzione in parallelo . . . . . . . . . . . . . . . . . . . . . . . . 319
5.2.1 Latenza . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
5.2.2 Dipendenze dati . . . . . . . . . . . . . . . . . . . . . . . 320
5.2.3 Flusso di controllo . . . . . . . . . . . . . . . . . . . . . . 321
5.2.4 Gestione delle prenotazioni del bus dei risultati . . . . . . . 322
5.3 Completamento in ordine . . . . . . . . . . . . . . . . . . . . . . 323
5.3.1 Completamento in ordine rispetto ai registri . . . . . . . . . 324
5.3.2 Completamento in ordine rispetto alla memoria . . . . . . . 325
5.4 Metodo del buffer di riordinamento . . . . . . . . . . . . . . . . . . 326
5.5 Metodo dell’history buffer . . . . . . . . . . . . . . . . . . . . . . 333
5.6 Gestione dei conflitti di controllo in pipeline con unit`a funzionali multiciclo .. . 335
o coerente nel caso del completamento in ordine delle istruzioni . . . 336
5.6.2 Stato coerente in presenza di ROB . . . . . . . . . . . . . . 336
5.6.3 Ripristino dello stato coerente con history buffer . . . . . . 336
5.7 Appendice A - Esecuzione fuori ordine nell’architettura PowerPC . . 337
5.7.1 La pipeline del 604 . . . . . . . . . . . . . . . . . . . . . . 340
5.7.2 Un esempio di flusso istruzioni per il 604 . . . . . . . . . . 341
5.8 Appendice B - Esecuzione fuori ordine nell’architettura P6 . . . 345
5.8.1 Il principio di funzionamento . . . . . . . . . . . . . . . . . 347
5.8.2 La pipeline e l’esecuzione dinamica . . . . . . . . . . . . . 348
5.8.3 Ridenominazione dei registri . . . . . . . . . . . . . . . . . 352
5.8.4 Considerazioni . . . . . . . . . . . . . . . . . . . . . . . . 353
5.9 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

Bibliografia 357
Sigle usate nel testo 361
Indice analitico 363


  Login 

  Non ricordo la password
  Nuovo account
  Cliente 

  Il carrello

 Carrello 

  Informazioni 

  Contatti
  Qualità del servizio
  Costi e tempi di consegna
  Modalità di pagamento
  Prezzi
  Sconti
  Privacy