Volumes horaires
- CM -
- Projet -
- TD -
- Stage -
- TP 48.0
- DS -
Crédits ECTS
Crédits ECTS 4.0
Objectif(s)
L'objectif est de comprendre un processeur d'un point de vue utilisateur, de savoir programmer bas-niveau en langage d'assemblage, y compris les interruptions et un embryon de système d'exploitation (partage de temps).
Lionel RIEG
Contenu(s)
- Éléments d'architecture (mémoire, registre, processeur), interprétation (entiers signés et non signés, instructions), jeu d'instruction RISCV, codage des instructions
- Programmation élémentaire en langage d'assemblage RISCV64 (traduction depuis C, structure de contrôle, accès mémoire, optimisation, utilisation de gdb)
- Compilation de C vers un langage d'assemblage (cycle de compilation, portée de variables, modularité)
- Appels de fonctions : ABI (valeur de retour, paramètres, variable locale, pile d'appels, fonction récursive)
- Représentation mémoire de structures de données (tableau, structure et pointeur, table de hachage)
- Système processeur avec périphériques mappés en mémoire (lien série, console)
- Interruptions (traitant, timer, sources multiples)
- Processus (thread, changement de contexte, ordonnancement coopératif et préemptif)
Langage C, notion de pointeurs
Evaluation : 20% de TP notés et 80% de Examen sur machine (2h)
Rattrapage : 20% de TP notés (note reportée) et 80% de Examen sur machine (2h)
Contrôle continu : évaluation automatique en continu
Documents autorisés pour l'examen terminal : une feuille A4 manuscrite recto-verso
Le cours est programmé dans ces filières :
- Cursus ingénieur - Tronc Commun - Semestre 6
Code de l'enseignement : 3MMILM
Langue(s) d'enseignement :
Vous pouvez retrouver ce cours dans la liste de tous les cours.
The RISC-V Instruction Set Manual, Volume I: Unprivileged ISA (https://riscv.org/technical/specifications/)