171 | | Pour ce qui concerne le matériel, faut commencer par compléter le fichier ''tp3_top.cpp'' qui vous est fourni: |
172 | | |
173 | | * Il faut enregister les 9 segments dans la ''!MappingTable''. Consultez la documentation de la !MappingTable pour bien comprendre la signification des 4 arguments du constructeur de la !MappingTable, ainsi que la signification des 5 arguments du constructeur d'un segment. |
174 | | * Il faut définir les arguments des constructeurs des composants matériels instanciés, ainsi que les valeurs de leurs paramètres template. Vous devez consulter la documentation des composants !VciXcacheWrapper et !VciSimpleRam pour comprendre la signification des arguments. On choisira des caches à correspondance directe (c'est à dire un seul niveau d'associativité), ayant une capacité totale de 4 Koctets et des lignes de caches d'une longueur de 16 octets. |
175 | | * Il faut définir l'argument du composant ''loader'' qui réalise le chargement du code binaire dans les mémoires ROM et RAM. Cet argument est une chaîne de caractères définissant le cheminom d'accès au fichier ''bin.soft''. |
176 | | * Il faut enfin compléter la net-list en connectant les signaux du bus. |
177 | | |
| 171 | Pour ce qui concerne le matériel, il faut compléter le fichier ''tp3_top.cpp'' qui vous est fourni: |
| 172 | |
| 173 | '''Question''' : Définissez les adresses de base et les tailles des 9 segments de l'espace adressable. |
| 174 | |
| 175 | '''Question''' : Complétez le constructeur de la ''!MappingTable''. Consultez la documentation de la !MappingTable [https://www.soclib.fr/trac/dev/wiki/Component/MappingTable ici] pour bien comprendre la signification des 4 arguments du constructeur. Quel est le nombre de bits de poids fort de l'adresse qui doivent être décodés par le contrôleur du bus pour déterminer la cible VCI désignée ? Quels sont les bits d'adresse qui doivent être décodés par le contrôleur du cache, pour déterminer qu'une adresse appartient à un segment non-cachable ? |
| 176 | |
180 | | '''Question''' : Quel est le nombre de bits de poids fort de l'adresse qui doivent être décodés par le contrôleur du bus pour déterminer la cible VCI désignée ? Cette information est un des arguments du constructeur de la !MappingTable. |
181 | | |
182 | | '''Question''' quels sont les bits d'adresse qui doivent être décodés par le contrôleur du cache, pour déterminer |
183 | | qu'une adresse appartient à un segment non-cachable, et doit être directement transmise à la mémoire ? |
184 | | Cette information est un autre argument du constructeur de la ''MappingTable''. |
185 | | |
| 179 | '''Question''' : Définissez l'argument du composant ''loader'' qui réalise le chargement du code binaire dans les mémoires ROM et RAM. Cet argument est une chaîne de caractères définissant le cheminom d'accès au fichier ELF. |
| 180 | Ce cheminom a comme valeur par défaut ''soft/bin.soft'', mais il est possible de le redéfinir au lancement du simulateur gràce à un argument sur la ligne de commande. |
| 181 | |
| 182 | '''Question''' : Définissez les arguments des constructeurs des composants matériels instanciés, ainsi que les valeurs de leurs paramètres template. Vous devez consulter la documentation des composants !VciXcacheWrapper et !VciSimpleRam pour comprendre la signification des arguments. On choisira des caches à correspondance directe (c'est à dire un seul niveau d'associativité), ayant une capacité totale de 4 Koctets et des lignes de caches d'une longueur de 16 octets. |
| 183 | |
| 184 | '''Question''' : Complétez la net-list en connectant les signaux du bus. |