Hi Steve (and everyone else),

Thanks for your e-mail. I've been travelling and I am still catching up on 
e-mails...and patch rebasing :)

I would really like to see this moving forward as we have all the 4-phase 
patches stacking up behind it. When it comes to smaller changes vs bigger 
changes we are looking at some 10-15 patches for the introduction of the 
4-phase handshakes. Essentially we start from the peripherals and work our way 
up, then from the CPU and work our way down, all until it hits the bus in the 
middle. For this to work we need both the classic and 4-phase to be present. I 
think it would be very desirable to at least keep it during this phase, and if 
there is no need afterwards I can make things simpler again.

For the uses beyond the classic memory system, it would be great to hear what 
the Ruby-experts out there have to say. I would think that Ruby internally 
would use something different than the 4-phase, and that we stick to that 
around the edges. Any input on this one?

The next two weeks I'll be in the US so from a time-zone point of view a skype 
call or similar would be easier.

Have a nice weekend everyone.

Andreas

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of 
Steve Reinhardt
Sent: 13 August 2012 21:05
To: gem5 Developer List
Subject: Re: [gem5-dev] ports, interfaces, and protocols

Hi Andreas,

Sorry for the slow responses.

I think we're in agreement on the desirable end-point, in terms of
everything in the classic memory system at least using 4-phase handshakes,
and Ruby using gem5 ports.  I'm just not 100% sold yet on the mechanism to
get there.  If Ruby ports need something different from the 4-phase
handshake, then that's a good argument for your interface/protocol
separation, but I'd like some of the more Ruby-oriented people like Brad to
weigh in on that.

As far as the gradual introduction of the 4-phase interfaces, we should
talk about that with Brad some more too.  He was responsible for keeping
our internal code base synced with the public repository, and I believe he
might think that one big change is easier to handle than a bunch of little
ones.

Don't misunderstand, I'm not opposed to the idea; it's just a big change
that in some ways is a significant increase in complexity, so I'd like to
get some broader input agreeing that this additional complexity is needed
before we pull the trigger.  Maybe Nate is right, a discussion over skype
or google hangout or something might be justified to get us all on the same
page.  The next few days are busy for me, but I should have some time Thu
or Fri if this sounds good to everyone.

Steve

On Thu, Aug 9, 2012 at 2:44 PM, Andreas Hansson <[email protected]>wrote:

> Hi Steve,
>
> Thanks for taking time to go through the patch.
>
> On your question on the need for diversity, I think there is a good reason
> to enable e.g. Ruby to use gem5 ports, but with a different interface.
> Similarly, for any other alternative interconnects it provides a
> possibility to use the existing infrastructure for assembling the system.
>
> When it comes to the "classic" vs 4-phase, we will indeed phase it in
> gradually. The way we do this is with adapter blocks that have one port of
> each kind. These adapters will eventually be completely removed again, and
> the "classic" old-style handshakes removed. There is still a possibility
> to e.g. Have cache-coherent and non-cache-coherent ports with the same
> protocol in the bottom, just a few more interface methods or not. This
> becomes trivial with the interface/protocol separation (sorry about the
> confusion with the naming btw).
>
> From my point of view, this is really a necessary change to get the
> 4-phase handshakes in place. Once we are in the next stable state, we can
> potentially simplify bits and pieces, especially if there is push-back
> from the Ruby part of the world when it comes to using it. I think that
> there are compelling reasons to share as much as possible and align e.g.
> Ruby and classic memory controllers/buses etc.
>
> Thanks again for all the feedback.
>
> Andreas
>
> On 08/08/2012 20:17, "Steve Reinhardt" <[email protected]> wrote:
>
> >I finally got around to looking at Andreas's big patch (
> >http://reviews.gem5.org/r/1301/) yesterday, and perhaps more importantly,
> >spent some time reading up on SystemC TLM 2.0 and what the port/interface
> >separation is used for there.  One big disconnect I found is that my
> >interpretation of "protocol" wasn't the same as what SystemC or Andreas
> >meant.
> >
> >I was thinking of "protocol" at a higher level, as in what are the set of
> >commands/requests that are supported, what are the available
> >flags/attributes on a request, etc., all the way up to protocol in the
> >Ruby
> >sense.  However, it looks like much of the purpose of the port/interface
> >separation is to abstract away the very low-level protocol that two
> >connected modules use to exchange a packet, e.g., what does the handshake
> >look like, how is flow control handled, etc.  Loosely speaking, it's like
> >the difference between the transaction layer protocol and the link layer
> >protocol.
> >
> >I'm curious how much diversity and flexibility we really need at that
> >lowest layer.  The current send/retry scheme has some issues, which
> >Andreas
> >is proposing to fix with the four-phase handshake; I'm a little sad to see
> >that get introduced since it doubles the number of events required on each
> >transaction, but if that's what it takes to solve our current problems,
> >I'm
> >fine with it.  However, if we do adopt a four-phase handshake, I'd like to
> >just switch over to it rather than introduce it as another option.  It
> >seems awkward to support two handshake protocols in most if not all
> >objects.
> >
> >I know you've put a lot into this, Andreas, so I don't want to be an
> >obstacle, but at the same time I'd like to work out our long-term strategy
> >a little before we let such a sweeping change go in.  You say this
> >"enables
> >us to gradually introduce the 4-phase ports as an alternative interface";
> >do you envision us switching over completely to 4-phase?  If not, how do
> >we
> >manage having two different interface protocols?
> >
> >I'm also interested in what Nate thinks, since he's the one who designed
> >the current Port interface originally.
> >
> >Steve
> >_______________________________________________
> >gem5-dev mailing list
> >[email protected]
> >http://m5sim.org/mailman/listinfo/gem5-dev
> >
>
>
> -- IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium.  Thank you.
>
> _______________________________________________
> gem5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/gem5-dev
>
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev


-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium.  Thank you.

_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to