Subject: Re: SCSI Target Mode
To: der Mouse <mouse@Rodents.Montreal.QC.CA>
From: Roger Ivie <firstname.lastname@example.org>
Date: 08/20/2004 17:12:53
On Thu, 19 Aug 2004, der Mouse wrote:
> Roger Ivie said:
> > I needed the dual-channel interface to deal with the possibility that
> > I might be addressed to receive a packet while I was preparing to
> > send one; I just couldn't figure out how to handle that case with a
> > single chip.
> Isn't that what bus arbitration is all about? Or am I just exposing my
> ignorance of SCSI?
Well, I don't have my 53C94 book handy and it's been a few years, so
this is strictly from memory.
While arbitration does allow multiple machines to use the bus, it
doesn't address the problem I was dealing with. The difficulty is that
the 53C94 can operate in one of two modes: target or initiator. The way
it works is that you set the mode of the chip and issue the command.
The chip doesn't arbitrate for the SCSI bus until it has been given a
command. That means if you're sending a packet, there's a window between
the time you've put the chip in initiator mode and the time in which the
chip owns the SCSI bus. What happens if a packet arrives right then? The
chip is in the wrong mode to receive the packet.
About the only way to deal with this aside from having two SCSI chips
(one for each mode) would be to have some means of forcing bus
arbitration to occur before you put the chip in initiator mode. This
MIGHT be possible (I don't have the book handy yadda yadda yadda), but
it also makes the chip setup time visible on the bus.
-----BEGIN GEEK CODE BLOCK-----
GCS/P d- s:+++ a+ C++ UB--(++++) !P L- !E W++ N++ o-- K w O- M+ V+++ PS+
PE++ Y+ PGP t+ 5+ X-- R tv++ b++ DI+++ D+ G e++ h--- r+++ z+++
------END GEEK CODE BLOCK------