Prozessor-Bug: Wie Intel einen Bug im ersten x86-Prozessor fixte

Der Prozessor tut nicht ganz, was er soll? Heute löst das oft eine neue Firmware, vor 40 Jahren musste neues Silizium her.

Artikel veröffentlicht am , Johannes Hiltscher
Neuer und alter 8086: Links das Original von 1978, rechts ein Core i7 von 2018 zum 40. Geburtstag des ersten x86-Prozessors.
Neuer und alter 8086: Links das Original von 1978, rechts ein Core i7 von 2018 zum 40. Geburtstag des ersten x86-Prozessors. (Bild: Intel)

Wer sich Silizium-Dies unter dem Mikroskop ansieht, macht gelegentlich interessante Entdeckungen: Etwa nachträglich im Design ergänzte Komponenten, um Prozessor-Bugs zu beheben. Einen solchen Hardware-Bugfix entdeckte Ken Shirriff in einem Intel-8086-Prozessor von 1978.

Der Stammvater der x86-Architektur nutzt wie auch aktuelle x86-Prozessoren ein Konzept namens Mikroprogrammierung: Anstatt dass er die Befehle komplett mit Logik in Steuersignale für die einzelnen Komponenten umsetzt, übernimmt dies ein ROM mit Mikrocode. Genauer gesagt sind es beim 8086 zwei ROMs, einer für die Dekodierung der Befehle, ein weiterer stellt die Zusammenhänge zwischen den einzelnen Bytes eines Befehls her – anders als bei RISC-Architekturen kann beim 8086 ein Befehl aus bis zu sechs Bytes bestehen.

Und genau in diesem sogenannten Group Decode ROM fand Shirriff etwas Kurioses: Unverhältnismäßig lange Leiter verbinden ihn mit zwei weit entfernten Schaltungen, eine davon sogar noch in zwei Stücke geteilt. Die sonderbare Schaltung "mitten im Nichts" konnte sich Shirriff nur damit erklären, dass sie nachträglich ergänzt worden war.

Welchen Bug hat Intel gefixt?

Für die nachträgliche Ergänzung spricht, dass normalerweise zusammenhängende Komponenten möglichst eng zusammen platziert werden. Lange Leiter versucht man zu vermeiden, da sie lange Signallaufzeiten bedeuten, was sich negativ auf die erreichbare Taktfrequenz auswirken kann. In diesem Fall ging es wohl eher darum, möglichst wenig ändern zu müssen – die zusätzlichen Komponenten wurden in zuvor ungenutzten Regionen platziert.

Neugierig, was Intel mit den zusätzlichen Komponenten korrigiert hatte, machte sich Shirriff auf die Suche nach bekannten Prozessor-Bugs. Die betroffenen Codes konnte er anhand des Group Decode ROMs ablesen. Sie führten ihn zu einer unvollständigen Verarbeitung zweier Befehle beim Auftreten eines Interrupts. Die unvollständige Ausführung ließ den Prozessor seinen Stack auf einmal an einer zufälligen Speicheradresse verorten – damit wurden Daten, die beim Aufruf des Interrupt-Codes gesichert werden, an willkürliche Speicheradressen geschrieben, wo sie andere Daten überschreiben konnten.

Software allein löst das Problem nicht

Zwar lieferte Intel eine Software-Lösung für das Problem, die mussten Programmierer allerdings explizit einbauen. Sie bestand darin, vor Ausführung der betroffenen Befehle die Interrupts zu deaktivieren. Da dies zudem nur teilweise möglich ist – einige Interrupts können nicht deaktiviert werden – musste Intel das Silizium-Die überarbeiten. Durch die Verwendung ungenutzter Bereiche hielt sich der finanzielle Aufwand in Grenzen, lediglich neue Belichtungsmasken waren erforderlich.

Heute lassen sich wesentlich schwerwiegendere Fehler wie Spectre auch nachträglich in bereits ausgelieferten Prozessoren beheben. Möglich ist das, da der Mikrocode seit dem Pentium Pro von 1995 als Firmware Teil des BIOS ist. So kann er nachträglich aktualisiert werden.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Tom01 01. Dez 2022

1,5 GHz ist doch schon ordentlich für FPGA.

pehy 30. Nov 2022

Ich habe Adrians Kanal auch auf der Liste...

jhi (Golem.de) 29. Nov 2022

Gerne und danke für das nette Feedback! Ken Shirriff schreibt öfter interessante Sachen...

Quantium40 29. Nov 2022

Prinzipiell sind Microcodes für die CPU weder Rückschritt noch Fortschritt. Es gab sie...



Aktuell auf der Startseite von Golem.de
25 Jahre Grim Fandango
Toller Trip durch das Reich der Toten

Morbide und lustig: Grim Fandango war kein Erfolg und gilt trotzdem als Klassiker. Golem.de hat es erneut durchgespielt - und war wieder begeistert.
Von Andreas Altenheimer

25 Jahre Grim Fandango: Toller Trip durch das Reich der Toten
Artikel
  1. Star Wars: Holiday Special jetzt in 4K mit 60 fps
    Star Wars
    Holiday Special jetzt in 4K mit 60 fps

    Eine bessere Story bekommt der legendär schlechte Film dadurch leider nicht. Bis heute lieben ihn einige Fans aber vor allem wegen seiner Absurdität.

  2. Autonomes Fahren: Im Märzen der Bauer den Roboter einspannt
    Autonomes Fahren
    Im Märzen der Bauer den Roboter einspannt

    Landmaschinen ohne Fahrer, Traktoren, die mit Gesten gesteuert werden - autonome Systeme sollen in der Landwirtschaft gleich mehrere Probleme lösen.
    Ein Bericht von Werner Pluta

  3. Lohn und Gehalt: OpenAI-Entwickler verdienen bis zu 800.000 US-Dollar im Jahr
    Lohn und Gehalt
    OpenAI-Entwickler verdienen bis zu 800.000 US-Dollar im Jahr

    Die Firma hinter Chat-GPT zahlt im Vergleich zu Unternehmen wie Nvidia besonders gut. Erfahrene Forscher und Entwickler auf dem Gebiet sind Mangelware.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • Crucial P5 Plus 2 TB mit Kühlkörper 114,99€ • Crucial Pro 32 GB DDR5-5600 79,99€ • Logitech G915 TKL LIGHTSYNC RGB 125,11€ • Anthem PC 0,99€ • Philips Ambilight 77OLED808 2.599€ • MindStar: Patriot Viper VENOM 64 GB DDR5-6000 159€, XFX RX 7900 XT Speedster MERC 310 Black 789€ [Werbung]
    •  /