Architettura degli Elaboratori

(Prof. Franco Fummi)

Programma:

1. Fondamenti

1.1. Codifica dell'informazione:

1.1.1. Dall'informazione analogica a quella digitale
1.1.2. I sistemi numerici posizionali.
1.1.3. La codifica alfanumerica.
1.1.4. La codifica dei numeri relativi.

1.2. Funzioni Booleane:

1.2.1. Algebra di commutazione.
1.2.2. Forme canoniche (mintermini e maxtermini).
1.2.3. Operatori universali.

1.3. Aritmetica:

1.3.1. La codifica dei numeri in virgola mobile (IEEE 754).
1.3.2. Le operazioni tra numeri in virgola mobile.
1.3.3. I sommatori ripple-carry e carry-lookahead.
1.3.4. Moltiplicatori e divisori sequenziali.
1.3.5. La struttura di una ALU.

2. Progettazione digitale

2.1. Circuiti combinatori:

2.1.1. Le porte logiche elementari.
2.1.2. Componenti logici combinatori.
2.1.3. Minimizzazione di funzioni mediante Mappe di Karnaugh.
2.1.4. Algoritmo di Quine-McCluskey
2.1.5. Cenni di minimizzazione a piu` livelli.

2.2. Circuiti sequenziali:

2.2.1. Definizione.
2.2.2. Elementi di memoria.
2.2.3. Macchine a stati finiti.
2.2.4. Modellazione di circuiti sequenziali mediante FSM.
2.2.5. Minimizzazione degli stati di una FSM.
2.2.6. Assegnamento delle codifiche degli stati.

2.3. Circuiti sequenziali con unita' di elaborazione:

2.3.1. Limiti del modello FSM.
2.3.2. Il modello FSMD.
2.3.3. La progettazione di una unita' di elaborazione.
2.3.4. Interazione unita` di controllo/unita` di elaborazione.

3. L'architettura del calcolatore

3.1. Principi di base:

3.1.1. Il modello di Von Neumann.
3.1.2. Il modello a macchine virtuali.
3.1.3. La CPU.
3.1.4. Le memorie.
3.1.5. I BUS.
3.1.6. I dispositivi di I/O.
3.1.7. Le prestazioni.

3.2. Il set di istruzioni:

3.2.1. Modalita` di indirizzamento.
3.2.2. Il linguaggio assemblatore.
3.2.3. Operazioni di I/O.
3.2.4. Procedure.
3.2.5. Il set di istruzioni (Intel, Motorola, PowerPC)

3.3. L'unita` di Elaborazione:

3.3.1. Fetch/Decodifica/Esecuzione.
3.3.2. Controllo cablato.
3.3.3. Prestazioni, organizzazione a BUS multipli.
3.3.4. Cenni sul controllo microprogrammato.

3.4. La gerarchia di memoria:

3.4.1. Principi generali.
3.4.2. Classificazione delle Memorie.
3.4.3. Le memorie cache.
3.4.4. Analisi delle prestazioni.
3.4.5. La memoria virtuale.

3.5. Organizzazione dell'input/output:

3.5.1. Interrupt.
3.5.2. Accesso diretto alla memoria, l'arbitraggio.
3.5.3. Interfacce standard di I/O.
3.5.4. Le periferiche.

3.6. Dal modello alla realta`:

3.6.1. Classificazione dei sistemi di elaborazione.
3.6.2. Gli approcci CISC e RISC.
3.6.3. Pipelining.
3.6.6. Intel 80X86.

Testi consigliati:

V.C.Hamacher, Z.G.Vranesic, S.G.Zaky, "Introduzione all'architettura dei calcolatori", McGraw-Hill, 1997.
C.Bolchini, F.Fummi, D.Sciuto, "Progettazione Hardware", Esculapio, 1998.
F.Fummi, M.G.Sami, "Dispense del Corso", 2000.

Modalita` d'esame:

L'esame e` composto da una prova scritta seguita, eventualmente, da una prova orale.
Durante l'anno saranno proposte delle prove intermedie che copriranno tutta la prova scritta.

 

Laboratorio di Architettura degli Elaboratori

Programma:

4. Progettazione digitale

4.1. La minimizzazione esatta di funzioni a due livelli: Espresso.
4.2. La minimizzazione approssimata di circuiti combinatori: MIS.
4.3. La minimizzazione degli stati: Stamina.
4.4. L'assegnamento degli stati: Nova.
4.5. La progettazione automatica di FSM: SIS.
4.6. Componenti di libreria combinatori e sequenziali.
4.7. Modellazione e progettazione di FSMD.

5. Il linguaggio assemblatore dell'Intel 80X86.

5.1. Segmentazione della memoria.
5.2. La rappresentazione dei dati.
5.3. Le strutture di controllo.
5.4. Procedure e funzioni.
5.5. I servizi di sistema operativo.

Modalita` d'esame:

Allo studente verra` richiesto di realizzare un circuito sequenziale ed un programma assembler che implementano un algoritmo dato.
Parte delle lezioni in laboratorio saranno utilizzate per lo sviluppo di questi due progetti.