Senza richiedere prerequisiti particolari, questo libro consente d'acquisire le conoscenze fondamentali di base dell'organizzazione e funzionamento dei sistemi di elaborazione dell'informazione.
L'ordine della presentazione è un'applicazione equilibrata della metodologia top-down: parte, quindi, da concetti generali introducendo successivi raffinamenti analitici, fino a far emergere i dettagli più fini. Il calcolatore è dapprima presentato come un sistema descritto a livello di unità funzionale. Dopo aver fornito le motivazioni essenziali alla struttura di un calcolatore, un approccio bottom-up sviluppa le tecniche necessarie alla progettazione di reti digitali, sia combinatorie sia sequenziali.
L'elaboratore presentato nel testo è una macchina «artificiale», che consente di raffigurarlo come un sistema in evoluzione. Al modello didattico è avvicinato in appendice il microprocessore Motorola MC680000.
Caratteristiche principali del volume sono:
- l'isolare efficacemente i principi di base dai dettagli ingegneristici;
- lo sforzo di superare la dicotomia hardware-software, mostrando che la loro interazione è un aspetto onnicomprensivo dell'esperienza di computazione ed è dettata da criteri economici;
- il fornire solide basi pratiche anche ai non specialisti d'informatica che desiderano avere una conoscenza non banale del calcolatore.
Franco P. Preparata, laureato in ingegneria all'Università di Roma, è professore di ingegneria elettrica e scienza computazionale all'University of Illinois, Urbana. Ha anche una vasta esperienza come consulente industriale, più recentemente con l'Ibm. E' «associate editor» del SIAM Journal on Computing e «editor» dell'Advances in Computing Research. Ha pubblicato numerosi articoli su riviste specializzate ed è coautore con R. T. Yeh di Introduction to Discrete Structures. E' «fellow» della IEEE.
Indice
Rappresentazione dell'informazione
* Conversioni di base
* Problema 1. Conversione di interi
* Problema 2. Conversione di frazioni proprie
* Introduzione all'aritmetica binaria: addizione e sottrazione
* Notazione esadecimale ed ottale
* Altri codici importanti
* Decimali codificati in binario (BCD)
* Codice Gray
* Codici alfanumerici
* Codici per il controllo dell'errore
* Codici a controllo di parità e Codici 2-su-5
Introduzione alla organizzazione ed alla progettazione di un calcolatore
* Un calcolatore semplificato
* Il repertorio delle istruzioni del SEC (prima versione)
* Alcuni semplici programmi in linguaggio macchina
* Livelli di progettazione di un sistema digitale
TECNICHE GENERALI
Reti combinatorie e algebra di commutazione
* Introduzione alle funzioni binarie di variabili binarie
* Funzioni di commutazione di una e due variabili
* Reti ed espressioni
* Algebra di commutazione
* Espressioni booleane: forma normale e forma canonica
* I connettivi NAND e NOR e XOR
* Rassegna di esempi
Elementi di progettazione logica, reti e moduli combinatori
* Analisi e progettazione di reti combinatorie
* Tecniche di minimizzazione
* Tecniche di minimizzazione basate sulle mappe di Karnaugh
* Una procedura per ottenere un'espressione normale minimale
* Funzioni di commutazione con condizioni di «don't care»
* Una tecnica di minimizzazione tabulare * Progetto di reti combinatorie All-NAND
* Moduli combinatori (moduli MSI)
* Codificatori - Decodificatori
* Trascodificatori, memorie a sola lettura (ROM) e array logici programmabili (PLA)
* Multiplexer - Demultiplexer
Reti sequenziali
* Diagrammi temporali
* Feedback e memoria (latch)
* Reti sequenziali asincrone
* Gated latch (latch con porte sincronizzanti) e flip-flop
* Registri paralleli
* Reti sequenziali sincrone
* Analisi di reti sequenziali
* Sintesi di reti sequenziali
* Diagrammi di stato di una SM
* Diagrammi di stato di una SN
* Tavola degli stati successivi della SN
* Funzioni booleane della SN
* Una tecnica generale di progettazione basata sulle ROM e sulle PLA
ORGANIZZAZIONE DEL SISTEMA
L'aritmetica binaria e l'unità aritmetico-logica (ALU)
* L'addizione, la sottrazione e la rappresentazione dei numeri negativi
* Addizione e sottrazione di interi nella notazione in complemento a due
* La notazione in complemento a uno
* Cella addizionatrice (addizionatore completo)
* Sottosistemi addizionatori paralleli
* Unità aritmetico-logica (ALU)
Organizzazione del calcolatore: CPU e memoria
* Linguaggio di trasferimento tra registri
* Realizzazione di una microsequenza
* Organizzazione di base del processore SEC
* Miscrosequenze di FETCH ed EXECUTE
* Registri indice
* Sottoprogrammi
* Sottoprogrammi annidati. Pile
* Paginazione della memoria ed indirizzamento indiretto
* Una sinopsi delle modalità di indirizzamento del SEC
Ingresso-uscita
* Ingresso/uscita programmato
* Ingresso/uscita da interruzione
* Accesso diretto alla memoria (Data Break)
* La partenza a freddo del sistema
Unità di controllo: microprogrammazione
* Realizzazione del micropasso e segnali di controllo
* Unità di controllo microprogrammata
Appendice-Microprocessori