Protocoles scalables de coherence des caches pour processeurs manycore a espace d'adressage partage visant la basse consommation. (Scalable cache coherence protocols for energy efficient shared memory manycore processors)
L'architecture TSAR (Tera Scale ARchitecture) developpee conjointement par BULL, le Lip6 et le CEA LETI est une architecture manycore CC NUMA extensible jusqu'a 1024 coeurs. Le protocole de coherence de cache DHCCP dans l'architecture TSAR repose sur le principe du repertoire global distribue en utilisant la strategie d'ecriture simultanee afin de passer a l'echelle, mais cette scalabilite a un cout energetique important que nous cherchons a reduire. Actuellement, les plus grosses entreprises dans le domaine des semi conducteurs, comme Intel ou AMD, utilisent les protocoles MESI ou MOESI dans leurs processeurs multicoeurs. Ces types de protocoles utilisent la strategie d'ecriture differee pour reduire la forte consommation energetique due aux ecritures. Mais la complexite d'implementation et la forte augmentation de ce trafic de coherence quand le nombre de processeurs augmente limite le passage a l'echelle de ces protocoles au dela de quelques dizaines de coeurs. Dans cette these, nous proposons un nouveau protocole de coherence de cache utilisant une methode hybride pour traiter les ecritures dans le cache L1 prive pour les lignes non partagees, le controleur de cache L1 utilise la strategie d'ecriture differee, de facon a modifier les lignes localement. Pour les lignes partagees, le controleur de cache L1 utilise la strategie d'ecriture immediate pour eviter l'etat de propriete exclusive sur ces lignes partagees. Cette methode, appelee RWT pour Released Write Through, passe non seulement a l'echelle, mais reduit aussi significativement la consommation energetique liee aux ecritures. Nous avons aussi optimise la solution actuelle pour gerer la coherence des TLBs dans l'architecture TSAR, en termes de performance et de consommation energetique. Enfin, nous introduisons dans cette these un nouveau petit cache, appele micro cache, entre le coeur et le cache L1, afin de reduire le nombre d'acces au cache d'instructions.