Tückisches Protokoll

Bei Grafikkarten mit HyperMemory- und TurboCache-Funktionen zeigt sich eine ausgeprägte Abhängigkeit der 3D-Leistung von der Konfiguration des PCI-Express-Interface im Chipsatz des Mainboards. Eine BIOS-Einstellung bremst den Datentransport zur Grafikkarte empfindlich.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Lesezeit: 5 Min.
Von
  • Manfred Bertuch

Die PCI-Express-Ports auf modernen Mainboards sind für ziemlich flotte Datentransfers ausgelegt. Jede der sechzehn Lanes eines Grafiksteckplatzes arbeitet mit einer Datenrate von 2,5 GBit/s. Den zu übertragenden Datenpaketen hängt der PCIe-Transmitter deshalb eine Prüfsumme an, über die der Empfänger erkennen kann, ob er das Paket fehlerfrei empfangen hat. Grundsätzlich muss er sowohl fehlerfrei empfangene Pakete als auch fehlerhafte Pakete quittieren und schickt dazu eine ACK- beziehungsweise NAK-Datenstruktur zurück an den Sender.

Parallel zur Übertragung schiebt der PCI-Express-Treiber die anstehenden Pakete in einen Stack von Replay-Buffern. Erhält der Sender eine ACK-Struktur für ein bestimmtes Datenpaket, kann er dieses Paket und alle früher gesendeten, noch nicht quittierten aus seinem Buffer löschen. Bei einer NAK-Rückmeldung schickt der Sender das fehlerhafte und alle folgenden Pakete noch einmal ab. Auf diese Weise ist es nicht nötig, für jedes einzelne empfangene Datenpaket eine ACK- oder NAK-Struktur zu senden.

Bei der Übertragung beschädigte Pakete gehen bis zu dreimal auf die Reise. Ist das Paket auch dann noch nicht fehlerfrei angekommen, sieht das Protokoll eine Link-Retrain-Sequenz vor, bei der Sender und Empfänger sich neu synchronisieren sowie einige elektrische Parameter wie die Link-Breite bestimmen oder die durch unterschiedliche Leitungslängen verursachten Laufzeitunterschiede kompensieren.

Diese Link-Retrain-Funktion ist aber im BIOS standardmäßig abgeschaltet, da die Chipsätze inzwischen so ausgereift sind, dass ein einmaliges Link-Training beim Start des Rechners ausreicht. Steht die Funktion auf „GFX Card“, verkleinert der Chipsatz die Tiefe des Buffer-Stacks. Zusätzlich übergeht er den so genannten Scrambler und vermeidet einen Link-Reset in kritischen Zuständen. Mit dieser Einstellung wollte Intel wahrscheinlich die Anforderungen an PCI-Express-Grafikkarten verringern, da es anfänglich Chips gab, die Probleme mit dem PCIe-Protokoll hatten. Der im Normalzustand eingeschaltete Scrambler sortiert die Bits des Datenstroms so um, dass die Stromaufnahme der PCIe-Links möglichst gering bleibt. Wird der Scrambler umgangen, steigt die Wahrscheinlichkeit von Übertragungsfehlern, die letztendlich die Transferleistung drosseln.

ACK-Protokoll: Erhält der PCIe-Transmitter ein ACK-Signal für Datenpaket (TLP) Nummer fünf, kann er dieses - und auch alle früheren - aus seinem Replay-Buffer löschen. Die Pakete sechs und sieben wandern gerade über den Link zum Receiver.

Nvidia sieht die Ursache für die geringere Leistung unter der BIOS-Einstellung „GFX-Card“ aber vor allem in der verringerten Tiefe des Buffer-Stacks. Der Buffer-Stack muss die Datenpakete auch deshalb speichern, weil er das ACK-Signal nicht für jedes Datenpaket erhält und wenn, dann auch noch mit einer durch die Übertragungszeiten verursachten Verzögerung. Bei einem verkleinerten Buffer-Stack besteht eine größere Gefahr, dass dieser zwischenzeitlich voll läuft, wenn er nicht ausreichend schnell ein ACK-Signal erhält. Der Sender ist dann bis zum Eintreffen des ACK-Signals blockiert, was die effektive Übertragungsrate reduziert.

Dass Nvidias TurboCache-Mechanismus auf den verkleinerten Buffer-Stack unter der im Test in c't 9/05, Seite 32 aktiven Einstellung „GFX Card“ stärker reagiert hat als ATIs HyperMemory, liegt anscheinend daran, dass das Timing des ACK-Signals im PCIe-Interface des Nvidia-Chips an einen kleinen Buffer schlechter angepasst ist und dadurch häufiger Wartezustände verursacht.

Gewöhnliche Grafikkarten mit ausreichend Speicher reagieren nur am Rand der Messgenauigkeit auf die Position „GFX Card“. Erst die HyperMemory- und TurboCache-Grafikkarten, die nicht nur einmal, sondern ständig im 3D-Betrieb Texturdaten aus dem Speicher des Rechners beziehen, sind auf den maximalen Durchsatz des PCIe-Interface angewiesen. Im Nachtest konnte vor allem Nvidias TurboCache-Karte mit abgeschaltetem Link-Retrain gegenüber dem Test in c't 9/05 kräftig zulegen. Sie liegt damit in fast allen Tests vor ATIs vergleichbarer HyperMemory-Karte. Bei Unreal Tournament 2004 und Doom 3 kann sie sogar eine Radeon X300 mit lokalen 128 MByte Speicher und 128-Bit-Datenbus abhängen. Nur bei Far Cry, dem Spiel mit dem intensivsten Einsatz von Pixel-Shader-Effekten, liegt Nvidia noch knapp hinter ATI.

Bei Spielen mit geringen Anforderungen wie in UT 2004 ist die Leistung beider Testkandidaten ausreichend. Half-Life 2 mit moderaten Einstellungen fordert beiden Karten schon die letzten Reserven ab. Bei Doom 3 und Far Cry liegen die Bildraten bereits bei reduzierten Grafikdetails im kritischen Bereich. Wer bei knappem Budget auch kommende Spiele mit noch befriedigender Qualität genießen möchte, greift besser zu einer Grafikkarte mit lokalen 128 MByte Speicher und 128-Bit-Bus, die derzeit nur wenige Euro mehr kostet. (law)