Question

Est-il possible explicitement créer des objets statiques dans le cache du processeur, sorte de nous assurer que ces objets restent toujours dans le cache donc pas long est jamais pris d'atteindre tout le chemin en RAM ou à Dieu ne plaise - mémoire virtuelle hdd?

Je suis intéressé particulièrement à cibler le grand cache L3 partagé, pas l'intention de cibler L1, L2, instruction ou tout autre cache, juste le plus grand sur puce chevesne de la mémoire il y a.

Et juste pour clarifier de se différencier des autres sujets que je recherche avant de poster, je ne suis pas intéressé par la privatisation de l'ensemble du cache, juste un petit peu de classes la valeur de la région.

Était-ce utile?

La solution

Non

. Cache n'est pas adressable, de sorte que vous ne pouvez pas allouer des objets en elle.

Qu'est-ce que il semble que vous vouliez poser est la suivante: Avoir l'espace alloué à la mémoire virtuelle, puis-je faire en sorte que je reçois toujours hits cache

Ceci est une question plus compliquée, et la réponse est:. En partie

Vous pouvez certainement éviter d'être échangé sur le disque, en utilisant l'API de gestion de la mémoire de votre système d'exploitation (par exemple mlock()) pour marquer la région non paginable. Ou allouer de « non paginée » pour commencer.

Je ne crois pas qu'il y ait une API similaire à la mémoire de broches dans le cache du processeur. Même si vous pouvez réserver le cache du processeur pour ce bloc, vous ne pouvez pas éviter cache misses. Si un autre écrit de base à la mémoire, la propriété sera transférée, et vous subirez un manque de cache et le transfert de bus associé (éventuellement à la mémoire principale, peut-être dans le cache de l'autre noyau).

Mathew mentionne dans son commentaire, vous pouvez également forcer le cache miss se produire en parallèle avec d'autres travaux utiles dans la canalisation, de sorte que les données dans le cache lorsque vous en avez besoin.

Autres conseils

Vous pourriez exécuter un autre thread qui passe en boucle sur les données et apporte dans le cache L3.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top