previous | contents | next

638 Part 3 ½ Computer Classes Section 2½ Microcomputers
 

Table 5 Performance Comparison
 
8008 8080 (2 MHz) 8086 (8 MHz)
register-register transfer 12.5 
2
0.25
jump  25 
5
0.875
register-immediate operation  20 
3.5
0.5
subroutine call  28 
9
2.5
increment (16-bit)  50 
2.5
0.25
addition (16-bit)  75 
5
0.375
transfer (16-bit)  25 
2
0.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 †  F0 = F1 = 1 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.

Most significant = bit 7 original value of CARRY bit 6 = original value of SIGN

bit 5 = original value of SIGN
 
 

previous | contents | next