Changes between Version 67 and Version 68 of SoclibCourseTp5
- Timestamp:
- Dec 19, 2013, 1:38:53 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoclibCourseTp5
v67 v68 178 178 vous devez localiser puis corriger. 179 179 180 Outre les fichiers permettant de regénérer l'architecture monoprocesseur du TP4, l'archive [attachment:soclib_tp5.tgz soclib_tp5.tgz] contient deux répertoires '''soft_gcd''' et '''soft_prime'''.180 L'archive qui vous est fournie contient donc uniquement deux répertoires '''soft_gcd''' et '''soft_prime'''. 181 181 * Le répertoire '''soft_gcd''' contient tous les fichiers nécessaires à la génération du code binaire de l'application de calcul du PGCD que vous connaissez déjà. 182 182 * Le répertoire '''soft_prime''' contient tous les fichiers nécessaires à la génération du code binaire d'une autre application logicielle réalisant le calcul des nombres premiers. … … 184 184 Les deux bugs (différents) qui ont été introduits dans chacune de ces deux applications ne sont pas visibles à la compilation, et n'apparaissent qu'à l'exécution. 185 185 186 Créez un répertoire de travail TP5, puis téléchargez et décompressez l'archivedans ce tépertoire.186 Créez un répertoire de travail TP5, dans lequel vous recopierez les fichiers permettant de générer l'architecture monoprocesseur du TP4. Téléchargez et décompressez l'archive [attachment:soclib_tp5.tgz soclib_tp5.tgz] dans ce tépertoire. 187 187 {{{ 188 188 $ tar xzvf soclib_tp5.tgz … … 190 190 191 191 '''Question''' : Placez-vous dans le répertoire '''soft_gcd''', compilez l'application logicielle en utilisant le Makefile 192 qui vous est fourni. Retourne Zdans le répertoire '''TP5''' pour générer le simulateur '''simulator.x'''.193 Lancez l'exécution du simulateur en redéfinissant le chemind'accès au code binaire:194 {{{ 195 $ ./simulator.x -S OFT soft_gcd/bin.soft192 qui vous est fourni. Retournez dans le répertoire '''TP5''' pour générer le simulateur '''simulator.x'''. 193 Lancez l'exécution du simulateur en redéfinissant les chemins d'accès au code binaire: 194 {{{ 195 $ ./simulator.x -SYS soft_gcd/sys.bin -APP soft_gcd/app.bin 196 196 }}} 197 197 … … 202 202 Lancez l'exécution du simulateur dans une première fenêtre de travail, après avoir redéfini la variable d'environnement SOCLIB_GDB comme indiqué ci-dessus. 203 203 204 Ouvrez dans une seconde fenêtre le fichier ''' bin.soft.txt''', de façon à pouvoir suivre - instruction par instruction -205 le programme en cours d'exécution, depuis la première instruction du code de boot (adresse Oxbfc00000).204 Ouvrez dans une seconde fenêtre le fichier '''sys.bin.txt''', de façon à pouvoir suivre - instruction par instruction - 205 le programme en cours d'exécution, depuis la première instruction du code de boot (adresse 0xbfc00000). 206 206 207 207 Lancez le client GDB dans une troisième fenêtre, connectez-le au simulateur. Commencez à exécuter le programme instruction par instruction avec la commande (''stepi''). Après chaque commande (''stepi''), il faut lancer une commande (''info r'') pour afficher le contenu des registres internes du processeur, et vérifier que le comportement de la machine est conforme à ce qu'on attend. Le premier dysfonctionnement apparaît assez rapidement... … … 220 220 Chaque composant est donc repèré par un couple (cluster_index, local_index). 221 221 222 Les architectures clusterisées sont généralement des architectures NUMA (Non Uniform Memory Access). On trouve en effet un banc mémoire physique par cluster, afin d'éviter de remplacer le goulot d'étranglement du bus partagé par le goulot d'étranglement de l'accès à un unique banc mémoire. La mémoire est donc physiquement distribuée, même si l'espace d'adressage reste partagé par tous les composants du système (quel que soit leur cluster).222 Les architectures clusterisées sont généralement des architectures NUMA (Non Uniform Memory Access). On trouve en effet un banc mémoire physique par cluster, afin d'éviter de remplacer le goulot d'étranglement du bus partagé par un autre goulot d'étranglement qui serait l'accès à un unique banc mémoire. La mémoire est donc physiquement distribuée, même si l'espace d'adressage reste partagé. 223 223 224 224 NUMA signifie donc deux chose : … … 226 226 * la latence et la consommation énérgétique seront beaucoup plus faible lorsque qu'un processeur accède à la mémoire locale (dans le même cluster) que lorsqu'il accède à une mémoire distante (dans un autre cluster). 227 227 228 On a généralement un mécanisme d'interconnexion local dans chaque cluster (bus , anneauou crossbar) pour les communications locales, et un interconnect global (généralement un micro-réseau intégré sur puce) pour les communications inter-clusters.228 On a généralement un mécanisme d'interconnexion local dans chaque cluster (bus ou crossbar) pour les communications locales, et un interconnect global (généralement un micro-réseau intégré sur puce) pour les communications inter-clusters. 229 229 230 230 Les architectures NUMA clusterisées visent donc deux objectifs: … … 232 232 * D'un point de vue électrique, le découpage en clusters permet de résoudre en partie les problèmes d'horlogerie, puisque chaque cluster peut être implanté dans un domaine d'horloge séparé (approche GALS : Globally Asynchronous / Locally Synchronous). Le franchissement des frontières d'horlogre est alors la responsabilité du micro-réseau assurant les communications inter-clusters. 233 233 234 Remarquez cependant que la capacité de stockage de la mémoire embarquée n'est jamais suffisante, et que l'accès à la mémoire externe reste un goulot d'étranglement.234 Remarquez cependant que la capacité de stockage de la mémoire embarquée dans les clusters n'est jamais suffisante, et que l'accès à la mémoire externe à la puce reste un goulot d'étranglement. 235 235 236 236 == 3.1 structuration des adresses et des identifiants == … … 285 285 * 1 segment '''seg_ioc''' associé au contrôleur de disque 286 286 * 1 segment '''seg_dma''' associé au contrôleur DMA 287 287 288 '''Question''' : Pourquoi faut-il des segments distincts pour les 4 piles d'exécution ? 288 289