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: 8
Crediti: 8
Crediti: 8
Tipo: A scelta dello studente
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: 
2018/2019
Anno di corso: 
1
Anno accademico di erogazione: 
2018/2019
Tipo di attività: 
Obbligatorio
Lingua: 
Italiano
Crediti: 
8
Ciclo: 
Secondo Semestre
Ore di attivita' didattica: 
76

Moduli

Metodi di valutazione

Modalita' di verifica dell'apprendimento: 

La versione aggiornata delle regole è disponibile al link http://old.disco.unimib.it/architettura1/avvisi/avvisi.html#regole_esame_104

Tutte le seguenti regole sono puramente indicative di come la commissione d'esame, nel suo giudizio, intende di norma procedere nella valutazione; non indicano che la commissione seguirà acriticamente sempre e comunque queste regole.

L'esame prevede due prove al calcolatore, una obbligatoria ed una facoltativa.

La prima prova è costituita da domande a risposta chiusa (prevalentemente esercizi) e domande a risposta aperta ed è chiamata prova NE in quanto verte su un insieme ridotto di argomenti, definiti come "Non Eludibili".

La seconda prova è facoltativa e può essere sostenuta solo da chi ha riportato un esito sufficiente nella prova NE. Quest'ultima è chiamata prova A (Approfondimento) in quanto verte su argomenti che, pur facendo parte dal secolo scorso delle conoscenze fondamentali della architettura degli elaboratori, sono considerati meno imprescindibili di quelli NE.

Valutazione: 
Voto Finale

Obiettivi formativi

Alla fine del corso lo studente avrà compreso gli elementi dell’architettura di un semplice elaboratore e sarà in grado di comprendere e scrivere programmi assembler elementari.

Contenuti

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

Programma esteso

Rappresentazione del'informazione
rappresentazione dell'informazione non numerica,
rappresentazione dei numeri interi con e senza segno,
rappresentazione dei numeri in virgola fissa e mobile.
Circuiti logici
reti combinatorie,
reti sequenziali e FSM (Finite State Machine),
rassegna di circuiti notevoli (decoder, multiplexer, register file, ALU, etc.).
Instruction Set Architecture
schema di von Neumann,
CPU, registri, ALU e memoria,
ciclo fondamentale di esecuzione di una istruzione (fetch/decode/execute),
tipi e formati di istruzioni MIPS32,
modalità di indirizzamento.
Linguaggio Assembly
formato simbolico delle istruzioni,
catena di programmazione (compilatore, assembler, linker, loader, debugger, etc.),
pseudo-istruzioni e direttive dell'assemblatore,
scrittura di semplici programmi assembly,
convenzioni programmative (memoria, nomi dei registri, etc.).
Datapath
percorsi dei dati per le diverse classi di istruzioni,
controllo del percorso dei dati con FSM (implementazione multi-ciclo).
Gestione delle eccezioni
tassonomia di eccezioni in terminologia MIPS32,
modifiche alla FSM di controllo, registro Cause, etc.
Tecniche di gestione dell'ingresso/uscita
controllo di programma,
interruzione di programma,
accesso diretto alla memoria.
Gerarchie di memoria: cache
cache a mappatura diretta,
cache fully associative,
cache n-way set associative.

Bibliografia consigliata

Libro di testo: David Patterson, John Hennessy: Computer Organization and Design, The Hardware/Software Interface. Fifth edition. Morgan Kaufmann (Elsevier)
Materiale disponibile su elearning relativo a lezioni, esercitazioni e laboratorio, alcune prove di autovalutazione, etc.

Metodi didattici

lezioni
esercitazioni
laboratorio
studio individuale