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]
… sowie diverse weitere Designs.
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).
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]
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
.
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
|
- ↑
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).
- ↑
Grundlagen der Informatik: ALU und Speicher
(
PDF
, ? 200 kB) ? bei der
TH-Nurnberg
(veroffentlicht [oder zuletzt hochgeladen] am 28. November 2002)
- ↑
… auch
Adresswerk
(oder englisch
address unit
und kurz
AU
) genannt, siehe auch
Adresseinheit (AU) & Busschnittstelle (BIU)
(bei
TecChannel
, am 18. Oktober 1999)
- ↑
Das 4GB Problem ? WB Wiki.
Abgerufen am 2. Juli 2018
.
- ↑
Axel Vahldiek:
Kompatibilitatsprobleme: Umstieg von 32 auf 64 Bit.
Abgerufen am 2. Juli 2018
.
- ↑
chessprogramming ? IBM 360.
Abgerufen am 2. Juli 2018
.
- ↑
IBM Knowledge Center.
Abgerufen am 2. Juli 2018
(amerikanisches Englisch).
- ↑
Rationale for International Standard ? Programming Languages ? C.
(PDF) The Open Group, April 2003,
abgerufen am 13. Mai 2020
.
- ↑
unix.org
- ↑
Adding Large File Support to the Single UNIX® Specification.
The Open Group, 14. August 1996,
abgerufen am 13. Mai 2020
.
- ↑
Sergey Vasiliev:
The forgotten problems of 64-bit programs development.
14. August 2014,
abgerufen am 13. Mai 2020
(englisch).
- ↑
Das Datenmodell ist eine Eigenschaft des Compilers unter dem entsprechenden Target-Betriebssystems, nicht des Betriebssystems allein.
- ↑
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).