Intel 8086 von 1978: Hardware-Änderung aufgrund von Dekodierungs-Bug erst jetzt entdeckt
Der Tech-Blogger Ken Shirriff hat eine Hardware-Änderung bei Intels 8086 von 1978 gefunden, die ein Problem bei der Decodierung von verschiedenen Bytes löst. Damals mussten noch Hardware-Modifikationen bei solchen Problemen vorgenommen werden, während das heute i. d. R. mit neuem Mikrocode auf BIOS-Ebene gelöst werden kann. Lesen Sie daher im Folgenden mehr zu dem genauen Problem von Intels zweitem Prozessor.
Sobald bei heutigen Prozessoren Probleme und Sicherheitslücken auftauchen, werden im Regelfall Software- bzw. Mikrocode-seitige Lösungen für diese Probleme erarbeitet und zeitnah an die Kunden verteilt. Doch solche Vorgehensweisen waren nicht immer die Norm, und vor Spectre, Meltdown und anderen aktuellen Sicherheitslücken wurden teilweise Hardware-Änderungen aufgrund von Bugs durchgeführt. Ein Beispiel dafür entdeckte Ken Shirriff in einem Intel 8086, dem zweiten Prozessor des damals noch jungen Unternehmens Intel, der 1978 auf den Markt kam.
AMD-CPU kaufen: Hier die günstigsten Angebote bis Ryzen 9 7950X
Dieser Prozessor nutzt, wie der Name vermuten lässt, bereits die x86-Architektur, die auch heute noch in Desktop-Prozessoren zum Einsatz kommt. Dabei setzen die Prozessoren auf die sog. Mikroprogrammierung, bei der die auszuführenden Aktionen nicht aufwendig mit Logik in Signale für die einzelnen Komponenten des Prozessors übersetzt werden, sondern per ROM mit Mikrocode. Im Fall des 8086 gibt es dazu zwei verschiedene ROMs, einen für die eigentliche Decodierung der Befehle und einen Zweiten für die Zusammenhänge zwischen den Befehlen, der bis zu 6 Bytes kombinieren kann.
Diese Erstellung der Zusammenhänge zwischen verschiedenen Bytes, um daraus einen Befehl zu generieren, wird als Group Decode bezeichnet und dabei hat Shirriff eine seines Erachtens nachträgliche Hardware-Änderung gefunden. Dabei werden zwei Schaltungen, von denen eine abermals unterteilt ist, mit zwei besonders langen Leitern verbunden. Die einzig logische Erklärung ist demnach, dass es sich um eine nachträgliche Modifikation handelt.
Der Nachteil der nachträglichen Änderung ist dabei die lange Signallaufzeit, die bei Prozessoren so kurz wie möglich gehalten werden sollte. Der Grund für die Änderung scheint Shirriff zu Folge in einer unvollständigen Bearbeitung zweier Befehle zu liegen, wenn ein Interrupt auftritt. Dabei würden die aktuell verarbeiteten Daten an willkürliche Speicheradressen geschickt, deren Daten damit wiederum überschrieben worden wären. Rein softwareseitig konnten manche Interrupts nicht deaktiviert werden, weshalb Intel die Hardware-Änderung vornehmen musste. Um die Kosten dabei niedrig zu halten, nutzte man dafür bis dahin ungenutzte Bereiche des Siliziums und musste lediglich neue Belichtungsmasken anfertigen.
Quelle: Golem.de & Ken Shirriff
