32-bit architecture

from Wikipedia, the free encyclopedia
32-bit processor

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 ”).

Architectures

... as well as various other designs.

design

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 ).

advantages

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.

Problems

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.

Similar to SIMD or AltiVec extensions, specially adapted software is usually required for 32-bit systems.

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 ).

Programming model

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.

32-bit data models
Data
model
short
(integer)
int
(integrity)
long
(integer)
pointer
(integrity)
long long
(integrity)
Example operating system / compiler
LP32 0000 16 16 32 32 Apple MacIntosh for Motorola 68k, Microsoft API for Intel x86
ILP32 0000 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 0000 16 32 64 32 64 Ultrix (1982–1995), 64-bit long-long alias only with later GNU C.

See also

Individual evidence

  1. ^ 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).
  2. Basics of computer science: ALU and memory ( PDF , ≈ 200 kB) - at TH-Nürnberg (published [or last uploaded] on November 28, 2002)
  3. ... 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)
  4. The 4GB problem - WB Wiki. Retrieved July 2, 2018 .
  5. Axel Vahldiek: Compatibility problems: switch from 32 to 64 bit. Retrieved July 2, 2018 .
  6. chessprogramming - IBM 360.Retrieved July 2, 2018 .
  7. IBM Knowledge Center. Retrieved July 2, 2018 (American English).
  8. ^ Rationale for International Standard - Programming Languages ​​- C. (PDF) The Open Group, April 2003, accessed May 13, 2020 .
  9. unix.org
  10. ^ Adding Large File Support to the Single UNIX® Specification. The Open Group, August 14, 1996, accessed May 13, 2020 .
  11. ^ Sergey Vasiliev: The forgotten problems of 64-bit programs development. August 14, 2014, accessed May 13, 2020 .
  12. The data model is a property of the compiler under the corresponding target operating system, not of the operating system alone.
  13. h30266.www3.hpe.com