| I don't know your application, but usually there is no hard requirement for
semaphores and the design can utilize alternate methods of synch'ing access.
>>>May we use BBSSI intruction on local memory that has been made visible
>>>to the VME bus through the KAV$INMAP system service ?
Yes, you may use the instruction, however that does not accomplish what you
need. There is no point in time, let us call it T in which the motorola board
can examine the bit in the KAV30 memory and be sure that the bit will be
held up or will change to zero in the next time interval. Basically this will
never work.
What you need is a communication between the two processors, such that both
will know when something changes, or both will know when it is save to access
a page in memory. On the KAV30 there are two ways to do this, the first
you use the location monitor, which I would not recommend. The second method is
to use the FIFOs. Here you have again two possibilities, the first one is
to use the FIFOs as a basis of the producer/consumer model which come very close
to semaphores, or you can, as possiblity 2, us the FIFOs for communication. Form
your basenote I guess this is no option since you have to share "lots" of data.
You could for example put a token into the FIFO each processor examines the
FIFO and then accesses the datastructure if it can find the the token in the
FIFO. This has by the way nothing to do with message passing, as you write
in the base note. Also you can build a queue with the FIFOs and sync access
using the queue - that is a semaphore.
If you look in the KAV30 manual there is an ADA example in there on how to use
the FIFOs for sync'ing access to datastructures.
I hope this helps.
Julian.
|
| Hi Raffaele,
Unfortunately, it is not this simple from the KAV30 side. VAX
architecture has severe restrictions as to which VAX interlocked
instructions can have operands in IO space, one of the replies to note
36 in this conference contains more details.
Graham
|