Allgemeine Beschreibung - WinBoard
Transcription
Allgemeine Beschreibung - WinBoard
DMA fällt zurück auf PIO Das stotternde DVD-Laufwerk Allgemeine Beschreibung Suche freiberufliche Tätigkeit als Software-Entwickler Suchen Sie einen Software-Entwickler mit umfangreichen Erfahrungen für schwierige Aufgaben? Mehr Informationen finden Sie hier. Ich bin der Autor dieser Webseite und wohne in München (Ottobrunn), arbeite aber weltweit. Bitte senden Sie mir eine Email. Object 1 Dieser Artikel trifft auch auf Windows 2000 zu. (Peter Frank berichtete eine erfolgreiche Anwendung auf Windows 2000 mit Service Pack 4.) DMA ist eine Abkürzung für Direct Memory Access, ein Zugriffsverfahren für externe Geräte, bei dem die Datenübertragung nicht durch den Prozessor erfolgt, sondern durch einen kleinen Spezialprozessor, den DMA-Controller. Dieser benutzt ein Verfahren namens Cycle Stealing (Stehlen von Zyklen), bei dem der Prozessor für einzelne Speicherzugriffszyklen, also sehr kurz, aufgehalten wird, damit der DMA-Controller eine kleine Datenmenge vom oder zum Hauptspeicher übertragen kann. Die neueren, schnelleren DMA-Modi heißen UDMA (Ultra DMA). Der alternative, langsame und wenig effiziente Datenübertragungsmodus heißt PIO, Programmed Input-Output, bei dem der Prozessor Byte für Byte oder Wort für Wort übertragen muss, was pro Datenwort viele Programmbefehle erfordert und daher zu einer hohen und unerwünschten Prozessorbelastung führt. Mögliche Ursachen für den Rückfall auf PIO Die häufigste Ursache dafür, dass ein IDE-Port von DMA auf PIO zurückfällt, ist eine zerkratzte oder anderweitig unlesbare CD oder DVD. Allerdings gibt es noch andere Gründe, warum ein Computer PIO statt DMA verwendet. Z.B. berichtete David Duberman 2005, dass einige Dell-Computer als Standardeinstellung im BIOS DMA für die zweite Festplatte deaktiviert haben. Es ist daher eine gute Idee, zuerst die BIOSEinstellungen zu prüfen. Other reasons can show up in the event log, so check this first and see if you can find repeated Atapi errors recorded. If so, you likely have a hardware defect. You can use the procedure described below, but your computer will probably fall back to PIO mode again and again, until you solve the underlying problem, which may be located inside the device, on the motherboard, or in the IDE data cable and its connectors. Andere Ursachen können in der Ereignisanzeige auftauchen, also prüfen Sie diese zuerst und sehen Sie nach, ob Sie wiederholte Atapi-Fehler darin finden. Wenn ja, dann liegt wahrscheinlich ein Hardware-Fehler vor. Sie können die im Folgenden beschriebene Prozedur verwenden, aber Ihr Computer wird wahrscheinlich immer wieder in den PIO-Modus zurückfallen, bis Sie den zugrundeliegenden Fehler beheben. Dieser kann sich im Laufwerk befinden, auf der Hauptplatine (Motherboard), oder im IDE-Datenkabel und seinen Anschlusskontakten. Die Falle Windows enthält eine Falle, in die viele Computer früher oder später einmal hineintappen. Diese Falle wurde in einem Artikel (und auch in einem weiter unten erwähnten) genauer beschrieben. Die entscheidenden Absätze (ins Deutsche übertragen) lauten: Der PIO-Modus wird automatisch in den folgenden Situationen aktiviert: ... Bei wiederholten DMA-Fehlern. Windows XP schaltet den DMA-Modus für ein Gerät aus, nachdem bestimmte Fehler beim Datentransfer auftraten. Wenn mehr als sechs DMA-Transfer-Zeitüberschreitungen auftreten, dann deaktiviert Windows DMA und benutzt für dieses Gerät den PIO-Modus. In diesem Falle kann der Benutzer DMA für dieses Gerät nicht mehr einschalten. Die einzige Möglichkeit für den Benutzer, der DMA wieder aktivieren möchte, ist, das Gerät zu deinstallieren und neu zu installieren. Windows XP schaltet den Ultra-DMA-Transfermodus herunter, nachdem es mehr als sechs CRC-(Cyclic Redundancy Check)-Fehler erhalten hat. Wenn immer möglich, schaltet das Betriebssystem den DMA-Modus jedes Mal nur um eine Stufe herunter (von UDMA-Modus 4 auf UDMA-Modus 3 usw.). ... Natürlich ist es bei der heutzutage ziemlich komplizierten Geräte-Firmware (fest eingebaute Software), die mit an Sicherheit grenzender Wahrscheinlichkeit selbst auch Programmfehler enthält, nicht allzu schwierig, solche Fehler zu erzeugen. In meinem Falle genügte eine zerkratzte DVD und später noch einmal eine unlesbare (overburn) CD, um das Laufwerk sich verschlucken zu lassen, und um Windows dazu zu bringen, für immer auf den PIO-Modus zurückzuschalten. Ich hatte meinen Laptop schon jahrelang zum Anschauen von DVDs benutzt, bis ich eine geborgte und schwer zerkratzte DVD einlegte. Das DVD-Abspielprogramm und auch das Lauferk stolperte über die vielen Fehler, und als ich die DVD schließlich zum Abspielen brachte, fand ich, dass der Film ruckelte und die Prozessorleistung auf 100% anstieg, von dem etwa die Hälfte SystemOverhead war. Dies zeigt an, dass das Laufwerk vom sonst üblichen UDMA-Modus 2 auf PIO zurückgefallen war. Alle Versuche, dies zurückzusetzen oder die relevanten Registry-Einträge von 1 (DMA versuchen) auf 2 (DMA erzwingen), schlugen fehl. Störrisch beharrte das Laufwerk auf dem PIO-Modus, und Windows stellte sogar die Registry-Parameter auf 0 (Nur PIO benutzen) zurück. Der folgende Text bezieht sich auf den sekundären IDE-Port, weil dieser am häufigsten betroffen ist, aber dasselbe gilt im Prinzip auch für den primären IDE-Port, an dem in den meisten Computern die Festplatte angeschlossen ist. Nur treten dort nicht so häufig Fehler auf, denn wer benutzt schon zerkratzte Festplatten? Bevor Sie beginnen, am Problem zu arbeiten, loggen Sie sich als Administrator oder als ein Benutzer mit Administratorrechten ein. Prüfen Sie den Übertragungsmodus Ihres IDE-Ports Prüfen Sie zuerst, in welchem Modus Ihr sekundärer IDE-Port gerade arbeitet. Wenn er in einem schnellen UDMA-Modus läuft, dann können Sie den Rest dieses Kapitels vorläufig ignorieren, sollten aber im Kopf behalten, dass dieser Fehler Sie in der Zukunft noch treffen kann. Dann sollten Sie wissen, was zu tun ist. Sie brauchen dazu den Geräte-Manager. Ein Weg, diesen zu öffnen, ist der folgende. Klicken Sie mit der rechten Maustaste auf Arbeitsplatz und wählen Sie Eigenschaften. Klicken Sie auf den Reiter Hardware und dort auf den Knopf Geräte-Manager. Klicken Sie auf das Pluszeichen links neben dem IDE ATA/ATAPI-Controller. Doppelklicken Sie auf Sekundärer IDE-Kanal. Ein neues Fenster Eigenschaften von Sekundärer IDE-Kanal öffnet sich. Dort klicken Sie auf den Reiter Erweiterte Einstellungen. Sie sehen nun die beiden Geräte, die am sekundären IDE-Kanal angeschlossen sein können. Gerät 0 ist das Gerät, dessen Jumper auf Master gesteckt ist, Gerät 1 das mit dem Jumper in der Position Slave, falls überhaupt ein zweites Gerät angeschlossen ist. Normalerweise möchte man, dass jedes der beiden Geräte so eingestellt ist, dass DMA, wenn verfügbar, verwendet wird. Unter dieser Einstellung sehen Sie ein graues Feld, in dem angezeigt wird, welchen DMA- oder PIO-Modus das Gerät tatsächlich verwendet. Dort möchten Sie den höchstmöglichen DMA- oder UDMA-Modus sehen und zumindest bei CD- oder DVD-Laufwerken auf keinen Fall PIO. Normalerweise brauchen Sie hierfür den Registry-Editor nicht, weil die normalen Einstellungen auch durch diesen Eigenschaften-Dialog für die IDE-Ports verfügbar sind, aber wenn Sie trotzdem dort hineinschauen möchten, finden Sie die Parameter für den sekundären IDE-Port mittels regedit.exe bei HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\Scsi Port 1 Er wird nur aus historischen Gründen Scsi genannt. Scsi Port 0 ist der primäre IDE-Port, an dem wahrscheinlich Ihre Festplatte angeschlossen ist. Nachdem ich—vergeblich—verschiedene Einstellungen zu ändern versuchte, fand ich den oben zitierten Artikel und machte mich mit diesen Informationen erneut an die Arbeit. Ich deinstallierte das DVD-Laufwerk im Geräte-Manager und bootete den Computer erneut, aber das half immer noch nicht. Nach weiterer Informationssuche fand ich schließlich die Lösung. DMA mit dem Registry Editor reaktivieren Mein Dank gilt meinem MVP-Kollegen Alexander Grigoriev, der mich diese Methode lehrte. Starten Sie den Registry Editor REGEDIT. Sie können diesen u.a. aufrufen, indem Sie auf den Start-Knopf klicken, dann auf den Befehl Ausführen... und dort das Wort regedit eingeben. Suchen Sie jetzt, indem Sie auf die Pluszeichen links neben den Schlüsselnamen klicken, den Registry-Schlüssel: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CEBFC1-08002BE10318} Dieser enthält weitere Schlüssel namens 0000, 0001, 0002, usw. Normalerweise ist 0001 der primäre IDE-Kanal und 0002 der sekundäre, aber unter bestimmten Umständen können auch andere Nummern auftreten. Sie müssen daher durch diese Schlüssel gehen und den Wert DriverDesc (Treiber-Beschreibung) anschauen, der eine lesbare Bezeichnung des jeweiligen Kanals enthält. So können Sie sicherstellen, dass Sie den richtigen IDE-Kanal gefunden haben. Löschen Sie nun den Wert MasterIdDataChecksum oder SlaveIdDataChecksum, je nachdem, ob das fragliche Gerät als Master oder als Slave angeschlossen ist (Gerät 0 oder Gerät 1), aber es kann nicht schaden, einfach beide zu löschen. Sie können einen Wert löschen, indem Sie seinen Namen auswählen, indem Sie darauf klicken, und dann die Löschtaste [Entf] drücken. Windows wird beim nächsten Systemstart die DMA-Fähigkeiten des Laufwerks oder der Laufwerke neu feststellen. Booten Sie also Ihren Computer neu. Öffnen Sie zur Sicherheit wie oben beschrieben noch einmal den Geräte-Manager und prüfen Sie, ob Ihr Gerät nun tatsächlich wieder den DMA-Modus verwendet. Wenn ja, Gratulation, Sie haben es geschafft (mindestens bis Windows das nächste Mal DMA wieder ausschaltet). 2005-10-24 – Tomáš Souček schrieb, wenn dies das Problem nicht löst, prüfen Sie auch den DWORD-Wert MasterDeviceTimingModeAllowed, dessen Standardwert hex 0xFFFFFFFF ist. Wenn Sie einen viel kleineren Wert vorfinden, dann können Sie versuchen, diesen für einen Test auf den Standardwert zurückzusetzen und dann neu zu booten. Alternative Methode—Port deinstallieren 1. Deinstallieren Sie den sekundären IDE-Port To do that, open Device Manager as follows. Right-click on My Computer, select Properties, click on the Hardware tag, click on the Device Manager button, click on the plus sign to the left of IDA ATA/ATAPI Controller, right-click on Secondary IDE Channel, click on Uninstall. Deactivating is not enough. Um dies zu tun, öffnen Sie wie oben beschrieben den Geräte-Manager und finden Sie wieder den Zweig Sekundärer IDE-Kanal. Klicken Sie mit der rechten Maustaste auf Sekundärer IDE-Kanal und klicken Sie auf Deinstallieren. Deaktivieren reicht nicht. Starten Sie Ihren Computer neu, um diese Änderung auszuführen. After this first reboot Windows will automatically reinstall the IDE channel and the DVD (or CD) drive. This Plug-n-Play process can take a little while, so give it a minute after the boot process finishes. Nach dem Neustart wird Windows automatisch den IDE-Kanal finden und den Treiber dafür neu installieren, ebenso wie die dort angeschlossenen Laufwerke (z.B. DVD oder CD). Dieser Plug-andPlay-Vorgang kann ein Weilchen dauern. Geben Sie dem Computer also eine extra Minute, nachdem der Bootvorgang beendet ist. 2. DMA reaktivieren Aber dies ist nicht genug, weil Windows leider den DMA-Modus auf dem DVD- oder CDLaufwerk nicht wieder automatisch reaktiviert. Sie müssen Windows erst noch mitteilen, dass es versuchen soll, DMA zu benutzen. Um dies zu tun, gehen Sie noch einmal in den Geräte-Manager, klicken Sie dort auf das Pluszeichen links von IDE ATA/ATAPI-Controller, doppelklicken Sie auf Sekundärer IDE-Kanal, klicken Sie auf Erweiterte Einstellungen und stellen Sie die Einstellung von Nur PIO auf DMA, wenn verfügbar. Starten Sie Ihren Computer noch einmal neu, gehen Sie wieder in den Geräte-Manager und prüfen Sie an derselben Stelle, ob das Laufwerk nun wirklich den DMA-Modus benutzt. Wenn ja, dann ist alles in Ordnung. 3. Treiber ist für diese Plattform nicht vorgesehen Wenn Sie die folgende oder eine ähnliche Fehlermeldung erhalten: Problem bei der Hardware-Installation IDE-Kanal Während der Geräteinstallation ist ein Fehler aufgetreten. Treiber ist für diese Plattform nicht vorgesehen. 2005-03-30 – Johannes B. schrieb: Der Grund für diese Meldung ist meistens, dass Daemon Tools oder Alcohol 120% auf dem betroffenen System installiert ist. In diesem Fall funktioniert der unten beschriebene Lösungsweg nicht. Wenn man aber diese Programme deinstalliert und dann Windows neu startet, installiert Windows problemlos die Gerätetreiber. Wenn keines dieser beiden Programme installiert ist, dann ist ein möglicher Ausweg, die Treiberdatei C:\WINDOWS\system32\drivers\atapi.sys (oder ein ähnlicher Pfad auf Ihrem Computer) in atapi.old o.ä. umzubenennen. Wenn das nicht möglich ist, dann versuchen Sie es von der Reparatorkonsole aus (Booten von der Windows-Installations-CD, dann Reparaturkonsole aufrufen). Sollte Windows dann automatisch wieder eine Datei atapi.sys erstellen, dann können Sie noch versuchen, die Datei im Safe Mode oder von einem Kommandozeilenfenster aus umzubenennen, oder Sie können versuchen, die Datei auch im Treiber-Cache-Ordner umzubenennen oder zu entfernen. Desensibilisieren Sie die IDE-Kanäle Ihres Computers Es gibt noch etwas mehr, das Sie tun können, um dieses Problem wenigstens etwas abzuschwächen, obwohl es sich nicht ganz vermeiden lässt. Der folgende (englische) Artikel beschreibt die Lösung. Sie besteht darin, Windows so einzustellen, dass es den Fehlerzähler nach jedem erfolgreichen Lese- oder Schreibvorgang wieder auf Null zurücksetzt. Das hat zur Folge, dass das Zurückschalten des DMA-Modus nur noch passiert, wenn Sie 6 Fehler hintereinander bekommen, statt 6 Fehler über eine Sitzung am Computer verstreut. IDE ATA- und ATAPI-Laufwerke arbeiten nach mehreren Zeitüberschreitungs- und CRC-Fehlern im PIO-Modus http://support.microsoft.com/kb/817472/de Englische Version: IDE ATA and ATAPI Disks Use PIO Mode After Multiple Time-Out or CRC Errors Occur http://support.microsoft.com/kb/817472/ Lesen Sie den Artikel, denn er enthält eine langfristig wirkende Fehlerumgehung. Aber Sie müssen vorher die weiter oben beschriebene Prozedur absolvieren, um DMA erst einmal zu aktivieren, wenn es schon deaktiviert worden war. Nachdem Sie das getan haben, setzen Sie die Registry-Werte ResetErrorCountersOnSuccess in die Registry-Schlüssel sowohl des primären als auch des sekundären IDE-Ports ein, wie im oben genannten Artikel beschrieben. Leider ist auch dies nur eine halbe Lösung, weil Sie, wenn Sie eine unlesbare CD oder DVD einlegen, leicht 6 Fehler hintereinander bekommen können, aber wenigstens passiert es nun nicht mehr, wenn Sie die fehlerhafte CD oder DVD rechtzeitig aus dem Laufwerk nehmen und das nächste Mal eine bessere einlegen. Nach einem erfolgreichen Lesevorgang wird der Fehlerzähler nun zurückgesetzt, die magische Zahl 6 ist hoffentlich noch nicht erreicht worden, und so ist es wenigstens etwas schwieriger für Windows, Ihr Laufwerk mit PIO auszubremsen.