Motorola 68881 (MC68881) is a co-processor used with second generation
of Motorola 68K microprocessors -
Motorola 68020 and
68030. The 68881 could be theoretically
used with earlier 68000/68010 CPUs, but only as a peripheral device.
The MC68881 FPU has 8 directly-addressable 80-bit registers. The FPU
supports 7 data types: 8, 16 and 32-bit integers, packed decimal
strings, and single, double and extended-precision floating point
numbers. When loading and storing data, the 68881 converts all these
formats into extended-precision floating-point numbers, and all
operations inside of the co-processor are performed with these
numbers. Instructions supported by the 68881 include save/load
instructions, arithmetic, trigonometric, test and branching
instructions.
The Motorola 68881 co-processor works as a memory mapped device. When
the main CPU loads co-processor instruction, it writes the
instruction code into Co-processor Interface Registers (CIR), which
are mapped in CPU address space, and then reads co-processor response
from one of CIR registers. If the co-processor returns "continue
operation" response the main CPU may start executing next instruction
while the FPU continues executing the Floating-Point (FP)
instruction. Thus, both integer and FP instructions can be executed
concurrently. The response can be also used to synchronize executions
between main CPU and the co-processor. If the FPU receives a request
to process an instruction, and it's still busy executing previous
instruction, it will tell the main CPU to wait. It's important to
note that the co-processor only executes instructions that it
receives from the CPU, and it doesn't directly access the memory or
even calculate memory addresses. When co-processor needs to read from
or write to memory, it returns a response code which instructs the
main processor to calculate memory address and read or write data to
that address.
Because the FPU operates as a memory-mapped device, it's not dependent
on the frequency of the main CPU and may run at different frequency.
|