> Was bleibt, sind unnötig lange Instruktionen (...).
x86 ist vergleichsweise kompakt wenn man es mal mit IA-64, SPARC, PPC
oder was weiß ich vergleicht. Einzig die Decoder sind sehr viel
aufwändiger zu designen.
> D.h. der Maschinencode ist länger, als er sein müsste
> (doppelt so lang vielleicht, wenn ich mal gefühlsmäßig
> schätzen müsste), womit dann der Befehlscache doppelt
> so schnell voll ist, wie er sein müsste.
Code-Größe hat eigentlich noch nie eine sonderlich
Performance-bestimmende Rolle gehabt; selbst SPEC2000 hat enorme
Hit-Raten im I-Cache wenn die ISA nicht so kompakt ist wie IA-32
(http://www.cs.wisc.edu/multifacet/misc/spec2000cache-data/).
> Ist natürlich nicht die große Katastrophe, die x86 mal war,
> schlägt sich aber wohl mit merklichen Einbußen nieder, wenn
> ein Anwender mal ziemlich viele Programme gleichzeitig aktiv
> hat (Audioplayer, Download, Rechtschreibprüfung, Betriebssystem...
> da kann's schon langsam eng werden, jedenfalls, bis sich die
> Cachegröße mal wieder verdoppelt hat).
Unter Performance-relevanten Bedingungen werden die Timeslices
weitgehend ausgenutzt (wenig I/O-Stalls) so dass letztlich das
Umladen der I-Caches kaum noch ins Gewicht fällt.
> D.h. die Probleme der eigentlich schlechteren Architektur
> werden mit Ingenieursstunden totgeworfen.
Davon merkt der Entwickler fast garnichts; es programmiert ja kaum
noch einer in Asm und wenn nur kleine Fragmente.
> Da muss man wohl vorsichtig sein. Die amd64 wird einfach
> nicht so viel optimiert, weil die Architektur (noch) nicht
> so verbreitet ist.
Das ist Unsinn. Die betreffenden Optimierungen finden durch den
Compiler statt und die sind sicher in der Lage aus dem größeren
Registersatz Vorteile zu schlagen; Register-Allokation war für einen
Compiler noch nie das große Problem.
> Andererseits lese ich in den einschlägigen Compiler-Newsgroups
> immer wieder, dass die x86-Architektur als "register-starved"
> bezeichnet wird (und zwar ohne dass sich Widerspruch regt). Soo
> universell scheinen die amd64-Register dann doch nicht zu sein.
In den Newsgroups hast Du es auch nicht mit Realisten, sondern mit
Idioten zu tun.
x86 ist vergleichsweise kompakt wenn man es mal mit IA-64, SPARC, PPC
oder was weiß ich vergleicht. Einzig die Decoder sind sehr viel
aufwändiger zu designen.
> D.h. der Maschinencode ist länger, als er sein müsste
> (doppelt so lang vielleicht, wenn ich mal gefühlsmäßig
> schätzen müsste), womit dann der Befehlscache doppelt
> so schnell voll ist, wie er sein müsste.
Code-Größe hat eigentlich noch nie eine sonderlich
Performance-bestimmende Rolle gehabt; selbst SPEC2000 hat enorme
Hit-Raten im I-Cache wenn die ISA nicht so kompakt ist wie IA-32
(http://www.cs.wisc.edu/multifacet/misc/spec2000cache-data/).
> Ist natürlich nicht die große Katastrophe, die x86 mal war,
> schlägt sich aber wohl mit merklichen Einbußen nieder, wenn
> ein Anwender mal ziemlich viele Programme gleichzeitig aktiv
> hat (Audioplayer, Download, Rechtschreibprüfung, Betriebssystem...
> da kann's schon langsam eng werden, jedenfalls, bis sich die
> Cachegröße mal wieder verdoppelt hat).
Unter Performance-relevanten Bedingungen werden die Timeslices
weitgehend ausgenutzt (wenig I/O-Stalls) so dass letztlich das
Umladen der I-Caches kaum noch ins Gewicht fällt.
> D.h. die Probleme der eigentlich schlechteren Architektur
> werden mit Ingenieursstunden totgeworfen.
Davon merkt der Entwickler fast garnichts; es programmiert ja kaum
noch einer in Asm und wenn nur kleine Fragmente.
> Da muss man wohl vorsichtig sein. Die amd64 wird einfach
> nicht so viel optimiert, weil die Architektur (noch) nicht
> so verbreitet ist.
Das ist Unsinn. Die betreffenden Optimierungen finden durch den
Compiler statt und die sind sicher in der Lage aus dem größeren
Registersatz Vorteile zu schlagen; Register-Allokation war für einen
Compiler noch nie das große Problem.
> Andererseits lese ich in den einschlägigen Compiler-Newsgroups
> immer wieder, dass die x86-Architektur als "register-starved"
> bezeichnet wird (und zwar ohne dass sich Widerspruch regt). Soo
> universell scheinen die amd64-Register dann doch nicht zu sein.
In den Newsgroups hast Du es auch nicht mit Realisten, sondern mit
Idioten zu tun.