In IT, 32-bit architecture is a processor architecture with a processing width of 32 bits . Processors that use a 32-bit architecture are often referred to as "32-bit processors". Similarly, computer programs designed for such an architecture are also given the 32-bit property (eg “32-bit operating system ”).
- from Digital or later Compaq the VAX architecture (32-bit from 1977 in the VAX-11 super mini- computer )
- of National Semiconductor , the NS32000 series (from 1977)
- Processors of the x86 family built by Intel , AMD and others (from 1978, full 32-bit architecture with i386 from 1985, since 2003 with x64 also 64-bit)
- from Motorola the 68000 family (from 1979, full 32-bit architecture with 68020 from 1984)
- from MIPS (later SGI ) the MIPS architecture (32 bit from 1985 and as 64 bit from 1991)
- from ARM , the ARM architecture , licensed to numerous processor (32-bit and 64-bit from 1985 from 2013)
- from Sun Microsystems the SPARC series (32-bit from 1987 and as 64-bit UltraSPARC from 1995)
- from Apple / IBM / Motorola the PowerPC series (32-bit and 64-bit, both from 1992)
- of Infineon , the TriCore architecture (from 1999)
- from Atmel , the AVR32 architecture (from 2006)
- DLX microprocessor : 32-bit hypothetical architecture
... as well as various other designs.
To put it simply, 32- bit means that the processors, thanks to their ALU design, are designed so that two 32-bit numbers (i.e. 4 bytes ) can be processed at the same time (e.g. adding two 4-byte numbers). This includes the external and internal design of the data bus and the width of the register set . This applies analogously to the common addressing types, whereby the bit width of the computing unit can differ fundamentally from that of the address unit (as is also the case with 64-bit CPUs, for example ).
The advantages of higher-bit CPUs are the simpler calculation of larger integer values (due to the wider ALU), which, for example, has advantages in encryption algorithms , graphic calculations ( e.g. fixed-point arithmetic for computer games), 32-bit file systems or multimedia formats ( MPEG-2 , MP3 ). The expansion to 32 bit also brings the possibility of working with up to 4 gigabytes of RAM, which is an enormous improvement compared to 16-bit, which can only process 16 megabytes.
Without specially adapted operating systems, however, there is usually no great advantage to be gained from the change from 16- bit to 32-bit CPUs.
However, not every system with a 32-bit wide data path also has a 32-bit wide address path , i.e. a 4 GiB address space . Older IBM mainframes ( System / 360 and System / 370 ) only used 24 bits for addressing (16 MiB address space). Since the surplus byte was used by the operating system and application programs for flag bits , the transition to 31-bit addressing (2 GiB address space) with only one flag bit was complex. In some systems the address path is narrower or larger than 32 bits. Since the Pentium Pro z. B. address the x86 CPUs with 36 bits, which corresponds to an address space of 64 GiB ( physical address extension ).
In the C programming language , the number of bits is reflected in the size of the data types void * , int and sometimes also with long , as well as their unsigned counterparts. With the spread of 32-bit architectures, the three types have usually been set equally to the width of 32 bits, so that data of Int type, Long type and pointer type are the same. This is called ILP32 for short . For downward compatibility with the 16-bit architecture, which was mostly implemented as IP16, the Int type was partly left at 16-bit, called LP32, or the long type was set to double the width of 64-bit, called IP32 . The first versions of DOS / Windows and Mac-OS worked with LP32 and 16-bit "int", while early Ultrix versions worked with IP32 and 64-bit "long". Such programming models have not caught on, however - all of today's Unix-like 32-bit operating systems express the 32-bit architecture in an ILP32 type model.
The "long long" data type in C was only introduced in the course of the standardization for C99 (from 1995) to replace the proliferation of previous definitions. He was naturalized in the Unix environment to write software simultaneously for ILP32 and LP64 of the emerging 64-bit architectures , whereby "long" and "pointer" are each the same size, and 64-bit arithmetic is equally available. The associated 64-bit large file support , in order to still be able to process large files in ILP32 systems, was introduced in Single UNIX Specification Version 2 (UNIX 98), based on the manufacturer-independent "Large File Summit" of 1996.
||Example operating system / compiler|
|LP32||16||16||32||32||Apple MacIntosh for Motorola 68k, Microsoft API for Intel x86|
|ILP32||16||32||32||32||IBM 370, VAX Unix, older workstations (VAX has long-long only for DEC / Alpha 64-Bit)|
|ILP32 LL64||16||32||32||32||64||Microsoft Win32 , Amdahl, Convex, Unix systems from 1990|
|IP32||16||32||64||32||64||Ultrix (1982–1995), 64-bit long-long alias only with later GNU C.|
- Harry Phillips: New Perspectives on Microsoft Windows Vista for Power Users . Cengage Learning, 2008, ISBN 978-1-4239-0603-2 , pp. 16 (English, limited preview in Google Book Search).
- Basics of computer science: ALU and memory ( PDF , ≈ 200 kB) - at TH-Nürnberg (published [or last uploaded] on November 28, 2002)
- ... also called address set (or English address unit and AU for short ), see also address unit (AU) & bus interface (BIU) (at TecChannel , on October 18, 1999)
- The 4GB problem - WB Wiki. Retrieved July 2, 2018 .
- Axel Vahldiek: Compatibility problems: switch from 32 to 64 bit. Retrieved July 2, 2018 .
- chessprogramming - IBM 360.Retrieved July 2, 2018 .
- IBM Knowledge Center. Retrieved July 2, 2018 (American English).
- Rationale for International Standard - Programming Languages - C. (PDF) The Open Group, April 2003, accessed May 13, 2020 .
- Adding Large File Support to the Single UNIX® Specification. The Open Group, August 14, 1996, accessed May 13, 2020 .
- Sergey Vasiliev: The forgotten problems of 64-bit programs development. August 14, 2014, accessed May 13, 2020 .
- The data model is a property of the compiler under the corresponding target operating system, not of the operating system alone.