Thanks for Brad's answer.But the problem still exist. The entry got from the
directory memory is as follows:
// in MESI_CMP_directory-dir.sm Entry getDirectoryEntry(Address addr),
return_by_ref="yes"
{ return static_cast(Entry, directory[addr]); }
// DirectoryEntry structure(Entry, desc="...", interface="AbstractEntry")
{ State DirectoryState, desc="Directory state";
DataBlock DataBlk, desc="data for the block";
NetDest Sharers, desc="Sharers for this block";
NetDest Owner, desc="Owner of this block";
}
My question is:
if a directory entry is organized as follows, how to configure in GEM5?
-------|-----------|------------|-----------|------------|------------|
Dirty Overflow Pointer Pointer Pointer Pointer
"Dirty" indicates if the block is dirty: 1 bit
"Overflow" indicates if the 4 pointers are used out: 1 bit
"Pointer" indicates the cache sharer ID:log N bits
lyh
-------- Forwarding messages --------
From: "Beckmann, Brad" <[email protected]>
Date: 2011-07-12 23:56:29
To: "gem5 Developer List" <[email protected]>
Subject: Re: [gem5-dev] directory structures
I'm a little confused by the question. From my recollection, the MESI
directory protocol implements a full bit map vector. It is simply one
implementation of a directory protocol. As you point out, there are other ways
to implement a directory as well. For instance with the probe filter feature,
the MOESI_hammer protocol implements a type of limited pointer directory. If a
current protocol does not implement the directory scheme you're interested in,
it should not be too hard to create your own. That is exactly the strength of
SLICC/Ruby.
Brad
> -----Original Message-----
> From: [email protected] [mailto:gem5-dev-
> [email protected]] On Behalf Of lyh
> Sent: Monday, July 11, 2011 6:48 PM
> To: gem5-dev
> Subject: [gem5-dev] directory structures
>
> Hi All,
> While implementing the cache coherence protocol for a cc-NUMA
> system,the directory structure(e.g.directory entry) can be oganizated in
> many ways, for example, full_map bit vector, limited pointers, or multilevel
> directory the first level of which is a directory cache.
> Theoretically, different directory structures have different impacts on system
> performance. How does GEM5 implement directory structures?
> e.g.
> In file MESI_CMP_directory-dir.sm, the DirectoryEntry is a so-called
> AbstractEntry, how can this implementation simulate the true situation?
> // DirectoryEntry
> structure(Entry, desc="...", interface="AbstractEntry") {
> State DirectoryState, desc="Directory state";
> DataBlock DataBlk, desc="data for the block";
> NetDest Sharers, desc="Sharers for this block";
> NetDest Owner, desc="Owner of this block";
> }
>
> Sincerely
> Lyh
>
>
>
> _______________________________________________
> 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
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev