--->This page is also available in English.

Verzerrte Audiowiedergabe auf PCs mit VIA Chipsatz und nVidia Grafikkarte

Das Problem

Auf Rechnern mit VIA Chipsatz und nVidia (und einigen anderen) Grafikkarte wird die Audiowiedergabe oft stark verzerrt wenn gleichzeitig die Grafikkarte stark belastet wird, obwohl beides für sich alleine problemlos läuft. Oft bringen weder die BIOS-Einstellungen noch andere Treiber für Chipsatz, Soundkarte und Grafikchip eine Verbesserung des Problems.

Die Ursache

Der PCI-Bus wurde nicht gerade im Hinblick auf Geräte spezifiziert, die wie z.B. Soundkarten über längere Zeit ziemlich genau mit Daten beliefert werden müssen: Jedes PCI-Gerät verfügt über eine gewisse Mindestzeit, in der es einen Datenblock übertragen kann bevor es die Kontrolle wieder an andere Geräte abgeben muß. Diese Zeitspanne wird über den PCI Latency Timer -Wert in den Konfigurationsregistern eines jedes am PCI-Bus hängenden Gerätes eingestellt.
Eine höhere Latenzzeit erlaubt es dem Gerät einen größeren Datenblock am Stück zu übertragen bevor der Bus wieder für eine andere Übertragung neu programmiert wird, so daß die Übertragungsgeschwindigkeit auf Kosten einer flüssigen Multitaskingfähigkeit steigt.
Soundkarten (egal ob ISA oder PCI) haben meist nur einen sehr kleinen Zwischenspeicher um die über dem Bus übertragenen Daten vor der Ausgabe zu puffern und reagieren deshalb sehr empfindlich mit Verzerrungen und Knacksern in der Wiedergabe wenn die Daten zu spät eintreffen. Auf der anderen Seite benötigen Geräte wie die Grafikkarte oder Busmaster-Laufwerkscontroller einen hohen Datendurchsatz mit großen Datenblöcken und profitieren von einer möglichst hohen Latenzzeit.
Am problematischsten ist die Kombination aus einem Chipsatz mit einer hohen Latenzzeit als Voreinstellung (wie der VIA MVP3), Soundkarten die mehrere Audiokanäle gleichzeitig über den PCI-Bus direkt aus dem Hauptspeicher abspielen (wie die SB Live!) und einem schnellen Grafikchip, der den Bus über längere Zeit blockiert (wie die nVidia Geforce).

Die Lösung

Meist schafft das Setzen des Latenztimers der CPU-to-PCI-Bridge auf 0 Abhilfe. Sofern dies von den Treibern und/oder BIOSsen nicht schon erledigt wurde benötigt man dazu ein kleines Hilfsprogramm.

Die Werkzeuge

Das MVP3 PCI latency timer to 0 Tool für NT4, Windows2000 und XP

Dieses Programm setzt den Latenzzeitgeber des PCI-Gerätes 0 (die CPU-PCI-Bridge) auf 0. Es besteht aus zwei Teilen, der DirectNT Kernelkomponente, die von Matthias Witthopf und Andreas Stiller für die Zeitschrift c´t erstellt wurde, und dem eigentlichen Programm, das DirectNT benützt um auf die PCI-Konfigurationsregister zugreifen zu können. Der Quellcode des Progrämmchens wird ebenso wie das DirectNT-Paket mitgeliefert. Wichtig: Dieses Programm ist für MVP3-basierte Hauptplatinen (K6, CyrixMII,...) geschrieben, nicht jedoch für P2/P3/P4 und K7 basierte Systeme.

Folgende Dateien sollten in der ZIP-Datei sein:

Nur die ersten drei Dateien sind zur Funktion des Programmes zwingend erforderlich. Wenn das Programm weitergegeben wird sollten aber alle Dateien vollständig weitergegeben werden.

Installation und Verwendung

Folgende Schritte sind zur Installation nötig (in Windows NT/2000/XP):

Da DirectNT.sys im Systemverzeichns installiert wurde kann man mvp3_zlt.exe übrigens überall hinkopieren bzw. verschieben.
ACHTUNG:
Wenn man die erweiterten Stromsparmodi oder den Ruhezustand von Windows2000 verwendet muß man nach dem Reaktivieren des Rechners das mvp3_zlt.exe-Programm jedesmal erneut starten, da die Einstellungen in den PCI-Registern während eines Hardware-Resets verloren gehen. Oder man kann auch mvp3_zlt.exe per Taskplaner regelmäßig starten lassen.

FAQ

Welche Betriebsysteme werden unterstützt?
Alle, die auf NT basieren wie Windows NT4, Windows 2000 und XP.

Gibt es eine DOS-Version dieses Programmes?
Ja, allerdings nicht offiziell, da mangels Hardwaregrafikbeschleunigung das Problem unter DOS normalerweise nicht auftritt. Falls das aber mal doch der Fall sein sollte genügt es, mir eine E-Mail zu schicken um es zu erhalten.

Ich bekomme nur eine Fehlermeldung: "Can´t open DirectNT.sys!"
Enweder wurde setup.exe noch nicht aufgerufen und/oder danach der Rechner noch nicht neu gestartet.
Oder der Startmodus des Treibers muß (meist unter XP) von "automatisch" nach "system" geändert werden, so daß der Treiber vor mvp3_zlt.exe gestartet wird:

Ich bekomme nur eine Fehlermeldung: "Error in DirectNT.sys" oder "Can´t close DirectNT.sys!"
Sollte normalerweise nicht passieren. Falls doch ist die DirectNT-Version wahrscheinlich defekt. Falls ein erneutes Herunterladen des Programmes keinen Erfolg gibt wäre eine Nachricht an mich zur Lösung des Problems nützlich.

Kann ich den Quellcode erhalten?
Nein, ganz bestimmt nicht ;-)

Ich habe es installiert und erhalte keine Meldung beim Programmstart.
So soll es auch sein, wenn alles funktioniert.

Funktioniert das Programm auch bei anderen Chipsätzen und Grafik- / oder Soundchips?
Bei Chipsätzen für den K7 oder PII/PIII oder PIV bewirkt es nur in einigen speziellen Fällen etwas. Folgende MVP3-Systeme wurden erfolgreich getestet:

Wenn es auf anderen Kombinationen auch hilft wäre ich über eine Mitteilung zur Vervollständigung dieser Seite dankbar.

Wie wird das Programm deinstalliert?

Ich besitze einen MVP3 Chipsatz und eine Geforce, aber obwohl das Programm erfolgreich installiert wurde hat sich nichts verbessert
Verstärken sich die Verzerrungen abhängig von der Lautstärke und der Belastung der Grafikkarte? Falls nein wird es eher eine andere Ursache haben wie z.B. Störgeräusche, die von analogen Zuleitungen aufgesammelt werden, von einem instabilen Netzteil hervorgerufen werden, Erdungsprobleme (alle Kabel an der Soundkarte abklemmen und einzeln testen hilft beim Finden der Ursache oft), fehlerhaften Treibern und/oder Hardware, die keine Interrupts gemeinsam mit anderer Hardware benützen kann. Falls jemand eine Lösung mit TweakBIOS oder WCPREdit kennt, bin ich für jeden Hinweis dankbar.

Gibt es auch eine Lösung für Linux?
Derzeit ist mir kein entsprechendes Programm für Linux bekannt. Es wird aber berichtet, daß der GART-Treiber des Linux-Kernels unproblematischer ist als der GART des nVidia-X-Servers.

Das Tool hilft bei meinem Problem nicht. Gibt es andere Seiten zu dem Problem?
Eines der Programme auf www.georgebreese.com/net/software oder die Hinweise auf www.3dnowgalaxy.de/Tips/mainb.htm könnten das Problem lösen.

Rechtlicher Hinweis

Die Installation und Verwendung dieser Software erfolgt vollständig auf eigene Verantwortung. Weder der Autor von mvp3_zlt.exe, noch die Autoren von DirectNT sind für eventuelle Schäden im Zusammenhang mit dieser Software verantwortlich. Die Weiterverbreitung der Software ist ohne Genehmigung der Autoren nur zu nichtkommerziellen Zwecken erlaubt.

Mail an den Autor: webmeister@deinmeister.de

Hauptseite Programmieren Win32Asm Downloads Software Hardware Cartoons+Co Texte Sitemap