ARCHITETTURA DEGLI ELABORATORI E LABORATORIO

Anno accademico 2018-2019

ARCHITETTURA DEGLI ELABORATORI E LABORATORIO

Docenti:
Fontana Federico
De Pra Yuri
Anno di corso: 1
Totale crediti: 12
Tipologia: Base
Periodo didattico: Primo Periodo
Lingua insegnamento: Italiano
Prerequisiti.
Per seguire il corso non sono necessari particolari prerequisiti.
Metodi didattici.
Lezioni frontali, esercitazioni, attività di laboratorio.
Modalità di verifica. L’esame si compone di una prova scritta che prevede la risposta a una serie di domande (tipicamente 10 o 14, a seconda del corso di studi) ispirate agli esercizi e all’attività di laboratorio sostenuta durante il corso. Eccezionalmente agli studenti può essere chiesto di sostenere una prova orale supplementare.
Altre informazioni. La preparazione non può prescindere da una conoscenza approfondita dei lucidi presentati a lezione, reperibili nel web e-learning di ateneo.

OBIETTIVI FORMATIVI

Il corso ha lo scopo di illustrare la struttura e il funzionamento di un computer nelle sue diverse componenti. Il percorso didattico inizia con lo studio delle parti elementari che costituiscono un’architettura di calcolo e considera componenti sempre più complesse fino ad arrivare allo studio di architetture complete. Argomenti trattati nel corso sono anche la programmazione in linguaggio assembly e le tecniche di progettazione di semplici circuiti digitali.

Risultati di apprendimento attesi come riportati nei seguenti Descrittori di Dublino.
Capacità relative alle discipline
1.1 Conoscenza e capacità di comprensione: dopo aver superato l’esame si ritiene che lo studente sia in grado di comprendere il funzionamento dell’hardware e conoscere i fattori che influenzano le prestazioni dei calcolatori.
1.2 Conoscenza e capacità di comprensione applicate: l’attività di laboratorio permette allo studente di impratichirsi con la progettazione a basso livello, sia di semplici sistemi digitali, che di programmi scritti in linguaggio macchina, ossia eseguibili direttamente dal calcolatore.
Capacità trasversali/soft skills
2.1 Autonomia di giudizio: lo studente acquisisce gli strumenti per poter valutare e scegliere in maniera ponderata l’architettura hardware da utilizzare.
2.2 Abilità comunicative: lo studente impara l’esatto significato dei vari termini usati per descrivere le caratteristiche e le specifiche di un calcolatore ed usarle in maniera appropriata.
2.3 Capacità di apprendimento: il corso mira a fornire allo studente un quadro concettuale  sufficientemente rigoroso completo da permettergli di affrontare con sicurezza lo studio dettagliato delle varie componenti di un calcolatore.

CONTENUTI

– Introduzione: prospettiva storica sulle architetture degli elaboratori, concetti base, livelli d’astrazione nell’analisi di un’architettura.
– Reti logiche: porte logiche elementari, algebre booleane, circuiti combinatori d’uso frequente, progettazione circuiti sequenziali, chip di memoria.
– Rappresentazione delle informazioni: sistema di numerazione binario, conversione tra basi, rappresentazione di numeri interi e reali, rappresentazione di caratteri, codici di rilevamento errori.
– Processore: ciclo di fetch-decode-execute, data path, unità di controllo, presentazione dettagliata di un semplice microprocessore, pipeline, processori superscalari, predizione di salto, esecuzione fuori ordine, Intel Core.
– Linguaggio Macchina: Evoluzione dei linguaggi macchina, tipi di dati, indirizzamento, tipi d’istruzioni, formati istruzioni,
– Input/Output: programmed I/O, interrupt, DMA, dispositivi periferici, collegamenti mediante bus, meccanismi d’arbitraggio e sincronizzazione del bus, architettura di un tipico PC, bus PCI, SCSI, USB, dischi magnetici, RAID, dischi ottici.
– Gerarchie di Memoria: meccanismi di funzionamento della memoria cache e della memoria virtuale, paginazione e segmentazione, MMU.
– Architetture ad elaborazione parallela: tipologie di calcolatori paralleli, multiprocessori e multicomputer, Interconnessione fra processori, cache coherence.
– Programmazione assembly. Architettura ARM. Istruzioni ARM: assegnamento, salto, aritmetiche-logiche. Modalità d’indirizzamento, chiamate di funzione, direttive all’assemblatore.

Attività di Laboratorio
Durante il corso verranno svolte 36 ore di laboratorio, dove verrà approfondita la progettazione di circuiti digitali e la programmazione in linguaggio assembly.

TESTI DI RIFERIMENTO

Andrew S. Tanenbaum; Todd Austin. Architettura dei calcolatori, un approccio strutturale (edizioni recenti). Pearson.