Salta ai contenuti. | Salta alla navigazione

Strumenti personali

ARCHITETTURA DEGLI ELABORATORI E LABORATORIO

Anno accademico e docente
Non hai trovato la Scheda dell'insegnamento riferita a un anno accademico precedente? Ecco come fare >>
English course description
Anno accademico
2015/2016
Docente
FRANCESCO GIACOMINI
Crediti formativi
10
Periodo didattico
Secondo Semestre
SSD
INF/01

Obiettivi formativi

L'obiettivo primario del corso è la comprensione da parte dello studente di quali siano gli elementi fondamentali che costituiscono un sistema di calcolo moderno e di come tali elementi possano influenzare le prestazioni del sistema.

Le principali conoscenze acquisite dallo studente al termine del corso sono:

* Rappresentazione binaria delle informazioni (istruzioni e dati)
* Instruction Set Architecture e linguaggio Assembler
* Logica combinatoria e sequenziale
* Datapath e pipeline
* Gerarchia di memoria e cache

Per illustrare i concetti sopra citati viene usata l'architettura MIPS.

Le principali abilità acquisite dallo studente al termine del corso sono:

* Convertire numeri interi e reali tra basi diverse
* Rappresentare numeri interi e reali e caratteri nei formati binari più diffusi
* Programmare in linguaggio assembler MIPS
* Disegnare semplici circuiti logici
* Analizzare il comportamento di frammenti di codice assembler eseguito sul datapath MIPS
* Analizzare gli accessi in memoria in presenza di cache di diverso tipo

Prerequisiti

Per poter seguire proficuamente il corso sono richieste le seguenti abilità:

* Dimestichezza con l'aritmetica elementare
* Programmazione di base nel linguaggio C

Contenuti del corso

Il corso prevede 80 ore di didattica tra lezioni ed esercitazioni, per circa 50 e 30 ore rispettivamente.

= Rappresentazione binaria delle informazioni (8 ore)

Sistema numerico posizionale - Conversione tra basi - Rappresentazione binaria - Operazioni logiche e aritmetiche su numeri binari - Il formato "complemento a 2" per i numeri interi - Il formato "IEEE 754" per i numeri reali - Il formato "ASCII" per i caratteri - Rappresentazione binaria delle istruzioni MIPS

= Instruction Set Architecture e linguaggio assembler (8 ore)

Architettura di Von Neumann - Istruzioni MIPS principali - Disposizione in memoria di un processo - Stack e stack frame - Corrispondenza tra costrutti del linguaggio C e dell'assembler MIPS

= Logica combinatoria e sequenziale (8 ore)

Algebra di Boole - Funzioni logiche e tabelle di verità - Porte logiche - Programmable Logic Array - Esempi di blocchi logici (selettore, decoder, ALU) - Clock - Flip-flop - Registri e register file - SRAM e DRAM

= Datapath (6 ore)

Fasi nell'esecuzione di una istruzione - Costruzione di un datapath semplificato per MIPS - Logica di controllo

= Pipeline (10 ore)

Peformance - Pipelining delle istruzioni - Criticità - Soluzioni e mitigazioni delle criticità - Tecniche speculative - Altri meccanismi di parallelismo a livello di istruzione

= Gerarchia di memoria e cache (10 ore)

Gerarchia di memoria - Principio di località - Hit e miss - Cache di tipo direct-mapped - Cache di tipo associativo - Cache a più livelli

Metodi didattici

Le lezioni teoriche sono svolte in parte alla lavagna e in parte con l'ausilio di una presentazione in formato digitale.

L'attività in laboratorio consiste nell'implementazione in linguaggio C o in assembler MIPS dei concetti illustrati durante le lezioni teoriche. Lo studente può utilizzare un proprio computer portatile.

Modalità di verifica dell'apprendimento

L'esame consiste in una prova scritta, una prova orale ed esercitazioni di laboratorio.

Il voto finale è dato per 25/30 da scritto e orale e per 5/30 dalle esercitazioni di laboratorio.

La prova scritta è obbligatoria e verte su tutti gli argomenti del corso. Consiste sia in domande di tipo teorico, che richiedono una risposta argomentata, sia in esercizi pratici. Durante il corso ci saranno due prove parziali, che equivalgono a una prova scritta.

La prova orale è facoltativa, ma per potervi accedere è necessario avere un voto sufficiente nella prova scritta. Anche la prova orale verte su tutti gli argomenti del corso e può consistere sia in domande che richiedono una risposta argomentata sia in esercizi pratici.

Le esercitazioni di laboratorio verranno assegnate durante il corso e dovranno essere svolte autonomamente e consegnate entro due settimane prima dello svolgimento della prova orale ovvero della registrazione del voto. Le esercitazioni potranno essere svolte anche in piccoli gruppi.

Testi di riferimento

Il testo di riferimento è

Computer Organization and Design - The Hardware/Software Interface
D. Patterson, J. Hennessy
5th Edition, Elsevier, 2013
ISBN 978-0-12-407726-3

per il quale esiste anche una traduzione italiana

Struttura e Progetto dei Calcolatori
D. Patterson, J. Hennessy
4a edizione italiana, condotta sulla 5a edizione americana
Zanichelli, 2015
ISBN 978-88-08-35202-6

Al termine di ogni lezione viene anche reso disponibile il materiale utilizzato dal docente durante la lezione stessa, sotto forma di presentazione in formato pdf.