Multiprocessor systems-on-chips, 2004. ,
URL : https://hal.archives-ouvertes.fr/hal-00012749
The future of multiprocessor systems-on-chips, Proceedings of the 41st annual conference on Design automation , DAC '04, pp.681-685, 2004. ,
DOI : 10.1145/996566.996753
Cache coherence protocols: evaluation using a multiprocessor simulation model, ACM Transactions on Computer Systems, vol.4, issue.4, pp.273-298, 1986. ,
DOI : 10.1145/6513.6514
Computer architecture : a quantitative approach, 2011. ,
Comparison of hardware and software cache coherence schemes, 1991. ,
A primer on memory consistency and cache coherence, Synthesis Lectures on Computer Architecture, vol.6, issue.3, pp.1-212, 2011. ,
Cache write policies and performance, In ACM SIGARCH Computer Architecture News, vol.21, pp.191-201, 1993. ,
Virtual memory mapped network interface for the SHRIMP multicomputer, 1994. ,
Translation-lookaside buffer consistency, Computer, vol.23, issue.6, pp.26-36, 1990. ,
Conception d'un système d'exploitation pour une architecture many-cores à mémoire partagée cohérente de type cc-NUMA, p.2014 ,
Architecture adaptative de mémoire cache exploitant les techniques d'empilement tridimensionnel dans le contexte des multiprocesseurs intégrés sur puce, p.2013 ,
Contrôleur de cache générique pour une architecture manycores massivement parallèle à mémoire partagée cohérente, 2011. ,
Energy estimation of peripheral devices in embedded systems, Proceedins of the 14th ACM Great Lakes symposium on VLSI , GLSVLSI '04, pp.430-435, 2004. ,
DOI : 10.1145/988952.989055
Scorpio : a 36-core research chip demonstrating snoopy coherence on a scalable mesh noc with in-network ordering, Computer Architecture (ISCA) 2014 ACM/IEEE 41st International Symposium on, pp.25-36 ,
A low-overhead coherence solution for multiprocessors with private cache memories, ACM SIGARCH Computer Architecture News, vol.12, issue.3, pp.348-354, 1984. ,
Cache Hierarchy and Memory Subsystem of the AMD Opteron Processor, IEEE Micro, vol.30, issue.2, pp.16-29, 2010. ,
DOI : 10.1109/MM.2010.31
Modelling communications in cache coherent systems, 2013. ,
ATAC, Proceedings of the 19th international conference on Parallel architectures and compilation techniques, PACT '10, pp.477-488, 2010. ,
DOI : 10.1145/1854273.1854332
Evaluating MapReduce for Multi-core and Multiprocessor Systems, 2007 IEEE 13th International Symposium on High Performance Computer Architecture, pp.13-24, 2007. ,
DOI : 10.1109/HPCA.2007.346181
The splash-2 programs : Characterization and methodological considerations, In ACM SIGARCH Computer Architecture News, vol.23, pp.24-36, 1995. ,
Ffts in external of hierarchical memory, Proceedings of the 1989 ACM/IEEE conference on Supercomputing, pp.234-242, 1989. ,
The performance advantages of integrating block data transfer in cache-coherent multiprocessors, 1994. ,
A comparison of sorting algorithms for the connection machine cm-2, Proceedings of the third annual ACM symposium on Parallel algorithms and architectures, pp.3-16, 1991. ,
The performance advantages of integrating message passing in cache-coherent multiprocessors, 1995. ,
Deux composant, le cache L1 et le cache L2 ,
trois automates est modifiée afin d'ajouter un nouvel état de ligne de cache : l'automate READ, l'automate WRITE et l'automate Cleanup ,
SI la ligne de cache est présente dans le cache L2 : SI le compteur de copies de la ligne de cache est nul : Le compteur de copies est incrémenté. La réponse au Read est envoyée en accompagnant l'état de la ligne, SINON : SI la ligne est en état NC : SI la ligne peut être enregistrée dans la table IVT : Cette ligne de cache est enregistrée dans la table IVT afin que le cache L2 envoie une requête Multicast Invalidate au cache L1. L'automate READ traitera la commande suivante. SINON : Le traitement de la requête est retardé ,
SINON : SI la table TRT n'est pas pleine ,
SI la ligne de cache est présente dans le cache L2 : SI le compteur de copies est non nul : SI la ligne de cache est en état NC : SI la ligne peut être enregistrée dans la table IVT : Cette ligne de cache et enregistrée ,
SI la ligne de cache est présente dans le cache L2 : SI la ligne est en état NC : SI la requête est Cleanup-data : La ,
L'enregistrement de l'invalidation est effacé. La réponse à cette lecture est envoyée avec l'état C ,
état fait suite à une requête d'écriture : Le compteur de copies est mis à 0. Le changement d'état est terminé. L'enregistrement de l'invalidation est effacé ,
L'entrée dans la liste chaînée correspondant au SRCID pour le même type de ligne (instruction ou donnée) est remise dans la liste des éléments libres ,
Deux composants , le cache L1 et le cache L2, sont modifiés. Un état supplémentaire est introduit dans le composant cache L1, et les automates du cache L1 ne sont que légèrement modifiés par ,
SI la ligne de cache est présente dans le cache L2 : SI la requête est un Read : SI le compteur de la ligne est nul : Le compteur est incrémenté, La réponse au Read est envoyée avec l'état de la ligne actuelle ,
SI cette ligne peut être enregistrée dans la table IVT : Cette ligne de cache est enregistrée dans la table IVT afin que le cache L2 envoie une requête CC-UPDT au cache L1. La ligne passe dans l'état LOCKED. L'automate READ traitera la commande suivante, SINON : Le traitement de la requête est retardé ,
SI la ligne de cache est présente dans le cache L2 : SI le compteur de la ligne est nul : La ligne de cache est mise à jour. La ligne de cache est marquée Dirty. La réponse d'écriture est envoyée. SINON : SI la ligne de cache est en état LOCKED : Le traitement de la requête est retardé, SINON : SI la ligne de cache peut être enregistrée dans la Table IVT : La ligne de cache est enregistrée dans la Table IVT. SI la ligne de cache est dans l'état SHARED : La ligne est mise à jour ,
La valeur à écrire est stockée à côté afin de mettre à jour la ligne lorsque le cache L2 ,
SINON : SI la table TRT n'est pas pleine : Une requête de lecture vers la mémoire externe est enregistrée dans la table TRT ,
SI la ligne de cache est présente dans le cache L2 : SI la ligne de cache est dans l'état LOCKED : La table IVT est accédée pour obtenir la requête en cours sur cette ligne de cache. SI à cette ligne correspond une requête Read : SI la requête Multi ack-miss correspondant à cette ligne n'est pas traitée par l'automate MULTI_ACK ,
SINON : SI le type de requête est Cleanup-data : La valeur de cette ligne est mise à jour ,
Le compteur dans la table IVT est décrémenté. SI le compteur d'invalidation devient nul : SI le type de requête est Cleanup-data ,
SINON : La réponse Clack est envoyée ,
ligne de cache est dans l'état EXCLUSIVE : SI le type de requête est Cleanup-data : La valeur de cette ligne est mise à jour ,
La réponse Clack est envoyée SINON (état SHARED) : SI la ligne est en mode compteur : Le compteur de copies est décrémenté. La réponse Clack est envoyée, SINON : Le compteur de copies est décrémenté. L'entrée dans la liste chaînée correspondant au SRCID pour le même type de ligne ,
La table IVT est accédée. SI le type de requête est Multi ack-miss : SI la requête Cleanup a été traitée par l'automate CLEANUP ,
SINON : L'entrée de la table IVT correspondant à cette ligne est mise à jour afin que l'automate CLEANUP réponde à la requête Read ,
L'enregistrement de la ligne dans la table IVT est effacé ,