Speicherzugriffe und Prefetches

Seite zurück Seite vor
16:30 - 09/10/2008 von Fedy Abi-Chahla

Die Speicherzugriffe der Core-Architektur unterlagen mehreren Einschränkungen in Bezug auf die Performance: der Prozessor wurde optimiert, um auf kohärente auf 64-Bytes begrenzte Speicheradressen zuzugreifen, die Größe einer Cachezeile. Nicht nur war der Zugriff auf nicht kohärente Daten nicht besonders leistungsstark, die einfache Ausführung einer Ladeanweisung oder einer nicht kohärenten Ordnungsanweisung war aufwändiger als die kohärente Version, und das unabhängig davon, wie die reale Kohärenz der Speicherdaten war. Der Grund dafür ist, dass diese Anweisungen auf der Ebene der Decoder mehrere µOps generierten, was die Übertragungsraten dieser Art von Anweisungen verminderte. Die Compiler vermieden also, diese Art von Anweisungen zu generieren, und ersetzten sie durch einige weniger aufwändige Anweisungen.

So wiesen die Speicherlesevorgänge, die zwischen zwei Cachezeilen saßen, eine Performance-Einbuße von ungefähr 12 Zyklen im Vergleich zu 10 für die Lesevorgänge im gleichen Fall auf. Die Intel-Ingenieure haben diese Zugriffe optimiert, um sie schneller zu machen: Zunächst einmal gibt es keine Nachteile mehr, verschiedene nicht kohärente Versionen der Lade-/Ordnungsanweisungen zu verwenden, wenn die Daten im Speicher kohärent sind. Außerdem hat Intel für den gegenteiligen Fall die Zugriffe optimiert, um die Beeinträchtigungen der Performance im Vergleich zur vorangegangenen Architektur zu verringern.

Effizientere Prefetcher

Bei seiner Conroe-Architektur war Intel besonders stolz auf seine Prefetcher-Funktionen. Zur Erinnerung: Der Prefetch ist ein Mechanismus, der darin besteht, die Zugriffsschemata zum Speicher zu beobachten und gemäß den Ergebnissen zu versuchen, die Daten, die erforderlich sein werden, mehrere Zyklen im Voraus zu bestimmen. Ziel ist es, sie in einen Cache zu bringen, wo sie für den Prozessor schneller verfügbar sind. Gleichzeitig wird versucht, die Verwendung der Bandbreite zu maximieren, indem diese genutzt wird, wenn der Prozessor sie gerade nicht braucht.

Diese Technik erzielte bei den meisten PC-Anwendungen bemerkenswerte Ergebnisse. In der Serverwelt hingegen war das Resultat häufig ein Leistungsabfall. Es gibt viele Gründe für diese Ineffizienz. Zunächst einmal sind die Speicherzugriffe von Serveranwendungen häufig schwieriger vorhersehbar: Speicherzugriffe auf eine Datenbank zum Beispiel sind nicht linear. Wenn auf Daten im Speicher zugegriffen wird, werden die folgenden Daten weniger häufig erforderlich sein, was die Effizienz der Prefetcher einschränkt. Aber das Hauptproblem besteht vor allem in der Speicherdurchlassbreite in den Multisockel-Konfigurationen. Wie bereits für diesen Fall gezeigt wurde, gab es einen Engpass zwischen den Prozessoren, aber darüber hinaus bedeuteten die Prefetcher auf dieser Ebene einen zusätzlichen Druck: Wenn ein Mikroprozessor nicht auf den Speicher zugriff, setzten sich die Prefetcher in Gang, um die Bandbreite, deren Verfügbarkeit sie voraussetzten, zu nutzen. Sie konnten nicht wissen, dass der andere Prozessor die Bandbreite zu diesem Zeitpunkt eventuell brauchen konnte! Die Prefetcher konnten also einem Prozessor Bandbreite abspenstig machen, die in dieser Art von Konfigurationen ohnehin schon Mangelware war. Um das Problem zu lösen, fiel Intel nichts Besseres ein, als die Prefetcher in solchen Situationen zu deaktivieren. Man braucht nicht zu erwähnen, dass das keine wirklich befriedigende Lösung war.

Intel behauptet, das Problem gelöst zu haben, aber gibt die Funktion seiner neuen Prefetch-Algorithmen nicht im Detail an. Man erfährt gerade eben, dass es in den Serverkonfigurationen nicht mehr notwendig ist, sie zu deaktivieren. Auf jeden Fall gilt: Selbst wenn Intel nichts verändert hat, sollte allein schon der Gewinn durch die neue Speicherorganisation und die größere Bandbreite, die daraus folgt, die negativen Auswirkungen der Prefetcher einschränken.

Anzeige
Kommentare zum Beitrag
FreXxX 09/10/2008 17:11
Ausblenden
-0+

Toller Artikel, sehr interessant!
Nun bin ich noch mehr gespannt, was die CPUs nun wirklich bringen!

Anonymer Nutzer 09/10/2008 19:39
Ausblenden
-1+

Wahrlich einer der besten Artikel der letzten Monate.
Schade nur dass der Nehalem so wenig L2-Cache bekommen wird.

Heroman 09/10/2008 22:00
Anzeigen
Anonymer Nutzer 09/10/2008 22:16
Ausblenden
-2+

Sehr informativ und verständlich geschrieben, sehr schön!

Anonymer Nutzer 10/10/2008 07:38
Ausblenden
-0+

Der Nehale baucht nicht soviel 2nd level cache, dieser wurde bei den alten Architekturen primär zum Verstecken der miesen Speicheranbindung verwendet. Wir hatten die Gelegenheit unsere eigene Software (Raytracer) auf einem Nehalem-System zu testen und wurden ohne Anpassung (kein SSE4.1 oder SSE4.2 mit Beschleunigung von Faktor 2.5-3 belohnt). Ich denke der Grossteil der Beschleunigung ist einfach durch den (mittlerweile auch für Intel :-) Memorycontroller on-chip zurückzuführen. Gut, SMT hilft natürlich auch mit gut 25%. Alles in allem ein Höllenteil und für AMD sehe ich ernsthafte Probleme am Horizont. Die K10 Architektur hat so wie es derzeit aussieht absolut nichts dagegen zu setzen.

Euer Arno

Shini 10/10/2008 08:05
Ausblenden
-0+

Sehr informativ und der Nehalem erscheint ja fast unschlagbar. Da müsste AMD ganz schön nachziehen um da mithalten zu können.
Durch den integrierten Memorycontroller wird aber Intel wieder mehr mit Abwärme zu kämpfen haben. Die TDPs sollen ja größenteils über 110 W liegen.

f1delity 10/10/2008 09:04
Ausblenden
-0+

Sehr schön wenn die CPUs bei Raytracing schneller sind, hoffe das die Entwicklung für RTGames verbessert.

Anonymer Nutzer 10/10/2008 09:21
Ausblenden
-6+


"Intel wird einige Zeit gebraucht haben, um AMD in diesem Punkt einzuholen, aber wie immer macht der Riese eben nur ganze Sachen."

Genau solche Sätze bringen euch immer wieder den Vorwurf ein, dass eure Berichterstattung gekauft ist. Vielleicht solltet ihr euren Lektor feuern.

f1delity 10/10/2008 09:55
Ausblenden
-0+

Stimmt aber teilweise, Intel hat einfach viel mehr Geldreserven um Eventualitäten schnell zu umschiffen, die können sich ja sogar noch Verzögerungen leisten und von der Anzahl der Mitarbeiter sind die auch größer wodurch die die Kräfte vielleicht. auch felxibler verteilen können.

Welche Probleme da dann später dank Speichercontroller noch auftreten werden wir ja sehen, aber bisher haben die ja noch keine gehypten Bugs wie der TLB-Bug bei AMD.

tonictrinker 10/10/2008 13:47
Ausblenden
-0+

@Webstar
So ein Unsinn. Sie haben nur gesagt, dass sie ihre Sache gut gemacht haben, und haben auch begründet wieso.
Ich finde es lächerlich, dauernd auf solche Sätze zu lauern und aus jeder Mücke einen Elefanten zu machen.

Anonymer Nutzer 10/10/2008 13:48
Ausblenden
-3+

Wenn alle Artikel zumindest auf diesem Niveau (kaum Rechtschreibfehler, fundierte Recherche, gutes Thema und verständliches Deutsch) wären, dann hätte tom's hardware seine frühere Qualität wieder erreicht.

Anonymer Nutzer 10/10/2008 14:04
Ausblenden
-1+

stimme pornseller voll zu ^^

Jolly91 10/10/2008 14:14
Ausblenden
--1+

OMG bald ist es aus mit AMD. (wen das so weitergeht.

suit 10/10/2008 16:28
Ausblenden
-1+

bald is es mit amd vorbei - das haben wir jetzt schon oft gehört ;)

f1delity 10/10/2008 20:00
Ausblenden
-1+

Die haben gerade ein paar Milliarden bekommen, so schnell werden wir die nicht los und das ist auch gut so.

Anonymer Nutzer 10/10/2008 21:10
Ausblenden
-0+

wow eine neue cpu


mal benchmarks abwarten - wenn nicht 2 mal so schnell wie der alte "pro core gerechnet" dann ist es eher unbrauchbar.

Anonymer Nutzer 10/10/2008 21:27
Ausblenden
-0+

Hey, alle wollen benchmarks? Kein Problem:
http://www.computerbase.de/news/ha [...] 0_293_ghz/

Keine Ahnung warum tomshardware diese Datein nicht im Artikel verarbeitet hat. Aber davon mal abgesehen, habt ihr den Artikel selbst geschrieben oder handelt es sich um "copy and paste"? Der Bericht ist richtig gut, sogar so gut, dass er zu den übrigen überhaupt nicht passt.

tux-job 11/10/2008 00:56
Ausblenden
-0+

@bernddasBrot: Böse Welt... wie der den QX9770 versägt, ouhauaha

Anonymer Nutzer 11/10/2008 10:03
Ausblenden
-0+

hehe... jep. Zudem wird er wohl nur ein fünftel kosten ;).

noooob 11/10/2008 15:57
Ausblenden
-0+

was meint ihr, sollte man noch abwarten bis nov./dez. für den kauf eines neuen rechners oder bei den "alten" prozessoren zuschlagen? vielleicht werden die "alten" dann billiger. bin sehr unschlüssig.


Kommentare auf dieser Seite geschlossen.
Google Anzeigen
Anzeige
Mehr aus dem Bereich
 Testberichte über Prozessoren
Alle Prozessoren Tests

Newsletters


  • Ihre Probleme und Fragen zu Computer-Technik
  • Abschicken

Partner