522:
calculation time for a memory operand , to transfer the second byte of the operand word), after which the CPU would begin executing the next instruction of the program. Thus, a system with an 8087 was capable of true parallel processing, performing one operation in the integer ALU of the main CPU while at the same time performing a floating-point operation in the 8087 coprocessor. Since the 8086 or 8088 exclusively controlled the instruction flow and timing and had no direct access to the internal status of the 8087, and because the 8087 could execute only one instruction at a time, programs for the combined 8086/8087 or 8088/8087 system had to ensure that the 8087 had time to complete the last instruction issued to it before it was issued another one. The WAIT instruction (of the main CPU) was provided for this purpose, and most assemblers implicitly asserted a WAIT instruction before each instance of most floating-point coprocessor instructions. (It is not necessary to use a WAIT instruction before an 8087 operation if the program uses other means to ensure that enough time elapses between the issuance of timing-sensitive 8087 instructions so that the 8087 can never receive such an instruction before it completes the previous one. It is also not necessary, if a WAIT is used, that it immediately precede the next 8087 instruction.) The WAIT instruction waited for the −TEST input pin of the 8086/8088 to be asserted (low), and this pin was connected to the BUSY pin of the 8087 in all systems that had an 8087 (so TEST was asserted when BUSY was deasserted).
518:
into any CPU register or perform any operation on it; the 8087 would observe the bus and decode the instruction stream in sync with the 8086, recognizing the coprocessor instructions meant for itself. For an 8087 instruction with a memory operand, if the instruction called for the operand to be read, the 8087 would take the word of data read by the main CPU from the data bus. If the operand to be read was longer than one word, the 8087 would also copy the address from the address bus; then, after completion of the data read cycle driven by the CPU, the 8087 would immediately use DMA to take control of the bus and transfer the additional bytes of the operand itself. If an 8087 instruction with a memory operand called for that operand to be written, the 8087 would ignore the read word on the data bus and just copy the address, then request DMA and write the entire operand, in the same way that it would read the end of an extended operand. In this way, the main CPU maintained general control of the bus and bus timing, while the 8087 handled all other aspects of execution of coprocessor instructions, except for brief DMA periods when the 8087 would take over the bus to read or write operands to/from its own internal registers. As a consequence of this design, the 8087 could only operate on operands taken either from memory or from its own registers, and any exchange of data between the 8087 and the 8086 or 8088 was only through RAM.
526:
bus. The 8086 and 8088 have two queue status signals connected to the coprocessor to allow it to synchronize with the CPU's internal timing of execution of instructions from its prefetch queue. The 8087 maintains its own identical prefetch queue, from which it reads the coprocessor opcodes that it actually executes. Because the 8086 and 8088 prefetch queues have different sizes and different management algorithms, the 8087 determines which type of CPU it is attached to by observing a certain CPU bus line when the system is reset, and the 8087 adjusts its internal instruction queue accordingly. The redundant duplication of prefetch queue hardware in the CPU and the coprocessor is inefficient in terms of power usage and total die area, but it allowed the coprocessor interface to use very few dedicated IC pins, which was important. At the time when the 8086, which defined the coprocessor interface, was introduced, IC packages with more than 40 pins were rare, expensive, and suffered from problems such as excessive lead capacitance, a major limiting factor for signalling speeds.
863:" section). There was a potential crash problem if the coprocessor instruction failed to decode to one that the coprocessor understood. Intel's later coprocessors did not connect to the buses in the same way, but received instructions through the main processor I/O ports. This yielded an execution time penalty, but the potential crash problem was avoided because the main processor would ignore the instruction if the coprocessor refused to accept it. The 8087 was able to detect whether it was connected to an 8088 or an 8086 by monitoring the data bus during the reset cycle.
549:
303:
27:
482:
real number, with a stack architecture CPU and eight 80-bit stack registers, with a computationally rich instruction set. The design solved a few outstanding known problems in numerical computing and numerical software: rounding-error problems were eliminated for 64-bit operands, and numerical mode conversions were solved for all 64-bit numbers. Palmer credited
838:(selected by the status register). With affine closure, positive and negative infinities are treated as different values. With projective closure, infinity is treated as an unsigned representation for very small or very large numbers. These two methods of handling infinity were incorporated into the draft version of the
854:
The 8087 differed from subsequent Intel coprocessors in that it was directly connected to the address and data buses. The 8087 looked for instructions that commenced with the "11011" sequence and acted on them, immediately requesting DMA from the main CPU as necessary to access memory operands longer
539:
Application programs had to be written to make use of the special floating-point instructions. At run time, software could detect the coprocessor and use it for floating-point operations. When detected absent, similar floating-point functions had to be calculated in software, or the whole coprocessor
481:
In 1977 Pohlman got the go ahead to design the 8087 math chip. Bruce
Ravenel was assigned as architect, and John Palmer was hired to be co-architect and mathematician for the project. The two came up with a revolutionary design with 64 bits of mantissa and 16 bits of exponent for the longest-format
517:
When the 8086 or 8088 CPU executed the ESC instruction, if the second byte (the ModR/M byte) specified a memory operand, the CPU would execute a bus cycle to read one word from the memory location specified in the instruction (using any 8086 addressing mode), but it would not store the read operand
525:
Because the instruction prefetch queues of the 8086 and 8088 make the time when an instruction is executed not always the same as the time it is fetched, a coprocessor such as the 8087 cannot determine when an instruction for itself is the next instruction to be executed purely by watching the CPU
489:
The 8087 design initially met a cool reception in Santa Clara due to its aggressive design. Eventually, the design was assigned to Intel Israel, and Rafi Nave was assigned to lead the implementation of the chip. Palmer, Ravenel and Nave were awarded patents for the design. Robert
Koehler and John
866:
The 8087 was, in theory, capable of working concurrently while the 8086/8 processes additional instructions. In practice, there was the potential for program failure if the coprocessor issued a new instruction before the last one had completed. The assembler would automatically insert an FWAIT
521:
The main CPU program continued to execute while the 8087 executed an instruction; from the perspective of the main 8086 or 8088 CPU, a coprocessor instruction took only as long as the processing of the opcode and any memory operand cycle (2 clock cycles for no operand, 8 clock cycles plus the EA
313:
The 8087 was an advanced integrated circuit, pushing the limits of manufacturing technology of the period. Basic operations on the 8087 such as addition and subtraction can take over 100 machine cycles to execute and some instructions exceed 1000 cycles. The chip lacks a hardware multiplier and
514:." The instruction mnemonic assigned by Intel for these coprocessor instructions is "ESC." The 8087 was expensive and difficult to manufacture with low yields. It also ran quite hot, forcing Intel to use a more expensive ceramic package for improved thermal dissipation.
891:. Starting with the 80486, the later Intel processors did not use a separate floating-point coprocessor; virtually all included it on the main processor die, with the significant exception of the 80486SX, which was a modified 80486DX with the FPU disabled.
535:
The first three "x" bits are the first three bits of the floating-point opcode. Then two "m" bits, then the latter half three bits of the floating-point opcode, followed by three "r" bits. The "m" and "r" bits specify the addressing-mode information.
1256:
1150:
The ROM contains 16 arctangent values, the arctans of 2. It also contains 14 log values, the base-2 logs of (1+2). These may seem like unusual values, but they are used in an efficient algorithm called CORDIC, which was invented in
1237:
357:
processors featured integrated floating-point coprocessors; floating-point functions were integrated with the processor. Intel 486SX processors have a disabled or absent floating-point unit but allow for a separate 80487.
477:
The 8087 was initially conceived by Bill
Pohlman, the engineering manager at Intel who oversaw the development of the 8086 chip. Bill took steps to be sure that the 8086 chip could support a yet-to-be-developed math chip.
846:) was dropped from the later formal issue of IEEE 754-1985. The 80287 retained projective closure as an option, but the 80387 and subsequent floating-point processors (including the 80187) only supported affine closure.
564:
structure ranging from st0 to st7, where st0 is the top. The x87 instructions operate by pushing, calculating, and popping values on this stack. However, dyadic operations such as FADD, FMUL, FCMP, and so on may either
505:
begin with F, such as FADD, FMUL, FCOM and so on, making them easily distinguishable from 8086 instructions. The binary encodings for all 8087 instructions begin with the bit pattern 11011, decimal 27, the same as the
601:
When Intel designed the 8087, it aimed to make a standard floating-point format for future designs. An important aspect of the 8087 from a historical perspective was that it became the basis for the
1196:
Intel
Corporation, "Price List for Intel Personal Computer Enhancement Products Effective November 1, 1989", Personal Computer Enhancement Operation, Order No. 245.2, 10-89/75K/AL/GO, October 1989
621:
internal temporary format (that could also be stored in memory) to improve accuracy over large and complex calculations. Apart from this, the 8087 offered an 80-bit/18-digit packed BCD (
867:
instruction after every coprocessor opcode, forcing the 8086/8 to halt execution until the 8087 signalled that it had finished. This limitation was removed from later designs.
859:
hold up execution of the program until the coprocessor instruction was complete, and the program had to explicitly synchronize the two processors, as explained above (in the "
295:
calculations. The performance enhancements were from approximately 20% to over 500%, depending on the specific application. The 8087 could perform about 50,000
1409:
1059:
605:
floating-point standard. The 8087 did not implement the eventual IEEE 754 standard in all its details, as the standard was not finished until 1985, but the
1162:
Yoshida, Stacy, "Math
Coprocessors: Keeping Your Computer Up for the Count", Intel Corporation, Microcomputer Solutions, September/October 1990, page 16
2425:
2242:
577:(i.e. as a combined destination and left operand) and can also be exchanged with any of the eight stack registers using an instruction called FXCH st
2430:
2626:
2528:
2440:
490:
Bayliss were also awarded a patent for the technique where some instructions with a particular bit pattern were offloaded to the coprocessor.
2445:
2435:
2420:
2247:
1172:
924:
2237:
1450:
2473:
875:
Just as the 8088 and 8086 processors were superseded by later parts, so was the 8087 superseded. Other Intel coprocessors were the
843:
498:
2533:
585:). This makes the x87 stack usable as seven freely addressable registers plus an accumulator. This is especially applicable on
1388:
1281:
510:
character ESC, although in the higher-order bits of a byte; similar instruction prefixes are also sometimes referred to as "
1594:
1579:
1503:
1493:
470:
or similar processors and used an 8-bit data bus. They were interfaced to a host system either through programmed I/O or a
1498:
2611:
1518:
1513:
1508:
2292:
2149:
1306:
493:
The 8087 had 65,000 transistors and was manufactured as a 4.5 μm (then shrunk to 3 μm) depletion-load
329:
standard for floating-point arithmetic. The available speed version were 4.77 (5), 8, and 10 MHz. There were later
2483:
2463:
1726:
1572:
1550:
1545:
1540:
1535:
1488:
1483:
2408:
1555:
1530:
1067:
364:
and its associated products were discontinued on March 30, 2007 for orders and
September 28, 2007 for shipments.
1721:
1690:
1661:
1443:
1793:
1702:
1562:
1525:
1478:
1133:
1421:
1027:
2590:
1764:
1714:
1678:
855:
than one word (16 bits), then immediately releasing bus control back to the main CPU. The coprocessor
155:
560:
set such as the main registers of the x86 processors; instead, the x87 registers form an eight-level deep
529:
The coprocessor operation codes are encoded in 6 bits across 2 bytes, beginning with the escape sequence:
1788:
1759:
1751:
1709:
1697:
1673:
1118:
1567:
1666:
1404:
1092:
1251:
1232:
2543:
1436:
256:
2321:
1473:
1459:
307:
593:
of 1993 and later), where these exchange instructions are optimized down to a zero-clock penalty.
321:
Sales of the 8087 received a significant boost when a coprocessor socket was included on the 1981
2621:
2585:
2560:
2154:
574:
280:
127:
1179:
931:
2575:
1631:
1621:
1616:
1584:
1414:
561:
272:
106:
2616:
2565:
2287:
1897:
622:
471:
284:
204:
2167:
8:
2523:
2013:
839:
2570:
2403:
2398:
2185:
1869:
1864:
1859:
1854:
1849:
618:
557:
2393:
2388:
2383:
2378:
2373:
2368:
2363:
2358:
2353:
1001:
2336:
2220:
2190:
1384:
1302:
1277:
975:
949:
2331:
2309:
2273:
2071:
1965:
1820:
1652:
1607:
1038:
835:
614:
610:
181:
1928:
1901:
1271:
460:
453:
288:
222:
145:
1326:
532:┌───────────┬───────────┐ │ 1101 1xxx │ mmxx xrrr │ └───────────┴───────────┘
2468:
2132:
497:
circuit. It worked in tandem with the 8086 or 8088 and introduced about 60 new
268:
245:
2304:
2172:
2605:
2095:
2085:
2044:
1781:
907:, and later processors include floating-point functionality on the CPU core.
900:
602:
483:
326:
292:
1195:
1042:
1035:
AFIPS '80, Proceedings of the, May 19–22, 1980, National
Computer Conference
2348:
2034:
1685:
831:
511:
486:'s writings on floating point as a significant influence on their design.
2254:
2205:
2195:
2090:
2057:
2052:
2039:
1998:
1992:
1986:
1738:
1733:
899:
chip with an extra pin. When installed, it disabled the 80486SX CPU. The
896:
586:
361:
350:
338:
334:
276:
264:
248:
164:
1410:
Coprocessor.info: 8087 math coprocessor history information and pictures
1273:
Assembly
Language and Systems Programming for the IBM PC and Compatibles
540:
could be emulated in software for more precise numerical compatibility.
2493:
2488:
2343:
2282:
2227:
2200:
2144:
1980:
1974:
1949:
1943:
1937:
1916:
1910:
1844:
1829:
1769:
467:
252:
130:
168:
2553:
2538:
2498:
2326:
2215:
2210:
2117:
2112:
1626:
573:
memory operand or register; the st0 register may thus be used as an
2548:
2127:
1776:
1638:
1428:
827:
502:
260:
548:
2580:
2478:
2316:
2299:
2259:
2180:
2161:
2139:
1839:
1834:
904:
590:
346:
302:
255:
line of microprocessors. The purpose of the chip was to speed up
880:
2503:
2269:
2122:
2107:
1816:
1648:
1134:"Extracting ROM constants from the 8087 math coprocessor's die"
892:
888:
884:
876:
322:
315:
1422:"Die analysis of the 8087 math coprocessor's fast bit shifter"
1254:, "Duplex central processing unit synchronization circuit"
26:
2067:
1603:
606:
507:
296:
232:
111:
78:
1344:
569:
use the topmost st0 and st1 or may use st0 together with an
2415:
2232:
2102:
2080:
1876:
1213:
494:
342:
2009:
1961:
1748:
1210:, Intel catalog no. C-864/280/150K/CP, pages 8-21, 8-28.
354:
330:
160:
82:
1235:, "Fraction bus for use in a numeric data processor"
842:
floating-point standard. However, projective closure (
625:) format and 16-, 32-, and 64-bit integer data types.
1087:
1085:
556:The x87 family does not use a directly addressable
1405:Intel 80x87 math coprocessors at cpu-collection.de
1054:
1052:
883:, as Intel moved to a CMOS process by that time),
2603:
1320:
1318:
1082:
325:motherboard. Development of the 8087 led to the
1381:Software Solutions for Engineers and Scientists
1049:
596:
1815:
1037:. Anaheim, California: ACM. pp. 887–893.
1444:
1415:Datasheet for the Intel 8087 Math Coprocessor
1378:
1350:
1315:
1219:
617:floating-point data types and an additional
1125:
860:
16:Floating-point microprocessor made by Intel
1451:
1437:
25:
1379:Sanchez, Julio; Canton, Maria P. (2007).
1290:
1019:
993:
447:
1419:
1131:
1111:
1028:"The INTEL® 8087 Numeric Data Processor"
849:
844:projectively extended real number system
547:
301:
2529:Process–architecture–optimization model
1301:(2nd ed.). Que. pp. 395–403.
1296:
967:
452:Intel had previously manufactured the
2627:Computer-related introductions in 1980
2604:
1362:
1324:
1269:
1025:
999:
973:
947:
1432:
1458:
1325:Shvets, Gennadiy (8 October 2011).
1000:Shvets, Gennadiy (8 October 2011).
974:Shvets, Gennadiy (8 October 2011).
948:Shvets, Gennadiy (8 October 2011).
466:. These were designed for use with
244:, announced in 1980, was the first
13:
314:implements calculations using the
14:
2638:
1398:
609:did. The 8087 provided two basic
552:Simplified 8087 microarchitecture
2544:Intel HD, UHD, and Iris Graphics
1140:. Self-published by Ken Shirriff
1002:"Cyrix 8087 floating-point unit"
1632:P6 variant (Enhanced Pentium M)
1372:
1356:
1263:
1244:
1225:
1200:
1189:
1165:
1156:
723:80-bit extended-precision real
434:
140:Architecture and classification
976:"AMD 8087 floating-point unit"
950:"IBM 8087 floating-point unit"
941:
917:
349:processors. Starting with the
1:
1276:. Little Brown. p. 302.
1173:"Product Change Notification"
925:"Product Change Notification"
910:
870:
755:32-bit single-precision real
739:64-bit double-precision real
1178:. 2 May 2006. Archived from
930:. 2 May 2006. Archived from
597:IEEE floating-point standard
543:
7:
1299:Upgrading and repairing PCs
1208:Component Data Catalog 1980
821:
367:
44:; 44 years ago
10:
2643:
1420:Shirriff, Ken (May 2020).
1132:Shirriff, Ken (May 2020).
806:
793:
785:
776:
768:
759:
743:
719:
630:
457:Arithmetic processing unit
2612:Intel x86 microprocessors
2516:
2456:
2268:
2066:
2008:
1959:
1926:
1896:
1889:
1808:
1747:
1647:
1602:
1593:
1466:
1351:Sanchez & Canton 2007
1270:Lemone, Karen A. (1985).
1220:Sanchez & Canton 2007
895:was in fact a full-blown
811:
808:
798:
795:
782:
780:
772:18-digit decimal integer
766:
763:
751:
748:
745:
735:
732:
729:
727:
716:
713:
257:floating-point arithmetic
228:
218:
213:
196:
180:
175:
154:
144:
139:
135:4 MHz to 10 MHz
125:
120:
96:
88:
74:
56:
38:
33:
24:
1026:Palmer, John F. (1980).
464:Floating Point Processor
299:using around 2.4 watts.
281:transcendental functions
1297:Mueller, Scott (1992).
1043:10.1145/1500518.1500674
176:Physical specifications
60:September 28, 2007
1627:P6 variant (Pentium M)
1119:"Intel 8087 Datasheet"
1066:. 2007. Archived from
861:Design and development
815:16-bit binary integer
802:32-bit binary integer
789:64-bit binary integer
553:
448:Design and development
310:
62:; 16 years ago
850:Coprocessor interface
551:
501:. Most 8087 assembly
333:coprocessors for the
305:
1070:on 30 September 2011
1064:Coprocessor Dot Info
623:binary-coded decimal
440:Suggested Unit Price
259:operations, such as
156:Instruction set
146:Technology node
97:Common manufacturers
1327:"Intel 8087 family"
279:. It also computes
34:General information
21:
2426:Sandy Bridge-based
1595:Microarchitectures
1580:Microarchitectures
1185:on 9 October 2006.
937:on 9 October 2006.
836:projective closure
554:
311:
19:
2599:
2598:
2512:
2511:
1885:
1884:
1804:
1803:
1390:978-1-4200-4302-0
1283:978-0-316-52069-0
1097:cpu-collection.de
830:values by either
826:The 8087 handles
819:
818:
430:
429:
238:
237:
150:4.5->3 μm
2634:
2431:Ivy Bridge-based
2022:8/16-bit databus
1894:
1893:
1813:
1812:
1809:Current products
1600:
1599:
1460:Intel processors
1453:
1446:
1439:
1430:
1429:
1425:
1394:
1366:
1360:
1354:
1348:
1342:
1341:
1339:
1337:
1322:
1313:
1312:
1294:
1288:
1287:
1267:
1261:
1260:
1259:
1255:
1248:
1242:
1241:
1240:
1236:
1229:
1223:
1217:
1211:
1204:
1198:
1193:
1187:
1186:
1184:
1177:
1169:
1163:
1160:
1154:
1153:
1147:
1145:
1129:
1123:
1122:
1115:
1109:
1108:
1106:
1104:
1089:
1080:
1079:
1077:
1075:
1056:
1047:
1046:
1032:
1023:
1017:
1016:
1014:
1012:
997:
991:
990:
988:
986:
971:
965:
964:
962:
960:
945:
939:
938:
936:
929:
921:
628:
627:
589:x86 processors (
581:(codes D9C8–D9CF
441:
438:
372:
371:
70:
68:
63:
52:
50:
45:
29:
22:
18:
2642:
2641:
2637:
2636:
2635:
2633:
2632:
2631:
2602:
2601:
2600:
2595:
2524:Tick–tock model
2508:
2452:
2441:Broadwell-based
2332:Extreme Edition
2264:
2062:
2004:
1955:
1922:
1881:
1800:
1743:
1643:
1589:
1462:
1457:
1401:
1391:
1375:
1370:
1369:
1361:
1357:
1349:
1345:
1335:
1333:
1323:
1316:
1309:
1295:
1291:
1284:
1268:
1264:
1257:
1250:
1249:
1245:
1238:
1231:
1230:
1226:
1218:
1214:
1205:
1201:
1194:
1190:
1182:
1175:
1171:
1170:
1166:
1161:
1157:
1143:
1141:
1130:
1126:
1117:
1116:
1112:
1102:
1100:
1091:
1090:
1083:
1073:
1071:
1058:
1057:
1050:
1030:
1024:
1020:
1010:
1008:
998:
994:
984:
982:
972:
968:
958:
956:
946:
942:
934:
927:
923:
922:
918:
913:
873:
852:
824:
704:
696:
688:
680:
672:
664:
656:
648:
640:
632:8087 data types
619:extended 80-bit
599:
584:
546:
533:
450:
445:
444:
439:
435:
370:
209:
192:
116:
66:
64:
61:
48:
46:
43:
17:
12:
11:
5:
2640:
2630:
2629:
2624:
2622:Floating point
2619:
2614:
2597:
2596:
2594:
2593:
2588:
2583:
2578:
2573:
2568:
2563:
2558:
2557:
2556:
2551:
2546:
2541:
2531:
2526:
2520:
2518:
2514:
2513:
2510:
2509:
2507:
2506:
2501:
2496:
2491:
2486:
2481:
2476:
2471:
2466:
2460:
2458:
2454:
2453:
2451:
2450:
2449:
2448:
2443:
2438:
2433:
2428:
2423:
2413:
2412:
2411:
2406:
2401:
2396:
2391:
2386:
2381:
2376:
2371:
2366:
2361:
2356:
2351:
2341:
2340:
2339:
2334:
2329:
2324:
2314:
2313:
2312:
2307:
2297:
2296:
2295:
2290:
2279:
2277:
2266:
2265:
2263:
2262:
2257:
2252:
2251:
2250:
2245:
2243:NetBurst-based
2240:
2230:
2225:
2224:
2223:
2218:
2213:
2208:
2203:
2198:
2193:
2188:
2178:
2177:
2176:
2170:
2159:
2158:
2157:
2152:
2142:
2137:
2136:
2135:
2130:
2125:
2120:
2115:
2110:
2100:
2099:
2098:
2093:
2088:
2077:
2075:
2064:
2063:
2061:
2060:
2055:
2050:
2049:32-bit databus
2047:
2042:
2037:
2032:
2031:16-bit databus
2029:
2023:
2019:
2017:
2006:
2005:
2003:
2002:
1996:
1990:
1984:
1978:
1971:
1969:
1957:
1956:
1954:
1953:
1947:
1941:
1934:
1932:
1924:
1923:
1921:
1920:
1914:
1907:
1905:
1891:
1887:
1886:
1883:
1882:
1880:
1879:
1874:
1873:
1872:
1867:
1862:
1857:
1852:
1842:
1837:
1832:
1826:
1824:
1810:
1806:
1805:
1802:
1801:
1799:
1798:
1797:
1796:
1786:
1785:
1784:
1774:
1773:
1772:
1767:
1756:
1754:
1745:
1744:
1742:
1741:
1736:
1731:
1730:
1729:
1719:
1718:
1717:
1707:
1706:
1705:
1695:
1694:
1693:
1683:
1682:
1681:
1671:
1670:
1669:
1658:
1656:
1645:
1644:
1642:
1641:
1636:
1635:
1634:
1629:
1619:
1613:
1611:
1597:
1591:
1590:
1588:
1587:
1582:
1577:
1576:
1575:
1570:
1565:
1560:
1559:
1558:
1553:
1548:
1543:
1538:
1533:
1523:
1522:
1521:
1516:
1511:
1506:
1501:
1496:
1486:
1481:
1470:
1468:
1464:
1463:
1456:
1455:
1448:
1441:
1433:
1427:
1426:
1417:
1412:
1407:
1400:
1399:External links
1397:
1396:
1395:
1389:
1374:
1371:
1368:
1367:
1355:
1353:, p. 110.
1343:
1314:
1307:
1289:
1282:
1262:
1243:
1224:
1212:
1199:
1188:
1164:
1155:
1124:
1110:
1081:
1048:
1018:
992:
966:
940:
915:
914:
912:
909:
872:
869:
851:
848:
832:affine closure
823:
820:
817:
816:
813:
810:
807:
804:
803:
800:
797:
794:
791:
790:
787:
784:
781:
778:
777:
774:
773:
770:
767:
765:
761:
760:
757:
756:
753:
750:
747:
744:
741:
740:
737:
734:
731:
728:
725:
724:
721:
718:
715:
711:
710:
708:(bit position)
705:
702:
700:
697:
694:
692:
689:
686:
684:
681:
678:
676:
673:
670:
668:
665:
662:
660:
657:
654:
652:
649:
646:
644:
641:
638:
635:
634:
598:
595:
582:
545:
542:
531:
449:
446:
443:
442:
432:
431:
428:
427:
424:
421:
418:
414:
413:
410:
407:
404:
400:
399:
396:
393:
390:
386:
385:
382:
379:
376:
369:
366:
269:multiplication
246:floating-point
236:
235:
230:
226:
225:
220:
216:
215:
211:
210:
208:
207:
200:
198:
194:
193:
191:
190:
186:
184:
178:
177:
173:
172:
158:
152:
151:
148:
142:
141:
137:
136:
133:
123:
122:
118:
117:
115:
114:
109:
104:
100:
98:
94:
93:
90:
86:
85:
76:
72:
71:
58:
54:
53:
40:
36:
35:
31:
30:
15:
9:
6:
4:
3:
2:
2639:
2628:
2625:
2623:
2620:
2618:
2615:
2613:
2610:
2609:
2607:
2592:
2589:
2587:
2584:
2582:
2579:
2577:
2574:
2572:
2569:
2567:
2564:
2562:
2559:
2555:
2552:
2550:
2547:
2545:
2542:
2540:
2537:
2536:
2535:
2532:
2530:
2527:
2525:
2522:
2521:
2519:
2515:
2505:
2502:
2500:
2497:
2495:
2492:
2490:
2487:
2485:
2482:
2480:
2477:
2475:
2472:
2470:
2467:
2465:
2462:
2461:
2459:
2455:
2447:
2446:Skylake-based
2444:
2442:
2439:
2437:
2436:Haswell-based
2434:
2432:
2429:
2427:
2424:
2422:
2421:Nehalem-based
2419:
2418:
2417:
2414:
2410:
2407:
2405:
2402:
2400:
2397:
2395:
2392:
2390:
2387:
2385:
2382:
2380:
2377:
2375:
2372:
2370:
2367:
2365:
2362:
2360:
2357:
2355:
2352:
2350:
2347:
2346:
2345:
2342:
2338:
2335:
2333:
2330:
2328:
2325:
2323:
2320:
2319:
2318:
2315:
2311:
2308:
2306:
2303:
2302:
2301:
2298:
2294:
2291:
2289:
2286:
2285:
2284:
2281:
2280:
2278:
2275:
2271:
2267:
2261:
2258:
2256:
2253:
2249:
2246:
2244:
2241:
2239:
2236:
2235:
2234:
2231:
2229:
2226:
2222:
2219:
2217:
2214:
2212:
2209:
2207:
2204:
2202:
2199:
2197:
2194:
2192:
2189:
2187:
2186:Original i586
2184:
2183:
2182:
2179:
2174:
2171:
2169:
2166:
2165:
2163:
2160:
2156:
2153:
2151:
2148:
2147:
2146:
2143:
2141:
2138:
2134:
2131:
2129:
2126:
2124:
2121:
2119:
2116:
2114:
2111:
2109:
2106:
2105:
2104:
2101:
2097:
2094:
2092:
2089:
2087:
2084:
2083:
2082:
2079:
2078:
2076:
2073:
2069:
2065:
2059:
2056:
2054:
2051:
2048:
2046:
2043:
2041:
2038:
2036:
2033:
2030:
2027:
2024:
2021:
2020:
2018:
2015:
2011:
2007:
2000:
1997:
1994:
1991:
1988:
1985:
1982:
1979:
1976:
1973:
1972:
1970:
1967:
1963:
1958:
1951:
1948:
1945:
1942:
1939:
1936:
1935:
1933:
1930:
1925:
1918:
1915:
1912:
1909:
1908:
1906:
1903:
1899:
1895:
1892:
1888:
1878:
1875:
1871:
1868:
1866:
1863:
1861:
1858:
1856:
1853:
1851:
1848:
1847:
1846:
1843:
1841:
1838:
1836:
1833:
1831:
1828:
1827:
1825:
1822:
1818:
1814:
1811:
1807:
1795:
1792:
1791:
1790:
1787:
1783:
1782:Goldmont Plus
1780:
1779:
1778:
1775:
1771:
1768:
1766:
1763:
1762:
1761:
1758:
1757:
1755:
1753:
1750:
1746:
1740:
1737:
1735:
1732:
1728:
1725:
1724:
1723:
1720:
1716:
1713:
1712:
1711:
1708:
1704:
1701:
1700:
1699:
1696:
1692:
1689:
1688:
1687:
1684:
1680:
1677:
1676:
1675:
1672:
1668:
1665:
1664:
1663:
1660:
1659:
1657:
1654:
1650:
1646:
1640:
1637:
1633:
1630:
1628:
1625:
1624:
1623:
1620:
1618:
1615:
1614:
1612:
1609:
1605:
1601:
1598:
1596:
1592:
1586:
1583:
1581:
1578:
1574:
1571:
1569:
1566:
1564:
1561:
1557:
1554:
1552:
1549:
1547:
1544:
1542:
1539:
1537:
1534:
1532:
1529:
1528:
1527:
1524:
1520:
1517:
1515:
1512:
1510:
1507:
1505:
1502:
1500:
1497:
1495:
1492:
1491:
1490:
1487:
1485:
1482:
1480:
1477:
1476:
1475:
1472:
1471:
1469:
1465:
1461:
1454:
1449:
1447:
1442:
1440:
1435:
1434:
1431:
1423:
1418:
1416:
1413:
1411:
1408:
1406:
1403:
1402:
1392:
1386:
1383:. CRC Press.
1382:
1377:
1376:
1365:, p. 300
1364:
1359:
1352:
1347:
1332:
1328:
1321:
1319:
1310:
1308:0-88022-856-3
1304:
1300:
1293:
1285:
1279:
1275:
1274:
1266:
1253:
1247:
1234:
1228:
1222:, p. 96.
1221:
1216:
1209:
1203:
1197:
1192:
1181:
1174:
1168:
1159:
1152:
1139:
1135:
1128:
1120:
1114:
1098:
1094:
1088:
1086:
1069:
1065:
1061:
1055:
1053:
1044:
1040:
1036:
1029:
1022:
1007:
1003:
996:
981:
977:
970:
955:
951:
944:
933:
926:
920:
916:
908:
906:
902:
898:
894:
890:
886:
882:
878:
868:
864:
862:
858:
847:
845:
841:
837:
833:
829:
814:
805:
801:
792:
788:
779:
775:
771:
762:
758:
754:
742:
738:
726:
722:
712:
709:
706:
701:
698:
693:
690:
685:
682:
677:
674:
669:
666:
661:
658:
653:
650:
645:
642:
637:
636:
633:
629:
626:
624:
620:
616:
612:
608:
604:
594:
592:
588:
580:
576:
572:
568:
563:
559:
550:
541:
537:
530:
527:
523:
519:
515:
513:
509:
504:
500:
496:
491:
487:
485:
484:William Kahan
479:
475:
473:
469:
465:
462:
458:
455:
437:
433:
425:
422:
419:
416:
415:
411:
408:
405:
402:
401:
397:
394:
391:
388:
387:
383:
380:
377:
374:
373:
365:
363:
359:
356:
352:
348:
344:
340:
336:
332:
328:
327:IEEE 754-1985
324:
319:
317:
309:
304:
300:
298:
294:
293:trigonometric
290:
286:
282:
278:
274:
270:
266:
262:
258:
254:
250:
247:
243:
234:
231:
227:
224:
221:
217:
212:
206:
202:
201:
199:
195:
188:
187:
185:
183:
179:
174:
170:
167:extension of
166:
162:
159:
157:
153:
149:
147:
143:
138:
134:
132:
129:
124:
119:
113:
110:
108:
105:
102:
101:
99:
95:
91:
87:
84:
80:
77:
73:
59:
55:
41:
37:
32:
28:
23:
2617:Coprocessors
2025:
1890:Discontinued
1727:Cypress Cove
1686:Sandy Bridge
1380:
1373:Bibliography
1358:
1346:
1334:. Retrieved
1330:
1298:
1292:
1272:
1265:
1246:
1227:
1215:
1207:
1202:
1191:
1180:the original
1167:
1158:
1149:
1142:. Retrieved
1137:
1127:
1113:
1101:. Retrieved
1096:
1072:. Retrieved
1068:the original
1063:
1034:
1021:
1009:. Retrieved
1005:
995:
983:. Retrieved
979:
969:
957:. Retrieved
953:
943:
932:the original
919:
879:(actually -
874:
865:
856:
853:
825:
769:BCD Integer
707:
631:
600:
578:
570:
566:
555:
538:
534:
528:
524:
520:
516:
512:escape codes
499:instructions
492:
488:
480:
476:
474:controller.
463:
456:
451:
436:
375:Model Number
360:
320:
312:
241:
239:
57:Discontinued
1739:Golden Cove
1734:Willow Cove
1715:Cannon Lake
1363:Lemone 1985
1144:3 September
1093:"Intel FPU"
887:, and the
587:superscalar
575:accumulator
362:Intel 80186
318:algorithm.
306:Intel 8087
289:logarithmic
285:exponential
277:square root
265:subtraction
249:coprocessor
219:Predecessor
182:Transistors
165:coprocessor
121:Performance
89:Designed by
75:Marketed by
2606:Categories
2534:Intel GPUs
2248:Core-based
2012:(external
1900:oriented (
1770:Silvermont
1722:Sunny Cove
1691:Ivy Bridge
1474:Processors
1336:1 December
1252:US 4270167
1233:US 4484259
1138:righto.com
1103:1 December
1074:1 December
1011:1 December
985:1 December
959:1 December
911:References
871:Successors
567:implicitly
459:, and the
381:Model Name
242:Intel 8087
131:clock rate
67:2007-09-28
20:Intel 8087
2586:Codenames
2499:StrongARM
2337:Dual-Core
2310:Dual-Core
2221:Dual-Core
2191:OverDrive
2140:A100/A110
2133:OverDrive
1927:pre-x86 (
1794:Gracemont
1703:Broadwell
1331:CPU World
1006:CPU World
980:CPU World
954:CPU World
752:Fraction
749:Exponent
736:Fraction
733:Exponent
720:Fraction
717:Exponent
544:Registers
503:mnemonics
423:BOX8087-1
409:BOX8087-2
378:Frequency
229:Successor
223:8231/8232
2591:Larrabee
2469:iAPX 432
2404:11th gen
2399:10th gen
2238:P6-based
2128:RapidCAD
1870:14th gen
1865:13th gen
1860:12th gen
1855:11th gen
1850:10th gen
1777:Goldmont
1765:Saltwell
1679:Westmere
1639:NetBurst
1585:Chipsets
840:IEEE 754
828:infinity
822:Infinity
812:Integer
799:Integer
786:Integer
603:IEEE 754
571:explicit
558:register
368:Variants
353:, Intel
283:such as
273:division
261:addition
251:for the
39:Launched
2581:Stratix
2517:Related
2479:Itanium
2394:9th gen
2389:8th gen
2384:7th gen
2379:6th gen
2374:5th gen
2369:4th gen
2364:3rd gen
2359:2nd gen
2354:1st gen
2317:Pentium
2300:Celeron
2260:Tolapai
2181:Pentium
2164:(1998)
2162:Celeron
2053:80387DX
2045:80387SX
1840:Pentium
1835:Celeron
1789:Tremont
1760:Bonnell
1710:Skylake
1698:Haswell
1674:Nehalem
1573:Itanium
1489:Pentium
1484:Celeron
905:Pentium
901:80486DX
897:80486DX
857:did not
591:Pentium
395:BOX8087
351:80486DX
347:80386SX
214:History
203:40-pin
197:Package
65: (
47: (
2504:XScale
2274:64-bit
2270:x86-64
2175:(2004)
2072:32-bit
2035:80C187
2028:(1980)
2001:(1982)
1995:(1982)
1989:(1982)
1983:(1979)
1977:(1978)
1966:16-bit
1960:Early
1952:(1977)
1946:(1974)
1940:(1972)
1919:(1974)
1913:(1971)
1821:64-bit
1817:x86-64
1667:Penryn
1653:64-bit
1649:x86-64
1608:32-bit
1387:
1305:
1280:
1258:
1239:
1206:Intel
1099:. 2011
1060:"8087"
881:80C287
615:64-bit
426:$ 270
420:10 MHz
417:8087-1
412:$ 205
403:8087-2
398:$ 142
384:(USD)
345:, and
323:IBM PC
316:CORDIC
275:, and
169:x86-16
2576:PIIXs
2457:Other
2255:Quark
2068:IA-32
2058:80487
2040:80287
1999:80286
1993:80188
1987:80186
1929:8-bit
1902:4-bit
1604:IA-32
1568:Quark
1467:Lists
1183:(PDF)
1176:(PDF)
1151:1958.
1031:(PDF)
935:(PDF)
928:(PDF)
893:80487
889:80187
885:80387
877:80287
607:80387
562:stack
508:ASCII
406:8 MHz
392:5 MHz
343:80386
339:80286
335:80186
297:FLOPS
233:80287
189:65000
126:Max.
112:Cyrix
103:Intel
92:Intel
79:Intel
2571:ICHs
2566:SCHs
2561:PCHs
2494:i960
2489:i860
2484:RISC
2474:EPIC
2464:CISC
2416:Xeon
2344:Core
2283:Atom
2233:Xeon
2228:Core
2145:Atom
2103:i486
2081:i386
2074:x86)
2026:8087
2014:FPUs
1981:8088
1975:8086
1950:8085
1944:8080
1938:8008
1917:4040
1911:4004
1877:Xeon
1845:Core
1830:Atom
1662:Core
1610:x86)
1563:Xeon
1526:Core
1479:Atom
1385:ISBN
1338:2011
1303:ISBN
1278:ISBN
1146:2020
1105:2011
1076:2011
1013:2011
987:2011
961:2011
699:...
691:...
683:...
675:...
667:...
659:...
651:...
643:...
495:HMOS
468:8080
461:8232
454:8231
389:8087
253:8086
240:The
49:1980
42:1980
2554:Arc
2539:GMA
2288:SoC
2206:III
2196:Pro
2155:SoC
2118:DX4
2113:DX2
2091:376
2010:x87
1962:x86
1898:BCD
1752:ULV
1749:x86
1504:III
1494:Pro
1039:doi
834:or
472:DMA
355:x86
331:x87
308:die
291:or
205:DIP
161:x87
128:CPU
107:AMD
83:IBM
2608::
2549:Xe
2293:CE
2201:II
2150:CE
2123:SL
2108:SX
2096:EX
2086:SX
1622:P6
1617:P5
1551:i9
1546:i7
1541:i5
1536:i3
1499:II
1329:.
1317:^
1148:.
1136:.
1095:.
1084:^
1062:.
1051:^
1033:.
1004:.
978:.
952:.
903:,
809:±
796:±
783:±
764:±
746:±
730:±
714:±
611:32
341:,
337:,
287:,
271:,
267:,
263:,
81:,
2409:M
2349:2
2327:D
2322:4
2305:D
2276:)
2272:(
2216:M
2211:4
2173:D
2168:M
2070:(
2016:)
1968:)
1964:(
1931:)
1904:)
1823:)
1819:(
1655:)
1651:(
1606:(
1556:M
1531:2
1519:M
1514:D
1509:4
1452:e
1445:t
1438:v
1424:.
1393:.
1340:.
1311:.
1286:.
1121:.
1107:.
1078:.
1045:.
1041::
1015:.
989:.
963:.
703:0
695:5
687:2
679:1
671:0
663:3
655:7
647:1
639:9
613:/
583:h
579:X
171:)
163:(
69:)
51:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.