Obiettivi formativi
Proporre un percorso che, partendo dalla rappresentazione dell’informazione e passando per lo studio delle reti logiche, arrivi a definire i fondamentali aspetti architetturali dei calcolatori elettronici.
Il corso prevede, oltre a lezioni teoriche, una serie di esercitazioni in aula sulla parte di reti logiche e in laboratorio sulla parte di assembly IA-32.
Prerequisiti
Nessuno
Contenuti dell'insegnamento
I parte – Introduzione ai sistemi di elaborazione
II parte – Livello logico
III parte – Livello funzionale
IV parte – Architettura e linguaggio assembly IA-32
V parte – Livello software
VI parte – Livello micro-architettura
Programma esteso
I parte – Introduzione ai sistemi di elaborazione
Sistemi di elaborazione
Evoluzione storica e tecnologica
Architettura e organizzazione dei calcolatori elettronici
Modelli di sistema e livelli di astrazione
Sistemi di numerazione binario, esadecimale e ottale
Rappresentazione binaria dei numeri reali
Informazioni di carattere alfanumerico
Rappresentazione di suoni, immagini e video
II parte – Livello logico
Algebra delle reti
Circuiti logici elementari
Forme canoniche e trasformazioni
Minimizzazione logica
Reti combinatorie
Reti sequenziali
III parte – Livello funzionale
Relazione tra livello funzionale e livello micro-architettura
Organizzazione di un calcolatore moderno
Il repertorio delle istruzioni
La CPU
I sistemi di memoria
Il sottosistema di I/O
IV parte – Architettura e linguaggio assembly IA-32
Architettura IA-32
Le CPU IA-32: gestione della memoria, registri, flag
Istruzioni dell’assembly IA-32
Set di istruzioni aggiuntive dei moderni microprocessori: MMX, 3DNow!, SSE, SSE2
Programmazione assembly ed interfaccia con il linguaggio C
V parte – Livello software
Cenni al sistema operativo
Cenni alla struttura dei compilatori di linguaggi tipo-C
Cenni alla generazione di codice assembly per un sotto-insieme del C
VI parte – Livello micro-architettura
La microarchitettura: progettazione hardwired e micro-programmata
Approfondimenti sulle architetture micro-programmate
Cenni alla struttura di una architettura micro-programmata compatibile con le CPU tipo NMOS 6502
Gestione del I/O a livello micro-architettura: interrupt e DMA
Interazione con il livello software
Bibliografia
David A. Patterson, John L. Hennessy. Struttura e Progetto dei Calcolatori, Zanichelli, 2006.
Giacomo Bucci. Architettura e organizzazione dei calcolatori elettronici - Fondamenti, McGraw-Hill, 2004.
William Stallings. Architettura e organizzazione dei calcolatori - Progetto e prestazioni, Addison Wesley, 2004.
Andrew S. Tanenbaum. Architettura dei Calcolatori, 5a edizione, Prentice Hall, 2006.
Randall Hyde. The Art of Assembly Programming, disponibile online.
Metodi didattici
Lezioni frontali ed esercitazioni in laboratorio
Modalità verifica apprendimento
Prova scritta e prova orale
Altre informazioni
- - -
Obiettivi agenda 2030 per lo sviluppo sostenibile
- - -