Conoscenza e capacità di comprensione: acquisire conoscenza e capacità di comprensione dei concetti fondamentali delle principali architetture hardware 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 progettazione 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.
Capacità di apprendimento: sviluppare la capacita di capire le caratteristiche innovative e migliorative dell'hardware futuro.
Lezioni frontali, esempi e esercizi svolti 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.
Per una piena comprensione degli argomenti del corso e delle tecniche presentate, la frequenza delle lezioni e delle esercitazioni è fortemente consigliata.
C. Hamacher, Z. Vranesic, S. Zaky & N. Manjikian : Introduzione all'architettura dei calcolatori. Terza edizione, McGraw-Hill Education (Italy), 2013
| Argomenti | Riferimenti testi | |
|---|---|---|
| 1 | Finalità e organizzazione dello studio. Macchine da calcolo: cenni storici. | C. 1 |
| 2 | Macchine da calcolo: unità funzionali, architetture | C. 1 |
| 3 | Strutture algebriche, algebre di Boole. | C. 2 |
| 4 | Realizzazione di porte logiche, circuiti sequenziali, flip-flop. | A |
| 5 | Architetture RISC e CISC, modi d'indirizzamento | C. 2 |
| 6 | Tipi e formati di istruzioni, esempi di linguaggi assemblativi | C.2 |
| 7 | Operazioni di I/O, controllo e servizio delle interruzioni. | C. 3 |
| 8 | Software di supporto, linguaggi assemblativi e C, sistema operativo | C. 4 |
| 9 | Struttura di base del processore, microarchitetture RISC e CISC | C. 5 |
| 10 | Processori ad alte prestazioni, tecniche predittive, processori superscalari | C. 6 |
| 11 | Dispositivi di memoria principale, DMA, gerarchia delle memorie, cache | C. 8 |
| 12 | Circuiti efficienti per l'aritmetica binaria | C. 9 |
Prova scritta e colloquio orale.
Opzionale lo svolgimento e la presentazione di un progetto.
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Conversioni di numeri in basi decimale, binario e esadecimale
Sintesi di funzioni logiche
Tabelle di verità di porte logiche
Istruzioni assembly, e programmi elementari
Esecuzione di istruzioni assembly tramite percorso dati
Organizzazione della memoria cache
Esecuzione in pipeline e problematiche