4-bit computing

{{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 architectures in which integers and other data units are 4 bits wide. 4-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers or data buses of that size. A group of four bits is also called a nibble and has 24 = 16 possible values, with a range of 0 to 15.

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.{{Citation |last=Liu |first=Shih-yang |title=LLM-FP4: 4-Bit Floating-Point Quantized Transformers |date=2023-10-25 |url=https://arxiv.org/abs/2310.16836 |access-date=2025-03-30 |publisher=arXiv |doi=10.48550/arXiv.2310.16836 |id=arXiv:2310.16836 |last2=Liu |first2=Zechun |last3=Huang |first3=Xijie |last4=Dong |first4=Pingcheng |last5=Cheng |first5=Kwang-Ting}}

4-bit processors were widely used in electronic calculators and other roles where decimal math was used, like electronic cash registers, 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 circuits 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 transmission]]

File:Intel C4004 greytraces CPU.jpg

File:Olympia CD700 Desktop Calculator. 1971.Microprogrammable Arithmetic Processor System Devices (MAPS).jpg 4-bit microcontroller]]

File:Alps remote control BHR970001B-7517.jpg 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.

Some of the first microprocessors had a 4-bit word length and were developed around 1970. The first commercial microprocessor was the binary-coded decimal (BCD-based) Intel 4004, 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).{{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}} It contained a 4-bit CPU with a Harvard architecture and 8-bit-wide instructions, an on-chip instruction ROM, and an on-chip data RAM with 4-bit words.

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.{{cite web |url=https://www.antiquetech.com/?page_id=796 |title=Rockwell PPS-4}}

The 4-bit processors were programmed in assembly language or Forth, e.g. "MARC4 Family of 4 bit Forth CPU" (which is now discontinued) because of the extreme size constraint on programs and because common programming languages (for microcontrollers, 8-bit and larger), such as the C programming language, do not support 4-bit data types (C, and C++, and more languages require that the size of the char data type be at least 8 bits, and that all data types other than bitfields have a size that is a multiple of the character size).

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 games 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 Am2901 or 74181.

The Zilog Z80 (discontinued in 2024), although it is an 8-bit microprocessor, has a 4-bit ALU.

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,{{ 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 | pages = 44 }} sometimes called "nybble-serial".[https://rcsri.org/collection/nova-1200/ "Nova 1200"]

The HP Saturn processors, used in many Hewlett-Packard calculators between 1984 and 2003 (including the HP 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.

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 datapaths that accessed their registers 4 bits (one BCD digit) at a time.[http://www.vintagecalculators.com/html/casio_al-1000.html "Desk Electronic Calculators: Casio AL-1000"]

Uses

File:National_Semiconductor_COP410L_NGS_top_metal.jpg

One bicycle computer specifies that it uses a "4 bit, 1-chip microcomputer". Other typical uses include coffee makers, infrared remote controls, and security alarms.

The processor in Barbie typewriters that can encrypt is a 4-bit microcontroller.[https://www.cryptomuseum.com/crypto/mehano/barbie/ Paul Reuvers and Marc Simons. Crypto Museum. "Barbie Typewriter", 2015]

Several manufacturers used 4-bit microcontrollers in their early electronic games:{{cite web |title=National Semiconductor COP400 |url=http://seanriddle.com/cop400.html |publisher=Sean Riddle |access-date=24 December 2021}}

  • Mattel's Funtronics Jacks, Red Light Green Light, Tag, Plus One and Dalla$.
  • Milton Bradley Lightfight and Electronic Battleship 1982.
  • Coleco Head to Head Basketball.
  • National Semiconductor Quiz Kid Racer.
  • Entex Space Invader.
  • Texas Instruments My Little Computer.{{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}}

Western Digital used a 4-bit microcontroller as the basis for their WD2412 time-of-day clock.{{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}}

The Grundy Newbrain computer uses a 4-bit microcontroller to manage its keyboard, tape I/O, and its built-in 16 character VF alphanumeric display.{{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}}

Details

{{Main|Nibble}}

With 4 bits, it is possible to create 16 different values. All single-digit hexadecimal numbers can be written with four bits.

Binary-coded decimal is a digital encoding method for numbers using decimal notation, with each decimal digit represented by four bits.

List of 4-bit processors

File:National Semiconductor MM5700CA D Microprocessor.jpg 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)
  • Atmel MARC4 core (discontinued because of Low demand. "Last ship date: 7 March 2015")
  • Samsung S3C7 (KS57 Series) 4-bit microcontrollers (RAM: 512 to 5264 nibbles, 6 MHz clock)
  • Toshiba TLCS-47 series
  • HP Saturn
  • NEC μPD75X
  • NEC μCOM-4
  • NEC (now Renesas) μPD612xA (discontinued), μPD613x, μPD6x and μPD1724x infrared remote control transmitter microcontrollers
  • EM Microelectronic-Marin EM6600 family, EM6580, EM6682, etc.
  • Epson S1C63 family
  • National Semiconductor "COPS I" and "COPS II" ("COP400") 4-bit microcontroller families{{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= |access-date=May 28, 2020 |quote=}}
  • National Semiconductor MAPS MM570X
  • Sharp SM590/SM591/SM595{{rp|26–34}}
  • Sharp SM550/SM551/SM552{{rp|36–48}}
  • Sharp SM578/SM579{{rp|49–64}}
  • Sharp SM5E4{{rp|65–74}}
  • Sharp LU5E4POP{{rp|75–82}}
  • Sharp SM5J5/SM5J6{{rp|83–99}}
  • Sharp SM530{{rp|100–109}}
  • Sharp SM531{{rp|110–118}}
  • Sharp SM500{{rp|119–127}} (ROM 1197×8 bit, RAM 40×4 bit, a divider and 56-segment LCD driver circuit)
  • Sharp SM5K1{{rp|128–140}}
  • Sharp SM4A{{rp|141–148}}
  • Sharp SM510{{rp|149–158}} (ROM 2772×8 bit, RAM 128×4 bit, a divider and 132-segment LCD driver circuit)
  • Sharp SM511/SM512{{rp|159–171}} (ROM 4032×8 bit, RAM 128/142×4 bit, a divider and 136/200-segment LCD driver circuit)
  • Sharp SM563{{rp|172–186}}

See also

References

{{refs|refs=

{{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}}

{{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}}

{{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}}

{{Cite web|url=http://www.ultratechnology.com/chips.htm|title=Forth Chips|website=www.ultratechnology.com}}

{{cite book |title=ISO/IEC 9899:1999 specification |at=p. 20, § 5.2.4.2.1 |url=https://c0x.shape-of-code.com/5.2.4.2.1.html |access-date=2023-07-24}}

{{cite book |title=ISO/IEC 9899:1999 specification |at=p. 37, § 6.2.6.1 (4) |url=https://c0x.shape-of-code.com/6.2.6.1.html |access-date=2023-07-24}}

{{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}}

{{cite web |url=http://www.cplusplus.com/forum/general/51911/ |title=4-bit integer |publisher=cplusplus.com |access-date=2014-11-21}}

{{cite web |author-first1=Masatoshi |author-last1=Shima |author-first2=Federico |author-last2=Faggin |author-first3=Ralph |author-last3=Ungermann |author-first4=Michael |author-last4=Slater |url=https://archive.computerhistory.org/resources/text/Oral_History/Zilog_Z80/102658073.05.01.pdf |title=Zilog Oral History Panel on the Founding of the Company and the Development of the Z80 Microprocessor |date=2007-04-27}}

{{cite web |author-first=Ken |author-last=Shirriff |url=http://www.righto.com/2013/09/the-z-80-has-4-bit-alu-heres-how-it.html |title=The Z-80 has a 4-bit ALU}}

{{cite web |url=http://www.hpmuseum.org/saturn.htm |title=The Saturn Processor |access-date=2015-12-23}}

{{cite web |url=http://grack.com/writings/hp48/GuidetotheSaturnProcessor.html |title=Guide to the Saturn Processor |access-date=2014-01-14}}

{{cite web |url=http://www.hpcalc.org/details.php?id=1693 |title=Introduction to Saturn Assembly Language |access-date=2014-01-14}}

{{cite web |url=http://cateye.com/images/manual/CC-COM10W_ENG_v3.pdf |title=Cateye Commuter Manual |access-date=2014-02-11}}

{{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}}

{{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}}

{{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}}

{{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}}

{{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}}

{{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}}

{{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}}

{{Cite web|url=http://documentation.renesas.com/doc/DocumentServer/U14372EJ5V0PF00.pdf|title=Microcontrollers for Remote Controllers|website=documentation.renesas.com|archive-url=https://web.archive.org/web/20131219191519/http://documentation.renesas.com/doc/DocumentServer/U14372EJ5V0PF00.pdf|archive-date=2013-12-19}}

{{cite web |url=http://www.necel.com/micro/en/product/mr_48_remocon.html |title=Mask ROM/ROMless Products 4/8bit Remote Control |url-status=dead |archive-url=https://web.archive.org/web/20081028181219/http://www.necel.com/micro/en/product/mr_48_remocon.html |archive-date=2008-10-28}}

{{cite web |author-first=Robert |author-last=Cravotta |url=http://www.embeddedinsights.com/directory/epd-downloads.php |title=Embedded Processing Directory}}

{{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}}

{{Cite web|url=https://www.emmicroelectronic.com/product/multi-io/em6580|title=EM6580}}

{{Cite web|url=https://www.emmicroelectronic.com/product/multi-io/em6682|title=EM6682}}

{{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}}

}}