0% found this document useful (0 votes)
119 views9 pages

Introduction To The I/O Buses Technical and Historical Background For The I/O Buses

Download as doc, pdf, or txt
Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1/ 9

Motherboard

Introduction to the I/O buses Technical and historical background for the I/O buses

Introduction to the I/O buses


We have seen before, that the PC's buses are the fundamental data "highways" on the system board. The "first" bus is the system bus, which connects the CPU with RAM. In older designs it was a local bus. In newer designs this bus is called the front side bus (FSB). The typical local bus has a speed and width depending on the type CPU installed on the

motherboard. Typically, the system bus will be 64 bits wide and run at 66, 100 or 133 MHz. These high speeds create electrical noises and other problems. Therefore, the speed must be reduced for data reaching the expansion cards and other more peripheral components. Very few expansion cards can operate at more than 40 MHz. Then the electronics shut down. The chips can just not react faster. Therefore, the PC has additional buses.

Originally only one bus


However, the first PCs had only one bus, which was common for the CPU, RAM and I/O components:

The older first and second generation CPUs ran at relatively low clock frequencies, and all system components could keep up with those speeds.

RAM on adapters
Among other things, that allowed additional RAM to be installed in expansion slots in the PC, by installing an adapter in a vacant expansion slot. An adapter, where RAM was mounted:

This setup would be unthinkable today. However it is truely a local bus. All units are united on one bus using the same clock. First in 1987, Compaq figured out how to separate system bus from I/O bus, so they could run at different speeds. This multi-bus architecture has been industry standard ever since. Modern PCs also have more than one I/O bus.

What does an I/O bus do?

[top]

I/O buses connect the CPU to all other components, except RAM. Data are moved on the buses from one component to another, and data from other components to the CPU and RAM. The I/O buses differ from the system bus in speed. Their speed will always be lower than the system bus speed. Over the years, different I/O buses have been developed. On modern PCs, you will usually find four buses: The ISA bus, which is an old low speed bus, soon to be excluded from the PC design. The PCI bus, which is a new high speed bus. The USB bus (Universal Serial Bus), which is a new low speed bus. The AGP bus which solely is used for the graphics card.

As mentioned earlier, I/O buses are really extensions to the system bus. On the motherboard, the system bus ends in a controller chip, which forms a bridge to the I/O buses.

All in all, the buses have had a very central placement in the PC's data exchange. Actually, all components except the CPU communicate with each other and with RAM via the different I/O buses. Here you see a demonstration of this logic:

The physical aspects of the I/O buses


Physically, the I/O bus consists of tracks on the printed circuit board. These tracks are used as: Data tracks, which each can move one bit at a time Address tracks, which identify where data should be sent to Other tracks for clock ticks, voltage, verification signals, etc. When data are sent on the bus, they must be supplied with a receiver. Therefore, each device on the bus has an address. Similarly, the RAM is divided in sections, each having its address. Prior to sending data, a number is sent on the address track, to identify where the data should be sent to.

The bus width


The number of data tracks determine the data transfer capacity. The ISA bus is slow, partly because it only has 16 data tracks. The modern PCs send 32 bits per clock tick. On the ISA bus, 32 bits must be divided in two packages of 16 bits. This delays the data transfer. Another I/O bus concept is wait states.

Wait states
Wait states are small pauses. If an ISA adapter cannot keep up with the incoming data flow, its controller sends wait states to the CPU. Those are signals to the CPU to "hold on for a sec." A wait state is a wasted clock tick. The CPU skips a clock tick, when not occupied. Thus the old and slow ISA adapter can significantly reduce the operating speed of a modern computer. Another aspect is the IRQ signals, which the components use to attract attention from the CPU. That and the concepts DMA and bus mastering, are described in module 5, which deals with adapters.

Technical and historical background for the I/O buses

[top]

In modern PCs you only find the PCI and ISA buses (besides USB, which we do not know much about yet). But, over the years, there have been other buses. Here is a diagram of the various I/O buses. Then comes a more detailed description of each of the buses: Bus Year Bus width Max. throughput (theoretical) 4-6 MBps 8 MBps 40 MBps 32 MBps 100-160 MBps

Bus speed Synchronous with CPU: 4.77 - 6 MHz Synchronous: 8-10 MHz Asynchronous: 10.33 MHz Synchronous: max. 8 MHz Synchronous: 33-50 MHz

PC and XT ISA (AT) Simple bus. MCA. Advanced, intelligent bus by IBM. EISA. Bus for servers. VL. High speed bus, used in 486s.

198082 1984 1987 1988 1993

8 bit 16 bit 32 bit 32 bit 32 bit

PCI. Intelligent, advanced high speed bus. USB. Modern, simple, and intelligent bus. FireWire (IEEE1394). High-speed I/O bus for storage, video etc. USB 2.0 SCSI is another type of bus.

1993 1996 1999

32 bit Serial Serial

Asynchronous: 33 MHz

132 MBps 1.2 MBps 80 MBps

2001

Serial

12-40 MBps

Introduction to the ISA bus


Since about 1984, standard bus for PC I/O functions has been named ISA (Industry Standard Architecture). It is still used in all PCs to maintain backwards compatibility. In that way modern PCs can accept expansion cards of the old ISA type. ISA was an improvement over the original IBM XT bus, which was only 8 bit wide. IBM's trademark is AT bus. Usually, it is just referred to as ISA bus. ISA is 16 bit wide and runs at a maximum of 8 MHz. However, it requires 2-3 clock ticks to move 16 bits of data. The ISA bus works synchronous with the CPU. If the system bus is faster than 10 MHz, many expansion boards become flaky and the ISA clock frequency is reduced to a fraction of the system bus clock frequency. The ISA bus has an theoretical transmission capacity of about 8 MBps. However, the actual speed does not exceed 1-2 MBps, and it soon became too slow.

Two faces
The ISA bus has two "faces" in the modern PC: The internal ISA bus, which is used on the simple ports, like keyboard, diskette drive, serial and parallel ports. As external expansion bus, which can be connected with 16 bit ISA adapters. ISA slots are today mostly used for the common 16 bit SoundBlaster compatible sound cards.

Problems
The problem with the ISA bus is twofold: It is narrow and slow. It has no intelligence. The ISA bus cannot transfer enough bits at a time. It has a very limited bandwidth. Let us compare the bandwidths of ISA bus and the newer PCI bus: Bus Transmission time Data volume per transmission ISA 375 ns 16 bit PCI 30 ns 32 bit Clearly, there is a vast difference between the capacity of the two buses. The ISA bus uses a lot of time for every data transfer, and it only moves 16 bits in one operation. The other problem with the ISA bus is the lack of intelligence. This means that the CPU has to control the data transfer across the bus. The CPU cannot start a new assignment, until the transfer is completed. You can observe that, when your PC communicates with the floppy drive, while the rest of the PC is waiting. Quite often the whole PC seems to be sleeping. That is the result of a slow and unintelligent ISA bus.

Problems with IRQs


The ISA bus can be a tease, when you install new expansion cards (for example a sound card). Many of these problems derive from the tuning of IRQ and DMA, which must be done manually on the old ISA bus.

Every component occupies a specific IRQ and possibly a DMA channel. That can create conflict with existing components. Read module 5 about expansion cards and these problems.

The ISA bus is out


As described, the ISA bus is quite outdated and should not be used in modern pcs. There is a good chance, that this "outdated legacy technology" (quoting Intel) will disappear completely. The USB bus is the technology that will replace it. It has taken many years to get this working and accepted, but it works now. Intel's chip set 810 was the first not to include ISA support.

Introducing the PCI bus

[top]

The PCI is the high speed bus of the 1990s. PCI stands for Peripheral Component Interconnect. This bus is made by Intel. It is used today in all PCs and other computers for connecting adapters, such as network-controllers, graphics cards, sound cards etc. Some graphics cards however use the AGP-bus, which is a separate bus only intended for graphics. The PCI bus is the central I/O bus, which you find in all PCs!

A 32 bit bus
The PCI is actually 32 bit wide, but in practice it functions like a 64 bit bus. Running at 33 MHz, it has a maximum transmission capacity of 132 MBps. According to the specifications - not in practice, it can have up to 8 units with a speed up to 200 MHz. The bus is processor independent. Therefore, it can be used with all 32 or 64 bit processors, and it is also found in other computers than PCs. The PCI bus is compatible with the ISA bus in that it can react on ISA bus signals, create the same IRQs, etc.

Buffering and PnP


The PCI bus is buffered in relation to the CPU and the peripheral components. This means, that the CPU can deliver its data to the buffer, and then proceed with other tasks. The bus handles the further transmission in its own tempo. Conversely, the PCI adapters can also transmit data to the buffer, regardless of whether the CPU is free to process them. They are

placed in a queue, until the system bus can forward them to the CPU. Under optimal conditions, the PCI bus transmits 32 bits per clock tick. Sometimes, it requires two clock ticks. Because of this, the peripheral PCI units operate asynchronous . Therefore, the PCI (contrary to the VL bus) is not a local bus in a strict sense. Finally, the PCI bus is intelligent relative to the peripheral components, in that Plug and Play is included in the PCI specifications. All adapter cards for the PCI configure themselves. Plug and Play is abbreviated PnP.

PCI with two faces


On modern system boards, the PCI bus (like ISA) has two "faces:" Internal PCI bus, which connects to EIDE channels on the motherboard. The PCI expansion bus, which typically has 3-4 slots for PCI adapters.

The PCI bus is continuously being developed further. There is a PCI Special Interest Group, consisting of the most significant companies (Intel, IBM, Apple, and others), which coordinate and standardize the development. Soon we shall see PCI with a higher bus speed (66 MHz) and greater width (64 bit). However alternative buses are also marketed. An example is the high speed AGP video bus (Accelerated Graphics Port) and the FireWire Bus. AGP is fundamentally a 66 MHz PCI bus (version 2.1) which has been enhanced with other technologies making it suitable for the graphics system.

You might also like