RE: Question regarding SCE-MI

From: Pryor, Duaine <duaine_pryor@mentorg.com>
Date: Tue Feb 08 2005 - 14:33:25 PST

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 14:34:32 2005

This archive was generated by hypermail 2.1.8 : Tue Feb 08 2005 - 14:34:34 PST