Obiettivi formativi
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.
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
E' consigliabile avere seguito il corso di Fondamenti di programmazione
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
Approfondimenti sull’architettura dei calcolatori
Introduzione alle architetture delle moderne CPU.
Pipeline e architetture susperscalari.
Unità di controllo, unità di controllo a microprogramma.
Sottosistema di ingresso uscita:
* Gestione a controllo di programma
* Gestione sotto controllo di interrupt
* DMA
Cenni ai processori RISC con esempi.
Le 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, .)
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.
Introduzione alle architetture parallele e distribuite.
* Classificazione e tassonomie
* Legge di Amdhal
* Architetture SIMD e MIMD
* Clusters
Programma esteso
- - -
Bibliografia
G.Bucci, Architettura e organizzazione dei calcolatori elettronici – Strutture avanzate, McGraw-Hill, 2006.
Randall Hyde, The art of Assembly Programming
http://www.ce.unipr.it/didattica/calcolatori/docs/aoa.pdf.
Metodi didattici
Il corso comprende 60 ore di lezioni tradizionali in aula e 12 ore di esercitazione in laboratorio.
Modalità verifica apprendimento
Il corso prevede una prova scritta sui temi del corso e una prova pratica di programmazione in assembler.
Altre informazioni
- - -