Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
32-bit computing
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{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 a maximum of 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 [[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-bit computing|64 bits]] with [[x86-64]] and other 64-bit architectures since the mid-2000s with installed memory often exceeding the 32-bit address limit of 4 GiB on entry level computers. The latest generation of [[smartphone]]s have also switched to 64 bits. ==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|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 [[Gibibyte|GiB]] of [[Byte addressing|byte-addressable]] memory (though in practice the limit may be lower). ==Technical history== [[File:XC68020 top p1160084.jpg|thumb|Motorola 68020 prototype from 1984. It features a 32-bit ALU and 32-bit address and data buses.]] 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. Memory, as well as 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 (or simpler, cheaper variants thereof) could therefore have many compromises and limitations in order to cut costs. This could be a 16-bit [[Arithmetic logic unit|ALU]], for instance, or external (or internal) buses narrower than 32 bits, limiting memory size or demanding more cycles for instruction fetch, execution or write back. 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 GB, 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 [[kilobyte]]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]].<ref>{{FOLDOC|32-bit+application}}</ref> ==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]]. 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 brighter than what [[sRGB]] color space allows (brighter than white); these values can then be used to more accurately retain bright highlights when either lowering the exposure of the image or when it is seen through a dark filter or dull reflection. 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== * [[Fifth generation of video game consoles|History of video games (32-bit era)]] * [[Word (computer architecture)]] * [[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}} {{CPU technologies}} {{Authority control}} [[Category:Data unit]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Anchor
(
edit
)
Template:Authority control
(
edit
)
Template:CPU technologies
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite magazine
(
edit
)
Template:Cite manual
(
edit
)
Template:Cite web
(
edit
)
Template:Computer architecture bit widths
(
edit
)
Template:FOLDOC
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Talk other
(
edit
)