Unit-4 USB - SCI - PCI Bus
Unit-4 USB - SCI - PCI Bus
A typical desktop or notebook computer has several ports that can be used to connect I/O devices, such
as a mouse, a memory key, or a disk drive. Standard interfaces have been developed to enable I/O
devices to use interfaces that are independent of any particular processor. For example, a memory key
that has a USB connector can be used with any computer that has a USB port.
UNIVERSAL SERIAL BUS (USB)
The Universal Serial Bus (USB) [1] is the most widely used interconnection standard. A large variety
of devices are available with a USB connector, including mice, memory keys, disk drives, printers,
cameras, and many more. The commercial success of the USB is due to its simplicity and low cost. The
original USB specification supports two speeds of operation, called low-speed (1.5 Megabits/s) and
full-speed (12 Megabits/s). Later, USB 2, called High Speed USB, was introduced. It enables data
transfers at speeds up to 480 Megabits/s. As I/O devices continued to evolve with even higher speed
requirements, USB 3 (called Superspeed) was developed. It supports data transfer rates up to 5
Gigabits/s. The USB has been designed to meet several key objectives:
• Provide a simple, low-cost, and easy to use interconnection system
• Accommodate a wide range of I/O devices and bit rates, including Internet connections, and
audio and video applications
• Enhance user convenience through a “plug-and-play” mode of operation We will elaborate
on some of these objectives before discussing the technical details of the USB.
USB Architecture The USB uses point-to-point connections and a serial transmission format. When
multiple devices are connected, they are arranged in a tree structure as shown in Figure. Each node of
the tree has a device called a hub, which acts as an intermediate transfer point between the host computer
and the I/O devices. At the root of the tree, a root hub connects the entire tree to the host computer. The
leaves of the tree are the I/O devices: a mouse, a keyboard, a printer, an Internet connection, a camera,
or a speaker. The tree structure makes it possible to connect many devices using simple point-to-point
serial links. If I/O devices are allowed to send messages at any time, two messages may reach the hub
at the same time and interfere with each other. For this reason, the USB operates strictly on the basis of
polling. A device may send a message only in response to a poll message from the host processor.
Hence, no two devices can send messages at the same time. This restriction allows hubs to be simple,
low cost devices. Each device on the USB, whether it is a hub or an I/O device, is assigned a 7-bit
address. This address is local to the USB tree and is not related in any way to the processor’s address
space. The root hub of the USB, which is attached to the processor, appears as a single device. The host
software communicates with individual devices by sending information to the root hub, which it
forwards to the appropriate device in the USB tree. When a device is first connected to a hub, or when
it is powered on, it has the address 0. Periodically, the host polls each hub to collect status information
and learn about new devices that may have been added or disconnected. When the host is informed that
a new device has been connected, it reads the information in a special memory in the device’s USB
interface to learn about the device’s capabilities. It then assigns the device a unique USB address and
writes that address in one of the device’s interface registers. It is this initial connection procedure that
gives the USB its plug-and-play capability.
Advantges:
1. The USB interface is self-configuring. This means that the user need not adjust settings
on the device and interface for speed or data format, or configure interrupts, input/output
addresses, or direct memory access channels.
2. USB connectors are standardized at the host, so any peripheral can use any available
receptacle. USB takes full advantage of the additional processing power that can be
economically put into peripheral devices so that they can manage themselves. USB
devices mostly do not have user-adjustable interface settings.
3. The USB interface is hot pluggable or plug and plays, meaning devices can be exchanged
without rebooting the host computer. Small devices can be powered directly from the
USB interface thus removing extra power supply cables.
4. The USB interface defines protocols for improving reliability over previous interfaces
and recovery from common errors.
5. Installation of a device relying on the USB standard minimal operator action is required.
Disadvantages of USB –
1. USB cables are limited in length.
2. USB has a strict “tree” topology and “master-slave” protocol for addressing peripheral
devices. Peripheral devices cannot interact with one another except via the host, and two
hosts cannot communicate over their USB ports directly.
3. Some very high-speed peripheral devices require sustained speeds not available in the
USB standard.
4. For a product developer, the use of USB requires the implementation of a complex
protocol and implies an intelligent controller in the peripheral device.
5. Use of the USB logos on the product requires annual fees and membership in the
organization.
PCI BUS
The PCI (Peripheral Component Interconnect) bus was developed as a low-cost, processor-independent
bus. It is housed on the motherboard of a computer and used to connect I/O interfaces for a wide variety
of devices. A device connected to the PCI bus appears to the processor as if it is connected directly to
the processor bus. Its interface registers are assigned addresses in the address space of the processor.
We will start by describing how the PCI bus operates, then discuss some of its features.
Bus Structure
The use of the PCI bus in a computer system is illustrated in Figure. The PCI bus is connected to the
processor bus via a controller called a bridge. The bridge has a special port for connecting the
computer’s main memory. It may also have another special highspeed port for connecting graphics
devices. The bridge translates and relays commands and responses from one bus to the other and
transfers data between them. For example, when the processor sends a Read request to an I/O device,
the bridge forwards the command and address to the PCI bus. When the bridge receives the device’s
response, it forwards the data to the processor using the processor bus. I/O devices are connected to the
PCI bus, possibly through ports that use standards such as Ethernet, USB, SATA, SCSI, or SAS. The
PCI bus supports three independent address spaces: memory, I/O, and configuration.
SCSI BUS
The acronym SCSI stands for Small Computer System Interface. It refers to a standard bus defined by
the American National Standards Institute (ANSI). The SCSI bus may be used to connect a variety of
devices to a computer. It is particularly well-suited for use with disk drives. It is often found in
installations such as institutional databases or email systems where many disks drives are used.
In the original specifications of the SCSI standard, devices are connected to a computer via a 50-wire
cable, which can be up to 25 meters in length and can transfer data at rates of up to 5 Megabytes/s. The
standard has undergone many revisions, and its data transfer capability has increased rapidly. SCSI-2
and SCSI-3 have been defined, and each has several options. Data are transferred either 8 bits or 16 bits
in parallel, using clock speeds of up to 80 MHz.
There are also several options for the electrical signaling scheme used. The bus may use single ended
transmission, where each signal uses one wire, with a common ground return for all signals. In another
option, differential signaling is used, with a pair of wires for each signal.
Devices connected to the SCSI bus are not part of the address space of the processor in the same way
as devices connected to the processor bus or to the PCI bus. A SCSI bus may be connected directly to
the processor bus, or more likely to another standard I/O bus such as PCI, through a SCSI controller.
Data and commands are transferred in the form of multi-byte messages called packets. To send
commands or data to a device, the processor assembles the information in the memory then instructs
the SCSI controller to transfer it to the device. Similarly, when data are read from a device, the controller
transfers the data to the memory and then informs the processor by raising an interrupt.