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.
| Argomenti | Riferimenti testi | |
|---|---|---|
| 1 | Finalità e organizzazione dello studio. Macchine da calcolo: cenni storici. | |
| 2 | Macchine da calcolo: unità funzionali, architetture | |
| 3 | Strutture algebriche, algebre di Boole. | |
| 4 | Realizzazione di porte logiche, circuiti sequenziali, flip-flop. | |
| 5 | Architetture RISC e CISC, modi d'indirizzamento | |
| 6 | Tipi e formati di istruzioni, esempi di linguaggi assemblativi | |
| 7 | Operazioni di I/O, controllo e servizio delle interruzioni. | |
| 8 | Software di supporto, linguaggi assemblativi e C, sistema operativo | |
| 9 | Struttura di base del processore, microarchitetture RISC e CISC | |
| 10 | Processori ad alte prestazioni, tecniche predittive, processori superscalari | |
| 11 | Dispositivi di memoria principale, DMA, gerarchia delle memorie, cache | |
| 12 | Circuiti efficienti per l'aritmetica binaria |
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