Obiettivi formativi
<br />
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. <br />
<br />
Al termine del corso lo studente dispone della conoscenza di base delle architetture moderne dei calcolatori elettronici ed è in grado di stendere semplici programmi a livello assembler. <br />
Prerequisiti
<br />
Sono necessarie le conoscenze di base del corso di Fondamenti di Informatica A e Fondamenti di Infromatica B e in particolare: <br />
<br />
* Concetti di base di algebra booleana. <br />
* Concetti di elementari di architettura degli elaboratori <br />
* Concetti di base di reti logiche <br />
<br />
Propedeuticità obbligatorie: Fondamenti di Informatica B. <br />
Contenuti dell'insegnamento
<p>. <br />
<br />
<strong>Approfondimenti sull’architettura dei calcolatori <br />
</strong> * Introduzione alle architetture delle moderne CPU. <br />
* Pipeline e architetture susperscalari. <br />
* Unità di controllo, unità di controllo a microprogramma. <br />
* Sottosistema di ingresso uscita: <br />
o Gestione a controllo di programma <br />
o Gestione sotto controllo di interrupt <br />
o DMA <br />
* Cenni ai processori RISC con esempi (ARM, MIPS, ...). <br />
<br />
<strong>Le Memorie: <br />
</strong> * Generalità, memorie a semiconduttore (ROM e RAM) <br />
* Memorie secondarie: tecnologie e prestazioni. <br />
* Gerarchie di memoria <br />
o Principio di località e concetti generali <br />
o Memoria virtuale (segmenti e pagine) <br />
o Memoria cache (tecniche di accesso, politiche di sostituzione, …) <br />
<br />
Introduzione alle architetture parallele e distribuite. <br />
* Classificazione e tassonomie <br />
* Legge di Amdhal <br />
* Architetture SIMD e MIMD <br />
* Clusters <br />
<br />
Introduzione all’assembly dell’architettura x86 <br />
* Architettura logica delle CPU x86. <br />
* Sintassi. Modi di indirizzamento. Operazioni e pseudo-operazioni. <br />
* Funzioni DOS e BIOS . <br />
* Esempi di programmi in assembly. <br />
<br />
</p>
Programma esteso
- - -
Bibliografia
<p>G.Bucci, Calcolatori elettronici - Architettura e organizzazione,.McGraw-Hill, 2009. <br />
J. P. Hayes, Computer Architecture and Organization, McGraw-Hill, New York, 1998. <br />
Randall Hyde, The art of Assembly Programming; un ottimo manuale in linea sull'utilizzo dell'assembly.</p>
<p>Le slides del corso sono disponibili sul sito: https://my.unipr.it <br />
<br />
</p>
Metodi didattici
Il corso prevede oltre alle lezioni tradizionali 10 ore di laboratorio per lo sviluppo assistito di programmi assembler. <br />
<br />
La valutazione consiste in un esame scritto finale e nello sviluppo di un programma in linguaggio assembler.
Modalità verifica apprendimento
- - -
Altre informazioni
- - -