On Mon, 18 May 2015, Brad Beckmann wrote:



On May 18, 2015, 10:06 p.m., Nilay Vaish wrote:
I have asked this question before when Steve posted this patch several months 
ago.
I am going to ask it again?  Is it all right to buffer requests in the 
Sequencer?
Do we know of CPU designs that do so?  What problems do we face when we push 
through
requests for same address to the cache controllers?

Yes, it is ok to buffer requests in the Sequencer. We are pretty satisfied with the correlation results against our hardware using Ruby. The Sequencer is a simplification of much more complicated buffering in real hardware. That simplification is a very good thing.

I need some reference on this. I talked to Prof. Wood about it and he said that he is not aware of any CPUs that do this.

I believe it is pretty universal across most designs that they don't allow a single CPU to issue multiple requests for the same cache line that go out throughout the memory system. That has huge power and complexity implications.

Note that the L0/L1 controller would serve those requests from the same cache block. So requests would not be sent out beyond the L0/L1 controller. And as much as I understand the protocols currently in gem5, if we completely remove the aliasing support from sequencer, the L0/L1 controllers would either merge or block aliased requests.

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

Reply via email to