|
Device IRQ
0 System timer
1 Keyboard controller
2 Reserved (not used)
3 COM2
4 COM1
5 LPT2
6 Floppy drive
controller
7 LPT1
When the 16-bit ISA bus
appeared, more IRQs became available. A second interrupt controller chip
was added to the systemboard chip set, which hooked to the first
controller. The second controller used one of the first controller’s IRQ
values (IRQ 2) to signal the first controller (see the figure below). But
there was a problem with that because there were some devices that used
IRQ 2. Tying the new IRQ 9 to the old IRQ 2 pin on the 16-bit ISA bus
solved the problem. The result was that a device could still use the pin
on the expansion slot for IRQ 2, but it is really IRQ 9. (Look carefully
at the figure below to confirm that.) Because of this, the priority level
becomes: 0, 1, (8, 9, 10, 11, 12, 13, 14, 15), 3, 4, 5, 6, 7.
To see how the IRQs are
assigned on your computer, use MSD for DOS and Windows 3.x, and Device
Manager for Windows 9x. For Windows 9x, click
Start,
Programs, Settings, and Control Panel, and
double-click System. Click the
Device Manager tab. Select
Computer and click
Properties. The figure below shows the Computer Properties
dialog box. Notice that IRQ 2 is assigned to the programmable interrupt
controller, and IRQ 9 is used by the video card.
Memory Addresses
Once the IRQ gets the
attention of the CPU, its job is done, but memory addresses are used as
the device is serviced. Recall that memory addresses are numbers assigned
to both ROM and RAM memory so that the CPU can access that memory. Think
of memory addresses as a single long list of hexadecimal numbers. The CPU
has a fixed number of memory addresses available to it as determined by
the CPU and the bus it is using. These memory addresses can be assigned to
any type of physical memory in the system that needs to be addressed by
the CPU, including ROM and RAM chips on expansion cards and ROM and RAM
chips on the systemboard, which can hold either data or instructions. Once
addresses have been assigned, the CPU only sees this physical memory as a
single list that can be accessed by using the memory addresses. Before the
CPU can process data or instructions, both must be in physical memory, and
the physical memory must be assigned memory addresses. In the case of ROM
BIOS, these programs are already located on a memory chip, and so the only
thing needed is for memory addresses to be assigned to them. Software
stored on a hard drive or other secondary storage device must first be
copied into RAM before processing, and memory addresses must be assigned
to that RAM.
Data coming from a
keyboard or some other input device or stored in data files on a hard
drive must also be copied into RAM before processing, and memory addresses
must be assigned to that RAM. As one example of this process, the figure
below shows that both RAM and memory addresses are needed so the CPU can
load a program stored on the hard drive into memory before executing it.
Ways Memory
Addresses Are Used
The table below shows
the ways that the CPU uses its list of memory addresses. Startup BIOS and
System BIOS—also called
on-board BIOS—stored in the ROM-BIOS
chip on the systemboard must be assigned memory addresses so that the CPU
can access these programs. RAM stored in SIMMs and DIMMs on the
systemboard makes up the bulk of memory that is used by the CPU and uses
the lion’s share of available memory addresses. Many programs and data are
copied into this RAM, including device drivers, portions of the OS, and
applications software and data.
<Previous>
<Home>
<Next>
|