Ah, sorry, I should have warned you about that before I mentioned the
classic memory system. The classic memory system, by default, will try to
use the fully-associative LRU tags (they're faster than the LRU tags when
the cache is fully-associative, but functionally they're the same).
However, the code for the FA LRU tags hasn't been maintained and there are
some bugs in it now. You need to force the system to use the regular LRU
tags. Here is a patch that modifies builder.cc to disable FALRU tags:

diff --git a/src/mem/cache/builder.cc b/src/mem/cache/builder.cc
--- a/src/mem/cache/builder.cc
+++ b/src/mem/cache/builder.cc
@@ -88,11 +88,7 @@
 {
     int numSets = size / (assoc * block_size);

-    if (numSets == 1) {
-        BUILD_FALRU_CACHE;
-    } else {
-        BUILD_LRU_CACHE;
-    }
+    BUILD_LRU_CACHE;

     return NULL;
 }

Anthony Gutierrez
http://web.eecs.umich.edu/~atgutier


On Tue, Mar 12, 2013 at 11:09 AM, Maxime Chéramy
<maxime.cher...@gmail.com>wrote:

> Well, when I try with the classic memory system, I don't have this assert
> but I have another issue:
>
> command line: build/X86/gem5.opt configs/example/se.py -n 1 --caches
> --l2cache --l1d_size=512B --l1d_assoc=8 --l1i_size=512B --l1i_assoc=8
> --l2_size=16kB --l2_assoc=4 --num-l2caches=1 -c /home/max/matriciel_x86
> Global frequency set at 1000000000000 ticks per second
> terminate called after throwing an instance of 'std::bad_alloc'
>   what():  std::bad_alloc
> Program aborted at cycle 0
>
>
>
>
> 2013/3/12 Anthony Gutierrez <atgut...@umich.edu>
>
>> It is possible with the classic memory system. I don't know much about
>> Ruby but, from that assert it appears as though it's not possible in Ruby.
>>
>> Anthony Gutierrez
>> http://web.eecs.umich.edu/~atgutier
>>
>>
>> On Tue, Mar 12, 2013 at 10:04 AM, Maxime Chéramy <
>> maxime.cher...@gmail.com> wrote:
>>
>>> Hello,
>>>
>>> When I attempt to set up fully associative caches for the L1 caches, I
>>> got this assertion error:
>>>
>>> *Assertion* `*m_cache_num_sets* > *1*' >>> *failed*
>>>
>>> Is it possible to configure gem5 as to run a system with a fully
>>> associative cache?
>>>
>>>
>>>
>>> My command line: build/X86/gem5.opt configs/example/se.py -n 2
>>> --cpu-type=detailed --ruby --caches --l2cache --l1d_size=512B --l1d_assoc=8
>>> --l1i_size=512B --l1i_assoc=8 --l2_size=16kB --l2_assoc=8 --num-l2caches=1
>>> -c /home/max/matriciel_x86;/home/max/matriciel_x86
>>>
>>>
>>> Best regards,
>>>
>>> Maxime.
>>>
>>> _______________________________________________
>>> gem5-users mailing list
>>> gem5-users@gem5.org
>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>
>>
>>
>> _______________________________________________
>> gem5-users mailing list
>> gem5-users@gem5.org
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>
>
> _______________________________________________
> gem5-users mailing list
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to