ARCHITETTURA DEGLI ELABORATORI

A.A. di erogazione 2019/2020
Insegnamento obbligatorio

Laurea triennale in INFORMATICA
 (A.A. 2019/2020)

Docenti

MORIANI SERGIO
Anno di corso: 
1
Tipologia di insegnamento: 
Base
Sede: 
Como - Università degli Studi dell'Insubria
Settore disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Crediti: 
9
Ciclo: 
Primo Semestre
Ore di attivita' frontale: 
80

Il corso ha lo scopo di rendere gli studenti capaci di comprendere il progetto e la programmazione degli elementi costruttivi degli elaboratori. Gli argomenti in programma sono selezionati sulla base di una consolidata tradizione nell’insegnamento dell’argomento, basata sulla visione della macchina come stratificazione di macchine reali o virtuali. Il corso mira a fornire tutte le competenze relative:
1. ai fondamenti dei circuiti elettronici (visti a livello logico) e le capacità fondamentali di progettazione;
2. all'organizzazione dell'hardware degli elaboratori;
3. alle funzioni svolte dall'hardware e utilizzate dai sistemi operativi e dai programmi applicativi a livello di memoria;
4. alla progettazione di un processore reale (macchina MIPS);
5. alla programmazione in linguaggio Assembly;

Lo studente acquisisce quindi conoscenza e capacità di comprensione in riferimento:
• ai principi costruttivi e delle caratteristiche delle memorie elettroniche comunemente usate nei calcolatori;
• ai principi costruttivi e delle caratteristiche funzionali delle memorie cache;
• ai principi costruttivi delle unità di elaborazione (datapath) e delle unità di controllo;
• alla capacità di progettare unità di controllo mediante microprogrammazione;
• ai principi costruttivi e delle modalità di funzionamento dei bus di connessione tra elementi dell’elaboratore;
• all’organizzazione e delle modalità d’uso e di programmazione dei dispositivi di input/output;

Le abilità e capacità acquisite dallo studente al termine del corso sono:
• capacità di analizzare, progettare, ottimizzare circuiti combinatori, sia mediante tecniche basate sulla conoscenza dell’algebra Booleana sia utilizzando componenti di libreria comunemente disponibili sul mercato;
• capacità di valutare le prestazioni dei circuiti;
• capacità di analizzare, progettare, ottimizzare circuiti sequenziali, eventualmente utilizzando componenti di libreria comunemente disponibili sul mercato;
• capacità di valutare le prestazioni delle memorie cache;
• abilità di scrivere programmi, anche complessi, in linguaggio di programmazione assembly;
• abilità di valutare autonomamente le esigenze contrastanti che si presentano nella progettazione di circuiti (costo di progettazione, costo dei componenti, velocità di elaborazione) e prendere decisioni in merito.

Grazie alla capacità –sviluppata durante tutto il corso– di rapportare puntualmente tecniche, metodi e strumenti alle caratteristiche dell’organizzazione e della progettazione degli elaboratori e delle loro componenti, lo studente svilupperà la capacità di apprendere nuove tecniche, metodi e strumenti, e anche ad affinare ed adattare autonomamente quanto appreso nel corso.

Inoltre, lo studente saprà usare i formalismi normalmente usati per descrivere circuiti e parti dei calcolatori e conoscerà la terminologia tecnica inglese comunemente usata nel campo.

Non è richiesta alcuna conoscenza particolare di tipo tecnico scientifico se non una buona preparazione matematico/fisica acquisita durante il percorso formativo della scuola secondaria di secondo grado.
È opportuna una buona comprensione della lingua inglese scritta, che permetta l’accesso alla grande quantità di materiale didattico, pubblicazioni, manuali, programmi, ecc. disponibili sull’argomento.

Le lezioni affronteranno i seguenti argomenti:
• L’architettura strutturata (a “layer”) dei calcolatori (14h + 4h es., obiettivo formativo 1)
o Principi ed elementi costitutivi di un tipico calcolatore elettronico
o Rappresentazione binaria dei numeri, dei caratteri e di altre informazioni
o Operatori e proprietà dell’algebra di Boole. Corrispondenza tra operatori Booleani e porte logiche
• Circuiti combinatori e Sequenziali (18h + 6h es., obiettivo formativo 2)
o Sintesi di reti combinatorie, forme normali, mappe di Karnaugh
o Librerie di circuiti combinatori, ALU, sintesi di circuiti combinatori mediante elementi di libreria
o Bistabili, elementi sequenziali di libreria (vari tipi di registri). Progettazione di circuiti sequenziali
• Studio e Progettazione delle Memorie di un Calcolatore (8h + 4h es., obiettivo formativo 3)
o Principio di località e gerarchie di memoria (memorie cache)
o Memoria virtuale, paginazione
• Costruzione di un Data Path (8h + 2h es., obiettivo formativo 4)
o CPU a ciclo singolo e suo controllo
o CPU multiciclo
o Unità di controllo cablata e microprogrammata. Implementazione di istruzioni mediante microprogrammazione
o Architetture a pipeline (cenni)
o I/O (programmato, a interrupt, DMA), BUS
• Struttura e istruzioni del linguaggio macchina (8h + 8h es., obiettivo formativo 5)
o Instruction Set Architecture della macchina MIPS
o Programmazione in assembly MIPS: uso delle istruzioni, procedure; uso della pila; record di attivazione; ricorsione

la in lezioni frontali (56 ore) ed esercitazioni (24 ore) ripartite come dettagliato nella sezione Contenuti del Corso.
Le lezioni frontali devono dare agli studenti tutti gli strumenti per poi comprendere ed applicare in contesti pratici e reali gli aspetti teorici appresi. Le esercitazioni permettono invece di applicare gli aspetti teorici a casi reali di progettazione. Ampia autonomia di risoluzione dei problemi viene lasciata agli studenti durante le ore di esercitazione.
Alcune esercitazioni sono svolte con il supporto di strumenti informatici, sia di uso generale (come i fogli di calcolo) sia specifici (mappe di Karnaugh, simulatori di data path, ecc.).
Le lezioni sulla programmazione assembly vengono svolte con l’ausilio di uno strumento di programmazione e di simulazione del comportamento della macchina MIPS.
L’impegno personale di rielaborazione autonoma da parte dello studente è tarato sul valore canonico di 25 ore complessive per CFU.

prova d’esame è l'accertamento dell’acquisizione delle conoscenze e delle abilità descritte nella sezione “Obiettivi del corso”, valutando il livello di conoscenza e soprattutto la capacità di mettere in pratica, anche integrandole tra loro, le tecniche e contenuti visti a lezione.
L’apprendimento è verificato mediante una prova scritta da svolgersi in aula tradizionale della durata indicativa di due ore, senza l'aiuto di appunti o libri. La prova scritta consiste nello svolgimento di 4/5 esercizi, dei quali 3/4 richiedono capacità progettuali, e uno serve invece a verificare conoscenze acquisite. Ogni esercizio si riferisce ad uno specifico argomento e obiettivo formativo. La prova orale viene sostenuta solo su richiesta del docente nel caso lo scritto lasci dei dubbi sulla preparazione dello studente, e comporta una variazione massima di tre punti del punteggio acquisito nello scritto. In ogni caso, lo studente può prendere visione della correzione del proprio elaborato e discuterne la valutazione. Questo può talvolta portare a una revisione del punteggio.
L’eventuale prova orale verte sull’accertamento della capacità di sintesi delle conoscenze acquisite, con particolare riguardo alla capacità di identificare gli elementi di teoria da utilizzare in attività di progettazione o programmazione.
La conoscenza della terminologia specifica di dominio viene testata implicitamente, poiché domande e specifiche dei problemi utilizzano tale terminologia.
Sono previste altresì due prove parziali intermedie oltre agli appelli generali.
Il voto è espresso in trentesimi.

i sono:
o Patterson & Hennessy, “Computer organization and design – The hardware/software interface”, Elsevier
o Bolchini & Sciuto, “Informatica 2 sistemi digitali”, Progetto Leonardo, Soc. Editrice Esculapio Bologna
Le slide delle lezioni in formato PDF sono messe a disposizione sulla piattaforma e-learning di Ateneo ove sono disponibili anche il testo dei problemi visti durante le esercitazioni e le soluzioni proposte.
Per consentire agli studenti di prepararsi adeguatamente agli esami e di verificare la propria preparazione, sul sito dell’e-learning di Ateneo, nella sezione dedicata all'insegnamento di Architettura degli elaboratori - Varese, sono anche disponibili i temi d’esame dal 2006 a oggi e le relative tracce di soluzione.

Il docente riceve su appuntamento, previa richiesta via e-mail a sergio.moriani@uninsubria.it. Il docente risponde solo alle e-mail firmate e provenienti dal dominio studenti.uninsubria.it.

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. 2020/2021

Anno di corso: 1
Curriculum: PERCORSO COMUNE

A.A. 2019/2020

Anno di corso: 1
Curriculum: PERCORSO COMUNE

A.A. 2018/2019

Anno di corso: 1
Curriculum: PERCORSO COMUNE

A.A. 2017/2018

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