Corso di Laurea in Ingegneria Informatica

Corso di Calcolatori Elettronici I - Prof. B. Fadini

Programma delle lezioni - Anno accademico 1999/2000

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. Le funzioni XOR e EQ. La funzione di parità. Decomposizione funzionale.

Macchine combinatorie. Reti combinatorie. Reti unilaterali. Porte elementari. Struttura delle reti bilaterali. Reti universali. Progetto logico di reti combinatorie.

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

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.

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.

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. Contatori di controllo. Progetto con componenti standard.
 
 

Parte 2 – Macchine Elementari

Un linguaggio per la descrizione delle macchine. Gli strati di un sistema per l’elaborazione delle informazioni. Livelli per lo studio di un sistema. I linguaggi di descrizione dell’hardware. Il linguaggio PASCAL-HDL. (Cenni)

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. Generalità sui 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à. Codici polinomiali o ciclici (cenni).

La rappresentazione dei numeri. Richiami.

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. 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. Moltiplicazione e divisione di numeri relativi. Macchine in virgola mobile.

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. La registrazione su superfici magnetiche (cenni). Architettura delle memorie ausiliarie. Memorie a nastro magnetico. Unità a dischi magnetici.

Circuiti elettronici per reti logiche. Introduzione. Famiglie di circuiti e loro parametri. Circuiti logici a diodi. Il transistore come elemento logico. Transistore unipolare (MOSFET). Logica TTL. Logica di connessione. Logiche bilaterali. Logica MOS. Collegamenti su bus comune. TTL data book: analisi di alcuni componenti standard.
 
 

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. Protezioni e controlli del processore. Strategie di controllo del processore (cenni). Processori CISC e RISC (cenni).

Interfacciamento Processore-Memoria. Parallelismo dei trasferimenti. Caratteri e voci. Protocolli base di accesso alla memoria centrale.

Linguaggio macchina. Classi concettuali di istruzioni. Struttura delle istruzioni e natura degli operandi. Esempi. Classificazione per natura degli operandi. La preparazione degli operandi. Tecniche di indirizzamento. Codifica delle Istruzioni. Ortogonalità. Codifica in Formato Variabile (MOVE e ADD nel MC68000).

Macchina Assembler. Modi di Indirizzamento. Esecuzione delle istruzioni in sequenza lineare. Salti. Codici di condizione. Pile e code. 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. Esempi di esecuzione di codici operativi.

Il sistema delle Interruzioni. Modelli fondamentali. Priorità, abilitazione e mascheramento. Identificazione e polling. Interruzioni vettorizzate ed autovettori. Interruzioni non mascherabili. Altre eccezioni: trap, reset ed interrupt software. L’esempio del processore Motorola 68000.

Il sistema di I/O. Il colloquio tra CPU e periferia. Le fasi del colloquio. Problemi di sincronizzazione. La selezione della periferia. Architettura del sottosistema di I/O. Modelli di interfaccia. Sintassi e semantica dell'I/O in linguaggio macchina. Modelli fondamentali di I/O in linguaggio macchina. Protocollo di handshake. I/O sincronizzato da interruzioni.
 

Testi consigliati:

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

Cap. I     - Introduzione
Cap. II    - Algebra di Boole
Cap. III   - Funzioni booleane e minimizzazione
Cap. IV   - Macchine combinatorie
Cap. V    - La tempificazione delle macchine
Cap. VI   - Macchine sequenziali
Cap. VII  - Sincronizzazione delle macchine sequenziali
Cap. VIII - Flip-flop, contatori, registri a scorrimento
Cap. IX   - Progetto di reti asincrone
Cap. X    - Progetto di reti sincrone
Cap. XI   - Progetto di sistemi
U. De Carlini, B. Fadini, Macchine per l'elaborazione delle informazioni, Liguori Ed., II ed., 1995
Cap. I     - Un linguaggio per la descrizione delle macchine
Cap. II    - Macchine elementari
Cap. III   - Macchine per il trattamento di codici
Cap. IV   - La rappresentazione dei numeri
Cap. V    - Le macchine aritmetiche
Cap. VI   - Circuiti elettronici per reti logiche
Cap. VII  - Reti combinatorie elementari
Cap. VIII - Reti sequenziali elementari
Cap. IX   - Le memorie
B. Fadini, C. Savy, Fondamenti di Informatica - Fondamenti di Architettura, Liguori Ed., 1992
Cap. I     - Introduzione
Cap. II    - Rappresentazione e codifica dei dati
Cap. III   - Rappresentazione dei numeri ed aritmetica
Cap. IV   - Il processore: modello fondamentale
Cap. V    - Il linguaggio macchina
Cap. VI   - Esempi di linguaggio macchina
Cap. VII  - Il sistema di I/O
Cap. VIII - Le memorie
B. Fadini, N. Mazzocca, Reti logiche: complementi ed esercizi, Liguori Ed., 1995