A Standard Motherboard Layout
I/O Buses
Introduction to the I/O buses 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 is not applicable 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? 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. 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. The logic can be given as:-
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. Technical and historical background for the I/O buses In modern PCs you only find the PCI and ISA buses. But, over the years, there have been other buses. Here is an overview of the various I/O buses. Bus Year
Bus width
Bus speed
Max. throughput (theoretical)
198082
8 bit
Synchronous with CPU: 4.77 - 6 MHz
4-6 MBps
ISA (AT) Simple bus.
1984
16 bit
Synchronous: 8-10 MHz
8 MBps
MCA. Advanced, intelligent bus by IBM.
1987
32 bit
Asynchronous: 10.33 MHz
40 MBps
EISA. Bus for servers.
1988
32 bit
Synchronous: max. 8 MHz
32 MBps
PC and XT
VL. High speed bus, used in 486s.
1993
32 bit
Synchronous: 33-50 MHz
100-160 MBps
PCI. Intelligent, advanced high speed bus.
1993
32 bit
Asynchronous: 33 MHz
132 MBps
USB. Modern, simple, and intelligent bus.
1996
Serial
1.2 MBps
FireWire (IEEE1394). High-speed I/O bus for storage, video etc.
1999
Serial
80 MBps
USB 2.0
2001
Serial
12-40 MBps
SCSI is another type of bus. 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 are: • 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. 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 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. The power and speed of computer components has increased at a steady rate since desktop computers were first developed decades ago. Software makers create new applications capable of utilizing the latest advances in processor speed and hard drive capacity, while hardware makers rush to improve components and design new technologies to keep up with the demands of high-end software.
Along Comes PCI During the early 1990s, Intel introduced a new bus standard for consideration, the Peripheral Component Interconnect (PCI) bus. PCI presents a hybrid of sorts between ISA and VL-Bus. It provides direct access to system memory for connected devices, but uses a bridge to connect to the frontside bus and therefore to the CPU. Basically, this means that it is capable of even higher performance than VL-Bus while eliminating the potential for interference with the CPU. The frontside bus is a physical connection that actually connects the processor to most of the other components in the computer, including main memory (RAM), hard drives and the PCI slots. These days, the frontside bus usually operates at 400-MHz, with newer systems running at 800-MHz.
PCI cards use 47 pins. The backside bus is a separate connection between the processor and the Level 2 cache. This bus operates at a faster speed than the frontside bus, usually at the same speed as the processor, so all that caching works as efficiently as possible. Backside buses have evolved over the years. In the 1990s, the backside bus was a wire that connected the main processor to an off-chip cache. This cache was actually a separate chip that required expensive memory. Since then, the Level 2 cache has been integrated into the main processor, making processors smaller and cheaper. Since the cache is now on the processor itself, in some ways the backside bus isn't really a bus anymore. PCI can connect more devices than VL-Bus, up to five external components. Each of the five connectors for an external component can be replaced with two fixed devices on the motherboard. Also, you can have more than one PCI bus on the same computer, although this is rarely done. The PCI bridge chip regulates the speed of the PCI bus independently of the CPU's speed. This provides a higher degree of reliability and ensures that PCI-hardware manufacturers know exactly what to design for. PCI originally operated at 33 MHz using a 32-bit-wide path. Revisions to the standard include increasing the speed from 33 MHz to 66 MHz and doubling the bit count to 64. Currently, PCI-X provides for 64-bit transfers at a speed of 133 MHz for an amazing 1-GBps (gigabyte per second) transfer rate! PCI cards use 47 pins to connect (49 pins for a mastering card, which can control the PCI bus without CPU intervention). The PCI bus is able to work with so few pins because of hardware multiplexing, which means that the device sends more than one signal over a single pin. Also, PCI supports devices that use either 5 volts or 3.3 volts.
Although Intel proposed the PCI standard in 1991, it did not achieve popularity until the arrival of Windows 95 (in 1995). This sudden interest in PCI was due to the fact that Windows 95 supported a feature called Plug and Play (PnP), which we'll talk about in the next section. Plug and Play (PnP) means that you can connect a device or insert a card into your computer and it is automatically recognized and configured to work in your system. PnP is a simple concept, but it took a concerted effort on the part of the computer industry to make it happen. Intel created the PnP standard and incorporated it into the design for PCI. But it wasn't until several years later that a mainstream operating system, Windows 95, provided system-level support for PnP. The introduction of PnP accelerated the demand for computers with PCI, very quickly supplanting ISA as the bus of choice. To be fully implemented, PnP requires three things: • • •
PnP BIOS - The core utility that enables PnP and detects PnP devices. The BIOS also reads the ESCD for configuration information on existing PnP devices. Extended System Configuration Data (ESCD) - A file that contains information about installed PnP devices. PnP operating system - Any operating system, such as Windows XP, that supports PnP. PnP handlers in the operating system complete the configuration process started by the BIOS for each PnP device. PnP automates several key tasks that were typically done either manually or with an installation utility provided by the hardware manufacturer. These tasks include the setting of: o Interrupt requests (IRQ) - An IRQ, also known as a hardware interrupt, is used by the various parts of a computer to get the attention of the CPU. For example, the mouse sends an IRQ every time it is moved to let the CPU know that it's doing something. Before PCI, every hardware component needed a separate IRQ setting. But PCI manages hardware interrupts at the bus bridge, allowing it to use a single system IRQ for multiple PCI devices. o Direct memory access (DMA) - This simply means that the device is configured to access system memory without consulting the CPU first. o Memory addresses - Many devices are assigned a section of system memory for exclusive use by that device. This ensures that the hardware will have the needed resources to operate properly. o Input/Output (I/O) configuration - This setting defines the ports used by the device for receiving and sending information.
While PnP makes it much easier to add devices to your computer, it is not infallible. Variations in the software routines used by PnP BIOS developers, PCI device manufacturers and Microsoft have led many to refer to PnP as "Plug and Pray." But the overall effect of PnP has been to greatly simplify the process of upgrading your computer to add new devices or replace existing ones. Let's say that you have just added a new PCI-based sound card to your Windows XP computer. Here's an example of how it would work. 1. You open up your computer's case and plug the sound card into an empty PCI slot on the motherboard. 2. You close the computer's case and power up the computer.
3. The system BIOS initiates the PnP BIOS.
This motherboard has four PCI slots. 4. The PnP BIOS scans the PCI bus for hardware. It does this by sending out a signal to any device connected to the bus, asking the device who it is. 5. The sound card responds by identifying itself. The device ID is sent back across the bus to the BIOS. 6. The PnP BIOS checks the ESCD to see if the configuration data for the sound card is already present. Since the sound card was just installed, there is no existing ESCD record for it. 7. The PnP BIOS assigns IRQ, DMA, memory address and I/O settings to the sound card and saves the data in the ESCD. 8. Windows XP boots up. It checks the ESCD and the PCI bus. The operating system detects that the sound card is a new device and displays a small window telling you that Windows has found new hardware and is determining what it is. 9. In many cases, Windows XP will identify the device, find and load the necessary drivers, and you'll be ready to go. If not, the "Found New Hardware Wizard" will open up. This will direct you to install drivers off of the disc that came with the sound card. 10. Once the driver is installed, the device should be ready for use. Some devices may require that you restart the computer before you can use them. In our example, the sound card is immediately ready for use. 11. You want to capture some audio from an external tape deck that you have plugged into the sound card. You set up the recording software that came with the sound card and begin to record. 12. The audio comes into the sound card via an external audio connector. The sound card converts the analog signal to a digital signal. 13. The digital audio data from the sound card is carried across the PCI bus to the bus controller. The controller determines which device on the PCI device has priority to send data to the CPU. It also checks to see if data is going directly to the CPU or to system memory. 14. Since the sound card is in record mode, the bus controller assigns a high priority to the data coming from it and sends the sound card's data over the bus bridge to the system bus. 15. The system bus saves the data in system memory. Once the recording is complete, you can decide whether the data from the sound card is saved to a hard drive or retained in memory for additional processing.
As processor speeds steadily climb in the GHz range, many companies are working feverishly to develop a next-generation bus standard. Many feel that PCI, like ISA before it, is fast approaching the upper limit of what it can do. All of the proposed new standards have something in common. They propose doing away with the shared-bus technology used in PCI and moving to a point-to-point switching connection. This means that a direct connection between two devices (nodes) on the bus is established while they are communicating with each other. Basically, while these two nodes are talking, no other device can access that path. By providing multiple direct links, such a bus can allow several devices to communicate with no chance of slowing each other down. HyperTransport, a standard proposed by Advanced Micro Devices, Inc. (AMD), is touted by AMD as the natural progression from PCI. For each session between nodes, it provides two point-to-point links. Each link can be anywhere from 2 bits to 32 bits wide, supporting a maximum transfer rate of 6.4 GB per second. HyperTransport is designed specifically for connecting internal computer components to each other, not for connecting external devices such as removable drives. The development of bridge chips will enable PCI devices to access the HyperTransport bus.
Will PCI be replaced by HyperTransport? PCI-Express, developed by Intel (and formerly know as 3GIO or 3rd Generation I/O), looks to be the "next big thing" in bus technology. At first, faster buses were developed for high-end servers. These were called PCI-X and PCI-X 2.0, but they weren't suitable for the home computer market, because it was very expensive to build motherboards with PCI-X. PCI-Express is a completely different beast - it is aimed at the home computer market, and could revolutionize not only the performance of computers, but also the very shape and form of home computer systems. This new bus isn't just faster and capable of handling more bandwidth than PCI. PCI-Express is a point-to-point system, which allows for better performance and might even make the manufacturing of motherboards cheaper. PCI-Express slots will also accept older PCI cards, which will help them become popular more quickly than they would if everyone's PCI components were suddenly useless. It's also scalable. A basic PCI-Express slot will be a 1x connection. This will provide enough bandwidth for high-speed Internet connections and other peripherals. The 1x means that there is one lane to carry data. If a component requires more bandwidth, PCI-Express 2x, 4x, 8x, and 16x slots can be built into motherboards, adding more lanes and allowing the system to carry more data through the connection. In fact, PCI-Express 16x slots are already available in place of the AGP graphics card slot on
some motherboards. PCI-Express 16x video cards are at the cutting edge right now, costing more than $500. As prices come down and motherboards built to handle the newer cards become more common, AGP could fade into history. The Distant Future PCI-Express could mean more than faster computers. As the technology develops, computer makers could design a motherboard with PCIExpress connectors that attach to special cables. This could allow for completely modular computer system, much like home stereo systems. You would have a small box with the motherboard and processor and a series of PCI-Express connection jacks. An external hard drive could connect via USB 2.0 or PCI-Express. Small modules containing sound cards, video cards, and modems could also attach. Instead of one large box, your computer could be arranged any way you want, and it would only be as large as the components you need.
USB 961(UNIVERSAL SERIAL BUS) Just about any computer that you buy today comes with one or more Universal Serial Bus connectors on the back. These USB connectors let you attach everything from mice to printers to your computer quickly and easily. The operating system supports USB as well, so the installation of the device drivers is quick and easy, too. Compared to other ways of connecting devices to your computer (including parallel ports, serial ports and special cards that you install inside the computer's case), USB devices are incredibly simple! In this article, we will look at USB ports from both a user and a technical standpoint. You will learn why the USB system is so flexible and how it is able to support so many devices so easily -- it's truly an amazing system! Anyone who has been around computers for more than two or three years knows the problem that the Universal Serial Bus is trying to solve -- in the past, connecting devices to computers has been a real headache! •
• •
Printers connected to parallel printer ports, and most computers only came with one. Things like Zip drives, which need a high-speed connection into the computer, would use the parallel port as well, often with limited success and not much speed. Modems used the serial port, but so did some printers and a variety of odd things like Palm Pilots and digital cameras. Most computers have at most two serial ports, and they are very slow in most cases. Devices that needed faster connections came with their own cards, which had to fit in a card slot inside the computer's case. Unfortunately, the number of card slots is limited and you needed a Ph.D. to install the software for some of the cards.
The goal of USB is to end all of these headaches. The Universal Serial Bus gives you a single, standardized, easy-to-use way to connect up to 127 devices to a computer.
Just about every peripheral made now comes in a USB version. A sample list of USB devices that you can buy today includes: • • • • • • • • • • • • •
Printers Scanners Mice Joysticks Flight yokes Digital cameras Webcams Scientific data acquisition devices Modems Speakers Telephones Video phones Storage devices such as Zip drives
Network connections USB Cables and Connectors Connecting a USB device to a computer is simple -- you find the USB connector on the back of your machine and plug the USB connector into it.
The rectangular socket is a typical USB socket on the back of a PC.
If it is a new device, the operating system auto-detects it and asks for the driver disk. If the device has already been installed, the computer activates it and starts talking to it. USB devices can be connected and disconnected at any time.
A typical USB connector, called an "A" connection
Many USB devices come with their own built-in cable, and the cable has an "A" connection on it. If not, then the device has a socket on it that accepts a USB "B" connector.
A typical "B" connection
The USB standard uses "A" and "B" connectors to avoid confusion: • •
"A" connectors head "upstream" toward the computer. "B" connectors head "downstream" and connect to individual devices.
•
By using different connectors on the upstream and downstream end, it is impossible to ever get confused -- if you connect any USB cable's "B" connector into a device, you know that it will work. Similarly, you can plug any "A" connector into any "A" socket and know that it will work.
USB Hubs Most computers that you buy today come with one or two USB sockets. With so many USB devices on the market today, you easily run out of sockets very quickly. For example, on the computer that I am typing on right now, I have a USB printer, a USB scanner, a USB Webcam and a USB network connection. My computer has only
one USB connector on it, so the obvious question is, "How do you hook up all the devices?" The easy solution to the problem is to buy an inexpensive USB hub. The USB standard supports up to 127 devices, and USB hubs are a part of the standard.
A typical USB four-port hub accepts 4 "A" connections.
A hub typically has four new ports, but may have many more. You plug the hub into your computer, and then plug your devices (or other hubs) into the hub. By chaining hubs together, you can build up dozens of available USB ports on a single computer. Hubs can be powered or unpowered. As you will see on the next page, the USB standard allows for devices to draw their power from their USB connection. Obviously, a high-power device like a printer or scanner will have its own power supply, but low-power devices like mice and digital cameras get their power from the bus in order to simplify them. The power (up to 500 milliamps at 5 volts) comes from the computer. If you have lots of self-powered devices (like printers and scanners), then your hub does not need to be powered -- none of the devices connecting to the hub needs additional power, so the computer can handle it. If you have lots of unpowered devices like mice and cameras, you probably need a powered hub. The hub has its own transformer and it supplies power to the bus so that the devices do not overload the computer's supply. The USB Process When the host powers up, it queries all of the devices connected to the bus and assigns each one an address. This process is called enumeration -- devices are also enumerated when they connect to the bus. The host also finds out from each device what type of data transfer it wishes to perform: • •
Interrupt - A device like a mouse or a keyboard, which will be sending very little data, would choose the interrupt mode. Bulk - A device like a printer, which receives data in one big packet, uses the bulk transfer mode. A block of data is sent to the printer (in 64-byte chunks) and verified to make sure it is correct.
•
Isochronous - A streaming device (such as speakers) uses the isochronous mode. Data streams between the device and the host in real-time, and there is no error correction.
The host can also send commands or query parameters with control packets. As devices are enumerated, the host is keeping track of the total bandwidth that all of the isochronous and interrupt devices are requesting. They can consume up to 90 percent of the 480 Mbps of bandwidth that is available. After 90 percent is used up, the host denies access to any other isochronous or interrupt devices. Control packets and packets for bulk transfers use any bandwidth left over (at least 10 percent). The Universal Serial Bus divides the available bandwidth into frames, and the host controls the frames. Frames contain 1,500 bytes, and a new frame starts every millisecond. During a frame, isochronous and interrupt devices get a slot so they are guaranteed the bandwidth they need. Bulk and control transfers use whatever space is left. The technical links at the end of the article contain lots of detail if you would like to learn more. How SCSI Works A computer is full of busses -- highways that take information and power from one place to another. For example, when you plug an MP3 player or digital camera into your computer, you're probably using a universal serial bus (USB) port. Your USB port is good at carrying the data and electricity required for small electronic devices that do things like create and store pictures and music files. But that bus isn't big enough to support a whole computer, a server or lots of devices simultaneously.
SCSI devices usually connect to a controller card like this one. See more pictures of SCSI connectors and cables. For that, you'd need something more like SCSI. SCSI originally stood for Small Computer System Interface, but it's really outgrown the "small" designation. It's a fast bus that can connect lots of devices to a computer at the same time, including hard drives, scanners, CD-ROM/RW drives, printers and tape drives. Other technologies, like serial-ATA (SATA), have largely replaced it in new systems, but SCSI is still in use. This article will review SCSI basics and give you lots of information on SCSI types and specifications.
SCSI Basics SCSI is based on an older, proprietary bus interface called Shugart Associates System Interface (SASI). SASI was originally developed in 1981 by Shugart Associates in conjunction with NCR Corporation. In 1986, the American National Standards Institute (ANSI) ratified SCSI (pronounced "scuzzy"), a modified version of SASI. SCSI uses a controller to send and receive data and power to SCSI-enabled devices, like hard drives and printers.
SCSI connector SCSI has several benefits. It's fairly fast, up to 320 megabytes per second (MBps). It's been around for more than 20 years and it's been thoroughly tested, so it has a reputation for being reliable. Like Serial ATA and FireWire, it lets you put multiple items on one bus. SCSI also works with most computer systems. However, SCSI also has some potential problems. It has limited system BIOS support, and it has to be configured for each computer. There's also no common SCSI software interface. Finally, all the different SCSI types have different speeds, bus widths and connectors, which can be confusing. When you know the meaning behind "Fast," "Ultra" and "Wide," though, it's pretty easy to understand. We'll look at these SCSI types next. RAID SCSI is often used to control a redundant array of independent discs (RAID). Other technologies, like serial-ATA (SATA), can also be used for this purpose. Newer SATA drives tend to be faster and cheaper than SCSI drives. A RAID is a series of hard drives treated as one big drive. These drives can read and write data at the same time, known as striping. The RAID controller determines which drive gets which chunk of data. While that drive writes the data, the controller sends data to or reads it from another drive. RAID also improves fault tolerance through mirroring and parity. Mirroring makes an exact duplicate of one drive's data on a second hard drive. Parity uses a minimum of
three hard drives, and data is written sequentially to each drive, except the last one. The last drive stores a number that represents the sum of the data on the other drives. For more information on RAID and fault tolerance, check out this SCSI Types SCSI has three basic specifications: • •
•
SCSI-1: The original specification developed in 1986, SCSI-1 is now obsolete. It featured a bus width of 8 bits and clock speed of 5 MHz. SCSI-2: Adopted in 1994, this specification included the Common Command Set (CCS) -- 18 commands considered an absolute necessity for support of any SCSI device. It also had the option to double the clock speed to 10 MHz (Fast), double the bus width from to 16 bits and increase the number of devices to 15 (Wide), or do both (Fast/Wide). SCSI-2 also added command queuing, allowing devices to store and prioritize commands from the host computer. SCSI-3: This specification debuted in 1995 and included a series of smaller standards within its overall scope. A set of standards involving the SCSI Parallel Interface (SPI), which is the way that SCSI devices communicate with each other, has continued to evolve within SCSI-3. Most SCSI-3 specifications begin with the term Ultra, such as Ultra for SPI variations, Ultra2 for SPI-2 variations and Ultra3 for SPI-3 variations. The Fast and Wide designations work just like their SCSI-2 counterparts. SCSI-3 is the standard currently in use.
Different combinations of doubled bus speed, doubled clock speed and SCSI-3 specifications have led to lots of SCSI variations. The chart below compares several of them. Many of the slower ones are no longer in use -- we've included them for comparison. # of Bus Bus MBps Devices Width Speed
Name
Specification
Asynchronous SCSI
SCSI-1
8
8 bits
5 MHz
4 MBps
Synchronous SCSI
SCSI-1
8
8 bits
5 MHz
5 MBps
Wide
SCSI-2
16
16 bits 5 MHz
10 MBps
Fast
SCSI-2
8
8 bits
10 MHz
10 MBps
Fast/Wide
SCSI-2
16
16 bits
10 MHz
20 MBps
Ultra
SCSI-3 SPI
8
8 bits
20 MHz
20 MBps
20
40
SCSI-3
Controllers, Devices and Cables A SCSI controller coordinates between all of the other devices on the SCSI bus and the computer. Also called a host adapter, the controller can be a card that you plug into an available slot or it can be built into the motherboard. The SCSI BIOS is also on the controller. This is a small ROM or Flash memory chip that contains the software needed to access and control the devices on the bus. Each SCSI device must have a unique identifier (ID) in order for it to work properly. For example, if the bus can support sixteen devices, their IDs, specified through a hardware or software setting, range from zero to 15. The SCSI controller itself must use one of the IDs, typically the highest one, leaving room for 15 other devices on the bus.
Internal SCSI devices connect to a ribbon cable. Internal devices connect to a SCSI controller with a ribbon cable. External SCSI devices attach to the controller in a daisy chain using a thick, round cable. (Serial Attached SCSI devices use SATA cables.) In a daisy chain, each device connects to the next one in line. For this reason, external SCSI devices typically have two SCSI connectors -- one to connect to the previous device in the chain, and the other to connect to the next device.
External SCSI devices connect using thick, round
cables. The cable itself typically consists of three layers: • • •
Inner layer: The most protected layer, this contains the actual data being sent. Media layer: Contains the wires that send control commands to the device. Outer layer: Includes wires that carry parity information, which ensures that the data is correct.
Different SCSI variations use different connectors, which are often incompatible with one another. These connectors usually use 50, 68 or 80 pins. SAS uses smaller, SATA-compatible connectors.
68-pin Alternative 3 SCSI connector
50-pin Centronics SCSI connector Once all of the devices on the bus are installed and have their own IDs, each end of the bus must be closed. We'll look at how to do this next. Termination If the SCSI bus were left open, electrical signals sent down the bus could reflect back and interfere with communication between devices and the SCSI controller. The solution is to terminate the bus, closing each end with a resistor circuit. If the bus
supports both internal and external devices, then the last device on each series must be terminated. Types of SCSI termination can be grouped into two main categories: passive and active. Passive termination is typically used for SCSI systems that run at the standard clock speed and have a distance of less than 3 feet (1 m) from the devices to the controller. Active termination is used for Fast SCSI systems or systems with devices that are more than 3 feet (1 m) from the SCSI controller.
Some SCSI terminators are built into the SCSI device, while others may require an external terminator like this one.
SCSI also employs three distinct types of bus signaling, which also affect termination. Signaling is the way that the electrical impulses are sent across the wires. •
•
•
Single-ended (SE): The controller generates the signal and pushes it out to all devices on the bus over a single data line. Each device acts as a ground. Consequently, the signal quickly begins to degrade, which limits SE SCSI to a maximum of about 10 ft (3 m). SE signaling is common in PCs. High-voltage differential (HVD): Often used for servers, HVD uses a tandem approach to signaling, with a data high line and a data low line. Each device on the SCSI bus has a signal transceiver. When the controller communicates with the device, devices along the bus receive the signal and retransmit it until it reaches the target device. This allows for much greater distances between the controller and the device, up to 80 ft (25 m). Low-voltage differential (LVD): LVD is a variation on HVD and works in much the same way. The big difference is that the transceivers are smaller and built into the SCSI adapter of each device. This makes LVD SCSI devices more affordable and allows LVD to use less electricity to communicate. The downside is that the maximum distance is half of HVD -- 40 ft (12 m).
An active terminator
Both HVD and LVD normally use passive terminators, even though the distance between devices and the controller can be much greater than 3 ft (1 m). This is because the transceivers ensure that the signal is strong from one end of the bus to the other.
Accelerated Graphics Port (AGP) The need for increased bandwidth between the main processor and the video subsystem originally lead to the development of the local I/O bus on the PCs, starting with the VESA local bus and eventually leading to the popular PCI bus. This trend continues, with the need for video bandwidth now starting to push up against the limits of even the PCI bus. Much as was the case with the ISA bus before it, traffic on the PCI bus is starting to become heavy on high-end PCs, with video, hard disk and peripheral data all competing for the same I/O bandwidth. To combat the eventual saturation of the PCI bus with video information, a new interface has been pioneered by Intel, designed specifically for the video subsystem. It is called the Accelerated Graphics Port or AGP. AGP was developed in response to the trend towards greater and greater performance requirements for video. As software evolves and computer use continues into previously unexplored areas such as 3D acceleration and full-motion video playback, both the processor and the video chipset need to process more and more information. The PCI bus is reaching its performance limits in these applications, especially with hard disks and other peripherals also in there fighting for the same bandwidth. Another issue has been the increasing demands for video memory. As 3D computing becomes more mainstream, much larger amounts of memory become required, not just for the screen image but also for doing the 3D calculations. This traditionally has meant putting more memory on the video card for doing this work. There are two problems with this: • •
Cost: Video card memory is very expensive compared to regular system RAM. Limited Size: The amount of memory on the video card is limited: if you decide to put 6 MB on the card and you need 4 MB for the frame buffer, you have 2 MB left over for processing work and that's it (unless you do a hardware upgrade). It's not easy to expand this memory, and you can't use it for anything else if you don't need it for video processing.
AGP gets around these problems by allowing the video processor to access the main system memory for doing its calculations. This is more efficient because this memory can be shared dynamically between the system processor and the video processor, depending on the needs of the system. The idea behind AGP is simple: create a faster, dedicated interface between the video chipset and the system processor. The interface is only between these two devices; this has three major advantages: it makes it easier to implement the port, makes it easier to increase AGP in speed, and makes it possible to put enhancements into the design that are specific to video.
AGP is considered a port, and not a bus, because it only involves two devices (the processor and video card) and is not expandable. One of the great advantages of AGP is that it isolates the video subsystem from the rest of the PC so there isn't nearly as much contention over I/O bandwidth as there is with PCI. With the video card removed from the PCI bus, other PCI devices will also benefit from improved bandwidth. AGP is a new technology and was just introduced to the market in the third quarter of 1997. The first support for this new technology will be from Intel's 440LX Pentium II chipset. More information on AGP will be forthcoming as it becomes more mainstream and is seen more in the general computing market. Interestingly, one of Intel's goals with AGP was supposed to be to make high-end video more affordable without requiring sophisticated 3D video cards. If this is the case, it really makes me wonder why they are only making AGP available for their high-end, very expensive Pentium II processor line. :^) Originally, AGP was rumored to be a feature on the 430TX Pentium socket 7 chipset, but it did not materialize. Via and other companies are carrying the flag for future socket 7 chipset development now that Intel has dropped it, and several non-Intel AGP-capable chipsets will be entering the market in 1998. AGP Interface The AGP interface is in many ways still quite similar to PCI. The slot itself is similar physically in shape and size, but is offset further from the edge of the motherboard than PCI slots are. The AGP specification is in fact based on the PCI 2.1 specification, which includes a high-bandwidth 66 MHz speed that was never implemented on the PC. AGP motherboards have a single expansion card slot for the AGP video card, and usually one less PCI slot, and are otherwise quite similar to PCI motherboards. AGP Bus Width, Speed and Bandwidth The AGP bus is 32 bits wide, just the same as PCI is, but instead of running at half of the system (memory) bus speed the way PCI does, it runs at full bus speed. This means that on a standard Pentium II motherboard AGP runs at 66 MHz instead of the PCI bus's 33 MHz. This of course immediately doubles the bandwidth of the port; instead of the limit of 127.2 MB/s as with PCI, AGP in its lowest speed mode has a bandwidth of 254.3 MB/s. Plus of course the benefits of not having to share bandwidth with other PCI devices. In addition to doubling the speed of the bus, AGP has defined a 2X mode, which uses special signaling to allow twice as much data to be sent over the port at the same clock speed. What the hardware does is to send information on both the rising and falling edges of the clock signal. Each cycle, the clock signal transitions from "0", to "1" ("rising edge"), and back to "0" ("falling edge"). While PCI for example only transfers data on one of these transitions each cycle, AGP transfers data on both. The result is that the performance doubles again, to 508.6 MB/s theoretical bandwidth. There is also a plan to implement a 4X mode, which will perform four transfers per clock cycle: a whopping 1,017 MB/s of bandwidth! This is certainly very exciting, but we must temper this excitement somewhat (and not just because AGP is new and we don't have much that is practical to evaluate yet). It's great fun to talk about 1 GB/s bandwidth for the video card, but there's only one problem: this is more than the bandwidth of the entire system bus of a modern PC! If you recall, the data bus of a Pentium class or later PC is 64 bits wide and runs at 66 MHz. This gives a total of 508.6 MB/s bandwidth, so the 1 GB/s
maximum isn't going to do much good until we get the data bus running much faster than 66 MHz. Future motherboard chipsets will take the system bus to 100 MHz, which will increase total memory bandwidth to 763 MB/s, a definite step in the right direction, but still not enough to make 4X transfers feasible. Also worth remembering is that the CPU also needs to have access to the system memory, not just the video subsystem. If all 508.6 MB/s of system bandwidth is taken up by video over AGP, what is the processor going to do? Again here, going to 100 MHz system speed will help immensely. In practical terms, the jury is still out on AGP and will be for a while, though there can be no denying its tremendous promise. AGP will deliver a peak bandwidth that is 4 times higher than the PCI bus using pipelining, sideband addressing, and more data transfers per clock. It will also enable graphic cards to execute texture maps directly from system memory instead of forcing it to pre-load the texture data to the graphics card's local memory. Features that set AGP apart from PCI • • • •
Probably the most important feature of AGP is DIME (direct memory execute). This gives AGP chips the capability to access main memory directly for the complex operations of texture mapping. AGP provides the graphics card with two methods of directly accessing texture maps in system memory: pipelining and sideband addressing. AGP makes multiple requests for data during a bus or memory access, while PCI makes one request, and does not make another until the data it requested has been transferred. AGP doesn't share bandwidth with other devices, whereas the PCI bus does share bandwidth. AGP
PCI
1
Pipelined Requests
Non-pipelined
2
Address/Data de-multiplexed
Address/Data multiplexed
3
Peak at 533 MB/s in32 bits
Peak at 133 MB/s in 32 bits
4
Single target, single master
Multi target, multi master
5
Memory read/write only Link to entire system No other input/output operations
6
High/low priority queues
No priority queues
Further comparisons between AGP and PCI • • •
AGP is a port (it only connects two nodes) while PCI is a bus AGP does not replace the PCI bus, it is a dedicated connection that can be used only by the graphics subsystem AGP and PCI also differ in terms of their minimum length and alignment requirements for transactions. AGP transaction are multiples of 8 bytes in length and are aligned on 8 byte boundaries, while PCI transactions must be multiples of 4 bytes and are aligned on 4 byte boundaries.