High Performance SCSI & RAID: What is SCSI ?

Additions to these pages are welcome!

What is SCSI ?

SCSI is a networking protocol, that was designed by disk IO engineers......
  • The different standards:

  • The History of SCSI
    1. SCSI-1: Early SCSI

      The development of the Small Computer Systems Interface (SCSI) was a major step forward in hardware interfaces for "small computers" (as opposed to mainframes and minicomputers). Interfaces prior to SCSI were not intelligent and were designed for specific devices. Thus there was a hard disk interface for a hard drive, a tape drive interface for a tape drive, and so on. With SCSI, a standard interface was defined for all devices so that only a single adapter was required. The first SCSI standard, referred to as SCSI-1, supported up to seven devices per adapter and was approved in 1986.

      It had its roots in SASI (Shugart Associates Systems Interface) which was developed by Al Shugart's Shugart Associates in 1979. SASI was still very limited in terms of ternsfer speed and available command set when compared to the later SCSI-1 standard.

      When Shugart, who was also a pioneer in floppy disk technologie and later founded Seagate, together with NCR tried to turn SASI into an ANSI standard in 1981, a comittee was established by ANSI. This body, which turned into the X3T9.2 technical committee in 1982, changed the name of the interface to SCSI and worked on several technical aspects of the interface to improve its performance and the command set. In 1986 ANSI finally aproved SCSI-1 as standard X3.131-1986

      A key advantage of SCSI over its competitors has been its ability to process multiple overlapped commands. This overlapped I/O support feature, sometimes referred to as multi-tasking support, allows SCSI drives to fully overlap their read and write operations with other drives in the system. This allows different SCSI drives to be processing commands concurrently rather than serially. The data can then be buffered and transferred over the SCSI bus at very high speeds with other data in the system.

      Because it was the first SCSI standard, SCSI-1 had some limitations such as not being as "general-purpose" and fast as it needed to be. As a result, the SCSI-2 standard was developed.

    2. SCSI-2: A Much Improved Standard

      In 1985, one year before SCSI-1 was finalized, the work on the SCSI-2 standard started. It was released in 1990 as X3.131-1990, but got withdrawn again for further changes. It was finally released 4 years later as X3.131-1994.

      SCSI-2 included some significant improvements over SCSI-1 including: improved connectors, faster data transfer speed, availability of a wider data bus path, increased reliability via synchronous negotiation, and parity checking. SCSI-1 allowed asynchronous data transfer rates of 1.5 MB/second and synchronous transfer rates to a maximum of 5 MB/second. In order to improve these rates, SCSI-2 doubles the SCSI bus clock rate from 5MHz to 10MHz which increases the SCSI data transfer rate from 5 MB/second to 10 MB/second. This change was called Fast SCSI-2.

      Besides doubling the rate at which data can be transferred over the SCSI bus, SCSI-2 also provides the option to double the bandwidth of the SCSI bus via the use of "Wide" SCSI. The width of the bus is its measure of data lines. By doubling the width of the bus from its standard 8 bits to 16 bits, a Wide SCSI bus can support up to 15 devices and transfer twice as much data in the same amount of time. Of course this also means that the configuration of the connectors and cables must change to be able to handle the added bit streams. Combining Fast SCSI-2 with a 16-bit Wide SCSI bus results in a maximum data transfer rate of 20 MB/second.

      Two other features of SCSI-2 also enhanced overall performance. The first, called command queuing, offers the ability to rearrange or reorder the execution of I/O commands so that overlapping is optimized and throughput maximized. The second is called Scatter/Gather. When using virtual memory addressing schemes, system memory may appear contiguous to the user but is actually fragmented into many widely scattered physical address locations. Because of this, it is often necessary when accessing a large amount of contiguous data from a peripheral device, to break up this transfer into many different locations in a system memory. Scatter/Gather is a method of providing multiple host addresses for data transfer in one command packet. This greatly increases performance in environments such as Unix, OS/2, Novell NetWare and Windows NT

    3. SCSI-3: The "New" Generation

      The evolution of SCSI has not stood still with the development of SCSI-2. The work on the SCSI-3 standard started in 1993 when SCSI-2 was already 8 years old and still not ratified. While the standards for SCSI-1 and SCSI-2 where released as single documents, SCSI-3 was broken up into many documents defining different aspects of the standard. This was necessary because SCSI-3 tried to integrate many new technologies and the already large document with the SCSI-2 specification would have grown into unmanagable dimensions, with too many people working on it at the same time. Breaking the document up into several related sub-documents also allowed the development of the sub-standards to progress at different speeds as needed and still to retain a coherent standard.

      The SCSI-3 specification is still in the process of being ratified because many significant advances in technology have been developed since SCSI-2 was adopted. For the first time, the SCSI specification incorporates serial interconnection schemes in addition to SCSI's traditional parallel interconnect.

      Although the SCSI-3 standard has not yet been completely ratified, several SCSI-3 technologies are in the market and some of them have already seen several generations of SCSI-3 standards, for example SPI (SCSI-3 Parallel Interface) which has gone from SPI (Ultra) to SPI-4 (Ultra320) and SPI-5 (Ultra640) which is still under development. From the parallel side, "Fast-20 Wide" SCSI, also referred to as "Ultra" SCSI, is the technology that SCSI users implement initially. This is because Ultra SCSI-3 is backward compatible with SCSI-2 and SCSI-1 systems and peripherals. Ultra SCSI doubles the Fast SCSI bus clock rate from 10MHz to 20MHz and transfers data over a 16-bit Wide SCSI bus to produce SCSI data transfers rates up to 40MB/second.

      From the serial interconnect side, SCSI-3 includes three new technologies: Serial Storage Architecture (SSA), Fibre Channel and IEEE P1394. These Serial SCSI technologies offer SCSI users faster data transfer rates, more devices per bus, longer cables, and simplified connectors. Unfortunately, serial SCSI is not backward compatible with SCSI-2 or SCSI-1 devices.

      Later additions to the SCSI-3 architecture are iSCSI which utilizes ethernet as transport medium and Inifiniband which is (was) expected to gradually replace PCI as the interconnect between processors and devices.

      Serial SCSI's impressive data transfer rates make them ideal for disk array applications. Therefore, the serial SCSI architects designed these serial interconnects to support true Hot-Swap without the use of special connectors. Hot-Swap support allows the user to remove and insert new devices without powering down the system.

    4. Not all of the technologies that are visible here are under control of T10.

      There is more background information on the FTP server where the T10 archive is kept.

    5. SCSI-4: Not Planned

      There are currently no plans for a SCSI-4 standard.

      The current development model of the SCSI-3 standard is so highly sucessful that it is questionable wether it will ever finalized as a whole, while parts of it have already seen multiple generations of "sub-standards". It has also seen extensions for example with the addition of iSCSI and Infiniband(tm)

  • De-mystified Marketing Hypes
    • Battery backup for cache controllers
      Battery backup Cache (on controllers) is not really useful since this completely forgets that you would need to do the same for the cache on the harddrives. An UPS system makes more sense, or a switch to write through cache, if data integrity is important.

    Return to index