Cache (L1, L2, L3)

preview_player
Показать описание
spezieller Puffer-Speicher, der zwischen dem Arbeitsspeicher und dem Prozessor liegt

Hier wird Programmcode und Daten im Voraus in den Cache geladen, sodas der Prozessor schneller darauf zugreifen kann.
Рекомендации по теме
Комментарии
Автор

Also ich hätte das anders erklärt. Die Erklärung im Video ist keine gute Erklärung wenn man erklären möchte, warum es den Cache gibt und warum der RAM nicht wie der Cache gebaut wird.
Ich hätte einen historischen evolutionären Ansatz gewählt.

Zuerst einmal hätte ich den Unterschied zwischen SRAM und DRAM erklärt und warum man DRAM für RAM verwendet und SRAM für Cache, weil das notwendig ist um zu erklären, warum die CPU und das RAM nicht auf dem gleichen Silizium Die bzw. in den gleichen IC Baustein verbaut bzw. gefertigt werden.
Letzteres, die Trennung auf verschiedene ICs und die unterschiedlichen RAM Typen erklärt nämlich, warum der Zugriff auf das RAM im Vergleich zum Zugriff auf den Cache wesentlich langsamer ist.

Das RAM wird deswegen in eigenen IC Bausteinen fertigt, weil man die Art und Weise, wie DRAM gefertigt wird, nur sehr schlecht auf die Art und Weise, wie CPUs auf einem Silizium Die gefertigt werden, abbilden kann. Man braucht dafür unterschiedliche Fertigungsprozesse. DRAM enthält z.B. pro Speicherzelle mindestens einen Kondensator, SRAM besteht dagegen nur aus Transistoren.

Ein weiterer Grund ist, dass DRAM weniger Platz braucht als SRAM und man daher mit DRAM viel mehr Speicherplatz auf die gleiche Siliziumfläche verbauen kann, als dies mit SRAM möglich wäre. Dies senkt die Kosten wenn man viel Arbeitsspeicher benötigt.
Und da die Siliziumfläche wegen der Ausbeute an funktionstüchtigen RAM Bausteinen nicht beliebig groß sein sollte, aber man möglichst viel RAM benötigt, wird in einem Computer nicht einfach nur ein RAM Baustein verbaut, sondern gleich mehrere.
Damit wäre dann schon einmal geklärt, warum das RAM von der CPU überhaupt getrennt in eigenen ICs verbaut wird.

Und um diese beiden zu verbinden, also das RAM mit der CPU gibt's dann entsprechende Datenleitungen auf dem Mainboard. Da es aber Fertigungstechnisch schwierig ist, diese Datenleitung, die auf dem Mainboard aufgebracht wird mit der gleichen Taktgeschwindigkeit zu fahren, wie die CPU intern verwendet und weil man solche Datenleitungen nicht beliebig auf einem Mainboard breit auslegen kann, also mehrere Datenleitungen verlegen kann, sowie die Wegstrecke deutlich länger ist, ist die Bandbreite und Zugriffszeit von der CPU auf das RAM deutlich langsamer als man gerne hätte.

Als Abhilfe hat man daher den Cache eingeführt. Dieser wird heutzutage, da er in SRAM Technik gebaut wird, die sich gut auf ein Fertigungsverfahren wie es auch für CPUs notwendig ist abbilden lässt, direkt auf die CPU verbaut, weshalb die Anbindung zum Cache mit vollem CPU Takt gefahren werden kann und die Wegstrecke sehr kurz ist, sowie es auch bei der Breite der Datenleitungen zum Cache keine großen Hürden auf dem Silizium Die gibt.
Und deswegen ist daher auch der Zugriff auf den Cache schneller als auf das RAM.
Ein weiterer Grund ist auch, dass sich SRAM schneller schalten lässt, als DRAM.

Aus dieser Erklärung wird dann auch ersichtlich, warum der Cache deutlich kleiner ist, als das das normale RAM.
Denn SRAM benötigt, wie bereits gesagt, wesentlich mehr Chipfläche und wenn sich der Cache die Fläche mit der CPU teilen muss, dann hat man erst Recht noch weniger Platz zur Verfügung, während man bei den externen RAM Bausteinen einfach mehrere auf einmal verbauen kann und somit noch mehr RAM hat

Die Unterteilung des Caches in Level 1, Level 2 und Level 3 hat ebenfalls sowohl historische als auch Fertigungstechnische Gründe.
Der Level 1 Cache ist wesentlich näher an der CPU Logik verbaut, als der Level 2 Cache, dadurch hat man aber auch wesentlich weniger Platz für den L1 zur Verfügung, weshalb er auch wesentlich kleiner ist.
Und beim Level 2 (und auch Level 3) Cache war es sogar so, dass man den früher, sogar ganz außerhalb der CPU auf einen eigenen IC gebaut hat, aber dieser war wesentlich näher und aufgrund der kürzen Wegstrecke auch mit höherem Takt an die CPU angebunden, als das normale RAM und man verwendete für diesen L2 Cache auf kein DRAM, sondern das mehr platz verbrauchende und daher teurere aber dafür auch schnellere SRAM.
Außerdem hat man etwas später mit steigendem Takt (AFAIK ab dem Pentium Pro & Pentium 2) den Level 2 Cache Baustein bevorzugt festgelötet, weil das Festlöten die elektronischen Eigenschaften und somit die machbare Taktrate verbessert, während die RAM Bausteine in der Regel gesockelt waren oder in einen Slot verbaut werden.
(Anmerkung zur Zeit des 486er wurde auch der L2 Cache noch gesockelt, da lag die Taktrate der CPU Anfangs aber auch nur bei Anfangs 33 MHz und eine Sockelung war daher kein Problem, eine Sockelung erlaubt es, den Computer auch ohne L2 Cache zu verkaufen, das senkte den Preis des Computers)

Irgendwann wurde es dann durch die immer kleineren Fertigungsstrukturen möglich, auch den L2 Cache in die CPU wandern zu lassen, dort war er aber von der CPU Logik immer noch weiter entfernt als der L1 Cache, aber dafür war er auch immer noch etwas größer als der L1 Cache aber man konnte ihn Anfangs nicht so groß bauen, wie frühere L2 Caches die in ihrem eigenen Baustein verbaut waren.
Also hat man den L3 Cache eingeführt, der wieder ein externer SRAM Baustein war, der wie zuvor der L2 Cache näher an der CPU verbaut war, aber da er in einen eigenen SRAM Baustein verbaut war, konnte er dann wieder größer sein, als der L2 Cache der inzwischen auf der CPU gelandet ist.

So entstanden die Abstufungen von der CPU zum L1 Cache zum L2 Cache zum L3 Cache zum RAM.
Und das man den Cache dazu nutze, Code und Daten vorzuhalten oder auch mal auf Verdacht Daten vorzuladen, für den Fall, das man sie vielleicht bräuchte, das ist richtig.
Somit ist der Cache in seiner Funktion auch mehr als nur das RAM, beim RAM kann man zwar auch Daten für den Bedarf schon mal vorher laden, aber ob das gemacht wird, das entscheidet hier der Programmierer, während es beim Cache eine reine Hardwaresache ist.

Durch die immer kleineren Fertigungsverfahren wurde es dann im Laufe der Zeit möglich, dass sowohl der L1, L2 als auch L3 Cache immer größer werden konnten und heutzutage verbaut man sogar auch den L3 Cache direkt auf den CPU Die.

So hätte ich das erklärt. Und Zeit gewinnt man für die längere Erklärung dadurch, in dem man in der Vorlesung das Zeugs nicht hinmalt, was unnötig Zeit kostet, sondern als digitale Präsentatonsfolien per Beamer auf die Wand projiziert und die Folien per Download als PDF zum Ausdrucken den Studenten zur Verfügung stellt.

OpenGLever