Changes between Version 10 and Version 11 of SoclibCourseTp2


Ignore:
Timestamp:
Sep 6, 2009, 10:26:57 PM (16 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp2

    v10 v11  
    9797
    9898Dans une architecture à mémoire partagée, on assigne à tout composant ''cible'' un (ou plusieurs) segment(s) dans l'espace adressable.
    99 Un segment est une ''tranche" de l'espace adressable, cractérisé par une adresse de base, et une taille (en nombre d'octets). La taille d'un
     99Un segment est une ''tranche" de l'espace adressable. Il possède donc une adresse de base, et une taille (en nombre d'octets). La taille d'un
    100100segment peut être très variable : de quelques d'octets pour un périphériques adressable, à quelques Moctets pour un contrôleur mémoire.
    101101C'est en analysant les bits de poids fort de l'adresse que le sous-système d'interconnexion détermine à quel segment appartient l'adresse,
     
    109109Pour plus de détails, vous pouvez consulter le site WEB du projet SoCLib :  [https://www.soclib.fr/trac/dev/wiki/Component/MappingTable].
    110110
     111Dans une architecture à mémoire partagée, l'adresse contenue dans la commande VCI est donc décodée à différents endroits :
     112les bits de poids faibles sont décodés par les périphériques adressables pour déterminer l'action à réaliser, et les bits de poids fort sont décodés par le sous-système d'interconnexion pour déterminer l'index de la cible concernée. Pour faciliter ce décodage, la plate-forme de prototypage SoCLib définit la classe C++ ''!AddressDecodingTable'' (fichier ''address_decoding_table.h'').
     113 
    111114= 5. Travail à réaliser =
    112115 
     
    127130 * ''mapping_table.h'' : définition de la mapping table
    128131 * ''mapping_table.cpp'' : implémentation des méthodes de la mapping table
    129  * ''address_decoding_table.h''
    130  * ''address_decoding_table.cpp''
     132 * ''address_decoding_table.h'' : Table indexée par une partie de l'adresse
     133 * ''address_decoding_table.cpp'' : implémentation des méthodes de la table indexée
     134 L'archive contient également les fichiers suivants :
     135 * ''vci_lcd_master.h'' : définition du composant ''!VciLcdMaster''.
     136 * ''vci_lcd_master.cpp'' : méthodes associées (fichier incomplet).
     137 * ''vci_lcd_coprocessor.h'' : définition du composant ''!VciLcdCoprocessor''.
     138 * ''vci_lcd_coprocessor.cpp'' : méthodes associées (fichier incomplet).
     139 * ''vci_gsb.h'' : définition du composant ''!VciGsb''.
     140 * ''vci_gsb.cpp'' : méthodes associées (fichier complet).
     141 * ''tp2_simple_top.cpp'' : top-cell d'une architecture ne contenant que deux composants.
    131142
    132143== 5.1 Composant ''!VciLcdCoprocessor ==
     
    182193segment de l'espace adressable aui a été assigné au coprocesseur LCD.
    183194Le composant ''!VciLcdMaster étant un automate cablé (non programmable), on considère
    184 que cette adresse est également "cablée", et elle est donc définie comme un paramètre du constructeur.
     195que cette adresse est également "cablée". Elle est donc définie comme un paramètre du constructeur.
    185196 
    186197La figure ci-dessous décrit la structure de l'automate de contrôle du composant ''!VciLcdMaster''.
     
    200211
    201212Pour valider les modèles de simulation des composants ''!VciLcdMaster'' et ''!VciLcdCoprocessor'',
    202 il faut décrire une architecture minimale ne contenant que deux composants matériels, conformément au schéma
    203 ci-dessous :
     213on construit une architecture minimale ne contenant que deux composants matériels, conformément au schéma ci-dessous :
    204214
    205215[[Image(soclib_tp2_simple_archi.png)]]
     
    213223== 5.4 Compilation et génération du simulateur ==
    214224
    215 Il faut ensuite compiler pour générer les fichiers
     225Il faut ensuite compiler les différents fichiers pour générer le simulateur.
    216226
    217227== 5.5 Architecture multi-maitres ==
    218228
     229En vous inspirant du fichier ''tp2_simple_top.cpp'' de la question précédente, écrivez le fichier ""tp2_multi_top.cpp'',
     230qui décrit l'architecture à 7 composants décrite au début de ce TP. Vous ferez en sorte que le maitre (i) communique
     231avec le coprocesseur (i). N'oubliez pas de définir 3 segments différents pour les trois coprocesseurs.
     232
    219233= 6. Compte-rendu =
    220234