The two components discussed so far, microprocessor and memory, are not yet enough to build
a complete computer. These components are the heart and brain of the machines but some more
* organs» (to continue the biological theme) are still necessary. Their number, tasks and connec-
tions are the actual implementation of a computer architecture. For example, drives and the
graphics adapter must be accessed, and the interrupts issued by them should be handled ac-
cordingly by the processor-memory system. A major - and for the enormously successful IBM-
compatible personal computer, decisive - property is the very flexible bus system with the
expansion bus (or slot). The simple installation of a variety of LAN, graphics and other adapters
is only then possible. For that reason, Part 3 is dedicated to the structure (and architecture) of
the various «classes» of personal computers and their accompanying bus systems.
You can, of course, combine the chips described earlier, and those described later, and construct
a robot or a laser printer controller, for example; one advantage of microprocessors is their
flexibility. You may also meet the chips described in this book in other products, such as in
your washing machine or in an aeroplane. But let us now turn to the actual architecture of the
20 The 8-bit PC/XT Architecture
The PC/XT was the first IBM personal computer. For today's demands it would not be sufficient
even for simple computer games; its 8-bit architecture is far out-dated. Nevertheless, many
components have survived from the PC/XT decade up to the i486 and Pentium machines, for
example, the 8237A DMA chips or the PIC 8259A. Their logical structure still determines the
behaviour of the most advanced chip set. I will discuss the PC/XT structure mainly for reasons
20.1 The Components and Their Cooperation
Aigure 20.1 shows a block diagram of a PC/XT. If you have looked in vain for the chip names
indicated in the figure on your motherboard, this doesn't mean that you didn't buy a PC!
Instead, the chips will have been provided' by a third-party manufacturer, or the functions of
several chips integrated into a single chip. But the functional construction, and therefore the
rcriitecture, remains the same. Therefore, I only want to describe the basic configuration.
8-bit PC/XT Architecture 523
_ system address bus: this is the main PC/XT address bus and represents the latched version
of the local address bus. The signal for latching the address signals on the local address bus
into the latches for the system address bus is ALE. In the PC/XT the system address bus
leads to the bus slots.
- memory address bus: this is only Implemented on the motherboard, and represents the
multiplexed version of the system address bus. Via the memory address bus, the row and
column addresses are successively applied to the DRAM chips (see Chapter 19).
- X-address bus: this is separated from the system bus by buffers and drivers, and serves to
address the I/O units and the ROM BIOS on the motherboard. These may, for example, be
the registers of the interrupt controller, the timer or an on-board floppy controller. I/O ports
and BIOS extensions on expansion adapters are accessed by the system address bus.
Besides the four address buses there are four different data buses:
- local data bus: comprises the 16 or eight data signals from the 8086/88. Additionally, a bus
logic is necessary to distinguish byte and word accesses. External data buffers and data
latches separate the local data bus from the system data bus. In the PC the local data bus is
Figure 20.1: The PC/XT architecture. eight bits wide, and in the XT it is 16 bits wide.
- system data bus: Is the latched version of the local data bus in the PC/XT, and has eight bits
in the PC and 16 bits in the XT. One byte of the system data bus leads to the bus slots.
The central part is of course the processor. In a PC you will find an 8088 and in an XT the 8086.
For a short time, an XT/286 was also on the market with the newer and more powerful 80286, - memory data bus: this is only present on the motherboard, and establishes the connection
but it did not have any other modification. This XT/286 was soon replaced by the more power- between main memory and the system data bus. In the PC the memory data bus is eight bits
ful and modern AT. wide, and in the XT it Is 16 bits wide.
In addition to the 8086/88, a mathematical 8087 coprocessor can be Installed, or at least a socket - X-data bus: this is separated from the system bus by buffers and drivers and accesses I/O
for It may be present on the motherboard. An 8284 clock generator generates the system clock, units and the ROM BIOS on the motherboard. I/O ports and BIOS extensions on expansion
and in the first PC was supplied with a crystal signal of 14 318 180 Hz. The 8284 divides this adapters are accessed by the system data bus.
frequency by 3 to generate the effective system clock of 4.77 MHz. In more modern turbo- As already mentioned, the difference between the 8086 and the 8088 is the different width of
PC/XTs an oscillator with a higher frequency Is present, which enables a system clock of 8 MHz their data buses. The 8086 has a 16-bit data bus, but the 8088 only has an 8-bit one. Therefore,
or even 10 MHz. Further, an NEC CPU called V30 or V20 may be present Instead of the 8086/ in the PC the data bus on the motherboard for an access to main memory Is only eight bits wide,
88. The V30 and V20 are faster and have a slightly extended Instruction set compared to the but in an XT it is 16 bits wide. Besides the main memory on the motherboard, the CPU can also
8086/88, but are entirely downwards compatible with the Intel CPUs. The enhanced instruction access chips on the adapter cards In the bus slots. A more detailed explanation of the structure
set is of no use In a PC, as it can't be used for compatibility reasons. and functioning of the bus slots is given below. Here, I only want to mention that all essential
A further essential component of the computer Is the main memory. The processor is connected signals of the system bus lead to the bus slots, for example address, data and certain control
to It via the data, address and control buses. The CPU addresses the memory by means of the signals necessary to integrate the adapter cards into the PC system.
address bus, controls the data transfer with the control bus, and transfers the data via the data In this respect, it is also Important that in an XT the data bus Is guided into the bus slots with
bus. The necessary control signals are generated by the 8288 bus controller according to Instruc- only eight bits. In a 16-bit access via the complete 16-bit data bus of the 8086, an 8/16-converter
tions from the 8086/88. In order to carry out data exchange In as error-free and orderly a way must carry out the separation of one 16-bit quantity into two 8-bit quantities, or has to combine
as possible, the signals are buffered and amplified In various address and data buffer circuits. two 8-bit quantities into one 16-bit quantity. On the XT motherboard this is not necessary. The
In the PC/XT four different address buses can be distinguished: memory access is always carried out with the full width of 16 bits. On an XT this has, of course,
enormous consequences for accesses to on-board memory on the one hand and to memory on
- local address bus: comprises the 20 address signals from the 8086/88. External address an adapter card which is located in one of the bus slots on the other. Because of the limited 8-
buffers and address latches separate the local bus from the system address bus. bit width for accesses to memory on the adapter card, less data is transferred each time. Thus,
524 Chapter 20 The 8-bit PC/XT Architecture
the data transfer rate is smaller. If 16-bit values are to be transferred then these values must be of which may issue an interrupt request. In the PC these channels are called IRQ0-IRQ7. Table
separated Into two 8-bit values, or they must be combined from them. This takes some time, and 201 shows the assignment of Interrupt channel IRQx and the corresponding peripheral or
the access time for accessing the memory expansion adapter card Increases further compared to support chip. How the 8259A.works and how you may program it Is explained in Chapter 26.
the on-board memory. This is especially noticeable on a turbo XT. The ancestor PC only ran at
4.77 MHz; with this clock rate the bus slots and inserted adapter cards don't have any problem
in following the clock, but with the 10 MHz turbo clock this is not the case. In most cases, the Channel Interrupt Used by
slow bus slots are run at only half the turbo clock speed, that is, 5 MHz. An access to expansion NMI 02h parity, 8087 fault
memory on the adapter card is therefore slower In two ways: the 8/16-bit conversion lasts one 08h channel 0 of timer 8253
bus cycle, and halving the bus frequency decreases the transfer rate further. Therefore, you IRQ1
IRQ2 Oah reserved
should always choose to expand the on-board memory as long as the motherboard can accom- COM2
modate additional memory chips. That Is especially true for fast-clocked 1386 and 1486 comput- Och COM1
ers. Even in these PCs, the bus slots run at 8 MHz at most. What a shock for the proud owners IRQ5 Odh hard disk controller
of a 50 MHz computer! Some PCs have a dedicated memory slot besides the normal bus slots. Oeh floppy disk controller
Special memory adapter cards may be Inserted Into these memory slots to run at a higher IRQ7 Ofh LPT1
frequency than the bus slots.
Table 20.1: Hardware interrupt channels
To decode the processor's addresses In a memory access, the PC/XT includes an address multi-
plexer. Together with the memory buffer, It drives the memory chips on the motherboard. The Another support chip is also present, the 8253 programmable interval timer (PIT) (or timer •
check logic for memory parity Issues an NMI If the data doesn't conform to the additionally chip). It has three Individually programmable counters in all (see Table 20.2). Counter 0 Is used
held parity bit at the time of data reading. The parity check Is carried out on a byte basis, that in the PC/XT to update the internal system clock periodically. For this purpose, this counter is
Is, each individually addressable byte in main memory is assigned a parity bit. When you connected to IRQO of the PIC The hardware Interrupt issued in this way updates the internal
extend your storage, therefore, you not only have to Insert the «actual» memory chips, but also clock. This clock may be read or written using the DOS commands TIME and DATE. Counter
an additional chip for every eight memory chips. This nineth chip holds the corresponding parity 1 together with the DMA chip carries out the memory refresh, and counter 2 generates a tone
bits. Generally, the memory is divided into banks which must always be completely filled. How frequency for the speaker. In Chapter 27, details on the operation modes and programming of
many chips correspond to a bank depends on the number of data pins that one chip has for the PIT 8253 and speaker are given.
outputting or inputting data.
The older 64 kbit or 256 kbit chips usually have only one data pin. If memory is organized in Channel Used by
eight bits, as is case for a PC (that is, If It has an 8-bit data bus), then one bank is usually made
0 internal system clock (IRQO)
up of eight memory chips plus one chip for parity. The reason Is that In a read or write access, 1 memory refresh
one byte Is always transferred at a time, and therefore eight data connections are necessary. 2 speaker frequency
With a 16-bit organization, 18 chips (16 data chips plus two parity chips) are required. If you
don't fill a bank completely then the address multiplexer accesses «nothing» for one or more Table 20.2: PC/XT timer channel
bits, and the PC unavoidably crashes. However, do not mix these «expansion banks» with the
The keyboard is connected to the PC/XTs system bus by an 8255 programmable peripheral
banks of an interleaved memory organization. Because of the low PC/XT clock rates, an Inter-
Interface (PPI) (see Section 29.2). With the same chip, the BIOS can check the system configu-
leaved access to the main memory is unnecessary. Modern DRAMs can handle 10 MHz without
any problem; the banks need not be interleaved. An expansion bank only determines the small- ration, which is set by DIP switches. But newer turbo XTs, like the AT, have a real-time clock
est unit by which you may expand the memory. and a CMOS RAM, which holds all necessary configuration data. Thus, DIP switches are no
longer necessary. However, the PC/XT accesses the keyboard through the 8255. Also connected
The PC/XT also has a ROM, where code and data for the boot~up process and the PC's BIOS to the PPI are the speaker and the cassette logic for driving the cassette drive. Using the 8255,
routines are stored. The 8086/88 accesses the BIOS In ROM in the same way as it does with the speaker is either enabled or disconnected (the cassette drive is only of historical importance
main memory. Wait cycles during an access to main memory, ROM or the I/O address space
are generated by the wait state logic.
The whole PC is powered by a power supply that outputs voltages of -12 V, -5 V, 0 V, +5 V and
For supporting CPU and peripherals an 8259A Programmable Interrupt Controller (PIC) Is +12 V. The adapter cards in the bus slots are usually powered by corresponding contacts in the
present In the PC/XT. It manages external hardware Interrupts from peripherals such as the bus slots. Only «current eaters», for example FileCards with integrated hard disk drives, must
hard disk controller or timer chip. The 8259A has eight input channels connected to a chip, each be directly connected to the power supply.
The 8-bit PC/XT Architecture
As hardware comporients/ the support chips mentioned above are accessed via ports in the Besides the processor, there is another chip able to carry out memory and I/O accesses: the
I/O address space. Thus, the PC/XT uses I/O mapped input/output (I/O). Table 203 shows the 8237A DMA chip. It enables fast data transfer between main memory and I/O units such as the
port addresses of the most important hardware components in the PC/XT. floppy controller. Unlike the 8086/88, the 8237A cannot process data but only transfer it (at high
speed). The 8237A has four separately programmable transfer channels, used as indicated in
OOOh-OOfh DMA chip 8237A
020h-021h PIC 8259A Channel Used by
040h-043h PIT 8253 memory refresh
060h-063h PPi 8255 SDLC adapter
080h-083h DMA page register floppy disk controller
OaOh-Oafh NMi mask register hard disk controller
OeOh-Oefh reserved Table 20.4: PC/XT DMA channels
200h-20fh game adapter
210h-217h extension unit Channel 0 is reserved for memory refresh, and is activated periodically by the 8253A PIT to
220h-24fh reserved carry out a dummy access to memory. The memory chips are thus refreshed. The remaining
278h-27fh parallel printer three channels are available for data transfer. If, for example, the hard disk controller has read
2f0h-2f7h reserved one sector then it activates channel 3 of the 8237A and hands the data transfer over to it without
300h-31fh any intervention from the CPU. Besides the.8086/88 CPU, the 8237A Is another, independent
320h-32fh hard disk controller chip for carrying out bus cycles; thus it Is a busmaster - but with a limited function. The function,
378h-37fh parallel interface programming and transfer protocol of the DMA chip are described in Chapter 28. The CPU and
380h-38fh SDLC adapter DMA chip are located on the motherboard. The PC/XT bus doesn't support external busmasters
that may be located on an adapter card in a bus slot. It would be useful, for example, if the
monochrome adapter/parallel interface
3c0h-3cfh processor of a network adapter could access the main memory independently and without
3d0h-3dfh CGA intervention from the motherboard's CPU to deliver data to the network, or to transfer data
3e0h-3e7h reserved from the network into main memory. But In a PC/XT (and also In an AT), the adapter must
3f0h-3f7h issue a hardware interrupt to indicate the required data transfer to the CPU. Then the CPU
floppy disk controller
3f8h-3ffh COM1 carries out this transfer. With the advent of EISA and the microchannel, though, busmasters
may be located on an external adapter card. They are then able to control the EISA bus or the
microchannel on their own.
The registers of hardware components on adapter cards that are inserted into the bus slots (for
example, the UART on the serial interface adapter or the 6845 on the graphics adapter) are also 20.2.1'.8-bit Channels
accessed via port addresses. The PC/XT hands over all accesses to the I/O address space to the From Table 20.4 it is apparent that the 8237A mainly serves for a data transfer between main
bus slots in the same way as for accesses to memory on adapter cards. Note that any address,
memory and an I/O device in a bus slot. As the PC/XT slots only encompass eight bits, only
no matter whether in the memory or I/O address space, may only be assigned a single compon-
an 8-bit transfer takes place - the PC/XT has only 8-bit DMA channels. .
ent. If you assign the same I/O address to, for example, the UART registers of COM1 and
COM2, the chips disturb each other because they respond to the CPU's instructions (nearly) at Because of the 8088 processor the PC has only an 8-bit data bus and a 20-bit address bus, thus
the same time. Thus the interfaces don't work at all, or at least not correctly. a DMA page register with a width of only four bits is required In the PC (their I/O addresses
are listed in Table 20.5). The eight address bits from the 8237A plus eight address bits from the
DMA address latch plus four bits from the page register together form a 20-bit address for the
PC/XT address space. As an 8-bit chip, the 8237A Is perfectly designed for the 8088. Because
of the 8-bit data bus only 8-bit DMA channels are possible. During the course of a read transfer
To complete the picture, I will explain in advance the DMA architecture of the PC/XT (the pins the 8237A provides the memory address and activates the MEMR signal to read a data byte
and signals of the 8237A, as well as the terms «page register», etc. are detailed in Chapter 28). from memory onto the 8-bit data bus. Afterwards, it enables the IOW signal so the peripheral
Chapter 20 529
The 8-bit PC/XT Architecture
Port rage register
ZG22 Memory Refresh
87h channel 0
83h channel 1* )
81h channel 2 Channel 0 Is dedicated to memory refresh. For refresh purposes, counter 1 of the 8253/8254 PIT
82h channel 3 operates In mode 3 (square-wave generator) with a count value 18 (12h). Only the low-order
counter byte is loaded (RW1 = 0, RW0 = 1), that is, the PIT generates a square wave with a
*) simultaneously channel 0 frequency of 1.193 18 MHz/18 = 66 288 Hz. Counter 1 therefore Issues a DREQ every 15 us for a
dummy transfer, which refreshes the DRAMs. Channel 0 of the 8237A Is programmed In single
Table 20.5: I/O addresses of the PC/XT page registers
transfer mode with a read transfer for this purpose. During the course of the dummy cycle, the
DMA chip reads data from the memory onto the data bus, whereby the address buffers, address
can accept the data byte. A write transfer proceeds in exactly the opposite direction: the 8237A decoders and sense amplifiers in the memory chips are enabled. This automatically leads to the
outputs the memory address and activates the IOR signal to read out a data byte from the refresh of one memory cell row. But the data Is not fetched by a peripheral, as no device has
peripheral's I/O register onto the 8-bit data bus. Afterwards, it enables the MEMW signal so issued a DREQ0 and would be able to respond to DACKG, MEMR and IOW. The data there-
that the memory can fetch the data byte. fore disappears upon the next bus cycle. Because all these control signals lead Into the bus slots
and are thus also available for the adapter cards, the dummy cycle may also refresh the memory
Note that in the PC/XT, channels 0 and 1 are assigned the same physical page register. You on expansion adapters (for example, graphics adapters). Only adapters with their own refresh
access the same physical page register through the two different I/O addresses 87h and 83k In logic generate refresh cycles on their own.
the AT, the page register for channel 4 - which serves only for cascading - holds the page
address for the memory refresh. The PIT defines the refresh time by means of the periodic square-wave signal. The DMA chip
is used to generate the refresh address and the control signals for reading the main memory.
On the XT the situation becomes more ponderous and complex. Because of the 8086 the XT has The startup routine of the BIOS usually loads the count register with a suitable count value, and
a 16-bit data bus internally. As Is the case on the PC, the only DMA chip present Is designed sets channel 0 to single transfer mode and autoinitialization. Thus every request via channel 1
for 8-bit channels to 8-bit peripherals. Only 8-bit devices can be Installed into the XT bus slot of the PIT Issues exactly one transfer, increments the refresh address, and decrements the count
anyway, as the data bus only leads Into them with 8 bits. But because of the 16-bit data bus of register. If the count register reaches the value ffffh, then a TC occurs and channel 0 of the DMA
the 8086, memory Is organized as 16-bit storage. This means that on the low-order data bus byte controller Is automatically initialized. The refresh process starts from the beginning again.
D0-D7 only data bytes with an even address (and on the high-order data bus byte D8-D15 only
data bytes with an odd address) appear.
20.2.3 Memory-Memory Transfer
If the 8237A continuously counts up or down the source address during the course of a read
transfer, the Intended data byte appears on memory bus lines D0-D7 If an even address is On each of the channels a page register is allocated.- IBM, though, has implemented a common
supplied, and on lines D8-D15 If an odd address is output. Thus, an additional logic is required page register for channels 0 and 1 in the PC/XT. Therefore, memory-memory transfer Is only
to transfer the data byte with an odd address onto data bus lines DO-D7 so that an 8-bit possible within a single DMA page of 64 kbytes, as only channels 0 and 1 can carry out this
peripheral with an even I/O address can fetch It. At the same time, the memory only outputs transfer and have to share one register on the PC/XT. Note that channel 0 is further occupied
the data byte with an odd address without driving the lines D0-D7. In the same way as for a by the memory refresh. Before you issue a memory-memory transfer within the 64 kbyte page
peripheral with an odd I/O address, an additional logic Is required to transfer the data byte you must, therefore, disable the memory refresh. And don't forget to reprogram channel 0 after
with an even address onto lines D8-D15, so that the 8-bit peripheral can actually fetch It. A the transfer for the refresh again. Additionally, the refresh may only be interrupted for a short
similar problem arises with the 8086 if It attempts to read a data byte with an odd address from time period (less than 1 ms) by the memory-memory transfer, because otherwise the DRAM
or write a data byte with an odd address to the memory. The 8086 manages this by means of «forgets» data. Summarized, these are all requirements that make the memory-memory transfer
the control signal BHE which, together with the least significant address bit A0, disables the through the 8237A quite Inconvenient.
upper or lower half of the data bus.
The 8237A, on the other hand, continuously Increments or decrements the target address in
memory during the course of a write transfer, and the data byte from the 8-bit peripheral always 203 I/O Channel and Bus Slots
appears on the same data bus bits. With an even target address the data byte needs to appear
on the low-order part D0-D7 of the memory bus; with an odd address, however, It appears on Most of the PC/XT system bus leads Into the bus slots, all of which have the same structure.
the high-order part D8-D15 of the memory bus so that the memory can write the data byte Theoretically, it doesn't matter Into which slot you Insert your brand-new adapter card, but in
upon activation of the MEMW signal to the memory location Intended. practice some adjoining adapter cards may disturb each other, so you may have to insert one
adapter into another slot. During bus cycles that only refer to components on the motherboard,
530 The 8-bit PC/XT Architecture 531
the slots are usually cut off from the system bus to minimize the load on the driver circuits, and ALE (O)
to avoid any noise induced by the slots. Using the bus slot contacts, a PC/XT may be configured Terminal B28
very flexibly. The inserted adapter cards behave like components that have been integrated onto The address latch enable signal ALE is generated by the 8288 bus controller, and indicates that
the motherboard. Figure 20.2 shows the structure and contact assignment of a bus slot. valid address signals are present on the bus. Adapter cards may now decode these signals.
GND B p i
RESET DRV Hi
A1J • I/O CH CK
I| D 7
CLK is the system clock of the PC/XT. In the first PC, OSC was divided by 3 to generate the
+V H i
5 I 1 D6
! Q Hi
R2 I D 5 system clock with a frequency of 4.77 MHz.
D Q Hi
-12V H i j • D2 D7-D0 (I/O)
res ^ B 9| D I Terminals A2-A9
+ 2 I I IB1
GND ^P ° A 1 0 ( I I/O CH RDY These signals form an 8-bit data bus for data transfer from or to adapter cards.
EW H j • AEN
m t Ii A A18
iow DACK3-DACKQ (I)
iA17 Terminals B15, B17, B19, B26
DACK3 1 A16
DRQ3 ^p i|• A15 These four DMA acknowledge contacts are used for acknowledging DMA requests DRQ3 to
DACK1 ^fc •1 A14
DRQ1, and for the memory refresh (DACKO). Once a DRQx request has been acknowledged by
DRQ1 f/f i |1 A13
DACKO Hi m the corresponding DACKx, the data transfer via the corresponding DMA channel may take
CLK ^ p B 2 0 A2°i« I A11
IRQ7 H • I A10
IRQ6 Hk • I A9
IRQ5 Hi • 1 A8 DRQ3-DRQ1 (I)
!RQ4 Hi M
IRQ3 H • IA6 1*7 Terminals B6, B16, B18
DACK2 jjjji • I A5 With these DMA request contacts a peripheral on an adapter card indicates to the motherboard
C • I A4
ALE HE • I A3 system that it wants to transfer data via one of the three DMA channels. Channel 0 of the DMA
+5v HE M IA2 chip is connected on the motherboard with channel 1 of the timer chip to periodically carry out
osc HE aj I A1
GND BlB31 A31B 1A0 memory refresh. Therefore, DRQO doesn't lead to the bus slots. Lines DRQ3 to DRQ1 must be
held active until the corresponding DACK signal also becomes active; otherwise the DMA
request is ignored.
Figure 20.2: The PC/XT bus slot is kid out for an external 8-bit data bus, and has 62 contacts.
I/O CH CK (I)
The following sections discuss the contacts and the meaning of the supplied or accepted signals. Terminal Al
With this I/O channel check contact the adapter cards flag errors to the motherboard to indicate,
for example, a parity error on a memory expansion board, or a general error on an adapter card.
An active I/O CH CK signal (that is, a low level signal) issues an NMI corresponding to inter-
These contacts form the 20-bit address bus of the PC/XT, and either indicate the state of the rupt 2 in the PC/XT.
8086/88 address signals directly, or are generated by DMA address logic.
I/O CH RDY (I)
AEN (O) Terminal A10
Terminal All The I/O channel ready contact receives the ready signal from addressed units on an adapter
If the address enable signal at this contact is active the DMA controller is controlling the bus for card. If I/O CH RDY is low, the processor or DMA chip extends the bus cycle by inserting one
a data transfer. The processor and other peripherals are cut off from the bus. or more wait states.
Chapter 20 The 8-bit PC/XT Architecture 533
Terminal B14 This contact supplies a reset signal to reset the whole system at power-up or during a hardware
The I/O read signal at this contact indicates that the processor or the DMA controller wants to
read data, and the addressed peripheral should supply data onto the data bus. An active IOR T/C.(O)
corresponds to an active IORC of the 8288 bus controller, which indicates a read access to the
I/O address space.
If the counter of a DMA channel has reached its final value, the DMA transfer is complete and
the terminal count terminal T/C supplies a pulse to Indicate the end of the DMA cycle.
The I/O write signal at this contact indicates that the processor or the DMA controller wants
to write data, and that the addressed peripheral should take the data off the data bus. An active
IOW corresponds to the active IOWC of the 8288 bus controller, which indicates a write access
to the I/O address space.
Terminals B4, B21-B25
These contacts transmit the hardware interrupt requests corresponding to channels IRQ2-IRQ7
to the PIC on the motherboard. For example, the hard disk controller activates IRQ5 after
reading data from the disk into an internal buffer. The IRQO and IRQ1 lines are assigned
channel 0 of the timer chip and the keyboard, respectively. Therefore, they do not need to be
integrated into the bus slots.
By an active memory read signal MEMR (that is, a low level signal), the motherboard tells the
adapter cards that the processor or DMA controller wants to read data from main memory. An
active MEMR corresponds to the active MEDC of the 8288 bus controller, which indicates a
read access to memory address space.
By an active memory write signal MEMW (that Is, a low level signal), the motherboard tells the
adapter cards that the processor or DMA controller wants to write data Into main memory. An
active MEMW corresponds to the active METC of the 8288 bus controller, which indicates a
write access to memory address space.
This contact supplies the oscillator's clock signal of 14 318 180 Hz,
RESET DRV (O)
There are no major differences between a PC and an AT, except that the PC with its
processor only has an 8-bit data bus internally on the motherboard. On the other hand, the XT
data bus internally comprises 16 bits. But in both PCs only 8 bits lead into the bus slots. Also,
the internal structure is the same as far as the number and connections of the support chips
8237A, 8259A, 8253, etc. are concerned. Compared to the XT, the AT is a significant advance (AT
actually means advanced technology), and its architecture is quite different from that of the PC/
XT. The following sections briefly present these main differences.
21 o1 Th @Hi a T
Figure 21.1 gives a block diagram of an AT. In most of today's ATs or AT-compatibles, several
chips are integrated into one single chip, but the functional groups remain the same. Therefore,
you may not find any of the chips shown in Figure 21.1. If you look at the data sheet of your
motherboard, though, you will recognize that in chip X the functions of, for example, the two
Interrupt controllers, etc. have been Integrated. It is the aim of Figure 21.1 to represent the
functional structure of the AT as it was originally realized by individual chips, before the
development of large-scale integration technology.
Here, the central part Is also the processor. In the AT you will find the 80286, with 24 address
lines. Thus, the AT may have 16 Mbytes of memory at most. Further, with the 80286 the AT can
operate In protected mode to run with advanced operating systems like OS/2 or UNIX. The A20
address line Is controlled by the 8042 keyboard controller. It can be locked so that the 80286 in
real mode strictly addresses only the lowest 1 Mbyte of memory, and carries out a wrap-around
like the 8086/88. Unfortunately, some DOS-internal functions dating from the PC's Stone Age
rely on this wrap-around, but compatibility with the Stone Age may be, in my opinion, a matter
In addition to the 80286, the 80287 mathematical coprocessor can be installed. Normally, there
is at least one socket for it present on the motherboard. The system clock Is supplied by the
,82284 clock generator, which Is the successor of the PC/XT's 8284. The first AT ran with an
effective processor clock of 6 MHz, so that the clock generator had to supply twice this fre-
quency (12 MHz). The processor clock frequency was Increased up to a giant 8 MHz with the
AT03 model. Meanwhile, there are 80286 CPUs on the market (Harris or AMD, for example)
which run with an effective processor clock of up to 25 MHz. But the support chips and the AT
bus are nowhere near this frequency, so wait states are often required.
A further component of the AT (as In every computer) Is the main memory. The processor is
connected to It by means of data, address and control buses, as is the case In the PC/XT, The
CPU addresses the memory via a 24-bit address bus, controls the data transfer with the control
bus, and transfers the data via a 16-bit data bus. The necessary control signals are generated by
the 82288 bus controller, which Is the successor of the PC/XT's 8288, and which Is dedicated to
the 80286. To carry out the data exchange in as error-free and orderly a manner as possible, the
signals are buffered and amplified In various address and data buffers.
Chapter 21 16-bit AT Architecture 537
In the AT and ail Its successors up to the EISA PC, five different address buses can be An 8/16-bit converter carries out the necessary division of 16-bit quantities Into two 8-bit quan-
tities, and vice versa. Like the PC/XT bus, the AT or ISA bus also supports only the CPU and
- Local address bus: comprises the 24 address signals from the 80286. External address buffers the DMA chips on the motherboard as busmasters which can arbitrate directly, without using
and address latches separate the local bus from the system address bus. a DMA channel. On external adapter cards In the bus slots, no busmaster may operate and
control the AT bus. The arbitration Is carried out only indirectly, via a DMA channel, and not
- System address bus: as Is the case for the PC/XT, this bus Is the main address bus and directly by a master request. It was not until EISA and the microchannel that such busmasters
represents the latched version of bits A0 to A19 of the local address bus. Thus the system could also operate from peripheral adapter cards.
address bus in the AT is a 20-bit address bus. The signal for latching the address signals on
The first AT model ran at a processor clock of only 6 MHz. The bus slots and the Inserted
the local address bus Into the latches for the system address bus is ALE. In the AT, the
system address bus Is led to the bus slots as A0 to A19. extension adapters have no problem In following the clock, but the situation is different with
a turbo clock of, for example, 16 MHz. The inert bus slots then usually run with only half the
- Memory address bus: this address bus is only present on the motherboard, and represents turbo clock, that is, 8 MHz. Problems mainly arise with «half»-turbo clocks of 10 MHz or 12.5
the multiplexed version of the system address bus. Via the memory address bus, the row MHz. In most cases, the bus slots also run at this frequency, but only very high quality adapters
and column addresses are sucesslvely applied to the DRAM chips (see Chapter 5). support 10 MHz or even 12.5 MHz. The consequence is frequent system crashes, especially If the
PC has been running for a long time and the warmer chips of the peripheral adapters can no
- X-address bus: this bus is separated from the system bus by buffers and drivers, and serves longer follow the clock. Meanwhile, the ISA standard (which corresponds to the AT bus In most
to address the I/O units and the ROM BIOS on the motherboard. These may, for example, respects) requires a clock frequency for the bus slots of 8.33 MHz at most. Even adapter cards
be registers of the interrupt controllers, the timer or an on-board floppy controller. On the that could run more quickly are supplied in ATs which strictly Implement this standard, with
other hand, I/O ports and ROM BIOS on extension adapters are accessed by the system only 8.33 MHz.
Unlike the bus slots, the main memory on the motherboard runs with the full processor clock,
- L-address bus: this bus comprises the seven hlgh-order (L = large) and non-latched address even if this is 25 MHz. The main memory controller may advise the CPU at most to insert wait
bits A17-A23 of the local address bus. It leads Into the AT slots as LA17-LA23. cycles if the RAM chips are too slow. But advanced memory concepts such as paging or inter-
leaving (see Chapter 19) shorten the memory access times. Thus, an access to memory expan-
Besides these, there are four different data buses Implemented in the AT: sions on adapter cards is much slower than an access to the on-board memory (remember this
if you want to extend your memory). You should always prefer an extension of the on-board
- Local data bus: comprises the 16 data signals from the 80286. Additionally, a bus logic Is memory as long as the motherboard can integrate more chips. This applies particularly to very
necessary to distinguish byte and word accesses. External data buffers and data latches
fast-clocked 1386 and i486 models. Some PCs have a special memory slot besides the normal bus
separate the local data bus from the system data bus.
slots into which special memory adapter cards may be Inserted, largely running with the full
- System data bus: this is the latched version of the local data bus in the AT, and it Is 16 bits CPU clock so that no delays occur compared to the on-board memory.
wide. The system data bus leads into the bus slots. To decode the processor's addresses In a memory access/the AT also has an address multi-
plexer. Together with the memory buffer, it drives the memory chips on the motherboard. The
- Memory data bus: this data bus Is only present on the motherboard, and establishes the check logic for memory parity issues an NMI if the data does not conform with the additionally
connection between main memory and the system data bus.
held parity bit at the time of data reading. Also, additional memory on an adapter card may
- X-data bus: this bus Is separated from the system bus by buffers and drivers, and accesses issue this memory parity error. Other sources for an NMI in an AT may be errors on an adapter
I/O units and the ROM BIOS on the motherboard. I/O ports and BIOS extensions on exten- card, indicated by I/OCHCK. In the PC/XT the memory refresh was carried out only via
sion adapters are accessed by the system data bus. channel 0 of the DMA chip. This channel is activated periodically by channel 1 of the timer chip.
In the AT, the refresh interval Is further defined by channel 1 of the timer chip, but the refresh
Besides the main memory on the motherboard the CPU can also access chips on the adapter Itself Is usually carried out by a dedicated refresh logic driven by the timer channel 1. Thus,
cards in the bus slots. A more detailed explanation of the construction and function of the channel 0 would normally be available, but certain manufacturers do use it further for refresh.
AT slots Is given below. Unlike the XT, the data bus leads Into the bus slots with the full width For this purpose, the lines DACKO and REF lead into the AT slots (see below).
of 16 bits. The additional control and data signals are located In a new slot section with 38 Like the PC/XT, the AT also has a ROM for holding boot, code and data and the AT's BIOS
contacts. However, older XT adapters with an 8-bit data bus can also be Inserted Into the AT routines. Unlike the 8086/88, in the PC/XT the ATs 80286 may also be operated In protected
slots by means of the two newr control signals MEM CS16 and I/O CS16. The bus logic auto- mode. These two operation modes are completely Incompatible, which Is, unfortunately, bad
matically recognizes whether a 16-bit AT or an 8-bit PC/XT adapter Is present In the bus slot. news for the BIOS: BIOS routines in real mode cannot be used by the 80286 In protected mode.
Chapter 21 16-bit AT Architecture 539
Only the original AT, or other manufacturers' ATs, incorporate an advanced BIOS, which holds
the corresponding routines for protected mode. The advanced BIOS is located in the address Channel Used by
space just below 16 Mbytes. If you buy a freely available version of OS/2 then usually the disks 0 internal system clock (IRQO)
not only hold the operating system, but also the BIOS for protected mode. Thus, during the 1 memory refresh
OS/2 boot process not only the operating system is loaded, but also the BIOS for protected 2 speaker frequency
mode. The BIOS routines present in ROM are only used for booting as long as the 80286 is not
Table 21.2: AT timer channels
switched to protected mode.
Unlike the PC/XT, the more modern and programmable keyboard of the AT is connected by
For supporting the CPU and peripherals, the AT also has several support chips. Instead of one
a keyboard controller to the AT system bus. In the PC/XT, an 8255 programmable peripheral
8259A programmable interrupt controller (PIC), two are present in an AT: one master PIC and
interface (PPI) was included for this purpose. The functions of the AT keyboard and its succes-
one slave PIC. The 1NTRPT output of the slave is connected to the master's IR2 input, thus the
sor, the MF II keyboard, may be programmed (details are discussed in Section 34.1).
two PICs are cascaded. Therefore, 15 instead of eight IRQ levels are available in the AT. Table
21.1 shows the assignment of the interrupt channels IRQx to the various peripherals or support Instead of the DIP switches you will find a CMOS RAM in the AT. The CMOS RAM holds the
chips. Besides the IRQs, the NMI also is listed as a hardware interrupt, but the NMI directly system configuration and supplies it at power-up. EISA microchannel and PCI further extend
influences the CPU, and no 8259A PIC is used for this purpose. Chapter 26 describes how the this concept: here you may even set up the DMA and IRQ channels used by EISA or microchannel
8259A operates and how it may be programmed. adapters by means of an interactive program. These setups are stored in an extended CMOS
RAM, and no jumpers need to be altered (after deinstalling all adapters to expose the
motherboard .. .)• Together with the CMOS RAM, a real-time clock is integrated which periodi-
Channel Interrupt Used by cally updates date and time, even if the PC is switched off. The two DOS commands DATE and
NMI 02h parity, error on extension card, memory refresh TIME are no longer necessary at power-up for setting the current date and time. They are
IRQO 08h channel 0 of timer 8253
mainly used for checking these values.
IRQ2 Oah cascade from slave PIC The whole AT is powered in the same way as the PC/XT, by means of a power supply that
1RQ3 Obh COM2
supplies voltages of -12 V, -5 V, 0 V, +5 V and +12 V. In the AT, too, the adapter cards in the
IRQS Odh bus slots are usually powered by corresponding contacts in the bus slots. Only «current eaters»
IRQ6 Oeh floppy disk controller like FileCards with Integrated hard disk drives must be directly connected to the power supply.
IRQ7 Ofh LPT1 As hardware components, the support chips mentioned are accessed via ports in the I/O ad-
1RQ8 Ofh real time clock dress space. Thus, the AT as well as the PC/XT uses I/O mapped input/output (I/O). Table 213
IRQ9 Ofh redirection to IRQ2 shows the port addresses of the most important hardware components In the AT.
IRQ10 Ofh reserved
IRQ11 Ofh reserved Besides the 80286, ATs often also Include an 1386 or i486 processor, seldom a Pentium. With
IRQ12 Ofh reserved
these processors, the on-board data and address buses (the memory address bus, for example)
Ofh coprocessor 80287
IRQ14 Ofh are usually 32 or 64 bits wide, but only 24 address lines and 16 data lines lead Into the bus slots,
hard disk controller
IRQ15 Ofh reserved as is the case for an original AT. The conversion to 32-bit or 64-bit quantities is carried out by
special swappers and buffers. In principle, the architecture of these 1386, i486 or Pentium ATs
Table 21.1: AT hardware interrupt channels therefore doesn't differ from that of a conventional AT. Only the internal address and data
buses may be adapted accordingly. The AT or ISA bus (as it is called in its strictly defined form)
is very popular as an additional standard expansion bus for VLB and PCI systems. Thus, modern
Besides the PICs, a 8253/8254 programmable interval timer (PIT), or for short, timer chip, is
and very powerful graphics and drive host adapters can be Integrated into the system. On the
present. The 8254 is the more developed successor to the 8253 but has the same function set. It
other hand, cheap and readily available ISA adapters (for example, parallel and serial interfaces,
Includes three individually programmable counters (see Table 21.2). Counter 0 is used for pe-
games adapters, etc.) can also be used.
riodically updating the internal system clock, as is the case in the PC/XT, and is connected to
the IRQO of the master PIC. The hardware interrupt issued thus updates the internal clock,
which can be checked by means of the DOS commands TIME and DATE. Timer 1 periodically
activates the memory refresh, which is Indicated by an active signal REF in the AT bus slot.
212 DIVSA Architecture
Counter 2 generates the tone frequency for the speaker. In Chapter 27 some details about the
As already done for the PC/XT, I will also discuss the AT's DMA subsystem In connection with
operation modes and the programming of the 8253 PIT and the speaker are given.
the bus architecture. DMA basics are detailed in Chapter 28.
Chapter 21 16-bit AT Architecture 541
Channel Used by Width
OOOh-OOfh 1st DMA chip 8237A reserved (memory refresh) 8 bits
02Gh-021h 1st PiC 8259A SDLC adapter/tape drive 8 bits
040h-043h PIT 8253 floppy disk controller 8 bits
060h-063h keyboard controller 8042 reserved 8 bits
070h-071h real-time clock cascade DMA1-»DMA2
080h-083h DMA page register reserved 16 bits
OaOh-Oafh 2nd PIC 8259A reserved 16 bits
OcOh-Ocfh 2nd DMA chip 8237A reserved 16 bits
OfOh-Offh reserved for coprocessor 80287 Table 21.4: AT DMA channels
200h~20fh game adapter
but by means of programmed I/O, because the 80286 runs much faster than an 8086/88 and the
220h-26fh available DMA chips. But the 16-bit hard disk controllers are sometimes served by one of the DMA
278h-27fh 2nd parallel interface channels 5-7. Because of Its 16 Mbyte address space, the AT has an 8-bit page register (PC/XT:
2b0h-2dfh EGA 4-bit page register) to generate a 24-bit address together with the two 8-bit addresses from the
2f8h-2ffh COM2 8237A and the DMA address latch.
300h-31fh prototype adapter
320h-32fh available The functioning of the AT DMA is, in principle, the same as In the PC/XT; however, 24-bit
378h-37fh 1st parallel interface addresses can be generated, and 16-bit channels are available. During the course of a read
380h-38fh SDLC adapter
3a0h-3afh reserved transfer the 8237A provides the memory address and activates the MEMR signal to read a data
3b0h-3bfh monochrome adapter/parallel interface word from memory onto the 16-bit data bus. Afterwards, it enables the IOW signal so the
3c0h-3cfh EGA peripheral can accept one (8-bit channel) or two (16-bit channel) data bytes. A write transfer
3d0h-3dfh CGA proceeds In exactly the opposite direction: the 8237A outputs the memory address and activates
3e0h-3e7h reserved the IOR signal to read out one or two data bytes from the peripheral's I/O register onto the 16-
3f0h-3f7h floppy disk controller bit data bus. Afterwards, it enables the MEMW signal so that the memory can fetch the data
byte(s). For that purpose, the system controller must be able to recognize whether an 8-bit or
Table 213: AT port addresses 16-bit DMA channel is used and generate signals according to BHE and A0.
With an 80286 the data from the 8-bit peripheral must be put onto or taken off the low-order
21.2.1 8-bit and 16-bit Channels or high-order part of the data bus (depending on the storage address). The situation becomes
even more ponderous with PCs that have an 1386 or I486 chip (or even a Pentium). They usually
implement main memory with a 32-bit or 64-bit organization. Here, according to the storage
For memory and I/O accesses without any intervention from the CPU, the AT has two 8237A
address, one of the now four or eight data bus bytes Is responsible for fetching or providing the
° „ A ° h l p S W h k h a r e c a s c a d e d so that seven DMA channels are available. For that purpose an
8-bit data from or to the peripheral. An additional logic that decodes the two or three least-
8237A is operated as a master, and is connected to the CPU. The HRQ and HLDA terminals of
the slave DMA are connected to channel 0 of the master DMA so that slave channels 0-3 have
significant address bits from the DMA chip can easily carry out the transfer.
a higher priority than the three remaining master DMA channels. Channels 0-3 of the master The three free channels of the new second DMA chip in the AT are already designed for serving
are usually called the AT's DMA channels 4-7. The four slave DMA channels serve 8-bit periph- 16-bit peripherals. This can be, for example, a 16-bit controller for hard disk drives. Although
erals, and the other channels 5-7 are implemented for 16-bit devices. The use of the separately the 823 7A is only an 8-bit chip, it can carry out a 16-bit or even a 32-bit transfer between
programmable transfer channels is listed in Table 21.4. peripherals and main memory. How the DMA controller carries out this, at first glance impos-
sible, job is described below.
Channel 0 is reserved for memory refresh, although in most ATs their own refresh logic is
present for the refresh process. The remaining three 8-bit channels are available for an 8-bit data The descriptions up to now have shown that the internal temporary 8-bit register of the 8237A
ransfer. Usually, the DMA chips run with a much lower clock frequency than the CPU The doesn't play any role in data transfer between peripherals and memory (It is only important for
frequency is typically about 5 MHz (even in cases where the CPU is clocked with 25 MHz). memory-memory transfers). The transfer target receives the data from the source directly via
Some ATs enable a DMA frequency of up to 7 MHz, not very exciting compared to the CPU the data bus. The only problem left Is that the 8237A address register provides byte addresses
dock. Thus it is not surprising that most AT hard disk controllers do not transfer data by DMA and no word addresses. But if the coupling of address bits AQ-A15 from the 8237A and the
Chapter 21 543
16-bit AT Architecture
DMA address latch to the system address bus is shifted by 1, which corresponds to a multi-
plication by a factor of 2, and address bit AO of the system bus is always set to 0, then the 8237A Port Page register
will generate word addresses. This also applies to the 16-bit DMA channels in the AT. AO is 87h channel 0
always equal to 0 here. The 8237A and the DMA address latch provide address bits A1-A16, 83h channel 1
and the DMA page register supplies address bits A17-A23. Therefore, one DMA page of the 81 h channel 2
16-bit channels now has 128 kbytes instead of 64 kbytes and the data transfer is carried out in 82h channel 3
16-bit sections. Transferring the data bytes onto the low-order or high-order part of the data bus 8fh channel 4 (refi
8bh channel 5
according to an even or an odd address is unnecessary.
89h channel 6
8ah channel 7
Only on systems with a 32-bit data bus do the words need to be transferred by an additional
16/32-bit logic onto the low-order or high-order data bus word, according to whether their Table 215: I/O addresses of the AT page registers
addresses represent double-word boundaries. This is carried out analogously to the transfer of
8-bit quantities on the XT,
Thus the master DMA chip Is not available for a memory-memory transfer. Only the slave
For a data transfer between memory and peripherals (the main job of DMA), it is insignificant, DMA remains, but here also the problems are nearly Insurmountable. On the AT and compatibles
therefore, as to whether an 8- or 32-bit chip is present. The shifting of the address bits supplied the memory refresh is no longer carried out by a DMA cycle, so channel 0 would then be free
by the 8237A by one or two places leads to 16- or even 32-bit addresses. Unfortunately, the for a memory-memory transfer.
transfer can then only start and end at word or double-word boundaries, and the transferred
quantities are limited to multiples of 16 or 32 bits. If a peripheral supplies, for example, 513 But for the memory-memory transfer, the internal temporary register of the 8237A is also
bytes, this may give rise to some difficulties. EISA therefore implements a 32-bit DMA controller involved - and this Is only eight bits wide. Thus, 16-bit data on the 16-bit data bus cannot be
which also runs somewhat faster than 4.77 MHz. temporarily stored; for this a 16-bit DMA chip would be required. If we restrict all memory-
memory transfers to 8-bit transfers, then the data byte can be temporarily stored, but depending
upon an even or odd source address, the byte appears on the low- or high-order part of the data
lefresh bus. After temporary storage the data byte must be output by the 8237A, again depending on
art even or odd target address onto the low- or high-order part of the data bus. This is possible
Channel 0 is dedicated to memory refresh. In modern ATs and other computers with intelligent in principle by using a corresponding external logic, but Is quite complicated and expensive.
DRAM controllers, the memory refresh need not be carried out by a DMA cycle; instead, the Therefore, the AT and 1386/1486 motherboards generally don't implement •memory-memory
DRAM controller or even the DRAM chips themselves do this on receipt of a trigger signal from transfer. It could be worse, because the REP MOVS instruction moves data on an 80286 in 16-
the PIT. The PIT defines the refresh time by means of the periodic square-wave signal. The bit units and on an 1386/i486 even in 32-bit units very quickly. The much higher CPU clock rate
DMA chip Is used to generate the refresh address and the control signals for reading the main additionally enhances the effect. IBM has probably implemented the second DMA chip only
memory (if the memory controller or even the DRAM chips themselves are doing that). Modern because some peripherals might request a 16-bit DMA channel for data transfer. Note that the
memory controllers handle these processes on their own. Channel 0 of the 8237A is no longer XT carries out the transfer of sector data from or to the hard disk (originally a job of the DMA)
required for memory refresh. On such motherboards you would therefore be able to use channel via a DMA channel but the AT employs PIO for this. Only EISA and PS/2 still use DMA for
0 together with channel 1 for a memory-memory transfer. However, the AT architecture thwarts this job.
your plans again.
213 I/O Channel and Bus Slots
21.23 Memory-Memory Transfers
Similar to the PC/XT, here also a main part of the system bus leads into the bus slots. The AT
On each of the channels a page register is allocated, whose addresses are listed in Table 21.5. bus slots incorporate 36 new contacts, compared to the XT bus slot, to Integrate the additional
IBM, though, has Implemented a common page register for channels 0 and 1 in the PC/XT, as address, data, DMA and IRQ lines. Thus, 98 contacts are present In total The additional AT
already mentioned. Therefore, memory-memory transfer was only possible within a single contacts are included In a separate section, which is always arranged Immediately behind the
DMA page of 64 kbytes, as only channels 0 and 1 can carry out this transfer, and they have to slot with the conventional XT contacts. Usually, each AT or AT-compatible has several pure XT
share one register on the PC/XT. and several pure AT slots with corresponding contacts. Also, it is' completely insignificant (in
On the AT also, no memory-memory transfer is possible for the following reasons: DMA chan- theory) into which slot you insert an adapter card in the AT. You only have to ensure that you
nel 4, corresponding to the master's channel 0, is blocked by cascading from the slave DMA. really do insert an AT adapter (discernible by the additional contacts on the bottom) into an AT
slot and not into an XT slot. Figure 21.2 shows the structure and assignment of an AT bus slot.
544 16-bit AT Architecture 545
In the following sections only the new contacts and the meaning of the supplied or accepted
signals are presented. The assignment of the XT part of an AT slot (with the exception of the
OWS and REF contacts) is given in Section 203. OWS has been added instead of the reserved
XT bus contact B8 to service fast peripherals without wait cycles. Because the AT bus and
ISA can support busmasters on external adapters up to a certain point, all connections are
bidirectional To show the data and signal flow more precisely, I have assumed for the transfer
directions indicated that the CPU (or another device on the motherboard) represents the current
busmaster. Anyway, there are virtually no AT adapters with a busmaster device.
OWS (I; PC/XT slot)
The signal from a peripheral indicates that the unit is running quickly enough to be serviced
without wait cycles.
DACKO, DACK5-DACK7 (O)
Terminals D8, D10, D12, D14
These four DMA acknowledge contacts are used for the acknowledgement of the DMA requests
DRQO and DRQ5-DRQ7. Compared to the XT, DACKO has been replaced by REFR because the
memory refresh is carried out via REFR in the AT.
DRQO, DRQ5-DRQ7 (I)
Terminals D9, Dll, D13, D15
With these DMA request contacts a peripheral on an adapter card may tell the system on the
motherboard that it wants to transfer data via a DMA channel. Channel 0 of the first DMA chip
is designed for an 8-bit transfer, the three additional channels 5~7f on the other hand, for 16-bit
transfers. Channel 4 is used for cascading the two DMA chips.
I/O CS16 (I)
The signal at this contact has a similar meaning to MEM CS16. I/OCS16 applies to I/O ports
and not memory addresses.
IRQ10-IRQ12, IRQ14, IRQ15 CD
These contacts transmit the hardware interrupt requests according to the channels IRQ10-IRQ12
and IRQ14, IRQ15 to the slave PIC on the motherboard. IRQ13 in the AT is reserved for the
80287 coprocessor, which is located on the motherboard. Therefore, this signal doesn't lead into
the bus slots.
Figure 212: The AT bus slot comprises a separate section with 38 new contacts for the extension up to 16 bits.
The large address contacts supply the seven high-order bits of the CPU address bus. Compared
to the normal address contacts A0-A19 of the conventional XT bus, the signals at these contacts
546 Chapter 21 547
16-bit AT Architecture
are valid much earlier, and may be decoded half a bus clock cycle in advance of the address bits
A0-A19. Note that LA17-LA19 and A17-A19 overlap in their meaning. This is necessary be-
cause the signals on A17-A19 are latched and therefore delayed. But for a return of the signals
MEM CS16 and I/O CS16 in time, it is required that address signals A17-A19 are also available If data is output onto or read from the high-byte SD8-SD15 of the data bus by the CPU or
very early. another chip, then the system bus high enable signal SBHE is active and has a low level
MASTER (I) SD8-SD15 (I/O)
Terminal D17 Terminal C11-C18
These eight system data contacts form the high-order byte of the 16-bit address bus in the AT.
The signal at this contact serves for bus arbitration. Thus, busmasters on adapter cards have the
opportunity to control the system bus. For this purpose they must activate MASTER (that is,
supply a low level signal). In the AT the integration of a busmaster is carried out by an assigned SMEMR (O; PC/XT slot)
DMA channel. Via this channel the busmaster outputs a DRQx signal. The DMA chip cuts the Terminal B12
CPU off the bus using HRQ and HLDA, and activates the DACKx assigned to the busmaster. An active S-mernory read signal SMEMR (that is, low level) signal indicates that the processor
The busmaster responds with an active MASTER signal and thus takes over control of the bus. or DMA controller wants to read data from memory with an address between OM and 1M. On
the other hand, the MEMR signal in the AT extension applies to the address space between OM
MEM CS16 (I) and 16M. With an address above 1M, SMEMR is inactive (that is, high).
SMEMW CO; PC/XT slot)
A peripheral adapter card must return a valid MEM CS16 signal in time if it wants to be ser- Terminal Bll
viced with a data bus width of 16 bits. Using MEMCS16, therefore, 8-bit and 16-bit adapters
may be inserted into an AT slot without any problem. The AT bus logic recognizes whether the An active memory write signal MEMW (that is, a low level signal) indicates that the processor
adapter must be accessed with 8- or 16-bits. or DMA controller wants to write data into memory with an address between OM and 1M. On
the other hand, the MEMW signal in the AT extension only applies to the address space be-
tween OM and 1M. With an address above 1M, SMEMW is inactive (that is, high),
An active memory read signal MEMR (that is, a low level) signal indicates that the processor 214 AT Bus Frequencies and the ISA Bys
or DMA controller wants to read data from memory with an address between OM and 16M. On
the other hand, the SMEMR signal in the XT slot only applies to the address space between OM The concept and architecture of the AT have been very successful during the past few years.
and 1M. With an address below 1M, MEMR is inactive (that is, high). This makes it worse that no strictly defined standard for the bus system has actually existed.
That became especially clear as the clock frequencies were increased more and more, and there-
MEMW (O) fore problems with the signal timing became heavier. IBM never specified the AT bus in a clear
Terminal CIO and unambiguous way. All standards in this field are therefore rather woolly. For IBM that was
not very serious, because Big Blue went over to the PS/2 series before its AT products exceeded
An active memory write signal MEMW (that is, a low level signal) indicates that the processor the 8 MHz barrier. It was only after this barrier was broken that users of AT compatibles had
or DMA controller wants to write data into memory with an address between OM and 16M. On to deal with bus problems. I have already mentioned that the bus slots run at 8.33 MHz at most,
the other hand, the SMEMW signal in the XT slot only applies to the address space between OM even in a 25 MHz AT. Before the AT manufacturers agreed to this strict definition, every manu-
and 1M. With an address below 1M, MEMW is inactive (that is, high). facturer chose their own standard - not very pleasant for AT users. The consequence was that
in many older turbo-ATs the bus as well as the CPU ran at 10 MHz or even 12.5 MHz. Such
REF (O; PC/XT slot) frequencies are only handled by a very few adapter cards. They cannot follow the clock, espe-
Terminal B19 cially if the chips get warm after a certain time. A warmer chip usually has a lower operating
speed, even if only by a few nanoseconds. This is enough, though, and the computer crashes.
The refresh signal at this contact indicates that the memory refresh on the motherboard is in Things get even more confusing if we remember that the 8237A DMA chips and the 8259A PICs
progress. Thus, peripherals may also carry out a memory refresh simultaneously with the r
^n at 5 MHz at most. Even the faster types only reach 8 MHz. Moreover, the timer chip is
motherboard. operated at 1.193 180 MHz, namely lk of the PC/XT base clock of 4.77 MHz, even in a 50 MHz