Architettura degli elaboratori ii
A.A. 2022/2023
Obiettivi formativi
L'insegnamento fornisce la conoscenza del funzionamento delle architetture digitali approfondendo in particolare la pipe-line, i multi-core e le gerarchie di memoria in modo da potere capire a fondo le problematiche legate ai sistemi operativi e all'ottimizzazione del software. Vengono forniti gli strumenti per valutare le prestazioni dei calcolatori e per ottimizzare le applicazioni.
Risultati apprendimento attesi
Lo studente sarà in grado di comprendere il funzionamento delle architetture pipe-line e multi-core, dei metodi di gestione delle gerarchie di memoria e del supporto hardware alla memoria virtuale; comprenderà le tipologie di collegamento tra i diversi componenti e le diverse politiche di gestione dell'input/output, e avrà strumenti per valutare le prestazioni dei calcolatori e per ottimizzare le applicazioni.
Periodo: Secondo 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
Secondo semestre
Programma
PARTE TEORICA
Introduzione. CPU e UC a singolo ciclo, multi-ciclo e pipeline. Hazard e loro trattamento. Stalli. Pipeline avanzate: multiple-issue e multi-core.
Interrupt ed eccezioni. La gestione HW delle eccezioni. Grerarchia delle memorie. Memoria virtuale.
Input/Output e metriche di valutazione.
LABORATORIO
Laboratorio sulla costruzione corretta di programma in linguaggio assembler.
Introduzione. CPU e UC a singolo ciclo, multi-ciclo e pipeline. Hazard e loro trattamento. Stalli. Pipeline avanzate: multiple-issue e multi-core.
Interrupt ed eccezioni. La gestione HW delle eccezioni. Grerarchia delle memorie. Memoria virtuale.
Input/Output e metriche di valutazione.
LABORATORIO
Laboratorio sulla costruzione corretta di programma in linguaggio assembler.
Prerequisiti
Nessuno. E' suggerito di seguire questo corso dopo il corso di Architettura degli Elaboratori I.
Metodi didattici
lezioni frontali + laboratorio.
Modalità di frequenza: in presenza
Modalità di frequenza: in presenza
Materiale di riferimento
Testo di base (è disponibile sia in inglese che in italiano):
· "Computer Organization & Design: The Hardware/Software Interface", D.A. Patterson and J.L. Hennessy, Morgan Kaufmann Publishers, New 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.
· "Computer Organization & Design: The Hardware/Software Interface", D.A. Patterson and J.L. Hennessy, Morgan Kaufmann Publishers, New 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.
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.
La prova orale è basata sulla discussione della prova scritta e su quesiti che riguardano gli argomenti trattati a lezione. All'inizio della prova orale verrà corretta la prova scritta in presenza dello studente e determinato il punteggio della prova scritta.
La prova di laboratorio consiste nella realizzazione al PC di una serie di esercizi di programmazione in Assembler.
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.
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.
La prova orale è basata sulla discussione della prova scritta e su quesiti che riguardano gli argomenti trattati a lezione. All'inizio della prova orale verrà corretta la prova scritta in presenza dello studente e determinato il punteggio della prova scritta.
La prova di laboratorio consiste nella realizzazione al PC di una serie di esercizi di programmazione in Assembler.
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.
INF/01 - INFORMATICA - CFU: 6
Laboratori: 24 ore
Lezioni: 36 ore
Lezioni: 36 ore
Docenti:
Borghese Nunzio Alberto, Tarini Marco
Turni:
Docente:
Borghese Nunzio Alberto
Turno A
Docente:
Tarini MarcoEdizione 2 (cognomi H-Z)
Responsabile
Periodo
Secondo semestre
Per la parte di teoria è prevista una modalità a distanza sincrona negli orari prestabiliti. Verrà utilizzata una piattaforma di web conference (Teams o Zoom). Ogni lezione verrà registrata e resa disponibile in modo asincrono tramite file video caricati sulla piattaforma Ariel.
Per la parte di laboratorio è prevista una modalità mista sincrona: parte degli studenti in presenza (su base volontaria e nel rispetto di vincoli sanitari e di condivisione equa) e i restanti a distanza. Per la parte a distanza verrà utilizzata una piattaforma di web conference (Teams o Zoom). Le sessioni saranno registrate e rese disponibili a tutti in modo asincrono sulla piattaforma Ariel (https://nbasilicoae2.ariel.ctu.unimi.it/), dove verranno anche descritte le modalità per partecipare alle sessioni in presenza.
I programmi non subiranno modifiche e il materiale di riferimento includerà anche videolezioni.
Gli esami scritti per la parte di teoria e di laboratorio verranno svolti a distanza (piattaforma Exam.net o equivalenti).
Le modalità sopra descritte verranno attivate in caso di restrizioni imposte dall'emergenza sanitaria. Saranno applicate in toto o in parte a seconda della criticità della situazione specifica. I dettagli organizzativi verranno comunicati per tempo sulla pagina Ariel del corso (https://nbasilicoae2.ariel.ctu.unimi.it/).
Per la parte di laboratorio è prevista una modalità mista sincrona: parte degli studenti in presenza (su base volontaria e nel rispetto di vincoli sanitari e di condivisione equa) e i restanti a distanza. Per la parte a distanza verrà utilizzata una piattaforma di web conference (Teams o Zoom). Le sessioni saranno registrate e rese disponibili a tutti in modo asincrono sulla piattaforma Ariel (https://nbasilicoae2.ariel.ctu.unimi.it/), dove verranno anche descritte le modalità per partecipare alle sessioni in presenza.
I programmi non subiranno modifiche e il materiale di riferimento includerà anche videolezioni.
Gli esami scritti per la parte di teoria e di laboratorio verranno svolti a distanza (piattaforma Exam.net o equivalenti).
Le modalità sopra descritte verranno attivate in caso di restrizioni imposte dall'emergenza sanitaria. Saranno applicate in toto o in parte a seconda della criticità della situazione specifica. I dettagli organizzativi verranno comunicati per tempo sulla pagina Ariel del corso (https://nbasilicoae2.ariel.ctu.unimi.it/).
Programma
Per la parte di teoria:
- CPU a singolo ciclo e a ciclo multiplo: pipeline, criticità, interrupt, eccezioni e loro gestione;
- memoria statica e dinamica, memoria virtuale, gerarchia di memoria;
- input/output;
- metriche di valutazione delle prestazioni.
Per la parte di laboratorio, oltre ad un tutorial sull'utilizzo degli strumenti software, vengono svolte esercitazioni di programmazione Assembly su:
- uso della memoria;
- system calls;
- controllo di flusso;
- definizione e chiamata a procedure;
- gestione delle eccezioni.
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.
- CPU a singolo ciclo e a ciclo multiplo: pipeline, criticità, interrupt, eccezioni e loro gestione;
- memoria statica e dinamica, memoria virtuale, gerarchia di memoria;
- input/output;
- metriche di valutazione delle prestazioni.
Per la parte di laboratorio, oltre ad un tutorial sull'utilizzo degli strumenti software, vengono svolte esercitazioni di programmazione Assembly su:
- uso della memoria;
- system calls;
- controllo di flusso;
- definizione e chiamata a procedure;
- gestione delle eccezioni.
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
È suggerita la frequenza del corso Architettura degli Elaboratori I.
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 (https://nbasilicoae2.ariel.ctu.unimi.it/).
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
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.
Ad ulteriore supporto durante il corso verranno forniti tramite piattaforma Ariel (https://nbasilicoae2.ariel.ctu.unimi.it/) slides, esercizi ed altro materiale integrativo.
Ad ulteriore supporto durante il corso verranno forniti tramite piattaforma Ariel (https://nbasilicoae2.ariel.ctu.unimi.it/) slides, esercizi ed altro materiale integrativo.
Modalità di verifica dell’apprendimento e criteri di valutazione
Per la parte di teoria la verifica consiste in una prova scritta della durata di 3 ore massimo 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. A sostituzione della prima verifica possono essere svolte due prove in itinere durante lo svolgimento del corso.
Per la parte di laboratorio, di circa 1 ora, la verifica consiste nello svolgimento al PC di alcuni esercizi proposti. Ciascun esercizio prevede la scrittura di un programma Assembly per l'architettura MIPS 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 (e opzionalmente per email). 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ù tre appelli d'esame successivi o sei mesi (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, di circa 1 ora, la verifica consiste nello svolgimento al PC di alcuni esercizi proposti. Ciascun esercizio prevede la scrittura di un programma Assembly per l'architettura MIPS 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 (e opzionalmente per email). 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ù tre appelli d'esame successivi o sei mesi (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
Docenti:
Basilico Nicola, Re' Matteo
Turni:
Docente:
Basilico Nicola
Turno C
Docente:
Re' MatteoSiti didattici
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:
Martedì 14:30-17:30 (o su appuntamento)
Dipartimento (Via Celoria 18) -- 4to piano.