CHAPTER 5
COPROCESSOR HARDWARE INTERFACE
A numeric coprocessor enhances the performance of an Inte1386 DX microprocessor system by performing numeric instructions in parallel with the Inte1386 DX microproces- sor. The Inte1386 DX microprocessor automatically passes on these instructions to the coprocessor as it encounters them.
The Intel387 DX math coprocessor performs
The Intel386 DX microprocessor samples its ERROR# input during initialization to determine if a coprocessor is present. Very little logic or board space is required to support a numerics option. The math coprocessor can be an option. A socket can be designed on the board such that the Intel387 DX math coprocessor is a user installed option.
Data transfers to and from a coprocessor are accomplished through I/O addresses 800000F8H and 800000FCH; these addresses are automatically generated by the Inte1386 DX microprocessor for coprocessor instructions and allow simple
The Intel386 DX microprocessor has three input signals for controlling data transfer to and from an Intel387 DX math coprocessor: BUSY#, Processor Extension Request (PEREQ), and ERROR#. These signals, which are
•BUSY# indicates that the coprocessor is executing an instruction and therefore can- not accept a new one. When the Intel386 DX microprocessor encounters any copro- cessor instruction except FNINIT and FNCLEX, the BUSY# input must be inactive (high) before the coprocessor accepts the instruction. A new instruction therefore cannot overrun the execution of the current coprocessor instruction. (Certain Inte1387 DX math coprocessor instructions can be transferred when BUSY# is active (low). These instructions are queued and do not interfere with the current instruction.)
•PEREQ indicates that the coprocessor needs to transfer data to or from memory. Because the coprocessor is never a bus master, all input and output data transfers are performed by the Intel386 DX microprocessor. PEREQ always goes inactive before BUSY# goes inactive.