VIA-Chipsätze bremsen PCI-Steckkarten aus

Hilfe per PCI-Latency-Patch

Nicht VIA, sondern der Programmierer George Breese von Networking Resources aus New York hat einen Patch für VIA-Chipsätze entwickelt. Er hilft dem langsamen VIA-PCI-Bus zumindest etwas auf die Sprünge.

Die PCI-Latency gibt die Anzahl der Taktzyklen an, für die ein PCI-Busmaster-Device den Bus für sich beanspruchen darf, bevor er wieder freigegeben wird. Diese Mindestanzahl von Takten soll verhindern, dass die PCI-Performance durch zu häufiges Abbrechen der Burst-Phasen stark sinkt. Gleichzeitig verhindert der Latency-Timer aber auch die alleinige Inanspruchnahme des PCI-Busses von einem Device. Nach Ablauf der PCI-Latency während einer Burst-Phase kann jedes andere PCI-Device den Bus anfordern. Der Burst wird dann sofort abgebrochen.

Der PCI-Latency-Patch mit der Version 0.19 "optimiert" nun unter anderem die folgenden Einstellungen durch Setzen von Registern in der Northbridge:

  • Ausschalten der Optionen "PCI Delay Transaction" und "PCI Master Read Caching" (Register 70, Bit 1 und 2).

  • Der Arbitration-Timer des PCI-Controllers wird auf 96 Takte eingestellt. Typische BIOS-Voreinstellungen sind 32 Takte. Diese Einstellung soll den IDE-Bug in VIAs 686B Southbridge verhindern (Register 75, Bit 0 bis 2 oder 0 bis 3).

  • Der Latency-Timer von VIAs PCI-Controller wird auf Null gesetzt. Der Timer garantiert sonst der CPU eine bestimmte Zahl von Taktzyklen, wenn der PCI-Bus angesprochen wird (Register 0D).

  • Ausschluss der CPU von der PCI-Priority-Rotation. Normalerweise wird dem Prozessor der Zugriff auf den PCI-Bus garantiert, nachdem ein bis drei andere Devices Zugriff auf den Bus hatten (Register 76, Bit 4 und 5).

Wir haben den Patch exemplarisch mit dem Promise Ultra133 TX2 und einigen Mainboards getestet. Nach Installieren des Patches konnten wir bei dem Ultra-ATA/133-PCI-Controller auch höhere Burst-Transferraten messen:

Burst-Transferraten

Chipsatz

ohne Latency-Patch

mit Latency-Patch

Messung mit Promise Ultra133 TX2 und Maxtor DiamondMax D740X

VIA MVP3

63,5 MByte/s

84,1 MByte/s

VIA KT133A

78,2 MByte/s

93,4 MByte/s

VIA P4X266A

90,1 MByte/s

100,9 MByte/s

Die Burst-Raten reichen zwar immer noch nicht an die Werte der Intel-Chipsätze heran, sind aber um bis zu 32 Prozent höher als ohne Patch.

Bitte beachten Sie: Es handelt sich hier um keinen offiziellen Patch. Die Verwendung des Patches erfolgt auf eigene Gefahr ist. Ob und inwiefern die Stabilität des PCI-Busses durch die längeren Burstzyklen beeinflusst wird, konnten wir bei unseren Tests nicht verifizieren. Abstürze oder Inkompatibilitäten konnten wir jedoch nicht feststellen. Auf Grund der massiven Modifikationen durch den Patch können wir dies jedoch nicht ausschließen.

Die Überprüfung des PCI-Timings mit dem Logic-Analyzer zeigt nun 32 Datenblöcke lange Burst-Phasen auf dem PCI-Bus. Erst dann wird der Bus wieder freigegeben. Ohne Patch erlaubte der VIA-Chipsatz nur 24 zusammenhängende Datenblöcke. Durch die längeren Burst-Phasen ist die höhere PCI-Performance erklärbar.

Von dem Latency-Patch können auch Audio-Anwendungen profitieren. In Praxisfällen verschwanden beispielweise nach der Installation des Patches Aussetzer beim Einsatz von Software-Samplern mit professionellen DSP-Karten. Zum Teil reichte vorher schon das Anspielen eines einzigen Tons, der beim Aushalten der Note immer wieder unterbrochen wurde. Diese Effekte verschwanden mit dem Patch. Sie sind Hinweise auf Unterbrechungen während der Datenübertragung auf dem PCI-Bus.