GHz und IPS

yxy

Lieutenant
Registriert
Juli 2014
Beiträge
570
Hi, gibt es irgend einen Zusammenhang zwischen
Taktrate (in GHz) und der IPS-Zahl (Instruktionen pro Sekunde)?

Im Netz habe ich folgendes gefunden:
The faster the clocks rate, the faster the CPU, or the faster it can execute instructions.

Das macht Sinn und bedeutet meiner Meinung nach, dass die Ghz-Zahl eines Prozessors und die IPS-Zahl zusammenhängen.

For example, a dual core 3.0 GHz processor would be capable of running faster than a single core 3.0 GHz processor. Both have the same CPU speed, but the dual core processor can perform more calculations than the single core processor because it has two processing cores instead of just one.

Macht auch Sinn.

Heißt das, dass bei einem Einkern-Prozesor die Ghz Zahl und die IPS Zahl gleich groß sind?
 
Heißt das, dass bei einem Einkern-Prozesor die Ghz Zahl und die IPS Zahl gleich groß sind?
Nein, das kommt auch noch auf die IPC an: Instructions per Clock.
Aber: Taktrate*IPC = IPS (für einen Kern)

Wobei die IPC natürlich von Modellabhängig ist und auch nicht identisch in jeder Anwendung.
 
yxy schrieb:
Heißt das, dass bei einem Einkern-Prozesor die Ghz Zahl und die IPS Zahl gleich groß sind?
Nein. Grundsätzlich könnte man sagen, dass sich mit verdoppeln der Arbeitsfrequenz auch eine Verdopplung der IPS einstellt. Praktisch stimmt das auch, es können nur nicht immer alle Instruktionen genutzt werden, weil die Pipeline belegt ist, Dateien erst aus dem Speicher geholt werden müssen oder das Ergebnis von anderen Operationen abhängt, die mehr Taktzyklen benötigen.

Eine einzelne CPU ist intern ziemlich komplex, es kann zum Beispiel für ein und dieselbe Instruktion multible Ausführungseinheiten geben. Dann können diese eben, je nach Anzahl, pro Taktzyklus auch entsprechend viele Ausführungen derselben Instruktion bearbeiten.
Aber moderne x86-64 beherrschen eine Vielzahl an Instruktionen, die wiederum in einfachere Operanden zerlegt werden und intern parallelisiert und zt im voraus berechnet werden. Eine definierte Aussage, wie viele Instruktionen pro Sekunde ein einzelner moderner Prozessor ausführen kann ist also ein reiner Durchschnittswert.

Hat man nun 2 CPU-Kerne, hat man theoretisch auch die doppelte Leistung zu Verfügung. Aber auch das sieht in der Realität anders aus, denn nicht jede Aufgabe lässt sich in zwei Einzelaufgaben zerlegen. Somit liegt in diesem Fall 50% der theoretischen Rechenleistung brach.
 
Zuletzt bearbeitet:
Eine x86 CPU kann einen riesigen Haufen an unterschiedlichsten Instruktionen ausführen: https://en.wikipedia.org/wiki/X86_instruction_listings
Und je nach Instruktion und Umsetzung braucht eine CPU unterschiedliche viele Takte um eine Instruktion auszuführen.

Fiktives Beispiel:
CPU Architektur A1 braucht 4 Takte um Instruktion I1 auszuführen.
CPU Architektur A2 braucht nur 3 Takte für dieselbe Instruktion.
Und für Instruktion I2 braucht CPU Architektur A1 7 Takte, und A2 braucht 10 Takte.

Aber moderne CPUs machen nicht "halt" während eine Instruktion ausgeführt wird, sondern können (je nach Kombination von aufeinanderfolgenden Instruktion und deren Abhängigkeiten untereinander) auch Dinge parallel ausführen bzw. Pipelining verwenden. Dazu kommen dann noch Techniken wie die Sprungvorhersage. Die CPU kann auch Instruktionen umsortieren, um dadurch mehr Instruktionen parallel abzuarbeiten. Das alles dient dazu, um möglichst alle Recheneinheiten der CPU gleichzeitig auszulasten - und dadurch natürlich schneller zum Ergebnis zu kommen. Und je nach CPU Architektur gelingt das mal besser oder mal schlechter.

Ein einzelner moderner CPU Kern kann also nicht nur eine Berechnung ausführen, sondern mehrere Berechnungen gleichzeitig.

Es hängt also von vielen unterschiedlichen Faktoren ab, wie viele Instruktionen pro Sekunde oder pro Takt ausgeführt werden können.
 
Zuletzt bearbeitet:
Zurück
Oben