Anno di corso: 1

Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale

Anno di corso: 2

Anno di corso: 3

Crediti: 8
Crediti: 8
Crediti: 16
Tipo: A scelta dello studente
Crediti: 4
Tipo: Lingua/Prova Finale
Crediti: 13
Tipo: Altro

ARCHITETTURA DEGLI ELABORATORI

Scheda dell'insegnamento

Anno accademico di regolamento: 
2014/2015
Anno di corso: 
1
Anno accademico di erogazione: 
2014/2015
Tipo di attività: 
Obbligatorio
Crediti: 
8
Ciclo: 
Secondo Semestre
Ore di attivita' didattica: 
64

Moduli

Metodi di valutazione

Modalita' di verifica dell'apprendimento: 

La verifica dell'apprendimento comprende una o più prove scritte su argomenti teorici e pratici ed una eventuale discussione dei risultati. La verifica dell'apprendimento può inoltre derivare dall'esito di prove intermedie parziali.

Valutazione: 
Voto Finale

Obiettivi formativi

Alla fine del corso lo studente avrà compreso gli elementi dell’architettura di un semplice elaboratore e della interazione con la catena programmativa; sarà anche in grado di comprendere e scrivere semplici programmi assembly.

Contenuti

Principali elementi dell’architettura hardware di un elaboratore. Instruction set architecture. Catena programmativa. Controllo del percorso dei dati. Eccezioni. Tecniche di ingresso/uscita. Gerarchie di memoria: cache.

Programma esteso

"Rappresentazione del'informazione:
- informazione numerica e non numerica
- rappresentazione dei numeri interi senza e con segno
- rappresentazione in floating point"

"Circuiti logici:
- reti combinatorie
- reti sequenziali e FSM (Finite State Machine)
- rassegna di circuiti notevoli (decoder, multiplexer, register file, ALU)"

"Instruction Set Architecture:
- schema di von Neumann
- CPU, registri, ALU e memoria
- ciclo fondamentale, per l'esecuzione di ciascuna istruzione (fetch/decode/execute)
- tipi e formati di istruzioni (MIPS32)
- modalità di indirizzamento"

"Linguaggio Assembly:
- formato simbolico delle istruzioni
- catena programmativa (compiler, assembler, linker, loader, debugger, profiler)
- pseudoistruzioni e direttive per l'assemblatore
- scrittura di semplici programmi
- convenzioni programmative di uso dei registri e della memoria
- cenni su memorie cache di tipo diretto"

"Datapath:
- percorso dei dati all'interno della CPU per le diverse classi di istruzioni
- controllo del percorso dei dati con FSM
- gestione delle eccezioni
- ingresso/uscita (controllo di programma, interruzione, accesso diretto alla memoria)"

"Aspetti più avanzati delle architetture reali
- gerarchie di memoria, in particolare cache fully-associative ed n-way set associative
- controllo del percorso dei dati in pipelining"

Bibliografia consigliata

David Patterson, John Hennessy: Computer Organization and Design, The Hardware/Software Interface. Morgan Kaufmann (Elsevier). ISBN: 978-0-12-374750-1

Metodi didattici

Lezioni ed esercitazioni in aula. Attività di laboratorio in e-learning, che include materiale didattico aggiuntivo, esercizi, test di autovalutazione e tutoraggio on-line.