General information | |
---|---|
Launched | April 1972 |
Discontinued | 1983[1] |
Marketed by | Intel |
Designed by | Computer Terminal Corporation (CTC) |
Common manufacturer(s) |
|
Performance | |
Max. CPU clock rate | 500 kHz to 800 kHz |
Data width | 8 bits |
Address width | 14 bits |
Architecture and classification | |
Application | Computer terminals, calculators, bottling machines, 1970s ASEA industrial robots[2] (IRB 6), simple computers, etc. |
Technology node | 10 µm |
Instruction set | 8008 |
Physical specifications | |
Transistors |
|
Package(s) |
|
Socket(s) | |
History | |
Predecessor(s) | Intel 4004 |
Successor(s) | Intel 8080 |
Support status | |
Unsupported |
The Intel 8008 ("eight-thousand-eight" or "eighty-oh-eight") is an early byte-oriented microprocessor designed by Computer Terminal Corporation (CTC), implemented and manufactured by Intel, and introduced in April 1972. It is an 8-bit CPU with an external 14-bit address bus that could address 16 KB of memory. Originally known as the 1201, the chip was commissioned by CTC to implement an instruction set of their design for their Datapoint 2200 programmable terminal. As the chip was delayed and did not meet CTC's performance goals, the 2200 ended up using CTC's own TTL-based CPU instead. An agreement permitted Intel to market the chip to other customers after Seiko expressed an interest in using it for a calculator.
History
CTC formed in San Antonio in 1968 under the direction of Austin O. "Gus" Roche and Phil Ray, both NASA engineers. Roche, in particular, was primarily interested in producing a desktop computer. However, given the immaturity of the market, the company's business plan mentioned only a Teletype Model 33 ASR replacement, which shipped as the Datapoint 3300. The case was deliberately designed to fit in the same space as an IBM Selectric typewriter and used a video screen shaped to have the same aspect ratio as an IBM punched card.[3] Although commercially successful, the 3300 had ongoing heat problems due to the amount of circuitry packed into such a small space.
In order to address the heating and other issues, a re-design started that featured the CPU part of the internal circuitry re-implemented on a single chip. Looking for a company able to produce their chip design, Roche turned to Intel, then primarily a vendor of memory chips.[3] Roche met with Bob Noyce, who expressed concern with the concept; John Frassanito recalls that "Noyce said it was an intriguing idea, and that Intel could do it, but it would be a dumb move. He said that if you have a computer chip, you can only sell one chip per computer, while with memory, you can sell hundreds of chips per computer."[3] Another major concern was that Intel's existing customer base purchased their memory chips for use with their own processor designs; if Intel introduced their own processor, they might be seen as a competitor, and their customers might look elsewhere for memory. Nevertheless, Noyce agreed to a $50,000 development contract in early 1970. Texas Instruments (TI) was also brought in as a second supplier.
TI was able to make samples of the 1201 based on Intel drawings, but these proved to be buggy and were rejected. Intel's own versions were delayed. CTC decided to re-implement the new version of the terminal using discrete TTL instead of waiting for a single-chip CPU. The new system was released as the Datapoint 2200 in the spring 1970, with their first sale to General Mills on 25 May 1970.[3] CTC paused development of the 1201 after the 2200 was released, as it was no longer needed. Six months later, Seiko approached Intel, expressing an interest in using the 1201 in a scientific calculator, likely after seeing the success of the simpler Intel 4004 used by Busicom in their business calculators. A small re-design followed, under the leadership of Federico Faggin, the designer of the 4004, now project leader of the 1201, expanding from a 16-pin to 18-pin design, and the new 1201 was delivered to CTC in late 1971.[3]
By that point, CTC had once again moved on, this time to the Datapoint 2200 II, which was faster. The 1201 was no longer powerful enough for the new model. CTC voted to end their involvement with the 1201, leaving the design's intellectual property to Intel instead of paying the $50,000 contract. Intel renamed it the 8008 and put it in their catalog in April 1972 priced at $120. This renaming tried to ride off the success of the 4004 chip, by presenting the 8008 as simply a 4 to 8 port, but the 8008 is not based on the 4004.[4] The 8008 went on to be a commercially successful design. This was followed by the Intel 8080, and then the hugely successful Intel x86 family.[3]
One of the first teams to build a complete system around the 8008 was Bill Pentz' team at California State University, Sacramento. The Sac State 8008 was possibly the first true microcomputer, with a disk operating system built with IBM Basic assembly language in PROM, all driving a color display, hard drive, keyboard, modem, audio/paper tape reader and printer.[5] The project started in the spring of 1972, and with key help from Tektronix the system was fully functional a year later. Bill assisted Intel with the MCS-8 kit and provided key input to the Intel 8080 instruction set, which helped make it useful for the industry and hobbyists.
In the UK, a team at S. E. Laboratories Engineering (EMI) led by Tom Spink in 1972 built a microcomputer based on a pre-release sample of the 8008. Joe Hardman extended the chip with an external stack. This, among other things, gave it power-fail save and recovery. Joe also developed a direct screen printer. The operating system was written using a meta-assembler developed by L. Crawford and J. Parnell for a Digital Equipment Corporation PDP-11.[6] The operating system was burnt into a PROM. It was interrupt-driven, queued, and based on a fixed page size for programs and data. An operational prototype was prepared for management, who decided not to continue with the project.
The 8008 was the CPU for the very first commercial non-calculator personal computers (excluding the Datapoint 2200 itself): the US SCELBI kit and the pre-built French Micral N and Canadian MCM/70. It was also the controlling microprocessor for the first several models in Hewlett-Packard's 2640 family of computer terminals.
In 1973, Intel offered an instruction set simulator for the 8008 named INTERP/8.[7] It was written in FORTRAN IV by Gary Kildall while he worked as a consultant for Intel.[8][9]
Design
13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 | (bit position) |
Main registers | ||||||||||||||
A | Accumulator | |||||||||||||
B | B register | |||||||||||||
C | C register | |||||||||||||
D | D register | |||||||||||||
E | E register | |||||||||||||
H | H register (indirect) | |||||||||||||
L | L register (indirect) | |||||||||||||
Program counter | ||||||||||||||
PC | Program Counter | |||||||||||||
Push-down address call stack | ||||||||||||||
AS | Call level 1 | |||||||||||||
AS | Call level 2 | |||||||||||||
AS | Call level 3 | |||||||||||||
AS | Call level 4 | |||||||||||||
AS | Call level 5 | |||||||||||||
AS | Call level 6 | |||||||||||||
AS | Call level 7 | |||||||||||||
Flags | ||||||||||||||
C | P | Z | S | Flags |
The 8008 was implemented in 10 μm silicon-gate enhancement-mode PMOS logic. Initial versions could work at clock frequencies up to 0.5 MHz. This was later increased in the 8008-1 to a specified maximum of 0.8 MHz. Instructions take between 5 and 11 T-states, where each T-state is 2 clock cycles.[10] Register–register loads and ALU operations take 5T (20 μs at 0.5 MHz), register–memory 8T (32 μs), while calls and jumps (when taken) take 11 T-states (44 μs).[11] The 8008 is a little slower in terms of instructions per second (36,000 to 80,000 at 0.8 MHz) than the 4-bit Intel 4004 and Intel 4040.[12] but since the 8008 processes data 8 bits at a time and can access significantly more RAM, in most applications it has a significant speed advantage over these processors. The 8008 has 3,500 transistors.[13][14][15]
The chip, limited by its 18-pin DIP, has a single 8-bit bus working triple duty to transfer 8 data bits, 14 address bits, and two status bits. The small package requires about 30 TTL support chips to interface to memory.[16] For example, the 14-bit address, which can access "16 K × 8 bits of memory", needs to be latched by some of this logic into an external memory address register (MAR). The 8008 can access 8 input ports and 24 output ports.[10]
For controller and CRT terminal use, this is an acceptable design, but it is rather cumbersome to use for most other tasks, at least compared to the next generations of microprocessors. A few early computer designs were based on it, but most would use the later and greatly improved Intel 8080 instead.
Related processor designs
The subsequent 40-pin NMOS Intel 8080 expanded upon the 8008 registers and instruction set and implements a more efficient external bus interface (using the 22 additional pins). Despite a close architectural relationship, the 8080 was not made binary compatible with the 8008, so an 8008 program would not run on an 8080. However, as two different assembly syntaxes were used by Intel at the time, the 8080 could be used in an 8008 assembly-language backward-compatible fashion.[17]
The Intel 8085 is an electrically modernized version of the 8080 that uses depletion-mode transistors and also added two new instructions.[18]
The Intel 8086, the original x86 processor, is a non-strict extension of the 8080, so it loosely resembles the original Datapoint 2200 design as well. Almost every Datapoint 2200 and 8008 instruction has an equivalent not only in the instruction set of the 8080, 8085, and Z80, but also in the instruction set of modern x86 processors (although the instruction encodings are different).[19]
Features
The 8008 architecture includes the following features:
- Seven 8-bit "scratchpad" registers: The main accumulator (A) and six other registers (B, C, D, E, H, and L).
- 14-bit program counter (PC).
- Seven-level push-down address call stack. Eight registers are actually used, with the top-most register being the PC.
- Four condition code status flags: carry (C), even parity (P), zero (Z), and sign (S).
- Indirect memory access using the H and L registers (HL) as a 14-bit data pointer (the upper two bits are ignored).
Example code
The following 8008 assembly source code is for a subroutine named MEMCPY
that copies a block of data bytes of a given size from one location to another.
001700 000 001701 000 001702 000 001703 000 001704 000 001705 000 002000 066 304 002002 056 003 002004 327 002005 060 002006 317 002007 302 002010 261 002011 053 002012 302 002013 024 001 002015 320 002016 301 002017 034 000 002021 310 002022 066 300 002024 056 003 002026 302 002027 207 002030 340 002031 060 002032 301 002033 217 002034 350 002035 364 002036 337 002037 066 302 002041 056 003 002043 302 002044 207 002045 340 002046 060 002047 301 002050 217 002051 350 002052 364 002053 373 002054 104 007 004 002057 |
; MEMCPY --
; Copy a block of memory from one location to another.
;
; Entry parameters
; SRC: 14-bit address of source data block
; DST: 14-bit address of target data block
; CNT: 14-bit count of bytes to copy
ORG 1700Q ;Data at 001700q
SRC DFB 0 ;SRC, low byte
DFB 0 ; high byte
DST DFB 0 ;DST, low byte
DFB 0 ; high byte
CNT DFB 0 ;CNT, low byte
DFB 0 ; high byte
ORG 2000Q ;Code at 002000q
MEMCPY LLI CNT+0 ;HL = addr(CNT)
LHI CNT+1
LCM ;BC = CNT
INL
LBM
LOOP LAC ;If BC = 0,
ORB
RTZ ;Return
DECCNT LAC ;BC = BC - 1
SUI 1
LCA
LAB
SBI 0
LBA
GETSRC LLI SRC+0 ;HL = addr(SRC)
LHI SRC+1
LAC ;HL = SRC + BC
ADM ;E = C + (HL)
LEA ;(lower sum)
INL ;point to upper SRC
LAB
ACM ;H = B + (HL) + CY
LHA ;(upper sum)
LLE ;L = E
LDM ;Load D from (HL)
GETDST LLI DST+0 ;HL = addr(DST)
LHI DST+1
LAC ;HL = DST + BC
ADM ;ADD code same as above
LEA
INL
LAB
ACM
LHA
LLE
LMD ;Store D to (HL)
JMP LOOP ;Repeat the loop
END
|
In the code above, all values are given in octal. Locations SRC
, DST
, and CNT
are 16-bit parameters for the subroutine named MEMCPY
. In actuality, only 14 bits of the values are used, since the CPU has only a 14-bit addressable memory space. The values are stored in little-endian format, although this is an arbitrary choice, since the CPU is incapable of reading or writing more than a single byte into memory at a time. Since there is no instruction to load a register directly from a given memory address, the HL register pair must first be loaded with the address, and the target register can then be loaded from the M operand, which is an indirect load from the memory location in the HL register pair. The BC register pair is loaded with the CNT
parameter value and decremented at the end of the loop until it becomes zero. Note that most of the instructions used occupy a single 8-bit opcode.
Designers
- CTC (Instruction set and architecture): Victor Poor and Harry Pyle.
- Intel (Implementation in silicon):
- Ted Hoff, Stan Mazor and Larry Potter (IBM Chief Scientist) proposed a single-chip implementation of the CTC architecture, using RAM-register memory rather than shift-register memory, and also added a few instructions and interrupt facility. The 8008 (originally called 1201) chip design started before the 4004 development. Hoff and Mazor, however, could not and did not develop a "silicon design" because they were neither chip designers nor process developers, and furthermore the necessary silicon-gate-based design methodology and circuits, under development by Federico Faggin for the 4004, were not yet available.[20]
- Federico Faggin, having finished the design of the 4004, became leader of the project from January 1971 until its successful completion in April 1972, after it had been suspended – for lack of progress – for about seven months.
- Hal Feeney, project engineer, did the detailed logic design, circuit design, and physical layout under Faggin's supervision, employing the same design methodology that Faggin had originally developed for the Intel 4004 microprocessor, and utilizing the basic circuits he had developed for the 4004. A combined "HF" logo was etched onto the chip about halfway between the D5 and D6 bonding pads.
Second sources
- MicroSystems International (MIL) MF8008
- Siemens SAB8008
See also
- Intel Intellec 8
- Mark-8 and SCELBI, 8008-based computer kits
- MCM/70 and Micral, pioneering microcomputers
- PL/M, the first programming language targeting a microprocessor, the Intel 8008, developed by Gary Kildall
References
- ↑ "The Life Cycle of a CPU". www.cpushack.com.
- ↑ "Thirty years in robotics – Robotics". 2014-05-19. Archived from the original on 2014-03-19. Retrieved 2018-04-11.
- 1 2 3 4 5 6 Wood, Lamont (2008-04-08), "Forgotten PC history: The true origins of the personal computer", Computerworld
- ↑ Ken Shirriff in an interview with Bryan Cantril, Jess Frazzelle, published by Oxide Computing Podcast "First, the 4004 and the 8008 are entirely different chips. Marketing makes them sound like it's just a 4-bit and 8-bit version, but they're totally different." https://oxide.computer/podcast/on-the-metal-13-ken-shirriff/#t=19:52
- ↑ "Inside the world's long-lost first microcomputer". cnet.com. 2010-01-08. Retrieved 2018-04-11.
- ↑ Brunel University, 1974. Master of Technology dissertation, L. R. Crawford.
- ↑ "XI. Appendices III. MCS-8 Software Package - Simulator". MCS-8 Microcomputer Set - 8008 - 8 Bit Parallel Central Processor Unit - Users Manual (PDF). Revision 4, Second Printing. Santa Clara, California, USA: Intel Corporation. 1974 [November 1973]. pp. 84–94. MCS-056-0574/25K. Archived (PDF) from the original on 2023-11-25. Retrieved 2023-11-25. (132 pages)
- ↑ Kildall, Gary Arlen (1974-06-27). "High-level language simplifies microcomputer programming" (PDF). Electronics. McGraw-Hill Education. pp. 103–109 [108]. Archived (PDF) from the original on 2021-11-14. Retrieved 2021-11-14.
- ↑ "8008 Simulator INTERP/8" (PDF). Microcomputer Software. Santa Clara, California, USA: Intel Corporation. March 1975. Product Code 98-118A. MCS-514-0375/27.5K. Archived (PDF) from the original on 2023-11-25. Retrieved 2023-11-25. (2 pages)
- 1 2 "MCS-8 Micro Computer Set Users Manual" (PDF). Intel Corporation. 1972. Retrieved 2010-12-04.
- ↑ "Intel 8008 Opcodes". Retrieved 2010-12-04.
- ↑ "Intel 8008 (i8008) microprocessor family". CPU World. 2003–2010. Retrieved 2010-12-04.
- ↑ Intel. "Gordon Moore and Moore's Law". Archived from the original on 2009-09-04. Retrieved 2009-06-28.
- ↑ Intel (2012). "Intel Chips: timeline poster".
- ↑ Intel (2008). "Microprocessor Quick Reference Guide".
- ↑ Oral History of Federico Faggin (PDF) (X2941.2005 ed.). Computer History Museum. 2004-09-22. p. 82. Retrieved 2023-07-14.
- ↑ See the Z80 article for a description.
- ↑ See the Intel 8085 article for a description.
- ↑ See the Intel 8086 article for a description.
- ↑ Faggin, Federico; Hoff, Jr., Marcian E.; Mazor, Stanley; Shima, Masatoshi (December 1996). "The History of the 4004". IEEE Micro. Los Alamitos, USA: IEEE Computer Society. 16 (6): 10–19. doi:10.1109/40.546561. ISSN 0272-1732.
External links
- MCS-8 User Manual with 8008 data sheet (1972)
- Wood, Lamont (2008-08-08). "Forgotten PC history: The true origins of the personal computer". Computer World.
- The Intel 8008 support page unofficial
- The DigiBarn Computer Museum's page on Bill Pentz' Sacramento State machine, a full microcomputer built around the 8008
- Martin, Donald P. (1974). Microcomputer Design. Martin Research.
- — (1976). Microcomputer Design (2 ed.). Martin Research. OCLC 911808003.
- Runyan, Grant (April 1977). "Now — BASIC for the 8008 — Even!". Kilobaud Magazine: 116–118.
- "A BASIC language interpreter for the Intel 8008 microprocessor". University of Illinois. 1974.
- 8008 Assembly Language Reference Card
- Shirriff, Ken (December 2016). "Die photos and analysis of the revolutionary 8008 microprocessor, 45 years old".
- — (February 2017). "Reverse-engineering the surprisingly advanced ALU of the 8008 microprocessor".
- — (October 2020). "How the bootstrap load made the historic Intel 8008 processor possible".
- — (November 2020). "Reverse-engineering the carry-lookahead circuit in the Intel 8008 processor".