CALCOLATORI ELETTRONICI

Anno accademico 2015/2016 - 3° anno
Docente: Salvatore MONTELEONE
Crediti: 9
SSD: ING-INF/05 - Sistemi di elaborazione delle informazioni
Organizzazione didattica: 225 ore d'impegno totale, 165 di studio individuale, 60 di lezione frontale
Semestre:
ENGLISH VERSION

Obiettivi formativi

Il corso ha un duplice obiettivo. In primo luogo ha l’obiettivo di introdurre alla conoscenza delle tecnologie dei sistemi digitali. Un secondo obiettivo è la conoscenza dell’organizzazione dei calcolatori elettronici, l’architettura del set delle istruzioni, e le tecniche per un’efficiente implementazione.

Prerequisiti richiesti

Rappresentazione dell'Informazione nei calcolatori elettronici. Algoritmi. Sequenze di Controllo. Tipi di dati. Puntatori. Funzioni. Concetto di Stato. Macchina a stati finiti.


Frequenza lezioni

La frequenza non è obbligatoria.


Contenuti del corso

Parte 1 - Progettazione di sistemi digitali

1.1. Progetto di reti combinatorie:
Algebra di commutazione. Espressioni booleane minime. Minimizzazione mediante il metodo delle mappe di Karnaugh

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 2 - Il calcolatore

2.1. Organizzazione del calcolatore:
Organizzazione dei calcolatori elettronici. Valutazione delle prestazioni di un calcolatore. Architettura del Set di Istruzione dei processori. Organizzazione sequenziale di un processore. Datapath di un processore sequenziale. Unità di Controllo di un processore sequenziale: realizzazione cablata e microprogrammata.

2.2. Control Process Unit:
Esecuzione e sequenzializzazione delle istruzioni. CPU monociclo. CPU multiciclo. Sviluppo della logica di controllo. Considerazioni sulla realizzazione multiciclo.

2.3. La pipeline
Proprietà della pipeline. Esecuzione in pipeline. Le fasi di esecuzione. Conflitti: conflitti sui dati, conflitti di controllo e conflitti strutturali.

2.4. Il sottosistema di memoria:
Memorie RAM statiche e dinamiche. Memorie asincrone e sincrone. Organizzazione della memoria. Memorie cache. Valutazione delle prestazioni della memoria.

2.5. Il sottosistema di Input/Output:
Polling. Interruzioni. Interruzioni vettorizzate. Gestione delle priorità. Accesso diretto alla memoria.

2.6. Il linguaggio Assembly:
Assembler, linker e loader. Instruction Set Architecture MIPS64. Instruction Set Simulator per il processore EduMIPS. Assembly del processore EduMIPS64.
Gestione degli array. Chiamata a procedura.

Parte 3 - Sviluppo su microcontrollori

3.1. Piattaforme di Prototipazione.

3.2. Struttura di un microcontrollore.

3.3. Sviluppo di software in C/C++ per microcontrollori a 8 e 32-bit.


Testi di riferimento

[T1] Fummi, Sami, Silvano, "Progettazione digitale", 2a ed. McGraw-Hill;
[T2] Bucci, "Calcolatori elettronici. Architettura e organizzazione", McGraw-Hill;
[T3] Materiale fornito dal docente.



Programmazione del corso

 *ArgomentiRiferimenti testi
1*Progetto di reti combinatorie: Algebra di commutazione. Espressioni booleane minime. Minimizzazione mediante il metodo delle mappe di Karnaugh.[T1] capitoli 3 e 4. [T3] 
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.[T1] capitoli 5 e 6. [T3] 
3*Progettazione di un sistema digitale: Flusso di progettazione di un sistema digitale. Datapath e unità di controllo.[T1] capitoli 7 e 8. [T3] 
4 Linguaggi per la descrizione dell’hardware: Il VHDL. Flusso di progettazione. Entity e architecture. Modello concorrente e sequenziale. Process. Tipi di dati. Procedure e funzioni. Simulazione e sintesi.[T1] appendice A 
5*Organizzazione del calcolatore: Organizzazione e valutazione delle prestazioni. Architettura del Set di Istruzione dei processori. Organizzazione sequenziale di un processore. Datapath di un processore sequenziale: realizzazione cablata/microprogrammata[T2] capitolo 5. [T3] 
6*Control Process Unit: Esecuzione e sequenzializzazione delle istruzioni. CPU monociclo. CPU multiciclo. Sviluppo della logica di controllo. Considerazioni sulla realizzazione multiciclo.[T2] capitolo 7. [T3] 
7*La pipeline: Proprietà della pipeline. Esecuzione in pipeline. Le fasi di esecuzione. Conflitti. Conflitti sui dati. Conflitti di controllo.[T2] capitolo 8. [T3] 
8*Il sottosistema di memoria: Memorie RAM statiche e dinamiche. Memorie asincrone e sincrone. Organizzazione della memoria. Memorie cache. Valutazione delle prestazioni della memoria. [T2] capitoli 10 e 11. [T3] 
9*Il sottosistema di Input/Output: Polling. Interruzioni. Interruzioni vettorizzate. Gestione delle priorità. Accesso diretto alla memoria.[T2] capitolo 13. [T3] 
10*Il linguaggio Assembly: Assembler, linker e loader. Instruction Set Architecture MIPS64. Un Instruction Set Simulator per il processore EduMIPS. Assembly del processore EduMIPS64. Gestione degli array. Chiamata a procedura.[T3] 
* 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.

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

Durante lo svolgimento del corso sono previste due prove in itinere che permettono il superamento dell'esame. L'esame finale, se necessario, prevede una parte scritta (esercizi e teoria) ed una al calcolatore (programmazione in assembly). La valutazione può essere completata, a discrezione dello studente, dalla presentazione di un progetto ed un esame orale.


Esempi di domande e/o esercizi frequenti

Esempi di domande ed esercizi sono disponibili all'indirizzo http://utenti.dieei.unict.it/users/smonteleone/ e sulla piattaforma didattica di Ateneo Studium (http://studium.unict.it/).