Frage zu Caches

The_Unknown

Enthusiast
Thread Starter
Mitglied seit
14.05.2006
Beiträge
1.567
Hallo Luxxer,

ich sitze grade an einigen Aufgaben im Bereich der Caches.
Meine Frage ist: Was genau befindet sich in einer Cache-Line ?

In der CPU sind ja "heutzutage" Caches (L1, L2, ...) und so wie ich das verstanden habe, kopiert die CPU häufig genutzte Daten in ihren Cache.

Nun habe ich in einer Aufgabe den Wortlaut:
"CPU x liest eine Cache-Line aus dem Hauptspeicher von der keine Kopien existieren --> Exclusive Read Miss"

Mhm, da frage ich mich aber, wieso eine Cache-Line auf einmal im HS sein soll. Ich dachte der Cache hält Kopien einiger Daten in Form einer Cache-Line (plus Valid-Bit) in sich.

Oder ist es so gemeint, dass der Cache eine Cache-Line hat, wo aber das kopierte Datum schon gar nicht mehr im Hauptspeicher liegt ?

Und dann gab es noch den 2. Wortlaut:
"CPU x liest eine Cacheline aus dem HS, von der andere CPUs eine Kopie im eigenen Cache halten --> Shared Read Miss"

Wieso gibts denn hier einen Miss ?

Ich hoffe, da kann jemand helfen ;)

Ciao The_Unknown
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
:moved:

Hier wird dir sicher besser geholfen :)
 
Zuletzt bearbeitet:
Grundsätzlich ist es erstmal so, dass der Prozessor mit einem schnellen, idR flüchtigen, Speicher arbeitet. Das ist der RAM (Hauptspeicher). Da dies teilweise trotzdem recht langsam sein kann, werden häufig genutzte Daten zum schnelleren Zugriff zwischengespeichert. Eben im Cache. Cache wiederum kann in mehrere Stufen unterteilt sein, die sich in Geschwindigkeit, Grösse und Affinität unterscheiden.

Erstens würde ist so verstehen, dass CPU x der Auftrag erteilt wurde, auf Adresse y im Hauptspeicher zuzugreifen. Diese Daten wurden aber noch nicht im Cache zwischengespeichert. Man spricht dann von einem Cache Miss. Das ist der Fall, wenn entweder zum ersten Mal auf diese Daten zugegriffen wurde. Oder diese Daten mittlerweile verändert wurden, ohne dass der Cache etwas davon mitbekommen hat. Die erweiterten x86 Befehlssätze verfügen zB über NT Instruktionen (Non Temporary), womit dies möglich ist.

Bei zweitens ist es im Grunde genauso, nur existieren hier noch weitere CPUs im System, die eine gültige Kopie der Daten im Cache halten. Für unsere CPU x ist es trotzdem erstmal ein Miss, da hier diese Daten nicht vorhanden sind. Erst in einem weiteren Schritt wird entschieden, wie diese Daten beschafft werden. Entweder über eine effiziente Interprozessorkommunikation oder halt direkt aus dem RAM.

Du solltest dich zudem nicht so sehr von dem Begriff Cache Line beirren lassen. Das ist einfach eine unspezifische Grösse, die einen bestimmten Anteil an Cache definiert. Das spielt hier keine entscheidende Rolle. Du könntest genauso gut 32 Byte oder 64 Byte hinschreiben. Für den Kontext erstmal unerheblich. So wie ich es verstehe, geht es doch lediglich um den Unterschied zwischen Exclusive und Shared Read Miss.
 
Zuletzt bearbeitet:
Verstehe ich das richtig, dass bei 1.) und 2.) im Grunde ein Nachladen der Information in der CL im Cache aus dem HS erfolgt ?
Demzufolge wäre das bei 1.) ein Zustandsübergang von I (Invalid) nach U (Exclusive Modified) und bei 2.) in CPUx ein Übergang von I nach M und bei allen anderen CPUs, deren Caches die Information enthalten ein Übergang von I (auch bei I??) bzw. S (Shared Unmodified) nach S, richtig ?
 
Verstehe ich das richtig, dass bei 1.) und 2.) im Grunde ein Nachladen der Information in der CL im Cache aus dem HS erfolgt ?
Bei 1.) ja. Bei 2.) gibt es wie gesagt auch andere Optionen.

Demzufolge wäre das bei 1.) ein Zustandsübergang von I (Invalid) nach U (Exclusive Modified) und bei 2.) in CPUx ein Übergang von I nach M und bei allen anderen CPUs, deren Caches die Information enthalten ein Übergang von I (auch bei I??) bzw. S (Shared Unmodified) nach S, richtig ?
Mit deinen Bezeichnungen kann ich ehrlich gesagt nichts anfangen. Ist das irgendwelches Fachchinesisch aus Büchern?
1.) kann ich zumindest noch nachvollziehen und würde ich auch so sehen. Bei 2.) kann ich nicht mehr folgen. Da wir lediglich lesen, und die anderen CPUs die Daten bereits enthalten, sollte sich auch dort lediglich der Zustand von CPU x ändern.
 
Naja, das sind Bezeichnungen aus der Vorlesung.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh