Architettura dei Calcolatori (Arch)
2008-2009
Docenti: Davide
Ancona e Giuseppe
Ciaccio
AulaWeb
Descrizione
generale
Programma
del corso
Registro
delle lezioni
Appunti
in linea e tracce delle lezioni
Modalità
d'esame
Date
degli appelli d'esame
Testi
e
soluzioni degli scritti d'esame degli anni accademici più
recenti (docente Davide Ancona)
Testi
e soluzioni degli scritti d'esame degli anni accademici precedenti
(docente Giovanni Chiola)
Anni
accademici precedenti (docente Giovanni Chiola)
Libri
di testo
Alla
pagina precedente
Per suggerimenti e commenti
potete
scrivermi a:
Davide
Ancona
Grazie!
Ultima modifica: 28 maggio 2009
Descrizione
generale
Il corso di Architettura dei Calcolatori è valutato
12
crediti e si svolge nel secondo semestre del primo anno di corso per
la Laurea
triennale
in informatica. Verte sulla struttura interna delle macchine
multilivello (CPU, Memoria, dischi e altri dispositivi). Obiettivi
principali sono la comprensione del livello hardware e della sua
interazione col software di base e, più in generale, la
relazione tra i diversi livelli di astrazione necessari per lo studio
e la realizzazione di un sistema di calcolo.
Il corso segue un approccio descrittivo a un livello
prettamente
introduttivo e può essere seguito senza particolari
prerequisiti oltre al corso
di Programmazione con Laboratorio e a un minimo di attitudine al
ragionamento logico. Alle lezioni (suddivise in due periodi di circa
35-40 ore ciascuno) sono associate delle esercitazioni in aula. Le
esercitazioni in aula comprendono lo svolgimento guidato di semplici
esercizi di programmazione assembler, approfondimenti puramente
tecnici dei concetti generali discussi a lezione e/o svolgimento di
possibili temi di esame.
Programma del corso
Principali argomenti trattati e stima di massima della
quantità
di tempo dedicata alla trattazione dei vari argomenti. L'elenco
dettagliato degli argomenti svolti in ciascuna lezione viene
via
via aggiornato a posteriori.
Prima parte, 48h
- Codici (16h)
- rappresentazione di numeri in forma binaria, distanza di
Hamming, ridondanza, rilevazione e correzione di errori, codici ad
espansione.
- Livello di logica circuitale (16h)
- richiami di Algebra Booleana e funzioni logiche elementari
(tavole di verità, ecc.), circuiti logici combinatori,
esempi di circuiti numerici, ALU, circuiti sequenziali asincroni e
sincroni, registri, contatori, registri a scorrimento.
- Moduli hardware (8h)
- Registri, memoria RAM statica e dinamica, memoria
associativa, dispositivi a 3 stati, bus asincroni e sincroni e
protocollo Master/Slave per lettura e scrittura, arbitrazione
daisy-chain.
- Livello di macchina convenzionale (8h)
- Codifica delle
istruzioni e modi di indirizzamento fondamentali. Controllori di dispositivi
mappati in memoria. Esempio didattico VM-2.
Seconda parte, 48h
- Architettura microprogrammata (10h)
- Struttura e microcodice dell'esempio VM-1. Ottimizzazioni
possibili del microcodice VM-1, microarchitetture a microprogrammazione
orizzontale e verticale.
- Architetture RISC (10h)
- Insiemi di istruzioni, organizzazione ortogonale e
load/store, macchine CISC e RISC. Esempio didattico VM-R: registri, set
di istruzioni, pseudo-istruzioni e assembler, esempi di programmi.
- Approfondimento di macchine convenzionali (10h)
- Accesso in DMA, interrupt vettorizzati, e nucleo del
sistema operativo. Memoria virtuale (segmentazione e paginazione) e
supporti hardware alla traduzione degli indirizzi. Meccanismi di
protezione e Trap.
- Approfondimento di microarchitettura (10h)
- Memorie cache associative e a corrispondenza diretta,
protocolli di consistenza write-through e write-back. Tecniche di
velocizzazione della CPU: pipelining, caching,
superscalarità.
- Livelli superiori di macchina virtuale (8h)
- Compilazione da C a simbolico VM-2. Cenni sulle nozioni di assemblatore, linker, loader, librerie e supporti run time.
Appunti in linea
Gli appunti
del corso vengono preparati dal docente in formato
HTML per la consultazione mediante un normale browser WWW. Sono
aggiornati man mano (... o quasi) e riflettono abbastanza fedelmente
il contenuto del corso illustrato a lezione. Sono anche consultabili le tracce (non complete) delle lezioni.
Modalità
d'esame
Consiste in una unica prova scritta finale. Gli studenti hanno
diritto a 5 prove finali
per anno
accademico. Gli studenti che intendono partecipare a un appello
devono iscriversi su AulaWeb almeno tre giorni lavorativi prima della data
dell'appello, per consentire la valutazione della capienza delle aule
e la preparazione di un congruo numero di copie del testo.
Il punteggio massimo della prova finale è 36. Il
punteggio
minimo per passare una prova è 18. La lode si ottiene per
punteggi maggiori o uguali a 33.
Ogni studente può ottenere la correzione di non
più
di tre prove scritte finali per anno accademico. È possibile
partecipare a una prova anche se è stata già
passata
una prova precedente (ma nello stesso anno accademico); in questo
caso il punteggio precedente viene perso se si consegna l'elaborato,
indipendentemente dal risultato della correzione.
Il voto ottenuto in un certo anno accademico dovrà
comunque
essere registrato prima del primo appello del seguente anno
accademico, pena la perdita del voto.
Solo in casi eccezionali (quando si è consapevoli
di essere
ben preparati, più di quanto non riveli il voto dell'esame
scritto) gli studenti potranno chiedere al docente una prova orale
integrativa, la quale potrà comportare un incremento (o un
decremento, in caso di esito negativo) compreso tra -3 e +3
trentesimi rispetto al voto della prova scritta. Gli studenti possono
avvalersi della prova orale integrativa una volta sola nello stesso
anno accademico. Poichè statisticamente in passato si
è
verificata la relativa accuratezza della valutazione degli scritti
rispetto alla valutazione di una prova orale degli stessi candidati,
si presume che il valor medio degli incrementi ottenibile con lo
svolgimento della prova orale possa essere abbastanza prossimo a 0.
Date appelli
d'esame
Le date sono pubblicate sulla seguente pagina.
È obbligatoria l'iscrizione su AulaWeb.
Libri di testo
Gli appunti
in linea, gli esercizi d'esame
degli scritti
passati e il materaile didattico reperibile su moodle
dovrebbero essere più che sufficienti
per una buona
preparazione.
Per chi facoltativamente desiderasse approfondire qualche
argomento, ecco un elenco di libri di testo:
-
Structured Computer Organization, 5/E, Andrew S. Tanenbaum
http://vig.prenhall.com/catalog/academic/product/0,1144,0131485210,00.html,
Prentice Hall. Tradotto in Italiano dalla dalla stessa casa editrice
-
Computer Organization and Design: the Hardware/Software
Interface, 2nd Edition, David Patterson and John Hennessy, Elsevier.
Traduzione in Italiano edita dalla Zanichelli.
Per quanto riguarda le traduzioni in italiano, in generale consiglio le
versioni originali: sono più attendibili e una buona conoscenza dell'inglese è importante per un informatico.
|