Hallo.. Als ich mir die Architektur eines ARM A9 Kerns genauer angeschaut habe, fehlte mir ein wenig Verständnis für die Funktionsweise des Caches. Woher weiß der Prozessor welche Daten er in den Cache ablegen soll und welche nicht? Wird das zur Laufzeit vom Prozessor entschieden oder wird das schon beim Kompilieren festgelegt? Außerdem: Angenommen der Prozessor braucht zum Weiterarbeiten eine neue Variable. Der Linker hat ja für diese Variable eine Adresse im RAM freigehalten (ob Virtuell oder Physikalisch ist jetzt erstmal egal). Woher weiß der Prozessor nun also, ob diese Variable auch im Cache vorhanden ist oder nicht ? Ich hoffe ihr könnt mir da ein Paar Denkanstöße geben... Grüße..
ARM_Cache schrieb: > Wird das zur Laufzeit vom Prozessor entschieden oder wird > das schon beim Kompilieren festgelegt? Zur Laufzeit. > Woher weiß der > Prozessor nun also, ob diese Variable auch im Cache vorhanden ist oder > nicht ? Zu jeder Cache-Line gehört eine Identifikation, das Tag. Das ist die Adresse dieser Line im Speicher. Mindestens bei Lesezugriffen landet alles im Cache, was von der Speicheranordung und -verwaltung her als cachable definiert ist. Also jeglicher normaler Speicher. I/O Bereiche und gelegentlich auch Spiegeladressbereiche normalen Speichers sind entweder automatisch oder per Speicherverwaltung davon ausgeschlussen. Für das Verhalten von Schreibzugriffen gibt es verschiedene Strategien der Implementierung von Caches. Zwei verbreitete: "write though" schreibt stets ins RAM durch, "write allocate" liest falls nötig den Inhalt vom RAM in eine neue Cache-Line und schreibt die zu speichernden Daten dann dort hinein.
:
Bearbeitet durch User
Hallo, vielen Dank für deine Antwort. Sehr gut und einfach erklärt. Das bringt erstmal Licht ins Dunkle! Grüße
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.