- •About This Book
- •Chapter 1: EISA Overview
- •Introduction
- •Compatibility With ISA
- •Memory Capacity
- •Synchronous Data Transfer Protocol
- •Enhanced DMA Functions
- •Bus Master Capabilities
- •Data Bus Steering
- •Bus Arbitration
- •Edge and Level-Sensitive Interrupt Requests
- •Automatic System Configuration
- •EISA Feature/Benefit Summary
- •Chapter 2: EISA Bus Structure Overview
- •Chapter 3: EISA Bus Arbitration
- •EISA Bus Arbitration Scheme
- •Preemption
- •Example Arbitration Between Two Bus Masters
- •Memory Refresh
- •Chapter 4: Interrupt Handling
- •ISA Interrupt Handling Review
- •ISA Interrupt Handling Shortcomings
- •Phantom Interrupts
- •Limited Number of IRQ Lines
- •EISA Interrupt Handling
- •Shareable IRQ Lines
- •Phantom Interrupt Elimination
- •Chapter 5: Detailed Description of EISA Bus
- •Introduction
- •Address Bus Extension
- •Data Bus Extension
- •Bus Arbitration Signal Group
- •Burst Handshake Signal Group
- •Bus Cycle Definition Signal Group
- •Bus Cycle Timing Signal Group
- •Lock Signal
- •Slave Size Signal Group
- •AEN Signal
- •EISA Connector Pinouts
- •Chapter 6: ISA Bus Cycles
- •Introduction
- •8-bit ISA Slave Device
- •16-bit ISA Slave Device
- •Transfers With 8-bit Devices
- •Transfers With 16-bit Devices
- •Standard 16-bit Memory ISA bus Cycle
- •Standard 16-bit I/O ISA bus Cycle
- •ISA DMA Bus Cycles
- •ISA DMA Introduction
- •8237 DMAC Bus Cycle
- •Chapter 7: EISA CPU and Bus Master Bus Cycles
- •Intro to EISA CPU and Bus Master Bus Cycles
- •Standard EISA Bus Cycle
- •General
- •Analysis of EISA Standard Bus Cycle
- •Performance Using EISA Standard Bus Cycle
- •Compressed Bus Cycle
- •General
- •Performance Using Compressed Bus Cycle
- •General
- •Analysis of EISA Burst Transfer
- •Performance Using Burst Transfers
- •DRAM Memory Burst Transfers
- •Downshift Burst Bus Master
- •Chapter 8: EISA DMA
- •DMA Bus Cycle Types
- •Introduction
- •Compatible DMA Bus Cycle
- •Description
- •Performance and Compatibility
- •Type A DMA Bus Cycle
- •Description
- •Performance and Compatibility
- •Type B DMA Bus Cycle
- •Description
- •Performance and Compatibility
- •Type C DMA Bus Cycle
- •Description
- •Performance and Compatibility
- •EISA DMA Transfer Rate Summary
- •Other DMA Enhancements
- •Addressing Capability
- •Preemption
- •Buffer Chaining
- •Ring Buffers
- •Transfer Size
- •Chapter 9: EISA System Configuration
- •ISA I/O Address Space Problem
- •EISA Slot-Specific I/O Address Space
- •EISA Product Identifier
- •EISA Configuration Registers
- •EISA Configuration Process
- •General
- •Configuration File Naming
- •Configuration Procedure
- •Configuration File Macro Language
- •Example Configuration File
- •Example File Explanation
- •Chapter 10: EISA System Buses
- •Introduction
- •Host Bus
- •EISA/ISA Bus
- •Chapter 11: Bridge, Translator, Pathfinder, Toolbox
- •Bus Cycle Initiation
- •Bridge
- •Translator
- •Address Translation
- •Command Line Translation
- •Pathfinder
- •Toolbox
- •Chapter 12: Intel 82350DT EISA Chipset
- •Introduction
- •EISA Bus Controller (EBC) and EISA Bus Buffers (EBBs)
- •General
- •CPU Selection
- •Data Buffer Control and EISA Bus Buffer (EBB)
- •General
- •Transfer Between 32-bit EISA Bus Master and 8-bit ISA Slave
- •Transfer Between 16-bit EISA Bus Master and 8-bit ISA Slave
- •Transfer Between 16-bit ISA Bus Master and 8-bit ISA Slave
- •Transfer Between 16-bit ISA Bus Master and 16-bit ISA Slave
- •Transfer Between 32-bit Host CPU and 32-bit Host Slave
- •Transfer Between 32-bit Host CPU and 8-bit ISA Slave
- •Transfer Between 32-bit Host CPU and 16-bit ISA Slave
- •Transfer Between 32-bit Host CPU and 16-bit EISA Slave
- •Transfer Between 32-bit Host CPU and 32-bit EISA Slave
- •Address Buffer Control and EBB
- •Host CPU Bus Master
- •EISA Bus Master
- •ISA Bus Master
- •Refresh Bus Master
- •DMA Bus Master
- •Host Bus Interface Unit
- •ISA Bus Interface Unit
- •EISA Bus Interface Unit
- •Cache Support
- •Slot-Specific I/O Support
- •Clock Generator Unit
- •I/O Recovery
- •Testing
- •ISP interface unit
- •82357 Integrated System Peripheral (ISP)
- •Introduction
- •NMI Logic
- •Interrupt Controllers
- •DMA Controllers
- •System Timers
- •Central Arbitration Control
- •Refresh Logic
- •Miscellaneous Interface Signals
- •Glossary
- •Index
EISA System Architecture
ISA Interrupt Handling Shortcomings
Phantom Interrupts
Internally, the 8259 has a pull-up resistor on each of its IRQ inputs. When an ISA expansion card must generate an interrupt request, the line is driven low by the card and is then allowed to go high again. The low-to-high transition is registered as an interrupt request by the 8259 interrupt controller on the system board. The 8259 specification also demands that the IRQ line must remain high until after the leading-edge of the first interrupt acknowledge bus cycle generated by the host processor. The pull-up resistor ensures that this will be the case.
Consider the case where an ISA card is designed to keep its IRQ line low until a request must be generated. At that time, the card would allow the IRQ line to go high and would maintain the high until the request has been serviced. The transition from low-to-high would be registered as a request by the 8259. When the request has been serviced, the card would drive the line low again and keep it low until the next request is to be generated. Although this design would work, a problem may arise.
A transitory noise spike on this interrupt request line could register as a valid interrupt request. When the microprocessor issues the first of the two interrupt acknowledge bus cycles, however, the IRQ line will already be low again. This means that the IRQ line's respective IRR (Interrupt Request Register) bit will not be active. The first interrupt acknowledge resets the highest-priority IRR bit and sets its associated bit in the ISR (In-Service Register). In this case, since the IRR bit is no longer set because the request was of too short a duration (a ghost, or phantom, interrupt), the 8259 must take special action. The 8259 is designed to automatically return the interrupt vector for its number seven input in this case. When the microprocessor then generates the second interrupt acknowledge, the 8259 sends back the vector associated with its number seven input. On the system’s master 8259, this is 0Fh, the vector of IRQ7. On the slave, it is 77h, the IRQ15 interrupt vector. The microprocessor therefore jumps to either the IRQ7 or the IRQ15 interrupt service routine.
In these two routines, therefore, the programmer must perform a check to see if the IRQ7 or the IRQ15 was real. This is accomplished by reading the contents of the respective 8259's ISR register and checking to see if bit seven is really set. If it is, then the request is real and the programmer should execute the remainder of the interrupt service routine to service the request. If, on the other hand, the
34