Corso di ARCHITETTURA DEI CALCOLATORI

Anno Accademico 2003/04
Docente: professor Giovanni Chiola

ultima modifica di queste informazioni: 7 Febbraio 2005



Descrizione generale

Il corso di Architettura dei Calcolatori é valutato 12 crediti e si svolge nell 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 ad un livello prettamente introduttivo e può essere seguito senza particolari prerequisiti oltre al corso di Informatica Generale e ad 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 (marzo-aprile), 40h

Introduzione e ripasso da Informatica Generale (2h)
linguaggi, livelli e macchine virtuali, macchina di Von Neumann ed evoluzione storica, organizzazione tipica delle macchine contemporanee.
Codici (10h)
rappresentazione di numeri in forma binaria, distanza di Hamming, ridondanza, rilevazione e correzione di errori, codici ad espansione.
Livello di macchina convenzionale (10h)
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.
Livello di logica circuitale (10h)
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.
Il primo scritto di esonero (il cui testo e' disponibile in formato PostScript compresso via FTP) sugli argomenti della prima parte è stato espletato il 15 aprile 2004, con i risultati elencati qui.

Seconda parte (maggio-giugno), 40h

Architettura microprogrammata (6h)
Struttura e microcodice dell'esempio VM-1. Ottimizzazioni possibili del microcodice VM-1, microarchitetture a microprogrammazione orizzontale e verticale.
Architetture RISC (8h)
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 (12h)
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.
Il secondo scritto di esonero (il cui testo e' disponibile in formato PostScript compresso via FTP) sugli argomenti della seconda parte è stato espletato il 14 giugno 2004, con i risultati elencati qui.

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.

Questo é il link per accedere all'introduzione, la quale contiene anche l'indice di tutti gli argomenti.

Modalità d'esame

Consiste in una unica prova scritta, sostituibile dai due scritti di esonero svolti a termine di ciascuna parte. Vengono stabiliti 4 appelli scritti per anno accademico in aggiunta ai due scritti parziali di esonero. Gli studenti che intendono partecipare ad un appello scritto devono prenotarsi usando l'apposita form 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.

La prova scritta d'esame può (anzi, nella normalità dei casi dovrebbe!) essere sostituita da due scritti parziali riguardanti, rispettivamente, gli argomenti della prima e seconda parte, tenuti a pochi giorni di distanza dalla fine delle lezioni sui rispettivi argomenti. La somma dei voti dei due scritti di esonero (in quindicesimi) oppure il voto della prova scritta completa (in trentesimi) costituiscono il voto finale proposto.

Ogni studente può iscriversi a tutti gli appelli, anche dopo l'ottenimento di un voto sufficiente, ma può ottenere la correzione di non più di due prove scritte complete per anno. In caso di prove ripetute con valutazione almeno sufficiente, viene registrato l'ultimo voto ottenuto in ordine di tempo. Non si terrà conto di eventuali esiti insufficienti se non ai fini del conteggio del numero di correzioni per anno.

In alcuni casi particolari (per esempio, voto di scritto 29/30 a fronte della consapevolezza di aver imparato tutto ...) gli studenti potranno chiedere al docente una ulteriore 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. Nel caso lo studente non rinunci alla prova orale dopo aver sentito la formulazione della prima domanda, il voto finale composto dal voto dell'ultimo scritto sufficiente con l'aggiunta dell'incremento della prova orale verrà registrato comunque, anche se il voto finale dovesse risultare insufficiente. 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

15 aprile 2004, ore 14:30
Primo scritto parziale ( testo con soluzione, esito).
14 giugno 2004, ore 14:00
Secondo scritto parziale ( testo con soluzione, esito).
29 giugno 2044, ore 14:00
Primo appello completo ( testo con soluzione, esito).
21 luglio 2004, ore 14:00
Secondo appello completo ( testo con soluzione, esito).
23 settembre 2004, ore 14:00
Terzo appello completo ( testo con soluzione, esito).
31 gennaio 2005, ore 14:00
Quarto appello completo ( testo con soluzione, esito).