Ich meinte wie die CPU den Überblick behält was im Cache liegt und darauf zugreift, oder wann etw wo gecacht wird.
Also dann mal die Kurzfassung: Der Cache ist ein kleiner schneller Speicher, der in sogenannte Cache Lines unterteilt ist. Eine Cache Line sind bei aktuellen x86ern meist 64 Bytes groß und enthält den gecachten Speicherbereich. Außerdem speichert die CPU die Adresse jedes gecachten Speicherbereichs. Wenn du jetzt auf RAM zugreifst, schaut die CPU nach, ob diese Adresse im Cache liegt, und wenn ja, wie der Speicherzugriff aus dem Cache bedient. Ansonsten muss auf den RAM zugegriffen werden.
Aber jetzt wo sich rausstellt, dass ich da eh nichts machen muss interressierts mich nicht mehr so, es sei den SMP zählt zu dem "etwas speziellen"
Eine Sache, die du beachten solltest, ist die korrekte Verwendung von
Memory Barriers. Deren Notwendigkeit ist eine Folge davon wie die CPUs die Kohärenz zwischen den Kernen wahren. Wenn du einen Algorithmus implementierst, der Speicher zwischen mehreren Kernen teilt, solltest du dich darüber informieren.