Seit AMD eigene Prozessor-Architekturen entwickelt - also seit dem AMD K5 - veröffentlichen die Texaner auch mehr oder minder ausführliche Software Optimization Guides, die den Programmierern und Compiler-Entwicklern entscheidende Hinweise geben sollen, welche Codefolge für die jeweilige CPU-Architektur optimal ist und welche besser zu vermeiden sind. Dabei kann es schon auch mal zu Zielkonflikten kommen. Denken wir nur zurück an den AMD K6, wo AMD empfohlen hatte bei Schleifen den LOOP-Befehl zu verwenden, da dieser beim K6 in Hardware implementiert war. Beim Nachfolger K7 dagegen sollte der LOOP-Befehl dann tunlichst vermieden und stattdessen DEC/JNZ verwendet werden, da LOOP auf dem K7 plötzlich satte 8 Taktzyklen zur Ausführung beanspruchte, während der K6 LOOP im Idealfall in nur einem Takt durchprügelte.
Egal. Eines sind die Software Optimization Guides in jedem Fall: interessante Einblicke in die Besonderheiten der Architektur eines Prozessors. Vergangene Woche nun hat AMD den Guide für die kommenden K10-Prozessoren veröffentlicht, die beginnend mit dem neuen Opteron "Barcelona" und die kommenden Phenom Prozessoren eingeführt werden (wir berichteten). Nun ist der K10 keine wirklich neue Architektur wie es etwa der Pentium 4 bei Einführung war, sondern eher eine stark verbesserte K8-Architektur, die ihrerseits im Kern wiederum eine stark erweiterte K7-Architektur darstellt. Demnach dürfte es einem K8-optimierten Code beim Einsatz auf einem K10-System nicht ähnlich ergehen, wie einem K6-Code auf einem K7-System wie oben beschrieben. Dennoch haben sich einige Veränderungen ergeben, die AMD offen in den Guides beschreibt und für versierte Leser hochinteressant sind. Beispiel:
A.10Translation-Lookaside Buffer A translation-lookaside buffer (TLB) holds the most-recently-used page mapping information. It assists and accelerates the translation of virtual addresses to physical addresses. The AMD Athlon 64 and AMD Opteron processors utilize a two-level TLB structure. A.10.1L1 Instruction TLB Specifications The AMD Family 10h processor contains a fully-associative L1 instruction TLB with 32 4-Kbyte page entries and 16 2-Mbyte page entries. 4-Mbyte pages require two 2-Mbyte entries; thus, the number of entries available for 4-Mbyte pages is one half the number of 2-Mbyte page entries. A.10.2L1 Data TLB Specifications The AMD Family 10h processor contains a fully-associative L1 data TLB with 48 entries for 4-Kbyte and 2-Mbyte pages. Support for 1-Gbyte pages has also been added. 4-Mbyte pages require two 2-Mbyte entries; thus, the number of entries available for 4-Mbyte pages is one half the number of 2-Mbyte page entries.
Der komplette Guide kann hier als PDF-Datei heruntergeladen und studiert werden. Danke jensibensi für den Hinweis
Diesen Artikel bookmarken oder senden an ...
