Corso di Laurea in Ingegneria Elettronica

Corso di Calcolatori Elettronici – Ing. A. Picariello

Programma delle lezioni - Anno accademico 2000/2001

 

Parte 1 – Reti Logiche

Algebra di Boole (1). Richiami. Numeri caratteristici. Equazioni booleane. Funzioni booleane incompletamente specificate. Diagrammi di Veitch e mappe di Karnaugh.

Algebra di Boole (2). Le funzioni di due variabili. Funzioni Booleane generalizzate. Insiemi funzionalmente completi. Le funzioni NAND e NOR. Le forme NAND e NOR di una funzione. Costo convenzionale e minimizzazione di una forma booleana. La ricerca dei primi implicanti. La copertura di una funzione. Altri problemi di minimizzazione. Minimizzazione di funzioni incompletamente specificate. Le funzioni XOR e EQ. La funzione di parità. Decomposizione funzionale.

Macchine combinatorie. Reti combinatorie. Reti unilaterali. Porte elementari. Struttura delle reti bilaterali (cenni). Progetto logico di reti combinatorie. TTL data book: analisi di alcuni componenti standard.

Reti combinatorie elementari. Reti di parità. Reti a priorità. Multiplexer binario. Reti universali. Multiplexer come generatore di funzioni e logica folded. Logica ROM.

La tempificazione delle macchine. Tempi di risposta ed elementi di ritardo. Variabili impulsive. Il clock. Sequenza di ingresso e uscita da una macchina. Alee combinatorie. Trasformazioni tra livelli ed impulsi. Effetto della tempificazione sul progetto logico.

Macchine sequenziali. Introduzione. Modelli matematici di macchine sequenziali. Modello a blocchi fondamentale. Compatibilità ed equivalenza. La minimizzazione degli stati. Ricerca degli insiemi compatibili massimi. Ricerca con metodo tabellare. Costruzione della macchina e stati ridotti. Decomposizione di macchine sequenziali. Reti sequenziali. Macchine sequenziali programmate (cenni).

Sincronizzazione delle macchine sequenziali. Macchine asincrone. Alee essenziali. Modello teorico di macchina sincrona. Macchine ad ingressi impulsivi. Modelli sequenziali di registri. Tempificazione nel caricamento dei registri. Modelli reali di macchine sincrone.

Flip-flop. Generalità. Flip-flop a memorizzazione dell'ingresso. Flip-flop a commutazione e misti. Flip-flop RS fondamentale. Flip-flop dinamico, latch, master-slave. Flip-flop a variazione sul fronte (edge triggered). Trasferimenti tra flip-flop. Progetto e realizzazione di flip-flop.

Reti sequanziali elementari.

Contatori e registri a scorrimento: funzionalità e progetto logico. Contatori sincroni. Contatori asincroni. Registri a scorrimento. Contatori con registri a scorrimento.

Progetto di reti asincrone. Le reti asincrone. Cenni alla sintesi di reti asincrone: i problemi della progettazione. Il progetto del flip-flop RS e dei flip-flop edge-triggered.

Progetto di reti sincrone. Le reti sincrone. Reti con ingressi impulsivi. Reti sincronizzate dall'esterno. Sintesi di reti sincrone. Costruzione della tabella di flusso e minimizzazione degli stati. Assegnazione degli stati e progetto combinatorio. Cenni alle reti autosincronizzate e trasformazione degli ingressi.

Progetto di sistemi. Progetto per decomposizione. Decomposizione seriale e parallela. Connessione fra reti. Partizione degli stati interni. Progetto con componenti standard.

 

Parte 2 – Macchine Elementari

N.B. Il linguaggio di descrizione dell’hardware PASCAL-HDL deve essere noto, come strumento di descrizione dei sistemi.

Macchine elementari. Macchine seriali e parallele. Tecniche locali di sincronizzazione. Porte di parola. Porte abilitanti. Bus. OR di bus. Multiplexer. Multiplexer binario. Demultiplexer. Registri a scorrimento. Trasferimenti tra registri. Trasferimenti paralleli e seriali.

Macchine per il trattamento di codici. Codifica diretta ed indiretta. Esempi di codici. Decodificatore, codificatore, transcodificatore. Macchine per la comparazione di codici. Multiplexer e demultiplexer indirizzabili. Reti di decodifica incomplete. Reti di codifica. Reti di transcodifica. Comparatore binario. Codici ridondanti. Schemi per la individuazione e la correzione di errori. Codici binari. Codici di Hamming. Codici a singolo controllo di parità. Codici a controllo di parità (cenni).

La rappresentazione dei numeri. Richiami. Rappresentazione di numeri naturali. Rappresentazione di numeri relativi. Rappresentazione in segno e modulo. Rappresentazione in complementi alla base ed in complementi diminuiti. Rappresentazione per eccessi. Rappresentazione dei reali e dei frazionari. Virgola fissa e mobile. Lo standard IEEE per la rappresentazione in virgola mobile binaria.

Macchine aritmetiche. I contatori. Addizionatori in modulo. Addizionatori di interi positivi. Sottrattori in modulo. Addizionatori in modulo diminuito. Addizionatori in modulo 10. Addizionatori di numeri relativi. Addizionatori in complementi alla base e complementi diminuiti. Addizionatori binari elementari. Sottrattori binari elementari. Addizionatori binari paralleli. Reti di carry-look-ahead. Addizionatori decimali. Moltiplicatori modulo M. Moltiplicatori di interi positivi. Moltiplicatori binari e decimali. Moltiplicatori per stringhe. Divisori modulo M. Divisori di interi positivi. Divisori binari e decimali 

Parte 3 – Elementi di Architettura dei Calcolatori

Calcolatore Elettronico. Componenti fondamentali. Sottosistemi ed architettura. Il processore. La memoria centrale. Il sottosistema di I/O.

Il processore. Architettura del Processore: modello fondamentale. Registri. Trasferimenti dati e bus. Operazioni su registri. Modello a registri generali. Modello ad accumulatore. Modello a stack. Ciclo dell'istruzione. L'unità logico-aritmetica. Tipi di dato. Sezione di collegamento con la memoria. Sezione di collegamento con l'input/output. L'unità di controllo. Processori CISC e RISC (cenni).  Interfacciamento Processore-Memoria. Parallelismo dei trasferimenti. Caratteri e voci.

Linguaggio macchina. Classi concettuali di istruzioni. Struttura delle istruzioni e natura degli operandi. Classificazione per natura degli operandi. La preparazione degli operandi. Tecniche di indirizzamento. Codifica delle Istruzioni. Ortogonalità.

Macchina Assembler. Modi di Indirizzamento. Salti. Codici di condizione. Sottoprogrammi in linguaggio assemblativo. Passaggio dei parametri. Assemblaggio ed esecuzione di un programma in linguaggio assemblativo. Simulatore di processore MC68000: sviluppo di un programma ed esecuzione simulata.

Il microprocessore Motorola MC68000. Introduzione. Architettura. Modello di programmazione. Formato delle istruzioni. Modi di indirizzamento. Assembler del processore MC68000. Aritmetica BCD. Esempi di esecuzione di codici operativi.

Le memorie. Modello logico di una unità di memoria. Struttura e funzioni delle memorie. Parametri di una memoria. Metodi di selezione. Celle di memoria RAM. Architettura di un modulo di memoria RAM. Memorie a semiconduttore. Memorie a sola lettura. Architettura di un sistema di memoria RAM.

Il Bus. Bus Sincrono. Bus Asincrono. Il Bus del 68000. Arbitraggio del Bus: daisy chaining, polling, independent requesting..

Il sistema delle Interruzioni. Modelli fondamentali. Priorità, abilitazione e mascheramento. Identificazione. Interruzioni vettorizzate ed autovettori. Interruzioni non mascherabili. Altre eccezioni: trap, reset ed interrupt software.

Il sistema di I/O. I0 programmato. Memory mapped I/O. Porti di I/O. I/O mapped IO. Protocolli: Handshake. Canali di I/O. Processori di I/O. IO con l’uso di interruzioni (cenni). DMA (cenni)

 

Testi consigliati:

A. Esposito, B. Fadini, Teoria e progetto delle reti logiche, Liguori Ed., II ed., 1995

U. De Carlini, B. Fadini, Macchine per l'elaborazione delle informazioni, Liguori Ed., II ed., 1995

B. Fadini, C. Savy, Fondamenti di Informatica I, Liguori Ed., 1997

B. Fadini, C. Savy, Fondamenti di Informatica II, Liguori Ed., 2000

B. Fadini, N. Mazzocca, Reti logiche: complementi ed esercizi, Liguori Ed., 1995

J. Wakerly, Microcomputer Architecture and Programming: the 68000 Family, Wiley and Son