19 | | L'objectif général d'Archi-2 est d |
| 19 | L'objectif général d'Archi-2 est d'aller plus loin sur 3 axes : la micro-architecture du processeur, l'architecture du SoC et le système d'exploitation. |
| 20 | 1. Pour la micro-architecture, il s'agit de comprendre comment sont exécutées les instructions du MIPS. Vous verrez l'une des techniques consistant à décomposer les instructions en micro-instructions élémentaires gérées par un micro-séquenceur. |
| 21 | 2. Pour l'architecture, il y a trois parties : (1) la première consiste à comprendre comment accélérer les accès à la mémoire externe en utilisant une petite mémoire placée à l'interface du processeur destinée à stocker les dernières instructions et les dernières données lues ; (2) la seconde consiste à comprendre comment les contrôleurs de périphérique peuvent voler du temps au programme en cours d'exécution pour que le noyau intervienne pour réaliser des opérations urgentes ; (3) La troisième consiste à comprendre les conséquences de l'ajout de composants ayant le droit de faire des lectures et des écritures dans l'espace d'adressage. |
| 22 | 3. Pour le système d'exploitation, il s'agit de comprendre comment une application peut utiliser les ressources matérielles (processeur, périphériques et mémoire) de manière sûre. Il n'y aura qu'une seule application mais elle pourra avoir plusieurs fils d'exécution exécutés en parallèle sur un ou plusieurs processeurs. Il s'agit aussi de comprendre comment la mémoire est allouée au noyau du système d'exploitation et à l'application et comment sont gérer les fichiers sur le disques et dans la mémoire. |
21 | | |
22 | | |
23 | | Il s'avère que ce que fait l'instruction `syscall` n'est pas détaillé et l'architecture de l'ordinateur, au centre duquel se trouve le processeur MIPS, est juste présentée. C'est pourquoi le but des trois dernières séances est d'étudier plus en détail l'architecture d'un ordinateur simple, de type [https://www.wikiwand.com/fr/Microcontr%C3%B4leur microcontrôleur] à base de MIPS, et d'y exécuter une application au-dessus d'un embryon de système d'exploitation qui exécute les appels système, c'est-à-dire les services accessibles par l'instruction `syscall`. |
24 | | |
25 | | Concernant le matériel, il est donc composé d'un processeur MIPS connecté à une mémoire et quelques périphériques. La mémoire contient le code et les données. Les périphériques sont les composants permettant les entrées-sorties (p. ex. le terminal écran-clavier) ou alors les composants offrant un service spécifique (p. ex. le ''timer'' qui compte le temps). Il s'agit d'apprendre à : |
26 | | |
27 | | 1. manipuler les deux modes d'exécution du processeur (mode ''kernel'' et mode ''user'') ; |
28 | | 2. communiquer avec les contrôleurs de périphériques grâce à des registres de commandes accessibles dans l'espace d'adressage du processeur en utilisant les instructions ''load''/''store'' (`lw`/`sw`); |
29 | | 3. utiliser les lignes d'interruption des contrôleurs de périphériques (signal électrique à deux états : ''ON'' et ''OFF'') pour prévenir le processeur d'un événement. |
30 | | |
31 | | Concernant le logiciel, il est écrit en langage C et en assembleur. Il est composé d'un empilement de couches logicielles. Il y a tout d'abord le code de démarrage du processeur (le ''boot''), puis le noyau du système d'exploitation, puis la bibliothèque système (la ''libc''), et enfin l'application de l'utilisateur. Le code de ''boot'' initialise l'ordinateur. Le noyau gère les ressources matérielles et exécute les appels système (`syscall`). La bibliothèque système (la ''libc'') est un ensemble de fonctions standards tel que `fprintf()` invoquant l'instruction `syscall`. Et enfin, l'application de l'utilisateur est un algorithme utilisant les fonctions de la ''libc''. Il s'agit d'apprendre à : |
32 | | |
33 | | 1. programmer en langage C et utiliser une chaîne de compilation standard (compilateur + éditeur de liens) via un `Makefile` ; |
34 | | 2. exécuter les programmes sur un simulateur d'ordinateur complet avec processeur, mémoire et contrôleurs de périphériques ; |
35 | | 3. comprendre quelques services proposés par un système d'exploitation simple tels que les pilotes de périphériques, le gestionnaire de syscall, l'exécution de plusieurs fonctions en temps partagé (en les exécutant à tour de rôle très rapidement). |
| 24 | |