Nuova ricerca

Roberto VEZZANI

Professore Associato
Dipartimento di Ingegneria "Enzo Ferrari"

Insegnamento: Calcolatori Elettronici

Ingegneria elettronica (D.M.270/04) (Offerta formativa 2022)

Obiettivi formativi

Per gli obiettivi formativi si rimanda alla sezione relativa ai risultati di apprendimento attesi

Prerequisiti

nessuno

Programma del corso

-Rappresentazione delle informazioni (1 CFU)
Sistemi di numerazione posizionale
codifica binaria ed esadecimale
Aritmetica binaria
Rappresentazione in complemento a 2
Virgola fissa e mobile. Standard IEEE 754-1985
Rappresentazione di testo, immagini, audio

-Reti logiche combinatorie (1 CFU)
Algebra di Boole. Funzioni ed espressioni booleane. -Teoremi dell'algebra di boole
Sintesi delle reti combinatorie, forme canoniche SP e PS, mintermini e maxtermini
Minimizzazione con mappe di Karnaugh
Forma normale e minima
Componenti notevoli: decoder, multiplexer, Half e Full Adder, ALU

-Reti logiche sequenziali (1 CFU)
Bistabile SR, latch SR e D, FlipFlop SR, D, JK e T
Sintesi di reti sequenziali
Automi a stati finiti, modelli di Mealy e Moore, diagramma degli stati
Comonenti notevoli: Contatore, Registro, Banco di memoria.

-Introduzione alle architetture dei calcolatori (0.5 CFU)
BUS, Spazio di indirizzamento, dimensioni dei bus.
Architettura di Von Neumann e di Harvard
Definizione di ISA
RISC vs CISC

-Progettazione di una Architettura didattica (2 CFU)
Registri fondamentali: ACC, IR, MDR e MAR.
ALU e registro FLAG.
Set di istruzioni. Load e Store.
Codifica delle istruzioni
Unità di controllo cablata e microprogrammata
Il registro PC
Parallelizzazione delle microoperazioni
Istruzioni di salto

-Intel IA32 e Programmazione Assembly (2 CFU)
Funzionamento di un assemblatore
Introduzione all'architettura
Registri, segmentazione della memoria, coda delle istruzioni
Funzioni: gestione dello stack, registro SP e BP. Record di attivazione

-Sottosistema memoria (1 CFU)
La gerarchia di memorie
Introduzione alla memoria cache. Principi di località. Organizzazione interna

- Sottosistema di I/O (0.5 CFU)
Gestione dell'I/O. Dispositivi
Polling, interruzioni
I/O mappato in memoria, I/O isolato
Vettore delle interruzioni. Interruzioni software, traps, eccezioni

Attività di laboratorio: programmazione assembly IA32

Metodi didattici

Le lezioni frontali verranno svolte principalmente alla lavagna. Alcune parti del corso sono svolte in laboratorio, con esercitazioni pratiche al calcolatore (svolte a gruppi). Infine si prevedono una o due lezioni a carattere seminariale.

Testi di riferimento

Le lezioni del corso si basano sul libro di testo A. Tanenbaum “Structured Computer Organization” (6th Edition), disponibile anche in italiano dal titolo “Architettura dei Calcolatori un approccio strutturale” Prentice Hall nella sesta edizione, integrato da appunti e dispense dalle lezioni frontali, e da esercitazioni in laboratorio. Per approfondimento si consigliano anche altri altri testi di riferimento “J.Hennessy D. Patterson Computer Architecture a Quantitative Approach VI Ed.” (in lingua inglese), e “G.Bucci Calcolatori Elettronici Architettura e Organizzazione” Mc Graw Hill e C.Hamacher et al. “Introduzione all’architettura dei calcolatori” III Ed. Mc Graw Hill (dall’edizione del 2012 in poi).
Le dispense, i lucidi, le informazioni sull’esame e molto altro materiale digitale sono disponibili sul sito del corso

Verifica dell'apprendimento

Prova di laboratorio (idoneità alla prova orale) + prova orale (che definisce il voto). Entrambe le prove saranno svolte al termine dell'insegnamento.

Prova di laboratorio (durata 1 ora): realizzazione di una funzione assembly IA32 che si interfacci con un programma main scritto in c (fornito allo studente). La prova si svolge usando la piattaforma OLJAsm, a disposizione dello studente durante tutto l'anno accademico, comprese le lezioni. Lo studente può consultare tutto e solo il materiale disponibile sulla piattaforma. Durante la prova è ammesso l'uso della piattaforma e di Visual Studio quale IDE di programmazione o blocco note. In caso di svolgimento in laboratorio fisico, i PC saranno opportunamente configurati con firewall e la sorveglianza sarà in presenza. In caso di svolgimento della prova da remoto, la piattaforma richiederà attivazione di proctoring mediante condivisione dello schermo col docente e sorveglianza dello studente mediante telecamera attiva su videoconferenza col docente. Se superata, lo studente potrà sostenere la prova orale. La prova di laboratorio non influisce sulla valutazione finale.

Prova orale con circa 3 domande riguardanti la teoria dei calcolatori. Punteggio assegnato ad ogni domanda: 10. Voto totale come somma dei voti delle tre domande. Nessun materiale consultabile.

Risultati attesi

Conoscenza e capacità di comprensione:
Fondamenti sulla rappresentazione binaria delle informazioni utilizzata dai calcolatori digitali.
Nozioni delle reti logiche, sia combinatorie che sequenziali
Conoscenze approfondite sull'architettura dei calcolatori elettronici.

Capacità di applicare conoscenza e comprensione:
Capacità di manipolare informazioni in formato binario
Capacità di gestire predicati booleani
Capacità di analizzare e sintetizzare semplici reti logiche combinatorie e sequenziali
Capacità di scrivere software in linguaggio assembler

Autonomia di giudizio:
Capacità di riconoscere e valutare le caratteristiche e le prestazioni dei calcolatori elettronici. Tra gli obiettivi in termini di autonomia di giudizio, particolare rilevanza è attribuita alla stimolazione della capacità dello studente di selezionare gli opportuni metodi e strumenti per risolvere il problema proposto.


Abilità comunicative:
Al termine del corso lo studente deve essere in grado di esporre e rielaborazione i concetti appresi, con particolare attenzione al lessico e alla proprietà di linguaggio.

Capacità di apprendimento:
Viene richiesto di imparare un linguaggio di programmazione di bassissimo livello, quindi poco astratto e distante dalla normale logica di programmazione o dalle soluzioni di facile intuito.
Approfondire in modo autonomo alcuni aspetti collaterali degli argomenti proposti nel corso.