32-Bit-Architektur

aus Wikipedia, der freien Enzyklopadie
Zur Navigation springen Zur Suche springen
32-Bit-Prozessor

Unter 32-Bit-Architektur versteht man in der EDV eine Prozessorarchitektur , deren Verarbeitungsbreite 32 Bit betragt. Prozessoren , die eine 32-Bit-Architektur verwenden, werden haufig auch als ?32-Bit-Prozessoren“ bezeichnet. Analog dazu werden auch Computerprogramme , die auf eine solche Architektur ausgelegt sind, mit dem Attribut 32-Bit versehen (z. B. ?32-Bit- Betriebssystem “). [1]

Architekturen [ Bearbeiten | Quelltext bearbeiten ]

… sowie diverse weitere Designs.

Design [ Bearbeiten | Quelltext bearbeiten ]

Vereinfacht dargestellt bedeutet 32 Bit , dass die Prozessoren durch ihr ALU -Design so ausgelegt sind, dass zwei 32-Bit-Zahlen (also 4 Byte ) gleichzeitig verarbeitet werden konnen (beispielsweise zwei 4-Byte-Zahlen addieren). [2] Das schließt die externe und interne Gestaltung von Datenbus und die Breite des Registersatzes mit ein. Dies gilt analog fur die gangigen Adressierungs-Arten, wobei die Bitbreite der Recheneinheit sich grundsatzlich von der der Adresseinheit [3] unterscheiden kann (wie etwa auch bei 64-Bit -Prozessoren).

Vorteile [ Bearbeiten | Quelltext bearbeiten ]

Die Vorteile von hoherbittigen Prozessorarchitekturen liegen in der einfacheren Berechnung großerer Integer-Werte (durch die breitere ALU), was zum Beispiel Vorteile bei Verschlusselungsalgorithmen , grafischen Berechnungen (zum Beispiel Festkommaarithmetik fur Computerspiele), 32-Bit-Dateisystemen oder Multimediaformaten ( MPEG-2 , MP3 ) mit sich bringt. Auch bringt die Erweiterung zu 32 Bit die Moglichkeit mit, bis zu 4 Gibibyte Arbeitsspeicher zu arbeiten, was zum Vergleich zu 16-Bit, welches nur 16 Mebibyte verarbeiten kann, eine enorme Verbesserung darstellte. [4]

Probleme [ Bearbeiten | Quelltext bearbeiten ]

Bei weiterentwickelten Architekturen, die 32-Bit-Erweiterungen erhalten haben, kann allerdings ohne speziell angepasste Betriebssysteme in der Regel kein großer Vorteil aus dem Wechsel von 16- Bit - auf 32-Bit-Prozessoren gezogen werden.

Ahnlich wie bei SIMD - oder AltiVec -Erweiterungen ist also auch fur 32-Bit-Systeme gewohnlich speziell angepasste Software notig. [5]

Allerdings verfugte nicht jedes System mit 32 Bit breitem Datenpfad auch uber einen 32 Bit breiten Adresspfad , also einen 4-GiB- Adressraum . Bei alteren IBM-Großrechnern ( System/360 und System/370 ) wurden nur 24 Bit zur Adressierung verwendet (16-MiB-Adressraum). [6] Da das uberzahlige Byte von Betriebssystem und Anwendungsprogrammen fur Flagbits genutzt wurde, war der Ubergang zur 31-Bit-Adressierung (2-GiB-Adressraum) mit nur noch einem Flagbit komplex. In einigen Systemen ist der Adresspfad schmaler oder großer als 32 Bit ? beispielsweise konnen seit dem Pentium Pro einige x86-Prozessoren mit 36 Bit adressieren, was einem Adressraum von 64 GiB entspricht ( Physikalische Adresserweiterung ).

Ein anderes Problem ist das Jahr-2038-Problem .

Programmiermodell [ Bearbeiten | Quelltext bearbeiten ]

Unter der Programmiersprache C schlagt sich die Anzahl der Bits insbesondere bei der Große der Datentypen void* , int und manchmal auch bei long , sowie deren vorzeichenlosen Pendants, nieder. Mit der Verbreitung von 32-Bit-Architekturen hat man hierbei in der Regel die drei Typen gleichermaßen auf die Breite von 32 Bit gesetzt, so dass Daten von Int-Typ, Long-Typ und Zeiger-Typ gleich sind. Dieses nennt man abgekurzt ILP32 . Zur Abwartskompatibilitat mit der 16-Bit-Architektur, die meist als IP16 ausgefuhrt wurde, hatte man teils auch den Int-Typ bei 16-Bit gelassen, genannt LP32, oder den Long-Typ auf doppelte Breite von 64-Bit gesetzt, genannt IP32. [7] Die ersten Versionen von DOS/Windows und Mac-OS arbeiteten mit jener LP32 und 16-Bit ?int“, wahrend fruhe Ultrix-Versionen mit IP32 und 64-Bit ?long“ arbeiteten. Derlei Programmiermodelle haben sich jedoch nicht durchgesetzt ? alle heutigen unixartigen 32-Bit-Betriebssysteme drucken die 32-Bit-Architektur in einem ILP32-Typenmodell aus.

Der "long long" Datentyp in C wurde erst im Zuge der Standardisierung fur C99 (ab 1995) eingefuhrt um den Wildwuchs vorheriger Definitionen zu ersetzen. [8] Er hatte sich im Unix-Umfeld eingeburgert um Software gleichzeitig fur ILP32 und LP64 der aufkommenden 64-Bit-Architekturen zu schreiben, womit "long" und "pointer" jeweils die gleiche Große haben, und die 64-Bit Arithmetik gleichermaßen verfugbar ist. Der zugehorige 64-Bit Large File Support , um auch in ILP32 Systemen noch große Dateien verarbeiten zu konnen, wurde in Single UNIX Specification Version 2 (UNIX 98) eingefuhrt, [9] basierend auf dem herstellerubergreifenden ?Large File Summit“ von 1996. [10]

32-Bit-Datenmodelle [11]
Daten-
modell
short
(integer)
int
(integer)
long
(integer)
pointer
(integer)
long long
(integer)
Beispiel Betriebssystem/Compiler [12]
LP32 0 0 0 0 16 16 32 32 Apple MacIntosh fur Motorola 68k, Microsoft API fur Intel x86
ILP32 0 0 0 0 16 32 32 32 IBM 370, VAX Unix, altere Workstations (VAX hat long-long nur fur DEC/Alpha 64-Bit [13] )
ILP32 LL64 16 32 32 32 64 Microsoft Win32 , Amdahl, Convex, Unix Systeme ab 1990
IP32 0 0 0 0 16 32 64 32 64 Ultrix (1982?1995), 64-Bit long-long alias nur mit spateren GNU C

Siehe auch [ Bearbeiten | Quelltext bearbeiten ]

Einzelnachweise [ Bearbeiten | Quelltext bearbeiten ]

  1. Harry Phillips: New Perspectives on Microsoft Windows Vista for Power Users . Cengage Learning, 2008, ISBN 978-1-4239-0603-2 , S.   16 (englisch, eingeschrankte Vorschau in der Google-Buchsuche).
  2. Grundlagen der Informatik: ALU und Speicher ( PDF , ? 200 kB) ? bei der TH-Nurnberg (veroffentlicht [oder zuletzt hochgeladen] am 28. November 2002)
  3. … auch Adresswerk (oder englisch address unit und kurz AU ) genannt, siehe auch Adresseinheit (AU) & Busschnittstelle (BIU) (bei TecChannel , am 18. Oktober 1999)
  4. Das 4GB Problem ? WB Wiki. Abgerufen am 2. Juli 2018 .
  5. Axel Vahldiek: Kompatibilitatsprobleme: Umstieg von 32 auf 64 Bit. Abgerufen am 2. Juli 2018 .
  6. chessprogramming ? IBM 360. Abgerufen am 2. Juli 2018 .
  7. IBM Knowledge Center. Abgerufen am 2. Juli 2018 (amerikanisches Englisch).
  8. Rationale for International Standard ? Programming Languages ? C. (PDF) The Open Group, April 2003, abgerufen am 13. Mai 2020 .
  9. unix.org
  10. Adding Large File Support to the Single UNIX® Specification. The Open Group, 14. August 1996, abgerufen am 13. Mai 2020 .
  11. Sergey Vasiliev: The forgotten problems of 64-bit programs development. 14. August 2014, abgerufen am 13. Mai 2020 (englisch).
  12. Das Datenmodell ist eine Eigenschaft des Compilers unter dem entsprechenden Target-Betriebssystems, nicht des Betriebssystems allein.
  13. Compaq C Language Reference Manual: Chapter 3 Data Types. In: Hewlett Packard Enterprise. Archiviert vom Original (nicht mehr online verfugbar) am 4. Dezember 2020 ; abgerufen am 5. September 2023 (englisch).