Introduction To The I/O Buses Technical and Historical Background For The I/O Buses
Introduction To The I/O Buses Technical and Historical Background For The I/O Buses
Introduction To The I/O Buses Technical and Historical Background For The I/O Buses
Introduction to the I/O buses Technical and historical background for the I/O buses
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.
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.
[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:
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.
[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.
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.
Asynchronous: 33 MHz
2001
Serial
12-40 MBps
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.
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.
[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.
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.
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.