[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/feed.php on line 173: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/feed.php on line 174: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
Parallella Community Supercomputing for Everyone 2013-07-31T18:53:10+00:00 https://parallella.org/forums/feed.php?f=23&t=470 2013-07-31T18:53:10+00:00 2013-07-31T18:53:10+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2976#p2976 <![CDATA[Re: DMA interrupts]]> Statistics: Posted by ysapir — Wed Jul 31, 2013 6:53 pm


]]>
2013-07-31T18:33:08+00:00 2013-07-31T18:33:08+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2975#p2975 <![CDATA[Re: DMA interrupts]]> Statistics: Posted by timpart — Wed Jul 31, 2013 6:33 pm


]]>
2013-07-31T17:56:14+00:00 2013-07-31T17:56:14+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2974#p2974 <![CDATA[Re: DMA interrupts]]> Statistics: Posted by mhonman — Wed Jul 31, 2013 5:56 pm


]]>
2013-07-31T16:28:41+00:00 2013-07-31T16:28:41+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2968#p2968 <![CDATA[Re: DMA interrupts]]>
1. Normal SOURCE-DESTINATION DMA copy, where the DMA engine at the TRANSMITTER is active, and,

2. DMA-SLAVE mode, in which the DMA engine on the RECEIVER core is active (the source itself can be, but does not have to be a DMA process. Can be simple memcpy() as well).

In the former case, multiple source cores can DMA data on the destination core. They can write on different destination addresses, or on the same target buffer - where the ultimate data written on a memory location is the last to arrive. If so programmed, then when each of the source DMAs finish, it will generate the MSGMODE interrupt on the destination core. It is your responsibility to orchestrate this mess.

In the latter case, all sources write their data to a single destination address - the destination core's AUTO0DMA register. In this case, every incoming transaction advances the destination pointer to the next location in the memory, according to the DMASTRIDE parameter. Thus, in this case, the order of the incoming transaction is unpredicted and so will be the final buffer - interleaved in an unpredictable manner.

Statistics: Posted by ysapir — Wed Jul 31, 2013 4:28 pm


]]>
2013-07-31T16:07:18+00:00 2013-07-31T16:07:18+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2966#p2966 <![CDATA[Re: DMA interrupts]]>
What *does* happen when there are several other cores attempting to act as DMA masters of the same slave? (someone else posted that the data sent by them would be interleaved in an unpredictable manner...)

Thanks
Mark

Statistics: Posted by mhonman — Wed Jul 31, 2013 4:07 pm


]]>
2013-07-31T15:13:21+00:00 2013-07-31T15:13:21+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2962#p2962 <![CDATA[Re: DMA interrupts]]> Statistics: Posted by ysapir — Wed Jul 31, 2013 3:13 pm


]]>
2013-07-31T14:31:03+00:00 2013-07-31T14:31:03+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2961#p2961 <![CDATA[Re: DMA interrupts]]> Statistics: Posted by mhonman — Wed Jul 31, 2013 2:31 pm


]]>
2013-07-31T06:57:15+00:00 2013-07-31T06:57:15+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2949#p2949 <![CDATA[Re: DMA interrupts]]> Statistics: Posted by timpart — Wed Jul 31, 2013 6:57 am


]]>
2013-07-31T06:47:49+00:00 2013-07-31T06:47:49+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2948#p2948 <![CDATA[Re: DMA interrupts]]> Statistics: Posted by hewsmike — Wed Jul 31, 2013 6:47 am


]]>
2013-07-31T06:23:39+00:00 2013-07-31T06:23:39+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2947#p2947 <![CDATA[Re: DMA interrupts]]> Statistics: Posted by ysapir — Wed Jul 31, 2013 6:23 am


]]>
2013-07-31T05:57:34+00:00 2013-07-31T05:57:34+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2945#p2945 <![CDATA[Re: DMA interrupts]]> Statistics: Posted by ysapir — Wed Jul 31, 2013 5:57 am


]]>
2013-07-31T01:27:38+00:00 2013-07-31T01:27:38+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2939#p2939 <![CDATA[Re: DMA interrupts]]> Statistics: Posted by hewsmike — Wed Jul 31, 2013 1:27 am


]]>
2013-07-31T00:50:03+00:00 2013-07-31T00:50:03+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2936#p2936 <![CDATA[Re: DMA interrupts]]> Statistics: Posted by hewsmike — Wed Jul 31, 2013 12:50 am


]]>
2013-07-31T00:39:08+00:00 2013-07-31T00:39:08+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2934#p2934 <![CDATA[Re: DMA interrupts]]> Statistics: Posted by ysapir — Wed Jul 31, 2013 12:39 am


]]>
2013-07-30T22:58:30+00:00 2013-07-30T22:58:30+00:00 https://parallella.org/forums/viewtopic.php?t=470&p=2930#p2930 <![CDATA[Re: DMA interrupts]]> may have a 'simple' solution to notifying the target core of DMA write completion - assuming that's what's wanted. :D

Have the destination buffer structured with a flag positioned at the very end. As DMA transfers are sequential across blocks of transferred data then this flag will be the last location to be written to. Assuming ( potential ) source cores are aware of this structure then :

(A) The target core sets the flag state to 'ready for data', as and when it pleases.

(B) Source cores can initiate DMA writes of data to the buffer by first checking the flag's value for 'ready for data' state.

(C) The flag is then set by the source core to a 'data being transferred' state.

(D) Must use TESTSET to achieve B and C here, atomically accessing and maybe changing in case there is a race with another source core also wanting to write to the destination buffer. This implies the 'ready for data' state of the flag must be of value binary zero.

(E) You need a 'data being transferred' state on your flag as (a) the target core ought know it's request is being fulfilled, but that the contents aren't yet valid, and (b) any other potential source cores must be excluded from writes to the buffer, else you may get overwrites during transfer ( one source core chasing the tail of another through the buffer, mutual overwrites etc depending on core locations and eMesh state and timings .. UGH ).

(F) The final address in the source buffer contains the flag value 'transfer complete', this is hence written to the flag's location in the destination buffer as the final act in the DMA transfer. Which is the desired behaviour ! :lol:

(G) The target core checks the flag for 'transfer complete' state - busy waiting, non-blocking, whatever you like - before using the data in the buffer.

Rinse, lather, repeat .....

Cheers, Mike.

( edit ) You want DMA writes at source, with the status of that sampled locally on the target, as this fully leverages the asymmetry of the eMesh .....

Statistics: Posted by hewsmike — Tue Jul 30, 2013 10:58 pm


]]>