ARCHITETTURA DEI CALCOLATORI ELETTRONICI

Crediti: 
9
Settore scientifico disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Anno accademico di offerta: 
2016/2017
Semestre dell'insegnamento: 
Secondo Semestre
Lingua di insegnamento: 

Italiano

Obiettivi formativi

Conoscenza e Comprensione
Lo scopo del corso quello di illustrare i meccanismi di base di funzionamento dei sistemi di calcolo e in particolare l'interazione fra i moduli (CPU, memoria, I/O) di un calcolatore.

Capacità di applicare conoscenza e comprensione
Lo studente acquisirà la capacità di comprendere il funzionamento di base delle moderne CPU.
Lo studente al termine del corso sarà capace a scrivere anche semplici programmi a livello assembler.

Contenuti dell'insegnamento

Il corso fornisce i concetti di base delle architetture dei sistemi di elaborazione, analizzandone l'organizzazione interna e descrivendo i principi di funzionamento delle CPU, delle memorie, delle strutture di interconnessione e di ingresso/uscita. Il corso comprende le nozioni fondamentali della programmazione in linguaggio assembly. I concetti
sono esposti in modo generale; quando necessario si fa diretto riferimento all’architettura dei processori INTEL.

Programma
Introduzione e storia dei calcolatori elettronici:
* Macchina di Turing
* Architettura di Von Neumann
Introduzione alle architetture delle moderne CPU:
* RISC vs CISC
* Cenni ai processori RISC con esempi
* Microarchitettura della CPU
* Architettura monociclo
* Architettura multiciclo
Architetture avanzate:
* Pipeline e alee
* Architetture susperscalari e gestione conflitti
Memorie:
* Generalità, memorie a semiconduttore (ROM e RAM)
* Memorie secondarie: tecnologie e prestazioni.
* Gerarchie di memoria
* Principio di località e concetti generali
* Memoria virtuale (segmenti e pagine)
* Memoria cache (tecniche di accesso, politiche di sostituzione, ...)
Sottosistema di ingresso uscita:
* Gestione a controllo di programma
* Gestione sotto controllo di interrupt
* DMA
Introduzione all’assembly dell’architettura x86
* Architettura logica delle CPU x86.
* Sintassi. Modi di indirizzamento. Operazioni e pseudo-operazioni.
* Funzioni DOS e BIOS .
* Esempi di programmi in assembly.

Bibliografia

- A.S. Tanenbaum e T. Austin, “Architettura dei Calcolatori: un approccio strutturale”, sesta ed., Pearson/Prentice Hall, 2013
- Giacomo Bucci, “Calcolatori elettronici – Architettura e organizzazione”, Mc Graw-Hill, 2009
- William Stallings, “Architettura e organizzazione dei calcolatori. Progetto e prestazioni”, ottava ed., Pearson Prentice-Hall, 2010
- Carl Hamacher, Zvonko Vranesic, Safwat Zaky, “Introduzione all'architettura dei calcolatori”, seconda ed., McGraw-Hill, 2007

Metodi didattici

Il corso comprende indicativamente 40 ore di lezioni tradizionali in aula e 24 ore di esercitazione in laboratorio.

Modalità verifica apprendimento

L'esame consiste in due parti, che possono essere date indipendentemente, sia come sessione sia come ordine. La prima parte è una prova orale fatta per iscritto, su domande di teoria e un esercizio sulle memorie cache. La seconda parte è una prova pratica in laboratorio che richiede lo sviluppo di un programma in Assembly x86. Il voto finale è dato dalla media dei due voti.