Was ist Cache und warum verfügen CPUs, GPUs und andere Prozessortypen über ihn? Hier finden Sie alles, was Sie wissen müssen.
Quicklinks
- Cache: Eine kleine Menge Hochgeschwindigkeitsspeicher
- Cache-Ebenen und die Speicherhierarchie
- Cache ist notwendig, verbessert jedoch nicht allein die Leistung
Obwohl über Cache nicht so viel gesprochen wird wie über Kerne, RAM (Random Access Memory), oder VRAM, Sie haben wahrscheinlich schon einmal davon gehört, besonders in letzter Zeit. AMD wirbt stolz für seine Gaming-Leistung Ryzen-CPUs mit 3D V-Cache als Ergebnis der Verwendung von Cache, und eine der größten Verbesserungen von Intel bei seinen Raptor-Lake-CPUs der 13. Generation war das Hinzufügen von mehr Cache.
Aber wie kann der Cache die Leistung verbessern, wenn er in Megabyte gemessen wird? Sogar die billigsten RAM-Kits sind heutzutage mit 16 GB ausgestattet. Wie kann also das Hinzufügen von nur ein paar zusätzlichen Megabyte Cache einen so großen Unterschied bei der Leistung machen? Nun, Cache ist kein normaler Speichertyp.
Cache: Eine kleine Menge Hochgeschwindigkeitsspeicher
Quelle: AMD
Cache ist eigentlich eine recht neue Entwicklung bei Prozessoren, die bis in die 1990er Jahre zurückreicht und aufgrund des RAM erfunden wurde. RAM ist eine Schlüsselkomponente in Computern, die eine beträchtliche Datenmenge speichert, die Prozessoren (wie CPUs und GPUs) voraussichtlich ziemlich oft benötigen. Lange Zeit hielten Verbesserungen der RAM-Leistung mit Verbesserungen der CPU-Leistung Schritt, doch in den 1990er-Jahren wurde dies immer mehr Es ist offensichtlich, dass der Arbeitsspeicher nicht mit den neuesten CPUs mithalten kann. Der Arbeitsspeicher hatte viel Kapazität, aber die Übertragungsgeschwindigkeiten waren einfach zu hoch langsam.
Hier kommt der Cache ins Spiel. Es ist weder physikalisch noch kapazitätsmäßig annähernd so groß wie RAM, befindet sich jedoch im Prozessor selbst und kann Daten sehr schnell und mit sehr geringer Latenz übertragen. Solange der Cache die Daten speichert, die der Prozessor tatsächlich benötigt, kann er Zeit sparen, da das Anfordern derselben Daten im RAM um ein Vielfaches langsamer ist. Es war eine großartige Lösung für das RAM-Problem und ermöglichte es CPU-Designern, weiterhin schnellere CPUs zu entwickeln RAM-Entwickler können weiterhin größere RAM-Kapazitäten entwickeln, ohne sich darüber Gedanken machen zu müssen Leistung. Heutzutage ist der Cache in nahezu jedem Prozessortyp vorhanden.
Sie fragen sich vielleicht, warum der Cache so klein ist. Nun ja, es hat hauptsächlich mit Platz und Geld zu tun. Selbst 32 MB Cache können auf einem Prozessor ziemlich viel Platz beanspruchen, und moderne Chips sind auf eine Gesamtfläche von etwa 600 mm2 begrenzt, die sinnvoll genutzt werden muss. Das bedeutet, dass es ziemlich teuer werden kann, mehr Platz für den Cache bereitzustellen Diese Situation wird tatsächlich schlimmer, nicht besser. Die neuesten Herstellungsprozesse führen zu immer kleineren Verbesserungen der Cache-Dichte, und TSMC konnte die Größe des Caches in der ersten Iteration seines 3-nm-Prozesses überhaupt nicht reduzieren.
Cache-Ebenen und die Speicherhierarchie
Quelle: Carlos Carvalho
Die Erfindung des Caches bedeutete, dass es für alle Datenspeichergeräte in einem Computer eine neue Ebene gab. Diese Schichten bilden die sogenannte Speicherhierarchie, die Sie im Bild oben und im Detail sehen können welcher Speicher wohin in einem typischen System innerhalb einer CPU geht (obwohl andere Arten von Prozessoren sehr ähnlich aussehen werden). ähnlich). Heutzutage umfasst die moderne Speicherhierarchie nicht nur Cache, RAM und permanente Speichergeräte, sondern auch eine Speicherhierarchie innerhalb des Caches selbst.
Die meisten Prozessoren verfügen für verschiedene Zwecke über unterschiedliche Cache-Ebenen. Die erste und kleinste Cache-Ebene ist L1, die mit einzelnen Kernen für die Verarbeitung sofort benötigter Daten ausgestattet ist. Der L1-Cache wird häufig in Kilobyte gemessen, wobei die neuesten Ryzen 7000-CPUs über 64 KB L1-Cache pro Kern verfügen. Darüber hinaus wird der moderne L1-Cache häufig weiter in L1I (für Anweisungen) und L1D (für Daten) unterteilt.
Als nächstes kommt L2, das für eine Gruppe von Kernen und nicht für einzelne Kerne gedacht ist. Natürlich ist der L2-Cache größer als der L1-Cache, oft um eine Größenordnung, aber da er viel größer ist und mehr Kerne bedienen muss, ist er langsamer und hat eine höhere Latenz. Einige Prozessoren, insbesondere GPUs und langsamere CPUs, reichen nur bis zum L2-Cache.
Der nächste Schritt ist L3, der im Allgemeinen von allen Kernen auf dem Chip verwendet wird. Seine Größe kann je nach Prozessor zwischen ein paar Mal größer als der L2-Cache und mehr als einer Größenordnung größer sein. Das bedeutet, dass er sogar langsamer als der L2-Cache ist, aber immer noch besser als der RAM ist. Darüber hinaus fungiert der L3-Cache häufig auch als „Opfer-Cache“, in dem die aus dem L1- und L2-Cache entfernten Daten abgelegt werden. Es kann weiter aus dem L3-Cache entfernt werden, wenn es nicht benötigt wird. Heute ist der L3-Cache für AMD aufgrund seiner Chiplet-Technologie besonders wichtig. Ryzen 3D V-Cache-Chips enthalten 64 MB L3-Cache und RX 7000 Memory Cache Dies (oder MCDs) enthalten jeweils 16 MB L3-Cache.
Die höchste Cache-Ebene, die bei den meisten Prozessoren zu finden ist, ist L4, die oft so groß ist, dass sie praktisch RAM ist. Tatsächlich handelt es sich bei den neuesten CPUs, die L4-Cache verwenden, um die Sapphire Rapids Xeon-Chips von Intel, die bei Topmodellen HBM2 als L4-Cache verwenden. AMD hingegen hat noch nie einen L4-Cache verwendet und begnügt sich stattdessen damit, seinen L3-Cache durch das Hinzufügen weiterer CPU- und V-Cache-Chiplets auf hohe Kapazitäten zu erweitern. Ein L4-Cache kommt in der Regel integrierten GPUs stärker zugute, da es sich um eine On-Die-Lösung handelt, die Daten zwischen der CPU und der integrierten GPU austauschen kann.
In einigen Chipsätzen, vor allem mobilen, gibt es eine andere Art von Cache: den System-Level-Cache (SLC). Dieser Cache wird dann im gesamten Chipsatz verwendet, z. B. GPU, NPU und CPU. Ein Cache kann die Notwendigkeit von Anfragen an den Hauptspeicher ersetzen, sodass ein SLC dem gesamten SoC zugute kommt.
Cache ist notwendig, verbessert jedoch nicht allein die Leistung
Trotz des ganzen Hypes um die jüngsten Innovationen im Cache ist es kein Allheilmittel für die Leistung. Schließlich gibt es im Cache keine Verarbeitungskapazität; Es speichert lediglich Daten, und das war's. Obwohl jeder Prozessor durchaus von mehr Cache profitieren kann, ist es oft zu teuer, mehr als genau die erforderliche Menge hinzuzufügen. Das Hinzufügen von mehr Cache verbessert die Leistung je nach Arbeitslast möglicherweise nicht einmal, was ein weiterer Anreiz ist, den Prozessor nicht zu stark zu belasten.
Allerdings kann es in bestimmten Situationen wünschenswert sein, eine große Menge Cache hinzufügen zu können. CPUs mit viel Cache schneiden beispielsweise in Spielen tendenziell besser ab. AMDs Ryzen-CPUs mit 3D-V-Cache sind für Spiele ziemlich schnell, obwohl sie eine niedrigere Frequenz haben als Chips ohne V-Cache, und Intels CPUs der 13. Generation sind deutlich schneller als Chips der 12. Generation, wobei die einzige große Verbesserung eine Vergrößerung darstellt Zwischenspeicher.
Letztlich dient der Cache dazu, dass Prozessoren den RAM so oft wie möglich umgehen können und die Leistung so ungehindert wie möglich sein kann. CPU-Designer müssen die Cache-Kapazität mit der Größe und damit auch den Kosten in Einklang bringen, was mit jeder Generation neuer Herstellungsprozesse schwieriger wird. Auch wenn Jahrzehnte nach der Erfindung des Caches neue Möglichkeiten zum Hinzufügen von Cache zu Prozessoren eingeführt werden, ist es schwer vorstellbar, dass sich der Zweck dieser Schlüsselkomponente von Prozessoren jemals ändern wird.