Changes between Version 3 and Version 4 of TP2_2012_MappingInfo


Ignore:
Timestamp:
Oct 15, 2012, 6:05:23 PM (12 years ago)
Author:
meunier
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TP2_2012_MappingInfo

    v3 v4  
    6060 * Déplacer les sections pour obtenir un binaire avec les adresses de chargement. On peut ensuite utiliser le `loader` de soclib traditionnel.
    6161
    62 C'est cette dernière solution qui est retenue. Pour cela l'utilisation de DSX est couplée à un outil dont le nom est Memo² (MEMOry MErger and MOver). En plus d'effectuer le déplacement des sections à l'aide de la structure d'information de mapping, Memo² effectue aussi la fusion des différents binaires en un seul.
     62C'est cette dernière solution qui est retenue. Pour cela l'utilisation de DSX est couplée à un outil dont le nom est Memo (MErger and MOver). En plus d'effectuer le déplacement des sections à l'aide de la structure d'information de mapping, Memo effectue aussi la fusion des différents binaires en un seul.
    6363
    6464Le schéma suivant montre une représentation simplifiée du fonctionnement de DSX :
     
    6969= 3. Spécification des informations de mapping dans DSX =
    7070
    71 Nous allons pour commencer nous intéresser à l'application !SplitMsg vu au premier TP. Nous nous plaçons dans le cadre d'une plateforme contenant 1 seul cluster de 1 processeur.
     71Nous allons pour commencer nous intéresser à l'application !SplitMsg vu au premier TP. Nous nous plaçons dans le cadre d'une plateforme contenant 1 seul cluster de 1 processeur, dans une architecture sans cohérence mémoire.
    7272
    7373Commencez par récupérer l'archive suivante : [[lien]] et décompressez-là dans un répertoire `tp2` :
     
    8080Pour ce TP, on ne s'intéresse pas au contenu du fichier décrivant la topcell de l'architecture (`top.cpp`).
    8181
    82 À la place, on considère la description simplifiée de l'architecture suivante :
     82À la place, on considère la description simplifiée suivante de l'architecture :
    8383
    8484
     85Note : les questions suivantes contiennent plusieurs sous-questions chacune. Faites bien attention à répondre à la totalité de ces sous-questions.
    8586
     87Ouvrez le fichier `map.xml` contenant les informations nécessaires de l'architecture ainsi que les informations de mapping
    8688
    87 Pour les questions suivantes, n'oubliez pas de vous référer à la page de
     89   '''''Question 1.1 : Sachant que notre architecture contient un seul cluster, quelles doivent être les valeurs de `cluster_x` et `cluster_y` ?'''''
     90
     91Complétez le fichier en y ajoutant ces valeurs, ainsi que les bases, tailles et types des segments, en n'oubliez pas de vous référer à la page de documentation de ce format présente [[dsx:wiki:DsxvmMappingInfoStructure | ici]].
     92
     93   '''''Question 1.2 : Quel doit être le nom de l'attribut `psegname` pour le périphérique de type ICU ?'''''
     94
     95Complétez le fichier en y ajoutant les valeurs de `psegname` pour les 3 périphériques.
     96
     97   '''''Question 1.3 : Quelle doit être la valeur de `vbase` dans le `vseg seg_boot_code` contenant le code de boot ? Pourquoi doit-elle être égale à l'adresse physique à laquelle elle est mappée ? Quelle doit être la valeur de l'attribut `mode` de ce `vseg` ? Enfin, quel est le type du `vobj` contenu dans ce `vseg` ?'''''
     98
     99Complétez le fichier avec ces trois valeurs, ainsi qu'avec la valeur de l'attribut `psegname`.
     100
     101''Note : les segments `seg_boot_mapping` et `seg_boot_stack` sont un peu particuliers, on ne s'y intéresse pas ici (éventuellement à modifier selon les évolutions).
     102
     103   '''''Question 1.4 : Sachant que les périphériques sont en mapping identité, quelle doit être la `vbase` du `vseg seg_icu_icu0` ? Quel est son mode ?'''''
     104
     105Complétez dans le fichier les informations manquantes pour les segments `seg_icu_icu0`, `seg_timer_timer0` et `seg_tty_tty`.
     106
     107''Note : le segment `seg_dma_dma0` est inutilisé mais nécessaire pour la description''.
     108
     109   '''''Question 1.5 : Quelles doivent être les valeurs respectives des attributs `mode` et `type` des segments `seg_kernel_code`, `seg_kernel_data`, `seg_kernel_init` et `seg_kernel_uncdata` ? Même question pour les valeurs des attributs `type` des `vobj` qui leur sont associés.
     110
     111Complétez le fichier avec ces nouvelles informations.
     112
     113   '''''Question 1.6 : Qu'est-ce que l'attribut `strat_name` de l'élément `vspace` ? Pourquoi est-il égal à `data_split_msg` ?'''''
     114
     115   '''''Question 1.7 : Quel doit être le mode du `vseg seg_code_split_msg` ? Même question pour le `vseg seg_cons_stack`.'''''
     116
     117Complétez dans le fichier les informations manquantes pour les segments `seg_code_split_msg`, `seg_cons_stack` et `seg_data_split_msg` et les vobjs qu'ils contiennent.
     118
     119   '''''Question 1.8 : Que contient le `vseg seg_fifo0` ? Pourquoi son attribut `mode` est-il `"__WU"` (en particulier non caché) ?'''''
     120
     121   '''''Question 1.9 : Que contient le `vseg seg_ptab_split_msg` ? Pourquoi son attribut `mode` est-il `"C___"` ?'''''
    88122
    89123