Hi Duaine,
Thanks, things are clearer now. I guess my assumption was that the
ReceiveReady-IsReady-Send had to be part of the same atomic operation, where
in effect, the IsReady transaction could just act as a trigger to a Send
transaction. This also clears up a confusion I also had in the ServiceLoop
pseudo code, where at the top all pending input messages are sent to the
hardware side,
Donald
Donald Cramb
Director System Integration Services
Tharas Systems
(408) 855-3220 (Office)
(650) 996-5971 (Cell)
donald@tharas.com
_____
From: owner-itc@eda.org [mailto:owner-itc@eda.org] On Behalf Of Pryor,
Duaine
Sent: Tuesday, February 08, 2005 2:33 PM
To: brian_bailey@acm.org; itc@eda.org
Subject: RE: Question regarding SCE-MI
Donald,
I will try to answer your question without getting into implementation.
Our current agreement in the group is to talk about the specification, and
what behavior it allows and requires, but to talk as little as possible
about implementation.
* First from some point in the application a new transaction is
created and populated using SceMiMessageDataNew and SceMiMessageDataSet
* We then call SceMiMessageInPortProxySend
o Our assumption here is that rather than physically sending the
transaction, the transaction is added to a queue and flagged for
transmission
DWP=> This is correct. This type of implementation is allowed by the
standard. Completing the send at the time of the call to send is also
allowed by the standard.
o One question is the application supposed to call this directly or
from an IsReady callback?
DWP=> I do not believe that the standard restricts the points in code from
which Send may be called. Application code may call send from any point.
* In parallel ServiceLoop is running
o ServiceLoop monitors the state of ReceiveReady on the hardware
side.
o If ReceiveReady is high the respective IsReady callback is called
which in turn physically delivers the transaction. One problem here is that
this would mean the physical transmission would be from user code.
DWP=> I believe that your current understanding in this last sub-bullet is
not completely correct. In the case that you indicate, the IsReady
callback is called, but no message is delivered. IsReady callback is
essentially a transaction without a message which is generated by the
condition that the transaction is able to receive data. So, IsReady is a
null transaction from the HDL domain to the C domain. The Send that you are
indicating is a transaction, with payload, from the C domain to the HDL
domain. The standard allows for the deliveries to be coupled or decoupled,
so long as the ordering of messages from HDL to C is maintained. It is
suggested, but not currently required by the specification that the ordering
of messages from C to HDL is maintained or at least specified and
repeatable.
Hope this clears things up.
Duaine
-----Original Message-----
From: owner-itc@eda.org [mailto:owner-itc@eda.org] On Behalf Of Brian Bailey
Sent: Tuesday, February 08, 2005 2:19 PM
To: itc@eda.org
Subject: Question regarding SCE-MI
Question forwarded from Donald Cramb at Tharas:
We are trying to figure out exactly how a transaction is created and
serviced from the software side. Maybe if I can explain our understanding
you could comment:
* First from some point in the application a new transaction is
created and populated using SceMiMessageDataNew and SceMiMessageDataSet
* We then call SceMiMessageInPortProxySend
o Our assumption here is that rather than physically sending the
transaction, the transaction is added to a queue and flagged for
transmission
o One question is the application supposed to call this directly or
from an IsReady callback?
* In parallel ServiceLoop is running
o ServiceLoop monitors the state of ReceiveReady on the hardware
side.
o If ReceiveReady is high the respective IsReady callback is called
which in turn physically delivers the transaction. One problem here is that
this would mean the physical transmission would be from user code.
I am pretty sure there are holes in our understanding here, so if you could
help fill them, that would be great,
Donald
Donald Cramb
Director System Integration Services
Tharas Systems
(408) 855-3220 (Office)
(650) 996-5971 (Cell)
donald@tharas.com
Received on Tue Feb 8 16:21:36 2005
This archive was generated by hypermail 2.1.8 : Tue Feb 08 2005 - 16:21:39 PST