32-bit computing: Difference between revisions

Content deleted Content added
No edit summary
m KB = 1000, not 1024
Tag: Reverted
Line 1:
{{Short description|Computer architecture bit width}}
{{Computer architecture bit widths}}
In [[computer architecture]], '''32-bit computing''' refers to computer systems with a [[Central processing unit|processor]], [[computer memory|memory]], and other major system components that operate on data in 32-[[bit]] units.<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. Typical 32-bit [[Personal computer|personal computers]] also have a 32-bit [[address bus]], permitting up to 4 GB[[gibibyte|GiB]] of [[random-access memory|RAM]] to be accessed, far more than previous generations of system architecture allowed.<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 computer|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 [[Apple Macintosh]]. Fully 32-bit microprocessors such as the [[HP FOCUS]], [[Motorola 68020]] and [[i386|Intel 80386]] were launched in the early to mid 1980s and became dominant by the early 1990s. This generation of personal computers coincided with and 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, the PC and server market has moved on to 64 bits with [[x86-64]] since the mid-2000s with installed memory often exceeding the 32-bit 4G4&nbsp;GiB RAM address limits on entry level computers. The latest generation of mobile phones have also switched to 64 bits.
 
== Range for storing integers ==
A 32-bit 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|integer 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]].
 
One important consequence is that a processor with 32-bit [[memory address]]es can directly access at most 4&nbsp;[[Gibibyte|GiB]] of [[Byte addressing|byte-addressable]] memory (though in practice the limit may be lower).
 
== Technical history ==
The world's first stored-program [[electronic computer]], the [[Manchester Baby]], used a 32-bit architecture in 1948, 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.
 
Line 17:
Despite this, such processors could be labeled ''32-bit'', since they still had 32-bit registers and instructions able 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=http://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 the external address bus is 36 bits wide, giving a larger address space than 4&nbsp;GBGiB, and the external data bus is 64 bits wide, primarily in order to permit a more efficient prefetch of instructions and data.<ref>{{cite journal|last=Gwennap|first=Linley|date=16 February 1995|url=http://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>
 
== Architectures ==
Prominent 32-bit instruction set architectures used in general-purpose computing include the [[IBM System/360]], [[IBM System/370]] (which had [[24-bit computing|24-bit]] addressing), [[System/370-XA]], [[ESA/370]], and [[ESA/390]] (which had [[31-bit computing|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.
 
== {{anchor|32-bit application}} Applications ==
On the [[x86 architecture]], a 32-bit application normally means [[software]] that typically (not necessarily) uses the 32-bit linear [[address space]] (or [[flat memory model]]) possible with the [[80386]] and later chips. In this context, the term came about because [[DOS]], [[Microsoft 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 [[Intel 80286|80286]], [[16-bit computing|16-bit]] microprocessors with a [[memory segment|segment]]ed address space where programs had to switch between segments to reach more than 64 [[kilobytekibibyte|KiB]]s of [[object file|code]] or data. As this is quite time-consuming in comparison to other machine operations, the performance may suffer. Furthermore, [[computer programming|programming]] with segments tend to become complicated; special ''far'' and ''near'' keywords or ''[[C memory model|memory model]]s'' had to be used (with care), not only in [[assembly language]] but also in high level languages such as [[Pascal programming language|Pascal]], compiled [[BASIC]], [[Fortran]], [[C (programming language)|C]], etc.
 
The 80386 and its successors fully support the 16-bit segments of the 80286 but also segments for 32-bit address offsets (using the new 32-bit width of the main registers). 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]].
 
== Images ==
In digital images/pictures, 32-bit usually refers to [[RGBA color space]]; that is, 24-bit [[24-bit color|truecolor]] images with an additional 8-bit [[alpha channel]]. Other image formats also specify 32 bits per pixel, such as [[RGBE image format|RGBE]].
 
Line 34:
For example, a reflection in an oil slick is only a fraction of that seen in a mirror surface. HDR imagery allows for the reflection of highlights that can still be seen as bright white areas, instead of dull [[grey]] shapes.
 
== File formats ==
A 32-bit file format is a [[binary file]] [[file format|format]] for which each elementary information is defined on 32 bits (or 4 [[byte]]s). An example of such a format is the [[Windows Metafile|Enhanced Metafile Format]].
 
== See also ==
* [[64-bit computing]]
* [[Fifth generation of video game consoles|History of video games (32-bit era)]]
Line 43:
* [[Physical Address Extension]] (PAE)
 
== References ==
{{Reflist}}
 
== External links ==
* [http://computer.howstuffworks.com/bytes.htm HOW Stuff Works "How Bits and Bytes work"]
* {{cite web|url=http://www.lockergnome.com/windows/2009/01/07/32-bit-vs-64-bit-windows/|title=Ken Colburn on LockerGnome.com: ''32-Bit Vs. 64-Bit Windows''|archive-url=https://web.archive.org/web/20160330025419/http://www.lockergnome.com/windows/2009/01/07/32-bit-vs-64-bit-windows/|archive-date=2016-03-30}}