Hardware Reference
In-Depth Information
• DMA (direct memory access) channels
• I/O port addresses
These resources are required and used by many components of your system. Adapter cards need these
resources to communicate with your system and accomplish their purposes. Not all adapter cards
have the same resource requirements. A serial communications port, for example, needs an IRQ
channel and I/O port address, whereas a sound card needs these resources and at least one DMA
channel.
As systems increased in complexity from the late 1980s on, the chance for resource conflicts also
increased. The configuration problem came to a head in the early 1990s, when manual configuration
was the norm. Starting around that time, Microsoft and Intel developed PnP, which allowed for
automatic detection, management, and configuration of hardware, usually without user involvement.
Windows 95 was the first PnP-aware PC operating system (OS), and by the time it was released,
most hardware began supporting the PnP standard. Plug and Play was later superseded by Advanced
Configuration and Power Interface (ACPI), which combined device configuration and power
management into a single specification.
Modern systems with ACPI and modern buses such as PCI and PCI Express rarely have problems
configuring these resources. In virtually all cases, the configuration will be automatic and trouble
free.
Interrupts
Interrupt request channels, or hardware interrupts, are used by various hardware devices to signal the
motherboard that a request must be fulfilled. This procedure is the same as a student raising his hand
to indicate that he needs attention.
These interrupt channels are represented by wires on the motherboard and in the slot connectors.
When a particular interrupt is invoked, a special routine takes over the system, which first saves all
the CPU register contents in a stack and then directs the system to the interrupt vector table. This
vector table contains a list of memory addresses that correspond to the interrupt channels. Depending
on which interrupt was invoked, the program corresponding to that channel is run.
The pointers in the vector table point to the address of whatever software driver services the card
that generated the interrupt. For a network card, for example, the vector might point to the address of
the network drivers that have been loaded to operate the card; for a hard disk controller, the vector
might point to the BIOS code that operates the controller.
After the particular software routine performs whatever function the card needed, the interrupt-
control software returns the stack contents to the CPU registers, and the system resumes whatever it
was doing before the interrupt occurred.
Through the use of interrupts, your system can respond to external events in a timely fashion. Each
time a serial port presents a byte to your system, an interrupt is generated to ensure that the system
reads that byte before another comes in. Keep in mind that in some cases a port device—in particular,
a modem with a 16550 or higher UART chip—incorporates a byte buffer that allows multiple
characters to be stored before an interrupt is generated.
Hardware interrupts are generally prioritized by their numbers; with some exceptions, the highest-
priority interrupts have the lowest numbers. Higher-priority interrupts take precedence over lower-
priority interrupts by interrupting them. As a result, several interrupts can occur in your system
 
 
Search WWH ::




Custom Search