SCSI

[3] SCSI is derived from the Shugart Associates System Interface (SASI),[4] developed beginning 1979[5] and publicly disclosed in 1981.

[1] Larry Boucher is considered to be the "father" of SASI and ultimately SCSI due to his pioneering work first at Shugart Associates and then at Adaptec, which he founded in 1981.

[6] A SASI controller provided a bridge between a hard disk drive's low-level interface and a host computer, which needed to read blocks of data.

In the summer of 1981, NCR abandoned their in-house efforts in favor of pursuing SASI and improving on its design for their own computer systems.

Fearing that their extension of the SASI standard would induce market confusion, however, NCR briefly cancelled their contract with Shugart.

Since its standardization in 1986, SCSI has been commonly used in the Amiga, Atari, Apple Macintosh and Sun Microsystems computer lines and PC server systems.

SCSI has never been popular in the low-priced IBM PC world, owing to the lower cost and adequate performance of ATA hard disk standard.

Serial interfaces have a number of advantages over parallel SCSI, including higher data rates, simplified cabling, longer reach, improved fault isolation and full-duplex capability.

[18] The non-physical iSCSI preserves the basic SCSI paradigm, especially the command set, almost unchanged, through embedding of SCSI-3 over TCP/IP.

Therefore, iSCSI uses logical connections instead of physical links and can run on top of any network supporting IP.

Almost all RAID subsystems on servers have used some kind of SCSI hard disk drives for decades (initially Parallel SCSI, interim Fibre Channel, recently SAS), though a number of manufacturers offer SATA-based RAID subsystems as a cheaper option.

SCSI interfaces have often been included on computers from various manufacturers for use under Microsoft Windows, classic Mac OS, Unix, Amiga and Linux operating systems, either implemented on the motherboard or by the means of plug-in adaptors.

External cables are typically shielded (but may not be), with 50– or 68–pin connectors at each end, depending upon the specific SCSI bus width supported.

In addition to many different hardware implementations, the SCSI standards also include an extensive set of command definitions.

Other technologies which use the SCSI command set include the ATA Packet Interface, USB Mass Storage class and FireWire SBP-2.

At the end of the command sequence, the target returns a status code byte, such as 00h for success, 02h for an error (called a Check Condition), or 08h for busy.

The usage of LBAs has evolved over time and so four different command variants are provided for reading and writing data.

The capacity of a "sequential access" (i.e. tape-type) device is not specified because it depends, amongst other things, on the length of the tape, which is not identified in a machine-readable way.

Read and write operations on a sequential access device begin at the current tape position, not at a specific LBA.

On earlier models a physical jumper or switch controls the SCSI ID of the initiator (host adapter).

In the latter case, each slot on the enclosure's back plane delivers control signals to the drive to select a unique SCSI ID.

While there is no standard that makes this work, drive designers typically set up their jumper headers in a consistent format that matches the way that these switches implement.

The SSA initiator (normally the host computer through the 'host adaptor') "walk the loop" to determine what devices are connected and then assigns each one a 7-bit "hop-count" value.

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.

The initiator can communicate with the enclosure using a specialized set of SCSI commands to access power, cooling, and other non-data characteristics.

Adaptec ACB-4000A SASI card from 1985
Assorted Parallel SCSI connectors
Bus terminator with top cover removed