Engineering:Parallel SCSI

From HandWiki
Revision as of 19:10, 4 February 2024 by S.Timg (talk | contribs) (add)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Original SCSI storage interface


Amphenol-50 SCSI plug

Parallel SCSI (formally, SCSI Parallel Interface, or SPI) is the earliest of the interface implementations in the SCSI family. SPI is a parallel bus; there is one set of electrical connections stretching from one end of the SCSI bus to the other. A SCSI device attaches to the bus but does not interrupt it. Both ends of the bus must be terminated.

SCSI is a peer-to-peer peripheral interface. Every device attaches to the SCSI bus in a similar manner. Depending on the version, up to 8 or 16 devices can be attached to a single bus. There can be multiple hosts and multiple peripheral devices but there should be at least one host. The SCSI protocol defines communication from host to host, host to a peripheral device, and peripheral device to a peripheral device.[lower-alpha 1] The Symbios Logic 53C810 chip is an example of a PCI host interface that can act as a SCSI target.

SCSI-1 and SCSI-2 have the option of parity bit error checking. Starting with SCSI-U160 (part of SCSI-3) all commands and data are error checked by a cyclic redundancy check.

History

The first two formal SCSI standards, SCSI-1 and SCSI-2, described parallel SCSI. The SCSI-3 standard then split the framework into separate layers which allowed the introduction of other data interfaces beyond parallel SCSI. The original SCSI-1 version of the parallel bus was 8 bits wide (plus a ninth parity bit). The SCSI-2 standard allowed for faster operation (10 MHz) and wider buses (16-bit or 32-bit). The 16-bit option became the most popular.

At 10 MHz with a bus width of 16 bits it is possible to achieve a data rate of 20 MB/s. Subsequent extensions to the SCSI standard allowed for faster speeds: 20 MHz, 40 MHz, 80 MHz, 160 MHz and finally 320 MHz. At 320 MHz x 16 bits there is a theoretical maximum peak data rate of 640 MB/s.

Due to the technical constraints of a parallel bus system, SCSI has since evolved into faster serial interfaces, mainly Serial Attached SCSI and Fibre Channel. The iSCSI protocol doesn't describe a data interface but uses any IP network, usually run over Ethernet.

Standards

Parallel SCSI is not a single standard, but a suite of closely related standards. There are a dozen SCSI interface names, most with ambiguous wording (like Fast SCSI, Fast Wide SCSI, Ultra SCSI, and Ultra Wide SCSI); three SCSI standards, each of which has a collection of modular, optional features; several different connector types; and three different types of voltage signaling. The leading SCSI card manufacturer, Adaptec, has manufactured over 100 varieties of SCSI cards over the years. In actual practice, many experienced technicians simply refer to SCSI devices by their bus bandwidth (i.e., SCSI 320 or SCSI 160) in Megabytes per second.

(As of 2003), there have only been three SCSI standards: SCSI-1, SCSI-2, and SCSI-3. All SCSI standards have been modular, defining various capabilities that manufacturers can include or not. Individual vendors and the SCSI Trade Association have given names to specific combinations of capabilities. For example, the term Ultra SCSI is not defined anywhere in the standard, but is used to refer to SCSI implementations that signal at twice the rate of Fast SCSI. Such a signaling rate is not compliant with SCSI-2 but is one option allowed by SCSI-3. Similarly, no version of the standard requires low-voltage-differential (LVD) signaling, but products called Ultra-2 SCSI include this capability. This terminology is helpful to consumers because Ultra-2 SCSI device has a better-defined set of capabilities than simply identifying it as SCSI-3.

Starting with SCSI-3, the SCSI standard has been maintained as a loose collection of standards, each defining a certain piece of the SCSI architecture, and bound together by the SCSI Architectural Model. This change divorces SCSI's various interfaces from the SCSI command set, allowing devices that support SCSI commands to use any interface (including ones not otherwise specified by T10), and also allowing the interfaces that are defined by T10 to be used in alternate manners.

No version of the standard has ever specified what kind of SCSI connector should be used. See § External connectors.

Comparison table

Interface Alternative names Specification document[upper-alpha 1] Connector Width (bits) Clock (MHz) Maximum Electrical
Throughput Length (m) Devices[upper-alpha 2] Impedance (Ω) Voltage (V)
(MB/s) (Mbit/s) Single ended[upper-alpha 3] LVD[upper-alpha 4] HVD
SCSI-1 Narrow SCSI SCSI-1 (1986)[upper-alpha 5] IDC50; Amphenol C50 8 5 5 40 6 N/A 25 8 SE 90 ± 6[2] SE 5
Fast SCSI SCSI-2 (1994) IDC50; Amphenol C50 8 10 10 80 3 N/A 25 8 SE 90 ± 6[2] SE 5 HVD ≥5
Fast-Wide SCSI Wide SCSI SCSI-2;
SPI-5 (INCITS 367-2003)
68-pin 16 10 20 160 3 N/A 25 16 SE 90 ± 6[2] SE 5 HVD ≥5
Ultra SCSI Fast-20 SPI-5 (INCITS 367-2003) IDC50 8 20 20 160 1.5 N/A 25 8 SE 90 ± 6[2] SE 5 HVD ≥5
3 N/A N/A 4
Ultra Wide SCSI SPI-5 (INCITS 367-2003) 68-pin 16 20 40 320 N/A N/A 25 16 SE 90 ± 6[2] SE 5 HVD ≥5
1.5 N/A N/A 8
3 N/A N/A 4
Ultra2 SCSI Fast-40 SPI-5 (INCITS 367-2003) 50-pin 8 40 40 320 N/A 12 25 8 LVD 125 ± 10[2] LVD 1.2 HVD ≥5
Ultra2 Wide SCSI SPI-5 (INCITS 367-2003) 68-pin; 80-pin (SCA/SCA-2) 16 40 80 640 N/A 12 25 16 LVD 125 ± 10[2] LVD 1.2 HVD ≥5
Ultra3 SCSI Ultra-160; Fast-80 wide SPI-5 (INCITS 367-2003) 68-pin; 80-pin (SCA/SCA-2) 16 40 DDR 160 1280 N/A 12 N/A 16 LVD 125 ± 10[2] LVD 1.2
Ultra-320 SCSI Ultra-4; Fast-160 SPI-5 (INCITS 367-2003) 68-pin; 80-pin (SCA/SCA-2) 16 80 DDR 320 2560 N/A 12 N/A 16 LVD 125 ± 10[2] LVD 1.2
Ultra-640 SCSI[upper-alpha 6][upper-alpha 7] Ultra-5; Fast-320 SPI-5 (INCITS 367-2003) 68-pin; 80-pin 16 160 DDR 640 5120 N/A 10 N/A 16 LVD 125 ± 10 LVD 1.2
  1. Specifications are maintained by the T10 subcommittee of the International Committee for Information Technology Standards.
  2. Including any host adapters (i.e., computers count as a device).
  3. For daisy-chain designs, length of bus, from end to end; for point-to-point, length of a single link.
  4. LVD cabling may be up to 25 m when only a single device is attached to the host adapter, 20 m for Ultra-640.
  5. The SCSI-1 specification has been withdrawn and is superseded by SCSI-2. The SCSI-3 SPI specification has been withdrawn and is superseded by SPI-2. The SCSI-3 SPI-3 and SPI-4 specifications have been withdrawn and are superseded by SPI-5.[1]
  6. Ultra-640 substantially increases the requirements for cabling and backplanes, hampering a smooth transition.[3]
  7. Ultra-640 was specified but no devices were produced.[4]

SCSI-1

NCR 53C94 SCSI-1 controller in PLCC-84 package

The original SCSI standard, SCSI-1, was derived from the Shugart Associates System Interface (SASI) and formally adopted in 1986 by ANSI. SCSI-1 features an 8-bit parallel bus (with parity), running asynchronously at 3.5 MB/s, or 5 MB/s in synchronous mode, and a maximum bus cable length of 6 metres (20 ft), significantly longer than the 18 inches (0.46 m) limit of the ATA interface also popular at the time. A rarely-seen variation on the original standard featured high-voltage differential signaling and supported a maximum cable length of 25 metres (82 ft).

SCSI-2

AMD 53CF94 SCSI-2 controller in PLCC-84 package

SCSI-2 was introduced in 1994 and gave rise to the Fast SCSI and Wide SCSI variants. Fast SCSI doubled the maximum transfer rate to 10 MB/s while retaining the same 50-pin cables, while Wide SCSI doubled the bus width to 16 bits on top of that to reach a maximum transfer rate of 20 MB/s, using new 68-pin cables. However, these improvements came at the cost of reducing the maximum cable length to three meters. SCSI-2 also specified a 32-bit version of Wide SCSI, which used two 16-bit cables per bus. The 32-bit implementation was largely ignored because it was deemed expensive and unnecessary, and was officially retired in SCSI-3.

SCSI-2 expanded the command set with the Common Command Set (CCS) for better support of devices other than disk drives, introduced command queueing (up to 256 commands per device) and tightened up the requirements on some features that were optional in SCSI-1; parity was now mandatory and the host adapter was required to provide termination power in order to support active termination. SCSI-1 devices would generally remain compatible while simply ignoring the new features.[5]

A high-voltage differential (HVD) mode that was incompatible with standard single-ended (SE) was introduced to accommodate longer bus lengths.

SCSI-3

Before Adaptec and later the SCSI Trade Association codified the terminology, the first parallel SCSI devices that exceeded the SCSI-2 capabilities were simply designated SCSI-3. These devices, also known as Ultra SCSI or Fast-20 SCSI,[citation needed] were introduced in 1996. SCSI-3 itself is not as much a single document as a collection of various standards that have received updates at different points in time.

The bus speed was doubled again to 20 MB/s for narrow (8-bit) systems and 40 MB/s for wide (16-bit). The maximum cable length remained 3 meters but single-ended Ultra SCSI developed an undeserved reputation for extreme sensitivity to cable length and condition (faulty cables, connectors or terminators were often to blame for instability problems).

Unlike previous SCSI standards, SCSI-3 (Fast-20 speed) requires active termination.

Ultra-2

This standard was introduced c. 1997 and featured a low-voltage differential (LVD) bus. For this reason, Ultra-2 is sometimes referred to as LVD SCSI. LVD's greater resistance to noise allowed a maximum bus cable length of 12 meters. At the same time, the data transfer rate was increased to 80 MB/s. Mixing earlier single-ended devices (SE) and Ultra-2 devices on the same bus is possible but connecting only a single SE device forces the whole bus to single-ended mode with all its limitations, including transfer speed. The standard also introduced very-high-density cable interconnect (VHDCI), a very small connector that allows placement of four wide SCSI connectors on the back of a single PCI card slot. Ultra-2 SCSI actually had a relatively short lifespan, as it was soon superseded by Ultra-3 (Ultra-160) SCSI.

Ultra-3

Ultra-3 includes five new optional features:

  1. Doubling the transfer rate to 160 MB/s through the use of double-transition clocking
  2. CRC, a robust error-correcting process more suited for high-speed operation than the parity checking used previously
  3. Domain validation for negotiating maximum performance for each device on the chain
  4. Packetization protocol with a reduced number of bus communication phases for less command and protocol overhead
  5. Quick arbitration and selection reduces arbitration time by eliminating bus free time

First introduced as Ultra-160 toward the end of 1999, this iteration improved on the Ultra-2 standard adding the first three improvements.[6]

Devices supporting all five features were marketed as Ultra-160+ or Ultra-3 (U3). 8-bit bus width as well as HVD operation were eliminated starting with Ultra-3.[5]

Ultra-320

Ultra-320 included the Ultra-160+ features as mandatory, doubled the clock to 80 MHz for a maximum data transfer rate of 320 MB/s, and included read/write data streaming for less overhead on queued data transfers, as well as flow control.[5] The latest working draft for this standard is revision 10 and is dated May 6, 2002. Nearly all SCSI hard drives being manufactured at the end of 2003 were Ultra-320 devices.

Ultra-640

Ultra-640 (otherwise known as Fast-320) was promulgated as a standard (INCITS 367-2003 or SPI-5) in early 2003. It doubles the interface speed yet again, this time to 640 MB/s. Ultra-640 pushes the limits of LVD signaling; the speed limits cable lengths drastically, making it impractical for more than one or two devices. Because of this, manufacturers skipped over Ultra-640 and developed for Serial Attached SCSI instead.

SCSI signals

In addition to the data bus and parity signals, a parallel SCSI bus contains nine control signals:[7]

Signal name Meaning when asserted Meaning when deasserted
BSY Busy Bus in use Bus free
SEL Select Asserted by the winner of an arbitration, during selection by an initiator or reselection by a target No device has control of the bus
RST Reset Initiator forces all targets and any other initiators to do a warm reset No reset requested
C/D Control/Data[upper-alpha 1] Bus contains control information Bus contains data
I/O Input/Output[upper-alpha 1] Transfer is from target to initiator. Also asserted by a target after winning arbitration to indicate reselection of an initiator Transfer is from initiator to target
MSG Message[upper-alpha 1] Bus contains a message Bus contains data or command/status
REQ Request Target requests initiator to transfer the next unit of information on the bus, as indicated by the 3 phase signals Target not requesting transfer
ACK Acknowledge Initiator acknowledges target request, completing the information transfer handshake No acknowledge
ATN Attention Asserted by an initiator after winning arbitration to select a target No target selection in progress
  1. 1.0 1.1 1.2 These 3 signals are driven by a target during information transfer to indicate the bus phase.

There are also three DC-level signals:

TERMPOWER
See § Termination
DIFFSNS
Grounded in single-ended buses, otherwise floats to a positive voltage
GROUND
Most spare pins in the connector are designated as grounds.

There are three electrically different variants of the SCSI parallel bus: single-ended (SE), high-voltage differential (HVD), and low-voltage differential (LVD). The HVD and LVD versions use differential signaling and so they require a pair of wires for each signal. So the number of signals required to implement a SCSI bus is a function of the bus width and voltage:

Bus width Voltage Data Parity Control TERMPOWER DIFFSNS GROUND Reserved Total
8-bit SE 8 1 9 1 1 30 0 50
8-bit LVD/HVD 16 2 18 1 1 12 0 50
16-bit SE 16 2 9 4 1 34 2 68
16-bit LVD/HVD 32 4 18 4 1 7 2 68

SCSI IDs

All devices on a parallel SCSI bus must have a SCSI ID, which may be set by jumpers on older devices or in software. The SCSI ID field widths are:

Bus-width ID width IDs available
8-bit 3-bit 8
16-bit 4-bit 16

Bus operation

The parallel SCSI bus goes through eight possible phases as a command is processed. Not all phases will occur in all cases:

Phase Comments
Bus-free This is the state in which no device communication is in process.
Arbitration One or more devices attempt to obtain exclusive control of the bus by asserting /BSY and a single bit corresponding to the device SCSI ID. For example, a device with a SCSI ID of 2 would generate the inverted bit pattern 11111011 on the bus.
Selection The arbitrating device with the highest ID takes control of the bus by asserting /BSY and /SEL. "Highest" on an eight-bit bus starts from 7 and works downward to zero. On a 16-bit bus, the eight-bit rule applies, followed by 15 and working downward to 8, thus maintaining backward compatibility on a bus with a mix of eight and 16-bit devices. The controlling device is now the initiator.
Command The initiator sends the command descriptor block (CDB) to a target, which is another device on the bus. The CDB tells the target what to do.
Reselection During a transaction, the target device may be required to execute a time-consuming operation (e.g., winding or rewinding the tape in a tape drive). In such a case, the target may temporarily disconnect from the bus, causing the bus to go to the bus-free condition and allowing other unrelated operations to take place. Reselection is the phase where the target reconnects to the initiator to resume the previously suspended transaction.
Data In this phase, data is transferred between initiator and target, the direction of transfer depending on the command that was issued. For example, a command to read a sector from a disk would result in a transfer from the disk to the host. Or, if an error occurred, the initiator could send a request sense command to the target for details that are returned during the data phase.
Message A message code is exchanged between initiator and target for the purposes of interface management.
Status A status code is sent to the initiator to report the success or failure of the operation.

The above list does not imply a specific sequence of events. Following a command to a target to send data to the initiator and a receipt of a command complete status, the initiator could send another command or even send a message.

External connectors

No version of the standard has ever specified what kind of connector should be used. Specific types of connectors for parallel SCSI devices were developed by vendors over time. Connectors for serial SCSI devices have diversified into different families for each type of serial SCSI protocol.

Original parallel SCSI-1 devices typically used bulky micro ribbon connectors, and SCSI-2 devices typically used MD50 connectors. Connectors evolved to High-Density (HD) and most recently Single Connector Attachment.

Connectors for wide SCSI buses have more pins and wires than those for narrow SCSI buses; typically 50 pins for narrow SCSI and 68 pins for wide SCSI. On some early devices, wide parallel SCSI buses used two or four connectors and cables while narrow SCSI buses used only one.

With the HD connectors, a cable normally has male connectors while a SCSI device (e.g., host adapter, disk drive) has female. A female connector on a cable is meant to connect to another cable (for additional length or additional device connections).

Termination

SCSI Terminator (Amphenol connector)

Parallel SCSI buses must always be terminated at both ends to ensure reliable operation. Without termination, data transitions reflect back from the ends of the bus causing pulse distortion and potential data loss.

A positive DC termination voltage is provided by one or more devices on the bus, typically the host adapter. This positive voltage is called TERMPOWER and is usually around +4.3 volts. TERMPOWER is normally generated by a diode connection to +5.0 volts. This is called a diode-OR circuit, designed to prevent backflow of current to the supplying device. A device that supplies TERMPOWER must be able to provide up to 900 mA on a single-ended bus, or 600 mA on a differential bus.

Termination can be passive or active. With passive termination each signal line is terminated by two resistors, 220 Ω to TERMPOWER and 330 Ω to ground. Active termination uses a small voltage regulator which provides a +2.85 V supply. Each signal line is then terminated by a 110 Ω resistor to this supply. Active termination provides a better impedance match than passive termination because most flat ribbon cables have a characteristic impedance of approximately 110 Ω. Forced perfect termination (FPT) is similar to active termination, but with added diode clamp circuits which absorb any residual voltage overshoot or undershoot.

In current practice most parallel SCSI buses are LVD (low-voltage differential) and so require external, active termination. The usual termination circuit consists of a +2.85 V linear regulator and commercially available SCSI resistor network devices (not individual resistors).

Terminators must be matched to the type of SCSI bus. Using an SE (single-ended) terminator on an LVD bus causes the bus to drop back to SE speeds, even if all other devices and cables are capable of LVD operation – the same effect any other SE device has. Passive terminators may cause Ultra speed communication to be unreliable.

Generally, and reflecting the order in which each type of terminator was introduced, unmarked terminators are passive, those marked only active are SE, and only those marked LVD (or SE/LVD) will correctly terminate an LVD bus and allow it to operate at full LVD speeds.

Some early disk drives included internal terminators, but most modern disk drives do not provide termination and termination must be provided externally.

There is a special case in SCSI systems that have mixed 8-bit and 16-bit devices where high-byte termination may be required.

Compatibility

Different SCSI transports, which are not compatible with each other, usually have unique connectors to avoid accidental mis-plugging of incompatible devices. For example, it is not possible to plug a parallel SCSI disk into an FC-AL backplane, nor to connect a cable between an SSA initiator and an FC-AL enclosure.

Mixing different speeds

SCSI devices in the same SCSI transport family are generally backward compatible. Within the parallel SCSI family, for example, it is possible to connect an Ultra-3 SCSI hard disk to an Ultra-2 SCSI controller. The interface operates at the lowest common supported standard, Ultra-2 in this case. Ultra-2, Ultra-160 and Ultra-320 devices may be freely mixed on the parallel LVD bus with no compromise in performance.

Mixing single-ended and low-voltage differential

Single-ended and LVDS devices can be attached to the same bus, but all devices will run at a slower, single-ended speed. The SPI-5 standard (which describes up to Ultra-640) deprecates single-ended devices, so some devices may not be electrically backward compatible.

Some host adapters offer compatibility using a SCSI bridge to electrically split the bus into an SE and an LVD half, so LVD devices can operate at full speed.[8] Other adapters may provide multiple buses (channels).

Mixing wide and narrow

Both narrow and wide SCSI devices can be attached to the same parallel bus. All the narrow devices must be placed at one end and all the wide devices at the other end. The wider part of the bus needs to be terminated between the wide and narrow devices because the high half of the bus ends with the last wide device. This can be done with a cable designed to connect the wide part of the bus to the narrow part which either provides a place to plug in a terminator or includes the terminator itself.[lower-alpha 2] Specific capability commands allow the devices to determine whether their partners are using the whole wide bus or just the lower half and drive the bus accordingly.

Alternatively, each narrow device can be attached to the wide bus through an adapter. As long as the bus is terminated with a wide – internal or external – terminator, there is no need for special termination.

SCA adapters

Single Connector Attachment (SCA) parallel SCSI devices may be connected to older controller/drive chains by using SCA adapters. Although these adapters often have auxiliary power connectors, caution is recommended when connecting them, as it is possible to damage devices by connecting external power.

Device IDs and termination

Each parallel SCSI device (including the computer's host adapter) must be configured to have a unique SCSI ID on the bus. Another requirement is that any parallel SCSI bus must be terminated at both ends with the correct type of terminator. Both active and passive terminators are in common use, with the active type much preferred (and required on LVD buses and Ultra SCSI). Improper termination is a common problem with parallel SCSI installations. In early SCSI buses, one had to attach a physical terminator to each end, but newer devices often have terminators built in, and the user simply needs to enable termination for the devices at either end of the bus (typically by setting a DIP switch or moving a jumper). Some later SCSI host adapters allow the enabling or disabling of termination through BIOS setup. Advanced SCSI devices automatically detect whether they are last on the bus and switch termination on or off accordingly.

SCAM

SCSI Configured Automatically (initially Automagically) was an optional method to configure the SCSI ID without requiring user intervention.[9] It was dropped from later standards.

Laptops

SCSI interfaces had become impossible to find for laptop computers. Adaptec had years before produced PCMCIA parallel SCSI interfaces, but when PCMCIA was superseded by the ExpressCard Adaptec discontinued their PCMCIA line without supporting ExpressCard. Drivers for existing PCMCIA interfaces were not produced for newer operating systems. Ratoc produced USB and FireWire to parallel SCSI adaptors, but ceased production when the integrated circuits required were discontinued. Since 2013, with the release of various ExpressCard and Thunderbolt-to-PCI Express adapters, it is again possible to use SCSI devices on laptops, by installing PCI Express SCSI host adapters using a laptop's ExpressCard or Thunderbolt port.[citation needed]

Notes

  1. Most peripheral devices are exclusively SCSI targets, incapable of acting as SCSI initiators—unable to initiate SCSI transactions themselves. Therefore, peripheral-to-peripheral communications are uncommon, but possible in most SCSI applications.
  2. This is sometimes referred to as a cable with high-9 termination.

References

External links