Also, if I decide to add L2 to each core (we can assume that its
private), can I just connect it between L1 and the interconnect? I was
not able to do it. Functions that connect CPU to L1 caches and L1
caches to the network are not port-port and it seems like they would
not accept another level of cache there. Do I have to change the
interface in CPU object?
I am trying to understand how cache coherence object works in MV5. If
I have a system with coherent L1 and L2, when and where (what other
object) is the coherence object called from?
What objects are
contacted as it checks other L1s. Is it directory?
What file is it
located in? I know that caches in MV5 are based on BaseCache object.
However there is no reference to coherence object there, neither is
anywhere in interconnect objects.
Also, if I decide to add L2 to each core (we can assume that its
private), can I just connect it between L1 and the interconnect?
I was
not able to do it. Functions that connect CPU to L1 caches and L1
caches to the network are not port-port and it seems like they would
not accept another level of cache there. Do I have to change the
interface in CPU object?
I saw that in your 3-level cache configuration file, you defined new
objects (L2wk, L2ctrl) and you have them working as parts of System
object (System.L2wk, System.L2ctrl). I know how you defined these
objects, but how did you modify System object to work with them (if
you even modified it)? I believe that I need to create new object for
distributed cache slice, say L2slice. How do I modify System object,
so it takes L2slices as a new component?
On Mar 31, 2:58 am, Jiayuan Meng <jerryh...@gmail.com> wrote:
> On Tue, Mar 30, 2010 at 8:48 PM, Lukasz G. Szafaryn <
>
On Mar 31, 2:58 am, Jiayuan Meng <jerryh...@gmail.com> wrote:
> On Tue, Mar 30, 2010 at 8:48 PM, Lukasz G. Szafaryn <
>
On Mar 31, 2:58 am, Jiayuan Meng <jerryh...@gmail.com> wrote:
> On Tue, Mar 30, 2010 at 8:48 PM, Lukasz G. Szafaryn <
>
Where (in configuration file?) do you specify what BlkState and
DirState are for different levels of caches?
I saw that in your 3-level cache configuration file, you defined new
objects (L2wk, L2ctrl) and you have them working as parts of System
object (System.L2wk, System.L2ctrl). I know how you defined these
objects, but how did you modify System object to work with them (if
you even modified it)? I believe that I need to create new object for
distributed cache slice, say L2slice. How do I modify System object,
so it takes L2slices as a new component?
--
To unsubscribe, reply using "remove me" as the subject.
Is MV5 using the updated MOESI protocol that was added in version
2.0b4 of M5? What coherence features did you add in MV5 beyond that
(directory coherence?)?
I think I connected L2 slices properly. In each core I have
connections such as: CPU-L1-bus-L2slice. Each such core connects to a
crossbar or mesh. Would you confirm that in this setup I have
coherence between L1-L2slice at each core and L2slice(s) from
different cores? Does your directory coherence work with this setup
the way I connected it?
If the above works, I just need to implement data interleaving
properly. Where (in what files) would I specify data interleaving? I
may not be aware what all is involved in implementing distributed L2,
is there something else? I thought there must be, since you were not
able to implement fully distributed cache in limited time. What was
the reason?
Are the directories in your implementation distributed or centralized?
Where are they located conceptually (in each I L1 and D L1, somewhere
else for each core or in some central place for all cores) and
physically (what files correspond to these)?
Jiayuan,
I am trying to implement directory-based coherent distributed L2 cache. In that model, each distributed L2 cache slice keeps its own directory (subscription list of which L1 that hold its data), so that it can invalidate them later. So far, I constructed mechanism that forwards request to appropriate distributed cache slice. It currently resides in the bus, because that is where all other redirecting takes place. Now, I wanted to leverage some of your code to build the directory in each distributed L2 slice.
I have questions about your model:
1) what logical module was the directory located in? was it L2 cache?
2) where in code, (what file and function) is the directory included?
Thanks in advance,
Lukasz
Hey Jiayuan,
As you know, I have been working with M5 due to compatibility issues. I will try to move entire directory-based cache from MV5 to M5. Have you tried to do that? What issues would you anticipate?
First, I tried to run directory-based cache in MV5 to see how it works. There is a class BaseDirCohCache, but I do not see you using it in any of the python configuration files. How do you use it?
Lukasz
From: mv5...@googlegroups.com [mailto:mv5...@googlegroups.com] On Behalf Of Jiayuan Meng
Sent: Wednesday, 20 April, 2011 20:57
To: mv5...@googlegroups.com
Subject: Re: Caches
Hi Lukasz,
Hey Jiayuan,
Since I can’t get your directory-based cache working with current M5, I am considering using MV5 and porting my distributed cache to it. Generally, and in terms of cache, what does MV5 not have compared to M5? I am trying to get a picture of the tradeoffs before I switch.