You are on page 1of 2

PROGRAMMA DEL CORSO

RETI LOGICHE: Algebra di Boole. Modello fondamentale. Funzioni AND, OR, NOT. Propriet notevoli.
Teorema di De Morgan. Algebra della logica delle proposizioni. Algebra degli insiemi. Algebra dei circuiti e
porte elementari. Variabili e funzioni booleane. Tabelle di verit. Le funzioni di due variabili. Funzioni notevoli a
due variabili: XOR, EQ, NAND, NOR. Funzioni booleane di n variabili. Forme normali P ed S. Numero
caratteristico. Equazioni booleane. Funzioni incompletamente specificate. Implicanti di una funzione. Mappe di
Karnaugh. Determinazione degli implicanti primi sulle mappe di K. Insiemi funzionalmente completi. Insieme
AND, OR, NOT. Insieme NAND. Insieme NOR. Forme NAND e NOR di una funzione. Manipolazione
algebrica delle forme di una funzione. Numero di livelli di una forma algebrica. Funzioni di costo di una forma
algebrica. Minimizzazione algebrica. Nucleo e resto di una funzione. Ricerca dei primi implicanti. Metodo delle
mappe di K. Metodo di Quine. Metodo di McCluskey. Determinazione del nucleo. Copertura minima. Metodi di
copertura minima. Esempi. Metodo di minimizzazione per funzioni incompletamente specificate.
Esempi. Funzioni XOR ed EQ. Funzioni parit e disparit. Esercizi. Macchine combinatorie. Multiplexer.
Multiplexer binario. Demultiplexer. Macchine per il trattamento di codici. Decodificatore, codificatore,
transcodificatore. Multiplexer e demultiplexer indirizzabili. Cenni al controllo di errore. Bit di
parit. Comparatore. Half e Full adder binario. Sottrattore binario. Addizionatore parallelo ad n bit.
Addizionatori con anticipo del riporto. Reti di carry look ahead. Effetto dei ritardi sulle macchine combinatorie.
Alee combinatorie. Automa a stati finiti. Modello di Moore e Mealy. Macchine sequenziali. Il concetto di stato.
Stato stabile sotto un dato ingresso. Macchina asincrona. Modello fondamentale di macchina asincrona. Concetto
di equivalenza tra stati. Registri e flip-flop. Tempificazione nel caricamento dei registri: latch ed edge-triggered.
Flip-flop RS fondamentale (latch): analisi del funzionamento. Flip-flop RS edge-triggered: tabella. Flip-flop D:
latch ed edge triggered. Flip-flop a commutazione e misti: T e JK. Reti sincrone: modello realizzativo per le reti
a sincronizzazione esterna. Fasi del progetto di una rete sincrona. Contatori sincroni ed asincroni. Esempio di
progetto di contatore. Progetto macchine sincrone: riconoscitore di sequenza. Cenno agli Shift register. Esercizi
su macchine sequenziali.
ARCHITETTURA DEI CALCOLATORI : Concetti di informazione, dato, codice. Generalit sui codici.
Esempi di codici a lunghezza fissa e variabile. Macchina di Von Neumann. Calcolatore Elettronico: caratteristiche
ed architettura complessiva. Il processore. Lalgoritmo del processore: fetch, operand assembly ed execute. Il
processore: modello a registri generali. Registri generali, speciali ed interni. Il modello di programmazione. La
memoria centrale. Indirizzamento. Memorie byte-addressable. Allineamento di word. Caratteri e voci. Altri
modelli di architettura interna del processore: modello ad accumulatore, modello a stack. Classi concettuali di
istruzioni. Esecuzione delle istruzioni in sequenza lineare. Struttura delle istruzioni e natura degli operandi.
Esempi. Classificazione per natura degli operandi. Linguaggio macchina e linguaggio assembler. Modi di
indirizzamento degli operandi. Indirizzo effettivo. Indirizzamento diretto attraverso registro, indirizzamento
assoluto, indirizzamento immediato, indirizzamento indiretto. Varianti dellindirizzamento indiretto con pre-
decremento e post-incremento. Indirizzamento indicizzato. Il programma assemblatore. Ciclo di sviluppo di un
programma assembly. Program Location Counter. Tabella dei simboli. Riferimenti in avanti. Assemblatori a 2
passi. Direttive di assemblaggio. Ambiente di simulazione ASIM. La rappresentazione dei numeri. Richiami.
Rappresentazione di numeri naturali. Rappresentazione di numeri relativi: rappresentazione in segno e modulo,
rappresentazione in complementi alla base. Overflow. Rappresentazione di frazionari in virgola fissa.
Underflow. Il processore Motorola 68000: caratteristiche e modello di programmazione. Istruzioni di
trasferimento dati. Il registro di stato ed i codici di condizione. Modo utente e supervisore. Istruzioni
privilegiate. Architettura generale CPU-memoria-I/O: modello a bus unico e modello a bus distinti. Architettura
interna della CPU: modello a bus unico e modello a bus multipli. Lunit di controllo del processore e
tempificazione del ciclo di istruzione. Lunit logico-aritmetica. Codifica delle istruzioni. Ortogonalit. La
memoria centrale. Sezione di collegamento della CPU con la memoria. Interfacciamento CPU-memoria.
Parallelismo dei trasferimenti. Protocolli base di accesso alla memoria centrale: asincrono e sincrono. Spazio di
indirizzamento logico e fisico. Aliasing degli indirizzi. Modello logico di una unit di memoria. Struttura e
funzioni delle memorie. Classificazione delle memorie. Memorie ROM, PROM, EPROM ed EEPROM. Memorie
RAM statiche e dinamiche. Parametri di una memoria: capacit, tempo di accesso e tempo di ciclo. Architettura di
un modulo di memoria RAM. Metodi di selezione: selezione lineare e semiselezione. Circuito di interfaccia di un
modulo di memoria RAM. Il Chip Select. Architettura di un sistema di memoria RAM. Collegamento di chip di
memoria. Il sistema delle interruzioni. Gestione delle interruzioni. Modelli fondamentali. Priorit, abilitazione e
mascheramento. Gestione delle interruzioni: identificazione e polling. Il sistema delle interruzioni del Motorola
68000. Interruzioni vettorizzate ed autovettori. Interruzioni non mascherabili. Altre eccezioni: trap, reset ed
interrupt software. 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 dellI/O in linguaggio macchina. Modelli fondamentali di I/O in linguaggio macchina.
Protocollo di handshake. I/O sincronizzato da interruzioni.
PROGRAMMAZIONE IN ASSEMBLER: Linguaggio macchina e linguaggio assembler. Il programma
assemblatore. Ciclo di sviluppo di un programma assembly. Program Location Counter. Tabella dei simboli.
Riferimenti in avanti. Assemblatori a 2 passi. Direttive di assemblaggio. Ambiente di simulazione
ASIM. Istruzioni aritmetiche del processore 68000: ADD, SUB. Settaggio dei flag C e V da parte delle istruzioni
aritmetiche. Esempi. Istruzioni di comparazione: CMP, TST. Istruzioni di salto: assoluto (jump) e relativo
(branch). Salti incondizionati e condizionati. Istruzioni di salto condizionato del 68000: Bcc. Confronto di numeri
signed ed unsigned. Esempi. Istruzioni PRINCIPALI del processore 68000 e modi di indirizzamento degli
operandi. Indirizzo effettivo. Indirizzamento diretto attraverso registro, indirizzamento assoluto, indirizzamento
immediato, indirizzamento indiretto. Varianti dellindirizzamento indiretto con pre-decremento e post-incremento.
Indirizzamento indicizzato. Codifica in assembly dei costrutti if-then ed if-then-else. Cicli in assembler: while,
do-while. Cicli for con DBRA. Esempi. Istruzioni del processore 68000 per la manipolazione di bit: BTST,
BSET, BCLR, BCHG. Istruzioni logiche (AND, OR, NOT, XOR). Maschere di bit. Istruzioni di shift logico ed
aritmetico. Shift circolare. Esercizi di programmazione in assembly. Stack e stack pointer. Collegamento di
sottoprogrammi mediante registro link, mediante locazione di memoria o sullo stack. Istruzioni JSR e
RTS. Sottoprogrammi in linguaggio assemblativo. Varie tecniche per il passaggio dei parametri. Allocazione del
record di attivazione. Stack frame. Le istruzioni LINK ed UNLNK. Corrispondenza tra linguaggi di alto livello e
linguaggio macchina. Esercizi di programmazione in assembly.