Unterschied L1 Cache/L2 Cache beim CPU

Abcd12345

Lt. Junior Grade
Registriert
März 2006
Beiträge
483
Hi,

Ich habe mir einige Sachen über L1 und L2 Caches beim CPU durchgelesen, verstehe aber noch nicht ganz den Unterschied. So weit ich das jetzt verstanden habe enthalten beide Caches kopien von Datein aus dem Arbeitspseicher auf, die die CPU häufig zugreifen muss. Dies soll dann die Zugrifsszeit beschleunigen, da ein direktes hollen der Daten aus dem Arbeitsspeicher länger dauern würde.

Ich bin mir aber noch nicht 100% sicher ob die obere erklärung so sicher ist. Und was ich vor allem noch nicht verstanden habe ist warum es 2 Caches gibt.

Ich würde mich freuen, wenn das mal jemand erklären kann :-)
 
Vom RAM geht es in den L2-Cache, der etwas schneller ist als der RAM, dafür aber deutlich kleiner. Vom L2 gehts dann in den L1, der noch schneller ab auch noch kleiner ist. Mittlerweiel gibt es auch L3.

Das sorgt dafür, dass die Daten immer gleichmäßig beim Prozessor ankommen - es ist sozusagen ein Puffer.

Grüße
jusaca
 
Der Unterschied besteht in der Zugriffszeit. L1 hat iirc eine Zugriffszeit von wenigen Nanosekunden. L2 Bisschen mehr. L3 noch langsamer. Ram ist schon in einem höheren Bereich. Und die Festplatte ist dann im mehrstelligen Milisekundenbereich. Ein Programm ist also am schnellsten, wenn der meiste Code sich im L1 Cache befindet.

Da aber der speicher für den L1 Cache teuer ist (ich glaub das war der Grund, etwas länger her), teilt man es in diese Verschiedenen Kategorien ein. Und verbaut größeren und billigeren aber teureren Speicher für die anderen Caches.
 
Abcd12345 schrieb:
Und was ich vor allem noch nicht verstanden habe ist warum es 2 Caches gibt.
Weil L1 alleine zu klein wäre und L2 alleine zu langsam. Je grösser der Cache, desto langsamer wird er im Grunde. Die Aufspaltung in L1 und L2 ist einfach nochmal eine feinere Abstufung innerhalb des Caches basierend auf dem Prinzip, welches du oben schon korrekt erfasst hast. Theoretisch kann man hier unzählige Cache Levels hierarchisch verknüpfen, macht in der Praxis aber nur bis zu einem bestimmten Grad Sinn.
 
Okey Danke so weit,

Was mich jetzt noch interesiert ist um welche Daten es sich da in der Regel handelt die in den Caches gespeichert werden.

Gruß abcd
 
Abcd12345 schrieb:
Was mich jetzt noch interesiert ist um welche Daten es sich da in der Regel handelt die in den Caches gespeichert werden.
All das, was sich auch im RAM befindet und zur Verarbeitung gebraucht wird. Das ist zum einen der Maschinencode, den der Prozessor ausführt. Zum anderen sind das aber auch die Daten, die damit verbunden sind.
 
die Daten, die damit verbunden sind
, welche wiederum im Maschinencode gespeichert sind. Noch schneller als L1 Cache sind übrigens die Register in dem prozzi
 
stingr4y schrieb:
, welche wiederum im Maschinencode gespeichert sind
Nein. Diese Daten sind unabhängig und zB im Data oder BSS Segment des jeweiligen Prozesses untergebracht. Oder liegen auf dem Stack. Im Maschinencode selbst befinden sich lediglich sogenannte Immediates, also Festwerte.
 
Zuletzt bearbeitet:
Zurück
Oben