Architettura degli elaboratori i
A.A. 2022/2023
Obiettivi formativi
L'insegnamento introduce le conoscenze dei principi che sottendono al funzionamento di un elaboratore digitale; partendo dal livello delle porte logiche si arriva, attraverso alcuni livelli di astrazione intermedi, alla progettazione di ALU firmware e di un'architettura MIPS in grado di eseguire il nucleo delle istruzioni in linguaggio macchina.
Risultati apprendimento attesi
Lo studente si sarà impadronito dei principi base che sottendono all'elaborazione dell'informazione digitale. In particolare, avrà acquisito competenze che gli consentiranno di comprendere, analizzare e progettare circuiti combinatori e sequenziali.
Periodo: Primo semestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.
Programma e organizzazione didattica
Edizione 1 (cognomi A-G)
Responsabile
Periodo
Primo semestre
Programma
PARTE DI TEORIA
Introduzione
L'architettura di riferimento. Il ciclo di esecuzione delle istruzioni. Storia dell'elaboratore. Codifica dell'informazione. Rappresentazione binaria dei numeri.
Logica e algebra combinatoria
Operazioni su numeri binari. Le operazioni fondamentali: addizioni e sottrazioni. Rappresentazione binaria dei numeri in virgola mobile. Logica combinatoria. Algebra di Boole: variabili e operatori. Implementazione circuitale (porte logiche). Dai circuiti alla funzione. Porte universali. Dalle funzioni ai circuiti. Tabelle della verita'. Dalle tabelle della verita' ai circuiti: la prima forma canonica. Implementazione dellefunzioni logiche mediante PLA e ROM. Circuiti combinatori notevoli. Esercizi.
ALU
Addizionatori. Il problema del riporto. Moltiplicatori HW. Progettazione di una ALU a due stadi. Sommatore a 32 bit. Supporto all'operazione di confronto. Anticipazione di riporto. Introduzione al firmware. Circuiti firmware di moltiplicazione e divisione. Aritematica e addizionatori per numeri in virgola mobile.
Logica sequenziale
Temporizzazione dei circuiti booleani. Circuiti sequenziali. Il latch SC e il latch D. Registri e register file. Problemi di temporizzazione. I flip-flop. Macchine a stati finiti. Dalle specifiche al circuito. Il grafo e la tabella di transizioni di stato. Codifica della STT. Sintesi del circuito di una macchina a stati finiti. Esempi.
Introduzione alla CPU
Progetto di una CPU semplice e della sua unita' di controllo. Il formato dei diversi tipi di istruzioni. Istroduzione al codice macchina e assembler.
PARTE DI LABORATORIO
Progettazione e costruzione dei circuiti logici via via introdotti nella parte teorica, mediante simulatore.
Introduzione
L'architettura di riferimento. Il ciclo di esecuzione delle istruzioni. Storia dell'elaboratore. Codifica dell'informazione. Rappresentazione binaria dei numeri.
Logica e algebra combinatoria
Operazioni su numeri binari. Le operazioni fondamentali: addizioni e sottrazioni. Rappresentazione binaria dei numeri in virgola mobile. Logica combinatoria. Algebra di Boole: variabili e operatori. Implementazione circuitale (porte logiche). Dai circuiti alla funzione. Porte universali. Dalle funzioni ai circuiti. Tabelle della verita'. Dalle tabelle della verita' ai circuiti: la prima forma canonica. Implementazione dellefunzioni logiche mediante PLA e ROM. Circuiti combinatori notevoli. Esercizi.
ALU
Addizionatori. Il problema del riporto. Moltiplicatori HW. Progettazione di una ALU a due stadi. Sommatore a 32 bit. Supporto all'operazione di confronto. Anticipazione di riporto. Introduzione al firmware. Circuiti firmware di moltiplicazione e divisione. Aritematica e addizionatori per numeri in virgola mobile.
Logica sequenziale
Temporizzazione dei circuiti booleani. Circuiti sequenziali. Il latch SC e il latch D. Registri e register file. Problemi di temporizzazione. I flip-flop. Macchine a stati finiti. Dalle specifiche al circuito. Il grafo e la tabella di transizioni di stato. Codifica della STT. Sintesi del circuito di una macchina a stati finiti. Esempi.
Introduzione alla CPU
Progetto di una CPU semplice e della sua unita' di controllo. Il formato dei diversi tipi di istruzioni. Istroduzione al codice macchina e assembler.
PARTE DI LABORATORIO
Progettazione e costruzione dei circuiti logici via via introdotti nella parte teorica, mediante simulatore.
Prerequisiti
Nessuno.
Metodi didattici
a) Lezioni frontali + b) Laboratorio disciplinare. La presenza è fortemente consigliata.
Materiale di riferimento
Testo di base per i corsi di Architettura degli Elaboratori I e II (è disponibile sia in inglese che in italiano):
· "Computer Organization & Design: The Hardware/Software Interface", D.A. Patterson and J.L. Hennessy, Morgan Kaufmann Publishers, Sixth Edition, 2020. NB Morgan Kaufman ha pubblicato anche una versione del testo per RISC-V e per ARM, non adottata in questo corso.
· Struttura e progetto dei calcolatori: l'interfaccia hardware-software, D.A. Patterson and J.L. Hennessy, Quinta edizione, Zanichelli. Nota: la quinta edizione Zanichelli è la traduzione della sesta edizione inglese.
Per un approfondimento sui circuiti combinatori e sequenziali:
· "Progettazione digitale" F. Fummi, M.G. Sami, C. Silvano, Seconda edizione McGrawHill. 2007.
· "Computer Organization & Design: The Hardware/Software Interface", D.A. Patterson and J.L. Hennessy, Morgan Kaufmann Publishers, Sixth Edition, 2020. NB Morgan Kaufman ha pubblicato anche una versione del testo per RISC-V e per ARM, non adottata in questo corso.
· Struttura e progetto dei calcolatori: l'interfaccia hardware-software, D.A. Patterson and J.L. Hennessy, Quinta edizione, Zanichelli. Nota: la quinta edizione Zanichelli è la traduzione della sesta edizione inglese.
Per un approfondimento sui circuiti combinatori e sequenziali:
· "Progettazione digitale" F. Fummi, M.G. Sami, C. Silvano, Seconda edizione McGrawHill. 2007.
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste di una prova scritta, di una prova orale e di una prova di laboratorio.
Nella prova scritta, della durata di tre ore, viene richiesta la risoluzione di alcuni esercizi che richiedono di applicare i metodi trattati durante il corso e vengono proposti quesiti a risposta aperta. L'orale è costituito da una discussione dello scritto e da domande specifiche sul programma del corso.
Per la parte di laboratorio la verifica, di circa 2 ore, consiste nello svolgimento al PC di alcuni esercizi proposti. Ciascun esercizio prevede la costruzione di un circuito digitale che rispetti una data specifica. Durante la prova è consentita la consultazione di materiale didattico approvato dal docente.
Ciascuna prova verrà valutata in trentesimi e la valutazione finale sarà la media delle tre valutazioni.
In tutte e tre le prove, la valutazione terrà in considerazione il livello di conoscenza e la sua profondita' e la chiarezza dell'esposizione.
La prova scritta e la prova di laboratorio possono essere superate in appelli differenti, ma all'interno di un arco temporale di al più 6 mesi o tre appelli d'esame successivi (vale il meno restrittivo).
Nella prova scritta, della durata di tre ore, viene richiesta la risoluzione di alcuni esercizi che richiedono di applicare i metodi trattati durante il corso e vengono proposti quesiti a risposta aperta. L'orale è costituito da una discussione dello scritto e da domande specifiche sul programma del corso.
Per la parte di laboratorio la verifica, di circa 2 ore, consiste nello svolgimento al PC di alcuni esercizi proposti. Ciascun esercizio prevede la costruzione di un circuito digitale che rispetti una data specifica. Durante la prova è consentita la consultazione di materiale didattico approvato dal docente.
Ciascuna prova verrà valutata in trentesimi e la valutazione finale sarà la media delle tre valutazioni.
In tutte e tre le prove, la valutazione terrà in considerazione il livello di conoscenza e la sua profondita' e la chiarezza dell'esposizione.
La prova scritta e la prova di laboratorio possono essere superate in appelli differenti, ma all'interno di un arco temporale di al più 6 mesi o tre appelli d'esame successivi (vale il meno restrittivo).
INF/01 - INFORMATICA - CFU: 6
Laboratori: 24 ore
Lezioni: 36 ore
Lezioni: 36 ore
Docenti:
Borghese Nunzio Alberto, Trucco Gabriella
Turni:
Docente:
Borghese Nunzio Alberto
Turno A
Docente:
Trucco GabriellaEdizione 2 (cognomi H-Z)
Responsabile
Periodo
Primo semestre
Programma
Per la parte di teoria:
- introduzione agli argomenti, obiettivi e organizzazione del corso;
- rappresentazione ed elaborazione logica dell'informazione: codifiche binarie per numeri naturali, interi e reali, funzioni logiche e algebra di Boole;
- rappresentazione ed elaborazione fisica dell'informazione: porte logiche e tabelle di verità;
- sintesi di funzioni logiche con circuiti combinatori, realizzazione dell'unità aritmetico-logica (ALU);
- memorizzazione dell'informazione: elementi di logica sequenziale (bistabili, latch, sincronizzazione tramite clock);
- sintesi di circuiti sequenziali, macchine a stati finiti;
- progetto di una CPU singolo-ciclo e cenni al caso multi-ciclo;
Per la parte di laboratorio, oltre ad un tutorial sull'utilizzo degli strumenti software, vengono svolte esercitazioni su:
- codifica binaria;
- logica combinatoria (forme canoniche, cammino critico);
- logica combinatoria avanzata (moltiplicazione, ALU);
- logica sequenziale (memorie, macchine a stati finiti);
Le due parti, teoria e laboratorio, vengono svolte in parallelo. L'inizio delle esercitazioni di laboratorio di norma segue di una o due settimane quello delle lezioni di teoria.
- introduzione agli argomenti, obiettivi e organizzazione del corso;
- rappresentazione ed elaborazione logica dell'informazione: codifiche binarie per numeri naturali, interi e reali, funzioni logiche e algebra di Boole;
- rappresentazione ed elaborazione fisica dell'informazione: porte logiche e tabelle di verità;
- sintesi di funzioni logiche con circuiti combinatori, realizzazione dell'unità aritmetico-logica (ALU);
- memorizzazione dell'informazione: elementi di logica sequenziale (bistabili, latch, sincronizzazione tramite clock);
- sintesi di circuiti sequenziali, macchine a stati finiti;
- progetto di una CPU singolo-ciclo e cenni al caso multi-ciclo;
Per la parte di laboratorio, oltre ad un tutorial sull'utilizzo degli strumenti software, vengono svolte esercitazioni su:
- codifica binaria;
- logica combinatoria (forme canoniche, cammino critico);
- logica combinatoria avanzata (moltiplicazione, ALU);
- logica sequenziale (memorie, macchine a stati finiti);
Le due parti, teoria e laboratorio, vengono svolte in parallelo. L'inizio delle esercitazioni di laboratorio di norma segue di una o due settimane quello delle lezioni di teoria.
Prerequisiti
Nessuno.
Metodi didattici
La parte di teoria si volge tramite lezioni frontali in cui vengono presentate delle slides rese disponibili in formato PDF tramite la piattaforma Ariel.
La parte di laboratorio si svolge con esercitazioni guidate da svolgersi al PC. Gli strumenti software utilizzati, i testi degli esercizi e una selezione di loro risoluzioni sono rese disponibili tramite la piattaforma Ariel.
Sia per la parte di teoria che per quella di laboratorio la frequenza è consigliata.
La parte di laboratorio si svolge con esercitazioni guidate da svolgersi al PC. Gli strumenti software utilizzati, i testi degli esercizi e una selezione di loro risoluzioni sono rese disponibili tramite la piattaforma Ariel.
Sia per la parte di teoria che per quella di laboratorio la frequenza è consigliata.
Materiale di riferimento
Sito web dell'insegnamento su Ariel: https://nbasilicoae1.ariel.ctu.unimi.it/
Verranno forniti slides, esercizi ed altro materiale integrativo.
Sia la parte di teoria che quella di laboratorio si basano sugli argomenti trattati in: "Struttura e Progetto dei Calcolatori" di David A. Patterson e John L. Hennessy, Zanichelli.
Verranno forniti slides, esercizi ed altro materiale integrativo.
Sia la parte di teoria che quella di laboratorio si basano sugli argomenti trattati in: "Struttura e Progetto dei Calcolatori" di David A. Patterson e John L. Hennessy, Zanichelli.
Modalità di verifica dell’apprendimento e criteri di valutazione
Per la parte di teoria la verifica consiste in una prova scritta della durata di massimo 3 ore dove si propone la risoluzione di un numero congruo di esercizi. Ciascun esercizio prevede l'applicazione dei principi e delle tecniche presentate a lezione. Durante la prova non è consentito consultare materiale didattico.
Per la parte di laboratorio la verifica, di circa 1 ora, consiste nello svolgimento al PC di alcuni esercizi proposti. Ciascun esercizio prevede la costruzione di un circuito digitale che rispetti una data specifica. Durante la prova è consentita la consultazione di materiale didattico approvato dal docente.
Entrambe le verifiche, teoria e laboratorio, risultano in un voto in trentesimi che viene comunicato tramite la piattaforma Ariel (opzionalmente anche per mail). Se entrambi i voti sono maggiori o uguali a 18, l'esame è superato con voto pari alla media pesata del voto di teoria (peso 2/3) e di quello di laboratorio (peso 1/3). Le due prove possono essere superate in appelli differenti, ma all'interno di un arco temporale di al più 6 mesi o tre appelli d'esame successivi (vale il meno restrittivo).
Le valutazioni terranno conto di padronanza delle tecniche, correttezza ed eleganza delle soluzioni, chiarezza espositiva e formale. Verifiche e loro valutazioni non verranno differenziate in base alla frequenza.
Per la parte di laboratorio la verifica, di circa 1 ora, consiste nello svolgimento al PC di alcuni esercizi proposti. Ciascun esercizio prevede la costruzione di un circuito digitale che rispetti una data specifica. Durante la prova è consentita la consultazione di materiale didattico approvato dal docente.
Entrambe le verifiche, teoria e laboratorio, risultano in un voto in trentesimi che viene comunicato tramite la piattaforma Ariel (opzionalmente anche per mail). Se entrambi i voti sono maggiori o uguali a 18, l'esame è superato con voto pari alla media pesata del voto di teoria (peso 2/3) e di quello di laboratorio (peso 1/3). Le due prove possono essere superate in appelli differenti, ma all'interno di un arco temporale di al più 6 mesi o tre appelli d'esame successivi (vale il meno restrittivo).
Le valutazioni terranno conto di padronanza delle tecniche, correttezza ed eleganza delle soluzioni, chiarezza espositiva e formale. Verifiche e loro valutazioni non verranno differenziate in base alla frequenza.
INF/01 - INFORMATICA - CFU: 6
Laboratori: 24 ore
Lezioni: 36 ore
Lezioni: 36 ore
Docente/i
Ricevimento:
Su appuntamento, utilizzare preferibilmente email
Dipartimento di Informatica
Ricevimento:
Concordare via email e/o su piattaforma Microsoft Teams. Per specifici corsi fare riferimento al sito Ariel del corso.
Milano - via Celoria 18 (stanza 3010) e/o Ms Teams/Zoom
Ricevimento:
su appuntamento tramite e-mail
Dipartimento di Informatica - sede di Crema