ARCHITETTURA DEGLI ELABORATORI - MOD.2
- Anno accademico
- 2021/2022 Programmi anni precedenti
- Titolo corso in inglese
- COMPUTER ARCHITECTURE - 2
- Codice insegnamento
- CT0615 (AF:359650 AR:187179)
- Lingua di insegnamento
- Italiano
- 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
Inquadramento dell'insegnamento nel percorso del corso di studio
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.
Risultati di apprendimento attesi
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.
Prerequisiti
- Programmazione in linguaggio C (trattato nei corsi di Programmazione)
Contenuti
- 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)
Testi di riferimento
- 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
Modalità di verifica dell'apprendimento
Modalità di esame
Metodi didattici
- Esempi ed esercizi pratici svolti dal docente su dispositivi ARM embedded (anche con l'ausilio dei laboratori)
- Esercitazioni