Andreas Korthaus: Vergleich PowerPC vs. x86

Hallo!

Ich suche jetzt schon ne ganze Zeit nach Informationen zu dem Thema. Ich würde halt gerne Wissen wie sich ein PowerPC-System voneiunem x86 System unterscheidet, und was das für Konsequenzen für verwendete Software... hat. Wie unterscheidet sich die Performance, der Preis, der Aufbau... kann man sich das auch zusammenstellen wie einen "normalen" PC... aber alles was ich finde sind Internetseiten meist von IBM über Ihre Server mit PowerPC. Da sind zwar auch Performance-Daten, aber das sagt mir alles nichts, dazu kenne ich mich zu wenig aus.
Mich interessiert halt wenn man sich einen neuen Server aufbaut, ob man dann einen High-End PC mit dual Athlon MP, 4GB DDRRAM, SCSI nehmen sollte, oder was preislich vergleichbares als PowerPC.
Das einzige was ich hier dazu gelesen habe steht in http://aktuell.de.selfhtml.org/artikel/server/self/hardware.htm, das Ihr anstelle eines x86 für etwa denselben Preis einen RS/6000 hättet bekommen können. RS/6000 ist doch ein fertiger Server von IBM, oder?
Bezüglich des "SELF-Servers" gab es angeblich schon mal eine Diskussion um die passende Hardware, kann man die noch lesen? Ich finde sie zumindest nicht :-(

Außerdem haben die PowerPCs viel niedriger Daten bzgl. Taktfrequenz und Ram, aber sind anscheinend trotzdem schneller, das verstehe ich nicht. Oder ändert sich das vielleicht auch wenn AMD nächgtes Jahr mit dem Opteron rauskommt, also dann auch x86 mit 64 bit?

Und nochwas, soweit ich weiß unterstüzuen aktuelle OS(Windows, Linux) und andere Software bisher keine 64-Bit Prozessoren. Und auch der Dualprozessorbetrieb ist ja so eine Sache, das unterstützden ja auch nicht viele Programme. Wie ist das bei Linux, MySQL, Apache, Tomcat, PHP und PERL?

Mir würde es viel bringen wenn mir jemand den ein oder anderen interessanten Link zum lesen posten könnte, den ein normalsterblicher auch verstehen kann ;-)

Viele Grüße
Andreas

  1. Moin!

    Außerdem haben die PowerPCs viel niedriger Daten bzgl. Taktfrequenz und Ram, aber sind anscheinend trotzdem schneller, das verstehe ich nicht. Oder ändert sich das vielleicht auch wenn AMD nächgtes Jahr mit dem Opteron rauskommt, also dann auch x86 mit 64 bit?

    Taktfrequenz ist nicht alles. Es kommt auch darauf an, wieviele Takte vergehen, bis der Prozessor eine Aufgabe erledigt hat.

    Mal angenommen, der x86 benötigt durchschnittlich doppelt soviele Takte, um eine Aufgabe zu erledigen, wie der PowerPC - dann muss der PowerPC-Prozessor nur mit der halben Taktfrequenz laufen, um gleich schnell zu sein.

    Da der PowerPC-Prozessor IIRC dem RISC-Ansatz folgt, d.h. er kennt nur wenige, grundlegende Assemblerbefehle, führt diese aber alle in ganz wenigen Prozessortakten aus, ist allein deswegen schon ein technischer Unterschied (und eine Nichtvergleichbarkeit) gegenüber dem x86 gegeben, der dem CISC-Ansatz folgt, was bedeutet, dass er für alle möglichen Fälle einen speziellen Assemblerbefehl kennt - aber wahnsinnig viele Takte benötigt, um einen einzigen Befehl auszuführen.

    Um dir einen (wie immer hinkenden) Vergleich zu geben: Der 6510-Prozessor des C64 ist ebenfalls RISC-artig und benötigt zur Ausführung eines Assemblerbefehls längstenfalls 5 Takte, meist aber nur zwei bis drei. Hingegen benötigt der 8086-Prozessor zur Ausführung eines seiner vielen Befehle durchaus 10, 20 oder 30 Takte (sofern ich die entsprechend Tabelle aus einem uralten TurboPascal-Buch noch korrekt erinnere). Allerdings kennt dieser Prozessor zum Beispiel Kopierbefehle, um ein Byte von einem Speicherplatz direkt in einen anderen zu kopieren - der C64-Prozessor muß dazu zwei Befehle ausführen und ein Prozessorregister frei haben (wenn er das nicht hat, kann er das Register auf dem Stack zwischenspeichern, was inkl. Wiederherstellung zwei weitere Befehle kostet - in der Regel ist das Programm aber entsprechend optimiert, so dass sowas nicht nötig ist). Also stehen zwei Befehle mit schlimmstenfalls 10 Takten einem Befehl mit vielleicht 20 Takten gegenüber.

    Und nochwas, soweit ich weiß unterstüzuen aktuelle OS(Windows, Linux) und andere Software bisher keine 64-Bit Prozessoren. Und auch der Dualprozessorbetrieb ist ja so eine Sache, das unterstützden ja auch nicht viele Programme. Wie ist das bei Linux, MySQL, Apache, Tomcat, PHP und PERL?

    Die eigentlichen Programme müssen Multi-CPU-Betrieb auch gar nicht unterstützen - aber das Betriebssystem muß es tun. Dann gewinnt man in jedem Falle dann, wenn zwei oder mehr Programme gleichzeitig ausgeführt werden, oder zwei voneinander unabhängige Prozessinstanzen ausgeführt werden - die verteilt das Betriebssystem dann nämlich ohne weiteres Zutun auf die vorhandenen Prozessoren.

    Man kann auch ein einzelnes Programm durch entsprechende Programmierung dazu bringen, auf zwei Prozessoren gleichzeitig zu laufen. Bei großen Linux-Programmen, die du selbst kompilierst, dürften entsprechende Optimierungen automatisch wirksam werden. Bei Windows-Programmen stehst du wahrscheinlich dumm da und mußt darauf vertrauen, dass der Hersteller entsprechend vorausgeplant hat. In der Regel behindert die Ausrichtung am Multi-CPU-Betrieb den Single-CPU-Betrieb eines Programms nicht nennenswert.

    - Sven Rautenberg

    1. Hallo,

      Da der PowerPC-Prozessor IIRC dem RISC-Ansatz folgt, d.h. er kennt nur wenige, grundlegende Assemblerbefehle, führt diese aber alle in ganz wenigen Prozessortakten aus, ist allein deswegen schon ein technischer Unterschied (und eine Nichtvergleichbarkeit) gegenüber dem x86 gegeben, der dem CISC-Ansatz folgt, was bedeutet, dass er für alle möglichen Fälle einen speziellen Assemblerbefehl kennt - aber wahnsinnig viele Takte benötigt, um einen einzigen Befehl auszuführen.

      Falsch. Die modernen x86 (teilweise sogar schon ab i486) sind nicht mehr reine CISC-CPU's sondern haben durchaus auch RISC-Elemente. Ab Pentium verstärkt.
      Und ja klar. Ein einfacher RISC-Befehl braucht weniger Taktzyklen als ein CISC-Befehl. Dafür kann der CISC-Befehl ja auch mehr und um ihn nachzubilden brauchst Du mehrere RISC-Befehle das den Geschwindigkeitsvorteil wieder aufhebt.
      Was RISC vorallem für Vorteile hat ist dadurch das Du einfache Befehle hast sind auch die benötigten Strukturen weniger komplex. Das heißt die Chips werden einfacher und damit auch billiger und besser zu optimieren. Insofern kann dann letzlich doch ein Geschwindigkeitsvorteil über bleiben. Aber der ist bei weitem nicht so groß wie man glaubt. Grundsätzlich RISC als schneller einzustufen als CISC halte ich jedenfalls für gewagt.

      Und nochwas, soweit ich weiß unterstüzuen aktuelle OS(Windows, Linux) und andere Software bisher keine 64-Bit Prozessoren.

      Das Sparc-Linux läuft aber auf einer 64Bit CPU. was nu?

      Man kann auch ein einzelnes Programm durch entsprechende Programmierung dazu bringen, auf zwei Prozessoren gleichzeitig zu laufen. Bei großen Linux-Programmen, die du selbst kompilierst, dürften entsprechende Optimierungen automatisch wirksam werden.

      Nicht zwangsläufig. Fakt ist (egal welches Betriebssystem) einzelne Programme die davon profitieren wollen, müssen so programmiert sein (Threads verwenden oder sonstiges was sich vom Betriebssystem gut auf mehrere Prozessoren verteilen läßt).

      Gruss
         MichaelB

      1. Tach auch,

        Und nochwas, soweit ich weiß unterstüzuen aktuelle OS(Windows, Linux) und andere Software bisher keine 64-Bit Prozessoren.
        Das Sparc-Linux läuft aber auf einer 64Bit CPU. was nu?

        Suse-Linux auch: http://www.suse.de/de/company/press/press_releases/archive01/itanium.html

        Und das schon seit einiger Zeit, sieh' Dir mal das Datum an.

        Gruss,
        Armin

    2. Hallo,

      Taktfrequenz ist nicht alles.....

      Ja, wobei ich jetzt nicht einmal die unterschiedlichen Prozessorarchitekturen im Auge habe, das hast DU ja schon wunderbar erklärt.

      Neben dem Prozessor werkeln noch andere Komponenten im Kastel. Und wenn die nichts weiterbringen, dann kannst Du einen 170 THz-Prozessor haben, und es wird nicht schneller werden. Der Proozessor verbringt dann halt mehr Zeit damit, zu warten bis irgendwas für ihn zu tun ist.

      Der gesamte Datendurchsatz in dne einzelnen Subbsystemen, das Interruptkonzept, usw. sind ebenso wichtige Faktoren, wie die Prozessorleistung. Und hier hat die PC-Architektur imho einige gravierende Schwachstellen. Allein schon die starre Interruptzuordnung bringt es mit sich, daß der PC nicht wirklich für etwas anderes als Schreibmashcinenersatz brauhcbar ist.[1]

      Naja, das wollte ich nur mal los werden:-)

      Grüße
        Klaus

      [1] Zugegeben etwas spitz formuliert.

    3. Bei großen Linux-Programmen, die du selbst kompilierst, dürften entsprechende Optimierungen automatisch wirksam werden. Bei Windows-Programmen stehst du wahrscheinlich dumm da und mußt darauf vertrauen, dass der Hersteller entsprechend vorausgeplant hat. In der Regel behindert die Ausrichtung am Multi-CPU-Betrieb den Single-CPU-Betrieb eines Programms nicht nennenswert.

      <img src="/images/13.gif" width=468 height=60 border=0 alt="Don't feed the trolls">