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.