Re: [Gems-users] Cache design in GEMS


Date: Mon, 4 Sep 2006 14:16:39 -0500
From: "Lei Yang" <lya755@xxxxxxxxxxxxxxxxxxxx>
Subject: Re: [Gems-users] Cache design in GEMS
Hi Nauman,

This helps a lot! I guess I should be looking at the protocols and slicc directory. Actually in "protocols", I saw a "doc" dir, in which there are two identical files with different names: MSI_dir_L1_MOSI_dir_L2_SNUCA_CMP-protocol-description.txt and MSI_MOSI_CMP_directory_2level-protocol-description.txt . Should they have the name content or are they still under construction? I guess what I want to verify is whether the documentation provides accurate description of the protocols or not.

Thanks,
Lei
----- Original Message ----- From: "Nauman Rafique" <nrafique@xxxxxxxxxx> To: "Lei Yang" <lya755@xxxxxxxxxxxxxxxxxxxx>; "Gems Users" <gems-users@xxxxxxxxxxx>
Sent: Monday, September 04, 2006 2:05 PM
Subject: Re: [Gems-users] Cache design in GEMS


Opal mainly models the processor functionality. In addition to that, it also has a simplistic cache model, and thats why you find some cache related files there.

Ruby is the more extensive model of the caches and the interconnects. If you intend to modify cache design and analyze tradeoffs, you should not use the cache model of opal. Opal should be simulating processor functionality and ruby
should be simulating caches. So you should be looking at CacheMemory.h in
ruby/system.

The behavior of caches in ruby is mostly programmed in slicc and the files are located in gems/protocols directory. So write-back/write-through policy would be controlled from over there. Moreover, for inserting victim cache, you will have to modify the slicc code (I think you dont really need any modifications in
CacheMemory.h).

So to start with, decide a coherence protocol you want to use (e.g MSI or MOESI)
and start digging into the corresponding slicc files.

I hope it helps.

--
Nauman Rafique
Purdue University

Quoting Lei Yang <lya755@xxxxxxxxxxxxxxxxxxxx>:

Dear list,

I just recently start using GEMS for my research project on new CMP cache
hierarchy designs. In my simulation I'll be using both ruby and opal. I was
trying to modify code that is related to the cache design, for example,
insert a victim cache between L1 and L2. However I found in ruby/system a
CacheMemory.h, also in opal/system cache.C and cache.h files. I am wondering
which one(s) should I be looking at? Also, where in the code is the
write-back/write-through policy specified for L1 and L2?

Your comments are greatly appreciated. Thanks a lot!!

Lei




[← Prev in Thread] Current Thread [Next in Thread→]