You are on page 1of 34

2.

1 Industry Standard Architecture


Industry Standard Architecture (in practice almost always shortened to ISA) was a computer
bus standard for IBM compatible computers.

------------------------------------------------------------------------------------------------------------

Five 16-bit and one 8-bit ISA slots on a motherboard

Year Created: 1981


Created By: IBM
Superseded By: PCI (1993)
Width: 8 or 16 bits
Number of Devices: 1 per slot
Speed: 8 MHz
Style: Parallel
Hotplugging? No
External? No

------------------------------------------------------------------------------------------------------------

History

ISA originated as an 8-bit system in the IBM PC in 1981, and was extended in 1983 as the XT
bus architecture. The newer 16-bit standard was introduced in 1984. Designed to connect
peripheral cards to the motherboard, the protocol also allows for bus mastering although only the
first 16 MB of main memory is available for direct access. The 8-bit bus ran at 4.77 MHz, while
the 16-bit bus operated at 8 MHz. In reference to the XT bus, it is sometimes referred to as the
AT bus architecture. It was also available on some non-IBM compatible machines such as the
short-lived AT&T Hobbit and later PowerPC based BeBox.

In 1987, IBM moved to replace the ISA bus with their proprietary Micro Channel Architecture
(MCA) in an effort to regain control of the PC architecture, and the PC market. The system was
far more advanced than ISA, and computer manufacturers responded with the Extended Industry
Standard Architecture (EISA) and later, the VESA Local Bus (VLB). In fact, VLB used some
parts originally intended for MCA due to the fact that component manufacturers already had the
ability to manufacture it. Both were compatible expansions of the ISA standard.

Users of ISA-based machines had to know special information about the hardware they were
adding to the system. While a handful of devices were essentially "plug-n-play," this was rare.
Users frequently had to configure two or three things when adding a new device, such as the IRQ
line, I/O address, or DMA channel. MCA had done away with this complication, and PCI
actually incorporated many of the ideas first explored with MCA (though it was more directly
descended from EISA).

This trouble with configuration eventually led to the creation of ISA PnP, a plug-n-play system
that used a combination of modifications to hardware, the system BIOS, and operating system
software to automatically manage the nitty-gritty details. In reality, ISA PnP turned out to be a
major headache much of the time, and didn't become well-supported until the architecture was in
its final days. This was a major contributor to the use of the phrase "plug-n-pray".

PCI slots were the first physically-incompatible expansion ports to directly squeeze ISA off of
the motherboard. At first, motherboards were largely ISA, including a few PCI slots. By the mid-
1990s, the two slot types were roughly balanced, and ISA slots soon were in the minority on
consumer systems. Microsoft's PC 97 specification recommended that ISA slots be removed
entirely, though the system architecture still required ISA to be present in some vestigial way
internally to handle the floppy drive, serial ports, etc. ISA slots remained for a few more years,
and it was even possible to see systems with an Accelerated Graphics Port (AGP) sitting near the
central processing unit, an array of PCI slots, and one or two ISA slots near the end.

It is also notable that PCI slots are "rotated" compared to their ISA counterparts—PCI cards
were essentially inserted "upside-down," allowing ISA and PCI connectors to squeeze together
on the motherboard. Only one of the two connectors can be used in each slot at a time, but this
allowed for greater flexibility.

8-bit ISA (XT bus architecture)

The XT bus architecture is an eight-bit ISA bus used by Intel 8086 and Intel 8088 systems in
the IBM PC and IBM PC XT in the 1980s.

An 8-bit ISA (XT-bus) mouse adapter

The XT bus has four DMA channels, of which three are brought out to the expansion slots. Of
these three, two are normally allocated to machine functions:

DMA channel Expansion Standard function


0 No Dynamic RAM refresh
1 Yes Add-on cards
2 Yes Floppy disk controller
3 Yes Hard disk controller

16-bit ISA (AT bus architecture)

The AT bus architecture is an 16-bit version of the ISA bus first in the IBM PC/AT.

Technical data

8 bit ISA or XT bus architecture

Bus width 8-bit


Compatible with 8 bit ISA
Pins 62
Vcc +5 V, -5 V, +12 V, -12 V
Clock 4.7727266 MHz
16 bit ISA

Bus width 16-bit


Compatible with 8 bit ISA, 16 bit ISA
Pins 98
Vcc +5 V, -5 V, +12 V, -12 V
Clock 8.333333 MHz

Current use

Apart from specialized industrial use, ISA is all but gone today. Even where present, system
manufacturers often shield customers from the term "ISA bus", referring to it instead as the
"legacy bus" (see legacy system). The PC/104 bus, used in industrial and embedded applications,
is a derivative of the ISA bus, utilizing the same signal lines with different connectors. The LPC
bus has replaced the ISA bus as the connection to the legacy I/O devices on recent motherboards;
while physically quite different, LPC looks just like ISA to software, so that the peculiarities of
ISA such as the 16MB DMA limit are likely to stick around for a while.

2.2 Peripheral Component Interconnect


The Peripheral Component Interconnect, or PCI Standard (in practice almost always
shortened to PCI) specifies a computer bus for attaching peripheral devices to a computer
motherboard. These devices can take any one of the following forms:

• An integrated circuit fitted onto the motherboard itself, called a planar device in the PCI
specification.
• An expansion card that fits in sockets.

The PCI bus is common in modern PCs, where it has displaced ISA and VESA Local Bus as the
standard expansion bus, but it also appears in many other computer types. The bus will
eventually be succeeded by PCI Express, which is standard in most new computers, and other
technologies.

------------------------------------------------------------------------------------------------------------

five 32-bit 5-volt PCI expansion slots on a motherboard

Year Created: Mid-1993


Created By: Intel
Superseded By: PCI Express (2004)
Width: 32 bits
Number of Devices: 1 per slot
Speed: 133 MB/s
Style: Parallel
Hotplugging? No
External? No
------------------------------------------------------------------------------------------------------------

64-bit PCI expansion slots inside a Power Macintosh G4

The PCI specification covers the physical size of the bus (including wire spacing), electrical
characteristics, bus timing, and protocols. The specification can be purchased from the PCI
Special Interest Group (PCISIG).

History

Work on PCI began at Intel's Architecture Lab circa 1990. PCI 1.0, which was merely a
component-level specification, was released on June 22, 1992. PCI 2.0, which was the first to
establish standards for the connector and motherboard slot, was released on April 30, 1993. PCI
2.1 was released on June 1, 1995.
PCI was immediately put to use in servers, replacing MCA and EISA as the server expansion bus
of choice. In mainstream PCs, PCI was slower to replace VESA Local Bus (VLB), and did not
gain significant market penetration until late 1994 in second-generation Pentium PCs. By 1996
VLB was all but extinct, and manufacturers had adopted PCI even for 486 computers. EISA
continued to be used alongside PCI through 2000. Apple Computer adopted PCI for professional
Power Macintosh computers (replacing NuBus) in mid-1995, and the consumer Performa
product line (replacing LC PDS) in mid-1996.

Later revisions of PCI added new features and performance improvements, including a 66 MHz
3.3 V standard and 133 MHz PCI-X, and the adaptation of PCI signaling to other form factors.
Both PCI-X 1.0b and PCI-X 2.0 are backward compatible with PCI standards. With the
introduction of the serial PCI Express standard in 2004, motherboard manufacturers have
included progressively fewer PCI expansion slots in favor of the new standard. Although it is
still common to see both interfaces implemented side-by-side, traditional PCI is likely to slowly
die out in coming years.

The system firmware examines each device's PCI Configuration Space and allocates resources.
Each device can request up to six areas of memory space or I/O port space.

They can also have an optional ROM that can contain executable x86 or PA-RISC code, Open
Firmware or an EFI driver.

In a typical system, the operating system queries all PCI buses at startup time to find out what
devices are present and what system resources (memory, interrupt lines, etc.) each needs. It then
allocates the resources and tells each device what its allocation is.

The PCI configuration space also contains a small amount of device type information, which
helps an operating system choose device drivers for it, or at least to have a dialogue with a user
about the system configuration. Part of this information is a human readable text description of
the device.

Interrupts

Devices are required to follow a protocol so that the interrupt lines can be shared. The PCI bus
includes four interrupt lines, all of which are available to each device. However, they are not
wired in parallel as are the other traces. The positions of the interrupt lines rotate between slots,
so what appears to one device as the INTA# line is INTB# to the next and INTC# to the next.
Single-function devices always use their INTA# for interrupt signalling, so the device load is
spread fairly evenly across the four available interrupt lines. This alleviates a common problem
with sharing interrupts.

PCI bridges (between two PCI buses) map the four interrupt traces on each of their sides in
varying ways. Some bridges use a fixed mapping, and in others it is configurable. In the general
case, software cannot determine which interrupt line a device's INTA# pin is connected to across
a bridge. The mapping of PCI interrupt lines onto system interrupt lines, through the PCI host
bridge, is similarly implementation-dependent. The result is that it can be impossible to
determine how a PCI device's interrupts will appear to software. Platform-specific BIOS code is
meant to know this, and set a field in each device's configuration space indicating which IRQ it is
connected to, but this process is not reliable.

PCI interrupt lines are level-triggered. This was chosen over edge-triggering in order to gain an
efficiency advantage when servicing a shared interrupt line in a particular way. However, this
efficiency gain comes at the cost of robustness and flexibility. One interrupting device can easily
block all other devices on the same interrupt line. (See "level-triggered interrupt" for
explanation.)

Later revisions of the PCI specification add support for message-signalled interrupts. In this
system a device signals its need for service by perfoming a memory write, rather than by
asserting a dedicated line. This alleviates the problem of scarcity of interrupt lines. Even if
interrupt vectors are still shared, it does not suffer the sharing problems of level-triggered
interrupts. It also resolves the routing problem, because the memory write is not unpredictably
modified between device and host. Finally, because the message signalling is in-band, it resolves
some synchronisation problems that can occur with posted writes and out-of-band interrupt lines.

PCI Express does not have physical interrupt lines at all. It uses message-signalled interrupts
exclusively.

Conventional hardware specifications

A typical 32-bit PCI card, in this case a SCSI adapter from Adaptec
A PCI-X Gigabit Ethernet expansion card

• 33.33 MHz clock with synchronous transfers


• peak transfer rate of 133 MB per second for 32-bit bus width (33.33 MHz × 32 bits ×
(1 byte ÷ 8 bits) = 133 MB/s)
• 32-bit or 64-bit bus width
• 32-bit address space (4 gigabytes)
• 32-bit port space (now deprecated)
• 256-byte configuration space
• 3.3 or 5-volt signaling
• reflected-wave switching

Variants

Conventional

• PCI 2.2 allows for 66 MHz signaling (requires 3.3 volt signaling) (peak transfer rate of
266 MB/s)
• PCI 2.3 permits use of 3.3 volt and universal keying, but does not allow 5 volt keyed add
in cards.
• PCI 3.0 is the final official standard of the bus, completely removing 5-volt capability.
• PCI-X doubles the width to 64-bit, revises the protocol, and increases the maximum data
rate to 133 MHz (peak transfer rate of 1014 MB/s)
• PCI-X 2.0 permits a 266 MHz rate (peak transfer rate of 2035 MB/s) and also 533 MHz
rate, expands the configuration space to 4096 bytes, adds a 16-bit bus variant and allows
for 1.5 volt signaling
• Mini PCI is a new form factor of PCI 2.2 for use mainly inside laptops
• Cardbus is a PCMCIA form factor for 32-bit, 33 MHz PCI
• Compact PCI, uses Eurocard-sized modules plugged into a PCI backplane.
• PC/104-Plus is an industrial bus that uses the PCI signal lines with different connectors.

Other

• PCI Express, or PCIe, (formerly 3GIO/Arapaho), a new interface using PCI programming
concepts, with a serial physical-layer protocol and different connectors. PCI Express is
expected to replace the PCI (and PCI-derived AGP) buses. PCIe slots are not backwards
compatible with PCI or PCI-X expansion cards.

Card's physical size

A full-size PCI card has a height of 107 mm (4.2 inches) and a depth of 312 mm (12.283 inches).

The height includes the edge card connector.

In addition to these dimensions the physical size and location of a card's backplate are also
standardized. The backplate is the part that fastens to the card cage to stabilize the card and also
contains external connectors, so is usually attaches in a window so it is accessible from outside
the computer case.

A PCI card can be any smaller size, but the backplate must still be full-size and properly located
so that the card fits in any standard PCI slot.

Many computers have slots for PCI cards but do not have the space for full-size PCI cards. In
some computers, some slots accommodate full-size PCI cards, while others do not because some
part of the computer interferes.

"Half-height" and "half-length" cards and slots are common, and presumably have dimensions
half those of the full-size cards. Other cards with reduced height are called "low profile" or
"slim."

There is at least one reduced size variation on the backplate and there are very compact card
cages that require that variation. It is not common.

Half-length extension card

• Width 0.6 inches (15.24 mm), Depth 6.9 inches (175.26 mm), Height 4.2 inches
(106.68 mm)

2.3 SCSI
SCSI stands for "Small Computer System Interface", and is a standard interface and command
set for transferring data between devices on both internal and external computer buses. It is
pronounced "scuzzy", most likely because SCSI was formerly known as SASI, the "Shugart
Associates System Interface" introduced by the company of the same name in 1979, and hence
used to be spelled SC/ASI at some point in history. The "small" part is historical; since the mid-
1990s, SCSI has been used on even the largest of computer systems.

SCSI is most commonly used for hard disks and tape storage devices, but also connects a wide
range of other devices, including scanners, printers, CD-ROM drives, CD recorders, and DVD
drives. In fact, the entire SCSI standard promotes device independence, which means that
theoretically SCSI can be used with any type of computer hardware.

Since its standardization in 1986, SCSI has been commonly used in the Apple Macintosh and
Sun Microsystems computer lines. SCSI has never been popular in the low priced IBM PC
world, owing to the lower cost and adequate performance of its ATA hard disk standard.
However, SCSI drives and even SCSI RAIDs, are more common in PC workstations for video
and/or audio production.

At this time, SCSI is popular on high-performance workstations and servers. RAIDs on servers
almost always use SCSI hard disks. Desktop computers and notebooks more typically use the
ATA/IDE or the newer Serial ATA interfaces for hard disks, and USB and FireWire connections
for external devices.

Sun Microsystems External SCSI Enclosures

Old Macintosh SCSI port

SCSI Terminator (Centronics connector)

Standards

Parallel SCSI is not a single standard, but a suite of closely related standards which,
unfortunately, have confusing names. There are a dozen SCSI interface names, most with
ambiguous wording (like Fast SCSI, Fast Wide SCSI, Ultra SCSI, and Ultra Wide SCSI); three
SCSI standards, each of which has a collection of modular, optional features; several different
connector types; and three different types of voltage signalling. The leading SCSI card
manufacturer, Adaptec, has manufactured over 100 varieties of SCSI cards over the years. In
actual practice, many experienced technicians simply refer to SCSI devices by their bus
bandwidth (i.e. SCSI 320 or SCSI 160) in Megabytes per second.

SCSI has evolved since its introduction. Before summarizing the evolution, a distinction should
be made between the terminology used in the SCSI standard itself, as promulgated by the T10
committee of INCITS, and common parlance, as codified by the SCSI trade association,
SCSITA.

As of 2003, there have only been three SCSI standards: SCSI-1, SCSI-2, and SCSI-3. All SCSI
standards have been modular, defining various capabilities which manufacturers can include or
not. Individual vendors and SCSITA have given names to specific combinations of capabilities.
For example, the term "Ultra SCSI" is not defined anywhere in the standard, but is used to refer
to SCSI implementations that signal at twice the rate of "Fast SCSI." Such a signalling rate is not
compliant with SCSI-2 but is one option allowed by SCSI-3. Similarly, no version of the
standard requires low-voltage-differential (LVD) signalling, but products called Ultra-2 SCSI
include this capability. This terminology is helpful to consumers, because "Ultra-2 SCSI" device
has a better-defined set of capabilities than simply identifying it as "SCSI-3."

Starting with SCSI-3, the SCSI standard has been maintained as a loose collection of standards,
each defining a certain piece of the SCSI architecture, and bound together by the SCSI
Architectural Model. This change divorces SCSI's various interfaces from the command set,
allowing devices that support SCSI commands to use any interface (including ones not otherwise
specified by T10), and also allowing the interfaces that are defined by T10 to develop on their
own terms. This change is also why there is no "SCSI-4".

No version of the standard has ever specified what kind of connector should be used. See
"Connectors," below.

The mainstream implementations of SCSI (in chronological order) are as follows, using common
parlance:

SCSI interface overview

Max Devices
Bus Clock
Interface Max Throughput Max Cable Length (not including
Width Speed
HBA)
SCSI 8-bit 5 MHz 5 MB/s 6m 7
Fast SCSI 8-bit 10 MHz 10 MB/s 1.5-3 m 7
Fast-Wide
16-bit 10 MHz 20 MB/s 1.5-3 m 15
SCSI
Ultra SCSI 8-bit 20 MHz 20 MB/s 1.5-3 m 7
Ultra Wide
16-bit 20 MHz 40 MB/s 1.5-3 m 15
SCSI
Ultra2
8-bit 40 MHz 40 MB/s 12 m 7
SCSI
Ultra2
16-bit 40 MHz 80 MB/s 12 m 15
Wide SCSI
Ultra3 40 MHz
16-bit 160 MB/s 12 m 15
SCSI DDR
Ultra-320 80 MHz
16-bit 320 MB/s 12 m 15
SCSI DDR
Ultra-640 16-bit 160 640 MB/s ?m 15
MHz
SCSI
DDR
200 40 MB/s spatial
SSA 1 bit 25 m 96
Mbit reuse; full duplex
400 80 MB/s spatial
SSA 40 1 bit 25 m 96
Mbit reuse; full duplex
100 MB/s
500m(multiMode),
FC-AL 1Gb 1 bit 1 Gbit per direction; full 127
3km(monoMode)
duplex
200 MB/s
500m(multiMode),
FC-AL 2Gb 1 bit 2 Gbit per direction; full 127
3km(monoMode)
duplex
400 MB/s
500m(multiMode),
FC-AL 4Gb 1 bit 4 Gbit per direction; full 127
3km(monoMode)
duplex
iSCSI Dependent upon IP network ??
300 MB/s
SAS 3 16,256 (128 per
1 bit N/A per direction; full 6 m
Gbit/s expander)
duplex

SCSI-1

The original standard that was derived from SASI and formally adopted in 1986 by ANSI. SCSI-
1 features an 8-bit parallel bus (with parity), running asynchronously at 3.5 MB/s or 5 MB/s in
synchronous mode, and a maximum bus cable length of 6 meters (just under 20 feet—compared
to the 18 inch (0.45 meter) limit of the ATA interface). A rarely seen variation on the original
standard included a high-voltage differential (HVD) implementation whose maximum cable
length was 25 meters.

SCSI-2

This standard was introduced in 1994 and gave rise to the Fast SCSI and Wide SCSI variants.
Fast SCSI doubled the maximum transfer rate to 10 MB/s and Wide SCSI doubled the bus width
to 16 bits on top of that (to reach 20 MB/s). However, these improvements came at the cost of a
reduced maximum cable length to 3 meters. SCSI-2 also specified a 32-bit version of Wide
SCSI, which used 2 16-bit cables per bus; this was largely ignored by SCSI device makers
because it was expensive and unnecessary, and was officially retired in SCSI-3.

SCSI-3
Before Adaptec and later SCSITA codified the terminology, the first parallel SCSI devices that
exceeded the SCSI-2 capabilities were simply designated SCSI-3. These devices, also known as
Ultra SCSI and fast-20 SCSI, were introduced in 1996. The bus speed doubled again to 20 MB/s
for narrow (8 bit) systems and 40 MB/s for wide (16-bit). The maximum cable length stayed at
3 meters but single-ended Ultra SCSI developed an undeserved reputation for extreme sensitivity
to cable length and condition (faulty cables, connectors or terminators were often to blame for
instability problems).

Ultra-2

This standard was introduced c. 1997 and featured a low-voltage differential (LVD) bus. For this
reason ultra-2 is sometimes referred to as LVD SCSI. LVD's greater immunity to noise allowed a
maximum bus cable length of 12 meters. At the same time, the data transfer rate was increased to
80 MB/s. Ultra-2 SCSI actually had a relatively short lifespan, as it was soon superseded by
Ultra-3 (Ultra-160) SCSI.

Ultra-3

Also known as Ultra-160 SCSI and introduced toward the end of 1999, this version was
basically an improvement on the ultra-2 standard, in that the transfer rate was doubled once more
to 160 MB/s by the use of double transition clocking. Ultra-160 SCSI offered new features like
cyclic redundancy check (CRC), an error correcting process, and domain validation.

Ultra-320

This is the Ultra-160 standard with the data transfer rate doubled to 320 MB/s. The latest
working draft for this standard is revision 10 and is dated May 6, 2002. Nearly all new SCSI hard
drives being manufactured at the time of this writing (October 2003) are actually Ultra-320
devices.
Ultra-640

Ultra-640 (otherwise known as Fast-320) was promulgated as a standard (INCITS 367-2003 or


SPI-5) in early 2003. Ultra-640 doubles the interface speed yet again, this time to 640 MB/s.
Ultra-640 pushes the limits of LVD signaling; the speed limits cable lengths drastically, making
it impractical for more than one or two devices. Because of this, most manufacturers have
skipped over Ultra640 and are developing for Serial Attached SCSI instead.

iSCSI

iSCSI preserves the basic SCSI paradigm, especially the command set, almost unchanged. iSCSI
advocates project the iSCSI standard, an embedding of SCSI-3 over TCP/IP, as displacing Fibre
Channel in the long run, arguing that Ethernet data rates are currently increasing faster than data
rates for Fibre Channel and similar disk-attachment technologies. iSCSI could thus address both
the low-end and high-end markets with a single commodity-based technology.

Serial SCSI

Four recent versions of SCSI, SSA, FC-AL, IEEE1394, and Serial Attached SCSI (SAS) break
from the traditional parallel SCSI standards and perform data transfer via serial
communications. Although much of the documentation of SCSI talks about the parallel
interface, most contemporary development effort is on serial SCSI. Serial SCSI has
number of advantages over parallel SCSI—faster data rates, hot swapping, and improved
fault isolation. Serial SCSI devices are more expensive than the equivalent parallel SCSI
devices but this is likely to change soon.

Connectors

Centronics 50 SCSI plug

IDC 50 SCSI plug


Centronics 50 SCSI sockets

No version of the standard has ever specified what kind of connector should be used. Specific
types of connectors for parallel SCSI devices were developed by vendors over time. Connectors
for serial SCSI devices have diversified into different families for each type of serial SCSI
protocol. This is a brief summary, but see the SCSI connector article for a more detailed
description.

Parallel SCSI connectors

Although parallel SCSI-1 devices typically used bulky Blue Ribbon Centronics connectors, and
SCSI-2 devices typically used Mini-D connectors, it is not correct to refer to these as "SCSI-1"
and "SCSI-2" connectors. One valid rule is that connectors for wide SCSI buses have more pins
and wires than those for narrow SCSI buses. A Centronics-50 or HD-50 connector is for narrow
SCSI, while a Centronics-68 or HD-68 connector is for wide SCSI. On some early devices, wide
parallel SCSI busses used two or four connectors and cables while narrow SCSI busses used only
one.

The first parallel SCSI connectors were the Centronics type. They then evolved through two
main stages, High-Density (HD) and most recently SCA - 80 pin.

With the HD connectors, a cable normally has male connectors while a SCSI device (e.g. host
adapter, disk drive) has female. A female connector on a cable is meant to connect to another
cable (for additional length or additional device connections).

Serial SCSI connectors

Most modern server-class SCSI devices use some form of serial SCSI. This could be SSA, FC-
AL, iSCSI or SAS. This has led to a diversity of cables and disk-drive connectors. See the SCSI
connector article for a more detailed description.

SCSI command protocol

In addition to many different hardware implementations, the SCSI standards also include a
complex set of command protocol definitions. The SCSI command architecture was originally
defined for parallel SCSI buses but has been carried forward with minimal change for use with
iSCSI and serial SCSI.
In SCSI terminology, communication takes place between an initiator and a target. The initiator
sends a command to the target which then responds. SCSI commands are sent in a Command
Descriptor Block (CDB). The CDB consists of a one byte operation code followed by five or
more bytes containing command-specific parameters.

At the end of the command sequence the target returns a Status Code byte which is usually 00h
for success, 02h for an error (called a Check Condition), or 08h for busy. When the target returns
a Check Condition in response to a command, the initiator usually then issues a SCSI Request
Sense command in order to obtain a Key Code Qualifier (KCQ) from the target. The Check
Condition and Request Sense sequence involves a special SCSI protocol called a Contingent
Allegiance Condition.

There are 4 categories of SCSI commands: N (non-data), W (writing data from initiator to
target), R (reading data), and B (bidirectional). There are about 60 different SCSI commands in
total, with the most common being:

• Test unit ready: ask the device if it is ready for data transfers (disk spun up, media
loaded...)
• Inquiry: return basic device information, also used to "ping" the device since it does not
modify sense data
• Request sense: give any error codes from the previous command that returned an error
status
• Send diagnostic and Receive diagnostic results: run a simple self-test, or a specialised test
defined in a diagnostic page
• Start/Stop unit: spin disks up and down, load/unload media
• Read capacity: return storage capacity
• Format unit
• Read (four variants)
• Write (four variants)
• Log sense: return current information from log pages
• Mode sense: return current device parameters from mode pages
• Mode select: set device parameters in a mode page

Each device on the SCSI bus is assigned at least one logical unit number (LUN). Simple devices
have just one LUN, more complex devices may have multiple LUNs. A "direct access" (i.e. disk
type) storage device consists of a number of logical blocks, usually referred to by the term
Logical Block Address (LBA). A typical LBA equates to 512 bytes of storage. The usage of
LBAs has evolved over time and so four different command variants are provided for reading
and writing data. The Read(6) and Write(6) commands contain a 21-bit LBA address. The
Read(10), Read(12), Read Long, Write(10), Write(12), and Write Long commands all contain a
32-bit LBA address plus various other parameter options.

A "sequential access" (i.e. tape type) device does not have a specific capacity because it typically
depends on the length of the tape, which is not known exactly. Reads and writes on a sequential
access device happen at the current position, not at a specific LBA. The block size on sequential
access devices can typically vary.
Compatibility

For purposes of discussing compatibility, remember that SCSI devices include both host adapters
and peripherals such as disk drives. When you ask whether you can cable a certain host adapter
to a certain disk drive, you are asking whether you can attach those two SCSI devices to the
same SCSI bus.

Different SCSI transports, which are not compatible with each other, usually have unique
connectors to avoid accidental mis-plugging of incompatible devices. For example it is not
possible to plug a parallel SCSI disk into an FC-AL backplane, nor to connect a cable between
an SSA initiator and an FC-AL enclosure.

SCSI devices in the same SCSI transport family are generally backward-compatible. Within the
parallel SCSI family, for example, it is possible to connect an ultra-3 SCSI hard disk to an ultra-2
SCSI controller and use it (though with reduced speed and feature set). However there are some
compatibility issues with parallel SCSI busses which are described in the rest of this section.

Ultra-2, ultra-160 and ultra-320 devices may be freely mixed on the parallel LVD bus with no
compromise in performance, as the host adapter will negotiate the operating speed and bus
management requirements for each device. You can attach Single-ended and LVDS devices to
the same bus, but all devices will run at the slower single-ended speed. The SPI-5 standard
(which describes Ultra-640) deprecates single-ended devices, so future devices may not be
electrically backward compatible.

You can attach both narrow and wide SCSI devices to the same parallel bus. To do this, you
must put all the narrow SCSI devices at one end and all the wide SCSI devices at the other end,
and terminate the high half of the bus in between (because the high half of the bus ends with the
last wide SCSI device). You can get a cable designed to connect the wide part of the bus to the
narrow part which either provides a place to plug in a terminator for the high half or includes the
terminator itself. This is sometimes referred to as a cable with high-9 termination. Specific
commands allow the devices to determine whether their partners are using the whole wide bus or
just the lower half and drive the bus accordingly.

As an example of a mixed bus, consider a SCSI wide host adapter with a HD-68 male connector
connected to a SCSI narrow disk drive with a HD-50 female connector. You might make this
connection with a cable that has an HD-68 female connector on one end and an HD-50 male
connector on the other. Inside the cable's HD-68 connector, there is termination for the high half
of the bus and the cable contains wires for only the low half. The host adapter determines that the
disk drive uses only the low half of the bus, so talks to it using only the lower half. The converse
example—a SCSI narrow host adapter and SCSI wide disk drive also works.

Modern Single Connector Attachment (SCA) parallel SCSI devices may be connected to older
controller/drive chains by using SCA adapters. Although these adapters often have auxiliary
power connectors, use caution: it is possible to destroy the drive by connecting external power.
Always try the drive without auxiliary power first.
Each parallel SCSI device (including the computer's host adapter) must be configured to have a
unique SCSI ID on the bus. Also, any parallel SCSI bus must be terminated at both ends with the
correct type of terminator. Both active and passive terminators are in common use, with the
active type much preferred (and required on LVD buses). Improper termination is a common
problem with parallel SCSI installations. In early SCSI buses, one had to attach a physical
terminator to each end, but modern SCSI devices often have terminators built in, and you just
have to switch termination on somehow on the devices at either end of the bus. Advanced SCSI
devices actually detect whether they are last on the bus and switch termination on or off
automatically.

SCSI device identification

In the modern SCSI transport protocols, there is an automated process of "discovery" of the IDs.
SSA initiators "walk the loop" to determine what devices are there and then assign each one a 7-
bit "hop-count" value. FC-AL initiators use the LIP (Loop Initialization Protocol) to interrogate
each device port for its WWN (World Wide Name). For iSCSI, because of the unlimited scope of
the (IP) network, the process is quite complicated. These discovery processes occur at power-
on/initialization time and also if the bus topology changes later, for example if an extra device is
added.

On a parallel SCSI bus, a device (e.g. host adapter, disk drive) is identified by a "SCSI ID",
which is a number in the range 0-7 on a narrow bus and in the range 0–15 on a wide bus. You
usually set the SCSI ID of the initiator (host adapter) with a physical jumper or switch on early
models. On modern (since about 1997) host adapters, you set the SCSI ID by doing I/O to the
adapter; for example, the adapter often contains a BIOS program that runs when the computer
boots up and that program has menus that let you choose the SCSI ID of the host adapter. Or the
host adapter may come with software you can install on the computer to do this. The traditional
SCSI ID for a host adapter is 7, as that ID has the highest priority during bus arbitration (even on
a 16 bit bus).

You set the SCSI ID for a target (e.g. disk drive) either with physical jumpers or by your choice
of the slot in which you install the drive in a drive enclosure (each connector on the enclosure's
back plane delivers control signals to the drive to select a unique SCSI ID). A SCSI enclosure
without a backplane often has a switch for each drive in the enclosure to choose the drive's SCSI
ID. The way this works is that the enclosure has a connector that you plug into the drive where
jumpers are supposed to go; the switch emulates the necessary jumpers. While there is no
standard that makes this work, drive designers typically set up their jumper headers in the way
that these switches implement.

Note that a SCSI target device (which can be called a "physical unit") is often divided into
smaller "logical units." For example, a high-end disk subsystem may be a single SCSI device but
contain dozens of individual disk drives, each of which is a logical unit (more commonly, it is
not that simple—virtual disk devices are generated by the subystem based on the storage in those
physical drives, and each virtual disk device is a logical unit). The SCSI ID, WWNN, etc. in this
case identifies the whole subsystem, and a second number, the logical unit number (LUN)
identifies a disk device within the subsystem.
It is quite common, though incorrect, to refer to the logical unit itself as a "LUN." Accordingly,
you may see the actual LUN called a "LUN number" or "LUN id".

SCSI enclosure services

In larger SCSI servers, the disk-drive devices are housed in an intelligent enclosure that supports
SCSI Enclosure Services (SES). The initiator can communicate with the enclosure using a
specialised set of SCSI commands to access power, cooling, and other non-data characteristics.

2.4 Integrated Device Electronics


No matter what you do with your computer, storage is an important part of your system. In fact,
most personal computers have one or more of the following storage devices:

• Floppy drive
• Hard drive
• CD-ROM drive

The hard drive and circuit board combination


that typify IDE devices

Usually, these devices connect to the computer through an Integrated Drive Electronics (IDE)
interface. Essentially, an IDE interface is a standard way for a storage device to connect to a
computer. IDE is actually not the true technical name for the interface standard. The original
name, AT Attachment (ATA), signified that the interface was initially developed for the IBM
AT computer. In this article, you will learn about the evolution of IDE/ATA, what the pinouts
are and exactly what "slave" and "master" mean in IDE.
IDE Evolution

IDE was created as a way to standardize the use of hard drives in computers. The basic concept
behind IDE is that the hard drive and the controller should be combined. The controller is a small
circuit board with chips that provide guidance as to exactly how the hard drive stores and
accesses data. Most controllers also include some memory that acts as a buffer to enhance hard
drive performance.

Before IDE, controllers and hard drives were separate and often proprietary. In other words, a
controller from one manufacturer might not work with a hard drive from another manufacturer.
The distance between the controller and the hard drive could result in poor signal quality and
affect performance. Obviously, this caused much frustration for computer users.

The birth of the IDE interface led to combining a controller like this one with a hard drive.

IBM introduced the AT computer in 1984 with a couple of key innovations.

• The slots in the computer for adding cards used a new version of the Industry Standard
Architecture (ISA) bus. The new bus was capable of transmitting information 16 bits at
a time, compared to 8 bits on the original ISA bus.
• IBM also offered a hard drive for the AT that used a new combined drive/controller. A
ribbon cable from the drive/controller combination ran to an ISA card to connect to the
computer, giving birth to the AT Attachment (ATA) interface.

In 1986, Compaq introduced IDE drives in their Deskpro 386. This drive/controller combination
was based on the ATA standard developed by IBM. Before long, other vendors began offering
IDE drives. IDE became the term that covered the entire range of integrated drive/controller
devices. Since almost all IDE drives are ATA-based, the two terms are used interchangeably.

Controllers, Drives, Host Adapters


Most motherboards come with an IDE interface. This interface is often referred to as an IDE
controller, which is incorrect. The interface is actually a host adapter, meaning that it provides a
way to connect a complete device to the computer (host). The actual controller is on a circuit
board attached to the hard drive. That's the reason it's called Integrated Drive Electronics in the
first place!

A close-up of the primary and secondary IDE interfaces


on a motherboard

While the IDE interface was originally developed for connecting hard drives, it has evolved into
the universal interface for connecting internal floppy drives, CD-ROM drives and even some
tape backup drives. Although it is very popular for internal drives, IDE is rarely used for
attaching an external device.

There are several variations of ATA, each one adding to the previous standard and maintaining
backward compatibility.

The standards include:

• ATA-1 - The original specification that Compaq included in the Deskpro 386. It
instituted the use of a master/slave configuration. ATA-1 was based on a subset of the
standard ISA 96-pin connector that uses either 40 or 44 pin connectors and cables. In the
44-pin version, the extra four pins are used to supply power to a drive that doesn't have a
separate power connector. Additionally, ATA-1 provides signal timing for direct
memory access (DMA) and programmed input/output (PIO) functions. DMA means that
the drive sends information directly to memory, while PIO means that the computer's
central processing unit (CPU) manages the information transfer. ATA-1 is more
commonly known as IDE.
• ATA-2 - DMA was fully implemented beginning with the ATA-2 version. Standard
DMA transfer rates increased from 4.16 megabytes per second (MBps) in ATA-1 to as
many as 16.67 MBps. ATA-2 provides power management, PCMCIA card support and
removable device support. ATA-2 is often called EIDE (Enhanced IDE), Fast ATA or
Fast ATA-2. The total hard drive size supported increased to 137.4 gigabytes. ATA-2
provided standard translation methods for Cylinder Head Sector (CHS) for hard drives
up to 8.4 gigabytes in size. CHS is how the system determines where the data is located
on a hard drive. The reason for the big discrepancy between total hard drive size and
CHS hard drive support is because of the bit sizes used by the basic input/output system
(BIOS) for CHS. CHS has a fixed length for each part of the address. Look at this chart:
Cylinder 10-bit 1024
Head 8-bit 256
Sector 6-bit 63*
• You will note that the number of sectors is 63 instead of 64. This is because a sector
cannot begin with zero. Each sector holds 512 bytes. If you multiply 1,024 x 256 x 63 x
512, you will get 8,455,716,864 bytes or approximately 8.4 gigabytes. Newer BIOS
versions increased the bit size for CHS, providing support for the full 137.4 gigabytes.
• ATA-3 - With the addition of Self-Monitoring Analysis and Reporting Technology
(SMART), IDE drives were made more reliable. ATA-3 also adds password protection to
access drives, providing a valuable security feature.
• ATA-4 - Probably the two biggest additions to the standard in this version are Ultra
DMA support and the integration of the AT Attachment Program Interface (ATAPI)
standard. ATAPI provides a common interface for CD-ROM drives, tape backup drives
and other removable storage devices. Before ATA-4, ATAPI was a completely separate
standard. With the inclusion of ATAPI, ATA-4 immediately improved the removable
media support of ATA. Ultra DMA increased the DMA transfer rate from ATA-2's 16.67
MBps to 33.33 MBps. In addition to the existing cable that uses 40 pins and 40
conductors (wires), this version introduces a cable that has 80 conductors. The other 40
conductors are ground wires interspersed between the standard 40 conductors to improve
signal quality. ATA-4 is also known as Ultra DMA, Ultra ATA and Ultra ATA/33.
• ATA-5 - The major update in ATA-5 is auto detection of which cable is used: the 40-
conductor or 80-conductor version. Ultra DMA is increased to 66.67 MB/sec with the use
of the 80-conductor cable. ATA-5 is also called Ultra ATA/66.

Cable Key

IDE devices use a ribbon cable to connect to each other. Ribbon cables have all of the wires laid
flat next to each other instead of bunched or wrapped together in a bundle. IDE ribbon cables
have either 40 or 80 wires. There is a connector at each end of the cable and another one about
two-thirds of the distance from the motherboard connector. This cable cannot exceed 18 inches
(46 cm) in total length (12 inches from first to second connector, and 6 inches from second to
third) to maintain signal integrity. The three connectors are typically different colors and attach
to specific items:

• The blue connector attaches to the motherboard.


• The black connector attaches to the primary (master) drive.
• The grey connector attaches to the secondary (slave) drive.

Along one side of the cable is a stripe. This stripe tells you that the wire on that side is attached
to Pin 1 of each connector. Wire 20 is not connected to anything. In fact, there is no pin at that
position. This position is used to ensure that the cable is attached to the drive in the correct
position. Another way that manufacturers make sure the cable is not reversed is by using a cable
key. The cable key is a small, plastic square on top of the connector on the ribbon cable that fits
into a notch on the connector of the device. This allows the cable to attach in only one position.

The connector on an IDE cable


Pin Description Pin Description
1 Reset 23 -IOW
2 Ground 24 Ground
3 Data Bit 7 25 -IOR
4 Data Bit 8 26 Ground
5 Data Bit 6 27 I/O Channel Ready
6 Data Bit 9 28 SPSYNC: Cable Select
7 Data Bit 5 29 -DACK 3
8 Data Bit 10 30 Ground
9 Data Bit 4 31 RQ 14
10 Data Bit 11 32 -IOCS 16
11 Data Bit 3 33 Address Bit 1
12 Data Bit 12 34 -PDIAG
13 Data Bit 2 35 Address Bit 0
14 Data Bit 13 36 Address Bit 2
15 Data Bit 1 37 -CS1FX
16 Data Bit 14 38 -CS3FX
17 Data Bit 0 39 -DA/SP
18 Data Bit 15 40 Ground
19 Ground 41 +5 Volts (Logic) (Optional)
20 Cable Key (pin missing) 42 +5 Volts (Motor) (Optional)
21 DRQ 3 43 Ground (Optional)
22 Ground 44 -Type (Optional)

Note that the last four pins are only used by devices that require power through the ribbon cable.
Typically, such devices are hard drives that are too small (for example, 2.5 inches) to need a
separate power supply.

Masters and Slaves

A single IDE interface can support two devices. Most motherboards come with dual IDE
interfaces (primary and secondary) for up to four IDE devices. Because the controller is
integrated with the drive, there is no overall controller to decide which device is currently
communicating with the computer. This is not a problem as long as each device is on a separate
interface, but adding support for a second drive on the same cable took some ingenuity.

To allow for two drives on the same cable, IDE uses a special configuration called master and
slave. This configuration allows one drive's controller to tell the other drive when it can transfer
data to or from the computer. What happens is the slave drive makes a request to the master
drive, which checks to see if it is currently communicating with the computer. If the master drive
is idle, it tells the slave drive to go ahead. If the master drive is communicating with the
computer, it tells the slave drive to wait and then informs it when it can go ahead.

The computer determines if there is a second (slave) drive attached through the use of Pin 39 on
the connector. Pin 39 carries a special signal, called Drive Active/Slave Present (DASP), that
checks to see if a slave drive is present.

Although it will work in either position, it is recommended that the master drive is attached to
the connector at the very end of the IDE ribbon cable. Then, a jumper on the back of the drive
next to the IDE connector must be set in the correct position to identify the drive as the master
drive. The slave drive must have either the master jumper removed or a special slave jumper set,
depending on the drive. Also, the slave drive is attached to the connector near the middle of the
IDE ribbon cable. Each drive's controller board looks at the jumper setting to determine whether
it is a slave or a master. This tells them how to perform. Every drive is capable of being either
slave or master when you receive it from the manufacturer. If only one drive is installed, it
should always be the master drive.
Many drives feature an option called Cable Select (CS). With the correct type of IDE ribbon
cable, these drives can be auto configured as master or slave. CS works like this: A jumper on
each drive is set to the CS option. The cable itself is just like a normal IDE cable except for one
difference -- Pin 28 only connects to the master drive connector. When your computer is
powered up, the IDE interface sends a signal along the wire for Pin 28. Only the drive attached to
the master connector receives the signal. That drive then configures itself as the master drive.
Since the other drive received no signal, it defaults to slave mode.

2.5 Universal Serial Bus


Universal Serial Bus (USB) is a serial bus standard to interface devices. It was originally
designed for computers, but its popularity has prompted it to also become commonplace on
video game consoles, PDAs, portable DVD and media players, cellphones; and even devices
such as televisions, home stereo equipment (e.g., digital audio players), car stereos and portable
memory devices. The radio spectrum based USB implementation is known as Wireless USB.

------------------------------------------------------------------------------------------------------------

The USB "trident" Icon

Year Created: Jan 1996


Width: 1 bits
Number of Devices: 127 per host
Speed: up to 480 Mbit/s
Style: Serial
Hotplugging? yes
External? yes

------------------------------------------------------------------------------------------------------------

The USB (Type A and B) Connectors


A USB Series “A” plug

Overview

The Universal Serial Bus (USB) was devised as a major component in the transition towards a
legacy-free PC. The intention was to let go of all older serial and parallel ports on personal
computers since these were not properly standardized, and required a multitude of device drivers
to be developed and maintained.

A USB system has an asymmetric design, consisting of a host controller and multiple daisy-
chained devices. Additional USB hubs may be included in the chain, allowing branching into a
tree structure, subject to a limit of 5 levels of branching per controller. No more than 127
devices, including the bus devices, may be connected to a single host controller. Modern
computers often have several host controllers, allowing a very large number of USB devices to
be connected. USB cables do not need to be terminated.

Because of the capability of daisy-chaining USB devices, early USB announcements predicted
that each USB device would include a USB port to allow for long chains of devices. In this
model, computers would not need many USB ports, and computers shipped at this time typically
had only two. However, for economical and technical reasons, daisy chaining never became
widespread. To reduce the necessity of USB hubs, computers now come with a large number of
USB ports, typically six. Most modern desktop computers have up to half of their total
complement of USB ports on the front panel, to facilitate temporary connection of portable
devices.

USB was designed to allow peripherals to be connected without the need to plug expansion cards
into the computer's ISA, EISA, or PCI bus, and to improve plug-and-play capabilities by
allowing devices to be hot-swapped (connected or disconnected without powering down or
rebooting the computer). When a device is first connected, the host enumerates and recognizes it,
and loads the device driver it needs.
A USB hub

USB can connect peripherals such as mouse devices, keyboards, gamepads and joysticks,
scanners, digital cameras, printers, external storage, networking components, etc. For many
devices such as scanners and digital cameras, USB has become the standard connection method.
USB is also used extensively to connect non-networked printers, replacing the parallel ports
which were widely used; USB simplifies connecting several printers to one computer. As of
2004 there were about 1 billion USB devices in the world. As of 2005, the only large classes of
peripherals that cannot use USB are high data rate devices such as displays and monitors, and
high-quality digital video components. USB cannot provide the data rates necessary for these
devices.

Speeds

• A Low Speed rate of 1.5 Mbit/s (187.5 KB/s)


• A Full Speed rate of 12 Mbit/s (1.5 MB/s).
• A Hi-Speed rate of 480 Mbit/s (60 MB/s).

(full technical details below)

Potential sources of confusion:


• Devices marketed as "Full Speed" or "2.0" may not be capable of the current fastest
speeds. Only the terms "Hi-Speed" or "480 Mb/s" have a clear, honest, definite meaning.
• Hubs, even Hi-Speed hubs, serving a number of non-hi-speed devices, are likely to divide
up a total bandwidth of 12 Mb/s for such devices, which might slow them down.
• Hi-speed devices are advertised as "up to 480 Mb/s", but don't actually operate at that full
theoretical (60 MBytes/s) data throughput rate. The maximum rate currently (2006)
attained with real devices is about half, 30 MB/s. Most hi-speed USB devices typically
operate at much slower speeds, often about 3MB/s overall, sometimes up to 10-20 MB/s.

Standardization
The design of USB is standardized by the USB Implementers Forum (USB-IF), an industry
standards body incorporating leading companies from the computer and electronics industries.
Notable members have included Apple Computer, Hewlett-Packard, NEC, Microsoft, Intel, and
Agere.

As of 2006 the USB specification is at version 2.0 (with revisions). Hewlett-Packard, Intel,
Lucent, Microsoft, NEC, and Philips jointly led the initiative to develop a higher data transfer
rate than the 1.1 specification. The USB 2.0 specification was released in April 2000 and was
standardized by the USB-IF at the end of 2001. Previous notable releases of the specification
were 0.9, 1.0, and 1.1. Equipment conforming with any version of the standard will also work
with devices designed to any previous specification (known as: backwards compatibility).

Smaller USB plugs and receptacles, called Mini-A and Mini-B, are also available, as specified
by the On-The-Go Supplement to the USB 2.0 Specification. As of 2006, the specification is
at revision 1.2.

Technical details

PCB mounting USB receptacles

USB endpoints actually reside on the connected device: the channels to the host are referred to as
pipes

USB connects several devices to a host controller through a chain of hubs. In USB terminology
devices are referred to as functions, because each individual physical device may actually host
several functions, such as a router that is a Secure Digital Card reader at the same time. The hubs
are special purpose devices that are not officially considered functions. There always exists one
hub known as the root hub, which is attached directly to the host controller.

These devices/functions (and hubs) have associated pipes (logical channels) which are
connections from the host controller to a logical entity on the device named an endpoint. The
pipes are synonymous to byte streams such as in the pipelines of Unix, however the term
endpoint is also (sloppily) used to mean the entire pipe, even in the standard USB
documentation.
These endpoints (and their respective pipes) are numbered 0-15 in each direction, so a
device/function can have up to 32 active pipes, 16 into the host controller and 16 out of the
controller.

Each endpoint can transfer data in one direction only, either into or out of the device/function, so
each pipe is uni-directional. Endpoint 0 is however reserved for the bus management in both
directions and thus takes up two of the 32 endpoints — all USB devices are required to
implement endpoint 0, so there is always an inward and an outward pipe numbered 0 on any
given device.

In these pipes, data is transferred in packets of varying length. Each pipe has a maximum packet
length, typically 2n bytes, so a USB packet will often contain something on the order of 8, 16, 32,
64, 128, 256 up to 512 bytes.

The pipes are also divided into four different categories by way of their transfer type:

• control transfers - typically used for short, simple commands to the device, and a status
response, used e.g. by the bus control pipe number 0
• isochronous transfers - at some guaranteed speed (often but not necessarily as fast as
possible) but with possible data loss, e.g. realtime audio or video
• interrupt transfers - devices that need guaranteed quick responses (bounded latency), e.g.
pointing devices and keyboards
• bulk transfers - large sporadic transfers using all remaining available bandwidth (but with
no guarantees on bandwidth or latency), e.g. file transfers

Host controllers

The hardware that contains the host controller and the root hub has an interface geared toward
the programmer which is called Host Controller Device (HCD) and is defined by the hardware
implementer. In practice, these are hardware registers (ports) in the computer.

At version 1.0 and 1.1 there were two competing HCD implementations. Compaq's Open Host
Controller Interface (OHCI) was adopted as the standard by the USB-IF. However, Intel
subsequently created a specification they called the Universal Host Controller Interface (UHCI)
and insisted other implementers pay to license and implement UHCI. VIA Technologies licensed
the UHCI standard from Intel; all other chipset implementers use OHCI. The main difference
between OHCI and UHCI is the fact that UHCI is more software-driven than OHCI is, making
UHCI slightly more processor-intensive but cheaper to implement (excluding the license fees).
The dueling implementations forced operating system vendors and hardware vendors to develop
and test on both implementations which increased cost. During the design phase of USB 2.0 the
USB-IF insisted on only one implementation. The USB 2.0 HCD implementation is called the
Extended Host Controller Interface (EHCI). Only EHCI can support hi-speed transfers. Each
EHCI controller contains four virtual HCD implementations to support Full Speed and Low
Speed devices. The virtual HCD on Intel and VIA EHCI controllers are UHCI. All other vendors
use virtual OHCI controllers.
On Microsoft Windows platforms, one can tell whether a USB port is version 2.0 by opening the
Device Manager and checking for the word "Enhanced" in its description; only USB 2.0 drivers
will contain the word "Enhanced." On Linux systems, the lspci -v command will list all PCI
devices, and USB controllers will be named OHCI, UHCI or EHCI respectively, which is also
the case in the Mac OS X system profiler. On BSD systems, dmesg will show the detailed
information hierarchy.

USB signaling

Pin numbers (looking at socket):

Pin assignments
Pin Function
1 VBUS (4.75–5.25 volts)
2 D−
3 D+
4 GND
Shell Shield

USB signals are transmitted on a twisted pair of data cables, labelled D+ and D−. These
collectively use half-duplex differential signaling to combat the effects of electromagnetic noise
on longer lines. D+ and D− usually operate together; they are not separate simplex connections.
Transmitted signal levels are 0.0–0.3 volts for low and 2.8–3.6 volts for high.

Transfer speed

USB supports three data rates.

• A Low Speed rate of 1.5 Mbit/s (187.5 kB/s) that is mostly used for Human Interface
Devices (HID) such as keyboards, mice, and joysticks.
• A Full Speed rate of 12 Mbit/s (1.5 MB/s). Full Speed was the fastest rate before the
USB 2.0 specification and many devices fall back to Full Speed. Full Speed devices
divide the USB bandwidth between them in a first-come first-served basis and it is not
uncommon to run out of bandwidth with several isochronous devices. All USB Hubs
support Full Speed.
• A Hi-Speed rate of 480 Mbit/s (60 MB/s).

The USB specification provides a 5 V (volts) supply on a single wire from which connected USB
devices may draw power. The specification provides for no more than 5.25 V and no less than
4.35 V between the +ve and -ve bus power lines.
Initially, a device is only allowed to draw 100 mA. It may request more current from the
upstream device in units of 100 mA up to a maximum of 500 mA. In practice, most ports will
deliver the full 500 mA or more before shutting down power, even if the device hasn't requested
it or even identified itself. If a (compliant) device requires more power than is available, then it
cannot operate until the user changes the network (either by rearranging USB connections or by
adding external power) to supply the power required.

If a bus-powered hub is used, the devices downstream may only use a total of four units — 400
mA — of current. This limits compliant bus-powered hubs to 4 ports, among other things.
Equipment requiring more than 500 mA, hubs with more than 4 ports and hubs with downstream
devices using more than four 100 mA units total must provide their own power. The host
operating system typically keeps track of the power requirements of the USB network and may
warn the computer's operator when a given segment requires more power than is available.

Storage

A Flash Drive, a typical USB mass-storage device

USB implements connections to storage devices using a set of standards called the USB mass-
storage device class (referred to as MSC or UMS). This was initially intended for traditional
magnetic and optical drives, but has been extended to support a wide variety of devices. USB is
not intended to be a primary bus for a computer's internal storage: buses such as ATA (IDE),
Serial ATA (SATA), and SCSI fulfill that role.

However, USB has one important advantage in making it possible to install and remove devices
without opening the computer case, making it useful for external drives. Today a number of
manufacturers offer external portable USB hard drives, or empty enclosures for drives, that offer
performance comparable to internal drives. These external drives usually contain a translating
device that interfaces a drive of conventional technology (IDE, ATA, SATA, ATAPI, or even
SCSI) to a USB port. Functionally, the drive appears to the user just like another internal drive.
Other competing standards that allow for external connectivity are eSATA and Firewire.

Version history
Original USB Logo

Hi-Speed USB Logo

• USB 0.7: Released in November 1994.

• USB 0.8: Released in December 1994.

• USB 0.9: Released in April 1995.

• USB 0.99: Released in August 1995.

• USB 1.0 Release Candidate: Released in November 1995.

• USB 1.0: Released in January 1996.


Specified data rates of 1.5 Mbps (Low-Speed) and 12 Mbps (Full-Speed). Did not
anticipate or pass-through monitors. Few such devices actually made it to market.

• USB 1.1: Released in September 1998.


Fixed problems identified in 1.0, mostly relating to hubs. Earliest revision to be widely
adopted.

• USB 2.0: Released in April 2000.


Added higher maximum speed of 480 Mbps (now called Hi-Speed). Current revision.
Allowed Low-Speed and Full-Speed to be designated as 2.0 compliant (a major
confusion factor to the market).

• USB 2.0: Revised in December 2002.


Added specification clarifications.

USB On-The-Go Supplement

USB OTG Logo

• USB On-The-Go Supplement 1.0: Released in December 2001.

• USB On-The-Go Supplement 1.0a: Released in June 2003.

• USB On-The-Go Supplement 1.2: Released in April 2006. This is the current revision.

Wireless USB
Wireless USB Logo

Released on May 12, 2005. Wireless USB uses UWB (Ultra Wide Band) as the radio technology.

You might also like