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 ---