Small Computer System Interface is a high-speed standard for connecting peripherals and computers. Also known by the acronym SCSI, it defines both hardware connections and methods of exchanging data. For each supported peripheral type, SCSI defines device-specific commands and protocols. SCSI is commonly used on servers and high-performance computers such as those for audio and video production. It is often used with Redundant Array of Independent Disks (RAID) and networked storage technology as well.
SCSI was created in the late 1970s and was originally named Shugart Associates System Interface after its corporate inventor. Small Computer System Interface has several advantages over competing technologies. Its data cables can be quite long, making it easy to attach many external devices to a computer. More than one high-performance device on the cable can be active at once, streamlining storage-intensive applications. For example, editing software can simultaneously read data from two hard drives and burn a digital video disc (DVD).
From the 1980s through the early 2000s, Small Computer System Interface specifications evolved considerably. The parallel SCSI bus grew from eight bits to 16 bits, and device bandwidths often doubled from one release to the next. Many motherboards included SCSI controllers or supported SCSI host bus adapter (HBA) cards. Disk makers usually introduced their highest-performing drives with SCSI support before other technologies. Lower-cost Integrated Drive Electronics (IDE) disks remained a common choice for personal computers, however.
Small Computer System Interface organizes connected devices into logical units, targets and initiators. A device is an initiator if it is capable of initiating SCSI commands, such as a SCSI controller. Targets, such as disk drives, DVD drives and similar devices, respond to requests from initiators. Each target device may have more than one logical unit and many logical blocks of data. In particular, high-capacity storage devices are usually accessed as multiple virtual units.
The Small Computer System Interface command protocol defines several dozen operations. Commands for managing devices, gathering status and transferring data are included. Four variations exist for reading data from a device in addition to four different write commands. The 32-bit Cyclic Redundancy Check (CRC32) method has been used for data transfers since 1996, when the SCSI-3 specification was released.
By the early 2000s, the SCSI bus clock frequency had increased to 160 Megahertz (MHz) with the Ultra 640 specification. The parallel nature of SCSI began to cause termination and cabling problems at very high speeds. These issues were resolved by redesigning SCSI to transport data serially, rather than in parallel. The changes were implemented in the late 2000s as Serial Attached SCSI (SAS). An important variation, Fiber Channel Arbitrated Loop (FC-AL) uses a very fast clock—4 Gigahertz (GHz)— with optical fiber cables.
SAS provides several advantages over parallel SCSI besides higher device throughput. Device connections are hot-swappable, meaning they can be unplugged and plugged in as needed without powering down servers. SAS is compatible with Serial Advanced Technology Attachment (SATA) storage devices. This allows the lower-priced and more popular SATA drives—the successor to IDE—to be used with advanced SCSI-based technology. SAS also improves fault isolation over the original Small Computer System Interface.