Hi Reza,

Memory controllers (including NVMain) are behind a slave port and are generally 
not aware of what the cache is doing – In other words, you want to look in the 
gem5 source if you want to do something special for LLC misses. This will be 
different for Ruby and classic caches:

If you are using ruby, you want to look in the SLICC files at your protocol for 
where queueMemoryRead and queueMemoryWrite are called from the LLC/directory 
and see which transitions use them. For example, in MESI_Three_Level this is in 
MESI_Two_Level-dir.sm under the I->IM transition. The sending and receiving of 
memory requests is handled in AbstractController.cc.

I’m not an expert on classic caches, but I believe you could start with the 
call to memSidePort->sendTimingReq and follow the control flow through cache.cc 
to find out where requests are sent and responses are received.


-Matt

From: gem5-users [mailto:gem5-users-boun...@gem5.org] On Behalf Of Mohammad 
Reza Jokar
Sent: Wednesday, February 08, 2017 7:13 AM
To: gem5 users mailing list <gem5-users@gem5.org>
Subject: Re: [gem5-users] Requests to Main Memory

Hi Jason,

Thank you for your response and reference to your book. I will read that.
I'm using NVmain as memory type. In this case, should I look into gem5 source 
files or NVmain source files? I'm looking for a file/function that checks if 
the access to last level cache is a miss, then sends the request to main memory.


Thank you.
Reza

On Wed, Feb 8, 2017 at 9:04 AM, Jason Lowe-Power 
<ja...@lowepower.com<mailto:ja...@lowepower.com>> wrote:
Hi Reza,

This is handled by the port interface between the cache and the main memory. 
For instance, at the DRAM controller, every request calls recvTimingReq(). You 
may learn something from this chapter of my book: 
http://learning.gem5.org/book/part2/memoryobject.html. The caches and the 
memory controllers are just MemObj's.

Cheers,
Jason

On Wed, Feb 8, 2017 at 8:57 AM Mohammad Reza Jokar 
<jokar....@gmail.com<mailto:jokar....@gmail.com>> wrote:
Dear all,

When we experience a cache miss at last level cache, we should send a request 
to main memory and ask for the missed block. I was wondering if you could help 
me find a file or function that does send requests to main memory (and receive 
responses from that.)


Thank you.
Reza
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org<mailto:gem5-users@gem5.org>
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

_______________________________________________
gem5-users mailing list
gem5-users@gem5.org<mailto:gem5-users@gem5.org>
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to