Architettura degli Elaboratori

Corsi A e B

Programma definitivo per a.a. 2001/2002

Il seguente programma fa riferimento al testo:

A.S. Tanenbaum "Structured Computer Organization", 4 edizione, Prentice-Hall, 1999.

Versione italiana:

A.S. Tanenbaum, J.R. Goodman "Architettura dei computer: un approccio strutturato", 4 edizione, UTET Libreria, 2000.

  1. Organizzazione dei calcolatori

Linguaggi, livelli e macchina virtuali (1.1.1)

Macchine moderne a più livelli (1.1.2)

Evoluzione delle macchine a più livelli (1.1.3)

2. Il presente e il futuro (1.3, 1.4 - leggere)

3. Rappresentazione delle informazioni

Rappresentazione dei numeri (Conversione da una base a un'altra, numeri negativi, numeri floating point) (Appendici A e B)

Rappresentazione dei caratteri (2.4.6 e documentazione in linea)

Rappresentazione delle immagini e dei suoni (documentazione in linea)

4. Struttura dei calcolatori

Processori

Organizzazione della CPU (2.1.1)

Esecuzione delle istruzioni (2.1.2)

Differenze tra RISC e CISC (2.1.3)

Moderne architetture (2.1.4, 2.1.5, 2.1.6)

Memoria principale e secondaria

Organizzazione della memoria (2.2.1, 2.2.2, 2.2.3)

Codici di correzione degli errori (2.2.4)

Memoria cache (2.2.5)

Gerarchie di memoria (2.3.1)

Dischi magnetici (2.3.2)

 

5. Il livello logico digitale

Porte logiche e algebra di Boole (3.1)

Circuiti logici digitali di base (3.2)

Memoria

Latch (3.3.1)

Flip-Flop (3.3.2)

Registri (3.3.3)

Organizzazione della memoria (3.3.4)

RAM e ROM (3.3.6)

Chip, CPU e bus (3.4.1, 3.4.2, 3.4.3, 3.4.4, 3.4.5)

6. Il livello della microarchitettura

Esempio di microarchitettura (4.1)

Un esempio di ISA: IJVM (4.2)

Una particolare implementazione (4.3)

Architetture avanzate per l'ottimizzazione delle prestazioni (4.4.1, 4.4.2)

7. Il livello dell'architettura dell'instruction set

Sommario del livello ISA

Caratteristiche (5.1.1)

Modelli di memoria (5.1.2)

Registri (5.1.3)

Istruzioni (5.1.4)

Sommario della macchina UltraSPARC II (5.1.6 - leggere)

Sommario della macchina virtuale Java (5.1.7)

Tipi di dati

Numerici (5.2.1)

Non numerici (5.2.2)

Tipi di dati della macchina virtuale Java (5.2.5)

Formati delle istruzioni

Criteri di progettazione (5.3.1)

Espansione dei codici operativi (5.3.2)

I formati delle istruzioni dell'UltraSPARC II (5.3.4 - leggere)

I formati delle istruzioni JVM (5.3.5)

Indirizzamento

Modalità di indirizzamento (da 5.4.1 a 5.4.10)

Modalità di indirizzamento di JVM (5.4.13)

Tipi di istruzioni

Istruzioni di movimento, monadiche, …, di input/output (da 5.5.1 a 5.5.7)

Flusso di controllo (5.6.1)

Procedure ricorsive (5.6.2 - leggere)

Coroutines (5.6.3 - leggere)

Trap e interrupt (5.6.4, 5.6.5 - leggere)