Eisa Bus
Eisa Bus
Architecture
Second Edition
MINDSHARE, INC.
TOM SHANLEY
DON ANDERSON
STATE. These limitations or exclusions of warranties and liability do not affect or prejudice the
statutory rights of a consumer; i.e., a person acquiring goods otherwise than in the course of a
business.
6. LIMITATION OF DAMAGES:
MINDSHARE SHALL NOT BE LIABLE FOR ANY INDIRECT, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES OR LOSS (INCLUDING DAMAGES FOR LOSS OF BUSINESS, LOSS OF PROFITS, OR THE LIKE), WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR OTHERWISE,
EVEN IF MINDSHARE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE LIMITATION OR
EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
THIS LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU. The limited warranty,
exclusive remedies and limited liability set forth above are fundamental elements of the basis of
the bargain between Mindshare and you. You agree that Mindshare would not be able to provide
the book on an economic basis without such limitations.
7. GOVERNMENT END USERS (USA only):
RESTRICTED RIGHTS LEGEND The book is "Restricted Computer Software." Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in this Agreement
and as provided in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013
(OCT 1988), FAR 12.212(a)(1995), FAR 52.227-19, or FAR 52.227-14, as applicable." Manufacturer: Mindshare, Inc., 4285 Slash Pine Drive, Colorado Springs, CO 80908.
8. GENERAL:
This Agreement shall be governed by the internal laws of the State of Colorado. This Agreement
contains the complete agreement between the parties with respect to the subject matter hereof, and
supersedes all prior or contemporaneous agreements or understandings, whether oral or written.
All questions concerning this Agreement shall be directed to: Mindshare, Inc., 4285 Slash Pine
Drive, Colorado Springs, CO 80908, Attention: Chief Financial Officer.
Mindshare is registered trademark of Mindshare, Inc.
Single-User License Agreement 9/8/00.
Contents
Contents
Acknowledgments................................................................................................................... i
vi
Contents
EISA Connector Pinouts......................................................................................................... 50
vii
viii
Contents
Chapter 12: Intel 82350DT EISA Chipset
Introduction .............................................................................................................................. 133
EISA Bus Controller (EBC) and EISA Bus Buffers (EBBs)............................................... 134
General ................................................................................................................................ 134
CPU Selection..................................................................................................................... 135
Data Buffer Control and EISA Bus Buffer (EBB) ........................................................... 137
General......................................................................................................................... 137
Transfer Between 32-bit EISA Bus Master and 8-bit ISA Slave............................ 139
Transfer Between 32-bit EISA Bus Master and 16-bit ISA Slave.......................... 145
Transfer Between 32-bit EISA Bus Master and 16-bit EISA Slave ....................... 150
Transfer Between 32-bit EISA Bus Master and 32-bit EISA Slave ....................... 153
Transfer Between 32-bit EISA Bus Master and 32-bit Host Slave........................ 155
Transfer Between 16-bit EISA Bus Master and 8-bit ISA Slave............................ 156
Transfer Between 16-bit EISA Bus Master and 16-bit ISA Slave.......................... 158
Transfer Between 16-bit EISA Bus Master and 16-bit EISA Slave ....................... 160
Transfer Between 16-bit EISA Bus Master and 32-bit EISA Slave ....................... 160
Transfer Between 16-bit ISA Bus Master and 8-bit ISA Slave .............................. 162
Transfer Between 16-bit ISA Bus Master and 16-bit ISA Slave ............................ 162
Transfer Between 16-bit ISA Bus Master and 16-bit EISA Slave.......................... 163
Transfer Between 16-bit ISA Bus Master and 32-bit EISA Slave.......................... 164
Transfer Between 32-bit Host CPU and 32-bit Host Slave.................................... 165
Transfer Between 32-bit Host CPU and 8-bit ISA Slave........................................ 165
Transfer Between 32-bit Host CPU and 16-bit ISA Slave...................................... 166
Transfer Between 32-bit Host CPU and 16-bit EISA Slave ................................... 167
Transfer Between 32-bit Host CPU and 32-bit EISA Slave ................................... 167
Address Buffer Control and EBB..................................................................................... 168
Host CPU Bus Master ................................................................................................ 170
EISA Bus Master ......................................................................................................... 170
ISA Bus Master ........................................................................................................... 170
Refresh Bus Master..................................................................................................... 171
DMA Bus Master ........................................................................................................ 171
Host Bus Interface Unit..................................................................................................... 172
ISA Bus Interface Unit....................................................................................................... 176
EISA Bus Interface Unit .................................................................................................... 179
Cache Support.................................................................................................................... 180
Reset Control ...................................................................................................................... 181
Slot-Specific I/O Support ................................................................................................. 181
Clock Generator Unit ........................................................................................................ 181
I/O Recovery...................................................................................................................... 182
Testing................................................................................................................................. 182
ISP interface unit................................................................................................................ 183
82357 Integrated System Peripheral (ISP) ........................................................................... 183
ix
Figures
Figure 2-1. The EISA Bus a Shared Resource ...................................................................19
Figure 3-1. Block Diagram of the Central Arbitration Control (CAC)...............................24
Figure 3-2. CAC with DMACs Programmed for Fixed Priority.........................................26
Figure 3-3. CAC with DMACs Programmed for Rotational Priority ................................27
Figure 3-4. Arbitration between Two Bus Masters...............................................................29
Figure 4-1. IRQ Line Sharing...................................................................................................39
Figure 5-1. The EISA Connector .............................................................................................42
Figure 5-2. The EISA Connector Address Lines ...................................................................44
Figure 5-3. The Bus Master Handshake Lines ......................................................................47
Figure 5-4. The EISA Connector Pin Assignments ...............................................................52
Figure 6-1. Standard Access to an 8-bit ISA Device .............................................................57
Figure 6-2. Standard Access to a 16-bit ISA Memory Device .............................................60
Figure 6-3. Standard Access to 16-bit I/O Device ................................................................63
Figure 6-4. Zero Wait State Access to a 16-bit ISA Memory Device ..................................66
Figure 7-1. The EISA Standard Bus Cycle .............................................................................73
Figure 7-2. The EISA Burst Transfer.......................................................................................81
Figure 9-1. ISA Expansion I/O Ranges..................................................................................92
Figure 9-2. The System Board's AEN Decoder .....................................................................98
Figure 10-1. Buses Typically Found in EISA Systems........................................................118
Figure 10-2. The X-Bus ...........................................................................................................121
Figure 11-1. The Bridge ..........................................................................................................126
Figure 12-1. The Intel EISA Chipset .....................................................................................134
Figure 12-2. The Intel 82358DT EBC.....................................................................................136
Figure 12-3. The Data EISA Bus Buffer, or EBB..................................................................139
Figure 12-4. Linkage Between the EBC and the Data EBB ................................................145
Figure 12-5. Block Diagram of Address EBB.......................................................................172
Figure 12-6. The ISP Block Diagram.....................................................................................184
xi
xii
Tables
Table 1-1. EISA Feature/Benefit Summary...........................................................................14
Table 4-1. Master Interrupt Controller's ELCR Bit Assignment .........................................36
Table 4-2. Slave Interrupt Controller's ELCR Bit Assignment ............................................37
Table 5-1. EISA Bus Master Handshake Lines......................................................................46
Table 5-2. The Burst Handshake Lines...................................................................................48
Table 5-3. EISA Bus Cycle Definition Lines...........................................................................48
Table 5-4. EISA Bus Cycle Timing Signals.............................................................................49
Table 5-5. The EISA Type/Size Lines.....................................................................................50
Table 6-1. DMA Clock Speeds.................................................................................................68
Table 6-2. ISA DMA State Table .............................................................................................69
Table 6-3. ISA DMA Transfer Rates .......................................................................................70
Table 8-1. The DMA ISA-Compatible Bus Cycle..................................................................84
Table 8-2. ISA-Compatible Transfer Rates ............................................................................85
Table 8-3. The DMA Type A Bus Cycle .................................................................................85
Table 8-4. Type A Transfer Rates............................................................................................86
Table 8-5. The DMA Type B Bus Cycle..................................................................................86
Table 8-6. Type B Transfer Rates ............................................................................................87
Table 8-7. Type C Transfer Rates ............................................................................................88
Table 8-8. EISA DMA Transfer Rates.....................................................................................88
Table 9-1. IBM PC and XT I/O Address Space Usage.........................................................91
Table 9-2. Example I/O Address ............................................................................................93
Table 9-3. Usable and Unusable I/O Address Ranges Above 03FFh ................................94
Table 9-4. EISA I/O Address Assignment ............................................................................95
Table 9-5. AEN Decoder Action Table ...................................................................................97
Table 9-6. Expansion Board Product ID Format ...................................................................99
Table 9-7. EISA System Board Product ID Format.............................................................100
Table 9-8. EISA Add-in Card Configuration Bits ...............................................................101
Table 9-9. Category List .........................................................................................................114
Table 11-1. Situations Requiring Address Bridging ...........................................................125
Table 11-2. Situations Requiring Data Bridging .................................................................127
Table 11-3. Address Translation Table.................................................................................128
Table 11-4. Command Lines..................................................................................................129
Table 11-5. Situations Requiring Data Bus Steering...........................................................130
Table 12-1. CPU Type/Frequency ........................................................................................135
Table 12-2. EBC Output Signals Used to Control the Data EBB .......................................137
Table 12-3. EBC's Bus Master Type Determination Criteria .............................................146
Table 12-4. EBC Output Signals Used to Control the Address EBB.................................169
Table 12-5. Address EBB Control Line States......................................................................169
Table 12-6. Host Interface Unit Signal Descriptions...........................................................173
Table 12-7. ISA Interface Unit Signal Descriptions ...........................................................177
Table 12-8. EISA Interface Unit Signal Descriptions ..........................................................179
Table 12-9. The EBC's Reset Control Interface Signals.......................................................181
xiii
xiv
Acknowledgments
This book would not have been possible without the input of thousands of
hardware and software people at companies such as Intel, Compaq, IBM and
Dell over the past seven years. They constantly sanity-check me and make me
tell the truth.
Special Thanks
Special thanks to Don Anderson for his constant help, advice and friendship
xv
xvi
Series Organization
Part One provides a detailed explanation of the ISA enhancements as set forth
in the EISA specification, while Part Two provides a detailed description of the
features implemented by the Intel 82350DT chip set. The following paragraphs
provide a summary of each section.
Interrupt Handling
An in-depth discussion of interrupt request handling in the ISA environment
can be found in the chapter entitled Interrupt Handling in the MindShare
book entitled ISA System Architecture. This chapter provides a brief review of
the ISA interrupt request handling method and a detailed description of the
EISA method.
EISA DMA
This chapter describes the EISA DMA capability. This includes a description of
the EISA DMA bus cycle types and the other improved capabilities of the EISA
DMA controller.
Prerequisite Knowledge
EISA stands for the Extension to the Industry Standard Architecture. In order
to fully grasp the EISA extensions, it is necessary to first understand the ISA
system architecture. The detailed description of EISA presented in this book
builds upon the concepts introduced in MindShare's book entitled ISA System
Architecture to provide a clear, concise explanation of the EISA environment.
Documentation Conventions
This section defines the typographical conventions used throughout this book.
Binary Notation
All binary numbers are followed by a b. Examples:
0001 0101b
01b
Decimal Notation
When required for clarity, decimal numbers are followed by a d. Examples:
256d
128d
Web Site
Because we are constantly on the road teaching, we can be difficult to get hold
of. To help alleviate problems associated with our migratory habits, we have a
web site to supply the following services:
Web Site:
www.mindshare.com
Mailing Address
MindShare, Inc.
4285 Slash Pine Dr.
Colorado Springs, CO 80908
PART ONE
THE EISA
SPECIFICATION
Chapter 1
This Chapter
This chapter provides an overview of the benefits provided by the extension to
ISA, EISA.
Introduction
EISA is a superset of the ISA 8 and 16-bit architecture, extending the capabilities of ISA while still maintaining compatibility with ISA expansion boards.
EISA introduces the following improvements over ISA:
Memory Capacity
EISA systems support a 32-bit address bus. The main CPU, bus master expansion cards and DMA devices may access the entire 4GB memory space. ISA
memory expansion cards can be used without modification to populate the
lower sixteen megabytes. EISA memory expansion cards can add as much
memory as needed for the application, up to the theoretical maximum of 4GB.
10
11
Bus Arbitration
The EISA system board logic also provides a centralized arbitration scheme, allowing efficient bus sharing among the main CPU, multiple EISA bus master
cards and DMA channels. The centralized arbitration supports preemption of
an active bus master or DMA device and can reset a device that does not release the bus after preemption.
The EISA arbitration method grants the bus to DMA devices, DRAM refresh,
bus masters and the main CPU on a fair, rotational basis. The rotational scheme
provides a short latency for DMA devices to assure compatibility with ISA
DMA devices. Bus masters and the CPU, which typically have buffering available, have longer, but predictable latencies.
12
13
Board size
63 square inches of board space permits implementation of powerful, highly-integrated expansion cards.
14
Chapter 2
The Previous Chapter
The previous chapter provided an overview of the features and benefits realized in the EISA environment.
This Chapter
This chapter introduces the EISA bus structure and its relationship to the system board and expansion cards. The concepts of master and slave are introduced and defined. The types of bus masters and slaves are identified.
Community of Processors
The signals provided on each EISA expansion connector can be divided into
four basic categories:
Three of these four signal groups are present on the expansion slots found in
IBM PC/XT/AT products and compatible computers. In EISA, the bus arbitration group has been added.
The EISA specification defines the signals found on the expansion connectors,
as well as the permissible bus cycle types that can be performed by bus masters
and the software protocol that bus masters must use when communicating
with each other. It also defines the support logic residing on the system board
15
16
The microprocessor
The DMA controller on the system board
The refresh logic on the system board
Bus master cards installed in expansion connectors
17
18
System board
ISA/EISA expansion cards
Refresh
Logic
DMAACK
DMAREQ
Bus
Master
n
CPUACK
CPUREQ
Bus
Master
2
REFACK
REFREQ
MAK2#
MREQ2#
Bus
Master
1
MAKn#
MREQn#
MAK1#
MREQ1#
Host
CPU
DMAC
EISA Bus
Slave
Card
Slave
Card
Slave
Card
System
Board
Slave
All EISA and ISA expansion devices fall into one of two categories:
19
data between data paths and translates EISA/ISA control signals when
necessary.
A slave is a device that a master reads from or writes to. A slave may be either a memory or an I/O slave.
There is only one type of ISA master the ISA 16-bit bus master. This is a device that attaches to the ISA Bus and is capable of executing bus cycles to communicate with memory or I/O slaves. This is accomplished by interfacing the
bus master card to DMA channel five, six or seven with the channel programmed to operate in cascade mode. A more detailed description of bus mastering in the ISA environment can be found in the chapter entitled DMA and
Bus Mastering in the MindShare book entitled ISA System Architecture.
20
16-bit ISA or EISA bus master This is a 16-bit ISA or EISA device that
attaches to the EISA bus and is capable of executing bus cycles to communicate with any slave. When communicating with a 32-bit EISA slave or an
8-bit ISA slave, the data bus steering logic on the system board must sometimes aid in the transfer.
32-bit EISA bus master This is a 32-bit device that attaches to the EISA
bus and is capable of executing bus cycles to communicate with any slave.
When communicating with 8 or 16-bit slaves, the data bus steering logic on
the system board must sometimes aid in the transfer.
Main CPU The CPU may communicate with any ISA or EISA Slave or
with devices resident on the CPU's local bus structure. When the microprocessor attempts to perform a transfer utilizing one or more data paths
not connected to the target slave, the data bus steering logic on the system
board must aid in the transfer.
The refresh logic Used to refresh DRAM memory throughout the system.
DMA controllers Used to transfer information between an I/O device
and system memory.
21
22
Chapter 3
The Previous Chapter
The previous chapter provided background on ISAs inability to support multiple processors in a fair fashion and introduced the EISA bus and the role of
the Central Arbitration Control logic on the EISA system board. The types of
bus masters and slaves were identified.
This Chapter
The bus arbitration scheme used by the EISA Central Arbitration Control is described in detail.
Main CPU
Expansion bus masters
Refresh controller on the system board
DMA Controller (DMAC) on the system board
23
24
In a system wherein the main CPU doesn't have a cache (or uses a look-aside
cache), the main CPU frequently requests the use of the bus.
The DMA controller is programmed during the POST to use a fixed priority
scheme in evaluating which DMA channel to service next. As pictured in figure
3-2, this means that DMA channel zero has the highest priority, followed by
channels two seven. It should be noted that DMA channel four is unavailable
because it is used to cascade the slave DMA controller through the master (see
the chapter entitled DMA and Bus Mastering in the MindShare book entitled
ISA System Architecture).
NMI interrupts are given special priority (because NMI is used to report critical
errors). When an NMI interrupt occurs, the arbitration mechanism is modified
so that the bus master cards and the DMACs are bypassed each time they come
up for rotation. This gives the CPU complete control of the bus for NMI servicing.
DMA priorities can be modified by programming the DMAC control register to
use rotating priority. This scenario is pictured in figure 3-3. Each DMA channel
then has essentially the same priority as all of the others.
25
Refresh
CPU
or
Bus
Master
Highest
Priority
DMA
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
0
1
2
3
5
6
7
Bus
Masters
CPU
Bus
Master
1
Bus
Master
n
Bus
Master
4
Bus
Master
2
Bus
Master
3
26
Refresh
CPU
or
Bus
Master
Next
DMA
Channel
Channel
6
Channel
5
Master
DMAC
Channel
4
Bus
Masters
CPU
Channel
7
(cascade)
Bus
Master
1
Channel
0
Channel
1
Slave
DMAC
Channel
3
Channel
2
Bus
Master
n
Bus
Master
4
Bus
Master
2
Bus
Master
3
27
asserts the reset signal on the EISA bus to force the current bus master off
the bus
asserts NMI to alert the main microprocessor that a bus timeout has occurred
grants the bus to the main CPU so that it can respond to the NMI
If, on the other hand, the current bus master honors the preemption, relinquishing the bus and deasserting its request to the CAC, the CAC then grants the bus
to the next bus master in the rotation that is requesting the use of the bus.
As illustrated in figure 3-1, the main CPU, refresh logic and the DMA controller
each have a pair of request/acknowledge lines connecting it to the CAC. In addition, there is also a pair of request/acknowledge lines connected to each
EISA connector in the system. The EISA specification provides support for up
to fifteen EISA bus masters, numbered from zero to fourteen. MREQ0# and
28
BCLK
8
MREQ1#
3
11
MAK1#
9
MREQ2#
7
10
MAK2#
BUS MASTER
Host CPU
Bus Master 1
Bus Master 2
Bus Master 1
29
Memory Refresh
The EISA system board incorporates a refresh controller that requests the use
of the bus once every fifteen microseconds to refresh a row of DRAM memory.
16-bit ISA bus masters that hold the bus longer than fifteen microseconds must
perform memory refresh bus cycles at the fifteen microsecond interval.
The EISA refresh controller includes a 14-bit row counter that drives its contents onto address lines 15:2 when the refresh controller becomes bus master.
The refresh controller also places a value on BE#[3:0] to be transferred to A[1:0]
and SBHE#.
30
31
32
Chapter 4
The Previous Chapter
The previous chapter described the bus arbitration scheme utilized in EISA
machines.
This Chapter
An in-depth discussion of interrupt request handling in the ISA environment
can be found in the chapter entitled Interrupt Handling in the MindShare
book entitled ISA System Architecture. This chapter provides a brief review of
the ISA interrupt request handling method and a detailed description of the
EISA method.
33
34
35
Bit
7
6
5
4
3
2
1
0
36
4
3
2
1
0
37
38
IRQ#
IRQn#
Interrupt
Controller
Interrupt Pending
1
IRQ#
39
40
Chapter 5
The Previous Chapter
The previous chapter provided a detailed description of interrupt handling in
the EISA environment.
This Chapter
This chapter provides a description of all the signals on the EISA bus.
Introduction
The EISA bus consists of two sets of signal lines:
Figure 5-1 illustrates the construction of the EISA connector. When installed,
ISA boards are physically stopped by the EISA access key and make contact
only with the ISA contacts. When an EISA board is installed, however, an
alignment notch in the board allows it to bottom out, making contact with both
the ISA and the EISA contacts.
41
ISA contacts
EISA contacts
EISA access key
42
SA[19:0]
LA[23:17]
SBHE#
The EISA specification extends the size of the LA Bus to include LA[16:2] and
LA#[31:24]. Refer to figure 5-2. Combined with the previously-defined SA bus
and LA signal groups on the ISA portion of the bus, this extends the address
bus to a full 32-bits, allowing the current bus master to generate any memory
address in the range 00000000h FFFFFFFFh. This is a range of 4GB (giga = billion).
43
44
45
Full Name
Description
MREQx#
MAKx#
Figure 5-3 illustrates the relationship of the master request and acknowledge
lines to the CAC. The subject of bus arbitration is covered in detailed the chapter entitled EISA Bus Arbitration.
46
47
Full Name
Description
SLBURST#
Slave Burst
When addressed, a slave asserts SLBURST# to indicate that it supports burst cycles. If the slave supports
burst cycles, it asserts this signal regardless of the
state of the MSBURST# signal line.
MSBURST#
Master Burst
The subject of burst mode (Type C) bus cycles is covered in detail in the chapter entitled EISA CPU and Bus Master Bus Cycles.
Signal Name
M/IO#
Memory or I/O
W/R#
Write or Read
48
Full Name
Description
START#
Start phase
CMD#
Command
phase
EXRDY
EISA Ready
Lock Signal
The LOCK# signal is asserted by the current bus master to prevent other bus
masters from arbitrating for the use of the bus. This allows the current bus master to complete one or more memory accesses prior to surrendering control to
another bus master. The purpose of the bus lock capability is to prevent two
bus masters that share a memory location as a software semaphore from becoming de-synchronized with each other.
49
Full Name
Description
EX32#
EX16#
AEN Signal
The following paragraph describes the manner in which the AEN signal is used
under the ISA specification.
When either the master or slave DMA Controller (DMAC) on the system board
becomes bus master, it asserts AEN as a substitute for BALE, indicating that a
valid memory address is present on the address bus. Memory cards then decode the address on the address bus. I/O cards also monitor the AEN signal
line and ignore the address on the bus when AEN is asserted. This is necessary
because the DMAC asserts either the IORC# or IOWC# line and I/O devices
think that there is an I/O address on the bus when there really isnt.
It should be noted that AEN has another, special, usage in the EISA environment. This additional function is discussed in the chapter entitled EISA System Configuration.
50
51
B1 GND
B2 RESDRV
B3 +5
B4 IRQ9
B5 -5
B6 DRQ2
B7 -12
B8 NOWS#
B9 +12
B10 GND
B11 SMWTC#
B12 SMRDC#
B13 IOWC#
B14 IORC#
B15 DAK3#
B16 DRQ3
B17 DAK1#
B18 DRQ1
B19 REFRESH#
B20 BCLK
B21 IRQ7
B22 IRQ6
B23 IRQ5
B24 IRQ4
B25 IRQ3
B26 DAK2#
B27 TC
B28 BALE
B29 +5
B30 OSC
B31 GND
H1 LA8
H2 LA6
H3 LA5
H4 +5
H5 LA2
H6 key
H7 SD16
H8 SD18
H9 GND
H10 SD21
H11 SD23
H12 SD24
H13 GND
H14 SD27
H15 key
H16 SD29
H17 +5
H18 +5
H19 MAKx#
D1 M16#
D2 IO16#
D3 IRQ10
D4 IRQ11
D5 IRQ12
D6 IRQ15
D7 IRQ14
D8 DAK0#
D9 DRQ0
D10 DAK5#
D11 DRQ5
D12 DAK6#
D13 DRQ6
D14 DAK7#
D15 DRQ7
D16 +5
D17 MASTER16#
D18 GND
E1 CMD#
E2 START#
E3 EXRDY
E4 EX32#
E5 GND
E6 key
E7 EX16#
E8 SLBURST#
E9 MSBURST#
E10 W/R#
E11 GND
E12 Reserved
E13 Reserved
E14 Reserved
E15 GND
E16 key
E17 BE1#
E18 LA31#
E19 GND
E20 LA30#
E21 LA28#
E22 LA27#
E23 LA25#
E24 GND
E25 key
E26 LA15
E27 LA13
E28 LA12
E29 LA11
E30 GND
E31 LA9
G1 LA7
G2 GND
G3 LA4
G4 LA3
G5 GND
G6 key
G7 SD17
G8 SD19
G9 SD20
G10 SD22
G11 GND
G12 SD25
G13 SD26
G14 SD28
G15 key
G16 GND
G17 SD30
G18 SD31
G19 MREQx#
H D G C
52
A1 CHCHK#
A2 SD7
A3 SD6
A4 SD5
A5 SD4
A6 SD3
A7 SD2
A8 SD1
A9 SD0
A10 CHRDY
A11 AENx
A12 SA19
A13 SA18
A14 SA17
A15 SA16
A16 SA15
A17 SA14
A18 SA13
A19 SA12
A20 SA11
A21 SA10
A22 SA9
A23 SA8
A24 SA7
A25 SA6
A26 SA5
A27 SA4
A28 SA3
A29 SA2
A30 SA1
A31 SA0
C1 SBHE#
C2 LA23
C3 LA22
C4 LA21
C5 LA20
C6 LA19
C7 LA18
C8 LA17
C9 MRDC#
C10 MWTC#
C11 SD8
C12 SD9
C13 SD10
C14 SD11
C15 SD12
C16 SD13
C17 SD14
C18 SD15
Chapter 6
The Previous Chapter
The previous chapter provided a functional description of the EISA bus signals.
This Chapter
This chapter provides a brief review of the ISA bus master and DMA bus cycles. For a detailed description of this subject matter, refer to the MindShare
book entitled ISA System Architecture.
Introduction
In order to define extensions to ISA, the writers of the EISA specification had to
first document ISA. The following descriptions of ISA bus cycles are based on
the descriptions found in the EISA specification.
The Bus Clock (BCLK) is supplied to the ISA bus by the system board and defines the time slots (Tstates) that comprise a bus cycle. In order to maintain ISA
compatibility, the maximum clock rate used for bus cycles on the EISA bus is
8.33MHz.
53
The steps that follow describe the sequence of events that take place during an
8-bit bus cycle using the default READY# timing and explains how the default
timing can be either shortened or stretched. Figure 6-1 illustrates an example
bus cycle. The step numbers in the text that follows corresponds to the numbered reference points in figure 6-1.
54
2.
3.
4.
5.
6.
7.
8.
9.
The address being presented by the current bus master begins to appear on
the LA bus at the start of the address phase. This corresponds to the leading edge of Ts. If the system board is based on an 80286 or 80386 microprocessor and address pipelining is asserted, the address may actually be
present on the LA bus prior to the beginning of the bus cycle (as is the case
in this example). 16-bit ISA memory expansion cards can use the portion of
the address on the LA bus to perform an early address decode. 8-bit ISA
expansion cards do not have access to the LA bus and therefore cannot perform an early address decode. I/O cards only use the lower 16 address bits
and therefore cannot take advantage of address pipelining.
BALE is asserted half-way through the address phase, gating the address
through the system board address latch onto the SA bus.
If this is a write bus cycle, the microprocessor's write data is gated onto the
SD bus half-way through the address phase. It remains on the SD bus until
half a BCLK cycle into the next bus cycle (half-way through the address
phase of the next transfer).
The trailing-edge of BALE (at the beginning of the first data clock period)
causes the system board address latch to latch the address being output by
the CPU so that it remains static on the SA bus for the remainder of the bus
cycle. The addressed slave device can safely complete the decoding process
during this period.
If this is a memory transaction and the M16# signal is sampled deasserted
by the system board bus control logic at the end of the address phase, the
command line (SMRDC# or SMWTC#) is not activated until half-way
through the first data clock period. If this is an I/O transaction, I/O16# will
not be sampled until reference point seven to determine if the currentlyaddressed device is an 8 or a 16-bit device.
If this is a memory transaction and M16# was sampled deasserted at the
end of the address phase, M16# is again sampled half-way through the first
data clock period. The continued deasserted state of M16# indicates that
the addressed expansion board is an 8-bit device.
The appropriate command line (SMRDC#, SMWTC#, IORC# or IOWC#) is
asserted half-way through the first data clock period. During a transfer
with an 8-bit device, the activation of the command line is delayed until the
midpoint of the first data clock period to allow more time for address decode before command line activation. The command line then remains asserted until the end of the bus cycle (end of last Tc).
If this is an I/O transaction, the IO16# signal is sampled deasserted by the
system board bus control logic, indicating that the addressed expansion
board is an 8-bit device.
Half-way through the second data clock period and half-way through each
subsequent data clock period, the default ready timer on the system board
55
56
125ns
Ts
125ns
Tc
125ns
Tc
125ns
Tc
125ns
Tc
125ns
Tc
125ns
Ts
BCLK
1
LA17:23
4
SBHE#,
SA0:19
2
BALE
7
M16#
and
IO16#
M16#
IO16#
6
SMRDC#, SMWTC#,
IORC#, IOWC#
NOWS#
CHRDY
SD0:15
Read
Data
3
SD0:15
Write Data
Standard 16-bit device ISA bus cycle (Memory & I/O) one wait state
Shortened 16-bit device ISA bus cycle (Memory only) zero wait states
Stretched 16-bit device ISA bus cycle more than one wait state
57
2.
3.
4.
5.
6.
58
If the system board is based on an 80286 or 80386 microprocessor and address pipelining is asserted, the address is present on the LA bus prior to
the beginning of the bus cycle. This allows the addressed memory slave to
start decoding the address early which may speed up access.
BALE is asserted halfway through the address phase. On the rising-edge of
BALE, 16-bit ISA memory devices can begin to decode the LA lines to determine if the address is for them. When BALE is asserted, the lower portion of the address from the processor (A[19:0]) is transferred through the
system board's address latch onto SA[19:0].
The addressed memory board activates M16# as a result of decoding the
LA lines, indicating to the system board's bus control logic that it is capable
of handling a 16-bit transfer without data bus steering being performed by
the steering logic on the system board.
If this is a write bus cycle, the microprocessor's output data is gated onto
the SD bus half-way through the address phase and remains on the SD bus
until half a BCLK cycle into the next bus cycle (half-way through the address phase of the next bus cycle).
At the end of the address phase, the trailing-edge of BALE causes two
events to take place:
a) 16-bit ISA memory devices latch the LA lines so the addressed device is
not deselected when the LA lines are pipelined with the address for the
next transaction before the end of the current bus cycle.
b) the address latch on the system board latches the lower twenty bits of
the address, SA[19:0], so that they remain static on the SA bus for the
remainder of the bus cycle. Slave devices can safely decode the SA address on the bus on the falling edge of BALE (if they havent done so
already).
The system board's bus control logic samples M16# at the end of the address phase to determine if the addressed device can take advantage of the
MRDC# or MWTC# command lines being asserted immediately. The appropriate command line (MRDC# or MWTC#) is asserted at the leadingedge of the first data clock period if M16# is sampled asserted. This command line remains asserted until the end of the bus cycle (end of last Tc). If
M16# is sampled deasserted, the command line (MRDC# or MWTC#) is activated half-way through the first data clock period.
If M16# wasnt sampled asserted at the end of the address phase, the system board's bus control logic samples M16# a second time at the midpoint
of the first data clock period to determine if data bus steering is necessary.
Since this is an access to a 16-bit device, M16# is sampled asserted and
steering is therefore unnecessary. Also at the midpoint of the first data
clock period, the default ready timer on the system board samples NOWS#.
If sampled asserted, the microprocessor's READY# line is asserted and the
bus cycle terminates at the end of the first data clock period. In this way, a
16-bit ISA memory board can complete a bus cycle in two BCLK cycles (it
should be noted, however, that the default ready timer ignores NOWS#
during I/O bus cycles).
8. During address pipelining, the microprocessor is free to output the address
for the next bus cycle during the current bus cycle. Only the upper portion
of the pipelined address appears on the LA bus at this time because these
bits are buffered but not latched from the microprocessor's address bus.
The remainder of the address doesnt appear on the SA bus until the midpoint of the address phase in the next bus cycle.
9. CHRDY is sampled by the default ready timer at the beginning of the second data clock period to determine if the device will be ready to complete
the bus cycle at the end of this BCLK cycle. If the device cannot complete
the bus cycle by the end of this BCLK cycle, it should deassert CHRDY. If
CHRDY is sampled deasserted by the default ready timer, it responds by
extending the bus cycle by adding another data clock period. CHRDY is
then checked at the beginning of each additional data clock period until the
device releases CHRDY, indicating that the bus cycle can be completed.
10. An ISA 16-bit memory bus cycle defaults to three BCLK cycles (one wait
state) if the bus cycle isn't terminated earlier by the assertion of NOWS#
and if CHRDY stays asserted throughout the bus cycle. This means that the
length of an ISA bus cycle when accessing a 16-bit memory card defaults to
one wait state unless shortened by NOWS# or lengthened by CHRDY.
READY# is then asserted to the microprocessor, telling it to read the data
from the data bus (if this is a read transaction). When a memory write bus
cycle terminates, the MWTC# command line is desasserted, but the data
remains on the SD bus during the first half of the address phase in the next
bus cycle. This provides hold time for the device being written to and
doesn't affect the device being addressed in the next bus cycle because the
command line hasn't been activated yet.
59
125ns
Ts
125ns
Tc
125ns
Tc
125ns
BCLK
1
LA17:LA23
SBHE#,
SA0:SA19
2
BALE
6
MRDC#, MWTC#
M16#
7
NOWS#
9
CHRDY
10
Read Data
SD0:15
4
Write Data
SD0:15
60
2.
3.
4.
5.
6.
7.
8.
9.
If the system board is based on an 80286 or 80386 microprocessor and address pipelining is active, the address is present on the LA bus prior to the
beginning of the bus cycle. The LA bus has no impact on I/O bus cycles
since A[23:16] always contain zeros during I/O operations.
BALE is asserted halfway through the address phase, gating the address
through the system board's address latch onto the SA bus.
If this is a write bus cycle, the microprocessor's output data is gated onto
the SD bus half-way through the address phase and remains on the SD bus
until half a BCLK cycle into the next bus cycle (half-way through the address phase of the next bus cycle).
At the start of the first data clock period, the trailing-edge of BALE causes
the address latch on the system board to latch the lower twenty bits of the
address, SA[19:0], so that it remains static on the SA bus for the remainder
of the bus cycle. Slave devices can safely latch the SA address on the bus on
the falling edge of BALE (if they havent done so already).
The appropriate command line (IORC# or IOWC#) is also asserted at the
midpoint of the first data clock period. This command line remains asserted until the end of the bus cycle (end of last Tc).
At the midpoint of the first data clock period, the default ready timer on
the system board ignores the NOWS# line (since an I/O device is being accessed). This is done to prevent two back-to-back I/O write bus cycles from
accessing the I/O device too quickly. This could violate the I/O write recovery time of the I/O device, causing improper operation.
During address pipelining, the microprocessor is free to output the address
for the next bus cycle during the current bus cycle. Only the upper portion
of the pipelined address appears at this time on the LA bus because these
bits are buffered but not latched from the microprocessor's address bus.
The remainder of the new address does not appear on the SA bus until the
midpoint of the address phase of the next bus cycle.
IO16# is sampled at the midpoint of the second data clock period to determine if the I/O device is an 8 or 16-bit device. If sampled asserted, data bus
steering is not performed and the bus cycle is terminated on the next risingedge of BCLK (the end of the second data clock period). The bus cycle is
not terminated if the CHRDY line is sampled deasserted.
CHRDY is sampled by the default ready timer at the end of the second data
clock period to determine if the device is ready to complete the bus cycle. If
61
62
125ns
Ts
125ns
Tc
125ns
Tc
125ns
BCLK
1
LA17:LA23
SBHE#,
SA0:SA19
2
BALE
5
IORC#, IOWC#
IO16#
8
6
NOWS#
9
CHRDY
10
Read Data
SD0:15
3
Write Data
SD0:15
63
2.
3.
4.
5.
6.
64
8.
9.
If M16# was not sampled asserted the firts time, the system board's bus
control logic samples M16# a second time at the midpoint of the first data
clock period to determine if data bus steering is necessary. Since this is an
access to a 16-bit device, no steering is necessary. Since the M16# line is asserted, the default ready timer samples the NOWS# line to determine if the
bus cycle can end in zero wait states. In this example, M16# is sampled asserted, forcing the default ready timer to assert the microprocessor's
READY# line before the end of the current data clock period. In this way,
faster ISA memory boards can complete a bus cycle in two rather than
three BCLK cycles.
Since the LA lines have already done their job, (the addressed device has
already decoded the LA lines and latched the chip select), the microprocessor is free to output the address for the next bus cycle.
During a read, the microprocessor latches the contents of the data bus,
thereby ending the bus cycle. During a write, the microprocessor ends the
bus cycle.
65
125ns
Ts
125ns
Tc
125ns
Ts
125ns
BCLK
8
1
LA17:LA23
SBHE#,
SA0:SA19
2
BALE
MRDC#
MWTC#
6
M16#
3
NOWS#
CHRDY
9
Read Data
SD0:15
4
Write Data
SD0:15
Figure 6-4. Zero Wait State Access to a 16-bit ISA Memory Device
66
67
Speed Setting
6MHz
8MHz
8.33MHz
333.3ns
250ns
240ns
Prior to receiving a DMA Request, the DMAC is in the idle state (Si). When a
DREQ is sensed, the DMAC enters a state where it asserts HOLD (Hold Request) to the microprocessor and awaits the HLDA (Hold Acknowledge). This
state is called SO (the letter O). The DMAC remains in the SO state until HLDA
is sensed asserted.
The DMAC can then proceed with the DMA transfer. S1, S2, S3 and S4 are the
states used to execute a transfer (of a byte or word) between the requesting I/O
device and system memory. In addition, when accessing a device that is slow to
respond, a DMA transfer cycle can be stretched by de-asserting the DMAC's
READY input until the device is ready to complete the transfer. This causes the
DMAC to insert wait states (Sw), in the bus cycle until READY is asserted
again.
The actions described in table 6-2 take place during states S1 S4.
68
S1
During block and demand transfers, the middle byte of the memory address, A[15:8], only changes once every 256th transfer. For this reason,
the DMAC only enters the S1 state every 256th transfer in order to update the middle byte of the address that is contained in the external
DMA address latch. Starting at the trailing-edge of S1, the middle byte of
the memory address is output onto data bus pins D[7:0] and is then
latched into the external DMA address latch during S2. The DMAC also
asserts AEN, causing the external DMA address latch to output and acting as an enable for the DMA page register addressing.
S2
During S2, the lower byte (A[7:0]) of the memory address is output directly onto address bus signals A[7:0]. If S2 was preceded by S1, the
DMAC pulses its ADSTB output, causing the new middle byte of the
address to be latched into the external DMA address latch. If S2 wasn't
preceded by S1, ADSTB isn't pulsed, but the DMAC's AEN output is
asserted. This causes the external DMA address latch to output the previously latched middle byte and acting as an enable for the DMA page
register addressing. In addition, DAKn# is asserted to tell the I/O device
that the transfer is in progress.
S3 only occurs in a bus cycle if compressed timing hasn't been selected
for this DMA channel. See text below for a discussion of compressed
timing. During S3, the MRDC# or the IORC# line is asserted. If the DMA
channel is programmed for extended writes, the MWTC# or IOWC# line
is also kept asserted during S3.
If the DMA channel was not programmed for extended write, the
MWTC# or IOWC# is asserted at the start of S4. If extended write is selected, the write command line was already asserted at the start of S3.
The actual read/write takes place at the trailing-edge of S4 when both
the read and write command lines are de-asserted by the DMAC. This
completes the transfer of a byte or word between memory and the requesting I/O device.
S3
S4
69
The table assumes that the transfer is no more than 256 bytes in length. This
was assumed for simplicity's sake. Every 256 transfers the DMAC must insert
an S1 state in the next bus cycle to update the middle byte of the memory address (A[15:8]), which must be latched into the external DMA address latch.
This adds one DMA clock period to the duartion of every 257th bus cycle.
Table 6-3. ISA DMA Transfer Rates
Compressed Off
Compressed On
DMA Clock
Frequency
Transfers per
Second
3MHz
4MHz
4.165MHz
3MHz
4MHz
4.165MHz
1M/s
1.3M/s
1.39M/s
1.5M/s
2M/s
2.08M/s
When looking at table 6-3, keep in mind that each bus cycle consists of three
DMA clock cycles with compressed timing turned off and two DMA clock cycles with compressed timing turned on.
70
Chapter 7
The Previous Chapter
The previous chapter provided a review of bus master and DMA bus cycles in
the ISA environment.
This Chapter
This chapter provides a detailed description of the EISA CPU and bus master
bus cycle types.
Memory data read and memory instruction read. These two types are actually identical, reducing the total to six bus cycle types.
Memory data write
I/O data read
I/O data write
Interrupt acknowledge
Halt or Shutdown (also referred to as the special cycle)
Of these six, only four are ever seen by the expansion boards on the ISA bus:
Memory Read
71
Memory Write
I/O Read
I/O Write
Standard timing
Compressed timing (not implemented in current machines)
Burst timing
EISA bus masters are capable of executing two of these three variants:
Standard timing
Burst timing
As an example, a transfer of 64 doublewords (256 bytes) completes in 15.36 microseconds for a 32-bit transfer with a 8.33MHz BCLK, while a 16-bit transfer
completes in 30.72 microseconds. This example assumes that no preempts occur during the transfer and the addressed slave is a zero wait state device.
72
Tc Ts Tc Tc Ts Tc Ts Tc
BCLK
1
LA2:LA31
M/IO#
BE0#:BE3#
W/R#
START#
8
CMD#
EX32#
EX16#
7
6
EXRDY
NOWS#
LOCK#
Read
Data
8
Write
Data
3
73
2.
3.
4.
5.
6.
74
The first bus cycle after bus grant cannot use address pipelining. After the
first bus cycle, however, the bus master can use address pipelining to output the address and M/IO# early.
After the bus master (or CPU) has requested and been granted the bus, the
bus cycle begins on the rising edge of BCLK (the leading-edge of Ts) with
the assertion of the START# signal by the current bus master. START# remains asserted for a full BCLK cycle (all of Ts). At the leading-edge of
START#, the bus master or CPU places the address on the LA bus and byte
enables and also outputs M/IO#. If address pipelining is active, the address, byte enables and M/IO# may be placed on the bus during the previous bus cycle. W/R# is set to the appropriate state at the beginning of the
bus cycle.
If a write bus cycle is in progress, the bus master begins to drive the data
onto the appropriate data paths at the midpoint of Ts.
The addressed EISA slave decodes the address and asserts either EX16# or
EX32# indicating that it is an EISA device and the data size it's prepared to
handle. I/O devices should also ensure that the AEN signal is deasserted
before decoding an address. AEN is asserted by the DMA controller when
it is placing a valid memory address on the address bus. In order to maintain ISA bus master compatibility, an EISA I/O slave should assert IO16#
as well as EX16# or EX32#. EISA slaves that do not need to maintain ISA
bus master compatibility do not need to assert IO16#. The system board
develops M16# from EX16# or EX32# to maintain ISA bus master compatibility when communicating with ISA memory slaves. Note that EISA compressed mode is not supported in current implementations of EISA;
however, if implemented the addressed slave should assert NOWS# prior
to the end of Ts.
If the addressed slave must latch the address information, it should be
latched on the trailing-edge of START#. The system board's data bus steering logic samples the EX16# and EX32# lines to determine if steering is necessary. CMD# is asserted by the system board coincidentally with the
deassertion of START# by the bus master. Only the system board drives the
CMD# line. CMD# then remains asserted until the end of the bus cycle. If
support for EISA compressed bus cycles were implemented, the main CPU
logic would sample NOWS# at the trailing-edge of start to determine if the
addressed slave supports EISA compressed mode bus cycles.
EXRDY is sampled at the falling edge of every BCLK after CMD# is asserted. If sampled deasserted, the bus cycle is extended by one wait state
(an additional Tc). Designers of EISA expansion cards are guaranteed that
the address presented on the LA bus, the byte enable lines and the state of
M/IO# will remain static until the midpoint of the first Tc period of the bus
cycle.
8.
If EXRDY is sampled asserted at the midpoint of Tc, the bus cycle is terminated at the end of Tc. If the current bus master has another bus cycle to
perform and it uses address pipelining, the address for the next bus cycle is
placed on the LA bus, the byte enable lines and M/IO#.
After EXRDY is sampled asserted at the midpoint of Tc, the bus cycle is
terminated at the end of the BCLK cycle. The system board logic deasserts
the CMD# signal. If a read bus cycle is in progress, the bus master reads the
data from the data bus. If a write bus cycle is in progress, the bus master
ends the bus cycle but continues to drive the data onto the data bus until
the midpoint of Ts of the next bus cycle. This is done to ensure that the
hold time for the currently-addressed device is satisfied.
75
76
The current bus master can use address pipelining to output the first address and M/IO# early.
At the beginning of the first bus cycle in the transfer, the current EISA bus
master activates the START# signal. Assertion of START# indicates that the
bus master has placed a valid address and bus cycle definition on the bus.
The EISA bus controller (EBC) on the system board samples START# asserted and recognizes that an EISA bus master, rather than an ISA bus master, has initiated a bus cycle. In response, the EBC generates BALE during
77
3.
4.
5.
6.
7.
8.
78
Ts. This is done in case the EISA bus master is addressing an ISA device. In
addition, the bus master sets the byte enable lines and W/R# to the appropriate state. W/R# remains in the selected state (write or read) throughout
the burst transfer.
If this is a write transfer, the bus master starts to drive the data onto the
data bus at the midpoint of Ts.
At the end of Ts, the current bus master and the system board logic sample
EX16# and EX32#. The assertion of either of these signals indicates that the
currently-addressed device is an EISA device and what data paths it is capable of using. The bus master deasserts START# and the system board
logic asserts CMD# to indicate that the data phase has begun. If the bus
master is capable of using burst transfers, it samples SLBURST# to determine if the addressed slave also supports burst. In this example, SLBURST#
is sampled asserted, indicating that the slave supports burst mode.
In response to sampling SLBURST# asserted, the bus master asserts
MSBURST# at the midpoint of Tc to indicate to the slave that it also supports burst mode and will use it for the remaining transfers in the burst.
Also, the bus master samples EXRDY at the midpoint of Tc to determine if
the addressed slave will be ready to complete the first transfer at the end of
the current Tc. In this example, EXRDY is sampled asserted, indicating that
the first transfer can be completed at the end of this Tc period. In response.
the bus master pipelines out the second address starting at the midpoint of
Tc.
At the end of the first Tc period, the bus master completes the first transfer
in the burst. If a read burst is in progress, the bus master reads the data
from the appropriate data paths. If a write burst is in progress, the bus
master starts to drive the data for the second transfer onto the appropriate
data paths. The slave samples MSBURST# at the end of each Tc period to
determine if the bus master will use burst mode for the remaining transfers. In this example, MSBURST# is sample asserted, so the burst transfer
continues.
At the midpoint of the second Tc, the bus master samples EXRDY to determine if the slave will be ready to complete the second transfer at the end
of this Tc period. In this example, it is sampled asserted, indicating that the
slave will be ready. In response, the bus master begins to drive the third
address out at the midpoint of Tc.
At the end of the second Tc, the slave samples MSBURST# again to determine if the bus master is still bursting. The asserted state indicates that it is.
The bus master completes the second transfer. If a read burst is in progress,
the bus master reads the data from the appropriate data paths. If a write
burst is in progress, the bus master starts to drive the data for the third
transfer onto the appropriate data paths.
10.
11.
12.
13.
14.
15.
At the midpoint of the third Tc, the bus master samples EXRDY to determine if the slave will be ready to complete the third transfer at the end of
this Tc period. In this example, EXRDY is sampled deasserted, indicating it
will not be ready. This causes the bus master to insert a wait state of one Tc
duration to stretch the data transfer time for the third transfer. If a read
transfer is in progress, the bus master doesnt read the third transfer's data
from the bus at the end of this Tc. If a write transfer, the bus master continues to drive the data for the third transfer onto the data bus during the next
Tc. The bus master pipelines out the address for the fourth transfer, however, starting at the midpoint of the third Tc period.
At the midpoint of the fourth Tc, the bus master samples EXRDY to determine if the slave will be ready to complete the third transfer at the end of
this Tc period. Since EXRDY is sampled asserted, it will be ready. The bus
master does not pipeline out the address for the fifth transfer yet and continues to drive the data for the third transfer onto the data bus.
The bus master completes the third transfer. If a read burst is in progress,
the bus master reads the data from the appropriate data paths. If a write
burst is in progress, the bus master starts to drive the data for the fourth
transfer onto the appropriate data paths.
At the midpoint of the fifth Tc period, the bus master samples EXRDY# to
determine if the slave will be ready to end the fourth transfer at the end of
the current Tc period. Since EXRDY is sampled asserted, the slave will be
ready to end the transfer. The bus master also pipelines out the fifth address at the midpoint of Tc.
The bus master completes the fourth transfer. If a read burst is in progress,
the bus master reads the data from the appropriate data paths. If a write
burst is in progress, the bus master starts to drive the data for the fifth
transfer onto the appropriate data paths.
At the midpoint of the sixth Tc, the bus master samples EXRDY# to determine if the slave will be ready to end the fifth transfer at the end of the current Tc period. Since EXRDY is sampled asserted, the slave will be ready to
end the transfer. Since this is the end of the sample burst, the bus master
de-activates MSBURST# to inform the slave that the last transfer of the
burst is in progress. In this example, the bus master pipelines out the next
address at the midpoint of Tc. In this example, the bus master is addressing
a device other than the memory slave, causing the slave to release
SLBURST#.
At the end of the sixth Tc period, the bus master completes the last transfer
of the burst. If a read burst is in progress, the bus master reads the data
from the appropriate data paths. If a write burst is in progress, the bus
master ends the transfer and ceases to drive the data bus. This completes
the example burst transfer.
79
80
Ts
Burst Transfer
Tc
Tc
Tc
Tc
Tc
Bus
Cycle
Tc
Bus
Cycle
Ts
Tc
Ts
14
16
17
Tc
BCLK
1
LA2:LA31
M/IO#
BE0#:BE3#
W/R#
START#
CMD#
EX16#
EX32#
7
EXRDY
10
12
9
6
MSBURST#
4
SLBURST#
Read
Data
11
13
15
Write
Data
3
81
82
Chapter 8
The Previous Chapter
The previous chapter described the bus cycle types that may be run by the
main CPU or an EISA bus master.
This Chapter
This chapter describes the EISA DMA capability. This includes a description of
the EISA DMA bus cycle types and other capabilities of the EISA DMA controller.
83
8.0 BCLKs
4.5 BCLKs
4.5 BCLKs
6.5 BCLKs
4.0 BCLKs
4.0 BCLKs
The duration of the key signals illustrated in table 8-1 defines the amount of
time the memory and I/O device have to recognize that they are being addressed and to either accept or output data. Comparing this table to the tables
found in the sections on the other three DMA bus cycle types, it is clear that the
amount of time allotted for address decode and data movement becomes increasingly shorter for the faster bus cycle types.
84
1.0416MB/second
2.0833MB/second
4.1666MB/second
When programmed to use the ISA-compatible DMA bus cycle, a DMA channel
may be used to transfer data between an ISA-compatible I/O device and memory.
Duration
6.0 BCLKs
3.5 BCLKs
4.5 BCLKs
3.0 BCLKs
The duration of the key signals illustrated in table 8-3 defines the amount of
time the memory and I/O device have to recognize that they are being addressed and to either accept or output data. When performing Type A bus cycles, the DMA controller uses W/R# rather than MRDC# or MWTC# to indicate
the type of memory operation,.
85
1.388MB/second
2.777MB/second
5.555MB/second
When a DMA channel is programmed to use the Type A DMA bus cycle to
transfer data, the channel may be used to transfer data between fast, EISA
memory and an I/O device designed for Type A transfers. In addition, many
older, ISA I/O devices may also work with a channel programmed for Type A
bus cycles. This is because the Type A transfer does not involve a significant
amount of compression compared to the ISA-compatible bus cycle. Compatibility may be determined by testing.
Duration
4.0 BCLKs
2.5 BCLKs
3.5 BCLKs
2.0 BCLKs
The duration of the key signals illustrated in table 8-5 defines the amount of
time the memory and I/O device have to recognize that they are being addressed and to either accept or output data. When performing Type B bus cycles, the DMA controller uses W/R# rather than MRDC# or MWTC# to indicate
the type of memory operation,.
86
2.083MB/second
4.166MB/second
8.333MB/second
When a DMA channel is programmed to use the Type B DMA bus cycle to
transfer data, the channel may be used to transfer data between fast, EISA
memory and an I/O device designed for Type B transfers. In addition, some
older, ISA I/O devices may also work with a channel programmed for Type B
bus cycles. Although the Type B transfer involves a significant amount of compression compared to the ISA-compatible bus cycle, some ISA I/O devices may
be fast enough to function correctly at this speed. Compatibility may be determined by testing.
87
8.33MB/second
16.66MB/second
33.33MB/second
When a DMA channel is programmed to use the Type C DMA bus cycle to
transfer data, the channel may only be used to transfer data between fast, EISA
memory and an I/O device designed for Type C transfers. No ISA I/O devices
will work with a channel programmed for Type C bus cycles.
Transfer
Type
ISA-compatible
Type A
Type B
Type C (Burst)
1.0
2.0
1.3
2.6
5.3
2.0
4.0
8.0
8.2
16.5
33.0
Compatibility
all ISA
all ISA
most ISA
most ISA
EISA-only
some ISA
some ISA
EISA-only
EISA-only
EISA-only
EISA-only
88
Buffer Chaining
The EISA DMA controller's buffer chaining function permits the implementation of scatter write and gather read operations. A scatter write operation is one
in which a contiguous block of data is read from an I/O device and is written
to two or more areas of memory, or buffers. A gather read operation reads a
stream of data from several blocks of memory, or buffers, and writes it to an
I/O device.
The programmer writes the start address of the first memory buffer to the
DMA channel and sets the channel's transfer count equal to the number of
bytes, words, or doublewords to be transferred to or from the first buffer. The
programmer then enables chaining mode, causing the DMA channel to load the
start memory address and transfer count into another set of channel registers,
known as the current registers. The programmer then writes the start address
of the second memory buffer to the DMA channel and sets the channel's transfer count equal to the number of bytes, words, or doublewords to be transferred to or from the second buffer.
When the DMA channel has exhausted the first transfer count, the channel
automatically loads the current registers from the secondary registers and generates either TC or an IRQ13. If the channel was programmed by the main
CPU, IRQ13 is generated. If the channel was programmed by an EISA bus master, TC is generated instead. The TC or IRQ13 informs the bus master or microprocessor that the first buffer transfer has been completed, the second buffer
transfer is in progress and the start address and transfer count for the third
89
Ring Buffers
The EISA DMA controller allows the programmer to implement a ring buffer.
If enabled, the ring buffer reserves a fixed range of memory to be used for a
channel. The start and end address of the ring buffer are defined by the start
memory address and the transfer count. As data is read from the I/O device it
is written into the ring buffer in memory. When the DMA transfer has exhausted its transfer count, the channel automatically reloads the start memory
address and transfer count registers and continues with the DMA transfer from
the I/O device. The new data is written into memory at the start of the ring
buffer, over-writing the older information that has already been read by the
microprocessor. As the programmer reads information that was deposited in
the ring buffer by the channel, the programmer must update the channel's stop
register with the memory address of the next location that has not yet been
read by the microprocessor. The stop register prevents the DMA channel from
over-writing information that the microprocessor hasn't read yet.
Transfer Size
Each DMA channel can be programmed to perform either 8, 16 or 32-bit transfers.
90
Chapter 9
The Previous Chapter
The previous chapter, EISA DMA, described the bus cycle types supported
by the EISA DMA controller. In addition, other EISA DMA enhancements were
also described.
This Chapter
In this chapter, EISA automatic system configuration is discussed. This includes a description of the slot-specific I/O address space, the EISA product
identifier, and the EISA card control ports. The EISA configuration process and
board description files are also covered.
256 locations set aside for I/O devices integrated onto the
system board.
768 locations set aside for I/O expansion cards.
Reserved. Do not use.
I/O addresses above 03FFh could not be used due to the inadequate I/O address decode performed by many of the early I/O expansion cards. The card's
I/O address decoder inspects A[9:5] to determine which of twenty-four blocks
91
03E0-03FF
03C0-03DF
03A0-03BF
0380-039F
0360-037F
0340-035F
0320-033F
0300-031F
02E0-02FF
02C0-02DF
02A0-02BF
0280-029F
0260-027F
0240-025F
0220-023F
0200-021F
01E0-01FF
01C0-01DF
01A0-01BF
0180-019F
0160-017F
0140-015F
0120-013F
0100-011F
Figure 9-1. ISA Expansion I/O Ranges
92
A14
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
The board that occupies the 0500h 0503h range looks at A[15:5] and determines that the address is within the 0500h 051Fh block. It then looks at A[4:0]
and determines that location 0500h is being addressed. Since this is an I/O read
bus cycle, the card places the contents of location 0500h on the lower data path
(this is an even address).
At the same time, the board that occupies the 0100h 0107h range looks at
A[9:5], a subset of the address seen by the other card's address decoder, and
determines that the address appears to be within the 0100h 01FFh block. It
then looks at A[4:0] and determines that location 0100h is being addressed.
Since this is an I/O read bus cycle, the card places the contents of location
0100h on the lower data path (this is an even address).
Since both cards are driving a byte of data onto the lower data path, SD[7:0],
data bus contention is occurring. This results in garbage data and possible
hardware damage because two separate current sources are driving the lower
data path. The problem occurs because the card residing in the 0100h 0107h
range looks at A[9:8] and thinks that this address is within the 0100h 01FFh
range. If the card were designed to perform a full address decode using
A[15:5], the problem could have been avoided.
Addresses above 03FFh may be used as long as A[9:8] are always 00b, thus ensuring that the address will not appear to be in the 0100h 01FFh, 0200h
93
usable
Unusable. Appears to be 0100h 01FFh
Unusable. Appears to be 0200h 02FFh
Unusable. Appears to be 0300h 03FFh
usable
Unusable. Appears to be 0100h 01FFh
Unusable. Appears to be 0200h 02FFh
Unusable. Appears to be 0300h 03FFh
usable
Unusable. Appears to be 0100h 01FFh
Unusable. Appears to be 0200h 02FFh
Unusable. Appears to be 0300h 03FFh
usable
Unusable. Appears to be 0100h 01FFh
Unusable. Appears to be 0200h 02FFh
Unusable. Appears to be 0300h 03FFh
94
System Board
ISA cards
System Board
System Board
System Board
EISA slot one
EISA slot one
EISA slot one
EISA slot one
EISA slot two
EISA slot two
EISA slot two
EISA slot two
95
96
A9
A8
M/IO#
na
na
na
na
na
97
A14
A13
A12
A9
A8
AEN (from
DMAC)
AEN0
AEN1
AEN2
AEN3
AEN4
AEN5
AEN6
AEN7
AEN8
AEN9
AEN10
AEN11
AEN12
AEN13
AEN14
AEN15
M/IO#
98
Location/Bits
xC80, bit 7
xC80, bits 6:2
xC80, bits 1:0
xC81, bits 7:5
xC81, bits 4:0
xC82, bits 7:4
xC82, bits 3:0
xC83, bits 7:4
xC83, bits 3:0
99
Setting the switches and/or jumpers allows the user to resolve conflicts between installed expansion cards. In addition, many ISA system boards have
switches and/or jumpers that are used to configure the system board options.
The EISA specification replaces the switches and/or jumpers with special I/O
locations. Each of these I/O locations can contain up to eight bits that may be
used to select options on the system or expansion card. Each I/O location may
be thought of as a pseudo-DIP switch bank. They are configuration registers.
These special I/O locations reside in the slot-specific I/O address space starting
at xC80h and extending up to xCFFh, a total of 128 locations. The first four of
these I/O locations are reserved for the card ID, while three of the eight bits in
xC84h are reserved for special card functions. The remaining five bits in xC84h
and locations xC85h xCFFh are available for the implementation of cardspecific configuration registers.
Port xC84
bit 0
bit 1
bit 2
bits 7:3
101
!DEL1233.CFG
!CPQ5672.CFG
!IBM9AB1.CFG
The configuration program includes a method for handling cards with duplicate product IDs. As the configuration program copies the configuration file for
each card to the configuration diskette, it checks for duplicate product IDs.
When one is found, the first character of the filename is changed from an ex-
102
The card manufacturer should always ensure that the card's configuration file
name and product ID are changed to reflect the actual revision number of the
card.
Configuration Procedure
The example sequence that follows provides a guide to the configuration of an
EISA system.
1.
2.
3.
4.
5.
6.
With the machine powered off, insert the configuration diskette in floppy
drive A.
Install all EISA expansion cards. Do not install ISA cards yet.
Power on the machine. During the POST, the machine attempts to read the
product ID from each expansion slot in order to determine which slots
have EISA cards installed.
When the POST is complete, the unit boots from the configuration diskette
and executes the configuration program.
Use the copy configuration file command on the configuration program's
menu to copy each of the configuration files for the installed EISA cards
and the yet-to-be-installed ISA cards onto the configuration diskette. During the copy process, the configuration program automatically detects and
renames the configuration files for cards with duplicate product IDs.
Select automatic system configuration from the menu. The configuration
program automatically generates a conflict-free scenario for both the EISA
and ISA cards. The configuration program stores the EISA card product
IDs, I/O configuration port addresses and the data to be written to each
configuration port in non-volatile memory. Information about the ISA
cards is also stored in the slot-specific non-volatile memory areas reserved
for the slots the ISA cards are to be installed in.
103
Using the prompts generated by the configuration program, the user sets
the DIP switches and/or jumpers on the ISA cards to the indicated positions.
8. Print a hardcopy of the expansion slots the ISA cards must be installed in
and any command lines that may need to be entered into the operating system's startup files (such as the CONFIG.SYS and AUTOEXEC.BAT files in
an MS-DOS environment).
9. Turn the system off and install the ISA cards in the expansion slots indicated by the configuration program. Refer to the hardcopy.
10. Remove the configuration program diskette from drive A: and power up
the system again. The system now boots from the hard disk.
11. Using a text editor, incorporate command lines into the operating system's
startup files that were indicated by the configuration program. Refer to the
hardcopy.
12. Reboot the system so the commands in the operating system's startup files
are executed.
104
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0zC94h2
0000xxxx
0zC98h3
xxxxxxxxxxxxxxrr
0zC9Ah4
xxxxxxrr
0zC9Bh5
rrrrrxxx
0zC85h6
xxxxxxxx
0zC86h7
0rrxxxxx
0zC86h8
1rrxxxxx
105
106
0"
1"
2"
15"
107
108
109
2.
3.
4.
5.
110
Every configuration file must include the board identification block. The
BOARD statement identifies the beginning of the block. The ID statement
contains the product ID consisting of the three character manufacturer's
code, the three digit board type and the one digit revision number. The
NAME field contains text that describes the board. The MFR field contains
the full name of the board manufacturer. The CATEGORY field contains a
three character designator that identifies the basic board type. Table 9-9
provides a listing of the available categories. The SLOT statement identifies
the type of slot the board requires. If the SLOT statement is missing, the
configuration program assumes that the board requires a 16-bit ISA slot.
The LENGTH statement specifies the length of the board in millimeters.
The READID statement identifies whether the board has a product ID that
can be read from I/O ports xC80h xC83h.
The IOPORT(1) statement associates the variable name IOPORT(1) with
I/O port address xC94h. The INITVAL statement identifies the source of
each of the bits within the specified I/O port. In this example statement,
the xxxx indicates that bits 3:0 are supplied by the configuration program
based on the configuration chosen. The 0000 in bits 7:4 indicates that these
bits are always zero.
The IOPORT(2) statement associates the variable name IOPORT(2) with
I/O port addresses xC98h and xC99h. The INITVAL statement identifies
the source of each of the bits within the specified I/O port. In this example
statement, the bit field is sixteen bits wide, indicating that this is a 16-bit
I/O port. Bits 1:0 have an rr designation, meaning that they are readonly bits. The x's in bits 15:2 indicate that they are supplied by the configuration program based on the configuration chosen.
The IOPORT(3) statement associates the variable name IOPORT(3) with
I/O port address xC9Ah. The INITVAL statement identifies the source of
each of the bits within the specified I/O port. In this example statement,
the bit field is eight bits wide, indicating that this is an 8-bit I/O port. Bits
1:0 have an rr designation, meaning that they are read-only bits. The x's
in bits 7:2 indicate that they are supplied by the configuration program
based on the configuration chosen.
The IOPORT(4) statement associates the variable name IOPORT(4) with
I/O port address xC9Bh. The INITVAL statement identifies the source of
each of the bits within the specified I/O port. In this example statement,
111
112
22.
23.
24.
25.
26.
27.
28.
memory block. The three possible start addresses are 0C0000h, 0D0000h, or
0E0000h. The MEMTYPE field identifies whether the memory block is
normal system memory (SYS), expanded memory (EXP), a LIM page frame
(VIR), or memory space used for memory-mapped I/O or bank-switched
memory (OTH for other). OTH is primarily intended for memory-mapped
I/O devices such as network cards. This memory block is declared not writable (WRITABLE = no), meaning it is ROM memory. The memory block
may not be shared with another device (SHARE = no). It is 8-bit memory
(SIZE = byte). It is safe to cache information from this area of memory
(CACHE = yes). All 32 address lines are decoded by the board (DECODE =
32). To implement the selected memory start address, IOPORT(6), port
xC86h, bits 3:0, must be set to Ch (1100), Dh (1101), or Eh(1110).
The next functional area to be configured is the RAM memory residing on
the network interface card.
The first CHOICE block defines the configuration if the network interface
card has 64K of RAM memory installed. Its SUBTYPE is declared as 64K
for the use of the network interface driver. If this choice is made, the
MEMORY block statement declares the memory as 64K in size. Its start address may begin on any one of sixteen possible address boundaries within
the 1M range between 100000h and 1FFFFFh and the must start at an address divisible by 64K. It is declared as writable, meaning it is RAM memory that can be both written to and read from. It is declared with a
MEMTYPE of OTH. It is a 32-bit device and the selected memory address
range is declared as non-cacheable. If this choice is made, IOPORT(7), port
xC86h, bits 4:0 must be set to a value between 0 0000 and 0 1111, depending on the start address selected.
The statements within the second CHOICE block will be executed if the
network interface card has 128K of RAM memory installed. The setup is
the same as that with 64K of RAM installed except for the SUBTYPE declaration and the value to be written to IOPORT(7), port xC86h. If this choice
is made, IOPORT(7), port xC86h, bits 4:0 must be set to a value between 1
0000 and 1 1111, depending on the start address selected.
The ENDGROUP statement marks the end of the network interface portion
of the configuration information. The remaining configuration information
relates to the serial port.
The next functional area to be configured is the serial port logic residing on
the network interface card.
For the benefit of the device driver software, the SUBTYPE is declared as
COM,ASY meaning asynchronous communications port.
There are three possible configuration choices for the serial port: COM1,
COM2, or disabled. For the COM1 choice, the following selections are
made: the serial port will use IRQ4 and it will be programmed as a share-
113
Category Name
COM
KEY
MEM
MFC
MSD
NET
NPX
OSE
OTH
PAR
PTR
SYS
VID
114
PART TWO
THE INTEL 82350DT
CHIP SET
Chapter 10
The Previous Chapter
In the previous chapter, automatic system configuration was described.
This Chapter
This chapter describes the major buses found in virtually all EISA systems. This
includes the host, EISA, ISA and X-buses.
Introduction
Refer to figure 10-1. EISA systems may incorporate a number of buses such as:
Host bus
EISA bus
X-bus
Local bus
117
CPU
Host Bus
System
Memory
EISA Bus
X-Bus Buffers
X-Bus
Figure 10-1. Buses Typically Found in EISA Systems
Host Bus
Virtually all EISA systems are shipped with an integral CPU. This CPU may be
integrated onto the system board itself or may reside on a special, CPU daughter card that installs in a special connector on the system board. This is referred
to as the host CPU. The host CPU's local address, data and control buses comprise the host bus. Typically, devices that the CPU requires fast access to would
be placed on the host bus. These would include devices like:
118
If the host CPU resides on a daughter card, the CPU's local cache controller,
cache memory, NCA logic and numeric coprocessor also typically reside on the
CPU card.
EISA/ISA Bus
Since the ISA bus is a subset of the EISA bus, any reference to the EISA bus in
this book is a reference to the ISA bus and its EISA extensions. The ISA bus is
discussed in detail in the MindShare book entitled ISA System Architecture. The
EISA extensions to the ISA bus are described earlier in this book.
X-Bus
The ability of the microprocessor to drive data onto the data bus and the address onto the address bus is limited by the power of its output drivers. When
the microprocessor is writing data to any external memory or I/O device, the
data is driven out onto the processor's local data bus. If the local data bus is
fanned out and connected to too many external devices, the drive capability of
the microprocessor's output drivers may be exceeded and the data driven onto
the data bus becomes corrupted. The local data bus is connected to the external
data bus transceivers pictured in figure 10-2.
During a write operation, the bus control logic allows the appropriate data bus
transceiver to pass data from the processor's local data bus onto the system
data (SD) bus. The output drive capability of the transceiver is substantially
greater than that of the processor's internal drivers, allowing the SD bus to fan
out to more places. The SD bus is connected to all of the ISA expansion slots. In
addition, many devices that may be written to are physically located on the
system board itself. However, it would exceed the output drive capability of
the data bus transceivers to fan out the SD bus to all of the devices integrated
onto the system board as well as to all of the expansion slots.
To solve this problem, the SD bus is passed through another transceiver onto
the XD, or extended data, bus. The X data bus transceiver redrives the data
onto the XD bus during writes, permitting the data to be fanned out the devices
residing on the XD bus. The devices integrated onto the system board are connected to the X data bus.
119
XA1:XA16
XBHE#
XA
Bus Buffer
LA
Bus
Buffer
LA17:LA23
Address
Latch
SA1:SA19
XA0
CPU
A1:A23
D8:D15
Data
Bus
Xcvr
SD8:SD15
Hi/Lo Copier
D0:D7
Data
Bus
Xcvr
SD0:SD7
Expansion
Slots
A0
SA0
BHE#
SBHE#
XD
Bus Buffer
Bus
Control
logic
XD8:15
XD0:XD7
120
121
122
Chapter 11
The Previous Chapter
The previous chapter introduced the buses around which all EISA systems are
constructed. They are the host, EISA, ISA and X buses.
This Chapter
This chapter provides a description of the major functions performed by the
EISA chipset. It acts as the bridge between the host and EISA buses. It translates addresses and other bus cycle information into a form understood by all
of the host, EISA, ISA and X-bus devices in a system. When necessary, it performs data bus steering to ensure data travels over the correct paths between
the current bus master and the currently-addressed device. It incorporates a
toolbox including all of the standard support logic necessary in any EISA machine. It should be noted that the ISA bus is a subset of the EISA bus. For this
reason, all references to the EISA bus in this or any other MindShare book refer
to both the ISA bus and the Extended ISA bus (EISA).
123
124
Host CPU
Host CPU
host slave
EISA slave
Host CPU
Host CPU
ISA expansion
slave
ISA X-bus slave
host slave
EISA slave
ISA expansion
slave
ISA X-bus slave
host slave
EISA slave
ISA expansion
slave
ISA X-bus slave
No bridging required.
Address must be passed from the host
bus to the EISA bus.
Address must be passed from the host
bus onto the ISA bus.
Address must be passed from the host
bus onto the ISA bus and then onto the Xbus.
Address must be passed from the EISA
bus to the host bus.
No bridging required.
No bridging required.
Address must be passed from the EISA
bus to the X-bus.
Address must be passed from the ISA bus
to the host bus.
No bridging required.
No bridging required.
Address must be passed from the ISA bus
to the X-bus.
125
Host Bus
EISA/Host
Address Bridge
EISA Bus
SBHE#
BE0#:BE3#
EISA/X-Bus
Address Buffer
EISA/X-Bus
Data
Transceiver
X Address Bus
X-Bus
LA Bus
X Data Bus
XBHE#
In addition, under some circumstances the data being transferred between the
bus master and the slave must be allowed to pass from one system bus to another. Table 11-2 defines these situations.
126
Slave Type
Host CPU
Host CPU
host slave
EISA slave
Host CPU
ISA expansion
slave
Host CPU
X-bus slave
EISA Bus
Master
host slave
EISA Bus
Master
EISA Bus
Master
EISA Bus
Master
EISA slave
ISA Bus
Master
host slave
ISA Bus
Master
ISA Bus
Master
ISA Bus
Master
EISA slave
ISA expansion
slave
X-bus slave
ISA expansion
slave
X-bus slave
Action Required
No bridging required.
On a read, data must be passed from the EISA data
bus to the host data bus. On a write, data must be
passed from the host data bus to the EISA data bus.
On a read, data must be passed from the ISA data
bus to the host data bus. On a write, data must be
passed from the host data bus to the ISA data bus.
On a read, data must be passed from the X data bus
to the ISA data bus and then from the ISA data bus
to the host data bus. On a write, data must be
passed from the host data bus to the ISA data bus
and then to the X data bus.
On a read, data must be passed from the host data
bus onto the EISA data bus. On a write, data must
be passed from the EISA data bus to the host data
bus.
No bridging required.
No bridging required.
On a read, data must be passed from the X data bus
to the EISA data bus. On a write, data must be
passed from the EISA data bus to the X data bus.
On a read, data must be passed from the host data
bus to the ISA data bus. On a write, data must be
passed from the ISA data bus to the host data bus.
No bridging required.
No bridging required.
On a read, data must be passed from the X data bus
to the ISA data bus. On a write, data must be passed
from the ISA data bus to the X data bus.
127
Bus Master
32-bit
Host
Type
Address
Host
CPU
16-bit
EISA
Bus
Master
32-bit
EISA
Bus
Master
16-bit
ISA
Bus
Master
A[31:2] and
BE#[3:0]
LA[31:2] and
BE#[3:0]
SA[19:0
]
SA[19:0
]
SA[23:0] and
SBHE#
SA[23:0] and
SBHE#
LA[31:2]
and BE#[3:0]
LA[31:2]
and BE#[3:0]
LA[31:2]
and BE#[3:0]
LA[31:2]
and BE#[3:0]
A[31:2] and
BE#[3:0]
A[31:2] and
BE#[3:0]
LA[31:2] and
BE#[3:0]
SA[19:0
]
SA[23:0] and
SBHE#
LA[31:2]
and BE#[3:0]
LA[31:2]
and BE#[3:0]
A[31:2] and
BE#[3:0]
SA[23:0] and
SBHE#
SA[19:0
]
SA[23:0] and
SBHE#
LA[31:2]
and BE#[3:0]
LA[31:2]
and BE#[3:0]
A[31:2] and
BE#[3:0]
When an EISA bus master or the host CPU is performing a bus cycle, the EISA
chipset must convert the bus master's byte enable outputs, BE#[3:0], into the
correct setting on the A0, A1 and BHE# signal lines. Conversely, when an ISA
bus master is performing a bus cycle, A0, A1 and BHE# must be converted to
the correct setting on the byte enable lines.
128
Address
Phase
Signal
EISA
ISA
START#
BALE
Host
ADS#
Pathfinder
Under some circumstances, data path steering is necessary. When a bus master
is communicating with a slave using a data path or paths that the slave is incapable of using, the data bus steering logic must be activated. During a read bus
cycle, the data bus steering logic ensures that the returning data arrives at the
bus master on the expected data path(s). During a write bus cycle, the data bus
steering logic ensures that the data being written by the bus master is routed to
the data path(s) that the slave expects to receive the data on. In an EISA machine, the data bus steering function is provided by the EISA chipset. Table 115 defines the situations when data bus steering is necessary. A more detailed
description of data bus steering may be found in the MindShare book entitled
ISA System Architecture. The 32-bit bus master or a 16-bit EISA bus master indicates the data path(s) to be used during a bus cycle using its byte enable outputs, BE#[3:0]. A 16-bit ISA bus master uses A0 and BHE# to indicate the data
path(s) that will be used during a bus cycle. The addressed slave indicates the
data path(s) that it is connected to by asserting IO16#, M16#, EX16# or EX32#. If
IO16#, M16# or EX16# is asserted by the currently-addressed slave, it is a 16-bit
device and is connected to data paths 0 and 1. If the currently-addressed slave
asserts EX32#, it is a 32-bit device and is connected to all four data paths. If
none of these lines are asserted, the addressed slave is an 8-bit device and is
connected only to path 0.
129
Slave
Type
32-bit
8-bit
write
32-bit
8-bit
read
32-bit
16-bit
write
130
When a 32-bit bus master is writing a single byte to an 8bit device over paths 1, 2, or 3, the data bus steering
logic must copy the byte down to path 0 so it can get to
the 8-bit device. When a 32-bit bus master is writing
multiple bytes to an 8-bit device in a single bus cycle,
the data bus steering logic must route the data to path 0
one byte at a time. As each byte is routed to the lower
data path, the address seen by the 8-bit device must be
incremented by the steering logic and the MWTC# or
IOWC# line must be turned off and then on again to
trick the 8-bit device into thinking another bus cycle has
been initiated.
When a 32-bit bus master is reading a single byte from
an 8-bit device over path 1, 2, or 3, the data bus steering
logic must copy the byte from path 0 to the path the bus
master expects to receive the byte on. When a 32-bit bus
master is attempting to read multiple bytes from an 8-bit
device in a single bus cycle, the 8-bit device can only
return one byte at a time. The steering logic must address each byte individually, copy it to the proper data
path and latch it in a latching data bus transceivers until
all of the requested bytes have been retrieved. As each
byte is routed to and latched by the proper data bus
transceiver, the address seen by the 8-bit device must be
incremented by the steering logic and the MRDC# or
IORC# line must be turned off and then on again to trick
the 8-bit device into thinking another bus cycle has been
initiated.
When a 32-bit bus master is writing one or two bytes to
a 16-bit device over paths 2 or 3, the data bus steering
logic must copy the byte or bytes to path 0 and/or path
1 so that they can get to the 16-bit device.
Slave
Type
Bus
Cycle
Type
32-bit
16-bit
read
32-bit
32-bit
16-bit
8-bit
read
or
write
write
16-bit
16-bit
16-bit
32-bit
read
or
write
write
16-bit
32-bit
read
When a 16-bit bus master is writing a single byte to an 8bit device over path 1, the data bus steering logic must
copy the byte down to path 0 so that it can get to the 8bit device. When a 16-bit bus master is writing two bytes
to an 8-bit device in a single bus cycle, the data bus
steering logic must route the data to path 0 one byte at a
time. As each byte is routed to the lower data path, the
address seen by the 8-bit device must be incremented by
the steering logic and the MWTC# or IOWC# line must
be turned off and then on again to trick the 8-bit device
into thinking another bus cycle has been initiated.
none
131
Detailed descriptions of interrupts, DMA, refresh, the timers and the NMI logic
can be found in the MindShare book entitled ISA System Architecture. Information regarding the EISA-specific enhancements to the interrupt, DMA, refresh
and the NMI control logic can be found earlier in this book. Information regarding the Central Arbitration Control (CAC) can be found earlier in this publication. A description of the Intel 82357 Integrated Systems Peripheral (ISP)
can be found in the next chapter. The ISP, part of the Intel EISA chipset, contains all of the above-mentioned logic elements.
132
Chapter 12
The Previous Chapter
The previous chapter described the major functions performed by an EISA
chipset.
This Chapter
This chapter provides an introduction to the Intel 82350DT EISA chipset. The
focus is on the 82358DT EISA Bus Controller (EBC), the 82357 Integrated Systems Peripheral (ISP), and the 82352 EISA Bus Buffers (EBBs).
Introduction
This chapter is not intended as a substitute for the Intel publication that describes the 82350DT EISA chipset. It is intended as a companion to the Intel
document, providing an introduction to the roles each component plays in a
typical EISA system. Only the crucial chipset components are represented
here: the EBC, the address EBB, the data EBB and the ISP. For detailed information, refer to the Intel document entitled 82350DT EISA Chipset, order number 290377-002. The EBC can be configured to operate in three different types
of environments:
With the host interface unit interfaced directly to the host CPU subsystem.
This is referred to as the 82350 environment.
With the host interface unit interfaced to the host bus through the Intel
82359 DRAM controller. This is referred to as the 82350DT/enhanced environment.
With the host interface unit interfaced to a buffered bus. The buffered bus,
in turn, is connected to the Intel 82359 DRAM controller, which is connected to the host bus. This is referred to as the 82350DT/buffered environment.
This chapter describes operation of the EISA chipset configured for the 82350
environment.
133
Host Bus
Data
Buffer
(Data Bus
Steering)
Address
Buffer
82358
EBC
82357
ISP
EISA/ISA Bus
X-Bus
Buffer
X Bus
Figure 12-1. The Intel EISA Chipset
134
CPU3
CPU2
CPU1
1
1
1
1
0
0
1
1
1
1
0
0
135
To Data Buffer
Data
Buffer
Control
Clock
Generator
Unit
To Address Buffer
Address
Buffer
Control
ISA Bus
Interface
Unit
ISA Bus
Host Bus
Host Bus
Interface
Unit
EISA Bus
Interface
Unit
EISA Bus
Host Cache
Cache
Support
ISP
Interface
Unit
ISP
Reset Logic
Reset
Control
I/O
Recovery
Logic
LIOWAIT#
CPU
Select
Test
Support
TEST1#
AENLE#
Slot-Specific
I/O Support
136
Clock Logic
control the data transceivers when routing data between the host and EISA
buses.
perform data bus steering when necessary, utilizing the latches and data
bus transceivers.
These transceivers and latches are located in the 82352 EISA Bus Buffer, or EBB,
pictured in figure 12-3. Table 12-2 defines the EBC output signals used to control the data EBB.
Signal
Table 12-2. EBC Output Signals Used to Control the Data EBB
Pin
Description
SDCPYEN01#
SDCPYEN02#
SDCPYEN03#
137
Pin
Description
SDCPYEN13#
SDCPYUP
SDHDLE3#
8
10
SDHDLE2#
11
SDHDLE1#
12
SDHDLE0#
13
SDOE2#
14
SDOE1#
16
SDOE0#
17
HDSDLE1#
18
HDOE1#
20
HDOE0
22
138
Host
Data
Path
1
HD16:HD23
Host
Data
Path
2
HD24:HD31
2-Way
Path 3
Latch
SD24:SD31
2-Way
Path 2
Latch
SD16:SD23
Path 1/3
Transceiver
HD8:HD15
2-Way
Path 1
Latch
SD8:SD15
Path 0/3
Transceiver
Host
Data
Path
0
EISA
Data
Path
3
HD0:HD7
2-Way
Path 0
Latch
Path 0/2
Transceiver
Host
Data
Path
3
EISA
Data
Path
2
EISA
Data
Path
1
Path 0/1
Transceiver
SD0:SD7
EISA
Data
Path
0
Transfer Between 32-bit EISA Bus Master and 8-bit ISA Slave
Two examples are described in the following paragraphs: a 32-bit read from an
8-bit ISA slave; and a 32-bit write to an 8-bit ISA slave. Refer to figure 12-4 during the discussion.
In the first example, the bus master is initiating a 32-bit read from an 8-bit
ISA slave. The 32-bit bus master begins the bus cycle by placing the double-
139
140
141
The 32-bit bus master deactivates START# and the EBC activates CMD#.
Using its four SDHDLEx# outputs, the EBC causes the data EBB to latch the
four data bytes being driven onto the four EISA data paths by the bus master.
The bus master samples the EX32# line to see if a 32-bit EISA slave is responding.
When the bus master is addressing an 8 or 16-bit ISA, a 16-bit EISA slave, or an
8 or 16-bit host slave, EX32# will not be returned active. Since an 8-bit ISA slave
is being addressed in this example, EX32# is not sampled active by the bus
master. At the end of address time, the EBC also samples EX32#, as well as
EX16#, M16# and IO16# to determine the size and type of slave device that is
responding. Since none of these four signals are sampled active, the EBC determines that the bus master is currently addressing an 8-bit ISA slave. Upon
determining that the addressed slave is not connected to all four data paths, the
bus master assumes that the EBC and EBB will take care of any data bus steering that may be necessary to accomplish the transfer. In order to let the EBC
and EBB use the buses for steering, the bus master disconnects from the four
data paths, the byte enable lines and the START# signal at midpoint of data
time. The bus master continues to drive the doubleword address onto LA[31:2],
however, as well as M/IO# and W/R#. The bus master then samples the state
of the EX32# line at the end of each data time until it is sampled active. During
this period of time, data bus steering is being performed by the EBC and EBB.
The EBC converts the M/IO# and W/R# settings to an active level on either the
IOWC#, SMWTC# or MWTC# bus cycle definition line on the ISA portion of
142
143
144
A0_LE#
SDHDLE0#
A1_LE#
SDHDLE1#
A2_LE#
A3_LE#
SDHDLE2#
SDHDLE3#
AB0_OE#
AB1_OE#
AB2_OE#
AB3_OE#
HD8:HD15
HD0:HD7
EBC
Signal
Names
SDOE0#
SDOE1#
SDOE2#
B01_LE#
B23_LE#
HDSDLE1#
A0_OE#
HDOE0#
A1_OE#
A2_OE#
HDOE1#
A3_OE#
B03CPYE#
SDCPYEN01#
SDCPYEN02#
SDCPYEN03#
B13CPYE#
SDCPYEN13#
CPY_DN#
SDCPYUP
B01CPYE#
B02CPYE#
SD24:SD31
}
}
Latches Data
From EISA
Data Bus
Into EBB
Drives
Latched Data
Onto EISA Bus
Latches Host
Bus Data
Into EBB
Drives
Latched
Data Onto
Host Bus
From EBB
Data Bus
Steering
Control
For EBB
SD16:SD23
(from host
memory slaves)
(from host
IO slaves)
(to host CPU)
SD8:SD15
EBB
HLOCIO#
HRDYO#
EXMASTER#
HHLDA
MASTER16#
(from ISP)
EMSTR16#
IO16#
SD0:SD7
HLOCMEM#
M16#
EX32#
EX16#
EBC
CMD#
START#
BE0#:BE3#
HBE0#:HBE3#
SBHE#
SA1
SA0
Figure 12-4. Linkage Between the EBC and the Data EBB
145
REFRESH#
EXMASTER#
MASTER16#
EMSTR16#
MSBURST#
1
1
1
0
1
1
1
0
0
1
1
1
x
1
1
1
1
0
pulse
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
Bus Master
Type
32-bit host
CPU
Refresh
32-bit EISA
32-bit EISA
burst
downshift
32-bit EISA
burst
16-bit EISA
16-bit EISA
burst
16-bit ISA
DMA
DMA burst
At the end of address time, which is one BCLK cycle in duration, the 32-bit bus
master deactivates START#, the EBC activates CMD# and the bus master samples the EX32# line to see if a 32-bit EISA slave is responding. When the bus
master is addressing an 8 or 16-bit ISA, a 16-bit EISA slave, or an 8 or 16-bit
host slave, EX32# will not be returned active. Since a 16-bit ISA slave is being
addressed in this example, EX32# is not sampled active by the bus master. At
the end of address time, the EBC also samples EX32#, as well as EX16#, M16#
and IO16# to determine the size and type of slave device that is responding.
Since either M16# or IO16# is sampled active, the EBC determines that the bus
master is currently addressing a 16-bit ISA slave. Upon determining that the
addressed slave is not connected to all four data paths, the bus master assumes
that the EBC and EBB will take care of any data bus steering that may be necessary to accomplish the transfer. In order to let the EBC and EBB use the buses
for steering, the bus master disconnects from the four data paths, the byte enable lines and the START# signal at midpoint of data time. The bus master con-
146
147
The 32-bit bus master deactivates START# and the EBC activates CMD#.
Using its four SDHDLEx# outputs, the EBC causes the data EBB to latch the
four data bytes being driven onto the four EISA data paths by the bus master.
The bus master samples the EX32# line to see if a 32-bit EISA slave is responding.
When the bus master is addressing an 8 or 16-bit ISA, a 16-bit EISA slave, or an
8 or 16-bit host slave, EX32# will not be returned active. Since a 16-bit ISA slave
is being addressed in this example, EX32# is not sampled active by the bus
master. At the end of address time, the EBC also samples EX32#, as well as
EX16#, M16# and IO16# to determine the size and type of slave device that is
responding. Since either M16# or IO16# is sampled active, the EBC determines
that the bus master is currently addressing a 16-bit ISA slave. Upon determining that the addressed slave is not connected to all four data paths, the bus
master assumes that the EBC and EBB will take care of any data bus steering
that may be necessary to accomplish the transfer. In order to let the EBC and
EBB use the buses for steering, the bus master disconnects from the four data
paths, the byte enable lines and the START# signal at midpoint of data time.
The bus master continues to drive the doubleword address onto LA[31:2],
however, as well as M/IO# and W/R#. The bus master then samples the state
of the EX32# line at the end of each data time until it is sampled active. During
this period of time, data bus steering is being performed by the EBC and EBB.
The EBC converts the M/IO# and W/R# settings to an active level on either the
IOWC#, SMWTC# or MWTC# bus cycle definition line on the ISA portion of
the bus. The EBC also converts the active level on the byte enable lines to zeros
on SA0 and SA1 and a low on SBHE#. Using its SDOE0# and SDOE1# outputs,
the EBC causes the data EBB to drive the bytes latched in its path zero and one
148
149
150
151
Using its four SDHDLEx# outputs, the EBC causes the data EBB to latch the
four data bytes being driven onto the four EISA data paths by the bus master.
The bus master samples the EX32# line to see if a 32-bit EISA slave is responding.
When the bus master is addressing an 8 or 16-bit ISA, a 16-bit EISA slave, or an
8 or 16-bit host slave, EX32# will not be returned active. Since a 16-bit EISA
slave is being addressed in this example, EX32# is not sampled active by the
bus master. At the end of address time, the EBC also samples EX32#, as well as
EX16#, M16# and IO16# to determine the size and type of slave device that is
responding. Since EX16# is sampled active, the EBC determines that the bus
master is currently addressing a 16-bit EISA slave. Upon determining that the
addressed slave is not connected to all four data paths, the bus master assumes
that the EBC and EBB will take care of any data bus steering that may be necessary to accomplish the transfer. In order to let the EBC and EBB use the buses
for steering, the bus master disconnects from the four data paths, the byte enable lines and the START# signal at midpoint of data time. The bus master continues to drive the doubleword address onto LA[31:2], however, as well as
M/IO# and W/R#. The bus master then samples the state of the EX32# line at
the end of each data time until it is sampled active. During this period of time,
data bus steering is being performed by the EBC and EBB.
The active level on BE0# and BE1# indicates to the addressed 16-bit EISA slave
that a 16-bit transfer is in progress involving the first two locations in the currently addressed doubleword. Using its SDOE0# and SDOE1# outputs, the EBC
causes the data EBB to drive the bytes latched in its path zero and one latches
onto EISA data paths zero and one. The addressed 16-bit EISA slave responds
to the write and accepts the two bytes from the EISA data paths zero and one,
SD[7:0] and SD[15:8]. The EBC monitors EXRDY to determine when the slave is
ready to end the transfer. The EBC deactivates CMD#, SDOE0# and SDOE1#,
causing the data EBB to cease driving the two bytes onto EISA data paths zero
and one.
The EBC now addresses the last two bytes in the addressed doubleword by activating BE2# and BE3# and deactivating BE0# and BE1#. The EBC tricks the
addressed slave into thinking a new bus cycle has begun by generating
START#, followed by CMD#. Using its SDCPYUP, SDCPYEN02#,
SDCPYEN13# and SDOE2# output signals, the EBC causes the data EBB to
drive the two bytes latched in its path two and three latches onto paths two and
three and copies them down to EISA data paths zero and one. The 16-bit EISA
slave then accepts the two bytes from EISA data paths zero and one, SD[7:0]
152
153
The 32-bit bus master deactivates START# and the EBC activates CMD#.
The bus master samples the EX32# line to see if a 32-bit EISA slave is responding.
When the bus master is addressing an 8 or 16-bit ISA, a 16-bit EISA slave, or an
8 or 16-bit host slave, EX32# will not be returned active. Since a 32-bit EISA
slave is being addressed in this example, EX32# is sampled active by the bus
master. At the end of address time, the EBC also samples EX32#, as well as
EX16#, M16# and IO16# to determine the size and type of slave device that is
responding. Since EX32# is sampled active, the EBC determines that the bus
master is currently addressing a 32-bit EISA slave. Upon determining that the
addressed slave is connected to all four data paths, the bus master recognizes
that the EBC and EBB will not have to perform data bus steering.
The active level on the four byte enable lines indicates to the addressed 32-bit
EISA slave that a 32-bit transfer is in progress involving all four locations in the
currently addressed doubleword. The addressed 32-bit EISA slave responds to
the write and accepts the four bytes from EISA data paths zero through three.
The bus master monitors EXRDY to determine when the slave is ready to end
the transfer. Since this is a write bus cycle, the bus master ends the bus cycle
when the EBC deactivates CMD#.
154
155
Drives the MASTER16# line active to inform the EBC that a 16-bit bus master has initiated the bus cycle.
Drives the doubleword address onto LA[31:2] and sets the M/IO# line to
the appropriate state.
Drives the START# signal active.
sets W/R# and the byte enable lines to the appropriate states.
During a write transfer, the bus master starts to drive data onto EISA data
path zero and/or path one at the midpoint of address time.
At the trailing-edge of address time, the bus master deactivates START# and
the EBC activates CMD# to indicate the beginning of data time. The bus master
samples EX16# and EX32# to determine if the currently addressed device is attached to at least the lower two data paths. Since this example assumes that the
bus master is addressing an 8-bit ISA slave, neither EX16# nor EX32# will be
sampled active. Upon determining that the addressed slave is not connected to
the lower two EISA data paths, the bus master assumes that the EBC and EBB
will take care of any data bus steering that may be necessary to accomplish the
transfer. Using its SDHDLE0# and SDHDLE1# outputs, the EBC causes the
data EBB to latch the two bytes being driven onto EISA data paths zero and one
by the bus master.
In order to let the EBC and EBB use the buses for steering, the bus master disconnects from the two data paths, the byte enable lines and the START# signal
at the midpoint of data time. The bus master continues to drive the doubleword address onto LA[31:2], however, as well as M/IO# and W/R#. The bus
master then samples the state of the EX16# line at the end of each data time until it is sampled active. During this period of time, data bus steering is being
performed by the EBC and EBB.
When the EBC determines that an ISA device is responding, the EBC converts
M/IO# and W/R# to an active level on one of the following ISA bus cycle definition signals:
156
IORC#
IOWC#
MRDC#
MWTC#
SMRDC#
SMWTC#
In this example, either the IOWC#, MWTC# or SMWTC# line would be activated by the EBC. The EBC also converts the setting on the EISA byte enable
lines to the appropriate setting on SA0, SA1 and SBHE#. In this case, the active
level on BE0# and BE1# would be converted to a low on SA0, SA1 and SBHE#
on the ISA address bus, indicating that the bus master is addressing an even location and the next sequential odd location and will use the lower two data
paths to transfer the two bytes. When the bus master has disconnected from the
data bus, START# and the byte enable lines at the midpoint of data time, the
EBC initiates the necessary data bus steering.
Using its SDOE0# output, the EBC causes the data byte latched into the data
EBB's path zero latch to be driven onto path zero, SD[7:0]. This byte is written
into the even-addressed location within the target 8-bit ISA slave. The EBC
monitors NOWS# and CHRDY to determine when the slave is ready to end the
transfer. The EBC then deactivates CMD# and SDOE0#, causing the data EBB
to cease driving the byte onto EISA data path zero.
Having completed the transfer of the first of the four bytes, the EBC increments
the address by setting SA0 to a one, SA1 to a zero and SBHE# active. The EBC
then tricks the addressed slave into thinking a new bus cycle has begun by
generating START# again, followed by CMD#, causing the appropriate ISA
command line to be deactivated and then activated again. Using its SDCPYUP,
SDCPYEN01# and SDOE1# output signals, the EBC causes the data EBB to
drive the byte latched in its path one latch onto path one and copies it down to
EISA data path zero. The 8-bit ISA slave then accepts the byte from EISA data
path zero, SD[7:0]. The EBC again monitors NOWS# and CHRDY to determine
when the slave is ready to end the transfer. Both data bytes have now been
written to the target 8-bit ISA slave. The EBC deactivates CMD#, SDCPYEN01#
and SDOE1#, causing the data EBB to cease driving the byte onto EISA data
path one and turning off the EBB's copy transceiver.
The EBC activates the EX32# and EX16# lines at the midpoint of the current
data time to signal the end of data bus steering. At the trailing-edge of the current data time, the 16-bit EISA bus master samples EX16# active, indicating that
the necessary steering has been completed. The bus master can begin to drive
the address for the next bus cycle onto the buses at the midpoint of the next
data time. The current bus cycle completes at the end of this last data time.
157
drives the MASTER16# line active to inform the EBC that a 16-bit bus master has initiated the bus cycle.
drives the doubleword address onto LA[31:2] and sets the M/IO# line to
the appropriate state.
drives the START# signal active.
sets W/R# and the byte enable lines to the appropriate states. In this example, W/R# is set low, indicating a read, and BE2# and BE3# are set active.
At the trailing-edge of address time, the bus master deactivates START# and
the EBC activates CMD# to indicate the beginning of data time. The bus master
samples EX16# and EX32# to determine if the currently addressed device is at
least attached to the lower two data paths and supports EISA bus cycle timing.
Since this example assumes that the bus master is addressing a 16-bit ISA slave,
neither EX16# nor EX32# will be sampled active. The EBC will, however, sample either M16# or IO16# active indicating a 16-bit ISA slave is responding.
Upon determining that the addressed slave is not capable of responding to
EISA bus cycle timing, the bus master assumes that the EBC and EBB will take
care of any data bus steering that may be necessary to accomplish the transfer.
In this particular example, a 16-bit EISA bus master is communicating with a
16-bit ISA slave. Since both devices are connected to EISA data paths zero and
one, no steering is actually necessary. The bus master, however, having no indication as to whether the addressed ISA slave is an 8 or 16-bit device, assumes
that steering may be necessary and surrenders the data bus, byte enable lines
and START# to the EBC's control. This is done at the midpoint of data time.
The bus master continues to drive the doubleword address onto LA[31:2],
however, as well as M/IO# and W/R#. The bus master then samples the state
of the EX16# line at the end of each data time until it is sampled active. During
this period of time, data bus steering is being performed by the EBC and EBB.
158
IORC#
IOWC#
MRDC#
MWTC#
SMRDC#
SMWTC#
In this example, either the IORC#, MRDC# or SMRDC# line would be activated
by the EBC. The EBC also converts the setting on the EISA byte enable lines to
the appropriate setting on SA0, SA1 and SBHE#. In this case, the active level on
BE2# and BE3# would be converted to a low on SA0, and SBHE# and a high on
SA1 on the ISA address bus, indicating that the bus master is addressing an
even location and the next sequential odd location and will use the lower two
data paths to transfer the two bytes.
The 16-bit ISA device returns the two requested data bytes on EISA data paths
zero and one and the EBC activates EX16# to inform the bus master that it may
resume control of the bus cycle. The EBC monitors NOWS# and CHRDY to determine when the slave is ready to end the transfer. The EBC then deactivates
CMD# and the bus master reads the two bytes from EISA data paths zero and
one when CMD# goes inactive.
159
Drives the MASTER16# line active to inform the EBC that a 16-bit bus master has initiated the bus cycle.
Drives the doubleword address onto LA[31:2] and sets the M/IO# line to
the appropriate state.
Drives the START# signal active.
Drives W/R# and the byte enable lines to the appropriate states. In this example, W/R# is set low, indicating a read, and BE2# and BE3# are set active.
At the trailing-edge of address time, the bus master deactivates START# and
the EBC activates CMD# to indicate the beginning of data time. The bus master
samples EX16# and EX32# to determine if the currently addressed device is at
least attached to the lower two data paths and supports EISA bus cycle timing.
Since this example assumes that the bus master is addressing a 16-bit EISA
slave, EX16# will be sampled active. The EBC will also sample EX16# active,
indicating a 16-bit EISA slave is responding. Upon determining that the addressed slave is capable of responding to EISA bus cycle timing, the bus master
assumes that no data bus steering will be necessary to accomplish the transfer.
In this particular example, a 16-bit EISA bus master is communicating with a
16-bit EISA slave. Since both devices are connected to EISA data paths zero and
one, no steering is necessary.
Using the active level on BE2# and BE3# to determine the requested bytes, the
16-bit EISA device returns the two requested data bytes on EISA data paths
zero and one. The EBC monitors EXRDY to determine when the slave is ready
to end the transfer. The EBC then deactivates CMD# and the bus master reads
the two bytes from EISA data paths zero and one when CMD# goes inactive.
160
drives the MASTER16# line active to inform the EBC that a 16-bit bus master has initiated the bus cycle.
drives the doubleword address onto LA[31:2] and sets the M/IO# line to
the appropriate state.
drives the START# signal active.
sets W/R# and the byte enable lines to the appropriate states. In this example, W/R# is set low, indicating a read, and BE2# and BE3# are set active.
At the trailing-edge of address time, the bus master deactivates START# and
the EBC activates CMD# to indicate the beginning of data time. The bus master
samples EX16# and EX32# to determine if the currently addressed device is at
least attached to the lower two data paths and supports EISA bus cycle timing.
Since this example assumes that the bus master is addressing a 32-bit EISA
slave, EX32# will be sampled active. The EBC will also sample EX32# active,
indicating a 32-bit EISA slave is responding. Upon determining that the addressed slave is capable of responding to EISA bus cycle timing, the bus master
assumes that no data bus steering will be necessary to accomplish the transfer.
In this particular example, a 16-bit EISA bus master is communicating with a
32-bit EISA slave. Since both devices are connected to EISA data paths zero and
one, no steering is necessary.
Using the active level on BE2# and BE3# to determine the requested bytes, the
32-bit EISA device returns the two requested data bytes on EISA data paths
two and three. Since the 16-bit EISA bus master expects to receive the two bytes
back on EISA data paths zero and one, the EBC must command the data EBB to
copy the two bytes from paths two and three to paths zero and one. This is accomplished by the EBC setting its SDCPYEN02# and SDCPYEN13# outputs active and its SDCPYUP output low.
The 16-bit EISA bus master monitors EXRDY to determine when the slave is
ready to end the transfer. The EBC then deactivates CMD# and the bus master
reads the two bytes from EISA data paths zero and one when CMD# goes inactive.
161
Transfer Between 16-bit ISA Bus Master and 16-bit ISA Slave
When the 16-bit ISA bus master initiates a bus cycle, the Central Arbitration
Control in the ISP chip activates its EMSTR16# output to inform the EBC that a
16-bit ISA bus master is running a bus cycle. In addition, the ISA bus master
sets MASTER16# active to indicate that it is a 16-bit bus master. The bus master
162
163
164
165
166
167
168
HALE#
LASAOE#
LAHAOE#
LALE#
SALAOE#
SALE#
Table 12-4. EBC Output Signals Used to Control the Address EBB
Description
When set active by the EBC, causes the address EBB's upper and
lower host/EISA latching transceivers to output the previously
latched host address onto the EISA LA bus. LA[23:2] and
LA#[31:24].
When set active by the EBC, causes the address EBB's upper and
lower host/EISA latching transceivers to latch the address on the
EISA LA bus, LA[31:2].
When set active by the EBC, causes the address EBB's EISA/ISA
latching transceiver to output the previously LA address onto the SA
bus, SA[19:2].
When set active by the EBC, causes the address EBB's upper and
lower host/EISA latching transceivers to output the previously
latched EISA address onto the host address bus, HA[31:2].
When set active by the EBC, causes the address EBB's upper and
lower host/EISA latching transceivers to latch the address on the
host address bus, HA[31:2].
When set active by the EBC, causes the address EBB's EISA/ISA
latching transceiver to output the previously latched SA address
onto LA bus, bits LA[16:2].
When set active by the EBC, causes the address EBB to latch the address on LA[19:2] into the EISA/ISA latching transceiver.
Table 12-5. Address EBB Control Line States
Current Bus Master Type
Control
Line
Host CPU
EISA
ISA
DMA
Refresh
HALAOE#
HALE#
LASAOE#
LAHAOE#
LALE#
active
transparent
active
inactive
inactive
transparent
active
active
na
inactive
transparent
inactive
active
na
active
transparent
active
inactive
transparent
active
transparent
active
inactive
transparent
SALAOE#
SALE#
inactive
inactive
inactive
pulsed to latch
LA into SA
latch
active
transparent
inactive
pulsed to latch
LA into SA
latch
pulsed to latch
LA into SA
latch
pulsed to
latch LA into
SA latch
pulsed to latch
HA bus
169
170
171
HALAOE#
LALE#
LAHAOE#
HALE#
HA2:HA31
Upper
Host/EISA
Latching
Transceiver
LA24#:LA31#
Lower
Host/EISA
Latching
Transceiver
LA2:LA23
B012_OE#
B01_LE#
M/IO#
HM/IO#
Bus Master
Host
ISA
EISA
Direction
EISA/ISA
Latching
Transceiver
SA2:SA19
S_OE#
SB_OE#
S_LE#
LASAOE#
SALAOE#
SALE#
Bus Master
Host
ISA
EISA
Direction
172
Signal
AMODE
input
HBE#[3:0]
input/output
HADS0# and
HADS1#
input
173
output
HD/C#
input/output
HW/R#
HM/IO#
HLOCK#
input/output
input/output
input
HRDYI#
input
HRDYO#
output
HERDYO#
output
HHOLD
output
HHLDA
input
174
input
HLOCIO#
input
HGT16M#
input
PWEN#
input
175
Table 12 - 6, cont.
input
HKEN#
input
176
BALE
output
SA0, SA1,
BHE#
input/output
IORC#
input/output
IOWC#
input/output
MRDC#
input/output
MWTC#
input/output
SMRDC#
output
Bus Address Latch Enable. During an ISA bus cycle, BALE is set high at the midpoint of address time
and dropped low at the end of address time. The
address is gated from the LA bus to the SA bus
when BALE goes high and is latch when BALE goes
low at the end of address time.
Least-significant part of the ISA address bus. These
are inputs when the bus cycle is being run by an ISA
bus master and outputs when the bus cycle is being
run by an EISA or host master.
The I/O Read Command line. Generated by an ISA
bus master when it is performing an I/O read bus
cycle. When an EISA or host bus master is performing an I/O read bus cycle, the EBC's ISA interface
unit generates this signal.
The I/O Write Command line. Generated by an ISA
bus master when it is performing an I/O write bus
cycle. When an EISA or host bus master is performing an I/O write bus cycle, the EBC's ISA interface
unit generates this signal.
The Memory Read Command line. Generated by
an ISA bus master when it is performing a memory
read bus cycle. When an EISA or host bus master is
performing a memory read bus cycle, the EBC's ISA
interface unit generates this signal.
The Memory Write Command line. Generated by
an ISA bus master when it is performing a memory
write bus cycle. When an EISA or host bus master is
performing a memory write bus cycle, the EBC's ISA
interface unit generates this signal.
Standard Memory Read Command line. The EBC's
ISA interface unit generates this signal when any
bus master is reading from memory space in the
00000000h 000FFFFFh range. A memory address
decoder located in the ISP chip generates GT1M#
whenever it detects a memory address in this range,
causing the ISP interface unit to generate either
SMRDC# or SMWTC#.
Table 12 - 7, cont.
177
output
IO16#
input/output
M16#
input
NOWS#
input
CHRDY
input/output
REFRESH#
input
MASTER16#
input
178
Signal
BE#[3:0]
M/IO#
W/R#
LOCK#
START#
CMD#
179
input/output
MSBURST#
input/output
SLBURST#
input
EX32#
input/output
EX16#
input/output
Cache Support
The EBC provides two output signals to support bus snooping. HSSTRB# is
used in 386/82385 host CPU systems, while QHSSTRB# is used in 486 host
CPU systems. These signals indicate to a system cache controller that a bus
master is writing to system memory. The RDE#, or Ready Delay Enable, input
instructs the cache support unit in the EBC to add a wait state by delaying
HERDYO# and HRDYO# during a host to EISA/ISA read to allow increased
cache SRAM write data setup time during cache read miss bus cycles.
Reset Control
180
Signal
RST
out
RSTCPU
out
RST385
out
RSTAR#
in
SPWROK
in
181
HCLKCPU
BCLK
in
out
CLKKB
out
BCLKIN
in
I/O Recovery
The ISA bus's default ready timer built into the EBC automatically forces accesses to 8 or 16-bit ISA I/O devices to append one wait state to the bus cycle.
If a delay of longer than one wait state is desired, the signal LIOWAIT#, Long
I/O Wait, may be asserted to provide a maximum of eleven wait states when
accessing 8-bit ISA I/O slaves or three wait states when accessing 16-bit ISA
I/O slaves.
Testing
Normally pulled high with an external pullup resistor, an active level on the
TEST1# input causes the EBC to float all of its outputs except BCLK. This allows a board tester to gain control of all of the output signal lines for testing
purposes.
182
183
BE0#:BE3#
BCLK
RST
START#
CMD#
GT1M#
RSTDRV
RTCALE
CSOUT#
DRDY
HW/R#
D0:D7
HA2:HA31
CHCHK#
NMI
AEN#
EOP/TC
GT16M#
NMI
Logic
PARITY#
Refresh
Logic
IRQ0
Grant
Refresh
Bus Timeout
MREQ0#
Central
Arbitration
Control
MAK1#
MREQ1#
MAK2#
MREQ2#
MAK3#
MREQ3#
MAK4#
Master
DMAC
MREQ4#
DMA Grant
DMA Request
MAK5#
MREQ5#
DHOLD
Slave
DMACDRQ4
DHLDA
DAK4#
EMSTR16#
Refresh Request
EXMASTER#
Watchdog Timeout
CPUMISS#
IRQ0
System
Timer
Refresh
Timer
Watch
Dog
Timer
Audio
Timer
Slow
Down
Timer
SPKR
OSC
184
INTR
MAK0#
Slave
8259
Chain Interrupt
DRQ7
DAK7#
DRQ6
DAK6#
DRQ5
DAK5#
DRQ3
DAK3#
DRQ2
DAK2#
DRQ1
DAK1#
DRQ0
DAK0#
REFRESH#
Master
8259
IRQ2
IRQ1
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
IRQ8#
IRQ9
IRQ10
IRQ11
IRQ12
IRQ13
IRQ14
IRQ15
SLOWH#
The programmer may also force the NMI logic to generate an NMI by writing
to I/O port 0462h with any data.
Interrupt Controllers
The ISP contains two modified Intel 8259A Programmable Interrupt Controllers in a master/slave configuration. Together, they provide a total of fifteen interrupt request lines. Eleven of these are attached to the EISA/ISA card slots,
while the remainder are reserved for special system board functions. The Interrupt Acknowledge input to the ISP is conspicuous by its absence. When a bus
master other than the DMAC or the Refresh logic is bus master, the ST2 signal
line is an input to the ISP and it performs the interrupt acknowledge function.
Whenever the EBC detects an interrupt acknowledge bus cycle on the host bus,
it sets ST2 low to signal interrupt acknowledge to the interrupt controllers in
the ISP.
Two new registers have been added to allow individual programming of each
interrupt request input as level-sensitive or edge-triggered. They are referred to
as the ELCR, or Edge/Level Control registers. The master interrupt controller's
ELCR resides at I/O port 04D0h, while the slave's resides at I/O port 04D1h.
Bit zero in the master's ELCR corresponds to the IRQ0 input, while bit seven
corresponds to the IRQ7 input. Bit zero in the slave's ELCR corresponds to the
IRQ8 input, while bit seven corresponds to the IRQ15 input. A zero in a bit position sets up the respective IRQ input to recognize positive, edge-triggered interrupt requests (non-shareable). A one in a bit position sets the IRQ input up
185
DMA Controllers
The ISP contains two enhanced Intel 8237 DMA Controllers in a master slave
configuration. Together, they provide a total of seven DMA channels. DMA
channels five through seven may be used by 16-bit I/O devices, while channels
zero through three are reserved for 8-bit I/O devices. Each of the DMA channels can be programmed to utilize the following EISA-specific features:
8, 16 or 32-bit transfers.
ISA compatible, Type A, Type B or Type C bus cycles..
buffer chaining.
ring buffer.
186
ST2
ST1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
x
System Timers
The ISP contains five programmable system timers necessary to the proper operation of any EISA machine. All of these timers derive their timing from the
ISP's OSC input signal of 1.19318MHz.
The System Timer is programmed during the POST to output a pulse onto
IRQ0 once every 55ms.
The Refresh Timer is programmed during the POST to output a Refresh
Request to the Central Arbitration Control once every 15.09 microseconds.
The Audio Timer is programmed by an applications program to yield the
desired output frequency on the SPKR output to the speaker driver on the
system board.
The Watchdog Timer may be utilized by multitasking operating systems to
detect a cessation of interrupt servicing. The Watchdog Timer counts unserviced IRQ0 output pulses from the System Timer. When its initial count
is exhausted, the Watchdog Timer generates a Watchdog Timeout to the
NMI logic, causing it to generate NMI to the host CPU.
The Slowdown Timer allows the programmer to make the host CPU appear to run slower to facilitate the proper operation of game software and
some copy protection schemes. The Slowdown Timer and all of the other
timers are described in the MindShare book entitled ISA System Architecture.
187
Refresh Logic
The Refresh Logic is contained in the ISP. It arbitrates for the buses once every
15.09 microseconds when the Refresh Timer sets the internal signal Refresh Request active. The CAC uses an internal Refresh Grant line to grant the buses to
the Refresh Logic. At that time, the Refresh logic sets the ISP's REFRESH# output active. The Refresh logic drives the row address onto the host address bus,
HA[31:2].
188
EXMASTER#
out
EMSTR16#
out
DHOLD
out
DHLDA
GT16M#
in
out
189
Direction
Description
in/out
AEN#
out
DRDY
in/out
CSOUT#
out
RTCALE
out
190
out
Greater Than 1MB. The ISP contains a memory address decoder designed to recognize any memory address less than 1MB (in the 00000000h through
000FFFFFh range). GT1M# is set active whenever the
memory address is greater than 000FFFFFh. The state
of this signal is used within the EBC's ISA interface unit
to determine whether or not to set the SMRDC# or
SMWTC# signal active. If the address is below 1MB,
SMRDC# or SMWTC# should be set active.
191
192
Glossary
32-bit EISA bus master EISA-based systems support 32-bit EISA bus master cards. A
bus master card typically includes an on-board processor and
local memory. It can relieve the burden on the main processor
by performing sophisticated memory access functions, such as
scatter/gather block data transfers.
82350DT EISA chip set The Intel 82350DT EISA chip set. The primary chips used by
most manufacturers includes the 82358DT EISA Bus Controller, or EBC, the 82357 Integrated Systems Peripheral, or ISP,
and the 82352 EISA Bus Buffers, or EBBs
82352 EISA Bus Buffer Part of the Intel 82350 EISA chip set used for two separate
functions: one for the address latching and buffering and one
for the data buffering and steering.
82357 ISP
This chip is part of the Intel 82350 chip set and contains a variety of functions including: the DMA controllers, Interrupt controllers, Timers, Arbitration logic, and NMI logic.
8237 DMACs
AEN
The signal used in ISA systems to disable all I/O address decoders so they do not respond to a DMA address. Also used in
EISA systems to independently enable I/O address decoders
AEN logic
Address translation
Arbitration
Efficient bus sharing among the main CPU, multiple EISA bus
master cards and DMA channels according to a priority
scheme.
Arbitration scheme
193
BCLK
An ISA bus signal (bus clock) that provides the timing reference for all bus transactions.
BCPR Services
Bridge
The EISA chip set must allow the addresses and data generated by a bus master to propagate onto all of the system buses
so all of the devices in the system can be communicated with.
The connection between buses is termed a bridge.
Buffer chaining
Burst DMA
Bus Arbitration
194
Glossary
Bus Cycle Definition
Specifies the type of bus cycle being run. Memory read, memory write, I/O read, I/O write, Interrupt acknowledge, Halt or
Shutdown.
Bus timeout
Cache controller
A cache memory controller maintains copies of frequently accessed information read from DRAM memory in the cache.
Central Arbitration Control. The logic responsible for managing the bus arbitration
process.
Command translation The process of translating between EISA and ISA type commands.
CMD#
Configuration file
195
DMA burst bus cycles DMA bus cycles that supports burst.
DMA cascade channel The DMA cascade channel connects (cascades) two DMA Controllers together. DMA channel 4 is used as the cascade channel.
DMA clock
The clock used by the DMA Controller to control its data transfer timing. DMA clock also called DCLK is typically one-half
the speed of BCLK.
DMA controller
DMA devices
DMA Extended Write A option associated with DMA bus cycle timing that extends
the amount of time that the read command line is active.
DMA Page Register
Each DMA channel has an external Page Register used to provide additional address capability. The DMA Controller
natively only has the ability to handle 64KB of memory locations.
DMA, Type A bus cycle. DMA bus cycle type that transfers data at a rate of every six
BCLK periods.
DMA, Type B bus cycle. DMA bus cycle type that transfers data at a rate of every four
BCLK periods.
DMA, Type C bus cycle. See burst bus cycle.
Downshift burst
EBB
EBC
196
Glossary
EISA bus buffer
Two EISA bus buffers (EBBs) are typically used in EISA systems: the Data EBB and the Address EBB.
The Data EBB controls the data transceivers when routing data
between the host and EISA buses and performs data bus steering when necessary, utilizing latches and data bus transceivers.
The Address EBB ensures that the address generated by the
current bus master is seen by every host, EISA and ISA slave in
the system.
Edge/level
control register
Together with the Data and Address EBBs, the EBC provides
the bridging, translation and data bus steering functions
ELCR
EX16#
EX32#
EXRDY
HLDA
HOLD
Hold Acknowledge
Hold Request
Hold request. A microprocessor input that is used by bus masters to gain ownership of the buses.
197
The bus on which the main CPU and main memory reside.
Peripheral
A chip in the EISA chip set (ISP) that contains a variety of functions including; the interrupt controllers, DMA controllers, arbitration logic, timers, and NMI logic.
Interrupt acknowledge A signal sent to the interrupt controller to indicate that its request is being acknowledged.
Interrupt latency
Interrupts, phantom
Interrupts, shareable
LA bus
LOCK# signal
M/IO#
MSBURST#
NMI
Preemption
198
Glossary
Refresh
The process of keeping dynamic memory from loosing information from the bit cell due to capacitor discharge. All DRAM
throughout the system is refreshed approximately every fifteen
microseconds.
Refresh logic
The logic that runs refresh bus cycles. The refresh logic is a bus
master capable of gaining ownership of the buses on a regular
basis.
Ring buffers
Rotating priority
Slave
SLBURST#
Slave burst signal. Used by EISA bursting slaves when addressed to notify the current bus master that they support
burst cycles.
Slot-specific I/O
The I/O addressing method used by EISA providing independent address space on a slot-by-slot basis to support automatic expansion board configuration.
START#
System timers
The timers that are standard with all EISA systems and are
contained in the ISP. These timers include the system timer (0),
refresh timer, speaker timer, watchdog timer, and slowdown
timer.
199
200
Write or read. Used by EISA devices to either specify or determine whether the current EISA bus cycle is a write or read
operation. Also an output from 386 and 486 microprocessors.
Index
0
0 Wait State ISA Bus Cycle Accessing 16-bit
Device, 64
1
16-bit bus master, 178
16-bit I/O ISA bus cycle, 61
16-bit ISA devices, transfers with, 57
8
82350DT EISA chip set, 29
8237 DMA controller, 132, 186
8237 DMAC, 67
8259 interrupt controller, 33
8259A programmable interrupt controller,
185
8-bit ISA device, transfers with, 54
A
Address bus extension, EISA, 43
Address bus, ISA, 43
Address enable, 190
Address enable signal, 96
Address latch, 58, 61, 64, 122
Address mode, 173
Address pipelining, 59, 61, 64, 74, 77
ADDRESS statement, 113
Address time, 55, 61, 64, 140, 142, 146, 148,
150, 151, 152, 153, 154, 155, 156, 158, 160,
161, 162, 163, 164, 174, 177, 179, 180
Address translation, 128
ADS# signal, 129
AEN decoder, 96
AEN decoder action table, 97
AEN logic, 96
AEN signal, 50, 74
AEN# signal, 190
AMODE, 173
Arbitration, 12
Arbitration example, 29
Arbitration signal group, EISA, 45
B
BALE, 177
BALE signal, 50, 55, 58, 61, 64, 78, 129
BCLK, 182
BCLKIN, 182
BIOS routine, 37
BIOS routines, EISA configuration, 102
Block mode transfer, 28
BOARD statement, 110
Bridge, 124
Buffer chaining, EISA DMA, 89
Burst bus cycle, EISA, 77
Burst bus cycle, EISA DMA, 87
Burst cycles, 10
Burst handshake signals, 48
Burst transfer, EISA, 77
Burst transfer, performance using, 82
Bus address latch enable, 177
Bus arbitration, 23
Bus arbitration signal group, EISA, 45
Bus clock, 182
Bus clock input, 182
Bus control logic, 120, 122
Bus cycle definition signal group, EISA, 48
Bus cycle timing signal group, EISA, 49
Bus cycle, EISA, 28
Bus cycle, ISA, 28
Bus cycle, ISA 16-bit device, 61
Bus cycles, ISA, 53
Bus master, 188
Bus master cards, 11
Bus master status latch, 188
Bus master type determination criteria, 146
Bus master, EISA, 28, 29
Bus master, ISA, 30, 67
Bus masters, EISA, 25
Bus timeout, 185, 188
Byte enable, 129, 140, 142, 143, 145, 147,
148, 149, 150, 151, 152, 153, 154, 155, 156,
157, 158, 159, 160, 161, 162, 163, 165, 166,
167, 179
Byte enable lines, 179
201
C
CAC, 23, 28, 123, 188, 189
Cache, 25, 113, 189
Cache support, 180
CATEGORY field, 110
Category list, 114
Central arbitration control, 23, 132, 162, 163,
164, 175, 185, 187, 188, 189
CFG file extension, 102
Chaining mode, EISA DMA, 89
Channel check, 185
Channel ready, 178
CHCHK# signal, 101, 185
Chip-select out, 190
CHOICE block, 112
CHRDY, 140, 141, 143, 144, 147, 149, 157,
159, 162, 163, 164, 165, 166, 178, 190
CHRDY signal, 56, 59, 61
CLKKB, 182
Clock generator unit, 181
CMD# signal, 49, 74, 76, 129, 140, 141, 142,
143, 144, 146, 147, 148, 149, 150, 151, 152,
153, 154, 155, 156, 157, 158, 159, 160, 161,
163, 164, 176, 179, 186
Command, 179
Command signal, 49
Command signal translation, 128
Compressed bus cycle, EISA, 75
Compressed mode, EISA DMA, 74
Compressed timing, ISA DMA, 69
CONFIG.SYS, 104, 111
Configuration, 12
Configuration bits, EISA, 101
Configuration file macro language, EISA,
104
Configuration file naming, EISA, 102
Configuration file, EISA, 101
Configuration file, example EISA, 104
Configuration procedure, EISA, 103
Configuration process, EISA, 101
Configuration registers, EISA, 100
Connector pinouts, EISA, 50
202
CPU, 25
CPU selection, 135
CPU type, 135
CPUMISS# signal, 189
CSOUT# signal, 190
Current registers, EISA DMA, 89
D
D/C# signal, 129
DAKn# signals, 87
Data bus extension, EISA, 45
Data bus steering, 134, 137, 140, 142, 144,
146, 147, 148, 149, 150, 151, 152, 153, 154,
155, 156, 157, 158, 160, 161, 164, 179, 180
Data bus steering logic, 12, 74, 82
Data bus transceivers, 120
Data path steering, 129
Data time, 55, 59, 61, 65, 140, 141, 142, 144,
147, 148, 149, 150, 151, 152, 153, 156, 157,
158, 160, 161, 162, 163, 176, 179, 180
Default ready timer, 56, 59, 61, 62, 65
Demand mode transfer, 28
Device ROM, 112
Device ROM scan, 37
Device ROMs, 37
DHLDA, 175, 189
DHOLD, 175, 189
DMA, 25, 28
DMA bus cycle type, 187
DMA bus cycle types, EISA, 83
DMA bus cycle, EISA type A, 85
DMA bus cycle, EISA type B, 86
DMA bus cycle, EISA type C, 87
DMA bus cycle, ISA-compatible, 84
DMA Bus Cycles, ISA, 67
DMA bus master, 171
DMA cascade channel, 67
DMA cascade input, 67
DMA channel, 112
DMA channel 0, 67
DMA channel preemption, EISA, 89
DMA channels, EISA, 83
DMA clock, 67
DMA clock speeds, 68
DMA controller, 50, 74, 186, 190
Index
DMA controller, EISA, 83
DMA enhancements, 10
DMA idle state, ISA, 68
DMA memory address limit, ISA, 67
DMA memory address register, 67
DMA memory addressing, EISA, 88
DMA transfer rate summary, EISA, 88
DMAC, 25
DMAC bus cycle, 68
Downshift burst bus master, 82
DRDY, 190
E
Early 16-bit bus master, 189
EBB, 133, 134, 137, 138, 139, 140, 141, 142,
143, 144, 145, 146, 147, 148, 149, 150, 151,
152, 154, 155, 156, 157, 158, 161, 162, 163,
164, 165, 166, 167, 168, 169, 170, 171, 172,
175, 176, 190
EBC, 78, 133, 134, 135, 136, 137, 138, 140,
141, 142, 143, 144, 145, 146, 147, 148, 149,
150, 151, 152, 153, 154, 155, 156, 157, 158,
159, 160, 161, 162, 163, 164, 165, 166, 167,
168, 169, 171, 172, 173, 175, 176, 177, 178,
179, 180, 181, 182, 183, 185, 186, 189, 191
Edge/level control register, 36, 185
Edge-triggered interrupt requests, 185
EISA burst bus cycle, 77
EISA burst transfer, 77
EISA bus, 117, 119
EISA bus buffers, 133, 134
EISA bus controller, 78, 133, 134
EISA bus interface unit, 179
EISA bus master, 170, 188
EISA bus master bus cycles, 71
EISA chip set, 124, 133
EISA compressed bus cycle, performance
using, 76
EISA connector, 41
EISA master, 189
EISA ready signal, 49
EISA ready., 180
EISA signal groups, 42
EISA signals, 41
EISA size 16, 180
F
Features, EISA, 9, 14
File extension, EISA configuration, 102
FREE statement, 112
FUNCTION statement, 112
G
Gather operation, 89
Greater than 16MB, 189
Greater than 1MB, 191
GROUP statement, 111
GT16M# signal, 189
GT1M# signal, 177, 178, 191
203
204
I
I/O address assignment, EISA, 95
I/O address decode, 50
I/O address decode, inadequate, 91
I/O address ranges, unusable, 94
I/O address space, EISA slot-specific, 94
I/O read command, 177
I/O recovery, 182
I/O write command, 177
I/O write recovery time, 61
ID statement, 110
INITVAL statement, 110
In-service register, 34
Integrated system peripheral, 183
Integrated systems peripheral, 132, 133
Intel 82350DT EISA chip set, 29
Intel 8237 DMA controller, 132
Intel 8237 DMAC, 67
Interrupt acknowledge, 185
Interrupt acknowledge bus cycle, 34
Interrupt chaining, 38
Interrupt controller, 33, 132, 185
Interrupt handling, 12, 33
Interrupt handling, EISA, 35
Interrupt handling, ISA, 34
Interrupt latency, 40
Interrupt pending bit, 39
Interrupt request, 112, 185
Interrupt request, level-sensitive, 37
Interrupt return, 35
Interrupt service routine, 37, 188
Interrupt service routine, linked list, 38
Index
Interrupt table, 37
Interrupt vector, 34
Interrupt, ghost, 34, 40
Interrupt, non-shareable, 35
Interrupt, phantom, 40
Interrupt, shareable, 35
IO size 16, 178
IO16# signal, 61, 74, 129, 140, 142, 146, 148,
150, 152, 153, 154, 158, 162, 163, 164, 165,
166, 178
IOCHKERR bit, EISA configuration, 101
IOCHKRST bit, EISA configuration, 101
IOPORT() statement, 110
IORC# signal, 50, 55, 61, 87, 129, 140, 141,
147, 157, 159, 177, 186
IOWC# signal, 50, 55, 61, 87, 129, 141, 143,
149, 157, 159, 162, 163, 164, 166, 177, 186
IRET instruction, 35
IRQ lines, number of, 35
IRQ0, 185, 187
IRQ13 signal, 89
IRQ15, 34, 185
IRQ7, 34, 185
IRQ8, 185
IRR bit, 34
ISA bus, 119
ISA bus cycles, 53
ISA bus interface unit, 176
ISA bus master, 170
ISA I/O address space problem, 91
ISA slave, 16-bit, 54
ISA slave, 8-bit, 53
ISP, 132, 133, 134, 162, 163, 164, 171, 175,
177, 178, 183, 184, 185, 186, 187, 188, 189,
190, 191
ISR, 34
K
Keyboard clock, 182
L
LA bus, 43, 55, 58, 59, 61, 64, 74, 122
LAHAOE# signal, 169, 170, 171
LALE# signal, 169, 170, 171
M
M/IO# signal, 48, 74, 77, 96, 129, 140, 142,
143, 145, 147, 148, 149, 150, 151, 152, 153,
154, 155, 156, 157, 158, 159, 160, 161, 164,
168, 170, 171, 179
M16# signal, 55, 58, 64, 129, 140, 142, 146,
148, 150, 152, 153, 154, 158, 162, 163, 164,
165, 166, 178
MAK signal, 29
MAKx# signal, 46
Manufacturer's code, 99, 110
Master acknowledge signal, 46
Master burst, 180
Master burst signal, 48
Master request signal, 46
MASTER16# signal, 146, 155, 156, 158, 160,
161, 162, 163, 164, 178
Memory capacity, 10
Memory or I/O, 179
Memory or I/O signal, 48
Memory read command, 177
Memory size 16, 178
MEMORY statement, 113
Memory write command, 177
Memory-mapped I/O, 113
MEMTYPE field, 113
MRDC# signal, 58, 64, 85, 129, 140, 147, 157,
159, 175, 177, 189
MREQ signal, 29
MREQn#, 28
MREQx# signal, 46
MSBURST# signal, 48, 78, 79, 87, 146, 180
MWTC# signal, 58, 59, 64, 85, 86, 129, 143,
149, 157, 159, 162, 163, 164, 166, 175, 177,
189
205
O
OSC input signal, 187
P
Page mode RAM, 45
Page register, 67
PARITY# signal, 185
Pipelining, address, 59, 61, 64
POST, 37, 103, 187
Posted write enable, 176
Preemption, 28
Priority, 25
Priority, DMA controller, 25
Priority, rotational, 25
Product identifier, 99
Product identifier, EISA, 98
Product revision, 99
PWEN# signal, 176
Q
QHSSTRB# signal, 180
R
RAM parity error, 185
RDE# signal, 180
READID statement, 110
READY#, 129
READY# timing, default, 54
Real-time clock address latch enable, 190
Recovery time, IO write, 61
Refresh bus master, 171
Refresh counter, 31
206
S
S1 state, ISA DMA, 68
S2 state, ISA DMA, 68
S3 state, ISA DMA, 68, 69
S4 state, ISA DMA, 68
SA0, 140, 141, 143, 144, 147, 149, 157, 159,
162, 163, 164, 165, 166, 173, 177, 179
SA1, 140, 141, 143, 144, 147, 149, 157, 159,
162, 163, 164, 165, 166, 173, 177, 179
SALAOE# signal, 169, 170
SALE# signal, 169, 170, 171
SBHE# signal, 140, 141, 143, 144, 147, 149,
157, 159, 162, 163, 164, 165, 166, 173, 179
Scan, device ROM, 37
Scatter operation, 89
SCRAM memory, 45
SDCPYEN01# signal, 137, 138, 141, 143,
157, 165
SDCPYEN02# signal, 137, 141, 143, 147,
149, 151, 152, 153, 161, 164, 166, 167
SDCPYEN03# signal, 137, 141, 144
SDCPYEN13# signal, 138, 147, 149, 151,
152, 161, 164, 166, 167
SDCPYUP, 137, 138, 141, 143, 144, 147, 149,
151, 152, 157, 161, 164, 165, 166, 167
SDHDLE0# signal, 138, 140, 147, 151, 156
Index
SDHDLE1# signal, 138, 141, 147, 151, 156
SDHDLE2# signal, 138, 141, 147, 151
SDHDLE3# signal, 138, 141, 147, 151
SDHDLEx# outputs, 148
SDOE0# signal, 138, 141, 143, 147, 149, 151,
152, 156, 157, 168
SDOE1# signal, 138, 141, 143, 147, 149, 151,
152, 156, 157, 158, 165, 168
SDOE2# signal, 138, 141, 143, 144, 147, 149,
151, 152, 153, 165, 166, 167, 168
SHARE statement, 112
Si state, ISA DMA, 68
SIZE statement, 112
Slave burst, 180
Slave burst signal, 48, 78
Slave size signal group, EISA, 50
SLBURST# signal, 48, 78, 82, 87, 180
SLOT statement, 110
Slot-specific I/O support, 181
Slowdown timer, 187
SMRDC# signal, 55, 129, 140, 141, 147, 157,
159, 177, 178, 191
SMWTC# signal, 55, 129, 141, 143, 149, 157,
159, 162, 163, 164, 177, 178, 191
SO state, ISA DMA, 68
SOFTWARE() statement, 111
SPWROK, 173, 181
ST2, 185
Standard EISA bus cycle, 72
Standard memory read command, 177
Standard memory write command, 178
START# signa, 77
START# signal, 49, 74, 129, 140, 141, 142,
143, 144, 146, 147, 148, 149, 150, 151, 152,
153, 154, 155, 156, 157, 158, 160, 161, 163,
164, 179, 186
State table, ISA DMA, 69
Stop register, EISA DMA, 90
SUBTYPE statement, 111
Sw state, ISA DMA, 68
T
TC signal, 89
Tc time, 55, 59, 61, 74, 77, 78, 79
Testing, 182
Timers, 132, 187
TIMING statement, 112
Transfer complete, 190
Transfer complete signal, 90
Transfer count register, 67
Transfer speed, ISA DMA, 70
Ts time, 55, 74, 76, 77, 78, 80
TYPE statement, 111
W
W/R# signal, 48, 74, 77, 78, 80, 85, 86, 129,
140, 142, 143, 145, 147, 148, 149, 150, 151,
152, 153, 154, 155, 156, 157, 158, 159, 160,
161, 164, 179
Wait state, 58, 62, 77
Wait state, DMA, 68
Watchdog timeout, 187
Watchdog timer, 185, 187
Write bus cycle, 56, 61
Write or read, 179
Write or read signal, 48
X
X Bus, 119
X data bus transceiver, 120
XA bus, 122
X-bus, 117
XD bus, 120
207