ID:
003716
Tipo Insegnamento:
Obbligatorio
Durata (ore):
60
CFU:
6
SSD:
ELETTRONICA
Url:
INGEGNERIA ELETTRONICA E INFORMATICA/Percorso Comune Anno: 1
Anno:
2024
Dati Generali
Periodo di attività
Secondo Semestre (24/02/2025 - 05/06/2025)
Syllabus
Obiettivi Formativi
L'obiettivo formativo principale del corso è la comprensione da parte dello studente di quali siano gli elementi fondamentali dell'architettura di un sistema di calcolo basato su microprocessore e di come la progettazione dei suoi elementi interni possa influire sulle prestazioni del sistema. Attraverso una visione di tipo top-down lo studente acquisirà la conoscenza dell'interfaccia hardware/software di un generico calcolatore per poi passare ai dettagli specifici e ai concetti base di Elettronica Digitale richiesti per la sua progettazione.
Il corso è propedeutico ai corsi successivi all'interno del percorso di laurea in ambito Information and Communication Technology (ICT) che trattano i sistemi digitali per il processamento dei dati e fornisce le basi per affrontare lo studio dei sistemi di calcolo digitali complessi.
Le principali conoscenze acquisite saranno:
• Principi di funzionamento della macchina di Von Neumann
• Calcolo delle prestazioni di un sistema di calcolo basato su microprocessore
• Instruction Set Architecture (ISA) e linguaggio assembler del microprocessore RISC-V
• Elementi di base dell’algebra booleana e delle porte logiche per rappresentare istruzioni e dati
• L’analisi e la sintesi di semplici circuiti logici combinatori
• Le rappresentazioni dei numeri e i circuiti combinatori per effettuare operazioni matematiche elementari in un sistema digitale
• Gli elementi di base dei circuiti sequenziali, sincroni e asincroni
Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:
• Rappresentare numeri e caratteri nei formati binari più diffusi
• Programmare in linguaggio assembler dell'ISA RISC-V
• Individuare le tecniche più appropriate per l’analisi e la sintesi di semplici circuiti combinatori e sequenziali
• Sintetizzare semplici macchine a stati finiti
• Comprendere l'architettura e il funzionamento di Unità Aritmetico-Logiche
• Comprendere benefici e limiti di una architettura di von Neumann
• Analizzare il comportamento di frammenti di codice C o Assembler sul datapath di una microarchitettura mediato dalle decisioni del compilatore
Il corso è propedeutico ai corsi successivi all'interno del percorso di laurea in ambito Information and Communication Technology (ICT) che trattano i sistemi digitali per il processamento dei dati e fornisce le basi per affrontare lo studio dei sistemi di calcolo digitali complessi.
Le principali conoscenze acquisite saranno:
• Principi di funzionamento della macchina di Von Neumann
• Calcolo delle prestazioni di un sistema di calcolo basato su microprocessore
• Instruction Set Architecture (ISA) e linguaggio assembler del microprocessore RISC-V
• Elementi di base dell’algebra booleana e delle porte logiche per rappresentare istruzioni e dati
• L’analisi e la sintesi di semplici circuiti logici combinatori
• Le rappresentazioni dei numeri e i circuiti combinatori per effettuare operazioni matematiche elementari in un sistema digitale
• Gli elementi di base dei circuiti sequenziali, sincroni e asincroni
Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:
• Rappresentare numeri e caratteri nei formati binari più diffusi
• Programmare in linguaggio assembler dell'ISA RISC-V
• Individuare le tecniche più appropriate per l’analisi e la sintesi di semplici circuiti combinatori e sequenziali
• Sintetizzare semplici macchine a stati finiti
• Comprendere l'architettura e il funzionamento di Unità Aritmetico-Logiche
• Comprendere benefici e limiti di una architettura di von Neumann
• Analizzare il comportamento di frammenti di codice C o Assembler sul datapath di una microarchitettura mediato dalle decisioni del compilatore
Prerequisiti
Il corso non prevede requisiti specifici essendo una base di partenza per i corsi successivi nel percorso di laurea. Tuttavia potrebbe essere utile per alcuni argomenti del corso avere acquisito le seguenti abilità:
- Dimestichezza con gli algoritmi dell'aritmetica decimale
- Programmazione di base nel linguaggio C
- Concetti base come l'utilizzo dei vettori e dei puntatori nel linguaggio C
- Dimestichezza con gli algoritmi dell'aritmetica decimale
- Programmazione di base nel linguaggio C
- Concetti base come l'utilizzo dei vettori e dei puntatori nel linguaggio C
Metodi didattici
Il corso sarà tenuto solamente in presenza e sarà basato su didattica frontale in aula.
Come ausilio per la didattica, durante le lezioni legate alla parte più orientata verso l'Elettronica Digitale verrà utilizzata una piattaforma di quiz interattivi per verificare il grado di comprensione della classe sui concetti fondamentali trattati durante la lezione o nella lezione precedente. Per le parti del corso orientate verso l'ISA e l'interfaccia hardware/software del microprocessore RISC-V verrà utilizzato il simulatore RIPES (liberamente scaricabile e disponibile su https://github.com/mortbopet/Ripes)
Ogni argomento teorico del corso è accompagnato da domande sulla teoria e da esercizi che gli studenti svolgeranno autonomamente. Le domande e gli esercizi sono selezionati all’interno del data base delle domande utilizzate per l’esame e sono quindi del tutto rappresentativi delle domande che costituiscono l’esame finale.
La correzione delle domande verrà svolta in aula.
Come ausilio per la didattica, durante le lezioni legate alla parte più orientata verso l'Elettronica Digitale verrà utilizzata una piattaforma di quiz interattivi per verificare il grado di comprensione della classe sui concetti fondamentali trattati durante la lezione o nella lezione precedente. Per le parti del corso orientate verso l'ISA e l'interfaccia hardware/software del microprocessore RISC-V verrà utilizzato il simulatore RIPES (liberamente scaricabile e disponibile su https://github.com/mortbopet/Ripes)
Ogni argomento teorico del corso è accompagnato da domande sulla teoria e da esercizi che gli studenti svolgeranno autonomamente. Le domande e gli esercizi sono selezionati all’interno del data base delle domande utilizzate per l’esame e sono quindi del tutto rappresentativi delle domande che costituiscono l’esame finale.
La correzione delle domande verrà svolta in aula.
Verifica Apprendimento
L’obiettivo della prova d’esame consiste nel verificare il livello di raggiungimento degli obiettivi formativi precedentemente indicati.
L’esame è costituito da una prova a quiz, lasciando allo studente comunque la possibilità di sostenere un esame orale integrativo opzionale.
La prova a quiz verte su tutti gli argomenti trattati nel corso. La prova ha lo scopo di valutare lo studio della materia e la comprensione degli argomenti di base. La prova è costituita da 33 domande (quiz a risposta multipla, con un’unica risposta corretta, sia su aspetti di teoria che su semplici esercizi). La risposta corretta assegna 1 punto, la risposta sbagliata assegna -0.5 punti, la mancata risposta 0 punti. Per superare la prova è necessario acquisire almeno 18 punti su 33. Il tempo previsto per la prova è di 66 minuti. Non è consentito consultare testi o utilizzare PC, smart phone e calcolatrici durante la prova. Il superamento della prova è testimonianza dell’aver acquisto sufficienti conoscenze degli elementi di base dell'architettura di von Neumann, delle modalità di calcolo delle prestazioni in un sistema basato su microprocessore, dell'Instruction Set Architecture (ISA) del processore RISC-V, dell’algebra di Boole, delle porte logiche, dell’analisi e sintesi di circuiti combinatori e dei circuiti sequenziali sincroni.
Lo studente che abbia comunque raggiunto la sufficienza (punteggio maggiore o uguale a 18) ma che non fosse soddisfatto del punteggio ottenuto può sostenere una prova orale, nella quale non sarà valutata tanto l'abilità nel "ripetere" qualche argomento trattato a lezione, quanto la capacità di collegare e confrontare aspetti diversi trattati durante il corso. La prova ha anche l’obiettivo di esercitare lo studente nella presentazione orale delle proprie conoscenze e competenze, con un effetto formativo nell’ambito delle Soft Skills.
La valutazione della prova orale può portare a un aumento, ma anche ad una diminuzione, del voto conseguito nella prova scritta.
Le indicazioni operative per l’esame verranno riportate nel Classroom associato al corso.
L’esame è costituito da una prova a quiz, lasciando allo studente comunque la possibilità di sostenere un esame orale integrativo opzionale.
La prova a quiz verte su tutti gli argomenti trattati nel corso. La prova ha lo scopo di valutare lo studio della materia e la comprensione degli argomenti di base. La prova è costituita da 33 domande (quiz a risposta multipla, con un’unica risposta corretta, sia su aspetti di teoria che su semplici esercizi). La risposta corretta assegna 1 punto, la risposta sbagliata assegna -0.5 punti, la mancata risposta 0 punti. Per superare la prova è necessario acquisire almeno 18 punti su 33. Il tempo previsto per la prova è di 66 minuti. Non è consentito consultare testi o utilizzare PC, smart phone e calcolatrici durante la prova. Il superamento della prova è testimonianza dell’aver acquisto sufficienti conoscenze degli elementi di base dell'architettura di von Neumann, delle modalità di calcolo delle prestazioni in un sistema basato su microprocessore, dell'Instruction Set Architecture (ISA) del processore RISC-V, dell’algebra di Boole, delle porte logiche, dell’analisi e sintesi di circuiti combinatori e dei circuiti sequenziali sincroni.
Lo studente che abbia comunque raggiunto la sufficienza (punteggio maggiore o uguale a 18) ma che non fosse soddisfatto del punteggio ottenuto può sostenere una prova orale, nella quale non sarà valutata tanto l'abilità nel "ripetere" qualche argomento trattato a lezione, quanto la capacità di collegare e confrontare aspetti diversi trattati durante il corso. La prova ha anche l’obiettivo di esercitare lo studente nella presentazione orale delle proprie conoscenze e competenze, con un effetto formativo nell’ambito delle Soft Skills.
La valutazione della prova orale può portare a un aumento, ma anche ad una diminuzione, del voto conseguito nella prova scritta.
Le indicazioni operative per l’esame verranno riportate nel Classroom associato al corso.
Testi
Il corso adotta i seguenti testi di riferimento.
Per la parte di calcolo delle prestazioni, Instruction Set Architecture e ALU del processore RISC-V:
Struttura e Progetto dei Calcolatori - seconda edizione
D. A. Patterson, J. L. Hennessy
Ed. Zanichelli 2023
Per la parte orientata alle Reti Logiche (algebra di Boole, circuiti combinatori, sequenziali):
Progettazione digitale - terza edizione
F. Fummi, M. Lora, M. Sami, C. Silvano
Ed. McGraw Hill-education 2023
Le slides proiettate a lezione nonché gli esempi in aula con l'ausilio di un simulatore RISC-V costituiscono essi stessi un riferimento disponibile sul Classroom del corso.
Per la parte di calcolo delle prestazioni, Instruction Set Architecture e ALU del processore RISC-V:
Struttura e Progetto dei Calcolatori - seconda edizione
D. A. Patterson, J. L. Hennessy
Ed. Zanichelli 2023
Per la parte orientata alle Reti Logiche (algebra di Boole, circuiti combinatori, sequenziali):
Progettazione digitale - terza edizione
F. Fummi, M. Lora, M. Sami, C. Silvano
Ed. McGraw Hill-education 2023
Le slides proiettate a lezione nonché gli esempi in aula con l'ausilio di un simulatore RISC-V costituiscono essi stessi un riferimento disponibile sul Classroom del corso.
Contenuti
1. Introduzione
Cos’è un calcolatore elettronico ed un sistema digitale – Tipi di calcolatori elettronici - Fasi di progettazione di un calcolatore – Evoluzione e struttura dei sistemi di calcolo
2. Il concetto di algoritmo
Cos'è un algoritmo e che sfida rappresenta per i calcolatori elettronici - Risoluzione tramite sistemi CPU, FPGA ed ASIC - Cenni alle architetture eterogenee e modalità di design delle stesse
3. ISA e microarchitettura di una CPU
Introduzione al concetto di microarchitettura di una CPU - Cosa rappresenta l'Instruction Set Architecture - Cosa significa Computer Architecture
4. Introduzione ai circuiti logici e algebra di Boole
Rappresentazione dello stato di un circuito mediante numeri binari – Funzioni logiche elementari: NOT, AND, OR – Tabella della verità – Gate logici elementari – Circuiti logici – Analisi di un circuito logico – Algebra di Boole – Teoremi a una e più variabili
5. Sintesi di circuiti combinatori
Sintesi di una funzione logica mediante somma di prodotti – Gate NAND e NOR – Sintesi con gate NAND e NOR – Mappe di Karnaugh – Gate logici XOR, XNOR
6. I principali componenti combinatori
Multiplexer e loro applicazioni – Decoders – Demultiplexer e Encorders – Dispositivi logici programmabili PLA – Cenni ROM
7. La ALU di un microprocessore
Esempio di progettazione di una Unità Aritmetico Logica (ALU) a 1 bit – Specializzazione sul caso multi-bit all’interno del processore RISC-V
8. Rappresentazione dei numeri e circuiti aritmetici
Rappresentazione ottale e esadecimale – Addizione di numeri interi positivi – L’addizionatore Ripple Carry – Considerazioni sulle prestazioni – Addizionatori veloci: l’addizionatore Carry-Lookahead – Numeri con segno – Rappresentazione “complemento a 1” e “complemento a 2”– Sottrazione di numeri con segno – Circuito sommatore/sottrattore – Overflow – Rappresentazione di numeri reali: virgola fissa e virgola mobile – Codifica ASCII – Concetto di bit di parità
9. Elementi di base dei circuiti sequenziali: flip-flop, registri, contatori
Terminologia – Latch S-R – Gated latch S-R – Concetto di clock – D latch – Flip-flop Master-Slave – Flip-flop edge triggered – Registri – Shift register – Register file – Contatori asincroni – Divisore di frequenza
10. Circuiti sequenziali sincroni e asincroni
Differenza tra circuiti sincroni e asincroni – Macchine di Moore e di Mealy – Flusso di progetto di un circuito sincrono – Diagramma degli stati – Assegnazione degli stati – Esempi di macchine di Moore e di Mealy: identificatore di sequenze e addizionatore seriale – Esempi di macchine a stati finiti
11. Caratteristiche della macchina di Von Neumann
Componenti principali della macchina di Von Neumann e sue caratteristiche – Astrazioni legate agli accessi ai vari componenti (memorie) – Limiti della architettura – Cenni soluzioni future per la rivoluzione del paradigma di calcolo
12. Calcolo delle prestazioni di un calcolatore elettronico
Definizione delle prestazioni – Throughput e tempo di esecuzione di un programma – Prestazioni relative – Prestazioni di una CPU (CPI e MIPS) – Legge di Amdhal
13. Instruction Set Architecture (ISA) del microprocessore RISC-V
Operazioni e operandi nell’hardware del calcolatore – Istruzioni logiche e per prendere decisioni – Supporto hardware alle procedure – Modalità di indirizzamento – Parallelismo e istruzioni – Tradurre e avviare un programma (il confronto con il C)
14. Esercitazioni dedicate all'uso del microprocessore RISC-V tramite simulatori microarchitetturali
Cos’è un calcolatore elettronico ed un sistema digitale – Tipi di calcolatori elettronici - Fasi di progettazione di un calcolatore – Evoluzione e struttura dei sistemi di calcolo
2. Il concetto di algoritmo
Cos'è un algoritmo e che sfida rappresenta per i calcolatori elettronici - Risoluzione tramite sistemi CPU, FPGA ed ASIC - Cenni alle architetture eterogenee e modalità di design delle stesse
3. ISA e microarchitettura di una CPU
Introduzione al concetto di microarchitettura di una CPU - Cosa rappresenta l'Instruction Set Architecture - Cosa significa Computer Architecture
4. Introduzione ai circuiti logici e algebra di Boole
Rappresentazione dello stato di un circuito mediante numeri binari – Funzioni logiche elementari: NOT, AND, OR – Tabella della verità – Gate logici elementari – Circuiti logici – Analisi di un circuito logico – Algebra di Boole – Teoremi a una e più variabili
5. Sintesi di circuiti combinatori
Sintesi di una funzione logica mediante somma di prodotti – Gate NAND e NOR – Sintesi con gate NAND e NOR – Mappe di Karnaugh – Gate logici XOR, XNOR
6. I principali componenti combinatori
Multiplexer e loro applicazioni – Decoders – Demultiplexer e Encorders – Dispositivi logici programmabili PLA – Cenni ROM
7. La ALU di un microprocessore
Esempio di progettazione di una Unità Aritmetico Logica (ALU) a 1 bit – Specializzazione sul caso multi-bit all’interno del processore RISC-V
8. Rappresentazione dei numeri e circuiti aritmetici
Rappresentazione ottale e esadecimale – Addizione di numeri interi positivi – L’addizionatore Ripple Carry – Considerazioni sulle prestazioni – Addizionatori veloci: l’addizionatore Carry-Lookahead – Numeri con segno – Rappresentazione “complemento a 1” e “complemento a 2”– Sottrazione di numeri con segno – Circuito sommatore/sottrattore – Overflow – Rappresentazione di numeri reali: virgola fissa e virgola mobile – Codifica ASCII – Concetto di bit di parità
9. Elementi di base dei circuiti sequenziali: flip-flop, registri, contatori
Terminologia – Latch S-R – Gated latch S-R – Concetto di clock – D latch – Flip-flop Master-Slave – Flip-flop edge triggered – Registri – Shift register – Register file – Contatori asincroni – Divisore di frequenza
10. Circuiti sequenziali sincroni e asincroni
Differenza tra circuiti sincroni e asincroni – Macchine di Moore e di Mealy – Flusso di progetto di un circuito sincrono – Diagramma degli stati – Assegnazione degli stati – Esempi di macchine di Moore e di Mealy: identificatore di sequenze e addizionatore seriale – Esempi di macchine a stati finiti
11. Caratteristiche della macchina di Von Neumann
Componenti principali della macchina di Von Neumann e sue caratteristiche – Astrazioni legate agli accessi ai vari componenti (memorie) – Limiti della architettura – Cenni soluzioni future per la rivoluzione del paradigma di calcolo
12. Calcolo delle prestazioni di un calcolatore elettronico
Definizione delle prestazioni – Throughput e tempo di esecuzione di un programma – Prestazioni relative – Prestazioni di una CPU (CPI e MIPS) – Legge di Amdhal
13. Instruction Set Architecture (ISA) del microprocessore RISC-V
Operazioni e operandi nell’hardware del calcolatore – Istruzioni logiche e per prendere decisioni – Supporto hardware alle procedure – Modalità di indirizzamento – Parallelismo e istruzioni – Tradurre e avviare un programma (il confronto con il C)
14. Esercitazioni dedicate all'uso del microprocessore RISC-V tramite simulatori microarchitetturali
Lingua Insegnamento
ITALIANO
Corsi
Corsi
3 anni
No Results Found
Persone
Persone (2)
No Results Found