base.hh (13945:a573bed35a8b) | base.hh (13947:4cf8087cab09) |
---|---|
1/* 2 * Copyright (c) 2012-2013, 2015-2016, 2018 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 --- 646 unchanged lines hidden (view full) --- 655 /** 656 * An event to writeback the tempBlock after recvAtomic 657 * finishes. To avoid other calls to recvAtomic getting in 658 * between, we create this event with a higher priority. 659 */ 660 EventFunctionWrapper writebackTempBlockAtomicEvent; 661 662 /** | 1/* 2 * Copyright (c) 2012-2013, 2015-2016, 2018 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 --- 646 unchanged lines hidden (view full) --- 655 /** 656 * An event to writeback the tempBlock after recvAtomic 657 * finishes. To avoid other calls to recvAtomic getting in 658 * between, we create this event with a higher priority. 659 */ 660 EventFunctionWrapper writebackTempBlockAtomicEvent; 661 662 /** |
663 * When a block is overwriten, its compression information must be updated, 664 * and it may need to be recompressed. If the compression size changes, the 665 * block may either become smaller, in which case there is no side effect, 666 * or bigger (data expansion; fat write), in which case the block might not 667 * fit in its current location anymore. If that happens, there are usually 668 * two options to be taken: 669 * 670 * - The co-allocated blocks must be evicted to make room for this block. 671 * Simpler, but ignores replacement data. 672 * - The block itself is moved elsewhere (used in policies where the CF 673 * determines the location of the block). 674 * 675 * This implementation uses the first approach. 676 * 677 * Notice that this is only called for writebacks, which means that L1 678 * caches (which see regular Writes), do not support compression. 679 * @sa CompressedTags 680 * 681 * @param blk The block to be overwriten. 682 * @param data A pointer to the data to be compressed (blk's new data). 683 * @param writebacks List for any writebacks that need to be performed. 684 * @return Whether operation is successful or not. 685 */ 686 bool updateCompressionData(CacheBlk *blk, const uint64_t* data, 687 PacketList &writebacks); 688 689 /** |
|
663 * Perform any necessary updates to the block and perform any data 664 * exchange between the packet and the block. The flags of the 665 * packet are also set accordingly. 666 * 667 * @param pkt Request packet from upstream that hit a block 668 * @param blk Cache block that the packet hit 669 * @param deferred_response Whether this request originally missed 670 * @param pending_downgrade Whether the writable flag is to be removed --- 340 unchanged lines hidden (view full) --- 1011 /** The average latency of an MSHR miss, per command and thread. */ 1012 Stats::Formula avgMshrUncacheableLatency[MemCmd::NUM_MEM_CMDS]; 1013 /** The average overall latency of an MSHR miss. */ 1014 Stats::Formula overallAvgMshrUncacheableLatency; 1015 1016 /** Number of replacements of valid blocks. */ 1017 Stats::Scalar replacements; 1018 | 690 * Perform any necessary updates to the block and perform any data 691 * exchange between the packet and the block. The flags of the 692 * packet are also set accordingly. 693 * 694 * @param pkt Request packet from upstream that hit a block 695 * @param blk Cache block that the packet hit 696 * @param deferred_response Whether this request originally missed 697 * @param pending_downgrade Whether the writable flag is to be removed --- 340 unchanged lines hidden (view full) --- 1038 /** The average latency of an MSHR miss, per command and thread. */ 1039 Stats::Formula avgMshrUncacheableLatency[MemCmd::NUM_MEM_CMDS]; 1040 /** The average overall latency of an MSHR miss. */ 1041 Stats::Formula overallAvgMshrUncacheableLatency; 1042 1043 /** Number of replacements of valid blocks. */ 1044 Stats::Scalar replacements; 1045 |
1046 /** Number of data expansions. */ 1047 Stats::Scalar dataExpansions; 1048 |
|
1019 /** 1020 * @} 1021 */ 1022 1023 /** 1024 * Register stats for this object. 1025 */ 1026 void regStats() override; --- 349 unchanged lines hidden --- | 1049 /** 1050 * @} 1051 */ 1052 1053 /** 1054 * Register stats for this object. 1055 */ 1056 void regStats() override; --- 349 unchanged lines hidden --- |