The 8088 is an 8 bit version of the 8086. The 80188 and 80186 are 8 and 16 bit versions of a somewhat advanced CPU that was not used in any major PC models. The V20 and V30 are pin compatible (but faster) versions of the 8088 and 8086 respectively.
The 8086/8088 were designed as successors to the 8080, which, in turn was a successor to a four bit CPU called the 4004 (1971) and the later 8080 (1979). Internally, the 8088 dealt with 8 or 16 bit operands using a 20 bit (1mb) address range. The 8088 design was subject to a number of criticisms which we will get to shortly, but the strong point was a 20 bit address range achieved by merging two 16 bit numbers which allowed 64KBytes of addressing resolvable to any 16 bit "paragraph" in a 1Megabyte address space. Thus the IBM PC architecture was easily expanded to allow 256KBytes and eventually 640KBytes of program memory. The remaining 386KBytes of address space were used by IBM for Read Only memory, display adapter space and other special usage.
Internally the CPU had a number of registers, four of which were used for computation. The 8088 carried along capabilities from it's predecessor CPUs which were used largely in what would today be called microcontroller applications. As a result it had a large and somewhat peculiar instruction set including a number of instructions of very limited utility. Moreover, many instructions used specific registers for specific purposes meaning that the output of one operation might need to be moved to different registers before the next operation could be done. As a result, programming the 8088 could be rather tedious.
Externally, the 8088 was packaged in a 40 pin Dual Inline Package. In order to get all the required functions onto 40 pins, the data and address pins were shared, meaning that every byte transferred to or from memory required four clock cycles -- two for the address and two for the data. This would have made memory accessing a major bottleneck were it not for the fact that most instructions were quite slow. Instruction times varied from 3 clocks for a few register operations to somewhat in excess of 200 clocks for division. Typical instruction times were probably about 10 or 12 clocks. Intel rates the 8088 at .33 MIPS at 5MHz. The 80188/80186, V20 and V30 were about 20% faster.
The 8088 used in all IBM PCs using that CPU was speced at 5 MHz and run at 4.77MHz. It drew about 2.5 Watts at 5 volts. Later versions of the CPU used in some clones were runnable at 6, 8 or 10MHz. A math coprocessor -- the 8087 -- was available to handle floating point operations. There was no data caching although a four register prefetch queue (six on the 8086) was used on the 8088 so that the next instruction(s) to be executed could often be fetched during the execution of the previous instructions. In subsequent years many clones of the 8088 have been developed, some with additional capabilities. Most will run PC software. They may be encountered in embedded systems or special purposes systems.
Return To Index Copyright 1994-2002 by Donald Kenney.