It was ironic that Apple shares hit $80.86 today just when Apple was exposing it’s first Intel powered notebooks. Intels first chips were the 8086 processor.
At the Macworld 2006 Keynote in San Francisco today Apple CEO Steve Jobs reported that his Company’s revenue jumped 63 percent and that sales of the iPod music player more than tripled during the holiday season. Apple’s shares climbed 6.3 percent, or US$4.81, to close at US$80.86 the highest ever.
He then announced that for the first time Apple computer would incorporate Intel chips. How ironic. Apple stock closes at the highest ever at $80.86 and Intels first processor which Apple rejected was the 8086 16-bit microprocessor chip which was designed by Intel in 1978, and gave rise to the x86 architecture. Shortly after, the Intel 8088 was introduced with an external 8-bit bus, allowing the use of cheap chipsets. It was based on the design of the 8080 and 8085 (it was assembly language source-compatible with the 8080) with a similar register set, but was expanded to 16 bits. The Bus Interface Unit fed the instruction stream to the Execution Unit through a 6 byte prefetch queue, so fetch and execution were concurrent – a primitive form of pipelining (8086 instructions varied from 1 to 4 bytes).
It featured four 16-bit general registers, which could also be accessed as eight 8-bit registers, and four 16-bit index registers (including the stack pointer). The data registers were often used implicitly by instructions, complicating register allocation for temporary values. It featured 64K 8-bit I/O (or 32K 16 bit) ports and fixed vectored interrupts. Most instructions could only access one memory location, so one operand had to be a register. The result was stored in one of the operands.
There were also four segment registers that could be set from index registers. The segment registers allowed the CPU to access one megabyte of memory in an odd way. Rather than just supplying missing bytes, as in most segmented processors, the 8086 shifted the segment register left 4 bits and added it to the address. As a result segments overlapped, which most people consider to have been poor design. Although this was largely acceptable (and even useful) for assembly language, where control of the segments was complete, it caused confusion in languages which make heavy use of pointers (such as C). It made efficient representation of pointers difficult, and made it possible to have two pointers with different values pointing to the same location. Worse, this scheme made expanding the address space to more than one megabyte difficult. Effectively, it was expanded by changing the addressing scheme in the 80286.
The processor runs at clock speeds between 4.77 (in the original IBM PC) and 10 MHz.
Typical execution times in cycles (estimates):
addition: 3-4 (register), 9+EA-25+EA (memory access)
multiplication: 70-118 (register), 76+EA-143+EA (memory access)
move: 2 (register), 8+EA-14+EA (memory access)
near jump: 11-15, 18+EA (memory access)
far jump: 15, 24+EA (memory access)
EA: time to compute effective address, ranging from 5 to 12 cycles
The 8086 did not contain any floating point instructions, but could be connected to a mathematical coprocessors to add this capability. The Intel 8087 was the standard version, but manufacturers like Weitek soon offered higher performance alternatives.
The 8086 was cloned by the NEC V20, V25 and V30 processors.