ING-INF/05

Curriculum: PERCORSO COMUNE

A.A.
CFU Durata (ore)
Periodo Sede
2016/2017 12 96 Ciclo Annuale Unico URBINO

Didattica in lingua straniera
Insegnamento interamente in lingua straniera nel percorso online: Inglese

* Per questo insegnamento erogato in modalità mista presenza/online, la didattica online è svolta interamente in lingua straniera e l'esame può essere sostenuto in lingua straniera.

Assegnato ai Corsi di Studio

Docente


Alessandro Bogliolo

alessandro.bogliolo@uniurb.it

Obiettivi Formativi
Il Corso ha lo scopo di descrivere l'architettura di un calcolatore, con particolare riferimento al pipelining e alla gerarchia di memroia, fornendo gli elementi teorici necessari a motivarne le scelte progettuali, a comprenderne il funzionamento, a valutarne le prestazioni, e a comprenderne la relazione con le tecniche di programmazione in assembly e ad alto livello.

Programma
01. Introduzione:
01.01 Automazione.
01.02 Breve storia del calcolo automatico.

02. Codifica delle informazioni:
02.01 Il problema della codifica digitale.
02.02 Rappresentazione digitale di insiemi numerici e aritmetica binaria.
02.03 Rappresentazione digitale di insiemi non numerici e segnali.
02.04 Codici ridondanti a rivelazione e a correzione d'errore.

03. Reti logiche:
03.01 Porte logiche e reti di interruttori, algebra di Boole, reti logiche. 
03.02 Sintesi di reti logiche combinatorie.
03.03 Reti logiche sequenziali.
03.04 Progettazione di circuiti logici a livello gate.
03.05 Sistemi digitali.
03.06 Laboratorio: progetto e simulazione di reti logiche con TkGate.
03.07 Decodifica di indirizzi04. Sistemi a microprocessore:
04.01 Il modello di Von Neumann.
04.02 Il repertorio delle istruzioni e la classificazione delle architetture. 

05. L'architettura interna della CPU:
05.01 Pipelining e prestazioni.
05.02 Architettura di riferimento: DLX.
05.03 Conflitti e stalli.
05.04 Laboratorio: simulazione della pipeline del DLX con WinDLX/WinMIPS.

06. Ottimizzazione delle prestazioni di un microprocessore:
06.01 Ottimizzazione statica del codice.
06.02 Laboratorio: esempi di ottimizzazione statica.
06.03 Parallelismo: Microprocessori multiple-issue.
06.04 Ottimizzazione dinamica: esecuzione fuori ordine e speculazione.
06.05 Laboratorio: sviluppo e impiego di benchmark

07. La memoria:
07.01 Dispositivi di memoria volatili: RAM statiche e dinamiche.
07.02 Dispositivi di memoria non volatili: ROM, Flash, HD.
07.03 La gerarchia di memoria: caching e memoria virtuale.

08. La comunicazione:
08.01 I bus e i dispositivi di I/O.
08.02 Le interruzioni e il DMA.

Eventuali Propedeuticità
Non vi sono propedeuticità obbligatorie.Si suggerisce di sostenere l'esame di Architettura degli Elaboratori prima di sostenere gli esami di Basi di Dati e Sistemi Operativi. 

Risultati di Apprendimento (Descrittori di Dublino)
Conoscenza e comprensione
Lo studente acquisirà le conoscenze fondamentali nel campo delle architetture degli elaboratori e delle basi teoriche che ne sono il fondamento, con particolare riferimento a: rappresentazioni digitali delle informazioni, reti di interruttori, porte logiche, reti logiche combinatorie e sequenziali, sistemi digitali sincroni, sistemi a microprocessore, memorie a semiconduttore, interfacce hardware-software e sincronizzazione dei componenti di un sistema. Lo studente comprenderà i principi e il funzionamento dei principali accorgimenti architetturali, tra i quali il pipelining, il data forwarding, il caching e la memoria virtuale. Lo studente acquisirà inoltre le conoscenze d base sull'esplorazione dello spazio di progetto di sistemi hardware-software valutando le metriche fondamentali e mettendo a confronto soluzioni alternative.Capacità di applicare conoscenza e comprensione
Lo studente sarà in grado di progettare e simulare a livello logico, a livello gate e a livello register-transfer semplici sistemi digitali e componenti aritmetico-logici, applicando teniche di sintesi logica e strategie di progetto top-down e bottom-up. Sarà in grado inoltre di tradurre in assembly semplici segmenti di codice e effettuarne ottimizzazioni statiche al fine di ridurre l'incidenza di conflitti che possano causare stalli della pipeline.Autonomia di giudizio
Lo studente sarà in grado di valutare e confrontare soluzioni alternative che implementano la setssa specifica, valutando le metriche di progetto a fine di verificare il rispetto dei vincoli e prendere decisioni orientate all'ottimizzazione.Abilità comunicative
Lo studente sarà in grado di usare in modo appropriato la terminologia propria della materia e di metterla in relazione alla terminologia delle altre discipline del corso di studi. Avrà inoltre opportunità di lavoro in gruppo e di esposizione dei progetti svolti.Capacità di apprendimento
Lo studente acquisirà la capacità di apprendere le criticità dei sistemi hardware-software e di comprendere a fondo la logica delle soluzioni architetturali adottate per risolverle. Tali capacità potranno essere applicate in autonomia per affrontare lo studio di problematiche e soluzioni architetturali non trattate nel corso.
Materiale Didattico e Attività di Supporto
Dispense scritte dal docente e video-tutorial, resi disponibili attraverso la piattaforma di blended learning.Videolezioni e comunità di apprendimento aperta in modalità MOOC su piattaforma http://europeanmoocs.eu/

Il materiale didattico e le comunicazioni specifiche del docente sono reperibili, assieme ad altre attività di supporto, all'interno della piattaforma Moodle › blended.uniurb.it

Modalità Didattiche, Obblighi di Frequenza, Testi di Studio e Modalità di Accertamento
Modalità Didattiche
Lezioni frontali in aula e in laboratorio, erogate anche in modalità MOOC. 
Obblighi di Frequenza
Sebbene fortemente consigliata, la frequenza non è obbligatoria.
Testi di Studio
Dispense fornite dal docente.Hennessy, Patterson, "Computer Organization and Design: The Hardware/Software Interface", 5th edition, Elsevier (Morgan Kauffman Series), 2013. [http://store.elsevier.com/product.jsp?isbn=9780123747501] (La IV edizione è disponibile online su Google books isbn 978-0-12-374750-1)Hennessy, Patterson, "Struttura e progetto dei calcolatori: L'interfaccia hardware-software", Zanichelli, 2014.
Modalità di Accertamento
Prova scritta, discussione orale di un progetto individuale o di gruppo e prova orale facoltativa.La durata della prova scritta è di un'ora e trenta minuti. Durante il corso è possibile sostenere la prova scritta in due prove parziali di un'ora ciascuna.La prova scritta può essere sostenuta anche prima di presentare la relazione del progetto. Il progetto deve essere presentato oralmente dopo aver predisposto e consegnato una relazione scritta.Gli esiti della prova scritta e del progetto individuale restano validi per tutto l'anno accademico in cui sono stati conseguiti.La prova scritta e il progetto individuale sono valutati in trentesimi. La media dei due voti costituisce il voto di ammissione all'orale (facoltativo). L'esito dell'orale incide per + o - 5 punti sul voto finale.
Informazioni Aggiuntive per Studenti Non Frequentanti
Modalità Didattiche
Gli studenti non frequentanti possono avvalersi della piattaforma di blended learning e delle lezioni erogate in modalità MOOC sulla piattaforma http://europeanmoocs.eu/
Obblighi di Frequenza
Sebbene fortemente consigliata, la frequenza non è obbligatoria.
Testi di Studio
Come per studenti frequentanti
Modalità di Accertamento
Come per studenti frequentanti

Note
Il corso è erogato sia nel "percorso in presenza" che nel "percorso online" (con materiale didattico e interazioni in inglese) del Corso di Laurea di Informatica Applicata.Inoltre dall'A.A. 2016/17 il corso è anche offerto in modalità MOOC sulla piattaforma http://europeanmoocs.eu/