32-bit computing: Difference between revisions
imported>Oklopfer m substitute per MOS:SECTIONANCHOR |
|||
| (2 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{Short description|Computer architecture bit width}} | {{Short description|Computer architecture bit width}} | ||
{{Computer architecture bit widths}} | {{Computer architecture bit widths}} | ||
32-bit designs have been used since the earliest days of electronic computing, in experimental systems and then in large [[ | '''32-bit computing''' refers to [[computer architecture|computer architectures]] with a [[Central processing unit|processor]], [[computer memory|memory]], and other major components that operate on 32-[[bit]] units of data.<ref name="PCMProsise1995">{{Cite magazine |last=Prosise |first=Jeff |date=1995-11-07 |title=16 or 32 Bits: Should It Matter to You? |url=https://books.google.com/books?id=qxIpLj9BmV8C&pg=PA321 |magazine=PC Magazine |pages=321–322 |access-date=2022-11-30}}</ref><ref name="SDFEBuchanan1997">{{Cite book |last=Buchanan |first=William |url=https://books.google.com/books?id=ufAQAAAAQBAJ&pg=PA230 |title=Software Development for Engineers : C/C++, Pascal, Assembly, Visual Basic, HTML, Java Script, Java DOS, Windows NT, UNIX. |date=1997 |publisher=Elsevier Science |isbn=978-0-08-054137-2 |location=Burlington |pages=230 |oclc=854975383}}</ref> Compared to smaller bit widths, 32-bit computers can perform large calculations more efficiently and process more data per clock cycle. From the 1980s to about 2006, typical 32-bit [[personal computer]]s had a 32-bit [[address bus]], permitting up to 4 [[GiB]] of [[RAM]] to be accessed.<ref>{{Cite book |last=Venkateswarlu |first=N.B. |title=Essential Computer and IT Fundamentals for Engineering and Science Students |publisher=S. Chand Publishing |year=2012 |isbn=978-81-219-4047-4 |pages=143}}</ref> | ||
32-bit designs have been used since the earliest days of electronic computing, in experimental systems and then in large [[mainframe]] and [[minicomputer]] systems. The first hybrid 16/32-bit [[microprocessor]], the [[Motorola 68000]], was introduced in the late 1970s and used in systems such as the original [[Macintosh]]. Fully 32-bit microprocessors such as the [[HP FOCUS]], [[Motorola 68020]] and [[Intel 80386]] were launched in the early to mid 1980s and became dominant by the early 1990s. This generation of processors enabled the first [[History of the Internet#1990–2003: Rise of the global Internet, Web 1.0|mass-adoption of the World Wide Web]]. While 32-bit architectures are still widely used in specific applications, since the mid-2000s PCs, [[smartphone]]s, and servers have moved on to [[64 bits]] using architectures such as [[x86-64]], with installed memory in entry-level computers often exceeding the 32-bit address limit of 4 GiB.{{Citation needed|date=June 2026}} | |||
==Range for storing integers== | ==Range for storing integers== | ||
A 32-bit [[processor register|register]] can store 2<sup>32</sup> different values. The [[range (computer programming)|range]] of [[integer]] values that can be stored in 32 bits depends on the [[Integer (computer science)#Value and representation| | A 32-bit [[processor register|register]] can store 2<sup>32</sup> different values. The [[range (computer programming)|range]] of [[integer]] values that can be stored in 32 bits depends on the [[Integer (computer science)#Value and representation|representation]] used. With the two most common representations, the range is 0 through [[4,294,967,295]] (2<sup>32</sup> − 1) for representation as an ([[signedness|unsigned]]) [[binary number]], and −2,147,483,648 (−2<sup>31</sup>) through [[2,147,483,647]] (2<sup>31</sup> − 1) for representation as [[two's complement]]. | ||
This means a processor with 32-bit [[memory address#Logical addresses|logical or virtual addresses]] can directly access at most 4 GiB of [[byte-addressable]] address space. A processor with 32-bit [[memory address#Physical addresses|physical addresses]] can directly access at most 4 GiB of byte-addressable [[main memory]]; 32-bit processors don't necessarily always use 32-bit physical addresses, and implementations using more or fewer exist.<ref>{{Cite book |last=Harris |first=David Money |url=https://books.google.com/books?id=-DG18Nf7jLcC&pg=PA567 |title=Digital Design and Computer Architecture |last2=Harris |first2=Sarah L. |date=2013 |publisher=Elsevier |isbn=978-0-12-394424-5 |pages=567 |language=en}}</ref> | |||
==Technical history== | ==Technical history== | ||
[[File:XC68020 top p1160084.jpg|thumb|Motorola 68020 prototype | [[File:XC68020 top p1160084.jpg|thumb|A 1984 Motorola 68020 prototype. It features a 32-bit ALU, addresses, and data buses.]] | ||
In 1948 the [[Manchester Baby]], the first stored-program [[electronic computer]], used a 32-bit architecture although it was only a [[proof of concept]] and had little practical capacity. It held only 32 32-bit words of RAM on a [[Williams tube]], and had no addition operation, only subtraction. | |||
Memory, | Memory, other digital [[electronic circuit|circuits]], and wiring was expensive during the first decades of 32-bit architectures (the 1960s to the 1980s).<ref>{{cite book|last1=Patterson|first1=David|last2=Ditzel|first2=David|title=Readings in Computer Architecture|date=2000|publisher=Academic Press|location=San Diego|isbn=9781558605398|page=136}}</ref> Older 32-bit processor families often had many compromises and limitations to cut costs. This could include a 16-bit [[Arithmetic logic unit|ALU]], or buses narrower than 32 bits, which limited memory size or reduced the speed of operations. | ||
These early processors are still ''32-bit'', having 32-bit registers and instructions to manipulate 32-bit quantities. For example, the [[IBM System/360 Model 30]] had an 8-bit ALU, 8-bit internal data paths, and an 8-bit path to memory,<ref>{{cite manual|url=https://www.bitsavers.org/pdf/ibm/360/functional_characteristics/GA24-3231-7_360-30_funcChar.pdf|title=IBM System/360 Model 30 Functional Characteristics|pages=8, 9|publisher=IBM|date=August 1971|id=GA24-3231-7}}</ref> and the original [[Motorola 68000]] had a 16-bit data ALU and a 16-bit external data bus, but had 32-bit registers and a 32-bit oriented instruction set. The 68000 design was sometimes referred to as ''16/32-bit''.<ref>{{cite web|title=Motorola 68000 Family Programmer's Reference Manual|url=https://www.nxp.com/docs/en/reference-manual/M68000PRM.pdf|page=1{{hyp}}1|date=1992|access-date=18 January 2022}}</ref> | |||
However, the opposite is often true for newer 32-bit designs. For example, the [[Pentium Pro]] processor is a 32-bit machine, with 32-bit registers and instructions that manipulate 32-bit quantities, but | However, the opposite is often true for newer 32-bit designs. For example, the [[Pentium Pro]] processor is a 32-bit machine, with 32-bit registers and instructions that manipulate 32-bit quantities, but has an 36 bit wide external address bus, giving a larger address space than 4 GB, and a 64 bit wide external data bus, allowing more efficient prefetch of instructions and data.<ref>{{cite journal|last=Gwennap|first=Linley|date=16 February 1995|url=https://www.eecg.toronto.edu/~moshovos/ACA05/read/ppro1.pdf|title=Intel's P6 Uses Decoupled Superscalar Design|journal=[[Microprocessor Report]]|access-date=3 December 2012}}</ref> Likewise, the [[PowerPC 604]] is a 32-bit machine with a 64-bit external data bus.<ref>{{cite journal|url=https://websrv.cecs.uci.edu/~papers/mpr/MPR/ARTICLES/080501.pdf|last1=Gwennap|first1=Linley|date=April 18, 1994|title=PPC 604 Powers Past Pentium|journal=[[Microprocessor Report]]|volume=8|issue=5|access-date=8 December 2025}}</ref> | ||
==Architectures== | ==Architectures== | ||
Prominent 32-bit instruction set architectures used in general-purpose computing include the [[IBM System/360]], [[IBM System/370]] (which had [[ | Prominent 32-bit instruction set architectures used in general-purpose computing include the [[IBM System/360]], [[IBM System/370]] (which had [[24-bit]] addressing), [[System/370-XA]], [[ESA/370]], and [[ESA/390]] (which had [[31-bit]] addressing), the [[Digital Equipment Corporation|DEC]] [[VAX]], the [[NS320xx]], the [[Motorola 68000 family]] (the first two models of which had 24-bit addressing), the [[Intel]] [[IA-32]] 32-bit version of the [[x86]] architecture, and the 32-bit versions of the [[ARM architecture|ARM]],<ref>{{cite web|title=ARM architecture overview|url=https://web.eecs.umich.edu/~prabal/teaching/eecs373-f10/readings/ARM_Architecture_Overview.pdf}}</ref> [[SPARC]], [[MIPS architecture|MIPS]], [[PowerPC]] and [[PA-RISC]] architectures. 32-bit instruction set architectures used for embedded computing include the 68000 family and [[ColdFire]], x86, ARM, MIPS, PowerPC, and [[Infineon TriCore]] architectures. | ||
== | ==<span class="anchor" id="32-bit application"></span> Applications== | ||
On the [[x86 architecture]], | On the [[x86 architecture]], 32-bit applications normally use the 32-bit linear [[address space]] possible with the [[80386]] and later chips. The term came about because [[MS-DOS]], [[Windows]] and [[OS/2]]<ref>''There were also variants of [[UNIX]] for the 80286''.</ref> were originally written for the [[Intel 8088|8088/8086]] or [[80286]], [[16-bit]] microprocessors with a [[memory segment|segment]]ed address space where programs had to switch between segments to reach more than 64 [[kilobyte]]s of memory, causing performance to suffer. [[computer programming|Programming]] with segments is complicated; requiring special keywords or ''[[C memory model|memory model]]s'' in [[assembly language|assembly]] and high level languages. | ||
The 80386 and | The 80386 and successors support the 80286's 16-bit segments reuse the technique for 32-bit address offsets. If the [[base address]] of all 32-bit segments is set to 0, and segment registers are not used explicitly, the segmentation can be forgotten and the processor appears as having a simple linear 32-bit address space. [[Operating system]]s like Windows or OS/2 provide the possibility to run 16-bit (segmented) programs as well as 32-bit programs. The former possibility exists for [[backward compatibility]] and the latter is usually meant to be used for new [[software engineering|software development]].<ref>{{FOLDOC|32-bit+application}}</ref> | ||
==Images== | ==Images== | ||
32-bit digital images usually refers to [[RGBA color space|RGBA]] color space, with every pixel using eight bits each for red, green, blue and [[alpha channel|transparency]]. Other image formats such as [[RGBE image format|RGBE]] also use 32 bits per pixel. | |||
In digital images, 32-bit sometimes refers to [[high-dynamic-range imaging]] (HDR) formats that use 32 bits per channel, a total of 96 bits per pixel. 32-bit-per-channel images are used to represent values more precisely than [[sRGB]] color space allows. This precision can be used to retain more detail when editing the image. | |||
==File formats== | ==File formats== | ||
| Line 40: | Line 40: | ||
==See also== | ==See also== | ||
* [[Fifth generation of video game consoles | * [[Fifth generation of video game consoles]], gaming platforms using 32-bit computing | ||
* [[Word (computer architecture)]] | * [[Word (computer architecture)]] | ||
* [[Physical Address Extension]] (PAE) | * [[Physical Address Extension]] (PAE) | ||
Latest revision as of 22:48, 28 June 2026
Template:Short description Template:Computer architecture bit widths
32-bit computing refers to computer architectures with a processor, memory, and other major components that operate on 32-bit units of data.[1][2] Compared to smaller bit widths, 32-bit computers can perform large calculations more efficiently and process more data per clock cycle. From the 1980s to about 2006, typical 32-bit personal computers had a 32-bit address bus, permitting up to 4 GiB of RAM to be accessed.[3]
32-bit designs have been used since the earliest days of electronic computing, in experimental systems and then in large mainframe and minicomputer systems. The first hybrid 16/32-bit microprocessor, the Motorola 68000, was introduced in the late 1970s and used in systems such as the original Macintosh. Fully 32-bit microprocessors such as the HP FOCUS, Motorola 68020 and Intel 80386 were launched in the early to mid 1980s and became dominant by the early 1990s. This generation of processors enabled the first mass-adoption of the World Wide Web. While 32-bit architectures are still widely used in specific applications, since the mid-2000s PCs, smartphones, and servers have moved on to 64 bits using architectures such as x86-64, with installed memory in entry-level computers often exceeding the 32-bit address limit of 4 GiB.Script error: No such module "Unsubst".
Range for storing integers
A 32-bit register can store 232 different values. The range of integer values that can be stored in 32 bits depends on the representation used. With the two most common representations, the range is 0 through 4,294,967,295 (232 − 1) for representation as an (unsigned) binary number, and −2,147,483,648 (−231) through 2,147,483,647 (231 − 1) for representation as two's complement.
This means a processor with 32-bit logical or virtual addresses can directly access at most 4 GiB of byte-addressable address space. A processor with 32-bit physical addresses can directly access at most 4 GiB of byte-addressable main memory; 32-bit processors don't necessarily always use 32-bit physical addresses, and implementations using more or fewer exist.[4]
Technical history
In 1948 the Manchester Baby, the first stored-program electronic computer, used a 32-bit architecture although it was only a proof of concept and had little practical capacity. It held only 32 32-bit words of RAM on a Williams tube, and had no addition operation, only subtraction.
Memory, other digital circuits, and wiring was expensive during the first decades of 32-bit architectures (the 1960s to the 1980s).[5] Older 32-bit processor families often had many compromises and limitations to cut costs. This could include a 16-bit ALU, or buses narrower than 32 bits, which limited memory size or reduced the speed of operations.
These early processors are still 32-bit, having 32-bit registers and instructions to manipulate 32-bit quantities. For example, the IBM System/360 Model 30 had an 8-bit ALU, 8-bit internal data paths, and an 8-bit path to memory,[6] and the original Motorola 68000 had a 16-bit data ALU and a 16-bit external data bus, but had 32-bit registers and a 32-bit oriented instruction set. The 68000 design was sometimes referred to as 16/32-bit.[7]
However, the opposite is often true for newer 32-bit designs. For example, the Pentium Pro processor is a 32-bit machine, with 32-bit registers and instructions that manipulate 32-bit quantities, but has an 36 bit wide external address bus, giving a larger address space than 4 GB, and a 64 bit wide external data bus, allowing more efficient prefetch of instructions and data.[8] Likewise, the PowerPC 604 is a 32-bit machine with a 64-bit external data bus.[9]
Architectures
Prominent 32-bit instruction set architectures used in general-purpose computing include the IBM System/360, IBM System/370 (which had 24-bit addressing), System/370-XA, ESA/370, and ESA/390 (which had 31-bit addressing), the DEC VAX, the NS320xx, the Motorola 68000 family (the first two models of which had 24-bit addressing), the Intel IA-32 32-bit version of the x86 architecture, and the 32-bit versions of the ARM,[10] SPARC, MIPS, PowerPC and PA-RISC architectures. 32-bit instruction set architectures used for embedded computing include the 68000 family and ColdFire, x86, ARM, MIPS, PowerPC, and Infineon TriCore architectures.
Applications
On the x86 architecture, 32-bit applications normally use the 32-bit linear address space possible with the 80386 and later chips. The term came about because MS-DOS, Windows and OS/2[11] were originally written for the 8088/8086 or 80286, 16-bit microprocessors with a segmented address space where programs had to switch between segments to reach more than 64 kilobytes of memory, causing performance to suffer. Programming with segments is complicated; requiring special keywords or memory models in assembly and high level languages.
The 80386 and successors support the 80286's 16-bit segments reuse the technique for 32-bit address offsets. If the base address of all 32-bit segments is set to 0, and segment registers are not used explicitly, the segmentation can be forgotten and the processor appears as having a simple linear 32-bit address space. Operating systems like Windows or OS/2 provide the possibility to run 16-bit (segmented) programs as well as 32-bit programs. The former possibility exists for backward compatibility and the latter is usually meant to be used for new software development.[12]
Images
32-bit digital images usually refers to RGBA color space, with every pixel using eight bits each for red, green, blue and transparency. Other image formats such as RGBE also use 32 bits per pixel.
In digital images, 32-bit sometimes refers to high-dynamic-range imaging (HDR) formats that use 32 bits per channel, a total of 96 bits per pixel. 32-bit-per-channel images are used to represent values more precisely than sRGB color space allows. This precision can be used to retain more detail when editing the image.
File formats
A 32-bit file format is a binary file format for which each elementary information is defined on 32 bits (or 4 bytes). An example of such a format is the Enhanced Metafile Format.
See also
- Fifth generation of video game consoles, gaming platforms using 32-bit computing
- Word (computer architecture)
- Physical Address Extension (PAE)
References
<templatestyles src="Reflist/styles.css" />
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ There were also variants of UNIX for the 80286.
- ↑ <templatestyles src="Citation/styles.css"/>This article is based on material taken from 32-bit+application at the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.
Script error: No such module "Check for unknown parameters".
External links
- HOW Stuff Works "How Bits and Bytes work"
- Script error: No such module "citation/CS1".
Template:CPU technologies Script error: No such module "Authority control".