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 />
Contenuti del corso di Fondamenti di Informatica B e in particolare:<br />
<ul>
<li>Concetti di base di algebra booleana.</li>
<li>Concetti di elementari di architettura degli elaboratori</li>
<li>Concetti di base di reti logiche</li>
</ul>
Contenuti dell'insegnamento
<br />· Approfondimenti sull’architettura dei calcolatori <br />o Introduzione alle architetture delle moderne CPU. <br />o Pipeline e architetture susperscalari. <br />o Unità di controllo, unità di controllo a microprogramma. <br />o Cenni ai processori RISC con esempi.<br /> <br /> <br />· Architettura di un sistema di elaborazione <br />o Strutture di interconnessione trasferimento dati. BUS<br />o Arbitri concentrati e distribuiti<br />o Sottosistema di ingresso uscita: <br />§ Gestione a controllo di programma<br />§ Gestione sotto controllo di interrupt<br />§ DMA<br /> <br />· Le Memorie: <br />o Generalità, memorie a semiconduttore (ROM e RAM) <br />o Memorie secondarie: tecnologie e prestazioni.<br />o Cenni alle gerarchie di memoria <br />§ Principio di località e concetti generali<br />§ Memoria virtuale (segmenti e pagine)<br />§ Memoria cache (tecniche di accesso, politiche di sostituzione, .)<br /> <br />· Introduzione all’assembly dell’architettura x86 <br />o Architettura logica delle CPU x86.<br />o Sintassi. Modi di indirizzamento. Istruzione e pseudo-istruzioni.<br />o Funzioni DOS e BIOS .<br />o Esempi di programmi in assembly.<br />o Laboratorio di assembly (esercitazioni)<br /> <br />· Introduzione alle architetture parallele e distribuite. <br />o Classificazione e tassonomie<br />o Legge di Amdhal<br />o Architetture SIMD e MIMD<br />o Clusters<br />
Programma esteso
- - -
Bibliografia
<br />· G.Bucci, Architettura e organizzazione dei calcolatori elettronici – Strutture avanzate, McGraw-Hill, 2006.<br />· Randall Hyde, The art of Assembly Programming . un ottimo manuale in linea sull'utilizzo dell'assembly con riferimenti alla gestione di periferiche di I/O, programmi residenti, memoria. http://www.ce.unipr.it/didattica/calcolatori/docs/aoa.pdf.
Metodi didattici
Il corso è articolato in lezioni tradizionali (80%) e in attività di laboratorio per lo sviluppo di competenze relative alla programmazione a livello assembler.<br />
<br />
La valutazione consiste in una prova scritta con domande a risposta aperta e nella stesura di un semplice programma scritto in linguaggio assembler.
Modalità verifica apprendimento
- - -
Altre informazioni
- - -