Home
People
Research
Publications
Conferences & Seminars
Teaching (in Italian)

Architetture dei Calcolatori (lettere A-I) - A.A. 2004/05

Corso da 5 crediti del secondo anno del corso di Laurea in Ingegneria Informatica
Corso da 5 crediti del primo anno del corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni

A.A. 2004/2005 - Valeria Cardellini

Il corso ha l'obiettivo principale di fornire le conoscenze di base sulle componenti principali dei calcolatori elettronici di uso generico e sul loro funzionamento, usando come esempio l'architettura MIPS. Inoltre, intende introdurre gli strumenti per la valutazione e la comparazione delle architetture dei moderni sistemi di elaborazione. Durante le esercitazioni verranno proposti semplici esercizi di programmazione in assembler.


Docente

Dott.ssa Valeria Cardellini
E-mail: * (specificare [AC05] nell'oggetto della mail)
Orario di ricevimento:
- durante lo svolgimento del corso: Giovedì in aula al termine della lezione e Mercoledì 10:00-11:30, stanza 3109, terzo piano, edificio "Ingegneria dell'Informazione"
- negli altri periodi: per appuntamento


Avvisi

  • 11 agosto 2005 - L'appello dell'8 settembre si terrà in aula 8 presso Edificio PP1 anzichè in aula 1 Edificio PP2.
  • 21 luglio 2005 - Fissate le date per gli appelli di settembre (vedi Appelli).
  • 19 luglio 2005 - Disponibili i risultati del secondo appello di luglio (vedi Appelli).
  • 19 luglio 2005 - Verbalizzazione del secondo appello di luglio (o orale) giovedì 21 luglio dalle ore 10:30 alle ore 12:30 nel mio studio.
  • 19 luglio 2005 - Disponibile il testo del secondo appello di luglio (vedi Appelli).
  • 14 luglio 2005 - Disponibili i risultati del primo appello di luglio (vedi Appelli).
  • 13 luglio 2005 - Verbalizzazione del primo appello di luglio (o orale) venerdì 15 luglio dalle ore 11:00 alle ore 13:00 nel mio studio.
  • 13 luglio 2005 - Disponibile il testo del primo appello di luglio (vedi Appelli).
  • 7 luglio 2005 - Disponibili i risultati della seconda prova in itinere ed i voti finali delle prove in itinere (vedi Prove in itinere).
  • 7 luglio 2005 - Disponibile il testo della seconda prova in itinere (vedi Prove in itinere).
  • 6 luglio 2005 - Verbalizzazione del voto finale delle prove in itinere (o orale) venerdì 8 luglio dalle ore 11:00 alle ore 13:00 nel mio studio.
  • 30 giugno 2004 - Argomenti per la seconda prova in itinere:
    da lezione su unità logico-aritmetica a lezione su unità di controllo del processore (fino a lucido 10 incluso).
  • 29 giugno 2004 - Modificato il lucido 6 ed eliminati i lucidi 12 e 13 nella lezione sulle tecnologie per la memoria.
  • 28 giugno 2004 - Disponibili i fogli per la prenotazione obbligatoria agli appelli di luglio (vedi Appelli).
  • 28 giugno 2004 - Disponibili i testi di appelli passati (vedi Esercizi).
  • 27 giugno 2005 - Modificata la data della seconda prova in itinere: si terrà mercoledì 6 luglio 2005 ore 9:00 (vedi Prove in itinere).
  • 26 giugno 2005 - Disponibili i risultati della prima prova in itinere (vedi Prove in itinere).
  • 24 giugno 2005 - Disponibile la soluzione della prima prova in itinere (vedi Prove in itinere).
  • 24 giugno 2005 - Disponibili gli esercizi per la rappresentazione in floating point e le seconde prove in itinere degli A.A. 2002/03 e 2003/04 (vedi Esercizi).
  • 24 giugno 2005 - Disponibili gli esempi di programmazione in assembler con floating point (vedi Esempi in assembler).
  • 20 giugno 2005 - Fissate le date per gli appelli di luglio (vedi Appelli).
  • 20 giugno 2005 - Seconda prova in itinere venerdì 8 luglio 2005 ore 14:00 (vedi Prove in itinere).
  • 15 Giugno 2005 - Disponibile il testo della prima prova in itinere (vedi Prove in itinere).
  • 8 Giugno 2005 - Aggiunta del lucido 11 nella lezione sulla valutazione delle prestazioni.
  • 4 Giugno 2005 - Aggiunta del lucido 18 e modifica del lucido 21 nella lezione sull'insieme di istruzioni (5).
  • 1 Giugno 2005 - Correzione del link per l'esempio in assembler bcount.
  • 31 Maggio 2005 - Disponibili gli esempi di programmazione in assembler set_array e overflow (vedi Esempi in assembler).
  • 31 Maggio 2005 - Correzione dei lucidi da 1 a 4 della lezione sull'insieme di istruzioni (5).
  • 31 Maggio 2005 - Aggiunta dei lucidi da 30 a 38 alla lezione sull'insieme di istruzioni (5).
  • 30 Maggio 2005 - Disponibili le prime prove in itinere degli A.A. 2002/03 e 2003/04 (vedi Esercizi).
  • 30 Maggio 2005 - Disponibili gli esempi di programmazione in assembler (vedi Esempi in assembler).
  • 24 Maggio 2005 - Prima prova in itinere martedì 14 giugno 2005 ore 14:00. E' necessario prenotarsi a lezione entro giovedì 9 giugno (vedi Prove in itinere).
  • 24 Maggio 2005 - Correzione del lucido 4 della lezione sull'insieme delle istruzioni (3).
  • 11 Maggio 2005 - Il corso inizia lunedì 16 maggio 2005.

Orario delle Lezioni

Orario valido dal 16/5/2005 all'8/07/2005 (quarto ciclo didattico)
  • Lunedì dalle 13:50 alle 15:20, aula 3 nuovi edifici
  • Martedì dalle 13:50 alle 15:20, aula 1 edificio PP2
  • Giovedì dalle 9:30 alle 11:15, aula 1 edificio PP2

Materiale Didattico

Testi consigliati

book cover Il libro di riferimento è David A. Patterson, John L. Hennessy, "Computer Organization and Design - The Hardware/Software Interface, Third Edition", Morgan Kaufmann Publishers, 2004.

 


 

Altri libri che si possono consultare per approfondimenti sono:
  1. G. Bucci, "Architetture dei Calcolatori Elettronici", MC Graw-Hill, 2001.
  2. W. Stalling, "Architettura e Organizzazione dei Calcolatori, Sesta Edizione", Pearson, 2004.
  3. A. S. Tanenbaum,"Structured Computer Organization, Fourth Edition", Prentice-Hall, 1999.

Lucidi delle lezioni

Il materiale elettronico è in formato pdf.
Per la visualizzazione e la stampa utilizzare Acrobat Reader (scaricabile gratuitamente dal sito di Adobe).
Attenzione! fortemente sconsigliato studiare sui lucidi dei precedenti anni accademici.
 
Giorno Argomento Lucidi Ultima modifica
16/5/2005 Organizzazione del corso
Introduzione
2pp, 4pp
2pp, 4pp
14/5/2005
14/5/2005
17/5/2005 Introduzione
Codifica dell'informazione
vedi lezione precedente
2pp, 4pp

16/5/2005
19/5/2005 Aritmetica binaria
L'insieme delle istruzioni (1)
2pp, 4pp
2pp, 4pp
18/5/2005
18/5/2005
23/5/2005 L'insieme delle istruzioni (1)
L'insieme delle istruzioni (2)
vedi lezione precedente
2pp, 4pp

23/5/2005
24/5/2005 L'insieme delle istruzioni (3) 2pp, 4pp 23/5/2005
26/5/2005 L'insieme delle istruzioni (4) 2pp, 4pp 25/5/2005
30/5/2005 L'insieme delle istruzioni (5)
Il simulatore SPIM
2pp, 4pp
2pp, 4pp
8/6/2005
27/5/2005
31/5/2005 L'insieme delle istruzioni (5) vedi lezione precedente
6/6/2005 L'insieme delle istruzioni (5)
L'insieme delle istruzioni (6)
vedi lezione del 30/5/2005
2pp, 4pp

4/6/2005
7/6/2005 Valutazione delle prestazioni 2pp, 4pp 8/6/2005
8/6/2005 Valutazione delle prestazioni vedi lezione precedente
13/6/2005 Unità logico-aritmetica 2pp, 4pp 12/6/2005
16/6/2005 Rappresentazione in virgola mobile 2pp, 4pp 15/6/2005
20/6/2005 Rappresentazione in virgola mobile vedi lezione precedente
21/6/2005 Istruzioni floating point nel MIPS
Tecnologie per la memoria e gerarchie di memoria
2pp, 4pp
2pp, 4pp
20/6/2005
29/6/2005
23/6/2005 Tecnologie per la memoria e gerarchie di memoria vedi lezione precedente
27/6/2005 Il processore: unità di elaborazione e controllo (1) 2pp, 4pp 24/6/2005
28/6/2005 Il processore: unità di elaborazione e controllo (2) 2pp, 4pp 27/6/2005
30/6/2005 Il processore: unità di elaborazione e controllo (3) 2pp, 4pp 27/6/2005
4/7/2005 Il processore: unità di elaborazione e controllo (3)
Il processore: unità di controllo
vedi lezione precedente
2pp, 4pp

29/6/2005
5/7/2005 Il processore: unità di controllo vedi lezione precedente
7/7/2005 Dispositivi di I/O 2pp, 4pp 6/7/2005
Copyright: All figures from "Computer Organization and Design - The Hardware/Software Interface, Third Edition", by D. Patterson and J. Hennessy, are copyrighted material. (Copyright 2004 Morgan Kaufmann Publishers)

Esempi in assembler MIPS

Argomento Codice Ultima modifica
Procedura foglia (tratto da P&H, pag. 81) leaf.s 30/5/2005
Fattoriale (tratto da P&H, pag. 83) fact.s 30/5/2005
Somma parziale cp_pos.s 26/5/2005
strcpy (tratto da P&H, pag. 92) strcpy.s 30/5/2005
bfind e bcount (P&H es. 2.22 e 2.23) bcount.s 26/5/2005
Conversione da intero in stringa (P&H es. 2.24) itoa.s, itoa.c 30/5/2005
Numero di Fibonacci (P&H es. 2.16) fibonacci.s 27/5/2005
Procedure innestate (set_array, P&H es. 2.15 set_array.s 31/5/2005
Overflow overflow.s 31/5/2005
Conversione da Fahrenheit a Celsius (P&H pp. 209) celsius.s 24/6/2005
Prodotto scalare tra array di float dotprod_float.s 24/6/2005
Somma di array di double sum_double.s 24/6/2005

Esercizi e prove d'esame passate

- Esercizi sulla rappresentazione in floating point (EserciziFP.pdf, Sol_EserciziFP.pdf)
- Prima prova in itinere A.A. 2002/03 (Esonero1_2003.pdf, Sol_Esonero1_2003.pdf)
- Seconda prova in itinere A.A. 2002/03 (Esonero2_2003.pdf, Sol_Esonero2_2003.pdf)
- Prima prova in itinere A.A. 2003/04 (Esonero1_2004.pdf, Sol_Esonero1_2004.pdf)
- Seconda prova in itinere A.A. 2003/04 (Esonero2_2004.pdf, Sol_Esonero2_2004.pdf)
- Appello dell'11 luglio 2003 (110703.pdf)
- Appello del 18 luglio 2003 (180703.pdf)
- Appello del 16 luglio 2004 (160704.pdf)

Link utili

- Sito Web di SPIM: per il download di SPIM e la sua installazione (versione più recente: 7.1)
- Appendice A del libro di Patterson e Hennessy su SPIM (pdf)
Nella restante parte di questa sezione vengono presentati siti di particolare interesse che possono fornire spunti per studi e approfondimenti personali.
- IEEE-754 References: molti link ad altri siti sullo standard IEEE754.
- IA-64 Floating-Point Operations and the IEEE Standard for Binary Floating-Point Arithmetic
- An Interview with the Old Man of Floating-Point: storia dello standard IEEE754 e del suo ideatore William Kahan.
- Java Primitive Data Types - Reals - IEEE754: descrizione IEEE754 e applet java per la conversione da decimale verso tale rappresentazione.
- SPEC: benchmark della Standard Performance Evaluation Corporation (SPEC)
- MIPS Technologies: processori MIPS
- Intel Hardware Design: informazioni tecniche sui prodotti Intel.
- Intel Secrets and Bugs: il bug del Pentium II e Pentium Pro

Programma preliminare

Introduzione. Organizzazione ed architettura di un calcolatore. Struttura e funzionalità. Livelli di astrazione. Tecnologia costruttiva. Breve rassegna storica.
Rappresentazione dell'informazione. Rappresentazione degli interi. Aritmetica degli interi. Rappresentazione in virgola mobile (formato IEEE 754). Aritmetica in virgola mobile. Codifica dei caratteri.
Il set delle istruzioni. Le istruzioni. Le operazioni svolte dall'hardware. Gli operandi dell'hardware. Rappresentazione delle istruzioni all'interno del calcolatore. Modi di indirizzamento. Istruzioni aritmetiche. Istruzioni di load/store. Istruzioni di salto. Istruzioni logiche. Pseudo-istruzioni. Direttive. Chiamate di sistema. Dalla compilazione all'esecuzione di un programma: assemblatore, linker e loader. Confronto tra architetture RISC e CISC.
Unità logico-aritmetica. La costruzione di una ALU.
Memoria. I sistemi di memorizzazione e le tecnologie di memorizzazione. Memoria principale. Lettura e scrittura di una RAM. Gli elementi di memoria. Introduzione alle gerarchie di memoria ed alla memoria cache.
Il processore: unità di elaborazione dati e unità di controllo. Introduzione. Progetto dell'unità di elaborazione dati: unità a ciclo singolo e multi-ciclo. L'unità di controllo per l'ALU. Definizione dell'unità di controllo. La microprogrammazione: il progetto dell'unità di controllo.
Input/Output. Tipi e caratteristiche dei dispositi di I/O. Dischi. Bus sincroni ed asincroni.
Valutazione delle prestazioni. Introduzione alla valutazione delle prestazioni. La misura delle prestazioni. Relazioni tra le metriche. Benchmark.


Esami

Pre-requisiti

Lo studente deve aver superato l'esame di Fondamenti di Informatica 1. Inoltre, si consiglia vivamente che lo studente abbia seguito e superato l'esame di Reti Logiche.

Modalità di esame

Le modalità di esame sono due.
  1. Due prove in itinere scritte.
  2. Una prova scritta nelle sessioni di esami previste (due appelli nel periodo dall'11 al 22 luglio, due appelli nella sessione di recupero a settembre).
L'esame orale è solo su richiesta del docente.

Prove in itinere

- Prima prova in itinere: martedì 14 giugno 2005, ore 14:00, aule T2, T5 e T6 presso Edificio Sogene
E' necessario prenotarsi sui fogli disponibili durante le lezioni del 6, 7 e 9 giugno.
Attenzione! La prenotazione alla prima prova in itinere è obbligatoria.
Testo e soluzione del compito tipo A
Testo e soluzione del compito tipo B

- Seconda prova in itinere: mercoledì 6 luglio 2005, ore 9:00, aula 3 presso Nuovi Edifici.
Alla seconda prova può partecipare soltanto chi ha preso un voto >=17 alla prima prova; non occorre la prenotazione.
Argomenti per la seconda prova in itinere: da lezione su unità logico-aritmetica a lezione su unità di controllo del processore (fino a lucido 10 incluso).
Testo del compito tipo A
Testo del compito tipo B

- Risultati finali prove in itinere
Per la verbalizzazione (o orale), venerdì 8 luglio dalle ore 11:00 alle ore 13:00 nel mio studio.

Appelli

La partecipazione ad un appello comporta la rinuncia automatica ad un voto sufficiente conseguito in una prova precedente.
In particolare, anche se uno studente si ritira dalla prova d'esame non potrà conservare il voto precedentemente conseguito.
Attenzione! La prenotazione a ciascuno di questi esami è obbligatoria.

- Primo appello di luglio: martedì 12 luglio 2005, ore 14:00, aule 1 e 2 presso Edificio PP2.
E' necessario prenotarsi sui fogli disponibili al piano terra dell'edificio di Ingegneria dell'Informazione entro venerdì 8 luglio.
Testo del compito tipo A
Per la verbalizzazione (o orale), venerdì 15 luglio dalle ore 11:00 alle ore 13:00 nel mio studio.

- Secondo appello di luglio: lunedì 18 luglio 2005, ore 14:00, aule 1 e 2 presso Edificio PP2.
E' necessario prenotarsi sui fogli disponibili al piano terra dell'edificio di Ingegneria dell'Informazione entro venerdì 15 luglio.
Testo del compito tipo A
Per la verbalizzazione (o orale), giovedì 21 luglio dalle ore 10:30 alle ore 12:30 nel mio studio.

- Primo appello di settembre: giovedì 8 settembre 2005, ore 9:30, aula 8 presso Edificio PP1.
E' necessario prenotarsi sui fogli disponibili al piano terra dell'edificio di Ingegneria dell'Informazione entro lunedì 5 settembre.

- Secondo appello di settembre: giovedì 22 settembre 2005, ore 9:30, aula 1 presso Edificio PP2.
E' necessario prenotarsi sui fogli disponibili al piano terra dell'edificio di Ingegneria dell'Informazione entro lunedì 19 settembre.


  Ultimo aggiornamento: 11 agosto 2005.
Home
People
Research
Publications
Conferences & Seminars
Teaching (in Italian)