500 Mhz = 500 MIPs ?

Hallo zusammen,

wie ist das denn nun genau bei einer Beispiel 500 Mhz CPU ?
Kann diese 500 Millionen Instruktionen in der Sekunde ausführen, oder sind es weniger, weil es dafür eine MIPS-Zahl gibt?
MIPS (Mill. Instr. per second) wo steht die, oder wie ist das Verhältniss zur Mhz-Zahl ?
Gruß+Danke
Carsten

Das kommt ganz auf die CPU an, in der
Regel lautet die Antwort nein.
Zum einen benoetigtder Prozessor fuer die Ausfuehrung einer Instruktion in der Regel mehr als einen Taktzyklus. Andererseits haben moderne Prozessoren mehrere Rechenwerke (oder neudeutsch Execution Units) die parallel arbeiten koennen. Wie sinnvoll dies ist hanegt von dem gerade abzuarbeitenden Programm ab.
Um in der Praxis der „scheinbaren“ Ausfuehrung von einer Instruktion in einem Taktzyklus nahezukommen wird das sogenannte Pipelining eingesetzt. Dabei durchlaufen die Befehle die einzelnen Ausfuehrungseinheiten nacheinander, beispielsweise folgendermassen:

1.) Werte laden
2.) Operation ausfuehren
3.) Werte zurueckschreiben

wobei dann in ein und demselben Taktzyklus die Werte eines Befehls zurueckgeschrieben werden waherend fuer einen weiteren Befehl die eigentliche Operation ausgefuehrt und fuer einen dritten die Werte bereits in die Prozessorregister geladen werden.
Bei der Annahme von durchschnittlich 3 Taktzyklen pro Befehl und einer Pipelinelaenge von 3 ergbist sich somit theoretisch die „scheinbare“ Ausfuehrung von 1 Befehl pro Takt. In der Prxis scheitert es daran, dass Programme selten linear ablaufen. Bei einem Sprung muass die Pipeline zunaechst geleehrt und wieder mit den dann aktuellen Befehlen gefuellt werden. Je laenger die Pipeline nun ist umso laenger dauert es, ehe weitergearbeitet werden kann (Sog. Latenzzeit). Allerdings koennen auch mehr Befehlsteile gleichzeitig ausgefuehrt werden, wenn die Pipeline laenger ist.

Ich hoffe, das reicht erstmal als Erklaerung.

Joern

Beim PII und PIII arbeitet das Pipelining aber sehr effektiv, so bringt es ein Pentium II 400 auf 1000-1100 MIPS. Die drei Befehle pro Takt schafft es also nicht ganz, ist aber nahe dran. Beim Pentium I waren es 1,5-2 Befehle pro Takt.