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.
Pipelining. Introduzione. L'unità di elaborazione pipelined. Il controllo. Introduzione alle criticità.
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.

 

Libro di Testo

D. Patterson & J. Hennessy, "Struttura e Progetto dei Calcolatori. L'Interfaccia Hardware-Software" 2° edizione, Zanichelli, 2006.

oppure

D. Patterson & J. Hennessy, "Computer Organization and Design: The hardware/software interface" 3rd edition. Morgan Kaufmann 2005.

 

 

 

 

 

 

Riferimenti Bibliografici  

 

 

 

 

Prima Parte

 

 

Patterson & Hennessy

 

 

 

Cap 1 (da leggere)

 

 

 

Cap 2: 2.1-2.10 (tranne la parte su Java), 2.13 (da leggere), 2.15 (da leggere)

 

 

 

Cap 3: 3.1-3.3, 3.4 (solo moltiplicazione in MIPS), 3.5 (solo divisione in MIPS)

 

 

 

Cap 4: 4.1-4.2

 

 

 

Appendice A: A.1-A.6, A.9, A10 (da leggere)

 

 

 

 

 

 

 

 

 

Seconda Parte

 

 

Patterson & Hennessy

 

 

 

Cap 3: 3.6  (fino ad addizione fra numeri in vigola mobile, inclusa)

 

 

 

Cap 5: 5.1-5.7

 

 

 

Cap 6:6.1-6.3

 

 

 

Cap 7: 7.1

 

 

 

Cap 8: 8.1, 8.2, 8.4 (esclusa la parte sul bus del Pentium 4), 8.5 (esclusa la parte sui livelli di priorita' degli interrupt)

 

 

 

Appendice B: B.5, B.7-B.8, B.9 (da leggere)

 

 

 

Appendice C: C.1-C.5 (escluse le parti sull'ottimizzazione dell'implementazione in C.4-C.5)

 

 

 

 

 

 

 

Orario Lezioni

Martedì

  9:30-11:15 Aula 2 PP2

 

 

Mercoledì

14:00-15:45 Aula 3 NE

 

 

Venerdì

11:30-13.15 Aula 2 PP2

 

 

 

 

 

 

Materiale Didattico

 

 

Simulatore SPIM

 

 

 

 

 

 

 

 

Codice MIPS

 

 

 

 

 

 

 

 

 

Esempi

 

 

 

 

Calcolo Fattoriale

 

 

 

Matrici: Somma per Colonne

 

 

 

Fibonacci

 

 

 

 

Fibonacci seconda versione (senza registri callee saved)

 

 

Copia vettore con test: C, Assembler

 

 

 

Matrici: Somma per Righe/Colonne/Diagonale

 

 

 

Torre di Hanoi

 

 

 

Addizionatore Binario 

 

 

 

 

 

 

 

 

Implementazione Istruzioni

 

 

 

 

 

 

jal jr lui

 

 

push

 

 

move

 

 

add indiretto

 

 

 

 

 

 

 

Lucidi del Corso

 

 

Organizzazione del Corso

 

 

Introduzione

 

 

Codifica dell'Informazione e Aritmetica Binaria

 

 

Set di Istruzioni

 

 

SPIM

 

 

Procedure

 

 

Assemblatore

 

 

Valutazione delle Prestazioni

 

 

ALU

 

 

Floating Point

 

 

Memoria

 

 

Processore I (.pdf) - Processore I (.ppt compresso)

 

 

Processore II  (.pdf) - Processore II (.ppt compresso)

 

 

Introduzione al Pipelining

 

 

 

Dispositivi di I/O

 

 

 

 

 

 

 

Modalità d'esame

 

 

 

 

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

 

Prova d'Esame

Una prova scritta nelle sessioni di esami previste (due appelli nel periodo dal 7 al 18 luglio, due appelli nella sessione di recupero a settembre).

La partecipazione ad un appello (anche in caso di ritiro dalla prova) comporta la rinuncia automatica ad un voto sufficiente conseguito in un appello precedente.

L'esame orale è solo su eventuale richiesta del docente.

 

Prova in Itinere

E' prevista una prova in itinere durante la seconda settimana di giugno sulla prima parte del programma.

Il superamento con esito positivo della prova in itinere esonera lo studente - per la sola sessione di luglio - dal dover svolgere la parte di compito che verte sulla prima parte del programma.

 

Esami

 

 

 

 

 

 

Secondo Appello di Settembre:  martedì 16 settembre ore 14:00, aule 7-8 PP2

 

 

 

Verbalizzazione: Martedi 30 Settembre dalle 11.00 alle 13.00 presso lo studio del docente. Gli studenti che non possono presentarsi durante l'orario su indicato  devono contattare il docente per concordare un'altra data

 

 

 

Traccia

 

 

 

Risultati

 

 

Primo Appello di Settembre:  mercoledì 10 settembre ore 14:00, aule 3-4 nuovi edifici

 

 

 

Verbalizzazione: Martedi 30 Settembre dalle 11.00 alle 13.00 presso lo studio del docente. Gli studenti che non possono presentarsi durante l'orario su indicato  devono contattare il docente per concordare un'altra data

 

 

 

Traccia

 

 

 

Risultati

 

 

Secondo Appello di Luglio: giovedì 17 luglio ore 10:00, aule T5-T6 Sogene.

 

 

 

Verbalizzazione: Giovedì 24 presso lo studio del docente: 11-13 (A-I), 15-17   (L-Z). E' possibile verbalizzare l'esame durante la sessione di recupero di settembre

 

 

 

Traccia

 

 

 

Risultati del II Parziale

 

 

 

Risultati del Compito

 

 

Primo Appello di Luglio: lunedì 7 luglio ore 10:00.

 

 

 

Verbalizzazione: Giovedì 24 presso lo studio del docente: 11-13 (A-I), 15-17 (L-Z). E' possibile verbalizzare l'esame durante la sessione di recupero di settembre

 

 

 

 

 

 

Traccia

 

 

 

Risultati del II Parziale

 

 

 

Risultati del Compito

 

 

Prova in itinere: giovedì 12 giugno ore 12:00 aule 3 ed 8 PP2.

 

 

 

Traccia

 

 

 

Risultati