4-bit computing: Difference between revisions

Content deleted Content added
tidy lead, stagger images and remove bad alt text
No edit summary
Line 2:
{{Computer architecture bit widths}}
 
'''4-bit computing''' refers to In [[computer architecture]]s in which [[integer (computer science)|integerintegers]]s and other [[data (computer science)|data]] units are 4 [[bit]]s wide. 4-bit [[central processing unit]] (CPU) and [[arithmetic logic unit]] (ALU) architectures are those that are based on [[processor register|registerregisters]]s or [[Bus (computing)|data busbuses]]es of that size. [[Memory address]]es (and thus [[address bus]]es) for 4-bit CPUs are generally much larger than 4-bit (since only 16 memory locations would be very restrictive), such as 12-bit or more, while they could in theory be 8-bit.
 
A group of four bits is also called a [[nibble]] and has 2<sup>4</sup> = 16 possible values.
 
== History ==
[[fileFile:Alps remote control BHR970001B - NEC D63GS-7525.jpg |thumb|20-pin PSOP|NEC D63GS: a 4-bit microcontroller for [[infrared remote control]] transmission]]
[[fileFile:Intel C4004 greytraces CPU.jpg|thumb|left|16-pin DIP|Intel C4004]]
[[fileFile:Olympia CD700 Desktop Calculator. 1971.Microprogrammable Arithmetic Processor System Devices (MAPS).jpg |thumb|Olympia CD700 Desktop Calculator using the National Semiconductor MAPS MM570X [[bit-serial]] 4-bit microcontroller]]
[[fileFile:Alps remote control BHR970001B-7517.jpg|thumb|left|Infrared remote control PCB| an [[infrared remote control]] transmitter controlled by a NEC D63GS 4-bit microcontroller]]
 
Some of the first [[microprocessor]]s had a 4-bit word length and were developed around 1970. The first commercial microprocessor was the [[binary-coded decimal]] (BCD-based) [[Intel 4004]],<ref name="Mack_2005" /><ref name="Hofstra_History" /> developed for calculator applications in 1971; it had a 4-bit word length, but had 8-bit instructions and 12-bit addresses. It was succeeded by the [[Intel 4040]].
 
The [[Texas Instruments]] [[TMS 1000]] (1974) was a 4-bit [[central processing unit|CPU]]; it had a [[Harvard architecture]], with an on-chip instruction ROM, 8-bit-wide instructions and an on-chip data RAM with 4-bit words.<ref name="TI_1976_TMS1000" />
 
The [[Rockwell PPS-4]] was another early 4-bit processor, introduced in 1972, which had a long lifetime in handheld games and similar roles. It was steadily improved and by 1975 been combined with several support chips to make a one-chip computer.<ref>{{cite web |url=http://www.antiquetech.com/?page_id=796 |title=Rockwell PPS-4}}</ref>
 
The 4-bit processors were programmed in [[assembly language]] or [[Forth (programming language)|Forth]], e.g. "MARC4 Family of 4 bit Forth CPU"<ref name="UT_Forth" /> (which is now discontinued) because of the extreme size constraint on programs and because common programming languages (for [[microcontroller]]s, 8-bit and larger), such as the [[C (programming language)|C programming language]], do not support 4-bit data types (C, and [[C++]], and more languages require that the size of the [[character (computing)#char|<code>char</code>]] data type be at least 8 bits,<ref name="ISOIEC9899_1999_1" /> and that all data types other than bitfields have a size that is a multiple of the character size<ref name="ISOIEC9899_1999_2" /><ref name="Cline" /><ref name="CPP" />).
 
The 1970s saw the emergence of 4-bit software applications for mass markets like pocket calculators. During the 1980s, 4-bit microprocessors were used in [[handheld electronic game]]s to keep costs low.
Line 24:
In the 1970s and 1980s, a number of research and commercial computers used [[bit slicing]], in which the CPU's [[arithmetic logic unit]] (ALU) was built from multiple 4-bit-wide sections, each section including a chip such as an [[AMD Am2900|Am2901]] or [[74181]] chip.
 
The [[Zilog Z80]], although it is an 8-bit microprocessor, has a 4-bit ALU.<ref name="Shima_Z80" /><ref name="Shirriff_Z80" />
 
Although the [[Data General Nova]] is a series of 16-bit minicomputers, the original Nova and the Nova 1200 internally processed numbers 4 bits at a time with a 4-bit ALU,<ref>{{ cite interview | first = Gardner | last = Hendrie | title = Oral History of Edson (Ed) D. de Castro | date = 22 November 2002 | url = http://archive.computerhistory.org/resources/access/text/2012/07/102702207-05-01-acc.pdf | pp = 44 }}</ref> sometimes called "nybble-serial".<ref>[https://rcsri.org/collection/nova-1200/ "Nova 1200"]</ref>
 
The [[HP Saturn]] processors, used in many [[Hewlett-Packard]] calculators between 1984<!-- intro of HP-71B --> and 2003<!-- when the HP49 was discontinued and replaced by an ARM based model developed by Kinpo --> <!-- EOL announcement of HP 50g50&nbsp;g --> (including the [[HP&nbsp;48 series]] of scientific calculators) are "4-bit" (or hybrid 64-/4-bit) machines; as the Intel 4004 did, they string multiple 4-bit words together, e.g. to form a 20-bit memory address, and most of the registers are 64 bits wide, storing 16 4-bit digits.<!-- Its instructions were 10 bits wide.--><!-- The previous statement is factually inaccurate and not supported by the cited sources --><!-- <ref name="HPM">{{cite web |url=http://www.hpmuseum.org/techcpu.htm |title=HP CPU and Programming |access-date=2014-01-14}}</ref> --><!-- This reference is invalid because it points to a page which describes the microarchitectures of the HP41 and older calculators which did not use the Saturn. The reference has been updated to point to the H.P. Saturn specific page. --><ref name="HPM_Saturn" /><ref name="Grack_Saturn" /><ref name="HPCalc_Saturn" /><!--{{Off-topic|date=December 2015|HP Saturn}}Since 2003, new Saturn-based HP calculators{{Dubious |date=December 2015| reason=These are not "Saturn-based" processors. The "Saturn+" isn't even a Saturn processor, but an emulation of one.}} (including the [[HP 49/50 series]]) use a 32-bit processor with an [[ARM920T]] core to emulate an extended Saturn processor architecture named [[HP Saturn+|Saturn+]] at a higher speed. -->
 
In addition, some early calculators{{snd}} such as the 1967 [[Casio AL-1000]], the 1972 [[Sinclair Executive]], and the aforementioned 1984 [[HP Saturn]]{{snd}} had 4-bit [[datapath]]s that accessed their registers 4 bits (one BCD digit) at a time.<ref>[http://www.vintagecalculators.com/html/casio_al-1000.html "Desk Electronic Calculators: Casio AL-1000"]</ref>
Line 34:
== Uses ==
 
One bicycle computer specifies that it uses a "4 bit, 1-chip microcomputer".<ref name="Cateye" /> Other typical uses include [[coffeemaker|coffee makers]], [[remote control|infrared remote controls]],<ref name="RenesasPD67" /> and [[security alarm]]s.<ref name="Haskell_MC" /><!-- "4-bit" or "4 bit" isn't actually in the source, 8-bit PIC is, and "Includes coffee makers, burglar alarms, TV remote controls, simple robots, etc." -->
 
The processor in Barbie typewriters that can encrypt is a 4-bit microcontroller.<ref>[https://www.cryptomuseum.com/crypto/mehano/barbie/ Paul Reuvers and Marc Simons. Crypto Museum. "Barbie Typewriter", 2015]</ref>
Line 46:
 
== List of 4-bit processors ==
[[fileFile:National Semiconductor MM5700CA D Microprocessor.jpg |thumb|upright|National Semiconductor MM5700CA/D [[bit-serial]] 4-bit microcontroller]]
 
* [[Intel 4004]] (first 4-bit microprocessor from 1971, though [[Four-Phase Systems]] AL1 from 1969 is older, discontinued 1981)
* [[Intel 4040]] (discontinued 1981)
* [[TMS 1000]] (the first high-volume commercial microcontroller, from 1974, after Intel 4004; now discontinued<!-- for sure, and when?-->)
* [[Atmel]] [[MARC4]] core<ref name="Atmel_MARC4_Image" /><ref name="Atmel_MARC4_Product" /> – (discontinued because of <!--Reason for EOL: -->Low demand. "Last ship date: 7 March 2015"<ref name="Atmel_EOL" />)
* [[Samsung]] S3C7 (KS57 Series) 4-bit microcontrollers (RAM: 512 to 5264 nibbles, 6&nbsp;MHz clock)
* [[Toshiba]] [[TLCS-47]] series
Line 57:
* [[NEC]] [[μPD75X]]
* NEC [[μCOM-4]]
* NEC (now [[Renesas]]) µPD612xA (discontinued), µPD613x, [[μPD6x]]<ref name="RenesasPD67" /><ref name="Renesas_uPD6P9" /> and [[μPD1724x]]<ref name="Renesas_uPD17240" /> infrared remote control transmitter microcontrollers<ref name="Renesas_Remote" /><ref name="Necel_ROMless" />
* [[EM Microelectronic-Marin]] EM6600 family,<ref name="Cravotta" /> EM6580,<ref name="EM6580_1" /><ref name="EM6580_2" /> EM6682,<ref name="EM6682" /> etc.
* Epson [[S1C63]] family
* [[National Semiconductor]] "COPS I" and "COPS II" ("[[COP400]]") 4-bit microcontroller families<ref>{{cite web |url=http://www.cpushack.com/2014/09/27/national-semiconductor-the-cop-before-the-cops/ |title=National Semiconductor: The COP before the COPS |last=Culver |first=John |date=September 27, 2014 |website=www.cpushack.com |publisher=<!-- N/A --> |access-date=May 28, 2020 |quote=<!-- N/A -->}}</ref>
* [[National Semiconductor]] MAPS MM570X
* [[Sharp Electronics|Sharp]] SM590/SM591/SM595<ref name="Sharp_1990" />{{rp|26–34}}
* Sharp SM550/SM551/SM552<ref name="Sharp_1990" />{{rp|36–48}}
* Sharp SM578/SM579<ref name="Sharp_1990" />{{rp|49–64}}
* Sharp SM5E4<ref name="Sharp_1990" />{{rp|65–74}}
* Sharp LU5E4POP<ref name="Sharp_1990" />{{rp|75–82}}
* Sharp SM5J5/SM5J6<ref name="Sharp_1990" />{{rp|83–99}}
* Sharp SM530<ref name="Sharp_1990" />{{rp|100–109}}
* Sharp SM531<ref name="Sharp_1990" />{{rp|110–118}}
* Sharp SM500<ref name="Sharp_1990" />{{rp|119–127}} (ROM 1197×8 bit, RAM 40×4 bit, a divider and 56-segment LCD driver circuit)
* Sharp SM5K1<ref name="Sharp_1990" />{{rp|128–140}}
* Sharp SM4A<ref name="Sharp_1990" />{{rp|141–148}}
* Sharp SM510<ref name="Sharp_1990" />{{rp|149–158}} (ROM 2772×8 bit, RAM 128×4 bit, a divider and 132-segment LCD driver circuit)
* Sharp SM511/SM512<ref name="Sharp_1990" />{{rp|159–171}} (ROM 4032×8 bit, RAM 128/142×4 bit, a divider and 136/200-segment LCD driver circuit)
* Sharp SM563<ref name="Sharp_1990" />{{rp|172–186}}
 
== See also ==
Line 90:
<ref name="TI_1976_TMS1000">{{cite book |url=http://blog.kevtris.org/blogfiles/TMS_1000_Data_Manual.pdf |title=TMS 1000 Series Data Manual |date=December 1976 |publisher=[[Texas Instruments]] |access-date=2013-07-20}}</ref>
<ref name="UT_Forth">{{Cite web|url=http://www.ultratechnology.com/chips.htm|title=Forth Chips|website=www.ultratechnology.com}}</ref>
<ref name="ISOIEC9899_1999_1">{{cite book |title=ISO/IEC 9899:1999 specification |at=p. 20, § &nbsp;5.2.4.2.1 |url=http://c0x.coding-guidelines.com/5.2.4.2.1.html}}</ref>
<ref name="ISOIEC9899_1999_2">{{cite book |title=ISO/IEC 9899:1999 specification |at=p. 37, § &nbsp;6.2.6.1 (4) |url=http://c0x.coding-guidelines.com/6.2.6.1.html}}</ref>
<ref name="Cline">{{cite web |author-first=Marshall |author-last=Cline |url=http://www.parashift.com/c++-faq-lite/bytes-review.html |title=C++ FAQ: the rules about bytes, chars, and characters}}</ref>
<ref name="CPP">{{cite web |url=http://www.cplusplus.com/forum/general/51911/ |title=4-bit integer |publisher=cplusplus.com |access-date=2014-11-21}}</ref>
Line 102:
<ref name="RenesasPD67">{{Cite web|url=http://documentation.renesas.com/doc/DocumentServer/U14935EJ2V1DS00.pdf|title=μPD67, 67A, 68, 68A, 69 4-bit single-chip microcontroller for infrared remote control transmission|website=documentation.renesas.com|archive-url=https://web.archive.org/web/20160106205219/http://documentation.renesas.com/doc/DocumentServer/U14935EJ2V1DS00.pdf|archive-date=2016-01-06}}</ref>
<ref name="Haskell_MC">{{cite web |url=http://cse.secs.oakland.edu/haskell/CSE171/Lectures/Fall2004/L12.2%20Microcontrollers.ppt |author-last=Haskell |author-first=Richard |title=Introduction to Digital Logic and Microprocessors (Lecture 12.2) |access-date=2014-02-11}}</ref>
<ref name="Atmel_MARC4_Image">{{cite web |url=http://www.atmel.com/Images/doc4747.pdf |archive-url=https://web.archive.org/web/20141215021454/http://www.atmel.com/Images/doc4747.pdf |archive-date=2014-12-15 |title=MARC4 4-bit Microcontrollers - Programmer's Guide |publisher=[[Atmel]] |access-date=2014-01-14}}</ref>
<ref name="Atmel_MARC4_Product">{{cite web |url=http://www.atmel.com/products/MARC4/ |title=MARC4 4-Bit Architecture |publisher=[[Atmel]] |archive-url=https://web.archive.org/web/20090531214448/http://atmel.com/products/MARC4/ |archive-date=2009-05-31}}</ref>
<ref name="Atmel_EOL">{{cite web |url=http://www.atmel.com/images/he140901.pdf |title=Product End-of-Life (EOL) Notification |date=2014-03-07 |publisher=[[Atmel]] |archive-url=https://web.archive.org/web/20160807174435/http://www.atmel.com/images/he140901.pdf |archive-date=2016-08-07}}</ref>