Changes between Version 46 and Version 47 of SoclibCourseTp5


Ignore:
Timestamp:
Dec 26, 2010, 2:19:00 PM (14 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp5

    v46 v47  
    88
    99Ce cinquième TP a un double objectif : D'une part, on présente l'outil '''GDB Server''' qui est le principal outil permettant de déverminer une application logicielle s'exécutant sur une architecture matérielle prototypée avec SoCLib.
    10 D'autre part, on présente les outils permettant de décrire des architectures clusterisées utilisant deux niveaux d'interconnexion et donc deux niveaux d'indexation.   
     10D'autre part, on introduit les architectures clusterisées utilisant deux niveaux d'interconnexion et donc deux niveaux d'indexation pour les composants matériels.   
    1111
    1212= 2 Outil GDB Server =
    1313
    14 L'outil GDB est un outil de debug très utilisé, qui fait partie de la même famille d'outils logiciels libres que le
     14L'outil GDB est un outil debug très utilisé, qui fait partie de la même famille d'outils logiciels libres que le
    1515compilateur GCC que vous connaissez déjà (voir [http://www.gnu.org/software/gdb/ Gnu GDB]).
    1616
    17 Le '''GDB Server''' est un composant matériel qui vient s'interfacer entre le processeur et le contrôleur de cache. Dans cette position stratégique, il peut surveiller et contrôler toutes les communications entre le
    18 processeur et le reste de la plate-forme matérielle (principalement la mémoire).
     17Le '''GDB Server''' est un composant matériel qui s'interface entre le processeur et le contrôleur de cache. Dans cette position stratégique, il peut surveiller et contrôler toutes les communications entre le processeur et le reste de la plate-forme matérielle (principalement la mémoire).
    1918
    2019[[Image(soclib_tp5_gdb_server.png)]]
     
    2221Le comportement du composant matériel '''GDB server''' est lui-même contrôlé par une application logicielle interactive, appelée '''GDB client''', qui peut s'exécuter sur  une autre station de travail que celle qui simule l'exécution de la plate-forme  modélisée avec SoCLib.
    2322
    24 En prenant le contrôle du GDB Server (par l'intermédiaire du client GDB), on peut donc faire deux choses :
     23En agissant sur le GDB Server (par l'intermédiaire du client GDB), on peut donc faire deux choses :
    2524 * contrôler le processeur (pour le faire fonctionnner en pas à pas par exemple),
    2625 * contrôler le reste du système (en effectuant directement des commandes de lecture ou d'écriture vers la mémoire).
     
    294293Recommandation : 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.
    295294
    296 '''Question''' : Modifiez le fichier '''ldscript''' pour définir ces adresses de bases, ainsi que le nombre de processeurs.
    297295
    298296'''Question''' : Complétez les deux fichiers '''tp5_top_cluster.cpp''' et '''tp5_top_cluster.desc''' correspondant à cette architecture.
    299297n'oubliez pas de donner des valeurs croissantes (de 0 à 3) à l'argument ''processor-id'' des 4 processeurs.
    300298
    301 == 3.3 Logiciel embarqué ==
     299== 3.3 application '"hello world" ==
    302300
    303301On va commencer par exécuter le même programme d'affichage du messge ''hello world'' sur chacun des 4 processeurs.
    304302 
    305 Comme dans le cas de l'architecture multi-processeur du TP4, les 4 processeurs exécutent le même code de boot (puisqu'ils se branchent à la même adresse 0xBFC00000), mais les actions réalisées peuvent dépendre du processor_id. En particulier, les pointeur de pile des quatre processeurs doivent être initialisés à des valeurs différentes puisque chaque processeur travaille dans son propre segment de pile.
    306 
    307 Question''' : lancez la simulation. Les quatre processeurs doivent exécuter le même programme interactif, chacun sur son propre terminal TTY.
     303Comme dans le cas de l'architecture multi-processeur du TP4, les 4 processeurs exécutent le même code de boot (puisqu'ils se branchent à la même adresse 0xBFC00000), mais les actions réalisées peuvent dépendre du processor_id :
     304 * les pointeur de pile des quatre processeurs doivent être initialisés à des valeurs différentes puisque chaque processeur travaille dans son propre segment de pile.
     305 * chaque processeur doit configurere son propre composant concentrateur d'interruption ICU.
     306 * chaque processeur se branche à une adresse de base différente, définie dans le tableau
     307
     308'''Question''': Complétez le code de boot dans le fichier '''reset.s''' du répertoire '''soft_cluster'''.
     309
     310'''Question''' : Modifiez le fichier '''ldscript''' pour définir les adresses de bases des 25 segments, ainsi que le nombre de processeurs.
     311
     312'''Question''' : lancez la simulation. Les quatre processeurs doivent exécuter le même programme interactif, chacun sur son propre terminal TTY.
    308313
    309314Si ce n'est pas le cas, il vous reste le '''GDB Server'''...