Subject: Re: VS3100 SCSI
To: Brian Chase <bdc@world.std.com>
From: Robert F Schaefer <rschaefe@gcfn.org>
List: port-vax
Date: 05/29/2001 18:51:23
On Tue, 29 May 2001, Brian Chase wrote:

> On Tue, 29 May 2001, J. Buck Caldwell wrote:
> 
> > VS3100 SCSI controllers can only be ID 6 or 7? How damned shortsighted
> > of them. Well, poop.  Either way, there's still the question of
> > whether or not they can act in 'target' mode - which determines
> > whether or not one SCSI controller can send a messages to another.

Surely all the SCSI controllers can hear a disconnect/reconnect?  Wouldn't
it be possible to just listen for disks reconnecting?  IANASE!

> 
> Yeah, that I don't know about.  Even if they can't operate in target mode
> it might be possible to work around this using a chunk of raw disk.  With
> normal applications you run into problems having multiple systems
> accessing a single disk in read-write mode.  But if you were to allocate a
> reasonable sized chunk of disk (maybe 64KB or 128KB) and then split it in
> half, you might be able to do something like the following:
> 
>   .-----------------------.
>   |   VAX1 SCSI-B ID #7   |
>   `-----------------------'
>     Read-only  Write-only
>         ^         |
>  0KB    |         v     64KB
>    +---------+---------+
>    |  32 KB  |  32 KB  |  (Disk chunk -- let the shared disk be ID #2)
>    +---------+---------+
>         ^         |
>         |         v
>    Write-only  Read-Only
>   .-----------------------.
>   |   VAX2 SCSI-A ID #6   |
>   `-----------------------'
> 
> 
> This keeps VAX1 and VAX2 from stomping on eachothers data by giving them
> distinct areas on the shared disk to which they can write.  The parts I
> haven't thought about enough are how you synchronize the communications
> between VAX1 and VAX2.  Say VAX1 writes a block into its 32KB write area,
> how does VAX2 know that the blcok is ready to be reade without polling?
> Then the other question would be, once VAX2 has read this block, how does
> it notify VAX1 that the block is read so that VAX1 can write the next
> block?
> 
> I think the second can be solved by adding some sort of flag block on the
> disk which can be updated by the reading host once the block has been
> read.  The interrupt notification thing though... the only thing I can
> think of without knowing more about SCSI is to send it through the
> ethernet network to the other host, but that's messy.  I suppose you could
> use something like a SCSI bus reset command to indicate "something needs
> to be checked" and then the two VAXen on the shared bus each look to see
> if they have any work to do.  I imagine this would hurt performance.
> 
> In order to get better throughput, a large portion of disk could be split
> up into disk based queues of the above data chunks.
> 
> -brian.