Intel 4004
The Intel 4004, introduced in 1971, is recognized as the first microprocessor. Prior to its release, computer processors required multiple components, sometimes even multiple circuit boards. With the Intel 4004, the computer processor became a single integrated circuit (IC), hence the name "microprocessor". In reality, the Intel 4004 required additional supporting ICs for certain functions, such as I/O operations. Nevertheless, certain programs could be theoretically executed without the involvement of other ICs, thus justifying the classification as "microprocessor".
Main Characteristics
- 4 pins for Data, Address, Instructions, and I/O (D0,D1,D2,D3)
- 12-bit addresses, 8-bit instructions, and 4-bit data words (sent over multiple clock cycles on the 4 data pins)
- 4 pins for RAM bank selection (CM-RAM)
- 1 pin for ROM bank selection (CM-ROM)
- Separate program and data storage (different memory areas)
- 740KHz maximum clock rate
- From the CPU Datasheet: "The CPU can directly address 4K 8-bit instruction words of program memory and 5120 bits of data storage RAM… Up to 16 4-bit input ports and 16 4-bit output ports may also be directly addressed".
- 16 4-bit registers, 1 accumulator, address stack (PC+3 levels)
- 46 instructions: 41 8-bits instructions + 5 16-bits instructions
- Big-endian storage (a nice discussion about this topic is here )
Java System Simulator
- Intel 4004 CPU simulation implementation in Java here
- Intellec 4 system simulations here
- Details about the Intel4004 virtual device here
Tools
- A04 cross-assembler
- JavaScript emulator/assembler/dissassembler e4004
- Intel 4004 and 4040 4-bit processor development kit with Busicom 141-PF calculator emulation here
Useful resources
- Intel 4004 Datasheet
- https://www.intel.com/content/www/us/en/history/museum-story-of-intel-4004.html
- http://www.intel4004.com/
- https://en.wikipedia.org/wiki/Intel_4004