[Gems-users] Regarding dump-cache


Date: Thu, 17 Dec 2009 10:40:52 -0600
From: sparsh mittal ISU <sparsh@xxxxxxxxxxx>
Subject: [Gems-users] Regarding dump-cache

Hello

Thanks for the reply Javier. Here is the mail of Polina, in relation to which I wanted to modify load-caches ans save-caches:

Instead of replaying the coherence requests to warm up the cache, what you could do is dump the contents of the cache into a file when you feel that it is sufficiently warm. So, the next time instead of warming it up by replaying the coherence requests, you can just load the cache with these values. 

Note however, that the configuration must match, so if your dumped cache contents are for 4K 8 way associative cache, don't try to warm up an 8K 16 way associative cache with it.

Actually, my interest is not in keeping data in cache etc, but what ever information is stored and passed through save-caches and load-caches, I want to do that without replaying the contents (since it is unnecessary and time consuming). So, can you direct me to do that properly? I would be thankful to you.
Sparsh


On Wed, Dec 16, 2009 at 1:52 AM, Javier Merino <jmerino@xxxxxxxxxxxxx> wrote:
Ruby's caches don't contain data if DATA_BLOCK is false. Try executing
"ruby0.setparam DATA_BLOCK true" before "ruby0.init" (or recompile with
DATA_BLOCK: true in ruby/config/rubyconfig.defaults ).

Hope this helps,

sparsh mittal ISU wrote:
> Hello All,
>
> While using ruby, when I issue ruby0.dump-cache,
>
> I get
> .....
>   Index: 12877 way: 2 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
>   Index: 12877 way: 3 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
>   Index: 12878 way: 0 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
>   Index: 12878 way: 1 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
>   Index: 12878 way: 2 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
>   Index: 12878 way: 3 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
>   Index: 12879 way: 0 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
>   Index: 12879 way: 1 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
>   Index: 12879 way: 2 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
>   Index: 12879 way: 3 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
>   Index: 12880 way: 0 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
>   Index: 12880 way: 1 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
>   Index: 12880 way: 2 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
>   Index: 12880 way: 3 entry: [L1Cache_Entry: CacheState=I DataBlk= ] ]
> ..........................
>
> On seeing the DataBlock.C file in ruby/common, the print function is the
> following:
> void DataBlock::print(ostream& out) const
> {
>   int size = m_data.size();
>   out<<size<<" "; //Added by me
>   for (int i = 0; i < size; i+=4) {
>   out<<"REACHED\t"; //Added by me
>     out << hex << *((uint32*)(&(m_data[i]))) << " ";
>   }
>   out << dec << "]" << flush;
> }
>
> After these additions, when I run, I find that it is because the size is
> zero, so it never enters the for loop.
> These means the Vector
> Vector<uint8> m_data;
> always has size =0.
>
> Then how can we get or print the value of cache-data (or at least
> addresses stored in cache; so that one knows about the contents of the
> cache).
> I would be thankful for the help.
> --
> Thanks and Regards
> Sparsh Mittal
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Gems-users mailing list
> Gems-users@xxxxxxxxxxx
> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.
>




--
Thanks and Regards
Sparsh Mittal
Graduate Student
Electrical and Computer Engineering
Iowa State University, Iowa, USA



--
Thanks and Regards
Sparsh Mittal
Graduate Student
Electrical and Computer Engineering
Iowa State University, Iowa, USA
[← Prev in Thread] Current Thread [Next in Thread→]