8. The Intel Microprocessors
Society for Industrial and Applied Mathematics eBooks · 2001
The two largest manufacturers of the microprocessor chips that were used in the early personal computers incorporated the IEEE standard in their design; these were Intel (whose chips were used by IBM PCs and clones) and Motorola (whose 68000 series chips were used by the Apple Macintosh II and the early Sun workstations). Later microprocessors, such as the Sun Sparc, DEC Alpha, and IBM RS/6000 and Power PC, also followed the standard. Even the IBM 390, the successor to the 360/370 series, offers support for the IEEE standard as an alternative to the long-supported hexadecimal format. We shall confine our attention to the Intel microprocessors, since these chips were and still are the most widely used. The total number of individual computers using these chips is conservatively estimated to be in the hundreds of millions. The original Intel microprocessor was the 8086 chip, announced in 1978. This chip included a central processing unit (CPU) and an arithmetic-logical unit (ALU) but did not support floating point operations. In 1980, Intel announced the 8087 and 8088 chips, which were used in the first IBM PCs. The 8088 was a modification of the 8086. The 8087 was the floating point coprocessor, providing a floating point unit (FPU) on a separate chip from the 8088. The 8087 was revolutionary in a number of respects. It was unprecedented that so much functionality could be provided by such a small chip. Many of the features of the IEEE standard were first implemented on the 8087. The extended format recommended by the standard was based on the 8087 design. The successors of the 8087, the 80287 and 80387, were also coprocessors, implemented separately from the main chip. However, later microprocessors in the series, namely the 80486 DX, the Pentium, the Pentium Pro, the Pentium II, and the Pentium III, included the FPU on the main chip. Though each machine was faster than its predecessor, the architecture of the Pentium FPUs remained essentially the same as that of the 8087. We will now describe this in some detail. Hardware Extended Precision Floating point instructions operate primarily on data stored in eight 80-bit floating point registers, each of which can accommodate an extended format floating point number (see Chapter 4). However, it was expected that programs would usually store variables in memory using the single or double format. The extended precision registers were provided with the idea that a sequence of floating point instructions, operating on data in registers, would produce an accumulated result that is more accurate than if the computations were done using only single or double precision.