Architettura degli elaboratori i

A.A. 2019/2020
6
Crediti massimi
60
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
L'insegnamento introduce le conoscenze dei principi che sottendono al funzionamento di un elaboratore digitale; partendo dal livello delle porte logiche si arriva, attraverso alcuni livelli di astrazione intermedi, alla progettazione di ALU firmware e di un'architettura MIPS in grado di eseguire il nucleo delle istruzioni in linguaggio macchina.
Risultati apprendimento attesi
Lo studente si sarà impadronito dei principi base che sottendono all'elaborazione dell'informazione digitale. In particolare, avrà acquisito competenze che gli consentiranno di comprendere, analizzare e progettare circuiti combinatori e sequenziali.
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

Programma e organizzazione didattica

Edizione 1

Periodo
Primo semestre

Programma
L'architettura di riferimento. Il ciclo di esecuzione delle istruzioni. Storia dell'elaboratore. Codifica dell'informazione. Rappresentazione binaria dei numeri.

Logica e algebra combinatoria
Operazioni su numeri binari. Le operazioni fondamentali: addizioni e sottrazioni. Rappresentazione binaria dei numeri in virgola mobile. Logica combinatoria. Algebra di Boole: variabili e operatori. Implementazione circuitale (porte logiche). Dai circuiti alla funzione. Porte universali. Dalle funzioni ai circuiti. Tabelle della verita'. Dalle tabelle della verita' ai circuiti: la prima forma canonica. Implementazione dellefunzioni logiche mediante PLA e ROM. Circuiti combinatori notevoli. Esercizi.

ALU
Addizionatori. Il problema del riporto. Moltiplicatori HW. Progettazione di una ALU a due stadi. Sommatore a 32 bit. Supporto all'operazione di confronto. Anticipazione di riporto. Introduzione al firmware. Circuiti firmware di moltiplicazione e divisione. Aritematica e addizionatori per numeri in virgola mobile.

Logica sequenziale
Temporizzazione dei circuiti booleani. Circuiti sequenziali. Il latch SC e il latch D. Registri e register file. Problemi di temporizzazione. I flip-flop. Macchine a stati finiti. Dalle specifiche al circuito. Il grafo e la tabella di transizioni di stato. Codifica della STT. Sintesi del circuito di una macchina a stati finiti. Esempi.

Introduzione alla CPU
Progetto di una CPU semplice e della sua unita' di controllo. Il formato dei diversi tipi di istruzioni. Istroduzione al codice macchina e assembler.

Progettazione e costruzione di circuiti logici mediante simulatore.
Prerequisiti
Nessuno
Metodi didattici
a) Lezioni frontali + b) Laboratorio disciplinare
Materiale di riferimento
Computer Organization & Design: The Hardware/Software Interface", D.A. Patterson and J.L. Hennessy, Morgan Kaufmann Publishers, Fifth Edition, 2014. Potete trovare materiale integrativo al seguente URL: http://books.elsevier.com/companions/1558606041/. NB Morgan Kaufman ha pubblicato anche una versione del testo per RISC-V e per ARM, non adottata in questo corso.
Struttura e progetto dei calcolatori: l'interfaccia hardware-software, D.A. Patterson and J.L. Hennessy, Quarta edizione, Zanichelli. Nota: la quarta edizione Zanichelli è la traduzione della quinta edizione inglese.

Per un approfondimento sui circuiti combinatori e sequenziali:
"Progettazione digitale" F. Fummi, M.G. Sami, C. Silvano, Seconda edizione McGrawHill. 2007.
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste di una prova scritta, di una prova orale e di una prova di laboratorio.
Nella prova scritta, della durata di tre ore, viene richiesta la risoluzione di alcuni esercizi che richiedono di applicare i metodi trattati durante il corso e vengono proposti quesiti a risposta aperta.
La prova orale è basata sulla discussione della prova scritta e su quesiti che riguardano gli argomenti trattati a lezione.
La prova di laboratorio consiste nella realizzazione al PC di una serie di esercizi di progettazione digitale.
Ciascuna prova verrà valutata in trentesimi e la valutazione finale sarà la media delle tre valutazioni.
In tutte e tre le prove, la valutazione tiene conto del livello di padronanza degli argomenti e della chiarezza espositiva.
INF/01 - INFORMATICA - CFU: 6
Laboratori: 24 ore
Lezioni: 36 ore
Turni:
Turno A
Docente: Basilico Nicola
Turno B
Docente: Trucco Gabriella

Edizione 2

Responsabile
Periodo
Primo semestre

Programma
Per la parte di teoria:

Lez.00 - Intro al corso
Lez.01 - Macchine e Linguaggi
Lez.02 A Rappresentazioni: di naturali
Lez.02 B Rappresentazioni: di interi
Lez.02 C Rappresentazioni: in notazione scientifica
Lez.02 D Rappresentazioni: in virgola mobile
Lez.02 E Rappresentazioni: di testi
Lez.02 F Rappresentazioni: di testi - oltre l'ASCII
Lez.03 A Porte logiche e circuiti: funzionamento
Lez.03 B Porte logiche e circuiti: esempi
Lez.04 - Sintesi di circuiti combinatori
Lez.05 A Blocchi funzionali combinatori: DEC, COD, MUX
Lez.05 B Blocchi funzionali combinatori: ADD, SFT, MUL
Lez.06 - La ALU
Lez.07 - PLA, ROM, EEPROM, FPGA
Lez.08 - Bistabili, Flip-Flip e sincronizzazione
Lez.09 A Finite State Machine: grafo
Lez.09 B Finite State Machine: tabelle e circuiti
Lez.10 - Registri
Lez.11 A Register File: intro, bus singolo
Lez.11 B Register File: comando di lettura
Lez.12 - Memoria (cenni)
Lez.13 - Bus (cenni)
Lez.14 A CPU Singolo Ciclo: Intro MIPS e Op registri
Lez.14 B CPU Singolo Ciclo: Op. con immediate, RAM op.
Lez.14 C CPU Singolo Ciclo: Salti
Lez.14 E CPU Singolo Ciclo: Analisi
Lez.14 D CPU Singolo Ciclo: l'unità di Controllo
Lez.15 - CPU Multiciclo
Lez.16 A Firmware (per ALU) - Moltiplicazione
Lez.16 B Firmware (per ALU) - Microprogramma e Divisione.
Prerequisiti
Nessun prerequisito è necessario. Tutti gli argomenti vengono trattati senza nessuna assunzione ulteriore rispetto alla normale preparazione di una qualsiasi scuola superiore. In particolare, non è richiesta nessuna conoscenza pregressa di informatica.
Metodi didattici
Per la parte di teoria: Lezioni frontali.
Materiale di riferimento
Nel sito del corso: https://mreae1.ariel.ctu.unimi.it/ sono forniti lucidi e materiali didattici sia per la teoria che per la parte di laboratorio.

Il corso segue da vicino il seguente libro di testo:

"Architettura degli elaboratori" J. L. Hennessy, D. A. Patterson (qualsiasi edizione)
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame verte in due parti: teoria e laboratorio. Il voto finale è la media pesata fra i due voti conseguiti nelle due parti, con pesi 2/3 e 1/3 rispettivamente.

PER LA PARTE DI TEORIA:

Prova scritta della durata di 2 ore, che consiste nella soluzione di esercizi inerenti agli argomenti trattati nell'insegnamento, e la risposta a brevi domande aperte.

La prova scritta può essere interamente sostituita da due prove in itinere, ciascuna delle quali verte su una metà del corso, che vengono svolte durante il semestre di erogazione. Entrambe le prova in itinere devono essere superate per poter sostituire lo scritto.

La valutazione della parte di teoria è tesa a verificare la piena comprensione degli argomenti trattati nel corso, l'acquisizione del vocabolario tecnico proprio della disciplina, e, in maniera precipua, la capacità di applicazione dei metodi di analisi e sintesi impartiti nel insegnamento.
INF/01 - INFORMATICA - CFU: 6
Laboratori: 24 ore
Lezioni: 36 ore
Turni:
-
Docente: Tarini Marco
Turno C
Docente: Re' Matteo
Docente/i
Ricevimento:
Su appuntamento per email
Ricevimento:
Su appuntamento, utilizzare preferibilmente email
Dipartimento di Informatica
Ricevimento:
Concordare via email e/o su piattaforma Microsoft Teams. Per specifici corsi fare riferimento al sito Ariel del corso.
Milano - via Celoria 18 (stanza 3010) e/o Ms Teams/Zoom
Ricevimento:
Martedì 14:30-17:30 (o su appuntamento)
Dipartimento (Via Celoria 18) -- 4to piano.
Ricevimento:
su appuntamento tramite e-mail
Dipartimento di Informatica - sede di Crema