Hi Shadi, More than one cache above the shared Piranha cache will not work with the current Cache component. I'm afraid the fix is non-trivial.
The problem is that EvictWritable messages can be ambiguous with more than one level of cache. At the shared cache, EvictWritable messages may indicate that the last writable copy of a block in the hierarchy has been evicted (here, the Piranha cache does the right thing). Unfortunately, there may also be a writable/dirty block in a higher level of cache, in which case the message should be ignored at the shared cache. Currently, there is no way to disambiguate these cases. Thanks, Jared Excerpts From "Shadi Harb" <[email protected]>: [Simflex] RE: SimFlex Digest, Vol 1: "Shadi Harb" <[email protected]> >Hi, > >Recently I hit with an error for my L3 cache simulation, I had no problem in >compiling and starting the simulation, but after sometime, Simics went to >safe mode and shows the following error > >> //////////////////// >> <PiranhaCacheControllerImpl.cpp:576> (<undefined>[<undefined>]) >> {559584}- As sertion failed: ((!(dirEntry->sharersCount() == 0))) >> : Failed: PDEntry: 0x9d7b c40 dir state: PiranhaDirState[D_M] >> #sharers: 1 sharersList: 8 Owner: -1 acount: 0 >> MemoryMessage[Eviction (dirty)]: Addr:0xp:009d7bc40 Size:64 Core: 11 >> (*** Simics ***) Simics getting shaky, switching to 'safe' mode. >> (*** Simics ***) Simics (main thread) received an abort signal, probably >> an asse rtion. >> simics> >> >> //////////////////// >Any help would be appreciable. > >Thanks >Shadi Jared Smolens ----------- Electrical and Computer Engineering www.rabidpenguin.org ------------- Carnegie Mellon University jsmolens AT ece.cmu.edu ------ HH A-313 ------ Pittsburgh, PA
