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