The Basics
SCSI stands for Small Computer Systems Interface and was originally
developed in the late 1970s. Since then it has grown a lot but always maintained
backwards compatibility. SCSI is, at least partly, an ANSI standard.
SCSI is a rival to IDE, and it has some
definite advantages. It supports up to seven devices on one cable and is faster
than IDE. It is also a more strictly defined standard than IDE and there are less
variations and hacks. SCSI is more expensive than IDE, but often the quality of
SCSI hardware is much higher. SCSI hard drives usually have a five year warranty
compared to a three year one for IDE drives. SCSI CDROMs in particular tend
to be much better than their IDE counterparts. SCSI's other main advantage is that
it can connect not only hard drives and CDROMs, but also scanners, cameras, smart
card readers, printers and almost any other kind of input/output device.
SCSI standards
The basic SCSI standard (or SCSI-I as it's often called) was designed to be used
with hard drives and not a lot else. It isn't very common these days, in fact since
the late 1980s most SCSI hardware has been SCSI-II compliant. SCSI-I allows
for up to seven devices per interface.
SCSI-II added support for all sorts of devices. As mentioned above, you can connect
not only hard drives but CDROMs and other removable disks to SCSI-II. It also
supports non-storage devices like printers and scanners. SCSI-II is quite common,
especially on the Amiga. In fact, most SCSI interfaces for the Amiga are SCSI-II.
In an effort to get more speed out of SCSI-II manufacturers defined some extensions
to the SCSI-II standard. In particular, they defined Wide SCSI-II and Ultra SCSI-II.
Wide SCSI-II simply doubled the amount of data that is transmitted via SCSI at once
from 8 bits to 16. Ultra SCSI-II increased the 'clock speed' of SCSI (up to 10Mhz from
the original 5Mhz) so that data
was transmitted faster, although better quality cables are needed to use this feature.
It is possible to combine these two extensions as well, making Ultra Wide SCSI-II.
SCSI-II also introduced some other important features to SCSI which I'll get onto
in a moment. These included synchronous and asynchronous transfer modes and something
called reselection.
Next came SCSI-III. This new standard has been defined be manufacturers, as
SCSI-II was originally, and is not yet and official ANSI standard although it is will
documented and supported. It is expected to be officially recognised soon.
SCSI-III combines all the advances of SCSI-II (including Wide and Ultra) as well as
increasing the clock speed to 20Mhz and introducing new types of cable. SCSI-III is
only available on the Amiga in the form of PPC accelerators with SCSI on them.
SCSI is backwardly compatible. This means that if you have a SCSI-III controller,
all SCSI-II and SCSI-I hardware will work with it as well (including Ultra and Wide
SCSI-II, by the way). With an Ultra Wide SCSI-II controller you can use SCSI-II Ultra
Wide, SCSI-II Wide, SCSI-II Ultra, SCSI-II and SCSI-I devices, but you can also use
SCSI-III devices. The reason is that the SCSI-III device itself is backwardly
compatible and will work fine with SCSI-II or SCSI-I hardware. The only drawback
of this situation is that in the above case you would not get any of the benefits
of SCSI-III, only the benefits of SCSI-II, but at least the drive would work. So,
basically you can use any combination of SCSI hardware, but for each drive the
maximum you will get from it is the weaker of the two. You can mix and match
SCSI-III and SCSI-II drives on the cable controller with no penalties, however.
Just to clarify that, lets look at a couple of examples:
SCSI interface |
SCSI devices |
Max version available |
Comment |
SCSI-I |
SCSI-I HD
SCSI-II HD |
SCSI-I
SCSI-I |
The SCSI-II hard drive has to use SCSI-I for the controller. |
SCSI-III |
SCSI-I HD
SCSI-III HD
SCSI-II Ultra Wide CDROM
SCSI-II scanner |
SCSI-I
SCSI-III
SCSI-II Ultra Wide
SCSI-II |
Note that all drives use their best possible SCSI mode, and the SCSI-III
hard drive isn't slowed down by the other SCSI-II devices. |
SCSI-I |
SCSI-III HD
SCSI-II CDROM
SCSI-I HD |
SCSI-I
Not working
SCSI-I |
Note that the CDROM won't work because the SCSI-I standard doesn't
support CDROMs and the controller is only SCSI-I. |
All SCSI standard have supported something called the Common Command Set (CCS) for
many years now. You don't really need to know about CCS to use SCSI, but for
completeness it is a standard set of commands that all SCSI devices use. It allows
computers to perform standard operations such as querying what the device is,
it's capacity and what other commands and modes it supports.
SCSI cables
A lot of confusion surrounds SCSI cables. There are many different types, so I'll
explain them all here. It is worth noting at this point, however, that the length
of SCSI cables can affect their performance. Having a three meter SCSI cable will
mean you probably won't get as good performance as having a one meter one. You
will only notice the difference if you tweak your SCSI to go faster however,
so it's not the end of the world having long cables. Generally, keep them
as short as possible.
Firstly, internal SCSI cables. The most common are SCSI-I and SCSI-II cables. They
are both 50 way IDC connection ribbon cables, similar to IDE cables. They will have
between 3 and 8 connections (remember, there is a maximum of 7 devices to one
cable and of course there is one controller). The only difference between SCSI-I
and SCSI-II internal cables is build quality. SCSI-II cables have to be made
to a higher standard because they carry higher data rates when used in Wide and/or
Ultra modes. SCSI-II internal cables are easy to get and you shouldn't pay more
than £10 for a quality SCSI-II 8 connection cable.
SCSI-III internal cables are more expensive but higher quality. They are 68 way
ribbon cables with special half pitch connectors on. Again, you can have up to
seven devices so the cable can come with anywhere between 3 and 8 connections.
SCSI-III cables are expensive, expect to pay a fair bit for them.
Nowadays when buying a SCSI drive (hard drives in particular) you will often find
that they have a SCSI-III half pitch 68pin connector. You can still use this with
SCSI-I or II interfaces and cables, just buy a 68pin to 50pin SCSI-III to SCSI-II
adaptor.
Now we come to external SCSI cables. Things get a bit more tricky here. Lets start
with SCSI-I and SCSI-II cables. Again, the only real difference is that SCSI-II cables
are supposed to be better made. There are supposed to be defined standards for
SCSI-I and II cables, but in this case the reality is that manufacturers often use
whatever cable they feel like at the time.
The basic SCSI external cable is a 25
way cable with D-type connections. Both ends have male connections (i.e. pins, not
sockets). These are commonly found used on Zip and other removable drives. Many
Amiga SCSI cards have an external D-type connector for these cables.
Next up is the 50 way external SCSI cable with Centronics (like a printer)
connections at either end (both male). It's basically the same as a 25 pin cable but
every other line is a ground so there is less interference between lines of the
cable. Many external CDROMs and Hard Drives come with this kind of connector.
It's generally thought to be of higher quality than the 25 way version. There is
also a 50 way half pitch SCSI cable. This is the same as the Centronics cable
but with the male half pitch connectors. My own CyberSCSI MK II controller has
a connection for this type of cable on the back. Basically, all these cables are
more or less the same and you can easily get adaptor cables from places like
Maplins to connect almost anything up. Some cables are rated for higher speeds
than others though, so if you want high speed look out for these.
Termination
Good termination is essential to any SCSI system. Maybe you will be able to live
without it for a while, but you won't get a lot of speed and all sorts of
interference could cause problems on your system. Basically, SCSI needs to be
terminated at each end of what is called the SCSI chain. The chain is basically
a cable or several cables joining all the devices in a row, including the
controller. Most controllers have termination built in so if you cable starts
at the controller you don't have a problem on one end at least. Here are some
examples of SCSI chains and termination:
SCSI IDs
Each device on your SCSI chain needs to have an ID number. ID numbers can
be between 0 and 6 usually. The controller uses ID 7. Each device must have
a unique ID number, you can't have to with the same one. The ID number you
give to each device is arbitrary really, it makes no difference what order they
are connected physically to the cable in or what type of device they are. Some
cheap devices can only use one or two ID numbers (external Zip drives can only use
5 or 6 for instance) so sometimes a little planning is needed.
Reselection
Some devices support something called reselection. Imagine that a computer
asks a SCSI CDROM to read a part of a CD. The CDROM has to move it's read head
which may take several tens of milliseconds. This is a long time in computing
terms. Traditionally the CDROM would tie up the SCSI bus so that no other
device could use it, but with reselection the CDROM can let go of the bus
and reconnect to it after it has found the right part of the CDROM. While it's
doing this a hard drive could be reading data, for instance, as the bus is free.
Reselection can cause a few problems with some devices and controllers.
Experimentation is about the only way to find this for any particular device
and controller combination. If your SCSI bus hangs (i.e. locks up, you can't
access any drives etc) or you system gurus when you are using a particular
device try turning off reselection. Use HDToolBox or similar for hard drives,
use your SCSI controllers software (UnitControl for Phase 5 SCSI, for instance)
or the HWGCTRLscsi software which is part of MakeCD (Aminet, free for audio
ripping) for other devices.
Async vs. sync transfers
Normally your SCSI bus will use asynchronous transfers. This basically means that
it will send a byte, wait for acknowledgement that it arrived correctly, and then
send the next. This is fairly fast in paractice but you can go faster using
synchronous transfers. Not all controllers and devices support synchronous mode. Those
that do may not support it at very high data rates. You need very good cables to
use this mode too if you want very high speeds.
What happens in synchronous mode is that the controller tells the device it's
going to make the transfer with how many bytes it wants. The controller then
does a handshake to start the transfer and get in sync. The data is transfered
with no acknowledgements. At the end there is a check to see if it all
arrived okay. The problem is, if you set the speed too high most of the transfers
will have errors so will need to be repeated, making it slower overall anyway.
However, with luck you can get up to 20mb/sec on a PPC SCSI controller or 10mb/sec
on a Zorro III or Phase 5 SCSI module.
As usual, the best thing to do here is experiment. If I set my main HD to
synchronous mode I can get up to 8MB per second from it. Any higher and the
SCSI bus hangs after a while and I have to reboot. Start at about 5mb/sec
if your software gives you the option and work your way up.