Università degli studi dell'Insubria

ARCHITETTURA DEGLI ELABORATORI

A.A. di erogazione 2017/2018

Laurea triennale in INFORMATICA
 (A.A. 2017/2018)

Docenti

TARINI MARCO
Anno di corso: 
1
Tipologia di insegnamento: 
Base
Settore disciplinare: 
INFORMATICA (INF/01)
Lingua: 
Italiano
Crediti: 
9
Ciclo: 
Primo Semestre
Ore di attivita' frontale: 
80
Dettaglio ore: 
Lezione (56 ore), Esercitazione (24 ore)

Il corso si propone di fornire le conoscenze base e le abilità minime necessarie alla comprensione e alla programmazione degli elaboratori. Gli argomenti in programma sono selezionati sulla base di una consolidata tradizione nell’insegnamento dell’argomento, basata sulla visione dell'elaboratore come stratificazione di macchine reali o virtuali, corrispondenti ai diversi livelli di astrazione. I concetti vengono presentati con un approccio bottom-up, cioè a partire dagli elementi base di livello di astrazione inferiore (porte logiche), per terminare al livello di linguaggi assemblatori. Questo punto di arrivo, rappresenta il livello di astrazione superiore fra quelli analizzati in questo corso, e al contempo quello su cui si poggiano (attraverso compilatori ed interpreti) i livelli di ulteriore astrazione costituiti dai linguaggi di medio ed alto livello che sono il soggetto dei corsi di programmazione.

Più in dettaglio, il corso mira a fornire le seguenti conoscenze e abilità:

* conoscenza introduttiva al concetto di livelli di astrazione, macchine virtuali, linguaggi, istruzioni e operazioni, compilatori e interpreti.

* conoscenza e abilità di utilizzo dei formalismi normalmente usati per descrivere circuiti e parti dei calcolatori.

* comprensione dei metodi di rappresentazione digitale di entità numeriche (naturali, intere, razionali) e testuali, inclusiva dei limiti, e dei benefici e costi delle possibili alternative (conoscenza). Corrispondentemente, la familiarizzazione con i corrispondenti metodi di encoding e decoding delle informazioni (abilità)

* conoscenze dei fondamenti dei circuiti elettronici (visti a livello logico) e le abilità fondamentali della loro progettazione;

* capacità di analizzare, progettare, valutare, ed ottimizzare semplici circuiti combinatori, mediante tecniche basate sulla conoscenza dell’algebra Booleana (abilità)

* capacità di analizzare, progettare, valutare, ed ottimizzare circuiti combinatori complessi (come una ALU), utilizzando componenti di libreria standard utilizzando approccio gerarchico (abilità)

* capacità di valutare le esigenze contrastanti che si presentano nella progettazione di circuiti (costo di progettazione, costo dei componenti, velocità di elaborazione) e prendere decisioni in merito.

* conoscenza dei principi costruttivi e delle caratteristiche delle memorie elettroniche comunemente usate nei calcolatori.

* conoscenza dei principi costruttivi e delle caratteristiche funzionali delle memorie cache.

* conoscenza della struttura gerarchica delle memorie, con l'obiettivo di predisporre lo studente ad un uso ottimizzato delle risorse dell'elaboratore attraverso programmazione;

* la comprensione di massima delle funzioni svolte dall'hardware e utilizzate dai sistemi operativi e dai programmi applicativi (conoscenza);

* conoscenza dei principi costruttivi delle unità di elaborazione (datapath) e delle unità di controllo.

* conoscenza e capacità di progettare unità di controllo mediante microprogrammazione;

* la conoscenza di un processore reale (macchina MIPS). Questo Instruction Set assolve anche la funzione di esempio concreto per guidare i tre argomenti precedenti;

* capacità base di programmazione in linguaggio assembly, utilizzando lo stesso linguaggio MIPS;

* la capacità di implementare algoritmi che risolvono task estremamente semplici in tale linguaggio (abilità);

Infine, il corso vuole anche abituare lo studente al linguaggio tecnico del settore, incluso alla terminologia in lingua inglese.

Prerequisiti: 

Non è richiesta alcuna conoscenza particolare di tipo tecnico scientifico.

È una buona comprensione della lingua inglese scritta è utile per permettere l’accesso alla grande quantità di materiale didattico, pubblicazioni, manuali, programmi, pagine web, ecc. disponibili sull’argomento.

L’architettura strutturata (a ‘layer’) dei calcolatori. Principi ed elementi costitutivi di un tipico calcolatore elettronico.
lezioni ore 3; esercitazioni ore 0

Rappresentazione binaria di numeri (naturali, interi, razionali), dei caratteri e di altre informazioni
lezioni ore 7; esercitazioni ore 1

Operatori e proprietà dell’algebra di Boole. Corrispondenza tra operatori Booleani e porte logiche.
lezioni ore 4; esercitazioni ore 1

Circuiti combinatori - Sintesi di reti combinatorie, forme normali, mappe di Karnaugh.
lezioni ore 4; esercitazioni ore 3

Librerie di circuiti combinatori, ALU, sintesi di circuiti combinatori mediante elementi di libreria.
lezioni ore 3; esercitazioni ore 2

Bistabili, elementi sequenziali di libreria (vari tipi di registri). Progettazione di circuiti sequenziali.
lezioni ore 5; esercitazioni ore 1

Memorie. Principio di località e gerarchie di memoria (memorie cache), memoria virtuale, paginazione
lezioni ore 4; esercitazioni ore 2

Costruzione di un data path. CPU a ciclo singolo e suo controllo. CPU multiciclo.
lezioni ore 6; esercitazioni ore 0

Unità di controllo cablata e microprogrammata. Implementazione di istruzioni mediante microprogrammazione
lezioni ore 6; esercitazioni ore 2

Architetture a pipeline (cenni)
lezioni ore 2; esercitazioni ore 0

I/O (programmato, a interrupt, DMA), BUS
lezioni ore 4; esercitazioni ore 0

Struttura e istruzioni del linguaggio macchina. Instruction Set Architecture della macchina MIPS
lezioni ore 4; esercitazioni ore 0

Programmazione in assembly MIPS: uso dell eistruzioni, procedure; uso della pila; record di attivazione, ricorsione (cenni).
lezioni ore 4; esercitazioni ore 12

L’impegno personale di rielaborazione autonoma da parte dello studente è tarato sul valore canonico di 25 ore complessive per CFU.

Vengono tenute lezioni frontali (per complessive 56 ore) ed esercitazioni (per complessive 24 ore).
Le lezioni sulla programmazione assembly sengono svolte con l’ausilio di uno strumento di programmazione e di simulazione del comportamento della macchina MIPS.

Modalita' di verifica dell'apprendimento: 

L'esame finale consiste di una prova scritta, della durata di tre ore. Nella prova, lo studente deve risolvere una sequenza di esercizi che ricapitolano i contenuti del corso. Nella pagina del corso sono disponibili numerosi testi di esempio di tali prove scritte.

In alcuni casi, identificati dal docente, la prova scritta viene completata da una prova orale, al fine di derimere eventuali ambiguità nello svolgimento.

Le slide usate a supporto di lezioni ed esercitazioni sono disponibili sul sito dell’e-learning.

Sono inoltre consigliati, ma non obbligatori, i seguenti testi:

Patterson & Hennessy, “Computer organization and design – The hardware/software interface”, Elsevier
(Nota 1: qualsiasi delle numerose edizioni di questo testo è equivalente, ai fini di questo corso)
(Nota 2: è disponibile anche una versione italiana)
(Nota 3: si raccomanda di verificare l'ordine dei due autori, in quanto esiste un secondo libro di testo, meno indicato ai fini di questo corso, in cui tale ordine è invertito)

Bolchini & Sciuto, “Informatica 2 sistemi digitali”, Progetto Leonardo, Soc. Editrice Esculapio Bologna

Durante il semestre in cui il corso è tenuto, il ricevimento studenti si svolge secondo un orario settimanale stabilito. Dopo la fine del corso, il ricevimento si svolge su appuntamento.

Cerchi il programma? Potrebbe non essere ancora stato caricato o riferirsi ad insegnamenti che verranno erogati in futuro.
Seleziona l‘anno in cui ti sei immatricolato e troverai le informazioni relative all'insegnamento del tuo piano di studio.

A.A. 2019/2020

Anno di corso: 1
Curriculum: PERCORSO COMUNE

A.A. 2018/2019

Anno di corso: 1
Curriculum: PERCORSO COMUNE

A.A. 2016/2017

Anno di corso: 1
Curriculum: PERCORSO COMUNE

A.A. 2015/2016

Anno di corso: 1
Curriculum: PERCORSO COMUNE

A.A. 2014/2015

Anno di corso: 1
Curriculum: PERCORSO COMUNE

A.A. 2013/2014

Anno di corso: 1
Curriculum: PERCORSO COMUNE