inclusive LLC : Le cache de dernier niveau (Last Level Cache, LLC) désigne le cache de plus haut niveau qui est généralement partagé par toutes les unités fonctionnelles
de la puce (par exemple, les cœurs de l’unité centrale, l’IGP et le DSP).
Le LLC inclusif est un sur-ensemble de L1, L2. Les données évincées de LLC sont évincées de L1, L2.
Le cache de dernier niveau (Last Level Cache, LLC) désigne le cache le plus élevé auquel les cœurs accèdent avant de récupérer les données en mémoire.
En général, le LLC est partagé par tous les cœurs. Le LLC peut-être le cache L3 partagé.
Si le cache L3 partagé est inclusif cela signifie qu’il conserve des copies de toutes les lignes de cache qui étaient extraites dans les caches L1 et L2 de tous les cœurs.
Si le cache L3 n’est pas inclusif ; il contient principalement les lignes de cache qui ont été évincées des caches L2 des cœurs.
Le L3 réarchitecturé joue un rôle dans la prise en charge d’un mouvement efficace des données vers les registres. Le cache L3 n’étant pas inclusif,
il contient en grande partie des données qui ne sont présentes dans aucun L2. Cela étend effectivement la capacité totale de cache par socket à la somme de L2 et L3.
La contrepartie de cette capacité de cache élargie est une stratégie de recherche plus complexe pour les données mises en cache.
Dans les processeurs Intel précédents, les lignes de cache qui ne se trouvaient pas dans le L3 inclus ne se trouvaient pas non plus dans les caches de numéro inférieur.
Ainsi, une absence dans le L3 déclenchait automatiquement une extraction de la mémoire, et aucune autre recherche n’était nécessaire.
Mais dans Skylake et Cascade Lake, un « filtre snoop » distinct doit tenir un catalogue de toutes les lignes de cache présentes dans les caches L2 des cœurs,
ainsi que dans le L3, afin d’éviter les recherches inutiles dans la mémoire principale.
Le LLC est inclusif dans notre cas. Divided in slice.
Un programme peut optimiser l’utilisation d’un cache en x86 :
– Prefetch: Peut suggérer au CPU de mettre la donnée dans le cache ou de charger la donnée (load data)
– Clflush: Permet de vider les caches
Prefetch: can suggest CPU to load data
– Clflush: throw out data from all caches