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
HardwareArchitetture



Architetture dei calcolatori elettronici
EditoreMc Graw Hill
AutoreBucci Giacomo
CollanaIstruzione scientifica
Pagine740
Volumi1
LivelloIntermedio-Avanzato
LinguaItaliano
Data pubblicazione03 - 2001
ISBN883860889x


 Prezzo di copertina 
 Euro 41,00  

 Presentazione       Indice      

Indice

Prefazione vii

1 Introduzione 1
1.1 Qualche cenno storico 1
1.1.1 I microprocessori 3
1.1.2 Le architetture RISC 6
1.2 Rappresentazione dell’informazione 8
1.2.1 Sistemi di numerazione 8
1.2.2 Conversione di base 10
1.2.3 Aritmetica binaria 11
1.2.4 Numeri negativi 11
1.2.5 Numeri frazionari 12
1.2.6 Numeri in virgola mobile 13
1.2.7 Informazioni di carattere alfanumerico 22
1.3 Logica dei sistemi digitali 22
1.3.1 L’algebra delle reti 23
1.4 Reti combinatorie e reti sequenziali 24
1.4.1 Reti sequenziali sincrone 25
1.5 Registri 27
1.6 Trasferimento dell’informazione 28
1.7 Unita' aritmetiche e logiche 29
1.7.1 Esempio di costruzione di un’unita' aritmetica e logica 32
1.8 Sistemi digitali 34
1.8.1 Un modello di rete a stadi 35
1.8.2 Alcuni blocchi componenti i sistemi digitali 36
1.9 Questioni di notazione 37
1.9.1 Notazione per i segnali 37
1.10 Esercizi 39

2 Elementi architetturali di base 41
2.1 Struttura dei calcolatori 41
2.1.1 Il sistema CPU-memoria 44
2.2 La CPU 45
2.3 Primo esame del funzionamento della CPU 47
2.3.1 Esecuzione di un’istruzione 48
2.3.2 Due approcci per la progettazione dell’unita' di controllo 51
2.3.3 Cablata o microprogrammata? 55
2.4 Prestazioni della CPU 58
2.4.1 La valutazione delle prestazioni 59
2.4.2 Popolari indici di prestazioni 61
2.5 Il repertorio delle istruzioni 62
2.5.1 Repertorio stile RISC 62
2.5.2 Repertorio stile CISC 64
2.6 Criteri di classificazione delle architetture 65
2.7 Indirizzamento 67
2.7.1 Ordinamento 68
2.7.2 Allineamento 69
2.7.3 Indirizzamento dei dati 70
2.7.4 Indirizzamento nei trasferimenti del controllo 74
2.8 Esercizi 74

3 La memoria principale 77
3.1 Le memorie RAM 77
3.1.1 Parametri di valutazione 78
3.2 Le memorie statiche 78
3.2.1 Un esempio di memoria statica 79
3.3 Le memorie dinamiche 81
3.3.1 Un esempio di memoria DRAM 83
3.3.2 L’interfacciamento con il processore 84
3.4 Il dimensionamento delle alimentazioni di un sistema di memoria 85
3.5 Organizzazione 86
3.5.1 Interlacciamento 88
3.6 Relazione tra la velocita' della CPU e la velocita' della memoria 89
3.6.1 Caso di studio: evoluzione della velocita' della famiglia 8086 in rapporto a quella delle DRAM 89
3.7 Localita', organizzazione gerarchica 92
3.7.1 Localita' 93
3.7.2 Gerarchia 93
3.7.3 Un esempio di gerarchia 95
3.8 Rassegna sui principali tipi di DRAM commerciali 96
3.8.1 DRAM con accesso a pagina 96
3.8.2 Cached DRAM 97
3.8.3 SDRAM (Synchronous Dinamic Random Access Memory) - DRAM sincrone 97
3.8.4 Moduli commerciali 98
3.8.5 Controllo di errore 99
3.9 Esercizi 100

4 Il sottosistema di ingresso/uscita 101
4.1 Elementi di base del sottosistema di ingresso/uscita 101
4.2 Gestione a controllo di programma 106
4.2.1 Il sottoprogramma di gestione 106
4.3 Gestione sotto controllo di interruzione 108
4.4 Esempio semplificato di sistema di interruzione 108
4.4.1 Esempio di routine di servizio 109
4.4.2 Le interruzioni non mascherabili 113
4.5 Interruzione da parte di pi`u periferiche 114
4.5.1 Discriminazione da programma 114
4.6 Interruzioni vettorizzate 116
4.6.1 Linee di richiesta indipendenti 116
4.6.2 Vettorizzazione esterna 118
4.7 Interruzioni annidate 122
4.8 Interruzioni vettorizzate con daisy chain 123
4.8.1 Daisy chain asincrona 123
4.8.2 Daisy chain sincrona 127
4.9 Esempio di controllore di interruzioni: il dispositivo 8259A 130
4.9.1 Vettorizzazione delle interruzioni 132
4.9.2 Mascheramento 132
4.9.3 Priorita' 132
4.9.4 Riconoscimento di livelli o dei fronti 133
4.9.5 Schema di esecuzione della routine di servizio 134
4.9.6 Esempio di trattamento di una sequenza di interruzioni nidificate135
4.10 L’accesso diretto alla memoria 137
4.10.1 Struttura e funzionamento del controllore DMA 138
4.10.2 Modalita' di trasferimento singolo 139
4.10.3 Modalita' di trasferimento a blocchi 140
4.11 Un esempio di DMAC: il dispositivo Intel 8237A 141
4.11.1 Funzionamento 142
4.12 Esercizi 144

5 La CPU 159
5.1 Notazione 159
5.2 Architettura di riferimento della CPU 160
5.3 Blocchi componenti 163
5.3.1 I registri di uso generale 163
5.3.2 ALU 163
5.3.3 Memoria 164
5.4 Sviluppo di CPU1 164
5.4.1 Sezione di prelievo delle istruzioni 166
5.4.2 Sezione di decodifica dell’istruzione 168
5.4.3 Sezione ALU 169
5.4.4 La sezione di memoria dati e scrittura nel registro di destinazione170
5.4.5 Ricomposizione (provvisoria) 173
5.5 Considerazioni sulla realizzazione a singolo periodo di clock 173
5.5.1 Ricomposizione finale di CPU1 175
5.6 CPU1 con memoria unificata 175
5.7 Sviluppo di CPU2 179
5.7.1 Fase di prelievo delle istruzioni, IF 180
5.7.2 Fase di decodifica delle istruzioni, ID 180
5.7.3 Fase di esecuzione, EX 182
5.7.4 Fase di memoria, ME 182
5.7.5 Fase di scrittura del registro di destinazione, WB 183
5.7.6 Ricomposizione 183
5.7.7 Segnali di comando 183
5.7.8 Stati comuni a tutte le istruzioni 186
5.7.9 Stati dipendenti dal tipo di istruzione 188
5.8 Espressioni logiche per comandi e selettori 190
5.9 Considerazioni sulla realizzazione multiciclo 192
5.9.1 Miglioramenti a CPU2 194
5.10 Le interruzioni 196
5.10.1 Classificazione 196
5.10.2 I problemi per il trattamento delle interruzioni 197
5.11 Interruzioni su CPU2 198
5.11.1 Considerazioni 199
5.11.2 Miglioramenti 202
5.11.3 Interruzioni vettorizzate 204
5.11.4 Atomicita' dell’interruzione 204
5.12 Esercizi 205

6 La pipeline 209
6.1 Introduzione 210
6.2 Prestazioni 211
6.2.1 Indici delle prestazioni 211
6.2.2 Considerazioni 213
6.3 Alcune estensioni al repertorio delle istruzioni 214
6.4 Esecuzione in pipeline 219
6.5 Le fasi di esecuzione 222
6.5.1 Istruzioni aritmetiche 223
6.5.2 Istruzioni di Load/Store 225
6.5.3 Istruzioni di salto 227
6.5.4 Sintesi del contenuto dei campi EX, ME, WB 230
6.6 L’unita' di controllo 232
6.6.1 Realizzazione dell’unita' di controllo 236
6.7 Conflitti 236
6.7.1 Conflitti strutturali 238
6.8 Conflitti dati 238
6.8.1 Tecniche per la soluzione dei conflitti dati 239
6.8.2 Riconoscimento del conflitto dati 240
6.8.3 Soluzione dei conflitti tramite stallo 242
6.8.4 Soluzione dei conflitti sui dati tramite anticipazione 244
6.8.5 I conflitti per le istruzioni load 246
6.8.6 Sovrapposizione 248
6.8.7 Riordinamento 249
6.9 Conflitti di controllo 250
6.9.1 Conflitti per salti (incondizionati) 251
6.9.2 Conflitti per le diramazioni 252
6.9.3 La soluzione software: le diramazioni ritardate 254
6.10 Predizione dinamica delle diramazioni 256
6.10.1 Tabella di predizione delle diramazioni 257
6.10.2 Statistica di esecuzione e accuratezza della predizione 258
6.11 Branch Target Buffer 259
6.11.1 Prestazioni del BTB 261
6.11.2 Ottimizzazione del BTB 263
6.11.3 L’unita' per la predizione dei salti condizionati del Pentium 264
6.12 Predittore adattativo a due livelli 266
6.12.1 Realizzazioni alternative del predittore a due livelli 267
6.13 Le interruzioni 270
6.13.1 Il concetto di interruzione precisa 270
6.13.2 Interruzioni esterne 272
6.14 Eccezioni 275
6.14.1 Eccezioni e interruzioni esterne 277
6.15 Esercizi 278

7 La memoria cache 283
7.1 Funzionamento della memoria cache 283
7.1.1 Cache a mappatura diretta 285
7.1.2 Cache completamente associativa 287
7.1.3 Cache parzialmente associativa 288
7.1.4 Il problema della scrittura 289
7.1.5 Lo stato della linea di cache 291
7.2 Algoritmi di rimpiazzamento delle linee di cache 292
7.2.1 Sostituzione a caso 293
7.2.2 Rimpiazzamenti con algoritmi LRU 294
7.2.3 La tecnica FIFO 298
7.3 Analisi delle prestazioni 300
7.3.1 Le cause di fallimento nell’accesso alla cache 301
7.4 Elementi che influenzano le prestazioni 302
7.4.1 Dimensione della cache 303
7.4.2 Dimensione della linea 303
7.4.3 Associativita' 303
7.4.4 Algoritmi di rimpiazzamento 306
7.4.5 Cache divisa o unificata 307
7.4.6 Aggiornamento della memoria centrale 307
7.4.7 Cache multilivello 308
7.4.8 Posizionamento della cache 309
7.4.9 Multiprogrammazione 311
7.5 Sistemi a multiprocessore: coerenza della cache 311
7.5.1 Coerenza 313
7.5.2 Protocolli per il mantenimento della coerenza 316
7.5.3 Protocolli snoopy 318
7.6 Esercizi 327

8 La memoria virtuale 331
8.1 Introduzione 331
8.2 Sistemi di paginazione 334
8.2.1 Dimensione della pagina 337
8.2.2 Il Translation Lookaside Buffer 338
8.2.3 Gestione della tabella 340
8.2.4 Tabella delle pagine gerarchica 343
8.3 Tabella delle pagine invertita 346
8.3.1 La codifica hash 347
8.3.2 Gestione della tabella IPT 347
8.3.3 Il problema delle catene troppo lunghe 353
8.4 La segmentazione 355
8.5 Segmentazione e paginazione 357
8.6 Approfondimenti sulla gestione della memoria virtuale 357
8.6.1 Gestione della paginazione e della segmentazione 357
8.6.2 Algoritmi di rimpiazzamento 359
8.6.3 Occupazione della memoria 362
8.7 Esempio di memoria paginata: la memoria del microprocessore 68030 363
8.7.1 Traduzione degli indirizzi 364
8.7.2 La tabella di traduzione degli indirizzi 365
8.7.3 Il TLB 371
8.7.4 Su alcune caratteristiche specifiche della MMU 372
8.7.5 La protezione 375
8.7.6 Considerazioni sulla memoria virtuale del micro 68030 376
8.8 Esempio di memoria virtuale segmentata: la memoria virtuale del 286 377
8.8.1 Indirizzamento in modo reale 377
8.8.2 Indirizzamento in modo virtuale 377
8.8.3 Tabelle dei descrittori di segmento 381
8.8.4 Gestione della memoria fisica 384
8.8.5 Alias 385
8.9 Esempio di memoria virtuale segmentata e paginata: la memoria virtuale del Pentium 385
8.9.1 La segmentazione del 386 e modelli successivi 388
8.9.2 Descrittori di pagina 390
8.10 Esempio di memoria con tabella di pagine invertita: la memoria del PowerPC 392
8.10.1 La IPT del PowerPC: la HPT 392
8.11 Esercizi 396

9 La protezione 399
9.1 La protezione nei sistemi Intel 399
9.2 I descrittori e la loro funzione 400
9.2.1 Descrittori di segmenti di codice e di dati (S=1) 401
9.2.2 Descrittori di sistema (S=0) 403
9.3 Trattamento delle interruzioni in modo protetto 404
9.3.1 La tabella dei descrittori di interruzione 405
9.4 La gestione dei processi in modo protetto 407
9.4.1 Il segmento di stato di un processo 408
9.4.2 Commutazione fra processi 410
9.5 La protezione: criteri generali 412
9.5.1 Verifica del tipo di accesso ai segmenti 412
9.5.2 Livelli di privilegio 413
9.5.3 Criteri generali per il controllo dei privilegi 414
9.5.4 I livelli controllati 415
9.6 Protezione negli accessi 417
9.6.1 Protezione nell’accesso ai dati 417
9.6.2 Protezione nei passaggi del controllo 417
9.6.3 Protezione nella commutazione fra processi 420
9.7 Altri aspetti legati alla protezione a livelli 421
9.7.1 Variazione del livello di privilegio 421
9.7.2 L’attacco con il cavallo di Troia 422
9.7.3 Istruzioni privilegiate 423
9.8 La protezione di pagina 423

10 Esecuzione fuori ordine 425
10.1 Pipeline con unita' funzionali multiciclo 425
10.2 Esecuzione fuori ordine 427
10.2.1 Gestione delle prenotazioni del bus dei risultati 429
10.3 Completamento in ordine 432
10.3.1 Completamento in ordine rispetto ai registri 432
10.3.2 Completamento in ordine rispetto alla memoria 433
10.4 Metodo del buffer di riordinamento 434
10.4.1 Uso di ROB e di percorsi di bypass 438
10.5 Metodo dell’history buffer 439
10.6 Gestione dei conflitti di controllo in pipeline con unita' funzionali multiciclo 441
10.6.1 Stato coerente nel caso del completamento in ordine delle istruzioni442
10.6.2 Ripristino dello stato coerente in presenza di ROB 443
10.6.3 Ripristino dello stato coerente con history buffer 444

11 BUS di sistema 447
11.1 Un po’ di storia 447
11.2 La standardizzazione 452
11.2.1 Operazioni sul bus 455
11.3 Allocazione del bus 458
11.3.1 Arbitraggio distribuito con schema daisy chain 459
11.3.2 Arbitraggio centralizzato con schema parallelo 462
11.3.3 Arbitraggio distribuito con schema parallelo 463
11.3.4 Arbitraggio centralizzato con schema daisy chain 465
11.4 Esempio di progetto della logica di arbitraggio distribuita in daisy chain 466
11.5 Organizzazione dei moderni calcolatori personali 471
11.5.1 Il chipset 474
11.5.2 Chipset per la classe Pentium 475
11.5.3 Chipset per la classe Pentium III 477
11.6 Il bus SCSI 479
11.6.1 Principi di funzionamento 479
11.6.2 I segnali SCSI 481
11.6.3 Fasi del bus 482
11.6.4 Un esempio di operazione sul bus SCSI 485
11.6.5 Conclusioni 488
11.7 Il bus PCI 488
11.7.1 Principi di funzionamento 488
11.7.2 I segnali del PCI bus 490
11.7.3 Transazioni di trasferimento dati 491
11.7.4 Arbitraggio 495
11.7.5 Prestazioni 497
11.7.6 Blocco delle risorse 498
11.8 Il bus USB 501
11.8.1 Caratteristiche generali 501
11.8.2 Struttura fisica 502
11.8.3 Organizzazione a livelli 503
11.8.4 Host 505
11.8.5 Periferiche 505
11.8.6 Hub 506
11.8.7 Modello dei flussi informativi 506
11.8.8 Il cavo 508
11.8.9 Riconoscimento e configurazione delle periferiche 511
11.8.10 Trasferimento di dati 512
11.8.11 Il protocollo e il formato dei pacchetti 513

A Sistemi Digitali 517

A Appendice A 517
A.1 Proprieta' dell’algebra delle reti 517
A.2 Forme canoniche 519
A.2.1 Prima forma canonica 519
A.2.2 Seconda 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 con sole porte NAND o sole porte NOR 524
A.4.3 Una tecnica grafica per la trasformazione 524
A.4.4 XOR e NXOR 525
A.5 Esempi di reti combinatorie 526
A.5.1 Il controllo di parita' 526
A.5.2 Comparatore digitale 528
A.6 Unita' aritmetiche 530
A.6.1 Somma con calcolo anticipato del riporto 530
A.6.2 Ancora sul sommatore completo 532
A.7 Unita' aritmetiche e logiche 533
A.8 Reti sequenziali 536
A.8.1 Modello generale 536
A.8.2 Rappresentazione delle funzioni di stato e uscita 538
A.9 Sincronizzazione 540
A.10 Reti sequenziali sincrone 542
A.10.1 Flip-flop Master-Slave 543
A.10.2 Altre considerazioni sui flip-flop 545
A.10.3 Modello di Mealy e modello di Moore 546
A.11 Esempi di analisi e progetto di reti sequenziali 549
A.11.1 Esempio di progetto: generazione di un segnale di WAIT 549
A.11.2 Esempio di progetto: rete per l’adattamento della temporizzazione dei segnali 551
A.12 Esercizi 555

B L’architettura 8086 559

B Appendice B 559
B.1 Un po’ di storia 562
B.2 Architettura di base: il micro 8086 564
B.2.1 Il modello di programmazione 565
B.2.2 Organizzazione della memoria 568
B.2.3 Accesso alla memoria 571
B.2.4 Osservazioni sull’organizzazione di memoria dell’8086 572
B.2.5 Struttura interna del microprocessore 8086 573
B.2.6 Cicli di bus 575
B.2.7 Modalita' di funzionamento 576
B.2.8 La fase di partenza 576
B.3 Il repertorio delle istruzioni 577
B.4 Modalita' di indirizzamento 578
B.4.1 Indirizzamento degli operandi 578
B.4.2 Indirizzamento nei salti 580
B.5 Formati delle istruzioni 581
B.6 Il coprocessore 8087 584
B.6.1 Modello di programmazione esteso 584
B.6.2 Tipi di dati 586
B.6.3 Collegamento con la CPU 8086/8088 586
B.6.4 Coordinamento con la CPU: aspetti generali 587
B.6.5 Coordinamento con la CPU: il controllo del bus 591
B.6.6 Emulazione del coprocessore 593
B.7 Il microprocessore 80286 (286) 594
B.7.1 Modello di programmazione 595
B.7.2 La struttura interna 596
B.7.3 Modo protetto 597
B.8 Il microprocessore 80386 (386) 597
B.8.1 Emulazione 8086 598
B.9 Il microprocessore 80486 (486) 600
B.9.1 La cache interna 600
B.9.2 L’evoluzione verso frequenze pi`u elevate 601
B.10 Il Pentium 602
B.10.1 La struttura interna 602
B.10.2 L’unita' per la predizione dei salti condizionati 605
B.10.3 L’unita' per il calcolo in virgola mobile 609
B.10.4 Le due cache interne 609
B.11 Il Pentium con tecnologia MMX 610
B.11.1 L’estensione MMX 610
B.11.2 La struttura interna 611
B.12 Il Pentium Pro 611
B.12.1 La pipeline e l’esecuzione dinamica 613
B.12.2 Ridenominazione dei registri 618
B.13 Il Pentium II 619
B.13.1 La struttura interna 620
B.14 Il Pentium III 621
B.15 La forma esterna, i bus e altro 622
B.16 Esercizi 626

C L’architettura PowerPC 627

C Appendice C 627
C.1 Architettura PowerPC 628
C.1.1 Formati istruzione 628
C.1.2 Organizzazione 628
C.1.3 Caratteristiche e prestazioni di alcuni modelli 631
C.2 La CPU MPC 601 631
C.2.1 Gestione della memoria 633
C.2.2 La coda istruzioni del 601 633
C.2.3 La pipeline del 601 635
C.3 Un esempio di flusso istruzioni per il 601 638
C.4 La CPU MPC 604 639
C.4.1 La pipeline del 604 641
C.5 Un esempio di flusso istruzioni per il 604 643
C.6 Un confronto tra le prestazioni del 601 e 604 646
C.6.1 Le prestazioni del 601 648
C.6.2 Le prestazioni del 604 649
C.6.3 Prestazioni relative 650

D Il linguaggio assembler 651

D.1 Generalita' 652
D.1.1 Sintassi 654
D.2 Segmenti e moduli 657
D.2.1 Direttive per la gestione dei segmenti 657
D.2.2 Generazione dei riferimenti: la direttiva ASSUME 659
D.2.3 Relazione tra segmenti e moduli 661
D.3 I simboli definiti dal programmatore 664
D.3.1 Etichette 664
D.3.2 Variabili 665
D.3.3 Variabili strutturate 667
D.3.4 Costanti 668
D.3.5 Procedure 670
D.4 Direttive per il collegamento dei moduli 670
D.4.1 Direttive per la programmazione modulare 670
D.4.2 La direttiva END 671
D.4.3 La direttiva INCLUDE 671
D.4.4 Il sistema macro del MASM 672
D.5 Un esempio di programma assembler 673
D.6 Il processo di traduzione 678
D.6.1 Assemblatore: primo passo 681
D.6.2 Assemblatore: secondo passo 683
D.7 Collegamento e caricamento 684
D.7.1 Caricamento in memoria ed esecuzione 685
D.8 Esercizi 685

E Comunicazione tra Calcolatori 689

E Appendice E 689
E.1 Introduzione 689
E.1.1 Il mezzo trasmissivo 690
E.2 Il modello ISO/OSI 691
E.2.1 Il 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 collegamento 698
E.4.1 Trasmissione asincrona 699
E.4.2 Trasmissione sincrona 700
E.4.3 Controllo degli errori 704
E.4.4 Protocolli per il livello collegamento 708
E.4.5 Esempio di dispositivo per il controllo della trasmissione: l’8251A710
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

Bibliografia 719
Indice analitico 724



  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