9FN2957.3
January 9, 2009
Word (16-bit) operands can be located on even or odd
address boundaries and are thus , not constrained to even
boundaries as is the case in many 16-bit computers. Fo r
address and data operands, the least significant byte of the
word is stored in the lower valued address location and the
most significant byte in the next higher address location. The
BIU automatically performs the proper number of memory
accesses; one, if the word operand is on an even byte
boundary and two, if it is on an odd byte boundary. Except
for the performance penalty, this double access is
transparent to the software. The performance penalty does
not occur for instruction fetches; only word operands.
Physically, the me mory is organized as a high bank
(D15-D8) and a low bank (D7-D0) of 512k bytes addressed
in parallel by the processor’s address lines.
Byte data with even addresses is transferred on the D7-D0
bus lines, while odd addressed byte data (A0 HIGH) is
transferred on the D15-D8 bus lines. The processor provides
two enable signals, BHE and A0, to selectively allow reading
from or writing into either an odd byte location, even byte
location, or both. The instruction stream is fetched from
memory as words and is addressed internally by the
processor at the byte level as necessary.
In referencing word data, the Bl U requires one or two memory
cycles depending on whether the starting byte of the word is
on an even or odd address, respectively. Consequently, in
referencing word operands performance can be optimized by
locating data o n eve n address boundarie s. This is an
especially useful tech nique for using the stack, since odd
address references to the st ack may ad versely af fect the
context switching time for interrupt processing or t ask
multiplexing.
Certain locations in memory are reserved for specific CPU
operations (see Figure 2). Locations from address FFFF0H
through FFFFFH are reserved for o perations including a jump
to the initial program loading routine. Follo wing RESET, the
CPU will always begin execution at location FFFF0H where
the jump must be located. Locations 00000H through 003FFH
are reserved for interrupt operations. Each of the 256 possible
interrupt service routines is accessed through its own p air of
16-bit pointers (segment address pointer and o ffset address
pointer). The first pointer, used as the offset address, is
loaded into the lP and the second pointer, which designates
the base address is loaded into the CS. At this p oint, program
control is transferred to the interrupt routine. The pointer
elements are assumed to have been stored at the respective
places in reserved memory pri or to occurrence of in terrupts.
Minimum and Maximum Operation Modes
The requirements for su pporting minimu m and ma xi mum
80C86 systems are suf ficiently different that they cannot be
met effi ciently usi ng 40 uniquel y de fined pi ns. Consequen tl y,
the 80C86 is equipped with a stra p pin (MN/MX ) which
defines the system config urati on. The defi nition of a certain
subset of the pins changes, depe ndent on the conditio n of the
strap pin. When the MN/MX pin is strapped to GND, the
80C86 defines pins 24 through 31 and 34 in maximum mode.
When the MN/MX pin is strapped to VCC, the 80C86
generates bus control signal s it self on pins 24 through 31
and 34.
The minimum mode 80C86 can be used with either a
multiplexed or demultiplexed bus. This architecture provides
the 80C86 processing power in a highly integrated form.
The demultiplexed mod e re quires two 82C 82 latches (for 64k
addressability) or three 82C82 latches (for a full megabyte of
addressing). An 82C86 or 82C87 transceiver can also be
used if data bus buf ferin g is requ ired (see Fig ure 6A.) The
80C86 provides DEN and DT/R to control the transceiver, and
ALE to latch the addresses. This configuration of the minimum
mode provides the standard de multiple xed bus structure with
heavy bus buf feri ng and relaxed bus timing re quirement s.
The maximum mode employs the 82C88 bus controller (see
Figure 6B). The 82C88 decodes status lines S0, S1 and S2,
and provides the system with all bus control signals.
Moving the bus control to the 82C88 provides better source
and sink current capability to the control lines, and frees the
80C86 pins for extended large system features. Hardware
lock, queue status, and two request/grant interfaces are
provided by the 80C86 in maximum mode. These features
allow coprocessors in local bus and remote bus
configurations.
Bus Operation
The 80C86 has a combined addre ss and data bus
commonly referred to as a time multiplexed bus. This
technique provides the most efficient use of pins on the
processor while permitting the use of a standard 40 lead
package. This “local bus” can be buffered directly and used
throughout the system with add ress latching provided on
memory and I/O modules. In addition, the bus can also be
demultiplexed at the processor with a single set of 82C82
address latches if a standard non-multiplexed bus is desired
for the system.
Each processor bus cycle consists of at least 4 CLK cycles.
These are referred to as t1, t2, t3 and t4 (see Figure 3). The
address is emitted from the processor during t1 and data
transfer occurs on th e bu s du ri n g t3 an d t4. t2 is used
primarily for changing the direction of the bus during read
operations. In the event that a “NOT READY” indication is
given by the addressed device, “Wait” states (tW) are
inserted be tw e e n t3 and t4. Each inserted wait state is the
same duration as a CLK cycle. Periods can occur between
80C86 driven bus cycles. These are referred to as idle”
states (TI) or inactive CLK cycles. The processor uses these
cycles for internal housekeeping and processing.
During t1 of any bus cycle, the ALE (Address Latch Enable)
signal is emitted (by either the processor or th e 82 C 88 bus
controller, depending on the MN/MX strap). At the trailing
80C86