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.
Prerequisiti
- - -
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.
Programma esteso
- - -
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.
Altre informazioni
- - -
Obiettivi agenda 2030 per lo sviluppo sostenibile
- - -