CALCOLATORI ELETTRONICI A
cod. 14577

Anno accademico 2009/10
3° anno di corso - Secondo semestre
Docente
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
A scelta dello studente
Tipologia attività formativa
A scelta dello studente
45 ore
di attività frontali
5 crediti
sede:
insegnamento
in - - -

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.

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

- - -