14 FN2949.4
February 22, 2008
will be available on the bus and the addressed devi c e will
drive the READY line HIGH. When the processor returns the
read signal to a HIGH level, the addressed device will again
three-state its bus drivers. If a transceiver (82C86/82C87) is
required to buffer the local bus, signals DT/R and DEN are
provided by the 80C88.
A write cycle also begins with the assertion of ALE and the
emission of the address. The IO/M signal is again asserted
to indicate a memory or I/O write operation. In T2,
immediately following the addre ss emission, the processor
emits the data to be written into the addressed location. This
data remains valid until at least the middle of T4. During T2,
T3, and Tw, the processor asserts the write control signal.
The write (WR) signal becomes active at the beginn ing of
T2, as opposed to the read, which is delayed somewhat into
T2 to provide time for output drivers to become inactive.
The basic difference between the interrupt acknowledge
cycle and a read cycle is that the interrupt acknowledge
(INTA) signal is asserted in place of the read (RD) signal and
the address bus is held at the last valid logic state by internal
bus-hold devices (see Figure 6. In the se cond of two
successive INTA cycles, a byte of information is read from
the data bus, as supplied by the interrupt system logic (i.e.,
82C59A priority interrupt controller). This byte identifies the
source (type) of the interrupt. It is multiplied by four and used
as a pointer into the interrupt vector lookup table, as
described earlier.
Bus Timing - Medium Complexity Systems
For medium complexity systems, the MN/MX pin is
connected to GND and the 82C88 bus controller is added to
the system, as well as an 82C82/82C83 latch for latching the
system address, and an 82C86/82C87 transce iver to allow
for bus loading greater than the 80C88 is capable of
handling (see Figure 8). Signals ALE, DEN, and DT/R are
generated by the 82C88 instead of the processor in this
configuration, although their timing remains relatively the
same. The 80C88 status outputs (S2, S1 and S0) provide
type of cycle information and become 82C88 inputs. This
bus cycle information specifies read (code, data or I/O), write
(data or I/O), interrupt acknowledge, or software halt. The
82C88 thus issues control signals specifying memory read
or write, I/O read or write, or interrupt acknowledge. The
82C88 provides two types of write strobes, normal and
advanced, to be applied as required. The normal write
strobes have data valid at the leading edge of write. The
advanced write strobes have the same timing as read
strobes, and hence, data is not valid at the leading edge of
write. The 82C86/82C87 transceiver receives the usual T
and OE inputs from the 82C88 DT/R and DEN outputs.
The pointer into the interru pt vector table, which is passed
during the second INTA cycle, can derive from an 82C59A
located on either the local bus or the system bus. If the
master 82C59A priority interrupt control ler is positioned on
the local bus, the 82C86/82C87 tra nsceiver must be
disabled when reading from the master 82C59A during the
interrupt acknowledge sequence and software “poll”.
The 80C88 Compared to the 80C86
The 80C88 CPU is a 8-bit processor designed around the
8086 internal structure. Most internal functions of the 80C88
are identical to the equivalent 80C86 functions. The 80C88
handles the external bus the same way the 80C86 does with
the distinction of handling only 8-bits at a time. Sixteen-bit
operands are fetched or written in two consecutive bus
cycles. Both processors will appear identical to the software
engineer, with the exception of execution time. The internal
register structure is identical and all instructions have the
same end result. Internally, there are three di fferences
between the 80C88 and the 80C86. All changes are related
to the 8-bit bus interface.
• The queue length is 4-bytes in the 80C88, whereas the
80C86 queue contains 6-bytes, or three words. The queue
was shortened to prevent overuse of the bus by the BIU
when prefetching instructions. This was required because
of the additional time necessary to fetch instructions 8-bits
at a time.
• To further optimize the queue, the prefetching algorithm
was changed. The 80C88 BIU wil l fetch a new instruction
to load into the queue each time there is a 1-byte space
available in the queue. The 80C86 waits until a 2-byte
space is available.
The internal execution time of the instruction set is affected
by the 8-bit interface. All 16-bit fetches and writes from/to
memory take an additional four clock cycles. The CPU is
also limited by the speed of instruction fetches. This latter
problem only occurs when a series of simple operations
occur. When the more sophisticated instructions of the
80C88 are being used, the queue ha s time to fill the
execution proceeds as fast as the execution unit will allow.
The 80C88 and 80C86 are completely software compatible
by virtue of their identical execution units. Software that is
system dependent may not be completely tra nsferable, but
software that is not system dependent will operate equally as
well on an 80C88 or an 80C86.
The hardware interface of the 80C88 contains the major
differences between the two CPUs. The pin assignments are
nearly identical, however, with the following functional
changes:
• A8-A15: These pins are only address outputs on the
80C88. These address lines are latched internally and
remain valid throughout a bus cycle in a manner similar to
the 8085 upper address lines.
•BHE
has no meaning on the 80C88 and has been
eliminated.
• SS0 provides the S0 status information in the minimum
mode. This output occurs on pin 34 in minimum mode
80C88