Aller au contenu

EX02 - Architecture générale des ordinateurs

Exercice 1 : Composants d’un CPU

Dessinez l’architecture générale de l’unité centrale de traitement avec accès au code et aux données. Quelle est la fonction de chacun de ses composants ?

Exercice 2 : Traitement de l’information

Citez les 3 cycles principaux du traitement de l’information.
Quelles opérations sont effectuées dans chacun de ces cycles ?

Exercice 3 : Classification de Flynn

Quelles sont les caractéristiques principales des quatre architectures selon la classification de Flynn ?

Exercice 4 : Performances d’un µP

Quels facteurs influencent les performances d’un processeur (Iron Law) ?
Comment peut-on les influencer ?

Exercice 5 : Représentation de l’information

Comment se représentent des données en mémoire ?
Quelle influence a l’alignement des données en mémoire ?
Que signifie boutisme ?

Exercice 6 : Placement des données en mémoire

Pour la structure C ci-dessous, sur un système 32 bits, donnez la représentation en hexadécimale de son instanciation pour une mémoire organisée en octet.

Faites deux version, une en petit boutisme (little-endian) et une en grand boutisme (big-endian).

struct S { 
   int32_t  a; 
   int8_t   b; 
   uint64_t c; 
   uint16_t d; 
   char*    e; 
} s = { .a=1, .b=-2, .c=0xabcdef12345678, .d=0777, .e=0x20004000, };

Exercice 7 : Caractéristiques des mémoires

Quels types de mémoire centrale existe-t-il et quelles sont leurs principales caractéristiques ?
Quelles différences existe-t-il entre une SRAM et une DRAM et où sont-elles utilisées ?
Quelles différences existe-t-il entre une mémoire Flash NOR et une NAND et où sont-elles utilisées ?

Exercice 8 : Architecture d’un périphérique d’entrées/sorties

Dessinez l’architecture d’un périphérique d’entrées/sorties.
Quels sont les registres principaux d’un contrôleur ?
Quels types d’interfaces existe-t-il avec le CPU ?

Exercice 9 : Pilote de périphérique

Pour s’assurer qu’une application ne reste pas dans une boucle de traitement particulier bloquant le reste du système, les µP modernes disposent de chiens de garde (WDOG - Watchdog Timer). Ces chiens de garde sont des minuteries (timer) qui généralement redémarrent le système s’ils ne sont pas réarmés après un certain laps de temps.

i.MX7ULP WDOG

Les processeurs d’applications i.MX7ULP fabriqués par NXP sont équipés de trois de ces chiens de garde. La figure ci-dessus présente sommairement les registres de ces contrôleurs et donne leur emplacement en mémoire.

Questions

  1. Définissez l’interface C/C++ (structure, constantes, etc.) pour un WDOG
  2. Déclarez le tableau permettant d’accéder aux registres des 3 WDOG et initialisez-le
  3. Ecrivez un code pour mettre à 0 le bit EN (bit 7) du 2e WDOG, ceci sans modifier les autres bits du registre
  4. Ecrivez un test permettant d’attendre jusqu’à ce que le bit ULK (bit 11) du 2e WDOG soit mis à 1
  5. Ecrivez un code pour effacer (clear) le bit FLG (bit 14) du 2e WDOG sans modifier les autres bits du registre

Remarques

  • Les registres de ces contrôleurs ne peut être accédés qu’avec des mots de 32 bits
  • W1C indique qu’il faut écrire un 1 pour effacer (clear) le bit
  • Seuls les bits utilisés pour solutionner les questions doivent être déclarés (soit les bits FLG, ULK et EN)

Exercice 10 : Layout d’un programme

  • Quelles sont les sections principales d’une application ?
  • Quelle est son organisation pour un système embarqué ?
  • Quelle est son organisation pour un système sur puce (SoC) ?