Bientôt des puces 25 % moins énergivores
Selon une étude publiée par des chercheurs du MIT (The Locality-Aware Adaptive Cache Coherence Protocol – PDF) et relayée par Ars Technica, le protocole de gestion du cache des microprocesseurs n’est plus adapté à leur architecture multi-cœurs.
L’équipe du MIT et de l’Université du Connecticut propose donc un nouveau protocole qui pourrait améliorer de 15 % la performance des microprocesseurs tout en réduisant de 25 % leur consommation électrique. Pour parvenir à ce résultat, les chercheurs proposent un ensemble de règles de conception adaptées aux nouvelles contraintes des processeurs modernes : rapprochement des caches de chaque cœur, partage des données entre cœurs, etc.
Les caches stockent les données les plus souvent accédées par chaque cœur pour éviter de les ralentir en allant chercher les données à chaque fois en mémoire. Chaque cœur possède un cache privé en plus d’un cache partagé dit de second niveau (last-level cache en anglais ou LLC). L’architecture est en réalité plus complexe, mais je la caricature pour la rendre compréhensible par le plus grand nombre. J’espère que les experts me pardonneront.
Si cette architecture améliore la performance des puces multi-cœurs, elle est loin d’être parfaite. Les caches privés sont souvent saturés et doivent donc faire des allers-retours entre les multiples caches, jusqu’au LLC, ce qui grève les performances du processeur tout en consommant inutilement de l’énergie.
Adapter l’architecture du cache aux besoins des coeurs
George Kurian, chercheur au MIT propose une organisation plus efficace. Quand la quantité de données à stocker est plus importante que la taille du cache privé, le nouveau contrôleur en stocke une partie dans le cache partagé (ce qui n’était pas le cas précédemment). Le cache partagé est également privilégié au cache privé lorsque deux cœurs travaillent sur les même données. On évite ainsi d’avoir à synchroniser en permanence les caches privés des cœurs et le cache partagé. D’autres optimisations de ce type sont proposées.
Les économies d’énergie et les gains de performance sont obtenus essentiellement grâce à la réduction du nombre d’opérations à effectuer pour synchroniser les caches. Cela montre, une fois encore, que plus la conception est proche du besoin et plus le code peut être optimisé.
Merci à Jérémy Chatard pour l’alerte.
Source : http://people.csail.mit.edu/devadas/pubs/adaptive-isca.pdf et http://arstechnica.com/science/2014/03/new-cache-design-speeds-up-processing-time-by-15/ et http://sc.tamu.edu/systems/eos/