COMPUTER ARCHITECTURES, MICROCONTROLLERS AND IoT TECHNOLOGIES A - LModulo COMPUTER ARCHITECTURES
Anno accademico 2025/2026 - Docente: Giuseppe ASCIARisultati di apprendimento attesi
L’insegnamento ha l’obiettivo di fornire i concetti fondamentali relativi alle architetture dei calcolatori.
Nella prima parte dell'insegnamento vengono introdotte le tecniche e le metodologie per la progettazione dei sistemi digitali.
Nella seconda parte dell'insegnamento vengono presentati i componenti dei calcolatori elettronici e la loro organizzazione, l’architettura del set delle istruzioni dei processori, alcune tecniche per un’efficiente implementazione dei processori e il sottosistema di memoria. Inoltre, al fine di comprendere meglio il funzionamento del processore, l'insegnamento introduce lo studente alla programmazione assembly dei processori RISC.
Conoscenza e capacità di comprensione
Lo studente conoscerà:
-le tecniche di base per la progettazione dei circuiti digitali combinatori e sequenziali;
-i moduli elementari che compongono un sistema di elaborazione;
-le principali architetture del set delle istruzioni;
-le architetture di base dei processori RISC;
-l’assembly di un processore RISC;
Conoscenze applicate e capacità di comprensione
Lo studente sarà in grado di:
-progettare semplici circuiti combinatori e sequenziali sincroni
-valutare le prestazioni di un calcolatore
-scrivere programmi nel linguaggio assembly di un processore RISC
Autonomia di giudizio
Lo studente sarà in grado di valutare l'impatto delle scelte architetturali sulle prestazioni dei calcolatori.
Abilità comunicative
Lo studente sarà in grado di esporre in modo chiaro e rigoroso le conoscenze acquisite e come applicarle per la progettazione di semplici sistemi di elaborazione.
Capacità di apprendere
Lo studente sarà in grado di apprendere autonomamente:
-ulteriori caratteristiche di base delle architetture dei processori
-l’assembly di altri processoriModalità di svolgimento dell'insegnamento
L'insegnamento verrà svolto utilizzando lezioni frontali, esercitazioni pratiche e lo studio di alcuni casi.
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.
Prerequisiti richiesti
Rappresentazione dell’Informazione nei calcolatori elettronici, Algoritmi. Sequenze di Controllo. Tipi di dati. Puntatori. Funzioni. Passaggio dei parametri di una funzione. Concetto di Stato. Macchina a stati finiti.
Frequenza lezioni
La frequenza non è obbligatoria ma fortemente consigliata.
Contenuti del corso
Parte I Progettazione di sistemi digitali
*1.1 Progetto di reti combinatorie
Algebra di commutazione. Espressioni booleane minime. Minimizzazione delle reti combinatorie mediate il metodo delle mappe di Karnaugh.
*1.2 Progetto di reti sequenziali sincrone
Introduzione alle macchine sequenziali. Gli elementi di memoria: i bistabili. Sintesi di reti sequenziali sincrone. Minimizzazione delle macchine a stati finiti.
1.3 Progettazione di un sistema digitale
Flusso di progettazione di un sistema digitale. Datapath e unità di controllo.
Componenti di un sistema digitale. Circuiti aritmetici.
Parte II Il calcolatore
*2.1 Il calcolatore: astrazione e tecnologie
I tipi di calcolatori e le loro caratteristiche. I componenti di un calcolatore elettronico e loro organizzazione. Valutazione delle prestazioni di un calcolatore. Legge di Amdhal.
2.2 Il linguaggio del calcolatore: l’Assembly
* Architettura del Set di Istruzione dei processori.
Traduzione e avvio di un programma: Assembler, linker e loader.
* Instruction Set Architecture del RISC-V.
* Un Instruction Set Simulator per il processore RISC-V. Operazioni logico-aritmetiche. Accesso alla memoria. Chiamate di sistema. Array. Stringhe. Chiamata a procedura.
2.3 Organizzazione del calcolatore
* Organizzazione sequenziale di un processore. Datapath di un processore sequenziale. Unità di Controllo di un processore sequenziale.
* Organizzazione pipeline di un processore. Hazard nella pipeline. Valutazione delle prestazioni di un processore pipeline. Tecniche per il rilevamento e la risoluzione degli hazard nella pipeline.
2.4 Il Sottosistema di memoria.
Memorie RAM statiche e dinamiche.
* Memorie cache. Politiche di Block placement, block identification, block replacement e di scrittura. Valutazione delle prestazioni della memoria.
* Tecniche per il miglioramento delle prestazioni della cache.
___________________________________________________________________
* Conoscenze
minime irrinunciabili per il superamento dell'esame.
N.B. La conoscenza degli argomenti contrassegnati con l'asterisco è
condizione necessaria ma non sufficiente per il superamento dell'esame.
Rispondere in maniera sufficiente o anche più che sufficiente alle domande su
tali argomenti non assicura, pertanto, il superamento dell'esame.
Testi di riferimento
[T2] Patterson, Hennessy, “Struttura e progetto dei calcolatori – Progettare con RISC-V”, Zanichelli
[T3] Materiale fornito del docente on line ( Microsoft Teams Computer Architectures (M-Z), AA. 25-26 codice: axe7wtv)
Programmazione del corso
Argomenti | Riferimenti testi | |
---|---|---|
1 | Progetto di reti combinatori. Algebra di commutazione. Espressioni booleane minime. Minimizzazione mediate il metodo delle mappe di Karnaugh. Tempo previsto: 4 ore di didattica frontale + 4 ore di esercitazione | T1 capitoli 3 e 4, T3 |
2 | Progetto di reti sequenziali sincrone. Introduzione alle macchine sequenziali. Gli elementi di memoria: i bistabili. Sintesi di reti sequenziali sincrone. Minimizzazione delle macchine a stati finiti. Tempo previsto: 4 ore di didattica frontale + 8 ore di esercitazione | T1 capitoli 5 e 6, T3 |
3 | Progettazione di un sistema digitale. Flusso di progettazione di un sistema digitale. Datapath e unità di controllo. Componenti di un sistema digitale. Circuiti Aritmetici. Tempo previsto: 2 ore di didattica frontale + 2 ore di esercitazione | T1 capitoli 7 e 8, T2 capitolo 3, T3 |
4 | I tipi di calcolatori e le loro caratteristiche. I componenti di un calcolatore. Organizzazione dei calcolatori elettronici. Valutazione delle prestazioni. Tempo previsto: 1 ora di didattica frontale + 2 ore di esercitazione | T2 capitolo 1, T3 |
5 | Architettura del Set di Istruzioni dei processori. Tempo previsto: 2 ore di didattica frontale | T2 capitolo 2, T3 |
6 | Organizzazione sequenziale di un processore. Datapath di un processore sequenziale. Unità di Controllo di un processore sequenziale. Tempo previsto: 2 ore di didattica frontale + 1 ora di esercitazione | T2 capitolo 4, T3 |
7 | Organizzazione Pipeline di un processore. Gli Hazards nella pipeline.Tempo previsto: 4 ore di didattica frontale + 2 ore di esercitazione | T2 capitolo 4, T4 |
8 | Assembly di un processore RISC. Assembler, linker e loader. Struttura di un programma assembly. Un Instruction Set Simulator per il RISC-V. Tempo previsto: 1 ora di didattica frontale + 1 ora di esercitazione | T3 |
9 | Istruzioni logico-aritmetiche. Istruzioni di accesso alla memoria. Istruzioni per il controllo di flusso. Tempo previsto: 1 ora di didattica frontale + 4 ore di esercitazione | T3 |
10 | Chiamate di sistema. Lettura e stampa di interi e stringhe. Gestione degli array. Chiamata a procedure. Tempo previsto: 1 ora di didattica frontale + 4 ore di esercitazione | T3 |
11 | Il Sottosistema di memoria. Ram Statica e RAM dinamica. Tempo previsto: 2 ore di didattica frontale | T2 capitolo 5, T3 |
12 | Memorie cache. Politiche di Block placement, block identification, block replacement e di scrittura. Valutazione delle prestazioni delle memorie cache.Tempo previsto: 2 ore di didattica frontale + 1 ora di esercitazione | T2 capitolo 5, T3 |
13 | Tecniche per il miglioramento delle prestazioni della cache.Tempo previsto: 2 ore di didattica frontale + 1 ora di esercitazione | T2 capitolo 5, T3 |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
L'esame consiste in un'unica prova scritta e al calcolatore. Nella prova d'esame sono previsti:
- Due quesiti sulle reti logiche (11 punti);
- lo sviluppo di un programma assembly (7 punti);
- un esercizio di valutazione delle prestazioni dei calcolatori e due quesiti sulle architetture dei calcolatori (14 punti).
Per superare la prova è necessario ottenere un punteggio minimo pari a 18, con almeno 6/11 punti per i quesiti sulle reti logiche, con almeno 4/7 per l’assembly e almeno 8/14 punti per i quesiti sulle architetture (valutazione prestazione+architetture dei calcolatori).
Non sono previste prove in itinere.
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Esempi di domande e/o esercizi frequenti
Esempi di domande e/o
esercizi frequenti sono disponibili in Microsoft Teams (