Hintergrund: PCI-Fehler bei Intels Chipsätzen
Der jüngst entdeckte Fehler im Chipsatz i850 ist nur der letzte in einer ganzen Reihe von Bugs in Intel-Chipsätzen, die den PCI-Bus betreffen.
Ein Fehler steckt im Intel-Chipsatz i850 für den neuen Prozessor Pentium 4, der das Zusammenspiel mit einigen PCI-Karten beeinträchtigt. Diese Nachricht kursiert zurzeit durch diverse US-Newsdienste. Ein Fehler? Über 70 Fehler dokumentiert Intel in den "Specification Updates" (darin beschreibt Intel unter anderem die bekannte Fehler der Produkte) zum Chipsatz und Prozessor, von denen rund ein Dutzend mit dem PCI-Bus zusammenhängen.
Der jüngste Fehler trat vor ein paar Tagen beim CRN Testcenter auf. Demnach gab es mit einem neuen i850-Mainboard Knackser beim Sound während der DVD-Wiedergabe per PCI-Hardware-Decoder. Offensichtlich funktioniert der Transfer über den PCI-Bus nicht schnell genug. Intel hat den Fehler in dieser Hardware-Konfiguration bestätigt und darauf hingewiesen, dass nur PCI-Karten betroffen sind, die nicht Busmaster-fähig sind. Das passt zu dem Fehler Nummer 18 aus den Specification Updates zum ICH2, der auf allen Pentium-4-Mainboards sitzt. Der ICH2 ist der I/O Controller Hub, also die Southbridge des i850-Chipsatzes, in der unter anderem der PCI-Controller steckt.
Isochrone Datentransfers auf dem PCI können behindert werden, falls der Prozessor zur gleichen Zeit große Datenmengen an eine PCI-Karte schickt, die nicht Busmaster-fähig ist. Isochrone Transfers benötigen einen kontinuierlichen Datenstrom, müssen also in einem festen Zeitrahmen Zugriff auf den PCI-Bus bekommen. Dazu zählen vor allem Sound- und Video-Übertragungen. Gerade die Knackser bei der Audiowiedergabe deuten auf Störungen beim isochronen Transfer hin, da alle aktuellen Rechner (insbesondere ein Pentium 4 mit 1,5 GHz) diese vergleichsweise geringen Datenraten problemlos bewältigen. Tatsächlich tritt der Fehler laut Specification Update erst mit dem B1'-Stepping des ICH2 auf. Die in den ICH2 integrierten PCI-Komponenten (IDE, LAN, AC97, USB) oder gar die MCH-Anschlüsse (AGP, Hauptspeicher) sind nicht betroffen.
Besonders praxisrelevant ist dieser Fehler jedoch nicht, da PCI-Karten ohne Busmaster-Fähigkeit selten sind:
- Vor allem in Verbindung mit einer PCI-Grafikkarte sollen die Probleme auftauchen, doch in unserem Fundus mussten wir bis zu einer Karte mit dem (im wahrsten Sinne des Wortes) angestaubten ET6000-Chip zurück gehen, um eine ohne Busmaster-Fähigkeit zu finden.
- Auch ein älterer DVD-Decoder aus dem Test in der c't 20/1999 arbeitete schon im Busmaster-Verfahren.
- Viele ISDN-Karten arbeiten nicht als Busmaster, doch selbst bei Kanalbündelung und Datenkompression bleiben diese Karten mit optimistisch geschätzten 50 KByte/s weit unter dem, was Intel mit "high bandwith" meint.
Dennoch scheint Vorsicht angebracht: Wer die Anschaffung eines Mainboards mit dem Intel ICH2 plant, sollte die dafür vorgesehenen PCI-Karten auf Busmaster-Tauglichkeit untersuchen und im Zweifel lieber eine neue PCI-Karte kaufen. Der ICH2 kommt nicht nur auf Pentium-4-Boards zum Einsatz, sondern kann auch mit den anderen 8xx-Chipsätzen für den Intel Celeron und Pentium III kombiniert werden, also dem i810, i815, i820 und i840 – siehe dazu auch den Test von i815-Boards, den c't in Ausgabe 1/2001 veröffentlicht (ab dem 2. Januar im Handel.) Einige PC-Hersteller wollen als Reaktion auf den Fehler den Einsatz von PCI-Grafikkarten vermeiden; falls ein Kunde zwei Bildschirme benötigt, wollen sie eine AGP-Grafikkarte mit zwei Ausgängen einsetzen wie beispielsweise die "Dual-Head"-Karten von Matrox.
Fehler in neuen Prozessoren oder Chipsätzen sind keine Seltenheit. Der starke Konkurrenzkampf zwingt die Hersteller wie AMD, Intel, VIA, SiS oder ALi dazu, ihre Produkte schnell auf den Markt zu bringen, sodass für die Beseitigung der Fehler oft zu wenig Zeit bleibt. So beschreibt AMD in den Revision Guides insgesamt elf Fehler, von denen drei nicht behoben sind. In der Northbridge AMD-751 des 750er-Chipsatzes stecken elf nicht behobene von insgesamt 21 Fehlern. Während Intel und AMD ihre Fehler (zumindest teilweise) öffentlich zugeben, halten sich andere Hersteller bedeckt. VIA unterrichtet beispielsweise gerade mal die Mainboard-Hersteller in der Form von White Papers über die Fehler in den Chipsätzen.
Weitere PCI-Fehler
Im ICH2 stecken weitere Fehler, die mit dem PCI-Bus zu tun haben:
- 3: Bei aktivierter "PCI Delayed Transaction" kann der Boot Block im FWH (Firmware Hub, der BIOS-Baustein) nicht beschrieben werden. Als Workaround mĂĽssen die Update-Programme vor dem Beschreiben des FWHs diesen Modus ausschalten.
- 9: Das System stĂĽrzt ab, falls die "Hub Interface Parity Error Response" (FehlerĂĽberprĂĽfung auf dem Verbindungsbus zwischen MCH und ICH) im MCH ein-, im ICH2 jedoch ausgeschaltet ist. Diese sowieso zweifelhafte Programmierung tritt laut Specification Update bei einigen Linux-Kernel auf, ein Patch ist verfĂĽgbar.
- 17: Wenn ein PCI-Busmaster Daten aus dem Hauptspeicher liest, puffert der ICH2 bis zu drei 32 Byte große Cache-Lines (prefetch). Bevor die Daten zum PCI-Gerät gelangen, könnte der Prozessor diese Daten im Hauptspeicher geändert haben, sodass das PCI-Gerät ungültige Daten bekommt. Normalerweise sollte der ICH2 in diesem Fall die Daten erneut anfordern, doch das geschieht nicht immer. Dieser Fehler tritt nur in Verbindung mit dem i850-Chipsatz auf. Er ist mit dem B1'-Stepping des ICH2 behoben.
- 20: In sehr seltenen Situationen auf dem PCI-Bus (Intel gibt zehn Bedingungen an, die alle erfüllt sein müssen) hängt sich das System auf. Dieser Fehler trat ebenfalls erst mit dem B1'-Stepping auf.
- Die Fehler Nummer 1, 8, 12, 13 haben ebenfalls mit PCI zu tun, doch Intel hat sie schon behoben oder die Board- oder BIOS-Entwickler mĂĽssen sie berĂĽcksichtigen.
Das Specification Update für den MCH (Memory Controller Hub, die "Northbridge" des Chipsatzes) 82850 beschreibt sechs "Errata", von denen die Nummer 5 mit dem PCI-Bus zusammenhängt: Demnach funktioniert das Prefetching von Daten aus dem Hauptspeicher nicht schnell genug, falls ein PCI-Busmaster-Gerät Lesezugriffe durchführt. Der Busmaster muss daher mehrere Lesezugriffe durchführen, was die maximale Datenrate auf etwa 90 MByte/s statt den bei PCI möglichen 133 MByte/s beschränkt.
Sogar im Pentium 4 selbst steckt ein Fehler, der den PCI-Bus betrifft, die Nummer 41 von insgesamt 44 im Specification Update gelisteten Fehlern: PCI-Geräte, die zur Initialisierung mehr als 0,67 Sekunden benötigen, bringen den Pentium 4 zum Absturz. Mehr zu diesem Fehler im Prozessorgeflüster in Ausgabe 1/2001 der c't (ab dem 2. Januar im Handel). (jow/c't) / (jk)