Conoscenza delle architetture dei calcolatori base, il pipeline e le relative problematiche nel calcolatori, i linguaggi assembly, gerarchia di memoria e relative ottimizzazioni, linguaggio Java
La frequenza non è obbligatoria
1. Introduzione ai Sistemi Embedded Caratteristiche dei sistemi embedded. Problematiche nella implementazione hardware/software. Metriche di progetto. Tecnologie dei circuiti integrati. Tecnologie dei processori. Tecnologie e metodologie per la progettazione.
2. Tecnologie dei Processori nei Sistemi Embedded Progettazione di processori single purpose. Architetture di processori general purpose risc pipelined. Tecniche di branch prediction per l’ottimizzazione delle prestazioni di processori risc. Realizzazione software di un sistema embedded.
3. Interfacciamento della CPU con memorie e periferiche nei Sistemi Embedded Interfacciamento CPU periferiche. Gestione delle interruzioni con processori pipelined. Interfacciamento seriale sincrono. Protocolli SPI e I2C. Bus arbitration. Bus pipelining. Split transactions. AMBA bus. Network-on-chip.
4. Instruction level parallelism. Loop unrolling. Architetture superscalari. Schedulazione dinamica. Scoreboard. Algoritmo di Tomasulo. Esecuzione speculativa e Reorder buffer. Architetture VLIW. Schedulazione statica. Ottimizzazione della memoria: tecniche di codifica delle VLIW. Register pressure. Ottimizzazione della potenza. Basic block. Trace scheduling. Predicated execution.
5. Data level parallelism. Processori SIMD. Processori vettoriali. VMIPS instruction set architecture. Valutazione delle prestazioni del VMIPS. Estensioni SIMD. Estensioni SIMD Intel.
6. Una famiglia di processori per applicazioni embedded e mobili: i processori ARM. Organizzazione e modalità di esecuzione. Instruction Set Architecture del processore ARM.
7. Metodologie di progetto IP based Piattaforme parametriche e modelli per l'esplorazione dello spazio di progetto. Pareto Set. Metodologie di esplorazione multiobiettivo.
8. Architetture dei dispositivi mobili La piattaforma Android. Ambiente di sviluppo Android Studio ed emulatore. Sviluppo di un’app Android. Anatomia di un’applicazione Android. Ciclo di vita di Activity, Service e Process. Interfaccia Utente Android. Memorizzazione dei dati. Processi in backgroung. Android e REST. Localizzazione, mappe e sensori in Android.
-“Embedded System Design: A Unified Hardware/Software Introduction” , Frank Vahid, Tony Givargis, John Wiley & Sons Inc., ISBN:0-471-38678-2, 2002.
- "Computers as Components: Principles of Embedded Computer Systems Design", Wayne Wolf, Morgan Kaufmann 25 October, 2000
-“Hennessy & Patterson: Computer architecture, a quantitative approach (Morgan Kaufmann eds.)
E’ possibile scaricare tutto il materiale didattico in formato elettronico all’indirizzo http://utenti.dieei.unict.it/users/gascia/corsi.html
o all’indirizzo
htpp://studium.unict.it
Gli studenti devono svolgere un elaborato del corso e una prova orale. Nella valutazione dell’esame l’elaborato pesa per il 40%, l’orale per il 60%.
L’elaborato verrà concordato tra docente e studente circa a metà del corso. La data della valutazione dell’elaborato è concordata con il docente.
La prova orale coincide con la data dell'esame pubblicata dal docente sul portale d'ateneo
Non sono previste prove in itinere
Non sono previste prove di fine corso