Hi guys, I see how functional accesses make sense when the system is starting or drained, or potentially for reads while it is running. To inject functional writes at runtime seems like asking for trouble though. As Steve pointed out, what is even the right thing to do for a real memory consistency model? The idea of having a sequentially consistent backing store may be convenient, but could also lead to having a false sense of what is actually seen by various masters in the system. It works for the mem tester as it does not have any actual sharing, only false sharing, but for an actual system it seems dodgy.
Andreas ________________________________________ From: gem5-dev [[email protected]] On Behalf Of Steve Reinhardt via gem5-dev [[email protected]] Sent: Sunday, October 26, 2014 2:06 PM To: Nilay Vaish Cc: gem5 Developer List Subject: Re: [gem5-dev] Review Request 2466: ruby: provide a second copy of the memory On Sun, Oct 26, 2014 at 6:35 AM, Nilay Vaish <[email protected]> wrote: > > >> Everything you mention is already in place. Great, glad to hear it. Sorry I don't keep up with the details of what's going on inside of Ruby, and it's been quite a while since I've had an in-depth discussion with Brad on this. > The problem is with reads since we can hit stale data before we hit the > actual data. Can you elaborate? I was a little loose in saying it's just addresses & data, of course you need to condition that on validity too. But other than avoiding explicitly invalidated blocks, what do you mean by "stale data"? > I doubt your claim that it would be easy to support functional accesses if > we re-design. In my opinion, every protocol necessarily needs to provide > some functionality that reasons about the states in different controllers > and decides which controller / buffer holds the current data. As Joel > mentions, it is hard to write a coherence protocol that is coherent about > the data. I hardly think people would be willing to write code that > reasons about multiple controller states together. > I think that for functional accesses the only state distinction that matters is valid vs. invalid. If there are specific cases where this is insufficient, I'd like to hear more details. As I said, the interaction between functional accesses and consistency models is pretty murky, and it would be nice to deal with that issue (where it matters) outside of the functional accesses themselves. A specific example would be helpful, I think. Thanks, 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. ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2557590 ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2548782 _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
