638 Part 3 ½ Computer Classes Section
2½ Microcomputers
Table 5 Performance Comparison
8008 | 8080 (2 MHz) | 8086 (8 MHz) | |
register-register transfer | 12.5 |
|
|
jump | 25 |
|
|
register-immediate operation | 20 |
|
|
subroutine call | 28 |
|
|
increment (16-bit) | 50 |
|
|
addition (16-bit) | 75 |
|
|
transfer (16-bit) | 25 |
|
|
All times are given in microseconds.
Table 6 Technology Comparison
8008 | 8080 | 8085 | 8086 | |
Silicon gate technology | P-channel enhancement load device | N-channel enhancement load device | N-channel depletion load device | Scaled N-channel (HMOS) depletion load device |
Clock rate | 0.5-0.8 MHz | 2-3 MHz | 3-5 MHz | 5-8 MHz |
Min gate delay †
|
30 ns ‡ | 15 ns ‡ | 5 ns | 3 ns |
Typical speed- power product | 100 pj | 40 pj | 10 pj | 2 pj |
Approximate number of transistors¶ | 2,000 | 4,500 | 6,500 | 20,000§ |
Average transistor density (mil2 per transistor) | 8.4 | 7.5 | 5.7 | 2.5 |
† Fastest inverter function available with worst-case processing.
‡ Linear-mode enhancement load.
§ This is 29,000 transistors if all ROM and PLA available placement
sites are counted.
¶ Gate equivalent can be estimates by dividing by 3.
new era has permitted system designers to concentrate on solving the
fundamental problems of the applications themselves.
X. References
Bylinsky [1975]; Faggin et al. [1972]; Hoff [1972]; Intel 8080 Manual
[1975]; Intel MCS-8 Manual [1975]; Intel MCS-40 Manual [1976]; Intel MCS-85
Manual [1977]; Intel MCS-86 Manual [1978]; Morse [1980]; Morse, Pohlman,
and Ravenel [1978]; Shima, Faggin, and Mazor [1974]; Vadasz et al. [1969].
APPENDIX 1 SAVING AND RESTORING FLAGS IN THE 8008
Interrupt routines must leave all processor flags and registers unaltered so as not to contaminate the processing that was interrupted. This is most simply done by having the interrupt routine save all flags and registers on entry and restore them prior to exiting. The 8008, unlike its successors, has no instruction for directly saving or restoring flags. Thus 8008 interrupt routines that alter flags (practically every routine does) must conditionally test each flag to obtain its value and then save that value. Since there are no instructions for directly setting or clearing flags, the flag values must be restored by executing code that will put the flags in the saved state.
The 8008 flags can be restored very efficiently if they are saved in the following format in a byte in memory.
bit 5 = original value of SIGN