Knowledge

Intel 8087

Source 📝

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:)

Index


Intel
IBM
AMD
Cyrix
CPU
clock rate
Technology node
Instruction set
x87
coprocessor
x86-16
Transistors
DIP
8231/8232
80287
floating-point
coprocessor
8086
floating-point arithmetic
addition
subtraction
multiplication
division
square root
transcendental functions
exponential
logarithmic
trigonometric
FLOPS

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.