Home | Search | Help  
Home Page Università di Genova

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.