Hi Lisa,

I actually managed to get a new Cache derived from the BaseCache, I am
not sure of the specifics at the moment, as I am looking to make a
directory cache (directory protocol extension) for M5, so yes, I will
need at some point to utilize some sort of tag-store policy, I just
don't think quite exactly the same way the current Tag-Store policy is
implemented in M5.

Malek

On Fri, Jun 11, 2010 at 6:07 PM, Lisa Hsu <[email protected]> wrote:
> Hi Malek,
> Building from builder.cc implies deriving from Cache, which derives from
> BaseCache.  The TagStores are implicit to Cache<TagStore> but are not a part
> of BaseCache.  Do you not want a tag-store policy associated with your
> cache?
> Lisa
>
>
> On Thu, Jun 10, 2010 at 1:22 PM, Malek Musleh <[email protected]>
> wrote:
>>
>> Hello,
>>
>> I am trying to create a new cache SimObject (Snoopcache let's say)
>> that is derived from the BaseCache. I have looked at the ASPLOS
>> tutorial for creating new Simobjects, as well as this previous thread:
>>
>> http://www.mail-archive.com/[email protected]/msg01791.html for help.
>>
>>
>> At the moment, I have not really added any new functionality, as I am
>> just trying to get the SimObject created at the moment.
>>
>> I made the corresponding snoopcache.hh, snoopcache.cc, and
>> SnoopCache.py. The snoopcache.cc file is blank (aside from the create
>> function in which i discuss below), and the snoopcache.hh just defines
>> the class:
>>
>> class SnoopCache : public BaseCache.
>>
>>
>> In the builder.cc file, I have replicated the BUILD_CACHE defines in
>> order to build the SnoopCache similarly to the way that the BaseCache
>> is created, but when I try compiling it, I get the following error:
>>
>>
>> scons: Building targets ...
>> g++ -o build/ALPHA_SE/mem/cache/builder.o -c -Wno-deprecated -pipe
>> -fno-strict-aliasing -Wall -Wno-sign-compare -Wundef -g -O3 -Werror
>> -DTRACING_ON=1 -Ibuild/gzstream -Ibuild/libelf -Iext
>> -I/usr/include/python2.5 -Ibuild/ALPHA_SE
>> build/ALPHA_SE/mem/cache/builder.cc
>> build/ALPHA_SE/mem/cache/builder.cc: In member function 'SnoopCache*
>> SnoopCacheParams::create()':
>> build/ALPHA_SE/mem/cache/builder.cc:252: error: cannot convert
>> 'Cache<FALRU>*' to 'SnoopCache*' in return
>> build/ALPHA_SE/mem/cache/builder.cc:252: error: cannot convert
>> 'Cache<LRU>*' to 'SnoopCache*' in return
>> build/ALPHA_SE/mem/cache/builder.cc:252: error: cannot convert
>> 'Cache<IIC>*' to 'SnoopCache*' in return
>>
>> If I try using the create function thats given in the ASPLOS tutorial
>> and put it in the snoopcache.cc file:
>>
>> SnoopCache
>> *SnoopCacheParams::create()
>> {
>>    return new SnoopCache(this);
>> }
>>
>> I get the following error:
>>
>>
>> cons: Building targets ...
>> g++ -o build/ALPHA_SE/mem/cache/builder.o -c -Wno-deprecated -pipe
>> -fno-strict-aliasing -Wall -Wno-sign-compare -Wundef -g -O3 -Werror
>> -DTRACING_ON=1 -Ibuild/gzstream -Ibuild/libelf -Iext
>> -I/usr/include/python2.5 -Ibuild/ALPHA_SE
>> build/ALPHA_SE/mem/cache/builder.cc
>> g++ -o build/ALPHA_SE/mem/cache/snoopcache.o -c -Wno-deprecated -pipe
>> -fno-strict-aliasing -Wall -Wno-sign-compare -Wundef -g -O3 -Werror
>> -DTRACING_ON=1 -Ibuild/gzstream -Ibuild/libelf -Iext
>> -I/usr/include/python2.5 -Ibuild/ALPHA_SE
>> build/ALPHA_SE/mem/cache/snoopcache.cc
>> build/ALPHA_SE/mem/cache/snoopcache.cc: In member function
>> 'SnoopCache* SnoopCacheParams::create()':
>> build/ALPHA_SE/mem/cache/snoopcache.cc:36: error: cannot allocate an
>> object of abstract type 'SnoopCache'
>> build/ALPHA_SE/mem/cache/snoopcache.hh:31: note:   because the
>> following virtual functions are pure within 'SnoopCache':
>> build/ALPHA_SE/mem/mem_object.hh:58: note:      virtual Port*
>> MemObject::getPort(const std::string&, int)
>> build/ALPHA_SE/mem/cache/base.hh:492: note:     virtual bool
>> BaseCache::inCache(Addr)
>> build/ALPHA_SE/mem/cache/base.hh:494: note:     virtual bool
>> BaseCache::inMissQueue(Addr)
>>
>>
>> It seems that the creating of new SimObjects derived from the
>> BaseCache would be a little more tricky to do because of the TagStore,
>> and Prefetching classes, but it seems that it should still be
>> possible.
>>
>> Does anybody have any suggestions or examples of deriving a new cache
>> module from the BaseCache? I have attached the four files if need be.
>>
>> Thanks.
>>
>> Malek
>>
>> _______________________________________________
>> m5-users mailing list
>> [email protected]
>> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>
>
> _______________________________________________
> m5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to