Il programma preliminare del corso per questo anno accademico. Potra' subire variazioni nel corso del suo svolgimento. Al termine del corso verra' pubblicato il programma definitivo
Per la parte di Reti Logiche:
M. Morris Mano, Charles R. Kime
Reti Logiche (quarta edizione)
Prentice Hall
Per la parte di Architettura dei Calcolatori:
William Stallings
Architettura e
organizzazione dei Calcolatori
Addison Wesley
Gli argomenti svolti possono essere anche reperiti su altri testi, a piacere dello studente. I lucidi presentati a lezione sono gli argomenti che fanno parte del programma.
I lucidi (in inglese) presentati durante le lezioni sono disponibili qua sotto. Le due appendici A1 e A2 sono materiale originale. I capitoli 4, 5, 9 sono versioni estesamente revisionate dei lucidi originali (in inglese) presenti sul questo sito (in inglese) .
Introduzione al corso. Clicca qui.
A1: clicca qui. Classificazione dei sistemi digitali. Rappresentazione dell'informazione: segnali. Sistemi numerici: la notazione posizionale. Algebra booleana. Funzioni booleane. Tavole di verità, espressioni algebriche e circuiti logici. Principali identita' dell'algebra booleana. Principio di dualita'. Algebra di commutazione. Porte NAND, NOR e XOR. Proprietà dell'operatore XOR. Porte universali e insieme di operatori funzionalmente completi. Forma SOP e forma POS. Mintermini e maxtermini. Forma SOP canonica e forma POS canonica. Ottimizzazione circuitale. Criteri di costo. Minimizzazione di circuiti a due livelli attraverso l'utilizzo delle mappe di Karnaugh (per funzioni di 2, 3 e 4 variabili). Funzioni non completamente specificate. Minimizzazione con presenza di valori don't care.
A2: clicca qui. Circuiti combinatorici e tavole di verità. Esempi. Metodologia di progettazione. Un esempio: progettazione di covertitore da codice BCD a codice eccesso-3. Progettazione gerarchica. Blocchi funzionali. Decodificatori. Decodificatori con abilitazione. Encoder e encoder con priorità. Multiplexer e Demultiplexer. Realizzazione di funzioni booleane attraverso multiplexer. Dispositivi Logici Programmabili. ROM (Read Only Memory) e PLA (Programmable Logic Array). Circuiti per l'addizione binaria: half adder, full adder, addizionatori con propagazione del riporto (ripple-carry). Addizionatore con precalcolo del riporto (carry look-ahead adder) e soluzione mista. Introduzione alle reti sequenziali. Latch SR: analisi combinatoria e sequenziale. Latch SR con clock. Il problema della trasparenza del Latch. Il Flip Flop Master-Slave. Flip-Flop di tipo SR, di tipo D e di tipo JK. Registri. Contatori. Macchine (o automi) a stati finiti. Analisi di una rete sequenziale. Sintesi di una rete sequenziale.
Capitolo 9 (Stallings): clicca qui. ALU: unità logico aritmetica. Il problema della rappresentazione dei numeri interi. Notazione modulo e segno. Notazione in complemento a due. La rappresentazione in virgola mobile (floating point). Standard IEEE per i floating point nel formato a precisione singola (32 bit) e doppia (64 bit). Accenni alle operazioni aritmetiche per i numeri in virgola mobile.
Chapter 4&5 (Stallings): clicca qui. La gerarchia della memoria. Caratteristiche di una memoria. Posizione. Dimensione. Unità di trasferimento (e unità indirizzabile). Metodi di accesso: sequenziale, diretto, casuale, associativo. Indici di performance: tempo di accesso, tempo di ciclo, velocità di trasferimento. Tipologie fisiche di memorie. Memoria a semiconduttore. RAM dinamica e RAM statica. Memoria ROM: caratteristiche e tipologie (ROM, PROM, EPROM, EEPROM, e memoria FLASH). Caratteristiche fisiche di una memoria. Organizzazione dei moduli. Codici a correzione d'errore. Codice di Hamming. Memoria cache. Principio di località dei riferimenti: località spaziale e località temporale. Dimensione della cache. Funzioni di traduzione (mapping function): indirizzamento diretto, completamente associativo, set associativo (a k vie). Algoritmi di sostituzione. Politiche di scrittura. Dimensione di una linea della cache. Numero di cache.
Esercitazione 17/10/08: clicca qui
Esercitazione 18e21/11/08: clicca qui
Esercitazione 20/01/09: clicca qui
Alcuni esercizi proposti sulla progettazione di automi a stati finiti: clicca qui
Chapter 1&3 (Stallings): clicca qui. Dall’hardware al software. Architettura di Von Neumann. Architettura e organizzazione. Struttura e funzione. Struttura e funzione di un calcolatore. Componenti di un calcolatore: vista di alto livello (CPU, I/O, Memoria). Ciclo istruzione: prelievo ed esecuzione. Un piccolo esempio di programma. Strutture di interconnessione. Interconnessione a bus. Cosa è un bus. Linee dati, indirizzi e controllo. Problemi di un singolo bus. Bus multiplo. Tipo di bus: dedicato e multiplexato.
Chapter 6 (Stallings): clicca qui. Memoria esterna. Disco magnetico. Meccanismi di lettura e scrittura magnetica. Organizzazione e formattazione dei dati. Caratteristiche fisiche. RAID. Nastri magnetici. Memorie ottiche: CD-ROM, CD-R, CD-RW, DVD.
Chapter 7 (Stallings): clicca qui. Cosa è a cosa serve un modulo di I/O. Diagramma di una periferica. Funzione dei moduli di I/O. Struttura dei moduli di I/O. I/O da programma. I/O memory mapped e separato. I/O interrupt driven. Elaborazione degli interrupt. Problemi di progettazione: come individuare un modulo che ha sollevato un interrutpt e come gestire interrupt multipli. DMA: accesso diretto alla memoria. Canali e processori di I/O. Evoluzione delle funzioni di I/O. Interfaccia esterna: cenni minimi su FireWire e InfiniBand.
Chapter 8 (Stallings): clicca qui. Panoramica sui sistemi operativi e motivazioni. Il sistema operativo come interfaccia utente/calcolatore. Il sistema operativo come gestore delle risorse. Tipi di sistema operativo: interattivi e batch, monoprogrammati e multiprogrammati. I primi sistemi operativi, semplici sistemi batch, sistemi batch multiprogrammati, sistemi a condivisione di tempo. Schedulazione: a lungo, medio e breve termine. Tecniche di schedulazione. Gestione della memoria. Swapping. Partizione della memoria. Partizioni a dimensione fissa. Partizioni a dimensione variabile. Paginazione. Paginazione a richiesta. Memoria virtuale. Segmentazione (cenni).
Chapter 10 (Stallings): clicca qui. Caratteristiche delle istruzioni macchina. Elementi di un’istruzione macchina. Rappresentazione delle istruzioni. Tipi di istruzione (primi cenni). Numero di indirizzi (operandi). Progettazione dell’insieme di istruzioni. Tipi di operandi. Tipi di operazioni. Trasferimento dati, aritmetica e logica, conversione, input/output, sistema. Trasferimento di controllo: istruzioni di salto e chiamate di procedure. Ordinamento dei byte: big-endian e little-endian. Interrupt e ciclo macchina. Interrupt multipli.
Chapter 11 (Stallings): clicca qui. Tecniche di indirizzamento. Indirizzamento immediato, diretto, indiretto, registro, registro indiretto, pila, spiazzamento. Indirizzamento relativo, registro-base, indicizzazione, preindicizzazione, postindicizzazione. Formati delle istruzioni: lunghezza delle istruzioni, allocazione dei bit.
Chapter 12 (Stallings): clicca qui. Organizzazione del processore. Organizzazione dei registri. Registri utente, di controllo e di stato. Esempi di organizzazione di registri. Ciclo esecutivo delle istruzioni. Il ciclo indiretto. Flusso di dati (diagrammi): altri esempi. Pipelining delle istruzioni. Strategia del pipelining. Trattamento dei salti: flussi multipli, prelievo anticipato della destinazione, buffer circolare, predizione dei salti, salto ritardato.
Chapter 16 (Stallings): clicca qui. Micro-operazioni. Ciclo di fetch, di indirettezza, di interrupt, esecutivo. Ciclo istruzione. Controllo del processore. Requisiti funzionali. Segnali di controllo. Esempi di segnali di controllo. Organizzazione interna. Implementazione cablata dell’unità di controllo.
Chapter 17 (Stallings): clicca qui. Controllo microprogrammato: concetti base. Microistruzione orizzontale e verticale. Elementi e funzionamento dell’Unità di Controllo microprogrammata. Serializzazione delle microistruzioni.
Appendice B (materiale originale): clicca qui. Esercizio di progettazione. VS0: un rudimentale processore. Unità di controllo cablata. Unità di controllo microprogrammata. Possibili estensioni per VS0.
ENIAC: lezione 1: clicca qui. Overview sulle lezioni riguardanti la vCPU ENIAC e la programmazione ad essa relativa. Terminologia: emulatore/simulatore, assembly/assembler. ENIAC: introduzione. Visione d'insieme della struttura (schema circuitale) della vCPU ENIAC a 24 bit. Componenti: registri, memoria. Formato delle istruzioni, tipologia degli argomenti, flag. ALU e sue funzionalità. Struttura interna della ALU di vCPU.
ENIAC: lezione 2: clicca qui. Rappresentazione degli interi: complemento a due. Il formato delle istruzioni: 5 tipi di argomento. Le istruzione di vCPU. Il formalismo per la semantica delle istruzioni di vCPU. Criterio di assegnazione degli opcode alle istruzioni. Primi esempi di programmi in ENIAC.
ENIAC: lezione 4: clicca qui. Analisi delgli elementi della circuiteria coinvolti in ciascuna operazione e loro interazione. Circuiteria interna della ALU.
ENIAC: esercizi svolti: clicca qui. Esercizi (con soluzioni) svolti in classe (durante la terza, la quarta e la quinta lezione).
Altro materiale su ENIAC: clicca qui (tesi Mauro Codella) e qui (tesi Dario Dussoni).
Il software è scaricabile qui.
La prova d'esame consiste in una prova scritta ed in un'eventuale prova orale. La prova scritta e' costituita da esercizi e domande sull'intero programma del corso. Tutti gli studenti devono sostenere la prova scritta. La prova orale, che il docente puo' anche decidere di non svolgere confermando il voto della prova scritta, consiste nella discussione dello scritto ed in domande ed esercizi sull'intero programma del corso.
Durante lo scritto e' fatto assoluto divieto di comunicare con altri studenti e di utilizzare materiale didattico.
E' necessario prenotarsi sul sito http://delphi.uniroma2.it.
L'esame puo' essere sostenuto o nella sessione regolare di esami (giugno-luglio 2009) o nelle due sessioni di recupero di settembre 2009 e di gennaio-febbraio 2010.
Nella sessione regolare di esami vi sono a disposizione due appelli e si puo' sostenere l'esame o al primo o al secondo appello. Attenzione: i due appelli NON SONO ESCLUSIVI, ovvero, lo studente che si presenta al primo appello senza superare l'esame, puo' ripresentarsi al secondo appello.
Nella sessione di recupero di settembre 2009 c'e' a disposizione un solo appello. Analogamente, nella sessione di recupero di gennaio-febbraio 2010 c'e' a disposizione un solo appello. E' possibile sostenere l'esame nella prima sessione di recupero e, in caso negativo, sostenerlo nuovamente nella seconda sessione di recupero.
Qui e' disponibile il testo della prova scritta
Le soluzioni della prova scritta sono qui
I risultati della prova scritta sono qui (solo studenti Reti Logiche - vecchio ordinamento)
I risultati dell'esonero sono qui (solo studenti Reti Logiche e Architettura dei Calcolatori - nuovo ordinamento)
Qui e' disponibile il testo della prova scritta
I risultati della prova scritta sono qui (solo studenti Reti Logiche - vecchio ordinamento)
I risultati della prova scritta sono qui (solo studenti Architettura dei Calcolatori - vecchio ordinamento)
I risultati della prova scritta sono qui (solo studenti Reti Logiche e Architettura dei Calcolatori - nuovo ordinamento)
Qui e' disponibile il testo della prova scritta
I risultati della prova scritta sono qui (solo studenti Reti Logiche - vecchio ordinamento)
I risultati della prova scritta sono qui (solo studenti Architettura dei Calcolatori - vecchio ordinamento)
I risultati della prova scritta sono qui (solo studenti Reti Logiche e Architettura dei Calcolatori - nuovo ordinamento)
Qui e' disponibile il testo della prova scritta
I risultati della prova scritta sono qui (solo studenti Architettura dei Calcolatori - vecchio ordinamento)
I risultati della prova scritta sono qui (solo studenti Reti Logiche e Architettura dei Calcolatori - nuovo ordinamento)
Qui e' disponibile il testo della prova scritta
I risultati della prova scritta sono qui
Prof. Luciano Guaà
Università di Roma "Tor Vergata"
Via della
Ricerca Scientifica snc
I-00133 Roma, Italy
E-mail: guala@di.univaq.it
E-mail: guala@mat.uniroma2.it
URL: http://www.mat.uniroma2.it/~guala