Architettura degli elaboratori ii

A.A. 2015/2016
Insegnamento per
6
Crediti massimi
60
Ore totali
Lingua
Italiano
Obiettivi formativi
Fornire la conoscenza dei componenti principali dei calcolatori
Fornire la conoscenza dei principi di funzionamento dei diversi componenti e delle loro connessioni.
Fornire gli strumenti per valutare le prestazioni dei calcolatori e per ottimizzare le applicazioni.

Struttura insegnamento e programma

Linea Milano - Edizione 1
Edizione attiva
Laboratori: 24 ore
Lezioni: 36 ore
Turni:
Turno A
Docente: Basilico Nicola
Programma
CPU
The architecture of a simple CPU and its Control Unit.CISC and RISC architectures. Principles of pipelining, hazards and stalls. Feed-forwarding. Pipeline multiple issues. Out-of-order execution. Speculation. Multi-cores and clusters. Principles of parallel distributed processing.

Memory hierarchies
Memory structure and characteristics. The hierarchy of memories and the cache. Direct mapped and associative cache memories. SRAM and DRAM technology. Memory coherence and consistence in single and multi-processor architectures. Error Correction codes. Disks and flash memories.

Other components
Introduction to Intel architectures. Input/output and buses. Evaluation of architecture performances.

Laboratory
The lab course of Computer Architectures II is an introduction to assembly programming with particular reference to MIPS architecture. The laboratory provides the basis for understanding the relationship between high-level code and assembly language. Through the development of code segments of increasing complexity, the course aims at developing practical skills of low-level programming, emphasizing the difficulties and benefits of writing programs at a low level of abstraction with a detailed control of the hardware.
In detail, the workflow of the laboratory is as follows:
· Introduction to Assembly language and brief tutorial on the simulator SPIM.
· Memory access in read and write modes, use of different addressing mechanisms.
· Low-level programming techniques: use of the stack and data segment, register spilling, flow control.
· Calling conventions in procedures and use of system calls.
· Handling interrupts and exceptions, understanding the Exception handler and trying methods to modify its behavior.
· Developing nested and recursive procedures.
Materiale didattico e bibliografia
Bibliography

Main text (in English or Italian)
· Struttura e progetto dei calcolatori: l'interfaccia hardware-software, D.A. Patterson and J.L. Hennessy, Quarta edizione, Zanichelli, estate 2014 (Nota: la quarta edizione Zanichelli è la traduzione della quinta edizione inglese).
· "Computer Organization & Design: The Hardware/Software Interface", D.A. Patterson and J.L. Hennessy, Morgan Kaufmann Publishers, Fifth Edition, 2014.
· You can found the text and solution of many exercises at the following URL: http://books.elsevier.com/companions/1558606041/.
· Lab software tool is PCSpim: http://pages.cs.wisc.edu/~larus/spim.html
Periodo
Secondo semestre
Linea Milano - Edizione 2
Edizione attiva
Responsabile
Laboratori: 24 ore
Lezioni: 36 ore
Turni:
Turno B
Docente: Re' Matteo
STUDENTI FREQUENTANTI
Programma
- Introduzione al corso. La CPU multi-ciclo.
- CPU multi-ciclo: struttura.
- CPU multi-ciclo: progetto unità di controllo.
- CPU multi-ciclo: progetto UC. Gestione delle eccezioni.
- La CPU pipeline: struttura, criticità strutturali.
- La CPU pipeline: criticità di dato.
- La CPU pipeline: criticità di controllo.
- La CPU pipeline: strutture di CPU pipeline moderne.
- Assemby MIPS: gestione degli array
- Assembly MIPS: strutture di controllo
- Assembly MIPS: ambiente SPIM
- Assembly MIPS: funzioni e procedure; lo stack; procedure annidate e recursive
- La memoria: aspetti tecnologici. Memorie statiche.
- Memorie dinamiche. Tecnologia flash. Tecniche di controllo d'errore (ECC).
- Organizzazione della memoria: la memoria cache. Gerarchia di memorie.
- Memoria cache a mappatura diretta.
- Memorie cache associative. Strategie di aggiornamento e di scrittura in cache. Cache coherence.
- Memoria virtuale. TLB. Protezione della memoria. Le periferiche. Il bus: architetture a bus
- Bus: sincronizzazione, arbitraggio. Tecniche di gestione dell' I/O
- Memorie di massa: tecnologia.
- Stima delle prestazioni di un elaboratore. Esempi di calcolo.
Prerequisiti e modalità di esame
L'esame consiste in:
- una prova scritta seguita da una prova orale, se la prova scritta è stata sufficiente;
- una prova di laboratorio (sito del Laboratorio di Architettura 1).
Al completamento di entrambe le prove viene registrato il voto finale, calcolato come media pesata dei 2 voti ottenuti.
Le prove in itinere sostituiscono la prova scritta e la prova orale.
Tra il superamento dell'esame (scritto+orale) e la consegna del relativo progetto non deve trascorrere più di un anno.
Materiale didattico e bibliografia
Slide proiettate durante le lezioni a disposizione degli studenti.

Testi di riferimento:
- D.A. Patterson, J. L. Hennessy - Struttura e progetto dei calcolatori - Zanichelli
- M.M. Mano, C.R. Kime - Reti logiche - Pearson
STUDENTI NON FREQUENTANTI
Programma
idem come freq.
Prerequisiti e modalità di esame
idem come freq.
Materiale didattico e bibliografia
idem come freq.
Periodo
Secondo semestre
Periodo
Secondo semestre
Modalità di valutazione
Esame
Giudizio di valutazione
voto verbalizzato in trentesimi
Docente/i
Ricevimento:
su appuntamento
Dip. di Informatica, Via Celoria 18, 20133 Milano (MI), Ufficio 4008
Ricevimento:
Su appuntamento, utilizzare preferibilmente email
Sede Dipartimento di via Celoria 18