Hi Liqun,
You don't need to trigger L1_to_L2 after
L2_Replacement. If you look at the generated L2Cache_Wakeup.C file, you'll
understand how this thing works. Every "trigger", if successful, will lead to
"continue" of the loop, which starts to check from the first port again. So by
the time it reached this port, it will trigger L1_to_L2 because L2 already has
the room.
Hope this helps,
Lei
----- Original Message -----
Sent: Thursday, February 15, 2007 6:16
PM
Subject: [Gems-users] question on
triggering event
Hi,
Here are some transitions invovled
when loading a cache line into L1. MOESI_SMP_directory-cache.sm line 354. In the second case (L2
doesn't have room, so we replace a line from the L2), do we need to trigger
Event:L1_to_L2 again after L2_Replacement, or Event:L1_to_L2 will be retried
again in the next cycle?
if
(L2cacheMemory.cacheAvail(L1IcacheMemory.cacheProbe(in_msg.Address)))
{ // The L2 has room, so we move the line
from the L1 to the L2
trigger(Event:L1_to_L2, L1IcacheMemory.cacheProbe(in_msg.Address)); } else
{ // The L2 does not have room, so we
replace a line from the L2
trigger(Event:L2_Replacement,
L2cacheMemory.cacheProbe(L1IcacheMemory.cacheProbe(in_msg.Address))); }
thanks Liqun
_______________________________________________ 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.
|