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:&nbsp;[gem5-dev]&nbsp;directory&nbsp;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

Reply via email to