301 | | '''Question''' : Pourquoi faut-il des segments distincts pour les 4 piles d'exécution ? |
302 | | |
303 | | '''Question''' : Pourquoi ne peut-on pas utiliser directement (c'est à dire sans décodage) les 2 bits de poids fort de l'adresse pour désigner le cluster? Indication : dans chaque cluster, il existe au moins un segment appartenant à l'espace utilisteur (le segment de pile), et un ou deux segments appartenant à l' espace superviseur (les segments associés aux périphériques). |
304 | | |
305 | | '''Question''' : Proposez des adresses de base pour ces 25 segments, en tenant compte du fait que le crossbar local ne doit décoder que les bits (LADR) de l'adresse, et que le réseau global ne doit décoder que les bits (GADR) de l'adresse. Recommandation : on utilisera les 4 bits A[31:28] pour le champs GADR, en considérant que seuls les 2 bits A[29:28] sont réellement discriminants pour désigner le cluster visé. On utilisera les 4 bits A[27:24] pour le champs LADR. |
| 300 | '''Question''' : Pourquoi a-t-on choisi de placer les 4 piles d'exécution dans 4 clusters différents ? |
| 301 | |
| 302 | '''Question''' : Pourquoi ne peut-on pas utiliser directement (c'est à dire sans décodage) les 2 bits de poids fort de l'adresse pour désigner le cluster ? |
| 303 | |
| 304 | '''Question''' : Proposez des adresses de base pour ces 16 segments, en tenant compte du fait que le crossbar local ne doit décoder que les bits (LADR) de l'adresse, et que le réseau global ne doit décoder que les bits (GADR) de l'adresse. Recommandation : on utilisera les 4 bits A[31:28] pour le champs GADR, en considérant que seuls les 2 bits A[29:28] sont réellement discriminants pour désigner le cluster visé. On utilisera les 4 bits A[27:24] pour le champs LADR. |
316 | | * chaque processeur doit configurere son propre composant concentrateur d'interruption ICU. |
317 | | * En sortie du code de boot, chaque processeur se branche à une adresse de base différente, définie dans la table de sauts ''tab_main''. |
318 | | |
319 | | '''Question''': Complétez le code de boot dans le fichier '''reset.s''' pour initialiser la table de sauts. |
320 | | |
321 | | '''Question''' : Modifiez le fichier '''ldscript''' pour définir les adresses de bases des 25 segments, ainsi que le nombre de processeurs. |
322 | | |
323 | | '''Question''' : lancez la simulation: Les quatre processeurs doivent exécuter le même programme interactif, chacun sur son propre terminal TTY. Si ce n'est pas le cas, vous pouvez utiliser le '''GDB Server'''... |
| 315 | * chaque processeur doit configurere son propre canal du concentrateur d'interruption ICU. |
| 316 | * En sortie du code de boot, chaque processeur se branche à une adresse de base différente, définie dans la table de sauts qui se trouve au début du segment seg_data.. |
| 317 | |
| 318 | '''Question''': Complétez le code de boot dans le fichier '''reset.s''' pour initialiser la table de sauts. Modifiez le fichier '''seg_ld''' pour définir les adresses de bases des 16 segments. Modifiez le fichier '''config.h''' pour définir le nombre de processeurs. |
| 319 | |
| 320 | '''Question''' : lancez la simulation: Les quatre processeurs doivent exécuter le même programme interactif, chacun sur son propre terminal TTY. Si ce n'est pas le cas, vous pouvez soit activer la trace cycle par cycle, soit utiliser le '''GDB Server''', suivant que vous soupçonnez une erreur dans le matériel ou dans le logiciel... |