Re: [tlmwg] Revisit of the TLM2.0 phases rules

From: <john.aynsley@doulos.com>
Date: Thu Jan 06 2011 - 00:26:43 PST

Yossi,

I fully agree with Robert's answers throughout.

From the outset, I have been concerned about the way you seem to be
interpreting 16.2.6 b) and c). Note that these are not "rules" in the
sense that they do not impose any specific obligations. Each TLM-2.0
component is free to make its own modeling decisions and the BP rules
allow quite a bit of flexibility. A BP component can chose how it will use
flow control according to how it wishes to map an actual protocol (e.g.
AXI) onto the BP abstraction. For example, your bus or your target could
return END_REQ immediately and implement any delay internally rather than
bunching the entire 310 NS as BEGIN_REQ->END_REQ delay (in which case it
had better be able to buffer multiple transactions).

You have not written anything that suggest to me that the BP is "broken".
I think you believe the BP is not precisely equivalent to any specific
current standard protocol, and I guess we would all agree, but so what?
The BP is an abstraction, but it IS A PROTOCOL nonetheless, and so any
BP-compliant model has to be written in full knowledge of the protocol
rules.

Also, I am concerned by your statements concerning accuracy expectations
at AT. There are none! Each TLM-2.0 model is free to choose whether to add
a non-zero timing annotation to an outgoing transaction, and how to
interpret a non-zero timing annotation on an incoming transaction (LT
versus AT coding guidelines do not impose any obligations).

Cheers,

John A

-----<tlmwg@lists.systemc.org> wrote: -----
To: "Veller, Yossi" <Yossi_Veller@mentor.com>
From: Robert Guenzel
Sent by:
Date: 01/05/2011 02:16PM
Cc: tlmwg@lists.systemc.org, systemc-p1666-technical@eda.org
Subject: Re: [tlmwg] Revisit of the TLM2.0 phases rules

Hi Yossi,

what you describe in your example is a behavior
where the protocol has shared request and response channels
for reads and writes (because of the BP) but it allows
out-of-order responses (allowed within the BP but not a very common
bus feature).

The OCP can be configured like that and then it would behave exactly
as you described in your examples (both transactions ending around 640ns).

That means (IMHO) that the BP can be used to model a reasonable bus
protocol.
Now if you wanted to bring the BP closer to PLB, OPB, AHB, or APB
(which do not allow out-of-order responses) then
you would have to disallow out-of-order responses. Then your target
would not
be allowed to let the read response overtake the write response.
But that would mean in-order with respect to timing, not only execution
order.

And since we have temporal decoupling at AT, in-order with respect to
timing
would mean to have PEQs everywhere, and that would render the whole idea
of temporal decoupling meaningless (but I confess that I always wondered
if
temporal decoupling at AT is really useful...).
I believe that was one (the?) reason why we decided to allow
out-of-order responses.

So do you agree that the problem is basically just the fact that
responses can overtake
each other? If so, I'd say the BP is the appropriate vehicle to model
reasonable busses,
because nobody forces you to implement your target like you did. You can
easily implement
it such that it keeps the responses in order. Sending out-of-order
responses is an option
not an obligation (whereas tolerating out-of-order responses is
mandatory, but reordering
wouldn't be that hard either).

best regards
  Robert

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Thu, 6 Jan 2011 08:26:43 +0000

This archive was generated by hypermail 2.1.8 : Thu Jan 06 2011 - 00:27:39 PST