COMPUTER ARCHITECTURES-LABORATORY
- Anno accademico
- 2025/2026 Programmi anni precedenti
- Titolo corso in inglese
- COMPUTER ARCHITECTURES-LABORATORY
- Codice insegnamento
- CT0668 (AF:575972 AR:323087)
- Lingua di insegnamento
- Inglese
- Modalità
- In presenza
- Crediti formativi universitari
- 3 su 9 di COMPUTER ARCHITECTURES
- Livello laurea
- Laurea
- Settore scientifico disciplinare
- INF/01
- 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 acquisirà conoscenza sul livello di programmazione macchina/assembly, sul ruolo del compilatore, linker e loader, 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 traduzione in assembly di programmi imperativi ad alto livello.
Prerequisiti
Contenuti
- Rappresentazione dell'informazione: numeri interi, numeri a virgola fissa e mobile, stringhe e array
- Scrittura ed esecuzione di programmi assembly su sistema operativo Linux
- L'instruction set delle CPU ARM A64
- Ruolo del compilatore, assembler, linker e loader nello sviluppo di programmi
- Processo di traduzione da C ad assembly
- Gestione della memoria: variabili globali, stack e heap
- Architetture SIMD con caso di studio ARM NEON
Testi di riferimento
- David A. Patterson, John L. Hennessy. "Struttura e Progetto dei Calcolatori" Quinta edizione italiana condotta sulla sesta Edizione americana. Zanichelli, 2022.
Modalità di verifica dell'apprendimento
Composizione dell'esame scritto:
Esercizio 1 (max 9 punti): Traduzione da codice C a codice Assembly ARM A64
Esercizio 2 (max 16 punti): Programmazione di una funzione in Assembly ARM A64 sulla base delle specifiche date
Domande teoriche (5 punti totali) sugli argomenti visti durante il corso.
Modalità di esame
Il/la docente ha il dovere di vigilare affinché siano rispettate le regole di autenticità e originalità delle prove d'esame. Di conseguenza, nei casi in cui vi sia il sospetto di un comportamento irregolare, l'esame può prevedere un ulteriore approfondimento, contestuale alla prova d'esame, che potrà essere realizzato anche in modalità differente rispetto alle modalità sopra riportate.
Graduazione dei voti
A. I punteggi nell'intervallo 18-22 verranno assegnati in presenza di:
- conoscenza sufficiente del programma;
- limitata capacità di risolvere gli esercizi proposti all'esame (programmi funzionanti in un insieme limitato di casi d'uso);
- capacità di comunicazione sufficienti, in particolare per quanto riguarda la terminologia specifica della disciplina.
B. I punteggi nell'intervallo 23-26 verranno assegnati in presenza di:
- buona conoscenza del programma;
- discreta capacità di risolvere gli esercizi proposti all'esame (programmi funzionanti nella maggior parte dei casi d'uso);
- adeguate capacità di comunicazione, in particolare per quanto riguarda la terminologia specifica della disciplina.
C. I punteggi nell'intervallo 27-30 verranno assegnati in presenza di:
- ottima conoscenza di tutte le tematiche del programma;
- buona capacità di risolvere gli esercizi proposti all'esame (programmi funzionanti in tutti i casi d'uso).
- capacità di comunicazione pienamente appropriate, in particolare per quanto riguarda la terminologia specifica della disciplina.
D. La lode verrà assegnata in presenza di un esame scritto perfetto, in cui vengono fornite soluzioni ottimali per ciascun esercizio.
Metodi didattici
- Esempi ed esercizi pratici svolti dal docente su emulatori e/o dispositivi ARM embedded
- Esercitazioni