user2357 schrieb:
Hallo Leute,
mal eine Frage zu der stets und ständig verwendeten Bezeichnung IPC - wofür steht denn eurer Meinung nach das C? - gerade auf den letzten Seiten 13 und 14.
Bin eher interessierter Laie, was die Abgründe von Prozessorarchitektur angeht, aber mit
dieser Information (mittig, Tabelle beim zweiten Vorkommen von "Issue Width") an der Hand geht es doch um Instruktionen pro (Takt-)Zyklus. Instruktionen pro Takt, die je nach Möglichkeit parallel von den vorhandenen funktionalen Einheiten abgearbeitet werden können. …
Das
C der
IPC steht für
Cycle, daher (pro/je) Takt (-zyklus), das ist korrekt, ja.
Im Übrigen geht aus der Tabelle
nicht eindeutig hervor, ob es sich um die jeweilige
IPC oder etwa der deutlich gebräuchlicheren Einheit
FLOPS (
Floating Point Operations Per Second) handelt.
user2357 schrieb:
Die IPC ist also eher eine recht niedrige Ganzzahl, wie der Tabelle aus dem Link zu entnehmen ist. Hier sind an sich keine prozentualen Steigerungen möglich, da die IPC eine feststehende Kerngröße der Architektur darstellt. Hat der Kern nur zwei integer-Einheiten, lassen sich nur zwei integer-Instruktionen pro Takt abarbeiten.
Woran meiner Meinung nach eher gefeilt werden wird, ist die Minimierung der Leerzyklen, in denen die funktionalen Einheiten brachliegen, weil beispielsweise auf den Cache gewartet wird. Da wären wir dann wieder bei IPS, also Instructions Per Second, siehe #249 - da würde ich auch mit prozentualen Steigerungen mitgehen
Die IPC ist (nach Art) absolut und fix, ja.
Allerdings kann die Kennzahl mitunter
stark schwanken durch Verwendung unterschiedlicher, abzuarbeitende Befehlsarten, da die IPC lediglich angibt, wie viele gegebene Instruktionen
im Mittel je Taktzyklus verarbeitet werden können.
Bei synthetischen Instruktionen wie Befehlen mit geringer logischer Tiefe und algorithmischer Komplexität, welche geeignet sind, sehr kurz abgearbeitet zu werden, ergibt sich folgerichtig eine hohe IPC – wohingegen bei hoch-komplexen, langen Instruktionen eine deutlich geringe Kennzahl erreicht werden kann. Hier kann sogar der gegensätzliche Fall eintreten, daß es mehrere Takte benötigt, um die jeweilige einzelne Instruktion abarbeiten zu können. Dann spricht man vom reziproken Multiplikativ – umgangssprachlich schlicht als Kehrwert bezeichnet und genormt als (Clock-)
Cycles
per
Instruction oder auch C/I, kurz
CPI → Takt (-zyklen) je Instruktion.
xexex schrieb:
Nein!
Eine CPU benötigt für die meisten Operationen mehr als einen Takt, es kann also in den wenigsten Fällen eine Ganzzahl sein.
Mal auf Wikipedia verwiesen.
Daß kurze Instruktionen, welche vollständig in die jeweiligen Ausführungseinheiten passen und binnen eines einzelnen Taktes abgearbeitet werden können und somit zu einer erhöhten IPC führen, dürfte offenkundig und somit nur folgerichtig sein. Bei wahllosen oder gar häufig wechselnden Instruktionsarten kann die nominale Leistung stark abfallen, da durchaus ein leeren (→
flush) der Ausführungseinheiten notwendig sein kann, um zwischen den verschiedenen Instruktionstypen zu wechseln.
Selbst verschiedene Programmiersprachen wie der krasse Unterschied in der Komplexität zwischen Hochsprachen (bspw. C++) und hardwarenahen Sprachen (bspw. Fortran, Assembler) beeinflußt die Auslastung und Effizienz von Ausführungseinheiten (→
pipelining). Auch können das Taktverhälniss der jeweiligen einzelnen logischen Ausführungseinheiten
zueinander eine durchaus
erhebliche Rolle spielen und zu einer höheren Effizienz innerhalb eines gegebenen Taktfensters führen.
Wie man sieht, ist das Thema nicht annähernd trivial wie es scheint, deswegen wird die Leistung von Prozessoren meist in der eingangs erwähnten Einheit
FLOPS (
Floating Point Operations Per Second) oder
MIPS (
Million Instructions per Second) verglichen, also der Leistung von Instruktionen pro Taktzyklus einer fest definierten Art von Berechnungen (i.d.F
Gleitkommazahl, häufig auch
Fließkommazahl).
Krautmaster schrieb:
Smartcom5 überimmt die Auflösungsarbeit da sicher gern. Hat ja vorher schon bewiesen wie unglaublich viel ihm an der Richtigstellung hinsichtlich IPC / IPS liegt.
„Der Umstand, daß wir Feinde haben, beweist klar genug, daß wir Verdienste besitzen.“
— Carl Ludwig Börne, deutscher Journalist, Literatur- und Theaterkritiker, ‚Ueber Etwas, das mich betrifft.‘
HaZweiOh schrieb:
Er hatte aber auch Recht: IPC ist halt nicht Single Thread Leistung, sonst hieße es ja "Instructions per clock at the wall"
In diesem Sinne
Smartcom