Unterschied Prozessor früher/heute?

5 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Für die Geschwindigkeit mit der eine CPU arbeitet ist nicht nur deren Takt ausschlaggebend.

Auch ausschlaggebend ist die Architektur der CPU.

Z.B. der Cache und dessen Größe. Der Cache ist ein Zwischenspeicher wo Befehle und Anweisungen zwischengespeichert werden. Der Cache ist viel schneller als der normale RAM (Hauptspeicher) jedoch deutlich teurer in der Herstellung und zudem aufgrund seiner Anbindung auch an sehr kurze Leitungswege gebunden. Aus diesem Grund ist die Größe des Caches auch begrenzt. Aus dem Cache können Daten deutlich schneller geladen werden als aus dem RAM.

Dann der Befehlssatz einer CPU. In dem letzten Jahren öfters erweitert worden (SSE, AVX, MME usw.). Je mehr Befehle eine CPU beherrscht desto effizienter können die Programme arbeiten um eine Funktion zu erfüllen. Währen man bei einer älteren CPU ggf. noch zwei oder drei Befehle benötigt um eine Funktion zu erfüllen, ist bei einer neuen CPU evtl. sogar nur ein Befehl notwendig. (Das entspricht zwar nicht unbedingt der Wirklichkeit, beschreibt aber die Funktion der Optimierung durch Befehlssatzerweiterungen)

Durch solche und andere Verbesserungen arbeiten die neuen CPUs trotz evtl. gleichem Takt schneller.

Nein, denn die uArch ist ausschlaggebend. Ich habe immer die Wahl zwischen Platz sparen und einfachen Rechennetzen, oder eben hochkomplexen Rechennetzen mit viel Platz, die entsprechend mehr Energie brauchen (bei gleicher Strukturgröße).

Deswegen gehen mit Shrinks (der Struktur) oft eben auch komplexere Rechennetze einher, die dann entsprechende Operationen schneller erledigen.

Ich versuche das mal an einem trivialen Beispiel zu erklären, nehmen wir eine einfache Integeraddition, die führe ich wie eine schriftliche Addition aus, von rechts nach links entlang der Bitstellen.

Für jede Stelle ergibt sich ein möglicher Übertrag, denn ich dann an die nächste Stelle weitergebe und verrechne. Je mehr Stellen ich habe, umso länger muß ich bei den höherwertigen Stellen auf den Übertrag warten. Das ist ein Carry-Ripple-Addierer, der einfach eine Stelle nach der nächsten berechnet.

Nun mache ich mir zu nutze, daß ich generell nur zwei Zustände habe. Sagen wir ich habe 16 Stellen (16 Bit), dann teile ich diese in 2 Blöcke zu jeweils 8 Bit. Der Übertrag am Ende des ersten Blockes ist 0 oder 1. Ich baue den Teil des Addierer für den 2. Block doppelt, einmal wird für einen Übertrag 0 gerechnet, einmal zeitgleich für Übertrag 1.

Ich brauche deutlich mehr Platz, weil mehr Logik, habe aber die Dauer für die Berechnung etwa halbiert.

Generell, wenn ich parallelisieren will, brauche ich mehr Gatter, mehr Fläche, dafür sinkt dann die Berechnungszeit (solange es die Möglichkeit der Parallelisierung oder sonstiger gibt)

Es kommt auch darauf an wieviele Anweisungen sie pro Takt verarbeiten können. Die Taktgeschwindigkeit ist garnicht mal so wichtig. Der IPC-Wert (Instructions Per Cycle) ist noch viel wichtiger.

Stell dir vor 2 CPUs mit 2.0 GHz und 4 Kernen.

Eine hat 1 IPC.

Die andere 100.

Dann ist die andere 100x schneller als die eine.


Pagega 
Beitragsersteller
 16.04.2022, 17:23

Aber der IPC wert ist ja nie irgendwo angegeben.

0
AtmenderMens175  16.04.2022, 17:26
@Pagega

Ja, denn aufgrund dessen dass manche Anweisungen länger zu verarbeiten brauchen als andere kann man den nicht akkurat messen.

Aber dafür gibt es Webseiten die die Leistungsdaten vergleichen können (so Benchmark Seiten).

1

Da gibt es noch weit, weit mehr Faktoren. Neben der Kernzahl hast du teilweise auch mehrere Threads pro Kern, wie bei Hypertreading der Fall. Weiter haben die CPUs verschieden großen und schnellen Cache, sind einfach anders aufgebaut, weshalb bestimmte Zugriffe innerhalb der CPU selbst schneller oder langsamer sind, Branche Prediction und natürlich wie viele Befehle letztlich pro Takt verarbeitet werden können.

Wenn du also eine CPU des gleichen Herstellers, der gleichen Modellreihe vergleichst, der ansonsten gleich aufgebaut ist oder eben die identische CPU übertaktet oder nicht, ja dann ist die Taktgeschwindigkeit aussagekräftig.

Ansonsten nicht. Ist wie wenn du rein PS von einem Auto vergleichst. Das eine hat deutlich mehr Gewicht, das andere ist Windschnittiger, beim einen geht zu viel Leistung verloren, bis es letztlich auf die Reifen trifft etc. pp.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012

Die Logik innerhalb der Prozessoren ist unvorstellbar in der Komplexität gewachsen.

Früher hatten Prozessoren Millionen von Transistoren. Der neue Appel M1 Ultra hat 114 Milliarden(!) Transistoren.