• Please review our updated Terms and Rules here

4004

Erik

Site Administrator
Staff member
Joined
Apr 27, 2003
Messages
3,588
Location
San Jose, CA
The [wiki]Intel[/wiki] 4004 was the first commercially produced [wiki]microprocessor[/wiki], released in 1971. It was the first commercially sold circuit to combine [wiki]Registers[/wiki], [wiki]ALU[/wiki], and [wiki]Control Circuitry[/wiki] on to a single monolithic chip, hence, the first component microprocessor. The [wiki]Four Phase Systems[/wiki] [wiki]AL1[/wiki] microprocessor preceded the 4004 by several months, but was only sold in a full system--components were not available to system designers commercially.
[h="2"]Features[/h]
  • [wiki]P-Channel[/wiki] [wiki]Silicon Gate[/wiki] [wiki]MOS[/wiki] [wiki]Process[/wiki] Technology
  • 4-bit Parallel Processor
  • 4 bit data word, 8 bit instruction word
  • 4 bit external & internal data buses
  • 46 [wiki]Instructions[/wiki]
  • Conditional Branch Instructions
  • Subroutine Instructions
  • Indirect Fetch
  • Binary and Decimal Math Instructions
  • Can directly access up to 4KB [wiki]ROM[/wiki] and 5120 bits [wiki]RAM[/wiki] (1280 4-bit words)
  • 16 pin 0.3 inch wide [wiki]DIP[/wiki] IC
  • Supply voltages -10, +5 VDC
  • Electrically & programatically upward-compatible with [wiki]4040[/wiki]
[h="2"]Operation[/h]
Clock frequency for the 4004 is 740kHz maximum, minimum 500kHz due to non-static design. Typical instruction cycles are 8 clocks in length for single-cycle instructions (8 bit instructions), 16 cycles for 16 bit instructions.
Memory is accessed through a time-multiplexed addressing technique. 12 bit addresses are used to fetch 8-bit instructions from ROM 4 bits at a time on the 4 bit data bus. Instructions could be one or two words in length. The program counter and address stack registers are 12 bits long, arranged as a 4 level stack with the top level being the PC. This allows up to 3 levels of subroutine call. This must be enforced by the programmer, the processor will not signal an exception in the event of a stack overflow.
The accumulator and a temporary register supply data to the ALU. There is also a register file of 16 4 bit scratchpad registers, arranged as two columns of registers 8 levels deep when used as index registers, e.g. registers 0 and 1 are used to generate an 8 bit index value when used for that purpose, with register 0 treated as the high order nibble.
System timing is controlled through an externally generated two phase clock and a SYNC output from the 4004. Memory access is controlled through these, the data bus, and the CM ROM output in the case of program memory, or the four CM RAM outputs in the case of data memory. In essence, the 4004 transmits instructions to its memories and I/O ports during the appropriate machine states.
[h="2"]Support Chips[/h]
To function effectively as such a low pin-count device, many decode functions had to be moved to the support chipset for the 4004. Logic on these ICs allows them to properly interpret the control signals of the 4004.
  • 4001: 256x4 bit mask-programmed ROM and 4 bit I/O port.
  • 4002: 320 bit RAM and 4-bit output port.
  • 4003: 10 bit shift register and output expander.
  • 4008/4009: Interfaces to standard memories.
  • 4201A: Single chip clock generator.
  • 4289: Single chip replacement for the 4008/4009.
  • 4308: Single chip replacement for four 4001s.
[h="2"]System Design[/h]
Originally, only the 4001 through 4004 were available. The system clock was produced using an oscillator circuit and general purpose logic. Multiple 4001, 4002 and 4003 ICs would be used to obtain the desired I/O, program storage, and data storage for the application. A typical design would require on the order of 30 ICs plus a substantial number of discrete components for the system logic. The 7 to 9 4000-series components would replace three to five times as many ICs of a general purpose nature for a wide range of applications. That, coupled with the wide range of possible applications due to the programmable nature of the chips made the 4004 cost-effective in many designs.
[h="2"]Successors[/h]
The [wiki]4040[/wiki] is a pin-compatible drop-in replacement for the 4004. It is capable of accessing twice as much program memory, and nesting subroutines to 7 levels.
The [wiki]8008[/wiki] is an 8 bit successor suited to a wider variety of programming tasks thanks to its larger data word which allows easy use with a wider range of data types.
The 4004 and 4040 have continued to be used in a wide range of control applications in spite of 8 bit competitors. They remained in production until 1981, and continued to be used in many applications into the 1990s. A wide range of [wiki="microcontroller"]microcontrollers[/wiki] have supplanted the 4004 and 4040 in comparable tasks since production of these chips ceased.
[h="2"]External Links[/h]
[wiki]Category:Hardware[/wiki]
 
Back
Top