Overview and History of the SCSI Interface
What we currently know of as the SCSI
interface had its beginnings back in 1979. Shugart Associates, led by
storage industry pioneer Alan Shugart (who was a leader in the
development of the floppy disk, and later founded Seagate Technology)
created the
Shugart Associates Systems Interface
(SASI).
This very early predecessor of SCSI was very rudimentary in terms of its
capabilities, supporting only a limited set of commands compared to even
fairly early "true" SCSI, and rather slow signaling speeds of 1.5
Mbytes/second. For its time, SASI was a great idea, since it was the
first attempt to define an intelligent storage interface for small
computers. The limitations must be considered in light of the era: we
are talking about a time when 8" floppy drives were still being commonly
used. :^)
Shugart wanted to get SASI made into an ANSI standard, presumably to
make it more widely-accepted in the industry. In 1981, Shugart
Associates teamed up with NCR Corporation, and convinced ANSI to set up
a committee to standardize the interface. In 1982, the X3T9.2 technical
committee was formed to work on standardizing SASI. A number of changes
were made to the interface to widen the command set and improve
performance. The name was also changed to SCSI; I don't know the
official reason for this, but I suspect that having Shugart Associates'
name on the interface would have implied that it was proprietary and not
an industry standard. The first "true" SCSI interface standard was
published in 1986, and evolutionary changes to the interface have been
occurring since that time. (You can read more about SCSI standards
here.)
It's important to remember that SCSI
is, at its heart, a
system
interface, as the name suggests. It was first developed for hard disks,
is still used most for hard disks, and is often compared to IDE/ATA,
which is also used primarily for hard disks. For those reasons, SCSI is
sometimes thought of as a hard disk interface. (I must admit that
placing my SCSI coverage in my own hard disk interfaces section
certainly suggests this as well!) However, SCSI is not an interface tied
specifically to hard disks. Any type of device can be present on the
bus, and the very design of SCSI means that these are "peers" of
sorts--though the host adapter is sort of a "first among equals". :^) My
point is that SCSI was designed from the ground up to be a high-level,
expandable, high-performance interface. For this reason, it is
frequently the choice of high-end computer users. It includes many
commands and special features, and also supports the highest-performance
storage devices.
Of
course, these features don't come for free. Most PC systems do not
provide native, "built in" support for SCSI the way they do for IDE/ATA,
which is one of the key reasons why SCSI isn't nearly as common as
IDE/ATA in the PC world. Implementing SCSI on a PC typically involves
the purchase of a storage device of course, but also a special card
called a host adapter. Special cables and terminators may also be
required. All of this means that deciding between SCSI and IDE/ATA is an
exercise in tradeoffs.
SCSI began as a parallel interface, allowing the connection of
devices to a PC or other systems with data being transmitted across
multiple data lines. Today, parallel or "regular" SCSI is still the
focus of most SCSI users, especially in the PC world. SCSI itself,
however, has been broadened greatly in terms of its scope, and now
includes a wide variety of related technologies and standards, as
defined in the SCSI-3 standard.
SCSI Standards
There was a time that SCSI standards were relatively few, and not
that difficult to understand. That time is now long past. :^) In
some ways, the best way I could describe the current situation
regarding SCSI standards, feature sets and marketing terms is that
it makes the standards and terms associated with IDE/ATA seem simple
by comparison. That would really be a rather strong indictment,
however, so I won't say that. ;^) Still, understanding all of the
documents and labels associated with SCSI can be very baffling at
times.
It's not that the standards are poorly written, or that the
technology is all that hard to understand. The main issue with SCSI
today is that it has become so broad, and includes so many different
protocols and methods, that it's hard to get a handle on all of it.
The confusion surrounding SCSI standards has increased since the
creation of SCSI-3, which is really a collection of different
standards, some of them rather different from each other. The
situation is made worse by manufacturers that like to create funky
new "unofficial names" for transfer modes or feature sets, or apply
overly-broad labels to specific hardware.
As described in
the page describing the
history of SCSI, the first organization that was charged
with developing the first SCSI standard was ANSI technical committee
X3T9.2. Today, SCSI standards are developed, maintained and approved
by a number of related organizations, each playing a particular
role. Here's how they all fit together:
-
American
National Standards Institute:
ANSI
is usually thought of as an organization that develops and
maintains standards, but in fact they do neither. They are an
oversight and accrediting organization that facilitates and
manages the standards development process. As such, they are the
"high level management" of the standards world. They qualify
other organizations as Standards Developing Organizations or
SDOs. ANSI also publishes standards once they have been
developed and approved.
-
Information
Technology Industry Council:
ITIC
is a group of several dozen companies in the information
technology (computer) industry. ITIC is the SDO approved by ANSI
to develop and process standards related to many
computer-related topics.
-
National
Committee for Information Technology:
NCITS
is a committee established by ITIC to develop and maintain
standards related to the information technology world. NCITS was
formerly known under the name "Accredited Standards Committee
X3, Information Technology", or more commonly, just "X3". It
maintains several sub-committees that develop and maintain
standards for various technical subjects.
-
T10 Technical
Committee:
T10
is the actual technical standards committee responsible for the
SCSI interface.
Note:
If this description looks similar to the one on
the page where I defined the structure of
the organizations supporting the T13 technical committee
that develops ATA standards, that's because it is. T10 and T13 are
sibling committees.
If you boil all of this down, T10 is the group that actually does
the work of developing new SCSI standards. ;^) The other
organizations support their activities. The T10 group is comprised
primarily of technical people from various hard disk and other
technology companies, but the group (and the development process
itself) is open to all interested parties. Comments and opinions on
standards under development are welcomed from anyone, not just T10
members. The standards development process is intended to create
consensus, to ensure that everyone who will be developing hardware
and software agrees on how to implement new technology.
Once the T10 group is done with a particular version of a standard,
they submit it to NCITS and ANSI for approval. This approval process
can take some time; which is why the official standards are usually
published several years after the technology they describe is
actually implemented. While approval of the standard is underway,
companies develop products using technology described in the
standard, confident that agreement has already been reached.
Meanwhile, the T10 group starts work on the next version of the
standard. With SCSI-3 now including a number of different
"sub-standards" (hmm, bad name :^) ), it is in some ways constantly
"under development".
There are also other organizations
that are involved in the creation and maintenance of SCSI-related
standards. Since SCSI-3 has a
broad scope, it defines and structures certain standards that are in
fact "owned" by other groups. In particular, the documents
describing the physical layer for Fibre Channel are developed by the
T11
technical committee, and
the IEEE-1394 interface is of course an
IEEE standard.
In this section I describe the three main standards that define
SCSI. They are listed in chronological order, and SCSI-3 is expanded
into its own full section, reflecting its new status as an
"umbrella" standard containing several others.
Note:
Standards that have been approved and published by ANSI are
available for purchase in either print form or electronic format
from ANSI's
web site. Draft
standards that are under development (as well as older drafts of
approved standards) can be found at the
T10 Technical
Committee web site.
Tip:
If there's a SCSI term or "standard" that you are looking for
information on but can't find in this section, it might in fact be a
transfer mode or feature set.
Warning:
You may occasionally see a hardware device being sold based on the
name of a standard; for example, a "SCSI-3 drive". Be aware that
this is a meaningless label, because it is very vague. With the
possible exception of SCSI-1, the standards define several different
transfer speeds and signaling methods, so just giving the name of a
standard is insufficient information to properly describe a SCSI
device. With SCSI-3 especially, the label could mean just about
anything--always ask for specifics.
|