Intel 4040
Intel 4040
Main page
2293271

Intel 4040

logo
Community Hub0 subscribers
Read side by side
from Wikipedia

Intel 4040
A white ceramic C4040 variant
General information
Launched1974
Discontinued1981[1]
Common manufacturer
Performance
Max. CPU clock rate500 kHz to 740 kHz
Data width4 bits
Address width12 bits (multiplexed)
Architecture and classification
Technology node10 μm process
Instruction set4-bit (BCD-oriented)
Physical specifications
Transistors
Package
History
PredecessorIntel 4004
Support status
Unsupported

The Intel 4040 ("forty-forty") is the second 4-bit microprocessor designed and manufactured by Intel. Introduced in 1974 as a successor to the Intel 4004, the 4040 was produced with a 10 μm process and includes silicon gate enhancement-load PMOS logic technology. The 4040 contained 3,000 transistors[2] and could execute approximately 62,000 instructions per second.

General performance, bus layout and arithmetic logic unit (ALU) were identical to the 4004. The main improvement was to use a larger 24-pin dual in-line package, giving it 8 more pins than the 16-pin 4004. Two of these were used to implement interrupts, which were lacking in the 4004 and considered a major oversight. Two more implemented a halt/stop system, which put the processor into a low-power mode and also allowed for single-step operation that made debugging much easier. Another pin was used to bank select a second read-only memory (ROM), doubling the amount of ROM the processor could address compared to the 4004.

To make use of these new pins, the instruction set was expanded, increasing it to 60 instructions from the original 46. Additionally, the internal register file and pushdown stack were expanded to support rapid interrupt processing.

The ceramic D4040 variant
The plastic P4040 variant

Description

[edit]

4004

[edit]

The 4004 was designed to be used in an electronic calculator and many of its design notes are related to this role. For instance, program code can only be read from an area dedicated to read-only memory, not RAM. Although one could implement the "ROM space" using RAM chips, there were no instructions able to write to that area of memory, and no instructions able to read program code from RAM space. The idea was that systems would supply the system program on ROM, and small amounts of RAM would be used only for data, if at all. In typical use, the internal "index registers" would be used for storage during calculations, with the 16 4-bit registers able to hold a single 8-digit binary-coded decimal value, the data format used by calculators. It also had four 12-bit registers for holding addresses, the top-most was the program counter and the next three operated as a push-down stack for subroutine calls.

To reduce pin count to only 16, the original 4004 had only four data pins, multiplexed for both data and addresses. Additional pins indicated whether the address was in ROM or one of several "banks" of RAM. As addresses were 12 bits long, expressing an address took three cycles along with the subsequent read or write, and external circuitry had to latch each 4 bit part of the address between cycles. Instructions were 8 bits, so loading the next instruction required many cycles, which led to the slow performance in spite of what was a relatively fast cycle time for the era.

4040

[edit]
i4040 microarchitecture. Note: the "data bus" is also used for addressing.
Intel 4040 DIP chip pinout

The 4040 was essentially an expansion of the 4004, with additional pins, more registers and new instructions to take advantage of both.

The 4004 had a single ROM pin, whereas the 4040 added another ROM pin to allow two banks of ROM. This effectively increased the ROM address from 12 to 13 bits, or 8 KB. Unlike later designs where the two lines could be binary encoded and thus support four banks, the ROM chips used with the 4004 and 4040 used these lines like chip select pins, and thus the two lines could only support two banks.

The 4004 lacked interrupts, a serious limitation.[clarification needed] The 4040 added a new input pin for calling an interrupt, as well an output pin to indicate the interrupt signal had been noticed and was being acted on. As interrupts also need to save a return address, the stack register file was expanded to seven entries, up from three.[Note 1]

Interrupt handler code normally starts by saving out values in the registers to allow the interrupt code to use them, and then at the end it copies the values back from memory so that the processor returns to its original pre-interrupt state. With the multi-cycle memory access of the design, this would have been extremely slow. To address this, eight additional registers were added in a new "bank 1", the original sixteen registers retroactively becoming "bank 0". The idea was that programmers would attempt to place their critical data in the first eight registers of bank 0. When an interrupt was received, the handler code would call an instruction to swap banks, which would cause bank 1's registers to override bank 0's registers 0 through 7. The handler code would then use these eight registers for any local data, leaving the original values untouched. When the handler completed, it simply swapped bank 0 back in. This reduced the switching time to a single instruction, greatly improving interrupt response times.

Another addition was the input stop pin, and the associated output stop acknowledge. These could be used to stop the processor while the system performed input/output or other non-CPU tasks, but was more widely used for debugging by allowing the processor to be single-stepped. When the processor was in stopped mode, most of the chip hardware put into a low-drain, high-impedance condition, reducing power use. The machine cycle clocks were kept running for the benefit of external devices, including any interrupt controllers needed to wake the chip back up, which relied on these controllers staying in sync.

To take advantage of these new features, and to support the new logical AND and OR operators, the instruction set added 14 new instructions, bringing the total to 60.

Intel 4040 registers
12 11 10 09 08 07 06 05 04 03 02 01 00 (bit position)
Accumulator
A Accumulator
Index registers
R0 R1 Index bank 0
R2 R3
R4 R5
R6 R7
R8 R9
R10 R11
R12 R13
R14 R15
R0 R1 Index bank 1
R2 R3
R4 R5
R6 R7
Program counter
PC Program Counter
Push-down address call stack
PC1 Call level 1
PC2 Call level 2
PC3 Call level 3
PC4 Call level 4
PC5 Call level 5
PC6 Call level 6
PC7 Call level 7
Condition codes
C Carry flag

Characteristics

[edit]
  • Data bus: 4-bit
  • Address bus: 12-bit for ROM (multiplexed onto data bus; addresses took three bus cycles to transmit, same as in the 4004), effectively 13-bit with use of bank-switching commands; effectively 10-bit or 8-bit for RAM (8-bit direct address plus one-of-four, i.e. 2-bit equivalent, bank select; the additional 256 "status" memory locations required use of I/O commands to read or write, from an overall 8-bit address space)
  • Voltage: −15 V DC
  • Operating frequency: 500 to 740 kHz main clock (2-phase, overlapping); 62500 to 92500 8-clock machine cycles per second, each instruction requiring either one or two machine cycles to read and execute, meaning a rough average of 62 kIPS at 740 kHz with an equal mix.[Note 2]
  • Performance: Claimed execution time of ~850 μs to add two 32-bit (8-digit BCD) numbers, or around 1175 such operations per second and about 10 machine cycles per digit pair.[Note 3]

Designers

[edit]

Federico Faggin proposed the project, formulated the architecture and led the design. The detailed design was done by Tom Innes. The original mask show next to Tom Innes‘ initials (TI) two further initials from sofar unidentified other designers (JO, EL).

New support chips

[edit]
  • 3216 and 3226 4-bit parallel bus drivers[Note 4]
  • 4101 – 256 × 4-bit Static RAM[Note 5]
  • 4201 – Clock Generator, 500 to 740 kHz, using 4.000 to 5.185 MHz crystals
  • 4207 – General Purpose 8-bit Output port
  • 4209 – General Purpose 8-bit Input port
  • 4211 – General Purpose 8-bit I/O port
  • 4265 - Programmable general-purpose I/O. It contains four 4-bit I/O ports. It has 14 software-selectable modes that can be programmed to interface with these ports. Not only can the 4265 interface with the 4040, it can interface with the 8080A processor as well. It was available in sample quantities in stock in March 1976.[3][4]
  • 4269 – Programmable keyboard/display. It has system software configuration in this chipset via instructions that controls how these ports can be handled. It was available in sample quantities in March 1976.[3][5]
    • Keyboard Features: It generates an interrupt when the key is pressed. It stores up to 8 characters FIFO buffer prior servicing the CPU. It can be interfaced with sensors, panel switches and keyboards which it supports full teletypewriter size. That can be key input encoding, polling, character input buffer storage, and keyboard over-entry recovery.
    • Display Features: It operates and refresh displays or indicator arrays up to 128 elements or lights. It also drives up to 20 gas-discharge characters on a display such as a Burroughs Self-Scan.
  • 4289 – Standard Memory Interface (replaces 4008/4009)[Note 6]
  • 4308 – 1K × 8-bit ROM plus 4 × 4-bit IO ports[Note 7]
  • 4316 – 2K × 8-bit ROM[Note 8]
  • 4702 – 256 × 8-bit EPROM[Note 9]

Use in computers

[edit]

The 4040 was first used in a microcomputer in Intel's Intellec 4 Mod 40 development system, released in early 1975.[6] According to Byte magazine, the first third-party microcomputer designed around the Intel 4040 was the Micro 440, released by Comp-Sultants of Huntsville, Alabama, in late 1975.[7]

See also

[edit]

Notes

[edit]

References

[edit]

Further reading

[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
The Intel 4040 is a 4-bit single-chip microprocessor introduced by Intel in 1974 as an enhanced successor to the Intel 4004, forming a key part of the MCS-40 family of components designed for microcomputer and embedded systems.[1][2] Fabricated using 10 μm p-channel metal-oxide-semiconductor (pMOS) technology with approximately 3,000 transistors, it operates at a clock speed of up to 740 kHz and executes instructions in a 10.8 μs cycle time.[3] The 4040 supports direct addressing of up to 8 KB of program memory (ROM) and 640 bytes of data memory (RAM), featuring 24 index registers organized into three banks, a 7-level push-pop stack for subroutines, and hardware interrupt capability that vectors to address 003.[1][2] This processor expands on the 4004's architecture by adding 14 new instructions—bringing the total to 60—such as logical operations (e.g., OR, AND), bank switching (e.g., RPM, OPR), halt (HLT), and interrupt control (EIN, DIN), while maintaining full object code compatibility with its predecessor.[1] Packaged in a 24-pin dual in-line package (DIP), it consumes about 630 mW of power and was available in variants like the ceramic C4040 and plastic P4040, with operating temperatures ranging from 0°C to 70°C (or extended -40°C to 85°C).[3][2] The 4040 powered applications including calculators, instrumentation, and early gaming machines like shuffleboard tables, contributing to the evolution of low-cost computing by enabling more complex control logic in compact systems.[3] It was often paired with support chips such as the 4201 clock generator, 4001 ROMs, 4002 RAMs, and 4003 shift registers to form complete MCS-40 microcomputer sets.[1]

History and Development

Origins as Successor to 4004

The Intel 4004, introduced in 1971, marked the advent of the single-chip microprocessor but exhibited several limitations that hindered its applicability in more complex systems. Notably, it lacked interrupt support, relied on a shallow three-level stack, and employed a cumbersome method for RAM access, restricting its efficiency in handling external events and multitasking scenarios.[4][5] Additionally, its instruction set comprised only 46 basic operations, which proved insufficient for evolving embedded control needs beyond simple calculations.[6] These constraints underscored the demand for an enhanced 4-bit processor capable of broader utility. In response, Intel initiated development of the 4040 in 1973 as part of the MCS-40 family, aiming to provide a more versatile microcomputer set for random logic replacement in embedded control applications.[7][1] This effort addressed the growing market for programmable solutions in industrial and consumer devices, building on the 4004's foundation while expanding its scope. A pivotal decision came from Intel's repurchase of exclusive rights from Busicom in 1971, which had originally commissioned the 4004 for calculator-specific use; this freed the design for generalization into a multi-purpose architecture suitable for diverse non-calculator applications.[8] The 4040 was thus positioned as a direct evolution, prioritizing improvements in expandability and performance to meet these demands, all while preserving object-code compatibility with the 4004 to facilitate software migration where feasible.[5][9] Core design contributions, including those from engineer Federico Faggin, laid the groundwork for this transition.[8]

Design Process and Key Innovations

The Intel 4040 was developed as an enhancement to the 4004, with Federico Faggin serving as the lead architect responsible for proposing the project, defining the overall structure, and overseeing the design effort.[10] The detailed logic design and implementation were handled by Tom Innes, who focused on the intricate circuit-level details to realize Faggin's architectural vision.[1] This collaborative process shifted the chip from the 4004's origins as a custom design for Busicom calculators toward a more versatile, general-purpose processor.[11] A major innovation in the 4040 was the introduction of bank switching, which extended program memory addressing from the 4004's 12-bit limit to an effective 13 bits by supporting up to 8K bytes of ROM through dual 4K banks toggled via dedicated instructions like DBO and DB1.[1] This feature allowed for larger program spaces without requiring external decoding hardware in many cases, enhancing flexibility for control applications. Additionally, the 4040 marked the first implementation of interrupt handling in Intel's 4-bit microprocessor family, providing single-level interrupt support that vectorized to address 003H, saved processor state automatically, and enabled restoration via the BBS instruction, along with EIN/DIN controls for interrupt enabling and disabling.[1] The design incorporated a new halt instruction (HLT) and support for stop mode via the STP input to facilitate debugging and low-power operation by pausing the processor at specific cycle boundaries, a step beyond the 4004's capabilities.[1] Fabricated using 10 μm PMOS silicon-gate technology, the 4040 integrated approximately 3,000 transistors—compared to the 4004's 2,300—enabling these additions while maintaining upward compatibility with the prior chip's 46 instructions and adding 14 new ones for improved logical operations and memory management.[3] This technology and transistor scaling supported a more robust stack with seven levels (versus three in the 4004) and expanded index registers, prioritizing conceptual efficiency in subroutine handling and indirect addressing for broader system integration.[1]

Release Timeline

The Intel 4040 was introduced in November 1974 as Intel's second 4-bit microprocessor and the central processing unit of the newly launched MCS-40 family, building on the earlier 4004 to expand support for general-purpose computing and control applications.[1] This release marked Intel's strategic push to broaden the four-bit ecosystem with enhanced peripherals, including ROM, RAM, and I/O chips, enabling more complex system designs.[2] Available initially in a 24-pin ceramic dual in-line package (DIP), the 4040 was priced at approximately $29 for low-volume purchases of the basic two-chip controller set, positioning it as an accessible option for embedded systems and instrumentation.[2][12] Production continued through various package variants, including plastic DIP, to meet demand in industrial and development kits like the Intellec 4/40.[2] Manufacturing of the 4040 persisted until 1981, after which Intel discontinued it amid the growing dominance of 8-bit processors such as the 8080, which offered superior performance and memory addressing for emerging computing needs.[13] This end-of-life aligned with the broader shift away from four-bit architectures, concluding the commercial era of Intel's initial microprocessor lineage.[14]

Technical Specifications

Architecture Overview

The Intel 4040 is a 4-bit parallel central processing unit (CPU) designed as a single-chip microprocessor, processing data in 4-bit units through an integrated arithmetic logic unit (ALU) capable of performing basic arithmetic and logical operations.[1] Its core architecture includes an instruction decoder that interprets 8-bit instructions and a program counter (PC) for sequencing operations, supporting subroutine nesting up to seven levels via a 7-level 12-bit stack.[1] This design builds upon the simpler structure of its predecessor, the Intel 4004, by incorporating enhancements for expanded addressing and register capabilities.[1] The 4040 employs a 12-bit multiplexed address bus, transmitted in three sequential 4-bit phases (A1, A2, A3), enabling direct addressing of up to 4K words within a single memory bank.[1] To accommodate larger programs, the architecture extends this to a 13-bit effective address space through a bank-switching mechanism, utilizing two 4 KB read-only memory (ROM) banks for a total of 8 KB ROM capacity, with external chips providing up to 640 bytes of random-access memory (RAM).[1] Bank selection is managed via a dedicated status register, toggled by specific control instructions that switch between the two ROM banks without disrupting the primary 12-bit addressing.[1] This multiplexed data path and memory model form the foundational elements for the 4040's operation as a compact, general-purpose CPU in embedded systems.[1]

Clock and Performance Metrics

The Intel 4040 operated at a clock rate ranging from 500 kHz to 740 kHz, determined by the external clock generator such as the 4201 chip, which produced two non-overlapping phases (φ1 and φ2) from a higher-frequency crystal input divided by 8.[2][1] This frequency range reflected the limitations of its p-channel silicon gate MOS (PMOS) technology, fabricated on a 10 μm process, which prioritized reliability and low power over higher speeds achievable in later NMOS designs.[15] The processor's basic machine cycle consisted of 8 clock periods, resulting in a typical instruction cycle time of 10.8 μs at the maximum 740 kHz clock rate, with each cycle encompassing phases for memory addressing, data transfer, and execution.[1] Single-word instructions, including the fastest register-to-register operations like addition or logical functions, executed in one machine cycle (8 clock periods), while double-length instructions required two cycles (16 clock periods or 21.6 μs). Without an internal cache, performance depended heavily on external memory access times, typically around 1 μs for compatible RAM or ROM modules, introducing potential bottlenecks in data-intensive tasks.[1][2] Overall throughput reached approximately 92,000 instructions per second at 740 kHz, scaling down to about 62,000 instructions per second at the minimum 500 kHz clock, assuming an average mix of one- and two-cycle instructions.[2] These metrics underscored the 4040's role as an enhancement over the 4004, offering similar speed but with expanded addressing and instructions to improve effective utilization in control applications.[2]

Physical and Electrical Characteristics

The Intel 4040 microprocessor is encapsulated in a 24-pin dual in-line package (DIP), typically in ceramic or plastic variants, facilitating connections for power supplies, two-phase clock inputs, a 4-bit bidirectional data bus, and control signals including interrupt request, reset, test, and synchronization outputs.[16][1] Fabricated on a 10 μm silicon gate process using enhancement-load p-channel metal-oxide-semiconductor (PMOS) technology, the 4040 integrates approximately 3,000 transistors. This enhancement-load PMOS design reduced production costs relative to earlier depletion-load PMOS variants employed in prior Intel memory and logic chips.[17] The device requires a negative supply voltage of $ V_{DD} = -15 $ V DC ±5% with respect to ground ($ V_{SS} = 0 $ V), drawing a typical power dissipation of 630 mW at nominal conditions, with a maximum rating of 1 W under stress. For interfacing, it achieves compatibility with TTL logic levels via external pull-up resistors or buffers on its outputs.[18][3][1]

Features and Capabilities

Instruction Set Enhancements

The Intel 4040 expanded its instruction set to 60 total instructions, an increase from the 46 instructions of the 4004, by incorporating 14 new commands designed to improve programming efficiency in embedded applications.[1] These additions focused on enhancing arithmetic, logical, and branch operations, allowing for more direct manipulation of data without excessive subroutine calls. For instance, new arithmetic instructions such as increment (INC) and decrement (DEC) on the accumulator enabled straightforward counter operations, while logical enhancements like OR4, OR5, AND, and AND' provided bitwise operations between the accumulator and specific registers or constants, facilitating tasks like bit masking in control systems.[1] A significant enhancement was the addition of instructions for data exchange between the accumulator and registers, including load and store operations that streamlined data movement in register-based programming.[1] Branch operations were also improved with conditional jumps based on carry and zero flags, such as extended JCN variants that tested these flags for decision-making in loops or error handling, reducing the need for flag polling sequences common in 4004 code.[1] Additionally, instructions like DBO, DB1, SBO, and SB1 allowed direct bit set/reset operations on I/O ports, optimizing for common embedded tasks such as polling status bits in peripherals.[1] All instructions in the 4040 set are either 8 bits (single-word) or 16 bits (two-word) long, with opcodes structured to prioritize frequent operations like I/O transfers (e.g., SRC for send to register control and WRM for write to main memory) for efficient embedded control flows.[1] The set maintains backward compatibility with the majority of 4004 code, as the 4040 recognizes and executes all prior instructions identically, though utilization of the new features necessitates the MCS-40 assembler for proper opcode handling and assembly.[1]

Registers, Stack, and Memory Addressing

The Intel 4040 features 24 4-bit index registers, organized into two banks: Bank 0 with 16 registers (R0–R15) always available, and Bank 1 with 8 registers (R16–R23) selectable via the SBO and SB1 instructions, with registers R8–R15 common to both banks.[1] Among these, the accumulator (A) serves as the primary register for arithmetic and logic operations, interfacing directly with the ALU to hold operands and results.[19] Index registers B and C function as versatile 4-bit storage elements that can be paired to form 8-bit units for data manipulation or as pointers in memory access, while the 12-bit program counter (PC) maintains the address of the next instruction to execute.[1] These registers enable efficient handling of 4-bit data paths, with the additional bank allowing seamless transitions during program flow without explicit saving and restoring.[6] The 4040 incorporates a 7-level hardware stack implemented as a last-in, first-out (LIFO) structure within an 8 × 12-bit address register array, dedicated to storing return addresses for nested subroutine calls and interrupt handling.[1] This stack depth supports up to seven levels of nesting, with push operations occurring via the Jump to Subroutine (JMS) instruction and pop operations through Branch on Bit Set/Reset (BBS/BBL) instructions, ensuring orderly program return after subroutine execution.[19] One level of the stack remains reserved, preventing overflow from an eighth push by overwriting the initial entry, which provides robust support for recursive or modular programming in resource-constrained environments.[6] Memory addressing in the 4040 utilizes three primary modes—immediate, direct, and indirect via registers—to access its 12-bit address space, enabling operations on up to 8 KB of ROM through a bank select mechanism that divides the space into two 4 KB banks switched via control instructions like DB0 and DB1.[1] In immediate mode, data is embedded directly in the instruction for quick constants; direct mode specifies absolute addresses within the current page; and indirect mode employs index registers B and C to compute addresses dynamically, facilitating flexible data access.[19] RAM capacity is up to 640 bytes (1280 × 4-bit nibbles), interfaced through external chips such as the 4002/4101 RAMs, with addressing controlled via the SRC instruction to select chip, register, and character positions.[1]

Interrupt and Control Mechanisms

The Intel 4040 microprocessor introduced a single maskable interrupt input via the INT pin, allowing external events to suspend normal program execution and transfer control to a dedicated interrupt service routine.[1] This interrupt is asynchronous and triggers entry into interrupt mode upon assertion of a logic high level at the INT input, provided the interrupt is enabled.[18] Upon recognition, the processor automatically saves the program counter (PC) and source register (SRC) to the stack, switches the register bank, before jumping to the fixed vector address at 0x0003 in the current ROM bank. The accumulator, carry flag, and other registers must be saved manually in the interrupt service routine if required.[1] The interrupt acknowledge output (INTA) signals that the interrupt has been latched, facilitating coordination with external circuitry.[18] Interrupt handling in the 4040 features a latency of approximately 10 clock cycles from the latching of the INT signal during the M2 phase of an instruction cycle until execution begins at the vector address.[1] The maskable nature is controlled by dedicated instructions: EIN (0x0C) enables interrupts by setting the interrupt enable bit, while DIN (0x0D) disables them, with interrupts initially disabled following a RESET.[19] For systems with multiple interrupt sources, external priority resolution logic is required to arbitrate and drive the single INT input, as the 4040 supports only one interrupt level natively.[1] Program flow resumes from the interrupted point after the service routine executes a return instruction, restoring the saved state from the stack.[18] The 4040's control mechanisms include the HALT instruction (0x01), which suspends processor execution by setting the HALT flip-flop, halting the PC increment and entering a NOP loop until an interrupt or RESET occurs.[6] Complementing this, the STOP input pin (or the associated stop mode triggered by HALT) powers down the chip, reducing power consumption to near zero while awaiting an external STOP removal or interrupt to resume.[18] These features enable low-power states and single-step debugging in development environments.[1] Central to these operations is the flag register, which integrates an interrupt enable bit alongside the zero (Z) and carry (CY) flags, allowing conditional control flow instructions like JCN (Jump Conditional) to test these bits for decisions in interrupt contexts.[19] The zero flag indicates a result of zero from arithmetic or logical operations, while the carry flag tracks overflow in additions or borrows in subtractions, with all flags influencing both normal and interrupt-driven program branches.[1] This unified flag structure simplifies status management during event-driven execution.[18]

Supporting Components

Memory and Storage Chips

The MCS-40 family primarily uses the Intel 4002 as the static random-access memory (SRAM) chip to support the 4040 microprocessor, providing 320 bits (4 registers of 20 4-bit characters each) organized for data storage, stack operations, and status.[1] Fabricated in p-channel MOS technology, it interfaces directly with the 4040 via the 4-bit bidirectional data bus and control signals, offering reliable retention without periodic refresh cycles due to its static design, though data is volatile and lost without power.[1] Up to four 4002 chips can be used, supporting the 4040's 640-byte maximum RAM addressing.[1] For expanded data storage, the Intel 4101 provides 256 words of 4-bit static RAM using N-channel MOS technology.[1] It integrates with the 4040 through memory interface components like the 4008, 4009, or 4289, enabling configurations of up to 16 chips for a total capacity of 2 KB (2048 bytes).[2] Introduced in 1974, the 4101 addressed limitations of the 4002 by offering greater capacity and compatibility with standard TTL memories, while maintaining the 4040's 12-bit RAM addressing scheme.[20] The 4101 operates with a single +5V supply, features three-state outputs for bus sharing, and has an access time of 1 µs maximum.[1] The 4003 is a 10-bit shift register chip used for additional I/O expansion, functioning as a serial-in/parallel-out device to extend input/output capabilities beyond basic memory.[1] It supports serial I/O operations with asynchronous clocking and interfaces directly via the 4-bit data bus.[1] For program storage, the 4040 relies on read-only memory (ROM) chips such as the 4001 (256 × 8 bits) and later 4308 series (1024 × 8 bits), both mask-programmable.[1][21] The 4001, fabricated in p-channel MOS technology, includes a programmable 4-bit I/O port and interfaces directly with the 4040's address bus, supporting TTL-compatible operations with external pull-up resistors.[1] The 4308 provides 1K × 8 bits of ROM along with four independent 4-bit I/O ports (16 lines total), enabling enhanced input/output capabilities while storing firmware and constant data; it responds to SRC, RDR, and WRR instructions and supports chip select options for up to eight devices in a 4040 system.[1] These ROM devices store firmware and constant data, directly interfaced through the 4040's address bus, with bank switching (via DBO/DB1 instructions) enabling up to 8 KB of total program memory.[6] No refresh is needed for these ROMs, and their static nature simplifies system timing and power management compared to dynamic alternatives.[1][2] Additional ROM options include the 4316, a 2048 × 8 bit (16K bits) static mask-programmable ROM using N-channel silicon gate MOS technology, compatible with the 4289 interface, featuring fully decoded addressing, three-state outputs, and low power dissipation of 10.7 µW/bit maximum.[1] For reprogrammable storage, the 4702 offers 256 × 8 bits (2K bits) erasable and electrically reprogrammable PROM, fabricated in silicon gate MOS technology, with TTL-compatible inputs/outputs, three-state capability, ultraviolet erasability, and fast programming in 2 minutes for all bits; it interfaces via the 4289 for program memory expansion.[1]

Clock and I/O Support Chips

The Intel 4040 microprocessor, part of the MCS-40 family, relied on dedicated support chips to generate precise clock signals and manage input/output operations, enabling reliable system timing and peripheral interfacing in PMOS-based designs.[1] The 4201 clock generator was a key component, implemented as a CMOS MSI integrated circuit that included a crystal-controlled oscillator, programmable shift register, phase decoder, output buffers, and circuitry for power-on reset and single-step operation compatible with the 4040 CPU.[22] It provided two-phase non-overlapping clock signals (φ1 and φ2) in both MOS and TTL levels, directly driving the MCS-40 set without additional buffering.[1] The device operated from an external crystal connected to its X1 and X2 pins, supporting system clock frequencies of 500 to 740 kHz when using crystals in the 4.000 to 5.185 MHz range, with programmable division modes (divide-by-2 for 4-bit mode or divide-by-8 for 7-bit mode) selected via the MODE pin to ensure precise timing essential for the slower PMOS logic speeds of the 4040.[22][23] For I/O support, the MCS-40 family includes several general-purpose ports. The 4207 provides 16 TTL-compatible output lines (including 8 data bits, 4 status inputs, and 4 control outputs), responding to SRC, WRR, and RDR instructions, with programmable clearing via CLR/LD and direct compatibility with the 4040 via the 4-bit data bus.[1] The 4209 offers 16 TTL-compatible input lines with strobe capability via CLR/LD, suitable for general-purpose input applications and interfacing peripherals.[1] The 4211 combines 8 input and 8 output lines, providing versatile bidirectional I/O with strobe and clear functions, expanding the 4040's interfacing beyond basic ROM/RAM chips.[1] Additionally, the 4265 serves as a programmable general-purpose I/O device, offering 16 lines of configurable parallel I/O with interrupt capability to expand the 4040's interfacing options beyond basic ROM/RAM chips.[24] This chip supported 14 operating modes, including bit set/reset functions and multiplexable addressing, allowing users to configure ports as inputs, outputs, or bidirectional lines tailored to custom peripherals.[25] Its interrupt feature enabled efficient handling of external events, integrating seamlessly with the 4040's control mechanisms to add flexibility for diverse system interfaces. The 4289 memory interface controller facilitates connection to standard memories like the 4101, 4316, or 4702, supporting up to 4K × 8 bits of program memory with 12-bit parallel addressing, read/write operations via RPM/WPM instructions, and an 8-bit I/O port for expansion; it uses positive logic and requires inverting buffers for compatibility with PMOS ROMs like the 4001 or 4308.[1] To buffer address and data lines for connecting multiple peripherals, the MCS-40 family included bus driver chips such as the 3216 and 3226, which were 4-bit parallel bidirectional drivers designed specifically for I/O expansion.[1] These drivers featured low input load currents (maximum 0.25 mA), high output drive capability (up to 25 mA), and three-state outputs for efficient bus sharing, with the 3216 providing non-inverted logic and the 3226 inverted logic to match various peripheral requirements.[1] By reducing package count and enabling direct TTL-compatible interfacing, these chips facilitated scalable system designs around the 4040.[1]

Applications and Legacy

Use in Early Microcomputers

The Intel Intellec 4 Mod 40, introduced in 1975, served as a foundational development system for the 4040 microprocessor, enabling engineers to prototype and test early microcomputer designs. This modular platform included the 4040 CPU, up to 1 KB of static RAM using 4101 chips, a front panel with switches and LEDs for direct memory access, monitoring, and single-step execution, along with power supplies and I/O connectors. It supported expansion through additional modules, such as memory control and interface cards, making it suitable for rapid iteration in OEM product development.[1] A key feature of the Intellec 4 Mod 40 was its integrated PROM programmer module, which facilitated assembly language programming by allowing users to load, edit, and burn programs into 4702A erasable PROMs directly via the front panel or TTY interface. The system's resident monitor and assembler software further streamlined debugging and code assembly, reducing development cycles for 4040-based applications from months to weeks.[1] The Micro 440, a compact single-board computer kit released by Comp-Sultants, Inc. in late 1975, extended the 4040's reach into hobbyist and educational platforms with its minimalist design. Equipped with the 4040 MPU, 256 bytes of RAM, and multiple I/O ports, it incorporated a hardware monitor for real-time debugging, including continuous display of the accumulator and carry flag, bidirectional address stepping, and single-step operation. This setup allowed users to program simple applications, akin to BASIC interpreters, through direct memory manipulation and port interactions, often in kit form for assembly by enthusiasts.[26] These platforms marked a pivotal shift from the 4040's calculator-oriented roots toward versatile, programmable microcomputers, fostering experimentation in general-purpose computing among developers and students.[27]

Embedded and Calculator Applications

The Intel 4040, as an enhanced member of the MCS-40 family, extended the foundational role of its predecessor, the 4004, in calculator applications beyond the initial Busicom designs. Following the 4004's deployment in Busicom's desktop printing calculators like the 141-PF, Intel developed reference calculator architectures using the MCS-40 to showcase its programmability for arithmetic and control tasks in commercial products.[28] Rockwell International, a key player in the calculator market, adopted a similar 4-bit PMOS architecture in its PPS-4 family for advanced models such as the 920 series, incorporating enhancements akin to the 4040's expanded instruction set for handling complex calculations and user interfaces.[29] In embedded systems, the 4040's PMOS technology provided relatively low power consumption, making it well-suited for battery-operated devices where energy efficiency was critical, such as portable instrumentation and controls.[3] This family saw adoption in 1970s applications like traffic light controllers, which utilized the processor's simple state machine capabilities for timing and sequencing operations with minimal external logic.[28] Medical devices, including early diagnostic instrumentation, leveraged the 4040 for reliable, low-cost processing in environments requiring compact, power-efficient electronics.[28] Further examples included vending machines and industrial process controllers, where the MCS-40 implemented basic decision-making and I/O handling for inventory management and automated sequences, often at volume prices around $10 per unit to enable cost-effective deployment.[28][30] By the mid-1970s, these embedded roles highlighted the 4040's versatility in non-computing domains, contrasting its use in versatile platforms by focusing on dedicated, real-time control functions.[9]

Modern Recreations and Influence

In recent years, hobbyists have revived interest in the Intel 4040 through single-board computer projects that recreate its functionality using original or compatible components. A notable example is Dr. Scott M. Baker's 2025 4-bit single-board computer, which supports both the Intel 4004 and 4040 CPUs interchangeably via dedicated sockets, incorporating period-appropriate elements like the 4289 memory interface for 8-bit ROM compatibility, up to 16 KB of ROM with page mapping, and interfaces for serial I/O and the RC2014 bus.[31][32] This design draws inspiration from earlier efforts, such as Jim Loos's 4004-SBC on GitHub, which includes 4040 compatibility and demonstrates applications like tic-tac-toe and arithmetic operations using MCS-40 family chips.[33] Additional hobbyist recreations appear on platforms like GitHub, including Ryo Mukai's Test4004 project, which extends the 4040 with enhanced RAM, floating-point math, and even an 8080 emulator, reflecting ongoing community-driven kits and builds.[34] Software emulations, such as the Java-based JavaSystemSimulator, further enable experimentation by modeling the 4040's CPU, memory, and peripherals for educational and testing purposes.[35] Emulations and modern recreations have helped clarify the 4040's performance, which original documentation described imprecisely due to variable instruction timings. At its standard 740 kHz clock speed, the 4040 executes approximately 92,000 instructions per second, with single-word instructions taking about 10.8 μs, as verified through cycle-accurate simulations and hardware tests on recreated boards.[2] This metric, derived from 2020s projects like optimized single-board implementations calculating π to over 2,000 digits, outperforms early estimates and highlights the chip's efficiency despite its 4-bit architecture.[36] The resurgence of such retro-computing efforts in the 2020s, including die shots and anniversary builds shared in communities like the Vintage Computer Federation, has been amplified by global semiconductor shortages, prompting enthusiasts to explore and replicate vintage hardware as alternatives or educational tools amid supply constraints for newer components.[37][38] The 4040's design significantly influenced subsequent microprocessor development, bridging the 4-bit era to the 8-bit processors like the Intel 8008 by expanding addressable memory to 8 KB and introducing 14 new instructions, including bank switching and logical operations, which facilitated scalable architectures.[39] Built on 10 μm PMOS technology with 3,000 transistors, it contributed to the standardization of metal-oxide-semiconductor processes in early Intel products, paving the way for NMOS transitions in the 8008 and enabling broader adoption in development systems like the Intellec 4/40.[2] Frequently cited in computing histories industrial standards like Prolog's STDbus, the 4040's interrupt mechanism—adding an input pin for service routines and an output for acknowledgment—laid foundational principles for real-time event handling that underpin interrupt-driven designs in modern microcontrollers.[39]

References

User Avatar
No comments yet.