INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICAIngegneria elettronicaAnno accademico 2023/2024

1001332 - CALCOLATORI ELETTRONICI A - Z

Docente: MAURIZIO PALESI

Risultati di apprendimento attesi

L’insegnamento ha l’obiettivo di fornire i concetti fondamentali relativi ai sistemi di elaborazione dell’informazione.

Nella prima parte dell'insegnamento vengono introdotte le tecniche e le metodologie per la progettazione dei sistemi digitali.

Nella seconda parte dell'insegnamento vengono presentati i componenti dei calcolatori elettronici e la loro organizzazione, l’architettura del set delle istruzioni dei processori, alcune tecniche per un’efficiente implementazione dei processori e il sottosistema di memoria. Inoltre, al fine di comprendere meglio il funzionamento del processore, l'insegnamento introduce lo studente alla programmazione assembly di un processore educational.

 

Conoscenza e capacità di comprensione

Lo studente conoscerà:

 

Conoscenze applicate e capacità di comprensione

Lo studente sarà in grado di:

 

Autonomia di giudizio

Lo studente sarà in grado di valutare l'impatto delle scelte architetturali sulle prestazioni dei calcolatori.

 

Abilità comunicative

Lo studente sarà in grado di  esporre in modo chiaro e rigoroso le conoscenze acquisite e come applicarle per la progettazione di semplici sistemi di elaborazione.

 

Capacità di apprendere

Lo studente sarà in grado di apprendere autonomamente:

Modalità di svolgimento dell'insegnamento

L'insegnamento verra svolto utilizzando lezioni frontali, esercitazioni pratiche e lo studio di alcuni casi. 

Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.

Prerequisiti richiesti

Rappresentazione dell’Informazione nei calcolatori elettronici, Algoritmi. Sequenze di Controllo. Tipi di dati. Puntatori. Funzioni. Passaggio dei parametri di una funzione. Concetto di Stato. Macchina a stati finiti. 

Frequenza lezioni

La frequenza non è obbligatoria ma fortemente consigliata.

Contenuti del corso

Parte I   Progettazione di sistemi digitali  

1.1 Progetto di reti combinatorie

* Algebra di commutazione. Espressioni booleane minime. Minimizzazione mediate il metodo delle mappe di Karnaugh e di Quine-McCluckey.

1.2 Progetto di reti sequenziali sincrone

* Introduzione alle macchine sequenziali. Gli elementi di memoria: i bistabili. Sintesi di reti sequenziali sincrone. Minimizzazione delle macchine a stati finiti.

1.3 Progettazione di un sistema digitale

Flusso di progettazione di un sistema digitale. Datapath e unità di controllo.


Parte II Il calcolatore  

2.1 Il calcolatore: astrazione e tecnologie

* I tipi di calcolatori e le loro caratteristiche. I componenti di un calcolatore elettronico  e loro organizzazione. Valutazione delle prestazioni di un calcolatore. Legge di Amdhal.  

2.2 Il linguaggio del calcolatore: l’Assembly

* Architettura del Set di Istruzione dei processori. 

Traduzione e avvio di un programma: Assembler, linker e loader. 

* Instruction Set Architecture MIPS64.

* Un Instruction Set Simulator per il processore MIPS 64. Operazioni logico-aritmetiche. Accesso alla memoria. Chiamate di sistema. Array. Stringhe.  Chiamata a procedura. Procedure annidate. Stack.

2.3 Organizzazione del calcolatore

* Organizzazione sequenziale di un processore. Datapath di un processore sequenziale. Unità di Controllo di un processore sequenziale.

* Organizzazione pipeline di un processore.  Hazard nella pipeline. Valutazione delle prestazioni di un processore pipeline. Tecniche per il rilevamento e la risoluzione degli hazard nella pipeline. Schedulazione del codice per la minimizzazione degli hazard.

2.4 Il Sottosistema di memoria.

Memorie RAM statiche e dinamiche. Memorie asincrone e sincrone.

Organizzazione della memoria.

* Memorie cache. Politiche di Block placement, block identification, block replacement e di scrittura. Valutazione delle prestazioni della memoria.

* Tecniche per il miglioramento delle prestazioni della cache.

_________________________________________________________________________________________________

* Conoscenze minime irrinunciabili per il superamento dell'esame.

N.B. La conoscenza degli argomenti contrassegnati con l'asterisco è condizione necessaria ma non sufficiente per il superamento dell'esame. Rispondere in maniera sufficiente o anche più che sufficiente alle domande su tali argomenti non assicura, pertanto, il superamento dell'esame.

Testi di riferimento

[T1] Fummi, Sami, Silvano, “Progettazione digitale”,  2/ed McGraw-Hill

[T2] Patterson, Hennessy, “Struttura e progetto dei calcolatori”, Zanichelli

[T3] Bucci, “Architettura e organizzazione dei calcolatori  elettronici: fondamenti”,  McGraw-Hill

[T4] Materiale fornito dal docente on line

Programmazione del corso

 ArgomentiRiferimenti testi
1Progetto di reti combinatori. Algebra di commutazione. Espressioni booleane minime. Minimizzazione mediate il metodo delle mappe di Karnaugh e di Quine-McCluckey.T1 capitoli 3 e 4, T4
2Progetto di reti sequenziali sincrone. Introduzione alle macchine sequenziali. Gli elementi di memoria: i bistabili. Sintesi di reti sequenziali sincrone. Minimizzazione delle macchine a stati finiti.T1 capitoli 5 e 6, T4
3Progettazione di un sistema digitale. Flusso di progettazione di un sistema digitale. Datapath e unità di controllo. Componenti di un sistema digitale. Multiplexer, Decoder, Encoder, Comparatore, Registri, Register file.T1 capitoli 7 e 8, T2 capitolo 3, T4
4Sommatore. Moltiplicatore e divisore. Progetto di un ALUT1 capitoli 7 e 8, T2 capitolo 3, T4
5I tipi di calcolatori e le loro caratteristiche. I componenti di un calcolatore. Organizzazione dei calcolatori elettronici. Valutazione delle prestazioniT2 capitolo 1, T3 capitolo 5 T4
6Architettura del Set di Istruzioni dei processori.T2 capitolo 2, T3 capitolo 5, T4 
7Organizzazione sequenziale di un processore. Datapath di un processore sequenziale. Unità di Controllo di un processore sequenziale.T2 capitolo 4, T3 capitolo 7, T4
8Organizzazione Pipeline di un processoreT2 capitolo 4, T4
9Assembly di un processore RISC. Assembler, linker e loader. Struttura di un programma assembly. T4
10Un Instruction Set Simulator per il MIPS64.T4
11Istruzioni logico-aritmetiche. Istruzioni di accesso alla memoria. Istruzioni per il controllo di flusso.T4
12Chiamate di sistema. Lettura e stampa di interi e stinghe. Gestione degli array. T4
13Chiamata a procedure. Stack pointer. T4
14Il Sottosistema di memoria. Classificazione delle memorie. Ram Statica e RAM dinamica.  DRAM asincrona e sincrona. Organizzazione della memoria. Decodifica degli indirizzi. T2 capitolo 5, T3 capitolo 8, T4
15Memorie cache.  Politiche di Block placement, block identification, block replacement e di scrittura. Valutazione delle prestazioni delle memorie cache. T2 capitolo 5, T3 capitolo 8, T4
16Tecniche per il miglioramento delle prestazioni della cache. T2 capitolo 5, T3 capitolo 8, T4

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

L'esame consiste in un'unica prova scritta e al calcolatore. Nella prova d'esame sono previsti:

Per superare la prova è necessario ottenere un punteggio minimo pari a 18 punti.

Non sono previste prove in itinere.

La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.

Esempi di domande e/o esercizi frequenti

Esempi di domande e/o esercizi frequenti saranno disponibili nella pagina del corso su MS Teams


English version