Seite 1 von 1

386SX / 386DX Unterscheidung

Verfasst: Di 12. Aug 2025, 11:18
von Jackintosh
Ich habe schon danach gegoogelt, aber die Ergebnisse bezogen sich rein auf die äußeren Merkmale (Datenbus-/Adressbusbreite), also 'das Übliche'.

Haben 386SX und DX unterschiedlich lange Prefetchqueues? Ich hatte mal irgendwo im Kindernet gelesen, daß man SX und DX dann durch selbstmodifizierenden Code, der in den Bereich geschrieben wird, der außerhalb der Prefetchqueue des SX aber noch vor dem Ende der Queue des DX liegt, unterscheiden kann. Also sowas:

Code: Alles auswählen

       <<< Instruktionslaufrichtung
+-----+---------------+----------------+
| ALU |  SX+DX Queue  |  nur-DX Queue  |
+-----+---------------+----------------+
                       ^^^^^^^^^^^^^^^^
                       Hierhin schreiben
Bei einem SX würde der Code im Hauptspeicher landen, dann in die Prefetchqueue geladen und ausgeführt werden. Wobei es beim DX 'zu spät' für eine Ausführung wäre.

Re: 386SX / 386DX Unterscheidung

Verfasst: Di 12. Aug 2025, 20:27
von mkarcher
Wie in https://www.rcollins.org/secrets/PrefetchQueue.html beschrieben, hat der 386SX eher eine längere Queue als einige Steppings des 386DX. Die Unterscheidung über die Queue-Länge ist ein tatsächlich Klassiker bei der Prozessor-Identifikation, allerdings ging es dabei um die Unterscheidung zwischen 8086 (3 Worte) und 8088 (4 Bytes). Der übliche Weg, einen 386SX von einem 386DX zu unterscheiden, ist das Bit, was der 80386DX in CR0 hat, mit dem gewählt werden kann, ob er einen 80287 (16-Bit-Interface) oder einen 80387 (32-Bit-Interface) als Koprozessor hat. Der 386SX hat hier keine Wahlmöglichkeit, so dass sich das entsprechende Bit ("ET" für "Extension Type") in CR0 nicht ändern lässt.

Re: 386SX / 386DX Unterscheidung

Verfasst: Di 12. Aug 2025, 20:48
von Jackintosh
Danke, dann muß ich das mißverstanden haben.
mkarcher hat geschrieben: Di 12. Aug 2025, 20:27(..) ob er einen 80287 (16-Bit-Interface) oder einen 80387 (32-Bit-Interface) als Koprozessor hat.
Heißt das, daß man einen 287 an einen 386DX anschließen könnte?

Re: 386SX / 386DX Unterscheidung

Verfasst: Di 12. Aug 2025, 21:13
von mkarcher
Jackintosh hat geschrieben: Di 12. Aug 2025, 20:48 Danke, dann muß ich das mißverstanden haben.
mkarcher hat geschrieben: Di 12. Aug 2025, 20:27(..) ob er einen 80287 (16-Bit-Interface) oder einen 80387 (32-Bit-Interface) als Koprozessor hat.
Heißt das, daß man einen 287 an einen 386DX anschließen könnte?
Genau. Und als der 80386 herauskam, war das die einzige Option, weil der 80387 noch nicht fertig war.