80C187 [INTEL]

80-BIT MATH COPROCESSOR; 80位数学协处理器
80C187
型号: 80C187
厂家: INTEL    INTEL
描述:

80-BIT MATH COPROCESSOR
80位数学协处理器

文件: 总30页 (文件大小:324K)
中文:  中文翻译
下载:  下载PDF数据表文档文件
80C187  
80-BIT MATH COPROCESSOR  
Y
Y
Y
High Performance 80-Bit Internal  
Architecture  
Expands 80C186’s Data Types to  
Include 32-, 64-, 80-Bit Floating-Point,  
32-, 64-Bit Integers and 18-Digit BCD  
Operands  
Implements ANSI/IEEE Standard 754-  
1985 for Binary Floating-Point  
Arithmetic  
Y
Y
Directly Extends 80C186’s Instruction  
Set to Trigonometric, Logarithmic,  
Exponential, and Arithmetic  
Y
Y
Upward Object-Code Compatible from  
8087  
Instructions for All Data Types  
Fully Compatible with 387DX and 387SX  
Math Coprocessors. Implements all 387  
Architectural Enhancements over 8087  
Full-Range Transcendental Operations  
for SINE, COSINE, TANGENT,  
ARCTANGENT, and LOGARITHM  
Y
Y
Directly Interfaces with 80C186 CPU  
Y
Y
Built-In Exception Handling  
80C186/80C187 Provide a Software/  
Binary Compatible Upgrade from  
80186/82188/8087 Systems  
Eight 80-Bit Numeric Registers, Usable  
as Individually Addressable General  
Registers or as a Register Stack  
Y
Available in 40-Pin CERDIP and 44-Pin  
PLCC Package  
Ý
(See Packaging Outlines and Dimensions, Order 231369)  
The Intel 80C187 is a high-performance math coprocessor that extends the architecture of the 80C186 with  
floating-point, extended integer, and BCD data types. A computing system that includes the 80C187 fully  
conforms to the IEEE Floating-Point Standard. The 80C187 adds over seventy mnemonics to the instruction  
set of the 80C186, including support for arithmetic, logarithmic, exponential, and trigonometric mathematical  
operations. The 80C187 is implemented with 1.5 micron, high-speed CHMOS III technology and packaged in  
both a 40-pin CERDIP and a 44-pin PLCC package. The 80C187 is upward object-code compatible from the  
8087 math coprocessor and will execute code written for the 80387DX and 80387SX math coprocessors.  
*Other brands and names are the property of their respective owners.  
Information in this document is provided in connection with Intel products. Intel assumes no liability whatsoever, including infringement of any patent or  
copyright, for sale and use of Intel products except as provided in Intel’s Terms and Conditions of Sale for such products. Intel retains the right to make  
changes to these specifications at any time, without notice. Microcomputer Products may have minor variations to this specification known as errata.  
©
COPYRIGHT INTEL CORPORATION, 1995  
November 1992  
Order Number: 270640-004  
80C187  
Figure 1. 80C187 Block Diagram  
2
80C187  
80C187 Data Registers  
64 63  
79  
78  
EXPONENT  
0
R0  
R1  
R2  
R3  
R4  
R5  
R6  
R7  
SIGN  
SIGNIFICAND  
15  
0
15  
0
CONTROL REGISTER  
STATUS REGISTER  
TAG WORD  
INSTRUCTION POINTER  
DATA POINTER  
Figure 2. Register Set  
CPU automatically controls the 80C187 whenever a  
numerics instruction is executed. All physical memo-  
ry and virtual memory of the CPU are available for  
storage of the instructions and operands of pro-  
grams that use the 80C187. All memory addressing  
modes are available for addressing numerics oper-  
ands.  
FUNCTIONAL DESCRIPTION  
The 80C187 Math Coprocessor provides arithmetic  
instructions for a variety of numeric data types. It  
also executes numerous built-in transcendental  
functions (e.g. tangent, sine, cosine, and log func-  
tions). The 80C187 effectively extends the register  
and instruction set of the 80C186 CPU for existing  
data types and adds several new data types as well.  
Figure 2 shows the additional registers visible to pro-  
grams in a system that includes the 80C187. Essen-  
tially, the 80C187 can be treated as an additional  
resource or an extension to the CPU. The 80C186  
CPU together with an 80C187 can be used as a sin-  
gle unified system.  
The end of this data sheet lists by class the instruc-  
tions that the 80C187 adds to the instruction set.  
NOTE:  
The 80C187 Math Coprocessor is also referred to  
as a Numeric Processor Extension (NPX) in this  
document.  
A 80C186 system that includes the 80C187 is com-  
pletely upward compatible with software for the  
8086/8087.  
Data Types  
Table 1 lists the seven data types that the 80C187  
supports and presents the format for each type. Op-  
erands are stored in memory with the least signifi-  
cant digit at the lowest memory address. Programs  
retrieve these values by generating the lowest ad-  
dress. For maximum system performance, all oper-  
ands should start at even physical-memory address-  
es; operands may begin at odd addresses, but will  
require extra memory cycles to access the entire op-  
erand.  
The 80C187 interfaces only with the 80C186 CPU.  
The interface hardware for the 80C187 is not imple-  
mented on the 80C188.  
PROGRAMMING INTERFACE  
The 80C187 adds to the CPU additional data types,  
registers, instructions, and interrupts specifically de-  
signed to facilitate high-speed numerics processing.  
All new instructions and data types are directly sup-  
ported by the assembler and compilers for high-level  
languages. The 80C187 also supports the full  
80387DX instruction set.  
Internally, the 80C187 holds all numbers in the ex-  
tended-precision real format. Instructions that load  
operands from memory automatically convert oper-  
ands represented in memory as 16-, 32-, or 64-bit  
integers, 32- or 64-bit floating-point numbers, or 18-  
digit packed BCD numbers into extended-precision  
real format. Instructions that store operands in mem-  
ory perform the inverse type conversion.  
All communication between the CPU and the  
80C187 is transparent to applications software. The  
3
80C187  
Numeric Operands  
Register Set  
A typical NPX instruction accepts one or two oper-  
ands and produces one (or sometimes two) results.  
In two-operand instructions, one operand is the con-  
tents of an NPX register, while the other may be a  
memory location. The operands of some instructions  
are predefined; for example, FSQRT always takes  
the square root of the number in the top stack ele-  
ment (refer to the section on Data Registers).  
Figure 2 shows the 80C187 register set. When an  
80C187 is present in a system, programmers may  
use these registers in addition to the registers nor-  
mally available on the CPU.  
DATA REGISTERS  
80C187 computations use the extended-precision  
real data type.  
Table 1. Data Type Representation in Memory  
270640–2  
NOTES:  
e
e
Decimal digit (two per byte)  
e
Negative)  
1. S  
2. d  
Sign bit (0  
e
Positive, 1  
n
e
3. X  
U
4.  
5. I  
Bits have no significance; 80C187 ignores when loading, zeros when storing  
Position of implicit binary point  
Integer bit of significand; stored in temporary real, implicit in single and double precision  
e
e
6. Exponent Bias (normalized values):  
Single: 127 (7FH)  
Double: 1023 (3FFH)  
Extended Real: 16383 (3FFFH)  
S
b
7. Packed BCD: ( 1) (D . . . D )  
17  
0
S
8. Real: ( 1) (2  
E-BIAS  
b
) (F , F . . . )  
1
0
4
80C187  
The 80C187 register set can be accessed either as  
a stack, with instructions operating on the top one or  
two stack elements, or as individually addressable  
registers. The TOP field in the status word identifies  
the current top-of-stack register. A ‘‘push’’ operation  
decrements TOP by one and loads a value into the  
new top register. A ‘‘pop’’ operation stores the value  
from the current top register and then increments  
TOP by one. The 80C187 register stack grows  
‘‘down’’ toward lower-addressed registers.  
Bit 15, the B-bit (busy bit) is included for 8087 com-  
patibility only. It always has the same value as the  
ES bit (bit 7 of the status word); it does not indicate  
the status of the BUSY output of 80C187.  
Bits 1311 (TOP) point to the 80C187 register that  
is the current top-of-stack.  
The four numeric condition code bits (C C ) are  
0
3
similar to the flags in a CPU; instructions that per-  
form arithmetic operations update these bits to re-  
flect the outcome. The effects of these instructions  
on the condition code are summarized in Tables 2  
through 5.  
Instructions may address the data registers either  
implicitly or explicitly. Many instructions operate on  
the register at the TOP of the stack. These instruc-  
tions implicitly address the register at which TOP  
points. Other instructions allow the programmer to  
explicitly specify which register to use. This explicit  
addressing is also relative to TOP.  
Bit 7 is the error summary (ES) status bit. This bit is  
set if any unmasked exception bit is set; it is clear  
otherwise. If this bit is set, the ERROR signal is as-  
serted.  
TAG WORD  
Bit 6 is the stack flag (SF). This bit is used to distin-  
guish invalid operations due to stack overflow or un-  
derflow from other kinds of invalid operations. When  
The tag word marks the content of each numeric  
data register, as Figure 3 shows. Each two-bit tag  
represents one of the eight data registers. The prin-  
cipal function of the tag word is to optimize the  
NPX’s performance and stack handling by making it  
possible to distinguish between empty and nonemp-  
ty register locations. It also enables exception han-  
dlers to identify special values (e.g. NaNs or denor-  
mals) in the contents of a stack location without the  
need to perform complex decoding of the actual  
data.  
SF is set, bit 9 (C ) distinguishes between stack  
e
1
1) and underflow (C  
e
overflow (C  
0).  
1
1
Figure 4 shows the six exception flags in bits 5–0 of  
the status word. Bits 5–0 are set to indicate that the  
80C187 has detected an exception while executing  
an instruction. A later section entitled ‘‘Exception  
Handling’’ explains how they are set and used.  
Note that when a new value is loaded into the status  
word by the FLDENV or FRSTOR instruction, the  
value of ES (bit 7) and its reflection in the B-bit (bit  
15) are not derived from the values loaded from  
memory but rather are dependent upon the values of  
the exception flags (bits 50) in the status word and  
their corresponding masks in the control word. If ES  
is set in such a case, the ERROR output of the  
80C187 is activated immediately.  
STATUS WORD  
The 16-bit status word (in the status register) shown  
in Figure 4 reflects the overall state of the 80C187. It  
may be read and inspected by programs.  
15  
0
TAG (7)  
TAG (6)  
TAG (5)  
TAG (4)  
TAG (3)  
TAG (2)  
TAG (1)  
TAG (0)  
NOTE:  
The index i of tag(i) is not top-relative. A program typically uses the ‘‘top’’ field of Status Word to determine  
which tag(i) field refers to logical top of stack.  
TAG VALUES:  
e
e
e
e
00  
01  
10  
11  
Valid  
Zero  
QNaN, SNaN, Infinity, Denormal and Unsupported Formats  
Empty  
Figure 3. Tag Word  
5
80C187  
270640–3  
ES is set if any unmasked exception bit is set; cleared otherwise.  
See Table 2 for interpretation of condition code.  
TOP values:  
e
e
000  
001  
Register 0 is Top of Stack  
Register 1 is Top of Stack  
#
#
#
Register 7 is Top of Stack  
e
111  
For definitions of exceptions, refer to the section entitled,  
‘‘Exception Handling’’  
Figure 4. Status Word  
6
80C187  
CONTROL WORD  
The NPX provides several processing options that are selected by loading a control word from memory into  
the control register. Figure 5 shows the format and encoding of fields in the control word.  
Table 2. Condition Code Interpretation  
Instruction  
C0(S)  
Three Least Significant  
Bits of Quotient  
C3(Z)  
C1(A)  
C2(C)  
Reduction  
FPREM, FPREM1  
(See Table 3)  
e
e
0
1
Complete  
Incomplete  
Q2  
Q0  
Q1  
or O/U  
FCOM, FCOMP,  
FCOMPP, FTST  
FUCOM, FUCOMP,  
FUCOMPP, FICOM,  
FICOMP  
Result of Comparison  
(See Table 4)  
Zero or  
O/U  
Operand is not  
Comparable (Table 4)  
FXAM  
Operand Class  
(See Table 5)  
Sign  
or O/U  
Operand Class  
(Table 5)  
FCHS, FABS, FXCH,  
FINCSTP, FDECSTP,  
Constant Loads,  
FXTRACT, FLD,  
FILD, FBLD,  
Zero  
or O/U  
UNDEFINED  
UNDEFINED  
UNDEFINED  
UNDEFINED  
FSTP (Ext Real)  
FIST, FBSTP,  
FRNDINT, FST,  
FSTP, FADD, FMUL,  
FDIV, FDIVR,  
Roundup  
or O/U  
UNDEFINED  
Reduction  
FSUB, FSUBR,  
FSCALE, FSQRT,  
FPATAN, F2XM1,  
FYL2X, FYL2XP1  
FPTAN, FSIN,  
FCOS, FSINCOS  
Roundup  
or O/U,  
Undefined  
e
e
0
1
Complete  
Incomplete  
e
if C2  
1
FLDENV, FRSTOR  
Each Bit Loaded from Memory  
FLDCW, FSTENV,  
FSTCW, FSTSW,  
FCLEX, FINIT,  
FSAVE  
UNDEFINED  
O/U  
When both IE and SF bits of status word are set, indicating a stack exception, this bit distinguishes between  
e
e
stack overflow (C1  
1) and underflow (C1  
0).  
Reduction  
If FPREM or FPREM1 produces a remainder that is less than the modulus, reduction is complete. When  
reduction is incomplete the value at the top of the stack is a partial remainder, which can be used as input to  
further reduction. For FPTAN, FSIN, FCOS, and FSINCOS, the reduction bit is set if the operand at the top of  
the stack is too large. In this case the original operand remains at the top of the stack.  
When the PE bit of the status word is set, this bit indicates whether one was added to the least significant bit of  
the result during the last rounding.  
Roundup  
UNDEFINED Do not rely on finding any specific value in these bits.  
7
80C187  
The low-order byte of this control word configures  
exception masking. Bits 5–0 of the control word  
contain individual masks for each of the six excep-  
tions that the 80C187 recognizes.  
as the unbiased round to nearest even mode  
specified in the IEEE standard. Rounding control  
affects only those instructions that perform  
rounding at the end of the operation (and thus  
can generate a precision exception); namely,  
FST, FSTP, FIST, all arithmetic instructions (ex-  
cept FPREM, FPREM1, FXTRACT, FABS, and  
FCHS), and all transcendental instructions.  
The high-order byte of the control word configures  
the 80C187 operating mode, including precision,  
rounding, and infinity control.  
The ‘‘infinity control bit’’ (bit 12) is not meaningful  
The precision control (PC) bits (bits 98) can be  
used to set the 80C187 internal operating preci-  
sion of the significand at less than the default of  
64 bits (extended precision). This can be useful in  
providing compatibility with early generation arith-  
metic processors of smaller precision. PC affects  
only the instructions ADD, SUB, DIV, MUL, and  
SQRT. For all other instructions, either the preci-  
sion is determined by the opcode or extended  
precision is used.  
#
#
to the 80C187, and programs must ignore its val-  
ue. To maintain compatibility with the 8087, this  
bit can be programmed; however, regardless of  
its value, the 80C187 always treats infinity in the  
k
b%  
a%  
affine sense (  
). This bit is initialized  
to zero both after a hardware reset and after the  
FINIT instruction.  
The rounding control (RC) bits (bits 1110) pro-  
vide for directed rounding and true chop, as well  
#
Table 3. Condition Code Interpretation after FPREM and FPREM1 Instructions  
Condition Code  
Interpretation after  
FPREM and FPREM1  
C2  
C3  
C1  
C0  
X
Incomplete Reduction:  
Further Iteration Required  
for Complete Reduction  
1
X
X
Q1  
Q0  
Q2  
Q MOD 8  
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
2
3
4
5
6
7
Complete Reduction:  
C0, C3, C1 Contain Three Least  
Significant Bits of Quotient  
0
Table 4. Condition Code Resulting from Comparison  
Order  
C3  
C2  
C0  
l
TOP Operand  
0
0
1
1
0
0
0
1
0
1
0
1
k
TOP Operand  
e
Unordered  
TOP  
Operand  
8
80C187  
Table 5. Condition Code Defining Operand Class  
C3  
C2  
C1  
C0  
Value at TOP  
a
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Unsupported  
NaN  
a
b
b
a
a
b
b
a
a
b
b
a
b
Unsupported  
NaN  
Normal  
Infinity  
Normal  
Infinity  
0
Empty  
0
Empty  
Denormal  
Denormal  
rupt. The CPU return address pushed onto the stack  
of the exception handler points to an ESC instruction  
(including prefixes). This instruction can be restarted  
after clearing the exception condition in the NPX.  
FNINIT, FNCLEX, FNSTSW, FNSTENV, and  
FNSAVE cannot cause this interrupt.  
INSTRUCTION AND DATA POINTERS  
Because the NPX operates in parallel with the CPU,  
any exceptions detected by the NPX may be report-  
ed after the CPU has executed the ESC instruction  
which caused it. To allow identification of the failing  
numerics instruction, the 80C187 contains registers  
that aid in diagnosis. These registers supply the op-  
code of the failing numerics instruction, the address  
of the instruction, and the address of its numerics  
memory operand (if appropriate).  
Exception Handling  
The 80C187 detects six different exception condi-  
tions that can occur during instruction execution. Ta-  
ble 6 lists the exception conditions in order of prece-  
dence, showing for each the cause and the default  
action taken by the 80C187 if the exception is  
masked by its corresponding mask bit in the control  
word.  
The instruction and data pointers are provided for  
user-written exception handlers. Whenever the  
80C187 executes a new ESC instruction, it saves  
the address of the instruction (including any prefixes  
that may be present), the address of the operand (if  
present), and the opcode.  
Any exception that is not masked by the control  
word sets the corresponding exception flag of the  
status word, sets the ES bit of the status word, and  
asserts the ERROR signal. When the CPU attempts  
to execute another ESC instruction, interrupt 16 oc-  
curs. The exception condition must be resolved via  
an interrupt service routine. The return address  
pushed onto the CPU stack upon entry to the serv-  
ice routine does not necessarily point to the failing  
instruction nor to the following instruction. The  
80C187 saves the address of the floating-point in-  
struction that caused the exception and the address  
of any memory operand required by that instruction.  
The instruction and data pointers appear in the for-  
mat shown by Figure 6. The ESC instruction  
FLDENV, FSTENV, FSAVE and FRSTOR are used  
to transfer these values between the registers and  
memory. Note that the value of the data pointer is  
undefined if the prior ESC instruction did not have a  
memory operand.  
Interrupt Description  
CPU interrupt 16 is used to report exceptional condi-  
tions while executing numeric programs. Interrupt 16  
indicates that the previous numerics instruction  
caused an unmasked exception. The address of the  
faulty instruction and the address of its operand are  
stored in the instruction pointer and data pointer reg-  
isters. Only ESC instructions can cause this inter-  
If error trapping is required at the end of a series of  
numerics instructions (specifically, when the last  
ESC instruction modifies memory data and that data  
is used in subsequent nonnumerics instructions), it is  
necessary to insert the FNOP instruction to force the  
80C187 to check its ERROR input.  
9
80C187  
270640–4  
Precision Control  
00Ð 24 Bits (Single Precision)  
01Ð (Reserved)  
10Ð 53 Bits (Double Precision)  
11Ð 64 Bits (Extended Precision)  
Rounding Control  
00Ð Round to Nearest or Even  
b%  
01Ð Round Down (toward  
10Ð Round Up (toward  
)
a%  
11Ð Chop (Truncate toward Zero)  
)
*The ‘‘infinity control’’ bit is not meaningful to the 80C187. To maintain compatibility with the 8087, this bit can be  
k
b%  
a%  
).  
programmed; however, regardless of its value, the 80C187 treats infinity in the affine sense (  
Figure 5. Control Word  
15  
7
0
a
a
a
a
a
a
a
CONTROL WORD  
0
2
4
6
8
A
C
STATUS WORD  
TAG WORD  
INSTRUCTION POINTER  
15..0  
IP  
19..16  
0
0
OPCODE  
10..0  
OPERAND POINTER  
15..0  
OP  
0
0
0
0
0
0
0
0
0
0
0
19..16  
Figure 6. Instruction and Data Pointer Image in Memory  
10  
80C187  
Table 6. Exceptions  
Cause  
Default Action  
Exception  
(If Exception is Masked)  
Invalid  
Operation  
Operation on a signalling NaN,  
unsupported format, indeterminate  
a%  
Result is a quiet NaN,  
integer indefinite, or  
BCD indefinite  
%
form (0* , 0/0), (  
b%  
)
a
(
), etc.), or stack  
overflow/underflow (SF is also set)  
Denormalized  
Operand  
At least one of the operands is  
denormalized, i.e. it has the smallest  
exponent but a nonzero significand  
The operand is normalized,  
and normal processing  
continues  
%
Zero Divisor  
Overflow  
The divisor is zero while the dividend  
is a noninfinite, nonzero number  
Result is  
The result is too large in magnitude  
to fit in the specified format  
Result is largest finite  
%
value or  
Underflow  
The true result is nonzero but too small  
to be represented in the specified format, and,  
if underflow exception is masked, denormalization  
causes loss of accuracy  
Result is denormalized  
or zero  
Inexact  
Result  
(Precision)  
The true result is not exactly representable  
in the specified format (e.g. 1/3);  
the result is rounded according to the  
rounding mode  
Normal processing  
continues  
Initialization  
8087 Compatibility  
After FNINIT or RESET, the control word contains  
the value 037FH (all exceptions masked, precision  
control 64 bits, rounding to nearest) the same values  
as in an 8087 after RESET. For compatibility with the  
8087, the bit that used to indicate infinity control (bit  
12) is set to zero; however, regardless of its setting,  
infinity is treated in the affine sense. After FNINIT or  
RESET, the status word is initialized as follows:  
This section summarizes the differences between  
the 80C187 and the 8087. Many changes have been  
designed into the 80C187 to directly support the  
IEEE standard in hardware. These changes result in  
increased performance by elminating the need for  
software that supports the standard.  
GENERAL DIFFERENCES  
All exceptions are set to zero.  
#
The 8087 instructions FENI/FNENI and FDISI/  
FNDISI perform no useful function in the 80C187  
Numeric Processor Extension. They do not alter the  
state of the 80C187 Numeric Processor Extension.  
(They are treated similarly to FNOP, except that  
ERROR is not checked.) While 8086/8087 code  
containing these instructions can be executed on  
the 80C186/80C187, it is unlikely that the exception-  
handling routines containing these instructions will  
be completely portable to the 80C187 Numeric Proc-  
essor Extension.  
Stack TOP is zero, so that after the first push the  
stack top will be register seven (111B).  
#
The condition code C C is undefined.  
0
#
#
3
The B-bit is zero.  
The tag word contains FFFFH (all stack locations  
are empty).  
80C186/80C187 initialization software should exe-  
cute an FNINIT instruction (i.e. an FINIT without a  
preceding WAIT) after RESET. The FNINIT is not  
strictly required for 80C187 software, but Intel  
recommends its use to help ensure upward compati-  
bility with other processors.  
The 80C187 differs from the 8087 with respect to  
instruction, data, and exception synchronization. Ex-  
cept for the processor control instructions, all of the  
80C187 numeric instructions are automatically syn-  
chronized by the 80C186 CPU. When necessary, the  
11  
80C187  
80C186 automatically tests the BUSY line from the  
80C187 Numeric Processor Extension to ensure that  
the 80C187 Numeric Processor Extension has com-  
pleted its previous instruction before executing the  
next ESC instruction. No explicit WAIT instructions  
are required to assure this synchronization. For the  
8087 used with 8086 and 8088 CPUs, explicit WAITs  
are required before each numeric instruction to en-  
sure synchronization. Although 8086/8087 pro-  
grams having explicit WAIT instructions will execute  
on the 80C186/80C187, these WAIT instructions  
are unnecessary.  
2. The 80C187 Numeric Processor Extension sig-  
nals exceptions through a dedicated ERROR line  
to the CPU. The 80C187 error signal does not  
pass through an interrupt controller (the 8087 INT  
signal does). Therefore, any interrupt-controller-  
oriented instructions in numerics exception han-  
dlers for the 8086/8087 should be deleted.  
3. Interrupt vector 16 must point to the numerics ex-  
ception handling routine.  
4. The ESC instruction address saved in the 80C187  
Numeric Processor Extension includes any lead-  
ing prefixes before the ESC opcode. The corre-  
sponding address saved in the 8087 does not  
include leading prefixes.  
The 80C187 supports only affine closure for infinity  
arithmetic, not projective closure.  
5. When the overflow or underflow exception is  
masked, the 80C187 differs from the 8087 in  
rounding when overflow or underflow occurs. The  
80C187 produces results that are consistent with  
the rounding mode.  
Operands for FSCALE and FPATAN are no longer  
%
FPTAN accept a wider range of operands.  
g
restricted in range (except for  
); F2XM1 and  
Rounding control is in effect for FLD constant.  
6. When the underflow exception is masked, the  
80C187 sets its underflow flag only if there is also  
a loss of accuracy during denormalization.  
Software cannot change entries of the tag word to  
values (other than empty) that differ from actual reg-  
ister contents.  
7. Fewer invalid-operation exceptions due to denor-  
mal operands, because the instructions FSQRT,  
FDIV, FPREM, and conversions to BCD or to inte-  
ger normalize denormal operands before pro-  
ceeding.  
After reset, FINIT, and incomplete FPREM, the  
80C187 resets to zero the condition code bits C –  
3
C
0
of the status word.  
8. The FSQRT, FBSTP, and FPREM instructions  
may cause underflow, because they support de-  
normal operands.  
In conformance with the IEEE standard, the 80C187  
does not support the special data formats  
pseudozero, pseudo-NaN, pseudoinfinity, and un-  
normal.  
9. The denormal exception can occur during the  
transcendental instructions and the FXTRACT in-  
struction.  
The denormal exception has a different purpose on  
the 80C187. A system that uses the denormal-ex-  
ception handler solely to normalize the denormal op-  
erands, would better mask the denormal exception  
on the 80C187. The 80C187 automatically normal-  
izes denormal operands when the denormal excep-  
tion is masked.  
10. The denormal exception no longer takes prece-  
dence over all other exceptions.  
11. When the denormal exception is masked, the  
80C187 automatically normalizes denormal op-  
erands. The 8087 performs unnormal arithmetic,  
which might produce an unnormal result.  
12. When the operand is zero, the FXTRACT in-  
struction reports a zero-divide exception and  
b%  
EXCEPTIONS  
leaves  
in ST(1).  
A number of differences exist due to changes in the  
IEEE standard and to functional improvements to  
the architecture of the 80C186/80C187:  
13. The status word has a new bit (SF) that signals  
when invalid-operation exceptions are due to  
stack underflow or overflow.  
1. The 80C186/80C187 traps exceptions only on  
the next ESC instruction; i.e. the 80C186 does not  
notice unmasked 80C187 exceptions on the  
80C186 ERROR input line until a later numerics  
instruction is executed. Because the 80C186  
does not sample ERROR on WAIT and FWAIT  
instructions, programmers should place an FNOP  
instruction at the end of a sequence of numerics  
instructions to force the 80C186 to sample its  
ERROR input.  
14. FLDextended precision no longer reports denor-  
mal exceptions, because the instruction is not  
numeric.  
15. FLD single/double precision when the operand  
is denormal converts the number to extended  
precision and signals the denormalized oper-  
12  
80C187  
and exception. When loading a signalling NaN,  
FLD single/double precision signals an invalid-  
operand exception.  
(ST(0) and ST(1) contain the scaled and scaling  
operands respectively):  
%
FSCALE (0,  
tion exception.  
) generates the invalid opera-  
#
#
#
16. The 80C187 only generates quiet NaNs (as on  
the 8087); however, the 80C187 distinguishes  
between quiet NaNs and signalling NaNs. Sig-  
nalling NaNs trigger exceptions when they are  
used as operands; quiet NaNs do not (except for  
FCOM, FIST, and FBSTP which also raise IE for  
quiet NaNs).  
b%  
FSCALE (finite,  
same sign as the scaled operand.  
) generates zero with the  
a%  
FSCALE (finite,  
same sign as the scaled operand.  
%
with the  
) generates  
The 8087 returns zero in the first case and rais-  
es the invalid-operation exception in the other  
cases.  
17. When stack overflow occurs during FPTAN and  
overflow is masked, both ST(0) and ST(1) con-  
tain quiet NaNs. The 8087 leaves the original  
operand in ST(1) intact.  
19. The 80C187 returns signed infinity/zero as the  
unmasked response to massive overflow/under-  
flow. The 8087 supports a limited range for the  
scaling factor; within this range either massive  
overflow/underflow do not occur or undefined  
results are produced.  
%
(ST(0), ST(1) instruction behaves as follows  
g
18. When the scaling factor is  
, the FSCALE  
Table 7. Pin Summary  
Function  
Pin  
Active  
State  
Input/  
Name  
Output  
CLK  
CKM  
RESET  
CLocK  
ClocKing Mode  
System reset  
I
I
I
High  
High  
PEREQ  
Processor Extension  
REQuest  
Busy status  
O
BUSY  
ERROR  
High  
Low  
O
O
Error status  
D
–D  
Data pins  
Numeric Processor ReaD  
Numeric Processor WRite  
High  
Low  
Low  
I/O  
15  
0
NPRD  
NPWR  
I
I
Ý
Ý
NPS1  
NPS2  
CMD0  
CMD1  
NPX select  
NPX select  
1
2
Low  
High  
High  
High  
I
I
I
I
CoMmanD 0  
CoMmanD 1  
V
V
System power  
System ground  
I
I
CC  
SS  
13  
80C187  
HARDWARE INTERFACE  
In the following description of hardware interface, an  
overbar above a signal name indicates that the ac-  
tive or asserted state occurs when the signal is at a  
low voltage. When no overbar is present above the  
signal name, the signal is asserted when at the high  
voltage level.  
Signal Description  
In the following signal descriptions, the 80C187 pins  
are grouped by function as follows:  
1. Execution ControlÐ CLK, CKM, RESET  
2. NPX HandshakeÐ PEREQ, BUSY, ERROR  
3. Bus Interface PinsÐ D D , NPWR, NPRD  
15 0  
4. Chip/Port SelectÐ NPS1, NPS2, CMD0, CMD1  
5. Power SuppliesÐ V , V  
CC SS  
Table 7 lists every pin by its identifier, gives a brief  
description of its function, and lists some of its char-  
acteristics. Figure 7 shows the locations of pins on  
the CERDIP package, while Figure 8 shows the loca-  
tions of pins on the PLCC package. Table 8 helps to  
locate pin identifiers in Figures 7 and 8.  
270640–5  
e
*N.C.  
Pin Not Connected  
Clock (CLK)  
Figure 7. CERDIP Pin Configuration  
This input provides the basic timing for internal oper-  
ation. This pin does not require MOS-level input; it  
will operate at either TTL or MOS levels up to the  
maximum allowed frequency. A minimum frequency  
must be provided to keep the internal logic properly  
functioning. Depending on the signal on CKM, the  
signal on CLK can be divided by two to produce the  
internal clock signal (in which case CLK may be up  
to 32 MHz in frequency), or can be used directly (in  
which case CLK may be up to 12.5 MHz).  
Clocking Mode (CKM)  
This pin is a strapping option. When it is strapped to  
V
(HIGH), the CLK input is used directly; when  
strapped to V (LOW), the CLK input is divided by  
CC  
SS  
two to produce the internal clock signal. During the  
RESET sequence, this input must be stable at least  
four internal clock cycles (i.e. CLK clocks when CKM  
c
RESET goes LOW.  
is HIGH; 2  
CLK clocks when CKM is LOW) before  
270640–6  
e
*N.C.  
Pin Not Connected  
**‘‘Top View’’ means as the package is seen from the  
component side of the board.  
Figure 8. PLCC Pin Configuration  
14  
80C187  
Table 8. PLCC Pin Cross-Reference  
CERDIP Package  
Pin Name  
PLCC Package  
BUSY  
CKM  
CLK  
25  
39  
28  
44  
32  
29  
36  
32  
CMD0  
CMD1  
31  
23  
35  
26  
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
0
22  
21  
25  
24  
1
2
20  
19  
22  
21  
3
4
18  
17  
20  
19  
5
6
16  
15  
18  
17  
7
8
14  
12  
16  
14  
9
10  
11  
12  
13  
14  
15  
11  
8
13  
9
7
8
6
7
5
26  
5
29  
ERROR  
No Connect  
NPRD  
2
27  
6, 11, 23, 33, 40  
30  
NPS1  
NPS2  
34  
33  
38  
37  
NPWR  
PEREQ  
RESET  
28  
24  
31  
27  
35  
3, 9, 13, 37, 40  
1, 4, 10, 30, 36, 38  
39  
1, 3, 10, 15, 42  
2, 4, 12, 34, 41, 43  
V
V
CC  
SS  
Table 9. Output Pin Status during Reset  
System Reset (RESET)  
Output  
Value  
A LOW to HIGH transition on this pin causes the  
80C187 to terminate its present activity and to enter  
a dormant state. RESET must remain active (HIGH)  
for at least four internal clock periods. (The relation  
of the internal clock period to CLK depends on  
CLKM; the internal clock may be different from that  
of the CPU.) Note that the 80C187 is active internal-  
ly for 25 clock periods after the termination of the  
RESET signal (the HIGH to LOW transition of RE-  
SET); therefore, the first instruction should not be  
written to the 80C187 until 25 internal clocks after  
the falling edge of RESET. Table 9 shows the status  
of the output pins during the reset sequence. After a  
reset, all output pins return to their inactive states.  
Pin Name  
during Reset  
BUSY  
HIGH  
HIGH  
ERROR  
PEREQ  
LOW  
D
–D  
TRI-STATE OFF  
15  
0
Processor Extension Request (PEREQ)  
When active, this pin signals to the CPU that the  
80C187 is ready for data transfer to/from its data  
FIFO. When there are more than five data transfers,  
15  
80C187  
PEREQ is deactivated after the first three transfers  
and subsequently after every four transfers. This sig-  
nal always goes inactive before BUSY goes inactive.  
data transfer involving the 80C187 occurs unless the  
device is selected by these lines.  
Command Selects (CMD0 and CMD1)  
Busy Status (BUSY)  
These pins along with the select pins allow the CPU  
to direct the operation of the 80C187.  
When active, this pin signals to the CPU that the  
80C187 is currently executing an instruction. This  
pin is active HIGH. It should be connected to the  
80C186’s TEST/BUSY pin. During the RESET se-  
quence this pin is HIGH. The 80C186 uses this  
HIGH state to detect the presence of an 80C187.  
System Power (V  
)
CC  
a
g
System power provides the 5V 10% DC supply  
input. All V pins should be tied together on the  
CC  
circuit board and local decoupling capacitors should  
be used between V and V  
Error Status (ERROR)  
.
SS  
CC  
This pin reflects the ES bit of the status register.  
When active, it indicates that an unmasked excep-  
tion has occurred. This signal can be changed to  
inactive state only by the following instructions (with-  
System Ground (V  
)
SS  
All V  
pins should be tied together on the circuit  
SS  
board and local decoupling capacitors should be  
used between V and V  
out  
a
preceding WAIT): FNINIT, FNCLEX,  
.
SS  
CC  
FNSTENV, FNSAVE, FLDCW, FLDENV, and  
FRSTOR. This pin should be connected to the  
ERROR pin of the CPU. ERROR can change state  
only when BUSY is active.  
Processor Architecture  
As shown by the block diagram (Figure 1), the  
80C187 NPX is internally divided into three sections:  
the bus control logic (BCL), the data interface and  
control unit, and the floating-point unit (FPU). The  
FPU (with the support of the control unit which con-  
tains the sequencer and other support units) exe-  
cutes all numerics instructions. The data interface  
and control unit is responsible for the data flow to  
and from the FPU and the control registers, for re-  
ceiving the instructions, decoding them, and se-  
quencing the microinstructions, and for handling  
some of the administrative instructions. The BCL is  
responsible for CPU bus tracking and interface.  
Data Pins (D D )  
15 0  
These bidirectional pins are used to transfer data  
and opcodes between the CPU and 80C187. They  
are normally connected directly to the correspond-  
ing CPU data pins. Other buffers/drivers driving the  
local data bus must be disabled when the CPU  
reads from the NPX. High state indicates a value of  
one. D is the least significant data bit.  
0
Numeric Processor Write (NPWR)  
A signal on this pin enables transfers of data from  
the CPU to the NPX. This input is valid only when  
NPS1 and NPS2 are both active.  
BUS CONTROL LOGIC  
The BCL communicates solely with the CPU using  
I/O bus cycles. The BCL appears to the CPU as a  
special peripheral device. It is special in two re-  
spects: the CPU initiates I/O automatically when it  
encounters ESC instructions, and the CPU uses re-  
served I/O addresses to communicate with the BCL.  
The BCL does not communicate directly with memo-  
ry. The CPU performs all memory access, transfer-  
ring input operands from memory to the 80C187 and  
transferring outputs from the 80C187 to memory. A  
dedicated communication protocol makes possible  
high-speed transfer of opcodes and operands be-  
tween the CPU and 80C187.  
Numeric Processor Read (NPRD)  
A signal on this pin enables transfers of data from  
the NPX to the CPU. This input is valid only when  
NPS1 and NPS2 are both active.  
Numeric Processor Selects (NPS1 and NPS2)  
Concurrent assertion of these signals indicates that  
the CPU is performing an escape instruction and en-  
ables the 80C187 to execute that instruction. No  
16  
80C187  
Table 10. Bus Cycles Definition  
NPS1  
NPS2  
CMD0  
CMD1  
NPRD  
NPWR  
Bus Cycle Type  
x
1
0
0
0
0
0
0
0
0
0
x
x
x
x
x
x
x
x
x
80C187 Not Selected  
80C187 Not Selected  
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
Opcode Write to 80C187  
CW or SW Read from 80C187  
Read Data from 80C187  
Write Data to 80C187  
Write Exception Pointers  
Reserved  
Read Opcode Status  
Reserved  
data path in the FPU is 84 bits wide (68 significant  
bits, 15 exponent bits, and a sign bit) which allows  
internal operand transfers to be performed at very  
high speeds.  
DATA INTERFACE AND CONTROL UNIT  
The data interface and control unit latches the data  
and, subject to BCL control, directs the data to the  
FIFO or the instruction decoder. The instruction de-  
coder decodes the ESC instructions sent to it by the  
CPU and generates controls that direct the data flow  
in the FIFO. It also triggers the microinstruction se-  
quencer that controls execution of each instruction.  
If the ESC instruction is FINIT, FCLEX, FSTSW,  
FSTSW AX, FSTCW, FSETPM, or FRSTPM, the  
control executes it independently of the FPU and the  
sequencer. The data interface and control unit is the  
one that generates the BUSY, PEREQ, and ERROR  
signals that synchronize 80C187 activities with the  
CPU.  
Bus Cycles  
The pins NPS1, NPS2, CMD0, CMD1, NPRD and  
NPWR identify bus cycles for the NPX. Table 10 de-  
fines the types of 80C187 bus cycles.  
80C187 ADDRESSING  
The NPS1, NPS2, CMD0, and CMD1 signals allow  
the NPX to identify which bus cycles are intended for  
the NPX. The NPX responds to I/O cycles when the  
I/O address is 00F8H, 00FAH, 00FCH, or 00FEH.  
The correspondence betwen I/O addresses and  
control signals is defined by Table 11. To guarantee  
correct operation of the NPX, programs must not  
perform any I/O operations to these reserved port  
addresses.  
FLOATING-POINT UNIT  
The FPU executes all instructions that involve the  
register stack, including arithmetic, logical, transcen-  
dental, constant, and data transfer instructions. The  
Table 11. I/O Address Decoding  
80C187 Select and Command Inputs  
I/O Address  
(Hexadecimal)  
NPS2  
NPS1  
CMD1  
CMD0  
00F8  
00FA  
00FC  
00FE  
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
17  
80C187  
CPU/NPX SYNCHRONIZATION  
OPCODE INTERPRETATION  
The pins BUSY, PEREQ, and ERROR are used for  
various aspects of synchronization between the  
CPU and the NPX.  
The CPU and the NPX use a bus protocol that  
adapts to the numerics opcode being executed.  
Only the NPX directly interprets the opcode. Some  
of the results of this interpretation are relevant to the  
CPU. The NPX records these results (opcode status  
information) in an internal 16-bit register. The  
80C186 accesses this register only via reads from  
NPX port 00FEH. Tables 10 and 11 define the signal  
combinations that correspond to each of the follow-  
ing steps.  
BUSY is used to synchronize instruction transfer  
from the CPU to the 80C187. When the 80C187 rec-  
ognizes an ESC instruction, it asserts BUSY. For  
most ESC instructions, the CPU waits for the  
80C187 to deassert BUSY before sending the new  
opcode.  
1. The CPU writes the opcode to NPX port 00F8H.  
This write can occur even when the NPX is busy  
or is signalling an exception. The NPX does not  
necessarily begin executing the opcode immedi-  
ately.  
The NPX uses the PEREQ pin of the CPU to signal  
that the NPX is ready for data transfer to or from its  
data FIFO. The NPX does not directly access mem-  
ory; rather, the CPU provides memory access serv-  
ices for the NPX.  
2. The CPU reads the opcode status information  
from NPX port 00FEH.  
Once the CPU initiates an 80C187 instruction that  
has operands, the CPU waits for PEREQ signals that  
indicate when the 80C187 is ready for operand  
transfer. Once all operands have been transferred  
(or if the instruction has no operands) the CPU con-  
tinues program execution while the 80C187 exe-  
cutes the ESC instruction.  
3. The CPU initiates subsequent bus cycles accord-  
ing to the opcode status information. The opcode  
status information specifies whether to wait until  
the NPX is not busy, when to transfer exception  
pointers to port 00FCH, when to read or write op-  
erands and results at port 00FAH, etc.  
In 8086/8087 systems, WAIT instructions are re-  
quired to achieve synchronization of both com-  
mands and operands. The 80C187, however, does  
not require WAIT instructions. The WAIT or FWAIT  
instruction commonly inserted by high-level compil-  
ers and assembly-language programmers for excep-  
tion synchronization is not treated as an instruction  
by the 80C186 and does not provide exception trap-  
ping. (Refer to the section ‘‘System Configuration for  
8087-Compatible Exception Trapping’’.)  
For most instructions, the NPX does not start exe-  
cuting the previously transferred opcode until the  
CPU (guided by the opcode status information) first  
writes exception pointer information to port 00FCH  
of the NPX. This protocol is completely transparent  
to programmers.  
Bus Operation  
With respect to bus interface, the 80C187 is fully  
asynchronous with the CPU, even when it operates  
from the same clock source as the CPU. The CPU  
initiates a bus cycle for the NPX by activating both  
NPS1 and NPS2, the NPX select signals. During the  
CLK period in which NPS1 and NPS2 are activated,  
the 80C187 also examines the NPRD and NPRW  
Once it has started to execute a numerics instruction  
and has transferred the operands from the CPU, the  
80C187 can process the instruction in parallel with  
and independent of the host CPU. When the NPX  
detects an exception, it asserts the ERROR signal,  
which causes a CPU interrupt.  
18  
80C187  
input signals to determine whether the cycle is a  
read or a write cycle and examines the CMD0 and  
CMD1 inputs to determine whether an opcode, oper-  
and, or control/status register transfer is to occur.  
The 80C187 activates its BUSY output some time  
after the leading edge of the NPRD or NPRW signal.  
Input and ouput data are referenced to the trailing  
edges of the NPRD and NPRW signals.  
The 80C186 pin MCS3/NPS is connected to  
NPS1; NPS2 is connected to V . Note that if the  
80C186 CPU’s DEN signal is used to gate exter-  
nal data buffers, it must be combined with the  
NPS signal to insure numeric accesses will not  
activate these buffers.  
#
CC  
The NPRD and NPRW pins are connected to the  
RD and WR pins of the 80C186.  
#
#
#
CMD1 and CMD0 come from the latched A and  
2
The 80C187 activates the PEREQ signal when it is  
ready for data transfer. The 80C187 deactivates  
PEREQ automatically.  
A
of the 80C186, respectively.  
1
The 80C187 BUSY output connects to the  
80C186 TEST/BUSY input. During RESET, the  
signal at the 80C187 BUSY output automatically  
programs the 80C186 to use the 80C187.  
System Configuration  
The 80C187 can use the CLKOUT signal of the  
80C186 to conserve board space when operating  
at 12.5 MHz or less. In this case, the 80C187  
CKM input must be pulled HIGH. For operation in  
excess of 12.5 MHz, a double-frequency external  
oscillator for CLK input is needed. In this case,  
CKM must be pulled LOW.  
#
The 80C187 can be connected to the 80C186 CPU  
as shown by Figure 9. (Refer to the 80C186 Data  
Sheet for an explanation of the 80C186’s signals.)  
This interface has the following characteristics:  
The 80C187’s NPS1, ERROR, PEREQ, and  
BUSY pins are connected directly to the corre-  
sponding pins of the 80C186.  
#
270640–7  
Figure 9. 80C186/80C187 System Configuration  
19  
80C187  
For exception handling compatible with the 80186/  
82188/8087, the 80C186 can be wired to recognize  
exceptions through an external interrupt pin, as Fig-  
ure 10 shows. (Refer to the 80C186 Data Sheet for  
an explanation of the 80C186’s signals.) With this  
arrangement, a flip-flop is needed to latch BUSY  
upon assertion of ERROR. The latch can then be  
cleared during the exception-handler routine by forc-  
ing a PCS pin active. The latch must also be cleared  
at RESET in order for the 80C186 to work with the  
80C187.  
System Configuration for 80186/  
80187-Compatible Exception Trapping  
When the 80C187 ERROR output signal is connect-  
ed directly to the 80C186 ERROR input, floating-  
Ý
point exceptions cause interrupt 16. However, ex-  
isting software may be programmed to expect float-  
ing-point exceptions to be signalled over an external  
interrupt pin via an interrupt controller.  
270640–8  
*For input clocking options, refer to Figure 9.  
Figure 10. System Configuration for 8087-Compatible Exception Trapping  
20  
80C187  
ELECTRICAL DATA  
NOTICE: This is a production data sheet. The specifi-  
cations are subject to change without notice.  
*WARNING: Stressing the device beyond the ‘‘Absolute  
Maximum Ratings’’ may cause permanent damage.  
These are stress ratings only. Operation beyond the  
‘‘Operating Conditions’’ is not recommended and ex-  
tended exposure beyond the ‘‘Operating Conditions’’  
may affect device reliability.  
Absolute Maximum Ratings*  
a
Case Temperature Under Bias (T )ÀÀÀ0 C to 85 C  
§
Storage Temperature ÀÀÀÀÀÀÀÀÀÀ 65 C to 150 C  
§
§
C
b
a
§
Voltage on Any Pin  
with Respect to GroundÀÀÀÀ 0.5V to V  
b
a
0.5V  
CC  
Power DissipationÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ1.5W  
Power and Frequency Requirements  
The typical relationship between I  
CC  
quency of operation F is as follows:  
and the fre-  
e
a
5
I
55  
F mA  
*
where F is in MHz.  
CC  
typ  
When the frequency is reduced below the minimum  
operating frequency specified in the AC Characteris-  
tics table, the internal states of the 80C187 may be-  
come indeterminate. The 80C187 clock cannot be  
stopped; otherwise, I  
beyond what the equation above indicates.  
would increase significantly  
CC  
e
a
0 C to 85 C, V  
e a  
CC  
g
5V 10%  
DC Characteristics T  
§
§
C
Symbol  
Parameter  
Input LOW Voltage  
Input HIGH Voltage  
Min  
Max  
Units  
Test Conditions  
b
a
V
V
V
V
V
V
0.5  
0.8  
V
V
V
V
V
V
IL  
a
0.5  
0.8  
2.0  
V
V
IH  
CC  
b
a
Clock Input LOW Voltage  
Clock Input HIGH Voltage  
Output LOW Voltage  
0.5  
ICL  
ICH  
OL  
OH  
a
2.0  
0.5  
CC  
e
0.45  
I
I
3.0 mA  
OL  
e b  
Output HIGH Voltage  
Power Supply Current  
2.4  
0.4 mA  
OH  
I
156  
135  
mA  
mA  
16 MHz  
12.5 MHz  
CC  
s
s
g
g
I
I
Input Leakage Current  
I/O Leakage Current  
Input Capacitance  
10  
10  
mA  
mA  
pF  
pF  
pF  
0V  
V
V
CC  
LI  
IN  
s
s
b
0.45V  
0.45V  
V
V
CC  
LO  
OUT  
e
e
e
C
C
C
10  
F
C
F
C
F
C
1 MHz  
1 MHz  
1 MHz  
IN  
I/O or Output Capacitance  
Clock Capacitance  
12  
20  
O
CLK  
21  
80C187  
AC Characteristics  
e
a
e
All timings are measured at 1.5V unless otherwise specified  
g
5V 10%  
T
C
0 C to 85 C, V  
§
§
CC  
12.5 MHz  
16 MHz  
Test  
Conditions  
Symbol  
Parameter  
Min  
Max  
(ns)  
Min  
Max  
(ns)  
(ns)  
(ns)  
T
T
(t6)  
(t7)  
Data Setup to NPWR  
Data Hold from NPWR  
43  
14  
33  
14  
dvwh  
whdx  
T
T
(t8)  
NPRD Active Time  
NPWR Active Time  
59  
59  
54  
54  
rlrh  
(t9)  
wlwh  
T
T
(t10)  
(t11)  
Command Valid to NPWR  
Command Valid to NPRD  
0
0
0
0
avwl  
avrl  
T
(t12)  
Min Delay from PEREQ Active  
to NPRD Active  
40  
30  
mhrl  
T
T
(t18)  
(t19)  
Command Hold from NPWR  
Command Hold from NPRD  
12  
12  
8
8
whax  
rhax  
T
(t20)  
(t21)  
NPRD, NPWR, RESET to  
CLK Setup Time  
46  
26  
38  
18  
Note 1  
Note 1  
ivcl  
clih  
T
NPRD, NPWR, RESET from  
CLK Hold Time  
T
T
(t24)  
(t25)  
RESET to CLK Setup  
RESET from CLK Hold  
21  
14  
19  
9
Note 1  
Note 1  
rscl  
clrs  
T
(t26)  
Command Inactive Time  
Write to Write  
Read to Read  
cmdi  
69  
69  
69  
69  
59  
59  
59  
59  
Read to Write  
Write to Read  
NOTE:  
1. This is an asynchronous input. This specification is given for testing purposes only, to assure recognition at a specific CLK  
edge.  
22  
80C187  
Timing Responses  
All timings are measured at 1.5V unless otherwise specified  
12.5 MHz  
16 MHz  
Test  
Conditions  
Symbol  
Parameter  
Min  
Max  
(ns)  
Min  
Max  
(ns)  
(ns)  
(ns)  
T
(t27)  
(t28)  
NPRD Inactive to Data Float*  
NPRD Active to Data Valid  
18  
50  
18  
45  
Note 2  
Note 3  
rhqz  
T
T
T
T
rlqv  
(t29)  
ERROR Active to Busy Inactive  
NPWR Active to Busy Active  
104  
104  
Note 4  
Note 4  
Note 5  
ilbh  
(t30)  
(t31)  
80  
80  
60  
60  
wlbv  
klml  
NPRD or NPWR Active  
to PEREQ Inactive  
T
T
(t32)  
(t33)  
Data Hold from NPRD Inactive  
RESET Inactive to BUSY Inactive  
2
2
Note 3  
rhqh  
80  
60  
rlbh  
NOTES:  
*The data float delay is not tested.  
2. The float condition occurs when the measured output current is less than I on D D .  
OL 15  
0
e
3. D D loading: C  
100 pF.  
100 pF.  
5. On last data transfer of numeric instruction.  
15  
0
L
e
4. BUSY loading: C  
L
Clock Timings  
12.5 MHz  
16 MHz*  
Test  
Conditions  
Symbol  
Parameter  
Min  
(ns)  
Max  
(ns)  
Min  
Max  
(ns)  
(ns)  
e
e
T
T
T
(t1a)  
(t1B)  
CLK Period  
CKM  
CKM  
1
0
80  
40  
250  
125  
N/A  
31.25  
N/A  
125  
Note 6  
Note 6  
clcl  
e
e
(t2a)  
(t2b)  
CLK Low Time  
CLK High Time  
CKM  
CKM  
1
0
35  
9
N/A  
7
Note 6  
Note 7  
clch  
chcl  
e
e
(t3a)  
(t3b)  
CKM  
CKM  
1
0
35  
13  
N/A  
9
Note 6  
Note 8  
T
T
(t4)  
10  
10  
8
8
Note 9  
ch2ch1  
ch1ch2  
(t5)  
Note 10  
NOTES:  
*16 MHz operation is available only in divide-by-2 mode (CKM strapped LOW).  
6. At 1.5V  
7. At 0.8V  
8. At 2.0V  
e
9. CKM  
10. CKM  
1: 3.7V to 0.8V at 16 MHz, 3.5V to 1.0V at 12.5 MHz  
1: 0.8V to 3.7V at 16 MHz, 1.0V to 3.5V at 12.5 MHz  
e
23  
80C187  
AC DRIVE AND MEASUREMENT  
POINTSÐCLK INPUT  
AC SETUP, HOLD, AND DELAY TIME  
MEASUREMENTSÐGENERAL  
270640–9  
27064010  
AC TEST LOADING ON OUTPUTS  
27064011  
DATA TRANSFER TIMING (INITIATED BY CPU)  
27064012  
24  
80C187  
DATA CHANNEL TIMING (INITIATED BY 80C187)  
27064013  
ERROR OUTPUT TIMING  
27064014  
e
CLK, RESET TIMING (CKM  
1)  
27064015  
25  
80C187  
e
CLK, NPRD, NPWR TIMING (CKM  
1)  
27064016  
e
CLK, RESET TIMING (CKM  
0)  
27064017  
RESET must meet timing shown to guarantee known phase of internal divide by 2 circuits.  
NOTE:  
RESET, NPWR, NPRD inputs are asynchronous to CLK. Timing requirements are given for testing purposes only, to assure  
recognition at a specific CLK edge.  
e
CLK, NPRD, NPWR TIMING (CKM  
0)  
27064018  
RESET, BUSY TIMING  
27064019  
26  
80C187  
DISP (displacement) is optionally present in instruc-  
tions that have MOD and R/M fields. Its presence  
depends on the values of MOD and R/M, as for in-  
structions of the CPU.  
80C187 EXTENSIONS TO THE CPU’s  
INSTRUCTION SET  
Instructions for the 80C187 assume one of the five  
forms shown in Table 12. In all cases, instructions  
are at least two bytes long and begin with the bit  
pattern 11011B, which identifies the ESCAPE class  
of instruction. Instructions that refer to memory oper-  
ands specify addresses using the CPU’s addressing  
modes.  
The instruction summaries that follow assume that  
the instruction has been prefetched, decoded, and is  
ready for execution; that bus cycles do not require  
wait states; that there are no local bus HOLD re-  
quests delaying processor access to the bus; and  
that no exceptions are detected during instruction  
execution. Timings are given in internal 80C187  
clocks and include the time for opcode and data  
transfer between the CPU and the NPX. If the in-  
struction has MOD and R/M fields that call for both  
base and index registers, add one clock.  
MOD (Mode field) and R/M (Register/Memory spec-  
ifier) have the same interpretation as the corre-  
sponding fields of CPU instructions (refer to Pro-  
grammer’s Reference Manual for the CPU). The  
Table 12. Instruction Formats  
Instruction  
Optional  
Field  
First Byte  
OPA  
Second Byte  
1
2
3
4
5
11011  
11011  
11011  
11011  
11011  
1511  
1
OPA  
OPA  
1
MOD  
1
OPB  
OPB *  
R/M  
R/M  
ST (i)  
DISP  
DISP  
MF  
MOD  
d
0
P
1
1
1
7
1
1
1
6
OPB *  
0
1
9
1
1
5
OP  
OP  
0
1
10  
8
4
3
2
1
0
NOTES:  
e
OP  
Instruction opcode, possibly split into two fields OPA and OPB  
e
e
MF  
Memory Format  
d
Destination  
0Ð Destination is ST(0)  
0Ð Destination is ST(i)  
00Ð 32-Bit Real  
01Ð 32-Bit Integer  
10Ð 64-Bit Real  
11Ð 16-Bit Integer  
e
R XOR d  
R XOR d  
0Ð Destination (op) Source  
1Ð Source (op) Destination  
e
*In FSUB and FDIV, the low-order bit of OPB is the R (reversed) bit  
e
e
Register Stack Element i  
P
Pop  
0Ð Do not pop stack  
1Ð Pop stack after operation  
ST(i)  
e
000  
001  
Stack Top  
Second Stack Element  
e
#
e
ESC  
11011  
#
#
e
111  
Eighth Stack Element  
27  
80C187  
80C187 Extensions to the 80C186 Instruction Set  
Encoding  
Clock Count Range  
Instruction  
Byte  
0
Byte  
1
Optional  
Bytes 2–3  
32-Bit  
Real  
32-Bit  
Integer  
64-Bit  
Real  
16-Bit  
Integer  
DATA TRANSFER  
a
e
FLD  
Load  
Integer/real memory to ST(0)  
Long integer memory to ST(0)  
Extended real memory to ST(0)  
BCD memory to ST(0)  
ESC MF 1  
ESC 111  
ESC 011  
ESC 111  
ESC 001  
MOD 000 R/M  
MOD 101 R/M  
MOD 101 R/M  
MOD 100 R/M  
11000 ST(i)  
DISP  
DISP  
DISP  
DISP  
40  
6572  
90101  
74  
59  
6771  
296305  
16  
ST(i) to ST(0)  
e
FST  
Store  
ST(0) to integer/real memory  
ST(0) to ST(i)  
ESC MF 1  
ESC 101  
MOD 010 R/M  
11010 ST(i)  
DISP  
58  
58  
93107  
13  
73  
73  
8093  
8093  
e
FSTP  
Store and Pop  
ST(0) to integer/real memory  
ST(0) to long integer memory  
ST(0) to extended real  
ST(0) to BCD memory  
ST(0) to ST(i)  
ESC MF 1  
ESC 111  
ESC 011  
ESC 111  
ESC 101  
MOD 011 R/M  
MOD 111 R/M  
MOD 111 R/M  
MOD 110 R/M  
11001 ST (i)  
DISP  
DISP  
DISP  
DISP  
93107  
116133  
83  
542564  
14  
e
FXCH  
Exchange  
ST(i) and ST(0)  
ESC 001  
11001 ST(i)  
20  
COMPARISON  
e
FCOM  
Compare  
Integer/real memory to ST(0)  
ST(i) to ST(0)  
ESC MF 0  
ESC 000  
MOD 010 R/M  
11010 ST(i)  
DISP  
DISP  
48  
48  
7885  
26  
67  
67  
7781  
7781  
e
FCOMP  
Compare and pop  
Integer/real memory to ST  
ST(i) to ST(0)  
ESC MF 0  
ESC 000  
MOD 011 R/M  
11011 ST(i)  
7885  
28  
e
FCOMPP  
Compare and pop twice  
ST(1) to ST(0)  
ESC 110  
ESC 001  
ESC 101  
1101 1001  
1110 0100  
11100 ST(i)  
28  
30  
26  
e
FTST  
Test ST(0)  
e
FUCOM  
Unordered compare  
e
FUCOMP  
and pop  
Unordered compare  
ESC 101  
11101 ST(i)  
28  
e
and pop twice  
FUCOMPP  
Unordered compare  
ESC 010  
ESC 001  
1110 1001  
11100101  
28  
e
FXAM  
Examine ST(0)  
32-40  
CONSTANTS  
e
e
a
Load 0.0 into ST(0)  
FLDZ  
FLD1  
ESC 001  
ESC 001  
ESC 001  
ESC 001  
1110 1110  
1110 1000  
1110 1011  
1110 1001  
22  
26  
42  
42  
a
Load 1.0 into ST(0)  
e
FLDPI  
Load pi into ST(0)  
e
FLDL2T  
Load log (10) into ST(0)  
2
Shaded areas indicate instructions not available in 8087.  
NOTE:  
a. When loading single- or double-precision zero from memory, add 5 clocks.  
28  
80C187  
80C187 Extensions to the 80C186 Instruction Set (Continued)  
Encoding  
Clock Count Range  
Instruction  
Byte  
0
Byte  
1
Optional  
Bytes 2–3  
32-Bit  
Real  
32-Bit  
Integer  
64-Bit  
Real  
16-Bit  
Integer  
CONSTANTS (Continued)  
e
e
e
FLDL2E  
FLDLG2  
FLDLN2  
Load log (e) into ST(0)  
2
ESC 001  
ESC 001  
ESC 001  
1110 1010  
1110 1100  
1110 1101  
42  
43  
43  
Load log (2) into ST(0)  
10  
Load log (2) into ST(0)  
e
ARITHMETIC  
e
FADD  
Add  
Integer/real memory with ST(0)  
ST(i) and ST(0)  
ESC MF 0  
ESC d P 0  
MOD 000 R/M  
11000 ST(i)  
DISP  
DISP  
DISP  
DISP  
4452  
4452  
4757  
108  
7792  
6573  
b
7791  
2533  
e
FSUB  
Subtract  
c
Integer/real memory with ST(0)  
ST(i) and ST(0)  
ESC MF 0  
ESC d P 0  
MOD 10 R R/M  
1110 R R/M  
7792  
6573  
d
7791  
2836  
e
FMUL  
Multiply  
Integer/real memory with ST(0)  
ST(i) and ST(0)  
ESC MF 0  
ESC d P 0  
MOD 001 R/M  
1100 1 R/M  
81102  
6893  
e
8293  
3159  
e
FDIV  
Divide  
f
g
Integer/real memory with ST(0)  
ESC MF 0  
ESC d P 0  
ESC 001  
ESC 001  
MOD 11 R R/M  
1111 R R/M  
1111 1010  
140147  
128  
142146  
h
ST(i) and ST(0)  
90  
i
e
FSQRT  
Square root  
124131  
6988  
e
FSCALE  
Scale ST(0) by ST(1)  
Partial remainder of  
1111 1101  
e
FPREM  
d
ST(0)  
ST(1)  
ESC 001  
ESC 001  
ESC 001  
1111 1000  
1111 0101  
1111 1100  
76157  
97187  
6882  
e
FPREM1  
(IEEE)  
Partial remainder  
e
FRNDINT  
to integer  
Round ST(0)  
e
FXTRACT  
of ST(0)  
Extract components  
ESC 001  
ESC 001  
ESC 001  
1111 0100  
1110 0001  
1110 0000  
7278  
24  
e
e
FABS  
FCHS  
Absolute value of ST(0)  
Change sign of ST(0)  
2627  
Shaded areas indicate instructions not available in 8087.  
NOTES:  
b. Add 3 clocks to the range when d  
c. Add 1 clock to each range when R  
e
1.  
e
1.  
e
0, 4856, typical 51).  
d. Add 3 clocks to the range when d  
0.  
e
e
f. Add 1 clock to the range when R  
e
e. typical  
54 (When d  
e
1.  
e
h. Add 3 clocks to the range when d  
g. 153159 when R  
1.  
e
1.  
s
s
a%  
b
i.  
0
ST(0)  
.
29  
80C187  
80C187 Extensions to the 80C186 Instruction Set (Continued)  
Encoding  
Instruction  
Clock Count Range  
Byte  
0
Byte  
1
Optional  
Bytes 2–3  
TRANSCENDENTAL  
j
e
FCOS  
Cosine of ST(0)  
ESC 001  
ESC 001  
ESC 001  
ESC 001  
ESC 001  
ESC 001  
ESC 001  
ESC 001  
1111 1111  
1111 0010  
1111 0011  
1111 1110  
1111 1011  
1111 0000  
1111 0001  
1111 1001  
125774  
k
j
e
FPTAN  
Partial tangent of ST(0)  
Partial arctangent  
193499  
e
FPATAN  
316489  
j
e
FSIN  
Sine of ST(0)  
124773  
j
e
FSINCOS  
l
Sine and cosine of ST(0)  
196811  
ST(0)  
2
e
b
1
F2XM1  
213478  
122540  
259549  
m
e
FYL2X  
ST(1) * log (ST(0))  
2
n
e
a
1.0)  
FYL2XP1  
ST(1) * log (ST(0)  
2
PROCESSOR CONTROL  
e
FINIT  
Initialize NPX  
ESC 011  
ESC 111  
ESC 001  
ESC 001  
ESC 101  
1110 0011  
1110 0000  
35  
17  
23  
21  
21  
e
FSTSW AX  
Store status word  
e
e
e
FLDCW  
FSTCW  
FSTSW  
Load control word  
Store control word  
Store status word  
MOD 101 R/M  
MOD 111 R/M  
MOD 111 R/M  
DISP  
DISP  
DISP  
e
FCLEX  
Clear exceptions  
ESC 011  
ESC 001  
ESC 001  
ESC 101  
ESC 101  
ESC 001  
ESC 001  
ESC 101  
ESC 001  
1110 0010  
MOD 110 R/M  
MOD 100 R/M  
MOD 110 R/M  
MOD 100 R/M  
1111 0111  
13  
146  
113  
550  
482  
23  
e
FSTENV  
FLDENV  
Store environment  
Load environment  
DISP  
DISP  
DISP  
DISP  
e
e
FSAVE  
Save state  
e
FRSTOR  
FINCSTP  
FDECSTP  
Restore state  
e
Increment stack pointer  
Decrement stack pointer  
e
1111 0110  
24  
e
FFREE  
Free ST(i)  
1100 0 ST(i)  
1101 0000  
20  
e
FNOP  
No operations  
14  
Shaded areas indicate instructions not available in 8087.  
NOTES:  
j. These timings hold for operands in the range x  
k
q/4. For operands not in this range, up to 78 clocks may be needed to  
l
l
reduce the operand.  
63  
s
l. 1.0  
k
2
k. 0  
b
ST(0)  
s
ST(0)  
.
1.0.  
b%  
b
l
l
s
%
ST(0)  
k
s
k
(2))/2,  
k
ST(1)  
a%  
k
m. 0  
n. 0  
,
.
s
k
k
a%  
.
b%  
ST(0)  
(2  
S
ST(1)  
l
l
DATA SHEET REVISION REVIEW  
The following list represents the key differences between the -002 and the -001 version of the 80C187 data  
sheet. Please review this summary carefully.  
1. Figure 10, titled ‘‘System Configuration for 8087ÐCompatible Exception Trapping’’, was replaced with a  
revised schematic. The previous configuration was faulty. Updated timing diagrams on Data Transfer Tim-  
ing, Error Output, and RESET/BUSY.  
30  

相关型号:

80C188

CMOS High-Integration 16-Bit Microprocessors
AMD

80C188

Intel Dialogic Voice Board
INTEL

80C188EA

16-BIT HIGH-INTEGRATION EMBEDDED PROCESSORS
INTEL

80C188EB

16-BIT HIGH-INTEGRATION EMBEDDED PROCESSORS
INTEL

80C188EB13

16-BIT HIGH-INTEGRATION EMBEDDED PROCESSORS
INTEL

80C188EB20

16-BIT HIGH-INTEGRATION EMBEDDED PROCESSORS
INTEL

80C188EB25

16-BIT HIGH-INTEGRATION EMBEDDED PROCESSORS
INTEL

80C188EC

16-BIT HIGH-INTEGRATION EMBEDDED PROCESSORS
INTEL

80C188EC13

16-BIT HIGH-INTEGRATION EMBEDDED PROCESSORS
INTEL

80C188EC20

16-BIT HIGH-INTEGRATION EMBEDDED PROCESSORS
INTEL

80C188EC25

16-BIT HIGH-INTEGRATION EMBEDDED PROCESSORS
INTEL

80C188XL

16-BIT HIGH-INTEGRATION EMBEDDED PROCESSORS
INTEL