OBIETTIVI FORMATIVI
Il corso si propone di dare allo studente la conoscenza
necessaria alla realizzazione in forma digitale di un algoritmo
presentando le possibili alternative comprese tra l'utilizzo di
un sistema di calcolo automatico general purpose e la
costruzione di un dispositivo digitale dedicato. Queste
conoscenze costituiscono i prerequisiti necessari alla
comprensione dei meccanismi di funzionamento di un sistema
informativo e del processo di codifica di un programma a partire
da una sua descrizione ad alto livello.
ATTIVITÀ FORMATIVE
Il corso viene svolto in 64 ore di lezione e 24 ore di
laboratorio. Le attività pratiche vengono svolte utilizzando le
attrezzature hardware e software presenti nei laboratori
didattici del Dipartimento.
PROGRAMMA DEL CORSO
- Fondamenti:
- Codifica dell'informazione:
- Dall'informazione analogica a quella
digitale.
- I sistemi numerici posizionali.
- La codifica alfanumerica.
- La codifica dei numeri relativi.
- Funzioni Booleane:
- Algebra di commutazione.
- Forme canoniche (mintermini e
maxtermini).
- Operatori universali.
- Aritmetica:
- La codifica dei numeri in virgola mobile
(IEEE 754).
- Le operazioni tra numeri in virgola
mobile.
- I sommatori ripple-carry e
carry-lookahead.
- Moltiplicatori combinatori.
- La struttura di una ALU.
- Progettazione digitale:
- Circuiti combinatori:
- Le porte logiche elementari.
- Componenti logici combinatori.
- Minimizzazione di funzioni mediante Mappe
di Karnaugh.
- Algoritmo di Quine-McCluskey.
- Cenni di minimizzazione a piu` livelli.
- Mapping tecnologico.
- Circuiti sequenziali:
- Definizione.
- Elementi di memoria.
- Macchine a stati finiti.
- Modellazione di circuiti sequenziali
mediante FSM.
- Minimizzazione degli stati di una FSM.
- Cenni all'assegnamento delle codifiche
degli stati.
- Circuiti sequenziali con unità di elaborazione:
- Limiti del modello FSM.
- Il modello FSMD.
- La progettazione di una unità di
elaborazione.
- Interazione unità di controllo/unità di
elaborazione.
- L'architettura del calcolatore:
- Principi di base:
- Il modello di Von Neumann.
- Il modello a macchine virtuali.
- La CPU.
- Le memorie.
- I BUS.
- I dispositivi di I/O.
- Le prestazioni.
- Il set di istruzioni:
- Modalita` di indirizzamento.
- Il linguaggio assemblatore.
- Operazioni di I/O.
- Procedure.
- Il set di istruzioni Intel 80xx86.
- L'unità di Elaborazione:
- Fetch/Decodifica/Esecuzione.
- Controllo cablato.
- Prestazioni, organizzazione a BUS
multipli.
- Cenni sul controllo microprogrammato.
- La gerarchia di memoria:
- Principi generali.
- Classificazione delle Memorie.
- Le memorie cache.
- Analisi delle prestazioni.
- La memoria virtuale.
- Organizzazione dell'input/output:
- Interrupt.
- Accesso diretto alla memoria,
l'arbitraggio.
- Interfacce standard di I/O.
- Le periferiche.
- Dal modello alla realtà:
- Classificazione dei sistemi di
elaborazione.
- Gli approcci CISC e RISC.
- Pipelining.
- Intel 80X86.