Ensimag Rubrique Formation 2022

Interface Logiciel Matériel - 3MMILM

  • 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).

Responsable(s)

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)

Prérequis

Langage C, notion de pointeurs

Contrôle des connaissances

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

Calendrier

Le cours est programmé dans ces filières :

cf. l'emploi du temps 2025/2026

Informations complémentaires

Code de l'enseignement : 3MMILM
Langue(s) d'enseignement : FR

Vous pouvez retrouver ce cours dans la liste de tous les cours.

Bibliographie

The RISC-V Instruction Set Manual, Volume I: Unprivileged ISA (https://riscv.org/technical/specifications/)