ARCHITETTURA DEGLI ELABORATORI - MOD.2
- Anno accademico
- 2023/2024 Programmi anni precedenti
- Titolo corso in inglese
- COMPUTER ARCHITECTURE-2
- Codice insegnamento
- CT0653 (AF:493976 AR:273823)
- Lingua di insegnamento
- Italiano
- Modalità
- In presenza
- Crediti formativi universitari
- 6 su 9 di ARCHITETTURA DEGLI ELABORATORI
- Partizione
- Cognomi A-L
- Livello laurea
- Laurea
- Settore scientifico disciplinare
- ING-INF/05
- Periodo
- I 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.
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 operazioni della logica Booleana.
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 numeriche reali, sulla progettazione logica dei circuiti, sul parallelismo a livello di istruzioni, sulla realizzazione dei vari livelli delle gerarchie di memoria, sulla traduzione in assembly di programmi imperativi ad alto livello.
Prerequisiti
- Basi di programmazione in linguaggio C (trattato parallelamente 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
Testi di riferimento
- 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
- Note del docente.
Modalità di verifica dell'apprendimento
Composizione dell'esame scritto:
Esercizio 1 (max 6 punti): Funzionamento della cache
Esercizio 2 (max 6 punti): Dipendenze tra istruzioni e diagramma temporale CPU con pipeline
Esercizio 3 (max 4 punti): Traduzione da codice C a codice Assembly ARM A64
Esercizio 4 (max 4 punti): Programmazione di una funzione in Assembly ARM A64
Domande teoriche (10 punti totali) sugli argomenti visti durante il corso.
Modalità di esame
Metodi didattici
- Esempi ed esercizi pratici svolti dal docente su emulatori e/o dispositivi ARM embedded
- Esercitazioni