Microcode-Trick: So schützte sich Intels erste x86-CPU gegen Rechtediebstahl

12
News Valentin Sattler Als bevorzugte Quelle auf Google hinzufügen
Microcode-Trick: So schützte sich Intels erste x86-CPU gegen Rechtediebstahl
Quelle: Intel

Im Microcode von Intels 8086 befindet sich eine undokumentierte Funktion, die wohl als Falle für Mitbewerber gedacht war. Hätte man beim Aufruf dieser Funktion dasselbe Ergebnis wie beim Original erhalten, hätte Intel sich sicher sein können, dass der Prozessor eine Kopie des eigenen Produkts ist.

Die x86-Architektur ist aus der modernen Welt nicht mehr wegzudenken: Nahezu alle Desktop-PCs und Notebooks, sowie die meisten Server, setzen auf den ursprünglich von Intel entwickelten Befehlssatz. Dementsprechend legendär ist der erste entsprechende Prozessor, der 1978 veröffentlichte Intel 8086. Ebendiese CPU wurde dabei zwar auch von verschiedenen anderen Herstellern angeboten, die sie in Lizenz fertigen durften. Gleichzeitig baute Intel aber eine Falle ein, um das unbefugte Kopieren zu unterbinden.

Microcode-Falle gegen Kopien

Finden lässt sich diese im Microcode, mit dem das Schaltwerk des Prozessors Befehle ausführt. Wie üblich wird dieser durch Bits dargestellt, sodass die Anzahl der möglichen Microcode-Befehle immer einer Zweierpotenz entspricht. Beim 8086 wurden aber weniger Befehle realisiert, als im verfügbaren Speicher Platz gehabt hätten. Und da gleichzeitig keine Prüfung vorgesehen war, ob ein auszuführender Befehl überhaupt existiert, gibt es einige unerlaubte Befehle.

Empfohlener redaktioneller Inhalt [EMBED_URL] An dieser Stelle finden Sie externe Inhalte von [PLATTFORM]. Zum Schutz Ihrer persönlichen Daten werden externe Einbindungen erst angezeigt, wenn Sie dies durch Klick auf "Alle externen Inhalte laden" bestätigen: Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit werden personenbezogene Daten an Drittplattformen übermittelt. Mehr dazu in unserer Datenschutzerklärung.
Externe Inhalte Mehr dazu in unserer Datenschutzerklärung.

Teils wurden diese mit Nachfolgeprozessoren wie dem Intel 80186, 80286 oder 80386 belegt. Der Microcode-Befehl mit der Hex-Nummer D6 war hingegen bei all diesen Modellen undokumentiert. Er hatte aber trotzdem eine Funktion: Mit ihm konnte ein Register unter Bedingung der Carry-Flag auf den Wert 0 oder 255 gesetzt werden. Nutzen konnten Entwickler dieses Feature aber nicht, denn Intel erwähnte diese Funktion erst fast 40 Jahre später - im Jahr 2017. Laut Ken Shirrif, der sich mit Computergeschichte beschäftigt, war dieser Befehl daher wohl als Falle gedacht.

Empfohlener redaktioneller Inhalt [EMBED_URL] An dieser Stelle finden Sie externe Inhalte von [PLATTFORM]. Zum Schutz Ihrer persönlichen Daten werden externe Einbindungen erst angezeigt, wenn Sie dies durch Klick auf "Alle externen Inhalte laden" bestätigen: Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit werden personenbezogene Daten an Drittplattformen übermittelt. Mehr dazu in unserer Datenschutzerklärung.
Externe Inhalte Mehr dazu in unserer Datenschutzerklärung.

Auch spannend: Intel Raptor Lake Refresh: Geht bei 6 GHz die Luft aus? [Gerücht]

Hätte ein Mitbewerber den Microcode von Intels 8086 vollständig kopiert und in einem Prozessor eingesetzt, hätte der D6-Befehl dort genau dieselbe Funktion ausgeführt. Damit hätte Intel beweisen können, dass der Chip ein Klon ist und das geistige Eigentum des Unternehmens verletzt. Dementsprechend groß war wohl die Enttäuschung, als Intel den Konkurrenten NEC für die Fertigung eines 8086-Klons verklagte, bei dem das Register aber tatsächlich unbesetzt war. Dadurch war klar, dass der NEC-Prozessor keine direkte Kopie und damit legal war.

Quelle: Righto via Tom's Hardware

12
    • Kommentare (12)

      Zur Diskussion im Forum
      • Von x2K Freizeitschrauber(in)
        Zitat von Pu244
        Es ist eine klassische Leimrute, wie erfundene Straßen in Karten oder erfundene Personen in Telephonbüchern und damit eine Falle.
        Bitte meinen Post zuende Lesen.
      • Von x2K Freizeitschrauber(in)
        Zitat von Pu244
        Es ist eine klassische Leimrute, wie erfundene Straßen in Karten oder erfundene Personen in Telephonbüchern und damit eine Falle.
        Bitte meinen Post zuende Lesen.
      • Von PCGH_Torsten Kokü-Junkie (m/w)
        Naja – kein CPU-Hersteller veröffentlicht komplette [Ins Forum, um diesen Inhalt zu sehen] Konstruktionspläne samt Erläuterung zu seinen neuesten Produkten. Ein paar Jahrzehnte später hat dann nicht nur kaum jemand Lust, seitenlange Detailabhandlungen zu lesen, weswegen man diese als Hersteller gar nicht erst schreibt, sondern es hat sich auch die Begriffslage verschoben. Wie gesagt: Ich glaube, der "Microcode" eines Pentium Pro und späterer x86-Designs ist auf einem ganz anderen Niveau. Deren "Micro-Ops" werden gerne mit RISC-Befehlssätzen wie MIPS oder SPARC verglichen, aber dort ist beispielsweise eine Division schon ein einzelner Befehl.

        Der 8086-"Microcode" schlüsselt dagegen einen Divisionbefehl in eine ganze Latte von Arbeitsschritten auf und würde, wenn man einen Pentium Pro daneben stellt, fast schon "Nanocode" genannt werden. Mir fehlen aber die nötigen Detailkenntnisse um zu sagen, wie viel dieser Weitung des Maßstabs wirklich einen Paradigmen-Wechsel hin zu CISC=>RISC darstellt und wieviel schlicht auf die Komplexitätssteigerung von den 70ern zu den 90ern zurückgeht. Da müsste man vermutlich erstmal den Pentium 1 mit dem 8086 vergleichen, um eine Baseline festzulegen.
      • Von wuselsurfer Kokü-Junkie (m/w)
        Zitat von PCGH_Torsten
        Und wenn der ganze Technobabble hier nicht frei erfunden ist, dann weiß er wohl schlichtweg ein paar Details, die andere nicht wissen.

        Klingt sehr logisch.

        Da hat uns Intel wohl lange etwas verschwiegen ... .
      • Von PCGH_Torsten Kokü-Junkie (m/w)
        Zitat von Registrierzwang
        Auf https://www.righto.com/20... steht auch:
        "The 8086 uses a hybrid approach: although the 8086 uses microcode, much of the instruction functionality is implemented with gate logic. This approach removed duplication from the microcode and kept the microcode small enough for 1978 technology."
        Also hast Du und ich ein bisschen recht

        P.S.: Ich staune noch mehr - der 8086/8088 kann sogar Befehle im Voraus holen, um Taktzyklen zu sparen, bisher dachte ich "prefetch" von Opcodes können nur spätere Intel-CPUs.
        Insofern interessant, da man also schon mit dem 8086 Schutz vor Debugging mit selbstmodifizierendem Code implementieren kann (bereits "prefetched" Code vor der Ausführung in dem nächsten folgenden Code wird dazu modifiziert).
        Die Implementation ist offensichtlich auf einem anderen Niveau als spätere CISC-=>-RISC-Designs und ich würde die Vorbereitung eines fix innerhalb eines Befehls folgenden Bearbeitungsschritts auch nicht mit späteren Prefetchern vergleichen, die Kontextbezogen arbeiten. Aber es ist und bleibt eine, wenn man so will, Software-Abstraktionsschicht zwischen Programmcode und Ausführungseinheiten. Das man einige Funktionen auch hardcoded hat ändert ja nichts daran, dass es Microcode gibt. Soweit ich der Schilderung folgen kann, laufen aber alle Befehle über diesen – nur gibt es allgemein nicht wirklich einen Decoding-Prozessor, der den Microcode laden und verarbeiten würde, sondern Code-Speicherung und -Verarbeitung sind physisch miteinander verwoben und vielen Fällen reicht der simple Zugriff auf eine Microcode-Eintrag, um die darin enthaltenen Verarbeitungsschritte anzustoßen.

        Beim 8087 scheint das anders/deutlich komplexer und gegebenenfalls eine funktional eher mit Pentium Pro & Co vergleichbare Herangehensweise zu sein. Aber ich war für meinen Geschmack nach Konsum des zugehörigen Artikels über das MLC-Microcode-ROM schon tief genug im Kaninchenbau.^^
      • Von T-MAXX Volt-Modder(in)
        Tja, schon damals hatte man sich vor Räubern schützen können.
        Schön gemacht zu dieser Zeit...
      Direkt zum Diskussionsende
  • Print / Abo
    Apps
    PCGH Magazin 08/2026 PC Games 08/2026 play5 08/2026 N-Zone 08/2026 Linux Magazin 08/2026 LinuxUser 08/2026 Raspberry Pi Geek 09/2026
    PC Games Hardware PC Games Linux Magazin Raspberry Pi Geek Computec Kiosk