Conoscenza e capacità di comprensione: acquisire conoscenza e capacità di comprensione dei concetti fondamentali di architettura dei sistemi di calcolo e dei principi metodologici che ne ispirano lo sviluppo, nella prospettiva storica della loro evoluzione;
Capacità di applicare conoscenza e comprensione: acquisire capacità di risolvere problemi di progetto di sistemi di calcolo, cimentandosi con esercizi proposti a tal fine, e di adoperare, progettare e realizzare strumenti software, quali simulatori ed interpreti, per macchine astratte relative ai livelli più bassi della organizzazione dei sistemi di calcolo.
Autonomia di giudizio: essere in grado di confrontare e valutare la qualità di soluzioni a problemi di progetto di sistemi di calcolo.
Abilità comunicative: acquisire abilità comunicativa e proprietà di linguaggio utili alla comunicazione di problematiche inerenti il funzionamento, la progettazione, la realizzazione e la valutazione di sistemi di calcolo, anche con interlocutori non esperti.
Capacità di apprendimento: sviluppare capacita di adattamento delle proprie conoscenze alla rapida evoluzione della disciplina e di aggiomamento mediante la consultazione di fonti specialistiche del settore.
Conoscenza e capacità di comprensione: acquisire conoscenza e capacità di comprensione dei concetti fondamentali di architettura dei sistemi di calcolo e dei principi metodologici che ne ispirano lo sviluppo, nella prospettiva storica della loro evoluzione;
Capacità di applicare conoscenza e comprensione: acquisire capacità di risolvere problemi di progetto di sistemi di calcolo, cimentandosi con esercizi proposti a tal fine, e di adoperare, progettare e realizzare strumenti software, quali simulatori ed interpreti, per macchine astratte relative ai livelli più bassi della organizzazione dei sistemi di calcolo.
Autonomia di giudizio: essere in grado di confrontare e valutare la qualità di soluzioni a problemi di progetto di sistemi di calcolo.
Abilità comunicative: acquisire abilità comunicativa e proprietà di linguaggio utili alla comunicazione di problematiche inerenti il funzionamento, la progettazione, la realizzazione e la valutazione di sistemi di calcolo, anche con interlocutori non esperti.
Capacità di apprendimento: sviluppare capacita di adattamento delle proprie conoscenze alla rapida evoluzione della disciplina e di aggiomamento mediante la consultazione di fonti specialistiche del settore.
Lezioni frontali
Esercitazioni in aula
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
Nessun prerequisito è richiesto.
Nessun prerequisito è richiesto.
Per una piena comprensione degli argomenti del corso e delle tecniche presentate, la frequenza delle lezioni e delle esercitazioni è fortemente consigliata.
Per una piena comprensione degli argomenti del corso e delle tecniche presentate, la frequenza delle lezioni e delle esercitazioni è fortemente consigliata.
ARCHITETTURA DEGLI ELABORATORI | ||
Argomenti | Riferimenti testi | |
1 | Finalità e organizzazione dello studio. Macchine da calcolo: cenni storici. | 1: 1.7 |
2 | Macchine da calcolo: unità funzionali, architetture | 1: 1.0-3, 1.6 |
3 | Strutture algebriche, algebre di Boole. | 2 |
4 | Realizzazione di porte logiche, circuiti sequenziali, flip-flop. | 1: A.5-6 |
5 | Architetture RISC e CISC, modi d'indirizzamento, esempi di ISA reali. | 1: 2.0-4, A2.1-2 |
6 | Tipi e formati di istruzioni, esempi di linguaggi assemblativi reali. | 1: 2.8, 2.10.2, A2.4-5 |
7 | Operazioni di I/O, controllo e servizio delle interruzioni. | 1: 3.0-2.5, A3.1 |
8 | Software di supporto, linguaggi assemblativi e C, sistema operativo. | 1: 4.0-9.2 |
9 | Struttura di base del processore, microarchitetture RISC e CISC. | 1: 5.0-4 |
10 | Processori ad alte prestazioni, tecniche predittive, processori superscalari. | 1: 6.6-10 |
11 | Dispositivi di memoria principale, DMA, gerarchia delle memorie. | 1: 8.0-5 |
12 | Circuiti efficienti per l'aritmetica binaria. | 1: 9.2-4, 9.6 |
LABORATORIO | ||
Argomenti | Riferimenti testi | |
1 | Rappresentazione binaria dei numeri e dell'informazione. | 1: 1.4-5, A1.1-3 |
2 | Logica della commutazione, porte logiche, sintesi di funzioni logiche. | 1: A.0-4 |
3 | Registri, componenti di chip di memoria e del processore, ALU. | 1: A.7-11, 9.1 |
4 | Linguaggio assemblativo, direttive di assemblatore, pile e sottoprogrammi. | 1: 2.5-7, A2.3 |
5 | Modi di indirizzamento complessi, esempi di programmi assemblativi. | 1: 2.9-10.1, 2.11-13, A2.6 |
6 | Gestione di interruzioni ed eccezioni in architetture reali. | 1: 3.2.6, A3.2-3 |
7 | Esempi di programmi con integrazione di linguaggi C e assemblativi. | |
8 | Progetto di microarchitetture, microprogrammazione, pipelining. | 1: 5.5-7, 6.0-5 |
9 | Progetto di microarchitetture, microprogrammazione, pipelining. | 1: 5.5-7, 6.0-5 |
10 | Bus e circuiti d'interfaccia, standard d'interconnessione (cenni). | 1: 7.0-4 (7.5) |
11 | Memorie cache, miglioramento delle prestazioni, memoria secondaria. | 1: 8.6-7, 8.10 |
12 | Moltiplicazione veloce, aritmetica binaria in virgola mobile (IEEE 754). | 1: 9.5, 9.7-8 |
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.