Architettura degli Elaboratori - I

Contenuto e Struttura del corso
(Ultimo aggiornamento: 28 settembre 2002 ore 13:15)

Docente: Tullio Vardanega

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 A. Memo per il medesimo corso nell'anno accademico 2001/2, le quali sono disponibili in forma cartacea presso la Segreteria Didattica.
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.)
    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.
  2. A S Tanenbaum. Modern Operating Systems. (Disponibile, in Inglese, in Biblioteca di Dipartimento.)
    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 lunedi al giovedi 09:15-11:15 in aula LUM250 (via Luzzati) nel periodo 18 febbraio - 4 aprile 2002, con esclusione del 28-29 marzo ed 1-3 aprile .

Una lezione/esercitazione supplementare si terra' lunedi 15 aprile, in aula LUM250 , con orario 14:15 - 16:15


Ricevimento studenti

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

Modalita' di esame

Scritto obbligatorio con orale opzionale.

Contrariamente a quanto indicato a lezione, motivi logistici ed organizzativi hanno suggerito l'istituzione, sul sistema SIS , di liste di iscrizione agli appelli.

Prima sessione (chiusa il 24 aprile 2002): risultati finali .

Seconda sessione (chiusa il 25 luglio 2002): risultati finali .

Terza sessione (chiusa il 28 settembre 2002): risultati finali.


Avvisi

! 19 settembre 2002
Si avvisano gli  studenti che  hanno conseguito, ma non verbalizzato, votazioni definitive (ossia non richiedenti un ulteriore colloquio orale) nel corso delle sessioni d'esame dell'anno accademico 2001/2, che tali valutazioni decadranno, se ancora non verbalizzate, il 30 settembre p.v., con il completamento della 3a ed ultima sessione d'esame.

20 maggio 2002
Gli studenti che non hanno avuto il loro voto d'esame verbalizzato nella seduta odierna sono pregati di prendere al piu' presto appuntamento con il docente per la verbalizzazione.

14 maggio 2002
La verbalizzazione dei risultati conseguiti nella 1a sessione d'esame avra' luogo lunedi 20 maggio dalle ore 14:30 in aula LUM250. Chi non potesse essere presente in tale occasione dovra' prendere appuntamento con il docente.

5 aprile 2002
In preparazione agli appelli della 1a sessione di esame, il docente ha posto alcuni quesiti tipo, a mo' di esercitazione, nel documento qui allegato . Tali quesiti verranno discussi e risolti nella lezione straordinaria programmata per lunedi 15 aprile con l'orario e l'aula sopra indicati.

21 marzo 2002
Il giorno 20 marzo 2002 si e' svolta una simulazione di prova scritta di esame. Il testo dei quesiti posti in tale occasione e' disponibile in versione elettronica .


Struttura e contenuti del corso


Argomento / Dispense
Durata / Materiale didattico

1 Struttura di un elaboratore
10 ore
1.1 Macchina astratta
1.1.1 Livello 0: macchina digitale
1.1.2 Livello 1: macchina microprogrammata
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
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
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
H&P - 5
T - 4
3.2.1 Generalita'
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
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
3.5 Architettura x86
3.5.1 Registri
3.5.2 Modalita' di indirizzamento
3.5.3 Set di istruzioni
3.5.4 Esempio: Pentium

4 Gestione dell'I/O
4 ore
4.1 Prestazioni e generalita'
H&P - 5
T - 1.4.3
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 Valutazione delle prestazioni(non trattata)
4 ore
5.1 Prestazioni della CPU
H&P - 1.5-6
5.1.1 Definizioni
5.1.2 Unita' di misura: caratteristiche
5.1.3 Caratterizzazione
5.2 Prestazioni del sistema
5.2.1 SPEC
5.3 Considerazioni finali

6 Sistema operativo
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 (trattata in sezione 3.2)
T - 4
6.5.1 Caricamento, allocazione, memoria virtuale
6.6 Gestione dell'I/O(non trattata)
T - 5
6.6.1 Politiche di servizio (FCFS, SSTF, SCAN)
6.7 File system (non trattato)
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