Newsgroups: comp.sys.transputer
From: wgd@ukc.ac.uk (Warren Day)
Subject: Re: One dumb question about DMA
Organization: University of Kent at Canterbury, UK.
Date: Fri, 01 Jul 94 13:16:14 GMT
Message-ID: <9667@eagle.ukc.ac.uk>

In article <Cs5t6x.Kop@info.bris.ac.uk>
roger@pact.srf.ac.uk (Roger Shepherd) writes:
>   PRI PAR
>
>     SEQ
>       event ? ANY -- wait for interrupt
>       array1 := array2 -- block copy; saturate memory
>      
>     SEQ -- low priority
>       c ! array3 -- output array3 over a link

>then the high priority process will descedule waiting for an event. The
>low priority process then outputs array3 over a link - no resource conflict
>yet. Then the event happens and the block copy of the array2 occurs - this
>is able to use all the available memory bandwidth. Whilst this is happening,
>the low priority output of array3 will pause as it is unable to gain access
>to the memory. 

How does it work in the more complex case where the two different priorities
communicate between themselves in an environment that consists of other
high priority communications?  For example,

   PRI PAR
     PAR
       link ? array1
       onchip ? array2
     onchip ! array3

What happens if the outside world is immediately available to complete the
communication, does it have priority?  What happens if the on-chip transfer
is started and then the first byte arrives at the link?

Cheers,
--
Warren
		Pause for a moment,
			and consider man's humanity towards his fellow man.

