ARCHITETTURA DEGLI ELABORATORI

Crediti: 
6
Settore scientifico disciplinare: 
INFORMATICA (INF/01)
Anno accademico di offerta: 
2016/2017
Semestre dell'insegnamento: 
Primo Semestre
Lingua di insegnamento: 

Italiano

Obiettivi formativi

Proporre un percorso che, partendo dalla rappresentazione dell’informazione e passando per lo studio delle reti logiche, arrivi a definire i fondamentali aspetti architetturali dei calcolatori elettronici.
Il corso prevede, oltre a lezioni teoriche, una serie di esercitazioni in aula sulla parte di reti logiche.

Con riferimento agli Indicatori di Dublino:

Conoscenza e capacità di comprensione
Il corso introduce i primi concetti relativi all'architettura degli elaboratori. Particolare enfasi è data alla comprensione delle architetture classiche basate sul Modello di Von Neumann. Il testo di riferimento è in italiano, ma viene altresì utilizzata durante le lezioni la terminologia in lingua inglese come avviamento alla consultazione di letteratura scientifica internazionale.

Capacità di applicare conoscenza e comprensione
Le conoscenze teoriche presentate vengono sempre applicate alla risoluzione di problemi specifici. Le esercitazioni che affiancano il corso sono incentrate sulla risoluzione di esercizi e problemi, con particolare riferimento all'interfaccia tra hardware e software. Spesso i metodi risolutivi vengono presentati sotto forma algoritmica, sviluppando negli studenti la capacità di strutturare procedure utili in numerose parti dell'informatica e non solo nello studio dell'architettura degli elaboratori.

Autonomia di giudizio
Gli esercizi, che vengono proposti relativamente alla parte teorica svolta a lezione, possono venire risolti individualmente o in gruppo. Il confronto con i compagni di corso, nel lavoro a casa o durante gli svolgimenti in aula, favorisce lo sviluppo di capacità specifiche per poter a chiarire ai compagni o ai docenti le proprie argomentazioni. Spesso gli esercizi proposti possono venire risolti in modi molto diversi e l'ascolto delle soluzioni proposte da altri permette di sviluppare la capacità di individuare strutture comuni, al di là delle apparenti differenze superficiali.

Abilità comunicative
Le numerose discussioni sui diversi metodi per risolvere i problemi proposti consentono di migliorare le capacità di comunicazione. Vengono inoltre abitualmente utilizzate durante le spiegazioni (ed esplicitamente evidenziate in classe) alcune modalità di comunicazione specifiche della tecnologia informatica.

Capacità di apprendimento
Lo studio delle origini delle soluzioni tecnologiche e la loro introduzione motivata da considerazioni quantitative contribuisce a realizzare negli studenti la capacità di apprendere in modo profondo e non soltanto superficiale e ripetitivo. Le conoscenze così acquisite non sono mai rigide e definitive, ma sono perfettamente adattabili ad ogni evoluzione e cambiamento di prospettiva e di contesto.

Prerequisiti

Nessuno

Contenuti dell'insegnamento

I parte – Introduzione ai sistemi di elaborazione

II parte – Livello logico

III parte – Livello funzionale

IV parte – Pipeline e cenni assembly

V parte - Sistemi multicore e GPU

Programma esteso

I parte – Introduzione ai sistemi di elaborazione
Sistemi di elaborazione
Evoluzione storica e tecnologica
Architettura e organizzazione dei calcolatori elettronici
Modelli di sistema e livelli di astrazione
Sistemi di numerazione binario, esadecimale e ottale
Rappresentazione binaria dei numeri reali
Informazioni di carattere alfanumerico
Rappresentazione di suoni, immagini e video

II parte – Livello logico
Algebra delle reti
Circuiti logici elementari
Forme canoniche e trasformazioni
Minimizzazione logica
Reti combinatorie
Reti sequenziali

III parte – Livello funzionale
Relazione tra livello funzionale e livello micro-architettura
Organizzazione di un calcolatore moderno
Il repertorio delle istruzioni
La CPU
I sistemi di memoria
Il sottosistema di I/O

IV parte – Pipeline e cenni assembly

V parte - Sistemi multicore e GPU

Bibliografia

David A. Patterson, John L. Hennessy. Struttura e Progetto dei Calcolatori, Zanichelli, 2006.
Giacomo Bucci. Architettura e organizzazione dei calcolatori elettronici - Fondamenti, McGraw-Hill, 2004.
William Stallings. Architettura e organizzazione dei calcolatori - Progetto e prestazioni, Addison Wesley, 2004.
Andrew S. Tanenbaum. Architettura dei Calcolatori, 5a edizione, Prentice Hall, 2006.
Randall Hyde. The Art of Assembly Programming, disponibile online.

Metodi didattici

Lezioni frontali con esercitazioni assistite.

Modalità verifica apprendimento

Risultati dell'apprendimento e modalità di verifica
Saper comprendere e utilizzare in modo appropriato le tecniche relative alla rappresentazione dell'informazione. Saper lavorare a livello logico nella progettazione di semplici reti combinatorie e sequenziali sincrone. Conoscere l'architettura di base degli elaboratori secondo il Modello di Von Neumann sia a livello funzionale che di micro-architettura. Conoscere e saper utilizzare le principali tecniche di programmazione in linguaggio assembly per architetture classiche.

Modalità di verifica/esame
L'esame consiste in una prova scritta e un colloquio orale a cui si accede solo al superamento della prova scritta. E' possibile sostenere più volte la prova scritta ma ogni scritto consegnato annulla lo scritto precedente. La prova scritta consiste in un insieme di domande aperte sul programma del corso, mentre quella orale comprende alcune domande sugli aspetti di base e generali trattati nell'intero corso.
E’ prevista una prova intermedia a novembre sulla prima meta’ del corso, che, se superata, permette l’esonero della prima parte della prova scritta negli appelli da Gennaio a Luglio inclusi. In questo caso il voto complessivo della prova scritta e’ calcolato come media aritmetica tra la prova scritta e quella intermedia.

Altre informazioni

Viene mantenuta una pagina web dettagliata con gli argomenti di ciascuna lezione svolta: www.unipr.it/~dalpalu/corsi