Aller au contenu

Objectifs du deuxième travail écrit

Les objectifs qui seront examinés par le deuxième travail écrit sont les suivants:

Chapitres du script :

  • Chapitre 4 : Flags des systèmes de nombres et nombres en virgule flottante
  • Chapitre 5 : Assembleur des processeurs ARM
  • Chapitre 7 : Mémoire cache

Travaux pratiques :

  • TP03 : 7-Segments et PWM
  • TP05 : La tour de Hanoï en assembleur

Chapitre 4 : Systèmes de nombres

  • Comprendre le rôle des fanions (C, Z, N, V), savoir comment ils sont calculés es comment les utiliser.

  • Comprendre les opérations de comparaison.

  • Comprendre la relation entre les fanions et les opérations de comparaison.
  • Savoir coder et interpréter les nombres en virgules flottantes (IEEE 754).
  • Comprendre et savoir résoudre tous les exercices.

Chapiter 5 : Assembleur des processeurs ARM

  • Savoir décrire la structure d’un module d’assemblage.
  • Comprendre le rôle et l’utilisation des symboles et des “labels”.
  • Comprendre comment gérer les données (variables globales et constantes) dans un module d’assemblage.
  • Comprendre le rôle des “macros” en assembleur.
  • Comprendre l’assemblage conditionnel.
  • Comprendre le rôle de la “stack” et son utilisation en assembleur.
  • Savoir écrire du code en assembleur pour des fonctions simples.
  • Comprendre l’utilisation et les rôles des registres.
  • Etre capable d’implémenter un appel de fonction en assembleur (avec passage de paramètres).
  • Savoir expliquer les différentes techniques (par valeur ou par référence) et les différents mécanismes (par registre ou avec la stack) pour passer des paramètres à une fonction.
  • Comprendre comment une fonction peut retourner une valeur.
  • Savoir expliquer les instructions conditionnelles et comprendre leur rôle.
  • Etre capable d’utiliser l’opérande de décalage.
  • Comprendre les opérations d’échange de données avec les registres (MOV)
  • Etre capable de comprendre et d’écrire du code pour lire et écrire la mémoire (LDR, STR, LDM, STM).
  • Etre capable d’utiliser les instructions arithmétiques et logiques.
  • Etre capable d’implémenter les instructions de contrôle de flux ( if ... else if ... else, switch / case, while ... do. do ... while. for) en assembleur.
  • Comprendre et savoir résoudre tous les exercices.

Chapitre 7 : Mémoire cache

  • Comprendre les principes à la base de la mémoire cache.
  • Savoir expliquer la hiérarchie de la mémoire ainsi que les liens entre capacité, vitesse et prix de la mémoire.
  • Comprendre les différents étages (layers) de la mémoire cache.
  • Savoir comment identifier une ligne de la mémoire principale dans la mémoire cache.
  • Savoir où placer une ligne de la mémoire principale dans la mémoire cache (direct map etc.).
  • Savoir comment retrouver une ligne dans la mémoire cache.
  • Savoir quelle ligne doit être remplacée dans la mémoire cache.
  • Savoir ce qu’il se passe lors d’une écriture.
  • Comprendre la structure d’une ligne de cache.
  • Savoir optimiser du code pour une bonne utilisation de la mémoire cache.
  • Comprendre la relation entre taille de la mémoire cache et ces caractéristiques (nombre de sets, mots par ligne, nombre de voies).

Travaux pratiques :

  • Comprendre le fonctionnement des registres à décalage.
  • Comprendre le fonctionnement des afficheurs 7-segments.
  • Comprendre le rôle et le fonctionnement du PWM et son lien avec les timers.

  • Comprendre le rôle et l’utilisé des timers.

  • Savoir comprendre et expliquer du code asm.
  • Savoir traduire du code C/C++ en code asm et inversément.
  • Savoir programmer en “orienté objet” en C++.
  • Comprendre l’utilisation du CI/CD.
  • Savoir écrire des tests unitaires et comprendre les bienfaits des tests.