SCSI Int
SCSI Int
This laboratory work presents various types of SCSI electrical interfaces, the SCSI
standards that have been developed, the SCSI bus, the structure of SCSI commands, the SCSI
device configuration, and the main SCSI programming interfaces.
on the bus there is a single wire. The receiver circuits at the other end of the cable detect the
electrical voltages on the bus lines. The cost of such an interface is low, but the signals trans-
mitted are affected by noise and electromagnetic interference.
With differential SCSI interfaces, for each signal there is a pair of wires. One of the
wires carries the same type of signal that is carried by normal SCSI interfaces. The second
wire carries a signal that is obtained by the logical inversion of the original signal. The re-
ceiver circuits do not have to detect the absolute value of the voltage, but only the difference
between the signals received on the two wires. Differential interfaces have several ad-
vantages: increased immunity to noise, the possibility of transfers with higher speeds, and
greater cable length. With normal SCSI interfaces, the cable length can be up to 6 m for low
frequencies of the SCSI bus, or up to 3 m for higher frequencies. With differential SCSI inter-
faces, the cable length can be up to 25 m or 12 m, depending on the bus frequency.
In the early differential SCSI interfaces, called High Voltage Differential (HVD), rela-
tively high voltages were used for signal transmission. For this reason, low-power and small-
sized interface chips could not be developed. For implementing the interface, circuits using
several chips were required, which increased the cost of the interface. Another problem of this
differential interface was that devices with differential interface could not be attached to the
same bus to which devices with normal interface were attached, because the higher voltages
of the differential interface could destroy the receiver circuits of the devices with normal in-
terface. Because of the high cost and the incompatibility with devices having normal inter-
face, the HVD differential interface was very rarely used, and its specifications were removed
from the latest version of the SCSI standard.
Instead of the HVD electrical interface, a new differential interface has been devel-
oped, called LVD (Low Voltage Differential), which uses low voltages. This interface can be
implemented with low-power and inexpensive circuits. Another advantage of this interface is
that it allows connecting LVD devices to a normal SE SCSI bus, without the risk of damaging
the devices’ interface circuits. Optionally, devices with LVD interface can be designed so that
they can be connected to both LVD and SE buses. These multimode devices detect if they are
connected to an SE bus and will operate in the SE mode that is compatible with this bus.
When there is even a single SE device connected to a SCSI bus, all LVD devices connected to
the same bus will run in SE mode, at a reduced frequency of the bus (up to 20 MHz).
Because the SCSI connectors are the same for various types of the electrical interface,
and connecting a device with HVD interface to a bus with SE or LVD devices may cause dam-
ages to these devices, it is necessary to differentiate between various types of interfaces. De-
vices with normal interface can be distinguished from those with HVD or LVD differential
interfaces by the symbols labeled on them. Different symbols have been adopted in the indus-
try for the normal and differential SCSI interfaces (Figure 6.1).
Figure 6.1. Symbols for the SCSI electrical interfaces: (a) SE normal interface; (b) HVD differential interface;
(c) LVD differential interface; (d) LVD/SE multimode interface.
Input/Output Systems and Peripheral Devices 3
6.3.1. SCSI-1
The first standard of the SCSI interface, SCSI-1 (ANSI X3.131-1986), has been ap-
proved by the ANSI institute in 1986. Even before the approval of this standard, the hard disk
manufacturers were worried that many of the commands and features specified by the stand-
ard were optional. For that reason, no guarantee existed that a particular peripheral will sup-
port all these commands. To solve this problem, the industry requested the X3T9 committee
that developed the SCSI-1 specifications to extend the mandatory commands and features of
these specifications. Because the specifications were nearly finished, the ANSI institute has
approved the standard in the existing form and established a new working group to develop a
set of 18 basic SCSI commands. This set has been called CCS (Common Command Set) and
will become the minimum set of commands supported by all peripherals. This command set
became the basis of the SCSI-2 standard.
6.3.2. SCSI-2
The SCSI-2 standard is an improved version of the SCSI-1 standard, with new fea-
tures and options added. Normally, SCSI-1 and SCSI-2 devices are compatible, but devices
conforming to the SCSI-1 standard do not support the additional features introduced in the
SCSI-2 standard.
The X3T9 working committee finalized the SCSI-2 standard in 1990, but the docu-
ment has been withdrawn at the end of the same year for some changes, to be made before the
final publishing by the ANSI institute. The final version has been approved only at the begin-
ning of 1994, although this document (ANSI X3.131-1994) contains very few changes com-
pared to the initial version from 1990. Basically, all the specifications of the SCSI-1 standard
can also be found in the SCSI-2 standard.
In addition to supporting the set of 18 basic SCSI commands, the SCSI-2 standard
also contains new specifications, such as new commands for CD-ROM drives (including the
possibility to use CD audio discs), tape drives, and other peripherals. Likewise, a faster ver-
sion of the interface has been defined, called Fast SCSI-2, and a 16-bit version, called Wide
SCSI-2. Another improvement defined by the SCSI-2 standard is the possibility to write the
commands into a command queue, which allows a peripheral to accept several commands and
to execute them in an order that is considered the most efficient. This possibility is important
for multitasking operating systems.
Some of the changes specified by the SCSI-2 standard are minor. For instance, in the
SCSI-1 standard the parity on the SCSI bus was optional, while in the SCSI-2 standard it is
mandatory to use a parity bit. Another requirement is that initiator devices, such as host
adapters, have to provide power to the terminator devices of the interface. However, most
devices already fulfilled this requirement.
The SCSI-2 standard defines the following optional features:
Fast SCSI;
Wide SCSI;
Command queuing;
New commands;
Improved terminators.
Fast SCSI refers to the capability to perform synchronous transfers at higher speeds.
With this version, transfer rates of 10 MB/s can be achieved on the standard 8-bit SCSI bus.
4 6. The SCSI Interface
When combined with a 16-bit Wide SCSI interface, this configuration allows transfer rates of
20 MB/s.
Wide SCSI enables data transfers on 16-bit or 32-bit buses. For these variants other
cables are required than for the 8-bit variant. The standard 50-conductor cable used for 8-bit
transfers is called the A cable. For the 16-bit Wide SCSI variant a 68-conductor P cable is
required. For the 32-bit Wide SCSI variant, which was never actually implemented, two ca-
bles are required: the 68-conductor P cable and the 68-conductor Q cable.
According to the SCSI-1 standard, an initiator device, such as a host adapter, can send
a single command per device. According to the SCSI-2 standard, the host adapter can send up
to 256 commands to a single device, which will store the commands in a command queue and
will process them before sending a response on the SCSI bus. The device can even change the
order of commands to enable the most efficient execution possible.
The commands from the Common Command Set (CCS), which were already used in
the industry, have been included officially into the SCSI-2 standard. The common command
set was defined especially for disk drives and did not include specific commands for other
types of devices. Many of the old commands have been changed and new commands have
been added. For instance, new command sets have been added for CD-ROM drives, other
optical drives, scanners, communication devices etc.
For correct operation of the single-ended SCSI bus, termination resistors with tight
tolerances are needed. The 132- passive terminators, defined in the SCSI-1 standard, are not
adequate for the higher transfer speeds allowed by the SCSI-2 standard. These passive termi-
nators can cause signal reflections, and errors can occur when transfer rates increase or when
more devices are attached to the bus. According to the SCSI-2 standard, active components
should be used as terminators, which ensure an impedance of 110 and improve system in-
tegrity.
6.3.3. SCSI-3
SCSI-3 represents a collection of standards that were developed and published sepa-
rately. These standards have been divided into categories that include: standards for primary
commands, standards for commands that are specific to various device classes, standards for
the communication protocols, and standards for the physical interconnects. In addition, a
SCSI Architectural Model (SAM) exists for the physical and electrical interfaces. The SCSI-3
standards have been developed and are updated by the T10 technical committee within the
InterNational Committee on Information Technology Standards (INCITS) that is accredited by
ANSI. The working documents of the T10 committee are available at address www.t10.org.
The main improvements introduced by the SCSI-3 standard include the following:
Ultra2 (Fast-40) SCSI;
Ultra3 (Fast-80DT) SCSI;
Ultra4 (Fast-160DT) SCSI;
Ultra5 (Fast-320DT) SCSI;
New Low Voltage Differential signaling;
Elimination of High Voltage Differential signaling.
Figure 6.2 presents the main components of the SCSI-3 collection of standards. Most
of the individual standards have several versions, which are indicated in the figure.
The main components of the SCSI-3 family of standards are described next.
SCSI Architecture Model (SAM) defines the model of SCSI systems, the functional
partitioning of the SCSI-3 set of standards, and the requirements applicable to all SCSI-3 im-
plementations.
Input/Output Systems and Peripheral Devices 5
Commands represent specifications that define the classes of devices and a device
model for each class. These specifications define the commands that must be implemented by
all devices or those that are specific to various classes of devices, and describe the rules that
must be followed by an initiator device when it sends commands to another device. The main
standards related to the commands are the following:
Primary Commands (SPC): basic commands for all SCSI devices;
Block Commands (SBC): commands for direct-access devices such as magnetic disk
drives;
Stream Commands (SSC): commands for sequential-access devices such as magnetic
tape drives;
Medium Changer Commands (SMC): commands for medium changer devices such as
jukeboxes for audio discs;
Multimedia Commands (MMC): commands for optical disc drives such as CD-ROM,
CD-R/E (Recordable/Erasable), DVD;
Controller Commands (SCC): commands for I/O controllers, e.g., for RAID (Redun-
dant Array of Independent Disks) disk drive sets.
Protocols represent specifications that define the communication rules between vari-
ous SCSI devices.
Interconnects contain specifications that define various physical interfaces. The
SCSI-3 collection of standards defines several types of interfaces. For a long time, the most
used was the SCSI Parallel Interface (SPI), until it begun to be replaced with the Serial At-
tached SCSI (SAS) serial interface. Another serial interface is IEEE 1394, especially used for
video applications. Fibre Channel is a high-performance serial interface, which allows com-
munication over optical fiber. The Serial Storage Architecture (SSA) serial interface is de-
signed to connect disk drives or RAID disk arrays to servers. InfiniBand is another high-
performance serial interface, intended for the connection of processors with high-speed pe-
ripherals such as storage devices. iSCSI (Internet SCSI) allows server computers to access
remote disk volumes using the existing network infrastructure and the TCP/IP protocol.
We consider the parallel SCSI interface. Several versions of this interface have been
developed, as the electrical protocol has been improved. The various types of the SCSI parallel
interface are presented in Table 6.1.
6 6. The SCSI Interface
Table 6.1. Types of parallel SCSI interfaces specified in the SCSI-3 standards.
Clock Maximum
Standard Technology Alternate Name Frequency Width Transfer Rate
(MHz) (MB/s)
SPI Fast-20 Ultra 20 8 20
SPI Fast-20/Wide Ultra/Wide 20 16 40
SPI-2 Fast-40 Ultra2 40 8 40
SPI-2 Fast-40/Wide Ultra2/Wide 40 16 80
SPI-3 Fast-80DT Ultra3 (Ultra160) 80 16 160
SPI-4 Fast-160DT Ultra4 (Ultra320) 80 16 320
SPI-5 Fast-320DT Ultra5 (Ultra640) 160 16 640
In Table 6.1, DT (Double Transition) indicates two transfers performed in each clock
cycle, one at each edge of the clock signal. For the SPI-3, SPI-4, and SPI-5 interfaces, the SCSI
bus width is 16 bits. Starting with the SPI-2 interface, only the LVD differential signaling is used.
This REQ/ACK handshake protocol requires that the signals propagate through the
SCSI cable twice for each data transfer. This requires a certain time; typically, the propaga-
tion delay is about 5.25 ns for each meter. The propagation delay is the primary speed limita-
tion of asynchronous SCSI transfers when long cables are used.
In the synchronous SCSI protocol, an acknowledgement is also required for each
request sent, but the acknowledgement can be delayed. Consequently, a device can send data
packets one after another without the propagation delays required in the asynchronous proto-
col. The speed is determined by the bus cycle time without regard to propagation delay, and is
therefore independent of cable length.
The first clock frequency specified for synchronous transfers was 5 MHz. This fre-
quency has been increased gradually in the newer versions of the interface, with each version
doubling the frequency of its predecessor version. Starting with the SPI-3 interface, the DT
(Double Transition) technology is used, so that data transfers take place on both the rising and
falling edge of each clock cycle.
I/O are de-asserted, and recognizes its ID, it will assert the BSY signal. When the initiator
detects that the BSY signal is asserted, it releases the data bus and de-asserts the SEL signal.
Next, the target device indicates that it has entered the Command phase by asserting
the C/D signal. This signal will remain asserted during this phase. The target device then as-
serts the REQ signal to request the first byte of the command from the initiator. The initiator
places the first byte of the command on the data bus and asserts the ACK signal. The target
device reads the byte and it de-asserts the REQ signal; the initiator then de-asserts the ACK
signal. The first byte of the command contains the operation code, which indicates the number
of bytes remained to be transferred. These additional bytes are transferred with the same
REQ/ACK protocol.
After the target device has received and interpreted the command, it places the bus in
the Data In phase by de-asserting the C/D signal (indicating data information) and it asserts
the I/O signal (indicating the direction from the target to the initiator). The target device plac-
es the first byte or word of the requested data on the data bus and asserts the REQ signal. The
initiator asserts the ACK signal after it has read the data. Additional data bytes or words are
transferred with the same REQ/ACK protocol.
After transferring all the requested data, the target device places the bus in the Status
phase and transfers a status byte to the initiator, indicating that it has successfully completed
the transfer. The C/D signal is again asserted and the I/O signal remains asserted. The
REQ/ACK protocol is used to transfer the status byte.
Finally, the target device places the bus in the Message In phase by asserting the MSG
signal and transferring the COMMAND COMPLETE message byte. Once this message is re-
ceived by the initiator, the target device releases all bus signals to place the bus in the Bus
Free phase.
Bit 7 6 5 4 3 2 1 0
Byte
0 Operation Code
1 Logical Unit Number Reserved
2 MSB
3 Logical Block Address
4
5 LSB
6 Reserved
7 MSB Transfer Length, Parameter List Length,
8 Allocation Length LSB
9 Control
Figure 6.3. Structure of a descriptor block for 10-byte SCSI commands.
The operation code contains two fields: the group code (bits 7..5) and command code
(bits 4..0). The three bits of the group code allow 8 groups of codes. The five bits of the
10 6. The SCSI Interface
command code allow 32 command codes in each group. Therefore, there are a total number of
256 possible operation codes. The group code defines separate groups for 6-byte, 10-byte, or
12-byte commands, as well as for vendor-specific codes.
The logical unit number is defined in the IDENTIFY message. The target will ignore
the logical unit number specified in the command descriptor block if an IDENTIFY message
has been received. It is recommended to set to zero the logical unit number in the descriptor
block. This field was included into the command descriptor block for compatibility with some
SCSI-1 devices.
The logical block address within a logical unit or a volume partition starts with block
zero and must be contiguous up to the last logical block of the logical unit or partition. A de-
scriptor block for 6-byte commands contains a logical block address of 21 bits. Descriptor
blocks for 10-byte and 12-byte commands contain logical block addresses of 32 bits.
The transfer length specifies the length of data that must be transferred, usually, in
number of blocks. For some commands, the transfer length specifies the number of bytes that
are to be transferred. For commands that use a byte for the transfer length, a transfer length
between 1 and 255 indicates the number of blocks that must be transferred by a single com-
mand. A value of 0 indicates 256 blocks. For commands that use several bytes for the transfer
length, a length of 0 indicates that no data are to be transferred.
The parameter list length is used to specify the number of bytes that are transferred
during the Data Out phase, bytes that represent the parameters sent to the target device.
The allocation length specifies the maximum number of bytes allocated by the initia-
tor device for the data sent from the target device. The target must finish the Data In phase
when a number of bytes indicated by the allocation length have been transferred. This length
is used to limit the number of bytes returned to the initiator device.
The control field has the following structure:
7 6 5 4 3 2 1 0
Vendor-specific Reserved Flag Link
The Link bit is used to continue the I/O process after the current command completes
successfully. If the Link bit is 1, the target must enter the Command phase after the current
command completes. Implementation of this bit is optional.
The Flag bit specifies the message that must be returned by the target device to the
initiator if the Link bit is 1 and the command completes without errors. Usually, this bit is
used to generate an interrupt of the initiator device between linked commands. Implementa-
tion of this bit is optional.
If the Link bit is 0 and the Flag bit is 1, the target device must return the Check Con-
dition status. This status indicates that an unpredicted event occurred during the operation.
The initiator device must send an additional command (Request Sense) to determine the un-
predicted event.
If the Link bit is 1 and the Flag bit is 0, and the command completes successfully, the
target must send the LINKED COMMAND COMPLETE message. If the Link bit is 1 and the
Flag bit is 1, and the command completes successfully, the target must send the LINKED
COMMAND COMPLETE (WITH FLAG) message. These messages indicate the end of a
linked command.
eliminates dependence on a particular type of host adapter. Universal drivers perform the link
between the host adapter and operating system.
One of these drivers is the Advanced SCSI Programming Interface (ASPI), initiated
by the Adaptec company. Later on, other SCSI device vendors have used the ASPI driver for
their products. Many operating systems include an ASPI driver for several SCSI host adapt-
ers.
The second driver is called CAM (Common Access Method) and has been created by
Future Domain and NCR companies. The CAM driver is a protocol approved by ANSI and
enables to control several SCSI host adapters. Future Domain also provides a CAM-ASPI
converter for its host adapters.
Current Windows operating systems use the SCSI Pass Through Interface (SPTI) for
accessing SCSI devices. This programming interface has been developed by Microsoft Corpo-
ration and is accessible to software using the DeviceIoControl() function, which allows to
send a control code directly to a device driver.
The SAS interface is a point-to-point architecture, with each device connecting direct-
ly to a SCSI port rather than connecting to a shared bus. Since the bandwidth is not shared by
several devices, as in the case of the parallel SCSI interface, transfers with higher speeds are
possible. By using a point-to-point connection, data reliability and the ability to locate failures
are improved compared to a shared-bus architecture.
The SAS protocol specifies a full-duplex communication between the SAS controller
and a disk drive. Therefore, read and write operations can be performed at the same time,
which increases performance. Comparatively, SATA drives use half-duplex communication,
so that when data are being sent to the drive for writing, any data that needs to be read from
the drive must wait for the previous communication to complete.
Input/Output Systems and Peripheral Devices 15
A large number of SAS or SATA disk drives can be connected to a SAS controller
port by using SAS expanders. An expander allows a single initiator to communicate with a
number of SAS/SATA target devices. A SAS expander is similar to a switch in a network,
which allows multiple systems to be connected using a single switch port. The cost of a sys-
tem containing an expander is much lower compared to the cost of a system containing a large
port-count SAS controller or multiple smaller port-count controllers. By using expanders, up
to 16,384 physical links are possible.
A SAS domain consists of a set of SAS devices that communicate with one another
by means of cables and backplanes, with or without expanders. Each SAS port and expander
device in a SAS domain is assigned a globally unique identifier by the device manufacturer.
This 64-bit identifier that represents the SAS address is called World Wide Name (WWN) and
it uniquely identifies the device in the SAS domain just as a SCSI ID identifies a device at-
tached to a parallel SCSI bus. Out of the 64 bits, 24 bits represent the vendor company identi-
fier and 40 bits represent the vendor-specific identifier. Unlike for the parallel SCSI interface,
there is no need to set manually the addresses in a serial SCSI system, since all the configura-
tion is performed automatically. The SAS interface does not require installing terminators like
the parallel SCSI interface.
The SAS interface uses differential signaling and data scrambling to reduce electro-
magnetic interference. It is possible to combine up to four ports with the same address into a
wide port, which enable to increase the data rate.
SAS disk drives are dual-ported, which means that they can be directly connected to
and controlled by two SAS controllers at the same time. This capability allows a redundant
system to be built. When one of the SAS controllers fails, the other is still able to access the
SAS disk drives and the data stored on those drives.
A SAS system can use either SAS or SATA disk drives. A SATA drive can be con-
nected to a SAS system via an expander or a chip that implements the SAS protocol. This
compatibility is possible because the SAS and SATA drive connectors are similar. These con-
nectors are shown in Figure 6.5. Both connectors have the same number of pins and the pins
have the same size and shape. However, the SATA drive connector has a notch, which is miss-
ing in the SAS drive connector. This notch prevents a SAS drive from being plugged into a
SATA system. A SAS system uses a connector that allows a disk drive with a notch ( SATA) or
a disk drive without the notch (SAS) to be installed.
SAS disk drives have higher performance compared to SATA disk drives. The spindle
speed of SAS drives is between 10,000 and 15,000 revolutions per minute (RPM), while the
spindle speed of SATA drives is between 5,400 and 7,200 RPM. The higher spindle speed
reduces the access time. The full-duplex communication supported by SAS drives also con-
tributes to the higher performance of these drives. SAS drives are dual-ported, and this allows
them to communicate with two host adapters or controllers simultaneously, which improves
16 6. The SCSI Interface
data availability. SAS drives are also much more reliable than SATA drives and are designed
for much more intensive use.
6.10. Applications
6.10.1. Answer the following questions:
a. What are the improvements introduced by the SCSI-3 standards for the parallel
SCSI interface?
b. What is the difference between the asynchronous and synchronous SCSI protocols?
c. What are the operations required for configuring a SCSI system?
d. What are the advantages of the serial SCSI interface compared to the parallel
SCSI interface?
6.10.2. Present examples of possible configurations for a SCSI bus composed of de-
vices A, B, C, and D (including the host adapter). Show the placement of the adapter and ter-
minators.
6.10.3. Create a Windows application for checking whether the ASPI manager is ini-
tialized correctly and for displaying the number of SCSI adapters in the system. As model for
the Windows application, use the AppScroll-e application available on the laboratory web page in
the AppScroll-e.zip archive. Perform the following operations to create the application project:
1. In the Microsoft Visual Studio programming environment, create a new project by se-
lecting General Empty Project in the New Project dialog window.
2. Copy to the project folder the files contained in the AppScroll-e.zip archive and add all
the files to the project.
3. Copy to the project folder the files from the WNASPI32.zip archive, available on the la-
boratory web page. Add to the project the wnaspi32.h and scsidefs.h header files.
4. Open the AppScroll-e.cpp source file, delete the #include "Hw.h" directive and add
#include directives to include the wnaspi32.h and scsidefs.h header files.
5. In the AppScroll() function, delete the sequences for initializing the Hw library
with the HwOpen() function and for closing the Hw library with the HwClose()
function.
6. Select Build Build Solution and make sure that the application builds without er-
rors.
Use the specifications of the ASPI programming interface from the ASPI32.pdf docu-
ment (available on the laboratory web page or at reference [1]) and the wnaspi32.dll library to
write a function with no input parameters that performs the following operations:
Load the wnaspi32.dll library with the LoadLibrary() function;
Determine the address of the GetASPI32SupportInfo() and SendASPI32-
Command() functions with the GetProcAddress() function.
Call the GetASPI32SupportInfo() function and display whether the ASPI manag-
er is initialized correctly.
If the ASPI manager is initialized correctly, display the number of SCSI adapters in
the system.
After writing the function, include the call to this function in the AppScroll() func-
tion and verify the operation of the function.
6.10.4. Extend Application 6.10.3 by writing a function that performs the following
operations for each SCSI adapter, starting with adapter number 0:
Input/Output Systems and Peripheral Devices 17
Bibliography
[1] Adaptec, Inc., “ASPI for Win32 Technical Reference”, 2001,
http://www.zianet.com/jgray/dat/files/ASPI32.pdf.
[2] Baruch, Z., Sisteme de intrare/ieşire, Îndrumător de lucrări de laborator, U.T.PRES,
Cluj-Napoca, 1998.
[3] Czekalski, M., “Serial Attached SCSI Architecture”, SCSI Trade Association, 2004,
http://www.scsita.org/library/presentations/SAS_Architecture_Overview.pdf.
[4] Mueller, S., Upgrading and Repairing PCs, 16th Edition, Que Publishing, 2005.
[5] Rosch, W. L., Hardware Bible, Sixth Edition, Que Publishing, 2003.
[6] Stallings, W., Computer Organization and Architecture. Designing for Performance,
Fifth Edition, Pearson Education, 2001.
[7] T10 Committee, “Information Technology – SCSI-3 Block Commands (SBC)”, T10
Project 0996-M, Revision 08c, 1997, http://www.t10.org/cgi-bin/ac.pl?t=f&f=sbc-
r08c.pdf.
[8] The PC Guide, “Small Computer Systems Interface (SCSI)”, 2001,
http://www.pcguide.com/ref/hdd/if/scsi/index.htm.
[9] Wikimedia Foundation, Inc., “Serial Attached SCSI”, 2015,
https://en.wikipedia.org/wiki/Serial_attached_SCSI.