Computerhardware: Prozessor: Fehlerhafte Prozessoren
Aus Wikibooks
[Bearbeiten] Fehlerhafte Prozessoren
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. Wenn Sie in Google das Stichwort „FDIV-Bug“ eingeben, sehen Sie ein spektakuläres Beispiel aus dem Jahr 2004. Leider ist das kein Einzelfall. Alle Hersteller sind betroffen. Auch in heutigen CPUs kommen kleine Fehler vor.
[Bearbeiten] Microcode
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 Microprogramm 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 Microcode in die bereits ausgelieferten CPUs?
[Bearbeiten] Prozessor-Update über BIOS
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 Microcode-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 Microcodes 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.