[comp.sys.amiga] SCSI: Whatzit?

ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab) (10/19/88)

[ The line eater hit  -- more -- ]

	A learned friend of mine explained to me that he doesn't like SCSI.
His reasoning is that nearly every SCSI drive is different, and that you
have to write a different device driver for nearly every drive you come
across.  This evidently has something to do with the fact that no two drive
manufacturers return the same error codes.

	He personally perfers ST506.  However, I thought ST506 was a
dinosaur, and SCSI beat it in terms of transfer speed and media size.  He
likes ST506 because you can plug any ST506 drive in the world into an ST506
controller, and it'll work.  This is apparently not true of SCSI.

	Now, seeing as how I'm getting closer and closer to the day when I
buy a hard disk (no, I don't have one yet), I want to make certain that I do
it right.  So could someone please explain to me what's what, and the
advantages and pitfalls of both formats.

	Something tells me it's probably best to send answers via mail,
unless you feel your information would be of general interest.

	Thanks.

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
Leo L. Schwab -- The Guy in The Cape	INET: well!ewhac@ucbvax.Berkeley.EDU
 \_ -_		Recumbent Bikes:	UUCP: pacbell > !{well,unicom}!ewhac
O----^o	      The Only Way To Fly.	      hplabs / (pronounced "AE-wack")
"Work FOR?  I don't work FOR anybody!  I'm just having fun."  -- The Doctor

cmcmanis%pepper@Sun.COM (Chuck McManis) (10/20/88)

In article <7413@well.UUCP> ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab) writes:
>	A learned friend of mine explained to me that he doesn't like SCSI.
>His reasoning is that nearly every SCSI drive is different, and that you
>have to write a different device driver for nearly every drive you come
>across.  This evidently has something to do with the fact that no two drive
>manufacturers return the same error codes.

Not exactly true, but true enough. The SCSI spec has some very definite 
ideas on how you talk to a drive, and within that set of ideas is something
called the Common Command Set or CCS. These are required in all drives 
that want to be called "SCSI Compatible". All of the generic bases are
covered but the fundamental maintenence issues are not. [This comes 
from the experiences of writing a hard disk maintainer program for SCSI
disks.] Where the specification falls down is in the areas that couldn't
be agreed upon by the committee and were instead left up to the vendors. 
For hard disk driver writers the key area of difficulty in in the handling
of Defective blocks on the drive. The three areas in question are 
identifying the blocks, adding them to the known list, and verifying that
known list. 

Identifying them is done with the REASSIGN BLOCKS command, which is a 
standard 6 byte command, however the "Defect Descriptor" can take on 
one of three forms. This defect descriptor identifies the block to the
SCSI device. The three ways of identifying a bad block are
using the cylinder, head, and sector method. This identifies the sector
that is bad which is fairly easy to compute if you can read the geometry
from the drive. The Cylnder, Head, Bytes_from_Offset method which is more
accurate (identifying the specific byte region where the defect occurs
which allows particularly bright SCSI drive controllers to just move the
sectors around so that none of them hit the bad spot without actually
using a spare sector. And finally, using the "logical block" address
which is putting the translation into the physical block location into
the SCSI controllers domain. The advantage here is that if the subsequently
spared block goes bad then you still get the correct physical block because
the logical blocks all go through the mapping process before getting 
resolved to physical blocks. The problem is that it is not "required"
that any specific form be supported, only that "one" form be supported. 
Also since there isn't an Unreassign command you can't use one form and
then undo it if it got the wrong block. 

Adding them to the known list is usually done by reformatting the 
hard disk. The problem here is two fold, one it takes the same 
defect descriptors as the REASSIGN command does, and two there are
several "modes" to format into that include Reassigned blocks or
don't and can even erase the manufacturers list in some cases. 
Fortunately all drives support the "Format down to the original list"
and "Format with all blocks reassigned so far." So if you solve the
Reassign problem you get to format for free. 

Then you have to verify the lists and here it gets weird again.
The command GET DEFECT LIST is standard, and has two bits, one
for the "manufacturer" list and one for the "grown" list. You can
always ask for all of them (everyone supports that it seems) but
you can't always ask for just one list or the other. For instance
Seagate drives will give you both lists or just the manufacturer list
but not just the "grown" list. Miniscribe drives will give you 
any combination as will Quantum drives. Thats the first problem,
then the second problem is that the drive may give them back to
you in a format that is different than the one you uses to assign
them. (although generally it will be the same format as shown on the
defect mapping with the drive). Thus you may use "logical block format"
to map them and get them back in "Cylinder, head, offset" format! 
Since you don't know the algorithim for computing one from the other
(it's implied by the drive controller.) You can't know if it is correct.
Then you get people like seagate that like to insert a 0xFF byte between
lists but again this isn't part of the standard because the standard 
says the format of the List returned is "vendor specific."

Anyway, that is my biggest gripe, but it is undeniably true that no 
ST-506 drive will ever match the performance of the later SCSI drives.
Because it is a physical device specification (it defines the data rate
to by 5Mhz for instance) you can't take advantage of new technologies.
Wherease with SCSI, the bus itself is capable of 4Mb/sec in synchronous
mode, and as drives get better we will see them come up against this
barrier. Already at Sun we are finding that many of the new SCSI drives
offer performance that is comparable to SMD drives. This won't happen 
with ST-506 type drives. 


--Chuck McManis
uucp: {anywhere}!sun!cmcmanis   BIX: cmcmanis  ARPAnet: cmcmanis@sun.com
These opinions are my own and no one elses, but you knew that didn't you.