Erforschung früherer CPUs: Wie interagierten frühe Programme mit Prozessoren vor der CPUID?

In der heutigen Computerwelt ist es unglaublich einfach geworden, detaillierte Informationen über einen Prozessor zu erhalten, was größtenteils an der Einführung des CPUID-Befehls liegt. Diese Funktion entstand 1993, als Intel erstmals die Pentium- und SL-erweiterten 486-Prozessoren vorstellte. Sie ermöglicht es Programmierern, einfach den Prozessortyp und die von ihm unterstützten Funktionen wie MMX und SSE abzufragen. Bevor der CPUID-Befehl allgemein üblich wurde, verwendeten Programmierer einzigartige Methoden, um den Prozessortyp zu ermitteln, was damals ein technisches Abenteuer war.

Vor CPUID verließen sich Programmierer auf Maschinencodes, die als esoterisch galten, um subtile Unterschiede im CPU-Verhalten zu entdecken.

Mit der Einführung des 80386-Prozessors gibt der Prozessor beim Neustart seine Version über das EDX-Register an. Diese Informationen waren jedoch erst nach einem Neustart verfügbar und es gab keine Standardmöglichkeit für Anwendungen, diesen Wert direkt zu lesen. Dies bedeutet, dass Programmierer verschiedene ungewöhnliche Mittel verwenden müssen, um unterschiedliche CPUs zu identifizieren. Beispielsweise verfügten die Prozessoren der Serie 680x0 von Motorola nie über CPUID-Anweisungen. Entwickler müssen einige spezielle Anweisungen verwenden, um den Prozessortyp zu bestimmen, und diese Anweisungen erfordern eine privilegierte Ausführung. In diesem Zusammenhang markiert der 68010-Prozessor den MOVE-Befehl aus dem Statusregister als privilegiert, wodurch er den Virtualisierungsanforderungen entspricht.

Das Aufkommen des CPUID-Befehls bietet nicht nur Programmierern der x86-Architektur Komfort, sondern wirkt sich auch auf das Design anderer Architekturen wie ARM aus. Diese Architekturen stellen normalerweise Register ähnlich wie CPUID bereit, um grundlegende Informationen über den Prozessor zu erhalten.

CPUID-Aufrufprozess

Der Operationscode in CPUID ist 0F A2. In Assemblersprachen erfordert der CPUID-Befehl normalerweise keine Argumente, da er implizit das EAX-Register verwendet, um die Hauptkategorie der zurückzugebenden Informationen zu bestimmen. Dieser Aufruf wird als „Blatt“ von CPUID bezeichnet. Gemäß der Intel-Terminologie sollte EAX beim ersten Aufruf von CPUID auf 0 gesetzt werden, um die höchsten von der CPU unterstützten Funktionsparameter zu erhalten.

Um erweiterte Funktionsinformationen zu erhalten, sollte das höchste Bit von EAX des CPUID-Aufrufs auf 1 gesetzt werden.

Mit der Entwicklung der allgemeinen Computertechnik hat die effektive Reichweite vieler auf CPUID basierender Basisblätter 23 Stunden erreicht. Basierend auf dem Aufruf der CPUID können verschiedene Informationen abgerufen werden, beispielsweise die Hersteller-ID und die Unterstützung verschiedener Prozessorfunktionen. In vielen Fällen werden die zurückgegebenen Informationen nicht in der öffentlichen Dokumentation offengelegt, sodass Entwickler sich auf Erfahrung und Literatur verlassen müssen, um die Geheimnisse des Prozessors zu ergründen.

Demonstration der Datenrückgabe

Wenn EAX auf 0 gesetzt ist, gibt die CPU ihre Hersteller-ID-Zeichenfolge zurück – eine 12-stellige ASCII-Zeichenfolge, die nacheinander in den Registern EBX, EDX und ECX gespeichert ist. Nach den neuesten Informationen lautet die Hersteller-ID des Standardprozessors wie folgt:

  • AuthenticAMD – AMD
  • GenuineIntel – Intel
  • CentaurHauls – IDT WinChip/Centaur
  • TransmetaCPU – Transmeta
  • VIA, VIA, VIA – VIA

Prozessorinformationen und Feature-Flags

Indem Sie EAX auf 1 setzen, können Sie Informationen zum Prozessor-Stepping, Modell und der Serie abrufen, die für die Beurteilung der Leistung jedes Modells von entscheidender Bedeutung sind. Dies stellt die Prozessoridentifikation dar und gibt die Funktionsflags und zusätzlichen Funktionsinformationen in den Registern EAX, EDX und ECX zurück.

Alle Prozessorinformationen sind herstellerspezifisch, in den meisten Fällen werden die Werte von Intel jedoch aus Kompatibilitätsgründen von anderen Herstellern verwendet.

Das Aufkommen dieser Methode ermöglicht es Entwicklern, die physikalische Ebene des Prozessors klar zu verstehen. Mit der Zeit wird diese Technologie immer häufiger eingesetzt und fördert so die Weiterentwicklung der gesamten Computertechnologie. Darüber hinaus wird dadurch auch die Entwicklung von Mehrkernprozessoren gefördert und die kontinuierliche Weiterentwicklung nachfolgender Prozessorarchitekturen angeregt.

Fazit und Gedanken

Mit der kontinuierlichen Weiterentwicklung der Prozessortechnologie ist der Einfluss des CPUID-Befehls immer deutlicher geworden und liefert wichtige Hardwareinformationen für verschiedene Programme und Systeme. Angesichts der fortschreitenden Entwicklung zukünftiger Technologien müssen wir uns jedoch fragen: Wie können zukünftige Programme diese Hardwareeigenschaften besser verstehen und ihre Leistung optimieren, wenn sich die Hardware rasch ändert?

Trending Knowledge

Die geheime Identität des Prozessors: Wie CPUID Ihnen hilft, den CPU-Hersteller zu identifizieren?
In der heutigen Computerarchitektur sind Prozessorleistung und -funktionen ausschlaggebend für die Auswahl der richtigen Hardware. Egal ob Sie Gamer oder professioneller Programmierer sind, die unters
Warum kann Intels CPUID unser Verständnis von CPUs verändern? Wissen Sie das?
Die CPU (Central Processing Unit) ist die Kernkomponente eines Computers und über den CPUID-Befehl können Entwickler wichtige Informationen über den Prozessor erhalten. Seit Intel 1993 den Pentium vor
Das Geheimnis der CPUID-Anweisung: Wie enthüllt sie die verborgenen Eigenschaften des Prozessors?
Mit der kontinuierlichen Weiterentwicklung der Technologie stellen Benutzer immer höhere Anforderungen an Prozessoren, insbesondere in Bezug auf Leistung und Funktionen. Seit Intel 1993 erstmals die C

Responses