4-bit computing: Difference between revisions

Content deleted Content added
mNo edit summary
Use {{cite conference}} for a conference paper.
 
(28 intermediate revisions by 10 users not shown)
Line 1:
{{Short description|Computer architecture bit width}}
{{Use dmy dates|date=February 2020|cs1-dates=y}}
{{Computer architecture bit widths}}
 
'''4-bit computing''' is the use of [[computer architecture]]s in which [[integer (computer science)|integers]] 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|registers]] or [[Busbus (computing)|data buses]] of that size. [[MemoryA address]]esgroup (andof thusfour [[addressbits bus]]es)is foralso 4-bitcalled CPUsa are[[nibble]] generallyand much larger thanhas 2<sup>4-bit (since</sup> only= 16 memorypossible locations would be very restrictive)values, suchwith asa 12-bitrange or more, while they could inof theory0 beto 8-bit15.
 
4-bit computation is obsolete, i.e. CPUs supporting 4-bit as the maximum size. However, 4-bit integers (or smaller), and 4-bit floating point is gaining ground for AI, large-language models.<ref>{{cite conference |arxiv=2310.16836 |doi=10.18653/v1/2023.emnlp-main.39 |title=LLM-FP4: 4-Bit Floating-Point Quantized Transformers |book-title=Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing |date=2023 |last1=Liu |first1=Shih-Yang |last2=Liu |first2=Zechun |last3=Huang |first3=Xijie |last4=Dong |first4=Pingcheng |last5=Cheng |first5=Kwang-Ting |pages=592–605 }}</ref>
A group of four bits is also called a [[nibble]] and has 2<sup>4</sup> = 16 possible values.
 
4-bit processors were widely used in [[electronic calculator]]s and other roles where decimal math was used, like electronic [[cash register]]s, [[microwave oven]] timers, and so forth. This is because a 4-bit value holds a single [[binary-coded decimal]] (BCD) digit, making it a natural size for directly processing decimal values. As a 4-bit value is generally too small to hold a [[memory address]] for real-world programs or data, the [[address bus]] of these systems was generally larger. For instance, the canonical 4-bit [[microprocessor]], the [[Intel 4004]], had a 12-bit address format.
 
4-bit designs were used only for a short period when [[integrated circuit]]s were still expensive, and were found primarily in cost-sensitive roles. While 4-bit computing is mostly obsolete, 4-bit values are still used in the same decimal-centric roles they were developed for, and modern implementations are generally much wider and process multiple 4-bit values in parallel. An example of such a system is the [[HP Saturn]] design of the 1980s. By the 1990s, most such uses had been replaced by general purpose binary designs.
 
== History ==
[[File:Alps remote control BHR970001B - NEC D63GS-7525.jpg|thumb|20-pin PSOP - NEC D63GS: a 4-bit microcontroller for [[infrared remote control]] transmission]]
[[File:Intel C4004 greytraces CPU.jpg|thumb|left|16-pin DIP - Intel C4004]]
[[File: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]]
[[File: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]]
 
A 4-bit processor may seem limited, but it is a good match for calculators, where each decimal digit fits into four bits.<ref name="Shirriff_TMS1000" />
 
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]], which added [[interrupt]] support and a variety of other new features.
 
The first commercial single-chip computer was the 4-bit [[Texas Instruments]] [[TMS 1000]] (1974).<ref wasname="Shirriff_TMS1000">{{cite web |author=Ken Shirriff |url=https://www.righto.com/2020/11/reverse-engineering-ram-storage-in.html |title=Reverse engineering RAM storage in early Texas Instruments calculator chips}}</ref> It contained a 4-bit [[central processing unit|CPU]]; it hadwith a [[Harvard architecture]], withand 8-bit-wide instructions, 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>
Line 22 ⟶ 29:
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.
 
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]] (discontinued in 2024), 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 | pppages = 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 50g --> (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. -->
Line 33 ⟶ 40:
 
== Uses ==
[[File:National_Semiconductor_COP410L_NGS_top_metal.jpg|thumb|National Semiconductor COP410L, a low-end 4-bit microcontroller. 512 bytes of ROM in upper left corner, 128 bits of RAM in upper right corner. Click to zoom.]]
 
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>
 
Several manufacturers used 4-bit microcontrollers in their early electronic games:<ref>{{cite web |title=National Semiconductor COP400 |url=http://seanriddle.com/cop400.html |publisher=Sean Riddle |access-date=24 December 2021}}</ref>
* [[Mattel|Mattel's]] Funtronics Jacks, Red Light Green Light, Tag, Plus One and Dalla$.
* [[Milton Bradley Company|Milton Bradley]] Lightfight and Electronic Battleship 1982.
* [[Coleco]] Head to Head Basketball.
* National Semiconductor Quiz Kid Racer.
* [[Entex Industries|Entex]] Space Invader.
* [[Texas Instruments]] My Little Computer.<ref>{{cite web |last1=Woerner |first1=Joerg |title=Texas Instruments My Little Computer |url=http://www.datamath.org/Edu/MyLittleComputer.htm |website=Datamath Calculator Museum |access-date=19 June 2024}}</ref>
Western Digital used a 4-bit microcontroller as the basis for their WD2412 time-of-day clock.<ref>{{cite web |title=1983 Components Catalog |url=http://www.bitsavers.org/components/westernDigital/_dataBooks/1983_Western_Digital_Components_Catalog.pdf |page=621 |publisher=Western Digital |access-date=24 December 2021}}</ref>
 
The [[Grundy Newbrain]] computer uses a 4-bit microcontroller to manage its keyboard, tape I/O, and its built-in 16 character [[Vacuum fluorescent display|VF]] alphanumeric display.<ref>{{cite web |title=COP420 4-Bit Processor - Newbrain |url=https://www.newbrainemu.eu/el/specifications/newbrain/cop420-4-bit-processor.html |access-date=30 December 2021}}</ref>
 
== Details ==
Line 51 ⟶ 69:
* [[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 ⟶ 75:
* [[NEC]] [[μPD75X]]
* NEC [[μCOM-4]]
* NEC (now [[Renesas]]) µPD612xAμPD612xA (discontinued), µPD613xμ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
Line 78 ⟶ 96:
 
== See also ==
 
* [[GMC-4]]
* [[Hitachi HD44780 LCD controller]]
* Intel's [[Low Pin Count|LPC]] (low-pin-count) bus/interface for 4-bit communication
** Its successor for modern computers, Intel's [[Enhanced Serial Peripheral Interface]] (eSPI), allows 1-bit, 2-bit, and 4-bit communication
 
== References ==
{{refsreflist|refs=
 
{{refs|refs=
<ref name="Mack_2005">{{cite web |title=The Microcomputer Revolution |author-first=Pamela E. |author-last=Mack |date=2005-11-30 |url=http://www.clemson.edu/caah/history/FacultyPages/PamMack/lec122/micro.htm |access-date=2009-12-23}}</ref>
<ref name="Hofstra_History">{{cite web |title=History in the Computing Curriculum |url=http://www.hofstra.edu/pdf/comphist_9812tla6.pdf |access-date=2017-06-22 |archive-url=https://web.archive.org/web/20110719211222/http://www.hofstra.edu/pdf/CompHist_9812tla6.PDF |archive-date=2011-07-19 |url-status=dead}}</ref>
<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=httphttps://c0x.codingshape-guidelinesof-code.com/5.2.4.2.1.html |access-date=2023-07-24}}</ref>
<ref name="ISOIEC9899_1999_2">{{cite book |title=ISO/IEC 9899:1999 specification |at=p. 37, §&nbsp;6.2.6.1 (4) |url=httphttps://c0x.codingshape-guidelinesof-code.com/6.2.6.1.html |access-date=20142023-1107-21 |archive-date=2019-06-13 |archive-url=https://web.archive.org/web/20190613180444/http://c0x.coding-guidelines.com/6.2.6.1.html |url-status=dead 24}}</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 101 ⟶ 118:
<ref name="Cateye">{{cite web |url=http://cateye.com/images/manual/CC-COM10W_ENG_v3.pdf |title=Cateye Commuter Manual |access-date=2014-02-11}}</ref>
<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 |archive-url=https://web.archive.org/web/20140222063433/http://cse.secs.oakland.edu/haskell/CSE171/Lectures/Fall2004/L12.2%20Microcontrollers.ppt |archive-date=2014-02-22 |url-status=dead}}</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 |url-status=dead}}</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 |url-status=dead}}</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 |url-status=dead}}</ref>
<ref name="Renesas_uPD6P9">{{Cite web|url=http://documentation.renesas.com/doc/DocumentServer/U15144EJ1V1DS00.pdf|title=μPD6P9 4-bit single-chip microcontroller for infrared remote control transmission|website=documentation.renesas.com|archive-url=https://web.archive.org/web/20160327192018/http://documentation.renesas.com/doc/DocumentServer/U15144EJ1V1DS00.pdf|archive-date=2016-03-27}}</ref>
<ref name="Renesas_uPD17240">{{Cite web|url=http://documentation.renesas.com/doc/DocumentServer/U15002EJ1V1DS00.pdf|title=μPD17240, 17241, 17242, 17243, 17244, 17245, 17246 4-bit single-chip microcontrollers for small general-purpose infrared remote control transmitters|website=documentation.renesas.com|archive-url=https://web.archive.org/web/20160327182841/http://documentation.renesas.com/doc/DocumentServer/U15002EJ1V1DS00.pdf|archive-date=2016-03-27}}</ref>
Line 111 ⟶ 128:
<ref name="Cravotta">{{cite web |author-first=Robert |author-last=Cravotta |url=http://www.embeddedinsights.com/directory/epd-downloads.php |title=Embedded Processing Directory}}</ref>
<ref name="EM6580_1">{{cite web |url=http://www.emmarin.com/Products.asp?IdProduct=215 |title=EM6580 |access-date=2013-05-12 |archive-url=https://web.archive.org/web/20131219221418/http://www.emmarin.com/Products.asp?IdProduct=215 |archive-date=2013-12-19 |url-status=dead}}</ref>
<ref name="EM6580_2">{{Cite web|url=httphttps://www.emmicroelectronic.com/products/microcontrollersproduct/multi-io/em6580|title=EM6580 low power Flash 4-bit microcontroller}}</ref>
<ref name="EM6682">{{Cite web|url=httphttps://www.emmicroelectronic.com/products/microcontrollersproduct/multi-io/em6682|title=EM6682}}</ref>
<ref name="Sharp_1990">{{cite book |url=http://bitsavers.org/components/sharp/_dataBooks/1990_Sharp_Microcomputers_Data_Book.pdf |title=Sharp Microcomputers Data Book |date=September 1990 |access-date=2018-01-05}}</ref>
}}
 
== External links ==
 
* [http://www.hpmuseum.org/saturn.htm Saturn CPU]
* {{cite web |url=http://www.epson.jp/device/semicon_e/product/mcu/high_4bit/ |archive-url=https://web.archive.org/web/20130729191831/http://www.epson.jp/device/semicon_e/product/mcu/high_4bit/ |archive-date=2013-07-29 |url-status=dead |website=Epson |title=Products: High Performance 4-bit Microcontrollers (S1C63 family)}}
* [http://www.embeddedinsights.com/channels/2010/12/10/considerations-for-4-bit-processing/ Considerations for 4-bit processing]
 
{{CPU technologies}}
 
{{Use dmy dates|date=February 2020|cs1-dates=y}}
[[Category:Data unit]]