PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gibt es eine Grenze für die pro Megaherz Leistung eines X86 Prozessors ?


Herr Doktor Klöbner
2007-08-12, 23:08:31
Hallo,

gibt es eigentlich eine nicht überschreitbare Grenze für die Leistung eines Prozessors, konkret eines X86 Prozesssorkerns( ich meine also die Leistung pro Kern ) bei einer gegebenen Taktfrequenz? Klar ist, dass hier wie so oft das Gesetz des fallenden Ertrags gilt, also nicht die doppelte Leistung bei doppelter Tansistorenzahl, gibt es aber eine Grenze der man sich auch bei immer grösseren Aufwand immer langsamer nähert ?

JTHawK
2007-08-13, 10:00:13
Ja die gibt es.

vielleicht schaust du dir mal das an:

http://de.wikipedia.org/wiki/Mooresches_Gesetz

Gast
2007-08-13, 10:53:49
Klar ist, dass hier wie so oft das Gesetz des fallenden Ertrags gilt [...]



Wenn, dann handelt es sich um das Gesetz des fallenden Grenzertrags! Siehe auch hier: http://de.wikipedia.org/wiki/Ertragsgesetz

Stone2001
2007-08-13, 11:06:37
Ja die gibt es.

vielleicht schaust du dir mal das an:

http://de.wikipedia.org/wiki/Mooresches_Gesetz
Das Mooresche Gesetz gesagt absolut nichts über die Leistungsfähigkeit eines Mikroprozessors, schon gar nicht über dessen obere Schranke.
Es besagt lediglich, dass sich die Anzahl der Transistoren auf einem Chip alle 18 Monate verdoppelt.

Ich persönlich bin der Meinung, dass es eine obere Schranke aus wirtschaftlichen Gründen geben wird. Ob es aber eine aus technischer Sicht gibt, ... da wäre ich mir nicht so sicher.

Zool
2007-08-13, 13:23:24
Das Mooresche Gesetz gesagt absolut nichts über die Leistungsfähigkeit eines Mikroprozessors, schon gar nicht über dessen obere Schranke.
Es besagt lediglich, dass sich die Anzahl der Transistoren auf einem Chip alle 18 Monate verdoppelt.

Ich persönlich bin der Meinung, dass es eine obere Schranke aus wirtschaftlichen Gründen geben wird. Ob es aber eine aus technischer Sicht gibt, ... da wäre ich mir nicht so sicher.

Full Ack!

Mit besserer Branchprediction, mehr parallelen Pipelines (also internes Multicore) kann man die Leistung/Takt hochschrauben. Aber irgendwann wird es zu teuer. Das Mooresche Gesetz hat damit nichts zu tun. Höchstens dass irgendwann die vielen nötigen Transistoren nicht mehr auf die üblichen 100mm^2 passen.

Gast
2007-08-13, 13:34:56
Es gibt derzeit keine bekannte Grenze! Warum sollte es auch, durch mehr Recheneinheiten, anderen Materialien, kleineren Strukturen, besserer Kühlung etc. lässt sich noch sehr viel machen.

Das "Mooresches Gesetz" ist außerdem nichts weiter als eine (nichtssagende) Regel, die sich auf die bisherige Situation bezieht.
Es ist weder geltendes Gesetz noch irgendeine andere Aussage, die etwas mit der Realität gemein hat.

BlackBirdSR
2007-08-13, 14:01:52
Hallo,

gibt es eigentlich eine nicht überschreitbare Grenze für die Leistung eines Prozessors, konkret eines X86 Prozesssorkerns( ich meine also die Leistung pro Kern ) bei einer gegebenen Taktfrequenz? Klar ist, dass hier wie so oft das Gesetz des fallenden Ertrags gilt, also nicht die doppelte Leistung bei doppelter Tansistorenzahl, gibt es aber eine Grenze der man sich auch bei immer grösseren Aufwand immer langsamer nähert ?

In diesem Fall sprichst du ja von der Anzahl an Befehlen, die pro Takt bearbeitet werden können.
Da gibt es eine definitive Grenze für CPUs.

Im Falle eines K7/8/10 sind das 3 MacroOps/Takt, oder 3 x86 Befehle.
Im Falle des P3/P4/PM ebenfalls 3 x86 Befehle, 3µops
Der Core2 kann 5-x86 Befehle oder 4µOps/Takt.

Jeweils vorrausgesetzt, dass die x86 Befehle für 32Bit Umgebungen gelten, und sie sich in nicht mehr als die jeweiligen µops/Mops zerlegen lassen.

Im Allgemeinen sind die CPUs theoretisch in der Lage weit mehr Befehle gleichzeitig abzuarbeiten. AMD spricht gerne von 9, der Pentium3 kann schon 5, und Core2 gleich noch mehr. Das wirkliche theoretische Limit liegt allerdings bei der Anzahl an befehlen, welche pro Takt aus der Pipeline geworfen werden können und als Ergebnis zur Verfügung stehen. Und das sind eben nur 3, bzw 4 beim Core2.
Das Praktische Limit bestimmt dann die jeweilige Software und der Grad an "Intelligenz" der CPU. Hier liegt momentan das größte Problem und drückt die CPUs bis auf die wirklich seltensten Fälle auf ca 1 Befehl pro Takt herunter.

Coda
2007-08-13, 14:09:30
Es gibt auch eine theoretische Grenze die sich aber nur aus den Abhängigkeiten innerhalb des Programmcodes ergibt.

Wenn z.B. wirklich 10.000 unabhängige Adds hintereinander im Code vorkommen könnten diese alle parallel ausgeführt werden.

mickii
2007-08-13, 14:26:38
nein, es gibt keine grenze, aber der aufwand steigt exponential an. manche cpus z.b. itanium fuehren spekulativ mehrere befehlsstraenge aus um auch voneinander abhaengige operationen ausfuehren zu koennen. die operation mit der falschen annahme wird dann verworfen. so kann man auch immer im code, wenn man weit genug nach vorne sieht bzw sehen kann, unabhaengige dinge finden die ausgefuehrt werden koennen. aber wie gesagt, der aufwand wird enorm. beim itanium ist das schon riesig. am ende bekommt man ne enorme pro MHz leistung, bei nur einem MHz ;)

Trap
2007-08-13, 14:39:46
Ohne Einschränkungen an das Berechnungsmodell kann man kann theoretisch jedes terminierende Programm in einem Takt abarbeiten.

Die Aussage hilft einem aber nichts ;)

Trap
2007-08-13, 14:43:42
Es gibt auch eine theoretische Grenze die sich aber nur aus den Abhängigkeiten innerhalb des Programmcodes ergibt.
Die gilt aber nur wenn man davon ausgeht, dass keine Zustandsänderungen innerhalb eines Takts stattfinden können.

Coda
2007-08-13, 14:59:03
Was anderes kann man aber kaum bauen.