Programma del corso di Architettura degli Elaboratori I. Corso di laurea in Informatica.

Obiettivi (dettagli AF)
Fornire le conoscenze di base della logica digitale. Acquisire la capacità di analizzare un problema e generare una soluzione adeguata. 

PROGRAMMA

Introduzione. 
L'architettura di riferimento. Il ciclo di esecuzione di un'istruzione. Storia dell'Elaboratore. Codifica dell'informazione. Rappresentazione binaria dei numeri decimali.

Logica combinatoria ed algebra
Operazioni su numeri binari. Le operazioni fondamentali: somma e sottrazione. Lo standard IEEE754. I numeri denormalizzati. Logica combinatoria. L'algebra di Boole: variabili ed operatori. Implementazione circuitale (porte logiche). Dal circuito alla funzione. Le porte universali. Dalla funzione al circuito. La tabella della verità. Dalla tabella della verità al circuito: la prima forma canonica. Criteri di ottimalità. Semplificazione algebrica. Implementazione circuitale di funzioni logiche mediante PLA e ROM. Maxtermini. Seconda forma canonica di rappresentazione delle funzioni booleane. Circuiti combinatori notevoli. Esercizi.

Le unità aritmetico-logiche
Addizionatori. Il problema del riporto. Moltiplicatori HW. Progettazione di una ALU. I due stadi. Addizione su 32 bit. Overflow. Supporto alle operazioni di comparazione. Anticipazione del riporto. Introduzione al firmware. Circuiti firmware della moltiplicazione intera. La divisione ed i circuiti firmware della divisione. Aritmetica ed addizionatore floating point. 

Logica sequenziale
Temporizzazione dei circuiti booleani. Circuiti sequenziali. Tabelle di transizione e di eccitazione. I latch SC. I latch D. I registri ed il register file. Problemi di temporizzazione. I flip-flop. Macchine a stati finiti. Dalle specifiche al progetto. State Transition Graph. State Transition Table. Codifica della STT. Sintesi del circuito. Esempi di Macchina a stati finiti. 

Le memorie
La gerarchia delle memorie. Le cache. Cache a mappatura diretta. Lettura / scrittura di una cache a mappatura diretta. Cache associative. Cache ad n vie. La tecnologia SRAM e DRAM. La coerenza delle cache. Criteri di progettazione di una gerarchia di memorie. Codici di correzione degli errori. La memoria di massa: i dischi. Le memorie flash.

Laboratorio
Progettazione di circuiti combinatori e sequenziali utilizzando il Software Gatesim.