8-bit computing: Difference between revisions

Content deleted Content added
GreenC bot (talk | contribs)
Removed a paragraph from the lead. This paragraph appears verbatim on the 16-bit computing article.
 
(6 intermediate revisions by 5 users not shown)
Line 3:
{{multiple issues|
{{more citations needed|date=October 2009}}
{{primary sources|date=August 2012}}
{{Original research|date=May 2019}}
}}
{{Computer architecture bit widths}}
{{Use dmy dates|date=May 2025}}
In [[computer architecture]], '''8-bit''' [[Integerinteger (computer science)|integer]]s or other [[Datadata (computing)|data]] units are those that are 8 [[bit]]s wide (1 [[octet (computing)|octet]]). Also, 8-bit [[central processing unit]] (CPU) and [[arithmetic logic unit]] (ALU) architectures are those that are based on [[processor register|register]]s or [[Busbus (computing)|data bus]]es of that size. [[Memory address]]es (and thus [[address bus]]es) for 8-bit CPUs are generally larger than 8-bit, usually 16-bit. 8-bit [[microcomputer]]s are microcomputers that use 8-bit [[microprocessor]]s.
 
The term '8-bit' is also applied to the [[character encoding|character set]]s that could be used on computers with 8-bit bytes, the best known being various forms of [[extended ASCII]], including the [[ISO/IEC 8859]] series of national character sets{{snd}} especially [[ISO/IEC 8859-1|Latin 1]] for English and Western European languages.
 
The [[IBM System/360]] introduced byte-addressable memory with 8-bit bytes, as opposed to bit-addressable or decimal digit-addressable or word-addressable memory, although its [[general-purpose registers]] were 32 bits wide, and addresses were contained in the lower 24 bits of those addresses. Different models of System/360 had different internal data path widths; the [[IBM System/360 Model 30]] (1965) implemented the 32-bit System/360 architecture, but had an 8-bit native path width, and performed 32-bit arithmetic 8 bits at a time.<ref>{{Cite journal|last1=Amdahl|first1=G. M.|last2=Blaauw|first2=G. A.|author2-link=Gerrit Blaauw|last3=Brooks|first3=F. P.|author3-link=Fred Brooks|year=1964|title=Architecture of the IBM System/360|url=https://www.ece.ucdavis.edu/~vojin/CLASSES/EEC272/S2005/Papers/IBM360-Amdahl_april64.pdf|url-status=live|journal=[[IBM Journal of Research and Development]]|volume=8|issue=2|pages=87–101|doi=10.1147/rd.82.0087|archive-url=https://web.archive.org/web/20170810085620/https://www.ece.ucdavis.edu/~vojin/CLASSES/EEC272/S2005/Papers/IBM360-Amdahl_april64.pdf|archive-date=2017-08-10 August 2017|author1-link=Gene Amdahl}}</ref>
 
The first widely adopted 8-bit [[microprocessor]] was the [[Intel 8080]], being used in many hobbyist computers of the late 1970s and early 1980s, often running the [[CP/M]] [[operating system]]; it had 8-bit data words and 16-bit addresses. The [[Zilog Z80]] (compatible with the 8080) and the [[Motorola 6800]] were also used in similar computers. The Z80 and the [[MOS Technology 6502]] 8-bit CPUs were widely used in [[home computer]]s and [[Second generation of video game consoles|second-]] and [[Third generation of video game consoles|third-generation game consoles]] of the 1970s and 1980s. Many 8-bit CPUs or [[microcontroller]]s are the basis of today's ubiquitous [[embedded systemssystem]]s.
 
== Historical context ==
8-bit microprocessors were the first widely used microprocessors in the computing industry, marking a major shift from mainframes and minicomputers to smaller, more affordable systems. The introduction of 8-bit processors in the 1970s enabled the production of personal computers, leading to the popularization of computing and setting the foundation for the modern computing landscape.
 
The 1976 [[Zilog Z80]], one of the most popular 8-bit CPUs (though with [[4-bit computing|4-bit]] ALU, at least in the original), was discontinued in 2024 (its product line Z84C00), with Last Time Buy (LTB) orders by June 14, June 2024.<ref>{{Cite web |date=15 April 2024 |title=X80 Product line: Z84C00 |url=https://www.mouser.com/PCN/Littelfuse_PCN_Z84C00.pdf}}</ref>
 
== Details ==
Line 25:
An 8-bit register can store 2<sup>8</sup> different values. The [[range (computer programming)|range]] of [[integer]] values that can be stored in 8 bits depends on the [[Integer (computer science)#Value and representation|integer representation]] used. With the two most common representations, the range is 0 through 255 {{nowrap|(2<sup>8</sup> − 1)}} for representation as an ([[signedness|unsigned]]) [[binary number]], and −128 {{nowrap|(−1 × 2<sup>7</sup>)}} through 127 {{nowrap|(2<sup>7</sup> − 1)}} for representation as [[two's complement]].
 
8-bit CPUs use an [[octet (computing)|8-bit]] [[Busbus (computing)|data bus]] and can therefore access 8 bits of data in a single [[Instruction (computer science)|machine instruction]]. The address bus is typically a double octet ([[16-bit computing|16 bit]]s) wide, due to practical and economical considerations. This implies a direct [[address space]] of 64&nbsp;[[kilobyte|KB]] (65,536 bytes) on most 8-bit processors.
 
Most [[home computer]]s from the 8-bit era fully exploited the address space, such as the [[BBC Micro]] (Model B) with 32&nbsp;KB of [[random-access memory|RAM]] plus 32&nbsp;KB of [[read-only memory|ROM]]. Others like the very popular [[Commodore 64]] had full 64&nbsp;KB RAM, plus 20&nbsp;KB ROM, meaning with 16-bit addressing not all of the RAM could be used by default (e.g. from the included [[BASIC]] language interpreter in ROM);<ref>{{Cite web|title=Bank Switching - C64-Wiki|url=https://www.c64-wiki.com/wiki/Bank_Switching|access-date=8 April 2021-04-08|website=www.c64-wiki.com}}</ref> without exploiting [[bank switching]], which allows for breaking the 64&nbsp;KB (RAM) limit in some systems. Other computers would have as low as 1&nbsp;KB (plus 4&nbsp;KB ROM), such as the Sinclair [[ZX80]] (while the later very popular [[ZX Spectrum]] had more memory), or even only 128 bytes of RAM (plus [[storage (memory)|storage]] from a [[ROM cartridge]]), as in an early game console [[Atari 2600]] and thus 8-bit addressing would have been enough for the RAM, if it would not have needed to cover ROM too). The [[Commodore 128]], and other 8-bit systems, meaning still with 16-bit addressing, could use more than 64&nbsp;KB, i.e. 128&nbsp;KB RAM, also the [[BBC Master]] with it expandable to 512&nbsp;KB of RAM.
 
While in general 8-bit CPUs have 16-bit addressing, in some architectures youboth haveare bothavailable, such as in the [[MOS Technology]] [[MOS Technology 6502|6502]] CPU, where the [[zero page]] is used extensively, saving one byte in the instructions accessing that page, and also having 16-bit addressing instructions that take 2 bytes for the address plus 1 for the opcode.
 
Some [[index register]]s, such as the two in the 6502, are 8-bit. This limits the size of the arrays addressed using [[indexed addressing]] instructions to objects of up to 256 bytes without requiring more complicated code. Other 8-bit CPUs, such as the [[Motorola 6800]] and [[Intel 8080]], have 16-bit index registers.
Line 45:
|-
| Intel || [[Intel 8008|8008]] || 1972 || [[Datapoint 2200]] compatible
|-
| [[Signetics]] || [[Signetics 2650|2650]] || 1973 ||
|-
| Intel || [[Intel 8080|8080]] || 1974 || 8008 source compatible
|-
| [[Motorola]] || [[Motorola 6800|6800]] || 1974 ||
|-
| [[Signetics]] || [[Signetics 2650|2650]] || 19731975 ||
|-
| [[Fairchild Semiconductor|Fairchild]] || [[Fairchild F8|F8]] || 1975 ||
Line 64:
| [[Zilog]] || [[Zilog Z80|Z80]] || 1976 || 8080 binary compatible
|-
| Intel || [[Intel 8085|8085]] || 19771976 || 8080 binary compatible
|-
| Zilog || [[Zilog Z8|Z8]] || 1978 ||Harvard architecture microcontroller
Line 92:
| Motorola || [[Motorola 6800 family|6803]] || {{dunno}} ||
|-
| [[NEC]] || [[NEC 78K0|78K0]]<ref>{{Cite web|url=http://www.am.necel.com/micro/product/all_8_general.html/|title=NEC 78K0|publisher=[[NEC]]|archive-url=https://web.archive.org/web/20081028210428/http://www.am.necel.com/micro/product/all_8_general.html/|archive-date=28 October 2008-10-28|url-status=dead|access-date=10 February 2009-02-10}}</ref> || {{dunno}} ||
|}
 
== Use for training, prototyping, and general hardware education ==
8-bit processors continue to be designed for general education about computer hardware, as well as for hobbyists' interests. One such CPU was designed and implemented using [[7400-series integrated circuits]] on a [[breadboard]].<ref>{{cite web|first=Daniel|last=Oberhaus|title= This Guy Designed and Built an 8-bit CPU from Scratch|website=[[Motherboard (website)|Motherboard]]|date=February 9, February 2019|url=https://www.vice.com/en/article/diy-8-bit-cpu/|access-date=November 4, November 2021}}</ref><ref>{{cite AV media|url=https://www.youtube.com/watch?v=g_ZaioqF1B0|title=Homebuilt 8-bit CPU + Computer with graphics and sound made from scratch using 74HC Logic|first=Paulo|last=Constantino}}</ref> Designing 8-bit CPUs and their respective assemblers is a common training exercise for engineering students, engineers, and hobbyists. [[FPGA]]s are used for this purpose.
 
== See also ==