46 | | Ce composant utilise deux objets C++ pour représenter le tampon d'écritures postées |
47 | | ([https://www.soclib.fr/trac/dev/browser/trunk/soclib/soclib/lib/write_buffer write_buffer] et les deux caches |
48 | | ([https://www.soclib.fr/trac/dev/browser/trunk/soclib/soclib/lib/generic_cache generic_cache]. |
| 46 | Ce composant utilise deux objets C++ pour représenter d'une part le tampon d'écritures postées |
| 47 | ([https://www.soclib.fr/trac/dev/browser/trunk/soclib/soclib/lib/write_buffer/include write_buffer]), |
| 48 | et d'autre part le cache instruction et le cache de données |
| 49 | ([https://www.soclib.fr/trac/dev/browser/trunk/soclib/soclib/lib/generic_cache/include generic_cache]). |
85 | | L'archive '''soclib_tp6.tgz''' qui vous est fournie comporte |
| 86 | On a vu dans la section précédente que - lorsque la latence des transactions est importante - le processeur est souvent gelé en raison de requêtes d'écriture qui ne peuvent être satisfaites car le tampon d'écritures est plein. |
| 87 | On souhaite donc modifier le contrôleur de cache pour qu'il utilise |
| 88 | un tampon d'écritures plus évolués, permettant de ne pas attendre la réponse à une transaction d'écriture (n) pour envoyer la commande de la transaction (n+1). On souhaite également que les transactions de lecture - qui entraînent un gel du processeur - soient prioritaires par rapport aux transactions d'écriture (si les adresses sont différentes). |
| 89 | |
| 90 | L'objet C++ [https://www.soclib.fr/trac/dev/browser/trunk/soclib/soclib/lib/multi_write_buffer/include multi_write_buffer] modélise un tampon d'écritures postées plus évolué, permettant de construire plusieurs requêtes d'écriture indépendantes, et d'effectuer plusieurs transactions d'écriture VCI en parallèle. Chacune de ces requêtes peut avoir une longueur supérieure à un flit. |
| 91 | |
| 92 | L'archive '''soclib_tp6.tgz''' qui vous est fournie contient un fichier '''!VciXcacheWrapperNew''', qui est une version |
| 93 | modifiée, mais incomplête du contrôleur de cache L1, que vous devrez compléter. |