(Ultimo aggiornamento: 10 Marzo 2006)
Docente: Alessandro Sperduti
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:
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
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 DI COMPITO DEL 2002/2003
ESERCIZI RISOLTI CACHE E MEMORIA
|
|
1 Struttura di un elaboratore (lezione del 16/01) |
|
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) |
|
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) |
|
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 |
|
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 |
|
3.1 Pipeline 11/02-12/02 Pipeline-2 13/02 MIPSim32 (simulatore pipeline MISP per windows) |
|
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) |
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 |
|
3.4.1 Caratteristiche, cronologia, evoluzione | |
4 Gestione dell'I/O (cenni) lezioni 26-27/02 e 3/03 orologi 03/03 |
|
4.1 Prestazioni e generalita' |
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 |
|
6.1 Generalita' |
|
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 |
|
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) |
|
6.5.1 Caricamento, allocazione, memoria virtuale | |
6.6 Gestione dell'I/O (cenni) |
|
6.6.1 Politiche di servizio (FCFS, SSTF, SCAN) | |
6.7 File system (cenni) |
|
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 |