Système d'exploitation et matériel
Dans un système où le matériel ne maintient pas la cohérence des caches (non cohérent), quel traitement le logiciel doit-il effectuer avant que le CPU lise des données écrites en mémoire principale par un périphérique via DMA ?
- AAbaisser temporairement la fréquence d’horloge du CPU
- BInvalider le contenu du cache pour la zone concernée afin de forcer une relecture depuis la mémoire principale
- CRéécrire tout le contenu du cache en mémoire principale, puis abandonner les résultats reçus par DMA
Afficher la réponse et l'explication
Réponse : B. Invalider le contenu du cache pour la zone concernée afin de forcer une relecture depuis la mémoire principale
Le DMA transférant les données entre périphérique et mémoire principale sans passer par le CPU, dans un système où le matériel ne maintient pas la cohérence, le cache du CPU peut contenir d’anciennes données de cette zone. Une lecture directe renverrait l’ancienne valeur plutôt que les nouvelles données reçues par DMA. Le pilote invalide donc le cache de cette zone avant la lecture pour faire lire les nouvelles valeurs en mémoire principale. À l’inverse, les données à envoyer au périphérique sont réécrites depuis le cache avant le lancement du DMA.
Continuer : 9 autres questions sur Système d'exploitation et matériel