Architettura degli Elaboratori - I
Contenuto e Struttura del corso


(Ultimo aggiornamento: 10 Marzo 2006)

AVVISO: esercitazioni aa. 2004/5, Venerdi' 17, ore 11:30 in P200

Docente: Alessandro Sperduti




Note introduttive

Il corso segue, a grandi linee, la struttura illustrata in forma tabulare qui di seguito.
Le dispense di lezione saranno progessivamente rese disponibili (in formato PDF) come collegamenti alle corrispondenti sezioni del corso. Tale materiale si basa in larga misura sulle dispense predisposte dal docente T. Vardanega per il medesimo corso nell'anno accademico 2001/2.
La colonna 'Testo base' indica e fornisce il materiale bibliografico di supporto al corso.
I principali riferimenti bibliografici al corso sono i seguenti:

  1. J Hennessy & D A Patterson. Computer Architecture - A Quantitative Approach. 2nd Edition. (Disponibile, in Inglese, in Biblioteca di Dipartimento.)

  2. La notazione 'H&P - n.x-m.y' in tabella denota le sezioni n.x-m.y di esso considerate rilevanti per lo specifico argomento del corso.
  3. A S Tanenbaum. Modern Operating Systems. (Disponibile, in inglese e in italiano, in Biblioteca di Dipartimento.)

  4. Versione italiana: I Moderni Sistemi Operativi, Jackson. (disp. Libreria Progetto)
    La notazione 'T - n.x-m.y' in tabella denota le sezione n.x-m.y di esso considerate rilevanti per lo specifico argomento del corso.

Calendario delle lezioni

Il corso si tiene su 48 ore, ripartite grossomodo come indicato in tabella, con il seguente calendario: dal mercoledi al venerdi 09:30-11:10 (mercoledi 11:20-13:00) in aula LUM250 (via Luzzati) nel periodo 16 Gennaio -  12 Marzo 2004


Ricevimento studenti

Il ricevimento studenti si svolge, tranne diverso avviso, con il seguente calendario:

Modalita' di esame

Scritto obbligatorio con orale opzionale.


Appelli di esame

Primo Appello:  17/03, ore 14:30  scritto (P200 + P160),  23/03, ore 14:30  registrazione/orale (P100)        RISULTATI

Secondo Appello: 1/04, ore 14:30  scritto (LUM250 + LUF2),  5/04, ore 9:30  registrazione/orale (P100)  RISULTATI

Terzo  Appello (scritto della mattina):  RISULTATI

Terzo Appello (scritto del pomeriggio): RISULTATI (Scattolin voto:18)

Quarto Appello (23-09-04): RISULTATI NEW!!


NOTE PER LA PRIMA PARTE DEL CORSO:

 Reti Combinatorie
 Reti Sequenziali
 Microprogrammazione
 Aritmetica

MATERIALE PER ESERCIZI
 

esercizi-reti-comb.-e-seq.
esercizio-microprogrammazione
esercizi-memoria
altri esercizi con soluzione
ulteriori esercizi con soluzione
altri esercizi con soluzione
altro esercizio microprogrammazione

ESEMPIO DI COMPITO DEL 2003/2004

 esempio-compito

ESEMPIO DI COMPITO DEL 2002/2003

 esempio-compito

ESERCIZI RISOLTI CACHE  E  MEMORIA NEW!!

 es-cache
es-cache2

memoria virtuale


Struttura e contenuti del corso



Argomento / Dispense
Durata / Materiale didattico

1 Struttura di un elaboratore (lezione del 16/01)
~10 ore
1.1 Macchina astratta
1.1.1 Livello 0: macchina digitale (lezioni del 17-21/01) (lezioni del 21-22/01)
1.1.2 Livello 1: macchina microprogrammata (lezioni del 22-23-28/01)
1.1.3 Livello 2: macchina hardware
1.1.4 Livello 3: macchina virtuale (sistema operativo)
T - 1.1-1.4
1.1.5 Livello 4: macchina utente programmatore
1.1.6 Livello 5: macchina utente finale
1.2 Architettura di un elaboratore
1.2.1 Funzioni della RAM
1.2.2 Funzioni della ROM
1.2.3 Funzioni dell'I/O
1.2.4 Funzioni dei Bus
1.2.5 Funzioni della CPU
1.2.6 Esempio: architettura semplificata


2 La CPU (lezioni del 28-29/01 e 04-05/02)   (esempi)(esercizi-ret.comb-e-seq. 06-02)
~10 ore
2.1 Logica operativa (data path)
2.2 Registri
2.3 Circuiti aritmetici dedicati
2.4 ALU
2.4.1 Operazioni
2.4.2 Codifica
2.4.3 Memorizzazione
2.5 Bus, instradatori e buffer
2.5.1 Esempio: una semplice esecuzione
2.6 Logica di controllo (control path)
2.6.1 Comandi
2.6.2 Stati
2.6.3 Implementazione (hardware / microprogrammata)
2.7 Set di istruzioni
H&P - 2
2.7.1 Classificazione
2.7.2 Casistica (stack / accumulatore / registro-memoria / registro-registro / accesso diretto)
2.7.3 Evoluzione commerciale
2.7.4 Modalita' di accesso alla memoria
2.7.5 Metodi di indirizzamento
2.7.6 Tipi di operazione
2.7.7 Formato delle istruzioni


3 Evoluzione delle architetture
~8 ore
3.1 Pipeline 11/02-12/02    Pipeline-2 13/02    MIPSim32 (simulatore pipeline MISP per windows) 
H&P - 3-4
3.1.1 Generalita'
3.1.2 Decomposizione in fasi
3.1.3 Progresso ideale dell'esecuzione
3.1.4 Problemi
3.1.5 Sbilanciamento delle fasi
3.1.6 Dipendenza dai dati
3.1.7 Dipendenza dalla logica di controllo
3.1.8 Evoluzioni
3.1.8.1 Pipeline superscalare
3.1.8.2 Schedulazione dinamica
3.2 Gerarchie di memoria lezioni 18-19-20-26/02  XCACHE32 (simulatore cache per windows) 
H&P - 5
T - 4
3.2.1 Generalita'           (esercizio-microprogrammazione)
3.2.2 Schema concettuale
3.2.3 Cache: hit / miss
3.2.3 Strategie di organizzazione della cache
3.2.3.1 Problematiche
3.2.3.2 Mappatura diretta
3.2.3.3 Associazione completa
3.2.3.4 Associazione selettiva a gruppi
3.2.3.5 Rimpiazzo dei blocchi
3.2.3.6 Quantificazione
3.2.4 Memoria principale
3.2.4.1 SRAM / DRAM

3.3 Memoria virtuale  PAGE (simulatore di alcune politiche di rimpiazzo di pagina per windows) 

3.3.1 Generalita'
3.3.2 Problemi e strategie
3.3.2.1 Paginazione
3.3.2.2 Segmentazione

3.4 Architettura RISC

H&P - App C-D
3.4.1 Caratteristiche, cronologia, evoluzione







4 Gestione dell'I/O (cenni)  lezioni 26-27/02 e 3/03 orologi 03/03

~4 ore
4.1 Prestazioni e generalita'
H&P - 6
T - 5
4.2 Modelli di funzionamento
4.3 Dispositivi di memorizzazione (nastri, dischi / magnetici / ottici)
4.4 Gestione software
4.5 Bus standard
4.5.1 Generalita', classificazione, architetture
4.6 Video ed audio
4.6.1 Problematiche
4.6.2 Tecniche
4.7 Dispositivi di ingresso (tastiera, mouse, evoluzioni)


5 Sistema operativo lezioni 10-11/03
~12 ore
6.1 Generalita'
T - 1.5-1.8
6.2 Classificazione e definizioni
6.2.1 Processo, risorsa, file system, interfaccia
6.2.2 Sicurezza e protezione
6.3 Struttura generale
6.3.1 Tipologie (monolitici, a livelli, a macchine virtuali, client-server)
6.3.2 Caricamento
6.3.3 Esempio: sistema operativo elementare
6.4 Gestione dei processi
T - 2-3
6.4.1 Strutture, e tecniche di schedulazione
6.4.2 Creazione, avanzamento, sincronizzazione, comunicazione
6.4.3 Modelli e problemi di cooperazione (stallo)
6.5 Gestione della memoria (cenni) 
T - 4
6.5.1 Caricamento, allocazione, memoria virtuale
6.6 Gestione dell'I/O (cenni)
T - 5
6.6.1 Politiche di servizio (FCFS, SSTF, SCAN)
6.7 File system (cenni)
T - 6
6.7.1 Attributi, struttura, operazioni, metodi di accesso
6.7.2 Struttura di directory, operazioni
6.7.3 Aspetti di implementazione
6.7.4 Esempio: Unix FS