Informations générales
Volumes horaires
- CM 10.0
- Projet 0
- TD 6.0
- Stage 0
- TP 26.0
Crédits ECTSCrédits ECTS
4.0
Objectif(s)
Cette UE a pour objectif de permettre une compréhension fine des liens entre matériel et logiciel dans les systèmes embarqués, pour une programmation efficace d'applications déployées sur FPGA ou microcontrôleurs.
Contact Jonathan MIQUEL, Mounir BENABDENBIContenu(s)
La partie Cours et TD sera centralisée sur l'architecture du processeur et la hiérarchie mémoire, elle permettra entre autres:
- de faire un état de l'art des grandes familles de processeur et leurs architectures
- d'expliquer les notions de pipeline et de prédiction de branchement dans un processeur
- d'expliquer la hiérarchie mémoire et son impact sur les performances du système
- de donner une vue synthétique des types de µC et de leur utilisation.
Les exemples en CM et TDs s'appuieront sur un processeur avec jeu d'instruction RISC V.
Une série de TPs et un mini projet viennent compléter la partie théorique avec la mise en oeuvre pratique des notions vues précédemment.
Les TPs s'appuieront sur la plateforme de simulation et conception conjointe matériel/logiciel Rocket Chip développée à l'université de Berkeley. Cette plateforme est utilisée ici pour simuler l'execution du logiciel (C et assembleur, sans OS, en bare metal) sur l'architecture d'un système articulé autour d'un processeur Rocket (RISCV). Ces TPs permettront entre autres de renforcer les notions et compétences suivantes:
- cross-compilation, édition de liens, utilisation d'outils de debug (gdb)
- gestion d'événements (exceptions, interruptions, appels systèmes) sur un embryon d'OS
- mise en oeuvre des interruptions pour faire de la commutation de taches pour une architecture monoprocesseur
- intégration dans le système matériel d'un nouveau périphérique dédié (décrit en langage verilog) et pilotage logiciel de ce périphérique (notion de HAL)
- Impact des choix d'architecture des mémoires caches sur les performances d'un programme, mesure des taux de succès et d'échecs
Dans le cadre d'un miniprojet, une application de classification d'images, basée sur l'exécution d'un CNN (Convolutional Neural Network), sera déployée sur carte FPGA. Ce démonstrateur permettra de mettre en oeuvre et visualiser concrètement sur un dispositif physique certaines notions vues en cours et en TPs
Prérequis
- Programmation C (basique)
- Cours de 1A Ordinateur et microprocesseurs
Contrôle des connaissances
Session 1 :
Types d'évaluations: Examen écrit surveillé (DS) + CC (CRs TPs + CR BE )
*Évaluation rattrapable :
Type d'évaluation : DS
Durée : 2h00
Documents autorisés : Feuille A4 Recto-Verso manuscrite autorisée
Calculatrice : Réglementaire Phelma
Possible en distanciel : Non
*Évaluation non rattrapable :
Type d'évaluation : CC
SESSION 2 :
Types d'évaluation : DS écrit
Durée : 2h00
Documents autorisés : Feuille A4 Recto-Verso manuscrite autorisée
Calculatrice : Règlementaire Phelma
Possible en distanciel : Non
Bibliographie
Book: Computer Architecture, Edition 7, A Quantitative Approach, By John L. Hennessy, David A. Patterson and Christos Kozyrakis