ARCHITETTURA DEGLI ELABORATORI - MOD.2

Anno accademico
2022/2023 Programmi anni precedenti
Titolo corso in inglese
COMPUTER ARCHITECTURE - 2
Codice insegnamento
CT0615 (AF:379949 AR:198877)
Modalità
In presenza
Crediti formativi universitari
6 su 12 di ARCHITETTURA DEGLI ELABORATORI
Livello laurea
Laurea
Settore scientifico disciplinare
ING-INF/05
Periodo
II Semestre
Anno corso
1
Sede
VENEZIA
Spazio Moodle
Link allo spazio del corso
L'insegnamento ricade tra le attività formative di base del corso di laurea in Informatica.
Il corso permette di acquisire i fondamenti teorici e le tecniche per la progettazione di un elaboratore nelle sue componenti principali: Processore - Input/Output - Memoria.
Permette altresì di approfondire la conoscenza sui livelli macchina/assembler di un calcolatore convenzionale, congiuntamente alle conoscenze sulle misure e le tecniche usate per valutare le prestazioni di un calcolatore.

Il corso enfatizza infine l'interfaccia tra l'hardware e il software di un elaboratore.
Conoscenza e comprensione.

Lo studente avrà acquisito padronanza della terminologia tecnica specifica.
Sarà in grado di riconoscere e comprendere le basi teoriche per la progettazione delle componenti principali di un elaboratore.
Avrà conoscenze sulla rappresentazione dell'informazione e sulle misure di valutazione delle prestazioni.
Comprenderà la complessità delle moderne architetture degli elaboratori, e la loro influenza sulla progettazione e prestazione del software.
Inoltre, lo studente acquisirà conoscenza sul livello di programmazione macchina/assembly, e sulla traduzione di semplici programmi ad alto livello in linguaggio assembly.


Capacità di applicare conoscenza e comprensione.

Lo studente sarà in grado di svolgere esercizi finalizzati ad applicare le conoscenze acquisite nei vari argomenti del corso; in particolare, sulla rappresentazione di valori numerici interi e reali, sulla progettazione logica dei circuiti, sul parallelismo a livello di istruzioni, sulla realizzazione dei vari livelli delle gerarchie di memoria, sulla valutazione delle prestazioni dei processori e dei sottosistemi di I/O, sulla traduzione in assembly di programmi imperativi ad alto livello.
Inoltre sarà in grado di fare scelte hardware/software applicando i principi della valutazione delle prestazioni.
- Architettura degli Elaboratori (Mod.1)
- Programmazione in linguaggio C (trattato nei corsi di Programmazione)
- Progetto avanzato della CPU: pipeline
- Gerarchie di memoria
- Input e Output
- L'instruction set delle CPU ARM
- L'esecuzione di programmi: compilatore, assembler, linker e loader
- Processo di traduzione da C ad assembly ARM
- Esempi di programmazione su architetture ARM esistenti (es. Raspberry Pi)
- David A. Patterson, John L. Hennessy. "Struttura e Progetto dei Calcolatori" Quarta edizione italiana condotta sulla Quinta Edizione americana. Zanichelli, 2015
- David A. Patterson, John L. Hennessy. "Computer Organization and Design ARM Edition", Morgan Kaufmann; 1st edition (March 16, 2016)
- David Money Harris Sarah L. Harris. "Sistemi digitali e architettura dei calcolatori. Progettare con tecnologia ARM", Trad. di O. Scarabottolo, rev. di N. Scarabottolo, Zanichelli, 2017
L'esame è scritto di durata 90 minuti. Comprende 4 esercizi e 3 domande teoriche a risposta aperta volte a testare le competenze acquisite durante il corso.
Composizione dell'esame scritto:
Esercizio 1 (max 5 punti): Funzionamento della cache
Esercizio 2 (max 6 punti): Dipendenze tra istruzioni e diagramma temporale CPU con pipeline
Esercizio 3 (max 5 punti): Traduzione da codice C a codice Assembly ARM A64
Esercizio 4 (max 8 punti): Programmazione di una funzione in Assembly ARM A64
Domande teoriche (max 2 punti ciascuna) sugli argomenti visti durante il corso.
- Lezioni teoriche
- Esempi ed esercizi pratici svolti dal docente su dispositivi ARM embedded (anche con l'ausilio dei laboratori)
- Esercitazioni
Italiano
scritto
Programma definitivo.
Data ultima modifica programma: 12/07/2022