MOESI_CMP_directory-L2cache.sm (14184:11ac1337c5e2) | MOESI_CMP_directory-L2cache.sm (14300:22183ae13998) |
---|---|
1/* 2 * Copyright (c) 2019 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 700 unchanged lines hidden (view full) --- 709 else { 710 trigger(Event:L1_PUTS, in_msg.addr, 711 cache_entry, TBEs[in_msg.addr]); 712 } 713 } else if (in_msg.Type == CoherenceRequestType:WRITEBACK_DIRTY_DATA) { 714 Entry cache_entry := getCacheEntry(in_msg.addr); 715 if (is_invalid(cache_entry) && 716 L2cache.cacheAvail(in_msg.addr) == false) { | 1/* 2 * Copyright (c) 2019 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 700 unchanged lines hidden (view full) --- 709 else { 710 trigger(Event:L1_PUTS, in_msg.addr, 711 cache_entry, TBEs[in_msg.addr]); 712 } 713 } else if (in_msg.Type == CoherenceRequestType:WRITEBACK_DIRTY_DATA) { 714 Entry cache_entry := getCacheEntry(in_msg.addr); 715 if (is_invalid(cache_entry) && 716 L2cache.cacheAvail(in_msg.addr) == false) { |
717 trigger(Event:L2_Replacement, L2cache.cacheProbe(in_msg.addr), 718 getCacheEntry(L2cache.cacheProbe(in_msg.addr)), 719 TBEs[L2cache.cacheProbe(in_msg.addr)]); | 717 Addr victim := L2cache.cacheProbe(in_msg.addr); 718 trigger(Event:L2_Replacement, 719 victim, getCacheEntry(victim), TBEs[victim]); |
720 } 721 else { 722 trigger(Event:L1_WBDIRTYDATA, in_msg.addr, 723 cache_entry, TBEs[in_msg.addr]); 724 } 725 } else if (in_msg.Type == CoherenceRequestType:WRITEBACK_CLEAN_DATA) { 726 Entry cache_entry := getCacheEntry(in_msg.addr); 727 if (is_invalid(cache_entry) && 728 L2cache.cacheAvail(in_msg.addr) == false) { | 720 } 721 else { 722 trigger(Event:L1_WBDIRTYDATA, in_msg.addr, 723 cache_entry, TBEs[in_msg.addr]); 724 } 725 } else if (in_msg.Type == CoherenceRequestType:WRITEBACK_CLEAN_DATA) { 726 Entry cache_entry := getCacheEntry(in_msg.addr); 727 if (is_invalid(cache_entry) && 728 L2cache.cacheAvail(in_msg.addr) == false) { |
729 trigger(Event:L2_Replacement, L2cache.cacheProbe(in_msg.addr), 730 getCacheEntry(L2cache.cacheProbe(in_msg.addr)), 731 TBEs[L2cache.cacheProbe(in_msg.addr)]); | 729 Addr victim := L2cache.cacheProbe(in_msg.addr); 730 trigger(Event:L2_Replacement, 731 victim, getCacheEntry(victim), TBEs[victim]); |
732 } 733 else { 734 trigger(Event:L1_WBCLEANDATA, in_msg.addr, 735 cache_entry, TBEs[in_msg.addr]); 736 } 737 } else { 738 error("Unexpected message"); 739 } --- 2185 unchanged lines hidden --- | 732 } 733 else { 734 trigger(Event:L1_WBCLEANDATA, in_msg.addr, 735 cache_entry, TBEs[in_msg.addr]); 736 } 737 } else { 738 error("Unexpected message"); 739 } --- 2185 unchanged lines hidden --- |