Ich habe einige Fragen zu Cache-Synchronisationsoperationen.Cache - Leeren und Ungültigmachen der Operation
Invalidate: Bevor CPU versucht, einen Teil des von einem Gerät aktualisierten Speichers zu lesen, muss der entsprechende Speicher ungültig gemacht werden.
Flush: Bevor das Gerät einen Teil des von der CPU aktualisierten Speichers liest, muss die CPU den Inhalt aus dem Cache in den Speicher leeren (also zurückschreiben), so dass das Gerät den Inhalt mit aktualisierten Inhalten aus dem Speicher liest.
Wenn kein Flush ausgeführt wird, kann es Junk-Daten im Speicher lesen, da der Speicher nicht mit Inhalten aktualisiert wird, die in den Cache geschrieben wurden.
Bitte bestätigen Sie, ob mein oben genanntes Verständnis korrekt ist?
Wann möchten Sie sowohl Flush als auch Invalidate kombinieren? Ich habe gehört, dass wir beim Spielen mit Deskriptoren für die Gerätesteuerung synchronisieren müssen, indem wir flush und invalidate kombinieren. Warum?
Müssen wir einer Sequenz wie Flush gefolgt von Invalidate folgen?
Gibt es ein Szenario, in dem Invalidate gefolgt von Flush sinnvoll ist?
Vielen Dank für eine solche Erklärung, könnte nicht eine bessere Erklärung als das im Internet finden .... – fazkan