Le cache CPU est géré par quel composant logiciel?

9

Les caches CPU sont utilisés en exploitant la localité temporelle et spatiale. Ma question est qui est responsable de la gestion de ces caches? Est-ce que ce système d'exploitation identifie un modèle d'accès particulier puis gère (c.-à-d. Stocke les données dans) le cache, à l'aide d'appels de fonction de système d'exploitation de bas niveau?

gpuguy
la source
Si les caches étaient gérés par un logiciel, les CPU n'obtiendraient rien dans le temps; aussi, ne serait-ce pas un hic 22?
Raphael

Réponses:

8

Le cache du processeur gère chaque accès à la mémoire, ce qui est tout simplement trop rapide pour être sous contrôle logiciel. Il est entièrement intégré au matériel, soit sur la puce CPU elle-même, soit sur la carte mère.

vonbrand
la source
12

Les caches CPU sont opérationnels dès l'instant où le CPU est mis sous tension. Ni le BIOS ni un système d'exploitation ne sont à proprement parler «nécessaires» pour contrôler les caches. Le BIOS et le système d'exploitation peuvent modifier les paramètres de configuration du cache dans le CPU, mais ils ne contrôlent pas le fonctionnement normal, tout est intégré au CPU lui-même.

uli
la source
Certains processeurs utilisent par défaut la mise en cache activée; certains par défaut à l'avoir désactivé. Le fait d'avoir un cache activé peut permettre à un processeur de se comporter de façon quelque peu contrôlée, même lorsqu'il n'y a pas de RAM (par exemple, le processeur peut émettre un bip le haut-parleur un certain nombre de fois); l'avoir initialement désactivé évitera de devoir le désactiver avant de modifier les options de configuration de la mémoire.
supercat
3

Cela dépend totalement de votre plate-forme matérielle (par exemple, Nios® II fournit des instructions pour gérer les caches). Vous devriez lire les instructions et le langage d' assemblage . Certains processeurs vous fournissent des instructions pour gérer le cache à un certain niveau. par exemple, WBINVD fournit des caches internes de réécriture et de vidage ; lancer la réécriture et le vidage des caches externes (ou INVD ).

Reza
la source