Was bestimmt die maximale Größe eines CPU-Cache?

Wenn ich mir eine Liste der allerneuesten CPUs ansehe, sehe ich einige davon mit einer Cache-Größe von 12 MB oder 8 MB – ziemlich klein im Vergleich zu der ständig wachsenden Größe von Festplatten und RAM. Es scheint selbstverständlich zu sein, dass ein CPU-Cache immer klein sein wird, aber warum ist das so? Ist es einfach wirtschaftlich nicht machbar, oder gibt es technische Gründe, warum es klein bleiben muss?

Ich denke an einige Kryptowährungen (z. B. Ethereum), die speicherhart ausgelegt sind, sodass die Geschwindigkeit des Algorithmus durch die E / A-Bandbreite des Speichers begrenzt ist, mit der Idee, dass dies das Entwerfen eines benutzerdefinierten Chips unmöglich macht speziell um diesen Algorithmus zu lösen, wie es für Bitcoin getan wurde. Aber wenn jemand sowieso einen benutzerdefinierten Chip herstellt, könnte er nicht einfach ein Gigabyte in den Cache stopfen und den IO-Engpass beseitigen?

Die Marketingabteilung!
Schnellerer Speicher (dh CPU-Cache) kostet mehr.
Ich wette, sie haben eine Cache-Größe von 12 MB oder 8 MB. Millibits sind zu klein, um nützlich zu sein, es sei denn, Sie hätten Milliarden davon.

Antworten (3)

Es ist ein Kompromiss zwischen der höheren Trefferrate eines großen Caches und der höheren Geschwindigkeit des kleineren Cache-RAMs. Die Trefferquote folgt einem Gesetz abnehmender Erträge, wenn der Cache größer wird.

Das Verdoppeln der Größe eines großen Caches kann die Trefferrate nur um weniger als ein paar Prozent erhöhen, aber es wird sicherlich seine Zugriffszeit erhöhen, was den CPU-Durchsatz verlangsamt.

Das Problem ist die Strukturgröße im Vergleich zur Signalausbreitungsgeschwindigkeit.

Wenn Sie einen größeren Cache bauen, nimmt er physisch mehr Platz ein, was bedeutet, dass die Länge, die die Signale zurücklegen müssen, zunimmt, was die maximale Taktrate verringert, mit der der Cache ausgeführt werden kann. Der L1-Cache muss synchron zur CPU laufen, um nützlich zu sein, daher ist die Größe des Caches ein begrenzender Faktor für die Taktgeschwindigkeit.

Andere Cache-Layer können größer sein und mit langsameren Takten laufen, aber das erfordert, dass die CPU wartet, bis der Cache antwortet.

Der GPU-Ansatz besteht darin, viele Threads pro Kern zu haben (dh einen SMT-Faktor von 16 oder höher, verglichen mit 2 bei Intel-CPUs oder 4 bei POWER). Das bedeutet, dass jeder einzelne Thread nur mit einem Bruchteil der Taktrate läuft, aber Ergebnisse für einen Speicherzugriff werden erst benötigt, wenn alle anderen Threads mit ihrem Speicherzugriff begonnen haben, an welchem ​​Punkt das Ergebnis für den ersten Zugriff bereit sein sollte.

Aus diesem Grund ist das GPU-Mining für diese Coins interessant.

Speicher in Gigabyte-Größe (DRAM) verwenden nicht denselben Herstellungsprozess wie CPUs (Logik), sodass Sie nicht beide auf demselben Chip haben können, es sei denn, Sie sind bereit, Kompromisse einzugehen, die das Ganze ineffizient machen würden.

Der Cache-Speicher verwendet statisches RAM, das der Logik ähnlicher ist, aber mehr Siliziumplatz benötigt als DRAM, sodass Sie praktisch nicht so viel haben können. Darüber hinaus verwenden große Cache-Speicher inhaltsadressierbare Zellen, was noch komplizierter herzustellen ist. Kurz gesagt, die Erstellung eines Gigabyte-großen Caches ist wirtschaftlich nicht wirklich machbar.

Aber wie auch immer, selbst wenn du es könntest, würde es dein Problem nicht lösen. Sie würden vielleicht ein paar Latenzzyklen gewinnen, müssten aber immer noch einen Bus zwischen dem Prozessor und dem Speicher haben, sogar innerhalb des Chips. Das wäre also Ihr Engpass, genau wie auf einem normalen Computer.