|
You may have heard the term "bus" being used with SCSI. This simply refers to the entire
chain of devices including the controller. According to our friends at Whatis, here's the
definition of bus:
A bus is a network topology or circuit arrangement in which all devices are attached to a line
directly and all signals pass through each of the devices. Each device has a unique identity
and can recognize those signals intended for it.
According to that definition, those devices need identities! That makes sense, because
your computer needs a way to differentiate between your hard drive and burner. That makes
sense, because the devices on the SCSI cable all share the same wires. When the adapter
sends a piece of data down the line, it needs to be able to specify which device the data is
destined for. Each device will then "listen" for its unique identifier; when it sees that
identifier, it will grab that data, and all the other devices will ignore it.
IDE devices have identities, master or slave, so how do SCSI devices get defined? Hold on now,
this is very complicated (oh wait, it isn't). They use ID numbers ranging from 0 to a number
defined by the controller. As I mentioned above, a basic setup could have up to 8 devices.
That controller card would have ID's numbering from 0 to 7 to hand out to devices,
including itself. So in effect, you can have up to 7 hard drives, CD-ROM's, etc. along
a cable; the SCSI controller always takes up one of the ID's. Newer types of SCSI can have
ID's ranging from 0 to 15, or 0 to 31.
These ID's do more than just keep the devices sorted out. They also affect the
priority each device (including the controller) has. So what does priority have to do
with your computer? Well, only one device can be active at a time on the bus
(remember how they all share the same set of wires?). Therefore, those devices need to get
control of the bus in order to do anything, right? If you're ripping a CD, there's going
to be a fairly constant stream of data coming down the line. Your hard drive can't just
butt in and start sending data; you'd have some serious electrical incompatabilities.
A simplified view of the events occurring on the bus is split into two parts: the Arbitration
Phase and the Data Transfer Phase. The Data Transfer Phase is pretty obvious as to
what it does, but the Arbitration Phase is a little less so. In that phase the devices that
need to do something fight (well, negotiate sounds better) for control of the bus. Devices
with higher ID's have priority over lower ID's. Because it's up to you to hand out the
IDs when setting up your SCSI system, how do you know who gets what?
The general rule of thumb is to give slower devices higher ID's. The argument is that faster
devices (like a hard drive) will need to more data more often than a slow device (like a CD
drive). While the hard dive is busily chugging away transferring data, we let the CD take
control of the bus when it needs to, because we know that it won't need that much anyway.
It's kind of like we're taking pity on the slower devices, giving them a "leg up".
I mentioned above that the person configuring the sytem has to set up the device IDs, so how does
one do it in the real world? ID's on internal devices are set on each device with a set of
jumpers, and on external devices they are usually set with a dial. Simple enough, eh?
Although the next big issue is the termination of the SCSI bus, we need get familiar
with at least the basic SCSI Standards first. Otherwise I'll start
throwing comic book-sounding terms at you like "Ultra" and "Ultra2 Wide", you'll curse me and my
inability to make a website that looks good.
|