ARCHITETTURA DEGLI ELABORATORI
cod. 13598

Anno accademico 2009/10
2° anno di corso - Primo semestre
Docente
Settore scientifico disciplinare
Informatica (INF/01)
Field
Interdisciplinarità e applicazioni
Tipologia attività formativa
Affine/Integrativa
32 ore
di attività frontali
4 crediti
sede:
insegnamento
in - - -

Obiettivi formativi

<p>Proporre un percorso che, partendo dalla rappresentazione dell’informazione e passando per lo studio delle reti logiche, arrivi a definire i fondamentali aspetti architetturali dei calcolatori elettronici. <br />
Il corso prevede, oltre a lezioni teoriche, una serie di esercitazioni in aula sulla parte di reti logiche e in laboratorio sulla parte di assembly IA-32. </p>
<p> </p>

Prerequisiti

- - -

Contenuti dell'insegnamento

<p><strong>I parte – Introduzione ai sistemi di elaborazione </strong><br />
Sistemi di elaborazione <br />
Evoluzione storica e tecnologica <br />
Architettura e organizzazione dei calcolatori elettronici <br />
Modelli di sistema e livelli di astrazione <br />
Sistemi di numerazione binario, esadecimale e ottale <br />
Rappresentazione binaria dei numeri reali <br />
Informazioni di carattere alfanumerico <br />
Rappresentazione di suoni, immagini e video</p>
<p><strong>II parte – Livello logico </strong><br />
Algebra delle reti <br />
Circuiti logici elementari <br />
Forme canoniche e trasformazioni <br />
Minimizzazione logica <br />
Reti combinatorie <br />
Reti sequenziali</p>
<p><strong>III parte – Livello funzionale <br />
</strong>Relazione tra livello funzionale e livello micro-architettura <br />
Organizzazione di un calcolatore moderno <br />
Il repertorio delle istruzioni <br />
La CPU <br />
I sistemi di memoria <br />
Il sottosistema di I/O </p>
<p><strong>IV parte – Architettura e linguaggio assembly IA-32 </strong><br />
Architettura IA-32 <br />
Le CPU IA-32: gestione della memoria, registri, flag <br />
Istruzioni dell’assembly IA-32 <br />
Set di istruzioni aggiuntive dei moderni microprocessori: MMX, 3DNow!, SSE, SSE2 <br />
Programmazione assembly ed interfaccia con il linguaggio C</p>
<p><strong>V parte – Livello software </strong><br />
Cenni al sistema operativo <br />
Cenni alla struttura dei compilatori di linguaggi tipo-C <br />
Cenni alla generazione di codice assembly per un sotto-insieme del C</p>
<p><strong>VI parte – Livello micro-architettura </strong><br />
La microarchitettura: progettazione hardwired e micro-programmata <br />
Approfondimenti sulle architetture micro-programmate <br />
Cenni alla struttura di una architettura micro-programmata compatibile con le CPU tipo NMOS 6502 <br />
Gestione del I/O a livello micro-architettura: interrupt e DMA <br />
Interazione con il livello software <br />
</p>

Programma esteso

- - -

Bibliografia

<p>David A. Patterson, John L. Hennessy. Struttura e Progetto dei Calcolatori, Zanichelli, 2006. <br />
Giacomo Bucci. Architettura e organizzazione dei calcolatori elettronici - Fondamenti, McGraw-Hill, 2004. <br />
William Stallings. Architettura e organizzazione dei calcolatori - Progetto e prestazioni, Addison Wesley, 2004. <br />
Andrew S. Tanenbaum. Architettura dei Calcolatori, 5a edizione, Prentice Hall, 2006. <br />
Randall Hyde. The Art of Assembly Programming, disponibile online.  </p>

Metodi didattici

Le lezioni e i laboratori verranno svolti presso il Dipartimento di Matematica. <br />
<br />
Le attività di laboratorio si svolgeranno negli orari fissati per le lezioni. <br />
<br />
Il corso segue il calendario fissato dalla Facoltà di Scienze MM.FF.NN. <br />
<br />
Il calendario delle prove d'esame verrà pubblicato all'indirizzo <a href="http://informatica.unipr.it">http://informatica.unipr.it</a> <br />
<br />
Il docente riceve previo appuntamento fissato via e-mail. <br />

Modalità verifica apprendimento

- - -

Altre informazioni

- - -