Computerhardware: Prozessor: Fehlerhafte Prozessoren

Aus Wikibooks

Fehlerhafte Prozessoren[Bearbeiten]

Leider gibt es keine fehlerfreie Hardware, und auch Prozessoren (und Chipsätze) sind nicht frei von Fehlern. Mängel im Chipdesign oder in den prozessorinternen Mikroprogrammen führen dazu, dass bestimmte Befehlskombinationen unter außergewöhnlichen Bedingungen falsch funktionieren. Im Jahr 2004 wurde entdeckt, dass Intel-CPUs unter außergewöhnlichen Bedingungen falsch rechneten. Wenn Sie in Google das Stichwort „FDIV-Bug“ eingeben, sehen Sie mehr dazu. Leider ist das kein Einzelfall. Alle Hersteller sind betroffen. AMD hat beispielsweise CPUs der K6-2-Serie ausgeliefert, bei denen die MMX-Einheit unter bestimmten Bedingungen falsch arbeitete[1]. Auch in heutigen CPUs kommen kleine Fehler vor.

Microcode[Bearbeiten]

Im Prozessor werden alle Befehle als eine Folge von „Mikrobefehlen“ ausgeführt. Beispielsweise kann der Befehl „ADD AX,[3600]“ folgendermaßen zerlegt werden (vereinfacht):

Inhalt des Speicherplatzes 3600 lesen
das gelesene Byte zum AX Register addieren
Vorzeichen und andere Flags entsprechend dem Ergebnis setzen
Nächsten Befehl aus dem Speicher holen
Nächsten Befehl decodieren

Wenn ein Befehl unter Praxisbedingungen nicht zuverlässig funktioniert, braucht der CPU-Hersteller keine Rückrufaktion starten. Es braucht „nur“ das Mikroprogramm der CPU korrigiert werden. Nötigenfalls wird ein fehlerhafter Befehl durch andere Befehle ersetzt. Ein primitives Beispiel dazu: Wenn die Addition A + B nicht funktionieren würde, könnte stattdessen die Subtraktion verwendet werden: A + B = A - (-B).

Wie kommt nun der verbesserte Mikrocode in die bereits ausgelieferten CPUs?

Prozessor-Update über BIOS[Bearbeiten]

Intel hat zusammen mit den BIOS-Programmierern eine Schnittstelle zwischen BIOS und CPU-Mikroprogramm geschaffen. Intel, AMD und andere CPU-Hersteller liefern den BIOS-Herstellern für jeden Prozessor und jedes Stepping ein dazu passendes Mikrocode-Update. Dieses wird in das nächste BIOS-Update eingebaut und zum Download angeboten. Jede CPU holt sich beim Start das Update für ihr Mikroprogramm aus dem BIOS. So lassen sich kleine Prozessorfehler reparieren. Wenn nach dem Austausch einer älteren CPU die neue nicht startet, liegt es vermutlich daran, dass die benötigten Mikrocodes im BIOS noch fehlen. Mit einem BIOS-Update werden neben anderen Verbesserungen die zur neuen CPU passenden Korrekturen ins BIOS eingefügt, und nun kann die neue CPU starten.

Durch Umstellung der Produktion auf eine leicht überarbeitete CPU-Version (ein neues Stepping) werden die gefundenen Fehler dauerhaft behoben.


Quellen
  1. Fehler in AMD-CPUs: PC Games Hardware 12/2001 S. 137