Architettura degli elaboratori (canale AD + PR) a.a. 2009-2010
- ATTENZIONE: a causa dell'assenza del prof. Mei (in anno sabbatico) l'esame verrà svolto da Andrea Sterbini
- Esami di febbraio/marzo: (prenotatevi su INFOSTUD
all'esame di Sterbini)
- ATTENZIONE: orale mercoledì 9/3/11 dalle ore 10.00 in aula Riunioni (oppure nel mio studio) in Via Salaria, terzo piano
Docente:
Alessandro Mei
-
Esercitatore:
Gaia Maselli
Avvisi
- Verbalizzazione e orali dell'appello di luglio venerdì 16 luglio, ore 9.30, aula Seminari, via Salaria 113.
- Verbalizzazione e orali dell'appello di giugno martedì 13 luglio, ore 9.30, aula Seminari, via Salaria 113.
- venerdì 18 giugno, durante la lezione, c'è una simulazione di scritto d'esame.
- venerdì 21 maggio e lunedì 24 maggio non c'è lezione.
Obiettivi del Corso
In questo corso ci occupiamo di come sono organizzati i calcolatori moderni. Scopriremo le idee fondamentali alla base della straordinaria evoluzione dei microprocessori negli ultimi 30 anni, come pipelining, caching, e branch prediction. Alcune di queste idee ricorrono nell'informatica moderna anche in contesti apparentemente lontani e saranno utili, nel corso dei vostri studi, per capire i segreti della scienza dei computer.
Programma
- il set di istruzioni e il simulatore SPIM;
- il processore;
- pipelining e branch prediction;
- gerarchia di memorie;
- I/O;
- multiprocessor e multicore;
Libro di Testo
Computer Organization and Design: The Hardware/Software Interface, by D. Patterson and J. Hennessy, Morgan Kaufmann, 4th Edition, 2009.
Prerequisiti
...e le altre cose che vi insegnano a Progetto di sistemi digitali. (Grazie ad Arbri Shqepa per questa vignetta.) Non ci sono propedeuticità formali, in altre parole, potete seguire il corso, fare l'esame e verbalizzare anche se non avete ancora dato Progetto di sistemi digitali.
Lezioni
Orario
giorno |
ore |
aula |
lunedì |
10.30-12.30 |
aula 1 NEC |
venerdì |
10.30-12.30 |
aula 1 NEC |
Diario
Diario delle lezioni A.A. 2009/10
Esami
L'esame è composto di varie prove:
- un esercizio di MIPS da fare a casa (con valutazione), durante la prima parte del corso;
- un esonero in laboratorio a metà corso, sia di MIPS che di teoria, durante la pausa per gli esoneri;
- un esercizio di MIPS da fare a casa (con valutazione), verso la fine del corso;
- una prova finale durante l'appello di giugno/luglio, solo di teoria;
- un orale (se necessario).
Il voto finale tiene conto di tutte queste prove. Indicativamente, gli esercizi a casa valgono il 20% del voto finale, l'esonero di metà corso il 40% e la prova finale durante l'appello di giugno/luglio il 40%. E' solo una indicazione di massima, non garantisco che il voto sia effettivamente calcolato così. Chi è sufficiente dopo le prime quattro prove ha passato l'esame senza orale (basta una sufficienza globale, non serve la sufficienza a ogni prova). L'orale serve per rimediare alle prove mancate, o molto negative, o anche sufficienti ma con voto non abbastanza alto.
L'orale è
sempre obbligatorio per chi non fa gli esoneri. Ricordatevi che gli esoneri valgono solo fino a luglio.
Prove d'esame 2009-2010
Esercizio 1
Esercizio 1: Scrivere un programma assembler (per il simulatore SPIM) che prende in input una stringa (da console) e ne ritorna la lunghezza. Per esempio, se inserisco "esame" il programma deve ritornare 5.
Scadenza per la consegna: sabato 10 aprile 2010, ore 23.59. La consegna va effettuata al sito
http://twiki.di.uniroma1.it/~ale/consegna-Arc2.html
. Per la consegna è necessario avere account e password di Twiki, il sistema ve la chiede. Il sito si chiude in automatico all'ora della scadenza, da quel momento in poi non è più possibile consegnare. E' possibile consegnare più volte, noi consideriamo come valida solo l'ultima soluzione consegnata.
Raccomandazioni:
- Il codice va commentato; un codice non commentato sarà penalizzato in termini di voto;
- l'esercizio va fatto da soli. Potete fare insieme altri esercizi, parlare, confrontarvi, ma quando cominciate a fare questo esercizio fatelo da soli. Guardate, ce ne accorgiamo sempre se un esercizio è copiato. In quel caso, che è successo spesso negli ultimi anni, sia che chi copia e chi fa copiare (senza distinzione) è sanzionato con l'annullamento del compito, l'annullamento di qualunque altra prova precedente, l'esclusione dal sistema degli esoneri e per queste persone l'orale su tutto il programma del corso è obbligatorio (e non escludo la possibilità di denunciare il fatto al presidente del Consiglio d'area didattica).
Sono usciti i
risultati!
Esonero
L'esonero si tiene
venerdì 30 aprile alle ore 11. Lo facciamo nel laboratorio Colossus (seminterrato di via Salaria 113). Cominciamo con la prova di assembler, direttamente su un computer Windows. E' molto probabile che vi debba dividere in due o tre gruppi, che faranno la prova uno dopo l'altro. Dopo le due tornate di prove di assembler (una per gruppo), tutti insieme facciamo la prova di teoria. Per l'esonero ricordatevi le seguenti cose:
- è obbligatorio prenotarsi su Infostud all'appello estivo degli esoneri;
- all'esame, sia di assembler che di teoria, è possibile portare questa dispensa; non è possibile portare libri o altri appunti.
- chi partecipa all'esonero deve avere una password su Twiki e ricordarla!
Esercizio 2
Scrivere un programma assembler (per il simulatore SPIM) che dato in memoria un array di interi distinti ordinati in maniera crescente e presi in input da tastiera due valori a,b, con a<b, stampi il numero di elementi dell'array compresi tra a e b (estremi a e b esclusi). Il programma deve fare uso della ricorsione.
Scadenza per la consegna: domenica 23 maggio 2010, ore 23.59. La consegna va effettuata al sito
http://twiki.di.uniroma1.it/~ale/consegna-Arc2.html
. Per la consegna è necessario avere account e password di Twiki, il sistema ve la chiede. Il sito si chiude in automatico all'ora della scadenza, da quel momento in poi non è più possibile consegnare. E' possibile consegnare più volte, noi consideriamo come valida solo l'ultima soluzione consegnata.
Raccomandazioni:
- Il codice va commentato; un codice non commentato sarà penalizzato in termini di voto;
- l'esercizio va fatto da soli. Potete fare insieme altri esercizi, parlare, confrontarvi, ma quando cominciate a fare questo esercizio fatelo da soli. Guardate, ce ne accorgiamo sempre se un esercizio è copiato. In quel caso, che è successo spesso negli ultimi anni, sia che chi copia e chi fa copiare (senza distinzione) è sanzionato con l'annullamento del compito, l'annullamento di qualunque altra prova precedente, l'esclusione dal sistema degli esoneri e per queste persone l'orale su tutto il programma del corso è obbligatorio (e non escludo la possibilità di denunciare il fatto al presidente del Consiglio d'area didattica).
Prova finale
La prova finale viene fatta durante gli appelli di giugno/luglio. Si tratta di una prova scritta solo di teoria, seconda parte del corso (da pipelining in poi). Per chi ha fatto l'esonero e gli esercizi, l'esame si conclude con la prova finale. Gli altri recuperano le parti mancanti con un orale.
Risultati e orali
Appello di giugno - risultati finali - verbalizzazione e orali
martedì 13 luglio, ore 9.30, aula Seminari, via Salaria 113.
Appello di luglio - risultati finali - verbalizzazione e orali
venerdì 16 luglio, ore 9.30, aula Seminari, via Salaria 113.
Gli appelli
La sessione estiva è composta da due appelli, uno a giugno e uno a luglio; orale obbligatorio per chi non ha fatto il primo esonero. La sessione autunnale è composta da un appello; orale obbligatorio per tutti. La sessione invernale è composta da un appello; orale obbligatorio per tutti.
- primo appello, venerdì 25 giugno, ore 9.30, aula 1 Nec.
- Chi si è iscritto agli esoneri (ad aprile) non si deve iscrivere nuovamente;
- la prova consiste nel secondo esonero;
- questa prova conclude l'esame per chi ha fatto il primo esonero;
- orale obbligatorio in data da destinarsi per chi non ha fatto il primo esonero.
- secondo appello, venerdì 9 luglio, ore 9.30, aula 1 Nec.
- Chi si è iscritto agli esoneri (ad aprile) non si deve iscrivere nuovamente;
- la prova consiste nel secondo esonero;
- questa prova conclude l'esame per chi ha fatto il primo esonero;
- orale obbligatorio in data da destinarsi per chi non ha fatto il primo esonero.
- dopo il secondo appello gli esoneri perdono validità.
Prove degli anni precedenti
2008-09
FAQ
Dove posso trovare il libro di testo?
Risposta: In biblioteca c'e' una copia del libro. Comunque vi consiglio di acquistarlo. Alcuni studenti mi hanno segnalato che è disponibile presso Ingegneria 2000, via della Polveriera, Roma.
Esiste una versione in italiano del libro di testo? Possiamo studiare sulla versione in italiano?
Risposta: La versione in italiano esiste, edita dalla Zanichelli nel luglio 2006 (l'edizione precedente era del 1995). Mi sembra ben tradotta (strano). In generale, potete studiare dove vi pare. Lo so che siete pigri e siete tentati di prendervi la versione in italiano invece di quella in inglese, vi conosco. Non fatelo, seguite il mio consiglio e compratevi quella in inglese (procuratevi anche un dizionario, se non siete del tutto sicuri di capire tutto). I motivi sono diversi. Forse il principale è che dovete, ripeto dovete, imparare l'inglese. E' per voi. Nessuno vi farà un esame su questo (a parte quello del primo semestre del primo anno). Ciò non toglie che sia molto importante. Tra l'altro, dal secondo anno in poi, gran parte del materiale di studio sarà esclusivamente in inglese: meglio cominciare da subito.
Io ho il Tanembaum (oppure lo Stallings), va bene lo stesso per preparare l'esame?
Risposta: No, non va bene.
Io non sono del suo canale, posso fare l'esame con lei?
Risposta: Se lei è del primo anno la risposta è no. E' una questione di regolamento, io non c'entro. Altrimenti, se è di un anno successivo al primo, può scegliere il canale che vuole, anche il mio.
Io non ho fatto gli esoneri, posso passare l'esame all'appello regolare o a settembre?
Certo. Però per lei l'orale è obbligatorio.
Ehi! Ho visto che parte dell'esame si può superare facendo degli esercizi a casa! Va bene se copio la soluzione da un collega e poi la consegno come se fosse mia? Devo cambiare il nome delle variabili e delle etichette?
Risposta: No, non va bene. Dovete capire che permettervi di fare gli esercizi a casa è un atto di fiducia nei vostri confronti. Sono convinto che la stragrande maggioranza di voi ripagherà questa mia fiducia comportandosi in maniera più che corretta. Per le eccezioni (che purtroppo non sono mancate), sappiate che chi copia e chi fa copiare (senza distinzione) è sanzionato con l'annullamento del compito, l'annullamento di qualunque altra prova precedente, l'esclusione dal sistema degli esoneri e per queste persone l'orale su tutto il programma del corso è obbligatorio (e non escludo la possibilità di denunciare il fatto al Presidente del Consiglio d'area didattica).
Io sono del vecchio ordinamento e ho passato il progetto duemila anni fa. Vale lo stesso? Posso venire direttamente all'orale?
Risposta: Si, vale lo stesso. Può venire, se ha un modo di certificare il fatto che ha passato il progetto.
Ho passato gli esoneri! Se non completo l'esame a giugno/luglio, perdo l'esonero?
Risposta: Bravo!
Però purtroppo sì, lo perde. L'esonero vale fino a luglio incluso. (Nota: una volta valeva fino a settembre, ma per motivi organizzativi quest'anno devo cambiare le regole.)
Ma io sono di un anno successivo al primo e devo fare Architetture degli elaboratori 2 da 8 crediti, non questo Architettura degli elaboratori da 6 crediti! Come faccio?
Risposta: Mi scriva, le dirò come fare.