Architettura dei Calcolatori (Arch) 2005-2006
Docenti: Davide Ancona e Giuseppe Ciaccio
Il corso su Moodle
Descrizione generale
Programma del corso
Registro delle lezioni
Appunti in linea
Modalità d'esame
Date degli appelli d'esame
Testi e soluzioni degli scritti d'esame fino all'anno accademico 2004-2005
Testi e soluzioni degli scritti d'esame di anni accademici
precedenti
Anni accademici precedenti
Alla pagina precedente
Per suggerimenti e commenti potete scrivermi a:
Davide Ancona
Grazie!
Ultima modifica: 14 giugno 2006
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 Informatica Generale
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.
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.
- Codici (12h)
-
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 (12h)
-
Codifica delle istruzioni e modi di indirizzamento fondamentali.
Struttura a stack, richiamo di sottoprogrammi e ritorno.
Controllori di dispositivi mappati in memoria.
Esempio didattico VM-2.
- 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 (14h)
-
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 (12h)
-
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 e conclusioni(2h)
-
livello di linguaggio Assemblatore,
linker, loader, librerie e supporti run time.
Considerazioni sui temi ricorrenti affrontati
e sulla possibilità di applicare tecniche note
a livelli diversi di macchina virtuale.
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.
Questo é il link per accedere all'introduzione,
la quale contiene anche l'indice di tutti gli
argomenti.
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
prenotarsi
sul web 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.
Le date sono pubblicate sulla seguente pagina .
È obbligatoria la
prenotazione .
|