[linux-l] Performancegewinn bei Nutzung von Debian AMD64

olafBuddenhagen at gmx.net olafBuddenhagen at gmx.net
Do Mär 2 02:17:09 CET 2006


Hallo,

On Tue, Feb 28, 2006 at 11:59:39PM +0100, Ihno Krumreich wrote:

> Bei AMD64 (EM64T) wurde nicht nur die Registerbreite aufgebort,
> sondern auch die Anzahl der Register (sie wurde verdoppelt). Damit
> koennen koennen mehr Variablen in Registern gehalten werden und
> muessen nicht in den Speicher und wieder zurueck transportiert werden.
> Aus diesem Grund ist der AMD64 schneller als ein 32Bit Prozessor.

Auch das darf man nicht überbewerten. Bei Prozessoren mit Out-of-Order
Execution -- bei Intel sind das alle x86 ab Pentium Pro -- findet eh ein
Register Renaming statt, d.h. die interne Registerzahl ist wesentlich
höher, und die virtuellen Register des Befehlssatzes werden darauf
abgebildet. Viele Situationen, die bei älteren Prozessoren aufgrund von
übermäßiger Nutzung der beschränkten Registerzahl zu Engpässen geführt
haben, spielen keine Rolle mehr.

Auch das Schieben von Zwischenvariablen in den Speicher ist selten
kritisch: Der Zugriff auf den L1-Cache erfolgt extrem schnell, und kann
durch Pipelining komplett versteckt werden -- die Load/Store-Einheiten
sind meist eh nicht ausgelastet. Klar gibt es Fälle, wo diese Zugriffe
mit "echten" konkurrieren; diese dürften aber eher die Ausnahme als die
Regel sein.

Hinzu kommt, dass Register bei einer Taskumschaltung oft geschpeichert
werden müssen, d.h. in gewissen Situationen verursachen mehr Register
sogar noch etwas zusätzlichen Overhead.

-Olaf-



Mehr Informationen über die Mailingliste linux-l