The following article was written by Dal Allan of ENDL in April 1990.  It 
was published nine months later in the January 1991 issue of "Computer 
Technology Review".  While it appeared in the Tape Storage Technology 
Section of CTR, the article is general in nature and tape-specific.  In 
spite of the less than timely publication, most of the information is still 
valid.

It is reprinted here with the permission of the author.  If you copy this 
article, please include this notice giving "Computer Technology Review" 
credit for first publication.

------------------------------------------------------------------------------
                            What's New in SCSI-2

Scuzzy is the pronunciation and SCSI (Small Computer System Interface) is 
the acronym, for the best known and most widely used ANSI (American National 
Standards Institute) interface. 

Despite use of the term "Small" in its name, everyone has to agree that 
Scuzzy is large - in use, in market impact, in influence, and unfortunately, 
in documentation. The standards effort that began with a 20-page 
specification in 1980 has grown to a 600 page extravaganza of technical 
information. 

Even before ANSI (American National Standards Institute) published the first 
run of SCSI as standards document in 1986, ASC (Accredited Standards 
Committee) X3T9.2 was hard at work on SCSI-2. 

No technical rationale can be offered as to why SCSI-1 ended and SCSI-2 
began, or as to why SCSI-2 ended and SCSI-3 began. The justification is much 
more simple - you have to stop sometime and get a standard printed. Popular 
interfaces never stop evolving, adapting, and expanding to meet more uses 
than originally envisaged. 

Interfaces even live far beyond their technological lifespan. SMD (Storage 
Module Drive) has been called technically obsolete for 5 years but every 
year there are more megabytes shipped on the SMD interface than the year 
before. This will probably continue for another year or so before the high 
point is reached, and it will at least a decade before SMD is considered to 
be insignificant. 

If SCSI enhancements are cut off at an arbitrary point, what initiates the 
decision? Impatience is as good an answer as any. The committee and the 
market get sick of promises that the revision process will "end soon," and 
assert pressure to "do it now."

The SCSI-3 effort is actively under way right now, and the workload of the 
committee seems to be no less than it was a year ago. What is pleasant, is 
that the political pressures have eased. 

There is a major difference between the standards for SCSI in 1986 and SCSI-
2 in 1990. The stated goal of compatibility between manufacturers had not 
been achieved in SCSI in 1986 due to a proliferation of undocumented 
"features." 

Each implementation was different enough that new software drivers had to be 
written for each device. OEMs defined variations in hardware that required 
custom development programs and unique microcode. Out of this diversity 
arose a cry for commonality that turned into CCS (Common Command Set), and 
became so popular that it took on an identity of its own. 

CCS defined the data structures of Mode Select and Mode Sense commands, 
defect management on the Format command and error recovery procedures. CCS 
succeeded because the goals were limited, the objectives clear and the time 
was right. 

CCS was the beginning of SCSI-2, but it was only for disks. Tape and optical 
disks suffered from diversity, and so it was that the first working group 
efforts on SCSI-2 were focused on tapes and optical disks. However, opening 
up a new standards effort is like lifting the lid on Pandora's Box - its 
hard to stay focused on a single task. SCSI-2 went far beyond extending and 
consolidating CCS for multiple device types. 

SCSI-2 represents three years of creative thought by some of the best minds 
in the business. Many of the new features will be useful only in advanced 
systems; a few will find their way into the average user's system. Some may 
never appear in any useful form and will atrophy, as did some original SCSI 
features like Extended Identify.

Before beginning coverage of "what's new in SCSI-2," it might be well to 
list some of the things that aren't new. The silicon chips designed for SCSI 
are still usable. No new features were introduced which obsolete chips. The 
cause of silicon obsolescence has been rapid market shifts in integrating 
functions to provide higher performance. 

Similarly, initiators which were designed properly, according to SCSI in 
1986, will successfully support SCSI-2 peripherals. However, it should be 
pointed out that not all the initiators sold over the last few years behaved 
according to the standard, and they can be "blown away "by SCSI-2 targets. 

The 1986 standard allows either initiators or targets to begin negotiation 
for synchronous transfers, and requires that both initiators and targets 
properly handle the sequence. A surprisingly large percentage of SCSI 
initiators will fail if the target begins negotiation. This has not been as 
much of a problem to date as it will become in the future, and you know as 
well as I do, that these non-compliant initiators are going to blame the 
SCSI-2 targets for being "incompatible." 

Quirks in the 1986 standard, like 4 bytes being transferred on Request 
Sense, even if the requested length was zero have been corrected in SCSI-2. 
Initiators which relied on this quirk instead of requesting 4 bytes will get 
into trouble with a SCSI-2 target. 

A sincere effort has been made to ensure that a 1986-compliant initiator 
does not fail or have problems with a SCSI-2 target. If problems occur, look 
for a non-compliant initiator before you blame the SCSI-2 standard. 

After that little lecture, let us turn to the features you will find in 
SCSI-2 which include: 

 o Wide SCSI: SCSI may now transfer data at bus widths of 16 and 32 bits. 
Commands, status, messages and arbitration are still 8 bits, and the B-Cable 
has 68 pins for data bits. Cabling was a confusing issue in the closing days 
of SCSI-2, because the first project of SCSI-3 was the definition of a 16-
bit wide P-Cable which supported 16-bit arbitration as well as 16-bit data 
transfers. Although SCSI-2 does not contain a definition of the P-Cable, it 
is quite possible that within the year, the P-Cable will be most popular 
non-SCSI-2 feature on SCSI-2 products. The market responds to what it wants, 
not the the arbitrary cutoffs of standards committees.

 o Fast SCSI: A 10 MHz transfer rate for SCSI came out of a joint effort 
with the IPI (Intelligent Peripheral Interface) committee in ASC X3T9.3. 
Fast SCSI achieves 10 Megabytes/second on the A-Cable and with wider data 
paths of 16- and 32-bits can rise to 20 Megabytes/second and even 40 
Megabytes/second. However, by the time the market starts demanding 40 
Megabytes/second it is likely that the effort to serialize the physical 
interface for SCSI-3 will attract high-performance SCSI users to the Fiber 
Channel. 

A word of caution. At this time the fast parameters cannot be met by the 
Single Ended electrical class, and is only suitable for Differential. One of 
the goals in SCSI-3 is to identify the improvements needed to achieve 10 MHz 
operation with Single Ended components.

 o Termination: The Single Ended electrical class depends on very tight 
termination tolerances, but the passive 132 ohm termination defined in 1986 
is mismatched with the cable impedance (typically below 100 ohms). Although 
not a problem at low speeds when only a few devices are connected, 
reflections can cause errors when transfer rates increase and/or more 
devices are added. In SCSI-2, an active terminator has been defined which 
lowers termination to 110 ohms and is a major boost to system integrity.

 o Bus Arbitration, Parity and the Identify Message were options of SCSI, 
but are required in SCSI-2. All but the earliest and most primitive SCSI 
implementations had these features anyway, so SCSI-2 only legitimizes the de 
facto market choices. The Identify message has been enhanced to allow the 
target to execute processes, so that commands can be issued to the target 
and not just the LUNs. 

 o Connectors: The tab and receptacle microconnectors chosen for SCSi-2 are 
available from several sources. A smaller connector was seen as essential 
for the shrinking form factor of disk drives and other peripherals. This 
selection was one of the most argued over and contentious decisions made 
during SCSI-2 development. 

 o Rotational Position Locking: A rose by any other name, this feature 
defines synchronized spindles, so than an initiator can manage disk targets 
which have their spindles locked in a known relative position to each other. 
Synchronized disks do not all have to be at Index, they can be set to an 
offset in time relative to the master drive. By arraying banks of 
synchronized disks, faster transfer rates can be achieved. 

 o Contingent Allegiance: This existed in SCSI-1, even though it was not 
defined, and is required to prevent the corruption of error sense data. 
Targets in the Contingent Allegiance state reject all commands from other 
initiators until the error status is cleared by the initiator that received 
the Check Condition when the error occurred. 

Deferred errors were a problem in the original SCSI but were not described. 
A deferred error occurs in buffered systems when the target advises Good 
Status when it accepts written data into a buffer. Some time later, if 
anything goes wrong when the buffer contents are being written to the media, 
you have a deferred error. 

 o Extended Contingent Allegiance (ECA): This extends the utility of the 
Contingent Allegiance state for an indefinite period during which the 
initiator that received the error can perform advanced recovery algorithms. 

 o Asynchronous Event Notification (AEN): This function compensates for a 
deficiency in the original SCSI which did not permit a target to advise the 
initiator of asynchronous events such as a cartridge being loaded into a 
tape drive. 

 o Mandatory Messages: The list of mandated messages has grown: 

  +----------------------+--------------------------+-------------------+
  |       Both           |       Target             |     Initiator     |
  +----------------------+--------------------------+-------------------|
  | Identify             | Abort                    | Disconnect        |
  |                      |                          |                   |
  | Message Reject       | No Operation             | Restore Pointer   |
  |                      |                          |                   |
  | Message Parity Error | Bus Device Reset         | Save Data Pointer |
  |                      |                          |                   |
  |                      | Initiator Detected Error |                   |
  +----------------------+--------------------------+-------------------+

 o Optional messages have been added to negotiate wide transfers and Tags to 
support command queueing. A last-minute inclusion in SCSI-2 was the ability 
to Terminate I/O and receive the residue information in Check Condition 
status (so that only the incomplete part of the command need be re-started 
by the initiator).

 o Command Queueing: In SCSI-1, initiators were limited to one command per 
LUN e.g. a disk drive. Now up to 256 commands can be outstanding to one LUN. 
The target is allowed to re-sequence the order of command execution to 
optimize seek motions. Queued commands require Tag messages which follow the 
Identify. 

 o Disk Cacheing: Two control bits are used in the CDB (Command Descriptor 
Block) to control whether the cache is accessed on a Read or Write command, 
and some commands have been added to control pre-fetching and locking of 
data into the cache. Users do not have to change their software to take 
advantage of cacheing, however, as the Mode Select/Mode Sense Cache page 
allows parameters to be set which optimize the algorithms used in the target 
to maximize cache performance. Here is another area in which improvements 
have already been proposed in SCSI-3, and will turn up in SCSI-2 products 
shipping later this year. 

 o Sense Keys and Sense Codes have been formalized and extended. A subscript 
byte to the Sense Code has been added to provide specifics on the type of 
error being reported. Although of little value to error recovery, the 
additional information about error causes is useful to the engineer who has 
to analyze failures in the field, and can be used by host systems as input 
to prognostic analysis to anticipate fault conditions. 

 o Commands: Many old commands have been reworked and several new commands 
have been added. 

 o Pages: Some method had to be found to pass parameters between host and 
target, and the technique used is known as pages. The concept was introduced 
in CCS and has been expanded mightily in SCSI-2. 

A number of new Common Commands have been added, and the opcode space for 
10-byte CDBs has been doubled. 

 o Change Definition allows a SCSI-2 initiator to instruct a SCSI-2 target 
to stop executing according to the 1986 standard, and provide advanced SCSI-
2 features. Most SCSI-2 targets will power on and operate according to the 
1986 standard (so that there is no risk of "disturbing" the installed 
initiators, and will only begin operating in SCSI-2 mode, offering access to 
the advanced SCSI-2 capabilities, after being instructed to do so by the 
initiator using the Change Definition command.

 o The Mode Select and Mode Sense pages which describe parameters for 
operation have been greatly expanded, from practically nothing in 1986 to 
hundreds of items in SCSI-2. Whenever you hear of something being described 
as powerful and flexible tool, think complicated. Integrators are advised to 
be judicious in their selection of the pages they decide to support. 

 o the Inquiry command now provides all sorts of interesting data about the 
target and its LUNs. Some of this is fixed by the standard, but the main 
benefit may be in the Vendor Unique data segregated into the special 
designation of Vital Product Data, which can be used by integrators as a 
tool to manage the system environment.

 o Select Log and Sense Log have been added so that the initiator can gather 
both historical (e.g. all Check Conditions) and statistical (e.g. number of 
soft errors requiring ECC) data from the target. 

 o Diagnostic capabilities have been extended on the Read/Write Buffer and 
Read/Write Long commands. The ways in which the target can manage bad blocks 
in the user data space have been defined further and regulated to reduce 
inconsistencies in the 1986 standard. A companion capability to Read Defect 
Data permits the initiator to use a standard method to be advised of drive 
defect lists. 

 o A new group of 12-byte command blocks has been defined for all optical 
devices to support the large volume sizes and potentially large transfer 
lengths. The Erase command has been added for rewritable optical disks so 
that areas on the media can be pre-erased for subsequent recording. Write 
Once disks need Media Scan, so that the user can find blank areas on the 
media. 

 o New command sets have been added for Scanners, Medium Changers, and CD 
ROMs. 

All of this technical detail can get boring, so how about some "goodies" in 
SCSI-2 which benefit the common man and help the struggling engineer? First, 
and probably the best feature in SCSI-2 is that the document has been 
alphabetized. No longer do you have to embark on a hunt for the Read command 
because you cannot remember the opcode. 

In the 1986 standard, everything was in numeric sequence, and the only 
engineers who could find things easily were the microprogrammers who had 
memorized all the message and opcode tables. Now, ordinary people can find 
the Read command because it is in alphabetic sequence. This reorganization 
may sound like a small matter but it wasn't, it required a considerable 
amount of effort on the part of the SCSI-2 editors. It was well worth it. 

Another boon is the introduction for each device class of models which 
describe the device class characteristics. The tape model was the most 
needed, because various tape devices use the same acronym but with different 
meanings or different acronyms for the same meaning. 

The SCSI-2 tape model defines the terms used by SCSI-2, and how they 
correspond to the acronyms of the different tapes. For example, on a 9-track 
reel, End of Tape is a warning, and there is sufficient media beyond the 
reflective spot to record more data and a trailer. Not so on a 1/4" tape 
cartridge, End of Tape means out of media and no more data can be written. 
This sort of difference in terms causes nightmares for standardization 
efforts. 

So there it is, a summary of what is in SCSI-2. Its not scary, although it 
is daunting to imagine plowing through a 600-page document. Time for a 
commercial here. The "SCSI Bench Reference" available from ENDL Publications 
(408-867-6642), is a compaction of the standard. It takes the 10% of SCSI-2 
which is constantly referenced by any implementor, and puts it in an easy-
to-use reference format in a small handbook. The author is Jeff Stai, one of 
the earliest engineers to become involved with SCSI implementation, and a 
significant contributor to the development of both the 1986 standard and 
SCSI-2. 

SCSI-2 is not yet published as a standard, but it will be available later 
this year. Until then, the latest revision can be purchased from Global 
Engineering (800-854-7179).

Biography

Consultant and analyst I. Dal Allan is the founder of ENDL and publisher of 
the ENDL Letter and the "SCSI Bench Reference." A pioneer and activist in 
the development and use of standard interfaces, he is Vice Chairman of ASC 
X3T9.2 (SCSI) and Chairman of the SCSI-2 Common Access Method Committee. 
