27 | | * Par ailleurs, la plupart des modèles ont des paramètres templates (puisque la plupart des composants ont des interfaces VCI, et que les largeurs des champs VCI sont paramètrables). Pour chaque composant possédant un (ou plusieurs) paramètre(s) template, il faut donc modifier le fichier ''.cpp'' pour préciser la valeur des paramètres template avant de lancer la compilation de ce composant (on dit qu'on instancie les paramètres template). |
28 | | Vous avez fait ce travail dans le TP2, et c'est un travail très fastidieux dès que les architectures modélisées deviennent complexes. |
| 27 | * Par ailleurs, la plupart des modèles ont des paramètres templates (puisque la plupart des composants ont des interfaces VCI, et que les largeurs des champs VCI sont paramètrables). Pour chaque composant possédant un (ou plusieurs) paramètre(s) template, il faut donc modifier le fichier ''.cpp'' pour préciser la valeur des paramètres template avant de lancer la compilation de ce composant (on dit qu'on instancie les paramètres template). Vous avez fait ce travail dans le TP2, et c'est un travail très fastidieux dès que les architectures modélisées deviennent complexes. |
| 76 | |
| 77 | = 3 Architectures Clusterisées = |
| 78 | |
| 79 | Nous appellerons ''architecture clusterisée'' une architecture dans laquelle on utilise un double système d'index |
| 80 | pour repérer les initiateurs et les cibles VCI. Un cluster est un sous-système regroupant généralement plusieurs |
| 81 | initiateurs et plusieurs cibles VCI, communiquant entre eux par un interconnect local (bus ou crossbar). |
| 82 | Chaque composant est donc repèré par un couple ''(cluster_index, local_index)''. |
| 83 | |
| 84 | L'espace d'adressage reste partatgé par tous les composants du système (quel que soit leur cluster), et n'importe |
| 85 | quel initiateur peut directement adresser n'importe quelle cible. Si l'initiateur et la cible n'appartiennent pas au même |
| 86 | cluster, les paquets VCI (commande et réponse) sont acheminés grace à un interconnect global (généralement un |
| 87 | micro-réseau intégré ou NoC). |
| 88 | |
| 89 | Pour faciliter le décodage des adresses, on décompose les bits de poids fort de l'adresse VCI en deux champs GADR et LADR, de telle sorte que le décodage du champs GADR définisse complêtement le numéro du cluster cible. |
| 90 | Le décodage du champs LADR permet lui de déterminer l'index local de la cible dans un cluster: |
| 91 | || GADR || LADR || OFFSET || |
| 92 | Cette organisation hiérarchique à deux niveaux impose évidemment que les valeurs des champs GADR des segments associés aux cibles d'un même cluster soient égales entre elles (ou appartiennent à un même ensemble de valeurs caractéristiques de ce cluster) |
| 93 | |
| 94 | = 4 Travail à réaliser = |
| 95 | |
| 96 | |