SCSI - Small Computers System Interface


Recommended SCSI hw & books from Amazon
  • The SCSI3 standard
  • T10 Technical Committee
  • SCSI3 device types
  • SCSI3 commands, command set references and devices interchangeability
  • Sending SCSI3 commands
  • Error reporting
  • SCSI3 from the programmer's standpoint
  • The SCSI3 standard

    SCSI3 is the natural evolution of SCSI2, and has been designed to provide specification for the following elements:
    • fast, wide and ultra host adapter cards (see here)
    • new device types not listed in the SCSI2 standard (like CD-Rs, CD changers, hardware enclosures, etc.)
    SCSI3 is too big a standard to be published in one unique specification (as the ANSI did for the SCSI2 specification).

    SCSI3 is, better, a collection of specifications that is continuously growing. So it is not a "closed" standard like SCSI2, and this way it fixes some limits of its predecessor.

    T10 Technical Committee

    T10 is the Technical Committee in charge for drafting specification inside the SCSI3 family of standards. Drafts approved by the ANSI become the actual SCSI3 standard specifications.

    T10's site is a mine of information, and you can also download all the drafts you are interested in.

    Please note that T10 draft specifications *might* be different from the final ANSI approved specifications. Sometimes some minor differences happen to be found.

    But the actual difference between T10 drafts and ANSI specifications is the following: the former are freely downloadable from T10's site, and the latter must be bought at some fee from ANSI, and cannot be photocopied.

    Home users and hobbysts can use T10 drafts, but professional users should buy from ANSI. In fact professional users can't afford the risk of producing out of standard software or devices, so it is correct for them to buy from ANSI.

    SCSI3 device types

    SCSI3 defines the following device types in addition to those already defined in the SCSI2 specs:
    • CD-R, CD-RW, DVD and DVD-R
    • RAID controller
    • enclosure (fan, power supply, etc.)
    • CD disc changer
    More than one specification you can find for each device type, because generations of devices have been introduced. This eliminate the need for a future SCSI4 to come.

    SCSI3 commands, command set references and devices interchangeability

    Some SCSI3 general purpose commands have been enclosed into one big specification that has been called SCSI3 Primary Commands ( SPC for short) and that has already been released in the 3rd generation set.

    Commands for CD-R, CD-RW, DVD and DVD-R have been enclosed into the Multi Media Commands specification (MMC for short) that has already been released in the 4th generation set.

    If you are willing to write a program for a CD-R you should download the proper MMC and SPC documents from T10's site. You should also get the SCSI3 command set reference from the manufacturer of the device.

    But in my little experience in the world of SCSI3 I noticed that command set references from the manufacturers of SCSI3 devices are closely matching the original SCSI3 specifications from T10, providing for a much more guaranteed device interchangeability, and relieving the programmer from the heavy effort to support devices from different manufacturers. Very helpful.

    Sending SCSI3 commands

    Sending SCSI3 commands to SCSI3 devices is very similar to sending SCSI2 commands to SCSI2 devices, and you can still use use the ASPI manager invented and provided by Adaptec for the programmer to use.

    Error reporting

    Error reporting in SCSI3 is very close to error reporting explained in SCSI2.

    Sense key, additional sense code (ASC) and additional sense code qualifier (ASCQ) are defined in SCSI3 specifications and into the SCSI command set references provided by the manufacturers of devices.

    SCSI3 from the programmer's standpoint

    SCSI3 has been properly planned to be a robust standard, flexible and expandable without affecting the standard itself.

    SCSI3 has been designed to let a soft transition from SCSI2. This is of great importance for the programmer that can make use of her/his previous experience in SCSI2 programming.

    Working with SCSI ? This is the book to buy: