IA-32

IA-32 (kurz für "Intel Architektur, 32-Bit", manchmal auch genannt i386[1][2])[3] ist der 32-Bit Version des x86 Anweisungsset Architektur, entworfen von Intel und zuerst implementiert in der 80386 Mikroprozessor 1985. IA-32 ist die erste Inkarnation von x86, die 32-Bit-Computing unterstützt;[4] Infolgedessen kann der Begriff "IA-32" als Ergebnis verwendet werden Metonym Um auf alle X86-Versionen zu verweisen, die 32-Bit-Computing unterstützen.[5][6]

Innerhalb verschiedener Programmiersprache Richtlinien, IA-32 wird manchmal immer noch als "i386" -Architektur bezeichnet. In einigen anderen Kontexten werden manchmal bestimmte Iterationen des IA-32 ISA gekennzeichnet I486, i586 und i686, Bezieht sich auf die Anweisung Supersets angeboten von der 80486, das P5 und die P6 microarchitekturen beziehungsweise. Diese Updates boten zahlreiche Ergänzungen neben dem Basis-IA-32-Set, einschließlich Schwimmpunktfähigkeiten und die MMX -Erweiterungen.

Intel war historisch gesehen der größte Hersteller von IA-32-Prozessoren, wobei der zweitgrößte Lieferant war AMD. In den 1990er Jahren, ÜBER, Transmeta und andere Chiphersteller produzierten auch IA-32-kompatible Prozessoren (z. Winchip). In der modernen Zeit produzierte Intel immer noch IA-32-Prozessoren unter dem Intel Quark Mikrocontroller Plattform bis 2019; Seit den 2000er Jahren bewegte sich die Mehrheit der Hersteller (intel eingeschlossen) jedoch fast ausschließlich in die Implementierung von CPUs basierend auf der 64-Bit-Variante von x86. x86-64. X86-64 bietet nach Spezifikation ältere Betriebsmodi, die auf dem IA-32 ISA für die Rückwärtskompatibilität arbeiten. Selbst angesichts der zeitgenössischen Prävalenz von x86-64 werden ab 2018 immer noch IA-32-geschützte Modusversionen vieler modernen Betriebssysteme aufrechterhalten, z. Microsoft Windows (bis um Windows 10; Windows 11 erfordert x86-64-Kompatibler Prozessor für x86 -Versionen)[7] und die Debian Linux Verteilung.[8] Trotz des Namens von IA-32 (und zu einer möglichen Verwirrung) würde die 64-Bit-Entwicklung von x86, die aus AMD stammt Die Itanium -Architektur von Intel.

Architektonische Besonderheiten

Das primäre definierende Merkmal von IA-32 ist die Verfügbarkeit von 32-Bit-Allzweck Prozessorregister (Zum Beispiel EAX und EBX), 32-Bit ganze Zahl arithmetische und logische Operationen, 32-Bit-Offsets innerhalb eines Segments in Sicherheitsmodusund die Übersetzung segmentierter Adressen in 32-Bit-lineare Adressen. Die Designer nutzten die Gelegenheit, auch andere Verbesserungen vorzunehmen. Einige der bedeutendsten Veränderungen (relativ zum 16-Bit 286 Anweisungssatz) werden unten beschrieben.

32-Bit-Ganzzahlfunktion
Alle allgemeine Register (GPRS) werden von 16 erweitertBits Zu 32 Bits und alle arithmetischen und logischen Operationen können Speicher-zu-Register- und Registrierungs-zu-Memory-Vorgänge usw. direkt auf 32-Bit-Ganzzahlen arbeiten. Drückt und knallt auf der Stapel Standard zu 4-Byte-Schritten und nicht segmentiert Zeiger sind 4 Bytes breit.
Allgemeinere Adressmodi
Jeder GPR kann als Basisregister verwendet werden, und jeder andere GPR als ESP kann als Indexregister in einer Speicherreferenz verwendet werden. Der Indexregisterwert kann mit 1, 2, 4 oder 8 multipliziert werden, bevor der Basisregisterwert und die Verschiebung hinzugefügt werden.
Zusätzliche Segmentregister
Es werden zwei zusätzliche Segmentregister, FS und GS, bereitgestellt.
Größerer virtueller Adressraum
Die IA-32-Architektur definiert ein 48-Bit-segmentiertes Adressformat mit einer 16-Bit-Segmentnummer und einem 32-Bit-Versatz innerhalb des Segments. Segmentierte Adressen werden auf 32-Bit-lineare Adressen zugeordnet.
Paging fordern
32-Bit-lineare Adressen sind eher virtuelle Adressen als physische Adressen. Sie werden durch a in physische Adressen übersetzt Seitentabelle. Im 80386, 80486, und die Originalpentium Prozessoren, die physische Adresse betrug 32 Bit; in dem Pentium Pro und spätere Prozessoren, die Erweiterung der physischen Adresse 36-Bit-physische Adressen erlaubt, obwohl die lineare Adressgröße immer noch 32 Bit betrug.

Betriebsmodi

Betriebsart Betriebssystem erforderlich Art des Codes ausgeführt Standardadressgröße Standard -Operandengröße Typisch GPR Breite
Sicherheitsmodus 32-Bit-Betriebssystem oder Bootlader 32-Bit-geschützter Mode-Code 32 Bit 32 Bit 32 Bit
16-Bit-Betriebssystem oder Bootloader oder 32-Bit-Bootloader 16-Bit-geschützter Mode-Code 16 Bit 16 Bit 16 oder 32 Bit
Virtueller 8086 -Modus 16- oder 32-Bit-Betriebsmodus-Betriebssystem 16-Bit-Real-Mode-Code 16 Bit 16 Bit 16 oder 32 Bit
Realer Modus 16-Bit-Real-Mode-Betriebssystem oder Bootloader oder 32-Bit-Bootloader 16-Bit-Real-Mode-Code 16 Bit 16 Bit 16 oder 32 Bit
Unwirklicher Modus 16-Bit-Real-Mode-Betriebssystem oder Bootloader oder 32-Bit-Bootloader 16-Bit-Real-Mode-Code 32 Bit 16 Bit 16 oder 32 Bit

Siehe auch

Verweise

  1. ^ "Dito". BSD General Commands Handbuch. Apfel. 19. Dezember 2008. archiviert von das Original am 2. Juni 2012. Abgerufen 3. August, 2013. Dünne universelle Binärdateien zur angegebenen Architektur [...] sollte als "i386", "x86_64" usw. angegeben werden.
  2. ^ "Zusätzliche vordefinierte Makros". Software.intel.com. Intel. Archiviert vom Original am 15. Februar 2021. Abgerufen 25. November, 2020.
  3. ^ Kemp, Steve. "Ausführen von 32-Bit-Anwendungen auf 64-Bit-Debian GNU/Linux". Debian Administration. Archiviert Aus dem Original am 16. September 2013. Abgerufen 31. August, 2013.
  4. ^ "Intel 64 und IA-32 Architekturen-Softwareentwicklerhandbuch". Intel Corporation. September 2014. p. 31. Archiviert Aus dem Original am 26. Januar 2012. Abgerufen 19. Dezember, 2014. Der Intel386-Prozessor war der erste 32-Bit-Prozessor in der IA-32-Architekturfamilie. Es wurde 32-Bit-Register eingeführt, um sowohl Operanden als auch die Adressierung zu verwenden.
  5. ^ Green, Ronald W. (5. Mai 2009). "Was bedeuten IA-32, Intel 64 und IA-64-Architektur?". Software.intel.com. Intel. Archiviert Aus dem Original am 19. Dezember 2014. Abgerufen 19. Dezember, 2014.
  6. ^ "Unterstützte Hardware". Ubuntu Hilfe. Kanonisch. Archiviert von das Original am 19. Dezember 2014. Abgerufen 31. August, 2013.
  7. ^ "Windows 10 Systemanforderungen und -spezifikationen | Microsoft". www.microsoft.com. Archiviert Aus dem Original am 1. Mai 2018. Abgerufen 20. August, 2018.
  8. ^ "Debian GNU/Linux auf X86 -Maschinen". Archiviert Aus dem Original am 28. April 2019. Abgerufen 20. August, 2020.